diff --git a/deployment/mise.lock b/deployment/mise.lock
index fb7be27b99..018620a4a5 100644
--- a/deployment/mise.lock
+++ b/deployment/mise.lock
@@ -1,36 +1,43 @@
# @generated - this file is auto-generated by `mise lock` https://mise.en.dev/dev-tools/mise-lock.html
[[tools.opentofu]]
-version = "1.11.6"
+version = "1.12.5"
backend = "aqua:opentofu/opentofu"
[tools.opentofu."platforms.linux-arm64"]
-checksum = "sha256:d4f2ab15776925864b049bb329d69682851de6f5204f256e9fa86d07a0308850"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_arm64.tar.gz"
+checksum = "sha256:e67e9da2b1ddf5050ebee62a584cb826eafe1dfd3827d7ec20899ac62791ed1a"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602545"
[tools.opentofu."platforms.linux-arm64-musl"]
-checksum = "sha256:d4f2ab15776925864b049bb329d69682851de6f5204f256e9fa86d07a0308850"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_arm64.tar.gz"
+checksum = "sha256:e67e9da2b1ddf5050ebee62a584cb826eafe1dfd3827d7ec20899ac62791ed1a"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602545"
[tools.opentofu."platforms.linux-x64"]
-checksum = "sha256:02800fafa2753a9f50c38483e2fdf5bc353fd62895eb9e25eec9a5145df3a69e"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_amd64.tar.gz"
+checksum = "sha256:a6894d45ae7a17ce83189cce8fe04b5a65f68cefceb62455b5a6a89fa53ab38f"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602624"
[tools.opentofu."platforms.linux-x64-musl"]
-checksum = "sha256:02800fafa2753a9f50c38483e2fdf5bc353fd62895eb9e25eec9a5145df3a69e"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_amd64.tar.gz"
+checksum = "sha256:a6894d45ae7a17ce83189cce8fe04b5a65f68cefceb62455b5a6a89fa53ab38f"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602624"
[tools.opentofu."platforms.macos-arm64"]
-checksum = "sha256:62d7fa8539e13b444827aa0a3b90c5972da5c47e8f8882d9dcf2e430e78840c1"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_darwin_arm64.tar.gz"
+checksum = "sha256:2ae38150a667f5c0bd57b318d18ad8091d08f93fcca40345f3d88998661de5a9"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_darwin_arm64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602544"
[tools.opentofu."platforms.macos-x64"]
-checksum = "sha256:1408cdef1c380f914565e6b4bb70794c6b163f195fcb233357f3d6c5745906b6"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_darwin_amd64.tar.gz"
+checksum = "sha256:1012d8f3d4567bcbcd1f2c7d766feca39a30bced32fb8be47e1887fbbee2456d"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_darwin_amd64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602621"
[tools.opentofu."platforms.windows-x64"]
-checksum = "sha256:27323f70c875b8251bfd7e61a4cffc3ebff4e56ed1e611b955016f0c7077367e"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_windows_amd64.tar.gz"
+checksum = "sha256:af11850b496f3720e0184084c56d8b43aa74ea92d2338978bf368d70c96473f1"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_windows_amd64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602547"
[[tools.terragrunt]]
version = "1.0.3"
@@ -39,27 +46,34 @@ backend = "aqua:gruntwork-io/terragrunt"
[tools.terragrunt."platforms.linux-arm64"]
checksum = "sha256:e5b60ab05b5214db694e6bc215d8124fb626e277cdb56b86f6147ae110d510fe"
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654253"
[tools.terragrunt."platforms.linux-arm64-musl"]
checksum = "sha256:e5b60ab05b5214db694e6bc215d8124fb626e277cdb56b86f6147ae110d510fe"
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654253"
[tools.terragrunt."platforms.linux-x64"]
checksum = "sha256:6d48049baf82e0bf9c804368dc85cbfeadc10955e33777e9e8de3e020b94b073"
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654196"
[tools.terragrunt."platforms.linux-x64-musl"]
checksum = "sha256:6d48049baf82e0bf9c804368dc85cbfeadc10955e33777e9e8de3e020b94b073"
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654196"
[tools.terragrunt."platforms.macos-arm64"]
checksum = "sha256:aacb5be2ca5475300cbce246dfbd8a45eb47510fbaa70fab8561c49ef5db03aa"
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_darwin_arm64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654084"
[tools.terragrunt."platforms.macos-x64"]
checksum = "sha256:3133c2251e191aede8e3dd2a5b3aee2e91c5f08f88f117aee40eed9a24c8ef6b"
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_darwin_amd64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406653970"
[tools.terragrunt."platforms.windows-x64"]
checksum = "sha256:183b2745b4e04980a6bfa4450ff81956a12596ca22d70f7aaa793980f5b036db"
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_windows_amd64.exe.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654412"
diff --git a/deployment/mise.toml b/deployment/mise.toml
index fadc28dc2e..7098b79c99 100644
--- a/deployment/mise.toml
+++ b/deployment/mise.toml
@@ -1,6 +1,6 @@
[tools]
-terragrunt = "1.0.3"
-opentofu = "1.11.6"
+terragrunt = "1.1.1"
+opentofu = "1.12.5"
[tasks."tg:fmt"]
run = "terragrunt hclfmt"
diff --git a/deployment/modules/cloudflare/docs-release/.terraform.lock.hcl b/deployment/modules/cloudflare/docs-release/.terraform.lock.hcl
index 7fdd96847c..049d3c0fd9 100644
--- a/deployment/modules/cloudflare/docs-release/.terraform.lock.hcl
+++ b/deployment/modules/cloudflare/docs-release/.terraform.lock.hcl
@@ -2,37 +2,35 @@
# Manual edits may be lost in future updates.
provider "registry.opentofu.org/cloudflare/cloudflare" {
- version = "4.52.7"
- constraints = "4.52.7"
+ version = "4.52.8"
+ constraints = "4.52.8"
hashes = [
- "h1:+O72J3QYiZtYmYYZM/Eh0f4NNfl1BvjX1eju43qTQsQ=",
- "h1:0oqjYIPXcXh7XiDiKI085cHDYQQ5mh8kDl9dmBtvtog=",
- "h1:4b4ESb87MGv5bnadgYe7sK5rEkKMZhbkQcwPubQTsR4=",
- "h1:6mTr3eA1Ddb348lLmJuyvn98z4KF+ejqaUEJ76D1rzQ=",
- "h1:9/3YH+9k9HqsvFtbmBf7SO2+xqZeZrXNKzLkjNuhUEA=",
- "h1:Jcq4tBWgyH4/2JsojNBSRaN0mcItVMchO+lynonrlqc=",
- "h1:Y4Vv/2RdP0Q+uxqhOxzOdKxuuEMjXPDcU0vPc5bCQzI=",
- "h1:a0gW8FBKsbP9Fi0HEDoy49WIbEWVHk9+BR4/iwuBdDQ=",
- "h1:gElv6iqJtg8OKN77gbw+MjrkrQmJHPkkMEi1J+0xkpU=",
- "h1:oslXUugD/NQ+duJgT4BhKQyfGbuFOANknMvR73fiOeM=",
- "h1:pPItIWii5oymR+geZB219ROSPuSODPLTlM4S/u8xLvM=",
- "h1:u67GWw8GwD9NDlDzp9Y5VRnSQGcCrE8rSpkGPaBpDl0=",
- "h1:uUUa9dY0XQOycI8pxg16PFFtL0WCTi9uEJz8trTQ7pU=",
- "h1:y3rV8KF2q6GEMANNlf5EkKJurlfbKlIKpjGcdxoy7pQ=",
- "zh:0c904ce31a4c6c4a5b3bf7ff1560e77c0cc7e2450c8553ded8e8c90398e1418b",
- "zh:36183d310c36373fe4cb936b83c595c6fd3b0a94bc7827f28e5789ccbf59752e",
- "zh:556a568a6f0235e8f41647de9e4d3a1e7b1d6502df8b19b54ec441f1c653ea10",
- "zh:633ebbd5b0245e75e500ef9be4d9e62288f97e8da3baaa51323892a786d90285",
- "zh:6acfe60cf52a65ba8f044f748548d2119e7f4fd7f8ebcb14698960d87c68f529",
+ "h1:2uxVaMaGPDJljXqYzuD6xtyfOKdNudtGIgawRTkFJIs=",
+ "h1:34HL1GDpqYdn2iEC+85pCi+NddZf30qH3fJ8y3P6CAM=",
+ "h1:4Z+uD+YY/7HrqdypM7DyUK+RtWepoLBc9fqtRQYZx4I=",
+ "h1:8Ss6wlJL2BHvkIZU1iaHvyUntqNhPFZ0fl6mjsxhctc=",
+ "h1:AYeWWMTWaNg01N3hivxr/6YlG41j1RietMnft9vLjUI=",
+ "h1:BGRNOzo8NUgbx5RwpWkWmr38f/s3txb7mzQhqfM5blI=",
+ "h1:EEXRMdC8bPlpLuOU8u+dE8mFJe3BpquFdH6vXcKseY4=",
+ "h1:ENp29e6O6OnaHJlbtmRlyjlAmm3Wt4mGctWUpBY3d0g=",
+ "h1:IAtBAbGVe1npj/n1NvCIZkSYGl7qaPYT+FnVdZ2CZ00=",
+ "h1:QRGGKngrxLORr4CImKXLDDJL5s67zUNBDAgk6FIIFNk=",
+ "h1:bNql6cC+MfDbaJK3q7a8C1m3A21o7e5mrjBIGtk0RdI=",
+ "h1:gmNv+PEOkYDdu+c15bfpcoAE3EI7pgmov9RMf3GZLsI=",
+ "h1:yieZ7NWRYQcLYHUevzDDrrmDkoQICM+3ZeX4i/mw9ME=",
+ "zh:08b305329a680a9213b2d8e642fbce7e4d97a524b1d2cef59e190ba9d678c477",
+ "zh:47975bd711ee18a46e589822171fa87474a552b332bfc8dea8fd1a64504eed8d",
+ "zh:5640d0d226bbafff3395542456c29feb942ca9c55ac01b4245a34c0590a33363",
+ "zh:5b0ad839fafba938c60a95d6b4a865843643591e97573ed2b9c4af3754064f74",
"zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f",
- "zh:904acc31ebb9d6ef68c792074b30532ee61bf515f19e0a3c75b46f126cca1f13",
- "zh:a1d0a81246afc8750286d3f6fe7a8fbe6460dd2662407b28dbfbabb612e5fa9d",
- "zh:a41a36fe253fc365fe2b7ffc749624688b2693b4634862fda161179ab100029f",
- "zh:a7ef269e77ffa8715c8945a2c14322c7ff159ea44c15f62505f3cbb2cae3b32d",
- "zh:b01aa3bed30610633b762df64332b26f8844a68c3960cebcb30f04918efc67fe",
- "zh:b069cc2cd18cae10757df3ae030508eac8d55de7e49eda7a5e3e11f2f7fe6455",
- "zh:b2d2c6313729ebb7465dceece374049e2d08bda34473901be9ff46a8836d42b2",
- "zh:db0e114edaf4bc2f3d4769958807c83022bfbc619a00bdf4c4bd17faa4ab2d8b",
- "zh:ecc0aa8b9044f664fd2aaf8fa992d976578f78478980555b4b8f6148e8d1a5fe",
+ "zh:93a9bc1139f5c02a44fdbf51fb2ce0891e2a42033b66febb928ccf72e870408f",
+ "zh:977f75cdf365686aa16ae02dcc0fc1769bae6f86be6e165393756c940bfb4af0",
+ "zh:9afcda2660b3dc6ee6329acea532a719225bd1f6cf46f695feb2d77160847c1b",
+ "zh:9e3da67b1b05b03d1f0c18b8677edf3797815b5dd49629f10eb2f457dccbed30",
+ "zh:b8d7da230f5266367c1b6b1cf31aa39087e231a87d55b71bb9d5c854ca1fcfe6",
+ "zh:cc96e7cd7350456b7a11a53d1c76c73a542de8359f9750f637ff865e8e77be91",
+ "zh:da1f58d067def243047bb7178cb197e2b9c3a791a9eb380ad92b73290615ae29",
+ "zh:ed5f3e1f59a338bcdce0a2537a8a2f299cfe18c168626799b2a9c97af3d8d3cb",
+ "zh:f16cc31f73a58a26ffe2d93223eddb7c340623a4e2ef38c6091766fd611e3e11",
]
}
diff --git a/deployment/modules/cloudflare/docs-release/config.tf b/deployment/modules/cloudflare/docs-release/config.tf
index 7c59cdd2e3..ea1a441a4b 100644
--- a/deployment/modules/cloudflare/docs-release/config.tf
+++ b/deployment/modules/cloudflare/docs-release/config.tf
@@ -5,7 +5,7 @@ terraform {
required_providers {
cloudflare = {
source = "cloudflare/cloudflare"
- version = "4.52.7"
+ version = "4.52.8"
}
}
}
diff --git a/deployment/modules/cloudflare/docs/.terraform.lock.hcl b/deployment/modules/cloudflare/docs/.terraform.lock.hcl
index 7fdd96847c..049d3c0fd9 100644
--- a/deployment/modules/cloudflare/docs/.terraform.lock.hcl
+++ b/deployment/modules/cloudflare/docs/.terraform.lock.hcl
@@ -2,37 +2,35 @@
# Manual edits may be lost in future updates.
provider "registry.opentofu.org/cloudflare/cloudflare" {
- version = "4.52.7"
- constraints = "4.52.7"
+ version = "4.52.8"
+ constraints = "4.52.8"
hashes = [
- "h1:+O72J3QYiZtYmYYZM/Eh0f4NNfl1BvjX1eju43qTQsQ=",
- "h1:0oqjYIPXcXh7XiDiKI085cHDYQQ5mh8kDl9dmBtvtog=",
- "h1:4b4ESb87MGv5bnadgYe7sK5rEkKMZhbkQcwPubQTsR4=",
- "h1:6mTr3eA1Ddb348lLmJuyvn98z4KF+ejqaUEJ76D1rzQ=",
- "h1:9/3YH+9k9HqsvFtbmBf7SO2+xqZeZrXNKzLkjNuhUEA=",
- "h1:Jcq4tBWgyH4/2JsojNBSRaN0mcItVMchO+lynonrlqc=",
- "h1:Y4Vv/2RdP0Q+uxqhOxzOdKxuuEMjXPDcU0vPc5bCQzI=",
- "h1:a0gW8FBKsbP9Fi0HEDoy49WIbEWVHk9+BR4/iwuBdDQ=",
- "h1:gElv6iqJtg8OKN77gbw+MjrkrQmJHPkkMEi1J+0xkpU=",
- "h1:oslXUugD/NQ+duJgT4BhKQyfGbuFOANknMvR73fiOeM=",
- "h1:pPItIWii5oymR+geZB219ROSPuSODPLTlM4S/u8xLvM=",
- "h1:u67GWw8GwD9NDlDzp9Y5VRnSQGcCrE8rSpkGPaBpDl0=",
- "h1:uUUa9dY0XQOycI8pxg16PFFtL0WCTi9uEJz8trTQ7pU=",
- "h1:y3rV8KF2q6GEMANNlf5EkKJurlfbKlIKpjGcdxoy7pQ=",
- "zh:0c904ce31a4c6c4a5b3bf7ff1560e77c0cc7e2450c8553ded8e8c90398e1418b",
- "zh:36183d310c36373fe4cb936b83c595c6fd3b0a94bc7827f28e5789ccbf59752e",
- "zh:556a568a6f0235e8f41647de9e4d3a1e7b1d6502df8b19b54ec441f1c653ea10",
- "zh:633ebbd5b0245e75e500ef9be4d9e62288f97e8da3baaa51323892a786d90285",
- "zh:6acfe60cf52a65ba8f044f748548d2119e7f4fd7f8ebcb14698960d87c68f529",
+ "h1:2uxVaMaGPDJljXqYzuD6xtyfOKdNudtGIgawRTkFJIs=",
+ "h1:34HL1GDpqYdn2iEC+85pCi+NddZf30qH3fJ8y3P6CAM=",
+ "h1:4Z+uD+YY/7HrqdypM7DyUK+RtWepoLBc9fqtRQYZx4I=",
+ "h1:8Ss6wlJL2BHvkIZU1iaHvyUntqNhPFZ0fl6mjsxhctc=",
+ "h1:AYeWWMTWaNg01N3hivxr/6YlG41j1RietMnft9vLjUI=",
+ "h1:BGRNOzo8NUgbx5RwpWkWmr38f/s3txb7mzQhqfM5blI=",
+ "h1:EEXRMdC8bPlpLuOU8u+dE8mFJe3BpquFdH6vXcKseY4=",
+ "h1:ENp29e6O6OnaHJlbtmRlyjlAmm3Wt4mGctWUpBY3d0g=",
+ "h1:IAtBAbGVe1npj/n1NvCIZkSYGl7qaPYT+FnVdZ2CZ00=",
+ "h1:QRGGKngrxLORr4CImKXLDDJL5s67zUNBDAgk6FIIFNk=",
+ "h1:bNql6cC+MfDbaJK3q7a8C1m3A21o7e5mrjBIGtk0RdI=",
+ "h1:gmNv+PEOkYDdu+c15bfpcoAE3EI7pgmov9RMf3GZLsI=",
+ "h1:yieZ7NWRYQcLYHUevzDDrrmDkoQICM+3ZeX4i/mw9ME=",
+ "zh:08b305329a680a9213b2d8e642fbce7e4d97a524b1d2cef59e190ba9d678c477",
+ "zh:47975bd711ee18a46e589822171fa87474a552b332bfc8dea8fd1a64504eed8d",
+ "zh:5640d0d226bbafff3395542456c29feb942ca9c55ac01b4245a34c0590a33363",
+ "zh:5b0ad839fafba938c60a95d6b4a865843643591e97573ed2b9c4af3754064f74",
"zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f",
- "zh:904acc31ebb9d6ef68c792074b30532ee61bf515f19e0a3c75b46f126cca1f13",
- "zh:a1d0a81246afc8750286d3f6fe7a8fbe6460dd2662407b28dbfbabb612e5fa9d",
- "zh:a41a36fe253fc365fe2b7ffc749624688b2693b4634862fda161179ab100029f",
- "zh:a7ef269e77ffa8715c8945a2c14322c7ff159ea44c15f62505f3cbb2cae3b32d",
- "zh:b01aa3bed30610633b762df64332b26f8844a68c3960cebcb30f04918efc67fe",
- "zh:b069cc2cd18cae10757df3ae030508eac8d55de7e49eda7a5e3e11f2f7fe6455",
- "zh:b2d2c6313729ebb7465dceece374049e2d08bda34473901be9ff46a8836d42b2",
- "zh:db0e114edaf4bc2f3d4769958807c83022bfbc619a00bdf4c4bd17faa4ab2d8b",
- "zh:ecc0aa8b9044f664fd2aaf8fa992d976578f78478980555b4b8f6148e8d1a5fe",
+ "zh:93a9bc1139f5c02a44fdbf51fb2ce0891e2a42033b66febb928ccf72e870408f",
+ "zh:977f75cdf365686aa16ae02dcc0fc1769bae6f86be6e165393756c940bfb4af0",
+ "zh:9afcda2660b3dc6ee6329acea532a719225bd1f6cf46f695feb2d77160847c1b",
+ "zh:9e3da67b1b05b03d1f0c18b8677edf3797815b5dd49629f10eb2f457dccbed30",
+ "zh:b8d7da230f5266367c1b6b1cf31aa39087e231a87d55b71bb9d5c854ca1fcfe6",
+ "zh:cc96e7cd7350456b7a11a53d1c76c73a542de8359f9750f637ff865e8e77be91",
+ "zh:da1f58d067def243047bb7178cb197e2b9c3a791a9eb380ad92b73290615ae29",
+ "zh:ed5f3e1f59a338bcdce0a2537a8a2f299cfe18c168626799b2a9c97af3d8d3cb",
+ "zh:f16cc31f73a58a26ffe2d93223eddb7c340623a4e2ef38c6091766fd611e3e11",
]
}
diff --git a/deployment/modules/cloudflare/docs/config.tf b/deployment/modules/cloudflare/docs/config.tf
index 7c59cdd2e3..ea1a441a4b 100644
--- a/deployment/modules/cloudflare/docs/config.tf
+++ b/deployment/modules/cloudflare/docs/config.tf
@@ -5,7 +5,7 @@ terraform {
required_providers {
cloudflare = {
source = "cloudflare/cloudflare"
- version = "4.52.7"
+ version = "4.52.8"
}
}
}
diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml
index 2398b971dd..a4a820ec70 100644
--- a/docker/docker-compose.dev.yml
+++ b/docker/docker-compose.dev.yml
@@ -154,7 +154,7 @@ services:
redis:
container_name: immich_redis
- image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
+ image: docker.io/valkey/valkey:9@sha256:3acc0687f2a2e1091fae6450d7842dd658c941338cf0a873ddd9e14b9e4ea4dd
healthcheck:
test: redis-cli ping || exit 1
diff --git a/docker/docker-compose.prod.yml b/docker/docker-compose.prod.yml
index d682ea1e6f..b717de02f9 100644
--- a/docker/docker-compose.prod.yml
+++ b/docker/docker-compose.prod.yml
@@ -56,7 +56,7 @@ services:
redis:
container_name: immich_redis
- image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
+ image: docker.io/valkey/valkey:9@sha256:3acc0687f2a2e1091fae6450d7842dd658c941338cf0a873ddd9e14b9e4ea4dd
healthcheck:
test: redis-cli ping || exit 1
restart: always
@@ -85,7 +85,7 @@ services:
container_name: immich_prometheus
ports:
- 9090:9090
- image: prom/prometheus@sha256:a75c5a35bc21d7afe69551eefa3cb1e1fb1775fe759408007a66b54ec3de1f29
+ image: prom/prometheus@sha256:508729e0e2d18e11fd742a5a5ca70e557b940a93948c3c95fd0123a6fd538b69
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
@@ -97,7 +97,7 @@ services:
command: ['./run.sh', '-disable-reporting']
ports:
- 3000:3000
- image: grafana/grafana:12.4.4-ubuntu@sha256:df2e7ef5f32f771794cf76bad5f2bceac227036460a2cc269a9045e5662abc58
+ image: grafana/grafana:12.4.7-ubuntu@sha256:d327f509400334fbea74a282d287f20c3187222741ec99e76f253cac16c90129
volumes:
- grafana-data:/var/lib/grafana
diff --git a/docker/docker-compose.rootless.yml b/docker/docker-compose.rootless.yml
index 33cbc4016a..65b13f2b9d 100644
--- a/docker/docker-compose.rootless.yml
+++ b/docker/docker-compose.rootless.yml
@@ -51,8 +51,6 @@ services:
- NET_RAW
volumes:
- ./ml-model-cache:/cache
- - ./ml-dotcache:/.cache
- - ./ml-config:/.config
env_file:
- .env
restart: always
@@ -61,7 +59,7 @@ services:
redis:
container_name: immich_redis
- image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
+ image: docker.io/valkey/valkey:9@sha256:3acc0687f2a2e1091fae6450d7842dd658c941338cf0a873ddd9e14b9e4ea4dd
user: '1000:1000'
security_opt:
- no-new-privileges:true
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 98444d8793..4bcf52ca6e 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -49,7 +49,7 @@ services:
redis:
container_name: immich_redis
- image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
+ image: docker.io/valkey/valkey:9@sha256:3acc0687f2a2e1091fae6450d7842dd658c941338cf0a873ddd9e14b9e4ea4dd
healthcheck:
test: redis-cli ping || exit 1
restart: always
diff --git a/docker/example.env b/docker/example.env
index 6641cceaaa..2403d69a85 100644
--- a/docker/example.env
+++ b/docker/example.env
@@ -10,7 +10,7 @@ DB_DATA_LOCATION=./postgres
# TZ=Etc/UTC
# The Immich version to use. You can pin this to a specific version like "v2.1.0"
-IMMICH_VERSION=v2
+IMMICH_VERSION=v3
# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
diff --git a/docs/docs/FAQ.mdx b/docs/docs/FAQ.mdx
index 1a17385132..869e84e377 100644
--- a/docs/docs/FAQ.mdx
+++ b/docs/docs/FAQ.mdx
@@ -409,12 +409,10 @@ To decrease Redis logs, you can add the following line to the `redis:` section o
You can change the user in the container by setting the `user` argument in `docker-compose.yml` for each service.
-[Example docker-compose.yml file](https://github.com/immich-app/immich/blob/main/docker/docker-compose.rootless.yml)
+[Example docker-compose.rootless.yml file](https://github.com/immich-app/immich/blob/main/docker/docker-compose.rootless.yml)
You may need to add mount points or docker volumes for the following internal container paths:
-- `immich-machine-learning:/.config`
-- `immich-machine-learning:/.cache`
- `redis:/data`
The non-root user/group needs read/write access to the volume mounts, including `UPLOAD_LOCATION` and `/cache` for machine-learning.
diff --git a/docs/docs/administration/backup-and-restore.md b/docs/docs/administration/backup-and-restore.md
index debbad7575..df34671a1b 100644
--- a/docs/docs/administration/backup-and-restore.md
+++ b/docs/docs/administration/backup-and-restore.md
@@ -31,7 +31,7 @@ You can trigger a database backup manually:
1. Go to **Administration > Job Queues**
2. Click **Create job** in the top right
-3. Select **Create Database Backup** and click **Confirm**
+3. Select **Create Database Dump** and click **Confirm**
The backup will appear in `UPLOAD_LOCATION/backups` and counts toward your retention limit.
diff --git a/docs/docs/administration/img/reset-admin-password.webp b/docs/docs/administration/img/reset-admin-password.webp
deleted file mode 100644
index 5062d24a6b..0000000000
Binary files a/docs/docs/administration/img/reset-admin-password.webp and /dev/null differ
diff --git a/docs/docs/administration/oauth.md b/docs/docs/administration/oauth.md
index fea73684fd..246b1be7fe 100644
--- a/docs/docs/administration/oauth.md
+++ b/docs/docs/administration/oauth.md
@@ -280,7 +280,7 @@ Configuration of OAuth in Immich System Settings
| ---------------------------- | ----------------------------------------------------- |
| Issuer URL | `https:///realms/` |
| Client ID | immich |
-| Client Secret | can be optained from Clients -> immich -> Credentials |
+| Client Secret | can be obtained from Clients -> immich -> Credentials |
| Scope | openid email profile |
| Signing Algorithm | RS256 |
| Storage Label Claim | preferred_username |
diff --git a/docs/docs/administration/server-commands.md b/docs/docs/administration/server-commands.md
index 104c16c0a2..49bcf17700 100644
--- a/docs/docs/administration/server-commands.md
+++ b/docs/docs/administration/server-commands.md
@@ -35,6 +35,7 @@ Found Admin:
- Email=admin@example.com
- Name=Immich Admin
? Please choose a new password (optional) immich-is-cool
+? Invalidate existing sessions? Yes
The admin password has been updated.
```
diff --git a/docs/docs/administration/system-integrity.md b/docs/docs/administration/system-integrity.md
index 2b373134a9..71d1ada88b 100644
--- a/docs/docs/administration/system-integrity.md
+++ b/docs/docs/administration/system-integrity.md
@@ -1,5 +1,30 @@
# System Integrity
+## Integrity report
+
+At a [customizable interval](https://my.immich.app/admin/system-settings?isOpen=integrity-checks), Immich runs integrity checks to ensure that your library is still intact and there are no corrupt files.
+There are three kind of issues Immich checks for:
+
+- Untracked files: the path was found in Immich's directories but it is not referenced in Immich's database
+- Missing files: the path is found in the Immich internal database, but does not actually exist on disk
+- Checksum mismatches: the checksum of the file stored in Immich's database does not match the actual file's checksum anymore
+
+All three run nightly at 3am by default. For the "Checksum files" check, there are additional time and progress limits, as those are the most taxing checks. With these additional limits, Immich can slowly check checksums of your files over the course of a couple of days.
+
+You can see the results of these checks on the [maintenance](https://my.immich.app/admin/maintenance) page. Here, you can also trigger a full scan (a _check_) for specific jobs, or all of them. In addition, you can also _refresh_ checks. This will only look at items that have currently been reported on, and check if those have been fixed.
+
+### Common causes
+
+Most common are untracked files. In many cases those are corrupted thumbnails or encoded videos that have been partially generated at some point and never got cleaned up properly. These are usually fine to delete, as both can always be regenerated at a later point. Other files will need to be investigated on a case-by-case basis by checking they already exist in Immich and thinking about how they might have gotten untracked.
+
+:::info
+You might want to run the _missing_ jobs for thumbnails and encoded videos (https://my.immich.app/admin/queues) to make sure all your assets have proper thumbnails and encoded videos. Watch the server logs while running the jobs, in case there are any issues with some assets.
+:::
+
+Missing files are files where Immich references them internally, but they don't actually exist on disk in that location. It could be that you deleted a file on disk from the internal library (don't do that, Immich doesn't support it). It could also be that there are issues with your file storage. Please carefully investigate missing files, and never hesitate to reach out on [our Discord](https://discord.immich.app) if you have any questions!
+
+Checksum mismatches are often indicative of file system corruption. It could also be that you previously edited a file from the internal library on the disk, which is also not supported and will cause a checksum mismatch. Again, the recommended action is to look at any reported item individually, check it out, try to remember if you changed it or some metadata on it at some point. If you edited the file, the supported resolution is to delete the mismatched asset from Immich and reupload it as a new asset.
+
## Folder checks
:::info
@@ -40,7 +65,7 @@ The above error messages show that the server has previously (successfully) writ
### Ignoring the checks
-:::warning
+:::danger
The checks are designed to catch common problems that we have seen users have in the past, and often indicate there's something wrong that you should solve. If you know what you're doing and you want to disable them you can set the following environment variable:
:::
diff --git a/docs/docs/api.md b/docs/docs/api.md
index 2e8ab5eb1b..debd75e4d4 100644
--- a/docs/docs/api.md
+++ b/docs/docs/api.md
@@ -10,4 +10,4 @@ OpenAPI is used to generate the client (Typescript, Dart) SDK. `openapi-generato
mise open-api
```
-You can find the generated client SDK in the `packages/sdk/client` for Typescript SDK and `mobile/openapi` for Dart SDK.
+You can find the generated client SDK in the `packages/sdk/client` for Typescript SDK and `mobile/generated/openapi` for Dart SDK.
diff --git a/docs/docs/developer/setup.md b/docs/docs/developer/setup.md
index 167fa10320..de02ab3e54 100644
--- a/docs/docs/developer/setup.md
+++ b/docs/docs/developer/setup.md
@@ -30,7 +30,7 @@ This environment includes the services below. Additional details are available i
- Redis
- PostgreSQL development database with exposed port `5432` so you can use any database client to access it
-All the services are packaged to run as with single Docker Compose command.
+All the services are packaged to run with a single Docker Compose command.
:::tip mise
[mise](https://mise.jdx.dev) is used throughout the project to manage tool versions and run tasks. [Install mise](https://mise.jdx.dev/installing-mise.html), then from the repo root run `mise trust` and `mise install` to get all required tools. Tasks for each service can be run from the repo root using `mise //namespace:task` (e.g. `mise //server:lint`). To list all available tasks, run `mise tasks ls --all`.
@@ -41,7 +41,7 @@ All the services are packaged to run as with single Docker Compose command.
1. Clone the project repo.
2. Run `cp docker/example.env docker/.env`.
3. Edit `docker/.env` to provide values for the required variable `UPLOAD_LOCATION`.
-4. Install dependencies - `pnpm i`
+4. Install dependencies - `mise x -- pnpm i`
5. From the root directory, run:
```bash title="Start development server"
@@ -52,7 +52,7 @@ mise dev
All the services will be started with hot-reloading enabled for a quick feedback loop.
-You can access the web from `http://your-machine-ip:3000` or `http://localhost:3000` and access the server from the mobile app at `http://your-machine-ip:3000/api`
+You can access the web from `http://your-machine-ip:3000` or `http://localhost:3000` and access the server from the mobile app at `http://your-machine-ip:3000`
**Notes:**
@@ -99,6 +99,21 @@ To see local changes to `@immich/ui` in Immich, do the following:
2. Run `mise //mobile:translation` to generate the translation file.
3. Change to the `mobile/` directory and run `flutter run` to start the app.
+##### iOS Code Signing
+
+The Immich Apple Team ID and bundle IDs are specified in `mobile/ios/Signing.xcconfig`. For local development, we provide an override mechanism.
+
+Create `mobile/ios/Signing.local.xcconfig` and populate it with the necessary values needed to build and sign Immich yourself. This local override file is gitignored.
+
+```
+IMMICH_TEAM_ID = ABCDE12345
+IMMICH_BUNDLE_ID_PROD = com.customuniqueid.immich
+IMMICH_BUNDLE_ID_DEV = com.customuniqueid.immichdev
+IMMICH_GROUP_ID = group.com.customuniqueid.immich
+```
+
+The environment values are used across Immich's targets and schemes to prevent redundant edits by contributors.
+
#### Translation
To add a new translation text, enter the key-value pair in the `i18n/en.json` in the root of the immich project. Then run:
diff --git a/docs/docs/features/command-line-interface.md b/docs/docs/features/command-line-interface.md
index 03e96e5080..c3eab1605f 100644
--- a/docs/docs/features/command-line-interface.md
+++ b/docs/docs/features/command-line-interface.md
@@ -99,6 +99,7 @@ Options:
-H, --include-hidden Include hidden folders (default: false, env: IMMICH_INCLUDE_HIDDEN)
-a, --album Automatically create albums based on folder name (default: false, env: IMMICH_AUTO_CREATE_ALBUM)
-A, --album-name Add all assets to specified album (env: IMMICH_ALBUM_NAME)
+ --visibility Set the visibility of uploaded assets (choices: "archive", "timeline", "hidden", "locked", env: IMMICH_VISIBILITY)
-n, --dry-run Don't perform any actions, just show what will be done (default: false, env: IMMICH_DRY_RUN)
-c, --concurrency Number of assets to upload at the same time (default: 4, env: IMMICH_UPLOAD_CONCURRENCY)
-j, --json-output Output detailed information in json format (default: false, env: IMMICH_JSON_OUTPUT)
@@ -176,6 +177,12 @@ By default, hidden files are skipped. If you want to include hidden files, use t
immich upload --include-hidden --recursive directory/
```
+You can set the visibility of uploaded assets to `archive`, `timeline`, `hidden`, or `locked` with the `--visibility` option:
+
+```bash
+immich upload --visibility archive --recursive directory/
+```
+
You can use the `--json-output` option to get a json printed which includes
three keys: `newFiles`, `duplicates` and `newAssets`. Due to some logging
output you will need to strip the first three lines of output to get the json.
diff --git a/docs/docs/install/config-file.md b/docs/docs/install/config-file.md
index c8ebeffbcd..5c34acdd9d 100644
--- a/docs/docs/install/config-file.md
+++ b/docs/docs/install/config-file.md
@@ -6,14 +6,18 @@ sidebar_position: 100
A config file can be provided as an alternative to the UI configuration.
+:::note Interaction with the web UI
+While the config file does not need to include all keys from the below example, specifying `IMMICH_CONFIG_FILE` will disable the ability to edit other properties from the Immich web UI.
+:::
+
### Step 1 - Create a new config file
-In JSON format, create a new config file (e.g. `immich.json`) and put it in a location mounted in the container that can be accessed by Immich.
+In JSON format, create a new config file (e.g. `immich-config.json`) and put it in a location mounted in the container that can be accessed by Immich.
YAML-formatted config files are also supported.
The default configuration looks like this:
-immich.json
+immich-config.json
```json
{
@@ -250,6 +254,10 @@ So you can just grab it from there, paste it into a file and you're pretty much
### Step 2 - Specify the file location
+:::note
+If you have any `microservices` workers, they will also need to have the config file mounted to their container.
+:::
+
In your `.env` file, set the variable `IMMICH_CONFIG_FILE` to the path of your config.
For more information, refer to the [Environment Variables](/install/environment-variables.md) section.
@@ -261,7 +269,7 @@ It is recommended to reuse this variable in your `docker-compose.yml`:
```yaml
volumes:
- - ./configuration.yml:${IMMICH_CONFIG_FILE}
+ - ./immich-config.json:${IMMICH_CONFIG_FILE}
```
:::
diff --git a/docs/docs/install/environment-variables.md b/docs/docs/install/environment-variables.md
index 0932fa2855..c10a858ed9 100644
--- a/docs/docs/install/environment-variables.md
+++ b/docs/docs/install/environment-variables.md
@@ -19,7 +19,7 @@ If this does not work, try running `docker compose up -d --force-recreate`.
| Variable | Description | Default | Containers |
| :----------------- | :------------------------------ | :-----: | :----------------------- |
-| `IMMICH_VERSION` | Image tags | `v2` | server, machine learning |
+| `IMMICH_VERSION` | Image tags | `v3` | server, machine learning |
| `UPLOAD_LOCATION` | Host path for uploads | | server |
| `DB_DATA_LOCATION` | Host path for Postgres database | | database |
@@ -45,7 +45,7 @@ These environment variables are used by the `docker-compose.yml` file and do **N
| `IMMICH_PROCESS_INVALID_IMAGES` | When `true`, generate thumbnails for invalid images | | server | microservices |
| `IMMICH_TRUSTED_PROXIES` | List of comma-separated IPs set as trusted proxies | | server | api |
| `IMMICH_IGNORE_MOUNT_CHECK_ERRORS` | See [System Integrity](/administration/system-integrity) | | server | api, microservices |
-| `IMMICH_ALLOW_SETUP` | When `false` disables the `/auth/admin-sign-up` endpoint | `true` | server | api |
+| `IMMICH_ALLOW_SETUP` | When `false` disables the `/auth/admin-sign-up` and `/admin/database-backups/start-restore` endpoints | `true` | server | api |
\*1: `TZ` should be set to a `TZ identifier` from [this list][tz-list]. For example, `TZ="Etc/UTC"`.
`TZ` is used by `exiftool` as a fallback in case the timezone cannot be determined from the image metadata. It is also used for logfile timestamps and cron job execution.
@@ -89,7 +89,7 @@ Information on the current workers can be found [here](/administration/jobs-work
\*1: The values of `DB_USERNAME`, `DB_PASSWORD`, and `DB_DATABASE_NAME` are passed to the Postgres container as the variables `POSTGRES_USER`, `POSTGRES_PASSWORD`, and `POSTGRES_DB` in `docker-compose.yml`.
-\*2: If not provided, the appropriate extension to use is auto-detected at startup by introspecting the database. When multiple extensions are installed, the order of preference is VectorChord, pgvecto.rs, pgvector.
+\*2: If not provided, the appropriate extension to use is auto-detected at startup by inspecting the database. When multiple extensions are installed, the order of preference is VectorChord, pgvector.
\*3: Uses either [`postgresql.ssd.conf`](https://github.com/immich-app/base-images/blob/main/postgres/postgresql.ssd.conf) or [`postgresql.hdd.conf`](https://github.com/immich-app/base-images/blob/main/postgres/postgresql.hdd.conf) which mainly controls the Postgres `effective_io_concurrency` setting to allow for concurrenct IO on SSDs and sequential IO on HDDs.
diff --git a/docs/docs/install/synology.md b/docs/docs/install/synology.md
index de96886caa..69d8abf515 100644
--- a/docs/docs/install/synology.md
+++ b/docs/docs/install/synology.md
@@ -7,7 +7,7 @@ sidebar_position: 85
:::note
This is a community contribution and not officially supported by the Immich team, but included here for convenience.
-Community support can be found in the dedicated channel on the [Discord Server](https://discord.immich.app/).
+Community support should be directed to Synology-specific support platforms.
:::
Immich can easily be installed on a Synology NAS using Container Manager within DSM. If you have not installed Container Manager already, you can install it in the Packages Center. Refer to the [Container Manager docs](https://kb.synology.com/en-us/DSM/help/ContainerManager/docker_desc?version=7) for more information on using Container Manager.
diff --git a/docs/docs/install/unraid.md b/docs/docs/install/unraid.md
index ca7263a1e8..3ce98dc2e1 100644
--- a/docs/docs/install/unraid.md
+++ b/docs/docs/install/unraid.md
@@ -1,13 +1,19 @@
---
-sidebar_position: 60
+sidebar_position: 70
---
-# Unraid
+# Unraid [ Community ]
+
+:::note
+This is a community contribution and not officially supported by the Immich team, but included here for convenience.
+
+Community support can be found in the dedicated channel on the [Discord Server](https://discord.immich.app/).
+:::
Immich can easily be installed and updated on Unraid via:
-1. [Docker Compose Manager](https://forums.unraid.net/topic/114415-plugin-docker-compose-manager/) plugin from the Unraid Community Apps
-2. Community made template on the Unraid Community Apps
+1. Community made template on the Unraid Community Apps
+2. [Docker Compose Manager](https://forums.unraid.net/topic/114415-plugin-docker-compose-manager/) plugin from the Unraid Community Apps
## Community Applications Template
@@ -23,7 +29,7 @@ Once you have Redis and PostgreSQL running, search for Immich on the Unraid CA,
For more information about setting up the community image see [here](https://github.com/imagegenius/docker-immich#application-setup)
-## Docker-Compose Method (Official)
+## Docker-Compose Method
:::info
@@ -121,7 +127,7 @@ alt="Go to Docker Tab and visit the address listed next to immich-web"
width="90%"
alt="Go to Docker Tab and visit the address listed next to immich-web"
/>
-
+
:::tip
diff --git a/docs/docs/install/upgrading.md b/docs/docs/install/upgrading.md
index 38fc056f80..f302719c76 100644
--- a/docs/docs/install/upgrading.md
+++ b/docs/docs/install/upgrading.md
@@ -28,11 +28,15 @@ docker image prune
## Versioning Policy
-Immich follows [semantic versioning][semver], which tags releases in the format `..`. We intend for breaking changes to be limited to major version releases.
-You can configure your Docker image to point to the current major version by using a metatag, such as `:v2`.
+Immich follows [semantic versioning][semver], which tags releases in the format `..`.
+We intend for breaking changes, including those to the API or deployment, to be limited to major version releases.
+You can configure your Docker image to point to the current major version by using a metatag, such as `:v3`. These metatags do not follow release candidates.
-Currently, we have no plans to backport patches to earlier versions. We encourage all users to run the most recent release of Immich.
-Switching back to an earlier version, even within the same minor release tag, is not supported.
+The mobile app is typically compatible with the current and prior major version. However, the server is only compatible with the matching major version.
+Thus, we recommend upgrading all mobile clients before upgrading the server to ensure compatibility.
+
+We do not backport patches to earlier versions. We encourage all users to run the most recent stable release of Immich.
+Downgrading to an earlier version, even within the same minor version, is not supported.
[semver]: https://semver.org/
diff --git a/docs/docs/partials/_mobile-app-download.md b/docs/docs/partials/_mobile-app-download.md
index 31cf62bf81..08540837a1 100644
--- a/docs/docs/partials/_mobile-app-download.md
+++ b/docs/docs/partials/_mobile-app-download.md
@@ -1,7 +1,7 @@
The mobile app can be downloaded from the following places:
-- Obtainium: You can get your Obtainium config link from the [Utilities page of your Immich server](https://my.immich.app/utilities).
-- [Google Play Store](https://play.google.com/store/apps/details?id=app.alextran.immich)
- [Apple App Store](https://apps.apple.com/us/app/immich/id1613945652)
-- [F-Droid](https://f-droid.org/packages/app.alextran.immich)
-- [GitHub Releases (apk)](https://github.com/immich-app/immich/releases)
+- [Google Play Store](https://play.google.com/store/apps/details?id=app.alextran.immich)
+- [GitHub Releases (APK)](https://github.com/immich-app/immich/releases)
+- Obtainium: You can get your Obtainium config link from the [Utilities page of your Immich server](https://my.immich.app/utilities).
+- [F-Droid](https://app.futo.org/fdroid/repo/)
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js
index 734317a302..58a07b901f 100644
--- a/docs/docusaurus.config.js
+++ b/docs/docusaurus.config.js
@@ -191,7 +191,7 @@ const config = {
},
{
label: 'Privacy Policy',
- to: '/privacy-policy',
+ href: 'https://immich.app/privacy-policy',
},
],
},
diff --git a/docs/mise.lock b/docs/mise.lock
index 698d6e64c9..fe557086dd 100644
--- a/docs/mise.lock
+++ b/docs/mise.lock
@@ -1,7 +1,7 @@
# @generated - this file is auto-generated by `mise lock` https://mise.en.dev/dev-tools/mise-lock.html
[[tools.wrangler]]
-version = "4.100.0"
+version = "4.110.0"
backend = "npm:wrangler"
[tools.wrangler.options]
diff --git a/docs/mise.toml b/docs/mise.toml
index 3791e7b8eb..da5d00940e 100644
--- a/docs/mise.toml
+++ b/docs/mise.toml
@@ -28,4 +28,4 @@ run = "prettier --write ."
run = "wrangler pages deploy build --project-name=${PROJECT_NAME} --branch=${BRANCH_NAME}"
[tools]
-wrangler = "4.100.0"
+wrangler = "4.119.0"
diff --git a/docs/package.json b/docs/package.json
index e1d26532db..d291c385f9 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -40,7 +40,8 @@
"@docusaurus/tsconfig": "^3.10.0",
"@docusaurus/types": "^3.10.0",
"prettier": "^3.7.4",
- "typescript": "^6.0.0"
+ "@typescript/native": "npm:typescript@^7.0.2",
+ "typescript": "npm:@typescript/typescript6@^6.0.2"
},
"browserslist": {
"production": [
diff --git a/docs/src/components/timeline.tsx b/docs/src/components/timeline.tsx
deleted file mode 100644
index 32b15edb59..0000000000
--- a/docs/src/components/timeline.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-import useIsBrowser from '@docusaurus/useIsBrowser';
-import { mdiCheckboxBlankCircle, mdiCheckboxMarkedCircle } from '@mdi/js';
-import Icon from '@mdi/react';
-import React from 'react';
-
-export type Item = {
- icon: string;
- iconColor: string;
- title: string;
- description?: string;
- link?: { url: string; text: string };
- done?: false;
- getDateLabel: (language: string) => string;
-};
-
-interface Props {
- items: Item[];
-}
-
-export function Timeline({ items }: Props): JSX.Element {
- const isBrowser = useIsBrowser();
-
- return (
-
- Welcome to Immich. We are committed to respecting your privacy. This Privacy Policy sets out how we collect,
- use, and share information when you use our Immich app.
-
-
-
- {/* 1. Scope of This Policy */}
-
-
1. Scope of This Policy
-
- This Privacy Policy applies to the Immich app ("we", "our", or "us") and covers our collection, use, and
- disclosure of your information. This Policy does not cover any third-party websites, services, or
- applications that can be accessed through our app, or third-party services you may access through Immich.
-
-
-
- {/* 2. Information We Collect */}
-
-
2. Information We Collect
-
-
- Locally Stored Data: Immich stores all your photos, albums, settings, and locally on your
- device. We do not have access to this data, nor do we transmit or store it on any of our servers.
-
-
-
-
-
- Purchase Information: When you make a purchase within the{' '}
- https://buy.immich.app, we collect the following information for tax
- calculation purposes:
-
-
-
Country of origin
-
Postal code (if the user is from Canada or the United States)
-
-
-
-
- {/* 3. Use of Your Information */}
-
-
3. Use of Your Information
-
- Tax Calculation: The country of origin and postal code (for users from Canada or the United
- States) are collected solely for determining the applicable tax rates on your purchase.
-
-
-
- {/* 4. Sharing of Your Information */}
-
-
4. Sharing of Your Information
-
-
- Tax Authorities: The purchase information may be shared with tax authorities as required
- by law.
-
-
- Payment Providers: The purchase information may be shared with payment providers where
- required.
-
-
-
-
- {/* 5. Changes to This Policy */}
-
-
5. Changes to This Policy
-
- We may update our Privacy Policy from time to time. If we make any changes, we will notify you by revising
- the "Last updated" date at the top of this policy. It's encouraged that users frequently check this page for
- any changes to stay informed about how we are helping to protect the personal information we collect.
-
-
-
- {/* 6. Contact Us */}
-
-
6. Contact Us
-
- If you have any questions about this Privacy Policy, please contact us at{' '}
- immich@futo.org
-
This project is available under GNU AGPL v3 license.
-
Privacy should not be a luxury
-
-
- );
-}
diff --git a/docs/static/_redirects b/docs/static/_redirects
index 218bb71d69..e218124e59 100644
--- a/docs/static/_redirects
+++ b/docs/static/_redirects
@@ -1,3 +1,4 @@
+/archived-versions.json https://version.immich.cloud/v1/docs/versions 307
/ /overview/quick-start 307
/mobile-app-beta-program /features/mobile-app 307
/contribution-guidelines /overview/support-the-project#contributing 307
@@ -36,3 +37,4 @@
/overview/welcome /overview/quick-start 307
/docs/* /:splat 307
/features/automatic-backup /features/mobile-backup 307
+/privacy-policy https://immich.app/privacy-policy 307
diff --git a/docs/static/archived-versions.json b/docs/static/archived-versions.json
deleted file mode 100644
index 61681e6b77..0000000000
--- a/docs/static/archived-versions.json
+++ /dev/null
@@ -1,261 +0,0 @@
-[
- {
- "label": "v3.0.0-rc.4",
- "url": "https://docs.v3.0.0-rc.4.archive.immich.app"
- },
- {
- "label": "v2.7.5",
- "url": "https://docs.v2.7.5.archive.immich.app"
- },
- {
- "label": "v2.6.3",
- "url": "https://docs.v2.6.3.archive.immich.app"
- },
- {
- "label": "v2.5.6",
- "url": "https://docs.v2.5.6.archive.immich.app"
- },
- {
- "label": "v2.4.1",
- "url": "https://docs.v2.4.1.archive.immich.app"
- },
- {
- "label": "v2.3.1",
- "url": "https://docs.v2.3.1.archive.immich.app"
- },
- {
- "label": "v2.2.3",
- "url": "https://docs.v2.2.3.archive.immich.app"
- },
- {
- "label": "v2.1.0",
- "url": "https://docs.v2.1.0.archive.immich.app"
- },
- {
- "label": "v2.0.1",
- "url": "https://docs.v2.0.1.archive.immich.app"
- },
- {
- "label": "v1.144.1",
- "url": "https://docs.v1.144.1.archive.immich.app"
- },
- {
- "label": "v1.143.1",
- "url": "https://docs.v1.143.1.archive.immich.app"
- },
- {
- "label": "v1.142.1",
- "url": "https://v1.142.1.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.141.1",
- "url": "https://v1.141.1.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.140.1",
- "url": "https://v1.140.1.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.139.4",
- "url": "https://v1.139.4.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.138.1",
- "url": "https://v1.138.1.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.137.3",
- "url": "https://v1.137.3.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.136.0",
- "url": "https://v1.136.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.135.3",
- "url": "https://v1.135.3.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.134.0",
- "url": "https://v1.134.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.133.1",
- "url": "https://v1.133.1.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.132.3",
- "url": "https://v1.132.3.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.131.3",
- "url": "https://v1.131.3.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.130.3",
- "url": "https://v1.130.3.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.129.0",
- "url": "https://v1.129.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.128.0",
- "url": "https://v1.128.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.127.0",
- "url": "https://v1.127.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.126.1",
- "url": "https://v1.126.1.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.125.7",
- "url": "https://v1.125.7.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.124.2",
- "url": "https://v1.124.2.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.123.0",
- "url": "https://v1.123.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.122.3",
- "url": "https://v1.122.3.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.121.0",
- "url": "https://v1.121.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.120.2",
- "url": "https://v1.120.2.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.119.1",
- "url": "https://v1.119.1.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.118.2",
- "url": "https://v1.118.2.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.117.0",
- "url": "https://v1.117.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.116.2",
- "url": "https://v1.116.2.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.115.0",
- "url": "https://v1.115.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.114.0",
- "url": "https://v1.114.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.113.1",
- "url": "https://v1.113.1.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.112.1",
- "url": "https://v1.112.1.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.111.0",
- "url": "https://v1.111.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.110.0",
- "url": "https://v1.110.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.109.2",
- "url": "https://v1.109.2.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.108.0",
- "url": "https://v1.108.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.107.2",
- "url": "https://v1.107.2.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.106.4",
- "url": "https://v1.106.4.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.105.1",
- "url": "https://v1.105.1.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.104.0",
- "url": "https://v1.104.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.103.1",
- "url": "https://v1.103.1.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.102.3",
- "url": "https://v1.102.3.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.101.0",
- "url": "https://v1.101.0.archive.immich.app",
- "rootPath": "/docs"
- },
- {
- "label": "v1.100.0",
- "url": "https://v1.100.0.archive.immich.app",
- "rootPath": "/docs"
- }
-]
diff --git a/docs/tailwind.config.js b/docs/tailwind.config.js
index 9a654487cc..95a1e4fa1b 100644
--- a/docs/tailwind.config.js
+++ b/docs/tailwind.config.js
@@ -11,15 +11,9 @@ module.exports = {
colors: {
// Light Theme
'immich-primary': '#4250af',
- 'immich-bg': '#f9f8fb',
- 'immich-fg': 'black',
- 'immich-gray': '#F6F6F4',
// Dark Theme
'immich-dark-primary': '#adcbfa',
- 'immich-dark-bg': '#000000',
- 'immich-dark-fg': '#e5e7eb',
- 'immich-dark-gray': '#111111',
},
},
},
diff --git a/e2e/docker-compose.yml b/e2e/docker-compose.yml
index 43dce89962..7c03cea653 100644
--- a/e2e/docker-compose.yml
+++ b/e2e/docker-compose.yml
@@ -45,7 +45,7 @@ services:
redis:
container_name: immich-e2e-redis
- image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
+ image: docker.io/valkey/valkey:9@sha256:3acc0687f2a2e1091fae6450d7842dd658c941338cf0a873ddd9e14b9e4ea4dd
healthcheck:
test: redis-cli ping || exit 1
diff --git a/e2e/eslint.config.mjs b/e2e/eslint.config.mjs
index f73e31e48e..3d69d1f503 100644
--- a/e2e/eslint.config.mjs
+++ b/e2e/eslint.config.mjs
@@ -2,13 +2,8 @@ import js from '@eslint/js';
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
import eslintPluginUnicorn from 'eslint-plugin-unicorn';
import globals from 'globals';
-import path from 'node:path';
-import { fileURLToPath } from 'node:url';
import typescriptEslint from 'typescript-eslint';
-const __filename = fileURLToPath(import.meta.url);
-const __dirname = path.dirname(__filename);
-
export default typescriptEslint.config([
eslintPluginUnicorn.configs.recommended,
eslintPluginPrettierRecommended,
@@ -29,7 +24,7 @@ export default typescriptEslint.config([
parserOptions: {
project: 'tsconfig.json',
- tsconfigRootDir: __dirname,
+ tsconfigRootDir: import.meta.dirname,
},
},
@@ -41,9 +36,18 @@ export default typescriptEslint.config([
'@typescript-eslint/no-floating-promises': 'error',
'unicorn/prefer-module': 'off',
'unicorn/import-style': 'off',
+ 'unicorn/consistent-boolean-name': 'off',
+ 'unicorn/no-non-function-verb-prefix': 'off',
+ 'unicorn/no-unreadable-for-of-expression': 'off',
+ 'unicorn/max-nested-calls': 'off',
+ 'unicorn/prefer-uint8array-base64': 'off',
+ 'unicorn/isolated-functions': 'off',
+ 'unicorn/prefer-promise-with-resolvers': 'off',
+ 'unicorn/no-declarations-before-early-exit': 'off',
+ 'unicorn/prefer-simple-condition-first': 'off',
curly: 2,
'prettier/prettier': 0,
- 'unicorn/prevent-abbreviations': 'off',
+ 'unicorn/name-replacements': 'off',
'unicorn/filename-case': 'off',
'unicorn/no-null': 'off',
'unicorn/prefer-top-level-await': 'off',
diff --git a/e2e/mise.toml b/e2e/mise.toml
index b149922564..487f4ebf46 100644
--- a/e2e/mise.toml
+++ b/e2e/mise.toml
@@ -1,5 +1,5 @@
[tasks.install]
-run = "pnpm install --filter immich-e2e --frozen-lockfile"
+run = "pnpm install --filter immich-e2e... --frozen-lockfile"
[tasks.build]
dir = "{{ config_root }}"
@@ -40,18 +40,19 @@ run = "tsc --noEmit"
[tasks.ci-setup]
-depends = [
- "//:sdk:install",
- "//:sdk:build",
- "//packages/cli:install",
- "//packages/cli:build",
+run = [
+ { task = "//:sdk:install" },
+ { task = "//:sdk:build" },
+ { task = "//packages/cli:install" },
+ { task = "//packages/cli:build" },
+ { task = ":install" },
]
-run = { task = ":install" }
[tasks.ci-unit]
-depends = ["//:sdk:install", "//:sdk:build"]
run = [
+ { task = "//:sdk:install" },
+ { task = "//:sdk:build" },
{ task = ":install" },
{ task = ":format" },
{ task = ":lint" },
diff --git a/e2e/package.json b/e2e/package.json
index e10bdfca5a..6f38758a5f 100644
--- a/e2e/package.json
+++ b/e2e/package.json
@@ -1,6 +1,6 @@
{
"name": "immich-e2e",
- "version": "3.0.0-rc.4",
+ "version": "3.1.0",
"description": "",
"main": "index.js",
"type": "module",
@@ -32,7 +32,7 @@
"@playwright/test": "^1.44.1",
"@socket.io/component-emitter": "^3.1.2",
"@types/luxon": "^3.4.2",
- "@types/node": "^24.13.2",
+ "@types/node": "^24.13.3",
"@types/pg": "^8.15.1",
"@types/pngjs": "^6.0.4",
"@types/supertest": "^7.0.0",
@@ -40,7 +40,7 @@
"eslint": "^10.0.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.1.3",
- "eslint-plugin-unicorn": "^64.0.0",
+ "eslint-plugin-unicorn": "^72.0.0",
"exiftool-vendored": "^35.0.0",
"globals": "^17.0.0",
"luxon": "^3.4.4",
@@ -51,7 +51,8 @@
"sharp": "^0.34.5",
"socket.io-client": "^4.7.4",
"supertest": "^7.0.0",
- "typescript": "^6.0.0",
+ "@typescript/native": "npm:typescript@^7.0.2",
+ "typescript": "npm:@typescript/typescript6@^6.0.2",
"typescript-eslint": "^8.28.0",
"utimes": "^5.2.1",
"vitest": "^4.0.0"
diff --git a/e2e/src/api/specs/duplicate.e2e-spec.ts b/e2e/src/api/specs/duplicate.e2e-spec.ts
deleted file mode 100644
index d6d0ec1394..0000000000
--- a/e2e/src/api/specs/duplicate.e2e-spec.ts
+++ /dev/null
@@ -1,651 +0,0 @@
-import { LoginResponseDto } from '@immich/sdk';
-import { createUserDto, uuidDto } from 'src/fixtures';
-import { errorDto } from 'src/responses';
-import { app, utils } from 'src/utils';
-import request from 'supertest';
-import { beforeAll, beforeEach, describe, expect, it } from 'vitest';
-
-describe('/duplicates', () => {
- let admin: LoginResponseDto;
- let user1: LoginResponseDto;
- let user2: LoginResponseDto;
-
- beforeAll(async () => {
- await utils.resetDatabase();
-
- admin = await utils.adminSetup();
-
- [user1, user2] = await Promise.all([
- utils.userSetup(admin.accessToken, createUserDto.user1),
- utils.userSetup(admin.accessToken, createUserDto.user2),
- ]);
- });
-
- beforeEach(async () => {
- // Reset assets, albums, tags, and stacks between tests to ensure clean state for repeated test runs
- // Note: We don't reset users since they're set up once in beforeAll
- // Stack must be reset before asset due to foreign key constraint
- await utils.resetDatabase(['stack', 'asset', 'album', 'tag']);
- });
-
- describe('GET /duplicates', () => {
- it('should return empty array when no duplicates', async () => {
- const { status, body } = await request(app)
- .get('/duplicates')
- .set('Authorization', `Bearer ${user1.accessToken}`);
-
- expect(status).toBe(200);
- expect(body).toEqual([]);
- });
-
- it('should return duplicate groups with suggestedKeepAssetIds', async () => {
- // Create assets with different file sizes for duplicate detection
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- // Manually set duplicateId on both assets to create a duplicate group
- const duplicateId = '00000000-0000-4000-8000-000000000001';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .get('/duplicates')
- .set('Authorization', `Bearer ${user1.accessToken}`);
-
- expect(status).toBe(200);
- expect(body).toEqual([
- {
- duplicateId,
- assets: expect.arrayContaining([
- expect.objectContaining({ id: asset1.id }),
- expect.objectContaining({ id: asset2.id }),
- ]),
- suggestedKeepAssetIds: expect.any(Array),
- },
- ]);
- expect(body[0].suggestedKeepAssetIds.length).toBe(1);
- });
- });
-
- describe('POST /duplicates/resolve', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .send({
- groups: [{ duplicateId: uuidDto.dummy, keepAssetIds: [], trashAssetIds: [] }],
- });
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
- it('should return failure for non-existent duplicate group', async () => {
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId: uuidDto.dummy, keepAssetIds: [], trashAssetIds: [] }],
- });
-
- expect(status).toBe(200);
- expect(body).toEqual({
- status: 'COMPLETED',
- results: [
- {
- duplicateId: uuidDto.dummy,
- status: 'FAILED',
- reason: expect.stringContaining('not found or access denied'),
- },
- ],
- });
- });
-
- it('should resolve duplicate group with keepers', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- const duplicateId = '00000000-0000-4000-8000-000000000002';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body).toEqual({
- status: 'COMPLETED',
- results: [
- {
- duplicateId,
- status: 'SUCCESS',
- },
- ],
- });
-
- // Verify side effects: duplicateId cleared on kept asset
- const keptAsset = await utils.getAssetInfo(user1.accessToken, asset1.id);
- expect(keptAsset.duplicateId).toBeNull();
-
- // Verify side effects: trashed asset is trashed and duplicateId cleared
- const trashedAsset = await utils.getAssetInfo(user1.accessToken, asset2.id);
- expect(trashedAsset.isTrashed).toBe(true);
- expect(trashedAsset.duplicateId).toBeNull();
- });
-
- it('should reject when keepAssetIds and trashAssetIds overlap', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- const duplicateId = '00000000-0000-4000-8000-000000000003';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset1.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('FAILED');
- expect(body.results[0].reason).toContain('disjoint');
- });
-
- it('should require keepAssetIds when partially trashing', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- const duplicateId = '00000000-0000-4000-8000-000000000004';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [], trashAssetIds: [asset1.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('FAILED');
- expect(body.results[0].reason).toContain('must cover all assets');
- });
-
- it('should reject partial resolution (not all assets covered)', async () => {
- const [asset1, asset2, asset3] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- const duplicateId = '00000000-0000-4000-8000-000000000010';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset3.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('FAILED');
- expect(body.results[0].reason).toContain('must cover all assets');
- });
-
- it('should reject asset not in duplicate group', async () => {
- const [asset1, asset2, outsideAsset] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- const duplicateId = '00000000-0000-4000-8000-000000000011';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [outsideAsset.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('FAILED');
- expect(body.results[0].reason).toContain('not a member of duplicate group');
- });
-
- it('should allow trash-all without keepers', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- const duplicateId = '00000000-0000-4000-8000-000000000012';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [], trashAssetIds: [asset1.id, asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body).toEqual({
- status: 'COMPLETED',
- results: [
- {
- duplicateId,
- status: 'SUCCESS',
- },
- ],
- });
-
- // Verify both assets are trashed
- const [asset1Info, asset2Info] = await Promise.all([
- utils.getAssetInfo(user1.accessToken, asset1.id),
- utils.getAssetInfo(user1.accessToken, asset2.id),
- ]);
-
- expect(asset1Info.isTrashed).toBe(true);
- expect(asset1Info.duplicateId).toBeNull();
- expect(asset2Info.isTrashed).toBe(true);
- expect(asset2Info.duplicateId).toBeNull();
- });
-
- it('should reject cross-user duplicate group access', async () => {
- const asset1 = await utils.createAsset(user1.accessToken);
- const asset2 = await utils.createAsset(user2.accessToken);
-
- const duplicateId = '00000000-0000-4000-8000-000000000013';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user2.accessToken, asset2.id, duplicateId);
-
- // User1 tries to resolve a group containing user2's asset
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('FAILED');
- expect(body.results[0].reason).toContain('not a member of duplicate group');
- });
-
- it('should synchronize favorites when enabled', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- // Mark one asset as favorite
- await request(app)
- .put('/assets')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({ ids: [asset2.id], isFavorite: true });
-
- const duplicateId = '00000000-0000-4000-8000-000000000020';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('SUCCESS');
-
- // Verify favorite was synchronized to keeper
- const keptAsset = await utils.getAssetInfo(user1.accessToken, asset1.id);
- expect(keptAsset.isFavorite).toBe(true);
- expect(keptAsset.duplicateId).toBeNull();
- });
-
- it('should synchronize visibility when enabled', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- // Archive one asset
- await utils.archiveAssets(user1.accessToken, [asset2.id]);
-
- const duplicateId = '00000000-0000-4000-8000-000000000021';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('SUCCESS');
-
- // Verify visibility was synchronized to keeper
- const keptAsset = await utils.getAssetInfo(user1.accessToken, asset1.id);
- expect(keptAsset.visibility).toBe('archive');
- expect(keptAsset.duplicateId).toBeNull();
- });
-
- it('should synchronize rating when enabled', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- // Set rating on one asset
- await request(app)
- .put('/assets')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({ ids: [asset2.id], rating: 5 });
-
- const duplicateId = '00000000-0000-4000-8000-000000000022';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('SUCCESS');
-
- // Verify rating was synchronized to keeper
- const keptAsset = await utils.getAssetInfo(user1.accessToken, asset1.id);
- expect(keptAsset.exifInfo?.rating).toBe(5);
- expect(keptAsset.duplicateId).toBeNull();
- });
-
- it('should synchronize description when enabled', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- // Set description on one asset
- await request(app)
- .put('/assets')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({ ids: [asset2.id], description: 'Test description for duplicate' });
-
- const duplicateId = '00000000-0000-4000-8000-000000000023';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('SUCCESS');
-
- // Verify description was synchronized to keeper
- const keptAsset = await utils.getAssetInfo(user1.accessToken, asset1.id);
- expect(keptAsset.exifInfo?.description).toBe('Test description for duplicate');
- expect(keptAsset.duplicateId).toBeNull();
- });
-
- it('should synchronize location when enabled', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- // Set location on one asset
- await request(app)
- .put('/assets')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({ ids: [asset2.id], latitude: 40.7128, longitude: -74.006 });
-
- const duplicateId = '00000000-0000-4000-8000-000000000024';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('SUCCESS');
-
- // Verify location was synchronized to keeper
- const keptAsset = await utils.getAssetInfo(user1.accessToken, asset1.id);
- expect(keptAsset.exifInfo?.latitude).toBe(40.7128);
- expect(keptAsset.exifInfo?.longitude).toBe(-74.006);
- expect(keptAsset.duplicateId).toBeNull();
- });
-
- it('should synchronize albums when enabled', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- // Create albums and add assets to different albums
- const album1 = await utils.createAlbum(user1.accessToken, {
- albumName: 'Album 1',
- assetIds: [asset1.id],
- });
- const album2 = await utils.createAlbum(user1.accessToken, {
- albumName: 'Album 2',
- assetIds: [asset2.id],
- });
-
- const duplicateId = '00000000-0000-4000-8000-000000000025';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('SUCCESS');
-
- // Verify keeper is now in both albums
- const keptAsset = await utils.getAssetInfo(user1.accessToken, asset1.id);
- expect(keptAsset.duplicateId).toBeNull();
-
- // Check albums directly
- const { status: album1Status, body: album1Body } = await request(app)
- .get(`/albums/${album1.id}`)
- .set('Authorization', `Bearer ${user1.accessToken}`);
- const { status: album2Status, body: album2Body } = await request(app)
- .get(`/albums/${album2.id}`)
- .set('Authorization', `Bearer ${user1.accessToken}`);
-
- expect(album1Status).toBe(200);
- expect(album2Status).toBe(200);
- expect(album1Body.assets.map((a: any) => a.id)).toContain(asset1.id);
- expect(album2Body.assets.map((a: any) => a.id)).toContain(asset1.id);
- });
-
- it('should synchronize tags when enabled', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- // Wait for metadata extraction to complete before adding tags
- // Otherwise, metadata jobs will race and overwrite our tags
- await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
-
- // Create tags and tag assets differently
- const tags = await utils.upsertTags(user1.accessToken, ['tag1', 'tag2']);
- await utils.tagAssets(user1.accessToken, tags[0].id, [asset1.id]);
- await utils.tagAssets(user1.accessToken, tags[1].id, [asset2.id]);
-
- const duplicateId = '00000000-0000-4000-8000-000000000026';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('SUCCESS');
-
- // Verify keeper has both tags
- const keptAsset = await utils.getAssetInfo(user1.accessToken, asset1.id);
- expect(keptAsset.duplicateId).toBeNull();
- expect(keptAsset.tags).toBeDefined();
- const tagIds = keptAsset.tags?.map((t) => t.id) || [];
- expect(tagIds).toContain(tags[0].id);
- expect(tagIds).toContain(tags[1].id);
- });
-
- it('should handle batch resolve with mixed success and failure', async () => {
- // Create first group that will succeed
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
- const duplicateId1 = '00000000-0000-4000-8000-000000000027';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId1);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId1);
-
- // Create second group with non-existent duplicate ID (will fail)
- const fakeId = '00000000-0000-4000-8000-000000000099';
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [
- { duplicateId: duplicateId1, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] },
- { duplicateId: fakeId, keepAssetIds: [], trashAssetIds: [] },
- ],
- });
-
- expect(status).toBe(200);
- expect(body.status).toBe('COMPLETED');
- expect(body.results).toHaveLength(2);
-
- // First group should succeed
- expect(body.results[0].duplicateId).toBe(duplicateId1);
- expect(body.results[0].status).toBe('SUCCESS');
-
- // Second group should fail
- expect(body.results[1].duplicateId).toBe(fakeId);
- expect(body.results[1].status).toBe('FAILED');
- expect(body.results[1].reason).toContain('not found or access denied');
-
- // Verify first group was actually resolved despite second failure
- const asset1Info = await utils.getAssetInfo(user1.accessToken, asset1.id);
- expect(asset1Info.duplicateId).toBeNull();
- const asset2Info = await utils.getAssetInfo(user1.accessToken, asset2.id);
- expect(asset2Info.isTrashed).toBe(true);
- });
-
- it('should trash assets when trash is enabled', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- const duplicateId = '00000000-0000-4000-8000-000000000028';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- // Ensure trash is enabled (default)
- const config = await utils.getSystemConfig(admin.accessToken);
- expect(config.trash.enabled).toBe(true);
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('SUCCESS');
-
- // Verify asset is trashed (not deleted)
- const trashedAsset = await utils.getAssetInfo(user1.accessToken, asset2.id);
- expect(trashedAsset.isTrashed).toBe(true);
- });
-
- it('should delete assets when trash is disabled', async () => {
- const [asset1, asset2] = await Promise.all([
- utils.createAsset(user1.accessToken),
- utils.createAsset(user1.accessToken),
- ]);
-
- const duplicateId = '00000000-0000-4000-8000-000000000029';
- await utils.setAssetDuplicateId(user1.accessToken, asset1.id, duplicateId);
- await utils.setAssetDuplicateId(user1.accessToken, asset2.id, duplicateId);
-
- // Disable trash
- await request(app)
- .put('/system-config')
- .set('Authorization', `Bearer ${admin.accessToken}`)
- .send({
- trash: { enabled: false, days: 30 },
- });
-
- const { status, body } = await request(app)
- .post('/duplicates/resolve')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({
- groups: [{ duplicateId, keepAssetIds: [asset1.id], trashAssetIds: [asset2.id] }],
- });
-
- expect(status).toBe(200);
- expect(body.results[0].status).toBe('SUCCESS');
-
- // Asset should be marked as deleted (force delete)
- const { status: getStatus } = await request(app)
- .get(`/assets/${asset2.id}`)
- .set('Authorization', `Bearer ${user1.accessToken}`);
-
- // Asset should still be accessible (soft deleted) but marked as deleted
- expect(getStatus).toBe(200);
-
- // Re-enable trash for other tests
- await utils.resetAdminConfig(admin.accessToken);
- });
- });
-});
diff --git a/e2e/src/fixtures.ts b/e2e/src/fixtures.ts
index 1e03ad6d24..a43e2c3e69 100644
--- a/e2e/src/fixtures.ts
+++ b/e2e/src/fixtures.ts
@@ -1,9 +1,7 @@
export const uuidDto = {
- invalid: 'invalid-uuid',
// valid uuid v4
notFound: '00000000-0000-4000-a000-000000000000',
dummy: '00000000-0000-4000-a000-000000000001',
- dummy2: '00000000-0000-4000-a000-000000000002',
};
const adminLoginDto = {
@@ -57,22 +55,6 @@ export const createUserDto = {
};
export const userDto = {
- admin: {
- name: signupDto.admin.name,
- email: signupDto.admin.email,
- password: signupDto.admin.password,
- storageLabel: 'admin',
- oauthId: '',
- shouldChangePassword: false,
- profileImagePath: '',
- createdAt: new Date('2021-01-01'),
- deletedAt: null,
- updatedAt: new Date('2021-01-01'),
- tags: [],
- assets: [],
- quotaSizeInBytes: null,
- quotaUsageInBytes: 0,
- },
user1: {
name: createUserDto.user1.name,
email: createUserDto.user1.email,
diff --git a/e2e/src/responses.ts b/e2e/src/responses.ts
index 5fd887c44b..337d101cb4 100644
--- a/e2e/src/responses.ts
+++ b/e2e/src/responses.ts
@@ -38,46 +38,8 @@ export const errorDto = {
incorrectLogin: {
message: 'Incorrect email or password',
},
- alreadyHasAdmin: {
- message: 'The server already has an admin',
- },
};
-export const signupResponseDto = {
- admin: {
- avatarColor: expect.any(String),
- id: expect.any(String),
- name: 'Immich Admin',
- email: 'admin@immich.cloud',
- storageLabel: 'admin',
- profileImagePath: '',
- // why? lol
- shouldChangePassword: true,
- isAdmin: true,
- createdAt: expect.any(String),
- updatedAt: expect.any(String),
- deletedAt: null,
- oauthId: '',
- quotaUsageInBytes: 0,
- quotaSizeInBytes: null,
- status: 'active',
- license: null,
- profileChangedAt: expect.any(String),
- },
-};
-
-export const loginResponseDto = {
- admin: {
- accessToken: expect.any(String),
- name: 'Immich Admin',
- isAdmin: true,
- isOnboarded: false,
- profileImagePath: '',
- shouldChangePassword: true,
- userEmail: 'admin@immich.cloud',
- userId: expect.any(String),
- },
-};
export const deviceDto = {
current: {
id: expect.any(String),
diff --git a/e2e/src/specs/maintenance/server/database-backups.e2e-spec.ts b/e2e/src/specs/maintenance/server/database-backups.e2e-spec.ts
index e3bd98db28..e757c721d6 100644
--- a/e2e/src/specs/maintenance/server/database-backups.e2e-spec.ts
+++ b/e2e/src/specs/maintenance/server/database-backups.e2e-spec.ts
@@ -108,7 +108,7 @@ describe('/admin/database-backups', () => {
const { status, body } = await request(app).post('/admin/database-backups/start-restore').send();
expect(status).toBe(400);
- expect(body).toEqual(errorDto.badRequest('The server already has an admin'));
+ expect(body).toEqual(errorDto.badRequest('Admin setup is not available'));
});
it.sequential('should enter maintenance mode in "database restore mode"', async () => {
@@ -118,7 +118,7 @@ describe('/admin/database-backups', () => {
expect(status).toBe(201);
- cookie = headers['set-cookie'][0].split(';')[0];
+ cookie = headers['set-cookie'][0].split(';', 1)[0];
await expect
.poll(
@@ -224,7 +224,7 @@ describe('/admin/database-backups', () => {
});
expect(status).toBe(201);
- cookie = headers['set-cookie'][0].split(';')[0];
+ cookie = headers['set-cookie'][0].split(';', 1)[0];
await expect
.poll(
@@ -295,7 +295,7 @@ describe('/admin/database-backups', () => {
});
expect(status).toBe(201);
- cookie = headers['set-cookie'][0].split(';')[0];
+ cookie = headers['set-cookie'][0].split(';', 1)[0];
await expect
.poll(
diff --git a/e2e/src/specs/maintenance/server/maintenance.e2e-spec.ts b/e2e/src/specs/maintenance/server/maintenance.e2e-spec.ts
index 819a4e31f7..f3833ffc00 100644
--- a/e2e/src/specs/maintenance/server/maintenance.e2e-spec.ts
+++ b/e2e/src/specs/maintenance/server/maintenance.e2e-spec.ts
@@ -85,7 +85,7 @@ describe('/admin/maintenance', () => {
expect(status).toBe(201);
- cookie = headers['set-cookie'][0].split(';')[0];
+ cookie = headers['set-cookie'][0].split(';', 1)[0];
expect(cookie).toEqual(
expect.stringMatching(/^immich_maintenance_token=[A-Za-z0-9-_]*\.[A-Za-z0-9-_]*\.[A-Za-z0-9-_]*$/),
);
@@ -149,7 +149,7 @@ describe('/admin/maintenance', () => {
const { status, body } = await request(app)
.post('/admin/maintenance/login')
.send({
- token: cookie!.split('=')[1].trim(),
+ token: cookie!.split('=', 2)[1].trim(),
});
expect(status).toBe(201);
expect(body).toEqual(
diff --git a/e2e/src/specs/maintenance/web/maintenance.e2e-spec.ts b/e2e/src/specs/maintenance/web/maintenance.e2e-spec.ts
index 8b1631f0bf..6b58f5a425 100644
--- a/e2e/src/specs/maintenance/web/maintenance.e2e-spec.ts
+++ b/e2e/src/specs/maintenance/web/maintenance.e2e-spec.ts
@@ -27,7 +27,7 @@ test.describe('Maintenance', () => {
test('maintenance shows no options to users until they authenticate', async ({ page }) => {
const setCookie = await utils.enterMaintenance(admin.accessToken);
const cookie = setCookie
- ?.map((cookie) => cookie.split(';')[0].split('='))
+ ?.map((cookie) => cookie.split(';', 1)[0].split('='))
?.find(([name]) => name === 'immich_maintenance_token');
expect(cookie).toBeTruthy();
diff --git a/e2e/src/specs/server/api/album.e2e-spec.ts b/e2e/src/specs/server/api/album.e2e-spec.ts
index 0aa7b7ec03..f252e5d321 100644
--- a/e2e/src/specs/server/api/album.e2e-spec.ts
+++ b/e2e/src/specs/server/api/album.e2e-spec.ts
@@ -120,6 +120,7 @@ describe('/albums', () => {
}),
]);
+ // eslint-disable-next-line unicorn/no-unreadable-array-destructuring
[user2Albums[0]] = await Promise.all([
getAlbumInfo({ id: user2Albums[0].id }, { headers: asBearerAuth(user2.accessToken) }),
deleteUserAdmin({ id: user3.userId, userAdminDeleteDto: {} }, { headers: asBearerAuth(admin.accessToken) }),
@@ -796,5 +797,22 @@ describe('/albums', () => {
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest('Not found or no album.share access'));
});
+
+ it('should not allow an editor to change the role of an owner', async () => {
+ const album = await utils.createAlbum(user1.accessToken, {
+ albumName: 'testAlbum',
+ albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Editor }],
+ });
+
+ expect(album.albumUsers[1].role).toEqual(AlbumUserRole.Editor);
+
+ const { status, body } = await request(app)
+ .put(`/albums/${album.id}/user/${user1.userId}`)
+ .set('Authorization', `Bearer ${user2.accessToken}`)
+ .send({ role: AlbumUserRole.Editor });
+
+ expect(status).toBe(400);
+ expect(body).toEqual(errorDto.badRequest('User is owner'));
+ });
});
});
diff --git a/e2e/src/specs/server/api/asset.e2e-spec.ts b/e2e/src/specs/server/api/asset.e2e-spec.ts
index 010b096c4d..ccebd1ca77 100644
--- a/e2e/src/specs/server/api/asset.e2e-spec.ts
+++ b/e2e/src/specs/server/api/asset.e2e-spec.ts
@@ -781,7 +781,7 @@ describe('/asset', () => {
exifImageWidth: 4032,
exifImageHeight: 3024,
latitude: 41.2203,
- longitude: -96.071_625,
+ longitude: -96.071625,
make: 'Apple',
model: 'iPhone 7',
lensModel: 'iPhone 7 back camera 3.99mm f/1.8',
@@ -973,9 +973,9 @@ describe('/asset', () => {
fileSizeInByte: 31_175_472,
focalLength: 18.3,
iso: 100,
- latitude: 36.613_24,
+ latitude: 36.61324,
lensModel: '18.3mm F2.8',
- longitude: -121.897_85,
+ longitude: -121.89785,
make: 'RICOH IMAGING COMPANY, LTD.',
model: 'RICOH GR III',
orientation: '1',
diff --git a/e2e/src/specs/server/api/map.e2e-spec.ts b/e2e/src/specs/server/api/map.e2e-spec.ts
index 2eb363eabd..c177fa740b 100644
--- a/e2e/src/specs/server/api/map.e2e-spec.ts
+++ b/e2e/src/specs/server/api/map.e2e-spec.ts
@@ -75,7 +75,7 @@ describe('/map', () => {
country: 'United States of America',
id: expect.any(String),
lat: expect.closeTo(39.115),
- lon: expect.closeTo(-108.400_968),
+ lon: expect.closeTo(-108.400968),
state: 'Colorado',
},
{
@@ -83,7 +83,7 @@ describe('/map', () => {
country: 'United States of America',
id: expect.any(String),
lat: expect.closeTo(41.2203),
- lon: expect.closeTo(-96.071_625),
+ lon: expect.closeTo(-96.071625),
state: 'Nebraska',
},
]);
@@ -123,7 +123,7 @@ describe('/map', () => {
country: 'United States of America',
id: expect.any(String),
lat: expect.closeTo(39.115),
- lon: expect.closeTo(-108.400_968),
+ lon: expect.closeTo(-108.400968),
state: 'Colorado',
},
{
@@ -131,7 +131,7 @@ describe('/map', () => {
country: 'United States of America',
id: expect.any(String),
lat: expect.closeTo(41.2203),
- lon: expect.closeTo(-96.071_625),
+ lon: expect.closeTo(-96.071625),
state: 'Nebraska',
},
]);
@@ -188,20 +188,20 @@ describe('/map', () => {
const reverseGeocodeTestCases = [
{
name: 'Vaucluse',
- lat: -33.858_977_058_663_13,
- lon: 151.278_490_730_270_48,
+ lat: -33.85897705866313,
+ lon: 151.27849073027048,
results: [{ city: 'Vaucluse', state: 'New South Wales', country: 'Australia' }],
},
{
name: 'Ravenhall',
- lat: -37.765_732_399_174_75,
- lon: 144.752_453_164_883_3,
+ lat: -37.76573239917475,
+ lon: 144.7524531648833,
results: [{ city: 'Ravenhall', state: 'Victoria', country: 'Australia' }],
},
{
name: 'Scarborough',
- lat: -31.894_346_156_789_997,
- lon: 115.757_617_103_904_64,
+ lat: -31.894346156789997,
+ lon: 115.75761710390464,
results: [{ city: 'Scarborough', state: 'Western Australia', country: 'Australia' }],
},
];
diff --git a/e2e/src/specs/server/api/oauth.e2e-spec.ts b/e2e/src/specs/server/api/oauth.e2e-spec.ts
index 4bf4f197b1..ade6475519 100644
--- a/e2e/src/specs/server/api/oauth.e2e-spec.ts
+++ b/e2e/src/specs/server/api/oauth.e2e-spec.ts
@@ -44,7 +44,7 @@ const loginWithOAuth = async (sub: OAuthUser | string, redirectUri?: string) =>
});
// login
- const response1 = await redirect(url.replace(authServer.internal, authServer.external));
+ const response1 = await redirect(url.replace(authServer.internal, () => authServer.external));
const response2 = await request(authServer.external + response1.location)
.post('')
.set('Cookie', response1.cookies)
diff --git a/e2e/src/specs/server/api/partner.e2e-spec.ts b/e2e/src/specs/server/api/partner.e2e-spec.ts
index 9047a97055..0eb7d6db3d 100644
--- a/e2e/src/specs/server/api/partner.e2e-spec.ts
+++ b/e2e/src/specs/server/api/partner.e2e-spec.ts
@@ -1,6 +1,5 @@
import { LoginResponseDto, createPartner } from '@immich/sdk';
import { createUserDto } from 'src/fixtures';
-import { errorDto } from 'src/responses';
import { app, asBearerAuth, utils } from 'src/utils';
import request from 'supertest';
import { beforeAll, describe, expect, it } from 'vitest';
@@ -29,13 +28,6 @@ describe('/partners', () => {
});
describe('GET /partners', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get('/partners');
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should get all partners shared by user', async () => {
const { status, body } = await request(app)
.get('/partners')
@@ -58,13 +50,6 @@ describe('/partners', () => {
});
describe('POST /partners/:id', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).post(`/partners/${user3.userId}`);
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should share with new partner', async () => {
const { status, body } = await request(app)
.post(`/partners/${user3.userId}`)
@@ -85,13 +70,6 @@ describe('/partners', () => {
});
describe('PUT /partners/:id', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).put(`/partners/${user2.userId}`);
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should update partner', async () => {
const { status, body } = await request(app)
.put(`/partners/${user2.userId}`)
@@ -104,13 +82,6 @@ describe('/partners', () => {
});
describe('DELETE /partners/:id', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).delete(`/partners/${user3.userId}`);
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should delete partner', async () => {
const { status } = await request(app)
.delete(`/partners/${user3.userId}`)
diff --git a/e2e/src/specs/server/api/search.e2e-spec.ts b/e2e/src/specs/server/api/search.e2e-spec.ts
index 0b86053f78..47c88c238c 100644
--- a/e2e/src/specs/server/api/search.e2e-spec.ts
+++ b/e2e/src/specs/server/api/search.e2e-spec.ts
@@ -4,6 +4,7 @@ import {
AssetVisibility,
deleteAssets,
LoginResponseDto,
+ SharedLinkType,
updateAsset,
} from '@immich/sdk';
import { DateTime } from 'luxon';
@@ -86,23 +87,23 @@ describe('/search', () => {
// note: the coordinates here are not the actual coordinates of the images and are random for most of them
const coordinates = [
- { latitude: 48.853_41, longitude: 2.3488 }, // paris
- { latitude: 35.6895, longitude: 139.691_71 }, // tokyo
- { latitude: 52.524_37, longitude: 13.410_53 }, // berlin
- { latitude: 1.314_663_1, longitude: 103.845_409_3 }, // singapore
- { latitude: 41.013_84, longitude: 28.949_66 }, // istanbul
- { latitude: 5.556_02, longitude: -0.1969 }, // accra
- { latitude: 37.544_270_6, longitude: -4.727_752_8 }, // andalusia
- { latitude: 23.133_02, longitude: -82.383_04 }, // havana
- { latitude: 41.694_11, longitude: 44.833_68 }, // tbilisi
- { latitude: 31.222_22, longitude: 121.458_06 }, // shanghai
+ { latitude: 48.85341, longitude: 2.3488 }, // paris
+ { latitude: 35.6895, longitude: 139.69171 }, // tokyo
+ { latitude: 52.52437, longitude: 13.41053 }, // berlin
+ { latitude: 1.3146631, longitude: 103.8454093 }, // singapore
+ { latitude: 41.01384, longitude: 28.94966 }, // istanbul
+ { latitude: 5.55602, longitude: -0.1969 }, // accra
+ { latitude: 37.5442706, longitude: -4.7277528 }, // andalusia
+ { latitude: 23.13302, longitude: -82.38304 }, // havana
+ { latitude: 41.69411, longitude: 44.83368 }, // tbilisi
+ { latitude: 31.22222, longitude: 121.45806 }, // shanghai
{ latitude: 38.9711, longitude: -109.7137 }, // thompson springs
- { latitude: 40.714_27, longitude: -74.005_97 }, // new york
- { latitude: 47.040_57, longitude: 9.068_04 }, // glarus
- { latitude: 32.771_52, longitude: -89.116_73 }, // philadelphia
- { latitude: 31.634_16, longitude: -7.999_94 }, // marrakesh
- { latitude: 38.523_735_4, longitude: -78.488_619_4 }, // tanners ridge
- { latitude: 59.938_63, longitude: 30.314_13 }, // st. petersburg
+ { latitude: 40.71427, longitude: -74.00597 }, // new york
+ { latitude: 47.04057, longitude: 9.06804 }, // glarus
+ { latitude: 32.77152, longitude: -89.11673 }, // philadelphia
+ { latitude: 31.63416, longitude: -7.99994 }, // marrakesh
+ { latitude: 38.5237354, longitude: -78.4886194 }, // tanners ridge
+ { latitude: 59.93863, longitude: 30.31413 }, // st. petersburg
{ latitude: 0, longitude: 0 }, // null island
];
@@ -111,7 +112,7 @@ describe('/search', () => {
);
await Promise.all(updates);
- for (const [i] of coordinates.entries()) {
+ for (const i of coordinates.keys()) {
await utils.waitForWebsocketEvent({ event: 'assetUpdate', id: assets[i].id });
}
@@ -357,6 +358,32 @@ describe('/search', () => {
expect(body.assets.items).toHaveLength(assets.length);
});
}
+
+ it('should reject shared link access without an album filter', async () => {
+ const album = await utils.createAlbum(admin.accessToken, { albumName: 'foo' });
+ const sharedLink = await utils.createSharedLink(admin.accessToken, {
+ type: SharedLinkType.Album,
+ albumId: album.id,
+ });
+ const { status, body } = await request(app).post(`/search/metadata?key=${sharedLink.key}`).send({});
+ expect(status).toBe(400);
+ expect(body).toEqual({ message: 'Shared link access is only allowed in combination with an albumIds filter' });
+ });
+
+ it('should allow shared link access for albums', async () => {
+ const asset = await utils.createAsset(admin.accessToken);
+ const album = await utils.createAlbum(admin.accessToken, { albumName: 'foo', assetIds: [asset.id] });
+ const sharedLink = await utils.createSharedLink(admin.accessToken, {
+ type: SharedLinkType.Album,
+ albumId: album.id,
+ });
+
+ const { status, body } = await request(app)
+ .post(`/search/metadata?key=${sharedLink.key}`)
+ .send({ albumIds: [album.id] });
+ expect(status).toBe(200);
+ expect(body.assets.items).toEqual([expect.objectContaining({ id: asset.id })]);
+ });
});
describe('POST /search/random', () => {
diff --git a/e2e/src/specs/server/api/server.e2e-spec.ts b/e2e/src/specs/server/api/server.e2e-spec.ts
index 46d998511d..f0eed82f7a 100644
--- a/e2e/src/specs/server/api/server.e2e-spec.ts
+++ b/e2e/src/specs/server/api/server.e2e-spec.ts
@@ -22,12 +22,6 @@ describe('/server', () => {
});
describe('GET /server/about', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get('/server/about');
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should return about information', async () => {
const { status, body } = await request(app)
.get('/server/about')
@@ -56,12 +50,6 @@ describe('/server', () => {
});
describe('GET /server/storage', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get('/server/storage');
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should return the disk information', async () => {
const { status, body } = await request(app)
.get('/server/storage')
@@ -91,12 +79,14 @@ describe('/server', () => {
it('should respond with the server version', async () => {
const { status, body } = await request(app).get('/server/version');
expect(status).toBe(200);
- expect(body).toEqual({
- major: expect.any(Number),
- minor: expect.any(Number),
- patch: expect.any(Number),
- prerelease: expect.anything(),
- });
+ expect(body).toEqual(
+ expect.objectContaining({
+ major: expect.any(Number),
+ minor: expect.any(Number),
+ patch: expect.any(Number),
+ }),
+ );
+ expect(Object.keys(body)).toEqual(expect.arrayContaining(['major', 'minor', 'patch', 'prerelease']));
});
});
@@ -147,12 +137,6 @@ describe('/server', () => {
});
describe('GET /server/statistics', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get('/server/statistics');
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should only work for admins', async () => {
const { status, body } = await request(app)
.get('/server/statistics')
@@ -211,12 +195,6 @@ describe('/server', () => {
});
describe('GET /server/license', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get('/server/license');
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should only work for admins', async () => {
const { status, body } = await request(app)
.get('/server/license')
@@ -239,12 +217,6 @@ describe('/server', () => {
});
describe('DELETE /server/license', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).delete('/server/license');
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should only work for admins', async () => {
const { status, body } = await request(app)
.delete('/server/license')
@@ -264,12 +236,6 @@ describe('/server', () => {
});
describe('PUT /server/license', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).put('/server/license');
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should only work for admins', async () => {
const { status, body } = await request(app)
.put('/server/license')
diff --git a/e2e/src/specs/server/api/session.e2e-spec.ts b/e2e/src/specs/server/api/session.e2e-spec.ts
index 0b632f78ba..1766b732cd 100644
--- a/e2e/src/specs/server/api/session.e2e-spec.ts
+++ b/e2e/src/specs/server/api/session.e2e-spec.ts
@@ -15,12 +15,6 @@ describe('/sessions', () => {
});
describe('GET /sessions', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get('/sessions');
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should get a list of authorized devices', async () => {
const { status, body } = await request(app).get('/sessions').set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(200);
@@ -29,12 +23,6 @@ describe('/sessions', () => {
});
describe('DELETE /sessions', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).delete(`/sessions`);
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should logout all devices (except the current one)', async () => {
for (let i = 0; i < 5; i++) {
await login({ loginCredentialDto: loginDto.admin });
diff --git a/e2e/src/specs/server/api/shared-link.e2e-spec.ts b/e2e/src/specs/server/api/shared-link.e2e-spec.ts
index 8cdf2dc03c..af189f49ac 100644
--- a/e2e/src/specs/server/api/shared-link.e2e-spec.ts
+++ b/e2e/src/specs/server/api/shared-link.e2e-spec.ts
@@ -137,13 +137,6 @@ describe('/shared-links', () => {
});
describe('GET /shared-links', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get('/shared-links');
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should get all shared links created by user', async () => {
const { status, body } = await request(app)
.get('/shared-links')
@@ -200,12 +193,6 @@ describe('/shared-links', () => {
});
describe('GET /shared-links/me', () => {
- it('should not require admin authentication', async () => {
- const { status } = await request(app).get('/shared-links/me').set('Authorization', `Bearer ${admin.accessToken}`);
-
- expect(status).toBe(403);
- });
-
it('should get data for correct shared link', async () => {
const { status, body } = await request(app).get('/shared-links/me').query({ key: linkWithAlbum.key });
@@ -293,13 +280,6 @@ describe('/shared-links', () => {
});
describe('GET /shared-links/:id', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get(`/shared-links/${linkWithAlbum.id}`);
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should get shared link by id', async () => {
const { status, body } = await request(app)
.get(`/shared-links/${linkWithAlbum.id}`)
@@ -326,26 +306,6 @@ describe('/shared-links', () => {
});
describe('POST /shared-links', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app)
- .post('/shared-links')
- .send({ type: SharedLinkType.Album, albumId: uuidDto.notFound });
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
- it('should require a type and the correspondent asset/album id', async () => {
- const { status, body } = await request(app)
- .post('/shared-links')
- .set('Authorization', `Bearer ${user1.accessToken}`);
-
- expect(status).toBe(400);
- expect(body).toEqual(
- errorDto.validationError([{ path: [], message: 'Invalid input: expected object, received undefined' }]),
- );
- });
-
it('should require an asset/album id', async () => {
const { status, body } = await request(app)
.post('/shared-links')
@@ -353,17 +313,17 @@ describe('/shared-links', () => {
.send({ type: SharedLinkType.Album });
expect(status).toBe(400);
- expect(body).toEqual(expect.objectContaining({ message: 'Invalid albumId' }));
+ expect(body).toEqual(errorDto.validationError([{ path: [], message: 'albumId is required for type ALBUM' }]));
});
it('should require a valid asset id', async () => {
const { status, body } = await request(app)
.post('/shared-links')
.set('Authorization', `Bearer ${user1.accessToken}`)
- .send({ type: SharedLinkType.Individual, assetId: uuidDto.notFound });
+ .send({ type: SharedLinkType.Individual, assetIds: [uuidDto.notFound] });
expect(status).toBe(400);
- expect(body).toEqual(expect.objectContaining({ message: 'Invalid assetIds' }));
+ expect(body).toEqual(expect.objectContaining({ message: 'Not found or no asset.share access' }));
});
it('should create a shared link', async () => {
@@ -383,15 +343,6 @@ describe('/shared-links', () => {
});
describe('PATCH /shared-links/:id', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app)
- .patch(`/shared-links/${linkWithAlbum.id}`)
- .send({ description: 'foo' });
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should fail if invalid link', async () => {
const { status, body } = await request(app)
.patch(`/shared-links/${uuidDto.notFound}`)
@@ -474,13 +425,6 @@ describe('/shared-links', () => {
});
describe('DELETE /shared-links/:id', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).delete(`/shared-links/${linkWithAlbum.id}`);
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should fail if invalid link', async () => {
const { status, body } = await request(app)
.delete(`/shared-links/${uuidDto.notFound}`)
diff --git a/e2e/src/specs/server/api/stack.e2e-spec.ts b/e2e/src/specs/server/api/stack.e2e-spec.ts
index 76bf514dc8..3b8f642334 100644
--- a/e2e/src/specs/server/api/stack.e2e-spec.ts
+++ b/e2e/src/specs/server/api/stack.e2e-spec.ts
@@ -1,5 +1,5 @@
import { AssetMediaResponseDto, LoginResponseDto, searchStacks } from '@immich/sdk';
-import { createUserDto, uuidDto } from 'src/fixtures';
+import { createUserDto } from 'src/fixtures';
import { errorDto } from 'src/responses';
import { app, asBearerAuth, utils } from 'src/utils';
import request from 'supertest';
@@ -25,42 +25,6 @@ describe('/stacks', () => {
});
describe('POST /stacks', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app)
- .post('/stacks')
- .send({ assetIds: [asset.id] });
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
- it('should require at least two assets', async () => {
- const { status, body } = await request(app)
- .post('/stacks')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({ assetIds: [asset.id] });
-
- expect(status).toBe(400);
- expect(body).toEqual(
- errorDto.validationError([{ path: ['assetIds'], message: 'Too small: expected array to have >=2 items' }]),
- );
- });
-
- it('should require a valid id', async () => {
- const { status, body } = await request(app)
- .post('/stacks')
- .set('Authorization', `Bearer ${user1.accessToken}`)
- .send({ assetIds: [uuidDto.invalid, uuidDto.invalid] });
-
- expect(status).toBe(400);
- expect(body).toEqual(
- errorDto.validationError([
- { path: ['assetIds', 0], message: 'Invalid UUID' },
- { path: ['assetIds', 1], message: 'Invalid UUID' },
- ]),
- );
- });
-
it('should require access', async () => {
const user2Asset = await utils.createAsset(user2.accessToken);
const { status, body } = await request(app)
diff --git a/e2e/src/specs/server/api/system-metadata.e2e-spec.ts b/e2e/src/specs/server/api/system-metadata.e2e-spec.ts
index bd17bf2524..114ed2f995 100644
--- a/e2e/src/specs/server/api/system-metadata.e2e-spec.ts
+++ b/e2e/src/specs/server/api/system-metadata.e2e-spec.ts
@@ -16,12 +16,6 @@ describe('/server-info', () => {
});
describe('POST /system-metadata/admin-onboarding', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).post('/system-metadata/admin-onboarding').send({ isOnboarded: true });
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should only work for admins', async () => {
const { status, body } = await request(app)
.post('/system-metadata/admin-onboarding')
@@ -47,12 +41,6 @@ describe('/server-info', () => {
});
describe('GET /system-metadata/reverse-geocoding-state', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get('/system-metadata/reverse-geocoding-state');
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should only work for admins', async () => {
const { status, body } = await request(app)
.get('/system-metadata/reverse-geocoding-state')
diff --git a/e2e/src/specs/server/api/tag.e2e-spec.ts b/e2e/src/specs/server/api/tag.e2e-spec.ts
index d303a1e98d..98d66f6350 100644
--- a/e2e/src/specs/server/api/tag.e2e-spec.ts
+++ b/e2e/src/specs/server/api/tag.e2e-spec.ts
@@ -41,12 +41,6 @@ describe('/tags', () => {
});
describe('POST /tags', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).post('/tags').send({ name: 'TagA' });
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization (api key)', async () => {
const { secret } = await utils.createApiKey(user.accessToken, [Permission.AssetRead]);
const { status, body } = await request(app).post('/tags').set('x-api-key', secret).send({ name: 'TagA' });
@@ -117,12 +111,6 @@ describe('/tags', () => {
});
describe('GET /tags', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get('/tags');
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization (api key)', async () => {
const { secret } = await utils.createApiKey(user.accessToken, [Permission.AssetRead]);
const { status, body } = await request(app).get('/tags').set('x-api-key', secret);
@@ -169,12 +157,6 @@ describe('/tags', () => {
});
describe('PUT /tags', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).put(`/tags`).send({ name: 'TagA/TagB' });
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization (api key)', async () => {
const { secret } = await utils.createApiKey(user.accessToken, [Permission.AssetRead]);
const { status, body } = await request(app).put('/tags').set('x-api-key', secret).send({ name: 'TagA' });
@@ -213,12 +195,6 @@ describe('/tags', () => {
});
describe('PUT /tags/assets', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).put(`/tags/assets`).send({ tagIds: [], assetIds: [] });
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization (api key)', async () => {
const { secret } = await utils.createApiKey(user.accessToken, [Permission.AssetRead]);
const { status, body } = await request(app)
@@ -279,12 +255,6 @@ describe('/tags', () => {
});
describe('GET /tags/:id', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get(`/tags/${uuidDto.notFound}`);
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization', async () => {
const tag = await create(user.accessToken, { name: 'TagA' });
const { status, body } = await request(app)
@@ -304,14 +274,6 @@ describe('/tags', () => {
expect(body).toEqual(errorDto.missingPermission('tag.read'));
});
- it('should require a valid uuid', async () => {
- const { status, body } = await request(app)
- .get(`/tags/${uuidDto.invalid}`)
- .set('Authorization', `Bearer ${admin.accessToken}`);
- expect(status).toBe(400);
- expect(body).toEqual(errorDto.validationError([{ path: ['id'], message: 'Invalid UUID' }]));
- });
-
it('should get tag details', async () => {
const tag = await create(user.accessToken, { name: 'TagA' });
const { status, body } = await request(app)
@@ -349,13 +311,6 @@ describe('/tags', () => {
});
describe('PUT /tags/:id', () => {
- it('should require authentication', async () => {
- const tag = await create(user.accessToken, { name: 'TagA' });
- const { status, body } = await request(app).put(`/tags/${tag.id}`).send({ color: '#000000' });
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization', async () => {
const tag = await create(admin.accessToken, { name: 'tagA' });
const { status, body } = await request(app)
@@ -399,12 +354,6 @@ describe('/tags', () => {
});
describe('DELETE /tags/:id', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).delete(`/tags/${uuidDto.notFound}`);
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization', async () => {
const tag = await create(user.accessToken, { name: 'TagA' });
const { status, body } = await request(app)
@@ -422,14 +371,6 @@ describe('/tags', () => {
expect(body).toEqual(errorDto.missingPermission('tag.delete'));
});
- it('should require a valid uuid', async () => {
- const { status, body } = await request(app)
- .delete(`/tags/${uuidDto.invalid}`)
- .set('Authorization', `Bearer ${admin.accessToken}`);
- expect(status).toBe(400);
- expect(body).toEqual(errorDto.validationError([{ path: ['id'], message: 'Invalid UUID' }]));
- });
-
it('should delete a tag', async () => {
const tag = await create(user.accessToken, { name: 'TagA' });
const { status } = await request(app)
@@ -463,15 +404,6 @@ describe('/tags', () => {
});
describe('PUT /tags/:id/assets', () => {
- it('should require authentication', async () => {
- const tagA = await create(user.accessToken, { name: 'TagA' });
- const { status, body } = await request(app)
- .put(`/tags/${tagA.id}/assets`)
- .send({ ids: [userAsset.id] });
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization', async () => {
const tag = await create(user.accessToken, { name: 'TagA' });
const { status, body } = await request(app)
@@ -531,16 +463,6 @@ describe('/tags', () => {
});
describe('DELETE /tags/:id/assets', () => {
- it('should require authentication', async () => {
- const tagA = await create(admin.accessToken, { name: 'TagA' });
- const { status, body } = await request(app)
- .delete(`/tags/${tagA}/assets`)
- .send({ ids: [userAsset.id] });
-
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization', async () => {
const tagA = await create(user.accessToken, { name: 'TagA' });
await tagAssets(
diff --git a/e2e/src/specs/server/api/user-admin.e2e-spec.ts b/e2e/src/specs/server/api/user-admin.e2e-spec.ts
index df6fea84bc..160c929591 100644
--- a/e2e/src/specs/server/api/user-admin.e2e-spec.ts
+++ b/e2e/src/specs/server/api/user-admin.e2e-spec.ts
@@ -1,5 +1,6 @@
import {
LoginResponseDto,
+ Permission,
QueueName,
createStack,
deleteUserAdmin,
@@ -45,12 +46,6 @@ describe('/admin/users', () => {
});
describe('GET /admin/users', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).get(`/admin/users`);
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization', async () => {
const { status, body } = await request(app)
.get(`/admin/users`)
@@ -93,12 +88,6 @@ describe('/admin/users', () => {
});
describe('POST /admin/users', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).post(`/admin/users`).send(createUserDto.user1);
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization', async () => {
const { status, body } = await request(app)
.post(`/admin/users`)
@@ -108,23 +97,6 @@ describe('/admin/users', () => {
expect(body).toEqual(errorDto.forbidden);
});
- for (const [key, message] of [
- ['password', 'Invalid input: expected string, received null'],
- ['email', 'Invalid input: expected email, received object'],
- ['name', 'Invalid input: expected string, received null'],
- ['shouldChangePassword', 'Invalid input: expected boolean, received null'],
- ['notify', 'Invalid input: expected boolean, received null'],
- ] as const) {
- it(`should not allow null ${key}`, async () => {
- const { status, body } = await request(app)
- .post(`/admin/users`)
- .set('Authorization', `Bearer ${admin.accessToken}`)
- .send({ ...createUserDto.user1, [key]: null });
- expect(status).toBe(400);
- expect(body).toEqual(errorDto.validationError([{ path: [key], message }]));
- });
- }
-
it('should accept `isAdmin`', async () => {
const { status, body } = await request(app)
.post(`/admin/users`)
@@ -145,12 +117,6 @@ describe('/admin/users', () => {
});
describe('PUT /admin/users/:id', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).put(`/admin/users/${uuidDto.notFound}`);
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization', async () => {
const { status, body } = await request(app)
.put(`/admin/users/${uuidDto.notFound}`)
@@ -159,22 +125,6 @@ describe('/admin/users', () => {
expect(body).toEqual(errorDto.forbidden);
});
- for (const [key, message] of [
- ['password', 'Invalid input: expected string, received null'],
- ['email', 'Invalid input: expected email, received object'],
- ['name', 'Invalid input: expected string, received null'],
- ['shouldChangePassword', 'Invalid input: expected boolean, received null'],
- ] as const) {
- it(`should not allow null ${key}`, async () => {
- const { status, body } = await request(app)
- .put(`/admin/users/${uuidDto.notFound}`)
- .set('Authorization', `Bearer ${admin.accessToken}`)
- .send({ [key]: null });
- expect(status).toBe(400);
- expect(body).toEqual(errorDto.validationError([{ path: [key], message }]));
- });
- }
-
it('should allow a non-admin to become an admin', async () => {
const user = await utils.userSetup(admin.accessToken, createUserDto.create('admin2'));
const { status, body } = await request(app)
@@ -244,12 +194,6 @@ describe('/admin/users', () => {
});
describe('PUT /admin/users/:id/preferences', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).put(`/admin/users/${userToDelete.userId}/preferences`);
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should update memories enabled', async () => {
const before = await getUserPreferencesAdmin({ id: admin.userId }, { headers: asBearerAuth(admin.accessToken) });
expect(before).toMatchObject({ memories: { enabled: true } });
@@ -281,12 +225,6 @@ describe('/admin/users', () => {
});
describe('DELETE /admin/users/:id', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).delete(`/admin/users/${userToDelete.userId}`);
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
- });
-
it('should require authorization', async () => {
const { status, body } = await request(app)
.delete(`/admin/users/${userToDelete.userId}`)
@@ -358,13 +296,26 @@ describe('/admin/users', () => {
});
});
- describe('POST /admin/users/:id/restore', () => {
- it('should require authentication', async () => {
- const { status, body } = await request(app).post(`/admin/users/${userToDelete.userId}/restore`);
- expect(status).toBe(401);
- expect(body).toEqual(errorDto.unauthorized);
+ describe('GET /admin/users/:id/calendar-heatmap', () => {
+ it('should require admin permissions', async () => {
+ const { status, body } = await request(app)
+ .get(`/admin/users/${nonAdmin.userId}/calendar-heatmap`)
+ .set('Authorization', `Bearer ${nonAdmin.accessToken}`);
+ expect(status).toBe(403);
+ expect(body).toEqual(errorDto.forbidden);
});
+ it('should require the AdminUserRead permission', async () => {
+ const { secret } = await utils.createApiKey(admin.accessToken, [Permission.UserRead]);
+ const { status, body } = await request(app)
+ .get(`/admin/users/${nonAdmin.userId}/calendar-heatmap`)
+ .set('x-api-key', secret);
+ expect(status).toBe(403);
+ expect(body).toEqual(errorDto.forbidden);
+ });
+ });
+
+ describe('POST /admin/users/:id/restore', () => {
it('should require authorization', async () => {
const { status, body } = await request(app)
.post(`/admin/users/${userToDelete.userId}/restore`)
diff --git a/e2e/src/specs/server/api/user.e2e-spec.ts b/e2e/src/specs/server/api/user.e2e-spec.ts
index 2dc789a91b..0e62672f36 100644
--- a/e2e/src/specs/server/api/user.e2e-spec.ts
+++ b/e2e/src/specs/server/api/user.e2e-spec.ts
@@ -1,34 +1,18 @@
-import { LoginResponseDto, SharedLinkType, deleteUserAdmin, getMyPreferences, getMyUser, login } from '@immich/sdk';
+import { LoginResponseDto, SharedLinkType, getMyUser, login } from '@immich/sdk';
import { createUserDto } from 'src/fixtures';
import { errorDto } from 'src/responses';
import { app, asBearerAuth, utils } from 'src/utils';
import request from 'supertest';
import { beforeAll, describe, expect, it } from 'vitest';
-const userLicense = {
- licenseKey: 'IMCL-FF69-TUK1-RWZU-V9Q8-QGQS-S5GC-X4R2-UFK4',
- activationKey:
- 'KuX8KsktrBSiXpQMAH0zLgA5SpijXVr_PDkzLdWUlAogCTMBZ0I3KCHXK0eE9EEd7harxup8_EHMeqAWeHo5VQzol6LGECpFv585U9asXD4Zc-UXt3mhJr2uhazqipBIBwJA2YhmUCDy8hiyiGsukDQNu9Rg9C77UeoKuZBWVjWUBWG0mc1iRqfvF0faVM20w53czAzlhaMxzVGc3Oimbd7xi_CAMSujF_2y8QpA3X2fOVkQkzdcH9lV0COejl7IyH27zQQ9HrlrXv3Lai5Hw67kNkaSjmunVBxC5PS0TpKoc9SfBJMaAGWnaDbjhjYUrm-8nIDQnoeEAidDXVAdPw',
-};
-
describe('/users', () => {
let admin: LoginResponseDto;
- let deletedUser: LoginResponseDto;
let nonAdmin: LoginResponseDto;
beforeAll(async () => {
await utils.resetDatabase();
admin = await utils.adminSetup({ onboarding: false });
-
- [deletedUser, nonAdmin] = await Promise.all([
- utils.userSetup(admin.accessToken, createUserDto.user1),
- utils.userSetup(admin.accessToken, createUserDto.user2),
- ]);
-
- await deleteUserAdmin(
- { id: deletedUser.userId, userAdminDeleteDto: {} },
- { headers: asBearerAuth(admin.accessToken) },
- );
+ nonAdmin = await utils.userSetup(admin.accessToken, createUserDto.user2);
});
describe('GET /users/me', () => {
@@ -42,55 +26,9 @@ describe('/users', () => {
expect(status).toBe(403);
expect(body).toEqual(errorDto.forbidden);
});
-
- it('should get my user', async () => {
- const { status, body } = await request(app).get(`/users/me`).set('Authorization', `Bearer ${admin.accessToken}`);
- expect(status).toBe(200);
- expect(body).toMatchObject({
- id: admin.userId,
- email: 'admin@immich.cloud',
- quotaUsageInBytes: 0,
- });
- });
-
- it('should get my user with license info', async () => {
- const { status: licenseStatus } = await request(app)
- .put(`/users/me/license`)
- .send(userLicense)
- .set('Authorization', `Bearer ${nonAdmin.accessToken}`);
- expect(licenseStatus).toBe(200);
- const { status, body } = await request(app)
- .get(`/users/me`)
- .set('Authorization', `Bearer ${nonAdmin.accessToken}`);
- expect(status).toBe(200);
- expect(body).toMatchObject({
- id: nonAdmin.userId,
- email: nonAdmin.userEmail,
- quotaUsageInBytes: 0,
- license: userLicense,
- });
- });
});
describe('PUT /users/me', () => {
- it('should update first and last name', async () => {
- const before = await getMyUser({ headers: asBearerAuth(admin.accessToken) });
-
- const { status, body } = await request(app)
- .put(`/users/me`)
- .send({ name: 'Name' })
- .set('Authorization', `Bearer ${admin.accessToken}`);
-
- expect(status).toBe(200);
- expect(body).toEqual({
- ...before,
- updatedAt: expect.any(String),
- profileChangedAt: expect.any(String),
- createdAt: expect.any(String),
- name: 'Name',
- });
- });
-
/** @deprecated */
it('should allow a user to change their password (deprecated)', async () => {
const user = await getMyUser({ headers: asBearerAuth(nonAdmin.accessToken) });
@@ -112,222 +50,5 @@ describe('/users', () => {
expect(token.accessToken).toBeDefined();
});
-
- it('should not allow user to change to a taken email', async () => {
- const { status, body } = await request(app)
- .put(`/users/me`)
- .send({ email: 'admin@immich.cloud' })
- .set('Authorization', `Bearer ${nonAdmin.accessToken}`);
-
- expect(status).toBe(400);
- expect(body).toMatchObject(errorDto.badRequest('Email is not available'));
- });
-
- it('should update my email', async () => {
- const before = await getMyUser({ headers: asBearerAuth(nonAdmin.accessToken) });
- const { status, body } = await request(app)
- .put(`/users/me`)
- .send({ email: 'non-admin@immich.cloud' })
- .set('Authorization', `Bearer ${nonAdmin.accessToken}`);
-
- expect(status).toBe(200);
- expect(body).toMatchObject({
- ...before,
- email: 'non-admin@immich.cloud',
- updatedAt: expect.anything(),
- createdAt: expect.anything(),
- profileChangedAt: expect.anything(),
- });
- });
-
- it('should update avatar color', async () => {
- const { status, body } = await request(app)
- .put(`/users/me`)
- .send({ avatarColor: 'blue' })
- .set('Authorization', `Bearer ${admin.accessToken}`);
-
- expect(status).toBe(200);
- expect(body).toMatchObject({ avatarColor: 'blue' });
-
- const after = await getMyUser({ headers: asBearerAuth(admin.accessToken) });
- expect(after).toMatchObject({ avatarColor: 'blue' });
- });
- });
-
- describe('PUT /users/me/preferences', () => {
- it('should update memories enabled', async () => {
- const before = await getMyPreferences({ headers: asBearerAuth(admin.accessToken) });
- expect(before).toMatchObject({ memories: { enabled: true } });
-
- const { status, body } = await request(app)
- .put(`/users/me/preferences`)
- .send({ memories: { enabled: false } })
- .set('Authorization', `Bearer ${admin.accessToken}`);
-
- expect(status).toBe(200);
- expect(body).toMatchObject({ memories: { enabled: false } });
-
- const after = await getMyPreferences({ headers: asBearerAuth(admin.accessToken) });
- expect(after).toMatchObject({ memories: { enabled: false } });
- });
-
- it('should require an integer for download archive size', async () => {
- const { status, body } = await request(app)
- .put(`/users/me/preferences`)
- .send({ download: { archiveSize: 1_234_567.89 } })
- .set('Authorization', `Bearer ${admin.accessToken}`);
-
- expect(status).toBe(400);
- expect(body).toEqual(
- errorDto.validationError([
- { path: ['download', 'archiveSize'], message: 'Invalid input: expected int, received number' },
- ]),
- );
- });
-
- it('should update download archive size', async () => {
- const before = await getMyPreferences({ headers: asBearerAuth(admin.accessToken) });
- expect(before).toMatchObject({ download: { archiveSize: 4 * 2 ** 30 } });
-
- const { status, body } = await request(app)
- .put(`/users/me/preferences`)
- .send({ download: { archiveSize: 1_234_567 } })
- .set('Authorization', `Bearer ${admin.accessToken}`);
-
- expect(status).toBe(200);
- expect(body).toMatchObject({ download: { archiveSize: 1_234_567 } });
-
- const after = await getMyPreferences({ headers: asBearerAuth(admin.accessToken) });
- expect(after).toMatchObject({ download: { archiveSize: 1_234_567 } });
- });
-
- it('should require a boolean for download include embedded videos', async () => {
- const { status, body } = await request(app)
- .put(`/users/me/preferences`)
- .send({ download: { includeEmbeddedVideos: 1_234_567.89 } })
- .set('Authorization', `Bearer ${admin.accessToken}`);
-
- expect(status).toBe(400);
- expect(body).toEqual(
- errorDto.validationError([
- { path: ['download', 'includeEmbeddedVideos'], message: 'Invalid input: expected boolean, received number' },
- ]),
- );
- });
-
- it('should update download include embedded videos', async () => {
- const before = await getMyPreferences({ headers: asBearerAuth(admin.accessToken) });
- expect(before).toMatchObject({ download: { includeEmbeddedVideos: false } });
-
- const { status, body } = await request(app)
- .put(`/users/me/preferences`)
- .send({ download: { includeEmbeddedVideos: true } })
- .set('Authorization', `Bearer ${admin.accessToken}`);
-
- expect(status).toBe(200);
- expect(body).toMatchObject({ download: { includeEmbeddedVideos: true } });
-
- const after = await getMyPreferences({ headers: asBearerAuth(admin.accessToken) });
- expect(after).toMatchObject({ download: { includeEmbeddedVideos: true } });
- });
-
- it('should update minimum face count to display people', async () => {
- const before = await getMyPreferences({ headers: asBearerAuth(admin.accessToken) });
- expect(before).toMatchObject({ people: { minimumFaces: 3 } });
-
- const { status, body } = await request(app)
- .put('/users/me/preferences')
- .send({ people: { minimumFaces: 2 } })
- .set('Authorization', `Bearer ${admin.accessToken}`);
- expect(status).toBe(200);
- expect(body).toMatchObject({ people: { minimumFaces: 2 } });
-
- const after = await getMyPreferences({ headers: asBearerAuth(admin.accessToken) });
- expect(after).toMatchObject({ people: { minimumFaces: 2 } });
- });
- });
-
- describe('GET /users/:id', () => {
- it('should get the user', async () => {
- const { status, body } = await request(app)
- .get(`/users/${admin.userId}`)
- .set('Authorization', `Bearer ${admin.accessToken}`);
- expect(status).toBe(200);
- expect(body).toMatchObject({
- id: admin.userId,
- email: 'admin@immich.cloud',
- });
-
- expect(body).not.toMatchObject({
- shouldChangePassword: expect.anything(),
- storageLabel: expect.anything(),
- });
- });
- });
-
- describe('GET /server/license', () => {
- it('should return the user license', async () => {
- await request(app)
- .put('/users/me/license')
- .set('Authorization', `Bearer ${nonAdmin.accessToken}`)
- .send(userLicense);
- const { status, body } = await request(app)
- .get('/users/me/license')
- .set('Authorization', `Bearer ${nonAdmin.accessToken}`);
- expect(status).toBe(200);
- expect(body).toEqual({
- ...userLicense,
- activatedAt: expect.any(String),
- });
- });
- });
-
- describe('PUT /users/me/license', () => {
- it('should set the user license', async () => {
- const { status, body } = await request(app)
- .put(`/users/me/license`)
- .send(userLicense)
- .set('Authorization', `Bearer ${nonAdmin.accessToken}`);
- expect(status).toBe(200);
- expect(body).toMatchObject({ ...userLicense, activatedAt: expect.any(String) });
- expect(status).toBe(200);
- expect(body).toEqual({ ...userLicense, activatedAt: expect.any(String) });
- const { body: licenseBody } = await request(app)
- .get('/users/me/license')
- .set('Authorization', `Bearer ${nonAdmin.accessToken}`);
- expect(licenseBody).toEqual({ ...userLicense, activatedAt: expect.any(String) });
- });
-
- it('should reject license not starting with IMCL-', async () => {
- const { status, body } = await request(app)
- .put('/users/me/license')
- .set('Authorization', `Bearer ${nonAdmin.accessToken}`)
- .send({ licenseKey: 'IMSV-ABCD-ABCD-ABCD-ABCD-ABCD-ABCD-ABCD-ABCD', activationKey: 'activationKey' });
- expect(status).toBe(400);
- expect(body.message).toBe('Invalid license key');
- });
-
- it('should reject license with invalid activation key', async () => {
- const { status, body } = await request(app)
- .put('/users/me/license')
- .set('Authorization', `Bearer ${nonAdmin.accessToken}`)
- .send({ licenseKey: userLicense.licenseKey, activationKey: `invalid${userLicense.activationKey}` });
- expect(status).toBe(400);
- expect(body.message).toBe('Invalid license key');
- });
- });
-
- describe('DELETE /users/me/license', () => {
- it('should require authentication', async () => {
- const { status } = await request(app).put(`/users/me/license`);
- expect(status).toEqual(401);
- });
-
- it('should delete the user license', async () => {
- const { status } = await request(app)
- .delete(`/users/me/license`)
- .set('Authorization', `Bearer ${nonAdmin.accessToken}`);
- expect(status).toBe(204);
- });
});
});
diff --git a/e2e/src/specs/server/cli/login.e2e-spec.ts b/e2e/src/specs/server/cli/login.e2e-spec.ts
index 3bc3ebc9c2..caf5550b6e 100644
--- a/e2e/src/specs/server/cli/login.e2e-spec.ts
+++ b/e2e/src/specs/server/cli/login.e2e-spec.ts
@@ -31,7 +31,7 @@ describe(`immich login`, () => {
it('should login and save auth.yml with 600', async () => {
const admin = await utils.adminSetup();
const key = await utils.createApiKey(admin.accessToken, [Permission.All]);
- const { stdout, stderr, exitCode } = await immichCli(['login', app, `${key.secret}`]);
+ const { stdout, stderr, exitCode } = await immichCli(['login', app, key.secret]);
expect(stdout.split('\n')).toEqual([
'Logging in to http://127.0.0.1:2285/api',
'Logged in as admin@immich.cloud',
@@ -48,7 +48,7 @@ describe(`immich login`, () => {
it('should login without /api in the url', async () => {
const admin = await utils.adminSetup();
const key = await utils.createApiKey(admin.accessToken, [Permission.All]);
- const { stdout, stderr, exitCode } = await immichCli(['login', app.replaceAll('/api', ''), `${key.secret}`]);
+ const { stdout, stderr, exitCode } = await immichCli(['login', app.replaceAll('/api', ''), key.secret]);
expect(stdout.split('\n')).toEqual([
'Logging in to http://127.0.0.1:2285',
'Discovered API at http://127.0.0.1:2285/api',
diff --git a/e2e/src/specs/server/cli/upload.e2e-spec.ts b/e2e/src/specs/server/cli/upload.e2e-spec.ts
index b53b4403f8..6ed5030e83 100644
--- a/e2e/src/specs/server/cli/upload.e2e-spec.ts
+++ b/e2e/src/specs/server/cli/upload.e2e-spec.ts
@@ -119,7 +119,9 @@ describe(`immich upload`, () => {
const baseDir = `/tmp/upload/`;
const testPaths = Object.keys(files).map((filePath) => `${baseDir}/${filePath}`);
- testPaths.map((filePath) => utils.createImageFile(filePath));
+ for (const filePath of testPaths) {
+ utils.createImageFile(filePath);
+ }
const commandLine = paths.map((argument) => `${baseDir}/${argument}`);
@@ -135,7 +137,9 @@ describe(`immich upload`, () => {
const assets = await getAssetStatistics({}, { headers: asKeyAuth(key) });
expect(assets.total).toBe(expectedCount);
- testPaths.map((filePath) => utils.removeImageFile(filePath));
+ for (const filePath of testPaths) {
+ utils.removeImageFile(filePath);
+ }
});
}
});
@@ -646,7 +650,7 @@ describe(`immich upload`, () => {
]);
expect(stdout).toBe('');
- expect(stderr).toEqual(`error: option '-n, --dry-run' cannot be used with option '-h, --skip-hash'`);
+ expect(stderr).toEqual(`error: option '-n, --dry-run' cannot be used with option '--skip-hash'`);
expect(exitCode).not.toBe(0);
const assets = await getAssetStatistics({}, { headers: asKeyAuth(key) });
diff --git a/e2e/src/specs/server/immich-admin/immich-admin.e2e-spec.ts b/e2e/src/specs/server/immich-admin/immich-admin.e2e-spec.ts
index 24699cda30..ad0e43ff14 100644
--- a/e2e/src/specs/server/immich-admin/immich-admin.e2e-spec.ts
+++ b/e2e/src/specs/server/immich-admin/immich-admin.e2e-spec.ts
@@ -65,6 +65,10 @@ describe(`immich-admin`, () => {
child.stdout.on('data', (chunk) => {
data += chunk;
if (data.includes('Please choose a new password (optional)')) {
+ child.stdin.write('\n');
+ }
+
+ if (data.includes('Invalidate existing sessions?')) {
child.stdin.end('\n');
}
});
diff --git a/e2e/src/ui/generators/timeline/images.ts b/e2e/src/ui/generators/timeline/images.ts
index 9330cf137d..2eb141c557 100644
--- a/e2e/src/ui/generators/timeline/images.ts
+++ b/e2e/src/ui/generators/timeline/images.ts
@@ -21,7 +21,7 @@ export const randomImageFromString = async (
let seedNumber = 0;
for (let i = 0; i < seed.length; i++) {
seedNumber = (seedNumber << 5) - seedNumber + (seed.codePointAt(i) ?? 0);
- seedNumber = seedNumber & seedNumber; // Convert to 32bit integer
+ seedNumber &= seedNumber; // Convert to 32bit integer
}
return randomImage(new SeededRandom(Math.abs(seedNumber)), { width, height });
};
diff --git a/e2e/src/ui/generators/timeline/model-objects.ts b/e2e/src/ui/generators/timeline/model-objects.ts
index f5654afd5e..094e5133a3 100644
--- a/e2e/src/ui/generators/timeline/model-objects.ts
+++ b/e2e/src/ui/generators/timeline/model-objects.ts
@@ -64,7 +64,7 @@ export function generateAsset(
const asset: MockTimelineAsset = {
id: assetId,
ownerId,
- ratio: Number.parseFloat(ratio.split(':')[0]) / Number.parseFloat(ratio.split(':')[1]),
+ ratio: Number(ratio.split(':', 1)[0]) / Number(ratio.split(':', 2)[1]),
thumbhash: generateThumbhash(rng),
localDateTime: date.toISOString(),
fileCreatedAt: date.toISOString(),
@@ -214,7 +214,7 @@ export function generateTimelineData(config: TimelineConfig): MockTimelineData {
}
// Create a mock album from random assets
- const allAssets = [...buckets.values()].flat();
+ const allAssets = buckets.values().toArray().flat();
// Select 10-30 random assets for the album (or all assets if less than 10)
const albumSize = Math.min(allAssets.length, globalRng.nextInt(10, 31));
diff --git a/e2e/src/ui/generators/timeline/rest-response.ts b/e2e/src/ui/generators/timeline/rest-response.ts
index 553ce18005..d7cf7adf0a 100644
--- a/e2e/src/ui/generators/timeline/rest-response.ts
+++ b/e2e/src/ui/generators/timeline/rest-response.ts
@@ -172,11 +172,7 @@ function shouldIncludeAsset(
if (isArchived !== undefined && actuallyArchived !== isArchived) {
return false;
}
- if (isFavorite !== undefined && actuallyFavorited !== isFavorite) {
- return false;
- }
-
- return true;
+ return isFavorite === undefined || actuallyFavorited === isFavorite;
}
/**
* Get summary for all buckets (mimics getTimeBuckets API)
@@ -361,7 +357,7 @@ export function getAsset(
owner?: UserResponseDto,
): AssetResponseDto | undefined {
// Search through all buckets for the asset
- const buckets = [...timelineData.buckets.values()];
+ const buckets = timelineData.buckets.values().toArray();
for (const assets of buckets) {
const asset = assets.find((a) => a.id === assetId);
if (asset) {
@@ -395,7 +391,7 @@ export function getAlbum(
// Get the actual asset objects from the timeline data
const albumAssets: AssetResponseDto[] = [];
- const allAssets = [...timelineData.buckets.values()].flat();
+ const allAssets = timelineData.buckets.values().toArray().flat();
for (const assetId of album.assetIds) {
const assetConfig = allAssets.find((a) => a.id === assetId);
diff --git a/e2e/src/ui/generators/timeline/timeline-config.ts b/e2e/src/ui/generators/timeline/timeline-config.ts
index 4dea2f4f78..5bfb2c1800 100644
--- a/e2e/src/ui/generators/timeline/timeline-config.ts
+++ b/e2e/src/ui/generators/timeline/timeline-config.ts
@@ -24,13 +24,6 @@ export const ASPECT_RATIO_WEIGHTS = {
'3:1': 0.01, // 1% 3:1 panorama
} as const;
-export type AspectRatio = {
- width: number;
- height: number;
- ratio: number;
- name: string;
-};
-
// Mock configuration for asset generation - will be transformed to API response formats
export type MockTimelineAsset = {
id: string;
@@ -143,7 +136,7 @@ export function validateTimelineConfig(config: TimelineConfig): void {
}
// Validate seed if provided
- if (config.seed !== undefined && (config.seed < 0 || !Number.isInteger(config.seed))) {
+ if (config.seed !== undefined && (config.seed < 0 || !Number.isSafeInteger(config.seed))) {
throw new Error('Seed must be a non-negative integer');
}
diff --git a/e2e/src/ui/generators/timeline/utils.ts b/e2e/src/ui/generators/timeline/utils.ts
index 283f56c6f0..fbb9630a3c 100644
--- a/e2e/src/ui/generators/timeline/utils.ts
+++ b/e2e/src/ui/generators/timeline/utils.ts
@@ -153,11 +153,8 @@ export function getMockAsset(
const isInDifferentPeriod = (date1: DateTime, date2: DateTime): boolean => {
if (unit === 'day') {
return !date1.startOf('day').equals(date2.startOf('day'));
- } else if (unit === 'month') {
- return date1.year !== date2.year || date1.month !== date2.month;
- } else {
- return date1.year !== date2.year;
}
+ return unit === 'month' ? date1.year !== date2.year || date1.month !== date2.month : date1.year !== date2.year;
};
if (direction === 'next') {
diff --git a/e2e/src/ui/mock-network/base-network.ts b/e2e/src/ui/mock-network/base-network.ts
index 6680b83dd1..af8d1dbfef 100644
--- a/e2e/src/ui/mock-network/base-network.ts
+++ b/e2e/src/ui/mock-network/base-network.ts
@@ -82,6 +82,9 @@ export const setupBaseMockApiRoutes = async (context: BrowserContext, adminUserI
cast: {
gCastEnabled: false,
},
+ recentlyAdded: {
+ sidebarWeb: false,
+ },
},
});
});
diff --git a/e2e/src/ui/mock-network/timeline-network.ts b/e2e/src/ui/mock-network/timeline-network.ts
index 6af2ebb7c1..1a745b294a 100644
--- a/e2e/src/ui/mock-network/timeline-network.ts
+++ b/e2e/src/ui/mock-network/timeline-network.ts
@@ -40,7 +40,8 @@ export const setupTimelineMockApiRoutes = async (
contentType: 'application/json',
json: getTimeBuckets(timelineRestData, isTrashed, isArchived, isFavorite, albumId, changes),
});
- } else if (pathname === '/api/timeline/bucket') {
+ }
+ if (pathname === '/api/timeline/bucket') {
const timeBucket = url.searchParams.get('timeBucket');
if (!timeBucket) {
return route.continue();
diff --git a/e2e/src/ui/specs/asset-viewer/asset-viewer.e2e-spec.ts b/e2e/src/ui/specs/asset-viewer/asset-viewer.e2e-spec.ts
index 082ff1f7a1..85798f6be3 100644
--- a/e2e/src/ui/specs/asset-viewer/asset-viewer.e2e-spec.ts
+++ b/e2e/src/ui/specs/asset-viewer/asset-viewer.e2e-spec.ts
@@ -38,7 +38,7 @@ test.describe('asset-viewer', () => {
assets.push(...timeBucket);
}
for (const yearMonth of timelineRestData.buckets.keys()) {
- const [year, month] = yearMonth.split('-');
+ const [year, month] = yearMonth.split('-', 2);
yearMonths.push(`${year}-${Number(month)}`);
}
});
diff --git a/e2e/src/ui/specs/asset-viewer/utils.ts b/e2e/src/ui/specs/asset-viewer/utils.ts
index adaace8a34..8cc2ad711a 100644
--- a/e2e/src/ui/specs/asset-viewer/utils.ts
+++ b/e2e/src/ui/specs/asset-viewer/utils.ts
@@ -110,6 +110,7 @@ export async function enableTagsPreference(context: BrowserContext) {
download: { archiveSize: 4_294_967_296, includeEmbeddedVideos: false },
purchase: { showSupportBadge: true, hideBuyButtonUntil: '2100-02-12T00:00:00.000Z' },
cast: { gCastEnabled: false },
+ recentlyAdded: { sidebarWeb: false },
},
});
});
diff --git a/e2e/src/ui/specs/memory/utils.ts b/e2e/src/ui/specs/memory/utils.ts
index cf99033e7e..378f649cff 100644
--- a/e2e/src/ui/specs/memory/utils.ts
+++ b/e2e/src/ui/specs/memory/utils.ts
@@ -1,3 +1,4 @@
+/* eslint-disable unicorn/no-this-outside-of-class */
import type { AssetResponseDto } from '@immich/sdk';
import { expect, Page } from '@playwright/test';
diff --git a/e2e/src/ui/specs/timeline/timeline.e2e-spec.ts b/e2e/src/ui/specs/timeline/timeline.e2e-spec.ts
index 6f986df84f..adbff0d3b8 100644
--- a/e2e/src/ui/specs/timeline/timeline.e2e-spec.ts
+++ b/e2e/src/ui/specs/timeline/timeline.e2e-spec.ts
@@ -49,7 +49,7 @@ test.describe('Timeline', () => {
assets.push(...timeBucket);
}
for (const yearMonth of timelineRestData.buckets.keys()) {
- const [year, month] = yearMonth.split('-');
+ const [year, month] = yearMonth.split('-', 2);
yearMonths.push(`${year}-${Number(month)}`);
}
});
diff --git a/e2e/src/ui/specs/timeline/utils.ts b/e2e/src/ui/specs/timeline/utils.ts
index e67229d3c9..986f794fb6 100644
--- a/e2e/src/ui/specs/timeline/utils.ts
+++ b/e2e/src/ui/specs/timeline/utils.ts
@@ -1,4 +1,4 @@
-import { BrowserContext, expect, Page } from '@playwright/test';
+import { expect, Page } from '@playwright/test';
import { DateTime } from 'luxon';
import { TimelineAssetConfig } from 'src/ui/generators/timeline';
@@ -7,22 +7,10 @@ export const sleep = (ms: number) => {
};
export const padYearMonth = (yearMonth: string) => {
- const [year, month] = yearMonth.split('-');
+ const [year, month] = yearMonth.split('-', 2);
return `${year}-${month.padStart(2, '0')}`;
};
-export async function throttlePage(context: BrowserContext, page: Page) {
- const session = await context.newCDPSession(page);
- await session.send('Network.emulateNetworkConditions', {
- offline: false,
- downloadThroughput: (1.5 * 1024 * 1024) / 8,
- uploadThroughput: (750 * 1024) / 8,
- latency: 40,
- connectionType: 'cellular3g',
- });
- await session.send('Emulation.setCPUThrottlingRate', { rate: 10 });
-}
-
export const poll = async (
page: Page,
query: () => Promise,
@@ -72,6 +60,7 @@ export const thumbnailUtils = {
},
async queryThumbnailInViewport(page: Page, collector: (assetId: string) => boolean) {
const assetIds: string[] = [];
+ // eslint-disable-next-line unicorn/no-this-outside-of-class
for (const thumb of await this.locator(page).all()) {
const box = await thumb.boundingBox();
if (box) {
@@ -151,6 +140,7 @@ export const timelineUtils = {
page.evaluate(() => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
+
return document.querySelector('#asset-grid').scrollTop;
});
await expect.poll(queryTop).toBeGreaterThan(0);
@@ -177,6 +167,7 @@ export const assetViewerUtils = {
page.evaluate(() => {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
+ // eslint-disable-next-line unicorn/no-optional-chaining-on-undeclared-variable
return document.activeElement?.dataset?.asset;
});
await expect(poll(page, activeElement, (result) => result === assetId)).resolves.toBe(assetId);
@@ -220,7 +211,7 @@ export const pageUtils = {
await section.locator('.w-8').click();
},
async pauseTestDebug() {
- console.log('NOTE: pausing test indefinately for debug');
+ console.log('NOTE: pausing test indefinitely for debug');
await new Promise(() => void 0);
},
};
diff --git a/e2e/src/utils.ts b/e2e/src/utils.ts
index 23b3b14306..3124dd0609 100644
--- a/e2e/src/utils.ts
+++ b/e2e/src/utils.ts
@@ -1,3 +1,4 @@
+/* eslint-disable unicorn/no-top-level-assignment-in-function */
import {
AssetMediaCreateDto,
AssetMediaResponseDto,
@@ -177,7 +178,7 @@ export const utils = {
resetDatabase: async (tables?: string[]) => {
client = await utils.connectDatabase();
- tables = tables || [
+ tables ||= [
// TODO e2e test for deleting a stack, since it is quite complex
'stack',
'library',
@@ -304,7 +305,7 @@ export const utils = {
},
adminSetup: async (options?: AdminSetupOptions) => {
- options = options || { onboarding: true };
+ options ||= { onboarding: true };
await signUpAdmin({ signUpDto: signupDto.admin });
const response = await login({ loginCredentialDto: loginDto.admin });
@@ -545,6 +546,7 @@ export const utils = {
{
headers: asBearerAuth(accessToken),
fetch: (...args: Parameters) =>
+ // eslint-disable-next-line unicorn/no-invalid-argument-count, unicorn/prefer-await
fetch(...args).then((response) => {
setCookie = response.headers.getSetCookie();
return response;
@@ -674,7 +676,7 @@ export const utils = {
cliLogin: async (accessToken: string) => {
const key = await utils.createApiKey(accessToken, [Permission.All]);
- await immichCli(['login', app, `${key.secret}`]);
+ await immichCli(['login', app, key.secret]);
return key.secret;
},
@@ -706,6 +708,7 @@ export const utils = {
},
};
+// eslint-disable-next-line unicorn/no-top-level-side-effects
utils.initSdk();
if (!existsSync(`${testAssetDir}/albums`)) {
diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json
index 61eefdac07..eebe91e90c 100644
--- a/e2e/tsconfig.json
+++ b/e2e/tsconfig.json
@@ -10,6 +10,7 @@
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"target": "es2023",
+ "lib": ["dom", "ESNext"],
"sourceMap": true,
"outDir": "./dist",
"incremental": true,
diff --git a/i18n/af.json b/i18n/af.json
index 630405c11a..0f104a0e64 100644
--- a/i18n/af.json
+++ b/i18n/af.json
@@ -23,6 +23,7 @@
"add_location": "Voeg ligging toe",
"add_partner": "Voeg vennoot toe",
"add_photos": "Voeg foto’s toe",
+ "add_step": "Voeg stap by",
"add_tag": "Voeg etiket toe",
"add_to": "Voeg toe tot…",
"add_to_album": "Voeg toe tot album",
@@ -49,6 +50,7 @@
"backup_database": "Skep Databasisstortlêer",
"backup_database_enable_description": "Aktiveer databasisstortlêers",
"backup_keep_last_amount": "Aantal vorige stortlêers om te hou",
+ "backup_onboarding_1_description": "kopie in die wolk of op 'n ander fisiese plek.",
"backup_onboarding_2_description": "plaaslike kopieë op verskillende toestelle. Dit sluit die hooflêers en ’n rugsteun van daardie lêers plaaslik in.",
"backup_onboarding_3_description": "totale kopieë van u data, insluitend die oorspronklike lêers. Dit sluit 1 kopie op ’n ander perseel en 2 lokale kopieë in.",
"backup_onboarding_description": "’n 3-2-1-rugsteunstrategie word sterk aanbeveel om u data veilig te hou. Hou kopieë van u foto’s/video’s sowel as die Immich-databasis vir ’n volledige rugsteunoplossing.",
@@ -71,6 +73,7 @@
"cron_expression_description": "Stel die skanderingsinterval in met die cron-formaat. Kyk gerus na bv. Crontab Guru vir meer inligting",
"cron_expression_presets": "Cron-uitdrukking voorafinstellings",
"disable_login": "Deaktiveer aantekening",
+ "download_csv": "Laai CSV af",
"duplicate_detection_job_description": "Begin masjienleer op items om soortgelyke beelde op te spoor. Maak staat op Slimsoek",
"exclusion_pattern_description": "Met uitsluitingspatrone kan u lêers en vouers ignoreer wanneer u u biblioteek skandeer. Dit is nuttig as u vouers het wat lêers bevat wat u nie wil invoer nie, soos RAW-lêers.",
"export_config_as_json_description": "Laai die huidige stelselkonfigurasie af as ’n JSON‑lêer",
@@ -84,12 +87,18 @@
"image_format_description": "WebP lewer kleiner lêers as JPEG, maar is stadiger om te enkodeer.",
"image_fullsize_description": "Volgrootte prent met geen metadata, gebruik wanner ingezoem",
"image_fullsize_enabled": "Aktiveer spek van volgrootte prent",
+ "image_fullsize_enabled_description": "Genereer 'n volformaat-beeld vir formate wat nie webvriendelik is nie. Wanneer \"Verkies ingebedde voorskou\" geaktiveer is, word ingebedde voorskoue direk gebruik sonder omskakeling. Dit het geen invloed op webvriendelike formate soos JPEG nie.",
+ "image_fullsize_quality_description": "Beeldgehalte op volle grootte van 1 tot 100. Hoër is beter, maar lewer groter lêers op.",
+ "image_fullsize_title": "Instellings vir volformaat-beeld",
"image_prefer_embedded_preview": "Verkies ingebedde voorskou",
+ "image_prefer_embedded_preview_setting_description": "Gebruik ingebedde voorskoue in RAW-foto's as invoer vir beeldverwerking wanneer dit beskikbaar is. Dit kan vir sommige beelde akkurater kleure lewer, maar die gehalte van die voorskou hang van die kamera af en die beeld kan meer kompressie-artefakte vertoon.",
"image_prefer_wide_gamut": "Verkies breëspektrum",
"image_prefer_wide_gamut_setting_description": "Gebruik Display P3 vir duimnaels. Dit behou die lewendheid van beelde met wye kleurruimtes beter, maar beelde kan anders verskyn op ou toestelle met ’n ou blaaierweergawe. sRGB-beelde gebruik steeds sRGB om kleurverskuiwings te voorkom.",
"image_preview_description": "Mediumgrootte prent met gestroopte metadata, wat gebruik word wanneer ’n enkele item bekyk word en vir masjienleer",
"image_preview_quality_description": "Voorskoukwaliteit van 1-100. Hoër is beter, maar lewer groter lêers en kan die toep vertraag. Die stel van ’n lae waarde kan masjienleerkwaliteit beïnvloed.",
"image_preview_title": "Voorskou-instellings",
+ "image_progressive": "Progresiewe",
+ "image_progressive_description": "Kodeer JPEG-beelde progressief vir geleidelike laai en vertoning. Dit het geen uitwerking op WebP-beelde nie.",
"image_quality": "Kwaliteit",
"image_resolution": "Resolusie",
"image_resolution_description": "Hoër resolusies kan meer detail bewaar, maar neem langer om te enkodeer, het groter lêergroottes en kan die toep vertraag.",
@@ -98,6 +107,22 @@
"image_thumbnail_description": "Klein duimnaels sonder metadata, gebruik om groepe foto’s soos die tydlyn te bekyk",
"image_thumbnail_quality_description": "Duinmaelkwaliteit van 1-100. Hoër is beter, maar lewer groter lêers en kan die toep vertraag.",
"image_thumbnail_title": "Duimnaelinstellings",
+ "import_config_from_json_description": "Voer stelselkonfigurasie in deur 'n JSON-konfigurasielêer op te laai",
+ "integrity_checks_checksum_files": "kontrolesomlêer",
+ "integrity_checks_checksum_files_description": "Konfigureer die kontrolesom-kontrole",
+ "integrity_checks_checksum_files_enable_description": "Aktiveer die kontrolesom-kontrolering",
+ "integrity_checks_checksum_files_percentage_limit": "Persentasie limiet",
+ "integrity_checks_checksum_files_percentage_limit_description": "Konfigureer die maksimum persentasie tussen 0.01 en 1 vir die mate waarin die kontrolesom-kontrole tydens elke interval uitgevoer moet word.",
+ "integrity_checks_checksum_files_time_limit": "Tyd limiet",
+ "integrity_checks_checksum_files_time_limit_description": "Konfigureer die maksimum duur waarvoor die kontrolesom-kontrole tydens elke interval moet loop. (ms)",
+ "integrity_checks_missing_files": "Ontbrekende lêers",
+ "integrity_checks_missing_files_description": "Konfigureer die frekwensie en aktiveer of deaktiveer die kontrole vir ontbrekende lêers",
+ "integrity_checks_missing_files_enable_description": "Aktiveer die kontrole vir ontbrekende lêers",
+ "integrity_checks_settings": "integriteitskontroles",
+ "integrity_checks_settings_description": "Bestuur tussenposes vir integriteitskontroles",
+ "integrity_checks_untracked_files": "Ongevokgde lêers",
+ "integrity_checks_untracked_files_description": "Konfigureer die frekwensie en aktiveer of deaktiveer die kontrole vir ongevolgde lêers",
+ "integrity_checks_untracked_files_enable_description": "Aktiveer die kontrole van ongevolgde lêers",
"job_concurrency": "{job} gelyktydigheid",
"job_created": "Taak geskep",
"job_not_concurrency_safe": "Hierdie taak kan nie gelyktydig uitgevoer word nie.",
diff --git a/i18n/ar.json b/i18n/ar.json
index 8c109835e6..84a0628066 100644
--- a/i18n/ar.json
+++ b/i18n/ar.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "تتراوح جودة الصورة المصغرة من 1 إلى 100. كلما كانت الجودة أعلى كان ذلك أفضل، ولكنها تنتج ملفات أكبر وقد تقلل من استجابة التطبيق.",
"image_thumbnail_title": "إعدادات الصورة المصغرة",
"import_config_from_json_description": "استيراد اعدادات النظام بتحميل ملف اعدادات بصيغة JSON",
+ "integrity_checks_checksum_files": "ملفات الجمع التحققي",
+ "integrity_checks_checksum_files_description": "ضبط التحقق من الجمع التحققي",
+ "integrity_checks_checksum_files_enable_description": "تفعيل التحقق من الجمع التحققي",
+ "integrity_checks_checksum_files_percentage_limit": "حد النسبه المئويه",
+ "integrity_checks_checksum_files_percentage_limit_description": "ضبط الحد الاعلى النسبه المئويه بين 0.01 و 1 لتحديد كم يجب ان يعمل التحقق من الجمع التحققي بكل فتره.",
+ "integrity_checks_checksum_files_time_limit": "الحد الزمني",
+ "integrity_checks_checksum_files_time_limit_description": "قم بضبط الحد الأقصى للمدة التي يجب أن تستغرقها عملية التحقق من المجموع الاختباري (checksum) في كل فاصل زمني. (بالملي ثانية)",
+ "integrity_checks_missing_files": "ملفات مفقودة",
+ "integrity_checks_missing_files_description": "ضبط وتيرة الفحص وتفعيل أو تعطيل فحص الملفات المفقودة",
+ "integrity_checks_missing_files_enable_description": "تفعيل فحص الملفات المفقودة",
+ "integrity_checks_settings": "فحوصات السلامه",
+ "integrity_checks_settings_description": "إدارة فترات التحقق من السلامة",
+ "integrity_checks_untracked_files": "ملفات غير متعقبه",
+ "integrity_checks_untracked_files_description": "قم بضبط التردد وتفعيل أو تعطيل فحص الملفات غير المتعقبة",
+ "integrity_checks_untracked_files_enable_description": "قم بتمكين فحص الملفات غير المتعقبة",
"job_concurrency": "تزامن {job}",
"job_created": "تم إنشاء الوظيفة",
"job_not_concurrency_safe": "هذه الوظيفة غير آمنة للتشغيل المتزامن.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "يتيح إجراء تحويل الترميز في الوقت الفعلي أثناء بث الفيديو. كما يمكّن من تبديل الجودة، ولكنه قد يتسبب في زيادة زمن تأخير التشغيل وحدوث تقطيع، اعتماداً على قدرات الخادم.",
"transcoding_realtime_enabled": "تفعيل تحويل الترميز في الوقت الفعلي",
"transcoding_realtime_enabled_description": "في حال تعطيله، سيرفض الخادم بدء جلسات تحويل ترميز جديدة في الوقت الفعلي.",
+ "transcoding_realtime_resolutions": "دقق",
+ "transcoding_realtime_resolutions_description": "الدقة المتاحة للتحويل الفوري للترميز. قد تتسبب الدقة الأعلى في مشاكل في التشغيل إذا لم يتمكن الخادم من تحويلها بالسرعة الكافية.",
+ "transcoding_realtime_video_codecs": "ترميزات الفيديو",
+ "transcoding_realtime_video_codecs_description": "برامج ترميز الفيديو المقدمة لتحويل الترميز في الوقت الحقيقي. سيختار العملاء الخيار الأفضل الذي يدعمونه أثناء التشغيل. AV1 أكثر كفاءة من HEVC، وهو أكثر كفاءة من H.264. عند استخدام تسريع الأجهزة، حدد فقط برامج الترميز التي يمكن للمسرع تشفيرها. عند استخدام تحويل ترميز البرنامج، لاحظ أن H.264 أسرع من AV1، وهو أسرع من HEVC.",
"transcoding_reference_frames": "الإطارات المرجعية",
"transcoding_reference_frames_description": "عدد الإطارات التي يجب الرجوع إليها عند ضغط إطار معين. تعمل القيم الأعلى على تحسين كفاءة الضغط، ولكنها تبطئ عملية التشفير. 0 يضبط هذه القيمة تلقائيًا.",
"transcoding_required_description": "فقط مقاطع الفيديو ذات التنسيق غير المقبول",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "عارض الأصول",
"assets": "المحتويات",
"assets_added_to_album_count": "تمت إضافة {count, plural, one {# الأصل} other {# الأصول}} إلى الألبوم",
+ "assets_added_to_album_partial_count": "تمت إضافة {successCount} من أصل {totalCount} {totalCount, plural, one {asset} other {assets}} إلى الألبوم",
"assets_added_to_albums_count": "تمت اضافة {assetTotal, plural, one {# اصل} other {# اصول}} to {albumTotal, plural, one {# البوم} other {# البومات}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Asset} other {Assets}} لايمكن اضافته الى الالبوم",
"assets_cannot_be_added_to_albums": "{count, plural, one {اصل} other {اصول}} لا يمكن إضافته إلى أي من الألبومات",
@@ -733,7 +753,7 @@
"confirm_delete_face": "هل أنت متأكد من حذف وجه {name} من الأصول؟",
"confirm_delete_shared_link": "هل أنت متأكد أنك تريد حذف هذا الرابط المشترك؟",
"confirm_keep_this_delete_others": "سيتم حذف جميع الأصول الأخرى في المجموعة باستثناء هذا الأصل. هل أنت متأكد من أنك تريد المتابعة؟",
- "confirm_new_pin_code": "ثبت رمز PIN الجديد",
+ "confirm_new_pin_code": "تأكيد رمز PIN الجديد",
"confirm_password": "تأكيد كلمة المرور",
"confirm_tag_face": "هل تريد وضع علامة على هذا الوجه {name}؟",
"confirm_tag_face_unnamed": "هل تريد وضع علامة على هذا الوجه؟",
@@ -794,7 +814,6 @@
"custom_date": "تاريخ مخصص",
"custom_locale": "لغة مخصصة",
"custom_locale_description": "تنسيق التواريخ, الأوقات والأرقام بناءً على اللغة والمنطقة المختاره",
- "custom_url": "رابط مخصص",
"cutoff_date_description": "احتفظ بالصور من آخر…",
"cutoff_day": "{count, plural, one {يوم} other {ايام}}",
"cutoff_year": "{count, plural, one {سنة} other {سنوات}}",
@@ -1303,9 +1322,9 @@
"login_form_failed_login": "خطأ في تسجيل الدخول ، تحقق من عنوان URL للخادم والبريد الإلكتروني وكلمة المرور",
"login_form_handshake_exception": "كان هناك استثناء مصافحة مع الخادم.تمكين دعم الشهادة الموقعة ذاتيا في الإعدادات إذا كنت تستخدم شهادة موقعة ذاتيا.",
"login_form_password_hint": "كلمة المرور",
- "login_form_server_empty": "أدخل عنوان URL الخادم.",
- "login_form_server_error": "لا يمكن الاتصال بالخادم.",
- "login_has_been_disabled": "تم تعطيل تسجيل الدخول.",
+ "login_form_server_empty": "أدخل عنوان URL الخادم",
+ "login_form_server_error": "تعذر الاتصال بالخادم",
+ "login_has_been_disabled": "تم تعطيل تسجيل الدخول",
"login_password_changed_error": "كان هناك خطأ في تحديث كلمة المرور الخاصة بك",
"login_password_changed_success": "تم تحديث كلمة السر بنجاح",
"logout_all_device_confirmation": "هل أنت متأكد أنك تريد تسجيل الخروج من جميع الأجهزة؟",
@@ -1356,6 +1375,7 @@
"map_location_picker_page_use_location": "استخدم هذا الموقع",
"map_location_service_disabled_content": "يجب تمكين خدمة الموقع لعرض الأصول من موقعك الحالي.هل تريد تمكينه الآن؟",
"map_location_service_disabled_title": "خدمة الموقع معطل",
+ "map_marker_for_image": "علامة على الخريطة للصورة الملتقطة في {city}, {country}",
"map_marker_with_image": "علامة الخريطة مع الصورة",
"map_no_location_permission_content": "هناك حاجة إلى إذن الموقع لعرض الأصول من موقعك الحالي.هل تريد السماح به الآن؟",
"map_no_location_permission_title": "تم رفض إذن الموقع",
@@ -1460,6 +1480,7 @@
"never": "أبداً",
"new_album": "البوم جديد",
"new_api_key": "مفتاح API جديد",
+ "new_feature": "ميزة جديدة",
"new_password": "كلمة المرور الجديدة",
"new_person": "شخص جديد",
"new_pin_code": "رمز PIN الجديد",
@@ -1503,9 +1524,13 @@
"not_available": "غير متاح",
"not_in_any_album": "ليست في أي ألبوم",
"not_selected": "لم يختار",
+ "not_set": "غير محدد",
"notes": "ملاحظات",
"nothing_here_yet": "لا يوجد شيء هنا بعد",
"notification_backup_reliability": "فعل الإشعارات للزيادة من استقرار النسخ الاحتياطي في الخلفية",
+ "notification_enabled_list_tile_content": "يستخدم تطبيق Immich الإشعارات لإجراء النسخ الاحتياطي في الخلفية. يمكنك إدارتها من إعدادات جهازك.",
+ "notification_enabled_list_tile_open_button": "افتح الاعدادات",
+ "notification_enabled_list_tile_title": "تم تفعيل الاشعارات",
"notification_permission_dialog_content": "لتمكين الإخطارات ، انتقل إلى الإعدادات و اختار السماح.",
"notification_permission_list_tile_content": "منح إذن لتمكين الإخطارات.",
"notification_permission_list_tile_enable_button": "تمكين الإخطارات",
@@ -1517,6 +1542,8 @@
"obtainium_configurator": "مُهيئ Obtainium",
"obtainium_configurator_instructions": "استخدم Obtainium لتثبيت تطبيق Android وتحديثه مباشرةً من صفحة إصدارات Immich على GitHub. أنشئ مفتاح API واختر الإصدار المناسب لإنشاء رابط تهيئة Obtainium الخاص بك",
"ocr": "التعرف البصري على الحروف",
+ "ocr_body": "Immich الآن بقراءة النصوص الموجودة داخل صورك، لذا يمكنك البحث عنها من خلال ما تقوله.",
+ "ocr_title": "ابحث عن النص في صورك",
"official_immich_resources": "الموارد الرسمية لشركة Immich",
"offline": "غير متصل",
"offset": "ازاحة",
@@ -1535,6 +1562,8 @@
"open": "فتح",
"open_calendar": "افتح الرزنامة",
"open_in_browser": "فتح في متصفح",
+ "open_in_immich_body": "قم بتعيين Immich كمعرض الصور الخاص بك على Android لفتح الصور مباشرة من التطبيقات الأخرى.",
+ "open_in_immich_title": "افتح الصور في Immich",
"open_in_map_view": "فتح في عرض الخريطة",
"open_in_openstreetmap": "فتح في OpenStreetMap",
"open_the_search_filters": "افتح مرشحات البحث",
@@ -1693,7 +1722,10 @@
"recent": "حديث",
"recent_searches": "عمليات البحث الأخيرة",
"recently_added": "اضيف مؤخرا",
+ "recently_added_body": "انتقل مباشرةً إلى كل ما أضفته مؤخراً على صفحة مخصصة.",
+ "recently_added_description": "تصفح ممتلكاتك مرتبة حسب تاريخ تحميلها إلى Immich",
"recently_added_page_title": "أضيف مؤخرا",
+ "recently_added_title": "إضاف مؤخراً",
"recently_taken": "تم التقاطها مؤخرًا",
"refresh": "تحديث",
"refresh_encoded_videos": "تحديث مقاطع الفيديو المشفرة",
@@ -1900,6 +1932,8 @@
"share_link": "مشاركة رابط",
"share_original": "استخدام الملف الأصلي",
"share_preview": "استخدام الصورة المصغرة",
+ "share_quality_body": "اضغط مع الاستمرار على زر المشاركة لاختيار جودة الصورة قبل مشاركتها.",
+ "share_quality_title": "اختر جودة المشاركة التي تناسبك",
"shared": "مُشتَرك",
"shared_album_activities_input_disable": "التعليق معطل",
"shared_album_activity_remove_content": "هل تريد حذف هذا النشاط؟",
@@ -1915,6 +1949,8 @@
"shared_link_clipboard_copied_massage": "نسخ إلى الحافظة",
"shared_link_create_error": "خطأ أثناء إنشاء رابط مشترك",
"shared_link_custom_url_description": "الوصول إلى هذا الرابط المشترك باستخدام عنوان URL مخصص",
+ "shared_link_custom_url_title": "عنوان URL مخصص",
+ "shared_link_custom_url_warning": "تحذير: قد لا يتصرف اسم عنوان URL المخصص الذي يحتوي على شرطة مائلة للأمام كما تتوقع.",
"shared_link_edit_description_hint": "أدخل وصف المشاركة",
"shared_link_edit_expire_after_option_day": "يوم 1",
"shared_link_edit_expire_after_option_days": "{count} ايام",
@@ -1981,16 +2017,19 @@
"sign_out": "خروج",
"sign_up": "التسجيل",
"size": "الحجم",
+ "skip": "تخطي",
"skip_to_content": "تخطي إلى المحتوى",
"skip_to_folders": "تخطي إلى المجلدات",
"skip_to_tags": "تخطي إلى العلامات",
"slideshow": "عرض الشرائح",
+ "slideshow_body": "استرخِ وشاهد صورك تُعرض في عرض الشرائح بملء الشاشة.",
"slideshow_metadata_overlay_mode": "محتوى التراكب",
"slideshow_metadata_overlay_mode_description_only": "وصف فقط",
"slideshow_metadata_overlay_mode_full": "كامل",
"slideshow_repeat": "اعادة عرض الشرائح",
"slideshow_repeat_description": "العودة إلى البداية عند انتهاء عرض الشرائح",
"slideshow_settings": "إعدادات عرض الشرائح",
+ "slideshow_title": "عرض الشرائح",
"smart_album": "ألبوم ذكي",
"some_assets_already_have_a_location_warning": "بعض الملفات المحددة تحتوي بالفعل على موقع جغرافي",
"sort_albums_by": "رتب الألبومات حسب...",
@@ -2118,6 +2157,7 @@
"unknown": "غير معروف",
"unknown_country": "بلد غير معروف",
"unknown_date": "تاريخ غير معروف",
+ "unknown_schema": "مخطط غير معروف",
"unknown_year": "سنة غير معروفة",
"unlimited": "غير محدود",
"unlink_motion_video": "إلغاء ربط فيديو الحركة",
@@ -2153,6 +2193,8 @@
"upload_status_errors": "الأخطاء",
"upload_status_uploaded": "تم الرفع",
"upload_success": "تم الرفع بنجاح، قم بتحديث الصفحة لرؤية المحتويات المرفوعة الجديدة.",
+ "upload_to_album_body": "بالنسبة للمستخدمين الذين لا يستخدمون ميزة التحميل اليدوي، يمكنك الآن اختيار إضافة الصور المحلية مباشرة إلى الألبوم أثناء تحميلها، ولا داعي للتحميل ثم الإضافة إلى ألبوم لاحقًا بعد الآن.",
+ "upload_to_album_title": "قم بالتحميل مباشرة إلى ألبوم",
"upload_to_immich": "الرفع الىImmich ({count})",
"uploading": "جاري الرفع",
"uploading_media": "رفع الوسائط",
@@ -2220,6 +2262,9 @@
"week": "أسبوع",
"welcome": "مرحباً",
"welcome_to_immich": "مرحباً بك في Immich",
+ "whats_new": "ما الجديد",
+ "whats_new_settings_subtitle": "تعرف على كل ما هو جديد في Immich",
+ "whats_new_version": "الإصدار {version}",
"when": "عندما",
"width": "عُرض",
"wifi_name": "اسم شبكة Wi-Fi",
diff --git a/i18n/az.json b/i18n/az.json
index f183643b93..0cd83e01a8 100644
--- a/i18n/az.json
+++ b/i18n/az.json
@@ -23,6 +23,7 @@
"add_location": "Məkan əlavə et",
"add_partner": "Partnyor əlavə et",
"add_photos": "Şəkillər əlavə et",
+ "add_step": "Addım əlavə et",
"add_tag": "Etiket əlavə et",
"add_to": "Bura əlavə et…",
"add_to_album": "Alboma əlavə et",
@@ -44,7 +45,7 @@
"authentication_settings": "Səlahiyyətləndirmə parametrləri",
"authentication_settings_description": "Şifrə, OAuth və digər səlahiyyətləndirmə parametrləri",
"authentication_settings_disable_all": "Bütün giriş etmə metodlarını söndürmək istədiyinizdən əminsinizmi? Giriş etmə funksiyası tamamilə söndürüləcəkdir.",
- "authentication_settings_reenable": "Yenidən aktiv etmək üçün Server Əmri-ni istifadə edin.",
+ "authentication_settings_reenable": "Yenidən aktiv etmək üçün Server Əmri istifadə edin.",
"background_task_job": "Arxa plan tapşırıqları",
"backup_database": "Verilənlər bazasının dump-ını yaradın",
"backup_database_enable_description": "Verilənlər bazasının artıq nüsxələrini aktiv et",
@@ -57,10 +58,11 @@
"backup_onboarding_parts_title": "3-2-1 ehtiyat nüsxəsinə aşağıdakılar daxildir:",
"backup_onboarding_title": "Ehtiyat surətlər",
"backup_settings": "Bazanın Dump Parametrləri",
- "backup_settings_description": "Verilənlər bazasının ehtiyat nüsxə parametrlərini idarə et",
+ "backup_settings_description": "Verilənlər bazasının ehtiyat nüsxə parametrləri.",
"cleared_jobs": "{job} üçün tapşırıqlar silindi",
"config_set_by_file": "Konfiqurasiya hal-hazırda konfiqurasiya faylı ilə təyin olunub",
"confirm_delete_library": "{library} kitabxanasını silmək istədiyinizə əminmisiniz?",
+ "confirm_delete_library_assets": "Bu kitabxananı silmək istədiyinizə əminsiniz? {count, plural, one {# contained asset} other {all # contained assets}} Immich-dən silinəcək və geri qaytarmaq mümkün olmayacaq. Fayllar diskdə qalacaq.",
"confirm_email_below": "Təsdiqləmək üçün aşağıya {email} yazın",
"confirm_reprocess_all_faces": "Bütün üzləri yenidən emal etmək istədiyinizə əminsiniz? Bu, həmçinin adlandırılmış şəxsləri siləcək.",
"confirm_user_password_reset": "{user} adlı istifadəçinin şifrəsini sıfırlamaq istədiyinizdən əminmisiniz?",
@@ -71,11 +73,14 @@
"cron_expression_description": "Cron formatından istifadə edərək skan intervalını təyin edin. Ətraflı məlumat üçün nümunələrə baxa bilərsiniz. Crontab Guru",
"cron_expression_presets": "Cron ifadəsi ön ayarları",
"disable_login": "Giriş etməni söndür",
+ "download_csv": "CSV endir",
"duplicate_detection_job_description": "Bənzər şəkilləri tapmaq üçün maşın öyrənməsini işə salın. Bu prosses Smart Search funksiyasına əsaslanır",
"exclusion_pattern_description": "İstisna nümunələri kitabxananızı skan edərkən faylları və qovluqları nəzərə almamağa imkan verir. Bu, RAW faylları kimi idxal etmək istəmədiyiniz faylları olan qovluqlarınız olduqda faydalıdır.",
"export_config_as_json_description": "Cari sistem konfiqurasiyasını JSON faylı kimi endirin",
"external_libraries_page_description": "Admin xarici kitabxana səhifəsi",
"face_detection": "Üz tanıma",
+ "face_detection_description": "Maşın öyrənməsindən istifadə edərək aktivlərdəki üzləri aşkar edilsin. Videolar üçün yalnız eskiz nəzərə alınır. \"Yeniləyin\" bütün elementləri emal edir. \"Sıfırlayın\" əlavə olaraq bütün cari üz məlumatlarını silir. \"Yarımçıq\" hələ emal olunmamış aktivləri növbəyə qoyur. Aşkar edilmiş üzlər Üz Aşkarlama tamamlandıqdan sonra Üz Tanıma üçün növbəyə qoyulacaq və onları mövcud və ya yeni insanlara qruplaşdıracaq.",
+ "facial_recognition_job_description": "Aşkarlanmış üzləri insanlara qruplaşdırın. Bu addım Üz Aşkarlanması tamamlandıqdan sonra icra olunur. \"Sıfırla\" bütün üzləri (simaları) yenidən qruplaşdırır. \"Çatışmayan\" növbələnmiş amma şəxs təyin olmayan üzləri göstərir.",
"failed_job_command": "{command} əmri {job} işi üçün uğursuz oldu",
"force_delete_user_warning": "XƏBƏRDARLIQ: Bu əməliyyat istifadəçi və bütün məlumatları siləcəkdir. Bu prossesi və silinən faylları geri qaytarmaq olmaz.",
"image_format": "Format",
@@ -85,13 +90,39 @@
"image_fullsize_enabled_description": "Veb üçün uyğun olmayan formatlar üçün tam ölçülü şəkil yaradın. “Daxili önizləməyə üstünlük ver” aktiv olduqda, daxili önizləmələr çevrilmədən birbaşa istifadə olunur. JPEG kimi veb üçün uyğun formatlara təsir etmir.",
"image_fullsize_quality_description": "Tam ölçülü şəkil keyfiyyəti (1-100). Daha yüksək dəyər daha yaxşı keyfiyyət verir, lakin daha böyük ölçülü fayl yaradır.",
"image_fullsize_title": "Tam ölçülü şəkil tənzimləmələri",
+ "image_prefer_embedded_preview": "Yerləşdirilmiş önizləməyə üstünlük ver",
+ "image_prefer_embedded_preview_setting_description": "RAW fotoşəkillərində təsvir emalı üçün giriş kimi və mümkün olduqda daxil edilmiş önizləmələrdən istifadə edin. Bu, bəzi şəkillər üçün daha dəqiq rənglər yarada bilər, lakin önizləmənin keyfiyyəti kameradan asılıdır və təsvirdə daha çox sıxılma artefaktları ola bilər.",
+ "image_prefer_wide_gamut": "Geniş qammaya üstünlük ver",
+ "image_prefer_wide_gamut_setting_description": "Miniatürlər üçün Display P3 istifadə edin. Bu, geniş rəng diapazonu ilə şəkillərin canlılığını daha yaxşı qoruyur, lakin köhnə brauzer versiyası olan köhnə cihazlarda şəkillər fərqli görünə bilər. Rəng dəyişikliklərinin qarşısını almaq üçün sRGB şəkilləri sRGB olaraq saxlanılır.",
+ "image_preview_description": "Tək bir elementə baxarkən və maşın öyrənməsi üçün istifadə edilən, metaməlumatları silinmiş orta ölçülü şəkil",
+ "image_preview_quality_description": "1-100 arasında önizləmə keyfiyyəti. Daha yüksək olan daha yaxşıdır, lakin daha böyük fayllar yaradır və tətbiqin cəldliyini zəiflədə bilər. Aşağı dəyərin təyin edilməsi maşın öyrənməsinin keyfiyyətinə təsir göstərə bilər.",
"image_preview_title": "Önizləmə parametrləri",
+ "image_progressive": "Proqressiv",
+ "image_progressive_description": "Tədricən yüklənmə ekranı üçün JPEG şəkillərini tədricən (proqressiv) kodlaşdırın. Bunun WebP şəkillərinə heç bir təsiri yoxdur.",
"image_quality": "Keyfiyyət",
"image_resolution": "Çözümlülük",
"image_resolution_description": "Yüksək çözümlülükdə daha çox detallar vardır, lakin onları kodlaşdırmaq da daha çox vaxt alır, daha böyük həcmə sahib olurlar və tətbiqin işləmə sürətini yavaşladır.",
"image_settings": "Şəklin parametrləri",
"image_settings_description": "Hazırlanan şəkillərin keyfiyyətini və çözümlülüyünü idarə et",
+ "image_thumbnail_description": "Əsas zaman xətti kimi foto qruplarına baxarkən istifadə edilən, metaməlumatları silinmiş kiçik eskiz",
+ "image_thumbnail_quality_description": "1-100 arasında eskiz keyfiyyəti. Daha yüksək keyfiyyət daha yaxşıdır, lakin daha böyük fayllar yaradır və tətbiqin cəldliyini zəiflədə bilər.",
"image_thumbnail_title": "Önizləmə parametrləri",
+ "import_config_from_json_description": "JSON konfiqurasiya faylını yükləməklə sistem konfiqurasiyasını idxal edin",
+ "integrity_checks_checksum_files": "Yoxlama cəmi (checksum) faylları",
+ "integrity_checks_checksum_files_description": "Yoxlama cəmi (checksum) yoxlamasını konfiqurasiya et",
+ "integrity_checks_checksum_files_enable_description": "Yoxlama cəmi (checksum) yoxlamasını aktivləşdir",
+ "integrity_checks_checksum_files_percentage_limit": "Faiz limiti",
+ "integrity_checks_checksum_files_percentage_limit_description": "Yoxlama cəmi (checksum) yoxlamasının hər intervalda nə qədər işləməli olduğunun maksimum faizini 0,01 ilə 1 arasında təyin edin.",
+ "integrity_checks_checksum_files_time_limit": "Zaman limiti",
+ "integrity_checks_checksum_files_time_limit_description": "Yoxlama cəmi yoxlamasının hər intervalda işləməli olduğu maksimum müddəti təyin edin. (millisaniyə)",
+ "integrity_checks_missing_files": "Çatışmayan fayllar",
+ "integrity_checks_missing_files_description": "Tezliyi təyin et və çatışmayan faylların yoxlanılmasını aktiv/deaktiv et",
+ "integrity_checks_missing_files_enable_description": "Çatışmayan faylların yoxlanmasını aktiv et",
+ "integrity_checks_settings": "Tamlıq yoxlamaları",
+ "integrity_checks_settings_description": "Tamlıq yoxlamalarının intervalını təyin et",
+ "integrity_checks_untracked_files": "İzlənməyən fayllar",
+ "integrity_checks_untracked_files_description": "İzlənməyən faylların axtarışını aktiv/deaktiv et və tezliyini təyin et",
+ "integrity_checks_untracked_files_enable_description": "İzlənməyən faylların axtarışını aktiv et",
"job_concurrency": "{job}paralellik",
"job_created": "Tapşırıq yaradıldı",
"job_not_concurrency_safe": "Bu iş eyni vaxtda icra üçün təhlükəsiz deyil.",
@@ -99,21 +130,35 @@
"job_settings_description": "Parallel şəkildə fəaliyyət göstərən tapşırıqları idarə et",
"jobs_delayed": "{jobCount, plural, other {# gecikməli}}",
"jobs_failed": "{jobCount, plural, other {# uğursuz}}",
+ "jobs_over_time": "Tapşırıqların qrafiki",
"library_created": "{library} kitabxanası yaradıldı",
"library_deleted": "Kitabxana silindi",
+ "library_details": "Kitabxana parametrləri",
+ "library_folder_description": "İdxal qovluğunu göstərin. Bu qovluqda, alt qovluqlarla birlikdə, şəkil və videolar axtarılacaq.",
+ "library_remove_exclusion_pattern_prompt": "Bu istisna şablonunu silmək istədiyinizə əminsiniz?",
+ "library_remove_folder_prompt": "Bu idxal qovluğunu silmək istədiyinizə əminsiniz?",
"library_scanning": "Periodik skan",
"library_scanning_description": "Periodik kitabxana skanını confiqurasiya et",
"library_scanning_enable_description": "Periodik kitabxana skanını aktivləşdir",
"library_settings": "Xarici kitabxana",
"library_settings_description": "Xarici kitabxana parametrlərini idarə et",
- "library_tasks_description": "Kitabxana tapşırıqlarını yerinə yetir",
+ "library_tasks_description": "Xarici kitabxanalarda yenilikləri yoxla",
+ "library_updated": "Yenilənmiş kitabxana",
"library_watching_enable_description": "Fayl dəyişiklikləri üçün xarici kitabxanalara baxış keçirin",
- "library_watching_settings": "Kitabxana nəzarəti (EKSPERİMENTAL)",
+ "library_watching_settings": "Kitabxana nəzarəti [EKSPERİMENTAL]",
"library_watching_settings_description": "Dəyişdirilən faylları avtomatik olaraq yoxla",
"logging_enable_description": "Jurnalı aktivləşdir",
"logging_level_description": "Aktiv edildikdə hansı jurnal səviyyəsi istifadə olunur.",
+ "logging_settings": "Tarixçə",
+ "machine_learning_availability_checks": "Əlçatanlıq yoxlamaları",
+ "machine_learning_availability_checks_description": "Əlçatan maşın öyrənmə serverlərini avtomatik tap və təyin et",
+ "machine_learning_availability_checks_enabled": "Əlçatanlıq yoxlamalarını aktiv et",
+ "machine_learning_availability_checks_interval": "Yoxlama intervalı",
+ "machine_learning_availability_checks_interval_description": "Əlçatanlıq yoxlamaları arasında millisaniyələrlə interval",
+ "machine_learning_availability_checks_timeout": "Sorğunun bitmə müddəti",
+ "machine_learning_availability_checks_timeout_description": "Əlçatanlıq yoxlamaları üçün millisaniyələrlə limit",
"machine_learning_clip_model": "CLIP modeli",
- "machine_learning_clip_model_description": "Buradaqeyd olunan CLIP modelinin adı. Modeli dəyişdirdikdən sonra bütün şəkillər üçün 'Ağıllı Axtarış' funksiyasını yenidən işə salmalısınız.",
+ "machine_learning_clip_model_description": "Burada qeyd olunan CLIP modelinin adı. Modeli dəyişdirdikdən sonra bütün şəkillər üçün 'Ağıllı Axtarış' funksiyasını yenidən işə salmalısınız.",
"machine_learning_duplicate_detection": "Dublikat Aşkarlama",
"machine_learning_duplicate_detection_enabled": "Dublikat aşkarlamanı aktiv etmək",
"machine_learning_duplicate_detection_enabled_description": "Əgər deaktiv edilibsə, birə-bir eyni fayllar yenədə silinəcək.",
@@ -124,5 +169,6 @@
"machine_learning_facial_recognition_description": "Şəkillərdəki üzləri aşkarla, tanı və qruplaşdır",
"machine_learning_facial_recognition_model": "Üz tanıma modeli"
},
+ "discord": "Discord",
"timeline": "Zaman şkalası"
}
diff --git a/i18n/be.json b/i18n/be.json
index 96b7e61a9c..95583ec646 100644
--- a/i18n/be.json
+++ b/i18n/be.json
@@ -33,7 +33,7 @@
"add_to_albums": "Дадаць у альбомы",
"add_to_albums_count": "Дадаць у альбомы ({count})",
"add_to_bottom_bar": "Дадаць у",
- "add_upload_to_stack": "Запампаваць і дадаць у набор",
+ "add_upload_to_stack": "Дадаць запампаванае ў стос",
"add_url": "Дадаць URL",
"added_to_archive": "Дададзена ў архіў",
"added_to_favorites": "Дададзена ў абраныя",
@@ -53,11 +53,11 @@
"backup_onboarding_1_description": "зняшняя копія ў воблаку або ў іншым фізічным месцы.",
"backup_onboarding_2_description": "лакальныя копіі на іншых прыладах. Гэта ўключае ў сябе асноўныя файлы і лакальную рэзервовую копію гэтых файлаў.",
"backup_onboarding_3_description": "поўная колькасць копій вашых данных, у тым ліку зыходных файлаў. Гэта ўключае 1 пазаштатную копію і 2 лакальныя копіі.",
- "backup_onboarding_description": "Стратэгія рэзервовых копій 3-2-1 рэкамендуецца для аховы вашых даных. Захоўвайце копіі загружаных фота/відэа, а таксама базу даных Immich для поўнага рэзервовага капіявання.",
+ "backup_onboarding_description": "Стратэгія рэзервовых копій 3-2-1 рэкамендуецца для аховы вашых даных. Захоўвайце копіі запампаваных фота/відэа, а таксама базу даных Immich для поўнага рэзервовага капіравання.",
"backup_onboarding_footer": "Каб атрымаць дадатковую інфармацыю пра рэзервовае капіраванне Immich, звярніцеся да дакументацыі.",
"backup_onboarding_parts_title": "Рэзервовая копія «3-2-1» уключае ў сябе:",
"backup_onboarding_title": "Рэзервовыя копіі",
- "backup_settings": "Налады рэзервовага капіявання",
+ "backup_settings": "Налады рэзервовага капіравання",
"backup_settings_description": "Кіраванне наладамі рэзервавання базы даных.",
"cleared_jobs": "Ачышчаны заданні для: {job}",
"config_set_by_file": "Канфігурацыя зараз усталявана праз файл канфігурацыі",
@@ -70,17 +70,17 @@
"copy_config_to_clipboard_description": "Капіраваць бягучую канфігурацыю сістэмы ў JSON у буфер абмену",
"create_job": "Стварыць заданне",
"cron_expression": "Выраз Cron",
- "cron_expression_description": "Задайце інтэрвал сканавання, выкарыстоўваючы фармат cron. Для атрымання дадатковай інфармацыі, звярніцеся, напрыклад, да Crontab Guru",
+ "cron_expression_description": "Задайце інтэрвал сканіравання, выкарыстоўваючы фармат cron. Для атрымання дадатковай інфармацыі, звярніцеся, напрыклад, да Crontab Guru",
"cron_expression_presets": "Прадустаноўкі выразаў Cron",
"disable_login": "Адключыць уваход",
"download_csv": "Спампаваць CSV",
"duplicate_detection_job_description": "Запусціць машыннае навучанне на аб’ектах для выяўлення падобных відарысаў. Залежыць ад Smart Search",
- "exclusion_pattern_description": "Шаблоны выключэння дазваляюць ігнараваць файлы і папкі пры сканаванні вашай бібліятэкі. Гэта карысна, калі ў вас ёсць папкі, якія змяшчаюць файлы, якія вы не хочаце імпартаваць, напрыклад, файлы RAW.",
+ "exclusion_pattern_description": "Шаблоны выключэння дазваляюць ігнараваць файлы і папкі пры сканіраванні бібліятэкі. Гэта карысна, калі ў вас ёсць папкі, якія змяшчаюць файлы, якія вы не хочаце імпартаваць, напрыклад, файлы RAW.",
"export_config_as_json_description": "Захаваць бягучую канфігурацыю сістэмы ў файл JSON",
"external_libraries_page_description": "Кіраванне знешнімі бібліятэкамі",
"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": "ПАПЯРЭДЖАННЕ: Гэта дзеянне неадкладна выдаліць карыстальніка і ўсе аб'екты. Гэта дзеянне не можа быць адроблена і файлы немагчыма будзе аднавіць.",
"image_format": "Фармат",
@@ -91,8 +91,8 @@
"image_fullsize_quality_description": "Якасць відарыса ў поўным памеры ад 1 да 100. Больш высокае значэнне лепшае, але прыводзіць да павелічэння памеру файла.",
"image_fullsize_title": "Налады відарыса ў поўным памеры",
"image_prefer_embedded_preview": "Аддаваць перавагу ўбудаванай праяве",
- "image_prefer_embedded_preview_setting_description": "Выкарыстоўваць убудаваныя праявы ў RAW-фотаздымках ў якасці ўваходных даных для апрацоўкі малюнкаў, калі магчыма. Гэта дазваляе атрымаць больш дакладныя колеры для некаторых відарысаў, але ж якасць праяў залежыць ад камеры, і на відарысе можа быць больш артэфактаў сціску.",
- "image_prefer_wide_gamut": "Аддаць перавагу шырокай гаме",
+ "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_preview_quality_description": "Якасць перадпрагляду ад 1 да 100. Чым вышэй, тым лепш, але файлы становяцца большымі, і гэта можа знізіць хуткасць працы праграмы. Нізкае значэнне можа паўплываць на якасць машыннага навучання.",
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Якасць мініяцюр ад 1 да 100. Чым вышэй, тым лепш, але файлы становяцца большымі, што можа знізіць хуткасць працы праграмы.",
"image_thumbnail_title": "Налады мініяцюр",
"import_config_from_json_description": "Імпартаваць канфігурацыю сістэмы праз запампоўванне JSON файла настроек",
+ "integrity_checks_checksum_files": "Файлы кантрольных сум",
+ "integrity_checks_checksum_files_description": "Наладжванне праверкі кантрольнай сумы",
+ "integrity_checks_checksum_files_enable_description": "Уключыць праверку кантрольнай сумы",
+ "integrity_checks_checksum_files_percentage_limit": "Працэнтны ліміт",
+ "integrity_checks_checksum_files_percentage_limit_description": "Наладзьце максімальны працэнт ад 0,01 да 1, які вызначае, колькі разоў трэба правяраць кантрольную суму кожны інтэрвал.",
+ "integrity_checks_checksum_files_time_limit": "Абмежаванне па часе",
+ "integrity_checks_checksum_files_time_limit_description": "Наладжванне максімальнай працягласці, на працягу якой праверка кантрольнай сумы павінна выконвацца кожны інтэрвал. (мс)",
+ "integrity_checks_missing_files": "Адсутныя файлы",
+ "integrity_checks_missing_files_description": "Наладжванне частаты і ўключэнне або выключэнне праверкі адсутных файлаў",
+ "integrity_checks_missing_files_enable_description": "Уключэнне праверкі адсутных файлаў",
+ "integrity_checks_settings": "Праверкі цэласнасці",
+ "integrity_checks_settings_description": "Кіраванне інтэрваламі праверак цэласнасці",
+ "integrity_checks_untracked_files": "Файлы, якія не адсочваюцца",
+ "integrity_checks_untracked_files_description": "Наладжванне частаты і ўключэння або адключэння праверак неадсочваных файлаў",
+ "integrity_checks_untracked_files_enable_description": "Уключыць праверку неадсочваных файлаў",
"job_concurrency": "Колькасць паралельных патокаў задання {job}",
"job_created": "Заданне створана",
"job_not_concurrency_safe": "Гэта заданне небяспечнае для паралельнага выканання.",
@@ -119,15 +134,15 @@
"library_created": "Створана бібліятэка: {library}",
"library_deleted": "Бібліятэка выдалена",
"library_details": "Падрабязнасці бібліятэкі",
- "library_folder_description": "Вызначце папку для імпарту. Гэта папка разам з падпапкамі будзе прасканавана на наяўнасць фота і відэа.",
+ "library_folder_description": "Вызначце папку для імпарту. Гэта папка разам з падпапкамі будзе прасканіравана на наяўнасць фота і відэа.",
"library_remove_exclusion_pattern_prompt": "Вы упэўнены, што хочаце выдаліць гэты шаблон выключэння?",
"library_remove_folder_prompt": "Вы упэўнены, што хочаце выдаліць гэту папку імпарту?",
- "library_scanning": "Сканаванне па раскладзе",
+ "library_scanning": "Сканіраванне па раскладзе",
"library_scanning_description": "Налады перыядычнага сканіравання бібліятэкі",
- "library_scanning_enable_description": "Уключыць перыядычнае сканаванне бібліятэкі",
+ "library_scanning_enable_description": "Уключыць перыядычнае сканіраванне бібліятэкі",
"library_settings": "Знешняя бібліятэка",
"library_settings_description": "Кіраванне наладамі знешняй бібліятэкі",
- "library_tasks_description": "Сканаваць знешнія бібліятэкі на наяўнасць новых і/або змененых рэсурсаў",
+ "library_tasks_description": "Сканіраваць знешнія бібліятэкі на наяўнасць новых і/або змененых рэсурсаў",
"library_updated": "Бібліятэка абноўлена",
"library_watching_enable_description": "Сачыць за зменамі файлаў у знешніх бібліятэках",
"library_watching_settings": "[ЭКСПЕРЫМЕНТАЛЬНА] Сачыць за бібліятэкай",
@@ -144,9 +159,9 @@
"machine_learning_availability_checks_timeout_description": "Час чакання ў мілісекундах для праверкі даступнасці",
"machine_learning_clip_model": "CLIP мадэль",
"machine_learning_clip_model_description": "Назва CLIP мадэлі паказана тут. Звярніце ўвагу, што пры змене мадэлі неабходна паўторна запусціць заданне \"Smart Search\" для ўсіх відарысаў.",
- "machine_learning_duplicate_detection": "Выяўленне падобных",
+ "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": "Калі адключана, усе функцыі машыннага навучання будуць адключаны незалежна ад налад ніжэй.",
@@ -158,31 +173,32 @@
"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": "Максімальнае адрозненне паміж двума асобамі, якія можна лічыць адным чалавекам (у дыяпазоне ад 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_ocr": "Разпазнаванне тэксту (OCR)",
- "machine_learning_ocr_description": "Выкарыстоўвайце машыннае навучанне для распазнавання тэксту на малюнках",
+ "machine_learning_max_recognition_distance": "Парог раcпазнавання",
+ "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": "Мінімум раcпазнаных твараў",
+ "machine_learning_min_recognized_faces_description": "Мінімальная колькасць распазнаных твараў для стварэння чалавека. Павялічэнне гэтага параметра робіць распазнанне твараў больш дакладным, але пры гэтым павялічваецца верагоднасць таго, што твар не будзе прысвоены чалавеку.",
+ "machine_learning_ocr": "Распазнаванне тэксту (OCR)",
+ "machine_learning_ocr_description": "Выкарыстоўванне машыннага навучання для распазнавання тэксту на відарысах",
"machine_learning_ocr_enabled": "Дадаць OCR",
"machine_learning_ocr_enabled_description": "Калі адключана, тэкст на відарысах не будзе распазнавацца.",
"machine_learning_ocr_max_resolution": "Максімальная раздзяляльнасць",
"machine_learning_ocr_max_resolution_description": "Відарысы з раздзяляльнасцю больш гэтай будуць паменшаны з захаваннем суадносіны бакоў. Больш высокія значэнні павышаюць дакладнасць распазнавання, але патрабуюць больш часу на апрацоўку і выкарыстоўваюць больш памяці.",
- "machine_learning_ocr_min_detection_score": "Мінімальны бал выяўлення",
- "machine_learning_ocr_min_detection_score_description": "Мінімальны бал даверу для выяўлення тэксту складае ад 0 да 1. Больш нізкія значэнні дазволяць выявіць больш тэксту, але могуць прывесці да хібных спрацоўванняў.",
- "machine_learning_ocr_min_recognition_score": "Мінімальны бал распазнавання",
- "machine_learning_ocr_min_score_recognition_description": "Мінімальны бал даверу для распазнавання выяўленага тэксту складае ад 0 да 1. Больш нізкія значэнні распазнаюць больш тэксту, але могуць прывесці да хібных спрацоўванняў.",
+ "machine_learning_ocr_min_detection_score": "Мінімальны парог выяўлення",
+ "machine_learning_ocr_min_detection_score_description": "Мінімальны парог дакладнасці для выяўлення тэксту складае ад 0 да 1. Больш нізкія значэнні дазволяць выявіць больш тэксту, але могуць прывесці да хібных спрацоўванняў.",
+ "machine_learning_ocr_min_recognition_score": "Мінімальны парог распазнавання",
+ "machine_learning_ocr_min_score_recognition_description": "Мінімальны парог дакладнасці для распазнавання выяўленага тэксту складае ад 0 да 1. Больш нізкія значэнні распазнаюць больш тэксту, але могуць прывесці да хібных спрацоўванняў.",
"machine_learning_ocr_model": "Мадэль машыннага навучання (OCR)",
"machine_learning_ocr_model_description": "Серверныя мадэлі больш дакладныя, чым мабільныя, але апрацоўваюць даныя даўжэй і выкарыстоўваюць больш памяці.",
"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-адрас, спробы падключэння да кожнага сервера будуць выконвацца па чарзе, пакуль адзін з іх не адкажа паспяхова, па парадку ад першага да апошняга. Серверы, якія не адказваюць, будуць часова ігнаравацца, пакуль яны не вернуцца ў сетку.",
+ "maintenance_backup_management": "Кіраванне рэзервовым капіраваннем",
"maintenance_delete_backup": "Выдаліць рэзервовую копію",
"maintenance_delete_backup_description": "Гэты файл будзе беззваротна выдалены.",
"maintenance_delete_error": "Не атрымалася выдаліць рэзервовую копію.",
@@ -196,9 +212,14 @@
"maintenance_integrity_missing_file_description": "Файлы, якія ёсць у базе даных Immich, але не існуюць у файлавай сістэме.",
"maintenance_integrity_missing_file_job": "Праверка наяўнасці адсутных файлаў",
"maintenance_integrity_missing_file_refresh_job": "Абнавіць справаздачы аб адсутных файлах",
+ "maintenance_integrity_report": "Справаздача аб цэласнасці",
+ "maintenance_integrity_untracked_file": "Неадсочваныя файлы",
+ "maintenance_integrity_untracked_file_description": "Файлы ў каталогах Immich, пра якія ў Immich няма ніякіх запісаў.",
+ "maintenance_integrity_untracked_file_job": "Праверыць наяўнасць неадсочваных файлаў",
+ "maintenance_integrity_untracked_file_refresh_job": "Абнавіць справаздачы аб неадсочваных файлах",
"maintenance_restore_backup": "Аднавіць рэзервовую копію",
"maintenance_restore_backup_description": "Immich будзе сцёрты і адноўлены з абранай рэзервовай копіі. Перад працягам будзе створана рэзервовая копія.",
- "maintenance_restore_backup_different_version": "Гэтая рэзервовая копія была створана з для іншай версіі Immich!",
+ "maintenance_restore_backup_different_version": "Гэтая рэзервовая копія была створана з іншай версіі Immich!",
"maintenance_restore_backup_unknown_version": "Не атрымалася вызначыць рэзервовую версію.",
"maintenance_restore_database_backup": "Аднавіць рэзервовую копію базы даных",
"maintenance_restore_database_backup_description": "Адкат да папярэдняга стану базы даных з выкарыстаннем файла рэзервовай копіі",
@@ -224,7 +245,7 @@
"map_settings": "Карта",
"map_settings_description": "Кіраванне наладамі карты",
"map_style_description": "URL-адрас style.json тэмы карты",
- "memory_cleanup_job": "Ачыстка памяці",
+ "memory_cleanup_job": "Ачыстка ўспамінаў",
"memory_generate_job": "Генерацыя ўспамінаў",
"metadata_extraction_job": "Выняць метаданыя",
"metadata_extraction_job_description": "Выняць з файлаў метаданыя, такія як месцазнаходжанне, твары і раздзяляльнасць",
@@ -234,7 +255,7 @@
"metadata_settings_description": "Кіраванне наладамі метаданых",
"migration_job": "Міграцыя",
"migration_job_description": "Перанас мініяцюр аб'ектаў і твараў ў актуальную структуру папак",
- "nightly_tasks_cluster_faces_setting_description": "Запусціць распазнаванне асоб для нядаўна выяўленых твараў",
+ "nightly_tasks_cluster_faces_setting_description": "Запусціць распазнаванне людзей па нядаўна выяўленых тварах",
"nightly_tasks_cluster_new_faces_setting": "Згрупаваць новыя твары",
"nightly_tasks_database_cleanup_setting": "Ачыстка базы даных",
"nightly_tasks_database_cleanup_setting_description": "Ачысціць старыя, пратэрмінаваныя даныя з базы даных",
@@ -250,7 +271,7 @@
"nightly_tasks_sync_quota_usage_setting_description": "Абнаўляць квоту сховішча карыстальніка на аснове бягучага выкарыстання",
"no_paths_added": "Не дададзена аніводнага шляху",
"no_pattern_added": "Не дададзена аніводнага патэрну",
- "note_apply_storage_label_previous_assets": "Заўвага: Каб ужыць Маркіроўку сховішча да раней загружаных аб'ектаў, запусціце",
+ "note_apply_storage_label_previous_assets": "Заўвага: Каб ужыць Маркіроўку сховішча да раней запампаваных аб'ектаў, запусціце",
"note_cannot_be_changed_later": "УВАГА: Гэта нельга будзе змяніць пазней!",
"notification_email_from_address": "З адрасоў",
"notification_email_from_address_description": "Электронны адрас адпраўніка, для прыкладу: \"Immich Photo Server \". Пераканайцеся, што выкарыстоўваееца адрас, якому дазволена адпраўляць электронныя лісты.",
@@ -297,12 +318,12 @@
"oauth_storage_quota_default_description": "Квота ў ГіБ, якая будзе выкарыстоўвацца, калі claim не пададзены.",
"oauth_timeout": "Тайм-аўт запыту",
"oauth_timeout_description": "Тайм-аўт запытаў у мілісекундах",
- "ocr_job_description": "Выкарыстоўваць машыннае навучанне для распазнавання тэксту на відарысах",
+ "ocr_job_description": "Выкарыстоўванне машыннага навучання для распазнавання тэксту на відарысах",
"password_enable_description": "Уваход з дапамогай электроннай пошты і пароля",
"password_settings": "Уваход па паролі",
"password_settings_description": "Кіраванне наладамі ўваходу па паролі",
"paths_validated_successfully": "Усе шляхі паспяхова правераныя",
- "person_cleanup_job": "Ачыстка данных асоб",
+ "person_cleanup_job": "Ачыстка даных людзей",
"queue_details": "Звесткі пра чаргу",
"queues": "Чэргі заданняў",
"queues_page_description": "Старонка чэргаў заданняў адміністратара",
@@ -310,6 +331,8 @@
"refreshing_all_libraries": "Абнаўленне ўсіх бібліятэк",
"registration": "Рэгістрацыя адміністратара",
"registration_description": "Вы з'яўляецеся першым карыстальнікам сістэмы, таму вы будзеце прызначаны адміністратарам. Вы будзеце адказваць за адміністрацыйныя задачы, а таксама ствараць новых карыстальнікаў.",
+ "release_channel_release_candidate": "Кандыдат на рэліз",
+ "release_channel_stable": "Стабільны",
"remove_failed_jobs": "Выдаліць няўдалыя заданні",
"require_password_change_on_login": "Патрабаваць змяніць пароль пры першым уваходзе ў сістэму",
"reset_settings_to_default": "Скінуць налады да прадвызначаных",
@@ -320,7 +343,7 @@
"server_external_domain_settings": "Знешні дамен",
"server_external_domain_settings_description": "Дамен, які выкарыстоўваецца для знешніх спасылак",
"server_public_users": "Публічныя карыстальнікі",
- "server_public_users_description": "Усе карыстальнікі (імя і электронная пошта) паказваюцца пры даданні карыстальніка ў агульныя альбомы. Калі адключана, спіс карыстальнікаў будзе даступны толькі адміністратарам.",
+ "server_public_users_description": "Усе карыстальнікі (імя і электронная пошта) паказваюцца пры дадаванні карыстальніка ў абагуленыя альбомы. Калі адключана, спіс карыстальнікаў будзе даступны толькі адміністратарам.",
"server_settings": "Налады сервера",
"server_settings_description": "Кіраванне наладамі сервера",
"server_stats_page_description": "Старонка статыстыкі сервера для адміністратара",
@@ -348,7 +371,7 @@
"storage_template_user_label": "{label} - гэта пазнака сховішча карыстальніка",
"system_settings": "Сістэмныя налады",
"tag_cleanup_job": "Ачыстка тэгаў",
- "template_email_available_tags": "Вы можаце выкарыстоўваць наступныя зменныя ў сваім шаблоне: {tags}",
+ "template_email_available_tags": "У шаблоне можна выкарыстоўваць наступныя пераменныя: {tags}",
"template_email_if_empty": "Калі шаблон пусты, будзе выкарыстоўвацца стандартны шаблон ліста.",
"template_email_invite_album": "Шаблон запрашэння ў альбом",
"template_email_preview": "Перадпрагляд",
@@ -361,8 +384,8 @@
"theme_custom_css_settings_description": "Каскадныя табліцы стыляў дазваляюць наладзіць аздабленне Immich.",
"theme_settings": "Налады тэмы",
"theme_settings_description": "Кіраванне аздабленнем вэб-інтэрфейсу Immich",
- "thumbnail_generation_job": "Згенераваць мініяцюру",
- "thumbnail_generation_job_description": "Генерацыя вялікіх, малых і размытых мініяцюр для кожнага аб’екта, а таксама мініяцюр для кожнай асобы",
+ "thumbnail_generation_job": "Генерацыя мініяцюр",
+ "thumbnail_generation_job_description": "Генерацыя вялікіх, малых і размытых мініяцюр для кожнага аб’екта, а таксама мініяцюр для кожнага чалавека",
"transcoding_acceleration_api": "API паскарэння",
"transcoding_acceleration_api_description": "API, які будзе ўзаемадзейнічаць з вашай прыладай для паскарэння транскадавання. Гэтая налада працуе «па магчымасці»: пры збоі адбудзецца адкат на праграмнае транскадаванне. VP9 можа працаваць ці не — у залежнасці ад вашага абсталявання.",
"transcoding_acceleration_nvenc": "NVENC (патрабуецца відэакарта NVIDIA)",
@@ -404,6 +427,9 @@
"transcoding_preferred_hardware_device_description": "Прымяняецца толькі да VAAPI і QSV. Задае dri-вузел для апаратнага транскадавання.",
"transcoding_preset_preset": "Прэсет (-preset)",
"transcoding_preset_preset_description": "Хуткасць сціскання. Больш павольныя прэсеты даюць меншыя файлы і павышаюць якасць пры мэтавым бітрэйце. VP9 ігнаруе хуткасці вышэйшыя за «faster».",
+ "transcoding_realtime": "Перакадаванне ў рэжыме рэальнага часу [EXPERIMENTAL]]",
+ "transcoding_realtime_resolutions": "Раздзяляльнасці",
+ "transcoding_realtime_video_codecs": "Відэакодэкі",
"transcoding_reference_frames": "Апорныя кадры",
"transcoding_reference_frames_description": "Колькасць кадраў, якія выкарыстоўваюцца як эталон пры сцісканні дадзенага кадра. Большыя значэнні паляпшаюць эфектыўнасць сціскання, але запавольваюць кадаванне. 0 выстаўляе значэнне аўтаматычна.",
"transcoding_required_description": "Толькі відэа ў недапушчальным фармаце",
@@ -464,11 +490,11 @@
"advanced_settings_log_level_title": "Узровень вядзення журнала: {level}",
"advanced_settings_prefer_remote_subtitle": "Некаторыя прылады вельмі павольна загружаюць мініяцюры з лакальных аб’ектаў. Уключыце гэтую наладу, каб замест гэтага загружаць відарысы з сервера.",
"advanced_settings_prefer_remote_title": "Аддаваць перавагу аддаленым відарысам",
- "advanced_settings_proxy_headers_subtitle": "Вызначце загалоўкі проксі, якія Immich павінен дасылаць з кожным сеткавым запытам",
+ "advanced_settings_proxy_headers_subtitle": "Вызначце загалоўкі проксі, якія Immich павінен адпраўляць з кожным сеткавым запытам",
"advanced_settings_proxy_headers_title": "[ЭКСПЕРЫМЕНТАЛЬНА] Уласныя загалоўкі проксі",
"advanced_settings_readonly_mode_subtitle": "Уключае рэжым толькі для прагляду, у якім фота можна толькі праглядаць; выбар некалькіх відарысаў, абагульванне, кастынг і выдаленне адключаныя. Уключыць/выключыць рэжым толькі для прагляду можна праз аватар карыстальніка на галоўным экране",
"advanced_settings_readonly_mode_title": "Рэжым толькі для чытання",
- "advanced_settings_sync_remote_deletions_subtitle": "Аўтаматычна выдаляць ці аднаўляць аб’ект на гэтай прыладзе, калі такое дзеянне выконваецца ў вэбе",
+ "advanced_settings_sync_remote_deletions_subtitle": "Аўтаматычна выдаляць або аднаўляць аб’ект на гэтай прыладзе, калі гэта дзеянне выконваецца ў вэб-інтэрфейсе",
"advanced_settings_sync_remote_deletions_title": "Сінхранізаваць аддаленыя выдаленні [ЭКСПЕРЫМЕНТАЛЬНА]",
"advanced_settings_tile_subtitle": "Пашыраныя налады карыстальніка",
"advanced_settings_troubleshooting_subtitle": "Уключыць дадатковыя функцыі для пошуку і выпраўлення непаладак",
@@ -478,7 +504,7 @@
"age_years": "{years, plural, other {Узрост #}}",
"album": "Альбом",
"album_added": "Альбом дададзены",
- "album_added_notification_setting_description": "Атрымліваць паведамленне на пошту, калі вас дадаюць у агульны альбом",
+ "album_added_notification_setting_description": "Атрымліваць паведамленне на элекронную пошту, калі вас дадаюць у абагулены альбом",
"album_cover_updated": "Вокладка альбома абноўлена",
"album_delete_confirmation": "Вы ўпэўнены, што хочаце выдаліць альбом {album}?",
"album_delete_confirmation_description": "Калі гэты альбом абагулены, іншыя карыстальнікі больш не змогуць атрымаць да яго доступ.",
@@ -489,10 +515,10 @@
"album_remove_user": "Выдаліць карыстальніка?",
"album_remove_user_confirmation": "Вы ўпэўнены, што хочаце выдаліць {user}?",
"album_search_not_found": "Па вашым запыце не знойдзена альбомаў",
- "album_share_no_users": "Здаецца, вы падзяліліся гэтым альбомам з усімі карыстальнікамі, або ў вас няма ніводнага карыстальніка, з якім можна падзяліцца.",
+ "album_share_no_users": "Здаецца, вы абагулілі гэты альбом з усімі карыстальнікамі, або ў вас няма ніводнага карыстальніка, з якім можна яго абагуліць.",
"album_summary": "Зводка альбома",
"album_updated": "Альбом абноўлены",
- "album_updated_setting_description": "Атрымліваць паведамленне на пошту, калі ў агульным альбоме з’яўляюцца новыя аб’екты",
+ "album_updated_setting_description": "Атрымліваць паведамленне на электронную пошту, калі ў абагуленым альбоме з’яўляюцца новыя аб’екты",
"album_upload_assets": "Запампаваць аб’екты з камп’ютара і дадаць у альбом",
"album_viewer_appbar_share_err_delete": "Не ўдалося выдаліць альбом",
"album_viewer_page_share_add_users": "Дадаць карыстальнікаў",
@@ -514,8 +540,8 @@
"allowed": "Дазволена",
"alt_text_qr_code": "Відарыс QR-кода",
"always_keep": "Заўсёды пакідаць",
- "always_keep_photos_hint": "«Вызваліць месца» захавае ўсе фота на гэтай прыладзе.",
- "always_keep_videos_hint": "«Вызваліць месца» захавае ўсе відэа на гэтай прыладзе.",
+ "always_keep_photos_hint": "«Вызваліць месца» пакіне ўсе фота на гэтай прыладзе.",
+ "always_keep_videos_hint": "«Вызваліць месца» пакіне ўсе відэа на гэтай прыладзе.",
"api_key": "Ключ API",
"api_key_description": "Гэта значэнне будзе паказана толькі адзін раз. Скапіруйце яго перад закрыццём акна.",
"api_key_empty": "Назва ключа API не павінна быць пустой",
@@ -604,7 +630,7 @@
"backup_controller_page_backup": "Рэзервовае капіраванне",
"backup_controller_page_backup_selected": "Выбрана: ",
"backup_controller_page_backup_sub": "Рэзервовыя копіі фота і відэа",
- "backup_controller_page_excluded": "Выключана: ",
+ "backup_controller_page_excluded": "Выключаны: ",
"backup_controller_page_none_selected": "Нічога не выбрана",
"backup_controller_page_remainder": "Засталося",
"backup_controller_page_remainder_sub": "Фота і відэа з выбару, якія засталіся для рэзервовага капіравання",
@@ -617,11 +643,12 @@
"backup_options": "Параметры рэзервовага капіравання",
"backup_settings_subtitle": "Кіраванне наладамі запампоўвання",
"backward": "Назад",
+ "battery_optimization_backup_reliability": "Адключэнне аптымізацыі батарэі можа павысіць надзейнасць фонавага рэзервовага капіравання",
"biometric_auth_enabled": "Біяметрычная аўтэнтыфікацыя ўключана",
"biometric_locked_out": "У вас няма доступу да біяметрычнай аўтэнтыфікацыі",
"biometric_no_options": "Біяметрычныя варыянты недаступныя",
"biometric_not_available": "Біяметрычная аўтэнтыфікацыя недаступная на гэтай прыладзе",
- "birthdate_set_description": "Дата нараджэння выкарыстоўваецца для вылічэння ўзросту гэтай асобы на момант фота.",
+ "birthdate_set_description": "Дата нараджэння выкарыстоўваецца для вылічэння ўзросту гэтага чалавека на момант фота.",
"blurred_background": "Размыты фон",
"browse_templates": "Праглядзець шаблоны",
"bugs_and_feature_requests": "Памылкі і запыты на функцыі",
@@ -632,13 +659,13 @@
"bulk_trash_duplicates_confirmation": "Сапраўды масава перамясціць у сметніцу {count, plural, one {# дубліраваны аб’ект} few {# дубліраваныя аб’екты} many {# дубліраваных аб’ектаў} other {# дубліраваных аб’ектаў}}? У кожнай групе будзе захаваны самы вялікі аб’ект, а ўсе іншыя дублікаты будуць перамешчаны ў сметніцу.",
"buy": "Купіць Immich",
"camera": "Камера",
- "camera_brand": "Брэнд камеры",
+ "camera_brand": "Марка камеры",
"camera_model": "Мадэль камеры",
"cancel": "Скасаваць",
"cancel_search": "Скасаваць пошук",
"canceled": "Скасавана",
"canceling": "Скасоўванне",
- "cannot_merge_people": "Немагчыма аб’яднаць асоб",
+ "cannot_merge_people": "Немагчыма аб’яднаць людзей",
"cannot_undo_this_action": "Гэта дзеянне немагчыма адрабіць!",
"cannot_update_the_description": "Немагчыма абнавіць апісанне",
"cast": "Кастынг",
@@ -667,7 +694,7 @@
"check_logs": "Праверыць журналы",
"checksum": "Кантрольная сума",
"choose": "Выбраць",
- "choose_matching_people_to_merge": "Выберыце сумяшчальныя асобы для аб’яднання",
+ "choose_matching_people_to_merge": "Выберыце людзей для аб’яднання",
"city": "Горад",
"cleanup_confirm_description": "Immich знайшоў {count} аб’ектаў (створаных да {date}), якія бяспечна захаваныя ў рэзерв на серверы. Выдаліць лакальныя копіі з гэтай прылады?",
"cleanup_confirm_prompt_title": "Выдаліць з гэтай прылады?",
@@ -675,15 +702,16 @@
"cleanup_deleting": "Перамяшчэнне ў сметніцу...",
"cleanup_found_assets": "Знойдзена {count} аб’ектаў з рэзервовай копіяй",
"cleanup_found_assets_with_size": "Знойдзена {count} аб’ектаў з рэзервовай копіяй ({size})",
- "cleanup_icloud_shared_albums_excluded": "Агульныя альбомы iCloud выключаныя са сканавання",
+ "cleanup_icloud_shared_albums_excluded": "Абагуленыя альбомы iCloud выключаны са сканіравання",
"cleanup_no_assets_found": "Не знойдзена аб’ектаў, якія адпавядаюць крытэрыям вышэй. «Вызваліць месца» можа выдаліць толькі аб’екты, якія ўжо ёсць у рэзервовай копіі на серверы",
"cleanup_preview_title": "Аб’екты для выдалення ({count})",
"cleanup_step3_description": "Сканіраваць аб’екты з рэзервовай копіяй, якія адпавядаюць вашым наладам даты і захавання.",
"cleanup_step4_summary": "{count} аб’ектаў (створаных да {date}) для выдалення з вашай лакальнай прылады. Фота застануцца даступнымі ў праграме Immich.",
- "cleanup_trash_hint": "Каб поўнасцю вызваліць месца ў сховішчы, адкрыйце сістэмную галерэю і ачысціце сметніцу",
+ "cleanup_trash_hint": "Каб цалкам вызваліць прастору сховішча, адкрыйце сістэмную галерэю і ачысціце сметніцу",
"clear": "Ачысціць",
"clear_all": "Ачысціць усё",
- "clear_all_recent_searches": "Ачысціць усе апошнія пошукі",
+ "clear_all_recent_searches": "Ачысціць усе нядаўнія пошукавыя запыты",
+ "clear_failed_count": "Не ўдалося ачысціць ({count})",
"clear_file_cache": "Ачысціць кэш файлаў",
"clear_message": "Ачысціць паведамленне",
"clear_value": "Ачысціць значэнне",
@@ -700,14 +728,14 @@
"collapse_all": "Згарнуць усё",
"color": "Колер",
"command": "Каманда",
- "command_palette_prompt": "Хутка знайдзіце старонкі, дзеянні або каманды",
+ "command_palette_prompt": "Хуткі пошук старонак, дзеянняў і каманд",
"command_palette_to_close": "каб закрыць",
"command_palette_to_navigate": "каб увайсці",
"command_palette_to_select": "каб выбраць",
"command_palette_to_show_all": "каб паказаць усё",
"comment_deleted": "Каментарый выдалены",
"comment_options": "Дзеянні з каментарыем",
- "comments_and_likes": "Каментарыі і лайкі",
+ "comments_and_likes": "Каментарыі і пазнакі «мне падабаецца»",
"comments_are_disabled": "Каментарыі адключаны",
"common_create_new_album": "Стварыць новы альбом",
"completed": "Выканана",
@@ -715,8 +743,8 @@
"confirm": "Пацвердзіць",
"confirm_admin_password": "Пацвердзіце пароль адміністратара",
"confirm_delete_face": "Вы ўпэўнены, што хочаце выдаліць твар {name} з аб’екта?",
- "confirm_delete_shared_link": "Вы ўпэўнены, што хочаце выдаліць гэтую агульную спасылку?",
- "confirm_keep_this_delete_others": "Усе іншыя аб’екты ў наборы будуць выдалены, акрамя гэтага. Вы ўпэўнены, што хочаце працягнуць?",
+ "confirm_delete_shared_link": "Вы ўпэўнены, што хочаце выдаліць гэту абагуленую спасылку?",
+ "confirm_keep_this_delete_others": "Усе іншыя аб’екты ў стосе, акрамя гэтага, будуць выдалены. Вы ўпэўнены, што хочаце працягнуць?",
"confirm_new_pin_code": "Пацвердзіце новы PIN-код",
"confirm_password": "Пацвердзіце пароль",
"confirm_tag_face": "Хочаце пазначыць гэты твар як {name}?",
@@ -741,32 +769,31 @@
"copy_password": "Капіраваць пароль",
"copy_to_clipboard": "Капіраваць у буфер абмену",
"country": "Краіна",
- "cover": "Вокладка",
"covers": "Вокладкі",
"create": "Стварыць",
"create_album": "Стварыць альбом",
"create_album_page_untitled": "Без назвы",
"create_api_key": "Стварыць ключ API",
- "create_first_workflow": "Стварыць першы працоўны працэс",
+ "create_first_workflow": "Стварыце першы сцэнарый",
"create_library": "Стварыць бібліятэку",
"create_link": "Стварыць спасылку",
"create_link_to_share": "Стварыць спасылку для абагульвання",
"create_link_to_share_description": "Дазволіць усім, хто мае спасылку, бачыць выбраныя фота",
"create_new": "СТВАРЫЦЬ",
- "create_new_person": "Стварыць новую асобу",
- "create_new_person_hint": "Прызначыць выбраныя аб’екты новай асобе",
- "create_new_user": "Стварыць новага карыстальніка",
- "create_person": "Стварыць асобу",
- "create_person_subtitle": "Дадайце імя да выбранага твару, каб стварыць і пазначыць новую асобу",
+ "create_new_person": "Стварыць новага чалавека",
+ "create_new_person_hint": "Прызначыць выбраныя аб’екты новаму чалавеку",
+ "create_new_user": "Стварэнне новага карыстальніка",
+ "create_person": "Стварыць чалавека",
+ "create_person_subtitle": "Дадайце імя да выбранага твару, каб стварыць і пазначыць новага чалавека",
"create_shared_album_page_share_add_assets": "ДАДАЦЬ АБ’ЕКТЫ",
"create_shared_album_page_share_select_photos": "Выбраць фота",
- "create_shared_link": "Стварыць агульную спасылку",
+ "create_shared_link": "Стварыць абагуленую спасылку",
"create_tag": "Стварыць тэг",
- "create_tag_description": "Стварыць новы тэг. Для ўкладзеных тэгаў увядзіце поўны шлях тэга з касой рысай.",
+ "create_tag_description": "Стварэнне новага тэга. Для ўкладзеных тэгаў увядзіце поўны шлях тэга з касой рысай.",
"create_user": "Стварыць карыстальніка",
- "create_workflow": "Стварыць працоўны працэс",
+ "create_workflow": "Стварыць сцэнарый",
"created": "Створаны",
- "created_at": "Створана",
+ "created_at": "Створаны",
"creating_linked_albums": "Стварэнне звязаных альбомаў…",
"crop": "Абрэзка",
"crop_aspect_ratio_free": "Свабодная",
@@ -778,7 +805,6 @@
"custom_date": "Карыстальніцкая дата",
"custom_locale": "Карыстальніцкая лакаль",
"custom_locale_description": "Фармаціраванне дат, часу і лікаў паводле выбранай мовы і рэгіёна",
- "custom_url": "Карыстальніцкі URL-адрас",
"cutoff_date_description": "Пакінуць фота за апошнія…",
"cutoff_day": "{count, plural, one {дзень} few {дні} many {дзён} other {дня}}",
"cutoff_year": "{count, plural, one {год} few {гады} many {гадоў} other {года}}",
@@ -793,7 +819,9 @@
"date_range": "Дыяпазон дат",
"day": "Дзень",
"days": "Дні",
- "deduplicate_all": "Дэдупліраваць усё",
+ "deduplicate_all": "Выдаліць усе дублікаты",
+ "default_quality_subtitle": "Якасць, якая будзе выкарыстоўваецца пры націсканні на кнопку «Абагуліць». Утрымлівайце кнопку «Падзяліцца», каб выбіраць якасць кожны раз.",
+ "default_share_quality": "Прадвызначаная якасць пры абагульванні",
"delete": "Выдаліць",
"delete_action_confirmation_message": "Вы ўпэўнены, што хочаце выдаліць гэты аб’ект? Гэта дзеянне перамесціць аб’ект у сметніцу сервера і запытае, ці хочаце вы выдаліць яго лакальна",
"delete_action_prompt": "{count} выдалена",
@@ -814,20 +842,20 @@
"delete_others": "Выдаліць іншыя",
"delete_permanently": "Выдаліць назаўжды",
"delete_permanently_action_prompt": "{count} выдалена незваротна",
- "delete_shared_link": "Выдаліць агульную спасылку",
- "delete_shared_link_dialog_title": "Выдаліць агульную спасылку",
+ "delete_shared_link": "Выдаліць абагуленую спасылку",
+ "delete_shared_link_dialog_title": "Выдаліць абагуленую спасылку",
"delete_tag": "Выдаліць тэг",
"delete_tag_confirmation_prompt": "Вы ўпэўнены, што хочаце выдаліць тэг {tagName}?",
"delete_user": "Выдаліць карыстальніка",
- "deleted_shared_link": "Агульная спасылка выдалена",
+ "deleted_shared_link": "Абагуленая спасылка выдалена",
"description": "Апісанне",
"deselect_all": "Скасаваць выбар усіх",
"details": "Падрабязнасці",
"direction": "Кірунак",
"disable": "Адключыць",
- "disabled": "Адключана",
+ "disabled": "Адключаны",
"discord": "Discord",
- "discover": "Адкрыць",
+ "discover": "Выявіць",
"discovered_devices": "Знойдзеныя прылады",
"dismiss_all_errors": "Адхіліць усе памылкі",
"display_options": "Параметры адлюстравання",
@@ -841,7 +869,7 @@
"download_canceled": "Спампоўванне скасавана",
"download_complete": "Спампоўванне завершана",
"download_enqueue": "Спампоўванне дададзена ў чаргу",
- "download_failed": "Спампоўванне не выканалася",
+ "download_failed": "Не ўдалося спампаваць",
"download_finished": "Спампоўванне завершана",
"download_include_embedded_motion_videos": "Убудаваныя відэа",
"download_include_embedded_motion_videos_description": "Уключаць відэа, убудаваныя ў рухомыя фота, як асобны файл",
@@ -857,6 +885,7 @@
"downloading_media": "Спампоўванне медыя",
"drag_to_reorder": "Перацягніце, каб змяніць парадак",
"drop_files_to_upload": "Перацягніце файлы куды заўгодна для запампоўвання",
+ "duplicate_workflow": "Дубляваць сцэнарый",
"duplicates": "Дублікаты",
"duplicates_description": "Вырашыце кожную групу, пазначыўшы, якія з’яўляюцца дублікатамі, калі такія ёсць.",
"duration": "Працягласць",
@@ -881,7 +910,7 @@
"edit_tag": "Рэдагаваць тэг",
"edit_title": "Рэдагаваць загаловак",
"edit_user": "Рэдагаваць карыстальніка",
- "edit_workflow": "Рэдагаваць працоўны працэс",
+ "edit_workflow": "Рэдагаваць сцэнарый",
"editor": "Рэдактар",
"editor_discard_edits_confirm": "Адхіліць праўкі",
"editor_discard_edits_prompt": "У вас ёсць незахаваныя праўкі. Вы ўпэўнены, што хочаце іх адхіліць?",
@@ -895,7 +924,7 @@
"editor_orientation": "Арыентацыя",
"editor_reset_all_changes": "Скінуць змяненні",
"editor_rotate_left": "Павярнуць на 90° супраць гадзіннікавай стрэлкі",
- "editor_rotate_right": "Павярнуць на 90° па гадзіннікавай стрэлцы",
+ "editor_rotate_right": "Павярнуць на 90° па ходу гадзіннікавай стрэлкі",
"email": "Электронная пошта",
"email_notifications": "Апавяшчэнні па электроннай пошце",
"empty_folder": "Гэтая папка пустая",
@@ -917,7 +946,7 @@
"error_loading_partners": "Памылка пры загрузцы партнёраў: {error}",
"error_retrieving_asset_information": "Памылка пры атрыманні інфармацыі пра аб’ект",
"error_saving_image": "Памылка: {error}",
- "error_tag_face_bounding_box": "Памылка пазначэння твару — немагчыма атрымаць каардынаты абмежавальнай рамкі",
+ "error_tag_face_bounding_box": "Памылка пазначэння твару — немагчыма атрымаць каардынаты рамкі",
"error_title": "Памылка — нешта пайшло не так",
"error_while_navigating": "Памылка пры пераходзе да аб’екта",
"errors": {
@@ -933,15 +962,15 @@
"cant_search_places": "Немагчыма знайсці месцы",
"error_adding_assets_to_album": "Памылка пры дадаванні аб’ектаў у альбом",
"error_adding_users_to_album": "Памылка пры дадаванні карыстальнікаў у альбом",
- "error_deleting_shared_user": "Памылка пры выдаленні карыстальніка з агульнага доступу",
+ "error_deleting_shared_user": "Памылка пры выдаленні карыстальніка з агульным доступам",
"error_downloading": "Памылка пры спампоўванні {filename}",
"error_hiding_buy_button": "Памылка пры схаванні кнопкі куплі",
- "error_removing_assets_from_album": "Памылка пры выдаленні аб’ектаў з альбома, праверце кансоль для падрабязнасцей",
+ "error_removing_assets_from_album": "Памылка пры выдаленні аб’ектаў з альбома, падрабязнасці ў кансолі",
"error_selecting_all_assets": "Памылка пры выбары ўсіх аб’ектаў",
"exclusion_pattern_already_exists": "Гэты шаблон выключэння ўжо існуе.",
"failed_to_create_album": "Не ўдалося стварыць альбом",
- "failed_to_create_shared_link": "Не ўдалося стварыць агульную спасылку",
- "failed_to_edit_shared_link": "Не ўдалося адрэдагаваць агульную спасылку",
+ "failed_to_create_shared_link": "Не ўдалося стварыць абагуленую спасылку",
+ "failed_to_edit_shared_link": "Не ўдалося адрэдагаваць абагуленую спасылку",
"failed_to_get_people": "Не ўдалося атрымаць людзей",
"failed_to_keep_this_delete_others": "Не ўдалося пакінуць гэты аб’ект і выдаліць астатнія",
"failed_to_load_asset": "Не ўдалося загрузіць аб’ект",
@@ -950,8 +979,9 @@
"failed_to_load_people": "Не ўдалося загрузіць людзей",
"failed_to_remove_product_key": "Не ўдалося выдаліць ключ прадукту",
"failed_to_reset_pin_code": "Не ўдалося скінуць PIN-код",
- "failed_to_stack_assets": "Не ўдалося аб’яднаць аб’екты ў набор",
- "failed_to_unstack_assets": "Не ўдалося раздзяліць набор аб’ектаў",
+ "failed_to_stack_assets": "Не ўдалося стварыць з аб’ектаў стос",
+ "failed_to_tag_assets": "Не ўдалося дадаць тэг да аб’ектаў",
+ "failed_to_unstack_assets": "Не ўдалося раздзяліць стос аб’ектаў",
"failed_to_update_notification_status": "Не ўдалося абнавіць статус апавяшчэння",
"incorrect_email_or_password": "Няправільны адрас электроннай пошты або пароль",
"library_folder_already_exists": "Гэты шлях імпарту ўжо існуе.",
@@ -961,7 +991,7 @@
"quota_higher_than_disk_size": "Вы задаліалі квоту, большую за памер дыска",
"something_went_wrong": "Нешта пайшло не так",
"unable_to_add_album_users": "Немагчыма дадаць карыстальнікаў у альбом",
- "unable_to_add_assets_to_shared_link": "Немагчыма дадаць аб’екты ў агульную спасылку",
+ "unable_to_add_assets_to_shared_link": "Немагчыма дадаць аб’екты ў абагуленую спасылку",
"unable_to_add_comment": "Немагчыма дадаць каментарый",
"unable_to_add_exclusion_pattern": "Немагчыма дадаць шаблон выключэння",
"unable_to_add_partners": "Немагчыма дадаць партнёраў",
@@ -974,11 +1004,11 @@
"unable_to_change_favorite": "Немагчыма змяніць абранае для аб’екта",
"unable_to_change_location": "Немагчыма змяніць месцазнаходжанне",
"unable_to_change_password": "Немагчыма змяніць пароль",
- "unable_to_change_visibility": "Немагчыма змяніць бачнасць для {count, plural, one {# асобы} few {# асоб} many {# асоб} other {# асобы}}",
+ "unable_to_change_visibility": "Немагчыма змяніць бачнасць для {count, plural, one {# чалавека} few {# чалавек} many {# чалавек} other {# чалавека}}",
"unable_to_complete_oauth_login": "Немагчыма завяршыць уваход праз OAuth",
"unable_to_connect": "Немагчыма падключыцца",
"unable_to_copy_to_clipboard": "Немагчыма скапіраваць у буфер абмену, пераканайцеся, што старонка адкрыта праз https",
- "unable_to_create": "Немагчыма стварыць працоўны працэс",
+ "unable_to_create": "Немагчыма стварыць сцэнарый",
"unable_to_create_admin_account": "Немагчыма стварыць уліковы запіс адміністратара",
"unable_to_create_api_key": "Немагчыма стварыць новы ключ API",
"unable_to_create_library": "Немагчыма стварыць бібліятэку",
@@ -987,25 +1017,25 @@
"unable_to_delete_asset": "Немагчыма выдаліць аб’ект",
"unable_to_delete_assets": "Памылка пры выдаленні аб’ектаў",
"unable_to_delete_exclusion_pattern": "Немагчыма выдаліць шаблон выключэння",
- "unable_to_delete_shared_link": "Немагчыма выдаліць агульную спасылку",
+ "unable_to_delete_shared_link": "Немагчыма выдаліць абагуленую спасылку",
"unable_to_delete_user": "Немагчыма выдаліць карыстальніка",
- "unable_to_delete_workflow": "Немагчыма выдаліць працоўны працэс",
+ "unable_to_delete_workflow": "Немагчыма выдаліць сцэнарый",
"unable_to_download_files": "Немагчыма спампаваць файлы",
"unable_to_edit_exclusion_pattern": "Немагчыма адрэдагаваць шаблон выключэння",
"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_get_shared_link": "Не ўдалося атрымаць абагуленую спасылку",
+ "unable_to_hide_person": "Немагчыма схаваць чалавека",
"unable_to_link_motion_video": "Немагчыма звязаць рухомае відэа",
"unable_to_link_oauth_account": "Немагчыма звязаць уліковы запіс OAuth",
"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_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",
@@ -1025,9 +1055,9 @@
"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_scan_libraries": "Немагчыма прасканіраваць бібліятэкі",
+ "unable_to_scan_library": "Немагчыма прасканіраваць бібліятэку",
+ "unable_to_set_feature_photo": "Немагчыма задаць галоўнае фота",
"unable_to_set_profile_picture": "Немагчыма задаць аватар профілю",
"unable_to_set_rating": "Немагчыма задаць рэйтынг",
"unable_to_submit_job": "Немагчыма адправіць заданне",
@@ -1035,13 +1065,13 @@
"unable_to_unlink_account": "Немагчыма адвязаць уліковы запіс",
"unable_to_unlink_motion_video": "Немагчыма адвязаць рухомае відэа",
"unable_to_update_album_cover": "Немагчыма абнавіць вокладку альбома",
- "unable_to_update_album_info": "Немагчыма абнавіць інфармацыю альбома",
+ "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_workflow": "Немагчыма абнавіць працоўны працэс",
+ "unable_to_update_workflow": "Немагчыма абнавіць сцэнарый",
"unable_to_upload_file": "Немагчыма запампаваць файл"
},
"errors_text": "Памылкі",
@@ -1057,27 +1087,30 @@
"expired": "Тэрмін мінуў",
"expires_date": "Тэрмін мінае {date}",
"explore": "Агляд",
- "explorer": "Аглядальнік",
+ "explorer": "Агляд папак",
"export": "Экспарт",
"export_as_json": "Экспартаваць як JSON",
"export_database": "Экспартаваць базу даных",
"export_database_description": "Экспартаваць базу даных SQLite",
+ "exposure_time": "Вытрымка",
"extension": "Пашырэнне",
"external": "Знешні",
"external_libraries": "Знешнія бібліятэкі",
"external_network": "Знешняя сетка",
"external_network_sheet_info": "Калі прылада не падключана да пераважнай сеткі Wi-Fi, праграма падключыцца да сервера праз першы з пералічаных ніжэй URL-адрасоў, які будзе даступны, пачынаючы зверху ўніз",
+ "f_number": "Дыяфрагма",
"face_unassigned": "Не прызначаны",
"failed": "Не выканалася",
"failed_count": "Не выканалася: {count}",
"failed_to_authenticate": "Не ўдалося прайсці аўтэнтыфікацыю",
+ "failed_to_delete_file": "Не ўдалося выдаліць файл",
"failed_to_load_assets": "Не ўдалося загрузіць аб’екты",
"failed_to_load_folder": "Не ўдалося загрузіць папку",
"favorite": "У абраным",
"favorite_action_prompt": "{count} дададзена ў абранае",
"favorite_or_unfavorite_photo": "Дадаць або выдаліць фота з абранага",
"favorites": "Абраныя",
- "feature_photo_updated": "Асноўнае фота абноўлена",
+ "feature_photo_updated": "Галоўнае фота абноўлена",
"features": "Магчымасці",
"features_setting_description": "Кіраванне магчымасцямі праграмы",
"file_name_or_extension": "Назва файла або пашырэнне",
@@ -1086,12 +1119,13 @@
"filename": "Назва файла",
"filetype": "Тып файла",
"filter": "Фільтр",
- "filter_people": "Фільтр людзей",
- "filter_places": "Фільтр месцаў",
- "filter_tags": "Фільтр тэгаў",
+ "filter_people": "Фільтр па людзях",
+ "filter_places": "Фільтр па месцах",
+ "filter_tags": "Фільтр па тэгах",
"filters": "Фільтры",
"first": "Першы",
"fix_incorrect_match": "Выправіць няправільнае супастаўленне",
+ "focal_length": "Фокусная адлегласць",
"folder": "Папка",
"folder_not_found": "Папка не знойдзена",
"folders": "Папкі",
@@ -1099,16 +1133,16 @@
"forgot_pin_code_question": "Забылі PIN-код?",
"forward": "Наперад",
"free_up_space": "Вызваліць месца",
- "free_up_space_description": "Перанясіце фота і відэа з рэзервовай копіяй у сметніцу прылады, каб вызваліць месца. Копіі на серверы застануцца ў бяспецы.",
+ "free_up_space_description": "Перанясіце фота і відэа, якія ёсць у рэзервовай копіі, у сметніцу прылады, каб вызваліць месца. Копіі на серверы застануцца ў бяспецы.",
"free_up_space_settings_subtitle": "Вызваліць сховішча прылады",
"full_path": "Поўны шлях: {path}",
"full_path_or_folder": "Поўны шлях або папка",
"gcast_enabled": "Google Cast",
- "gcast_enabled_description": "Гэтая функцыя загружае знешнія рэсурсы ад Google, каб працаваць.",
+ "gcast_enabled_description": "Гэтая функцыя загружае для сваёй працы знешнія рэсурсы ад Google.",
"general": "Агульныя",
"geolocation_instruction_location": "Націсніце на аб’ект з GPS-каардынатамі, каб скарыстаць яго месцазнаходжанне, або выберыце месца наўпрост з карты",
"get_help": "Атрымаць дапамогу",
- "get_people_error": "Памылка атрымання людзей",
+ "get_people_error": "Памылка пры атрыманні людзей",
"get_wifiname_error": "Не ўдалося атрымаць назву Wi-Fi. Пераканайцеся, што вы далі неабходныя дазволы і падключаны да сеткі Wi-Fi",
"getting_started": "Пачатак працы",
"go_back": "Назад",
@@ -1147,7 +1181,7 @@
"host": "Хост",
"hour": "Гадзіна",
"hours": "Гадзіны",
- "id": "ID",
+ "id": "Ідэнтыфікатар",
"idle": "Прастой",
"image": "Відарыс",
"image_alt_text_date": "{isVideo, select, true {Відэа} other {Фота}} зробленае {date}",
@@ -1169,11 +1203,12 @@
"in_year": "У {year}",
"in_year_selector": "У",
"include_archived": "Уключыць архіваваныя",
- "include_shared_albums": "Уключыць агульныя альбомы",
- "include_shared_partner_assets": "Уключыць агульныя аб’екты партнёра",
+ "include_shared_albums": "Уключыць абагуленыя альбомы",
+ "include_shared_partner_assets": "Уключыць абагуленыя аб’екты партнёра",
"individual_share": "Асобнае абагульванне",
"individual_shares": "Асобныя абагульванні",
"info": "Інфармацыя",
+ "integrity_checks": "Праверкі цэласнасці",
"interval": {
"day_at_onepm": "Кожны дзень а 13-й гадзіне",
"hours": "{hours, plural, one {Кожную гадзіну} few {Кожныя {hours, number} гадзіны} many {Кожныя {hours, number} гадзін} other {Кожныя {hours, number} гадзін}}",
@@ -1189,15 +1224,15 @@
"jobs": "Заданні",
"keep": "Пакінуць",
"keep_albums": "Пакінуць альбомы",
- "keep_albums_count": "Захоўваецца {count} {count, plural, one {альбом} few {альбомы} many {альбомаў} other {альбомаў}}",
+ "keep_albums_count": "Пакідаем {count} {count, plural, one {альбом} few {альбомы} many {альбомаў} other {альбома}}",
"keep_all": "Пакінуць усе",
- "keep_description": "Выберыце, што застаецца на вашай прыладзе пры вызваленні месца.",
- "keep_favorites": "Пакінуць абранае",
+ "keep_description": "Выберыце, што застанецца на прыладзе пры вызваленні месца.",
+ "keep_favorites": "Пакінуць абраныя",
"keep_on_device": "Пакінуць на прыладзе",
"keep_on_device_hint": "Выберыце элементы, якія трэба пакінуць на гэтай прыладзе",
- "keep_this_delete_others": "Пакінуць гэта, выдаліць іншыя",
- "keeping": "Захоўваецца: {items}",
- "kept_this_deleted_others": "Пакінуты гэты аб’ект і выдалена {count, plural, one {# аб’ект} few {# аб’екты} many {# аб’ектаў} other {# аб’ектаў}}",
+ "keep_this_delete_others": "Пакінуць гэты, выдаліць іншыя",
+ "keeping": "Пакідаем: {items}",
+ "kept_this_deleted_others": "Пакінуты гэты аб’ект і {count, plural, one {выдалены # аб’ект} few {выдалены # аб’екты} many {выдалена # аб’ектаў} other {выдалена # аб’екта}}",
"keyboard_shortcuts": "Спалучэнні клавіш",
"language": "Мова",
"language_no_results_subtitle": "Паспрабуйце змяніць пошукавы запыт",
@@ -1226,21 +1261,22 @@
"licenses": "Ліцэнзіі",
"light": "Светлая",
"light_theme": "Пераключыцца на светлую тэму",
- "like": "Падабаецца",
- "like_deleted": "Адзнака «падабаецца» выдалена",
+ "like": "Мне падабаецца",
+ "like_deleted": "Пазнака «мне падабаецца» выдалена",
"link": "Спасылка",
"link_motion_video": "Звязаць рухомае відэа",
- "link_to_docs": "Для больш падрабязнай інфармацыі звярніцеся да дакументацыі.",
+ "link_to_docs": "Больш падрабязная інфармацыя ў дакументацыі.",
"link_to_oauth": "Прывязаць да OAuth",
"linked_oauth_account": "Прывязаны ўліковы запіс OAuth",
"list": "Спіс",
"live": "Жывое",
+ "load_more": "Загрузіць яшчэ",
"loading": "Загрузка",
"loading_search_results_failed": "Не атрымалася загрузіць вынікі пошуку",
"local": "Лакальны",
"local_asset_cast_failed": "Немагчыма транслiраваць аб’ект, які не запампаваны на сервер",
"local_assets": "Лакальныя аб’екты",
- "local_id": "Лакальны ID",
+ "local_id": "Лакальны ідэнтыфікатар",
"local_media_summary": "Зводка лакальных медыя",
"local_network": "Лакальная сетка",
"local_network_sheet_info": "Праграма будзе падключацца да сервера праз гэты URL пры выкарыстанні зададзенай сеткі Wi-Fi",
@@ -1249,9 +1285,9 @@
"location_permission_content": "Каб карыстацца функцыяй аўтаматычнага пераключэння, Immich патрэбны дазвол на дакладнае месцазнаходжанне, каб чытаць назву бягучай сеткі Wi-Fi",
"location_picker_choose_on_map": "Выбраць на карце",
"location_picker_latitude_error": "Увядзіце сапраўдную шырату",
- "location_picker_latitude_hint": "Увядзіце сюды сваю шырату",
+ "location_picker_latitude_hint": "Увядзіце шырату",
"location_picker_longitude_error": "Увядзіце сапраўдную даўгату",
- "location_picker_longitude_hint": "Увядзіце сюды сваю даўгату",
+ "location_picker_longitude_hint": "Увядзіце даўгату",
"lock": "Заблакіраваць",
"locked_folder": "Заблакіраваная папка",
"log_detail_title": "Падрабязнасці журнала",
@@ -1260,7 +1296,7 @@
"logged_in_as": "Вы ўвайшлі як {user}",
"logged_out_all_devices": "Выхад з усіх прылад выкананы",
"logged_out_device": "Выхад з прылады выкананы",
- "login": "Уваход",
+ "login": "Увайсці",
"login_disabled": "Уваход быў адключаны",
"login_form_api_exception": "Памылка API. Праверце URL-flhfc сервера і паспрабуйце яшчэ раз.",
"login_form_email_hint": "youremail@email.com",
@@ -1275,9 +1311,9 @@
"login_form_failed_login": "Памылка ўваходу, праверце URL-адрас сервера, электронную пошту і пароль",
"login_form_handshake_exception": "Адбылася памылка ўзаемадзеяння з серверам. Уключыце падтрымку самападпісаных сертыфікатаў у наладах, калі вы карыстаецеся самападпісаным сертыфікатам.",
"login_form_password_hint": "пароль",
- "login_form_server_empty": "Увядзіце URL-адрас сервера.",
- "login_form_server_error": "Не ўдалося падключыцца да сервера.",
- "login_has_been_disabled": "Уваход быў адключаны.",
+ "login_form_server_empty": "Увядзіце URL-адрас сервера",
+ "login_form_server_error": "Не ўдалося падключыцца да сервера",
+ "login_has_been_disabled": "Уваход быў адключаны",
"login_password_changed_error": "Адбылася памылка пры абнаўленні пароля",
"login_password_changed_success": "Пароль паспяхова абноўлены",
"logout_all_device_confirmation": "Вы ўпэўнены, што хочаце выйсці з усіх прылад?",
@@ -1302,9 +1338,9 @@
"maintenance_restore_library_folder_pass": "даступная для чытання і запісу",
"maintenance_restore_library_folder_read_fail": "недаступная для чытання",
"maintenance_restore_library_folder_write_fail": "недаступная для запісу",
- "maintenance_restore_library_hint_missing_files": "Магчыма, у вас адсутнічаюць важныя файлы",
+ "maintenance_restore_library_hint_missing_files": "Магчыма, адсутнічаюць важныя файлы",
"maintenance_restore_library_hint_regenerate_later": "Вы можаце перастварыць іх пазней у наладах",
- "maintenance_restore_library_hint_storage_template_missing_files": "Карыстаецеся шаблонам сховішча? Магчыма, у вас адсутнічаюць файлы",
+ "maintenance_restore_library_hint_storage_template_missing_files": "Карыстаецеся шаблонам сховішча? Магчыма, адсутнічаюць файлы",
"maintenance_restore_library_loading": "Загрузка праверак цэласнасці і эўрыстык…",
"maintenance_task_backup": "Стварэнне рэзервовай копіі існуючай базы даных…",
"maintenance_task_migrations": "Выкананне міграцыі базы даных…",
@@ -1328,6 +1364,7 @@
"map_location_picker_page_use_location": "Выкарыстаць гэта месцазнаходжанне",
"map_location_service_disabled_content": "Каб паказваць аб’екты з вашага бягучага месцазнаходжання, трэба ўключыць службу геалакацыі. Жадаеце ўключыць яе зараз?",
"map_location_service_disabled_title": "Служба геалакацыі адключана",
+ "map_marker_for_image": "Маркер на карце для фота, зробленага ў {city}, {country}",
"map_marker_with_image": "Маркер на карце з відарысам",
"map_no_location_permission_content": "Каб паказваць аб’екты з вашага бягучага месцазнаходжання, патрэбен дазвол на геалакацыю. Дазволіць зараз?",
"map_no_location_permission_title": "Адмоўлена ў дазволе на геалакацыю",
@@ -1347,12 +1384,12 @@
"matching_assets": "Аб’екты, што супадаюць",
"media_chrome": {
"auto": "Аўта",
- "captions": "Субтытры",
+ "captions": "Субцітры",
"captions_off": "Выкл",
- "closed_captions": "схаваныя субтытры",
+ "closed_captions": "закрытыя субцітры",
"decode_error": "Памылка дэкадавання",
- "disable_captions": "Адключыць субтытры",
- "enable_captions": "Уключыць субтытры",
+ "disable_captions": "Адключыць субцітры",
+ "enable_captions": "Уключыць субцітры",
"enter_fullscreen_mode": "Уключыць поўнаэкранны рэжым",
"exit_fullscreen_mode": "Выйсці з поўнаэкраннага рэжыму",
"loop": "Цыкл",
@@ -1390,19 +1427,21 @@
"merge": "Аб’яднаць",
"merge_people": "Аб’яднаць людзей",
"merge_people_limit": "Можна аб’яднаць не больш за 5 твараў адначасова",
- "merge_people_prompt": "Жадаеце аб’яднаць гэтых людзей? Гэтае дзеянне незваротнае.",
+ "merge_people_prompt": "Хочаце аб’яднаць гэтых людзей? Гэтае дзеянне незваротнае.",
"merge_people_successfully": "Людзі паспяхова аб’яднаныя",
- "merged_people_count": "Аб’яднана {count, plural, one {# чалавек} few {# чалавекі} many {# чалавек} other {# чалавек}}",
+ "merged_people_count": "{count, plural, one {Аб’яднаны # чалавек} few {Аб’яднаны # чалавекі} many {Аб’яднана # чалавек} other {Аб’яднана # чалавека}}",
+ "minFaces": "Мінімальная колькасць твараў",
+ "minFaces_description": "Мінімальная колькасць распазнаных твараў, неабходная для адлюстравання чалавека",
"minimize": "Згарнуць",
"minute": "Хвіліна",
"minutes": "Хвіліны",
"missing": "Адсутныя",
"mobile_app": "Мабільная праграма",
- "mobile_app_download_onboarding_note": "Спампуйце суправаджальную мабільную праграму з дапамогай наступных варыянтаў",
+ "mobile_app_download_onboarding_note": "Спампуйце мабільную праграму з дапамогай наступных варыянтаў",
"model": "Мадэль",
"modify_date": "Дата змянення",
"month": "Месяц",
- "more": "Болей",
+ "more": "Больш",
"motion": "Рух",
"move": "Перамясціць",
"move_off_locked_folder": "Перамясціць з заблакіраванай папкі",
@@ -1412,7 +1451,7 @@
"move_to_locked_folder": "Перамясціць у заблакіраваную папку",
"move_to_locked_folder_confirmation": "Гэтыя фота і відэа будуць выдалены з усіх альбомаў і застануцца даступнымі для прагляду толькі з заблакіраванай папкі",
"moved_to_trash": "Перамешчана ў сметніцу",
- "mute_memories": "Адключыць успаміны",
+ "mute_memories": "Адключыць гук успамінаў",
"my_albums": "Мае альбомы",
"my_immich_description": "Скапіраваць бягучую старонку як спасылку My Immich",
"my_immich_title": "Спасылка My Immich",
@@ -1430,6 +1469,7 @@
"never": "Ніколі",
"new_album": "Новы альбом",
"new_api_key": "Новы ключ API",
+ "new_feature": "Новая функцыя",
"new_password": "Новы пароль",
"new_person": "Новы чалавек",
"new_pin_code": "Новы PIN-код",
@@ -1473,9 +1513,14 @@
"not_available": "Н/Д",
"not_in_any_album": "Ні ў якім альбоме",
"not_selected": "Не выбрана",
- "notes": "Нататкі",
+ "not_set": "Не зададзена",
+ "notes": "Заўвагі",
"nothing_here_yet": "Тут пакуль нічога няма",
- "notification_permission_dialog_content": "Каб уключыць апавяшчэнні, перайдзіце ў Налады і дазвольце.",
+ "notification_backup_reliability": "Уключыце апавяшчэнні, каб павысіць надзейнасць рэзервовага капіявання ў фонавым рэжыме",
+ "notification_enabled_list_tile_content": "Immich выкарыстоўвае апавяшчэнні для рэзервовага капіявання ў фонавым рэжыме. Кіруйце імі ў наладах прылады.",
+ "notification_enabled_list_tile_open_button": "Адкрыць налады",
+ "notification_enabled_list_tile_title": "Апавяшчэнні ўключаны",
+ "notification_permission_dialog_content": "Каб уключыць апавяшчэнні, перайдзіце ў Налады і дайце дазвол.",
"notification_permission_list_tile_content": "Дайце дазвол, каб уключыць апавяшчэнні.",
"notification_permission_list_tile_enable_button": "Уключыць апавяшчэнні",
"notification_permission_list_tile_title": "Дазвол на апавяшчэнні",
@@ -1486,6 +1531,8 @@
"obtainium_configurator": "Канфігуратар Obtainium",
"obtainium_configurator_instructions": "Выкарыстоўвайце Obtainium, каб усталёўваць і абнаўляць Android-праграму непасрэдна з рэлізаў Immich на GitHub. Стварыце ключ API і абярыце варыянт, каб стварыць спасылку канфігурацыі Obtainium",
"ocr": "OCR",
+ "ocr_body": "Цяпер Immich чытае тэкст на фота, таму вы можаце шукаць іх па тым, што там напісана.",
+ "ocr_title": "Пошук тэксту на фота",
"official_immich_resources": "Афіцыйныя рэсурсы Immich",
"offline": "Па-за сеткай",
"offset": "Зрух",
@@ -1495,8 +1542,8 @@
"onboarding": "Знаёмства",
"onboarding_locale_description": "Выберыце прыярытэтную мову. Вы можаце змяніць яе пазней у наладах.",
"onboarding_privacy_description": "Наступныя (неабавязковыя) функцыі залежаць ад знешніх сэрвісаў і могуць быць адключаны ў любы час у наладах.",
- "onboarding_server_welcome_description": "Давайце наладзім ваш асобнік з некаторымі агульнымі наладамі.",
- "onboarding_theme_description": "Абярыце колеравую тэму для вашага асобніка. Вы можаце змяніць яе пазней у наладах.",
+ "onboarding_server_welcome_description": "Давайце наладзім некаторыя агульныя параметры сервера.",
+ "onboarding_theme_description": "Выберыце колеравую тэму. Яе можна змяніць пазней у наладах.",
"onboarding_user_welcome_description": "Давайце пачнём!",
"onboarding_welcome_user": "Вітаем, {user}",
"online": "У сетцы",
@@ -1504,6 +1551,8 @@
"open": "Адкрыць",
"open_calendar": "Адкрыць каляндар",
"open_in_browser": "Адкрыць у браўзеры",
+ "open_in_immich_body": "Задайце Immich як галерэю на Android, каб адкрываць фота непасрэдна з іншых праграм.",
+ "open_in_immich_title": "Адкрываць фота ў Immich",
"open_in_map_view": "Адкрыць на карце",
"open_in_openstreetmap": "Адкрыць у OpenStreetMap",
"open_the_search_filters": "Адкрыць фільтры пошуку",
@@ -1526,7 +1575,7 @@
"partner_can_access_location": "Месцазнаходжанне, дзе былі зробленыя вашы фота",
"partner_list_user_photos": "Фота карыстальніка {user}",
"partner_page_empty_message": "Вашы фота яшчэ не абагуленыя ні з адным партнёрам.",
- "partner_page_no_more_users": "Больш няма карыстальнікаў для дадання",
+ "partner_page_no_more_users": "Больш няма карыстальнікаў для дадавання",
"partner_page_select_partner": "Выберыце партнёра",
"partner_page_stop_sharing_content": "{partner} больш не зможа мець доступ да вашых фота.",
"partner_sharing": "Абагульванне з партнёрам",
@@ -1547,7 +1596,7 @@
"paused": "Прыпынена",
"pending": "Чакае",
"people": "Людзі",
- "people_edits_count": "Адрэдагавана {count, plural, one {# чалавек} few {# чалавекі} many {# чалавек} other {# чалавек}}",
+ "people_edits_count": "{count, plural, one {Адрэдагаваны # чалавек} few {Адрэдагавана # чалавекі} many {Адрэдагавана # чалавек} other {Адрэдагавана # чалавека}}",
"people_feature_description": "Прагляд фота і відэа, згрупаваных па людзях",
"permanent_deletion_warning": "Папярэджанне аб канчатковым выдаленні",
"permanent_deletion_warning_setting_description": "Паказаць папярэджанне пры канчатковым выдаленні рэсурсаў",
@@ -1559,13 +1608,13 @@
"permission": "Дазвол",
"permission_empty": "Дазвол не можа быць пустым",
"person": "Чалавек",
- "person_age_months": "узрост {months, plural, one {# месяц} few {# месяцы} many {# месяцаў} other {# месяцаў}}",
- "person_age_year_months": "узрост 1 год, {months, plural, one {# месяц} few {# месяцы} many {# месяцаў} other {# месяцаў}}",
- "person_age_years": "узрост {years, plural, one {# год} few {# гады} many {# гадоў} other {# гадоў}}",
+ "person_age_months": "Узрост {months, plural, one {# месяц} few {# месяцы} many {# месяцаў} other {# месяца}}",
+ "person_age_year_months": "узрост 1 год, {months, plural, one {# месяц} few {# месяцы} many {# месяцаў} other {# месяца}}",
+ "person_age_years": "Узрост {years, plural, one {# год} few {# гады} many {# гадоў} other {# года}}",
"person_birthdate": "Дата нараджэння: {date}",
"person_hidden": "{name}{hidden, select, true { (схаваны)} other {}}",
"person_recognized": "Чалавек распазнаны",
- "photo_shared_all_users": "Падобна, што вы ўжо абагулілі свае фота з усімі карыстальнікамі або ў вас няма карыстальнікаў для абагульвання.",
+ "photo_shared_all_users": "Падобна, што вы ўжо абагулілі свае фота з усімі карыстальнікамі або ў вас няма карыстальнікаў, з якімі можна абагульваць.",
"photos": "Фота",
"photos_and_videos": "Фота і відэа",
"photos_from_previous_years": "Фота з мінулых гадоў",
@@ -1655,13 +1704,15 @@
"readonly_mode_enabled": "Уключаны рэжым толькі для чытання",
"ready_for_upload": "Гатова да запампоўвання",
"reassign": "Перапрызначыць",
- "reassigned_assets_to_existing_person": "Пераназначана {count, plural, one {# аб’ект} few {# аб’екты} many {# аб’ектаў} other {# аб’ектаў}} {name, select, null {існуючаму чалавеку} other {{name}}}",
- "reassigned_assets_to_new_person": "Пераназначана {count, plural, one {# аб’ект} few {# аб’екты} many {# аб’ектаў} other {# аб’ектаў}} новаму чалавеку",
- "reassing_hint": "Прыпісаць выбраныя актывы існуючай асобе",
+ "reassigned_assets_to_existing_person": "{count, plural, one {Пераназначаны # аб’ект} few {Пераназначаны # аб’екты} many {Пераназначана # аб’ектаў} other {Пераназначана # аб’екта}} {name, select, null {існуючаму чалавеку} other {{name}}}",
+ "reassigned_assets_to_new_person": "{count, plural, one {Пераназначаны # аб’ект} few {Пераназначаны # аб’екты} many {Пераназначана # аб’ектаў} other {Пераназначана # аб’екта}} новаму чалавеку",
+ "reassing_hint": "Прызначыць выбраныя аб’екты існуючаму чалавеку",
"recent": "Нядаўні",
"recent_searches": "Нядаўнія пошукі",
"recently_added": "Нядаўна дададзена",
+ "recently_added_description": "Прагляд аб’ектаў, адсартаваны па даце іх запампоўвання ў Immich",
"recently_added_page_title": "Нядаўна дададзеныя",
+ "recently_added_title": "Нядаўна дададзеныя",
"recently_taken": "Нядаўна зробленыя",
"refresh": "Абнавіць",
"refresh_encoded_videos": "Абнавіць закадаваныя відэа",
@@ -1757,11 +1808,11 @@
"search_by_full_path_example": "/Ян/Праекты/3D_Друк/2026-07-01 — вы можаце шукаць Праекты, 3D, Друк, 2026 і г.д.",
"search_by_ocr": "Пошук па OCR",
"search_by_ocr_example": "Латэ",
- "search_camera_lens_model": "Пошук мадэлі аб’ектыва...",
- "search_camera_make": "Пошук вытворцы камеры...",
- "search_camera_model": "Пошук мадэлі камеры...",
- "search_city": "Пошук горада...",
- "search_country": "Пошук краіны...",
+ "search_camera_lens_model": "Пошук па мадэлі аб’ектыва...",
+ "search_camera_make": "Пошук па вытворцы камеры...",
+ "search_camera_model": "Пошук па мадэлі камеры...",
+ "search_city": "Пошук па горадзе...",
+ "search_country": "Пошук па краіне...",
"search_filter_apply": "Прымяніць фільтр",
"search_filter_camera_title": "Выберыце тып камеры",
"search_filter_date": "Дата",
@@ -1778,7 +1829,7 @@
"search_filter_star_rating": "Ацэнка зоркамі",
"search_filter_tags_title": "Выберыце тэгі",
"search_for": "Шукаць",
- "search_for_existing_person": "Шукаць існуючага чалавека",
+ "search_for_existing_person": "Пошук існуючага чалавека",
"search_no_more_result": "Больш вынікаў няма",
"search_no_people": "Няма людзей",
"search_no_people_named": "Няма людзей з імем «{name}»",
@@ -1789,7 +1840,7 @@
"search_people": "Пошук людзей",
"search_places": "Пошук месцаў",
"search_rating": "Пошук па ацэнцы...",
- "search_settings": "Налады пошуку",
+ "search_settings": "Пошук у наладах",
"search_state": "Пошук рэгіёна...",
"search_tags": "Пошук тэгаў...",
"search_timezone": "Пошук часавага пояса...",
@@ -1808,14 +1859,15 @@
"select_count": "{count, plural, one {Выбраць #} few {Выбраць #} many {Выбраць #} other {Выбраць #}}",
"select_cutoff_date": "Выберыце канчатковую дату",
"select_face": "Выбраць твар",
- "select_featured_photo": "Выбраць адметнае фота",
+ "select_featured_photo": "Выбраць галоўнае фота",
"select_from_computer": "Выбраць з камп’ютара",
"select_keep_all": "Выбраць «пакінуць усё»",
"select_new_face": "Выбраць новы твар",
"select_people": "Выберыце людзей",
- "select_person": "Выберыце асобу",
- "select_person_to_tag": "Выберыце асобу для тэгавання",
+ "select_person": "Выберыце чалавека",
+ "select_person_to_tag": "Выберыце чалавека для пазначэння",
"select_photos": "Выберыце фота",
+ "select_quality": "Выберыце якасць",
"select_trash_all": "Выбраць усё ў сметніцы",
"selected": "Выбрана",
"selected_count": "{count, plural, other {# выбрана}}",
@@ -1835,7 +1887,7 @@
"server_version": "Версія сервера",
"set": "Задаць",
"set_as_album_cover": "Зрабіць вокладкай альбома",
- "set_as_featured_photo": "Зрабіць абраным фота",
+ "set_as_featured_photo": "Зрабіць галоўным фота",
"set_as_profile_picture": "Задаць як аватар профілю",
"set_date_of_birth": "Задаць дату нараджэння",
"set_profile_picture": "Задаць аватар профілю",
@@ -1865,7 +1917,11 @@
"share": "Абагуліць",
"share_dialog_preparing": "Падрыхтоўка…",
"share_link": "Абагуліць спасылку",
- "shared": "Абагулена",
+ "share_original": "Арыгінал (вялікі памер)",
+ "share_preview": "Мініяцюра (маленькі памер)",
+ "share_quality_body": "Націсніце і ўтрымлівайце кнопку «Абагуліць», каб выбраць якасць відарыса перад адпраўкай.",
+ "share_quality_title": "Выберыце якасць для абагульвання",
+ "shared": "Абагуленыя",
"shared_album_activities_input_disable": "Каментарый адключаны",
"shared_album_activity_remove_content": "Вы хочаце выдаліць гэту актыўнасць?",
"shared_album_activity_remove_title": "Выдаліць актыўнасць",
@@ -1879,16 +1935,18 @@
"shared_link_app_bar_title": "Абагуленыя спасылкі",
"shared_link_clipboard_copied_massage": "Скапіравана ў буфер абмену",
"shared_link_create_error": "Памылка пры стварэнні абагуленай спасылкі",
- "shared_link_custom_url_description": "Доступ да гэтай абагуленай спасылкі праз карыстальніцкі URL",
+ "shared_link_custom_url_description": "Доступ да гэтай абагуленай спасылкі праз уласны URL-адрас",
+ "shared_link_custom_url_title": "Уласны URL-адрас",
+ "shared_link_custom_url_warning": "Папярэджанне: уласны URL-адраса з прамой касой рысай можа паводзіць сябе не так, як вы чакаеце.",
"shared_link_edit_description_hint": "Увядзіце апісанне абагульвання",
"shared_link_edit_expire_after_option_day": "1 дзень",
- "shared_link_edit_expire_after_option_days": "{count} дзён",
+ "shared_link_edit_expire_after_option_days": "{count} сут",
"shared_link_edit_expire_after_option_hour": "1 гадзіна",
- "shared_link_edit_expire_after_option_hours": "{count} гадзін",
+ "shared_link_edit_expire_after_option_hours": "{count} гадз",
"shared_link_edit_expire_after_option_minute": "1 хвіліна",
- "shared_link_edit_expire_after_option_minutes": "{count} хвілін",
- "shared_link_edit_expire_after_option_months": "{count} месяцаў",
- "shared_link_edit_expire_after_option_year": "{count} год",
+ "shared_link_edit_expire_after_option_minutes": "{count} хв",
+ "shared_link_edit_expire_after_option_months": "{count} мес.",
+ "shared_link_edit_expire_after_option_year": "{count} г.",
"shared_link_edit_password_hint": "Увядзіце пароль абагульвання",
"shared_link_edit_submit_button": "Абнавіць спасылку",
"shared_link_error_server_url_fetch": "Не ўдалося атрымаць URL-адрас сервера",
@@ -1898,7 +1956,7 @@
"shared_link_expires_hours": "Тэрмін дзеяння заканчваецца праз {count} гадз",
"shared_link_expires_minute": "Тэрмін дзеяння заканчваецца праз {count} хвіліну",
"shared_link_expires_minutes": "Тэрмін дзеяння заканчваецца праз {count} хв",
- "shared_link_expires_never": "Заканчваецца ∞",
+ "shared_link_expires_never": "Ніколі не заканчваецца",
"shared_link_expires_second": "Тэрмін дзеяння заканчваецца праз {count} секунду",
"shared_link_expires_seconds": "Тэрмін дзеяння заканчваецца праз {count} с",
"shared_link_individual_shared": "Асобнае абагульванне",
@@ -1909,7 +1967,7 @@
"shared_links": "Абагуленыя спасылкі",
"shared_links_description": "Абагульвайце фота і відэа праз спасылку",
"shared_photos_and_videos_count": "{assetCount, plural, one {# абагуленае фота і відэа.} few {# абагуленыя фота і відэа.} many {# абагуленых фота і відэа.} other {# абагуленага фота і відэа.}}",
- "shared_with_me": "Абагулена са мной",
+ "shared_with_me": "Абагуленыя са мной",
"shared_with_partner": "Абагулена з {partner}",
"sharing": "Абагульванне",
"sharing_enter_password": "Увядзіце пароль для прагляду гэтай старонкі.",
@@ -1929,7 +1987,7 @@
"show_more_fields": "{count, plural, one {Паказаць яшчэ # поле} few {Паказаць яшчэ # поля} many {Паказаць яшчэ # палёў} other {Паказаць яшчэ # поля}}",
"show_or_hide_info": "Паказаць або схаваць інфармацыю",
"show_password": "Паказаць пароль",
- "show_person_options": "Паказаць параметры асобы",
+ "show_person_options": "Паказаць параметры чалавека",
"show_progress_bar": "Паказваць радок прагрэсу",
"show_schema": "Паказаць схему",
"show_search_options": "Паказаць параметры пошуку",
@@ -1946,16 +2004,19 @@
"sign_out": "Выйсці",
"sign_up": "Зарэгістравацца",
"size": "Памер",
+ "skip": "Прапусціць",
"skip_to_content": "Перайсці да змесціва",
"skip_to_folders": "Перайсці да папак",
"skip_to_tags": "Перайсці да тэгаў",
"slideshow": "Слайд-шоу",
+ "slideshow_body": "Сядайце зручней і атрымлівайце асалоду ад слайд-шоу на ўвесь экран.",
"slideshow_metadata_overlay_mode": "Змесціва накладкі",
"slideshow_metadata_overlay_mode_description_only": "Толькі апісанне",
"slideshow_metadata_overlay_mode_full": "Поўнае",
"slideshow_repeat": "Паўтараць слайд-шоу",
"slideshow_repeat_description": "Вяртацца ў пачатак пасля заканчэння слайд-шоу",
"slideshow_settings": "Налады слайд-шоу",
+ "slideshow_title": "Слайд-шоу",
"sort_albums_by": "Сартаваць альбомы па…",
"sort_created": "Даце стварэння",
"sort_items": "Колькасці элементаў",
@@ -1963,18 +2024,18 @@
"sort_oldest": "Найстарэйшым фота",
"sort_people_by_similarity": "Сартаваць людзей па падабенстве",
"sort_recent": "Самым нядаўнім фота",
- "sort_title": "Загаловак",
+ "sort_title": "Загалоўку",
"source": "Крыніца",
- "stack": "Стэк",
- "stack_action_prompt": "{count} складзена ў стэк",
- "stack_duplicates": "Скласці дублікаты ў стэк",
- "stack_selected_photos": "Скласці выбраныя фота ў стэк",
- "stacked_assets_count": "Складзена ў стэк {count, plural, one {# аб’ект} few {# аб’екты} many {# аб’ектаў} other {# аб’ектаў}}",
+ "stack": "Стос",
+ "stack_action_prompt": "{count} складзена ў стос",
+ "stack_duplicates": "Скласці дублікаты ў стос",
+ "stack_selected_photos": "Скласці выбраныя фота ў стос",
+ "stacked_assets_count": "{count, plural, one {# аб’ект складзены} few {# аб’екты складзены} many {# аб’ектаў складзена} other {# аб’екта складзена}} ў стос",
"stacktrace": "Трасіроўка стэка",
"start": "Пачаць",
"start_date": "Дата пачатку",
"start_date_before_end_date": "Дата пачатку павінна быць ранейшай за дату заканчэння",
- "state": "Вобласць",
+ "state": "Рэгіён",
"status": "Стан",
"step_delete": "Выдаліць крок",
"step_delete_confirm": "Вы ўпэўнены, што хочаце выдаліць гэты крок?",
@@ -1989,7 +2050,7 @@
"storage_quota": "Квота сховішча",
"storage_usage": "Выкарыстана {used} з {available}",
"submit": "Адправіць",
- "success": "Поспех",
+ "success": "Гатова",
"suggestions": "Прапановы",
"sunrise_on_the_beach": "Світанак на пляжы",
"support": "Падтрымка",
@@ -2007,11 +2068,11 @@
"system_theme": "Сістэмная тэма",
"system_theme_command_description": "Выкарыстоўваць сістэмную тэму ({value})",
"tag": "Тэг",
- "tag_assets": "Тэгаваць аб’екты",
+ "tag_assets": "Дадаць тэгі",
"tag_created": "Створаны тэг: {tag}",
- "tag_face": "Тэгаваць твар",
+ "tag_face": "Пазначыць твар",
"tag_feature_description": "Прагляд фота і відэа, згрупаваных па лагічных тэматычных тэгах",
- "tag_people": "Тэгаваць людзей",
+ "tag_people": "Пазначыць людзей",
"tag_updated": "Абноўлены тэг: {tag}",
"tagged_assets": "{count, plural, one {Пазначаны тэгам # аб’ект} few {Пазначаны тэгам # аб’екты} many {Пазначана тэгам # аб’ектаў} other {Пазначана тэгам # аб’екта}}",
"tags": "Тэгі",
@@ -2059,10 +2120,10 @@
"trash_page_info": "Элементы ў сметніцы будуць канчаткова выдалены праз {days} дзён",
"trashed_items_will_be_permanently_deleted_after": "Элементы ў сметніцы будуць канчаткова выдалены праз {days, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}}.",
"trigger": "Трыгер",
- "trigger_asset_uploaded": "Аб’ект запампаваны",
+ "trigger_asset_uploaded": "Запампаваны аб’ект",
"trigger_asset_uploaded_description": "Спрацоўвае пры запампоўванні новага аб’екта",
- "trigger_person_recognized": "Асоба распазнана",
- "trigger_person_recognized_description": "Спрацоўвае пры выяўленні асобы",
+ "trigger_person_recognized": "Распазнаны чалавек",
+ "trigger_person_recognized_description": "Спрацоўвае пры распазнаванні чалавека",
"troubleshoot": "Пошук і выпраўленне непаладак",
"type": "Тып",
"unable_to_change_pin_code": "Не атрымалася змяніць PIN-код",
@@ -2074,10 +2135,11 @@
"undo": "Адрабіць",
"unfavorite": "Выдаліць з абранага",
"unfavorite_action_prompt": "{count} выдалена з абранага",
- "unhide_person": "Паказаць асобу",
+ "unhide_person": "Паказаць чалавека",
"unknown": "Невядома",
"unknown_country": "Невядомая краіна",
"unknown_date": "Невядомая дата",
+ "unknown_schema": "Невядомая схема",
"unknown_year": "Невядомы год",
"unlimited": "Без абмежаванняў",
"unlink_motion_video": "Адвязаць рухомае відэа",
@@ -2090,15 +2152,15 @@
"unsaved_change": "Незахаванае змяненне",
"unselect_all": "Скасаваць выбар усіх",
"unselect_all_duplicates": "Скасаваць выбар усіх дублікатаў",
- "unstack": "Разабраць стэк",
- "unstack_action_prompt": "{count} вынята са стэка",
- "unstacked_assets_count": "Вынята са стэка {count, plural, one {# аб’ект} few {# аб’екты} many {# аб’ектаў} other {# аб’ектаў}}",
+ "unstack": "Раздзяліць стос",
+ "unstack_action_prompt": "{count} вынята са стоса",
+ "unstacked_assets_count": "{count, plural, one {# аб’ект выняты} few {# аб’екты выняты} many {# аб’ектаў вынята} other {# аб’екта вынята}} са стоса",
"unsupported_field_type": "Тып поля не падтрымліваецца",
"unsupported_file_type": "Файл {file} нельга запампаваць, бо тып файла {type} не падтрымліваецца.",
"untagged": "Без тэга",
"up_next": "Далей",
"update_location_action_prompt": "Абнавіць месцазнаходжанне выбраных аб’ектаў ({count}) на:",
- "updated_at": "Абноўлена",
+ "updated_at": "Абноўлены",
"updated_password": "Пароль абноўлены",
"upload": "Запампаваць",
"upload_concurrency": "Паралельнасць запампоўвання",
@@ -2113,6 +2175,8 @@
"upload_status_errors": "Памылкі",
"upload_status_uploaded": "Запампавана",
"upload_success": "Запампоўванне ўдалае, абнавіце старонку, каб убачыць новыя запампаваныя аб’екты.",
+ "upload_to_album_body": "Карыстальнікі, якія не карыстаюцца функцыяй ручнога запампоўвання, цяпер могуць дадаваць лакальныя фота непасрэдна ў альбом падчас іх запампоўвання. Больш не трэба запампоўваць іх і дадаваць у альбом пазней.",
+ "upload_to_album_title": "Запампоўваць адразу ў альбом",
"upload_to_immich": "Запампаваць у Immich ({count})",
"uploading": "Запампоўванне",
"uploading_media": "Запампоўванне медыя",
@@ -2147,7 +2211,7 @@
"variables": "Пераменныя",
"version": "Версія",
"version_announcement_closing": "Твой сябар, Алекс",
- "version_announcement_message": "Вітаем! Даступная новая версія Immich. Знайдзіце час, каб прачытаць нататкі да выпуску, каб пераканацца, што ваша налада актуальная і пазбегнуць магчымых памылак канфігурацыі, асабліва калі вы карыстаецеся WatchTower або іншымі механізмамі, якія аўтаматычна абнаўляюць ваш сервер Immich.",
+ "version_announcement_message": "Вітаем! Даступна новая версія Immich. Прачытайце нататкі да выпуску, каб пераканацца, што вашы налады актуальныя і пазбегнуць магчымых памылак канфігурацыі, асабліва калі вы выкарыстоўваеце WatchTower або іншы механізм для аўтаматычнага абнаўлення сервера Immich.",
"version_history": "Гісторыя версій",
"version_history_item": "Усталявана версія {version} на {date}",
"video": "Відэа",
@@ -2156,7 +2220,7 @@
"video_quality": "Якасць відэа",
"videos": "Відэа",
"videos_count": "{count, plural, one {# відэа} other {# відэа}}",
- "view": "Прагляд",
+ "view": "Выгляд",
"view_album": "Праглядзець альбом",
"view_all": "Праглядзець усё",
"view_all_users": "Праглядзець усех карыстальнікаў",
@@ -2169,8 +2233,8 @@
"view_previous_asset": "Праглядзець папярэдні аб'ект",
"view_qr_code": "Прагляд QR-кода",
"view_similar_photos": "Прагляд падобных фота",
- "view_stack": "Прагляд стэка",
- "viewer_remove_from_stack": "Выдаліць са стэка",
+ "view_stack": "Праглядзець стос",
+ "viewer_remove_from_stack": "Выняць са стоса",
"visibility": "Бачнасць",
"visibility_changed": "Бачнасць змянілася для {count, plural, one {# чалавека} other {# чалавек}}",
"visual": "Візуальны",
@@ -2180,28 +2244,33 @@
"week": "Тыдзень",
"welcome": "Вітаем",
"welcome_to_immich": "Вітаем у Immich",
+ "whats_new": "Што новага",
+ "whats_new_settings_subtitle": "Паглядзіце, што новага ў Immich",
+ "whats_new_version": "Версія {version}",
"when": "Калі",
"width": "Шырыня",
"wifi_name": "Назва Wi-Fi",
- "workflow_delete_prompt": "Вы ўпэўнены, што хочаце выдаліць гэты працоўны працэс?",
- "workflow_deleted": "Працоўны працэс выдалены",
- "workflow_description": "Апісанне працоўнага працэсу",
- "workflow_info": "Інфармацыя пра працоўны працэс",
- "workflow_json": "JSON працоўнага працэсу",
- "workflow_json_help": "Рэдагуйце канфігурацыю працоўнага працэсу ў фармаце JSON. Змяненні сінхранізуюцца з візуальным канструктарам.",
- "workflow_name": "Назва працоўнага працэсу",
+ "workflow": "Сцэнарый",
+ "workflow_delete_prompt": "Вы ўпэўнены, што хочаце выдаліць гэты сцэнарый?",
+ "workflow_deleted": "Сцэнарый выдалены",
+ "workflow_description": "Апісанне сцэнарыя",
+ "workflow_info": "Інфармацыя пра сцэнарый",
+ "workflow_json": "JSON сцэнарыя",
+ "workflow_json_help": "Рэдагуйце канфігурацыю сцэнарыя ў фармаце JSON. Змяненні сінхранізуюцца з візуальным канструктарам.",
+ "workflow_name": "Назва сцэнарыя",
"workflow_navigation_prompt": "Вы ўпэўнены, што хочаце выйсці без захавання змяненняў?",
- "workflow_summary": "Зводка працоўнага працэсу",
- "workflow_update_success": "Працоўны працэс паспяхова абноўлены",
- "workflows": "Працоўныя працэсы",
- "workflows_help_text": "Працоўныя працэсы аўтаматызуюць дзеянні над вашымі аб’ектамі на падставе трыгераў і фільтраў",
+ "workflow_summary": "Зводка сцэнарыя",
+ "workflow_templates": "Шаблоны сцэнарыяў",
+ "workflow_update_success": "Сцэнарый паспяхова абноўлены",
+ "workflows": "Сцэнарыі",
+ "workflows_help_text": "Сцэнарыі аўтаматызуюць дзеянні над аб’ектамі на падставе трыгераў і фільтраў",
"wrong_pin_code": "Няправільны PIN-код",
"x_of_total": "{x}/{total}",
"year": "Год",
"years_ago": "{years, plural, one {# год} few {# гады} many {# гадоў} other {# гадоў}} таму",
"yes": "Так",
"you_dont_have_any_shared_links": "У вас няма абагуленых спасылак",
- "your_wifi_name": "Імя вайшай Wi-Fi сеткі",
+ "your_wifi_name": "Назва сеткі Wi-Fi",
"zero_to_clear_rating": "націсніце 0, каб скінуць ацэнку аб’екта",
"zoom_image": "Павялічыць відарыс"
}
diff --git a/i18n/bg.json b/i18n/bg.json
index eb571a2e17..f7336d606c 100644
--- a/i18n/bg.json
+++ b/i18n/bg.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Качество на миниатюрата от 1 до 100. По-високата стойност е по-добра, но води до по-големи файлове и може да намали бързодействието на приложението.",
"image_thumbnail_title": "Настройки на миниатюрите",
"import_config_from_json_description": "Импорт на системна конфигурация чрез качване на JSON файл",
+ "integrity_checks_checksum_files": "Файлове с контролни суми",
+ "integrity_checks_checksum_files_description": "Настройка на проверката с контролна сума",
+ "integrity_checks_checksum_files_enable_description": "Активиране на проверката с контролна сума",
+ "integrity_checks_checksum_files_percentage_limit": "Процентно ограничение",
+ "integrity_checks_checksum_files_percentage_limit_description": "Конфигурирайте максималния процент между 0.01 и 1 за това колко често трябва да се изпълнява проверката на контролната сума през всеки интервал.",
+ "integrity_checks_checksum_files_time_limit": "Ограничение на времето",
+ "integrity_checks_checksum_files_time_limit_description": "Конфигурирайте максималната продължителност, за която трябва да се изпълнява проверка на контролната сума за всеки интервал. (ms)",
+ "integrity_checks_missing_files": "Липсващи файловe",
+ "integrity_checks_missing_files_description": "Конфигурирайте честотата и активирайте или деактивирайте проверката за липсващи файлове",
+ "integrity_checks_missing_files_enable_description": "Активиране на проверката за липсващи файлове",
+ "integrity_checks_settings": "Проверка за цялост",
+ "integrity_checks_settings_description": "Управлявайте интервалите за проверка на цялост",
+ "integrity_checks_untracked_files": "Непроследявани файлове",
+ "integrity_checks_untracked_files_description": "Конфигурирайте честотата и активирайте или деактивирайте проверката за непроследявани файлове",
+ "integrity_checks_untracked_files_enable_description": "Активиране на проверката за непроследявани файлове",
"job_concurrency": "Паралелност на {job}",
"job_created": "Задачата е създадена",
"job_not_concurrency_safe": "Тази задача не е безопасна за паралелно изпълнение.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Позволява транскодиране на видео по време на възпроизвеждане. Разрешава превключване на качеството, но може да предизвика по-голямо забавяне или накъсване на възпроизвеждането според възможностите на сървъра.",
"transcoding_realtime_enabled": "Включи транскодиране в реално време",
"transcoding_realtime_enabled_description": "Ако е изключено, сървъра ще отказва нова сесия за транскодиране в реално време.",
+ "transcoding_realtime_resolutions": "Резолюции",
+ "transcoding_realtime_resolutions_description": "Възможните резолюции за транскодиране в реално време. Високите резолюции може да предизвикат проблеми при възпроизвеждане, ако сървъра не успява да транскодира достатъчно бързо.",
+ "transcoding_realtime_video_codecs": "Видео кодеци",
+ "transcoding_realtime_video_codecs_description": "Видео кодеци, налични за транскодиране в реално време. При възпроизвеждане клиентите ще изберат най-добрата поддържана опция. AV1 е по-производителна от HEVC, която пък е по-производителна от H.264. При употреба на хардуерно ускорение избирайте само тези, които ускорителя поддържа. При софтуерно транскодиране имайте предвид, че H.264 е по-бързо от AV1, което е по-бързо от HEVC.",
"transcoding_reference_frames": "Референтни кадри",
"transcoding_reference_frames_description": "Броят кадри за препратка при компресиране на даден кадър. По-високите стойности подобряват ефективността на компресията, но забавят кодирането. 0 задава тази стойност автоматично.",
"transcoding_required_description": "Само видеа, които не са в приет формат",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Преглед на изображения",
"assets": "Елементи",
"assets_added_to_album_count": "Добавен(и) са {count, plural, one {# актив} other {# актива}} в албума",
+ "assets_added_to_album_partial_count": "Добавени са {successCount} от общо {totalCount} {totalCount, plural, one {елемент} other {елемента}} към албума",
"assets_added_to_albums_count": "{assetTotal, plural, one {# обект е добавен} other {# обекта са добавени}} в {albumTotal, plural, one {# албум} other {# албума}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Обекта не може да се добави} other {Обектите не може да се добавят}} в албума",
"assets_cannot_be_added_to_albums": "{count, plural, one {обект не може да бъде добавен} other {обекта не могат да бъдат добавени}} в никой от албумите",
@@ -588,7 +608,7 @@
"assets_restore_confirmation": "Сигурни ли сте, че искате да възстановите всички активи в кошчето? Не можете да отмените това действие! Имайте предвид, че активи, които са офлайн, не могат да бъдат възстановени по този начин.",
"assets_restored_count": "Възстановен(и) са {count, plural, one {# актив} other {# актива}}",
"assets_trashed": "{count} обекта са преместени в коша",
- "assets_trashed_count": "Възстановен(и) са {count, plural, one {# файл} other {# файла}}",
+ "assets_trashed_count": "{count, plural, one {# файл е преместен в кошчето} other {# файла са преместени в кошчето}}",
"assets_were_part_of_album_count": "{count, plural, one {Файлът е} other {Файловете са}} вече част от албума",
"assets_were_part_of_albums_count": "{count, plural, one {обект вече е} other {обекта вече са}} част от албумите",
"authorized_devices": "Удостоверени устройства",
@@ -794,7 +814,6 @@
"custom_date": "Персонализирана дата",
"custom_locale": "Персонализирани езикови настройки",
"custom_locale_description": "Форматиране на дата, време и числа в зависимост от избрания език и регион",
- "custom_url": "Персонализиран URL адрес",
"cutoff_date_description": "Запазване на снимки от последните…",
"cutoff_day": "{count, plural, one {ден} other {дни}}",
"cutoff_year": "{count, plural, one {година} other {години}}",
@@ -1461,6 +1480,7 @@
"never": "Никога",
"new_album": "Нов Албум",
"new_api_key": "Нов API ключ",
+ "new_feature": "Нова функция",
"new_password": "Нова парола",
"new_person": "Нов човек",
"new_pin_code": "Нов PIN код",
@@ -1504,9 +1524,13 @@
"not_available": "Неналично",
"not_in_any_album": "Не е в никой албум",
"not_selected": "Не е избрано",
+ "not_set": "Не е зададено",
"notes": "Бележки",
"nothing_here_yet": "Засега тук няма нищо",
"notification_backup_reliability": "Позволете известията, за да подобрите надеждността на архивиране във фонов режим",
+ "notification_enabled_list_tile_content": "Immich използва механизма за известия при архивиране във фонов режим. Управлявайте ги от менюто за настройки на вашето устройство.",
+ "notification_enabled_list_tile_open_button": "Отвори настройки",
+ "notification_enabled_list_tile_title": "Известията са активирани",
"notification_permission_dialog_content": "За да включиш известията, отиди в Настройки и избери Разреши.",
"notification_permission_list_tile_content": "Дай разрешение за активиране на известията.",
"notification_permission_list_tile_enable_button": "Разреши известията",
@@ -1518,6 +1542,8 @@
"obtainium_configurator": "Конфигуратор за получаване",
"obtainium_configurator_instructions": "Използвайте Obtainium за инсталация и обновяване на приложението за Android директно от GitHub на Immich. Създайте API ключ и изберете вариант за да създадете Obtainium конфигурационен линк",
"ocr": "Оптично разпознаване на текст",
+ "ocr_body": "Сега Immich разчита текст в снимките, така че може да търсите по това, което пише.",
+ "ocr_title": "Търсене на текст в снимките",
"official_immich_resources": "Официална информация за Immich",
"offline": "Офлайн",
"offset": "Отместване",
@@ -1536,6 +1562,8 @@
"open": "Отвори",
"open_calendar": "Отвори календар",
"open_in_browser": "Отвори в браузър",
+ "open_in_immich_body": "Задайте Immich като галерия на Android, за да отваряте снимки директно от други приложения.",
+ "open_in_immich_title": "Отваряне на снимки в Immich",
"open_in_map_view": "Отвори изглед на карта",
"open_in_openstreetmap": "Отвори в OpenStreetMap",
"open_the_search_filters": "Отвари филтрите за търсене",
@@ -1593,7 +1621,7 @@
"person": "Човек",
"person_age_months": "{months, plural, one {# месец} other {# месеца}}",
"person_age_year_months": "1 година и {months, plural, one {# месец} other {# месеца}}",
- "person_age_years": "{years, plural, other {# години}}",
+ "person_age_years": "{years, plural, one {# година} other {# години}}",
"person_birthdate": "Дата на раждане {date}",
"person_hidden": "{name}{hidden, select, true { (скрит)} other {}}",
"person_recognized": "Разпознато e лице",
@@ -1694,7 +1722,10 @@
"recent": "Скорошни",
"recent_searches": "Скорошни търсения",
"recently_added": "Наскоро добавено",
+ "recently_added_body": "Преминете директно към специална страница, където е всичко, което сте добавили напоследък.",
+ "recently_added_description": "Разглеждане на файлове, подредени по реда на добавяне в Immich",
"recently_added_page_title": "Наскоро добавено",
+ "recently_added_title": "Добавени скоро",
"recently_taken": "Наскоро снимано",
"refresh": "Опресняване",
"refresh_encoded_videos": "Опресни кодирани видеоклипове",
@@ -1901,6 +1932,8 @@
"share_link": "Връзка за споделяне",
"share_original": "Използвай оригинала (голям размер)",
"share_preview": "Използвай миниатюра (намален размер)",
+ "share_quality_body": "Натиснете и задръжте бутона за споделяне, за да изберете качеството на изображението, преди да го споделите.",
+ "share_quality_title": "Изберете качеството при споделяне",
"shared": "Споделено",
"shared_album_activities_input_disable": "Коментарите са изключени",
"shared_album_activity_remove_content": "Искате ли да изтриете тази активност?",
@@ -1915,7 +1948,9 @@
"shared_link_app_bar_title": "Споделени връзки",
"shared_link_clipboard_copied_massage": "Копирано в клипборда",
"shared_link_create_error": "Грешка при създаване на споделена връзка",
- "shared_link_custom_url_description": "Достъпете споделения линк с персонализиран URL адрес",
+ "shared_link_custom_url_description": "Споделете достъп чрез този персонализиран URL линк",
+ "shared_link_custom_url_title": "Персонализиран URL адрес",
+ "shared_link_custom_url_warning": "Предупреждение: Персонализирано URL име с наклонени напред може да не работи според очакванията.",
"shared_link_edit_description_hint": "Въведи описание на споделеното",
"shared_link_edit_expire_after_option_day": "1 ден",
"shared_link_edit_expire_after_option_days": "{count} дни",
@@ -1982,16 +2017,19 @@
"sign_out": "Отписване",
"sign_up": "Запиши се",
"size": "Размер",
+ "skip": "Пропусни",
"skip_to_content": "Премини към съдържанието",
"skip_to_folders": "Премини към папките",
"skip_to_tags": "Премини към етикетите",
"slideshow": "Слайдшоу",
+ "slideshow_body": "Отпуснете се и гледайте снимките си, възпроизвеждани в слайдшоу на цял екран.",
"slideshow_metadata_overlay_mode": "Съдържание на слоя с информация",
"slideshow_metadata_overlay_mode_description_only": "Само описание",
"slideshow_metadata_overlay_mode_full": "Пълна",
"slideshow_repeat": "Повтаряй слайдшоуто",
"slideshow_repeat_description": "Започвай отново, когато слайдшоуто приключи",
"slideshow_settings": "Настройки за слайдшоу",
+ "slideshow_title": "Слайдшоу",
"smart_album": "Умен албум",
"some_assets_already_have_a_location_warning": "Някои от избраните файлове вече имат местоположение",
"sort_albums_by": "Сортиране на албуми по...",
@@ -2119,6 +2157,7 @@
"unknown": "Неизвестно",
"unknown_country": "Непозната Държава",
"unknown_date": "Неизвестна дата",
+ "unknown_schema": "Неизвестна схема",
"unknown_year": "Неизвестна година",
"unlimited": "Неограничено",
"unlink_motion_video": "Премахни връзката с видео",
@@ -2154,6 +2193,8 @@
"upload_status_errors": "Грешки",
"upload_status_uploaded": "Качено",
"upload_success": "Качването е успешно, опреснете страницата, за да видите новите файлове.",
+ "upload_to_album_body": "За потребители, които не използват функцията за ръчно качване, вече можете да изберете да добавяте локални снимки директно в албум, докато ги качвате, вече не е необходимо да качвате и след това да добавяте към албум.",
+ "upload_to_album_title": "Качване директно в албум",
"upload_to_immich": "Казване в Immich ({count})",
"uploading": "Качваме",
"uploading_media": "Качване на медийни файлове",
@@ -2221,6 +2262,9 @@
"week": "Седмица",
"welcome": "Добре дошли",
"welcome_to_immich": "Добре дошли в Immich",
+ "whats_new": "Какво е новото",
+ "whats_new_settings_subtitle": "Вижте какво ново има в Immich",
+ "whats_new_version": "Версия {version}",
"when": "Когато",
"width": "Ширинa",
"wifi_name": "Wi-Fi мрежа",
diff --git a/i18n/bn.json b/i18n/bn.json
index 0f615189ec..64fcee0b13 100644
--- a/i18n/bn.json
+++ b/i18n/bn.json
@@ -8,7 +8,7 @@
"action_description": "বাছাইকৃত সম্পদসমূহের উপর সম্পাদনযোগ্য কাজের তালিকা",
"actions": "কর্ম",
"active": "সচল",
- "active_count": "Active: {count}",
+ "active_count": "সচল: {count}",
"activity": "কার্যকলাপ",
"add": "যোগ করুন",
"add_a_description": "একটি বিবরণ যোগ করুন",
@@ -56,7 +56,7 @@
"backup_onboarding_description": "আপনার ডেটা সুরক্ষিত রাখার জন্য একটি 3-2-1 ব্যাকআপ কৌশল সুপারিশ করা হয়। একটি বিস্তৃত ব্যাকআপ সমাধানের জন্য আপনার আপলোড করা ফটো/ভিডিওগুলির কপি এবং Immich ডাটাবেস রাখা উচিত।",
"backup_onboarding_footer": "Immich এর ব্যাকআপ নেওয়ার বিষয়ে আরও তথ্যের জন্য, অনুগ্রহ করে ডকুমেন্টেশন দেখুন।",
"backup_onboarding_parts_title": "৩-২-১ ব্যাকআপের মধ্যে রয়েছে:",
- "backup_onboarding_title": "ব্যাকআপ",
+ "backup_onboarding_title": "ব্যাকআপসমূহ",
"backup_settings": "ডাটাবেস ডাম্প সেটিংস",
"backup_settings_description": "ডাটাবেস ডাম্প সেটিংস পরিচালনা করুন।",
"cleared_jobs": "{job} এর জন্য jobs খালি করা হয়েছে",
@@ -98,18 +98,33 @@
"image_preview_quality_description": "১-১০০ এর মধ্যে প্রিভিউ কোয়ালিটি। বেশি হলে ভালো, কিন্তু বড় ফাইল তৈরি হয় এবং অ্যাপের প্রতিক্রিয়াশীলতা কমাতে পারে। কম মান সেট করলে মেশিন লার্নিং কোয়ালিটির উপর প্রভাব পড়তে পারে।",
"image_preview_title": "প্রিভিউ সেটিংস",
"image_progressive": "প্রগ্রেসিভ",
- "image_progressive_description": "ধীরে ধীরে লোড হওয়ার সুবিধার্থে JPEG ছবিগুলো প্রগ্রেসিভভাবে এনকোড করুন। WebP ছবির ক্ষেত্রে এটি কোনো প্রভাব ফেলবে না",
+ "image_progressive_description": "JPEG ছবি ক্রমান্বয়ে লোড হয়ে প্রদর্শিত হওয়ার জন্য প্রগ্রেসিভভাবে এনকোড করুন। WebP ছবির উপর এর কোনো প্রভাব নেই।",
"image_quality": "গুণমান",
- "image_resolution": "রেজোলিউশন",
+ "image_resolution": "রেজোলিউশনসমূহ",
"image_resolution_description": "উচ্চ রেজোলিউশনের ক্ষেত্রে আরও বিস্তারিত তথ্য সংরক্ষণ করা সম্ভব কিন্তু এনকোড করতে বেশি সময় লাগে, ফাইলের আকার বড় হয় এবং অ্যাপের প্রতিক্রিয়াশীলতা কমাতে পারে।",
- "image_settings": "চিত্র সেটিংস",
+ "image_settings": "ছবির সেটিংস",
"image_settings_description": "তৈরি করা ছবির মান এবং রেজোলিউশন পরিচালনা করুন",
"image_thumbnail_description": "মেটাডেটা বাদ দেওয়া ছোট থাম্বনেইল, মূল টাইমলাইনের মতো ছবির গ্রুপ দেখার সময় ব্যবহৃত হয়",
"image_thumbnail_quality_description": "থাম্বনেইলের মান ১-১০০। বেশি হলে ভালো, কিন্তু বড় ফাইল তৈরি হয় এবং অ্যাপের প্রতিক্রিয়াশীলতা কমাতে পারে।",
"image_thumbnail_title": "থাম্বনেল সেটিংস",
- "import_config_from_json_description": "একটি JSON কনফিগ ফাইল আপলোড করে সিস্টেম কনফিগারেশন ইমপোর্ট করুন।",
- "job_concurrency": "{job} কনকারেন্সি",
- "job_created": "Job তৈরি হয়েছে",
+ "import_config_from_json_description": "একটি JSON কনফিগ ফাইল আপলোড করে সিস্টেম কনফিগারেশন ইমপোর্ট করুন",
+ "integrity_checks_checksum_files": "ফাইলের সততা-যাচাই",
+ "integrity_checks_checksum_files_description": "ফাইলের সততা যাচাইকরণ পদ্ধতি নির্ধারণ করুন",
+ "integrity_checks_checksum_files_enable_description": "ফাইলের সততা-যাচাই চালু করুন",
+ "integrity_checks_checksum_files_percentage_limit": "শতাংশ সীমা",
+ "integrity_checks_checksum_files_percentage_limit_description": "০.০১ থেকে ১-এর মধ্যে সর্বোচ্চ শতাংশ নির্ধারণ করুন, যা প্রতিটি ব্যবধানে সততা-যাচাই কতটুকু চলবে তা নির্ধারণ করে।",
+ "integrity_checks_checksum_files_time_limit": "সময়সীমা",
+ "integrity_checks_checksum_files_time_limit_description": "প্রতিটি ব্যবধানে সততা-যাচাই সর্বোচ্চ কতক্ষণ চলবে, তার স্থিতিকাল নির্ধারণ করুন। (মিলিসেকেন্ডে)",
+ "integrity_checks_missing_files": "অনুপস্থিত ফাইল",
+ "integrity_checks_missing_files_description": "অনুপস্থিত ফাইল যাচাইয়ের সময়ব্যবধান নির্ধারণ করুন এবং তা চালু বা বন্ধ নির্বাচন করুন",
+ "integrity_checks_missing_files_enable_description": "অনুপস্থিত ফাইল যাচাই চালু করুন",
+ "integrity_checks_settings": "সততা যাচাই",
+ "integrity_checks_settings_description": "সততা যাচাইয়ের সময়ব্যবধান পরিচালনা করুন",
+ "integrity_checks_untracked_files": "নথিভুক্ত না করা ফাইল",
+ "integrity_checks_untracked_files_description": "নথিভুক্ত না করা ফাইল যাচাইয়ের সময়ব্যবধান নির্ধারণ করুন এবং তা চালু বা বন্ধ নির্বাচন করুন",
+ "integrity_checks_untracked_files_enable_description": "নথিভুক্ত না করা ফাইল যাচাই চালু করুন",
+ "job_concurrency": "{job} সমান্তরাল সংখ্যা",
+ "job_created": "কাজ তৈরি হয়েছে",
"job_not_concurrency_safe": "এই কাজটি সমান্তরালভাবে চালানো নিরাপদ নয়।",
"job_settings": "কাজের সেটিংস",
"job_settings_description": "কাজের সমান্তরালতা পরিচালনা করুন",
@@ -128,7 +143,7 @@
"library_settings": "বহিরাগত লাইব্রেরি",
"library_settings_description": "বহিরাগত লাইব্রেরি সেটিংস পরিচালনা করুন",
"library_tasks_description": "নতুন এবং/অথবা পরিবর্তিত সম্পদের জন্য বহিরাগত লাইব্রেরি স্ক্যান করুন",
- "library_updated": "আপডেটকৃত লাইব্রেরি।",
+ "library_updated": "লাইব্রেরি আপডেট করা হয়েছে",
"library_watching_enable_description": "ফাইল পরিবর্তনের জন্য বহিরাগত লাইব্রেরিগুলি দেখুন",
"library_watching_settings": "লাইব্রেরি পর্যবেক্ষণ [পরীক্ষামূলক]",
"library_watching_settings_description": "পরিবর্তিত ফাইলগুলির জন্য স্বয়ংক্রিয়ভাবে নজর রাখুন",
@@ -141,17 +156,17 @@
"machine_learning_availability_checks_interval": "চেক ব্যবধান",
"machine_learning_availability_checks_interval_description": "প্রাপ্যতা পরীক্ষাগুলির মধ্যে ব্যবধান মিলিসেকেন্ডে",
"machine_learning_availability_checks_timeout": "অনুরোধের সময়সীমা শেষ",
- "machine_learning_availability_checks_timeout_description": "প্রাপ্যতার পরীক্ষার জন্য মিলিসেকেন্ডে সময়সীমা।",
+ "machine_learning_availability_checks_timeout_description": "প্রাপ্যতা যাচাইয়ের জন্য মিলিসেকেন্ডে টাইমআউট",
"machine_learning_clip_model": "CLIP মডেল",
- "machine_learning_clip_model_description": "এখানে তালিকাভুক্ত একটি CLIP মডেলের নাম। মনে রাখবেন, মডেল পরিবর্তন করলে সব ছবির জন্য 'Smart Search' জবটি পুনরায় চালাতে হবে।",
+ "machine_learning_clip_model_description": "CLIP মডেলের নাম তালিকাভুক্ত আছে এখানে। মনে রাখবেন, মডেল পরিবর্তন করলে সব ছবির জন্য 'Smart Search' কাজটি পুনরায় চালাতে হবে।",
"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 সক্ষম করুন",
"machine_learning_enabled_description": "নিষ্ক্রিয় থাকলে নিচের সেটিংস নির্বিশেষে সমস্ত ML বৈশিষ্ট্য নিষ্ক্রিয় করা হবে।",
"machine_learning_facial_recognition": "ফেসিয়াল রিকগনিশন",
- "machine_learning_facial_recognition_description": "ছবিতে মুখ সনাক্ত করুন, চিনুন এবং গ্রুপ করুন।",
+ "machine_learning_facial_recognition_description": "ছবিতে থাকা মুখ শনাক্ত, চিহ্নিত এবং দলবদ্ধ করুন",
"machine_learning_facial_recognition_model": "ফেসিয়াল রিকগনিশন মডেল",
"machine_learning_facial_recognition_model_description": "মডেলগুলি আকারের অধঃক্রম অনুযায়ী তালিকাভুক্ত করা হয়েছে। বড় মডেলগুলি ধীরগতির এবং বেশি মেমরি ব্যবহার করে, তবে উন্নত ফলাফল প্রদান করে। মনে রাখবেন যে একটি মডেল পরিবর্তন করার পর আপনাকে সমস্ত ছবির জন্য ফেস ডিটেকশন (Face Detection) কাজটি পুনরায় চালাতে হবে।",
"machine_learning_facial_recognition_setting": "ফেসিয়াল রিকগনিশন সক্ষম করুন",
@@ -165,7 +180,7 @@
"machine_learning_min_recognized_faces": "সর্বনিম্ন স্বীকৃত মুখের সংখ্যা",
"machine_learning_min_recognized_faces_description": "একজন ব্যক্তি হিসেবে তৈরি হওয়ার জন্য স্বীকৃত মুখের সর্বনিম্ন সংখ্যা। এটি বাড়ালে ফেসিয়াল রিকগনিশন আরও নিখুঁত হয়, তবে এতে কোনো মুখ কোনো ব্যক্তির সাথে সংযুক্ত না হওয়ার সম্ভাবনাও বৃদ্ধি পায়।",
"machine_learning_ocr": "OCR",
- "machine_learning_ocr_description": "ছবিতে টেক্সট (Text) শনাক্ত করতে মেশিন লার্নিং ব্যবহার করুন।",
+ "machine_learning_ocr_description": "ছবিতে থাকা লেখা শনাক্ত করতে মেশিন লার্নিং ব্যবহার করুন",
"machine_learning_ocr_enabled": "OCR সক্ষম করুন",
"machine_learning_ocr_enabled_description": "নিষ্ক্রিয় থাকলে, ছবিগুলোতে টেক্সট শনাক্তকরণ করা হবে না।",
"machine_learning_ocr_max_resolution": "সর্বোচ্চ রেজোলিউশন(Resolution)",
@@ -182,18 +197,32 @@
"machine_learning_smart_search_description": "CLIP এমবেডিং (embeddings) ব্যবহার করে ছবির বিষয়বস্তু অনুযায়ী অনুসন্ধান করুন",
"machine_learning_smart_search_enabled": "স্মার্ট সার্চ সক্ষম করুন",
"machine_learning_smart_search_enabled_description": "নিষ্ক্রিয় থাকলে, স্মার্ট সার্চের জন্য ছবিগুলো এনকোড (encode) করা হবে না।",
- "machine_learning_url_description": "মেশিন লার্নিং সার্ভারের URL। যদি একের বেশি URL প্রদান করা হয়, তবে একটি সফলভাবে সাড়া না দেওয়া পর্যন্ত প্রতিটি সার্ভারে এক এক করে চেষ্টা করা হবে (প্রথম থেকে শেষ ক্রমানুসারে)। যে সার্ভারগুলো সাড়া দেবে না, সেগুলো পুনরায় সচল হওয়া পর্যন্ত সাময়িকভাবে উপেক্ষা করা হবে।",
+ "machine_learning_url_description": "মেশিন লার্নিং সার্ভারের URL। একাধিক URL দেওয়া থাকলে, প্রথম থেকে শেষ পর্যন্ত ক্রমানুসারে একটি করে সার্ভারে চেষ্টা করা হবে, যতক্ষণ না কোনোটি সফলভাবে সাড়া দেয়। যেসব সার্ভার সাড়া দেয় না, সেগুলোকে সাময়িকভাবে উপেক্ষা করা হবে, যতক্ষণ না তারা আবার সচল হয়।",
"maintenance_backup_management": "ব্যাকআপ ব্যবস্থাপনা",
"maintenance_delete_backup": "ব্যাকআপ (Backup)মুছুন",
"maintenance_delete_backup_description": "এই ফাইলটি চিরতরে মুছে ফেলা হবে।",
"maintenance_delete_error": "ব্যাকআপ মুছে ফেলতে ব্যর্থ হয়েছে।",
"maintenance_integrity_check": "যাচাই",
+ "maintenance_integrity_check_all": "সব যাচাই করুন",
+ "maintenance_integrity_checksum_mismatch": "সততা-যাচাই অমিল",
+ "maintenance_integrity_checksum_mismatch_description": "ডিস্কে থাকা ফাইলের সততা-যাচাই মান, ইমিচের ডেটাবেসে সংরক্ষিত সততা-যাচাই মানের সাথে মিলছে না।",
+ "maintenance_integrity_checksum_mismatch_job": "সততা-যাচাই অমিল খুঁজুন",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "সততা-যাচাই অমিলের প্রতিবেদন রিফ্রেশ করুন",
+ "maintenance_integrity_missing_file": "অনুপস্থিত ফাইল",
+ "maintenance_integrity_missing_file_description": "যেসব ফাইল ইমিচ ডেটাবেসে নথিভুক্ত করেছে, কিন্তু ফাইল সিস্টেমে বিদ্যমান নেই।",
+ "maintenance_integrity_missing_file_job": "অনুপস্থিত ফাইল খুঁজুন",
+ "maintenance_integrity_missing_file_refresh_job": "অনুপস্থিত ফাইলের প্রতিবেদন নতুন করে তৈরি করুন",
+ "maintenance_integrity_report": "সততা প্রতিবেদন",
+ "maintenance_integrity_untracked_file": "নথিভুক্ত না করা ফাইল",
+ "maintenance_integrity_untracked_file_description": "ইমিচের ডিরেক্টরিতে থাকা এমন ফাইল, যেগুলোর কোনো তথ্য ইমিচের কাছে নেই।",
+ "maintenance_integrity_untracked_file_job": "নথিভুক্ত না করা ফাইল খুঁজুন",
+ "maintenance_integrity_untracked_file_refresh_job": "নথিভুক্ত না করা ফাইলের প্রতিবেদন নতুন করে তৈরি করুন",
"maintenance_restore_backup": "ব্যাকআপ পুনরুদ্ধার(Restore) করুন",
"maintenance_restore_backup_description": "Immich মুছে ফেলা হবে এবং নির্বাচিত ব্যাকআপ থেকে পুনরুদ্ধার করা হবে। কার্যক্রম চালিয়ে যাওয়ার আগে একটি ব্যাকআপ তৈরি করা হবে।",
"maintenance_restore_backup_different_version": "এই ব্যাকআপটি Immich-এর একটি ভিন্ন সংস্করণের মাধ্যমে তৈরি করা হয়েছিল!",
"maintenance_restore_backup_unknown_version": "ব্যাকআপ সংস্করণ নির্ধারণ করা সম্ভব হয়নি।",
"maintenance_restore_database_backup": "ডেটাবেস ব্যাকআপ পুনরুদ্ধার করুন",
- "maintenance_restore_database_backup_description": "একটি ব্যাকআপ ফাইল ব্যবহার করে ডেটাবেসকে পূর্ববর্তী অবস্থায় ফিরিয়ে আনুন।",
+ "maintenance_restore_database_backup_description": "ব্যাকআপ ফাইল ব্যবহার করে ডেটাবেসকে আগের অবস্থায় ফিরিয়ে নিন",
"maintenance_settings": "রক্ষণাবেক্ষণ (Maintenance)",
"maintenance_settings_description": "Immich-কে রক্ষণাবেক্ষণ মোডে (maintenance mode) রাখুন।",
"maintenance_start": "রক্ষণাবেক্ষণ মোডে পরিবর্তন করুন",
@@ -201,15 +230,15 @@
"maintenance_upload_backup": "ডেটাবেস ব্যাকআপ ফাইল আপলোড করুন",
"maintenance_upload_backup_error": "ব্যাকআপ আপলোড করা যায়নি, এটি কি কোনো .sql/.sql.gz ফাইল?",
"manage_concurrency": "কনকারেন্সি পরিচালনা করুন (Manage Concurrency)",
- "manage_concurrency_description": "জব কনকারেন্সি পরিচালনা করতে 'জবস' (Jobs) পাতায় যান।",
+ "manage_concurrency_description": "কাজের সমান্তরাল সংখ্যা পরিচালনা করতে জব পেজে যান",
"manage_log_settings": "লগ সেটিংস পরিচালনা করুন",
"map_dark_style": "ডার্ক স্টাইল (Dark style)",
"map_enable_description": "ম্যাপ ফিচারগুলো সক্রিয় করুন (Enable map features)",
"map_gps_settings": "ম্যাপ এবং জিপিএস সেটিংস (Map & GPS Settings)",
"map_gps_settings_description": "ম্যাপ এবং জিপিএস (রিভার্স জিওকোডিং) সেটিংস পরিচালনা করুন (Manage Map & GPS (Reverse Geocoding) Settings)",
- "map_implications": "ম্যাপ ফিচারটি একটি এক্সটার্নাল টাইল সার্ভিসের (tiles.immich.cloud) ওপর নির্ভর করে।",
+ "map_implications": "ম্যাপ ফিচারটি একটি বাহ্যিক টাইল সার্ভিসের (tiles.immich.cloud) উপর নির্ভর করে",
"map_light_style": "লাইট স্টাইল (Light style)",
- "map_manage_reverse_geocoding_settings": "রিভার্স জিওকোডিং সেটিংস পরিচালনা করুন",
+ "map_manage_reverse_geocoding_settings": "রিভার্স জিওকোডিং সংক্রান্ত ব্যবস্থা পরিচালনা করুন",
"map_reverse_geocoding": "রিভার্স জিওকোডিং (Reverse Geocoding)",
"map_reverse_geocoding_enable_description": "রিভার্স জিওকোডিং সক্রিয় করুন (Enable reverse geocoding)",
"map_reverse_geocoding_settings": "রিভার্স জিওকোডিং সেটিংস (Reverse Geocoding Settings)",
@@ -219,9 +248,9 @@
"memory_cleanup_job": "মেমরি ক্লিনআপ (Memory cleanup)",
"memory_generate_job": "স্মৃতি তৈরি করা(Memory generation)",
"metadata_extraction_job": "মেটাডেটা এক্সট্র্যাক্ট করুন (Extract metadata)",
- "metadata_extraction_job_description": "প্রতিটি অ্যাসেট (Asset) থেকে মেটাডেটা তথ্য এক্সট্র্যাক্ট করুন, যেমন: জিপিএস (GPS), চেহারা (faces) এবং রেজোলিউশন (resolution)।",
+ "metadata_extraction_job_description": "প্রতিটি সম্পদ থেকে অবস্থান, চেহারা এবং বিভেদন ক্ষমতার মতো অধি-উপাত্ত তথ্য বের করুন",
"metadata_faces_import_setting": "ফেস ইম্পোর্ট সক্রিয় করুন (Enable face import)",
- "metadata_faces_import_setting_description": "ছবির EXIF ডেটা এবং সাইডকার (sidecar) ফাইল থেকে চেহারা (faces) ইম্পোর্ট করুন।",
+ "metadata_faces_import_setting_description": "ছবির EXIF তথ্য এবং সাইডকার ফাইল থেকে চেহারা আমদানি করুন",
"metadata_settings": "মেটাডেটা সেটিংস (Metadata Settings)",
"metadata_settings_description": "মেটাডেটা সেটিংস পরিচালনা করুন (Manage metadata settings)",
"migration_job": "মাইগ্রেশন (Migration)",
@@ -239,7 +268,7 @@
"nightly_tasks_start_time_setting": "শুরু করার সময় (Start time)",
"nightly_tasks_start_time_setting_description": "সার্ভার যখন নাইটলি টাস্ক (nightly tasks) চালানো শুরু করে সেই সময়",
"nightly_tasks_sync_quota_usage_setting": "কোটা ব্যবহারের তথ্য সিঙ্ক করুন (Sync quota usage)",
- "nightly_tasks_sync_quota_usage_setting_description": "বর্তমান ব্যবহারের ওপর ভিত্তি করে ব্যবহারকারীর স্টোরেজ কোটা আপডেট করুন।",
+ "nightly_tasks_sync_quota_usage_setting_description": "বর্তমান ব্যবহারের ভিত্তিতে ব্যবহারকারীর স্টোরেজ কোটা নির্ধারণ করুন",
"no_paths_added": "কোনো পাথ যোগ করা হয়নি (No paths added)",
"no_pattern_added": "কোনো প্যাটার্ন যোগ করা হয়নি (No pattern added)",
"note_apply_storage_label_previous_assets": "দ্রষ্টব্য: পূর্বে আপলোড করা অ্যাসেটগুলোতে স্টোরেজ লেবেল (Storage Label) প্রয়োগ করতে নিচের কমান্ডটি রান করুন—",
@@ -262,16 +291,20 @@
"notification_enable_email_notifications": "ইমেল নোটিফিকেসন সক্রিয় করুন",
"notification_settings": "নোটিফিকেসন সেটিংস",
"notification_settings_description": "ইমেইল সহ নোটিফিকেশন সেটিংস পরিচালনা করুন",
+ "oauth_allow_insecure_requests": "ঝুঁকিপূর্ণ অনুরোধের অনুমতি দিন",
+ "oauth_allow_insecure_requests_description": "সতর্কতা: এটি OAuth অনুরোধের জন্য TLS সার্টিফিকেট ভ্যালিডেশন বন্ধ করে দেয় এবং আপনাকে MITM আক্রমণের ঝুঁকিতে ফেলতে পারে।",
"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_secret_description": "গোপনীয় ক্লায়েন্টের জন্য প্রয়োজন, অথবা যদি পাবলিক ক্লায়েন্টের জন্য PKCE (Proof Key for Code Exchange) সমর্থিত না হয়।",
"oauth_enable_description": "OAuth-এর মাধ্যমে লগইন করুন",
+ "oauth_end_session_url_description": "ব্যবহারকারী লগ-আউট করার সময় তাকে এই URI-এ পুনঃনির্দেশ করুন।",
"oauth_mobile_redirect_uri": "মোবাইল রিডাইরেক্ট ইউআরআই (URI)",
"oauth_mobile_redirect_uri_override": "মোবাইল রিডাইরেক্ট ইউআরআই (URI) ওভাররাইড",
- "oauth_mobile_redirect_uri_override_description": "যখন OAuth প্রোভাইডার মোবাইল ইউআরআই (URI) অনুমতি দেয় না, যেমন ''{callback}'', তখন এটি সক্রিয় করুন।",
+ "oauth_mobile_redirect_uri_override_description": "যখন OAuth প্রোভাইডার মোবাইল ইউআরআই (URI) অনুমতি দেয় না, যেমন ''{callback}'', তখন এটি সক্রিয় করুন",
+ "oauth_prompt_description": "প্রম্পট প্যারামিটার (যেমন: select_account, login, consent)",
"oauth_role_claim": "রোল ক্লেইম (Role Claim)",
"oauth_role_claim_description": "এই ক্লেইমটির উপস্থিতির ওপর ভিত্তি করে স্বয়ংক্রিয়ভাবে অ্যাডমিন অ্যাক্সেস প্রদান করুন। ক্লেইমটিতে 'user' অথবা 'admin' যেকোনো একটি থাকতে পারে।",
"oauth_settings": "OAuth",
@@ -298,6 +331,8 @@
"refreshing_all_libraries": "সবগুলো লাইব্রেরি রিফ্রেশ করা হচ্ছে",
"registration": "অ্যাডমিন রেজিস্ট্রেশন (Admin Registration)",
"registration_description": "যেহেতু আপনি এই সিস্টেমের প্রথম ব্যবহারকারী, তাই আপনাকে অ্যাডমিন (Admin) হিসেবে নিযুক্ত করা হবে। আপনি সমস্ত প্রশাসনিক কাজের জন্য দায়ী থাকবেন এবং পরবর্তী ব্যবহারকারীরা আপনার মাধ্যমেই তৈরি হবে।",
+ "release_channel_release_candidate": "রিলিজ ক্যান্ডিডেট",
+ "release_channel_stable": "স্থিতিশীল",
"remove_failed_jobs": "ব্যর্থ হওয়া কাজগুলো মুছে ফেলুন (Remove failed jobs)",
"require_password_change_on_login": "প্রথমবার লগইন করার সময় ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন করা বাধ্যতামূলক করুন",
"reset_settings_to_default": "সেটিংস রিসেট করে ডিফল্ট অবস্থায় ফিরিয়ে আনুন (Reset settings to default)",
@@ -350,7 +385,7 @@
"theme_settings": "থীম সেটিংস",
"theme_settings_description": "ইমিচ (Immich) ওয়েব ইন্টারফেসের কাস্টমাইজেশন ম্যানেজ করুন",
"thumbnail_generation_job": "থাম্বনেইল তৈরি করুন (Generate Thumbnails)",
- "thumbnail_generation_job_description": "প্রতিটি অ্যাসেটের জন্য বড়, ছোট এবং ব্লার (অস্পষ্ট) থাম্বনেইল তৈরি করুন, সেই সাথে প্রতিটি ব্যক্তির জন্যও থাম্বনেইল তৈরি করুন।",
+ "thumbnail_generation_job_description": "প্রতিটি সম্পদের জন্য বড়, ছোট ও ঝাপসা থাম্বনেইল তৈরি করুন, পাশাপাশি প্রতিটি ব্যক্তির জন্যও থাম্বনেইল তৈরি করুন",
"transcoding_acceleration_api": "অ্যাক্সিলারেট এপিআই (Acceleration API)",
"transcoding_acceleration_api_description": "ট্রানসকোডিং (transcoding) দ্রুত করার জন্য আপনার ডিভাইসের সাথে যে API ইন্টারঅ্যাক্ট করবে। এই সেটিংসটি 'সাধ্যমতো' (best effort) কাজ করবে: ব্যর্থ হলে এটি পুনরায় সফটওয়্যার ট্রানসকোডিংয়ে ফিরে আসবে। হার্ডওয়্যারের ওপর ভিত্তি করে VP9 কাজ করতেও পারে, আবার নাও করতে পারে।",
"transcoding_acceleration_nvenc": "NVENC (NVIDIA GPU প্রয়োজন)",
@@ -392,6 +427,14 @@
"transcoding_preferred_hardware_device_description": "শুধুমাত্র VAAPI এবং QSV-এর ক্ষেত্রে প্রযোজ্য। হার্ডওয়্যার ট্রান্সকোডিংয়ের জন্য ব্যবহৃত dri নোড নির্ধারণ করে।",
"transcoding_preset_preset": "প্রিসেট (-preset)",
"transcoding_preset_preset_description": "কম্প্রেশন স্পিড। ধীরগতির প্রিসেটগুলো ছোট ফাইল তৈরি করে এবং একটি নির্দিষ্ট বিটরেট লক্ষ্য করার সময় গুণমান বৃদ্ধি করে। VP9 'faster'-এর চেয়ে বেশি গতি উপেক্ষা করে।",
+ "transcoding_realtime": "রিয়েল-টাইম ট্রান্সকোডিং [পরীক্ষামূলক]",
+ "transcoding_realtime_description": "ভিডিও স্ট্রিম করার সময় রিয়েল-টাইমে ট্রান্সকোডিং করার সুযোগ দেয়। এটি কোয়ালিটি পরিবর্তনের সুবিধা দেয়, তবে সার্ভারের সক্ষমতার উপর নির্ভর করে প্লেব্যাকে বেশি লেটেন্সি এবং স্টাটারিং হতে পারে।",
+ "transcoding_realtime_enabled": "রিয়েল-টাইম ট্রান্সকোডিং চালু করুন",
+ "transcoding_realtime_enabled_description": "বন্ধ থাকলে, সার্ভার নতুন রিয়েল-টাইম ট্রান্সকোডিং সেশন শুরু করতে অস্বীকার করবে।",
+ "transcoding_realtime_resolutions": "রেজোলিউশন",
+ "transcoding_realtime_resolutions_description": "রিয়েল-টাইম ট্রান্সকোডিংয়ের জন্য প্রদত্ত রেজোলিউশনসমূহ। সার্ভার যথেষ্ট দ্রুত ট্রান্সকোড করতে না পারলে উচ্চতর রেজোলিউশনে প্লেব্যাক সমস্যা হতে পারে।",
+ "transcoding_realtime_video_codecs": "ভিডিও কোডেকসমূহ",
+ "transcoding_realtime_video_codecs_description": "রিয়েল-টাইম ট্রান্সকোডিংয়ের জন্য প্রদত্ত ভিডিও কোডেকসমূহ। প্লেব্যাকের সময় ক্লায়েন্ট তাদের সমর্থিত সেরা বিকল্পটি বেছে নেবে। AV1, HEVC-এর চেয়ে বেশি কার্যকর, এবং HEVC, H.264-এর চেয়ে বেশি কার্যকর। হার্ডওয়্যার অ্যাক্সিলারেশন ব্যবহার করার সময়, শুধুমাত্র সেই কোডেকগুলো নির্বাচন করুন যা অ্যাক্সিলারেটর এনকোড করতে পারে। সফটওয়্যার ট্রান্সকোডিং ব্যবহার করার সময়, মনে রাখবেন H.264, AV1-এর চেয়ে দ্রুত, এবং AV1, HEVC-এর চেয়ে দ্রুত।",
"transcoding_reference_frames": "রেফারেন্স ফ্রেম",
"transcoding_reference_frames_description": "একটি ফ্রেম কম্প্রেস করার সময় কতটি ফ্রেমকে রেফারেন্স হিসেবে নেওয়া হবে। মান যত বেশি হবে, কমপ্রেশন দক্ষতা তত ভালো হবে, তবে এনকোডিং ধীর হবে। ০ দিলে এই মান স্বয়ংক্রিয়ভাবে নির্ধারিত হবে।",
"transcoding_required_description": "শুধুমাত্র অনুমোদিত ফরম্যাটে নেই এমন ভিডিও",
@@ -404,7 +447,7 @@
"transcoding_threads": "থ্রেড",
"transcoding_threads_description": "উচ্চ মানে এনকোডিং দ্রুত হয়, কিন্তু সার্ভার কম কাজ করতে পারে। CPU কোরের বেশি মান দেওয়া উচিত নয়। ০ দিলে সর্বাধিক ব্যবহার হবে।",
"transcoding_tone_mapping": "টোন-ম্যাপিং",
- "transcoding_tone_mapping_description": "এইচডিআর (HDR) ভিডিওকে এসডিআর (SDR)-এ রূপান্তর করার সময় এর বাহ্যিক রূপ অক্ষুণ্ণ রাখার চেষ্টা করা হয়। প্রতিটি অ্যালগরিদম রঙ, ডিটেইল এবং উজ্জ্বলতার জন্য ভিন্ন ভিন্ন সমন্বয় করে। হেবল ডিটেইল, মোবিয়াস রঙ এবং রাইনহার্ড উজ্জ্বলতা অক্ষুণ্ণ রাখে।",
+ "transcoding_tone_mapping_description": "এইচডিআর (HDR) ভিডিওকে এসডিআর (SDR)-এ রূপান্তর করার সময় এর বাহ্যিক রূপ অক্ষুণ্ণ রাখার চেষ্টা করা হয়। প্রতিটি অ্যালগরিদম রঙ, ডিটেইল এবং উজ্জ্বলতার ক্ষেত্রে ভিন্নভাবে সমন্বয় করে। হেবল ডিটেইল, মোবিয়াস রঙ এবং রাইনহার্ড উজ্জ্বলতা অক্ষুণ্ণ রাখে।",
"transcoding_transcode_policy": "ট্রান্সকোড নীতি",
"transcoding_transcode_policy_description": "কখন একটি ভিডিও ট্রান্সকোড করা হবে তার নীতিমালা। HDR ভিডিও এবং YUV 4:2:0 ব্যতীত অন্য পিক্সেল ফরম্যাটের ভিডিও সর্বদা ট্রান্সকোড করা হবে (যদি না ট্রান্সকোডিং বন্ধ করা থাকে)।",
"transcoding_two_pass_encoding": "টু-পাস এনকোডিং",
@@ -434,8 +477,11 @@
"user_settings": "ব্যবহারকারী সেটিংস",
"user_settings_description": "ব্যবহারকারী সেটিংস ম্যানেজ করুন",
"user_successfully_removed": "সফলভাবে ইউজার {email}-কে সরিয়ে দেওয়া হয়েছে।",
+ "users_page_description": "অ্যাডমিন ব্যবহারকারী পেজ",
+ "version_check_channel": "রিলিজ চ্যানেল",
+ "version_check_channel_description": "আপনি কোন রিলিজ চ্যানেলের জন্য ভার্সন ঘোষণা পেতে চান তা বেছে নিন",
"version_check_enabled_description": "ভার্সন যাচাই চালু করুন",
- "version_check_implications": "ভার্সন চেক ফিচারটি github.com-এর সঙ্গে নিয়মিত সংযোগের ওপর নির্ভরশীল",
+ "version_check_implications": "ভার্সন চেক ফিচারটি {server}-এর সঙ্গে নিয়মিত সংযোগের ওপর নির্ভরশীল",
"version_check_settings": "ভার্সন যাচাই",
"version_check_settings_description": "নতুন ভার্সনের নোটিফিকেশন চালু/বন্ধ করুন",
"video_conversion_job": "ভিডিও ট্রান্সকোড করুন",
@@ -445,67 +491,174 @@
"admin_password": "অ্যাডমিনের পাসওয়ার্ড",
"administration": "অ্যাডমিন",
"advanced": "অ্যাডভান্সড",
+ "advanced_settings_clear_image_cache": "ছবির ক্যাশ পরিষ্কার করুন",
+ "advanced_settings_clear_image_cache_error": "ছবির ক্যাশ পরিষ্কার করতে ব্যর্থ হয়েছে",
+ "advanced_settings_clear_image_cache_success": "সফলভাবে {size} পরিষ্কার করা হয়েছে",
+ "advanced_settings_log_level_title": "লগ লেভেল: {level}",
+ "advanced_settings_prefer_remote_subtitle": "কিছু ডিভাইসে লোকাল অ্যাসেট থেকে থাম্বনেইল লোড হতে অত্যন্ত ধীরগতি হয়। রিমোট ছবি লোড করার জন্য এই সেটিং চালু করুন।",
+ "advanced_settings_prefer_remote_title": "রিমোট ছবি পছন্দ করুন",
+ "advanced_settings_proxy_headers_subtitle": "ইমিচ-এর প্রতিটি নেটওয়ার্ক রিকোয়েস্টে পাঠানো প্রক্সি হেডার নির্ধারণ করুন",
+ "advanced_settings_proxy_headers_title": "কাস্টম প্রক্সি হেডার [পরীক্ষামূলক]",
+ "advanced_settings_readonly_mode_subtitle": "রিড-অনলি মোড চালু করে, যেখানে ছবিগুলো শুধু দেখা যাবে; একাধিক ছবি নির্বাচন, শেয়ার, কাস্ট, ডিলিট করার মতো সবকিছু বন্ধ থাকবে। মূল স্ক্রিন থেকে ব্যবহারকারীর অ্যাভাটার দিয়ে রিড-অনলি চালু/বন্ধ করা যাবে",
+ "advanced_settings_readonly_mode_title": "শুধু পড়ার অবস্থা",
+ "advanced_settings_sync_remote_deletions_subtitle": "ওয়েবে কোনো ফাইল মুছে ফেলা বা ফিরিয়ে আনা হলে, এই যন্ত্রেও তা স্বয়ংক্রিয়ভাবে করা হবে",
+ "advanced_settings_sync_remote_deletions_title": "সুদূরের মুছে ফেলাগুলো সঙ্গতিপূর্ণ করুন [পরীক্ষামূলক]",
+ "advanced_settings_tile_subtitle": "অভিজ্ঞ ব্যবহারকারীর সেটিংস",
+ "advanced_settings_troubleshooting_subtitle": "সমস্যা সমাধানের জন্য অতিরিক্ত বৈশিষ্ট্য চালু করুন",
+ "advanced_settings_troubleshooting_title": "ত্রুটি নিরসন",
"age_months": "বয়স {months, plural, one {# month} other {# months}}",
"age_year_months": "বয়স ১ বছর, {months, plural, one {# month} other {# months}}",
+ "age_years": "{years, plural, other {বয়স #}}",
+ "album": "অ্যালবাম",
"album_added": "অ্যালবাম যুক্ত করা হয়েছে",
"album_added_notification_setting_description": "শেয়ার করা অ্যালবামে যুক্ত হলে ইমেইল নোটিফিকেশন পান",
"album_cover_updated": "অ্যালবামের কভার আপডেট হয়েছে",
"album_delete_confirmation": "আপনি কি সত্যিই অ্যালবাম {album} মুছে ফেলতে চান?",
"album_delete_confirmation_description": "অ্যালবামটি শেয়ার করা থাকলেও অন্য ব্যবহারকারীরা আর এটি অ্যাক্সেস করতে পারবেন না।",
+ "album_deleted": "অ্যালবাম মুছে ফেলা হয়েছে",
"album_info_updated": "অ্যালবামের তথ্য আপডেট করা হয়েছে",
"album_name": "অ্যালবামের নাম",
"album_options": "অ্যালবামের অপশনসমূহ",
"album_remove_user": "ব্যবহারকারী সরাতে চান?",
"album_remove_user_confirmation": "আপনি কি নিশ্চিত যে আপনি {user}-কে সরাতে চান?",
+ "album_search_not_found": "আপনার খোঁজের সাথে মিলে যায় এমন কোনো অ্যালবাম পাওয়া যায়নি",
"album_share_no_users": "এই অ্যালবামটি সব ব্যবহারকারীর সঙ্গে শেয়ার করা হয়েছে, বা শেয়ার করার জন্য কোনো ব্যবহারকারী নেই।",
+ "album_summary": "অ্যালবামের সারসংক্ষেপ",
"album_updated": "অ্যালবাম আপডেট করা হয়েছে",
"album_updated_setting_description": "নতুন অ্যাসেট যুক্ত হলে শেয়ার করা অ্যালবামের জন্য ইমেইল নোটিফিকেশন পান",
+ "album_upload_assets": "আপনার কম্পিউটার থেকে ফাইল আপলোড করে অ্যালবামে যুক্ত করুন",
+ "album_viewer_appbar_share_err_delete": "অ্যালবাম মুছে ফেলতে ব্যর্থ হয়েছে",
+ "album_viewer_page_share_add_users": "ব্যবহারকারী যুক্ত করুন",
"album_with_link_access": "লিঙ্ক থাকা যে কেউ এই অ্যালবামের ছবি ও মানুষজনকে দেখতে পারবে।",
"albums": "অ্যালবামসমূহ",
+ "albums_count": "{count, plural, one {{count, number}টি অ্যালবাম} other {{count, number}টি অ্যালবাম}}",
+ "albums_default_sort_order": "অ্যালবাম সাজানোর স্বাভাবিক ক্রম",
+ "albums_default_sort_order_description": "নতুন অ্যালবাম তৈরি করার সময় ফাইল সাজানোর প্রাথমিক ক্রম।",
+ "albums_feature_description": "একাধিক ফাইলের সংগ্রহ, যা অন্য ব্যবহারকারীদের সাথে শেয়ার করা যায়।",
+ "albums_on_device_count": "ডিভাইসে থাকা অ্যালবাম ({count})",
"all": "সব",
"all_albums": "সকল অ্যালবামসমূহ",
"all_people": "সব ব্যবহারকারী",
+ "all_photos": "সব ছবি",
"all_videos": "সব ভিডিও",
"allow_dark_mode": "ডার্ক মোড চালু করুন",
"allow_public_user_to_download": "সাধারণ ব্যবহারকারী ডাউনলোড করতে পারবে",
"allow_public_user_to_upload": "সাধারণ ব্যবহারকারী আপলোড করতে পারবে",
+ "allowed": "অনুমোদিত",
+ "alt_text_qr_code": "QR কোড ছবি",
+ "always_keep": "সবসময় রাখুন",
+ "always_keep_photos_hint": "স্পেস খালি করার ফিচারটি এই ডিভাইসের সব ছবি রেখে দেবে।",
+ "always_keep_videos_hint": "স্পেস খালি করার ফিচারটি এই ডিভাইসের সব ভিডিও রেখে দেবে।",
"api_key": "API কী",
"api_key_description": "এই মান একবারই দেখানো হবে। উইন্ডো বন্ধ করার আগে অবশ্যই এটি কপি করুন।",
"api_key_empty": "API কী-এর নাম খালি রাখা যাবে না",
"api_keys": "API কী সমূহ",
+ "app_architecture_variant": "প্রকরণ (স্থাপত্যশৈলী)",
+ "app_bar_signout_dialog_content": "আপনি কি সাইন আউট করতে নিশ্চিত?",
+ "app_bar_signout_dialog_title": "সাইন আউট",
+ "app_download_links": "অ্যাপ ডাউনলোড লিংকসমূহ",
"app_settings": "অ্যাপ সেটিংস",
+ "app_stores": "অ্যাপ ভাণ্ডার",
+ "app_update_available": "অ্যাপের নতুন আপডেট পাওয়া যাচ্ছে",
"appears_in": "v1.106.4 থেকে, অ্যাসেট সাইডবারে ব্যবহার হয় ‘[albums]-এ উপস্থিত’ বোঝাতে",
+ "apply_count": "প্রয়োগ করুন ({count, number})",
"archive": "আর্কাইভ",
+ "archive_action_prompt": "{count}টি আর্কাইভে যুক্ত করা হয়েছে",
"archive_or_unarchive_photo": "ফটো আর্কাইভ অথবা আনআর্কাইভ করুন",
"archive_size": "আর্কাইভ সাইজ",
"archive_size_description": "ডাউনলোডের আর্কাইভ সাইজ নির্ধারণ করুন (GiB)",
+ "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_created": "সম্পদ তৈরি হয়েছে",
+ "asset_day_count": "{date}: {count, plural, one {#টি সম্পদ} other {#টি সম্পদ}}",
"asset_description_updated": "অ্যাসেটের বিবরণ আপডেট করা হয়েছে",
"asset_hashing": "হ্যাশিং চলছে…",
+ "asset_list_group_by_sub_title": "দলভুক্ত করুন",
+ "asset_list_layout_settings_group_by": "সম্পদ দলভুক্ত করুন",
+ "asset_list_layout_settings_group_by_month_day": "মাস + দিন",
+ "asset_list_layout_sub_title": "বিন্যাস",
+ "asset_list_settings_subtitle": "ছবির গ্রিড বিন্যাস সেটিংস",
+ "asset_list_settings_title": "ছবির গ্রিড",
+ "asset_not_found_on_device_android": "ডিভাইসে সম্পদ পাওয়া যায়নি",
+ "asset_not_found_on_device_ios": "ডিভাইসে সম্পদ পাওয়া যায়নি। আপনি যদি iCloud ব্যবহার করে থাকেন, তাহলে iCloud-এ সংরক্ষিত ফাইলটি ত্রুটিপূর্ণ থাকার কারণে সম্পদটি অ্যাক্সেসযোগ্য নাও হতে পারে",
+ "asset_not_found_on_icloud": "iCloud-এ সম্পদ পাওয়া যায়নি। iCloud-এ সংরক্ষিত ফাইলটি ত্রুটিপূর্ণ থাকার কারণে সম্পদটি অ্যাক্সেসযোগ্য নাও হতে পারে",
"asset_offline": "অ্যাসেট বর্তমানে অফলাইন",
"asset_offline_description": "এই এক্সটার্নাল অ্যাসেটটি এখন ডিস্কে নেই। সহায়তার জন্য Immich অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন।",
"asset_skipped": "এড়ানো হয়েছে",
"asset_skipped_in_trash": "ট্র্যাশে",
+ "asset_troubleshoot": "সম্পদ ত্রুটি নিরসন",
"asset_uploaded": "আপলোড সম্পন্ন",
"asset_uploading": "আপলোড চলছে…",
+ "asset_viewer_settings_subtitle": "আপনার গ্যালারি প্রদর্শক সেটিংস পরিচালনা করুন",
+ "asset_viewer_settings_title": "সম্পদ প্রদর্শক",
"assets": "অ্যাসেটসমূহ",
"assets_added_to_album_count": "অ্যালবামে {count, plural, one {# asset} other {# assets}} যুক্ত করা হয়েছে",
+ "assets_added_to_album_partial_count": "অ্যালবামে {totalCount}টির মধ্যে {successCount}টি {totalCount, plural, one {সম্পদ} other {সম্পদ}} যুক্ত করা হয়েছে",
+ "assets_added_to_albums_count": "{albumTotal, plural, one {#টি অ্যালবামে} other {#টি অ্যালবামে}} {assetTotal, plural, one {#টি সম্পদ} other {#টি সম্পদ}} যুক্ত করা হয়েছে",
+ "assets_cannot_be_added_to_album_count": "{count, plural, one {সম্পদটি} other {সম্পদগুলো}} অ্যালবামে যুক্ত করা যাচ্ছে না",
+ "assets_cannot_be_added_to_albums": "{count, plural, one {সম্পদটি} other {সম্পদগুলো}} কোনো অ্যালবামেই যুক্ত করা যাচ্ছে না",
+ "assets_count": "{count, plural, one {#টি সম্পদ} other {#টি সম্পদ}}",
"assets_moved_to_trash_count": "{count, plural, one {# asset} other {# assets}} ট্র্যাশে সরানো হয়েছে",
"assets_permanently_deleted_count": "{count, plural, one {# asset} other {# assets}} স্থায়ীভাবে মুছে ফেলা হয়েছে",
"assets_removed_count": "{count, plural, one {# asset} other {# assets}} সরানো হয়েছে",
"assets_restore_confirmation": "আপনি কি সত্যিই আপনার সব ট্র্যাশ করা অ্যাসেট পুনরুদ্ধার করতে চান? এটি পূর্বাবস্থায় ফিরানো যাবে না। তবে অফলাইন অ্যাসেট এইভাবে পুনরুদ্ধার হবে না।",
"assets_restored_count": "{count, plural, one {# asset} other {# assets}} পুনরুদ্ধার করা হয়েছে",
+ "assets_trashed": "{count}টি সম্পদ আবর্জনায় সরানো হয়েছে",
"assets_trashed_count": "{count, plural, one {# asset} other {# assets}} ট্র্যাশে পাঠানো হয়েছে",
"assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}} আগেই অ্যালবামে যুক্ত ছিল",
+ "assets_were_part_of_albums_count": "{count, plural, one {সম্পদটি ইতিমধ্যে অ্যালবামের অংশ ছিল} other {সম্পদগুলো ইতিমধ্যে অ্যালবামের অংশ ছিল}}",
"authorized_devices": "অনুমোদিত ডিভাইস",
+ "automatic_endpoint_switching_subtitle": "নির্দিষ্ট Wi-Fi উপলব্ধ থাকলে তার মাধ্যমে স্থানীয়ভাবে সংযুক্ত হন, অন্যত্র বিকল্প সংযোগ ব্যবহার করুন",
+ "automatic_endpoint_switching_title": "স্বয়ংক্রিয় URL পরিবর্তন",
+ "autoplay_slideshow": "ছবির প্রদর্শনী স্বয়ংক্রিয়ভাবে চালান",
"back": "ফিরে যান",
"back_close_deselect": "ফিরে যান, বন্ধ করুন বা নির্বাচন বাতিল করুন",
+ "background_location_permission": "ব্যাকগ্রাউন্ড লোকেশন অনুমতি",
+ "background_location_permission_content": "ব্যাকগ্রাউন্ডে চলার সময় নেটওয়ার্ক পরিবর্তন করতে হলে, ইমিচ-কে সবসময় সুনির্দিষ্ট লোকেশন অ্যাক্সেস দিতে হবে, যাতে অ্যাপটি Wi-Fi নেটওয়ার্কের নাম পড়তে পারে",
+ "background_options": "ব্যাকগ্রাউন্ড নির্বাচনী",
+ "backup": "ব্যাকআপ",
+ "backup_album_selection_page_albums_tap": "অন্তর্ভুক্ত করতে ট্যাপ করুন, বাদ দিতে ডাবল ট্যাপ করুন",
+ "backup_album_selection_page_assets_scatter": "সম্পদ একাধিক অ্যালবামে ছড়িয়ে থাকতে পারে। তাই ব্যাকআপ প্রক্রিয়ার সময় অ্যালবাম অন্তর্ভুক্ত বা বাদ দেওয়া যায়।",
+ "backup_album_selection_page_select_albums": "অ্যালবাম নির্বাচন করুন",
+ "backup_album_selection_page_selection_info": "নির্বাচনের তথ্য",
+ "backup_albums_sync": "ব্যাকআপ অ্যালবাম সমন্বয়",
+ "backup_background_service_complete_notification": "সম্পদ ব্যাকআপ সম্পন্ন হয়েছে",
+ "backup_background_service_default_notification": "নতুন সম্পদ খোঁজা হচ্ছে…",
+ "backup_background_service_in_progress_notification": "আপনার সম্পদ ব্যাকআপ করা হচ্ছে…",
+ "backup_controller_page_albums": "ব্যাকআপ অ্যালবামসমূহ",
+ "backup_controller_page_background_battery_info_link": "কীভাবে করব দেখান",
+ "backup_controller_page_background_battery_info_message": "সবচেয়ে ভালো ব্যাকগ্রাউন্ড ব্যাকআপ অভিজ্ঞতার জন্য, ইমিচ-এর ব্যাকগ্রাউন্ড কার্যক্রম সীমিত করে এমন যেকোনো ব্যাটারি অপ্টিমাইজেশন বন্ধ করুন।\n\nএটি ডিভাইস-নির্দিষ্ট বিষয় বলে, আপনার ডিভাইস প্রস্তুতকারকের জন্য প্রয়োজনীয় তথ্য খুঁজে দেখুন।",
+ "backup_controller_page_background_battery_info_ok": "ঠিক আছে",
+ "backup_controller_page_background_battery_info_title": "ব্যাটারি অপ্টিমাইজেশন",
+ "backup_controller_page_background_delay": "নতুন সম্পদের ব্যাকআপ বিলম্বিত করুন: {duration}",
+ "backup_controller_page_backup": "ব্যাকআপ",
+ "backup_controller_page_backup_selected": "নির্বাচিত: ",
+ "backup_controller_page_backup_sub": "ব্যাকআপ করা ছবি ও ভিডিও",
+ "backup_controller_page_excluded": "বাদ দেওয়া হয়েছে: ",
+ "backup_controller_page_none_selected": "কিছুই নির্বাচিত হয়নি",
+ "backup_controller_page_remainder": "অবশিষ্ট",
+ "backup_controller_page_remainder_sub": "নির্বাচন থেকে ব্যাকআপ করার বাকি থাকা ছবি ও ভিডিও",
+ "backup_controller_page_server_storage": "সার্ভারের সংরক্ষণাগার",
+ "backup_controller_page_storage_format": "{total}-এর মধ্যে {used} ব্যবহৃত হয়েছে",
+ "backup_controller_page_to_backup": "যেসব অ্যালবাম ব্যাকআপ করা হবে",
+ "backup_controller_page_total_sub": "নির্বাচিত অ্যালবামের সব অনন্য ছবি ও ভিডিও",
+ "backup_error_sync_failed": "সমন্বয় ব্যর্থ হয়েছে। ব্যাকআপ প্রক্রিয়া করা যাচ্ছে না।",
+ "backup_info_card_assets": "সম্পদসমূহ",
+ "backup_options": "ব্যাকআপ সংক্রান্ত ব্যবস্থা",
+ "backup_settings_subtitle": "আপলোড সংক্রান্ত ব্যবস্থা পরিচালনা করুন",
"backward": "পিছনে",
+ "battery_optimization_backup_reliability": "ব্যাটারি অপ্টিমাইজেশন বন্ধ করলে ব্যাকগ্রাউন্ড ব্যাকআপের নির্ভরযোগ্যতা বাড়তে পারে",
+ "biometric_auth_enabled": "বায়োমেট্রিক প্রমাণীকরণ চালু করা হয়েছে",
+ "biometric_locked_out": "আপনি বায়োমেট্রিক প্রমাণীকরণ থেকে বাদ পড়ে গেছেন",
+ "biometric_no_options": "কোনো বায়োমেট্রিক বিকল্প উপলব্ধ নেই",
+ "biometric_not_available": "এই ডিভাইসে বায়োমেট্রিক প্রমাণীকরণ উপলব্ধ নেই",
"birthdate_set_description": "একটি ছবির সময়ে ব্যক্তির বয়স গণনার জন্য জন্ম তারিখ ব্যবহার করা হয়।",
"blurred_background": "ব্লারড ব্যাকগ্রাউন্ড",
+ "browse_templates": "টেমপ্লেট দেখুন",
"bugs_and_feature_requests": "বাগ ও ফিচার রিকোয়েস্ট",
"build": "বিল্ড",
"build_image": "বিল্ড ইমেজ",
@@ -518,45 +671,107 @@
"camera_model": "ক্যামেরা মডেল",
"cancel": "বাতিল",
"cancel_search": "সার্চ বন্ধ করুন",
+ "canceled": "বাতিল করা হয়েছে",
+ "canceling": "বাতিল করা হচ্ছে",
"cannot_merge_people": "ব্যক্তিদের একত্র করা সম্ভব নয়",
"cannot_undo_this_action": "এই কাজ পূর্বাবস্থায় ফেরানো যাবে না!",
"cannot_update_the_description": "বিবরণ পরিবর্তন সম্ভব নয়",
+ "cast": "কাস্ট",
+ "cast_description": "উপলব্ধ কাস্ট গন্তব্যস্থল নির্ধারণ করুন",
+ "change": "পরিবর্তন",
"change_date": "তারিখ পরিবর্তন",
+ "change_description": "বিবরণ পরিবর্তন করুন",
+ "change_display_order": "প্রদর্শনের ক্রম পরিবর্তন করুন",
"change_location": "লোকেশন পরিবর্তন",
"change_name": "নাম পরিবর্তন করুন",
"change_name_successfully": "নাম সফলভাবে পরিবর্তন হয়েছে",
"change_password": "পাসওয়ার্ড পরিবর্তন করুন",
"change_password_description": "আপনি হয়তো প্রথমবার লগইন করছেন বা পাসওয়ার্ড পরিবর্তনের অনুরোধ করেছেন। নিচে নতুন পাসওয়ার্ড দিন।",
+ "change_password_form_confirm_password": "পাসওয়ার্ড নিশ্চিত করুন",
+ "change_password_form_description": "হ্যালো {name},\n\nআপনি হয়তো প্রথমবার সিস্টেমে সাইন ইন করছেন অথবা আপনার পাসওয়ার্ড পরিবর্তনের অনুরোধ করা হয়েছে। নিচে নতুন পাসওয়ার্ড দিন।",
+ "change_password_form_log_out": "অন্য সব ডিভাইস থেকে লগ আউট করুন",
+ "change_password_form_log_out_description": "অন্য সব ডিভাইস থেকে লগ আউট করার পরামর্শ দেওয়া হচ্ছে",
+ "change_password_form_new_password": "নতুন পাসওয়ার্ড",
+ "change_password_form_password_mismatch": "পাসওয়ার্ড মিলছে না",
+ "change_password_form_reenter_new_password": "নতুন পাসওয়ার্ড আবার দিন",
+ "change_pin_code": "PIN কোড পরিবর্তন করুন",
"change_your_password": "আপনার পাসওয়ার্ড পরিবর্তন করুন",
"changed_visibility_successfully": "ভিসিবিলিটি সফলভাবে পরিবর্তন হয়েছে",
+ "charging": "চার্জ হচ্ছে",
+ "charging_requirement_mobile_backup": "ব্যাকগ্রাউন্ড ব্যাকআপের জন্য ডিভাইস চার্জে থাকা প্রয়োজন",
"check_logs": "লগ দেখুন",
+ "checksum": "সততা-যাচাই",
+ "choose": "নির্বাচন করুন",
"choose_matching_people_to_merge": "একত্র করার জন্য মিল থাকা ব্যক্তিদের নির্বাচন করুন",
"city": "শহর",
+ "cleanup_confirm_description": "ইমিচ সার্ভারে নিরাপদে ব্যাকআপ হওয়া {count}টি সম্পদ (যেগুলো {date}-এর আগে তৈরি) খুঁজে পেয়েছে। এই ডিভাইস থেকে স্থানীয় কপিগুলো মুছে ফেলবেন?",
+ "cleanup_confirm_prompt_title": "এই ডিভাইস থেকে মুছে ফেলবেন?",
+ "cleanup_deleted_assets": "{count}টি সম্পদ ডিভাইসের ট্র্যাশে সরানো হয়েছে",
+ "cleanup_deleting": "ট্র্যাশে সরানো হচ্ছে..।",
+ "cleanup_found_assets": "{count}টি ব্যাকআপ করা সম্পদ পাওয়া গেছে",
+ "cleanup_found_assets_with_size": "{count}টি ব্যাকআপ করা সম্পদ পাওয়া গেছে ({size})",
+ "cleanup_icloud_shared_albums_excluded": "iCloud শেয়ার করা অ্যালবাম স্ক্যান থেকে বাদ রাখা হয়েছে",
+ "cleanup_no_assets_found": "উপরের শর্তের সাথে মিলে যায় এমন কোনো সম্পদ পাওয়া যায়নি। স্পেস খালি করার ফিচারটি শুধুমাত্র সার্ভারে ব্যাকআপ হওয়া সম্পদ মুছতে পারে",
+ "cleanup_preview_title": "মুছে ফেলার জন্য সম্পদ ({count})",
+ "cleanup_step3_description": "আপনার তারিখ ও রাখার সেটিংসের সাথে মিলে যায় এমন ব্যাকআপ করা সম্পদ খুঁজুন।",
+ "cleanup_step4_summary": "আপনার স্থানীয় ডিভাইস থেকে মুছে ফেলার জন্য {count}টি সম্পদ ({date}-এর আগে তৈরি)। ইমিচ অ্যাপ থেকে ছবিগুলো দেখা যাবে।",
+ "cleanup_trash_hint": "সম্পূর্ণভাবে স্টোরেজ স্পেস ফিরে পেতে, সিস্টেম গ্যালারি অ্যাপ খুলে ট্র্যাশ খালি করুন",
"clear": "মুছুন",
"clear_all": "সব মুছুন",
"clear_all_recent_searches": "সাম্প্রতিক সব অনুসন্ধান পরিষ্কার করুন",
+ "clear_failed_count": "মুছতে ব্যর্থ হয়েছে ({count})",
+ "clear_file_cache": "ফাইল ক্যাশ পরিষ্কার করুন",
"clear_message": "মেসেজ পরিষ্কার করুন",
"clear_value": "ভ্যালু মুছুন",
+ "client_cert_import": "আমদানি করুন",
+ "client_cert_import_success_msg": "ক্লায়েন্ট সার্টিফিকেট আমদানি করা হয়েছে",
+ "client_cert_invalid_msg": "ভুল সার্টিফিকেট ফাইল বা ভুল পাসওয়ার্ড",
+ "client_cert_password_message": "এই সার্টিফিকেটের জন্য পাসওয়ার্ড দিন",
+ "client_cert_password_title": "সার্টিফিকেট পাসওয়ার্ড",
+ "client_cert_remove_msg": "ক্লায়েন্ট সার্টিফিকেট সরানো হয়েছে",
+ "client_cert_subtitle": "শুধুমাত্র PKCS12 (.p12, .pfx) ফরম্যাট সমর্থিত। সার্টিফিকেট আমদানি/অপসারণ শুধুমাত্র লগইনের আগে করা যাবে",
+ "client_cert_title": "SSL ক্লায়েন্ট সার্টিফিকেট [পরীক্ষামূলক]",
"close": "বন্ধ",
"collapse": "সংকুচিত করুন",
"collapse_all": "সব সংকুচিত",
"color": "রং",
+ "command": "কমান্ড",
+ "command_palette_prompt": "পেজ, অ্যাকশন বা কমান্ড দ্রুত খুঁজুন",
+ "command_palette_to_close": "বন্ধ করতে",
+ "command_palette_to_navigate": "প্রবেশ করতে",
+ "command_palette_to_select": "নির্বাচন করতে",
+ "command_palette_to_show_all": "সব দেখাতে",
"comment_deleted": "মন্তব্য মুছে ফেলা হয়েছে",
- "comment_options": "মন্তব্য অপশন",
+ "comment_options": "মন্তব্য সংক্রান্ত ব্যবস্থা",
"comments_and_likes": "মন্তব্য ও লাইক",
"comments_are_disabled": "মন্তব্য বন্ধ করা হয়েছে",
+ "common_create_new_album": "নতুন অ্যালবাম তৈরি করুন",
+ "completed": "সম্পন্ন হয়েছে",
+ "configuration": "গঠনবিন্যাস",
"confirm": "নিশ্চিত",
"confirm_admin_password": "অ্যাডমিন পাসওয়ার্ড পুনরায় লিখুন",
+ "confirm_delete_face": "আপনি কি নিশ্চিত যে সম্পদ থেকে {name} মুখটি মুছে ফেলতে চান?",
"confirm_delete_shared_link": "আপনি কি নিশ্চিত যে আপনি এই শেয়ার করা লিঙ্কটি মুছে ফেলতে চান?",
"confirm_keep_this_delete_others": "স্ট্যাকের এই অ্যাসেট ছাড়া সব অন্যান্য অ্যাসেট মুছে যাবে। আপনি কি নিশ্চিত যে আপনি চালিয়ে যেতে চান?",
+ "confirm_new_pin_code": "নতুন PIN কোড নিশ্চিত করুন",
"confirm_password": "পাসওয়ার্ড পুনরায় লিখুন",
+ "confirm_tag_face": "আপনি কি এই মুখটিকে {name} হিসেবে ট্যাগ করতে চান?",
+ "confirm_tag_face_unnamed": "আপনি কি এই মুখটি ট্যাগ করতে চান?",
+ "connected_device": "সংযুক্ত ডিভাইস",
+ "connected_to": "সংযুক্ত আছে",
"contain": "মাপমত",
"context": "প্রসঙ্গ",
"continue": "এগিয়ে যান",
+ "control_bottom_app_bar_add_tags": "ট্যাগসমূহ যুক্ত করুন",
+ "control_bottom_app_bar_delete_from_local": "ডিভাইস থেকে মুছুন",
+ "control_bottom_app_bar_edit_location": "লোকেশন পরিবর্তন করুন",
+ "control_bottom_app_bar_edit_time": "তারিখ ও সময় পরিবর্তন করুন",
+ "control_bottom_app_bar_trash_from_immich": "আবর্জনায় সরান",
"copied_image_to_clipboard": "ছবি ক্লিপবোর্ডে কপি হয়েছে।",
"copied_to_clipboard": "ক্লিপবোর্ডে কপি হয়েছে!",
"copy_error": "Error-টি কপি করুন",
"copy_image": "ছবি কপি",
+ "copy_json": "JSON কপি",
"copy_link": "লিঙ্ক কপি",
"copy_link_to_clipboard": "ক্লিপবোর্ডে লিঙ্ক কপি করুন",
"copy_password": "পাসওয়ার্ড কপি করুন",
@@ -566,44 +781,92 @@
"covers": "কভারস",
"create": "তৈরি করুন",
"create_album": "অ্যালবাম তৈরি",
+ "create_album_page_untitled": "শিরোনামহীন",
+ "create_api_key": "এপিআই কী তৈরি করুন",
+ "create_first_workflow": "প্রথম কর্মপ্রবাহ তৈরি করুন",
"create_library": "লাইব্রেরি তৈরি",
"create_link": "লিঙ্ক তৈরি",
"create_link_to_share": "শেয়ার লিঙ্ক তৈরি",
"create_link_to_share_description": "লিঙ্কের মাধ্যমে সবাই নির্বাচিত ছবি দেখতে পারবে",
+ "create_new": "নতুন তৈরি করুন",
"create_new_person": "নতুন ব্যক্তি যোগ করুন",
"create_new_person_hint": "নির্বাচিত অ্যাসেট নতুন ব্যক্তির সঙ্গে যুক্ত করুন",
"create_new_user": "নতুন ব্যবহারকারী যোগ করুন",
+ "create_person": "ব্যক্তি তৈরি করুন",
+ "create_person_subtitle": "নির্বাচিত চেহারায় একটি নাম যুক্ত করে নতুন ব্যক্তি তৈরি ও চিহ্নিত করুন",
+ "create_shared_album_page_share_add_assets": "সম্পদ যুক্ত করুন",
+ "create_shared_album_page_share_select_photos": "ছবি নির্বাচন করুন",
+ "create_shared_link": "শেয়ার লিংক তৈরি করুন",
"create_tag": "ট্যাগ তৈরি",
"create_tag_description": "নতুন ট্যাগ তৈরি করুন। নেস্টেড ট্যাগের ক্ষেত্রে সম্পূর্ণ পাথ - ফরওয়ার্ড স্ল্যাশসহ দিন।",
"create_user": "ব্যবহারকারী যোগ করুন",
- "created": "যোগ করা হয়েছে",
+ "create_workflow": "কর্মপ্রবাহ তৈরি করুন",
+ "created": "তৈরি হয়েছে",
+ "created_at": "তৈরি হওয়ার সময়",
+ "creating_linked_albums": "সংযুক্ত অ্যালবাম তৈরি করা হচ্ছে..।",
+ "crop": "কাটছাঁট",
+ "crop_aspect_ratio_free": "মুক্ত",
+ "crop_aspect_ratio_original": "মূল",
+ "crop_aspect_ratio_square": "বর্গাকার",
"current_device": "চলতি ডিভাইস",
- "custom_locale": "কাস্টম লোকেল",
+ "current_pin_code": "বর্তমান PIN কোড",
+ "current_server_address": "বর্তমান সার্ভার ঠিকানা",
+ "custom_date": "স্বনির্ধারিত তারিখ",
+ "custom_locale": "স্বনির্ধারিত লোকেল",
"custom_locale_description": "নির্বাচিত ভাষা এবং অঞ্চলের ভিত্তিতে তারিখ, সময় এবং সংখ্যা ফরম্যাট করুন",
- "dark": "ডার্ক",
+ "cutoff_date_description": "সাম্প্রতিক এই সময়কালের ছবি রাখুন…",
+ "cutoff_day": "{count, plural, one {দিন} other {দিন}}",
+ "cutoff_year": "{count, plural, one {বছর} other {বছর}}",
+ "dark": "অন্ধকার",
+ "dark_theme": "অন্ধকার থিমে পরিবর্তন করুন",
+ "date": "তারিখ",
"date_after": "এর পরের তারিখ",
"date_and_time": "তারিখ এবং সময়",
"date_before": "এর আগের তারিখ",
+ "date_of_birth": "জন্ম তারিখ",
"date_of_birth_saved": "জন্ম তারিখ সফলভাবে সংরক্ষণ করা হয়েছে",
+ "date_range": "তারিখের পরিসীমা",
+ "date_time_original": "মূল তারিখ/সময়",
+ "day": "দিন",
+ "days": "দিন",
+ "deduplicate_all": "সব ডুপ্লিকেট সরান",
+ "default_quality_subtitle": "শেয়ার বাটনে ট্যাপ করার সময় ব্যবহৃত মান। প্রতিবার নির্বাচন করতে শেয়ার বাটনে দীর্ঘক্ষণ চাপ দিন।",
+ "default_share_quality": "ডিফল্ট শেয়ার মান",
"delete": "মুছুন",
+ "delete_action_confirmation_message": "আপনি কি নিশ্চিত যে এই সম্পদটি মুছে ফেলতে চান? এই কাজটি সম্পদটিকে সার্ভারের আবর্জনায় সরিয়ে দেবে এবং স্থানীয়ভাবেও মুছে ফেলতে চান কিনা তা জিজ্ঞাসা করবে",
+ "delete_action_prompt": "{count}টি মুছে ফেলা হয়েছে",
"delete_album": "অ্যালবাম মুছুন",
"delete_api_key_prompt": "আপনি কি সত্যিই এই API key মুছে ফেলতে চান?",
+ "delete_dialog_alert": "এই আইটেমগুলো Immich এবং আপনার ডিভাইস থেকে স্থায়ীভাবে মুছে ফেলা হবে",
+ "delete_dialog_alert_local": "এই আইটেমগুলো আপনার ডিভাইস থেকে স্থায়ীভাবে সরানো হবে, তবে Immich সার্ভারে উপলব্ধ থাকবে",
+ "delete_dialog_alert_local_non_backed_up": "কিছু আইটেম Immich-এ ব্যাকআপ করা নেই এবং সেগুলো আপনার ডিভাইস থেকে স্থায়ীভাবে সরানো হবে",
+ "delete_dialog_title": "স্থায়ীভাবে মুছুন",
"delete_duplicates_confirmation": "আপনি কি সত্যিই এই ডুপ্লিকেটগুলো স্থায়ীভাবে মুছতে চান?",
+ "delete_face": "মুখ মুছুন",
"delete_key": "key মুছুন",
"delete_library": "লাইব্রেরি মুছুন",
"delete_link": "লিঙ্ক মুছুন",
+ "delete_local_action_prompt": "{count}টি স্থানীয়ভাবে মুছে ফেলা হয়েছে",
+ "delete_local_dialog_ok_backed_up_only": "শুধুমাত্র ব্যাকআপ করাগুলো মুছুন",
+ "delete_local_dialog_ok_force": "তবুও মুছুন",
"delete_others": "বাকিগুলো মুছুন",
+ "delete_permanently": "স্থায়ীভাবে মুছুন",
+ "delete_permanently_action_prompt": "{count}টি স্থায়ীভাবে মুছে ফেলা হয়েছে",
"delete_shared_link": "শেয়ার করা লিঙ্ক মুছুন",
+ "delete_shared_link_dialog_title": "শেয়ার লিংক মুছুন",
"delete_tag": "ট্যাগ মুছুন",
"delete_tag_confirmation_prompt": "আপনি কি নিশ্চিতভাবে {tagName} ট্যাগটি মুছতে চান?",
"delete_user": "ইউজার মুছুন",
"deleted_shared_link": "শেয়ার করা লিঙ্কটি মুছুন",
"description": "বিবরন",
+ "deselect_all": "সব নির্বাচন বাতিল করুন",
"details": "বিস্তারিত",
"direction": "দিকনির্দেশনা",
+ "disable": "নিষ্ক্রিয় করুন",
"disabled": "নিষ্ক্রিয়",
"discord": "ডিসকর্ড",
"discover": "ডিসকভার",
+ "discovered_devices": "শনাক্ত হওয়া ডিভাইস",
"dismiss_all_errors": "সব ত্রুটি বাতিল করুন",
"display_options": "ডিসপ্লে অপশন",
"display_order": "ডিসপ্লে অর্ডার",
@@ -613,13 +876,1416 @@
"documentation": "সহায়ক নির্দেশিকা",
"done": "সম্পন্ন",
"download": "ডাউনলোড",
+ "download_canceled": "ডাউনলোড বাতিল হয়েছে",
+ "download_complete": "ডাউনলোড সম্পন্ন হয়েছে",
+ "download_enqueue": "ডাউনলোড সারিতে যুক্ত হয়েছে",
+ "download_failed": "ডাউনলোড ব্যর্থ হয়েছে",
+ "download_finished": "ডাউনলোড শেষ হয়েছে",
"download_include_embedded_motion_videos": "এমবেডেড ভিডিও",
"download_include_embedded_motion_videos_description": "মোশন ফটোর (motion photos) মধ্যে থাকা ভিডিওগুলোকে আলাদা ফাইল হিসেবে অন্তর্ভুক্ত করুন",
+ "download_notfound": "ডাউনলোড খুঁজে পাওয়া যায়নি",
+ "download_original": "মূল ফাইল ডাউনলোড করুন",
+ "download_paused": "ডাউনলোড থামানো হয়েছে",
"download_settings": "ডাউনলোড",
"download_settings_description": "অ্যাসেট ডাউনলোডের সেটিংস পরিচালনা করুন",
+ "download_waiting_to_retry": "পুনরায় চেষ্টার জন্য অপেক্ষা করা হচ্ছে",
+ "downloading": "ডাউনলোড হচ্ছে",
+ "downloading_asset_filename": "{filename} অ্যাসেট ডাউনলোড হচ্ছে",
+ "downloading_from_icloud": "iCloud থেকে ডাউনলোড হচ্ছে",
+ "downloading_media": "মিডিয়া ডাউনলোড হচ্ছে",
+ "drag_to_reorder": "ক্রম পরিবর্তন করতে টেনে আনুন",
+ "drop_files_to_upload": "আপলোড করতে যেকোনো জায়গায় ফাইল ড্রপ করুন",
+ "duplicate": "ডুপ্লিকেট",
+ "duplicate_workflow": "ওয়ার্কফ্লো ডুপ্লিকেট করুন",
+ "duplicates": "ডুপ্লিকেট",
+ "duplicates_description": "কোনগুলো, যদি থাকে, ডুপ্লিকেট তা চিহ্নিত করে প্রতিটি গ্রুপ সমাধান করুন।",
+ "duration": "সময়কাল",
+ "edit": "সম্পাদনা",
+ "edit_album": "অ্যালবাম সম্পাদনা করুন",
+ "edit_avatar": "অ্যাভাটার সম্পাদনা করুন",
+ "edit_birthday": "জন্মদিন সম্পাদনা করুন",
+ "edit_date": "তারিখ সম্পাদনা করুন",
+ "edit_date_and_time": "তারিখ ও সময় সম্পাদনা করুন",
+ "edit_date_and_time_action_prompt": "{count}টি তারিখ ও সময় সম্পাদনা করা হয়েছে",
+ "edit_date_and_time_by_offset": "অফসেট অনুযায়ী তারিখ পরিবর্তন করুন",
+ "edit_description": "বিবরণ সম্পাদনা করুন",
+ "edit_exclusion_pattern": "বর্জন প্যাটার্ন সম্পাদনা করুন",
+ "edit_faces": "মুখ সম্পাদনা করুন",
+ "edit_key": "কী সম্পাদনা করুন",
+ "edit_link": "লিংক সম্পাদনা করুন",
+ "edit_location": "অবস্থান সম্পাদনা করুন",
+ "edit_location_action_prompt": "{count}টি অবস্থান সম্পাদনা করা হয়েছে",
+ "edit_location_dialog_title": "অবস্থান",
+ "edit_name": "নাম সম্পাদনা করুন",
+ "edit_people": "ব্যক্তি সম্পাদনা করুন",
+ "edit_tag": "ট্যাগ সম্পাদনা করুন",
+ "edit_title": "শিরোনাম সম্পাদনা করুন",
+ "edit_user": "ব্যবহারকারী সম্পাদনা করুন",
+ "edit_workflow": "ওয়ার্কফ্লো সম্পাদনা করুন",
+ "editor": "এডিটর",
+ "editor_discard_edits_confirm": "সম্পাদনা বাতিল করুন",
+ "editor_discard_edits_prompt": "আপনার কিছু সম্পাদনা সংরক্ষিত হয়নি। আপনি কি নিশ্চিত যে আপনি সেগুলো বাতিল করতে চান?",
+ "editor_discard_edits_title": "সম্পাদনা বাতিল করবেন?",
+ "editor_edits_applied_error": "সম্পাদনা প্রয়োগ করা ব্যর্থ হয়েছে",
+ "editor_edits_applied_success": "সম্পাদনা সফলভাবে প্রয়োগ হয়েছে",
+ "editor_flip_horizontal": "অনুভূমিকভাবে ফ্লিপ করুন",
+ "editor_flip_vertical": "উলম্বভাবে ফ্লিপ করুন",
+ "editor_handle_corner": "{corner, select, top_left {উপরে-বামে} top_right {উপরে-ডানে} bottom_left {নিচে-বামে} bottom_right {নিচে-ডানে} other {একটি}} কোণ হ্যান্ডেল",
+ "editor_handle_edge": "{edge, select, top {উপরের} bottom {নিচের} left {বামের} right {ডানের} other {একটি}} প্রান্ত হ্যান্ডেল",
+ "editor_orientation": "ওরিয়েন্টেশন",
+ "editor_reset_all_changes": "পরিবর্তন রিসেট করুন",
+ "editor_rotate_left": "৯০° ঘড়ির কাঁটার বিপরীতে ঘোরান",
+ "editor_rotate_right": "৯০° ঘড়ির কাঁটার দিকে ঘোরান",
+ "email": "ইমেইল",
+ "email_notifications": "ইমেইল নোটিফিকেশন",
+ "empty_folder": "এই ফোল্ডারটি খালি",
+ "empty_trash": "ট্র্যাশ খালি করুন",
+ "empty_trash_confirmation": "আপনি কি নিশ্চিত যে আপনি ট্র্যাশ খালি করতে চান? এতে ট্র্যাশে থাকা সব অ্যাসেট Immich থেকে স্থায়ীভাবে মুছে যাবে।\nএই কাজটি পূর্বাবস্থায় ফেরানো যাবে না!",
+ "enable": "চালু করুন",
+ "enable_backup": "ব্যাকআপ চালু করুন",
+ "enable_biometric_auth_description": "বায়োমেট্রিক প্রমাণীকরণ চালু করতে আপনার পিন কোড লিখুন",
+ "enabled": "চালু আছে",
+ "end_date": "শেষ তারিখ",
+ "enqueued": "সারিতে যুক্ত হয়েছে",
+ "enter_wifi_name": "Wi-Fi নাম লিখুন",
+ "enter_your_pin_code": "আপনার পিন কোড লিখুন",
+ "enter_your_pin_code_subtitle": "লক করা ফোল্ডার অ্যাক্সেস করতে আপনার পিন কোড লিখুন",
+ "error": "ত্রুটি",
+ "error_delete_face": "অ্যাসেট থেকে মুখ মুছতে ত্রুটি হয়েছে",
+ "error_loading_albums": "অ্যালবাম লোড করতে ত্রুটি হয়েছে",
+ "error_loading_image": "ছবি লোড করতে ত্রুটি হয়েছে",
+ "error_loading_partners": "পার্টনার লোড করতে ত্রুটি: {error}",
+ "error_retrieving_asset_information": "অ্যাসেটের তথ্য আনতে ত্রুটি হয়েছে",
+ "error_saving_image": "ত্রুটি: {error}",
+ "error_tag_face_bounding_box": "মুখ ট্যাগ করতে ত্রুটি - বাউন্ডিং বক্সের স্থানাঙ্ক পাওয়া যায়নি",
+ "error_title": "ত্রুটি - কিছু একটা ভুল হয়েছে",
+ "error_while_navigating": "অ্যাসেটে যেতে ত্রুটি হয়েছে",
+ "errors": {
+ "cannot_navigate_next_asset": "পরবর্তী অ্যাসেটে যাওয়া যায়নি",
+ "cannot_navigate_previous_asset": "পূর্ববর্তী অ্যাসেটে যাওয়া যায়নি",
+ "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_search_people": "ব্যক্তি খুঁজে পাওয়া যায়নি",
+ "cant_search_places": "স্থান খুঁজে পাওয়া যায়নি",
+ "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_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_notifications": "নোটিফিকেশন লোড করা ব্যর্থ হয়েছে",
+ "failed_to_load_people": "ব্যক্তিদের তথ্য লোড করা ব্যর্থ হয়েছে",
+ "failed_to_remove_product_key": "প্রোডাক্ট কী সরানো ব্যর্থ হয়েছে",
+ "failed_to_reset_pin_code": "পিন কোড রিসেট করা ব্যর্থ হয়েছে",
+ "failed_to_stack_assets": "অ্যাসেট স্ট্যাক করা ব্যর্থ হয়েছে",
+ "failed_to_tag_assets": "অ্যাসেট ট্যাগ করা ব্যর্থ হয়েছে",
+ "failed_to_unstack_assets": "অ্যাসেট আনস্ট্যাক করা ব্যর্থ হয়েছে",
+ "failed_to_update_notification_status": "নোটিফিকেশনের অবস্থা আপডেট করা ব্যর্থ হয়েছে",
+ "incorrect_email_or_password": "ইমেইল অথবা পাসওয়ার্ড ভুল",
+ "library_folder_already_exists": "এই ইমপোর্ট পাথটি ইতিমধ্যে বিদ্যমান।",
+ "page_not_found": "পেজ খুঁজে পাওয়া যায়নি",
+ "paths_validation_failed": "{paths, plural, one {#টি পাথ} other {#টি পাথ}} যাচাই ব্যর্থ হয়েছে",
+ "profile_picture_transparent_pixels": "প্রোফাইল ছবিতে স্বচ্ছ (transparent) পিক্সেল থাকতে পারবে না। অনুগ্রহ করে জুম করুন এবং/অথবা ছবিটি সরান।",
+ "quota_higher_than_disk_size": "আপনি ডিস্কের আকারের চেয়ে বেশি কোটা নির্ধারণ করেছেন",
+ "something_went_wrong": "কিছু একটা ভুল হয়েছে",
+ "unable_to_add_album_users": "অ্যালবামে ব্যবহারকারী যোগ করা যায়নি",
+ "unable_to_add_assets_to_shared_link": "শেয়ার লিংকে অ্যাসেট যোগ করা যায়নি",
+ "unable_to_add_comment": "মন্তব্য যোগ করা যায়নি",
+ "unable_to_add_exclusion_pattern": "বর্জন প্যাটার্ন যোগ করা যায়নি",
+ "unable_to_add_partners": "পার্টনার যোগ করা যায়নি",
+ "unable_to_add_remove_archive": "আর্কাইভ {archived, select, true {থেকে অ্যাসেট সরানো} other {তে অ্যাসেট যোগ করা}} যায়নি",
+ "unable_to_add_remove_favorites": "ফেভারিট {favorite, select, true {তে অ্যাসেট যোগ করা} other {থেকে অ্যাসেট সরানো}} যায়নি",
+ "unable_to_archive_unarchive": "{archived, select, true {আর্কাইভ করা} other {আর্কাইভ থেকে বের করা}} যায়নি",
+ "unable_to_change_album_user_role": "অ্যালবাম ব্যবহারকারীর ভূমিকা পরিবর্তন করা যায়নি",
+ "unable_to_change_date": "তারিখ পরিবর্তন করা যায়নি",
+ "unable_to_change_description": "বিবরণ পরিবর্তন করা যায়নি",
+ "unable_to_change_favorite": "অ্যাসেটের ফেভারিট পরিবর্তন করা যায়নি",
+ "unable_to_change_location": "অবস্থান পরিবর্তন করা যায়নি",
+ "unable_to_change_password": "পাসওয়ার্ড পরিবর্তন করা যায়নি",
+ "unable_to_change_visibility": "{count, plural, one {#জন ব্যক্তির} other {#জন ব্যক্তির}} দৃশ্যমানতা পরিবর্তন করা যায়নি",
+ "unable_to_complete_oauth_login": "OAuth লগইন সম্পন্ন করা যায়নি",
+ "unable_to_connect": "সংযোগ করা যায়নি",
+ "unable_to_copy_to_clipboard": "ক্লিপবোর্ডে কপি করা যায়নি, নিশ্চিত করুন যে আপনি https এর মাধ্যমে পেজটি অ্যাক্সেস করছেন",
+ "unable_to_create": "ওয়ার্কফ্লো তৈরি করা যায়নি",
+ "unable_to_create_admin_account": "অ্যাডমিন অ্যাকাউন্ট তৈরি করা যায়নি",
+ "unable_to_create_api_key": "নতুন API কী তৈরি করা যায়নি",
+ "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_shared_link": "শেয়ার লিংক মুছে ফেলা যায়নি",
+ "unable_to_delete_user": "ব্যবহারকারী মুছে ফেলা যায়নি",
+ "unable_to_delete_workflow": "ওয়ার্কফ্লো মুছে ফেলা যায়নি",
+ "unable_to_download_files": "ফাইল ডাউনলোড করা যায়নি",
+ "unable_to_edit_exclusion_pattern": "বর্জন প্যাটার্ন সম্পাদনা করা যায়নি",
+ "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_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 কী সরানো যায়নি",
+ "unable_to_remove_assets_from_shared_link": "শেয়ার লিংক থেকে অ্যাসেট সরানো যায়নি",
+ "unable_to_remove_library": "লাইব্রেরি সরানো যায়নি",
+ "unable_to_remove_partner": "পার্টনার সরানো যায়নি",
+ "unable_to_remove_reaction": "রিঅ্যাকশন সরানো যায়নি",
+ "unable_to_reset_password": "পাসওয়ার্ড রিসেট করা যায়নি",
+ "unable_to_reset_pin_code": "পিন কোড রিসেট করা যায়নি",
+ "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 কী সংরক্ষণ করা যায়নি",
+ "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_set_rating": "রেটিং নির্ধারণ করা যায়নি",
+ "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_workflow": "ওয়ার্কফ্লো আপডেট করা যায়নি",
+ "unable_to_upload_file": "ফাইল আপলোড করা যায়নি"
+ },
+ "errors_text": "ত্রুটিসমূহ",
+ "exclusion_pattern": "বর্জন প্যাটার্ন",
+ "exif": "Exif",
+ "exif_bottom_sheet_description": "বিবরণ যোগ করুন..।",
+ "exif_bottom_sheet_description_error": "বিবরণ আপডেট করতে ত্রুটি হয়েছে",
+ "exif_bottom_sheet_no_description": "কোনো বিবরণ নেই",
+ "exit_slideshow": "স্লাইডশো থেকে বের হন",
+ "expand": "সম্প্রসারণ করুন",
+ "expand_all": "সব সম্প্রসারণ করুন",
+ "expire_after": "মেয়াদ শেষ হবে",
+ "expired": "মেয়াদ শেষ",
+ "expires_date": "মেয়াদ শেষ হবে {date}",
+ "explore": "অন্বেষণ",
+ "explorer": "এক্সপ্লোরার",
+ "export": "এক্সপোর্ট",
+ "export_as_json": "JSON হিসেবে এক্সপোর্ট করুন",
+ "export_database": "ডেটাবেস এক্সপোর্ট করুন",
+ "export_database_description": "SQLite ডেটাবেস এক্সপোর্ট করুন",
+ "exposure_time": "এক্সপোজার সময়",
+ "extension": "এক্সটেনশন",
+ "external": "বাহ্যিক",
+ "external_libraries": "বাহ্যিক লাইব্রেরি",
+ "external_network": "বাহ্যিক নেটওয়ার্ক",
+ "external_network_sheet_info": "পছন্দের Wi-Fi নেটওয়ার্কে না থাকলে, অ্যাপটি নিচের URL-গুলোর মধ্যে থেকে উপরে থেকে নিচে ক্রমানুসারে প্রথম যেটিতে পৌঁছাতে পারে তার মাধ্যমে সার্ভারের সাথে সংযুক্ত হবে",
+ "f_number": "এফ-নাম্বার",
+ "face_unassigned": "অনির্ধারিত",
+ "failed": "ব্যর্থ",
+ "failed_count": "ব্যর্থ: {count}",
+ "failed_to_authenticate": "প্রমাণীকরণ ব্যর্থ হয়েছে",
+ "failed_to_delete_file": "ফাইল মুছতে ব্যর্থ হয়েছে",
+ "failed_to_load_assets": "অ্যাসেট লোড করতে ব্যর্থ হয়েছে",
+ "failed_to_load_folder": "ফোল্ডার লোড করতে ব্যর্থ হয়েছে",
+ "favorite": "ফেভারিট",
+ "favorite_action_prompt": "{count}টি ফেভারিটে যোগ করা হয়েছে",
+ "favorite_or_unfavorite_photo": "ছবি ফেভারিট করুন বা ফেভারিট থেকে বাদ দিন",
+ "favorites": "ফেভারিট",
+ "feature_photo_updated": "ফিচার ছবি আপডেট হয়েছে",
+ "features": "ফিচার",
+ "features_setting_description": "অ্যাপ ফিচার পরিচালনা করুন",
+ "file_name_or_extension": "ফাইলের নাম বা এক্সটেনশন",
+ "file_name_text": "ফাইলের নাম",
+ "file_size": "ফাইলের আকার",
+ "filename": "ফাইলের নাম",
+ "filetype": "ফাইলের ধরন",
+ "filter": "ফিল্টার",
+ "filter_people": "ব্যক্তি ফিল্টার করুন",
+ "filter_places": "স্থান ফিল্টার করুন",
+ "filter_tags": "ট্যাগ ফিল্টার করুন",
+ "filters": "ফিল্টার",
+ "first": "প্রথম",
+ "fix_incorrect_match": "ভুল মিল ঠিক করুন",
+ "focal_length": "ফোকাল লেন্থ",
+ "folder": "ফোল্ডার",
+ "folder_not_found": "ফোল্ডার পাওয়া যায়নি",
+ "folders": "ফোল্ডার",
+ "folders_feature_description": "ফাইল সিস্টেমে থাকা ছবি ও ভিডিওর জন্য ফোল্ডার ভিউ ব্রাউজ করা",
+ "forgot_pin_code_question": "আপনার পিন ভুলে গেছেন?",
+ "forward": "ফরওয়ার্ড",
+ "free_up_space": "স্পেস খালি করুন",
+ "free_up_space_description": "স্পেস খালি করতে ব্যাকআপ করা ছবি ও ভিডিও আপনার ডিভাইসের ট্র্যাশে সরান। সার্ভারে থাকা আপনার কপিগুলো নিরাপদ থাকবে।",
+ "free_up_space_settings_subtitle": "ডিভাইসের সংরক্ষণাগার খালি করুন",
+ "full_path": "সম্পূর্ণ পাথ: {path}",
+ "full_path_or_folder": "সম্পূর্ণ পাথ বা ফোল্ডার",
+ "gcast_enabled": "Google Cast",
+ "gcast_enabled_description": "এই ফিচারটি কাজ করার জন্য Google থেকে বাহ্যিক রিসোর্স লোড করে।",
+ "general": "সাধারণ",
+ "geolocation_instruction_location": "GPS স্থানাঙ্কযুক্ত কোনো অ্যাসেটে ক্লিক করুন এর অবস্থান ব্যবহার করতে, অথবা মানচিত্র থেকে সরাসরি একটি অবস্থান নির্বাচন করুন",
+ "get_help": "সহায়তা নিন",
+ "get_people_error": "ব্যক্তিদের তথ্য পেতে ত্রুটি হয়েছে",
+ "get_wifiname_error": "Wi-Fi নাম পাওয়া যায়নি। নিশ্চিত করুন যে আপনি প্রয়োজনীয় অনুমতি দিয়েছেন এবং একটি Wi-Fi নেটওয়ার্কের সাথে সংযুক্ত আছেন",
+ "getting_started": "শুরু করা যাক",
+ "go_back": "ফিরে যান",
+ "go_to_folder": "ফোল্ডারে যান",
+ "go_to_search": "অনুসন্ধানে যান",
+ "gps": "GPS",
+ "gps_missing": "GPS নেই",
+ "grant_permission": "অনুমতি দিন",
+ "group_albums_by": "অ্যালবাম গ্রুপ করুন..।",
+ "group_country": "দেশ অনুযায়ী গ্রুপ করুন",
+ "group_no": "কোনো গ্রুপিং নেই",
+ "group_owner": "মালিক অনুযায়ী গ্রুপ করুন",
+ "group_places_by": "স্থান গ্রুপ করুন..।",
+ "group_year": "বছর অনুযায়ী গ্রুপ করুন",
+ "haptic_feedback_title": "হ্যাপটিক ফিডব্যাক",
+ "has_quota": "কোটা আছে",
+ "hash_asset": "অ্যাসেট হ্যাশ করুন",
+ "hashed_assets": "হ্যাশ করা অ্যাসেট",
+ "hashing": "হ্যাশিং হচ্ছে",
+ "header_settings_add_header_tip": "হেডার যোগ করুন",
+ "header_settings_field_validator_msg": "মান খালি রাখা যাবে না",
+ "header_settings_header_name_input": "হেডারের নাম",
+ "header_settings_header_value_input": "হেডারের মান",
+ "headers_settings_tile_title": "কাস্টম প্রক্সি হেডার",
+ "height": "উচ্চতা",
+ "hi_user": "হাই {name} ({email})",
+ "hide_all_people": "সব ব্যক্তি লুকান",
+ "hide_gallery": "গ্যালারি লুকান",
+ "hide_named_person": "{name} ব্যক্তিকে লুকান",
+ "hide_password": "পাসওয়ার্ড লুকান",
+ "hide_person": "ব্যক্তি লুকান",
+ "hide_schema": "স্কিমা লুকান",
+ "hide_text_recognition": "টেক্সট রিকগনিশন লুকান",
+ "hide_unnamed_people": "নাম দেওয়া হয়নি এমন ব্যক্তি লুকান",
+ "home_page_building_timeline": "টাইমলাইন তৈরি হচ্ছে",
+ "host": "হোস্ট",
+ "hour": "ঘণ্টা",
+ "hours": "ঘণ্টা",
+ "id": "ID",
+ "idle": "নিষ্ক্রিয়",
+ "image": "ছবি",
+ "image_alt_text_date": "{date}-এ তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
+ "image_alt_text_date_1_person": "{person1}-এর সাথে {date}-এ তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
+ "image_alt_text_date_2_people": "{person1} এবং {person2}-এর সাথে {date}-এ তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
+ "image_alt_text_date_3_people": "{person1}, {person2}, এবং {person3}-এর সাথে {date}-এ তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
+ "image_alt_text_date_4_or_more_people": "{person1}, {person2}, এবং আরও {additionalCount, number} জনের সাথে {date}-এ তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
+ "image_alt_text_date_place": "{city}, {country}-এ {date} তারিখে তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
+ "image_alt_text_date_place_1_person": "{city}, {country}-এ {person1}-এর সাথে {date} তারিখে তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
+ "image_alt_text_date_place_2_people": "{city}, {country}-এ {person1} এবং {person2}-এর সাথে {date} তারিখে তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
+ "image_alt_text_date_place_3_people": "{city}, {country}-এ {person1}, {person2}, এবং {person3}-এর সাথে {date} তারিখে তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
+ "image_alt_text_date_place_4_or_more_people": "{city}, {country}-এ {person1}, {person2}, এবং আরও {additionalCount, number} জনের সাথে {date} তারিখে তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
+ "immich_logo": "Immich লোগো",
+ "immich_web_interface": "Immich ওয়েব ইন্টারফেস",
+ "import_from_json": "JSON থেকে ইমপোর্ট করুন",
+ "import_path": "ইমপোর্ট পাথ",
+ "in_albums": "{count, plural, one {#টি অ্যালবামে} other {#টি অ্যালবামে}}",
+ "in_archive": "আর্কাইভে",
+ "in_year": "{year}-এ",
+ "in_year_selector": "মধ্যে",
+ "include_archived": "আর্কাইভ অন্তর্ভুক্ত করুন",
+ "include_shared_albums": "শেয়ার করা অ্যালবাম অন্তর্ভুক্ত করুন",
+ "include_shared_partner_assets": "শেয়ার করা পার্টনার অ্যাসেট অন্তর্ভুক্ত করুন",
+ "individual_share": "ব্যক্তিগত শেয়ার",
+ "individual_shares": "ব্যক্তিগত শেয়ারসমূহ",
+ "info": "তথ্য",
+ "integrity_checks": "ইন্টিগ্রিটি চেক",
+ "interval": {
+ "day_at_onepm": "প্রতিদিন দুপুর ১টায়",
+ "hours": "প্রতি {hours, plural, one {ঘণ্টা} other {{hours, number} ঘণ্টা}}",
+ "night_at_midnight": "প্রতি রাতে মধ্যরাতে",
+ "night_at_twoam": "প্রতি রাতে ২টায়"
+ },
+ "invalid_date": "অবৈধ তারিখ",
+ "invalid_date_format": "অবৈধ তারিখের ফরম্যাট",
+ "invite_people": "ব্যক্তিদের আমন্ত্রণ জানান",
+ "invite_to_album": "অ্যালবামে আমন্ত্রণ জানান",
+ "iso": "ISO",
+ "items_count": "{count, plural, one {#টি আইটেম} other {#টি আইটেম}}",
+ "jobs": "জব",
+ "keep": "রাখুন",
+ "keep_albums": "অ্যালবাম রাখুন",
+ "keep_albums_count": "{count}টি {count, plural, one {অ্যালবাম} other {অ্যালবাম}} রাখা হচ্ছে",
+ "keep_all": "সব রাখুন",
+ "keep_description": "স্পেস খালি করার সময় আপনার ডিভাইসে কী থাকবে তা নির্বাচন করুন।",
+ "keep_favorites": "ফেভারিট রাখুন",
+ "keep_on_device": "ডিভাইসে রাখুন",
+ "keep_on_device_hint": "এই ডিভাইসে রাখার জন্য আইটেম নির্বাচন করুন",
+ "keep_this_delete_others": "এটি রাখুন, বাকিগুলো মুছুন",
+ "keeping": "রাখা হচ্ছে: {items}",
+ "kept_this_deleted_others": "এই অ্যাসেটটি রাখা হয়েছে এবং {count, plural, one {#টি অ্যাসেট} other {#টি অ্যাসেট}} মুছে ফেলা হয়েছে",
+ "keyboard_shortcuts": "কীবোর্ড শর্টকাট",
+ "language": "ভাষা",
+ "language_no_results_subtitle": "আপনার অনুসন্ধানের শব্দটি পরিবর্তন করে দেখুন",
+ "language_no_results_title": "কোনো ভাষা পাওয়া যায়নি",
+ "language_search_hint": "ভাষা অনুসন্ধান করুন..।",
+ "language_setting_description": "আপনার পছন্দের ভাষা নির্বাচন করুন",
+ "large_files": "বড় ফাইল",
+ "last": "শেষ",
+ "last_months": "{count, plural, one {গত মাস} other {গত #মাস}}",
+ "last_seen": "সর্বশেষ দেখা",
+ "latest_version": "সর্বশেষ ভার্সন",
+ "latitude": "অক্ষাংশ",
+ "leave": "ত্যাগ করুন",
+ "leave_album": "অ্যালবাম ত্যাগ করুন",
+ "lens_model": "লেন্স মডেল",
+ "less": "কম",
+ "let_others_respond": "অন্যদের সাড়া দিতে দিন",
+ "level": "স্তর",
+ "library": "লাইব্রেরি",
+ "library_add_folder": "ফোল্ডার যোগ করুন",
+ "library_edit_folder": "ফোল্ডার সম্পাদনা করুন",
+ "library_page_sort_asset_count": "অ্যাসেটের সংখ্যা",
+ "library_page_sort_created": "তৈরির তারিখ",
+ "library_page_sort_last_modified": "সর্বশেষ পরিবর্তিত",
+ "library_page_sort_title": "অ্যালবামের শিরোনাম",
+ "licenses": "লাইসেন্স",
+ "light": "লাইট",
+ "light_theme": "লাইট থিমে পরিবর্তন করুন",
+ "like": "লাইক",
+ "like_deleted": "লাইক মুছে ফেলা হয়েছে",
+ "link": "লিংক",
+ "link_motion_video": "মোশন ভিডিও লিংক করুন",
+ "link_to_docs": "আরও তথ্যের জন্য, ডকুমেন্টেশন দেখুন।",
+ "link_to_oauth": "OAuth-এ লিংক করুন",
+ "linked_oauth_account": "লিংক করা OAuth অ্যাকাউন্ট",
+ "list": "তালিকা",
+ "live": "লাইভ",
+ "load_more": "আরও লোড করুন",
+ "loading": "লোড হচ্ছে",
+ "loading_search_results_failed": "অনুসন্ধানের ফলাফল লোড করা ব্যর্থ হয়েছে",
+ "local": "স্থানীয়",
+ "local_asset_cast_failed": "সার্ভারে আপলোড করা হয়নি এমন অ্যাসেট কাস্ট করা যায়নি",
+ "local_assets": "স্থানীয় অ্যাসেট",
+ "local_id": "স্থানীয় ID",
+ "local_media_summary": "স্থানীয় মিডিয়া সারসংক্ষেপ",
+ "local_network": "স্থানীয় নেটওয়ার্ক",
+ "local_network_sheet_info": "নির্দিষ্ট Wi-Fi নেটওয়ার্ক ব্যবহার করার সময় অ্যাপটি এই URL-এর মাধ্যমে সার্ভারের সাথে সংযুক্ত হবে",
+ "location": "অবস্থান",
+ "location_permission": "অবস্থানের অনুমতি",
+ "location_permission_content": "অটো-সুইচিং ফিচার ব্যবহার করার জন্য, Immich-এর নির্ভুল অবস্থানের অনুমতি প্রয়োজন যাতে এটি বর্তমান Wi-Fi নেটওয়ার্কের নাম পড়তে পারে",
+ "location_picker_choose_on_map": "মানচিত্রে নির্বাচন করুন",
+ "location_picker_latitude_error": "একটি বৈধ অক্ষাংশ লিখুন",
+ "location_picker_latitude_hint": "এখানে আপনার অক্ষাংশ লিখুন",
+ "location_picker_longitude_error": "একটি বৈধ দ্রাঘিমাংশ লিখুন",
+ "location_picker_longitude_hint": "এখানে আপনার দ্রাঘিমাংশ লিখুন",
+ "lock": "লক",
+ "locked_folder": "লক করা ফোল্ডার",
+ "log_detail_title": "লগ বিস্তারিত",
+ "log_out": "লগ আউট",
+ "log_out_all_devices": "সব ডিভাইস থেকে লগ আউট করুন",
+ "logged_in_as": "{user} হিসেবে লগ ইন করা আছে",
+ "logged_out_all_devices": "সব ডিভাইস থেকে লগ আউট করা হয়েছে",
+ "logged_out_device": "ডিভাইস থেকে লগ আউট করা হয়েছে",
+ "login": "লগইন",
+ "login_disabled": "লগইন নিষ্ক্রিয় করা হয়েছে",
+ "login_form_api_exception": "API ব্যতিক্রম ঘটেছে। অনুগ্রহ করে সার্ভার URL যাচাই করে আবার চেষ্টা করুন।",
+ "login_form_email_hint": "youremail@email.com",
+ "login_form_endpoint_hint": "http://your-server-ip:port",
+ "login_form_endpoint_url": "সার্ভার এন্ডপয়েন্ট URL",
+ "login_form_err_invalid_email": "অবৈধ ইমেইল",
+ "login_form_err_invalid_url": "অবৈধ URL",
+ "login_form_err_leading_whitespace": "শুরুতে অতিরিক্ত স্পেস",
+ "login_form_err_trailing_whitespace": "শেষে অতিরিক্ত স্পেস",
+ "login_form_failed_get_oauth_server_config": "OAuth ব্যবহার করে লগইন করতে ত্রুটি হয়েছে, সার্ভার URL যাচাই করুন",
+ "login_form_failed_get_oauth_server_disable": "এই সার্ভারে OAuth ফিচার উপলব্ধ নেই",
+ "login_form_failed_login": "লগইন করতে ত্রুটি হয়েছে, সার্ভার URL, ইমেইল এবং পাসওয়ার্ড যাচাই করুন",
+ "login_form_handshake_exception": "সার্ভারের সাথে একটি হ্যান্ডশেক ব্যতিক্রম ঘটেছে। আপনি সেলফ-সাইনড সার্টিফিকেট ব্যবহার করলে সেটিংসে সেলফ-সাইনড সার্টিফিকেট সাপোর্ট চালু করুন।",
+ "login_form_password_hint": "পাসওয়ার্ড",
+ "login_form_server_empty": "একটি সার্ভার URL লিখুন",
+ "login_form_server_error": "সার্ভারের সাথে সংযোগ করা যায়নি",
+ "login_has_been_disabled": "লগইন নিষ্ক্রিয় করা হয়েছে",
+ "login_password_changed_error": "আপনার পাসওয়ার্ড আপডেট করতে একটি ত্রুটি হয়েছে",
+ "login_password_changed_success": "পাসওয়ার্ড সফলভাবে আপডেট হয়েছে",
+ "logout_all_device_confirmation": "আপনি কি নিশ্চিত যে আপনি সব ডিভাইস থেকে লগ আউট করতে চান?",
+ "logout_this_device_confirmation": "আপনি কি নিশ্চিত যে আপনি এই ডিভাইস থেকে লগ আউট করতে চান?",
+ "logs": "লগসমূহ",
+ "longitude": "দ্রাঘিমাংশ",
+ "look": "দেখুন",
+ "loop_videos": "ভিডিও লুপ করুন",
+ "loop_videos_description": "ডিটেইল ভিউয়ারে স্বয়ংক্রিয়ভাবে ভিডিও লুপ করতে চালু করুন।",
+ "main_branch_warning": "আপনি একটি ডেভেলপমেন্ট ভার্সন ব্যবহার করছেন; আমরা দৃঢ়ভাবে একটি রিলিজ ভার্সন ব্যবহার করার পরামর্শ দিচ্ছি!",
+ "main_menu": "প্রধান মেনু",
+ "maintenance_action_restore": "ডেটাবেস পুনরুদ্ধার করা হচ্ছে",
+ "maintenance_description": "Immich-কে মেইনটেন্যান্স মোডে রাখা হয়েছে।",
+ "maintenance_end": "মেইনটেন্যান্স মোড শেষ করুন",
+ "maintenance_logged_in_as": "বর্তমানে {user} হিসেবে লগ ইন করা আছে",
+ "maintenance_restore_from_backup": "ব্যাকআপ থেকে পুনরুদ্ধার করুন",
+ "maintenance_restore_library": "আপনার লাইব্রেরি পুনরুদ্ধার করুন",
+ "maintenance_restore_library_confirm": "এটি সঠিক মনে হলে, ব্যাকআপ পুনরুদ্ধার চালিয়ে যান!",
+ "maintenance_restore_library_description": "ডেটাবেস পুনরুদ্ধার করা হচ্ছে",
+ "maintenance_restore_library_folder_has_files": "{folder}-এ {count}টি ফোল্ডার আছে",
+ "maintenance_restore_library_folder_no_files": "{folder}-এ ফাইল অনুপস্থিত!",
+ "maintenance_restore_library_folder_pass": "পঠনযোগ্য এবং লেখনযোগ্য",
+ "maintenance_restore_library_folder_read_fail": "পঠনযোগ্য নয়",
+ "maintenance_restore_library_folder_write_fail": "লেখনযোগ্য নয়",
+ "maintenance_restore_library_hint_missing_files": "আপনার গুরুত্বপূর্ণ ফাইল অনুপস্থিত থাকতে পারে",
+ "maintenance_restore_library_hint_regenerate_later": "আপনি পরবর্তীতে সেটিংসে গিয়ে এগুলো পুনরায় তৈরি করতে পারবেন",
+ "maintenance_restore_library_hint_storage_template_missing_files": "স্টোরেজ টেমপ্লেট ব্যবহার করছেন? আপনার ফাইল অনুপস্থিত থাকতে পারে",
+ "maintenance_restore_library_loading": "ইন্টিগ্রিটি চেক এবং হিউরিস্টিক লোড হচ্ছে…",
+ "maintenance_task_backup": "বিদ্যমান ডেটাবেসের একটি ব্যাকআপ তৈরি করা হচ্ছে…",
+ "maintenance_task_migrations": "ডেটাবেস মাইগ্রেশন চালানো হচ্ছে…",
+ "maintenance_task_restore": "নির্বাচিত ব্যাকআপ পুনরুদ্ধার করা হচ্ছে…",
+ "maintenance_task_rollback": "পুনরুদ্ধার ব্যর্থ হয়েছে, পুনরুদ্ধার পয়েন্টে ফিরিয়ে নেওয়া হচ্ছে…",
+ "maintenance_title": "সাময়িকভাবে অনুপলব্ধ",
+ "make": "নির্মাতা",
+ "manage_geolocation": "অবস্থান পরিচালনা করুন",
+ "manage_media_access_rationale": "অ্যাসেট ট্র্যাশে সরানো এবং সেখান থেকে পুনরুদ্ধার করার সঠিক ব্যবস্থাপনার জন্য এই অনুমতি প্রয়োজন।",
+ "manage_media_access_settings": "সেটিংস খুলুন",
+ "manage_media_access_subtitle": "Immich অ্যাপকে মিডিয়া ফাইল পরিচালনা ও স্থানান্তর করার অনুমতি দিন।",
+ "manage_media_access_title": "মিডিয়া ব্যবস্থাপনা অ্যাক্সেস",
+ "manage_sharing_with_partners": "পার্টনারদের সাথে শেয়ারিং পরিচালনা করুন",
+ "manage_the_app_settings": "অ্যাপ সেটিংস পরিচালনা করুন",
+ "manage_your_account": "আপনার অ্যাকাউন্ট পরিচালনা করুন",
+ "manage_your_api_keys": "আপনার API কী পরিচালনা করুন",
+ "manage_your_devices": "আপনার লগ-ইন করা ডিভাইসগুলো পরিচালনা করুন",
+ "manage_your_oauth_connection": "আপনার OAuth সংযোগ পরিচালনা করুন",
+ "map": "মানচিত্র",
+ "map_cannot_get_user_location": "ব্যবহারকারীর অবস্থান পাওয়া যায়নি",
+ "map_location_picker_page_use_location": "এই অবস্থান ব্যবহার করুন",
+ "map_location_service_disabled_content": "আপনার বর্তমান অবস্থান থেকে অ্যাসেট দেখাতে লোকেশন সার্ভিস চালু করা প্রয়োজন। আপনি কি এখন এটি চালু করতে চান?",
+ "map_location_service_disabled_title": "লোকেশন সার্ভিস নিষ্ক্রিয়",
+ "map_marker_for_image": "{city}, {country}-এ তোলা ছবির জন্য মানচিত্র মার্কার",
+ "map_marker_with_image": "ছবিসহ মানচিত্র মার্কার",
+ "map_no_location_permission_content": "আপনার বর্তমান অবস্থান থেকে অ্যাসেট দেখাতে অবস্থানের অনুমতি প্রয়োজন। আপনি কি এখন এটি অনুমতি দিতে চান?",
+ "map_no_location_permission_title": "অবস্থানের অনুমতি প্রত্যাখ্যাত",
+ "map_settings": "মানচিত্র সেটিংস",
+ "map_settings_dark_mode": "ডার্ক মোড",
+ "map_settings_date_range_option_day": "গত ২৪ ঘণ্টা",
+ "map_settings_date_range_option_days": "গত {days} দিন",
+ "map_settings_date_range_option_year": "গত বছর",
+ "map_settings_date_range_option_years": "গত {years} বছর",
+ "map_settings_include_show_archived": "আর্কাইভ অন্তর্ভুক্ত করুন",
+ "map_settings_include_show_partners": "পার্টনার অন্তর্ভুক্ত করুন",
+ "map_settings_only_show_favorites": "শুধুমাত্র ফেভারিট দেখান",
+ "map_settings_theme_settings": "মানচিত্র থিম",
+ "mark_all_as_read": "সব পঠিত হিসেবে চিহ্নিত করুন",
+ "marked_all_as_read": "সব পঠিত হিসেবে চিহ্নিত করা হয়েছে",
+ "matches": "মিল",
+ "matching_assets": "মিলে যাওয়া অ্যাসেট",
+ "media_chrome": {
+ "auto": "স্বয়ংক্রিয়",
+ "captions": "ক্যাপশন",
+ "captions_off": "বন্ধ",
+ "closed_captions": "ক্লোজড ক্যাপশন",
+ "decode_error": "ডিকোড ত্রুটি",
+ "disable_captions": "ক্যাপশন নিষ্ক্রিয় করুন",
+ "enable_captions": "ক্যাপশন চালু করুন",
+ "enter_fullscreen_mode": "ফুলস্ক্রিন মোডে প্রবেশ করুন",
+ "exit_fullscreen_mode": "ফুলস্ক্রিন মোড থেকে বের হন",
+ "loop": "লুপ",
+ "media_error_description": "একটি মিডিয়া ত্রুটির কারণে প্লেব্যাক বন্ধ হয়ে গেছে। মিডিয়াটি নষ্ট হতে পারে অথবা আপনার ব্রাউজার এই ফরম্যাট সমর্থন করে না।",
+ "media_loading": "মিডিয়া লোড হচ্ছে",
+ "mute": "মিউট",
+ "network_error": "নেটওয়ার্ক ত্রুটি",
+ "network_error_description": "একটি নেটওয়ার্ক ত্রুটির কারণে মিডিয়া ডাউনলোড ব্যর্থ হয়েছে।",
+ "not_supported_error": "সোর্স সমর্থিত নয়",
+ "playback_rate": "প্লেব্যাক রেট",
+ "playback_rate_current": "বর্তমান প্লেব্যাক রেট",
+ "playback_rate_value": "প্লেব্যাক রেট {playbackRate}",
+ "playback_time": "প্লেব্যাক সময়",
+ "quality": "মান",
+ "second": "সেকেন্ড",
+ "seconds": "সেকেন্ড",
+ "time_value_of_total_time": "{totalTime}-এর মধ্যে {currentTime}",
+ "time_value_remaining": "{time} বাকি",
+ "unmute": "আনমিউট",
+ "unsupported_error_description": "একটি অসমর্থিত ত্রুটি ঘটেছে। সার্ভার বা নেটওয়ার্ক ব্যর্থ হয়েছে, অথবা আপনার ব্রাউজার এই ফরম্যাট সমর্থন করে না।",
+ "video_not_loaded_unknown_time": "ভিডিও লোড হয়নি, সময় অজানা।",
+ "video_player": "ভিডিও প্লেয়ার",
+ "volume": "ভলিউম"
+ },
+ "media_type": "মিডিয়ার ধরন",
+ "memories": "স্মৃতি",
+ "memories_all_caught_up": "সব দেখা হয়ে গেছে",
+ "memories_check_back_tomorrow": "আরও স্মৃতির জন্য আগামীকাল আবার দেখুন",
+ "memories_setting_description": "আপনার স্মৃতিতে কী দেখবেন তা পরিচালনা করুন",
+ "memories_start_over": "নতুন করে শুরু করুন",
+ "memories_swipe_to_close": "বন্ধ করতে উপরে সোয়াইপ করুন",
+ "memory": "স্মৃতি",
+ "memory_lane_title": "মেমোরি লেন {title}",
+ "menu": "মেনু",
+ "merge": "একত্র করুন",
+ "merge_people": "ব্যক্তিদের একত্র করুন",
+ "merge_people_limit": "আপনি একবারে সর্বোচ্চ ৫টি মুখ একত্র করতে পারবেন",
+ "merge_people_prompt": "আপনি কি এই ব্যক্তিদের একত্র করতে চান? এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না।",
+ "merge_people_successfully": "ব্যক্তিরা সফলভাবে একত্র হয়েছে",
+ "merged_people_count": "{count, plural, one {#জন ব্যক্তি} other {#জন ব্যক্তি}} একত্র করা হয়েছে",
+ "minFaces": "সর্বনিম্ন মুখ",
+ "minFaces_description": "একজন ব্যক্তিকে প্রদর্শনের জন্য স্বীকৃত মুখের সর্বনিম্ন সংখ্যা",
+ "minimize": "ছোট করুন",
+ "minute": "মিনিট",
+ "minutes": "মিনিট",
+ "missing": "অনুপস্থিত",
+ "mobile_app": "মোবাইল অ্যাপ",
+ "mobile_app_download_onboarding_note": "নিচের অপশনগুলো ব্যবহার করে সহযোগী মোবাইল অ্যাপটি ডাউনলোড করুন",
+ "model": "মডেল",
+ "modify_date": "পরিবর্তনের তারিখ",
+ "month": "মাস",
+ "more": "আরও",
+ "motion": "মোশন",
+ "move": "সরান",
+ "move_off_locked_folder": "লক করা ফোল্ডার থেকে সরান",
+ "move_to": "এখানে সরান",
+ "move_to_device_trash": "ডিভাইসের ট্র্যাশে সরান",
+ "move_to_lock_folder_action_prompt": "{count}টি লক করা ফোল্ডারে যোগ করা হয়েছে",
+ "move_to_locked_folder": "লক করা ফোল্ডারে সরান",
+ "move_to_locked_folder_confirmation": "এই ছবি ও ভিডিও সব অ্যালবাম থেকে সরানো হবে এবং শুধুমাত্র লক করা ফোল্ডার থেকে দেখা যাবে",
+ "moved_to_trash": "ট্র্যাশে সরানো হয়েছে",
+ "mute_memories": "স্মৃতি মিউট করুন",
+ "my_albums": "আমার অ্যালবাম",
+ "my_immich_description": "বর্তমান পেজটি My Immich লিংক হিসেবে কপি করুন",
+ "my_immich_title": "My Immich লিংক",
+ "name": "নাম",
+ "name_or_nickname": "নাম বা ডাকনাম",
+ "name_required": "নাম আবশ্যক",
+ "navigate": "নেভিগেট করুন",
+ "navigate_to_time": "নির্দিষ্ট সময়ে যান",
+ "network_requirement_photos_upload": "ছবি ব্যাকআপ করতে সেলুলার ডেটা ব্যবহার করুন",
+ "network_requirement_videos_upload": "ভিডিও ব্যাকআপ করতে সেলুলার ডেটা ব্যবহার করুন",
+ "network_requirements": "নেটওয়ার্ক প্রয়োজনীয়তা",
+ "network_requirements_updated": "নেটওয়ার্ক প্রয়োজনীয়তা পরিবর্তিত হয়েছে, ব্যাকআপ সারি রিসেট করা হচ্ছে",
+ "networking_settings": "নেটওয়ার্কিং",
+ "networking_subtitle": "সার্ভার এন্ডপয়েন্ট সেটিংস পরিচালনা করুন",
+ "never": "কখনো না",
+ "new_album": "নতুন অ্যালবাম",
+ "new_api_key": "নতুন API কী",
+ "new_feature": "নতুন ফিচার",
+ "new_password": "নতুন পাসওয়ার্ড",
+ "new_person": "নতুন ব্যক্তি",
+ "new_pin_code": "নতুন পিন কোড",
+ "new_pin_code_subtitle": "এটি আপনার লক করা ফোল্ডারে প্রথমবার প্রবেশ। এই পেজ নিরাপদে অ্যাক্সেস করতে একটি পিন কোড তৈরি করুন",
+ "new_update": "নতুন আপডেট",
+ "new_user_created": "নতুন ব্যবহারকারী তৈরি হয়েছে",
+ "new_version_available": "নতুন ভার্সন উপলব্ধ",
+ "newest_first": "সর্বপ্রথম সাম্প্রতিক",
+ "next": "পরবর্তী",
+ "next_memory": "পরবর্তী স্মৃতি",
+ "no": "না",
+ "no_albums_found": "কোনো অ্যালবাম পাওয়া যায়নি",
+ "no_albums_message": "আপনার ছবি ও ভিডিও গোছাতে একটি অ্যালবাম তৈরি করুন",
+ "no_albums_with_name_yet": "মনে হচ্ছে আপনার এই নামে এখনো কোনো অ্যালবাম নেই।",
+ "no_albums_yet": "মনে হচ্ছে আপনার এখনো কোনো অ্যালবাম নেই।",
+ "no_archived_assets_message": "ছবি ও ভিডিও লুকাতে সেগুলো আর্কাইভ করুন যাতে সেগুলো আপনার ছবির ভিউ থেকে লুকানো থাকে",
+ "no_assets_message": "আপনার প্রথম ছবি আপলোড করতে ক্লিক করুন",
+ "no_assets_to_show": "দেখানোর মতো কোনো অ্যাসেট নেই",
+ "no_cast_devices_found": "কোনো কাস্ট ডিভাইস পাওয়া যায়নি",
+ "no_checksum_local": "কোনো চেকসাম উপলব্ধ নেই - স্থানীয় অ্যাসেট আনা যায়নি",
+ "no_checksum_remote": "কোনো চেকসাম উপলব্ধ নেই - দূরবর্তী অ্যাসেট আনা যায়নি",
+ "no_devices": "কোনো অনুমোদিত ডিভাইস নেই",
+ "no_duplicates_found": "কোনো ডুপ্লিকেট পাওয়া যায়নি।",
+ "no_exif_info_available": "কোনো Exif তথ্য উপলব্ধ নেই",
+ "no_explore_results_message": "আপনার সংগ্রহ অন্বেষণ করতে আরও ছবি আপলোড করুন।",
+ "no_favorites_message": "আপনার সেরা ছবি ও ভিডিও দ্রুত খুঁজে পেতে ফেভারিট যোগ করুন",
+ "no_libraries_message": "আপনার ছবি ও ভিডিও দেখতে একটি বাহ্যিক লাইব্রেরি তৈরি করুন",
+ "no_local_assets_found": "এই চেকসাম দিয়ে কোনো স্থানীয় অ্যাসেট পাওয়া যায়নি",
+ "no_locked_photos_message": "লক করা ফোল্ডারে থাকা ছবি ও ভিডিও লুকানো থাকে এবং আপনি লাইব্রেরি ব্রাউজ বা অনুসন্ধান করার সময় সেগুলো দেখা যাবে না।",
+ "no_name": "কোনো নাম নেই",
+ "no_notifications": "কোনো নোটিফিকেশন নেই",
+ "no_people_found": "মিলে যাওয়া কোনো ব্যক্তি পাওয়া যায়নি",
+ "no_places": "কোনো স্থান নেই",
+ "no_remote_assets_found": "এই চেকসাম দিয়ে কোনো দূরবর্তী অ্যাসেট পাওয়া যায়নি",
+ "no_results": "কোনো ফলাফল নেই",
+ "no_results_description": "একটি সমার্থক শব্দ অথবা আরও সাধারণ কিওয়ার্ড ব্যবহার করে দেখুন",
+ "no_shared_albums_message": "আপনার নেটওয়ার্কের মানুষের সাথে ছবি ও ভিডিও শেয়ার করতে একটি অ্যালবাম তৈরি করুন",
+ "no_steps": "এখনও কোনো ধাপ যোগ করা হয়নি",
+ "none": "কোনোটিই না",
+ "not_allowed": "অনুমোদিত নয়",
+ "not_available": "N/A",
+ "not_in_any_album": "কোনো অ্যালবামে নেই",
+ "not_selected": "নির্বাচিত নয়",
+ "not_set": "নির্ধারিত নয়",
+ "notes": "নোট",
+ "nothing_here_yet": "এখানে এখনো কিছু নেই",
+ "notification_backup_reliability": "ব্যাকগ্রাউন্ড ব্যাকআপের নির্ভরযোগ্যতা বাড়াতে নোটিফিকেশন চালু করুন",
+ "notification_enabled_list_tile_content": "Immich ব্যাকগ্রাউন্ড ব্যাকআপের জন্য নোটিফিকেশন ব্যবহার করে। আপনার ডিভাইসের সেটিংসে সেগুলো পরিচালনা করুন।",
+ "notification_enabled_list_tile_open_button": "সেটিংস খুলুন",
+ "notification_enabled_list_tile_title": "নোটিফিকেশন চালু আছে",
+ "notification_permission_dialog_content": "নোটিফিকেশন চালু করতে, সেটিংসে গিয়ে অনুমতি দিন নির্বাচন করুন।",
+ "notification_permission_list_tile_content": "নোটিফিকেশন চালু করতে অনুমতি দিন।",
+ "notification_permission_list_tile_enable_button": "নোটিফিকেশন চালু করুন",
+ "notification_permission_list_tile_title": "নোটিফিকেশনের অনুমতি",
+ "notification_toggle_setting_description": "ইমেইল নোটিফিকেশন চালু করুন",
+ "notifications": "নোটিফিকেশন",
+ "notifications_setting_description": "নোটিফিকেশন পরিচালনা করুন",
+ "oauth": "OAuth",
+ "obtainium_configurator": "Obtainium কনফিগারেটর",
+ "obtainium_configurator_instructions": "Immich-এর GitHub রিলিজ থেকে সরাসরি Android অ্যাপ ইনস্টল ও আপডেট করতে Obtainium ব্যবহার করুন। আপনার Obtainium কনফিগারেশন লিংক তৈরি করতে একটি API কী তৈরি করুন এবং একটি ভ্যারিয়ান্ট নির্বাচন করুন",
+ "ocr": "OCR",
+ "ocr_body": "Immich এখন আপনার ছবির ভেতরের লেখা পড়তে পারে, তাই আপনি সেগুলোর লেখা দিয়ে খুঁজতে পারবেন।",
+ "ocr_title": "আপনার ছবিতে লেখা অনুসন্ধান করুন",
+ "official_immich_resources": "Immich-এর অফিসিয়াল রিসোর্স",
+ "offline": "অফলাইন",
+ "offset": "অফসেট",
+ "ok": "ঠিক আছে",
+ "oldest_first": "সর্বপ্রথম পুরাতন",
+ "on_this_device": "এই ডিভাইসে",
+ "onboarding": "অনবোর্ডিং",
+ "onboarding_locale_description": "আপনার পছন্দের ভাষা নির্বাচন করুন। আপনি পরবর্তীতে সেটিংসে এটি পরিবর্তন করতে পারবেন।",
+ "onboarding_privacy_description": "নিচের (ঐচ্ছিক) ফিচারগুলো বাহ্যিক পরিষেবার উপর নির্ভরশীল এবং সেটিংসে যেকোনো সময় নিষ্ক্রিয় করা যায়।",
+ "onboarding_server_welcome_description": "চলুন কিছু সাধারণ সেটিংস দিয়ে আপনার ইনস্ট্যান্স সেটআপ করি।",
+ "onboarding_theme_description": "আপনার ইনস্ট্যান্সের জন্য একটি কালার থিম নির্বাচন করুন। আপনি পরবর্তীতে সেটিংসে এটি পরিবর্তন করতে পারবেন।",
+ "onboarding_user_welcome_description": "চলুন শুরু করা যাক!",
+ "onboarding_welcome_user": "স্বাগতম, {user}",
+ "online": "অনলাইন",
+ "only_favorites": "শুধুমাত্র ফেভারিট",
+ "open": "খুলুন",
+ "open_calendar": "ক্যালেন্ডার খুলুন",
"open_in_browser": "ব্রাউজারে ওপেন করুন",
+ "open_in_immich_body": "অন্যান্য অ্যাপ থেকে সরাসরি ছবি খুলতে Android-এ Immich-কে আপনার গ্যালারি হিসেবে সেট করুন।",
+ "open_in_immich_title": "Immich-এ ছবি খুলুন",
+ "open_in_map_view": "মানচিত্র ভিউতে খুলুন",
+ "open_in_openstreetmap": "OpenStreetMap-এ খুলুন",
+ "open_the_search_filters": "অনুসন্ধান ফিল্টার খুলুন",
+ "options": "অপশন",
+ "or": "অথবা",
+ "organize_into_albums": "অ্যালবামে গুছিয়ে রাখুন",
+ "organize_into_albums_description": "বর্তমান সিঙ্ক সেটিংস ব্যবহার করে বিদ্যমান ছবিগুলো অ্যালবামে রাখুন",
+ "organize_your_library": "আপনার লাইব্রেরি গুছিয়ে রাখুন",
+ "orientation": "ওরিয়েন্টেশন",
+ "original": "মূল",
+ "other": "অন্যান্য",
+ "other_devices": "অন্যান্য ডিভাইস",
+ "other_variables": "অন্যান্য ভেরিয়েবল",
+ "owned": "মালিকানাধীন",
+ "owner": "মালিক",
+ "page": "পেজ",
+ "partner": "পার্টনার",
+ "partner_can_access": "{partner} অ্যাক্সেস করতে পারবে",
+ "partner_can_access_assets": "আর্কাইভ করা এবং মুছে ফেলা ব্যতীত আপনার সব ছবি ও ভিডিও",
+ "partner_can_access_location": "আপনার ছবি যেখানে তোলা হয়েছিল সেই অবস্থান",
+ "partner_list_user_photos": "{user}-এর ছবি",
+ "partner_page_empty_message": "আপনার ছবি এখনো কোনো পার্টনারের সাথে শেয়ার করা হয়নি।",
+ "partner_page_no_more_users": "যোগ করার মতো আর কোনো ব্যবহারকারী নেই",
+ "partner_page_select_partner": "পার্টনার নির্বাচন করুন",
+ "partner_page_stop_sharing_content": "{partner} আর আপনার ছবি অ্যাক্সেস করতে পারবে না।",
+ "partner_sharing": "পার্টনার শেয়ারিং",
+ "partners": "পার্টনার",
+ "password": "পাসওয়ার্ড",
+ "password_does_not_match": "পাসওয়ার্ড মিলছে না",
+ "password_required": "পাসওয়ার্ড আবশ্যক",
+ "password_reset_success": "পাসওয়ার্ড রিসেট সফল হয়েছে",
+ "past_durations": {
+ "days": "গত {days, plural, one {দিন} other {#দিন}}",
+ "hours": "গত {hours, plural, one {ঘণ্টা} other {#ঘণ্টা}}",
+ "years": "গত {years, plural, one {বছর} other {#বছর}}"
+ },
+ "path": "পাথ",
+ "pattern": "প্যাটার্ন",
+ "pause": "থামান",
+ "pause_memories": "স্মৃতি থামান",
+ "paused": "থামানো হয়েছে",
+ "pending": "অপেক্ষমাণ",
+ "people": "মানুষ",
+ "people_edits_count": "{count, plural, one {#জন ব্যক্তি} other {#জন ব্যক্তি}} সম্পাদনা করা হয়েছে",
+ "people_feature_description": "ব্যক্তি অনুযায়ী গ্রুপ করা ছবি ও ভিডিও ব্রাউজ করা",
+ "permanent_deletion_warning": "স্থায়ী মুছে ফেলার সতর্কতা",
+ "permanent_deletion_warning_setting_description": "অ্যাসেট স্থায়ীভাবে মুছে ফেলার সময় একটি সতর্কতা দেখান",
+ "permanently_delete": "স্থায়ীভাবে মুছুন",
+ "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 {#টি অ্যাসেট}} স্থায়ীভাবে মুছে ফেলা হয়েছে",
+ "permission": "অনুমতি",
+ "permission_empty": "আপনার অনুমতি খালি রাখা উচিত নয়",
+ "person": "ব্যক্তি",
+ "person_age_months": "{months, plural, one {#মাস} other {#মাস}} বয়স",
+ "person_age_year_months": "১ বছর, {months, plural, one {#মাস} other {#মাস}} বয়স",
+ "person_age_years": "{years, plural, one {#বছর} other {#বছর}} বয়স",
+ "person_birthdate": "{date}-এ জন্ম",
+ "person_hidden": "{name}{hidden, select, true { (লুকানো)} other {}}",
+ "person_recognized": "ব্যক্তি শনাক্ত হয়েছে",
+ "photo_shared_all_users": "মনে হচ্ছে আপনি আপনার ছবি সব ব্যবহারকারীর সাথে শেয়ার করেছেন অথবা শেয়ার করার মতো আপনার কোনো ব্যবহারকারী নেই।",
+ "photos": "ছবি",
+ "photos_and_videos": "ছবি ও ভিডিও",
+ "photos_from_previous_years": "পূর্ববর্তী বছরগুলোর ছবি",
+ "pick_a_location": "একটি অবস্থান নির্বাচন করুন",
+ "pick_custom_range": "কাস্টম পরিসীমা",
+ "pick_date_range": "একটি তারিখের পরিসীমা নির্বাচন করুন",
+ "pin_code_changed_successfully": "পিন কোড সফলভাবে পরিবর্তন করা হয়েছে",
+ "pin_code_reset_successfully": "পিন কোড সফলভাবে রিসেট করা হয়েছে",
+ "pin_code_setup_successfully": "পিন কোড সফলভাবে সেটআপ করা হয়েছে",
+ "pin_verification": "পিন কোড যাচাইকরণ",
+ "place": "স্থান",
+ "places": "স্থান",
+ "places_count": "{count, plural, one {{count, number}টি স্থান} other {{count, number}টি স্থান}}",
+ "play": "চালান",
+ "play_memories": "স্মৃতি চালান",
+ "play_motion_photo": "মোশন ফটো চালান",
+ "play_or_pause_video": "ভিডিও চালান বা থামান",
+ "play_original_video": "মূল ভিডিও চালান",
+ "play_original_video_setting_description": "ট্রান্সকোড করা ভিডিওর পরিবর্তে মূল ভিডিও চালাতে অগ্রাধিকার দিন। মূল অ্যাসেট সামঞ্জস্যপূর্ণ না হলে এটি সঠিকভাবে চলতে নাও পারে।",
+ "play_transcoded_video": "ট্রান্সকোড করা ভিডিও চালান",
+ "please_auth_to_access": "অ্যাক্সেস করতে অনুগ্রহ করে প্রমাণীকরণ করুন",
+ "plugin_method_filter_type": "ফিল্টার",
+ "plugin_method_filter_type_description": "এই পদ্ধতিটি ইভেন্ট ফিল্টার করতে পারে এবং শর্তসাপেক্ষে পরবর্তী ধাপগুলো চলতে বাধা দিতে পারে",
+ "port": "পোর্ট",
+ "preferences_settings_subtitle": "অ্যাপের পছন্দসমূহ পরিচালনা করুন",
+ "preferences_settings_title": "পছন্দসমূহ",
+ "preparing": "প্রস্তুত হচ্ছে",
+ "preset": "প্রিসেট",
+ "preview": "প্রিভিউ",
+ "previous": "পূর্ববর্তী",
+ "previous_memory": "পূর্ববর্তী স্মৃতি",
+ "previous_or_next_day": "দিন সামনে/পেছনে",
+ "previous_or_next_month": "মাস সামনে/পেছনে",
+ "previous_or_next_photo": "ছবি সামনে/পেছনে",
+ "previous_or_next_year": "বছর সামনে/পেছনে",
+ "primary": "প্রাথমিক",
+ "privacy": "গোপনীয়তা",
+ "profile": "প্রোফাইল",
+ "profile_drawer_app_logs": "লগসমূহ",
+ "profile_drawer_github": "GitHub",
+ "profile_drawer_readonly_mode": "রিড-অনলি মোড চালু আছে। বের হতে ব্যবহারকারীর অ্যাভাটার আইকনে দীর্ঘক্ষণ চাপ দিন।",
+ "profile_image_of_user": "{user}-এর প্রোফাইল ছবি",
+ "profile_picture_set": "প্রোফাইল ছবি সেট করা হয়েছে।",
+ "projection_type": "প্রজেকশন টাইপ",
+ "public_album": "পাবলিক অ্যালবাম",
+ "public_share": "পাবলিক শেয়ার",
+ "purchase_account_info": "সাপোর্টার",
+ "purchase_activated_subtitle": "Immich এবং ওপেন-সোর্স সফটওয়্যারকে সমর্থন করার জন্য ধন্যবাদ",
+ "purchase_activated_time": "{date}-এ সক্রিয় করা হয়েছে",
+ "purchase_activated_title": "আপনার কী সফলভাবে সক্রিয় করা হয়েছে",
+ "purchase_button_activate": "সক্রিয় করুন",
+ "purchase_button_buy": "কিনুন",
+ "purchase_button_buy_immich": "Immich কিনুন",
+ "purchase_button_never_show_again": "আর কখনো দেখাবেন না",
+ "purchase_button_reminder": "৩০ দিন পর আমাকে মনে করিয়ে দিন",
+ "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_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": "সার্ভার প্রোডাক্ট কী অ্যাডমিন দ্বারা পরিচালিত হয়",
+ "query_asset_id": "কোয়েরি অ্যাসেট ID",
+ "queue_status": "সারিবদ্ধ হচ্ছে {count}/{total}",
+ "rate_asset": "অ্যাসেট রেট করুন",
+ "rating": "স্টার রেটিং",
+ "rating_clear": "রেটিং মুছুন",
+ "rating_count": "{count, plural, =0 {রেট করা হয়নি} one {#স্টার} other {#স্টার}}",
+ "rating_description": "তথ্য প্যানেলে EXIF রেটিং প্রদর্শন করুন",
+ "reaction_options": "রিঅ্যাকশন অপশন",
+ "read_changelog": "চেঞ্জলগ পড়ুন",
+ "readonly_mode_disabled": "রিড-অনলি মোড নিষ্ক্রিয়",
+ "readonly_mode_enabled": "রিড-অনলি মোড সক্রিয়",
+ "ready_for_upload": "আপলোডের জন্য প্রস্তুত",
+ "reassign": "পুনরায় নির্ধারণ করুন",
+ "reassigned_assets_to_existing_person": "{name, select, null {একজন বিদ্যমান ব্যক্তির} other {{name}-এর}} কাছে {count, plural, one {#টি অ্যাসেট} other {#টি অ্যাসেট}} পুনরায় নির্ধারণ করা হয়েছে",
+ "reassigned_assets_to_new_person": "নতুন ব্যক্তির কাছে {count, plural, one {#টি অ্যাসেট} other {#টি অ্যাসেট}} পুনরায় নির্ধারণ করা হয়েছে",
+ "reassing_hint": "নির্বাচিত অ্যাসেটগুলো একজন বিদ্যমান ব্যক্তির কাছে নির্ধারণ করুন",
+ "recent": "সাম্প্রতিক",
+ "recent_searches": "সাম্প্রতিক অনুসন্ধান",
+ "recently_added": "সম্প্রতি যোগ হয়েছে",
+ "recently_added_body": "আপনি সম্প্রতি যা যোগ করেছেন তার সবকিছুতে একটি নির্দিষ্ট পেজে সরাসরি চলে যান।",
+ "recently_added_description": "Immich-এ আপলোড করার সময় অনুযায়ী সাজানো আপনার অ্যাসেট ব্রাউজ করুন",
+ "recently_added_page_title": "সম্প্রতি যোগ হয়েছে",
+ "recently_added_title": "সম্প্রতি যোগ হয়েছে",
+ "recently_taken": "সম্প্রতি তোলা",
+ "refresh": "রিফ্রেশ",
+ "refresh_encoded_videos": "এনকোড করা ভিডিও রিফ্রেশ করুন",
+ "refresh_faces": "মুখ রিফ্রেশ করুন",
+ "refresh_metadata": "মেটাডেটা রিফ্রেশ করুন",
+ "refresh_thumbnails": "থাম্বনেইল রিফ্রেশ করুন",
+ "refreshed": "রিফ্রেশ করা হয়েছে",
+ "refreshing_encoded_video": "এনকোড করা ভিডিও রিফ্রেশ করা হচ্ছে",
+ "refreshing_faces": "মুখ রিফ্রেশ করা হচ্ছে",
+ "refreshing_metadata": "মেটাডেটা রিফ্রেশ করা হচ্ছে",
+ "regenerating_thumbnails": "থাম্বনেইল পুনরায় তৈরি করা হচ্ছে",
+ "remote": "দূরবর্তী",
+ "remote_assets": "দূরবর্তী অ্যাসেট",
+ "remote_media_summary": "দূরবর্তী মিডিয়া সারসংক্ষেপ",
+ "remove": "সরান",
+ "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_filter": "ফিল্টার সরান",
+ "remove_from_album": "অ্যালবাম থেকে সরান",
+ "remove_from_album_action_prompt": "{count}টি অ্যালবাম থেকে সরানো হয়েছে",
+ "remove_from_favorites": "ফেভারিট থেকে সরান",
+ "remove_from_lock_folder_action_prompt": "{count}টি লক করা ফোল্ডার থেকে সরানো হয়েছে",
+ "remove_from_locked_folder": "লক করা ফোল্ডার থেকে সরান",
+ "remove_from_locked_folder_confirmation": "আপনি কি নিশ্চিত যে আপনি এই ছবি ও ভিডিওগুলো লক করা ফোল্ডার থেকে সরাতে চান? সেগুলো আপনার লাইব্রেরিতে দৃশ্যমান হবে।",
+ "remove_from_shared_link": "শেয়ার লিংক থেকে সরান",
+ "remove_memory": "স্মৃতি সরান",
+ "remove_photo_from_memory": "এই স্মৃতি থেকে ছবি সরান",
+ "remove_tag": "ট্যাগ সরান",
+ "remove_user": "ব্যবহারকারী সরান",
+ "removed_api_key": "API কী সরানো হয়েছে: {name}",
+ "removed_from_archive": "আর্কাইভ থেকে সরানো হয়েছে",
+ "removed_from_favorites": "ফেভারিট থেকে সরানো হয়েছে",
+ "removed_from_favorites_count": "ফেভারিট থেকে {count, plural, other {#টি সরানো হয়েছে}}",
+ "removed_memory": "স্মৃতি সরানো হয়েছে",
+ "removed_tagged_assets": "{count, plural, one {#টি অ্যাসেট} other {#টি অ্যাসেট}} থেকে ট্যাগ সরানো হয়েছে",
+ "rename": "নাম পরিবর্তন করুন",
+ "repository": "রিপোজিটরি",
+ "require_password": "পাসওয়ার্ড আবশ্যক",
+ "rescan": "পুনরায় স্ক্যান করুন",
+ "reset": "রিসেট",
+ "reset_password": "পাসওয়ার্ড রিসেট করুন",
+ "reset_people_visibility": "ব্যক্তির দৃশ্যমানতা রিসেট করুন",
+ "reset_pin_code": "পিন কোড রিসেট করুন",
+ "reset_pin_code_description": "আপনি যদি আপনার পিন কোড ভুলে যান, তাহলে এটি রিসেট করতে সার্ভার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করতে পারেন",
+ "reset_pin_code_with_password": "আপনি সবসময় আপনার পাসওয়ার্ড দিয়ে পিন কোড রিসেট করতে পারবেন",
+ "reset_sqlite": "SQLite ডেটাবেস রিসেট করুন",
+ "reset_sqlite_clear_app_data": "ডেটা মুছুন",
+ "reset_sqlite_confirmation": "আপনি কি নিশ্চিত যে আপনি অ্যাপের ডেটা মুছতে চান? এতে সব সেটিংস মুছে যাবে এবং আপনাকে সাইন আউট করে দেওয়া হবে।",
+ "reset_sqlite_confirmation_note": "নোট: মুছে ফেলার পর আপনাকে অ্যাপটি পুনরায় চালু করতে হবে।",
+ "reset_sqlite_done": "অ্যাপের ডেটা মুছে ফেলা হয়েছে। অনুগ্রহ করে Immich পুনরায় চালু করে আবার লগ ইন করুন।",
+ "reset_sqlite_success": "SQLite ডেটাবেস সফলভাবে রিসেট করা হয়েছে",
+ "reset_to_default": "ডিফল্টে রিসেট করুন",
+ "resolution": "রেজোলিউশন",
+ "resolve_duplicates": "ডুপ্লিকেট সমাধান করুন",
+ "resolved_all_duplicates": "সব ডুপ্লিকেট সমাধান করা হয়েছে",
+ "restore": "পুনরুদ্ধার করুন",
+ "restore_all": "সব পুনরুদ্ধার করুন",
+ "restore_user": "ব্যবহারকারী পুনরুদ্ধার করুন",
+ "restored_asset": "অ্যাসেট পুনরুদ্ধার করা হয়েছে",
+ "resume": "আবার শুরু করুন",
+ "resume_paused_jobs": "{count, plural, one {#টি থামানো জব} other {#টি থামানো জব}} আবার শুরু করুন",
+ "review_duplicates": "ডুপ্লিকেট পর্যালোচনা করুন",
+ "review_large_files": "বড় ফাইল পর্যালোচনা করুন",
+ "role": "ভূমিকা",
+ "role_editor": "এডিটর",
+ "role_viewer": "ভিউয়ার",
+ "running": "চলছে",
+ "save": "সংরক্ষণ করুন",
+ "saved": "সংরক্ষিত হয়েছে",
+ "saved_api_key": "API কী সংরক্ষণ করা হয়েছে",
+ "saved_profile": "প্রোফাইল সংরক্ষণ করা হয়েছে",
+ "saved_settings": "সেটিংস সংরক্ষণ করা হয়েছে",
+ "say_something": "কিছু বলুন",
+ "scaffold_body_error_occurred": "ত্রুটি ঘটেছে",
+ "scaffold_body_error_unrecoverable": "একটি অপুনরুদ্ধারযোগ্য ত্রুটি ঘটেছে। অনুগ্রহ করে Discord অথবা GitHub-এ ত্রুটি ও স্ট্যাক ট্রেসটি শেয়ার করুন যাতে আমরা সাহায্য করতে পারি। পরামর্শ দেওয়া হলে, আপনি নিচে অ্যাপের ডেটা মুছতে পারেন।",
+ "scan": "স্ক্যান করুন",
+ "scan_all_libraries": "সব লাইব্রেরি স্ক্যান করুন",
+ "scan_library": "স্ক্যান করুন",
+ "scanning": "স্ক্যান করা হচ্ছে",
+ "scanning_for_album": "অ্যালবামের জন্য স্ক্যান করা হচ্ছে..।",
+ "screencast_mode_description": "স্ক্রিনে কীবোর্ড ও মাউস ইভেন্ট ইন্ডিকেটর দেখান",
+ "screencast_mode_title": "স্ক্রিনকাস্ট মোড টগল করুন",
+ "search": "অনুসন্ধান",
+ "search_albums": "অ্যালবাম অনুসন্ধান করুন",
+ "search_by_context": "প্রসঙ্গ অনুযায়ী অনুসন্ধান করুন",
+ "search_by_description": "বিবরণ অনুযায়ী অনুসন্ধান করুন",
+ "search_by_description_example": "সাপায় হাইকিং দিবস",
+ "search_by_filename": "ফাইলের নাম বা এক্সটেনশন অনুযায়ী অনুসন্ধান করুন",
+ "search_by_filename_example": "যেমন IMG_1234.JPG অথবা PNG",
+ "search_by_full_path": "সম্পূর্ণ পাথ বা ফোল্ডার অনুযায়ী অনুসন্ধান করুন",
+ "search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - আপনি Projects, 3D, Printing, 2026 ইত্যাদি অনুসন্ধান করতে পারেন",
+ "search_by_ocr": "OCR অনুযায়ী অনুসন্ধান করুন",
+ "search_by_ocr_example": "Latte",
+ "search_camera_lens_model": "লেন্স মডেল অনুসন্ধান করুন..।",
+ "search_camera_make": "ক্যামেরা নির্মাতা অনুসন্ধান করুন..।",
+ "search_camera_model": "ক্যামেরা মডেল অনুসন্ধান করুন..।",
+ "search_city": "শহর অনুসন্ধান করুন..।",
+ "search_country": "দেশ অনুসন্ধান করুন..।",
+ "search_filter_apply": "ফিল্টার প্রয়োগ করুন",
+ "search_filter_camera_title": "ক্যামেরার ধরন নির্বাচন করুন",
+ "search_filter_date": "তারিখ",
+ "search_filter_date_interval": "{start} থেকে {end}",
+ "search_filter_date_title": "একটি তারিখের পরিসীমা নির্বাচন করুন",
+ "search_filter_display_option_not_in_album": "অ্যালবামে নেই",
+ "search_filter_display_options": "প্রদর্শন অপশন",
+ "search_filter_filename": "ফাইলের নাম অনুযায়ী অনুসন্ধান করুন",
+ "search_filter_location": "অবস্থান",
+ "search_filter_location_title": "অবস্থান নির্বাচন করুন",
+ "search_filter_media_type": "মিডিয়ার ধরন",
+ "search_filter_media_type_title": "মিডিয়ার ধরন নির্বাচন করুন",
+ "search_filter_people_title": "ব্যক্তি নির্বাচন করুন",
+ "search_filter_star_rating": "স্টার রেটিং",
+ "search_filter_tags_title": "ট্যাগ নির্বাচন করুন",
+ "search_for": "অনুসন্ধান করুন",
+ "search_for_existing_person": "বিদ্যমান ব্যক্তি অনুসন্ধান করুন",
+ "search_no_more_result": "আর কোনো ফলাফল নেই",
+ "search_no_people": "কোনো ব্যক্তি নেই",
+ "search_no_people_named": "\"{name}\" নামে কোনো ব্যক্তি নেই",
+ "search_no_result": "কোনো ফলাফল পাওয়া যায়নি, একটি ভিন্ন অনুসন্ধান শব্দ বা সমন্বয় ব্যবহার করে দেখুন",
+ "search_options": "অনুসন্ধান অপশন",
+ "search_page_search_photos_videos": "আপনার ছবি ও ভিডিও অনুসন্ধান করুন",
+ "search_page_view_all_button": "সব দেখুন",
+ "search_people": "ব্যক্তি অনুসন্ধান করুন",
+ "search_places": "স্থান অনুসন্ধান করুন",
+ "search_rating": "রেটিং অনুযায়ী অনুসন্ধান করুন..।",
+ "search_settings": "অনুসন্ধান সেটিংস",
+ "search_state": "স্টেট অনুসন্ধান করুন..।",
+ "search_tags": "ট্যাগ অনুসন্ধান করুন..।",
+ "search_timezone": "টাইমজোন অনুসন্ধান করুন..।",
+ "search_type": "অনুসন্ধানের ধরন",
+ "search_your_photos": "আপনার ছবি অনুসন্ধান করুন",
+ "searching_locales": "লোকেল অনুসন্ধান করা হচ্ছে..।",
+ "second": "সেকেন্ড",
+ "see_all_people": "সব ব্যক্তি দেখুন",
+ "select": "নির্বাচন করুন",
+ "select_album": "অ্যালবাম নির্বাচন করুন",
+ "select_album_cover": "অ্যালবাম কভার নির্বাচন করুন",
+ "select_albums": "অ্যালবাম নির্বাচন করুন",
+ "select_all": "সব নির্বাচন করুন",
+ "select_all_duplicates": "সব ডুপ্লিকেট নির্বাচন করুন",
+ "select_avatar_color": "অ্যাভাটারের রঙ নির্বাচন করুন",
+ "select_count": "{count, plural, one {#টি নির্বাচন করুন} other {#টি নির্বাচন করুন}}",
+ "select_cutoff_date": "কাটঅফ তারিখ নির্বাচন করুন",
+ "select_face": "মুখ নির্বাচন করুন",
+ "select_featured_photo": "ফিচার্ড ছবি নির্বাচন করুন",
+ "select_from_computer": "কম্পিউটার থেকে নির্বাচন করুন",
+ "select_keep_all": "সব রাখা নির্বাচন করুন",
+ "select_new_face": "নতুন মুখ নির্বাচন করুন",
+ "select_people": "ব্যক্তি নির্বাচন করুন",
+ "select_person": "ব্যক্তি নির্বাচন করুন",
+ "select_person_to_tag": "ট্যাগ করার জন্য একজন ব্যক্তি নির্বাচন করুন",
+ "select_photos": "ছবি নির্বাচন করুন",
+ "select_quality": "মান নির্বাচন করুন",
+ "select_trash_all": "সব ট্র্যাশ নির্বাচন করুন",
+ "selected": "নির্বাচিত",
+ "selected_count": "{count, plural, other {#টি নির্বাচিত}}",
+ "selected_gps_coordinates": "নির্বাচিত GPS স্থানাঙ্ক",
+ "send_message": "বার্তা পাঠান",
+ "send_welcome_email": "স্বাগতম ইমেইল পাঠান",
+ "server_endpoint": "সার্ভার এন্ডপয়েন্ট",
+ "server_info_box_app_version": "অ্যাপ ভার্সন",
+ "server_info_box_server_url": "সার্ভার URL",
+ "server_offline": "সার্ভার অফলাইন",
+ "server_online": "সার্ভার অনলাইন",
+ "server_privacy": "সার্ভার গোপনীয়তা",
+ "server_restarting_description": "এই পেজটি শীঘ্রই রিফ্রেশ হবে।",
+ "server_restarting_title": "সার্ভার পুনরায় চালু হচ্ছে",
+ "server_stats": "সার্ভার পরিসংখ্যান",
+ "server_update_available": "সার্ভার আপডেট উপলব্ধ",
+ "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": "স্লাইডশো ফুলস্ক্রিনে সেট করুন",
+ "set_stack_primary_asset": "প্রাথমিক অ্যাসেট হিসেবে সেট করুন",
+ "setting_image_navigation_enable_subtitle": "চালু থাকলে, আপনি স্ক্রিনের বাম/ডান প্রান্তের চতুর্থাংশে ট্যাপ করে পূর্ববর্তী/পরবর্তী ছবিতে যেতে পারবেন।",
+ "setting_image_navigation_enable_title": "নেভিগেট করতে ট্যাপ করুন",
+ "setting_image_navigation_title": "ছবি নেভিগেশন",
+ "setting_image_viewer_help": "ডিটেইল ভিউয়ার প্রথমে ছোট থাম্বনেইল লোড করে, তারপর মাঝারি আকারের প্রিভিউ লোড করে (চালু থাকলে), অবশেষে মূল ছবি লোড করে (চালু থাকলে)।",
+ "setting_image_viewer_original_subtitle": "মূল পূর্ণ-রেজোলিউশন ছবি লোড করতে চালু করুন (বড়!)। ডেটা ব্যবহার কমাতে (নেটওয়ার্ক ও ডিভাইস ক্যাশ উভয়ই) নিষ্ক্রিয় করুন।",
+ "setting_image_viewer_original_title": "মূল ছবি লোড করুন",
+ "setting_image_viewer_preview_subtitle": "মাঝারি-রেজোলিউশন ছবি লোড করতে চালু করুন। সরাসরি মূল ছবি লোড করতে বা শুধুমাত্র থাম্বনেইল ব্যবহার করতে নিষ্ক্রিয় করুন।",
+ "setting_image_viewer_preview_title": "প্রিভিউ ছবি লোড করুন",
+ "setting_languages_apply": "প্রয়োগ করুন",
+ "setting_languages_subtitle": "অ্যাপের ভাষা পরিবর্তন করুন",
+ "setting_notifications_notify_minutes": "{count} মিনিট",
+ "setting_notifications_notify_seconds": "{count} সেকেন্ড",
+ "setting_notifications_subtitle": "আপনার নোটিফিকেশন পছন্দ সামঞ্জস্য করুন",
+ "setting_video_viewer_auto_play_subtitle": "ভিডিও খোলার সাথে সাথে স্বয়ংক্রিয়ভাবে চালানো শুরু করুন",
+ "setting_video_viewer_auto_play_title": "স্বয়ংক্রিয়ভাবে ভিডিও চালান",
+ "setting_video_viewer_looping_title": "লুপিং",
+ "setting_video_viewer_original_video_subtitle": "সার্ভার থেকে ভিডিও স্ট্রিম করার সময়, ট্রান্সকোড উপলব্ধ থাকলেও মূল ভিডিও চালান। এতে বাফারিং হতে পারে। স্থানীয়ভাবে উপলব্ধ ভিডিও এই সেটিং নির্বিশেষে মূল মানে চালানো হয়।",
+ "setting_video_viewer_original_video_title": "মূল ভিডিও বাধ্যতামূলক করুন",
+ "settings": "সেটিংস",
+ "settings_saved": "সেটিংস সংরক্ষণ করা হয়েছে",
+ "setup_pin_code": "একটি পিন কোড সেটআপ করুন",
+ "share": "শেয়ার করুন",
+ "share_dialog_preparing": "প্রস্তুত করা হচ্ছে..।",
+ "share_link": "শেয়ার লিংক",
+ "share_original": "মূল ব্যবহার করুন (বড়)",
+ "share_preview": "থাম্বনেইল ব্যবহার করুন (ছোট)",
+ "share_quality_body": "শেয়ার করার আগে ছবির মান নির্বাচন করতে শেয়ার বাটনটি চেপে ধরে রাখুন।",
+ "share_quality_title": "আপনার শেয়ার মান নির্বাচন করুন",
+ "shared": "শেয়ার করা হয়েছে",
+ "shared_album_activities_input_disable": "মন্তব্য নিষ্ক্রিয় করা আছে",
+ "shared_album_activity_remove_content": "আপনি কি এই কার্যকলাপটি মুছে ফেলতে চান?",
+ "shared_album_activity_remove_title": "কার্যকলাপ মুছুন",
+ "shared_album_section_people_action_error": "অ্যালবাম থেকে ত্যাগ/সরানোর সময় ত্রুটি হয়েছে",
+ "shared_album_section_people_title": "ব্যক্তি",
+ "shared_by": "শেয়ার করেছেন",
+ "shared_by_user": "{user} শেয়ার করেছেন",
+ "shared_by_you": "আপনি শেয়ার করেছেন",
+ "shared_from_partner": "{partner}-এর ছবি",
+ "shared_intent_upload_button_progress_text": "{current} / {total} আপলোড হয়েছে",
+ "shared_link_app_bar_title": "শেয়ার করা লিংক",
+ "shared_link_clipboard_copied_massage": "ক্লিপবোর্ডে কপি করা হয়েছে",
+ "shared_link_create_error": "শেয়ার লিংক তৈরি করার সময় ত্রুটি হয়েছে",
+ "shared_link_custom_url_description": "একটি কাস্টম URL নাম দিয়ে এই শেয়ার লিংকটি অ্যাক্সেস করুন",
+ "shared_link_custom_url_title": "কাস্টম URL",
+ "shared_link_custom_url_warning": "সতর্কতা: ফরওয়ার্ড স্ল্যাশযুক্ত কাস্টম URL নাম আপনার প্রত্যাশা অনুযায়ী কাজ নাও করতে পারে।",
+ "shared_link_edit_description_hint": "শেয়ারের বিবরণ লিখুন",
+ "shared_link_edit_expire_after_option_day": "১ দিন",
+ "shared_link_edit_expire_after_option_days": "{count} দিন",
+ "shared_link_edit_expire_after_option_hour": "১ ঘণ্টা",
+ "shared_link_edit_expire_after_option_hours": "{count} ঘণ্টা",
+ "shared_link_edit_expire_after_option_minute": "১ মিনিট",
+ "shared_link_edit_expire_after_option_minutes": "{count} মিনিট",
+ "shared_link_edit_expire_after_option_months": "{count} মাস",
+ "shared_link_edit_expire_after_option_year": "{count} বছর",
+ "shared_link_edit_password_hint": "শেয়ারের পাসওয়ার্ড লিখুন",
+ "shared_link_edit_submit_button": "লিংক আপডেট করুন",
+ "shared_link_error_server_url_fetch": "সার্ভার URL আনা যায়নি",
+ "shared_link_expires_day": "{count} দিনে মেয়াদ শেষ হবে",
+ "shared_link_expires_days": "{count} দিনে মেয়াদ শেষ হবে",
+ "shared_link_expires_hour": "{count} ঘণ্টায় মেয়াদ শেষ হবে",
+ "shared_link_expires_hours": "{count} ঘণ্টায় মেয়াদ শেষ হবে",
+ "shared_link_expires_minute": "{count} মিনিটে মেয়াদ শেষ হবে",
+ "shared_link_expires_minutes": "{count} মিনিটে মেয়াদ শেষ হবে",
+ "shared_link_expires_never": "মেয়াদ শেষ হবে না ∞",
+ "shared_link_expires_second": "{count} সেকেন্ডে মেয়াদ শেষ হবে",
+ "shared_link_expires_seconds": "{count} সেকেন্ডে মেয়াদ শেষ হবে",
+ "shared_link_individual_shared": "ব্যক্তিগত শেয়ার",
+ "shared_link_info_chip_metadata": "EXIF",
+ "shared_link_manage_links": "শেয়ার করা লিংক পরিচালনা করুন",
+ "shared_link_options": "শেয়ার লিংক অপশন",
+ "shared_link_password_description": "এই শেয়ার লিংক অ্যাক্সেস করতে পাসওয়ার্ড আবশ্যক করুন",
+ "shared_links": "শেয়ার করা লিংক",
+ "shared_links_description": "একটি লিংক দিয়ে ছবি ও ভিডিও শেয়ার করুন",
+ "shared_photos_and_videos_count": "{assetCount, plural, other {#টি শেয়ার করা ছবি ও ভিডিও।}}",
+ "shared_with_me": "আমার সাথে শেয়ার করা হয়েছে",
+ "shared_with_partner": "{partner}-এর সাথে শেয়ার করা হয়েছে",
+ "sharing": "শেয়ারিং",
+ "sharing_enter_password": "এই পেজটি দেখতে অনুগ্রহ করে পাসওয়ার্ড লিখুন।",
+ "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_less": "কম দেখান",
+ "show_metadata": "মেটাডেটা দেখান",
+ "show_more_fields": "{count, plural, one {আরও #টি ফিল্ড দেখান} other {আরও #টি ফিল্ড দেখান}}",
+ "show_or_hide_info": "তথ্য দেখান বা লুকান",
+ "show_password": "পাসওয়ার্ড দেখান",
+ "show_person_options": "ব্যক্তির অপশন দেখান",
+ "show_progress_bar": "প্রগ্রেস বার দেখান",
+ "show_schema": "স্কিমা দেখান",
+ "show_search_options": "অনুসন্ধান অপশন দেখান",
+ "show_shared_links": "শেয়ার করা লিংক দেখান",
+ "show_slideshow_metadata_overlay": "ছবির তথ্য ওভারলে দেখান",
+ "show_slideshow_transition": "স্লাইডশো ট্রানজিশন দেখান",
+ "show_supporter_badge": "সাপোর্টার ব্যাজ",
+ "show_supporter_badge_description": "একটি সাপোর্টার ব্যাজ দেখান",
+ "show_text_recognition": "টেক্সট রিকগনিশন দেখান",
+ "show_text_search_menu": "টেক্সট অনুসন্ধান মেনু দেখান",
+ "shuffle": "শাফল",
+ "sidebar": "সাইডবার",
+ "sidebar_display_description": "সাইডবারে ভিউয়ের একটি লিংক প্রদর্শন করুন",
+ "sign_out": "সাইন আউট",
+ "sign_up": "সাইন আপ",
+ "size": "আকার",
+ "skip": "এড়িয়ে যান",
+ "skip_to_content": "কন্টেন্টে যান",
+ "skip_to_folders": "ফোল্ডারে যান",
+ "skip_to_tags": "ট্যাগে যান",
+ "slideshow": "স্লাইডশো",
+ "slideshow_body": "আরাম করে বসুন এবং আপনার ছবিগুলো ফুলস্ক্রিন স্লাইডশোতে দেখুন।",
+ "slideshow_metadata_overlay_mode": "ওভারলে কন্টেন্ট",
+ "slideshow_metadata_overlay_mode_description_only": "শুধু বিবরণ",
+ "slideshow_metadata_overlay_mode_full": "সম্পূর্ণ",
+ "slideshow_repeat": "স্লাইডশো পুনরাবৃত্তি করুন",
+ "slideshow_repeat_description": "স্লাইডশো শেষ হলে শুরুতে ফিরে যান",
+ "slideshow_settings": "স্লাইডশো সেটিংস",
+ "slideshow_title": "স্লাইডশো",
+ "smart_album": "স্মার্ট অ্যালবাম",
+ "some_assets_already_have_a_location_warning": "নির্বাচিত কিছু অ্যাসেটে ইতিমধ্যে একটি অবস্থান রয়েছে",
+ "sort_albums_by": "অ্যালবাম সাজান..।",
+ "sort_created": "তৈরির তারিখ",
+ "sort_items": "আইটেমের সংখ্যা",
+ "sort_modified": "পরিবর্তনের তারিখ",
+ "sort_oldest": "সবচেয়ে পুরাতন ছবি",
+ "sort_people_by_similarity": "সাদৃশ্য অনুযায়ী ব্যক্তি সাজান",
+ "sort_recent": "সবচেয়ে সাম্প্রতিক ছবি",
+ "sort_title": "শিরোনাম",
+ "source": "সোর্স",
+ "stack": "স্ট্যাক",
+ "stack_action_prompt": "{count}টি স্ট্যাক করা হয়েছে",
+ "stack_duplicates": "ডুপ্লিকেট স্ট্যাক করুন",
+ "stack_selected_photos": "নির্বাচিত ছবি স্ট্যাক করুন",
+ "stacked_assets_count": "{count, plural, one {#টি অ্যাসেট} other {#টি অ্যাসেট}} স্ট্যাক করা হয়েছে",
+ "stacktrace": "স্ট্যাকট্রেস",
+ "start": "শুরু করুন",
+ "start_date": "শুরুর তারিখ",
+ "start_date_before_end_date": "শুরুর তারিখ অবশ্যই শেষ তারিখের আগে হতে হবে",
+ "state": "স্টেট",
+ "status": "অবস্থা",
+ "step_delete": "ধাপ মুছুন",
+ "step_delete_confirm": "আপনি কি নিশ্চিত যে আপনি এই ধাপটি মুছে ফেলতে চান?",
+ "step_details": "ধাপের বিবরণ",
+ "steps": "ধাপসমূহ",
+ "stop_casting": "কাস্টিং বন্ধ করুন",
+ "stop_motion_photo": "মোশন ফটো থামান",
+ "stop_photo_sharing": "আপনার ছবি শেয়ার করা বন্ধ করবেন?",
+ "stop_photo_sharing_description": "{partner} আর আপনার ছবি অ্যাক্সেস করতে পারবে না।",
+ "stop_sharing_photos_with_user": "এই ব্যবহারকারীর সাথে আপনার ছবি শেয়ার করা বন্ধ করুন",
+ "storage": "সংরক্ষণাগার স্থান",
+ "storage_label": "স্টোরেজ লেবেল",
+ "storage_quota": "স্টোরেজ কোটা",
+ "storage_usage": "{available}-এর মধ্যে {used} ব্যবহৃত",
+ "submit": "জমা দিন",
+ "success": "সফল",
+ "suggestions": "পরামর্শ",
+ "sunrise_on_the_beach": "সৈকতে সূর্যোদয়",
+ "support": "সহায়তা",
+ "support_and_feedback": "সহায়তা ও মতামত",
+ "support_third_party_description": "আপনার Immich ইনস্টলেশনটি একটি তৃতীয় পক্ষ দ্বারা প্যাকেজ করা হয়েছিল। আপনি যে সমস্যাগুলো অনুভব করছেন তা সেই প্যাকেজের কারণে হতে পারে, তাই অনুগ্রহ করে নিচের লিংকগুলো ব্যবহার করে প্রথমে তাদের কাছে সমস্যা জানান।",
+ "supporter": "সাপোর্টার",
+ "swap_merge_direction": "একত্র করার দিক অদলবদল করুন",
+ "sync": "সিঙ্ক",
+ "sync_albums": "অ্যালবাম সিঙ্ক করুন",
+ "sync_local": "স্থানীয় সিঙ্ক",
+ "sync_remote": "দূরবর্তী সিঙ্ক",
+ "sync_status": "সিঙ্ক স্ট্যাটাস",
+ "sync_status_subtitle": "সিঙ্ক সিস্টেম দেখুন ও পরিচালনা করুন",
+ "sync_upload_album_setting_subtitle": "Immich-এ নির্বাচিত অ্যালবামে আপনার ছবি ও ভিডিও তৈরি করুন ও আপলোড করুন",
+ "system_theme": "সিস্টেম থিম",
+ "system_theme_command_description": "সিস্টেম থিম ব্যবহার করুন ({value})",
+ "tag": "ট্যাগ",
+ "tag_assets": "অ্যাসেট ট্যাগ করুন",
+ "tag_created": "ট্যাগ তৈরি হয়েছে: {tag}",
+ "tag_face": "মুখ ট্যাগ করুন",
+ "tag_feature_description": "লজিক্যাল ট্যাগ বিষয় অনুযায়ী গ্রুপ করা ছবি ও ভিডিও ব্রাউজ করা",
+ "tag_people": "ব্যক্তি ট্যাগ করুন",
+ "tag_updated": "ট্যাগ আপডেট হয়েছে: {tag}",
+ "tagged_assets": "{count, plural, one {#টি অ্যাসেট} other {#টি অ্যাসেট}} ট্যাগ করা হয়েছে",
+ "tags": "ট্যাগ",
+ "tap_to_run_job": "জব চালাতে ট্যাপ করুন",
+ "template": "টেমপ্লেট",
+ "text_recognition": "টেক্সট রিকগনিশন",
+ "theme": "থিম",
+ "theme_selection": "থিম নির্বাচন",
+ "theme_selection_description": "আপনার ব্রাউজারের সিস্টেম পছন্দ অনুযায়ী স্বয়ংক্রিয়ভাবে থিম লাইট বা ডার্ক সেট করুন",
+ "theme_setting_asset_list_storage_indicator_title": "অ্যাসেট টাইলে স্টোরেজ ইন্ডিকেটর দেখান",
+ "theme_setting_asset_list_tiles_per_row_title": "প্রতি সারিতে অ্যাসেটের সংখ্যা ({count})",
+ "theme_setting_colorful_interface_subtitle": "ব্যাকগ্রাউন্ড পৃষ্ঠে প্রাইমারি রঙ প্রয়োগ করুন।",
+ "theme_setting_colorful_interface_title": "রঙিন ইন্টারফেস",
+ "theme_setting_primary_color_subtitle": "প্রাইমারি অ্যাকশন ও অ্যাকসেন্টের জন্য একটি রঙ নির্বাচন করুন।",
+ "theme_setting_primary_color_title": "প্রাইমারি রঙ",
+ "theme_setting_system_primary_color_title": "সিস্টেম রঙ ব্যবহার করুন",
+ "theme_setting_system_theme_switch": "স্বয়ংক্রিয় (সিস্টেম সেটিং অনুসরণ করুন)",
+ "then": "তারপর",
+ "they_will_be_merged_together": "তাদের একসাথে একত্র করা হবে",
+ "third_party_resources": "তৃতীয়-পক্ষের রিসোর্স",
+ "time": "সময়",
+ "time_based_memories": "সময়-ভিত্তিক স্মৃতি",
+ "time_based_memories_duration": "প্রতিটি ছবি প্রদর্শনের সময়কাল (সেকেন্ডে)।",
+ "timeline": "টাইমলাইন",
+ "timezone": "টাইমজোন",
+ "to_archive": "আর্কাইভ",
+ "to_change_password": "পাসওয়ার্ড পরিবর্তন করুন",
+ "to_favorite": "ফেভারিট",
+ "to_login": "লগইন",
+ "to_multi_select": "একাধিক নির্বাচন করতে",
+ "to_parent": "মূল ফোল্ডারে যান",
+ "to_select": "নির্বাচন করতে",
+ "to_trash": "ট্র্যাশ",
+ "toggle_settings": "সেটিংস টগল করুন",
+ "toggle_theme_description": "থিম টগল করুন",
+ "total": "মোট",
+ "total_usage": "মোট ব্যবহার",
+ "trash": "ট্র্যাশ",
+ "trash_action_prompt": "{count}টি ট্র্যাশে সরানো হয়েছে",
+ "trash_all": "সব ট্র্যাশে পাঠান",
+ "trash_count": "ট্র্যাশ {count, number}",
+ "trash_delete_asset": "অ্যাসেট ট্র্যাশ/মুছুন",
+ "trash_no_results_message": "ট্র্যাশে থাকা ছবি ও ভিডিও এখানে দেখানো হবে।",
+ "trash_page_delete_all": "সব মুছুন",
+ "trash_page_info": "ট্র্যাশে থাকা আইটেমগুলো {days} দিন পর স্থায়ীভাবে মুছে ফেলা হবে",
+ "trashed_items_will_be_permanently_deleted_after": "ট্র্যাশে থাকা আইটেমগুলো {days, plural, one {#দিন} other {#দিন}} পর স্থায়ীভাবে মুছে ফেলা হবে।",
+ "trigger": "ট্রিগার",
+ "trigger_asset_metadata_extraction": "অ্যাসেট মেটাডেটা এক্সট্র্যাকশন",
+ "trigger_asset_metadata_extraction_description": "একটি অ্যাসেটের EXIF মেটাডেটা এক্সট্র্যাক্ট করা হলে ট্রিগার হয়",
+ "trigger_asset_uploaded": "অ্যাসেট আপলোড",
+ "trigger_asset_uploaded_description": "একটি নতুন অ্যাসেট আপলোড করা হলে ট্রিগার হয়",
+ "trigger_person_recognized": "ব্যক্তি শনাক্ত হয়েছে",
+ "trigger_person_recognized_description": "একজন ব্যক্তি শনাক্ত হলে ট্রিগার হয়",
+ "troubleshoot": "সমস্যা সমাধান",
+ "type": "ধরন",
+ "unable_to_change_pin_code": "পিন কোড পরিবর্তন করা যায়নি",
+ "unable_to_check_version": "অ্যাপ বা সার্ভার ভার্সন যাচাই করা যায়নি",
+ "unable_to_setup_pin_code": "পিন কোড সেটআপ করা যায়নি",
+ "unarchive": "আর্কাইভ থেকে বের করুন",
+ "unarchive_action_prompt": "{count}টি আর্কাইভ থেকে সরানো হয়েছে",
+ "unarchived_count": "{count, plural, other {#টি আনআর্কাইভ করা হয়েছে}}",
+ "undo": "পূর্বাবস্থায় ফিরুন",
+ "unfavorite": "ফেভারিট বাদ দিন",
+ "unfavorite_action_prompt": "{count}টি ফেভারিট থেকে সরানো হয়েছে",
+ "unhide_person": "ব্যক্তিকে দৃশ্যমান করুন",
+ "unknown": "অজানা",
+ "unknown_country": "অজানা দেশ",
+ "unknown_date": "অজানা তারিখ",
+ "unknown_schema": "অজানা স্কিমা",
+ "unknown_year": "অজানা বছর",
+ "unlimited": "সীমাহীন",
+ "unlink_motion_video": "মোশন ভিডিও আনলিংক করুন",
+ "unlink_oauth": "OAuth আনলিংক করুন",
+ "unlinked_oauth_account": "আনলিংক করা OAuth অ্যাকাউন্ট",
+ "unmute_memories": "স্মৃতি আনমিউট করুন",
+ "unnamed_album": "নামবিহীন অ্যালবাম",
+ "unnamed_album_delete_confirmation": "আপনি কি নিশ্চিত যে আপনি এই অ্যালবামটি মুছে ফেলতে চান?",
+ "unnamed_share": "নামবিহীন শেয়ার",
+ "unsaved_change": "সংরক্ষিত হয়নি এমন পরিবর্তন",
+ "unselect_all": "সব নির্বাচন বাতিল করুন",
+ "unselect_all_duplicates": "সব ডুপ্লিকেটের নির্বাচন বাতিল করুন",
+ "unstack": "আনস্ট্যাক করুন",
+ "unstack_action_prompt": "{count}টি আনস্ট্যাক করা হয়েছে",
+ "unstacked_assets_count": "{count, plural, one {#টি অ্যাসেট} other {#টি অ্যাসেট}} আনস্ট্যাক করা হয়েছে",
+ "unsupported_field_type": "অসমর্থিত ফিল্ড ধরন",
+ "unsupported_file_type": "{file} ফাইলটি আপলোড করা যাবে না কারণ এর ফাইলের ধরন {type} সমর্থিত নয়।",
+ "untagged": "ট্যাগবিহীন",
+ "up_next": "পরবর্তীতে",
+ "update_location_action_prompt": "{count}টি নির্বাচিত অ্যাসেটের অবস্থান আপডেট করুন এটি দিয়ে:",
+ "updated_at": "আপডেট হয়েছে",
+ "updated_password": "পাসওয়ার্ড আপডেট হয়েছে",
+ "upload": "আপলোড",
+ "upload_concurrency": "আপলোড কনকারেন্সি",
+ "upload_day_count": "{date}: {count, plural, one {#টি আপলোড} other {#টি আপলোড}}",
+ "upload_details": "আপলোডের বিবরণ",
+ "upload_error_with_count": "{count, plural, one {#টি অ্যাসেট} other {#টি অ্যাসেট}}-এর জন্য আপলোড ত্রুটি",
+ "upload_errors": "আপলোড {count, plural, one {#টি ত্রুটি} other {#টি ত্রুটি}} সহ সম্পন্ন হয়েছে, নতুন আপলোড করা অ্যাসেট দেখতে পেজটি রিফ্রেশ করুন।",
+ "upload_finished": "আপলোড শেষ হয়েছে",
+ "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": "আপলোড সফল হয়েছে, নতুন আপলোড করা অ্যাসেট দেখতে পেজটি রিফ্রেশ করুন।",
+ "upload_to_album_body": "যেসব ব্যবহারকারী ম্যানুয়াল আপলোড ফিচার ব্যবহার করেন না, তারা এখন স্থানীয় ছবি আপলোড করার সময় সরাসরি একটি অ্যালবামে যোগ করার অপশন বেছে নিতে পারবেন, আপলোড করার পর আলাদা করে অ্যালবামে যোগ করার আর প্রয়োজন নেই।",
+ "upload_to_album_title": "সরাসরি একটি অ্যালবামে আপলোড করুন",
+ "upload_to_immich": "Immich-এ আপলোড করুন ({count})",
+ "uploading": "আপলোড হচ্ছে",
+ "uploading_media": "মিডিয়া আপলোড হচ্ছে",
+ "uploads": "আপলোড",
+ "uploads_count": "{count, plural, one {#টি আপলোড} other {#টি আপলোড}}",
+ "url": "URL",
+ "usage": "ব্যবহার",
+ "use_biometric": "বায়োমেট্রিক ব্যবহার করুন",
+ "use_browser_locale": "ব্রাউজার লোকেল ব্যবহার করুন",
+ "use_browser_locale_description": "আপনার ব্রাউজার লোকেল অনুযায়ী তারিখ, সময় ও সংখ্যা ফরম্যাট করুন",
+ "use_current_connection": "বর্তমান সংযোগ ব্যবহার করুন",
+ "use_custom_date_range": "পরিবর্তে কাস্টম তারিখের পরিসীমা ব্যবহার করুন",
+ "use_template": "টেমপ্লেট ব্যবহার করুন",
+ "user": "ব্যবহারকারী",
+ "user_has_been_deleted": "এই ব্যবহারকারী মুছে ফেলা হয়েছে।",
+ "user_id": "ব্যবহারকারী ID",
+ "user_liked": "{user} {type, select, photo {এই ছবিটি} video {এই ভিডিওটি} asset {এই অ্যাসেটটি} other {এটি}} লাইক করেছেন",
+ "user_pin_code_settings": "পিন কোড",
+ "user_pin_code_settings_description": "আপনার পিন কোড পরিচালনা করুন",
+ "user_privacy": "ব্যবহারকারীর গোপনীয়তা",
+ "user_purchase_settings": "ক্রয়",
+ "user_purchase_settings_description": "আপনার ক্রয় পরিচালনা করুন",
+ "user_usage_detail": "ব্যবহারকারীর ব্যবহারের বিবরণ",
"user_usage_stats": "অ্যাকাউন্ট ব্যবহারের পরিসংখ্যান",
"user_usage_stats_description": "অ্যাকাউন্ট ব্যবহারের পরিসংখ্যান দেখুন",
+ "username": "ইউজারনেম",
+ "users": "ব্যবহারকারীগণ",
+ "users_added_to_album_count": "অ্যালবামে {count, plural, one {#জন ব্যবহারকারী} other {#জন ব্যবহারকারী}} যোগ করা হয়েছে",
+ "utilities": "ইউটিলিটি",
+ "validate": "যাচাই করুন",
+ "validate_endpoint_error": "অনুগ্রহ করে একটি বৈধ URL লিখুন",
+ "variables": "ভেরিয়েবল",
+ "version": "ভার্সন",
+ "version_announcement_closing": "আপনার বন্ধু, Alex",
+ "version_announcement_message": "হ্যালো! Immich-এর একটি নতুন ভার্সন উপলব্ধ। কোনো ভুল কনফিগারেশন এড়াতে আপনার সেটআপ হালনাগাদ আছে কিনা তা নিশ্চিত করতে অনুগ্রহ করে কিছুটা সময় নিয়ে রিলিজ নোট পড়ুন, বিশেষ করে আপনি যদি WatchTower বা এমন কোনো ব্যবস্থা ব্যবহার করেন যা স্বয়ংক্রিয়ভাবে আপনার Immich ইনস্ট্যান্স আপডেট করে।",
+ "version_history": "ভার্সন ইতিহাস",
+ "version_history_item": "{date}-এ {version} ইনস্টল করা হয়েছে",
+ "video": "ভিডিও",
+ "video_hover_setting": "হোভার করলে ভিডিও থাম্বনেইল চালান",
+ "video_hover_setting_description": "মাউস আইটেমের উপর হোভার করলে ভিডিও থাম্বনেইল চালান। নিষ্ক্রিয় থাকলেও, প্লে আইকনের উপর হোভার করে প্লেব্যাক শুরু করা যায়।",
+ "video_quality": "ভিডিওর মান",
+ "videos": "ভিডিও",
+ "videos_count": "{count, plural, one {#টি ভিডিও} other {#টি ভিডিও}}",
+ "view": "দেখুন",
+ "view_album": "অ্যালবাম দেখুন",
+ "view_all": "সব দেখুন",
+ "view_all_users": "সব ব্যবহারকারী দেখুন",
+ "view_asset_owners": "অ্যাসেটের মালিকদের দেখুন",
+ "view_details": "বিবরণ দেখুন",
+ "view_in_timeline": "টাইমলাইনে দেখুন",
+ "view_link": "লিংক দেখুন",
+ "view_name": "ভিউ",
+ "view_next_asset": "পরবর্তী অ্যাসেট দেখুন",
+ "view_previous_asset": "পূর্ববর্তী অ্যাসেট দেখুন",
+ "view_qr_code": "QR কোড দেখুন",
+ "view_similar_photos": "একই ধরনের ছবি দেখুন",
+ "view_stack": "স্ট্যাক দেখুন",
+ "viewer_remove_from_stack": "স্ট্যাক থেকে সরান",
+ "visibility": "দৃশ্যমানতা",
+ "visibility_changed": "{count, plural, one {#জন ব্যক্তির} other {#জন ব্যক্তির}} দৃশ্যমানতা পরিবর্তন করা হয়েছে",
+ "visual": "ভিজ্যুয়াল",
+ "waiting": "অপেক্ষা করা হচ্ছে",
+ "waiting_count": "অপেক্ষা করা হচ্ছে: {count}",
+ "warning": "সতর্কতা",
+ "week": "সপ্তাহ",
+ "welcome": "স্বাগতম",
+ "welcome_to_immich": "Immich-এ স্বাগতম",
+ "whats_new": "কী নতুন",
+ "whats_new_settings_subtitle": "Immich-এ কী নতুন তা দেখুন",
+ "whats_new_version": "ভার্সন {version}",
+ "when": "কখন",
+ "width": "প্রস্থ",
+ "wifi_name": "Wi-Fi নাম",
+ "workflow": "ওয়ার্কফ্লো",
+ "workflow_delete_prompt": "আপনি কি নিশ্চিত যে আপনি এই ওয়ার্কফ্লোটি মুছে ফেলতে চান?",
+ "workflow_deleted": "ওয়ার্কফ্লো মুছে ফেলা হয়েছে",
+ "workflow_description": "ওয়ার্কফ্লোর বিবরণ",
+ "workflow_info": "ওয়ার্কফ্লোর তথ্য",
+ "workflow_json": "ওয়ার্কফ্লো JSON",
+ "workflow_json_help": "JSON ফরম্যাটে ওয়ার্কফ্লো কনফিগারেশন সম্পাদনা করুন। পরিবর্তনগুলো ভিজ্যুয়াল বিল্ডারে সিঙ্ক হবে।",
+ "workflow_name": "ওয়ার্কফ্লোর নাম",
+ "workflow_navigation_prompt": "আপনি কি নিশ্চিত যে আপনি আপনার পরিবর্তন সংরক্ষণ না করেই চলে যেতে চান?",
+ "workflow_summary": "ওয়ার্কফ্লো সারসংক্ষেপ",
+ "workflow_templates": "ওয়ার্কফ্লো টেমপ্লেট",
+ "workflow_update_success": "ওয়ার্কফ্লো সফলভাবে আপডেট হয়েছে",
+ "workflows": "ওয়ার্কফ্লো",
+ "workflows_help_text": "ওয়ার্কফ্লো ট্রিগার ও ফিল্টারের উপর ভিত্তি করে আপনার অ্যাসেটে অ্যাকশন স্বয়ংক্রিয় করে",
+ "wrong_pin_code": "ভুল পিন কোড",
+ "x_of_total": "{x}/{total}",
+ "year": "বছর",
+ "years_ago": "{years, plural, one {#বছর} other {#বছর}} আগে",
"yes": "হ্যাঁ",
"you_dont_have_any_shared_links": "আপনার কোনো শেয়ার করা লিঙ্ক নেই (You don't have any shared links)",
"your_wifi_name": "আপনার ওয়াই-ফাই এর নাম (Your Wi-Fi name)",
diff --git a/i18n/ca.json b/i18n/ca.json
index 229e9b8fc0..c88cfd8362 100644
--- a/i18n/ca.json
+++ b/i18n/ca.json
@@ -2,788 +2,808 @@
"about": "Quant a",
"account": "Compte",
"account_settings": "Configuració del compte",
- "acknowledge": "Base de coneixement",
+ "acknowledge": "Entesos",
"action": "Acció",
- "action_common_update": "Actualitzar",
- "action_description": "Un conjunt d'accions a realitzar sobre els recursos filtrats",
+ "action_common_update": "Actualitza",
+ "action_description": "Un conjunt d’accions a executar sobre els recursos filtrats",
"actions": "Accions",
- "active": "Actiu",
- "active_count": "Activat: {count}",
+ "active": "Actives",
+ "active_count": "Actives: {count}",
"activity": "Activitat",
- "add": "Afegir",
+ "add": "Afegeix",
"add_a_description": "Afegiu una descripció",
- "add_a_location": "Afegiu una ubicació",
- "add_a_name": "Afegir un nom",
- "add_a_title": "Afegir un títol",
- "add_action": "Afegir acció",
- "add_assets": "Afegir recursos",
+ "add_a_location": "Afegeix una ubicació",
+ "add_a_name": "Afegeix un nom",
+ "add_a_title": "Afegiu un títol",
+ "add_action": "Afegeix una acció",
+ "add_assets": "Afegeix recursos",
"add_birthday": "Afegeix la data de naixement",
- "add_endpoint": "afegir endpoint",
- "add_exclusion_pattern": "Afegir un patró d'exclusió",
- "add_location": "Afegir la ubicació",
- "add_partner": "Afegir company/a",
- "add_photos": "Afegir fotografies",
- "add_step": "Afegeix pas",
- "add_tag": "Afegir una etiqueta",
- "add_to": "Afegir a…",
- "add_to_album": "Afegir a un l'àlbum",
- "add_to_album_bottom_sheet_added": "Afegit a {album}",
- "add_to_album_bottom_sheet_already_exists": "Ja està a {album}",
- "add_to_album_bottom_sheet_some_local_assets": "Alguns recursos locals no s'han pogut afegir a l'àlbum",
- "add_to_albums": "Afegir als àlbums",
- "add_to_albums_count": "Afegir als àlbums ({count})",
- "add_to_bottom_bar": "Afegir a",
- "add_upload_to_stack": "Afegeix la càrrega a la pila",
- "add_url": "Afegir URL",
- "added_to_archive": "Afegir a l'arxiu",
- "added_to_favorites": "Afegit als preferits",
- "added_to_favorites_count": "{count, number} afegits als preferits",
+ "add_endpoint": "Afegeix un endpoint",
+ "add_exclusion_pattern": "Afegeix un patró d’exclusió",
+ "add_location": "Afegeix una ubicació",
+ "add_partner": "Afegeix un company",
+ "add_photos": "Afegeix fotos",
+ "add_step": "Afegeix un pas",
+ "add_tag": "Afegeix una etiqueta",
+ "add_to": "Afegeix a…",
+ "add_to_album": "Afegeix a un àlbum",
+ "add_to_album_bottom_sheet_added": "S’ha afegit a {album}",
+ "add_to_album_bottom_sheet_already_exists": "Ja és a {album}",
+ "add_to_album_bottom_sheet_some_local_assets": "No s’han pogut afegir alguns recursos locals a l’àlbum",
+ "add_to_albums": "Afegeix a àlbums",
+ "add_to_albums_count": "Afegeix a {count} àlbums",
+ "add_to_bottom_bar": "Afegeix a",
+ "add_upload_to_stack": "Afegeix una pujada a la pila",
+ "add_url": "Afegeix un URL",
+ "added_to_archive": "S’ha afegit a l’arxiu",
+ "added_to_favorites": "S’ha afegit als preferits",
+ "added_to_favorites_count": "Se n’han afegit {count, number} als preferits",
"admin": {
- "add_exclusion_pattern_description": "Afegeix patrons d'exclusió. Es permet englobar fent ús de *, **, i ?. Per a ignorar els fitxers de qualsevol directori anomenat \"Raw\" introduïu \"**/Raw/**\". Per a ignorar els fitxers acabats en \".tif\" introduïu \"**/*.tif\". Per a ignorar una ruta absoluta, utilitzeu \"/ruta/a/ignorar/**\".",
+ "add_exclusion_pattern_description": "Afegiu patrons d’exclusió. S’admet englobar fent ús de *, **, i ?. Per a ignorar tots els fitxers de qualsevol directori anomenat «Raw», utilitzeu «**/Raw/**». Per a ignorar tots els fitxers acabats en «.tif», utilitzeu «**/*.tif». Per a ignorar un camí absolut, utilitzeu «/camí/a/ignorar/**».",
"admin_user": "Administrador",
- "asset_offline_description": "Aquest recurs de la biblioteca externa ja no es troba al disc i s'ha mogut a la paperera. Si el fitxer s'ha mogut dins de la biblioteca, comproveu la vostra línia de temps per trobar el nou recurs corresponent. Per restaurar aquest recurs, assegureu-vos que Immich pugui accedir a la ruta del fitxer següent i escanegeu la biblioteca.",
- "authentication_settings": "Configuració de l'autenticació",
- "authentication_settings_description": "Gestiona la contrasenya, OAuth i altres configuracions de l'autenticació",
- "authentication_settings_disable_all": "Estàs segur que vols desactivar tots els mètodes d'inici de sessió? L'inici de sessió quedarà completament desactivat.",
- "authentication_settings_reenable": "Per a tornar a habilitar, empra una Comanda de Servidor.",
+ "asset_offline_description": "Aquest recurs d’una biblioteca externa ja no es troba al disc i s’ha mogut a la paperera. Si el fitxer s’ha mogut dins de la biblioteca, cerqueu el nou recurs corresponent a la vostra cronologia. Per a restaurar aquest recurs, assegureu-vos que l’Immich pugui accedir al camí de fitxers següent i escanegeu la biblioteca.",
+ "authentication_settings": "Configuració de l’autenticació",
+ "authentication_settings_description": "Gestioneu la contrasenya, l’OAuth i altres paràmetres de l’autenticació",
+ "authentication_settings_disable_all": "Segur que voleu desactivar tots els mètodes d’inici de sessió? Es desactivarà completament l’inici de sessió.",
+ "authentication_settings_reenable": "Per a tornar-lo a activar, utilitzeu una ordre del servidor.",
"background_task_job": "Tasques en segon pla",
- "backup_database": "Fer un bolcat de la base de dades",
- "backup_database_enable_description": "Habilitar bolcat de la base de dades",
- "backup_keep_last_amount": "Quantitat de bolcats anteriors per conservar",
+ "backup_database": "Crea un bolcat de la base de dades",
+ "backup_database_enable_description": "Activa els bolcats de la base de dades",
+ "backup_keep_last_amount": "Quantitat de bolcats anteriors a conservar",
"backup_onboarding_1_description": "còpia externa al núvol o en una altra ubicació física.",
- "backup_onboarding_2_description": "còpies locals en diferents dispositius. Això inclou els fitxers principals i una còpia de seguretat d'aquests fitxers localment.",
- "backup_onboarding_3_description": "còpies totals de les vostres dades, inclosos els fitxers originals. Això inclou 1 còpia externa i 2 còpies locals.",
- "backup_onboarding_description": "Es recomana una estratègia de còpia de seguretat 3-2-1 per protegir les vostres dades. Hauríeu de conservar còpies de les vostres fotos/vídeos penjats, així com de la base de dades Immich per obtenir una solució de còpia de seguretat completa.",
- "backup_onboarding_footer": "Per obtenir més informació sobre com fer còpies de seguretat d'Immich, consulteu la documentation.",
+ "backup_onboarding_2_description": "còpies locals en dispositius diferents. Això inclou els fitxers principals i una còpia de seguretat local d’aquests fitxers.",
+ "backup_onboarding_3_description": "còpies totals de les vostres dades, incloent-hi els fitxers originals. Això inclou 1 còpia externa i 2 còpies locals.",
+ "backup_onboarding_description": "És recomanable una estratègia de còpia de seguretat 3-2-1 per a protegir les vostres dades. Per a tenir una solució de còpia de seguretat completa, hauríeu de conservar còpies de les vostres fotos i vídeos penjats, i també de la base de dades de l’Immich.",
+ "backup_onboarding_footer": "Per a més informació sobre com fer la còpia de seguretat de l’Immich, consulteu la documentació.",
"backup_onboarding_parts_title": "Una còpia de seguretat 3-2-1 inclou:",
"backup_onboarding_title": "Còpies de seguretat",
- "backup_settings": "Configuració dels bolcats",
- "backup_settings_description": "Gestionar la configuració de bolcats de la base de dades. Nota: els treballs no es monitoritzen ni es notifiquen els errors.",
- "cleared_jobs": "Tasques esborrades per a: {job}",
+ "backup_settings": "Configuració dels bolcats de la base de dades",
+ "backup_settings_description": "Gestioneu els paràmetres dels bolcats de la base de dades.",
+ "cleared_jobs": "S’han netejat els treballs de: {job}",
"config_set_by_file": "La configuració està definida per un fitxer de configuració",
- "confirm_delete_library": "Esteu segurs que voleu eliminar la llibreria {library}?",
- "confirm_delete_library_assets": "Esteu segurs que voleu esborrar aquesta llibreria? Això esborrarà {count, plural, one {# contained asset} other {all # contained assets}} d'Immich i no es podrà desfer. Els fitxers romandran al disc.",
- "confirm_email_below": "Per a confirmar, escriviu \"{email}\" a sota",
- "confirm_reprocess_all_faces": "Esteu segurs que voleu reprocessar totes les cares? Això també esborrarà la gent que heu anomenat.",
- "confirm_user_password_reset": "Esteu segur que voleu reinicialitzar la contrasenya de l'usuari {user}?",
- "confirm_user_pin_code_reset": "Esteu segur que voleu restablir el codi PIN de {user}?",
+ "confirm_delete_library": "Segur que voleu suprimir la biblioteca {library}?",
+ "confirm_delete_library_assets": "Segur que voleu suprimir aquesta biblioteca? Se {count, plural, one {suprimirà # recurs} other {suprimiran tots els # recursos}} que conté de l’Immich i l’acció no es podrà desfer. Els fitxers romandran al disc.",
+ "confirm_email_below": "Per a confirmar-ho, escriviu «{email}» a sota",
+ "confirm_reprocess_all_faces": "Segur que voleu tornar a processar totes les cares? També s’esborraran totes les persones anomenades.",
+ "confirm_user_password_reset": "Segur que voleu restablir la contrasenya de l’usuari {user}?",
+ "confirm_user_pin_code_reset": "Segur que voleu restablir el codi PIN de l’usuari {user}?",
"copy_config_to_clipboard_description": "Copia la configuració actual del sistema com a objecte JSON al porta-retalls",
- "create_job": "Crear tasca",
- "cron_expression": "Expressió Cron",
- "cron_expression_description": "Estableix l'interval d'escaneig amb el format cron. Per obtenir més informació, consulteu, p.e Crontab Guru",
- "cron_expression_presets": "Ajustos predefinits d'expressions Cron",
- "disable_login": "Deshabiliteu l'inici de sessió",
- "download_csv": "Descarregar CSV",
- "duplicate_detection_job_description": "Executa l'aprenentatge automàtic en els elements per a detectar imatges semblants. Fa servir la cerca intel·ligent",
- "exclusion_pattern_description": "Els patrons d'exclusió permeten ignorar fitxers i carpetes quan escanegeu una llibreria. Això és útil si teniu carpetes que contenen fitxer que no voleu importar, com els fitxers RAW.",
+ "create_job": "Crea una tasca",
+ "cron_expression": "Expressió cron",
+ "cron_expression_description": "Definiu l’interval d’escaneig en format cron. Per a més informació, consulteu Crontab Guru, per exemple",
+ "cron_expression_presets": "Expressions cron predefinides",
+ "disable_login": "Desactiva l’inici de sessió",
+ "download_csv": "Baixa un CSV",
+ "duplicate_detection_job_description": "Executa aprenentatge automàtic sobre els recursos per a detectar imatges semblants. Es basa en la cerca intel·ligent",
+ "exclusion_pattern_description": "Els patrons d’exclusió us permeten ignorar fitxers i carpetes en escanejar la biblioteca. Això és útil si teniu carpetes que contenen fitxers que no voleu importar, com ara fitxers RAW.",
"export_config_as_json_description": "Baixa la configuració actual del sistema com a fitxer JSON",
- "external_libraries_page_description": "Pàgina de la biblioteca externa de l'administrador",
+ "external_libraries_page_description": "Pàgina de la biblioteca externa de l’administrador",
"face_detection": "Detecció de cares",
- "face_detection_description": "Detecta les cares fent servir aprenentatge automàtic. Per a videos només és té en compte la miniatura. \"Actualitzar\" reprocessa tots els elements. \"Resetejar\" esborra tota la informació de cares actuals. \"Pendent\" afegeix a la cua els elements que encara no han estat processats. Les cares detectades s'afegiran a la cua per al Reconeixement Facial després de completar la Detecció Facial, tot agrupant-les entre noves persones o les ja existents.",
- "facial_recognition_job_description": "Agrupa les cares detectades per persona. Aquest pas s'executa després de completar la detecció de cares. \"Resetejar\" reagrupa totes les cares. \"Pendent\" afegeix a la cua les cares que no tenen cap persona assignada.",
- "failed_job_command": "La comanda {command} ha fallat per la tasca: {job}",
- "force_delete_user_warning": "COMPTE: Aquesta acció eliminara immediatament l'usuari i els seus elements. Aquesta acció és irreversible i els fitxers no es poden recuperar.",
+ "face_detection_description": "Detecta cares als recursos fent servir aprenentatge automàtic. Per a vídeos, només es té en compte la miniatura. «Actualitza» torna a processar tots els recursos. «Restableix», a més a més, esborra tota la informació actual de cares. «Pendents» afegeix a la cua els recursos que encara no s’han processat. Les cares detectades s’afegiran a la cua del reconeixement facial després de completar la detecció de cares, tot agrupant-les en persones existents o noves.",
+ "facial_recognition_job_description": "Agrupa les cares detectades en persones. Aquest pas s’executa després de completar la detecció de cares. «Restableix» reagrupa totes les cares. «Pendents» afegeix a la cua les cares que no tenen cap persona assignada.",
+ "failed_job_command": "L’ordre {command} ha fallat a la tasca: {job}",
+ "force_delete_user_warning": "ADVERTÈNCIA: Aquesta acció suprimirà immediatament l’usuari i tots els recursos. Aquesta acció no es pot desfer i els fitxers no es podran recuperar.",
"image_format": "Format",
- "image_format_description": "WebP genera fitxers més petits que JPEG, però codifica més lentament.",
- "image_fullsize_description": "Imatges a tamany complet sense metadades, utilitzades quan es fa zoom",
- "image_fullsize_enabled": "Activa la generació d'imatges a tamany complet",
- "image_fullsize_enabled_description": "Genera imatges a tamany complet per formats no compatibles amb la web. Quan \"Prefereix vista prèvia incrustada\" està activat, les vistes prèvies incrustades s'utilitzen directament sense conversió. No afecta els formats compatibles amb la web com JPEG.",
- "image_fullsize_quality_description": "De 1 a 100, qualitat de l'imatge a tamany complet. Un valor més alt és millor, però resulta en fitxers de major tamany.",
- "image_fullsize_title": "Configuració de les imatges a tamany complet",
- "image_prefer_embedded_preview": "Prefereix vista prèvia incrustada",
- "image_prefer_embedded_preview_setting_description": "Empra vista prèvia incrustada en les fotografies RAW com a entrada per al processament d'imatge, quan sigui possible. Aquesta acció pot produir colors més acurats en algunes imatges, però la qualitat de la vista prèvia depèn de la càmera i la imatge pot tenir més artefactes de compressió.",
+ "image_format_description": "WebP genera fitxers més petits que JPEG, però es codifica més lentament.",
+ "image_fullsize_description": "Imatge de mida completa amb les metadades eliminades. S’utilitza en ampliar",
+ "image_fullsize_enabled": "Activa la generació d’imatges de mida completa",
+ "image_fullsize_enabled_description": "Genera imatges de mida completa per a formats no aptes per al web. Quan s’activa «Prefereix la previsualització incrustada», s’utilitzen directament previsualitzacions incrustades sense conversió. No afecta els formats aptes per al web com JPEG.",
+ "image_fullsize_quality_description": "Qualitat de la imatge de mida completa de l’1 al 100. Un valor més alt és millor, però produeix fitxers més grans.",
+ "image_fullsize_title": "Configuració de les imatges de mida completa",
+ "image_prefer_embedded_preview": "Prefereix la previsualització incrustada",
+ "image_prefer_embedded_preview_setting_description": "Utilitzar la previsualització incrustada en les fotos RAW com a entrada per al processament d’imatges quan sigui possible. Aquesta acció pot produir colors més precisos en algunes imatges, però la qualitat de la previsualització depèn de la càmera i la imatge pot tenir més artefactes de compressió.",
"image_prefer_wide_gamut": "Prefereix la gamma àmplia",
- "image_prefer_wide_gamut_setting_description": "Uitlitza Display P3 per a les miniatures. Això preserva més bé la vitalitat de les imatges amb espais de color àmplis, però les imatges es poden veure diferent en aparells antics amb una versió antiga del navegador. Les imatges sRGB romandran com a sRGB per a evitar canvis de color.",
- "image_preview_description": "Imatge de mida mitjana amb metadades eliminades, que s'utilitza quan es visualitza un sol recurs i per a l'aprenentatge automàtic",
- "image_preview_quality_description": "Vista prèvia de la qualitat de l'1 al 100. Més alt és millor, però produeix fitxers més grans i pot reduir la capacitat de resposta de l'aplicació. Establir un valor baix pot afectar la qualitat de l'aprenentatge automàtic.",
- "image_preview_title": "Paràmetres de previsualització",
+ "image_prefer_wide_gamut_setting_description": "Utilitza Display P3 per a les miniatures. Això conserva millor la vitalitat de les imatges amb espais de color amplis, però les imatges es poden veure diferents en dispositius antics amb una versió antiga del navegador. Les imatges sRGB romandran com a sRGB per a evitar canvis de colors.",
+ "image_preview_description": "Imatge de mida mitjana amb les metadades eliminades. S’utilitza quan es visualitza un sol recurs i per a l’aprenentatge automàtic",
+ "image_preview_quality_description": "Qualitat de la previsualització de l’1 al 100. Un valor més alt és millor, però produeix fitxers més grans i pot reduir la capacitat de resposta de l’aplicació. Establir-hi un valor baix pot afectar la qualitat de l’aprenentatge automàtic.",
+ "image_preview_title": "Configuració de les previsualitzacions",
"image_progressive": "Progressiu",
- "image_progressive_description": "Codifica les imatges JPEG progressivament per a una visualització amb càrrega gradual. Això no té cap efecte sobre les imatges WebP.",
+ "image_progressive_description": "Codifica les imatges JPEG en mode progressiu perquè es visualitzin amb una càrrega gradual. No té cap efecte sobre les imatges WebP.",
"image_quality": "Qualitat",
"image_resolution": "Resolució",
- "image_resolution_description": "Les resolucions més altes poden conservar més detalls però triguen més a codificar-se, tenen mides de fitxer més grans i poden reduir la capacitat de resposta de l'aplicació.",
+ "image_resolution_description": "Les resolucions més altes poden conservar més detalls, però tarden més temps a codificar-se, tenen mides de fitxer més grans i poden reduir la capacitat de resposta de l’aplicació.",
"image_settings": "Configuració de les imatges",
- "image_settings_description": "Gestiona la qualitat i resolució de les imatges generades",
- "image_thumbnail_description": "Miniatura petita amb metadades eliminades, que s'utilitza quan es visualitzen grups de fotos com la línia de temps principal",
- "image_thumbnail_quality_description": "Qualitat de miniatura d'1 a 100. Més alt és millor, però produeix fitxers més grans i pot reduir la capacitat de resposta de l'aplicació.",
+ "image_settings_description": "Gestioneu la qualitat i la resolució de les imatges generades",
+ "image_thumbnail_description": "Miniatura petita amb les metadades eliminades. S’utilitza quan es visualitzen grups de fotos, com ara la cronologia principal",
+ "image_thumbnail_quality_description": "Qualitat de la miniatura de l’1 al 100. Un valor més alt és millor, però produeix fitxers més grans i pot reduir la capacitat de resposta de l’aplicació.",
"image_thumbnail_title": "Configuració de les miniatures",
"import_config_from_json_description": "Importa la configuració del sistema pujant un fitxer de configuració JSON",
- "job_concurrency": "{job} simultàniament",
- "job_created": "Tasca creada",
- "job_not_concurrency_safe": "Aquesta tasca no és segura per a la conconcurrència.",
+ "integrity_checks_checksum_files": "Verifica la integritat dels fitxers",
+ "integrity_checks_checksum_files_description": "Configureu la verificació de la integritat",
+ "integrity_checks_checksum_files_enable_description": "Activa la verificació de la integritat",
+ "integrity_checks_checksum_files_percentage_limit": "Percentatge límit",
+ "integrity_checks_checksum_files_percentage_limit_description": "Configura el percentatge màxim, entre 0,01 i 1, de la durada de la comprovació de la suma de verificació en cada interval.",
+ "integrity_checks_checksum_files_time_limit": "Límit de temps",
+ "integrity_checks_checksum_files_time_limit_description": "Configura la durada màxima de la comprovació de la suma de verificació en cada interval. (ms)",
+ "integrity_checks_missing_files": "Fitxers absents",
+ "integrity_checks_missing_files_description": "Configureu la freqüència i activeu o desactiveu la verificació dels fitxers absents",
+ "integrity_checks_missing_files_enable_description": "Activa la verificació dels fitxers absents",
+ "integrity_checks_settings": "Verificacions d’integritat",
+ "integrity_checks_settings_description": "Gestioneu els intervals de les verificacions d’integritat",
+ "integrity_checks_untracked_files": "Fitxers sense seguiment",
+ "integrity_checks_untracked_files_description": "Configureu la freqüència i activeu o desactiveu la verificació dels fitxers sense seguiment",
+ "integrity_checks_untracked_files_enable_description": "Activa la verificació dels fitxers sense seguiment",
+ "job_concurrency": "Concurrència de la tasca {job}",
+ "job_created": "S’ha creat la tasca",
+ "job_not_concurrency_safe": "Aquesta tasca no admet concurrència de manera segura.",
"job_settings": "Configuració de les tasques",
- "job_settings_description": "Gestiona la concurrència de tasques",
- "jobs_delayed": "{jobCount, plural, other {# posposades}}",
- "jobs_failed": "{jobCount, plural, other {# fallides}}",
- "jobs_over_time": "Feines al llarg del temps",
- "library_created": "Bilbioteca creada: {library}",
- "library_deleted": "Bilbioteca eliminada",
- "library_details": "Detalls de la llibreria",
- "library_folder_description": "Especifiqueu una carpeta per importar. Aquesta carpeta, incloses les subcarpetes, s'escanejarà a la recerca d'imatges i vídeos.",
- "library_remove_exclusion_pattern_prompt": "Esteu segur que voleu eliminar aquest patró d'exclusió?",
- "library_remove_folder_prompt": "Esteu segur que voleu eliminar aquesta carpeta d'importació?",
+ "job_settings_description": "Gestioneu la concurrència de les tasques",
+ "jobs_delayed": "{jobCount, plural, one {# d’endarrerida} other {# d’endarrerides}}",
+ "jobs_failed": "{jobCount, plural, one {# de fallida} other {# de fallides}}",
+ "jobs_over_time": "Tasques al llarg del temps",
+ "library_created": "S’ha creat la biblioteca: {library}",
+ "library_deleted": "S’ha suprimit la biblioteca",
+ "library_details": "Detalls de la biblioteca",
+ "library_folder_description": "Especifiqueu una carpeta a importar. Aquesta carpeta, incloses les subcarpetes, s’escanejarà cercant-hi imatges i vídeos.",
+ "library_remove_exclusion_pattern_prompt": "Segur que voleu suprimir aquest patró d’exclusió?",
+ "library_remove_folder_prompt": "Segur que voleu suprimir aquesta carpeta d’importació?",
"library_scanning": "Escaneig periòdic",
- "library_scanning_description": "Configurar l'escaneig periòdic de bilbioteques",
- "library_scanning_enable_description": "Habilita l'escaneig periòdic de biblioteques",
- "library_settings": "Llibreria externes",
- "library_settings_description": "Gestiona la configuració de les llibreries externes",
- "library_tasks_description": "Escaneja les biblioteques externes per trobar arxius nous o canviats",
- "library_updated": "Llibreria actualitzada",
- "library_watching_enable_description": "Consultar llibreries externes per detectar canvis en fitxers",
- "library_watching_settings": "Monitoratge de la llibreria (EXPERIMENTAL)",
- "library_watching_settings_description": "Monitorització automàtica de fitxers modificats",
- "logging_enable_description": "Habilitar el registrament",
- "logging_level_description": "Quan està habilitat, quin nivell de registre es vol emprar.",
+ "library_scanning_description": "Configureu l’escaneig periòdic de la biblioteca",
+ "library_scanning_enable_description": "Activa l’escaneig periòdic de la biblioteca",
+ "library_settings": "Biblioteques externes",
+ "library_settings_description": "Gestioneu la configuració de les biblioteques externes",
+ "library_tasks_description": "Escaneja les biblioteques externes cercant-hi recursos nous i/o modificats",
+ "library_updated": "S’ha actualitzat la biblioteca",
+ "library_watching_enable_description": "Monitora si hi ha canvis de fitxers a les biblioteques externes",
+ "library_watching_settings": "Monitoratge de biblioteques (EXPERIMENTAL)",
+ "library_watching_settings_description": "Monitora automàticament els fitxers modificats",
+ "logging_enable_description": "Activa el registre",
+ "logging_level_description": "Quin nivell de registre voleu utilitzar quan estigui activat.",
"logging_settings": "Registre",
"machine_learning_availability_checks": "Comprovacions de disponibilitat",
- "machine_learning_availability_checks_description": "Detectar i preferir automàticament els servidors d'aprenentatge automàtic disponibles",
- "machine_learning_availability_checks_enabled": "Habilita les comprovacions de disponibilitat",
+ "machine_learning_availability_checks_description": "Detecta i prefereix automàticament els servidors d’aprenentatge automàtic disponibles",
+ "machine_learning_availability_checks_enabled": "Activa les comprovacions de disponibilitat",
"machine_learning_availability_checks_interval": "Interval de comprovació",
"machine_learning_availability_checks_interval_description": "Interval en mil·lisegons entre comprovacions de disponibilitat",
- "machine_learning_availability_checks_timeout": "Temps d'espera de la sol·licitud",
- "machine_learning_availability_checks_timeout_description": "Temps d'espera en mil·lisegons per a les comprovacions de disponibilitat",
+ "machine_learning_availability_checks_timeout": "Temps d’espera de la sol·licitud",
+ "machine_learning_availability_checks_timeout_description": "Temps d’espera en mil·lisegons per a les comprovacions de disponibilitat",
"machine_learning_clip_model": "Model CLIP",
- "machine_learning_clip_model_description": "El nom d'un model CLIP que apareix a aquí. Tingues en compte que has de tornar a executar la cerca intel·ligent per a totes les imatges quan es canvia de model.",
+ "machine_learning_clip_model_description": "El nom d’un model CLIP que aparegui aquí. Tingueu en compte que si canvieu de model, cal que torneu a executar la tasca «Cerca intel·ligent» per a totes les imatges.",
"machine_learning_duplicate_detection": "Detecció de duplicats",
"machine_learning_duplicate_detection_enabled": "Activa la detecció de duplicats",
"machine_learning_duplicate_detection_enabled_description": "Si està desactivada, els elements idèntics encara es desduplicaran.",
- "machine_learning_duplicate_detection_setting_description": "Usa incrustacions CLIP per a trobar prossibles duplicats",
- "machine_learning_enabled": "Activa l'aprenentatge automàtic",
- "machine_learning_enabled_description": "Si està desactivat, totes les funcions ML es deshabilitaran sense tenir en compte la configuració següent.",
+ "machine_learning_duplicate_detection_setting_description": "Utilitza incrustacions CLIP per a trobar possibles duplicats",
+ "machine_learning_enabled": "Activa l’aprenentatge automàtic",
+ "machine_learning_enabled_description": "Si està desactivat, totes les funcions de ML es desactivaran, independentment de la configuració següent.",
"machine_learning_facial_recognition": "Reconeixement facial",
"machine_learning_facial_recognition_description": "Detecta, reconeix i agrupa cares a les imatges",
"machine_learning_facial_recognition_model": "Model de reconeixement facial",
- "machine_learning_facial_recognition_model_description": "Els models es llisten en ordre descent segons la mida. Els models més grans són més lents i usen més memòria però produeixen millors resultats. Tingueu en compte que després de canviar un model haureu de tornar a executar la tasca de detecció de cares per a totes les imatges.",
+ "machine_learning_facial_recognition_model_description": "Els models apareixen a la llista en ordre descent segons la mida. Els models més grans són més lents i utilitzen més memòria, però produeixen millors resultats. Tingueu en compte que després de canviar un model haureu de tornar a executar la tasca de detecció de cares per a totes les imatges.",
"machine_learning_facial_recognition_setting": "Activa el reconeixement facial",
- "machine_learning_facial_recognition_setting_description": "Si està desactivat, les imatges no es codificaran pel reconeixement facial i no s'afegiran a la secció Persones de la pàgina Explorar.",
+ "machine_learning_facial_recognition_setting_description": "Si està desactivat, les imatges no es codificaran per al reconeixement facial i no s’omplirà la secció Persones de la pàgina Explora.",
"machine_learning_max_detection_distance": "Distància màxima de detecció",
- "machine_learning_max_detection_distance_description": "Diferència màxima entre dues imatges per a considerar-les duplicades, en un rang d'entre 0.001-0.1. Com més elevat el valor més detecció de duplicats, però pot resultar en falsos positius.",
- "machine_learning_max_recognition_distance": "Màxima diferència de reconeixement",
- "machine_learning_max_recognition_distance_description": "La distància màxima entre dues cares per considerar-les la mateixa persona, que oscil·la entre 0-2. Reduir aquest valor pot evitar etiquetar dues persones com la mateixa, mentre que augmentar-lo pot evitar etiquetar la mateixa persona com dues diferents. Tingues en compte que és més fàcil fusionar dues persones que dividir-ne una en dues, així que, si és possible, és millor optar per un llindar més baix.",
+ "machine_learning_max_detection_distance_description": "Distància màxima entre dues imatges per a considerar-les duplicades, en un rang entre 0,001 i 0,1. Els valors més alts detectaran més duplicats, però podeu provocar falsos positius.",
+ "machine_learning_max_recognition_distance": "Distància màxima de reconeixement",
+ "machine_learning_max_recognition_distance_description": "Distància màxima entre dues cares per a considerar-les la mateixa persona, entre 0 i 2. Reduir aquest valor pot evitar que s’etiquetin dues persones com a la mateixa, mentre que augmentar-lo pot evitar que s’etiqueti la mateixa persona com a dues de diferents. Tingueu en compte que és més fàcil fusionar dues persones que dividir-ne una en dues, de manera que, si és possible, és millor optar per un llindar més baix.",
"machine_learning_min_detection_score": "Puntuació mínima de detecció",
- "machine_learning_min_detection_score_description": "La puntuació mínima de confiança per detectar una cara és de 0 a 1. Valors més baixos detectaran més cares, però poden donar lloc a falsos positius.",
- "machine_learning_min_recognized_faces": "Nombre mínim de cares reconegudes",
- "machine_learning_min_recognized_faces_description": "El nombre mínim de cares reconegudes per crear una persona. Augmentar aquest valor fa que el reconeixement facial sigui més precís, però augmenta la possibilitat que una cara no sigui assignada a una persona.",
+ "machine_learning_min_detection_score_description": "Puntuació de confiança mínima perquè es detecti una cara entre 0 i 1. Els valors més baixos detectaran més cares, però poden provocar falsos positius.",
+ "machine_learning_min_recognized_faces": "Mínim de cares reconegudes",
+ "machine_learning_min_recognized_faces_description": "Nombre mínim de cares reconegudes perquè es creï una persona. Augmentar aquest valor fa que el reconeixement facial sigui més precís, però augmenta la probabilitat que una cara no sigui assignada a una persona.",
"machine_learning_ocr": "OCR",
- "machine_learning_ocr_description": "Fes servir machine learning per reconèixer text a imatges",
- "machine_learning_ocr_enabled": "Activar OCR",
- "machine_learning_ocr_enabled_description": "Si està desactivat, les imatges no seran objecte de reconeixement de text.",
- "machine_learning_ocr_max_resolution": "Màxima resolució",
- "machine_learning_ocr_max_resolution_description": "Vista prèvia per sobre d'aquesta resolució serà reescalada per preservar la relació d'aspecte. Resolucions altes són més precises, però triguen més i gasten més memòria.",
+ "machine_learning_ocr_description": "Utilitza aprenentatge automàtic per a reconèixer text a les imatges",
+ "machine_learning_ocr_enabled": "Activa l’OCR",
+ "machine_learning_ocr_enabled_description": "Si està desactivat, les imatges no se sotmetran al reconeixement de text.",
+ "machine_learning_ocr_max_resolution": "Resolució màxima",
+ "machine_learning_ocr_max_resolution_description": "Les previsualitzacions que estiguin per sobre d’aquesta resolució es redimensionaran mantenint-ne la relació d’aspecte. Els valors més alts són més precisos, però tarden més temps a processar-se i utilitzem més memòria.",
"machine_learning_ocr_min_detection_score": "Puntuació mínima de detecció",
- "machine_learning_ocr_min_detection_score_description": "Puntuació de mínima confiança per la detecció del text entre 0-1. Valors baixos detectaran més text pero pot donar falsos positius.",
- "machine_learning_ocr_min_recognition_score": "Puntuació mínima de reconeixement",
- "machine_learning_ocr_min_score_recognition_description": "Puntuació de confiança mínima pel reconeixement del text entre 0-1. Valors baixos reconeixen més text però pot donar falsos positius.",
- "machine_learning_ocr_model": "Model OCR",
- "machine_learning_ocr_model_description": "Models de servidor són més precisos que els de móbil, pero triguen més a processar i usen més memòria.",
- "machine_learning_settings": "Configuració d'aprenentatge automàtic",
- "machine_learning_settings_description": "Gestiona funcions i configuració d'aprenentatge automàtic",
+ "machine_learning_ocr_min_detection_score_description": "Puntuació de confiança mínima perquè es detectiu text entre 0 i 1. Els valors baixos detectaran més text, però poden provocar falsos positius.",
+ "machine_learning_ocr_min_recognition_score": "Puntuació de reconeixement mínima",
+ "machine_learning_ocr_min_score_recognition_description": "Puntuació de confiança mínima perquè el text detectat sigui reconegut entre 0 i 1. Els valors baixos reconeixeran més text, però poden provocar falsos positius.",
+ "machine_learning_ocr_model": "Model d’OCR",
+ "machine_learning_ocr_model_description": "Els models de servidor són més precisos que els de mòbils, pero triguen més temps a processar i utilitzen més memòria.",
+ "machine_learning_settings": "Configuració de l’aprenentatge automàtic",
+ "machine_learning_settings_description": "Gestioneu les funcions i la configuració de l’aprenentatge automàtic",
"machine_learning_smart_search": "Cerca intel·ligent",
- "machine_learning_smart_search_description": "Cerca imatges semànticament emprant incrustacions CLIP",
+ "machine_learning_smart_search_description": "Cerqueu imatges semànticament utilitzant incrustacions CLIP",
"machine_learning_smart_search_enabled": "Activa la cerca intel·ligent",
- "machine_learning_smart_search_enabled_description": "Si està desactivada, les imatges no es codificaran per la cerca intel·ligent.",
- "machine_learning_url_description": "L'URL del servidor d'aprenentatge automàtic. Si es proporciona més d'un URL, s'intentarà accedir a cada servidor en ordre fins que un d'ells respongui correctament.",
+ "machine_learning_smart_search_enabled_description": "Si està desactivada, les imatges no es codificaran per a la cerca intel·ligent.",
+ "machine_learning_url_description": "L’URL del servidor d’aprenentatge automàtic. Si proporcioneu més d’un URL, es provarà d’accedir a cada servidor en ordre fins que un respongui correctament. Els servidors que no responguin s’ignoraran temporalment fins que tornin a estar en línia.",
"maintenance_backup_management": "Gestió de còpies de seguretat",
- "maintenance_delete_backup": "Elimina la còpia de seguretat",
- "maintenance_delete_backup_description": "Aquest fitxer s'eliminarà de forma permanent.",
- "maintenance_delete_error": "No s'ha pogut suprimir la còpia de seguretat.",
- "maintenance_integrity_check": "Verificació",
- "maintenance_integrity_check_all": "Verificar tot",
- "maintenance_integrity_checksum_mismatch": "Checksum incorrecte",
- "maintenance_integrity_checksum_mismatch_description": "Fitxers els quals la suma de verificació al disc no coincideix amb la que Immich té emmagatzemada a la base de dades.",
- "maintenance_integrity_checksum_mismatch_job": "Comprovar checksums",
- "maintenance_integrity_checksum_mismatch_refresh_job": "Actualitzar errors de checksums",
- "maintenance_integrity_missing_file": "Manquen fitxers",
- "maintenance_integrity_missing_file_description": "Fitxers que l'Immich té registrats a la seva base de dades però que no existeixen al sistema de fitxers.",
- "maintenance_integrity_missing_file_job": "Verificar fitxers que falten",
- "maintenance_integrity_missing_file_refresh_job": "Refrescar informe de fitxers desapareguts",
- "maintenance_integrity_report": "Informe Integritat",
- "maintenance_integrity_untracked_file": "Arxius no rastrejats",
- "maintenance_integrity_untracked_file_description": "Fitxers presents als directoris d'Immich que Immich no en té cap registre.",
- "maintenance_integrity_untracked_file_job": "Consulta de fitxers no rastrejats",
- "maintenance_integrity_untracked_file_refresh_job": "Actualitza els informes de fitxers no rastrejats",
- "maintenance_restore_backup": "Restaura la còpia de seguretat",
- "maintenance_restore_backup_description": "Immich s'esborrarà i es restaurarà des de la còpia de seguretat escollida. Es crearà una còpia de seguretat abans de continuar.",
- "maintenance_restore_backup_different_version": "Aquesta còpia de seguretat s'ha creat amb una versió diferent d'Immich!",
- "maintenance_restore_backup_unknown_version": "No s'ha pogut determinar la versió de la còpia de seguretat.",
- "maintenance_restore_database_backup": "Restaurar la còpia de seguretat de la base de dades",
- "maintenance_restore_database_backup_description": "Reverteix a un estat anterior de la base de dades mitjançant un fitxer de còpia de seguretat",
- "maintenance_settings": "En manteniment",
- "maintenance_settings_description": "Posar Immich en mode de manteniment.",
- "maintenance_start": "Canviar al mode de manteniment",
- "maintenance_start_error": "Error en iniciar el mode de manteniment.",
- "maintenance_upload_backup": "Puja el fitxer de còpia de seguretat de la base de dades",
- "maintenance_upload_backup_error": "No s'ha pogut carregar la còpia de seguretat, és un fitxer .sql/.sql.gz?",
+ "maintenance_delete_backup": "Suprimeix la còpia de seguretat",
+ "maintenance_delete_backup_description": "Aquest fitxer se suprimirà de manera permanent.",
+ "maintenance_delete_error": "No s’ha pogut suprimir la còpia de seguretat.",
+ "maintenance_integrity_check": "Verifica",
+ "maintenance_integrity_check_all": "Verifica-ho tot",
+ "maintenance_integrity_checksum_mismatch": "Verificació incorrecta",
+ "maintenance_integrity_checksum_mismatch_description": "Fitxers la suma de verificació dels quals no coincideix amb la que l’Immich té emmagatzemada a la base de dades.",
+ "maintenance_integrity_checksum_mismatch_job": "Comprova les incoherències de verificació",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "Actualitza els informes de verificació incorrecta",
+ "maintenance_integrity_missing_file": "Fitxers absents",
+ "maintenance_integrity_missing_file_description": "Fitxers que l’Immich té registrats a la base de dades, però que no existeixen al sistema de fitxers.",
+ "maintenance_integrity_missing_file_job": "Verifica els fitxers absents",
+ "maintenance_integrity_missing_file_refresh_job": "Actualitza els informes de fitxers absents",
+ "maintenance_integrity_report": "Informe d’integritat",
+ "maintenance_integrity_untracked_file": "Fitxers sense seguiment",
+ "maintenance_integrity_untracked_file_description": "Fitxers als directoris de l’Immich dels quals l’Immich no té cap registre.",
+ "maintenance_integrity_untracked_file_job": "Revisa els fitxers sense seguiment",
+ "maintenance_integrity_untracked_file_refresh_job": "Actualitza els informes dels fitxers sense seguiment",
+ "maintenance_restore_backup": "Restaura una còpia de seguretat",
+ "maintenance_restore_backup_description": "S’esborrarà el contingut de l’Immich i es restaurarà a partir de la còpia de seguretat elegida. Abans de continuar, es crearà una còpia de seguretat.",
+ "maintenance_restore_backup_different_version": "Aquesta còpia de seguretat es va crear amb una versió diferent de l’Immich!",
+ "maintenance_restore_backup_unknown_version": "No s’ha pogut determinar la versió de la còpia de seguretat.",
+ "maintenance_restore_database_backup": "Restaura una còpia de seguretat de la base de dades",
+ "maintenance_restore_database_backup_description": "Revertiu a un estat anterior de la base de dades mitjançant un fitxer de còpia de seguretat",
+ "maintenance_settings": "Manteniment",
+ "maintenance_settings_description": "Poseu l’Immich en mode de manteniment.",
+ "maintenance_start": "Canvia al mode de manteniment",
+ "maintenance_start_error": "S’ha produït un error en iniciar el mode de manteniment.",
+ "maintenance_upload_backup": "Pugeu un fitxer de còpia de seguretat de la base de dades",
+ "maintenance_upload_backup_error": "No s’ha pogut pujar la còpia de seguretat. És un fitxer .sql/.sql.gz?",
"manage_concurrency": "Gestiona la concurrència",
- "manage_concurrency_description": "Ves a la pàgina de tasques per gestionar la concurrència de tasques",
- "manage_log_settings": "Gestiona la configuració del registre",
- "map_dark_style": "Tema fosc",
- "map_enable_description": "Habilita característiques del mapa",
- "map_gps_settings": "Configuració del mapa i GPS",
- "map_gps_settings_description": "Gestiona la configuració del mapa i GPS (Geocodificació inversa)",
- "map_implications": "La funció mapa depèn del servei extern de tesel·les (tiles.immich.cloud)",
- "map_light_style": "Tema clar",
- "map_manage_reverse_geocoding_settings": "Gestiona els paràmetres de geocodificació inversa",
+ "manage_concurrency_description": "Aneu a la pàgina de tasques per a gestionar la concurrència de tasques",
+ "manage_log_settings": "Gestioneu la configuració del registre",
+ "map_dark_style": "Estil fosc",
+ "map_enable_description": "Activa les funcionalitats del mapa",
+ "map_gps_settings": "Configuració del mapa i del GPS",
+ "map_gps_settings_description": "Gestioneu els paràmetres del mapa i del GPS (geocodificació inversa)",
+ "map_implications": "La funció del mapa depèn del servei extern de tesel·les (tiles.immich.cloud)",
+ "map_light_style": "Estil clar",
+ "map_manage_reverse_geocoding_settings": "Gestioneu els paràmetres de la geocodificació inversa",
"map_reverse_geocoding": "Geocodificació inversa",
- "map_reverse_geocoding_enable_description": "Habilita la geocodificació inversa",
- "map_reverse_geocoding_settings": "Configuració de Geocodificació Inversa",
+ "map_reverse_geocoding_enable_description": "Activa la geocodificació inversa",
+ "map_reverse_geocoding_settings": "Configuració de la geocodificació inversa",
"map_settings": "Mapa",
- "map_settings_description": "Gestiona la configuració del mapa",
- "map_style_description": "URL a un tema del mapa style.json",
- "memory_cleanup_job": "Neteja de memòries",
- "memory_generate_job": "Generació de memòries",
- "metadata_extraction_job": "Extreure metadades",
- "metadata_extraction_job_description": "Extreu la informació de metadades de cada element, com per exemple el GPS i la resolució",
- "metadata_faces_import_setting": "Activar la importació de cares",
- "metadata_faces_import_setting_description": "Importar cares des de les metadades EXIF de les imatges i arxius auxiliars",
+ "map_settings_description": "Gestioneu la configuració del mapa",
+ "map_style_description": "URL a un style.json de tema del mapa",
+ "memory_cleanup_job": "Neteja de records",
+ "memory_generate_job": "Generació de records",
+ "metadata_extraction_job": "Extreu les metadades",
+ "metadata_extraction_job_description": "Extreu la informació de les metadades de cada recurs, com ara el GPS, les cares i la resolució",
+ "metadata_faces_import_setting": "Activa la importació de cares",
+ "metadata_faces_import_setting_description": "Importa les cares de les metadades EXIF i dels fitxers auxiliars de les imatges",
"metadata_settings": "Configuració de les metadades",
- "metadata_settings_description": "Administrar la configuració de les metadades",
+ "metadata_settings_description": "Gestioneu els paràmetres de les metadades",
"migration_job": "Migració",
- "migration_job_description": "Migra les miniatures d'elements i cares cap a la nova estructura de carpetes",
- "nightly_tasks_cluster_faces_setting_description": "Executar el reconeixement facial en cares recentment detectades",
- "nightly_tasks_cluster_new_faces_setting": "Agrupa cares noves",
+ "migration_job_description": "Migra les miniatures dels recursos i les cares a la estructura de carpetes més recent",
+ "nightly_tasks_cluster_faces_setting_description": "Executa el reconeixement facial a les cares detectades recentment",
+ "nightly_tasks_cluster_new_faces_setting": "Agrupa les cares noves",
"nightly_tasks_database_cleanup_setting": "Tasques de neteja de la base de dades",
"nightly_tasks_database_cleanup_setting_description": "Netegeu les dades antigues i caducades de la base de dades",
"nightly_tasks_generate_memories_setting": "Generar memòries",
"nightly_tasks_generate_memories_setting_description": "Crear nous records a partir de les fotos penjades",
"nightly_tasks_missing_thumbnails_setting": "Generar les miniatures restants",
- "nightly_tasks_missing_thumbnails_setting_description": "Posar en cua les fotos penjades sense miniatures per a la generació de la seva miniatura",
+ "nightly_tasks_missing_thumbnails_setting_description": "Posa en cua els recursos sense miniatures perquè se’n generin les miniatures",
"nightly_tasks_settings": "Configuració de les tasques nocturnes",
- "nightly_tasks_settings_description": "Gestionar les tasques nocturnes",
- "nightly_tasks_start_time_setting": "Hora d'inici",
+ "nightly_tasks_settings_description": "Gestioneu les tasques nocturnes",
+ "nightly_tasks_start_time_setting": "Hora d’inici",
"nightly_tasks_start_time_setting_description": "Hora en què el servidor comença a executar les tasques nocturnes",
- "nightly_tasks_sync_quota_usage_setting": "Sincronitzar l'ús de la quota",
- "nightly_tasks_sync_quota_usage_setting_description": "Actualitzar la quota d'emmagatzematge de l'usuari segons l'ús actual",
- "no_paths_added": "No s'ha afegit cap ruta",
- "no_pattern_added": "Cap patró aplicat",
- "note_apply_storage_label_previous_assets": "Nota: Per aplicar l'etiquetatge d'emmagatzematge a elements pujats prèviament, executeu la",
- "note_cannot_be_changed_later": "NOTA: Això és irreversible!",
- "notification_email_from_address": "Des de l'adreça",
- "notification_email_from_address_description": "Adreça de correu electrònic del remitent, per exemple: \"Immich Photo Server \". Assegureu-vos d'utilitzar una adreça des de la qual tingueu permís per enviar correus electrònics.",
- "notification_email_host_description": "Amfitrió del servidor de correu electrònic (p.ex. smtp.immich.app)",
+ "nightly_tasks_sync_quota_usage_setting": "Sincronitza la quota d’ús",
+ "nightly_tasks_sync_quota_usage_setting_description": "Actualitza la quota d’emmagatzematge de l’usuari segons l’ús actual",
+ "no_paths_added": "No s’ha afegit cap camí",
+ "no_pattern_added": "No s’ha afegit cap patró",
+ "note_apply_storage_label_previous_assets": "Nota: Per a aplicar l’etiqueta d’emmagatzematge als recursos pujats prèviament, executeu la",
+ "note_cannot_be_changed_later": "NOTA: Després no es podrà canviar!",
+ "notification_email_from_address": "De l’adreça",
+ "notification_email_from_address_description": "Adreça electrònica del remitent, per exemple, «Immich Photo Server ». Assegureu-vos d’utilitzar una adreça amb la qual tingueu permís per a enviar correus electrònics.",
+ "notification_email_host_description": "Amfitrió del servidor de correu electrònic (p. ex. smtp.immich.app)",
"notification_email_ignore_certificate_errors": "Ignora els errors de certificat",
"notification_email_ignore_certificate_errors_description": "Ignora els errors de validació de certificat TLS (no recomanat)",
"notification_email_password_description": "Contrasenya per a autenticar-se amb el servidor de correu electrònic",
- "notification_email_port_description": "Port del servidor de correu electrònic (p.ex. 25, 465 o 587)",
+ "notification_email_port_description": "Port del servidor de correu electrònic (p. ex. 25, 465 o 587)",
"notification_email_secure": "SMTPS",
- "notification_email_secure_description": "Fes servir SMTPS (SMTP sobre TLS)",
- "notification_email_sent_test_email_button": "Envia correu de prova i desa",
- "notification_email_setting_description": "Configuració per l'enviament de notificacions per correu electrònic",
- "notification_email_test_email": "Envia correu de prova",
- "notification_email_test_email_failed": "L'enviament del correu de prova ha fallat, comproveu els valors introduïts",
- "notification_email_test_email_sent": "Un correu de prova ha estat enviat a {email}. Si us plau, comproveu la safata d'entrada.",
- "notification_email_username_description": "Usuari a fer servir a l'autenticar-se al servidor de correu electrònic",
- "notification_enable_email_notifications": "Habilita les notificacions de correu electrònic",
- "notification_settings": "Configuració de notificacions",
- "notification_settings_description": "Gestiona la configuració de notificacions, incloent-hi el correu electrònic",
+ "notification_email_secure_description": "Utilitza SMTPS (SMTP sobre TLS)",
+ "notification_email_sent_test_email_button": "Envia un correu electrònic de prova i desa",
+ "notification_email_setting_description": "Configuració per a l’enviament de notificacions per correu electrònic",
+ "notification_email_test_email": "Envia un correu electrònic de prova",
+ "notification_email_test_email_failed": "No s’ha pogut enviar el correu electrònic de prova, reviseu els valors introduïts",
+ "notification_email_test_email_sent": "S’ha enviat un correu electrònic de prova a {email}. Reviseu-ne la safata d’entrada.",
+ "notification_email_username_description": "Usuari que s’utilitzarà per a autenticar-se al servidor de correu electrònic",
+ "notification_enable_email_notifications": "Activa les notificacions per correu electrònic",
+ "notification_settings": "Configuració de les notificacions",
+ "notification_settings_description": "Gestioneu els paràmetres de les notificacions, incloent-hi el correu electrònic",
"oauth_allow_insecure_requests": "Permet sol·licituds no segures",
- "oauth_allow_insecure_requests_description": "AVÍS: Això inhabilita la validació de certificats TLS per a les sol·licituds OAuth i us pot exposar a atacs MITM.",
- "oauth_auto_launch": "Execució automàtica",
- "oauth_auto_launch_description": "Inicia el flux d'inici de sessió OAuth automàticament en accedir a la pàgina d'inici de sessió",
- "oauth_auto_register": "Registre automàtic",
- "oauth_auto_register_description": "Registra nous usuaris automàticament després d'iniciar sessió amb OAuth",
+ "oauth_allow_insecure_requests_description": "ADVERTÈNCIA: Això desactiva la validació de certificats TLS per a les sol·licituds d’OAuth i us pot exposar a atacs MITM.",
+ "oauth_auto_launch": "Executa automàticament",
+ "oauth_auto_launch_description": "Inicia el flux d’inici de sessió d’OAuth automàticament en accedir a la pàgina d’inici de sessió",
+ "oauth_auto_register": "Registra automàticament",
+ "oauth_auto_register_description": "Registra els nous usuaris automàticament després d’iniciar sessió amb OAuth",
"oauth_button_text": "Text del botó",
- "oauth_client_secret_description": "Requerit per clients confidencials, o si PKCE (Proof Key for Code Exchange) no està suportat pel client públic.",
- "oauth_enable_description": "Iniciar sessió amb OAuth",
- "oauth_end_session_url_description": "Redirigeix l'usuari a aquest URI quan tanqui la sessió.",
+ "oauth_client_secret_description": "Necessari per a clients confidencials, o si el client públic no admet PKCE (Proof Key for Code Exchange).",
+ "oauth_enable_description": "Inicia la sessió amb OAuth",
+ "oauth_end_session_url_description": "Redirigeix l’usuari a aquest URI quan tanqui la sessió.",
"oauth_mobile_redirect_uri": "URI de redirecció mòbil",
- "oauth_mobile_redirect_uri_override": "Sobreescriu l'URI de redirecció mòbil",
- "oauth_mobile_redirect_uri_override_description": "Habilita quan el proveïdor d'OAuth no permet una URI mòbil, com ara ''{callback}''",
- "oauth_prompt_description": "Paràmetre de sol·licitud (per exemple, select_account, login, consent)",
+ "oauth_mobile_redirect_uri_override": "Sobreescriu l’URI de redirecció mòbil",
+ "oauth_mobile_redirect_uri_override_description": "Activeu-ho quan el proveïdor d’OAuth no permeti una URI mòbil, com ara «{callback}»",
+ "oauth_prompt_description": "Paràmetre de la sol·licitud (per exemple, select_account, login, consent)",
"oauth_role_claim": "Concessió de rol",
- "oauth_role_claim_description": "Atorgar accés d'administrador automàticament segons la presència d'aquesta concessió. La concessió pot ser 'usuari' o 'admin'.",
+ "oauth_role_claim_description": "Atorga l’accés d’administrador automàticament segons la presència d’aquesta concessió. La concessió pot tenir «user» o «admin».",
"oauth_settings": "OAuth",
- "oauth_settings_description": "Gestiona la configuració de l'inici de sessió OAuth",
+ "oauth_settings_description": "Gestioneu els paràmetres de l’inici de sessió amb OAuth",
"oauth_settings_more_details": "Per a més detalls sobre aquesta funcionalitat, consulteu la documentació.",
- "oauth_storage_label_claim": "Petició d'etiquetatge d'emmagatzematge",
- "oauth_storage_label_claim_description": "Estableix automàticament l'etiquetatge d'emmagatzematge de l'usuari a aquest valor.",
- "oauth_storage_quota_claim": "Quota d'emmagatzematge reclamada",
- "oauth_storage_quota_claim_description": "Estableix automàticament la quota d'emmagatzematge de l'usuari al valor d'aquest paràmetre.",
- "oauth_storage_quota_default": "Quota d'emmagatzematge predeterminada (GiB)",
- "oauth_storage_quota_default_description": "Quota en GiB que s'utilitzarà quan no es proporcioni cap valor específic.",
- "oauth_timeout": "Solicitud caducada",
- "oauth_timeout_description": "Timeout per a sol·licituds en mil·lisegons",
- "ocr_job_description": "Fes servir machine learning per reconèixer text a les imatges",
- "password_enable_description": "Inicia sessió amb correu electrònic i contrasenya",
+ "oauth_storage_label_claim": "Concessió d’etiqueta d’emmagatzematge",
+ "oauth_storage_label_claim_description": "Defineix automàticament l’etiqueta d’emmagatzematge de l’usuari al valor d’aquesta concessió.",
+ "oauth_storage_quota_claim": "Concessió de quota d’emmagatzematge",
+ "oauth_storage_quota_claim_description": "Defineix automàticament la quota d’emmagatzematge de l’usuari al valor d’aquesta concessió.",
+ "oauth_storage_quota_default": "Quota d’emmagatzematge per defecte (GiB)",
+ "oauth_storage_quota_default_description": "Quota en GiB que s’utilitzarà quan no es proporcioni cap concessió específica.",
+ "oauth_timeout": "Temps d’espera de les sol·licituds",
+ "oauth_timeout_description": "Temps d’espera de les sol·licituds en mil·lisegons",
+ "ocr_job_description": "Utilitza aprenentatge automàtica per a reconèixer text a les imatges",
+ "password_enable_description": "Inicia la sessió amb correu electrònic i contrasenya",
"password_settings": "Inici de sessió amb contrasenya",
- "password_settings_description": "Gestiona la configuració de l'inici de sessió amb contrasenya",
- "paths_validated_successfully": "Totes les rutes han estat validades amb èxit",
- "person_cleanup_job": "Neteja de persona",
- "queue_details": "Detall de les cues",
- "queues": "Cues de treball",
- "queues_page_description": "Pàgina de cues de treballs d'administrador",
- "quota_size_gib": "Tamany de la quota (GiB)",
- "refreshing_all_libraries": "Actualitzant totes les biblioteques",
- "registration": "Registre d'administrador",
- "registration_description": "Com que ets el primer usuari del sistema, seràs designat com a administrador i seràs responsable de les tasques administratives. També seràs l'encarregat de crear usuaris addicionals.",
- "release_channel_release_candidate": "Candidat a versió",
+ "password_settings_description": "Gestioneu els paràmetres de l’inici de sessió amb contrasenya",
+ "paths_validated_successfully": "Tots els camins s’han validat correctament",
+ "person_cleanup_job": "Neteja de persones",
+ "queue_details": "Detalls de la cua",
+ "queues": "Cues de tasques",
+ "queues_page_description": "Pàgina de cues de treballs de l’administrador",
+ "quota_size_gib": "Mida de la quota (GiB)",
+ "refreshing_all_libraries": "S’estan actualitzant totes les biblioteques",
+ "registration": "Registre de l’administrador",
+ "registration_description": "Com que sou el primer usuari del sistema, sereu designat com a administrador, sereu responsable de les tasques administratives i creareu la resta d’usuaris.",
+ "release_channel_release_candidate": "Versió candidata",
"release_channel_stable": "Estable",
- "remove_failed_jobs": "Eliminar treballs fallits",
- "require_password_change_on_login": "Requerir que l'usuari canviï la contrasenya en el primer inici de sessió",
- "reset_settings_to_default": "Restablir configuracions per defecte",
- "reset_settings_to_recent_saved": "Restablir la configuració guardada més recent",
- "scanning_library": "Escanejant biblioteca",
- "search_jobs": "Cercar treballs…",
- "send_welcome_email": "Enviar correu electrònic de benvinguda",
+ "remove_failed_jobs": "Suprimeix les tasques fallides",
+ "require_password_change_on_login": "Requereix que l’usuari canviï la contrasenya en el primer inici de sessió",
+ "reset_settings_to_default": "Restableix la configuració per defecte",
+ "reset_settings_to_recent_saved": "Restableix la configuració a la configuració desada més recent",
+ "scanning_library": "S’està escanejant la biblioteca",
+ "search_jobs": "Cerqueu treballs…",
+ "send_welcome_email": "Envia un correu electrònic de benvinguda",
"server_external_domain_settings": "Domini extern",
- "server_external_domain_settings_description": "Domini utilitzat per a enllaços externs",
+ "server_external_domain_settings_description": "Domini utilitzat per als enllaços externs",
"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_public_users_description": "Tots els usuaris (nom i adreça electrònica) apareixen a la llista en afegir un usuari als àlbums compartits. Si es desactiva, la llista d’usuaris només serà disponible per als usuaris administradors.",
"server_settings": "Configuració del servidor",
- "server_settings_description": "Gestiona la configuració del servidor",
- "server_stats_page_description": "Pàgina d'estadístiques del servidor de l'administrador",
+ "server_settings_description": "Gestioneu els paràmetres del servidor",
+ "server_stats_page_description": "Pàgina d’estadístiques del servidor de l’administrador",
"server_welcome_message": "Missatge de benvinguda",
- "server_welcome_message_description": "Missatge que es mostra a la pàgina d'inici de sessió.",
- "settings_page_description": "Pàgina de configuració de l'administrador",
- "sidecar_job": "Metadades auxiliars",
- "sidecar_job_description": "Descobreix o sincronitza metadades auxiliars des del sistema de fitxers",
- "slideshow_duration_description": "Segons per mostrar cada imatge",
- "smart_search_job_description": "Executa aprenentatge automàtic sobre els elements per donar suport a la cerca intel·ligent",
- "storage_template_date_time_description": "La data de creació del recurs s'utilitza per a la informació de la data i l'hora",
- "storage_template_date_time_sample": "Temps d'exemple: {date}",
- "storage_template_enable_description": "Habilitar el motor de plantilles d'emmagatzematge",
- "storage_template_hash_verification_enabled": "Verificació de hash habilitada",
- "storage_template_hash_verification_enabled_description": "Activa la verificació de hash. No la desactiveu a menys que estigueu segurs de les implicacions",
- "storage_template_migration": "Migració de plantilles d'emmagatzematge",
- "storage_template_migration_description": "Aplica la {template} actual als elements pujats prèviament",
- "storage_template_migration_info": "Les extensions es convertiran a minúscules. Els canvis de plantilla només s'aplicaran a nous elements. Per aplicar la plantilla rectroactivament a elements pujats prèviament, executeu la {job}.",
- "storage_template_migration_job": "Tasca de migració de la plantilla d'emmagatzematge",
- "storage_template_more_details": "Per obtenir més detalls sobre aquesta funció, consulteu la Storage Template i les seves implications",
- "storage_template_onboarding_description_v2": "Un cop habilitada, aquesta funció organitzarà automàticament els fitxers a partir d'una plantilla definida per l'usuari. Per a més informació, podeu consultar la documentació.",
- "storage_template_path_length": "Límit aproximat de longitud de la ruta: {length, number}/{limit, number}",
- "storage_template_settings": "Plantilla d'emmagatzematge",
- "storage_template_settings_description": "Gestiona l'estructura de les carpetes i el nom del fitxers dels elements pujats",
- "storage_template_user_label": "{label} és l'etiqueta d'emmagatzematge de l'usuari",
+ "server_welcome_message_description": "Missatge que es mostra a la pàgina d’inici de sessió.",
+ "settings_page_description": "Pàgina de configuració de l’administrador",
+ "sidecar_job": "Metadades de fitxers auxiliars",
+ "sidecar_job_description": "Descobreix o sincronitza metadades dels fitxers auxiliars a partir del sistema de fitxers",
+ "slideshow_duration_description": "Nombre de segons que es mostrarà cada imatge",
+ "smart_search_job_description": "Executa aprenentatge automàtic sobre els recursos per a assistir la cerca intel·ligent",
+ "storage_template_date_time_description": "La data i hora de creació del recurs s’utilitza per a la informació de la data i l’hora",
+ "storage_template_date_time_sample": "Data i hora d’exemple: {date}",
+ "storage_template_enable_description": "Activa el motor de plantilles d’emmagatzematge",
+ "storage_template_hash_verification_enabled": "Verificació de hash activada",
+ "storage_template_hash_verification_enabled_description": "Activa la verificació de hash. No la desactiveu llevat que n’entengueu les implicacions",
+ "storage_template_migration": "Migració de la plantilla d’emmagatzematge",
+ "storage_template_migration_description": "Aplica la {template} actual als recursos pujats anteriorment",
+ "storage_template_migration_info": "La plantella d’emmagatzematge convertirà totes les extensions a minúscules. Els canvis de la plantilla només s’aplicaran als nous recursos. Per a aplicar la plantilla de manera retroactiva als recursos pujats anteriorment, executeu la {job}.",
+ "storage_template_migration_job": "tasca de migració de la plantilla d’emmagatzematge",
+ "storage_template_more_details": "Per a més detalls sobre aquesta funció, consulteu la plantilla d’emmagatzematge i les seves implicacions",
+ "storage_template_onboarding_description_v2": "En activar aquesta funció, s’organitzaran automàticament els fitxers a partir d’una plantilla definida per l’usuari. Per a més informació, consulteu la documentació.",
+ "storage_template_path_length": "Límit aproximat de longitud del camí: {length, number}/{limit, number}",
+ "storage_template_settings": "Plantilla d’emmagatzematge",
+ "storage_template_settings_description": "Gestioneu l’estructura de les carpetes i el nom del fitxers dels recursos pujats",
+ "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",
+ "tag_cleanup_job": "Neteja d’etiquetes",
+ "template_email_available_tags": "Podeu utilitzar les següents variables a la plantilla: {tags}",
+ "template_email_if_empty": "Si la plantilla és buida, es farà servir el correu electrònic per defecte.",
+ "template_email_invite_album": "Plantilla d’invitació a l’àlbum",
+ "template_email_preview": "Previsualitza",
"template_email_settings": "Plantilles de correu electrònic",
- "template_email_update_album": "Actualitzar la plantilla de l'àlbum",
+ "template_email_update_album": "Plantilla d’actualització a 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",
+ "template_settings_description": "Gestioneu les plantilles personalitzades per a 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_custom_css_settings_description": "Els fulls d’estil en cascada permeten personalitzar el disseny de l’Immich.",
"theme_settings": "Configuració del tema",
- "theme_settings_description": "Gestiona la personalització de la interfície web Immich",
- "thumbnail_generation_job": "Generar miniatures",
- "thumbnail_generation_job_description": "Genera miniatures grans, petites i borroses per a cada element, així com miniatures per a cada persona",
- "transcoding_acceleration_api": "API d'acceleració",
- "transcoding_acceleration_api_description": "L'API que interactuarà amb el vostre dispositiu per accelerar la transcodificació. Aquesta configuració és \"millor esforç\": tornarà a la transcodificació del programari en cas d'error. VP9 pot funcionar o no depenent del vostre maquinari.",
- "transcoding_acceleration_nvenc": "NVENC (requereix GPU d'NVIDIA)",
- "transcoding_acceleration_qsv": "Quick Sync (requereix GPU d'Intel de 7a generació o posterior)",
+ "theme_settings_description": "Gestioneu la personalització de la interfície web de l’Immich",
+ "thumbnail_generation_job": "Genera les miniatures",
+ "thumbnail_generation_job_description": "Genera les miniatures grans, petites i borroses per a cada element, així com miniatures per a cada persona",
+ "transcoding_acceleration_api": "API d’acceleració",
+ "transcoding_acceleration_api_description": "L’API que interactuarà amb el vostre dispositiu per a accelerar la transcodificació. Aquesta configuració és de l’estil «millor esforç»: en cas d’error, tornarà a la transcodificació per programari. El VP9 pot funcionar o no depenent del vostre maquinari.",
+ "transcoding_acceleration_nvenc": "NVENC (requereix GPU d’NVIDIA)",
+ "transcoding_acceleration_qsv": "Quick Sync (requereix GPU d’Intel de 7a generació o posterior)",
"transcoding_acceleration_rkmpp": "RKMPP (requereix SoC de Rockchip)",
"transcoding_acceleration_vaapi": "VAAPI",
- "transcoding_accepted_audio_codecs": "Còdecs d'àudio acceptats",
- "transcoding_accepted_audio_codecs_description": "Seleccioneu quins còdecs d'àudio no s'han de transcodificar. Només s'utilitza per a determinades polítiques de transcodificació.",
+ "transcoding_accepted_audio_codecs": "Còdecs d’àudio acceptats",
+ "transcoding_accepted_audio_codecs_description": "Seleccioneu quins còdecs d’àudio no s’han de transcodificar. Només s’utilitza per a determinades polítiques de transcodificació.",
"transcoding_accepted_containers": "Contenidors acceptats",
- "transcoding_accepted_containers_description": "Seleccioneu quins formats de contenidor no s'han de redistribuir a MP4. Només s'utilitza per a determinades polítiques de transcodificació.",
+ "transcoding_accepted_containers_description": "Seleccioneu quins formats de contenidor no s’han de remultiplexar a MP4. Només s’utilitza per a determinades polítiques de transcodificació.",
"transcoding_accepted_video_codecs": "Còdecs de vídeo acceptats",
- "transcoding_accepted_video_codecs_description": "Seleccioneu quins còdecs de vídeo no s'han de transcodificar. Només s'utilitza per a determinades polítiques de transcodificació.",
+ "transcoding_accepted_video_codecs_description": "Seleccioneu quins còdecs de vídeo no s’han de transcodificar. Només s’utilitza per a determinades polítiques de transcodificació.",
"transcoding_advanced_options_description": "Opcions que la majoria dels usuaris no haurien de canviar",
- "transcoding_audio_codec": "Còdec d'àudio",
- "transcoding_audio_codec_description": "Opus és l'opció de màxima qualitat, però té menor compatibilitat amb dispositius o programari antics.",
- "transcoding_bitrate_description": "Vídeos superiors a la taxa de bits màxima o que no tenen un format acceptat",
- "transcoding_codecs_learn_more": "Per obtenir més informació sobre la terminologia utilitzada, consulteu la documentació de FFmpeg per al còdec H.264, còdec HEVC i còdec VP9.",
+ "transcoding_audio_codec": "Còdec d’àudio",
+ "transcoding_audio_codec_description": "Opus és l’opció de màxima qualitat, però té menys compatibilitat amb dispositius o programari antics.",
+ "transcoding_bitrate_description": "Vídeos amb una taxa de bits superior a la màxima o que no tenen un format acceptat",
+ "transcoding_codecs_learn_more": "Per a més informació sobre la terminologia utilitzada, consulteu la documentació d’FFmpeg per al còdec H.264, el còdec HEVC i el còdec VP9.",
"transcoding_constant_quality_mode": "Mode de qualitat constant",
- "transcoding_constant_quality_mode_description": "ICQ és millor que CQP, però alguns dispositius d'acceleració de maquinari no admeten aquest mode. Establir aquesta opció preferirà el mode especificat quan utilitzeu la codificació basada en la qualitat. Ignorat per NVENC perquè no és compatible amb ICQ.",
+ "transcoding_constant_quality_mode_description": "ICQ és millor que CQP, però alguns dispositius d’acceleració de maquinari no admeten aquest mode. Si configureu aquesta opció, es preferirà el mode especificat quan s’utilitzi la codificació basada en la qualitat. Ignorat per NVENC perquè no admet ICQ.",
"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_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. Un valor més baix és millor, però produeix fitxers més grans.",
+ "transcoding_disabled_description": "No transcodifiquis 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: transcodificació més ràpida però pot perdre qualitat amb la mateixa tasa de bits",
- "transcoding_hardware_decoding": "Descodificació de maquinari",
- "transcoding_hardware_decoding_setting_description": "Habilita l'acceleració d'extrem a extrem en lloc d'accelerar només la codificació. És possible que no funcioni en tots els vídeos.",
+ "transcoding_encoding_options_description": "Establiu els còdecs, la resolució, la qualitat i altres opcions per als vídeos codificats",
+ "transcoding_hardware_acceleration": "Acceleració per maquinari",
+ "transcoding_hardware_acceleration_description": "Experimental: transcodificació més ràpida, però pot reduir la qualitat amb la mateixa taxa de bits",
+ "transcoding_hardware_decoding": "Descodificació per maquinari",
+ "transcoding_hardware_decoding_setting_description": "Activa l’acceleració d’extrem a extrem en lloc d’accelerar només la codificació. És possible que no funcioni en tots els vídeos.",
"transcoding_max_b_frames": "Nombre màxim de B-frames",
- "transcoding_max_b_frames_description": "Els valors més alts milloren l'eficiència de la compressió, però alenteixen la codificació. És possible que no sigui compatible amb l'acceleració de maquinari en dispositius antics. 0 desactiva els B-frames, mentre que -1 estableix aquest valor automàticament.",
+ "transcoding_max_b_frames_description": "Els valors més alts milloren l’eficiència de la compressió, però alenteixen la codificació. És possible que no sigui compatible amb l’acceleració de maquinari en dispositius antics. 0 desactiva els B-frames, mentre que -1 estableix aquest valor automàticament.",
"transcoding_max_bitrate": "Taxa de bits màxima",
- "transcoding_max_bitrate_description": "Establir una taxa de bits màxima pot fer que les mides dels fitxers siguin més previsibles amb un cost menor per a la qualitat. A 720p, els valors típics són 2600 kbit/s per a VP9 o HEVC, o 4500 kbit/s per a H.264. Desactivat si s'estableix a 0. Quan no s'especifica, s'assumeix kbit/s; per tant 5000 i 5000k i 5M son equivalents.",
+ "transcoding_max_bitrate_description": "Establir una taxa de bits màxima pot fer que les mides dels fitxers siguin més previsibles amb un cost menor per a la qualitat. A 720p, els valors típics són 2600 kbit/s per a VP9 o HEVC, o 4500 kbit/s per a H.264. Es desactiva si s’estableix a 0. Quan no s’especifica cap unitat, s’assumeix k (per a kbit/s); per tant, 5000, 5000k i 5M (per a Mbit/s) són equivalents.",
"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_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_policy_description": "Establiu 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)",
- "transcoding_preset_preset_description": "Velocitat de compressió. Els valors predefinits més lents produeixen fitxers més petits i augmenten la qualitat quan s'orienta a una taxa de bits determinada. VP9 ignora les velocitats superiors a 'més ràpides'.",
+ "transcoding_preferred_hardware_device_description": "S’aplica només a VAAPI i QSV. Estableix el node dri utilitzat per a la transcodificació per maquinari.",
+ "transcoding_preset_preset": "Configuració predefinida (-preset)",
+ "transcoding_preset_preset_description": "Velocitat de compressió. Les configuracions predefinides més lents produeixen fitxers més petits i augmenten la qualitat quan s’orienta a una taxa de bits determinada. El VP9 ignora les velocitats superiors a «faster» («més ràpida»).",
"transcoding_realtime": "Transcodificació en temps real [EXPERIMENTAL]",
- "transcoding_realtime_description": "Permet que la transcodificació es realitzi en temps real mentre es retransmet el vídeo. Habilita el canvi de qualitat, però pot causar una latència de reproducció més alta i entretallats segons les capacitats del servidor.",
- "transcoding_realtime_enabled": "Activa transcodificació en temps real",
+ "transcoding_realtime_description": "Permet que la transcodificació es faci en temps real mentre es transmet el vídeo. Permet canvis de qualitat, però pot causar una latència de reproducció més alta i talls depenent de les capacitats del servidor.",
+ "transcoding_realtime_enabled": "Activa la transcodificació en temps real",
"transcoding_realtime_enabled_description": "Si està desactivat, el servidor rebutjarà iniciar noves sessions de transcodificació en temps real.",
+ "transcoding_realtime_resolutions": "Resolucions",
+ "transcoding_realtime_resolutions_description": "Resolucions que s’ofereixen per a la transcodificació en temps real. Les resolucions més altes poden causar problemes de reproducció si el servidor no les pot transcodificar prou ràpidament.",
+ "transcoding_realtime_video_codecs": "Còdecs de vídeo",
+ "transcoding_realtime_video_codecs_description": "Còdecs de vídeo oferts per a la transcodificació en temps real. Els clients triaran la millor opció que admetin durant la reproducció. AV1 és més eficient que HEVC, que és més eficient que H.264. Quan utilitzeu l’acceleració per maquinari, seleccioneu només els còdecs que l’accelerador pugui codificar. Quan utilitzeu la transcodificació per programari, tingueu en compte que H.264 és més ràpid que AV1, que és més ràpid que HEVC.",
"transcoding_reference_frames": "Fotogrames de referència",
- "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_reference_frames_description": "El nombre de fotogrames a referenciar 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": "Gestionar quins vídeos transcodificar i com processar-los",
+ "transcoding_settings": "Configuració de la transcodificació de vídeos",
+ "transcoding_settings_description": "Gestioneu 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_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",
- "transcoding_temporal_aq_description": "S'aplica només a NVENC. Quantització adaptativa temporal augmenta la qualitat de les escenes de baix moviment i alt detall. És possible que no sigui compatible amb dispositius antics.",
+ "transcoding_temporal_aq_description": "S’aplica només a NVENC. La quantització adaptativa temporal augmenta la qualitat de les escenes de baix moviment i alt detall. És possible que no sigui compatible amb dispositius antics.",
"transcoding_threads": "Fils",
- "transcoding_threads_description": "Els valors més alts condueixen a una codificació més ràpida, però deixen menys espai perquè el servidor processi altres tasques mentre està actiu. Aquest valor no hauria de ser superior al nombre de nuclis de CPU. Maximitza la utilització si s'estableix a 0.",
+ "transcoding_threads_description": "Els valors més alts causen una codificació més ràpida, però deixen menys espai perquè el servidor processi altres tasques mentre està activa. Aquest valor no hauria de ser superior al nombre de nuclis de CPU. Maximitza la utilització si s’estableix a 0.",
"transcoding_tone_mapping": "Mapeig de to",
- "transcoding_tone_mapping_description": "Intenta preservar l'aspecte dels vídeos HDR quan es converteixen a SDR. Cada algorisme fa diferents compensacions pel color, el detall i la brillantor. Hable conserva els detalls, Mobius conserva el color i Reinhard conserva la brillantor.",
+ "transcoding_tone_mapping_description": "Mira de preservar l’aspecte dels vídeos HDR quan es converteixen a SDR. Cada algorisme fa diferents compensacions de color, detall i brillantor. Hable conserva els detalls, Mobius conserva el color i Reinhard conserva la brillantor.",
"transcoding_transcode_policy": "Política de transcodificació",
- "transcoding_transcode_policy_description": "Política sobre quan s'ha de transcodificar un vídeo. Els vídeos HDR i els vídeos amb un format de píxel diferent a YUV 4:2:0 sempre es transcodificaran (excepte si la transcodificació està desactivada).",
- "transcoding_two_pass_encoding": "Codificació de dues passades",
- "transcoding_two_pass_encoding_setting_description": "Transcodifica en dos passos per produir vídeos millor codificats. Quan la taxa de bits màxima està habilitada (necessari perquè funcioni amb H.264 i HEVC), aquest mode utilitza un interval de velocitat de bits basat en la taxa de bits màxima i ignora CRF. Per a VP9, es pot utilitzar CRF si la taxa de bits màxima està desactivada.",
+ "transcoding_transcode_policy_description": "Política que defineix quan s’ha de transcodificar un vídeo. Els vídeos HDR i els vídeos amb un format de píxels diferent de YUV 4:2:0 sempre es transcodificaran (excepte si la transcodificació està desactivada).",
+ "transcoding_two_pass_encoding": "Codificació en dues passades",
+ "transcoding_two_pass_encoding_setting_description": "Transcodifica en dues passades per a produir vídeos més ben codificats. Quan la taxa de bits màxima està activada (necessari perquè funcioni amb H.264 i HEVC), aquest mode utilitza un interval de taxa de bits basat en la taxa de bits màxima i ignora el CRF. Per a VP9, es pot utilitzar el CRF si la taxa de bits màxima està desactivada.",
"transcoding_video_codec": "Còdec de video",
- "transcoding_video_codec_description": "VP9 té una alta eficiència i compatibilitat web, però triga més a transcodificar-se. HEVC funciona de manera similar, però té una compatibilitat web inferior. H.264 és àmpliament compatible i de transcodificació ràpida, però produeix fitxers molt més grans. AV1 és el còdec més eficient, però no té suport en dispositius antics.",
- "trash_enabled_description": "Activa les funcions de la paperera",
+ "transcoding_video_codec_description": "VP9 té una alta eficiència i compatibilitat amb web, però tarda més temps a transcodificar-se. HEVC funciona de manera similar, però té una compatibilitat amb web inferior. H.264 és àmpliament compatible i de transcodificació ràpida, però produeix fitxers molt més grans. AV1 és el còdec més eficient, però no té suport en dispositius antics.",
+ "trash_enabled_description": "Activa les funcionalitats de la paperera",
"trash_number_of_days": "Nombre de dies",
- "trash_number_of_days_description": "Nombre de dies per mantenir els recursos a la paperera abans de suprimir-los permanentment",
+ "trash_number_of_days_description": "Nombre de dies que es mantindran els recursos a la paperera abans de suprimir-los permanentment",
"trash_settings": "Configuració de la paperera",
- "trash_settings_description": "Gestiona la configuració de la paperera",
- "unlink_all_oauth_accounts": "Desvincula tots els comptes d'OAuth",
- "unlink_all_oauth_accounts_description": "Recorda desvincular tots els comptes d'OAuth abans de migrar a un proveïdor nou.",
- "unlink_all_oauth_accounts_prompt": "Estàs segur que vols desvincular tots els comptes d'OAuth? Això restablirà l'identificador d'OAuth per a cada usuari i no es pot tornar enrere.",
- "user_cleanup_job": "Neteja d'usuari",
- "user_delete_delay": "El compte i els recursos de {user} es programaran per a la supressió permanent en {delay, plural, one {# dia} other {# dies}}.",
+ "trash_settings_description": "Gestioneu els paràmetres de la paperera",
+ "unlink_all_oauth_accounts": "Desenllaça tots els comptes d’OAuth",
+ "unlink_all_oauth_accounts_description": "Recordeu desenllaçar tots els comptes d’OAuth abans de migrar a un proveïdor nou.",
+ "unlink_all_oauth_accounts_prompt": "Segur que voleu desvincular tots els comptes d’OAuth? Es restablirà l’identificador d’OAuth per a cada usuari. Aquesta acció no es pot desfer.",
+ "user_cleanup_job": "Neteja d’usuaris",
+ "user_delete_delay": "El compte i els recursos de l’usuari {user} es programaran per a la supressió permanent d’aquí a {delay, plural, one {# dia} other {# dies}}.",
"user_delete_delay_settings": "Retard de la supressió",
- "user_delete_delay_settings_description": "Nombre de dies després de la supressió per eliminar permanentment el compte i els elements d'un usuari. El treball de supressió d'usuaris s'executa a mitjanit per comprovar si hi ha usuaris preparats per eliminar. Els canvis en aquesta configuració s'avaluaran en la propera execució.",
- "user_delete_immediately": "El compte i els recursos de {user} es posaran a la cua per suprimir-los permanentment immediatament.",
- "user_delete_immediately_checkbox": "Posa en cua l'usuari i els recursos per suprimir-los immediatament",
- "user_details": "Detalls d'usuari",
- "user_management": "Gestió d'usuaris",
- "user_password_has_been_reset": "La contrasenya de l'usuari ha estat restablida:",
- "user_password_reset_description": "Si us plau, proporcioneu la contrasenya temporal a l'usuari i informeu-los que haurà de canviar la contrasenya en el proper inici de sessió.",
- "user_restore_description": "Es restaurarà el compte {user} .",
- "user_restore_scheduled_removal": "Restaura l'usuari - eliminació programada el {date, date, long}",
- "user_settings": "Configuració d'usuaris",
- "user_settings_description": "Gestiona la configuració dels usuaris",
- "user_successfully_removed": "L'usuari {email} s'ha eliminat correctament.",
- "users_page_description": "Pàgina d'usuaris de l'administrador",
+ "user_delete_delay_settings_description": "Nombre de dies després de la supressió en què se suprimirà permanentment el compte i els recursos d’un usuari. La tasca de supressió d’usuaris s’executa a mitjanit i comprova si hi ha usuaris preparats per a suprimir. Els canvis en aquesta configuració s’avaluaran en la següent execució.",
+ "user_delete_immediately": "El compte i els recursos de l’usuari {user} es posaran a la cua per a suprimir-los permanentment immediatament.",
+ "user_delete_immediately_checkbox": "Posa en cua l’usuari i els recursos per a suprimir-los immediatament",
+ "user_details": "Detalls de l’usuari",
+ "user_management": "Gestió d’usuaris",
+ "user_password_has_been_reset": "S’ha restablert la contrasenya de l’usuari:",
+ "user_password_reset_description": "Proporcioneu la contrasenya temporal a l’usuari i informeu-lo que haurà de canviar-la en el següent inici de sessió.",
+ "user_restore_description": "Es restaurarà el compte de l’usuari {user} .",
+ "user_restore_scheduled_removal": "Restaura l’usuari - supressió programada el {date, date, long}",
+ "user_settings": "Configuració dels usuaris",
+ "user_settings_description": "Gestioneu els paràmetres dels usuaris",
+ "user_successfully_removed": "L’usuari {email} s’ha suprimit correctament.",
+ "users_page_description": "Pàgina d’usuaris de l’administrador",
"version_check_channel": "Canal de publicació",
- "version_check_channel_description": "Tria el canal de publicació del qual vols rebre avisos de noves versions",
+ "version_check_channel_description": "Trieu el canal de publicació del qual voleu rebre avisos de noves versions",
"version_check_enabled_description": "Activa la comprovació de la versió",
- "version_check_implications": "La funció de comprovació de versions depèn de comunicacions periòdiques amb {server}",
- "version_check_settings": "Comprovació de versió",
+ "version_check_implications": "La funció de comprovació de versions funciona amb comunicacions periòdiques amb {server}",
+ "version_check_settings": "Comprovació de la versió",
"version_check_settings_description": "Activa/desactiva la notificació de nova versió",
- "video_conversion_job": "Transcodificació de vídeos",
- "video_conversion_job_description": "Transcodifica vídeos per a major compatibilitat amb navegadors i dispositius"
+ "video_conversion_job": "Transcodifica vídeos",
+ "video_conversion_job_description": "Transcodifica vídeos per a una major compatibilitat amb navegadors i dispositius"
},
- "admin_email": "Correu de l'administrador",
- "admin_password": "Contrasenya de l'administrador",
+ "admin_email": "Adreça electrònica de l’administrador",
+ "admin_password": "Contrasenya de l’administrador",
"administration": "Administració",
"advanced": "Avançat",
"advanced_settings_clear_image_cache": "Esborra la memòria cau de les imatges",
- "advanced_settings_clear_image_cache_error": "No s'ha pogut esborrar la memòria cau de les imatges",
- "advanced_settings_clear_image_cache_success": "S'ha esborrat correctament {size}",
- "advanced_settings_log_level_title": "Nivell de registre: {level}",
- "advanced_settings_prefer_remote_subtitle": "Alguns dispositius són molt lents en carregar miniatures dels elements locals. Activeu aquest paràmetre per carregar imatges remotes en el seu lloc.",
- "advanced_settings_prefer_remote_title": "Prefereix imatges remotes",
- "advanced_settings_proxy_headers_subtitle": "Definiu les capçaleres de proxy que Immich per enviar amb cada sol·licitud de xarxa",
- "advanced_settings_proxy_headers_title": "Capçaleres de proxy particulars [EXPERIMENTAL]",
- "advanced_settings_readonly_mode_subtitle": "Activa el mode de només lectura, en què les fotos només es poden veure. Accions com seleccionar múltiples imatges, compartir, enviar a un dispositiu o eliminar queden desactivades. Activa o desactiva el mode de només lectura des de l’avatar d’usuari de la pantalla principal",
+ "advanced_settings_clear_image_cache_error": "No s’ha pogut esborrar la memòria cau de les imatges",
+ "advanced_settings_clear_image_cache_success": "S’han esborrat correctament {size}",
+ "advanced_settings_log_level_title": "Nivell del registre: {level}",
+ "advanced_settings_prefer_remote_subtitle": "Alguns dispositius són molt lents en carregar miniatures dels elements locals. Activeu aquest paràmetre per a carregar imatges remotes en el seu lloc.",
+ "advanced_settings_prefer_remote_title": "Prefereix les imatges remotes",
+ "advanced_settings_proxy_headers_subtitle": "Definiu les capçaleres de servidor intermediari que l’Immich ha d’enviar amb cada sol·licitud de xarxa",
+ "advanced_settings_proxy_headers_title": "Capçaleres de servidor intermediari personalitzades [EXPERIMENTAL]",
+ "advanced_settings_readonly_mode_subtitle": "Activa el mode de només lectura, en què les fotos només es poden veure. Accions com ara seleccionar múltiples imatges, compartir, emetre o suprimir estan desactivades. Activeu o desactiveu el mode de només lectura a l’avatar d’usuari de la pantalla principal",
"advanced_settings_readonly_mode_title": "Mode de només lectura",
- "advanced_settings_sync_remote_deletions_subtitle": "Suprimeix o restaura automàticament un actiu en aquest dispositiu quan es realitzi aquesta acció al web",
- "advanced_settings_sync_remote_deletions_title": "Sincronitza les eliminacions remotes",
- "advanced_settings_tile_subtitle": "Configuració avançada de l'usuari",
- "advanced_settings_troubleshooting_subtitle": "Habilita funcions addicionals per a la resolució de problemes",
+ "advanced_settings_sync_remote_deletions_subtitle": "Suprimeix o restaura automàticament un recurs en aquest dispositiu quan es faci l’acció al web",
+ "advanced_settings_sync_remote_deletions_title": "Sincronitza les eliminacions remotes [EXPERIMENTAL]",
+ "advanced_settings_tile_subtitle": "Configuració avançada de l’usuari",
+ "advanced_settings_troubleshooting_subtitle": "Activa funcionalitats addicionals per a la resolució de problemes",
"advanced_settings_troubleshooting_title": "Resolució de problemes",
"age_months": "{months, plural, one {# mes} other {# mesos}}",
- "age_year_months": "Un any i {months, plural, one {# mes} other {# mesos}}",
+ "age_year_months": "1 any i {months, plural, one {# mes} other {# mesos}}",
"age_years": "{years, plural, one {# any} other {# anys}}",
"album": "Àlbum",
- "album_added": "Àlbum afegit",
- "album_added_notification_setting_description": "Rep una notificació per correu quan siguis afegit a un àlbum compartit",
- "album_cover_updated": "Portada de l'àlbum actualitzada",
- "album_delete_confirmation": "Esteu segur que voleu suprimir l'àlbum {album}?",
- "album_delete_confirmation_description": "Si aquest àlbum es comparteix, els altres usuaris ja no podran accedir-hi.",
- "album_deleted": "S'ha suprimit l'àlbum",
- "album_info_updated": "Informació de l'àlbum actualitzada",
- "album_name": "Nom de l'àlbum",
- "album_options": "Opcions de l'àlbum",
- "album_remove_user": "Eliminar l'usuari?",
- "album_remove_user_confirmation": "Esteu segurs que voleu eliminar {user}?",
- "album_search_not_found": "No s'ha trobat cap àlbum que coincideixi amb la teva cerca",
- "album_share_no_users": "Sembla que has compartit aquest àlbum amb tots els usuaris o no tens cap usuari amb qui compartir-ho.",
- "album_summary": "Resum de l'àlbum",
+ "album_added": "Afegit a un àlbum",
+ "album_added_notification_setting_description": "Envia una notificació per correu electrònic quan us afegeixen a un àlbum compartit",
+ "album_cover_updated": "Portada de l’àlbum actualitzada",
+ "album_delete_confirmation": "Segur que voleu suprimir l’àlbum {album}?",
+ "album_delete_confirmation_description": "Si aquest àlbum és compartit, els altres usuaris ja no hi podran accedir.",
+ "album_deleted": "S’ha suprimit l’àlbum",
+ "album_info_updated": "S’ha actualitzat la informació de l’àlbum",
+ "album_name": "Nom de l’àlbum",
+ "album_options": "Opcions de l’àlbum",
+ "album_remove_user": "Voleu eliminar l’usuari?",
+ "album_remove_user_confirmation": "Segur que voleu eliminar l’usuari {user}?",
+ "album_search_not_found": "No s’ha trobat cap àlbum que coincideixi amb la cerca",
+ "album_share_no_users": "Sembla que heu compartit aquest àlbum amb tots els usuaris o no teniu cap usuari amb qui compartir-lo.",
+ "album_summary": "Resum de l’àlbum",
"album_updated": "Àlbum actualitzat",
- "album_updated_setting_description": "Rep una notificació per correu electrònic quan un àlbum compartit tingui recursos nous",
- "album_upload_assets": "Carrega recursos des del teu ordinador i afegeix-los a l'àlbum",
- "album_viewer_appbar_share_err_delete": "Error al esborrar l'àlbum",
+ "album_updated_setting_description": "Envia una notificació per correu electrònic quan un àlbum compartit tingui recursos nous",
+ "album_upload_assets": "Pengeu recursos del vostre ordinador i afegiu-los a l’àlbum",
+ "album_viewer_appbar_share_err_delete": "No s’ha pogut suprimir l’àlbum",
"album_viewer_page_share_add_users": "Afegeix usuaris",
- "album_with_link_access": "Permet que qualsevol persona que tingui l'enllaç vegi fotos i persones d'aquest àlbum.",
+ "album_with_link_access": "Permet que qualsevol persona que tingui l’enllaç vegi les fotos i les persones d’aquest àlbum.",
"albums": "Àlbums",
- "albums_count": "{count, plural, one {{count, number} Àlbum} other {{count, number} Àlbums}}",
- "albums_default_sort_order": "Ordre per defecte de l'àlbum",
- "albums_default_sort_order_description": "Ordre de classificació inicial dels recursos al crear àlbums nous.",
- "albums_feature_description": "Col·leccions d'actius que es poden compartir amb altres usuaris.",
+ "albums_count": "{count, plural, one {{count, number} àlbum} other {{count, number} àlbums}}",
+ "albums_default_sort_order": "Ordre per defecte dels àlbums",
+ "albums_default_sort_order_description": "Ordre inicial dels recursos en crear àlbums nous.",
+ "albums_feature_description": "Col·leccions de recursos que es poden compartir amb altres usuaris.",
"albums_on_device_count": "Àlbums al dispositiu ({count})",
"all": "Tots",
- "all_albums": "Tots els àlbum",
- "all_people": "Tota la gent",
- "all_photos": "Totes les fotografies",
+ "all_albums": "Tots els àlbums",
+ "all_people": "Totes les persones",
+ "all_photos": "Totes les fotos",
"all_videos": "Tots els vídeos",
- "allow_dark_mode": "Permet el tema fosc",
- "allow_public_user_to_download": "Permet que l'usuari públic pugui descarregar",
- "allow_public_user_to_upload": "Permet que l'usuari públic pugui carregar",
+ "allow_dark_mode": "Permet el mode fosc",
+ "allow_public_user_to_download": "Permet que l’usuari públic pugui baixar",
+ "allow_public_user_to_upload": "Permet que l’usuari públic pugui pujar",
"allowed": "Permès",
- "alt_text_qr_code": "Codi QR",
- "always_keep": "Mantenir sempre",
- "always_keep_photos_hint": "Allibera espai manté totes les fotos en aquest dispositiu.",
- "always_keep_videos_hint": "Allibera espai manté tots els vídeos en aquest dispositiu.",
- "api_key": "Clau API",
+ "alt_text_qr_code": "Imatge del codi QR",
+ "always_keep": "Mantén sempre",
+ "always_keep_photos_hint": "L’alliberament d’espai mantindrà totes les fotos en aquest dispositiu.",
+ "always_keep_videos_hint": "L’alliberament d’espai mantindrà tots els vídeos en aquest dispositiu.",
+ "api_key": "Clau de l’API",
"api_key_description": "Aquest valor només es mostrarà una vegada. Assegureu-vos de copiar-lo abans de tancar la finestra.",
- "api_key_empty": "El nom de la clau de l'API no pot estar buit",
- "api_keys": "Claus API",
+ "api_key_empty": "El nom de la clau de l’API no pot estar buit",
+ "api_keys": "Claus de l’API",
"app_architecture_variant": "Variant (Arquitectura)",
- "app_bar_signout_dialog_content": "Estàs segur que vols tancar la sessió?",
+ "app_bar_signout_dialog_content": "Segur que voleu tancar la sessió?",
"app_bar_signout_dialog_title": "Tanca la sessió",
- "app_download_links": "Enllaços de descàrrega de l'App",
- "app_settings": "Configuració de l'app",
- "app_stores": "Botiga App",
- "app_update_available": "Actualització App disponible",
+ "app_download_links": "Enllaços de baixada de l’aplicació",
+ "app_settings": "Configuració de l’aplicació",
+ "app_stores": "Botigues d’aplicacions",
+ "app_update_available": "Hi ha disponible una actualització de l’aplicació",
"appears_in": "Apareix a",
- "apply_count": "Aplicar ({count, number})",
+ "apply_count": "Aplica ({count, number})",
"archive": "Arxiu",
- "archive_action_prompt": "{count} afegit a Arxiu",
- "archive_or_unarchive_photo": "Arxivar o desarxivar fotografia",
- "archive_size": "Mida de l'arxiu",
- "archive_size_description": "Configureu la mida de l'arxiu de les descàrregues (en GiB)",
+ "archive_action_prompt": "{count, plural, one {S’ha afegit # recurs} other {S’han afegit # recursos}} a l’arxiu",
+ "archive_or_unarchive_photo": "Arxiva o desarxiva la foto",
+ "archive_size": "Mida de l’arxiu",
+ "archive_size_description": "Configureu la mida de l’arxiu de les baixades (en GiB)",
"archived": "Arxivat",
- "archived_count": "{count, plural, one {Arxivat #} other {Arxivats #}}",
+ "archived_count": "{count, plural, one {# arxivat} other {# arxivats}}",
"are_these_the_same_person": "Són la mateixa persona?",
- "are_you_sure_to_do_this": "Esteu segurs que voleu fer-ho?",
- "asset_added_to_album": "Afegit a l'àlbum",
- "asset_adding_to_album": "Afegint a l'àlbum…",
+ "are_you_sure_to_do_this": "Segur que voleu fer això?",
+ "asset_added_to_album": "S’ha afegit a l’àlbum",
+ "asset_adding_to_album": "S’està afegint a l’àlbum…",
"asset_created": "Recurs creat",
- "asset_day_count": "{date}: {count, plural, one {# element} other {# elements}}",
- "asset_description_updated": "La descripció del recurs s'ha actualitzat",
- "asset_hashing": "Hasheant…",
- "asset_list_group_by_sub_title": "Agrupar per",
- "asset_list_layout_settings_group_by": "Agrupa elements per",
+ "asset_day_count": "{date}: {count, plural, one {# recurs} other {# recursos}}",
+ "asset_description_updated": "La descripció del recurs s’ha actualitzat",
+ "asset_hashing": "S’està calculant el hash…",
+ "asset_list_group_by_sub_title": "Agrupa per",
+ "asset_list_layout_settings_group_by": "Agrupa els recursos per",
"asset_list_layout_settings_group_by_month_day": "Mes + dia",
"asset_list_layout_sub_title": "Disseny",
"asset_list_settings_subtitle": "Configuració del disseny de la graella de fotos",
"asset_list_settings_title": "Graella de fotos",
- "asset_not_found_on_device_android": "No s'ha trobat l'actiu al dispositiu",
- "asset_not_found_on_device_ios": "No s'ha trobat l'element al dispositiu. Si utilitzes l'iCloud, pot ser que no s'hi pugui accedir perquè el fitxer guardat a l'iCloud és corrupte",
- "asset_not_found_on_icloud": "No s'ha trobat l'element a l'iCloud. Pot ser que no s'hi pugui accedir perquè el fitxer guardat a l'iCloud és corrupte",
- "asset_offline": "Element fora de línia",
- "asset_offline_description": "Aquest recurs extern ja no es troba al disc. Poseu-vos en contacte amb el vostre administrador d'Immich per obtenir ajuda.",
- "asset_skipped": "Saltat",
+ "asset_not_found_on_device_android": "No s’ha trobat el recurs al dispositiu",
+ "asset_not_found_on_device_ios": "No s’ha trobat el recurs al dispositiu. Si utilitzeu l’iCloud, és possible que no s’hi pugui accedir perquè el fitxer desat a l’iCloud sigui corrupte",
+ "asset_not_found_on_icloud": "No s’ha trobat el recurs a l’iCloud. És possible que no s’hi pugui accedir perquè el fitxer desat a l’iCloud sigui corrupte",
+ "asset_offline": "Recurs fora de línia",
+ "asset_offline_description": "Aquest recurs extern ja no és al disc. Poseu-vos en contacte amb l’administrador de l’Immich per a obtenir ajuda.",
+ "asset_skipped": "Omès",
"asset_skipped_in_trash": "A la paperera",
- "asset_troubleshoot": "Diagnòstic de l'element",
- "asset_uploaded": "Carregat",
- "asset_uploading": "S'està carregant…",
- "asset_viewer_settings_subtitle": "Gestiona la configuració del visualitzador de la galeria",
- "asset_viewer_settings_title": "Visor d'arxius",
- "assets": "Elements",
- "assets_added_to_album_count": "{count, plural, one {Afegit un element} other {Afegits # elements}} a l'àlbum",
- "assets_added_to_albums_count": "Afegits {assetTotal, plural, one {# recurs} other {# recursos}} a {albumTotal, plural, one {# album} other {# albums}}",
- "assets_cannot_be_added_to_album_count": "{count, plural, one {Asset} other {Assets}} no es pot afegir a l'àlbum",
- "assets_cannot_be_added_to_albums": "{count, plural, one {El recurs} other {Els recursos}} no poden ser afegits a cap dels àlbums",
+ "asset_troubleshoot": "Diagnòstic del recurs",
+ "asset_uploaded": "Pujat",
+ "asset_uploading": "S’està pujant…",
+ "asset_viewer_settings_subtitle": "Gestioneu la configuració del visualitzador de la galeria",
+ "asset_viewer_settings_title": "Visualitzador de recursos",
+ "assets": "Recursos",
+ "assets_added_to_album_count": "{count, plural, one {S’ha afegit # recurs} other {S’han afegit # recursos}} a l’àlbum",
+ "assets_added_to_album_partial_count": "S’han afegit {successCount} {totalCount, plural, one {d’# recurs} other {de # recursos}} a l’àlbum",
+ "assets_added_to_albums_count": "{assetTotal, plural, one {S’ha afegit # recurs} other {S’han afegit # recursos}} a {albumTotal, plural, one {# àlbum} other {# àlbums}}",
+ "assets_cannot_be_added_to_album_count": "{count, plural, one {El recurs no es pot} other {Els recursos no es poden}} afegir a l’àlbum",
+ "assets_cannot_be_added_to_albums": "{count, plural, one {El recurs} other {Els recursos}} no es poden afegir a cap dels àlbums",
"assets_count": "{count, plural, one {# recurs} other {# recursos}}",
- "assets_moved_to_trash_count": "{count, plural, one {# recurs mogut} other {# recursos moguts}} a la paperera",
- "assets_permanently_deleted_count": "{count, plural, one {# recurs esborrat} other {# recursos esborrats}} permanentment",
- "assets_removed_count": "{count, plural, one {# element eliminat} other {# elements eliminats}}",
- "assets_restore_confirmation": "Esteu segurs que voleu restaurar tots els teus actius? Aquesta acció no es pot desfer! Tingueu en compte que els recursos fora de línia no es poden restaurar d'aquesta manera.",
- "assets_restored_count": "{count, plural, one {# element restaurat} other {# elements restaurats}}",
- "assets_trashed": "{count} element(s) enviat a la paperera",
- "assets_trashed_count": "{count, plural, one {# element enviat} other {# elements enviats}} a la paperera",
- "assets_were_part_of_album_count": "{count, plural, one {L'element ja és} other {Els elements ja són}} part de l'àlbum",
- "assets_were_part_of_albums_count": "{count, plural, one {El recurs ja formava} other {Els recursos ja formaven}} part dels àlbums",
+ "assets_moved_to_trash_count": "{count, plural, one {S’ha mogut # recurs} other {S’han mogut # recursos}} a la paperera",
+ "assets_permanently_deleted_count": "{count, plural, one {S’ha suprimit # recurs} other {S’ha suprimit # recursos}} permanentment",
+ "assets_removed_count": "{count, plural, one {S’ha eliminat # recurs} other {S’han eliminat # recursos}}",
+ "assets_restore_confirmation": "Segur que voleu restaurar tots els recursos de la paperera? Aquesta acció no es pot desfer! Tingueu en compte que els recursos fora de línia no es poden restaurar d’aquesta manera.",
+ "assets_restored_count": "{count, plural, one {S’ha restaurat # recurs} other {S’han restaurat # recursos}}",
+ "assets_trashed": "{count, plural, one {S’ha enviat # element} other {S’ha enviat # elements}} a la paperera",
+ "assets_trashed_count": "{count, plural, one {S’ha enviat # recurs} other {S’han enviat # recursos}} a la paperera",
+ "assets_were_part_of_album_count": "{count, plural, one {El recurs ja era} other {Els recursos ja eren}} part de l’àlbum",
+ "assets_were_part_of_albums_count": "{count, plural, one {El recurs ja era} other {Els recursos ja eren}} part dels àlbums",
"authorized_devices": "Dispositius autoritzats",
- "automatic_endpoint_switching_subtitle": "Connecteu-vos localment a través de la Wi-Fi designada quan estigui disponible i utilitzeu connexions alternatives en altres llocs",
- "automatic_endpoint_switching_title": "Canvi automàtic d'URL",
+ "automatic_endpoint_switching_subtitle": "Connecta’t localment amb la Wi-Fi designada quan estigui disponible i utilitza connexions alternatives en altres llocs",
+ "automatic_endpoint_switching_title": "Canvi automàtic d’URL",
"autoplay_slideshow": "Reprodueix automàticament les diapositives",
- "back": "Enrere",
- "back_close_deselect": "Tornar, tancar o anul·lar la selecció",
- "background_location_permission": "Permís d'ubicació en segon pla",
- "background_location_permission_content": "Per canviar de xarxa quan s'executa en segon pla, Immich ha de *sempre* tenir accés a la ubicació precisa perquè l'aplicació pugui llegir el nom de la xarxa Wi-Fi",
- "background_options": "Opcions en segon pla",
- "backup": "Còpia",
- "backup_album_selection_page_albums_tap": "Un toc per incloure, doble toc per excloure",
- "backup_album_selection_page_assets_scatter": "Els elements poden dispersar-se en diversos àlbums. Per tant, els àlbums es poden incloure o excloure durant el procés de còpia de seguretat.",
+ "back": "Endarrere",
+ "back_close_deselect": "Endarrere, tanca o deselecciona",
+ "background_location_permission": "Permís d’ubicació en segon pla",
+ "background_location_permission_content": "Per a canviar de xarxa quan s’executa en segon pla, l’Immich *sempre* ha de tenir accés a la ubicació precisa perquè l’aplicació pugui llegir el nom de la xarxa Wi-Fi",
+ "background_options": "Opcions de segon pla",
+ "backup": "Còpia de seguretat",
+ "backup_album_selection_page_albums_tap": "Un toc per a incloure, doble toc per a excloure",
+ "backup_album_selection_page_assets_scatter": "Els recursos es poden dispersar en múltiples àlbums. Per tant, els àlbums es poden incloure o excloure durant el procés de còpia al servidor.",
"backup_album_selection_page_select_albums": "Selecciona àlbums",
"backup_album_selection_page_selection_info": "Informació de la selecció",
- "backup_albums_sync": "Sincronització de la Còpia de Seguretat d'Àlbums",
- "backup_background_service_complete_notification": "Backup completat d'actius",
- "backup_background_service_default_notification": "Cercant nous elements…",
- "backup_background_service_in_progress_notification": "Copiant els teus elements…",
- "backup_controller_page_albums": "Copia els àlbums",
- "backup_controller_page_background_battery_info_link": "Mostra'm com",
- "backup_controller_page_background_battery_info_message": "Per obtenir la millor experiència de còpia de seguretat en segon pla, desactiveu qualsevol optimització de bateria que restringeixi l'activitat en segon pla per a Immich.\n\nAtès que això és específic del dispositiu, busqueu la informació necessària per al fabricant del vostre dispositiu.",
- "backup_controller_page_background_battery_info_ok": "D'acord",
- "backup_controller_page_background_battery_info_title": "Optimitzacions de bateria",
- "backup_controller_page_background_delay": "Retard en la còpia de seguretat de nous elements: {duration}",
- "backup_controller_page_backup": "Còpia",
+ "backup_albums_sync": "Sincronització de la còpia al servidor d’àlbums",
+ "backup_background_service_complete_notification": "S’ha completat la còpia dels recursos al servidor",
+ "backup_background_service_default_notification": "S’estan cercant recursos nous…",
+ "backup_background_service_in_progress_notification": "S’estan copiant els vostres recursos al servidor…",
+ "backup_controller_page_albums": "Còpia al servidor dels àlbums",
+ "backup_controller_page_background_battery_info_link": "Mostra’m com es fa",
+ "backup_controller_page_background_battery_info_message": "Per a obtenir la millor experiència de còpia al servidor en segon pla, desactiveu qualsevol optimització de la bateria que restringeixi l’activitat en segon pla de l’Immich.\n\nAtès que això és específic de cada dispositiu, cerqueu la informació necessària per al fabricant del vostre dispositiu.",
+ "backup_controller_page_background_battery_info_ok": "D’acord",
+ "backup_controller_page_background_battery_info_title": "Optimitzacions de la bateria",
+ "backup_controller_page_background_delay": "Retard en la còpia al servidor de recursos nous: {duration}",
+ "backup_controller_page_backup": "Còpia al servidor",
"backup_controller_page_backup_selected": "Seleccionat: ",
- "backup_controller_page_backup_sub": "Fotografies i vídeos copiats",
- "backup_controller_page_excluded": "Exclosos: ",
- "backup_controller_page_none_selected": "Cap seleccionat",
- "backup_controller_page_remainder": "Restant",
- "backup_controller_page_remainder_sub": "Fotografies i vídeos restants per copiar de la selecció",
+ "backup_controller_page_backup_sub": "Fotos i vídeos amb còpia al servidor",
+ "backup_controller_page_excluded": "Exclòs: ",
+ "backup_controller_page_none_selected": "No s’ha seleccionat res",
+ "backup_controller_page_remainder": "Pendents",
+ "backup_controller_page_remainder_sub": "Fotos i vídeos pendents de fer-ne una còpia al servidor dels seleccionats",
"backup_controller_page_server_storage": "Emmagatzematge del servidor",
- "backup_controller_page_storage_format": "{used} de {total} utilitzats",
- "backup_controller_page_to_backup": "Àlbums a copiar",
- "backup_controller_page_total_sub": "Totes les fotografies i vídeos dels àlbums seleccionats",
- "backup_error_sync_failed": "Sincronització malament, No es pot fer backup.",
- "backup_info_card_assets": "elements",
- "backup_options": "Opcions de Còpia de Seguretat",
- "backup_settings_subtitle": "Administra la configuració de pujada",
- "backward": "Enrere",
- "battery_optimization_backup_reliability": "Desactivar les optimitzacions de la bateria pot millorar la fiabilitat de la còpia de seguretat en segon pla",
+ "backup_controller_page_storage_format": "{used} de {total} en ús",
+ "backup_controller_page_to_backup": "Àlbums dels quals es farà còpia al servidor",
+ "backup_controller_page_total_sub": "Totes les fotos i vídeos únics dels àlbums seleccionats",
+ "backup_error_sync_failed": "No s’ha pogut completar la sincronització. No es pot processar la còpia al servidor.",
+ "backup_info_card_assets": "recursos",
+ "backup_options": "Opcions de còpia al servidor",
+ "backup_settings_subtitle": "Gestioneu la configuració de les pujades",
+ "backward": "Cap endarrere",
+ "battery_optimization_backup_reliability": "Si desactiveu les optimitzacions de la bateria, podeu millorar la fiabilitat de la còpia al servidor en segon pla",
"biometric_auth_enabled": "Autentificació biomètrica activada",
- "biometric_locked_out": "Esteu bloquejats fora de l'autenticació biomètrica",
+ "biometric_locked_out": "Esteu blocat de l’autenticació biomètrica",
"biometric_no_options": "No hi ha opcions biomètriques disponibles",
- "biometric_not_available": "L'autenticació biomètrica no està disponible en aquest dispositiu",
- "birthdate_set_description": "La data de naixement s'utilitza per calcular l'edat d'aquesta persona en el moment d'una foto.",
+ "biometric_not_available": "L’autenticació biomètrica no està disponible en aquest dispositiu",
+ "birthdate_set_description": "La data de naixement s’utilitza per a calcular l’edat d’aquesta persona en el moment d’una foto.",
"blurred_background": "Fons difuminat",
- "browse_templates": "Explorar plantilles",
+ "browse_templates": "Explora les plantilles",
"bugs_and_feature_requests": "Errors i sol·licituds de funcions",
- "build": "Número de compilació",
- "build_image": "Versió de la imatge compilada",
- "bulk_delete_duplicates_confirmation": "Esteu segurs que voleu suprimir de manera massiva {count, plural, one {# recurs duplicat} other {# recursos duplicats}}? Això mantindrà el recurs més gran de cada grup i esborrarà permanentment tots els altres duplicats. No podeu desfer aquesta acció!",
- "bulk_keep_duplicates_confirmation": "Esteu segur que voleu mantenir {count, plural, one {# recurs duplicat} other {# recursos duplicats}}? Això resoldrà tots els grups duplicats sense eliminar res.",
- "bulk_trash_duplicates_confirmation": "Esteu segur que voleu enviar a les escombraries {count, plural, one {# recurs duplicat} other {# recursos duplicats}}? Això mantindrà el recurs més gran de cada grup i eliminarà la resta de duplicats.",
- "buy": "Comprar Immich",
+ "build": "Compilació",
+ "build_image": "Imatge compilada",
+ "bulk_delete_duplicates_confirmation": "Segur que voleu suprimir en massa {count, plural, one {# recurs duplicat} other {# recursos duplicats}}? Es mantindrà el recurs més gran de cada grup i se suprimiran permanentment tots els altres duplicats. Aquesta acció no es pot desfer!",
+ "bulk_keep_duplicates_confirmation": "Segur que voleu mantenir {count, plural, one {# recurs duplicat} other {# recursos duplicats}}? Es resoldran tots els grups de duplicats sense suprimir res.",
+ "bulk_trash_duplicates_confirmation": "Segur que voleu enviar a la paperera en massa {count, plural, one {# recurs duplicat} other {# recursos duplicats}}? Es mantindrà el recurs més gran de cada grup i s’enviaran a la paperera la resta de duplicats.",
+ "buy": "Compra l’Immich",
"camera": "Càmera",
"camera_brand": "Marca de la càmera",
- "camera_model": "Model de càmera",
+ "camera_model": "Model de la càmera",
"cancel": "Cancel·la",
"cancel_search": "Cancel·la la cerca",
- "canceled": "Cancel·lat",
- "canceling": "Cancel·lant",
- "cannot_merge_people": "No es pot fusionar gent",
+ "canceled": "S’ha cancel·lat",
+ "canceling": "S’està cancel·lant",
+ "cannot_merge_people": "No s’han pogut fusionar les persones",
"cannot_undo_this_action": "Aquesta acció no es pot desfer!",
- "cannot_update_the_description": "No es pot actualitzar la descripció",
+ "cannot_update_the_description": "No s’ha pogut actualitzar la descripció",
"cast": "Emet",
- "cast_description": "Configurar les destinacions de transmissió disponibles",
+ "cast_description": "Configureu les destinacions d’emissió disponibles",
"change": "Canvia",
"change_date": "Canvia la data",
"change_description": "Canvia la descripció",
- "change_display_order": "Canvia l'ordre de visualització",
+ "change_display_order": "Canvia l’ordre de visualització",
"change_location": "Canvia la ubicació",
"change_name": "Canvia el nom",
- "change_name_successfully": "Nom canviat amb èxit",
+ "change_name_successfully": "S’ha canviat el nom correctament",
"change_password": "Canvia la contrasenya",
- "change_password_description": "Aquesta és la primera vegada que inicieu la sessió al sistema o s'ha fet una sol·licitud per canviar la contrasenya. Introduïu la nova contrasenya a continuació.",
- "change_password_form_confirm_password": "Confirma la contrasenya",
- "change_password_form_description": "Hola {name},\n\nAquesta és la primera vegada que inicies sessió al sistema o bé s'ha sol·licitat canviar la teva contrasenya. Si us plau, introdueix la nova contrasenya a continuació.",
- "change_password_form_log_out": "Fer fora de tots els altres dispositius",
- "change_password_form_log_out_description": "Es recomana fer fora de tots els altres dispositius",
- "change_password_form_new_password": "Nova contrasenya",
+ "change_password_description": "És la primera vegada que inicieu la sessió al sistema o bé s’ha fet una sol·licitud perquè canvieu la contrasenya. Introduïu la contrasenya nova a continuació.",
+ "change_password_form_confirm_password": "Confirmeu la contrasenya",
+ "change_password_form_description": "Bon dia, {name},\n\nÉs la primera vegada que inicieu la sessió al sistema o bé s’ha fet una sol·licitud perquè canvieu la contrasenya. Introduïu la contrasenya nova a continuació.",
+ "change_password_form_log_out": "Tanca la sessió en tots els altres dispositius",
+ "change_password_form_log_out_description": "És recomanable tancar la sessió en tots els altres dispositius",
+ "change_password_form_new_password": "Contrasenya nova",
"change_password_form_password_mismatch": "Les contrasenyes no coincideixen",
- "change_password_form_reenter_new_password": "Torna a introduir la nova contrasenya",
- "change_pin_code": "Canviar el codi PIN",
- "change_your_password": "Canvia la teva contrasenya",
- "changed_visibility_successfully": "Visibilitat canviada amb èxit",
- "charging": "Carregant",
- "charging_requirement_mobile_backup": "La còpia de seguretat en segon pla requereix que el dispositiu estigui carregant",
- "check_logs": "Comprovar els registres",
- "checksum": "Suma de control",
+ "change_password_form_reenter_new_password": "Torneu a introduir la contrasenya nova",
+ "change_pin_code": "Canvieu el codi PIN",
+ "change_your_password": "Canvieu la contrasenya",
+ "changed_visibility_successfully": "S’ha canviat la visibilitat correctament",
+ "charging": "S’està carregant",
+ "charging_requirement_mobile_backup": "La còpia al servidor en segon pla requereix que el dispositiu s’estigui carregant",
+ "check_logs": "Comprova els registres",
+ "checksum": "Suma de verificació",
"choose": "Tria",
- "choose_matching_people_to_merge": "Trieu les persones que coincideixin per combinar-les",
+ "choose_matching_people_to_merge": "Trieu les persones que coincideixin per a fusionar-les",
"city": "Ciutat",
- "cleanup_confirm_description": "Immich ha trobat {count} recursos (creats abans del {date}) carregats adequadament al servidor. Eliminar les còpies locals d'aquest dispositiu?",
- "cleanup_confirm_prompt_title": "Eliminar d'aquest dispositiu?",
- "cleanup_deleted_assets": "S'han mogut {count} recursos a la paperera del dispositiu",
- "cleanup_deleting": "Movent a la paperera...",
- "cleanup_found_assets": "S'han trobat {count} recursos amb còpia",
- "cleanup_found_assets_with_size": "S'han trobat {count} elements copiats ({size})",
- "cleanup_icloud_shared_albums_excluded": "Els àlbums compartits d'iCloud s'exclouen de la cerca",
- "cleanup_no_assets_found": "No s'han trobat recursos que coincideixin amb el criteri de sobre. Allibera Espai només pot esborrar elements que s'hagin copiat al servidor",
+ "cleanup_confirm_description": "L’Immich ha trobat {count} recursos (creats abans del {date}) dels quals s’ha fet còpia al servidor correctament. Voleu eliminar-ne les còpies locals d’aquest dispositiu?",
+ "cleanup_confirm_prompt_title": "Voleu eliminar-los d’aquest dispositiu?",
+ "cleanup_deleted_assets": "S’han mogut {count} recursos a la paperera del dispositiu",
+ "cleanup_deleting": "S’està movent a la paperera...",
+ "cleanup_found_assets": "S’han trobat {count} recursos amb còpia al servidor",
+ "cleanup_found_assets_with_size": "S’han trobat {count} recursos amb còpia al servidor ({size})",
+ "cleanup_icloud_shared_albums_excluded": "Els àlbums compartits de l’iCloud s’exclouen de l’escaneig",
+ "cleanup_no_assets_found": "No s’han trobat recursos que coincideixin amb els criteris anteriors. L’alliberament d’espai només pot esborrar elements dels quals s’hagi fet còpia al servidor",
"cleanup_preview_title": "Recursos a eliminar ({count})",
- "cleanup_step3_description": "Cerca fotos i vídeos que ja tinguin una còpia al servidor amb la data de tall i manté els filtres seleccionats.",
- "cleanup_step4_summary": "{count} recursos (creats abans del {date}) esborrats del dispositiu local. Les fotografies estaran disponibles a l'aplicació Immich.",
- "cleanup_trash_hint": "Per a reclamar l'espai completament, obre la galeria del dispositiu i buida la paperera",
- "clear": "Buida",
+ "cleanup_step3_description": "Escaneja cercant recursos que ja tinguin una còpia al servidor que encaixin amb la data de tall i la configuració de manteniment.",
+ "cleanup_step4_summary": "S’esborraran {count} recursos (creats abans del {date}) del dispositiu local. Les fotos romandran accessibles a l’aplicació Immich.",
+ "cleanup_trash_hint": "Per a recuperar completament l’espai d’emmagatzematge, obriu l’aplicació de la galeria del sistema i buideu la paperera",
+ "clear": "Neteja",
"clear_all": "Neteja-ho tot",
"clear_all_recent_searches": "Esborra totes les cerques recents",
- "clear_failed_count": "Buida fallades ({count})",
+ "clear_failed_count": "No s’han pogut netejar ({count})",
"clear_file_cache": "Buida la memòria cau de fitxers",
"clear_message": "Neteja el missatge",
- "clear_value": "Neteja el valor",
- "client_cert_import": "Importar",
- "client_cert_import_success_msg": "S'ha importat el certificat del client",
- "client_cert_invalid_msg": "Fitxer de certificat no vàlid o contrasenya incorrecta",
- "client_cert_password_message": "Introdueix la contrasenya per a aquest certificat",
+ "clear_value": "Esborra el valor",
+ "client_cert_import": "Importa",
+ "client_cert_import_success_msg": "S’ha importat el certificat del client",
+ "client_cert_invalid_msg": "El fitxer de certificat no és vàlid o la contrasenya és incorrecta",
+ "client_cert_password_message": "Introduïu la contrasenya per a aquest certificat",
"client_cert_password_title": "Contrasenya del certificat",
- "client_cert_remove_msg": "S'ha eliminat el certificat del client",
- "client_cert_subtitle": "Només admet el format PKCS12 (.p12, .pfx). La importació/eliminació de certificats només està disponible abans d'iniciar sessió",
- "client_cert_title": "Certificat de client SSL",
+ "client_cert_remove_msg": "S’ha eliminat el certificat del client",
+ "client_cert_subtitle": "Només admet el format PKCS12 (.p12, .pfx). La importació/eliminació de certificats només està disponible abans d’iniciar sessió",
+ "client_cert_title": "Certificat de client SSL [EXPERIMENTAL]",
"close": "Tanca",
- "collapse": "Tanca",
- "collapse_all": "Redueix-ho tot",
+ "collapse": "Contrau",
+ "collapse_all": "Contrau-ho tot",
"color": "Color",
"command": "Ordre",
- "command_palette_prompt": "Trobar ràpidament pàgines, accions o comandes",
+ "command_palette_prompt": "Trobeu ràpidament pàgines, accions o ordres",
"command_palette_to_close": "per a tancar",
"command_palette_to_navigate": "per a introduir",
"command_palette_to_select": "per a seleccionar",
"command_palette_to_show_all": "per a mostrar-ho tot",
- "comment_deleted": "Comentari esborrat",
- "comment_options": "Opcions de comentari",
+ "comment_deleted": "Comentari suprimit",
+ "comment_options": "Opcions del comentari",
"comments_and_likes": "Comentaris i agradaments",
"comments_are_disabled": "Els comentaris estan desactivats",
"common_create_new_album": "Crea un àlbum nou",
"completed": "Completat",
"configuration": "Configuració",
- "confirm": "Confirmar",
- "confirm_admin_password": "Confirmeu la contrasenya d'administrador",
- "confirm_delete_face": "Estàs segur que vols eliminar la cara de {name} de les cares reconegudes?",
- "confirm_delete_shared_link": "Esteu segurs que voleu eliminar aquest enllaç compartit?",
- "confirm_keep_this_delete_others": "Excepte aquest element, tots els altres de la pila se suprimiran. Esteu segur que voleu continuar?",
- "confirm_new_pin_code": "Confirma el nou codi PIN",
- "confirm_password": "Confirmació de contrasenya",
- "confirm_tag_face": "Vols etiquetar aquesta cara com a {name}?",
- "confirm_tag_face_unnamed": "Com vols etiquetar aquesta cara?",
+ "confirm": "Confirma",
+ "confirm_admin_password": "Confirmeu la contrasenya d’administrador",
+ "confirm_delete_face": "Segur que voleu suprimir la cara de {name} del recurs?",
+ "confirm_delete_shared_link": "Segur que voleu suprimir aquest enllaç compartit?",
+ "confirm_keep_this_delete_others": "Excepte aquest recurs, la resta de recursos de la pila se suprimiran. Segur que voleu continuar?",
+ "confirm_new_pin_code": "Confirmeu el nou codi PIN",
+ "confirm_password": "Confirmeu la contrasenya",
+ "confirm_tag_face": "Voleu etiquetar aquesta cara com a {name}?",
+ "confirm_tag_face_unnamed": "Voleu etiquetar aquesta cara?",
"connected_device": "Dispositiu connectat",
"connected_to": "Connectat a",
"contain": "Contingut",
"context": "Context",
- "continue": "Continuar",
+ "continue": "Continua",
"control_bottom_app_bar_add_tags": "Afegeix etiquetes",
"control_bottom_app_bar_delete_from_local": "Suprimeix del dispositiu",
"control_bottom_app_bar_edit_location": "Edita la ubicació",
- "control_bottom_app_bar_edit_time": "Edita data i hora",
- "control_bottom_app_bar_trash_from_immich": "Mou a paperera",
- "copied_image_to_clipboard": "Imatge copiada a porta-retalls.",
- "copied_to_clipboard": "Copiada a porta-retalls!",
- "copy_error": "Error de còpia",
- "copy_image": "Còpia imatge",
+ "control_bottom_app_bar_edit_time": "Edita la data i l’hora",
+ "control_bottom_app_bar_trash_from_immich": "Mou a la paperera",
+ "copied_image_to_clipboard": "S’ha copiat la imatge al porta-retalls.",
+ "copied_to_clipboard": "S’ha copiat al porta-retalls!",
+ "copy_error": "S’ha produït un error en copiar",
+ "copy_image": "Copia la imatge",
"copy_json": "Copia el JSON",
- "copy_link": "Còpia l'enllaç",
- "copy_link_to_clipboard": "Còpia l'enllaç al porta-retalls",
- "copy_password": "Còpia la contrasenya",
- "copy_to_clipboard": "Copiar al porta-retalls",
+ "copy_link": "Copia l’enllaç",
+ "copy_link_to_clipboard": "Copia l’enllaç al porta-retalls",
+ "copy_password": "Copia la contrasenya",
+ "copy_to_clipboard": "Copia al porta-retalls",
"country": "País",
"cover": "Portada",
"covers": "Portades",
"create": "Crea",
- "create_album": "Crear un àlbum",
+ "create_album": "Crea un àlbum",
"create_album_page_untitled": "Sense títol",
- "create_api_key": "Crear clau API",
- "create_first_workflow": "Crea el primer flux de treball",
- "create_library": "Crea una llibreria",
- "create_link": "Crear enllaç",
- "create_link_to_share": "Crear enllaç per compartir",
- "create_link_to_share_description": "Deixa que qualsevol persona amb l'enllaç vegi les fotos seleccionades",
- "create_new": "CREAR NOU",
- "create_new_person": "Crea una nova persona",
- "create_new_person_hint": "Assigna els elements seleccionats a una persona nova",
+ "create_api_key": "Crea una clau de l’API",
+ "create_first_workflow": "Creeu el primer flux de treball",
+ "create_library": "Crea una biblioteca",
+ "create_link": "Crea un enllaç",
+ "create_link_to_share": "Crea un enllaç per a compartir",
+ "create_link_to_share_description": "Permet que qualsevol persona amb l’enllaç vegi les fotos seleccionades",
+ "create_new": "CREA’N UN DE NOU",
+ "create_new_person": "Crea una persona nova",
+ "create_new_person_hint": "Assigna els recursos seleccionats a una persona nova",
"create_new_user": "Crea un usuari nou",
"create_person": "Crea una persona",
- "create_person_subtitle": "Afegeix un nom a la cara seleccionada per crear i etiquetar la nova persona",
- "create_shared_album_page_share_add_assets": "AFEGEIX ELEMENTS",
- "create_shared_album_page_share_select_photos": "Escull fotografies",
+ "create_person_subtitle": "Afegeix un nom a la cara seleccionada per a crear i etiquetar la persona nova",
+ "create_shared_album_page_share_add_assets": "AFEGEIX RECURSOS",
+ "create_shared_album_page_share_select_photos": "Selecciona fotos",
"create_shared_link": "Crea un enllaç compartit",
- "create_tag": "Crear etiqueta",
- "create_tag_description": "Crear una nova etiqueta. Per les etiquetes aniuades, escriu la ruta comperta de l'etiqueta, incloses les barres diagonals.",
+ "create_tag": "Crear una etiqueta",
+ "create_tag_description": "Crear una etiqueta nova. Per a etiquetes aniuades, introduïu el camí complet de l’etiqueta, incloent-hi les barres.",
"create_user": "Crea un usuari",
"create_workflow": "Crea un flux de treball",
"created": "Creat",
"created_at": "Creat",
- "creating_linked_albums": "Creant àlbums enllaçats...",
+ "creating_linked_albums": "S’estan creant els àlbums enllaçats...",
"crop": "Retalla",
"crop_aspect_ratio_free": "Lliure",
"crop_aspect_ratio_original": "Original",
@@ -793,54 +813,53 @@
"current_server_address": "Adreça actual del servidor",
"custom_date": "Data personalitzada",
"custom_locale": "Localització personalitzada",
- "custom_locale_description": "Format de dates i números segons la llengua i regió seleccionades",
- "custom_url": "URL personalitzada",
- "cutoff_date_description": "Manté fotos des de l'últim…",
+ "custom_locale_description": "Formata les dates, les hores i els números en base a la llengua i la regió seleccionades",
+ "cutoff_date_description": "Mantén les fotos dels darrers…",
"cutoff_day": "{count, plural, one {dia} other {dies}}",
"cutoff_year": "{count, plural, one {any} other {anys}}",
"dark": "Fosc",
- "dark_theme": "Canvia a tema fosc",
+ "dark_theme": "Canvia al tema fosc",
"date": "Data",
"date_after": "Data posterior a",
"date_and_time": "Data i hora",
"date_before": "Data anterior a",
"date_of_birth": "Data de naixement",
- "date_of_birth_saved": "Data de naixement guardada amb èxit",
+ "date_of_birth_saved": "S’ha desat la data de naixement correctament",
"date_range": "Interval de dates",
- "date_time_original": "Data/Hora original",
+ "date_time_original": "Data/hora original",
"day": "Dia",
"days": "Dies",
"deduplicate_all": "Desduplica-ho tot",
- "default_quality_subtitle": "Qualitat utilitzada a l’hora de tocar la compartició. Premeu el botó de compartir per triar cada vegada.",
- "default_share_quality": "Qualitat de comparticio per defecte",
- "delete": "Esborrar",
- "delete_action_confirmation_message": "Segur que vols eliminar aquest recurs? Aquesta acció el mourà a la paperera del servidor, i et preguntarà si el vols eliminar localment",
- "delete_action_prompt": "{count} eliminats",
- "delete_album": "Esborra l'àlbum",
- "delete_api_key_prompt": "Esteu segurs que voleu eliminar aquesta clau API?",
- "delete_dialog_alert": "Aquests elements seran eliminats de manera permanent d'Immich i del vostre dispositiu",
- "delete_dialog_alert_local": "Aquests elements s'eliminaran permanentment del vostre dispositiu, però encara estaran disponibles al servidor Immich",
- "delete_dialog_alert_local_non_backed_up": "Alguns dels elements no tenen còpia de seguretat a Immich i s'eliminaran permanentment del dispositiu",
- "delete_dialog_title": "Esborra permanentment",
- "delete_duplicates_confirmation": "Esteu segurs que voleu eliminar aquests duplicats permanentment?",
- "delete_face": "Esborrar cara",
+ "default_quality_subtitle": "Qualitat utilitzada quan es prem l’opció de compartició. Mantingueu premut el botó de compartir per a triar-ho cada vegada.",
+ "default_share_quality": "Qualitat de compartició per defecte",
+ "delete": "Suprimeix",
+ "delete_action_confirmation_message": "Segur que voleu suprimir aquest recurs? Aquesta acció el mourà a la paperera del servidor i us preguntarà si voleu eliminar-lo localment",
+ "delete_action_prompt": "{count} suprimits",
+ "delete_album": "Suprimeix l’àlbum",
+ "delete_api_key_prompt": "Segur que voleu suprimir aquesta clau de l’API?",
+ "delete_dialog_alert": "Aquests elements se suprimiran permanentment de l’Immich i del vostre dispositiu",
+ "delete_dialog_alert_local": "Aquests elements se suprimiran permanentment del vostre dispositiu, però romandran disponibles al servidor de l’Immich",
+ "delete_dialog_alert_local_non_backed_up": "Alguns elements no tenen còpia al servidor de l’Immich i se suprimiran permanentment del dispositiu",
+ "delete_dialog_title": "Suprimeix permanentment",
+ "delete_duplicates_confirmation": "Segur que voleu suprimir permanentment aquests duplicats?",
+ "delete_face": "Suprimeix la cara",
"delete_key": "Suprimeix la clau",
- "delete_library": "Suprimeix la Llibreria",
- "delete_link": "Esborra l'enllaç",
- "delete_local_action_prompt": "{count} eliminats localment",
- "delete_local_dialog_ok_backed_up_only": "Esborrar només les que tinguin còpia de seguretat",
- "delete_local_dialog_ok_force": "Suprimeix de totes maneres",
- "delete_others": "Suprimeix altres",
- "delete_permanently": "Eliminar permanentment",
- "delete_permanently_action_prompt": "{count} eliminats permanentment",
- "delete_shared_link": "Odstranit sdílený odkaz",
- "delete_shared_link_dialog_title": "Suprimeix l'enllaç compartit",
- "delete_tag": "Eliminar etiqueta",
- "delete_tag_confirmation_prompt": "Estàs segur que vols eliminar l'etiqueta {tagName}?",
- "delete_user": "Suprimeix l'usuari",
- "deleted_shared_link": "Suprimeix l'enllaç compartit",
+ "delete_library": "Suprimeix la biblioteca",
+ "delete_link": "Suprimeix l’enllaç",
+ "delete_local_action_prompt": "{count} suprimits localment",
+ "delete_local_dialog_ok_backed_up_only": "Suprimeix només els que tinguin còpia al servidor",
+ "delete_local_dialog_ok_force": "Suprimeix igualment",
+ "delete_others": "Suprimeix els altres",
+ "delete_permanently": "Suprimeix permanentment",
+ "delete_permanently_action_prompt": "{count} suprimits permanentment",
+ "delete_shared_link": "Suprimeix l’enllaç compartit",
+ "delete_shared_link_dialog_title": "Suprimeix l’enllaç compartit",
+ "delete_tag": "Suprimeix l’etiqueta",
+ "delete_tag_confirmation_prompt": "Segur que voleu suprimir l’etiqueta {tagName}?",
+ "delete_user": "Suprimeix l’usuari",
+ "deleted_shared_link": "Suprimeix l’enllaç compartit",
"description": "Descripció",
- "deselect_all": "Deseleccionar Tots",
+ "deselect_all": "Deselecciona-ho tot",
"details": "Detalls",
"direction": "Direcció",
"disable": "Desactiva",
@@ -851,1072 +870,1088 @@
"dismiss_all_errors": "Descarta tots els errors",
"display_options": "Opcions de visualització",
"display_order": "Ordre de visualització",
- "display_original_photos": "Mostra les fotografies originals",
- "display_original_photos_setting_description": "Preferiu mostrar la foto original quan visualitzeu un recurs en lloc de miniatures quan el recurs original és compatible amb el web. Això pot provocar una velocitat de visualització de fotos més lenta.",
+ "display_original_photos": "Mostra les fotos originals",
+ "display_original_photos_setting_description": "Prefereix mostrar la foto original en visualitzar un recurs en lloc de miniatures quan el recurs original és compatible amb el web. Això pot provocar una velocitat de visualització de fotos més lenta.",
"do_not_show_again": "No tornis a mostrar aquest missatge",
"documentation": "Documentació",
"done": "Fet",
- "download": "Descarregar",
- "download_canceled": "Descàrrega cancel·lada",
- "download_complete": "Descàrrega completada",
- "download_enqueue": "Descàrrega en cua",
- "download_failed": "Descàrrega ha fallat",
- "download_finished": "Descàrrega acabada",
+ "download": "Baixa",
+ "download_canceled": "S’ha cancel·lat la baixada",
+ "download_complete": "S’ha completat la baixada",
+ "download_enqueue": "S’ha afegit la baixada a la cua",
+ "download_failed": "S’ha produït un error en la baixada",
+ "download_finished": "S’ha finalitzat la baixada",
"download_include_embedded_motion_videos": "Vídeos incrustats",
- "download_include_embedded_motion_videos_description": "Incloure vídeos incrustats en fotografies en moviment com un arxiu separat",
- "download_notfound": "No s'ha trobat la descàrrega",
- "download_original": "Descarregar original",
- "download_paused": "Descàrrega pausada",
- "download_settings": "Descarregar",
- "download_settings_description": "Gestioneu la configuració relacionada amb la descàrrega de recursos",
- "download_waiting_to_retry": "Esperant per tornar-ho a intentar",
- "downloading": "Baixant",
- "downloading_asset_filename": "Descarregant l'element {filename}",
- "downloading_from_icloud": "Descarregant des d'iCloud",
- "downloading_media": "Descàrrega multimèdia",
- "drag_to_reorder": "Arrossegueu per reordenar",
- "drop_files_to_upload": "Deixeu els fitxers a qualsevol lloc per pujar-los",
+ "download_include_embedded_motion_videos_description": "Inclou els vídeos incrustats en fotos en moviment com a fitxers separats",
+ "download_notfound": "No s’ha trobat la baixada",
+ "download_original": "Baixa l’original",
+ "download_paused": "S’ha pausat la baixada",
+ "download_settings": "Baixades",
+ "download_settings_description": "Gestioneu la configuració relacionada amb les baixades de recursos",
+ "download_waiting_to_retry": "S’està esperant per a tornar-ho a provar",
+ "downloading": "S’està baixant",
+ "downloading_asset_filename": "S’està baixant el recurs {filename}",
+ "downloading_from_icloud": "S’està baixant de l’iCloud",
+ "downloading_media": "S’està baixant el mitjà",
+ "drag_to_reorder": "Arrossegueu per a reordenar",
+ "drop_files_to_upload": "Deixeu anar fitxers a qualsevol lloc per a pujar-los",
"duplicate": "Duplica",
"duplicate_workflow": "Duplica el flux de treball",
"duplicates": "Duplicats",
- "duplicates_description": "Resol cada grup indicant, si n'hi ha, quins són duplicats.",
+ "duplicates_description": "Resoleu cada grup indicant quins són els duplicats, si n’hi ha.",
"duration": "Durada",
- "edit": "Editar",
- "edit_album": "Edita l'àlbum",
- "edit_avatar": "Edita l'avatar",
- "edit_birthday": "Edita l'aniversari",
+ "edit": "Edita",
+ "edit_album": "Edita l’àlbum",
+ "edit_avatar": "Edita l’avatar",
+ "edit_birthday": "Edita la data de naixement",
"edit_date": "Edita la data",
- "edit_date_and_time": "Edita la data i l'hora",
+ "edit_date_and_time": "Edita la data i l’hora",
"edit_date_and_time_action_prompt": "{count} dates i hores editades",
- "edit_date_and_time_by_offset": "Canvia la data mitjançant diferència",
+ "edit_date_and_time_by_offset": "Canvia la data de manera relativa",
"edit_description": "Edita la descripció",
- "edit_exclusion_pattern": "Edita patró d'exclusió",
+ "edit_exclusion_pattern": "Edita el patró d’exclusió",
"edit_faces": "Edita les cares",
- "edit_key": "Edita clau",
- "edit_link": "Edita enllaç",
- "edit_location": "Edita ubicació",
+ "edit_key": "Edita la clau",
+ "edit_link": "Edita l’enllaç",
+ "edit_location": "Edita la ubicació",
"edit_location_action_prompt": "{count} ubicacions editades",
"edit_location_dialog_title": "Ubicació",
"edit_name": "Edita el nom",
- "edit_people": "Edita la gent",
- "edit_tag": "Edita etiqueta",
- "edit_title": "Edita títol",
- "edit_user": "Edita l'usuari",
+ "edit_people": "Edita les persones",
+ "edit_tag": "Edita l’etiqueta",
+ "edit_title": "Edita el títol",
+ "edit_user": "Edita l’usuari",
"edit_workflow": "Edita el flux de treball",
"editor": "Editor",
"editor_discard_edits_confirm": "Descarta les modificacions",
- "editor_discard_edits_prompt": "Tens modificacions sense desar. Estàs segur que les vols descartar?",
- "editor_discard_edits_title": "Vols descartar les modificacions?",
- "editor_edits_applied_error": "No s'han pogut aplicar les modificacions",
- "editor_edits_applied_success": "Les modificacions s'han aplicat correctament",
+ "editor_discard_edits_prompt": "Teniu modificacions sense desar. Segur que les voleu descartar?",
+ "editor_discard_edits_title": "Voleu descartar les modificacions?",
+ "editor_edits_applied_error": "No s’han pogut aplicar les modificacions",
+ "editor_edits_applied_success": "Les modificacions s’han aplicat correctament",
"editor_flip_horizontal": "Capgira horitzontalment",
"editor_flip_vertical": "Capgira verticalment",
- "editor_handle_corner": "{corner, select, top_left {Top-left} top_right {Top-right} bottom_left {Bottom-left} bottom_right {Bottom-right} other {A}} cantó per agafar",
- "editor_handle_edge": "{edge, select, top {Top} bottom {Bottom} left {Left} right {Right} other {An}} cantó per agafar",
+ "editor_handle_corner": "Cantó per a agafar{corner, select, top_left { superior esquerre} top_right { superior dret} bottom_left { inferior esquerre} bottom_right { inferior dret} other {}}",
+ "editor_handle_edge": "Vora{edge, select, top { superior} bottom { inferior} left { esquerra} right { dreta} other {}} per a agafar",
"editor_orientation": "Orientació",
- "editor_reset_all_changes": "Reiniciar canvis",
- "editor_rotate_left": "Rota 90º al contrari de les agulles",
- "editor_rotate_right": "Rota 90º en el sentit de les agulles",
- "email": "Correu electrònic",
- "email_notifications": "Correu electrònic de notificacions",
+ "editor_reset_all_changes": "Restableix els canvis",
+ "editor_rotate_left": "Gira 90° en sentit antihorari",
+ "editor_rotate_right": "Gira 90° en sentit horari",
+ "email": "Adreça electrònica",
+ "email_notifications": "Notificacions per correu electrònic",
"empty_folder": "Aquesta carpeta és buida",
- "empty_trash": "Buidar la paperera",
- "empty_trash_confirmation": "Esteu segur que voleu buidar la paperera? Això eliminarà tots els recursos a la paperera permanentment d'Immich.\nNo podeu desfer aquesta acció!",
- "enable": "Activar",
- "enable_backup": "Còpia de Seguretat",
- "enable_biometric_auth_description": "Introduïu el codi PIN per a habilitar l'autenticació biomètrica",
+ "empty_trash": "Buida la paperera",
+ "empty_trash_confirmation": "Segur que voleu buidar la paperera? Se suprimiran permanentment de l’Immich tots els recursos de la paperera.\nAquesta acció no es pot desfer!",
+ "enable": "Activa",
+ "enable_backup": "Activa la còpia al servidor",
+ "enable_biometric_auth_description": "Introduïu el codi PIN per a activar l’autenticació biomètrica",
"enabled": "Activat",
- "end_date": "Data final",
- "enqueued": "En cua",
- "enter_wifi_name": "Introdueix el nom de Wi-Fi",
+ "end_date": "Data de final",
+ "enqueued": "A la cua",
+ "enter_wifi_name": "Introdueix el nom de la Wi-Fi",
"enter_your_pin_code": "Introduïu el codi PIN",
"enter_your_pin_code_subtitle": "Introduïu el codi PIN per a accedir a la carpeta protegida",
"error": "Error",
- "error_delete_face": "Error esborrant cara de les cares reconegudes",
- "error_loading_albums": "Error en carregar àlbums",
- "error_loading_image": "Error carregant la imatge",
- "error_loading_partners": "No s'han pogut carregar les parelles: {error}",
- "error_retrieving_asset_information": "Error en recuperar la informació de l'actiu",
- "error_saving_image": "Error: {error}",
- "error_tag_face_bounding_box": "Error a l'etiquetar la cara - no s'han pogut obtenir les coordenades de l'àrea",
- "error_title": "Error - Quelcom ha anat malament",
- "error_while_navigating": "Error en navegar fins a l'actiu",
+ "error_delete_face": "S’ha produït un error en suprimir la cara del recurs",
+ "error_loading_albums": "S’ha produït un error en carregar els àlbums",
+ "error_loading_image": "S’ha produït un error en carregar la imatge",
+ "error_loading_partners": "S’ha produït un error en carregar els companys: {error}",
+ "error_retrieving_asset_information": "S’ha produït un error en obtenir la informació del recurs",
+ "error_saving_image": "S’ha produït un error: {error}",
+ "error_tag_face_bounding_box": "S’ha produït un error en etiquetar la cara: no s’han pogut obtenir les coordenades de l’àrea",
+ "error_title": "Error - Alguna cosa ha anat malament",
+ "error_while_navigating": "S’ha produït un error en navegar fins al recurs",
"errors": {
- "cannot_navigate_next_asset": "No es pot navegar a l'element següent",
- "cannot_navigate_previous_asset": "No es pot navegar a l'element anterior",
+ "cannot_navigate_next_asset": "No es pot navegar al recurs següent",
+ "cannot_navigate_previous_asset": "No es pot navegar al recurs anterior",
"cant_apply_changes": "No es poden aplicar els canvis",
"cant_change_activity": "No es pot {enabled, select, true {desactivar} other {activar}} aquesta activitat",
- "cant_change_asset_favorite": "No es pot canviar el favorit per a aquest recurs",
- "cant_change_metadata_assets_count": "No es poden canviar les metadades {count, plural, one {de l'element} other {dels # elements}}",
+ "cant_change_asset_favorite": "No es pot canviar l’estat de preferit d’aquest recurs",
+ "cant_change_metadata_assets_count": "No es poden canviar les metadades {count, plural, one {del recurs} other {dels # recursos}}",
"cant_get_faces": "No es poden obtenir les cares",
"cant_get_number_of_comments": "No es pot obtenir el nombre de comentaris",
"cant_search_people": "No es poden cercar persones",
"cant_search_places": "No es poden cercar llocs",
- "error_adding_assets_to_album": "Error afegint elements a l'àlbum",
- "error_adding_users_to_album": "Error afegint usuaris a l'àlbum",
- "error_deleting_shared_user": "S'ha produït un error en suprimir l'usuari compartit",
- "error_downloading": "Error descarregant {filename}",
- "error_hiding_buy_button": "S'ha produït un error en amagar el botó de compra",
- "error_removing_assets_from_album": "Error eliminant els elements de l'àlbum, consulteu la consola per obtenir més detalls",
- "error_selecting_all_assets": "Error seleccionant tots els elements",
+ "error_adding_assets_to_album": "S’ha produït un error en afegir els recursos a l’àlbum",
+ "error_adding_users_to_album": "S’ha produït un error en afegir els usuaris a l’àlbum",
+ "error_deleting_shared_user": "S’ha produït un error en suprimir l’usuari compartit",
+ "error_downloading": "S’ha produït un error en baixar {filename}",
+ "error_hiding_buy_button": "S’ha produït un error en amagar el botó de compra",
+ "error_removing_assets_from_album": "S’ha produït un error en eliminar els recursos l’àlbum; consulteu la consola per a més detalls",
+ "error_selecting_all_assets": "S’ha produït un error en seleccionar tots els recursos",
"exclusion_pattern_already_exists": "Aquest patró d’exclusió ja existeix.",
- "failed_to_create_album": "No s'ha pogut crear l'àlbum",
- "failed_to_create_shared_link": "No s'ha pogut crear l'enllaç compartit",
- "failed_to_edit_shared_link": "No s'ha pogut editar l'enllaç compartit",
- "failed_to_get_people": "No s'han pogut aconseguir persones",
- "failed_to_keep_this_delete_others": "No s'ha pogut conservar aquest element i suprimir els altres",
- "failed_to_load_asset": "No s'ha pogut carregar l'element",
- "failed_to_load_assets": "No s'han pogut carregar els elements",
- "failed_to_load_notifications": "Error en carregar les notificacions",
- "failed_to_load_people": "No s'han pogut carregar les persones",
- "failed_to_remove_product_key": "No s'ha pogut eliminar la clau del producte",
- "failed_to_reset_pin_code": "No s'ha pogut reiniciar el codi PIN",
- "failed_to_stack_assets": "No s'han pogut apilar els elements",
- "failed_to_tag_assets": "Ha fallat l'assignació d'etiquetes",
- "failed_to_unstack_assets": "No s'han pogut desapilar els elements",
- "failed_to_update_notification_status": "Error en actualitzar l'estat de les notificacions",
- "incorrect_email_or_password": "Correu electrònic o contrasenya incorrectes",
- "library_folder_already_exists": "Aquesta ruta d'importació ja existeix.",
- "page_not_found": "Pàgina no trobada",
- "paths_validation_failed": "{paths, plural, one {# ruta} other {# rutes}} no ha pogut validar",
- "profile_picture_transparent_pixels": "Les fotos de perfil no poden tenir píxels transparents. Per favor, feu zoom in, mogueu la imatge o ambdues.",
- "quota_higher_than_disk_size": "Heu establert una quota més gran que la mida de disc",
+ "failed_to_create_album": "No s’ha pogut crear l’àlbum",
+ "failed_to_create_shared_link": "No s’ha pogut crear l’enllaç compartit",
+ "failed_to_edit_shared_link": "No s’ha pogut editar l’enllaç compartit",
+ "failed_to_get_people": "No s’han pogut obtenir les persones",
+ "failed_to_keep_this_delete_others": "No s’ha pogut conservar aquest recurs i suprimir la resta",
+ "failed_to_load_asset": "No s’ha pogut carregar el recurs",
+ "failed_to_load_assets": "No s’han pogut carregar els recursos",
+ "failed_to_load_notifications": "S’ha produït un error en carregar les notificacions",
+ "failed_to_load_people": "No s’han pogut carregar les persones",
+ "failed_to_remove_product_key": "No s’ha pogut suprimir la clau del producte",
+ "failed_to_reset_pin_code": "No s’ha pogut restablir el codi PIN",
+ "failed_to_stack_assets": "No s’han pogut apilar els recursos",
+ "failed_to_tag_assets": "No s’han pogut etiquetar els recursos",
+ "failed_to_unstack_assets": "No s’han pogut desapilar els recursos",
+ "failed_to_update_notification_status": "No s’ha pogut actualitzar l’estat de les notificacions",
+ "incorrect_email_or_password": "Adreça electrònica o contrasenya incorrectes",
+ "library_folder_already_exists": "Aquest camí d’importació ja existeix.",
+ "page_not_found": "No s’ha trobat la pàgina",
+ "paths_validation_failed": "No {paths, plural, one {s’ha pogut validar # camí} other {s’han pogut validar # camins}}",
+ "profile_picture_transparent_pixels": "Les fotos de perfil no poden tenir píxels transparents. Amplieu i/o moveu la imatge.",
+ "quota_higher_than_disk_size": "Heu definit quota més gran que la mida del disc",
"something_went_wrong": "Alguna cosa ha anat malament",
- "unable_to_add_album_users": "No es poden afegir usuaris a l'àlbum",
- "unable_to_add_assets_to_shared_link": "No s'han pogut afegir els elements a l'enllaç compartit",
- "unable_to_add_comment": "No es pot afegir el comentari",
- "unable_to_add_exclusion_pattern": "No s'ha pogut afegir el patró d’exclusió",
- "unable_to_add_partners": "No es poden afegir companys",
- "unable_to_add_remove_archive": "No s'ha pogut {archived, select, true {eliminar l'element de} other {afegir l'element a}} l'arxiu",
- "unable_to_add_remove_favorites": "No s'ha pogut {favorite, select, true {afegir l'element als} other {eliminar l'element dels}} preferits",
- "unable_to_archive_unarchive": "No es pot {archived, select, true {arxivar} other {desarxivar}}",
- "unable_to_change_album_user_role": "No es pot canviar el rol d'usuari de l'àlbum",
- "unable_to_change_date": "No es pot canviar la data",
- "unable_to_change_description": "No s'ha pogut canviar la descripció",
- "unable_to_change_favorite": "No es pot canviar el favorit per a aquest recurs",
- "unable_to_change_location": "No es pot canviar la ubicació",
- "unable_to_change_password": "No es pot canviar la contrasenya",
- "unable_to_change_visibility": "No es pot canviar la visibilitat de {count, plural, one {# persona} other {# persones}}",
- "unable_to_complete_oauth_login": "No es pot completar l'inici de sessió OAuth",
- "unable_to_connect": "No pot connectar",
- "unable_to_copy_to_clipboard": "No es pot copiar al porta-retalls, assegureu-vos que esteu accedint a la pàgina mitjançant https",
- "unable_to_create": "No s'ha pogut crear el flux de treball",
- "unable_to_create_admin_account": "No es pot crear un compte d'administrador",
- "unable_to_create_api_key": "No es pot crear una clau d'API nova",
- "unable_to_create_library": "No es pot crear la llibreria",
- "unable_to_create_user": "No es pot crear l'usuari",
- "unable_to_delete_album": "No es pot eliminar l'àlbum",
- "unable_to_delete_asset": "No es pot suprimir el recurs",
- "unable_to_delete_assets": "S'ha produït un error en suprimir recursos",
- "unable_to_delete_exclusion_pattern": "No es pot suprimir el patró d'exclusió",
- "unable_to_delete_shared_link": "No es pot suprimir l'enllaç compartit",
- "unable_to_delete_user": "No es pot eliminar l'usuari",
- "unable_to_delete_workflow": "No es pot suprimir el flux de treball",
- "unable_to_download_files": "No es poden descarregar fitxers",
- "unable_to_edit_exclusion_pattern": "No es pot editar el patró d'exclusió",
- "unable_to_empty_trash": "No es pot buidar la paperera",
- "unable_to_enter_fullscreen": "No es pot entrar a la pantalla completa",
- "unable_to_exit_fullscreen": "No es pot sortir de la pantalla completa",
- "unable_to_get_comments_number": "No es pot obtenir el nombre de comentaris",
- "unable_to_get_shared_link": "No s'ha pogut obtenir l'enllaç compartit",
- "unable_to_hide_person": "No es pot amagar la persona",
- "unable_to_link_motion_video": "No es pot enllaçar el vídeo en moviment",
- "unable_to_link_oauth_account": "No es pot enllaçar el compte OAuth",
- "unable_to_log_out_all_devices": "No es poden tancar la sessió de tots els dispositius",
- "unable_to_log_out_device": "No es pot tancar la sessió del dispositiu",
- "unable_to_login_with_oauth": "No es pot iniciar sessió amb OAuth",
- "unable_to_play_video": "No es pot reproduir el vídeo",
- "unable_to_reassign_assets_existing_person": "No es poden reassignar recursos a {name, select, null {una persona existent} other {{name}}}",
- "unable_to_reassign_assets_new_person": "No es poden reassignar recursos a una persona nova",
- "unable_to_refresh_user": "No es pot actualitzar l'usuari",
- "unable_to_remove_album_users": "No es poden eliminar usuaris de l'àlbum",
- "unable_to_remove_api_key": "No es pot eliminar la clau de l'API",
- "unable_to_remove_assets_from_shared_link": "No es poden eliminar recursos de l'enllaç compartit",
- "unable_to_remove_library": "No es pot eliminar la biblioteca",
- "unable_to_remove_partner": "No es pot eliminar company/a",
- "unable_to_remove_reaction": "No es pot eliminar la reacció",
- "unable_to_reset_password": "No es pot restablir la contrasenya",
- "unable_to_reset_pin_code": "No es pot restablir el codi PIN",
- "unable_to_resolve_duplicate": "No es pot resoldre el duplicat",
- "unable_to_restore_assets": "No es poden restaurar els recursos",
- "unable_to_restore_trash": "No es pot restaurar la paperera",
- "unable_to_restore_user": "No es pot restaurar l'usuari",
- "unable_to_save_album": "No es pot desar l'àlbum",
- "unable_to_save_api_key": "No es pot desar la clau de l'API",
- "unable_to_save_date_of_birth": "No es pot desar la data de naixement",
- "unable_to_save_name": "No es pot desar el nom",
- "unable_to_save_profile": "No es pot desar el perfil",
- "unable_to_save_settings": "No es pot desar la configuració",
- "unable_to_scan_libraries": "No es poden escanejar les biblioteques",
- "unable_to_scan_library": "No es pot escanejar la biblioteca",
- "unable_to_set_feature_photo": "No s'ha pogut configurar la foto destacada",
- "unable_to_set_profile_picture": "No es pot configurar la foto de perfil",
- "unable_to_set_rating": "No s'ha pogut establir la valoració",
- "unable_to_submit_job": "No es pot enviar la tasca",
- "unable_to_trash_asset": "No es pot eliminar el recurs a la paperera",
- "unable_to_unlink_account": "No es pot desenllaçar el compte",
- "unable_to_unlink_motion_video": "No es pot desvincular el vídeo en moviment",
- "unable_to_update_album_cover": "No es pot actualitzar la portada de l'àlbum",
- "unable_to_update_album_info": "No es pot actualitzar la informació de l'àlbum",
- "unable_to_update_library": "No es pot actualitzar la biblioteca",
- "unable_to_update_location": "No es pot actualitzar la ubicació",
- "unable_to_update_settings": "No es pot actualitzar la configuració",
- "unable_to_update_timeline_display_status": "No es pot actualitzar l'estat de visualització de la cronologia",
- "unable_to_update_user": "No es pot actualitzar l'usuari",
+ "unable_to_add_album_users": "No s’han pogut afegir els usuaris a l’àlbum",
+ "unable_to_add_assets_to_shared_link": "No s’han pogut afegir els recursos a l’enllaç compartit",
+ "unable_to_add_comment": "No s’ha pogut afegir el comentari",
+ "unable_to_add_exclusion_pattern": "No s’ha pogut afegir el patró d’exclusió",
+ "unable_to_add_partners": "No s’han pogut afegir companys",
+ "unable_to_add_remove_archive": "No s’ha pogut {archived, select, true {eliminar l’element de} other {afegir l’element a}} l’arxiu",
+ "unable_to_add_remove_favorites": "No s’ha pogut {favorite, select, true {afegir l’element als} other {eliminar l’element dels}} preferits",
+ "unable_to_archive_unarchive": "No s’ha pogut {archived, select, true {arxivar} other {desarxivar}}",
+ "unable_to_change_album_user_role": "No s’ha pogut canviar el rol de l’usuari de l’àlbum",
+ "unable_to_change_date": "No s’ha pogut canviar la data",
+ "unable_to_change_description": "No s’ha pogut canviar la descripció",
+ "unable_to_change_favorite": "No s’ha pogut canviar l’estat de favorit d’aquest recurs",
+ "unable_to_change_location": "No s’ha pogut canviar la ubicació",
+ "unable_to_change_password": "No s’ha pogut canviar la contrasenya",
+ "unable_to_change_visibility": "No s’ha pogut canviar la visibilitat {count, plural, one {d’# persona} other {de # persones}}",
+ "unable_to_complete_oauth_login": "No s’ha pogut completar l’inici de sessió amb OAuth",
+ "unable_to_connect": "No s’ha pogut connectar",
+ "unable_to_copy_to_clipboard": "No s’ha pogut copiar al porta-retalls; assegureu-vos que accediu a la pàgina mitjançant https",
+ "unable_to_create": "No s’ha pogut crear el flux de treball",
+ "unable_to_create_admin_account": "No s’ha pogut crear el compte d’administrador",
+ "unable_to_create_api_key": "No s’ha pogut crear una clau de l’API nova",
+ "unable_to_create_library": "No s’ha pogut crear la biblioteca",
+ "unable_to_create_user": "No s’ha pogut crear l’usuari",
+ "unable_to_delete_album": "No s’ha pogut suprimir l’àlbum",
+ "unable_to_delete_asset": "No s’ha pogut suprimir el recurs",
+ "unable_to_delete_assets": "S’ha produït un error en suprimir els recursos",
+ "unable_to_delete_exclusion_pattern": "No s’ha pogut suprimir el patró d’exclusió",
+ "unable_to_delete_shared_link": "No s’ha pogut suprimir l’enllaç compartit",
+ "unable_to_delete_user": "No s’ha pogut suprimir l’usuari",
+ "unable_to_delete_workflow": "No s’ha pogut suprimir el flux de treball",
+ "unable_to_download_files": "No s’han pogut baixar els fitxers",
+ "unable_to_edit_exclusion_pattern": "No s’ha pogut editar el patró d’exclusió",
+ "unable_to_empty_trash": "No s’ha pogut buidar la paperera",
+ "unable_to_enter_fullscreen": "No s’ha pogut posar en pantalla completa",
+ "unable_to_exit_fullscreen": "No s’ha pogut sortir de la pantalla completa",
+ "unable_to_get_comments_number": "No s’ha pogut obtenir el nombre de comentaris",
+ "unable_to_get_shared_link": "No s’ha pogut obtenir l’enllaç compartit",
+ "unable_to_hide_person": "No s’ha pogut amagar la persona",
+ "unable_to_link_motion_video": "No s’ha pogut enllaçar el vídeo en moviment",
+ "unable_to_link_oauth_account": "No s’ha pogut enllaçar el compte d’OAuth",
+ "unable_to_log_out_all_devices": "No s’ha pogut tancar la sessió en tots els dispositius",
+ "unable_to_log_out_device": "No s’ha pogut tancar la sessió del dispositiu",
+ "unable_to_login_with_oauth": "No s’ha pogut iniciar sessió amb OAuth",
+ "unable_to_play_video": "No s’ha pogut reproduir el vídeo",
+ "unable_to_reassign_assets_existing_person": "No s’han pogut reassignar els recursos a {name, select, null {una persona existent} other {{name}}}",
+ "unable_to_reassign_assets_new_person": "No s’han pogut reassignar els recursos a una persona nova",
+ "unable_to_refresh_user": "No s’ha pogut actualitzar l’usuari",
+ "unable_to_remove_album_users": "No s’han pogut eliminar els usuaris de l’àlbum",
+ "unable_to_remove_api_key": "No s’ha pogut suprimir la clau de l’API",
+ "unable_to_remove_assets_from_shared_link": "No s’han pogut eliminar els recursos de l’enllaç compartit",
+ "unable_to_remove_library": "No s’ha pogut suprimir la biblioteca",
+ "unable_to_remove_partner": "No s’ha pogut suprimir el company",
+ "unable_to_remove_reaction": "No s’ha pogut suprimir la reacció",
+ "unable_to_reset_password": "No s’ha pogut restablir la contrasenya",
+ "unable_to_reset_pin_code": "No s’ha pogut restablir el codi PIN",
+ "unable_to_resolve_duplicate": "No s’ha pogut resoldre el duplicat",
+ "unable_to_restore_assets": "No s’han pogut restaurar els recursos",
+ "unable_to_restore_trash": "No s’ha pogut restaurar la paperera",
+ "unable_to_restore_user": "No s’ha pogut restaurar l’usuari",
+ "unable_to_save_album": "No s’ha pogut desar l’àlbum",
+ "unable_to_save_api_key": "No s’ha pogut desar la clau de l’API",
+ "unable_to_save_date_of_birth": "No s’ha pogut desar la data de naixement",
+ "unable_to_save_name": "No s’ha pogut desar el nom",
+ "unable_to_save_profile": "No s’ha pogut desar el perfil",
+ "unable_to_save_settings": "No s’ha pogut desar la configuració",
+ "unable_to_scan_libraries": "No s’han pogut escanejar les biblioteques",
+ "unable_to_scan_library": "No s’ha pogut escanejar la biblioteca",
+ "unable_to_set_feature_photo": "No s’ha pogut definir la foto destacada",
+ "unable_to_set_profile_picture": "No s’ha pogut definir la foto de perfil",
+ "unable_to_set_rating": "No s’ha pogut establir la puntuació",
+ "unable_to_submit_job": "No s’ha pogut enviar la tasca",
+ "unable_to_trash_asset": "No s’ha pogut enviar el recurs a la paperera",
+ "unable_to_unlink_account": "No s’ha pogut desenllaçar el compte",
+ "unable_to_unlink_motion_video": "No s’ha pogut desenllaçar el vídeo en moviment",
+ "unable_to_update_album_cover": "No s’ha pogut actualitzar la portada de l’àlbum",
+ "unable_to_update_album_info": "No s’ha pogut actualitzar la informació de l’àlbum",
+ "unable_to_update_library": "No s’ha pogut actualitzar la biblioteca",
+ "unable_to_update_location": "No s’ha pogut actualitzar la ubicació",
+ "unable_to_update_settings": "No s’ha pogut actualitzar la configuració",
+ "unable_to_update_timeline_display_status": "No s’ha pogut actualitzar l’estat de visualització de la cronologia",
+ "unable_to_update_user": "No s’ha pogut actualitzar l’usuari",
"unable_to_update_workflow": "No es pot actualitzar el flux de treball",
"unable_to_upload_file": "No es pot carregar el fitxer"
},
"errors_text": "Errors",
- "exclusion_pattern": "Patró d'exclusió",
+ "exclusion_pattern": "Patró d’exclusió",
"exif": "Exif",
- "exif_bottom_sheet_description": "Afegeix descripció...",
- "exif_bottom_sheet_description_error": "No s'ha pogut actualitzar la descripció",
+ "exif_bottom_sheet_description": "Afegiu una descripció...",
+ "exif_bottom_sheet_description_error": "No s’ha pogut actualitzar la descripció",
"exif_bottom_sheet_no_description": "Sense descripció",
- "exit_slideshow": "Surt de la presentació de diapositives",
- "expand": "Ampliar-ho",
- "expand_all": "Ampliar-ho tot",
+ "exit_slideshow": "Surt de la presentació",
+ "expand": "Expandeix",
+ "expand_all": "Expandeix-ho tot",
"expire_after": "Caduca després de",
"expired": "Caducat",
"expires_date": "Caduca el {date}",
- "explore": "Explorar",
+ "explore": "Explora",
"explorer": "Explorador",
"export": "Exporta",
- "export_as_json": "Exportar com a JSON",
- "export_database": "Exportar base de dades",
- "export_database_description": "Exportar la base de dades SQLite",
- "exposure_time": "Temps d'exposició",
+ "export_as_json": "Exporta com a JSON",
+ "export_database": "Exporta la base de dades",
+ "export_database_description": "Exporta la base de dades SQLite",
+ "exposure_time": "Temps d’exposició",
"extension": "Extensió",
"external": "Extern",
- "external_libraries": "Llibreries externes",
+ "external_libraries": "Biblioteques externes",
"external_network": "Xarxa externa",
- "external_network_sheet_info": "Quan no estigui a la xarxa Wi-Fi preferida, l'aplicació es connectarà al servidor mitjançant el primer dels URL següents a què pot arribar, començant de dalt a baix",
+ "external_network_sheet_info": "Quan no sigueu a la xarxa Wi-Fi preferida, l’aplicació es connectarà al servidor mitjançant el primer dels URL següents a què pugui arribar, començant de dalt a baix",
"f_number": "Obertura",
- "face_unassigned": "Sense assignar",
- "failed": "Fallat",
+ "face_unassigned": "No assignada",
+ "failed": "Fallit",
"failed_count": "Fallits: {count}",
- "failed_to_authenticate": "No s'ha pogut autenticar",
- "failed_to_delete_file": "No s'ha pogut esborrar el fitxer",
- "failed_to_load_assets": "Error carregant recursos",
- "failed_to_load_folder": "No s'ha pogut carregar la carpeta",
+ "failed_to_authenticate": "No s’ha pogut autenticar",
+ "failed_to_delete_file": "No s’ha pogut suprimir el fitxer",
+ "failed_to_load_assets": "No s’han pogut carregar els recursos",
+ "failed_to_load_folder": "No s’ha pogut carregar la carpeta",
"favorite": "Preferit",
- "favorite_action_prompt": "{count} afegit a Favorits",
- "favorite_or_unfavorite_photo": "Foto preferida o no preferida",
+ "favorite_action_prompt": "{count} afegit a preferits",
+ "favorite_or_unfavorite_photo": "Afegeix o elimina la foto dels preferits",
"favorites": "Preferits",
- "feature_photo_updated": "Foto destacada actualitzada",
- "features": "Característiques",
- "features_setting_description": "Administrar les funcions de l'aplicació",
- "file_name_or_extension": "Nom de l'arxiu o extensió",
+ "feature_photo_updated": "S’ha actualitzat la foto destacada",
+ "features": "Funcionalitats",
+ "features_setting_description": "Gestioneu les funcionalitats de l’aplicació",
+ "file_name_or_extension": "Nom del fitxer o extensió",
"file_name_text": "Nom del fitxer",
"file_size": "Mida del fitxer",
"filename": "Nom del fitxer",
- "filetype": "Tipus d'arxiu",
- "filter": "Filtrar",
+ "filetype": "Tipus de fitxer",
+ "filter": "Filtre",
"filter_people": "Filtra persones",
- "filter_places": "Filtrar per llocs",
- "filter_tags": "Filtrar etiquetes",
+ "filter_places": "Filtra llocs",
+ "filter_tags": "Filtra etiquetes",
"filters": "Filtres",
"first": "Primer",
- "fix_incorrect_match": "Corregiu la coincidència incorrecta",
- "focal_length": "Longitud focal",
+ "fix_incorrect_match": "Corregeix la coincidència incorrecta",
+ "focal_length": "Distància focal",
"folder": "Carpeta",
- "folder_not_found": "Carpeta no trobada",
+ "folder_not_found": "No s’ha trobat la carpeta",
"folders": "Carpetes",
- "folders_feature_description": "Explorar la vista de carpetes per les fotos i vídeos del sistema d'arxius",
- "forgot_pin_code_question": "Has oblidat el teu PIN?",
- "forward": "Endavant",
- "free_up_space": "Alliberar Espai",
- "free_up_space_description": "Mou fotos i videos que ja tinguen còpia al servidor a la paperera del teu dispositiu per alliberar espai. Les còpies del servidor no es modificaran.",
- "free_up_space_settings_subtitle": "Alliberar espai del dispositiu",
- "full_path": "Ruta completa: {path}",
- "full_path_or_folder": "Camí sencer o carpeta",
+ "folders_feature_description": "Navegació per la vista de carpetes de les fotos i vídeos al sistema de fitxers",
+ "forgot_pin_code_question": "Heu oblidat el PIN?",
+ "forward": "Cap endavant",
+ "free_up_space": "Allibera espai",
+ "free_up_space_description": "Mou les fotos i vídeos que ja tenen còpia al servidor a la paperera del vostre dispositiu per a alliberar espai. Les còpies del servidor romandran sense canvis.",
+ "free_up_space_settings_subtitle": "Allibera espai del dispositiu",
+ "full_path": "Camí complet: {path}",
+ "full_path_or_folder": "Camí complet o carpeta",
"gcast_enabled": "Google Cast",
- "gcast_enabled_description": "Aquesta funció carrega recursos externs de Google per funcionar.",
+ "gcast_enabled_description": "Aquesta funcionalitat carrega recursos externs de Google per a funcionar.",
"general": "General",
- "geolocation_instruction_location": "Fes click en un element amb coordinades GPS per utilitzar la seva ubicació o selecciona una ubicació des del mapa",
- "get_help": "Aconseguir ajuda",
- "get_people_error": "S'ha produït un error en aconseguir persones",
- "get_wifiname_error": "No s'ha pogut obtenir el nom de la Wi-Fi. Assegureu-vos que heu concedit els permisos necessaris i que esteu connectat a una xarxa Wi-Fi",
- "getting_started": "Començant",
- "go_back": "Torna",
- "go_to_folder": "Anar al directori",
- "go_to_search": "Vés a cercar",
+ "geolocation_instruction_location": "Feu clic en un recurs amb coordenades GPS per a utilitzar-ne la ubicació o seleccioneu una ubicació directament al mapa",
+ "get_help": "Obtén ajuda",
+ "get_people_error": "S’ha produït un error en obtenir les persones",
+ "get_wifiname_error": "No s’ha pogut obtenir el nom de la Wi-Fi. Assegureu-vos que heu concedit els permisos necessaris i que esteu connectat a una xarxa Wi-Fi",
+ "getting_started": "Primers passos",
+ "go_back": "Torna endarrere",
+ "go_to_folder": "Vés a la carpeta",
+ "go_to_search": "Vés a la cerca",
"gps": "GPS",
"gps_missing": "Sense GPS",
- "grant_permission": "Concedir permís",
- "group_albums_by": "Agrupa àlbums per...",
- "group_country": "Agrupar per país",
- "group_no": "Cap agrupació",
- "group_owner": "Agrupar per propietari",
- "group_places_by": "Agrupar llocs per...",
- "group_year": "Agrupar per any",
- "haptic_feedback_title": "Resposta Hàptica",
- "has_quota": "Quota",
- "hash_asset": "Hash del recurs",
+ "grant_permission": "Concediu el permís",
+ "group_albums_by": "Agrupa els àlbums per...",
+ "group_country": "Agrupa per país",
+ "group_no": "Sense agrupació",
+ "group_owner": "Agrupa per propietari",
+ "group_places_by": "Agrupa els llocs per...",
+ "group_year": "Agrupa per any",
+ "haptic_feedback_title": "Resposta hàptica",
+ "has_quota": "Té quota",
+ "hash_asset": "Genera el hash del recurs",
"hashed_assets": "Recursos amb hash",
- "hashing": "Generant el hash",
- "header_settings_add_header_tip": "Afegeix Capçalera",
+ "hashing": "S’està generant el hash",
+ "header_settings_add_header_tip": "Afegeix una capçalera",
"header_settings_field_validator_msg": "El valor no pot estar buit",
"header_settings_header_name_input": "Nom de la capçalera",
"header_settings_header_value_input": "Valor de la capçalera",
- "headers_settings_tile_title": "Capçaleres proxy personalitzades",
+ "headers_settings_tile_title": "Capçaleres de servidor intermediari personalitzades",
"height": "Alçada",
- "hi_user": "Hola {name} ({email})",
+ "hi_user": "Bon dia, {name} ({email})",
"hide_all_people": "Amaga totes les persones",
"hide_gallery": "Amaga la galeria",
"hide_named_person": "Amaga la persona {name}",
"hide_password": "Amaga la contrasenya",
"hide_person": "Amaga la persona",
- "hide_schema": "Amaga l'esquema",
- "hide_text_recognition": "Oculta el reconeixement de text",
- "hide_unnamed_people": "Amaga persones sense nom",
- "home_page_building_timeline": "Construint la línia de temps",
+ "hide_schema": "Amaga l’esquema",
+ "hide_text_recognition": "Amaga el reconeixement de text",
+ "hide_unnamed_people": "Amaga les persones sense nom",
+ "home_page_building_timeline": "S’està construint la cronologia",
"host": "Amfitrió",
"hour": "Hora",
"hours": "Hores",
- "id": "ID",
- "idle": "En espera",
+ "id": "Identificador",
+ "idle": "Inactiu",
"image": "Imatge",
- "image_alt_text_date": "{isVideo, select, true {Video} other {Image}} presa el {date}",
- "image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Image}} pres/a amb {person1} el {date}",
- "image_alt_text_date_2_people": "{isVideo, select, true {Video} other {Image}} pres/a {person1} amb {person2} el {date}",
- "image_alt_text_date_3_people": "{isVideo, select, true {Video} other {Image}} pres/a amb {person1}, {person2}, i {person3} el {date}",
- "image_alt_text_date_4_or_more_people": "{isVideo, select, true {Video} other {Image}} pres/a amb {person1}, {person2}, i {additionalCount, number} altres el {date}",
- "image_alt_text_date_place": "{isVideo, select, true {Video} other {Image}} pres/a a {city}, {country} el {date}",
- "image_alt_text_date_place_1_person": "{isVideo, select, true {Video} other {Image}} pres/a a {city}, {country} amb {person1} el {date}",
- "image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Image}} pres/a a {city}, {country} amb {person1} i {person2} el {date}",
- "image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} pres/a a {city}, {country} amb {person1}, {person2}, i {person3} el {date}",
- "image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} pres/a a {city}, {country} amb {person1}, {person2}, i {additionalCount, number} altres el {date}",
- "immich_logo": "Logotip d'Immich",
- "immich_web_interface": "Interfície web Immich",
- "import_from_json": "Importar des de JSON",
- "import_path": "Ruta d'importació",
- "in_albums": "A {count, plural, one {# àlbum} other {# àlbums}}",
- "in_archive": "En arxiu",
- "in_year": "En {year}",
- "in_year_selector": "En",
- "include_archived": "Incloure arxivats",
- "include_shared_albums": "Inclou àlbums compartits",
- "include_shared_partner_assets": "Incloure elements dels companys",
- "individual_share": "Compartit individualment",
- "individual_shares": "Espais individuals",
+ "image_alt_text_date": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} el {date}",
+ "image_alt_text_date_1_person": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} amb {person1} el {date}",
+ "image_alt_text_date_2_people": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} amb {person1} i {person2} el {date}",
+ "image_alt_text_date_3_people": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} amb {person1}, {person2} i {person3} el {date}",
+ "image_alt_text_date_4_or_more_people": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} amb {person1}, {person2} i {additionalCount, number} més el {date}",
+ "image_alt_text_date_place": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} a {city}, {country} el {date}",
+ "image_alt_text_date_place_1_person": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} a {city}, {country} amb {person1} el {date}",
+ "image_alt_text_date_place_2_people": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} a {city}, {country} amb {person1} i {person2} el {date}",
+ "image_alt_text_date_place_3_people": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} a {city}, {country} amb {person1}, {person2} i {person3} el {date}",
+ "image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} a {city}, {country} amb {person1}, {person2} i {additionalCount, number} més el {date}",
+ "immich_logo": "Logo de l’Immich",
+ "immich_web_interface": "Interfície web de l’Immich",
+ "import_from_json": "Importa d’un JSON",
+ "import_path": "Camí d’importació",
+ "in_albums": "En {count, plural, one {# àlbum} other {# àlbums}}",
+ "in_archive": "A l’arxiu",
+ "in_year": "El {year}",
+ "in_year_selector": "El",
+ "include_archived": "Inclou els arxivats",
+ "include_shared_albums": "Inclou els àlbums compartits",
+ "include_shared_partner_assets": "Inclou els recursos compartits dels companys",
+ "individual_share": "Compartició individual",
+ "individual_shares": "Comparticions individuals",
"info": "Informació",
- "integrity_checks": "Verificacions d'integritat",
+ "integrity_checks": "Verificacions d’integritat",
"interval": {
- "day_at_onepm": "Cada dia a les 13h",
- "hours": "Cada {hours, plural, one {hour} other {{hours, number} hours}}",
- "night_at_midnight": "Cada mitjanit",
- "night_at_twoam": "Cada nit a les 2 del matí"
+ "day_at_onepm": "Cada dia a les 13 h",
+ "hours": "Cada {hours, plural, one {hora} other {{hours, number} hores}}",
+ "night_at_midnight": "Cada nit a mitjanit",
+ "night_at_twoam": "Cada nit a les 2 h"
},
- "invalid_date": "Data invàlida",
- "invalid_date_format": "Format de data invàlid",
- "invite_people": "Convida gent",
- "invite_to_album": "Convida a l'àlbum",
+ "invalid_date": "La data no és vàlida",
+ "invalid_date_format": "El format de data no és vàlid",
+ "invite_people": "Convida persones",
+ "invite_to_album": "Convida a l’àlbum",
"iso": "ISO",
"items_count": "{count, plural, one {# element} other {# elements}}",
"jobs": "Tasques",
- "keep": "Mantenir",
+ "keep": "Conserva",
"keep_albums": "Conserva els àlbums",
- "keep_albums_count": "Conservant {count} {count, plural, one {àlbum} other {àlbums}}",
- "keep_all": "Mantenir-ho tot",
- "keep_description": "Tria què es conserva al dispositiu quan s'allibera espai.",
- "keep_favorites": "Mantindre els preferits",
- "keep_on_device": "Mantén al dispositiu",
- "keep_on_device_hint": "Selecciona els elements que vulguis conservar en aquest dispositiu",
- "keep_this_delete_others": "Conserveu-ho, suprimiu-ne els altres",
- "keeping": "Mantenint: {items}",
- "kept_this_deleted_others": "S'ha conservat aquest element i s'han suprimit {count, plural, one {# asset} other {# assets}}",
+ "keep_albums_count": "Es {count, plural, one {conservarà # àlbum} other {conservaran # àlbums}}",
+ "keep_all": "Conserva-ho tot",
+ "keep_description": "Trieu què es conserva al vostre dispositiu en alliberar espai.",
+ "keep_favorites": "Conserva els preferits",
+ "keep_on_device": "Conserva al dispositiu",
+ "keep_on_device_hint": "Seleccioneu els elements que vulgueu conservar en aquest dispositiu",
+ "keep_this_delete_others": "Conserva això, suprimeix la resta",
+ "keeping": "Es conservarà: {items}",
+ "kept_this_deleted_others": "S’ha conservat aquest recurs i se {count, plural, one {n’ha suprimit #} other {n’han suprimit #}}",
"keyboard_shortcuts": "Dreceres de teclat",
- "language": "Idioma",
- "language_no_results_subtitle": "Prova d'ajustar el terme de cerca",
- "language_no_results_title": "No s'han trobat idiomes",
- "language_search_hint": "Cerca idiomes...",
- "language_setting_description": "Seleccioneu el vostre idioma",
- "large_files": "Fitxers Grans",
- "last": "Últim",
- "last_months": "{count, plural, one {Últim mes} other {Últims # mesos}}",
- "last_seen": "Vist per últim cop",
- "latest_version": "Última versió",
+ "language": "Llengua",
+ "language_no_results_subtitle": "Proveu d’ajustar el terme de cerca",
+ "language_no_results_title": "No s’ha trobat cap llengua",
+ "language_search_hint": "Cerqueu llengües...",
+ "language_setting_description": "Seleccioneu la vostra llengua preferida",
+ "large_files": "Fitxers grans",
+ "last": "Darrer",
+ "last_months": "{count, plural, one {Darrer mes} other {Darrers # mesos}}",
+ "last_seen": "Vist per darrera vegada",
+ "latest_version": "Darrera versió",
"latitude": "Latitud",
- "leave": "Marxar",
- "leave_album": "Abandonar àlbum",
- "lens_model": "Model de lents",
+ "leave": "Surt",
+ "leave_album": "Surt de l’àlbum",
+ "lens_model": "Model de l’objectiu",
"less": "Menys",
- "let_others_respond": "Deixa que els altres responguin",
+ "let_others_respond": "Permet que els altres responguin",
"level": "Nivell",
"library": "Bibilioteca",
- "library_add_folder": "Afegir carpeta",
- "library_edit_folder": "Editar carpeta",
- "library_page_sort_asset_count": "Quantitat d'elements",
- "library_page_sort_created": "Creat més recentment",
+ "library_add_folder": "Afegeix una carpeta",
+ "library_edit_folder": "Edita la carpeta",
+ "library_page_sort_asset_count": "Nombre de recursos",
+ "library_page_sort_created": "Data de creació",
"library_page_sort_last_modified": "Darrera modificació",
- "library_page_sort_title": "Títol de l'àlbum",
+ "library_page_sort_title": "Títol de l’àlbum",
"licenses": "Llicències",
- "light": "Llum",
- "light_theme": "Canviar a tema clar",
- "like": "M'agrada",
- "like_deleted": "M'agrada suprimit",
+ "light": "Clar",
+ "light_theme": "Canvia al tema clar",
+ "like": "M’agrada",
+ "like_deleted": "S’ha suprimit l’agradament",
"link": "Enllaç",
- "link_motion_video": "Enllaçar vídeo en moviment",
- "link_to_docs": "Per més informació, mirar la documentation.",
- "link_to_oauth": "Enllaç a OAuth",
- "linked_oauth_account": "Compte OAuth enllaçat",
+ "link_motion_video": "Enllaça un vídeo en moviment",
+ "link_to_docs": "Per a més informació, consulteu la documentació.",
+ "link_to_oauth": "Enllaça amb l’OAuth",
+ "linked_oauth_account": "Compte d’OAuth enllaçat",
"list": "Llista",
- "live": "En viu",
- "load_more": "Carregar més",
- "loading": "Carregant",
- "loading_search_results_failed": "No s'han pogut carregar els resultats de la cerca",
+ "live": "En directe",
+ "load_more": "Carrega’n més",
+ "loading": "S’està carregant",
+ "loading_search_results_failed": "No s’han pogut carregar els resultats de la cerca",
"local": "Local",
- "local_asset_cast_failed": "No es pot convertir un actiu que no s'ha penjat al servidor",
- "local_assets": "Recursos Locals",
- "local_id": "ID local",
- "local_media_summary": "Resum de Mitjans Locals",
+ "local_asset_cast_failed": "No es pot emetre un recurs que no s’ha penjat al servidor",
+ "local_assets": "Recursos locals",
+ "local_id": "Identificador local",
+ "local_media_summary": "Resum dels mitjans locals",
"local_network": "Xarxa local",
- "local_network_sheet_info": "L'aplicació es connectarà al servidor mitjançant aquest URL quan utilitzeu la xarxa Wi-Fi especificada",
- "location": "Localització",
- "location_permission": "Permís d'ubicació",
- "location_permission_content": "Per utilitzar la funció de canvi automàtic, Immich necessita un permís d'ubicació precisa perquè pugui llegir el nom de la xarxa Wi-Fi actual",
- "location_picker_choose_on_map": "Escollir en el mapa",
- "location_picker_latitude_error": "Introdueix una latitud vàlida",
- "location_picker_latitude_hint": "Introdueix aquí la latitud",
- "location_picker_longitude_error": "Introdueix una longitud vàlida",
- "location_picker_longitude_hint": "Introdueix aquí la longitud",
- "lock": "Bloqueja",
- "locked_folder": "Carpeta bloquejada",
- "log_detail_title": "Detall de Registres",
+ "local_network_sheet_info": "L’aplicació es connectarà al servidor mitjançant aquest URL quan utilitzeu la xarxa Wi-Fi especificada",
+ "location": "Ubicació",
+ "location_permission": "Permís d’ubicació",
+ "location_permission_content": "Per a poder utilitzar la funció de canvi automàtic, l’Immich necessita el permís d’ubicació precisa per a poder llegir el nom de la xarxa Wi-Fi actual",
+ "location_picker_choose_on_map": "Tria al mapa",
+ "location_picker_latitude_error": "Introduïu una latitud vàlida",
+ "location_picker_latitude_hint": "Introduïu aquí la latitud",
+ "location_picker_longitude_error": "Introduïu una longitud vàlida",
+ "location_picker_longitude_hint": "Introduïu aquí la longitud",
+ "lock": "Protegeix",
+ "locked_folder": "Carpeta protegida",
+ "log_detail_title": "Detall del registre",
"log_out": "Tanca la sessió",
- "log_out_all_devices": "Tanqueu la sessió de tots els dispositius",
+ "log_out_all_devices": "Tanca la sessió en tots els dispositius",
"logged_in_as": "Sessió iniciada com a {user}",
- "logged_out_all_devices": "S'ha tancat la sessió de tots els dispositius",
- "logged_out_device": "Dispositiu tancat",
- "login": "Iniciar sessió",
- "login_disabled": "S'ha desactivat l'inici de sessió",
- "login_form_api_exception": "Excepció de l'API. Comproveu l'URL del servidor i torneu-ho a provar.",
- "login_form_email_hint": "elteu@correu.cat",
- "login_form_endpoint_hint": "http://ip-del-servidor:port",
- "login_form_endpoint_url": "URL del punt final del servidor",
- "login_form_err_invalid_email": "Adreça de correu electrònic no vàlida",
- "login_form_err_invalid_url": "URL no vàlid",
+ "logged_out_all_devices": "S’ha tancat la sessió en tots els dispositius",
+ "logged_out_device": "Dispositiu amb la sessió tancada",
+ "login": "Inicia la sessió",
+ "login_disabled": "S’ha desactivat l’inici de sessió",
+ "login_form_api_exception": "Excepció de l’API. Comproveu l’URL del servidor i torneu-ho a provar.",
+ "login_form_email_hint": "elvostrecorreu@correu.com",
+ "login_form_endpoint_hint": "http://ip-del-vostre-servidor:port",
+ "login_form_endpoint_url": "URL de l’endpoint del servidor",
+ "login_form_err_invalid_email": "L’adreça electrònica no és vàlida",
+ "login_form_err_invalid_url": "L’URL no és vàlid",
"login_form_err_leading_whitespace": "Espai en blanc al principi",
"login_form_err_trailing_whitespace": "Espai en blanc al final",
- "login_form_failed_get_oauth_server_config": "Error en iniciar sessió amb OAuth, comprova l'URL del servidor",
- "login_form_failed_get_oauth_server_disable": "La funcionalitat OAuth no està disponible en aquest servidor",
- "login_form_failed_login": "Error en iniciar sessió, comprova l'URL del servidor, el correu electrònic i la contrasenya",
- "login_form_handshake_exception": "S'ha produït una excepció de handshake amb el servidor. Activa el suport per certificats autofirmats a la configuració si estàs fent servir un certificat autofirmat.",
+ "login_form_failed_get_oauth_server_config": "S’ha produït un error en iniciar la sessió amb OAuth, reviseu l’URL del servidor",
+ "login_form_failed_get_oauth_server_disable": "La funcionalitat d’OAuth no està disponible en aquest servidor",
+ "login_form_failed_login": "S’ha produït un error en iniciar la sessió, reviseu l’URL del servidor, l’adreça electrònica i la contrasenya",
+ "login_form_handshake_exception": "S’ha produït una excepció de handshake amb el servidor. Si utilitzeu un certificat autosignat, activeu el suport per a certificats autosignats a la configuració.",
"login_form_password_hint": "contrasenya",
- "login_form_server_empty": "Introdueix l'URL del servidor",
- "login_form_server_error": "No s'ha pogut connectar al servidor",
- "login_has_been_disabled": "L'inici de sessió s'ha desactivat",
- "login_password_changed_error": "S'ha produït un error en actualitzar la contrasenya",
- "login_password_changed_success": "La contrasenya s'ha canviat correctament",
- "logout_all_device_confirmation": "Esteu segur que voleu tancar la sessió de tots els dispositius?",
- "logout_this_device_confirmation": "Esteu segur que voleu tancar la sessió d'aquest dispositiu?",
+ "login_form_server_empty": "Introduïu l’URL del servidor",
+ "login_form_server_error": "No s’ha pogut connectar amb el servidor",
+ "login_has_been_disabled": "S’ha desactivat l’inici de sessió",
+ "login_password_changed_error": "S’ha produït un error en actualitzar la contrasenya",
+ "login_password_changed_success": "La contrasenya s’ha canviat correctament",
+ "logout_all_device_confirmation": "Segur que voleu tancar la sessió en tots els dispositius?",
+ "logout_this_device_confirmation": "Segur que voleu tancar la sessió d’aquest dispositiu?",
"logs": "Registres",
"longitude": "Longitud",
"look": "Aspecte",
"loop_videos": "Vídeos en bucle",
- "loop_videos_description": "Habilita la reproducció en bucle del vídeo en els detalls.",
- "main_branch_warning": "Esteu utilitzant una versió en desenvolupament; Recomanem fer servir una versió publicada!",
+ "loop_videos_description": "Activa la reproducció automàtica en bucle del vídeo al visualitzador dels detalls.",
+ "main_branch_warning": "Utilitzeu una versió en desenvolupament; és recomanable utilitzar una versió de llançament!",
"main_menu": "Menú principal",
- "maintenance_action_restore": "Restaurant la base de dades",
- "maintenance_description": "Immich ha estat posat en mode de manteniment.",
- "maintenance_end": "Finalitzar el mode de manteniment",
- "maintenance_logged_in_as": "Actualment la sessió esta iniciada per {user}",
- "maintenance_restore_from_backup": "Restaurar des d'una còpia de seguretat",
- "maintenance_restore_library": "Restaura la teva biblioteca",
- "maintenance_restore_library_confirm": "Si això sembla correcte, continua restaurant una còpia de seguretat!",
- "maintenance_restore_library_description": "Restaurant la còpia de seguretat",
- "maintenance_restore_library_folder_has_files": "{folder} conté {count} carpeta/es",
- "maintenance_restore_library_folder_no_files": "A {folder} li falten fitxers!",
+ "maintenance_action_restore": "S’està restaurant la base de dades",
+ "maintenance_description": "L’Immich està en mode de manteniment.",
+ "maintenance_end": "Finalitza el mode de manteniment",
+ "maintenance_logged_in_as": "Sessió iniciada com a {user}",
+ "maintenance_restore_from_backup": "Restaura d’una còpia de seguretat",
+ "maintenance_restore_library": "Restaureu la vostra biblioteca",
+ "maintenance_restore_library_confirm": "Si tot sembla correcte, continueu restaurant una còpia de seguretat!",
+ "maintenance_restore_library_description": "S’està restaurant la base de dades",
+ "maintenance_restore_library_folder_has_files": "{folder} conté {count, plural, one {# carpeta} other {# carpetes}}",
+ "maintenance_restore_library_folder_no_files": "Manquen fitxers a {folder}!",
"maintenance_restore_library_folder_pass": "llegible i escrivible",
"maintenance_restore_library_folder_read_fail": "no llegible",
"maintenance_restore_library_folder_write_fail": "no escrivible",
- "maintenance_restore_library_hint_missing_files": "Potser et falten fitxers importants",
- "maintenance_restore_library_hint_regenerate_later": "Pots regenerar-los més tard a la configuració",
- "maintenance_restore_library_hint_storage_template_missing_files": "Fas servir una plantilla d'emmagatzematge? Potser et falten fitxers",
- "maintenance_restore_library_loading": "S'estan carregant les comprovacions d'integritat i heurístiques…",
- "maintenance_task_backup": "Creant una còpia de seguretat de la base de dades existent…",
- "maintenance_task_migrations": "Executant migracions de bases de dades…",
- "maintenance_task_restore": "Restaurant la còpia de seguretat escollida…",
- "maintenance_task_rollback": "La restauració ha fallat, s'està tornant al punt de restauració…",
- "maintenance_title": "Temporalment inaccessible",
+ "maintenance_restore_library_hint_missing_files": "És possible que us manquin fitxers importants",
+ "maintenance_restore_library_hint_regenerate_later": "Podeu regenerar-los més tard a la configuració",
+ "maintenance_restore_library_hint_storage_template_missing_files": "Utilitzeu una plantilla d’emmagatzematge? És possible que us manquin fitxers",
+ "maintenance_restore_library_loading": "S’estan carregant les verificacions d’integritat i les heurístiques…",
+ "maintenance_task_backup": "S’està creant una còpia de seguretat de la base de dades existent…",
+ "maintenance_task_migrations": "S’estan executant les migracions de la base de dades…",
+ "maintenance_task_restore": "S’està restaurant la còpia de seguretat elegida…",
+ "maintenance_task_rollback": "No s’ha pogut restaurar, s’està tornant al punt de restauració…",
+ "maintenance_title": "No disponible temporalment",
"make": "Fabricant",
- "manage_geolocation": "Gestioneu la vostra ubicació",
- "manage_media_access_rationale": "Aquest permís es necessari per a la correcta gestió dels actius que es mouen a la paperera i es restauren d'ella.",
- "manage_media_access_settings": "Configuració oberta",
- "manage_media_access_subtitle": "Permet a l'Immich gestionar i moure fitxers multimèdia.",
+ "manage_geolocation": "Gestiona la ubicació",
+ "manage_media_access_rationale": "Aquest permís és necessari per a la correcta gestió dels recursos que es mouen a la paperera o se’n restauren.",
+ "manage_media_access_settings": "Obre la configuració",
+ "manage_media_access_subtitle": "Permeteu que l’Immich gestioni i mogui fitxers de mitjans.",
"manage_media_access_title": "Accés a la gestió de mitjans",
- "manage_sharing_with_partners": "Gestiona la compartició amb els companys",
- "manage_the_app_settings": "Gestioneu la configuració de l'aplicació",
- "manage_your_account": "Gestiona el teu compte",
- "manage_your_api_keys": "Gestioneu les vostres claus API",
+ "manage_sharing_with_partners": "Gestioneu la compartició amb els companys",
+ "manage_the_app_settings": "Gestioneu la configuració de l’aplicació",
+ "manage_your_account": "Gestioneu el vostre compte",
+ "manage_your_api_keys": "Gestioneu les vostres claus de l’API",
"manage_your_devices": "Gestioneu els vostres dispositius connectats",
- "manage_your_oauth_connection": "Gestioneu la vostra connexió OAuth",
+ "manage_your_oauth_connection": "Gestioneu la vostra connexió amb l’OAuth",
"map": "Mapa",
- "map_cannot_get_user_location": "No es pot obtenir la ubicació de l'usuari",
- "map_location_picker_page_use_location": "Utilitzar aquesta ubicació",
- "map_location_service_disabled_content": "El servei de localització s'ha d'activar per mostrar els elements de la teva ubicació actual. Vols activar-lo ara?",
- "map_location_service_disabled_title": "Servei de localització desactivat",
- "map_marker_for_image": "Marcador de mapa per a imatge obtinguda a {city}, {country}",
- "map_marker_with_image": "Marcador de mapa amb imatge",
- "map_no_location_permission_content": "Es necessita el permís de localització per mostrar els elements de la teva ubicació actual. Vols permetre-ho ara?",
- "map_no_location_permission_title": "Permís de localització denegat",
- "map_settings": "Paràmetres de mapa",
+ "map_cannot_get_user_location": "No s’ha pogut obtenir la ubicació de l’usuari",
+ "map_location_picker_page_use_location": "Utilitza aquesta ubicació",
+ "map_location_service_disabled_content": "Cal activar el servei d’ubicació per a mostrar els recursos de la vostra ubicació actual. Voleu activar-lo ara?",
+ "map_location_service_disabled_title": "Servei d’ubicació desactivat",
+ "map_marker_for_image": "Marcador del mapa per a la imatge capturada a {city}, {country}",
+ "map_marker_with_image": "Marcador del mapa amb imatge",
+ "map_no_location_permission_content": "Cal el permís d’ubicació per a mostrar els recursos de la vostra ubicació actual. Voleu concedir-lo ara?",
+ "map_no_location_permission_title": "Permís d’ubicació denegat",
+ "map_settings": "Configuració del mapa",
"map_settings_dark_mode": "Mode fosc",
- "map_settings_date_range_option_day": "Últimes 24 hores",
- "map_settings_date_range_option_days": "Darrers {days} dies",
- "map_settings_date_range_option_year": "Any passat",
- "map_settings_date_range_option_years": "Darrers {years} anys",
- "map_settings_include_show_archived": "Incloure arxivats",
- "map_settings_include_show_partners": "Incloure companys",
- "map_settings_only_show_favorites": "Mostra només preferits",
- "map_settings_theme_settings": "Tema del Mapa",
- "mark_all_as_read": "Marcar-ho tot com a llegit",
- "marked_all_as_read": "Marcat tot com a llegit",
+ "map_settings_date_range_option_day": "Les darreres 24 hores",
+ "map_settings_date_range_option_days": "Els darrers {days} dies",
+ "map_settings_date_range_option_year": "L’any passat",
+ "map_settings_date_range_option_years": "Els darrers {years} anys",
+ "map_settings_include_show_archived": "Inclou els arxivats",
+ "map_settings_include_show_partners": "Inclou els companys",
+ "map_settings_only_show_favorites": "Mostra només els preferits",
+ "map_settings_theme_settings": "Tema del mapa",
+ "mark_all_as_read": "Marca-ho tot com a llegit",
+ "marked_all_as_read": "S’ha marcat tot com a llegit",
"matches": "Coincidències",
- "matching_assets": "Recursos Coincidents",
+ "matching_assets": "Recursos coincidents",
"media_chrome": {
- "auto": "Auto",
- "captions": "Llegendes",
+ "auto": "Automàtic",
+ "captions": "Subtítols",
"captions_off": "Desactivat",
- "closed_captions": "Llegendes tancades",
- "decode_error": "Error de decodificació",
- "disable_captions": "Desactivar llegendes",
- "enable_captions": "Activar llegendes",
- "enter_fullscreen_mode": "Activar mode pantalla sencera",
- "exit_fullscreen_mode": "Desactivar mode pantalla sencera",
+ "closed_captions": "subtítols",
+ "decode_error": "S’ha produït un error de descodificació",
+ "disable_captions": "Desactiva els subtítols",
+ "enable_captions": "Activa els subtítols",
+ "enter_fullscreen_mode": "Activa el mode de pantalla completa",
+ "exit_fullscreen_mode": "Surt del mode de pantalla completa",
"loop": "Bucle",
- "media_error_description": "Un error dels mitjans ha provocat l'aturada de la reproducció. El mitjà pot estar corromput o el navegador no suporta el format.",
- "media_loading": "carregant el mitjà",
+ "media_error_description": "Un error del mitjà ha provocat l’aturada de la reproducció. És possible que el mitjà estigui corromput o que el navegador no admeti aquest format.",
+ "media_loading": "càrrega de mitjans",
"mute": "Silencia",
- "network_error": "Error de xarxa",
- "network_error_description": "Un error de xarxa ha provocat la fallada de la descarrega.",
- "not_supported_error": "Font origen no suportada",
+ "network_error": "S’ha produït un error de xarxa",
+ "network_error_description": "Un error de xarxa ha provocat que falli la baixada del mitjà.",
+ "not_supported_error": "Font no admesa",
"playback_rate": "Velocitat de reproducció",
"playback_rate_current": "velocitat actual de reproducció",
"playback_rate_value": "Velocitat de reproducció {playbackRate}",
"playback_time": "temps de reproducció",
- "quality": "Quallitat",
+ "quality": "Qualitat",
"second": "segon",
"seconds": "segons",
"time_value_of_total_time": "{currentTime} de {totalTime}",
"time_value_remaining": "{time} restant",
- "unmute": "Activa so",
- "unsupported_error_description": "Un error no suportat ha passat. El servidor o la xarxa han fallat, o el vostre navegador no accepta aquest format.",
+ "unmute": "Deixa de silenciar",
+ "unsupported_error_description": "S’ha produït un error no admès. El servidor o la xarxa han fallat o el vostre navegador no admet aquest format.",
"video_not_loaded_unknown_time": "vídeo no carregat, temps desconegut.",
"video_player": "reproductor de vídeo",
"volume": "volum"
},
"media_type": "Tipus de mitjà",
"memories": "Records",
- "memories_all_caught_up": "Posat al dia",
- "memories_check_back_tomorrow": "Torna demà per veure més records",
- "memories_setting_description": "Gestiona el que veus als teus records",
+ "memories_all_caught_up": "Esteu al dia",
+ "memories_check_back_tomorrow": "Torneu demà per a veure més records",
+ "memories_setting_description": "Gestioneu què veieu als records",
"memories_start_over": "Torna a començar",
- "memories_swipe_to_close": "Llisca per tancar",
+ "memories_swipe_to_close": "Llisqueu per a tancar",
"memory": "Record",
"memory_lane_title": "Línia de records {title}",
"menu": "Menú",
- "merge": "Combinar",
- "merge_people": "Combinar persones",
- "merge_people_limit": "Només pots combinar fins a 5 cares alhora",
- "merge_people_prompt": "Vols combinar aquestes persones? Aquesta acció és irreversible.",
- "merge_people_successfully": "Persones combinades amb èxit",
- "merged_people_count": "Combinades {count, plural, one {# persona} other {# persones}}",
- "minFaces": "Nombre mínim de cares",
+ "merge": "Fusiona",
+ "merge_people": "Fusiona persones",
+ "merge_people_limit": "Només podeu combinar fins a 5 cares alhora",
+ "merge_people_prompt": "Voleu combinar aquestes persones? Aquesta acció no es pot desfer.",
+ "merge_people_successfully": "Les persones s’han fusionat correctament",
+ "merged_people_count": "{count, plural, one {S’ha combinat # persona} other {S’han combinat # persones}}",
+ "minFaces": "Mínim de cares",
"minFaces_description": "El nombre mínim de cares reconegudes perquè es mostri una persona",
"minimize": "Minimitza",
"minute": "Minut",
"minutes": "Minuts",
- "missing": "Restants",
+ "missing": "Pendents",
"mobile_app": "Aplicació mòbil",
- "mobile_app_download_onboarding_note": "Descarregar la App de mòbil fent servir les seguents opcions",
+ "mobile_app_download_onboarding_note": "Baixeu l’aplicació auxiliar per a mòbils utilitzant les següents opcions",
"model": "Model",
- "modify_date": "Canvia la data",
+ "modify_date": "Modifica la data",
"month": "Mes",
"more": "Més",
"motion": "Moviment",
- "move": "Moure",
- "move_off_locked_folder": "Moure fora de la carpeta bloquejada",
- "move_to": "Moure a",
+ "move": "Mou",
+ "move_off_locked_folder": "Treu de la carpeta protegida",
+ "move_to": "Mou a",
"move_to_device_trash": "Mou a la paperera del dispositiu",
- "move_to_lock_folder_action_prompt": "{count} afegides a la carpeta protegida",
- "move_to_locked_folder": "Moure a la carpeta bloquejada",
- "move_to_locked_folder_confirmation": "Aquestes fotos i vídeos seran eliminades de tots els àlbums, i només podran ser vistes des de la carpeta bloquejada",
- "moved_to_trash": "S'ha mogut a la paperera",
- "mute_memories": "Silenciar records",
+ "move_to_lock_folder_action_prompt": "{count, plural, one {# afegit} other {# afegits}} a la carpeta protegida",
+ "move_to_locked_folder": "Mou a la carpeta protegida",
+ "move_to_locked_folder_confirmation": "Aquestes fotos i vídeos s’eliminaran de tots els àlbums i només es podran veure a la carpeta protegida",
+ "moved_to_trash": "S’ha mogut a la paperera",
+ "mute_memories": "Silencia els records",
"my_albums": "Els meus àlbums",
- "my_immich_description": "Copia la pàgina actual com a enllaç de My Immich",
- "my_immich_title": "Enllaç My Immich",
+ "my_immich_description": "Copia la pàgina actual com a enllaç a My Immich",
+ "my_immich_title": "Enllaç a My Immich",
"name": "Nom",
"name_or_nickname": "Nom o sobrenom",
"name_required": "El nom és obligatori",
- "navigate": "Navegar",
- "navigate_to_time": "Navegar a un punt en el temps",
- "network_requirement_photos_upload": "Fes servir dades mòbils per a còpies de seguretat de fotos",
- "network_requirement_videos_upload": "Fes servir dades mòbils per a còpies de seguretat de videos",
- "network_requirements": "Requeriments de Xarxa",
- "network_requirements_updated": "Han canviat els requeriments de xarxa, reiniciant la cua",
+ "navigate": "Navega",
+ "navigate_to_time": "Navega a un punt en el temps",
+ "network_requirement_photos_upload": "Utilitza dades mòbils per a copiar les fotos al servidor",
+ "network_requirement_videos_upload": "Utilitza dades mòbils per a copiar els vídeos al servidor",
+ "network_requirements": "Requeriments de xarxa",
+ "network_requirements_updated": "Han canviat els requeriments de xarxa, es renicia la cua de còpia al servidor",
"networking_settings": "Xarxes",
- "networking_subtitle": "Gestiona la configuració del endpoint del servidor",
+ "networking_subtitle": "Gestioneu la configuració de l’endpoint del servidor",
"never": "Mai",
- "new_album": "Nou Àlbum",
- "new_api_key": "Nova clau de l'API",
- "new_password": "Nova contrasenya",
+ "new_album": "Àlbum nou",
+ "new_api_key": "Clau de l’API nova",
+ "new_feature": "Funcionalitat nova",
+ "new_password": "Contrasenya nova",
"new_person": "Persona nova",
- "new_pin_code": "Nou codi PIN",
- "new_pin_code_subtitle": "Aquesta és la primera vegada que accedeixes a la carpeta bloquejada. Crea una codi PIN i accedeix de manera segura a aquesta pàgina",
- "new_update": "Nova actualització",
- "new_user_created": "Nou usuari creat",
+ "new_pin_code": "Codi PIN nou",
+ "new_pin_code_subtitle": "És la primera vegada que accediu a la carpeta protegida. Creeu un codi PIN per a accedir de manera segura a aquesta pàgina",
+ "new_update": "Actualització nova",
+ "new_user_created": "S’ha creat l’usuari nou",
"new_version_available": "NOVA VERSIÓ DISPONIBLE",
"newest_first": "El més nou primer",
"next": "Següent",
"next_memory": "Següent record",
"no": "No",
- "no_albums_found": "No s'han trobat àlbums",
- "no_albums_message": "Creeu un àlbum per organitzar les vostres fotos i vídeos",
- "no_albums_with_name_yet": "Sembla que encara no tens cap àlbum amb aquest nom.",
- "no_albums_yet": "Sembla que encara no tens cap àlbum.",
- "no_archived_assets_message": "Arxiveu fotos i vídeos per ocultar-los de Fotos",
- "no_assets_message": "Fes clic per pujar la teva primera foto",
- "no_assets_to_show": "No hi ha elements per mostrar",
- "no_cast_devices_found": "No s'han trobat dispositius per transmetre",
- "no_checksum_local": "Cap checksum disponible - no s'han pogut carregar els recursos locals",
- "no_checksum_remote": "Cap checksum disponible - no s'ha pogut obtenir el recurs remot",
- "no_devices": "No hi ha dispositius autoritzats",
- "no_duplicates_found": "No s'han trobat duplicats.",
- "no_exif_info_available": "No hi ha informació d'exif disponible",
- "no_explore_results_message": "Penja més fotos per explorar la teva col·lecció.",
- "no_favorites_message": "Afegiu preferits per trobar les millors fotos i vídeos a l'instant",
- "no_libraries_message": "Creeu una llibreria externa per veure les vostres fotos i vídeos",
- "no_local_assets_found": "No s'ha trobat cap recurs local amb aquest checksum",
- "no_locked_photos_message": "Les fotos i vídeos d'aquesta carpeta estan ocultes, i no es mostraran a mesura que navegues o cerques a la teva biblioteca.",
+ "no_albums_found": "No s’ha trobat cap àlbum",
+ "no_albums_message": "Creeu un àlbum per a organitzar les vostres fotos i vídeos",
+ "no_albums_with_name_yet": "Sembla que encara no teniu cap àlbum amb aquest nom.",
+ "no_albums_yet": "Sembla que encara no teniu cap àlbum.",
+ "no_archived_assets_message": "Arxiveu fotos i vídeos per a amagar-los de la visualització Fotos",
+ "no_assets_message": "Feu clic per a pujar la vostra primera foto",
+ "no_assets_to_show": "No hi ha recursos a mostrar",
+ "no_cast_devices_found": "No s’ha trobat cap dispositiu on emetre",
+ "no_checksum_local": "No hi ha cap suma de verificació disponible; no s’han pogut obtenir els recursos locals",
+ "no_checksum_remote": "No hi ha cap suma de verificació disponible; no s’ha pogut obtenir el recurs remot",
+ "no_devices": "No hi ha cap dispositiu autoritzat",
+ "no_duplicates_found": "No s’ha trobat cap duplicat.",
+ "no_exif_info_available": "No hi ha informació Exif disponible",
+ "no_explore_results_message": "Pugeu més fotos per a explorar la vostra col·lecció.",
+ "no_favorites_message": "Afegiu preferits per a trobar les vostres millors fotos i vídeos ràpidament",
+ "no_libraries_message": "Creeu una biblioteca externa per a veure les vostres fotos i vídeos",
+ "no_local_assets_found": "No s’ha trobat cap recurs local amb aquesta suma de verificació",
+ "no_locked_photos_message": "Les fotos i vídeos de la carpeta protegida carpeta estan amagades i no es mostraran quan navegueu o cerqueu a la vostra biblioteca.",
"no_name": "Sense nom",
- "no_notifications": "No hi ha notificacions",
- "no_people_found": "No s'han trobat coincidències de persones",
- "no_places": "No hi ha llocs",
- "no_remote_assets_found": "No s'ha trobat cap recurs remot amb aquest checksum",
- "no_results": "Sense resultats",
- "no_results_description": "Proveu un sinònim o una paraula clau més general",
- "no_shared_albums_message": "Creeu un àlbum per compartir fotos i vídeos amb persones a la vostra xarxa",
- "no_steps": "Encara no s'ha afegit cap pas",
+ "no_notifications": "No hi ha cap notificació",
+ "no_people_found": "No s’ha trobat cap persona coincident",
+ "no_places": "No hi ha cap lloc",
+ "no_remote_assets_found": "No s’ha trobat cap recurs remot amb aquesta suma de verificació",
+ "no_results": "No hi ha resultats",
+ "no_results_description": "Proveu amb un sinònim o una paraula clau més general",
+ "no_shared_albums_message": "Creeu un àlbum per a compartir fotos i vídeos amb persones de la vostra xarxa",
+ "no_steps": "Encara no s’ha afegit cap pas",
"none": "Cap",
"not_allowed": "No permès",
- "not_available": "N/A",
+ "not_available": "N/D",
"not_in_any_album": "En cap àlbum",
"not_selected": "No seleccionat",
+ "not_set": "No definit",
"notes": "Notes",
- "nothing_here_yet": "No hi ha res encara",
- "notification_backup_reliability": "Activa les notificacions per millorar la fiabilitat de les còpies de seguretat en segon pla",
- "notification_permission_dialog_content": "Per activar les notificacions, aneu a Configuració i seleccioneu permet.",
- "notification_permission_list_tile_content": "Atorga permís per a activar les notificacions.",
+ "nothing_here_yet": "Encara no hi ha res",
+ "notification_backup_reliability": "Activeu les notificacions per a millorar la fiabilitat de les còpies al servidor en segon pla",
+ "notification_enabled_list_tile_content": "L’Immich utilitza les notificacions per a les còpies al servidor en segon pla. Gestioneu-les a la configuració del vostre dispositiu.",
+ "notification_enabled_list_tile_open_button": "Obre la configuració",
+ "notification_enabled_list_tile_title": "Notificacions activades",
+ "notification_permission_dialog_content": "Per a activar les notificacions, aneu a Configuració i seleccioneu Permet.",
+ "notification_permission_list_tile_content": "Concediu el permís per a activar les notificacions.",
"notification_permission_list_tile_enable_button": "Activa les notificacions",
"notification_permission_list_tile_title": "Permís de notificacions",
"notification_toggle_setting_description": "Activa les notificacions per correu electrònic",
"notifications": "Notificacions",
"notifications_setting_description": "Gestiona les notificacions",
"oauth": "OAuth",
- "obtainium_configurator": "Configurador Obtainium",
- "obtainium_configurator_instructions": "Utilitza Obtainium per instal·lar una actualització a la app directament des de Github-Immich. Crear una clau API i seleccionar una variant per crear un enllaç a la configuració Obtainium",
+ "obtainium_configurator": "Configurador de l’Obtainium",
+ "obtainium_configurator_instructions": "Utilitzeu l’Obtainium per a instal·lar i actualitzar l’aplicació d’Android directament del llançament a GitHub de l’Immich. Creeu una clau de l’API i seleccioneu una variant per a crear un enllaç de configuració de l’Obtainium",
"ocr": "OCR",
- "official_immich_resources": "Recursos oficials d'Immich",
+ "ocr_body": "Ara l’Immich llegeix el text dins de les vostres fotos, de manera que podeu cercar-les pel que hi ha escrit.",
+ "ocr_title": "Cerqueu text dins de les vostres fotos",
+ "official_immich_resources": "Recursos oficials de l’Immich",
"offline": "Fora de línia",
"offset": "Diferència",
- "ok": "D'acord",
- "oldest_first": "El més vell primer",
+ "ok": "D’acord",
+ "oldest_first": "El més antic primer",
"on_this_device": "En aquest dispositiu",
- "onboarding": "Incorporació",
- "onboarding_locale_description": "Tria el teu llenguatge preferit. Pots canviar aquesta opció mes tard a la configuració.",
- "onboarding_privacy_description": "Les següents funcions (opcionals) depenen de serveis externs i poden desactivarse en qualsevol moment des de la configuració.",
- "onboarding_server_welcome_description": "Configurem la instància amb alguns paràmetres comuns.",
- "onboarding_theme_description": "Trieu un tema de color per a la vostra instància. Podeu canviar-ho més endavant a la vostra configuració.",
+ "onboarding": "Introducció",
+ "onboarding_locale_description": "Seleccioneu la vostra llengua preferida. Podeu canviar-la més tard a la configuració.",
+ "onboarding_privacy_description": "Les següents funcionalitats opcionals depenen de serveis externs i es poden desactivar en qualsevol moment a la configuració.",
+ "onboarding_server_welcome_description": "Configureu la vostra instància amb alguns paràmetres comuns.",
+ "onboarding_theme_description": "Trieu un tema de colors per a la vostra instància. Podeu canviar-lo més tard a la configuració.",
"onboarding_user_welcome_description": "Comencem!",
- "onboarding_welcome_user": "Benvingut, {user}",
+ "onboarding_welcome_user": "Us donem la benvinguda, {user}",
"online": "En línia",
- "only_favorites": "Només preferits",
- "open": "Obrir",
- "open_calendar": "Obrir el calendari",
+ "only_favorites": "Només els preferits",
+ "open": "Obre",
+ "open_calendar": "Obre el calendari",
"open_in_browser": "Obre al navegador",
- "open_in_map_view": "Obrir a la vista del mapa",
- "open_in_openstreetmap": "Obre a OpenStreetMap",
- "open_the_search_filters": "Obriu els filtres de cerca",
+ "open_in_immich_body": "Definiu l’Immich com a la vostra galeria de fotos d’Android per a obrir les fotos directament d’altres aplicacions.",
+ "open_in_immich_title": "Obre les fotos a l’Immich",
+ "open_in_map_view": "Obre a la visualització del mapa",
+ "open_in_openstreetmap": "Obre a l’OpenStreetMap",
+ "open_the_search_filters": "Obre els filtres de cerca",
"options": "Opcions",
"or": "o",
- "organize_into_albums": "Organitzar en àlbums",
- "organize_into_albums_description": "Posar fotos existents en àlbums utilitzant la configuració de sincronització actual",
- "organize_your_library": "Organitzeu la llibreria",
+ "organize_into_albums": "Organitza en àlbums",
+ "organize_into_albums_description": "Posa les fotos existents en àlbums utilitzant la configuració de sincronització actual",
+ "organize_your_library": "Organitza la biblioteca",
"orientation": "Orientació",
"original": "original",
"other": "Altres",
"other_devices": "Altres dispositius",
"other_variables": "Altres variables",
- "owned": "Propi",
+ "owned": "Propis",
"owner": "Propietari",
"page": "Pàgina",
- "partner": "Company/a",
+ "partner": "Company",
"partner_can_access": "{partner} hi té accés",
- "partner_can_access_assets": "Totes les vostres fotos i vídeos excepte les arxivades i eliminades",
- "partner_can_access_location": "Ubicació en què s'han fet les fotos",
- "partner_list_user_photos": "fotos de {user}",
- "partner_page_empty_message": "Les teves fotos encara no estan compartides amb cap company.",
+ "partner_can_access_assets": "Totes les vostres fotos i vídeos excepte les arxivades i les suprimides",
+ "partner_can_access_location": "Ubicació on s’han fet les fotos",
+ "partner_list_user_photos": "Fotos de l’usuari {user}",
+ "partner_page_empty_message": "Les vostres fotos encara no s’han compartit amb cap company.",
"partner_page_no_more_users": "No hi ha més usuaris a afegir",
- "partner_page_select_partner": "Escull company",
- "partner_page_stop_sharing_content": "{partner} ja no podrà accedir a les teves fotos.",
+ "partner_page_select_partner": "Selecciona un company",
+ "partner_page_stop_sharing_content": "{partner} ja no podrà accedir a les vostres fotos.",
"partner_sharing": "Compartició amb companys",
"partners": "Companys",
"password": "Contrasenya",
"password_does_not_match": "La contrasenya no coincideix",
- "password_required": "Contrasenya requerida",
- "password_reset_success": "El restabliment de la contrasenya ha estat correcte",
+ "password_required": "La contrasenya és obligatòria",
+ "password_reset_success": "S’ha restablert la contrasenya correctament",
"past_durations": {
- "days": "{days, plural, one {El dia anterior} other {Els # dies anteriors}}",
- "hours": "{hours, plural, one {L'última hora} other {Les darreres # hours}}",
- "years": "{years, plural, one {L'any passat} other {Els passats # anys}}"
+ "days": "{days, plural, one {El darrer dia} other {Els darrers # dies}}",
+ "hours": "{hours, plural, one {La darrera hora} other {Les darreres # hores}}",
+ "years": "{years, plural, one {L’any passat} other {Els darrers # anys}}"
},
- "path": "Ruta",
+ "path": "Camí",
"pattern": "Patró",
"pause": "Pausa",
"pause_memories": "Pausa els records",
- "paused": "En pausa",
+ "paused": "Pausat",
"pending": "Pendent",
"people": "Persones",
- "people_edits_count": "{count, plural, one {# persona editada} other {# persones editades}}",
- "people_feature_description": "Explorar fotos i vídeos agrupades per persona",
- "permanent_deletion_warning": "Avís d'eliminació permanent",
- "permanent_deletion_warning_setting_description": "Mostrar un avís quan s'eliminin els elements permanentment",
- "permanently_delete": "Eliminar permanentment",
- "permanently_delete_assets_count": "Eliminar permanentment {count, plural, one {l'element} other {els elements}}",
- "permanently_delete_assets_prompt": "Esteu segur que voleu suprimir permanentment {count, plural, one {aquest recurs?} other {aquests # recursos?}} Això també {count, plural, one {el} other {els}} suprimirà del seu àlbum.",
- "permanently_deleted_asset": "Element eliminat permanentment",
- "permanently_deleted_assets_count": "{count, plural, one {S'ha eliminat # element} other {S'han eliminat # elements}} permanentment",
+ "people_edits_count": "{count, plural, one {S’ha editat # persona} other {S’han editat # persones}}",
+ "people_feature_description": "Exploreu les fotos i els vídeos agrupats per persona",
+ "permanent_deletion_warning": "Advertència de supressió permanent",
+ "permanent_deletion_warning_setting_description": "Mostra una advertència quan se suprimeixin recursos permanentment",
+ "permanently_delete": "Suprimeix permanentment",
+ "permanently_delete_assets_count": "Suprimeix permanentment {count, plural, one {el recurs} other {els recursos}}",
+ "permanently_delete_assets_prompt": "Segur que voleu suprimir permanentment {count, plural, one {aquest recurs?} other {aquests # recursos?}} Això també {count, plural, one {el} other {els}} suprimirà dels àlbums.",
+ "permanently_deleted_asset": "S’ha suprimit el recurs permanentment",
+ "permanently_deleted_assets_count": "{count, plural, one {S’ha suprimit # recurs} other {S’han suprimit # recursos}} permanentment",
"permission": "Permís",
- "permission_empty": "El seu permís no hauria d'estar buit",
+ "permission_empty": "El vostre permís no hauria d’estar buit",
"person": "Persona",
- "person_age_months": "{months, plural, one {# mes} other {# mesos}} d'antiguitat",
- "person_age_year_months": "1 any, {months, plural, one {# mes} other {# mesos}} d'antiguitat",
- "person_age_years": "{years, plural, other {# anys}} d'antiguitat",
- "person_birthdate": "Nascut a {date}",
- "person_hidden": "{name}{hidden, select, true { (ocultat)} other {}}",
+ "person_age_months": "{months, plural, one {# mes} other {# mesos}}",
+ "person_age_year_months": "1 any i {months, plural, one {# mes} other {# mesos}}",
+ "person_age_years": "{years, plural, one {# any} other {# anys}}",
+ "person_birthdate": "Nascut el {date}",
+ "person_hidden": "{name}{hidden, select, true { (amagat)} other {}}",
"person_recognized": "Persona reconeguda",
- "photo_shared_all_users": "Sembla que has compartit les teves fotos amb tots els usuaris o no tens cap usuari amb qui compartir-les.",
+ "photo_shared_all_users": "Sembla que heu compartit les vostres fotos amb tots els usuaris o no teniu cap usuari amb qui compartir-les.",
"photos": "Fotos",
"photos_and_videos": "Fotos i vídeos",
- "photos_from_previous_years": "Fotos d'anys anteriors",
- "pick_a_location": "Triar una ubicació",
- "pick_custom_range": "Rang personalitzat",
- "pick_date_range": "Seleccioni un rang de dates",
- "pin_code_changed_successfully": "Codi PIN canviat correctament",
- "pin_code_reset_successfully": "S'ha restablert correctament el codi PIN",
- "pin_code_setup_successfully": "S'ha configurat correctament un codi PIN",
- "pin_verification": "Verificació de codi PIN",
+ "photos_from_previous_years": "Fotos d’anys anteriors",
+ "pick_a_location": "Tria una ubicació",
+ "pick_custom_range": "Interval personalitzat",
+ "pick_date_range": "Seleccioneu un interval de dates",
+ "pin_code_changed_successfully": "S’ha canviat el codi PIN correctament",
+ "pin_code_reset_successfully": "S’ha restablert el codi PIN correctament",
+ "pin_code_setup_successfully": "S’ha configurat el codi PIN correctament",
+ "pin_verification": "Verificació del codi PIN",
"place": "Lloc",
"places": "Llocs",
- "places_count": "{count, plural, one {{count, number} Lloc} other {{count, number} Llocs}}",
+ "places_count": "{count, plural, one {{count, number} lloc} other {{count, number} llocs}}",
"play": "Reprodueix",
- "play_memories": "Reproduir records",
- "play_motion_photo": "Reproduir Fotos en Moviment",
- "play_or_pause_video": "Reproduir o posar en pausa el vídeo",
- "play_original_video": "Veure el video original",
- "play_original_video_setting_description": "Preferir la reproducció del video original sobre el video recodificat. Si el video original no es compatible potser no es reprodueixi correctament.",
- "play_transcoded_video": "Veure el video recodificat",
- "please_auth_to_access": "Per favor, autentica't per accedir",
+ "play_memories": "Reprodueix els records",
+ "play_motion_photo": "Reprodueix la foto en moviment",
+ "play_or_pause_video": "Reprodueix o pausa el vídeo",
+ "play_original_video": "Reprodueix el vídeo original",
+ "play_original_video_setting_description": "Prefereix la reproducció dels vídeos originals abans que el vídeo transcodificat. Si el recurs original no és compatible, és possible que no es reprodueixi correctament.",
+ "play_transcoded_video": "Reprodueix el vídeo transcodificat",
+ "please_auth_to_access": "Autentiqueu-vos per a accedir-hi",
"plugin_method_filter_type": "Filtre",
- "plugin_method_filter_type_description": "Aquest mètode pot filtrar esdeveniments i, condicionat, evitar que s'executin els passos següents",
+ "plugin_method_filter_type_description": "Aquest mètode pot filtrar esdeveniments i evitar condicionalment que s’executin els passos següents",
"port": "Port",
- "preferences_settings_subtitle": "Gestiona les preferències de l'aplicació",
+ "preferences_settings_subtitle": "Gestiona les preferències de l’aplicació",
"preferences_settings_title": "Preferències",
- "preparing": "Preparant",
- "preset": "Preestablert",
+ "preparing": "S’està preparant",
+ "preset": "Predefinit",
"preview": "Previsualització",
"previous": "Anterior",
- "previous_memory": "Memòria anterior",
- "previous_or_next_day": "Dia endavant/enrere",
- "previous_or_next_month": "Mes endavant/enrere",
- "previous_or_next_photo": "Foto endavant/enrere",
- "previous_or_next_year": "Any endavant/enrere",
+ "previous_memory": "Record anterior",
+ "previous_or_next_day": "Dia següent/anterior",
+ "previous_or_next_month": "Mes següent/anterior",
+ "previous_or_next_photo": "Foto següent/anterior",
+ "previous_or_next_year": "Any següent/anterior",
"primary": "Primària",
"privacy": "Privacitat",
"profile": "Perfil",
"profile_drawer_app_logs": "Registres",
"profile_drawer_github": "GitHub",
- "profile_drawer_readonly_mode": "Mode només lectura. Feu pulsació llarga a la icona de l'avatar d'usuari per sortir.",
- "profile_image_of_user": "Imatge de perfil de {user}",
- "profile_picture_set": "Imatge de perfil configurada.",
- "projection_type": "Tipus de Projecció",
+ "profile_drawer_readonly_mode": "Mode de només lectura. Mantingueu premuda la icona de l’avatar d’usuari per a sortir-ne.",
+ "profile_image_of_user": "Imatge de perfil de l’usuari {user}",
+ "profile_picture_set": "S’ha definit la imatge de perfil.",
+ "projection_type": "Tipus de projecció",
"public_album": "Àlbum públic",
- "public_share": "Compartit públicament",
- "purchase_account_info": "Contribuent",
- "purchase_activated_subtitle": "Gràcies per donar suport a Immich i al programari de codi obert",
+ "public_share": "Compartició pública",
+ "purchase_account_info": "Col·laborador",
+ "purchase_activated_subtitle": "Gràcies per donar suport a l’Immich i al programari de codi obert",
"purchase_activated_time": "Activat el {date}",
- "purchase_activated_title": "La teva clau s'ha activat correctament",
- "purchase_button_activate": "Activar",
- "purchase_button_buy": "Comprar",
- "purchase_button_buy_immich": "Compra Immich",
- "purchase_button_never_show_again": "No mostrar mai més",
- "purchase_button_reminder": "Recordar en 30 dies",
+ "purchase_activated_title": "La vostra clau s’ha activat correctament",
+ "purchase_button_activate": "Activa",
+ "purchase_button_buy": "Compra",
+ "purchase_button_buy_immich": "Compra l’Immich",
+ "purchase_button_never_show_again": "No ho tornis a mostrar",
+ "purchase_button_reminder": "Recorda-m’ho d’aquí a 30 dies",
"purchase_button_remove_key": "Elimina la clau",
- "purchase_button_select": "Seleccioneu",
- "purchase_failed_activation": "No s'ha pogut activar! Si us plau, comproveu el vostre correu electrònic per trobar la clau de producte correcta!",
+ "purchase_button_select": "Selecciona",
+ "purchase_failed_activation": "No s’ha pogut activar! Reviseu el vostre correu electrònic per a obtenir la clau del producte correcta!",
"purchase_individual_description_1": "Per a un particular",
- "purchase_individual_description_2": "Estat de la contribució",
+ "purchase_individual_description_2": "Estatus de col·laborador",
"purchase_individual_title": "Individual",
- "purchase_input_suggestion": "Tens una clau de producte? Introduïu la clau a continuació",
+ "purchase_input_suggestion": "Teniu una clau del producte? Introduïu-la a continuació",
"purchase_lifetime_description": "Compra de per vida",
"purchase_option_title": "OPCIONS DE COMPRA",
- "purchase_panel_info_1": "Crear Immich requereix molt de temps i esforç, tenim enginyers a temps complet treballant-hi per fer-ho tan bo com sigui possible. La nostra missió és que el programari de codi obert i les pràctiques empresarials ètiques es converteixin en una font d'ingressos sostenible per als desenvolupadors i creïn un ecosistema que respecti la privacitat amb alternatives reals als serveis cloud explotadors.",
- "purchase_panel_info_2": "Estem compromesos a no afegir murs de pagament, aquesta compra no us otorgarà cap funció addicional a Immich. Confiem en usuaris com tu per donar suport al desenvolupament continuat d'Immich.",
- "purchase_panel_title": "Donar suport al projecte",
+ "purchase_panel_info_1": "Desenvolupar l’Immich requereix molt de temps i esforç i tenim enginyers treballant-hi a temps complet per a fer-lo tan bo com sigui possible. La nostra missió és que el programari de codi obert i les pràctiques empresarials ètiques esdevinguin una font d’ingressos sostenible per als desenvolupadors i creïn un ecosistema que respecti la privacitat amb alternatives reals als serveis al núvol explotadors.",
+ "purchase_panel_info_2": "Com que estem compromesos a no afegir murs de pagament, aquesta compra no us atorgarà cap funcionalitat addicional a l’Immich. Confiem en els usuaris com vós perquè doneu suport al desenvolupament continuat de l’Immich.",
+ "purchase_panel_title": "Dóna suport al projecte",
"purchase_per_server": "Per servidor",
"purchase_per_user": "Per usuari",
"purchase_remove_product_key": "Elimina la clau del producte",
- "purchase_remove_product_key_prompt": "Esteu segur que voleu eliminar la clau del producte?",
- "purchase_remove_server_product_key": "Elimina la clau de producte del servidor",
- "purchase_remove_server_product_key_prompt": "Esteu segur que voleu eliminar la clau de producte del servidor?",
+ "purchase_remove_product_key_prompt": "Segur que voleu eliminar la clau del producte?",
+ "purchase_remove_server_product_key": "Elimina la clau del producte del servidor",
+ "purchase_remove_server_product_key_prompt": "Segur que voleu eliminar la clau del producte del servidor?",
"purchase_server_description_1": "Per a tot el servidor",
- "purchase_server_description_2": "Estat del contribuent",
+ "purchase_server_description_2": "Estatus de col·laborador",
"purchase_server_title": "Servidor",
- "purchase_settings_server_activated": "La clau de producte del servidor la gestiona l'administrador",
- "query_asset_id": "Consulta d'identificació d'actius",
- "queue_status": "En cua {count}/{total}",
- "rate_asset": "Valorar Recurs",
- "rating": "Valoració",
- "rating_clear": "Esborrar valoració",
- "rating_count": "{count, plural, =0 {Unrated} one {# estrella} other {# estrelles}}",
- "rating_description": "Mostrar la valoració EXIF al panell d'informació",
- "reaction_options": "Opcions de reacció",
- "read_changelog": "Llegeix el registre de canvis",
- "readonly_mode_disabled": "Mode de només lectura desactivat",
- "readonly_mode_enabled": "Mode de només lectura activat",
+ "purchase_settings_server_activated": "La clau del producte del servidor la gestiona l’administrador",
+ "query_asset_id": "Consulta l’identificador del recurs",
+ "queue_status": "S’està afegint a la cua {count}/{total}",
+ "rate_asset": "Puntua el recurs",
+ "rating": "Puntuació en estrelles",
+ "rating_clear": "Esborra la puntuació",
+ "rating_count": "{count, plural, =0 {No puntuat} one {# estrella} other {# estrelles}}",
+ "rating_description": "Mostra la puntuació Exif al tauler d’informació",
+ "reaction_options": "Opcions de la reacció",
+ "read_changelog": "Mostra el registre de canvis",
+ "readonly_mode_disabled": "S’ha desactivat el mode de només lectura",
+ "readonly_mode_enabled": "S’ha activat el mode de només lectura",
"ready_for_upload": "Llest per a pujar",
- "reassign": "Reassignar",
- "reassigned_assets_to_existing_person": "{count, plural, one {S'ha reassignat # recurs} other {S'han reassignat # recursos}} a {name, select, null {una persona existent} other {{name}}}",
- "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",
+ "reassign": "Reassigna",
+ "reassigned_assets_to_existing_person": "{count, plural, one {S’ha reassignat # recurs} other {S’han reassignat # recursos}} a {name, select, null {una persona existent} other {{name}}}",
+ "reassigned_assets_to_new_person": "{count, plural, one {S’ha reassignat # recurs} other {S’han reassignat # recursos}} a una persona nova",
+ "reassing_hint": "Assigna els recursos seleccionats a una persona existent",
+ "recent": "Recents",
"recent_searches": "Cerques recents",
"recently_added": "Afegit recentment",
- "recently_added_page_title": "Afegit recentment",
- "recently_taken": "Fet recentment",
- "refresh": "Actualitzar",
- "refresh_encoded_videos": "Actualitza vídeos codificats",
- "refresh_faces": "Actualitzar cares",
- "refresh_metadata": "Actualitzar les metadades",
- "refresh_thumbnails": "Actualitzar la miniatura",
- "refreshed": "Actualitzat",
- "refreshing_encoded_video": "S'està actualitzant el vídeo codificat",
- "refreshing_faces": "Refrescant cares",
- "refreshing_metadata": "Actualitzant les metadades",
- "regenerating_thumbnails": "Regenerant les miniatures",
+ "recently_added_body": "Accediu directament a tot el que heu afegit darrerament en una pàgina dedicada.",
+ "recently_added_description": "Exploreu els vostres recursos ordenats per la data de pujada a l’Immich",
+ "recently_added_page_title": "Afegits recentment",
+ "recently_added_title": "Afegits recentment",
+ "recently_taken": "Capturada recentment",
+ "refresh": "Actualitza",
+ "refresh_encoded_videos": "Actualitza els vídeos codificats",
+ "refresh_faces": "Actualitza les cares",
+ "refresh_metadata": "Actualitza les metadades",
+ "refresh_thumbnails": "Actualitza les miniatures",
+ "refreshed": "S’ha actualitzat",
+ "refreshing_encoded_video": "S’està actualitzant el vídeo codificat",
+ "refreshing_faces": "S’estan actualitzant les cares",
+ "refreshing_metadata": "S’estan actualitzant les metadades",
+ "regenerating_thumbnails": "S’estan regenerant les miniatures",
"remote": "Remot",
- "remote_assets": "Recursos Remots",
- "remote_media_summary": "Resum de Mitjans Remots",
- "remove": "Eliminar",
- "remove_assets_album_confirmation": "Confirmes que vols eliminar {count, plural, one {# recurs} other {# recursos}} de l'àlbum?",
- "remove_assets_shared_link_confirmation": "Esteu segur que voleu eliminar {count, plural, one {# recurs} other {# recursos}} d'aquest enllaç compartit?",
- "remove_assets_title": "Eliminar els elements?",
- "remove_custom_date_range": "Elimina l'interval de dates personalitzat",
+ "remote_assets": "Recursos remots",
+ "remote_media_summary": "Resum de mitjans remots",
+ "remove": "Elimina",
+ "remove_assets_album_confirmation": "Segur que voleu eliminar {count, plural, one {# recurs} other {# recursos}} de l’àlbum?",
+ "remove_assets_shared_link_confirmation": "Segur que voleu eliminar {count, plural, one {# recurs} other {# recursos}} d’aquest enllaç compartit?",
+ "remove_assets_title": "Voleu eliminar els recursos?",
+ "remove_custom_date_range": "Suprimeix l’interval de dates personalitzat",
"remove_filter": "Elimina el filtre",
- "remove_from_album": "Treu de l'àlbum",
- "remove_from_album_action_prompt": "{count} eliminats de l'àlbum",
- "remove_from_favorites": "Eliminar dels preferits",
- "remove_from_lock_folder_action_prompt": "{count} eliminades de la carpeta protegida",
- "remove_from_locked_folder": "Elimina de la carpeta bloquejada",
- "remove_from_locked_folder_confirmation": "Segur que vols moure aquestes fotos i vídeos fora de la carpeta bloquejada? Seran visibles a la teva biblioteca.",
- "remove_from_shared_link": "Eliminar de l'enllaç compartit",
- "remove_memory": "Eliminar memòria",
- "remove_photo_from_memory": "Traieu la foto d'aquesta memòria",
- "remove_tag": "Elimina l'etiqueta",
- "remove_user": "Eliminar l'usuari",
- "removed_api_key": "Eliminada la clau d'API: {name}",
- "removed_from_archive": "Eliminat de l'arxiu",
- "removed_from_favorites": "Eliminat dels preferits",
+ "remove_from_album": "Elimina de l’àlbum",
+ "remove_from_album_action_prompt": "{count} eliminats de l’àlbum",
+ "remove_from_favorites": "Elimina dels preferits",
+ "remove_from_lock_folder_action_prompt": "{count} eliminats de la carpeta protegida",
+ "remove_from_locked_folder": "Elimina de la carpeta protegida",
+ "remove_from_locked_folder_confirmation": "Segur que voleu moure aquestes fotos i vídeos fora de la carpeta bloquejada? Seran visibles a la vostra biblioteca.",
+ "remove_from_shared_link": "Elimina de l’enllaç compartit",
+ "remove_memory": "Elimina el record",
+ "remove_photo_from_memory": "Elimina la foto d’aquest record",
+ "remove_tag": "Elimina l’etiqueta",
+ "remove_user": "Elimina l’usuari",
+ "removed_api_key": "S’ha suprimit la clau de l’API: {name}",
+ "removed_from_archive": "S’ha eliminat de l’arxiu",
+ "removed_from_favorites": "S’ha eliminat dels preferits",
"removed_from_favorites_count": "{count, plural, other {# eliminats}} dels preferits",
- "removed_memory": "Memòria esborrada",
- "removed_tagged_assets": "Etiqueta eliminada de {count, plural, one {# actiu} other {# actius}}",
- "rename": "Canviar nom",
+ "removed_memory": "S’ha eliminat la memòria",
+ "removed_tagged_assets": "S’ha eliminat l’etiqueta {count, plural, one {d’# recurs} other {de # recursos}}",
+ "rename": "Canvia de nom",
"repository": "Repositori",
"require_password": "Requereix contrasenya",
- "rescan": "Tornar a escanejar",
- "reset": "Restablir",
- "reset_password": "Restablir contrasenya",
- "reset_people_visibility": "Restablir la visibilitat de les persones",
- "reset_pin_code": "Restablir el codi PIN",
- "reset_pin_code_description": "Si has oblidat el teu codi PIN, pots contactar amb l'administrador del servidor per a reiniciar-lo",
- "reset_pin_code_with_password": "Sempre pots reiniciar el codi PIN amb la teva contrasenya",
- "reset_sqlite": "Reiniciar base de dades SQLite",
- "reset_sqlite_clear_app_data": "Netejar dada",
- "reset_sqlite_confirmation": "Segur que vols esborrar les dades de l'aplicació? Això eliminarà tota la configuració i tancarà la sessió.",
- "reset_sqlite_confirmation_note": "Nota: Hauràs de reiniciar l'app després d'eliminar.",
- "reset_sqlite_done": "Les dades de l'app s'han netejat. Si us plau, reinicia l'app Immich i inicia sessió de nou.",
- "reset_sqlite_success": "S'ha reiniciat la base de dades correctament",
- "reset_to_default": "Restableix els valors predeterminats",
+ "rescan": "Torna a escanejar",
+ "reset": "Restableix",
+ "reset_password": "Restableix la contrasenya",
+ "reset_people_visibility": "Restableix la visibilitat de les persones",
+ "reset_pin_code": "Restableix el codi PIN",
+ "reset_pin_code_description": "Si heu oblidat el codi PIN, podeu contactar amb l’administrador del servidor per a restablir-lo",
+ "reset_pin_code_with_password": "Sempre podeu restablir el codi PIN amb la vostra contrasenya",
+ "reset_sqlite": "Restableix la base de dades SQLite",
+ "reset_sqlite_clear_app_data": "Esborra les dades",
+ "reset_sqlite_confirmation": "Segur que voleu esborrar les dades de l’aplicació? S’eliminarà tota la configuració i es tancarà la sessió.",
+ "reset_sqlite_confirmation_note": "Nota: Caldrà que reinicieu l’aplicació després d’esborrar-les.",
+ "reset_sqlite_done": "S’han esborrat les dades de l’aplicació. Reinicieu l’Immich i torneu a iniciar la sessió.",
+ "reset_sqlite_success": "S’ha restablert la base de dades correctament",
+ "reset_to_default": "Restableix els valors per defecte",
"resolution": "Resolució",
- "resolve_duplicates": "Resoldre duplicats",
- "resolved_all_duplicates": "Tots els duplicats resolts",
- "restore": "Recupera",
- "restore_all": "Restaurar-ho tot",
- "restore_user": "Restaurar l'usuari",
- "restored_asset": "Element restaurat",
- "resume": "Reprendre",
- "resume_paused_jobs": "Reprèn {count, plural, one {# treball pausat} other {# treballs pausats}}",
- "review_duplicates": "Revisar duplicats",
- "review_large_files": "Revisar fitxers grans",
+ "resolve_duplicates": "Resol els duplicats",
+ "resolved_all_duplicates": "S’han resolt tots els duplicats",
+ "restore": "Restaura",
+ "restore_all": "Restaura-ho tot",
+ "restore_user": "Restaura l’usuari",
+ "restored_asset": "S’ha restaurat el recurs",
+ "resume": "Reprèn",
+ "resume_paused_jobs": "Reprèn {count, plural, one {# tasca pausada} other {# tasques pausades}}",
+ "review_duplicates": "Revisa els duplicats",
+ "review_large_files": "Revisa els fitxers grans",
"role": "Rol",
"role_editor": "Editor",
- "role_viewer": "Visor",
+ "role_viewer": "Visualitzador",
"running": "En execució",
"save": "Desa",
- "saved": "Guardat",
- "saved_api_key": "Clau d'API guardada",
- "saved_profile": "Perfil guardat",
- "saved_settings": "Configuració guardada",
- "say_something": "Digues quelcom",
- "scaffold_body_error_occurred": "S'ha produït un error",
- "scaffold_body_error_unrecoverable": "S'ha produït un error irrecuperable. Comparteix l'error i el rastre de la pila a Discord o GitHub perquè puguem ajudar-te. Si us ho aconsella, podeu esborrar les dades de l'aplicació a continuació.",
+ "saved": "S’ha desat",
+ "saved_api_key": "S’ha desat la clau de l’API",
+ "saved_profile": "S’ha desat el perfil",
+ "saved_settings": "S’ha desat la configuració",
+ "say_something": "Digueu alguna cosa",
+ "scaffold_body_error_occurred": "S’ha produït un error",
+ "scaffold_body_error_unrecoverable": "S’ha produït un error irrecuperable. Compartiu l’error i la traça de la pila al Discord o al GitHub perquè us puguem ajudar. Si us ho aconsellen, podeu esborrar les dades de l’aplicació a continuació.",
"scan": "Escaneja",
- "scan_all_libraries": "Escanejar totes les llibreries",
+ "scan_all_libraries": "Escaneja totes les biblioteques",
"scan_library": "Escaneja",
- "scanning": "Escanejant",
- "scanning_for_album": "S'està buscant l'àlbum...",
- "screencast_mode_description": "Mostra els indicadors d'esdeveniments del teclat i del ratolí a la pantalla",
- "screencast_mode_title": "Activa/desactiva el mode de captura de pantalla",
+ "scanning": "S’està escanejant",
+ "scanning_for_album": "S’està escanejant l’àlbum...",
+ "screencast_mode_description": "Mostra els indicadors d’esdeveniments del teclat i del ratolí a la pantalla",
+ "screencast_mode_title": "Commuta el mode de gravació",
"search": "Cerca",
- "search_albums": "Buscar àlbums",
- "search_by_context": "Buscar per context",
+ "search_albums": "Cerqueu àlbums",
+ "search_by_context": "Cerca per context",
"search_by_description": "Cercar per descripció",
- "search_by_description_example": "Jornada de senderisme a Sapa",
+ "search_by_description_example": "Dia de senderisme a Sapa",
"search_by_filename": "Cerca per nom de fitxer o extensió",
- "search_by_filename_example": "per exemple IMG_1234.JPG o PNG",
- "search_by_full_path": "Cerca per camí complert o carpeta",
- "search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - pots buscar Projectes, 3D, Impressió, 2026 etc.",
- "search_by_ocr": "Buscar per OCR",
- "search_by_ocr_example": "Després",
- "search_camera_lens_model": "Buscar model de lents....",
- "search_camera_make": "Buscar per fabricant de càmara...",
- "search_camera_model": "Buscar per model de càmera...",
- "search_city": "Buscar per ciutat...",
- "search_country": "Buscar per país...",
- "search_filter_apply": "Aplicar filtre",
- "search_filter_camera_title": "Selecciona el tipus de càmera",
+ "search_by_filename_example": "per exemple, IMG_1234.JPG o PNG",
+ "search_by_full_path": "Cerca per camí complet o carpeta",
+ "search_by_full_path_example": "/Joan/Projectes/Impressió_3D/2026-07-01: podeu cercar Projectes, 3D, Impressió, 2026, etc.",
+ "search_by_ocr": "Cerca per OCR",
+ "search_by_ocr_example": "Cafè amb llet",
+ "search_camera_lens_model": "Cerqueu models d’objectiu...",
+ "search_camera_make": "Cerqueu fabricants de càmera...",
+ "search_camera_model": "Cerqueu models de càmera...",
+ "search_city": "Cerqueu ciutats...",
+ "search_country": "Cerqueu països...",
+ "search_filter_apply": "Aplica el filtre",
+ "search_filter_camera_title": "Seleccioneu el tipus de càmera",
"search_filter_date": "Data",
- "search_filter_date_interval": "{start} a {end}",
- "search_filter_date_title": "Selecciona un rang de dates",
- "search_filter_display_option_not_in_album": "No en àlbum",
- "search_filter_display_options": "Opcions de Visualització",
- "search_filter_filename": "Cerca pel nom del fitxer",
+ "search_filter_date_interval": "de {start} a {end}",
+ "search_filter_date_title": "Seleccioneu un interval de dates",
+ "search_filter_display_option_not_in_album": "En cap àlbum",
+ "search_filter_display_options": "Opcions de visualització",
+ "search_filter_filename": "Cerca per nom del fitxer",
"search_filter_location": "Ubicació",
- "search_filter_location_title": "Selecciona l'ubicació",
- "search_filter_media_type": "Tipus de multimèdia",
- "search_filter_media_type_title": "Selecciona tipus de multimèdia",
- "search_filter_people_title": "Selecciona persones",
- "search_filter_star_rating": "Classificació per estrelles",
- "search_filter_tags_title": "Seleccionar etiquetes",
- "search_for": "Cercar",
- "search_for_existing_person": "Busca una persona existent",
- "search_no_more_result": "No més resultats",
- "search_no_people": "Cap persona",
- "search_no_people_named": "Cap persona anomenada \"{name}\"",
- "search_no_result": "No s'han trobat resultats, proveu un terme de cerca o una combinació diferents",
+ "search_filter_location_title": "Seleccioneu una ubicació",
+ "search_filter_media_type": "Tipus de mitjà",
+ "search_filter_media_type_title": "Seleccioneu un tipus de mitjà",
+ "search_filter_people_title": "Seleccioneu persones",
+ "search_filter_star_rating": "Puntuació per estrelles",
+ "search_filter_tags_title": "Seleccioneu etiquetes",
+ "search_for": "Cerca",
+ "search_for_existing_person": "Cerca una persona existent",
+ "search_no_more_result": "No hi ha més resultats",
+ "search_no_people": "No hi ha cap persona",
+ "search_no_people_named": "No hi ha cap persona anomenada «{name}»",
+ "search_no_result": "No s’ha trobat cap resultat; proveu un terme de cerca o una combinació diferents",
"search_options": "Opcions de cerca",
- "search_page_search_photos_videos": "Cerca les teves fotos i vídeos",
- "search_page_view_all_button": "Veure tot",
- "search_people": "Buscar persones",
- "search_places": "Buscar llocs",
- "search_rating": "Buscar per qualificació...",
- "search_settings": "Configuració de cerca",
- "search_state": "Buscar per regió...",
- "search_tags": "Cercant etiquetes...",
- "search_timezone": "Buscar per fus horari...",
- "search_type": "Buscar per tipus",
- "search_your_photos": "Cerca les teves fotos",
- "searching_locales": "S'estan cercant localitzacions...",
+ "search_page_search_photos_videos": "Cerqueu les vostres fotos i vídeos",
+ "search_page_view_all_button": "Mostra-ho tot",
+ "search_people": "Cerca persones",
+ "search_places": "Cerca llocs",
+ "search_rating": "Cerca per puntuació...",
+ "search_settings": "Configuració de la cerca",
+ "search_state": "Cerqueu regions...",
+ "search_tags": "Cerqueu etiquetes...",
+ "search_timezone": "Cerqueu zones horàries...",
+ "search_type": "Tipus de cerca",
+ "search_your_photos": "Cerqueu les vostres fotos",
+ "searching_locales": "S’estan cercant localitzacions...",
"second": "Segon",
- "see_all_people": "Veure totes les persones",
+ "see_all_people": "Mostra totes les persones",
"select": "Selecciona",
- "select_album": "Seleccionar àlbum",
- "select_album_cover": "Seleccionar la portada de l'àlbum",
- "select_albums": "Seleccionar àlbums",
+ "select_album": "Selecciona l’àlbum",
+ "select_album_cover": "Selecciona la portada de l’àlbum",
+ "select_albums": "Selecciona àlbums",
"select_all": "Selecciona-ho tot",
- "select_all_duplicates": "Seleccioneu tots els duplicats",
- "select_avatar_color": "Tria color de l'avatar",
- "select_count": "{count, plural, one {Selecciona #} other {Selecciona #}}",
- "select_cutoff_date": "Seleccionar data de tall",
- "select_face": "Selecciona cara",
- "select_featured_photo": "Selecciona foto principal",
- "select_from_computer": "Seleccionar des de l'ordinador",
- "select_keep_all": "Mantén tota la selecció",
- "select_new_face": "Selecciona nova cara",
- "select_people": "Seleccionar persones",
- "select_person": "Seleccionar persona",
- "select_person_to_tag": "Selecciona una persona per etiquetar",
- "select_photos": "Tria fotografies",
+ "select_all_duplicates": "Selecciona tots els duplicats",
+ "select_avatar_color": "Selecciona el color de l’avatar",
+ "select_count": "{count, plural, one {Selecciona’n #} other {Selecciona’n #}}",
+ "select_cutoff_date": "Seleccioneu la data de tall",
+ "select_face": "Selecciona una cara",
+ "select_featured_photo": "Selecciona la foto principal",
+ "select_from_computer": "Selecciona de l’ordinador",
+ "select_keep_all": "Selecciona conservar-ho tot",
+ "select_new_face": "Selecciona una cara nova",
+ "select_people": "Selecciona persones",
+ "select_person": "Selecciona una persona",
+ "select_person_to_tag": "Selecciona una persona a etiquetar",
+ "select_photos": "Selecciona fotos",
"select_quality": "Selecciona qualitat",
- "select_trash_all": "Envia la selecció a la paperera",
+ "select_trash_all": "Selecciona enviar-ho tot a la paperera",
"selected": "Seleccionat",
"selected_count": "{count, plural, one {# seleccionat} other {# seleccionats}}",
- "selected_gps_coordinates": "Seleccio de coordinades GPS",
- "send_message": "Envia missatge",
- "send_welcome_email": "Envia correu de benvinguda",
- "server_endpoint": "Endpoint de Servidor",
- "server_info_box_app_version": "Versió de l'aplicació",
+ "selected_gps_coordinates": "Coordenades GPS seleccionades",
+ "send_message": "Envia el missatge",
+ "send_welcome_email": "Envia el correu electrònic de benvinguda",
+ "server_endpoint": "Endpoint del servidor",
+ "server_info_box_app_version": "Versió de l’aplicació",
"server_info_box_server_url": "URL del servidor",
"server_offline": "Servidor fora de línia",
"server_online": "Servidor en línia",
- "server_privacy": "Privadesa del servidor",
- "server_restarting_description": "Aquesta pàgina es refrescarà momentàniament.",
- "server_restarting_title": "El servidor s'està reiniciant",
+ "server_privacy": "Privacitat del servidor",
+ "server_restarting_description": "Aquesta pàgina s’actualitzarà aviat.",
+ "server_restarting_title": "S’està reiniciant el servidor",
"server_stats": "Estadístiques del servidor",
- "server_update_available": "Actualització del servidor disponible",
+ "server_update_available": "Hi ha disponible una actualització del servidor",
"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",
- "set_slideshow_to_fullscreen": "Mostra Diapositives en pantalla completa",
- "set_stack_primary_asset": "Estableix com a actiu principal",
- "setting_image_navigation_enable_subtitle": "Si està activat, pots navegar a la imatge anterior/següent tocant la quarta part més esquerra/dreta de la pantalla.",
- "setting_image_navigation_enable_title": "Toca per navegar",
- "setting_image_navigation_title": "Navegació d'imatges",
- "setting_image_viewer_help": "El visor de detalls carrega primer la miniatura petita, després carrega la vista prèvia de mida mitjana (si està habilitada), finalment carrega l'original (si està habilitada).",
- "setting_image_viewer_original_subtitle": "Activa per carregar la imatge en resolució original (molt gran!). Desactiva per reduir el consum de dades (tant de xarxa com de memòria cau).",
+ "set": "Defineix",
+ "set_as_album_cover": "Defineix com a portada de l’àlbum",
+ "set_as_featured_photo": "Defineix com a foto destacada",
+ "set_as_profile_picture": "Defineix com a imatge de perfil",
+ "set_date_of_birth": "Defineix la data de naixement",
+ "set_profile_picture": "Defineix la imatge de perfil",
+ "set_slideshow_to_fullscreen": "Mostra les diapositives en pantalla completa",
+ "set_stack_primary_asset": "Defineix com a recurs principal",
+ "setting_image_navigation_enable_subtitle": "Si està activat, podeu navegar a la imatge anterior/següent tocant la quarta part més a l’esquerra/dreta de la pantalla.",
+ "setting_image_navigation_enable_title": "Toqueu per a navegar",
+ "setting_image_navigation_title": "Navegació per les imatges",
+ "setting_image_viewer_help": "El visualitzador de detalls carrega primer la miniatura petita, després carrega la previsualització de mida mitjana (si està activada), i finalment carrega l’original (si està activat).",
+ "setting_image_viewer_original_subtitle": "Activeu-ho per a carregar la imatge en resolució original (molt gran!). Desactiveu-ho per a reduir el consum de dades (tant de xarxa com de memòria cau del dispositiu).",
"setting_image_viewer_original_title": "Carrega la imatge original",
- "setting_image_viewer_preview_subtitle": "Activa per carregar una imatge de resolució mitjana. Desactiva per carregar directament la imatge original, o bé utilitzar només la miniatura.",
- "setting_image_viewer_preview_title": "Carrega la imatge de vista prèvia",
- "setting_languages_apply": "Aplicar",
- "setting_languages_subtitle": "Canvia el llenguatge de l'aplicació",
+ "setting_image_viewer_preview_subtitle": "Activeu-ho per a carregar una imatge de resolució mitjana. Desactiveu-ho per carregar directament la imatge original, o bé utilitzar només la miniatura.",
+ "setting_image_viewer_preview_title": "Carrega la imatge de previsualització",
+ "setting_languages_apply": "Aplica",
+ "setting_languages_subtitle": "Canvia la llengua de l’aplicació",
"setting_notifications_notify_minutes": "{count} minuts",
"setting_notifications_notify_seconds": "{count} segons",
"setting_notifications_subtitle": "Ajusta les preferències de notificació",
- "setting_video_viewer_auto_play_subtitle": "Comença a veure videos quan s'obrin",
- "setting_video_viewer_auto_play_title": "Veure videos automàticament",
+ "setting_video_viewer_auto_play_subtitle": "Comença a reproduir videos automàticament en obrir-los",
+ "setting_video_viewer_auto_play_title": "Reprodueix els vídeos automàticament",
"setting_video_viewer_looping_title": "Bucle",
- "setting_video_viewer_original_video_subtitle": "Quan reproduïu un vídeo des del servidor, reproduïu l'original encara que hi hagi una transcodificació disponible. Pot conduir a l'amortització. Els vídeos disponibles localment es reprodueixen en qualitat original independentment d'aquesta configuració.",
+ "setting_video_viewer_original_video_subtitle": "Quan mireu un vídeo del servidor, reprodueix l’original encara que hi hagi una transcodificació disponible. Pot provocar que la càrrega del vídeo s’alenteixi. Els vídeos disponibles localment es reprodueixen en qualitat original independentment d’aquesta configuració.",
"setting_video_viewer_original_video_title": "Força el vídeo original",
"settings": "Configuració",
- "settings_saved": "Configuració desada",
- "setup_pin_code": "Configurar un codi PIN",
- "share": "Compartir",
- "share_dialog_preparing": "S'està preparant...",
- "share_link": "Compartir Enllaç",
- "share_original": "Ús original (gran)",
- "share_preview": "Ús de la miniatura (petit)",
- "shared": "Compartit",
+ "settings_saved": "S’ha desat la configuració",
+ "setup_pin_code": "Configureu un codi PIN",
+ "share": "Comparteix",
+ "share_dialog_preparing": "S’està preparant...",
+ "share_link": "Comparteix l’enllaç",
+ "share_original": "Utilitza l’original (gran)",
+ "share_preview": "Utilitza la miniatura (petita)",
+ "share_quality_body": "Mantingueu premut el botó de compartició per a triar la qualitat de la imatge abans de compartir-la.",
+ "share_quality_title": "Trieu la qualitat de la compartició",
+ "shared": "Compartits",
"shared_album_activities_input_disable": "Els comentaris estan desactivats",
"shared_album_activity_remove_content": "Voleu eliminar aquesta activitat?",
- "shared_album_activity_remove_title": "Elimina l'activitat",
- "shared_album_section_people_action_error": "S'ha produït un error en retirar-se/eliminar l'àlbum",
+ "shared_album_activity_remove_title": "Elimina l’activitat",
+ "shared_album_section_people_action_error": "S’ha produït un error en retirar/eliminar de l’àlbum",
"shared_album_section_people_title": "PERSONES",
"shared_by": "Compartit per",
"shared_by_user": "Compartit per {user}",
- "shared_by_you": "Compartit per tu",
+ "shared_by_you": "Compartit per vós",
"shared_from_partner": "Fotos de {partner}",
- "shared_intent_upload_button_progress_text": "{current} / {total} Pujat",
+ "shared_intent_upload_button_progress_text": "{current} / {total} pujats",
"shared_link_app_bar_title": "Enllaços compartits",
- "shared_link_clipboard_copied_massage": "S'ha copiat al porta-retalls",
- "shared_link_create_error": "S'ha produït un error en crear l'enllaç compartit",
- "shared_link_custom_url_description": "Accedeix a aquest enllaç compartit amb una URL personalitzada",
- "shared_link_edit_description_hint": "Introduïu la descripció de compartició",
+ "shared_link_clipboard_copied_massage": "S’ha copiat al porta-retalls",
+ "shared_link_create_error": "S’ha produït un error en crear l’enllaç compartit",
+ "shared_link_custom_url_description": "Accediu a aquest enllaç compartit amb un URL personalitzat",
+ "shared_link_custom_url_title": "URL personalitzat",
+ "shared_link_custom_url_warning": "Advertència: un URL personalitzat que contingui una barra pot comportar-se de manera imprevista.",
+ "shared_link_edit_description_hint": "Introduïu la descripció de la compartició",
"shared_link_edit_expire_after_option_day": "1 dia",
"shared_link_edit_expire_after_option_days": "{count} dies",
"shared_link_edit_expire_after_option_hour": "1 hora",
@@ -1924,327 +1959,336 @@
"shared_link_edit_expire_after_option_minute": "1 minut",
"shared_link_edit_expire_after_option_minutes": "{count} minuts",
"shared_link_edit_expire_after_option_months": "{count} mesos",
- "shared_link_edit_expire_after_option_year": "any {count}",
- "shared_link_edit_password_hint": "Introduïu la contrasenya de compartició",
- "shared_link_edit_submit_button": "Actualitza l'enllaç",
- "shared_link_error_server_url_fetch": "No s'ha pogut obtenir l'URL del servidor",
- "shared_link_expires_day": "Caduca d'aquí a {count} dia",
- "shared_link_expires_days": "Caduca d'aquí a {count} dies",
- "shared_link_expires_hour": "Caduca d'aquí a {count} hora",
- "shared_link_expires_hours": "Caduca d'aquí a {count} hores",
- "shared_link_expires_minute": "Caduca d'aquí a {count} minut",
- "shared_link_expires_minutes": "Caduca d'aquí a {count} minuts",
+ "shared_link_edit_expire_after_option_year": "{count} any",
+ "shared_link_edit_password_hint": "Introduïu la contrasenya de la compartició",
+ "shared_link_edit_submit_button": "Actualitza l’enllaç",
+ "shared_link_error_server_url_fetch": "No s’ha pogut obtenir l’URL del servidor",
+ "shared_link_expires_day": "Caduca d’aquí a {count} dia",
+ "shared_link_expires_days": "Caduca d’aquí a {count} dies",
+ "shared_link_expires_hour": "Caduca d’aquí a {count} hora",
+ "shared_link_expires_hours": "Caduca d’aquí a {count} hores",
+ "shared_link_expires_minute": "Caduca d’aquí a {count} minut",
+ "shared_link_expires_minutes": "Caduca d’aquí a {count} minuts",
"shared_link_expires_never": "Caduca ∞",
- "shared_link_expires_second": "Caduca d'aquí a {count} segon",
- "shared_link_expires_seconds": "Caduca d'aquí a {count} segons",
- "shared_link_individual_shared": "Individual compartit",
+ "shared_link_expires_second": "Caduca d’aquí a {count} segon",
+ "shared_link_expires_seconds": "Caduca d’aquí a {count} segons",
+ "shared_link_individual_shared": "Compartit individualment",
"shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Gestiona els enllaços compartits",
- "shared_link_options": "Opcions d'enllaços compartits",
- "shared_link_password_description": "Requereix una contrasenya per accedir a aquest enllaç compartit",
+ "shared_link_options": "Opcions dels enllaços compartits",
+ "shared_link_password_description": "Requereix una contrasenya per a accedir a aquest enllaç compartit",
"shared_links": "Enllaços compartits",
- "shared_links_description": "Comparteix fotos i vídeos amb un enllaç",
+ "shared_links_description": "Compartiu fotos i vídeos amb un enllaç",
"shared_photos_and_videos_count": "{assetCount, plural, other {# fotos i vídeos compartits.}}",
"shared_with_me": "Compartit amb mi",
"shared_with_partner": "Compartit amb {partner}",
- "sharing": "Compartit",
- "sharing_enter_password": "Introduïu la contrasenya per veure aquesta pàgina.",
- "shift_to_permanent_delete": "premeu ⇧ per suprimir el recurs permanentment",
- "show_album_options": "Mostra les opcions d'àlbum",
- "show_albums": "Mostrar àlbums",
- "show_all_people": "Veure totes les persones",
+ "sharing": "Compartits",
+ "sharing_enter_password": "Introduïu la contrasenya per a veure aquesta pàgina.",
+ "shift_to_permanent_delete": "premeu ⇧ per a suprimir el recurs permanentment",
+ "show_album_options": "Mostra les opcions de l’àlbum",
+ "show_albums": "Mostra els àlbums",
+ "show_all_people": "Mostra totes les persones",
"show_and_hide_people": "Mostra i amaga persones",
- "show_file_location": "Mostra l'ubicació del fitxer",
+ "show_file_location": "Mostra la ubicació del fitxer",
"show_gallery": "Mostra la galeria",
- "show_hidden_people": "Mostra persones ocultes",
+ "show_hidden_people": "Mostra les persones amagades",
"show_in_timeline": "Mostra a la cronologia",
- "show_in_timeline_setting_description": "Mostra fotos i vídeos d'aquest usuari a la cronologia",
- "show_keyboard_shortcuts": "Mostra dreceres de teclat",
- "show_less": "Mostra'n menys",
- "show_metadata": "Mostra metadades",
- "show_more_fields": "{count, plural, one {Veure # camp més} other {Veure # camps més}}",
- "show_or_hide_info": "Mostra o amaga informació",
- "show_password": "Mostra contrasenya",
- "show_person_options": "Mostra opcions de la persona",
- "show_progress_bar": "Mostra barra de progrés",
- "show_schema": "Mostrar esquema",
- "show_search_options": "Mostra opcions de cerca",
+ "show_in_timeline_setting_description": "Mostra les fotos i els vídeos d’aquest usuari a la cronologia",
+ "show_keyboard_shortcuts": "Mostra les dreceres del teclat",
+ "show_less": "Mostra’n menys",
+ "show_metadata": "Mostra les metadades",
+ "show_more_fields": "{count, plural, one {Mostra # camp més} other {Mostra # camps més}}",
+ "show_or_hide_info": "Mostra o amaga la informació",
+ "show_password": "Mostra la contrasenya",
+ "show_person_options": "Mostra les opcions de la persona",
+ "show_progress_bar": "Mostra la barra de progrés",
+ "show_schema": "Mostra l’esquema",
+ "show_search_options": "Mostra les opcions de cerca",
"show_shared_links": "Mostra els enllaços compartits",
- "show_slideshow_metadata_overlay": "Mostra informació sobre la imatge",
+ "show_slideshow_metadata_overlay": "Mostra la informació sobre la imatge",
"show_slideshow_transition": "Mostra la transició de la presentació de diapositives",
- "show_supporter_badge": "Insígnia de contribuent",
- "show_supporter_badge_description": "Mostra una insígnia de contributor",
+ "show_supporter_badge": "Insígnia de col·laborador",
+ "show_supporter_badge_description": "Mostra una insígnia de col·laborador",
"show_text_recognition": "Mostra el reconeixement de text",
- "show_text_search_menu": "Mostra el menú de cerca amb text",
- "shuffle": "Mescla",
+ "show_text_search_menu": "Mostra el menú de cerca per text",
+ "shuffle": "Mescla aleatòriament",
"sidebar": "Barra lateral",
"sidebar_display_description": "Mostra un enllaç a la vista a la barra lateral",
- "sign_out": "Tanca sessió",
- "sign_up": "Registrar-se",
+ "sign_out": "Tanca la sessió",
+ "sign_up": "Registra-m’hi",
"size": "Mida",
+ "skip": "Omet",
"skip_to_content": "Salta al contingut",
- "skip_to_folders": "Anar a carpetes",
- "skip_to_tags": "Anar a etiquetes",
- "slideshow": "Diapositives",
- "slideshow_metadata_overlay_mode": "Contingut de superposició",
- "slideshow_metadata_overlay_mode_description_only": "Descripció només",
+ "skip_to_folders": "Vés a les carpetes",
+ "skip_to_tags": "Vés a les etiquetes",
+ "slideshow": "Presentació de diapositives",
+ "slideshow_body": "Relaxeu-vos i mireu com es reprodueixen les vostres fotos en una presentació de diapositives a pantalla completa.",
+ "slideshow_metadata_overlay_mode": "Contingut superposat",
+ "slideshow_metadata_overlay_mode_description_only": "Només la descripció",
"slideshow_metadata_overlay_mode_full": "Tot",
"slideshow_repeat": "Repeteix la presentació de diapositives",
- "slideshow_repeat_description": "Torna al principi quan acaba la presentació de diapositives",
- "slideshow_settings": "Configuració de diapositives",
+ "slideshow_repeat_description": "Torna al principi quan acabi la presentació de diapositives",
+ "slideshow_settings": "Configuració de la presentació de diapositives",
+ "slideshow_title": "Presentació de diapositives",
"smart_album": "Àlbum inteŀligent",
- "some_assets_already_have_a_location_warning": "Alguns dels actius seleccionats ja tenen una ubicació",
- "sort_albums_by": "Ordena àlbums per...",
+ "some_assets_already_have_a_location_warning": "Alguns dels recursos seleccionats ja tenen una ubicació",
+ "sort_albums_by": "Ordena els àlbums per...",
"sort_created": "Data de creació",
- "sort_items": "Quantitat d'elements",
+ "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_people_by_similarity": "Ordena les persones per similitud",
"sort_recent": "Foto més recent",
"sort_title": "Títol",
"source": "Font",
"stack": "Apila",
"stack_action_prompt": "{count} apilats",
- "stack_duplicates": "Aplica duplicats",
+ "stack_duplicates": "Apila els duplicats",
"stack_selected_photos": "Apila les fotos seleccionades",
- "stacked_assets_count": "Apilats {count, plural, one {# element} other {# elements}}",
- "stacktrace": "Traça de pila",
+ "stacked_assets_count": "{count, plural, one {S’ha apilat # recurs} other {S’han apilat # recursos}}",
+ "stacktrace": "Traça de la pila",
"start": "Inicia",
"start_date": "Data inicial",
- "start_date_before_end_date": "La data d'inici ha de ser abans de la data de fi",
+ "start_date_before_end_date": "La data inicial ha de ser abans de la data final",
"state": "Regió",
"status": "Estat",
- "step_delete": "Elimina el pas",
- "step_delete_confirm": "Esteu segur que voleu eliminar el pas?",
+ "step_delete": "Suprimeix el pas",
+ "step_delete_confirm": "Segur que voleu suprimir aquest pas?",
"step_details": "Detalls del pas",
"steps": "Passos",
- "stop_casting": "Atura la transmisió",
- "stop_motion_photo": "Atura foto en moviment",
- "stop_photo_sharing": "Deixar de compartir les teves fotos?",
- "stop_photo_sharing_description": "{partner} no podrà tornar a accedir a les vostres fotos.",
+ "stop_casting": "Atura l’emissió",
+ "stop_motion_photo": "Atura la foto en moviment",
+ "stop_photo_sharing": "Voleu deixar de compartir les fotos?",
+ "stop_photo_sharing_description": "{partner} ja no podrà accedir a les vostres fotos.",
"stop_sharing_photos_with_user": "Deixa de compartir les fotos amb aquest usuari",
- "storage": "Emmagatzematge",
- "storage_label": "Etiquetatge d'emmagatzematge",
- "storage_quota": "Quota d'emmagatzematge",
+ "storage": "Espai d’emmagatzematge",
+ "storage_label": "Etiqueta d’emmagatzematge",
+ "storage_quota": "Quota d’emmagatzematge",
"storage_usage": "{used} de {available} en ús",
"submit": "Envia",
- "success": "Amb èxit",
+ "success": "Completat",
"suggestions": "Suggeriments",
"sunrise_on_the_beach": "Albada a la platja",
- "support": "Suport",
- "support_and_feedback": "Suport i comentaris",
- "support_third_party_description": "La vostra instal·lació immich la va empaquetar un tercer. Els problemes que experimenteu poden ser causats per aquest paquet així que, si us plau, plantegeu els poblemes amb ells en primer lloc mitjançant els enllaços següents.",
- "supporter": "Contribuïdor",
- "swap_merge_direction": "Intercanvia la direcció d'unió",
+ "support": "Assistència",
+ "support_and_feedback": "Assistència i comentaris",
+ "support_third_party_description": "La vostra instal·lació de l’Immich està empaquetada per un tercer. Els problemes que experimenteu poden ser causats per aquest paquet, de manera que comuniqueu els problemes en primer lloc amb ells mitjançant els enllaços següents.",
+ "supporter": "Col·laborador",
+ "swap_merge_direction": "Inverteix la direcció de la fusió",
"sync": "Sincronitza",
- "sync_albums": "Sincronitza àlbums",
- "sync_local": "Sincronitza localment",
- "sync_remote": "Sincronitza remotament",
- "sync_status": "Estat de la incronització",
- "sync_status_subtitle": "Observa i administra el sistema de sincronització",
- "sync_upload_album_setting_subtitle": "Creeu i pugeu les seves fotos i vídeos als àlbums seleccionats a Immich",
+ "sync_albums": "Sincronitza els àlbums",
+ "sync_local": "Sincronització local",
+ "sync_remote": "Sincronització remota",
+ "sync_status": "Estat de la sincronització",
+ "sync_status_subtitle": "Vegeu i gestioneu el sistema de sincronització",
+ "sync_upload_album_setting_subtitle": "Creeu i pugeu les vostres fotos i vídeos als àlbums seleccionats a l’Immich",
"system_theme": "Tema del sistema",
"system_theme_command_description": "Utilitza el tema del sistema ({value})",
"tag": "Etiqueta",
- "tag_assets": "Etiquetar actius",
- "tag_created": "Etiqueta creada: {tag}",
+ "tag_assets": "Etiqueta els recursos",
+ "tag_created": "S’ha creat l’etiqueta: {tag}",
"tag_face": "Etiqueta una cara",
- "tag_feature_description": "Exploreu fotos i vídeos agrupats per temes d'etiquetes lògiques",
- "tag_people": "Etiquetar personas",
- "tag_updated": "Etiqueta actualizada: {tag}",
- "tagged_assets": "{count, plural, one {#Etiquetat} other {#Etiquetats}} {count, plural, one {# actiu} other {# actius}}",
+ "tag_feature_description": "Exploreu fotos i vídeos agrupats per temes d’etiquetes lògiques",
+ "tag_people": "Etiqueta persones",
+ "tag_updated": "S’ha actualitzat l’etiqueta: {tag}",
+ "tagged_assets": "{count, plural, one {S’ha etiquetat # recurs} other {S’han etiquetat # recursos}}",
"tags": "Etiquetes",
- "tap_to_run_job": "Toca per executar el treball",
+ "tap_to_run_job": "Toqueu per a executar la tasca",
"template": "Plantilla",
"text_recognition": "Reconeixement de text",
"theme": "Tema",
- "theme_selection": "Selecció de tema",
+ "theme_selection": "Selecció del tema",
"theme_selection_description": "Activa automàticament el tema fosc o clar en funció de les preferències del sistema del navegador",
- "theme_setting_asset_list_storage_indicator_title": "Mostra l'indicador d'emmagatzematge als títols dels elements",
- "theme_setting_asset_list_tiles_per_row_title": "Nombre d'elements per fila ({count})",
- "theme_setting_colorful_interface_subtitle": "Apliqueu color primari a les superfícies de fons.",
- "theme_setting_colorful_interface_title": "Interfície colorida",
+ "theme_setting_asset_list_storage_indicator_title": "Mostra l’indicador d’emmagatzematge a les tessel·les dels recursos",
+ "theme_setting_asset_list_tiles_per_row_title": "Nombre de recursos per fila ({count})",
+ "theme_setting_colorful_interface_subtitle": "Aplica el color primari a les superfícies de fons.",
+ "theme_setting_colorful_interface_title": "Interfície acolorida",
"theme_setting_primary_color_subtitle": "Trieu un color per a les accions i els accents principals.",
"theme_setting_primary_color_title": "Color primari",
- "theme_setting_system_primary_color_title": "Utilitza color de sistema",
- "theme_setting_system_theme_switch": "Automàtic (Segueix la configuració del sistema)",
+ "theme_setting_system_primary_color_title": "Utilitza el color de sistema",
+ "theme_setting_system_theme_switch": "Automàtic (segueix la configuració del sistema)",
"then": "Aleshores",
- "they_will_be_merged_together": "Es combinaran",
+ "they_will_be_merged_together": "Es fusionaran",
"third_party_resources": "Recursos de tercers",
"time": "Temps",
"time_based_memories": "Records basats en el temps",
- "time_based_memories_duration": "Quants segons es mostrarà cada imatge.",
+ "time_based_memories_duration": "Nombre de segons que es mostrarà cada imatge.",
"timeline": "Cronologia",
- "timezone": "Fus horari",
- "to_archive": "Arxivar",
- "to_change_password": "Canviar la contrasenya",
- "to_favorite": "Prefereix",
- "to_login": "Iniciar sessió",
- "to_multi_select": "per multi-seleccionar",
- "to_parent": "Anar als pares",
- "to_select": "per seleccionar",
+ "timezone": "Zona horària",
+ "to_archive": "Arxiva",
+ "to_change_password": "Canvia la contrasenya",
+ "to_favorite": "Afegeix als preferits",
+ "to_login": "Inicia la sessió",
+ "to_multi_select": "per a seleccionar-ne múltiples",
+ "to_parent": "Vés al pare",
+ "to_select": "per a seleccionar",
"to_trash": "Paperera",
- "toggle_settings": "Canvia configuració",
+ "toggle_settings": "Commuta la configuració",
"toggle_theme_description": "Commuta el tema",
"total": "Total",
"total_usage": "Ús total",
"trash": "Paperera",
- "trash_action_prompt": "{count} mogudes a la brossa",
- "trash_all": "Envia-ho tot a la paperera",
- "trash_count": "Paperera {count, number}",
- "trash_delete_asset": "Esborra/Elimina element",
- "trash_no_results_message": "Les imatges i vídeos que s'enviïn a la paperera es mostraran aquí.",
- "trash_page_delete_all": "Eliminar-ho tot",
- "trash_page_info": "Els elements que s'enviïn a la paperera s'eliminaran permanentment després de {days} dies",
- "trashed_items_will_be_permanently_deleted_after": "Els elements que s'enviïn a la paperera s'eliminaran permanentment després de {days, plural, one {# dia} other {# dies}}.",
+ "trash_action_prompt": "{count, plural, one {S’ha mogut # recurs} other {S’han mogut # recursos}} a la paperera",
+ "trash_all": "Tot a la paperera",
+ "trash_count": "{count, number} a la paperera",
+ "trash_delete_asset": "Mou a la paperera/Suprimeix el recurs",
+ "trash_no_results_message": "Les imatges i vídeos que es moguin a la paperera es mostraran aquí.",
+ "trash_page_delete_all": "Suprimeix-ho tot",
+ "trash_page_info": "Els elements moguts a la paperera se suprimiran permanentment després de {days} dies",
+ "trashed_items_will_be_permanently_deleted_after": "Els elements moguts a la paperera se suprimiran permanentment després {days, plural, one {d’# dia} other {de # dies}}.",
"trigger": "Disparador",
- "trigger_asset_metadata_extraction": "Extracció de metadades d'actius",
- "trigger_asset_metadata_extraction_description": "Disparat quan s'extreuen les metadades EXIF d'un actiu",
- "trigger_asset_uploaded": "Càrrega de Mitjans",
- "trigger_asset_uploaded_description": "Es dispara quan un nou mitjà es puge al servidor",
- "trigger_person_recognized": "Persona identificada",
- "trigger_person_recognized_description": "Disparat quan es reconeix una persona",
+ "trigger_asset_metadata_extraction": "Extracció de metadades dels recursos",
+ "trigger_asset_metadata_extraction_description": "Es dispara quan s’extreuen les metadades EXIF d’un recurs",
+ "trigger_asset_uploaded": "Pujada de recursos",
+ "trigger_asset_uploaded_description": "Es dispara quan es puja un recurs nou",
+ "trigger_person_recognized": "Persona reconeguda",
+ "trigger_person_recognized_description": "Es dispara quan es reconeix una persona",
"troubleshoot": "Solució de problemes",
"type": "Tipus",
- "unable_to_change_pin_code": "No es pot canviar el codi PIN",
- "unable_to_check_version": "No es pot comprovar la versió de l'aplicació ni del servidor",
- "unable_to_setup_pin_code": "No s'ha pogut configurar el codi PIN",
- "unarchive": "Desarxivar",
- "unarchive_action_prompt": "{count} eliminades de l'arxiu",
- "unarchived_count": "{count, plural, other {# elements desarxivats}}",
- "undo": "Desfer",
- "unfavorite": "Reverteix preferit",
- "unfavorite_action_prompt": "{count} eliminades de preferits",
- "unhide_person": "Mostra persona",
+ "unable_to_change_pin_code": "No s’ha pogut canviar el codi PIN",
+ "unable_to_check_version": "No s’ha pogut comprovar la versió de l’aplicació ni del servidor",
+ "unable_to_setup_pin_code": "No s’ha pogut definir el codi PIN",
+ "unarchive": "Desarxiva",
+ "unarchive_action_prompt": "{count, plural, one {S’ha eliminat # recurs de l’arxiu} other {S’han eliminat # recursos de l’arxiu}}",
+ "unarchived_count": "{count, plural, one {S’ha desarxivat # recurs} other {S’han desarxivat # recursos}}",
+ "undo": "Desfés",
+ "unfavorite": "Elimina dels preferits",
+ "unfavorite_action_prompt": "{count, plural, one {S’ha eliminat # recurs dels preferits} other {S’han eliminat # recursos dels preferits}}",
+ "unhide_person": "Deixa d’amagar la persona",
"unknown": "Desconegut",
- "unknown_country": "País Desconegut",
+ "unknown_country": "País desconegut",
"unknown_date": "Data desconeguda",
+ "unknown_schema": "Esquema desconegut",
"unknown_year": "Any desconegut",
- "unlimited": "Il·limitat",
- "unlink_motion_video": "Desvincular vídeo en moviment",
- "unlink_oauth": "Desvincula OAuth",
- "unlinked_oauth_account": "Compte Oauth desvinculat",
- "unmute_memories": "Activar el so dels records",
+ "unlimited": "Il·limitada",
+ "unlink_motion_video": "Desenllaça el vídeo en moviment",
+ "unlink_oauth": "Desenllaça l’OAuth",
+ "unlinked_oauth_account": "S’ha desenllaçat el compte d’Oauth",
+ "unmute_memories": "Deixa de silenciar els records",
"unnamed_album": "Àlbum sense nom",
- "unnamed_album_delete_confirmation": "Segur que voleu esborrar aquest àlbum?",
- "unnamed_share": "Compartit sense nom",
+ "unnamed_album_delete_confirmation": "Segur que voleu suprimir aquest àlbum?",
+ "unnamed_share": "Compartició sense nom",
"unsaved_change": "Canvi no desat",
"unselect_all": "Deselecciona-ho tot",
- "unselect_all_duplicates": "Desmarqueu tots els duplicats",
+ "unselect_all_duplicates": "Deselecciona tots els duplicats",
"unstack": "Desapila",
- "unstack_action_prompt": "{count} sense apilar",
- "unstacked_assets_count": "No apilat {count, plural, one {# recurs} other {# recursos}}",
- "unsupported_field_type": "Tipus de camp no suportat",
- "unsupported_file_type": "No es pot carregar el fitxer {file} perquè el seu tipus de fitxer {type} no és compatible.",
+ "unstack_action_prompt": "{count, plural, one {S’ha desapilat # recurs} other {S’han desapilat # recursos}}",
+ "unstacked_assets_count": "{count, plural, one {S’ha desapilat # recurs} other {S’han desapilat # recursos}}",
+ "unsupported_field_type": "Tipus de camp no admès",
+ "unsupported_file_type": "No es pot carregar el fitxer {file} perquè no s’admet el seu tipus de fitxer {type}.",
"untagged": "Sense etiqueta",
- "up_next": "Pròxim",
- "update_location_action_prompt": "Actualitza la ubicació de {count} elements seleccionats amb:",
+ "up_next": "A continuació",
+ "update_location_action_prompt": "Actualitza la ubicació dels {count} recursos seleccionats a:",
"updated_at": "Actualitzat",
- "updated_password": "Contrasenya actualitzada",
- "upload": "Pujar",
+ "updated_password": "S’ha actualitzat la contrasenya",
+ "upload": "Puja",
"upload_concurrency": "Concurrència de pujades",
"upload_day_count": "{date}: {count, plural, one {# pujada} other {# pujades}}",
- "upload_details": "Detalls de la Pujada",
- "upload_error_with_count": "Error en la càrrega de {count, plural, one {# actiu} other {# actius}}",
- "upload_errors": "Càrrega completada amb {count, plural, one {# error} other {# errors}}, actualitzeu la pàgina per veure els nous elements carregats.",
- "upload_finished": "Pujada finalitzada",
- "upload_progress": "Restant {remaining, number} - Processat {processed, number}/{total, number}",
- "upload_skipped_duplicates": "{count, plural, one {S'ha omès # recurs duplicat} other {S'han omès # recursos duplicats}}",
+ "upload_details": "Detalls de la pujada",
+ "upload_error_with_count": "S’ha produït un error en la pujada {count, plural, one {d’# recurs} other {de # recursos}}",
+ "upload_errors": "S’ha completat la pujada amb {count, plural, one {# error} other {# errors}}; actualitzeu la pàgina per a veure els nous recursos pujats.",
+ "upload_finished": "Ha finalitzat la pujada",
+ "upload_progress": "Restants {remaining, number} - Processats {processed, number}/{total, number}",
+ "upload_skipped_duplicates": "{count, plural, one {S’ha omès # recurs duplicat} other {S’han omès # recursos duplicats}}",
"upload_status_duplicates": "Duplicats",
"upload_status_errors": "Errors",
- "upload_status_uploaded": "Carregat",
- "upload_success": "Pujada correcta, actualitza la pàgina per veure nous recursos de pujada.",
- "upload_to_immich": "Puja a Immich ({count})",
- "uploading": "Pujant",
- "uploading_media": "Pujant mitjans",
+ "upload_status_uploaded": "Pujat",
+ "upload_success": "La pujada s’ha completat; actualitzeu la pàgina per a veure els nous recursos pujats.",
+ "upload_to_album_body": "Per als usuaris que no utilitzen la funció de pujada manual, ara és possible triar afegir fotos locals directament a un àlbum a l’hora de penjar-les: ja no cal penjar-les i després afegir-nes a un àlbum.",
+ "upload_to_album_title": "Puja directament a un àlbum",
+ "upload_to_immich": "Puja a l’Immich ({count})",
+ "uploading": "S’està pujant",
+ "uploading_media": "S’estan pujant els mitjans",
"uploads": "Pujades",
"uploads_count": "{count, plural, one {# pujada} other {# pujades}}",
"url": "URL",
"usage": "Ús",
- "use_biometric": "Empra biometria",
- "use_browser_locale": "Fer servir la localització del navegador",
- "use_browser_locale_description": "Formatejar dates, hores i números segons la llengua i regió del navegador",
+ "use_biometric": "Utilitza la biometria",
+ "use_browser_locale": "Utilitza la localització del navegador",
+ "use_browser_locale_description": "Formata les dates, les hores i els números segons la llengua i la regió del navegador",
"use_current_connection": "Utilitza la connexió actual",
- "use_custom_date_range": "Fes servir un rang de dates personalitzat",
+ "use_custom_date_range": "Utilitza un interval de dates personalitzat",
"use_template": "Utilitza la plantilla",
"user": "Usuari",
- "user_has_been_deleted": "Aquest usuari ha sigut eliminat.",
- "user_id": "ID d'usuari",
- "user_liked": "A {user} li ha agradat {type, select, photo {aquesta foto} video {aquest vídeo} asset {aquest recurs} other {}}",
+ "user_has_been_deleted": "Aquest usuari s’ha eliminat.",
+ "user_id": "Identificador d’usuari",
+ "user_liked": "A {user} li ha agradat {type, select, photo {aquesta foto} video {aquest vídeo} asset {aquest recurs} other {això}}",
"user_pin_code_settings": "Codi PIN",
- "user_pin_code_settings_description": "Gestiona el teu codi PIN",
- "user_privacy": "Privadesa d'Usuari",
+ "user_pin_code_settings_description": "Gestioneu el vostre codi PIN",
+ "user_privacy": "Privacitat de l’usuari",
"user_purchase_settings": "Compra",
- "user_purchase_settings_description": "Gestiona la teva compra",
- "user_usage_detail": "Detall d'ús d'usuari",
- "user_usage_stats": "Estadístiques d'ús de del compte",
- "user_usage_stats_description": "Veure les estadístiques d'ús del compte",
- "username": "Nom d'usuari",
+ "user_purchase_settings_description": "Gestioneu la vostra compra",
+ "user_usage_detail": "Detall d’ús de l’usuari",
+ "user_usage_stats": "Estadístiques d’ús del compte",
+ "user_usage_stats_description": "Mostra les estadístiques d’ús del compte",
+ "username": "Nom d’usuari",
"users": "Usuaris",
- "users_added_to_album_count": "{count, plural, one {S'ha afegit # usuari} other {S'han afegit # usuaris}} a l'àlbum",
+ "users_added_to_album_count": "{count, plural, one {S’ha afegit # usuari} other {S’han afegit # usuaris}} a l’àlbum",
"utilities": "Utilitats",
"validate": "Valida",
- "validate_endpoint_error": "Per favor introdueix un URL vàlid",
+ "validate_endpoint_error": "Introduïu un URL vàlid",
"variables": "Variables",
"version": "Versió",
- "version_announcement_closing": "El teu amic Alex",
- "version_announcement_message": "Hola! Hi ha una nova versió d'Immich, si us plau, preneu-vos una estona per llegir les notes de llançament per assegurar que la teva configuració estigui actualitzada per evitar qualsevol error de configuració, especialment si utilitzeu WatchTower o qualsevol mecanisme que gestioni l'actualització automàtica de la vostra instància Immich.",
+ "version_announcement_closing": "El vostre amic Alex",
+ "version_announcement_message": "Bon dia! Hi ha disponible una nova versió de l’Immich. Preneu-vos una estona per a llegir les notes del llançament i assegurar-vos que la vostra configuració estigui actualitzada per a evitar qualsevol error de configuració, especialment si utilitzeu WatchTower o qualsevol mecanisme que gestioni l’actualització automàtica de la vostra instància de l’Immich.",
"version_history": "Historial de versions",
- "version_history_item": "Instal·lat {version} el {date}",
+ "version_history_item": "S’ha instal·lat {version} el {date}",
"video": "Vídeo",
- "video_hover_setting": "Reprodueix la miniatura en passar el ratolí",
- "video_hover_setting_description": "Reprodueix la miniatura quan el ratolí plana sobre l'element. Fins i tot quan estigui deshabilitat, la reproducció s'iniciarà planant sobre el botó de reproducció.",
+ "video_hover_setting": "Reprodueix la miniatura del vídeo en posar-s’hi",
+ "video_hover_setting_description": "Reprodueix la miniatura del vídeo en passar-hi el ratolí per sobre. Fins i tot quan estigui desactivat, la reproducció s’iniciarà si es passa el ratolí per sobre de la icona de reproducció.",
"video_quality": "Qualitat del vídeo",
"videos": "Vídeos",
"videos_count": "{count, plural, one {# vídeo} other {# vídeos}}",
- "view": "Veure",
- "view_album": "Veure l'àlbum",
- "view_all": "Veure tot",
- "view_all_users": "Mostra tot els usuaris",
- "view_asset_owners": "Veure els propietaris dels actius",
- "view_details": "Veure Detalls",
- "view_in_timeline": "Mostrar a la línia de temps",
- "view_link": "Veure enllaç",
- "view_name": "Veure",
- "view_next_asset": "Mostra el següent element",
- "view_previous_asset": "Mostra l'element anterior",
- "view_qr_code": "Veure codi QR",
- "view_similar_photos": "Veure fotos similars",
- "view_stack": "Veure la pila",
+ "view": "Visualització",
+ "view_album": "Mostra l’àlbum",
+ "view_all": "Mostra-ho tot",
+ "view_all_users": "Mostra tots els usuaris",
+ "view_asset_owners": "Mostra els propietaris dels recursos",
+ "view_details": "Mostra els detalls",
+ "view_in_timeline": "Mostra a la cronologia",
+ "view_link": "Mostra l’enllaç",
+ "view_name": "Mostra",
+ "view_next_asset": "Mostra el recurs següent",
+ "view_previous_asset": "Mostra el recurs anterior",
+ "view_qr_code": "Mostra el codi QR",
+ "view_similar_photos": "Mostra les fotos similars",
+ "view_stack": "Mostra la pila",
"viewer_remove_from_stack": "Elimina de la pila",
"visibility": "Visibilitat",
- "visibility_changed": "La visibilitat ha canviat per {count, plural, one {# persona} other {# persones}}",
+ "visibility_changed": "S’ha canviat la visibilitat {count, plural, one {d’# persona} other {de # persones}}",
"visual": "Visual",
- "waiting": "Esperant",
- "waiting_count": "Esperant: {count}",
- "warning": "Avís",
+ "waiting": "En espera",
+ "waiting_count": "En espera: {count}",
+ "warning": "Advertència",
"week": "Setmana",
- "welcome": "Benvingut",
- "welcome_to_immich": "Benvingut a immich",
+ "welcome": "Us donem la benvinguda",
+ "welcome_to_immich": "Us donem la benvinguda a l’Immich",
+ "whats_new": "Novetats",
+ "whats_new_settings_subtitle": "Vegeu les novetats de l’Immich",
+ "whats_new_version": "Versió {version}",
"when": "Quan",
"width": "Amplada",
- "wifi_name": "Nom Wi-Fi",
+ "wifi_name": "Nom de la Wi-Fi",
"workflow": "Flux de treball",
- "workflow_delete_prompt": "Segur que vols eliminar aquesta automatització?",
- "workflow_deleted": "Automatització eliminada",
- "workflow_description": "Descripció de l'automatització",
- "workflow_info": "Informació de l'automatització",
- "workflow_json": "JSON de l'automatització",
- "workflow_json_help": "Edita la configuració de l'automatització en format JSON. Els canvis es sincronitzaran amb el constructor visual.",
- "workflow_name": "Nom de l'automatització",
- "workflow_navigation_prompt": "Segur que vols sortir sense desar els canvis?",
- "workflow_summary": "Resum de l'automatització",
+ "workflow_delete_prompt": "Segur que voleu suprimir aquest flux de treball?",
+ "workflow_deleted": "S’ha suprimit el flux de treball",
+ "workflow_description": "Descripció del flux de treball",
+ "workflow_info": "Informació del flux de treball",
+ "workflow_json": "JSON del flux de treball",
+ "workflow_json_help": "Editeu la configuració del flux de treball en format JSON. Els canvis se sincronitzaran amb el constructor visual.",
+ "workflow_name": "Nom del flux de treball",
+ "workflow_navigation_prompt": "Segur que voleu sortir sense desar els canvis?",
+ "workflow_summary": "Resum del flux de treball",
"workflow_templates": "Plantilles de fluxos de treball",
- "workflow_update_success": "Automatització actualitzada amb èxit",
- "workflows": "Automatitzacions",
- "workflows_help_text": "Les automatitzacions realitzen accions automàticament sobre els teus mitjans basant-se en disparadors i filtres",
- "wrong_pin_code": "Codi PIN incorrecte",
+ "workflow_update_success": "S’ha actualitzat el flux de treball correctament",
+ "workflows": "Fluxos de treball",
+ "workflows_help_text": "Els fluxos de treball automatitzen accions sobre els vostres recursos basant-se en disparadors i filtres",
+ "wrong_pin_code": "El codi PIN no és correcte",
"x_of_total": "{x}/{total}",
"year": "Any",
"years_ago": "Fa {years, plural, one {# any} other {# anys}}",
"yes": "Sí",
- "you_dont_have_any_shared_links": "No tens cap enllaç compartit",
- "your_wifi_name": "Nom del teu Wi-Fi",
- "zero_to_clear_rating": "prem 0 per a buidar la valoració",
- "zoom_image": "Ampliar Imatge"
+ "you_dont_have_any_shared_links": "No teniu cap enllaç compartit",
+ "your_wifi_name": "Nom de la vostra Wi-Fi",
+ "zero_to_clear_rating": "premeu 0 per a esborrar la puntuació del recurs",
+ "zoom_image": "Amplia la imatge"
}
diff --git a/i18n/cs.json b/i18n/cs.json
index 10fecebc99..ccf5b931b7 100644
--- a/i18n/cs.json
+++ b/i18n/cs.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Kvalita miniatur od 1 do 100. Vyšší je lepší, ale vytváří větší soubory a může snížit odezvu aplikace.",
"image_thumbnail_title": "Miniatury",
"import_config_from_json_description": "Importujte konfiguraci systému nahráním konfiguračního JSON souboru",
+ "integrity_checks_checksum_files": "Kontrolní součty souborů",
+ "integrity_checks_checksum_files_description": "Nastavení kontroly kontrolního součtu",
+ "integrity_checks_checksum_files_enable_description": "Zapnout kontrolu kontrolního součtu",
+ "integrity_checks_checksum_files_percentage_limit": "Procentuální limit",
+ "integrity_checks_checksum_files_percentage_limit_description": "Nastavte maximální procentuální hodnotu v rozmezí 0.01 až 1, která určuje, jak často se má v daném intervalu provádět kontrola kontrolního součtu.",
+ "integrity_checks_checksum_files_time_limit": "Časový limit",
+ "integrity_checks_checksum_files_time_limit_description": "Nastavte maximální dobu, po kterou by měla v každém intervalu probíhat kontrola kontrolního součtu. (ms)",
+ "integrity_checks_missing_files": "Chybějící soubory",
+ "integrity_checks_missing_files_description": "Nastavte frekvenci a zapněte nebo vypněte kontrolu chybějících souborů",
+ "integrity_checks_missing_files_enable_description": "Zapnout kontrolu chybějících souborů",
+ "integrity_checks_settings": "Kontroly integrity",
+ "integrity_checks_settings_description": "Správa intervalů kontrol integrity",
+ "integrity_checks_untracked_files": "Nesledované soubory",
+ "integrity_checks_untracked_files_description": "Nastavte frekvenci a zapněte nebo vypněte kontrolu nesledovaných souborů",
+ "integrity_checks_untracked_files_enable_description": "Zapnout kontrolu nesledovaných souborů",
"job_concurrency": "Souběžnost úlohy {job}",
"job_created": "Úloha vytvořena",
"job_not_concurrency_safe": "Tato úloha není bezpečená pro souběh.",
@@ -189,7 +204,7 @@
"maintenance_delete_error": "Nepodařilo se smazat zálohu.",
"maintenance_integrity_check": "Zkontrolovat",
"maintenance_integrity_check_all": "Zkontrolovat vše",
- "maintenance_integrity_checksum_mismatch": "Neshoda kontrolního součtu",
+ "maintenance_integrity_checksum_mismatch": "Neshoda kontrol. součtu",
"maintenance_integrity_checksum_mismatch_description": "Soubory, u nichž se kontrolní součet na disku neshoduje s kontrolním součtem, který Immich uložil do své databáze.",
"maintenance_integrity_checksum_mismatch_job": "Kontrola shod kontrolních součtů",
"maintenance_integrity_checksum_mismatch_refresh_job": "Obnovit hlášení o neshodách kontrolních součtů",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Umožňuje provádět překódování v reálném čase během přenosu videa. Zpřístupní přepínání kvality, ale v závislosti na výkonu serveru může docházet k delším zpožděním při přehrávání a k trhanému přehrávání.",
"transcoding_realtime_enabled": "Povolit překódování v reálném čase",
"transcoding_realtime_enabled_description": "Pokud je zakázáno, server odmítne spustit nové relace překódování v reálném čase.",
+ "transcoding_realtime_resolutions": "Rozlišení",
+ "transcoding_realtime_resolutions_description": "Nabízená rozlišení pro transkódování v reálném čase. Vyšší rozlišení mohou způsobit problémy s přehráváním, pokud je server nedokáže dostatečně rychle transkódovat.",
+ "transcoding_realtime_video_codecs": "Videokodeky",
+ "transcoding_realtime_video_codecs_description": "Videokodeky nabízené pro transkódování v reálném čase. Klienti si při přehrávání vyberou nejlepší variantu, kterou podporují. AV1 je efektivnější než HEVC, který je zase efektivnější než H.264. Při použití hardwarové akcelerace vyberte pouze ty kodeky, které akcelerátor dokáže kódovat. Při použití softwarového transkódování mějte na paměti, že H.264 je rychlejší než AV1, který je zase rychlejší než HEVC.",
"transcoding_reference_frames": "Referenční snímky",
"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",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Prohlížeč",
"assets": "Položky",
"assets_added_to_album_count": "Do alba {count, plural, one {byla přidána # položka} few {byly přidány # položky} other {bylo přidáno # položek}}",
+ "assets_added_to_album_partial_count": "Do alba bylo přidáno {successCount} z {totalCount} {totalCount, plural, one {aktiv} other {aktiv}}",
"assets_added_to_albums_count": "{assetTotal, plural, one {Přidána # položka} few{Přidány # položky} other {Přidáno # položek}} do {albumTotal, plural, one {# alba} other {# alb}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Položku} other {Položky}} nelze přidat do alba",
"assets_cannot_be_added_to_albums": "{count, plural, one {Položku} other {Položky}} nelze přidat do žádného z alb",
@@ -794,7 +814,6 @@
"custom_date": "Vlastní datum",
"custom_locale": "Vlastní lokalizace",
"custom_locale_description": "Formátovat datumy, časy a čísla podle vybraného jazyka a oblasti",
- "custom_url": "Vlastní URL",
"cutoff_date_description": "Zanechat fotografie a videa z posledních…",
"cutoff_day": "{count, plural, one {den} few {dny} other {dnů}}",
"cutoff_year": "{count, plural, one {rok} few {roky} other {let}}",
@@ -1461,6 +1480,7 @@
"never": "Nikdy",
"new_album": "Nové album",
"new_api_key": "Nový API klíč",
+ "new_feature": "Nová funkce",
"new_password": "Nové heslo",
"new_person": "Nová osoba",
"new_pin_code": "Nový PIN kód",
@@ -1504,6 +1524,7 @@
"not_available": "Není k dispozici",
"not_in_any_album": "Bez alba",
"not_selected": "Není vybráno",
+ "not_set": "Nenastaveno",
"notes": "Poznámky",
"nothing_here_yet": "Zatím zde nic není",
"notification_backup_reliability": "Povolte oznámení pro zlepšení spolehlivosti zálohování na pozadí",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Konfigurátor Obtainium",
"obtainium_configurator_instructions": "Pomocí aplikace Obtainium nainstalujte a aktualizujte aplikaci pro Android přímo z vydání na GitHubu Immich. Vytvořte API klíč a vyberte variantu pro vytvoření konfiguračního odkazu pro Obtainium",
"ocr": "OCR",
+ "ocr_body": "Immich nyní rozpoznává text na vašich fotografiích, takže je můžete vyhledávat podle toho, co je na nich napsáno.",
+ "ocr_title": "Vyhledávání textu ve vašich fotografiích",
"official_immich_resources": "Oficiální zdroje Immich",
"offline": "Offline",
"offset": "Posun",
@@ -1539,6 +1562,8 @@
"open": "Otevřít",
"open_calendar": "Otevřít kalendář",
"open_in_browser": "Otevřít v prohlížeči",
+ "open_in_immich_body": "Nastavte si v systému Android aplikaci Immich jako svou galerii, abyste mohli otevírat fotografie přímo z jiných aplikací.",
+ "open_in_immich_title": "Otevřít fotografie v Immichi",
"open_in_map_view": "Otevřít v zobrazení mapy",
"open_in_openstreetmap": "Otevřít v OpenStreetMap",
"open_the_search_filters": "Otevřít vyhledávací filtry",
@@ -1596,7 +1621,7 @@
"person": "Osoba",
"person_age_months": "{months, plural, one {# měsíc} few {# měsíce} other {# měsíců}}",
"person_age_year_months": "1 rok a {months, plural, one {# měsíc} few {# měsíce} other {# měsíců}}",
- "person_age_years": "{years, plural, one {# rok} few {# roky} other {# let}}",
+ "person_age_years": "{years, plural, one {# rok} other {# let}} starý/á",
"person_birthdate": "Narozen(a) {date}",
"person_hidden": "{name}{hidden, select, true { (skryto)} other {}}",
"person_recognized": "Osoba rozpoznána",
@@ -1697,7 +1722,10 @@
"recent": "Nedávné",
"recent_searches": "Nedávná vyhledávání",
"recently_added": "Nedávno přidané",
+ "recently_added_body": "Přejděte přímo na speciální stránku, kde najdete vše, co jste v poslední době přidali.",
+ "recently_added_description": "Prohlížejte si svá média seřazená podle data, kdy byla nahrána do Immiche",
"recently_added_page_title": "Nedávno přidané",
+ "recently_added_title": "Nedávno přidané",
"recently_taken": "Nedávno pořízené",
"refresh": "Obnovit",
"refresh_encoded_videos": "Obnovit kódovaná videa",
@@ -1879,7 +1907,7 @@
"set_slideshow_to_fullscreen": "Nastavit prezentaci na celou obrazovku",
"set_stack_primary_asset": "Nastavit jako hlavní položku",
"setting_image_navigation_enable_subtitle": "Pokud je zapnuto, budete moci přejít na předchozí/další obrázek klepnutím do levé/pravé čtvrtiny obrazovky.",
- "setting_image_navigation_enable_title": "Klepněte pro navigaci",
+ "setting_image_navigation_enable_title": "Klepnutí pro navigaci",
"setting_image_navigation_title": "Navigace mezi obrázky",
"setting_image_viewer_help": "V prohlížeči detailů se nejprve načte malá miniatura, poté se načte náhled střední velikosti (je-li povolen) a nakonec se načte originál (je-li povolen).",
"setting_image_viewer_original_subtitle": "Umožňuje načíst původní obrázek v plném rozlišení (velký!). Zakažte pro snížení využití dat (v síti i v mezipaměti zařízení).",
@@ -1904,6 +1932,8 @@
"share_link": "Sdílet odkaz",
"share_original": "Použít originál (velký)",
"share_preview": "Použít miniaturu (malý)",
+ "share_quality_body": "Při sdílení stiskněte a podržte tlačítko sdílení pro výběr kvality obrázku.",
+ "share_quality_title": "Vyberte si kvalitu sdílení",
"shared": "Sdílené",
"shared_album_activities_input_disable": "Komentář je vypnutý",
"shared_album_activity_remove_content": "Chcete odstranit tuto aktivitu?",
@@ -1918,7 +1948,9 @@
"shared_link_app_bar_title": "Sdílené odkazy",
"shared_link_clipboard_copied_massage": "Zkopírováno do schránky",
"shared_link_create_error": "Chyba při vytváření sdíleného odkazu",
- "shared_link_custom_url_description": "Přístup k tomuto sdílenému odkazu pomocí vlastního URL",
+ "shared_link_custom_url_description": "Otevřete tento sdílený odkaz pomocí vlastního názvu URL",
+ "shared_link_custom_url_title": "Vlastní URL",
+ "shared_link_custom_url_warning": "Upozornění: vlastní název URL obsahující lomítko se nemusí chovat tak, jak očekáváte.",
"shared_link_edit_description_hint": "Zadejte popis sdílení",
"shared_link_edit_expire_after_option_day": "1 den",
"shared_link_edit_expire_after_option_days": "{count} dní",
@@ -1985,16 +2017,19 @@
"sign_out": "Odhlásit se",
"sign_up": "Zaregistrovat se",
"size": "Velikost",
+ "skip": "Přeskočit",
"skip_to_content": "Přejít na obsah",
"skip_to_folders": "Přeskočit na složky",
"skip_to_tags": "Přeskočit na značky",
"slideshow": "Prezentace",
+ "slideshow_body": "Posaďte se a sledujte, jak se vaše fotografie promítají v prezentaci na celé obrazovce.",
"slideshow_metadata_overlay_mode": "Obsah překryvného panelu",
"slideshow_metadata_overlay_mode_description_only": "Pouze popis",
"slideshow_metadata_overlay_mode_full": "Úplný",
"slideshow_repeat": "Opakovat prezentaci",
"slideshow_repeat_description": "Po skončení prezentace se vrátit na začátek",
"slideshow_settings": "Nastavení prezentace",
+ "slideshow_title": "Prezentace",
"smart_album": "Chytré album",
"some_assets_already_have_a_location_warning": "Některé z vybraných položek již mají polohu",
"sort_albums_by": "Seřadit alba podle...",
@@ -2070,7 +2105,7 @@
"theme_setting_primary_color_subtitle": "Zvolte barvu pro hlavní akce a zvýraznění.",
"theme_setting_primary_color_title": "Hlavní barva",
"theme_setting_system_primary_color_title": "Použít systémovou barvu",
- "theme_setting_system_theme_switch": "Automaticky (podle systemového nastavení)",
+ "theme_setting_system_theme_switch": "Automaticky (podle systému)",
"then": "Pak",
"they_will_be_merged_together": "Budou sloučeny dohromady",
"third_party_resources": "Zdroje třetích stran",
@@ -2122,6 +2157,7 @@
"unknown": "Neznámý",
"unknown_country": "Neznámá země",
"unknown_date": "Neznámé datum",
+ "unknown_schema": "Neznámé schéma",
"unknown_year": "Neznámý rok",
"unlimited": "Neomezeně",
"unlink_motion_video": "Odpojit pohyblivé video",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "Chyby",
"upload_status_uploaded": "Nahráno",
"upload_success": "Nahrání proběhlo úspěšně, obnovením stránky se zobrazí nově nahrané položky.",
+ "upload_to_album_body": "Uživatelé, kteří nevyužívají funkci ručního nahrávání, si nyní mohou zvolit, zda chtějí lokální fotografie přidávat přímo do alba již při jejich nahrávání, již není nutné je nejprve nahrát a teprve poté přidat do alba.",
+ "upload_to_album_title": "Nahrát přímo do alba",
"upload_to_immich": "Nahrát do Immich ({count})",
"uploading": "Nahrávání",
"uploading_media": "Nahrávání médií",
@@ -2224,6 +2262,9 @@
"week": "Týden",
"welcome": "Vítejte",
"welcome_to_immich": "Vítejte v Immichi",
+ "whats_new": "Co je nového",
+ "whats_new_settings_subtitle": "Podívejte se, co je nového v Immichi",
+ "whats_new_version": "Verze {version}",
"when": "Kdy",
"width": "Šířka",
"wifi_name": "Název Wi-Fi",
diff --git a/i18n/da.json b/i18n/da.json
index 414ec38167..9daed30b52 100644
--- a/i18n/da.json
+++ b/i18n/da.json
@@ -73,6 +73,7 @@
"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",
+ "download_csv": "Hent CSV",
"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.",
"export_config_as_json_description": "Download den aktuelle systemkonfiguration som en JSON-fil",
@@ -107,6 +108,21 @@
"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",
"import_config_from_json_description": "Importer systemkonfiguration ved at uploade en JSON-konfigurationsfil",
+ "integrity_checks_checksum_files": "Checksum-filer",
+ "integrity_checks_checksum_files_description": "Konfigurer checksum-filerne",
+ "integrity_checks_checksum_files_enable_description": "Aktiver checksum tjek",
+ "integrity_checks_checksum_files_percentage_limit": "Procent grænse",
+ "integrity_checks_checksum_files_percentage_limit_description": "Konfigurer den maksimano procent mellem 0.001 og 1 for hvor meget checksum tjek skal kører hver omgang.",
+ "integrity_checks_checksum_files_time_limit": "Tidsgrænse",
+ "integrity_checks_checksum_files_time_limit_description": "Konfigurer den maksimale periode for hvilken checksum tjekket skal nå på hvert interval. (ms)",
+ "integrity_checks_missing_files": "Mangler filer",
+ "integrity_checks_missing_files_description": "Konfigurer frekvensen og tædn eller sluk for manglende filer tjek",
+ "integrity_checks_missing_files_enable_description": "Aktivér tjekket for manglende filer",
+ "integrity_checks_settings": "Integritetstjek",
+ "integrity_checks_settings_description": "Administrer integritetstjeks intervaller",
+ "integrity_checks_untracked_files": "Ikke-registreret filer",
+ "integrity_checks_untracked_files_description": "Konfigurer hyppigheden og aktiver eller deaktiver kontrollen af ikke-registreret filer",
+ "integrity_checks_untracked_files_enable_description": "Aktivér kontrol af ikke-registreret filer",
"job_concurrency": "{job} samtidighed",
"job_created": "opgaven er skabt",
"job_not_concurrency_safe": "Denne opgave er ikke sikker at køre samtidigt med andre.",
@@ -182,9 +198,25 @@
"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’en for maskinlæringsserveren. Hvis mere end én URL angives, vil hver server blive forsøgt én ad gangen, indtil en svarer succesfuldt, i rækkefølge fra første til sidste. Servere, der ikke svarer, vil midlertidigt blive ignoreret, indtil de kommer online igen.",
+ "maintenance_backup_management": "Backup administration",
"maintenance_delete_backup": "Slet Backup",
"maintenance_delete_backup_description": "Denne fil vil blive slettet permanent.",
"maintenance_delete_error": "Sletning af backup fejlede.",
+ "maintenance_integrity_check": "Kontroller",
+ "maintenance_integrity_check_all": "Kontroller alle",
+ "maintenance_integrity_checksum_mismatch": "Checksum uoverensstemmelse",
+ "maintenance_integrity_checksum_mismatch_description": "Filer hvis checksum på disken ikke stemmer overens med den checksum, Immich har gemt i sin database.",
+ "maintenance_integrity_checksum_mismatch_job": "Kontroller for uoverensstemmelser i checksum",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "Opdater rapporter om uoverensstemmelser i checksum",
+ "maintenance_integrity_missing_file": "Manglende filer",
+ "maintenance_integrity_missing_file_description": "Filer som Immich har i sin database, men som ikke findes i filsystemet.",
+ "maintenance_integrity_missing_file_job": "Tjek for manglende filer",
+ "maintenance_integrity_missing_file_refresh_job": "Opdater rapporter om manglende filer",
+ "maintenance_integrity_report": "Integritetsrapport",
+ "maintenance_integrity_untracked_file": "Ikke-registreret filer",
+ "maintenance_integrity_untracked_file_description": "Filer i Immichs mapper, som Immich ikke har nogen registrering af.",
+ "maintenance_integrity_untracked_file_job": "Tjek for ikke-registreret filer",
+ "maintenance_integrity_untracked_file_refresh_job": "Opdater rapporter om ikke-registreret filer",
"maintenance_restore_backup": "Genskab backup",
"maintenance_restore_backup_description": "Immich bliver slettet og genskabt fra den valgte backup. Der vil blive taget en backup før du fortsætter.",
"maintenance_restore_backup_different_version": "Denne backup blev lavet med en anden version af Immich!",
@@ -399,6 +431,10 @@
"transcoding_realtime_description": "Tillader transkodning i realtid, mens videoen streames. Muliggør kvalitetsskifte, men kan forårsage højere afspilningsforsinkelse og hakken afhængigt af serverens kapacitet.",
"transcoding_realtime_enabled": "Aktiver real-time transkodning",
"transcoding_realtime_enabled_description": "Hvis deaktiveret, kan serveren ikke starte nye realtids transkodningssessioner.",
+ "transcoding_realtime_resolutions": "Opløsninger",
+ "transcoding_realtime_resolutions_description": "Opløsninger tilgængelig for realtidstranskodning. Højere opløsninger kan forårsage afspilningsproblemer, hvis serveren ikke kan transkode dem hurtigt nok.",
+ "transcoding_realtime_video_codecs": "Video codecs",
+ "transcoding_realtime_video_codecs_description": "De video codecs, tilgængelig for realtidstranskodning. Klienter vælger den bedste mulighed, de understøtter under afspilning. AV1 er mere effektiv end HEVC, som er mere effektiv end H.264. Når du bruger hardwareacceleration, skal du kun vælge de codecs, som acceleratoren kan enkode. Når du bruger softwaretranskodning, skal du bemærke, at H.264 er hurtigere end AV1, som er hurtigere end HEVC.",
"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",
@@ -561,6 +597,7 @@
"asset_viewer_settings_title": "Billedviser",
"assets": "Objekter",
"assets_added_to_album_count": "{count, plural, one {# mediefil} other {# mediefiler}} tilføjet til albummet",
+ "assets_added_to_album_partial_count": "Tilføjede {successCount} ud af {totalCount} {totalCount, plural, one {mediefil} other {mediefiler}} til albummet",
"assets_added_to_albums_count": "Tilføjet {assetTotal, plural, one {# asset} other {# assets}} til {albumTotal, plural, one {# album} other {# albums}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Billed} other {Billeder}} kan ikke blive tilføjet til album",
"assets_cannot_be_added_to_albums": "{count, plural, one {Asset} other {Assets}} kan ikke føjes til i nogen af albummerne",
@@ -777,7 +814,6 @@
"custom_date": "Brugerdefineret dato",
"custom_locale": "Brugerdefineret lokale",
"custom_locale_description": "Formatér datoer, klokkeslæt og tal baseret på det valgte sprog og den valgte region",
- "custom_url": "Tilpasset URL",
"cutoff_date_description": "Behold fotos fra den sidste…",
"cutoff_day": "{count, plural, one {dag} other {dage}}",
"cutoff_year": "{count, plural, one {år} other {år}}",
@@ -794,6 +830,8 @@
"day": "Dag",
"days": "Dage",
"deduplicate_all": "Dedubliker alle",
+ "default_quality_subtitle": "Kvalitet brugt ved tryk på 'del'. Tryk længe på dele-knappen for at vælge hver gang.",
+ "default_share_quality": "Standard delingskvalitet",
"delete": "Slet",
"delete_action_confirmation_message": "Er du sikker på, at du vil slette dette objekt? Denne handling vil flytte objektet til serverens papirkurv, og vil spørge dig, om du vil slette den lokalt",
"delete_action_prompt": "{count} slettet",
@@ -1076,6 +1114,7 @@
"failed": "Fejlet",
"failed_count": "Fejlede: {count}",
"failed_to_authenticate": "Kunne ikke godkendes",
+ "failed_to_delete_file": "Kunne ikke slette filen",
"failed_to_load_assets": "Kunne ikke indlæse mediefiler",
"failed_to_load_folder": "Kunne ikke indlæse mappe",
"favorite": "Favorit",
@@ -1156,16 +1195,16 @@
"id": "ID",
"idle": "Inaktiv",
"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}",
+ "image_alt_text_date": "{isVideo, select, true {Video} other {Billede}} taget den {date}",
+ "image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Billede}} taget med {person1} den {date}",
+ "image_alt_text_date_2_people": "{isVideo, select, true {Video} other {Billede}} taget med {person1} og {person2} den {date}",
+ "image_alt_text_date_3_people": "{isVideo, select, true {Video} other {Billede}} taget med {person1}, {person2}, og {person3} den {date}",
+ "image_alt_text_date_4_or_more_people": "{isVideo, select, true {Video} other {Billede}} taget med {person1}, {person2}, og {additionalCount, number} andre den {date}",
+ "image_alt_text_date_place": "{isVideo, select, true {Video} other {Billede}} taget i {city}, {country} den {date}",
+ "image_alt_text_date_place_1_person": "{isVideo, select, true {Video} other {Billede}} taget i {city}, {country} med {person1} den {date}",
+ "image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Billede}} taget i {city}, {country} med {person1} og {person2} den {date}",
+ "image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Billede}} 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 {Billede}} 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",
@@ -1180,6 +1219,7 @@
"individual_share": "Individuel andel",
"individual_shares": "Individuelle delinger",
"info": "Info",
+ "integrity_checks": "Integritetstjek",
"interval": {
"day_at_onepm": "Hver dag kl. 13",
"hours": "Hver {hours, plural, one {time} other {{hours, number} timer}}",
@@ -1241,6 +1281,7 @@
"linked_oauth_account": "Tilsluttet OAuth-konto",
"list": "Liste",
"live": "Live",
+ "load_more": "Indlæs flere",
"loading": "Indlæser",
"loading_search_results_failed": "Indlæsning af søgeresultater fejlede",
"local": "Lokal",
@@ -1281,9 +1322,9 @@
"login_form_failed_login": "Der opstod en vejl ved at logge ind. Tjek server webadressen, e-mailen og kodeordet",
"login_form_handshake_exception": "Der opstod en fejl med at oprette forbindelse til serveren. Aktiver selvsignerede certifikater i indstillingerne, hvis du bruger et selv signeret certifikat.",
"login_form_password_hint": "kodeord",
- "login_form_server_empty": "Indtast server-URL.",
- "login_form_server_error": "Kunne ikke forbinde til serveren.",
- "login_has_been_disabled": "Login er blevet deaktiveret.",
+ "login_form_server_empty": "Indtast server-URL",
+ "login_form_server_error": "Kunne ikke forbinde til serveren",
+ "login_has_been_disabled": "Login er blevet deaktiveret",
"login_password_changed_error": "Der opstod en fejl i opdateringen af dit kodeord",
"login_password_changed_success": "Kodeordet blev opdateret",
"logout_all_device_confirmation": "Er du sikker på, at du vil logge ud af alle enheder?",
@@ -1334,6 +1375,7 @@
"map_location_picker_page_use_location": "Brug denne placering",
"map_location_service_disabled_content": "Placeringstjenesten skal aktiveres for at vise elementer fra din nuværende placering. Vil du aktivere den nu?",
"map_location_service_disabled_title": "Placeringstjenesten er deaktiveret",
+ "map_marker_for_image": "Kortmarkør for billede taget i {city}, {country}",
"map_marker_with_image": "Kortmarkør med billede",
"map_no_location_permission_content": "Der kræves tilladelse til placeringen for at vise elementer fra din nuværende placering. Vil du give tilladelse?",
"map_no_location_permission_title": "Placeringstilladelse blev afvist",
@@ -1438,6 +1480,7 @@
"never": "Aldrig",
"new_album": "Nyt album",
"new_api_key": "Ny API-nøgle",
+ "new_feature": "Ny Feature",
"new_password": "Ny adgangskode",
"new_person": "Ny person",
"new_pin_code": "Ny PIN kode",
@@ -1481,9 +1524,13 @@
"not_available": "ikke tilgængelig",
"not_in_any_album": "Ikke i noget album",
"not_selected": "Ikke valgt",
+ "not_set": "Ikke angivet",
"notes": "Noter",
"nothing_here_yet": "Intet her endnu",
"notification_backup_reliability": "Aktivér notifikationer for at forbedre pålideligheden af backup i baggrunden",
+ "notification_enabled_list_tile_content": "Immich bruger notifikationer til baggrundsbackup. Administrer dem i dine enhedsindstillinger.",
+ "notification_enabled_list_tile_open_button": "Åbn indstillinger",
+ "notification_enabled_list_tile_title": "Notifikationer aktiveret",
"notification_permission_dialog_content": "Gå til indstillinger for at slå notifikationer til.",
"notification_permission_list_tile_content": "Tillad at bruge notifikationer.",
"notification_permission_list_tile_enable_button": "Slå notifikationer til",
@@ -1495,6 +1542,8 @@
"obtainium_configurator": "Obtainium-konfigurator",
"obtainium_configurator_instructions": "Brug Obtainium til at installere og opdatere Android-appen direkte fra Immich-udgivelsen på GitHub. Opret en API-nøgle, og vælg en variant for at generere dit Obtainium-konfigurationslink",
"ocr": "OCR",
+ "ocr_body": "Immich læser nu teksten i dine billeder, så du kan søge efter dem ud fra, hvad de siger.",
+ "ocr_title": "Søg tekst i dine fotos",
"official_immich_resources": "Officielle Immich-ressourcer",
"offline": "Offline",
"offset": "Forskydning",
@@ -1513,6 +1562,8 @@
"open": "Åben",
"open_calendar": "Åbn kalender",
"open_in_browser": "Åbn i browser",
+ "open_in_immich_body": "Sæt Immich som dit galleri på Android for at åbne billeder direkte fra andre apps.",
+ "open_in_immich_title": "Åbne billeder i Immich",
"open_in_map_view": "Åben i kortvisning",
"open_in_openstreetmap": "Åben i OpenStreetMap",
"open_the_search_filters": "Åbn søgefiltre",
@@ -1570,7 +1621,7 @@
"person": "Person",
"person_age_months": "{months, plural, one {# month} other {# months}} gammel",
"person_age_year_months": "1 år, {months, plural, one {# month} other {# months}} gammel",
- "person_age_years": "{years, plural, other {# years}} gammel",
+ "person_age_years": "{years, plural, other {# år}} gammel",
"person_birthdate": "Født den {date}",
"person_hidden": "{name}{hidden, select, true { (skjult)} other {}}",
"person_recognized": "Person genkendt",
@@ -1671,7 +1722,10 @@
"recent": "For nylig",
"recent_searches": "Seneste søgninger",
"recently_added": "Senest tilføjet",
+ "recently_added_body": "Gå direkte til alt, hvad du for nylig har tilføjet, på en dedikeret side.",
+ "recently_added_description": "Gennemse dine mediefiler sorteret efter, hvornår de blev uploadet til Immich",
"recently_added_page_title": "Nyligt tilføjet",
+ "recently_added_title": "Senest tilføjet",
"recently_taken": "Taget for nylig",
"refresh": "Opdatér",
"refresh_encoded_videos": "Opdater kodede videoer",
@@ -1826,6 +1880,7 @@
"select_person": "Vælg person",
"select_person_to_tag": "Vælg en person at tagge",
"select_photos": "Vælg billeder",
+ "select_quality": "Vælg kvalitet",
"select_trash_all": "Vælg smid alle ud",
"selected": "Valgt",
"selected_count": "{count, plural, one {# valgt} other {# valgte}}",
@@ -1875,6 +1930,10 @@
"share": "Del",
"share_dialog_preparing": "Forbereder...",
"share_link": "Del link",
+ "share_original": "Brug original (stor)",
+ "share_preview": "Brug miniaturebillede (lille)",
+ "share_quality_body": "Tryk og hold delingsknappen nede for at vælge billedkvaliteten, før du deler.",
+ "share_quality_title": "Vælg din delingskvalitet",
"shared": "Delt",
"shared_album_activities_input_disable": "Kommentarer er deaktiveret",
"shared_album_activity_remove_content": "Vil du slette denne aktivitet?",
@@ -1889,7 +1948,9 @@
"shared_link_app_bar_title": "Delte links",
"shared_link_clipboard_copied_massage": "Kopieret til udklipsholderen",
"shared_link_create_error": "Der opstod en fejl i oprettelsen af et delt link",
- "shared_link_custom_url_description": "Adgang til dette delte link med en selvdefineret URL",
+ "shared_link_custom_url_description": "Få adgang til dette delte link med et brugerdefineret URL-navn",
+ "shared_link_custom_url_title": "Tilpasset URL",
+ "shared_link_custom_url_warning": "Advarsel: Et brugerdefineret URL-navn med en skråstreg fungerer muligvis ikke som forventet.",
"shared_link_edit_description_hint": "Indtast beskrivelse",
"shared_link_edit_expire_after_option_day": "1 dag",
"shared_link_edit_expire_after_option_days": "{count} dage",
@@ -1956,17 +2017,21 @@
"sign_out": "Log af",
"sign_up": "Tilmeld",
"size": "Størrelse",
+ "skip": "Spring over",
"skip_to_content": "Spring frem til indhold",
"skip_to_folders": "Spring til mapper",
"skip_to_tags": "Spring til tags",
"slideshow": "Diasshow",
+ "slideshow_body": "Læn dig tilbage, og se dine fotos afspilles i et slideshow i fuld skærm.",
"slideshow_metadata_overlay_mode": "Overlay indhold",
"slideshow_metadata_overlay_mode_description_only": "Kun beskrivelse",
"slideshow_metadata_overlay_mode_full": "Fuld",
"slideshow_repeat": "Gentag diasshow",
"slideshow_repeat_description": "Hop tilbage til begyndelsen når diasshow stopper",
"slideshow_settings": "Diasshowindstillinger",
+ "slideshow_title": "Slideshow",
"smart_album": "Smart album",
+ "some_assets_already_have_a_location_warning": "Nogle af de valgte aktiver har allerede en placering",
"sort_albums_by": "Sortér albummer efter...",
"sort_created": "Dato oprettet",
"sort_items": "Antal genstande",
@@ -2071,10 +2136,12 @@
"trash_page_info": "Slettede elementer vil blive slettet permanent efter {days} dage",
"trashed_items_will_be_permanently_deleted_after": "Mediefiler i papirkurven vil blive slettet permanent efter {days, plural, one {# dag} other {# dage}}.",
"trigger": "Udløser",
+ "trigger_asset_metadata_extraction": "Udtrækning af metadata for mediefil",
+ "trigger_asset_metadata_extraction_description": "Udløses, når EXIF-metadataene for en mediefil udtrækkes",
"trigger_asset_uploaded": "Mediefil upload",
"trigger_asset_uploaded_description": "Udløses, når et nyt asset bliver uploaded",
"trigger_person_recognized": "Peron genkendt",
- "trigger_person_recognized_description": "Udløses, når en person er detekteret",
+ "trigger_person_recognized_description": "Udløses, når en person er genkendt",
"troubleshoot": "Fejlfinding",
"type": "Type",
"unable_to_change_pin_code": "Kunne ikke ændre PIN kode",
@@ -2090,6 +2157,7 @@
"unknown": "Ukendt",
"unknown_country": "Ukendt land",
"unknown_date": "Ukendt dato",
+ "unknown_schema": "Ukendt skema",
"unknown_year": "Ukendt år",
"unlimited": "Ubegrænset",
"unlink_motion_video": "Fjern link til bevægelsesvideo",
@@ -2125,6 +2193,8 @@
"upload_status_errors": "Fejl",
"upload_status_uploaded": "Uploadet",
"upload_success": "Upload gennemført. Opdater siden for at se nye uploadaktiver.",
+ "upload_to_album_body": "For brugere, der ikke bruger den manuelle uploadfunktion, kan du nu vælge at tilføje lokale fotos direkte til et album, når du uploader dem. Du behøver ikke længere at uploade og derefter føje dem til et album senere.",
+ "upload_to_album_title": "Upload direkte til et album",
"upload_to_immich": "Upload til Immich ({count})",
"uploading": "Uploader",
"uploading_media": "Uploader media",
@@ -2192,6 +2262,9 @@
"week": "Uge",
"welcome": "Velkommen",
"welcome_to_immich": "Velkommen til Immich",
+ "whats_new": "Hvad er nyt",
+ "whats_new_settings_subtitle": "Se, hvad der er nyt i Immich",
+ "whats_new_version": "Version {version}",
"when": "Hvornår",
"width": "Bredde",
"wifi_name": "Wi-Fi navn",
diff --git a/i18n/de.json b/i18n/de.json
index 2e83d73e02..910166a54c 100644
--- a/i18n/de.json
+++ b/i18n/de.json
@@ -47,7 +47,7 @@
"authentication_settings_disable_all": "Bist du sicher, dass du alle Anmeldemethoden deaktivieren willst? Die Anmeldung wird vollständig deaktiviert.",
"authentication_settings_reenable": "Nutze einen Server-Befehl zur Reaktivierung.",
"background_task_job": "Hintergrundaufgaben",
- "backup_database": "Datenbanksicherung erstellen",
+ "backup_database": "Datenbankexport erstellen",
"backup_database_enable_description": "Datenbank regelmäßig sichern",
"backup_keep_last_amount": "Anzahl der zu speichernden vorherigen Sicherungen",
"backup_onboarding_1_description": "Offsite-Kopie in der Cloud oder an einem anderen physischen Ort.",
@@ -57,7 +57,7 @@
"backup_onboarding_footer": "Weitere Informationen zum Sichern von Immich findest du in der Dokumentation.",
"backup_onboarding_parts_title": "Eine 3-2-1-Sicherung umfasst:",
"backup_onboarding_title": "Sicherungen",
- "backup_settings": "Einstellungen zur Datenbanksicherung",
+ "backup_settings": "Einstellungen zum Datenbankexport",
"backup_settings_description": "Einstellungen zur regelmäßigen Sicherung der Datenbank. Hinweis: Diese Jobs werden nicht überwacht und du wirst nicht über Fehler informiert.",
"cleared_jobs": "Folgende Aufgaben zurückgesetzt: {job}",
"config_set_by_file": "Ist derzeit in einer Konfigurationsdatei festgelegt",
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Qualität der Miniaturansicht von 1-100. Höher ist besser, erzeugt aber größere Dateien und kann die Reaktionsfähigkeit der App beeinträchtigen.",
"image_thumbnail_title": "Miniaturansicht-Einstellungen",
"import_config_from_json_description": "Importieren Sie die Systemkonfiguration, indem Sie eine JSON-Konfigurationsdatei hochladen",
+ "integrity_checks_checksum_files": "Prüfsummendateien",
+ "integrity_checks_checksum_files_description": "Anpassung der Prüfsummen Tests",
+ "integrity_checks_checksum_files_enable_description": "Aktiviere den Prüfsummen Test",
+ "integrity_checks_checksum_files_percentage_limit": "Prozentuales Limit",
+ "integrity_checks_checksum_files_percentage_limit_description": "Setze die maximale Prozentzahl zwischen 0.01 und 1, um zu bestimmen wie viel der Prüfsummen Test jedes Intervall prüfen soll.",
+ "integrity_checks_checksum_files_time_limit": "Zeitlimit",
+ "integrity_checks_checksum_files_time_limit_description": "Setze die maximale Dauer, für die der Prüfsummen Test jedes Intervall ausgeführt werden soll. (ms)",
+ "integrity_checks_missing_files": "Fehlende Dateien",
+ "integrity_checks_missing_files_description": "Setze die Frequenz und (de)aktiviere den Test für fehlende Dateien",
+ "integrity_checks_missing_files_enable_description": "Aktiviere den Test für fehlende Dateien",
+ "integrity_checks_settings": "Integritätstests",
+ "integrity_checks_settings_description": "Verwalten der Intervalle für die Integritätstests",
+ "integrity_checks_untracked_files": "Nicht getrackte Dateien",
+ "integrity_checks_untracked_files_description": "Setze die Frequenz und (de)aktiviere den Test für ungetrackte Dateien",
+ "integrity_checks_untracked_files_enable_description": "Aktiviere den Test für ungetrackte Dateien",
"job_concurrency": "{job} (Anzahl gleichzeitiger Prozesse)",
"job_created": "Aufgabe erstellt",
"job_not_concurrency_safe": "Diese Aufgabe ist nicht parallelisierungssicher.",
@@ -147,7 +162,7 @@
"machine_learning_duplicate_detection": "Duplikaterkennung",
"machine_learning_duplicate_detection_enabled": "Duplikaterkennung aktivieren",
"machine_learning_duplicate_detection_enabled_description": "Falls diese Option deaktiviert ist, werden exakt identische Dateien dennoch de-dupliziert.",
- "machine_learning_duplicate_detection_setting_description": "Verwendung von CLIP-Embeddings zum Erkennen möglicher Duplikate",
+ "machine_learning_duplicate_detection_setting_description": "Verwendung von CLIP-Einbettungen zum Erkennen möglicher Duplikate",
"machine_learning_enabled": "Maschinelles Lernen aktivieren",
"machine_learning_enabled_description": "Wenn diese Option deaktiviert ist, werden alle ML-Funktionen unabhängig von den unten aufgeführten Einstellungen deaktiviert.",
"machine_learning_facial_recognition": "Gesichtserkennung",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Ermöglicht die Transkodierung in Echtzeit während des Videostreams. Ermöglicht einen Qualitätswechsel, kann jedoch je nach Serverkapazität zu einer höheren Wiedergabelatenz und Rucklern führen.",
"transcoding_realtime_enabled": "Echtzeit-Transkodierung aktivieren",
"transcoding_realtime_enabled_description": "Wenn diese Option deaktiviert ist, lehnt der Server den Start neuer Echtzeit-Transkodierungssitzungen ab.",
+ "transcoding_realtime_resolutions": "Auflösungen",
+ "transcoding_realtime_resolutions_description": "Die für das Echtzeit-Transcoding angebotenen Auflösungen. Höhere Auflösungen können zu Wiedergabeproblemen führen, wenn der Server sie nicht schnell genug transcodieren kann.",
+ "transcoding_realtime_video_codecs": "Video-Codecs",
+ "transcoding_realtime_video_codecs_description": "Die für die Echtzeit-Transkodierung angebotenen Videocodecs. Clients wählen bei der Wiedergabe die beste von ihnen unterstützte Option aus. AV1 ist effizienter als HEVC und HEVC ist effizienter als H.264. Wählen Sie bei Verwendung von Hardwarebeschleunigung nur die Codecs aus, die der Beschleuniger kodieren kann. Beachten Sie bei der Software-Transkodierung, dass H.264 schneller ist als AV1 und AV1 schneller als HEVC.",
"transcoding_reference_frames": "Referenz-Frames",
"transcoding_reference_frames_description": "Die Anzahl der Bilder, auf die bei der Komprimierung eines bestimmten Bildes Bezug genommen wird. Höhere Werte verbessern die Komprimierungseffizienz, verlangsamen aber die Kodierung. 0 setzt diesen Wert automatisch.",
"transcoding_required_description": "Nur Videos in einem nicht akzeptierten Format",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Fotoanzeige",
"assets": "Dateien",
"assets_added_to_album_count": "{count, plural, one {# Datei} other {# Dateien}} zum Album hinzugefügt",
+ "assets_added_to_album_partial_count": "{successCount} von {totalCount} {totalCount, plural, one {Datei} other {Dateien}} zum Album hinzugefügt",
"assets_added_to_albums_count": "{assetTotal, plural, one {# Datei} other {# Dateien}} zu {albumTotal, plural, one {# Album} other {# Alben}} hinzugefügt",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Datei kann}other {Dateien können}} nicht zum Album hinzugefügt werden",
"assets_cannot_be_added_to_albums": "{count, plural, one {Datei kann} other {Dateien können}} nicht zu den Alben hinzugefügt werden",
@@ -794,7 +814,6 @@
"custom_date": "Benutzerdefiniertes Datum",
"custom_locale": "Benutzerdefiniertes Gebietsschema",
"custom_locale_description": "Datumsangaben, Uhrzeiten und Zahlen je nach Sprache und Land formatieren",
- "custom_url": "Benutzerdefinierte URL",
"cutoff_date_description": "Behalte Fotos der letzten…",
"cutoff_day": "{count, plural, one {Tag} other {Tage}}",
"cutoff_year": "{count, plural, one {Jahr} other {Jahre}}",
@@ -905,7 +924,7 @@
"edit_workflow": "Workflow bearbeiten",
"editor": "Bearbeiten",
"editor_discard_edits_confirm": "Änderungen verwerfen",
- "editor_discard_edits_prompt": "Es liegen ungespeicherte Änderungen vorhanden. Sicher, dass diese verworfen werden sollen?",
+ "editor_discard_edits_prompt": "Es sind ungespeicherte Änderungen vorhanden. Sicher, dass diese verworfen werden sollen?",
"editor_discard_edits_title": "Änderungen verwerfen?",
"editor_edits_applied_error": "Änderungen konnten nicht angewendet werden",
"editor_edits_applied_success": "Änderungen erfolgreich angewendet",
@@ -1461,6 +1480,7 @@
"never": "Niemals",
"new_album": "Neues Album",
"new_api_key": "Neuer API-Schlüssel",
+ "new_feature": "Neue Funktion",
"new_password": "Neues Passwort",
"new_person": "Neue Person",
"new_pin_code": "Neuer PIN-Code",
@@ -1504,6 +1524,7 @@
"not_available": "N/A",
"not_in_any_album": "In keinem Album",
"not_selected": "Nicht ausgewählt",
+ "not_set": "Nicht gesetzt",
"notes": "Hinweise",
"nothing_here_yet": "Noch nichts hier",
"notification_backup_reliability": "Benachrichtigungen aktivieren, um die Zuverlässigkeit der Sicherung im Hintergrund zu verbessern",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Obtainium Konfigurator",
"obtainium_configurator_instructions": "Du kannst Obtainium benutzen, um die App direkt aus den Github Releases zu installieren oder zu aktualisieren. Bitte erstelle dazu einen API-Schlüssel und wähle eine Variante aus um einen Obtainium-Konfigurationslink zu erstellen",
"ocr": "OCR",
+ "ocr_body": "Immich liest jetzt den Text in deinen Fotos, sodass du nach ihrem Inhalt suchen kannst.",
+ "ocr_title": "Suche Text in deinen Fotos",
"official_immich_resources": "Offizielle Immich Quellen",
"offline": "Offline",
"offset": "Verschiebung",
@@ -1539,6 +1562,8 @@
"open": "Öffnen",
"open_calendar": "Kalender öffnen",
"open_in_browser": "Im Browser öffnen",
+ "open_in_immich_body": "Setze Immich als deine Galerie auf Android um auf Fotos von anderen Apps zugreifen zu können.",
+ "open_in_immich_title": "Öffne Fotos in Immich",
"open_in_map_view": "In Kartenansicht öffnen",
"open_in_openstreetmap": "In OpenStreetMap öffnen",
"open_the_search_filters": "Die Suchfilter öffnen",
@@ -1697,7 +1722,10 @@
"recent": "Neueste",
"recent_searches": "Letzte Suchen",
"recently_added": "Kürzlich hinzugefügt",
+ "recently_added_body": "Öffne direkt deine neusten Änderungen direkt auf einer Seite.",
+ "recently_added_description": "Durchsuche deine Medien nachdem Sie auf Immich hochgeladen wurden",
"recently_added_page_title": "Zuletzt hinzugefügt",
+ "recently_added_title": "Zuletzt hinzugefügt",
"recently_taken": "Kürzlich aufgenommen",
"refresh": "Aktualisieren",
"refresh_encoded_videos": "Kodierte Videos aktualisieren",
@@ -1904,6 +1932,8 @@
"share_link": "Link teilen",
"share_original": "Original verwenden (groß)",
"share_preview": "Thumbnail verwenden (klein)",
+ "share_quality_body": "Halte den Teilen Button gedrückt um die Bildqualität vor dem Teilen auszuwählen.",
+ "share_quality_title": "Wähle deine Qualität zum Teilen aus",
"shared": "Geteilt",
"shared_album_activities_input_disable": "Kommentare sind deaktiviert",
"shared_album_activity_remove_content": "Möchtest du diese Aktivität entfernen?",
@@ -1919,6 +1949,8 @@
"shared_link_clipboard_copied_massage": "Link kopiert",
"shared_link_create_error": "Fehler beim Erstellen der Linkfreigabe",
"shared_link_custom_url_description": "Greife über eine benutzerdefinierte URL auf diesen Freigabelink zu",
+ "shared_link_custom_url_title": "Benutzerdefinierte URL",
+ "shared_link_custom_url_warning": "Warnung: eine benutzerdefinierte URL mit einem Schrägstrich verhält sich möglicherweise nicht wie erwartet.",
"shared_link_edit_description_hint": "Beschreibung eingeben",
"shared_link_edit_expire_after_option_day": "1 Tag",
"shared_link_edit_expire_after_option_days": "{count} Tagen",
@@ -1985,16 +2017,19 @@
"sign_out": "Abmelden",
"sign_up": "Registrieren",
"size": "Größe",
+ "skip": "Überspringen",
"skip_to_content": "Zum Inhalt springen",
"skip_to_folders": "Springe zu Ordnern",
"skip_to_tags": "Springe zu Tags",
"slideshow": "Diashow",
+ "slideshow_body": "Lehn' dich zurück und genieße deine Fotos in einer Vollbild Diashow.",
"slideshow_metadata_overlay_mode": "Overlay Inhalt",
"slideshow_metadata_overlay_mode_description_only": "Nur Beschreibung",
"slideshow_metadata_overlay_mode_full": "Alles",
"slideshow_repeat": "Slideshow wiederholen",
"slideshow_repeat_description": "Wenn Slideshow beendet, zum Anfang zurückkehren",
"slideshow_settings": "Diashow-Einstellungen",
+ "slideshow_title": "Diashow",
"smart_album": "Smart Album",
"some_assets_already_have_a_location_warning": "Einige der ausgewählten Dateien haben bereits einen Standort",
"sort_albums_by": "Alben sortieren nach...",
@@ -2122,6 +2157,7 @@
"unknown": "Unbekannt",
"unknown_country": "Unbekanntes Land",
"unknown_date": "Unbekanntes Datum",
+ "unknown_schema": "Unbekanntes Schema",
"unknown_year": "Unbekanntes Jahr",
"unlimited": "Unlimitiert",
"unlink_motion_video": "Verknüpfung zum Bewegungsvideo aufheben",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "Fehler",
"upload_status_uploaded": "Hochgeladen",
"upload_success": "Hochladen erfolgreich. Aktualisiere die Seite, um neue hochgeladene Dateien zu sehen.",
+ "upload_to_album_body": "Für Nutzer*innen die nicht den manuellen Upload verwenden, du kannst auswählen neue lokale Fotos direkt in ein Album hinzufügen, sodass du sie nicht erst hochladen und dann zu einem Album hinzufügen musst.",
+ "upload_to_album_title": "Direkt in ein Album hochladen",
"upload_to_immich": "Auf Immich hochladen ({count})",
"uploading": "Wird hochgeladen",
"uploading_media": "Medien werden hochgeladen",
@@ -2224,6 +2262,9 @@
"week": "Woche",
"welcome": "Willkommen",
"welcome_to_immich": "Willkommen bei Immich",
+ "whats_new": "Neuigkeiten",
+ "whats_new_settings_subtitle": "Neues in Immich",
+ "whats_new_version": "Version {version}",
"when": "Wann",
"width": "Breite",
"wifi_name": "WLAN-Netzwerk",
diff --git a/i18n/de_CH.json b/i18n/de_CH.json
index add3265d23..90bd308514 100644
--- a/i18n/de_CH.json
+++ b/i18n/de_CH.json
@@ -113,8 +113,8 @@
"job_not_concurrency_safe": "Diese Aufgabe kann nicht mehrmals parallel laufen gelassen werden.",
"job_settings": "Aufgabeneinstellungen",
"job_settings_description": "Gleichzeitige Ausführung von Aufgaben verwalten",
- "jobs_delayed": "Qualität",
- "jobs_failed": "{jobCount, plural, other {# failed}}",
+ "jobs_delayed": "{jobCount, plural, other {# verzögert}}",
+ "jobs_failed": "{jobCount, plural, other {# fehlgeschlagen}}",
"jobs_over_time": "Jobs im Laufe der Zeit",
"library_created": "Bibliothek erstellt: {library}",
"library_deleted": "Bibliothek gelöscht",
diff --git a/i18n/el.json b/i18n/el.json
index 5cdf71367a..c3505dbabb 100644
--- a/i18n/el.json
+++ b/i18n/el.json
@@ -23,6 +23,7 @@
"add_location": "Προσθήκη τοποθεσίας",
"add_partner": "Προσθήκη συνεργάτη",
"add_photos": "Προσθήκη φωτογραφιών",
+ "add_step": "Προσθήκη βήματος",
"add_tag": "Προσθήκη ετικέτας",
"add_to": "Προσθήκη σε…",
"add_to_album": "Προσθήκη σε άλμπουμ",
@@ -72,6 +73,7 @@
"cron_expression_description": "Ορίστε το διάστημα σάρωσης χρησιμοποιώντας τη μορφή cron. Για περισσότερες πληροφορίες, ανατρέξτε π.χ. στο Crontab Guru",
"cron_expression_presets": "Προκαθορισμένες εκφράσεις cron",
"disable_login": "Απενεργοποίηση σύνδεσης",
+ "download_csv": "Μεταφόρτωση CSV",
"duplicate_detection_job_description": "Εκτελέστε μηχανική μάθηση σε στοιχεία για να εντοπίσετε παρόμοιες εικόνες. Βασίζεται στην Έξυπνη Αναζήτηση",
"exclusion_pattern_description": "Τα μοτίβα αποκλεισμού σας επιτρέπουν να αγνοείται αρχεία και φακέλους κατά τη σάρωση της βιβλιοθήκης σας. Αυτό είναι χρήσιμο εάν εχετε φακέλους που περιέχουν αρχεία που δεν θέλετε να εισάγετε, όπως αρχεία RAW.",
"export_config_as_json_description": "Κατέβασε την τρέχουσα διαμόρφωση συστήματος ως αρχείο JSON",
@@ -106,6 +108,21 @@
"image_thumbnail_quality_description": "Ποιότητα μικρογραφίας από 1 έως 100. Υψηλότερες τιμές είναι καλύτερες, αλλά παράγουν μεγαλύτερα αρχεία που μπορεί να μειώσουν την ταχύτητα απόκρισης της εφαρμογής.",
"image_thumbnail_title": "Ρυθμίσεις Μικρογραφίας",
"import_config_from_json_description": "Εισαγωγή διαμόρφωσης συστήματος με ανέβασμα αρχείου διαμόρφωσης JSON",
+ "integrity_checks_checksum_files": "Αρχεία ελέγχου ακεραιότητας",
+ "integrity_checks_checksum_files_description": "Ρύθμιση του ελέγχου ακεραιότητας",
+ "integrity_checks_checksum_files_enable_description": "Ενεργοποίηση του ελέγχου ακεραιότητας",
+ "integrity_checks_checksum_files_percentage_limit": "Όριο ποσοστού",
+ "integrity_checks_checksum_files_percentage_limit_description": "Ρυθμίστε το μέγιστο ποσοστό μεταξύ 0,01 και 1 για το πόσο θα εκτελείται ο έλεγχος ακεραιότητας σε κάθε διάστημα.",
+ "integrity_checks_checksum_files_time_limit": "Χρονικό όριο",
+ "integrity_checks_checksum_files_time_limit_description": "Ρυθμίστε τη μέγιστη διάρκεια για την οποία θα εκτελείται ο έλεγχος ακεραιότητας σε κάθε διάστημα. (ms)",
+ "integrity_checks_missing_files": "Ελλείποντα αρχεία",
+ "integrity_checks_missing_files_description": "Ρυθμίστε τη συχνότητα και ενεργοποιήστε ή απενεργοποιήστε τον έλεγχο για τα ελλείποντα αρχεία",
+ "integrity_checks_missing_files_enable_description": "Ενεργοποίηση ελέγχου για τα ελλείποντα αρχεία",
+ "integrity_checks_settings": "Έλεγχοι ακεραιότητας",
+ "integrity_checks_settings_description": "Διαχείριση διαστημάτων ελέγχων ακεραιότητας",
+ "integrity_checks_untracked_files": "Αρχεία χωρίς παρακολούθηση",
+ "integrity_checks_untracked_files_description": "Ρυθμίστε τη συχνότητα και ενεργοποιήστε ή απενεργοποιήστε τον έλεγχο για τα μη παρακολουθούμενα αρχεία",
+ "integrity_checks_untracked_files_enable_description": "Ενεργοποίηση του ελέγχου για τα μη παρακολουθούμενα αρχεία",
"job_concurrency": "Ταυτόχρονη εκτέλεση {job}",
"job_created": "Εργασία δημιουργήθηκε",
"job_not_concurrency_safe": "Αυτή η εργασία δεν είναι ασφαλής για ταυτόχρονη εκτέλεση.",
@@ -181,9 +198,25 @@
"machine_learning_smart_search_enabled": "Ενεργοποίηση έξυπνης αναζήτησης",
"machine_learning_smart_search_enabled_description": "Αν απενεργοποιηθεί, οι εικόνες δεν θα κωδικοποιούνται για έξυπνη αναζήτηση.",
"machine_learning_url_description": "Η διεύθυνση URL του διακομιστή μηχανικής μάθησης. Αν δοθούν περισσότερες από μία διευθύνσεις URL, κάθε διακομιστής θα δοκιμάζεται διαδοχικά μέχρι να ανταποκριθεί ένας με επιτυχία, με τη σειρά από την πρώτη έως την τελευταία. Οι διακομιστές που δεν ανταποκρίνονται θα αγνοούνται προσωρινά μέχρι να επανέλθουν σε λειτουργία.",
+ "maintenance_backup_management": "Διαχείριση αντιγράφων ασφαλείας",
"maintenance_delete_backup": "Διαγραφή αντιγράφου ασφαλείας",
"maintenance_delete_backup_description": "Αυτό το αρχείο θα διαγραφεί οριστικά και χωρίς δυνατότητα επαναφοράς.",
"maintenance_delete_error": "Αποτυχία διαγραφής του αντιγράφου ασφαλείας.",
+ "maintenance_integrity_check": "Έλεγχος",
+ "maintenance_integrity_check_all": "Έλεγχος Όλων",
+ "maintenance_integrity_checksum_mismatch": "Ασυμφωνία ελέγχου ακεραιότητας",
+ "maintenance_integrity_checksum_mismatch_description": "Αρχεία των οποίων ο έλεγχος ακεραιότητας στο δίσκο δεν ταιριάζει με εκείνον που έχει αποθηκεύσει το Immich στη βάση δεδομένων του.",
+ "maintenance_integrity_checksum_mismatch_job": "Έλεγχος για ασυμφωνίες ελέγχου ακεραιότητας",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "Ανανέωση αναφορών ασυμφωνιών ελέγχου ακεραιότητας",
+ "maintenance_integrity_missing_file": "Ελλείποντα Αρχεία",
+ "maintenance_integrity_missing_file_description": "Αρχεία που το Immich έχει καταχωρίσει στη βάση δεδομένων του αλλά δεν υπάρχουν στο σύστημα αρχείων.",
+ "maintenance_integrity_missing_file_job": "Έλεγχος για ελλείποντα αρχεία",
+ "maintenance_integrity_missing_file_refresh_job": "Ανανέωση αναφορών ελλειπόντων αρχείων",
+ "maintenance_integrity_report": "Αναφορά ακεραιότητας",
+ "maintenance_integrity_untracked_file": "Μη παρακολουθούμενα αρχεία",
+ "maintenance_integrity_untracked_file_description": "Αρχεία στους φακέλους του Immich για τα οποία το Immich δεν έχει καμία καταχώριση.",
+ "maintenance_integrity_untracked_file_job": "Έλεγχος για μη παρακολουθούμενα αρχεία",
+ "maintenance_integrity_untracked_file_refresh_job": "Ανανέωση αναφορών για μη παρακολουθούμενα αρχεία",
"maintenance_restore_backup": "Επαναφορά αντιγράφου ασφαλείας",
"maintenance_restore_backup_description": "Το Immich θα διαγραφεί πλήρως και θα επαναφερθεί από το επιλεγμένο αντίγραφο ασφαλείας. Θα δημιουργηθεί αντίγραφο ασφαλείας πριν τη συνέχεια.",
"maintenance_restore_backup_different_version": "Αυτό το αντίγραφο ασφαλείας δημιουργήθηκε με διαφορετική έκδοση του Immich!",
@@ -298,6 +331,8 @@
"refreshing_all_libraries": "Επαναφόρτωση όλων των βιβλιοθηκών",
"registration": "Εγγραφή Διαχειριστή",
"registration_description": "Δεδομένου ότι είστε ο πρώτος χρήστης στο σύστημα, θα ανατεθείτε ως Διαχειριστής και θα είστε υπεύθυνος για τις διαχειριστικές εργασίες, ενώ οι επιπλέον χρήστες θα δημιουργούνται από εσάς.",
+ "release_channel_release_candidate": "Υποψήφια έκδοση",
+ "release_channel_stable": "Σταθερή",
"remove_failed_jobs": "Αφαίρεση αποτυχημένων εργασιών",
"require_password_change_on_login": "Απαιτείται από τον χρήστη να αλλάξει τον κωδικό πρόσβασης κατά την πρώτη σύνδεση",
"reset_settings_to_default": "Επαναφορά προεπιλεγμένων ρυθμίσεων",
@@ -392,6 +427,14 @@
"transcoding_preferred_hardware_device_description": "Ισχύει μόνο για VAAPI και QSV. Ορίζει τον κόμβο DRI που χρησιμοποιείται για την επιτάχυνση υλικού κατά την κωδικοποίηση.",
"transcoding_preset_preset": "Προκαθορισμένη ρύθμιση (-preset)",
"transcoding_preset_preset_description": "Ταχύτητα συμπίεσης. Οι πιο αργές προκαθορισμένες ρυθμίσεις παράγουν μικρότερα αρχεία και βελτιώνουν την ποιότητα όταν στοχεύουν σε έναν συγκεκριμένο ρυθμό μετάδοσης (bitrate). Ο VP9 αγνοεί τις ταχύτητες πάνω από την 'πιο γρήγορη' (faster).",
+ "transcoding_realtime": "Μετατροπή σε πραγματικό χρόνο [ΠΕΙΡΑΜΑΤΙΚΟ]",
+ "transcoding_realtime_description": "Επιτρέπει τη επανακωδικοποίηση να εκτελείται σε πραγματικό χρόνο καθώς γίνεται η ροή του βίντεο. Ενεργοποιεί την αλλαγή ποιότητας, αλλά μπορεί να προκαλέσει μεγαλύτερη καθυστέρηση αναπαραγωγής και κολλήματα, ανάλογα με τις δυνατότητες του διακομιστή.",
+ "transcoding_realtime_enabled": "Ενεργοποίηση επανακωδικοποίησης σε πραγματικό χρόνο",
+ "transcoding_realtime_enabled_description": "Αν είναι απενεργοποιημένο, ο διακομιστής θα αρνείται την εκκίνηση νέων συνεδριών επανακωδικοποίησης σε πραγματικό χρόνο.",
+ "transcoding_realtime_resolutions": "Αναλύσεις",
+ "transcoding_realtime_resolutions_description": "Οι αναλύσεις που προσφέρονται για επανακωδικοποίηση σε πραγματικό χρόνο. Οι υψηλότερες αναλύσεις μπορεί να προκαλέσουν προβλήματα αναπαραγωγής, εάν ο διακομιστής δεν μπορεί να τις επανακωδικοποιήσει αρκετά γρήγορα.",
+ "transcoding_realtime_video_codecs": "Κωδικοποιητές βίντεο",
+ "transcoding_realtime_video_codecs_description": "Οι κωδικοποιητές βίντεο που προσφέρονται για επανακωδικοποίηση σε πραγματικό χρόνο. Οι συσκευές-πελάτες θα επιλέγουν την καλύτερη επιλογή που υποστηρίζουν κατά την αναπαραγωγή. Το AV1 είναι πιο αποδοτικό από το HEVC, το οποίο είναι πιο αποδοτικό από το H.264. Όταν χρησιμοποιείτε επιτάχυνση υλικού, επιλέξτε μόνο τους κωδικοποιητές που μπορεί να κωδικοποιήσει ο επιταχυντής. Όταν χρησιμοποιείτε επανακωδικοποίηση μέσω λογισμικού, σημειώστε ότι το H.264 είναι ταχύτερο από το AV1, το οποίο είναι ταχύτερο από το HEVC.",
"transcoding_reference_frames": "Καρέ αναφοράς",
"transcoding_reference_frames_description": "Ο αριθμός των καρέ που χρησιμοποιούνται ως αναφορά κατά τη συμπίεση ενός δεδομένου καρέ. Υψηλότερες τιμές βελτιώνουν την αποδοτικότητα της συμπίεσης, αλλά επιβραδύνουν την κωδικοποίηση. Η τιμή 0 ρυθμίζει αυτό τον αριθμό, αυτόματα.",
"transcoding_required_description": "Μόνο βίντεο που δεν είναι σε αποδεκτή μορφή",
@@ -435,6 +478,8 @@
"user_settings_description": "Διαχείριση ρυθμίσεων χρήστη",
"user_successfully_removed": "Ο χρήστης {email} αφαιρέθηκε με επιτυχία.",
"users_page_description": "Σελίδα χρηστών διαχειριστή",
+ "version_check_channel": "Κανάλι έκδοσης",
+ "version_check_channel_description": "Επιλέξτε το κανάλι έκδοσης για το οποίο θέλετε να λαμβάνετε ανακοινώσεις εκδόσεων",
"version_check_enabled_description": "Ενεργοποίηση ελέγχου έκδοσης",
"version_check_implications": "Η λειτουργία ελέγχου έκδοσης, εξαρτάται από την περιοδική επικοινωνία με το {server}",
"version_check_settings": "Έλεγχος εκδοσης",
@@ -529,6 +574,7 @@
"asset_added_to_album": "Προστέθηκε στο άλμπουμ",
"asset_adding_to_album": "Προστίθεται στο άλμπουμ…",
"asset_created": "Το στοιχείο δημιουργήθηκε",
+ "asset_day_count": "{date}: {count, plural, one {# στοιχείο} other {# στοιχεία}}",
"asset_description_updated": "Η περιγραφή του αντικειμένου έχει ενημερωθεί",
"asset_hashing": "Δημιουργία κατακερματισμού…",
"asset_list_group_by_sub_title": "Ομαδοποίηση κατά",
@@ -551,6 +597,7 @@
"asset_viewer_settings_title": "Προβολή Στοιχείων",
"assets": "Αντικείμενα",
"assets_added_to_album_count": "Προστέθηκε {count, plural, one {# αρχείο} other {# αρχεία}} στο άλμπουμ",
+ "assets_added_to_album_partial_count": "Προστέθηκαν {successCount} από τα {totalCount} {totalCount, plural, one {στοιχείο} other {στοιχεία}} στο άλμπουμ",
"assets_added_to_albums_count": "Προστέθηκαν {assetTotal, plural, one {# αρχείο} other {# αρχεία}} σε {albumTotal, plural, one {# άλμπουμ} other {# άλμπουμ}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Στοιχείο} other {Στοιχεία}} δεν μπορούν να προστεθούν στο άλμπουμ",
"assets_cannot_be_added_to_albums": "Δεν μπορεί να προστεθεί κανένα {count, plural, one {στοιχείο} other {στοιχεία}} σε κανένα από τα άλμπουμ",
@@ -604,12 +651,14 @@
"backup_options": "Επιλογές αντιγράφου ασφαλείας",
"backup_settings_subtitle": "Διαχείριση των ρυθμίσεων μεταφόρτωσης",
"backward": "Προς τα πίσω",
+ "battery_optimization_backup_reliability": "Η απενεργοποίηση των βελτιστοποιήσεων μπαταρίας μπορεί να βελτιώσει την αξιοπιστία των αντιγράφων ασφαλείας στο παρασκήνιο",
"biometric_auth_enabled": "Βιομετρική ταυτοποίηση ενεργοποιήθηκε",
"biometric_locked_out": "Είστε κλειδωμένοι εκτός της βιομετρικής ταυτοποίησης",
"biometric_no_options": "Δεν υπάρχουν διαθέσιμοι τρόποι βιομετρικής ταυτοποίησης",
"biometric_not_available": "Δεν υπάρχει διαθέσιμη βιομετρική ταυτοποίηση σε αυτή τη συσκευή",
"birthdate_set_description": "Η ημερομηνία γέννησης χρησιμοποιείται για τον υπολογισμό της ηλικίας αυτού του ατόμου, τη χρονική στιγμή μιας φωτογραφίας.",
"blurred_background": "Θολό φόντο",
+ "browse_templates": "Περιήγηση σε πρότυπα",
"bugs_and_feature_requests": "Σφάλματα & Αιτήματα Λειτουργιών",
"build": "Κατασκευή",
"build_image": "Κατασκευή Εικόνας",
@@ -629,6 +678,7 @@
"cannot_update_the_description": "Αδύνατη η ενημέρωση της περιγραφής",
"cast": "Προβολή",
"cast_description": "Ρύθμιση των διαθέσιμων προορισμών casting",
+ "change": "Αλλαγή",
"change_date": "Αλλαγή ημερομηνίας",
"change_description": "Αλλαγή περιγραφής",
"change_display_order": "Αλλαγή σειράς εμφάνισης",
@@ -651,6 +701,7 @@
"charging_requirement_mobile_backup": "Η δημιουργία αντιγράφων ασφάλειας στο παρασκήνιο απαιτεί η συσκευή να φορτίζει",
"check_logs": "Ελέγξτε τα αρχεία καταγραφής",
"checksum": "Έλεγχος ακεραιότητας",
+ "choose": "Επιλογή",
"choose_matching_people_to_merge": "Επιλέξτε τα αντίστοιχα άτομα για συγχώνευση",
"city": "Πόλη",
"cleanup_confirm_description": "Το Immich εντόπισε {count} αρχεία (δημιουργήθηκαν πριν από {date}) που έχουν ασφαλώς αντιγραφεί στον διακομιστή. Να διαγραφούν τα τοπικά αντίγραφα από αυτή τη συσκευή;",
@@ -668,6 +719,7 @@
"clear": "Εκκαθάριση",
"clear_all": "Εκκαθάριση όλων",
"clear_all_recent_searches": "Εκκαθάριση όλων των πρόσφατων αναζητήσεων",
+ "clear_failed_count": "Αποτυχία εκκαθάρισης ({count})",
"clear_file_cache": "Εκκαθάριση της Προσωρινής Μνήμης Αρχείων",
"clear_message": "Εκκαθάριση μηνύματος",
"clear_value": "Εκκαθάριση τιμής",
@@ -695,6 +747,7 @@
"comments_are_disabled": "Τα σχόλια είναι απενεργοποιημένα",
"common_create_new_album": "Δημιουργία νέου άλμπουμ",
"completed": "Ολοκληρώθηκε",
+ "configuration": "Ρύθμιση",
"confirm": "Επιβεβαίωση",
"confirm_admin_password": "Επιβεβαίωση κωδικού Διαχειριστή",
"confirm_delete_face": "Είστε σίγουροι ότι θέλετε να διαγράψετε το πρόσωπο του/της {name} από το στοιχείο;",
@@ -709,6 +762,7 @@
"contain": "Περιέχει",
"context": "Συμφραζόμενα",
"continue": "Συνέχεια",
+ "control_bottom_app_bar_add_tags": "Προσθήκη Ετικετών",
"control_bottom_app_bar_delete_from_local": "Διαγραφή από τη συσκευή",
"control_bottom_app_bar_edit_location": "Επεξεργασία Τοποθεσίας",
"control_bottom_app_bar_edit_time": "Επεξεργασία Ημερομηνίας & Ώρας",
@@ -717,6 +771,7 @@
"copied_to_clipboard": "Αντιγράφηκε στο πρόχειρο!",
"copy_error": "Σφάλμα αντιγραφής",
"copy_image": "Αντιγραφή Εικόνας",
+ "copy_json": "Αντιγραφή JSON",
"copy_link": "Αντιγραφή συνδέσμου",
"copy_link_to_clipboard": "Αντιγραφή συνδέσμου στο πρόχειρο",
"copy_password": "Αντιγραφή κωδικού",
@@ -759,7 +814,6 @@
"custom_date": "Προσαρμοσμένη ημερομηνία",
"custom_locale": "Προσαρμοσμένη τοπική ρύθμιση",
"custom_locale_description": "Μορφοποιήστε τις ημερομηνίες, τους χρόνους και τους αριθμούς, σύμφωνα με την επιλεγμένη γλώσσα και περιοχή",
- "custom_url": "Προσαρμοσμένη διεύθυνση URL",
"cutoff_date_description": "Διατήρηση φωτογραφιών από τις τελευταίες…",
"cutoff_day": "{count, plural, one {ημέρα} other {ημέρες}}",
"cutoff_year": "{count, plural, one {έτος} other {έτη}}",
@@ -769,11 +823,15 @@
"date_after": "Ημερομηνία μετά",
"date_and_time": "Ημερομηνία και ώρα",
"date_before": "Ημερομηνία πριν",
+ "date_of_birth": "Ημερομηνία γέννησης",
"date_of_birth_saved": "Η ημερομηνία γέννησης αποθηκεύτηκε επιτυχώς",
"date_range": "Εύρος ημερομηνιών",
+ "date_time_original": "Ημερομηνία/Ώρα λήψης",
"day": "Ημέρα",
"days": "Ημέρες",
"deduplicate_all": "Αφαίρεση όλων των διπλότυπων",
+ "default_quality_subtitle": "Η ποιότητα που χρησιμοποιείται όταν πατάτε κοινή χρήση. Κρατήστε πατημένο το κουμπί κοινής χρήσης για να επιλέγετε κάθε φορά.",
+ "default_share_quality": "Προεπιλεγμένη ποιότητα διαμοιρασμού",
"delete": "Διαγραφή",
"delete_action_confirmation_message": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το αρχείο; Αυτή η ενέργεια θα το μετακινήσει στον κάδο απορριμμάτων του διακομιστή και θα εμφανιστεί μήνυμα για το αν θέλετε να το διαγράψετε και τοπικά",
"delete_action_prompt": "{count} διαγράφηκαν",
@@ -835,7 +893,10 @@
"downloading_asset_filename": "Λήψη στοιχείου {filename}",
"downloading_from_icloud": "Λήψη από το iCloud",
"downloading_media": "Λήψη πολυμέσων",
+ "drag_to_reorder": "Σύρετε για αναδιάταξη",
"drop_files_to_upload": "Σύρετε αρχεία εδώ για να τα ανεβάσετε",
+ "duplicate": "Διπλότυπο",
+ "duplicate_workflow": "Διπλότυπη ροή εργασίας",
"duplicates": "Διπλότυπα",
"duplicates_description": "Επιλύστε κάθε ομάδα υποδεικνύοντας ποιες, εάν υπάρχουν, είναι διπλότυπες.",
"duration": "Διάρκεια",
@@ -930,6 +991,7 @@
"failed_to_remove_product_key": "Αποτυχία αφαίρεσης κλειδιού προϊόντος",
"failed_to_reset_pin_code": "Αποτυχία επαναφοράς του PIN",
"failed_to_stack_assets": "Αποτυχία στην συμπίεση των στοιχείων",
+ "failed_to_tag_assets": "Αποτυχία προσθήκης ετικετών στα στοιχεία",
"failed_to_unstack_assets": "Αποτυχία στην αποσυμπίεση των στοιχείων",
"failed_to_update_notification_status": "Αποτυχία ενημέρωσης της κατάστασης ειδοποίησης",
"incorrect_email_or_password": "Λανθασμένο email ή κωδικός πρόσβασης",
@@ -1041,15 +1103,18 @@
"export_as_json": "Εξαγωγή ως JSON",
"export_database": "Εξαγωγή βάσης δεδομένων",
"export_database_description": "Εξαγωγή της SQLite βάσης δεδομένων",
+ "exposure_time": "Χρόνος Έκθεσης",
"extension": "Επέκταση",
"external": "Εξωτερικός",
"external_libraries": "Εξωτερικές βιβλιοθήκες",
"external_network": "Εξωτερικό δίκτυο",
"external_network_sheet_info": "Όταν δεν είστε συνδεδεμένοι στο προτιμώμενο δίκτυο Wi-Fi, η εφαρμογή θα συνδεθεί με τον διακομιστή μέσω του πρώτου από τα παρακάτω URLs που μπορεί να βρει διαθέσιμο, ξεκινώντας από το πάνω προς το κάτω",
+ "f_number": "Διάφραγμα",
"face_unassigned": "Μη ανατεθειμένο",
"failed": "Απέτυχε",
"failed_count": "Αποτυχημένα: {count}",
"failed_to_authenticate": "Αποτυχία ταυτοποίησης",
+ "failed_to_delete_file": "Αποτυχία διαγραφής αρχείου",
"failed_to_load_assets": "Αποτυχία φόρτωσης στοιχείων",
"failed_to_load_folder": "Αποτυχία φόρτωσης φακέλου",
"favorite": "Αγαπημένο",
@@ -1071,6 +1136,7 @@
"filters": "Φίλτρα",
"first": "Αρχικά",
"fix_incorrect_match": "Διόρθωση λανθασμένης αντιστοίχισης",
+ "focal_length": "Εστιακή Απόσταση",
"folder": "Φάκελος",
"folder_not_found": "Ο φάκελος δεν βρέθηκε",
"folders": "Φάκελοι",
@@ -1081,6 +1147,7 @@
"free_up_space_description": "Μετακινήστε τις φωτογραφίες και τα βίντεο που έχουν αντιγραφεί στον κάδο της συσκευής σας για να απελευθερώσετε χώρο. Τα αντίγραφά σας στο διακομιστή, παραμένουν ασφαλή.",
"free_up_space_settings_subtitle": "Απελευθέρωση χώρου στη συσκευή",
"full_path": "Πλήρης διαδρομή: {path}",
+ "full_path_or_folder": "Πλήρης διαδρομή ή φάκελος",
"gcast_enabled": "Μετάδοση περιεχομένου Google Cast",
"gcast_enabled_description": "Αυτό το χαρακτηριστικό φορτώνει εξωτερικούς πόρους από τη Google για να λειτουργήσει.",
"general": "Γενικά",
@@ -1152,6 +1219,7 @@
"individual_share": "Μεμονωμένος διαμοιρασμός",
"individual_shares": "Μεμονωμένες κοινοποιήσεις",
"info": "Πληροφορίες",
+ "integrity_checks": "Έλεγχοι Ακεραιότητας",
"interval": {
"day_at_onepm": "Κάθε μέρα στη 1μμ",
"hours": "Κάθε {hours, plural, one {ώρα} other {{hours, number} ώρες}}",
@@ -1162,6 +1230,7 @@
"invalid_date_format": "Μη έγκυρη μορφή ημερομηνίας",
"invite_people": "Πρόσκληση Ατόμων",
"invite_to_album": "Πρόσκληση σε άλμπουμ",
+ "iso": "ISO",
"items_count": "{count, plural, one {# αντικείμενο} other {# αντικείμενα}}",
"jobs": "Εργασίες",
"keep": "Διατήρηση",
@@ -1190,6 +1259,7 @@
"leave": "Εγκατάλειψη",
"leave_album": "Αποχώρηση από το άλμπουμ",
"lens_model": "Μοντέλο φακού",
+ "less": "Λιγότερα",
"let_others_respond": "Επέτρεψε σε άλλους να απαντήσουν",
"level": "Επίπεδο",
"library": "Βιβλιοθήκη",
@@ -1210,6 +1280,8 @@
"link_to_oauth": "Σύνδεση στον OAuth",
"linked_oauth_account": "Ο OAuth λογαριασμός συνδέθηκε",
"list": "Λίστα",
+ "live": "Ζωντανά",
+ "load_more": "Φόρτωση Περισσότερων",
"loading": "Φόρτωση",
"loading_search_results_failed": "Η φόρτωση αποτελεσμάτων αναζήτησης απέτυχε",
"local": "Τοπικά",
@@ -1250,9 +1322,9 @@
"login_form_failed_login": "Σφάλμα κατά τη σύνδεσή σας, ελέγξτε τη διεύθυνση URL του διακομιστή, το email και τον κωδικό πρόσβασης",
"login_form_handshake_exception": "Υπήρξε σφάλμα χειραψίας με τον διακομιστή. Ενεργοποιήστε την υποστήριξη αυτο-υπογεγραμμένου πιστοποιητικού στις ρυθμίσεις εάν χρησιμοποιείτε αυτο-υπογεγραμμένο πιστοποιητικό.",
"login_form_password_hint": "κωδικός πρόσβασης",
- "login_form_server_empty": "Εισαγάγετε μια διεύθυνση URL διακομιστή.",
- "login_form_server_error": "Δεν ήταν δυνατή η σύνδεση με τον διακομιστή.",
- "login_has_been_disabled": "Η σύνδεση έχει απενεργοποιηθεί.",
+ "login_form_server_empty": "Εισαγάγετε μια διεύθυνση URL διακομιστή",
+ "login_form_server_error": "Δεν ήταν δυνατή η σύνδεση με τον διακομιστή",
+ "login_has_been_disabled": "Η σύνδεση έχει απενεργοποιηθεί",
"login_password_changed_error": "Παρουσιάστηκε σφάλμα κατά την ενημέρωση του κωδικού πρόσβασής σας",
"login_password_changed_success": "Ο κωδικός πρόσβασης ενημερώθηκε με επιτυχία",
"logout_all_device_confirmation": "Είστε βέβαιοι ότι θέλετε να αποσυνδεθείτε από όλες τις συσκευές;",
@@ -1303,6 +1375,7 @@
"map_location_picker_page_use_location": "Χρησιμοποιήστε αυτήν την τοποθεσία",
"map_location_service_disabled_content": "Η υπηρεσία τοποθεσίας πρέπει να είναι ενεργοποιημένη για την εμφάνιση στοιχείων από την τρέχουσα τοποθεσία σας. Θέλετε να το ενεργοποιήσετε τώρα;",
"map_location_service_disabled_title": "Η υπηρεσία τοποθεσίας απενεργοποιήθηκε",
+ "map_marker_for_image": "Σήμανση στον χάρτη για φωτογραφία που τραβήχτηκε στο {city}, {country}",
"map_marker_with_image": "Χάρτης δείκτη με εικόνα",
"map_no_location_permission_content": "Απαιτείται άδεια τοποθεσίας για την εμφάνιση στοιχείων από την τρέχουσα τοποθεσία σας. Θέλετε να το επιτρέψετε τώρα;",
"map_no_location_permission_title": "Η άδεια τοποθεσίας απορρίφθηκε",
@@ -1320,6 +1393,38 @@
"marked_all_as_read": "Όλα επισημάνθηκαν ως αναγνωσμένα",
"matches": "Αντιστοιχίες",
"matching_assets": "Αντιστοιχία στοιχείων",
+ "media_chrome": {
+ "auto": "Αυτόματα",
+ "captions": "Λεζάντες",
+ "captions_off": "Κλειστό",
+ "closed_captions": "υπότιτλοι για κωφούς/βαρήκοους",
+ "decode_error": "Σφάλμα αποκωδικοποίησης",
+ "disable_captions": "Απενεργοποίηση υπότιτλων",
+ "enable_captions": "Ενεργοποίηση υπότιτλων",
+ "enter_fullscreen_mode": "Είσοδος σε πλήρη οθόνη",
+ "exit_fullscreen_mode": "Έξοδος από πλήρη οθόνη",
+ "loop": "Επανάληψη",
+ "media_error_description": "Ένα σφάλμα πολυμέσων προκάλεσε τη διακοπή της αναπαραγωγής. Το αρχείο πολυμέσων μπορεί να είναι κατεστραμμένο ή το πρόγραμμα περιήγησής σας δεν υποστηρίζει αυτήν τη μορφή.",
+ "media_loading": "φόρτωση πολυμέσων",
+ "mute": "Σίγαση",
+ "network_error": "Σφάλμα δικτύου",
+ "network_error_description": "Ένα σφάλμα δικτύου προκάλεσε την αποτυχία λήψης του αρχείου πολυμέσων.",
+ "not_supported_error": "Η Πηγή Δεν Υποστηρίζεται",
+ "playback_rate": "Ταχύτητα αναπαραγωγής",
+ "playback_rate_current": "τρέχουσα ταχύτητα αναπαραγωγής",
+ "playback_rate_value": "Ταχύτητα αναπαραγωγής {playbackRate}",
+ "playback_time": "χρόνος αναπαραγωγής",
+ "quality": "Ποιότητα",
+ "second": "δευτερόλεπτο",
+ "seconds": "δευτερόλεπτα",
+ "time_value_of_total_time": "{currentTime} από {totalTime}",
+ "time_value_remaining": "{time} υπολειπόμενος χρόνος",
+ "unmute": "Ενεργοποίηση ήχου",
+ "unsupported_error_description": "Παρουσιάστηκε ένα μη υποστηριζόμενο σφάλμα. Ο διακομιστής ή το δίκτυο απέτυχαν ή ο περιηγητής σας δεν υποστηρίζει αυτήν τη μορφή.",
+ "video_not_loaded_unknown_time": "το βίντεο δεν φορτώθηκε, άγνωστη διάρκεια.",
+ "video_player": "πρόγραμμα αναπαραγωγής βίντεο",
+ "volume": "ένταση"
+ },
"media_type": "Τύπος πολυμέσου",
"memories": "Αναμνήσεις",
"memories_all_caught_up": "Συγχρονισμένα",
@@ -1336,6 +1441,8 @@
"merge_people_prompt": "Θέλετε να συγχωνεύσετε αυτά τα άτομα; Αυτή η ενέργεια είναι μη αναστρέψιμη.",
"merge_people_successfully": "Τα άτομα συγχωνεύθηκαν με επιτυχία",
"merged_people_count": "Έγινε συγχώνευση {count, plural, one {# ατόμου} other {# ατόμων}}",
+ "minFaces": "Ελάχιστος αριθμός προσώπων",
+ "minFaces_description": "Ο ελάχιστος αριθμός αναγνωρισμένων προσώπων για την εμφάνιση ενός ατόμου",
"minimize": "Ελαχιστοποίηση",
"minute": "Λεπτό",
"minutes": "Λεπτά",
@@ -1343,8 +1450,10 @@
"mobile_app": "Εφαρμογή για κινητά",
"mobile_app_download_onboarding_note": "Κατέβασε την συνοδευτική εφαρμογή για κινητά χρησιμοποιώντας τις παρακάτω επιλογές",
"model": "Μοντέλο",
+ "modify_date": "Ημερομηνία Τροποποίησης",
"month": "Μήνας",
"more": "Περισσότερα",
+ "motion": "Κίνηση",
"move": "Μετακίνηση",
"move_off_locked_folder": "Μετακίνηση έξω από τον κλειδωμένο φάκελο",
"move_to": "Μετακίνηση σε",
@@ -1371,6 +1480,7 @@
"never": "Ποτέ",
"new_album": "Νέο Άλμπουμ",
"new_api_key": "Νέο API Key",
+ "new_feature": "Νέα λειτουργία",
"new_password": "Νέος κωδικός πρόσβασης",
"new_person": "Νέο άτομο",
"new_pin_code": "Νέος κωδικός PIN",
@@ -1408,6 +1518,7 @@
"no_results": "Κανένα αποτέλεσμα",
"no_results_description": "Δοκιμάστε ένα συνώνυμο ή πιο γενική λέξη-κλειδί",
"no_shared_albums_message": "Δημιουργήστε ένα άλμπουμ για να μοιράζεστε φωτογραφίες και βίντεο με άτομα στο δίκτυό σας",
+ "no_steps": "Δεν έχουν προστεθεί ακόμα βήματα",
"none": "Κανένα",
"not_allowed": "Δεν επιτρέπεται",
"not_available": "Μ/Δ (Μη Διαθέσιμο)",
@@ -1415,6 +1526,10 @@
"not_selected": "Δεν επιλέχθηκε",
"notes": "Σημειώσεις",
"nothing_here_yet": "Τίποτα εδώ ακόμα",
+ "notification_backup_reliability": "Ενεργοποιήστε τις ειδοποιήσεις για να βελτιώσετε την αξιοπιστία του αντιγράφου ασφαλείας στο παρασκήνιο",
+ "notification_enabled_list_tile_content": "Το Immich χρησιμοποιεί ειδοποιήσεις για την αξιόπιστη λειτουργία των αντιγράφων ασφαλείας στο παρασκήνιο. Μπορείτε να τις διαχειριστείτε από τις ρυθμίσεις της συσκευής σας.",
+ "notification_enabled_list_tile_open_button": "Άνοιγμα ρυθμίσεων",
+ "notification_enabled_list_tile_title": "Ειδοποιήσεις ενεργοποιημένες",
"notification_permission_dialog_content": "Για να ενεργοποιήσετε τις ειδοποιήσεις, μεταβείτε στις Ρυθμίσεις και επιλέξτε να επιτρέπεται.",
"notification_permission_list_tile_content": "Παραχωρήστε άδεια για ενεργοποίηση ειδοποιήσεων.",
"notification_permission_list_tile_enable_button": "Ενεργοποίηση Ειδοποιήσεων",
@@ -1426,6 +1541,8 @@
"obtainium_configurator": "Ρυθμιστής Obtainium",
"obtainium_configurator_instructions": "Χρησιμοποίησε το Obtainium για να εγκαταστήσεις και να ενημερώσεις απευθείας την εφαρμογή Android από τα κυκλοφορίες του Immich στο GitHub. Δημιούργησε ένα API key και επέλεξε μια παραλλαγή για να δημιουργήσεις το σύνδεσμο ρύθμισης του Obtainium",
"ocr": "OCR",
+ "ocr_body": "Το Immich διαβάζει πλέον το κείμενο μέσα στις φωτογραφίες σας, ώστε να μπορείτε να τις αναζητάτε με βάση το περιεχόμενό τους.",
+ "ocr_title": "Αναζήτηση κειμένου στις φωτογραφίες σας",
"official_immich_resources": "Επίσημοι Πόροι του Immich",
"offline": "Εκτός σύνδεσης",
"offset": "Μετατόπιση",
@@ -1444,6 +1561,8 @@
"open": "Άνοιγμα",
"open_calendar": "Άνοιγμα ημερολογίου",
"open_in_browser": "Άνοιγμα στο πρόγραμμα περιήγησης",
+ "open_in_immich_body": "Ορίστε το Immich ως εφαρμογή συλλογής στο Android, ώστε να ανοίγετε φωτογραφίες απευθείας από άλλες εφαρμογές.",
+ "open_in_immich_title": "Άνοιγμα φωτογραφιών στο Immich",
"open_in_map_view": "Άνοιγμα σε προβολή χάρτη",
"open_in_openstreetmap": "Άνοιγμα στο OpenStreetMap",
"open_the_search_filters": "Ανοίξτε τα φίλτρα αναζήτησης",
@@ -1452,6 +1571,7 @@
"organize_into_albums": "Οργάνωση σε άλμπουμ",
"organize_into_albums_description": "Τοποθετείστε τις υπάρχουσες φωτογραφίες σε άλμπουμ χρησιμοποιώντας τις τρέχουσες ρυθμίσεις συγχρονισμού",
"organize_your_library": "Οργανώστε τη βιβλιοθήκη σας",
+ "orientation": "Προσανατολισμός",
"original": "πρωτότυπο",
"other": "Άλλες",
"other_devices": "Άλλες συσκευές",
@@ -1500,7 +1620,7 @@
"person": "Άτομο",
"person_age_months": "{months, plural, one {# μήνας} other {# μήνες}} παλιά",
"person_age_year_months": "1 χρόνος, {months, plural, one {# μήνας} other {# μήνες}} παλιά",
- "person_age_years": "{years, plural, other {# χρόνια}} παλιά",
+ "person_age_years": "{years, plural, one {# έτους} other {# ετών}}",
"person_birthdate": "Γεννηθείς στις {date}",
"person_hidden": "{name}{hidden, select, true { (κρυφό)} other {}}",
"person_recognized": "Άτομο αναγνωρίστηκε",
@@ -1526,6 +1646,8 @@
"play_original_video_setting_description": "Προτίμησε την αναπαραγωγή των αρχικών βίντεο αντί των μετακωδικοποιημένων. Αν το αρχικό αρχείο δεν είναι συμβατό, ίσως να μην αναπαραχθεί σωστά.",
"play_transcoded_video": "Αναπαραγωγή μετακωδικοποιημένου βίντεο",
"please_auth_to_access": "Παρακαλώ πιστοποιηθείτε για να αποκτήσετε πρόσβαση",
+ "plugin_method_filter_type": "Φίλτρο",
+ "plugin_method_filter_type_description": "Αυτή η μέθοδος μπορεί να φιλτράρει συμβάντα και, ανάλογα με τις συνθήκες, να εμποδίζει την εκτέλεση των επόμενων βημάτων",
"port": "Θύρα",
"preferences_settings_subtitle": "Διαχειριστείτε τις προτιμήσεις της εφαρμογής",
"preferences_settings_title": "Προτιμήσεις",
@@ -1546,6 +1668,7 @@
"profile_drawer_readonly_mode": "Η λειτουργία μόνο-για-ανάγνωση ενεργοποιήθηκε. Κρατήστε πατημένο το εικονίδιο του χρήστη για απενεργοποίηση.",
"profile_image_of_user": "Εικόνα προφίλ του χρήστη {user}",
"profile_picture_set": "Ορισμός εικόνας προφίλ.",
+ "projection_type": "Τύπος Προβολής",
"public_album": "Δημόσιο άλμπουμ",
"public_share": "Δημόσια Κοινή Χρήση",
"purchase_account_info": "Υποστηρικτής",
@@ -1598,7 +1721,10 @@
"recent": "Πρόσφατα",
"recent_searches": "Πρόσφατες αναζητήσεις",
"recently_added": "Προστέθηκαν πρόσφατα",
+ "recently_added_body": "Μεταβείτε απευθείας σε όλα όσα έχετε προσθέσει πρόσφατα, σε μια αποκλειστική σελίδα.",
+ "recently_added_description": "Περιηγηθείτε στα αρχεία σας, ταξινομημένα κατά ημερομηνία μεταφόρτωσής τους στο Immich",
"recently_added_page_title": "Προστέθηκαν Πρόσφατα",
+ "recently_added_title": "Προστέθηκαν πρόσφατα",
"recently_taken": "Λήφθηκαν πρόσφατα",
"refresh": "Ανανέωση",
"refresh_encoded_videos": "Ανανέωση κωδικοποιημένων βίντεο",
@@ -1618,6 +1744,7 @@
"remove_assets_shared_link_confirmation": "Είστε σίγουροι ότι θέλετε να αφαιρέσετε {count, plural, one {# στοιχείο} other {# στοιχεία}} από αυτόν τον κοινόχρηστο σύνδεσμο;",
"remove_assets_title": "Αφαίρεση στοιχείων;",
"remove_custom_date_range": "Αφαίρεση προσαρμοσμένης χρονικής περιόδου",
+ "remove_filter": "Αφαίρεση φίλτρου",
"remove_from_album": "Αφαίρεση από το άλμπουμ",
"remove_from_album_action_prompt": "{count} αφαιρέθηκαν από το άλμπουμ",
"remove_from_favorites": "Αφαίρεση από τα αγαπημένα",
@@ -1689,6 +1816,8 @@
"search_by_description_example": "Ημερήσια πεζοπορία στο Πάπιγκο",
"search_by_filename": "Αναζήτηση βάσει ονόματος αρχείου ή επέκτασης αρχείου",
"search_by_filename_example": "π.χ. IMG_1234.JPG ή PNG",
+ "search_by_full_path": "Αναζήτηση με βάση την πλήρη διαδρομή ή το φάκελο",
+ "search_by_full_path_example": "/Γιάννης/Projects/3D_Printing/2026-07-01 — μπορείτε να κάνετε αναζήτηση για όρους όπως Projects, 3D, Printing, 2026 κ.λπ.",
"search_by_ocr": "Αναζήτηση κατά OCR",
"search_by_ocr_example": "Λάτε",
"search_camera_lens_model": "Αναζήτηση μοντέλου φακού...",
@@ -1732,7 +1861,7 @@
"searching_locales": "Αναζήτηση τοποθεσιών...",
"second": "Δευτερόλεπτο",
"see_all_people": "Προβολή όλων των ατόμων",
- "select": "Επιλογή",
+ "select": "Επιλέξτε",
"select_album": "Επιλογή άλμπουμ",
"select_album_cover": "Επιλέξτε εξώφυλλο άλμπουμ",
"select_albums": "Επιλογή πολλών άλμπουμ",
@@ -1750,6 +1879,7 @@
"select_person": "Επίλεξε άτομο",
"select_person_to_tag": "Επιλέξτε ένα άτομο για επισήμανση",
"select_photos": "Επιλέξτε φωτογραφίες",
+ "select_quality": "Επιλέξτε ποιότητα",
"select_trash_all": "Επιλέξτε διαγραφή όλων",
"selected": "Επιλεγμένοι",
"selected_count": "{count, plural, other {# επιλεγμένοι}}",
@@ -1799,6 +1929,10 @@
"share": "Κοινοποίηση",
"share_dialog_preparing": "Προετοιμασία...",
"share_link": "Σύνδεσμος κοινοποίησης",
+ "share_original": "Χρήση αρχικού (μεγάλο μέγεθος)",
+ "share_preview": "Χρήση μικρογραφίας (μικρό μέγεθος)",
+ "share_quality_body": "Κρατήστε πατημένο το κουμπί κοινοποίησης για να επιλέξετε την ποιότητα της εικόνας πριν την κοινοποιήσετε.",
+ "share_quality_title": "Επιλέξτε την ποιότητα κοινοποίησης",
"shared": "Σε κοινή χρήση",
"shared_album_activities_input_disable": "Το σχόλιο είναι απενεργοποιημένο",
"shared_album_activity_remove_content": "Θέλετε να διαγράψετε αυτήν τη δραστηριότητα;",
@@ -1813,7 +1947,9 @@
"shared_link_app_bar_title": "Κοινόχρηστοι Σύνδεσμοι",
"shared_link_clipboard_copied_massage": "Αντιγράφηκε στο πρόχειρο",
"shared_link_create_error": "Σφάλμα κατά τη δημιουργία κοινόχρηστου συνδέσμου",
- "shared_link_custom_url_description": "Αποκτήστε πρόσβαση σε αυτόν τον κοινόχρηστο σύνδεσμο με μια προσαρμοσμένη διεύθυνση URL",
+ "shared_link_custom_url_description": "Αποκτήστε πρόσβαση σε αυτόν τον κοινόχρηστο σύνδεσμο με ένα προσαρμοσμένο URL",
+ "shared_link_custom_url_title": "Προσαρμοσμένο URL",
+ "shared_link_custom_url_warning": "Προειδοποίηση: η χρήση κάθετου χαρακτήρα (/) σε προσαρμοσμένο όνομα URL ενδέχεται να προκαλέσει απρόβλεπτη συμπεριφορά.",
"shared_link_edit_description_hint": "Εισαγάγετε την περιγραφή της κοινής χρήσης",
"shared_link_edit_expire_after_option_day": "1 ημέρα",
"shared_link_edit_expire_after_option_days": "{count} ημέρες",
@@ -1858,7 +1994,9 @@
"show_in_timeline": "Εμφάνιση στο χρονολόγιο",
"show_in_timeline_setting_description": "Εμφάνιση φωτογραφιών και βίντεο από αυτόν τον χρήστη στο χρονολόγιό σας",
"show_keyboard_shortcuts": "Εμφάνιση συντομεύσεων πληκτρολογίου",
+ "show_less": "Προβολή λιγότερων",
"show_metadata": "Εμφάνιση μεταδεδομένων",
+ "show_more_fields": "{count, plural, one {Εμφάνιση # επιπλέον πεδίου} other {Εμφάνιση # επιπλέον πεδίων}}",
"show_or_hide_info": "Εμφάνιση ή απόκρυψη πληροφοριών",
"show_password": "Εμφάνιση κωδικού",
"show_person_options": "Εμφάνιση επιλογών ατόμου",
@@ -1866,6 +2004,7 @@
"show_schema": "Εμφάνιση σχήματος",
"show_search_options": "Εμφάνιση επιλογών αναζήτησης",
"show_shared_links": "Εμφάνιση κοινών συνδέσμων",
+ "show_slideshow_metadata_overlay": "Εμφάνιση επικάλυψης πληροφοριών εικόνας",
"show_slideshow_transition": "Εμφάνιση μετάβασης παρουσίασης",
"show_supporter_badge": "Σήμα υποστηρικτή",
"show_supporter_badge_description": "Εμφάνιση σήματος υποστηρικτή",
@@ -1877,13 +2016,21 @@
"sign_out": "Αποσύνδεση",
"sign_up": "Εγγραφή",
"size": "Μέγεθος",
+ "skip": "Παράλειψη",
"skip_to_content": "Μετάβαση στο περιεχόμενο",
"skip_to_folders": "Παράκαμψη στους φακέλους",
"skip_to_tags": "Παράκαμψη στις ετικέτες",
"slideshow": "Παρουσίαση",
+ "slideshow_body": "Καθίστε αναπαυτικά και απολαύστε τις φωτογραφίες σας να προβάλλονται σε μια παρουσίαση πλήρους οθόνης.",
+ "slideshow_metadata_overlay_mode": "Περιεχόμενο επικάλυψης",
+ "slideshow_metadata_overlay_mode_description_only": "Μόνο περιγραφή",
+ "slideshow_metadata_overlay_mode_full": "Πλήρης",
"slideshow_repeat": "Επανάληψη παρουσίασης",
"slideshow_repeat_description": "Εκκίνηση από την αρχή όταν τελειώσει η παρουσίαση",
"slideshow_settings": "Ρυθμίσεις παρουσίασης",
+ "slideshow_title": "Παρουσίαση φωτογραφιών",
+ "smart_album": "Έξυπνο άλμπουμ",
+ "some_assets_already_have_a_location_warning": "Ορισμένα από τα επιλεγμένα στοιχεία έχουν ήδη δεδομένα τοποθεσίας",
"sort_albums_by": "Ταξινόμηση άλμπουμ κατά...",
"sort_created": "Ημερομηνία Δημιουργίας",
"sort_items": "Αριθμός αντικειμένων",
@@ -1904,6 +2051,10 @@
"start_date_before_end_date": "Η ημερομηνία έναρξης πρέπει να είναι πριν από την ημερομηνία λήξης",
"state": "Νομός",
"status": "Κατάσταση",
+ "step_delete": "Διαγραφή βήματος",
+ "step_delete_confirm": "Θέλετε σίγουρα να διαγράψετε αυτό το βήμα;",
+ "step_details": "Λεπτομέρειες βήματος",
+ "steps": "Βήματα",
"stop_casting": "Διακοπή μετάδοσης",
"stop_motion_photo": "Διέκοψε την Φωτογραφία Κίνησης",
"stop_photo_sharing": "Διακοπή κοινής χρήσης των φωτογραφιών σας;",
@@ -1984,10 +2135,12 @@
"trash_page_info": "Τα στοιχεία που έχουν απορριφθεί θα διαγραφούν οριστικά μετά από {days} ημέρες",
"trashed_items_will_be_permanently_deleted_after": "Τα στοιχεία που βρίσκονται στον κάδο απορριμμάτων θα διαγραφούν οριστικά μετά από {days, plural, one {# ημέρα} other {# ημέρες}}.",
"trigger": "Ενεργοποιητής",
- "trigger_asset_uploaded": "Το στοιχείο ανέβηκε",
+ "trigger_asset_metadata_extraction": "Εξαγωγή μεταδεδομένων στοιχείων",
+ "trigger_asset_metadata_extraction_description": "Ενεργοποιείται αυτόματα όταν εξάγονται τα μεταδεδομένα EXIF ενός αρχείου",
+ "trigger_asset_uploaded": "Μεταφόρτωση Στοιχείου",
"trigger_asset_uploaded_description": "Ενεργοποιείται όταν ανεβαίνει ένα νέο στοιχείο",
"trigger_person_recognized": "Άτομο Αναγνωρίστηκε",
- "trigger_person_recognized_description": "Ενεργοποιείται όταν ανιχνεύεται άτομο",
+ "trigger_person_recognized_description": "Ενεργοποιείται αυτόματα όταν ανιχνεύεται ένα άτομο",
"troubleshoot": "Επίλυση προβλημάτων",
"type": "Τύπος",
"unable_to_change_pin_code": "Αδυναμία αλλαγής κωδικού PIN",
@@ -2003,6 +2156,7 @@
"unknown": "Άγνωστο",
"unknown_country": "Άγνωστη Χώρα",
"unknown_date": "Άγνωστη ημερομηνία",
+ "unknown_schema": "Άγνωστη δομή",
"unknown_year": "Άγνωστο Έτος",
"unlimited": "Απεριόριστο",
"unlink_motion_video": "Αποσυνδέστε το βίντεο κίνησης",
@@ -2027,6 +2181,7 @@
"updated_password": "Ο κωδικός πρόσβασης ενημερώθηκε",
"upload": "Μεταφόρτωση",
"upload_concurrency": "Ταυτόχρονη μεταφόρτωση",
+ "upload_day_count": "{date}: {count, plural, one {# μεταφόρτωση} other {# μεταφορτώσεις}}",
"upload_details": "Λεπτομέρειες μεταφόρτωσης",
"upload_error_with_count": "Σφάλμα μεταφόρτωσης για {count, plural, one {# αρχείο} other {# αρχεία}}",
"upload_errors": "Η μεταφόρτωση ολοκληρώθηκε με {count, plural, one {# σφάλμα} other {# σφάλματα}}, ανανεώστε τη σελίδα για να δείτε νέα στοιχεία μεταφόρτωσης.",
@@ -2037,9 +2192,13 @@
"upload_status_errors": "Σφάλματα",
"upload_status_uploaded": "Μεταφορτώθηκαν",
"upload_success": "Η μεταφόρτωση ολοκληρώθηκε, ανανεώστε τη σελίδα για να δείτε τα νέα αντικείμενα.",
+ "upload_to_album_body": "Για χρήστες που δεν χρησιμοποιούν τη χειροκίνητη μεταφόρτωση, μπορείτε πλέον να προσθέτετε απευθείας τοπικές φωτογραφίες σε ένα άλμπουμ κατά τη μεταφόρτωσή τους. Δεν χρειάζεται πια να τις ανεβάζετε πρώτα και να τις προσθέτετε σε άλμπουμ αργότερα.",
+ "upload_to_album_title": "Μεταφόρτωση απευθείας σε άλμπουμ",
"upload_to_immich": "Μεταφόρτωση στο Immich ({count})",
"uploading": "Μεταφορτώνεται",
"uploading_media": "Μεταφόρτωση πολυμέσων",
+ "uploads": "Μεταφορτώσεις",
+ "uploads_count": "{count, plural, one {# μεταφόρτωση} other {# μεταφορτώσεις}}",
"url": "URL",
"usage": "Χρήση",
"use_biometric": "Χρήση βιομετρικών στοιχείων",
@@ -2047,6 +2206,7 @@
"use_browser_locale_description": "Μορφοποιήστε τις ημερομηνίες, τους χρόνους και τους αριθμούς σύμφωνα με τη γλώσσα του προγράμματος περιήγησής σας",
"use_current_connection": "Χρήση τρέχουσας σύνδεσης",
"use_custom_date_range": "Χρήση προσαρμοσμένου εύρους ημερομηνιών",
+ "use_template": "Χρήση πρότυπου",
"user": "Χρήστης",
"user_has_been_deleted": "Αυτός ο χρήστης έχει διεγραφεί.",
"user_id": "ID Χρήστη",
@@ -2074,6 +2234,7 @@
"video": "Βίντεο",
"video_hover_setting": "Προεπισκόπηση βίντεο με το δείκτη του ποντικιού",
"video_hover_setting_description": "Προεπισκόπηση βίντεο όταν το ποντίκι βρίσκεται πάνω από το στοιχείο. Ακόμη και όταν είναι απενεργοποιημένη, η αναπαραγωγή μπορεί να ξεκινήσει τοποθετώντας το δείκτη του ποντικιού πάνω από το εικονίδιο αναπαραγωγής.",
+ "video_quality": "Ποιότητα βίντεο",
"videos": "Βίντεο",
"videos_count": "{count, plural, one {# Βίντεο} other {# Βίντεο}}",
"view": "Προβολή",
@@ -2100,9 +2261,14 @@
"week": "Εβδομάδα",
"welcome": "Καλωσορίσατε",
"welcome_to_immich": "Καλωσορίσατε στο Ιmmich",
+ "whats_new": "Τι νέο υπάρχει",
+ "whats_new_settings_subtitle": "Δείτε τι νέο υπάρχει στο Immich",
+ "whats_new_version": "Έκδοση {version}",
+ "when": "Πότε",
"width": "Πλάτος",
"wifi_name": "Όνομα Wi-Fi",
- "workflow_delete_prompt": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή τη ροή εργασίας;",
+ "workflow": "Ροή εργασίας",
+ "workflow_delete_prompt": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήω τη ροή εργασίας;",
"workflow_deleted": "Η ροή εργασίας διαγράφηκε",
"workflow_description": "Περιγραφή ροής εργασίας",
"workflow_info": "Πληροφορίες ροής εργασίας",
@@ -2111,10 +2277,12 @@
"workflow_name": "Όνομα ροής εργασίας",
"workflow_navigation_prompt": "Είστε σίγουροι ότι θέλετε να φύγετε χωρίς να αποθηκεύσετε τις αλλαγές σας;",
"workflow_summary": "Σύνοψη ροής εργασίας",
+ "workflow_templates": "Πρότυπα ροών εργασίας",
"workflow_update_success": "Η ροή εργασίας ενημερώθηκε με επιτυχία",
"workflows": "Ροές εργασίας",
"workflows_help_text": "Οι ροές εργασίας αυτοματοποιούν ενέργειες στα στοιχεία σας με βάση ενεργοποιητές και φίλτρα",
"wrong_pin_code": "Λάθος κωδικός PIN",
+ "x_of_total": "{x}/{total}",
"year": "Έτος",
"years_ago": "πριν από {years, plural, one {# χρόνο} other {# χρόνια}}",
"yes": "Ναι",
diff --git a/i18n/en.json b/i18n/en.json
index 1587fde604..0acfe68fa3 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -30,6 +30,7 @@
"add_to_album_bottom_sheet_added": "Added to {album}",
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
"add_to_album_bottom_sheet_some_local_assets": "Some local assets could not be added to album",
+ "add_to_album_item_count": "Add {count, plural, one {# item} other {# items}} to album",
"add_to_albums": "Add to albums",
"add_to_albums_count": "Add to albums ({count})",
"add_to_bottom_bar": "Add to",
@@ -108,6 +109,21 @@
"image_thumbnail_quality_description": "Thumbnail quality from 1-100. Higher is better, but produces larger files and can reduce app responsiveness.",
"image_thumbnail_title": "Thumbnail Settings",
"import_config_from_json_description": "Import system config by uploading a JSON config file",
+ "integrity_checks_checksum_files": "Checksum files",
+ "integrity_checks_checksum_files_description": "Configure the checksum check",
+ "integrity_checks_checksum_files_enable_description": "Enable the checksum check",
+ "integrity_checks_checksum_files_percentage_limit": "Percentage limit",
+ "integrity_checks_checksum_files_percentage_limit_description": "Configure the maximum percentage between 0.01 and 1 for how much the checksum check should run each interval.",
+ "integrity_checks_checksum_files_time_limit": "Time limit",
+ "integrity_checks_checksum_files_time_limit_description": "Configure the maximum duration for which the checksum check should run each interval. (ms)",
+ "integrity_checks_missing_files": "Missing files",
+ "integrity_checks_missing_files_description": "Configure the frequency and enable or disable the missing files check",
+ "integrity_checks_missing_files_enable_description": "Enable the missing files check",
+ "integrity_checks_settings": "Integrity checks",
+ "integrity_checks_settings_description": "Manage integrity checks intervals",
+ "integrity_checks_untracked_files": "Untracked files",
+ "integrity_checks_untracked_files_description": "Configure the frequency and enable or disable the untracked files check",
+ "integrity_checks_untracked_files_enable_description": "Enable the untracked files check",
"job_concurrency": "{job} concurrency",
"job_created": "Job created",
"job_not_concurrency_safe": "This job is not concurrency-safe.",
@@ -416,6 +432,10 @@
"transcoding_realtime_description": "Allows transcoding to be performed in real-time as the video is being streamed. Enables quality switching, but may cause higher playback latency and stuttering depending on server capabilities.",
"transcoding_realtime_enabled": "Enable real-time transcoding",
"transcoding_realtime_enabled_description": "If disabled, the server will refuse to start new real-time transcoding sessions.",
+ "transcoding_realtime_resolutions": "Resolutions",
+ "transcoding_realtime_resolutions_description": "The resolutions offered for real-time transcoding. Higher resolutions may cause playback issues if the server cannot transcode them quickly enough.",
+ "transcoding_realtime_video_codecs": "Video codecs",
+ "transcoding_realtime_video_codecs_description": "The video codecs offered for real-time transcoding. Clients will choose the best option they support during playback. AV1 is more efficient than HEVC, which is more efficient than H.264. When using hardware acceleration, only select the codecs the accelerator can encode. When using software transcoding, note that H.264 is faster than AV1, which is faster than HEVC.",
"transcoding_reference_frames": "Reference frames",
"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",
@@ -578,6 +598,7 @@
"asset_viewer_settings_title": "Asset Viewer",
"assets": "Assets",
"assets_added_to_album_count": "Added {count, plural, one {# asset} other {# assets}} to the album",
+ "assets_added_to_album_partial_count": "Added {successCount} out of {totalCount} {totalCount, plural, one {asset} other {assets}} to the album",
"assets_added_to_albums_count": "Added {assetTotal, plural, one {# asset} other {# assets}} to {albumTotal, plural, one {# album} other {# albums}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Asset} other {Assets}} cannot be added to the album",
"assets_cannot_be_added_to_albums": "{count, plural, one {Asset} other {Assets}} cannot be added to any of the albums",
@@ -794,7 +815,6 @@
"custom_date": "Custom date",
"custom_locale": "Custom locale",
"custom_locale_description": "Format dates, times, and numbers based on the selected language and region",
- "custom_url": "Custom URL",
"cutoff_date_description": "Keep photos from the last…",
"cutoff_day": "{count, plural, one {day} other {days}}",
"cutoff_year": "{count, plural, one {year} other {years}}",
@@ -1461,6 +1481,7 @@
"never": "Never",
"new_album": "New Album",
"new_api_key": "New API Key",
+ "new_feature": "New Feature",
"new_password": "New password",
"new_person": "New person",
"new_pin_code": "New PIN code",
@@ -1504,6 +1525,7 @@
"not_available": "N/A",
"not_in_any_album": "Not in any album",
"not_selected": "Not selected",
+ "not_set": "Not set",
"notes": "Notes",
"nothing_here_yet": "Nothing here yet",
"notification_backup_reliability": "Enable notifications to improve background backup reliability",
@@ -1521,6 +1543,8 @@
"obtainium_configurator": "Obtainium Configurator",
"obtainium_configurator_instructions": "Use Obtainium to install and update the Android app directly from Immich GitHub's release. Create an API key and select a variant to create your Obtainium configuration link",
"ocr": "OCR",
+ "ocr_body": "Immich now reads the text inside your photos, so you can search for them by what they say.",
+ "ocr_title": "Search text in your photos",
"official_immich_resources": "Official Immich Resources",
"offline": "Offline",
"offset": "Offset",
@@ -1539,6 +1563,8 @@
"open": "Open",
"open_calendar": "Open calendar",
"open_in_browser": "Open in browser",
+ "open_in_immich_body": "Set Immich as your gallery on Android to open photos straight from other apps.",
+ "open_in_immich_title": "Open photos in Immich",
"open_in_map_view": "Open in map view",
"open_in_openstreetmap": "Open in OpenStreetMap",
"open_the_search_filters": "Open the search filters",
@@ -1596,7 +1622,7 @@
"person": "Person",
"person_age_months": "{months, plural, one {# month} other {# months}} old",
"person_age_year_months": "1 year, {months, plural, one {# month} other {# months}} old",
- "person_age_years": "{years, plural, other {# years}} old",
+ "person_age_years": "{years, plural, one {# year} other {# years}} old",
"person_birthdate": "Born on {date}",
"person_hidden": "{name}{hidden, select, true { (hidden)} other {}}",
"person_recognized": "Person recognized",
@@ -1697,7 +1723,10 @@
"recent": "Recent",
"recent_searches": "Recent searches",
"recently_added": "Recently added",
+ "recently_added_body": "Jump straight to everything you've added lately on a dedicated page.",
+ "recently_added_description": "Browse your assets sorted by when they were uploaded to Immich",
"recently_added_page_title": "Recently Added",
+ "recently_added_title": "Recently added",
"recently_taken": "Recently taken",
"refresh": "Refresh",
"refresh_encoded_videos": "Refresh encoded videos",
@@ -1759,6 +1788,7 @@
"restore_all": "Restore all",
"restore_user": "Restore user",
"restored_asset": "Restored asset",
+ "result": "Result",
"resume": "Resume",
"resume_paused_jobs": "Resume {count, plural, one {# paused job} other {# paused jobs}}",
"review_duplicates": "Review duplicates",
@@ -1904,6 +1934,8 @@
"share_link": "Share Link",
"share_original": "Use original (large)",
"share_preview": "Use thumbnail (small)",
+ "share_quality_body": "Press and hold the share button to choose the image quality before you share.",
+ "share_quality_title": "Choose your share quality",
"shared": "Shared",
"shared_album_activities_input_disable": "Comment is disabled",
"shared_album_activity_remove_content": "Do you want to delete this activity?",
@@ -1918,7 +1950,9 @@
"shared_link_app_bar_title": "Shared Links",
"shared_link_clipboard_copied_massage": "Copied to clipboard",
"shared_link_create_error": "Error while creating shared link",
- "shared_link_custom_url_description": "Access this shared link with a custom URL",
+ "shared_link_custom_url_description": "Access this shared link with a custom URL name",
+ "shared_link_custom_url_title": "Custom URL",
+ "shared_link_custom_url_warning": "Warning: a custom URL name with a forward slash may not behave as you expect.",
"shared_link_edit_description_hint": "Enter the share description",
"shared_link_edit_expire_after_option_day": "1 day",
"shared_link_edit_expire_after_option_days": "{count} days",
@@ -1985,16 +2019,19 @@
"sign_out": "Sign Out",
"sign_up": "Sign up",
"size": "Size",
+ "skip": "Skip",
"skip_to_content": "Skip to content",
"skip_to_folders": "Skip to folders",
"skip_to_tags": "Skip to tags",
"slideshow": "Slideshow",
+ "slideshow_body": "Sit back and watch your photos play in a full-screen slideshow.",
"slideshow_metadata_overlay_mode": "Overlay content",
"slideshow_metadata_overlay_mode_description_only": "Description only",
"slideshow_metadata_overlay_mode_full": "Full",
"slideshow_repeat": "Repeat slideshow",
"slideshow_repeat_description": "Loop back to beginning when slideshow ends",
"slideshow_settings": "Slideshow settings",
+ "slideshow_title": "Slideshow",
"smart_album": "Smart album",
"some_assets_already_have_a_location_warning": "Some of the selected assets already have a location",
"sort_albums_by": "Sort albums by...",
@@ -2103,6 +2140,8 @@
"trigger": "Trigger",
"trigger_asset_metadata_extraction": "Asset Metadata Extraction",
"trigger_asset_metadata_extraction_description": "Triggered when the EXIF metadata of an asset is extracted",
+ "trigger_asset_tagged": "Asset Tagged",
+ "trigger_asset_tagged_description": "Triggered when a tag is added to an asset",
"trigger_asset_uploaded": "Asset Upload",
"trigger_asset_uploaded_description": "Triggered when a new asset is uploaded",
"trigger_person_recognized": "Person Recognized",
@@ -2122,6 +2161,7 @@
"unknown": "Unknown",
"unknown_country": "Unknown Country",
"unknown_date": "Unknown date",
+ "unknown_schema": "Unknown schema",
"unknown_year": "Unknown Year",
"unlimited": "Unlimited",
"unlink_motion_video": "Unlink motion video",
@@ -2149,7 +2189,7 @@
"upload_day_count": "{date}: {count, plural, one {# upload} other {# uploads}}",
"upload_details": "Upload Details",
"upload_error_with_count": "Upload error for {count, plural, one {# asset} other {# assets}}",
- "upload_errors": "Upload completed with {count, plural, one {# error} other {# errors}}, refresh the page to see new upload assets.",
+ "upload_errors": "Upload completed with {count, plural, one {# error} other {# errors}}.",
"upload_finished": "Upload finished",
"upload_progress": "Remaining {remaining, number} - Processed {processed, number}/{total, number}",
"upload_skipped_duplicates": "Skipped {count, plural, one {# duplicate asset} other {# duplicate assets}}",
@@ -2157,6 +2197,8 @@
"upload_status_errors": "Errors",
"upload_status_uploaded": "Uploaded",
"upload_success": "Upload success, refresh the page to see new upload assets.",
+ "upload_to_album_body": "For users that don't utilize the manual upload feature, you can now choose to add local photos directly into an album as you upload them, no need to upload then add to an album later anymore.",
+ "upload_to_album_title": "Upload straight to an album",
"upload_to_immich": "Upload to Immich ({count})",
"uploading": "Uploading",
"uploading_media": "Uploading media",
@@ -2224,6 +2266,9 @@
"week": "Week",
"welcome": "Welcome",
"welcome_to_immich": "Welcome to Immich",
+ "whats_new": "What's new",
+ "whats_new_settings_subtitle": "See what's new in Immich",
+ "whats_new_version": "Version {version}",
"when": "When",
"width": "Width",
"wifi_name": "Wi-Fi Name",
@@ -2234,6 +2279,13 @@
"workflow_info": "Workflow info",
"workflow_json": "Workflow JSON",
"workflow_json_help": "Edit the workflow configuration in JSON format. Changes will sync to the visual builder.",
+ "workflow_logging_completed": "Completed",
+ "workflow_logging_disable": "Disable logging",
+ "workflow_logging_disabled_description": "Logging is currently disabled for this workflow.",
+ "workflow_logging_enable": "Enable logging",
+ "workflow_logging_error_step": "Error on step #{step}",
+ "workflow_logging_halted": "Halted",
+ "workflow_logging_halted_step": "Halted on step #{step}",
"workflow_name": "Workflow name",
"workflow_navigation_prompt": "Are you sure you want to leave without saving your changes?",
"workflow_summary": "Workflow summary",
diff --git a/i18n/en_GB.json b/i18n/en_GB.json
index e6da892a88..a077b444d3 100644
--- a/i18n/en_GB.json
+++ b/i18n/en_GB.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Thumbnail quality from 1-100. Higher is better, but produces larger files and can reduce app responsiveness.",
"image_thumbnail_title": "Thumbnail Settings",
"import_config_from_json_description": "Import system config by uploading a JSON config file",
+ "integrity_checks_checksum_files": "Checksum files",
+ "integrity_checks_checksum_files_description": "Configure the checksum check",
+ "integrity_checks_checksum_files_enable_description": "Enable the checksum check",
+ "integrity_checks_checksum_files_percentage_limit": "Percentage limit",
+ "integrity_checks_checksum_files_percentage_limit_description": "Configure the maximum percentage between 0.01 and 1 for how much the checksum check should run each interval.",
+ "integrity_checks_checksum_files_time_limit": "Time limit",
+ "integrity_checks_checksum_files_time_limit_description": "Configure the maximum duration for which the checksum check should run each interval. (ms)",
+ "integrity_checks_missing_files": "Missing files",
+ "integrity_checks_missing_files_description": "Configure the frequency and enable or disable the missing files check",
+ "integrity_checks_missing_files_enable_description": "Enable the missing files check",
+ "integrity_checks_settings": "Integrity checks",
+ "integrity_checks_settings_description": "Manage integrity checks intervals",
+ "integrity_checks_untracked_files": "Untracked files",
+ "integrity_checks_untracked_files_description": "Configure the frequency and enable or disable the untracked files check",
+ "integrity_checks_untracked_files_enable_description": "Enable the untracked files check",
"job_concurrency": "{job} concurrency",
"job_created": "Job created",
"job_not_concurrency_safe": "This job is not concurrency-safe.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Allows transcoding to be performed in real-time as the video is being streamed. Enables quality switching, but may cause higher playback latency and stuttering depending on server capabilities.",
"transcoding_realtime_enabled": "Enable real-time transcoding",
"transcoding_realtime_enabled_description": "If disabled, the server will refuse to start new real-time transcoding sessions.",
+ "transcoding_realtime_resolutions": "Resolutions",
+ "transcoding_realtime_resolutions_description": "The resolutions offered for real-time transcoding. Higher resolutions may cause playback issues if the server cannot transcode them quickly enough.",
+ "transcoding_realtime_video_codecs": "Video codecs",
+ "transcoding_realtime_video_codecs_description": "The video codecs offered for real-time transcoding. Clients will choose the best option they support during playback. AV1 is more efficient than HEVC, which is more efficient than H.264. When using hardware acceleration, only select the codecs the accelerator can encode. When using software transcoding, note that H.264 is faster than AV1, which is faster than HEVC.",
"transcoding_reference_frames": "Reference frames",
"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",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Asset Viewer",
"assets": "Assets",
"assets_added_to_album_count": "Added {count, plural, one {# asset} other {# assets}} to the album",
+ "assets_added_to_album_partial_count": "Added {successCount} out of {totalCount} {totalCount, plural, one {asset} other {assets}} to the album",
"assets_added_to_albums_count": "Added {assetTotal, plural, one {# asset} other {# assets}} to {albumTotal, plural, one {# album} other {# albums}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Asset} other {Assets}} cannot be added to the album",
"assets_cannot_be_added_to_albums": "{count, plural, one {Asset} other {Assets}} cannot be added to any of the albums",
@@ -794,7 +814,6 @@
"custom_date": "Custom date",
"custom_locale": "Custom locale",
"custom_locale_description": "Format dates, times, and numbers based on the selected language and region",
- "custom_url": "Custom URL",
"cutoff_date_description": "Keep photos from the last…",
"cutoff_day": "{count, plural, one {day} other {days}}",
"cutoff_year": "{count, plural, one {year} other {years}}",
@@ -1461,6 +1480,7 @@
"never": "Never",
"new_album": "New Album",
"new_api_key": "New API Key",
+ "new_feature": "New Feature",
"new_password": "New password",
"new_person": "New person",
"new_pin_code": "New PIN code",
@@ -1504,6 +1524,7 @@
"not_available": "N/A",
"not_in_any_album": "Not in any album",
"not_selected": "Not selected",
+ "not_set": "Not set",
"notes": "Notes",
"nothing_here_yet": "Nothing here yet",
"notification_backup_reliability": "Enable notifications to improve background backup reliability",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Obtainium Configurator",
"obtainium_configurator_instructions": "Use Obtainium to install and update the Android app directly from Immich GitHub's release. Create an API key and select a variant to create your Obtainium configuration link",
"ocr": "OCR",
+ "ocr_body": "Immich now reads the text inside your photos, so you can search for them by what they say.",
+ "ocr_title": "Search text in your photos",
"official_immich_resources": "Official Immich Resources",
"offline": "Offline",
"offset": "Offset",
@@ -1539,6 +1562,8 @@
"open": "Open",
"open_calendar": "Open calendar",
"open_in_browser": "Open in browser",
+ "open_in_immich_body": "Set Immich as your gallery on Android to open photos straight from other apps.",
+ "open_in_immich_title": "Open photos in Immich",
"open_in_map_view": "Open in map view",
"open_in_openstreetmap": "Open in OpenStreetMap",
"open_the_search_filters": "Open the search filters",
@@ -1596,7 +1621,7 @@
"person": "Person",
"person_age_months": "{months, plural, one {# month} other {# months}} old",
"person_age_year_months": "1 year, {months, plural, one {# month} other {# months}} old",
- "person_age_years": "{years, plural, other {# years}} old",
+ "person_age_years": "{years, plural, one {# year} other {# years}} old",
"person_birthdate": "Born on {date}",
"person_hidden": "{name}{hidden, select, true { (hidden)} other {}}",
"person_recognized": "Person recognised",
@@ -1697,7 +1722,10 @@
"recent": "Recent",
"recent_searches": "Recent searches",
"recently_added": "Recently added",
+ "recently_added_body": "Jump straight to everything you've added lately on a dedicated page.",
+ "recently_added_description": "Browse your assets sorted by when they were uploaded to Immich",
"recently_added_page_title": "Recently Added",
+ "recently_added_title": "Recently added",
"recently_taken": "Recently taken",
"refresh": "Refresh",
"refresh_encoded_videos": "Refresh encoded videos",
@@ -1904,6 +1932,8 @@
"share_link": "Share Link",
"share_original": "Use original (large)",
"share_preview": "Use thumbnail (small)",
+ "share_quality_body": "Press and hold the share button to choose the image quality before you share.",
+ "share_quality_title": "Choose your share quality",
"shared": "Shared",
"shared_album_activities_input_disable": "Comment is disabled",
"shared_album_activity_remove_content": "Do you want to delete this activity?",
@@ -1918,7 +1948,9 @@
"shared_link_app_bar_title": "Shared Links",
"shared_link_clipboard_copied_massage": "Copied to clipboard",
"shared_link_create_error": "Error while creating shared link",
- "shared_link_custom_url_description": "Access this shared link with a custom URL",
+ "shared_link_custom_url_description": "Access this shared link with a custom URL name",
+ "shared_link_custom_url_title": "Custom URL",
+ "shared_link_custom_url_warning": "Warning: a custom URL name with a forward slash may not behave as you expect.",
"shared_link_edit_description_hint": "Enter the share description",
"shared_link_edit_expire_after_option_day": "1 day",
"shared_link_edit_expire_after_option_days": "{count} days",
@@ -1985,16 +2017,19 @@
"sign_out": "Sign Out",
"sign_up": "Sign up",
"size": "Size",
+ "skip": "Skip",
"skip_to_content": "Skip to content",
"skip_to_folders": "Skip to folders",
"skip_to_tags": "Skip to tags",
"slideshow": "Slideshow",
+ "slideshow_body": "Sit back and watch your photos play in a full-screen slideshow.",
"slideshow_metadata_overlay_mode": "Overlay content",
"slideshow_metadata_overlay_mode_description_only": "Description only",
"slideshow_metadata_overlay_mode_full": "Full",
"slideshow_repeat": "Repeat slideshow",
"slideshow_repeat_description": "Loop back to beginning when slideshow ends",
"slideshow_settings": "Slideshow settings",
+ "slideshow_title": "Slideshow",
"smart_album": "Smart album",
"some_assets_already_have_a_location_warning": "Some of the selected assets already have a location",
"sort_albums_by": "Sort albums by...",
@@ -2122,6 +2157,7 @@
"unknown": "Unknown",
"unknown_country": "Unknown Country",
"unknown_date": "Unknown date",
+ "unknown_schema": "Unknown schema",
"unknown_year": "Unknown Year",
"unlimited": "Unlimited",
"unlink_motion_video": "Unlink motion video",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "Errors",
"upload_status_uploaded": "Uploaded",
"upload_success": "Upload success, refresh the page to see new upload assets.",
+ "upload_to_album_body": "For users that don't use the manual upload feature, you can now choose to add local photos directly into an album as you upload them, no need to upload then add to an album later anymore.",
+ "upload_to_album_title": "Upload straight to an album",
"upload_to_immich": "Upload to Immich ({count})",
"uploading": "Uploading",
"uploading_media": "Uploading media",
@@ -2224,6 +2262,9 @@
"week": "Week",
"welcome": "Welcome",
"welcome_to_immich": "Welcome to Immich",
+ "whats_new": "What's new",
+ "whats_new_settings_subtitle": "See what's new in Immich",
+ "whats_new_version": "Version {version}",
"when": "When",
"width": "Width",
"wifi_name": "Wi-Fi Name",
diff --git a/i18n/eo.json b/i18n/eo.json
index 6ad5ce1389..b0283449a0 100644
--- a/i18n/eo.json
+++ b/i18n/eo.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Kvalito de bildeto, inter 1 kaj 100. Pli alta cifero indikas pli altkvalitan bildon, sed donas pli grandajn dosierojn kaj povas malrapidigi uzadon de la apo.",
"image_thumbnail_title": "Agordoj pri bildetoj",
"import_config_from_json_description": "Importi sistem-agordaĵaron de JSON-dosiero",
+ "integrity_checks_checksum_files": "Kontrolsum-dosieroj",
+ "integrity_checks_checksum_files_description": "Konfiguri la kontroladon per kontrolsumo",
+ "integrity_checks_checksum_files_enable_description": "Ŝalti kontroladon per kontrolsumoj",
+ "integrity_checks_checksum_files_percentage_limit": "Elcenta limo",
+ "integrity_checks_checksum_files_percentage_limit_description": "Konfiguri la maksimuman elcentaĵon, inter 0.01 kaj 1, kiom estu kontrolata je ĉiu intervalo.",
+ "integrity_checks_checksum_files_time_limit": "Tempolimo",
+ "integrity_checks_checksum_files_time_limit_description": "Konfiguri la maksimuman daŭron (milisekundoj) de kontrolado je ĉiu intervalo.",
+ "integrity_checks_missing_files": "Mankantaj dosieroj",
+ "integrity_checks_missing_files_description": "Konfiguri la oftecon kaj ŝalti/malŝalti kontrolon por mankantaj dosieroj",
+ "integrity_checks_missing_files_enable_description": "Ŝalti kontroladon por mankantaj dosieroj",
+ "integrity_checks_settings": "Kontrolo de integreco",
+ "integrity_checks_settings_description": "Administri intervalojn inter kontroloj de integreco",
+ "integrity_checks_untracked_files": "Senspuraj dosieroj",
+ "integrity_checks_untracked_files_description": "Konfiguri la oftecon kaj ŝalti/malŝalti kontrolon por senspuraj dosieroj",
+ "integrity_checks_untracked_files_enable_description": "Ŝalti kontroladon por senspuraj dosieroj",
"job_concurrency": "{job}: nombro de samtempaj taskoj",
"job_created": "Tasko kreita",
"job_not_concurrency_safe": "Estas nesekure fari tiun ĉi taskon samtempe kun aliaj.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Ebligas transkodadon samtempe kun spektado per elsendfluo. Tio ebligas ŝanĝon de kvalito laŭvole, sed povas kaŭzi pli da atendotempo kaj interrompoj, depende de la kapacito de la servilo.",
"transcoding_realtime_enabled": "Ŝalti realtempan transkodadon",
"transcoding_realtime_enabled_description": "Se malŝaltita, la servilo rifuzas komenci novajn sesiojn de realtempa transkodado.",
+ "transcoding_realtime_resolutions": "Distingivoj",
+ "transcoding_realtime_resolutions_description": "La distingivoj proponitaj por realtempa transkodado. Pli altaj distingivoj povas okazigi problemojn sed la servilo ne povas sufiĉe rapide transkodigi ilin.",
+ "transcoding_realtime_video_codecs": "Videokodekoj",
+ "transcoding_realtime_video_codecs_description": "La video-kodekoj proponitaj por realtempa transkodado. Klientoj povos elekti sian plej bonan opcion dum ludado. AV1 estas pli efika ol HEVC, kiu estas pli efika ol H.264. Se vi uzas aparataran plirapidigon, uzu nur kodekojn, kiujn la akcelilo povas kodigi. Por softvara transkodado, notu ke H.264 estas pli rapida ol AV1, kiu estas pli rapida ol HEVC.",
"transcoding_reference_frames": "Referencaj kadroj",
"transcoding_reference_frames_description": "La nombro da apudaj kadroj uzataj dum densigo de iu kadro. Pli granda valoro rezultas je pli bona densigo, sed malpli rapida laboro. Valoro de 0 indikas aŭtomatan agordon.",
"transcoding_required_description": "Nur videoj kun neakceptataj formatoj",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Montrilo de elemento",
"assets": "Elementoj",
"assets_added_to_album_count": "Sukcese aldonis {count, plural, one {# elementon} other {# elementojn}} al la albumo",
+ "assets_added_to_album_partial_count": "Aldonis {successCount} el {totalCount} {totalCount, plural, one {elemento} other {elementoj}} al la albumo",
"assets_added_to_albums_count": "Sukcese aldonis {assetTotal, plural, one {# elementon} other {# elementojn}} al {albumTotal, plural, one {# albumo} other {# albumoj}}",
"assets_cannot_be_added_to_album_count": "Ne eblis aldoni {count, plural, one {tiun elementon} other {tiujn elementojn}} al la albumo",
"assets_cannot_be_added_to_albums": "Ne eblis aldoni {count, plural, one {tiun elementon} other {tiujn elementojn}} al iu ajn el la albumoj",
@@ -793,7 +813,6 @@
"custom_date": "Elekti propran daton",
"custom_locale": "Propra lokaĵaro",
"custom_locale_description": "Prezenti datojn, horojn kaj numerojn laŭ la elektita lingvo kaj regiono",
- "custom_url": "Propra URL",
"cutoff_date_description": "Konservi fotojn el la lastaj…",
"cutoff_day": "{count, plural, one {tago} other {tagoj}}",
"cutoff_year": "{count, plural, one {jaro} other {jaroj}}",
@@ -1497,6 +1516,8 @@
"notes": "Notoj",
"nothing_here_yet": "Ankoraŭ nenio ĉi tie",
"notification_backup_reliability": "Ŝalti atentigilojn por igi pli fidinda la fonan savkopiadon",
+ "notification_enabled_list_tile_open_button": "Malfermi agordojn",
+ "notification_enabled_list_tile_title": "Atentigoj ŝaltitaj",
"notification_permission_dialog_content": "Por ŝalti sciigojn, iru al Agordoj kaj elektu 'permesi'.",
"notification_permission_list_tile_content": "Donu permeson por ŝalti sciigojn.",
"notification_permission_list_tile_enable_button": "Ŝalti sciigojn",
@@ -1508,6 +1529,8 @@
"obtainium_configurator": "Konfigurilo pri Obtainium",
"obtainium_configurator_instructions": "Uzu Obtainium por instali kaj ĝisdatigi la apon por Android rekte el github. Kreu API-ŝlosilon kaj elektu variaĵon por krei ligilon por konfiguri Obtainium",
"ocr": "Optika signo-rekono",
+ "ocr_body": "Immich nun legas tekston en viaj fotoj, do vi povas serĉi kaj trovi fotojn laŭ tio.",
+ "ocr_title": "Serĉi tekston en fotoj",
"official_immich_resources": "Oficialaj rimedoj por Immich",
"offline": "Nekonektita",
"offset": "Deŝovo",
@@ -1526,6 +1549,8 @@
"open": "Malfermi",
"open_calendar": "Malfermi kalendaron",
"open_in_browser": "Malfermi en retumilo",
+ "open_in_immich_body": "Agordi Immich kiel galerion en Android-aparato por ke fotoj malfermiĝu rekte de aliaj apoj en Immich.",
+ "open_in_immich_title": "Malfermi fotojn en Immich",
"open_in_map_view": "Montri sur mapo",
"open_in_openstreetmap": "Malfermi en OpenStreetMap",
"open_the_search_filters": "Malfermi la serĉ-filtrilojn",
@@ -1680,7 +1705,10 @@
"recent": "Lastatempa(j)",
"recent_searches": "Lastatempaj serĉoj",
"recently_added": "Lastatempe aldonita(j)",
+ "recently_added_body": "Iri rekte al ĉio, kion vi aldonis lastatempe en unu paĝo.",
+ "recently_added_description": "Foliumi elementojn ordigitajn laŭ dato de alŝuto al Immich",
"recently_added_page_title": "Lastatempe aldonita(j)",
+ "recently_added_title": "Aldonitaj lastatempe",
"recently_taken": "Lastatempe fotita(j)",
"refresh": "Denove",
"refresh_encoded_videos": "Renovigi koditajn videojn",
@@ -1814,10 +1842,79 @@
"search_timezone": "Serĉi laŭ horzono...",
"search_type": "Serĉi laŭ tipo",
"search_your_photos": "Serĉi viajn fotojn",
+ "searching_locales": "Serĉado de lokaj parametroj...",
+ "second": "Sekundo",
+ "see_all_people": "Vidi ĉiujn homojn",
+ "select": "Elekti",
+ "select_album": "Elekti albumon",
+ "select_album_cover": "Elekti album-kovrilon",
+ "select_albums": "Elekti albumojn",
+ "select_all": "Elekti ĉiujn",
+ "select_all_duplicates": "Elekti ĉiujn duoblaĵojn",
+ "select_avatar_color": "Elekti koloron de profilbildo",
+ "select_count": "{count, plural, one {Elekti #} other {Elekti #}}",
+ "select_cutoff_date": "Elekti limdaton",
+ "select_face": "Elekti vizaĝon",
+ "select_featured_photo": "Elekti elstarigitan foton",
+ "select_from_computer": "Elekti el komputilo",
+ "select_keep_all": "Konservi ĉiujn",
+ "select_new_face": "Elekti novan vizaĝon",
+ "select_people": "Elekti homojn",
+ "select_person": "Elekti homon",
+ "select_person_to_tag": "Elekti homon por etikedi",
+ "select_photos": "Elekti fotojn",
+ "select_quality": "Elekti kvaliton",
+ "select_trash_all": "Forigi ĉiujn",
+ "selected": "Elektita",
+ "selected_count": "{count, plural, one {# elektita} other {# elektitaj}}",
+ "selected_gps_coordinates": "GPS-koordinatoj elektitaj",
+ "send_message": "Sendi mesaĝon",
+ "send_welcome_email": "Sendi bonvenan retmesaĝon",
+ "server_endpoint": "Finpunkto ĉe servilo",
+ "server_info_box_app_version": "Versio de apo",
+ "server_info_box_server_url": "URL-o de servilo",
+ "server_offline": "Servilo nedisponebla",
+ "server_online": "Servilo disponebla",
"server_privacy": "Privateco de servilo",
"server_restarting_description": "La paĝo baldaŭ reŝargiĝos.",
+ "server_restarting_title": "Servilo restartas",
+ "server_stats": "Statistikoj de servilo",
+ "server_update_available": "Ĝisdatigo disponeblas por la servilo",
+ "server_version": "Versio de servilo",
+ "set": "Agordi",
+ "set_as_album_cover": "Agordi kiel album-kovrilo",
+ "set_as_featured_photo": "Agordi kiel elstarigitan foton",
+ "set_as_profile_picture": "Elekti kiel profilbildon",
+ "set_date_of_birth": "Agordi naskiĝdaton",
+ "set_profile_picture": "Elekti profilbildon",
+ "set_slideshow_to_fullscreen": "Vidigi bildserion plenekrane",
+ "set_stack_primary_asset": "Agordi kiel unuarangan elementon",
+ "setting_image_navigation_enable_subtitle": "Se ŝaltita, vi povas salti al antaŭa/sekva bildo per tuŝeto en la maldekstra/dekstra kvarono de la ekrano.",
+ "setting_image_navigation_enable_title": "Tuŝeti por navigi",
+ "setting_image_navigation_title": "Navigado de bildoj",
"setting_image_viewer_help": "La detala montrilo unue montras la malgrandan bildeton, poste ŝargas la mezgrandan antaŭvidon (se ŝaltita), kaj fine ŝargas la originalan (se ŝaltita).",
+ "setting_image_viewer_original_subtitle": "Ŝalti por ŝargi la originalan bildon (povas esti tre granda!) Malŝalti por ŝpareme uzi datumojn (de retkonekto kaj memoro en via aparato).",
+ "setting_image_viewer_original_title": "Ŝargi originalan bildon",
+ "setting_image_viewer_preview_subtitle": "Ŝalti por ŝargi mez-distingivan bildon. Malŝalti por ŝargi aŭ la originalon aŭ la bildeton.",
+ "setting_image_viewer_preview_title": "Ŝargi antaŭvidan bildon",
+ "setting_languages_apply": "Validigi",
+ "setting_languages_subtitle": "Ŝanĝi lingvon de la apo",
+ "setting_notifications_notify_minutes": "{count} minutoj",
+ "setting_notifications_notify_seconds": "{count} sekundoj",
"setting_notifications_subtitle": "Redakti viajn preferojn pri sciigoj",
+ "setting_video_viewer_auto_play_subtitle": "Aŭtomate ekludi videojn tuj je malfermo",
+ "setting_video_viewer_auto_play_title": "Aŭtomate ludi videojn",
+ "setting_video_viewer_looping_title": "Ripeti",
+ "settings": "Agordoj",
+ "settings_saved": "Agordoj konservitaj",
+ "setup_pin_code": "Krei PIN-kodon",
+ "share": "Dividi",
+ "share_dialog_preparing": "Preparado...",
+ "share_link": "Dividi ligilon",
+ "share_original": "Uzi originalon (grandan)",
+ "share_preview": "Uzi bildeton (malgrandan)",
+ "share_quality_body": "Premteni la dividi-butonon por elekti la kvaliton de bildo dividota.",
+ "share_quality_title": "Elekti kvaliton dividotan",
"shared": "Dividitaj",
"shared_album_activities_input_disable": "Komentado estas malŝaltita",
"shared_album_activity_remove_content": "Ĉu vi volas forigi tiun ĉi agon?",
@@ -1833,6 +1930,8 @@
"shared_link_clipboard_copied_massage": "Kopiita al tondujo",
"shared_link_create_error": "Okazis eraro dum kreo de dividita ligilo",
"shared_link_custom_url_description": "Atingi la dividita ligilo per propra URL-o",
+ "shared_link_custom_url_title": "Propra URL",
+ "shared_link_custom_url_warning": "Atentu: propra URL, kiu inkluzivas suprenstrekon povus havi neatenditan rezulton.",
"shared_link_edit_description_hint": "Tajpu priskribon de la dividaĵaro",
"shared_link_edit_expire_after_option_day": "1 tago",
"shared_link_edit_expire_after_option_days": "{count} tagoj",
@@ -1854,6 +1953,7 @@
"shared_link_expires_never": "Neniam eksvalidiĝos",
"shared_link_expires_second": "Eksvalidiĝos post {count} sekundo",
"shared_link_expires_seconds": "Eksvalidiĝos post {count} sekundoj",
+ "shared_link_individual_shared": "Unuope dividita",
"shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Administri dividitajn ligilojn",
"shared_link_options": "Agordoj pri dividitaj ligiloj",
@@ -1865,13 +1965,79 @@
"shared_with_partner": "Dividitaj kun {partner}",
"sharing": "Dividado",
"sharing_enter_password": "Bonvolu tajpi la pasvorton por vidi tiun ĉi paĝon.",
+ "shift_to_permanent_delete": "Tuŝu ⇧ por forigi porĉiame la elementon",
+ "show_album_options": "Montri opciojn de albumo",
+ "show_albums": "Montri albumojn",
+ "show_all_people": "Montri ĉiujn homojn",
+ "show_and_hide_people": "Montri kaj kaŝi homojn",
+ "show_file_location": "Montri dosier-lokon",
+ "show_gallery": "Montri galerion",
+ "show_hidden_people": "Montri kaŝitajn homojn",
+ "show_in_timeline": "Montri en tempolinio",
+ "show_in_timeline_setting_description": "Montri fotojn kaj videojn de tiu uzanto en via tempolinio",
+ "show_keyboard_shortcuts": "Montri fulmklavojn",
+ "show_less": "Montri malpli",
+ "show_metadata": "Montri metadatumojn",
+ "show_more_fields": "{count, plural, one {Montri # plian kampon} other {Montri # pliajn kampojn}}",
+ "show_or_hide_info": "Montri aŭ kaŝi informojn",
+ "show_password": "Montri pasvorton",
+ "show_person_options": "Montri opciojn pri homo",
+ "show_progress_bar": "Montri plenumskalon",
+ "show_schema": "Montri skemon",
"show_search_options": "Montri opciojn pri serĉado",
"show_shared_links": "Montri dividitajn ligilojn",
+ "show_slideshow_metadata_overlay": "Montri pribildajn informojn super la bildo",
+ "show_slideshow_transition": "Montri transpason dum bildserio",
+ "show_supporter_badge": "Ŝildo de subtenanto",
+ "show_supporter_badge_description": "Montri ŝildon de subtenanto",
+ "show_text_recognition": "Montri rekonadon de teksto",
+ "show_text_search_menu": "Montri menuon pri teksta serĉo",
+ "shuffle": "Hazarda vicordo",
"sidebar": "Flankpanelo",
"sidebar_display_description": "Montri ligilon al la vido en la flankpanelo",
+ "sign_out": "Elsaluti",
+ "sign_up": "Registriĝi",
+ "size": "Grandeco",
+ "skip": "Preterlasi",
+ "skip_to_content": "Salti rekte al enhavo",
+ "skip_to_folders": "Salti rekte al dosierujoj",
+ "skip_to_tags": "Salti rekte al etikedoj",
+ "slideshow": "Bildserio",
+ "slideshow_body": "Spekti viajn fotojn en plenekrana bildserio.",
+ "slideshow_metadata_overlay_mode": "Supermeti elementojn",
+ "slideshow_metadata_overlay_mode_description_only": "Nur priskribo",
+ "slideshow_metadata_overlay_mode_full": "Plena",
+ "slideshow_repeat": "Ripeti bildserion",
+ "slideshow_repeat_description": "Remontri ekde la komenco post fino de bildserio",
+ "slideshow_settings": "Agordoj pri bildserioj",
+ "slideshow_title": "Bildserio",
+ "smart_album": "Aktiva albumo",
+ "some_assets_already_have_a_location_warning": "Kelkaj el la elektitaj elementoj jam havas lokon",
+ "sort_albums_by": "Ordigi albumojn laŭ...",
+ "sort_created": "Dato de kreo",
+ "sort_items": "Nombro da elementoj",
+ "sort_modified": "Dato de lasta ŝanĝo",
+ "sort_oldest": "Plej malnova foto",
+ "sort_people_by_similarity": "Ordigi homojn laŭ simileco",
+ "sort_recent": "Plej lasta foto",
+ "sort_title": "Titolo",
+ "source": "Fonto",
+ "stack": "Staki",
+ "stack_action_prompt": "{count} stakitaj",
+ "stack_duplicates": "Staki duoblaĵojn",
+ "stack_selected_photos": "Staki elektitajn fotojn",
+ "stacked_assets_count": "Stakis {count, plural, one {# elementon} other {# elementojn}}",
+ "stacktrace": "Stak-spuro",
+ "start": "Komenci",
"start_date": "Komenca dato",
"start_date_before_end_date": "Komenca dato devas esti antaŭ fina dato",
"state": "Ŝtato/Regiono",
+ "status": "Stato",
+ "step_delete": "Forigi paŝon",
+ "step_delete_confirm": "Ĉu vi certas, ke vi volas forigi tiun paŝon?",
+ "step_details": "Detaloj pri paŝo",
+ "steps": "Paŝoj",
+ "stop_casting": "Ĉesi elsendi",
"stop_photo_sharing": "Ĉu ĉesi dividi viajn fotojn?",
"stop_photo_sharing_description": "{partner} ne plu rajtos atingi viajn fotojn.",
"stop_sharing_photos_with_user": "Ĉesi dividi fotojn kun tiu ĉi uzanto",
diff --git a/i18n/es.json b/i18n/es.json
index 7bc1f171e2..3d019ea36a 100644
--- a/i18n/es.json
+++ b/i18n/es.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Calidad de miniatura de 1 a 100. Es mejor cuanto más alto es el valor pero genera archivos más grandes y puede reducir la capacidad de respuesta de la aplicación.",
"image_thumbnail_title": "Ajustes de las miniaturas",
"import_config_from_json_description": "Importar la configuración del sistema subiendo un archivo JSON de configuración",
+ "integrity_checks_checksum_files": "Archivos de suma de comprobación",
+ "integrity_checks_checksum_files_description": "Configurar la comprobación de la suma de comprobación",
+ "integrity_checks_checksum_files_enable_description": "Activar la comprobación de la suma de comprobación",
+ "integrity_checks_checksum_files_percentage_limit": "Límite porcentual",
+ "integrity_checks_checksum_files_percentage_limit_description": "Configura el porcentaje máximo, entre 0,01 y 1, que indica la frecuencia con la que debe ejecutarse la comprobación de la suma de comprobación en cada intervalo.",
+ "integrity_checks_checksum_files_time_limit": "Límite de tiempo",
+ "integrity_checks_checksum_files_time_limit_description": "Configura la duración máxima durante la cual debe ejecutarse la comprobación de la suma de comprobación en cada intervalo. (ms)",
+ "integrity_checks_missing_files": "Archivos faltantes",
+ "integrity_checks_missing_files_description": "Configura la frecuencia y activa o desactiva la comprobación de archivos faltantes",
+ "integrity_checks_missing_files_enable_description": "Activar la comprobación de archivos faltantes",
+ "integrity_checks_settings": "Comprobaciones de integridad",
+ "integrity_checks_settings_description": "Gestionar los intervalos de las comprobaciones de integridad",
+ "integrity_checks_untracked_files": "Archivos sin seguimiento",
+ "integrity_checks_untracked_files_description": "Configure la frecuencia y active o desactive la comprobación de archivos sin seguimiento",
+ "integrity_checks_untracked_files_enable_description": "Habilitar la comprobación de archivos sin seguimiento",
"job_concurrency": "{job}: Procesos simultáneos",
"job_created": "Tarea creada",
"job_not_concurrency_safe": "Esta tarea no es segura para la simultaneidad.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Permite que la transcodificación se efectua en tiempo real al retransmitirse el video. Permite cambios de calidad, pero quizás causa mayor latencia de reproducción y entrecortamiento dependiendo de las capacidades del servidor.",
"transcoding_realtime_enabled": "Activar transcodificación en tiempo real",
"transcoding_realtime_enabled_description": "Si se desactiva, el servidor se niega a comenzar nuevas sesiones de transcodificación en tiempo real.",
+ "transcoding_realtime_resolutions": "Resoluciones",
+ "transcoding_realtime_resolutions_description": "Las resoluciones ofrecidas para el la transcodificación en tiempo real. Resoluciones altas pueden causar problemas al reproducir si el servidor no es capaz de transcodificarlas lo suficientemente rápido.",
+ "transcoding_realtime_video_codecs": "Códecs de video",
+ "transcoding_realtime_video_codecs_description": "Los códecs de video disponibles para la transcodificación en tiempo real. Durante la reproducción, los clientes elegirán la mejor opción que admitan. AV1 es más eficiente que HEVC, y HEVC es más eficiente que H.264. Al usar aceleración por hardware, selecciona únicamente los códecs que el acelerador pueda codificar. Al usar transcodificación por software, ten en cuenta que H.264 es más rápido que AV1, y AV1 es más rápido que HEVC.",
"transcoding_reference_frames": "Frames de referencia",
"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",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Visor de recursos",
"assets": "Recursos",
"assets_added_to_album_count": "{count, plural, one {# recurso añadido} other {# recurso añadidos}} al álbum",
+ "assets_added_to_album_partial_count": "Agregados {successCount} de {totalCount} {totalCount, plural, one {asset} other {assets}} al album",
"assets_added_to_albums_count": "{assetTotal, plural, one {# añadido} other {# añadidos}} {albumTotal, plural, one {# al álbum} other {# a los álbumes}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {El recurso no se puede añadir al álbum} other {Los recursos no se pueden añadir al álbum}}",
"assets_cannot_be_added_to_albums": "{count, plural, one {El recurso} other {Los recursos}} no se {count, plural, one {puede} other {pueden}} añadir a ninguno de los álbumes",
@@ -794,7 +814,6 @@
"custom_date": "Fecha personalizada",
"custom_locale": "Configuración regional personalizada",
"custom_locale_description": "Dar formato a fechas, horas y números según el idioma y región seleccionados",
- "custom_url": "URL personalizada",
"cutoff_date_description": "Conserva fotos del último…",
"cutoff_day": "{count, plural, one {día} other {días}}",
"cutoff_year": "{count, plural, one {año} other {años}}",
@@ -1303,9 +1322,9 @@
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
"login_form_handshake_exception": "Hubo una excepción de handshake con el servidor. Activa la compatibilidad con certificados autofirmados en la configuración si estás utilizando un certificado autofirmado.",
"login_form_password_hint": "contraseña",
- "login_form_server_empty": "Introduce la URL del servidor.",
- "login_form_server_error": "No se pudo conectar al servidor.",
- "login_has_been_disabled": "El inicio de sesión ha sido deshabilitado.",
+ "login_form_server_empty": "Introduce la URL del servidor",
+ "login_form_server_error": "No se pudo conectar al servidor",
+ "login_has_been_disabled": "El inicio de sesión ha sido deshabilitado",
"login_password_changed_error": "Hubo un error actualizando la contraseña",
"login_password_changed_success": "Contraseña cambiado con éxito",
"logout_all_device_confirmation": "¿Estás seguro de que quieres cerrar sesión en todos los dispositivos?",
@@ -1461,6 +1480,7 @@
"never": "Nunca",
"new_album": "Nuevo álbum",
"new_api_key": "Nueva clave API",
+ "new_feature": "Nueva característica",
"new_password": "Nueva contraseña",
"new_person": "Nueva persona",
"new_pin_code": "Nuevo PIN",
@@ -1504,9 +1524,13 @@
"not_available": "N/D",
"not_in_any_album": "Sin álbum",
"not_selected": "No seleccionado",
+ "not_set": "No establecido",
"notes": "Notas",
"nothing_here_yet": "Sin nada aún",
"notification_backup_reliability": "Activa las notificaciones para mejorar el funcionamiento de las copias de seguridad en segundo plano",
+ "notification_enabled_list_tile_content": "Immich usa notificaciones para las copias de seguridad en segundo plano. Gestiónelas en los ajustes de su dispositivo.",
+ "notification_enabled_list_tile_open_button": "Abrir ajustes",
+ "notification_enabled_list_tile_title": "Notificaciones activadas",
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
"notification_permission_list_tile_content": "Concede permiso para habilitar las notificaciones.",
"notification_permission_list_tile_enable_button": "Permitir notificaciones",
@@ -1518,6 +1542,8 @@
"obtainium_configurator": "Configurador de Obtainium",
"obtainium_configurator_instructions": "Usa Obtainium para instalar y actualizar la aplicación de Android directamente desde las versiones publicadas en el GitHub de Immich. Crea una clave API y selecciona una variante para generar tu enlace de configuración de Obtainium",
"ocr": "OCR",
+ "ocr_body": "Ahora Immich lee el texto que hay dentro de tus fotos, así podrás buscarlas por lo que dicen.",
+ "ocr_title": "Buscar texto en tus fotos",
"official_immich_resources": "Recursos oficiales de Immich",
"offline": "Desconectado",
"offset": "Desviación",
@@ -1536,6 +1562,8 @@
"open": "Abierto",
"open_calendar": "Abrir calendario",
"open_in_browser": "Abrir en el navegador",
+ "open_in_immich_body": "Establece Immich como tu galería en Android para abrir fotos directamente desde otras aplicaciones.",
+ "open_in_immich_title": "Abrir fotos en Immich",
"open_in_map_view": "Abrir en la vista del mapa",
"open_in_openstreetmap": "Abrir en OpenStreetMap",
"open_the_search_filters": "Abre los filtros de búsqueda",
@@ -1593,7 +1621,7 @@
"person": "Persona",
"person_age_months": "hace {months, plural, one {# mes} other {# meses}}",
"person_age_year_months": "1 año y {months, plural, one {# mes} other {# meses}}",
- "person_age_years": "{years, plural, other {# años}}",
+ "person_age_years": "{years, plural, one {# año} other {# años}}",
"person_birthdate": "Nacido el {date}",
"person_hidden": "{name}{hidden, select, true { (oculto)} other {}}",
"person_recognized": "Persona reconocida",
@@ -1694,7 +1722,10 @@
"recent": "Reciente",
"recent_searches": "Búsquedas recientes",
"recently_added": "Añadidos recientemente",
+ "recently_added_body": "Acceda directamente a todo lo que ha añadido recientemente en una página dedicada.",
+ "recently_added_description": "Explora tus archivos ordenados por fecha de subida a Immich",
"recently_added_page_title": "Recién añadidos",
+ "recently_added_title": "Añadido recientemente",
"recently_taken": "Tomadas recientemente",
"refresh": "Actualizar",
"refresh_encoded_videos": "Recargar los vídeos codificados",
@@ -1901,6 +1932,8 @@
"share_link": "Compartir enlace",
"share_original": "Usar original (grande)",
"share_preview": "Usar vista previa (pequeño)",
+ "share_quality_body": "Mantén pulsado el botón de compartir para elegir la calidad de la imagen antes de compartirla.",
+ "share_quality_title": "Elige la calidad de compartición",
"shared": "Compartidos",
"shared_album_activities_input_disable": "Los comentarios están deshabilitados",
"shared_album_activity_remove_content": "¿Deseas eliminar esta actividad?",
@@ -1915,7 +1948,9 @@
"shared_link_app_bar_title": "Enlaces compartidos",
"shared_link_clipboard_copied_massage": "Copiado al portapapeles",
"shared_link_create_error": "Error creando el enlace compartido",
- "shared_link_custom_url_description": "Acceder a este enlace compartido con una URL personalizada",
+ "shared_link_custom_url_description": "Accede a este enlace compartido mediante una URL personalizada",
+ "shared_link_custom_url_title": "URL personalizada",
+ "shared_link_custom_url_warning": "Advertencia: un nombre de URL personalizado con una barra inclinada puede no comportarse como esperas.",
"shared_link_edit_description_hint": "Introduce la descripción del enlace",
"shared_link_edit_expire_after_option_day": "1 día",
"shared_link_edit_expire_after_option_days": "{count} días",
@@ -1962,7 +1997,7 @@
"show_keyboard_shortcuts": "Mostrar atajos del teclado",
"show_less": "Mostrar menos",
"show_metadata": "Mostrar metadatos",
- "show_more_fields": "{count, plural, one {Muestra # más campo} other {Muestra # más campos}}",
+ "show_more_fields": "{count, plural, one {Muestra # campo más} other {Muestra # más campos}}",
"show_or_hide_info": "Mostrar u ocultar información",
"show_password": "Mostrar contraseña",
"show_person_options": "Mostrar opciones de la persona",
@@ -1982,16 +2017,19 @@
"sign_out": "Salir",
"sign_up": "Registrarse",
"size": "Tamaño",
+ "skip": "Saltar",
"skip_to_content": "Saltar al contenido",
"skip_to_folders": "Ir a las carpetas",
"skip_to_tags": "Ir a las etiquetas",
"slideshow": "Pase de diapositivas",
+ "slideshow_body": "Relájate y disfruta viendo tus fotos en una presentación de diapositivas a pantalla completa.",
"slideshow_metadata_overlay_mode": "Contenido superpuesto",
"slideshow_metadata_overlay_mode_description_only": "Solo descripción",
"slideshow_metadata_overlay_mode_full": "Lleno",
"slideshow_repeat": "Repetir presentación de diapositivas",
"slideshow_repeat_description": "Volver al inicio cuando finaliza la presentación de diapositivas",
"slideshow_settings": "Ajustes de diapositivas",
+ "slideshow_title": "Presentación de diapositivas",
"smart_album": "Álbum inteligente",
"some_assets_already_have_a_location_warning": "Algunos de los elementos seleccionados ya tienen una ubicación",
"sort_albums_by": "Ordenar álbumes por…",
@@ -2119,6 +2157,7 @@
"unknown": "Desconocido",
"unknown_country": "País desconocido",
"unknown_date": "Fecha desconocida",
+ "unknown_schema": "Esquema desconocido",
"unknown_year": "Año desconocido",
"unlimited": "Sin límites",
"unlink_motion_video": "Desvincular vídeo en movimiento",
@@ -2154,6 +2193,8 @@
"upload_status_errors": "Errores",
"upload_status_uploaded": "Subido",
"upload_success": "Subida realizada correctamente, actualice la página para ver los nuevos recursos de subida.",
+ "upload_to_album_body": "Los usuarios que no utilicen la función de subida manual ya pueden añadir fotos locales directamente a un álbum a medida que las suben, sin necesidad de subirlas primero para luego añadirlas al álbum.",
+ "upload_to_album_title": "Subir directamente a un álbum",
"upload_to_immich": "Subir a Immich ({count})",
"uploading": "Subiendo",
"uploading_media": "Subiendo medios",
@@ -2221,6 +2262,9 @@
"week": "Semana",
"welcome": "Bienvenido/a",
"welcome_to_immich": "Bienvenido/a a Immich",
+ "whats_new": "Novedades",
+ "whats_new_settings_subtitle": "Descubre las novedades de Immich",
+ "whats_new_version": "Versión {version}",
"when": "Cuándo",
"width": "Ancho",
"wifi_name": "Nombre del Wi-Fi",
diff --git a/i18n/et.json b/i18n/et.json
index d7b2b9f8ac..8941dbbb0e 100644
--- a/i18n/et.json
+++ b/i18n/et.json
@@ -108,6 +108,18 @@
"image_thumbnail_quality_description": "Pisipildi kvaliteet vahemikus 1-100. Kõrgem väärtus on parem, aga tekitab suuremaid faile ning võib mõjutada rakenduse töökiirust.",
"image_thumbnail_title": "Pisipildi seaded",
"import_config_from_json_description": "Impordi süsteemi seadistus JSON-faili üleslaadimise teel",
+ "integrity_checks_checksum_files_description": "Seadista kontrollsumma kontroll",
+ "integrity_checks_checksum_files_enable_description": "Luba kontrollsumma kontroll",
+ "integrity_checks_checksum_files_percentage_limit": "Protsendi piirang",
+ "integrity_checks_checksum_files_percentage_limit_description": "Seadista maksimaalne protsent 0.01 ja 1 vahel, kui palju peaks kontrollsumma kontroll iga intervalli jooksul käivituma.",
+ "integrity_checks_checksum_files_time_limit": "Ajaline piirang",
+ "integrity_checks_checksum_files_time_limit_description": "Seadista maksimaalne kestus, kui kaua peaks kontrollsumma kontroll iga intervalli jooksul käivituma. (ms)",
+ "integrity_checks_missing_files": "Puuduvad failid",
+ "integrity_checks_missing_files_description": "Luba või keela puuduvate failide kontroll ning seadista selle sagedus",
+ "integrity_checks_missing_files_enable_description": "Luba puuduvate failide kontroll",
+ "integrity_checks_untracked_files": "Mittejälgitud failid",
+ "integrity_checks_untracked_files_description": "Luba või keela mittejälgitud failide kontroll ning seadista selle sagedus",
+ "integrity_checks_untracked_files_enable_description": "Luba mittejälgitud failide kontroll",
"job_concurrency": "{job} samaaegsus",
"job_created": "Tööde lisatud",
"job_not_concurrency_safe": "Seda töödet pole ohutu samaaegselt käivitada.",
@@ -414,6 +426,10 @@
"transcoding_realtime_description": "Lubab video voogedastuse ajal reaalajas transkodeerimist. Võimaldab kvaliteedi vahetamist, aga võib põhjustada taasesituse kõrgemat latentsust ja katkestusi, sõltuvalt serveri võimekusest.",
"transcoding_realtime_enabled": "Luba reaalajas transkodeerimine",
"transcoding_realtime_enabled_description": "Kui keelatud, keeldub server uusi reaalajas transkodeerimise sessioone alustamast.",
+ "transcoding_realtime_resolutions": "Resolutsioonid",
+ "transcoding_realtime_resolutions_description": "Reaalajas transkodeerimiseks saadaval olevad resolutsioonid. Kõrgemad resolutsioonid võivad põhjustada taasesituse probleeme, kui server ei suuda piisavalt kiiresti transkodeerida.",
+ "transcoding_realtime_video_codecs": "Videokoodekid",
+ "transcoding_realtime_video_codecs_description": "Reaalajas transkodeerimiseks saadaval olevad videkoodekid. Kliendid valivad taasesituse ajal parima toetatud variandi. AV1 on efektiivsem kui HEVC, mis on omakorda efektiivsem kui H.264. Riistvaralise kiirenduse kasutamisel vali ainult koodekid, mida kiirendi suudab kodeerida. Tarkvaralise transkodeerimise puhul pane tähele, et H.264 on kiirem kui AV1, mis on omakorda kiirem kui HEVC.",
"transcoding_reference_frames": "Viitekaadrid",
"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 vormingus videod",
@@ -576,6 +592,7 @@
"asset_viewer_settings_title": "Üksuste vaatur",
"assets": "Üksused",
"assets_added_to_album_count": "{count, plural, one {# üksus} other {# üksust}} albumisse lisatud",
+ "assets_added_to_album_partial_count": "{successCount}/{totalCount} {totalCount, plural, one {üksus} other {üksust}} lisatud albumisse",
"assets_added_to_albums_count": "{assetTotal, plural, one {# üksus} other {# üksust}} lisatud {albumTotal, plural, one {# albumisse} other {# albumisse}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Üksust} other {Üksuseid}} ei saa albumisse lisada",
"assets_cannot_be_added_to_albums": "{count, plural, one {Üksust} other {Üksuseid}} ei saa lisada ühtegi albumisse",
@@ -792,7 +809,6 @@
"custom_date": "Muu kuupäev",
"custom_locale": "Kohandatud lokaat",
"custom_locale_description": "Vorminda kuupäevad, kellaajad ja arvud vastavalt valitud keelele ja regioonile",
- "custom_url": "Kohandatud URL",
"cutoff_date_description": "Jäta alles fotod ja videod viimasest…",
"cutoff_day": "{count, plural, one {päev} other {päeva}}",
"cutoff_year": "{count, plural, one {aasta} other {aastat}}",
@@ -1453,6 +1469,7 @@
"never": "Mitte kunagi",
"new_album": "Uus album",
"new_api_key": "Uus API võti",
+ "new_feature": "Uus funktsionaalsus",
"new_password": "Uus parool",
"new_person": "Uus isik",
"new_pin_code": "Uus PIN-kood",
@@ -1513,6 +1530,8 @@
"obtainium_configurator": "Obtainiumi seadistamine",
"obtainium_configurator_instructions": "Androidi rakenduse otse GitHub'ist paigaldamiseks ja uuendamiseks kasuta Obtainiumit. Seadistamise lingi loomiseks lisa API võti ja vali rakenduse variant",
"ocr": "OCR",
+ "ocr_body": "Immich loeb nüüd teksti sinu fotodel, nii et saad selle järgi neid otsida.",
+ "ocr_title": "Otsi teksti oma fotodel",
"official_immich_resources": "Ametlikud Immich'i ressursid",
"offline": "Ühendus puudub",
"offset": "Nihe",
@@ -1531,6 +1550,8 @@
"open": "Ava",
"open_calendar": "Ava kalender",
"open_in_browser": "Ava brauseris",
+ "open_in_immich_body": "Sea Immich oma Androidi galeriirakenduseks, et fotosid otse teistest rakendustest avada.",
+ "open_in_immich_title": "Ava fotod Immich'is",
"open_in_map_view": "Ava kaardi vaates",
"open_in_openstreetmap": "Ava OpenStreetMap",
"open_the_search_filters": "Ava otsingufiltrid",
@@ -1588,7 +1609,7 @@
"person": "Isik",
"person_age_months": "{months, plural, one {# kuu} other {# kuud}} vana",
"person_age_year_months": "1 aasta {months, plural, one {# kuu} other {# kuud}} vana",
- "person_age_years": "{years, plural, other {# aastat}} vana",
+ "person_age_years": "{years, plural, one {# aasta} other {# aastat}} vana",
"person_birthdate": "Sündinud {date}",
"person_hidden": "{name}{hidden, select, true { (peidetud)} other {}}",
"person_recognized": "Isik tuvastatud",
@@ -1688,7 +1709,9 @@
"recent": "Hiljutine",
"recent_searches": "Hiljutised otsingud",
"recently_added": "Hiljuti lisatud",
+ "recently_added_description": "Sirvi oma üksuseid sorteerituna Immich'isse üleslaadimise järgi",
"recently_added_page_title": "Hiljuti lisatud",
+ "recently_added_title": "Hiljuti lisatud",
"recently_taken": "Hiljuti tehtud",
"refresh": "Värskenda",
"refresh_encoded_videos": "Värskenda kodeeritud videod",
@@ -1895,6 +1918,8 @@
"share_link": "Jaga linki",
"share_original": "Kasuta algset (suur)",
"share_preview": "Kasuta pisipilti (väike)",
+ "share_quality_body": "Vajuta ja hoia jagamise nuppu, et valida enne jagamist pildifaili kvaliteet.",
+ "share_quality_title": "Vali jagamise kvaliteet",
"shared": "Jagatud",
"shared_album_activities_input_disable": "Kommentaarid on keelatud",
"shared_album_activity_remove_content": "Kas soovid selle tegevuse kustutada?",
@@ -1976,6 +2001,7 @@
"sign_out": "Logi välja",
"sign_up": "Registreeru",
"size": "Suurus",
+ "skip": "Jäta vahele",
"skip_to_content": "Sisu juurde",
"skip_to_folders": "Kaustade juurde",
"skip_to_tags": "Siltide juurde",
@@ -1986,6 +2012,7 @@
"slideshow_repeat": "Korda slaidiesitlust",
"slideshow_repeat_description": "Mine slaidiesitluse lõppedes tagasi algusesse",
"slideshow_settings": "Slaidiesitluse seaded",
+ "slideshow_title": "Slaidiesitlus",
"smart_album": "Nutikas album",
"some_assets_already_have_a_location_warning": "Osadel valitud üksustest on juba asukoht määratud",
"sort_albums_by": "Järjesta albumid...",
@@ -2113,6 +2140,7 @@
"unknown": "Teadmata",
"unknown_country": "Tundmatu riik",
"unknown_date": "Tundmatu kuupäev",
+ "unknown_schema": "Tundmatu skeem",
"unknown_year": "Teadmata aasta",
"unlimited": "Piiramatu",
"unlink_motion_video": "Tühista liikuva video linkimine",
@@ -2148,6 +2176,8 @@
"upload_status_errors": "Vead",
"upload_status_uploaded": "Üleslaaditud",
"upload_success": "Üleslaadimine õnnestus, uute üksuste nägemiseks värskenda lehte.",
+ "upload_to_album_body": "Kui sa ei kasuta käsitsi üleslaadimise funktsionaalsust, saad nüüd fotode üleslaadimisel need otse albumisse lisada, pole vaja kõigepealt üles laadida ja seejärel albumisse lisada.",
+ "upload_to_album_title": "Laadi üles otse albumisse",
"upload_to_immich": "Laadi Immich'isse ({count})",
"uploading": "Üleslaadimine",
"uploading_media": "Üksuste üleslaadimine",
@@ -2215,6 +2245,9 @@
"week": "Nädal",
"welcome": "Tere tulemast",
"welcome_to_immich": "Tere tulemast Immich'isse",
+ "whats_new": "Mis on uut",
+ "whats_new_settings_subtitle": "Vaata, mis on Immich'is uut",
+ "whats_new_version": "Versioon {version}",
"width": "Laius",
"wifi_name": "WiFi-võrgu nimi",
"workflow": "Töövoog",
diff --git a/i18n/eu.json b/i18n/eu.json
index 77112d32dc..49eac5f4fa 100644
--- a/i18n/eu.json
+++ b/i18n/eu.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Miniaturaren kalitatea 1-100. Handia hobea da, baina fitxategi handiagoak sortzen ditu eta aplikazioen jariakortasuna murriztu dezake.",
"image_thumbnail_title": "Argazki Txikien Konfigurazioa",
"import_config_from_json_description": "Inportatu sistema konfigurazioa JSON konfigurazio fitxategia kargatuz",
+ "integrity_checks_checksum_files": "Egiaztapeneko baturen fitxategiak",
+ "integrity_checks_checksum_files_description": "Egiaztapeneko baturen egiaztapena kudeatu",
+ "integrity_checks_checksum_files_enable_description": "Egiaztapeneko baturen egiaztapena gaitu",
+ "integrity_checks_checksum_files_percentage_limit": "Ehunekoaren muga",
+ "integrity_checks_checksum_files_percentage_limit_description": "Konfiguratu gehienezko ehunekoa 0,01 eta 1 arteko egiaztapeneko baturak tarte bakoitzean zenbateraino exekutatu behar duen.",
+ "integrity_checks_checksum_files_time_limit": "Denbora muga",
+ "integrity_checks_checksum_files_time_limit_description": "Konfiguratu egiaztapeneko baturak tarte bakoitzean exekutatu behar duen gehienezko iraupena. (ms)",
+ "integrity_checks_missing_files": "Falta diren fitxategiak",
+ "integrity_checks_missing_files_description": "Konfiguratu maiztasuna eta gaitu edo desgaitu falta diren fitxategien egiaztapena",
+ "integrity_checks_missing_files_enable_description": "Gaitu falta diren fitxategien egiaztapena",
+ "integrity_checks_settings": "Osotasun egiaztapenak",
+ "integrity_checks_settings_description": "Kudeatu osotasuna egiaztatzeko tarteak",
+ "integrity_checks_untracked_files": "Jarraitu gabeko fitxategiak",
+ "integrity_checks_untracked_files_description": "Konfiguratu maiztasuna eta gaitu edo desgaitu jarraitu gabeko fitxategien egiaztapena",
+ "integrity_checks_untracked_files_enable_description": "Gaitu jarraitu gabeko fitxategien egiaztapena",
"job_concurrency": "{job} konkurrentzia",
"job_created": "Zeregina sortuta",
"job_not_concurrency_safe": "Ataza hau ez da segurua aldiberekotasunerako.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Bideoa erreproduzitzen ari den heinean transkodetzea denbora errealean egiteko aukera ematen du. Kalitate aldaketa gaitzen du, baina zerbitzariaren gaitasunen arabera erreprodukzio-latentzia eta toteltze handiagoak sor ditzake.",
"transcoding_realtime_enabled": "Gaitu denbora errealeko transkodeketa",
"transcoding_realtime_enabled_description": "Desgaituta badago, zerbitzariak uko egingo dio denbora errealeko transkodetze saio berriei.",
+ "transcoding_realtime_resolutions": "Bereizmenak",
+ "transcoding_realtime_resolutions_description": "Denbora errealean transkodetzeko eskaintzen diren bereizmenak. Bereizmen handiagoek erreprodukzio-arazoak sor ditzakete zerbitzariak ezin baditu behar bezain azkar transkodetzen.",
+ "transcoding_realtime_video_codecs": "Bideo kodetzaileak",
+ "transcoding_realtime_video_codecs_description": "Denbora errealean transkodetzeko eskaintzen diren bideo-kodetzaileak. Erreprodukzioan onartzen duten aukerarik onena aukeratuko dute bezeroek. AV1 HEVC baino eraginkorragoa da, baita H.264 baino eraginkorragoa. Hardware-azelerazioa erabiltzean, hautatu azeleragailuak kode ditzakeen kodetzaileak soilik. Software transkodeketa erabiltzean, kontuan izan H.264 AV1 baino azkarragoa dela, baita HEVC baino azkarragoa.",
"transcoding_reference_frames": "Erreferentzia fotogramak",
"transcoding_reference_frames_description": "Forograma jakin bat konprimitzean erreferentzia beharreko fotograma kopurua. Balio altuagoek konpresioaren eraginkortasuna hobetzen dute, baina kodeketa moteltzen dute. 0-k balio hau automatikoki ezartzen du.",
"transcoding_required_description": "Onartutako formatu batean ez dauden bideoak bakarrik",
@@ -543,11 +562,11 @@
"app_update_available": "Aplikazioaren eguneratzea eskuragarri dago",
"appears_in": "Hemen agertzen da",
"apply_count": "Ezarri ({count, number})",
- "archive": "Artxibo",
+ "archive": "Artxibategia",
"archive_action_prompt": "{count} artxibategira bidalita",
"archive_or_unarchive_photo": "Argazkia artxibatu edo berrezarri",
- "archive_size": "Artxibo tamaina",
- "archive_size_description": "Konfiguratu artxiboaren tamaina deskargak egiteko (GiB-tan)",
+ "archive_size": "Fitxategi konprimatuaren tamaina",
+ "archive_size_description": "Konfiguratu konprimitatutako fitxategiaren tamaina deskargak egiteko (GiB-tan)",
"archived": "Artxibatua",
"archived_count": "{count, plural, one {artxibatu bat} other {# artxibatu}}",
"are_these_the_same_person": "Pertsona bera al dira hauek?",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Baliabide ikuslea",
"assets": "Baliabideak",
"assets_added_to_album_count": "{count, plural, one {Baliabide bat} other {# baliabide}} albumera gehituta",
+ "assets_added_to_album_partial_count": "{totalCount, number}-(e)tik baliabide {successCount, number, plural, one {bat gehitu da albumera} other {# gehitu dira albumera}}",
"assets_added_to_albums_count": "Gehituta {assetTotal, plural, one {# asset} other {# assets}} to {albumTotal, plural, one {# album} other {# albums}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Baliabidea ezin izan da albumera gehitu} other {Baliabideak ezin izan dira albumera gehitu}}",
"assets_cannot_be_added_to_albums": "{count, plural, one {Asset} other {Assets}} ezin izan da albumetara gehitu",
@@ -794,7 +814,6 @@
"custom_date": "Data pertsonalizatua",
"custom_locale": "Lokalizazio pertsonalizatua",
"custom_locale_description": "Formateatu datak, orduak eta zenbakiak hautatutako hizkuntza eta eskualdearen arabera",
- "custom_url": "URL pertsonalizatua",
"cutoff_date_description": "Mantendu epe honetan sartzen diren argazkiak…",
"cutoff_day": "{count, plural, one {egun} other {egun}}",
"cutoff_year": "{count, plural, one {urte} other {urte}}",
@@ -1305,7 +1324,7 @@
"login_form_password_hint": "pasahitza",
"login_form_server_empty": "Zerbitzari URL bat sartu",
"login_form_server_error": "Ezin izan da zerbitzarira konektatu",
- "login_has_been_disabled": "Saioa hastea desgaitu da.",
+ "login_has_been_disabled": "Saioa hastea desgaitu da",
"login_password_changed_error": "Errore bat gertatu da pasahitza eguneratzean",
"login_password_changed_success": "Pasahitza arrakastaz eguneratu",
"logout_all_device_confirmation": "Ziur zaude gailu guztietan saioa amaitu nahi duzula?",
@@ -1461,6 +1480,7 @@
"never": "Inoiz ez",
"new_album": "Album berria",
"new_api_key": "API gako berria",
+ "new_feature": "Ezaugarri berria",
"new_password": "Pasahitz berria",
"new_person": "Pertsona berria",
"new_pin_code": "PIN gako berria",
@@ -1521,6 +1541,8 @@
"obtainium_configurator": "Obtainium kudeatzailea",
"obtainium_configurator_instructions": "Erabili Obtainium Immich GitHub-en bertsiotik zuzenean Android aplikazioa instalatzeko eta eguneratzeko. Sortu API gako bat eta hautatu aldaera bat zure Obtainium konfigurazio esteka sortzeko",
"ocr": "OCR",
+ "ocr_body": "Immichek orain zure argazkien barruan dagoen testua irakurtzen du, haiek esaten dutenaren arabera bilatu ahal izateko.",
+ "ocr_title": "Bilatu testua zure argazkietan",
"official_immich_resources": "Immich-en baliabide ofizialak",
"offline": "Lineaz kanpo",
"offset": "Desbiderapena",
@@ -1539,6 +1561,8 @@
"open": "Zabalik",
"open_calendar": "Egutegia zabaldu",
"open_in_browser": "Arakatzailean zabaldu",
+ "open_in_immich_body": "Ezarri Immich zure galeria gisa Android-en argazkiak zuzenean irekitzeko beste aplikazioetatik.",
+ "open_in_immich_title": "Ireki argazkiak Immich-en",
"open_in_map_view": "Ireki maparen ikuspegian",
"open_in_openstreetmap": "OpenStreetMap-en zabaldu",
"open_the_search_filters": "Bilaketa-iragazkiak ireki",
@@ -1594,9 +1618,9 @@
"permission": "Baimena",
"permission_empty": "Zure baimenak ez du hutsik egon behar",
"person": "Pertsona",
- "person_age_months": "Orain dela {months, plural, one {hilabete bat} other {# hilabete}}",
+ "person_age_months": "Duela {months, plural, one {hilabete bat} other {# hilabete}}",
"person_age_year_months": "Urte bat eta {months, plural, one {hilabete bat} other {# hilabete}}",
- "person_age_years": "Adina: {years, plural, other {# urte}}",
+ "person_age_years": "{years, plural, one{Urte bat} other {# urte}}",
"person_birthdate": "{date} -(a)n jaiota",
"person_hidden": "{name}{hidden, select, true { (ezkutatuta)} other {}}",
"person_recognized": "Pertsona ezagutua",
@@ -1697,7 +1721,10 @@
"recent": "Berria",
"recent_searches": "Duela gutxiko bilaketak",
"recently_added": "Duela gutxi gehitutakoak",
+ "recently_added_body": "Joan zuzenean azkenaldian gehitu duzun guztiari eskainitako orrialde batean.",
+ "recently_added_description": "Arakatu zure fitxategiak Immich-en kargatzeko dataren arabera ordenatuta",
"recently_added_page_title": "Duela gutxi gehitutakoak",
+ "recently_added_title": "Duela gutxi gehituta",
"recently_taken": "Duela gutxi ateratakoak",
"refresh": "Freskatu",
"refresh_encoded_videos": "Kodetutako bideoak freskatu",
@@ -1904,6 +1931,8 @@
"share_link": "Esteka partekatu",
"share_original": "Jatorrizkoa erabili (handia)",
"share_preview": "Miniatura erabili (txikia)",
+ "share_quality_body": "Eduki sakatuta partekatzeko botoia partekatu aurretik irudiaren kalitatea aukeratzeko.",
+ "share_quality_title": "Aukeratu zure partekatzeko kalitatea",
"shared": "Partekatuta",
"shared_album_activities_input_disable": "Iruzkinak desgaituta daude",
"shared_album_activity_remove_content": "Jarduera hau ezabatu nahi duzu?",
@@ -2113,7 +2142,7 @@
"unable_to_check_version": "Ezin da egiaztatu aplikazioaren edo zerbitzariaren bertsioa",
"unable_to_setup_pin_code": "Ezin izan da PIN kodea ezarri",
"unarchive": "Desartxibatu",
- "unarchive_action_prompt": "{count} artxibotik kendu dira",
+ "unarchive_action_prompt": "{count, plural, one {Artxibotik kendu da} other {# artxibotik kendu dira}}",
"unarchived_count": "{count, plural, one {Artxibatu gabeko bat} other {# artxibatu gabeko}}",
"undo": "Desegin",
"unfavorite": "Gogokoetatik kendu",
@@ -2244,7 +2273,7 @@
"wrong_pin_code": "PIN kode okerra",
"x_of_total": "{total}-(e)tik {x}",
"year": "Urtea",
- "years_ago": "Orain dela {years, plural, one {urte bat} other {# urte}}",
+ "years_ago": "Duela {years, plural, one {urte bat} other {# urte}}",
"yes": "Bai",
"you_dont_have_any_shared_links": "Ez duzu partekatutako estekarik",
"your_wifi_name": "Zure Wi-Fi izena",
diff --git a/i18n/fa.json b/i18n/fa.json
index e0b6c8b056..3f2be10f4f 100644
--- a/i18n/fa.json
+++ b/i18n/fa.json
@@ -23,6 +23,7 @@
"add_location": "افزودن مکان",
"add_partner": "افزودن شریک",
"add_photos": "افزودن عکس ها",
+ "add_step": "افزودن گام",
"add_tag": "افزودن تگ",
"add_to": "افزودن به …",
"add_to_album": "افزودن به آلبوم",
@@ -44,7 +45,7 @@
"authentication_settings": "تنظیمات احراز هویت",
"authentication_settings_description": "مدیریت رمز عبور، OAuth، و سایر تنظیمات احراز هویت",
"authentication_settings_disable_all": "آیا مطمئن هستید که میخواهید تمام روشهای ورود را غیرفعال کنید؟ ورود به طور کامل غیرفعال خواهد شد.",
- "authentication_settings_reenable": "برای فعال سازی مجدد از دستور سرور استفاده کنید.",
+ "authentication_settings_reenable": "برای فعالسازی مجدد، از دستور سرور استفاده کنید.",
"background_task_job": "وظایف پسزمینه",
"backup_database": "اضافه کردن یک نسخه کپی از دیتابیس",
"backup_database_enable_description": "فعال کردن کپی از دیتابیس",
@@ -52,7 +53,7 @@
"backup_onboarding_1_description": "کپی خارجی روی فضای ابری یا یک محل فیزیکی دیگر.",
"backup_onboarding_2_description": "کپیهای محلی روی دستگاههای دیگر. این شامل فایلهای اصلی و پشتیبانهای محلی از آن فایلها میباشد.",
"backup_onboarding_3_description": "مجموع کپیهای دادههای شما، به همراه فایلهای اصلی. این شامل ۱ کپی خارجی و ۲ کپی محلی میباشد.",
- "backup_onboarding_description": "برای حفاظت از اطلاعات شما یک روش پشتیبانی ۳-۲-۱ پیشنهاد میشود. برای یک پشتیبانی جامع، شما باید کپیهایی از عکسها/ویدیوهای آپلود شده خود به همراه دیتابیس Immich نگه دارید.",
+ "backup_onboarding_description": "برای محافظت از دادههای شما، یک استراتژی پشتیبانگیری ۳-۲-۱ توصیه میشود. شما باید نسخههایی از تصاویر/ویدیوهای آپلودشده و همچنین پایگاه داده Immich را برای یک راهکار پشتیبانگیری جامع نگهداری کنید.",
"backup_onboarding_footer": "برای اطلاعات بیشتر درباره بک آپ گیری از Immich، لطفا به مستندات مراجعه کنید.",
"backup_onboarding_parts_title": "روش پشتیبانی ۳-۲-۱ شامل:",
"backup_onboarding_title": "بک آپ ها",
@@ -68,15 +69,21 @@
"confirm_user_pin_code_reset": "آیا مطمئن هستید که میخواهید کد PIN {user} را بازنشانی کنید؟",
"copy_config_to_clipboard_description": "کپی کانفیگ فعلی سیستم در قالب یک آبجکت JSON در کلیپ بورد",
"create_job": "ایجاد جاب",
+ "cron_expression": "عبارت cron",
+ "cron_expression_description": "فاصله اسکن را با استفاده از فرمت cron تنظیم کنید. برای اطلاعات بیشتر، لطفاً به عنوان مثال به Crontab Guru مراجعه نمایید",
+ "cron_expression_presets": "پیشتنظیمهای عبارت cron",
"disable_login": "غیرفعال کردن ورود",
+ "download_csv": "دانلود csv",
"duplicate_detection_job_description": "اجرای یادگیری ماشین بر روی فایلها برای شناسایی تصاویر مشابه. این وابسته به جستجوی هوشمند است",
"exclusion_pattern_description": "الگوهای استثنا به شما امکان میدهد هنگام اسکن کتابخانه خود فایلها و پوشهها را نادیده بگیرید . این مفید است اگر پوشههایی دارید که فایلهایی را شامل میشوند که نمیخواهید وارد کنید، مانند فایلهای RAW.",
"export_config_as_json_description": "دانلود کانفیگ فعلی سیستم در قالب یک فایل JSON",
+ "external_libraries_page_description": "صفحه کتابخانه خارجی بخش مدیریت",
"face_detection": "تشخیص چهره",
"face_detection_description": "تشخیص چهرهها در فایلها با استفاده از یادگیری ماشین. برای ویدیوها، تنها تصویر بندانگشتی در نظر گرفته میشود. گزینه \"همه\" تمام فایلها را (مجددا) پردازش میکند. گزینه \"گمشده\" فایلها را در صف قرار میدهد که هنوز پردازش نشدهاند. چهرههای تشخیص داده شده پس از اتمام تشخیص چهره، برای تشخیص چهره به صورت صف انتظار قرار میگیرند، آنها را به افراد موجود یا جدید گروهبندی میکند.",
"facial_recognition_job_description": "گروهبندی چهرههای تشخیص داده شده به افراد. این مرحله پس از تشخیص چهره انجام میشود. گزینه \"همه\" تمام چهرهها را (مجددا) دسته بندی میکند. گزینه \"گمشده\" چهرهها را در صف قرار میدهد که به هیچ فردی اختصاص داده نشدهاند.",
"failed_job_command": "دستور {command} برای کار: {job} ناموفق بود",
"force_delete_user_warning": "هشدار: این عمل باعث حذف فوری کاربر و تمام فایلها میشود. این عمل قابل بازگشت نیست و فایلها قابل بازیابی نیستند.",
+ "image_format": "فرمت",
"image_format_description": "فرمت WebP فایلهای کوچکتری نسبت به JPEG ایجاد میکند، اما زمان کدگذاری آن کندتر است.",
"image_fullsize_description": "تصویر با اندازه کامل و بدون فراداده، مورد استفاده هنگام بزرگنمایی",
"image_fullsize_enabled": "فعالسازی تولید تصویر با اندازه کامل",
@@ -90,20 +97,45 @@
"image_preview_description": "تصویر با اندازه متوسط و بدون فراداده، مورد استفاده هنگام مشاهده یک دارایی و برای یادگیری ماشین",
"image_preview_quality_description": "کیفیت پیشنمایش از ۱ تا ۱۰۰. هرچه بالاتر باشد، کیفیت بهتر است، اما فایلهای بزرگتری ایجاد میکند و ممکن است پاسخگویی برنامه کاهش یابد. تنظیم مقدار پایین میتواند بر کیفیت یادگیری ماشین تأثیر بگذارد.",
"image_preview_title": "تنظیمات پیشنمایش",
+ "image_progressive": "پیشرونده",
+ "image_progressive_description": "تصاویر JPEG را بهصورت پیشرونده رمزگذاری نمایید تا در حین بارگذاری بهتدریج نمایش داده شوند. این تنظیم بر تصاویر WebP تأثیری ندارد.",
"image_quality": "کیفیت",
"image_resolution": "وضوح تصویر",
"image_resolution_description": "وضوح بالاتر میتواند جزئیات بیشتری را حفظ کند، اما تبدیل آن زمان بیشتری میبرد، حجم فایلها را افزایش میدهد و ممکن است پاسخگویی برنامه را کاهش دهد.",
"image_settings": "تنظیمات عکس",
"image_settings_description": "مدیریت کیفیت و وضوح تصاویر تولید شده",
+ "image_thumbnail_description": "تصویر بندانگشتی کوچک و بدون اطلاعات جانبی، برای نمایش دستهای عکسها مانند خط زمانی اصلی",
+ "image_thumbnail_quality_description": "کیفیت بندانگشتی از ۱ تا ۱۰۰. مقادیر بالاتر کیفیت بهتری دارند، اما حجم فایلها را افزایش داده و ممکن است سرعت پاسخگویی برنامه را کاهش دهند.",
+ "image_thumbnail_title": "تنظیمات تصویر بندانگشتی",
"import_config_from_json_description": "وارد کردن کانفیگ سیستم با آپلود یک فایل JSON",
+ "integrity_checks_checksum_files": "فایلهای checksum",
+ "integrity_checks_checksum_files_description": "پیکربندی بررسی checksum",
+ "integrity_checks_checksum_files_enable_description": "فعالسازی بررسی checksum",
+ "integrity_checks_checksum_files_percentage_limit": "محدودیت درصد",
+ "integrity_checks_checksum_files_percentage_limit_description": "حداکثر درصد بین ۰.۰۱ و ۱ را جهت تعیین میزان اجرای بررسی checksum در هر بازه زمانی پیکربندی نمایید.",
+ "integrity_checks_checksum_files_time_limit": "محدودیت زمان",
+ "integrity_checks_checksum_files_time_limit_description": "حداکثر مدت زمان اجرای بررسی Checksum در هر بازه را پیکربندی نمایید. (میلیثانیه)",
+ "integrity_checks_missing_files": "فایلهای مفقود",
+ "integrity_checks_missing_files_description": "تنظیم فاصله زمانی و فعال یا غیرفعالسازی بررسی فایلهای مفقود",
+ "integrity_checks_missing_files_enable_description": "فعالسازی بررسی فایلهای مفقودشده",
+ "integrity_checks_settings": "بررسیهای یکپارچگی",
+ "integrity_checks_settings_description": "مدیریت فواصل زمانی بررسیهای یکپارچگی",
+ "integrity_checks_untracked_files": "فایلهای ردیابینشده",
+ "integrity_checks_untracked_files_description": "تنظیم فاصله زمانی و فعال یا غیرفعالسازی بررسی فایلهای ردیابینشده",
+ "integrity_checks_untracked_files_enable_description": "فعالسازی بررسی فایلهای ردیابینشده",
"job_concurrency": "همزمانی {job}",
"job_created": "جاب ساخته شد",
"job_not_concurrency_safe": "این کار ایمنی همزمانی را تضمین نمیکند.",
"job_settings": "تنظیمات کار",
"job_settings_description": "مدیریت همزمانی کار",
+ "jobs_delayed": "{jobCount, plural, other {# به تأخیر افتاده}}",
+ "jobs_failed": "{jobCount, plural, other {# ناموفق}}",
+ "jobs_over_time": "وظایف در طول زمان",
"library_created": "کتابخانه ایجاد شده: {library}",
"library_deleted": "کتابخانه حذف شد",
+ "library_details": "جزئیات کتابخانه",
"library_folder_description": "یک پوشه برای ایمپورت مشخص کنید. این پوشه و پوشه های داخل آن، برای عکس ها و ویدیو ها اسکن می شوند.",
+ "library_remove_exclusion_pattern_prompt": "آیا از حذف این الگوی استثنا اطمینان دارید؟",
"library_remove_folder_prompt": "آیا از حذف این پوشه ایمپورت مطمئن هستید؟",
"library_scanning": "اسکن دوره ای",
"library_scanning_description": "تنظیم اسکن دورهای کتابخانه",
@@ -147,6 +179,7 @@
"machine_learning_min_detection_score_description": "حداقل امتیاز اعتماد برای تشخیص یک چهره، در بازه 0 تا 1 قرار دارد. مقادیر کمتر باعث تشخیص بیشتر چهره میشود، اما ممکن است منجر به تشخیصهای اشتباه شود.",
"machine_learning_min_recognized_faces": "حداقل چهره های شناخته شده",
"machine_learning_min_recognized_faces_description": "حداقل تعداد چهرههای تشخیص داده شده برای ایجاد یک شخص. افزایش این مقدار باعث دقیقتر شدن تشخیص چهره میشود، اما همزمان باعث افزایش احتمال این میشود که یک چهره به یک شخص نسبت داده نشود.",
+ "machine_learning_ocr": "استخراج متن از تصویر (OCR)",
"machine_learning_ocr_description": "استفاده از یادگیری ماشین برای تشخیص متن داخل عکس ها",
"machine_learning_ocr_enabled": "فعال سازی OCR",
"machine_learning_ocr_enabled_description": "اگر غیر فعال باشد، تشخیص متن روی عکس ها انجام نمی شود.",
@@ -165,6 +198,37 @@
"machine_learning_smart_search_enabled": "فعال سازی جستجوی هوشمند",
"machine_learning_smart_search_enabled_description": "اگر غیرفعال باشد، تصاویر برای جستجوی هوشمند رمزگذاری نخواهند شد.",
"machine_learning_url_description": "آدرس سرور یادگیری ماشین. اگر بیش از یک آدرس داده شود، هر سرور بصورت یکی در لحظه امتحان می شوند تا زمانی که یکی از آنها با موفقیت پاسخ دهد، از اول به آخر. سرور هایی که پاسخ ندهند بصورت موقت نادیده گرفته می شوند تا زمانی که به وضعیت آنلاین برگردند.",
+ "maintenance_backup_management": "مدیریت پشتیبانگیری",
+ "maintenance_delete_backup": "حذف پشتیبان",
+ "maintenance_delete_backup_description": "این فایل بهطور غیرقابل بازگشت حذف خواهد شد.",
+ "maintenance_delete_error": "خطا در حذف پشتیبان.",
+ "maintenance_integrity_check": "بررسی",
+ "maintenance_integrity_check_all": "بررسی همه",
+ "maintenance_integrity_checksum_mismatch": "عدم تطابق Checksum",
+ "maintenance_integrity_checksum_mismatch_description": "فایلهایی که Checksum آنها روی دیسک با Checksum ذخیرهشده در پایگاه داده Immich مطابقت ندارد.",
+ "maintenance_integrity_checksum_mismatch_job": "بررسی عدم تطابق Checksum",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "بهروزرسانی گزارشهای عدم تطابق Checksum",
+ "maintenance_integrity_missing_file": "فایلهای مفقودشده",
+ "maintenance_integrity_missing_file_description": "فایلهایی که Immich در پایگاه داده خود ردیابی کرده، اما در سیستم فایل وجود ندارند.",
+ "maintenance_integrity_missing_file_job": "بررسی فایلهای مفقودشده",
+ "maintenance_integrity_missing_file_refresh_job": "بهروزرسانی گزارشهای فایلهای مفقودشده",
+ "maintenance_integrity_report": "گزارش یکپارچگی",
+ "maintenance_integrity_untracked_file": "فایلهای ردیابینشده",
+ "maintenance_integrity_untracked_file_description": "فایلهای موجود در پوشههای Immich که هیچ سوابقی از آنها در Immich ثبت نشده است.",
+ "maintenance_integrity_untracked_file_job": "بررسی فایلهای ردیابینشده",
+ "maintenance_integrity_untracked_file_refresh_job": "بهروزرسانی گزارشهای فایلهای ردیابینشده",
+ "maintenance_restore_backup": "بازیابی پشتیبان",
+ "maintenance_restore_backup_description": "Immich پاکسازی شده و از نسخه پشتیبان انتخابی بازیابی میشود. قبل از شروع فرآیند، یک نسخه پشتیبان جدید تهیه خواهد شد.",
+ "maintenance_restore_backup_different_version": "این نسخه پشتیبان با نسخه متفاوتی از Immich ایجاد شده است!",
+ "maintenance_restore_backup_unknown_version": "امکان تشخیص نسخه این پشتیبان وجود ندارد.",
+ "maintenance_restore_database_backup": "بازیابی نسخه پشتیبان پایگاه داده",
+ "maintenance_restore_database_backup_description": "بازگردانی پایگاه داده به وضعیت قبلی با استفاده از فایل پشتیبان",
+ "maintenance_settings": "تعمیرات و نگهداری",
+ "maintenance_settings_description": "Immich را در حالت تعمیر و نگهداری قرار دهید.",
+ "maintenance_start": "تغییر به حالت تعمیر و نگهداری",
+ "maintenance_start_error": "خطا در شروع حالت تعمیر و نگهداری.",
+ "maintenance_upload_backup": "…بارگذاری فایل پشتیبان پایگاه داده",
+ "maintenance_upload_backup_error": "امکان بارگذاری پشتیبان وجود ندارد؛ آیا فایل از نوع .sql یا .sql.gz است؟",
"manage_concurrency": "مدیریت همزمانی",
"manage_concurrency_description": "رفتن به صفحه جاب ها برای مدیریت همزمانی جاب ها",
"manage_log_settings": "مدیریت تنظیمات گزارش",
@@ -174,7 +238,7 @@
"map_gps_settings_description": "تنظیمات نقشه و جیپیاس (ژئوکدینگ معکوس) را مدیریت کنید",
"map_implications": "قابلیت نقشه به یک سرویس tile خارجی نیاز دارد (tiles.immich.cloud)",
"map_light_style": "حالت روشن",
- "map_manage_reverse_geocoding_settings": "مدیریت تنظیمات کدگذاری مکانی معکوس ",
+ "map_manage_reverse_geocoding_settings": "مدیریت تنظیمات معکوسسازی موقعیت جغرافیایی",
"map_reverse_geocoding": "ژئوکدینگ معکوس",
"map_reverse_geocoding_enable_description": "فعال سازی ژئوکدینگ معکوس",
"map_reverse_geocoding_settings": "تنظیمات ژئوکدینگ معکوس",
@@ -182,6 +246,7 @@
"map_settings_description": "مدیریت تنظیمات نقشه",
"map_style_description": "آدرس اینترنتی (style.json) نوع نمایش نقشه",
"memory_cleanup_job": "پاک سازی حافظه",
+ "memory_generate_job": "تولید خاطرات",
"metadata_extraction_job": "استخراج فرا داده",
"metadata_extraction_job_description": "استخراج اطلاعات ابرداده، مانند موقعیت جغرافیایی و کیفیت از هر فایل",
"metadata_faces_import_setting": "فعال سازی ایمپورت صورت",
@@ -189,13 +254,19 @@
"metadata_settings": "تنظیمات Metadata",
"metadata_settings_description": "مدیریت تنظیمات metadata",
"migration_job": "مهاجرت",
+ "migration_job_description": "انتقال تصاویر بندانگشتی داراییها و چهرهها به ساختار پوشه جدید",
"nightly_tasks_cluster_faces_setting_description": "اجرای شناسایی چهره روی چهره های تازه تشخیص داده شده",
"nightly_tasks_cluster_new_faces_setting": "گروه بندی چهره های جدید",
"nightly_tasks_database_cleanup_setting": "تسک های پاک سازی پایگاه داده",
"nightly_tasks_database_cleanup_setting_description": "پاک سازی داده های قدیمی، منقضی شده از پایگاه داده",
"nightly_tasks_generate_memories_setting": "ایجاد خاطرات",
"nightly_tasks_generate_memories_setting_description": "ایجاد خاطرات جدید از فایل ها",
+ "nightly_tasks_missing_thumbnails_setting": "ایجاد تصاویر بندانگشتی مفقودشده",
+ "nightly_tasks_missing_thumbnails_setting_description": "افزودن داراییهای فاقد تصویر بندانگشتی به صف ساخت",
+ "nightly_tasks_settings": "تنظیمات وظایف شبانه",
+ "nightly_tasks_settings_description": "مدیریت وظایف شبانه",
"nightly_tasks_start_time_setting": "زمان شروع",
+ "nightly_tasks_start_time_setting_description": "زمانی که سرور شروع به اجرای وظایف شبانه میکند",
"nightly_tasks_sync_quota_usage_setting": "همگام سازی میزان استفاده از سهمیه",
"nightly_tasks_sync_quota_usage_setting_description": "بروزرسانی سهمیه ذخیره سازی کاربر، بر اساس استفاده فعلی",
"no_paths_added": "هیچ مسیری اضافه نشده",
@@ -203,12 +274,14 @@
"note_apply_storage_label_previous_assets": "توجه: برای اعمال برچسب ذخیره سازی به دارایی هایی که قبلاً بارگذاری شده اند، دستور زیر را اجرا کنید",
"note_cannot_be_changed_later": "توجه: این را نمی توان بعداً تغییر داد!",
"notification_email_from_address": "آدرس فرستنده",
- "notification_email_from_address_description": "آدرس ایمیل فرستنده، به عنوان مثال:\"سرور عکس Immich \". مطمئن باشید از آدرسی استفاده کنید که اجازه ارسال ایمیل از آن را دارید.",
+ "notification_email_from_address_description": "آدرس ایمیل فرستنده، به عنوان مثال:\"سرور عکس Immich \". مطمئن باشید از آدرسی استفاده کنید که اجازه ارسال ایمیل از آن را دارید.",
"notification_email_host_description": "میزبان سرور ایمیل (مثلاً smtp.immich.app)",
"notification_email_ignore_certificate_errors": "خطاهای گواهی را نادیده بگیر",
"notification_email_ignore_certificate_errors_description": "خطاهای اعتبارسنجی گواهی TLS را نادیده بگیر (توصیه نمیشود)",
"notification_email_password_description": "رمز عبور برای استفاده در هنگام احراز هویت با سرور ایمیل",
"notification_email_port_description": "پورت سرور ایمیل (مثلاً 25، 465 یا 587)",
+ "notification_email_secure": "SMTPS",
+ "notification_email_secure_description": "استفاده از SMTPS (SMTP بر روی TLS)",
"notification_email_sent_test_email_button": "ایمیل آزمایشی بفرست و ذخیره کن",
"notification_email_setting_description": "تنظیمات برای ارسال اعلان های ایمیل",
"notification_email_test_email": "ارسال ایمیل آزمایشی",
@@ -218,15 +291,22 @@
"notification_enable_email_notifications": "فعال کردن اعلان های ایمیل",
"notification_settings": "تنظیمات اعلان",
"notification_settings_description": "مدیریت تنظیمات اعلان ها، از جمله ایمیل",
+ "oauth_allow_insecure_requests": "اجازه درخواستهای ناامن",
+ "oauth_allow_insecure_requests_description": "هشدار: این گزینه اعتبارسنجی گواهی TLS را برای درخواستهای OAuth غیرفعال میکند و ممکن است شما را در معرض حملات MITM قرار دهد.",
"oauth_auto_launch": "راه اندازی خودکار",
"oauth_auto_launch_description": "جریان ورود به سیستم OAuth را به طور خودکار هنگام هدایت به صفحه ورود شروع کن",
"oauth_auto_register": "ثبت خودکار",
"oauth_auto_register_description": "کاربران جدید را پس از ورود با OAuth به طور خودکار ثبت نام کن",
"oauth_button_text": "متن دکمه",
+ "oauth_client_secret_description": "برای کلاینتهای محرمانه الزامی است، یا در صورتی که PKCE (کلید اثبات برای تبادل کد) توسط کلاینت عمومی پشتیبانی نشود.",
"oauth_enable_description": "ورود توسط OAuth",
+ "oauth_end_session_url_description": "کاربر را هنگام خروج به این URI هدایت کنید.",
"oauth_mobile_redirect_uri": "تغییر مسیر URI موبایل",
"oauth_mobile_redirect_uri_override": "تغییر مسیر URI تلفن همراه",
"oauth_mobile_redirect_uri_override_description": "زمانی که ارائه دهنده OAuth اجازه استفاده از آدرس موبایل، مانند ''{callback}'' را نمی دهد",
+ "oauth_prompt_description": "پارامتر Prompt (مانند select_account، login، consent)",
+ "oauth_role_claim": "درخواست نقش",
+ "oauth_role_claim_description": "اعطای خودکار دسترسی مدیر بر اساس وجود این ادعا. مقدار ادعا میتواند «user» یا «admin» باشد.",
"oauth_settings": "OAuth",
"oauth_settings_description": "مدیریت تنظیمات ورود به سیستم OAuth",
"oauth_settings_more_details": "برای جزئیات بیشتر در مورد این ویژگی، به مستندات مراجعه کنید.",
@@ -235,7 +315,7 @@
"oauth_storage_quota_claim": "درخواست سهمیه فضای ذخیره سازی",
"oauth_storage_quota_claim_description": "تنظیم خودکار سهمیه ذخیرهسازی کاربر به مقدار درخواست شده.",
"oauth_storage_quota_default": "مقدار سهمیه ذخیرهسازی پیشفرض (گیگابایت)",
- "oauth_storage_quota_default_description": "سهمیه به گیگابایت هنگامی که درخواستی ارائه نشده باشد",
+ "oauth_storage_quota_default_description": "سهمیه به گیگابایت برای استفاده هنگامی که هیچ درخواستی ارائه نشده است.",
"oauth_timeout": "تایم اوت درخواست",
"oauth_timeout_description": "زمان تایم اوت برای درخواست ها بصورت میلی ثانیه",
"ocr_job_description": "استفاده از یادگیری ماشین برای شناسایی متن در عکس ها",
@@ -243,6 +323,7 @@
"password_settings": "گذرواژه ورود",
"password_settings_description": "مدیریت تنظیمات گذرواژه ورود",
"paths_validated_successfully": "تمامی مسیرها با موفقیت تأیید شدند",
+ "person_cleanup_job": "پاکسازی شخص",
"queue_details": "جزئیات صف",
"queues": "صف های جاب",
"queues_page_description": "صفحه ادمین صف های جاب",
@@ -250,18 +331,22 @@
"refreshing_all_libraries": "بروز رسانی همه کتابخانه ها",
"registration": "ثبت نام مدیر",
"registration_description": "از آنجایی که شما اولین کاربر در سیستم هستید، به عنوان مدیر تعیین شدهاید و مسئولیت انجام وظایف مدیریتی بر عهده شما خواهد بود و کاربران اضافی توسط شما ایجاد خواهند شد.",
+ "release_channel_release_candidate": "نامزد انتشار",
+ "release_channel_stable": "پایدار",
"remove_failed_jobs": "حذف جاب های ناموفق",
"require_password_change_on_login": "الزام کاربر به تغییر گذرواژه در اولین ورود",
"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": "دامنه برای لینک های عمومی به اشتراک گذاشته شده، شامل //:(s)http",
+ "server_external_domain_settings_description": "دامنه مورد استفاده برای پیوندهای خارجی",
"server_public_users": "کاربران عمومی",
"server_public_users_description": "تمامی کاربران (اسم و ایمیل) هنگام اضافه کردن یک کاربر به یک آلبوم مشترک لیست می شوند. وقتی غیر فعال باشد، لیست کاربران فقط برای ادمین قابل مشاهده است.",
"server_settings": "تنظیمات سرور",
"server_settings_description": "مدیریت تنظیمات سرور",
+ "server_stats_page_description": "صفحه آمار سرور مدیر",
"server_welcome_message": "پیام خوش آمد گویی",
"server_welcome_message_description": "پیامی که در صفحه ورود به سیستم نمایش داده می شود.",
"settings_page_description": "صفحه تنظیمات ادمین",
@@ -271,13 +356,15 @@
"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_info": "الگوی ذخیرهسازی، تمام پسوندها را به حروف کوچک تبدیل میکند. تغییرات الگو تنها بر روی فایلهای جدید اعمال خواهد شد. برای اعمال الگو بر روی فایلهای آپلودشده قبلی، {job} را اجرا کنید.",
"storage_template_migration_job": "وظیفه مهاجرت الگوی ذخیرهسازی",
"storage_template_more_details": "برای جزئیات بیشتر درباره این ویژگی، به قالب ذخیرهسازی و مفاهیم آن مراجعه کنید",
+ "storage_template_onboarding_description_v2": "با فعالسازی این ویژگی، فایلها بهصورت خودکار بر اساس الگوی تعریفشده توسط کاربر سازماندهی میشوند. برای اطلاعات بیشتر، لطفاً مستندات را مشاهده کنید.",
"storage_template_path_length": "حداکثر طول مسیر تقریبی: {length, number}/{limit, number}",
"storage_template_settings": "قالب ذخیرهسازی",
"storage_template_settings_description": "مدیریت ساختار پوشه و نام فایل دارایی بارگذاری شده",
@@ -286,6 +373,7 @@
"tag_cleanup_job": "پاک سازی تگ",
"template_email_available_tags": "شما میتوانید از متغیر های روبرو در قالب خود استفاده کنید: {tags}",
"template_email_if_empty": "اگر قالب خالی باشد، ایمیل پیشفرض استفاده خواهد شد.",
+ "template_email_invite_album": "الگوی آلبوم دعوتنامه",
"template_email_preview": "پیش نمایش",
"template_email_settings": "قالب های ایمیل",
"template_email_update_album": "قالب بروزرسانی آلبوم",
@@ -312,17 +400,20 @@
"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 نادیده گرفته میشود زیرا از 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 سریع تر اما ممکن است در bitrate یکسان کیفیت را کاهش دهد",
"transcoding_hardware_decoding": "رمزگشایی سخت افزاری",
+ "transcoding_hardware_decoding_setting_description": "فعالسازی شتابدهی سرتاسری به جای شتابدهی تنها در مرحله کدگذاری. ممکن است روی همه ویدیوها کار نکند.",
"transcoding_max_b_frames": "بیشترین B-frames",
"transcoding_max_b_frames_description": "مقادیر بالاتر کارایی فشرده سازی را بهبود میبخشند، اما کدگذاری را کند میکنند. ممکن است با شتاب دهی سختافزاری در دستگاههای قدیمی سازگار نباشد. مقدار( 0 ) B-frames را غیرفعال میکند، در حالی که مقدار ( 1 ) این مقدار را به صورت خودکار تنظیم میکند.",
"transcoding_max_bitrate": "بیشترین بیت ریت",
@@ -330,10 +421,20 @@
"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 node مورد استفاده برای تبدیل فرمت سختافزاری را تنظیم میکند.",
"transcoding_preset_preset": "پیشتنظیم (preset-)",
"transcoding_preset_preset_description": "سرعت فشردهسازی. پیشتنظیمهای کندتر فایلهای کوچکتری تولید میکنند و کیفیت را هنگام هدفگذاری بر روی یک بیتریت خاص افزایش میدهند. VP9 سرعتهای بالاتر از 'faster' را نادیده میگیرد.",
+ "transcoding_realtime": "تبدیل فرمت بلادرنگ [آزمایشی]",
+ "transcoding_realtime_description": "امکان تبدیل فرمت بهصورت بلادرنگ در حین پخش ویدیو را فراهم میکند. این قابلیت تغییر کیفیت را ممکن میسازد، اما بسته به توان سرور، ممکن است باعث افزایش تأخیر در پخش و گیر کردن تصویر شود.",
+ "transcoding_realtime_enabled": "فعالسازی تبدیل فرمت بلادرنگ",
+ "transcoding_realtime_enabled_description": "در صورت غیرفعال بودن، سرور از شروع نشستهای جدید تبدیل فرمت بلادرنگ خودداری خواهد کرد.",
+ "transcoding_realtime_resolutions": "وضوحهای تصویری",
+ "transcoding_realtime_resolutions_description": "وضوحهای ارائهشده برای تبدیل فرمت بلادرنگ. وضوحهای بالاتر ممکن است در صورت ناتوانی سرور در تبدیل سریع آنها، باعث مشکلات پخش شوند.",
+ "transcoding_realtime_video_codecs": "کدکهای ویدیویی",
+ "transcoding_realtime_video_codecs_description": "کدکهای ویدیویی ارائهشده برای تبدیل فرمت بلادرنگ. کلاینتها در حین پخش، بهترین گزینهای را که پشتیبانی میکنند انتخاب خواهند کرد. AV1 کارآمدتر از HEVC و HEVC کارآمدتر از H.264 است. هنگام استفاده از شتابدهنده سختافزاری، تنها کدکهایی را انتخاب کنید که شتابدهنده توانایی رمزگذاری آنها را دارد. در حالت تبدیل نرمافزاری، توجه داشته باشید که سرعت H.264 بیشتر از AV1 و سرعت AV1 بیشتر از HEVC است.",
"transcoding_reference_frames": "فریمهای مرجع",
"transcoding_reference_frames_description": "تعداد فریمهایی که هنگام فشردهسازی یک فریم مشخص به آنها ارجاع داده میشود. مقادیر بالاتر کارایی فشردهسازی را بهبود میبخشند، اما کدگذاری را کندتر میکنند. مقدار 0 این مقدار را بهطور خودکار تنظیم میکند.",
"transcoding_required_description": "فقط ویدیوهایی که در فرمت پذیرفتهشده نیستند",
@@ -345,9 +446,10 @@
"transcoding_temporal_aq_description": "این مورد فقط برای NVENC اعمال می شود. Temporal Adaptive Quantization کیفیت صحنه های با جزئیات بالا، تحرک کم را افزایش می دهد. ممکن است با دستگاه های قدیمی تر سازگار نباشد.",
"transcoding_threads": "رشته ها ( موضوعات )",
"transcoding_threads_description": "مقادیر بالاتر منجر به رمزگذاری سریع تر می شود، اما فضای کمتری برای پردازش سایر وظایف سرور در حین فعالیت باقی می گذارد. این مقدار نباید بیشتر از تعداد هسته های CPU باشد. اگر روی 0 تنظیم شود، بیشترین استفاده را خواهد داشت.",
+ "transcoding_tone_mapping": "تبدیل رنگ و نور (Tone-mapping)",
"transcoding_tone_mapping_description": "تلاش برای حفظ ظاهر ویدیوهای HDR هنگام تبدیل به SDR. هر الگوریتم تعادل های متفاوتی را برای رنگ، جزئیات و روشنایی ایجاد می کند. Hable جزئیات را حفظ می کند، Mobius رنگ را حفظ می کند و Reinhard روشنایی را حفظ می کند.",
"transcoding_transcode_policy": "سیاست رمزگذاری",
- "transcoding_transcode_policy_description": "سیاست برای زمانی که ویدیویی باید مجددا تبدیل (رمزگذاری) شود. ویدیوهای HDR همیشه تبدیل (رمزگذاری) مجدد خواهند شد (مگر رمزگذاری مجدد غیرفعال باشد).",
+ "transcoding_transcode_policy_description": "سیاست زمان تبدیل فرمت ویدیو. ویدیوهای HDR و ویدیوهایی با فرمت پیکسلی غیر از YUV 4:2:0 همیشه تبدیل فرمت میشوند (مگر اینکه تبدیل فرمت غیرفعال باشد).",
"transcoding_two_pass_encoding": "تبدیل (رمزگذاری) دو مرحله ای",
"transcoding_two_pass_encoding_setting_description": "تبدیل (رمزگذاری) ویدیو در دو مرحله برای تولید ویدیوهای رمزگذاری شده بهتر. وقتی حداکثر نرخ بیت فعال باشد (برای کار با H.264 و HEVC لازم است)، این حالت از یک محدوده نرخ بیت بر اساس حداکثر نرخ بیت استفاده می کند و CRF را نادیده می گیرد. برای VP9، اگر حداکثر نرخ بیت غیرفعال باشد، می توان از CRF استفاده کرد.",
"transcoding_video_codec": "Codec ویدیویی",
@@ -364,7 +466,7 @@
"user_delete_delay": "{user}'s حساب کاربری و دارایی ها(عکس و فیلم) برای حذف دائمی در {delay, plural, one {# روز} other {# روز}} برنامه ریزی خواهند شد.",
"user_delete_delay_settings": "تأخیر در حذف",
"user_delete_delay_settings_description": "تعداد روزهایی که پس از حذف، حساب کاربری و دارایی های(عکس و فیلم) کاربر به طور دائمی حذف می شوند. کار حذف کاربر در نیمه شب اجرا می شود تا کاربرانی که آماده حذف هستند را بررسی کند. تغییرات در این تنظیم در اجرای بعدی ارزیابی خواهند شد.",
- "user_delete_immediately": "{user}'s حساب کاربری و دارایی ها (عکس و فیلم) فوراً برای حذف دائمی در صف قرار خواهند گرفت.",
+ "user_delete_immediately": "{user} حساب کاربری و فایلهایش بلافاصله برای حذف دائمی در صف قرار خواهند گرفت.",
"user_delete_immediately_checkbox": "کاربر و دارایی ها (عکس و فیلم) را برای حذف فوری در صف قرار بده",
"user_details": "جزئیات کاربر",
"user_management": "مدیریت کاربر",
@@ -376,6 +478,8 @@
"user_settings_description": "مدیریت تنظیمات کاربر",
"user_successfully_removed": "کاربر {email} با موفقیت حذف شد.",
"users_page_description": "صفحه مدیریت کاربران",
+ "version_check_channel": "کانال انتشار",
+ "version_check_channel_description": "کانال انتشاری را انتخاب کنید که میخواهید اعلانهای نسخه جدید را از آن دریافت نمایید",
"version_check_enabled_description": "فعالسازی بررسی نسخه",
"version_check_implications": "ویژگی بررسی نسخه به ارتباط دوره ای با {server} متکی است",
"version_check_settings": "بررسی نسخه",
@@ -387,25 +491,112 @@
"admin_password": "رمز عبور مدیر",
"administration": "مدیریت",
"advanced": "پیشرفته",
+ "advanced_settings_clear_image_cache": "پاکسازی حافظه پنهان تصاویر",
+ "advanced_settings_clear_image_cache_error": "خطا در پاکسازی حافظه پنهان تصاویر",
+ "advanced_settings_clear_image_cache_success": "پاکسازی موفقیتآمیز {size}",
+ "advanced_settings_log_level_title": "سطح گزارشدهی: {level}",
+ "advanced_settings_prefer_remote_subtitle": "برخی دستگاهها در بارگذاری تصاویر بندانگشتی از منابع محلی بسیار کند عمل میکنند. این تنظیم را فعال کنید تا به جای آن، تصاویر از راه دور بارگذاری شوند.",
+ "advanced_settings_prefer_remote_title": "ترجیح تصاویر راه دور",
+ "advanced_settings_proxy_headers_subtitle": "هدرهای پراکسی که Immich باید با هر درخواست شبکه ارسال کند را تعریف کنید",
"advanced_settings_proxy_headers_title": "هدر های پروکسی سفارشی [آزمایشی]",
+ "advanced_settings_readonly_mode_subtitle": "حالت فقط خواندنی را فعال میکند که در آن تصاویر تنها قابل مشاهده هستند و عملیاتی مانند انتخاب چندتایی، اشتراکگذاری، پخش روی صفحه دیگر و حذف غیرفعال میشوند. فعال/غیرفعال کردن این حالت از طریق آواتار کاربر در صفحه اصلی انجام میشود",
+ "advanced_settings_readonly_mode_title": "حالت فقط خواندنی",
+ "advanced_settings_sync_remote_deletions_subtitle": "بهطور خودکار یک فایل را در این دستگاه حذف یا بازیابی کن، هنگامی که این عمل در نسخه وب انجام شود",
+ "advanced_settings_sync_remote_deletions_title": "همگامسازی حذفهای راه دور [آزمایشی]",
+ "advanced_settings_tile_subtitle": "تنظیمات پیشرفته کاربر",
+ "advanced_settings_troubleshooting_subtitle": "فعالسازی ویژگیهای اضافی برای عیبیابی",
+ "advanced_settings_troubleshooting_title": "عیبیابی",
+ "age_months": "سن {months, plural, one {# ماه} other {# ماه}}",
+ "age_year_months": "سن ۱ سال، {months, plural, one {# ماه} other {# ماه}}",
+ "age_years": "{years, plural, other {سن #}}",
+ "album": "آلبوم",
"album_added": "آلبوم اضافه شد",
+ "album_added_notification_setting_description": "دریافت اعلان ایمیل هنگام افزوده شدن به یک آلبوم مشترک",
"album_cover_updated": "جلد آلبوم بهروزرسانی شد",
+ "album_delete_confirmation": "آیا از حذف آلبوم {album} اطمینان دارید؟",
+ "album_delete_confirmation_description": "اگر این آلبوم به اشتراک گذاشته شده باشد، سایر کاربران دیگر نمیتوانند به آن دسترسی داشته باشند.",
+ "album_deleted": "آلبوم حذف شد",
"album_info_updated": "اطلاعات آلبوم بهروزرسانی شد",
"album_name": "نام آلبوم",
"album_options": "گزینههای آلبوم",
+ "album_remove_user": "حذف کاربر؟",
+ "album_remove_user_confirmation": "آیا از حذف {user} اطمینان دارید؟",
+ "album_search_not_found": "هیچ آلبومی مطابق با جستجوی شما یافت نشد",
+ "album_share_no_users": "به نظر میرسد این آلبوم را با همه کاربران به اشتراک گذاشتهاید یا کاربری برای به اشتراکگذاری ندارید.",
+ "album_summary": "خلاصه آلبوم",
"album_updated": "آلبوم بهروزرسانی شد",
+ "album_updated_setting_description": "دریافت اعلان ایمیل هنگام افزودن فایلهای جدید به آلبوم مشترک",
+ "album_upload_assets": "بارگذاری فایلها از رایانه و افزودن به آلبوم",
+ "album_viewer_appbar_share_err_delete": "حذف آلبوم ناموفق بود",
+ "album_viewer_page_share_add_users": "افزودن کاربران",
+ "album_with_link_access": "اجازه دهید هر کسی با داشتن پیوند، تصاویر و افراد موجود در این آلبوم را مشاهده کند.",
"albums": "آلبومها",
+ "albums_count": "{count, plural, one {{count, number} آلبوم} other {{count, number} آلبوم}}",
+ "albums_default_sort_order": "ترتیب پیشفرض مرتبسازی آلبوم",
+ "albums_default_sort_order_description": "ترتیب اولیه مرتبسازی فایلها هنگام ایجاد آلبومهای جدید.",
+ "albums_feature_description": "مجموعههایی از فایلها که میتوانند با سایر کاربران به اشتراک گذاشته شوند.",
+ "albums_on_device_count": "آلبومهای موجود در دستگاه ({count})",
"all": "همه",
+ "all_albums": "همه آلبومها",
"all_people": "همه افراد",
+ "all_photos": "همه تصاویر",
+ "all_videos": "همه ویدیوها",
"allow_dark_mode": "اجازه دادن به حالت تاریک",
+ "allow_public_user_to_download": "اجازه دانلود به کاربر عمومی",
+ "allow_public_user_to_upload": "اجازه بارگذاری به کاربر عمومی",
+ "allowed": "مجاز",
+ "alt_text_qr_code": "تصویر کد QR",
+ "always_keep": "همیشه نگهداری شود",
+ "always_keep_photos_hint": "«آزادسازی فضای ذخیرهسازی» تمام تصاویر را روی این دستگاه نگه میدارد.",
+ "always_keep_videos_hint": "«آزادسازی فضای ذخیرهسازی» تمام ویدیوها را روی این دستگاه نگه میدارد.",
"api_key": "کلید API",
+ "api_key_description": "این مقدار تنها یک بار نمایش داده میشود. لطفاً پیش از بستن پنجره، از کپی کردن آن اطمینان حاصل نمایید.",
+ "api_key_empty": "نام کلید API شما نباید خالی باشد",
"api_keys": "کلیدهای API",
+ "app_architecture_variant": "نسخه (معماری)",
+ "app_bar_signout_dialog_content": "آیا از خروج اطمینان دارید؟",
+ "app_bar_signout_dialog_title": "خروج",
+ "app_download_links": "پیوندهای دانلود برنامه",
"app_settings": "تنظیمات برنامه",
+ "app_stores": "فروشگاههای برنامه",
+ "app_update_available": "بهروزرسانی برنامه در دسترس است",
"appears_in": "ظاهر میشود در",
+ "apply_count": "اعمال ({count, number})",
"archive": "بایگانی",
+ "archive_action_prompt": "{count} مورد به آرشیو اضافه شد",
+ "archive_or_unarchive_photo": "بایگانی کردن یا خارج کردن تصویر از بایگانی",
"archive_size": "اندازه بایگانی",
+ "archive_size_description": "پیکربندی حجم آرشیو برای دانلودها (بر حسب گیگابایت)",
+ "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_created": "فایل ایجاد شد",
+ "asset_day_count": "{date}: {count, plural, one {# فایل} other {# فایل}}",
+ "asset_description_updated": "توضیحات فایل بهروزرسانی شد",
+ "asset_hashing": "در حال هشسازی…",
+ "asset_list_group_by_sub_title": "گروهبندی بر اساس",
+ "asset_list_layout_settings_group_by": "گروهبندی فایلها بر اساس",
+ "asset_list_layout_settings_group_by_month_day": "ماه + روز",
+ "asset_list_layout_sub_title": "طرحبندی",
+ "asset_list_settings_subtitle": "تنظیمات طرحبندی شبکه تصاویر",
+ "asset_list_settings_title": "شبکه تصاویر",
+ "asset_not_found_on_device_android": "فایل در دستگاه یافت نشد",
+ "asset_not_found_on_device_ios": "فایل در دستگاه یافت نشد. اگر از iCloud استفاده میکنید، ممکن است فایل به دلیل ذخیرهسازی نادرست در iCloud غیرقابل دسترسی باشد",
+ "asset_not_found_on_icloud": "فایل در iCloud یافت نشد. ممکن است فایل به دلیل ذخیرهسازی نادرست در iCloud غیرقابل دسترسی باشد",
"asset_offline": "محتوا آفلاین",
+ "asset_offline_description": "این فایل خارجی دیگر در دیسک یافت نمیشود. لطفاً برای دریافت کمک با مدیر Immich خود تماس بگیرید.",
+ "asset_skipped": "رد شد",
+ "asset_skipped_in_trash": "در سطل زباله",
+ "asset_troubleshoot": "عیبیابی فایل",
+ "asset_uploaded": "بارگذاری شد",
+ "asset_uploading": "در حال بارگذاری…",
+ "asset_viewer_settings_subtitle": "مدیریت تنظیمات نمایشگر گالری شما",
+ "asset_viewer_settings_title": "نمایشگر فایل",
"assets": "محتواها",
+ "assets_added_to_album_count": "{count, plural, one {# فایل} other {# فایل}} به آلبوم اضافه شد",
"authorized_devices": "دستگاههای مجاز",
"back": "بازگشت",
"backward": "عقب",
@@ -420,7 +611,7 @@
"change_date": "تغییر تاریخ",
"change_location": "تغییر مکان",
"change_name": "تغییر نام",
- "change_name_successfully": "نام با موفقیت تغییر یافت",
+ "change_name_successfully": "تغییر نام با موفقیت انجام شد",
"change_password": "تغییر رمز عبور",
"change_password_form_password_mismatch": "رمز عبور ها مطابقت ندارند",
"change_password_form_reenter_new_password": "تکرار رمز عبور جدید",
@@ -573,7 +764,7 @@
"loading_search_results_failed": "بارگذاری نتایج جستجو ناموفق بود",
"log_out": "خروج از سیستم",
"log_out_all_devices": "خروج از همه دستگاهها",
- "login_has_been_disabled": "ورود غیرفعال شده است.",
+ "login_has_been_disabled": "ورود غیرفعال شده است",
"look": "نگاه کردن",
"loop_videos": "پخش مداوم ویدئوها",
"main_branch_warning": "شما در حال استفاده از نسخه توسعهدهندگان هستید که آزمایشی و ناپایدار است. اکیداً توصیه میکنیم از نسخه رسمی استفاده کنید!",
@@ -629,7 +820,7 @@
"next_memory": "خاطره بعدی",
"no": "خیر",
"no_duplicates_found": "هیچ تکراری یافت نشد.",
- "no_exif_info_available": "اطلاعات EXIF موجود نیست",
+ "no_exif_info_available": "اطلاعات exif موجود نیست",
"no_name": "بدون نام",
"no_places": "مکانی یافت نشد",
"no_results": "نتیجهای یافت نشد",
@@ -638,6 +829,7 @@
"notification_toggle_setting_description": "اعلانهای ایمیلی را فعال کنید",
"notifications": "اعلانها",
"notifications_setting_description": "مدیریت اعلانها",
+ "oauth": "احراز هویت OAuth",
"offline": "آفلاین",
"ok": "تأیید",
"oldest_first": "قدیمیترین ابتدا",
@@ -686,7 +878,7 @@
"preview": "پیشنمایش",
"previous": "قبلی",
"previous_memory": "خاطره قبلی",
- "previous_or_next_photo": "عکس قبلی یا بعدی",
+ "previous_or_next_photo": "عکس بعدی/قبلی",
"primary": "اصلی",
"profile_picture_set": "تصویر پروفایل تنظیم شد.",
"public_share": "اشتراک عمومی",
@@ -823,5 +1015,6 @@
"welcome": "خوش آمدید",
"year": "سال",
"yes": "بله",
+ "zero_to_clear_rating": "برای پاک کردن امتیاز فایل، کلید ۰ را فشار دهید",
"zoom_image": "بزرگنمایی تصویر"
}
diff --git a/i18n/fi.json b/i18n/fi.json
index 95fd8fc0aa..6fcd8e5e06 100644
--- a/i18n/fi.json
+++ b/i18n/fi.json
@@ -767,7 +767,6 @@
"custom_date": "Mukautettu päivä",
"custom_locale": "Mukautettu alueasetus",
"custom_locale_description": "Muotoile päivämäärät, kellonajat ja numerot valitun kielen ja alueen mukaan",
- "custom_url": "Mukautettu URL",
"cutoff_date_description": "Säilytä kuvat viimeisimmältä…",
"cutoff_day": "{count, plural, one {päivä} other {päivää}}",
"cutoff_year": "{count, plural, one {vuosi} other {vuotta}}",
diff --git a/i18n/fr.json b/i18n/fr.json
index e902cbf95e..4d2be831cd 100644
--- a/i18n/fr.json
+++ b/i18n/fr.json
@@ -5,7 +5,7 @@
"acknowledge": "Compris",
"action": "Action",
"action_common_update": "Mettre à jour",
- "action_description": "Un ensemble d'actions applicables sur des médias filtrés",
+ "action_description": "Un ensemble d'actions à exécuter sur les médias filtrés",
"actions": "Actions",
"active": "En cours",
"active_count": "En cours : {count}",
@@ -13,11 +13,11 @@
"add": "Ajouter",
"add_a_description": "Ajouter une description",
"add_a_location": "Ajouter une localisation",
- "add_a_name": "Ajouter un nom",
+ "add_a_name": "Ajouter un prénom",
"add_a_title": "Ajouter un titre",
"add_action": "Ajouter une action",
"add_assets": "Ajouter des médias",
- "add_birthday": "Ajouter un anniversaire",
+ "add_birthday": "Ajouter la date d'anniversaire",
"add_endpoint": "Ajouter une adresse",
"add_exclusion_pattern": "Ajouter un schéma d'exclusion",
"add_location": "Ajouter une localisation",
@@ -33,7 +33,7 @@
"add_to_albums": "Ajouter aux albums",
"add_to_albums_count": "Ajouter aux albums ({count})",
"add_to_bottom_bar": "Ajouter à",
- "add_upload_to_stack": "Ajouter les éléments téléversés à la pile",
+ "add_upload_to_stack": "Ajouter les éléments envoyés à la pile",
"add_url": "Ajouter l'URL",
"added_to_archive": "Ajouté à l'archive",
"added_to_favorites": "Ajouté aux favoris",
@@ -53,7 +53,7 @@
"backup_onboarding_1_description": "copie hors site dans le cloud ou sur un site distant.",
"backup_onboarding_2_description": "copies locales sur différents appareils. Cela inclut les fichiers principaux ainsi qu'une sauvegarde locale de ces fichiers.",
"backup_onboarding_3_description": "copies total de vos données, incluant les fichiers originaux. Cela inclut 1 copie hors site ainsi que 2 copies locales.",
- "backup_onboarding_description": "Une stratégie de sauvegarde 3-2-1 est recommandée pour protéger vos données. Vous devriez conserver des copies de vos photos/vidéos téléversés ainsi que de la base de données d'Immich pour une solution de sauvegarde cohérente.",
+ "backup_onboarding_description": "Une stratégie de sauvegarde 3-2-1 est recommandée pour protéger vos données. Vous devriez conserver des copies de vos photos/vidéos envoyées ainsi que de la base de données d'Immich pour une solution de sauvegarde cohérente.",
"backup_onboarding_footer": "Pour plus d'information sur la sauvegarde d'Immich, merci de vous référer à la documentation.",
"backup_onboarding_parts_title": "Une sauvegarde 3-2-1 inclut :",
"backup_onboarding_title": "Sauvegardes",
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Qualité des miniatures : de 1 à 100. Une valeur élevée produit de meilleurs résultats, mais elle produit des fichiers plus volumineux et peut réduire la réactivité de l'application.",
"image_thumbnail_title": "Paramètres des miniatures",
"import_config_from_json_description": "Importer la configuration système en envoyant un fichier de configuration JSON",
+ "integrity_checks_checksum_files": "Vérifier l'intégrité des fichiers",
+ "integrity_checks_checksum_files_description": "Configurer le test d'intégrité",
+ "integrity_checks_checksum_files_enable_description": "Active le test d'intégrité des fichiers (checksum)",
+ "integrity_checks_checksum_files_percentage_limit": "Limite de pourcentage",
+ "integrity_checks_checksum_files_percentage_limit_description": "Configurez le pourcentage maximal du test d'intégrité qui doit être effectué à chaque interval, entre 0.01 et 1.",
+ "integrity_checks_checksum_files_time_limit": "Limite de temps",
+ "integrity_checks_checksum_files_time_limit_description": "Configurez la durée maximale en millisecondes entre deux vérifications.",
+ "integrity_checks_missing_files": "Fichiers manquants",
+ "integrity_checks_missing_files_description": "Configurez la fréquence et activez/désactivez la vérification des fichiers manquants",
+ "integrity_checks_missing_files_enable_description": "Activez la vérification des fichiers manquants",
+ "integrity_checks_settings": "Tests d'intégrité",
+ "integrity_checks_settings_description": "Gérez l'interval des tests d'intégrité",
+ "integrity_checks_untracked_files": "Fichiers non suivis",
+ "integrity_checks_untracked_files_description": "Configurez la fréquence et activez/désactivez la vérification des fichiers non suivis",
+ "integrity_checks_untracked_files_enable_description": "Activez la vérification des fichiers non suivis",
"job_concurrency": "{job} : nombre de tâches simultanées",
"job_created": "Tâche créée",
"job_not_concurrency_safe": "Cette tâche ne peut pas être exécutée en multitâche de façon sûre.",
@@ -171,7 +186,7 @@
"machine_learning_ocr_max_resolution": "Résolution maximale",
"machine_learning_ocr_max_resolution_description": "Les prévisualisations au-dessus de cette résolution seront retaillées en conservant leur ratio. Des valeurs plus grandes sont plus précises, mais sont plus lentes et utilisent plus de mémoire.",
"machine_learning_ocr_min_detection_score": "Score minimum de détection",
- "machine_learning_ocr_min_detection_score_description": "Score de confiance minimum pour la détection du textew entre 0 et 1. Des valeurs faibles permettront de reconnaître davantage de texte mais peuvent entraîner des faux positifs.",
+ "machine_learning_ocr_min_detection_score_description": "Score de confiance minimum pour la détection du texte, entre 0 et 1. Des valeurs faibles permettront de reconnaître davantage de texte mais peuvent entraîner des faux positifs.",
"machine_learning_ocr_min_recognition_score": "Score de reconnaissance minimum",
"machine_learning_ocr_min_score_recognition_description": "Score de confiance minimum pour la reconnaissance du texte, entre 0 et 1. Des valeurs faible permettront de reconnaître davantage de texte, mais peuvent entraîner des faux positifs.",
"machine_learning_ocr_model": "Modèle de Reconnaissance Optique de Caractères OCR",
@@ -214,8 +229,8 @@
"maintenance_start_error": "Échec du démarrage du mode maintenance.",
"maintenance_upload_backup": "Télécharger le fichier de sauvegarde de la base de données",
"maintenance_upload_backup_error": "Impossible de télécharger la sauvegarde, s'agit-il d'un fichier .sql/.sql.gz ?",
- "manage_concurrency": "Gérer du multitâche",
- "manage_concurrency_description": "Naviguer vers la pages des tâches pour gérer le multitâche",
+ "manage_concurrency": "Gestion du multitâche",
+ "manage_concurrency_description": "Naviguer vers la page des tâches pour gérer le multitâche",
"manage_log_settings": "Gérer les paramètres de journalisation",
"map_dark_style": "Thème sombre",
"map_enable_description": "Activer la carte",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Permet au transcodage d'être réalisé en temps réel durant la diffusion du flux de la vidéo. Active la bascule automatique entre résolutions, mais peut entraîner une latence importante de lecture et des microcoupures en fonction des capacités du serveur.",
"transcoding_realtime_enabled": "Activer la transcodification en temps réel",
"transcoding_realtime_enabled_description": "Si désactivé, le serveur refusera de démarrer de nouvelles sessions de transcodifications en temps réel.",
+ "transcoding_realtime_resolutions": "Résolutions",
+ "transcoding_realtime_resolutions_description": "Les résolutions proposées pour le transcodage en temps réel. Des résolutions supérieures peuvent causer des soucis pendant la lecture si le serveur ne peut pas les transcoder suffisamment rapidement.",
+ "transcoding_realtime_video_codecs": "Codecs vidéo",
+ "transcoding_realtime_video_codecs_description": "Les codecs vidéo proposés pour le transcodage en temps réel. Les clients choisissent la meilleure option qu'ils supportent durant la lecture. AV1 est plus efficace que HEVC, qui est plus efficace que H.264. En utilisant l'accélération matérielle, sélectionnez seulement les codecs que l'accélérateur peut encoder. En utilisant le transcodage logiciel, notez que H.264 est plus rapide que AV1, qui est plus rapide que HEVC.",
"transcoding_reference_frames": "Trames de référence",
"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é",
@@ -507,7 +526,7 @@
"album_summary": "Résumé de l'album",
"album_updated": "Album mis à jour",
"album_updated_setting_description": "Recevoir une notification par courriel lorsqu'un album partagé a de nouveaux médias",
- "album_upload_assets": "Téléchargez des fichiers depuis votre ordinateur et ajoutez-les à l'album",
+ "album_upload_assets": "Envoyez des fichiers depuis votre ordinateur et ajoutez-les à l'album",
"album_viewer_appbar_share_err_delete": "Échec de la suppression de l'album",
"album_viewer_page_share_add_users": "Ajouter des utilisateurs",
"album_with_link_access": "Permettre à n'importe qui possédant le lien de voir les photos et les personnes de cet album.",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Visualiseur d'éléments",
"assets": "Médias",
"assets_added_to_album_count": "{count, plural, one {# média ajouté} other {# médias ajoutés}} à l'album",
+ "assets_added_to_album_partial_count": "{successCount} {totalCount, plural, one {ajouté} other {ajoutés}} parmi {totalCount} {totalCount, plural, one {média} other {médias}} à l'album",
"assets_added_to_albums_count": "{assetTotal, plural, one {# média ajouté} other {# médias ajoutés}} à {albumTotal, plural, one {# album} other {# albums}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Le média ne peut pas être ajouté} other {Les médias ne peuvent pas être ajoutés}} à l'album",
"assets_cannot_be_added_to_albums": "{count, plural, one {Le média ne peut être ajouté} other {Les médias ne peuvent être ajoutés}} à aucun des albums",
@@ -794,7 +814,6 @@
"custom_date": "Date personnalisée",
"custom_locale": "Paramètres régionaux personnalisés",
"custom_locale_description": "Formater les dates, heures et nombres en fonction de la langue sélectionnée et de la région",
- "custom_url": "URL personnalisée",
"cutoff_date_description": "Conservez les photos depuis les derniers…",
"cutoff_day": "{count, plural, one {jour} other {jours}}",
"cutoff_year": "{count, plural, one {année} other {années}}",
@@ -1461,6 +1480,7 @@
"never": "Jamais",
"new_album": "Nouvel Album",
"new_api_key": "Nouvelle clé API",
+ "new_feature": "Nouvelle fonctionnalité",
"new_password": "Nouveau mot de passe",
"new_person": "Nouvelle personne",
"new_pin_code": "Nouveau code PIN",
@@ -1504,6 +1524,7 @@
"not_available": "N/A",
"not_in_any_album": "Dans aucun album",
"not_selected": "Non sélectionné",
+ "not_set": "Non défini",
"notes": "Notes",
"nothing_here_yet": "Rien pour le moment",
"notification_backup_reliability": "Activer les notifications pour améliorer la fiabilité de la sauvegarde en arrière-plan",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Configuration pour Obtainium",
"obtainium_configurator_instructions": "Utilisez Obtainium pour installer et mettre à jour l'application Android directement depuis la version d'Immich sur Github. Créez une clé d'API et sélectionnez une variante pour créer votre lien de configuration pour Obtainium",
"ocr": "Reconnaissance Optique de Caractères OCR",
+ "ocr_body": "Immich peut désormais lire le texte dans vos photos, pour que vous puissiez les chercher dans votre galerie par ce qu'elles disent.",
+ "ocr_title": "Cherchez le texte dans vos photos",
"official_immich_resources": "Ressources Immich officielles",
"offline": "Hors ligne",
"offset": "Décalage",
@@ -1539,6 +1562,8 @@
"open": "Ouvrir",
"open_calendar": "Ouvrir le calendrier",
"open_in_browser": "Ouvrir dans le navigateur",
+ "open_in_immich_body": "Définissez Immich comme vote application de gallerie par défaut sur Android pour ouvrir vos photos directement depuis les autres applications.",
+ "open_in_immich_title": "Ouvrir les photos dans Immich",
"open_in_map_view": "Montrer sur la carte",
"open_in_openstreetmap": "Ouvrir dans OpenStreetMap",
"open_the_search_filters": "Ouvrir les filtres de recherche",
@@ -1596,7 +1621,7 @@
"person": "Personne",
"person_age_months": "{months, plural, one {# mois} other {# mois}}",
"person_age_year_months": "1 an, {months, plural, one {# mois} other {# mois}}",
- "person_age_years": "{years, plural, other {# ans}}",
+ "person_age_years": "{years, plural, one {# an} other {# ans}}",
"person_birthdate": "Né(e) le {date}",
"person_hidden": "{name}{hidden, select, true { (caché)} other {}}",
"person_recognized": "Personne reconnue",
@@ -1697,7 +1722,10 @@
"recent": "Récent",
"recent_searches": "Recherches récentes",
"recently_added": "Récemment ajouté",
+ "recently_added_body": "Allez directement à ce que vous avez ajouté récemment dans une page dédiée.",
+ "recently_added_description": "Naviguez dans vos médias, triés par date d'envoi dans Immich",
"recently_added_page_title": "Récemment ajouté",
+ "recently_added_title": "Ajouté récemment",
"recently_taken": "Récemment photographié",
"refresh": "Actualiser",
"refresh_encoded_videos": "Actualiser les vidéos encodées",
@@ -1904,6 +1932,8 @@
"share_link": "Partager le lien",
"share_original": "Utiliser l'originale (grand)",
"share_preview": "Utiliser la miniature (petite)",
+ "share_quality_body": "Appuyez longtemps sur le bouton partager pour choisir la qualité d'image avant de partager.",
+ "share_quality_title": "Choisissez votre qualité d'envoi",
"shared": "Partagé",
"shared_album_activities_input_disable": "Les commentaires sont désactivés",
"shared_album_activity_remove_content": "Souhaitez-vous supprimer cette activité ?",
@@ -1918,7 +1948,9 @@
"shared_link_app_bar_title": "Liens partagés",
"shared_link_clipboard_copied_massage": "Copié dans le presse-papier",
"shared_link_create_error": "Erreur pendant la création du lien partagé",
- "shared_link_custom_url_description": "Accéder à ce lien partagé avec une URL personnalisée",
+ "shared_link_custom_url_description": "Accéder à ce lien partagé avec un nom d'URL personnalisée",
+ "shared_link_custom_url_title": "URL personnalisée",
+ "shared_link_custom_url_warning": "Attention: un nom d'URL personnalisé contenant un slash (/) pourrait ne pas se comporter comme prévu.",
"shared_link_edit_description_hint": "Saisir la description du partage",
"shared_link_edit_expire_after_option_day": "1 jour",
"shared_link_edit_expire_after_option_days": "{count} jours",
@@ -1985,16 +2017,19 @@
"sign_out": "Déconnexion",
"sign_up": "S'enregistrer",
"size": "Taille",
+ "skip": "Passer",
"skip_to_content": "Passer",
"skip_to_folders": "Passer vers les dossiers",
"skip_to_tags": "Passer vers les étiquettes",
"slideshow": "Diaporama",
+ "slideshow_body": "Relaxez-vous et regardez vos photos dans un diaporama en plein écran.",
"slideshow_metadata_overlay_mode": "Contenu en superposition",
"slideshow_metadata_overlay_mode_description_only": "Seulement la description",
"slideshow_metadata_overlay_mode_full": "Tout",
"slideshow_repeat": "Répéter le diaporama",
"slideshow_repeat_description": "Reboucler au début lorsque le diaporama se termine",
"slideshow_settings": "Paramètres du diaporama",
+ "slideshow_title": "Diaporama",
"smart_album": "Album intelligent",
"some_assets_already_have_a_location_warning": "Certains médias sélectionnés ont déjà une localisation",
"sort_albums_by": "Trier les albums par...",
@@ -2122,6 +2157,7 @@
"unknown": "Inconnu",
"unknown_country": "Pays non connu",
"unknown_date": "Date inconnue",
+ "unknown_schema": "Schéma inconnu",
"unknown_year": "Année inconnue",
"unlimited": "Illimité",
"unlink_motion_video": "Détacher la photo animée",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "Erreurs",
"upload_status_uploaded": "Envoyé",
"upload_success": "Envoi réussi. Rafraîchissez la page pour voir les nouveaux médias envoyés.",
+ "upload_to_album_body": "Pour les utilisateurs qui n'utilise pas la fonctionnalité de mise en ligne manuelle, vous pouvez maintenant ajouter vos photos locales directement dans un album, plus besoin de mettre en ligne puis de déplacer dans un album après.",
+ "upload_to_album_title": "Mettre en ligne directement dans un album",
"upload_to_immich": "Envoyer vers Immich ({count})",
"uploading": "Envoi",
"uploading_media": "Envoi du média",
@@ -2224,6 +2262,9 @@
"week": "Semaine",
"welcome": "Bienvenue",
"welcome_to_immich": "Bienvenue sur Immich",
+ "whats_new": "Quoi de neuf",
+ "whats_new_settings_subtitle": "Découvrez les nouveautés dans Immich",
+ "whats_new_version": "Version {version}",
"when": "Quand",
"width": "Largeur",
"wifi_name": "Nom du réseau wifi",
diff --git a/i18n/ga.json b/i18n/ga.json
index c8c4bd70c4..e64ba9b16f 100644
--- a/i18n/ga.json
+++ b/i18n/ga.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Cáilíocht mionsamhlacha ó 1-100. Is airde an caighdeán is fearr, ach cruthaíonn sé comhaid níos mó agus d'fhéadfadh sé freagrúlacht an aip a laghdú.",
"image_thumbnail_title": "Socruithe Mionsamhail",
"import_config_from_json_description": "Cumraíocht chórais a allmhairiú trí chomhad cumraíochta JSON a uaslódáil",
+ "integrity_checks_checksum_files": "Comhaid seiceála",
+ "integrity_checks_checksum_files_description": "Cumraigh an tseiceáil suime seiceála",
+ "integrity_checks_checksum_files_enable_description": "Cumasaigh an tseiceáil suime seiceála",
+ "integrity_checks_checksum_files_percentage_limit": "Teorainn céatadáin",
+ "integrity_checks_checksum_files_percentage_limit_description": "Cumraigh an céatadán uasta idir 0.01 agus 1 do cé mhéad ba chóir don tseiceáil suime seiceála a rith gach eatramh.",
+ "integrity_checks_checksum_files_time_limit": "Teorainn ama",
+ "integrity_checks_checksum_files_time_limit_description": "Cumraigh an fad uasta ar cheart don tseiceáil suime seiceála a bheith ar siúl le gach eatramh. (ms)",
+ "integrity_checks_missing_files": "Comhaid ar iarraidh",
+ "integrity_checks_missing_files_description": "Cumraigh an minicíocht agus cumasaigh nó díchumasaigh an seiceáil comhad atá ar iarraidh",
+ "integrity_checks_missing_files_enable_description": "Cumasaigh an seiceáil comhad atá ar iarraidh",
+ "integrity_checks_settings": "Seiceálacha ionracais",
+ "integrity_checks_settings_description": "Bainistigh eatraimh seiceálacha sláine",
+ "integrity_checks_untracked_files": "Comhaid neamhrianaithe",
+ "integrity_checks_untracked_files_description": "Cumraigh an minicíocht agus cumasaigh nó díchumasaigh an seiceáil comhad neamhrianaithe",
+ "integrity_checks_untracked_files_enable_description": "Cumasaigh an seiceáil comhad neamhrianaithe",
"job_concurrency": "comhthráthacht {job}",
"job_created": "Post cruthaithe",
"job_not_concurrency_safe": "Níl an post seo sábháilte le haghaidh comhuaineachta.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Ceadaíonn sé traschódú a dhéanamh i bhfíor-am agus an físeán á shruthú. Cumasaíonn sé athrú cáilíochta, ach d'fhéadfadh moill athsheinm níos airde agus stad a bheith mar thoradh air ag brath ar chumais an fhreastalaí.",
"transcoding_realtime_enabled": "Cumasaigh tras-chódú fíor-ama",
"transcoding_realtime_enabled_description": "Mura bhfuil sé cumasaithe, diúltóidh an freastalaí seisiúin thraschódaithe fíor-ama nua a thosú.",
+ "transcoding_realtime_resolutions": "Rúin",
+ "transcoding_realtime_resolutions_description": "Na taifigh a thairgtear le haghaidh traschódú fíor-ama. D’fhéadfadh fadhbanna athsheinm a bheith mar thoradh ar taifigh níos airde mura féidir leis an bhfreastalaí iad a thraschódú go tapa go leor.",
+ "transcoding_realtime_video_codecs": "Cóideic físe",
+ "transcoding_realtime_video_codecs_description": "Na cóideiceanna físe a thairgtear le haghaidh traschódú fíor-ama. Roghnóidh cliaint an rogha is fearr a dtacaíonn siad leis le linn athsheinm. Tá AV1 níos éifeachtaí ná HEVC, atá níos éifeachtaí ná H.264. Agus luasghéarú crua-earraí in úsáid agat, roghnaigh na cóideiceanna is féidir leis an luasaire a ionchódú amháin. Agus traschódú bogearraí in úsáid agat, tabhair faoi deara go bhfuil H.264 níos tapúla ná AV1, atá níos tapúla ná HEVC.",
"transcoding_reference_frames": "Frámaí tagartha",
"transcoding_reference_frames_description": "Líon na bhfrámaí le tagairt dóibh agus fráma áirithe á chomhbhrú. Feabhsaíonn luachanna níos airde éifeachtúlacht an chomhbhrúite, ach moillíonn siad an ionchódú. Socraíonn 0 an luach seo go huathoibríoch.",
"transcoding_required_description": "Físeáin amháin nach bhfuil i bhformáid inghlactha",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Amharcóir Sócmhainní",
"assets": "Sócmhainní",
"assets_added_to_album_count": "Cuireadh {count, plural, one {# asset} other {# assets}} leis an albam",
+ "assets_added_to_album_partial_count": "Cuireadh {successCount} as {totalCount} {totalCount, plural, one {asset} other {assets}} leis an albam",
"assets_added_to_albums_count": "Cuireadh {assetTotal, plural, one {# sócmhainn} other {# sócmhainní}} go {albumTotal, plural, one {# albam} other {# albaim}}",
"assets_cannot_be_added_to_album_count": "Ní féidir {count, plural, one {Sócmhainn} other {Sócmhainní}} a chur leis an albam",
"assets_cannot_be_added_to_albums": "Ní féidir {count, plural, one {Asset} other {Assets}} a chur le haon cheann de na halbaim",
@@ -794,7 +814,6 @@
"custom_date": "Dáta saincheaptha",
"custom_locale": "Logán saincheaptha",
"custom_locale_description": "Formáidigh dátaí, amanna agus uimhreacha bunaithe ar an teanga agus an réigiún roghnaithe",
- "custom_url": "URL Saincheaptha",
"cutoff_date_description": "Coinnigh grianghraif ón uair dheireanach…",
"cutoff_day": "{count, plural, one {lá} other {laethanta}}",
"cutoff_year": "{count, plural, one {bliain} other {blianta}}",
@@ -1303,9 +1322,9 @@
"login_form_failed_login": "Earráid ag logáil isteach, seiceáil URL an fhreastalaí, an ríomhphost agus an focal faire",
"login_form_handshake_exception": "Bhí Eisceacht Lámh-Chroith leis an bhfreastalaí. Cumasaigh tacaíocht do theastas féinshínithe sna socruithe má tá teastas féinshínithe in úsáid agat.",
"login_form_password_hint": "pasfhocal",
- "login_form_server_empty": "Cuir isteach URL freastalaí.",
- "login_form_server_error": "Níorbh fhéidir ceangal leis an bhfreastalaí.",
- "login_has_been_disabled": "Tá logáil isteach díchumasaithe.",
+ "login_form_server_empty": "Cuir isteach URL freastalaí",
+ "login_form_server_error": "Níorbh fhéidir ceangal leis an bhfreastalaí",
+ "login_has_been_disabled": "Tá logáil isteach díchumasaithe",
"login_password_changed_error": "Tharla earráid agus do phasfhocal á nuashonrú",
"login_password_changed_success": "Nuashonraíodh an focal faire go rathúil",
"logout_all_device_confirmation": "An bhfuil tú cinnte gur mian leat logáil amach as gach gléas?",
@@ -1356,6 +1375,7 @@
"map_location_picker_page_use_location": "Úsáid an suíomh seo",
"map_location_service_disabled_content": "Ní mór seirbhís suímh a chumasú chun sócmhainní ó do shuíomh reatha a thaispeáint. Ar mhaith leat é a chumasú anois?",
"map_location_service_disabled_title": "Seirbhís Suímh díchumasaithe",
+ "map_marker_for_image": "Marcóir léarscáile don íomhá a tógadh i {city}, {country}",
"map_marker_with_image": "Marcóir léarscáile le híomhá",
"map_no_location_permission_content": "Tá cead suímh ag teastáil chun sócmhainní a thaispeáint ó do shuíomh reatha. Ar mhaith leat é a cheadú anois?",
"map_no_location_permission_title": "Cead Suímh diúltaithe",
@@ -1460,6 +1480,7 @@
"never": "Choíche",
"new_album": "Albam Nua",
"new_api_key": "Eochair API Nua",
+ "new_feature": "Gné Nua",
"new_password": "Pasfhocal nua",
"new_person": "Duine nua",
"new_pin_code": "Cód PIN nua",
@@ -1503,9 +1524,13 @@
"not_available": "N/B",
"not_in_any_album": "Ní in aon albam",
"not_selected": "Níor roghnaíodh",
+ "not_set": "Gan socrú",
"notes": "Nótaí",
"nothing_here_yet": "Níl aon rud anseo fós",
"notification_backup_reliability": "Cumasaigh fógraí chun iontaofacht cúltaca cúlra a fheabhsú",
+ "notification_enabled_list_tile_content": "Úsáideann Immich fógraí le haghaidh cúltaca cúlra. Bainistigh iad i socruithe do ghléis.",
+ "notification_enabled_list_tile_open_button": "Oscail socruithe",
+ "notification_enabled_list_tile_title": "Fógraí cumasaithe",
"notification_permission_dialog_content": "Chun fógraí a chumasú, téigh go Socruithe agus roghnaigh ceadaigh.",
"notification_permission_list_tile_content": "Tabhair cead fógraí a chumasú.",
"notification_permission_list_tile_enable_button": "Cumasaigh Fógraí",
@@ -1517,6 +1542,8 @@
"obtainium_configurator": "Cumraitheoir Obtainium",
"obtainium_configurator_instructions": "Bain úsáid as Obtainium chun an aip Android a shuiteáil agus a nuashonrú go díreach ó eisiúint Immich ar GitHub. Cruthaigh eochair API agus roghnaigh malairt chun do nasc cumraíochta Obtainium a chruthú",
"ocr": "OCR",
+ "ocr_body": "Léann Immich an téacs taobh istigh de do ghrianghraif anois, ionas gur féidir leat iad a chuardach de réir a bhfuil iontu.",
+ "ocr_title": "Cuardaigh téacs i do ghrianghraif",
"official_immich_resources": "Acmhainní Oifigiúla Immich",
"offline": "As líne",
"offset": "Fritháireamh",
@@ -1535,6 +1562,8 @@
"open": "Oscail",
"open_calendar": "Oscail an féilire",
"open_in_browser": "Oscail sa bhrabhsálaí",
+ "open_in_immich_body": "Socraigh Immich mar do ghailearaí ar Android chun grianghraif a oscailt go díreach ó aipeanna eile.",
+ "open_in_immich_title": "Oscail grianghraif in Immich",
"open_in_map_view": "Oscail i radharc léarscáile",
"open_in_openstreetmap": "Oscail in OpenStreetMap",
"open_the_search_filters": "Oscail na scagairí cuardaigh",
@@ -1592,7 +1621,7 @@
"person": "Duine",
"person_age_months": "{months, plural, one {# mí} other {# míonna}} d'aois",
"person_age_year_months": "1 bhliain, {months, plural, one {# mí} other {# míonna}} d'aois",
- "person_age_years": "{years, plural, other {# blianta}} d'aois",
+ "person_age_years": "{years, plural, one {# bliain} other {# blianta}} d'aois",
"person_birthdate": "Rugadh ar {date}",
"person_hidden": "{name}{hidden, select, true { (i bhfolach)} other {}}",
"person_recognized": "Duine aitheanta",
@@ -1693,7 +1722,10 @@
"recent": "Le déanaí",
"recent_searches": "Cuardaigh le déanaí",
"recently_added": "Cuireadh leis le déanaí",
+ "recently_added_body": "Léim díreach chuig gach rud a chuir tú leis le déanaí ar leathanach tiomnaithe.",
+ "recently_added_description": "Brabhsáil do shócmhainní, sórtáilte de réir cathain a uaslódáladh iad chuig Immich",
"recently_added_page_title": "Curtha leis le Déanaí",
+ "recently_added_title": "Cuireadh leis le déanaí",
"recently_taken": "Tógtha le déanaí",
"refresh": "Athnuachan",
"refresh_encoded_videos": "Athnuaigh físeáin ionchódaithe",
@@ -1900,6 +1932,8 @@
"share_link": "Comhroinn an Nasc",
"share_original": "Úsáid an bunleagan (mór)",
"share_preview": "Úsáid mionsamhail (beag)",
+ "share_quality_body": "Brúigh agus coinnigh an cnaipe comhroinnte chun cáilíocht na híomhá a roghnú sula roinneann tú.",
+ "share_quality_title": "Roghnaigh do cháilíocht roinnte",
"shared": "Roinnte",
"shared_album_activities_input_disable": "Tá trácht díchumasaithe",
"shared_album_activity_remove_content": "Ar mhaith leat an ghníomhaíocht seo a scriosadh?",
@@ -1914,7 +1948,9 @@
"shared_link_app_bar_title": "Naisc Chomhroinnte",
"shared_link_clipboard_copied_massage": "Cóipeáilte chuig an ghearrthaisce",
"shared_link_create_error": "Earráid agus nasc comhroinnte á chruthú",
- "shared_link_custom_url_description": "Rochtain a fháil ar an nasc comhroinnte seo le URL saincheaptha",
+ "shared_link_custom_url_description": "Rochtain a fháil ar an nasc comhroinnte seo le hainm URL saincheaptha",
+ "shared_link_custom_url_title": "URL Saincheaptha",
+ "shared_link_custom_url_warning": "Rabhadh: b’fhéidir nach n-iompróidh ainm URL saincheaptha le slais ar aghaidh mar a bheifeá ag súil leis.",
"shared_link_edit_description_hint": "Cuir isteach cur síos an chomhroinnte",
"shared_link_edit_expire_after_option_day": "1 lá",
"shared_link_edit_expire_after_option_days": "{count} lá",
@@ -1981,16 +2017,19 @@
"sign_out": "Sínigh Amach",
"sign_up": "Cláraigh",
"size": "Méid",
+ "skip": "Léim",
"skip_to_content": "Léim go dtí an t-ábhar",
"skip_to_folders": "Léim go dtí na fillteáin",
"skip_to_tags": "Léim go dtí na clibeanna",
"slideshow": "Sleamhnán",
+ "slideshow_body": "Suigh siar agus féach ar do ghrianghraif ag seinm i sleamhnán lánscáileáin.",
"slideshow_metadata_overlay_mode": "Ábhar forleagan",
"slideshow_metadata_overlay_mode_description_only": "Cur síos amháin",
"slideshow_metadata_overlay_mode_full": "Lán",
"slideshow_repeat": "Athdhéan an sleamhnán",
"slideshow_repeat_description": "Lúb ar ais go dtí an tús nuair a chríochnaíonn an sleamhnán",
"slideshow_settings": "Socruithe sleamhnán",
+ "slideshow_title": "Sleamhnán",
"smart_album": "Albam cliste",
"some_assets_already_have_a_location_warning": "Tá suíomh ag cuid de na sócmhainní roghnaithe cheana féin",
"sort_albums_by": "Sórtáil albaim de réir...",
@@ -2118,6 +2157,7 @@
"unknown": "Anaithnid",
"unknown_country": "Tír Anaithnid",
"unknown_date": "Dáta anaithnid",
+ "unknown_schema": "Scéim anaithnid",
"unknown_year": "Bliain Anaithnid",
"unlimited": "Gan teorainn",
"unlink_motion_video": "Dínasc físeán gluaisne",
@@ -2153,6 +2193,8 @@
"upload_status_errors": "Earráidí",
"upload_status_uploaded": "Uaslódáilte",
"upload_success": "Uaslódáil rathúil, athnuachan an leathanach chun sócmhainní uaslódála nua a fheiceáil.",
+ "upload_to_album_body": "I gcás úsáideoirí nach n-úsáideann an ghné uaslódála láimhe, is féidir leat anois grianghraif áitiúla a chur go díreach le halbam agus tú á n-uaslódáil, níl aon ghá iad a uaslódáil agus a chur le halbam níos déanaí a thuilleadh.",
+ "upload_to_album_title": "Uaslódáil díreach chuig albam",
"upload_to_immich": "Uaslódáil chuig Immich ({count})",
"uploading": "Ag uaslódáil",
"uploading_media": "Ag uaslódáil meán",
@@ -2220,6 +2262,9 @@
"week": "Seachtain",
"welcome": "Fáilte",
"welcome_to_immich": "Fáilte go hImmich",
+ "whats_new": "Cad atá nua",
+ "whats_new_settings_subtitle": "Féach cad atá nua in Immich",
+ "whats_new_version": "Leagan {version}",
"when": "Cathain",
"width": "Leithead",
"wifi_name": "Ainm Wi-Fi",
diff --git a/i18n/gl.json b/i18n/gl.json
index 35c38f2801..9df2baa287 100644
--- a/i18n/gl.json
+++ b/i18n/gl.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Calidade da miniatura de 1 a 100. Canto máis alto, mellor, pero produce ficheiros máis grandes e pode reducir a capacidade de resposta da aplicación.",
"image_thumbnail_title": "Configuración da miniatura",
"import_config_from_json_description": "Importar a configuración do sistema subindo un arquivo de configuración JSON",
+ "integrity_checks_checksum_files": "Ficheiros de suma de verificación",
+ "integrity_checks_checksum_files_description": "Configurar a comprobación da suma de comprobación",
+ "integrity_checks_checksum_files_enable_description": "Activar a comprobación da suma de verificación",
+ "integrity_checks_checksum_files_percentage_limit": "Límite porcentual",
+ "integrity_checks_checksum_files_percentage_limit_description": "Configura a porcentaxe máxima entre 0,01 e 1 para a duración da comprobación da suma de verificación en cada intervalo.",
+ "integrity_checks_checksum_files_time_limit": "Límite de tempo",
+ "integrity_checks_checksum_files_time_limit_description": "Configura a duración máxima durante a que se debe executar a comprobación da suma de comprobación en cada intervalo. (ms)",
+ "integrity_checks_missing_files": "Arquivos que faltan",
+ "integrity_checks_missing_files_description": "Configura a frecuencia e activa ou desactiva a comprobación de arquivos que faltan",
+ "integrity_checks_missing_files_enable_description": "Activar a comprobación de arquivos que faltan",
+ "integrity_checks_settings": "Comprobacións de integridade",
+ "integrity_checks_settings_description": "Xestionar intervalos de comprobacións de integridade",
+ "integrity_checks_untracked_files": "Arquivos sen rastrexar",
+ "integrity_checks_untracked_files_description": "Configura a frecuencia e activa ou desactiva a comprobación de arquivos sen rastrexar",
+ "integrity_checks_untracked_files_enable_description": "Activar a comprobación de arquivos sen rastrexar",
"job_concurrency": "concorrencia de {job}",
"job_created": "Traballo creado",
"job_not_concurrency_safe": "Este traballo non é seguro para execución concorrente.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Permite que a transcodificación se realice en tempo real mentres se transmite o vídeo. Activar o cambio de calidade pode provocar unha maior latencia de reprodución e atraso dependendo das capacidades do servidor.",
"transcoding_realtime_enabled": "Activar transcodificación en tempo real",
"transcoding_realtime_enabled_description": "Se está desactivado, o servidor rexeitará iniciar novas sesións de transcodificación en tempo real.",
+ "transcoding_realtime_resolutions": "Resolucións",
+ "transcoding_realtime_resolutions_description": "As resolucións ofrecidas para a transcodificación en tempo real. As resolucións máis altas poden causar problemas de reprodución se o servidor non é capaz de transcodificalas con suficiente rapidez.",
+ "transcoding_realtime_video_codecs": "Códecs de vídeo",
+ "transcoding_realtime_video_codecs_description": "Os códecs de vídeo ofrecidos para a transcodificación en tempo real. Os clientes elixirán a mellor opción compatible durante a reprodución. O AV1 é máis eficiente ca o HEVC, e este, á súa vez, máis eficiente ca o H.264. Ao utilizar aceleración por hardware, selecciona só aqueles códecs que o acelerador poida codificar. Ao utilizar transcodificación por software, ten en conta que o H.264 é máis rápido ca o AV1, e este máis rápido ca o HEVC.",
"transcoding_reference_frames": "Fotogramas de referencia",
"transcoding_reference_frames_description": "O número de fotogramas aos que facer referencia ao comprimir un fotograma dado. Valores máis altos melloran a eficiencia da compresión, pero ralentizan a codificación. 0 establece este valor automaticamente.",
"transcoding_required_description": "Só vídeos que non estean nun formato aceptado",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Visor de Activos",
"assets": "Activos",
"assets_added_to_album_count": "Engadido {count, plural, one {# activo} other {# activos}} ao álbum",
+ "assets_added_to_album_partial_count": "Engadíronse {successCount} de {totalCount} {totalCount, plural, one {elemento} other {elementos}} ao álbum",
"assets_added_to_albums_count": "Engadido {assetTotal, plural, one {# ficheiro} other {# ficheiros}} a {albumTotal, plural, one {# álbum} other {# álbums}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {O ficheiro non se pode engadir} other {Os ficheiros non se poden engadir}} ao álbum",
"assets_cannot_be_added_to_albums": "{count, plural, one {O ficheiro non se pode engadir} other {Os ficheiros non se poden engadir}} a ningún dos álbums",
@@ -794,7 +814,6 @@
"custom_date": "Data personalizada",
"custom_locale": "Configuración Rexional Personalizada",
"custom_locale_description": "Formatar datas, tempos e números baseándose na lingua e a rexión",
- "custom_url": "URL personalizada",
"cutoff_date_description": "Manter fotos dos últimos…",
"cutoff_day": "{count, plural, one {day} other {days}}",
"cutoff_year": "{count, plural, one {day} other {days}}",
@@ -1303,9 +1322,9 @@
"login_form_failed_login": "Erro ao iniciar sesión, comprobe a URL do servidor, correo electrónico e contrasinal",
"login_form_handshake_exception": "Houbo unha Excepción de Handshake co servidor. Active o soporte para certificados autofirmados nas configuracións se está a usar un certificado autofirmado.",
"login_form_password_hint": "contrasinal",
- "login_form_server_empty": "Introduza unha URL do servidor.",
- "login_form_server_error": "Non se puido conectar co servidor.",
- "login_has_been_disabled": "O inicio de sesión foi desactivado.",
+ "login_form_server_empty": "Introduza unha URL do servidor",
+ "login_form_server_error": "Non se puido conectar co servidor",
+ "login_has_been_disabled": "O inicio de sesión foi desactivado",
"login_password_changed_error": "Houbo un erro ao actualizar o seu contrasinal",
"login_password_changed_success": "Contrasinal actualizado correctamente",
"logout_all_device_confirmation": "Está seguro de que quere pechar sesión en todos os dispositivos?",
@@ -1356,6 +1375,7 @@
"map_location_picker_page_use_location": "Usar esta localización",
"map_location_service_disabled_content": "O servizo de localización debe estar activado para mostrar activos da súa localización actual. Quere activalo agora?",
"map_location_service_disabled_title": "Servizo de localización deshabilitado",
+ "map_marker_for_image": "Marcador do mapa para a imaxe tirada en {city}, {country}",
"map_marker_with_image": "Marcador de mapa con imaxe",
"map_no_location_permission_content": "Necesítase permiso de localización para mostrar activos da súa localización actual. Quere permitilo agora?",
"map_no_location_permission_title": "Permiso de localización denegado",
@@ -1460,6 +1480,7 @@
"never": "Nunca",
"new_album": "Novo Álbum",
"new_api_key": "Nova Chave API",
+ "new_feature": "Nova función",
"new_password": "Novo contrasinal",
"new_person": "Nova persoa",
"new_pin_code": "Novo código PIN",
@@ -1506,6 +1527,9 @@
"notes": "Notas",
"nothing_here_yet": "Aínda nada por aquí",
"notification_backup_reliability": "Activa as notificacións para mellorar a fiabilidade da copia de seguridade en segundo plano",
+ "notification_enabled_list_tile_content": "Immich emprega notificacións para copias de seguridade en segundo plano. Xestióneas nos axustes do seu dispositivo.",
+ "notification_enabled_list_tile_open_button": "Abrir axustes",
+ "notification_enabled_list_tile_title": "Notificacións activadas",
"notification_permission_dialog_content": "Para activar as notificacións, vaia a Axustes e seleccione permitir.",
"notification_permission_list_tile_content": "Conceda permiso para activar as notificacións.",
"notification_permission_list_tile_enable_button": "Activar Notificacións",
@@ -1517,6 +1541,8 @@
"obtainium_configurator": "Configurador de Obtainium",
"obtainium_configurator_instructions": "Emprega Obtainium para instalar e actualizar a aplicación de Android directamente desde o lanzamento do GitHub de Immich. Crea unha chave API e selecciona unha variante para xerar o teu enlace de configuración de Obtainium",
"ocr": "OCR",
+ "ocr_body": "Agora Immich le o texto que hai dentro das túas fotos, para que poidas buscalas polo que din.",
+ "ocr_title": "Buscar texto nas túas fotos",
"official_immich_resources": "Recursos Oficiais de Immich",
"offline": "Fóra de liña",
"offset": "Desprazamento",
@@ -1535,6 +1561,8 @@
"open": "Abrir",
"open_calendar": "Abrir calendario",
"open_in_browser": "Abrir no navegador",
+ "open_in_immich_body": "Configura Immich como a túa galería en Android para abrir fotos directamente doutras aplicacións.",
+ "open_in_immich_title": "Abrir fotos en Immich",
"open_in_map_view": "Abrir na vista de mapa",
"open_in_openstreetmap": "Abrir en OpenStreetMap",
"open_the_search_filters": "Abrir os filtros de busca",
@@ -1693,7 +1721,10 @@
"recent": "Recente",
"recent_searches": "Buscas recentes",
"recently_added": "Engadido recentemente",
+ "recently_added_body": "Vaia directamente a todo o que engadiu ultimamente nunha páxina específica.",
+ "recently_added_description": "Explora os teus recursos ordenados por cando foron cargados en Immich",
"recently_added_page_title": "Engadido Recentemente",
+ "recently_added_title": "Engadida recentemente",
"recently_taken": "Tomado recentemente",
"refresh": "Actualizar",
"refresh_encoded_videos": "Actualizar vídeos codificados",
@@ -1900,6 +1931,8 @@
"share_link": "Ligazón para Compartir",
"share_original": "Utilizar orixinal (grande)",
"share_preview": "Utilizar miniatura (pequena)",
+ "share_quality_body": "Mantén premido o botón de compartir para escoller a calidade da imaxe antes de compartila.",
+ "share_quality_title": "Escolle a calidade da compartición",
"shared": "Compartido",
"shared_album_activities_input_disable": "O comentario está desactivado",
"shared_album_activity_remove_content": "Quere eliminar esta actividade?",
@@ -1915,6 +1948,8 @@
"shared_link_clipboard_copied_massage": "Copiado ao portapapeis",
"shared_link_create_error": "Erro ao crear ligazón compartida",
"shared_link_custom_url_description": "Acceder a esta ligazón compartida cun URL personalizado",
+ "shared_link_custom_url_title": "URL Personalizado",
+ "shared_link_custom_url_warning": "Aviso: un nome de URL personalizado cunha barra inclinada pode causar resultados inesperados.",
"shared_link_edit_description_hint": "Introduza a descrición da compartición",
"shared_link_edit_expire_after_option_day": "1 día",
"shared_link_edit_expire_after_option_days": "{count} días",
@@ -1981,16 +2016,19 @@
"sign_out": "Pechar Sesión",
"sign_up": "Rexistrarse",
"size": "Tamaño",
+ "skip": "Saltar",
"skip_to_content": "Saltar ao contido",
"skip_to_folders": "Saltar a cartafoles",
"skip_to_tags": "Saltar a etiquetas",
"slideshow": "Presentación",
+ "slideshow_body": "Reláxate e mira as túas fotos reproducíndose nunha presentación de diapositivas a pantalla completa.",
"slideshow_metadata_overlay_mode": "Contido superposto",
"slideshow_metadata_overlay_mode_description_only": "Só descrición",
"slideshow_metadata_overlay_mode_full": "Cheo",
"slideshow_repeat": "Repetir presentación de diapositivas",
"slideshow_repeat_description": "Volver ao principio ao rematar a presentación de diapositivas",
"slideshow_settings": "Configuración da presentación",
+ "slideshow_title": "Presentación de diapositivas",
"smart_album": "Álbume intelixente",
"some_assets_already_have_a_location_warning": "Algúns dos recursos seleccionados xa teñen unha localización",
"sort_albums_by": "Ordenar álbums por...",
@@ -2118,6 +2156,7 @@
"unknown": "Descoñecido",
"unknown_country": "País Descoñecido",
"unknown_date": "Data descoñecida",
+ "unknown_schema": "Esquema descoñecido",
"unknown_year": "Ano Descoñecido",
"unlimited": "Ilimitado",
"unlink_motion_video": "Desvincular vídeo en movemento",
@@ -2153,6 +2192,8 @@
"upload_status_errors": "Erros",
"upload_status_uploaded": "Subido",
"upload_success": "Subida exitosa. Actualice a páxina para ver os novos activos subidos.",
+ "upload_to_album_body": "Para os usuarios que non empreguen a función de carga manual, agora poden optar por engadir fotos locais directamente a un álbum mentres as cargan, sen necesidade de cargalas e engadlas a un álbum máis tarde.",
+ "upload_to_album_title": "Subir directamente a un álbum",
"upload_to_immich": "Subir a Immich ({count})",
"uploading": "Subindo",
"uploading_media": "Cargando multimedia",
@@ -2220,6 +2261,9 @@
"week": "Semana",
"welcome": "Benvido/a",
"welcome_to_immich": "Benvido/a a Immich",
+ "whats_new": "O que hai de novo",
+ "whats_new_settings_subtitle": "Vexa as novidades de Immich",
+ "whats_new_version": "Versión {version}",
"when": "Cando",
"width": "Ancho",
"wifi_name": "Nome da wifi",
diff --git a/i18n/gsw.json b/i18n/gsw.json
index 8572f40d5a..a5e9713869 100644
--- a/i18n/gsw.json
+++ b/i18n/gsw.json
@@ -39,7 +39,7 @@
"added_to_favorites": "Zu de Favoritä hiigfüegt",
"added_to_favorites_count": "{count, number} zu de Favoritä hiigfüegt",
"admin": {
- "add_exclusion_pattern_description": "Ausschlussmuster hiifüege. Platzhalter wie *, ** und ? werde unterstützt. Um alli Datei in eme Verzeichnis mit em Name „Raw“ z ignoriere, „/Raw/“ verwände.\nUm alli Datei z ignoriere, wo uf „.tif“ änded, „/*.tif“ verwände. Um en absolute Pfad z ignoriere, „/pfad/zum/ignorieren/“ verwände.",
+ "add_exclusion_pattern_description": "Ausschlussmuster hiifüege. Platzhalter wie *, ** und ? werde unterstützt. Um alli Datei in eme Verzeichnis mit em Name „Raw“ z ignoriere, „/Raw/“ verwände. Um alli Datei z ignoriere, wo uf „.tif“ änded, „/*.tif“ verwände. Um en absolute Pfad z ignoriere, „/pfad/zum/ignorieren/“ verwände.",
"admin_user": "Administrator",
"asset_offline_description": "Die Datei vo ere externe Bibliothek isch nümme uf de Festplatte und isch i de Papirkorb verschobe worde. Falls d’Datei i dä Bibliothek verschobe worde isch, lueg i diner Ziitliiste noch de neue entsprechende Datei. Um die Datei wiederherzstelle, sorg bitte derfür, dass Immich uf de unten aagegehene Dateipfad cha zgriffe und lass d’Bibliothek neu scanne.",
"authentication_settings": "Authentifizierigsiistellige",
@@ -70,9 +70,10 @@
"copy_config_to_clipboard_description": "Kopier d’aktuel Systemkonfiguration als JSON-Objekt i d’Zwüscheablage",
"create_job": "Ufgob erstelle",
"cron_expression": "Cron-Ziitahgob",
- "cron_expression_description": "Setz s’Scan-Intervall im Cron-Format. Hilf zum Format findes du zum Bispiel bi de Setz s’Scan-Intervall im Cron-Format. Hilf zum Format findes du zum Bispiel bi de Crontab Guru.Crontab Guru.",
+ "cron_expression_description": "Setz s’Scan-Intervall im Cron-Format. Hilf zum Format findes du zum Bispiel bi de Crontab Guru",
"cron_expression_presets": "Vorlag für Cron-Ziitangab",
"disable_login": "Login deaktiviiere",
+ "download_csv": "Als CSV abäladä",
"duplicate_detection_job_description": "Die Ufgab führt s’maschinelli Lärene für jede Datei us, um Duplikat z finde. Die Ufgab basiert uf de intelligente Suechi",
"exclusion_pattern_description": "Mit Usschlussmuster chönnd Datei und Ordner bim Scanne vo diner Bibliothek ignoriert werde. Das isch nöützlich, wenn du Ordner hesch, wo Datei enthalte, wo du nöd importiere wotsch – zum Bispiel RAW-Dateie.",
"export_config_as_json_description": "Lad d’aktuel Systemkonfiguration als JSON-Datei ab",
@@ -96,6 +97,8 @@
"image_preview_description": "Mittelgrosses Bild mit entfernte Metadate, wo bim Aaluegä vo ere einzelne Datei und fürs maschinelli Lärne bruucht wird",
"image_preview_quality_description": "Vorschauqualität vo 1–100. En höcherer Wert isch besser, erzeugt aber grösseri Dateie und cha d’Reaktionsfähigkait vo dr App beeinträchtige. En tieferer Wert cha hingegen d’Qualität vom maschinelle Lärne beeinträchtige.",
"image_preview_title": "Vorschauiistellige",
+ "image_progressive": "Progressiv",
+ "image_progressive_description": "JPEG progressiv enkodiärä für graduells Display-Ladeverhaltä. Hät kei Effekt für WebP Bilder.",
"image_quality": "Qualität",
"image_resolution": "Uuflösig",
"image_resolution_description": "Höcheri Uflösige chöi meh Detail erhalte, bruuched aber meh Ziit für d’Kodierig, hei grösseri Dateigrössi und chöi d’Reaktionsfähigkait vo Applikatione beeinträchtige.",
@@ -105,6 +108,10 @@
"image_thumbnail_quality_description": "Qualität vo dr Miniaturahsicht vo 1–100. Höcher isch besser, erzeugt aber grösseri Dateie und cha d’Reaktionsfähigkait vo dr App beeinträchtige.",
"image_thumbnail_title": "Miniaturahsicht-Iistellige",
"import_config_from_json_description": "Importier d’Systemkonfiguration, indem du e JSON-Konfigurationsdatei ufladsch",
+ "integrity_checks_checksum_files": "Checksum-Dateiä",
+ "integrity_checks_checksum_files_description": "D Cheksum Überprüäfig konfigurierä",
+ "integrity_checks_checksum_files_enable_description": "D Checksum Überprüäfig iischaltä",
+ "integrity_checks_checksum_files_percentage_limit": "Prozentuali Obergränzä",
"job_concurrency": "{job} (Aazahl gliichziitig laufendi Prozäss)",
"job_created": "Ufgab erstellt",
"job_not_concurrency_safe": "Die Ufgab isch nöd parallelisierigssicher.",
@@ -729,7 +736,6 @@
"current_server_address": "Aktuelli Serveradresse",
"custom_locale": "Benutzerdefinierti Sproch",
"custom_locale_description": "Datumsahgoob und Zahle je nach Sproch und Land formatiere",
- "custom_url": "Benutzerdefinierti URL",
"dark": "Dunkäl",
"dark_theme": "Dunkli Aahsicht umschalte",
"date": "Datum",
diff --git a/i18n/gu.json b/i18n/gu.json
index dfdd98ae99..31a5a92199 100644
--- a/i18n/gu.json
+++ b/i18n/gu.json
@@ -23,6 +23,7 @@
"add_location": "સ્થાન ઉમેરો",
"add_partner": "સાથી ઉમેરો",
"add_photos": "ફોટો ઉમેરો",
+ "add_step": "પગલું ઉમેરો",
"add_tag": "ટેગ ઉમેરો",
"add_to": "માં ઉમેરો",
"add_to_album": "આલ્બમમાં ઉમેરો",
@@ -72,6 +73,7 @@
"cron_expression_description": "ક્રોન ફોર્મેટનો ઉપયોગ કરીને સ્કેનિંગ ઇન્ટરવલ સેટ કરો. વધુ માહિતી માટે કૃપા કરીને Crontab Guru જુઓ.",
"cron_expression_presets": "ક્રોન એક્સપ્રેશન પ્રીસેટ્સ",
"disable_login": "લોગિન ડિસેબલ કરો",
+ "download_csv": "CSV ડાઉનલોડ કરો",
"duplicate_detection_job_description": "સરખી ઈમેજો શોધવા માટે તમારા સંસાધનો પર મશીન લર્નિંગનો ઉપયોગ કરો. આ સુવિધા સ્માર્ટ સર્ચ પર આધારિત છે",
"exclusion_pattern_description": "તમારા સંગ્રહને સ્કેન કરતી વખતે એક્સક્લુઝન પેટર્ન તમને ફાઇલો અને ફોલ્ડર્સને અવગણવામાં મદદ કરે છે. જો તમારી પાસે એવી ફાઇલો ધરાવતા ફોલ્ડર્સ હોય જેને તમે ઈમ્પોર્ટ કરવા નથી માંગતા, જેમ કે RAW ફાઇલો, તો આ સુવિધા ઉપયોગી છે.",
"export_config_as_json_description": "વર્તમાન સિસ્ટમ કોન્ફિગને JSON ફાઇલ તરીકે ડાઉનલોડ કરો",
@@ -80,6 +82,13 @@
"face_detection_description": "મશીન લર્નિંગનો ઉપયોગ કરીને સંસાધનોમાં ચહેરાની પરખ કરો. વીડિયો માટે, ફક્ત થંબનેલ જ ધ્યાનમાં લેવામાં આવે છે. \"રિફ્રેશ\" બધા સંસાધનો પર ફરીથી પ્રક્રિયા કરે છે. \"રીસેટ\" વધારામાં ચહેરાના તમામ વર્તમાન ડેટાને સાફ કરે છે. \"ખૂટતા\" તેવા સંસાધનોને કતારમાં મૂકે છે જેના પર હજુ સુધી પ્રક્રિયા કરવામાં આવી નથી. ચહેરાની પરખ પૂર્ણ થયા પછી, શોધાયેલા ચહેરાઓને 'ચહેરાની ઓળખ' માટે કતારમાં મૂકવામાં આવશે, જે તેમને હાલની અથવા નવી વ્યક્તિઓના જૂથમાં વિભાજિત કરશે.",
"facial_recognition_job_description": "શોધાયેલા ચહેરાઓને વ્યક્તિઓના જૂથમાં વિભાજિત કરો. આ પગલું 'ચહેરાની પરખ' પૂર્ણ થયા પછી શરૂ થાય છે. \"રીસેટ\" બધા ચહેરાઓનું ફરીથી જૂથીકરણ કરે છે. \"ખૂટતા\" તેવા ચહેરાઓને કતારમાં મૂકે છે જેમને હજુ સુધી કોઈ વ્યક્તિ ફાળવવામાં આવી નથી.",
"failed_job_command": "આ કાર્ય માટે આદેશ {command} નિષ્ફળ રહ્યો: {job}",
- "force_delete_user_warning": "ચેતવણી: આ પ્રક્રિયા તરત જ વપરાશકર્તા અને તમામ સંસાધનોને દૂર કરી દેશે. આ નિર્ણય બદલી શકાશે નહીં અને ફાઇલોને ફરીથી મેળવી શકાશે નહીં."
+ "force_delete_user_warning": "ચેતવણી: આ પ્રક્રિયા તરત જ વપરાશકર્તા અને તમામ સંસાધનોને દૂર કરી દેશે. આ નિર્ણય બદલી શકાશે નહીં અને ફાઇલોને ફરીથી મેળવી શકાશે નહીં.",
+ "image_format": "ગોઠવણ",
+ "image_format_description": "WebP JPEG કરતા નાની ફાઇલો બનાવે છે, પરંતુ એન્કોડ કરવામાં ધીમી છે.",
+ "image_prefer_embedded_preview": "એમ્બેડેડ પૂર્વાવલોકન પસંદ કરો",
+ "image_prefer_wide_gamut": "પહોળા અંતરને પ્રાધાન્ય આપો",
+ "image_preview_quality_description": "પ્રીવ્યૂ ગુણવત્તા ૧-૧૦૦ સુધી. ઉચ્ચ વધુ સારું છે, પરંતુ તે મોટી ફાઇલો ઉત્પન્ન કરે છે અને એપ્લિકેશન પ્રતિભાવ ઘટાડી શકે છે. ઓછું મૂલ્ય સેટ કરવાથી મશીન લર્નિંગ ગુણવત્તા પર અસર પડી શકે છે.",
+ "image_preview_title": "પૂર્વાવલોકન સેટિંગ્સ",
+ "image_progressive": "પ્રગતિશીલ"
}
}
diff --git a/i18n/he.json b/i18n/he.json
index 0b380bce37..58bb78a9d7 100644
--- a/i18n/he.json
+++ b/i18n/he.json
@@ -5,7 +5,7 @@
"acknowledge": "הבנתי",
"action": "פעולה",
"action_common_update": "עדכון",
- "action_description": "סט פעולות לביצוע על נכסים מסוננים",
+ "action_description": "סט פעולות לביצוע על קבצים מסוננים",
"actions": "פעולות",
"active": "פעיל",
"active_count": "פעיל: {count}",
@@ -15,14 +15,15 @@
"add_a_location": "הוספת מיקום",
"add_a_name": "הוספת שם",
"add_a_title": "הוספת כותרת",
- "add_action": "הוסף פעולה",
- "add_assets": "הוסף תמונות",
+ "add_action": "הוספת פעולה",
+ "add_assets": "הוספת תמונות",
"add_birthday": "הוספת יום הולדת",
"add_endpoint": "הוספת כתובת קצה",
"add_exclusion_pattern": "הוספת דפוס החרגה",
"add_location": "הוספת מיקום",
"add_partner": "הוספת שותף",
"add_photos": "הוספת תמונות",
+ "add_step": "הוספת שלב",
"add_tag": "הוספת תג",
"add_to": "הוספה ל…",
"add_to_album": "הוספה לאלבום",
@@ -72,6 +73,7 @@
"cron_expression_description": "הגדר את מרווח הסריקה באמצעות תבנית ה- cron. למידע נוסף נא לפנות למשל אל Crontab Guru",
"cron_expression_presets": "הגדרות קבועות מראש של ביטוי cron",
"disable_login": "השבת כניסה",
+ "download_csv": "הורדת קובץ CSV (אקסל)",
"duplicate_detection_job_description": "הפעל למידת מכונה על תמונות כדי לזהות תמונות דומות. נשען על חיפוש חכם",
"exclusion_pattern_description": "דפוסי החרגה מאפשרים לך להתעלם מקבצים ומתיקיות בעת סריקת הספרייה שלך. זה שימושי אם יש לך תיקיות המכילות קבצים שאינך רוצה לייבא, כגון קובצי RAW.",
"export_config_as_json_description": "הורדת הגדרות המערכת הנוכחיות כקובץ JSON",
@@ -106,6 +108,21 @@
"image_thumbnail_quality_description": "איכות תמונה ממוזערת מ-1 עד 100. איכות גבוהה יותר היא טובה יותר, אבל מייצרת קבצים גדולים יותר ויכולה להפחית את תגובתיות היישום.",
"image_thumbnail_title": "הגדרות תמונה ממוזערת",
"import_config_from_json_description": "ייבוא תצורת מערכת באמצעות קובץ תצורה JSON",
+ "integrity_checks_checksum_files": "קבצי סיכום ביקורת",
+ "integrity_checks_checksum_files_description": "הגדרת בדיקות סיכום ביקורת (checksum)",
+ "integrity_checks_checksum_files_enable_description": "הפעלת בדיקת סיכום ביקורת",
+ "integrity_checks_checksum_files_percentage_limit": "מגבלה באחוזים",
+ "integrity_checks_checksum_files_percentage_limit_description": "הגדרת אחוז מקסימלי בין 0.01 ו־1 לשיעור בדיקת סיכום ביקורת בכל פרק זמן.",
+ "integrity_checks_checksum_files_time_limit": "מגבלת זמן",
+ "integrity_checks_checksum_files_time_limit_description": "הגדר את משך הזמן המרבי שבו בדיקת סכומי הביקורת תתבצע בכל מרווח זמן. (אלפיות שנייה)",
+ "integrity_checks_missing_files": "קבצים חסרים",
+ "integrity_checks_missing_files_description": "הגדר את התדירות והפעל או השבת את בדיקת הקבצים החסרים",
+ "integrity_checks_missing_files_enable_description": "הפעל את בדיקת הקבצים החסרים",
+ "integrity_checks_settings": "בדיקת שלמות",
+ "integrity_checks_settings_description": "ניהול מרווחי הזמן של בדיקות השלמות",
+ "integrity_checks_untracked_files": "קבצים לא במעקב",
+ "integrity_checks_untracked_files_description": "הגדרת התדירות והפעלת או השבתת בדיקת הקבצים שלא במעקב",
+ "integrity_checks_untracked_files_enable_description": "הפעלת בדיקת קבצים בלתי נעקבים",
"job_concurrency": "בו-זמניות של {job}",
"job_created": "עבודה נוצרה",
"job_not_concurrency_safe": "עבודה זו אינה בטוחה להרצה במקביל.",
@@ -181,9 +198,25 @@
"machine_learning_smart_search_enabled": "אפשר חיפוש חכם",
"machine_learning_smart_search_enabled_description": "אם מושבת, תמונות לא יקודדו לחיפוש חכם.",
"machine_learning_url_description": "כתובת ה-URL של שרת למידת המכונה. אם ניתנת יותר מכתובת URL אחת, כל שרת ינוסה ניסיון אחד בכל פעם עד שאחד מהם יגיב בהצלחה, לפי הסדר מהראשון עד האחרון. שרתים שלא מגיבים יוזנחו זמנית עד שיחזרו להיות מקוונים.",
+ "maintenance_backup_management": "ניהול גיבוי",
"maintenance_delete_backup": "מחק גיבוי",
"maintenance_delete_backup_description": "קובץ זה ימחק לצמיתות.",
"maintenance_delete_error": "מחיקת הגיבוי נכשלה.",
+ "maintenance_integrity_check": "בדיקה",
+ "maintenance_integrity_check_all": "בדוק הכל",
+ "maintenance_integrity_checksum_mismatch": "סיכום ביקורת לא תואם",
+ "maintenance_integrity_checksum_mismatch_description": "קבצים שסכום הביקורת שלהם בדיסק אינו תואם לסכום הביקורת ש־Immich שמר במסד הנתונים שלו.",
+ "maintenance_integrity_checksum_mismatch_job": "בדוק אי־התאמות בסכומי ביקורת",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "רענן דוחות אי־התאמות בסכומי ביקורת",
+ "maintenance_integrity_missing_file": "קבצים חסרים",
+ "maintenance_integrity_missing_file_description": "קבצים ש‐Immich עקב אחריהם במסד הנתונים אך אינם קיימים במערכת הקבצים.",
+ "maintenance_integrity_missing_file_job": "בדוק אם יש קבצים חסרים",
+ "maintenance_integrity_missing_file_refresh_job": "רענון דוחות קבצים חסרים",
+ "maintenance_integrity_report": "דוח תקינות",
+ "maintenance_integrity_untracked_file": "קבצים לא במעקב",
+ "maintenance_integrity_untracked_file_description": "קבצים בתיקיות של Immich של-Immich אין תיעוד שלהם.",
+ "maintenance_integrity_untracked_file_job": "בדיקת קבצים שאינם במעקב",
+ "maintenance_integrity_untracked_file_refresh_job": "רענן דוחות קבצים לא במעקב",
"maintenance_restore_backup": "שחזור מגיבוי",
"maintenance_restore_backup_description": "Immich יימחק וישוחזר מהגיבוי שנבחר. גיבוי ייווצר לפני שתמשיך.",
"maintenance_restore_backup_different_version": "גיבוי זה נוצר עם גרסה שונה של Immich!",
@@ -298,6 +331,8 @@
"refreshing_all_libraries": "מרענן את כל הספריות",
"registration": "רישום מנהל מערכת",
"registration_description": "מכיוון שאתה המשתמש הראשון במערכת, אתה תוקצה כמנהל ואתה אחראי על משימות ניהול, ומשתמשים נוספים ייווצרו על ידך.",
+ "release_channel_release_candidate": "מועמד לשחרור",
+ "release_channel_stable": "יציב",
"remove_failed_jobs": "הסרת משימות שנכשלו",
"require_password_change_on_login": "דרוש מהמשתמש לשנות סיסמה בכניסה הראשונה",
"reset_settings_to_default": "אפס הגדרות לברירת המחדל",
@@ -392,6 +427,14 @@
"transcoding_preferred_hardware_device_description": "חל רק על VAAPI ו-QSV. מגדיר את צומת ה-dri המשמש להמרת קידוד של חומרה.",
"transcoding_preset_preset": "הגדרות קבועות מראש (-preset)",
"transcoding_preset_preset_description": "מהירות דחיסה. הגדרות קבועות מראש איטיות יותר מייצרות קבצים קטנים יותר, ומגבירות את האיכות כאשר מכוונים לקצב סיביות מסוים. VP9 מתעלם ממהירויות מעל 'מהיר יותר'.",
+ "transcoding_realtime": "קידוד בזמן אמת [ניסיוני]",
+ "transcoding_realtime_description": "אפשר קידוד בזמן אמת בזמן שהסרטון משודר. מאפשר החלפת איכות, אך עלול לגרום להשהיות וגמגומים בהתאם ליכולות השרת.",
+ "transcoding_realtime_enabled": "הפעל קידוד בזמן אמת",
+ "transcoding_realtime_enabled_description": "אם אפשרות זו מושבתת, השרת יסרב להתחיל הפעלות חדשות של המרה בזמן אמת.",
+ "transcoding_realtime_resolutions": "רזולוציות",
+ "transcoding_realtime_resolutions_description": "הרזולוציות הזמינות להמרה בזמן אמת. רזולוציות גבוהות יותר עלולות לגרום לבעיות בניגון אם השרת אינו מסוגל לבצע את ההמרה במהירות מספקת.",
+ "transcoding_realtime_video_codecs": "מקודדי וידאו",
+ "transcoding_realtime_video_codecs_description": "מקודדי הווידאו הזמינים לטרנסקודינג בזמן אמת. יישומי הקצה יבחרו במהלך ההפעלה את האפשרות הטובה ביותר שבה הם תומכים. AV1 יעיל יותר מ־HEVC, אשר יעיל יותר מ־H.264. בעת שימוש בהאצת חומרה, יש לבחור רק את המקודדים שבהם מאיץ החומרה מסוגל לבצע קידוד. בעת שימוש בטרנסקודינג באמצעות תוכנה, יש לשים לב ש־H.264 מהיר יותר מ־AV1, אשר מהיר יותר מ־HEVC.",
"transcoding_reference_frames": "פריימים לייחוס",
"transcoding_reference_frames_description": "מספר הפריימים לייחוס בעת דחיסה של פריים נתון. ערכים גבוהים יותר משפרים את יעילות הדחיסה, אך מאטים את הקידוד. 0 מגדיר את הערך זה באופן אוטומטי.",
"transcoding_required_description": "רק סרטונים שאינם בפורמט מקובל",
@@ -435,6 +478,8 @@
"user_settings_description": "ניהול הגדרות משתמש",
"user_successfully_removed": "המשתמש {email} הוסר בהצלחה.",
"users_page_description": "עמוד ניהול משתמשים",
+ "version_check_channel": "ערוץ הפצה",
+ "version_check_channel_description": "בחר את ערוץ ההפצה שעבורו ברצונך לקבל הודעות על גרסאות חדשות",
"version_check_enabled_description": "אפשר בדיקת גרסה",
"version_check_implications": "תכונת בדיקת הגרסה מסתמכת על תקשורת תקופתית עם {server}",
"version_check_settings": "בדיקת גרסה",
@@ -551,6 +596,7 @@
"asset_viewer_settings_title": "מציג התמונות",
"assets": "תמונות וסרטונים",
"assets_added_to_album_count": "{count, plural, one {נוספה תמונה #} other {נוספו # תמונות}} לאלבום",
+ "assets_added_to_album_partial_count": "נוספו {successCount} מתוך {totalCount} {totalCount, plural, one {תמונה} other {תמונות}} לאלבום",
"assets_added_to_albums_count": "{assetTotal, plural, one {נוסף פריט #} other {נוספו # פריטים}} אל {albumTotal, plural, one {אלבום #} other {# אלבומים}}",
"assets_cannot_be_added_to_album_count": "לא ניתן להוסיף את ה{count, plural, one {תמונה} other {תמונות}} לאלבום",
"assets_cannot_be_added_to_albums": "לא ניתן להוסיף {count, plural, one {פריט} other {פריטים}} לאף אחד מהאלבומים",
@@ -604,12 +650,14 @@
"backup_options": "אפשרויות גיבוי",
"backup_settings_subtitle": "נהל הגדרות העלאה",
"backward": "אחורה",
+ "battery_optimization_backup_reliability": "השבתת מיטוב צריכת הסוללה עשויה לשפר את האמינות של גיבוי ברקע",
"biometric_auth_enabled": "אימות ביומטרי הופעל",
"biometric_locked_out": "גישה לאימות הביומטרי נחסמה",
"biometric_no_options": "אין אפשרויות זמינות עבור אימות ביומטרי",
"biometric_not_available": "אימות ביומטרי אינו זמין במכשיר זה",
"birthdate_set_description": "תאריך לידה משמש לחישוב הגיל של האדם הזה בזמן תצלום.",
"blurred_background": "רקע מטושטש",
+ "browse_templates": "עיון בתבניות",
"bugs_and_feature_requests": "באגים & בקשות לתכונות",
"build": "גרסת בנייה",
"build_image": "גרסת תוכנה",
@@ -629,6 +677,7 @@
"cannot_update_the_description": "לא ניתן לעדכן את התיאור",
"cast": "שידור למסך",
"cast_description": "הגדרת התקנים זמינים לשידור",
+ "change": "שנה",
"change_date": "שנה תאריך",
"change_description": "שנה תיאור",
"change_display_order": "שנה סדר תצוגה",
@@ -651,6 +700,7 @@
"charging_requirement_mobile_backup": "גיבוי ברקע דורש טעינה של המכשיר",
"check_logs": "בדוק יומני רישום",
"checksum": "סיכום ביקורת",
+ "choose": "בחר",
"choose_matching_people_to_merge": "בחר אנשים תואמים למיזוג",
"city": "עיר",
"cleanup_confirm_description": "Immich מצא {count} תמונות וסרטונים (שנוצרו לפני {date}) מגובים בבטחה לשרת. להסיר את העותקים המקומיים ממכשיר זה?",
@@ -668,6 +718,7 @@
"clear": "נקה",
"clear_all": "נקה הכל",
"clear_all_recent_searches": "נקה את כל החיפושים האחרונים",
+ "clear_failed_count": "ניקוי נכשל ({count})",
"clear_file_cache": "נקה קבצי מטמון",
"clear_message": "נקה הודעה",
"clear_value": "נקה ערך",
@@ -695,6 +746,7 @@
"comments_are_disabled": "תגובות מושבתות",
"common_create_new_album": "צור אלבום חדש",
"completed": "הושלמו",
+ "configuration": "תצורה",
"confirm": "אישור",
"confirm_admin_password": "אישור סיסמת מנהל",
"confirm_delete_face": "האם באמת ברצונך למחוק את הפנים של {name} מהתמונה?",
@@ -709,6 +761,7 @@
"contain": "מכיל",
"context": "הקשר",
"continue": "המשך",
+ "control_bottom_app_bar_add_tags": "הוסף תגיות",
"control_bottom_app_bar_delete_from_local": "מחק מהמכשיר",
"control_bottom_app_bar_edit_location": "ערוך מיקום",
"control_bottom_app_bar_edit_time": "ערוך תאריך & זמן",
@@ -717,6 +770,7 @@
"copied_to_clipboard": "הועתק ללוח!",
"copy_error": "שגיאת העתקה",
"copy_image": "העתק תמונה",
+ "copy_json": "העתק JSON",
"copy_link": "העתק קישור",
"copy_link_to_clipboard": "העתק קישור ללוח",
"copy_password": "העתק סיסמה",
@@ -759,7 +813,6 @@
"custom_date": "תאריך מותאם אישית",
"custom_locale": "אזור שפה מותאם אישית",
"custom_locale_description": "עצב תאריכים, זמנים, ומספרים על סמך השפה והאזור שנבחרו",
- "custom_url": "קישור מותאם אישית",
"cutoff_date_description": "שמור תמונות מ…",
"cutoff_day": "{count, plural, one {יום} other {ימים}}",
"cutoff_year": "{count, plural, one {שנה} other {שנים}}",
@@ -772,9 +825,12 @@
"date_of_birth": "תאריך לידה",
"date_of_birth_saved": "תאריך לידה נשמר בהצלחה",
"date_range": "טווח תאריכים",
+ "date_time_original": "תאריך/שעה מקוריים",
"day": "יום",
"days": "ימים",
"deduplicate_all": "ביטול כל הכפילויות",
+ "default_quality_subtitle": "איכות איכותית בשימוש בעת לחיצה על שיתוף. לחץ לחיצה ארוכה על כפתור השיתוף כדי לבחור בכל פעם.",
+ "default_share_quality": "איכות שיתוף ברירת מחדל",
"delete": "מחק",
"delete_action_confirmation_message": "האם אתה בטוח שברצונך למחוק את התמונה הזאת? פעולה זו תעביר אותו לאשפה של השרת, ותשאל אם ברצונך למחוק אותו גם מהמכשיר המקומי",
"delete_action_prompt": "{count} נמחקו",
@@ -836,7 +892,10 @@
"downloading_asset_filename": "מוריד תמונה {filename}",
"downloading_from_icloud": "מוריד מ-iCloud",
"downloading_media": "מוריד מדיה",
+ "drag_to_reorder": "גרור כדי לשנות סדר",
"drop_files_to_upload": "שחרר קבצים בכל מקום כדי להעלות",
+ "duplicate": "שכפול",
+ "duplicate_workflow": "שכפול זרימת עבודה",
"duplicates": "כפילויות",
"duplicates_description": "הפרד כל קבוצה על ידי ציון אילו, אם בכלל, הן כפילויות.",
"duration": "משך זמן",
@@ -931,6 +990,7 @@
"failed_to_remove_product_key": "הסרת מפתח מוצר נכשלה",
"failed_to_reset_pin_code": "איפוס קוד PIN נכשל",
"failed_to_stack_assets": "יצירת ערימת תמונות נכשלה",
+ "failed_to_tag_assets": "תיוג התמונות נכשל",
"failed_to_unstack_assets": "ביטול ערימת תמונות נכשלה",
"failed_to_update_notification_status": "שגיאה בעדכון ההתראה",
"incorrect_email_or_password": "דוא\"ל או סיסמה שגויים",
@@ -1042,15 +1102,18 @@
"export_as_json": "ייצוא כ-JSON",
"export_database": "ייצא מסד נתונים",
"export_database_description": "ייצא מסד נתונים SQL",
+ "exposure_time": "זמן חשיפה",
"extension": "סיומת",
"external": "חיצוני",
"external_libraries": "ספריות חיצוניות",
"external_network": "רשת חיצונית",
"external_network_sheet_info": "אם אינך מחובר ל־Wi‑Fi מועדף, האפליקציה תנסה להתחבר לשרת לפי הסדר מהרשימה שלמטה (מלמעלה למטה)",
+ "f_number": "מספר F (מפתח צמצם)",
"face_unassigned": "לא מוקצה",
"failed": "נכשלו",
"failed_count": "נכשלו: {count}",
"failed_to_authenticate": "ההזדהות נכשלה",
+ "failed_to_delete_file": "מחיקת הקובץ נכשלה",
"failed_to_load_assets": "טעינת תמונות נכשלה",
"failed_to_load_folder": "טעינת תיקיה נכשלה",
"favorite": "מועדף",
@@ -1072,6 +1135,7 @@
"filters": "מסננים",
"first": "ראשון",
"fix_incorrect_match": "תקן התאמה שגויה",
+ "focal_length": "אורך מוקד",
"folder": "תיקיה",
"folder_not_found": "תיקיה לא נמצאה",
"folders": "תיקיות",
@@ -1154,6 +1218,7 @@
"individual_share": "שיתוף יחיד",
"individual_shares": "שיתופים בודדים",
"info": "מידע",
+ "integrity_checks": "בדיקות תקינות",
"interval": {
"day_at_onepm": "כל יום בשעה 13:00",
"hours": "כל {hours, plural, one {שעה} other {{hours, number} שעות}}",
@@ -1164,6 +1229,7 @@
"invalid_date_format": "פורמט תאריך לא תקין",
"invite_people": "הזמן אנשים",
"invite_to_album": "הזמן לאלבום",
+ "iso": "ISO",
"items_count": "{count, plural, one {פריט #} other {# פריטים}}",
"jobs": "משימות",
"keep": "שמור",
@@ -1192,6 +1258,7 @@
"leave": "לעזוב",
"leave_album": "עזיבת אלבום",
"lens_model": "דגם עדשה",
+ "less": "פחות",
"let_others_respond": "אפשר לאחרים להגיב",
"level": "רמה",
"library": "ספרייה",
@@ -1213,6 +1280,7 @@
"linked_oauth_account": "חשבון OAuth מקושר",
"list": "רשימה",
"live": "חי",
+ "load_more": "טען עוד",
"loading": "טוען",
"loading_search_results_failed": "טעינת תוצאות החיפוש נכשלה",
"local": "מקומי",
@@ -1253,9 +1321,9 @@
"login_form_failed_login": "שגיאה בכניסה למערכת, בדוק את כתובת השרת, דוא\"ל וסיסמה",
"login_form_handshake_exception": "אירעה חריגה בעת ביצוע Handshake עם השרת. אפשר תמיכה בתעודה בחתימה עצמית בהגדרות אם את/ה משתמש/ת בתעודה בחתימה עצמית.",
"login_form_password_hint": "סיסמה",
- "login_form_server_empty": "הכנס כתובת שרת.",
- "login_form_server_error": "לא היה ניתן להתחבר לשרת.",
- "login_has_been_disabled": "הכניסה הושבתה.",
+ "login_form_server_empty": "כתובת שרת",
+ "login_form_server_error": "לא ניתן להתחבר לשרת",
+ "login_has_been_disabled": "ההתחברות לחשבון הושבתה",
"login_password_changed_error": "הייתה שגיאה בעדכון הסיסמה שלך",
"login_password_changed_success": "סיסמה עודכנה בהצלחה",
"logout_all_device_confirmation": "האם באמת ברצונך להתנתק מכל המכשירים?",
@@ -1306,7 +1374,8 @@
"map_location_picker_page_use_location": "השתמש במיקום הזה",
"map_location_service_disabled_content": "שירות המיקום צריך להיות מופעל כדי להציג תמונות מהמיקום הנוכחי שלך. האם ברצונך להפעיל אותו עכשיו?",
"map_location_service_disabled_title": "שירות מיקום מבוטל",
- "map_marker_with_image": "סמן מפה עם תמונה",
+ "map_marker_for_image": "מרקר מפה לתמונה ממיקום {city}, {country}",
+ "map_marker_with_image": "סמן מפה מתמונה",
"map_no_location_permission_content": "יש צורך בהרשאה למיקום כדי להציג תמונות מהמיקום הנוכחי שלך. האם ברצונך לאפשר זאת עכשיו?",
"map_no_location_permission_title": "הרשאה למיקום נדחתה",
"map_settings": "הגדרות מפה",
@@ -1315,9 +1384,9 @@
"map_settings_date_range_option_days": "ב-{days} ימים אחרונים",
"map_settings_date_range_option_year": "שנה אחרונה",
"map_settings_date_range_option_years": "ב-{years} שנים אחרונות",
- "map_settings_include_show_archived": "כלול ארכיון",
- "map_settings_include_show_partners": "כלול שותפים",
- "map_settings_only_show_favorites": "הצג מועדפים בלבד",
+ "map_settings_include_show_archived": "הכללת ארכיון",
+ "map_settings_include_show_partners": "הכללת שותפים",
+ "map_settings_only_show_favorites": "הצגת מועדפים בלבד",
"map_settings_theme_settings": "ערכת נושא למפה",
"mark_all_as_read": "סמן הכל כנקרא",
"marked_all_as_read": "כל ההתראות סומנו כנקראו",
@@ -1327,22 +1396,33 @@
"auto": "אוטומטי",
"captions": "כתוביות",
"captions_off": "כבוי",
+ "closed_captions": "כתוביות מובנות",
"decode_error": "שגיאת קידוד",
"disable_captions": "ביטול כתוביות",
"enable_captions": "אפשר כתוביות",
"enter_fullscreen_mode": "הפעלת מצב מסך מלא",
"exit_fullscreen_mode": "יציאה ממסך מלא",
"loop": "לולאה",
+ "media_error_description": "שגיאה במדיה עצדה את הניגון. המדיה אינה תקינה או שהדפדפן אינו תומך בפורמט.",
"media_loading": "טעינת מדיה",
"mute": "השתקה",
"network_error": "שגיאת רשת",
+ "network_error_description": "ההורדה נכשלה בגלל שגיאת רשת.",
"not_supported_error": "מקור לא נתמך",
"playback_rate": "דירוג ניגון",
+ "playback_rate_current": "דירוג נוכחי",
+ "playback_rate_value": "דירוג {playbackRate}",
"playback_time": "זמן ניגון",
"quality": "איכות",
"second": "שניה",
"seconds": "שניות",
- "time_value_of_total_time": "{currentTime} מתוך {totalTime}"
+ "time_value_of_total_time": "{currentTime} מתוך {totalTime}",
+ "time_value_remaining": "נשאר {time}",
+ "unmute": "ביטול השתקה",
+ "unsupported_error_description": "אירעה שגיאה שאינה נתמכת. השרת או הרשת נכשלו, או שהדפדפן שלך אינו תומך בפורמט זה.",
+ "video_not_loaded_unknown_time": "הווידאו לא נטען, זמן לא ידוע.",
+ "video_player": "נגן וידיאו",
+ "volume": "עוצמת קול"
},
"media_type": "סוג מדיה",
"memories": "זכרונות",
@@ -1360,6 +1440,8 @@
"merge_people_prompt": "האם ברצונך למזג את האנשים האלה? פעולה זו היא בלתי הפיכה.",
"merge_people_successfully": "מיזוג אנשים בוצע בהצלחה",
"merged_people_count": "{count, plural, one {אדם # מוזג} other {# אנשים מוזגו}}",
+ "minFaces": "מינימום פנים",
+ "minFaces_description": "המספר המינימלי של פנים שזוהו עבור אדם כדי שיוצג",
"minimize": "מזער",
"minute": "דקה",
"minutes": "דקות",
@@ -1367,8 +1449,10 @@
"mobile_app": "אפליקציה לטלפון",
"mobile_app_download_onboarding_note": "הורד את האפליקציה המלווה באחת מהאפשרויות הבאות",
"model": "דגם",
+ "modify_date": "תאריך שינוי",
"month": "חודש",
"more": "עוד",
+ "motion": "תנועה",
"move": "העבר",
"move_off_locked_folder": "הוצאה מהתיקייה הנעולה",
"move_to": "העבר ל",
@@ -1395,6 +1479,7 @@
"never": "אף פעם",
"new_album": "אלבום חדש",
"new_api_key": "מפתח API חדש",
+ "new_feature": "תכונה חדשה",
"new_password": "סיסמה חדשה",
"new_person": "אדם חדש",
"new_pin_code": "קוד PIN חדש",
@@ -1432,13 +1517,19 @@
"no_results": "אין תוצאות",
"no_results_description": "נסה להשתמש במילה נרדפת או במילת מפתח יותר כללית",
"no_shared_albums_message": "צור אלבום כדי לשתף תמונות וסרטונים עם אנשים ברשת שלך",
+ "no_steps": "טרם נוספו שלבים",
"none": "אף אחד",
"not_allowed": "לא מורשה",
"not_available": "לא רלוונטי",
"not_in_any_album": "לא בשום אלבום",
"not_selected": "לא נבחרו",
+ "not_set": "לא מוגדר",
"notes": "הערות",
"nothing_here_yet": "אין כאן כלום עדיין",
+ "notification_backup_reliability": "הפעלת התראות לשיפור אמינות הגיבוי ברקע",
+ "notification_enabled_list_tile_content": "Immich משתמש בהתראות לצורך גיבוי ברקע. ניתן לנהל אותן בהגדרות המכשיר.",
+ "notification_enabled_list_tile_open_button": "פתח הגדרות",
+ "notification_enabled_list_tile_title": "התראות מופעלות",
"notification_permission_dialog_content": "כדי לאפשר התראות, לך להגדרות המכשיר ובחר אפשר.",
"notification_permission_list_tile_content": "הענק הרשאה כדי לאפשר התראות.",
"notification_permission_list_tile_enable_button": "אפשר התראות",
@@ -1450,6 +1541,8 @@
"obtainium_configurator": "הגדרות Obtainium",
"obtainium_configurator_instructions": "השתמש ב-Obtainium כגדי להתקין ולעדכן את אפליקציית האנדרואיד ישירות לגרסאות הגיטהאב של Immich. צור מפתח API ובחר וריאנט כדי ליצור קישור קונפיגורציה עבור Obtainium",
"ocr": "OCR",
+ "ocr_body": "Immich קורא כעת את הטקסט שבתוך התמונות שלך, כך שתוכל לחפש אותן לפי התוכן הכתוב בהן.",
+ "ocr_title": "חפש טקסט בתוך התמונות שלך",
"official_immich_resources": "מקורות רשמיים של Immich",
"offline": "לא מקוון",
"offset": "קיזוז",
@@ -1468,6 +1561,8 @@
"open": "פתח",
"open_calendar": "פתיחת לוח שנה",
"open_in_browser": "פתיחה בדפדפן",
+ "open_in_immich_body": "הגדר את Immich כגלריה שלך ב־Android כדי לפתוח תמונות ישירות מאפליקציות אחרות.",
+ "open_in_immich_title": "פתח תמונות ב Immich",
"open_in_map_view": "פתח בתצוגת מפה",
"open_in_openstreetmap": "פתח ב-OpenStreetMap",
"open_the_search_filters": "פתח את מסנני החיפוש",
@@ -1476,6 +1571,7 @@
"organize_into_albums": "ארגן בתוך אלבומים",
"organize_into_albums_description": "שים תמונות קיימות בתוך אלבומים באמצעות הגדרות הסנכרון הנוכחיות",
"organize_your_library": "ארגן את הספרייה שלך",
+ "orientation": "כיוון",
"original": "מקורי",
"other": "אחר",
"other_devices": "מכשירים אחרים",
@@ -1524,7 +1620,7 @@
"person": "אדם",
"person_age_months": "{months, plural, one {חודש #} other {# חודשים}}",
"person_age_year_months": "בגיל שנה ו{months, plural, one {חודש #} other {# חודשים}}",
- "person_age_years": "בגיל {years, plural, other {# שנים}}",
+ "person_age_years": "בגיל {years, plural,one{#שנה}, other {# שנים}}",
"person_birthdate": "נולד בתאריך {date}",
"person_hidden": "{name}{hidden, select, true { (מוסתר)} other {}}",
"person_recognized": "זוהה אדם",
@@ -1550,6 +1646,8 @@
"play_original_video_setting_description": "העדף לנגן סרטונים המקוריים על פני סרטונים משועתקים. אם הסרטון המקורי אינו תואם הוא עלול להתנגן לא נכון.",
"play_transcoded_video": "נגן סרטון משועתק",
"please_auth_to_access": "אנא אמת את זהותך כדי לגשת",
+ "plugin_method_filter_type": "מסנן",
+ "plugin_method_filter_type_description": "שיטה זו יכולה לסנן אירועים ולמנוע באופן מותנה את הפעלת השלבים הבאים",
"port": "יציאה",
"preferences_settings_subtitle": "ניהול העדפות יישום",
"preferences_settings_title": "העדפות",
@@ -1570,6 +1668,7 @@
"profile_drawer_readonly_mode": "מצב לקריאה בלבד מופעל. לחץ לחיצה ארוכה על סמל היצגן של המשתמש כדי לצאת.",
"profile_image_of_user": "תמונת פרופיל של {user}",
"profile_picture_set": "תמונת פרופיל נבחרה.",
+ "projection_type": "סוג הקרנה",
"public_album": "אלבום ציבורי",
"public_share": "שיתוף ציבורי",
"purchase_account_info": "תומך",
@@ -1622,7 +1721,10 @@
"recent": "חדש",
"recent_searches": "חיפושים אחרונים",
"recently_added": "נוסף לאחרונה",
+ "recently_added_body": "עבור ישירות לכל מה שהוספת לאחרונה בעמוד ייעודי.",
+ "recently_added_description": "עיין בתמונות שלך כשהם ממוינות לפי מועד העלאתם ל־Immich",
"recently_added_page_title": "נוסף לאחרונה",
+ "recently_added_title": "נוספו לאחרונה",
"recently_taken": "צולם לאחרונה",
"refresh": "רענון",
"refresh_encoded_videos": "רענון סרטונים מקודדים",
@@ -1642,6 +1744,7 @@
"remove_assets_shared_link_confirmation": "האם ברצונך להסיר {count, plural, one {תמונה #} other {# תמונות}} מהקישור המשותף הזה?",
"remove_assets_title": "להסיר תמונות?",
"remove_custom_date_range": "הסרת טווח תאריכים מותאם",
+ "remove_filter": "הסר מסנן",
"remove_from_album": "הסרה מאלבום",
"remove_from_album_action_prompt": "{count} הוסרו מהאלבום",
"remove_from_favorites": "הסרה מהמועדפים",
@@ -1704,6 +1807,7 @@
"scan_library": "סרוק",
"scanning": "בתהליך סריקה",
"scanning_for_album": "סורק אחר אלבום...",
+ "screencast_mode_description": "הצג מחווני אירועי מקלדת ועכבר על המסך",
"screencast_mode_title": "כבה/הפעל מצב שידור מסך",
"search": "חיפוש",
"search_albums": "חיפוש אלבומים",
@@ -1712,6 +1816,8 @@
"search_by_description_example": "יום טיול בסאפה",
"search_by_filename": "חיפוש לפי שם קובץ או סיומת",
"search_by_filename_example": "לדוגמא IMG_1234.JPG או PNG",
+ "search_by_full_path": "חפש לפי נתיב מלא או תיקייה",
+ "search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 — ניתן לחפש לפי Projects, 3D, Printing, 2026 וכו׳.",
"search_by_ocr": "חיפוש לפי OCR",
"search_by_ocr_example": "לאטה",
"search_camera_lens_model": "חיפוש סוג עדשה...",
@@ -1773,6 +1879,7 @@
"select_person": "בחירת אדם",
"select_person_to_tag": "בחר אדם לתיוג",
"select_photos": "בחר תמונות",
+ "select_quality": "בחר איכות",
"select_trash_all": "בחר העבר הכל לאשפה",
"selected": "נבחרו",
"selected_count": "{count, plural, other {# נבחרו}}",
@@ -1822,6 +1929,10 @@
"share": "שתף",
"share_dialog_preparing": "מכין...",
"share_link": "שתף קישור",
+ "share_original": "השתמש במקור (גדול)",
+ "share_preview": "השתמש בתמונה ממוזערת (קטנה)",
+ "share_quality_body": "לחץ לחיצה ארוכה על כפתור השיתוף כדי לבחור את איכות התמונה לפני השיתוף.",
+ "share_quality_title": "בחר את איכות השיתוף שלך",
"shared": "משותף",
"shared_album_activities_input_disable": "התגובה מושבתת",
"shared_album_activity_remove_content": "האם ברצונך למחוק את הפעילות הזאת?",
@@ -1836,7 +1947,9 @@
"shared_link_app_bar_title": "קישורים משותפים",
"shared_link_clipboard_copied_massage": "הועתק ללוח",
"shared_link_create_error": "שגיאה ביצירת קישור משותף",
- "shared_link_custom_url_description": "גש לקישור ששותף באמצעות כתובת URL מותאמת אישית",
+ "shared_link_custom_url_description": "גש לקישור ששותף באמצעות שם כתובת URL מותאמת אישית",
+ "shared_link_custom_url_title": "URL מותאם אישית",
+ "shared_link_custom_url_warning": "אזהרה: URL מותאם אישית עם לוכסן קדמי עלול להתנהג שלא כמצופה.",
"shared_link_edit_description_hint": "הכנס את תיאור השיתוף",
"shared_link_edit_expire_after_option_day": "1 יום",
"shared_link_edit_expire_after_option_days": "{count} ימים",
@@ -1881,7 +1994,9 @@
"show_in_timeline": "הצג בציר הזמן",
"show_in_timeline_setting_description": "הצג תמונות וסרטונים ממשתמש זה בציר הזמן שלך",
"show_keyboard_shortcuts": "הצג קיצורי מקלדת",
+ "show_less": "הצג פחות",
"show_metadata": "הצג מטא-נתונים",
+ "show_more_fields": "{count, plural, one {הצג עוד שדה אחד} other {הצג עוד # שדות}}",
"show_or_hide_info": "הצג או הסתר מידע",
"show_password": "הראה סיסמה",
"show_person_options": "הצג אפשרויות אדם",
@@ -1889,6 +2004,7 @@
"show_schema": "הצגת תרשים",
"show_search_options": "הצג אפשרויות חיפוש",
"show_shared_links": "הצג קישורים משותפים",
+ "show_slideshow_metadata_overlay": "הצג שכבת מידע על התמונה",
"show_slideshow_transition": "הצג מעבר מצגת",
"show_supporter_badge": "תג תומך",
"show_supporter_badge_description": "הצג תג תומך",
@@ -1900,13 +2016,21 @@
"sign_out": "יציאה מהמערכת",
"sign_up": "הרשמה",
"size": "גודל",
+ "skip": "דלג",
"skip_to_content": "דלג לתוכן",
"skip_to_folders": "דלג לתיקיות",
"skip_to_tags": "דלג לתגים",
"slideshow": "מצגת שקופיות",
+ "slideshow_body": "שב בנוחות וצפה בתמונות שלך מוצגות במצגת שקופיות במסך מלא.",
+ "slideshow_metadata_overlay_mode": "שכבת תוכן",
+ "slideshow_metadata_overlay_mode_description_only": "תיאור בלבד",
+ "slideshow_metadata_overlay_mode_full": "מלא",
"slideshow_repeat": "חזרה על מצגת",
"slideshow_repeat_description": "חזרה להתחלה כאשר המצגת נגמרת",
"slideshow_settings": "הגדרות מצגת שקופיות",
+ "slideshow_title": "מצגת שקופיות",
+ "smart_album": "אלבום חכם",
+ "some_assets_already_have_a_location_warning": "לחלק מהתמונות שנבחרו כבר קיים מיקום",
"sort_albums_by": "מיין אלבומים לפי...",
"sort_created": "תאריך יצירה",
"sort_items": "מספר פריטים",
@@ -1927,6 +2051,10 @@
"start_date_before_end_date": "תאריך ההתחלה חייב להיות לפני תאריך הסיום",
"state": "מדינה",
"status": "מצב",
+ "step_delete": "מחיקת שלב",
+ "step_delete_confirm": "האם אתה בטוח שברצונך למחוק שלב זה?",
+ "step_details": "פרטי השלב",
+ "steps": "שלבים",
"stop_casting": "הפסקת שידור",
"stop_motion_photo": "עצור תמונה עם תנועה",
"stop_photo_sharing": "להפסיק לשתף את התמונות שלך?",
@@ -2007,10 +2135,12 @@
"trash_page_info": "פריטים באשפה ימחקו לצמיתות לאחר {days} ימים",
"trashed_items_will_be_permanently_deleted_after": "פריטים באשפה ימחקו לצמיתות לאחר {days, plural, one {יום #} other {# ימים}}.",
"trigger": "טריגר",
- "trigger_asset_uploaded": "נכס הועלה",
+ "trigger_asset_metadata_extraction": "חילוץ מטא־נתונים של תמונות",
+ "trigger_asset_metadata_extraction_description": "מופעל כאשר מטא־נתוני EXIF של תמונות מחולצים",
+ "trigger_asset_uploaded": "תוכן עולה",
"trigger_asset_uploaded_description": "מתעורר כאשר נכס חדש הועלה",
"trigger_person_recognized": "זוהה אדם",
- "trigger_person_recognized_description": "מתעורר כאשר זוהה אדם",
+ "trigger_person_recognized_description": "מופעל כאשר אדם זוהה",
"troubleshoot": "פתור בעיות",
"type": "סוג",
"unable_to_change_pin_code": "לא ניתן לשנות את קוד ה PIN",
@@ -2026,6 +2156,7 @@
"unknown": "לא ידוע",
"unknown_country": "מדינה לא ידועה",
"unknown_date": "תאריך לא ידוע",
+ "unknown_schema": "סכימה לא ידועה",
"unknown_year": "שנה לא ידועה",
"unlimited": "בלתי מוגבל",
"unlink_motion_video": "בטל קישור סרטון תנועה",
@@ -2050,6 +2181,7 @@
"updated_password": "סיסמה עודכנה",
"upload": "העלאה",
"upload_concurrency": "מספר העלאות במקביל",
+ "upload_day_count": "{date}: {count, plural, one {# העלאה} other {# העלאות}}",
"upload_details": "פרטי העלאה",
"upload_error_with_count": "שגיאת העלאה עבור {count, plural, one {נכס אחד} other {# נכסים}}",
"upload_errors": "העלאה הושלמה עם {count, plural, one {שגיאה #} other {# שגיאות}}, רענן את הדף כדי לראות תמונות שהועלו.",
@@ -2060,9 +2192,13 @@
"upload_status_errors": "שגיאות",
"upload_status_uploaded": "הועלה",
"upload_success": "ההעלאה בוצעה בהצלחה. רענן את הדף כדי לצפות בתמונות שהועלו.",
+ "upload_to_album_body": "עבור משתמשים שאינם משתמשים בתכונת ההעלאה הידנית, ניתן כעת לבחור להוסיף תמונות מקומיות ישירות לאלבום במהלך ההעלאה, ואין עוד צורך להעלות אותן ואז להוסיף לאלבום מאוחר יותר.",
+ "upload_to_album_title": "העלה ישירות לאלבום",
"upload_to_immich": "העלה לשרת ({count})",
"uploading": "מעלה",
"uploading_media": "מעלה מדיה",
+ "uploads": "העלאות",
+ "uploads_count": "{count, plural, one {# העלאה} other {# העלאות}}",
"url": "URL",
"usage": "שימוש",
"use_biometric": "השתמש באימות ביומטרי",
@@ -2070,6 +2206,7 @@
"use_browser_locale_description": "עיצוב תאריכים, זמנים, ומספרים בהתבסס על אזור השפה של הדפדפן שלך",
"use_current_connection": "שימוש בחיבור הנוכחי",
"use_custom_date_range": "השתמש בטווח תאריכים מותאם במקום",
+ "use_template": "השתמש בתבנית",
"user": "משתמש",
"user_has_been_deleted": "משתמש זה נמחק.",
"user_id": "מזהה משתמש",
@@ -2097,6 +2234,7 @@
"video": "סרטון",
"video_hover_setting": "הפעל תצוגת סרטון מקדימה בעת ריחוף",
"video_hover_setting_description": "הפעל תצוגת סרטון מקדימה כאשר העכבר מרחף מעל פריט. אפילו כשהגדרה זו מושבתת, ניתן להתחיל את הניגון על ידי ריחוף מעל סמל ההפעלה.",
+ "video_quality": "איכות וידאו",
"videos": "סרטונים",
"videos_count": "{count, plural, one {סרטון #} other {# סרטונים}}",
"view": "הצג",
@@ -2123,8 +2261,13 @@
"week": "שבוע",
"welcome": "ברוכים הבאים",
"welcome_to_immich": "ברוכים הבאים אל immich",
+ "whats_new": "מה חדש",
+ "whats_new_settings_subtitle": "ראה מה חדש ב־Immich",
+ "whats_new_version": "גרסה {version}",
+ "when": "מתי",
"width": "רוחב",
"wifi_name": "שם הרשת האלחוטית",
+ "workflow": "זרימת עבודה",
"workflow_delete_prompt": "האם ברצונך למחוק את זרימת העבודה הזו?",
"workflow_deleted": "זרימת העבודה נמחקה",
"workflow_description": "תיאור זרימת העבודה",
@@ -2134,10 +2277,12 @@
"workflow_name": "שם זרימת העבודה",
"workflow_navigation_prompt": "האם ברצונך לעזוב מבלי לשמור את השינויים שלך?",
"workflow_summary": "סיכום זרימת העבודה",
+ "workflow_templates": "תבניות של זרימת עבודה",
"workflow_update_success": "זרימת העבודה עודכנה בהצלחה",
"workflows": "זרימות עבודה",
"workflows_help_text": "זרימות עבודה מאטמטות פעולות על הנכסים שלך בהתבסס על טריגרים ומסננים",
"wrong_pin_code": "קוד PIN שגוי",
+ "x_of_total": "{x}/{total}",
"year": "שנה",
"years_ago": "לפני {years, plural, one {שנה #} other {# שנים}}",
"yes": "כן",
diff --git a/i18n/hi.json b/i18n/hi.json
index 1bddcd3b25..5fc09c0c00 100644
--- a/i18n/hi.json
+++ b/i18n/hi.json
@@ -72,6 +72,7 @@
"cron_expression_description": "क्रॉन प्रारूप का उपयोग करके स्कैनिंग अंतराल सेट करें। अधिक जानकारी के लिए कृपया क्रोनटैब गुरु देखें",
"cron_expression_presets": "क्रॉन अभिव्यक्ति प्रीसेट",
"disable_login": "लॉगिन अक्षम करें",
+ "download_csv": "सीएसवी डाउनलोड करें",
"duplicate_detection_job_description": "समान छवियों का पता लगाने के लिए संपत्तियों पर मशीन लर्निंग चलाएं। यह कार्यक्षमता स्मार्ट खोज पर निर्भर करती है",
"exclusion_pattern_description": "Exclusion पैटर्न आपको अपनी लाइब्रेरी को स्कैन करते समय फ़ाइलों और फ़ोल्डरों को अनदेखा करने देता है। यह उपयोगी है यदि आपके पास ऐसे फ़ोल्डर हैं जिनमें ऐसी फ़ाइलें हैं जिन्हें आप आयात नहीं करना चाहते हैं, जैसे RAW फ़ाइलें।",
"export_config_as_json_description": "वर्तमान सिस्टम कॉन्फ़िगरेशन को JSON फ़ाइल के रूप में डाउनलोड करें",
@@ -106,6 +107,7 @@
"image_thumbnail_quality_description": "थंबनेल की गुणवत्ता 1-100 तक। उच्चतर बेहतर है, लेकिन बड़ी फ़ाइलें बनाता है और ऐप की प्रतिक्रियाशीलता को कम कर सकता है।",
"image_thumbnail_title": "थंबनेल सेटिंग्स",
"import_config_from_json_description": "JSON कॉन्फ़िगरेशन फ़ाइल अपलोड करके सिस्टम कॉन्फ़िगरेशन इंपोर्ट करें",
+ "integrity_checks_checksum_files_time_limit": "समय सीमा",
"job_concurrency": "{job} समरूपता",
"job_created": "नौकरी बनाई गई",
"job_not_concurrency_safe": "यह कार्य (जॉब) समवर्ती-सुरक्षित नहीं है।",
@@ -752,7 +754,6 @@
"custom_date": "मनचाही तिथि",
"custom_locale": "कस्टम लोकेल",
"custom_locale_description": "भाषा और क्षेत्र के आधार पर दिनांक और संख्याएँ प्रारूपित करें",
- "custom_url": "कस्टम URL",
"cutoff_date_description": "पिछले कितने फ़ोटो रखें…",
"cutoff_day": "{count, plural, one {दिन} other {दिन}}",
"cutoff_year": "{count, plural, one {वर्ष} other {वर्ष}}",
diff --git a/i18n/hr.json b/i18n/hr.json
index a86d70bf2f..5af7b6790d 100644
--- a/i18n/hr.json
+++ b/i18n/hr.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Kvaliteta sličica od 1-100. Više je bolje, ali proizvodi veće datoteke i može smanjiti odziv aplikacije.",
"image_thumbnail_title": "Postavke sličica",
"import_config_from_json_description": "Učitaj konfiguraciju sustava učitavanjem JSON datoteke konfiguracije",
+ "integrity_checks_checksum_files": "Provjeri kontrolni broj datoteka",
+ "integrity_checks_checksum_files_description": "Kofiguriraj provjeru kontrolnog broja",
+ "integrity_checks_checksum_files_enable_description": "Omogući provjeru kontrolnog broja",
+ "integrity_checks_checksum_files_percentage_limit": "Postotno ograničenje",
+ "integrity_checks_checksum_files_percentage_limit_description": "Konfiguriraj maksimalni postotak, između 0.01 i 1, za koliko se provjera kontrolnog zbroja treba izvršavati u svakom intervalu.",
+ "integrity_checks_checksum_files_time_limit": "Ograničenje vremena",
+ "integrity_checks_checksum_files_time_limit_description": "Konfiguriraj maksimalno trajanje provjere kontrolnog broja u svakom intervala. (ms)",
+ "integrity_checks_missing_files": "Nedostajuće datoteke",
+ "integrity_checks_missing_files_description": "Konfiguriraj frekvenciju i upali/izgasi provjeru nedostajućih datoteka",
+ "integrity_checks_missing_files_enable_description": "Upali provjeru nedostajućih datoteka",
+ "integrity_checks_settings": "Provjere integriteta",
+ "integrity_checks_settings_description": "Upravljaj intervalima za provjeru integriteta",
+ "integrity_checks_untracked_files": "Nepraćene datoteke",
+ "integrity_checks_untracked_files_description": "Konfiguriraj frekvenciju i upali/izgasi provjeru nepraćenih datoteka",
+ "integrity_checks_untracked_files_enable_description": "Upali provjeru nepraćenih datoteka",
"job_concurrency": "{job} istovremenost",
"job_created": "Zadatak je kreiran",
"job_not_concurrency_safe": "Ovaj posao nije siguran za istovremenost.",
@@ -194,6 +209,14 @@
"maintenance_integrity_checksum_mismatch_job": "Provjera za nepodudaranje kontrolnih zbrojeva",
"maintenance_integrity_checksum_mismatch_refresh_job": "Osvježi izvještaje nepodudaranja kontrolnih zbrojeva",
"maintenance_integrity_missing_file": "Nedostaju datoteke",
+ "maintenance_integrity_missing_file_description": "Datoteke koje je Immich zabilježio u svojoj bazi podataka ali koje ne postoje na datotečnom sustavu.",
+ "maintenance_integrity_missing_file_job": "Provjeri nedostajuće datoteke",
+ "maintenance_integrity_missing_file_refresh_job": "Osvježi izvještaje o nedostajućim datotekama",
+ "maintenance_integrity_report": "Izvještaj Integriteta",
+ "maintenance_integrity_untracked_file": "Nepraćene Datoteke",
+ "maintenance_integrity_untracked_file_description": "Datoteke u Immich direktorijima koje Immich nije zabilježio.",
+ "maintenance_integrity_untracked_file_job": "Provjeri nepraćene datoteke",
+ "maintenance_integrity_untracked_file_refresh_job": "Osvježi izvještaje o nepraćenim datotekama",
"maintenance_restore_backup": "Vrati sigurnosnu kopiju",
"maintenance_restore_backup_description": "Immich će biti obrisan i vraćen iz odabrane sigurnosne kopije. Prije nastavka izradit će se nova sigurnosna kopija.",
"maintenance_restore_backup_different_version": "Ova sigurnosna kopija izrađena je s drugom verzijom Immicha!",
@@ -281,6 +304,7 @@
"oauth_mobile_redirect_uri": "Mobilnog Preusmjeravanja URI",
"oauth_mobile_redirect_uri_override": "Nadjačavanje URI-preusmjeravanja za mobilne uređaje",
"oauth_mobile_redirect_uri_override_description": "Omogući kada pružatelj OAuth ne dopušta mobilni URI, poput ''{callback}''",
+ "oauth_prompt_description": "Parametri upita (npr. select_account, login, consent)",
"oauth_role_claim": "Dodjela uloge",
"oauth_role_claim_description": "Automatski dodijeli administratorski pristup na temelju prisutnosti ove tvrdnje. Tvrdnja može sadržavati ili 'user' ili 'admin'.",
"oauth_settings": "OAuth",
@@ -307,6 +331,8 @@
"refreshing_all_libraries": "Osvježavanje svih biblioteka",
"registration": "Registracija administratora",
"registration_description": "Budući da ste prvi korisnik na sustavu, bit ćete dodijeljeni administratorsku ulogu i odgovorni ste za administrativne poslove, a dodatne korisnike kreirat ćete sami.",
+ "release_channel_release_candidate": "Kandidat za izdanje",
+ "release_channel_stable": "Stabilno",
"remove_failed_jobs": "Makni neuspješne poslove",
"require_password_change_on_login": "Zahtijevajte od korisnika promjenu lozinke pri prvoj prijavi",
"reset_settings_to_default": "Vrati postavke na zadane",
@@ -355,7 +381,7 @@
"template_settings": "Predložak Obavijesti",
"template_settings_description": "Upravljaj prilagođenim predlošcima za obavijesti",
"theme_custom_css_settings": "Prilagođeni CSS",
- "theme_custom_css_settings_description": "Kaskadni stilovi (CSS) omogućavaju prilagođavanje dizajna Immich-a.",
+ "theme_custom_css_settings_description": "Kaskadni Stilovi (CSS) omogućavaju prilagođavanje dizajna Immich-a.",
"theme_settings": "Postavke tema",
"theme_settings_description": "Upravljajte prilagodbom Immich web sučelja",
"thumbnail_generation_job": "Generirajte sličice",
@@ -401,6 +427,14 @@
"transcoding_preferred_hardware_device_description": "Odnosi se samo na VAAPI i QSV. Postavlja dri node koji se koristi za hardversko transkodiranje.",
"transcoding_preset_preset": "Preset (-preset)",
"transcoding_preset_preset_description": "Brzina kompresije. Sporije postavke proizvode manje datoteke i povećavaju kvalitetu pri ciljanju određene postavke bitratea. VP9 zanemaruje brzine iznad 'brže'.",
+ "transcoding_realtime": "Transkodiranje u stvarnom vremenu [EKSPERIMENTALNO]",
+ "transcoding_realtime_description": "Omogućuje transkodiranje u stvarnom vremenu tijekom slanja videozapisa. Omogućuje promjenu kvalitete, no može uzrokovati veće kašnjenje reprodukcije i štopanje, ovisno o mogućnostima poslužitelja.",
+ "transcoding_realtime_enabled": "Upali transkodiranje u stvarnom vremenu",
+ "transcoding_realtime_enabled_description": "Ako je izgašeno, poslužitelj će početi da odbija stvaranje novih sesija transkodiranja u stvarnom vremenu.",
+ "transcoding_realtime_resolutions": "Rezolucije",
+ "transcoding_realtime_resolutions_description": "Rezolucije ponuđene za transkodiranje u stvarnom vremenu. Veće rezolucije mogu uzrokovati probleme s reprodukcijom ako ih poslužitelj ne može dovoljno brzo transkodirati.",
+ "transcoding_realtime_video_codecs": "Video kodeci",
+ "transcoding_realtime_video_codecs_description": "Video kodeci dostupni za transkodiranje u stvarnom vremenu. Klijenti će tijekom reprodukcije odabrati najbolju opciju koju podržavaju. AV1 je učinkovitiji od HEVC-a, koji je učinkovitiji od H.264. Pri korištenju hardverskog ubrzanja, odaberite samo one kodeke koje akcelerator može kodirati. Kod softverskog transkodiranja imajte na umu da je H.264 brži od AV1, koji je brži od HEVC-a.",
"transcoding_reference_frames": "Referentne slike",
"transcoding_reference_frames_description": "Broj slika za referencu prilikom komprimiranja određene slike. Više vrijednosti poboljšavaju učinkovitost kompresije, ali usporavaju kodiranje. 0 automatski postavlja ovu vrijednost.",
"transcoding_required_description": "Samo videozapisi koji nisu u prihvaćenom formatu",
@@ -444,6 +478,8 @@
"user_settings_description": "Upravljanje korisničkim postavkama",
"user_successfully_removed": "Korisnik {email} je uspješno uklonjen.",
"users_page_description": "Administracija korisnika stranica",
+ "version_check_channel": "Kanal za izdavanje",
+ "version_check_channel_description": "Odaberite kanal izdavanja za koji želite primati obavijesti o verzijama",
"version_check_enabled_description": "Omogući provjeru verzije",
"version_check_implications": "Značajka provjere verzije oslanja se na periodičnu komunikaciju s {server}",
"version_check_settings": "Provjera verzije",
@@ -522,6 +558,7 @@
"app_bar_signout_dialog_title": "Odjavi se",
"app_download_links": "Poveznica za preuzimanje aplikacije",
"app_settings": "Postavke aplikacije",
+ "app_stores": "Trgovine Aplikacija",
"app_update_available": "Ažuriranje aplikacije je dostupno",
"appears_in": "Pojavljuje se u",
"apply_count": "Primijeni ({count, number})",
@@ -537,6 +574,7 @@
"asset_added_to_album": "Dodano u album",
"asset_adding_to_album": "Dodavanje u album…",
"asset_created": "Stavka stvorena",
+ "asset_day_count": "{date}: {count, plural, one {# stavka} few {# stavke} other {# stavki}}",
"asset_description_updated": "Opis stavke je ažuriran",
"asset_hashing": "Hashiranje…",
"asset_list_group_by_sub_title": "Grupiraj po",
@@ -559,6 +597,7 @@
"asset_viewer_settings_title": "Preglednik stavki",
"assets": "Stavke",
"assets_added_to_album_count": "{count, plural, one {Dodana # stavka} few {Dodane # stavke} other {Dodano # stavki}} u album",
+ "assets_added_to_album_partial_count": "Dodano je {successCount} od {totalCount} {totalCount, plural, one {stavke} few {stavke} other {stavki}} u album",
"assets_added_to_albums_count": "{assetTotal, plural, one {Dodana # stavka} other {Dodano # stavki}} u {albumTotal, plural, one {# album} other {# albuma}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Stavka se ne može} other {Stavke se ne mogu}} dodati u album",
"assets_cannot_be_added_to_albums": "{count, plural, one {Stavka se ne može} few {Stavke se ne mogu} other {Stavki se ne može}} dodati ni u jedan album",
@@ -586,7 +625,7 @@
"backup_album_selection_page_assets_scatter": "Stavke se mogu raspršiti po više albuma. Stoga se albumi mogu uključiti ili isključiti tijekom postupka sigurnosnog kopiranja.",
"backup_album_selection_page_select_albums": "Odabrani albumi",
"backup_album_selection_page_selection_info": "Informacije o odabiru",
- "backup_albums_sync": "Sinkronizacija sigurnosnih kopija albuma",
+ "backup_albums_sync": "Sinkronizacija Sigurnosnih Kopija Albuma",
"backup_background_service_complete_notification": "Sigurnosno kopiranje stavki dovršeno",
"backup_background_service_default_notification": "Provjera novih stavki…",
"backup_background_service_in_progress_notification": "Sigurnosno kopiranje vaših stavki…",
@@ -612,12 +651,14 @@
"backup_options": "Opcije sigurnosne kopije",
"backup_settings_subtitle": "Upravljaj postavkama slanja",
"backward": "Unazad",
+ "battery_optimization_backup_reliability": "Onemogućivanje optimizacije baterije može poboljšati pouzdanost sigurnosnog kopiranja u pozadini",
"biometric_auth_enabled": "Biometrijska autentikacija omogućena",
"biometric_locked_out": "Zaključani ste iz biometrijske autentikacije",
"biometric_no_options": "Nema dostupnih biometrijskih opcija",
"biometric_not_available": "Biometrijska autentikacija nije dostupna na ovom uređaju",
"birthdate_set_description": "Datum rođenja se koristi za izračunavanje godina ove osobe u trenutku fotografije.",
"blurred_background": "Zamućena pozadina",
+ "browse_templates": "Pregledaj predloške",
"bugs_and_feature_requests": "Bugovi i zahtjevi za značajke",
"build": "Sagradi (Build)",
"build_image": "Sagradi (Build) Image",
@@ -637,6 +678,7 @@
"cannot_update_the_description": "Nije moguće ažurirati opis",
"cast": "Prijenos na uređaj (Cast)",
"cast_description": "Konfigurirajte dostupna odredišta za prijenos (cast)",
+ "change": "Izmijeni",
"change_date": "Promjena datuma",
"change_description": "Promijeni opis",
"change_display_order": "Promijeni redoslijed prikaza",
@@ -659,6 +701,7 @@
"charging_requirement_mobile_backup": "Za izradu sigurnosne kopije u pozadini potrebno je punjenje uređaja",
"check_logs": "Provjera Zapisa",
"checksum": "Kontrolni zbroj",
+ "choose": "Izaberi",
"choose_matching_people_to_merge": "Odaberite odgovarajuće osobe za spajanje",
"city": "Grad",
"cleanup_confirm_description": "Immich je pronašao {count} stavki (stvorene prije {date}) sigurno spremljene na serveru. Ukloni lokalne kopije s ovog uređaja?",
@@ -676,6 +719,7 @@
"clear": "Očisti",
"clear_all": "Očisti sve",
"clear_all_recent_searches": "Izbriši sva nedavna pretraživanja",
+ "clear_failed_count": "Čišćenje nije uspjelo ({count})",
"clear_file_cache": "Očisti predmemoriju datoteka",
"clear_message": "Jasna poruka",
"clear_value": "Očisti vrijednost",
@@ -703,6 +747,7 @@
"comments_are_disabled": "Komentari onemogućeni",
"common_create_new_album": "Kreiraj novi album",
"completed": "Dovršeno",
+ "configuration": "Konfiguracija",
"confirm": "Potvrdi",
"confirm_admin_password": "Potvrdite lozinku administratora",
"confirm_delete_face": "Jeste li sigurni da želite izbrisati lice {name} iz stavke?",
@@ -717,6 +762,7 @@
"contain": "Sadrži",
"context": "Kontekst",
"continue": "Nastavi",
+ "control_bottom_app_bar_add_tags": "Dodaj Oznake",
"control_bottom_app_bar_delete_from_local": "Izbriši s uređaja",
"control_bottom_app_bar_edit_location": "Uredi lokaciju",
"control_bottom_app_bar_edit_time": "Uredi datum i vrijeme",
@@ -725,6 +771,7 @@
"copied_to_clipboard": "Kopirano u međuspremnik!",
"copy_error": "Greška kopiranja",
"copy_image": "Kopiraj Sliku",
+ "copy_json": "Kopiraj JSON",
"copy_link": "Kopiraj poveznicu",
"copy_link_to_clipboard": "Kopiraj poveznicu u međuspremnik",
"copy_password": "Kopiraj lozinku",
@@ -736,6 +783,7 @@
"create_album": "Kreiraj album",
"create_album_page_untitled": "Bez naslova",
"create_api_key": "Izradi API ključ",
+ "create_first_workflow": "Napravite prvi radni proces",
"create_library": "Kreiraj Biblioteku",
"create_link": "Kreiraj poveznicu",
"create_link_to_share": "Izradite vezu za dijeljenje",
@@ -752,6 +800,7 @@
"create_tag": "Stvori oznaku",
"create_tag_description": "Napravite novu oznaku. Za ugniježđene oznake unesite punu putanju oznake uključujući kose crte.",
"create_user": "Stvori korisnika",
+ "create_workflow": "Napravite radni proces",
"created": "Stvoreno",
"created_at": "Kreirano",
"creating_linked_albums": "Izradi povezane albume...",
@@ -765,7 +814,6 @@
"custom_date": "Specifičan datum",
"custom_locale": "Prilagođena lokalizacija",
"custom_locale_description": "Formatiranje datuma, vremena i brojeva na temelju selektiranog jezika i regije",
- "custom_url": "Prilagođena URL adresa",
"cutoff_date_description": "Zadrži slike od zadnjih…",
"cutoff_day": "{count, plural, one {dan} other {dana}}",
"cutoff_year": "{count, plural, one {godina} other {godine}}",
@@ -775,11 +823,15 @@
"date_after": "Datum nakon",
"date_and_time": "Datum i Vrijeme",
"date_before": "Datum prije",
+ "date_of_birth": "Datum rođenja",
"date_of_birth_saved": "Datum rođenja uspješno spremljen",
"date_range": "Razdoblje",
+ "date_time_original": "Datum/Vrijeme Originala",
"day": "Dan",
"days": "Dani",
"deduplicate_all": "Dedupliciraj Sve",
+ "default_quality_subtitle": "Kvaliteta koja se koristi pri dijeljenju. Pritisnite i držite pritisnutim gumb za dijeljenje kako biste svaki put mogli odabrati.",
+ "default_share_quality": "Zadana kvaliteta dijeljenja",
"delete": "Izbriši",
"delete_action_confirmation_message": "Jeste li sigurni da želite izbrisati ovu stavku? Ova radnja će premjestiti stavku u smeće poslužitelja i pitati vas želite li ju izbrisati lokalno",
"delete_action_prompt": "{count} izbrisano",
@@ -841,7 +893,10 @@
"downloading_asset_filename": "Preuzimanje stavke {filename}",
"downloading_from_icloud": "Preuzmi s iCloud",
"downloading_media": "Preuzimanje medija",
+ "drag_to_reorder": "Povucite za promjenu redoslijeda",
"drop_files_to_upload": "Ispustite datoteke bilo gdje za prijenos",
+ "duplicate": "Dupliciraj",
+ "duplicate_workflow": "Dupliciraj radni proces",
"duplicates": "Duplikati",
"duplicates_description": "Razriješite svaku grupu tako da naznačite koji su duplikati, ako ih ima.",
"duration": "Trajanje",
@@ -866,10 +921,19 @@
"edit_tag": "Uredi oznaku",
"edit_title": "Uredi Naslov",
"edit_user": "Uredi korisnika",
+ "edit_workflow": "Uredi radni proces",
"editor": "Urednik",
"editor_discard_edits_confirm": "Odbaci izmjene",
"editor_discard_edits_prompt": "Imate nesačuvane izmjene. Jeste li sigurni da ih želite odbaciti?",
"editor_discard_edits_title": "Odbaci izmjene?",
+ "editor_edits_applied_error": "Greška pri spremanju izmjena",
+ "editor_edits_applied_success": "Izmjene uspješno spremljene",
+ "editor_flip_horizontal": "Vodoravno zrcaljenje",
+ "editor_flip_vertical": "Vertikalno zrcaljenje",
+ "editor_handle_corner": "{corner, select, top_left {Gornja lijeva} top_right {Gornja desna} bottom_left {Donja lijeva} bottom_right {Donja desna} other {A}} kutna ručka",
+ "editor_handle_edge": "{edge, select, top {Gornja} bottom {Donja} left {Lijeva} right {Desna} other {Bilo koja}} rubna ručka",
+ "editor_orientation": "Orijentacija",
+ "editor_reset_all_changes": "Poništi promjene",
"editor_rotate_left": "Rotiraj 90° u suprotnom smjeru kazaljke na satu",
"editor_rotate_right": "Rotiraj 90° u smjeru kazaljke na satu",
"email": "E-pošta",
@@ -888,8 +952,10 @@
"enter_your_pin_code_subtitle": "Unesite svoj PIN kod za pristup zaključanoj mapi",
"error": "Greška",
"error_delete_face": "Pogreška pri brisanju lica sa stavke",
+ "error_loading_albums": "Greška prilikom učitavanja albuma",
"error_loading_image": "Pogreška pri učitavanju slike",
"error_loading_partners": "Greška prilikom učitavanja partnera:{error}",
+ "error_retrieving_asset_information": "Greška prilikom dobavljanja informacija o stavkama",
"error_saving_image": "Pogreška: {error}",
"error_tag_face_bounding_box": "Pogreška pri označavanju lica – nije moguće dohvatiti koordinate granica (bounding box)",
"error_title": "Greška - Nešto je pošlo krivo",
@@ -925,6 +991,7 @@
"failed_to_remove_product_key": "Uklanjanje ključa proizvoda nije uspjelo",
"failed_to_reset_pin_code": "Neuspješno resetiranje PIN koda",
"failed_to_stack_assets": "Slaganje stavki nije uspjelo",
+ "failed_to_tag_assets": "Označavanje stavki nije uspjelo",
"failed_to_unstack_assets": "Razdvajanje stavki nije uspjelo",
"failed_to_update_notification_status": "Neuspješno ažuriranje statusa obavijesti",
"incorrect_email_or_password": "Netočna adresa e-pošte ili lozinka",
@@ -952,6 +1019,7 @@
"unable_to_complete_oauth_login": "Nije moguće dovršiti OAuth prijavu",
"unable_to_connect": "Povezivanje nije moguće",
"unable_to_copy_to_clipboard": "Nije moguće kopirati u međuspremnik, provjerite pristupate li stranici putem https-a",
+ "unable_to_create": "Stvaranje radnog procesa nije uspjelo",
"unable_to_create_admin_account": "Nije moguće stvoriti administratorski račun",
"unable_to_create_api_key": "Nije moguće izraditi novi API ključ",
"unable_to_create_library": "Nije moguće stvoriti biblioteku",
@@ -962,6 +1030,7 @@
"unable_to_delete_exclusion_pattern": "Nije moguće izbrisati uzorak izuzimanja",
"unable_to_delete_shared_link": "Nije moguće izbrisati dijeljenu poveznicu",
"unable_to_delete_user": "Nije moguće izbrisati korisnika",
+ "unable_to_delete_workflow": "Brisanje radnog procesa nije uspjelo",
"unable_to_download_files": "Nije moguće preuzeti datoteke",
"unable_to_edit_exclusion_pattern": "Nije moguće urediti uzorak izuzimanja",
"unable_to_empty_trash": "Nije moguće isprazniti otpad",
@@ -1001,6 +1070,7 @@
"unable_to_scan_library": "Nije moguće skenirati knjižnicu",
"unable_to_set_feature_photo": "Nije moguće postaviti istaknutu fotografiju",
"unable_to_set_profile_picture": "Nije moguće postaviti profilnu sliku",
+ "unable_to_set_rating": "Nije moguće postaviti ocjenu",
"unable_to_submit_job": "Nije moguće poslati posao",
"unable_to_trash_asset": "Nije moguće premjestiti stavku u smeće",
"unable_to_unlink_account": "Nije moguće prekinuti vezu računa",
@@ -1012,6 +1082,7 @@
"unable_to_update_settings": "Nije moguće ažurirati postavke",
"unable_to_update_timeline_display_status": "Nije moguće ažurirati status prikaza vremenske trake",
"unable_to_update_user": "Nije moguće ažurirati korisnika",
+ "unable_to_update_workflow": "Nije moguće ažurirati radni proces",
"unable_to_upload_file": "Nije moguće učitati datoteku"
},
"errors_text": "Greške",
@@ -1032,15 +1103,18 @@
"export_as_json": "Izvezi kao JSON",
"export_database": "Izvezi bazu podataka",
"export_database_description": "Izvezi SQLite bazu podataka",
+ "exposure_time": "Vrijeme Ekspozicije",
"extension": "Proširenje (Extension)",
"external": "Vanjski",
"external_libraries": "Vanjske biblioteke",
"external_network": "Vanjska mreža",
"external_network_sheet_info": "Kada niste na željenoj Wi-Fi mreži, aplikacija će se povezati s poslužiteljem putem prve dostupne URL adrese s popisa ispod, redom od vrha prema dnu",
+ "f_number": "F-Broj",
"face_unassigned": "Nedodijeljeno",
"failed": "Neuspješno",
"failed_count": "Neuspjelo:{count}",
"failed_to_authenticate": "Neuspješna autentikacija",
+ "failed_to_delete_file": "Brisanje datoteke nije uspjelo",
"failed_to_load_assets": "Učitavanje stavki nije uspjelo",
"failed_to_load_folder": "Neuspjelo učitavanje mape",
"favorite": "Omiljeno",
@@ -1058,20 +1132,28 @@
"filter": "Filtar",
"filter_people": "Filtrirajte ljude",
"filter_places": "Filtriraj mjesta",
+ "filter_tags": "Filtriraj oznake",
+ "filters": "Filteri",
"first": "Prvi",
"fix_incorrect_match": "Ispravite netočno podudaranje",
+ "focal_length": "Fokalna Duljina",
"folder": "Mapa",
"folder_not_found": "Mapa nije pronađena",
"folders": "Mape",
"folders_feature_description": "Pregledavanje prikaza mape za fotografije i videozapise u sustavu datoteka",
"forgot_pin_code_question": "Zaboravili ste svoj PIN?",
"forward": "Naprijed",
+ "free_up_space": "Oslobodi Prostor",
+ "free_up_space_description": "Premjestite prenešene fotografije i videozapise u smeće na uređaju kako biste oslobodili prostor. Vaše kopije na poslužitelju ostaju sigurne.",
+ "free_up_space_settings_subtitle": "Oslobodite prostor na uređaju",
"full_path": "Puna putanja:{path}",
+ "full_path_or_folder": "Puna putanja ili mapa",
"gcast_enabled": "Google Cast",
"gcast_enabled_description": "Ova značajka učitava vanjske stavke s Googlea kako bi radila.",
"general": "Općenito",
"geolocation_instruction_location": "Kliknite na stavku s GPS koordinatama da biste koristili njezinu lokaciju ili odaberite lokaciju izravno s karte",
"get_help": "Potražite pomoć",
+ "get_people_error": "Greška prilikom dobavljanja ljudi",
"get_wifiname_error": "Nije moguće dohvatiti naziv Wi-Fi mreže. Provjerite imate li potrebna dopuštenja i jeste li povezani na Wi-Fi mrežu",
"getting_started": "Početak Rada",
"go_back": "Idi natrag",
@@ -1096,12 +1178,14 @@
"header_settings_header_name_input": "Naziv zaglavlja",
"header_settings_header_value_input": "Vrijednost zaglavlja",
"headers_settings_tile_title": "Prilagođena proxy zaglavlja",
+ "height": "Visina",
"hi_user": "Bok {name} ({email})",
"hide_all_people": "Sakrij sve ljude",
"hide_gallery": "Sakrij galeriju",
"hide_named_person": "Sakrij osobu {name}",
"hide_password": "Sakrij lozinku",
"hide_person": "Sakrij osobu",
+ "hide_schema": "Sakrij shemu",
"hide_text_recognition": "Sakrij prepoznavanje teksta",
"hide_unnamed_people": "Sakrij neimenovane osobe",
"home_page_building_timeline": "Izrada vremenske crte",
@@ -1127,12 +1211,15 @@
"import_path": "Putanja uvoza",
"in_albums": "U {count, plural, one {# album} other {# albuma}}",
"in_archive": "U arhivi",
+ "in_year": "Godine {year}",
+ "in_year_selector": "Godine",
"include_archived": "Uključi arhivirano",
"include_shared_albums": "Uključi dijeljene albume",
"include_shared_partner_assets": "Uključi zajedničke stavke partnera",
"individual_share": "Pojedinačni udio",
"individual_shares": "Pojedinačna dijeljenja",
"info": "Informacije",
+ "integrity_checks": "Provjere Integriteta",
"interval": {
"day_at_onepm": "Svaki dan u 13 sati",
"hours": "{hours, plural, one {Svaki sat} few {Svakih {hours, number} sata} other {Svakih {hours, number} sati}}",
@@ -1143,11 +1230,19 @@
"invalid_date_format": "Neispravan format datuma",
"invite_people": "Pozovite ljude",
"invite_to_album": "Pozovi u album",
+ "iso": "ISO",
"items_count": "{count, plural, one {# datoteka} other {# datoteke}}",
"jobs": "Poslovi",
"keep": "Zadrži",
+ "keep_albums": "Zadrži albume",
+ "keep_albums_count": "Čuvam {count} {count, plural, one {album} other {albuma}}",
"keep_all": "Zadrži Sve",
+ "keep_description": "Odaberite što ostaje na vašem uređaju prilikom oslobađanja prostora.",
+ "keep_favorites": "Zadrži favorite",
+ "keep_on_device": "Zadrži za uređaju",
+ "keep_on_device_hint": "Izaberite stavke koje želite zadržati na ovom uređaju",
"keep_this_delete_others": "Zadrži ovo, izbriši ostale",
+ "keeping": "Čuvam: {items}",
"kept_this_deleted_others": "Zadržana je ova stavka i {count, plural, one {izbrisana # datoteka} few {izbrisane # datoteke} other {izbrisano # datoteka}}",
"keyboard_shortcuts": "Prečaci tipkovnice",
"language": "Jezik",
@@ -1157,34 +1252,46 @@
"language_setting_description": "Odaberite željeni jezik",
"large_files": "Velike datoteke",
"last": "Zadnji",
+ "last_months": "{count, plural, one {Prošli mjesec} few {Prošla # mjeseca} other {Prošlih # mjeseci}}",
"last_seen": "Zadnji put viđen",
"latest_version": "Najnovija verzija",
"latitude": "Zemljopisna širina",
"leave": "Izađi",
"leave_album": "Napusti album",
"lens_model": "Model objektiva",
+ "less": "Manje",
"let_others_respond": "Dozvoli da drugi odgovore",
"level": "Razina",
"library": "Biblioteka",
+ "library_add_folder": "Dodaj mapu",
+ "library_edit_folder": "Uredi mapu",
"library_page_sort_asset_count": "Broj stavki",
"library_page_sort_created": "Datum kreiranja",
"library_page_sort_last_modified": "Zadnja izmjena",
"library_page_sort_title": "Naslov albuma",
"licenses": "Licence",
"light": "Svjetlo",
+ "light_theme": "Prebaci na svijetlu temu",
"like": "Sviđa mi se",
"like_deleted": "Like izbrisan",
+ "link": "Poveznica",
"link_motion_video": "Povežite videozapis pokreta",
+ "link_to_docs": "Za više informacija, pogledajte dokumentaciju.",
"link_to_oauth": "Veza na OAuth",
"linked_oauth_account": "Povezani OAuth račun",
"list": "Popis",
+ "live": "Uživo",
+ "load_more": "Učitaj Još",
"loading": "Učitavanje",
"loading_search_results_failed": "Učitavanje rezultata pretraživanja nije uspjelo",
"local": "Lokalno",
"local_asset_cast_failed": "Nije moguće emitirati stavku koja nije prenesena na poslužitelj",
"local_assets": "Lokalne stavke",
+ "local_id": "Lokalni ID",
+ "local_media_summary": "Sažetak Lokalnih Medija",
"local_network": "Lokalna mreža",
"local_network_sheet_info": "Aplikacija će se povezati s poslužiteljem putem ovog URL-a kada koristi određenu Wi-Fi mrežu",
+ "location": "Lokacija",
"location_permission": "Dozvola za lokaciju",
"location_permission_content": "Kako bi koristio značajku automatskog prebacivanja, Immich treba dozvolu za preciznu lokaciju kako bi mogao očitati naziv trenutne Wi-Fi mreže",
"location_picker_choose_on_map": "Odaberi na karti",
@@ -1194,6 +1301,7 @@
"location_picker_longitude_hint": "Unesite ovdje svoju geografsku dužinu",
"lock": "Zaključaj",
"locked_folder": "Zaključana mapa",
+ "log_detail_title": "Detalji Zapisnika",
"log_out": "Odjavi se",
"log_out_all_devices": "Odjava sa svih uređaja",
"logged_in_as": "Prijavljeni kao {user}",
@@ -1214,20 +1322,48 @@
"login_form_failed_login": "Pogreška pri prijavi, provjerite URL poslužitelja, e-mail i lozinku",
"login_form_handshake_exception": "Došlo je do greške u uspostavi veze s poslužiteljem. Omogućite podršku za samopotpisane certifikate u postavkama ako koristite takav certifikat.",
"login_form_password_hint": "lozinka",
- "login_form_server_empty": "Unesite URL poslužitelja.",
- "login_form_server_error": "Nije moguće povezivanje s poslužiteljem.",
- "login_has_been_disabled": "Prijava je onemogućena.",
+ "login_form_server_empty": "Unesite URL poslužitelja",
+ "login_form_server_error": "Nije moguće povezivanje s poslužiteljem",
+ "login_has_been_disabled": "Prijava je onemogućena",
"login_password_changed_error": "Došlo je do pogreške pri ažuriranju lozinke",
"login_password_changed_success": "Lozinka je uspješno ažurirana",
"logout_all_device_confirmation": "Jeste li sigurni da želite odjaviti sve uređaje?",
"logout_this_device_confirmation": "Jeste li sigurni da se želite odjaviti s ovog uređaja?",
+ "logs": "Zapisnici",
"longitude": "Zemljopisna dužina",
"look": "Izgled",
"loop_videos": "Ponavljajte videozapise",
"loop_videos_description": "Omogućite automatsko ponavljanje videozapisa u pregledniku detalja.",
"main_branch_warning": "Koristite razvojnu verziju; strogo preporučamo korištenje izdane verzije!",
"main_menu": "Glavni izbornik",
+ "maintenance_action_restore": "Vraćanje Baze Podataka",
+ "maintenance_description": "Immich je prebačen u način rada za održavanje.",
+ "maintenance_end": "Završi način održavanja",
+ "maintenance_logged_in_as": "Trenutno ste prijavljeni kao {user}",
+ "maintenance_restore_from_backup": "Vrati iz Sigurnosne Kopije",
+ "maintenance_restore_library": "Vratite Svoju Knjižnicu",
+ "maintenance_restore_library_confirm": "Ako ovo izgleda ispravno, nastavite s vraćanjem sigurnosne kopije!",
+ "maintenance_restore_library_description": "Vraćanje Baze Podataka",
+ "maintenance_restore_library_folder_has_files": "{folder} ima {count, plural, one {# mapu} few {# mape} other {# mapa}}",
+ "maintenance_restore_library_folder_no_files": "U mapi {folder} nedostaju datoteke!",
+ "maintenance_restore_library_folder_pass": "omogućeno čitanje i pisanje",
+ "maintenance_restore_library_folder_read_fail": "nije omogućeno čitanje",
+ "maintenance_restore_library_folder_write_fail": "nije omogućeno pisanje",
+ "maintenance_restore_library_hint_missing_files": "Možda vam nedostaju važne datoteke",
+ "maintenance_restore_library_hint_regenerate_later": "Možete ovo kasnije ponovno generirati u postavkama",
+ "maintenance_restore_library_hint_storage_template_missing_files": "Koristite predložak za pohranu? Možda vam nedostaju datoteke",
+ "maintenance_restore_library_loading": "Učitavanje provjera cjelovitosti i heuristike…",
+ "maintenance_task_backup": "Izrada sigurnosne kopije postojeće baze podataka…",
+ "maintenance_task_migrations": "Pokretanje migracija baze podataka…",
+ "maintenance_task_restore": "Vraćanje odabrane sigurnosne kopije…",
+ "maintenance_task_rollback": "Vraćanje nije uspjelo, povratak na prijašnju točku vraćanja…",
+ "maintenance_title": "Privremeno Nedostupno",
"make": "Proizvođač",
+ "manage_geolocation": "Upravljaj Lokacijom",
+ "manage_media_access_rationale": "Ovo je dopuštenje potrebno za ispravno premještanje stavki u smeće i njihovo vraćanje iz njega.",
+ "manage_media_access_settings": "Otvori postavke",
+ "manage_media_access_subtitle": "Dopustite aplikaciji Immich da premješta i upravlja multimedijskim datotekama.",
+ "manage_media_access_title": "Pristup Upravljanju Medijima",
"manage_sharing_with_partners": "Upravljajte dijeljenjem s partnerima",
"manage_the_app_settings": "Upravljajte postavkama aplikacije",
"manage_your_account": "Upravljajte svojim računom",
@@ -1239,6 +1375,7 @@
"map_location_picker_page_use_location": "Koristi ovu lokaciju",
"map_location_service_disabled_content": "Usluga lokacije mora biti omogućena za prikaz stavki s vaše trenutne lokacije. Želite li je sada omogućiti?",
"map_location_service_disabled_title": "Usluga lokacije onemogućena",
+ "map_marker_for_image": "Oznaka na karti za sliku uslikanu u gradu {city}, {country}",
"map_marker_with_image": "Oznaka karte sa slikom",
"map_no_location_permission_content": "Potrebno je dopuštenje za lokaciju kako bi se prikazale stavke s vaše trenutne lokacije. Želite li ga sada omogućiti?",
"map_no_location_permission_title": "Dopuštenje za lokaciju odbijeno",
@@ -1256,6 +1393,38 @@
"marked_all_as_read": "Označeno sve kao pročitano",
"matches": "Podudaranja",
"matching_assets": "Odgovarajuće stavke",
+ "media_chrome": {
+ "auto": "Automatski",
+ "captions": "Titlovi",
+ "captions_off": "Izgašeni",
+ "closed_captions": "titlovi",
+ "decode_error": "Pogreška pri dekodiranju",
+ "disable_captions": "Onemogući titlove",
+ "enable_captions": "Omogući titlove",
+ "enter_fullscreen_mode": "Prijeđi na prikaz preko cijelog zaslona",
+ "exit_fullscreen_mode": "Izađi iz prikaza preko cijelog zaslona",
+ "loop": "Petlja",
+ "media_error_description": "Pogreška medija uzrokovala je prekid reprodukcije. Medij je možda oštećen ili vaš preglednik ne podržava ovaj format.",
+ "media_loading": "učitavanje medija",
+ "mute": "Isključi zvuk",
+ "network_error": "Pogreška mreže",
+ "network_error_description": "Pogreška u mreži uzrokovala je neuspjeh preuzimanja medijskog sadržaja.",
+ "not_supported_error": "Izvor Nije Podržan",
+ "playback_rate": "Brzina reprodukcije",
+ "playback_rate_current": "trenutna brzina reprodukcije",
+ "playback_rate_value": "Brzina reprodukcije {playbackRate}",
+ "playback_time": "vrijeme reprodukcije",
+ "quality": "Kvaliteta",
+ "second": "sekunda",
+ "seconds": "sekundi",
+ "time_value_of_total_time": "{currentTime} od {totalTime}",
+ "time_value_remaining": "{time} preostalo",
+ "unmute": "Uključi zvuk",
+ "unsupported_error_description": "Došlo je do nepoznate pogreške. Greška je na poslužitelju ili mreži, ili vaš preglednik ne podržava ovaj format.",
+ "video_not_loaded_unknown_time": "videozapis nije učitan, nepoznato vrijeme.",
+ "video_player": "videoplayer",
+ "volume": "jačina zvuka"
+ },
"media_type": "Vrsta medija",
"memories": "Sjećanja",
"memories_all_caught_up": "Sve ste pregledali",
@@ -1272,23 +1441,36 @@
"merge_people_prompt": "Želite li spojiti ove ljude? Ova radnja je nepovratna.",
"merge_people_successfully": "Uspješno spajanje osoba",
"merged_people_count": "{count, plural, one {# Spojena osoba} other {# Spojene osobe}}",
+ "minFaces": "Minimalni broj lica",
+ "minFaces_description": "Minimalni broj prepoznatih lica koji je potreban da bi se osoba prikazala",
"minimize": "Minimiziraj",
"minute": "Minuta",
"minutes": "Minute",
"missing": "Nedostaje",
+ "mobile_app": "Mobilna Aplikacija",
+ "mobile_app_download_onboarding_note": "Preuzmi prateću mobilnu aplikaciju koristeći sljedeće opcije",
"model": "Model",
+ "modify_date": "Datum Izmjene",
"month": "Mjesec",
"more": "Više",
+ "motion": "Pokret",
"move": "Pomakni",
"move_off_locked_folder": "Premjesti iz zaključane mape",
+ "move_to": "Premjesti u",
+ "move_to_device_trash": "Premjesti u smeće uređaja",
"move_to_lock_folder_action_prompt": "{count} dodano u zaključanu mapu",
"move_to_locked_folder": "Premjesti u zaključanu mapu",
"move_to_locked_folder_confirmation": "Ove fotografije i videozapis bit će uklonjeni iz svih albuma i bit će vidljivi samo iz zaključane mape",
"moved_to_trash": "Premješteno u smeće",
"mute_memories": "Isključi uspomene",
"my_albums": "Moji albumi",
+ "my_immich_description": "Kopiraj trenutnu stranicu kao My Immich poveznicu",
+ "my_immich_title": "My Immich poveznica",
"name": "Ime",
"name_or_nickname": "Ime ili nadimak",
+ "name_required": "Ime je obavezno",
+ "navigate": "Navigacija",
+ "navigate_to_time": "Idi na Vrijeme",
"network_requirement_photos_upload": "Koristi mobilne podatke za sigurnosno kopiranje fotografija",
"network_requirement_videos_upload": "Koristi mobilne podatke za sigurnosno kopiranje videozapisa",
"network_requirements": "Mrežni zahtjevi",
@@ -1298,6 +1480,7 @@
"never": "Nikada",
"new_album": "Novi Album",
"new_api_key": "Novi API ključ",
+ "new_feature": "Nova Značajka",
"new_password": "Nova lozinka",
"new_person": "Nova osoba",
"new_pin_code": "Novi PIN kod",
@@ -1309,11 +1492,12 @@
"next": "Sljedeće",
"next_memory": "Sljedeće sjećanje",
"no": "Ne",
+ "no_albums_found": "Albumi nisu pronađeni",
"no_albums_message": "Izradite album za organiziranje svojih fotografija i videozapisa",
"no_albums_with_name_yet": "Čini se da još nemate nijedan album s ovim imenom.",
"no_albums_yet": "Čini se da još nemate nijedan album.",
"no_archived_assets_message": "Arhivirajte fotografije i videozapise kako biste ih sakrili iz prikaza fotografija",
- "no_assets_message": "KLIKNITE DA PRENESETE SVOJU PRVU FOTOGRAFIJU",
+ "no_assets_message": "Kliknite za prijenos svoje prve fotografije",
"no_assets_to_show": "Nema stavki za prikaz",
"no_cast_devices_found": "Nisu pronađeni uređaji za reprodukciju",
"no_checksum_local": "Nema dostupnog kontrolnog zbroja - nije moguće dohvatiti lokalne stavke",
@@ -1334,12 +1518,18 @@
"no_results": "Nema rezultata",
"no_results_description": "Pokušajte sa sinonimom ili općenitijom ključnom riječi",
"no_shared_albums_message": "Stvorite album za dijeljenje fotografija i videozapisa s osobama u svojoj mreži",
+ "no_steps": "Nisu još dodani koraci",
+ "none": "Ništa",
"not_allowed": "Zabranjeno",
"not_available": "N/A",
"not_in_any_album": "Ni u jednom albumu",
"not_selected": "Nije odabrano",
"notes": "Bilješke",
"nothing_here_yet": "Ovdje još nema ničega",
+ "notification_backup_reliability": "Omogućite obavijesti za poboljšanje pouzdanosti sigurnosne kopije u pozadini",
+ "notification_enabled_list_tile_content": "Immich koristi obavijesti za sigurnosno kopiranje u pozadini. Upravljajte njima u postavkama uređaja.",
+ "notification_enabled_list_tile_open_button": "Otvori postavke",
+ "notification_enabled_list_tile_title": "Obavijesti uključene",
"notification_permission_dialog_content": "Da biste omogućili obavijesti, idite u Postavke i odaberite dopusti.",
"notification_permission_list_tile_content": "Dodijelite dopuštenje za omogućavanje obavijesti.",
"notification_permission_list_tile_enable_button": "Omogući obavijesti",
@@ -1349,6 +1539,10 @@
"notifications_setting_description": "Upravljanje obavijestima",
"oauth": "OAuth",
"obtainium_configurator": "Obtainium konfigurator",
+ "obtainium_configurator_instructions": "Koristite Obtainium za instalaciju i ažuriranje Android aplikacije izravno sa Immich GitHub izdanja. Napravite API ključ i odaberite varijantu kako biste kreirali poveznicu za Obtainium konfiguraciju",
+ "ocr": "OCR",
+ "ocr_body": "Immich sada čita tekst unutar vaših fotografija, pa ih možete pretraživati prema onome što na njima piše.",
+ "ocr_title": "Pretražite tekst u svojim fotografijama",
"official_immich_resources": "Službeni Immich resursi",
"offline": "Izvan mreže",
"offset": "Pomak",
@@ -1365,18 +1559,26 @@
"online": "Dostupan (Online)",
"only_favorites": "Samo omiljeno",
"open": "Otvori",
+ "open_calendar": "Otvori kalendar",
+ "open_in_browser": "Otvori u pregledniku",
+ "open_in_immich_body": "Postavite Immich kao svoju Android galeriju kako biste mogli otvarali fotografije izravno iz drugih aplikacija.",
+ "open_in_immich_title": "Otvori fotografije u Immich",
"open_in_map_view": "Otvori u prikazu karte",
"open_in_openstreetmap": "Otvori u OpenStreetMap",
"open_the_search_filters": "Otvorite filtre pretraživanja",
"options": "Opcije",
"or": "ili",
+ "organize_into_albums": "Organiziraj u albume",
+ "organize_into_albums_description": "Organiziraj postojeće fotografije u albume koristeći trenutne postavke sinkronizacije",
"organize_your_library": "Organizirajte svoju knjižnicu",
+ "orientation": "Orijentacija",
"original": "originalno",
"other": "Ostalo",
"other_devices": "Ostali uređaji",
"other_variables": "Ostale varijable",
"owned": "Vlasništvo",
"owner": "Vlasnik",
+ "page": "Stranica",
"partner": "Partner",
"partner_can_access": "{partner} može pristupiti",
"partner_can_access_assets": "Sve vaše fotografije i videozapisi osim onih u arhivi i smeću",
@@ -1421,11 +1623,14 @@
"person_age_years": "{years, plural, few {# godine} other {# godina}} staro",
"person_birthdate": "Rođen/a {date}",
"person_hidden": "{name}{hidden, select, true { (skriveno)} other {}}",
+ "person_recognized": "Osoba prepoznata",
"photo_shared_all_users": "Čini se da ste svoje fotografije podijelili sa svim korisnicima ili nemate nijednog korisnika s kojim biste ih podijelili.",
"photos": "Fotografije",
"photos_and_videos": "Fotografije i videozapisi",
"photos_from_previous_years": "Fotografije iz prethodnih godina",
"pick_a_location": "Odaberite lokaciju",
+ "pick_custom_range": "Prilagođeni raspon",
+ "pick_date_range": "Odaberite raspon datuma",
"pin_code_changed_successfully": "PIN kod je uspješno promijenjen",
"pin_code_reset_successfully": "PIN kod je uspješno poništen",
"pin_code_setup_successfully": "PIN kod je uspješno postavljen",
@@ -1437,8 +1642,12 @@
"play_memories": "Pokreni sjećanja",
"play_motion_photo": "Reproduciraj Pokretnu fotografiju",
"play_or_pause_video": "Reproducirajte ili pauzirajte video",
+ "play_original_video": "Reproduciraj izvorni videozapis",
"play_original_video_setting_description": "Preferirajte reprodukciju originalnih videozapisa umjesto transkodiranih videozapisa. Ako originalna stavka nije kompatibilna, možda se neće ispravno reproducirati.",
+ "play_transcoded_video": "Reproduciraj transkodirani videozapis",
"please_auth_to_access": "Molimo autentificirajte se za pristup",
+ "plugin_method_filter_type": "Filter",
+ "plugin_method_filter_type_description": "Ova metoda može filtrirati događaje i uvjetno spriječiti izvršavanje sljedećih koraka",
"port": "Port",
"preferences_settings_subtitle": "Upravljajte postavkama aplikacije",
"preferences_settings_title": "Postavke",
@@ -1459,6 +1668,7 @@
"profile_drawer_readonly_mode": "Omogućen je način rada samo za čitanje. Dugo pritisnite ikonu korisničkog avatara za izlaz.",
"profile_image_of_user": "Profilna slika korisnika {user}",
"profile_picture_set": "Profilna slika postavljena.",
+ "projection_type": "Vrsta Projekcije",
"public_album": "Javni album",
"public_share": "Javno dijeljenje",
"purchase_account_info": "Podržava softver",
@@ -1494,9 +1704,10 @@
"purchase_settings_server_activated": "Ključem proizvoda poslužitelja upravlja administrator",
"query_asset_id": "Ispitaj ID stavke",
"queue_status": "Stavljanje u red {count}/{total}",
+ "rate_asset": "Ocjeni Stavku",
"rating": "Broj zvjezdica",
"rating_clear": "Obriši ocjenu",
- "rating_count": "{count, plural, one {# zvijezda} other {# zvijezde}}",
+ "rating_count": "{count, plural, =0 {Bez ocjene} one {# zvijezda} few {# zvijezde} other {# zvijezda}}",
"rating_description": "Prikaži EXIF ocjenu na info ploči",
"reaction_options": "Mogućnosti reakcije",
"read_changelog": "Pročitajte Dnevnik promjena",
@@ -1510,7 +1721,10 @@
"recent": "Nedavno",
"recent_searches": "Nedavne pretrage",
"recently_added": "Nedavno dodano",
- "recently_added_page_title": "Nedavno dodano",
+ "recently_added_body": "Izravno pristupite svemu što ste nedavno dodali preko namjenske stranice.",
+ "recently_added_description": "Pregledajte svoje stavke poredane po vremenu prijenosa na Immich",
+ "recently_added_page_title": "Nedavno Dodano",
+ "recently_added_title": "Nedavno dodano",
"recently_taken": "Nedavno snimljeno",
"refresh": "Osvježi",
"refresh_encoded_videos": "Osvježite kodirane videozapise",
@@ -1524,11 +1738,13 @@
"regenerating_thumbnails": "Obnavljanje sličica",
"remote": "Udaljeno",
"remote_assets": "Udaljene stavke",
+ "remote_media_summary": "Sažetak Daljinskih Medija",
"remove": "Ukloni",
"remove_assets_album_confirmation": "Jeste li sigurni da želite ukloniti {count, plural, one {# stavku} few {# stavke} other {# stavki}} iz albuma?",
"remove_assets_shared_link_confirmation": "Jeste li sigurni da želite ukloniti {count, plural, one {# stavku} few {# stavke} other {# stavki}} iz ove dijeljene veze?",
"remove_assets_title": "Ukloniti stavke?",
"remove_custom_date_range": "Ukloni prilagođeni datumski raspon",
+ "remove_filter": "Ukloni filter",
"remove_from_album": "Ukloni iz albuma",
"remove_from_album_action_prompt": "{count} uklonjeno iz albuma",
"remove_from_favorites": "Ukloni iz favorita",
@@ -1557,9 +1773,13 @@
"reset_pin_code_description": "Ako ste zaboravili svoj PIN kod, možete kontaktirati administratora poslužitelja da ga resetira",
"reset_pin_code_with_password": "Uvijek možete resetirati svoj PIN kod pomoću svoje lozinke",
"reset_sqlite": "Resetiraj SQLite bazu podataka",
- "reset_sqlite_confirmation": "Jeste li sigurni da želite resetirati SQLite bazu podataka? Morat ćete se odjaviti i ponovno prijaviti kako biste ponovno sinkronizirali podatke",
+ "reset_sqlite_clear_app_data": "Izbriši Podatke",
+ "reset_sqlite_confirmation": "Jeste li sigurni da želite izbrisati podatke aplikacije? Time ćete ukloniti sve postavke i bit ćete odjavljeni.",
+ "reset_sqlite_confirmation_note": "Napomena: Nakon brisanja morat ćete ponovno pokrenuti aplikaciju.",
+ "reset_sqlite_done": "Podaci aplikacije su izbrisani. Molimo vas da ponovno pokrenete Immich i ponovno se prijavite.",
"reset_sqlite_success": "SQLite baza podataka je uspješno resetirana",
"reset_to_default": "Vrati na zadano",
+ "resolution": "Rezolucija",
"resolve_duplicates": "Riješite duplikate",
"resolved_all_duplicates": "Razriješi sve duplikate",
"restore": "Oporavi",
@@ -1567,6 +1787,7 @@
"restore_user": "Vrati korisnika",
"restored_asset": "Obnovljena stavka",
"resume": "Nastavi",
+ "resume_paused_jobs": "Nastavi {count, plural, one {# pauzirani posao} few {# pauzirana posla} other {# pauziranih poslova}}",
"review_duplicates": "Pregledajte duplikate",
"review_large_files": "Pregledaj velike datoteke",
"role": "Uloga",
@@ -1574,14 +1795,20 @@
"role_viewer": "Gledatelj",
"running": "U tijeku",
"save": "Spremi",
+ "saved": "Spremljeno",
"saved_api_key": "Spremljen API ključ",
"saved_profile": "Spremljen profil",
"saved_settings": "Spremljene postavke",
"say_something": "Reci nešto",
"scaffold_body_error_occurred": "Došlo je do pogreške",
+ "scaffold_body_error_unrecoverable": "Došlo je do nepopravljive pogreške. Podijelite pogrešku i trag stoga na Discord ili GitHub kako bismo vam mogli pomoći. Ako vam se tako savjetuje, možete izbrisati podatke aplikacije u nastavku.",
+ "scan": "Skeniraj",
"scan_all_libraries": "Skeniraj sve Knjižnice",
"scan_library": "Skeniraj",
+ "scanning": "Skeniranje",
"scanning_for_album": "Skeniranje albuma...",
+ "screencast_mode_description": "Prikaži indikatore tipkovnice i miša na zaslonu",
+ "screencast_mode_title": "Uključi/isključi način prikazivanja zaslona",
"search": "Pretraživanje",
"search_albums": "Traži albume",
"search_by_context": "Pretraživanje po kontekstu",
@@ -1589,6 +1816,10 @@
"search_by_description_example": "Planinarenje u Sapi",
"search_by_filename": "Pretražujte prema nazivu datoteke ili ekstenziji",
"search_by_filename_example": "npr. IMG_1234.JPG ili PNG",
+ "search_by_full_path": "Pretraži prema punoj putanji ili mapi",
+ "search_by_full_path_example": "/Ivan/Projekti/3D_Printanje/2026-07-01 - možete pretražiti Projekti, 3D, Printanje, 2026 itd.",
+ "search_by_ocr": "Pretraživanje pomoću OCR-a",
+ "search_by_ocr_example": "Kava",
"search_camera_lens_model": "Pretraži model objektiva...",
"search_camera_make": "Pretražite marku kamere...",
"search_camera_model": "Pretražite model kamere...",
@@ -1607,6 +1838,8 @@
"search_filter_media_type": "Vrsta medija",
"search_filter_media_type_title": "Odaberi vrstu medija",
"search_filter_people_title": "Odaberi osobe",
+ "search_filter_star_rating": "Ocjena u Zvjezdicama",
+ "search_filter_tags_title": "Odaberi oznake",
"search_for": "Traži",
"search_for_existing_person": "Potražite postojeću osobu",
"search_no_more_result": "Nema više rezultata",
@@ -1629,17 +1862,24 @@
"second": "Drugi",
"see_all_people": "Vidi sve ljude",
"select": "Odaberi",
+ "select_album": "Odaberi album",
"select_album_cover": "Odaberite omot albuma",
+ "select_albums": "Odaberi albume",
"select_all": "Odaberi sve",
"select_all_duplicates": "Odaberi sve duplikate",
"select_avatar_color": "Odaberi boju avatara",
+ "select_count": "{count, plural, one {Odaberi #} other {Odaberi #}}",
+ "select_cutoff_date": "Odaberi granični datum",
"select_face": "Odaberi lice",
"select_featured_photo": "Odaberi istaknutu fotografiju",
"select_from_computer": "Odaberi s računala",
"select_keep_all": "Odaberi zadrži sve",
"select_new_face": "Odaberi novo lice",
+ "select_people": "Odaberi ljude",
+ "select_person": "Odaberi osobu",
"select_person_to_tag": "Odaberite osobu za označavanje",
"select_photos": "Odaberi fotografije",
+ "select_quality": "Odaberi kvalitetu",
"select_trash_all": "Odaberi izbriši sve",
"selected": "Odabrano",
"selected_count": "{count, plural, =1 {# odabran} few {# odabrana} other {# odabranih}}",
@@ -1665,6 +1905,9 @@
"set_profile_picture": "Postavi profilnu sliku",
"set_slideshow_to_fullscreen": "Postavi prezentaciju na cijeli zaslon",
"set_stack_primary_asset": "Postavi kao glavnu stavku",
+ "setting_image_navigation_enable_subtitle": "Ako je omogućeno, možete prijeći na prethodnu ili sljedeću sliku dodirivanjem krajnje lijeve ili krajnje desne četvrtine zaslona.",
+ "setting_image_navigation_enable_title": "Dodirnite za Navigiranje",
+ "setting_image_navigation_title": "Navigacija Slikama",
"setting_image_viewer_help": "Preglednik detalja prvo učitava malu sličicu, zatim učitava pregled srednje veličine (ako je omogućen), te na kraju učitava original (ako je omogućen).",
"setting_image_viewer_original_subtitle": "Omogućite za učitavanje originalne slike pune rezolucije (velika!). Onemogućite za smanjenje potrošnje podataka (i mrežne i na predmemoriji uređaja).",
"setting_image_viewer_original_title": "Učitaj originalnu sliku",
@@ -1686,6 +1929,10 @@
"share": "Podijeli",
"share_dialog_preparing": "Priprema...",
"share_link": "Podijeli Link",
+ "share_original": "Koristi izvornu (velika)",
+ "share_preview": "Koristi sličicu (malu)",
+ "share_quality_body": "Pritisni i drži tipku za dijeljenje kako biste odabrali kvalitetu slike prije dijeljenja.",
+ "share_quality_title": "Odaberi kvalitetu dijeljenja",
"shared": "Podijeljeno",
"shared_album_activities_input_disable": "Komentiranje je onemogućeno",
"shared_album_activity_remove_content": "Želite li izbrisati ovu aktivnost?",
@@ -1745,13 +1992,17 @@
"show_in_timeline": "Prikaži na vremenskoj crti",
"show_in_timeline_setting_description": "Prikaži fotografije i videozapise ovog korisnika na vašoj vremenskoj crti",
"show_keyboard_shortcuts": "Prikaži tipkovničke prečace",
+ "show_less": "Prikaži manje",
"show_metadata": "Prikaži metapodatke",
+ "show_more_fields": "{count, plural, one {Pokaži još # polje} other {Pokaži još # polja}}",
"show_or_hide_info": "Prikaži ili sakrij informacije",
"show_password": "Prikaži lozinku",
"show_person_options": "Prikaži opcije osobe",
"show_progress_bar": "Prikaži traku napretka",
+ "show_schema": "Prikaži shemu",
"show_search_options": "Prikaži opcije pretraživanja",
"show_shared_links": "Prikaži dijeljene poveznice",
+ "show_slideshow_metadata_overlay": "Prikaži sloj s informacijama o slici",
"show_slideshow_transition": "Prikaži prijelaz prezentacije",
"show_supporter_badge": "Značka podržavatelja",
"show_supporter_badge_description": "Prikaži značku podržavatelja",
@@ -1763,11 +2014,21 @@
"sign_out": "Odjava",
"sign_up": "Registriraj se",
"size": "Veličina",
+ "skip": "Preskoči",
"skip_to_content": "Preskoči na sadržaj",
"skip_to_folders": "Preskoči na mape",
"skip_to_tags": "Preskoči na oznake",
"slideshow": "Prezentacija",
+ "slideshow_body": "Opustite se i gledajte svoje fotografije u dijaprojekciji preko cijelog zaslona.",
+ "slideshow_metadata_overlay_mode": "Sadržaj prekrivanja",
+ "slideshow_metadata_overlay_mode_description_only": "Samo opis",
+ "slideshow_metadata_overlay_mode_full": "Puni",
+ "slideshow_repeat": "Ponavljaj dijaprojekciju",
+ "slideshow_repeat_description": "Vrati se na početak nakon završetka dijaprojekcije",
"slideshow_settings": "Postavke prezentacije",
+ "slideshow_title": "Dijaprojekcija",
+ "smart_album": "Pametni album",
+ "some_assets_already_have_a_location_warning": "Neke od odabranih stavki već imaju lokaciju",
"sort_albums_by": "Sortiraj albume po...",
"sort_created": "Datum kreiranja",
"sort_items": "Broj stavki",
@@ -1788,6 +2049,10 @@
"start_date_before_end_date": "Početni datum mora biti prije krajnjeg datuma",
"state": "Stanje",
"status": "Status",
+ "step_delete": "Izbriši korak",
+ "step_delete_confirm": "Jeste li sigurni da želite izbrisati ovaj korak?",
+ "step_details": "Detalji koraka",
+ "steps": "Koraci",
"stop_casting": "Zaustavi reprodukciju",
"stop_motion_photo": "Zaustavi pokretnu fotografiju",
"stop_photo_sharing": "Prestati dijeliti svoje fotografije?",
@@ -1804,6 +2069,7 @@
"support": "Podrška",
"support_and_feedback": "Podrška i povratne informacije",
"support_third_party_description": "Vaša Immich instalacija je pakirana od strane treće strane. Problemi koje doživljavate mogu biti uzrokovani tim paketom, stoga vas molimo da probleme prvo prijavite njima putem poveznica u nastavku.",
+ "supporter": "Podržavatelj",
"swap_merge_direction": "Zamijeni smjer spajanja",
"sync": "Sink.",
"sync_albums": "Sinkroniziraj albume",
@@ -1812,9 +2078,12 @@
"sync_status": "Status sinkronizacije",
"sync_status_subtitle": "Pregledajte i upravljajte sistemom sinkronizacije",
"sync_upload_album_setting_subtitle": "Kreiraj i prenesi svoje fotografije i videozapise u odabrane albume na Immichu",
+ "system_theme": "Tema sustava",
+ "system_theme_command_description": "Koristi sistemsku temu ({value})",
"tag": "Oznaka",
"tag_assets": "Označi stavke",
"tag_created": "Kreirana oznaka: {tag}",
+ "tag_face": "Označi lice",
"tag_feature_description": "Pregledavanje fotografija i videozapisa grupiranih po logičkim temama oznaka",
"tag_people": "Označi osobe",
"tag_updated": "Ažurirana oznaka: {tag}",
@@ -1834,6 +2103,7 @@
"theme_setting_primary_color_title": "Primarna boja",
"theme_setting_system_primary_color_title": "Koristi boju sustava",
"theme_setting_system_theme_switch": "Automatski (Prati postavke sustava)",
+ "then": "Onda",
"they_will_be_merged_together": "Oni ću biti spojeni zajedno",
"third_party_resources": "Resursi trećih strana",
"time": "Vrijeme",
@@ -1862,6 +2132,13 @@
"trash_page_delete_all": "Izbriši sve",
"trash_page_info": "Stavke u smeću bit će trajno izbrisane nakon {days} dana",
"trashed_items_will_be_permanently_deleted_after": "Stavke bačene u smeće trajno će se izbrisati nakon {days, plural, one {# day} other {# days}}.",
+ "trigger": "Okidač",
+ "trigger_asset_metadata_extraction": "Ekstrakcija Metapodataka iz Stavki",
+ "trigger_asset_metadata_extraction_description": "Pokrene se kada se izdvoje EXIF metapodatci stavke",
+ "trigger_asset_uploaded": "Prijenos Stavke",
+ "trigger_asset_uploaded_description": "Pokrene se kada se prenese nova stavka",
+ "trigger_person_recognized": "Osoba Prepoznata",
+ "trigger_person_recognized_description": "Pokrene se kada se osoba prepozna",
"troubleshoot": "Rješavanje problema",
"type": "Vrsta",
"unable_to_change_pin_code": "Nije moguće promijeniti PIN kod",
@@ -1876,6 +2153,8 @@
"unhide_person": "Prikaži osobu",
"unknown": "Nepoznato",
"unknown_country": "Nepoznata država",
+ "unknown_date": "Nepoznat datum",
+ "unknown_schema": "Nepoznata shema",
"unknown_year": "Nepoznata godina",
"unlimited": "Neograničeno",
"unlink_motion_video": "Odpoveži pokretni videozapis",
@@ -1891,6 +2170,8 @@
"unstack": "Razdvoji",
"unstack_action_prompt": "{count} razloženo",
"unstacked_assets_count": "{count, plural, one {Razdvojena # stavka} few {Razvdvojene # stavke} other {Razdvojeno # stavki}}",
+ "unsupported_field_type": "Nepodržana vrsta polja",
+ "unsupported_file_type": "Datoteka {file} se ne može učitati jer njezina vrsta {type} nije podržana.",
"untagged": "Bez oznaka",
"up_next": "Sljedeće",
"update_location_action_prompt": "Ažuriraj lokaciju ({count, plural, one {# odabrane stavke} few {# odabrane stavke} other {# odabranih stavki}}) s:",
@@ -1898,7 +2179,9 @@
"updated_password": "Lozinka ažurirana",
"upload": "Prijenos",
"upload_concurrency": "Istovremeni prijenosi",
+ "upload_day_count": "{date}: {count, plural, one {# prijenos} other {# prijenosa}}",
"upload_details": "Detalji prijenosa",
+ "upload_error_with_count": "Pogreška pri prijenosu za {count, plural, one {# stavku} few {# stavke} other {# stavki}}",
"upload_errors": "Prijenos završen s {count, plural, one {# greškom} few {# greške} other {# grešaka}}, osvježite stranicu da biste vidjeli nove prenesene stavke.",
"upload_finished": "Prijenos završen",
"upload_progress": "Preostalo {remaining, number} - Obrađeno {processed, number}/{total, number}",
@@ -1907,14 +2190,21 @@
"upload_status_errors": "Greške",
"upload_status_uploaded": "Preneseno",
"upload_success": "Prijenos uspješan, osvježite stranicu da biste vidjeli nove prenesene stavke.",
+ "upload_to_album_body": "Za korisnike koji ne koriste ručni prijenos: sada možete prenjeti lokalne fotografije izravno u album tijekom samog prijenosa - više nema potrebe za naknadnim organiziranjem fotografija u album nakon prijenosa.",
+ "upload_to_album_title": "Prenesi izravno u album",
"upload_to_immich": "Prenesi na Immich ({count})",
"uploading": "Prijenos u tijeku",
"uploading_media": "Prijenos medija",
+ "uploads": "Prijenosi",
+ "uploads_count": "{count, plural, one {# prijenos} other {# prijenosa}}",
"url": "URL",
"usage": "Korištenje",
"use_biometric": "Koristi biometriju",
- "use_current_connection": "koristi trenutnu vezu",
+ "use_browser_locale": "Koristi lokalne postavke preglednika",
+ "use_browser_locale_description": "Oblikujte datume, vremena i brojeve prema postavkama lokalizacije vašeg preglednika",
+ "use_current_connection": "Koristi trenutnu vezu",
"use_custom_date_range": "Koristi prilagođeni raspon datuma",
+ "use_template": "Koristi predložak",
"user": "Korisnik",
"user_has_been_deleted": "Ovaj korisnik je izbrisan.",
"user_id": "ID korisnika",
@@ -1942,6 +2232,7 @@
"video": "Videozapis",
"video_hover_setting": "Reproduciraj sličicu videozapisa pri prelasku mišem",
"video_hover_setting_description": "Reproduciraj sličicu videozapisa kada miš prelazi preko stavke. Čak i kada je onemogućeno, reprodukcija se može pokrenuti prelaskom miša preko ikone za reprodukciju.",
+ "video_quality": "Kvaliteta videozapisa",
"videos": "Videozapisi",
"videos_count": "{count, plural, =1 {# Videozapis} few {# Videozapisa} other {# Videozapisa}}",
"view": "Prikaz",
@@ -1961,20 +2252,40 @@
"viewer_remove_from_stack": "Ukloni iz složenih",
"visibility": "Vidljivost",
"visibility_changed": "Vidljivost promijenjena za {count, plural, =1 {# osobu} few {# osobe} other {# osoba}}",
+ "visual": "Vizualno",
"waiting": "Čekanje",
"waiting_count": "Čekanje:{count}",
"warning": "Upozorenje",
"week": "Tjedan",
"welcome": "Dobrodošli",
"welcome_to_immich": "Dobrodošli u Immich",
+ "whats_new": "Što je novo",
+ "whats_new_settings_subtitle": "Pogledaj što ima novo u Immichu",
+ "whats_new_version": "Verzija {version}",
+ "when": "Kada",
"width": "Širina",
"wifi_name": "Naziv Wi-Fi mreže",
- "workflow_summary": "Sažetak tijeka rada",
+ "workflow": "Radni proces",
+ "workflow_delete_prompt": "Jeste li sigurni da želite izbrisati ovaj radni proces?",
+ "workflow_deleted": "Radni proces izbrisan",
+ "workflow_description": "Opis radnog procesa",
+ "workflow_info": "Informacije o radnog procesu",
+ "workflow_json": "JSON radnog procesa",
+ "workflow_json_help": "Uredite konfiguraciju radnog procesa u JSON formatu. Promjene će se sinkronizirati s vizualnim alatom za izradu.",
+ "workflow_name": "Naziv radnog procesa",
+ "workflow_navigation_prompt": "Jeste li sigurni da želite izaći bez spremanja promjena?",
+ "workflow_summary": "Sažetak radnog procesa",
+ "workflow_templates": "Predlošci za radne procese",
+ "workflow_update_success": "Radni proces uspješno ažuriran",
+ "workflows": "Radni procesi",
+ "workflows_help_text": "Radni procesi automatiziraju radnje nad vašim stavkama na temelju okidača i filtara",
"wrong_pin_code": "Krivi PIN kod",
+ "x_of_total": "{x}/{total}",
"year": "Godina",
"years_ago": "prije {years, plural, =1 {# godinu} few {# godine} other {# godina}}",
"yes": "Da",
"you_dont_have_any_shared_links": "Nemate nijednu dijeljenu poveznicu",
"your_wifi_name": "Naziv vaše Wi-Fi mreže",
+ "zero_to_clear_rating": "pritisni 0 za brisanje ocjene stavke",
"zoom_image": "Povećaj sliku"
}
diff --git a/i18n/hu.json b/i18n/hu.json
index 611fb1f57c..9ab0181f3c 100644
--- a/i18n/hu.json
+++ b/i18n/hu.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Bélyegkép minősége 1-100 között. A magasabb szám jobb minőséget, de nagyobb fájlméretet eredményez és belassíthatja az alkalmazást.",
"image_thumbnail_title": "Bélyegkép beállítások",
"import_config_from_json_description": "Rendszer konfiguráció importálása JSON fájlból",
+ "integrity_checks_checksum_files": "Ellenőrzőösszeg fájlok",
+ "integrity_checks_checksum_files_description": "Az ellenőrzőösszeg-ellenőrzés beállítása",
+ "integrity_checks_checksum_files_enable_description": "Ellenőrzőösszeg-ellenőrzés bekapcsolása",
+ "integrity_checks_checksum_files_percentage_limit": "Százalékos limit",
+ "integrity_checks_checksum_files_percentage_limit_description": "Állítsd be 0,01 és 1 közötti értékre azt a maximális százalékot, amely meghatározza, hogy az ellenőrzőösszeg-ellenőrzés az egyes időközökben milyen gyakorisággal fusson.",
+ "integrity_checks_checksum_files_time_limit": "Idő limit",
+ "integrity_checks_checksum_files_time_limit_description": "Állítsd be, hogy az egyes időközökben az ellenőrzőösszeg-ellenőrzés legfeljebb mennyi ideig futhasson. (ms)",
+ "integrity_checks_missing_files": "Hiányzó fájlok",
+ "integrity_checks_missing_files_description": "Gyakoriság beállítása, valamint a hiányzó fájlok ellenőrzésének engedélyezése vagy letiltása",
+ "integrity_checks_missing_files_enable_description": "A hiányzó fájlok ellenőrzésének engedélyezése",
+ "integrity_checks_settings": "Integritás ellenőrzések",
+ "integrity_checks_settings_description": "Integritás-ellenőrzések gyakoriságának kezelése",
+ "integrity_checks_untracked_files": "Nem követett fájlok",
+ "integrity_checks_untracked_files_description": "Gyakoriság beállítása, valamint nem követett fájlok ellenőrzésének engedélyezése vagy letiltása",
+ "integrity_checks_untracked_files_enable_description": "Nem követett fájlok ellenőrzésének engedélyezése",
"job_concurrency": "{job} párhuzamosan",
"job_created": "Feladat létrehozva",
"job_not_concurrency_safe": "Ez a feladat nem párhuzamosság-biztos.",
@@ -350,7 +365,7 @@
"storage_template_migration_job": "Tárhely sablon migrálása",
"storage_template_more_details": "További részletekért erről a funkcióról lásd a tárhely sablon és annak következményeit a dokumentációban",
"storage_template_onboarding_description_v2": "A funkció engedélyezésével automatikusan, a felhasználó által definiált sablon alapján lesznek rendezve a fájlok. Több információért lásd a dokumentációt.",
- "storage_template_path_length": "Útvonal hozzávetőleges maximális hossza: {length, number}{limit, number}",
+ "storage_template_path_length": "Útvonal hozzávetőleges maximális hossza: {length, number}/{limit, number}",
"storage_template_settings": "Tárhely sablon",
"storage_template_settings_description": "A feltöltött elemek mappaszerkezetének és fájl elnevezésének kezelése",
"storage_template_user_label": "A felhasználó tárhely címkéje {label}",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Engedélyezi a videó lejátszása közben a valós idejű transzkódolást. Lehetővé teszi a minőség kiválasztását, de akadozásokat és nagyobb visszajátszási késleltetést eredményezhet a szerver teljesítményétől függően.",
"transcoding_realtime_enabled": "Valós idejű transzkódolás bekapcsolása",
"transcoding_realtime_enabled_description": "Ha ki van kapcsolva, a szerver nem fogja elfogadni az új, valós idejű transzkódolású kéréseket.",
+ "transcoding_realtime_resolutions": "Felbontások",
+ "transcoding_realtime_resolutions_description": "A valós idejű átkódoláshoz kínált felbontások. A nagyobb felbontások lejátszási problémákhoz vezethetnek, ha a szerver nem tudja elég gyorsan feldolgozni őket.",
+ "transcoding_realtime_video_codecs": "Videókodekek",
+ "transcoding_realtime_video_codecs_description": "A valós idejű transzkódoláshoz elérhető videókodekek. Lejátszás során a kliensek a legmegfelelőbb általuk támogatott opciót választják ki. Az AV1 hatékonyabb a HEVC-nél, a HEVC pedig hatékonyabb a H.264-nél. Hardveres gyorsítás használatakor csak azokat a kodekeket válaszd ki, amelyeket a gyorsító képes kódolni. Szoftveres transzkódolás esetén vedd figyelembe, hogy a H.264 gyorsabb az AV1-nél, az AV1 pedig gyorsabb a HEVC-nél.",
"transcoding_reference_frames": "Referencia képkockák",
"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",
@@ -476,13 +495,13 @@
"advanced_settings_clear_image_cache_error": "Fényképek gyorsítótárának kiürítése sikertelen",
"advanced_settings_clear_image_cache_success": "{size} sikeresen felszabadítva",
"advanced_settings_log_level_title": "Naplózás szintje: {level}",
- "advanced_settings_prefer_remote_subtitle": "Néhány eszköz fájdalmasan lassan tölti be az eszközön lévő indexképeket. Ez a beállítás inkább a távoli képeket (a szerverről) tölti be helyettük.",
+ "advanced_settings_prefer_remote_subtitle": "Néhány eszköz fájdalmasan lassan tölti be az eszközön lévő indexképeket. Aktiváld ezt a beállítást, hogy inkább a távoli (a szerveren lévő) indexképek kerüljenek betöltésre helyettük.",
"advanced_settings_prefer_remote_title": "Távoli képek előnyben részesítése",
"advanced_settings_proxy_headers_subtitle": "Add meg azokat a proxy fejléceket, amiket az app elküldjön minden hálózati kérésnél",
"advanced_settings_proxy_headers_title": "Egyedi proxy fejlécek [KÍSÉRLETI]",
- "advanced_settings_readonly_mode_subtitle": "Bekapcsol egy írásvédett módot ahol csak fotókat nézni lehetséges, egyebek, mint több kép kiválasztása, megosztás, kivetítés és törlés ki vannak kapcsolva. Ki/bekapcsolható a felhasználó ikonjáról a fő képernyőn",
+ "advanced_settings_readonly_mode_subtitle": "Bekapcsol egy írásvédett módot, ahol csak fotókat nézni lehetséges. Egyebek, mint például több kép kiválasztása, megosztás, kivetítés és törlés ilyenkor ki vannak kapcsolva. Be-/kikapcsolható a fő képernyőn a felhasználó profil fotóján történő hosszú érintéssel",
"advanced_settings_readonly_mode_title": "Írásvédett mód",
- "advanced_settings_sync_remote_deletions_subtitle": "Automatikusan törölni vagy visszaállítani egy elemet ezen az eszközön, ha az adott műveletet a weben hajtották végre",
+ "advanced_settings_sync_remote_deletions_subtitle": "Automatikusan töröl vagy visszaállít egy elemet ezen az eszközön, ha az adott műveletet a weben hajtották végre",
"advanced_settings_sync_remote_deletions_title": "Távoli törlések szinkronizálása [KÍSÉRLETI]",
"advanced_settings_tile_subtitle": "Haladó felhasználói beállítások",
"advanced_settings_troubleshooting_subtitle": "További funkciók engedélyezése hibaelhárítás céljából",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Elem megjelenítő",
"assets": "Elemek",
"assets_added_to_album_count": "{count, plural, other {# elem}} hozzáadva az albumhoz",
+ "assets_added_to_album_partial_count": "{totalCount} {totalCount, plural, one {elemből} other {elemből}} {successCount} hozzáadva az albumhoz",
"assets_added_to_albums_count": "{assetTotal, plural, one {# elem} other {# elemek}} hozzáadva {albumTotal, plural, one {# albumhoz} other {# albumokhoz}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Az elem} other {Az elemek}} nem adhatóak hozzá az albumhoz",
"assets_cannot_be_added_to_albums": "Az {count, plural, one {elemet} other {elemeket}} nem lehet hozzáadni egy albumhoz sem",
@@ -794,7 +814,6 @@
"custom_date": "Egyéni dátum",
"custom_locale": "Egyéni területi beállítás",
"custom_locale_description": "Dátumok, idők és számok formázása a kiválasztott nyelv és a terület szerint",
- "custom_url": "Egyéni URL",
"cutoff_date_description": "Fotók megtartása az elmúlt…",
"cutoff_day": "{count, plural, one {nap} other {nap}}",
"cutoff_year": "{count, plural, one {év} other {év}}",
@@ -1341,7 +1360,7 @@
"maintenance_title": "Átmenetileg nem elérhető",
"make": "Gyártó",
"manage_geolocation": "Helyadatok kezelése",
- "manage_media_access_rationale": "Ez az engedély szükséges a mozgatható eszközök kukába való áthelyezéshez és onnan való visszaállításhoz.",
+ "manage_media_access_rationale": "Ez az engedély szükséges a mozgatható elemek kukába való áthelyezéshez és az onnan való visszaállításhoz.",
"manage_media_access_settings": "Beállítások megnyitása",
"manage_media_access_subtitle": "Engedélyezze az Immichnek a médiafájlok kezelését és áthelyezését.",
"manage_media_access_title": "Médiakezelés hozzáférés",
@@ -1461,6 +1480,7 @@
"never": "Soha",
"new_album": "Új album",
"new_api_key": "Új API kulcs",
+ "new_feature": "Új funkció",
"new_password": "Új jelszó",
"new_person": "Új személy",
"new_pin_code": "Új PIN kód",
@@ -1504,6 +1524,7 @@
"not_available": "N/A",
"not_in_any_album": "Nincs albumban",
"not_selected": "Nincs kiválasztva",
+ "not_set": "Nincs beállítva",
"notes": "Megjegyzések",
"nothing_here_yet": "Még semmi sincs itt",
"notification_backup_reliability": "Engedélyezd az értesítéseket a háttérben futó biztonsági mentés megbízhatóságának javítása érdekében",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Obtainium konfigurátor",
"obtainium_configurator_instructions": "Az Obtainium segítségével közvetlenül az Immich GitHub-os kiadásából telepítheted és frissítheted az Android-alkalmazást. Hozz létre egy API-kulcsot és válassz egy változatot az Obtainium konfigurációs hivatkozás elkészítéséhez",
"ocr": "OCR",
+ "ocr_body": "Az Immich mostantól elolvassa a fotókon szereplő szöveget, így a szöveg alapján is kereshetsz közöttük.",
+ "ocr_title": "Szövegkeresés a fényképeidben",
"official_immich_resources": "Hivatalos Immich források",
"offline": "Nem elérhető (offline)",
"offset": "Eltolás",
@@ -1539,6 +1562,8 @@
"open": "Nyitva",
"open_calendar": "Naptár megnyitása",
"open_in_browser": "Megnyitás böngészőben",
+ "open_in_immich_body": "Állítsd be az Immich-et galériádként az Androidon, hogy a fényképeket közvetlenül más alkalmazásokból nyithasd meg.",
+ "open_in_immich_title": "Fotók megnyitása az Immich-ben",
"open_in_map_view": "Megnyitás térkép nézetben",
"open_in_openstreetmap": "Megnyitás OpenStreetMap-ben",
"open_the_search_filters": "Keresési szűrők megnyitása",
@@ -1596,7 +1621,7 @@
"person": "Személy",
"person_age_months": "{months, plural, one {# hónapja} other {# hónapja}}",
"person_age_year_months": "Egy év és {months, plural, one {# hónapja} other {# hónapja}}",
- "person_age_years": "{years, plural, other {# éve}}",
+ "person_age_years": "{years, plural, one {# éves} other {# éves}}",
"person_birthdate": "Született: {date}",
"person_hidden": "{name}{hidden, select, true { (rejtett)} other {}}",
"person_recognized": "Személy felismerve",
@@ -1697,7 +1722,10 @@
"recent": "Friss",
"recent_searches": "Legutóbbi keresések",
"recently_added": "Nemrég hozzáadott",
+ "recently_added_body": "Egy külön oldalon azonnal megtekintheted az összes legutóbb hozzáadott elemet.",
+ "recently_added_description": "Az Immich-re való feltöltés időpontja szerint rendezve böngészheted a fájljaid",
"recently_added_page_title": "Nemrég hozzáadott",
+ "recently_added_title": "Legutóbb hozzáadott",
"recently_taken": "Nemrég készített",
"refresh": "Frissítés",
"refresh_encoded_videos": "Átkódolt videók frissítése",
@@ -1760,7 +1788,7 @@
"restore_user": "Felhasználó visszaállítása",
"restored_asset": "Visszaállított elem",
"resume": "Folytatás",
- "resume_paused_jobs": "Folytatás {count, plural, one {# paused job} other {# paused jobs}}",
+ "resume_paused_jobs": "{count, plural, one {# szüneteltetett feladat} other {# szüneteltetett feladat}} folytatása",
"review_duplicates": "Duplikátumok áttekintése",
"review_large_files": "Nagy fájlok áttekintése",
"role": "Jogkör",
@@ -1904,6 +1932,8 @@
"share_link": "Link megosztása",
"share_original": "Használd az eredetit (nagy)",
"share_preview": "Használd a miniatűrt (kicsi)",
+ "share_quality_body": "A megosztás előtt tartsd lenyomva a megosztás gombot, hogy kiválaszd a képminőséget.",
+ "share_quality_title": "Válaszd ki a megosztási minőséget",
"shared": "Megosztva",
"shared_album_activities_input_disable": "Hozzászólások kikapcsolva",
"shared_album_activity_remove_content": "Törölni szeretnéd ezt a tevékenységet?",
@@ -1919,6 +1949,8 @@
"shared_link_clipboard_copied_massage": "Vágólapra másolva",
"shared_link_create_error": "Hiba a megosztott link létrehozásakor",
"shared_link_custom_url_description": "Hozzáférés ehhez a megosztott linkhez egyedi URL címen keresztül",
+ "shared_link_custom_url_title": "Egyedi URL",
+ "shared_link_custom_url_warning": "Figyelem: a perjelet tartalmazó egyéni URL-nevek nem biztos, hogy a várt módon működnek.",
"shared_link_edit_description_hint": "Add meg a megosztás leírását",
"shared_link_edit_expire_after_option_day": "1 nap",
"shared_link_edit_expire_after_option_days": "{count} nap",
@@ -1985,16 +2017,19 @@
"sign_out": "Kijelentkezés",
"sign_up": "Regisztráció",
"size": "Méret",
+ "skip": "Kihagyás",
"skip_to_content": "Ugrás a tartalomhoz",
"skip_to_folders": "Ugrás a mappákhoz",
"skip_to_tags": "Ugrás a címkékhez",
"slideshow": "Diavetítés",
+ "slideshow_body": "Dőlj hátra, és nézd meg fotóidat teljes képernyős diavetítésben.",
"slideshow_metadata_overlay_mode": "Képadatok tartalma",
"slideshow_metadata_overlay_mode_description_only": "Csak leírás",
"slideshow_metadata_overlay_mode_full": "Teljes",
"slideshow_repeat": "Diavetítés ismétlése",
"slideshow_repeat_description": "Ha a diavetítés véget ér, újraindul az elejétől",
"slideshow_settings": "Diavetítés beállításai",
+ "slideshow_title": "Diavetítés",
"smart_album": "Okos album",
"some_assets_already_have_a_location_warning": "A kiválasztott elemek közül néhánynak már van helyszíne",
"sort_albums_by": "Albumok rendezése...",
@@ -2122,6 +2157,7 @@
"unknown": "Ismeretlen",
"unknown_country": "Ismeretlen ország",
"unknown_date": "Ismeretlen dátum",
+ "unknown_schema": "Ismeretlen séma",
"unknown_year": "Ismeretlen Év",
"unlimited": "Korlátlan",
"unlink_motion_video": "Mozgókép leválasztása",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "Hibák",
"upload_status_uploaded": "Feltöltve",
"upload_success": "Feltöltés sikeres, frissítsd az oldalt az újonnan feltöltött elemek megtekintéséhez.",
+ "upload_to_album_body": "Azok a felhasználók, akik nem használják a kézi feltöltési funkciót, mostantól a helyi fényképeket feltöltés közben közvetlenül hozzáadhatják egy albumhoz; így már nem kell először feltölteniük a képeket, majd később hozzáadniuk őket az albumhoz.",
+ "upload_to_album_title": "Feltöltés közvetlenül egy albumba",
"upload_to_immich": "Feltöltés Immich-be ({count})",
"uploading": "Feltöltés folyamatban",
"uploading_media": "Média feltöltés folyamatban",
@@ -2224,6 +2262,9 @@
"week": "Hét",
"welcome": "Üdvözlünk",
"welcome_to_immich": "Üdvözöl az Immich",
+ "whats_new": "Újdonságok",
+ "whats_new_settings_subtitle": "Nézd meg az Immich újdonságait",
+ "whats_new_version": "{version} verzió",
"when": "Mikor",
"width": "Szélesség",
"wifi_name": "Wi-Fi neve",
diff --git a/i18n/id.json b/i18n/id.json
index 3bf43925fe..bf5281fcb9 100644
--- a/i18n/id.json
+++ b/i18n/id.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Nilai kualitas gambar kecil dari 1-100. Lebih tinggi lebih baik, tetapi menghasilkan file lebih besar dan dapat mengurangi respons aplikasi.",
"image_thumbnail_title": "Pengaturan Gambar Kecil",
"import_config_from_json_description": "Impor konfigurasi sistem dengan mengunggah file konfigurasi JSON",
+ "integrity_checks_checksum_files": "File checksum",
+ "integrity_checks_checksum_files_description": "Konfigurasikan pemeriksaan checksum",
+ "integrity_checks_checksum_files_enable_description": "Aktifkan pemeriksaan checksum",
+ "integrity_checks_checksum_files_percentage_limit": "Batas persentase",
+ "integrity_checks_checksum_files_percentage_limit_description": "Konfigurasikan persentase maksimum antara 0,01 dan 1 untuk menentukan seberapa banyak pemeriksaan checksum dijalankan pada setiap interval.",
+ "integrity_checks_checksum_files_time_limit": "Batas waktu",
+ "integrity_checks_checksum_files_time_limit_description": "Konfigurasikan durasi maksimum pemeriksaan checksum pada setiap interval. (ms)",
+ "integrity_checks_missing_files": "File hilang",
+ "integrity_checks_missing_files_description": "Konfigurasikan frekuensi serta aktifkan atau nonaktifkan pemeriksaan file hilang",
+ "integrity_checks_missing_files_enable_description": "Aktifkan pemeriksaan file hilang",
+ "integrity_checks_settings": "Pemeriksaan integritas",
+ "integrity_checks_settings_description": "Kelola interval pemeriksaan integritas",
+ "integrity_checks_untracked_files": "File tidak terlacak",
+ "integrity_checks_untracked_files_description": "Konfigurasikan frekuensi serta aktifkan atau nonaktifkan pemeriksaan file tidak terlacak",
+ "integrity_checks_untracked_files_enable_description": "Aktifkan pemeriksaan file tidak terlacak",
"job_concurrency": "Konkurensi {job}",
"job_created": "Tugas telah dibuat",
"job_not_concurrency_safe": "Tugas ini tidak aman untuk konkurensi.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Memungkinkan transcoding dilakukan secara waktu nyata saat video sedang di-stream. Mengaktifkan pergantian kualitas, tetapi dapat menyebabkan latensi pemutaran yang lebih tinggi dan tersendat-sendat tergantung pada kemampuan server.",
"transcoding_realtime_enabled": "Aktifkan transcoding waktu nyata",
"transcoding_realtime_enabled_description": "Jika dinonaktifkan, server akan menolak memulai sesi transcoding waktu nyata yang baru.",
+ "transcoding_realtime_resolutions": "Resolusi",
+ "transcoding_realtime_resolutions_description": "Resolusi yang ditawarkan untuk transcoding waktu nyata. Resolusi yang lebih tinggi dapat menyebabkan masalah pemutaran jika server tidak dapat melakukan transcoding dengan cukup cepat.",
+ "transcoding_realtime_video_codecs": "Codec video",
+ "transcoding_realtime_video_codecs_description": "Codec video yang ditawarkan untuk transcoding waktu nyata. Klien akan memilih opsi terbaik yang didukung saat pemutaran. AV1 lebih efisien daripada HEVC, dan HEVC lebih efisien daripada H.264. Saat menggunakan akselerasi perangkat keras, pilih hanya codec yang dapat dienkode oleh akselerator. Saat menggunakan transcoding perangkat lunak, perlu diketahui bahwa H.264 lebih cepat daripada AV1, dan AV1 lebih cepat daripada HEVC.",
"transcoding_reference_frames": "Bingkai referensi",
"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",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Penampil Aset",
"assets": "Aset",
"assets_added_to_album_count": "{count, plural, one {# aset} other {# aset}} ditambahkan ke album",
+ "assets_added_to_album_partial_count": "Berhasil menambahkan {successCount} dari {totalCount} {totalCount, plural, one {aset} other {aset}} ke album",
"assets_added_to_albums_count": "{assetTotal, plural, one {# aset} other {# aset}} ditambahkan ke {albumTotal, plural, one {# album} other {# album}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Aset} other {Aset}} tidak dapat ditambahkan ke album",
"assets_cannot_be_added_to_albums": "{count, plural, one {Aset} other {Aset}} tidak dapat ditambahkan ke album mana pun",
@@ -794,7 +814,6 @@
"custom_date": "Tanggal khusus",
"custom_locale": "Pelokalan khusus",
"custom_locale_description": "Format tanggal, waktu, dan angka berdasarkan bahasa dan wilayah yang dipilih",
- "custom_url": "URL Khusus",
"cutoff_date_description": "Simpan foto dari … terakhir",
"cutoff_day": "{count, plural, one {hari} other {hari}}",
"cutoff_year": "{count, plural, one {tahun} other {tahun}}",
@@ -1303,9 +1322,9 @@
"login_form_failed_login": "Log masuk gagal, periksa URL server, email, dan sandi",
"login_form_handshake_exception": "Terjadi Handshake Exception dengan server. Aktifkan dukungan sertifikat swatanda di pengaturan jika Anda menggunakan sertifikat swatanda.",
"login_form_password_hint": "sandi",
- "login_form_server_empty": "Masukkan URL server.",
- "login_form_server_error": "Tidak dapat menghubungi server.",
- "login_has_been_disabled": "Log masuk telah dinonaktifkan.",
+ "login_form_server_empty": "Masukkan URL server",
+ "login_form_server_error": "Tidak dapat terhubung ke server",
+ "login_has_been_disabled": "Login telah dinonaktifkan",
"login_password_changed_error": "Terjadi kesalahan saat memperbarui sandi",
"login_password_changed_success": "Sandi berhasil diperbarui",
"logout_all_device_confirmation": "Yakin ingin keluar dari semua perangkat?",
@@ -1356,6 +1375,7 @@
"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 Anda saat ini. Ingin mengaktifkan layanan tersebut sekarang?",
"map_location_service_disabled_title": "Layanan Lokasi nonaktif",
+ "map_marker_for_image": "Penanda peta untuk gambar yang diambil di {city}, {country}",
"map_marker_with_image": "Penanda peta dengan gambar",
"map_no_location_permission_content": "Izin lokasi diperlukan untuk menampilkan aset yang terletak di lokasi Anda. Ingin mengizinkannya sekarang?",
"map_no_location_permission_title": "Izin Lokasi ditolak",
@@ -1460,6 +1480,7 @@
"never": "Tidak pernah",
"new_album": "Album baru",
"new_api_key": "Kunci API Baru",
+ "new_feature": "Fitur Baru",
"new_password": "Sandi baru",
"new_person": "Orang baru",
"new_pin_code": "Kode PIN baru",
@@ -1506,6 +1527,9 @@
"notes": "Catatan",
"nothing_here_yet": "Masih kosong",
"notification_backup_reliability": "Aktifkan notifikasi untuk meningkatkan keandalan pencadangan latar belakang",
+ "notification_enabled_list_tile_content": "Immich menggunakan notifikasi untuk pencadangan di latar belakang. Kelola notifikasi tersebut di pengaturan perangkat Anda.",
+ "notification_enabled_list_tile_open_button": "Buka pengaturan",
+ "notification_enabled_list_tile_title": "Notifikasi diaktifkan",
"notification_permission_dialog_content": "Untuk mengaktifkan notifikasi, buka Pengaturan lalu berikan izin.",
"notification_permission_list_tile_content": "Berikan izin untuk mengaktifkan notifikasi.",
"notification_permission_list_tile_enable_button": "Aktifkan Notifikasi",
@@ -1517,6 +1541,8 @@
"obtainium_configurator": "Konfigurator Obtainium",
"obtainium_configurator_instructions": "Gunakan Obtainium untuk menginstal dan memperbarui aplikasi Android secara langsung dari rilis GitHub Immich. Buat kunci API dan pilih varian untuk membuat tautan konfigurasi Obtainium Anda",
"ocr": "OCR",
+ "ocr_body": "Immich kini membaca teks dalam foto Anda sehingga Anda dapat mencarinya berdasarkan teks yang tertulis di dalamnya.",
+ "ocr_title": "Cari teks dalam foto Anda",
"official_immich_resources": "Sumber Daya Immich Resmi",
"offline": "Offline",
"offset": "Ofset",
@@ -1535,6 +1561,8 @@
"open": "Buka",
"open_calendar": "Buka kalender",
"open_in_browser": "buka di browser",
+ "open_in_immich_body": "Atur Immich sebagai galeri Anda di Android untuk membuka foto langsung dari aplikasi lain.",
+ "open_in_immich_title": "Buka foto di Immich",
"open_in_map_view": "Buka dalam tampilan peta",
"open_in_openstreetmap": "Buka di OpenStreetMap",
"open_the_search_filters": "Buka filter pencarian",
@@ -1693,7 +1721,10 @@
"recent": "Terkini",
"recent_searches": "Pencarian terkini",
"recently_added": "Baru saja ditambahkan",
+ "recently_added_body": "Langsung buka semua yang baru-baru ini Anda tambahkan pada halaman khusus.",
+ "recently_added_description": "Telusuri aset Anda yang diurutkan berdasarkan waktu pengunggahannya ke Immich",
"recently_added_page_title": "Baru Ditambahkan",
+ "recently_added_title": "Baru ditambahkan",
"recently_taken": "Baru diambil",
"refresh": "Segarkan",
"refresh_encoded_videos": "Segarkan video terenkode",
@@ -1900,6 +1931,8 @@
"share_link": "Bagikan Tautan",
"share_original": "Gunakan versi asli (besar)",
"share_preview": "Gunakan thumbnail (kecil)",
+ "share_quality_body": "Tekan dan tahan tombol bagikan untuk memilih kualitas gambar sebelum membagikannya.",
+ "share_quality_title": "Pilih kualitas untuk dibagikan",
"shared": "Dibagikan",
"shared_album_activities_input_disable": "Komentar dinonaktifkan",
"shared_album_activity_remove_content": "Ingin menghapus aktivitas ini?",
@@ -1981,16 +2014,19 @@
"sign_out": "Keluar",
"sign_up": "Daftar",
"size": "Ukuran",
+ "skip": "Lewati",
"skip_to_content": "Lewati ke konten",
"skip_to_folders": "Lewati ke folder",
"skip_to_tags": "Lewati ke tag",
"slideshow": "Salindia",
+ "slideshow_body": "Bersantai dan saksikan foto Anda diputar dalam slideshow layar penuh.",
"slideshow_metadata_overlay_mode": "Konten overlay",
"slideshow_metadata_overlay_mode_description_only": "Deskripsi saja",
"slideshow_metadata_overlay_mode_full": "Penuh",
"slideshow_repeat": "Ulangi salindia",
"slideshow_repeat_description": "Ulangi dari awal saat salindia berakhir",
"slideshow_settings": "Pengaturan salindia",
+ "slideshow_title": "Slideshow",
"smart_album": "Album cerdas",
"some_assets_already_have_a_location_warning": "Sebagian aset yang dipilih sudah memiliki lokasi",
"sort_albums_by": "Urutkan album berdasarkan...",
@@ -2118,6 +2154,7 @@
"unknown": "Tidak diketahui",
"unknown_country": "Negara Tidak Diketahui",
"unknown_date": "Tanggal tidak diketahui",
+ "unknown_schema": "Skema tidak dikenal",
"unknown_year": "Tahun Tidak Diketahui",
"unlimited": "Tidak terbatas",
"unlink_motion_video": "Hapus tautan video gerak",
@@ -2153,6 +2190,8 @@
"upload_status_errors": "Kesalahan",
"upload_status_uploaded": "Diunggah",
"upload_success": "Pengunggahan berhasil, muat ulang halaman untuk melihat aset terunggah yang baru.",
+ "upload_to_album_body": "Bagi pengguna yang tidak menggunakan fitur unggah manual, kini Anda dapat memilih untuk menambahkan foto lokal langsung ke album saat mengunggahnya. Tidak perlu lagi mengunggah terlebih dahulu, lalu menambahkannya ke album.",
+ "upload_to_album_title": "Unggah langsung ke album",
"upload_to_immich": "Unggah ke Immich ({count})",
"uploading": "Mengunggah",
"uploading_media": "Mengunggah media",
@@ -2220,6 +2259,9 @@
"week": "Pekan",
"welcome": "Selamat datang",
"welcome_to_immich": "Selamat datang di Immich",
+ "whats_new": "Yang baru",
+ "whats_new_settings_subtitle": "Lihat yang baru di Immich",
+ "whats_new_version": "Versi {version}",
"when": "Saat",
"width": "Lebar",
"wifi_name": "Nama Wi-Fi",
diff --git a/i18n/it.json b/i18n/it.json
index 0be736c5a6..102d54b26d 100644
--- a/i18n/it.json
+++ b/i18n/it.json
@@ -108,9 +108,24 @@
"image_thumbnail_quality_description": "Qualità delle miniature da 1 a 100. Un valore più alto è migliore ma produce file più grandi e può ridurre la reattività dell'app.",
"image_thumbnail_title": "Impostazioni miniature",
"import_config_from_json_description": "Importa la configurazione del sistema caricando un file JSON",
+ "integrity_checks_checksum_files": "File di verifica",
+ "integrity_checks_checksum_files_description": "Configura il controllo del checksum",
+ "integrity_checks_checksum_files_enable_description": "Attiva il controllo del checksum",
+ "integrity_checks_checksum_files_percentage_limit": "Limite percentuale",
+ "integrity_checks_checksum_files_percentage_limit_description": "Imposta la percentuale massima, compresa tra 0,01 e 1, che indica la frequenza con cui deve essere eseguito il controllo del checksum in ciascun intervallo.",
+ "integrity_checks_checksum_files_time_limit": "Limite di tempo",
+ "integrity_checks_checksum_files_time_limit_description": "Configura la durata massima della verifica del checksum per ciascun intervallo. (ms)",
+ "integrity_checks_missing_files": "File mancanti",
+ "integrity_checks_missing_files_description": "Configurare la frequenza e attivare o disattivare il controllo dei file mancanti",
+ "integrity_checks_missing_files_enable_description": "Attiva il controllo dei file mancanti",
+ "integrity_checks_settings": "Controlli integrità",
+ "integrity_checks_settings_description": "Gestisci l'intervallo dei controlli di integrità",
+ "integrity_checks_untracked_files": "File non tracciati",
+ "integrity_checks_untracked_files_description": "Configurare la frequenza e attivare/disattivare il controllo dei file non tracciati",
+ "integrity_checks_untracked_files_enable_description": "Abilita il controllo dei file non tracciati",
"job_concurrency": "Concorrenza {job}",
"job_created": "Processo creato",
- "job_not_concurrency_safe": "Questo processo non è eseguibile in maniera concorrente.",
+ "job_not_concurrency_safe": "Questa operazione non è sicura dal punto di vista della concorrenza.",
"job_settings": "Impostazioni processi",
"job_settings_description": "Gestisci la concorrenza dei processi",
"jobs_delayed": "{jobCount, plural, one {# posticipato} other {# posticipati}}",
@@ -316,7 +331,7 @@
"refreshing_all_libraries": "Aggiornando tutte le librerie",
"registration": "Registrazione amministratore",
"registration_description": "Poiché sei il primo utente del sistema, sarai assegnato come Amministratore e sarai responsabile delle attività amministrative, e gli utenti aggiuntivi saranno creati da te.",
- "release_channel_release_candidate": "Release candidate",
+ "release_channel_release_candidate": "Anteprima finale",
"release_channel_stable": "Stabile",
"remove_failed_jobs": "Rimuovi processi non riusciti",
"require_password_change_on_login": "Richiedi all'utente di cambiare password al primo accesso",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Consenti l'esecuzione della transcodifica in tempo reale, durante la riproduzione del video. Abilita la possibilità di selezionare la qualità del video, ma potrebbe causare una latenza di riproduzione più alta e scatti a seconda della potenza di calcolo del server.",
"transcoding_realtime_enabled": "Abilita la transcodifica in tempo reale",
"transcoding_realtime_enabled_description": "Se disabilitato, il server non avvierà nuove sessioni di transcodifica in tempo reale.",
+ "transcoding_realtime_resolutions": "Risoluzioni",
+ "transcoding_realtime_resolutions_description": "Le risoluzioni offerte per la transcodifica in tempo reale. Risoluzioni più elevate possono causare problemi di riproduzione se il server non riesce a transcodificarle abbastanza rapidamente.",
+ "transcoding_realtime_video_codecs": "Codec video",
+ "transcoding_realtime_video_codecs_description": "I codec video disponibili per la transcodifica in tempo reale. I client sceglieranno l'opzione migliore tra quelle supportate durante la riproduzione. L'AV1 è più efficiente dell'HEVC, che a sua volta è più efficiente dell'H.264. Quando si utilizza l'accelerazione hardware, selezionare solo i codec che l'acceleratore è in grado di codificare. Quando si utilizza la transcodifica software, tenere presente che l'H.264 è più veloce dell'AV1, che a sua volta è più veloce dell'HEVC.",
"transcoding_reference_frames": "Frame di riferimento",
"transcoding_reference_frames_description": "Il numero di frame da prendere in considerazione nel comprimere un determinato frame. Valori più alti migliorano l'efficienza di compressione, ma rallentano la codifica. 0 imposta questo valore automaticamente.",
"transcoding_required_description": "Solo video che non sono in un formato accettato",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Visualizzatore risorse",
"assets": "Risorse",
"assets_added_to_album_count": "{count, plural, one {# risorsa aggiunta} other {# risorse aggiunte}} all'album",
+ "assets_added_to_album_partial_count": "{successCount} su {totalCount} {totalCount, plural, one {risorsa aggiunta} other {risorse aggiunte}} all'album",
"assets_added_to_albums_count": "{assetTotal, plural, one {# risorsa aggiunta} other {# risorse aggiunte}} a {albumTotal, plural, one {# album} other {# album}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {La risorsa} other {Le risorse}} non possono essere aggiunte all'album",
"assets_cannot_be_added_to_albums": "Non é stato possibile aggiungere {count, plural, one {la risorsa} other {le risorse}} a nessun album",
@@ -640,7 +660,7 @@
"blurred_background": "Sfondo sfocato",
"browse_templates": "Sfoglia i modelli",
"bugs_and_feature_requests": "Bug e richieste di funzionalità",
- "build": "Build",
+ "build": "Versione",
"build_image": "Build dell'immagine",
"bulk_delete_duplicates_confirmation": "Sei sicuro di voler eliminare in massa {count, plural, one {# risorsa duplicata} other {# risorse duplicate}}? Verrà conservata la risorsa più grande di ogni gruppo e tutti gli altri duplicati saranno eliminati definitivamente. Non potrai annullare questa azione!",
"bulk_keep_duplicates_confirmation": "Sei sicuro di voler conservare {count, plural, one {# risorsa duplicata} other {# risorse duplicate}}? Questo risolverà tutti i gruppi di duplicati senza eliminare nulla.",
@@ -794,7 +814,6 @@
"custom_date": "Data personalizzata",
"custom_locale": "Localizzazione personalizzata",
"custom_locale_description": "Formatta date, orari e numeri in base alla lingua e al paese selezionati",
- "custom_url": "URL personalizzato",
"cutoff_date_description": "Conserva le foto fino al…",
"cutoff_day": "{count, plural, one {giorno} other {giorni}}",
"cutoff_year": "{count, plural, one {anno} other {anni}}",
@@ -1303,9 +1322,9 @@
"login_form_failed_login": "Errore nel login, controlla l'URL del server e le credenziali (email e password)",
"login_form_handshake_exception": "Si è verificata un'eccezione di handshake con il server. Abilita il supporto del certificato self-signed nelle impostazioni se si utilizza questo tipo di certificato.",
"login_form_password_hint": "password",
- "login_form_server_empty": "Inserisci URL del server.",
- "login_form_server_error": "Non è possibile connettersi al server.",
- "login_has_been_disabled": "Il login è stato disabilitato.",
+ "login_form_server_empty": "Inserisci URL del server",
+ "login_form_server_error": "Impossibile connettersi al server",
+ "login_has_been_disabled": "Il login è stato disabilitato",
"login_password_changed_error": "C'è stato un errore durante l'aggiornamento della password",
"login_password_changed_success": "Password aggiornata con successo",
"logout_all_device_confirmation": "Sei sicuro di volerti disconnettere da tutti i dispositivi?",
@@ -1461,6 +1480,7 @@
"never": "Mai",
"new_album": "Nuovo Album",
"new_api_key": "Nuova Chiave di API",
+ "new_feature": "Nuova funzionalità",
"new_password": "Nuova password",
"new_person": "Nuova persona",
"new_pin_code": "Nuovo codice PIN",
@@ -1504,6 +1524,7 @@
"not_available": "N/A",
"not_in_any_album": "In nessun album",
"not_selected": "Non selezionato",
+ "not_set": "Non impostato",
"notes": "Note",
"nothing_here_yet": "Ancora nulla qui",
"notification_backup_reliability": "Attiva le notifiche per migliorare l'affidabilità del backup in background",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Configuratore Obtainium",
"obtainium_configurator_instructions": "Utilizza Obtainium per installare e aggiornare l'app Android direttamente dalla versione rilasciata su GitHub da Immich. Crea una chiave API e seleziona una variante per creare il tuo link di configurazione Obtainium",
"ocr": "OCR",
+ "ocr_body": "Immich ora riconosce il testo contenuto nelle tue foto, così puoi cercarle in base a ciò che dicono.",
+ "ocr_title": "Cerca tra il testo nelle tue foto",
"official_immich_resources": "Risorse Ufficiali Immich",
"offline": "Offline",
"offset": "Offset",
@@ -1539,6 +1562,8 @@
"open": "Apri",
"open_calendar": "Apri il calendario",
"open_in_browser": "Apri con il browser",
+ "open_in_immich_body": "Imposta Immich come galleria su Android per aprire le foto direttamente da altre app.",
+ "open_in_immich_title": "Apri foto in Immich",
"open_in_map_view": "Apri nella visualizzazione mappa",
"open_in_openstreetmap": "Apri su OpenStreetMap",
"open_the_search_filters": "Apri filtri di ricerca",
@@ -1697,7 +1722,10 @@
"recent": "Recenti",
"recent_searches": "Ricerche recenti",
"recently_added": "Aggiunti recentemente",
+ "recently_added_body": "Vai direttamente a tutto ciò che hai aggiunto di recente su una pagina dedicata.",
+ "recently_added_description": "Sfoglia le tue risorse ordinate in base alla data di caricamento su Immich",
"recently_added_page_title": "Aggiunti di recente",
+ "recently_added_title": "Aggiunto di recente",
"recently_taken": "Scattate di recente",
"refresh": "Ricarica",
"refresh_encoded_videos": "Ricarica video codificati",
@@ -1904,6 +1932,8 @@
"share_link": "Link di condivisione",
"share_original": "Usa originale (grande)",
"share_preview": "Usa miniatura (piccola)",
+ "share_quality_body": "Tieni premuto il pulsante di condivisione per scegliere la qualità dell'immagine prima di condividerla.",
+ "share_quality_title": "Seleziona la qualità di condivisione",
"shared": "Condivisi",
"shared_album_activities_input_disable": "I commenti sono disabilitati",
"shared_album_activity_remove_content": "Vuoi eliminare questa attività?",
@@ -1918,7 +1948,9 @@
"shared_link_app_bar_title": "Link condivisi",
"shared_link_clipboard_copied_massage": "Copiato negli appunti",
"shared_link_create_error": "Si è verificato un errore durante la creazione del link condiviso",
- "shared_link_custom_url_description": "Accedi a questo link condiviso con un URL personalizzato",
+ "shared_link_custom_url_description": "Accedi a questo link condiviso con un nome URL personalizzato",
+ "shared_link_custom_url_title": "URL personalizzato",
+ "shared_link_custom_url_warning": "Attenzione: un URL personalizzato con una barra obliqua potrebbe comportarsi in modo inaspettato.",
"shared_link_edit_description_hint": "Inserisci la descrizione della condivisione",
"shared_link_edit_expire_after_option_day": "1 giorno",
"shared_link_edit_expire_after_option_days": "{count} giorni",
@@ -1985,16 +2017,19 @@
"sign_out": "Esci",
"sign_up": "Registrati",
"size": "Dimensione",
+ "skip": "Salta",
"skip_to_content": "Salta al contenuto",
"skip_to_folders": "Salta alle cartelle",
"skip_to_tags": "Salta ai tag",
"slideshow": "Presentazione",
+ "slideshow_body": "Rilassati e guarda le tue foto scorrere in una presentazione a schermo intero.",
"slideshow_metadata_overlay_mode": "Contenuto dell'overlay",
"slideshow_metadata_overlay_mode_description_only": "Solo descrizione",
"slideshow_metadata_overlay_mode_full": "Completo",
"slideshow_repeat": "Ripeti presentazione",
"slideshow_repeat_description": "Ricomincia da capo quando la presentazione termina",
"slideshow_settings": "Impostazioni presentazione",
+ "slideshow_title": "Presentazione",
"smart_album": "Raccolta intelligente",
"some_assets_already_have_a_location_warning": "Alcune delle risorse selezionate hanno già una posizione",
"sort_albums_by": "Ordina album per...",
@@ -2122,6 +2157,7 @@
"unknown": "Sconosciuto",
"unknown_country": "Paese sconosciuto",
"unknown_date": "Data sconosciuta",
+ "unknown_schema": "Schema sconosciuto",
"unknown_year": "Anno sconosciuto",
"unlimited": "Illimitato",
"unlink_motion_video": "Scollega video in movimento",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "Errori",
"upload_status_uploaded": "Caricato",
"upload_success": "Caricamento completato, aggiorna la pagina per vedere le nuove risorse caricate.",
+ "upload_to_album_body": "Per gli utenti che non utilizzano la funzione di caricamento manuale, ora è possibile scegliere di aggiungere le foto locali direttamente a un album mentre le si carica, senza più bisogno di caricarle prima per poi aggiungerle a un album in un secondo momento.",
+ "upload_to_album_title": "Carica direttamente in un album",
"upload_to_immich": "Carica su Immich ({count})",
"uploading": "Caricamento",
"uploading_media": "Caricando i media",
@@ -2224,6 +2262,9 @@
"week": "Settimana",
"welcome": "Benvenuto",
"welcome_to_immich": "Benvenuto in Immich",
+ "whats_new": "Novità",
+ "whats_new_settings_subtitle": "Scopri le novità di Immich",
+ "whats_new_version": "Versione {version}",
"when": "Quando",
"width": "Larghezza",
"wifi_name": "Nome rete Wi-Fi",
diff --git a/i18n/ja.json b/i18n/ja.json
index b4a622611d..15e86f4852 100644
--- a/i18n/ja.json
+++ b/i18n/ja.json
@@ -2,13 +2,13 @@
"about": "Immich について",
"account": "アカウント",
"account_settings": "アカウント設定",
- "acknowledge": "了解",
+ "acknowledge": "わかりました",
"action": "アクション",
- "action_common_update": "更新",
+ "action_common_update": "更新する",
"action_description": "抽出された写真/動画に対して行う手順",
"actions": "アクション",
"active": "アクティブ",
- "active_count": "アクティブ: {count}",
+ "active_count": "アクティブ数: {count}",
"activity": "アクティビティ",
"add": "追加",
"add_a_description": "説明を追加",
@@ -18,7 +18,7 @@
"add_action": "アクションを追加",
"add_assets": "項目を追加",
"add_birthday": "誕生日を設定",
- "add_endpoint": "エンドポイントを追加",
+ "add_endpoint": "終了地点を追加",
"add_exclusion_pattern": "除外パターンを追加",
"add_location": "場所を追加",
"add_partner": "パートナーを追加",
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "サムネイルの画質を1〜100の間で設定できます。値が大きいほど良い品質ですがファイルサイズが大きくなりアプリの応答性が低下します。",
"image_thumbnail_title": "サムネイル設定",
"import_config_from_json_description": "システムコンフィグのJSONファイルをアップロードしインポート",
+ "integrity_checks_checksum_files": "検査合計ファイル",
+ "integrity_checks_checksum_files_description": "検査合計ファイルを設定する",
+ "integrity_checks_checksum_files_enable_description": "検査合計チェックを有効にする",
+ "integrity_checks_checksum_files_percentage_limit": "割合(%)の制限",
+ "integrity_checks_checksum_files_percentage_limit_description": "間隔ごとに検査合計のチェックを行う最大の割合を0.01から0.1の範囲で設定してください。",
+ "integrity_checks_checksum_files_time_limit": "時間制限",
+ "integrity_checks_checksum_files_time_limit_description": "間隔ごとに検査合計のチェックを行う最大の時間をミリ秒で設定してください。",
+ "integrity_checks_missing_files": "不足しているファイル",
+ "integrity_checks_missing_files_description": "不足ファイルのチェックを行う有無や、頻度を設定してください。",
+ "integrity_checks_missing_files_enable_description": "不足ファイルのチェックをオンにする",
+ "integrity_checks_settings": "データの整合性チェック",
+ "integrity_checks_settings_description": "データの整合性チェック頻度を管理する。",
+ "integrity_checks_untracked_files": "追跡されていないファイル",
+ "integrity_checks_untracked_files_description": "追跡されていないファイルのチェックを行う有無や、頻度を設定してください。",
+ "integrity_checks_untracked_files_enable_description": "追跡されていないファイルのチェックを行う。",
"job_concurrency": "{job} の同時実行数",
"job_created": "ジョブを作成しました",
"job_not_concurrency_safe": "このジョブは安全に同時実行できません。",
@@ -193,6 +208,15 @@
"maintenance_integrity_checksum_mismatch_description": "ディスク上のチェックサムが、Immichのデータベースに保存されているチェックサムと一致しないファイル。",
"maintenance_integrity_checksum_mismatch_job": "チェックサム不一致を検出する",
"maintenance_integrity_checksum_mismatch_refresh_job": "チェックサム不一致レポートを再生成",
+ "maintenance_integrity_missing_file": "欠落ファイル",
+ "maintenance_integrity_missing_file_description": "Immichがデータベースで追跡しているが、ファイルシステム上に存在しないファイル。",
+ "maintenance_integrity_missing_file_job": "欠落ファイルのチェック",
+ "maintenance_integrity_missing_file_refresh_job": "欠落ファイルレポートの更新",
+ "maintenance_integrity_report": "整合性レポート",
+ "maintenance_integrity_untracked_file": "未追跡ファイル",
+ "maintenance_integrity_untracked_file_description": "Immichのディレクトリ内に存在するが、Immichに記録がないファイル。",
+ "maintenance_integrity_untracked_file_job": "未追跡ファイルのチェック",
+ "maintenance_integrity_untracked_file_refresh_job": "追跡されていないファイルレポートを更新",
"maintenance_restore_backup": "バックアップを復元",
"maintenance_restore_backup_description": "現在のImmichは削除され、選択したバックアップから復元されます。続行前にバックアップが作成されます。",
"maintenance_restore_backup_different_version": "このバックアップは異なるバージョンのImmichにより作成されたものです!",
@@ -407,6 +431,10 @@
"transcoding_realtime_description": "動画のストリーミング再生中のリアルタイムトランスコードを許可。 再生品質の自動切替が有効化されますが、サーバーの性能によっては遅延や途切れが増加する可能性があります。",
"transcoding_realtime_enabled": "リアルタイムトランスコードを有効化",
"transcoding_realtime_enabled_description": "無効にした場合、サーバーは新たなリアルタイムトランスコードセッションの開始を拒否します。",
+ "transcoding_realtime_resolutions": "解像度",
+ "transcoding_realtime_resolutions_description": "リアルタイムで変換するための解像度。高解像度はサーバーの変換速度によっては、動画の再生に影響を及ぼす可能性があります。",
+ "transcoding_realtime_video_codecs": "動画のコーデック",
+ "transcoding_realtime_video_codecs_description": "これらの動画のコーデックはリアルタイムでの変換が可能です。セットアップ環境によっては、再生の際に適切なコーデックを選ぶことができます。AV1は、HEVCや、H.264よりもさまざまな環境に適しています。ハードウェアアクセラレーションをお使いの場合は、アクセラレーションサポートされているコーデックをお使いください。ソフトウェアで変換される場合は、変換速度においてH.264がAV1や、HEVCより速いです。",
"transcoding_reference_frames": "参照フレーム",
"transcoding_reference_frames_description": "特定のフレームを圧縮するときに参照するフレームの数。より高い値は圧縮効率を改善しますが、エンコードが遅くなります。\"0\" に設定すると、この値が自動的に設定されます。",
"transcoding_required_description": "許容されていない動画形式のみ",
@@ -546,6 +574,7 @@
"asset_added_to_album": "アルバムに追加",
"asset_adding_to_album": "アルバムに追加しています…",
"asset_created": "項目が作成されました",
+ "asset_day_count": "{date}: {count, plural, one {# アセット} other {# アセット}}",
"asset_description_updated": "項目の説明文が更新されました",
"asset_hashing": "ハッシュ計算中…",
"asset_list_group_by_sub_title": "グループ分け",
@@ -568,6 +597,7 @@
"asset_viewer_settings_title": "アセットビューアー",
"assets": "アセット",
"assets_added_to_album_count": "{count, plural, one {#個} other {#個}}のアセットをアルバムに追加しました",
+ "assets_added_to_album_partial_count": "{totalCount}{totalCount, plural, one {項目} other {項目}}中{successCount}のアセットがアルバムに追加されました",
"assets_added_to_albums_count": "{assetTotal, plural, one {# 項目} other {# 項目}}を{albumTotal, plural, one {# つのアルバム} other {# つのアルバム}}に追加しました",
"assets_cannot_be_added_to_album_count": "{count, plural, one {アセット} other {アセット}} はアルバムに追加できません",
"assets_cannot_be_added_to_albums": "{count, plural, one {項目} other {項目}} をどのアルバムにも追加できませんでした",
@@ -784,7 +814,6 @@
"custom_date": "カスタム日付",
"custom_locale": "言語と地域の手動設定",
"custom_locale_description": "選択した言語と地域の設定に従って、日付・時刻・数値を書式設定します",
- "custom_url": "カスタムURL",
"cutoff_date_description": "写真を保持する期間:",
"cutoff_day": "{count, plural, one {(日)} other {(日)}}",
"cutoff_year": "{count, plural, one {年} other {年}}",
@@ -801,6 +830,8 @@
"day": "日",
"days": "日",
"deduplicate_all": "全て重複排除",
+ "default_quality_subtitle": "共有する際に使われる品質。共有を長押しすることで毎回選択することができます。",
+ "default_share_quality": "デフォルトの共有される品質",
"delete": "削除",
"delete_action_confirmation_message": "この項目を削除しますか?まず、この項目はサーバー上のゴミ箱へ移動されます。その後、あなたのデバイス上から削除するかを決めていただきます",
"delete_action_prompt": "{count}項目を削除しました",
@@ -1083,6 +1114,7 @@
"failed": "失敗",
"failed_count": "失敗: {count}",
"failed_to_authenticate": "認証に失敗しました",
+ "failed_to_delete_file": "ファイルの削除に失敗しました。",
"failed_to_load_assets": "写真/動画のロードに失敗しました",
"failed_to_load_folder": "フォルダーの読み込みに失敗",
"favorite": "お気に入り",
@@ -1187,6 +1219,7 @@
"individual_share": "1枚の共有",
"individual_shares": "1枚ずつの共有",
"info": "情報",
+ "integrity_checks": "データの整合性チェック",
"interval": {
"day_at_onepm": "毎日 午後1時",
"hours": "{hours, plural, one {1時間} other {{hours, number}時間}}ごと",
@@ -1226,6 +1259,7 @@
"leave": "退出",
"leave_album": "アルバムから抜ける",
"lens_model": "レンズモデル",
+ "less": "少ない",
"let_others_respond": "他のユーザーの返信を許可する",
"level": "レベル",
"library": "ライブラリ",
@@ -1247,6 +1281,7 @@
"linked_oauth_account": "リンクされたOAuthアカウント",
"list": "リスト",
"live": "ライブ",
+ "load_more": "さらに表示",
"loading": "読み込み中",
"loading_search_results_failed": "検索結果を読み込めませんでした",
"local": "ローカル",
@@ -1287,9 +1322,9 @@
"login_form_failed_login": "ログインエラーが発生しました。サーバーのURL・メールアドレス・パスワードを再確認してください。",
"login_form_handshake_exception": "Handshake Exceptionエラーが発生しました。自己署名証明書を設定から有効にしてください。",
"login_form_password_hint": "パスワード",
- "login_form_server_empty": "URLを入力",
+ "login_form_server_empty": "URLを入力してください",
"login_form_server_error": "サーバーに接続できません",
- "login_has_been_disabled": "ログインは無効化されています。",
+ "login_has_been_disabled": "ログインは無効化されています",
"login_password_changed_error": "パスワードの変更でエラーが発生しました",
"login_password_changed_success": "パスワードの変更に成功",
"logout_all_device_confirmation": "本当に全てのデバイスからログアウトしますか?",
@@ -1340,6 +1375,7 @@
"map_location_picker_page_use_location": "この位置情報を使う",
"map_location_service_disabled_content": "現在地の項目を表示するには位置情報がオンである必要があります。有効化しますか?",
"map_location_service_disabled_title": "位置情報がオフです",
+ "map_marker_for_image": "{city}、{country}で撮影された画像の地図マーカー",
"map_marker_with_image": "画像の地図マーカー",
"map_no_location_permission_content": "現在地の項目を表示するには位置情報へのアクセスが必要です。許可しますか?",
"map_no_location_permission_title": "位置情報へのアクセスが拒否されました",
@@ -1385,6 +1421,7 @@
"time_value_remaining": "残り {time}",
"unmute": "ミュート解除",
"unsupported_error_description": "サポートされていないエラーが発生しました。 サーバやネットワークに異常があるか、ブラウザがこのフォーマットをサポートしていません.",
+ "video_not_loaded_unknown_time": "動画が読み込まれませんでした、時間不明。",
"video_player": "動画プレーヤー",
"volume": "音量"
},
@@ -1404,6 +1441,7 @@
"merge_people_prompt": "これらの人物を統合しますか? この操作は元に戻せません。",
"merge_people_successfully": "人物の統合に成功しました",
"merged_people_count": "{count, plural, one {#人} other {#人}}の人物を統合しました",
+ "minFaces": "最小面数",
"minFaces_description": "その人物が表示されるために必要な顔認識数の最小値",
"minimize": "最小化",
"minute": "分",
@@ -1415,6 +1453,7 @@
"modify_date": "日付の修正",
"month": "月",
"more": "もっと表示",
+ "motion": "動き",
"move": "移動",
"move_off_locked_folder": "鍵付きフォルダーから出す",
"move_to": "移動する",
@@ -1425,6 +1464,8 @@
"moved_to_trash": "ゴミ箱に移動しました",
"mute_memories": "メモリーのミュート",
"my_albums": "私のアルバム",
+ "my_immich_description": "現在のページを私のImmichリンクとしてコピーする",
+ "my_immich_title": "私のImmichリンク",
"name": "名前",
"name_or_nickname": "名前またはニックネーム",
"name_required": "名前は必須項目です",
@@ -1439,6 +1480,7 @@
"never": "行わない",
"new_album": "新たなアルバム",
"new_api_key": "新しいAPI キー",
+ "new_feature": "新機能",
"new_password": "新しいパスワード",
"new_person": "新しい人物",
"new_pin_code": "新しいPINコード",
@@ -1476,13 +1518,19 @@
"no_results": "結果がありません",
"no_results_description": "同義語やより一般的なキーワードを試してください",
"no_shared_albums_message": "アルバムを作成して写真や動画を共有しましょう",
+ "no_steps": "まだステップが追加されていません",
"none": "なし",
"not_allowed": "許可されていません",
"not_available": "適用なし",
"not_in_any_album": "どのアルバムにも入っていない",
"not_selected": "選択なし",
+ "not_set": "未設定",
"notes": "注意",
"nothing_here_yet": "まだ何も無いようです",
+ "notification_backup_reliability": "バックグラウンドでのバックアップが正常に行われるため、通知を許可してください。",
+ "notification_enabled_list_tile_content": "Immichは、バックグラウンドでバックアップを行うため、通知の権限を使用しています。これらはデバイスの設定で管理することができます。",
+ "notification_enabled_list_tile_open_button": "設定を開く",
+ "notification_enabled_list_tile_title": "通知が許可されました",
"notification_permission_dialog_content": "通知を許可するには設定を開いてオンにしてください",
"notification_permission_list_tile_content": "通知の許可 をオンにしてください",
"notification_permission_list_tile_enable_button": "通知をオンにする",
@@ -1494,6 +1542,8 @@
"obtainium_configurator": "Obtainiumの設定",
"obtainium_configurator_instructions": "Obtainiumを使用すると、Immich GitHubのリリースから直接Androidアプリをインストールおよびアップデートできます。APIキーを作成し、バリアントを選択してObtainiumの設定リンクを作成してください",
"ocr": "OCR",
+ "ocr_body": "Immichは写真に写っている文字を認識できるようになったため、画像検索がしやすくなりました。",
+ "ocr_title": "写真の中からテキストを探す",
"official_immich_resources": "公式Immichリソース",
"offline": "オフライン",
"offset": "オフセット",
@@ -1512,6 +1562,8 @@
"open": "開く",
"open_calendar": "カレンダーを開く",
"open_in_browser": "ブラウザで開く",
+ "open_in_immich_body": "Androidデバイスで、Immichをデフォルトの写真ギャラリーとして設定することで、ほかのアプリから写真がアクセスしやすくなります。",
+ "open_in_immich_title": "Immichで写真を開く",
"open_in_map_view": "地図表示で見る",
"open_in_openstreetmap": "OpenStreetMapで開く",
"open_the_search_filters": "検索フィルタを開く",
@@ -1520,6 +1572,7 @@
"organize_into_albums": "アルバムに追加して整理する",
"organize_into_albums_description": "既存の写真を、現在の同期設定に基づきアルバムに追加する",
"organize_your_library": "ライブラリを整理",
+ "orientation": "画像の向き",
"original": "オリジナル",
"other": "その他",
"other_devices": "その他のデバイス",
@@ -1594,6 +1647,8 @@
"play_original_video_setting_description": "トランスコードされた動画よりも、オリジナルの動画を優先して再生します。オリジナルのアセットが互換性がない場合、正しく再生されない可能性があります。",
"play_transcoded_video": "トランスコード済みの動画を再生する",
"please_auth_to_access": "アクセスするには認証が必要です",
+ "plugin_method_filter_type": "フィルター",
+ "plugin_method_filter_type_description": "この方法では、イベントをフィルタリングし、条件に応じて次のステップの実行を止めることができます。",
"port": "ポートレート",
"preferences_settings_subtitle": "アプリに関する設定",
"preferences_settings_title": "設定",
@@ -1614,6 +1669,7 @@
"profile_drawer_readonly_mode": "読み取り専用モードが有効です。ユーザーのアイコンを長押しして読み取り専用モードを解除してください。",
"profile_image_of_user": "{user} のプロフィール画像",
"profile_picture_set": "プロフィール画像が設定されました。",
+ "projection_type": "投写方式",
"public_album": "公開アルバム",
"public_share": "公開共有",
"purchase_account_info": "サポーター",
@@ -1666,7 +1722,10 @@
"recent": "最近",
"recent_searches": "最近の検索",
"recently_added": "最近追加された項目",
+ "recently_added_body": "あなたが最近追加した項目にすぐアクセスすることができるページがあります。",
+ "recently_added_description": "Immichにアップロードされた日時順に並べられた項目を閲覧する",
"recently_added_page_title": "最近",
+ "recently_added_title": "最近追加された項目",
"recently_taken": "最近撮られたもの",
"refresh": "更新",
"refresh_encoded_videos": "エンコードされた動画を更新",
@@ -1686,6 +1745,7 @@
"remove_assets_shared_link_confirmation": "本当にこの共有リンクから{count, plural, one {#個} other {#個}}の写真/動画を削除しますか?",
"remove_assets_title": "写真/動画を削除しますか?",
"remove_custom_date_range": "カスタム日付範囲を削除",
+ "remove_filter": "フィルターを除く",
"remove_from_album": "アルバムから削除",
"remove_from_album_action_prompt": "{count}項目がアルバムから除かれました",
"remove_from_favorites": "お気に入り解除",
@@ -1748,6 +1808,8 @@
"scan_library": "スキャン",
"scanning": "スキャン中",
"scanning_for_album": "アルバムをスキャン中…",
+ "screencast_mode_description": "画面上にキーボードとマウスのインジケーターを表示する",
+ "screencast_mode_title": "スクリーンキャストの切り替え",
"search": "検索",
"search_albums": "アルバムを検索",
"search_by_context": "写真の内容で検索",
@@ -1755,6 +1817,8 @@
"search_by_description_example": "京都の桜めぐり",
"search_by_filename": "ファイル名もしくは拡張子で検索",
"search_by_filename_example": "例: IMG_1234.JPG もしくは PNG",
+ "search_by_full_path": "フルパスまたはフォルダーで検索",
+ "search_by_full_path_example": "/ユーザー/プロジェクト/3Dプリント/2026年7月1日 - プロジェクト、3D、プリント、2026などの語句で検索できます。",
"search_by_ocr": "OCR検索",
"search_by_ocr_example": "バス 時刻表",
"search_camera_lens_model": "レンズモデルで検索…",
@@ -1816,6 +1880,7 @@
"select_person": "人物を選択",
"select_person_to_tag": "タグを付ける人物を選んでください",
"select_photos": "写真を選択",
+ "select_quality": "品質を選択する",
"select_trash_all": "全て削除",
"selected": "選択済み",
"selected_count": "{count, plural, other {#個選択済み}}",
@@ -1865,6 +1930,10 @@
"share": "共有",
"share_dialog_preparing": "準備中",
"share_link": "共有リンク",
+ "share_original": "元の解像度(大)を使用する",
+ "share_preview": "サムネイル(小)を使用する",
+ "share_quality_body": "共有する前に、共有を長押しして画質を選択してください。",
+ "share_quality_title": "共有する際の画質を選択してください",
"shared": "共有済み",
"shared_album_activities_input_disable": "コメントはオフになってます",
"shared_album_activity_remove_content": "このアクティビティを削除しますか?",
@@ -1880,6 +1949,8 @@
"shared_link_clipboard_copied_massage": "クリップボードにコピーしました",
"shared_link_create_error": "共有用のリンク作成時にエラーが発生しました",
"shared_link_custom_url_description": "この共有リンクにカスタムURLでアクセス",
+ "shared_link_custom_url_title": "カスタムのURL",
+ "shared_link_custom_url_warning": "警告:「/」が入ったカスタムのURL名は、期待どおりに動作しない可能性があります。",
"shared_link_edit_description_hint": "説明を追加",
"shared_link_edit_expire_after_option_day": "1日",
"shared_link_edit_expire_after_option_days": "{count}日",
@@ -1924,6 +1995,7 @@
"show_in_timeline": "タイムラインに表示",
"show_in_timeline_setting_description": "このユーザーの写真と動画をタイムラインに表示",
"show_keyboard_shortcuts": "キーボードショートカットを表示",
+ "show_less": "表示数をへらす",
"show_metadata": "メタデータを見る",
"show_or_hide_info": "情報を表示/非表示",
"show_password": "パスワードを表示",
@@ -1932,6 +2004,7 @@
"show_schema": "スキーマを表示",
"show_search_options": "検索オプションを表示",
"show_shared_links": "共有リンクを表示",
+ "show_slideshow_metadata_overlay": "画像情報を表示",
"show_slideshow_transition": "スライドショーのトランジションを表示",
"show_supporter_badge": "サポーターバッジ",
"show_supporter_badge_description": "サポーターバッジを表示",
@@ -1943,13 +2016,21 @@
"sign_out": "サインアウト",
"sign_up": "登録",
"size": "サイズ",
+ "skip": "スキップする",
"skip_to_content": "コンテンツへスキップ",
"skip_to_folders": "フォルダへスキップ",
"skip_to_tags": "タグへスキップ",
"slideshow": "スライドショー",
+ "slideshow_body": "ゆったりとくつろぎながら、フルスクリーンのスライドショーで写真をお楽しみください。",
+ "slideshow_metadata_overlay_mode": "オーバーレイコンテンツ",
+ "slideshow_metadata_overlay_mode_description_only": "説明のみ",
+ "slideshow_metadata_overlay_mode_full": "フル",
"slideshow_repeat": "スライドショーを繰り返す",
"slideshow_repeat_description": "スライドショーが終わったら始めに戻ります",
"slideshow_settings": "スライドショー設定",
+ "slideshow_title": "スライドショー",
+ "smart_album": "スマートアルバム",
+ "some_assets_already_have_a_location_warning": "選択された項目の一部には、すでに場所が設定されています。",
"sort_albums_by": "この順序でアルバムをソート…",
"sort_created": "作成日",
"sort_items": "項目の数",
@@ -1970,6 +2051,10 @@
"start_date_before_end_date": "開始日は終了日より前でなければなりません",
"state": "都道府県",
"status": "ステータス",
+ "step_delete": "ステップを削除する",
+ "step_delete_confirm": "このステップを削除してもよろしいですか?",
+ "step_details": "ステップの詳細",
+ "steps": "ステップ",
"stop_casting": "キャストを停止",
"stop_motion_photo": "ストップモーション写真",
"stop_photo_sharing": "写真の共有を無効化しますか?",
@@ -1995,6 +2080,8 @@
"sync_status": "同期の状態",
"sync_status_subtitle": "同期システムを確認・管理",
"sync_upload_album_setting_subtitle": "サーバー上のアルバムの内容を端末上のアルバムと同期します (サーバーにアルバムが無い場合自動で作成されます。また、アップロードされていない写真や動画は同期されません)",
+ "system_theme": "システムのテーマ",
+ "system_theme_command_description": "システムのテーマを使用する{value}",
"tag": "タグ付けする",
"tag_assets": "写真/動画にタグ付けする",
"tag_created": "タグ: {tag} を作成しました",
@@ -2048,10 +2135,12 @@
"trash_page_info": "ゴミ箱に移動したアイテムは{days}日後に削除されます",
"trashed_items_will_be_permanently_deleted_after": "ゴミ箱に入れられたアイテムは{days, plural, one {#日} other {#日}}後に完全に削除されます。",
"trigger": "トリガー",
- "trigger_asset_uploaded": "アセットがアップロード",
+ "trigger_asset_metadata_extraction": "項目のメタデータの抽出",
+ "trigger_asset_metadata_extraction_description": "項目からEXIFメタデータが抽出された際にトリガーされる",
+ "trigger_asset_uploaded": "アセットをアップロード",
"trigger_asset_uploaded_description": "新しい項目がアップロードされたときにトリガーされます",
"trigger_person_recognized": "認識された人物",
- "trigger_person_recognized_description": "人物が検知された際のトリガー",
+ "trigger_person_recognized_description": "人物が検知された際に実行されます",
"troubleshoot": "トラブルシューティング",
"type": "タイプ",
"unable_to_change_pin_code": "PINコードを変更できませんでした",
@@ -2067,6 +2156,7 @@
"unknown": "不明",
"unknown_country": "不明な国",
"unknown_date": "不明な日付",
+ "unknown_schema": "不明なスキーマ",
"unknown_year": "不明な年",
"unlimited": "無制限",
"unlink_motion_video": "モーションビデオのリンクを解除",
@@ -2101,9 +2191,12 @@
"upload_status_errors": "エラー",
"upload_status_uploaded": "アップロード済",
"upload_success": "アップロード成功、新しくアップロードされた写真/動画を見るにはページを更新してください。",
+ "upload_to_album_body": "手動アップロード機能を使用しない場合、ローカルの写真をアップロードする際に直接アルバムへ追加できるようになりました。アップロードした後に改めてアルバムへ追加する手間はもう必要ありません。",
+ "upload_to_album_title": "アルバムに直接アップロードする",
"upload_to_immich": "Immichにアップロード ({count})",
"uploading": "アップロード中",
"uploading_media": "メディアをアップロード中",
+ "uploads": "アップロード",
"url": "URL",
"usage": "使用容量",
"use_biometric": "生体認証をご利用ください",
@@ -2111,6 +2204,7 @@
"use_browser_locale_description": "ブラウザの言語と地域の設定に従って、日付・時刻・数値を書式設定します",
"use_current_connection": "現在の接続情報を使用",
"use_custom_date_range": "代わりにカスタム日付範囲を使用",
+ "use_template": "テンプレートを使用",
"user": "ユーザー",
"user_has_been_deleted": "このユーザーは削除されました",
"user_id": "ユーザーID",
@@ -2138,6 +2232,7 @@
"video": "動画",
"video_hover_setting": "ホバー時にサムネイルで動画を再生",
"video_hover_setting_description": "マウスが項目の上にあるときに動画のサムネイルを再生します。無効時でも再生アイコンにカーソルを合わせると再生を開始できます。",
+ "video_quality": "画質",
"videos": "ビデオ",
"videos_count": "{count, plural, one {#個} other {#個}}の動画",
"view": "見る",
@@ -2164,8 +2259,13 @@
"week": "週",
"welcome": "ようこそ",
"welcome_to_immich": "Immichにようこそ",
+ "whats_new": "新着情報",
+ "whats_new_settings_subtitle": "Immichの新着情報をチェック",
+ "whats_new_version": "バージョン{version}",
+ "when": "いつ",
"width": "幅",
"wifi_name": "Wi-Fiの名前(SSID)",
+ "workflow": "ワークフロー",
"workflow_delete_prompt": "このワークフローをほんとうに削除しますか?",
"workflow_deleted": "ワークフロー削除完了",
"workflow_description": "ワークフローの説明文",
@@ -2175,10 +2275,12 @@
"workflow_name": "ワークフロー名称",
"workflow_navigation_prompt": "変更内容を保存せずに終了しますか?",
"workflow_summary": "ワークフローのサマリ",
+ "workflow_templates": "ワークフローのテンプレート",
"workflow_update_success": "ワークフローの更新に成功しました",
"workflows": "ワークフロー",
"workflows_help_text": "ワークフローはあなたのアセットに対し、トリガーやフィルターを設定することでアクションを自動化します",
"wrong_pin_code": "PINコードが間違っています",
+ "x_of_total": "{x}÷{total}",
"year": "年",
"years_ago": "{years, plural, one {#年} other {#年}}前",
"yes": "はい",
diff --git a/i18n/ka.json b/i18n/ka.json
index 35b1802b07..0a0d4c095e 100644
--- a/i18n/ka.json
+++ b/i18n/ka.json
@@ -80,7 +80,6 @@
"image_format": "ფორმატი",
"image_format_description": "WebP ფორმატი JPEG-ზე პატარა ფაილებს აწარმოებს, მაგრამ მის დამზადებას უფრო მეტი დრო სჭირდება.",
"image_fullsize_enabled": "ჩართე სრული ზომის ფოტოების გენერაცია",
- "image_fullsize_enabled_description": "დააგენერირე მთლიანი ზომის ფოტოები არა ვებ მეგობრული ფორმატებისთვის. როცა",
"image_fullsize_quality_description": "მთლიანი ზომის სურათის ხარისხი 1-100მდეა. მეტი არის უკეტეთეში, მაგრამ წარმოქმნის უფრო დიდ ფაილებს.",
"image_fullsize_title": "სრული ზომის გამოსახულების პარამეტრები",
"image_prefer_embedded_preview": "ჩაშენებული გადახედვის უპირატესობა",
@@ -135,6 +134,7 @@
"transcoding_acceleration_vaapi": "VAAPI",
"transcoding_hardware_acceleration": "ჰარდვეარული ამაჩქარებელი",
"transcoding_policy": "ტრანსკოდირების პოლიტიკა",
+ "transcoding_realtime_resolutions": "გარჩევადობები",
"transcoding_threads": "ნაკადები",
"transcoding_tone_mapping": "ტონების ასახვა"
},
@@ -168,6 +168,8 @@
"canceling": "უქმდება",
"cast": "ტრანსლაცია",
"charging": "იტენება",
+ "checksum": "საკონტროლო ჯამი",
+ "choose": "არჩევა",
"city": "ქალაქი",
"clear": "გასუფთავება",
"client_cert_import": "შემოტანა",
@@ -187,6 +189,7 @@
"created": "შექმნილია",
"created_at": "შეიქმნა",
"crop": "ამოჭრა",
+ "crop_aspect_ratio_original": "ორიგინალი",
"dark": "მუქი",
"date": "თარიღი",
"day": "დღე",
@@ -203,6 +206,7 @@
"download": "გადმოწერა",
"download_settings": "გადმოწერა",
"downloading": "მიმდინარეობს გადმოწერა",
+ "duplicate": "დუბლირება",
"duplicates": "დუბლიკატები",
"duration": "ხანგრძლივობა",
"edit": "ჩასწორება",
@@ -214,6 +218,7 @@
"enqueued": "რიგში ჩასმულია",
"error": "შეცდომა",
"exif": "Exif",
+ "expand": "გამოშლა",
"expired": "ვადაამოწურულია",
"explore": "დათვალიერება",
"explorer": "გამცილებელი",
@@ -228,6 +233,7 @@
"filename": "ფაილის სახელი",
"filetype": "ფაილის ტიპი",
"filter": "ფილტრი",
+ "filters": "ფილტრები",
"first": "პირველი",
"folder": "საქაღალდე",
"folders": "საქაღალდეები",
@@ -253,6 +259,7 @@
"licenses": "ლიცენზიები",
"light": "ღია",
"like": "მოწონება",
+ "link": "ბმული",
"list": "სია",
"loading": "ჩატვირთვა",
"local": "ლოკალური",
@@ -268,6 +275,14 @@
"make": "მწარმოებელი",
"map": "რუკა",
"matches": "დამთხვევები",
+ "media_chrome": {
+ "auto": "ავტო",
+ "captions_off": "გამორთ",
+ "loop": "მარყუჟი",
+ "mute": "დადუმება",
+ "second": "წამი",
+ "unmute": "დადუმების გაუქმება"
+ },
"memories": "მოგონებები",
"memory": "მეხსიერება",
"menu": "მენიუ",
@@ -279,6 +294,7 @@
"model": "მოდელი",
"month": "თვე",
"more": "მეტი",
+ "motion": "მოძრავი",
"move": "გადატანა",
"name": "სახელი",
"navigate": "ნავიგაცია",
@@ -355,6 +371,7 @@
"save": "შენახვა",
"saved": "შენახულია",
"scan_library": "სკანირება",
+ "scanning": "სკანირება",
"search": "ძებნა",
"search_by_ocr_example": "ლატე",
"search_filter_date": "თარიღი",
@@ -387,6 +404,7 @@
"success": "წარმატება",
"suggestions": "რჩევები",
"support": "მხარდაჭერა",
+ "supporter": "მხარდამჭერი",
"sync": "სინქრონიზაცია",
"tag": "ჭდე",
"tags": "ჭდეები",
@@ -430,10 +448,12 @@
"videos": "ვიდეოები",
"view": "დათვალიერება",
"view_name": "ხედი",
+ "visibility": "ხოლვადობა",
"waiting": "მოლოდინი",
"warning": "გაფრთხილება",
"week": "კვირა",
"welcome": "მოგესალმებით",
+ "width": "სიგანე",
"year": "წელი",
"yes": "დიახ"
}
diff --git a/i18n/kn.json b/i18n/kn.json
index ea0cf47dc9..97d5aab946 100644
--- a/i18n/kn.json
+++ b/i18n/kn.json
@@ -23,6 +23,7 @@
"add_location": "ಸ್ಥಳ ಸೇರಿಸಿ",
"add_partner": "ಪಾಲುದಾರರನ್ನು ಸೇರಿಸಿ",
"add_photos": "ಫೋಟೋಗಳನ್ನು ಸೇರಿಸಿ",
+ "add_step": "ಹಂತ ಸೇರಿಸಿ",
"add_tag": "ಟ್ಯಾಗ್ ಸೇರಿಸಿ",
"add_to": "ಸೇರಿಸಿ…",
"add_to_album": "ಆಲ್ಬಮ್ಗೆ ಸೇರಿಸಿ",
@@ -71,6 +72,7 @@
"cron_expression_description": "ಕ್ರಾನ್ ಸ್ವರೂಪವನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ಕ್ಯಾನಿಂಗ್ ಮಧ್ಯಂತರವನ್ನು ಹೊಂದಿಸಿ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ದಯವಿಟ್ಟು ಉದಾ. Crontab Guru ಅನ್ನು ನೋಡಿ",
"cron_expression_presets": "ಕ್ರಾನ್ ಅಭಿವ್ಯಕ್ತಿ ಪೂರ್ವನಿಗದಿಗಳು",
"disable_login": "ಲಾಗಿನ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ",
+ "download_csv": "ಸಿಎಸ್ವಿ ಡೌನ್ ಲೋಡ್ ಮಾಡಿ",
"duplicate_detection_job_description": "ಒಂದೇ ರೀತಿಯ ಚಿತ್ರಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸ್ವತ್ತುಗಳ ಮೇಲೆ ಯಂತ್ರ ಕಲಿಕೆಯನ್ನು ರನ್ ಮಾಡಿ. ಸ್ಮಾರ್ಟ್ ಹುಡುಕಾಟವನ್ನು ಅವಲಂಬಿಸಿದೆ",
"exclusion_pattern_description": "ನಿಮ್ಮ ಲೈಬ್ರರಿಯನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡುವಾಗ ಫೈಲ್ಗಳು ಮತ್ತು ಫೋಲ್ಡರ್ಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲು ಎಕ್ಸ್ಕ್ಲೂಷನ್ ಪ್ಯಾಟರ್ನ್ಗಳು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತವೆ. ನೀವು ಆಮದು ಮಾಡಿಕೊಳ್ಳಲು ಬಯಸದ ಫೈಲ್ಗಳನ್ನು ಹೊಂದಿರುವ ಫೋಲ್ಡರ್ಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಉದಾಹರಣೆಗೆ RAW ಫೈಲ್ಗಳು.",
"export_config_as_json_description": "ಪ್ರಸ್ತುತ ಸಿಸ್ಟಮ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು JSON ಫೈಲ್ ಆಗಿ ಡೌನ್ಲೋಡ್ ಮಾಡಿ",
@@ -105,6 +107,20 @@
"image_thumbnail_quality_description": "ಥಂಬ್ನೇಲ್ ಗುಣಮಟ್ಟ 1 ರಿಂದ 100 ರವರೆಗೆ. ಹೆಚ್ಚಿನದು ಉತ್ತಮ, ಆದರೆ ದೊಡ್ಡ ಫೈಲ್ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.",
"image_thumbnail_title": "ಥಂಬ್ನೇಲ್ ಸೆಟ್ಟಿಂಗ್ಗಳು",
"import_config_from_json_description": "JSON ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡುವ ಮೂಲಕ ಸಿಸ್ಟಮ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಆಮದು ಮಾಡಿ",
+ "integrity_checks_checksum_files": "ಚೆಕ್ಸಮ್ ಫೈಲ್ ಗಳು",
+ "integrity_checks_checksum_files_description": "ಚೆಕ್ಸಮ್ ಚೆಕ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ",
+ "integrity_checks_checksum_files_enable_description": "ಚೆಕ್ಸಮ್ ಚೆಕ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ",
+ "integrity_checks_checksum_files_percentage_limit": "ಶೇಕಡಾವಾರು ಮಿತಿ",
+ "integrity_checks_checksum_files_percentage_limit_description": "ಪ್ರತಿ ಮಧ್ಯಂತರದಲ್ಲಿ ಚೆಕ್ಸಮ್ ಚೆಕ್ ಎಷ್ಟು ಚಲಾಯಿಸಬೇಕು ಎಂಬುದಕ್ಕೆ 0.01 ಮತ್ತು 1 ರ ನಡುವಿನ ಗರಿಷ್ಠ ಶೇಕಡಾವಾರು ಪ್ರಮಾಣವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ.",
+ "integrity_checks_checksum_files_time_limit": "ಸಮಯ ಮಿತಿ",
+ "integrity_checks_checksum_files_time_limit_description": "ಚೆಕ್ಸಮ್ ಚೆಕ್ ಪ್ರತಿ ಮಧ್ಯಂತರವನ್ನು ಚಲಾಯಿಸಬೇಕಾದ ಗರಿಷ್ಠ ಅವಧಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ. (ಮೀ)",
+ "integrity_checks_missing_files_description": "ಆವರ್ತನವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ ಮತ್ತು ಕಾಣೆಯಾದ ಫೈಲ್ ಗಳ ಚೆಕ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ ಅಥವಾ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ",
+ "integrity_checks_missing_files_enable_description": "ಕಾಣೆಯಾದ ಫೈಲ್ ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ",
+ "integrity_checks_settings": "ಸಮಗ್ರತೆ ಪರಿಶೀಲನೆಗಳು",
+ "integrity_checks_settings_description": "ಸಮಗ್ರತೆಯ ಚೆಕ್ ಮಧ್ಯಂತರಗಳನ್ನು ನಿರ್ವಹಿಸಿ",
+ "integrity_checks_untracked_files": "ಅನ್ರ್ಯಾಕ್ ಮಾಡದ ಫೈಲ್ ಗಳು",
+ "integrity_checks_untracked_files_description": "ಆವರ್ತನವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ ಮತ್ತು ಟ್ರ್ಯಾಕ್ ಮಾಡದ ಫೈಲ್ ಗಳನ್ನು ಚೆಕ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ ಅಥವಾ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ",
+ "integrity_checks_untracked_files_enable_description": "ಟ್ರ್ಯಾಕ್ ಮಾಡದ ಫೈಲ್ ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ",
"job_concurrency": "{job} ಸಹವರ್ತಿತ್ವ",
"job_created": "ಕೆಲಸವನ್ನು ರಚಿಸಲಾಗಿದೆ",
"job_not_concurrency_safe": "ಈ ಕೆಲಸವು ಸಹವರ್ತಿತ್ವಕ್ಕೆ ಸುರಕ್ಷಿತವಲ್ಲ.",
@@ -179,9 +195,21 @@
"machine_learning_smart_search_enabled": "ಸ್ಮಾರ್ಟ್ ಹುಡುಕಾಟವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ",
"machine_learning_smart_search_enabled_description": "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಚಿತ್ರಗಳನ್ನು ಸ್ಮಾರ್ಟ್ ಹುಡುಕಾಟಕ್ಕಾಗಿ ಎನ್ಕೋಡ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.",
"machine_learning_url_description": "ಯಂತ್ರ ಕಲಿಕೆ ಸರ್ವರ್ನ URL. ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು URL ಗಳನ್ನು ಒದಗಿಸಿದರೆ, ಮೊದಲಿನಿಂದ ಕೊನೆಯವರೆಗೆ, ಪ್ರತಿ ಸರ್ವರ್ ಯಶಸ್ವಿಯಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸುವವರೆಗೆ ಒಂದೊಂದಾಗಿ ಪ್ರಯತ್ನಿಸಲಾಗುತ್ತದೆ. ಪ್ರತಿಕ್ರಿಯಿಸದ ಸರ್ವರ್ಗಳನ್ನು ಅವರು ಆನ್ಲೈನ್ಗೆ ಹಿಂತಿರುಗುವವರೆಗೆ ತಾತ್ಕಾಲಿಕವಾಗಿ ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.",
+ "maintenance_backup_management": "ಬ್ಯಾಕಪ್ ನಿರ್ವಹಣೆ",
"maintenance_delete_backup": "ಬ್ಯಾಕಪ್ ಅಳಿಸಿ",
"maintenance_delete_backup_description": "ಈ ಫೈಲ್ ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ.",
"maintenance_delete_error": "ಬ್ಯಾಕಪ್ ಅಳಿಸಲು ವಿಫಲವಾಗಿದೆ.",
+ "maintenance_integrity_check": "ಪರಿಶೀಲಿಸಿ",
+ "maintenance_integrity_check_all": "ಎಲ್ಲವನ್ನೂ ಪರಿಶೀಲಿಸಿ",
+ "maintenance_integrity_checksum_mismatch": "ಚೆಕ್ಸಮ್ ಮಿಸ್ಮ್ಯಾಚ್",
+ "maintenance_integrity_checksum_mismatch_description": "ಆನ್-ಡಿಸ್ಕ್ ಚೆಕ್ಸಮ್ ಚೆಕ್ಸಮ್ ಅನ್ನು ತಪ್ಪಾಗಿ ಹೇಳುವ ಫೈಲ್ ಗಳು ಇಮ್ಮಿಚ್ ಅದರ ಡೇಟಾಬೇಸ್ ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದೆ.",
+ "maintenance_integrity_checksum_mismatch_job": "ಚೆಕಮ್ ಮಿಸ್ಮ್ಯಾಚ್ ಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಿ",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "ರಿಫ್ರೆಶ್ ಚೆಕ್ಸಮ್ ಮಿಸ್ಮ್ಯಾಚ್ ವರದಿಗಳು",
+ "maintenance_integrity_missing_file_description": "ಅದನ್ನು ಫೈಲ್ ಮಾಡುತ್ತದೆ ಇಮ್ಮಿಚ್ ಅದರ ಡೇಟಾಬೇಸ್ ನಲ್ಲಿ ಟ್ರ್ಯಾಕ್ ಮಾಡಲಾಗಿದೆ ಆದರೆ ಫೈಲ್ ಸಿಸ್ಟಮ್ ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ.",
+ "maintenance_integrity_missing_file_job": "ಕಾಣೆಯಾದ ಫೈಲ್ ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ",
+ "maintenance_integrity_missing_file_refresh_job": "ಕಾಣೆಯಾದ ಫೈಲ್ ವರದಿಗಳನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿ",
+ "maintenance_integrity_report": "ಸಮಗ್ರತೆ ವರದಿ",
+ "maintenance_integrity_untracked_file_description": "ಫೈಲ್ ಗಳು ಇಮ್ಮಿಚ್ಅದರ ಡೈರೆಕ್ಟರಿಗಳು ಇಮ್ಮಿಚ್ ಯಾವುದೇ ದಾಖಲೆಯನ್ನು ಹೊಂದಿಲ್ಲ.",
"maintenance_restore_backup": "ಬ್ಯಾಕಪ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಿ",
"maintenance_restore_backup_description": "ಆಯ್ಕೆ ಮಾಡಿದ ಬ್ಯಾಕಪ್ನಿಂದ ಇಮ್ಮಿಚ್ ಅನ್ನು ಅಳಿಸಿಹಾಕಲಾಗುತ್ತದೆ ಮತ್ತು ಮರುಸ್ಥಾಪಿಸಲಾಗುತ್ತದೆ. ಮುಂದುವರಿಯುವ ಮೊದಲು ಬ್ಯಾಕಪ್ ಅನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ.",
"maintenance_restore_backup_different_version": "ಈ ಬ್ಯಾಕಪ್ ಅನ್ನು ಇಮ್ಮಿಚ್ನ ವಿಭಿನ್ನ ಆವೃತ್ತಿಯೊಂದಿಗೆ ರಚಿಸಲಾಗಿದೆ!",
@@ -256,6 +284,8 @@
"notification_enable_email_notifications": "ಇಮೇಲ್ ಅಧಿಸೂಚನೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ",
"notification_settings": "ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್ಗಳು",
"notification_settings_description": "ಇಮೇಲ್ ಸೇರಿದಂತೆ ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ನಿರ್ವಹಿಸಿ",
+ "oauth_allow_insecure_requests": "ಅಸುರಕ್ಷಿತ ವಿನಂತಿಗಳನ್ನು ಅನುಮತಿಸಿ",
+ "oauth_allow_insecure_requests_description": "ಎಚ್ಚರಿಕೆ: ಇದು ಟಿಎಲ್ಎಸ್ ಪ್ರಮಾಣಪತ್ರ ಮೌಲ್ಯಮಾಪನವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ OAuth ವಿನಂತಿಗಳು ಮತ್ತು ಎಂಐಟಿಎಂ ದಾಳಿಗೆ ನಿಮ್ಮನ್ನು ಬಹಿರಂಗಪಡಿಸಬಹುದು.",
"oauth_auto_launch": "ಸ್ವಯಂ ಉಡಾವಣೆ",
"oauth_auto_launch_description": "ಲಾಗಿನ್ ಪುಟಕ್ಕೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿದ ನಂತರ OAuth ಲಾಗಿನ್ ಹರಿವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪ್ರಾರಂಭಿಸಿ",
"oauth_auto_register": "ಸ್ವಯಂ ನೋಂದಣಿ",
@@ -266,6 +296,7 @@
"oauth_mobile_redirect_uri": "ಮೊಬೈಲ್ ಮರುನಿರ್ದೇಶನ URI",
"oauth_mobile_redirect_uri_override": "ಮೊಬೈಲ್ ಮರುನಿರ್ದೇಶನ URI ಅತಿಕ್ರಮಣ",
"oauth_mobile_redirect_uri_override_description": "''{callback}'' ನಂತಹ ಮೊಬೈಲ್ URI ಅನ್ನು OAuth ಪೂರೈಕೆದಾರರು ಅನುಮತಿಸದಿದ್ದಾಗ ಸಕ್ರಿಯಗೊಳಿಸಿ",
+ "oauth_prompt_description": "ಪ್ರಾಂಪ್ಟ್ ಪ್ಯಾರಾಮೀಟರ್ (ಉದಾ. ಸೆಲೆಕ್ಟ್_ಕೌಂಟ್, ಲಾಗಿನ್, ಒಪ್ಪಿಗೆ)",
"oauth_role_claim": "ಪಾತ್ರದ ಹಕ್ಕು",
"oauth_role_claim_description": "ಈ ಹಕ್ಕಿನ ಉಪಸ್ಥಿತಿಯ ಆಧಾರದ ಮೇಲೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ವಾಹಕ ಪ್ರವೇಶವನ್ನು ನೀಡಿ. ಹಕ್ಕಿನಲ್ಲಿ 'ಬಳಕೆದಾರ' ಅಥವಾ 'ನಿರ್ವಾಹಕ' ಇರಬಹುದು.",
"oauth_settings": "OAuth",
@@ -292,6 +323,8 @@
"refreshing_all_libraries": "ಎಲ್ಲಾ ಗ್ರಂಥಾಲಯಗಳನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಲಾಗುತ್ತಿದೆ",
"registration": "ನಿರ್ವಾಹಕ ನೋಂದಣಿ",
"registration_description": "ನೀವು ಸಿಸ್ಟಂನಲ್ಲಿ ಮೊದಲ ಬಳಕೆದಾರರಾಗಿರುವುದರಿಂದ, ನಿಮ್ಮನ್ನು ನಿರ್ವಾಹಕರಾಗಿ ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಆಡಳಿತಾತ್ಮಕ ಕಾರ್ಯಗಳಿಗೆ ಜವಾಬ್ದಾರರಾಗಿರುತ್ತೀರಿ ಮತ್ತು ಹೆಚ್ಚುವರಿ ಬಳಕೆದಾರರನ್ನು ನೀವು ರಚಿಸುತ್ತೀರಿ.",
+ "release_channel_release_candidate": "ಬಿಡುಗಡೆ ಅಭ್ಯರ್ಥಿ",
+ "release_channel_stable": "ಸ್ಥಿರ",
"remove_failed_jobs": "ವಿಫಲವಾದ ಕೆಲಸಗಳನ್ನು ತೆಗೆದುಹಾಕಿ",
"require_password_change_on_login": "ಮೊದಲ ಲಾಗಿನ್ನಲ್ಲಿ ಬಳಕೆದಾರರು ಪಾಸ್ವರ್ಡ್ ಬದಲಾಯಿಸಬೇಕಾಗುತ್ತದೆ",
"reset_settings_to_default": "ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಡೀಫಾಲ್ಟ್ಗೆ ಮರುಹೊಂದಿಸಿ",
@@ -386,6 +419,12 @@
"transcoding_preferred_hardware_device_description": "VAAPI ಮತ್ತು QSV ಗೆ ಮಾತ್ರ ಅನ್ವಯಿಸುತ್ತದೆ. ಹಾರ್ಡ್ವೇರ್ ಟ್ರಾನ್ಸ್ಕೋಡಿಂಗ್ಗಾಗಿ ಬಳಸುವ dri ನೋಡ್ ಅನ್ನು ಹೊಂದಿಸುತ್ತದೆ.",
"transcoding_preset_preset": "ಪೂರ್ವನಿಗದಿ (-ಪೂರ್ವನಿಗದಿ)",
"transcoding_preset_preset_description": "ಸಂಕೋಚನ ವೇಗ. ನಿಧಾನವಾದ ಪೂರ್ವನಿಗದಿಗಳು ಚಿಕ್ಕ ಫೈಲ್ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತವೆ ಮತ್ತು ನಿರ್ದಿಷ್ಟ ಬಿಟ್ರೇಟ್ ಅನ್ನು ಗುರಿಯಾಗಿಸಿಕೊಂಡಾಗ ಗುಣಮಟ್ಟವನ್ನು ಹೆಚ್ಚಿಸುತ್ತವೆ. VP9 'ವೇಗ' ಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ವೇಗವನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ.",
+ "transcoding_realtime_description": "ವೀಡಿಯೊವನ್ನು ಸ್ಟ್ರೀಮ್ ಆಗುತ್ತಿರುವುದರಿಂದ ಟ್ರಾನ್ಸ್ ಕೋಡಿಂಗ್ ಅನ್ನು ನೈಜ ಸಮಯದಲ್ಲಿ ನಿರ್ವಹಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಗುಣಮಟ್ಟದ ಸ್ವಿಚಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ, ಆದರೆ ಸರ್ವರ್ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಅವಲಂಬಿಸಿ ಹೆಚ್ಚಿನ ಪ್ಲೇಬ್ಯಾಕ್ ಸುಪ್ತತೆ ಮತ್ತು ಸ್ಟಟರಿಂಗ್ ಅನ್ನು ಉಂಟುಮಾಡಬಹುದು.",
+ "transcoding_realtime_enabled": "ನೈಜ-ಸಮಯದ ಟ್ರಾನ್ಸ್ ಕೋಡಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ",
+ "transcoding_realtime_resolutions": "ನಿರ್ಣಯಗಳು",
+ "transcoding_realtime_resolutions_description": "ನೈಜ-ಸಮಯದ ಟ್ರಾನ್ಸ್ ಕೋಡಿಂಗ್ ಗಾಗಿ ನೀಡಲಾದ ನಿರ್ಣಯಗಳು. ಸರ್ವರ್ ಅವುಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಟ್ರಾನ್ಸ್ ಕೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ ಹೆಚ್ಚಿನ ನಿರ್ಣಯಗಳು ಪ್ಲೇಬ್ಯಾಕ್ ಸಮಸ್ಯೆಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು.",
+ "transcoding_realtime_video_codecs": "ವೀಡಿಯೊ ಕೋಡೆಕ್ ಗಳು",
+ "transcoding_realtime_video_codecs_description": "ನೈಜ-ಸಮಯದ ಟ್ರಾನ್ಸ್ ಕೋಡಿಂಗ್ ಗಾಗಿ ವೀಡಿಯೊ ಕೋಡೆಕ್ ಗಳು ನೀಡಲಾಗುತ್ತದೆ. ಪ್ಲೇಬ್ಯಾಕ್ ಸಮಯದಲ್ಲಿ ಗ್ರಾಹಕರು ತಾವು ಬೆಂಬಲಿಸುವ ಅತ್ಯುತ್ತಮ ಆಯ್ಕೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತಾರೆ. AV1 HEVC ಗಿಂತ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿದೆ, ಇದು H.264 ಗಿಂತ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿದೆ. ಹಾರ್ಡ್ ವೇರ್ ವೇಗವರ್ಧನೆಯನ್ನು ಬಳಸುವಾಗ, ವೇಗವರ್ಧಕವು ಎನ್ಕೋಡ್ ಮಾಡಬಹುದಾದ ಕೋಡೆಕ್ ಗಳನ್ನು ಮಾತ್ರ ಆರಿಸಿ. ಸಾಫ್ಟ್ ವೇರ್ ಟ್ರಾನ್ಸ್ ಕೋಡಿಂಗ್ ಬಳಸುವಾಗ, H.264 AV1 ಗಿಂತ ವೇಗವಾಗಿರುತ್ತದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ, ಅದು HVC ಗಿಂತ ವೇಗವಾಗಿರುತ್ತದೆ.",
"transcoding_reference_frames": "ಉಲ್ಲೇಖ ಚೌಕಟ್ಟುಗಳು",
"transcoding_reference_frames_description": "ನಿರ್ದಿಷ್ಟ ಫ್ರೇಮ್ ಅನ್ನು ಕುಗ್ಗಿಸುವಾಗ ಉಲ್ಲೇಖಿಸಬೇಕಾದ ಫ್ರೇಮ್ಗಳ ಸಂಖ್ಯೆ. ಹೆಚ್ಚಿನ ಮೌಲ್ಯಗಳು ಸಂಕುಚಿತ ದಕ್ಷತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ, ಆದರೆ ಎನ್ಕೋಡಿಂಗ್ ಅನ್ನು ನಿಧಾನಗೊಳಿಸುತ್ತದೆ. 0 ಈ ಮೌಲ್ಯವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹೊಂದಿಸುತ್ತದೆ.",
"transcoding_required_description": "ಸ್ವೀಕರಿಸಿದ ಸ್ವರೂಪದಲ್ಲಿಲ್ಲದ ವೀಡಿಯೊಗಳು ಮಾತ್ರ",
@@ -429,6 +468,8 @@
"user_settings_description": "ಬಳಕೆದಾರ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ನಿರ್ವಹಿಸಿ",
"user_successfully_removed": "ಬಳಕೆದಾರ {email} ಅವರನ್ನು ಯಶಸ್ವಿಯಾಗಿ ತೆಗೆದುಹಾಕಲಾಗಿದೆ.",
"users_page_description": "ನಿರ್ವಾಹಕ ಬಳಕೆದಾರರ ಪುಟ",
+ "version_check_channel": "ಚಾನಲ್ ಬಿಡುಗಡೆ",
+ "version_check_channel_description": "ನೀವು ಆವೃತ್ತಿ ಪ್ರಕಟಣೆಗಳನ್ನು ಪಡೆಯಲು ಬಯಸುವ ಬಿಡುಗಡೆ ಚಾನಲ್ ಅನ್ನು ಆರಿಸಿ",
"version_check_enabled_description": "ಆವೃತ್ತಿ ಪರಿಶೀಲನೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ",
"version_check_implications": "ಆವೃತ್ತಿ ಪರಿಶೀಲನೆ ವೈಶಿಷ್ಟ್ಯವು {server} ನೊಂದಿಗೆ ಆವರ್ತಕ ಸಂವಹನವನ್ನು ಅವಲಂಬಿಸಿದೆ",
"version_check_settings": "ಆವೃತ್ತಿ ಪರಿಶೀಲನೆ",
@@ -508,7 +549,9 @@
"appears_in": "ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ",
"archive": "ಆರ್ಕೈವ್",
"archive_or_unarchive_photo": "ಫೋಟೋವನ್ನು ಆರ್ಕೈವ್ ಮಾಡಿ ಅಥವಾ ಅನ್ಆರ್ಕೈವ್ ಮಾಡಿ",
+ "archive_size": "ಆರ್ಕೈವ್ ಗಾತ್ರ",
"archive_size_description": "ಡೌನ್ಲೋಡ್ಗಳಿಗಾಗಿ ಆರ್ಕೈವ್ ಗಾತ್ರವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ (GiB ನಲ್ಲಿ)",
+ "archived": "ಆರ್ಕೈವ್ ಮಾಡಲಾಗಿದೆ",
"are_these_the_same_person": "ಇವರು ಒಂದೇ ವ್ಯಕ್ತಿಯೇ?",
"are_you_sure_to_do_this": "ನೀವು ಇದನ್ನು ಮಾಡಲು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?",
"asset_added_to_album": "ಆಲ್ಬಮ್ಗೆ ಸೇರಿಸಲಾಗಿದೆ",
@@ -572,6 +615,7 @@
"backup_options": "ಬ್ಯಾಕಪ್ ಆಯ್ಕೆಗಳು",
"backup_settings_subtitle": "ಅಪ್ಲೋಡ್ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ನಿರ್ವಹಿಸಿ",
"backward": "ಹಿಂದಕ್ಕೆ",
+ "battery_optimization_backup_reliability": "ಬ್ಯಾಟರಿ ಆಪ್ಟಿಮೈಸೇಶನ್ ಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ ಹಿನ್ನೆಲೆ ಬ್ಯಾಕಪ್ ನ ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ",
"biometric_auth_enabled": "ಬಯೋಮೆಟ್ರಿಕ್ ದೃಢೀಕರಣವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ",
"biometric_locked_out": "ನೀವು ಬಯೋಮೆಟ್ರಿಕ್ ದೃಢೀಕರಣದಿಂದ ಹೊರಗುಳಿದಿದ್ದೀರಿ",
"biometric_no_options": "ಯಾವುದೇ ಬಯೋಮೆಟ್ರಿಕ್ ಆಯ್ಕೆಗಳು ಲಭ್ಯವಿಲ್ಲ",
@@ -682,6 +726,7 @@
"create_new_person": "ಹೊಸ ವ್ಯಕ್ತಿಯನ್ನು ರಚಿಸಿ",
"create_new_person_hint": "ಆಯ್ಕೆಮಾಡಿದ ಸ್ವತ್ತುಗಳನ್ನು ಹೊಸ ವ್ಯಕ್ತಿಗೆ ನಿಯೋಜಿಸಿ",
"create_new_user": "ಹೊಸ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಿ",
+ "create_person_subtitle": "ಹೊಸ ವ್ಯಕ್ತಿಯನ್ನು ರಚಿಸಲು ಮತ್ತು ಟ್ಯಾಗ್ ಮಾಡಲು ಆಯ್ದ ಮುಖಕ್ಕೆ ಹೆಸರನ್ನು ಸೇರಿಸಿ",
"create_shared_album_page_share_add_assets": "ಎಡಿಡಿ ಸ್ವತ್ತುಗಳು",
"create_shared_album_page_share_select_photos": "ಫೋಟೋಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ",
"create_shared_link": "ಹಂಚಿದ ಲಿಂಕ್ ರಚಿಸಿ",
@@ -702,7 +747,6 @@
"custom_date": "ಕಸ್ಟಮ್ ದಿನಾಂಕ",
"custom_locale": "ಕಸ್ಟಮ್ ಲೊಕೇಲ್",
"custom_locale_description": "ಆಯ್ದ ಭಾಷೆ ಮತ್ತು ಪ್ರದೇಶವನ್ನು ಆಧರಿಸಿದ ದಿನಾಂಕಗಳು, ಸಮಯಗಳು ಮತ್ತು ಸಂಖ್ಯೆಗಳನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ",
- "custom_url": "ಕಸ್ಟಮ್ URL",
"cutoff_date_description": "ಹಿಂದಿನ ಫೋಟೋಗಳನ್ನು ಇರಿಸಿ…",
"dark": "ಕತ್ತಲು",
"dark_theme": "ಡಾರ್ಕ್ ಥೀಮ್ ಗೆ ಬದಲಾಯಿಸಿ",
@@ -714,6 +758,7 @@
"day": "ದಿನ",
"days": "ದಿನಗಳು",
"deduplicate_all": "ಎಲ್ಲವನ್ನೂ ಸಮರ್ಪಿಸಿ",
+ "default_quality_subtitle": "ಪಾಲನ್ನು ಟ್ಯಾಪ್ ಮಾಡುವಾಗ ಬಳಸುವ ಗುಣಮಟ್ಟ. ಪ್ರತಿ ಬಾರಿಯೂ ಆಯ್ಕೆ ಮಾಡಲು ಪಾಲು ಬಟನ್ ಒತ್ತಿರಿ.",
"delete": "ಅಳಿಸಿ",
"delete_action_confirmation_message": "ನೀವು ಈ ಸ್ವತ್ತನ್ನು ಅಳಿಸಲು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಈ ಕ್ರಿಯೆಯು ಸ್ವತ್ತನ್ನು ಸರ್ವರ್ನ ಅನುಪಯುಕ್ತಕ್ಕೆ ಸರಿಸುತ್ತದೆ ಮತ್ತು ನೀವು ಅದನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಅಳಿಸಲು ಬಯಸಿದರೆ ಕೇಳುತ್ತದೆ",
"delete_album": "ಆಲ್ಬಮ್ ಅಳಿಸಿ",
@@ -747,6 +792,7 @@
"edit_date_and_time": "ದಿನಾಂಕ ಮತ್ತು ಸಮಯವನ್ನು ಸಂಪಾದಿಸಿ",
"edit_date_and_time_action_prompt": "{count} ದಿನಾಂಕ ಮತ್ತು ಸಮಯವನ್ನು ಸಂಪಾದಿಸಲಾಗಿದೆ",
"editor": "ಸಂಪಾದಕ",
+ "editor_discard_edits_prompt": "ನೀವು ಸುಸಜ್ಜಿತ ಸಂಪಾದನೆಗಳನ್ನು ಹೊಂದಿದ್ದೀರಿ. ನೀವು ಅವರನ್ನು ತ್ಯಜಿಸಲು ಬಯಸುತ್ತೀರಿ ಎಂದು ನಿಮಗೆ ಖಚಿತವಾಗಿದೆಯೇ?",
"email": "ಇಮೇಲ್",
"empty_folder": "ಈ ಫೋಲ್ಡರ್ ಖಾಲಿಯಾಗಿದೆ",
"empty_trash_confirmation": "ನೀವು ಕಸವನ್ನು ಖಾಲಿ ಮಾಡಲು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಇದು ಇಮ್ಮಿಚ್ನಿಂದ ಕಸದಲ್ಲಿರುವ ಎಲ್ಲಾ ಸ್ವತ್ತುಗಳನ್ನು ಶಾಶ್ವತವಾಗಿ ತೆಗೆದುಹಾಕುತ್ತದೆ.\nನೀವು ಈ ಕ್ರಿಯೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ!",
@@ -964,6 +1010,11 @@
"map_marker_with_image": "ಚಿತ್ರದೊಂದಿಗೆ ನಕ್ಷೆ ಮಾರ್ಕರ್",
"map_no_location_permission_content": "ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಸ್ಥಳದಿಂದ ಸ್ವತ್ತುಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಸ್ಥಳ ಅನುಮತಿ ಅಗತ್ಯವಿದೆ. ನೀವು ಈಗ ಅದನ್ನು ಅನುಮತಿಸಲು ಬಯಸುವಿರಾ?",
"matches": "ಪಂದ್ಯಗಳು",
+ "media_chrome": {
+ "media_error_description": "ಮಾಧ್ಯಮ ದೋಷವು ಪ್ಲೇಬ್ಯಾಕ್ ಅನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲು ಕಾರಣವಾಯಿತು. ಮಾಧ್ಯಮಗಳು ಭ್ರಷ್ಟವಾಗಬಹುದು ಅಥವಾ ನಿಮ್ಮ ಬ್ರೌಸರ್ ಈ ಸ್ವರೂಪವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.",
+ "network_error_description": "ನೆಟ್ ವರ್ಕ್ ದೋಷವು ಮಾಧ್ಯಮ ಡೌನ್ ಲೋಡ್ ವಿಫಲಗೊಳ್ಳಲು ಕಾರಣವಾಯಿತು.",
+ "unsupported_error_description": "ಬೆಂಬಲಿಸದ ದೋಷ ಸಂಭವಿಸಿದೆ. ಸರ್ವರ್ ಅಥವಾ ನೆಟ್ ವರ್ಕ್ ವಿಫಲವಾಗಿದೆ, ಅಥವಾ ನಿಮ್ಮ ಬ್ರೌಸರ್ ಈ ಸ್ವರೂಪವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ."
+ },
"memories": "ನೆನಪುಗಳು",
"memories_check_back_tomorrow": "ಹೆಚ್ಚಿನ ನೆನಪುಗಳಿಗಾಗಿ ನಾಳೆ ಮತ್ತೆ ಪರಿಶೀಲಿಸಿ",
"memories_setting_description": "ನಿಮ್ಮ ನೆನಪುಗಳಲ್ಲಿ ನೀವು ನೋಡುವುದನ್ನು ನಿರ್ವಹಿಸಿ",
@@ -973,6 +1024,7 @@
"merge": "ವಿಲೀನ",
"merge_people_limit": "ನೀವು ಒಮ್ಮೆಗೆ 5 ಮುಖಗಳನ್ನು ಮಾತ್ರ ವಿಲೀನಗೊಳಿಸಬಹುದು",
"merge_people_prompt": "ನೀವು ಈ ಜನರನ್ನು ವಿಲೀನಗೊಳಿಸಲು ಬಯಸುವಿರಾ? ಈ ಕ್ರಿಯೆಯನ್ನು ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ.",
+ "minFaces_description": "ವ್ಯಕ್ತಿಯನ್ನು ಪ್ರದರ್ಶಿಸಲು ಕನಿಷ್ಠ ಸಂಖ್ಯೆಯ ಮಾನ್ಯತೆ ಪಡೆದ ಮುಖಗಳು",
"minimize": "ಕನಿಷ್ಠೀಕರಿಸಿ",
"minute": "ನಿಮಿಷ",
"missing": "ಕಾಣೆಯಾಗಿದೆ",
@@ -1010,10 +1062,12 @@
"no_shared_albums_message": "ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿರುವ ಜನರೊಂದಿಗೆ ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೊಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಆಲ್ಬಮ್ ರಚಿಸಿ",
"not_in_any_album": "ಯಾವುದೇ ಆಲ್ಬಮ್ನಲ್ಲಿಲ್ಲ",
"notes": "ಟಿಪ್ಪಣಿಗಳು",
+ "notification_enabled_list_tile_content": "ಇಮ್ಮಿಚ್ ಹಿನ್ನೆಲೆ ಬ್ಯಾಕಪ್ ಗಾಗಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ಬಳಸುತ್ತದೆ. ನಿಮ್ಮ ಸಾಧನ ಸೆಟ್ಟಿಂಗ್ ಗಳಲ್ಲಿ ಅವುಗಳನ್ನು ನಿರ್ವಹಿಸಿ.",
"notification_permission_dialog_content": "ಅಧಿಸೂಚನೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು, ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಹೋಗಿ ಮತ್ತು ಅನುಮತಿಸು ಆಯ್ಕೆಮಾಡಿ.",
"notification_permission_list_tile_content": "ಅಧಿಸೂಚನೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಅನುಮತಿ ನೀಡಿ.",
"notifications": "ಅಧಿಸೂಚನೆಗಳು",
"obtainium_configurator_instructions": "ಇಮ್ಮಿಚ್ ಗಿಟ್ಹಬ್ನ ಬಿಡುಗಡೆಯಿಂದ ನೇರವಾಗಿ ಆಂಡ್ರಾಯ್ಡ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಮತ್ತು ನವೀಕರಿಸಲು ಅಟೇಟಿನಿಯಮ್ ಬಳಸಿ. API ಕೀಲಿಯನ್ನು ರಚಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಅಟೇಟಿನಿಯಮ್ ಕಾನ್ಫಿಗರೇಶನ್ ಲಿಂಕ್ ಅನ್ನು ರಚಿಸಲು ರೂಪಾಂತರವನ್ನು ಆಯ್ಕೆಮಾಡಿ",
+ "ocr_body": "ಇಮ್ಮಿಚ್ ಈಗ ನಿಮ್ಮ ಫೋಟೋಗಳೊಳಗಿನ ಪಠ್ಯವನ್ನು ಓದುತ್ತದೆ, ಆದ್ದರಿಂದ ಅವರು ಹೇಳುವ ಮೂಲಕ ನೀವು ಅವುಗಳನ್ನು ಹುಡುಕಬಹುದು.",
"offline": "ಆಫ್ ಲೈನ್",
"ok": "ಸರಿ",
"onboarding": "ಆನ್ ಬೋರ್ಡಿಂಗ್",
@@ -1022,6 +1076,7 @@
"onboarding_server_welcome_description": "ನಿಮ್ಮ ನಿದರ್ಶನವನ್ನು ಕೆಲವು ಸಾಮಾನ್ಯ ಸೆಟ್ಟಿಂಗ್ಗಳೊಂದಿಗೆ ಹೊಂದಿಸೋಣ.",
"onboarding_theme_description": "ನಿಮ್ಮ ನಿದರ್ಶನಕ್ಕೆ ಬಣ್ಣದ ಥೀಮ್ ಆಯ್ಕೆಮಾಡಿ. ನೀವು ಇದನ್ನು ನಂತರ ನಿಮ್ಮ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು.",
"online": "ಆನ್ ಲೈನ್",
+ "open_in_immich_body": "ಸೆಟ್ ಇಮ್ಮಿಚ್ ಇತರ ಅಪ್ಲಿಕೇಶನ್ ಗಳಿಂದ ನೇರವಾಗಿ ಫೋಟೋಗಳನ್ನು ತೆರೆಯಲು ಆಂಡ್ರಾಯ್ಡ್ ನಲ್ಲಿ ನಿಮ್ಮ ಗ್ಯಾಲರಿಯಂತೆ.",
"open_in_map_view": "ನಕ್ಷೆ ವೀಕ್ಷಣೆಯಲ್ಲಿ ತೆರೆಯಿರಿ",
"open_the_search_filters": "ಹುಡುಕಾಟ ಫಿಲ್ಟರ್ಗಳನ್ನು ತೆರೆಯಿರಿ",
"options": "ಆಯ್ಕೆಗಳು",
@@ -1059,6 +1114,7 @@
"play": "ಪ್ಲೇ ಮಾಡಿ",
"play_or_pause_video": "ವೀಡಿಯೊ ಪ್ಲೇ ಮಾಡಿ ಅಥವಾ ವಿರಾಮಗೊಳಿಸಿ",
"play_original_video_setting_description": "ಟ್ರಾನ್ಸ್ಕೋಡ್ ಮಾಡಿದ ವೀಡಿಯೊಗಳಿಗಿಂತ ಮೂಲ ವೀಡಿಯೊಗಳ ಪ್ಲೇಬ್ಯಾಕ್ಗೆ ಆದ್ಯತೆ ನೀಡಿ. ಮೂಲ ಸ್ವತ್ತು ಹೊಂದಾಣಿಕೆಯಾಗದಿದ್ದರೆ ಅದು ಸರಿಯಾಗಿ ಪ್ಲೇಬ್ಯಾಕ್ ಆಗದಿರಬಹುದು.",
+ "plugin_method_filter_type_description": "ಈ ವಿಧಾನವು ಘಟನೆಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಬಹುದು ಮತ್ತು ನಂತರದ ಹಂತಗಳನ್ನು ಓಡಿಸುವುದನ್ನು ಷರತ್ತುಬದ್ಧವಾಗಿ ತಡೆಯಬಹುದು",
"port": "ಪೋರ್ಟ್",
"preferences_settings_subtitle": "ಅಪ್ಲಿಕೇಶನ್ನ ಆದ್ಯತೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ",
"preset": "ಮೊದಲೇ",
@@ -1089,6 +1145,8 @@
"reassign": "ಮರುಹಂಚುವಿಕೆ",
"reassigned_assets_to_existing_person": "{count, plural, one {# ಆಸ್ತಿ} other {# ಆಸ್ತಿಗಳು}} ಅನ್ನು {name, select, null {ಒಂದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ವ್ಯಕ್ತಿ} other {{name}}} ಗೆ ಮರು ನಿಯೋಜಿಸಲಾಗಿದೆ",
"reassing_hint": "ಆಯ್ದ ಸ್ವತ್ತುಗಳನ್ನು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ವ್ಯಕ್ತಿಗೆ ನಿಯೋಜಿಸಿ",
+ "recently_added_body": "ಮೀಸಲಾದ ಪುಟದಲ್ಲಿ ನೀವು ಇತ್ತೀಚೆಗೆ ಸೇರಿಸಿದ ಎಲ್ಲದಕ್ಕೂ ನೇರವಾಗಿ ಹೋಗು.",
+ "recently_added_description": "ನಿಮ್ಮ ಸ್ವತ್ತುಗಳನ್ನು ಅಪ್ ಲೋಡ್ ಮಾಡಿದಾಗ ಅವುಗಳನ್ನು ವಿಂಗಡಿಸಿದಾಗ ಅವುಗಳನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ ಇಮ್ಮಿಚ್",
"refresh": "ರಿಫ್ರೆಶ್",
"refreshed": "ರಿಫ್ರೆಶ್ ಮಾಡಲಾಗಿದೆ",
"remove": "ತೆಗೆದುಹಾಕಿ",
@@ -1114,9 +1172,11 @@
"resume": "ಪುನರಾರಂಭ",
"role": "ಪಾತ್ರ",
"scaffold_body_error_unrecoverable": "ಸರಿಪಡಿಸಲಾಗದ ದೋಷ ಸಂಭವಿಸಿದೆ. ದಯವಿಟ್ಟು ದೋಷವನ್ನು ಹಂಚಿಕೊಳ್ಳಿ ಮತ್ತು ಡಿಸ್ಕಾರ್ಡ್ ಅಥವಾ ಗಿಟ್ಹಬ್ನಲ್ಲಿ ಟ್ರೇಸ್ ಅನ್ನು ಸ್ಟ್ಯಾಕ್ ಮಾಡಿ ಇದರಿಂದ ನಾವು ಸಹಾಯ ಮಾಡಬಹುದು. ಸಲಹೆ ನೀಡಿದರೆ, ನೀವು ಕೆಳಗಿನ ಅಪ್ಲಿಕೇಶನ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಬಹುದು.",
+ "screencast_mode_description": "ಪರದೆಯ ಮೇಲೆ ಕೀಬೋರ್ಡ್ ಮತ್ತು ಮೌಸ್ ಈವೆಂಟ್ ಸೂಚಕಗಳನ್ನು ತೋರಿಸಿ",
"search_by_description_example": "ಸಾಪಾದಲ್ಲಿ ಪಾದಯಾತ್ರೆಯ ದಿನ",
"search_by_filename": "ಫೈಲ್ ಹೆಸರು ಅಥವಾ ವಿಸ್ತರಣೆಯ ಮೂಲಕ ಹುಡುಕಿ",
"search_by_filename_example": "ಅಂದರೆ IMG_1234.JPG ಅಥವಾ PNG",
+ "search_by_full_path": "ಪೂರ್ಣ ಮಾರ್ಗ ಅಥವಾ ಫೋಲ್ಡರ್ ಮೂಲಕ ಹುಡುಕಿ",
"search_filter_date_title": "ದಿನಾಂಕ ಶ್ರೇಣಿಯನ್ನು ಆಯ್ಕೆಮಾಡಿ",
"search_filter_filename": "ಫೈಲ್ ಹೆಸರಿನ ಮೂಲಕ ಹುಡುಕಿ",
"search_for_existing_person": "ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ವ್ಯಕ್ತಿಯನ್ನು ಹುಡುಕಿ",
@@ -1138,11 +1198,13 @@
"setting_notifications_subtitle": "ನಿಮ್ಮ ಅಧಿಸೂಚನೆ ಆದ್ಯತೆಗಳನ್ನು ಹೊಂದಿಸಿ",
"setting_video_viewer_auto_play_subtitle": "ವೀಡಿಯೊಗಳು ತೆರೆದಾಗ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪ್ಲೇ ಆಗಲು ಪ್ರಾರಂಭಿಸಿ",
"setting_video_viewer_original_video_subtitle": "ಸರ್ವರ್ನಿಂದ ವೀಡಿಯೊವನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡುವಾಗ, ಟ್ರಾನ್ಸ್ಕೋಡ್ ಲಭ್ಯವಿದ್ದರೂ ಸಹ ಮೂಲವನ್ನು ಪ್ಲೇ ಮಾಡಿ. ಬಫರಿಂಗ್ಗೆ ಕಾರಣವಾಗಬಹುದು. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಲೆಕ್ಕಿಸದೆ ಸ್ಥಳೀಯವಾಗಿ ಲಭ್ಯವಿರುವ ವೀಡಿಯೊಗಳನ್ನು ಮೂಲ ಗುಣಮಟ್ಟದಲ್ಲಿ ಪ್ಲೇ ಮಾಡಲಾಗುತ್ತದೆ.",
+ "share_quality_body": "ನೀವು ಹಂಚಿಕೊಳ್ಳುವ ಮೊದಲು ಚಿತ್ರದ ಗುಣಮಟ್ಟವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಷೇರು ಗುಂಡಿಯನ್ನು ಒತ್ತಿ ಮತ್ತು ಹಿಡಿದುಕೊಳ್ಳಿ.",
"shared_album_activity_remove_content": "ನೀವು ಈ ಚಟುವಟಿಕೆಯನ್ನು ಅಳಿಸಲು ಬಯಸುವಿರಾ?",
"shared_album_section_people_action_error": "ಆಲ್ಬಮ್ ತೊರೆಯುವಾಗ/ತೆಗೆದುಹಾಕುವಾಗ ದೋಷ ಕಂಡುಬಂದಿದೆ",
"shared_intent_upload_button_progress_text": "{current} / {total} ಅಪ್ಲೋಡ್ ಮಾಡಲಾಗಿದೆ",
"shared_link_create_error": "ಹಂಚಿಕೊಂಡ ಲಿಂಕ್ ರಚಿಸುವಾಗ ದೋಷ ಕಂಡುಬಂದಿದೆ",
"shared_link_custom_url_description": "ಕಸ್ಟಮ್ URL ನೊಂದಿಗೆ ಈ ಹಂಚಿಕೊಂಡ ಲಿಂಕ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ",
+ "shared_link_custom_url_warning": "ಎಚ್ಚರಿಕೆ: ಫಾರ್ವರ್ಡ್ ಸ್ಲ್ಯಾಷ್ ಹೊಂದಿರುವ ಕಸ್ಟಮ್ URL ಹೆಸರು ನೀವು ನಿರೀಕ್ಷಿಸಿದಂತೆ ವರ್ತಿಸುವುದಿಲ್ಲ.",
"shared_link_edit_description_hint": "ಹಂಚಿಕೆ ವಿವರಣೆಯನ್ನು ನಮೂದಿಸಿ",
"shared_link_edit_password_hint": "ಹಂಚಿಕೆ ಪಾಸ್ವರ್ಡ್ ನಮೂದಿಸಿ",
"shared_link_error_server_url_fetch": "ಸರ್ವರ್ url ಅನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ",
@@ -1163,7 +1225,9 @@
"show_or_hide_info": "ಮಾಹಿತಿಯನ್ನು ತೋರಿಸಿ ಅಥವಾ ಮರೆಮಾಡಿ",
"show_supporter_badge_description": "ಬೆಂಬಲಿಗರ ಬ್ಯಾಡ್ಜ್ ತೋರಿಸಿ",
"sidebar_display_description": "ಸೈಡ್ಬಾರ್ನಲ್ಲಿ ವೀಕ್ಷಣೆಗೆ ಲಿಂಕ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸಿ",
+ "slideshow_body": "ಕುಳಿತುಕೊಳ್ಳಿ ಮತ್ತು ನಿಮ್ಮ ಫೋಟೋಗಳು ಪೂರ್ಣ-ಪರದೆಯ ಸ್ಲೈಡ್ ಶೋನಲ್ಲಿ ಆಡುವುದನ್ನು ನೋಡಿ.",
"slideshow_repeat_description": "ಸ್ಲೈಡ್ಶೋ ಕೊನೆಗೊಂಡಾಗ ಆರಂಭಕ್ಕೆ ಹಿಂತಿರುಗಿ",
+ "some_assets_already_have_a_location_warning": "ಆಯ್ದ ಕೆಲವು ಸ್ವತ್ತುಗಳು ಈಗಾಗಲೇ ಸ್ಥಳವನ್ನು ಹೊಂದಿವೆ",
"sort_created": "ದಿನಾಂಕ ರಚಿಸಲಾಗಿದೆ",
"sort_items": "ವಸ್ತುಗಳ ಸಂಖ್ಯೆ",
"sort_modified": "ದಿನಾಂಕ ಮಾರ್ಪಡಿಸಲಾಗಿದೆ",
@@ -1180,6 +1244,7 @@
"start_date_before_end_date": "ಆರಂಭದ ದಿನಾಂಕವು ಅಂತಿಮ ದಿನಾಂಕಕ್ಕಿಂತ ಮೊದಲು ಇರಬೇಕು",
"state": "ರಾಜ್ಯ",
"status": "ಸ್ಥಿತಿ",
+ "step_delete_confirm": "ಈ ಹಂತವನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?",
"stop_casting": "ಬಿತ್ತರಿಸುವಿಕೆಯನ್ನು ನಿಲ್ಲಿಸಿ",
"stop_motion_photo": "ಚಲನೆಯ ಫೋಟೋವನ್ನು ನಿಲ್ಲಿಸಿ",
"stop_photo_sharing": "ನಿಮ್ಮ ಫೋಟೋಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದನ್ನು ನಿಲ್ಲಿಸುವುದೇ?",
@@ -1250,6 +1315,7 @@
"trash_page_delete_all": "ಎಲ್ಲವನ್ನೂ ಅಳಿಸಿ",
"trash_page_info": "ಅನುಪಯುಕ್ತಕ್ಕೆ ಸೇರಿಸಿದ ಐಟಂಗಳನ್ನು {days} ದಿನಗಳ ನಂತರ ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ",
"trigger": "ಟ್ರಿಗ್ಗರ್",
+ "trigger_asset_metadata_extraction_description": "ಯಾವಾಗ ಎಂದು ಪ್ರಚೋದಿಸಲಾಯಿತು ಎಕ್ಸಿಫ್ ಆಸ್ತಿಯ ಮೆಟಾಡೇಟಾವನ್ನು ಹೊರತೆಗೆಯಲಾಗುತ್ತದೆ",
"trigger_asset_uploaded": "ಆಸ್ತಿ ಅಪ್ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ",
"trigger_asset_uploaded_description": "ಹೊಸ ಸ್ವತ್ತನ್ನು ಅಪ್ಲೋಡ್ ಮಾಡಿದಾಗ ಟ್ರಿಗರ್ ಮಾಡಲಾಗುತ್ತದೆ",
"trigger_person_recognized": "ವ್ಯಕ್ತಿ ಗುರುತಿಸಲಾಗಿದೆ",
@@ -1292,6 +1358,7 @@
"upload_status_errors": "ದೋಷಗಳು",
"upload_status_uploaded": "ಅಪ್ ಲೋಡ್ ಮಾಡಲಾಗಿದೆ",
"upload_success": "ಅಪ್ಲೋಡ್ ಯಶಸ್ವಿಯಾಗಿದೆ, ಹೊಸ ಅಪ್ಲೋಡ್ ಸ್ವತ್ತುಗಳನ್ನು ನೋಡಲು ಪುಟವನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಿ.",
+ "upload_to_album_body": "ಹಸ್ತಚಾಲಿತ ಅಪ್ ಲೋಡ್ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸದ ಬಳಕೆದಾರರಿಗೆ, ನೀವು ಅವುಗಳನ್ನು ಅಪ್ ಲೋಡ್ ಮಾಡುವಾಗ ಸ್ಥಳೀಯ ಫೋಟೋಗಳನ್ನು ನೇರವಾಗಿ ಆಲ್ಬಮ್ ಗೆ ಸೇರಿಸಲು ನೀವು ಈಗ ಆಯ್ಕೆ ಮಾಡಬಹುದು, ಅಪ್ ಲೋಡ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲ ಮತ್ತು ನಂತರ ಆಲ್ಬಮ್ ಗೆ ಸೇರಿಸಿ.",
"upload_to_immich": "ಇಮ್ಮಿಚ್ ({count}) ಗೆ ಅಪ್ಲೋಡ್ ಮಾಡಿ",
"uploading": "ಅಪ್ ಲೋಡ್ ಆಗುತ್ತಿದೆ",
"uploading_media": "ಮಾಧ್ಯಮವನ್ನು ಅಪ್ ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ",
diff --git a/i18n/ko.json b/i18n/ko.json
index 253a0f639e..5042134948 100644
--- a/i18n/ko.json
+++ b/i18n/ko.json
@@ -108,6 +108,17 @@
"image_thumbnail_quality_description": "섬네일 품질을 1~100 범위에서 설정합니다. 값이 클수록 좋지만 파일 크기가 커지고 앱 반응 속도가 느려질 수 있습니다.",
"image_thumbnail_title": "섬네일 설정",
"import_config_from_json_description": "JSON 파일을 업로드하여 시스템 구성을 가져옵니다.",
+ "integrity_checks_checksum_files": "체크섬 파일",
+ "integrity_checks_checksum_files_description": "체크섬 검사 설정",
+ "integrity_checks_checksum_files_enable_description": "체크섬 확인 활성화",
+ "integrity_checks_checksum_files_percentage_limit": "퍼센트 한도",
+ "integrity_checks_checksum_files_percentage_limit_description": "체크섬 검사가 각 간격마다 얼마나 자주 수행될지를 결정하는 최대 비율을 0.01에서 1 사이로 설정하세요.",
+ "integrity_checks_checksum_files_time_limit": "시간 제한",
+ "integrity_checks_checksum_files_time_limit_description": "각 간격마다 체크섬 검사가 수행되는 최대 시간을 설정하세요. (밀리초)",
+ "integrity_checks_missing_files": "누락된 파일",
+ "integrity_checks_missing_files_description": "주기를 설정하고, 누락된 파일을 확인하는 기능을 켜거나 끄세요",
+ "integrity_checks_missing_files_enable_description": "누락된 파일 확인 활성화",
+ "integrity_checks_settings": "무결성 검사",
"job_concurrency": "{job} 동시성",
"job_created": "작업이 생성되었습니다.",
"job_not_concurrency_safe": "이 작업은 동시 실행에 안전하지 않습니다.",
@@ -794,7 +805,6 @@
"custom_date": "날짜 선택",
"custom_locale": "사용자 지정 로케일",
"custom_locale_description": "언어 및 지역 선택에 따른 날짜, 시간 및 숫자 형식 지정",
- "custom_url": "사용자 지정 URL",
"cutoff_date_description": "선택한 기간의 사진을 유지합니다…",
"cutoff_day": "{count, plural, one {일} other {일}}",
"cutoff_year": "{count, plural, one {년} other {년}}",
@@ -1303,9 +1313,9 @@
"login_form_failed_login": "로그인 중 오류가 발생했습니다. 서버 URL, 이메일 및 비밀번호를 확인하세요.",
"login_form_handshake_exception": "서버와 통신 중 인증서 예외가 발생했습니다. 자체 서명된 인증서를 사용 중이라면, 설정에서 자체 서명된 인증서 허용을 활성화하세요.",
"login_form_password_hint": "비밀번호",
- "login_form_server_empty": "서버 URL을 입력하세요.",
- "login_form_server_error": "서버에 연결할 수 없습니다.",
- "login_has_been_disabled": "로그인이 비활성화되었습니다.",
+ "login_form_server_empty": "서버 URL 입력",
+ "login_form_server_error": "서버에 연결할 수 없음",
+ "login_has_been_disabled": "로그인이 비활성화됨",
"login_password_changed_error": "비밀번호 변경 중 오류가 발생했습니다.",
"login_password_changed_success": "비밀번호가 변경되었습니다.",
"logout_all_device_confirmation": "모든 기기에서 로그아웃하시겠습니까?",
diff --git a/i18n/lt.json b/i18n/lt.json
index 24a59b322d..b41d751c7b 100644
--- a/i18n/lt.json
+++ b/i18n/lt.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Miniatiūros kokybė nuo 1-100. Aukštesnės reikšmės yra geriau, bet pagaminami didesni failai ir gali būti sulėtintas programos reagavimo greitis.",
"image_thumbnail_title": "Miniatiūros nustatymai",
"import_config_from_json_description": "Importuokite sistemos konfigūraciją, įkeliant JSON konfigūracijos failą",
+ "integrity_checks_checksum_files": "Kontrolinės sumos failai",
+ "integrity_checks_checksum_files_description": "Konfigūruoti kontrolinės sumos patikrą",
+ "integrity_checks_checksum_files_enable_description": "Įjungti kontrolinės sumos patikrą",
+ "integrity_checks_checksum_files_percentage_limit": "Procentinis limitas",
+ "integrity_checks_checksum_files_percentage_limit_description": "Nustatykite maksimalią procentinę dalį (nuo 0,01 iki 1), nurodančią, kiek kontrolinės sumos tikrinimas turėtų vykti kiekvieno intervalo metu.",
+ "integrity_checks_checksum_files_time_limit": "Laiko limitas",
+ "integrity_checks_checksum_files_time_limit_description": "Konfigūruoti maksimalią trukmę, per kurią kontrolinės sumos patikra turėtų būti atlikta kiekvieną intervalą. (ms)",
+ "integrity_checks_missing_files": "Trūkstami failai",
+ "integrity_checks_missing_files_description": "Konfigūruoti dažnumą ir įjungti arba išjungti trūkstamų failų patikrą",
+ "integrity_checks_missing_files_enable_description": "Įjungti trūkstamų failų patikrą",
+ "integrity_checks_settings": "Vientisumo patikra",
+ "integrity_checks_settings_description": "Tvarkyti vientisumo patikrų intervalus",
+ "integrity_checks_untracked_files": "Nesekami failai",
+ "integrity_checks_untracked_files_description": "Konfigūruoti dažnumą ir įjungti arba išjungti nesekamų failų patikrą",
+ "integrity_checks_untracked_files_enable_description": "Įjungti nesekamų failų patikrą",
"job_concurrency": "{job} lygiagretumas",
"job_created": "Užduotis sukurta",
"job_not_concurrency_safe": "Ši užduotis nėra saugi apdoroti lygiagrečiai.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Leidžia transkoduoti realiuoju laiku, kai vaizdo įrašas transliuojamas. Įgalina kokybės perjungimą, tačiau, priklausomai nuo serverio galimybių, atkūrimas gali strigti ar būti uždelstas.",
"transcoding_realtime_enabled": "Įgalinti transkodavimą realiuoju laiku",
"transcoding_realtime_enabled_description": "Jei išjungta, serveris atsisakys pradėti naujas transkodavimo sesijas realiuoju laiku.",
+ "transcoding_realtime_resolutions": "Rezoliucijos",
+ "transcoding_realtime_resolutions_description": "Raiškos, siūlomos transliavimui realiuoju laiku (transkodavimui). Pasirinkus didesnę raišką, gali kilti atkūrimo problemų, jei serveris nespės vaizdo įrašo transkoduoti pakankamai greitai.",
+ "transcoding_realtime_video_codecs": "Vaizdo įrašų kodekai",
+ "transcoding_realtime_video_codecs_description": "Vaizdo kodekai, siūlomi transkodavimui realiuoju laiku. Atkūrimo metu klientai (įrenginiai) pasirinks geriausią jų palaikomą variantą. AV1 yra efektyvesnis už HEVC, o šis – efektyvesnis už H.264. Naudodami aparatinį spartinimą, pasirinkite tik tuos kodekus, kuriuos spartintuvas sugeba koduoti. Naudodami programinį transkodavimą, atkreipkite dėmesį, kad H.264 yra spartesnis už AV1, o šis – spartesnis už HEVC.",
"transcoding_reference_frames": "Nuorodiniai kadrai",
"transcoding_reference_frames_description": "Kadrų, į kuriuos reikia remtis suspaudžiant duotą kadrą, skaičius. Aukštesnė reikšmė pagerina suspaudimo efektyvumą, bet sulėtina užkodavimą. 0 - nustato reikšmę automatiškai.",
"transcoding_required_description": "Tik nepalaikomo formato vaizdo įrašai",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Elementų peržiūra",
"assets": "Elementai",
"assets_added_to_album_count": "Į albumą {count, plural, one {įtrauktas # elementas} few {įtraukti # elementai} other {įtraukta # elementų}}",
+ "assets_added_to_album_partial_count": "Į albumą pridėta {successCount} iš {totalCount} {totalCount, plural, one {elemento} few {elementų} other {elementų}}",
"assets_added_to_albums_count": "Pridėta {assetTotal, plural, one {# elementas} few {# elementai} other {# elementų}} į {albumTotal, plural, one {# albumą} few {# albumus} other {# albumų}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Elementas negali būti pridėtas} few {Elementai negali būti pridėti} other {Elementų negali būti pridėta}} į albumą",
"assets_cannot_be_added_to_albums": "{count, plural, one {Elementas negali būti pridėtas} few {Elementai negali būti pridėti} other {Elementų negali būti pridėta}} į nei vieną albumą",
@@ -794,7 +814,6 @@
"custom_date": "Pasirinktinė data",
"custom_locale": "Pasirinktinė vietovė",
"custom_locale_description": "Formatuoti datas, laiką ir skaičius pagal pasirinktą kalbą ir regioną",
- "custom_url": "Pasirinktinis URL",
"cutoff_date_description": "Išsaugoti nuotraukas iš paskutinės…",
"cutoff_day": "{count, plural, one {diena} other {dienos}}",
"cutoff_year": "{count, plural, one {metai} other {metai}}",
@@ -1303,9 +1322,9 @@
"login_form_failed_login": "Klaida prisijungiant, patikrinkite serverio URL, el. paštą ir slaptažodį",
"login_form_handshake_exception": "Įvyko serverio patvirtinimo išimtis. Jei naudojate savarankiškai pasirašytą sertifikatą, nustatymuose įjunkite savarankiškai pasirašyto sertifikato palaikymą.",
"login_form_password_hint": "slaptažodis",
- "login_form_server_empty": "Įveskite serverio URL.",
- "login_form_server_error": "Nepavyko prisijungti prie serverio.",
- "login_has_been_disabled": "Prisijungimas išjungtas.",
+ "login_form_server_empty": "Įveskite serverio URL",
+ "login_form_server_error": "Nepavyko prisijungti prie serverio",
+ "login_has_been_disabled": "Prisijungimas išjungtas",
"login_password_changed_error": "Įvyko klaida atnaujinant jūsų slaptažodį",
"login_password_changed_success": "Slaptažodis sėkmingai atnaujintas",
"logout_all_device_confirmation": "Ar tikrai norite atsijungti iš visų įrenginių?",
@@ -1461,6 +1480,7 @@
"never": "Niekada",
"new_album": "Naujas albumas",
"new_api_key": "Naujas API raktas",
+ "new_feature": "Nauja Funkcija",
"new_password": "Naujas slaptažodis",
"new_person": "Naujas asmuo",
"new_pin_code": "Naujas PIN kodas",
@@ -1504,9 +1524,13 @@
"not_available": "Nepasiekiamas",
"not_in_any_album": "Nė viename albume",
"not_selected": "Nepasirinkta",
+ "not_set": "Nenustatyta",
"notes": "Pastabos",
"nothing_here_yet": "Kol kas tuščia",
"notification_backup_reliability": "Įjunkite pranešimus, kad pagerintumėte foninių atsarginių kopijų patikimumą",
+ "notification_enabled_list_tile_content": "Immich naudoja pranešimus atsarginiam kopijavimui fone. Juos galite valdyti savo įrenginio nustatymuose.",
+ "notification_enabled_list_tile_open_button": "Atidaryti nustatymus",
+ "notification_enabled_list_tile_title": "Pranešimai įjungti",
"notification_permission_dialog_content": "Pranešimų įgalinimui eikite į Nustatymus ir pasirinkite Leisti.",
"notification_permission_list_tile_content": "Suteikti leidimą pranešimų įgalinimui.",
"notification_permission_list_tile_enable_button": "Įjungti pranešimus",
@@ -1518,6 +1542,8 @@
"obtainium_configurator": "Obtainium Konfigūratorius",
"obtainium_configurator_instructions": "Naudokite Obtainium, jei norite įdiegti ir atnaujinti Android programėlę tiesiai iš Immich GitHub. Sukurkite API raktą ir pasirinkite variantą, Obtainium konfigūracijos nuorodos sukūrimui",
"ocr": "OCR",
+ "ocr_body": "Immich dabar atpažįsta tekstą jūsų nuotraukose, todėl galite jų ieškoti pagal tai, kas jose parašyta.",
+ "ocr_title": "Ieškokite teksto savo nuotraukose",
"official_immich_resources": "Oficialūs Immich ištekliai",
"offline": "Neprisijungęs",
"offset": "Ofsetas",
@@ -1536,6 +1562,8 @@
"open": "Atverti",
"open_calendar": "Atidaryti kalendorių",
"open_in_browser": "Atverti naršyklėje",
+ "open_in_immich_body": "Nustatykite Immich kaip numatytąją galeriją „Android“ įrenginyje, kad nuotraukas galėtumėte atidaryti tiesiai iš kitų programėlių.",
+ "open_in_immich_title": "Atidaryti nuotraukas per Immich",
"open_in_map_view": "Atverti žemėlapyje",
"open_in_openstreetmap": "Atverti per OpenStreetMap",
"open_the_search_filters": "Atidaryti paieškos filtrus",
@@ -1694,7 +1722,10 @@
"recent": "Naujausi",
"recent_searches": "Naujausios paieškos",
"recently_added": "Neseniai pridėta",
+ "recently_added_body": "Pasiekite visus naujausius įkėlimus viename tam skirtame puslapyje.",
+ "recently_added_description": "Peržiūrėkite failus, surūšiuotus pagal įkėlimo į Immich datą",
"recently_added_page_title": "Neseniai pridėta",
+ "recently_added_title": "Neseniai pridėta",
"recently_taken": "Neseniai sukurti",
"refresh": "Atnaujinti",
"refresh_encoded_videos": "Perkrauti apdorotus vaizdo įrašus",
@@ -1901,6 +1932,8 @@
"share_link": "Bendrinti nuorodą",
"share_original": "Naudoti originalą (didelį)",
"share_preview": "Naudoti miniatiūrą (mažą)",
+ "share_quality_body": "Palaikykite nuspaudę bendrinimo mygtuką, kad pasirinktumėte vaizdo kokybę prieš siųsdami.",
+ "share_quality_title": "Pasirinkite bendrinimo kokybę",
"shared": "Bendrinami",
"shared_album_activities_input_disable": "Komentarai išjungti",
"shared_album_activity_remove_content": "Ar norite ištrinti šią veiklą?",
@@ -1916,6 +1949,8 @@
"shared_link_clipboard_copied_massage": "Nukopijuota į iškarpinę",
"shared_link_create_error": "Klaida kuriant bendrinimo nuorodą",
"shared_link_custom_url_description": "Pasiekite šią bendrinimo nuorodą naudodami tinkintą URL",
+ "shared_link_custom_url_title": "Pasirinktinis URL",
+ "shared_link_custom_url_warning": "Įspėjimas: pasirinktinis URL adresas su pasviruoju brūkšniu gali veikti ne taip, kaip tikitės.",
"shared_link_edit_description_hint": "Įveskite bendrinimo aprašymą",
"shared_link_edit_expire_after_option_day": "1 diena",
"shared_link_edit_expire_after_option_days": "{count} dienų",
@@ -1982,16 +2017,19 @@
"sign_out": "Atsijungti",
"sign_up": "Užsiregistruoti",
"size": "Dydis",
+ "skip": "Praleisti",
"skip_to_content": "Pereiti prie turinio",
"skip_to_folders": "Praleisti iki aplankų",
"skip_to_tags": "Praleisti iki žymių",
"slideshow": "Skaidrių peržiūra",
+ "slideshow_body": "Atsiloškite ir stebėkite savo nuotraukas per visą ekraną rodomoje skaidrių peržiūroje.",
"slideshow_metadata_overlay_mode": "Info juostos turinys",
"slideshow_metadata_overlay_mode_description_only": "Tik aprašymas",
"slideshow_metadata_overlay_mode_full": "Pilnas",
"slideshow_repeat": "Kartoti skaidres",
"slideshow_repeat_description": "Pradėti iš pradžių, kai skaidrės baigiasi",
"slideshow_settings": "Skaidrių peržiūros nustatymai",
+ "slideshow_title": "Skaidrių peržiūra",
"smart_album": "Išmanus albumas",
"some_assets_already_have_a_location_warning": "Kai kurie pasirinkti elementai jau turi vietovę",
"sort_albums_by": "Rikiuoti albumus pagal...",
@@ -2119,6 +2157,7 @@
"unknown": "Nežinoma",
"unknown_country": "Nežinoma Šalis",
"unknown_date": "Nežinoma data",
+ "unknown_schema": "Nežinoma schema",
"unknown_year": "Nežinomi metai",
"unlimited": "Neribota",
"unlink_motion_video": "Atsieti video",
@@ -2154,6 +2193,8 @@
"upload_status_errors": "Klaidos",
"upload_status_uploaded": "Įkelta",
"upload_success": "Įkėlimas pavyko, norėdami pamatyti naujai įkeltus elementus perkraukite puslapį.",
+ "upload_to_album_body": "Nenaudojantiems rankinio įkėlimo: dabar galite pridėti vietines nuotraukas tiesiai į albumą jas įkeldami. Nebereikės įkelti nuotraukų ir tik vėliau jas priskirti albumui.",
+ "upload_to_album_title": "Įkelti tiesiai į albumą",
"upload_to_immich": "Įkelti į Immich ({count})",
"uploading": "Įkeliama",
"uploading_media": "Įkeliama medija",
@@ -2221,6 +2262,9 @@
"week": "Savaitė",
"welcome": "Sveiki atvykę",
"welcome_to_immich": "Sveiki atvykę į Immich",
+ "whats_new": "Kas naujo",
+ "whats_new_settings_subtitle": "Sužinokite, kas naujo Immich",
+ "whats_new_version": "Versija {version}",
"when": "Kada",
"width": "Plotis",
"wifi_name": "Wi-Fi Pavadinimas",
diff --git a/i18n/lv.json b/i18n/lv.json
index 3c79c76c4d..f1620c9b1b 100644
--- a/i18n/lv.json
+++ b/i18n/lv.json
@@ -762,7 +762,6 @@
"custom_date": "Pielāgots datums",
"custom_locale": "Pielāgota lokalizācija",
"custom_locale_description": "Formatēt datumus, laikus un skaitļus atbilstoši valodai un reģionam",
- "custom_url": "Pielāgots URL",
"cutoff_date_description": "Paturēt fotoattēlus no pēdējā…",
"cutoff_day": "{count, plural, one {dienas} other {dienām}}",
"cutoff_year": "{count, plural, one {gada} other {gadiem}}",
diff --git a/i18n/ml.json b/i18n/ml.json
index 65cc00af58..b264cda3ec 100644
--- a/i18n/ml.json
+++ b/i18n/ml.json
@@ -23,8 +23,9 @@
"add_location": "സ്ഥാനം ചേർക്കുക",
"add_partner": "പങ്കാളിയെ ചേർക്കുക",
"add_photos": "ഫോട്ടോകൾ ചേർക്കുക",
+ "add_step": "ഘട്ടം ചേർക്കുക",
"add_tag": "ടാഗ് ചേർക്കുക",
- "add_to": "...ലേക്ക് ചേർക്കുക",
+ "add_to": "ചേർക്കുക…",
"add_to_album": "ആൽബത്തിലേക്ക് ചേർക്കുക",
"add_to_album_bottom_sheet_added": "{album} എന്നതിലേക്ക് ചേർത്തു",
"add_to_album_bottom_sheet_already_exists": "{album}-ൽ ഇതിനകം തന്നെയുണ്ട്",
@@ -72,6 +73,7 @@
"cron_expression_description": "ക്രോൺ ഫോർമാറ്റ് ഉപയോഗിച്ച് സ്കാനിംഗ് ഇടവേള സജ്ജീകരിക്കുക. കൂടുതൽ വിവരങ്ങൾക്കായി ദയവായി ക്രോൺടാബ് ഗുരു പോലുള്ളവ പരിശോധിക്കുക",
"cron_expression_presets": "ക്രോൺ എക്സ്പ്രഷൻ പ്രീസെറ്റുകൾ",
"disable_login": "ലോഗിൻ പ്രവർത്തനരഹിതമാക്കുക",
+ "download_csv": "കോമ കൊണ്ടു വേർതിരിച്ച (CSV) ഫയലായി ഡൗൺലോഡ് ചെയ്യുക",
"duplicate_detection_job_description": "സമാന ചിത്രങ്ങൾ കണ്ടെത്താൻ അസറ്റുകളിൽ മെഷീൻ ലേണിംഗ് പ്രവർത്തിപ്പിക്കുക. ഇത് സ്മാർട്ട് സെർച്ചിനെ ആശ്രയിച്ചിരിക്കുന്നു",
"exclusion_pattern_description": "നിങ്ങളുടെ ലൈബ്രറി സ്കാൻ ചെയ്യുമ്പോൾ ഫയലുകളും ഫോൾഡറുകളും ഒഴിവാക്കാൻ എക്സ്ക്ലൂഷൻ പാറ്റേണുകൾ നിങ്ങളെ സഹായിക്കുന്നു. നിങ്ങൾ ഇമ്പോർട്ട് ചെയ്യാൻ ആഗ്രഹിക്കാത്ത ഫയലുകൾ അടങ്ങിയ ഫോൾഡറുകൾ (ഉദാഹരണത്തിന് RAW ഫയലുകൾ) ഉണ്ടെങ്കിൽ ഇത് ഉപയോഗപ്രദമാണ്.",
"export_config_as_json_description": "നിലവിലുള്ള സിസ്റ്റം കോൺഫിഗറേഷൻ JSON ഫയലായി ഡൌൺലോഡ് ചെയ്യുക",
@@ -106,6 +108,21 @@
"image_thumbnail_quality_description": "തംബ്നെയിലിന്റെ ഗുണമേന്മ 1-100 വരെ. ഉയർന്ന മൂല്യം മികച്ചതാണ്, പക്ഷേ വലിയ ഫയലുകൾ ഉണ്ടാക്കുകയും ആപ്പിന്റെ പ്രതികരണശേഷി കുറയ്ക്കുകയും ചെയ്യും.",
"image_thumbnail_title": "തംബ്നെയിൽ ക്രമീകരണങ്ങൾ",
"import_config_from_json_description": "ഒരു JSON കോൺഫിഗറേഷൻ ഫയൽ അപ്ലോഡ് ചെയ്തുകൊണ്ട് സിസ്റ്റം കോൺഫിഗറേഷൻ ഇറക്കുമതി ചെയ്യുക",
+ "integrity_checks_checksum_files": "ചെക്സം ഫയൽസ്",
+ "integrity_checks_checksum_files_description": "ചെക്ക്സം പരിശോധന ക്രമീകരിക്കുക",
+ "integrity_checks_checksum_files_enable_description": "ചെക്ക്സം പരിശോധന പ്രവർത്തനക്ഷമമാക്കുക",
+ "integrity_checks_checksum_files_percentage_limit": "പരിധി ശതമാനത്തിൽ",
+ "integrity_checks_checksum_files_percentage_limit_description": "ചെക്ക്സം ചെക്ക് ഓരോ ഇടവേളയിലും എത്രത്തോളം പ്രവർത്തിക്കണം എന്നതിന് 0.01 നും 1 നും ഇടയിലുള്ള പരമാവധി ശതമാനം കോൺഫിഗർ ചെയ്യുക.",
+ "integrity_checks_checksum_files_time_limit": "സമയ പരിധി",
+ "integrity_checks_checksum_files_time_limit_description": "ചെക്ക്സം ചെക്ക് ഓരോ ഇടവേളയിലും പ്രവർത്തിപ്പിക്കേണ്ട പരമാവധി ദൈർഘ്യം കോൺഫിഗർ ചെയ്യുക. (മില്ലിസെക്കൻഡ്)",
+ "integrity_checks_missing_files": "ഫയലുകൾ കാണുന്നില്ല",
+ "integrity_checks_missing_files_description": "ഫ്രീക്വൻസി കോൺഫിഗർ ചെയ്ത് നഷ്ടമായ ഫയലുകളുടെ പരിശോധന പ്രവർത്തനക്ഷമമാക്കുക അല്ലെങ്കിൽ പ്രവർത്തനരഹിതമാക്കുക",
+ "integrity_checks_missing_files_enable_description": "വിട്ടുപോയ ഫയലുകളുടെ പരിശോധന പ്രവർത്തനക്ഷമമാക്കുക",
+ "integrity_checks_settings": "സമഗ്രത പരിശോധിക്കുന്നു",
+ "integrity_checks_settings_description": "സമഗ്രത പരിശോധന ഇടവേളകൾ കൈകാര്യം ചെയ്യുക",
+ "integrity_checks_untracked_files": "ട്രാക്ക് ചെയ്യാത്ത ഫയലുകൾ",
+ "integrity_checks_untracked_files_description": "ഫ്രീക്വൻസി കോൺഫിഗർ ചെയ്ത് ട്രാക്ക് ചെയ്യാത്ത ഫയലുകളുടെ പരിശോധന പ്രവർത്തനക്ഷമമാക്കുകയോ പ്രവർത്തനരഹിതമാക്കുകയോ ചെയ്യുക",
+ "integrity_checks_untracked_files_enable_description": "ട്രാക്ക് ചെയ്യാത്ത ഫയലുകളുടെ പരിശോധന പ്രവർത്തനക്ഷമമാക്കുക",
"job_concurrency": "{job} കോൺകറൻസി",
"job_created": "ജോലി സൃഷ്ടിച്ചു",
"job_not_concurrency_safe": "ഈ ജോലി കോൺകറൻസി-സേഫ് അല്ല.",
@@ -113,6 +130,7 @@
"job_settings_description": "ജോലി കോൺകറൻസി കൈകാര്യം ചെയ്യുക",
"jobs_delayed": "{jobCount, plural, one {# ജോലി വൈകി} other {# ജോലികൾ വൈകി}}",
"jobs_failed": "{jobCount, plural, one {# ജോലി പരാജയപ്പെട്ടു} other {# ജോലികൾ പരാജയപ്പെട്ടു}}",
+ "jobs_over_time": "കാലക്രമേണ ജോലികൾ",
"library_created": "{library} എന്ന ലൈബ്രറി സൃഷ്ടിച്ചു",
"library_deleted": "ലൈബ്രറി ഇല്ലാതാക്കി",
"library_details": "ലൈബ്രറി വിവരങ്ങൾ",
@@ -180,11 +198,39 @@
"machine_learning_smart_search_enabled": "സ്മാർട്ട് സെർച്ച് പ്രവർത്തനക്ഷമമാക്കുക",
"machine_learning_smart_search_enabled_description": "പ്രവർത്തനരഹിതമാക്കിയാൽ, സ്മാർട്ട് സെർച്ചിനായി ചിത്രങ്ങൾ എൻകോഡ് ചെയ്യപ്പെടില്ല.",
"machine_learning_url_description": "മെഷീൻ ലേണിംഗ് സെർവറിന്റെ URL. ഒന്നിൽ കൂടുതൽ URL-കൾ നൽകിയിട്ടുണ്ടെങ്കിൽ, ഓരോ സെർവറും ഒന്നിനു പുറകെ ഒന്നായി വിജയകരമായി പ്രതികരിക്കുന്നതുവരെ ശ്രമിക്കും. പ്രതികരിക്കാത്ത സെർവറുകൾ ഓൺലൈനിൽ തിരികെ വരുന്നതുവരെ താൽക്കാലികമായി അവഗണിക്കപ്പെടും.",
+ "maintenance_backup_management": "ബാക്കപ്പ് മാനേജ്മെന്റ്",
+ "maintenance_delete_backup": "ബാക്കപ്പ് നീക്കം ചെയ്യുക",
+ "maintenance_delete_backup_description": "ഈ ഫയൽ തിരിച്ചെടുക്കാൻ പറ്റാത്ത രീതിയിൽ ഇല്ലാതാക്കപ്പെടും.",
+ "maintenance_delete_error": "ബാക്കപ്പ് നീക്കം ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു.",
+ "maintenance_integrity_check": "പരിശോധിക്കുക",
+ "maintenance_integrity_check_all": "എല്ലാം പരിശോധിക്കുക",
+ "maintenance_integrity_checksum_mismatch": "ചെക്ക്സം പൊരുത്തപ്പെടുന്നില്ല",
+ "maintenance_integrity_checksum_mismatch_description": "ഓൺ-ഡിസ്ക് ചെക്ക്സം അതിന്റെ Immich ഡാറ്റാബേസിൽ സംഭരിച്ചിരിക്കുന്ന ചെക്ക്സവുമായി പൊരുത്തപ്പെടാത്ത ഫയലുകൾ.",
+ "maintenance_integrity_checksum_mismatch_job": "ചെക്ക്സം പൊരുത്തക്കേടുകൾ പരിശോധിക്കുക",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "ചെക്ക്സം പൊരുത്തക്കേട് റിപ്പോർട്ടുകൾ പുതുക്കുക",
+ "maintenance_integrity_missing_file": "ഫയലുകൾ കാണുന്നില്ല",
+ "maintenance_integrity_missing_file_description": "Immich അതിന്റെ ഡാറ്റാബേസിൽ ട്രാക്ക് ചെയ്തതും എന്നാൽ ഫയൽ സിസ്റ്റത്തിൽ നിലവിലില്ലാത്തതുമായ ഫയലുകൾ.",
+ "maintenance_integrity_missing_file_job": "നഷ്ടപ്പെട്ട ഫയലുകൾ പരിശോധിക്കുക",
+ "maintenance_integrity_missing_file_refresh_job": "നഷ്ടപ്പെട്ട ഫയൽ റിപ്പോർട്ടുകൾ പുതുക്കുക",
+ "maintenance_integrity_report": "സമഗ്രത റിപ്പോർട്ട്",
+ "maintenance_integrity_untracked_file": "ട്രാക്ക് ചെയ്യാത്ത ഫയലുകൾ",
+ "maintenance_integrity_untracked_file_description": "Immich-ന്റെ ഡയറക്ടറികളിലെ ഫയലുകളിൽ Immich -ന് ഒരു റെക്കോർഡും ഇല്ലാത്തവ.",
+ "maintenance_integrity_untracked_file_job": "ട്രാക്ക് ചെയ്യാത്ത ഫയലുകൾ പരിശോധിക്കുക",
+ "maintenance_integrity_untracked_file_refresh_job": "ട്രാക്ക് ചെയ്യാത്ത ഫയൽ റിപ്പോർട്ടുകൾ പുതുക്കുക",
+ "maintenance_restore_backup": "ബാക്കപ്പ് പുനഃസ്ഥാപിക്കുക",
+ "maintenance_restore_backup_description": "തിരഞ്ഞെടുത്ത ബാക്കപ്പിൽ നിന്ന് Immich മായ്ക്കുകയും പുനഃസ്ഥാപിക്കുകയും ചെയ്യും. തുടരുന്നതിന് മുമ്പ് ഒരു ബാക്കപ്പ് സൃഷ്ടിക്കപ്പെടും.",
+ "maintenance_restore_backup_different_version": "Immich -ന്റെ മറ്റൊരു പതിപ്പ് ഉപയോഗിച്ചാണ് ഈ ബാക്കപ്പ് സൃഷ്ടിച്ചത്!",
+ "maintenance_restore_backup_unknown_version": "ബാക്കപ്പ് പതിപ്പ് നിർണ്ണയിക്കാൻ കഴിഞ്ഞില്ല.",
+ "maintenance_restore_database_backup": "ഡാറ്റാബേസ് ബാക്കപ്പ് പുനഃസ്ഥാപിക്കുക",
+ "maintenance_restore_database_backup_description": "ഒരു ബാക്കപ്പ് ഫയൽ ഉപയോഗിച്ച് മുമ്പത്തെ ഡാറ്റാബേസ് അവസ്ഥയിലേക്ക് റോൾബാക്ക് ചെയ്യുക",
"maintenance_settings": "അറ്റകുറ്റപ്പണി (Maintenance)",
"maintenance_settings_description": "ഇമ്മിക്ക് മെയിന്റനൻസ് മോഡിലേക്ക് മാറ്റുക.",
- "maintenance_start": "മെയിന്റനൻസ് മോഡ് ആരംഭിക്കുക",
+ "maintenance_start": "മെയിന്റനൻസ് മോഡിലേക്കു മാറുക",
"maintenance_start_error": "മെയിന്റനൻസ് മോഡ് ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടു.",
+ "maintenance_upload_backup": "ഡാറ്റാബേസ് ബാക്കപ്പ് ഫയൽ അപ്ലോഡ് ചെയ്യുക",
+ "maintenance_upload_backup_error": "ബാക്കപ്പ് അപ്ലോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല, ഇതൊരു .sql/.sql.gz ഫയലാണോ?",
"manage_concurrency": "കോൺകറൻസി കൈകാര്യം ചെയ്യുക",
+ "manage_concurrency_description": "ജോബ് കൺകറൻസി മാനേജ് ചെയ്യാൻ ജോബ് പേജിലേക്ക് നാവിഗേറ്റ് ചെയ്യുക",
"manage_log_settings": "ലോഗ് ക്രമീകരണങ്ങൾ കൈകാര്യം ചെയ്യുക",
"map_dark_style": "ഡാർക്ക് സ്റ്റൈൽ",
"map_enable_description": "മാപ്പ് ഫീച്ചറുകൾ പ്രവർത്തനക്ഷമമാക്കുക",
@@ -245,16 +291,20 @@
"notification_enable_email_notifications": "ഇമെയിൽ അറിയിപ്പുകൾ പ്രവർത്തനക്ഷമമാക്കുക",
"notification_settings": "അറിയിപ്പ് ക്രമീകരണങ്ങൾ",
"notification_settings_description": "ഇമെയിൽ ഉൾപ്പെടെയുള്ള അറിയിപ്പ് ക്രമീകരണങ്ങൾ കൈകാര്യം ചെയ്യുക",
+ "oauth_allow_insecure_requests": "സുരക്ഷിതമല്ലാത്ത അഭ്യർത്ഥനകൾ അനുവദിക്കുക",
+ "oauth_allow_insecure_requests_description": "മുന്നറിയിപ്പ്: ഇത് OAuth അഭ്യർത്ഥനകൾക്കായുള്ള TLS സർട്ടിഫിക്കറ്റ് മൂല്യനിർണ്ണയം പ്രവർത്തനരഹിതമാക്കുകയും നിങ്ങളെ MITM ആക്രമണങ്ങൾക്ക് വിധേയമാക്കുകയും ചെയ്തേക്കാം.",
"oauth_auto_launch": "യാന്ത്രികമായി തുടങ്ങുക",
"oauth_auto_launch_description": "ലോഗിൻ പേജിലേക്ക് പോകുമ്പോൾ OAuth ലോഗിൻ ഫ്ലോ യാന്ത്രികമായി ആരംഭിക്കുക",
"oauth_auto_register": "യാന്ത്രികമായി രജിസ്റ്റർ ചെയ്യുക",
"oauth_auto_register_description": "OAuth ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്ത ശേഷം പുതിയ ഉപയോക്താക്കളെ യാന്ത്രികമായി രജിസ്റ്റർ ചെയ്യുക",
"oauth_button_text": "ബട്ടണിലെ വാചകം",
- "oauth_client_secret_description": "OAuth ദാതാവ് PKCE (പ്രൂഫ് കീ ഫോർ കോഡ് എക്സ്ചേഞ്ച്) പിന്തുണയ്ക്കുന്നില്ലെങ്കിൽ ആവശ്യമാണ്",
+ "oauth_client_secret_description": "സുരക്ഷിത ഉപയോക്താവിനോ, OAuth ദാതാവ് PKCE (പ്രൂഫ് കീ ഫോർ കോഡ് എക്സ്ചേഞ്ച്) പിന്തുണയ്ക്കുന്നില്ലെങ്കിലോ ഇത് ആവശ്യമാണ്",
"oauth_enable_description": "OAuth ഉപയോഗിച്ച് ലോഗിൻ ചെയ്യുക",
+ "oauth_end_session_url_description": "ഉപയോക്താവ് ലോഗ് ഔട്ട് ചെയ്യുമ്പോൾ ഈ യുആർഐയിലേക്ക് റീഡയറക്ട് ചെയ്യുക.",
"oauth_mobile_redirect_uri": "മൊബൈൽ റീഡയറക്ട് URI",
"oauth_mobile_redirect_uri_override": "മൊബൈൽ റീഡയറക്ട് URI ഓവർറൈഡ്",
"oauth_mobile_redirect_uri_override_description": "OAuth ദാതാവ് \"{callback}\" പോലുള്ള ഒരു മൊബൈൽ URI അനുവദിക്കാത്തപ്പോൾ പ്രവർത്തനക്ഷമമാക്കുക",
+ "oauth_prompt_description": "പ്രോംപ്റ്റ് പാരാമീറ്റർ (ഉദാ. select_account, login, consent)",
"oauth_role_claim": "റോൾ ക്ലെയിം",
"oauth_role_claim_description": "ഈ ക്ലെയിമിന്റെ സാന്നിധ്യത്തെ അടിസ്ഥാനമാക്കി യാന്ത്രികമായി അഡ്മിൻ ആക്സസ് നൽകുക. ക്ലെയിമിന് 'user' അല്ലെങ്കിൽ 'admin' എന്ന് ഉണ്ടാകാം.",
"oauth_settings": "OAuth",
@@ -274,10 +324,16 @@
"password_settings_description": "പാസ്വേഡ് ലോഗിൻ ക്രമീകരണങ്ങൾ കൈകാര്യം ചെയ്യുക",
"paths_validated_successfully": "എല്ലാ പാത്തുകളും വിജയകരമായി സാധൂകരിച്ചു",
"person_cleanup_job": "വ്യക്തി ക്ലീനപ്പ്",
+ "queue_details": "ക്യൂ വിശദാംശങ്ങൾ",
+ "queues": "ജോലി ക്യൂകൾ",
+ "queues_page_description": "അഡ്മിൻ ജോലി ക്യൂ പേജ്",
"quota_size_gib": "ക്വാട്ട വലുപ്പം (GiB)",
"refreshing_all_libraries": "എല്ലാ ലൈബ്രറികളും പുതുക്കുന്നു",
"registration": "അഡ്മിൻ രജിസ്ട്രേഷൻ",
"registration_description": "നിങ്ങളാണ് സിസ്റ്റത്തിലെ ആദ്യത്തെ ഉപയോക്താവ് എന്നതിനാൽ, നിങ്ങളെ അഡ്മിൻ ആയി നിയമിക്കും. ഭരണപരമായ ജോലികൾക്ക് നിങ്ങൾ ഉത്തരവാദിയായിരിക്കും, കൂടാതെ അധിക ഉപയോക്താക്കളെ സൃഷ്ടിക്കുന്നത് നിങ്ങളായിരിക്കും.",
+ "release_channel_release_candidate": "പുറത്തിറക്കാൻ യോജിച്ചതു",
+ "release_channel_stable": "സ്ഥിരതയുള്ള",
+ "remove_failed_jobs": "പരാജയപ്പെട്ട ജോലികൾ നീക്കം ചെയ്യുക",
"require_password_change_on_login": "ആദ്യ ലോഗിൻ ചെയ്യുമ്പോൾ പാസ്വേഡ് മാറ്റാൻ ഉപയോക്താവിനോട് ആവശ്യപ്പെടുക",
"reset_settings_to_default": "ക്രമീകരണങ്ങൾ ഡിഫോൾട്ടിലേക്ക് പുനഃസജ്ജമാക്കുക",
"reset_settings_to_recent_saved": "അടുത്തിടെ സേവ് ചെയ്ത ക്രമീകരണങ്ങളിലേക്ക് പുനഃസജ്ജമാക്കുക",
@@ -285,13 +341,15 @@
"search_jobs": "ജോലികൾക്കായി തിരയുക…",
"send_welcome_email": "സ്വാഗത ഇമെയിൽ അയക്കുക",
"server_external_domain_settings": "ബാഹ്യ ഡൊമെയ്ൻ",
- "server_external_domain_settings_description": "പൊതുവായി പങ്കിട്ട ലിങ്കുകൾക്കുള്ള ഡൊമെയ്ൻ, http(s):// ഉൾപ്പെടെ",
+ "server_external_domain_settings_description": "പുറത്തേക്കുള്ള ലിങ്കുകളിൽ ഉപയോഗിക്കുന്ന ഡൊമൈൻ",
"server_public_users": "പൊതു ഉപയോക്താക്കൾ",
"server_public_users_description": "പങ്കിട്ട ആൽബങ്ങളിലേക്ക് ഒരു ഉപയോക്താവിനെ ചേർക്കുമ്പോൾ എല്ലാ ഉപയോക്താക്കളെയും (പേരും ഇമെയിലും) ലിസ്റ്റ് ചെയ്യും. പ്രവർത്തനരഹിതമാക്കുമ്പോൾ, ഉപയോക്തൃ ലിസ്റ്റ് അഡ്മിൻ ഉപയോക്താക്കൾക്ക് മാത്രമേ ലഭ്യമാകൂ.",
"server_settings": "സെർവർ ക്രമീകരണങ്ങൾ",
"server_settings_description": "സെർവർ ക്രമീകരണങ്ങൾ കൈകാര്യം ചെയ്യുക",
+ "server_stats_page_description": "അഡ്മിൻ സെർവർ സ്റ്റാറ്റിസ്റ്റിക്സ് പേജ്",
"server_welcome_message": "സ്വാഗത സന്ദേശം",
"server_welcome_message_description": "ലോഗിൻ പേജിൽ പ്രദർശിപ്പിക്കുന്ന ഒരു സന്ദേശം.",
+ "settings_page_description": "അഡ്മിൻ ക്രമീകരണ പേജ്",
"sidecar_job": "സൈഡ്കാർ മെറ്റാഡാറ്റ",
"sidecar_job_description": "ഫയൽസിസ്റ്റത്തിൽ നിന്ന് സൈഡ്കാർ മെറ്റാഡാറ്റ കണ്ടെത്തുകയോ സിൻക്രൊണൈസ് ചെയ്യുകയോ ചെയ്യുക",
"slideshow_duration_description": "ഓരോ ചിത്രവും പ്രദർശിപ്പിക്കാനുള്ള സെക്കൻഡുകളുടെ എണ്ണം",
@@ -369,6 +427,10 @@
"transcoding_preferred_hardware_device_description": "VAAPI, QSV എന്നിവയ്ക്ക് മാത്രം ബാധകം. ഹാർഡ്വെയർ ട്രാൻസ്കോഡിംഗിനായി ഉപയോഗിക്കുന്ന dri നോഡ് സജ്ജമാക്കുന്നു.",
"transcoding_preset_preset": "പ്രീസെറ്റ് (-preset)",
"transcoding_preset_preset_description": "കംപ്രഷൻ വേഗത. വേഗത കുറഞ്ഞ പ്രീസെറ്റുകൾ ചെറിയ ഫയലുകൾ നിർമ്മിക്കുന്നു, ഒരു നിശ്ചിത ബിറ്റ്റേറ്റ് ലക്ഷ്യമിടുമ്പോൾ ഗുണമേന്മ വർദ്ധിപ്പിക്കുന്നു. 'faster'-നേക്കാൾ ഉയർന്ന വേഗത VP9 അവഗണിക്കുന്നു.",
+ "transcoding_realtime": "തത്സമയ ട്രാൻസ്കോഡിംഗ് [പരീക്ഷണാത്മകം]",
+ "transcoding_realtime_description": "വീഡിയോ സ്ട്രീം ചെയ്യുന്നതിനാൽ തത്സമയം ട്രാൻസ്കോഡിംഗ് നടത്താൻ അനുവദിക്കുന്നു. ഗുണമേന്മയുള്ള സ്വിച്ചിംഗ് പ്രവർത്തനക്ഷമമാക്കുന്നു, എന്നാൽ സെർവർ കഴിവുകളെ ആശ്രയിച്ച് ഉയർന്ന പ്ലേബാക്ക് ലേറ്റൻസിക്കും ഇടർച്ചയ്ക്കും കാരണമായേക്കാം.",
+ "transcoding_realtime_enabled": "തത്സമയ ട്രാൻസ്കോഡിംഗ് പ്രവർത്തനക്ഷമമാക്കുക",
+ "transcoding_realtime_enabled_description": "പ്രവർത്തനരഹിതമാക്കിയാൽ, പുതിയ തത്സമയ ട്രാൻസ്കോഡിംഗ് സെഷനുകൾ ആരംഭിക്കാൻ സെർവർ വിസമ്മതിക്കും.",
"transcoding_reference_frames": "റഫറൻസ് ഫ്രെയിമുകൾ",
"transcoding_reference_frames_description": "നൽകിയിരിക്കുന്ന ഒരു ഫ്രെയിം കംപ്രസ് ചെയ്യുമ്പോൾ റഫറൻസ് ചെയ്യേണ്ട ഫ്രെയിമുകളുടെ എണ്ണം. ഉയർന്ന മൂല്യങ്ങൾ കംപ്രഷൻ കാര്യക്ഷമത മെച്ചപ്പെടുത്തുന്നു, പക്ഷേ എൻകോഡിംഗ് വേഗത കുറയ്ക്കുന്നു. 0 ഈ മൂല്യം യാന്ത്രികമായി സജ്ജീകരിക്കുന്നു.",
"transcoding_required_description": "അംഗീകൃത ഫോർമാറ്റിൽ അല്ലാത്ത വീഡിയോകൾ മാത്രം",
@@ -410,6 +472,10 @@
"user_restore_scheduled_removal": "ഉപയോക്താവിനെ പുനഃസ്ഥാപിക്കുക - {date, date, long}-ന് നീക്കംചെയ്യാൻ ഷെഡ്യൂൾ ചെയ്തിരിക്കുന്നു",
"user_settings": "ഉപയോക്താവിന്റെ ക്രമീകരണങ്ങൾ",
"user_settings_description": "ഉപയോക്തൃ ക്രമീകരണങ്ങൾ കൈകാര്യം ചെയ്യുക",
+ "user_successfully_removed": "{email} എന്ന ഉപയോക്താവിനെ വിജയകരമായി നീക്കം ചെയ്തു.",
+ "users_page_description": "അഡ്മിൻ ഉപയോക്താക്കളുടെ പേജ്",
+ "version_check_channel": "റിലീസ് ചാനൽ",
+ "version_check_channel_description": "പതിപ്പ് അറിയിപ്പുകൾ ലഭിക്കാൻ ആഗ്രഹിക്കുന്ന റിലീസ് ചാനൽ തിരഞ്ഞെടുക്കുക",
"version_check_enabled_description": "പതിപ്പ് പരിശോധന പ്രവർത്തനക്ഷമമാക്കുക",
"version_check_implications": "പതിപ്പ് പരിശോധന ഫീച്ചർ {server}-മായി ആനുകാലിക ആശയവിനിമയത്തെ ആശ്രയിച്ചിരിക്കുന്നു",
"version_check_settings": "പതിപ്പ് പരിശോധന",
@@ -421,6 +487,9 @@
"admin_password": "അഡ്മിൻ പാസ്വേഡ്",
"administration": "അഡ്മിനിസ്ട്രേഷൻ",
"advanced": "വിപുലമായത്",
+ "advanced_settings_clear_image_cache": "ഇമേജ് കാഷെ മായ്ക്കുക",
+ "advanced_settings_clear_image_cache_error": "ഇമേജ് കാഷെ മായ്ക്കുന്നതിൽ പരാജയപ്പെട്ടു",
+ "advanced_settings_clear_image_cache_success": "{size} വിജയകരമായി മായ്ച്ചു",
"advanced_settings_log_level_title": "ലോഗ് ലെവൽ: {level}",
"advanced_settings_prefer_remote_subtitle": "ചില ഉപകരണങ്ങളിൽ പ്രാദേശിക അസറ്റുകളിൽ നിന്ന് തംബ്നെയിലുകൾ ലോഡുചെയ്യാൻ വളരെ വേഗത കുറവാണ്. പകരം റിമോട്ട് ചിത്രങ്ങൾ ലോഡുചെയ്യാൻ ഈ ക്രമീകരണം സജീവമാക്കുക.",
"advanced_settings_prefer_remote_title": "റിമോട്ട് ചിത്രങ്ങൾക്ക് മുൻഗണന നൽകുക",
@@ -453,6 +522,7 @@
"album_summary": "ആൽബത്തിന്റെ സംഗ്രഹം",
"album_updated": "ആൽബം അപ്ഡേറ്റ് ചെയ്തു",
"album_updated_setting_description": "ഒരു പങ്കിട്ട ആൽബത്തിൽ പുതിയ അസറ്റുകൾ ഉണ്ടാകുമ്പോൾ ഒരു ഇമെയിൽ അറിയിപ്പ് സ്വീകരിക്കുക",
+ "album_upload_assets": "നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ നിന്ന് അസറ്റുകൾ അപ്ലോഡ് ചെയ്ത് ആൽബത്തിലേക്ക് ചേർക്കുക",
"album_viewer_appbar_share_err_delete": "ആൽബം ഇല്ലാതാക്കുന്നതിൽ പരാജയപ്പെട്ടു",
"album_viewer_page_share_add_users": "ഉപയോക്താക്കളെ ചേർക്കുക",
"album_with_link_access": "ലിങ്കുള്ള ആർക്കും ഈ ആൽബത്തിലെ ഫോട്ടോകളും ആളുകളെയും കാണാൻ അനുവദിക്കുക.",
@@ -465,12 +535,16 @@
"all": "എല്ലാം",
"all_albums": "എല്ലാ ആൽബങ്ങളും",
"all_people": "എല്ലാ ആളുകളും",
+ "all_photos": "എല്ലാ ഫോട്ടോകളും",
"all_videos": "എല്ലാ വീഡിയോകളും",
"allow_dark_mode": "ഡാർക്ക് മോഡ് അനുവദിക്കുക",
"allow_public_user_to_download": "പൊതു ഉപയോക്താവിനെ ഡൗൺലോഡ് ചെയ്യാൻ അനുവദിക്കുക",
"allow_public_user_to_upload": "പൊതു ഉപയോക്താവിനെ അപ്ലോഡ് ചെയ്യാൻ അനുവദിക്കുക",
"allowed": "അനുവദിച്ചു",
"alt_text_qr_code": "QR കോഡ് ചിത്രം",
+ "always_keep": "എപ്പോഴും സൂക്ഷിക്കുക",
+ "always_keep_photos_hint": "ഇടം സൃഷ്ടിക്കുക, ഈ ഉപകരണത്തിൽ എല്ലാ ഫോട്ടോകളും സൂക്ഷിക്കും.",
+ "always_keep_videos_hint": "ഇടം സൃഷ്ടിക്കുക, എല്ലാ വീഡിയോകളും ഈ ഉപകരണത്തിൽ സൂക്ഷിക്കും.",
"api_key": "API കീ",
"api_key_description": "ഈ മൂല്യം ഒരു തവണ മാത്രമേ കാണിക്കൂ. വിൻഡോ അടയ്ക്കുന്നതിന് മുമ്പ് ഇത് പകർത്തുന്നത് ഉറപ്പാക്കുക.",
"api_key_empty": "നിങ്ങളുടെ API കീയുടെ പേര് ശൂന്യമാകരുത്",
@@ -495,6 +569,8 @@
"are_you_sure_to_do_this": "ഇത് ചെയ്യണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?",
"asset_added_to_album": "ആൽബത്തിലേക്ക് ചേർത്തു",
"asset_adding_to_album": "ആൽബത്തിലേക്ക് ചേർത്തുകൊണ്ടിരിക്കുന്നു…",
+ "asset_created": "അസറ്റ് സൃഷ്ടിച്ചു",
+ "asset_day_count": "{date}: {count, plural, one {# അസറ്റ്} other {# അസറ്റുകൾ}}",
"asset_description_updated": "അസറ്റിന്റെ വിവരണം അപ്ഡേറ്റ് ചെയ്തു",
"asset_hashing": "ഹാഷിംഗ്…",
"asset_list_group_by_sub_title": "ഇതനുസരിച്ച് ഗ്രൂപ്പ് ചെയ്യുക",
@@ -503,6 +579,9 @@
"asset_list_layout_sub_title": "ലേഔട്ട്",
"asset_list_settings_subtitle": "ഫോട്ടോ ഗ്രിഡ് ലേഔട്ട് ക്രമീകരണങ്ങൾ",
"asset_list_settings_title": "ഫോട്ടോ ഗ്രിഡ്",
+ "asset_not_found_on_device_android": "ഉപകരണത്തിൽ അസറ്റ് കണ്ടെത്തിയില്ല",
+ "asset_not_found_on_device_ios": "ഉപകരണത്തിൽ അസറ്റ് കണ്ടെത്തിയില്ല. നിങ്ങൾ iCloud ഉപയോഗിക്കുകയാണെങ്കിൽ, iCloud-ൽ സംഭരിച്ചിരിക്കുന്ന മോശം ഫയൽ കാരണം അസറ്റ് ആക്സസ് ചെയ്യാൻ കഴിയില്ല",
+ "asset_not_found_on_icloud": "ഐക്ലൗഡിൽ അസറ്റ് കണ്ടെത്തിയില്ല. iCloud-ൽ സംഭരിച്ചിരിക്കുന്ന മോശം ഫയൽ കാരണം അസറ്റ് ആക്സസ്സുചെയ്യാനാകാതെ വന്നേക്കാം",
"asset_offline": "അസറ്റ് ഓഫ്ലൈൻ",
"asset_offline_description": "ഈ എക്സ്റ്റേണൽ അസറ്റ് ഇപ്പോൾ ഡിസ്കിൽ ലഭ്യമല്ല. സഹായത്തിനായി നിങ്ങളുടെ Immich അഡ്മിനിസ്ട്രേറ്ററുമായി ബന്ധപ്പെടുക.",
"asset_skipped": "ഒഴിവാക്കി",
@@ -567,12 +646,14 @@
"backup_options": "ബാക്കപ്പ് ഓപ്ഷനുകൾ",
"backup_settings_subtitle": "അപ്ലോഡ് ക്രമീകരണങ്ങൾ കൈകാര്യം ചെയ്യുക",
"backward": "പിന്നോട്ട്",
+ "battery_optimization_backup_reliability": "ബാറ്ററി ഒപ്റ്റിമൈസേഷനുകൾ പ്രവർത്തനരഹിതമാക്കുന്നത് പശ്ചാത്തല ബാക്കപ്പിൻ്റെ വിശ്വാസ്യത മെച്ചപ്പെടുത്തും",
"biometric_auth_enabled": "ബയോമെട്രിക് പ്രാമാണീകരണം പ്രവർത്തനക്ഷമമാക്കി",
"biometric_locked_out": "ബയോമെട്രിക് പ്രാമാണീകരണത്തിൽ നിന്ന് നിങ്ങളെ ലോക്ക് ഔട്ട് ചെയ്തിരിക്കുന്നു",
"biometric_no_options": "ബയോമെട്രിക് ഓപ്ഷനുകളൊന്നും ലഭ്യമല്ല",
"biometric_not_available": "ഈ ഉപകരണത്തിൽ ബയോമെട്രിക് പ്രാമാണീകരണം ലഭ്യമല്ല",
"birthdate_set_description": "ഒരു ഫോട്ടോ എടുക്കുമ്പോഴുള്ള ഈ വ്യക്തിയുടെ പ്രായം കണക്കാക്കാൻ ജനനത്തീയതി ഉപയോഗിക്കുന്നു.",
"blurred_background": "മങ്ങിയ പശ്ചാത്തലം",
+ "browse_templates": "ടെംപ്ലേറ്റുകൾ ബ്രൗസ് ചെയ്യുക",
"bugs_and_feature_requests": "ബഗുകളും ഫീച്ചർ അഭ്യർത്ഥനകളും",
"build": "ബിൽഡ്",
"build_image": "ഇമേജ് നിർമ്മിക്കുക",
@@ -592,6 +673,7 @@
"cannot_update_the_description": "വിവരണം അപ്ഡേറ്റ് ചെയ്യാൻ കഴിയില്ല",
"cast": "കാസ്റ്റ്",
"cast_description": "ലഭ്യമായ കാസ്റ്റ് ഡെസ്റ്റിനേഷനുകൾ കോൺഫിഗർ ചെയ്യുക",
+ "change": "മാറ്റുക",
"change_date": "തീയതി മാറ്റുക",
"change_description": "വിവരണം മാറ്റുക",
"change_display_order": "പ്രദർശന ക്രമം മാറ്റുക",
@@ -613,17 +695,34 @@
"charging": "ചാർജ്ജ് ചെയ്യുന്നു",
"charging_requirement_mobile_backup": "പശ്ചാത്തല ബാക്കപ്പിന് ഉപകരണം ചാർജ് ചെയ്യേണ്ടതുണ്ട്",
"check_logs": "ലോഗുകൾ പരിശോധിക്കുക",
+ "checksum": "ചെക്ക്സം",
+ "choose": "തിരഞ്ഞെടുക്കുക",
"choose_matching_people_to_merge": "ലയിപ്പിക്കാൻ പൊരുത്തപ്പെടുന്ന ആളുകളെ തിരഞ്ഞെടുക്കുക",
"city": "നഗരം",
+ "cleanup_confirm_description": "സെർവറിലേക്ക് സുരക്ഷിതമായി ബാക്കപ്പ് ചെയ്തിരിക്കുന്ന {count} അസറ്റുകൾ ({date}-ന് മുമ്പ് സൃഷ്ടിച്ചത്) ഇമ്മിച്ച് കണ്ടെത്തി. ഈ ഉപകരണത്തിൽ നിന്ന് പ്രാദേശിക പകർപ്പുകൾ നീക്കം ചെയ്യണോ?",
+ "cleanup_confirm_prompt_title": "ഈ ഉപകരണത്തിൽ നിന്ന് നീക്കം ചെയ്യണോ?",
+ "cleanup_deleted_assets": "ഉപകരണ ട്രാഷിലേക്ക് {count} അസറ്റുകൾ നീക്കി",
+ "cleanup_deleting": "ചവറ്റുകുട്ടയിലേക്ക് നീങ്ങുന്നു...",
+ "cleanup_found_assets": "{count} ബാക്കപ്പ് ചെയ്ത അസറ്റുകൾ കണ്ടെത്തി",
+ "cleanup_found_assets_with_size": "{count} ബാക്കപ്പ് ചെയ്ത അസറ്റുകൾ കണ്ടെത്തി ({size})",
+ "cleanup_icloud_shared_albums_excluded": "iCloud പങ്കിട്ട ആൽബങ്ങൾ സ്കാനിൽ നിന്ന് ഒഴിവാക്കിയിരിക്കുന്നു",
+ "cleanup_no_assets_found": "മുകളിലുള്ള മാനദണ്ഡങ്ങളുമായി പൊരുത്തപ്പെടുന്ന അസറ്റുകളൊന്നും കണ്ടെത്തിയില്ല. സെർവറിലേക്ക് ബാക്കപ്പ് ചെയ്ത അസറ്റുകൾ മാത്രമേ ഫ്രീ അപ്പ് സ്പെയ്സിന് നീക്കംചെയ്യാനാകൂ",
+ "cleanup_preview_title": "നീക്കം ചെയ്യാനുള്ള അസറ്റുകൾ ({count})",
+ "cleanup_step3_description": "നിങ്ങളുടെ തീയതിയുമായി പൊരുത്തപ്പെടുന്ന ബാക്കപ്പ് അസറ്റുകൾക്കായി സ്കാൻ ചെയ്ത് ക്രമീകരണങ്ങൾ സൂക്ഷിക്കുക.",
+ "cleanup_step4_summary": "നിങ്ങളുടെ പ്രാദേശിക ഉപകരണത്തിൽ നിന്ന് നീക്കംചെയ്യുന്നതിന് {count} അസറ്റുകൾ ({date}-ന് മുമ്പ് സൃഷ്ടിച്ചത്). ഇമ്മിച്ച് ആപ്പിൽ നിന്ന് ഫോട്ടോകൾ തുടർന്നും ആക്സസ് ചെയ്യാനാകും.",
+ "cleanup_trash_hint": "സംഭരണ സ്ഥലം പൂർണ്ണമായി വീണ്ടെടുക്കാൻ, സിസ്റ്റം ഗാലറി ആപ്പ് തുറന്ന് ട്രാഷ് ശൂന്യമാക്കുക",
"clear": "ക്ലിയർ ചെയ്യുക",
"clear_all": "എല്ലാം ക്ലിയർ ചെയ്യുക",
"clear_all_recent_searches": "അടുത്തിടെ നടത്തിയ എല്ലാ തിരയലുകളും ക്ലിയർ ചെയ്യുക",
+ "clear_failed_count": "മായ്ക്കാനായില്ല ({count})",
"clear_file_cache": "ഫയൽ കാഷെ ക്ലിയർ ചെയ്യുക",
"clear_message": "സന്ദേശം ക്ലിയർ ചെയ്യുക",
"clear_value": "മൂല്യം ക്ലിയർ ചെയ്യുക",
"client_cert_import": "ഇമ്പോർട്ട് ചെയ്യുക",
"client_cert_import_success_msg": "ക്ലയിന്റ് സർട്ടിഫിക്കറ്റ് ഇമ്പോർട്ടുചെയ്തു",
"client_cert_invalid_msg": "അസാധുവായ സർട്ടിഫിക്കറ്റ് ഫയൽ അല്ലെങ്കിൽ തെറ്റായ പാസ്വേഡ്",
+ "client_cert_password_message": "ഈ സർട്ടിഫിക്കറ്റിൻ്റെ പാസ്വേഡ് നൽകുക",
+ "client_cert_password_title": "സർട്ടിഫിക്കറ്റ് പാസ്വേഡ്",
"client_cert_remove_msg": "ക്ലയിന്റ് സർട്ടിഫിക്കറ്റ് നീക്കംചെയ്തു",
"client_cert_subtitle": "PKCS12 (.p12, .pfx) ഫോർമാറ്റ് മാത്രം പിന്തുണയ്ക്കുന്നു. ലോഗിൻ ചെയ്യുന്നതിന് മുമ്പ് മാത്രമേ സർട്ടിഫിക്കറ്റ് ഇമ്പോർട്ട്/നീക്കംചെയ്യൽ ലഭ്യമാകൂ",
"client_cert_title": "SSL ക്ലയിന്റ് സർട്ടിഫിക്കറ്റ് [പരീക്ഷണാടിസ്ഥാനത്തിൽ]",
@@ -631,12 +730,19 @@
"collapse": "ചുരുക്കുക",
"collapse_all": "എല്ലാം ചുരുക്കുക",
"color": "നിറം",
+ "command": "കമാൻഡ്",
+ "command_palette_prompt": "പേജുകളോ പ്രവർത്തനങ്ങളോ കമാൻഡുകളോ വേഗത്തിൽ കണ്ടെത്തുക",
+ "command_palette_to_close": "അടയ്ക്കാൻ",
+ "command_palette_to_navigate": "പ്രവേശിക്കാൻ",
+ "command_palette_to_select": "തിരഞ്ഞെടുക്കാൻ",
+ "command_palette_to_show_all": "എല്ലാം കാണിക്കാൻ",
"comment_deleted": "അഭിപ്രായം ഇല്ലാതാക്കി",
"comment_options": "അഭിപ്രായത്തിനുള്ള ഓപ്ഷനുകൾ",
"comments_and_likes": "അഭിപ്രായങ്ങളും ലൈക്കുകളും",
"comments_are_disabled": "അഭിപ്രായങ്ങൾ പ്രവർത്തനരഹിതമാക്കി",
"common_create_new_album": "പുതിയ ആൽബം ഉണ്ടാക്കുക",
"completed": "പൂർത്തിയായി",
+ "configuration": "കോൺഫിഗറേഷൻ",
"confirm": "സ്ഥിരീകരിക്കുക",
"confirm_admin_password": "അഡ്മിൻ പാസ്വേഡ് സ്ഥിരീകരിക്കുക",
"confirm_delete_face": "{name} എന്ന മുഖം അസറ്റിൽ നിന്ന് ഇല്ലാതാക്കണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?",
@@ -651,6 +757,7 @@
"contain": "ഉൾക്കൊള്ളുക",
"context": "സന്ദർഭം",
"continue": "തുടരുക",
+ "control_bottom_app_bar_add_tags": "ടാഗുകൾ ചേർക്കുക",
"control_bottom_app_bar_delete_from_local": "ഉപകരണത്തിൽ നിന്ന് ഇല്ലാതാക്കുക",
"control_bottom_app_bar_edit_location": "സ്ഥാനം എഡിറ്റുചെയ്യുക",
"control_bottom_app_bar_edit_time": "തീയതിയും സമയവും എഡിറ്റുചെയ്യുക",
@@ -659,6 +766,7 @@
"copied_to_clipboard": "ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി!",
"copy_error": "പകർത്തുന്നതിൽ പിശക്",
"copy_image": "ചിത്രം പകർത്തുക",
+ "copy_json": "JSON പകർത്തുക",
"copy_link": "ലിങ്ക് പകർത്തുക",
"copy_link_to_clipboard": "ലിങ്ക് ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുക",
"copy_password": "പാസ്വേഡ് പകർത്തുക",
@@ -670,6 +778,7 @@
"create_album": "ആൽബം ഉണ്ടാക്കുക",
"create_album_page_untitled": "പേരില്ലാത്തത്",
"create_api_key": "എപിഐ കീ സൃഷ്ടിക്കുക",
+ "create_first_workflow": "ആദ്യ വർക്ക്ഫ്ലോ സൃഷ്ടിക്കുക",
"create_library": "ലൈബ്രറി ഉണ്ടാക്കുക",
"create_link": "ലിങ്ക് ഉണ്ടാക്കുക",
"create_link_to_share": "പങ്കിടാൻ ലിങ്ക് ഉണ്ടാക്കുക",
@@ -678,33 +787,46 @@
"create_new_person": "പുതിയ വ്യക്തിയെ ഉണ്ടാക്കുക",
"create_new_person_hint": "തിരഞ്ഞെടുത്ത അസറ്റുകൾ ഒരു പുതിയ വ്യക്തിക്ക് നൽകുക",
"create_new_user": "പുതിയ ഉപയോക്താവിനെ ഉണ്ടാക്കുക",
+ "create_person": "വ്യക്തിയെ സൃഷ്ടിക്കുക",
+ "create_person_subtitle": "പുതിയ വ്യക്തിയെ സൃഷ്ടിക്കാനും ടാഗുചെയ്യാനും തിരഞ്ഞെടുത്ത മുഖത്തേക്ക് ഒരു പേര് ചേർക്കുക",
"create_shared_album_page_share_add_assets": "അസറ്റുകൾ ചേർക്കുക",
"create_shared_album_page_share_select_photos": "ഫോട്ടോകൾ തിരഞ്ഞെടുക്കുക",
"create_shared_link": "പങ്കിട്ട ലിങ്ക് ഉണ്ടാക്കുക",
"create_tag": "ടാഗ് ഉണ്ടാക്കുക",
"create_tag_description": "ഒരു പുതിയ ടാഗ് ഉണ്ടാക്കുക. നെസ്റ്റഡ് ടാഗുകൾക്കായി, ഫോർവേഡ് സ്ലാഷുകൾ ഉൾപ്പെടെ ടാഗിന്റെ പൂർണ്ണ പാത നൽകുക.",
"create_user": "ഉപയോക്താവിനെ ഉണ്ടാക്കുക",
+ "create_workflow": "വർക്ക്ഫ്ലോ സൃഷ്ടിക്കുക",
"created": "സൃഷ്ടിച്ചത്",
"created_at": "സൃഷ്ടിച്ചത്",
"creating_linked_albums": "ബന്ധിപ്പിച്ച ആൽബങ്ങൾ ഉണ്ടാക്കുന്നു...",
"crop": "ക്രോപ്പ് ചെയ്യുക",
+ "crop_aspect_ratio_free": "സൗജന്യം",
+ "crop_aspect_ratio_original": "ഒറിജിനൽ",
+ "crop_aspect_ratio_square": "സമചതുരം",
"current_device": "നിലവിലെ ഉപകരണം",
"current_pin_code": "നിലവിലെ പിൻ കോഡ്",
"current_server_address": "നിലവിലെ സെർവർ വിലാസം",
+ "custom_date": "ഇഷ്ടാനുസൃത തീയതി",
"custom_locale": "കസ്റ്റം ലൊക്കേൽ",
"custom_locale_description": "ഭാഷയെയും പ്രദേശത്തെയും അടിസ്ഥാനമാക്കി തീയതികളും അക്കങ്ങളും ഫോർമാറ്റ് ചെയ്യുക",
- "custom_url": "കസ്റ്റം URL",
+ "cutoff_date_description": "അവസാനത്തെ ഫോട്ടോകൾ സൂക്ഷിക്കുക…",
+ "cutoff_day": "{count, plural, one {ദിവസം} other {ദിവസങ്ങൾ}}",
+ "cutoff_year": "{count, plural, one {വർഷം} other {വർഷങ്ങൾ}}",
"dark": "ഇരുണ്ടത്",
"dark_theme": "ഡാർക്ക് തീം ടോഗിൾ ചെയ്യുക",
"date": "തീയതി",
"date_after": "ഇതിനു ശേഷമുള്ള തീയതി",
"date_and_time": "തീയതിയും സമയവും",
"date_before": "ഇതിനു മുമ്പുള്ള തീയതി",
+ "date_of_birth": "ജനനത്തീയതി",
"date_of_birth_saved": "ജനനത്തീയതി വിജയകരമായി സേവ് ചെയ്തു",
"date_range": "തീയതി പരിധി",
+ "date_time_original": "യഥാർത്ഥ തീയതി/സമയം",
"day": "ദിവസം",
"days": "ദിവസങ്ങൾ",
"deduplicate_all": "എല്ലാ ഡ്യൂപ്ലിക്കേറ്റുകളും ഒഴിവാക്കുക",
+ "default_quality_subtitle": "പങ്കിടൽ ടാപ്പുചെയ്യുമ്പോൾ ഉപയോഗിക്കുന്ന ഗുണനിലവാരം. ഓരോ തവണയും തിരഞ്ഞെടുക്കാൻ പങ്കിടൽ ബട്ടൺ ദീർഘനേരം അമർത്തുക.",
+ "default_share_quality": "ഡിഫോൾട്ട് ഷെയർ ക്വാളിറ്റി",
"delete": "ഇല്ലാതാക്കുക",
"delete_action_confirmation_message": "ഈ അസറ്റ് ഇല്ലാതാക്കണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ? ഈ പ്രവർത്തനം അസറ്റിനെ സെർവറിന്റെ ട്രാഷിലേക്ക് മാറ്റും, കൂടാതെ ഇത് പ്രാദേശികമായി ഇല്ലാതാക്കണോ എന്ന് ചോദിക്കുകയും ചെയ്യും",
"delete_action_prompt": "{count} എണ്ണം ഇല്ലാതാക്കി",
@@ -735,6 +857,7 @@
"deselect_all": "എല്ലാം തിരഞ്ഞെടുത്തത് മാറ്റുക",
"details": "വിശദാംശങ്ങൾ",
"direction": "ദിശ",
+ "disable": "പ്രവർത്തനരഹിതമാക്കുക",
"disabled": "പ്രവർത്തനരഹിതം",
"discord": "ഡിസ്കോർഡ്",
"discover": "കണ്ടെത്തുക",
@@ -756,14 +879,19 @@
"download_include_embedded_motion_videos": "ഉൾച്ചേർത്ത വീഡിയോകൾ",
"download_include_embedded_motion_videos_description": "ചലിക്കുന്ന ഫോട്ടോകളിൽ ഉൾച്ചേർത്ത വീഡിയോകൾ ഒരു പ്രത്യേക ഫയലായി ഉൾപ്പെടുത്തുക",
"download_notfound": "ഡൗൺലോഡ് കണ്ടെത്തിയില്ല",
+ "download_original": "ഒറിജിനൽ ഡൗൺലോഡ് ചെയ്യുക",
"download_paused": "ഡൗൺലോഡ് താൽക്കാലികമായി നിർത്തി",
"download_settings": "ഡൗൺലോഡ് ക്രമീകരണങ്ങൾ",
"download_settings_description": "അസറ്റ് ഡൗൺലോഡുമായി ബന്ധപ്പെട്ട ക്രമീകരണങ്ങൾ കൈകാര്യം ചെയ്യുക",
"download_waiting_to_retry": "വീണ്ടും ശ്രമിക്കാൻ കാത്തിരിക്കുന്നു",
"downloading": "ഡൗൺലോഡ് ചെയ്യുന്നു",
"downloading_asset_filename": "{filename} എന്ന അസറ്റ് ഡൗൺലോഡ് ചെയ്യുന്നു",
+ "downloading_from_icloud": "iCloud-ൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യുന്നു",
"downloading_media": "മീഡിയ ഡൗൺലോഡ് ചെയ്യുന്നു",
+ "drag_to_reorder": "പുനഃക്രമീകരിക്കാൻ വലിച്ചിടുക",
"drop_files_to_upload": "അപ്ലോഡ് ചെയ്യാൻ ഫയലുകൾ എവിടെയും ഡ്രോപ്പ് ചെയ്യുക",
+ "duplicate": "ഡ്യൂപ്ലിക്കേറ്റ്",
+ "duplicate_workflow": "ഡ്യൂപ്ലിക്കേറ്റ് വർക്ക്ഫ്ലോ",
"duplicates": "ഡ്യൂപ്ലിക്കേറ്റുകൾ",
"duplicates_description": "ഏതാണ് ഡ്യൂപ്ലിക്കേറ്റ് എന്ന് സൂചിപ്പിച്ച് ഓരോ ഗ്രൂപ്പും പരിഹരിക്കുക",
"duration": "ദൈർഘ്യം",
@@ -788,7 +916,21 @@
"edit_tag": "ടാഗ് എഡിറ്റുചെയ്യുക",
"edit_title": "ശീർഷകം എഡിറ്റുചെയ്യുക",
"edit_user": "ഉപയോക്താവിനെ എഡിറ്റുചെയ്യുക",
+ "edit_workflow": "വർക്ക്ഫ്ലോ എഡിറ്റ് ചെയ്യുക",
"editor": "എഡിറ്റർ",
+ "editor_discard_edits_confirm": "എഡിറ്റുകൾ നിരസിക്കുക",
+ "editor_discard_edits_prompt": "നിങ്ങൾക്ക് സംരക്ഷിക്കാത്ത എഡിറ്റുകൾ ഉണ്ട്. അവ ഉപേക്ഷിക്കണമെന്ന് തീർച്ചയാണോ?",
+ "editor_discard_edits_title": "എഡിറ്റുകൾ നിരസിക്കണോ?",
+ "editor_edits_applied_error": "എഡിറ്റുകൾ പ്രയോഗിക്കുന്നതിൽ പരാജയപ്പെട്ടു",
+ "editor_edits_applied_success": "എഡിറ്റുകൾ വിജയകരമായി പ്രയോഗിച്ചു",
+ "editor_flip_horizontal": "തിരശ്ചീനമായി തിരിക്കുക",
+ "editor_flip_vertical": "ലംബമായി ഫ്ലിപ്പുചെയ്യുക",
+ "editor_handle_corner": "{corner, select, top_left {മുകളിൽ-ഇടത്} top_right {മുകളിൽ-വലത്} bottom_left {താഴെ-ഇടത്} bottom_right {താഴെ-വലത്} other {ഒരു}} കോർണർ ഹാൻഡിൽ",
+ "editor_handle_edge": "{edge, select, top {മുകളിൽ} bottom {താഴെ} left {ഇടത്} right {വലത്} other {ഒരു}} എഡ്ജ് ഹാൻഡിൽ",
+ "editor_orientation": "ഓറിയൻ്റേഷൻ",
+ "editor_reset_all_changes": "മാറ്റങ്ങൾ പുനഃസജ്ജമാക്കുക",
+ "editor_rotate_left": "എതിർ ഘടികാരദിശയിൽ 90° തിരിക്കുക",
+ "editor_rotate_right": "ഘടികാരദിശയിൽ 90° തിരിക്കുക",
"email": "ഇമെയിൽ",
"email_notifications": "ഇമെയിൽ അറിയിപ്പുകൾ",
"empty_folder": "ഈ ഫോൾഡർ ശൂന്യമാണ്",
@@ -805,11 +947,14 @@
"enter_your_pin_code_subtitle": "ലോക്ക് ചെയ്ത ഫോൾഡർ ആക്സസ് ചെയ്യാൻ നിങ്ങളുടെ പിൻ കോഡ് നൽകുക",
"error": "പിശക്",
"error_delete_face": "അസറ്റിൽ നിന്ന് മുഖം ഇല്ലാതാക്കുന്നതിൽ പിശക്",
+ "error_loading_albums": "ആൽബങ്ങൾ ലോഡുചെയ്യുന്നതിൽ പിശക്",
"error_loading_image": "ചിത്രം ലോഡുചെയ്യുന്നതിൽ പിശക്",
"error_loading_partners": "പങ്കാളികളെ ലോഡുചെയ്യുന്നതിൽ പിശക്: {error}",
+ "error_retrieving_asset_information": "അസറ്റ് വിവരങ്ങൾ വീണ്ടെടുക്കുന്നതിൽ പിശക്",
"error_saving_image": "പിശക്: {error}",
"error_tag_face_bounding_box": "മുഖം ടാഗ് ചെയ്യുന്നതിൽ പിശക് - ബൗണ്ടിംഗ് ബോക്സ് കോർഡിനേറ്റുകൾ ലഭിക്കുന്നില്ല",
"error_title": "പിശക് - എന്തോ കുഴപ്പം സംഭവിച്ചു",
+ "error_while_navigating": "അസറ്റിലേക്ക് നാവിഗേറ്റ് ചെയ്യുമ്പോൾ പിശക്",
"errors": {
"cannot_navigate_next_asset": "അടുത്ത അസറ്റിലേക്ക് പോകാൻ കഴിയില്ല",
"cannot_navigate_previous_asset": "മുമ്പത്തെ അസറ്റിലേക്ക് പോകാൻ കഴിയില്ല",
@@ -841,10 +986,12 @@
"failed_to_remove_product_key": "പ്രൊഡക്റ്റ് കീ നീക്കം ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
"failed_to_reset_pin_code": "പിൻ കോഡ് റീസെറ്റ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
"failed_to_stack_assets": "അസറ്റുകൾ സ്റ്റാക്ക് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
+ "failed_to_tag_assets": "അസറ്റുകൾ ടാഗ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
"failed_to_unstack_assets": "അസറ്റുകൾ അൺ-സ്റ്റാക്ക് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
"failed_to_update_notification_status": "അറിയിപ്പിന്റെ നില അപ്ഡേറ്റ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
"incorrect_email_or_password": "തെറ്റായ ഇമെയിൽ അല്ലെങ്കിൽ പാസ്വേഡ്",
"library_folder_already_exists": "ഈ ഇമ്പോർട്ട് പാത്ത് നിലവിലുണ്ട്.",
+ "page_not_found": "പേജ് കണ്ടെത്തിയില്ല",
"paths_validation_failed": "{paths, plural, one {# പാത്ത്} other {# പാത്തുകൾ}} സാധൂകരണത്തിൽ പരാജയപ്പെട്ടു",
"profile_picture_transparent_pixels": "പ്രൊഫൈൽ ചിത്രങ്ങൾക്ക് സുതാര്യമായ പിക്സലുകൾ ഉണ്ടാകരുത്. ദയവായി സൂം ഇൻ ചെയ്യുക കൂടാതെ/അല്ലെങ്കിൽ ചിത്രം നീക്കുക.",
"quota_higher_than_disk_size": "ഡിസ്ക് വലുപ്പത്തേക്കാൾ ഉയർന്ന ക്വാട്ട നിങ്ങൾ സജ്ജമാക്കിയിരിക്കുന്നു",
@@ -867,6 +1014,7 @@
"unable_to_complete_oauth_login": "OAuth ലോഗിൻ പൂർത്തിയാക്കാൻ കഴിയില്ല",
"unable_to_connect": "ബന്ധിപ്പിക്കാൻ കഴിയില്ല",
"unable_to_copy_to_clipboard": "ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്താൻ കഴിയില്ല, നിങ്ങൾ https വഴിയാണ് പേജ് ആക്സസ് ചെയ്യുന്നതെന്ന് ഉറപ്പാക്കുക",
+ "unable_to_create": "വർക്ക്ഫ്ലോ സൃഷ്ടിക്കാനായില്ല",
"unable_to_create_admin_account": "അഡ്മിൻ അക്കൗണ്ട് ഉണ്ടാക്കാൻ കഴിയില്ല",
"unable_to_create_api_key": "പുതിയ API കീ ഉണ്ടാക്കാൻ കഴിയില്ല",
"unable_to_create_library": "ലൈബ്രറി ഉണ്ടാക്കാൻ കഴിയില്ല",
@@ -877,6 +1025,7 @@
"unable_to_delete_exclusion_pattern": "ഒഴിവാക്കൽ പാറ്റേൺ ഇല്ലാതാക്കാൻ കഴിയില്ല",
"unable_to_delete_shared_link": "പങ്കിട്ട ലിങ്ക് ഇല്ലാതാക്കാൻ കഴിയില്ല",
"unable_to_delete_user": "ഉപയോക്താവിനെ ഇല്ലാതാക്കാൻ കഴിയില്ല",
+ "unable_to_delete_workflow": "വർക്ക്ഫ്ലോ ഇല്ലാതാക്കാൻ കഴിയുന്നില്ല",
"unable_to_download_files": "ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യാൻ കഴിയില്ല",
"unable_to_edit_exclusion_pattern": "ഒഴിവാക്കൽ പാറ്റേൺ എഡിറ്റുചെയ്യാൻ കഴിയില്ല",
"unable_to_empty_trash": "ട്രാഷ് ശൂന്യമാക്കാൻ കഴിയില്ല",
@@ -916,6 +1065,7 @@
"unable_to_scan_library": "ലൈബ്രറി സ്കാൻ ചെയ്യാൻ കഴിയില്ല",
"unable_to_set_feature_photo": "ഫീച്ചർ ഫോട്ടോ സജ്ജമാക്കാൻ കഴിയില്ല",
"unable_to_set_profile_picture": "പ്രൊഫൈൽ ചിത്രം സജ്ജമാക്കാൻ കഴിയില്ല",
+ "unable_to_set_rating": "റേറ്റിംഗ് സജ്ജീകരിക്കാനായില്ല",
"unable_to_submit_job": "ജോലി സമർപ്പിക്കാൻ കഴിയില്ല",
"unable_to_trash_asset": "അസറ്റ് ട്രാഷ് ചെയ്യാൻ കഴിയില്ല",
"unable_to_unlink_account": "അക്കൗണ്ട് അൺലിങ്ക് ചെയ്യാൻ കഴിയില്ല",
@@ -927,14 +1077,17 @@
"unable_to_update_settings": "ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിയില്ല",
"unable_to_update_timeline_display_status": "ടൈംലൈൻ പ്രദർശന നില അപ്ഡേറ്റ് ചെയ്യാൻ കഴിയില്ല",
"unable_to_update_user": "ഉപയോക്താവിനെ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിയില്ല",
+ "unable_to_update_workflow": "വർക്ക്ഫ്ലോ അപ്ഡേറ്റ് ചെയ്യാനാവുന്നില്ല",
"unable_to_upload_file": "ഫയൽ അപ്ലോഡ് ചെയ്യാൻ കഴിയില്ല"
},
+ "errors_text": "പിശകുകൾ",
"exclusion_pattern": "ഒഴിവാക്കൽ പാറ്റേൺ",
"exif": "Exif",
"exif_bottom_sheet_description": "വിവരണം ചേർക്കുക...",
"exif_bottom_sheet_description_error": "വിവരണം അപ്ഡേറ്റ് ചെയ്യുന്നതിൽ പിശക്",
"exif_bottom_sheet_no_description": "വിവരണമില്ല",
"exit_slideshow": "സ്ലൈഡ്ഷോയിൽ നിന്ന് പുറത്തുകടക്കുക",
+ "expand": "വികസിപ്പിക്കുക",
"expand_all": "എല്ലാം വികസിപ്പിക്കുക",
"expire_after": "ഇതിന് ശേഷം കാലഹരണപ്പെടും",
"expired": "കാലഹരണപ്പെട്ടു",
@@ -945,14 +1098,18 @@
"export_as_json": "JSON ആയി കയറ്റുമതി ചെയ്യുക",
"export_database": "ഡാറ്റാബേസ് കയറ്റുമതി ചെയ്യുക",
"export_database_description": "SQLite ഡാറ്റാബേസ് കയറ്റുമതി ചെയ്യുക",
+ "exposure_time": "സമ്പർക്ക സമയം",
"extension": "എക്സ്റ്റൻഷൻ",
"external": "ബാഹ്യം",
"external_libraries": "ബാഹ്യ ലൈബ്രറികൾ",
"external_network": "ബാഹ്യ നെറ്റ്വർക്ക്",
"external_network_sheet_info": "തിരഞ്ഞെടുത്ത വൈ-ഫൈ നെറ്റ്വർക്കിൽ അല്ലാത്തപ്പോൾ, താഴെ നൽകിയിട്ടുള്ള URL-കളിൽ ആദ്യം ലഭ്യമാകുന്ന ഒന്നിലൂടെ, മുകളിൽ നിന്ന് താഴേക്കുള്ള ക്രമത്തിൽ, ആപ്പ് സെർവറുമായി ബന്ധിപ്പിക്കും",
+ "f_number": "എഫ്-നമ്പർ",
"face_unassigned": "അസൈൻ ചെയ്തിട്ടില്ല",
"failed": "പരാജയപ്പെട്ടു",
+ "failed_count": "പരാജയപ്പെട്ടു: {count}",
"failed_to_authenticate": "പ്രാമാണീകരിക്കുന്നതിൽ പരാജയപ്പെട്ടു",
+ "failed_to_delete_file": "ഫയൽ ഇല്ലാതാക്കുന്നതിൽ പരാജയപ്പെട്ടു",
"failed_to_load_assets": "അസറ്റുകൾ ലോഡുചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
"failed_to_load_folder": "ഫോൾഡർ ലോഡുചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
"favorite": "പ്രിയം",
@@ -963,26 +1120,35 @@
"features": "ഫീച്ചറുകൾ",
"features_setting_description": "ആപ്പ് ഫീച്ചറുകൾ കൈകാര്യം ചെയ്യുക",
"file_name_or_extension": "ഫയലിന്റെ പേര് അല്ലെങ്കിൽ എക്സ്റ്റൻഷൻ",
+ "file_name_text": "ഫയലിന്റെ പേര്",
"file_size": "ഫയൽ വലിപ്പം",
"filename": "ഫയൽനാമം",
"filetype": "ഫയൽ തരം",
"filter": "ഫിൽട്ടർ ചെയ്യുക",
"filter_people": "ആളുകളെ ഫിൽട്ടർ ചെയ്യുക",
"filter_places": "സ്ഥലങ്ങൾ ഫിൽട്ടർ ചെയ്യുക",
+ "filter_tags": "ടാഗുകൾ ഫിൽട്ടർ ചെയ്യുക",
+ "filters": "ഫിൽട്ടറുകൾ",
"first": "ആദ്യം",
"fix_incorrect_match": "തെറ്റായ പൊരുത്തം ശരിയാക്കുക",
+ "focal_length": "ഫോക്കൽ ലെങ്ത്",
"folder": "ഫോൾഡർ",
"folder_not_found": "ഫോൾഡർ കണ്ടെത്തിയില്ല",
"folders": "ഫോൾഡറുകൾ",
"folders_feature_description": "ഫയൽ സിസ്റ്റത്തിലെ ഫോട്ടോകൾക്കും വീഡിയോകൾക്കുമായി ഫോൾഡർ കാഴ്ച ബ്രൗസുചെയ്യുന്നു",
"forgot_pin_code_question": "നിങ്ങളുടെ പിൻ മറന്നോ?",
"forward": "മുന്നോട്ട്",
+ "free_up_space": "ഇടം ശൂന്യമാക്കുക",
+ "free_up_space_description": "ഇടം സൃഷ്ടിക്കാൻ ബാക്കപ്പ് ചെയ്ത ഫോട്ടോകളും വീഡിയോകളും നിങ്ങളുടെ ഉപകരണത്തിൻ്റെ ട്രാഷിലേക്ക് നീക്കുക. സെർവറിലെ നിങ്ങളുടെ പകർപ്പുകൾ സുരക്ഷിതമായി തുടരുന്നു.",
+ "free_up_space_settings_subtitle": "ഉപകരണ സംഭരണം ശൂന്യമാക്കുക",
"full_path": "മുഴുവൻ പാത്ത്: {path}",
+ "full_path_or_folder": "മുഴുവൻ പാത അല്ലെങ്കിൽ ഫോൾഡർ",
"gcast_enabled": "ഗൂഗിൾ കാസ്റ്റ്",
"gcast_enabled_description": "പ്രവർത്തിക്കുന്നതിനായി ഈ ഫീച്ചർ ഗൂഗിളിൽ നിന്ന് ബാഹ്യ ഉറവിടങ്ങൾ ലോഡുചെയ്യുന്നു.",
"general": "പൊതുവായത്",
"geolocation_instruction_location": "ലൊക്കേഷൻ ഉപയോഗിക്കുന്നതിന് GPS കോർഡിനേറ്റുകളുള്ള ഒരു അസറ്റിൽ ക്ലിക്കുചെയ്യുക, അല്ലെങ്കിൽ മാപ്പിൽ നിന്ന് നേരിട്ട് ഒരു സ്ഥലം തിരഞ്ഞെടുക്കുക",
"get_help": "സഹായം നേടുക",
+ "get_people_error": "ആളുകളെ കിട്ടുന്നതിൽ പിശക്",
"get_wifiname_error": "വൈ-ഫൈയുടെ പേര് ലഭിച്ചില്ല. നിങ്ങൾ ആവശ്യമായ അനുമതികൾ നൽകിയിട്ടുണ്ടെന്നും ഒരു വൈ-ഫൈ നെറ്റ്വർക്കിലേക്ക് കണക്റ്റുചെയ്തിട്ടുണ്ടെന്നും ഉറപ്പാക്കുക",
"getting_started": "ആരംഭിക്കുന്നു",
"go_back": "പിന്നോട്ട് പോകുക",
@@ -1007,12 +1173,14 @@
"header_settings_header_name_input": "ഹെഡറിന്റെ പേര്",
"header_settings_header_value_input": "ഹെഡറിന്റെ മൂല്യം",
"headers_settings_tile_title": "കസ്റ്റം പ്രോക്സി ഹെഡറുകൾ",
+ "height": "ഉയരം",
"hi_user": "നമസ്കാരം {name} ({email})",
"hide_all_people": "എല്ലാ ആളുകളെയും മറയ്ക്കുക",
"hide_gallery": "ഗാലറി മറയ്ക്കുക",
"hide_named_person": "{name} എന്ന വ്യക്തിയെ മറയ്ക്കുക",
"hide_password": "പാസ്വേഡ് മറയ്ക്കുക",
"hide_person": "വ്യക്തിയെ മറയ്ക്കുക",
+ "hide_schema": "സ്കീമ മറയ്ക്കുക",
"hide_text_recognition": "ടെക്സ്റ്റ് തിരിച്ചറിയൽ മറയ്ക്കുക",
"hide_unnamed_people": "പേരില്ലാത്ത ആളുകളെ മറയ്ക്കുക",
"home_page_building_timeline": "ടൈംലൈൻ നിർമ്മിക്കുന്നു",
@@ -1046,6 +1214,7 @@
"individual_share": "വ്യക്തിഗത പങ്കിടൽ",
"individual_shares": "വ്യക്തിഗത പങ്കിടലുകൾ",
"info": "വിവരങ്ങൾ",
+ "integrity_checks": "സമഗ്രത പരിശോധനകൾ",
"interval": {
"day_at_onepm": "എല്ലാ ദിവസവും ഉച്ചയ്ക്ക് 1 മണിക്ക്",
"hours": "{hours, plural, one {ഓരോ മണിക്കൂറിലും} other {ഓരോ {hours, number} മണിക്കൂറിലും}}",
@@ -1056,11 +1225,19 @@
"invalid_date_format": "അസാധുവായ തീയതി ഫോർമാറ്റ്",
"invite_people": "ആളുകളെ ക്ഷണിക്കുക",
"invite_to_album": "ആൽബത്തിലേക്ക് ക്ഷണിക്കുക",
+ "iso": "ഐഎസ്ഒ",
"items_count": "{count, plural, one {# ഇനം} other {# ഇനങ്ങൾ}}",
"jobs": "ജോലികൾ",
"keep": "സൂക്ഷിക്കുക",
+ "keep_albums": "ആൽബങ്ങൾ സൂക്ഷിക്കുക",
+ "keep_albums_count": "{count} {count, plural, one {ആൽബം} other {ആൽബങ്ങൾ}} നിലനിർത്തുന്നു",
"keep_all": "എല്ലാം സൂക്ഷിക്കുക",
+ "keep_description": "ഇടം സൃഷ്ടിക്കുമ്പോൾ നിങ്ങളുടെ ഉപകരണത്തിൽ എന്താണ് നിലനിൽക്കേണ്ടതെന്ന് തിരഞ്ഞെടുക്കുക.",
+ "keep_favorites": "പ്രിയപ്പെട്ടവ സൂക്ഷിക്കുക",
+ "keep_on_device": "ഉപകരണത്തിൽ സൂക്ഷിക്കുക",
+ "keep_on_device_hint": "ഈ ഉപകരണത്തിൽ സൂക്ഷിക്കാൻ ഇനങ്ങൾ തിരഞ്ഞെടുക്കുക",
"keep_this_delete_others": "ഇത് സൂക്ഷിച്ച് മറ്റുള്ളവ ഇല്ലാതാക്കുക",
+ "keeping": "സൂക്ഷിക്കുന്നത്: {items}",
"kept_this_deleted_others": "ഈ അസറ്റ് സൂക്ഷിക്കുകയും {count, plural, one {# അസറ്റ്} other {# അസറ്റുകൾ}} ഇല്ലാതാക്കുകയും ചെയ്തു",
"keyboard_shortcuts": "കീബോർഡ് കുറുക്കുവഴികൾ",
"language": "ഭാഷ",
@@ -1077,6 +1254,7 @@
"leave": "വിടുക",
"leave_album": "ആൽബം വിടുക",
"lens_model": "ലെൻസ് മോഡൽ",
+ "less": "കുറവ്",
"let_others_respond": "മറ്റുള്ളവരെ പ്രതികരിക്കാൻ അനുവദിക്കുക",
"level": "തലം",
"library": "ലൈബ്രറി",
@@ -1088,17 +1266,23 @@
"library_page_sort_title": "ആൽബത്തിന്റെ ശീർഷകം",
"licenses": "ലൈസൻസുകൾ",
"light": "ലൈറ്റ്",
+ "light_theme": "ലൈറ്റ് തീമിലേക്ക് മാറുക",
"like": "ഇഷ്ടപ്പെട്ടു",
"like_deleted": "ഇഷ്ടം നീക്കംചെയ്തു",
+ "link": "ലിങ്ക്",
"link_motion_video": "ചലിക്കുന്ന വീഡിയോ ലിങ്ക് ചെയ്യുക",
+ "link_to_docs": "കൂടുതൽ വിവരങ്ങൾക്ക്, ഡോക്യുമെൻ്റേഷൻ കാണുക.",
"link_to_oauth": "OAuth-ലേക്ക് ലിങ്ക് ചെയ്യുക",
"linked_oauth_account": "ലിങ്ക് ചെയ്ത OAuth അക്കൗണ്ട്",
"list": "ലിസ്റ്റ്",
+ "live": "തത്സമയം",
+ "load_more": "കൂടുതൽ ലോഡ് ചെയ്യുക",
"loading": "ലോഡിംഗ്",
"loading_search_results_failed": "തിരയൽ ഫലങ്ങൾ ലോഡുചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
"local": "പ്രാദേശികം",
"local_asset_cast_failed": "സെർവറിലേക്ക് അപ്ലോഡ് ചെയ്യാത്ത ഒരു അസറ്റ് കാസ്റ്റ് ചെയ്യാൻ കഴിയില്ല",
"local_assets": "പ്രാദേശിക അസറ്റുകൾ",
+ "local_id": "പ്രാദേശിക ഐഡി",
"local_media_summary": "പ്രാദേശിക മീഡിയ സംഗ്രഹം",
"local_network": "പ്രാദേശിക നെറ്റ്വർക്ക്",
"local_network_sheet_info": "നിർദ്ദിഷ്ട വൈ-ഫൈ നെറ്റ്വർക്ക് ഉപയോഗിക്കുമ്പോൾ ഈ URL വഴി ആപ്പ് സെർവറുമായി ബന്ധിപ്പിക്കും",
@@ -1147,9 +1331,27 @@
"loop_videos_description": "വിശദാംശ വ്യൂവറിൽ ഒരു വീഡിയോ യാന്ത്രികമായി ലൂപ്പ് ചെയ്യാൻ പ്രവർത്തനക്ഷമമാക്കുക.",
"main_branch_warning": "നിങ്ങൾ ഒരു ഡെവലപ്മെന്റ് പതിപ്പാണ് ഉപയോഗിക്കുന്നത്; ഒരു റിലീസ് പതിപ്പ് ഉപയോഗിക്കാൻ ഞങ്ങൾ ശക്തമായി ശുപാർശ ചെയ്യുന്നു!",
"main_menu": "പ്രധാന മെനു",
+ "maintenance_action_restore": "ഡാറ്റാബേസ് പുനഃസ്ഥാപിക്കുന്നു",
"maintenance_description": "ഇമ്മിക്ക് മെയിന്റനൻസ് മോഡിലേക്ക് മാറ്റിയിരിക്കുന്നു.",
"maintenance_end": "മെയിന്റനൻസ് മോഡ് അവസാനിപ്പിക്കുക",
"maintenance_logged_in_as": "നിലവിൽ {user} ആയി ലോഗിൻ ചെയ്തിരിക്കുന്നു",
+ "maintenance_restore_from_backup": "ബാക്കപ്പിൽ നിന്ന് പുനഃസ്ഥാപിക്കുക",
+ "maintenance_restore_library": "നിങ്ങളുടെ ലൈബ്രറി പുനഃസ്ഥാപിക്കുക",
+ "maintenance_restore_library_confirm": "ഇത് ശരിയാണെന്ന് തോന്നുന്നുവെങ്കിൽ, ഒരു ബാക്കപ്പ് പുനഃസ്ഥാപിക്കുന്നത് തുടരുക!",
+ "maintenance_restore_library_description": "ഡാറ്റാബേസ് പുനഃസ്ഥാപിക്കുന്നു",
+ "maintenance_restore_library_folder_has_files": "{folder} എന്നതിന് {count} ഫോൾഡർ(കൾ) ഉണ്ട്",
+ "maintenance_restore_library_folder_no_files": "{folder} ഫയലുകൾ കാണുന്നില്ല!",
+ "maintenance_restore_library_folder_pass": "വായിക്കാവുന്നതും എഴുതാവുന്നതുമാണ്",
+ "maintenance_restore_library_folder_read_fail": "വായിക്കാനാവുന്നില്ല",
+ "maintenance_restore_library_folder_write_fail": "എഴുതാൻ പറ്റില്ല",
+ "maintenance_restore_library_hint_missing_files": "നിങ്ങൾക്ക് പ്രധാനപ്പെട്ട ഫയലുകൾ നഷ്ടമായേക്കാം",
+ "maintenance_restore_library_hint_regenerate_later": "നിങ്ങൾക്ക് ഇവ പിന്നീട് ക്രമീകരണങ്ങളിൽ പുനഃസൃഷ്ടിക്കാം",
+ "maintenance_restore_library_hint_storage_template_missing_files": "സ്റ്റോറേജ് ടെംപ്ലേറ്റ് ഉപയോഗിക്കുന്നുണ്ടോ? നിങ്ങൾക്ക് ഫയലുകൾ നഷ്ടമായേക്കാം",
+ "maintenance_restore_library_loading": "സമഗ്രത പരിശോധനകളും ഹ്യൂറിസ്റ്റിക്സും ലോഡുചെയ്യുന്നു…",
+ "maintenance_task_backup": "നിലവിലുള്ള ഡാറ്റാബേസിൻ്റെ ഒരു ബാക്കപ്പ് സൃഷ്ടിക്കുന്നു…",
+ "maintenance_task_migrations": "ഡാറ്റാബേസ് മൈഗ്രേഷനുകൾ പ്രവർത്തിപ്പിക്കുന്നു…",
+ "maintenance_task_restore": "തിരഞ്ഞെടുത്ത ബാക്കപ്പ് പുനഃസ്ഥാപിക്കുന്നു…",
+ "maintenance_task_rollback": "പുനഃസ്ഥാപിക്കൽ പരാജയപ്പെട്ടു, പോയിൻ്റ് പുനഃസ്ഥാപിക്കുന്നതിനായി തിരികെ പോകുന്നു…",
"maintenance_title": "താൽക്കാലികമായി ലഭ്യമല്ല",
"make": "നിർമ്മാതാവ്",
"manage_geolocation": "സ്ഥാനം കൈകാര്യം ചെയ്യുക",
@@ -1168,6 +1370,7 @@
"map_location_picker_page_use_location": "ഈ സ്ഥലം ഉപയോഗിക്കുക",
"map_location_service_disabled_content": "നിങ്ങളുടെ നിലവിലെ സ്ഥാനത്ത് നിന്നുള്ള അസറ്റുകൾ പ്രദർശിപ്പിക്കുന്നതിന് ലൊക്കേഷൻ സേവനം പ്രവർത്തനക്ഷമമാക്കേണ്ടതുണ്ട്. ഇപ്പോൾ പ്രവർത്തനക്ഷമമാക്കണോ?",
"map_location_service_disabled_title": "ലൊക്കേഷൻ സേവനം പ്രവർത്തനരഹിതമാക്കി",
+ "map_marker_for_image": "{city}, {country} എന്നതിൽ എടുത്ത ചിത്രത്തിനായുള്ള മാപ്പ് മാർക്കർ",
"map_marker_with_image": "ചിത്രത്തോടുകൂടിയ മാപ്പ് മാർക്കർ",
"map_no_location_permission_content": "നിങ്ങളുടെ നിലവിലെ സ്ഥാനത്ത് നിന്നുള്ള അസറ്റുകൾ പ്രദർശിപ്പിക്കുന്നതിന് ലൊക്കേഷൻ അനുമതി ആവശ്യമാണ്. ഇപ്പോൾ അനുവദിക്കണോ?",
"map_no_location_permission_title": "ലൊക്കേഷൻ അനുമതി നിഷേധിച്ചു",
@@ -1185,6 +1388,38 @@
"marked_all_as_read": "എല്ലാം വായിച്ചതായി അടയാളപ്പെടുത്തി",
"matches": "ചേർച്ചകൾ",
"matching_assets": "ചേർച്ചയുള്ള അസറ്റുകൾ",
+ "media_chrome": {
+ "auto": "ഓട്ടോ",
+ "captions": "അടിക്കുറിപ്പുകൾ",
+ "captions_off": "ഓഫ്",
+ "closed_captions": "അടഞ്ഞ അടിക്കുറിപ്പുകൾ",
+ "decode_error": "ഡീകോഡ് പിശക്",
+ "disable_captions": "അടിക്കുറിപ്പുകൾ പ്രവർത്തനരഹിതമാക്കുക",
+ "enable_captions": "അടിക്കുറിപ്പുകൾ പ്രവർത്തനക്ഷമമാക്കുക",
+ "enter_fullscreen_mode": "ഫുൾസ്ക്രീൻ മോഡ് നൽകുക",
+ "exit_fullscreen_mode": "പൂർണ്ണസ്ക്രീൻ മോഡിൽ നിന്ന് പുറത്തുകടക്കുക",
+ "loop": "ലൂപ്പ്",
+ "media_error_description": "ഒരു മീഡിയ പിശക് പ്ലേബാക്ക് നിർത്തലാക്കുന്നതിന് കാരണമായി. മീഡിയ കേടായേക്കാം അല്ലെങ്കിൽ നിങ്ങളുടെ ബ്രൗസർ ഈ ഫോർമാറ്റിനെ പിന്തുണയ്ക്കുന്നില്ല.",
+ "media_loading": "മീഡിയ ലോഡിംഗ്",
+ "mute": "നിശബ്ദമാക്കുക",
+ "network_error": "നെറ്റ്വർക്ക് പിശക്",
+ "network_error_description": "നെറ്റ്വർക്ക് പിശക് മീഡിയ ഡൗൺലോഡ് പരാജയപ്പെടാൻ കാരണമായി.",
+ "not_supported_error": "ഉറവിടം പിന്തുണയ്ക്കുന്നില്ല",
+ "playback_rate": "പ്ലേബാക്ക് നിരക്ക്",
+ "playback_rate_current": "നിലവിലെ പ്ലേബാക്ക് നിരക്ക്",
+ "playback_rate_value": "പ്ലേബാക്ക് നിരക്ക് {playbackRate}",
+ "playback_time": "പ്ലേബാക്ക് സമയം",
+ "quality": "ഗുണനിലവാരം",
+ "second": "രണ്ടാമത്തേത്",
+ "seconds": "സെക്കൻ്റുകൾ",
+ "time_value_of_total_time": "{currentTime} / {totalTime}",
+ "time_value_remaining": "{time} ശേഷിക്കുന്നു",
+ "unmute": "അൺമ്യൂട്ട് ചെയ്യുക",
+ "unsupported_error_description": "പിന്തുണയ്ക്കാത്ത ഒരു പിശക് സംഭവിച്ചു. സെർവറോ നെറ്റ്വർക്കോ പരാജയപ്പെട്ടു, അല്ലെങ്കിൽ നിങ്ങളുടെ ബ്രൗസർ ഈ ഫോർമാറ്റിനെ പിന്തുണയ്ക്കുന്നില്ല.",
+ "video_not_loaded_unknown_time": "വീഡിയോ ലോഡ് ചെയ്തിട്ടില്ല, അറിയാത്ത സമയം.",
+ "video_player": "വീഡിയോ പ്ലെയർ",
+ "volume": "വോളിയം"
+ },
"media_type": "മീഡിയ തരം",
"memories": "ഓർമ്മകൾ",
"memories_all_caught_up": "എല്ലാം കണ്ടുതീർത്തു",
@@ -1201,6 +1436,8 @@
"merge_people_prompt": "ഈ ആളുകളെ ലയിപ്പിക്കണോ? ഈ പ്രവർത്തനം പഴയപടിയാക്കാൻ കഴിയില്ല.",
"merge_people_successfully": "ആളുകളെ വിജയകരമായി ലയിപ്പിച്ചു",
"merged_people_count": "{count, plural, one {# വ്യക്തിയെ ലയിപ്പിച്ചു} other {# ആളുകളെ ലയിപ്പിച്ചു}}",
+ "minFaces": "ഏറ്റവും കുറഞ്ഞ മുഖങ്ങൾ",
+ "minFaces_description": "ഒരു വ്യക്തിക്ക് പ്രദർശിപ്പിക്കാനുള്ള അംഗീകൃത മുഖങ്ങളുടെ ഏറ്റവും കുറഞ്ഞ എണ്ണം",
"minimize": "ചെറുതാക്കുക",
"minute": "മിനിറ്റ്",
"minutes": "മിനിറ്റുകൾ",
@@ -1208,19 +1445,25 @@
"mobile_app": "മൊബൈൽ ആപ്പ്",
"mobile_app_download_onboarding_note": "താഴെ പറയുന്ന ഓപ്ഷനുകൾ ഉപയോഗിച്ച് മൊബൈൽ ആപ്പ് ഡൗൺലോഡ് ചെയ്യുക",
"model": "മോഡൽ",
+ "modify_date": "തീയതി പരിഷ്കരിക്കുക",
"month": "മാസം",
"more": "കൂടുതൽ",
+ "motion": "ചലനം",
"move": "നീക്കുക",
"move_off_locked_folder": "ലോക്ക് ചെയ്ത ഫോൾഡറിൽ നിന്ന് മാറ്റുക",
"move_to": "ഇതിലേക്ക് മാറ്റുക",
+ "move_to_device_trash": "ഉപകരണ ട്രാഷിലേക്ക് നീക്കുക",
"move_to_lock_folder_action_prompt": "{count} എണ്ണം ലോക്ക് ചെയ്ത ഫോൾഡറിലേക്ക് ചേർത്തു",
"move_to_locked_folder": "ലോക്ക് ചെയ്ത ഫോൾഡറിലേക്ക് മാറ്റുക",
"move_to_locked_folder_confirmation": "ഈ ഫോട്ടോകളും വീഡിയോയും എല്ലാ ആൽബങ്ങളിൽ നിന്നും നീക്കം ചെയ്യപ്പെടും, ലോക്ക് ചെയ്ത ഫോൾഡറിൽ നിന്ന് മാത്രമേ കാണാൻ കഴിയൂ",
"moved_to_trash": "ട്രാഷിലേക്ക് മാറ്റി",
"mute_memories": "ഓർമ്മകൾ നിശ്ശബ്ദമാക്കുക",
"my_albums": "എന്റെ ആൽബങ്ങൾ",
+ "my_immich_description": "നിലവിലെ പേജ് My Immich ലിങ്കായി പകർത്തുക",
+ "my_immich_title": "എൻ്റെ ഇമ്മിച്ച് ലിങ്ക്",
"name": "പേര്",
"name_or_nickname": "പേര് അല്ലെങ്കിൽ വിളിപ്പേര്",
+ "name_required": "പേര് ആവശ്യമാണ്",
"navigate": "നാവിഗേറ്റ് ചെയ്യുക",
"navigate_to_time": "സമയത്തിലേക്ക് നാവിഗേറ്റ് ചെയ്യുക",
"network_requirement_photos_upload": "ഫോട്ടോകൾ ബാക്കപ്പ് ചെയ്യാൻ സെല്ലുലാർ ഡാറ്റ ഉപയോഗിക്കുക",
@@ -1232,6 +1475,7 @@
"never": "ഒരിക്കലും ഇല്ല",
"new_album": "പുതിയ ആൽബം",
"new_api_key": "പുതിയ API കീ",
+ "new_feature": "പുതിയ ഫീച്ചർ",
"new_password": "പുതിയ പാസ്വേഡ്",
"new_person": "പുതിയ വ്യക്തി",
"new_pin_code": "പുതിയ പിൻ കോഡ്",
@@ -1243,6 +1487,7 @@
"next": "അടുത്തത്",
"next_memory": "അടുത്ത ഓർമ്മ",
"no": "ഇല്ല",
+ "no_albums_found": "ആൽബങ്ങളൊന്നും കണ്ടെത്തിയില്ല",
"no_albums_message": "നിങ്ങളുടെ ഫോട്ടോകളും വീഡിയോകളും ക്രമീകരിക്കാൻ ഒരു ആൽബം ഉണ്ടാക്കുക",
"no_albums_with_name_yet": "ഈ പേരിൽ നിങ്ങൾക്ക് ഇതുവരെ ആൽബങ്ങളൊന്നും ഇല്ലെന്ന് തോന്നുന്നു.",
"no_albums_yet": "നിങ്ങൾക്ക് ഇതുവരെ ആൽബങ്ങളൊന്നും ഇല്ലെന്ന് തോന്നുന്നു.",
@@ -1268,12 +1513,18 @@
"no_results": "ഫലങ്ങളൊന്നുമില്ല",
"no_results_description": "ഒരു പര്യായപദമോ കൂടുതൽ പൊതുവായ കീവേഡോ ഉപയോഗിച്ച് ശ്രമിക്കുക",
"no_shared_albums_message": "നിങ്ങളുടെ നെറ്റ്വർക്കിലെ ആളുകളുമായി ഫോട്ടോകളും വീഡിയോകളും പങ്കിടാൻ ഒരു ആൽബം ഉണ്ടാക്കുക",
+ "no_steps": "ഇതുവരെ ഘട്ടങ്ങളൊന്നും ചേർത്തിട്ടില്ല",
+ "none": "ഒന്നുമില്ല",
"not_allowed": "അനുവദനീയമല്ല",
"not_available": "ലഭ്യമല്ല",
"not_in_any_album": "ഒരു ആൽബത്തിലുമില്ല",
"not_selected": "തിരഞ്ഞെടുത്തിട്ടില്ല",
"notes": "കുറിപ്പുകൾ",
"nothing_here_yet": "ഇവിടെ ഇതുവരെ ഒന്നുമില്ല",
+ "notification_backup_reliability": "പശ്ചാത്തല ബാക്കപ്പ് വിശ്വാസ്യത മെച്ചപ്പെടുത്താൻ അറിയിപ്പുകൾ പ്രവർത്തനക്ഷമമാക്കുക",
+ "notification_enabled_list_tile_content": "പശ്ചാത്തല ബാക്കപ്പിനായി ഇമ്മിച്ച് അറിയിപ്പുകൾ ഉപയോഗിക്കുന്നു. നിങ്ങളുടെ ഉപകരണ ക്രമീകരണങ്ങളിൽ അവ നിയന്ത്രിക്കുക.",
+ "notification_enabled_list_tile_open_button": "ക്രമീകരണങ്ങൾ തുറക്കുക",
+ "notification_enabled_list_tile_title": "അറിയിപ്പുകൾ പ്രവർത്തനക്ഷമമാക്കി",
"notification_permission_dialog_content": "അറിയിപ്പുകൾ പ്രവർത്തനക്ഷമമാക്കാൻ, ക്രമീകരണങ്ങളിലേക്ക് പോയി 'അനുവദിക്കുക' തിരഞ്ഞെടുക്കുക.",
"notification_permission_list_tile_content": "അറിയിപ്പുകൾ പ്രവർത്തനക്ഷമമാക്കാൻ അനുമതി നൽകുക.",
"notification_permission_list_tile_enable_button": "അറിയിപ്പുകൾ പ്രവർത്തനക്ഷമമാക്കുക",
@@ -1285,6 +1536,8 @@
"obtainium_configurator": "ഒബ്റ്റൈനിയം കോൺഫിഗറേറ്റർ",
"obtainium_configurator_instructions": "ഇമ്മിക്ക് ഗിറ്റ്ഹബ് റിലീസിൽ നിന്ന് നേരിട്ട് ആൻഡ്രോയിഡ് ആപ്പ് ഇൻസ്റ്റാൾ ചെയ്യാനും അപ്ഡേറ്റ് ചെയ്യാനും ഒബ്റ്റൈനിയം ഉപയോഗിക്കുക. ഒരു എപിഐ കീ സൃഷ്ടിച്ച് നിങ്ങളുടെ ഒബ്റ്റൈനിയം കോൺഫിഗറേഷൻ ലിങ്ക് സൃഷ്ടിക്കാൻ ഒരു വേരിയന്റ് തിരഞ്ഞെടുക്കുക",
"ocr": "ഒ.സി.ആർ (OCR)",
+ "ocr_body": "ഇമ്മിച്ച് ഇപ്പോൾ നിങ്ങളുടെ ഫോട്ടോകൾക്കുള്ളിലെ വാചകം വായിക്കുന്നു, അതിനാൽ അവർ പറയുന്നതനുസരിച്ച് നിങ്ങൾക്ക് അവ തിരയാനാകും.",
+ "ocr_title": "നിങ്ങളുടെ ഫോട്ടോകളിൽ ടെക്സ്റ്റ് തിരയുക",
"official_immich_resources": "Immich-ന്റെ ഔദ്യോഗിക ഉറവിടങ്ങൾ",
"offline": "ഓഫ്ലൈൻ",
"offset": "ഓഫ്സെറ്റ്",
@@ -1301,6 +1554,10 @@
"online": "ഓൺലൈൻ",
"only_favorites": "പ്രിയപ്പെട്ടവ മാത്രം",
"open": "തുറക്കുക",
+ "open_calendar": "കലണ്ടർ തുറക്കുക",
+ "open_in_browser": "ബ്രൗസറിൽ തുറക്കുക",
+ "open_in_immich_body": "മറ്റ് ആപ്പുകളിൽ നിന്ന് നേരിട്ട് ഫോട്ടോകൾ തുറക്കാൻ ആൻഡ്രോയിഡിൽ നിങ്ങളുടെ ഗാലറിയായി Immich സജ്ജീകരിക്കുക.",
+ "open_in_immich_title": "ഇമ്മിച്ചിൽ ഫോട്ടോകൾ തുറക്കുക",
"open_in_map_view": "മാപ്പ് കാഴ്ചയിൽ തുറക്കുക",
"open_in_openstreetmap": "OpenStreetMap-ൽ തുറക്കുക",
"open_the_search_filters": "തിരയൽ ഫിൽട്ടറുകൾ തുറക്കുക",
@@ -1309,12 +1566,14 @@
"organize_into_albums": "ആൽബങ്ങളായി ക്രമീകരിക്കുക",
"organize_into_albums_description": "നിലവിലെ സിങ്ക് ക്രമീകരണങ്ങൾ ഉപയോഗിച്ച് നിലവിലുള്ള ഫോട്ടോകൾ ആൽബങ്ങളിലേക്ക് മാറ്റുക",
"organize_your_library": "നിങ്ങളുടെ ലൈബ്രറി ക്രമീകരിക്കുക",
+ "orientation": "ഓറിയൻ്റേഷൻ",
"original": "യഥാർത്ഥം",
"other": "മറ്റുള്ളവ",
"other_devices": "മറ്റ് ഉപകരണങ്ങൾ",
"other_variables": "മറ്റ് വേരിയബിളുകൾ",
"owned": "സ്വന്തമായുള്ളത്",
"owner": "ഉടമ",
+ "page": "പേജ്",
"partner": "പങ്കാളി",
"partner_can_access": "{partner}-ക്ക് ആക്സസ് ചെയ്യാൻ കഴിയും",
"partner_can_access_assets": "ആർക്കൈവുചെയ്തതും ഇല്ലാതാക്കിയതുമായവ ഒഴികെ നിങ്ങളുടെ എല്ലാ ഫോട്ടോകളും വീഡിയോകളും",
@@ -1359,6 +1618,7 @@
"person_age_years": "{years, plural, other {# വയസ്സ്}}",
"person_birthdate": "{date}-ന് ജനിച്ചു",
"person_hidden": "{name}{hidden, select, true { (മറച്ചത്)} other {}}",
+ "person_recognized": "വ്യക്തി തിരിച്ചറിഞ്ഞു",
"photo_shared_all_users": "നിങ്ങൾ എല്ലാ ഉപയോക്താക്കളുമായും ഫോട്ടോകൾ പങ്കിട്ടു, അല്ലെങ്കിൽ നിങ്ങൾക്ക് പങ്കിടാൻ ഉപയോക്താക്കളാരും ഇല്ലെന്നു തോന്നുന്നു.",
"photos": "ഫോട്ടോകൾ",
"photos_and_videos": "ഫോട്ടോകളും വീഡിയോകളും",
@@ -1381,6 +1641,8 @@
"play_original_video_setting_description": "ട്രാൻസ്കോഡ് ചെയ്ത വീഡിയോകളേക്കാൾ ഒറിജിനൽ വീഡിയോകൾ പ്ലേ ചെയ്യാൻ മുൻഗണന നൽകുക. ഒറിജിനൽ ഫയൽ അനുയോജ്യമല്ലെങ്കിൽ അത് ശരിയായി പ്ലേ ചെയ്തേക്കില്ല.",
"play_transcoded_video": "ട്രാൻസ്കോഡ് ചെയ്ത വീഡിയോ പ്ലേ ചെയ്യുക",
"please_auth_to_access": "ആക്സസ് ചെയ്യുന്നതിന് ദയവായി പ്രാമാണീകരിക്കുക",
+ "plugin_method_filter_type": "ഫിൽട്ടർ ചെയ്യുക",
+ "plugin_method_filter_type_description": "ഈ രീതിക്ക് ഇവൻ്റുകൾ ഫിൽട്ടർ ചെയ്യാനും തുടർന്നുള്ള ഘട്ടങ്ങൾ പ്രവർത്തിപ്പിക്കുന്നതിൽ നിന്ന് സോപാധികമായി തടയാനും കഴിയും",
"port": "പോർട്ട്",
"preferences_settings_subtitle": "ആപ്പിന്റെ മുൻഗണനകൾ കൈകാര്യം ചെയ്യുക",
"preferences_settings_title": "മുൻഗണനകൾ",
@@ -1401,6 +1663,7 @@
"profile_drawer_readonly_mode": "റീഡ്-ഓൺലി മോഡ് പ്രവർത്തനക്ഷമമാക്കി. പുറത്തുകടക്കാൻ ഉപയോക്തൃ അവതാർ ഐക്കണിൽ ദീർഘനേരം അമർത്തുക.",
"profile_image_of_user": "{user}-ന്റെ പ്രൊഫൈൽ ചിത്രം",
"profile_picture_set": "പ്രൊഫൈൽ ചിത്രം സജ്ജീകരിച്ചു.",
+ "projection_type": "പ്രൊജക്ഷൻ തരം",
"public_album": "പൊതു ആൽബം",
"public_share": "പൊതു പങ്കിടൽ",
"purchase_account_info": "സഹായി",
@@ -1436,6 +1699,7 @@
"purchase_settings_server_activated": "സെർവർ പ്രൊഡക്റ്റ് കീ അഡ്മിൻ ആണ് കൈകാര്യം ചെയ്യുന്നത്",
"query_asset_id": "അസറ്റ് ഐഡി അന്വേഷിക്കുക",
"queue_status": "ക്യൂ ചെയ്യുന്നു {count}/{total}",
+ "rate_asset": "അസറ്റ് റേറ്റ് ചെയ്യുക",
"rating": "സ്റ്റാർ റേറ്റിംഗ്",
"rating_clear": "റേറ്റിംഗ് ക്ലിയർ ചെയ്യുക",
"rating_count": "{count, plural, one {# സ്റ്റാർ} other {# സ്റ്റാറുകൾ}}",
@@ -1452,7 +1716,10 @@
"recent": "സമീപകാലം",
"recent_searches": "സമീപകാല തിരയലുകൾ",
"recently_added": "അടുത്തിടെ ചേർത്തത്",
+ "recently_added_body": "ഒരു സമർപ്പിത പേജിൽ നിങ്ങൾ ഈയിടെ ചേർത്ത എല്ലാത്തിലേക്കും നേരെ പോകുക.",
+ "recently_added_description": "നിങ്ങളുടെ അസറ്റുകൾ ഇമ്മിച്ചിലേക്ക് അപ്ലോഡ് ചെയ്തപ്പോൾ തരംതിരിച്ച ബ്രൗസ് ചെയ്യുക",
"recently_added_page_title": "അടുത്തിടെ ചേർത്തത്",
+ "recently_added_title": "അടുത്തിടെ ചേർത്തത്",
"recently_taken": "അടുത്തിടെ എടുത്തത്",
"refresh": "പുതുക്കുക",
"refresh_encoded_videos": "എൻകോഡ് ചെയ്ത വീഡിയോകൾ പുതുക്കുക",
@@ -1472,6 +1739,7 @@
"remove_assets_shared_link_confirmation": "ഈ പങ്കിട്ട ലിങ്കിൽ നിന്ന് {count, plural, one {# അസറ്റ്} other {# അസറ്റുകൾ}} നീക്കം ചെയ്യണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?",
"remove_assets_title": "അസറ്റുകൾ നീക്കം ചെയ്യണോ?",
"remove_custom_date_range": "കസ്റ്റം തീയതി പരിധി നീക്കം ചെയ്യുക",
+ "remove_filter": "ഫിൽട്ടർ നീക്കം ചെയ്യുക",
"remove_from_album": "ആൽബത്തിൽ നിന്ന് നീക്കം ചെയ്യുക",
"remove_from_album_action_prompt": "{count} എണ്ണം ആൽബത്തിൽ നിന്ന് നീക്കം ചെയ്തു",
"remove_from_favorites": "പ്രിയപ്പെട്ടവയിൽ നിന്ന് നീക്കം ചെയ്യുക",
@@ -1500,7 +1768,10 @@
"reset_pin_code_description": "നിങ്ങൾ പിൻ കോഡ് മറന്നെങ്കിൽ, അത് പുനഃസജ്ജമാക്കാൻ നിങ്ങൾക്ക് സെർവർ അഡ്മിനിസ്ട്രേറ്ററുമായി ബന്ധപ്പെടാം",
"reset_pin_code_with_password": "നിങ്ങളുടെ പാസ്വേഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് എപ്പോഴും പിൻ കോഡ് റീസെറ്റ് ചെയ്യാം",
"reset_sqlite": "SQLite ഡാറ്റാബേസ് റീസെറ്റ് ചെയ്യുക",
+ "reset_sqlite_clear_app_data": "ഡാറ്റ മായ്ക്കുക",
"reset_sqlite_confirmation": "SQLite ഡാറ്റാബേസ് റീസെറ്റ് ചെയ്യണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ? ഡാറ്റ വീണ്ടും സിങ്ക് ചെയ്യുന്നതിന് നിങ്ങൾ ലോഗ് ഔട്ട് ചെയ്ത് വീണ്ടും ലോഗിൻ ചെയ്യേണ്ടിവരും",
+ "reset_sqlite_confirmation_note": "ശ്രദ്ധിക്കുക: മായ്ച്ചതിന് ശേഷം നിങ്ങൾ ആപ്പ് പുനരാരംഭിക്കേണ്ടതുണ്ട്.",
+ "reset_sqlite_done": "ആപ്പ് ഡാറ്റ മായ്ച്ചു. ദയവായി ഇമ്മിച്ച് പുനരാരംഭിച്ച് വീണ്ടും ലോഗിൻ ചെയ്യുക.",
"reset_sqlite_success": "SQLite ഡാറ്റാബേസ് വിജയകരമായി റീസെറ്റ് ചെയ്തു",
"reset_to_default": "ഡിഫോൾട്ടിലേക്ക് പുനഃസജ്ജമാക്കുക",
"resolution": "റെസല്യൂഷൻ",
@@ -1525,9 +1796,14 @@
"saved_settings": "ക്രമീകരണങ്ങൾ സേവ് ചെയ്തു",
"say_something": "എന്തെങ്കിലും പറയൂ",
"scaffold_body_error_occurred": "പിശക് സംഭവിച്ചു",
+ "scaffold_body_error_unrecoverable": "വീണ്ടെടുക്കാനാകാത്ത ഒരു പിശക് സംഭവിച്ചു. ദയവായി പിശക് പങ്കിടുകയും ഡിസ്കോർഡിലോ GitHub-ലോ ട്രേസ് സ്റ്റാക്ക് ചെയ്യുക, അങ്ങനെ ഞങ്ങൾക്ക് സഹായിക്കാനാകും. ഉപദേശിക്കുകയാണെങ്കിൽ, ചുവടെയുള്ള ആപ്പ് ഡാറ്റ നിങ്ങൾക്ക് മായ്ക്കാവുന്നതാണ്.",
+ "scan": "സ്കാൻ ചെയ്യുക",
"scan_all_libraries": "എല്ലാ ലൈബ്രറികളും സ്കാൻ ചെയ്യുക",
"scan_library": "സ്കാൻ ചെയ്യുക",
+ "scanning": "സ്കാൻ ചെയ്യുന്നു",
"scanning_for_album": "ആൽബത്തിനായി സ്കാൻ ചെയ്യുന്നു...",
+ "screencast_mode_description": "സ്ക്രീനിൽ കീബോർഡ്, മൗസ് ഇവൻ്റ് സൂചകങ്ങൾ കാണിക്കുക",
+ "screencast_mode_title": "സ്ക്രീൻകാസ്റ്റ് മോഡ് ടോഗിൾ ചെയ്യുക",
"search": "തിരയുക",
"search_albums": "ആൽബങ്ങൾക്കായി തിരയുക",
"search_by_context": "സന്ദർഭം അനുസരിച്ച് തിരയുക",
@@ -1535,6 +1811,8 @@
"search_by_description_example": "സപ്പയിലെ ഹൈക്കിംഗ് ദിനം",
"search_by_filename": "ഫയൽ നാമം അല്ലെങ്കിൽ എക്സ്റ്റൻഷൻ ഉപയോഗിച്ച് തിരയുക",
"search_by_filename_example": "ഉദാ. IMG_1234.JPG അല്ലെങ്കിൽ PNG",
+ "search_by_full_path": "മുഴുവൻ പാതയോ ഫോൾഡറോ ഉപയോഗിച്ച് തിരയുക",
+ "search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - നിങ്ങൾക്ക് പ്രോജക്റ്റുകൾ, 3D, പ്രിൻ്റിംഗ്, 2026 മുതലായവ തിരയാനാകും.",
"search_by_ocr": "ഒ.സി.ആർ ഉപയോഗിച്ച് തിരയുക",
"search_by_ocr_example": "ലാറ്റെ (Latte)",
"search_camera_lens_model": "ലെൻസ് മോഡൽ തിരയുക...",
@@ -1555,6 +1833,8 @@
"search_filter_media_type": "മീഡിയ തരം",
"search_filter_media_type_title": "മീഡിയ തരം തിരഞ്ഞെടുക്കുക",
"search_filter_people_title": "ആളുകളെ തിരഞ്ഞെടുക്കുക",
+ "search_filter_star_rating": "സ്റ്റാർ റേറ്റിംഗ്",
+ "search_filter_tags_title": "ടാഗുകൾ തിരഞ്ഞെടുക്കുക",
"search_for": "ഇതിനായി തിരയുക",
"search_for_existing_person": "നിലവിലുള്ള വ്യക്തിക്കായി തിരയുക",
"search_no_more_result": "കൂടുതൽ ഫലങ്ങളില്ല",
@@ -1577,17 +1857,24 @@
"second": "സെക്കന്റ്",
"see_all_people": "എല്ലാ ആളുകളെയും കാണുക",
"select": "തിരഞ്ഞെടുക്കുക",
+ "select_album": "ആൽബം തിരഞ്ഞെടുക്കുക",
"select_album_cover": "ആൽബം കവർ തിരഞ്ഞെടുക്കുക",
+ "select_albums": "ആൽബങ്ങൾ തിരഞ്ഞെടുക്കുക",
"select_all": "എല്ലാം തിരഞ്ഞെടുക്കുക",
"select_all_duplicates": "എല്ലാ ഡ്യൂപ്ലിക്കേറ്റുകളും തിരഞ്ഞെടുക്കുക",
"select_avatar_color": "അവതാർ നിറം തിരഞ്ഞെടുക്കുക",
+ "select_count": "{count, plural, one {# തിരഞ്ഞെടുക്കുക} other {# തിരഞ്ഞെടുക്കുക}}",
+ "select_cutoff_date": "കട്ട്ഓഫ് തീയതി തിരഞ്ഞെടുക്കുക",
"select_face": "മുഖം തിരഞ്ഞെടുക്കുക",
"select_featured_photo": "ഫീച്ചർ ചെയ്ത ഫോട്ടോ തിരഞ്ഞെടുക്കുക",
"select_from_computer": "കമ്പ്യൂട്ടറിൽ നിന്ന് തിരഞ്ഞെടുക്കുക",
"select_keep_all": "എല്ലാം സൂക്ഷിക്കാൻ തിരഞ്ഞെടുക്കുക",
"select_new_face": "പുതിയ മുഖം തിരഞ്ഞെടുക്കുക",
+ "select_people": "ആളുകളെ തിരഞ്ഞെടുക്കുക",
+ "select_person": "വ്യക്തിയെ തിരഞ്ഞെടുക്കുക",
"select_person_to_tag": "ടാഗ് ചെയ്യാൻ ഒരു വ്യക്തിയെ തിരഞ്ഞെടുക്കുക",
"select_photos": "ഫോട്ടോകൾ തിരഞ്ഞെടുക്കുക",
+ "select_quality": "ഗുണനിലവാരം തിരഞ്ഞെടുക്കുക",
"select_trash_all": "എല്ലാം ട്രാഷ് ചെയ്യാൻ തിരഞ്ഞെടുക്കുക",
"selected": "തിരഞ്ഞെടുത്തു",
"selected_count": "{count, plural, other {# എണ്ണം തിരഞ്ഞെടുത്തു}}",
@@ -1613,6 +1900,9 @@
"set_profile_picture": "പ്രൊഫൈൽ ചിത്രം സജ്ജമാക്കുക",
"set_slideshow_to_fullscreen": "സ്ലൈഡ്ഷോ ഫുൾസ്ക്രീനായി സജ്ജമാക്കുക",
"set_stack_primary_asset": "പ്രധാന അസറ്റായി സജ്ജമാക്കുക",
+ "setting_image_navigation_enable_subtitle": "പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ, സ്ക്രീനിൻ്റെ ഇടതുഭാഗത്ത്/വലത് ഭാഗത്ത് ടാപ്പ് ചെയ്ത് മുമ്പത്തെ/അടുത്ത ചിത്രത്തിലേക്ക് നാവിഗേറ്റ് ചെയ്യാം.",
+ "setting_image_navigation_enable_title": "നാവിഗേറ്റ് ചെയ്യാൻ ടാപ്പ് ചെയ്യുക",
+ "setting_image_navigation_title": "ഇമേജ് നാവിഗേഷൻ",
"setting_image_viewer_help": "വിശദാംശ വ്യൂവർ ആദ്യം ചെറിയ തംബ്നെയിൽ ലോഡുചെയ്യുന്നു, തുടർന്ന് ഇടത്തരം പ്രിവ്യൂ (പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ), ഒടുവിൽ യഥാർത്ഥ ചിത്രം (പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ) ലോഡുചെയ്യുന്നു.",
"setting_image_viewer_original_subtitle": "യഥാർത്ഥ പൂർണ്ണ-റെസല്യൂഷൻ ചിത്രം (വലുത്!) ലോഡുചെയ്യാൻ പ്രവർത്തനക്ഷമമാക്കുക. ഡാറ്റ ഉപയോഗം (നെറ്റ്വർക്കും ഉപകരണ കാഷെയും) കുറയ്ക്കാൻ പ്രവർത്തനരഹിതമാക്കുക.",
"setting_image_viewer_original_title": "യഥാർത്ഥ ചിത്രം ലോഡുചെയ്യുക",
@@ -1634,6 +1924,10 @@
"share": "പങ്കിടുക",
"share_dialog_preparing": "തയ്യാറാക്കുന്നു...",
"share_link": "ലിങ്ക് പങ്കിടുക",
+ "share_original": "യഥാർത്ഥ (വലുത്) ഉപയോഗിക്കുക",
+ "share_preview": "ലഘുചിത്രം ഉപയോഗിക്കുക (ചെറുത്)",
+ "share_quality_body": "നിങ്ങൾ പങ്കിടുന്നതിന് മുമ്പ് ചിത്രത്തിൻ്റെ ഗുണനിലവാരം തിരഞ്ഞെടുക്കുന്നതിന് പങ്കിടൽ ബട്ടൺ അമർത്തിപ്പിടിക്കുക.",
+ "share_quality_title": "നിങ്ങളുടെ ഷെയർ നിലവാരം തിരഞ്ഞെടുക്കുക",
"shared": "പങ്കിട്ടത്",
"shared_album_activities_input_disable": "അഭിപ്രായം പ്രവർത്തനരഹിതമാക്കി",
"shared_album_activity_remove_content": "ഈ പ്രവർത്തനം ഇല്ലാതാക്കണോ?",
@@ -1693,13 +1987,17 @@
"show_in_timeline": "ടൈംലൈനിൽ കാണിക്കുക",
"show_in_timeline_setting_description": "ഈ ഉപയോക്താവിൽ നിന്നുള്ള ഫോട്ടോകളും വീഡിയോകളും നിങ്ങളുടെ ടൈംലൈനിൽ കാണിക്കുക",
"show_keyboard_shortcuts": "കീബോർഡ് കുറുക്കുവഴികൾ കാണിക്കുക",
+ "show_less": "കുറവ് കാണിക്കുക",
"show_metadata": "മെറ്റാഡാറ്റ കാണിക്കുക",
+ "show_more_fields": "{count, plural, one {# കൂടുതൽ ഫീൽഡ് കാണിക്കുക} other {# കൂടുതൽ ഫീൽഡുകൾ കാണിക്കുക}}",
"show_or_hide_info": "വിവരങ്ങൾ കാണിക്കുക അല്ലെങ്കിൽ മറയ്ക്കുക",
"show_password": "പാസ്വേഡ് കാണിക്കുക",
"show_person_options": "വ്യക്തിയുടെ ഓപ്ഷനുകൾ കാണിക്കുക",
"show_progress_bar": "പുരോഗതി ബാർ കാണിക്കുക",
+ "show_schema": "സ്കീമ കാണിക്കുക",
"show_search_options": "തിരയൽ ഓപ്ഷനുകൾ കാണിക്കുക",
"show_shared_links": "പങ്കിട്ട ലിങ്കുകൾ കാണിക്കുക",
+ "show_slideshow_metadata_overlay": "ചിത്ര വിവര ഓവർലേ കാണിക്കുക",
"show_slideshow_transition": "സ്ലൈഡ്ഷോ സംക്രമണം കാണിക്കുക",
"show_supporter_badge": "സഹായിയുടെ ബാഡ്ജ്",
"show_supporter_badge_description": "ഒരു സഹായിയുടെ ബാഡ്ജ് കാണിക്കുക",
@@ -1711,11 +2009,21 @@
"sign_out": "സൈൻ ഔട്ട്",
"sign_up": "സൈൻ അപ്പ് ചെയ്യുക",
"size": "വലിപ്പം",
+ "skip": "ഒഴിവാക്കുക",
"skip_to_content": "ഉള്ളടക്കത്തിലേക്ക് പോകുക",
"skip_to_folders": "ഫോൾഡറുകളിലേക്ക് പോകുക",
"skip_to_tags": "ടാഗുകളിലേക്ക് പോകുക",
"slideshow": "സ്ലൈഡ്ഷോ",
+ "slideshow_body": "ഒരു ഫുൾ സ്ക്രീൻ സ്ലൈഡ്ഷോയിൽ നിങ്ങളുടെ ഫോട്ടോകൾ പ്ലേ ചെയ്യുന്നത് കാണൂ.",
+ "slideshow_metadata_overlay_mode": "ഓവർലേ ഉള്ളടക്കം",
+ "slideshow_metadata_overlay_mode_description_only": "വിവരണം മാത്രം",
+ "slideshow_metadata_overlay_mode_full": "നിറഞ്ഞു",
+ "slideshow_repeat": "സ്ലൈഡ്ഷോ ആവർത്തിക്കുക",
+ "slideshow_repeat_description": "സ്ലൈഡ്ഷോ അവസാനിക്കുമ്പോൾ തുടക്കത്തിലേക്ക് തിരികെ ലൂപ്പ് ചെയ്യുക",
"slideshow_settings": "സ്ലൈഡ്ഷോ ക്രമീകരണങ്ങൾ",
+ "slideshow_title": "സ്ലൈഡ്ഷോ",
+ "smart_album": "സ്മാർട്ട് ആൽബം",
+ "some_assets_already_have_a_location_warning": "തിരഞ്ഞെടുത്ത ചില അസറ്റുകൾക്ക് ഇതിനകം ഒരു ലൊക്കേഷൻ ഉണ്ട്",
"sort_albums_by": "ആൽബങ്ങളെ ഇതനുസരിച്ച് ക്രമീകരിക്കുക...",
"sort_created": "സൃഷ്ടിച്ച തീയതി",
"sort_items": "ഇനങ്ങളുടെ എണ്ണം",
@@ -1736,6 +2044,10 @@
"start_date_before_end_date": "ആരംഭ തീയതി അവസാന തീയതിക്ക് മുമ്പായിരിക്കണം",
"state": "സംസ്ഥാനം",
"status": "നില",
+ "step_delete": "ഘട്ടം ഇല്ലാതാക്കുക",
+ "step_delete_confirm": "ഈ ഘട്ടം ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?",
+ "step_details": "ഘട്ടത്തിൻ്റെ വിശദാംശങ്ങൾ",
+ "steps": "പടികൾ",
"stop_casting": "കാസ്റ്റിംഗ് നിർത്തുക",
"stop_motion_photo": "ചലിക്കുന്ന ഫോട്ടോ നിർത്തുക",
"stop_photo_sharing": "നിങ്ങളുടെ ഫോട്ടോകൾ പങ്കിടുന്നത് നിർത്തണോ?",
@@ -1752,6 +2064,7 @@
"support": "പിന്തുണ",
"support_and_feedback": "പിന്തുണയും അഭിപ്രായവും",
"support_third_party_description": "നിങ്ങളുടെ Immich ഇൻസ്റ്റാളേഷൻ ഒരു മൂന്നാം കക്ഷി പാക്കേജ് ചെയ്തതാണ്. നിങ്ങൾ അനുഭവിക്കുന്ന പ്രശ്നങ്ങൾ ആ പാക്കേജ് കാരണമാകാം, അതിനാൽ താഴെയുള്ള ലിങ്കുകൾ ഉപയോഗിച്ച് ആദ്യം അവരുമായി പ്രശ്നങ്ങൾ ഉന്നയിക്കുക.",
+ "supporter": "പിന്തുണക്കാരൻ",
"swap_merge_direction": "ലയിപ്പിക്കൽ ദിശ മാറ്റുക",
"sync": "സിങ്ക്",
"sync_albums": "ആൽബങ്ങൾ സിങ്ക് ചെയ്യുക",
@@ -1760,9 +2073,12 @@
"sync_status": "സിങ്ക് നില",
"sync_status_subtitle": "സിങ്ക് സിസ്റ്റം കാണുക, കൈകാര്യം ചെയ്യുക",
"sync_upload_album_setting_subtitle": "നിങ്ങളുടെ ഫോട്ടോകളും വീഡിയോകളും Immich-ലെ തിരഞ്ഞെടുത്ത ആൽബങ്ങളിലേക്ക് ഉണ്ടാക്കി അപ്ലോഡ് ചെയ്യുക",
+ "system_theme": "സിസ്റ്റം തീം",
+ "system_theme_command_description": "സിസ്റ്റം തീം ഉപയോഗിക്കുക ({value})",
"tag": "ടാഗ്",
"tag_assets": "അസറ്റുകൾ ടാഗ് ചെയ്യുക",
"tag_created": "{tag} എന്ന ടാഗ് ഉണ്ടാക്കി",
+ "tag_face": "മുഖം ടാഗ് ചെയ്യുക",
"tag_feature_description": "യുക്തിസഹമായ ടാഗ് വിഷയങ്ങൾ അനുസരിച്ച് ഗ്രൂപ്പ് ചെയ്ത ഫോട്ടോകളും വീഡിയോകളും ബ്രൗസുചെയ്യുന്നു",
"tag_people": "ആളുകളെ ടാഗ് ചെയ്യുക",
"tag_updated": "{tag} എന്ന ടാഗ് അപ്ഡേറ്റ് ചെയ്തു",
@@ -1782,6 +2098,7 @@
"theme_setting_primary_color_title": "പ്രധാന നിറം",
"theme_setting_system_primary_color_title": "സിസ്റ്റം നിറം ഉപയോഗിക്കുക",
"theme_setting_system_theme_switch": "യാന്ത്രികം (സിസ്റ്റം ക്രമീകരണം പിന്തുടരുക)",
+ "then": "പിന്നെ",
"they_will_be_merged_together": "അവയെ ഒരുമിച്ച് ലയിപ്പിക്കും",
"third_party_resources": "മൂന്നാം കക്ഷി ഉറവിടങ്ങൾ",
"time": "സമയം",
@@ -1798,6 +2115,7 @@
"to_select": "തിരഞ്ഞെടുക്കാൻ",
"to_trash": "ട്രാഷ് ചെയ്യുക",
"toggle_settings": "ക്രമീകരണങ്ങൾ ടോഗിൾ ചെയ്യുക",
+ "toggle_theme_description": "തീം ടോഗിൾ ചെയ്യുക",
"total": "ആകെ",
"total_usage": "ആകെ ഉപയോഗം",
"trash": "ട്രാഷ്",
@@ -1809,6 +2127,13 @@
"trash_page_delete_all": "എല്ലാം ഇല്ലാതാക്കുക",
"trash_page_info": "ട്രാഷ് ചെയ്ത ഇനങ്ങൾ {days} ദിവസങ്ങൾക്ക് ശേഷം ശാശ്വതമായി ഇല്ലാതാക്കപ്പെടും",
"trashed_items_will_be_permanently_deleted_after": "ട്രാഷ് ചെയ്ത ഇനങ്ങൾ {days, plural, one {# ദിവസത്തിന്} other {# ദിവസങ്ങൾക്ക്}} ശേഷം ശാശ്വതമായി ഇല്ലാതാക്കപ്പെടും.",
+ "trigger": "ട്രിഗർ",
+ "trigger_asset_metadata_extraction": "അസറ്റ് മെറ്റാഡാറ്റ എക്സ്ട്രാക്ഷൻ",
+ "trigger_asset_metadata_extraction_description": "ഒരു അസറ്റിൻ്റെ EXIF മെറ്റാഡാറ്റ എക്സ്ട്രാക്റ്റ് ചെയ്യുമ്പോൾ ട്രിഗർ ചെയ്തു",
+ "trigger_asset_uploaded": "അസറ്റ് അപ്ലോഡ്",
+ "trigger_asset_uploaded_description": "ഒരു പുതിയ അസറ്റ് അപ്ലോഡ് ചെയ്യുമ്പോൾ ട്രിഗർ ചെയ്തു",
+ "trigger_person_recognized": "വ്യക്തി തിരിച്ചറിഞ്ഞു",
+ "trigger_person_recognized_description": "ഒരു വ്യക്തിയെ തിരിച്ചറിയുമ്പോൾ ട്രിഗർ ചെയ്യുന്നു",
"troubleshoot": "ട്രബിൾഷൂട്ട്",
"type": "തരം",
"unable_to_change_pin_code": "പിൻ കോഡ് മാറ്റാൻ കഴിയില്ല",
@@ -1823,6 +2148,7 @@
"unhide_person": "വ്യക്തിയെ മറവിൽനിന്ന് മാറ്റുക",
"unknown": "അജ്ഞാതം",
"unknown_country": "അജ്ഞാത രാജ്യം",
+ "unknown_date": "അജ്ഞാത തീയതി",
"unknown_year": "അജ്ഞാത വർഷം",
"unlimited": "പരിധിയില്ലാത്തത്",
"unlink_motion_video": "ചലിക്കുന്ന വീഡിയോ അൺലിങ്ക് ചെയ്യുക",
@@ -1838,6 +2164,8 @@
"unstack": "അൺ-സ്റ്റാക്ക് ചെയ്യുക",
"unstack_action_prompt": "{count} എണ്ണം അൺ-സ്റ്റാക്ക് ചെയ്തു",
"unstacked_assets_count": "{count, plural, one {# അസറ്റ്} other {# അസറ്റുകൾ}} അൺ-സ്റ്റാക്ക് ചെയ്തു",
+ "unsupported_field_type": "പിന്തുണയ്ക്കാത്ത ഫീൽഡ് തരം",
+ "unsupported_file_type": "{file} ഫയൽ അപ്ലോഡ് ചെയ്യാൻ കഴിയില്ല കാരണം അതിൻ്റെ ഫയൽ തരം {type} പിന്തുണയ്ക്കുന്നില്ല.",
"untagged": "ടാഗ് ചെയ്തിട്ടില്ല",
"up_next": "അടുത്തത്",
"update_location_action_prompt": "തിരഞ്ഞെടുത്ത {count} അസറ്റുകളുടെ സ്ഥാനം ഇതുപയോഗിച്ച് അപ്ഡേറ്റ് ചെയ്യുക:",
@@ -1845,7 +2173,9 @@
"updated_password": "പാസ്വേഡ് അപ്ഡേറ്റ് ചെയ്തു",
"upload": "അപ്ലോഡ്",
"upload_concurrency": "അപ്ലോഡ് കോൺകറൻസി",
+ "upload_day_count": "{date}: {count, plural, one {# അപ്ലോഡ്} other {# അപ്ലോഡുകൾ}}",
"upload_details": "അപ്ലോഡ് വിശദാംശങ്ങൾ",
+ "upload_error_with_count": "{count, plural, one {# അസറ്റ്} other {# അസറ്റുകൾ}} എന്നതിനായുള്ള അപ്ലോഡ് പിശക്",
"upload_errors": "അപ്ലോഡ് {count, plural, one {# പിശകോടെ} other {# പിശകുകളോടെ}} പൂർത്തിയായി, പുതിയ അപ്ലോഡ് അസറ്റുകൾ കാണുന്നതിന് പേജ് പുതുക്കുക.",
"upload_finished": "അപ്ലോഡ് കഴിഞ്ഞു",
"upload_progress": "ശേഷിക്കുന്നത് {remaining, number} - പ്രോസസ്സ് ചെയ്തത് {processed, number}/{total, number}",
@@ -1854,14 +2184,21 @@
"upload_status_errors": "പിശകുകൾ",
"upload_status_uploaded": "അപ്ലോഡ് ചെയ്തു",
"upload_success": "അപ്ലോഡ് വിജയിച്ചു, പുതിയ അപ്ലോഡ് അസറ്റുകൾ കാണുന്നതിന് പേജ് പുതുക്കുക.",
+ "upload_to_album_body": "മാനുവൽ അപ്ലോഡ് ഫീച്ചർ ഉപയോഗിക്കാത്ത ഉപയോക്താക്കൾക്കായി, നിങ്ങൾ അപ്ലോഡ് ചെയ്യുമ്പോൾ പ്രാദേശിക ഫോട്ടോകൾ നേരിട്ട് ആൽബത്തിലേക്ക് ചേർക്കാൻ നിങ്ങൾക്ക് ഇപ്പോൾ തിരഞ്ഞെടുക്കാം, അപ്ലോഡ് ചെയ്യേണ്ടതില്ല, പിന്നീട് ഒരു ആൽബത്തിലേക്ക് ചേർക്കുക.",
+ "upload_to_album_title": "ഒരു ആൽബത്തിലേക്ക് നേരിട്ട് അപ്ലോഡ് ചെയ്യുക",
"upload_to_immich": "Immich-ലേക്ക് അപ്ലോഡ് ചെയ്യുക ({count})",
"uploading": "അപ്ലോഡ് ചെയ്യുന്നു",
"uploading_media": "മീഡിയ അപ്ലോഡ് ചെയ്യുന്നു",
+ "uploads": "അപ്ലോഡുകൾ",
+ "uploads_count": "{count, plural, one {# അപ്ലോഡ്} other {# അപ്ലോഡുകൾ}}",
"url": "യുആർഎൽ",
"usage": "ഉപയോഗം",
"use_biometric": "ബയോമെട്രിക് ഉപയോഗിക്കുക",
+ "use_browser_locale": "ബ്രൗസർ ലൊക്കേൽ ഉപയോഗിക്കുക",
+ "use_browser_locale_description": "നിങ്ങളുടെ ബ്രൗസർ ലൊക്കേലിനെ അടിസ്ഥാനമാക്കി തീയതികളും സമയങ്ങളും നമ്പറുകളും ഫോർമാറ്റ് ചെയ്യുക",
"use_current_connection": "നിലവിലെ കണക്ഷൻ ഉപയോഗിക്കുക",
"use_custom_date_range": "പകരം കസ്റ്റം തീയതി പരിധി ഉപയോഗിക്കുക",
+ "use_template": "ടെംപ്ലേറ്റ് ഉപയോഗിക്കുക",
"user": "ഉപയോക്താവ്",
"user_has_been_deleted": "ഈ ഉപയോക്താവിനെ ഇല്ലാതാക്കി.",
"user_id": "ഉപയോക്തൃ ഐഡി",
@@ -1889,12 +2226,14 @@
"video": "വീഡിയോ",
"video_hover_setting": "ഹോവർ ചെയ്യുമ്പോൾ വീഡിയോ തംബ്നെയിൽ പ്ലേ ചെയ്യുക",
"video_hover_setting_description": "മൗസ് ഒരു ഇനത്തിന് മുകളിലൂടെ ഹോവർ ചെയ്യുമ്പോൾ വീഡിയോ തംബ്നെയിൽ പ്ലേ ചെയ്യുക. പ്രവർത്തനരഹിതമാക്കിയാലും, പ്ലേ ഐക്കണിന് മുകളിലൂടെ ഹോവർ ചെയ്ത് പ്ലേബാക്ക് ആരംഭിക്കാൻ കഴിയും.",
+ "video_quality": "വീഡിയോ നിലവാരം",
"videos": "വീഡിയോകൾ",
"videos_count": "{count, plural, one {# വീഡിയോ} other {# വീഡിയോകൾ}}",
"view": "കാണുക",
"view_album": "ആൽബം കാണുക",
"view_all": "എല്ലാം കാണുക",
"view_all_users": "എല്ലാ ഉപയോക്താക്കളെയും കാണുക",
+ "view_asset_owners": "അസറ്റ് ഉടമകളെ കാണുക",
"view_details": "വിശദാംശങ്ങൾ കാണുക",
"view_in_timeline": "ടൈംലൈനിൽ കാണുക",
"view_link": "ലിങ്ക് കാണുക",
@@ -1905,18 +2244,42 @@
"view_similar_photos": "സമാനമായ ഫോട്ടോകൾ കാണുക",
"view_stack": "സ്റ്റാക്ക് കാണുക",
"viewer_remove_from_stack": "സ്റ്റാക്കിൽ നിന്ന് നീക്കം ചെയ്യുക",
+ "visibility": "ദൃശ്യപരത",
"visibility_changed": "{count, plural, one {# വ്യക്തിയുടെ} other {# ആളുകളുടെ}} ദൃശ്യത മാറ്റി",
+ "visual": "വിഷ്വൽ",
"waiting": "കാത്തിരിക്കുന്നു",
+ "waiting_count": "കാത്തിരിക്കുന്നു: {count}",
"warning": "മുന്നറിയിപ്പ്",
"week": "ആഴ്ച",
"welcome": "സ്വാഗതം",
"welcome_to_immich": "Immich-ലേക്ക് സ്വാഗതം",
+ "whats_new": "പുതിയതെന്താണ്",
+ "whats_new_settings_subtitle": "ഇമ്മിച്ചിൽ എന്താണ് പുതിയതെന്ന് കാണുക",
+ "whats_new_version": "പതിപ്പ് {version}",
+ "when": "എപ്പോൾ",
+ "width": "വീതി",
"wifi_name": "വൈ-ഫൈയുടെ പേര്",
+ "workflow": "വർക്ക്ഫ്ലോ",
+ "workflow_delete_prompt": "ഈ വർക്ക്ഫ്ലോ ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ?",
+ "workflow_deleted": "വർക്ക്ഫ്ലോ ഇല്ലാതാക്കി",
+ "workflow_description": "വർക്ക്ഫ്ലോ വിവരണം",
+ "workflow_info": "വർക്ക്ഫ്ലോ വിവരം",
+ "workflow_json": "വർക്ക്ഫ്ലോ JSON",
+ "workflow_json_help": "JSON ഫോർമാറ്റിൽ വർക്ക്ഫ്ലോ കോൺഫിഗറേഷൻ എഡിറ്റ് ചെയ്യുക. മാറ്റങ്ങൾ വിഷ്വൽ ബിൽഡറുമായി സമന്വയിപ്പിക്കും.",
+ "workflow_name": "വർക്ക്ഫ്ലോ പേര്",
+ "workflow_navigation_prompt": "നിങ്ങളുടെ മാറ്റങ്ങൾ സംരക്ഷിക്കാതെ പോകണമെന്ന് തീർച്ചയാണോ?",
+ "workflow_summary": "വർക്ക്ഫ്ലോ സംഗ്രഹം",
+ "workflow_templates": "വർക്ക്ഫ്ലോ ടെംപ്ലേറ്റുകൾ",
+ "workflow_update_success": "വർക്ക്ഫ്ലോ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "workflows": "വർക്ക്ഫ്ലോകൾ",
+ "workflows_help_text": "ട്രിഗറുകളും ഫിൽട്ടറുകളും അടിസ്ഥാനമാക്കി വർക്ക്ഫ്ലോകൾ നിങ്ങളുടെ അസറ്റുകളിലെ പ്രവർത്തനങ്ങൾ ഓട്ടോമേറ്റ് ചെയ്യുന്നു",
"wrong_pin_code": "തെറ്റായ പിൻ കോഡ്",
+ "x_of_total": "{x}/{total}",
"year": "വർഷം",
"years_ago": "{years, plural, one {# വർഷം} other {# വർഷങ്ങൾ}} മുമ്പ്",
"yes": "അതെ",
"you_dont_have_any_shared_links": "നിങ്ങൾക്ക് പങ്കിട്ട ലിങ്കുകളൊന്നുമില്ല",
"your_wifi_name": "നിങ്ങളുടെ വൈ-ഫൈയുടെ പേര്",
+ "zero_to_clear_rating": "അസറ്റ് റേറ്റിംഗ് മായ്ക്കാൻ 0 അമർത്തുക",
"zoom_image": "ചിത്രം വലുതാക്കുക"
}
diff --git a/i18n/mr.json b/i18n/mr.json
index 021d962701..29b1da18e6 100644
--- a/i18n/mr.json
+++ b/i18n/mr.json
@@ -4,29 +4,29 @@
"account_settings": "खाते व्यवस्था",
"acknowledge": "मान्यता",
"action": "कृती",
- "action_common_update": "अद्ययावत",
+ "action_common_update": "अद्यतन",
"action_description": "फिल्टर केलेल्या माध्यमांवर करायच्या क्रियांचा संच",
"actions": "कृत्ये",
"active": "सक्रिय",
- "active_count": "कृती: {count}",
+ "active_count": "कृती: {संख्या}",
"activity": "गतिविधि",
"add": "जोडा",
"add_a_description": "वर्णन करा",
- "add_a_location": "एक स्थळ टाका",
- "add_a_name": "नाव टाका",
- "add_a_title": "शीर्षक टाका",
+ "add_a_location": "एक स्थळ जोडा",
+ "add_a_name": "नाव जोडा",
+ "add_a_title": "शीर्षक जोडा",
"add_action": "कृती जोडा",
"add_assets": "माध्यमे जोडा",
"add_birthday": "जन्मदिवस नोंदवा",
"add_endpoint": "एंडपॉइंट जोडा",
"add_exclusion_pattern": "अपवाद नमुना जोडा",
- "add_location": "स्थळ टाका",
+ "add_location": "स्थळ जोडा",
"add_partner": "भागीदार जोडा",
"add_photos": "छायाचित्रे जोडा",
- "add_step": "पायरी जोडा",
+ "add_step": "टप्पा जोडा",
"add_tag": "टॅग जोडा",
"add_to": "त्या मध्ये जोडा…",
- "add_to_album": "संग्रहात टाका",
+ "add_to_album": "संग्रहात जोडा",
"add_to_album_bottom_sheet_added": "{album} मध्ये जोडले गेले",
"add_to_album_bottom_sheet_already_exists": "आधीच {album} मध्ये आहे",
"add_to_album_bottom_sheet_some_local_assets": "काही स्थानिक माध्यमे अल्बममध्ये जोडणे शक्य झाले नाही",
@@ -37,7 +37,7 @@
"add_url": "URL प्रविष्ट करा",
"added_to_archive": "संग्रहित केले",
"added_to_favorites": "आवडत्या संग्रहात जोडले",
- "added_to_favorites_count": "आवडत्यात {count, number} टाकले",
+ "added_to_favorites_count": "आवडत्यात {count, number} जोडले",
"admin": {
"add_exclusion_pattern_description": "अपवाद अनुकूलन जोडा. ** आणि ? या उपयोगात ग्लोबिंग समर्थित आहे. कोणत्याही \"Raw\" नावाच्या निर्देशिकेमधील सर्व खतावण्या दुर्लक्षीत करण्यासाठी \"/Raw/\" वापरा. \".tif\" या सामान्य पथावर समाप्त असलेल्या सर्व खतावण्या दुर्लक्षीत करण्यासाठी \"**/.tif\" वापरा. विशिष्ट पथ दुर्लक्ष करण्यासाठी \"/path/to/ignore/**\" वापरा.",
"admin_user": "प्रशासन वापरकर्ता",
@@ -67,13 +67,17 @@
"confirm_reprocess_all_faces": "तुम्हाला खात्री आहे का की तुम्हाला सर्व चेहऱ्यांवर पुन्हा प्रक्रिया करायची आहे? यामुळे नाव दिलेले लोकही साफ होतील.",
"confirm_user_password_reset": "तुम्हाला नक्की {user} चा परवलीचा शब्द बदलायचा आहे का?",
"confirm_user_pin_code_reset": "तुम्हाला नक्की {user} चा पिन कोड रीसेट करायचा आहे का?",
+ "copy_config_to_clipboard_description": "चालू सिस्टम कॉन्फिगरेशन JSON ऑब्जेक्ट म्हणून क्लिपबोर्डवर कॉपी करा",
"create_job": "कार्य बनवा",
"cron_expression": "वेळापत्रक सूत्र",
"cron_expression_description": "चाळन्याचे वेळापत्रक क्रॉन पद्धती ने करा. अधिक माहिती साठी पहा: क्रॉन गुरु",
"cron_expression_presets": "पूर्वनिर्धारित वेळापत्रक सूत्रे",
"disable_login": "प्रवेशाधिकर वर्ज्य करा",
+ "download_csv": "CSV डाउनलोड करा",
"duplicate_detection_job_description": "सारख्या छायाचित्रांचा शोध घेण्यासाठी यांत्रिकी प्रशिक्षण द्या. ही कार्यक्षमता चतुर शोधप्रणालीवर अवलंबून आहे",
"exclusion_pattern_description": "आपले संग्रहालय चाळताना अपवाद नमुने आपल्याला खतावण्या आणि र्निर्देशिकेला दुर्लक्षीत करू देतात. आपल्याकडे कच्च्या खतावण्या सारख्या आयात करू इच्छित नसलेल्या असंपादित (RAW) खतावण्या असलेल्या निर्देशिका असल्यास हे उपयुक्त आहे.",
+ "export_config_as_json_description": "चालू सिस्टम कॉन्फिगरेशन JSON फाईल म्हणून डाउनलोड करा",
+ "external_libraries_page_description": "बाह्य ग्रंथालयाच्या पृष्ठाचे व्यवस्थापन",
"face_detection": "मुख संशोधन",
"face_detection_description": "मशीन लर्निंग वापरून मालमत्तांमधील चेहरे शोधा. व्हिडिओंसाठी, फक्त थंबनेलचा विचार केला जातो. \"रिफ्रेश\" (पुन्हा) सर्व मालमत्तांवर प्रक्रिया करते. \"रीसेट\" याव्यतिरिक्त सर्व वर्तमान चेहरा डेटा साफ करते. \"गहाळ\" मालमत्तांवर अद्याप प्रक्रिया न केलेल्या रांगेत ठेवते. शोधलेले चेहरे फेस डिटेक्शन पूर्ण झाल्यानंतर फेशियल रेकग्निशनसाठी रांगेत ठेवले जातील, त्यांना विद्यमान किंवा नवीन लोकांमध्ये गटबद्ध केले जाईल.",
"facial_recognition_job_description": "शोधलेले चेहरे लोकांमध्ये गटबद्ध करा. हे चरण चेहरा शोधणे पूर्ण झाल्यानंतर चालते. \"रीसेट करा\" (पुन्हा) सर्व चेहरे क्लस्टर कर. \"गहाळ\" चेहरे रांगेत समाविष्ट करते ज्यांना नियुक्त केलेली व्यक्ती नाही.",
@@ -93,6 +97,8 @@
"image_preview_description": "एकच मालमत्ता पाहताना आणि मशीन लर्निंगसाठी वापरली जाणारी, मेटाडेटा काढून दिलेली मध्यम आकाराची प्रतिमा",
"image_preview_quality_description": "पूर्वावलोकन गुणवत्ता 1–100: जितकी उच्च, तितकी चांगली; फाइल आकार वाढतो आणि ॲपची प्रतिसादक्षमता कमी होऊ शकते. कमी मूल्य सेट केल्यास मशीन लर्निंग गुणवत्ता प्रभावित होऊ शकते.",
"image_preview_title": "पूर्वावलोकन विन्यास",
+ "image_progressive": "प्रगतीशील",
+ "image_progressive_description": "JPEG प्रतिमा हळूहळू लोड होऊन प्रदर्शित होण्यासाठी क्रमाक्रमानुसार एन्कोड करा. याचा WebP प्रतिमांवर कोणताही परिणाम होत नाही.",
"image_quality": "गुणवत्ता",
"image_resolution": "प्रतिमेची स्पष्टता",
"image_resolution_description": "उच्च रिझोल्यूशन अधिक तपशील जतन करतात, परंतु त्यांचे एन्कोडिंग जास्त वेळ घेतं, फाइल साईज मोठी होते आणि अॅपची प्रतिसादक्षमता कमी होऊ शकते.",
@@ -101,6 +107,22 @@
"image_thumbnail_description": "फोटो समूह पाहताना मेटाडेटा काढून दाखवलेले लहान थंबनेल",
"image_thumbnail_quality_description": "थंबनेल गुणवत्ता (1–100): जितकी जास्त, तितकी चांगली; परंतु फाइल आकार वाढतो आणि ॲपची प्रतिसादक्षमता कमी होऊ शकते.",
"image_thumbnail_title": "लघुरूप विन्यास",
+ "import_config_from_json_description": "JSON कॉन्फिग फाइल अपलोड करून सिस्टम कॉन्फिग आयात करा",
+ "integrity_checks_checksum_files": "चेकसम फाइल्स",
+ "integrity_checks_checksum_files_description": "चेकसम तपासणी कॉन्फिगर करा",
+ "integrity_checks_checksum_files_enable_description": "चेकसम तपासणी सक्षम करा",
+ "integrity_checks_checksum_files_percentage_limit": "टक्केवारी मर्यादा",
+ "integrity_checks_checksum_files_percentage_limit_description": "प्रत्येक अंतरालमध्ये चेकसम तपासणी किती टक्केपर्यंत चालवायची ते 0.01 ते 1 या श्रेणीत सेट करा.",
+ "integrity_checks_checksum_files_time_limit": "वेळेची मर्यादा",
+ "integrity_checks_checksum_files_time_limit_description": "प्रत्येक अंतरालानंतर चेकसम तपासणी किती काळ चालवायची ते कमाल कालावधी कॉन्फिगर करा. (मिलीसेकंद)",
+ "integrity_checks_missing_files": "गहाळ फाइल्स",
+ "integrity_checks_missing_files_description": "वारंवारता कॉन्फिगर करा आणि गहाळ फाइल्स तपासणी सक्षम किंवा अक्षम करा",
+ "integrity_checks_missing_files_enable_description": "गहाळ फाइल्स तपासणी सक्षम करा",
+ "integrity_checks_settings": "अखंडता तपासण्या",
+ "integrity_checks_settings_description": "अखंडता तपासणी अंतरांचे व्यवस्थापन करा",
+ "integrity_checks_untracked_files": "अनट्रॅक्ड फाइल्स",
+ "integrity_checks_untracked_files_description": "वारंवारता कॉन्फिगर करा आणि ट्रॅक न केलेल्या फाइल्सची तपासणी सक्षम किंवा अक्षम करा",
+ "integrity_checks_untracked_files_enable_description": "अनट्रॅक्ड फाइल्सची तपासणी सक्षम करा",
"job_concurrency": "{job} एकरूपता",
"job_created": "कार्य तयार झाले",
"job_not_concurrency_safe": "हे कार्य समांतरपणे चालवण्यासाठी सुरक्षित नाही.",
@@ -175,10 +197,15 @@
"machine_learning_smart_search_enabled": "स्मार्ट सर्च सक्षम करा",
"machine_learning_smart_search_enabled_description": "अक्षम केल्यास, प्रतिमा स्मार्ट सर्चसाठी एन्कोड केल्या जाणार नाहीत.",
"machine_learning_url_description": "मशीन लर्निंग सर्व्हरची URL. एकाहून अधिक URL दिल्यास, प्रथम ते दिलेल्या क्रमाने प्रत्येक सर्व्हरवर एक-एक करून प्रयत्न केले जातील, जोपर्यंत कोणीतरी यशस्वी प्रतिसाद देत नाही तोपर्यंत. जे सर्व्हर प्रतिसाद देत नाहीत, त्यांना ते परत ऑनलाइन येईपर्यंत तात्पुरते दुर्लक्षित केले जाईल.",
+ "maintenance_restore_backup_unknown_version": "बॅकअप आवृत्ती निश्चित करता आली नाही.",
+ "maintenance_restore_database_backup": "डेटाबेस बॅकअप पुनर्संचयित करा",
+ "maintenance_restore_database_backup_description": "बॅकअप फाइल वापरून डेटाबेसच्या पूर्वीच्या स्थितीत परत करा",
"maintenance_settings": "देखभाल",
"maintenance_settings_description": "Immich ला देखभाल मोडमध्ये ठेवा.",
"maintenance_start": "देखभाल मोड सुरू करा",
"maintenance_start_error": "देखभाल मोड सुरू करण्यात अयशस्वी.",
+ "maintenance_upload_backup": "डेटाबेस बॅकअप फाइल अपलोड करा",
+ "maintenance_upload_backup_error": "बॅकअप अपलोड करता आला नाही, हे .sql/.sql.gz फाइल आहे का?",
"manage_concurrency": "समांतरता व्यवस्थापित करा",
"manage_log_settings": "लॉग सेटिंग्ज नियंत्रण करा",
"map_dark_style": "गडद शैली",
@@ -245,7 +272,7 @@
"oauth_auto_register": "स्वयंचलित नोंदणी करा",
"oauth_auto_register_description": "OAuth सह साइन इन केल्यावर नवीन वापरकर्त्यांची आपोआप नोंदणी करा",
"oauth_button_text": "बटण मजकूर",
- "oauth_client_secret_description": "PKCE (प्रूफ की फॉर कोड एक्सचेंज) OAuth प्रदात्याद्वारे समर्थित नसल्यास आवश्यक",
+ "oauth_client_secret_description": "PKCE (प्रूफ की फॉर कोड एक्सचेंज) OAuth प्रदात्याद्वारे समर्थित नसल्यास आवश्यक.",
"oauth_enable_description": "OAuth सह लॉगिन करा",
"oauth_mobile_redirect_uri": "मोबाइल रीडायरेक्ट URI",
"oauth_mobile_redirect_uri_override": "मोबाईल रीडायरेक्ट URI अधिलेखन",
@@ -273,6 +300,9 @@
"refreshing_all_libraries": "सर्व लायब्ररी रीफ्रेश करीत आहे",
"registration": "प्रशासक नोंदणी",
"registration_description": "आपण प्रणालीवरील पहिले वापरकर्ता आहात, म्हणून आपल्याला प्रशासक म्हणून नियुक्त केले जाईल आणि प्रशासकीय कार्ये आपल्याद्वारे हाताळली जातील; तसेच इतर वापरकर्ते आपण तयार कराल.",
+ "release_channel_release_candidate": "रिलीज कॅंडिडेट",
+ "release_channel_stable": "स्थिर",
+ "remove_failed_jobs": "अपयशी झालेल्या कामांना काढून टाका",
"require_password_change_on_login": "पहिल्या लॉगिनवर वापरकर्त्यास पासवर्ड बदलण्याची आवश्यकता असेल",
"reset_settings_to_default": "सेटिंग्ज डीफॉल्टवर रीसेट करा",
"reset_settings_to_recent_saved": "सेटिंग्ज अलीकडील जतन केलेल्या सेटिंग्जवर रीसेट करा",
@@ -285,8 +315,10 @@
"server_public_users_description": "सार्वजनिक अल्बममध्ये वापरकर्ता जोडताना सर्व वापरकर्त्यांची (नाव व ईमेल) यादी दर्शवली जाते. अक्षम केल्यास, ही यादी फक्त प्रशासकांसाठीच उपलब्ध असेल.",
"server_settings": "सर्व्हर सेटिंग्ज",
"server_settings_description": "सर्व्हर सेटिंग्ज व्यवस्थापित करा",
+ "server_stats_page_description": "प्रशासकीय सर्व्हर सांख्यिकी पृष्ठ",
"server_welcome_message": "स्वागत संदेश",
"server_welcome_message_description": "लॉगिन पृष्ठावर दर्शविण्यात येणारा संदेश।",
+ "settings_page_description": "प्रशासकीय सेटिंग्ज पृष्ठ",
"sidecar_job": "साइडकार मेटाडेटा",
"sidecar_job_description": "फाईल सिस्टममधून साइडकार मेटाडेटा शोधा किंवा समक्रमित करा",
"slideshow_duration_description": "प्रत्येक प्रतिमा किती सेकंद प्रदर्शित करायची",
@@ -364,6 +396,10 @@
"transcoding_preferred_hardware_device_description": "केवळ VAAPI आणि QSV साठी लागू. हार्डवेअर ट्रान्सकोडिंग साठी वापरला जाणारा DRI नोड सेट करा.",
"transcoding_preset_preset": "प्रीसेट (–preset)",
"transcoding_preset_preset_description": "संकुचन गती. किंचित मंद प्रीसेट्स लहान फाइल तयार करतात आणि ठराविक बिटरेटसाठी गुणवत्ता वाढवतात. VP9 ‘faster’ पेक्षा जास्त गती लक्षात घेत नाही.",
+ "transcoding_realtime": "रिअल-टाइम ट्रान्सकोडिंग [प्रयोगात्मक]",
+ "transcoding_realtime_description": "व्हिडिओ प्रक्षेपित होत असताना रिअल-टाइममध्ये ट्रान्सकोडिंग करण्याची परवानगी देते. गुणवत्ता स्विचिंग सक्षम करते, परंतु सर्व्हरच्या क्षमतेवर अवलंबून प्लेबॅकमध्ये अधिक विलंब आणि अडथळे येऊ शकतात.",
+ "transcoding_realtime_enabled": "रिअल-टाइम ट्रान्सकोडिंग सक्षम करा",
+ "transcoding_realtime_enabled_description": "अक्षम केल्यास, सर्व्हर नवीन रिअल-टाइम ट्रान्सकोडिंग सत्रे सुरू करण्यास नकार देईल.",
"transcoding_reference_frames": "संदर्भ फ्रेम्स",
"transcoding_reference_frames_description": "दिलेल्या फ्रेमचे संकुचन करताना किती फ्रेम्स संदर्भित कराव्यात हे ठरवते. जास्त मूल्ये संकुचन कार्यक्षमतेत सुधारणा करतात, परंतु एन्कोडिंग मंद करतात. 0 ठेवल्यास हे स्वयंचलितपणे सेट होते.",
"transcoding_required_description": "फक्त मान्य प्रारूपात नसलेले व्हिडिओ",
@@ -405,6 +441,10 @@
"user_restore_scheduled_removal": "वापरकर्ता पुनर्संचयित करा – नियोजित हटविण्याची तारीख {date, date, long}",
"user_settings": "वापरकर्ता सेटिंग्ज",
"user_settings_description": "वापरकर्ता सेटिंग्ज व्यवस्थापित करा",
+ "user_successfully_removed": "वापरकर्ता {email} यशस्वीरित्या काढून टाकण्यात आला आहे.",
+ "users_page_description": "प्रशासक वापरकर्त्यांचे पृष्ठ",
+ "version_check_channel": "विमोचन मार्ग",
+ "version_check_channel_description": "आपल्याला आवृत्ती घोषणा मिळवायच्या असलेल्या प्रकाशन चॅनेलची निवड करा",
"version_check_enabled_description": "आवृत्ती तपासणी सक्षम करा",
"version_check_implications": "आवृत्ती तपासणी वैशिष्ट्य {server} सोबत आवर्ती संवादावर अवलंबून आहे",
"version_check_settings": "आवृत्ती तपासणी",
@@ -416,6 +456,9 @@
"admin_password": "प्रशासक पासवर्ड",
"administration": "प्रशासन",
"advanced": "प्रगत",
+ "advanced_settings_clear_image_cache": "प्रतिमा कॅश हटवा",
+ "advanced_settings_clear_image_cache_error": "प्रतिमा कॅश साफ करण्यात अयशस्वी",
+ "advanced_settings_clear_image_cache_success": "यशस्वीरित्या {size} पार केले",
"advanced_settings_log_level_title": "लॉग पातळी: {level}",
"advanced_settings_prefer_remote_subtitle": "काही उपकरणे स्थानिक अॅसेटमधून थंबनेल लोड करण्यात खूप मंद आहेत. त्याऐवजी रिमोट प्रतिमा लोड करण्यासाठी हा सेटिंग सक्षम करा.",
"advanced_settings_prefer_remote_title": "रिमोट प्रतिमा पसंत करा",
@@ -448,6 +491,7 @@
"album_summary": "अल्बम सारांश",
"album_updated": "अल्बम अद्यतनित",
"album_updated_setting_description": "शेअर केलेल्या अल्बममध्ये नवीन फाईल्स आल्यास ईमेल सूचनार्थ प्राप्त करा",
+ "album_upload_assets": "आपल्या संगणकातून फाइल्स अपलोड करा आणि अल्बममध्ये जोडा",
"album_viewer_appbar_share_err_delete": "अल्बम हटवण्यात अयशस्वी",
"album_viewer_page_share_add_users": "वापरकर्ते जोडा",
"album_with_link_access": "लिंक असलेल्या कोणत्याही व्यक्तीस या अल्बममधील फोटो आणि लोक पाहता येतील.",
@@ -460,12 +504,16 @@
"all": "सर्व",
"all_albums": "सर्व अल्बम्स",
"all_people": "सर्व लोक",
+ "all_photos": "सर्व फोटो",
"all_videos": "सर्व व्हिडिओ",
"allow_dark_mode": "डार्क मोडला परवानगी द्या",
"allow_public_user_to_download": "सार्वजनिक वापरकर्त्यांना डाउनलोड करण्याची परवानगी द्या",
"allow_public_user_to_upload": "सार्वजनिक वापरकर्त्यांना अपलोड करण्याची परवानगी द्या",
"allowed": "परवानगी आहे",
"alt_text_qr_code": "QR कोड प्रतिमा",
+ "always_keep": "नेहमी ठेवा",
+ "always_keep_photos_hint": "Free Up Space या डिव्हाइसवरील सर्व फोटो जपून ठेवेल.",
+ "always_keep_videos_hint": "Free Up Space या डिव्हाइसवरील सर्व व्हिडिओ जपून ठेवेल.",
"api_key": "एपीआई की",
"api_key_description": "हा मूल्य एकदाच दाखविला जाईल. कृपया विंडो बंद करण्यापूर्वी ते कॉपी करायला विसरू नका.",
"api_key_empty": "आपले API की नाव रिक्त असू नये",
@@ -490,6 +538,8 @@
"are_you_sure_to_do_this": "तुम्हाला हे खरंच करायचे आहे का?",
"asset_added_to_album": "अल्बममध्ये जोडले गेले",
"asset_adding_to_album": "अल्बममध्ये जोडत आहे…",
+ "asset_created": "अॅसेट तयार करण्यात आला",
+ "asset_day_count": "{date}: {count, plural, एक {# asset} इतर {# assets}}",
"asset_description_updated": "साधनाचे वर्णन अद्यावत केले गेले आहे",
"asset_hashing": "हॅशिंग…",
"asset_list_group_by_sub_title": "गटानुसार गटबद्ध करा",
@@ -498,6 +548,9 @@
"asset_list_layout_sub_title": "लेआउट",
"asset_list_settings_subtitle": "फोटो ग्रिड लेआउट सेटिंग्ज",
"asset_list_settings_title": "फोटो ग्रिड",
+ "asset_not_found_on_device_android": "उपकरणावर अॅसेट सापडली नाही",
+ "asset_not_found_on_device_ios": "डिव्हाइसवर अॅसेट सापडला नाही. जर आपण iCloud वापरत असाल, तर iCloud मध्ये संग्रहित खराब फाइलमुळे तो अॅसेट उपलब्ध नसेल",
+ "asset_not_found_on_icloud": "iCloud वर अॅसेट सापडला नाही. iCloud मध्ये संग्रहित खराब फाइलमुळे हा अॅसेट उपलब्ध नसू शकतो",
"asset_offline": "साधन ऑफलाइन आहे",
"asset_offline_description": "हे बाह्य साधन आता डिस्कवर सापडत नाही. मदतीसाठी आपल्या Immich प्रशासकाशी संपर्क करा.",
"asset_skipped": "वगळले",
@@ -562,12 +615,14 @@
"backup_options": "बॅकअप पर्याय",
"backup_settings_subtitle": "अपलोड सेटिंग्ज व्यवस्थापित करा",
"backward": "मागासलेले",
+ "battery_optimization_backup_reliability": "बॅटरी ऑप्टिमायझेशन अक्षम केल्याने पार्श्वभूमी बॅकअपची विश्वसनीयता सुधारू शकते",
"biometric_auth_enabled": "बायोमेट्रिक प्रमाणीकरण चालू आहे",
"biometric_locked_out": "आपण बायोमेट्रिक प्रमाणीकरणापासून लॉक आहात",
"biometric_no_options": "कोणतेही बायोमेट्रिक पर्याय उपलब्ध नाहीत",
"biometric_not_available": "या डिव्हाइसवर बायोमेट्रिक प्रमाणीकरण उपलब्ध नाही",
"birthdate_set_description": "फोटोच्या वेळी या व्यक्तीचे वय मोजण्यासाठी जन्मतारीख वापरली जाते.",
"blurred_background": "पार्श्वभूमी धुसळलेली",
+ "browse_templates": "टॅम्पलेट्स ब्राउझ करा",
"bugs_and_feature_requests": "बग्ज & फिचर विनंत्या",
"build": "तयार करा",
"build_image": "इमेज तयार करा",
@@ -587,6 +642,7 @@
"cannot_update_the_description": "वर्णन अद्यतनित करता येणार नाही",
"cast": "कास्ट",
"cast_description": "उपलब्ध कास्ट गंतव्ये कॉन्फिगर करा",
+ "change": "बदल",
"change_date": "तारीख बदला",
"change_description": "वर्णन बदला",
"change_display_order": "प्रदर्शन क्रम बदला",
@@ -608,17 +664,34 @@
"charging": "चार्जिंग",
"charging_requirement_mobile_backup": "बॅकग्राउंड बॅकअपसाठी उपकरण चार्ज होत असणे आवश्यक आहे",
"check_logs": "लॉग्ज तपासा",
+ "checksum": "चेकसम",
+ "choose": "निवडा",
"choose_matching_people_to_merge": "विलीन करण्यासाठी जुळणारे लोक निवडा",
"city": "शहर",
+ "cleanup_confirm_description": "Immich ने {count} अॅसेट({date} पूर्वी तयार केलेल्या) सर्व्हरवर सुरक्षितपणे बॅकअप केल्या आढळल्या. या डिव्हाइसमधील स्थानिक प्रती काढून टाकाव्यात का?",
+ "cleanup_confirm_prompt_title": "या उपकरणातून काढून टाकायचे?",
+ "cleanup_deleted_assets": "{count} मालमत्ता डिव्हाइसच्या कचऱ्यात हलवल्या",
+ "cleanup_deleting": "कचऱ्यात हलवत आहे...",
+ "cleanup_found_assets": "{count} बॅकअप केलेल्या मालमत्ता आढळल्या",
+ "cleanup_found_assets_with_size": "{count} बॅकअप केलेल्या मालमत्ता आढळल्या ({size})",
+ "cleanup_icloud_shared_albums_excluded": "iCloud सामायिक अल्बम्स स्कॅनमधून वगळले जातात",
+ "cleanup_no_assets_found": "वरील निकषांनुसार कोणतीही मालमत्ता सापडली नाही. फ्री अप स्पेस फक्त ती मालमत्ता हटवू शकते ज्याचे सर्व्हरवर बॅकअप घेतले गेले आहेत",
+ "cleanup_preview_title": "काढून टाकण्यासाठीची अॅसेट({count})",
+ "cleanup_step3_description": "तुमच्या तारखेनुसार बॅकअप झालेल्या अॅसेट स्कॅन करा आणि सेटिंग्ज जतन करा.",
+ "cleanup_step4_summary": "{count} अॅसेट({date} पूर्वी तयार केलेली) आपल्या स्थानिक उपकरणातून काढण्यासाठी. फोटो Immich अॅपमधून उपलब्ध राहतील.",
+ "cleanup_trash_hint": "साठवणुकीची जागा पूर्णपणे परत मिळवण्यासाठी, सिस्टम गॅलरी अॅप उघडा आणि कचरा रिकामी करा",
"clear": "साफ करा",
"clear_all": "सर्व साफ करा",
"clear_all_recent_searches": "सर्व शोध इतिहास मिटवा",
+ "clear_failed_count": "हटवणे अयशस्वी झाले ({count})",
"clear_file_cache": "फाईल कॅश मिटवा",
"clear_message": "संदेश मिटवा",
"clear_value": "मूल्य मिटवा",
"client_cert_import": "आयात करा",
"client_cert_import_success_msg": "क्लायंट प्रमाणपत्र आयात झाले",
"client_cert_invalid_msg": "अवैध प्रमाणपत्र फाईल किंवा चुकीचा संकेतशब्द",
+ "client_cert_password_message": "या प्रमाणपत्रासाठी पासवर्ड प्रविष्ट करा",
+ "client_cert_password_title": "प्रमाणपत्र संकेतशब्द",
"client_cert_remove_msg": "क्लायंट प्रमाणपत्र काढून टाकले",
"client_cert_subtitle": "फक्त PKCS12 (.p12, .pfx) फॉरमॅटला समर्थन आहे. सर्टिफिकेट आयात/काढणे फक्त लॉगिनपूर्वी उपलब्ध आहे",
"client_cert_title": "SSL क्लायंट प्रमाणपत्र [प्रायोगिक]",
@@ -626,12 +699,19 @@
"collapse": "संकुचित करा",
"collapse_all": "सर्व संकुचित करा",
"color": "रंग",
+ "command": "आदेश",
+ "command_palette_prompt": "पृष्ठे, क्रिया किंवा आदेश पटकन शोधा",
+ "command_palette_to_close": "बंद करण्यासाठी",
+ "command_palette_to_navigate": "प्रवेश करण्यासाठी",
+ "command_palette_to_select": "निवडण्यासाठी",
+ "command_palette_to_show_all": "सर्व दाखवण्यासाठी",
"comment_deleted": "टिप्पणी हटवली",
"comment_options": "टिप्पणी पर्याय",
"comments_and_likes": "टिप्पण्या & लाईक्स",
"comments_are_disabled": "टिप्पण्या अक्षम आहेत",
"common_create_new_album": "नवीन अल्बम तयार करा",
"completed": "पूर्ण झाले",
+ "configuration": "संरचना",
"confirm": "पुष्टी करा",
"confirm_admin_password": "ऍडमिन संकेतशब्द पुष्टी करा",
"confirm_delete_face": "तुम्हाला {name} चे चेहरा या फाईलमधून हटवायचे आहे का?",
@@ -646,6 +726,7 @@
"contain": "समाविष्ट करा",
"context": "संदर्भ",
"continue": "पुढे",
+ "control_bottom_app_bar_add_tags": "टॅग जोडा",
"control_bottom_app_bar_delete_from_local": "उपकरणातून हटवा",
"control_bottom_app_bar_edit_location": "स्थान संपादित करा",
"control_bottom_app_bar_edit_time": "तारीख व वेळ संपादित करा",
@@ -654,6 +735,7 @@
"copied_to_clipboard": "क्लिपबोर्डवर कॉपी झाले!",
"copy_error": "कॉपी करताना त्रुटी",
"copy_image": "प्रतिमा कॉपी करा",
+ "copy_json": "JSON कॉपी करा",
"copy_link": "लिंक कॉपी करा",
"copy_link_to_clipboard": "लिंक क्लिपबोर्डवर कॉपी करा",
"copy_password": "संकेतशब्द कॉपी करा",
@@ -665,6 +747,7 @@
"create_album": "अल्बम तयार करा",
"create_album_page_untitled": "शीर्षकेतर",
"create_api_key": "API की तयार करा",
+ "create_first_workflow": "पहिला वर्कफ्लो तयार करा",
"create_library": "लायब्ररी तयार करा",
"create_link": "लिंक तयार करा",
"create_link_to_share": "शेअर करण्यासाठी लिंक तयार करा",
@@ -673,33 +756,46 @@
"create_new_person": "नवीन व्यक्ती तयार करा",
"create_new_person_hint": "निवडलेल्या फाईल्स नवीन व्यक्तीशी जोडा",
"create_new_user": "नवीन वापरकर्ता तयार करा",
+ "create_person": "व्यक्ती तयार करा",
+ "create_person_subtitle": "नवीन व्यक्ती तयार करण्यासाठी आणि टॅग करण्यासाठी निवडलेल्या चेहऱ्यावर नाव जोडा",
"create_shared_album_page_share_add_assets": "फाईल्स जोडा",
"create_shared_album_page_share_select_photos": "फोटो निवडा",
"create_shared_link": "शेअर लिंक तयार करा",
"create_tag": "टॅग तयार करा",
"create_tag_description": "नवीन टॅग तयार करा. सबटॅगसाठी पूर्ण पाथसहित नाव टाका।",
"create_user": "वापरकर्ता तयार करा",
+ "create_workflow": "कार्यप्रवाह तयार करा",
"created": "तयार केले",
"created_at": "निर्मिती तारीख",
"creating_linked_albums": "लिंक केलेले अल्बम तयार करत आहे...",
"crop": "छाटणी करा",
+ "crop_aspect_ratio_free": "रिक्त",
+ "crop_aspect_ratio_original": "मूळ",
+ "crop_aspect_ratio_square": "चौरस",
"current_device": "वर्तमान उपकरण",
"current_pin_code": "चालू PIN कोड",
"current_server_address": "सर्व्हर पत्ता",
+ "custom_date": "सानुकूल तारीख",
"custom_locale": "भाषा व क्षेत्र",
"custom_locale_description": "दिनांक व संख्या भाषेनुसार व क्षेत्रानुसार format करा",
- "custom_url": "सानुकूल URL",
+ "cutoff_date_description": "शेवटच्या… पासूनचे फोटो ठेवा…",
+ "cutoff_day": "{count, plural, one {दिवस} other {दिवस}}",
+ "cutoff_year": "{count, plural, one {वर्ष} other {वर्ष}}",
"dark": "डार्क",
"dark_theme": "डार्क थीम बदल",
"date": "तारीख",
"date_after": "नंतरची तारीख",
"date_and_time": "दिनांक व वेळ",
"date_before": "पूर्वची तारीख",
+ "date_of_birth": "जन्म तारीख",
"date_of_birth_saved": "जन्मतारीख जतन झाली",
"date_range": "तारीख श्रेणी",
+ "date_time_original": "मूळ तारीख/वेळ",
"day": "दिवस",
"days": "अनेक दिवस",
"deduplicate_all": "सर्व डुप्लिकेट काढा",
+ "default_quality_subtitle": "शेअर टॅप करताना वापरली जाणारी गुणवत्ता. प्रत्येक वेळी निवडण्यासाठी शेअर बटण दीर्घकाळ दाबा.",
+ "default_share_quality": "डीफॉल्ट शेअर गुणवत्ता",
"delete": "हटवा",
"delete_action_confirmation_message": "तुम्हाला ही फाईल हटवायची आहे का? ही क्रिया सर्व्हरच्या ट्रॅशमध्ये हलवेल आणि स्थानिकपणे हटवायचे का ते विचारेल",
"delete_action_prompt": "{count} हटवले",
@@ -730,6 +826,7 @@
"deselect_all": "सर्व निवड रद्द करा",
"details": "तपशील",
"direction": "दिशा",
+ "disable": "अक्षम करा",
"disabled": "अक्षम",
"discord": "डिस्कॉर्ड",
"discover": "शोधा",
@@ -751,16 +848,21 @@
"download_include_embedded_motion_videos": "एम्बेड केलेली व्हिडिओ",
"download_include_embedded_motion_videos_description": "मोशन फोटोमधील एम्बेड केलेली व्हिडिओ स्वतंत्र फाईल म्हणून समाविष्ट करा",
"download_notfound": "डाउनलोड आढळला नाही",
+ "download_original": "मूळ डाउनलोड करा",
"download_paused": "डाउनलोड थांबवला",
"download_settings": "डाउनलोड सेटिंग्ज",
"download_settings_description": "फाईल डाउनलोड संबंधित सेटिंग्ज व्यवस्थापित करा",
"download_waiting_to_retry": "पुन्हा प्रयत्न करण्याची प्रतीक्षा",
"downloading": "डाउनलोड करत आहे",
"downloading_asset_filename": "{filename} डाउनलोड करत आहे",
+ "downloading_from_icloud": "iCloud वरून डाउनलोड करत आहे",
"downloading_media": "मीडिया डाउनलोड करत आहे",
+ "drag_to_reorder": "पुनर्क्रम करण्यासाठी ओढा",
"drop_files_to_upload": "अपलोडसाठी फाईल्स इथे ड्रॉप करा",
+ "duplicate": "प्रतिलिपी",
+ "duplicate_workflow": "प्रतिलिपी कार्यप्रवाह",
"duplicates": "डुप्लिकेट्स",
- "duplicates_description": "प्रत्येक गटातले डुप्लिकेट फाईल्स निवडा",
+ "duplicates_description": "प्रत्येक गटातले डुप्लिकेट फाईल्स निवडा.",
"duration": "कालावधी",
"edit": "संपादित करा",
"edit_album": "अल्बम संपादित करा",
@@ -783,7 +885,15 @@
"edit_tag": "टॅग संपादित करा",
"edit_title": "शीर्षक संपादित करा",
"edit_user": "वापरकर्ता संपादित करा",
+ "edit_workflow": "कार्यप्रवाह संपादित करा",
"editor": "एडिटर",
+ "editor_discard_edits_confirm": "संपादन रद्द करा",
+ "editor_discard_edits_prompt": "आपल्याकडे जतन न केलेल्या संपादना आहेत. आपण त्या टाकून द्यायच्या आहात का?",
+ "editor_discard_edits_title": "बदल रद्द करायचे का?",
+ "editor_edits_applied_error": "बदल लागू करण्यात अयशस्वी",
+ "editor_edits_applied_success": "बदल लागू करण्यात यशस्वी",
+ "editor_flip_horizontal": "आडवे पलटवा",
+ "editor_flip_vertical": "उभे पलटवा",
"email": "ईमेल",
"email_notifications": "ईमेल सूचना",
"empty_folder": "हा फोल्डर रिकामा आहे",
@@ -1128,9 +1238,9 @@
"login_form_failed_login": "लॉगिन करताना त्रुटी, सर्व्हर URL, ईमेल आणि पासवर्ड तपासा",
"login_form_handshake_exception": "सर्व्हरसह handshake exception आली. तुम्ही self-signed प्रमाणपत्र वापरत असाल तर सेटिंग्जमध्ये self-signed प्रमाणपत्र समर्थन सक्षम करा.",
"login_form_password_hint": "पासवर्ड",
- "login_form_server_empty": "सर्व्हर URL भरा.",
- "login_form_server_error": "सर्व्हरशी जोडता आले नाही.",
- "login_has_been_disabled": "लॉगिन बंद केले आहे.",
+ "login_form_server_empty": "सर्व्हर URL भरा",
+ "login_form_server_error": "सर्व्हरशी जोडता आले नाही",
+ "login_has_been_disabled": "लॉगिन बंद केले आहे",
"login_password_changed_error": "पासवर्ड अपडेट करताना त्रुटी आली",
"login_password_changed_success": "पासवर्ड यशस्वीपणे अपडेट झाला",
"logout_all_device_confirmation": "तुम्हाला नक्की सर्व डिव्हाइसवरून लॉग आऊट करायचे आहे का?",
@@ -1495,7 +1605,7 @@
"reset_pin_code_description": "तुमचा PIN विसरला असल्यास, तो रीसेट करण्यासाठी सर्व्हर प्रशासकाशी संपर्क साधा",
"reset_pin_code_with_password": "पासवर्डने तुम्ही नेहमी PIN कोड रीसेट करू शकता",
"reset_sqlite": "SQLite डेटाबेस रीसेट करा",
- "reset_sqlite_confirmation": "तुम्हाला नक्की SQLite डेटाबेस रीसेट करायचा आहे का? डेटा पुन्हा समक्रमित करण्यासाठी तुम्हाला लॉगआउट करून पुन्हा लॉगइन करावे लागेल",
+ "reset_sqlite_confirmation": "तुम्हाला नक्की SQLite डेटाबेस रीसेट करायचा आहे का? डेटा पुन्हा समक्रमित करण्यासाठी तुम्हाला लॉगआउट करून पुन्हा लॉगइन करावे लागेल.",
"reset_sqlite_success": "SQLite डेटाबेस यशस्वीरीत्या रीसेट केला",
"reset_to_default": "डीफॉल्टवर रीसेट करा",
"resolution": "रेझोल्यूशन",
diff --git a/i18n/ms.json b/i18n/ms.json
index adbe98e86e..2190b115f1 100644
--- a/i18n/ms.json
+++ b/i18n/ms.json
@@ -72,6 +72,7 @@
"cron_expression_description": "Tetapkan selang imbasan menggunakan format cron. Untuk maklumat lanjut, sila rujuk ke sebagai contoh Crontab Guru",
"cron_expression_presets": "Pratetap-pratetap ungkapan Cron",
"disable_login": "Lumpuhkan fungsi log masuk",
+ "download_csv": "Muat turun CSV",
"duplicate_detection_job_description": "Jalankan pembelajaran mesin pada aset untuk mengesan imej yang serupa. Bergantung pada Carian Pintar",
"exclusion_pattern_description": "Corak pengecualian membolehkan anda mengabaikan fail dan folder semasa mengimbas pustaka anda. Ini berguna jika anda mempunyai folder yang mengandungi fail yang anda tidak mahu import, seperti fail RAW.",
"export_config_as_json_description": "Muat turun konfigurasi sistem semasa sebagai fail JSON",
@@ -104,6 +105,9 @@
"image_thumbnail_quality_description": "Kualiti lakaran kenit daripada 1-100. Lebih tinggi adalah lebih baik, tetapi menghasilkan fail yang lebih besar dan boleh mengurangkan responsif apl.",
"image_thumbnail_title": "Tetapan Lakaran Kenit",
"import_config_from_json_description": "Import konfigurasi sistem melalui muat naik fail JSON",
+ "integrity_checks_checksum_files_time_limit": "Had masa",
+ "integrity_checks_missing_files": "Fail hilang",
+ "integrity_checks_missing_files_description": "Tetapkan pengaktifan dan kekerapan penyemak fail hilang",
"job_concurrency": "Konkurensi {job}",
"job_created": "Tugas yang dicipta",
"job_not_concurrency_safe": "Konkurensi tugas ini tidak selamat.",
@@ -131,6 +135,7 @@
"logging_enable_description": "Dayakan pengelogan",
"logging_level_description": "Apabila didayakan, tahap log yang hendak digunakan.",
"logging_settings": "Log",
+ "machine_learning_availability_checks_description": "Kesan dan pilih pelayan kecerdasan buatan secara automatik",
"machine_learning_clip_model": "Model CLIP",
"machine_learning_clip_model_description": "Nama model CLIP disenaraikan di sini. Ambil perhatian bahawa anda mesti menjalankan semula tugas 'Carian Pintar' untuk semua imej selepas menukar model.",
"machine_learning_duplicate_detection": "Pengesanan Pendua",
@@ -153,11 +158,14 @@
"machine_learning_min_detection_score_description": "Skor keyakinan minimum untuk wajah dikesan dari 0-1. Nilai yang lebih rendah akan mengesan lebih banyak muka tetapi mungkin menghasilkan positif palsu.",
"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_ocr": "OCR",
+ "machine_learning_ocr_description": "Gunakan kecerdasan buatan untuk mengesan tulisan dalam gambar",
"machine_learning_ocr_enabled": "Dayakan OCR",
"machine_learning_ocr_enabled_description": "Jika dinyahdayakan, imej tidak akan melalui pengecaman teks.",
- "machine_learning_ocr_max_resolution": "Resolusi Maksimum",
+ "machine_learning_ocr_max_resolution": "Resolusi maksimum",
"machine_learning_ocr_max_resolution_description": "Pratonton yang melebihi resolusi ini akan diubah saiz sambil mengekalkan nisbah aspek. Nilai yang lebih tinggi adalah lebih tepat, tetapi mengambil masa pemprosesan yang lebih lama dan menggunakan lebih banyak memori.",
"machine_learning_ocr_model": "Model OCR",
+ "machine_learning_ocr_model_description": "Model \"server\" lebih tepat berbanding model \"mobile\", tetapi proses lebih panjang dan menggunakan lebih memori.",
"machine_learning_settings": "Tetapan Pembelajaran Mesin",
"machine_learning_settings_description": "Urus ciri dan tetapan pembelajaran mesin",
"machine_learning_smart_search": "Carian Pintar",
@@ -165,6 +173,12 @@
"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 mengikut turutan, dari yang pertama hingga yang terakhir, sehingga salah satu memberi maklum balas yang berjaya. Pelayan yang tidak memberi maklum balas akan diabaikan sementara sehingga ia kembali dalam talian.",
+ "maintenance_integrity_checksum_mismatch": "Checksum Tidak Sepadan",
+ "maintenance_integrity_missing_file": "Fail-fail Hilang",
+ "maintenance_integrity_missing_file_description": "Fail yang dikesan Immich didalam pangkalan data, tetapi tidak wujud didalam sistem.",
+ "maintenance_integrity_missing_file_job": "Periksa fail yang hilang",
+ "maintenance_integrity_missing_file_refresh_job": "Kemaskini laporan fail-fail hilang",
+ "maintenance_integrity_report": "Laporan integriti",
"maintenance_settings": "Penyelenggaraan",
"maintenance_settings_description": "Letak Immich ke dalam mod penyelenggaraan",
"maintenance_start": "Mulakan mod penyelenggaraan",
@@ -219,6 +233,8 @@
"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_secure": "SMTPS",
+ "notification_email_secure_description": "Gunakan SMTPS (SMTP diatas TLS)",
"notification_email_sent_test_email_button": "Hantar e-mel ujian dan simpan",
"notification_email_setting_description": "Tetapan-tetapan untuk menghantar notifikasi e-mel",
"notification_email_test_email": "Hantar e-mel ujian",
@@ -235,6 +251,7 @@
"oauth_button_text": "Teks butang",
"oauth_client_secret_description": "Diperlukan jika PKCE (Proof Key for Code Exchange) tidak disokong oleh penyedia OAuth",
"oauth_enable_description": "Log masuk dengan OAuth",
+ "oauth_end_session_url_description": "Alihkan pengguna ke URI ini apabila mereka log keluar.",
"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}''",
@@ -251,6 +268,7 @@
"oauth_storage_quota_default_description": "Kuota dalam GiB yang akan digunakan jika tiada tuntutan disediakan.",
"oauth_timeout": "Had Masa Permintaan",
"oauth_timeout_description": "Had masa untuk permintaan dalam milisaat",
+ "ocr_job_description": "Gunakan kecerdasan buatan untuk mengesan teks didalam gambar",
"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",
@@ -260,6 +278,7 @@
"refreshing_all_libraries": "Menyegarkan semua perpustakaan",
"registration": "Pendaftaran Pentadbir",
"registration_description": "Memandangkan anda adalah pengguna pertama pada sistem, anda akan ditugaskan sebagai Pentadbir dan bertanggungjawab untuk tugas pentadbiran, serta pengguna tambahan yang akan anda tambah.",
+ "release_channel_release_candidate": "Release candidate",
"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",
@@ -351,6 +370,14 @@
"transcoding_preferred_hardware_device_description": "Terpakai hanya untuk VAAPI dan QSV. Menetapkan nod dri yang digunakan untuk transkod perkakasan.",
"transcoding_preset_preset": "Pratetap (-preset)",
"transcoding_preset_preset_description": "Kelajuan mampatan. Pratetap yang lebih perlahan menghasilkan fail yang lebih kecil dan meningkatkan kualiti apabila pada kadar bit tertentu. VP9 mengabaikan kelajuan di atas 'lebih cepat'.",
+ "transcoding_realtime": "Transkod Masa Nyata [PERCUBAAN]",
+ "transcoding_realtime_description": "Benarkan transkod dibuat pada masa nyata semasa video sedang ditonton. Membolehkan kualiti ditukar, tetapi video mungkin lambat dimainkan dan tersangkut-sangkut bergantung kepada keupayaan pelayan.",
+ "transcoding_realtime_enabled": "Aktifkan transkod masa nyata",
+ "transcoding_realtime_enabled_description": "Jika dinyahaktifkan, pelayan akan enggan memulakan sesi transkod masa nyata.",
+ "transcoding_realtime_resolutions": "Resolusi",
+ "transcoding_realtime_resolutions_description": "Resolusi yang ditawarkan untuk transkod masa nyata. Resolusi tinggi mungkin akan menjadi isu jika pelayan tidak cukup berupaya.",
+ "transcoding_realtime_video_codecs": "Kodek video",
+ "transcoding_realtime_video_codecs_description": "Kodek video yang ditawarkan untuk transkod masa nyata. Pemain video akan menggunakan kodek terbaik yang disokong. AV1 lebih cekap berbanding HEVC, HEVC lebih cekap berbanding H.264. Bila gunakan pecutan perkakasan, hanya pilih kodek yang disokong pemecut. Bila transkod gunakan pecutan perisian, maklum bahawa H.264 lebih pantas berbanding AV1, yang lebih pantas berbanding HEVC.",
"transcoding_reference_frames": "Bingkai rujukan",
"transcoding_reference_frames_description": "Bilangan bingkai untuk dirujuk semasa memampatkan bingkai yang diberikan. Nilai yang lebih tinggi meningkatkan kecekapan mampatan, tetapi memperlahankan pengekodan. 0 menetapkan nilai ini secara automatik.",
"transcoding_required_description": "Hanya untuk video yang tidak dalam format yang diterima",
@@ -365,7 +392,7 @@
"transcoding_tone_mapping": "Pemetaan nada",
"transcoding_tone_mapping_description": "Percubaan untuk mengekalkan penampilan video HDR apabila ditukar kepada SDR. Setiap algoritma membuat pertukaran yang berbeza untuk warna, perincian dan kecerahan. Hable mengekalkan perincian, Mobius mengekalkan warna, dan Reinhard mengekalkan kecerahan.",
"transcoding_transcode_policy": "Dasar transkod",
- "transcoding_transcode_policy_description": "Dasar untuk bila video perlu ditranskod. Video HDR akan sentiasa ditranskod (kecuali jika pengekodan semula dinyahdayakan).",
+ "transcoding_transcode_policy_description": "Dasar untuk bila video perlu ditranskod. Video HDR serta video dengan format selain YUV 4:2:0 akan sentiasa ditranskod (kecuali jika transkod dinyahdayakan).",
"transcoding_two_pass_encoding": "Pengekodan dua lelaran",
"transcoding_two_pass_encoding_setting_description": "Transkod dalam dua lelaran untuk menghasilkan video yang ditranskod dengan kualiti lebih baik. Apabila kadar bit maksimum diaktifkan (diperlukan untuk berfungsi dengan H.264 dan HEVC), mod ini akan menggunakan julat kadar bit berdasarkan kadar bit maksimum dan mengabaikan CRF. Untuk VP9, CRF boleh digunakan jika kadar bit maksimum dinyahdayakan.",
"transcoding_video_codec": "Kodek video",
@@ -389,6 +416,9 @@
"user_restore_scheduled_removal": "Pulihkan pengguna – pemadaman dijadualkan pada {date, date, long}",
"user_settings": "Tetapan Pengguna",
"user_settings_description": "Urus tetapan pengguna",
+ "user_successfully_removed": "Pengguna {email} berjaya dihapuskan.",
+ "version_check_channel": "Saluran pelepasan",
+ "version_check_channel_description": "Pilih saluran pelepasan perisian yang anda mahu untuk menerima pengumuman versi",
"version_check_enabled_description": "Dayakan semakan versi",
"version_check_implications": "Ciri semakan versi bergantung kepada komunikasi berkala dengan {server}",
"version_check_settings": "Semakan Versi",
@@ -400,6 +430,9 @@
"admin_password": "Kata laluan Pentadbir",
"administration": "Pentadbiran",
"advanced": "Lanjutan",
+ "advanced_settings_clear_image_cache": "Bersihkan Cache Gambar",
+ "advanced_settings_clear_image_cache_error": "Gagal bersihkan cache gambar",
+ "advanced_settings_clear_image_cache_success": "Berjaya bersihkan {size}",
"advanced_settings_log_level_title": "Tahap log: {level}",
"advanced_settings_prefer_remote_subtitle": "Sesetengah peranti sangat perlahan untuk memuatkan imej kecil daripada aset lokal. Aktifkan tetapan ini untuk memuatkan imej dari jauh sebagai gantinya.",
"advanced_settings_prefer_remote_title": "Utamakan imej jauh",
@@ -412,19 +445,203 @@
"advanced_settings_troubleshooting_title": "Menyelesaikan masalah",
"age_months": "Umur {bulan, plural, satu {# bulan} lain {# bulan}}",
"age_year_months": "Umur 1 tahun, {bulan, plural, satu {# bulan} lain {# bulan}}",
+ "album": "Album",
"album_added": "Album telah ditambah",
"album_added_notification_setting_description": "Terima pemberitahuan e-mel apabila anda ditambah ke album perkongsian",
"album_cover_updated": "Album dikemas kini",
+ "album_delete_confirmation": "Anda pasti untuk hapuskan album {album}?",
+ "album_delete_confirmation_description": "Jika album ini pernah dikongsi, pengguna lain tidak boleh mengaksesnya lagi.",
+ "album_deleted": "Album dihapuskan",
+ "album_info_updated": "Maklumat album dikemas kini",
"album_name": "Nama Album",
"album_remove_user": "Buang pengguna?",
"album_remove_user_confirmation": "Adakah anda pasti mahu membuang {user}?",
+ "album_search_not_found": "Tiada album yang sepadan dengan carian",
"album_share_no_users": "Nampaknya anda telah berkongsi album ini dengan semua pengguna atau anda tidak mempunyai mana-mana pengguna untuk dikongsi.",
+ "album_summary": "Ringkasan album",
"album_updated": "Album dikemas kini",
"album_updated_setting_description": "Terima pemberitahuan e-mel apabila album perkongsian mempunyai aset baharu",
+ "album_upload_assets": "Muat naik aset daripada komputer anda dan tambahkan kedalam album",
+ "album_viewer_appbar_share_err_delete": "Gagal menghapuskan album",
+ "album_viewer_page_share_add_users": "Tambah pengguna",
"album_with_link_access": "Benarkan sesiapa yang mempunyai pautan melihat foto dan individu dalam album ini.",
+ "albums": "Album-album",
+ "albums_default_sort_order": "Susunan lalai album",
+ "albums_default_sort_order_description": "Susunan lalai aset apabila membuat album baru.",
+ "albums_feature_description": "Koleksi aset yang boleh dikongsi dengan pengguna lain.",
+ "albums_on_device_count": "Album pada peranti ({count})",
+ "all": "Semua",
+ "all_albums": "Semua album",
+ "all_photos": "Semua gambar",
+ "all_videos": "Semua video",
+ "allow_dark_mode": "Benarkan mod gelap",
+ "allow_public_user_to_download": "Benarkan pengguna awam untuk muat turun",
+ "allow_public_user_to_upload": "Benarkan pengguna awam untuk muat naik",
+ "allowed": "Dibenarkan",
+ "alt_text_qr_code": "Gambar QR kod",
+ "api_key": "Kunci API",
+ "api_key_description": "Kunci ini hanya ditunjukkan sekali sahaja. Pastikan anda simpan sebelum tutup tetingkap ini.",
+ "api_key_empty": "Nama bagi Kekunci API perlu diisi",
+ "api_keys": "Kekunci API",
+ "app_bar_signout_dialog_content": "Adakah anda pasti untuk log keluar?",
+ "app_bar_signout_dialog_title": "Log keluar",
+ "app_download_links": "Pautan Muat Turun Aplikasi",
+ "app_settings": "Tetapan App",
+ "app_update_available": "Kemaskini aplikasi tersedia",
+ "archive": "Arkib",
+ "archive_action_prompt": "{count} ditambah ke Arkib",
+ "archive_or_unarchive_photo": "Arkibkan atau nyaharkib gambar",
+ "archive_size": "Saiz Arkib",
+ "archive_size_description": "Tetapkan saiz arkib untuk muat turun (GiB)",
+ "archived": "Diarkibkan",
+ "are_these_the_same_person": "Adakah ini orang yang sama?",
+ "are_you_sure_to_do_this": "Anda pasti?",
+ "asset_added_to_album": "Ditambah ke album",
+ "asset_adding_to_album": "Menambahkan ke album…",
+ "asset_created": "Aset dicipta",
+ "asset_description_updated": "Penerangan aset dikemaskini",
+ "asset_list_layout_settings_group_by_month_day": "Bulan + hari",
+ "asset_list_layout_sub_title": "Susun atur",
+ "asset_not_found_on_device_android": "Aset tidak ditemui pada peranti",
+ "asset_not_found_on_device_ios": "Aset tidak ditemui pada peranti. Jika anda gunakan iCloud, aset mungkin tidak boleh diakses disebabkan oleh fail bermasalah yang disimpan di iCloud",
+ "asset_not_found_on_icloud": "Aset tidak ditemui pada iCloud, yang mungkin disebabkan oleh fail bermasalah yang disimpan di iCloud",
+ "asset_offline": "Aset Diluar Talian",
+ "asset_offline_description": "Aset luar tidak lagi dijumpai pada cakera. Hubungi admin Immich anda untuk bantuan.",
+ "asset_uploaded": "Telah dimuat naik",
+ "asset_uploading": "Dimuat naik…",
+ "assets": "Aset-aset",
+ "automatic_endpoint_switching_subtitle": "Sambung ke pelayan secara lokal melalui Wi-Fi yang ditetapkan dan gunakan sambungan alternatif selainnya",
+ "automatic_endpoint_switching_title": "Penukaran URL automatik",
+ "autoplay_slideshow": "Mainkan tayangan slaid",
+ "back": "Kembali",
+ "backup": "Sandaran",
+ "backup_album_selection_page_assets_scatter": "Aset mungkin tersebar pada banyak album. Oleh itu, album boleh dipilih atau dikecualikan semasa proses sandaran.",
+ "backup_album_selection_page_select_albums": "Pilih album",
+ "backup_album_selection_page_selection_info": "Maklumat pilihan",
+ "backup_background_service_complete_notification": "Sandaran aset selesai",
+ "backup_background_service_default_notification": "Sedang memeriksa aset baharu…",
+ "backup_background_service_in_progress_notification": "Sedang membuat sandaran aset anda…",
+ "backup_controller_page_albums": "Buat Sandaran Album",
+ "backup_controller_page_background_battery_info_link": "Tunjuk saya caranya",
+ "backup_controller_page_background_battery_info_ok": "OK",
+ "backup_controller_page_backup": "Sandaran",
+ "backup_controller_page_backup_selected": "Pilihan: ",
+ "backup_controller_page_excluded": "Pengecualian: ",
+ "backup_controller_page_none_selected": "Tiada yang dipilih",
+ "backup_controller_page_remainder": "Peringatan",
+ "backup_controller_page_remainder_sub": "Baki gambar dan video untuk sandaran daripada pilihan",
+ "backup_controller_page_server_storage": "Ruang Simpanan Pelayan",
+ "backup_controller_page_to_backup": "Album yang hendak disandarkan",
+ "backup_info_card_assets": "aset",
+ "backup_options": "Tetapan Sandaran",
+ "backup_settings_subtitle": "Tetapan muat naik",
+ "biometric_auth_enabled": "Pengesahan biometrik diaktifkan",
+ "biometric_not_available": "Pengesahan biometrik tidak tersedia pada peranti ini",
+ "birthdate_set_description": "Tarikh lahir digunakan untuk mengira umur beliau pada masa gambar ini diambil.",
+ "bugs_and_feature_requests": "Pepijat & Permintaan",
+ "buy": "Beli Immich",
+ "camera": "Kamera",
+ "camera_brand": "Jenama kamera",
+ "camera_model": "Model kamera",
+ "cancel": "Batal",
+ "cancel_search": "Batalkan carian",
+ "canceled": "Dibatalkan",
+ "canceling": "Sedang membatalkan",
+ "cannot_merge_people": "Tidak boleh gabung orang",
+ "cannot_undo_this_action": "Tindakan ini tidak boleh dibatalkan!",
+ "cannot_update_the_description": "Gagal kemaskini penerangan",
+ "change": "Ubah",
+ "change_date": "Ubah tarikh",
+ "change_description": "Ubah penerangan",
+ "change_display_order": "Ubah susunan paparan",
+ "change_location": "Ubah lokasi",
+ "change_name": "Ubah nama",
+ "change_name_successfully": "Nama telah ditukar",
+ "change_password": "Tukar Kata Laluan",
+ "change_password_description": "Katalaluan baru diperlukan kerana ini adalah kali pertama anda log masuk atau pemohonan kata laluan diubah pernah dibuat. Letakkan katalaluan baru dibawah.",
+ "change_password_form_confirm_password": "Sahkan Katalaluan",
+ "change_password_form_description": "Hi {name},\n\nKatalaluan perlu diubah kerana ini mungkin kali pertama anda log masuk atau permohonan untuk tukar katalaluan telah dibuat. Sila masukkan katalaluan baru dibawah.",
+ "change_password_form_log_out": "Log keluar kesemua peranti lain",
+ "change_password_form_log_out_description": "Disyorkan untuk log keluar kesemua peranti lain",
+ "change_password_form_new_password": "Katalaluan baru",
+ "change_password_form_password_mismatch": "Katalaluan tidak sepadan",
+ "change_password_form_reenter_new_password": "Masukkan semula Katalaluan",
+ "change_pin_code": "Tukar kod PIN",
+ "change_your_password": "Tukar Katalaluan",
+ "check_logs": "Periksa Log",
+ "choose": "Pilih",
+ "choose_matching_people_to_merge": "Pilih orang yang sepadan untuk digabungkan",
+ "city": "Bandar",
+ "cleanup_confirm_description": "Immich menemui{count} aset (dicipta sebelum {date}) yang selamat disimpan didalam pelayan. Buang salinan daripada peranti ini?",
+ "cleanup_confirm_prompt_title": "Buang daripada peranti ini?",
+ "cleanup_preview_title": "Aset untuk dibuang ({count})",
+ "clear": "Bersihkan",
+ "clear_all": "Bersihkan semua",
+ "clear_all_recent_searches": "Bersihkan semua carian terkini",
+ "clear_failed_count": "Gagal dibersihkan ({count})",
+ "clear_file_cache": "Bersihkan Cache Fail",
+ "clear_message": "Padam mesej",
+ "clear_value": "Padam nilai",
+ "client_cert_import": "Import",
+ "client_cert_password_message": "Masukkan katalaluan bagi sijil ini",
+ "client_cert_password_title": "Katalaluan Sijil",
+ "client_cert_subtitle": "Menyokong format PKCS12 (.p12, .pfx) sahaja. Import/hapus sijil hanya tersedia sebelum log masuk",
+ "client_cert_title": "Sijil SSL [PERCUBAAN]",
+ "close": "Tutup",
+ "color": "Warna",
+ "command": "Arahan",
+ "comment_deleted": "Arahan dipadam",
+ "comment_options": "Tetapan komen",
+ "comments_and_likes": "Komen & suka",
+ "comments_are_disabled": "Komen tidak diaktifkan",
+ "common_create_new_album": "Cipta album baru",
+ "completed": "Selesai",
+ "configuration": "Tetapan",
+ "confirm": "Pasti",
+ "confirm_delete_face": "Anda pasti untuk padam wajah {name} daripada aset?",
+ "confirm_delete_shared_link": "Anda pasti untuk menghapuskan pautan awam ini?",
+ "confirm_new_pin_code": "Sahkan PIN kod baru",
+ "confirm_password": "Sahkan katalaluan",
+ "confirm_tag_face": "Anda mahu tandakan wajah ini sebagai {name}?",
+ "confirm_tag_face_unnamed": "Adakah anda mahu tandakan wajah ini?",
+ "connected_device": "Peranti yang terhubung",
+ "context": "Konteks",
+ "control_bottom_app_bar_add_tags": "Tambah Tag",
+ "control_bottom_app_bar_delete_from_local": "Buang daripada peranti",
+ "control_bottom_app_bar_edit_location": "Ubah Lokasi",
+ "control_bottom_app_bar_edit_time": "Ubah Tarikh & Masa",
+ "control_bottom_app_bar_trash_from_immich": "Buang ke tong sampah",
+ "copy_image": "Salin Gambar",
+ "copy_json": "Salin JSON",
+ "copy_link": "Salin pautan",
+ "copy_password": "Salin katalaluan",
+ "country": "Negara",
+ "create": "Cipta",
+ "create_album": "Cipta album",
+ "create_api_key": "Cipta kunci API",
+ "create_first_workflow": "Bina aliran kerja",
+ "create_link": "Cipta pautan",
+ "create_link_to_share": "Cipta pautan untuk kongsi",
+ "create_link_to_share_description": "Semua yang mempunyai pautan boleh lihat gambar yang dipilih",
+ "create_new_person": "Tambah orang baru",
+ "create_new_user": "Tambah pengguna baru",
+ "create_person": "Tambah orang",
+ "create_person_subtitle": "Isikan nama pada wajah yang dipilih untuk tambah pada orang baru",
+ "create_shared_album_page_share_select_photos": "Pilih Gambar",
+ "create_shared_link": "Cipta pautan kongsi",
+ "crop_aspect_ratio_original": "Asal",
+ "current_device": "Peranti semasa",
+ "current_pin_code": "Kod PIN semasa",
+ "current_server_address": "Alamat pelayan semasa",
+ "dark": "Gelap",
+ "dark_theme": "Tukar ke tema gelap",
+ "date": "Tarikh",
+ "date_and_time": "Tarikh dan Masa",
+ "date_before": "Tarikh sebelum",
"date_of_birth": "Tarikh lahir",
"date_of_birth_saved": "Tarikh lahir berjaya disimpan",
"date_range": "Julat tarikh",
+ "date_time_original": "Tarikh/Masa Asli",
"day": "Hari",
"days": "Hari-hari",
"delete": "Padam",
@@ -433,22 +650,28 @@
"delete_api_key_prompt": "Adakah anda pasti mahu memadam kunci API ini?",
"delete_dialog_alert": "Item berikut akan dipadam selama-lamanya dari Immich dan peranti anda",
"delete_dialog_alert_local": "Item berikut akan dipadam selama-lamanya dari peranti anda, tetapi masih akan ada di pelayan Immich",
+ "delete_dialog_alert_local_non_backed_up": "Sebahagian item tiada sandaran di Immich dan akan dihapuskan secara kekal daripada peranti anda",
+ "delete_dialog_title": "Hapuskan Terus",
"delete_duplicates_confirmation": "Adakah anda pasti mahu memadam pendua ini secara kekal?",
+ "delete_face": "Hapuskan wajah",
"delete_key": "Padam kunci",
"delete_library": "Padam Pustaka",
"delete_link": "Padam pautan",
"delete_others": "Padam yang lain",
"delete_shared_link": "Padam pautan yang dikongsi",
+ "delete_shared_link_dialog_title": "Hapuskan pautan kongsi",
"delete_tag": "Padam tag",
"delete_tag_confirmation_prompt": "Adakah anda pasti mahu memadam tag {tagName}?",
"delete_user": "Padam pengguna",
"deleted_shared_link": "Pautan kongsi yang dipadamkan",
"description": "Penerangan",
+ "deselect_all": "Nyahpilih semua",
"details": "Butiran",
"direction": "Arah",
"disabled": "Dilumpuhkan",
"discord": "Perselisihan",
"discover": "Terokai",
+ "discovered_devices": "Peranti yang ditemui",
"dismiss_all_errors": "Tolak semua ralat",
"display_options": "Pilihan paparan",
"display_order": "Tertib paparan",
@@ -458,9 +681,102 @@
"documentation": "Dokumentasi",
"done": "Selesai",
"download": "Muat Turun",
+ "download_canceled": "Muat turun dibatalkan",
+ "download_complete": "Muat turun selesai",
+ "download_failed": "Muat turun gagal",
+ "download_finished": "Muat turun selesai",
+ "download_notfound": "Muat turun tidak ditemui",
+ "download_original": "Muat turun asli",
"download_settings": "Muat Turun",
"download_settings_description": "Urus tetapan yang berkaitan dengan muat turun aset",
+ "download_waiting_to_retry": "Tunggu untuk cubaan seterusnya",
"downloading": "Memuat turun",
+ "downloading_asset_filename": "Sedang memuat turun aset {filename}",
+ "downloading_from_icloud": "Sedang memuat turun daripada iCloud",
+ "downloading_media": "Sedang memuat turun media",
+ "duration": "Tempoh",
+ "edit_location_dialog_title": "Lokasi",
+ "edit_name": "Ubah nama",
+ "edit_people": "Ubah orang",
+ "edit_tag": "Ubah tag",
+ "edit_title": "Ubah tajuk",
+ "editor": "Penyunting",
+ "editor_discard_edits_confirm": "Buang suntingan",
+ "editor_discard_edits_prompt": "Suntingan anda belum disimpan. Anda mahu membuangnya?",
+ "editor_discard_edits_title": "Buang suntingan?",
+ "editor_edits_applied_error": "Gagal simpan suntingan",
+ "editor_edits_applied_success": "Suntingan berjaya disimpan",
+ "editor_flip_horizontal": "Terbalikkan secara horizontal",
+ "editor_flip_vertical": "Terbalikkan secara vertikal",
+ "editor_reset_all_changes": "Tetapan semula",
+ "editor_rotate_left": "Pusing 90° lawan jam",
+ "editor_rotate_right": "Pusing 90° arah jam",
+ "email": "Emel",
+ "empty_folder": "Folder ini kosong",
+ "empty_trash": "Bersihkan tong sampah",
+ "empty_trash_confirmation": "Anda pasti mahu bersihkan tong sampah? Ia akan menghapuskan aset secara kekal daripada Immich.\nTindakan ini tidak boleh dibatalkan!",
+ "enable": "Aktifkan",
+ "enable_backup": "Aktifkan Sandaran",
+ "enable_biometric_auth_description": "Masukkan PIN kod anda untuk aktifkan pengesahan biometrik",
+ "enabled": "Diaktifkan",
+ "enter_wifi_name": "Masukkan nama Wi-Fi",
+ "enter_your_pin_code": "Masukkan PIN kod anda",
+ "enter_your_pin_code_subtitle": "Masukkan PIN kod untuk mengakses folder berkunci",
+ "error": "Ralat",
+ "error_delete_face": "Ralat hapuskan wajah daripada aset",
+ "error_loading_albums": "Ralat semasa memuat album",
+ "error_loading_image": "Ralat semasa memuat gambar",
+ "error_retrieving_asset_information": "Ralat memuat maklumat aset",
+ "error_saving_image": "Ralat: {error}",
+ "error_tag_face_bounding_box": "Ralat menanda wajah - gagal mendapatkan koordinat petak sempadan",
+ "error_title": "Ralat - Sesuatu tidak kena",
+ "error_while_navigating": "Ralat semasa navigasi ke aset",
+ "errors": {
+ "cannot_navigate_next_asset": "Tidak boleh navigasi ke aset berikutnya",
+ "cannot_navigate_previous_asset": "Tidak boleh navigasi ke aset sebelumnya",
+ "cant_apply_changes": "Tidak boleh membuat perubahan",
+ "cant_get_faces": "Gagal mendapakan wajah",
+ "cant_get_number_of_comments": "Gagal mendapatkan bilangan komen",
+ "error_adding_assets_to_album": "Ralat menambah aset kedalam album",
+ "error_adding_users_to_album": "Ralat menambah pengguna album",
+ "error_downloading": "Ralat memuat turun {filename}",
+ "error_hiding_buy_button": "Ralat menyorokkan butang beli",
+ "error_removing_assets_from_album": "Ralat membuang aset daripada album, lihat konsol untuk maklumat lanjut",
+ "error_selecting_all_assets": "Ralat memilih semua aset",
+ "exclusion_pattern_already_exists": "Corak pengecualian ini telah wujud.",
+ "failed_to_create_album": "Gagal membuat album baru",
+ "failed_to_create_shared_link": "Gagal mencipta pautan kongsi",
+ "failed_to_edit_shared_link": "Gagal menyunting pautan kongsi",
+ "failed_to_get_people": "Gagal mendapatkan maklumat orang",
+ "failed_to_load_asset": "Gagal memuat aset",
+ "failed_to_load_assets": "Gagal memuat aset-aset",
+ "failed_to_remove_product_key": "Gagal membuang kunci produk",
+ "failed_to_reset_pin_code": "Gagal menetapkan semula PIN kod",
+ "incorrect_email_or_password": "Emel atau katalaluan salah",
+ "page_not_found": "Halaman tidak ditemui"
+ },
+ "language": "Bahasa",
+ "language_search_hint": "Cari bahasa…",
+ "last": "Akhir",
+ "latest_version": "Versi Terkini",
+ "latitude": "Latitud",
+ "leave": "Tinggalkan",
+ "leave_album": "Tinggalkan album",
+ "lens_model": "Model lensa",
+ "less": "Kurang",
+ "library_add_folder": "Tambah folder",
+ "library_edit_folder": "Sunting folder",
+ "library_page_sort_asset_count": "Bilangan aset",
+ "library_page_sort_title": "Tajuk album",
+ "light": "Cerah",
+ "light_theme": "Tukar ke tema cerah",
+ "like": "Suka",
+ "link": "Pautan",
+ "link_to_docs": "Untuk maklumat lanjut, rujuk dokumentasi.",
+ "link_to_oauth": "Pautkan dengan OAuth",
+ "linked_oauth_account": "Akaun OAuth yang terpaut",
+ "list": "Senarai",
+ "loading": "Sedang memuatkan",
"search_by_description": "Carian secara huraian",
"search_by_description_example": "Hari mendaki di Sapa",
"some_assets_already_have_a_location_warning": "Beberapa aset yang dipilih telah memiliki lokasi",
diff --git a/i18n/nb_NO.json b/i18n/nb_NO.json
index ebb9f05aee..b699f0e43a 100644
--- a/i18n/nb_NO.json
+++ b/i18n/nb_NO.json
@@ -5,26 +5,26 @@
"acknowledge": "Bekreft",
"action": "Handling",
"action_common_update": "Oppdater",
- "action_description": "Ett sett handlinger som skal utføres på de filtrerte mediefilene",
+ "action_description": "Et sett med handlinger som skal utføres på de filtrerte mediefilene",
"actions": "Handlinger",
"active": "Aktiv",
"active_count": "Aktiv: {count}",
"activity": "Aktivitet",
"add": "Legg til",
"add_a_description": "Legg til beskrivelse",
- "add_a_location": "Legg til sted",
+ "add_a_location": "Legg til plassering",
"add_a_name": "Legg til navn",
"add_a_title": "Legg til tittel",
- "add_action": "Legg til hendelse",
+ "add_action": "Legg til handling",
"add_assets": "Legg til mediefiler",
"add_birthday": "Legg til bursdag",
"add_endpoint": "Legg til endepunkt",
"add_exclusion_pattern": "Legg til ekskluderingsmønster",
- "add_location": "Legg til sted",
+ "add_location": "Legg til plassering",
"add_partner": "Legg til partner",
"add_photos": "Legg til bilder",
"add_step": "Legg til steg",
- "add_tag": "Legg til merkelapp",
+ "add_tag": "Legg til merke",
"add_to": "Legg til i…",
"add_to_album": "Legg til album",
"add_to_album_bottom_sheet_added": "Lagt til i {album}",
@@ -33,7 +33,7 @@
"add_to_albums": "Legg til i album",
"add_to_albums_count": "Legg til i album ({count})",
"add_to_bottom_bar": "Legg til i",
- "add_upload_to_stack": "Legg til opplasting i stakken",
+ "add_upload_to_stack": "Legg opplastingen til i stabel",
"add_url": "Legg til URL",
"added_to_archive": "Lagt til i arkivet",
"added_to_favorites": "Lagt til favoritter",
@@ -42,49 +42,49 @@
"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 \"/filsti/til/ignorer/**\".",
"admin_user": "Administrasjonsbruker",
"asset_offline_description": "Dette eksterne bibliotekselementet finnes ikke lenger på disk og har blitt flyttet til papirkurven. Hvis filen ble flyttet innad i biblioteket, se etter det tilsvarende elementet i tidslinjen din. For å gjenopprette elementet, vennligst sørg for at filstien under er tilgjengelig for Immich og skann biblioteket.",
- "authentication_settings": "Godkjenings Instillinger",
- "authentication_settings_description": "Administrer passord, OAuth, og andre innstillinger for autentiserings Instilinger",
+ "authentication_settings": "Autentiseringsinnstillinger",
+ "authentication_settings_description": "Administrer passord, OAuth, og andre autentiseringsinnstillinger",
"authentication_settings_disable_all": "Er du sikker på at du ønsker å deaktivere alle innloggingsmetoder? Innlogging vil bli fullstendig deaktivert.",
"authentication_settings_reenable": "For å aktivere på nytt, bruk en Server Command.",
- "background_task_job": "Bakgrunnsjobber",
+ "background_task_job": "Bakgrunnsoppgaver",
"backup_database": "Opprett database-dump",
"backup_database_enable_description": "Aktiver database-dump",
"backup_keep_last_amount": "Antall database-dumps å beholde",
"backup_onboarding_1_description": "ekstern kopi i skyen eller på et annet fysisk sted.",
"backup_onboarding_2_description": "lokale kopier på forskjellige enheter. Dette inkluderer hovedfilene og en lokal sikkerhetskopi av disse filene.",
- "backup_onboarding_3_description": "totale kopier av dataene dine, inkludert originalfilene. Dette inkluderer én ekstern kopi og to lokale kopier.",
+ "backup_onboarding_3_description": "komplette kopier av dataene dine, inkludert originalfilene. Dette inkluderer én ekstern kopi og to lokale kopier.",
"backup_onboarding_description": "En 3-2-1 sikkerhetskopieringsstrategi anbefales for å beskytte dataene dine. Du bør beholde kopier av opplastede bilder/videoer samt Immich-databasen for en omfattende sikkerhetskopieringsløsning.",
"backup_onboarding_footer": "For mer informasjon om sikkerhetskopiering av Immich, se dokumentasjonen.",
"backup_onboarding_parts_title": "En 3-2-1 sikkerhetskopi inkluderer:",
"backup_onboarding_title": "Sikkerhetskopier",
- "backup_settings": "Database-dump",
- "backup_settings_description": "Håndter innstillinger for database-dump.",
- "cleared_jobs": "Ryddet opp jobber for: {job}",
+ "backup_settings": "Database-dump innstillinger",
+ "backup_settings_description": "Administrér innstillinger for database-dump.",
+ "cleared_jobs": "Ryddet opp oppgaver for: {job}",
"config_set_by_file": "Konfigurasjonen er for øyeblikket satt av en konfigurasjonsfil",
"confirm_delete_library": "Vil du virkelig slette biblioteket {library}?",
- "confirm_delete_library_assets": "Vil du virkelig slette dette biblioteket? Dette vil slette alt innhold ({count, plural, one {# element} other {# elementer}}) og tilhørende eiendeler fra Immich og kan ikke angres. Filene vil forbli på disken.",
+ "confirm_delete_library_assets": "Vil du virkelig slette dette biblioteket? Dette vil slette alt innhold ({count, plural, one {# element} other {alle # elementer}}) og tilhørende eiendeler fra Immich og kan ikke angres. Filene vil forbli på disken.",
"confirm_email_below": "For å bekrefte, skriv inn \"{email}\" nedenfor",
"confirm_reprocess_all_faces": "Vil du virkelig behandle alle ansikter på nytt? Dette vil også fjerne navngitte personer.",
"confirm_user_password_reset": "Vil du virkelig tilbakestille passordet til {user}?",
"confirm_user_pin_code_reset": "Vil du virkelig tilbakestille PIN-koden til {user} ?",
- "copy_config_to_clipboard_description": "Kopier nåværende systemkonfigurasjon som ett JSON objekt til utklippsmenyen",
- "create_job": "Lag jobb",
- "cron_expression": "Cron uttrykk",
+ "copy_config_to_clipboard_description": "Kopiér nåværende systemkonfigurasjon som et JSON objekt til utklippsmenyen",
+ "create_job": "Opprett oppgave",
+ "cron_expression": "Cron-uttrykk",
"cron_expression_description": "Still inn skanneintervallet med cron-formatet. For mer informasjon henvises til f.eks. Crontab Guru",
"cron_expression_presets": "Forhåndsinnstillinger for Cron-uttrykk",
"disable_login": "Deaktiver innlogging",
"download_csv": "Last ned CSV",
"duplicate_detection_job_description": "Kjør maskinlæring på filer for å oppdage lignende bilder. Krever bruk av smartsøk",
- "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.",
+ "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 ønsker å importere, som for eksempel RAW-filer.",
"export_config_as_json_description": "Last ned nåværende systemkonfigurasjon som en JSON fil",
"external_libraries_page_description": "Administrering for eksterne bibliotek",
"face_detection": "Ansiktsgjenkjennelse",
- "face_detection_description": "Finn ansikter i bilder ved hjelp av maskinlæring. For videoer brukes bare miniatyrbildet. \"Alle\" går gjennom alle bilder (igjen). \"Tilbakestill\" fjerner all gjeldende ansiktsdata. \"Mangler\" legger til filer som ikke har blitt behandlet enda i køen. Oppdagede ansikter vil blir sendt til ansiktsgjenkjenning, og koblet til eksisterende eller nye personer.",
- "facial_recognition_job_description": "Kobler oppdagede ansikt til personer. Dette utføres etter at ansiktssøk er fullført. \"Tilbakestill\" (om-)grupperer alle ansikt på nytt. \"Mangler\" stiller opp ansikt som ikke har blitt tilordnet en person ennå.",
- "failed_job_command": "Kommandoen {command} feilet for jobb: {job}",
+ "face_detection_description": "Oppdag ansikter i bilder ved hjelp av maskinlæring. For videoer vurderes bare miniatyrbildet. \"Oppdater\" behandler alle mediefiler på nytt. \"Tilbakestill\" fjerner i tillegg all gjeldende ansiktsdata. \"Mangler\" legger i kø filer som ikke har blitt behandlet enda. Oppdagede ansikter vil bli sendt til Ansiktsgjenkjenning etter at Ansiktsoppdagelse er ferdig, som vil gruppere dem til eksisterende eller nyer personer.",
+ "facial_recognition_job_description": "Kobler oppdagede ansikt til personer. Dette utføres etter at Ansiktsoppdagelse er fullført. \"Tilbakestill\" (om-)grupperer alle ansikt på nytt. \"Mangler\" køer ansikter som ikke har blitt tilordnet en person ennå.",
+ "failed_job_command": "Kommandoen {command} feilet for oppgave: {job}",
"force_delete_user_warning": "ADVARSEL: Dette vil umiddelbart fjerne brukeren og alle data. Dette kan ikke angres, og filene kan ikke gjenopprettes.",
"image_format": "Format",
- "image_format_description": "WebP gir mindre filer enn JPEG, men er tregere å lage.",
+ "image_format_description": "WebP produserer mindre filer enn JPEG, men kodes langsommere.",
"image_fullsize_description": "Bilde i full størrelse med strippet metadata, brukt når du zoomer inn",
"image_fullsize_enabled": "Aktiver generering av bilder i full størrelse",
"image_fullsize_enabled_description": "Generer bilder i full størrelse for ikke-nettvennlige formater. Når \"Foretrekk innebygd forhåndsvisning\" er aktivert, brukes innebygde forhåndsvisninger direkte uten konvertering. Påvirker ikke nettvennlige formater som JPEG.",
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Miniatyrbildekvalitet fra 1-100. Høyere er bedre, men produserer større filer og kan redusere appens respons.",
"image_thumbnail_title": "Miniatyrbilde oppsett",
"import_config_from_json_description": "Importer systemkonfigurasjon ved å laste opp en JSON konfigurasjonsfil",
+ "integrity_checks_checksum_files": "Sjekksumfiler",
+ "integrity_checks_checksum_files_description": "Konfigurer sjekksumkontrollen",
+ "integrity_checks_checksum_files_enable_description": "Aktiver sjekksumkontrollen",
+ "integrity_checks_checksum_files_percentage_limit": "Prosentgrense",
+ "integrity_checks_checksum_files_percentage_limit_description": "Konfigurer den maksimale prosentsatsen mellom 0,01 og 1 for hvor mye sjekksumkontrollen skal kjøre hvert intervall.",
+ "integrity_checks_checksum_files_time_limit": "Tidsgrense",
+ "integrity_checks_checksum_files_time_limit_description": "Konfigurer den maksimale varigheten som sjekksumkontrollen skal kjøre hvert intervall. (ms)",
+ "integrity_checks_missing_files": "Manglende filer",
+ "integrity_checks_missing_files_description": "Konfigurer frekvensen og aktiver eller deaktiver kontrollen av manglende filer",
+ "integrity_checks_missing_files_enable_description": "Aktiver kontrollen for manglende filer",
+ "integrity_checks_settings": "Integritetskontroller",
+ "integrity_checks_settings_description": "Administrer intervaller for integritetskontroller",
+ "integrity_checks_untracked_files": "Usporede filer",
+ "integrity_checks_untracked_files_description": "Konfigurer frekvensen og aktiver eller deaktiver sjekken for usporede filer",
+ "integrity_checks_untracked_files_enable_description": "Aktiver kontrollen av usporede filer",
"job_concurrency": "{job} samtidighet",
"job_created": "Oppgave laget",
"job_not_concurrency_safe": "Denne jobben er ikke samtidlighet sikker.",
@@ -187,7 +202,7 @@
"maintenance_delete_backup": "Slett sikkerhetskopi",
"maintenance_delete_backup_description": "Denne filen vil bli permanent slettet.",
"maintenance_delete_error": "Feilet ved sletting av sikkerhetskopi.",
- "maintenance_integrity_check": "Sjekk",
+ "maintenance_integrity_check": "Kontroll",
"maintenance_integrity_check_all": "Velg alle",
"maintenance_integrity_checksum_mismatch": "Sjekksum er feil",
"maintenance_integrity_checksum_mismatch_description": "Filer med en sjekksum på disken som ikke stemmer overens med sjekksummen Immich har lagret i databasen sin.",
@@ -322,8 +337,8 @@
"require_password_change_on_login": "Krev at brukeren endrer passord ved første pålogging",
"reset_settings_to_default": "Tilbakestill innstillinger til standard",
"reset_settings_to_recent_saved": "Tilbakestill innstillingene til de nylig lagrede innstillingene",
- "scanning_library": "Søk biblioteket",
- "search_jobs": "Søk etter jobber…",
+ "scanning_library": "Bibliotekskanning",
+ "search_jobs": "Søkeprosesser…",
"send_welcome_email": "Send velkomst-e-post",
"server_external_domain_settings": "Eksternt domene",
"server_external_domain_settings_description": "Domene brukt for eksterne lenker",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Tillater transkoding i sanntid mens videoen strømmes. Muliggjør kvalitetsbytte, men kan forårsake høyere avspillingsforsinkelse og hakking avhengig av serverkapasitet.",
"transcoding_realtime_enabled": "Aktiver sanntid-transcoding",
"transcoding_realtime_enabled_description": "Hvis deaktivert så vil serveren nekte å starte nye transkodingsøkter i sanntid.",
+ "transcoding_realtime_resolutions": "Oppløsninger",
+ "transcoding_realtime_resolutions_description": "Oppløsningene som tilbys for sanntidstranskoding. Høyere oppløsninger kan føre til problemer med avspillingen dersom serveren ikke klarer å transkode dem raskt nok.",
+ "transcoding_realtime_video_codecs": "Videokodeker",
+ "transcoding_realtime_video_codecs_description": "De tilgjengelige videokodekene for sanntidstranskoding. Klienter vil velge det beste alternativet de støtter under avspilling. AV1 er mer effektiv enn HEVC, som igjen er mer effektiv enn H.264. Ved bruk av maskinvareakselerasjon velger du kun kodeker som maskinvaren kan kode. Ved bruk av programvarebasert transkoding bør du være oppmerksom på at H.264 er raskere enn AV1, som igjen er raskere enn HEVC.",
"transcoding_reference_frames": "Referansebilder",
"transcoding_reference_frames_description": "Antall bilder som skal refereres til når en gitt ramme komprimeres. Høyere verdier forbedrer komprimeringseffektiviteten, men senker ned kodingen. 0 setter denne verdien automatisk.",
"transcoding_required_description": "Bare videoer som ikke er i et akseptert format",
@@ -568,7 +587,7 @@
"asset_not_found_on_device_ios": "Elementet ble ikke funnet på enheten. Hvis du bruker iCloud, kan elementet være utilgjengelig på grunn av en feilaktig fil er lagret i iCloud",
"asset_not_found_on_icloud": "Elementet ble ikke funnet på iCloud. Elementet kan være utilgjengelig fordi det ligger en feilaktig fil i iCloud",
"asset_offline": "Fil utilgjengelig",
- "asset_offline_description": "Dette elementet er offline. Immich kan ikke finne dets possisjon. Vennligst påse at elementet er tilgjengelig og skann så biblioteket på nytt.",
+ "asset_offline_description": "Dette eksterne elementet finnes ikke lenger på disken. Vennligst kontakt din Immich-administrator for hjelp.",
"asset_skipped": "Hoppet over",
"asset_skipped_in_trash": "I papirkurven",
"asset_troubleshoot": "Feilsøk element",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Objektviser",
"assets": "Filer",
"assets_added_to_album_count": "Lagt til {count, plural, one {# elementer} other {# element}} i album",
+ "assets_added_to_album_partial_count": "La til {successCount} av {totalCount} {totalCount, plural, one {element} other {elementer}} i albumet",
"assets_added_to_albums_count": "Lagt til {assetTotal, plural, one {# asset} other {# assets}} til {albumTotal, plural, one {# album} other {# albums}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Objektet} other {Objektene}} kan ikke legges til i albumet",
"assets_cannot_be_added_to_albums": "{count, plural, one {Asset} other {Assets}} kan ikke legges til i noen av albumene",
@@ -641,7 +661,7 @@
"browse_templates": "Bla gjennom maler",
"bugs_and_feature_requests": "Feil og funksjonsforespørsler",
"build": "Bygg",
- "build_image": "Lag Bilde",
+ "build_image": "Byggbilde",
"bulk_delete_duplicates_confirmation": "Vil du virkelig slette {count, plural, one {# duplisert fil} other {# dupliserte filer}}? Dette vil beholde største filen fra hver gruppe og vil permanent slette alle andre duplikater. Du kan ikke angre denne handlingen!",
"bulk_keep_duplicates_confirmation": "Vil du virkelig beholde {count, plural, one {# duplikat} other {# duplikater}}? Dette vil løse alle duplikatgrupper uten å slette noe.",
"bulk_trash_duplicates_confirmation": "Vil du virkelig å slette {count, plural, one {# duplisert element} other {# dupliserte elementer}}? Dette vil beholde største filen fra hver gruppe, samt slette alle andre duplikater.",
@@ -693,7 +713,7 @@
"cleanup_icloud_shared_albums_excluded": "iCloud delte albumer er ekskludert fra skanningen",
"cleanup_no_assets_found": "Ingen opplastede mediefiler funnet som treffer dine søkekriterier. Frigjør plass kan kun fjerne objekter som har blitt sikkerhetskopiert",
"cleanup_preview_title": "Mediefiler å fjerne ({count})",
- "cleanup_step3_description": "Skann etter bilder og videoer ved å velge sluttdato og filter i søkeinnstillinger.",
+ "cleanup_step3_description": "Søk etter bilder og videoer ved å velge sluttdato og filter i søkeinnstillinger.",
"cleanup_step4_summary": "{count} mediefiler (opprettet før {date}= er plassert i kø for fjerning fra enheten. Bildene vil være tilgjengelige fra Immich appen.",
"cleanup_trash_hint": "For å frigjøre lagringsplassen helt, åpne systemgalleri-appen og tøm papirkurven",
"clear": "Tøm",
@@ -777,7 +797,7 @@
"create_shared_album_page_share_add_assets": "LEGG TIL OBJEKTER",
"create_shared_album_page_share_select_photos": "Velg bilder",
"create_shared_link": "Opprett delt lenke",
- "create_tag": "Lag merkelapp",
+ "create_tag": "Lag merke",
"create_tag_description": "Lag en ny tag. For undertag, vennligst fullfør hele stien til taggen, inkludert forovervendt skråstrek.",
"create_user": "Opprett Bruker",
"create_workflow": "Opprett arbeidsflyt",
@@ -794,7 +814,6 @@
"custom_date": "Egendefinert dato",
"custom_locale": "Tilpasset lokalisering",
"custom_locale_description": "Formater datoer, tid og tall basert på det valgte språket og regionen",
- "custom_url": "Tilpasset URL",
"cutoff_date_description": "Fjern bilder som er eldre enn…",
"cutoff_day": "{count, plural, one {dag} other {dager}}",
"cutoff_year": "{count, plural, one {år} other {år}}",
@@ -1303,9 +1322,9 @@
"login_form_failed_login": "Feil ved innlogging, sjekk serverens URL, e-post og passord",
"login_form_handshake_exception": "Det var et unntak for handshake med serveren. Aktiver støtte for selvsignerte sertifikater i innstillingene hvis du bruker et selvsignert sertifikat.",
"login_form_password_hint": "passord",
- "login_form_server_empty": "Skriv inn en server-URL.",
- "login_form_server_error": "Kunne ikke koble til server.",
- "login_has_been_disabled": "Innlogging har blitt deaktivert.",
+ "login_form_server_empty": "Skriv inn en server-URL",
+ "login_form_server_error": "Kunne ikke koble til server",
+ "login_has_been_disabled": "Innlogging har blitt deaktivert",
"login_password_changed_error": "Det skjedde en feil ved oppdatering av passordet",
"login_password_changed_success": "Passord oppdatert",
"logout_all_device_confirmation": "Vil du virkelig logge ut av alle enheter?",
@@ -1356,6 +1375,7 @@
"map_location_picker_page_use_location": "Bruk dette stedet",
"map_location_service_disabled_content": "Lokasjonstjeneste må være aktivert for å vise elementer fra din nåværende lokasjon. Vil du aktivere det nå?",
"map_location_service_disabled_title": "Lokasjonstjeneste deaktivert",
+ "map_marker_for_image": "Kartmarkør for bilde tatt i {city}, {country}",
"map_marker_with_image": "Kartmarkør med bilde",
"map_no_location_permission_content": "Lokasjonstilgang er påkrevet for å vise elementer fra din nåværende lokasjon. Vil du tillate det nå?",
"map_no_location_permission_title": "Lokasjonstilgang avvist",
@@ -1460,6 +1480,7 @@
"never": "aldri",
"new_album": "Nytt Album",
"new_api_key": "Ny API-nøkkel",
+ "new_feature": "Ny funksjon",
"new_password": "Nytt passord",
"new_person": "Ny person",
"new_pin_code": "Ny PIN-kode",
@@ -1501,11 +1522,15 @@
"none": "Ingen",
"not_allowed": "Ikke tillatt",
"not_available": "Ikke tilgjengelig",
- "not_in_any_album": "Ikke i noe album",
+ "not_in_any_album": "Ikke i album",
"not_selected": "Ikke valgt",
+ "not_set": "Ikke angitt",
"notes": "Notater",
"nothing_here_yet": "Ingenting her enda",
"notification_backup_reliability": "Slå på notifikasjoner for mer stabil sikkerhetskopiering i bakgrunnen",
+ "notification_enabled_list_tile_content": "Immich bruker varsler for sikkerhetskopiering i bakgrunnen. Du kan administrere disse i enhetsinnstillingene dine.",
+ "notification_enabled_list_tile_open_button": "Åpne innstillinger",
+ "notification_enabled_list_tile_title": "Varsler aktivert",
"notification_permission_dialog_content": "For å aktivere notifikasjoner, gå til Innstillinger og velg tillat.",
"notification_permission_list_tile_content": "Gi tilgang for å aktivere notifikasjoner.",
"notification_permission_list_tile_enable_button": "Aktiver notifikasjoner",
@@ -1517,6 +1542,8 @@
"obtainium_configurator": "Obtainium konfigurator",
"obtainium_configurator_instructions": "Bruk Obtainium for å installere og oppdatere Android appen direkte fra Immich sin Github utgivelse. Opprett en API nøkkel og velg en variant for å lage din Obtainium konfigurasjonslink",
"ocr": "Tekstgjenkjenning",
+ "ocr_body": "Immich leser nå teksten i bildene dine, slik at du kan søke etter dem basert på hva det står i dem.",
+ "ocr_title": "Søk etter tekst i bildene dine",
"official_immich_resources": "Offisielle Immich-ressurser",
"offline": "Frakoblet",
"offset": "Forskyving",
@@ -1535,6 +1562,8 @@
"open": "Åpne",
"open_calendar": "Åpne kalender",
"open_in_browser": "Åpne i nettleser",
+ "open_in_immich_body": "Angi Immich som galleri-app på Android for å åpne bilder rett fra andre apper.",
+ "open_in_immich_title": "Åpner bilder i Immich",
"open_in_map_view": "Åpne i kartvisning",
"open_in_openstreetmap": "Åpne i OpenStreetMap",
"open_the_search_filters": "Åpne søkefiltrene",
@@ -1592,7 +1621,7 @@
"person": "Person",
"person_age_months": "{months, plural, one {# måned} other {# måneder}} gammel",
"person_age_year_months": "1 år, {months, plural, one {# måned} other {# måneder}} gammel",
- "person_age_years": "{years, plural, other {# år}} gammel",
+ "person_age_years": "{years, plural, one {# år} other {# år}} gammel",
"person_birthdate": "Født den {date}",
"person_hidden": "{name}{hidden, select, true { (skjult)} other {}}",
"person_recognized": "Person gjenkjent",
@@ -1693,7 +1722,10 @@
"recent": "Nylig",
"recent_searches": "Nylige søk",
"recently_added": "Nylig lagt til",
+ "recently_added_body": "Se alt det nyeste innholdet ditt samlet på én egen side.",
+ "recently_added_description": "Utforsk bildene og videoene dine sortert etter når de ble lastet opp til Immich",
"recently_added_page_title": "Nylig oppført",
+ "recently_added_title": "Nylig lagt til",
"recently_taken": "Nylig tatt",
"refresh": "Oppdater",
"refresh_encoded_videos": "Oppdater kodete videoer",
@@ -1815,7 +1847,7 @@
"search_no_people": "Ingen personer",
"search_no_people_named": "Ingen personer med navnet \"{name}\"",
"search_no_result": "Ingen resultater funnet, prøv ett annet søkeord eller kombinasjon",
- "search_options": "Søke alternativer",
+ "search_options": "Søkealternativer",
"search_page_search_photos_videos": "Søk etter dine bilder og videoer",
"search_page_view_all_button": "Vis alle",
"search_people": "Søk personer",
@@ -1823,11 +1855,11 @@
"search_rating": "Søk etter vurdering...",
"search_settings": "Søke instillinger",
"search_state": "Søk etter fylke...",
- "search_tags": "Søk tags...",
+ "search_tags": "Søk merker...",
"search_timezone": "Søk etter tidssone....",
"search_type": "Søk etter type",
"search_your_photos": "Søk i dine bilder",
- "searching_locales": "Søker lokaler...",
+ "searching_locales": "Søker regionalinnstillinger...",
"second": "Sekund",
"see_all_people": "Vis alle mennesker",
"select": "Velg",
@@ -1900,6 +1932,8 @@
"share_link": "Del link",
"share_original": "Bruk original (stor)",
"share_preview": "Bruk miniatyrbilde (lite)",
+ "share_quality_body": "Trykk og hold på deleknappen for å velge bildekvalitet før du deler.",
+ "share_quality_title": "Velg kvalitet for deling",
"shared": "Delt",
"shared_album_activities_input_disable": "Kommenterer er deaktivert",
"shared_album_activity_remove_content": "Vil du slette denne aktiviteten?",
@@ -1914,7 +1948,9 @@
"shared_link_app_bar_title": "Delte linker",
"shared_link_clipboard_copied_massage": "Kopiert til utklippslisten",
"shared_link_create_error": "Feil ved oppretting av delbar link",
- "shared_link_custom_url_description": "Få tilgang til denne delte lenken med en egendefinert URL",
+ "shared_link_custom_url_description": "Gi denne dele-lenken en brukerdefinert URL",
+ "shared_link_custom_url_title": "Egendefinert URL",
+ "shared_link_custom_url_warning": "Advarsel: Et egendefinert URL-navn med en skråstrek oppfører seg kanskje ikke som forventet.",
"shared_link_edit_description_hint": "Endre delebeskrivelse",
"shared_link_edit_expire_after_option_day": "1 dag",
"shared_link_edit_expire_after_option_days": "{count} dager",
@@ -1981,16 +2017,19 @@
"sign_out": "Logg ut",
"sign_up": "Registrer deg",
"size": "Størrelse",
+ "skip": "Hopp over",
"skip_to_content": "Gå til innhold",
"skip_to_folders": "Hopp til mapper",
"skip_to_tags": "Hopp til tagger",
"slideshow": "Lysbildefremvisning",
+ "slideshow_body": "Len deg tilbake og se bildene dine som lysbildefremvisning i fullskjerm.",
"slideshow_metadata_overlay_mode": "Overleggsinnhold",
"slideshow_metadata_overlay_mode_description_only": "Bare beskrivelse",
"slideshow_metadata_overlay_mode_full": "Full",
"slideshow_repeat": "Gjenta lysbildefremvisning",
"slideshow_repeat_description": "Gå tilbake til begynnelsen når lysbildeserien er slutt",
"slideshow_settings": "Lysbildefremvisning innstillinger",
+ "slideshow_title": "Lysbildevisning",
"smart_album": "Smartalbum",
"some_assets_already_have_a_location_warning": "Noen av de valgte objektene har allerede en lokasjon",
"sort_albums_by": "Sorter album etter...",
@@ -2002,11 +2041,11 @@
"sort_recent": "Nyeste bilde",
"sort_title": "Tittel",
"source": "Kilde",
- "stack": "Stable",
- "stack_action_prompt": "{count} stakket",
+ "stack": "Stabel",
+ "stack_action_prompt": "{count} stablet",
"stack_duplicates": "Stable duplikater",
"stack_selected_photos": "Stable valgte bilder",
- "stacked_assets_count": "Stable {count, plural, one {# element} other {# elementer}}",
+ "stacked_assets_count": "Stablet {count, plural, one {# element} other {# elementer}}",
"stacktrace": "Stakkspor",
"start": "Start",
"start_date": "Startdato",
@@ -2118,6 +2157,7 @@
"unknown": "Ukjent",
"unknown_country": "Ukjent Land",
"unknown_date": "Ukjent dato",
+ "unknown_schema": "Ukjent skjema",
"unknown_year": "Ukjent år",
"unlimited": "Ubegrenset",
"unlink_motion_video": "Koble fra bevegelsesvideo",
@@ -2130,9 +2170,9 @@
"unsaved_change": "Ulagrede endringer",
"unselect_all": "Fjern alle valg",
"unselect_all_duplicates": "Fjern markeringen av alle duplikater",
- "unstack": "avstable",
+ "unstack": "Avstable",
"unstack_action_prompt": "{count} ustakket",
- "unstacked_assets_count": "Ikke stablet {count, plural, one {# element} other {# elementer}}",
+ "unstacked_assets_count": "Avstablet {count, plural, one {# element} other {# elementer}}",
"unsupported_field_type": "Ustøttede felttyper",
"unsupported_file_type": "Filen {file} kan ikke lastes opp fordi filtypen {type} ikke støttes.",
"untagged": "Umerket",
@@ -2153,6 +2193,8 @@
"upload_status_errors": "Feil",
"upload_status_uploaded": "Opplastet",
"upload_success": "Opplasting vellykket, oppdater siden for å se nye opplastninger.",
+ "upload_to_album_body": "For brukere som ikke benytter manuell opplasting, kan du nå velge å legge til lokale bilder direkte i et album samtidig som du laster dem opp. Du slipper dermed å laste dem opp først for så å legge dem til i et album etterpå.",
+ "upload_to_album_title": "Last opp direkte til et album",
"upload_to_immich": "Last opp til Immich ({count})",
"uploading": "Laster opp",
"uploading_media": "Laster opp media",
@@ -2161,7 +2203,7 @@
"url": "URL",
"usage": "Bruk",
"use_biometric": "Bruk biometri",
- "use_browser_locale": "Bruk nettleser lokale",
+ "use_browser_locale": "Bruk nettleserens regionalinnstillinger",
"use_browser_locale_description": "Formater datoer, klokkeslett, og tall basert på nettleserens lokale",
"use_current_connection": "Bruk nåværende tilkobling",
"use_custom_date_range": "Bruk egendefinert datoperiode i stedet",
@@ -2189,7 +2231,7 @@
"version_announcement_closing": "Din venn, Alex",
"version_announcement_message": "Hei! En ny versjon av Immich er tilgjengelig. Vennligst ta deg tid til å lese utgivelsesnotatene for å sikre at oppsettet ditt er oppdatert for å forhindre feilkonfigurasjoner, spesielt hvis du bruker WatchTower eller en annen mekanisme som håndterer oppdatering av Immich-forekomsten din automatisk.",
"version_history": "Versjonshistorikk",
- "version_history_item": "Installert {version} den {date}",
+ "version_history_item": "Installerte {version} den {date}",
"video": "Video",
"video_hover_setting": "Spill av forhåndsvisining mens du holder over musepekeren",
"video_hover_setting_description": "Spill av forhåndsvisning mens en musepeker er over elementet. Selv når den er deaktivert, kan avspilling startes ved å holde musepekeren over avspillingsikonet.",
@@ -2210,7 +2252,7 @@
"view_qr_code": "Vis QR-kode",
"view_similar_photos": "Vis lignende bilder",
"view_stack": "Vis stabel",
- "viewer_remove_from_stack": "Fjern fra stabling",
+ "viewer_remove_from_stack": "Fjern fra stabel",
"visibility": "Synlighet",
"visibility_changed": "Synlighet endret for {count, plural, one {# person} other {# people}}",
"visual": "Visuell",
@@ -2220,6 +2262,9 @@
"week": "Uke",
"welcome": "Velkommen",
"welcome_to_immich": "Velkommen til Immich",
+ "whats_new": "Hva er nytt",
+ "whats_new_settings_subtitle": "Se hva som er nytt i Immich",
+ "whats_new_version": "Versjon {version}",
"when": "Når",
"width": "Bredde",
"wifi_name": "Wi-Fi-navn",
diff --git a/i18n/ne.json b/i18n/ne.json
index 1a374a3a4f..d528718015 100644
--- a/i18n/ne.json
+++ b/i18n/ne.json
@@ -5,6 +5,9 @@
"acknowledge": "स्वीकार",
"action": "कार्य",
"action_description": "छानियेको चिजमा सामुहिक कार्य",
+ "active": "कार्यहरू",
+ "activity": "गतिविधि",
+ "add": "थप्नुहोस्",
"add_a_description": "थप विवरण",
"add_a_location": "स्थान थप्नुहोस्",
"add_a_name": "नाम हाल्नुहोस्",
@@ -12,5 +15,9 @@
"add_action": "कार्य थप्नुहोस्",
"add_assets": "फोटोहरू थप्नुहोस्",
"add_birthday": "जन्मदिन हाल्नुहोस",
- "add_endpoint": "अन्तिम बिन्दु थप्नुहोस्"
+ "add_endpoint": "अन्तिम बिन्दु थप्नुहोस्",
+ "add_exclusion_pattern": "बहिष्करण ढाँचा थप्नुहोस्",
+ "add_location": "स्थान थप्नुहोस्",
+ "add_partner": "साझेदार थप्नुहोस्",
+ "add_step": "चरण थप्नुहोस्"
}
diff --git a/i18n/nl.json b/i18n/nl.json
index 8d8f581889..8907985ad1 100644
--- a/i18n/nl.json
+++ b/i18n/nl.json
@@ -2,7 +2,7 @@
"about": "Over",
"account": "Account",
"account_settings": "Accountinstellingen",
- "acknowledge": "Bevestigen",
+ "acknowledge": "Begrepen",
"action": "Actie",
"action_common_update": "Bijwerken",
"action_description": "Een groep acties om uit te voeren op de gefilterde items",
@@ -12,7 +12,7 @@
"activity": "Activiteit",
"add": "Toevoegen",
"add_a_description": "Beschrijving toevoegen",
- "add_a_location": "Een locatie toevoegen",
+ "add_a_location": "Locatie toevoegen",
"add_a_name": "Naam toevoegen",
"add_a_title": "Titel toevoegen",
"add_action": "Actie toevoegen",
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Thumbnail kwaliteit van 1-100. Hoger is beter, maar produceert grotere bestanden en kan de app vertragen.",
"image_thumbnail_title": "Thumbnailinstellingen",
"import_config_from_json_description": "Importeer de systeemconfiguratie door een JSON-configuratiebestand te uploaden",
+ "integrity_checks_checksum_files": "Controlegetalbestanden",
+ "integrity_checks_checksum_files_description": "Configureer de check van controlegetallen",
+ "integrity_checks_checksum_files_enable_description": "Schakel de check van controlegetallen in",
+ "integrity_checks_checksum_files_percentage_limit": "Percentage limiet",
+ "integrity_checks_checksum_files_percentage_limit_description": "Stel het maximale percentage in tussen 0.01 en 1 voor hoe vaak de check van controlegetallen per interval moet worden uitgevoerd.",
+ "integrity_checks_checksum_files_time_limit": "Tijdslimiet",
+ "integrity_checks_checksum_files_time_limit_description": "Stel de maximale duur in waarin de check van controlegetallen per interval moet worden uitgevoerd. (ms)",
+ "integrity_checks_missing_files": "Ontbrekende bestanden",
+ "integrity_checks_missing_files_description": "Configureer de frequentie en schakel de controle op ontbrekende bestanden in of uit",
+ "integrity_checks_missing_files_enable_description": "Schakel de controle op ontbrekende bestanden in",
+ "integrity_checks_settings": "Integriteitscontroles",
+ "integrity_checks_settings_description": "Beheer de intervallen voor integriteitscontroles",
+ "integrity_checks_untracked_files": "Niet getraceerde bestanden",
+ "integrity_checks_untracked_files_description": "Configureer de frequentie en schakel de controle op niet getraceerde bestanden in of uit",
+ "integrity_checks_untracked_files_enable_description": "Schakel de controle op niet getraceerde bestanden in",
"job_concurrency": "{job} gelijktijdigheid",
"job_created": "Taak aangemaakt",
"job_not_concurrency_safe": "Deze taak kan niet parallel worden uitgevoerd.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Maakt het mogelijk om transcodering in realtime uit te voeren terwijl de video wordt gestreamd. Maakt het wisselen van kwaliteit mogelijk, maar kan een hogere afspeelvertraging en haperingen veroorzaken, afhankelijk van de capaciteiten van de server.",
"transcoding_realtime_enabled": "Realtime transcodering inschakelen",
"transcoding_realtime_enabled_description": "Indien uitgeschakeld, weigert de server om nieuwe realtime transcodeersessies te starten.",
+ "transcoding_realtime_resolutions": "Resoluties",
+ "transcoding_realtime_resolutions_description": "De resoluties die beschikbaar zijn voor realtime transcodering. Hogere resoluties kunnen afspeelproblemen veroorzaken als de server deze niet snel genoeg kan transcoderen.",
+ "transcoding_realtime_video_codecs": "Videocodecs",
+ "transcoding_realtime_video_codecs_description": "De videocodecs die beschikbaar zijn voor realtime transcodering. Clients kiezen tijdens het afspelen automatisch de beste codec die zij ondersteunen. AV1 is efficiënter dan HEVC, en HEVC is efficiënter dan H.264. Bij gebruik van hardwareversnelling selecteer je alleen de codecs die door de hardwareversneller kunnen worden gecodeerd. Bij softwarematige transcodering geldt dat H.264 sneller is dan AV1, en AV1 sneller is dan HEVC.",
"transcoding_reference_frames": "Referentie frames",
"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",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Fotoweergave",
"assets": "Items",
"assets_added_to_album_count": "{count, plural, one {# item} other {# items}} aan het album toegevoegd",
+ "assets_added_to_album_partial_count": "{successCount} van de {totalCount} {totalCount, plural, one {asset} other {assets}} toegevoegd aan het album",
"assets_added_to_albums_count": "{assetTotal, plural, one {# asset} other {# assets}} toegevoegd aan {albumTotal, plural, one {# album} other {#albums}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {# item} other {# items}} konden niet aan album toegevoegd worden",
"assets_cannot_be_added_to_albums": "{count, plural, one {Item kan} other {Items kunnen}} niet toegevoegd worden aan de albums",
@@ -794,7 +814,6 @@
"custom_date": "Aangepaste datum",
"custom_locale": "Aangepaste landinstelling",
"custom_locale_description": "Formatteer datums, tijden, en getallen op basis van de geselecteerde taal en regio",
- "custom_url": "Aangepaste URL",
"cutoff_date_description": "Bewaar foto's van de laatste…",
"cutoff_day": "{count, plural, one {dag} other {dagen}}",
"cutoff_year": "{count, plural, one {jaar} other {jaren}}",
@@ -1461,6 +1480,7 @@
"never": "Nooit",
"new_album": "Nieuw album",
"new_api_key": "Nieuwe API-sleutel",
+ "new_feature": "Nieuwe functie",
"new_password": "Nieuw wachtwoord",
"new_person": "Nieuw persoon",
"new_pin_code": "Nieuwe pincode",
@@ -1480,21 +1500,21 @@
"no_assets_message": "Klik hier om je eerste foto te uploaden",
"no_assets_to_show": "Geen foto's om te laten zien",
"no_cast_devices_found": "Geen cast-apparaten gevonden",
- "no_checksum_local": "Geen checksum beschikbaar - kan lokale assets niet ophalen",
- "no_checksum_remote": "Geen checksum beschikbaar - kan online assets niet ophalen",
+ "no_checksum_local": "Geen controlegetal beschikbaar - kan lokale assets niet ophalen",
+ "no_checksum_remote": "Geen controlegetal beschikbaar - kan online assets niet ophalen",
"no_devices": "Geen geautoriseerde apparaten",
"no_duplicates_found": "Er zijn geen duplicaten gevonden.",
"no_exif_info_available": "Geen exif info beschikbaar",
"no_explore_results_message": "Upload meer foto's om je verzameling te verkennen.",
"no_favorites_message": "Voeg favorieten toe om snel je beste foto's en video's te vinden",
"no_libraries_message": "Maak een externe bibliotheek om je foto's en video's te bekijken",
- "no_local_assets_found": "Geen lokale assets gevonden met deze checksum",
+ "no_local_assets_found": "Geen lokale assets gevonden met dit controlegetal",
"no_locked_photos_message": "Foto’s en video’s in de vergrendelde map zijn verborgen en worden niet weergegeven wanneer je door je bibliotheek bladert of zoekt.",
"no_name": "Geen naam",
"no_notifications": "Geen meldingen",
"no_people_found": "Geen mensen gevonden",
"no_places": "Geen plaatsen",
- "no_remote_assets_found": "Geen online assets gevonden met deze checksum",
+ "no_remote_assets_found": "Geen online assets gevonden met dit controlegetal",
"no_results": "Geen resultaten",
"no_results_description": "Probeer een synoniem of een algemener zoekwoord",
"no_shared_albums_message": "Maak een album om foto's en video's te delen met mensen in je netwerk",
@@ -1504,6 +1524,7 @@
"not_available": "n.v.t.",
"not_in_any_album": "Niet in een album",
"not_selected": "Niet geselecteerd",
+ "not_set": "Nog niet ingesteld",
"notes": "Opmerkingen",
"nothing_here_yet": "Hier staan nog geen items",
"notification_backup_reliability": "Schakel meldingen in om de betrouwbaarheid van back-ups op de achtergrond te verbeteren",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Obtainium instellen",
"obtainium_configurator_instructions": "Gebruik Obtainium om de Android-app rechtstreeks vanuit Immich's GitHub-releases te installeren en bij te werken. Maak een API-sleutel aan en selecteer een variant om je Obtainium-configuratielink te maken",
"ocr": "OCR",
+ "ocr_body": "Immich leest nu de tekst in je foto's, zodat je ze kunt zoeken op basis van de inhoud.",
+ "ocr_title": "Zoek tekst in je foto's",
"official_immich_resources": "Officiële Immich bronnen",
"offline": "Offline",
"offset": "Verrekening",
@@ -1539,6 +1562,8 @@
"open": "Openen",
"open_calendar": "Open kalender",
"open_in_browser": "Openen in browser",
+ "open_in_immich_body": "Stel Immich in als je galerij op Android om foto's rechtstreeks vanuit andere apps te openen.",
+ "open_in_immich_title": "Open foto's in Immich",
"open_in_map_view": "Openen in kaartweergave",
"open_in_openstreetmap": "Openen in OpenStreetMap",
"open_the_search_filters": "Open de zoekfilters",
@@ -1697,7 +1722,10 @@
"recent": "Recent",
"recent_searches": "Recente zoekopdrachten",
"recently_added": "Onlangs toegevoegd",
+ "recently_added_body": "Ga direct naar een aparte pagina met al je recent toegevoegde items.",
+ "recently_added_description": "Blader door je items, op volgorde van wanneer ze zijn toegevoegd aan Immich",
"recently_added_page_title": "Recent toegevoegd",
+ "recently_added_title": "Recent toegevoegd",
"recently_taken": "Recent genomen",
"refresh": "Vernieuwen",
"refresh_encoded_videos": "Vernieuw gecodeerde video's",
@@ -1904,6 +1932,8 @@
"share_link": "Link delen",
"share_original": "Origineel gebruiken (groot)",
"share_preview": "Voorbeeldafbeelding gebruiken (klein)",
+ "share_quality_body": "Houd de deelknop ingedrukt om de beeldkwaliteit te kiezen voordat je deelt.",
+ "share_quality_title": "Kies de gewenste deel kwaliteit",
"shared": "Gedeeld",
"shared_album_activities_input_disable": "Reactie is uitgeschakeld",
"shared_album_activity_remove_content": "Wil je deze activiteit verwijderen?",
@@ -1918,7 +1948,9 @@
"shared_link_app_bar_title": "Gedeelde links",
"shared_link_clipboard_copied_massage": "Gekopieerd naar klembord",
"shared_link_create_error": "Fout bij het maken van een gedeelde link",
- "shared_link_custom_url_description": "Krijg toegang tot deze gedeelde link met een aangepaste URL",
+ "shared_link_custom_url_description": "Krijg toegang tot deze gedeelde link met een aangepaste URL-naam",
+ "shared_link_custom_url_title": "Aangepaste URL",
+ "shared_link_custom_url_warning": "Waarschuwing: een aangepaste URL naam met een voorwaartse slash kan zich anders gedragen dan verwacht.",
"shared_link_edit_description_hint": "Voer beschrijving voor de gedeelde link in",
"shared_link_edit_expire_after_option_day": "1 dag",
"shared_link_edit_expire_after_option_days": "{count} dagen",
@@ -1985,16 +2017,19 @@
"sign_out": "Uitloggen",
"sign_up": "Registreren",
"size": "Grootte",
+ "skip": "Overslaan",
"skip_to_content": "Doorgaan naar inhoud",
"skip_to_folders": "Doorgaan naar mappen",
"skip_to_tags": "Doorgaan naar tags",
"slideshow": "Diavoorstelling",
+ "slideshow_body": "Leun achterover en bekijk hoe je foto's in een diavoorstelling op volledig scherm worden afgespeeld.",
"slideshow_metadata_overlay_mode": "Metadata bijschrift",
"slideshow_metadata_overlay_mode_description_only": "Enkel beschrijving",
"slideshow_metadata_overlay_mode_full": "Volledig",
"slideshow_repeat": "Herhaal diavoorstelling",
"slideshow_repeat_description": "Keer terug naar het begin wanneer de diavoorstelling eindigt",
"slideshow_settings": "Diavoorstelling instellingen",
+ "slideshow_title": "Diavoorstelling",
"smart_album": "Slim album",
"some_assets_already_have_a_location_warning": "Sommige geselecteerde items hebben al een locatie",
"sort_albums_by": "Sorteer albums op...",
@@ -2122,6 +2157,7 @@
"unknown": "Onbekend",
"unknown_country": "Onbekend Land",
"unknown_date": "Onbekende datum",
+ "unknown_schema": "Onbekend schema",
"unknown_year": "Onbekend jaar",
"unlimited": "Onbeperkt",
"unlink_motion_video": "Ontkoppel bewegende video",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "Fouten",
"upload_status_uploaded": "Geüpload",
"upload_success": "Uploaden gelukt, vernieuw de pagina om de nieuwe items te zien.",
+ "upload_to_album_body": "Voor gebruikers die de handmatige uploadfunctie niet gebruiken is het nu mogelijk om lokale foto's direct aan een album toe te voegen tijdens het uploaden. Het is dus niet meer nodig om foto's eerst te uploaden en ze later aan een album toe te voegen.",
+ "upload_to_album_title": "Upload direct naar een album",
"upload_to_immich": "Uploaden naar Immich ({count})",
"uploading": "Aan het uploaden",
"uploading_media": "Media wordt geüpload",
@@ -2224,6 +2262,9 @@
"week": "Week",
"welcome": "Welkom",
"welcome_to_immich": "Welkom bij Immich",
+ "whats_new": "Wat is er nieuw",
+ "whats_new_settings_subtitle": "Ontdek wat er nieuw is in Immich",
+ "whats_new_version": "Versie {version}",
"when": "Wanneer",
"width": "Breedte",
"wifi_name": "Wifinetwerk",
diff --git a/i18n/nn.json b/i18n/nn.json
index e68a3b9a8e..dc44e5f417 100644
--- a/i18n/nn.json
+++ b/i18n/nn.json
@@ -23,6 +23,7 @@
"add_location": "Legg til stad",
"add_partner": "Legg til partnar",
"add_photos": "Legg til bilete",
+ "add_step": "Legg til steg",
"add_tag": "Legg til tagg",
"add_to": "Legg til…",
"add_to_album": "Legg til i album",
diff --git a/i18n/pa.json b/i18n/pa.json
index b027fe6f34..ccdd6e4847 100644
--- a/i18n/pa.json
+++ b/i18n/pa.json
@@ -2,18 +2,30 @@
"about": "ਐਪ ਬਾਰੇ",
"account": "ਖ਼ਾਤਾ",
"account_settings": "ਖ਼ਾਤਾ ਸੈਟਿੰਗਾਂ",
+ "acknowledge": "ਸਵੀਕਾਰ",
"action": "ਕਾਰਵਾਈ",
"action_common_update": "ਅੱਪਡੇਟ",
+ "action_description": "ਚੋਣ ਕੀਤੀਆਂ ਜਾਇਦਾਦਾਂ 'ਤੇ ਕਰਨ ਲਈ ਕਾਰਵਾਈਆਂ ਦਾ ਇੱਕ ਸੈੱਟ",
"actions": "ਕਾਰਵਾਈਆਂ",
"active": "ਕਿਰਿਆਸ਼ੀਲ",
+ "active_count": "ਚਾਲੂ: {count}",
"activity": "ਗਤੀਵਿਧੀ",
"add": "ਸ਼ਾਮਲ ਕਰੋ",
"add_a_description": "ਵੇਰਵਾ ਸ਼ਾਮਲ ਕਰੋ",
"add_a_location": "ਇੱਕ ਸਥਾਨ ਸ਼ਾਮਲ ਕਰੋ",
"add_a_name": "ਨਾਮ ਸ਼ਾਮਲ ਕਰੋ",
"add_a_title": "ਸਿਰਲੇਖ ਸ਼ਾਮਲ ਕਰੋ",
+ "add_action": "ਕ੍ਰਿਆ ਜੋੜੋ",
"add_birthday": "ਜਨਮਦਿਨ ਸ਼ਾਮਲ ਕਰੋ",
"add_endpoint": "ਐਂਡਪੁਆਇੰਟ ਸ਼ਾਮਲ ਕਰੋ",
"add_exclusion_pattern": "ਅਲਹਿਦਗੀ ਪੈਟਰਨ ਸ਼ਾਮਲ ਕਰੋ",
- "add_location": "ਸਥਾਨ ਸ਼ਾਮਲ ਕਰੋ"
+ "add_location": "ਸਥਾਨ ਸ਼ਾਮਲ ਕਰੋ",
+ "add_partner": "ਸਾਥੀ ਜੋੜੋ",
+ "add_photos": "ਫੋਟੋਆਂ ਜੋੜੋ",
+ "add_step": "ਕਦਮ ਜੋੜੋ",
+ "add_tag": "ਟੈਗ ਜੋੜੋ",
+ "add_to": "…ਵਿਚ ਜੋੜੋ",
+ "add_to_album": "ਐਲਬਮ ਵਿੱਚ ਜੋੜੋ",
+ "add_to_album_bottom_sheet_added": "{album} ਵਿਚ ਸ਼ਾਮਿਲ ਕੀਤਾ",
+ "add_to_album_bottom_sheet_already_exists": "ਪਹਿਲਾਂ ਹੀ {album} ਵਿੱਚ"
}
diff --git a/i18n/pl.json b/i18n/pl.json
index 9dc02cc4e8..54a9da4194 100644
--- a/i18n/pl.json
+++ b/i18n/pl.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Jakość miniatur od 1 do 100. Wyższa jest lepsza, ale tworzy większe pliki i może spowolnić reakcję aplikacji.",
"image_thumbnail_title": "Ustawienia miniatur",
"import_config_from_json_description": "Zaimportuj konfigurację systemu poprzez wczytanie pliku konfiguracyjnego JSON",
+ "integrity_checks_checksum_files": "Weryfikacja sum kontrolnych",
+ "integrity_checks_checksum_files_description": "Skonfiguruj weryfikację sumy kontrolnej plików",
+ "integrity_checks_checksum_files_enable_description": "Włącz weryfikację sum kontrolnych",
+ "integrity_checks_checksum_files_percentage_limit": "Ograniczenie procentowe",
+ "integrity_checks_checksum_files_percentage_limit_description": "Ustaw maksymalną wartość procentową w przedziale od 0,01 do 1, określającą, jaka część weryfikacji sumy kontrolnej ma być przeprowadzana w każdym przedziale czasowym.",
+ "integrity_checks_checksum_files_time_limit": "Ograniczenie czasowe",
+ "integrity_checks_checksum_files_time_limit_description": "Skonfiguruj maksymalny czas trwania weryfikacji sumy kontrolnej w każdym przedziale czasowym. (ms)",
+ "integrity_checks_missing_files": "Brakujące pliki",
+ "integrity_checks_missing_files_description": "Skonfiguruj częstotliwość oraz włącz lub wyłącz sprawdzanie brakujących plików",
+ "integrity_checks_missing_files_enable_description": "Włącz sprawdzanie brakujących plików",
+ "integrity_checks_settings": "Kontrole integralności",
+ "integrity_checks_settings_description": "Zarządzanie częstotliwością kontroli integralności",
+ "integrity_checks_untracked_files": "Pliki nieśledzone",
+ "integrity_checks_untracked_files_description": "Skonfiguruj częstotliwość i włącz lub wyłącz sprawdzanie plików nieśledzonych",
+ "integrity_checks_untracked_files_enable_description": "Włącz sprawdzanie plików nieśledzonych",
"job_concurrency": "{job} współbieżność",
"job_created": "Zadanie utworzone",
"job_not_concurrency_safe": "To zadanie nie może zostać wykonane w wielu wątkach.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Umożliwia transkodowanie w czasie rzeczywistym podczas strumieniowego przesyłania wideo. Pozwala na zmianę jakości, ale w zależności od możliwości serwera może powodować większe opóźnienia w odtwarzaniu i zacinanie się obrazu.",
"transcoding_realtime_enabled": "Włącz transkodowanie w czasie rzeczywistym",
"transcoding_realtime_enabled_description": "Gdy wyłączone, serwer odmówi uruchamiania nowych sesji transkodowania w czasie rzeczywistym.",
+ "transcoding_realtime_resolutions": "Rozdzielczości",
+ "transcoding_realtime_resolutions_description": "Rozdzielczości dostępne dla transkodowania w czasie rzeczywistym. Wyższe rozdzielczości mogą powodować problemy z odtwarzaniem jeśli serwer nie będzie w stanie ich transkodować odpowiednio szybko.",
+ "transcoding_realtime_video_codecs": "Kodeki Wideo",
+ "transcoding_realtime_video_codecs_description": "Kodeki wideo dostępne dla transkodowania w czasie rzeczywistym. Aplikacje klienckie wybiorą najlepszą opcję wspierane przez system w trakcie odtwarzania. AVI jest wydajniejsze niż HEVC, który jest wydajniejszy niż H.264. Mając aktywne przyspieszenie sprzętowe wybierz tylko te kodeki, które są wspierane przez twoje urządzenie. Transkodując programowo pamiętaj, że H.264 jest szybsze niż AVI, a HEVC jest od niego wolniejszy.",
"transcoding_reference_frames": "Ramki referencyjne",
"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",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Przeglądarka zasobów",
"assets": "Zasoby",
"assets_added_to_album_count": "Dodano {count, plural, one {# zasób} few {# zasoby} other {# zasobów}} do albumu",
+ "assets_added_to_album_partial_count": "Dodano {successCount} z {totalCount, plural, one {# zasób} few {# zasoby} other {# zasobów}} do albumu",
"assets_added_to_albums_count": "Dodano {assetTotal, plural, one {# zasób} few {# zasoby} other {# zasobów}} do {albumTotal, plural, one {# albumu} other {# albumów}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Zasób nie może zostać dodany} other {Zasoby nie mogą zostać dodane}} do albumu",
"assets_cannot_be_added_to_albums": "{count, plural, one {Zasób nie może być dodany} other {Zasoby nie mogą być dodane}} do żadnego z albumów",
@@ -794,7 +814,6 @@
"custom_date": "Data niestandardowa",
"custom_locale": "Niestandardowe ustawienia regionalne",
"custom_locale_description": "Formatuj daty, godziny i liczby zgodnie z wybranym językiem i regionem",
- "custom_url": "Niestandardowy URL",
"cutoff_date_description": "Zachowaj zdjęcia z ostatnich…",
"cutoff_day": "{count, plural, one {dzień} other {dni}}",
"cutoff_year": "{count, plural, one {rok} few {lata} other {lat}}",
@@ -1461,6 +1480,7 @@
"never": "Nigdy",
"new_album": "Nowy album",
"new_api_key": "Nowy Klucz API",
+ "new_feature": "Nowa funkcjonalność",
"new_password": "Nowe hasło",
"new_person": "Nowa osoba",
"new_pin_code": "Nowy kod PIN",
@@ -1504,6 +1524,7 @@
"not_available": "Nie dotyczy",
"not_in_any_album": "Bez albumu",
"not_selected": "Nie wybrano",
+ "not_set": "Nie ustawiono",
"notes": "Uwagi",
"nothing_here_yet": "Nic tu jeszcze nie ma",
"notification_backup_reliability": "Włącz powiadomienia, aby zwiększyć niezawodność tworzenia kopii zapasowych w tle",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Konfigurator Obtainium",
"obtainium_configurator_instructions": "Użyj Obtainium, aby zainstalować i aktualizować aplikację na Androida bezpośrednio z wydania GitHuba Immich. Utwórz klucz API i wybierz wariant, aby utworzyć link konfiguracyjny Obtainium",
"ocr": "OCR",
+ "ocr_body": "Immich odczytuje teraz tekst znajdujący się na twoich zdjęciach, dzięki czemu możesz je wyszukiwać na podstawie treści.",
+ "ocr_title": "Wyszukaj tekst na twoich zdjęciach",
"official_immich_resources": "Oficjalne zasoby Immicha",
"offline": "Offline",
"offset": "Przesunięcie",
@@ -1539,6 +1562,8 @@
"open": "Otwórz",
"open_calendar": "Otwórz kalendarz",
"open_in_browser": "Otwórz w przeglądarce",
+ "open_in_immich_body": "Ustaw Immich jako domyślną galerię w systemie Android, aby otwierać zdjęcia bezpośrednio z innych aplikacji.",
+ "open_in_immich_title": "Otwórz zdjęcia w Immich",
"open_in_map_view": "Otwórz w widoku mapy",
"open_in_openstreetmap": "Otwórz w OpenStreetMap",
"open_the_search_filters": "Otwórz filtry wyszukiwania",
@@ -1596,7 +1621,7 @@
"person": "Osoba",
"person_age_months": "{months, plural, one {# miesiąc} few {# miesiące} many {# miesięcy} other {# miesięcy}}",
"person_age_year_months": "1 rok, {months, plural, one {# miesiąc} few {# miesiące} many {# miesięcy} other {# miesięcy}}",
- "person_age_years": "{years, plural, one {# rok} few {# lata} many {# lat} other {# lat}}",
+ "person_age_years": "{years, plural, one {# rok} few {# lata} other {# lat}}",
"person_birthdate": "Urodzony {date}",
"person_hidden": "{name}{hidden, select, true { (ukryty)} other {}}",
"person_recognized": "Osoba rozpoznana",
@@ -1697,7 +1722,10 @@
"recent": "Ostatnie",
"recent_searches": "Ostatnie wyszukiwania",
"recently_added": "Ostatnio dodane",
+ "recently_added_body": "Przejdź od razu do wszystkich elementów, które ostatnio dodałeś, na specjalnej stronie.",
+ "recently_added_description": "Przeglądaj swoje zasoby posortowane według daty przesłania ich do Immich",
"recently_added_page_title": "Ostatnio Dodane",
+ "recently_added_title": "Ostatnio dodane",
"recently_taken": "Ostatnio wykonane",
"refresh": "Odśwież",
"refresh_encoded_videos": "Odśwież enkodowane wideo",
@@ -1904,6 +1932,8 @@
"share_link": "Udostępnij link",
"share_original": "Użyj orginału (duży)",
"share_preview": "Użyj miniatury (mała)",
+ "share_quality_body": "Naciśnij i przytrzymaj przycisk udostępniania, aby wybrać jakość obrazu przed udostępnieniem.",
+ "share_quality_title": "Wybierz jakość udostępnianych zasobów",
"shared": "Udostępnione",
"shared_album_activities_input_disable": "Komentarz jest wyłączony",
"shared_album_activity_remove_content": "Czy chcesz usunąć tę aktywność?",
@@ -1919,6 +1949,8 @@
"shared_link_clipboard_copied_massage": "Skopiowane do schowka",
"shared_link_create_error": "Błąd podczas tworzenia linka do udostępnienia",
"shared_link_custom_url_description": "Otwórz udostępniony link z niestandardowym adresem URL",
+ "shared_link_custom_url_title": "Niestandardowy adres URL",
+ "shared_link_custom_url_warning": "Ostrzeżenie: niestandardowy adres URL z prawym ukośnikiem może nie działać zgodnie z oczekiwaniami.",
"shared_link_edit_description_hint": "Wprowadź opis udostępnienia",
"shared_link_edit_expire_after_option_day": "1 dniu",
"shared_link_edit_expire_after_option_days": "{count} dniach",
@@ -1985,16 +2017,19 @@
"sign_out": "Wyloguj się",
"sign_up": "Zarejestruj się",
"size": "Rozmiar",
+ "skip": "Pomiń",
"skip_to_content": "Przejdź do treści",
"skip_to_folders": "Przejdź do folderów",
"skip_to_tags": "Przejdź do tagów",
"slideshow": "Pokaz slajdów",
+ "slideshow_body": "Usiądź wygodnie i obejrzyj swoje zdjęcia w formie pokazu slajdów na pełnym ekranie.",
"slideshow_metadata_overlay_mode": "Treść nakładki",
"slideshow_metadata_overlay_mode_description_only": "Tylko opis",
"slideshow_metadata_overlay_mode_full": "Pełna",
"slideshow_repeat": "Powtórz pokaz slajdów",
"slideshow_repeat_description": "Zapętl pokaz slajdów",
"slideshow_settings": "Ustawienia pokazu slajdów",
+ "slideshow_title": "Pokaz slajdów",
"smart_album": "Album inteligentny",
"some_assets_already_have_a_location_warning": "Niektóre z wybranych zasobów mają już lokalizację",
"sort_albums_by": "Sortuj albumy według...",
@@ -2122,6 +2157,7 @@
"unknown": "Nieznany",
"unknown_country": "Nieznane państwo",
"unknown_date": "Nieznana data",
+ "unknown_schema": "Nieznany schemat",
"unknown_year": "Rok nieznany",
"unlimited": "Nieograniczony",
"unlink_motion_video": "Rozłącz ruchome wideo",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "Błędy",
"upload_status_uploaded": "Przesłano",
"upload_success": "Przesyłanie powiodło się, odśwież stronę, aby zobaczyć nowo przesłane zasoby.",
+ "upload_to_album_body": "Użytkownicy, którzy nie korzystają z funkcji ręcznego przesyłania, mogą teraz dodawać lokalne zdjęcia bezpośrednio do albumu podczas przesyłania. Nie ma już potrzeby przesyłania i późniejszego dodawania zdjęć do albumu.",
+ "upload_to_album_title": "Prześlij bezpośrednio do albumu",
"upload_to_immich": "Prześlij do Immich ({count})",
"uploading": "Przesyłanie",
"uploading_media": "Przesyłanie multimediów",
@@ -2224,6 +2262,9 @@
"week": "Tydzień",
"welcome": "Witaj",
"welcome_to_immich": "Witamy w immich",
+ "whats_new": "Co nowego",
+ "whats_new_settings_subtitle": "Zobacz, co nowego w Immich",
+ "whats_new_version": "Wersja {version}",
"when": "Kiedy",
"width": "Szerokość",
"wifi_name": "Nazwa Wi-Fi",
diff --git a/i18n/pt.json b/i18n/pt.json
index 2973d40d32..43981a6fd2 100644
--- a/i18n/pt.json
+++ b/i18n/pt.json
@@ -62,9 +62,9 @@
"cleared_jobs": "Eliminadas as tarefas de: {job}",
"config_set_by_file": "A configuração está atualmente definida por um ficheiro de configuração",
"confirm_delete_library": "Tem a certeza de que deseja eliminar a biblioteca {library} ?",
- "confirm_delete_library_assets": "Tem a certeza de que deseja eliminar esta biblioteca? Isto eliminará {count, plural, one {# ficheiro incluído} other {todos os # ficheiros incluídos}} do Immich e esta ação não pode ser anulada. Os ficheiros permanecerão no disco.",
+ "confirm_delete_library_assets": "Tem a certeza de que deseja eliminar esta biblioteca? Irá eliminar {count, plural, one {# ficheiro incluído} other {todos os # ficheiros incluídos}} nesta do Immich e esta ação não pode ser anulada. Os ficheiros permanecerão no disco.",
"confirm_email_below": "Para confirmar, escreva \"{email}\" abaixo",
- "confirm_reprocess_all_faces": "Tem a certeza de que deseja reprocessar todos os rostos? Isto também limpará os nomes das pessoas.",
+ "confirm_reprocess_all_faces": "Tem a certeza de que deseja reprocessar todos os rostos? Também irá limpar os nomes das pessoas.",
"confirm_user_password_reset": "Tem a certeza de que deseja redefinir a palavra-passe de {user}?",
"confirm_user_pin_code_reset": "Tem a certeza de que quer repor o código PIN de {user}?",
"copy_config_to_clipboard_description": "Copiar a configuração atual do sistema como um objeto JSON para a área de transferência",
@@ -74,15 +74,15 @@
"cron_expression_presets": "Predefinições das expressões Cron",
"disable_login": "Desativar inicio de sessão",
"download_csv": "Descarregar CSV",
- "duplicate_detection_job_description": "Executa a aprendizagem de máquina em ficheiros para detetar imagens semelhantes. Depende da Pesquisa Inteligente",
- "exclusion_pattern_description": "Os padrões de exclusão permitem ignorar ficheiros e pastas ao analisar a sua biblioteca. Isto é útil se tiver pastas que contenham ficheiros que não deseja importar, como ficheiros RAW.",
+ "duplicate_detection_job_description": "Executa a aprendizagem de máquina nos ficheiros para detetar imagens semelhantes. Depende da Pesquisa Inteligente",
+ "exclusion_pattern_description": "Os padrões de exclusão permitem ignorar ficheiros e pastas ao analisar a sua biblioteca. É útil se tiver pastas que contenham ficheiros que não deseja importar, como ficheiros RAW.",
"export_config_as_json_description": "Descarregar a configuração atual do sistema como um ficheiro JSON",
"external_libraries_page_description": "Página de administrador de bibliotecas externas",
"face_detection": "Deteção de Rostos",
"face_detection_description": "Deteta rostos em ficheiros utilizando aprendizagem automática. Para vídeos, apenas a miniatura é considerada. \"Atualizar\" (re)processa todos os ficheiros, enquanto \"Redefinir\" elimina todos os dados de rostos. \"Em falta\" coloca em fila ficheiros que ainda não foram processados. Os rostos detetados serão colocados em fila para Reconhecimento Facial após a conclusão da Deteção de Rostos, agrupando-os em pessoas novas ou já existentes.",
"facial_recognition_job_description": "Agrupa rostos detetadas em pessoas. Esta etapa é executada após a conclusão da Deteção de Rostos. \"Redefinir\" (re)agrupa todos os rostos. \"Em falta\" coloca em fila rostos que ainda não têm uma pessoa atribuída.",
"failed_job_command": "Ocorreu um erro no comando {command} para a tarefa: {job}",
- "force_delete_user_warning": "AVISO: Isto removerá imediatamente o utilizador e todos os ficheiros. Esta ação não pode ser anulada e os ficheiros não poderão ser recuperados.",
+ "force_delete_user_warning": "AVISO: Esta ação irá remover imediatamente o utilizador e todos os ficheiros. Esta ação não pode ser anulada e os ficheiros não poderão ser recuperados.",
"image_format": "Formato",
"image_format_description": "WebP produz ficheiros mais pequenos do que JPEG, mas é mais lento para codificar.",
"image_fullsize_description": "Imagem de tamanho inteiro sem meta dados, utilizada quando esta for ampliada",
@@ -91,9 +91,9 @@
"image_fullsize_quality_description": "Qualidade da imagem de tamanho inteiro de 1 a 100. Valores mais altos são melhores, mas produzem ficheiros maiores.",
"image_fullsize_title": "Definições de imagem de tamanho inteiro",
"image_prefer_embedded_preview": "Preferir visualização incorporada",
- "image_prefer_embedded_preview_setting_description": "Utilizar visualizações incorporadas em fotos RAW como entrada para processamento de imagem e quando disponível. Isto pode produzir cores mais precisas para algumas imagens, mas a qualidade da visualização depende da câmara e a imagem pode ter mais artefatos de compressão.",
+ "image_prefer_embedded_preview_setting_description": "Utilizar visualizações incorporadas em fotos RAW como entrada para processamento de imagem e quando disponível. Poderá produzir cores mais precisas para algumas imagens, mas a qualidade da visualização depende da câmara e a imagem pode ter mais artefactos de compressão.",
"image_prefer_wide_gamut": "Prefira ampla gama",
- "image_prefer_wide_gamut_setting_description": "Utilizar Display P3 para miniaturas. Isto preserva melhor a vibrância das imagens com espaços de cores amplos, mas as imagens podem aparecer de maneira diferente em dispositivos antigos com uma versão antiga do navegador. As imagens sRGB são mantidas como sRGB para evitar mudanças de cores.",
+ "image_prefer_wide_gamut_setting_description": "Utilizar Display P3 para miniaturas. Irá preservar melhor a vibrância das imagens com espaços de cores amplos, mas as imagens podem aparecer de maneira diferente em dispositivos antigos com uma versão antiga do navegador. As imagens sRGB são mantidas como sRGB para evitar mudanças de cores.",
"image_preview_description": "Imagem de tamanho médio sem metadados, utilizada ao visualizar um único ficheiro e pela aprendizagem de máquina",
"image_preview_quality_description": "Qualidade de pré-visualização de 1 a 100. Maior é melhor, mas produz ficheiros maiores e pode reduzir a capacidade de resposta da aplicação. Definir um valor demasiado baixo pode afetar a qualidade da aprendizagem de máquina.",
"image_preview_title": "Definições de Pré-visualização",
@@ -108,7 +108,22 @@
"image_thumbnail_quality_description": "Qualidade das miniaturas de 1 a 100. Maior é melhor, mas produz tamanhos de ficheiro maiores e podem reduzir a capacidade de resposta da aplicação.",
"image_thumbnail_title": "Definições de Miniaturas",
"import_config_from_json_description": "Importar configuração do sistema ao carregar um ficheiro JSON",
- "job_concurrency": "{job} em simultâneo",
+ "integrity_checks_checksum_files": "Checksum de ficheiros",
+ "integrity_checks_checksum_files_description": "Configurar a verificação de checksum",
+ "integrity_checks_checksum_files_enable_description": "Ativar a verificação de checksum",
+ "integrity_checks_checksum_files_percentage_limit": "Limite percentual",
+ "integrity_checks_checksum_files_percentage_limit_description": "Configurar a percentagem máxima entre 0.01 e 1 para o quanto da verificação checksum deve ser executada a cada intervalo.",
+ "integrity_checks_checksum_files_time_limit": "Tempo limite",
+ "integrity_checks_checksum_files_time_limit_description": "Configurar a duração máxima que cada verificação de checksum deve executar para cada intervalo. (ms)",
+ "integrity_checks_missing_files": "Ficheiros em falta",
+ "integrity_checks_missing_files_description": "Configurar a frequência e ativar ou desativar a verificação de ficheiros em falta",
+ "integrity_checks_missing_files_enable_description": "Ativar a verificação de ficheiros em falta",
+ "integrity_checks_settings": "Verificações de integridade",
+ "integrity_checks_settings_description": "Gerir os intervalos das verificações de integridade",
+ "integrity_checks_untracked_files": "Ficheiros não monitorizados",
+ "integrity_checks_untracked_files_description": "Configurar a frequência e ativar ou desativar a verificação de ficheiros não monitorizados",
+ "integrity_checks_untracked_files_enable_description": "Ativar a verificação de ficheiros não monitorizados",
+ "job_concurrency": "\"{job}\" em simultâneo",
"job_created": "Tarefa criada",
"job_not_concurrency_safe": "Esta tarefa não pode ser executada em simultâneo.",
"job_settings": "Definições de Tarefas",
@@ -163,7 +178,7 @@
"machine_learning_min_detection_score": "Pontuação mínima de deteção",
"machine_learning_min_detection_score_description": "Pontuação mínima de confiança para um rosto ser detetado, de 0 a 1. Valores mais baixos detetam mais rostos, mas poderão resultar em falsos positivos.",
"machine_learning_min_recognized_faces": "Mínimo de rostos reconhecidos",
- "machine_learning_min_recognized_faces_description": "O número mínimo de faces reconhecidas para uma pessoa ser criada na lista. Aumentar isto torna o Reconhecimento Facial mais preciso, no entanto aumenta a probabilidade de um rosto não ser atribuído a uma pessoa.",
+ "machine_learning_min_recognized_faces_description": "O número mínimo de faces reconhecidas para uma pessoa ser criada na lista. Aumentá-lo torna o Reconhecimento Facial mais preciso, no entanto aumenta a probabilidade de um rosto não ser atribuído a uma pessoa.",
"machine_learning_ocr": "Reconhecimento Ótico de Caracteres (OCR)",
"machine_learning_ocr_description": "Utilizar aprendizagem de máquina para reconhecer texto dentro de imagens",
"machine_learning_ocr_enabled": "Ativar OCR",
@@ -175,7 +190,7 @@
"machine_learning_ocr_min_recognition_score": "Pontuação mínima de reconhecimento",
"machine_learning_ocr_min_score_recognition_description": "Pontuação mínima de confiança para o texto ser reconhecido de 0 a 1. Valores mais baixos vão reconhecer mais texto mas podem resultar em falsos positivos.",
"machine_learning_ocr_model": "Modelo de OCR",
- "machine_learning_ocr_model_description": "Modelos do servidor têm mais precisão do que modelos móveis, mas demoram mais tempo a processar e utilizam mais memória.",
+ "machine_learning_ocr_model_description": "Os modelos de servidor têm mais precisão do que os modelos de dispositivos móveis, mas demoram mais tempo a processar e utilizam mais memória.",
"machine_learning_settings": "Definições de aprendizagem de máquina (Machine Learning)",
"machine_learning_settings_description": "Gerir funcionalidades e definições de aprendizagem de máquina",
"machine_learning_smart_search": "Pesquisa Inteligente",
@@ -257,7 +272,7 @@
"no_paths_added": "Nenhum caminho adicionado",
"no_pattern_added": "Nenhum padrão adicionado",
"note_apply_storage_label_previous_assets": "Observação: Para aplicar o Rótulo de Armazenamento a ficheiros carregados anteriormente, execute a",
- "note_cannot_be_changed_later": "NOTA: Isto não pode ser alterado posteriormente!",
+ "note_cannot_be_changed_later": "NOTA: Isto não poderá ser alterado posteriormente!",
"notification_email_from_address": "A partir do endereço",
"notification_email_from_address_description": "Endereço de e-mail do remetente, por exemplo: \"Servidor de Fotos Immich \". Certifique-se de que utiliza um endereço através do qual pode enviar e-mails.",
"notification_email_host_description": "Host do servidor de e-mail (por exemplo, smtp.immich.app)",
@@ -277,7 +292,7 @@
"notification_settings": "Definições de notificações",
"notification_settings_description": "Gerir definições de notificações, incluindo e-mail",
"oauth_allow_insecure_requests": "Permitir pedidos inseguros",
- "oauth_allow_insecure_requests_description": "AVISO: Isto irá desativar a validação de certificados TLS para pedidos OAuth e poderá ficar exposto a ataques MITM (\"Man-in-the-middle\").",
+ "oauth_allow_insecure_requests_description": "AVISO: Irá desativar a validação de certificados TLS para pedidos OAuth e poderá ficar exposto a ataques MITM (\"Man-in-the-middle\").",
"oauth_auto_launch": "Arranque automático",
"oauth_auto_launch_description": "Iniciar o fluxo de sessão por OAuth automaticamente ao navegar até a página de inicio de sessão",
"oauth_auto_register": "Registo automático",
@@ -303,7 +318,7 @@
"oauth_storage_quota_default_description": "Quota em GiB a ser usada quando nenhuma reivindicação for fornecida.",
"oauth_timeout": "Tempo Limite de Requisição",
"oauth_timeout_description": "Tempo limite para requisições, em milissegundos",
- "ocr_job_description": "Utilizar aprendizagem de máquina para reconhecer texto em imagens",
+ "ocr_job_description": "Utiliza a aprendizagem de máquina para reconhecer texto em imagens",
"password_enable_description": "Iniciar sessão com e-mail e palavra-passe",
"password_settings": "Palavra-passe de acesso",
"password_settings_description": "Gerir definições de inicio de sessão e palavra-passe",
@@ -336,9 +351,9 @@
"server_welcome_message_description": "Uma mensagem que é exibida na página de inicio de sessão.",
"settings_page_description": "Página de administrador das definições",
"sidecar_job": "Metadados secundários",
- "sidecar_job_description": "Descobrir ou sincronizar metadados secundários a partir do sistema de ficheiros",
+ "sidecar_job_description": "Descobre ou sincroniza metadados secundários a partir do sistema de ficheiros",
"slideshow_duration_description": "Tempo em segundos para exibir cada imagem",
- "smart_search_job_description": "Execute a aprendizagem automática em ficheiros para oferecer apoio à Pesquisa Inteligente",
+ "smart_search_job_description": "Executa a aprendizagem de máquina nos ficheiros para oferecer apoio à Pesquisa Inteligente",
"storage_template_date_time_description": "O registo de data e hora de criação do ficheiro é utilizado para preencher estas informações",
"storage_template_date_time_sample": "Exemplo de data/hora {date}",
"storage_template_enable_description": "Ativar mecanismo de modelo de armazenamento",
@@ -346,11 +361,11 @@
"storage_template_hash_verification_enabled_description": "Ativa a verificação de hash, não desative esta opção a menos que tenha a certeza das implicações",
"storage_template_migration": "Migração de modelo de armazenamento",
"storage_template_migration_description": "Aplica o {template} atual para ficheiros previamente carregados",
- "storage_template_migration_info": "O modelo de armazenamento irá converter todas as extensões para letra minúscula. As mudanças do modelo apenas se aplicarão a novos ficheiros. Para aplicar o modelo retroativamente para os ficheiros carregados anteriormente, execute o {job}.",
+ "storage_template_migration_info": "O modelo de armazenamento irá converter todas as extensões para letra minúscula. As mudanças do modelo apenas se aplicarão a novos ficheiros. Para aplicar o modelo retroativamente para todos os ficheiros carregados anteriormente, execute a {job}.",
"storage_template_migration_job": "Tarefa de Migração do Modelo de Armazenamento",
"storage_template_more_details": "Para mais informações sobre esta funcionalidade, dirija-se a Modelo de Armazenamento e às suas implicações",
"storage_template_onboarding_description_v2": "Quando ativada, está função irá automaticamente organizar ficheiros com base num modelo definido pelo utilizador. Para mais informações, consulte a documentação.",
- "storage_template_path_length": "Limite aproximado do tamanho do caminho: {length, number}{limit, number}",
+ "storage_template_path_length": "Limite aproximado do tamanho do caminho: {length, number}/{limit, number}",
"storage_template_settings": "Modelo de Armazenamento",
"storage_template_settings_description": "Gerir a estrutura de pastas e o nome do ficheiro carregado",
"storage_template_user_label": "{label} é o Rótulo do Armazenamento do utilizador",
@@ -383,7 +398,7 @@
"transcoding_accepted_containers_description": "Selecione os formatos de contentores que não precisam de ser remisturados para MP4. Usado apenas para algumas políticas de transcodificação.",
"transcoding_accepted_video_codecs": "Codecs de vídeo aceitos",
"transcoding_accepted_video_codecs_description": "Selecione quais os codecs de vídeo que não precisam de ser transcodificados. Usado apenas para determinadas políticas de transcodificação.",
- "transcoding_advanced_options_description": "Opções que a maioria dos utilizadores não deverá precisar de alterar",
+ "transcoding_advanced_options_description": "Opções que a maioria dos utilizadores não deverão precisar de alterar",
"transcoding_audio_codec": "Codec de áudio",
"transcoding_audio_codec_description": "Opus é a opção de mais alta qualidade, mas tem menor compatibilidade com dispositivos ou software antigos.",
"transcoding_bitrate_description": "Vídeos com taxa de bits superior à máxima ou que não estão num formato aceite",
@@ -411,11 +426,15 @@
"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)",
- "transcoding_preset_preset_description": "Velocidade de compressão. Predefinições mais lentas produzem ficheiros menores e aumentam a qualidade ao atingir uma determinada taxa de bits. VP9 ignora velocidades acima de \"mais rápido\".",
+ "transcoding_preset_preset_description": "Velocidade de compressão. Predefinições mais lentas produzem ficheiros menores e aumentam a qualidade ao atingir uma determinada taxa de bits. VP9 ignora velocidades acima de \"faster\".",
"transcoding_realtime": "Transcodificação em Tempo Real [EXPERIMENTAL]",
"transcoding_realtime_description": "Permite que a transcodificação seja efetuada em tempo real enquanto o vídeo a está a ser transmitido. Permite a alteração de qualidade, mas pode causar um maior atraso na reprodução e lentidão dependendo da capacidade do servidor.",
"transcoding_realtime_enabled": "Ativar transcodificação em tempo real",
"transcoding_realtime_enabled_description": "Se estiver desativado, o servidor irá recusar o início de novas sessões de transcodificação em tempo real.",
+ "transcoding_realtime_resolutions": "Resoluções",
+ "transcoding_realtime_resolutions_description": "As resoluções que são disponibilizadas para transcodificação em tempo real. Resoluções mais altas podem causar problemas de reprodução se o servidor não conseguir transcodificá-las com rapidez suficiente.",
+ "transcoding_realtime_video_codecs": "Codecs de vídeo",
+ "transcoding_realtime_video_codecs_description": "Os codecs de vídeo que são disponibilizados para transcodificação em tempo real. Os clientes vão escolher a melhor opção que suportam durante a reprodução. AV1 é mais eficiente do que HEVC, que por sua vez é mais eficiente do que H.264. Ao utilizar aceleração por hardware, selecione apenas os codecs que o acelerador consegue codificar. Ao utilizar transcodificação por software, observe que H.264 é mais rápido do que AV1, que por sua vez é mais rápido do que HEVC.",
"transcoding_reference_frames": "Quadros de referência",
"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",
@@ -442,7 +461,7 @@
"trash_settings_description": "Gerir definições da reciclagem",
"unlink_all_oauth_accounts": "Desvincular todas as contas OAuth",
"unlink_all_oauth_accounts_description": "Lembre-se de desvincular todas as contas OAuth antes de migrar para um novo provedor.",
- "unlink_all_oauth_accounts_prompt": "Tem a certeza de que deseja desvincular todas as contas OAuth? Isto irá redefinir o ID OAuth de cada utilizador e não poderá ser anulado.",
+ "unlink_all_oauth_accounts_prompt": "Tem a certeza de que deseja desvincular todas as contas OAuth? Irá redefinir o ID OAuth de cada utilizador e não poderá ser anulado.",
"user_cleanup_job": "Limpeza de utilizadores",
"user_delete_delay": "A conta e os ficheiros de {user} serão agendados para eliminação permanente dentro de {delay, plural, one {# dia} other {# dias}}.",
"user_delete_delay_settings": "Atraso de eliminação",
@@ -562,7 +581,7 @@
"asset_list_layout_settings_group_by": "Agrupar ficheiros por",
"asset_list_layout_settings_group_by_month_day": "Mês + dia",
"asset_list_layout_sub_title": "Disposição",
- "asset_list_settings_subtitle": "Configurações de disposição da grade de fotos",
+ "asset_list_settings_subtitle": "Definições de disposição da grade de fotos",
"asset_list_settings_title": "Grade de fotos",
"asset_not_found_on_device_android": "Ficheiro não encontrado no dispositivo",
"asset_not_found_on_device_ios": "Ficheiro não encontrado no dispositivo. Se estiver a utilizar o iCloud, o ficheiro pode estar inacessível devido a um ficheiro corrompido armazenado no iCloud",
@@ -574,10 +593,11 @@
"asset_troubleshoot": "Resolução de problemas com conteúdos",
"asset_uploaded": "Enviado",
"asset_uploading": "A enviar…",
- "asset_viewer_settings_subtitle": "Gerenciar as configurações do visualizador da galeria",
+ "asset_viewer_settings_subtitle": "Gerir as definições do visualizador da galeria",
"asset_viewer_settings_title": "Visualizador",
"assets": "Ficheiros",
"assets_added_to_album_count": "{count, plural, one {# ficheiro adicionado} other {# ficheiros adicionados}} ao álbum",
+ "assets_added_to_album_partial_count": "{totalCount, plural, one {Foi adicionado} other {Foram adicionados}} {successCount} de {totalCount} {totalCount, plural, one {ficheiro} other {ficheiros}} ao álbum",
"assets_added_to_albums_count": "{assetTotal, plural, one {Foi adicionado # ficheiro} other {Foram adiciondos # ficheiros}} a {albumTotal, plural, one {# álbum} other {# albuns}}",
"assets_cannot_be_added_to_album_count": "Não foi possível adicionar {count, plural, one {ficheiro} other {ficheiros}} ao álbum",
"assets_cannot_be_added_to_albums": "{count, plural, one {Ficheiro não pode ser adicionado} other {Ficheiros não podem ser adiciondos}} a nenhum dos álbuns",
@@ -624,7 +644,7 @@
"backup_controller_page_remainder_sub": "Fotos e vídeos selecionados restantes para fazer backup",
"backup_controller_page_server_storage": "Armazenamento no servidor",
"backup_controller_page_storage_format": "{used} de {total} utilizado",
- "backup_controller_page_to_backup": "Álbuns para fazer backup",
+ "backup_controller_page_to_backup": "Escolha os álbuns para fazer cópia de segurança",
"backup_controller_page_total_sub": "Todas as fotos e vídeos dos álbuns selecionados",
"backup_error_sync_failed": "A sincronização falhou. Não é possível fazer a cópia de segurança.",
"backup_info_card_assets": "ficheiros",
@@ -794,7 +814,6 @@
"custom_date": "Data personalizada",
"custom_locale": "Localização personalizada",
"custom_locale_description": "Formatar datas, horas e números baseados na língua e região selecionadas",
- "custom_url": "URL personalizado",
"cutoff_date_description": "Manter fotos dos últimos…",
"cutoff_day": "{count, plural, one {dia} other {dias}}",
"cutoff_year": "{count, plural, one {ano} other {anos}}",
@@ -1125,7 +1144,7 @@
"forgot_pin_code_question": "Esqueceu-se do seu PIN?",
"forward": "Para a frente",
"free_up_space": "Libertar Espaço",
- "free_up_space_description": "Mover fotos e vídeos que tenham sido copiados para o servidor para a reciclagem do seu dispositivo para libertar espaço. As cópias no servidor mantêm-se seguras.",
+ "free_up_space_description": "Mover fotos e vídeos que já tenham sido copiados para o servidor para a reciclagem do seu dispositivo para libertar espaço. As cópias no servidor mantêm-se seguras.",
"free_up_space_settings_subtitle": "Libertar espaço no dispositivo",
"full_path": "Caminho completo: {path}",
"full_path_or_folder": "Caminho completo ou nome da pasta",
@@ -1301,11 +1320,11 @@
"login_form_failed_get_oauth_server_config": "Ocorreu um erro ao iniciar sessão com o OAuth, verifique o URL do servidor",
"login_form_failed_get_oauth_server_disable": "A função OAuth não está disponível neste servidor",
"login_form_failed_login": "Ocorreu um erro ao iniciar sessão, verifique o URL do servidor, o e-mail e a palavra-passe",
- "login_form_handshake_exception": "Erro ao conectar com o servidor. Ative o suporte para certificados auto-assinados nas configurações se estiver utilizando um certificado auto-assinado.",
+ "login_form_handshake_exception": "Ocorreu um erro ao autenticar com o servidor. Ative o suporte para certificados auto-assinados nas definições se estiver a utilizar um certificado auto-assinado.",
"login_form_password_hint": "Palavra-passe",
- "login_form_server_empty": "Insira a URL do servidor.",
- "login_form_server_error": "Não foi possível ligar ao servidor.",
- "login_has_been_disabled": "O início de sessão foi desativado.",
+ "login_form_server_empty": "Insira a URL do servidor",
+ "login_form_server_error": "Não foi possível ligar ao servidor",
+ "login_has_been_disabled": "O início de sessão foi desativado",
"login_password_changed_error": "Ocorreu um erro ao atualizar a sua palavra-passe",
"login_password_changed_success": "Palavra-passe atualizada com sucesso",
"logout_all_device_confirmation": "Tem a certeza de que deseja terminar a sessão em todos os dispositivos?",
@@ -1356,6 +1375,7 @@
"map_location_picker_page_use_location": "Utilizar esta localização",
"map_location_service_disabled_content": "Serviço de localização precisa de estar ativado para mostrar recursos da localização atual. Deseja ativar agora?",
"map_location_service_disabled_title": "Serviço de localização desativado",
+ "map_marker_for_image": "Marcador do mapa para a foto tirada em {city}, {country}",
"map_marker_with_image": "Marcador de mapa com imagem",
"map_no_location_permission_content": "A permissão da localização é necessária para mostrar recursos da localização atual. Deseja conceder a permissão agora?",
"map_no_location_permission_title": "Permissão de localização foi negada",
@@ -1460,6 +1480,7 @@
"never": "Nunca",
"new_album": "Novo Álbum",
"new_api_key": "Nova Chave de API",
+ "new_feature": "Nova Funcionalidade",
"new_password": "Nova palavra-passe",
"new_person": "Nova Pessoa",
"new_pin_code": "Novo código PIN",
@@ -1485,7 +1506,7 @@
"no_duplicates_found": "Nenhum item duplicado foi encontrado.",
"no_exif_info_available": "Sem informações exif disponíveis",
"no_explore_results_message": "Carregue mais fotos para explorar a sua coleção.",
- "no_favorites_message": "Adicione aos favoritos para encontrar as suas melhores fotos e vídeos rapidamente",
+ "no_favorites_message": "Adicione aos favoritos para encontrar as suas melhores fotos e vídeos de forma rápida",
"no_libraries_message": "Crie uma biblioteca externa para ver as suas fotos e vídeos",
"no_local_assets_found": "Sem cálculo de verificação disponível",
"no_locked_photos_message": "Fotos e vídeos na pasta trancada estão ocultos e não serão exibidos enquanto explora ou pesquisa na biblioteca.",
@@ -1506,7 +1527,10 @@
"notes": "Notas",
"nothing_here_yet": "Ainda não existe nada aqui",
"notification_backup_reliability": "Ativar notificações para melhorar a fiabilidade da cópia de segurança em segundo plano",
- "notification_permission_dialog_content": "Para ativar as notificações, vá em Configurações e selecione permitir.",
+ "notification_enabled_list_tile_content": "O Immich utiliza notificações para cópias de segurança em segundo plano. Faça a gestão destas nas definições do seu dispositivo.",
+ "notification_enabled_list_tile_open_button": "Abrir Definições",
+ "notification_enabled_list_tile_title": "Notificações ativadas",
+ "notification_permission_dialog_content": "Para ativar as notificações, aceda às Definições e selecione permitir.",
"notification_permission_list_tile_content": "Conceder permissões para ativar notificações.",
"notification_permission_list_tile_enable_button": "Ativar notificações",
"notification_permission_list_tile_title": "Permissão de notificações",
@@ -1517,6 +1541,8 @@
"obtainium_configurator": "Configurador Obtainium",
"obtainium_configurator_instructions": "Utilize o Obtainium para instalar e atualizar a aplicação Android diretamente a partir do lançamento do Immich no Github. Crie uma chave API e selecione uma variante para criar a sua ligação de configuração do Obtainium",
"ocr": "Reconhecimento Ótico de Caracteres (OCR)",
+ "ocr_body": "O Immich agora lê o texto dentro das suas fotos, para que possa pesquisá-las pelo que está escrito nelas.",
+ "ocr_title": "Pesquisar por texto nas suas fotos",
"official_immich_resources": "Recursos oficiais do Immich",
"offline": "Offline",
"offset": "Desvio",
@@ -1535,6 +1561,8 @@
"open": "Abrir",
"open_calendar": "Abrir calendário",
"open_in_browser": "Abrir no navegador",
+ "open_in_immich_body": "Defina o Immich como a sua aplicação de galeria no Android para poder abrir fotos diretamente de outras aplicações.",
+ "open_in_immich_title": "Abrir fotos no Immich",
"open_in_map_view": "Abrir na visualização de mapa",
"open_in_openstreetmap": "Abrir no OpenStreetMap",
"open_the_search_filters": "Abrir os filtros de pesquisa",
@@ -1548,7 +1576,7 @@
"other": "Outro",
"other_devices": "Outros dispositivos",
"other_variables": "Outras variáveis",
- "owned": "Seus",
+ "owned": "Seu",
"owner": "Dono",
"page": "Página",
"partner": "Parceiro",
@@ -1584,7 +1612,7 @@
"permanent_deletion_warning_setting_description": "Exibir um aviso ao eliminar ficheiros de forma permanente",
"permanently_delete": "Eliminar permanentemente",
"permanently_delete_assets_count": "Eliminar permanentemente {count, plural, one {ficheiro} other {ficheiros}}",
- "permanently_delete_assets_prompt": "Tem a certeza de que deseja eliminar permanentemente {count, plural, one {este ficheiro?} other {estes # ficheiros?}} Esta ação também removerá {count, plural, one {isto do álbum} other {isto dos álbuns}}.",
+ "permanently_delete_assets_prompt": "Tem a certeza de que deseja eliminar permanentemente {count, plural, one {este ficheiro?} other {estes # ficheiros?}} Esta ação também irá {count, plural, one {removê-lo do álbum} other {removê-los dos álbuns}}.",
"permanently_deleted_asset": "Ficheiro eliminado permanentemente",
"permanently_deleted_assets_count": "{count, plural, one {# Ficheiro eliminado} other {# Ficheiros eliminados}} permanentemente",
"permission": "Permissão",
@@ -1592,7 +1620,7 @@
"person": "Pessoa",
"person_age_months": "{months, plural, one {# month} other {# months}} de idade",
"person_age_year_months": "1 ano, {months, plural, one {# month} other {# months}} de idade",
- "person_age_years": "{years, plural, other {# anos}} de idade",
+ "person_age_years": "{years, plural, one {# ano} other {# anos}} de idade",
"person_birthdate": "Nasceu a {date}",
"person_hidden": "{name}{hidden, select, true { (oculto)} other {}}",
"person_recognized": "Pessoa reconhecida",
@@ -1692,9 +1720,12 @@
"reassing_hint": "Atribuir ficheiros selecionados a uma pessoa existente",
"recent": "Recentes",
"recent_searches": "Pesquisas recentes",
- "recently_added": "Adicionados Recentemente",
+ "recently_added": "Adicionadas Recentemente",
+ "recently_added_body": "Aceda diretamente a tudo o que adicionou recentemente numa página dedicada.",
+ "recently_added_description": "Navegue pelos seus ficheiros ordenados pela data em que foram carregados para o Immich",
"recently_added_page_title": "Adicionado recentemente",
- "recently_taken": "Tirada recentemente",
+ "recently_added_title": "Adicionado recentemente",
+ "recently_taken": "Tiradas recentemente",
"refresh": "Atualizar",
"refresh_encoded_videos": "Atualizar vídeos codificados",
"refresh_faces": "Atualizar rostos",
@@ -1816,7 +1847,7 @@
"search_no_people_named": "Nenhuma pessoa chamada \"{name}\"",
"search_no_result": "Nenhum resultado encontrado, tente pesquisar por algo diferente",
"search_options": "Opções de pesquisa",
- "search_page_search_photos_videos": "Pesquise suas fotos e vídeos",
+ "search_page_search_photos_videos": "Pesquise pelas suas fotos e vídeos",
"search_page_view_all_button": "Ver tudo",
"search_people": "Pesquisar pessoas",
"search_places": "Pesquisar lugares",
@@ -1856,7 +1887,7 @@
"send_message": "Enviar mensagem",
"send_welcome_email": "Enviar E-mail de boas vindas",
"server_endpoint": "URL do servidor",
- "server_info_box_app_version": "Versão do app",
+ "server_info_box_app_version": "Versão da aplicação",
"server_info_box_server_url": "URL do servidor",
"server_offline": "Servidor Offline",
"server_online": "Servidor Online",
@@ -1900,6 +1931,8 @@
"share_link": "Partilhar ligação",
"share_original": "Utilizar original (grande)",
"share_preview": "Utilizar miniatura (pequeno)",
+ "share_quality_body": "Toque e segure no botão de partilha para escolher a qualidade da imagem antes de a partilhar.",
+ "share_quality_title": "Escolha a qualidade de partilha",
"shared": "Partilhado",
"shared_album_activities_input_disable": "Comentários desativados",
"shared_album_activity_remove_content": "Deseja apagar esta atividade?",
@@ -1914,7 +1947,9 @@
"shared_link_app_bar_title": "Links compartilhados",
"shared_link_clipboard_copied_massage": "Copiado para a área de transferência",
"shared_link_create_error": "Erro ao criar o link compartilhado",
- "shared_link_custom_url_description": "Aceda a este link partilhado com um URL personalizado",
+ "shared_link_custom_url_description": "Aceda a este link partilhado com um nome de URL personalizado",
+ "shared_link_custom_url_title": "URL Personalizado",
+ "shared_link_custom_url_warning": "Aviso: Um nome de URL personalizado com uma barra oblíqua pode causar resultados inesperados.",
"shared_link_edit_description_hint": "Digite a descrição do compartilhamento",
"shared_link_edit_expire_after_option_day": "1 dia",
"shared_link_edit_expire_after_option_days": "{count} dias",
@@ -1938,7 +1973,7 @@
"shared_link_expires_seconds": "Expira {count} segundos",
"shared_link_individual_shared": "Compartilhamento único",
"shared_link_info_chip_metadata": "EXIF",
- "shared_link_manage_links": "Gerenciar links compartilhados",
+ "shared_link_manage_links": "Gerir links partilhados",
"shared_link_options": "Opções de link partilhado",
"shared_link_password_description": "Exigir uma palavra-passe para aceder a este link partilhado",
"shared_links": "Links partilhados",
@@ -1981,16 +2016,19 @@
"sign_out": "Terminar sessão",
"sign_up": "Criar conta",
"size": "Tamanho",
+ "skip": "Saltar",
"skip_to_content": "Saltar para o conteúdo",
"skip_to_folders": "Saltar para pastas",
"skip_to_tags": "Saltar para as etiquetas",
"slideshow": "Apresentação",
+ "slideshow_body": "Descontraia e veja as suas fotos a serem reproduzidas numa apresentação em ecrã inteiro.",
"slideshow_metadata_overlay_mode": "Sobrepor conteúdo",
"slideshow_metadata_overlay_mode_description_only": "Apenas descrição",
"slideshow_metadata_overlay_mode_full": "Completo",
"slideshow_repeat": "Repetir apresentação de diapositivos",
"slideshow_repeat_description": "Repetir do inicio quando a apresentação acabar",
"slideshow_settings": "Definições de apresentação",
+ "slideshow_title": "Apresentação de diapositivos",
"smart_album": "Álbum inteligente",
"some_assets_already_have_a_location_warning": "Alguns dos ficheiros selecionados já possuem localização",
"sort_albums_by": "Ordenar álbuns por...",
@@ -2083,7 +2121,7 @@
"to_parent": "Subir um nível",
"to_select": "seleccionar",
"to_trash": "Reciclagem",
- "toggle_settings": "Alternar configurações",
+ "toggle_settings": "Alternar definições",
"toggle_theme_description": "Alternar tema",
"total": "Total",
"total_usage": "Total utilizado",
@@ -2118,6 +2156,7 @@
"unknown": "Desconhecido",
"unknown_country": "País desconhecido",
"unknown_date": "Data desconhecida",
+ "unknown_schema": "Esquema desconhecido",
"unknown_year": "Ano desconhecido",
"unlimited": "Ilimitado",
"unlink_motion_video": "Remover relação com video animado",
@@ -2134,7 +2173,7 @@
"unstack_action_prompt": "{count} desempilhados",
"unstacked_assets_count": "Desempilhados {count, plural, one {# ficheiro} other {# ficheiros}}",
"unsupported_field_type": "Tipo de campo não suportado",
- "unsupported_file_type": "O ficheiro {file} não pôde ser carregado porque o seu tipo de ficheiro {type} não é suportado.",
+ "unsupported_file_type": "O ficheiro {file} não pôde ser carregado porque o tipo de ficheiro {type} não é suportado.",
"untagged": "Sem etiqueta",
"up_next": "A seguir",
"update_location_action_prompt": "Atualize a localização de {count} ficheiros selecionados com:",
@@ -2152,7 +2191,9 @@
"upload_status_duplicates": "Duplicados",
"upload_status_errors": "Erros",
"upload_status_uploaded": "Enviado",
- "upload_success": "Carregamento realizado com sucesso, atualize a página para ver os novos ficheiros carregados.",
+ "upload_success": "Carregamento realizado com sucesso, atualize a página para ver os novos ficheiros.",
+ "upload_to_album_body": "Para os utilizadores que não utilizam a funcionalidade de carregamento manual, podem agora adicionar fotos guardadas localmente diretamente a um álbum enquanto as carrega, já não é necessário carregá-las primeiro para depois adicionar ao álbum.",
+ "upload_to_album_title": "Carregue diretamente para um álbum",
"upload_to_immich": "Enviar para o Immich ({count})",
"uploading": "Enviando",
"uploading_media": "A carregar media",
@@ -2187,9 +2228,9 @@
"variables": "Variáveis",
"version": "Versão",
"version_announcement_closing": "O seu amigo, Alex",
- "version_announcement_message": "Olá! Está disponível uma nova versão do Immich. Por favor leia as notas de lançamento para garantir que as suas configurações estão atualizadas e para evitar quaisquer erros, especialmente se usar o WatchTower ou qualquer mecanismo que lide com a atualização automática do Immich.",
+ "version_announcement_message": "Olá! Está disponível uma nova versão do Immich. Por favor leia as notas de lançamento para garantir que as suas definições estão atualizadas e para evitar quaisquer erros, especialmente se usar o WatchTower ou qualquer mecanismo que faça atualização automática do Immich.",
"version_history": "Histórico de versões",
- "version_history_item": "Instalado {version} em {date}",
+ "version_history_item": "Versão {version} instalada em {date}",
"video": "Vídeo",
"video_hover_setting": "Reproduzir vídeo em miniatura quando passar com o cursor por cima",
"video_hover_setting_description": "Reproduzir vídeo em miniatura quando o cursor está sobre o item. Mesmo quando está desativado, a reprodução ainda pode ser iniciada passando sobre o ícone de reproduzir.",
@@ -2220,6 +2261,9 @@
"week": "Semana",
"welcome": "Bem-vindo(a)",
"welcome_to_immich": "Bem-vindo(a) ao Immich",
+ "whats_new": "O que há de novo",
+ "whats_new_settings_subtitle": "Veja o que há de novo no Immich",
+ "whats_new_version": "Versão {version}",
"when": "Quando",
"width": "Largura",
"wifi_name": "Nome da rede Wi-Fi",
diff --git a/i18n/pt_BR.json b/i18n/pt_BR.json
index 3d4681a950..86e97d5db4 100644
--- a/i18n/pt_BR.json
+++ b/i18n/pt_BR.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Qualidade da miniatura, de 1 a 100. Maior é melhor, mas produz arquivos maiores e pode reduzir a velocidade do aplicativo.",
"image_thumbnail_title": "Configurações de Miniaturas",
"import_config_from_json_description": "Importar configuração do sistema enviando um arquivo JSON de configuração",
+ "integrity_checks_checksum_files": "Arquivos de checksum",
+ "integrity_checks_checksum_files_description": "Configure a verificação de checksum",
+ "integrity_checks_checksum_files_enable_description": "Ative a verificação de checksum",
+ "integrity_checks_checksum_files_percentage_limit": "Limite percentual",
+ "integrity_checks_checksum_files_percentage_limit_description": "Configure a porcentagem máxima entre 0,01 e 1 para a proporção da verificação de checksum a ser executada em cada intervalo.",
+ "integrity_checks_checksum_files_time_limit": "Tempo limite",
+ "integrity_checks_checksum_files_time_limit_description": "Configure a duração máxima pela qual a verificação de checksum deve ser executada em cada intervalo. (ms)",
+ "integrity_checks_missing_files": "Arquivos ausentes",
+ "integrity_checks_missing_files_description": "Configure a frequência e habilite ou desabilite a verificação de arquivos ausentes",
+ "integrity_checks_missing_files_enable_description": "Ativar a verificação de arquivos ausentes",
+ "integrity_checks_settings": "Verificações de integridade",
+ "integrity_checks_settings_description": "Gerenciar intervalos de verificações de integridade",
+ "integrity_checks_untracked_files": "Arquivos não rastreados",
+ "integrity_checks_untracked_files_description": "Configure a frequência e habilite ou desabilite a verificação de arquivos não rastreados",
+ "integrity_checks_untracked_files_enable_description": "Habilitar a verificação de arquivos não rastreados",
"job_concurrency": "{job} simultâneo",
"job_created": "Tarefa criada",
"job_not_concurrency_safe": "Esta tarefa não é compatível com simultaneidade.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Permite que a transcodificação seja realizada em tempo real enquanto o vídeo está sendo transmitido. Permite a mudança de qualidade, mas pode causar maior latência e artefatos visuais durante a reprodução, dependendo dos recursos de processamento e renderização do servidor.",
"transcoding_realtime_enabled": "Ativar transcodificação em tempo real",
"transcoding_realtime_enabled_description": "Se desativada, a opção fará com que o servidor se recuse a iniciar novas sessões de transcodificação em tempo real.",
+ "transcoding_realtime_resolutions": "Resoluções",
+ "transcoding_realtime_resolutions_description": "As resoluções oferecidas para transcodificação em tempo real. Resoluções mais altas podem causar problemas de reprodução se o servidor não conseguir transcodificá-las com rapidez suficiente.",
+ "transcoding_realtime_video_codecs": "Codecs de vídeo",
+ "transcoding_realtime_video_codecs_description": "Os codecs de vídeo oferecidos para transcodificação em tempo real. Os clientes escolherão a melhor opção suportada por eles durante a reprodução. O AV1 é mais eficiente que o HEVC, que é mais eficiente que o H.264. Ao utilizar aceleração de hardware, selecione apenas os codecs que o acelerador consegue codificar. Ao utilizar transcodificação via software, observe que o H.264 é mais rápido que o AV1, que é mais rápido que o HEVC.",
"transcoding_reference_frames": "Quadros de referência",
"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",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Visualizador de Mídia",
"assets": "Arquivos",
"assets_added_to_album_count": "{count, plural, one {# arquivo adicionado} other {# arquivos adicionados}} ao álbum",
+ "assets_added_to_album_partial_count": "Adcionado {successCount} de {totalCount} {totalCount, plural, one {mídia} other {mídias}} ao álbum",
"assets_added_to_albums_count": "{assetTotal, plural, one {# Arquivo adicionado} other {# Arquivos adicionados}} {albumTotal, plural, one {# ao álbum} other {# aos álbuns}}",
"assets_cannot_be_added_to_album_count": "Não foi possível adicionar {count, plural, one {o arquivo} other {os arquivos}} ao álbum",
"assets_cannot_be_added_to_albums": "{count, plural, one {Arquivo não pode ser adicionado} other {Arquivos não podem ser adicionados}} a nenhum álbum",
@@ -794,7 +814,6 @@
"custom_date": "Data específica",
"custom_locale": "Localidade customizada",
"custom_locale_description": "Formata as datas, horas e números baseado no idioma e região selecionada",
- "custom_url": "URL personalizada",
"cutoff_date_description": "Remover arquivos mais velhos que…",
"cutoff_day": "{count, plural, one {dia} other {dias}}",
"cutoff_year": "{count, plural, one {ano} other {anos}}",
@@ -1200,7 +1219,7 @@
"individual_share": "Compartilhamento único",
"individual_shares": "Compartilhamentos individuais",
"info": "Informações",
- "integrity_checks": "Verificações de integridade",
+ "integrity_checks": "Verificações de Integridade",
"interval": {
"day_at_onepm": "Todo dia, 1pm",
"hours": "A cada {hours, plural, one {hora} other {{hours, number} horas}}",
@@ -1303,9 +1322,9 @@
"login_form_failed_login": "Erro ao fazer login, verifique a URL do servidor, e-mail e senha",
"login_form_handshake_exception": "Houve um erro de autorização com o servidor. Se estiver utilizando um certificado auto assinado, ative o suporte a isso nas configurações.",
"login_form_password_hint": "senha",
- "login_form_server_empty": "Digite a URL do servidor.",
- "login_form_server_error": "Não foi possível conectar ao servidor.",
- "login_has_been_disabled": "Login foi desativado.",
+ "login_form_server_empty": "Digite a URL do servido",
+ "login_form_server_error": "Não foi possível conectar ao servidor",
+ "login_has_been_disabled": "Login foi desativado",
"login_password_changed_error": "Erro ao atualizar a sua senha",
"login_password_changed_success": "Senha atualizada com sucesso",
"logout_all_device_confirmation": "Tem certeza de que deseja sair de todos os dispositivos?",
@@ -1461,6 +1480,7 @@
"never": "Nunca",
"new_album": "Novo Álbum",
"new_api_key": "Nova Chave de API",
+ "new_feature": "Recurso novo",
"new_password": "Nova senha",
"new_person": "Nova Pessoa",
"new_pin_code": "Novo código PIN",
@@ -1504,9 +1524,13 @@
"not_available": "N/A",
"not_in_any_album": "Fora de álbum",
"not_selected": "Não selecionado",
+ "not_set": "Não definido",
"notes": "Notas",
"nothing_here_yet": "Ainda não existe nada aqui",
"notification_backup_reliability": "Ative as notificações para evitar problemas durante o backup em segundo plano",
+ "notification_enabled_list_tile_content": "O Immich utiliza notificações para o backup em segundo plano. Gerencie-as nas configurações do seu dispositivo.",
+ "notification_enabled_list_tile_open_button": "Abrir configurações",
+ "notification_enabled_list_tile_title": "Notificações ativadas",
"notification_permission_dialog_content": "Para ativar as notificações, vá em Configurações e selecione permitir.",
"notification_permission_list_tile_content": "Conceda permissão para ativar notificações.",
"notification_permission_list_tile_enable_button": "Ativar notificações",
@@ -1518,6 +1542,8 @@
"obtainium_configurator": "Configurador Obtainium",
"obtainium_configurator_instructions": "Use o Obtainium para instalar e atualizar o aplicativo Android diretamente do lançamento do Immich no GitHub. Crie uma chave API e selecione a variante para criar o seu link de configuração Obtainium",
"ocr": "OCR",
+ "ocr_body": "O Immich agora lê o texto dentro das suas fotos, para que você possa pesquisá-las pelo que está escrito nelas.",
+ "ocr_title": "Pesquise texto em suas fotos",
"official_immich_resources": "Recursos oficiais do Immich",
"offline": "Desconectado",
"offset": "Deslocamento",
@@ -1536,6 +1562,8 @@
"open": "Abrir",
"open_calendar": "Abrir calendário",
"open_in_browser": "Abrir no navegador",
+ "open_in_immich_body": "Defina o Immich como sua galeria no Android para abrir fotos diretamente de outros aplicativos.",
+ "open_in_immich_title": "Abrir fotos no Immich",
"open_in_map_view": "Mostrar no mapa",
"open_in_openstreetmap": "Abrir no OpenStreetMap",
"open_the_search_filters": "Abre os filtros de pesquisa",
@@ -1593,7 +1621,7 @@
"person": "Pessoa",
"person_age_months": "{months, plural, one {# mês} other {# meses}} de idade",
"person_age_year_months": "1 ano, {months, plural, one {# mês} other {# meses}} de idade",
- "person_age_years": "{years, plural, other {# anos}}",
+ "person_age_years": "{years, plural, one {# ano} other {# anos}} de idade",
"person_birthdate": "Nasceu em {date}",
"person_hidden": "{name}{hidden, select, true { (oculto)} other {}}",
"person_recognized": "Pessoa reconhecida",
@@ -1694,7 +1722,10 @@
"recent": "Recente",
"recent_searches": "Pesquisas recentes",
"recently_added": "Adicionado recentemente",
+ "recently_added_body": "Acesse diretamente tudo o que você adicionou recentemente em uma página dedicada.",
+ "recently_added_description": "Navegue pelas suas mídias ordenadas pela data de upload para o Immich",
"recently_added_page_title": "Adicionados recentemente",
+ "recently_added_title": "Adicionado recentemente",
"recently_taken": "Tirada recentemente",
"refresh": "Atualizar",
"refresh_encoded_videos": "Atualizar vídeos codificados",
@@ -1901,6 +1932,8 @@
"share_link": "Criar Link",
"share_original": "Original (grande)",
"share_preview": "Miniatura (pequeno)",
+ "share_quality_body": "Pressione e segure o botão de compartilhamento para escolher a qualidade da imagem antes de compartilhar.",
+ "share_quality_title": "Escolha a qualidade do compartilhamento",
"shared": "Compartilhado",
"shared_album_activities_input_disable": "Comentários desativados",
"shared_album_activity_remove_content": "Deseja excluir esta atividade?",
@@ -1916,6 +1949,8 @@
"shared_link_clipboard_copied_massage": "Copiado para a área de transferência",
"shared_link_create_error": "Erro ao criar o link compartilhado",
"shared_link_custom_url_description": "Acessar este link com uma URL personalizada",
+ "shared_link_custom_url_title": "URL customizada",
+ "shared_link_custom_url_warning": "Atenção: A URL customizada com uma barra pode não se comportar como você espera.",
"shared_link_edit_description_hint": "Digite a descrição do compartilhamento",
"shared_link_edit_expire_after_option_day": "1 dia",
"shared_link_edit_expire_after_option_days": "{count} dias",
@@ -1982,16 +2017,19 @@
"sign_out": "Sair",
"sign_up": "Registrar",
"size": "Tamanho",
+ "skip": "Pular",
"skip_to_content": "Ir para o conteúdo",
"skip_to_folders": "Ir para pastas",
"skip_to_tags": "Ir para os marcadores",
"slideshow": "Apresentação",
+ "slideshow_body": "Relaxe e assista às suas fotos em uma apresentação de slides em tela cheia.",
"slideshow_metadata_overlay_mode": "Conteúdo exibido",
"slideshow_metadata_overlay_mode_description_only": "Apenas a descrição",
"slideshow_metadata_overlay_mode_full": "Tudo",
"slideshow_repeat": "Repetir apresentação de slides",
"slideshow_repeat_description": "Voltar para o início quando a apresentação terminar",
"slideshow_settings": "Opções de apresentação",
+ "slideshow_title": "Apresentação de slides",
"smart_album": "Álbum inteligente",
"some_assets_already_have_a_location_warning": "Alguns dos arquivos selecionados já tem uma localização",
"sort_albums_by": "Ordenar álbuns por...",
@@ -2119,6 +2157,7 @@
"unknown": "Desconhecido",
"unknown_country": "País desconhecido",
"unknown_date": "Data desconhecida",
+ "unknown_schema": "Esquema desconhecido",
"unknown_year": "Ano desconhecido",
"unlimited": "Ilimitado",
"unlink_motion_video": "Remover relação com video animado",
@@ -2154,6 +2193,8 @@
"upload_status_errors": "Erros",
"upload_status_uploaded": "Enviado",
"upload_success": "Enviado com sucesso, atualize a página para ver os novos arquivos.",
+ "upload_to_album_body": "Para os usuários que não utilizam o recurso de upload manual, agora é possível adicionar fotos locais diretamente a um álbum durante o upload; não é mais necessário fazer o upload para depois adicioná-las a um álbum.",
+ "upload_to_album_title": "Faça o upload diretamente para um álbum",
"upload_to_immich": "Enviar para o Immich ({count})",
"uploading": "Enviando",
"uploading_media": "Enviando mídia",
@@ -2201,7 +2242,7 @@
"view_album": "Ver álbum",
"view_all": "Ver tudo",
"view_all_users": "Ver todos os usuários",
- "view_asset_owners": "Vizualizar donos do arquivo",
+ "view_asset_owners": "Visualizar donos do arquivo",
"view_details": "Ver Detalhes",
"view_in_timeline": "Ver na linha do tempo",
"view_link": "Ver link",
@@ -2221,6 +2262,9 @@
"week": "Semana",
"welcome": "Bem-vindo(a)",
"welcome_to_immich": "Bem-vindo(a) ao Immich",
+ "whats_new": "O que há de novo",
+ "whats_new_settings_subtitle": "Veja as novidades do Immich",
+ "whats_new_version": "Versão {version}",
"when": "Quando",
"width": "Largura",
"wifi_name": "Nome do Wi-Fi",
diff --git a/i18n/ro.json b/i18n/ro.json
index 3f8e1e08eb..e17aded3dc 100644
--- a/i18n/ro.json
+++ b/i18n/ro.json
@@ -73,6 +73,7 @@
"cron_expression_description": "Setați intervalul de scanare folosind formatul cron. Pentru mai multe informații, consultați de ex. Crontab Guru",
"cron_expression_presets": "Presetări de expresie cron",
"disable_login": "Dezactivați autentificarea",
+ "download_csv": "Descarcă CSV",
"duplicate_detection_job_description": "Rulați învățarea automată pe materiale pentru a detecta imagini similare. Se bazează pe Căutare Inteligentă",
"exclusion_pattern_description": "Modelele de excludere vă permit să ignorați fișierele și folderele atunci când vă scanați biblioteca. Acest lucru este util dacă aveți foldere care conțin fișiere pe care nu doriți să le importați, cum ar fi fișierele RAW.",
"export_config_as_json_description": "Descărcați configurația actuală a sistemului ca fișier JSON",
@@ -107,6 +108,21 @@
"image_thumbnail_quality_description": "Calitatea miniaturii de la 1 la 100. O valoare mai mare oferă o calitate mai bună, dar produce fișiere mai mari și poate reduce receptivitatea aplicației.",
"image_thumbnail_title": "Setari miniaturi",
"import_config_from_json_description": "Importați configurația sistemului încărcând un fișier de configurare JSON",
+ "integrity_checks_checksum_files": "Fișiere sumă de control",
+ "integrity_checks_checksum_files_description": "Configurează verificarea sumei de control",
+ "integrity_checks_checksum_files_enable_description": "Activează verificarea sumei de control",
+ "integrity_checks_checksum_files_percentage_limit": "Limită procentuală",
+ "integrity_checks_checksum_files_percentage_limit_description": "Configurează procentajul maxim, cuprins între 0,01 și 1, care indică frecvența cu care trebuie să se efectueze verificarea sumei de control la fiecare interval.",
+ "integrity_checks_checksum_files_time_limit": "Timp limită",
+ "integrity_checks_checksum_files_time_limit_description": "Configurează durata maximă pentru care verificarea sumei de control ar trebui să ruleze la fiecare interval. (ms)",
+ "integrity_checks_missing_files": "Fișiere lipsă",
+ "integrity_checks_missing_files_description": "Configurează frecvența și activează sau dezactivează verificarea fișierelor lipsă",
+ "integrity_checks_missing_files_enable_description": "Activează verificarea fișierelor lipsă",
+ "integrity_checks_settings": "Verificări de integritate",
+ "integrity_checks_settings_description": "Gestionează intervalele de verificare a integrității",
+ "integrity_checks_untracked_files": "Fișiere neurmărite",
+ "integrity_checks_untracked_files_description": "Configurează frecvența și activează sau dezactivează verificarea fișierelor neurmărite",
+ "integrity_checks_untracked_files_enable_description": "Activează verificarea fișierelor neurmărite",
"job_concurrency": "Concurență {job}",
"job_created": "Sarcină creată",
"job_not_concurrency_safe": "Această sarcină nu este sigură pentru a rula în concurență.",
@@ -182,9 +198,25 @@
"machine_learning_smart_search_enabled": "Activează căutarea inteligentă",
"machine_learning_smart_search_enabled_description": "Dacă este dezactivată, imaginile nu vor fi codificate pentru căutarea inteligentă.",
"machine_learning_url_description": "URL-ul serverului de învățare automată. Dacă sunt furnizate mai multe URL-uri, fiecare server va fi încercat pe rând, până când unul răspunde cu succes, în ordine de la primul până la ultimul. Serverele care nu răspund vor fi ignorate temporar până revin online.",
+ "maintenance_backup_management": "Gestionare backup",
"maintenance_delete_backup": "Sterge Backup",
"maintenance_delete_backup_description": "Acest fisier va fi sters permanent.",
"maintenance_delete_error": "Stergerea backup-ului nu a reusit.",
+ "maintenance_integrity_check": "Verifică",
+ "maintenance_integrity_check_all": "Verifică tot",
+ "maintenance_integrity_checksum_mismatch": "Neconcordanță sumă de control",
+ "maintenance_integrity_checksum_mismatch_description": "Fișiere a căror sumă de control de pe disc nu se potrivește cu suma de control stocată de Immich în baza sa de date.",
+ "maintenance_integrity_checksum_mismatch_job": "Verificați neconcordanțele sumelor de control",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "Reîmprospătarea rapoartelor privind neconcordanța sumelor de control",
+ "maintenance_integrity_missing_file": "Fișiere lipsă",
+ "maintenance_integrity_missing_file_description": "Fișiere pe care Immich le-a urmărit în baza sa de date, dar care nu există în sistemul de fișiere.",
+ "maintenance_integrity_missing_file_job": "Verifică dacă există fișiere lipsă",
+ "maintenance_integrity_missing_file_refresh_job": "Reîmprospătați rapoartele privind fișierele lipsă",
+ "maintenance_integrity_report": "Raport de integritate",
+ "maintenance_integrity_untracked_file": "Fișiere neurmărite",
+ "maintenance_integrity_untracked_file_description": "Fișiere din directoarele lui Immich despre care Immich nu are nicio înregistrare.",
+ "maintenance_integrity_untracked_file_job": "Verifică dacă există fișiere neurmărite",
+ "maintenance_integrity_untracked_file_refresh_job": "Reîmprospătează rapoartele fișierelor neurmărite",
"maintenance_restore_backup": "Restaureaza Backup",
"maintenance_restore_backup_description": "Immich va fi șters si restaurat din backup-ul ales. Va fi creat un nou backup înainte de a continua.",
"maintenance_restore_backup_different_version": "Acest backup a fost creat folosind o versiune diferita de Immich!",
@@ -288,7 +320,7 @@
"oauth_timeout_description": "Timp de expirare pentru solicitări în milisecunde",
"ocr_job_description": "Folosește învățarea automată pentru recunoașterea textului din imagini",
"password_enable_description": "Autentificare cu email și parolǎ",
- "password_settings": "Autentificare cu Parolǎ",
+ "password_settings": "Autentificare cu parolǎ",
"password_settings_description": "Gestioneazǎ setǎrile de autentificare cu parola",
"paths_validated_successfully": "Toate cǎile au fost validate cu succes",
"person_cleanup_job": "Ștergere persoane",
@@ -297,7 +329,7 @@
"queues_page_description": "Pagina cu cozi de sarcini administrative",
"quota_size_gib": "Spațiu de stocare alocat (GiB)",
"refreshing_all_libraries": "Bibliotecile sunt în curs de reîmprospǎtare",
- "registration": "Înregistrare Administratori",
+ "registration": "Înregistrare administratori",
"registration_description": "Deoarece sunteți primul utilizator de pe sistem, veți fi desemnat ca administrator și sunteți responsabil pentru sarcinile administrative, iar utilizatorii suplimentari vor fi creați de dumneavoastră.",
"release_channel_release_candidate": "Candidat pentru lansare",
"release_channel_stable": "Stabil",
@@ -312,7 +344,7 @@
"server_external_domain_settings_description": "Domeniu utilizat pentru link-uri externe",
"server_public_users": "Utilizatori publici",
"server_public_users_description": "Toți utilizatorii (nume și e-mail) sunt listați atunci când adăugați un utilizator la albumele partajate. Când este dezactivată, lista de utilizatori va fi disponibilă numai pentru utilizatorii admin.",
- "server_settings": "Setǎri Server",
+ "server_settings": "Setǎri server",
"server_settings_description": "Gestioneazǎ setǎrile serverului",
"server_stats_page_description": "Pagina cu statistici ale serverului de administrare",
"server_welcome_message": "Mesaj de bun-venit",
@@ -399,6 +431,10 @@
"transcoding_realtime_description": "Permite transcodarea în timp real în timpul redării videoclipului. Activează schimbarea calității, dar poate cauza latență mai mare și sacadări, în funcție de capacitățile serverului.",
"transcoding_realtime_enabled": "Activează transcodarea în timp real",
"transcoding_realtime_enabled_description": "Dacă este dezactivat, serverul nu va iniția noi sesiuni de transcodare în timp real.",
+ "transcoding_realtime_resolutions": "Rezoluții",
+ "transcoding_realtime_resolutions_description": "Rezoluțiile disponibile pentru transcodare în timp real. Rezoluțiile mai mari pot cauza probleme la redare dacă serverul nu le poate transcoda suficient de repede.",
+ "transcoding_realtime_video_codecs": "Codecuri video",
+ "transcoding_realtime_video_codecs_description": "Codecurile video oferite pentru transcodare în timp real. Clienții vor alege cea mai bună opțiune pe care o acceptă în timpul redării. AV1 este mai eficient decât HEVC, care este mai eficient decât H.264. Când utilizezi accelerarea hardware, selectează doar codecurile pe care acceleratorul le poate codifica. Când utilizezi transcodare software, reține că H.264 este mai rapid decât AV1, care este mai rapid decât HEVC.",
"transcoding_reference_frames": "Cadre de referință",
"transcoding_reference_frames_description": "Numărul de cadre de referință atunci când se comprimă un cadru dat. Valorile mai mari îmbunătățesc eficiența compresiei, dar încetinesc codarea. 0 setează această valoare automat.",
"transcoding_required_description": "Numai videoclipuri care nu sunt într-un format acceptat",
@@ -538,6 +574,7 @@
"asset_added_to_album": "Adăugat la album",
"asset_adding_to_album": "Se adaugă la album…",
"asset_created": "Resurse create",
+ "asset_day_count": "{date}: {count, plural, one {# resursă} few {# resurse} other {# de resurse}}",
"asset_description_updated": "Descrierea resursei a fost actualizată",
"asset_hashing": "Calculare amprentă digitală…",
"asset_list_group_by_sub_title": "Grupare după",
@@ -560,6 +597,7 @@
"asset_viewer_settings_title": "Vizualizator resurse",
"assets": "Resurse",
"assets_added_to_album_count": "Am adăugat {count, plural, one {# resursă} other {# resurse}} în album",
+ "assets_added_to_album_partial_count": "Am adăugat {successCount} din {totalCount} {totalCount, plural, one {resursă} few {resurse} other {de resurse}} în album",
"assets_added_to_albums_count": "Au fost adăugate {assetTotal, plural, one {# element} other {# elemente}} la {albumTotal, plural, one {# album} other {# albume}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Asset} other {Assets}} nu pot fi adăugate în album",
"assets_cannot_be_added_to_albums": "{count, plural, one {Elementul} other {Elementele}} nu poate fi adăugat la niciunul dintre albume",
@@ -776,7 +814,6 @@
"custom_date": "Data personalizată",
"custom_locale": "Setare regională personalizată",
"custom_locale_description": "Formatați datele, timpul și numerele în funcție de limbă și regiune",
- "custom_url": "URL personalizat",
"cutoff_date_description": "Păstrează fotografiile din ultimele…",
"cutoff_day": "{count, plural, one {# zi} few {# zile} other {# de zile}}",
"cutoff_year": "{count, plural, =0 {0 ani} one {# an} few {# ani} other {# de ani}}",
@@ -793,6 +830,8 @@
"day": "Zi",
"days": "Zile",
"deduplicate_all": "Deduplicați Toate",
+ "default_quality_subtitle": "Calitatea utilizată la accesarea opțiunii de partajare. Apasă lung butonul de partajare pentru a alege de fiecare dată.",
+ "default_share_quality": "Calitatea implicită a partajării",
"delete": "Ștergere",
"delete_action_confirmation_message": "Sigur vrei să ștergi acest element? Această acțiune va muta elementul în coșul de gunoi al serverului și te va întreba dacă vrei să-l ștergi local",
"delete_action_prompt": "{count} șterse",
@@ -1070,10 +1109,12 @@
"external_libraries": "Biblioteci externe",
"external_network": "Rețea externă",
"external_network_sheet_info": "Când nu se află în rețeaua Wi-Fi preferată, aplicația se va conecta la server prin prima dintre adresele URL de mai jos pe care o poate accesa, începând de sus în jos",
+ "f_number": "Număr F",
"face_unassigned": "Nealocat",
"failed": "Eșuat",
"failed_count": "Eșuat: {count}",
"failed_to_authenticate": "Autentificarea nu a reușit",
+ "failed_to_delete_file": "Nu s-a putut șterge fișierul",
"failed_to_load_assets": "Nu s-au încărcat activele",
"failed_to_load_folder": "Nu s-a putut încărca folderul",
"favorite": "Favorit",
@@ -1178,6 +1219,7 @@
"individual_share": "Cota individuală",
"individual_shares": "Partajări individuale",
"info": "Informație",
+ "integrity_checks": "Verificări de integritate",
"interval": {
"day_at_onepm": "În fiecare zi la ora 13.00",
"hours": "La fiecare {hours, plural, one {oră} other {{hours, number} ore}}",
@@ -1238,6 +1280,8 @@
"link_to_oauth": "Link către OAuth",
"linked_oauth_account": "Cont OAuth conectat",
"list": "Listă",
+ "live": "În direct",
+ "load_more": "Afișează mai multe",
"loading": "Încărcare",
"loading_search_results_failed": "Încărcarea rezultatelor căutării nu a reușit",
"local": "Local",
@@ -1278,9 +1322,9 @@
"login_form_failed_login": "Eroare la autentificare, verifică URL-ul server-ului, adresa de email și parola",
"login_form_handshake_exception": "A apărut o excepție Handshake cu server-ul. Activează suportul pentru certificate auto-semnate în setări dacă folosești un certificat auto-semnat.",
"login_form_password_hint": "parolă",
- "login_form_server_empty": "Introdu URL-ul server-ului.",
- "login_form_server_error": "Nu s-a putut realiza conexiunea la server.",
- "login_has_been_disabled": "Conectarea a fost dezactivată.",
+ "login_form_server_empty": "Introdu adresa URL a unui server",
+ "login_form_server_error": "Nu s-a putut realiza conexiunea la server",
+ "login_has_been_disabled": "Conectarea a fost dezactivată",
"login_password_changed_error": "A intervenit o eroare la actualizarea parolei",
"login_password_changed_success": "Parola a fost actualizată cu succes",
"logout_all_device_confirmation": "Sigur doriți să deconectați toate dispozitivele?",
@@ -1331,6 +1375,7 @@
"map_location_picker_page_use_location": "Folosește această locație",
"map_location_service_disabled_content": "Serviciul de localizare trebuie să fie activat pentru a afișa resursele din locația actuală. Dorești să o activezi acum?",
"map_location_service_disabled_title": "Serviciul de localizare este dezactivat",
+ "map_marker_for_image": "Marcaj pe hartă pentru o fotografie realizată în {city}, {country}",
"map_marker_with_image": "Marcator de hartă cu imagine",
"map_no_location_permission_content": "Permisiunea de localizare este necesară pentru a afișa resursele din locația actuală. Dorești să o activezi acum?",
"map_no_location_permission_title": "Permisiunea de localizare este dezactivată",
@@ -1350,25 +1395,35 @@
"matching_assets": "Resurse similare",
"media_chrome": {
"auto": "Automat",
+ "captions": "Subtitrări",
"captions_off": "Oprit",
"closed_captions": "subtitrări pentru persoane cu deficiențe de auz",
"decode_error": "Eroare de decodare",
+ "disable_captions": "Dezactivează subtitrările",
+ "enable_captions": "Activează subtitrările",
"enter_fullscreen_mode": "Intră în modul ecran complet",
"exit_fullscreen_mode": "Ieși din modul ecran complet",
"loop": "Buclǎ",
"media_error_description": "Redarea a fost întreruptă din cauza unei erori media. Fișierul poate fi corupt sau browserul nu acceptă acest format.",
+ "media_loading": "încărcare media",
"mute": "Dezactivează sunetul",
"network_error": "Eroare de rețea",
"network_error_description": "Descărcarea fișierului media a eșuat din cauza unei erori de rețea.",
"not_supported_error": "Sursa nu este suportatǎ",
"playback_rate": "Ratǎ de redare",
"playback_rate_current": "ratǎ de redare actualǎ",
+ "playback_rate_value": "Viteza de redare {playbackRate}",
"playback_time": "timp de redare",
"quality": "Calitate",
"second": "secundǎ",
"seconds": "secunde",
"time_value_of_total_time": "{currentTime} din {totalTime}",
- "unmute": "Activează sunetul"
+ "time_value_remaining": "{time} rămas",
+ "unmute": "Activează sunetul",
+ "unsupported_error_description": "A apărut o eroare neprevăzută. Serverul sau rețeaua au eșuat sau browserul tău nu acceptă acest format.",
+ "video_not_loaded_unknown_time": "videoclipul nu s-a încărcat, durată necunoscută.",
+ "video_player": "player video",
+ "volume": "volum"
},
"media_type": "Tip media",
"memories": "Amintiri",
@@ -1395,8 +1450,10 @@
"mobile_app": "Aplicație Mobilă",
"mobile_app_download_onboarding_note": "Descarcă aplicația mobilă folosind următoarele opțiuni",
"model": "Model",
+ "modify_date": "Data modificării",
"month": "Lună",
"more": "Mai mult",
+ "motion": "Mişcare",
"move": "Mută",
"move_off_locked_folder": "Mutați din dosarul blocat",
"move_to": "Mutare la",
@@ -1423,6 +1480,7 @@
"never": "Niciodată",
"new_album": "Album Nou",
"new_api_key": "Cheie API nouǎ",
+ "new_feature": "Funcție nouă",
"new_password": "Parolă nouă",
"new_person": "Persoanǎ nouǎ",
"new_pin_code": "Cod PIN nou",
@@ -1460,6 +1518,7 @@
"no_results": "Fără rezultate",
"no_results_description": "Încercați un sinonim sau un cuvânt cheie mai general",
"no_shared_albums_message": "Creați un album pentru a partaja fotografii și videoclipuri cu persoanele din rețeaua dvs",
+ "no_steps": "Niciun pas adăugat încă",
"none": "Niciunul",
"not_allowed": "Nu este permis",
"not_available": "N/A",
@@ -1468,6 +1527,9 @@
"notes": "Note",
"nothing_here_yet": "Nimic aici încă",
"notification_backup_reliability": "Activează notificările pentru a îmbunătăți fiabilitatea copierii de rezervă în fundal",
+ "notification_enabled_list_tile_content": "Immich utilizează notificări pentru efectuarea copiilor de siguranță în fundal. Le poți gestiona din setările dispozitivului.",
+ "notification_enabled_list_tile_open_button": "Deschide setările",
+ "notification_enabled_list_tile_title": "Notificările sunt activate",
"notification_permission_dialog_content": "Pentru a activa notificările, mergi în Setări > Immich și selectează permite.",
"notification_permission_list_tile_content": "Acordă permisiunea pentru a activa notificările.",
"notification_permission_list_tile_enable_button": "Activează notificările",
@@ -1479,6 +1541,8 @@
"obtainium_configurator": "Configurator Obtainium",
"obtainium_configurator_instructions": "Folosește Obtainium pentru a instala și actualiza aplicația Android direct din release-urile Immich de pe GitHub. Creează o cheie API și selectează o variantă pentru a genera linkul de configurare Obtainium",
"ocr": "OCR",
+ "ocr_body": "Immich citește acum textul din fotografiile tale, astfel încât să le poți căuta după ceea ce scrie în ele.",
+ "ocr_title": "Caută text în fotografiile tale",
"official_immich_resources": "Resurse Oficiale Immich",
"offline": "Offline",
"offset": "Decalaj",
@@ -1497,6 +1561,8 @@
"open": "Deschide",
"open_calendar": "Deschide calendarul",
"open_in_browser": "Deschide în browser",
+ "open_in_immich_body": "Setează Immich ca galerie pe Android pentru a deschide fotografiile direct din alte aplicații.",
+ "open_in_immich_title": "Deschide fotografiile în Immich",
"open_in_map_view": "Deschideți în vizualizarea hărții",
"open_in_openstreetmap": "Deschideți în OpenStreetMap",
"open_the_search_filters": "Deschideți filtrele de căutare",
@@ -1564,28 +1630,29 @@
"photos_from_previous_years": "Fotografii din anii anteriori",
"pick_a_location": "Alegeți o locație",
"pick_custom_range": "Interval personalizat",
- "pick_date_range": "Selectați un interval de date",
+ "pick_date_range": "Selectați un interval de dată",
"pin_code_changed_successfully": "Codul PIN a fost modificat cu succes",
"pin_code_reset_successfully": "Codul PIN a fost resetat cu succes",
- "pin_code_setup_successfully": "Configurarea cu succes a unui cod PIN",
+ "pin_code_setup_successfully": "Codul PIN a fost configurat cu succes",
"pin_verification": "Verificarea codului PIN",
"place": "Loc",
- "places": "Locații",
+ "places": "Locuri",
"places_count": "{count, plural, one {{count, number} Loc} other {{count, number} Locuri}}",
"play": "Redare",
- "play_memories": "Redare amintiri",
- "play_motion_photo": "Redare Fotografie în Mișcare",
+ "play_memories": "Redă amintiri",
+ "play_motion_photo": "Redă fotografie în mișcare",
"play_or_pause_video": "Redați sau întrerupeți videoclipul",
"play_original_video": "Redă video original",
- "play_original_video_setting_description": "Se preferă redarea videoclipurilor originale în locul celor transcodate. Dacă fișierul original nu este compatibil, redarea s-ar putea să nu fie corectă.",
+ "play_original_video_setting_description": "Se preferă redarea videoclipurilor originale în locul celor transcodate. Dacă fișierul original nu este compatibil, redarea s-ar putea să nu fie în regula.",
"play_transcoded_video": "Redă video transcodificat",
"please_auth_to_access": "Vă rugăm să vă autentificați pentru a accesa",
"plugin_method_filter_type": "Filtru",
+ "plugin_method_filter_type_description": "Această metodă poate filtra evenimentele și poate împiedica condiționat rularea pașilor următori",
"port": "Port",
"preferences_settings_subtitle": "Gestionați preferințele aplicației",
"preferences_settings_title": "Preferințe",
"preparing": "Se prepară",
- "preset": "Presetat",
+ "preset": "Presetare",
"preview": "Previzualizare",
"previous": "Anterior",
"previous_memory": "Memoria anterioară",
@@ -1601,6 +1668,7 @@
"profile_drawer_readonly_mode": "Mod doar citire activat. Ține apăsat pe pictograma avatarului utilizatorului pentru a ieși.",
"profile_image_of_user": "Imagine de profil a lui {user}",
"profile_picture_set": "Poză de profil setată.",
+ "projection_type": "Tipul proiecției",
"public_album": "Album public",
"public_share": "Distribuire Publică",
"purchase_account_info": "Suporter",
@@ -1653,7 +1721,10 @@
"recent": "Recent",
"recent_searches": "Căutări recente",
"recently_added": "Adăugate recent",
+ "recently_added_body": "Accesează direct tot ce ai adăugat recent pe o pagină dedicată.",
+ "recently_added_description": "Răsfoiește resursele sortate după momentul în care au fost încărcate în Immich",
"recently_added_page_title": "Adăugate recent",
+ "recently_added_title": "Adăugate recent",
"recently_taken": "Recent realizate",
"refresh": "Reîmprospătare",
"refresh_encoded_videos": "Actualizează videoclipurile encodate",
@@ -1746,6 +1817,7 @@
"search_by_filename": "Căutați după numele fișierului sau extensie",
"search_by_filename_example": "i.e. IMG_1234.JPG sau PNG",
"search_by_full_path": "Caută după calea completă sau dosar",
+ "search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - poți căuta după Proiecte, 3D, Imprimare, 2026 etc.",
"search_by_ocr": "Caută folosind OCR",
"search_by_ocr_example": "Factură",
"search_camera_lens_model": "Caută modelul lentilei...",
@@ -1807,6 +1879,7 @@
"select_person": "Selectează persoana",
"select_person_to_tag": "Selectați o persoană pentru a o eticheta",
"select_photos": "Selectați fotografii",
+ "select_quality": "Selectează calitatea",
"select_trash_all": "Selectați tot pentru ștergere",
"selected": "Selectat",
"selected_count": "{count, plural, other {# selectat}}",
@@ -1856,6 +1929,10 @@
"share": "Distribuiți",
"share_dialog_preparing": "Se pregătește...",
"share_link": "Partajați linkul",
+ "share_original": "Folosește varianta originală (mare)",
+ "share_preview": "Utilizează miniatura (mică)",
+ "share_quality_body": "Ține apăsat butonul de partajare pentru a alege calitatea imaginii înainte de a o partaja.",
+ "share_quality_title": "Alege calitatea partajării",
"shared": "Partajat",
"shared_album_activities_input_disable": "Cometariile sunt dezactivate",
"shared_album_activity_remove_content": "Dorești să ștergi această activitate?",
@@ -1871,6 +1948,8 @@
"shared_link_clipboard_copied_massage": "Copiat în clipboard",
"shared_link_create_error": "Eroare în timpul creării linkului de distribuire",
"shared_link_custom_url_description": "Accesează acest link partajat cu un URL personalizat",
+ "shared_link_custom_url_title": "URL personalizat",
+ "shared_link_custom_url_warning": "Avertisment: un nume URL personalizat cu o bară înainte poate să nu se comporte așa cum vă așteptați.",
"shared_link_edit_description_hint": "Introdu descrierea distribuirii",
"shared_link_edit_expire_after_option_day": "1 zi",
"shared_link_edit_expire_after_option_days": "{count} zile",
@@ -1917,6 +1996,7 @@
"show_keyboard_shortcuts": "Afișați comenzile rapide de la tastatură",
"show_less": "Aratǎ mai puțin",
"show_metadata": "Arătați metadatele",
+ "show_more_fields": "{count, plural, one {Afișează încă # câmp} few {Afișează încă # câmpuri} other {Afișează încă # de câmpuri}}",
"show_or_hide_info": "Afișați sau ascundeți informații",
"show_password": "Afișați parola",
"show_person_options": "Afișați opțiunile persoanelor",
@@ -1936,16 +2016,21 @@
"sign_out": "Deconectare",
"sign_up": "Vă înregistrați",
"size": "Dimensiune",
+ "skip": "Sari peste",
"skip_to_content": "Treceți la conținut",
"skip_to_folders": "Treceți la foldere",
"skip_to_tags": "Treceți la etichete",
"slideshow": "Prezentare de diapozitive",
+ "slideshow_body": "Relaxează-te și urmărește-ți fotografiile într-o prezentare de diapozitive pe tot ecranul.",
"slideshow_metadata_overlay_mode": "Conținut suprapus",
"slideshow_metadata_overlay_mode_description_only": "Doar descrierea",
+ "slideshow_metadata_overlay_mode_full": "Complet",
"slideshow_repeat": "Repetă prezentarea",
"slideshow_repeat_description": "Reîntoarce-te la început cand prezentarea se încheie",
"slideshow_settings": "Setări pentru prezentarea de diapozitive",
+ "slideshow_title": "Prezentare de diapozitive",
"smart_album": "Album inteligent",
+ "some_assets_already_have_a_location_warning": "Unele dintre resursele selectate au deja o locație",
"sort_albums_by": "Sortați albumele după...",
"sort_created": "Data creării",
"sort_items": "Numărul de articole",
@@ -2050,6 +2135,8 @@
"trash_page_info": "Resursele din coș vor fi șterse permanent după {days} zile",
"trashed_items_will_be_permanently_deleted_after": "Elementele din coșul de gunoi vor fi șterse definitiv după {days, plural, one {# zi} other {# zile}}.",
"trigger": "Declanșator",
+ "trigger_asset_metadata_extraction": "Extragerea metadatelor resurselor",
+ "trigger_asset_metadata_extraction_description": "Se declanșează atunci când metadatele EXIF ale unui resurse sunt extrase",
"trigger_asset_uploaded": "Fișier încărcat",
"trigger_asset_uploaded_description": "Declanșează cand un fișier este încarcat",
"trigger_person_recognized": "Persoană Recunoscută",
@@ -2069,6 +2156,7 @@
"unknown": "Necunoscut",
"unknown_country": "Țară necunoscută",
"unknown_date": "Dată necunoscută",
+ "unknown_schema": "Schemă necunoscută",
"unknown_year": "An Necunoscut",
"unlimited": "Nelimitat",
"unlink_motion_video": "Deconectați videoclipul în mișcare",
@@ -2093,6 +2181,7 @@
"updated_password": "Parolă actualizată",
"upload": "Încărcați",
"upload_concurrency": "Încărcați simultan",
+ "upload_day_count": "{date}: {count, plural, one {# încărcare} few {# încărcări} other {# de încărcări}}",
"upload_details": "Detalii încărcare",
"upload_error_with_count": "Eroare la încărcare pentru {count, plural, one {# fișier} other {# fișiere}}",
"upload_errors": "Încărcare finalizată cu {count, plural, one {# eroare} other {# erori}}, reîmprospătați pagina pentru a reîncărca noile resurse.",
@@ -2103,10 +2192,13 @@
"upload_status_errors": "Erori",
"upload_status_uploaded": "Încărcat",
"upload_success": "Încărcare reușită, reîmprospătați pagina pentru a vedea resursele noi încărcate.",
+ "upload_to_album_body": "Pentru utilizatorii care nu utilizează funcția de încărcare manuală, acum poți alege să adaugi fotografii locale direct într-un album pe măsură ce le încarci, nemaifiind nevoie să le încarci și să le adaugi ulterior într-un album.",
+ "upload_to_album_title": "Încarcă direct într-un album",
"upload_to_immich": "Încărcați pe Immich ({count})",
"uploading": "Se încarcă",
"uploading_media": "Se încarcă fișierele media",
"uploads": "Încărcări",
+ "uploads_count": "{count, plural, one {# încărcare} few {# încărcări} other {# de încărcări}}",
"url": "URL",
"usage": "Utilizare",
"use_biometric": "Folosește biometrice",
@@ -2169,6 +2261,9 @@
"week": "Sǎptǎmânǎ",
"welcome": "Bun venit",
"welcome_to_immich": "Bun venit la Immich",
+ "whats_new": "Ce este nou",
+ "whats_new_settings_subtitle": "Descoperă noutățile din Immich",
+ "whats_new_version": "Versiunea {version}",
"when": "Când",
"width": "Lățime",
"wifi_name": "Nume Wi-Fi",
diff --git a/i18n/ru.json b/i18n/ru.json
index a34d2521f0..6946b308cc 100644
--- a/i18n/ru.json
+++ b/i18n/ru.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Качество миниатюр от 1 до 100. Чем выше качество, тем лучше, но при этом создаются файлы большего размера и может снизиться скорость отклика приложения.",
"image_thumbnail_title": "Настройки миниатюр",
"import_config_from_json_description": "Импортировать конфигурацию системы, загрузив JSON файл настроек",
+ "integrity_checks_checksum_files": "Контрольные суммы файлов",
+ "integrity_checks_checksum_files_description": "Настройка проверки контрольных сумм",
+ "integrity_checks_checksum_files_enable_description": "Включить проверку контрольных сумм",
+ "integrity_checks_checksum_files_percentage_limit": "Процентный лимит",
+ "integrity_checks_checksum_files_percentage_limit_description": "Максимальное количество объектов в процентах от 0,01 до 1, обрабатываемых за раз при проверке контрольных сумм.",
+ "integrity_checks_checksum_files_time_limit": "Временной лимит",
+ "integrity_checks_checksum_files_time_limit_description": "Максимальная продолжительность выполнения итерации по проверке контрольных сумм (мс)",
+ "integrity_checks_missing_files": "Отсутствующие файлы",
+ "integrity_checks_missing_files_description": "Настройка частоты и включение/отключение функции поиска отсутствующих файлов",
+ "integrity_checks_missing_files_enable_description": "Включить функцию поиска отсутствующих файлов",
+ "integrity_checks_settings": "Проверка целостности",
+ "integrity_checks_settings_description": "Управление интервалами функции проверки целостности",
+ "integrity_checks_untracked_files": "Неотслеживаемые файлы",
+ "integrity_checks_untracked_files_description": "Настройка частоты и включение/отключение функции поиска неотслеживаемых файлов",
+ "integrity_checks_untracked_files_enable_description": "Включение функции поиска неотслеживаемых файлов",
"job_concurrency": "Число параллельных потоков задачи {job}",
"job_created": "Задача создана",
"job_not_concurrency_safe": "Эта задача не обеспечивает безопасность параллельности выполнения.",
@@ -377,48 +392,52 @@
"transcoding_acceleration_qsv": "Quick Sync (требуется процессор Intel 7-го поколения или новее)",
"transcoding_acceleration_rkmpp": "RKMPP (только для SOC Rockchip)",
"transcoding_acceleration_vaapi": "VAAPI",
- "transcoding_accepted_audio_codecs": "Поддерживаемые аудиокодеки",
- "transcoding_accepted_audio_codecs_description": "Выберите аудиокодеки, которые не нужно перекодировать. Используется только для определенных политик перекодирования.",
- "transcoding_accepted_containers": "Поддерживаемые контейнеры",
+ "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_accepted_video_codecs": "Допустимые видеокодеки",
+ "transcoding_accepted_video_codecs_description": "Выберите видеокодеки, видео с которыми не нужно перекодировать. Используется только для определенных политик перекодирования.",
+ "transcoding_advanced_options_description": "Параметры, которые большинству пользователей не следует изменять",
"transcoding_audio_codec": "Аудиокодек",
"transcoding_audio_codec_description": "Opus — вариант самого высокого качества, но имеет меньшую совместимость со старыми устройствами или программным обеспечением.",
- "transcoding_bitrate_description": "Видео с битрейтом выше максимального или в неподходящем формате может вызвать проблемы",
+ "transcoding_bitrate_description": "Видео с битрейтом выше максимального или в недопустимом формате",
"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": "Постоянный коэффициент скорости (-crf)",
"transcoding_constant_rate_factor_description": "Уровень качества видео. Типичные значения: 23 для H.264, 28 для HEVC, 31 для VP9 и 35 для AV1. Чем ниже, тем лучше, но при этом создаются файлы большего размера.",
- "transcoding_disabled_description": "Не перекодировать видео, это может привести к сбою воспроизведения на некоторых клиентах",
+ "transcoding_disabled_description": "Не перекодировать никакие видео, может привести к проблемам воспроизведения на некоторых клиентах",
"transcoding_encoding_options": "Параметры кодирования",
- "transcoding_encoding_options_description": "Установите кодеки, разрешение, качество и другие параметры для кодированного видео",
+ "transcoding_encoding_options_description": "Кодеки, разрешение, качество и другие параметры для перекодирования видео",
"transcoding_hardware_acceleration": "Аппаратное ускорение",
"transcoding_hardware_acceleration_description": "Экспериментально: более быстрое транскодирование, но с возможным ухудшением качества при том же битрейте",
"transcoding_hardware_decoding": "Аппаратное декодирование",
"transcoding_hardware_decoding_setting_description": "Дополнительно ускоряет декодирование, а не только кодирование. Может работать не со всеми видео.",
- "transcoding_max_b_frames": "Максимально промежуточных кадров",
- "transcoding_max_b_frames_description": "Более высокие значения повышают эффективность сжатия, но замедляют кодирование. Может быть несовместимо с аппаратным ускорением на старых устройствах. 0 отключает B-кадры, а -1 устанавливает это значение автоматически.",
+ "transcoding_max_b_frames": "Максимальное количество промежуточных кадров",
+ "transcoding_max_b_frames_description": "Более высокие значения повышают эффективность сжатия, но замедляют кодирование. Может быть несовместимо с аппаратным ускорением на старых устройствах. Значение 0 полностью отключает создание промежуточных B-кадров, а -1 - устанавливает автоматическое определение их количества.",
"transcoding_max_bitrate": "Максимальный битрейт",
"transcoding_max_bitrate_description": "Ограничение битрейта может сделать размер файла более предсказуемым при незначительном снижении качества. При разрешении 720p типичными значениями являются 2600 кбит/с для кодеков VP9 или HEVC и 4500 кбит/с для H.264. Ограничение отключено, если задано значение 0. Когда единица измерения не указана, предполагается k (кбит/с); поэтому значения 5000, 5000k и 5M (для Мбит/с) эквивалентны.",
"transcoding_max_keyframe_interval": "Максимальный интервал ключевых кадров",
- "transcoding_max_keyframe_interval_description": "Устанавливает максимальное расстояние между ключевыми кадрами. Более низкие значения ухудшают эффективность сжатия, но сокращают время поиска и могут улучшить качество в сценах с быстрым движением. 0 устанавливает это значение автоматически.",
- "transcoding_optimal_description": "Видео с разрешением выше целевого или не в принятом формате",
- "transcoding_policy": "Политика перекодировки",
- "transcoding_policy_description": "Установите, когда видео будет перекодировано",
+ "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": "Предустановка",
- "transcoding_preset_preset_description": "Скорость сжатия. Медленные настройки создают более маленькие файлы и повышают качество при достижении определенного битрейта. VP9 игнорирует скорости выше “faster”.",
- "transcoding_realtime": "[ЭКСПЕРИМЕНТАЛЬНО] Перекодирование в реальном времени",
- "transcoding_realtime_description": "Позволяет перекодировать видео в режиме реального времени во время воспроизведения. Поддерживает переключение качества, но может вызывать более высокие задержки воспроизведения и подтормаживания в зависимости от производительности сервера.",
- "transcoding_realtime_enabled": "Включить перекодирование в реальном времени",
- "transcoding_realtime_enabled_description": "Отключение параметра приведёт к недоступности запуска перекодирования в реальном времени.",
+ "transcoding_preset_preset": "Профиль кодирования (-preset)",
+ "transcoding_preset_preset_description": "Определяют скорость сжатия. Более медленные профили приводят к созданию файлов меньшего размера и повышают качество при установке достаточного битрейта. VP9 игнорирует профили выше “faster”.",
+ "transcoding_realtime": "[ЭКСПЕРИМЕНТАЛЬНО] Транскодирование в реальном времени",
+ "transcoding_realtime_description": "Позволяет транскодировать видео в режиме реального времени во время воспроизведения. Поддерживает переключение качества, но может вызывать задержки воспроизведения и подтормаживания в случае недостаточной производительности сервера.",
+ "transcoding_realtime_enabled": "Включить транскодирование в реальном времени",
+ "transcoding_realtime_enabled_description": "Отключение приведёт к недоступности транскодирования в реальном времени.",
+ "transcoding_realtime_resolutions": "Разрешения",
+ "transcoding_realtime_resolutions_description": "Доступные разрешения для транскодирования в реальном времени. Высокие разрешения могут вызвать проблемы с воспроизведением, если возможностей сервера будет недостаточно.",
+ "transcoding_realtime_video_codecs": "Видеокодеки",
+ "transcoding_realtime_video_codecs_description": "Доступные видеокодеки для транскодирования в реальном времени. Клиенты будут выбирать наиболее подходящий кодек во время воспроизведения. AV1 эффективнее, чем HEVC, который, в свою очередь, эффективнее, чем H.264. При использовании аппаратного ускорения выбирайте только те кодеки, которые поддерживает ускоритель. При использовании программного перекодирования обратите внимание, что H.264 быстрее, чем AV1, который, в свою очередь, быстрее, чем HEVC.",
"transcoding_reference_frames": "Опорные кадры",
- "transcoding_reference_frames_description": "Количество кадров, на которые следует ссылаться при сжатии данного кадра. Более высокие значения повышают эффективность сжатия, но замедляют кодирование. 0 устанавливает это значение автоматически.",
- "transcoding_required_description": "Только видео в нестандартном формате",
+ "transcoding_reference_frames_description": "Количество кадров, на которые следует ссылаться при сжатии текущего кадра. Более высокие значения повышают эффективность сжатия, но замедляют кодирование. Значение 0 устанавливает автоматическое определение их количества.",
+ "transcoding_required_description": "Только видео в недопустимом формате",
"transcoding_settings": "Настройки транскодирования видео",
"transcoding_settings_description": "Управляйте тем, какие видео нужно перекодировать и как их обрабатывать",
"transcoding_target_resolution": "Целевое разрешение",
@@ -426,15 +445,15 @@
"transcoding_temporal_aq": "Temporal Adaptive Quantization (временное адаптивное квантование)",
"transcoding_temporal_aq_description": "Применимо только к NVENC (NVIDIA Encoder). Технология повышает качество высокодетализированных нединамичных сцен. Может быть несовместима со старыми устройствами.",
"transcoding_threads": "Потоки",
- "transcoding_threads_description": "Более высокие значения приводят к более быстрому кодированию, но оставляют серверу меньше места для обработки других задач во время активности. Это значение не должно превышать количество ядер процессора. Максимизирует использование, если установлено значение 0.",
+ "transcoding_threads_description": "Более высокие значения приводят к более быстрому перекодированию, но отнимают больше ресурсов у сервера для выполнения других задач. Значение не должно превышать количество ядер процессора. Значение 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-видео и видео с форматом пикселей, отличным от YUV 4:2:0, всегда будут перекодироваться (за исключением случаев, когда перекодирование отключено).",
+ "transcoding_transcode_policy_description": "Определяет какие видео должны быть перекодированы. HDR-видео и видео с форматом пикселей, отличным от YUV 4:2:0, всегда будут перекодироваться (за исключением случаев, когда перекодирование отключено).",
"transcoding_two_pass_encoding": "Двухпроходное кодирование",
- "transcoding_two_pass_encoding_setting_description": "Перекодируйте за два прохода, чтобы получить более качественное кодирование видео. Когда включен максимальный битрейт (необходим для работы с H.264 и HEVC), в этом режиме используется диапазон битрейта, основанный на максимальном битрейте, и игнорируется CRF. Для VP9 можно использовать CRF, если отключен максимальный битрейт.",
+ "transcoding_two_pass_encoding_setting_description": "Перекодирование в два прохода для получения более качественного видео. Когда включён максимальный битрейт (требуется для работы с H.264 и HEVC), этот режим использует диапазон битрейта, опираясь на значение максимального битрейта, и игнорирует CRF (постоянный коэффициент скорости). Для VP9 CRF может использоваться только если отключён максимальный битрейт.",
"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": "Количество дней, в течение которых файлы будут храниться в корзине до окончательного удаления",
@@ -460,7 +479,7 @@
"user_successfully_removed": "Пользователь {email} успешно удален.",
"users_page_description": "Управление пользователями системы",
"version_check_channel": "Канал обновлений",
- "version_check_channel_description": "Выберите канал по которым получать уведомления о новых версиях",
+ "version_check_channel_description": "Выберите канал по которому получать уведомления о новых версиях",
"version_check_enabled_description": "Включить проверку наличия новых версий",
"version_check_implications": "Функция проверки версии периодически обращается к сайту {server}",
"version_check_settings": "Проверка версии",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Просмотр объектов",
"assets": "Объекты",
"assets_added_to_album_count": "В альбом {count, plural, one {добавлен # объект} many {добавлено # объектов} other {добавлено # объекта}}",
+ "assets_added_to_album_partial_count": "{successCount} из {totalCount, plural, one {# объекта} other {# объектов}} добавлено в альбом",
"assets_added_to_albums_count": "{assetTotal, plural, one {# объект добавлен} many {# объектов добавлены} other {# объекта добавлены}} в {albumTotal, plural, one {# альбом} many {# альбомов} other {# альбома}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Объект не может быть добавлен} other {Объекты не могут быть добавлены}} в альбом",
"assets_cannot_be_added_to_albums": "{count, plural, one {# объект} many {# объектов} other {# объекта}} не могут быть добавлены ни в один альбом",
@@ -763,7 +783,7 @@
"create_album": "Создать альбом",
"create_album_page_untitled": "Без названия",
"create_api_key": "Создать API ключ",
- "create_first_workflow": "Создать первый сценарий",
+ "create_first_workflow": "Нажмите для создания первого сценария",
"create_library": "Создать библиотеку",
"create_link": "Создать ссылку",
"create_link_to_share": "Создать ссылку общего доступа",
@@ -794,7 +814,6 @@
"custom_date": "Произвольная дата",
"custom_locale": "Пользовательские языковые настройки",
"custom_locale_description": "Форматирование дат, времени и чисел на основании выбранного языка и региона",
- "custom_url": "Свой URL",
"cutoff_date_description": "Оставить фото за последние…",
"cutoff_day": "{count, plural, one {день} many {дней} other {дня}}",
"cutoff_year": "{count, plural, one {год} many {лет} other {года}}",
@@ -1461,6 +1480,7 @@
"never": "никогда",
"new_album": "Новый альбом",
"new_api_key": "Новый API ключ",
+ "new_feature": "Новая функциональность",
"new_password": "Новый пароль",
"new_person": "Новый человек",
"new_pin_code": "Новый PIN-код",
@@ -1504,6 +1524,7 @@
"not_available": "Нет данных",
"not_in_any_album": "Ни в одном альбоме",
"not_selected": "Не выбрано",
+ "not_set": "Не задано",
"notes": "Примечание",
"nothing_here_yet": "Здесь пока ничего нет",
"notification_backup_reliability": "Включите уведомления для повышения надежности фоновой синхронизации с сервером",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Настройка Obtainium",
"obtainium_configurator_instructions": "Для установки и обновления Android приложения Immich напрямую из источников на GitHub (минуя магазины приложений) можно использовать Obtainium. Создайте новый API ключ и укажите архитектуру приложения для формирования ссылки для Obtainium.",
"ocr": "Текст (OCR)",
+ "ocr_body": "Immich научился распознавать текст на изображениях, теперь поиск возможен и по этому содержимому.",
+ "ocr_title": "Поиск текста на фотографиях",
"official_immich_resources": "Официальные ресурсы Immich",
"offline": "Недоступен",
"offset": "Смещение",
@@ -1539,6 +1562,8 @@
"open": "Открыть",
"open_calendar": "Открыть календарь",
"open_in_browser": "Открыть в браузере",
+ "open_in_immich_body": "Установите Immich в качестве галереи по умолчанию на Android, чтобы открывать фотографии в Immich из других приложений.",
+ "open_in_immich_title": "Открывать фотографии в Immich",
"open_in_map_view": "Открыть в режиме просмотра карты",
"open_in_openstreetmap": "Открыть в OpenStreetMap",
"open_the_search_filters": "Открыть фильтры поиска",
@@ -1697,10 +1722,13 @@
"recent": "Недавние",
"recent_searches": "Недавние поисковые запросы",
"recently_added": "Недавно добавленные",
+ "recently_added_body": "Переход к отдельной странице с недавно добавленными объектами.",
+ "recently_added_description": "Просмотр объектов, отсортированных по дате их загрузки в Immich",
"recently_added_page_title": "Недавно добавленные",
+ "recently_added_title": "Недавно добавленные",
"recently_taken": "Недавно снято",
"refresh": "Обновить",
- "refresh_encoded_videos": "Обновить закодированные видео",
+ "refresh_encoded_videos": "Обновить перекодированные видео",
"refresh_faces": "Обновить лица",
"refresh_metadata": "Обновить метаданные",
"refresh_thumbnails": "Обновить миниатюры",
@@ -1904,6 +1932,8 @@
"share_link": "Создать ссылку",
"share_original": "Оригинал (большой размер)",
"share_preview": "Миниатюра (маленький размер)",
+ "share_quality_body": "Нажмите и удерживайте кнопку «Поделиться», чтобы выбрать качество изображения перед отправкой.",
+ "share_quality_title": "Выберите качество для функции \"Поделиться\"",
"shared": "Общиe",
"shared_album_activities_input_disable": "Комментарии отключены",
"shared_album_activity_remove_content": "Удалить сообщение?",
@@ -1918,7 +1948,9 @@
"shared_link_app_bar_title": "Публичные ссылки",
"shared_link_clipboard_copied_massage": "Скопировано в буфер обмена",
"shared_link_create_error": "Ошибка при создании публичной ссылки",
- "shared_link_custom_url_description": "Пользовательский URL-адрес общего доступа",
+ "shared_link_custom_url_description": "Ввести свой URL-адрес для общей ссылки",
+ "shared_link_custom_url_title": "Свой URL-адрес",
+ "shared_link_custom_url_warning": "Внимание: при указании URL-адреса, содержащего косую черту, ссылка может работать не так, как ожидается.",
"shared_link_edit_description_hint": "Введите описание",
"shared_link_edit_expire_after_option_day": "1 день",
"shared_link_edit_expire_after_option_days": "{count} дней",
@@ -1985,16 +2017,19 @@
"sign_out": "Выход",
"sign_up": "Зарегистрироваться",
"size": "Размер",
+ "skip": "Пропустить",
"skip_to_content": "Перейти к содержанию",
"skip_to_folders": "Перейти к папкам",
"skip_to_tags": "Перейти к тегам",
"slideshow": "Слайд-шоу",
+ "slideshow_body": "Устройтесь поудобнее и наслаждайтесь полноэкранным просмотром фотографий в режиме слайд-шоу.",
"slideshow_metadata_overlay_mode": "Вид информации",
"slideshow_metadata_overlay_mode_description_only": "Только описание",
"slideshow_metadata_overlay_mode_full": "Полный",
"slideshow_repeat": "Зациклить слайд-шоу",
"slideshow_repeat_description": "Повторять слайд-шоу после его окончания",
"slideshow_settings": "Настройки слайд-шоу",
+ "slideshow_title": "Слайдшоу",
"smart_album": "Смарт-альбом",
"some_assets_already_have_a_location_warning": "Некоторые из выбранных объектов уже содержат данные о местоположении",
"sort_albums_by": "Сортировать альбомы по...",
@@ -2122,6 +2157,7 @@
"unknown": "Неизвестно",
"unknown_country": "Неизвестная страна",
"unknown_date": "Дата неизвестна",
+ "unknown_schema": "Неизвестная схема",
"unknown_year": "Неизвестный Год",
"unlimited": "Не ограничено",
"unlink_motion_video": "Отсоединить движущееся видео",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "Ошибки",
"upload_status_uploaded": "Загружено",
"upload_success": "Загрузка прошла успешно. Обновите страницу, чтобы увидеть новые объекты.",
+ "upload_to_album_body": "Для пользователей, которые не используют функцию ручной загрузки, теперь можно добавлять фотографии с устройства сразу в нужный альбом по мере их загрузки. Больше не нужно сначала загружать их, а затем добавлять в альбом.",
+ "upload_to_album_title": "Загружать сразу в альбом",
"upload_to_immich": "Загрузка в Immich ({count})",
"uploading": "Загружается",
"uploading_media": "Выполняется загрузка",
@@ -2224,6 +2262,9 @@
"week": "Неделя",
"welcome": "Добро пожаловать",
"welcome_to_immich": "Добро пожаловать в Immich",
+ "whats_new": "Что нового",
+ "whats_new_settings_subtitle": "Узнайте об нововведениях в Immich",
+ "whats_new_version": "Версия {version}",
"when": "Когда",
"width": "Ширина",
"wifi_name": "Имя сети",
diff --git a/i18n/sk.json b/i18n/sk.json
index 5c633d3722..c40dfa7e0b 100644
--- a/i18n/sk.json
+++ b/i18n/sk.json
@@ -108,6 +108,21 @@
"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": "Miniatúry",
"import_config_from_json_description": "Importovať konfiguráciu systému nahraním konfiguračného súboru JSON",
+ "integrity_checks_checksum_files": "Súbory s kontrolnými súčtami",
+ "integrity_checks_checksum_files_description": "Nastaviť kontroly kontrolných súčtov",
+ "integrity_checks_checksum_files_enable_description": "Zapnúť kontrolu kontrolných súčtov",
+ "integrity_checks_checksum_files_percentage_limit": "Percentuálny limit",
+ "integrity_checks_checksum_files_percentage_limit_description": "Nastavte maximálnu percentuálnu hodnotu v rozsahu 0.01 až 1. Tá určí ako často sa má kontrolovať kontrolný súčet v každom intervale.",
+ "integrity_checks_checksum_files_time_limit": "Časový limit",
+ "integrity_checks_checksum_files_time_limit_description": "Nastavte maximálnu dobu ako dlho môže prebiehať kontrola kontrolného súčtu v každom intervale. (ms)",
+ "integrity_checks_missing_files": "Chýbajúce súbory",
+ "integrity_checks_missing_files_description": "Nastavte frekvenciu a zapnite alebo vypnite kontrolu chýbajúcich súborov",
+ "integrity_checks_missing_files_enable_description": "Zapnúť kontrolu chýbajúcich súborov",
+ "integrity_checks_settings": "Kontroly integrity",
+ "integrity_checks_settings_description": "Spravovanie intervalov kontrol integrity",
+ "integrity_checks_untracked_files": "Nesledované súbory",
+ "integrity_checks_untracked_files_description": "Nastavte frekvenciu a zapnite alebo vypnite kontrolu nesledovaných súborov",
+ "integrity_checks_untracked_files_enable_description": "Zapnúť kontrolu nesledovaných súborov",
"job_concurrency": "Súbežné úlohy - {job}",
"job_created": "Úloha bola vytvorená",
"job_not_concurrency_safe": "Táto úloha nie je bezpečná pre súbežné spracovanie.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Umožňuje transkódovanie v reálnom čase počas streamovania videa. Umožňuje zmenu kvality, avšak v závislosti od výkonnosti servera môže spôsobiť vyššiu latenciu prehrávania a trhané prehrávanie.",
"transcoding_realtime_enabled": "Zapnúť prekódovanie v reálnom čase",
"transcoding_realtime_enabled_description": "Ak je táto funkcia vypnutá, server odmietne spustiť nové relácie transkódovania v reálnom čase.",
+ "transcoding_realtime_resolutions": "Rozlíšenia",
+ "transcoding_realtime_resolutions_description": "Rozlíšenia ponúkané pre transkódovanie v reálnom čase. Vyššie rozlíšenia môžu spôsobiť problémy s prehrávaním, ak ich server nedokáže transkódovať dostatočne rýchlo.",
+ "transcoding_realtime_video_codecs": "Video kodeky",
+ "transcoding_realtime_video_codecs_description": "Video kodeky ponúkané na transkódovanie v reálnom čase. Klienti si počas prehrávania vyberú najlepšiu možnosť, ktorú podporujú. AV1 je efektívnejší ako HEVC, ktorý je zase efektívnejší ako H.264. Pri použití hardvérovej akcelerácie vyberte len tie kodeky, ktoré akcelerátor dokáže kódovať. Pri použití softvérového transkódovania majte na pamäti, že H.264 je rýchlejší ako AV1, ktorý je zase rýchlejší ako HEVC.",
"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 prijateľnom formáte",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Prehliadač médií",
"assets": "Položky",
"assets_added_to_album_count": "Do albumu {count, plural, one {bola pridaná # položka} few {boli pridané # položky} other {bolo pridaných # položiek}}",
+ "assets_added_to_album_partial_count": "Do albumu bolo pridaných {successCount} z {totalCount} {totalCount, plural, one {položky} other {položiek}}",
"assets_added_to_albums_count": "{assetTotal, plural, one {Pridaná # položka} few {Pridané # položky} other {Pridaných # položiek}} do {albumTotal, plural, one {# albumu} other {# albumov}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {položku} other {položiek}} nie je možné pridať do albumu",
"assets_cannot_be_added_to_albums": "{count, plural, one {položka} few {položky} other {položiek}} nie je možné pridať do žiadneho albumu",
@@ -794,7 +814,6 @@
"custom_date": "Vlastný dátum",
"custom_locale": "Vlastné nastavenie jazyka",
"custom_locale_description": "Formátovať dátumy, časy a čísla podľa vybraného jazyka a regiónu",
- "custom_url": "Vlastná URL adresa",
"cutoff_date_description": "Ponechať fotografie z posledného obdobia…",
"cutoff_day": "{count, plural, one {deň} few {dni} other {dní}}",
"cutoff_year": "{count, plural, one {rok} few {roky} other {rokov}}",
@@ -1461,6 +1480,7 @@
"never": "nikdy",
"new_album": "Nový album",
"new_api_key": "Nový API kľúč",
+ "new_feature": "Nová funkcia",
"new_password": "Nové heslo",
"new_person": "Nová osoba",
"new_pin_code": "Nový PIN kód",
@@ -1504,6 +1524,7 @@
"not_available": "Nedostupné",
"not_in_any_album": "Nie je v žiadnom albume",
"not_selected": "Nevybrané",
+ "not_set": "Nenastavené",
"notes": "Poznámky",
"nothing_here_yet": "Zatiaľ tu nič nie je",
"notification_backup_reliability": "Zapnúť upozornenia na zlepšenie spoľahlivosti zálohovania na pozadí",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Konfigurátor Obtainium",
"obtainium_configurator_instructions": "Použite Obtainium na inštaláciu a aktualizáciu aplikácie pre Android priamo z verzie Immich v službe GitHub. Vytvorte kľúč API a vyberte variantu, aby ste vytvorili konfiguračný odkaz Obtainium",
"ocr": "OCR",
+ "ocr_body": "Immich teraz detekuje text vo Vašich fotkách, takže môžete vyhľadávať aj v týchto textoch.",
+ "ocr_title": "Vyhľadávať text vo Vašich fotkách",
"official_immich_resources": "Oficiálne Immich zdroje",
"offline": "Offline",
"offset": "Posun",
@@ -1539,6 +1562,8 @@
"open": "Otvoriť",
"open_calendar": "Otvoriť kalendár",
"open_in_browser": "Otvoriť v prehliadači",
+ "open_in_immich_body": "Nastavte vo svojom Androide aplikáciu Immich ako svoju galériu, aby ste mohli otvárat fotografie priamo z iných aplikácií.",
+ "open_in_immich_title": "Otvoriť fotografie v Immich",
"open_in_map_view": "Otvoriť v mape",
"open_in_openstreetmap": "Otvoriť v OpenStreetMap",
"open_the_search_filters": "Otvoriť vyhľadávacie filtre",
@@ -1697,7 +1722,10 @@
"recent": "Nedávne",
"recent_searches": "Posledné vyhľadávania",
"recently_added": "Nedávno pridané",
+ "recently_added_body": "Prejdite priamo na stránku, kde nájdete naposledy pridané fotky.",
+ "recently_added_description": "Prezerať fotky zoradené podľa dátumu pridania do Immich",
"recently_added_page_title": "Nedávno pridané",
+ "recently_added_title": "Naposledy pridané",
"recently_taken": "Nedávno nasnímané",
"refresh": "Aktualizovať",
"refresh_encoded_videos": "Obnoviť enkódované videá",
@@ -1904,6 +1932,8 @@
"share_link": "Zdieľať odkaz",
"share_original": "Použiť originál (veľký)",
"share_preview": "Použiť miniatúru (malý)",
+ "share_quality_body": "Stlačte a podržte tlačidlo zdieľať pre výber kvality obrázka.",
+ "share_quality_title": "Vyberte kvalitu obrázka na zdieľanie",
"shared": "Zdieľané",
"shared_album_activities_input_disable": "Komentár je zakázaný",
"shared_album_activity_remove_content": "Chcete vymazať túto aktivitu?",
@@ -1918,7 +1948,9 @@
"shared_link_app_bar_title": "Zdieľané odkazy",
"shared_link_clipboard_copied_massage": "Skopírované do schránky",
"shared_link_create_error": "Vyskytla sa chyba behom vytvárania zdieľaného odkazu",
- "shared_link_custom_url_description": "Prístup k tomuto zdieľanému odkazu pomocou vlastnej URL adresy",
+ "shared_link_custom_url_description": "Prístup k tomuto zdieľanému odkazu pomocou vlastného názvu URL adresy",
+ "shared_link_custom_url_title": "Vlastná URL adresa",
+ "shared_link_custom_url_warning": "Upozornenie: vlastný názov URL s lomítkom sa nemusí správať tak, ako očakávate.",
"shared_link_edit_description_hint": "Zadajte popis zdieľania",
"shared_link_edit_expire_after_option_day": "1 deň",
"shared_link_edit_expire_after_option_days": "{count} dní",
@@ -1985,16 +2017,19 @@
"sign_out": "Odhlásiť sa",
"sign_up": "Registrovať",
"size": "Veľkosť",
+ "skip": "Preskočiť",
"skip_to_content": "Preskočiť na obsah",
"skip_to_folders": "Preskočiť do priečinkov",
"skip_to_tags": "Preskočiť ku štítkom",
"slideshow": "Prezentácia",
+ "slideshow_body": "Sledujte ako sa Vaše fotografie premietajú v prezentácii na celej obrazovke.",
"slideshow_metadata_overlay_mode": "Obsah prekrytia obrázku",
"slideshow_metadata_overlay_mode_description_only": "Iba popis",
"slideshow_metadata_overlay_mode_full": "Úplný",
"slideshow_repeat": "Opakovať prezentáciu",
"slideshow_repeat_description": "Po skončení prezentácie sa vrátiť späť na začiatok",
"slideshow_settings": "Nastavenia prezentácie",
+ "slideshow_title": "Prezentácia",
"smart_album": "Inteligentný album",
"some_assets_already_have_a_location_warning": "Niektoré z vybraných objektov už majú určenú polohu",
"sort_albums_by": "Zoradiť albumy podľa...",
@@ -2122,6 +2157,7 @@
"unknown": "Neznáme",
"unknown_country": "Neznáma krajina",
"unknown_date": "Neznámy dátum",
+ "unknown_schema": "Neznáma schéma",
"unknown_year": "Neznámy rok",
"unlimited": "Neobmedzené",
"unlink_motion_video": "Odpojiť pohyblivé video",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "Chyby",
"upload_status_uploaded": "Nahrané",
"upload_success": "Nahrávanie úspešné, pridané súbory sa zobrazia po obnovení stránky.",
+ "upload_to_album_body": "Užívatelia, ktorí nevyužívajú ručné pridávanie obrázkov, si môžu zvoliť, či chcú lokálne fotografie pridávať priamo do albumu už pri ich pridávaní. Už nie je potrebné ich najprv pridať do Immich a až potom pridať do albumu.",
+ "upload_to_album_title": "Nahrať priamo do albumu",
"upload_to_immich": "Nahrať na Immich ({count})",
"uploading": "Nahrávanie",
"uploading_media": "Nahrávanie médií",
@@ -2224,6 +2262,9 @@
"week": "Týždeň",
"welcome": "Vitajte",
"welcome_to_immich": "Vitajte v Immich",
+ "whats_new": "Čo je nové",
+ "whats_new_settings_subtitle": "Čo je nové v Immich",
+ "whats_new_version": "Verzia {version}",
"when": "Kedy",
"width": "Šírka",
"wifi_name": "Názov Wi-Fi",
diff --git a/i18n/sl.json b/i18n/sl.json
index 344308f773..c2100294ce 100644
--- a/i18n/sl.json
+++ b/i18n/sl.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Kakovost sličic od 1-100. Višje je boljše, vendar ustvarja večje datoteke in lahko zmanjša odzivnost aplikacije.",
"image_thumbnail_title": "Nastavitve sličic",
"import_config_from_json_description": "Uvozite sistemsko konfiguracijo z nalaganjem konfiguracijske datoteke JSON",
+ "integrity_checks_checksum_files": "Datoteke kontrolnih vsot",
+ "integrity_checks_checksum_files_description": "Konfigurirajte preverjanje kontrolne vsote",
+ "integrity_checks_checksum_files_enable_description": "Omogočite preverjanje kontrolne vsote",
+ "integrity_checks_checksum_files_percentage_limit": "Odstotna omejitev",
+ "integrity_checks_checksum_files_percentage_limit_description": "Konfigurirajte največji odstotek med 0,01 in 1 za to, kolikokrat naj se preverjanje kontrolne vsote izvaja v vsakem intervalu.",
+ "integrity_checks_checksum_files_time_limit": "Časovna omejitev",
+ "integrity_checks_checksum_files_time_limit_description": "Konfigurirajte najdaljše trajanje preverjanja kontrolne vsote v vsakem intervalu. (ms)",
+ "integrity_checks_missing_files": "Manjkajoče datoteke",
+ "integrity_checks_missing_files_description": "Konfigurirajte pogostost in omogočite ali onemogočite preverjanje manjkajočih datotek",
+ "integrity_checks_missing_files_enable_description": "Omogočite preverjanje manjkajočih datotek",
+ "integrity_checks_settings": "Preverjanja integritete",
+ "integrity_checks_settings_description": "Upravljanje intervalov preverjanj integritete",
+ "integrity_checks_untracked_files": "Nesledljive datoteke",
+ "integrity_checks_untracked_files_description": "Konfigurirajte pogostost in omogočite ali onemogočite preverjanje nesledljivih datotek",
+ "integrity_checks_untracked_files_enable_description": "Omogoči preverjanje nesledljivih datotek",
"job_concurrency": "{job} sočasnost",
"job_created": "Opravilo ustvarjeno",
"job_not_concurrency_safe": "To delo ni varno za sočasnost.",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Omogoča prekodiranje v realnem času med pretakanjem videa. Omogoča preklapljanje kakovosti, vendar lahko povzroči večjo zakasnitev predvajanja in zatikanje, odvisno od zmogljivosti strežnika.",
"transcoding_realtime_enabled": "Omogoči prekodiranje v realnem času",
"transcoding_realtime_enabled_description": "Če je onemogočeno, bo strežnik zavrnil začetek novih sej prekodiranja v realnem času.",
+ "transcoding_realtime_resolutions": "Ločljivosti",
+ "transcoding_realtime_resolutions_description": "Ločljivosti, ki so na voljo za transkodiranje v realnem času. Višje ločljivosti lahko povzročijo težave s predvajanjem, če jih strežnik ne more dovolj hitro transkodirati.",
+ "transcoding_realtime_video_codecs": "Video kodeki",
+ "transcoding_realtime_video_codecs_description": "Video kodeki, ki so na voljo za transkodiranje v realnem času. Stranke bodo med predvajanjem izbrale najboljšo možnost, ki jo podpirajo. AV1 je učinkovitejši od HEVC, ki je učinkovitejši od H.264. Pri uporabi strojnega pospeševanja izberite samo kodeke, ki jih pospeševalnik lahko kodira. Pri uporabi programskega transkodiranja upoštevajte, da je H.264 hitrejši od AV1, ki je hitrejši od HEVC.",
"transcoding_reference_frames": "Referenčni okvirji",
"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",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Pregledovalnik sredstev",
"assets": "Sredstva",
"assets_added_to_album_count": "Dodano {count, plural, one {# sredstvo} two {# sredstvi} few {# sredstva} other {# sredstev}} v album",
+ "assets_added_to_album_partial_count": "V album je bilo dodanih {successCount} od {totalCount} {totalCount, plural, one {sredstva} other {sredstev}}",
"assets_added_to_albums_count": "Dodano {assetTotal, plural, one {# sredstvo} two {# sredstvi} few {# sredstva} other {# sredstev}} v {albumTotal, plural, one {# album} two {# albuma} few {# albume} other {# albumov}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Sredstvo} two {Sredstvi} few {Sredstva} other {Sredstev}} ni mogoče dodati v album",
"assets_cannot_be_added_to_albums": "{count, plural, one {Sredstvo} two {Sredstvi} few {Sredstva} other {Sredstev}} ni mogoče dodati v noben album",
@@ -794,7 +814,6 @@
"custom_date": "Datum po meri",
"custom_locale": "Jezik po meri",
"custom_locale_description": "Oblikovanje datuma, časa in številk glede na izbrani jezik in regijo",
- "custom_url": "URL po meri",
"cutoff_date_description": "Shranite fotografije iz zadnjega…",
"cutoff_day": "{count, plural, one {dan} other {dni}}",
"cutoff_year": "{count, plural, one {leto} two {leti} few {leta} other {let}}",
@@ -1461,6 +1480,7 @@
"never": "nikoli",
"new_album": "Nov album",
"new_api_key": "Nov API ključ",
+ "new_feature": "Nova funkcija",
"new_password": "Novo geslo",
"new_person": "Nova oseba",
"new_pin_code": "Nova PIN koda",
@@ -1504,6 +1524,7 @@
"not_available": "Ni na voljo",
"not_in_any_album": "Ni v nobenem albumu",
"not_selected": "Ni izbrano",
+ "not_set": "Ni nastavljeno",
"notes": "Opombe",
"nothing_here_yet": "Tukaj še ni ničesar",
"notification_backup_reliability": "Omogočite obvestila za izboljšanje zanesljivosti varnostnega kopiranja v ozadju",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Konfigurator Obtainium",
"obtainium_configurator_instructions": "Z Obtainium namestite in posodobite aplikacijo za Android neposredno iz izdaje Immich GitHub. Ustvarite ključ API in izberite različico, da ustvarite svojo konfiguracijsko povezavo Obtainium",
"ocr": "Optično prepoznavanje znakov (OCR)",
+ "ocr_body": "Immich zdaj bere besedilo v vaših fotografijah, tako da jih lahko iščete po tem, kaj pišejo.",
+ "ocr_title": "Iskanje besedila na fotografijah",
"official_immich_resources": "Immich uradni viri",
"offline": "Brez povezave",
"offset": "Odmik",
@@ -1539,6 +1562,8 @@
"open": "Odpri",
"open_calendar": "Odpri koledar",
"open_in_browser": "Odpri v brskalniku",
+ "open_in_immich_body": "Nastavite Immich kot galerijo v sistemu Android, da boste lahko fotografije odpirali neposredno iz drugih aplikacij.",
+ "open_in_immich_title": "Odpri fotografije v Immichu",
"open_in_map_view": "Odpri v pogledu zemljevida",
"open_in_openstreetmap": "Odpri v OpenStreetMap",
"open_the_search_filters": "Odpri iskalne filtre",
@@ -1596,7 +1621,7 @@
"person": "Oseba",
"person_age_months": "{months, plural, one {# mesec} two {# meseca} few {# mesece} other {# mesecev}} star/a",
"person_age_year_months": "1 leto, {months, plural, one {# mesec} two {# meseca} few {# mesece} other {# mesecev}} star/a",
- "person_age_years": "{years, plural, two {# leti} few {# leta} other {# let}} star/a",
+ "person_age_years": "{years, plural, one {# leto} two {# leti} few {# leta} other {# let}} star/a",
"person_birthdate": "Rojen dne {date}",
"person_hidden": "{name}{hidden, select, true { (skrita)} other {}}",
"person_recognized": "Oseba prepoznana",
@@ -1697,7 +1722,10 @@
"recent": "Nedavno",
"recent_searches": "Nedavna iskanja",
"recently_added": "Nedavno dodano",
+ "recently_added_body": "Skočite neposredno na vse, kar ste nedavno dodali, na namenski strani.",
+ "recently_added_description": "Brskajte po svojih sredstvih, razvrščenih po času nalaganja v Immich",
"recently_added_page_title": "Nedavno dodano",
+ "recently_added_title": "Nedavno dodano",
"recently_taken": "Nedavno posneto",
"refresh": "Osveži",
"refresh_encoded_videos": "Osveži kodirane videoposnetke",
@@ -1904,6 +1932,8 @@
"share_link": "Deli povezavo",
"share_original": "Uporabi izvirno (veliko)",
"share_preview": "Uporabi sličico (majhno)",
+ "share_quality_body": "Pritisnite in držite gumb za deljenje, da izberete kakovost slike, preden jo delite.",
+ "share_quality_title": "Izberite kakovost delitve",
"shared": "V skupni rabi",
"shared_album_activities_input_disable": "Komentiranje je onemogočeno",
"shared_album_activity_remove_content": "Ali želite izbrisati to dejavnost?",
@@ -1918,7 +1948,9 @@
"shared_link_app_bar_title": "Povezave v skupni rabi",
"shared_link_clipboard_copied_massage": "Kopirano v odložišče",
"shared_link_create_error": "Napaka pri ustvarjanju povezave skupne rabe",
- "shared_link_custom_url_description": "Dostop do te deljene povezave z URL-jem po meri",
+ "shared_link_custom_url_description": "Dostop do te deljene povezave z imenom URL-ja po meri",
+ "shared_link_custom_url_title": "URL po meri",
+ "shared_link_custom_url_warning": "Opozorilo: ime URL-ja po meri s poševnico naprej morda ne bo delovalo po pričakovanjih.",
"shared_link_edit_description_hint": "Vnesi opis skupne rabe",
"shared_link_edit_expire_after_option_day": "1 dan",
"shared_link_edit_expire_after_option_days": "{count} dni",
@@ -1985,16 +2017,19 @@
"sign_out": "Odjavi se",
"sign_up": "Prijavi se",
"size": "Velikost",
+ "skip": "Preskoči",
"skip_to_content": "Preskoči na vsebino",
"skip_to_folders": "Preskoči na mape",
"skip_to_tags": "Preskoči na oznake",
"slideshow": "Diaprojekcija",
+ "slideshow_body": "Udobno se namestite in si oglejte svoje fotografije v celozaslonskem prikazu diaprojekcije.",
"slideshow_metadata_overlay_mode": "Prekrivna vsebina",
"slideshow_metadata_overlay_mode_description_only": "Samo opis",
"slideshow_metadata_overlay_mode_full": "Polno",
"slideshow_repeat": "Ponavljanje diaprojekcije",
"slideshow_repeat_description": "Po koncu diaprojekcije se zanka vrne na začetek",
"slideshow_settings": "Nastavitve diaprojekcije",
+ "slideshow_title": "Diaprojekcija",
"smart_album": "Pametni album",
"some_assets_already_have_a_location_warning": "Nekatera izbrana sredstva že imajo lokacijo",
"sort_albums_by": "Razvrsti albume po...",
@@ -2122,6 +2157,7 @@
"unknown": "Neznano",
"unknown_country": "Neznana država",
"unknown_date": "Neznan datum",
+ "unknown_schema": "Neznana shema",
"unknown_year": "Neznano leto",
"unlimited": "Neomejeno",
"unlink_motion_video": "Prekini povezavo videoposnetka gibanja",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "Napake",
"upload_status_uploaded": "Naloženo",
"upload_success": "Nalaganje je uspelo, osvežite stran, da vidite nova sredstva za nalaganje.",
+ "upload_to_album_body": "Uporabniki, ki ne uporabljajo funkcije ročnega nalaganja, lahko zdaj dodajo lokalne fotografije neposredno v album med nalaganjem, tako da jih ni več treba nalagati in nato dodajati v album pozneje.",
+ "upload_to_album_title": "Naloži neposredno v album",
"upload_to_immich": "Naloži v Immich ({count})",
"uploading": "Nalagam",
"uploading_media": "Nalaganje medijev",
@@ -2224,6 +2262,9 @@
"week": "Teden",
"welcome": "Dobrodošli",
"welcome_to_immich": "Dobrodošli v Immich",
+ "whats_new": "Kaj je novega",
+ "whats_new_settings_subtitle": "Oglejte si novosti v Immichu",
+ "whats_new_version": "Različica {version}",
"when": "Ko",
"width": "Širina",
"wifi_name": "Wi-Fi ime",
diff --git a/i18n/sq.json b/i18n/sq.json
index d374a07552..39ff274665 100644
--- a/i18n/sq.json
+++ b/i18n/sq.json
@@ -6,7 +6,7 @@
"action": "Aksion",
"action_common_update": "Përditëso",
"action_description": "Një grup veprimesh për t'u kryer në asetet e filtruara",
- "actions": "Aksione",
+ "actions": "Veprime",
"active": "Aktiv",
"active_count": "Aktive: {count}",
"activity": "Aktivitet",
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Cilësia e miniaturave nga 1-100. Sa më e lartë të jetë aq më mirë, por prodhon skedarë më të mëdhenj dhe mund të zvogëlojë reagimin e aplikacionit.",
"image_thumbnail_title": "Cilësimet e miniaturës",
"import_config_from_json_description": "Importo konfigurimin e sistemit duke ngarkuar një skedar konfigurimi JSON",
+ "integrity_checks_checksum_files": "Skedarë checksum",
+ "integrity_checks_checksum_files_description": "Konfiguro kontrollin e checksum-it",
+ "integrity_checks_checksum_files_enable_description": "Aktivizo kontrollin e checksum-it",
+ "integrity_checks_checksum_files_percentage_limit": "Kufi përqindjeje",
+ "integrity_checks_checksum_files_percentage_limit_description": "Konfiguro përqindjen maksimale midis 0.01 dhe 1 për sa duhet të ekzekutohet kontrolli i checksum-it në çdo interval.",
+ "integrity_checks_checksum_files_time_limit": "Kufi kohor",
+ "integrity_checks_checksum_files_time_limit_description": "Konfiguro kohëzgjatjen maksimale për të cilën duhet të ekzekutohet kontrolli i checksum-it në çdo interval. (ms)",
+ "integrity_checks_missing_files": "Skedarë që mungojnë",
+ "integrity_checks_missing_files_description": "Konfiguro shpeshtësinë dhe aktivizo ose çaktivizo kontrollin e skedarëve që mungojnë",
+ "integrity_checks_missing_files_enable_description": "Aktivizo kontrollin e skedarëve që mungojnë",
+ "integrity_checks_settings": "Kontrolle integriteti",
+ "integrity_checks_settings_description": "Menaxho intervalet e kontrolleve të integritetit",
+ "integrity_checks_untracked_files": "Skedarë të pandjekur",
+ "integrity_checks_untracked_files_description": "Konfiguro shpeshtësinë dhe aktivizo ose çaktivizo kontrollin e skedarëve të pandjekur",
+ "integrity_checks_untracked_files_enable_description": "Aktivizo kontrollin e skedarëve të pandjekur",
"job_concurrency": "{job} paralele",
"job_created": "Puna u krijua",
"job_not_concurrency_safe": "Kjo punë nuk është e sigurt për paralelizmin.",
@@ -183,18 +198,23 @@
"machine_learning_smart_search_enabled": "Aktivizo kërkimin inteligjent",
"machine_learning_smart_search_enabled_description": "Nëse çaktivizohet, imazhet nuk do të kodohen për kërkim inteligjent.",
"machine_learning_url_description": "URL-ja e serverit të të mësuarit automatik. Nëse jepet më shumë se një URL, secili server do të provohet një nga një derisa njëri të përgjigjet me sukses, në rend nga i pari tek i fundit. Serverët që nuk përgjigjen do të injorohen përkohësisht derisa të kthehen në linjë.",
+ "maintenance_backup_management": "Menaxhimi i kopjeve rezervë",
"maintenance_delete_backup": "Fshi kopjen rezervë",
"maintenance_delete_backup_description": "Ky skedar do të fshihet në mënyrë të pakthyeshme.",
"maintenance_delete_error": "Fshirja e kopjes rezervë dështoi.",
+ "maintenance_integrity_check": "Kontrollo",
"maintenance_integrity_check_all": "Kontrollo të gjitha",
"maintenance_integrity_checksum_mismatch": "Mospërputhje e shumës së kontrollit",
+ "maintenance_integrity_checksum_mismatch_description": "Skedarët për të cilët checksumi në disk nuk përputhet me checksumin që Immich ka ruajtur në bazën e të dhënave të tij.",
"maintenance_integrity_checksum_mismatch_job": "Kontrolloni për mospërputhje të shumës së kontrollit",
"maintenance_integrity_checksum_mismatch_refresh_job": "Rifresko raportet e mospërputhjes së shumës së kontrollit",
"maintenance_integrity_missing_file": "Skedarët që mungojnë",
+ "maintenance_integrity_missing_file_description": "Skedarët që Immich i ka gjurmuar në bazën e të dhënave të tij, por që nuk ekzistojnë në sistemin e skedarëve.",
"maintenance_integrity_missing_file_job": "Kontrolloni për skedarë që mungojnë",
"maintenance_integrity_missing_file_refresh_job": "Rifresko raportet e skedarëve që mungojnë",
"maintenance_integrity_report": "Raporti i Integritetit",
"maintenance_integrity_untracked_file": "Skedarët e Pagjurmuar",
+ "maintenance_integrity_untracked_file_description": "Skedarët në direktoritë e Immich-it për të cilët Immich nuk ka asnjë regjistër.",
"maintenance_integrity_untracked_file_job": "Kontrolloni për skedarë të pagjurmuar",
"maintenance_integrity_untracked_file_refresh_job": "Rifresko raportet e skedarëve të pagjurmuar",
"maintenance_restore_backup": "Rivendos rezervën",
@@ -318,16 +338,980 @@
"reset_settings_to_default": "Rivendos cilësimet në ato të parazgjedhura",
"reset_settings_to_recent_saved": "Rivendos cilësimet në cilësimet e ruajtura së fundmi",
"scanning_library": "Duke skanuar bibliotekën",
- "search_jobs": "Kërko punë…"
+ "search_jobs": "Kërko punë…",
+ "send_welcome_email": "Dërgo email mirëseardhjeje",
+ "server_external_domain_settings": "Domeni i jashtëm",
+ "server_external_domain_settings_description": "Domeni i përdorur për lidhjet e jashtme",
+ "server_public_users": "Përdoruesit publikë",
+ "server_public_users_description": "Të gjithë përdoruesit (emri dhe emaili) shfaqen kur shtohet një përdorues në albumet e përbashkëta. Kur është çaktivizuar, lista e përdoruesve do të jetë e disponueshme vetëm për përdoruesit admin.",
+ "server_settings": "Caktimet e serverit",
+ "server_settings_description": "Menaxho cilësimet e serverit",
+ "server_stats_page_description": "Faqja e statistikave të serverit administrativ",
+ "server_welcome_message": "Mesazh mirëseardhjeje",
+ "server_welcome_message_description": "Një mesazh që shfaqet në faqen e hyrjes.",
+ "settings_page_description": "Faqja e cilësimeve të administrimit",
+ "sidecar_job": "Metadata sidecar",
+ "sidecar_job_description": "Zbulo ose sinkronizo metadatat sidecar nga sistemi i skedarëve",
+ "slideshow_duration_description": "Numri i sekondave për me shfaqë çdo imazh",
+ "smart_search_job_description": "Ekzekuto mësim makine mbi asetet për me mbështetë kërkimin inteligjent",
+ "storage_template_date_time_description": "Markatimpi i krijimit të asetit përdoret për informacionin e datës dhe orës",
+ "storage_template_date_time_sample": "Koha e mostrës {date}",
+ "storage_template_enable_description": "Aktivizo motorin e shabllonit të ruajtjes",
+ "storage_template_hash_verification_enabled": "Verifikimi i hash-it asht aktivizuar",
+ "storage_template_hash_verification_enabled_description": "Aktivizon verifikimin e hash-it, mos e çaktivizo këtë nëse nuk je i sigurt për implikacionet",
+ "storage_template_migration": "Migrimi i shabllonit të ruajtjes",
+ "storage_template_migration_description": "Apliko {template} aktual te asetet e ngarkuara ma parë",
+ "storage_template_migration_info": "Shablloni i ruajtjes do t'i konvertojë të gjitha shtesat në shkronja të vogla. Ndryshimet e shabllonit do të aplikohen vetëm për asetet e reja. Për t'i aplikuar retroaktivisht te asetet e ngarkuara ma parë, ekzekuto {job}.",
+ "storage_template_migration_job": "Puna e migrimit të shabllonit të ruajtjes",
+ "storage_template_more_details": "Për ma shumë detaje rreth kësaj veçorie, referoju Shabllonit të Ruajtjes dhe implikacioneve të tij",
+ "storage_template_onboarding_description_v2": "Kur aktivizohet, kjo veçori do t'i organizojë automatikisht skedarët bazuar në një shabllon të definuar nga përdoruesi. Për ma shumë informacion, shih dokumentacionin.",
+ "storage_template_path_length": "Kufiri afërsisht i gjatësisë së shtegut: {length, number}/{limit, number}",
+ "storage_template_settings": "Shablloni i ruajtjes",
+ "storage_template_settings_description": "Menaxho strukturën e dosjeve dhe emrin e skedarit të asetit të ngarkuar",
+ "storage_template_user_label": "{label} asht Etiketa e Ruajtjes e përdoruesit",
+ "system_settings": "Cilësimet e sistemit",
+ "tag_cleanup_job": "Pastrimi i etiketave",
+ "template_email_available_tags": "Mund të përdorësh variablat e mëposhtme në shabllonin tënd: {tags}",
+ "template_email_if_empty": "Nëse shablloni asht bosh, do të përdoret emaili i parazgjedhur.",
+ "template_email_invite_album": "Shablloni i ftesës në album",
+ "template_email_preview": "Pamja paraprake",
+ "template_email_settings": "Shabllonet e emailit",
+ "template_email_update_album": "Shablloni i përditësimit të albumit",
+ "template_email_welcome": "Shablloni i emailit të mirëseardhjes",
+ "template_settings": "Shablonet e njoftimeve",
+ "template_settings_description": "Menaxho shablonet e personalizuara për njoftimet",
+ "theme_custom_css_settings": "CSS i personalizuar",
+ "theme_custom_css_settings_description": "Cascading Style Sheets lejojnë personalizimin e dizajnit të Immich.",
+ "theme_settings": "Cilësimet e temës",
+ "theme_settings_description": "Menaxho personalizimin e ndërfaqes web të Immich",
+ "thumbnail_generation_job": "Gjenero miniatura",
+ "thumbnail_generation_job_description": "Gjenero miniatura të mëdha, të vogla dhe të turbullta për çdo aset, si dhe miniatura për çdo person",
+ "transcoding_acceleration_api": "API-ja e përshpejtimit",
+ "transcoding_acceleration_api_description": "API-ja që do të ndërveprojë me pajisjen tënde për me përshpejtuar transkodimin. Ky cilësim asht 'best effort': do të kthehet te transkodimi softuerik nëse dështon. VP9 mund të funksionojë ose jo varësisht nga hardueri yt.",
+ "transcoding_acceleration_nvenc": "NVENC (kërkon GPU NVIDIA)",
+ "transcoding_acceleration_qsv": "Quick Sync (kërkon CPU Intel brez 7 ose ma të ri)",
+ "transcoding_acceleration_rkmpp": "RKMPP (vetëm në SOC-et Rockchip)",
+ "transcoding_acceleration_vaapi": "VAAPI",
+ "transcoding_accepted_audio_codecs": "Kodeckët e audios të pranuara",
+ "transcoding_accepted_audio_codecs_description": "Zgjidh cilët kodeckë audio nuk kanë nevojë të transkodihen. Përdoret vetëm për politika të caktuara transkodimi.",
+ "transcoding_accepted_containers": "Kontejnerët e pranuar",
+ "transcoding_accepted_containers_description": "Zgjidh cilët formate kontejneri nuk kanë nevojë të ripakohen në MP4. Përdoret vetëm për politika të caktuara transkodimi.",
+ "transcoding_accepted_video_codecs": "Kodeckët e videos të pranuara",
+ "transcoding_accepted_video_codecs_description": "Zgjidh cilët kodeckë video nuk kanë nevojë të transkodihen. Përdoret vetëm për politika të caktuara transkodimi.",
+ "transcoding_advanced_options_description": "Opsione që shumica e përdoruesve nuk kanë nevojë t'i ndryshojnë",
+ "transcoding_audio_codec": "Kodeku i audios",
+ "transcoding_audio_codec_description": "Opus asht opsioni me cilësi ma të lartë, por ka përputhshmëri ma të ulët me pajisje ose softuer të vjetër.",
+ "transcoding_bitrate_description": "Videot ma të larta se bitrate maksimal ose jo në format të pranuar",
+ "transcoding_codecs_learn_more": "Për me mësu ma shumë rreth terminologjisë këtu, referoju dokumentacionit FFmpeg për kodekun H.264, kodekun HEVC dhe kodekun VP9.",
+ "transcoding_constant_quality_mode": "Mënyra e cilësisë konstante",
+ "transcoding_constant_quality_mode_description": "ICQ asht ma e mirë se CQP, por disa pajisje të përshpejtimit harduerik nuk e mbështesin këtë mënyrë. Ky opsion do të preferojë mënyrën e specifikuar kur përdor kodim bazuar në cilësi. Injorohet nga NVENC pasi nuk mbështet ICQ.",
+ "transcoding_constant_rate_factor": "Faktori i normës konstante (-crf)",
+ "transcoding_constant_rate_factor_description": "Niveli i cilësisë së videos. Vlerat tipike janë 23 për H.264, 28 për HEVC, 31 për VP9 dhe 35 për AV1. Vlera ma e ulët asht ma e mirë, por prodhon skedarë ma të mëdhenj.",
+ "transcoding_disabled_description": "Mos transkodo asnjë video, mund të prish luajtjen në disa klientë",
+ "transcoding_encoding_options": "Opsionet e kodimit",
+ "transcoding_encoding_options_description": "Vendos kodeckë, rezolucion, cilësi dhe opsione të tjera për videot e koduara",
+ "transcoding_hardware_acceleration": "Përshpejtimi harduerik",
+ "transcoding_hardware_acceleration_description": "Eksperimental: transkodim ma i shpejtë por mund të ulë cilësinë me të njëjtin bitrate",
+ "transcoding_hardware_decoding": "Dekodimi harduerik",
+ "transcoding_hardware_decoding_setting_description": "Aktivizon përshpejtimin nga fillimi në fund në vend se të përshpejtojë vetëm kodimin. Mund të mos funksionojë me të gjitha videot.",
+ "transcoding_max_b_frames": "B-frames maksimale",
+ "transcoding_max_b_frames_description": "Vlerat ma të larta përmirësojnë efikasitetin e kompresimit, por ngadalësojnë kodimin. Mund të mos jetë i përputhshëm me përshpejtimin harduerik në pajisje të vjetra. 0 çaktivizonte B-frames, ndërsa -1 e vendos këtë vlerë automatikisht.",
+ "transcoding_max_bitrate": "Bitrate maksimal",
+ "transcoding_max_bitrate_description": "Vendosja e bitrate-it maksimal mund t'i bëjë madhësitë e skedarëve ma të parashikueshme me kosto të vogël në cilësi. Në 720p, vlerat tipike janë 2600 kbit/s për VP9 ose HEVC, ose 4500 kbit/s për H.264. Çaktivizohet nëse vendoset në 0. Kur nuk specifikohet njësia, supozohet k (kbit/s).",
+ "transcoding_max_keyframe_interval": "Intervali maksimal i keyframe",
+ "transcoding_max_keyframe_interval_description": "Vendos distancën maksimale të kornizave ndërmjet keyframe-ve. Vlerat ma të ulëta përkeqësojnë efikasitetin e kompresimit, por përmirësojnë kohët e kërkimit dhe mund të përmirësojnë cilësinë në skenat me lëvizje të shpejtë. 0 e vendos këtë vlerë automatikisht.",
+ "transcoding_optimal_description": "Videot ma të larta se rezolucioni i synuar ose jo në format të pranuar",
+ "transcoding_policy": "Politika e transkodimit",
+ "transcoding_policy_description": "Vendos kur do të transkodihet një video",
+ "transcoding_preferred_hardware_device": "Pajisja harduerike e preferuar",
+ "transcoding_preferred_hardware_device_description": "Aplikohet vetëm për VAAPI dhe QSV. Vendos nyjen dri të përdorur për transkodim harduerik.",
+ "transcoding_preset_preset": "Paravendosja (-preset)",
+ "transcoding_preset_preset_description": "Shpejtësia e kompresimit. Paravendosjet ma të ngadalta prodhojnë skedarë ma të vegjël dhe rrisin cilësinë kur synon një bitrate të caktuar. VP9 injoron shpejtësi mbi 'faster'.",
+ "transcoding_realtime": "Transkodimi në kohë reale [EKSPERIMENTAL]",
+ "transcoding_realtime_description": "Lejon transkodimin të kryhet në kohë reale ndërsa videoja transmetohet. Aktivizon ndërrimin e cilësisë, por mund të shkaktojë vonesë ma të lartë luajtjeje dhe ngecje varësisht nga kapacitetet e serverit.",
+ "transcoding_realtime_enabled": "Aktivizo transkodimin në kohë reale",
+ "transcoding_realtime_enabled_description": "Nëse çaktivizohet, serveri do të refuzojë me fillu sesione të reja transkodimi në kohë reale.",
+ "transcoding_realtime_resolutions": "Rezolucionet",
+ "transcoding_realtime_resolutions_description": "Rezolucionet e ofruara për transkodimin në kohë reale. Një variant ofrohet vetëm kur rezolucioni i tij nuk është më i madh se burimi. Rezolucionet më të larta mund të shkaktojnë probleme në riprodhim nëse serveri nuk arrin t'i transkodojë mjaftueshëm shpejt.",
+ "transcoding_realtime_video_codecs": "Kodekë videoje",
+ "transcoding_realtime_video_codecs_description": "Kodekët e videos të ofruar për transkodimin në kohë reale. Klientët do të zgjedhin opsionin më të mirë që mbështesin gjatë riprodhimit. AV1 është më efikas se HEVC, i cili është më efikas se H.264. Kur përdorni përshpejtimin harduerik, zgjidhni vetëm kodekët që përshpejtuesi mund të kodojë. Kur përdorni transkodimin softuerik, vini re se H.264 është më i shpejtë se AV1, i cili është më i shpejtë se HEVC.",
+ "transcoding_reference_frames": "Kornizat referencë",
+ "transcoding_reference_frames_description": "Numri i kornizave për t'u referuar kur kompresohet një kornizë e dhënë. Vlerat ma të larta përmirësojnë efikasitetin e kompresimit, por ngadalësojnë kodimin. 0 e vendos këtë vlerë automatikisht.",
+ "transcoding_required_description": "Vetëm videot jo në format të pranuar",
+ "transcoding_settings": "Cilësimet e transkodimit të videos",
+ "transcoding_settings_description": "Menaxho cilat video të transkodihen dhe si t'i procesosh ato",
+ "transcoding_target_resolution": "Rezolucioni i synuar",
+ "transcoding_target_resolution_description": "Rezolucionet ma të larta mund të ruajnë ma shumë detaje por marrin ma shumë kohë për t'u koduar, kanë madhësi skedarësh ma të mëdha dhe mund të reduktojnë reagimin e aplikacionit.",
+ "transcoding_temporal_aq": "Temporal AQ",
+ "transcoding_temporal_aq_description": "Aplikohet vetëm për NVENC. Kuantizimi adaptiv temporal rrit cilësinë e skenave me shumë detaje dhe lëvizje të ulët. Mund të mos jetë i përputhshëm me pajisje të vjetra.",
+ "transcoding_threads": "Threads",
+ "transcoding_threads_description": "Vlerat ma të larta çojnë në kodim ma të shpejtë, por lënë ma pak hapësirë për serverin me procesuar detyra të tjera ndërsa asht aktiv. Kjo vlerë nuk duhet të jetë ma e madhe se numri i bërthamave CPU. Maksimizon përdorimin nëse vendoset në 0.",
+ "transcoding_tone_mapping": "Tone-mapping",
+ "transcoding_tone_mapping_description": "Përpiqet të ruajë pamjen e videove HDR kur konvertohen në SDR. Çdo algoritëm bën kompromise të ndryshme për ngjyrën, detajet dhe ndriçimin. Hable ruan detajet, Mobius ruan ngjyrën dhe Reinhard ruan ndriçimin.",
+ "transcoding_transcode_policy": "Politika e transkodimit",
+ "transcoding_transcode_policy_description": "Politika për kur duhet të transkodihet një video. Videot HDR dhe videot me format pikselësh tjetër se YUV 4:2:0 do të transkodihen gjithmonë (përveç nëse transkodimi asht çaktivizuar).",
+ "transcoding_two_pass_encoding": "Kodim me dy kalime",
+ "transcoding_two_pass_encoding_setting_description": "Transkodo në dy kalime për me prodhuar video ma mirë të koduara. Kur bitrate maksimal asht aktivizuar (i nevojshëm për të punuar me H.264 dhe HEVC), kjo mënyrë përdor një gamë bitrate bazuar në bitrate maksimal dhe injoron CRF. Për VP9, CRF mund të përdoret nëse bitrate maksimal asht çaktivizuar.",
+ "transcoding_video_codec": "Kodeku i videos",
+ "transcoding_video_codec_description": "VP9 ka efikasitet të lartë dhe përputhshmëri web, por merr ma shumë kohë për t'u transkoduar. HEVC funksionon ngjashëm, por ka përputhshmëri ma të ulët web. H.264 asht i përputhshëm gjerësisht dhe i shpejtë për t'u transkoduar, por prodhon skedarë shumë ma të mëdhenj. AV1 asht kodeku ma efikas por mungon mbështetja në pajisje të vjetra.",
+ "trash_enabled_description": "Aktivizo veçoritë e koshit",
+ "trash_number_of_days": "Numri i ditëve",
+ "trash_number_of_days_description": "Numri i ditëve për të mbajtur asetet në kosh para fshirjes përgjithmonë",
+ "trash_settings": "Cilësimet e koshit",
+ "trash_settings_description": "Menaxho cilësimet e koshit",
+ "unlink_all_oauth_accounts": "Shkyç të gjitha llogaritë OAuth",
+ "unlink_all_oauth_accounts_description": "Mos harro me shkyçë të gjitha llogaritë OAuth para migrimit te një ofrues i ri.",
+ "unlink_all_oauth_accounts_prompt": "A je i sigurt që dëshiron të shkyçësh të gjitha llogaritë OAuth? Kjo do të rivendosë OAuth ID-në për çdo përdorues dhe nuk mund të zhbëhet.",
+ "user_cleanup_job": "Pastrimi i përdoruesve",
+ "user_delete_delay": "Llogaria dhe asetet e {user} do të planifikohen për fshirje të përhershme pas {delay, plural, one {# ditë} other {# ditësh}}.",
+ "user_delete_delay_settings": "Vonesa e fshirjes",
+ "user_delete_delay_settings_description": "Numri i ditëve pas heqjes për me fshirë përgjithmonë llogarinë dhe asetet e një përdoruesi. Puna e fshirjes së përdoruesit ekzekutohet në mesnatë për të kontrolluar përdoruesit gati për fshirje. Ndryshimet e këtij cilësimi do të vlerësohen në ekzekutimin tjetër.",
+ "user_delete_immediately": "Llogaria dhe asetet e {user} do të radhiten për fshirje të përhershme menjëherë.",
+ "user_delete_immediately_checkbox": "Radho përdoruesin dhe asetet për fshirje të menjëhershme",
+ "user_details": "Detajet e përdoruesit",
+ "user_management": "Menaxhimi i përdoruesve",
+ "user_password_has_been_reset": "Fjalëkalimi i përdoruesit asht rivendosur:",
+ "user_password_reset_description": "Ju lutem jepja përdoruesit fjalëkalimin e përkohshëm dhe informoje se do të duhet ta ndryshojë fjalëkalimin në hyrjen e tij të ardhshme.",
+ "user_restore_description": "Llogaria e {user} do të restaurohet.",
+ "user_restore_scheduled_removal": "Restauro përdoruesin - heqja e planifikuar më {date, date, long}",
+ "user_settings": "Cilësimet e përdoruesit",
+ "user_settings_description": "Menaxho cilësimet e përdoruesit",
+ "user_successfully_removed": "Përdoruesi {email} u hoq me sukses.",
+ "users_page_description": "Faqja e administratorit për përdoruesit",
+ "version_check_channel": "Kanali i lëshimit",
+ "version_check_channel_description": "Zgjidh kanalin e lëshimit për të cilin dëshiron të marrësh njoftime versioni",
+ "version_check_enabled_description": "Aktivizo kontrollin e versionit",
+ "version_check_implications": "Veçoria e kontrollit të versionit mbështetet në komunikim periodik me {server}",
+ "version_check_settings": "Kontrolli i versionit",
+ "version_check_settings_description": "Aktivizo/çaktivizo njoftimin e versionit të ri",
+ "video_conversion_job": "Transkodo videot",
+ "video_conversion_job_description": "Transkodo videot për përputhshmëri ma të gjerë me shfletuesit dhe pajisjet"
},
+ "admin_email": "Email i administratorit",
+ "admin_password": "Fjalëkalimi i administratorit",
+ "administration": "Administrimi",
+ "advanced": "Të avancuara",
+ "advanced_settings_clear_image_cache": "Pastro cache-in e imazheve",
+ "advanced_settings_clear_image_cache_error": "Dështoi pastrimi i cache-it të imazheve",
+ "advanced_settings_clear_image_cache_success": "U pastrua me sukses {size}",
+ "advanced_settings_log_level_title": "Niveli i regjistrit: {level}",
+ "advanced_settings_prefer_remote_subtitle": "Disa pajisje janë shumë të ngadalta për të ngarkuar miniatura nga asetet lokale. Aktivizo këtë cilësim për të ngarkuar imazhe nga distanca.",
+ "advanced_settings_prefer_remote_title": "Prefero imazhe nga distanca",
+ "advanced_settings_proxy_headers_subtitle": "Defino header-at proxy që Immich duhet t'i dërgojë me çdo kërkesë rrjeti",
+ "advanced_settings_proxy_headers_title": "Header-at e personalizuara proxy [EKSPERIMENTAL]",
+ "advanced_settings_readonly_mode_subtitle": "Aktivizon mënyrën vetëm-lexim ku fotot mund të shikohen vetëm, gjëra si zgjedhja e imazheve të shumta, ndarja, transmetimi, fshirja janë të çaktivizuara. Aktivizo/çaktivizo vetëm-lexim nëpërmjet avatarit të përdoruesit nga ekrani kryesor",
+ "advanced_settings_readonly_mode_title": "Mënyra vetëm-lexim",
+ "advanced_settings_sync_remote_deletions_subtitle": "Fshi ose restauro automatikisht një aset në këtë pajisje kur kjo veprim kryhet në web",
+ "advanced_settings_sync_remote_deletions_title": "Sinkronizo fshirjet nga distanca [EKSPERIMENTAL]",
+ "advanced_settings_tile_subtitle": "Cilësimet e avancuara të përdoruesit",
+ "advanced_settings_troubleshooting_subtitle": "Aktivizo veçori shtesë për zgjidhjen e problemeve",
+ "advanced_settings_troubleshooting_title": "Zgjidhja e problemeve",
+ "age_months": "Mosha {months, plural, one {# muaj} other {# muaj}}",
+ "age_year_months": "Mosha 1 vit, {months, plural, one {# muaj} other {# muaj}}",
+ "age_years": "{years, plural, other {Mosha #}}",
+ "album": "Album",
+ "album_added": "Albumi u shtua",
+ "album_added_notification_setting_description": "Merr njoftim me email kur shtohet në një album të ndarë",
+ "album_cover_updated": "Kopertina e albumit u përditësua",
+ "album_delete_confirmation": "A je i sigurt që dëshiron të fshish albumin {album}?",
+ "album_delete_confirmation_description": "Nëse ky album asht i ndarë, përdoruesit e tjerë nuk do të mund ta aksesojnë ma.",
+ "album_deleted": "Albumi u fshi",
+ "album_info_updated": "Informacioni i albumit u përditësua",
+ "album_name": "Emri i albumit",
+ "album_options": "Opsionet e albumit",
+ "album_remove_user": "Hiq përdoruesin?",
+ "album_remove_user_confirmation": "A je i sigurt që dëshiron të heqësh {user}?",
+ "album_search_not_found": "Nuk u gjet asnjë album që përputhet me kërkimin tënd",
+ "album_share_no_users": "Duket se e ke ndarë këtë album me të gjithë përdoruesit ose nuk ke asnjë përdorues me të cilin të ndash.",
+ "album_summary": "Përmbledhja e albumit",
+ "album_updated": "Albumi u përditësua",
+ "album_updated_setting_description": "Merr njoftim me email kur një album i ndarë ka asete të reja",
+ "album_upload_assets": "Ngarko asete nga kompjuteri yt dhe shto në album",
+ "album_viewer_appbar_share_err_delete": "Dështoi fshirja e albumit",
+ "album_viewer_page_share_add_users": "Shto përdorues",
+ "album_with_link_access": "Lejo këdo me lidhjen të shohë fotot dhe njerëzit në këtë album.",
+ "albums": "Albumet",
+ "albums_count": "{count, plural, one {{count, number} Album} other {{count, number} Albume}}",
+ "albums_default_sort_order": "Rendi i parazgjedhur i albumeve",
+ "albums_default_sort_order_description": "Rendi fillestar i aseteve kur krijohen albume të reja.",
+ "albums_feature_description": "Koleksione asetesh që mund të ndahen me përdoruesit e tjerë.",
+ "albums_on_device_count": "Albumet në pajisje ({count})",
+ "all": "Të gjithë",
+ "all_albums": "Të gjitha albumet",
+ "all_people": "Të gjithë njerëzit",
+ "all_photos": "Të gjitha fotot",
+ "all_videos": "Të gjitha videot",
+ "allow_dark_mode": "Lejo mënyrën e errët",
+ "allow_public_user_to_download": "Lejo përdoruesin publik të shkarkojë",
+ "allow_public_user_to_upload": "Lejo përdoruesin publik të ngarkojë",
+ "allowed": "I lejuar",
+ "alt_text_qr_code": "Imazh i kodit QR",
+ "always_keep": "Mbaj gjithmonë",
+ "always_keep_photos_hint": "Lirimi i hapësirës do t'i mbajë të gjitha fotot në këtë pajisje.",
+ "always_keep_videos_hint": "Lirimi i hapësirës do t'i mbajë të gjitha videot në këtë pajisje.",
+ "api_key": "Çelësi API",
+ "api_key_description": "Kjo vlerë do të tregohet vetëm një herë. Sigurohu me e kopjuar para se të mbyllësh dritaren.",
+ "api_key_empty": "Emri i çelësit API nuk duhet të jetë bosh",
+ "api_keys": "Çelësat API",
+ "app_architecture_variant": "Varianta (Arkitektura)",
+ "app_bar_signout_dialog_content": "A je i sigurt që dëshiron të dalësh?",
+ "app_bar_signout_dialog_title": "Dil",
+ "app_download_links": "Lidhje shkarkimi të aplikacionit",
+ "app_settings": "Cilësimet e aplikacionit",
+ "app_stores": "Dyqanet e aplikacioneve",
+ "app_update_available": "Ka një përditësim të aplikacionit",
+ "appears_in": "Shfaqet në",
+ "apply_count": "Zbato ({count, number})",
+ "archive": "Arkiv",
+ "archive_action_prompt": "{count} u shtua në Arkiv",
+ "archive_or_unarchive_photo": "Arkivo ose çarkivo foton",
+ "archive_size": "Madhësia e arkivit",
+ "archive_size_description": "Konfiguro madhësinë e arkivit për shkarkimet (në GiB)",
+ "archived": "Arkivuar",
+ "archived_count": "{count, plural, other {Arkivuar #}}",
+ "are_these_the_same_person": "A janë këta i njëjti person?",
+ "are_you_sure_to_do_this": "Je i sigurt që dëshiron ta bësh këtë?",
+ "asset_added_to_album": "U shtua në album",
+ "asset_adding_to_album": "Po shtohet në album…",
+ "asset_created": "Aseti u krijua",
+ "asset_day_count": "{date}: {count, plural, one {# aset} other {# asete}}",
+ "asset_description_updated": "Përshkrimi i asetit u përditësua",
+ "asset_hashing": "Po llogaritet hash-i…",
+ "asset_list_group_by_sub_title": "Grupo sipas",
+ "asset_list_layout_settings_group_by": "Grupo asetet sipas",
+ "asset_list_layout_settings_group_by_month_day": "Muaj + ditë",
+ "asset_list_layout_sub_title": "Struktura",
+ "asset_list_settings_subtitle": "Cilësimet e strukturës së rrjetës së fotove",
+ "asset_list_settings_title": "Rrjetë fotosh",
+ "asset_not_found_on_device_android": "Aseti nuk u gjet në pajisje",
+ "asset_not_found_on_device_ios": "Aseti nuk u gjet në pajisje. Nëse po përdor iCloud, aseti mund të jetë i paarritshëm për shkak të një skedari të dëmtuar të ruajtur në iCloud",
+ "asset_not_found_on_icloud": "Aseti nuk u gjet në iCloud. Aseti mund të jetë i paarritshëm për shkak të një skedari të dëmtuar të ruajtur në iCloud",
+ "asset_offline": "Aseti është jashtë linje",
+ "asset_offline_description": "Ky aset i jashtëm nuk gjendet më në disk. Të lutem kontakto administratorin tënd të Immich për ndihmë.",
+ "asset_skipped": "U anashkalua",
+ "asset_skipped_in_trash": "Në kosh",
+ "asset_troubleshoot": "Zgjidhja e problemeve të asetit",
+ "asset_uploaded": "Ngarkuar",
+ "asset_uploading": "Po ngarkohet…",
+ "asset_viewer_settings_subtitle": "Menaxho cilësimet e shikuesit të galerisë tënde",
+ "asset_viewer_settings_title": "Shikuesi i asetit",
+ "assets": "Asete",
+ "assets_added_to_album_count": "U shtuan {count, plural, one {# aset} other {# asete}} në album",
+ "assets_added_to_album_partial_count": "U shtuan {successCount} nga {totalCount} {totalCount, plural, one {aset} other {asete}} në album",
+ "assets_added_to_albums_count": "U shtuan {assetTotal, plural, one {# aset} other {# asete}} në {albumTotal, plural, one {# album} other {# albume}}",
+ "assets_cannot_be_added_to_album_count": "{count, plural, one {Aseti} other {Asetet}} nuk mund të shtohen në album",
+ "assets_cannot_be_added_to_albums": "{count, plural, one {Aseti} other {Asetet}} nuk mund të shtohen në asnjë nga albumet",
+ "assets_count": "{count, plural, one {# aset} other {# asete}}",
+ "assets_moved_to_trash_count": "U zhvendosën {count, plural, one {# aset} other {# asete}} në kosh",
+ "assets_permanently_deleted_count": "U fshinë përgjithmonë {count, plural, one {# aset} other {# asete}}",
+ "assets_removed_count": "U hoqën {count, plural, one {# aset} other {# asete}}",
+ "assets_restore_confirmation": "Je i sigurt që dëshiron t'i rikthesh të gjitha asetet e koshit? Nuk mund ta zhbësh këtë veprim! Vini re se asetet jashtë linje nuk mund të rikthehen në këtë mënyrë.",
+ "assets_restored_count": "U rikthyen {count, plural, one {# aset} other {# asete}}",
+ "assets_trashed": "{count} aset(e) u hodhën në kosh",
+ "assets_trashed_count": "U hodhën në kosh {count, plural, one {# aset} other {# asete}}",
+ "assets_were_part_of_album_count": "{count, plural, one {Aseti ishte tashmë} other {Asetet ishin tashmë}} pjesë e albumit",
+ "assets_were_part_of_albums_count": "{count, plural, one {Aseti ishte tashmë} other {Asetet ishin tashmë}} pjesë e albumeve",
+ "authorized_devices": "Pajisje të autorizuara",
+ "automatic_endpoint_switching_subtitle": "Lidhu në rrjet lokal përmes Wi-Fi-t të caktuar kur është i disponueshëm dhe përdor lidhje alternative gjetkë",
+ "automatic_endpoint_switching_title": "Ndërrim automatik i URL-së",
+ "autoplay_slideshow": "Riprodho automatikisht shfaqjen e diapozitivave",
+ "back": "Mbrapa",
+ "back_close_deselect": "Kthehu, mbyll ose çzgjidh",
+ "background_location_permission": "Leje vendndodhjeje në sfond",
+ "background_location_permission_content": "Për të ndërruar rrjete kur ekzekutohet në sfond, Immich duhet *gjithmonë* të ketë qasje të saktë në vendndodhje që aplikacioni të mund të lexojë emrin e rrjetit Wi-Fi",
+ "background_options": "Opsionet e sfondit",
+ "backup": "Kopje rezervë",
+ "backup_album_selection_page_albums_tap": "Trokit për të përfshirë, trokit dy herë për të përjashtuar",
+ "backup_album_selection_page_assets_scatter": "Asetet mund të shpërndahen nëpër shumë albume. Kështu, albumet mund të përfshihen ose përjashtohen gjatë procesit të kopjimit rezervë.",
+ "backup_album_selection_page_select_albums": "Zgjidh albume",
+ "backup_album_selection_page_selection_info": "Informacioni i përzgjedhjes",
+ "backup_albums_sync": "Sinkronizimi i albumeve të kopjimit rezervë",
+ "backup_background_service_complete_notification": "Kopja rezervë e asetit u përfundua",
+ "backup_background_service_default_notification": "Po kontrollohet për asete të reja…",
+ "backup_background_service_in_progress_notification": "Po bëhet kopja rezervë e aseteve të tua…",
+ "backup_controller_page_albums": "Albume të kopjimit rezervë",
+ "backup_controller_page_background_battery_info_link": "Më trego si",
+ "backup_controller_page_background_battery_info_message": "Për përvojën më të mirë të kopjimit rezervë në sfond, të lutem çaktivizo çdo optimizim baterie që kufizon aktivitetin në sfond për Immich.\n\nMeqenëse kjo varet nga pajisja, të lutem kërko informacionin e nevojshëm për prodhuesin e pajisjes tënde.",
+ "backup_controller_page_background_battery_info_ok": "Në rregull",
+ "backup_controller_page_background_battery_info_title": "Optimizime baterie",
+ "backup_controller_page_background_delay": "Vono kopjimin rezervë të aseteve të reja: {duration}",
+ "backup_controller_page_backup": "Kopje rezervë",
+ "backup_controller_page_backup_selected": "Përzgjedhur: ",
+ "backup_controller_page_backup_sub": "Fotot dhe videot me kopje rezervë",
+ "backup_controller_page_excluded": "Përjashtuar: ",
+ "backup_controller_page_none_selected": "Asnjë i përzgjedhur",
+ "backup_controller_page_remainder": "Pjesa e mbetur",
+ "backup_controller_page_remainder_sub": "Fotot dhe videot e mbetura për t'u kopjuar nga përzgjedhja",
+ "backup_controller_page_server_storage": "Ruajtja e serverit",
+ "backup_controller_page_storage_format": "{used} nga {total} të përdorura",
+ "backup_controller_page_to_backup": "Albumet që do të kopjohen rezervë",
+ "backup_controller_page_total_sub": "Të gjitha fotot dhe videot unike nga albumet e përzgjedhura",
+ "backup_error_sync_failed": "Sinkronizimi dështoi. Nuk mund të përpunohet kopja rezervë.",
+ "backup_info_card_assets": "asete",
+ "backup_options": "Opsionet e kopjimit rezervë",
+ "backup_settings_subtitle": "Menaxho cilësimet e ngarkimit",
+ "backward": "Mbrapa",
+ "battery_optimization_backup_reliability": "Çaktivizimi i optimizimeve të baterisë mund të përmirësojë besueshmërinë e kopjimit rezervë në sfond",
+ "biometric_auth_enabled": "Vërtetimi biometrik u aktivizua",
+ "biometric_locked_out": "Je bllokuar nga vërtetimi biometrik",
+ "biometric_no_options": "Nuk ka opsione biometrike të disponueshme",
+ "biometric_not_available": "Vërtetimi biometrik nuk është i disponueshëm në këtë pajisje",
+ "birthdate_set_description": "Data e lindjes përdoret për të llogaritur moshën e këtij personi në kohën e një fotoje.",
+ "blurred_background": "Sfond i turbullt",
+ "browse_templates": "Shfleto shabllonet",
+ "bugs_and_feature_requests": "Defekte & kërkesa për veçori",
+ "build": "Ndërto",
+ "build_image": "Ndërto imazhin",
+ "bulk_delete_duplicates_confirmation": "Je i sigurt që dëshiron të fshish në grup {count, plural, one {# aset duplikat} other {# asete duplikate}}? Kjo do të mbajë asetin më të madh të çdo grupi dhe do të fshijë përgjithmonë të gjithë duplikatët e tjerë. Nuk mund ta zhbësh këtë veprim!",
+ "bulk_keep_duplicates_confirmation": "Je i sigurt që dëshiron të mbash {count, plural, one {# aset duplikat} other {# asete duplikate}}? Kjo do të zgjidhë të gjitha grupet e duplikatëve pa fshirë asgjë.",
+ "bulk_trash_duplicates_confirmation": "Je i sigurt që dëshiron të hedhësh në kosh në grup {count, plural, one {# aset duplikat} other {# asete duplikate}}? Kjo do të mbajë asetin më të madh të çdo grupi dhe do të hedhë në kosh të gjithë duplikatët e tjerë.",
+ "buy": "Bli Immich",
+ "camera": "Kamera",
+ "camera_brand": "Marka e kamerës",
+ "camera_model": "Modeli i kamerës",
+ "cancel": "Anulo",
+ "cancel_search": "Anulo kërkimin",
+ "canceled": "U anulua",
+ "canceling": "Po anulohet",
+ "cannot_merge_people": "Nuk mund të bashkohen personat",
+ "cannot_undo_this_action": "Nuk mund ta zhbësh këtë veprim!",
+ "cannot_update_the_description": "Nuk mund të përditësohet përshkrimi",
+ "cast": "Transmeto",
+ "cast_description": "Konfiguro destinacionet e disponueshme të transmetimit",
+ "change": "Ndrysho",
+ "change_date": "Ndrysho datën",
+ "change_description": "Ndrysho përshkrimin",
+ "change_display_order": "Ndrysho renditjen e shfaqjes",
+ "change_location": "Ndrysho vendndodhjen",
+ "change_name": "Ndrysho emrin",
+ "change_name_successfully": "Emri u ndryshua me sukses",
+ "change_password": "Ndrysho fjalëkalimin",
+ "change_password_description": "Kjo është ose hera e parë që hyn në sistem ose është bërë një kërkesë për të ndryshuar fjalëkalimin tënd. Të lutem vendos fjalëkalimin e ri më poshtë.",
+ "change_password_form_confirm_password": "Konfirmo fjalëkalimin",
+ "change_password_form_description": "Përshëndetje {name},\n\nKjo është ose hera e parë që hyn në sistem ose është bërë një kërkesë për të ndryshuar fjalëkalimin tënd. Të lutem vendos fjalëkalimin e ri më poshtë.",
+ "change_password_form_log_out": "Dil nga të gjitha pajisjet e tjera",
+ "change_password_form_log_out_description": "Rekomandohet të dalësh nga të gjitha pajisjet e tjera",
+ "change_password_form_new_password": "Fjalëkalim i ri",
+ "change_password_form_password_mismatch": "Fjalëkalimet nuk përputhen",
+ "change_password_form_reenter_new_password": "Rivendos fjalëkalimin e ri",
+ "change_pin_code": "Ndrysho kodin PIN",
+ "change_your_password": "Ndrysho fjalëkalimin tënd",
+ "changed_visibility_successfully": "Dukshmëria u ndryshua me sukses",
+ "charging": "Po karikohet",
+ "charging_requirement_mobile_backup": "Kopjimi rezervë në sfond kërkon që pajisja të jetë duke u karikuar",
+ "check_logs": "Kontrollo regjistrat",
+ "checksum": "Checksum",
+ "choose": "Zgjidh",
+ "choose_matching_people_to_merge": "Zgjidh personat përputhës për t'i bashkuar",
+ "city": "Qyteti",
+ "cleanup_confirm_description": "Immich gjeti {count} asete (të krijuara para {date}) të ruajtura në mënyrë të sigurt me kopje rezervë në server. Të hiqen kopjet lokale nga kjo pajisje?",
+ "cleanup_confirm_prompt_title": "Të hiqet nga kjo pajisje?",
+ "cleanup_deleted_assets": "U zhvendosën {count} asete në koshin e pajisjes",
+ "cleanup_deleting": "Po zhvendoset në kosh...",
+ "cleanup_found_assets": "U gjetën {count} asete me kopje rezervë",
+ "cleanup_found_assets_with_size": "U gjetën {count} asete me kopje rezervë ({size})",
+ "cleanup_icloud_shared_albums_excluded": "Albumet e ndara të iCloud përjashtohen nga skanimi",
+ "cleanup_no_assets_found": "Nuk u gjetën asete që përputhen me kriteret e mësipërme. Lirimi i hapësirës mund të heqë vetëm asetet që janë ruajtur me kopje rezervë në server",
+ "cleanup_preview_title": "Asete për t'u hequr ({count})",
+ "cleanup_step3_description": "Skano për asete me kopje rezervë që përputhen me cilësimet e tua të datës dhe mbajtjes.",
+ "cleanup_step4_summary": "{count} asete (të krijuara para {date}) për t'u hequr nga pajisja jote lokale. Fotot do të mbeten të arritshme nga aplikacioni Immich.",
+ "cleanup_trash_hint": "Për të rikuperuar plotësisht hapësirën e ruajtjes, hap aplikacionin e galerisë së sistemit dhe zbraz koshin",
+ "clear": "Pastro",
+ "clear_all": "Pastro të gjitha",
+ "clear_all_recent_searches": "Pastro të gjitha kërkimet e fundit",
+ "clear_failed_count": "Pastro të dështuarat ({count})",
+ "clear_file_cache": "Pastro memorien e skedarëve",
+ "clear_message": "Pastro mesazhin",
+ "clear_value": "Pastro vlerën",
+ "client_cert_import": "Importo",
+ "client_cert_import_success_msg": "Certifikata e klientit u importua",
+ "client_cert_invalid_msg": "Skedar certifikate i pavlefshëm ose fjalëkalim i gabuar",
+ "client_cert_password_message": "Vendos fjalëkalimin për këtë certifikatë",
+ "client_cert_password_title": "Fjalëkalimi i certifikatës",
+ "client_cert_remove_msg": "Certifikata e klientit u hoq",
+ "client_cert_subtitle": "Mbështet vetëm formatin PKCS12 (.p12, .pfx). Importimi/heqja e certifikatës është e disponueshme vetëm para hyrjes",
+ "client_cert_title": "Certifikatë klienti SSL [EKSPERIMENTALE]",
+ "close": "Mbyll",
+ "collapse": "Palos",
+ "collapse_all": "Palos të gjitha",
+ "color": "Ngjyra",
+ "command": "Komandë",
+ "command_palette_prompt": "Gjej shpejt faqe, veprime ose komanda",
+ "command_palette_to_close": "për të mbyllur",
+ "command_palette_to_navigate": "për të hyrë",
+ "command_palette_to_select": "për të zgjedhur",
+ "command_palette_to_show_all": "për të shfaqur të gjitha",
+ "comment_deleted": "Komenti u fshi",
+ "comment_options": "Opsionet e komentit",
+ "comments_and_likes": "Komente & pëlqime",
+ "comments_are_disabled": "Komentet janë të çaktivizuara",
+ "common_create_new_album": "Krijo album të ri",
+ "completed": "U përfundua",
+ "configuration": "Konfigurimi",
+ "confirm": "Konfirmo",
+ "confirm_admin_password": "Konfirmo fjalëkalimin e administratorit",
+ "confirm_delete_face": "Je i sigurt që dëshiron të fshish fytyrën {name} nga aseti?",
+ "confirm_delete_shared_link": "Je i sigurt që dëshiron të fshish këtë lidhje të ndarë?",
+ "confirm_keep_this_delete_others": "Të gjitha asetet e tjera në pirg do të fshihen përveç këtij aseti. Je i sigurt që dëshiron të vazhdosh?",
+ "confirm_new_pin_code": "Konfirmo kodin e ri PIN",
+ "confirm_password": "Konfirmo fjalëkalimin",
+ "confirm_tag_face": "Dëshiron ta etiketosh këtë fytyrë si {name}?",
+ "confirm_tag_face_unnamed": "Dëshiron ta etiketosh këtë fytyrë?",
+ "connected_device": "Pajisje e lidhur",
+ "connected_to": "Lidhur me",
+ "contain": "Përmbaj",
+ "context": "Konteksti",
+ "continue": "Vazhdo",
+ "control_bottom_app_bar_add_tags": "Shto etiketa",
+ "control_bottom_app_bar_delete_from_local": "Fshi nga pajisja",
+ "control_bottom_app_bar_edit_location": "Modifiko vendndodhjen",
+ "control_bottom_app_bar_edit_time": "Modifiko datën & orën",
+ "control_bottom_app_bar_trash_from_immich": "Zhvendos në kosh",
+ "copied_image_to_clipboard": "Imazhi u kopjua në kujtesën e fragmenteve.",
+ "copied_to_clipboard": "U kopjua në kujtesën e fragmenteve!",
+ "copy_error": "Gabim kopjimi",
+ "copy_image": "Kopjo imazhin",
+ "copy_json": "Kopjo JSON-in",
+ "copy_link": "Kopjo lidhjen",
+ "copy_link_to_clipboard": "Kopjo lidhjen në kujtesën e fragmenteve",
+ "copy_password": "Kopjo fjalëkalimin",
+ "copy_to_clipboard": "Kopjo në kujtesën e fragmenteve",
+ "country": "Shteti",
+ "cover": "Kopertina",
+ "covers": "Kopertinat",
+ "create": "Krijo",
+ "create_album": "Krijo album",
+ "create_album_page_untitled": "Pa titull",
+ "create_api_key": "Krijo çelës API",
+ "create_first_workflow": "Krijo rrjedhën e parë të punës",
+ "create_library": "Krijo bibliotekë",
+ "create_link": "Krijo lidhje",
+ "create_link_to_share": "Krijo lidhje për të ndarë",
+ "create_link_to_share_description": "Lejo këdo që ka lidhjen të shohë foton(t) e përzgjedhura",
+ "create_new": "KRIJO TË RE",
+ "create_new_person": "Krijo person të ri",
+ "create_new_person_hint": "Cakto asetet e përzgjedhura te një person i ri",
+ "create_new_user": "Krijo përdorues të ri",
+ "create_person": "Krijo person",
+ "create_person_subtitle": "Shto një emër te fytyra e përzgjedhur për të krijuar dhe etiketuar personin e ri",
+ "create_shared_album_page_share_add_assets": "SHTO ASETE",
+ "create_shared_album_page_share_select_photos": "Zgjidh foto",
+ "create_shared_link": "Krijo lidhje të ndarë",
+ "create_tag": "Krijo etiketë",
+ "create_tag_description": "Krijo një etiketë të re. Për etiketa të ndërthurura, të lutem vendos shtegun e plotë të etiketës duke përfshirë vijat e pjerrëta.",
+ "create_user": "Krijo përdorues",
+ "create_workflow": "Krijo rrjedhë pune",
+ "created": "Krijuar",
+ "created_at": "Krijuar",
+ "creating_linked_albums": "Po krijohen albume të lidhura...",
+ "crop": "Prit",
+ "crop_aspect_ratio_free": "I lirë",
+ "crop_aspect_ratio_original": "Origjinal",
+ "crop_aspect_ratio_square": "Katror",
+ "current_device": "Pajisja aktuale",
+ "current_pin_code": "Kodi aktual PIN",
+ "current_server_address": "Adresa aktuale e serverit",
+ "custom_date": "Datë e personalizuar",
+ "custom_locale": "Lokale e personalizuar",
+ "custom_locale_description": "Formato datat, orët dhe numrat bazuar në gjuhën dhe rajonin e përzgjedhur",
+ "cutoff_date_description": "Mbaj fotot nga…",
+ "cutoff_day": "{count, plural, one {ditë} other {ditë}}",
+ "cutoff_year": "{count, plural, one {vit} other {vjet}}",
+ "dark": "E errët",
+ "dark_theme": "Kalo në temën e errët",
+ "date": "Data",
+ "date_after": "Data pas",
+ "date_and_time": "Data dhe ora",
+ "date_before": "Data para",
+ "date_of_birth": "Data e lindjes",
+ "date_of_birth_saved": "Data e lindjes u ruajt me sukses",
+ "date_range": "Intervali i datave",
+ "date_time_original": "Data/Ora origjinale",
+ "day": "Ditë",
+ "days": "Ditë",
+ "deduplicate_all": "Deduplikoji të gjitha",
+ "default_quality_subtitle": "Cilësia e përdorur kur trokitet te ndarja. Shtyp gjatë butonin e ndarjes për të zgjedhur çdo herë.",
+ "default_share_quality": "Cilësia e paracaktuar e ndarjes",
+ "delete": "Fshi",
+ "delete_action_confirmation_message": "Je i sigurt që dëshiron të fshish këtë aset? Ky veprim do ta zhvendosë asetin në koshin e serverit dhe do të të pyesë nëse dëshiron ta fshish edhe në mënyrë lokale",
+ "delete_action_prompt": "{count} u fshinë",
+ "delete_album": "Fshi albumin",
+ "delete_api_key_prompt": "Je i sigurt që dëshiron të fshish këtë çelës API?",
+ "delete_dialog_alert": "Këto artikuj do të fshihen përgjithmonë nga Immich dhe nga pajisja jote",
+ "delete_dialog_alert_local": "Këto artikuj do të hiqen përgjithmonë nga pajisja jote, por do të mbeten të disponueshëm në serverin Immich",
+ "delete_dialog_alert_local_non_backed_up": "Disa nga artikujt nuk janë ruajtur me kopje rezervë në Immich dhe do të hiqen përgjithmonë nga pajisja jote",
+ "delete_dialog_title": "Fshi përgjithmonë",
+ "delete_duplicates_confirmation": "Je i sigurt që dëshiron t'i fshish përgjithmonë këta duplikatë?",
+ "delete_face": "Fshi fytyrën",
+ "delete_key": "Fshi çelësin",
+ "delete_library": "Fshi bibliotekën",
+ "delete_link": "Fshi lidhjen",
+ "delete_local_action_prompt": "{count} u fshinë në mënyrë lokale",
+ "delete_local_dialog_ok_backed_up_only": "Fshi vetëm ato me kopje rezervë",
+ "delete_local_dialog_ok_force": "Fshi gjithsesi",
+ "delete_others": "Fshi të tjerat",
+ "delete_permanently": "Fshi përgjithmonë",
+ "delete_permanently_action_prompt": "{count} u fshinë përgjithmonë",
+ "delete_shared_link": "Fshi lidhjen e ndarë",
+ "delete_shared_link_dialog_title": "Fshi lidhjen e ndarë",
+ "delete_tag": "Fshi etiketën",
+ "delete_tag_confirmation_prompt": "Je i sigurt që dëshiron të fshish etiketën {tagName}?",
+ "delete_user": "Fshi përdoruesin",
+ "deleted_shared_link": "Lidhja e ndarë u fshi",
+ "description": "Përshkrimi",
+ "deselect_all": "Çzgjidh të gjitha",
+ "details": "Detajet",
+ "direction": "Drejtimi",
+ "disable": "Çaktivizo",
+ "disabled": "I çaktivizuar",
+ "discord": "Discord",
+ "discover": "Zbulo",
+ "discovered_devices": "Pajisjet e zbuluara",
+ "dismiss_all_errors": "Hiqi të gjitha gabimet",
+ "display_options": "Opsionet e shfaqjes",
+ "display_order": "Renditja e shfaqjes",
+ "display_original_photos": "Shfaq fotot origjinale",
+ "display_original_photos_setting_description": "Preferohet të shfaqet fotoja origjinale gjatë shikimit të një aseti në vend të miniaturave kur aseti origjinal është i pajtueshëm me ueb-in. Kjo mund të rezultojë në shpejtësi më të ngadalta të shfaqjes së fotove.",
+ "do_not_show_again": "Mos e shfaq më këtë mesazh",
+ "documentation": "Dokumentimi",
+ "done": "U krye",
+ "download": "Shkarko",
+ "download_canceled": "Shkarkimi u anulua",
+ "download_complete": "Shkarkimi u përfundua",
+ "download_enqueue": "Shkarkimi u vendos në radhë",
+ "download_failed": "Shkarkimi dështoi",
+ "download_finished": "Shkarkimi përfundoi",
+ "download_include_embedded_motion_videos": "Video të inkorporuara",
+ "download_include_embedded_motion_videos_description": "Përfshi videot e inkorporuara në fotot me lëvizje si një skedar të veçantë",
+ "download_notfound": "Shkarkimi nuk u gjet",
"download_original": "Shkarko origjinalin",
"download_paused": "Shkarkimi u pezullua",
"download_settings": "Shkarko",
+ "download_settings_description": "Menaxho cilësimet që lidhen me shkarkimin e aseteve",
"download_waiting_to_retry": "Duke pritur për ta provuar përsëri",
"downloading": "Duke u shkarkuar",
"downloading_asset_filename": "Duke shkarkuar asetin {filename}",
"downloading_from_icloud": "Duke shkarkuar nga iCloud",
"downloading_media": "Duke shkarkuar median",
+ "drag_to_reorder": "Tërhiq për të rirenditur",
+ "drop_files_to_upload": "Lësho skedarët kudo për t'i ngarkuar",
+ "duplicate": "Duplikat",
+ "duplicate_workflow": "Dupliko rrjedhën e punës",
+ "duplicates": "Duplikatë",
+ "duplicates_description": "Zgjidh çdo grup duke treguar cilët, nëse ka, janë duplikatë.",
+ "duration": "Kohëzgjatja",
+ "edit": "Modifiko",
+ "edit_album": "Modifiko albumin",
+ "edit_avatar": "Modifiko avatarin",
+ "edit_birthday": "Modifiko ditëlindjen",
+ "edit_date": "Modifiko datën",
+ "edit_date_and_time": "Modifiko datën dhe orën",
+ "edit_date_and_time_action_prompt": "{count} data dhe ora u modifikuan",
+ "edit_date_and_time_by_offset": "Ndrysho datën sipas kompensimit",
+ "edit_description": "Modifiko përshkrimin",
+ "edit_exclusion_pattern": "Modifiko modelin e përjashtimit",
+ "edit_faces": "Modifiko fytyrat",
+ "edit_key": "Modifiko çelësin",
+ "edit_link": "Modifiko lidhjen",
+ "edit_location": "Modifiko vendndodhjen",
+ "edit_location_action_prompt": "{count} vendndodhje u modifikua",
+ "edit_location_dialog_title": "Vendndodhja",
+ "edit_name": "Modifiko emrin",
+ "edit_people": "Modifiko personat",
+ "edit_tag": "Modifiko etiketën",
+ "edit_title": "Modifiko titullin",
+ "edit_user": "Modifiko përdoruesin",
+ "edit_workflow": "Modifiko rrjedhën e punës",
+ "editor": "Modifikuesi",
+ "editor_discard_edits_confirm": "Hidhi modifikimet",
+ "editor_discard_edits_prompt": "Ke modifikime të paruajtura. Je i sigurt që dëshiron t'i hedhësh?",
+ "editor_discard_edits_title": "Të hidhen modifikimet?",
+ "editor_edits_applied_error": "Zbatimi i modifikimeve dështoi",
+ "editor_edits_applied_success": "Modifikimet u zbatuan me sukses",
+ "editor_flip_horizontal": "Kthe horizontalisht",
+ "editor_flip_vertical": "Kthe vertikalisht",
+ "editor_handle_corner": "Doreza e cepit {corner, select, top_left {sipër-majtas} top_right {sipër-djathtas} bottom_left {poshtë-majtas} bottom_right {poshtë-djathtas} other {A}}",
+ "editor_handle_edge": "Doreza e skajit {edge, select, top {sipër} bottom {poshtë} left {majtas} right {djathtas} other {An}}",
+ "editor_orientation": "Orientimi",
+ "editor_reset_all_changes": "Rivendos ndryshimet",
+ "editor_rotate_left": "Rrotullo 90° në drejtim kundërorar",
+ "editor_rotate_right": "Rrotullo 90° në drejtim orar",
+ "email": "Email",
+ "email_notifications": "Njoftime me email",
+ "empty_folder": "Kjo dosje është bosh",
+ "empty_trash": "Zbraz koshin",
+ "empty_trash_confirmation": "Je i sigurt që dëshiron ta zbrazësh koshin? Kjo do të heqë përgjithmonë të gjitha asetet në kosh nga Immich.\nNuk mund ta zhbësh këtë veprim!",
+ "enable": "Aktivizo",
+ "enable_backup": "Aktivizo kopjimin rezervë",
+ "enable_biometric_auth_description": "Vendos kodin tënd PIN për të aktivizuar vërtetimin biometrik",
+ "enabled": "Aktivizuar",
+ "end_date": "Data e mbarimit",
+ "enqueued": "Në radhë",
+ "enter_wifi_name": "Vendos emrin e Wi-Fi-t",
+ "enter_your_pin_code": "Vendos kodin tënd PIN",
+ "enter_your_pin_code_subtitle": "Vendos kodin tënd PIN për të hyrë te dosja e kyçur",
+ "error": "Gabim",
+ "error_delete_face": "Gabim gjatë fshirjes së fytyrës nga aseti",
+ "error_loading_albums": "Gabim gjatë ngarkimit të albumeve",
+ "error_loading_image": "Gabim gjatë ngarkimit të imazhit",
+ "error_loading_partners": "Gabim gjatë ngarkimit të partnerëve: {error}",
+ "error_retrieving_asset_information": "Gabim gjatë marrjes së informacionit të asetit",
+ "error_saving_image": "Gabim: {error}",
+ "error_tag_face_bounding_box": "Gabim gjatë etiketimit të fytyrës — nuk merren dot koordinatat e kutisë kufizuese",
+ "error_title": "Gabim — Diçka shkoi keq",
+ "error_while_navigating": "Gabim gjatë navigimit te aseti",
+ "errors": {
+ "cannot_navigate_next_asset": "Nuk mund të navigohet te aseti tjetër",
+ "cannot_navigate_previous_asset": "Nuk mund të navigohet te aseti i mëparshëm",
+ "cant_apply_changes": "Nuk mund të zbatohen ndryshimet",
+ "cant_change_activity": "Nuk mund të {enabled, select, true {çaktivizohet} other {aktivizohet}} aktiviteti",
+ "cant_change_asset_favorite": "Nuk mund të ndryshohet i preferuari për asetin",
+ "cant_change_metadata_assets_count": "Nuk mund të ndryshohen meta të dhënat e {count, plural, one {# aseti} other {# aseteve}}",
+ "cant_get_faces": "Nuk mund të merren fytyrat",
+ "cant_get_number_of_comments": "Nuk mund të merret numri i komenteve",
+ "cant_search_people": "Nuk mund të kërkohen persona",
+ "cant_search_places": "Nuk mund të kërkohen vende",
+ "error_adding_assets_to_album": "Gabim gjatë shtimit të aseteve në album",
+ "error_adding_users_to_album": "Gabim gjatë shtimit të përdoruesve në album",
+ "error_deleting_shared_user": "Gabim gjatë fshirjes së përdoruesit të ndarë",
+ "error_downloading": "Gabim gjatë shkarkimit të {filename}",
+ "error_hiding_buy_button": "Gabim gjatë fshehjes së butonit të blerjes",
+ "error_removing_assets_from_album": "Gabim gjatë heqjes së aseteve nga albumi, kontrollo konsolën për më shumë detaje",
+ "error_selecting_all_assets": "Gabim gjatë përzgjedhjes së të gjitha aseteve",
+ "exclusion_pattern_already_exists": "Ky model përjashtimi ekziston tashmë.",
+ "failed_to_create_album": "Krijimi i albumit dështoi",
+ "failed_to_create_shared_link": "Krijimi i lidhjes së ndarë dështoi",
+ "failed_to_edit_shared_link": "Modifikimi i lidhjes së ndarë dështoi",
+ "failed_to_get_people": "Marrja e personave dështoi",
+ "failed_to_keep_this_delete_others": "Ruajtja e këtij aseti dhe fshirja e aseteve të tjera dështoi",
+ "failed_to_load_asset": "Ngarkimi i asetit dështoi",
+ "failed_to_load_assets": "Ngarkimi i aseteve dështoi",
+ "failed_to_load_notifications": "Ngarkimi i njoftimeve dështoi",
+ "failed_to_load_people": "Ngarkimi i personave dështoi",
+ "failed_to_remove_product_key": "Heqja e çelësit të produktit dështoi",
+ "failed_to_reset_pin_code": "Rivendosja e kodit PIN dështoi",
+ "failed_to_stack_assets": "Stivosja e aseteve dështoi",
+ "failed_to_tag_assets": "Etiketimi i aseteve dështoi",
+ "failed_to_unstack_assets": "Çstivosja e aseteve dështoi",
+ "failed_to_update_notification_status": "Përditësimi i statusit të njoftimit dështoi",
+ "incorrect_email_or_password": "Email ose fjalëkalim i pasaktë",
+ "library_folder_already_exists": "Ky shteg importimi ekziston tashmë.",
+ "page_not_found": "Faqja nuk u gjet",
+ "paths_validation_failed": "{paths, plural, one {# shteg dështoi} other {# shtigje dështuan}} në vlerësim",
+ "profile_picture_transparent_pixels": "Fotot e profilit nuk mund të kenë piksele transparente. Të lutem zmadho dhe/ose zhvendos imazhin.",
+ "quota_higher_than_disk_size": "Vendose një kuotë më të lartë se madhësia e diskut",
+ "something_went_wrong": "Diçka shkoi keq",
+ "unable_to_add_album_users": "Nuk arrihet të shtohen përdorues në album",
+ "unable_to_add_assets_to_shared_link": "Nuk arrihet të shtohen asete te lidhja e ndarë",
+ "unable_to_add_comment": "Nuk arrihet të shtohet koment",
+ "unable_to_add_exclusion_pattern": "Nuk arrihet të shtohet model përjashtimi",
+ "unable_to_add_partners": "Nuk arrihet të shtohen partnerë",
+ "unable_to_add_remove_archive": "Nuk arrihet të {archived, select, true {hiqet aseti nga} other {shtohet aseti te}} arkivi",
+ "unable_to_add_remove_favorites": "Nuk arrihet të {favorite, select, true {shtohet aseti te} other {hiqet aseti nga}} të preferuarat",
+ "unable_to_archive_unarchive": "Nuk arrihet të {archived, select, true {arkivohet} other {çarkivohet}}",
+ "unable_to_change_album_user_role": "Nuk arrihet të ndryshohet roli i përdoruesit të albumit",
+ "unable_to_change_date": "Nuk arrihet të ndryshohet data",
+ "unable_to_change_description": "Nuk arrihet të ndryshohet përshkrimi",
+ "unable_to_change_favorite": "Nuk arrihet të ndryshohet i preferuari për asetin",
+ "unable_to_change_location": "Nuk arrihet të ndryshohet vendndodhja",
+ "unable_to_change_password": "Nuk arrihet të ndryshohet fjalëkalimi",
+ "unable_to_change_visibility": "Nuk arrihet të ndryshohet dukshmëria për {count, plural, one {# person} other {# persona}}",
+ "unable_to_complete_oauth_login": "Nuk arrihet të përfundohet hyrja me OAuth",
+ "unable_to_connect": "Nuk arrihet lidhja",
+ "unable_to_copy_to_clipboard": "Nuk mund të kopjohet në kujtesën e fragmenteve, sigurohu që po e akseson faqen përmes https",
+ "unable_to_create": "Nuk arrihet të krijohet rrjedha e punës",
+ "unable_to_create_admin_account": "Nuk arrihet të krijohet llogaria e administratorit",
+ "unable_to_create_api_key": "Nuk arrihet të krijohet një çelës i ri API",
+ "unable_to_create_library": "Nuk arrihet të krijohet biblioteka",
+ "unable_to_create_user": "Nuk arrihet të krijohet përdoruesi",
+ "unable_to_delete_album": "Nuk arrihet të fshihet albumi",
+ "unable_to_delete_asset": "Nuk arrihet të fshihet aseti",
+ "unable_to_delete_assets": "Gabim gjatë fshirjes së aseteve",
+ "unable_to_delete_exclusion_pattern": "Nuk arrihet të fshihet modeli i përjashtimit",
+ "unable_to_delete_shared_link": "Nuk arrihet të fshihet lidhja e ndarë",
+ "unable_to_delete_user": "Nuk arrihet të fshihet përdoruesi",
+ "unable_to_delete_workflow": "Nuk arrihet të fshihet rrjedha e punës",
+ "unable_to_download_files": "Nuk arrihet të shkarkohen skedarët",
+ "unable_to_edit_exclusion_pattern": "Nuk arrihet të modifikohet modeli i përjashtimit",
+ "unable_to_empty_trash": "Nuk arrihet të zbrazet koshi",
+ "unable_to_enter_fullscreen": "Nuk arrihet të hyhet në ekran të plotë",
+ "unable_to_exit_fullscreen": "Nuk arrihet të dilet nga ekrani i plotë",
+ "unable_to_get_comments_number": "Nuk arrihet të merret numri i komenteve",
+ "unable_to_get_shared_link": "Marrja e lidhjes së ndarë dështoi",
+ "unable_to_hide_person": "Nuk arrihet të fshihet personi",
+ "unable_to_link_motion_video": "Nuk arrihet të lidhet videoja me lëvizje",
+ "unable_to_link_oauth_account": "Nuk arrihet të lidhet llogaria OAuth",
+ "unable_to_log_out_all_devices": "Nuk arrihet të dilet nga të gjitha pajisjet",
+ "unable_to_log_out_device": "Nuk arrihet të dilet nga pajisja",
+ "unable_to_login_with_oauth": "Nuk arrihet të hyhet me OAuth",
+ "unable_to_play_video": "Nuk arrihet të luhet videoja",
+ "unable_to_reassign_assets_existing_person": "Nuk arrihet të ricaktohen asetet te {name, select, null {një person ekzistues} other {{name}}}",
+ "unable_to_reassign_assets_new_person": "Nuk arrihet të ricaktohen asetet te një person i ri",
+ "unable_to_refresh_user": "Nuk arrihet të rifreskohet përdoruesi",
+ "unable_to_remove_album_users": "Nuk arrihet të hiqen përdoruesit nga albumi",
+ "unable_to_remove_api_key": "Nuk arrihet të hiqet çelësi API",
+ "unable_to_remove_assets_from_shared_link": "Nuk arrihet të hiqen asetet nga lidhja e ndarë",
+ "unable_to_remove_library": "Nuk arrihet të hiqet biblioteka",
+ "unable_to_remove_partner": "Nuk arrihet të hiqet partneri",
+ "unable_to_remove_reaction": "Nuk arrihet të hiqet reagimi",
+ "unable_to_reset_password": "Nuk arrihet të rivendoset fjalëkalimi",
+ "unable_to_reset_pin_code": "Nuk arrihet të rivendoset kodi PIN",
+ "unable_to_resolve_duplicate": "Nuk arrihet të zgjidhet duplikati",
+ "unable_to_restore_assets": "Nuk arrihet të rikthehen asetet",
+ "unable_to_restore_trash": "Nuk arrihet të rikthehet koshi",
+ "unable_to_restore_user": "Nuk arrihet të rikthehet përdoruesi",
+ "unable_to_save_album": "Nuk arrihet të ruhet albumi",
+ "unable_to_save_api_key": "Nuk arrihet të ruhet çelësi API",
+ "unable_to_save_date_of_birth": "Nuk arrihet të ruhet data e lindjes",
+ "unable_to_save_name": "Nuk arrihet të ruhet emri",
+ "unable_to_save_profile": "Nuk arrihet të ruhet profili",
+ "unable_to_save_settings": "Nuk arrihet të ruhen cilësimet",
+ "unable_to_scan_libraries": "Nuk arrihet të skanohen bibliotekat",
+ "unable_to_scan_library": "Nuk arrihet të skanohet biblioteka",
+ "unable_to_set_feature_photo": "Nuk arrihet të caktohet fotoja e veçorisë",
+ "unable_to_set_profile_picture": "Nuk arrihet të caktohet fotoja e profilit",
+ "unable_to_set_rating": "Nuk arrihet të caktohet vlerësimi",
+ "unable_to_submit_job": "Nuk arrihet të dorëzohet puna",
+ "unable_to_trash_asset": "Nuk arrihet të hidhet aseti në kosh",
+ "unable_to_unlink_account": "Nuk arrihet të shkëputet llogaria",
+ "unable_to_unlink_motion_video": "Nuk arrihet të shkëputet videoja me lëvizje",
+ "unable_to_update_album_cover": "Nuk arrihet të përditësohet kopertina e albumit",
+ "unable_to_update_album_info": "Nuk arrihet të përditësohet informacioni i albumit",
+ "unable_to_update_library": "Nuk arrihet të përditësohet biblioteka",
+ "unable_to_update_location": "Nuk arrihet të përditësohet vendndodhja",
+ "unable_to_update_settings": "Nuk arrihet të përditësohen cilësimet",
+ "unable_to_update_timeline_display_status": "Nuk arrihet të përditësohet statusi i shfaqjes së kronologjisë",
+ "unable_to_update_user": "Nuk arrihet të përditësohet përdoruesi",
+ "unable_to_update_workflow": "Nuk arrihet të përditësohet rrjedha e punës",
+ "unable_to_upload_file": "Nuk arrihet të ngarkohet skedari"
+ },
+ "errors_text": "Gabime",
+ "exclusion_pattern": "Modeli i përjashtimit",
+ "exif": "Exif",
+ "exif_bottom_sheet_description": "Shto përshkrim...",
+ "exif_bottom_sheet_description_error": "Gabim gjatë përditësimit të përshkrimit",
+ "exif_bottom_sheet_no_description": "Pa përshkrim",
+ "exit_slideshow": "Dil nga shfaqja e diapozitivave",
+ "expand": "Zgjero",
+ "expand_all": "Zgjero të gjitha",
+ "expire_after": "Skadon pas",
+ "expired": "Skaduar",
+ "expires_date": "Skadon më {date}",
+ "explore": "Eksploro",
+ "explorer": "Eksploruesi",
+ "export": "Eksporto",
+ "export_as_json": "Eksporto si JSON",
+ "export_database": "Eksporto bazën e të dhënave",
+ "export_database_description": "Eksporto bazën e të dhënave SQLite",
+ "exposure_time": "Koha e ekspozimit",
+ "extension": "Zgjatimi",
+ "external": "I jashtëm",
+ "external_libraries": "Biblioteka të jashtme",
+ "external_network": "Rrjet i jashtëm",
+ "external_network_sheet_info": "Kur nuk je në rrjetin Wi-Fi të preferuar, aplikacioni do të lidhet me serverin përmes URL-së së parë më poshtë që arrin të kontaktojë, duke filluar nga lart poshtë",
+ "f_number": "Numri-F",
+ "face_unassigned": "I pacaktuar",
+ "failed": "Dështoi",
+ "failed_count": "Dështoi: {count}",
+ "failed_to_authenticate": "Vërtetimi dështoi",
+ "failed_to_delete_file": "Fshirja e skedarit dështoi",
+ "failed_to_load_assets": "Ngarkimi i aseteve dështoi",
+ "failed_to_load_folder": "Ngarkimi i dosjes dështoi",
+ "favorite": "I preferuar",
+ "favorite_action_prompt": "{count} u shtua te të preferuarat",
+ "favorite_or_unfavorite_photo": "Shto ose hiq foton nga të preferuarat",
+ "favorites": "Të preferuarat",
+ "feature_photo_updated": "Fotoja e veçorisë u përditësua",
+ "features": "Veçoritë",
+ "features_setting_description": "Menaxho veçoritë e aplikacionit",
+ "file_name_or_extension": "Emri i skedarit ose zgjatimi",
+ "file_name_text": "Emri i skedarit",
+ "file_size": "Madhësia e skedarit",
+ "filename": "Emri i skedarit",
+ "filetype": "Lloji i skedarit",
+ "filter": "Filtro",
+ "filter_people": "Filtro personat",
+ "filter_places": "Filtro vendet",
+ "filter_tags": "Filtro etiketat",
+ "filters": "Filtra",
+ "first": "I pari",
+ "fix_incorrect_match": "Rregullo përputhjen e pasaktë",
+ "focal_length": "Gjatësia fokale",
+ "folder": "Dosje",
+ "folder_not_found": "Dosja nuk u gjet",
+ "folders": "Dosje",
+ "folders_feature_description": "Shfletimi i pamjes së dosjeve për fotot dhe videot në sistemin e skedarëve",
+ "forgot_pin_code_question": "Harrove PIN-in?",
+ "forward": "Përcill",
+ "free_up_space": "Liro hapësirë",
+ "free_up_space_description": "Zhvendos fotot dhe videot me kopje rezervë te koshi i pajisjes për të liruar hapësirë. Kopjet e tua në server mbeten të sigurta.",
+ "free_up_space_settings_subtitle": "Liro hapësirën e pajisjes",
+ "full_path": "Shtegu i plotë: {path}",
+ "full_path_or_folder": "Shtegu i plotë ose dosja",
+ "gcast_enabled": "Google Cast",
+ "gcast_enabled_description": "Kjo veçori ngarkon burime të jashtme nga Google për të funksionuar.",
+ "general": "Të përgjithshme",
+ "geolocation_instruction_location": "Kliko mbi një aset me koordinata GPS për të përdorur vendndodhjen e tij, ose zgjidh një vendndodhje drejtpërdrejt nga harta",
+ "get_help": "Merr ndihmë",
+ "get_people_error": "Gabim gjatë marrjes së personave",
+ "get_wifiname_error": "Nuk u mor dot emri i Wi-Fi-t. Sigurohu që ke dhënë lejet e nevojshme dhe je i lidhur me një rrjet Wi-Fi",
+ "getting_started": "Fillimi",
+ "go_back": "Kthehu",
+ "go_to_folder": "Shko te dosja",
+ "go_to_search": "Shko te kërkimi",
+ "gps": "GPS",
+ "gps_missing": "Pa GPS",
+ "grant_permission": "Jep leje",
+ "group_albums_by": "Grupo albumet sipas...",
+ "group_country": "Grupo sipas vendit",
+ "group_no": "Pa grupim",
+ "group_owner": "Grupo sipas pronarit",
+ "group_places_by": "Grupo vendet sipas...",
+ "group_year": "Grupo sipas vitit",
+ "haptic_feedback_title": "Reagim haptik",
+ "has_quota": "Ka kuotë",
+ "hash_asset": "Bëj hash asetin",
+ "hashed_assets": "Asete të hashuara",
+ "hashing": "Po bëhet hashimi",
+ "header_settings_add_header_tip": "Shto header",
+ "header_settings_field_validator_msg": "Vlera nuk mund të jetë bosh",
+ "header_settings_header_name_input": "Emri i header-it",
+ "header_settings_header_value_input": "Vlera e header-it",
+ "headers_settings_tile_title": "Header-a të personalizuar proxy",
+ "height": "Lartësia",
+ "hi_user": "Përshëndetje {name} ({email})",
+ "hide_all_people": "Fshih të gjithë personat",
+ "hide_gallery": "Fshih galerinë",
+ "hide_named_person": "Fshih personin {name}",
+ "hide_password": "Fshih fjalëkalimin",
+ "hide_person": "Fshih personin",
+ "hide_schema": "Fshih skemën",
+ "hide_text_recognition": "Fshih njohjen e tekstit",
+ "hide_unnamed_people": "Fshih personat pa emër",
+ "home_page_building_timeline": "Po ndërtohet kronologjia",
+ "host": "Host",
+ "hour": "Ora",
+ "hours": "Orë",
+ "id": "ID",
+ "idle": "Joaktiv",
+ "image": "Imazhi",
+ "image_alt_text_date": "{isVideo, select, true {Video} other {Imazh}} i realizuar më {date}",
+ "image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Imazh}} i realizuar me {person1} më {date}",
+ "image_alt_text_date_2_people": "{isVideo, select, true {Video} other {Imazh}} i realizuar me {person1} dhe {person2} më {date}",
+ "image_alt_text_date_3_people": "{isVideo, select, true {Video} other {Imazh}} i realizuar me {person1}, {person2} dhe {person3} më {date}",
+ "image_alt_text_date_4_or_more_people": "{isVideo, select, true {Video} other {Imazh}} i realizuar me {person1}, {person2} dhe {additionalCount, number} të tjerë më {date}",
+ "image_alt_text_date_place": "{isVideo, select, true {Video} other {Imazh}} i realizuar në {city}, {country} më {date}",
+ "image_alt_text_date_place_1_person": "{isVideo, select, true {Video} other {Imazh}} i realizuar në {city}, {country} me {person1} më {date}",
+ "image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Imazh}} i realizuar në {city}, {country} me {person1} dhe {person2} më {date}",
+ "image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Imazh}} i realizuar në {city}, {country} me {person1}, {person2} dhe {person3} më {date}",
+ "image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Imazh}} i realizuar në {city}, {country} me {person1}, {person2} dhe {additionalCount, number} të tjerë më {date}",
+ "immich_logo": "Logoja e Immich",
+ "immich_web_interface": "Ndërfaqja Web e Immich",
+ "import_from_json": "Importo nga JSON",
+ "import_path": "Shtegu i importimit",
+ "in_albums": "Në {count, plural, one {# album} other {# albume}}",
+ "in_archive": "Në arkiv",
+ "in_year": "Në {year}",
+ "in_year_selector": "Në",
+ "include_archived": "Përfshi të arkivuarat",
+ "include_shared_albums": "Përfshi albumet e ndara",
+ "include_shared_partner_assets": "Përfshi asetet e ndara të partnerit",
+ "individual_share": "Ndarje individuale",
+ "individual_shares": "Ndarje individuale",
+ "info": "Info",
+ "integrity_checks": "Kontrolle integriteti",
+ "interval": {
+ "day_at_onepm": "Çdo ditë në orën 13:00",
+ "hours": "Çdo {hours, plural, one {orë} other {{hours, number} orë}}",
+ "night_at_midnight": "Çdo natë në mesnatë",
+ "night_at_twoam": "Çdo natë në orën 2:00"
+ },
+ "invalid_date": "Datë e pavlefshme",
+ "invalid_date_format": "Format date i pavlefshëm",
+ "invite_people": "Fto persona",
+ "invite_to_album": "Fto në album",
+ "iso": "ISO",
+ "items_count": "{count, plural, one {# artikull} other {# artikuj}}",
+ "jobs": "Punët",
+ "keep": "Mbaj",
+ "keep_albums": "Mbaj albumet",
+ "keep_albums_count": "Po mbahen {count} {count, plural, one {album} other {albume}}",
+ "keep_all": "Mbaji të gjitha",
+ "keep_description": "Zgjidh çfarë mbetet në pajisjen tënde kur liron hapësirë.",
+ "keep_favorites": "Mbaj të preferuarat",
+ "keep_on_device": "Mbaj në pajisje",
+ "keep_on_device_hint": "Zgjidh artikujt për të mbajtur në këtë pajisje",
+ "keep_this_delete_others": "Mbaj këtë, fshi të tjerat",
+ "keeping": "Po mbahen: {items}",
+ "kept_this_deleted_others": "U mbajt ky aset dhe u fshinë {count, plural, one {# aset} other {# asete}}",
+ "keyboard_shortcuts": "Shkurtore tastiere",
+ "language": "Gjuha",
+ "language_no_results_subtitle": "Provo të rregullosh termin tënd të kërkimit",
+ "language_no_results_title": "Nuk u gjet asnjë gjuhë",
+ "language_search_hint": "Kërko gjuhë...",
+ "language_setting_description": "Zgjidh gjuhën tënde të preferuar",
+ "large_files": "Skedarë të mëdhenj",
+ "last": "I fundit",
+ "last_months": "{count, plural, one {Muajin e kaluar} other {# muajt e kaluar}}",
+ "last_seen": "Parë së fundmi",
+ "latest_version": "Versioni më i fundit",
+ "latitude": "Gjerësia gjeografike",
+ "leave": "Largohu",
+ "leave_album": "Largohu nga albumi",
+ "lens_model": "Modeli i objektivit",
+ "less": "Më pak",
+ "let_others_respond": "Lejo të tjerët të përgjigjen",
+ "level": "Niveli",
+ "library": "Biblioteka",
+ "library_add_folder": "Shto dosje",
+ "library_edit_folder": "Modifiko dosjen",
+ "library_page_sort_asset_count": "Numri i aseteve",
+ "library_page_sort_created": "Data e krijimit",
+ "library_page_sort_last_modified": "Modifikuar së fundmi",
+ "library_page_sort_title": "Titulli i albumit",
+ "licenses": "Licencat",
+ "light": "E çelët",
+ "light_theme": "Kalo në temën e çelët",
+ "like": "Pëlqe",
+ "like_deleted": "Pëlqimi u fshi",
+ "link": "Lidhje",
+ "link_motion_video": "Lidh videon me lëvizje",
+ "link_to_docs": "Për më shumë informacion, referoju dokumentacionit.",
+ "link_to_oauth": "Lidh me OAuth",
+ "linked_oauth_account": "Llogaria OAuth e lidhur",
+ "list": "Listë",
+ "live": "Drejtpërdrejt",
+ "location": "Vendndodhja",
+ "model": "Modeli",
+ "name": "Emri",
+ "none": "Asnjë",
+ "offline": "Jashtë linje",
+ "ok": "Në rregull",
+ "online": "Online",
+ "orientation": "Orientimi",
+ "path": "Shtegu",
+ "permanently_deleted_assets_count": "U fshinë përgjithmonë {count, plural, one {# aset} other {# asete}}",
+ "refresh": "Rifresko",
+ "rename": "Riemërto",
+ "role_editor": "Modifikuesi",
+ "search": "Kërko",
+ "search_filter_date": "Data",
+ "search_filter_location": "Vendndodhja",
+ "select_albums": "Zgjidh albume",
+ "settings": "Cilësimet",
+ "shared_link_custom_url_title": "URL e personalizuar",
+ "size": "Madhësia",
+ "status": "Statusi",
+ "to_archive": "Arkiv",
+ "to_select": "për të zgjedhur",
+ "type": "Lloji",
+ "unknown": "E panjohur",
+ "upload_finished": "Ngarkimi përfundoi",
+ "upload_status_duplicates": "Duplikatë",
+ "upload_status_errors": "Gabime",
+ "upload_status_uploaded": "Ngarkuar",
+ "username": "Emri i përdoruesit",
+ "version": "Versioni",
"you_dont_have_any_shared_links": "Nuk keni asnjë link të shpërndarë",
"your_wifi_name": "Emri i Wi-Fi tuaj",
"zoom_image": "Zmadho imazhin"
diff --git a/i18n/sr_Cyrl.json b/i18n/sr_Cyrl.json
index 616619e801..fdb5e16bc2 100644
--- a/i18n/sr_Cyrl.json
+++ b/i18n/sr_Cyrl.json
@@ -542,12 +542,12 @@
"check_logs": "Проверите дневнике (логс)",
"choose_matching_people_to_merge": "Изаберите одговарајуће особе за спајање",
"city": "Град",
- "clear": "Јасно",
+ "clear": "Очисти",
"clear_all": "Избриши све",
"clear_all_recent_searches": "Обришите све недавне претраге",
"clear_message": "Обриши поруку",
- "clear_value": "Јасна вредност",
- "client_cert_import": "Импорт",
+ "clear_value": "Очисти вредност",
+ "client_cert_import": "Увези",
"client_cert_import_success_msg": "Сертификат клијента је увезен",
"client_cert_invalid_msg": "Неважећа датотека сертификата или погрешна лозинка",
"client_cert_remove_msg": "Сертификат клијента је уклоњен",
diff --git a/i18n/sr_Latn.json b/i18n/sr_Latn.json
index e07befb1c7..4979e5f137 100644
--- a/i18n/sr_Latn.json
+++ b/i18n/sr_Latn.json
@@ -73,6 +73,7 @@
"cron_expression_description": "Podesite interval skeniranja koristeći cron format. Za više informacija pogledajte npr. Crontab Guru",
"cron_expression_presets": "Predefinisana podešavanja Cron izraza (expression)",
"disable_login": "Onemogući prijavu",
+ "download_csv": "Preuzmite CSV",
"duplicate_detection_job_description": "Pokrenite mašinsko učenje na sredstvima da biste otkrili slične slike. Oslanja se na pametnu pretragu",
"exclusion_pattern_description": "Obrasci izuzimanja vam omogućavaju da ignorišete datoteke i fascikle kada skenirate biblioteku. Ovo je korisno ako imate fascikle koje sadrže datoteke koje ne želite da uvezete, kao što su RAW datoteke.",
"export_config_as_json_description": "Skini trenutnu sistemsku konfiguraciju kao JSON fajl",
@@ -756,7 +757,6 @@
"custom_date": "Odabir datuma",
"custom_locale": "Prilagođeni lokalitet",
"custom_locale_description": "Formatirajte datume, vreme i brojeve na osnovu izabranog jezika i regiona",
- "custom_url": "Odabir URL",
"cutoff_date_description": "Sačuvaj slike od prethodnih…",
"dark": "Tamno",
"dark_theme": "Primeni tamnu temu",
diff --git a/i18n/sv.json b/i18n/sv.json
index ac9ae35eb1..596411673a 100644
--- a/i18n/sv.json
+++ b/i18n/sv.json
@@ -39,59 +39,59 @@
"added_to_favorites": "Tillagd till favoriter",
"added_to_favorites_count": "{count, number} tillagda till favoriter",
"admin": {
- "add_exclusion_pattern_description": "Lägg till exkluderande mönster. Matchning med jokertecken *, ** samt ? stödjs. För att ignorera alla filer i samtliga mappar som heter \"Raw\", använd \"**/Raw/**\". För att ignorera alla filer som slutar med \".tif\", använd \"**/*.tif\". För att ignorera en absolut sökväg, använd \"/sökväg/att/ignorera/**\".",
+ "add_exclusion_pattern_description": "Lägg till uteslutningsmönster. Jokertecknen *, ** och ? stöds. Använd \"**/Raw/**\" för att ignorera alla filer i alla kataloger med namnet \"Raw\". Använd \"**/*.tif\" för att ignorera alla filer som slutar med \".tif\". Använd \"/path/to/ignore/**\" för att ignorera en absolut sökväg.",
"admin_user": "Adminanvändare",
"asset_offline_description": "Detta externa biblioteksobjekt finns inte längre på disken och har flyttats till papperskorgen. Om filen flyttades inom biblioteket, kontrollera din tidslinje för det nya motsvarande objektet. För att återställa detta objekt, se till att filsökvägen nedan kan nås av Immich och skanna biblioteket.",
"authentication_settings": "Autentiseringsinställningar",
- "authentication_settings_description": "Hantera lösenord, OAuth, och andra autentiseringsinställningar",
- "authentication_settings_disable_all": "Är du säker på att du vill inaktivera alla inloggningsmetoder? Inloggning kommer att helt inaktiveras.",
- "authentication_settings_reenable": "För att återaktivera, använd Server Command.",
- "background_task_job": "Bakgrundsaktiviteter",
- "backup_database": "Skapa Databasdump",
- "backup_database_enable_description": "Aktivera dumpning av databas",
+ "authentication_settings_description": "Hantera lösenord, OAuth och andra autentiseringsinställningar",
+ "authentication_settings_disable_all": "Är du säker på att du vill inaktivera alla inloggningsmetoder? Inloggningen inaktiveras helt.",
+ "authentication_settings_reenable": "Använd ett serverkommando för att aktivera dem igen.",
+ "background_task_job": "Bakgrundsuppgifter",
+ "backup_database": "Skapa databasdump",
+ "backup_database_enable_description": "Aktivera databasdumpar",
"backup_keep_last_amount": "Antal databasdumpar att behålla",
- "backup_onboarding_1_description": "extern kopia i molnet eller på en annan fysisk plats.",
- "backup_onboarding_2_description": "lokala kopior på olika enheter. Detta inkluderar huvudfilerna och en lokal säkerhetskopia av dessa filer.",
- "backup_onboarding_3_description": "totala kopior av dina data, inklusive originalfilerna. Detta inkluderar 1 extern kopia och 2 lokala kopior.",
- "backup_onboarding_description": "En 3-2-1 säkerhetskopieringsstrategi rekommenderas för att skydda din data. Du bör även spara kopior av dina uppladdade foton/videor samt Immich-databasen för en heltäckande säkerhetskopieringslösning.",
+ "backup_onboarding_1_description": "extern säkerhetskopia i molnet eller på en annan fysisk plats.",
+ "backup_onboarding_2_description": "lokala kopior på olika enheter. Detta omfattar huvudfilerna och en lokal säkerhetskopia av dem.",
+ "backup_onboarding_3_description": "kopior av dina data totalt, inklusive originalfilerna. Detta omfattar en extern kopia och två lokala kopior.",
+ "backup_onboarding_description": "En 3-2-1-strategi för säkerhetskopiering rekommenderas för att skydda dina data. För en heltäckande säkerhetskopiering bör du behålla kopior av uppladdade foton och videor samt av Immich-databasen.",
"backup_onboarding_footer": "För mer information om säkerhetskopiering av Immich, se dokumentationen.",
- "backup_onboarding_parts_title": "En 3-2-1 säkerhetskopiering inkluderar:",
+ "backup_onboarding_parts_title": "En 3-2-1-säkerhetskopiering omfattar:",
"backup_onboarding_title": "Säkerhetskopior",
- "backup_settings": "Inställningar databasdump",
+ "backup_settings": "Inställningar för databasdump",
"backup_settings_description": "Hantera inställningar för databasdumpning.",
- "cleared_jobs": "Rensade jobben för: {job}",
- "config_set_by_file": "Konfigurationen är satt av en konfigurationsfil",
- "confirm_delete_library": "Är du säker på att du vill radera {library} album?",
- "confirm_delete_library_assets": "Är du säker på att du vill radera detta album? {count, plural, one {# objekt} other {Samtliga # objekt}} kommer att tas bort från Immich och åtgärden kan inte ångras. Filerna kommer att behållas på hårddisken.",
+ "cleared_jobs": "Rensade jobb för: {job}",
+ "config_set_by_file": "Konfigurationen anges för närvarande i en konfigurationsfil",
+ "confirm_delete_library": "Är du säker på att du vill ta bort biblioteket {library}?",
+ "confirm_delete_library_assets": "Är du säker på att du vill ta bort det här biblioteket? Då tas {count, plural, one {# objekt i biblioteket} other {alla # objekt i biblioteket}} bort från Immich. Åtgärden kan inte ångras. Filerna ligger kvar på disken.",
"confirm_email_below": "För att bekräfta, skriv ”{email}” nedan",
- "confirm_reprocess_all_faces": "Är du säker på att du vill återprocessa alla ansikten? Detta kommer också rensa namngivna personer.",
+ "confirm_reprocess_all_faces": "Är du säker på att du vill bearbeta alla ansikten igen? Namnen på personer rensas också.",
"confirm_user_password_reset": "Är du säker på att du vill återställa lösenordet för {user}?",
"confirm_user_pin_code_reset": "Är du säker på att du vill återställa PIN-koden för {user}?",
- "copy_config_to_clipboard_description": "Kopiera den aktuella systemkonfigurationen som ett JSON-objekt till urklipp",
+ "copy_config_to_clipboard_description": "Kopiera den aktuella systemkonfigurationen som ett JSON-objekt till urklippet",
"create_job": "Skapa jobb",
"cron_expression": "Cron-uttryck",
- "cron_expression_description": "Sätt skanningsintervallet genom att använda cron-format. För mer information se Crontab Guru",
- "cron_expression_presets": "Cron-uttryck förinställningar",
+ "cron_expression_description": "Ange skanningsintervallet i cron-format. Mer information finns exempelvis på Crontab Guru",
+ "cron_expression_presets": "Förval för cron-uttryck",
"disable_login": "Inaktivera inloggning",
"download_csv": "Ladda ner CSV",
- "duplicate_detection_job_description": "Kör maskininlärning på objekt för att upptäcka liknande bilder. Bygger på Smart Search",
- "exclusion_pattern_description": "Exkluderingsmönster tillåter dig att ignorera filer och mappar när skanning görs av ditt album. Detta är användbart om du har mappar som innehåller filer som du inte vill importera, t.ex. RAW-filer.",
+ "duplicate_detection_job_description": "Kör maskininlärning på objekt för att hitta liknande bilder. Bygger på smart sökning",
+ "exclusion_pattern_description": "Med uteslutningsmönster kan du ignorera filer och mappar när biblioteket skannas. Det är användbart för mappar som innehåller filer som inte ska importeras, exempelvis RAW-filer.",
"export_config_as_json_description": "Ladda ner den aktuella systemkonfigurationen som en JSON-fil",
- "external_libraries_page_description": "Administratörs externa bibliotekssida",
+ "external_libraries_page_description": "Administrationssida för externa bibliotek",
"face_detection": "Ansiktsdetektering",
- "face_detection_description": "Identifiera ansikten i foton med hjälp av maskininlärning. För videor används endast miniatyrbilden. \"Ladda om\" gör om sökningen för alla objekt. \"Återställ\" rensar all gällande ansikts-data. \"Saknade\" letar i de objekt som ännu inte sökts igenom. Alla identifierade ansikten läggs sedan i jobbkön för ansiktsigenkänning där de mappas till nya eller befintliga personer.",
- "facial_recognition_job_description": "Gruppera upptäckta ansikten till personer. Det här steget körs efter att ansiktsdetektering är klar. \"Återställ\" (åter-)grupperar alla ansikten. \"Saknade\" köar ansikten som inte har en person tilldelad.",
- "failed_job_command": "Kommando {command} misslyckades för jobb: {job}",
- "force_delete_user_warning": "VARNING: Detta tar omedelbart bort användaren och alla mediafiler. Detta kan inte ångras och filerna kan inte återställas.",
+ "face_detection_description": "Detektera ansikten i objekt med hjälp av maskininlärning. För videor används endast miniatyrbilden. ”Uppdatera” bearbetar alla objekt igen. ”Återställ” rensar dessutom alla befintliga ansiktsdata. ”Saknade” köplacerar objekt som ännu inte har bearbetats. När ansiktsdetekteringen är klar köplaceras de detekterade ansiktena för ansiktsigenkänning och grupperas som befintliga eller nya personer.",
+ "facial_recognition_job_description": "Gruppera detekterade ansikten efter person. Steget körs efter att ansiktsdetekteringen är klar. ”Återställ” grupperar om alla ansikten. ”Saknade” köplacerar ansikten som ännu inte har tilldelats en person.",
+ "failed_job_command": "Kommandot {command} misslyckades för jobbet {job}",
+ "force_delete_user_warning": "VARNING: Användaren och alla objekt tas bort omedelbart. Åtgärden kan inte ångras och filerna kan inte återställas.",
"image_format": "Format",
"image_format_description": "WebP producerar mindre filer än JPEG, men kodas långsammare.",
- "image_fullsize_description": "Fullstor bild med borttagen metadata, används vid inzoomning",
- "image_fullsize_enabled": "Använd fullstor bildgenerering",
- "image_fullsize_enabled_description": "Generera fullstor bild för icke webbvänliga format. När \"Använd inbäddade förhandsvisningar\" är aktiverat används inbäddad förhandsvisning utan konvertering. Påverkar inte webbvänliga format som JPEG.",
- "image_fullsize_quality_description": "Bildkvalitet för fullstora bilder 1-100. Högre värde ger bättre kvalitet men större filer.",
+ "image_fullsize_description": "Bild i full storlek utan metadata, används vid inzoomning",
+ "image_fullsize_enabled": "Aktivera generering av bilder i full storlek",
+ "image_fullsize_enabled_description": "Generera bilder i full storlek för format som inte är webbvänliga. När \"Föredra inbäddad förhandsvisning\" är aktiverat används inbäddade förhandsvisningar direkt utan konvertering. Webbvänliga format som JPEG påverkas inte.",
+ "image_fullsize_quality_description": "Kvalitet för bilder i full storlek, från 1 till 100. Högre värden ger bättre kvalitet men större filer.",
"image_fullsize_title": "Inställningar för fullstora bilder",
"image_prefer_embedded_preview": "Föredra inbäddad förhandsgranskning",
- "image_prefer_embedded_preview_setting_description": "Använd inbäddade förhandsvisningar i RAW-foton som indata till bildbehandling och när det är tillgängligt. Detta kan ge mer exakta färger för vissa bilder, men kvaliteten på förhandsgranskningen är kameraberoende och bilden kan ha fler komprimeringsartefakter.",
+ "image_prefer_embedded_preview_setting_description": "Använd inbäddade förhandsvisningar i RAW-foton som underlag för bildbehandling när de finns. Det kan ge mer korrekta färger i vissa bilder, men förhandsvisningens kvalitet beror på kameran och bilden kan innehålla fler komprimeringsartefakter.",
"image_prefer_wide_gamut": "Föredra brett färgomfång",
"image_prefer_wide_gamut_setting_description": "Använd Display P3 för miniatyrer. Detta bevarar livfullheten bättre hos bilder med bred färgrymd, men bilder kan se annorlunda ut på gamla enheter med en gammal webbläsarversion. sRGB-bilder behålls som sRGB för att undvika färgskiftningar.",
"image_preview_description": "Mellanstor bild med avskalad metadata, används vid visning av ett enskilt objekt och för maskininlärning",
@@ -108,62 +108,77 @@
"image_thumbnail_quality_description": "Miniatyrkvalitet från 1-100. Högre är bättre, men ger större filer och kan minska appens följsamhet.",
"image_thumbnail_title": "Miniatyrbildsinställningar",
"import_config_from_json_description": "Importera systemkonfiguration genom att ladda upp en JSON-konfigurationsfil",
+ "integrity_checks_checksum_files": "Kontrollsummor för filer",
+ "integrity_checks_checksum_files_description": "Konfigurera kontrollen av filers kontrollsummor",
+ "integrity_checks_checksum_files_enable_description": "Aktivera kontroll av filers kontrollsummor",
+ "integrity_checks_checksum_files_percentage_limit": "Procentuell gräns",
+ "integrity_checks_checksum_files_percentage_limit_description": "Ange den högsta andelen, mellan 0,01 och 1, som kontrollsummekontrollen får bearbeta vid varje intervall.",
+ "integrity_checks_checksum_files_time_limit": "Tidsgräns",
+ "integrity_checks_checksum_files_time_limit_description": "Ange hur länge kontrollsummekontrollen högst får köras vid varje intervall. (ms)",
+ "integrity_checks_missing_files": "Saknade filer",
+ "integrity_checks_missing_files_description": "Konfigurera frekvensen och aktivera eller inaktivera kontrollen av saknade filer",
+ "integrity_checks_missing_files_enable_description": "Aktivera kontroll av saknade filer",
+ "integrity_checks_settings": "Integritetskontroller",
+ "integrity_checks_settings_description": "Hantera intervall för integritetskontroller",
+ "integrity_checks_untracked_files": "Ospårade filer",
+ "integrity_checks_untracked_files_description": "Konfigurera frekvensen och aktivera eller inaktivera kontrollen av ospårade filer",
+ "integrity_checks_untracked_files_enable_description": "Aktivera kontroll av ospårade filer",
"job_concurrency": "{job} samtidighet",
"job_created": "Jobb skapat",
"job_not_concurrency_safe": "Det här jobbet är inte samtidighetssäkert.",
"job_settings": "Jobbinställningar",
"job_settings_description": "Hantera samtidiga jobb",
"jobs_delayed": "{jobCount, plural, one{# försenad} other {# försenade}}",
- "jobs_failed": "{jobCount, plural, other {# misslyckades}}",
+ "jobs_failed": "{jobCount, plural, other {# misslyckade}}",
"jobs_over_time": "Jobb över tid",
- "library_created": "Skapat bibliotek: {library}",
+ "library_created": "Bibliotek skapat: {library}",
"library_deleted": "Biblioteket har tagits bort",
"library_details": "Biblioteksdetaljer",
- "library_folder_description": "Välj en mapp att importera. Denna mapp, inklusive undermappar, kommer sökas igenom efter bilder och videor.",
+ "library_folder_description": "Ange en mapp som ska importeras. Mappen och dess undermappar skannas efter bilder och videor.",
"library_remove_exclusion_pattern_prompt": "Är du säker på att du vill ta bort detta exkluderingsmönster?",
"library_remove_folder_prompt": "Är du säker på att du vill ta bort denna importmapp?",
"library_scanning": "Periodisk skanning",
- "library_scanning_description": "Konfigurera periodisk biblioteksskanning",
- "library_scanning_enable_description": "Aktivera periodisk biblioteksskanning",
+ "library_scanning_description": "Konfigurera periodisk skanning av bibliotek",
+ "library_scanning_enable_description": "Aktivera periodisk skanning av bibliotek",
"library_settings": "Externa bibliotek",
"library_settings_description": "Hantera inställningar för externa bibliotek",
- "library_tasks_description": "Sök igenom externa bibliotek efter nya och/eller förändrade objekt",
+ "library_tasks_description": "Skanna externa bibliotek efter nya och ändrade objekt",
"library_updated": "Bibliotek uppdaterat",
- "library_watching_enable_description": "Bevaka externa bibliotek för filändringar",
- "library_watching_settings": "Bevaka bibliotek [EXPERIMENTELLT]",
- "library_watching_settings_description": "Bevaka automatiskt filförändringar",
+ "library_watching_enable_description": "Bevaka filändringar i externa bibliotek",
+ "library_watching_settings": "Biblioteksbevakning [EXPERIMENTELLT]",
+ "library_watching_settings_description": "Bevaka ändrade filer automatiskt",
"logging_enable_description": "Aktivera loggning",
- "logging_level_description": "Vilken loggnivå som ska användas vid aktivering.",
+ "logging_level_description": "Ange vilken loggnivå som ska användas när loggning är aktiverad.",
"logging_settings": "Loggning",
"machine_learning_availability_checks": "Tillgänglighetskontroller",
- "machine_learning_availability_checks_description": "Upptäck och föredrar automatiskt tillgängliga maskininlärningsservrar",
+ "machine_learning_availability_checks_description": "Identifiera automatiskt tillgängliga maskininlärningsservrar och använd dem i första hand",
"machine_learning_availability_checks_enabled": "Aktivera tillgänglighetskontroller",
- "machine_learning_availability_checks_interval": "Kontrollera intervall",
+ "machine_learning_availability_checks_interval": "Kontrollintervall",
"machine_learning_availability_checks_interval_description": "Intervall i millisekunder mellan tillgänglighetskontroller",
- "machine_learning_availability_checks_timeout": "Begär timeout",
- "machine_learning_availability_checks_timeout_description": "Timeout i millisekunder för tillgänglighetskontroller",
+ "machine_learning_availability_checks_timeout": "Tidsgräns för begäran",
+ "machine_learning_availability_checks_timeout_description": "Tidsgräns i millisekunder för tillgänglighetskontroller",
"machine_learning_clip_model": "CLIP-modell",
- "machine_learning_clip_model_description": "Namnet på en CLIP-modell listad här. Observera att du måste köra ett \"Smart Sökning\" jobb för alla bilder när du ändrar modell.",
+ "machine_learning_clip_model_description": "Namnet på en CLIP-modell som anges här. När modellen ändras måste jobbet ”Smart sökning” köras igen för alla bilder.",
"machine_learning_duplicate_detection": "Dubblettdetektering",
"machine_learning_duplicate_detection_enabled": "Aktivera dubblettdetektering",
- "machine_learning_duplicate_detection_enabled_description": "Om inaktiverad, kommer identiska objekt fortfarande att vara deduplicerade.",
+ "machine_learning_duplicate_detection_enabled_description": "Även om funktionen är inaktiverad dedupliceras exakt identiska objekt.",
"machine_learning_duplicate_detection_setting_description": "Använd CLIP-inbäddningar för att hitta troliga dubbletter",
"machine_learning_enabled": "Aktivera maskininlärning",
"machine_learning_enabled_description": "Om det är inaktiverat kommer alla ML-funktioner att inaktiveras oavsett inställningarna nedan.",
"machine_learning_facial_recognition": "Ansiktsigenkänning",
- "machine_learning_facial_recognition_description": "Upptäck, känna igen och gruppera ansikten i bilder",
+ "machine_learning_facial_recognition_description": "Upptäck, känn igen och gruppera ansikten i bilder",
"machine_learning_facial_recognition_model": "Ansiktsigenkänningsmodell",
- "machine_learning_facial_recognition_model_description": "Modeller är listade i fallande storleksordning. Större modeller är långsammare och använder mer minne, men ger bättre resultat. Observera att du måste köra Face Detection-jobbet för alla bilder när du ändrar en modell.",
+ "machine_learning_facial_recognition_model_description": "Modellerna anges i fallande storleksordning. Större modeller är långsammare och använder mer minne men ger bättre resultat. När modellen ändras måste ansiktsdetekteringsjobbet köras igen för alla bilder.",
"machine_learning_facial_recognition_setting": "Aktivera ansiktsigenkänning",
- "machine_learning_facial_recognition_setting_description": "Om avmarkerad kommer bilder inte att kodas till ansiktsigenkänningen vilket innebär att bilder inte kommer att läggas till i listan av igenkända personer på sidan Utforska.",
- "machine_learning_max_detection_distance": "Maximal detektions avstånd",
- "machine_learning_max_detection_distance_description": "Maximalt avstånd mellan två bilder för att överväga dem dubbletter, från 0,001-0,1. Högre värden kommer att upptäcka fler dubbletter, men kan leda till falsk positivt.",
+ "machine_learning_facial_recognition_setting_description": "När funktionen är inaktiverad kodas bilder inte för ansiktsigenkänning och visas därför inte under Personer på sidan Utforska.",
+ "machine_learning_max_detection_distance": "Största detekteringsavstånd",
+ "machine_learning_max_detection_distance_description": "Största avstånd mellan två bilder för att de ska betraktas som dubbletter, från 0,001 till 0,1. Högre värden hittar fler dubbletter men kan ge falska positiva resultat.",
"machine_learning_max_recognition_distance": "Maximalt igenkänningsavstånd",
- "machine_learning_max_recognition_distance_description": "Det maximala avståndet mellan två ansikten för att anses som samma person, från 0-2. Sänkning av denna kan medföra märkning av två personer som samma person, samtidigt som det kan förhindra att märkning av samma person som två olika personer. Observera att det är lättare att slå samman två personer än att dela en person i två, så ligg hellre närmare den lägre tröskel om det är möjligt.",
- "machine_learning_min_detection_score": "Minsta detektions poäng",
- "machine_learning_min_detection_score_description": "Lägsta självsäkerhetsnivå för att en sida ska upptäckas mellan 0-1. Lägre värden upptäcker fler sidor men kan resultera i falska positiv.",
- "machine_learning_min_recognized_faces": "Minsta identifierade ansikten",
- "machine_learning_min_recognized_faces_description": "Minsta antal identifierade ansikten för att en person ska kunna skapas. Om detta ökas blir ansiktsigenkänningen mer exakt, men risken för att ett ansikte inte kopplas till en person ökar.",
+ "machine_learning_max_recognition_distance_description": "Största avstånd mellan två ansikten för att de ska betraktas som samma person, från 0 till 2. Ett lägre värde minskar risken att två personer behandlas som samma person, medan ett högre värde minskar risken att samma person behandlas som två personer. Det är enklare att slå samman två personer än att dela en person i två, så välj helst ett lägre tröskelvärde.",
+ "machine_learning_min_detection_score": "Lägsta detekteringspoäng",
+ "machine_learning_min_detection_score_description": "Lägsta konfidenspoäng, från 0 till 1, för att ett ansikte ska detekteras. Lägre värden hittar fler ansikten men kan ge falska positiva resultat.",
+ "machine_learning_min_recognized_faces": "Minsta antal igenkända ansikten",
+ "machine_learning_min_recognized_faces_description": "Minsta antal igenkända ansikten som krävs för att skapa en person. Ett högre värde gör ansiktsigenkänningen mer exakt men ökar risken att ett ansikte inte tilldelas en person.",
"machine_learning_ocr": "OCR",
"machine_learning_ocr_description": "Använd maskininlärning för att känna igen text i bilder",
"machine_learning_ocr_enabled": "Aktivera OCR",
@@ -171,47 +186,47 @@
"machine_learning_ocr_max_resolution": "Maximal upplösning",
"machine_learning_ocr_max_resolution_description": "Förhandsvisningar över denna upplösning kommer att ändras i storlek samtidigt som bildförhållandet behålls. Högre värden är mer exakta, men tar längre tid att bearbeta och använder mer minne.",
"machine_learning_ocr_min_detection_score": "Lägsta detektionspoäng",
- "machine_learning_ocr_min_detection_score_description": "Lägsta konfidenspoäng för att text ska kunna detekteras är mellan 0 och 1. Lägre värden kommer att detektera mer text men kan resultera i falska positiva resultat.",
+ "machine_learning_ocr_min_detection_score_description": "Lägsta konfidenspoäng, från 0 till 1, för att text ska detekteras. Lägre värden hittar mer text men kan ge falska positiva resultat.",
"machine_learning_ocr_min_recognition_score": "Lägsta igenkänningspoäng",
- "machine_learning_ocr_min_score_recognition_description": "Lägsta konfidenspoäng för att detekterad text ska kunna identifieras är 0–1. Lägre värden identifierar mer text men kan resultera i falska positiva resultat.",
+ "machine_learning_ocr_min_score_recognition_description": "Lägsta konfidenspoäng, från 0 till 1, för att detekterad text ska kännas igen. Lägre värden känner igen mer text men kan ge falska positiva resultat.",
"machine_learning_ocr_model": "OCR-modell",
"machine_learning_ocr_model_description": "Servermodeller är mer exakta än mobilmodeller men tar längre tid att bearbeta och använder mer minne.",
- "machine_learning_settings": "Inställningar För Maskininlärning",
+ "machine_learning_settings": "Inställningar för maskininlärning",
"machine_learning_settings_description": "Hantera funktioner och inställningar för maskininlärning",
- "machine_learning_smart_search": "Smart Sökning",
+ "machine_learning_smart_search": "Smart sökning",
"machine_learning_smart_search_description": "Sök semantiskt efter bilder med hjälp av CLIP-inbäddningar",
"machine_learning_smart_search_enabled": "Aktivera smart sökning",
"machine_learning_smart_search_enabled_description": "Om inaktiverat kommer bilder inte att kodas för smart sökning.",
- "machine_learning_url_description": "Maskininlärningsserverns URL. Om det är mer än en URL tillagd så kommer ett försök per URL att utföras tills någon av dom svarar, försöken görs i kronologisk ordning. Servrar som inte svarar kommer tillfälligt ignoreras tills de är nåbara igen.",
+ "machine_learning_url_description": "Maskininlärningsserverns URL. Om flera URL:er anges provas servrarna en i taget i angiven ordning tills en svarar. Servrar som inte svarar ignoreras tillfälligt tills de är tillgängliga igen.",
"maintenance_backup_management": "Hantering av säkerhetskopior",
"maintenance_delete_backup": "Ta bort säkerhetskopia",
- "maintenance_delete_backup_description": "Den här filen kommer att raderas oåterkalleligt.",
+ "maintenance_delete_backup_description": "Filen tas bort oåterkalleligen.",
"maintenance_delete_error": "Det gick inte att ta bort säkerhetskopian.",
"maintenance_integrity_check": "Kontrollera",
"maintenance_integrity_check_all": "Kontrollera alla",
"maintenance_integrity_checksum_mismatch": "Kontrollsummeavvikelse",
"maintenance_integrity_checksum_mismatch_description": "Filer vars kontrollsumma på disken inte stämmer överens med den kontrollsumma som Immich har lagrat i sin databas.",
- "maintenance_integrity_checksum_mismatch_job": "Kolla efter kontrollsummor som inte matchar",
- "maintenance_integrity_checksum_mismatch_refresh_job": "Uppdatera rapporter om kontrollsummor som inte matchar",
+ "maintenance_integrity_checksum_mismatch_job": "Kontrollera avvikande kontrollsummor",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "Uppdatera rapporter om avvikande kontrollsummor",
"maintenance_integrity_missing_file": "Filer saknas",
"maintenance_integrity_missing_file_description": "Filer som har registrerats i Immichs databas men som saknas i filsystemet.",
- "maintenance_integrity_missing_file_job": "Kolla efter saknade filer",
+ "maintenance_integrity_missing_file_job": "Kontrollera om filer saknas",
"maintenance_integrity_missing_file_refresh_job": "Uppdatera rapporter om saknade filer",
"maintenance_integrity_report": "Integritetsrapport",
"maintenance_integrity_untracked_file": "Ospårade filer",
- "maintenance_integrity_untracked_file_description": "Okända filer i Immichs kataloger.",
- "maintenance_integrity_untracked_file_job": "Kolla efter okända filer",
- "maintenance_integrity_untracked_file_refresh_job": "Uppdatera rapporter om okända filer",
+ "maintenance_integrity_untracked_file_description": "Filer i Immichs kataloger som saknar en post i Immichs databas.",
+ "maintenance_integrity_untracked_file_job": "Kontrollera ospårade filer",
+ "maintenance_integrity_untracked_file_refresh_job": "Uppdatera rapporter om ospårade filer",
"maintenance_restore_backup": "Återställ säkerhetskopia",
- "maintenance_restore_backup_description": "Immich kommer att återställas från den valda säkerhetskopian. En ny säkerhetskopia kommer att skapas innan du fortsätter.",
+ "maintenance_restore_backup_description": "Immich rensas och återställs från den valda säkerhetskopian. En ny säkerhetskopia skapas innan återställningen fortsätter.",
"maintenance_restore_backup_different_version": "Denna säkerhetskopia skapades med en annan version av Immich!",
- "maintenance_restore_backup_unknown_version": "Kunde inte fastställa säkerhetskopians verison.",
+ "maintenance_restore_backup_unknown_version": "Det gick inte att fastställa säkerhetskopians version.",
"maintenance_restore_database_backup": "Återställ databasens säkerhetskopia",
"maintenance_restore_database_backup_description": "Återställ till ett tidigare databasläge med hjälp av en säkerhetskopia",
"maintenance_settings": "Underhåll",
"maintenance_settings_description": "Försätt Immich i underhållsläge.",
"maintenance_start": "Växla till underhållsläge",
- "maintenance_start_error": "Misslyckades att starta underhållsläget.",
+ "maintenance_start_error": "Det gick inte att starta underhållsläget.",
"maintenance_upload_backup": "Ladda upp en säkerhetskopia av databasen",
"maintenance_upload_backup_error": "Det gick inte att ladda upp säkerhetskopian. Är det en .sql/.sql.gz-fil?",
"manage_concurrency": "Hantera samtidighet",
@@ -219,31 +234,31 @@
"manage_log_settings": "Hantera logginställningar",
"map_dark_style": "Mörk stil",
"map_enable_description": "Aktivera kartfunktioner",
- "map_gps_settings": "Karta & GPS Inställningar",
- "map_gps_settings_description": "Ändra kartor & GPS (Omvänd geokodning) inställningar",
+ "map_gps_settings": "Inställningar för karta och GPS",
+ "map_gps_settings_description": "Hantera inställningar för karta, GPS och omvänd geokodning",
"map_implications": "Kartfunktionen är beroende av en extern kartbitstjänst (tiles.immich.cloud)",
"map_light_style": "Ljus stil",
- "map_manage_reverse_geocoding_settings": "Hantera inställningar för Omvänd geokodning",
- "map_reverse_geocoding": "Omvänd Geokodning",
+ "map_manage_reverse_geocoding_settings": "Hantera inställningar för omvänd geokodning",
+ "map_reverse_geocoding": "Omvänd geokodning",
"map_reverse_geocoding_enable_description": "Aktivera omvänd geokodning",
"map_reverse_geocoding_settings": "Inställningar för omvänd geokodning",
"map_settings": "Karta",
"map_settings_description": "Hantera kartinställningar",
- "map_style_description": "URL till en style.json-karto tema",
+ "map_style_description": "URL till ett karttema i formatet style.json",
"memory_cleanup_job": "Rensa minnen",
"memory_generate_job": "Generera minnen",
"metadata_extraction_job": "Extrahera metadata",
"metadata_extraction_job_description": "Läs in metadata (t.ex. GPS, ansikten och upplösning) för varje objekt",
"metadata_faces_import_setting": "Aktivera import av ansikten",
- "metadata_faces_import_setting_description": "Importera ansikten från bildens EXIF-data och sidecar-fil",
- "metadata_settings": "Metadata-inställningar",
- "metadata_settings_description": "Hantera metadata-inställningar",
+ "metadata_faces_import_setting_description": "Importera ansikten från bildens Exif-data och sidofiler",
+ "metadata_settings": "Metadatainställningar",
+ "metadata_settings_description": "Hantera metadatainställningar",
"migration_job": "Migrering",
"migration_job_description": "Migrera miniatyrbilder för objekt och ansikten till den senaste mappstrukturen",
"nightly_tasks_cluster_faces_setting_description": "Kör ansiktsigenkänning på nyligen upptäckta ansikten",
- "nightly_tasks_cluster_new_faces_setting": "Kluster nya ansikten",
- "nightly_tasks_database_cleanup_setting": "Uppgifter för databassanering",
- "nightly_tasks_database_cleanup_setting_description": "Rensa bort gammal, utgången data från databasen",
+ "nightly_tasks_cluster_new_faces_setting": "Gruppera nya ansikten",
+ "nightly_tasks_database_cleanup_setting": "Databasrensning",
+ "nightly_tasks_database_cleanup_setting_description": "Rensa gamla och utgångna data från databasen",
"nightly_tasks_generate_memories_setting": "Generera minnen",
"nightly_tasks_generate_memories_setting_description": "Skapa nya minnen från objekt",
"nightly_tasks_missing_thumbnails_setting": "Generera saknade miniatyrbilder",
@@ -252,63 +267,63 @@
"nightly_tasks_settings_description": "Hantera nattliga uppgifter",
"nightly_tasks_start_time_setting": "Starttid",
"nightly_tasks_start_time_setting_description": "Tidpunkten då servern börjar köra de nattliga uppgifterna",
- "nightly_tasks_sync_quota_usage_setting": "Synkroniseringskvotanvändning",
- "nightly_tasks_sync_quota_usage_setting_description": "Uppdatera användarlagringskvot baserat på aktuell användning",
- "no_paths_added": "Inga vägar tillagda",
- "no_pattern_added": "Inga mönster tillagda",
+ "nightly_tasks_sync_quota_usage_setting": "Synkronisera kvotanvändning",
+ "nightly_tasks_sync_quota_usage_setting_description": "Uppdatera användarens lagringskvot utifrån den aktuella användningen",
+ "no_paths_added": "Inga sökvägar har lagts till",
+ "no_pattern_added": "Inga mönster har lagts till",
"note_apply_storage_label_previous_assets": "Obs: Om du vill använda lagringsetiketten på tidigare uppladdade objekt, kör du",
"note_cannot_be_changed_later": "OBS: Detta kan inte ändras i efterhand!",
- "notification_email_from_address": "Från adress",
- "notification_email_from_address_description": "Avsändarens e-post, till exempel: \"Immich Fotoserver \". Säkerställ att du använder en adress som du har tillåtelse att skicka e-post från.",
- "notification_email_host_description": "Värd för epostservern (t.ex. smtp.immich.app)",
+ "notification_email_from_address": "Avsändaradress",
+ "notification_email_from_address_description": "Avsändarens e-postadress, exempelvis \"Immich Photo Server \". Använd en adress som du har rätt att skicka e-post från.",
+ "notification_email_host_description": "E-postserverns värdnamn (t.ex. smtp.immich.app)",
"notification_email_ignore_certificate_errors": "Ignorera certifikatfel",
- "notification_email_ignore_certificate_errors_description": "Ignorera valideringsfel för TLS-certifikat (rekommenderas ej)",
- "notification_email_password_description": "Lösenord att använda för att verifiera identitet med epostservern",
- "notification_email_port_description": "Port på epostservern (t.ex. 25, 465 eller 587)",
+ "notification_email_ignore_certificate_errors_description": "Ignorera valideringsfel för TLS-certifikat (rekommenderas inte)",
+ "notification_email_password_description": "Lösenord som används vid autentisering mot e-postservern",
+ "notification_email_port_description": "E-postserverns port (t.ex. 25, 465 eller 587)",
"notification_email_secure": "SMTPS",
"notification_email_secure_description": "Använd SMTPS (SMTP över TLS)",
- "notification_email_sent_test_email_button": "Skicka test-epost och spara",
- "notification_email_setting_description": "Inställningar för att skicka epostnotiser",
- "notification_email_test_email": "Skicka test-epost",
- "notification_email_test_email_failed": "Misslyckades med att skicka test-epost, undersök dina värden",
- "notification_email_test_email_sent": "Ett testmail har skickats till {email}. Kontrollera din inkorg.",
- "notification_email_username_description": "Användarnamn att använda vid autentisering med epost-servern",
- "notification_enable_email_notifications": "Aktivera epost-notiser",
- "notification_settings": "Notisinställningar",
- "notification_settings_description": "Hantera notisinställingar, inklusive epost",
+ "notification_email_sent_test_email_button": "Skicka testmeddelande och spara",
+ "notification_email_setting_description": "Inställningar för att skicka e-postaviseringar",
+ "notification_email_test_email": "Skicka testmeddelande",
+ "notification_email_test_email_failed": "Det gick inte att skicka testmeddelandet. Kontrollera värdena",
+ "notification_email_test_email_sent": "Ett testmeddelande har skickats till {email}. Kontrollera inkorgen.",
+ "notification_email_username_description": "Användarnamn som används vid autentisering mot e-postservern",
+ "notification_enable_email_notifications": "Aktivera e-postaviseringar",
+ "notification_settings": "Aviseringsinställningar",
+ "notification_settings_description": "Hantera aviseringsinställningar, inklusive e-post",
"oauth_allow_insecure_requests": "Tillåt osäkra förfrågningar",
"oauth_allow_insecure_requests_description": "VARNING: Detta inaktiverar TLS-certifikatvalidering för OAuth-förfrågningar och kan utsätta dig för MITM-attacker.",
- "oauth_auto_launch": "Autostart",
- "oauth_auto_launch_description": "Starta OAuth-loginflödet automatiskt vid navigering till loginsidan",
- "oauth_auto_register": "Autoregistrera",
+ "oauth_auto_launch": "Starta automatiskt",
+ "oauth_auto_launch_description": "Starta OAuth-inloggningen automatiskt när inloggningssidan öppnas",
+ "oauth_auto_register": "Registrera automatiskt",
"oauth_auto_register_description": "Registrera nya användare automatiskt efter inloggning med OAuth",
"oauth_button_text": "Knapptext",
"oauth_client_secret_description": "Krävs för konfidentiell klient, eller om PKCE (Proof Key for Code Exchange) inte stöds för publik klient.",
"oauth_enable_description": "Logga in med OAuth",
- "oauth_end_session_url_description": "Omdirigera användaren till denna URI när de loggar ut.",
- "oauth_mobile_redirect_uri": "Telefonomdirigernings-URI",
- "oauth_mobile_redirect_uri_override": "Telefonomdirigerings-URI överrskridning",
- "oauth_mobile_redirect_uri_override_description": "Aktivera om OAuth-leverantören inte tillåter mobila URI:er, så som ''{callback}''",
+ "oauth_end_session_url_description": "Omdirigera användaren till denna URI vid utloggning.",
+ "oauth_mobile_redirect_uri": "Omdirigerings-URI för mobil",
+ "oauth_mobile_redirect_uri_override": "Åsidosättning av omdirigerings-URI för mobil",
+ "oauth_mobile_redirect_uri_override_description": "Aktivera när OAuth-leverantören inte tillåter en mobil URI, exempelvis ''{callback}''",
"oauth_prompt_description": "Promptparameter (t.ex. select_account, login, consent)",
"oauth_role_claim": "Rollanspråk",
- "oauth_role_claim_description": "Bevilja administratörsåtkomst automatiskt baserat på förekomsten av detta påstående. Påståendet kan innehålla antingen 'user' eller 'admin'.",
+ "oauth_role_claim_description": "Bevilja automatiskt administratörsåtkomst utifrån detta anspråk. Anspråket kan ha värdet 'user' eller 'admin'.",
"oauth_settings": "OAuth",
- "oauth_settings_description": "Hantera OAuth-logininställningar",
+ "oauth_settings_description": "Hantera inställningar för OAuth-inloggning",
"oauth_settings_more_details": "För ytterligare detaljer om denna funktion, se dokumentationen.",
- "oauth_storage_label_claim": "Användaranknuten lagringsetikett",
- "oauth_storage_label_claim_description": "Sätter automatiskt angiven användares lagringsetikett.",
- "oauth_storage_quota_claim": "Användaranknuten lagringskvot",
- "oauth_storage_quota_claim_description": "Sätter automatiskt angiven användares lagringskvot.",
+ "oauth_storage_label_claim": "Anspråk för lagringsetikett",
+ "oauth_storage_label_claim_description": "Ange automatiskt användarens lagringsetikett till värdet i detta anspråk.",
+ "oauth_storage_quota_claim": "Anspråk för lagringskvot",
+ "oauth_storage_quota_claim_description": "Ange automatiskt användarens lagringskvot till värdet i detta anspråk.",
"oauth_storage_quota_default": "Standardlagringskvot (GiB)",
- "oauth_storage_quota_default_description": "Kvot i GiB som används när ingen fordran angetts.",
- "oauth_timeout": "Begäran tog för lång tid",
- "oauth_timeout_description": "Timeout för förfrågningar i millisekunder",
+ "oauth_storage_quota_default_description": "Kvot i GiB som används när inget anspråk anges.",
+ "oauth_timeout": "Tidsgräns för begäran",
+ "oauth_timeout_description": "Tidsgräns för begäranden i millisekunder",
"ocr_job_description": "Använd maskininlärning för att känna igen text i bilder",
- "password_enable_description": "Logga in med epost och lösenord",
+ "password_enable_description": "Logga in med e-postadress och lösenord",
"password_settings": "Lösenordsinloggning",
- "password_settings_description": "Hantera inställningar för lösenords-inloggning",
+ "password_settings_description": "Hantera inställningar för lösenordsinloggning",
"paths_validated_successfully": "Samtliga sökvägar kunde bekräftas",
- "person_cleanup_job": "Person rensning",
+ "person_cleanup_job": "Personrensning",
"queue_details": "Köinformation",
"queues": "Jobbköer",
"queues_page_description": "Sida för administratörsjobbköer",
@@ -327,8 +342,8 @@
"send_welcome_email": "Skicka välkomstmail",
"server_external_domain_settings": "Extern domän",
"server_external_domain_settings_description": "Domän som används för externa länkar",
- "server_public_users": "Vanlig användare",
- "server_public_users_description": "Alla användare (namn och e-post) är listade när man lägger till en användare till ett delat album. Om inaktiverat, kommer användarlistan endast vara synlig för administratörer.",
+ "server_public_users": "Offentliga användare",
+ "server_public_users_description": "Alla användare, med namn och e-postadress, visas när en användare läggs till i ett delat album. När funktionen är inaktiverad är användarlistan endast tillgänglig för administratörer.",
"server_settings": "Serverinställningar",
"server_settings_description": "Hantera serverinställningar",
"server_stats_page_description": "Statistiksida för administratörsservern",
@@ -341,50 +356,50 @@
"smart_search_job_description": "Kör maskininlärning på objekt för att stödja smart sökning",
"storage_template_date_time_description": "Tidsstämpel för objektets skapande används för datum och tidsinformation",
"storage_template_date_time_sample": "Exempeltid {date}",
- "storage_template_enable_description": "Aktivera mallmotor för lagring",
- "storage_template_hash_verification_enabled": "Hash-verifiering aktiverat",
- "storage_template_hash_verification_enabled_description": "Aktiverar hash-verifiering, deaktiviera inte om du inte är säker på implikationerna",
- "storage_template_migration": "Migrering av Lagringsmallar",
- "storage_template_migration_description": "Applicera aktiv {template} till tidigare uppladdade objekt",
- "storage_template_migration_info": "Lagringsmallen kommer att konvertera alla filändelser till gemener. Ändringar gäller endast för nya objekt. För att retoaktivt tillämpa mallen på befintliga objekt, kör {job}.",
- "storage_template_migration_job": "Lagringsmall migreringsjobb",
- "storage_template_more_details": "För mer information om den här funktionen se Lagringsmall och dess konsekvenser",
- "storage_template_onboarding_description_v2": "Denna funktion kommer när den är aktiverad att auto-organisera filer baserat på en användardefinierad mall. För mer information se dokumentationen.",
- "storage_template_path_length": "Uppskattad längdbegränsning på sökväg: {length, number}/{limit, number}",
+ "storage_template_enable_description": "Aktivera motorn för lagringsmallar",
+ "storage_template_hash_verification_enabled": "Hashverifiering aktiverad",
+ "storage_template_hash_verification_enabled_description": "Aktiverar hashverifiering. Inaktivera inte funktionen om du inte är säker på konsekvenserna",
+ "storage_template_migration": "Migrering av lagringsmall",
+ "storage_template_migration_description": "Tillämpa den aktuella {template} på tidigare uppladdade objekt",
+ "storage_template_migration_info": "Lagringsmallen konverterar alla filändelser till gemener. Malländringar gäller endast nya objekt. Kör {job} för att tillämpa mallen retroaktivt på tidigare uppladdade objekt.",
+ "storage_template_migration_job": "Migreringsjobb för lagringsmall",
+ "storage_template_more_details": "Mer information om den här funktionen finns under Lagringsmall och konsekvenser",
+ "storage_template_onboarding_description_v2": "När funktionen är aktiverad ordnas filer automatiskt utifrån en användardefinierad mall. Mer information finns i dokumentationen.",
+ "storage_template_path_length": "Ungefärlig gräns för sökvägens längd: {length, number}/{limit, number}",
"storage_template_settings": "Lagringsmall",
"storage_template_settings_description": "Hantera mappstruktur och filnamn för uppladdade objekt",
- "storage_template_user_label": "{label} är användarens lagringsmärkning",
+ "storage_template_user_label": "{label} är användarens lagringsetikett",
"system_settings": "Systeminställningar",
- "tag_cleanup_job": "Markera för rensning",
+ "tag_cleanup_job": "Taggrensning",
"template_email_available_tags": "Du kan använda följande variablar i din mall: {tags}",
- "template_email_if_empty": "Om mallen är tom, kommer standard e-post att användas.",
- "template_email_invite_album": "Inbjudan Album Mall",
+ "template_email_if_empty": "Om mallen är tom används standardmeddelandet.",
+ "template_email_invite_album": "Mall för albuminbjudan",
"template_email_preview": "Förhandsgranskning",
- "template_email_settings": "E-post mall",
- "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",
+ "template_email_settings": "E-postmallar",
+ "template_email_update_album": "Mall för albumuppdatering",
+ "template_email_welcome": "Mall för välkomstmeddelande",
+ "template_settings": "Aviseringsmallar",
+ "template_settings_description": "Hantera anpassade aviseringsmallar",
"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": "Med CSS-formatmallar kan Immichs utseende anpassas.",
"theme_settings": "Temainställningar",
"theme_settings_description": "Hantera anpassningar av webbgränssnittet för Immich",
"thumbnail_generation_job": "Generera Miniatyrer",
"thumbnail_generation_job_description": "Generera stora, små och suddiga miniatyrer för varje objekt, samt för varje person",
"transcoding_acceleration_api": "Accelerations-API",
- "transcoding_acceleration_api_description": "API som kommer att interagera med din enhet för att accelerera omkodning. Inställning är 'best effort': vid fel kommer den att återgå till mjukvarubaserad omkodning. VP9 kan fungera eller inte, beroende på din hårdvara.",
+ "transcoding_acceleration_api_description": "Det API som kommunicerar med enheten för att accelerera omkodning. Inställningen används efter bästa förmåga och faller tillbaka på programvarubaserad omkodning vid fel. Om VP9 fungerar beror på maskinvaran.",
"transcoding_acceleration_nvenc": "NVENC (kräver NVIDIA GPU)",
- "transcoding_acceleration_qsv": "Quick Sync (kräver 7 generationens Intel CPU eller senare)",
- "transcoding_acceleration_rkmpp": "RKMPP (bara med Rockchip SOCs)",
+ "transcoding_acceleration_qsv": "Quick Sync (kräver en Intel-processor av sjunde generationen eller senare)",
+ "transcoding_acceleration_rkmpp": "RKMPP (endast för Rockchip-SoC:er)",
"transcoding_acceleration_vaapi": "VAAPI",
"transcoding_accepted_audio_codecs": "Accepterade ljud-codecs",
"transcoding_accepted_audio_codecs_description": "Välj vilka ljud-codecs som inte behöver omkodas. Används endast för vissa omkodningspolicyer.",
"transcoding_accepted_containers": "Accepterade behållare",
- "transcoding_accepted_containers_description": "Välj vilka kontainerformat som inte behöver remuxas till MP4. Endast används för vissa transcoding-politischer.",
+ "transcoding_accepted_containers_description": "Välj vilka containerformat som inte behöver muxas om till MP4. Används endast för vissa omkodningsprinciper.",
"transcoding_accepted_video_codecs": "Accepterade video-codecs",
"transcoding_accepted_video_codecs_description": "Välj vilka video-codecs som inte behöver omkodas. Används endast för vissa omkodningspolicyer.",
"transcoding_advanced_options_description": "Val som de flesta användare inte bör behöva ändra",
- "transcoding_audio_codec": "Ljud-codec",
+ "transcoding_audio_codec": "Ljudkodek",
"transcoding_audio_codec_description": "Opus är bästa kvalitetsvalet, men är inte lika kompatibelt med äldre enheter eller mjukvara.",
"transcoding_bitrate_description": "Videor som är i högre än max bithastighet eller inte i ett accepterat format",
"transcoding_codecs_learn_more": "För att läsa mer om terminologin här se FFmpeg-dokumentationen för H.264 kodek, HEVC kodek och VP9 kodek.",
@@ -394,15 +409,15 @@
"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_encoding_options_description": "Ange kodekar, upplösning, kvalitet och andra alternativ för kodade videor",
"transcoding_hardware_acceleration": "Hårdvaruacceleration",
"transcoding_hardware_acceleration_description": "Experimentell: snabbare transkodning men kan minska kvaliteten vid samma bithastighet",
"transcoding_hardware_decoding": "Hårdvaruavkodning",
- "transcoding_hardware_decoding_setting_description": "Aktiverar end-to-end accelerering i stället för endast kodningsacceleration. Fungerar inte med alla videor.",
+ "transcoding_hardware_decoding_setting_description": "Aktiverar acceleration i hela bearbetningskedjan i stället för att endast accelerera kodningen. Fungerar kanske inte med alla videor.",
"transcoding_max_b_frames": "Max B-ramar",
- "transcoding_max_b_frames_description": "Högre värden förbättrar kompressionseffektiviteten, men saktar ner kodningen. Kan vara inkompatibel med hårdvaruacceleration på äldre enheter. 0 avaktiverar B-frames, medan -1 anger detta värde automatiskt.",
+ "transcoding_max_b_frames_description": "Högre värden förbättrar komprimeringseffektiviteten men gör kodningen långsammare. Kan vara inkompatibelt med maskinvaruacceleration på äldre enheter. Värdet 0 inaktiverar B-bildrutor och -1 anger värdet automatiskt.",
"transcoding_max_bitrate": "Max bithastighet",
- "transcoding_max_bitrate_description": "En maximal bitrate kan göra filstorlekar mer förutsägbara till en liten kostnad på kvalitet. Vid 720p är typiska värden 2600 kbit/s för VP9 eller HEVC, eller 4500 kbit/s för H.264. Inaktiverad om satt till 0. När ingen enhet anges så kommer k (för kbit/s) användas; därför är 5000, 5000k och 5M (för Mbit/s) likvärdiga.",
+ "transcoding_max_bitrate_description": "En högsta bithastighet gör filstorlekarna mer förutsägbara till priset av en liten kvalitetsförlust. Vid 720p är typiska värden 2600 kbit/s för VP9 eller HEVC och 4500 kbit/s för H.264. Funktionen inaktiveras med värdet 0. Om ingen enhet anges antas kbit/s, så 5000, 5000k och 5M är likvärdiga.",
"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",
@@ -410,31 +425,35 @@
"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)",
- "transcoding_preset_preset_description": "Kompressionshastighet. Långsammare preset ger mindre filer och högre kvalitet för en given bitrate. VP9 ignorerar hastigheter högre än 'faster'.",
+ "transcoding_preset_preset": "Förval (-preset)",
+ "transcoding_preset_preset_description": "Komprimeringshastighet. Långsammare förval ger mindre filer och högre kvalitet vid en viss bithastighet. VP9 ignorerar hastigheter över 'faster'.",
"transcoding_realtime": "Realtidskodning [EXPERIMENTELL]",
"transcoding_realtime_description": "Tillåter omkodning i realtid medan videon streamas. Möjliggör kvalitetsväxling, men kan orsaka högre uppspelningsfördröjning och hackning beroende på serverns kapacitet.",
"transcoding_realtime_enabled": "Aktivera realtidsomkodning",
"transcoding_realtime_enabled_description": "Om den är inaktiverad vägrar servern att starta nya realtidsomkodning sessioner i realtid.",
+ "transcoding_realtime_resolutions": "Upplösningar",
+ "transcoding_realtime_resolutions_description": "De upplösningar som erbjuds för realtidstranskodning. Högre upplösningar kan orsaka uppspelningsproblem om servern inte kan transkoda dem tillräckligt snabbt.",
+ "transcoding_realtime_video_codecs": "Videokodekar",
+ "transcoding_realtime_video_codecs_description": "De videokodekar som erbjuds för realtidstranskodning. Klienter väljer det bästa alternativet de stödjer under uppspelning. AV1 är effektivare än HEVC, som är effektivare än H.264. Vid hårdvaruacceleration ska du endast välja de kodekar som acceleratorn kan koda. Vid mjukvarutranskodning bör du tänka på att H.264 är snabbare än AV1, som är snabbare än HEVC.",
"transcoding_reference_frames": "Referensbildrutor",
"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_required_description": "Endast videor som inte har ett godkänt format",
"transcoding_settings": "Inställningar för omkodning av video",
"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",
- "transcoding_temporal_aq_description": "Gäller endast NVENC. Temporal adaptiv kvantisering ökar kvaliteten på scener med hög detaljrikedom och låg rörelse. Kan vara inkompatibel med äldre enheter.",
+ "transcoding_temporal_aq_description": "Gäller endast NVENC. Tidsadaptiv kvantisering förbättrar kvaliteten i detaljrika scener med lite rörelse. Kan vara inkompatibel med äldre enheter.",
"transcoding_threads": "Trådar",
"transcoding_threads_description": "Högre värden leder till snabbare kodning, men lämnar mindre utrymme för servern att bearbeta andra uppgifter medan den är aktiv. Detta värde bör inte vara mer än antalet CPU-kärnor. Maximerar användningen om den är inställd på 0.",
"transcoding_tone_mapping": "Ton mappning",
"transcoding_tone_mapping_description": "Försöker att bevara utseendet på HDR-videor när de konverteras till SDR. Varje algoritm gör olika avvägningar för färg, detaljer och ljusstyrka. Hable bevarar detaljer, Mobius bevarar färg och Reinhard bevarar ljusstyrkan.",
"transcoding_transcode_policy": "Omkodningspolicy",
- "transcoding_transcode_policy_description": "Policy för när en video ska omkodas. HDR-videor och videor med ett annat pixelformat än YUV 4:2:0 kommer alltid att omkodas (förutom om omkodning är inaktiverad).",
+ "transcoding_transcode_policy_description": "Princip för när en video ska kodas om. HDR-videor och videor med ett annat pixelformat än YUV 4:2:0 kodas alltid om, utom när 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_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.",
+ "transcoding_two_pass_encoding_setting_description": "Koda om i två pass för att skapa bättre kodade videor. När högsta bithastighet är aktiverad, vilket krävs för H.264 och HEVC, använder läget ett bithastighetsintervall baserat på den högsta bithastigheten och ignorerar CRF. För VP9 kan CRF användas när högsta bithastighet är inaktiverad.",
+ "transcoding_video_codec": "Videokodek",
+ "transcoding_video_codec_description": "VP9 är effektivt och har god webbkompatibilitet men tar längre tid att koda om. HEVC fungerar på liknande sätt men har sämre webbkompatibilitet. H.264 har bred kompatibilitet och kodas om snabbt men ger betydligt större filer. AV1 är den effektivaste kodeken men stöds inte av alla äldre enheter.",
"trash_enabled_description": "Aktivera papperskorgen",
"trash_number_of_days": "Antal dagar",
"trash_number_of_days_description": "Antal dagar att förvara objekten i papperskorgen innan de tas bort permanent",
@@ -444,10 +463,10 @@
"unlink_all_oauth_accounts_description": "Kom ihåg att ta bort länken till alla OAuth-konton innan du migrerar till en ny leverantör.",
"unlink_all_oauth_accounts_prompt": "Är du säker på att du vill ta bort länken till alla OAuth-konton? Detta återställer OAuth-ID:t för varje användare och kan inte ångras.",
"user_cleanup_job": "Användarrensning",
- "user_delete_delay": "{user}'s konto och objekt kommer att schemaläggas för permanent radering om {delay, plural, one {# dag} other {# dagar}}.",
+ "user_delete_delay": "{user}s konto och objekt schemaläggs för permanent borttagning om {delay, plural, one {# day} other {# days}}.",
"user_delete_delay_settings": "Borttagningsfördröjning",
"user_delete_delay_settings_description": "Antal dagar efter borttagning för att permanent radera en användares konto och objekt. Arbetet med borttagning av användare körs vid midnatt för att söka efter användare som är redo för radering. Ändringar av denna inställning kommer att utvärderas vid nästa körning.",
- "user_delete_immediately": "{user}'s konto och objekt kommer att stå i kö för omedelbar permanent radering.",
+ "user_delete_immediately": "{user}s konto och objekt köplaceras för omedelbar permanent borttagning.",
"user_delete_immediately_checkbox": "Köa användare och objekt för omedelbar radering",
"user_details": "Användardetaljer",
"user_management": "Användarhantering",
@@ -464,12 +483,12 @@
"version_check_enabled_description": "Aktivera versionskontroll",
"version_check_implications": "Funktionen för versionskontroll är beroende av periodisk kommunikation med {server}",
"version_check_settings": "Versionskontroll",
- "version_check_settings_description": "Aktivera/inaktivera notis om ny version",
+ "version_check_settings_description": "Aktivera eller inaktivera aviseringar om nya versioner",
"video_conversion_job": "Omkoda videor",
"video_conversion_job_description": "Koda om videor för bredare kompatibilitet med webbläsare och enheter"
},
"admin_email": "E-postadress för administratör",
- "admin_password": "Admin Lösenord",
+ "admin_password": "Administratörslösenord",
"administration": "Administration",
"advanced": "Avancerat",
"advanced_settings_clear_image_cache": "Rensa bild-cache",
@@ -530,10 +549,10 @@
"always_keep": "Behåll alltid",
"always_keep_photos_hint": "Frigör utrymme behåller alla foton på den här enheten.",
"always_keep_videos_hint": "Frigör utrymme behåller alla videor på den här enheten.",
- "api_key": "API Nyckel",
+ "api_key": "API-nyckel",
"api_key_description": "Detta värde kommer bara att visas en gång. Se till att kopiera det innan du stänger fönstret.",
"api_key_empty": "Ditt API-nyckelnamn ska inte vara tomt",
- "api_keys": "API-Nycklar",
+ "api_keys": "API-nycklar",
"app_architecture_variant": "Variant (Arkitektur)",
"app_bar_signout_dialog_content": "Är du säker på att du vill logga ut?",
"app_bar_signout_dialog_title": "Logga ut",
@@ -578,17 +597,18 @@
"asset_viewer_settings_title": "Objektvisare",
"assets": "Objekt",
"assets_added_to_album_count": "Lade till {count, plural, one {# objekt} other {# objekt}} i albumet",
- "assets_added_to_albums_count": "Lade till {assetTotal, plural, one {# objekt} other {# objekt}} till {albumTotal, plural, one {# album} other {# album}}",
- "assets_cannot_be_added_to_album_count": "{count, plural, one {Objekt} other {Objekt}} kan inte läggas till i albumet",
- "assets_cannot_be_added_to_albums": "{count, plural, one {Objekt} other {Objekt}} kan inte läggas till i något av albumen",
+ "assets_added_to_album_partial_count": "Lade till {successCount} av {totalCount} {totalCount, plural, one {objekt} other {objekt}} i albumet",
+ "assets_added_to_albums_count": "Lade till {assetTotal, plural, one {# objekt} other {# objekt}} i {albumTotal, plural, one {# album} other {# album}}",
+ "assets_cannot_be_added_to_album_count": "{count, plural, one {Objektet} other {Objekten}} kan inte läggas till i albumet",
+ "assets_cannot_be_added_to_albums": "{count, plural, one {Objektet} other {Objekten}} kan inte läggas till i något av albumen",
"assets_count": "{count, plural, one {# objekt} other {# objekt}}",
"assets_moved_to_trash_count": "Flyttade {count, plural, one {# objekt} other {# objekt}} till papperskorgen",
- "assets_permanently_deleted_count": "{count, plural, one {# objekt} other {# objekt}} permanent raderade",
+ "assets_permanently_deleted_count": "Tog bort {count, plural, one {# objekt} other {# objekt}} permanent",
"assets_removed_count": "Tog bort {count, plural, one {# objekt} other {# objekt}}",
"assets_restore_confirmation": "Är du säker på att du vill återställa alla dina slängda objekt? Du kan inte ångra den här åtgärden! Observera att offlineobjekt inte kan återställas på detta sätt.",
"assets_restored_count": "Återställde {count, plural, one {# objekt} other {# objekt}}",
- "assets_trashed": "{count, plural, one {# objekt} other {# objekt}} {count, plural, one {flyttad} other {flyttade}} till papperskorgen",
- "assets_trashed_count": "{count, plural, one {# objekt} other {# objekt}} {count, plural, one {flyttad} other {flyttade}} till papperskorgen",
+ "assets_trashed": "{count} objekt flyttades till papperskorgen",
+ "assets_trashed_count": "{count, plural, one {# objekt flyttades} other {# objekt flyttades}} till papperskorgen",
"assets_were_part_of_album_count": "{count, plural, one {Objektet} other {Objekten}} tillhör redan albumet",
"assets_were_part_of_albums_count": "{count, plural, one {Objektet} other {Objekten}} tillhör redan albumen",
"authorized_devices": "Auktoriserade enheter",
@@ -686,9 +706,9 @@
"city": "Stad",
"cleanup_confirm_description": "Immich hittade {count} objekt (skapade före {date}) som säkerhetskopierats säkert till servern. Ta bort de lokala kopiorna från den här enheten?",
"cleanup_confirm_prompt_title": "Ta bort från den här enheten?",
- "cleanup_deleted_assets": "Flyttade {count, plural, one {# objekt} other {# objekt}} till enhetens papperskorg",
+ "cleanup_deleted_assets": "Flyttade {count} objekt till enhetens papperskorg",
"cleanup_deleting": "Flyttar till papperskorg...",
- "cleanup_found_assets": "Hittade {count} {count, plural, one {säkerhetskopierat objekt} other {säkerhetskopierade objekt}}",
+ "cleanup_found_assets": "Hittade {count} säkerhetskopierade objekt",
"cleanup_found_assets_with_size": "Hittade {count} säkerhetskopierade objekt ({size})",
"cleanup_icloud_shared_albums_excluded": "iCloud delade album exkluderas från skanningen",
"cleanup_no_assets_found": "Inga objekt hittades som matchar kriterierna ovan. Frigör Utrymme kan bara ta bort objekt som har säkerhetskopierats till servern",
@@ -723,7 +743,7 @@
"command_palette_to_show_all": "för att visa alla",
"comment_deleted": "Kommentar raderad",
"comment_options": "Kommentarsalternativ",
- "comments_and_likes": "Kommentarer & likes",
+ "comments_and_likes": "Kommentarer och gillamarkeringar",
"comments_are_disabled": "Kommentarer är avstängda",
"common_create_new_album": "Skapa ett nytt album",
"completed": "Klar",
@@ -794,7 +814,6 @@
"custom_date": "Anpassat datum",
"custom_locale": "Anpassad språkinställning",
"custom_locale_description": "Formatera datum, tider och siffror baserat på valt språk och region",
- "custom_url": "Anpassad URL",
"cutoff_date_description": "Behåll bilder från…",
"cutoff_day": "{count, plural, one {dag} other {dagar}}",
"cutoff_year": "{count, plural, one {år} other {år}}",
@@ -911,13 +930,13 @@
"editor_edits_applied_success": "Redigeringarna har tillämpats framgångsrikt",
"editor_flip_horizontal": "Vänd horisontellt",
"editor_flip_vertical": "Vänd vertikalt",
- "editor_handle_corner": "{corner, select, top_left {Övre vänstra} top_right {Övre högra} bottom_left {Nedre vänstra} bottom_right {Nedre högra} other {A}} hörn handtag",
- "editor_handle_edge": "{edge, select, top {Övre} bottom {Nedre} left {Vänster} right {Höger} other {En}} hörnhandtag",
+ "editor_handle_corner": "{corner, select, top_left {Övre vänstra} top_right {Övre högra} bottom_left {Nedre vänstra} bottom_right {Nedre högra} other {Ett}} hörnhandtag",
+ "editor_handle_edge": "{edge, select, top {Övre} bottom {Nedre} left {Vänster} right {Höger} other {Ett}} kanthandtag",
"editor_orientation": "Orientering",
"editor_reset_all_changes": "Återställ ändringar",
"editor_rotate_left": "Rotera 90° moturs",
"editor_rotate_right": "Rotera 90° medurs",
- "email": "Epost",
+ "email": "E-post",
"email_notifications": "E-postaviseringar",
"empty_folder": "Mappen är tom",
"empty_trash": "Töm papperskorg",
@@ -967,7 +986,7 @@
"failed_to_keep_this_delete_others": "Misslyckades att behålla detta objekt och radera övriga objekt",
"failed_to_load_asset": "Det gick inte att ladda objekt",
"failed_to_load_assets": "Det gick inte att ladda objekten",
- "failed_to_load_notifications": "Misslyckades med att ladda notifikationer",
+ "failed_to_load_notifications": "Det gick inte att läsa in aviseringar",
"failed_to_load_people": "Det gick inte att ladda personer",
"failed_to_remove_product_key": "Det gick inte att ta bort produktnyckeln",
"failed_to_reset_pin_code": "Misslyckades med att återställa PIN-koden",
@@ -988,15 +1007,15 @@
"unable_to_add_exclusion_pattern": "Det gick inte att lägga till uteslutningsmönster",
"unable_to_add_partners": "Kunde inte lägga till partners",
"unable_to_add_remove_archive": "Det går inte att {archived, select, true {ta bort objekt från} other {lägga till objekt till}} arkiv",
- "unable_to_add_remove_favorites": "Det går inte att {favorite, select, true {add asset to} other {remove asset from}} favoriter",
- "unable_to_archive_unarchive": "Det går inte att {archived, select, true {archive} other {archive}}",
+ "unable_to_add_remove_favorites": "Det går inte att {favorite, select, true {lägga till objektet i} other {ta bort objektet från}} favoriter",
+ "unable_to_archive_unarchive": "Det går inte att {archived, select, true {arkivera} other {ta bort från arkivet}}",
"unable_to_change_album_user_role": "Kunde inte ändra albumanvändarens roll",
"unable_to_change_date": "Kunde inte ändra datum",
"unable_to_change_description": "Kunde inte ändra beskrivning",
"unable_to_change_favorite": "Det går inte att ändra favorit för objekt",
"unable_to_change_location": "Kunde inte ändra plats",
"unable_to_change_password": "Det går inte att ändra lösenord",
- "unable_to_change_visibility": "Det gick inte att ändra synligheten för {count, plural, one {# person} other {# people}}",
+ "unable_to_change_visibility": "Det gick inte att ändra synligheten för {count, plural, one {# person} other {# personer}}",
"unable_to_complete_oauth_login": "Det gick inte att slutföra OAuth-inloggning",
"unable_to_connect": "Det går inte att ansluta",
"unable_to_copy_to_clipboard": "Kan inte kopiera till urklipp, se till att du kommer åt sidan via https",
@@ -1026,11 +1045,11 @@
"unable_to_log_out_device": "Det gick inte att logga ut enheten",
"unable_to_login_with_oauth": "Det gick inte att logga in med OAuth",
"unable_to_play_video": "Kunde inte spela upp video",
- "unable_to_reassign_assets_existing_person": "Det går inte att tilldela objekt till {name, select, null {an existing person} other {{name}}}",
+ "unable_to_reassign_assets_existing_person": "Det går inte att tilldela objekten till {name, select, null {en befintlig person} other {{name}}}",
"unable_to_reassign_assets_new_person": "Kunde inte tilldela objekt till en annan person",
"unable_to_refresh_user": "Kunde inte ladda om användaren",
"unable_to_remove_album_users": "Kunde inte ta bort personen från albumet",
- "unable_to_remove_api_key": "Det gick inte att ta bort API Keyet",
+ "unable_to_remove_api_key": "Det gick inte att ta bort API-nyckeln",
"unable_to_remove_assets_from_shared_link": "Kunde inte ta bort objekt från delade länkar",
"unable_to_remove_library": "Kunde inte ta bort bibliotek",
"unable_to_remove_partner": "Kunde inte ta bort partner",
@@ -1042,7 +1061,7 @@
"unable_to_restore_trash": "Det gick inte att återställa papperskorgen",
"unable_to_restore_user": "Kunde inte återställa användare",
"unable_to_save_album": "Kunde inte spara album",
- "unable_to_save_api_key": "Det går inte att spara API Nyckel",
+ "unable_to_save_api_key": "Det gick inte att spara API-nyckeln",
"unable_to_save_date_of_birth": "Det går inte att spara födelsedatum",
"unable_to_save_name": "Kunde inte spara namn",
"unable_to_save_profile": "Kunde inte spara profil",
@@ -1149,12 +1168,12 @@
"group_owner": "Grupper efter ägare",
"group_places_by": "Gruppera platser efter…",
"group_year": "Gruppera efter årtal",
- "haptic_feedback_title": "Haptisk Feedback",
+ "haptic_feedback_title": "Haptisk återkoppling",
"has_quota": "Har kvot",
"hash_asset": "Hash-objekt",
"hashed_assets": "Hashade-objekt",
"hashing": "Hashning",
- "header_settings_add_header_tip": "Lägg till header",
+ "header_settings_add_header_tip": "Lägg till rubrik",
"header_settings_field_validator_msg": "Värdet kan inte vara tomt",
"header_settings_header_name_input": "Header-namn",
"header_settings_header_value_input": "Header-värde",
@@ -1176,21 +1195,21 @@
"id": "ID",
"idle": "Inaktiv",
"image": "Bild",
- "image_alt_text_date": "{isVideo, select, true {Video} other {Bild}} tagen {date}",
- "image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Image}} tagen med {person1} den {date}",
- "image_alt_text_date_2_people": "{isVideo, select, true {Video} other {Image}} tagen med {person1} och {person2} den {date}",
- "image_alt_text_date_3_people": "{isVideo, select, true {Video} other {Image}} tagen med {person1}, {person2}, och {person3} den {date}",
- "image_alt_text_date_4_or_more_people": "{isVideo, select, true {Video} other {Image}} tagen med {person1}, {person2}, och {additionalCount, number} andra den {date}",
- "image_alt_text_date_place": "{isVideo, select, true {Video} other {Image}} tagen i {city}, {country} den {date}",
- "image_alt_text_date_place_1_person": "{isVideo, select, true {Video} other {Image}} tagen i {city}, {country} med {person1} den {date}",
- "image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Image}} tagen i {city}, {country} med {person1} och {person2} den {date}",
- "image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} tagen i {city}, {country} med {person1}, {person2}, och {person3} den {date}",
- "image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} tagen i {city}, {country} med {person1}, {person2}, och {additionalCount, number} andre den {date}",
+ "image_alt_text_date": "{isVideo, select, true {Video} other {Bild}} tagen den {date}",
+ "image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Bild}} tagen med {person1} den {date}",
+ "image_alt_text_date_2_people": "{isVideo, select, true {Video} other {Bild}} tagen med {person1} och {person2} den {date}",
+ "image_alt_text_date_3_people": "{isVideo, select, true {Video} other {Bild}} tagen med {person1}, {person2} och {person3} den {date}",
+ "image_alt_text_date_4_or_more_people": "{isVideo, select, true {Video} other {Bild}} tagen med {person1}, {person2} och {additionalCount, number} andra den {date}",
+ "image_alt_text_date_place": "{isVideo, select, true {Video} other {Bild}} tagen i {city}, {country} den {date}",
+ "image_alt_text_date_place_1_person": "{isVideo, select, true {Video} other {Bild}} tagen i {city}, {country} med {person1} den {date}",
+ "image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Bild}} tagen i {city}, {country} med {person1} och {person2} den {date}",
+ "image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Bild}} tagen i {city}, {country} med {person1}, {person2} och {person3} den {date}",
+ "image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Bild}} tagen i {city}, {country} med {person1}, {person2} och {additionalCount, number} andra den {date}",
"immich_logo": "Immich-logga",
"immich_web_interface": "Immich Web gränssnitt",
"import_from_json": "Importera från JSON",
"import_path": "Importsökväg",
- "in_albums": "I {count, plural, one {# album} other {# albums}}",
+ "in_albums": "I {count, plural, one {# album} other {# album}}",
"in_archive": "I arkivet",
"in_year": "I {year}",
"in_year_selector": "In",
@@ -1224,7 +1243,7 @@
"keep_on_device_hint": "Välj objekt som ska behållas på denna enhet",
"keep_this_delete_others": "Behåll denna, radera övriga",
"keeping": "Behåller: {items}",
- "kept_this_deleted_others": "Behåll detta objekt och borttagna {count, plural, one {# objekt} other {# objekt}}",
+ "kept_this_deleted_others": "Behöll det här objektet och tog bort {count, plural, one {# objekt} other {# objekt}}",
"keyboard_shortcuts": "Kortkommandon",
"language": "Språk",
"language_no_results_subtitle": "Försök att justera ditt sökord",
@@ -1294,18 +1313,18 @@
"login_form_email_hint": "din.email@email.com",
"login_form_endpoint_hint": "http://din-server-ip:port",
"login_form_endpoint_url": "Slutpunkt-URL för server",
- "login_form_err_invalid_email": "Ogiltig email",
+ "login_form_err_invalid_email": "Ogiltig e-postadress",
"login_form_err_invalid_url": "Ogiltig webbadress",
"login_form_err_leading_whitespace": "Mellanrum före",
"login_form_err_trailing_whitespace": "Mellanrum efter",
"login_form_failed_get_oauth_server_config": "Kunde inte logga in med OAuth. Kontrollera serverns webbadress",
"login_form_failed_get_oauth_server_disable": "OAuth är inte tillgänglig på den här servern",
- "login_form_failed_login": "Kunde inte logga in. Kontrollera serverns webbadress, email och lösenord",
+ "login_form_failed_login": "Det gick inte att logga in. Kontrollera serverns URL, e-postadress och lösenord",
"login_form_handshake_exception": "Ett Undantag vid Handskakning med servern har skett. Aktivera stöd för självsignerade certifikat i inställningar om du använder ett självsignerat certifikat.",
"login_form_password_hint": "lösenord",
- "login_form_server_empty": "Ange en server-URL.",
- "login_form_server_error": "Kunde inte ansluta till servern.",
- "login_has_been_disabled": "Inloggning har blivit inaktiverat.",
+ "login_form_server_empty": "Ange en server-URL",
+ "login_form_server_error": "Kunde inte ansluta till servern",
+ "login_has_been_disabled": "Inloggning har blivit inaktiverat",
"login_password_changed_error": "Ett fel uppstod vid uppdatering av ditt lösenord",
"login_password_changed_success": "Uppdatering av lösenord lyckades",
"logout_all_device_confirmation": "Är du säker på att du vill logga ut från alla enheter?",
@@ -1367,7 +1386,7 @@
"map_settings_date_range_option_year": "Senaste året",
"map_settings_date_range_option_years": "Senaste {years} åren",
"map_settings_include_show_archived": "Inkludera Arkiverade",
- "map_settings_include_show_partners": "Inkludera Partners",
+ "map_settings_include_show_partners": "Inkludera partner",
"map_settings_only_show_favorites": "Visa Endast Favoriter",
"map_settings_theme_settings": "Kart-tema",
"mark_all_as_read": "Markera alla som lästa",
@@ -1386,7 +1405,7 @@
"exit_fullscreen_mode": "Avsluta helskärmsläge",
"loop": "Slinga",
"media_error_description": "Ett mediefel orsakade att uppspelningen avbröts. Mediet kan vara skadat eller så stöder inte din webbläsare det här formatet.",
- "media_loading": "media laddar",
+ "media_loading": "Media läses in",
"mute": "Tysta",
"network_error": "Nätverksfel",
"network_error_description": "Ett nätverksfel orsakade att medianedladdningen misslyckades.",
@@ -1419,9 +1438,9 @@
"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}}",
+ "merge_people_prompt": "Vill du sammanfoga de här personerna? Åtgärden kan inte ångras.",
+ "merge_people_successfully": "Personerna har sammanfogats",
+ "merged_people_count": "Sammanfogade {count, plural, one {# person} other {# personer}}",
"minFaces": "Minimiantal ansikten",
"minFaces_description": "Minimiantal erkända ansikten för att en person ska visas",
"minimize": "Minimera",
@@ -1461,6 +1480,7 @@
"never": "aldrig",
"new_album": "Nytt album",
"new_api_key": "Ny API-nyckel",
+ "new_feature": "Ny funktion",
"new_password": "Nytt lösenord",
"new_person": "Ny person",
"new_pin_code": "Ny PIN-kod",
@@ -1484,7 +1504,7 @@
"no_checksum_remote": "Ingen kontrollsumma tillgänglig - kan inte hämta fjärrobjekt",
"no_devices": "Inga auktoriserade enheter",
"no_duplicates_found": "Inga dubbletter hittades.",
- "no_exif_info_available": "Exif-information ej tillgänglig",
+ "no_exif_info_available": "Ingen Exif-information 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",
@@ -1492,7 +1512,7 @@
"no_locked_photos_message": "Foton och videor i den låsta mappen är dolda och visas inte när du bläddrar eller söker i ditt bibliotek.",
"no_name": "Inget namn",
"no_notifications": "Inga aviseringar",
- "no_people_found": "Inga matchande personer hittade",
+ "no_people_found": "Inga matchande personer hittades",
"no_places": "Inga platser",
"no_remote_assets_found": "Inga fjärrobjekt hittades med denna kontrollsumma",
"no_results": "Inga resultat",
@@ -1503,21 +1523,27 @@
"not_allowed": "Inte tillåten",
"not_available": "N/A",
"not_in_any_album": "Inte i något album",
- "not_selected": "Ej vald",
+ "not_selected": "Inte vald",
+ "not_set": "Inte angiven",
"notes": "Notera",
"nothing_here_yet": "Inget här ännu",
"notification_backup_reliability": "Aktivera aviseringar för att förbättra säkerhetskopieringen i bakgrunden",
- "notification_permission_dialog_content": "För att aktivera notiser, gå till Inställningar och välj tillåt.",
- "notification_permission_list_tile_content": "Tillåt rättighet för att slå på notiser.",
- "notification_permission_list_tile_enable_button": "Aktivera Notiser",
- "notification_permission_list_tile_title": "Notisrättighet",
+ "notification_enabled_list_tile_content": "Immich använder aviseringar för säkerhetskopiering i bakgrunden. Hantera dem i enhetens inställningar.",
+ "notification_enabled_list_tile_open_button": "Öppna inställningar",
+ "notification_enabled_list_tile_title": "Aviseringar aktiverade",
+ "notification_permission_dialog_content": "Gå till Inställningar och tillåt aviseringar för att aktivera dem.",
+ "notification_permission_list_tile_content": "Ge behörighet att visa aviseringar.",
+ "notification_permission_list_tile_enable_button": "Aktivera aviseringar",
+ "notification_permission_list_tile_title": "Behörighet för aviseringar",
"notification_toggle_setting_description": "Aktivera e-postaviseringar",
- "notifications": "Notifikationer",
+ "notifications": "Aviseringar",
"notifications_setting_description": "Hantera aviseringar",
"oauth": "OAuth",
"obtainium_configurator": "Obtainium-konfigurator",
"obtainium_configurator_instructions": "Använd Obtainium för att installera och uppdatera Android-appen direkt från Immichs GitHub-version. Skapa en API-nyckel och välj en variant för att skapa din Obtainium-konfigurationslänk",
"ocr": "OCR",
+ "ocr_body": "Immich läser nu text inuti dina foton, så att du kan söka efter dem utifrån vad de säger.",
+ "ocr_title": "Sök text i dina foton",
"official_immich_resources": "Officiella Immich-resurser",
"offline": "Frånkopplad",
"offset": "Förskjutning",
@@ -1536,8 +1562,10 @@
"open": "Öppen",
"open_calendar": "Öppna kalender",
"open_in_browser": "Öppna i webbläsare",
+ "open_in_immich_body": "Ställ in Immich som ditt galleri på Android för att öppna foton direkt från andra appar.",
+ "open_in_immich_title": "Öppna foton i Immich",
"open_in_map_view": "Öppna kartvy",
- "open_in_openstreetmap": "Öppna med OpenStreetMap",
+ "open_in_openstreetmap": "Öppna i OpenStreetMap",
"open_the_search_filters": "Öppna sökfilter",
"options": "Val",
"or": "eller",
@@ -1568,32 +1596,32 @@
"password_required": "Lösenord krävs",
"password_reset_success": "Lösenord återställt",
"past_durations": {
- "days": "Senaste {days, plural, one {day} other {# days}}",
- "hours": "Senaste {hours, plural, one {hour} other {# hours}}",
- "years": "Senaste {years, plural, one {year} other {# years}}"
+ "days": "Senaste {days, plural, one {dagen} other {# dagarna}}",
+ "hours": "Senaste {hours, plural, one {timmen} other {# timmarna}}",
+ "years": "Senaste {years, plural, one {året} other {# åren}}"
},
"path": "Sökväg",
"pattern": "Mönster",
- "pause": "Pause",
+ "pause": "Pausa",
"pause_memories": "Pausa minnen",
"paused": "Pausad",
"pending": "Väntande",
"people": "Personer",
- "people_edits_count": "Redigerad {count, plural, one {# person} other {# personer}}",
+ "people_edits_count": "Redigerade {count, plural, one {# person} other {# personer}}",
"people_feature_description": "Visar foton och videor grupperade efter personer",
"permanent_deletion_warning": "Varning om permanent radering",
"permanent_deletion_warning_setting_description": "Visa en varning när objekt raderas permanent",
"permanently_delete": "Radera permanent",
- "permanently_delete_assets_count": "Radera {count, plural, one {asset} other {assets}} permanent",
- "permanently_delete_assets_prompt": "Är du säker på att du permanent vill ta bort {count, plural, one {denna fil?} other{these # filer?}} Detta kommer också ta bort {count, plural, one {dem från } other{them from their}} album.",
+ "permanently_delete_assets_count": "Ta bort {count, plural, one {objektet} other {objekten}} permanent",
+ "permanently_delete_assets_prompt": "Är du säker på att du vill ta bort {count, plural, one {det här objektet permanent?} other {de här # objekten permanent?}} Då tas {count, plural, one {det även bort från sitt} other {de även bort från sina}} album.",
"permanently_deleted_asset": "Permanent raderat objekt",
- "permanently_deleted_assets_count": "Permanent borttagning av {count, plural, one {# asset} other {# assets}}",
+ "permanently_deleted_assets_count": "Tog bort {count, plural, one {# objekt} other {# objekt}} permanent",
"permission": "Behörigheter",
"permission_empty": "Dina behörighet kan inte vara blankt",
"person": "Person",
"person_age_months": "{months, plural, one {# månad} other {# månader}} gammal",
"person_age_year_months": "1 år, {months, plural, one {# månad} other {# månader}} gammal",
- "person_age_years": "{years, plural, other {# år}} gammal",
+ "person_age_years": "{years, plural, one {# år gammal} other {# år gammal}}",
"person_birthdate": "Född {date}",
"person_hidden": "{name}{hidden, select, true { (dold)} other {}}",
"person_recognized": "Person igenkänd",
@@ -1680,21 +1708,24 @@
"rate_asset": "Betygsätt materialet",
"rating": "Antal stjärnor",
"rating_clear": "Ta bort betyg",
- "rating_count": "{count, plural, =0 {Ej betygsatt} one {# stjärna} other {# stjärnor}}",
- "rating_description": "Visa EXIF betyget i informationspanelen",
+ "rating_count": "{count, plural, =0 {Inte betygsatt} one {# stjärna} other {# stjärnor}}",
+ "rating_description": "Visa Exif-betyget i informationspanelen",
"reaction_options": "Alternativ för reaktion",
"read_changelog": "Läs ändringslogg",
"readonly_mode_disabled": "Skrivskyddat läge inaktiverat",
"readonly_mode_enabled": "Skrivskyddat läge aktiverat",
"ready_for_upload": "Redo för uppladdning",
"reassign": "Omfördela",
- "reassigned_assets_to_existing_person": "Tilldelade om {count, plural, one {# objekt} other {# objekt}} till {name, select, null {an existing person} other {{name}}}",
- "reassigned_assets_to_new_person": "Tilldelade om {count, plural, one {# objekt} other {# objekt}} till en ny persson",
+ "reassigned_assets_to_existing_person": "Tilldelade om {count, plural, one {# objekt} other {# objekt}} till {name, select, null {en befintlig person} other {{name}}}",
+ "reassigned_assets_to_new_person": "Tilldelade om {count, plural, one {# objekt} other {# objekt}} till en ny person",
"reassing_hint": "Tilldela valda objekt till en befintlig person",
"recent": "Nyligen",
"recent_searches": "Senaste sökningar",
"recently_added": "Nyligen tillagda",
+ "recently_added_body": "Hoppa direkt till allt du har lagt till nyligen på en dedikerad sida.",
+ "recently_added_description": "Bläddra bland dina objekt sorterade efter när de laddades upp till Immich",
"recently_added_page_title": "Nyligen tillagda",
+ "recently_added_title": "Nyligen tillagda",
"recently_taken": "Nyligen tagna",
"refresh": "Ladda om",
"refresh_encoded_videos": "Ladda om kodade videor",
@@ -1710,8 +1741,8 @@
"remote_assets": "Fjärrobjekt",
"remote_media_summary": "Sammanfattning av fjärrmedia",
"remove": "Ta bort",
- "remove_assets_album_confirmation": "Är du säker på att du vill ta bort {count, plural, one {# asset} other {# assets}} från albumet?",
- "remove_assets_shared_link_confirmation": "Är du säker på att du vill ta bort {count, plural, one {# asset} other {# assets}} från denna delade länk?",
+ "remove_assets_album_confirmation": "Är du säker på att du vill ta bort {count, plural, one {# objekt} other {# objekt}} från albumet?",
+ "remove_assets_shared_link_confirmation": "Är du säker på att du vill ta bort {count, plural, one {# objekt} other {# objekt}} från den här delade länken?",
"remove_assets_title": "Ta bort filer?",
"remove_custom_date_range": "Ta bort anpassat datumintervall",
"remove_filter": "Ta bort filter",
@@ -1726,7 +1757,7 @@
"remove_photo_from_memory": "Ta bort fotot från detta minnet",
"remove_tag": "Ta bort taggen",
"remove_user": "Ta bort användare",
- "removed_api_key": "Tog bort API nyckel: {name}",
+ "removed_api_key": "Tog bort API-nyckeln: {name}",
"removed_from_archive": "Borttagen från arkivet",
"removed_from_favorites": "Borttagen från favoriter",
"removed_from_favorites_count": "{count, plural, other {Tog bort #}} från favoriter",
@@ -1800,7 +1831,7 @@
"search_filter_date": "Datum",
"search_filter_date_interval": "{start} till {end}",
"search_filter_date_title": "Välj datumintervall",
- "search_filter_display_option_not_in_album": "Ej i album",
+ "search_filter_display_option_not_in_album": "Inte i något album",
"search_filter_display_options": "Visningsalternativ",
"search_filter_filename": "Sök på filnamn",
"search_filter_location": "Plats",
@@ -1834,7 +1865,7 @@
"select": "Välj",
"select_album": "Välj album",
"select_album_cover": "Välj albumomslag",
- "select_albums": "Välj albums",
+ "select_albums": "Välj album",
"select_all": "Välj alla",
"select_all_duplicates": "Välj alla dubletter",
"select_avatar_color": "Välj färg för avatar",
@@ -1887,7 +1918,7 @@
"setting_languages_subtitle": "Ändra appens språk",
"setting_notifications_notify_minutes": "{count} minuter",
"setting_notifications_notify_seconds": "{count} sekunder",
- "setting_notifications_subtitle": "Anpassa dina notisinställningar",
+ "setting_notifications_subtitle": "Anpassa aviseringsinställningarna",
"setting_video_viewer_auto_play_subtitle": "Börja automatiskt spela upp videor när de öppnas",
"setting_video_viewer_auto_play_title": "Automatisk uppspelning av video",
"setting_video_viewer_looping_title": "Loopar",
@@ -1901,6 +1932,8 @@
"share_link": "Dela Länk",
"share_original": "Använd original (stor)",
"share_preview": "Använd miniatyrbild (liten)",
+ "share_quality_body": "Tryck och håll ned delningsknappen för att välja bildkvalitet innan du delar.",
+ "share_quality_title": "Välj din delningskvalitet",
"shared": "Delad",
"shared_album_activities_input_disable": "Kommentar är inaktiverad",
"shared_album_activity_remove_content": "Vill du ta bort den här aktiviteten?",
@@ -1915,7 +1948,9 @@
"shared_link_app_bar_title": "Delade Länkar",
"shared_link_clipboard_copied_massage": "Kopierad till urklipp",
"shared_link_create_error": "Fel vid skapande av delad länk",
- "shared_link_custom_url_description": "Få åtkomst till den här delade länken med en anpassad URL",
+ "shared_link_custom_url_description": "Få åtkomst till den här delade länken med ett anpassat URL namn",
+ "shared_link_custom_url_title": "anpassad URL",
+ "shared_link_custom_url_warning": "Varning: ett anpassat URL-namn med ett snedstreck kanske inte fungerar som förväntat.",
"shared_link_edit_description_hint": "Lägg till delnings-beskrivningen",
"shared_link_edit_expire_after_option_day": "1 dag",
"shared_link_edit_expire_after_option_days": "{count} dagar",
@@ -1962,7 +1997,7 @@
"show_keyboard_shortcuts": "Visa kortkommandon",
"show_less": "Visa mindre",
"show_metadata": "Visa metadata",
- "show_more_fields": "{count, plural, one {Visa # mer fält} other {Visa # mera fält}}",
+ "show_more_fields": "{count, plural, one {Visa ytterligare # fält} other {Visa ytterligare # fält}}",
"show_or_hide_info": "Visa eller göm information",
"show_password": "Visa lösenord",
"show_person_options": "Visa alternativ för person",
@@ -1982,16 +2017,19 @@
"sign_out": "Logga ut",
"sign_up": "Registrera dig",
"size": "Storlek",
+ "skip": "Hoppa över",
"skip_to_content": "Hoppa till innehåll",
"skip_to_folders": "Hoppa till mapp",
"skip_to_tags": "Hoppa till taggar",
"slideshow": "Bildspel",
+ "slideshow_body": "Luta dig tillbaka och titta på dina foton som spelas upp i ett helskärms bildspel.",
"slideshow_metadata_overlay_mode": "Överläggsinnehåll",
"slideshow_metadata_overlay_mode_description_only": "Endast beskrivning",
"slideshow_metadata_overlay_mode_full": "Fullständig",
"slideshow_repeat": "Upprepa bildspel",
"slideshow_repeat_description": "Gå tillbaka till början när bildspelet slutar",
"slideshow_settings": "Bildspelsinställningar",
+ "slideshow_title": "Bildspel",
"smart_album": "Smart album",
"some_assets_already_have_a_location_warning": "Vissa av de valda objekten har redan platsdata",
"sort_albums_by": "Sortera album efter...",
@@ -2007,7 +2045,7 @@
"stack_action_prompt": "{count} staplade",
"stack_duplicates": "Stapla dubletter",
"stack_selected_photos": "Stapla valda foton",
- "stacked_assets_count": "Staplade {count, plural, one {# asset} other {# assets}}",
+ "stacked_assets_count": "Staplade {count, plural, one {# objekt} other {# objekt}}",
"stacktrace": "Stapelspårning",
"start": "Starta",
"start_date": "Startdatum",
@@ -2016,15 +2054,15 @@
"status": "Status",
"step_delete": "Ta bort steg",
"step_delete_confirm": "Är du säker på att du vill ta bort det här steget?",
- "step_details": "Steg detaljer",
+ "step_details": "Stegdetaljer",
"steps": "Steg",
"stop_casting": "Sluta casta",
"stop_motion_photo": "Stanna rörligt foto",
"stop_photo_sharing": "Sluta dela dina foton?",
- "stop_photo_sharing_description": "{partner} kommer inte länga ha tillgång till dina foton.",
- "stop_sharing_photos_with_user": "Sluta dela dina bilder med denna användaren",
+ "stop_photo_sharing_description": "{partner} kommer inte längre att ha tillgång till dina foton.",
+ "stop_sharing_photos_with_user": "Sluta dela dina bilder med den här användaren",
"storage": "Lagring",
- "storage_label": "Förvaringsetikett",
+ "storage_label": "Lagringsetikett",
"storage_quota": "Lagringskvot",
"storage_usage": "{used} av {available} används",
"submit": "Skicka",
@@ -2032,7 +2070,7 @@
"suggestions": "Förslag",
"sunrise_on_the_beach": "Exempel: Soluppgång på stranden",
"support": "Support",
- "support_and_feedback": "Support och Feedback",
+ "support_and_feedback": "Support och återkoppling",
"support_third_party_description": "Din Immich-installation paketerades av en tredje part. Problem som du upplever kan orsakas av det paketet, så vänligen ta upp problem med dem i första hand med hjälp av länkarna nedan.",
"supporter": "Stödjare",
"swap_merge_direction": "Byt sammanfogningsriktning",
@@ -2050,7 +2088,7 @@
"tag_created": "Skapade tagg: {tag}",
"tag_face": "Tagga ansikte",
"tag_feature_description": "Bläddra bland foton och videor grupperade efter logiska taggar",
- "tag_people": "Tagga Personer",
+ "tag_people": "Tagga personer",
"tag_updated": "Uppdaterade tagg: {tag}",
"tagged_assets": "Taggade {count, plural, one {# objekt} other {# objekt}}",
"tags": "Taggar",
@@ -2062,7 +2100,7 @@
"theme_selection_description": "Ställ in temat automatiskt till ljust eller mörkt baserat på din webbläsares inställningar",
"theme_setting_asset_list_storage_indicator_title": "Visa lagringsindikator på filer",
"theme_setting_asset_list_tiles_per_row_title": "Antal bilder och videor per rad ({count})",
- "theme_setting_colorful_interface_subtitle": "Applicera primärfärgen på bakgrundsytor.",
+ "theme_setting_colorful_interface_subtitle": "Tillämpa primärfärgen på bakgrundsytor.",
"theme_setting_colorful_interface_title": "Färgglatt gränssnitt",
"theme_setting_primary_color_subtitle": "Välj en färg för primära åtgärder och accenter.",
"theme_setting_primary_color_title": "Primärfärg",
@@ -2111,7 +2149,7 @@
"unable_to_setup_pin_code": "Kunde inte konfigurera PIN-kod:en",
"unarchive": "Ångra arkivering",
"unarchive_action_prompt": "{count} borttagen från arkivet",
- "unarchived_count": "{count, plural, one {# borttagen från arkiv} other {# borttagna från arkiv}}",
+ "unarchived_count": "{count, plural, other {Tog bort # från arkivet}}",
"undo": "Ångra",
"unfavorite": "Avfavorisera",
"unfavorite_action_prompt": "{count} borttagen från Favoriter",
@@ -2119,6 +2157,7 @@
"unknown": "Okänd",
"unknown_country": "Okänt Land",
"unknown_date": "Okänt datum",
+ "unknown_schema": "Okänt schema",
"unknown_year": "Okänt år",
"unlimited": "Obegränsat",
"unlink_motion_video": "Ta bort länken till rörlig video",
@@ -2133,7 +2172,7 @@
"unselect_all_duplicates": "Avmarkera alla dubletter",
"unstack": "Stapla Av",
"unstack_action_prompt": "{count} ostaplade",
- "unstacked_assets_count": "Avstaplade {count, plural, one {# asset} other {# assets}}",
+ "unstacked_assets_count": "Tog bort {count, plural, one {# objekt} other {# objekt}} från stapeln",
"unsupported_field_type": "Fälttyp som inte stöds",
"unsupported_file_type": "Fil {file} kan inte laddas upp eftersom dess filtyp {type} inte stöds.",
"untagged": "Otaggad",
@@ -2145,7 +2184,7 @@
"upload_concurrency": "Uppladdning samtidighet",
"upload_day_count": "{date}: {count, plural, one {# uppladdning} other {# uppladdningar}}",
"upload_details": "Uppladdningsdetaljer",
- "upload_error_with_count": "Uppladdningsfel för {count, plural, one {# asset} other {# assets}}",
+ "upload_error_with_count": "Uppladdningsfel för {count, plural, one {# objekt} other {# objekt}}",
"upload_errors": "Uppladdning klar med {count, plural, one {# fel} other {# fel}}, ladda om sidan för att se nya objekt.",
"upload_finished": "Uppladdningen är klar",
"upload_progress": "Återstående {remaining, number} - Bearbetade {processed, number}/{total, number}",
@@ -2154,6 +2193,8 @@
"upload_status_errors": "Fel",
"upload_status_uploaded": "Uppladdad",
"upload_success": "Uppladdning lyckades, ladda om sidan för att se nya objekt.",
+ "upload_to_album_body": "För användare som inte använder funktionen för manuell uppladdning kan ni nu välja att lägga till lokala foton direkt i ett album när ni laddar upp dem. Ni behöver inte längre ladda upp dem och lägga till dem i ett album senare.",
+ "upload_to_album_title": "Ladda upp direkt till ett album",
"upload_to_immich": "Ladda upp till Immich ({count})",
"uploading": "Laddar upp",
"uploading_media": "Uppladdning av media",
@@ -2170,7 +2211,7 @@
"user": "Användare",
"user_has_been_deleted": "Den här användaren har raderats.",
"user_id": "Användar-ID",
- "user_liked": "{user} gillade {type, select, photo {detta fotot} video {denna filmen} asset {detta objekt} other {detta}}",
+ "user_liked": "{user} gillade {type, select, photo {det här fotot} video {den här videon} asset {det här objektet} other {det}}",
"user_pin_code_settings": "PIN-kod",
"user_pin_code_settings_description": "Hantera PIN-kod",
"user_privacy": "Användarsekretess",
@@ -2181,19 +2222,19 @@
"user_usage_stats_description": "Se statistik - kontoanvändande",
"username": "Användarnamn",
"users": "Användare",
- "users_added_to_album_count": "Lade till {count, plural, one {# user} other {# users}} i albumet",
+ "users_added_to_album_count": "Lade till {count, plural, one {# användare} other {# användare}} i albumet",
"utilities": "Verktyg",
"validate": "Validera",
"validate_endpoint_error": "Ange en giltig URL",
"variables": "Variabler",
"version": "Version",
"version_announcement_closing": "Din vän, Alex",
- "version_announcement_message": "Hej där! En ny version av Immich är tillgänglig. Ta dig tid att läsa versionsfakta för att säkerställa att dina inställningar är uppdaterade för att förhindra eventuella felkonfigurationer, särskilt om du använder WatchTower eller någon mekanism som hanterar uppdatering av din Immich instans automatiskt.",
+ "version_announcement_message": "Hej! En ny version av Immich är tillgänglig. Läs versionsinformationen så att installationen är uppdaterad och felkonfigurationer undviks, särskilt om du använder WatchTower eller någon annan mekanism som uppdaterar Immich-instansen automatiskt.",
"version_history": "Versionshistorik",
"version_history_item": "Version {version} installerad {date}",
"video": "Video",
"video_hover_setting": "Spela upp videotumnagel när muspekaren är över den",
- "video_hover_setting_description": "Spela upp videotumnagel när muspekaren är över den. Även när den är deaktiverad kan uppspelning startas när muspekaren är över play-ikonen.",
+ "video_hover_setting_description": "Spela upp videominiatyren när muspekaren hålls över den. Även när funktionen är inaktiverad kan uppspelningen startas genom att hålla muspekaren över uppspelningsikonen.",
"video_quality": "Videokvalitet",
"videos": "Videor",
"videos_count": "{count, plural, one {# Video} other {# Videor}}",
@@ -2210,10 +2251,10 @@
"view_previous_asset": "Visa föregående objekt",
"view_qr_code": "Visa QR-kod",
"view_similar_photos": "Visa liknande foton",
- "view_stack": "Visa Stapel",
- "viewer_remove_from_stack": "Ta bort från Stapeln",
+ "view_stack": "Visa stapel",
+ "viewer_remove_from_stack": "Ta bort från stapeln",
"visibility": "Synlighet",
- "visibility_changed": "Synlighet ändrad för {count, plural, one {# person} other {# personer}}",
+ "visibility_changed": "Ändrade synligheten för {count, plural, one {# person} other {# personer}}",
"visual": "Visuellt",
"waiting": "Väntar",
"waiting_count": "Väntande: {count}",
@@ -2221,6 +2262,9 @@
"week": "Vecka",
"welcome": "Välkommen",
"welcome_to_immich": "Välkommen till Immich",
+ "whats_new": "Vad är nytt",
+ "whats_new_settings_subtitle": "Se vad som är nytt i Immich",
+ "whats_new_version": "Version {version}",
"when": "När",
"width": "Bredd",
"wifi_name": "Wi-Fi-namn",
diff --git a/i18n/ta.json b/i18n/ta.json
index 2be1f13204..d48b7c9429 100644
--- a/i18n/ta.json
+++ b/i18n/ta.json
@@ -764,7 +764,6 @@
"custom_date": "விருப்ப தேதி",
"custom_locale": "தனிப்பயன் மொழி",
"custom_locale_description": "தேர்ந்தெடுக்கப்பட்ட மொழி மற்றும் பிராந்தியத்தின் அடிப்படையில் தேதிகள், நேரம் மற்றும் எண்களை வடிவமைக்கவும்",
- "custom_url": "தனிப்பயன் முகவரி",
"cutoff_date_description": "கடைசி புகைப்படங்களை வைத்திருங்கள்…",
"cutoff_day": "{count, plural, one {நாள்} other {நாள்கள்}}",
"cutoff_year": "{count, plural, one {ஆண்டு} other {ஆண்டுகள்}}",
diff --git a/i18n/te.json b/i18n/te.json
index 5e70a1cc0b..15921d7dcc 100644
--- a/i18n/te.json
+++ b/i18n/te.json
@@ -15,12 +15,14 @@
"add_a_location": "స్థానాన్ని జోడించండి",
"add_a_name": "పేరును జోడించండి",
"add_a_title": "శీర్షికను జోడించండి",
+ "add_action": "కొత్త చర్యను జోడించండి",
"add_birthday": "పుట్టినరోజును జోడించండి",
"add_endpoint": "ముగింపు బిందువును జోడించండి",
"add_exclusion_pattern": "మినహాయింపు నమూనాను జోడించండి",
"add_location": "స్థానాన్ని జోడించండి",
"add_partner": "భాగస్వామిని జోడించండి",
"add_photos": "ఫోటోలను జోడించండి",
+ "add_step": "కొత్త దశను జోడించండి",
"add_tag": "ట్యాగ్ జోడించండి",
"add_to": "జోడించండి…",
"add_to_album": "ఆల్బమ్కు జోడించండి",
@@ -45,17 +47,17 @@
"authentication_settings_reenable": "మళ్లీ ప్రారంబించటానికి, Server Commandని ఉపయోగించండి.",
"background_task_job": "నేపథ్య పనులు",
"backup_database": "డేటాబేస్ డంప్ సృష్టించు",
- "backup_database_enable_description": "డేటాబేస్ పడవెయ్యడాన్నీ ప్రారంభించండి",
- "backup_keep_last_amount": "ఉంచుకోవాల్సిన మునుపటి పడవెయ్యడాల్లా మొత్తం",
+ "backup_database_enable_description": "డేటాబేస్ డంప్లను ప్రారంభించండి",
+ "backup_keep_last_amount": "ఉంచాల్సిన మునుపటి డంప్ల సంఖ్య",
"backup_onboarding_1_description": "క్లౌడ్లో లేదా మరో భౌతిక ప్రదేశంలో ఆఫ్సైట్ కాపీ",
- "backup_onboarding_2_description": "వేరువేరు పరికరాల్లో లోకల్ కాపీలు. ఇందులో ప్రధాన ఫైళ్ళు మరియు వాటికి సంబంధించిన లోకల్ బ్యాకప్ కూడా ఉంటాయి",
+ "backup_onboarding_2_description": "వేర్వేరు పరికరాల్లో నిల్వ చేసిన స్థానిక కాపీలు. ఇందులో అసలు ఫైల్లు మరియు వాటి స్థానిక బ్యాకప్ కూడా ఉంటాయి.",
"backup_onboarding_3_description": "మీ డేటాకు మొత్తం కాపీలు, అసలు ఫైళ్ళు సహా. ఇందులో 1 ఆఫ్సైట్ కాపీ మరియు 2 లోకల్ కాపీలు ఉంటాయి.",
"backup_onboarding_description": "మీ డేటాను రక్షించడానికి 3-2-1 బ్యాకప్ వ్యూహం సిఫార్సు చేయబడింది. పూర్తి స్థాయి బ్యాకప్ పరిష్కారం కోసం మీరు అప్లోడ్ చేసిన ఫోటోలు/వీడియోల కాపీలు మరియు Immich డేటాబేస్ కాపీని ఉంచాలి.",
"backup_onboarding_footer": "Immich బ్యాకప్పై మరిన్ని వివరాలకు డాక్యుమెంటేషన్ చూడండి.",
"backup_onboarding_parts_title": "3-2-1 బ్యాకప్లో:",
"backup_onboarding_title": "బ్యాకప్లు",
- "backup_settings": "డేటాబేస్ పడవెసే సెట్టింగ్లు",
- "backup_settings_description": "డేటాబేస్ పడవెసే సెట్టింగ్లను నిర్వహించండి",
+ "backup_settings": "డేటాబేస్ డంప్ సెట్టింగ్లు",
+ "backup_settings_description": "డేటాబేస్ డంప్ సెట్టింగ్లను నిర్వహించండి.",
"cleared_jobs": "దీని కోసం ఉద్యోగాలు క్లియర్ చేయబడ్డాయి: {job}",
"config_set_by_file": "కాన్ఫిగరేషన్ ప్రస్తుతం కాన్ఫిగరేషన్ ఫైల్ ద్వారా సెట్ చేయబడింది",
"confirm_delete_library": "మీరు ఖచ్చితంగా {library} లైబ్రరీని తొలగించాలనుకుంటున్నారా?",
@@ -63,15 +65,19 @@
"confirm_email_below": "నిర్ధారించడానికి, క్రింద \"{email}\" టైప్ చేయండి",
"confirm_reprocess_all_faces": "మీరు ఖచ్చితంగా అన్ని ముఖాలను రీప్రాసెస్ చేయాలనుకుంటున్నారా? ఇది పేరున్న వ్యక్తులను కూడా క్లియర్ చేస్తుంది.",
"confirm_user_password_reset": "మీరు ఖచ్చితంగా {user} పాస్వర్డ్ని రీసెట్ చేయాలనుకుంటున్నారా?",
- "confirm_user_pin_code_reset": "మీరు ఖచ్చితంగా {user} యొక్క పిన్ కోడ్ నీ రీసెట్ చేద్దామనిఅనుకుంటున్నారా?",
+ "confirm_user_pin_code_reset": "మీరు ఖచ్చితంగా {user} యొక్క PIN కోడ్ను రీసెట్ చేయాలనుకుంటున్నారా?",
+ "copy_config_to_clipboard_description": "ప్రస్తుత సిస్టమ్ కాన్ఫిగరేషన్ను JSON ఆబ్జెక్ట్గా క్లిప్బోర్డ్లోకి కాపీ చేయండి",
"create_job": "పనిని సృష్టించండి",
"cron_expression": "క్రాన్ వ్యక్తీకరణ",
"cron_expression_description": "క్రాన్ ఫార్మాట్ ఉపయోగించి స్కానింగ్ విరామాన్ని సెట్ చేయండి. మరిన్ని వివరాల కోసం దయచేసి ఉదా. క్రోంటాబ్ గురు చూడండి",
"cron_expression_presets": "ముందేచేసిన క్రాన్ వ్యక్తీకరణలు",
"disable_login": "లాగిన్ను నిలిపివేయండి",
+ "download_csv": "CSV ఫైల్ను డౌన్లోడ్ చేయండి",
"duplicate_detection_job_description": "సారూప్య చిత్రాలను గుర్తించడానికి ఆస్తులపై యంత్ర అభ్యాసాన్ని అమలు చేయండి. స్మార్ట్ శోధనపై ఆధారపడుతుంది",
"exclusion_pattern_description": "మినహాయింపు నమూనాలు మీ లైబ్రరీని స్కాన్ చేస్తున్నప్పుడు ఫైల్లు మరియు ఫోల్డర్లను విస్మరించడానికి మిమ్మల్ని అనుమతిస్తాయి. మీరు దిగుమతి చేయకూడదనుకునే RAW ఫైల్లు వంటి ఫోల్డర్లను కలిగి ఉన్నట్లయితే ఇది ఉపయోగకరంగా ఉంటుంది.",
- "face_detection": "ముఖ గమనింపు",
+ "export_config_as_json_description": "ప్రస్తుత సిస్టమ్ కాన్ఫిగరేషన్ను JSON ఫైల్గా డౌన్లోడ్ చేయండి",
+ "external_libraries_page_description": "నిర్వాహకుడు - ఎక్స్టర్నల్ లైబ్రరీ పేజీ",
+ "face_detection": "ముఖాల గుర్తింపు",
"face_detection_description": "మెషిన్ లెర్నింగ్ ఉపయోగించి ఆస్తులలో ముఖాలను గుర్తించండి. వీడియోల కోసం, సూక్ష్మచిత్రం మాత్రమే పరిగణించబడుతుంది. \"అన్నీ\" (పునః) అన్ని ఆస్తులను ప్రాసెస్ చేస్తుంది. ఇంకా ప్రాసెస్ చేయని ఆస్తులను \"మిస్సింగ్\" క్యూలు చేస్తుంది. గుర్తించబడిన ముఖాలు ఇప్పటికే ఉన్న లేదా కొత్త వ్యక్తులతో సమూహపరచడం పూర్తయిన తర్వాత ముఖ గుర్తింపు కోసం క్యూలో ఉంచబడతాయి.",
"facial_recognition_job_description": "సమూహం వ్యక్తుల ముఖాలను గుర్తించింది. ఫేస్ డిటెక్షన్ పూర్తయిన తర్వాత ఈ దశ అమలవుతుంది. \"అన్ని\" (పునః) అన్ని ముఖాలను క్లస్టర్లు చేస్తుంది. \"తప్పిపోయిన\" వ్యక్తిని కేటాయించని ముఖాలను క్యూలో ఉంచుతుంది.",
"failed_job_command": "ఉద్యోగం కోసం కమాండ్ {command} విఫలమైంది: {job}",
@@ -81,6 +87,7 @@
"image_fullsize_description": "జూమ్ చేసినప్పుడు ఉపయోగించే, మెటాడేటా తీసిన పూర్తి పరిమాణ చిత్రము",
"image_fullsize_enabled": "ఫుల్-సైజ్ చిత్రం తయారీని ప్రారంభించు",
"image_fullsize_enabled_description": "వెబ్కు అనుకూలం కాని ఫార్మాట్ల కోసం ఫుల్-సైజ్ చిత్రాన్ని సృష్టించు. \"ఎంబెడ్డెడ్ ప్రీవ్యూ ప్రిఫర్\" ప్రారంభించినప్పుడు, ఎంబెడ్డెడ్ ప్రీవ్యూలను మార్పిడిలేకుండా నేరుగా ఉపయోగిస్తారు. JPEG వంటి వెబ్-ఫ్రెండ్లీ ఫార్మాట్లపై ఇది ప్రభావం చూపదు.",
+ "image_fullsize_title": "పూర్తి పరిమాణ చిత్ర సెట్టింగ్లు",
"image_prefer_embedded_preview": "పొందుపరిచిన పరిదృశ్యానికి ప్రాధాన్యత ఇవ్వండి",
"image_prefer_embedded_preview_setting_description": "అందుబాటులో ఉన్నప్పుడు మరియు ఇమేజ్ ప్రాసెసింగ్కు ఇన్పుట్గా RAW ఫోటోలలో ఎంబెడెడ్ ప్రివ్యూలను ఉపయోగించండి. ఇది కొన్ని చిత్రాలకు మరింత ఖచ్చితమైన రంగులను ఉత్పత్తి చేయగలదు, అయితే ప్రివ్యూ నాణ్యత కెమెరాపై ఆధారపడి ఉంటుంది మరియు చిత్రం మరిన్ని కుదింపు కళాఖండాలను కలిగి ఉండవచ్చు.",
"image_prefer_wide_gamut": "విస్తృత స్వరసప్తకానికి ప్రాధాన్యత ఇవ్వండి",
@@ -88,6 +95,8 @@
"image_preview_description": "ఒకే ఆస్తిని వీక్షించేటప్పుడు మరియు యంత్ర అభ్యాసం కోసం మెటాడేటా లేని మధ్యస్థ-పరిమాణ చిత్రం ఉపయోగించబడుతుంది",
"image_preview_quality_description": "1-100 వరకు ప్రివ్యూ నాణ్యత. ఎక్కువ ఉంటే మంచిది, కానీ పెద్ద ఫైళ్లను ఉత్పత్తి చేస్తుంది మరియు యాప్ ప్రతిస్పందనను తగ్గిస్తుంది. తక్కువ విలువను సెట్ చేయడం వల్ల మెషిన్ లెర్నింగ్ నాణ్యత ప్రభావితం కావచ్చు.",
"image_preview_title": "అమరికల ప్రివ్యూ",
+ "image_progressive": "ప్రోగ్రెసివ్",
+ "image_progressive_description": "క్రమంగా లోడ్ అవుతూ ప్రదర్శించబడేలా JPEG చిత్రాలను ప్రోగ్రెసివ్గా ఎన్కోడ్ చేయండి. ఇది WebP చిత్రాలపై ఎలాంటి ప్రభావం చూపదు.",
"image_quality": "నాణ్యత",
"image_resolution": "రిజల్యూషన్",
"image_resolution_description": "అధిక రిజల్యూషన్లు మరింత వివరాలను భద్రపరచగలవు కానీ ఎన్కోడ్ చేయడానికి ఎక్కువ సమయం పడుతుంది, పెద్ద ఫైల్ పరిమాణాలను కలిగి ఉంటాయి మరియు యాప్ ప్రతిస్పందనను తగ్గించవచ్చు.",
@@ -96,6 +105,8 @@
"image_thumbnail_description": "తీసివేసిన మెటాడేటాతో కూడిన చిన్న సూక్ష్మచిత్రం, ప్రధాన టైమ్లైన్ వంటి ఫోటోల సమూహాలను వీక్షిస్తున్నప్పుడు ఉపయోగించబడుతుంది",
"image_thumbnail_quality_description": "థంబ్నెయిల్ నాణ్యత 1-100 నుండి. అధికమైనది ఉత్తమం, కానీ పెద్ద ఫైల్లను ఉత్పత్తి చేస్తుంది మరియు యాప్ ప్రతిస్పందనను తగ్గిస్తుంది.",
"image_thumbnail_title": "థంబ్నెయిల్ సెట్టింగ్లు",
+ "import_config_from_json_description": "JSON కాన్ఫిగరేషన్ ఫైల్ను అప్లోడ్ చేసి సిస్టమ్ కాన్ఫిగరేషన్ను దిగుమతి చేయండి",
+ "integrity_checks_checksum_files_time_limit": "సమయ పరిమితి",
"job_concurrency": "{job} సమ్మతి",
"job_created": "పని సృష్టించబడింది",
"job_not_concurrency_safe": "ఈ ఉద్యోగం సమ్మతి-సురక్షితమైనది కాదు.",
@@ -1099,31 +1110,71 @@
"upload_status_errors": "లోపాలు",
"upload_status_uploaded": "అప్లోడ్ చేయబడింది",
"upload_success": "అప్లోడ్ విజయవంతమైంది, కొత్త అప్లోడ్ ఆస్తులను చూడటానికి పేజీని రిఫ్రెష్ చేయండి.",
+ "upload_to_album_title": "నేరుగా ఒక ఆల్బమ్లోకి అప్లోడ్ చేయండి",
+ "upload_to_immich": "Immichలోకి అప్లోడ్ చేయండి ({count})",
+ "uploading": "అప్లోడ్ అవుతోంది",
+ "uploading_media": "మీడియా అప్లోడ్ అవుతోంది",
+ "uploads": "అప్లోడ్లు",
+ "uploads_count": "{count, plural, one {# అప్లోడ్} other {# అప్లోడ్లు}}",
+ "url": "URL",
"usage": "వాడుక",
+ "use_biometric": "బయోమెట్రిక్ను ఉపయోగించండి",
+ "use_browser_locale": "బ్రౌజర్ భాషా సెట్టింగ్ను ఉపయోగించండి",
+ "use_browser_locale_description": "మీ బ్రౌజర్ భాషా సెట్టింగ్ల ఆధారంగా తేదీలు, సమయాలు మరియు సంఖ్యలను చూపిస్తుంది.",
+ "use_current_connection": "ప్రస్తుత కనెక్షన్ను ఉపయోగించండి",
"use_custom_date_range": "బదులుగా అనుకూల తేదీ పరిధిని ఉపయోగించండి",
+ "use_template": "టెంప్లేట్ను ఉపయోగించండి",
"user": "విన్యోగధారి",
+ "user_has_been_deleted": "ఈ యూజర్ తొలగించబడ్డారు.",
"user_id": "విన్యోగధారి గుర్తింపు",
+ "user_pin_code_settings": "పిన్ కోడ్",
"user_purchase_settings": "కొనుగోలు",
"user_purchase_settings_description": "మీ కొనుగోలును నిర్వహించండి",
"user_usage_detail": "వినియోగదారు వినియోగ వివరాలు",
+ "user_usage_stats": "అకౌంట్ వినియోగ గణాంకాలు",
+ "user_usage_stats_description": "అకౌంట్ వినియోగ గణాంకాలను చూడండి",
"username": "వినియోగదారి పేరు",
"users": "వినియోగదారులు",
"utilities": "యుటిలిటీస్",
"validate": "ధృవీకరించండి",
+ "validate_endpoint_error": "దయచేసి సరైన URLను నమోదు చేయండి",
"variables": "వేరియబుల్స్",
+ "version": "వెర్షన్",
+ "version_announcement_closing": "మీ స్నేహితుడు, Alex",
+ "version_announcement_message": "హాయ్! Immich యొక్క కొత్త వెర్షన్ అందుబాటులో ఉంది. కొత్త మార్పుల గురించి తెలుసుకోవడానికి విడుదల గమనికలను చదవండి. ముఖ్యంగా, మీరు WatchTower లేదా Immichను స్వయంచాలకంగా అప్డేట్ చేసే విధానాన్ని ఉపయోగిస్తుంటే, మీ సెటప్ సరిగ్గా పనిచేయడానికి ఇది ఉపయోగపడుతుంది.",
+ "version_history": "వెర్షన్ చరిత్ర",
+ "version_history_item": "{date}న {version} ఇన్స్టాల్ చేయబడింది",
"video": "వీడియో",
"video_hover_setting": "థంబ్నెయిల్ పైనా హోవర్ చేయగానే వీడియో ప్లే చెయ్",
"video_hover_setting_description": "థంబ్నెయిల్ పైనా హోవర్ చేయగానే చిహ్నం ప్లే చేయు. నిలిపివేయబడినప్పటికీ, ప్లే చిహ్నంపై హోవర్ చేయడం ద్వారా ప్లేబ్యాక్ ప్రారంభించబడుతుంది.",
+ "video_quality": "వీడియో నాణ్యత",
"videos": "వీడియోలు",
"view": "చూడండి",
"view_album": "ఆల్బమ్ని వీక్షించండి",
"view_all": "అన్నీ వీక్షించండి",
"view_all_users": "వినియోగదారులందరినీ వీక్షించండి",
+ "view_details": "వివరాలను చూడండి",
+ "view_in_timeline": "టైమ్లైన్లో చూడండి",
+ "view_link": "లింక్ను చూడండి",
"view_next_asset": "తదుపరి ఆస్తిని వీక్షించండి",
"view_previous_asset": "మునుపటి ఆస్తిని వీక్షించండి",
+ "view_qr_code": "QR కోడ్ను చూడండి",
+ "view_similar_photos": "ఇలాంటి ఫోటోలను చూడండి",
"view_stack": "స్టాక్ చూడండి",
+ "viewer_remove_from_stack": "స్టాక్లో నుండి తొలగించండి",
+ "visibility": "దృశ్యమానత",
"waiting": "వేచి ఉంది",
+ "waiting_count": "వేచి ఉన్నవి: {count}",
"warning": "హెచ్చరిక",
"week": "వారం",
- "welcome": "స్వాగతం"
+ "welcome": "స్వాగతం",
+ "welcome_to_immich": "Immichకు స్వాగతం",
+ "whats_new": "కొత్త విశేషాలు",
+ "whats_new_settings_subtitle": "Immich లోని కొత్త విశేషాలను చూడండి",
+ "whats_new_version": "వెర్షన్ {version}",
+ "wifi_name": "Wi-Fi పేరు",
+ "workflow_delete_prompt": "మీరు ఖచ్చితంగా ఈ వర్క్ఫ్లోను తొలగించాలనుకుంటున్నారా?",
+ "you_dont_have_any_shared_links": "మీకు షేర్ చేసిన లింక్లు ఏవీ లేవు",
+ "your_wifi_name": "మీ Wi-Fi నెట్వర్క్ పేరు",
+ "zoom_image": "చిత్రాన్ని జూమ్ చేయండి"
}
diff --git a/i18n/th.json b/i18n/th.json
index ab1e5c8a09..0284d08a25 100644
--- a/i18n/th.json
+++ b/i18n/th.json
@@ -1,12 +1,12 @@
{
"about": "เกี่ยวกับ",
- "account": "บัญชีผู้ใช้",
+ "account": "บัญชี",
"account_settings": "การตั้งค่าบัญชี",
"acknowledge": "รับทราบ",
- "action": "ดำเนินการ",
+ "action": "การกระทำ",
"action_common_update": "อัปเดต",
- "action_description": "ชุดการดำเนินการที่จะปฏิบัติกับรายการที่ผ่านการกรอง",
- "actions": "การดำเนินการ",
+ "action_description": "ชุดการดำเนินการที่จะทำกับรายการที่ผ่านการกรอง",
+ "actions": "การกระทำ",
"active": "กำลังทำงาน",
"active_count": "กำลังทำงาน: {count}",
"activity": "กิจกรรม",
@@ -15,7 +15,7 @@
"add_a_location": "เพิ่มตำแหน่ง",
"add_a_name": "เพิ่มชื่อ",
"add_a_title": "เพิ่มหัวข้อ",
- "add_action": "เพิ่มการดำเนินการ",
+ "add_action": "เพิ่มการกระทำ",
"add_assets": "เพิ่มสื่อ",
"add_birthday": "เพิ่มวันเกิด",
"add_endpoint": "เพิ่มปลายทาง",
@@ -30,20 +30,20 @@
"add_to_album_bottom_sheet_added": "เพิ่มไปยัง {album} แล้ว",
"add_to_album_bottom_sheet_already_exists": "อยู่ใน {album} อยู่แล้ว",
"add_to_album_bottom_sheet_some_local_assets": "สื่อในเครื่องบางส่วนไม่สามารถเพิ่มไปยังอัลบั้มได้",
- "add_to_albums": "เพิ่มเข้าในอัลบั้ม",
+ "add_to_albums": "เพิ่มไปยังอัลบั้ม",
"add_to_albums_count": "เพิ่มไปยังอัลบั้ม ({count})",
"add_to_bottom_bar": "เพิ่มไปยัง",
- "add_upload_to_stack": "เพิ่มที่อัปโหลดเข้า stack",
+ "add_upload_to_stack": "เพิ่มที่อัปโหลดเข้า Stack",
"add_url": "เพิ่ม URL",
"added_to_archive": "เพิ่มไปยังที่จัดเก็บถาวร",
"added_to_favorites": "เพิ่มเข้ารายการโปรดแล้ว",
- "added_to_favorites_count": "เพิ่ม {count, number} รูปเข้ารายการโปรดแล้ว",
+ "added_to_favorites_count": "เพิ่ม {count, number} รายการเข้ารายการโปรดแล้ว",
"admin": {
- "add_exclusion_pattern_description": "เพิ่มรูปแบบข้อยกเว้น รองรับการใช้ *, ** และ ? หากต้องการละเว้นไฟล์ทั้งหมดในไดเร็กทอรีที่ชื่อว่า \"Raw\" ให้ใช้ \"**/Raw/**\" ถ้าต้องการละเว้นไฟล์ทั้งหมดที่ลงท้ายด้วย \".tif\" ให้ใช้ \"**/*.tif\" ถ้าต้องการละเว้นพาธที่เริ่มจากไดเรกทอรีบนสุดให้ใช้ \"/พาธ/ที่ต้องการ/ละเว้น/**\"",
+ "add_exclusion_pattern_description": "เพิ่มรูปแบบข้อยกเว้น สามารถรองรับการใช้ *, ** และ ? ในรูปแบบได้ หากต้องการละเว้นไฟล์ทั้งหมดในไดเร็กทอรีที่ชื่อว่า \"Raw\" ให้ใช้ \"**/Raw/**\" ถ้าต้องการละเว้นไฟล์ทั้งหมดที่ลงท้ายด้วย \".tif\" ให้ใช้ \"**/*.tif\" ถ้าต้องการละเว้นพาธที่เริ่มจากไดเรกทอรีบนสุดให้ใช้ \"/พาธ/ที่ต้องการ/ละเว้น/**\"",
"admin_user": "ผู้ดูแล",
- "asset_offline_description": "ไม่พบไฟล์สื่อของไลบรารีภายนอกนี้ในดิสก์ และถูกย้ายไปที่ถังขยะแล้ว หากไฟล์ถูกย้ายภายในไลบรารี โปรดตรวจสอบไทม์ไลน์ของคุณเพื่อหาสื่อที่เกี่ยวข้องใหม่ หากต้องการกู้คืนสื่อนี้ โปรดตรวจสอบว่า Immich สามารถเข้าถึงไฟล์ด้านล่างได้ และทำการสแกนไลบรารีอีกครั้ง",
- "authentication_settings": "การตั้งค่าการเข้าถึง",
- "authentication_settings_description": "จัดการรหัสผ่าน, OAuth, และตั้งค่าการเข้าถึงอื่นๆ",
+ "asset_offline_description": "ไม่พบไฟล์สื่อของไลบรารีภายนอกนี้ในดิสก์ และถูกย้ายไปที่ถังขยะแล้ว หากไฟล์ถูกย้ายภายในไลบรารี โปรดตรวจสอบไทม์ไลน์ของคุณเพื่อหาสื่อที่เกี่ยวข้องใหม่ หากต้องการกู้คืนสื่อนี้ โปรดตรวจสอบว่า Immich สามารถเข้าถึงไฟล์ ณ ตำแหน่งด้านล่างได้ และทำการสแกนไลบรารีอีกครั้ง",
+ "authentication_settings": "การตั้งค่าการยืนยันตัวตน",
+ "authentication_settings_description": "จัดการรหัสผ่าน, OAuth, และตั้งค่าการยึนยันตัวตนอื่นๆ",
"authentication_settings_disable_all": "คุณแน่ใจว่าต้องการปิดวิธีการล็อกอินทั้งหมดหรือไม่? ล็อกอินจะถูกปิดทั้งหมด",
"authentication_settings_reenable": "เพื่อเปิดใหม่ ให้ใช้คำสั่งเซิร์ฟเวอร์",
"background_task_job": "งานเบื้องหลัง",
@@ -53,16 +53,16 @@
"backup_onboarding_1_description": "สำเนานอกสถานที่บนคลาวด์หรือที่ตั้งอื่น",
"backup_onboarding_2_description": "สำเนาที่อยู่บนอุปกรณ์ที่ต่างกัน ซึ่งรวมถึงไฟล์หลักและไฟล์สำรองบนเครื่อง",
"backup_onboarding_3_description": "จำนวนชุดของข้อมูลทั้งหมด รวมถึงไฟล์เดิม ซึ่งรวมถึง 1 ชุดที่ตั้งอยู่คนละถิ่น และสำเนาบนเครื่อง 2 ชุด",
- "backup_onboarding_description": "แนะนำให้ใช้ การสำรองข้อมูลแบบ 3-2-1เพื่อปกป้องข้อมูล ควรเก็บสำเนาของรูปภาพ/วิดีโอที่อัปโหลดและฐานข้อมูลของ Immich เพื่อสำรองข้อมูลได้อย่างทั่วถึง",
+ "backup_onboarding_description": "แนะนำให้ใช้การสำรองข้อมูลแบบ 3-2-1 เพื่อปกป้องข้อมูล ควรเก็บสำเนาของรูปภาพ/วิดีโอที่อัปโหลดและฐานข้อมูลของ Immich เพื่อสำรองข้อมูลได้อย่างทั่วถึง",
"backup_onboarding_footer": "สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสำรองข้อมูล Immich โปรดดูเอกสารประกอบ",
"backup_onboarding_parts_title": "การสำรองข้อมูลแบบ 3-2-1 ประกอบไปด้วย:",
"backup_onboarding_title": "สำรองข้อมูล",
"backup_settings": "ตั้งค่าการสำรองข้อมูล",
"backup_settings_description": "จัดการการตั้งค่าการสำรองฐานข้อมูล",
"cleared_jobs": "เคลียร์งานสำหรับ: {job}",
- "config_set_by_file": "การตั้งค่าคอนฟิกกำลังถูกกำหนดโดยไฟล์คอนฟิก",
+ "config_set_by_file": "การตั้งค่ากำลังถูกกำหนดโดยไฟล์การตั้งค่า",
"confirm_delete_library": "คุณแน่ใจว่าอยากลบคลังภาพ {library} หรือไม่?",
- "confirm_delete_library_assets": "คุณแน่ใจว่าต้องการลบคลังภาพนี้หรือไม่? สี่อ{count, plural, one { # รายการ} other {ทั้งหมด # รายการ}}ในคลังจะถูกลบออกจาก Immich โดยถาวร ไฟล์จะยังคงอยู่บนดิสก์",
+ "confirm_delete_library_assets": "คุณแน่ใจว่าต้องการลบคลังภาพนี้หรือไม่? สี่อ{count, plural, one { # รายการ} other {ทั้งหมด # รายการ}}ในคลังจะถูกลบออกจาก Immich โดยถาวร โดยไฟล์จะยังคงอยู่บนดิสก์อยู่",
"confirm_email_below": "โปรดยืนยัน โดยการพิมพ์ \"{email}\" ข้างล่าง",
"confirm_reprocess_all_faces": "คุณแน่ใจว่าคุณต้องการประมวลผลใบหน้าทั้งหมดใหม่? ชื่อคนจะถูกลบไปด้วย",
"confirm_user_password_reset": "คุณแน่ใจว่าต้องการรีเซ็ตรหัสผ่านของ {user} หรือไม่?",
@@ -71,13 +71,13 @@
"create_job": "สร้างงาน",
"cron_expression": "รูปแบบ cron",
"cron_expression_description": "ตั้งช่วงเวลาในการสแกนโดยใช้รูปแบบ cron สำหรับข้อมูลเพิ่มเติมกรุณาอิง Crontab Guru",
- "cron_expression_presets": "พรีเซ็ตรูปแบบ cron",
+ "cron_expression_presets": "ตัวอย่างรูปแบบ cron",
"disable_login": "ปิดการล็อกอิน",
"download_csv": "ดาวน์โหลด CSV",
"duplicate_detection_job_description": "ใช้ machine learning กับสี่อเพื่อตรวจจับรูปภาพที่คล้ายกัน โดยใช้การค้นหาอัจฉริยะ",
"exclusion_pattern_description": "ข้อยกเว้นสามารถละเว้นไฟล์และโฟลเดอร์ขณะสแกนคลังภาพของคุณ มีประโยชน์เมื่อโฟลเดอร์มีไฟล์ที่ไม่อยากนำเข้า เช่นไฟล์ RAW",
"export_config_as_json_description": "ดาวน์โหลดการตั้งค่าระบบปัจจุบันไปยังไฟล์ในรูปแบบ JSON",
- "external_libraries_page_description": "หน้าต่างคลังแอดมินภายนอก",
+ "external_libraries_page_description": "หน้าคลังแอดมินภายนอก",
"face_detection": "การตรวจจับใบหน้า",
"face_detection_description": "ตรวจจับใบหน้าในสี่อโดยใช้ machine learning วิดีโอจะใช้ภาพตัวอย่างจากวิดีโอเท่านั้น \"ทั้งหมด\" จะประมวลผลสี่อทั้งหมด \"ขาดหาย\" จะประมวลผลสี่อที่ยังไม่ได้ประมวลผล ใบหน้าที่ถูกตรวจจับแล้วจะถูกเข้าคิวประมวลผลการจดจำใบหน้า เพิ่มเข้าไปในกลุ่มที่มีอยู่แล้วหรือคนใหม่",
"facial_recognition_job_description": "นำใบหน้าที่ตรวจจับได้ไปจับกลุ่มตามผู้คน ขั้นตอนนี้ทำงานหลังจากตรวจจับใบหน้าสำเร็จ \"ทั้งหมด\" จะจำกลุ่มใบหน้าทั้งหมดใหม่ \"ขาดหาย\" จะจัดคิวใบหน้าที่ยังไม่ได้ระบุคน",
@@ -90,25 +90,40 @@
"image_fullsize_enabled_description": "สร้างรูปภาพเต็มขนาดสำหรับรูปแบบที่ไม่เข้ากันกับเว็บ เมื่อเปิดใช้งาน \"ถ้าต้องการดูตัวอย่าง\" ตัวอย่างแบบฝังจะถูกใช้โดยตรงโดยตรง และไม่ส่งผลต่อรูปแบบไม่เข้ากันกับเว็บ เช่น JPEG",
"image_fullsize_quality_description": "คุณภาพรูปภาพขนาดเต็มจาก 1-100 ค่ายิ่งสูงคุณภาพยิ่งสูง แต่แลกมาด้วยขนาดไฟล์ที่ใหญ่ขึ้น",
"image_fullsize_title": "ตั้งค่ารูปภาพขนาดเต็ม",
- "image_prefer_embedded_preview": "ใช้พรีวิวแบบฝังตัว",
- "image_prefer_embedded_preview_setting_description": "ใช้การแสดงภาพแบบฝังตัวในรูปภาพ RAW ในการวิเคราะห์รูปภาพหากสามารถใช้ได้ สิ่งนี้จะช่วยให้รูปภาพมีสีสันที่ถูกต้องมากยิ่งขึ้น แต่อย่างไรก็ตาม คุณภาพรูปภาพขึ้นอยู่กับกล้องถ่ายรูป และอาจจะเกิดร่องรอย ลาย ที่ไม่พึงประสงค์บนรูปภาพ จากการย่อขนาดไฟล์",
+ "image_prefer_embedded_preview": "ใช้ตัวอย่างแบบฝังตัว",
+ "image_prefer_embedded_preview_setting_description": "ใช้ตัวอย่างแบบฝังตัวในรูปภาพ RAW ในการวิเคราะห์รูปภาพหากสามารถใช้ได้ สิ่งนี้จะช่วยให้รูปภาพมีสีสันที่ถูกต้องมากยิ่งขึ้น แต่อย่างไรก็ตาม คุณภาพรูปภาพขึ้นอยู่กับกล้องถ่ายรูป และอาจจะเกิดร่องรอย ลาย ที่ไม่พึงประสงค์บนรูปภาพ จากการย่อขนาดไฟล์",
"image_prefer_wide_gamut": "ใช้ช่วงสีกว้าง",
"image_prefer_wide_gamut_setting_description": "ใช้ Display P3 สำหรับภาพตัวอย่าง (thumbnails) เพื่อรักษาความสดใสของภาพที่มีช่วงสีที่กว้างขึ้น อย่างไรก็ตาม ภาพอาจแสดงผลแตกต่างกันบนอุปกรณ์เก่าที่ใช้เว็บเบราว์เซอร์เวอร์ชันเก่า สำหรับภาพที่อยู่ใน sRGB จะยังคงใช้ sRGB ต่อไปเพื่อหลีกเลี่ยงการเปลี่ยนแปลงของสี",
"image_preview_description": "ภาพขนาดปานกลางที่ถูกลบข้อมูลเมตา ใช้สำหรับการดูแอสเซ็ตเดี่ยวและสำหรับการเรียนรู้ของเครื่อง (Machine Learning)",
"image_preview_quality_description": "คุณภาพการแสดงตัวอย่างตั้งแต่ 1-100 ยิ่งสูงยิ่งดี แต่จะทำให้ไฟล์มีขนาดใหญ่ขึ้นและอาจทำให้แอปตอบสนองช้าลง การตั้งค่าต่ำอาจส่งผลต่อคุณภาพ Machine Learning",
"image_preview_title": "ตั้งค่าพรีวิว",
"image_progressive": "รูปภาพแบบโปรเกรสซีฟ",
- "image_progressive_description": "เข้ารหัสรูปภาพ JPEG แบบโปรเกรสซีฟเพื่อให้แสดงผลแบบค่อยๆ ชัดขึ้นขณะโหลด ทั้งนี้จะไม่มีผลกับรูปภาพ WebP",
+ "image_progressive_description": "เขียนภาพ JPEG เพื่อให้สามารถแสดงผลแบบค่อยๆ ชัดขึ้นขณะโหลด ทั้งนี้จะไม่มีผลกับรูปภาพ WebP",
"image_quality": "คุณภาพ",
"image_resolution": "ความละเอียด",
- "image_resolution_description": "ความละเอียดสูกว่าสามารถเก็บรายละเอียดได้มากกว่าแต่ใช้เวลา encode นานกว่า ไฟล์ใหญ่กว่า และลดความตอบสนองของแอป",
+ "image_resolution_description": "ความละเอียดสูงกว่าสามารถเก็บรายละเอียดได้มากกว่าแต่ใช้เวลา encode นานกว่า มีไฟล์ใหญ่กว่า และสามารถลดความตอบสนองของแอปลงได้",
"image_settings": "การตั้งค่ารูปภาพ",
"image_settings_description": "จัดการคุณภาพและความคมชัดของภาพที่สร้างขึ้น",
- "image_thumbnail_description": "รูปขนาดย่อที่มีการลบข้อมูลเมตาด้าต้า ใช้เมื่อดูภาพถ่ายในกลุ่ม เช่น ในไทม์ไลน์หลัก",
+ "image_thumbnail_description": "รูปขนาดย่อที่มีการลบข้อมูลเมตาดาต้า ใช้เมื่อดูภาพถ่ายในกลุ่ม เช่น ในไทม์ไลน์หลัก",
"image_thumbnail_quality_description": "คุณภาพของภาพขนาดย่อตั้งแต่ 1-100 ยิ่งสูงยิ่งดี แต่จะทำให้ไฟล์มีขนาดใหญ่ขึ้นและอาจทำให้แอปตอบสนองช้าลง",
"image_thumbnail_title": "ตั้งค่า Thumbnail",
"import_config_from_json_description": "นำเข้าการตั้งค่าระบบโดยการอัปโหลดไฟล์คอนฟิก JSON",
- "job_concurrency": "{job} งานพร้อมกัน",
+ "integrity_checks_checksum_files": "ไฟล์ Checksum",
+ "integrity_checks_checksum_files_description": "กำหนดค่าการตรวจสอบ Checksum",
+ "integrity_checks_checksum_files_enable_description": "เปิดใช้งานการตรวจสอบ Checksum",
+ "integrity_checks_checksum_files_percentage_limit": "ขีดจำกัดร้อยละ",
+ "integrity_checks_checksum_files_percentage_limit_description": "กำหนดค่าร้อยละสูงสุดระหว่าง 0.01 ถึง 1 สำหรับการตรวจสอบ Checksum ในแต่ละรอบ",
+ "integrity_checks_checksum_files_time_limit": "จำกัดเวลา",
+ "integrity_checks_checksum_files_time_limit_description": "กำหนดระยะเวลาสูงสุดที่ควรใช้สำหรับการตรวจสอบ Checksum ในแต่ละรอบการทำงาน (ms)",
+ "integrity_checks_missing_files": "ไฟล์ที่ขาดหายไป",
+ "integrity_checks_missing_files_description": "กำหนดความถี่และเปิดหรือปิดการตรวจสอบไฟล์ที่ขาดหายไป",
+ "integrity_checks_missing_files_enable_description": "เปิดการตรวจสอบไฟล์ที่ขาดหายไป",
+ "integrity_checks_settings": "การตรวจสอบความถูกต้องสมบูรณ์",
+ "integrity_checks_settings_description": "จัดการรอบการตรวจสอบความถูกต้องสมบูรณ์",
+ "integrity_checks_untracked_files": "ไฟล์ที่ไม่ถูกติดตาม",
+ "integrity_checks_untracked_files_description": "กำหนดความถี่และเปิดหรือปิดการตรวจสอบไฟล์ที่ไม่ถูกติดตาม",
+ "integrity_checks_untracked_files_enable_description": "เปิดการตรวจสอบไฟล์ที่ไม่ถูกติดตาม",
+ "job_concurrency": "{job} ที่ทำงานพร้อมกัน",
"job_created": "สร้างงานเรียบร้อย",
"job_not_concurrency_safe": "งานนี้ทำงานพร้อมกันแบบปลอดภัยไม่ได้",
"job_settings": "การตั้งค่างาน",
@@ -227,7 +242,7 @@
"map_reverse_geocoding": "ประมวลผลชื่อทางภูมิศาสตร์",
"map_reverse_geocoding_enable_description": "เปิดใช้งานประมวลผลชื่อทางภูมิศาสตร์",
"map_reverse_geocoding_settings": "การตั้งค่าประมวลผลชื่อทางภูมิศาสตร์",
- "map_settings": "การตั้งค่าแผนที่และ GPS",
+ "map_settings": "แผนที่",
"map_settings_description": "จัดการการตั้งค่าแผนที่",
"map_style_description": "URL ไปยังธีมแผนที่ style.json",
"memory_cleanup_job": "ล้างความทรงจำ",
@@ -289,6 +304,9 @@
"oauth_mobile_redirect_uri": "URI เปลี่ยนเส้นทางบนโทรศัพท์",
"oauth_mobile_redirect_uri_override": "แทนที่ URI เปลี่ยนเส้นทางบนโทรศัพท์",
"oauth_mobile_redirect_uri_override_description": "เปิดเมื่อผู้ให้บริการ OAuth ไม่อนุญาต URI เช่น \"{callback}\"",
+ "oauth_prompt_description": "พารามิเตอร์ prompt (เช่น select_account, login, consent)",
+ "oauth_role_claim": "สิทธ์บทบาท",
+ "oauth_role_claim_description": "มอบสิทธิ์ผู้ดูแลระบบโดยอัตโนมัติหากพบ Claim นี้ โดยค่าของ Claim อาจเป็น 'user' หรือ 'admin'",
"oauth_settings": "OAuth",
"oauth_settings_description": "จัดการการตั้งค่าล็อกอินผ่าน OAuth",
"oauth_settings_more_details": "สำหรับรายละเอียดเพิ่มเติม ให้อ้างถึงเอกสาร",
@@ -313,6 +331,8 @@
"refreshing_all_libraries": "รีเฟรชคลังภาพทั้งหมด",
"registration": "ลงทะเบียนผู้จัดการ",
"registration_description": "เนื่องจากคุณเป็นผู้ใช้งานแรกของระบบ คุณจะถูกแต่งตั้งเป็นผู้จัดการและรับผิดชอบงานบริหาร ผู้ใช้งานเพิ่มเติมจะถูกสร้างโดยคุณ",
+ "release_channel_release_candidate": "เวอร์ชัน Release Candidate",
+ "release_channel_stable": "เสถียร",
"remove_failed_jobs": "ลบงานที่ไม่สำเร็จ",
"require_password_change_on_login": "บังคับผู้ใช้งานให้เปลี่ยนรหัสผ่านเมื่อเข้าสู่ระบบครั้งแรก",
"reset_settings_to_default": "ตั้งค่าการตั้งค่าเป็นค่าเริ่มต้น",
@@ -407,6 +427,14 @@
"transcoding_preferred_hardware_device_description": "ใช้ได้กับ VAAPI และ QSV เท่านั้น ตั้งค่าโหนด dri ที่ใช้สำหรับทรานส์โค้ดฮาร์ดแวร์",
"transcoding_preset_preset": "พรีเซ็ต (-preset)",
"transcoding_preset_preset_description": "ความเร็วในการบีบอัด พรีเซ็ตที่ช้ากว่าจะสร้างไฟล์ที่มีขนาดเล็กลงและเพิ่มคุณภาพเมื่อกำหนดเป้าหมายที่อัตราบิตเรตที่กำหนด VP9 จะไม่สนใจความเร็วที่สูงกว่า 'faster'",
+ "transcoding_realtime": "ทรานส์โค้ดแบบเรียลไทม์ [EXPERIMENTAL]",
+ "transcoding_realtime_description": "เปิดการทรานส์โค้ดแบบเรียลไทม์ขณะที่วิดีโอกำลังสตรีม ช่วยให้เปลี่ยนคุณภาพวิดีโอได้ แต่อาจทำให้เกิดความหน่วงในการเล่นสูงขึ้นและกระตุก ขึ้นอยู่กับความสามารถของเซิร์ฟเวอร์",
+ "transcoding_realtime_enabled": "เปิดการทรานส์โค้ดแบบเรียลไทม์",
+ "transcoding_realtime_enabled_description": "หากปิด เซิร์ฟเวอร์จะไม่ยอมให้เปิดเซสชันทรานส์โค้ดแบบเรียลไทม์ใหม่",
+ "transcoding_realtime_resolutions": "ความละเอียด",
+ "transcoding_realtime_resolutions_description": "ความละเอียดที่มีให้เลือกสำหรับการทรานส์โค้ดแบบเรียลไทม์ การใช้ความละเอียดสูงอาจทำให้เกิดปัญหาในการเล่นวิดีโอ หากเซิร์ฟเวอร์ไม่สามารถทรานส์โค้ดได้เร็วพอ",
+ "transcoding_realtime_video_codecs": "โคเดกวิดีโอ",
+ "transcoding_realtime_video_codecs_description": "โคเดกวิดีโอที่มีให้เลือกสำหรับการทรานส์โค้ดแบบเรียลไทม์ โดยไคลเอนต์จะเลือกตัวเลือกที่ดีที่สุดที่รองรับในระหว่างการเล่น ทั้งนี้ AV1 มีประสิทธิภาพมากกว่า HEVC ซึ่งมีประสิทธิภาพมากกว่า H.264 เมื่อใช้งานการเร่งความเร็วด้วยฮาร์ดแวร์ ให้เลือกเฉพาะโคเดกที่ตัวเร่งความเร็วสามารถเข้ารหัสได้เท่านั้น แต่หากใช้งานการทรานส์โค้ดด้วยซอฟต์แวร์ H.264 จะทำงานได้เร็วกว่า AV1 ซึ่งเร็วกว่า HEVC",
"transcoding_reference_frames": "frames อ้างอิง",
"transcoding_reference_frames_description": "จำนวนเฟรมที่จะอ้างอิงเมื่อบีบอัดเฟรมที่กำหนด ค่าที่สูงขึ้นจะช่วยเพิ่มประสิทธิภาพในการบีบอัด แต่จะทำให้การเข้ารหัสช้าลง ค่า 0 จะตั้งค่านี้โดยอัตโนมัติ",
"transcoding_required_description": "เฉพาะวิดีโอที่ไม่อยู่ในรูปแบบที่ยอมรับเท่านั้น",
@@ -418,13 +446,13 @@
"transcoding_temporal_aq_description": "เฉพาะ NVENC เท่านั้น Temporal Adaptive Quantization จะเพิ่มคุณภาพของฉากที่มีรายละเอียดสูงและการเคลื่อนไหวต่ำ อาจไม่รองรับอุปกรณ์ที่เก่ากว่า",
"transcoding_threads": "เธรด",
"transcoding_threads_description": "ค่ายิ่งเยอะจะแปลงไฟล์เร็วกว่า แต่จะเหลือพื้นที่ให้เซิร์ฟเวอร์ประมวลผลงานอื่นน้อยลงเมื่อทํางานนี้ ค่านี้ไม่ควรมากกว่าจํานวน CPU core จะประมวลผลเต็มที่เมื่อตั้งเป็น 0",
- "transcoding_tone_mapping": "การฉายโทนสี",
+ "transcoding_tone_mapping": "การทำ Tone-mapping",
"transcoding_tone_mapping_description": "พยายามรักษารูปแบบวิดีโอ HDR เมื่อแปลงเป็น SDR อัลกอริทึมแต่ละตัวจะปรับสี,รายละเอียด และความสว่างแตกต่างกัน Hable จะรักษารายละเอียด Mobius จะรักษาสี และ Reinhard จะรักษาความสว่าง",
"transcoding_transcode_policy": "กฎการแปลงไฟล์",
"transcoding_transcode_policy_description": "นโยบายเกี่ยวกับเวลาที่วิดีโอจะต้องได้รับการแปลงรหัส วิดีโอ HDR และวิดีโอที่มีรูปแบบพิกเซลอื่นนอกจาก YUV 4:2:0 จะได้รับการแปลงรหัสเสมอ (ยกเว้นในกรณีที่ปิดใช้งานการแปลงรหัส)",
- "transcoding_two_pass_encoding": "การแปลงไฟล์สองรอบ",
+ "transcoding_two_pass_encoding": "การเข้ารหัสแบบ Two-pass",
"transcoding_two_pass_encoding_setting_description": "การแปลงไฟล์สองรอบจะช่วยให้ได้วิดีโอที่ดีขึ้น เมื่อเปิดใช้งาน bitrate สูงสุด (จำเป็นสำหรับไฟล์ H.264 และ HEVC) โหมดนี้จะใช้ช่วง bitrate ที่ขึ้นอยู่กับค่า bitrate สูงสุดและไม่สนใจ CRF สำหรับ VP9 สามารถใช้ค่า CRF ได้ถ้าปิดใช้งาน bitrate สูงสุด",
- "transcoding_video_codec": "แบบไฟล์วิดีโอ",
+ "transcoding_video_codec": "โคเดกวิดีโอ",
"transcoding_video_codec_description": "VP9 มีประสิทธิภาพสูงและเข้ากันกับเว็บได้ดี แต่ใช้เวลาแปลงไฟล์นานกว่า HEVC มีประสิทธิภาพคล้ายกัน แต่เข้ากันกับเว็บได้น้อยกว่า H.264 เข้ากันกับทุกอุปกรณ์ และแปลงไฟล์เร็ว แต่ได้ไฟล์ที่ใหญ่ขึ้น AV1 เป็นไฟล์ที่มีประสิทธิภาพมากที่สุด แต่ไม่เข้ากันกับอุปกรณ์เก่า",
"trash_enabled_description": "เปิดใช้งานถังขยะ",
"trash_number_of_days": "จํานวนวัน",
@@ -432,6 +460,8 @@
"trash_settings": "การตั้งค่าถังขยะ",
"trash_settings_description": "จัดการการตั้งค่าถังขยะ",
"unlink_all_oauth_accounts": "เลิกลิงก์บัญชี OAuth ทั้งหมด",
+ "unlink_all_oauth_accounts_description": "อย่าลืมปลดการเชื่อมต่อบัญชี OAuth ทั้งหมดก่อนย้ายไปผู้ให้บริการใหม่",
+ "unlink_all_oauth_accounts_prompt": "คุณแน่ใจว่าต้องการปลดการเชื่อมต่อบัญชี OAuth ทั้งหมด? การดำเนินการต่อจะรีเซ็ต OAuth ID ของผู้ใช้แต่ละราย และไม่สามารถย้อนกลับได้",
"user_cleanup_job": "ล้างผู้ใช้",
"user_delete_delay": "บัญชีและสื่อของ {user} จะถูกตั้งเวลาสำหรับการลบถาวรใน {delay, plural, one {# วัน} other {# วัน}}",
"user_delete_delay_settings": "ลบการถ่วงเวลา",
@@ -448,6 +478,8 @@
"user_settings_description": "จัดการการตั้งค่าผู้ใช้",
"user_successfully_removed": "ลบผู้ใช้ {email} เสร็จสมบูรณ์แล้ว",
"users_page_description": "หน้าผู้ใช้ผู้ดูแล",
+ "version_check_channel": "ช่องทางออกรุ่นใหม่",
+ "version_check_channel_description": "เลือกช่องทางที่คุณต้องการได้รับการประกาศเวอร์ชั่นใหม่",
"version_check_enabled_description": "เช็ค GitHub เป็นระยะ ๆ เพื่อตรวจสอบรุ่นใหม่",
"version_check_implications": "การตรวจสอบเวอร์ชันใหม่จะต้องติดต่อกับ {server} เป็นระยะ",
"version_check_settings": "ตรวจสอบรุ่น",
@@ -463,14 +495,14 @@
"advanced_settings_clear_image_cache_error": "ไม่สามารถล้างแคชรูปภาพ",
"advanced_settings_clear_image_cache_success": "เคลียร์พื้นที่ {size} สำเร็จ",
"advanced_settings_log_level_title": "ระดับการ Log: {level}",
- "advanced_settings_prefer_remote_subtitle": "อุปกรณ์บางเครื่องโหลดภาพขนาดย่อจากสื่อที่อยู่ในเครื่องช้ามาก เปิดการตั้งค่านี้เพื่อโหลดรูปภาพทางไกลแทน",
- "advanced_settings_prefer_remote_title": "ให้ความสำคัญกับรูปภาพรีโมท",
+ "advanced_settings_prefer_remote_subtitle": "อุปกรณ์บางเครื่องโหลดภาพขนาดย่อจากสื่อที่อยู่ในเครื่องช้ามาก เปิดการตั้งค่านี้เพื่อโหลดรูปภาพจากเซิร์ฟเวอร์แทน",
+ "advanced_settings_prefer_remote_title": "เลือกภาพจากเซิร์ฟเวอร์เป็นหลัก",
"advanced_settings_proxy_headers_subtitle": "กำหนด proxy headers ที่ Immich ควรส่งพร้อมกับแต่ละคำขอเครือข่าย",
"advanced_settings_proxy_headers_title": "ส่วนหัวพร็อกซีกำหนดเอง [คุณสมบัติทดลอง]",
"advanced_settings_readonly_mode_subtitle": "เปิดใช้งานโหมดอ่านเท่านั้น ซึ่งจะทำให้สามารถดูรูปภาพได้อย่างเดียว แต่ไม่สามารถเลือกหลายภาพ, แชร์, แคสต์, ลบภาพได้ เปิดหรือปิดใช้งานโหมดอ่านเท่านั้นได้จากภาพโปรไฟล์บนหน้าจอหลัก",
"advanced_settings_readonly_mode_title": "โหมดอ่านเท่านั้น",
"advanced_settings_sync_remote_deletions_subtitle": "ลบหรือกู้คืนไฟล์บนอุปกรณ์นี้โดยอัตโนมัติเมื่อดำเนินการดังกล่าวผ่านเว็บ",
- "advanced_settings_sync_remote_deletions_title": "ซิงก์การลบจากระยะไกล [คุณสมบัติทดลอง]",
+ "advanced_settings_sync_remote_deletions_title": "ซิงก์การลบจากบนเซิร์ฟเวอร์ [ทดลองใช้]",
"advanced_settings_tile_subtitle": "ตั้งค่าผู้ใช้งานขั้นสูง",
"advanced_settings_troubleshooting_subtitle": "เปิดฟีเจอร์เพิ่มเติมเพื่อแก้ไขปัญหา",
"advanced_settings_troubleshooting_title": "แก้ไขปัญหา",
@@ -542,6 +574,7 @@
"asset_added_to_album": "เพิ่มไปยังอัลบั้มแล้ว",
"asset_adding_to_album": "กำลังเพิ่มไปยังอัลบั้ม…",
"asset_created": "สร้างสื่อแล้ว",
+ "asset_day_count": "{date}: สื่อ {count, plural, one {# รายการ} other {# รายการ}}",
"asset_description_updated": "อัปเดตรายละเอียดสำเร็จ",
"asset_hashing": "กำลังแฮช…",
"asset_list_group_by_sub_title": "กลุ่มโดย",
@@ -564,6 +597,7 @@
"asset_viewer_settings_title": "ตัวดูทรัพยากร",
"assets": "สื่อ",
"assets_added_to_album_count": "เพิ่ม {count, plural, one {# asset} other {# assets}} ไปยังอัลบั้ม",
+ "assets_added_to_album_partial_count": "เพิ่มสื่อ {successCount} จากทั้งหมด {totalCount} {totalCount, plural, one {รายการ} other {รายการ}} ไปยังอัลบั้มแล้ว",
"assets_added_to_albums_count": "เพิ่มสื่อ {assetTotal, plural, one {# รายการ} other {# รายการ}} ไปยังอัลบั้ม {albumTotal, plural, one {# รายการ} other {# รายการ}}แล้ว",
"assets_cannot_be_added_to_album_count": "ไม่สามารถเพิ่ม {count, plural, one {สื่อ} other {สื่อ}} ไปยังอัลบั้ม",
"assets_cannot_be_added_to_albums": "ไม่สามารถเพิ่ม{count, plural, one {สื่อ} other {สื่อ}}ไปยังอัลบั้มใด ๆ ได้",
@@ -571,14 +605,14 @@
"assets_moved_to_trash_count": "ย้าย {count, plural, one {# asset} other {# assets}} ไปยังถังขยะแล้ว",
"assets_permanently_deleted_count": "ลบ {count, plural, one {# asset} other {# assets}} ทิ้งถาวร",
"assets_removed_count": "{count, plural, one {# asset} other {# assets}} ถูกลบแล้ว",
- "assets_restore_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการกู้คืนสื่อที่ทิ้งทั้งหมด? คุณไม่สามารถย้อนกลับการดำเนินการนี้ได้! โปรดทราบว่าสื่อออฟไลน์ใดๆ ไม่สามารถกู้คืนได้ด้วยวิธีนี้",
+ "assets_restore_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการกู้คืนสื่อที่ทิ้งไปทั้งหมด? คุณจะไม่สามารถย้อนการดำเนินการนี้กลับได้ โปรดทราบว่าสื่อออฟไลน์ใดๆ ไม่สามารถกู้คืนได้ด้วยวิธีนี้",
"assets_restored_count": "{count, plural, one {# asset} other {# assets}} คืนค่า",
"assets_trashed": "ย้าย {count} สื่อไปยังถังขยะ",
"assets_trashed_count": "{count, plural, one {# asset} other {# assets}} ถูกลบ",
"assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}} อยู่ในอัลบั้มอยู่แล้ว",
"assets_were_part_of_albums_count": "{count, plural, one {สื่อ} other {สื่อ}}เป็นส่วนหนึ่งของอัลบั้มอยู่แล้ว",
"authorized_devices": "อุปกรณ์ที่ได้รับอนุญาต",
- "automatic_endpoint_switching_subtitle": "เชื่อมต่อด้วย LAN ภายในวง Wi-Fi ที่ระบุไว้ และเชื่อมต่อด้วยวิธีอื่นเมื่ออยู่นอก Wi-Fi ที่ระบุไว้",
+ "automatic_endpoint_switching_subtitle": "เชื่อมต่อโดยตรงพ่านวง Wi-Fi ที่ระบุไว้ และเชื่อมต่อด้วยวิธีอื่นเมื่ออยู่นอก Wi-Fi ที่ระบุไว้",
"automatic_endpoint_switching_title": "สลับ URL อัตโนมัติ",
"autoplay_slideshow": "เล่นสไลด์โชว์",
"back": "กลับ",
@@ -617,17 +651,19 @@
"backup_options": "ตัวเลือกการสำรองข้อมูล",
"backup_settings_subtitle": "จัดการการตั้งค่าอัปโหลด",
"backward": "กลับหลัง",
+ "battery_optimization_backup_reliability": "การปิดการประหยัดแบตเตอรี่สามารถทำให้การสำรองข้อมูลในพื้นหลังไปได้อย่างราบรื่นขึ้นได้",
"biometric_auth_enabled": "การพิสูจน์อัตลักษณ์เพื่อยืนยันตัวบุคคลถูกเปิด",
"biometric_locked_out": "การพิสูจน์อัตลักษณ์เพื่อยืนยันตัวบุคคลถูกล็อค",
"biometric_no_options": "ไม่มีตัวเลือกการพิสูจน์อัตลักษณ์เพื่อยืนยันตัวบุคคล",
"biometric_not_available": "ไม่สามารถใช้งานการพิสูจน์อัตลักษณ์เพื่อยืนยันตัวบุคคลได้บนอุปกรณ์นี้",
"birthdate_set_description": "วันเกิดจะใช้เพื่อคำนวณอายุของบุคคลนี้ในขณะที่ถ่ายรูป",
"blurred_background": "พื้นหลังแบบเบลอ",
+ "browse_templates": "ค้นหาเท็มเพลต",
"bugs_and_feature_requests": "รายงานข้อผิดพลาดและข้อเสนอแนะ",
"build": "สร้าง",
"build_image": "สร้าง Image",
- "bulk_delete_duplicates_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการลบ {count, plural, one {# duplicate asset} other {# duplicate asset}} เป็นกลุ่ม การดำเนินการนี้จะเก็บสื่อที่ใหญ่ที่สุดของแต่ละกลุ่มและลบสื่อที่ซ้ำกันทั้งหมดอย่างถาวร คุณไม่สามารถย้อนกลับการดำเนินการนี้ได้!",
- "bulk_keep_duplicates_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการเก็บ {count, plural, one {# duplicate asset} other {# duplicate asset}} ไว้ การดำเนินการนี้จะแก้ไขกลุ่มที่ซ้ำกันทั้งหมดโดยไม่ต้องลบสิ่งใดเลย",
+ "bulk_delete_duplicates_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการลบ {count, plural, one {# สื่อที่ซ้ำกัน} other {# สื่อที่ซ้ำกัน}}เป็นกลุ่ม การดำเนินการนี้จะเก็บสื่อที่ใหญ่ที่สุดของแต่ละกลุ่มและลบสื่อที่ซ้ำกันทั้งหมดอย่างถาวร คุณไม่สามารถย้อนกลับการดำเนินการนี้ได้!",
+ "bulk_keep_duplicates_confirmation": "คุณต้องการที่จะเก็บ {count, plural, one {# สื่อที่ซ้ำกัน} other {# สื่อที่ซ้ำกัน}} ไว้หรือไม่ การดำเนินการนี้จะแก้ไขกลุ่มที่ซ้ำกันทั้งหมดโดยไม่มีการลบสิ่งใดเลย",
"bulk_trash_duplicates_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการลบข้อมูลจำนวนมาก {count, plural, one {# duplicate asset} other {# duplicate asset}} การทำเช่นนี้จะเก็บสื่อที่ใหญ่ที่สุดของแต่ละกลุ่มและลบข้อมูลซ้ำอื่น ๆ ทั้งหมด",
"buy": "ซื้อ Immich",
"camera": "กล้อง",
@@ -639,9 +675,10 @@
"canceling": "กำลังยกเลิก",
"cannot_merge_people": "ไม่สามารถรวมกลุ่มคนได้",
"cannot_undo_this_action": "การกระทำนี้ไม่สามารถย้อนกลับได้!",
- "cannot_update_the_description": "ไม่สามารถอัพเดทรายละเอียดได้",
+ "cannot_update_the_description": "ไม่สามารถอัปเดทรายละเอียดได้",
"cast": "แคสต์",
"cast_description": "ตั้งค่าปลายทางแคสต์",
+ "change": "เปลี่ยน",
"change_date": "เปลี่ยนวันที่",
"change_description": "แก้ไขคำอธิบาย",
"change_display_order": "เปลี่ยนลำดับการแสดงผล",
@@ -663,6 +700,7 @@
"charging": "กำลังชาร์จ",
"charging_requirement_mobile_backup": "การสำรองข้อมูลในเบื้องหลังจะทำงานเฉพาะเมื่ออุปกรณ์กำลังชาร์จอยู่",
"check_logs": "ตรวจสอบบันทึก",
+ "checksum": "Checksum",
"choose": "เลือก",
"choose_matching_people_to_merge": "เลือกคนที่ตรงกันเพื่อรวมเข้าด้วยกัน",
"city": "เมือง",
@@ -714,7 +752,7 @@
"confirm_admin_password": "ยืนยันรหัสผ่านผู้ดูแลระบบ",
"confirm_delete_face": "คุณแน่ใจว่าต้องการลบใบหน้า{name}ออกหรือไม่?",
"confirm_delete_shared_link": "คุณต้องการที่จะลบลิงก์ที่แชร์ใช่หรือไม่ ?",
- "confirm_keep_this_delete_others": "จะลบทั้งหมดในรายการ และยกเว้นสื่อนี้หรือไม่ คุณแน่ใจใช่ไหมที่ต้องการดำเนินการต่อ?",
+ "confirm_keep_this_delete_others": "จะลบสื่อทั้งหมดใน Stack ยกเว้นสื่อนี้ คุณต้องการที่จะดำเนินการต่อหรือไม่",
"confirm_new_pin_code": "ยืนยันรหัสประจำตัว (PIN)",
"confirm_password": "ยืนยันรหัสผ่าน",
"confirm_tag_face": "คุณต้องการแท็กใบหน้านี้ด้วยชื่อ {name} หรือไม่",
@@ -724,6 +762,7 @@
"contain": "มีอยู่",
"context": "บริบท",
"continue": "ต่อไป",
+ "control_bottom_app_bar_add_tags": "เพิ่มแท็ก",
"control_bottom_app_bar_delete_from_local": "ลบจากเครื่อง",
"control_bottom_app_bar_edit_location": "แก้ไขตำแหน่ง",
"control_bottom_app_bar_edit_time": "แก้ไขวันและเวลา",
@@ -732,6 +771,7 @@
"copied_to_clipboard": "คัดลอกไปยังคลิปบอร์ดแล้ว!",
"copy_error": "คัดลอกข้อผิดพลาด",
"copy_image": "คัดลอกภาพ",
+ "copy_json": "คัดลอก JSON",
"copy_link": "คัดลอกลิงก์",
"copy_link_to_clipboard": "คัดลอกลิงก์ไปยังคลิปบอร์ด",
"copy_password": "คัดลอกรหัสผ่าน",
@@ -743,6 +783,7 @@
"create_album": "สร้างอัลบั้ม",
"create_album_page_untitled": "ไม่มีชื่อ",
"create_api_key": "สร้างคีย์ API",
+ "create_first_workflow": "สร้าง Workflow อันใหม่",
"create_library": "สร้างคลังภาพ",
"create_link": "สร้างลิงก์",
"create_link_to_share": "สร้างลิงก์เพื่อแชร์",
@@ -752,14 +793,17 @@
"create_new_person_hint": "กำหนดสื่อที่เลือกให้กับคนใหม่",
"create_new_user": "สร้างผู้ใช้งานใหม่",
"create_person": "สร้างบุคคล",
+ "create_person_subtitle": "เพิ่มชื่อให้กับใบหน้าที่เลือกเพื่อสร้างและแท็กบุคคลคนใหม่",
"create_shared_album_page_share_add_assets": "เพิ่มทรัพยากร",
"create_shared_album_page_share_select_photos": "เลือกรูปภาพ",
"create_shared_link": "สร้างลิงก์ที่แชร์",
"create_tag": "สร้างแท็กใหม่",
"create_tag_description": "สร้างแท็กใหม่ สำหรับแท็กที่ซ้อนกัน โปรดป้อนเส้นทางทั้งหมดของแท็ก รวมถึงเครื่องหมายทับ",
"create_user": "สร้างผู้ใช้",
+ "create_workflow": "สร้าง Workflow",
"created": "สร้างแล้ว",
"created_at": "สร้างเมื่อ",
+ "creating_linked_albums": "กำลังสร้างอัลบั้มที่เชื่อมกัน…",
"crop": "ครอป",
"crop_aspect_ratio_free": "อิสระ",
"crop_aspect_ratio_original": "ต้นฉบับ",
@@ -770,7 +814,6 @@
"custom_date": "กำหนดวันที่เอง",
"custom_locale": "กำหนดภาษาท้องถิ่นเอง",
"custom_locale_description": "ใช้รูปแบบวันที่ เวลา และตัวเลขจากภาษาและภูมิภาคที่เลือก",
- "custom_url": "URL กำหนดเอง",
"cutoff_date_description": "เก็บรูปภาพจากช่วงเวลา…",
"cutoff_day": "{count, plural, one {วัน} other {วัน}}",
"cutoff_year": "{count, plural, one {ปี} other {ปี}}",
@@ -787,7 +830,10 @@
"day": "วัน",
"days": "วัน",
"deduplicate_all": "รวมเข้าด้วยกันทั้งหมด",
+ "default_quality_subtitle": "คุณภาพของภาพที่จะใช้เมื่อแตะปุ่มแชร์ กดค้างที่ปุ่มแชร์เพื่อเลือกคุณภาพในแต่ละครั้ง",
+ "default_share_quality": "ค่าเริ่มต้นคุณภาพการแชร์",
"delete": "ลบออก",
+ "delete_action_confirmation_message": "ต้องการที่ลบสื่อนี้หรือไม่ การลบจะย้ายสื่อนี้ไปยังถังขยะของเซรฟเวอร์และจะถามคุณถ้าคุณอยากลบสื่อนี้ออกจากเครื่องของคุณ",
"delete_action_prompt": "ลบ {count} รายการแล้ว",
"delete_album": "ลบอัลบั้ม",
"delete_api_key_prompt": "คุณต้องการลบคีย์ API นี้หรือไม่?",
@@ -847,7 +893,10 @@
"downloading_asset_filename": "กำลังดาวน์โหลด {filename}",
"downloading_from_icloud": "กำลังดาวน์โหลดจากไอคลาว",
"downloading_media": "กำลังดาวน์โหลดสื่อ",
+ "drag_to_reorder": "ลากเพื่อจัดลำดับ",
"drop_files_to_upload": "วางไฟล์ในช่องอัปโหลด",
+ "duplicate": "ทำสำเนา",
+ "duplicate_workflow": "ทำสำเนา Workflow",
"duplicates": "รายการที่ซ้ำกัน",
"duplicates_description": "แก้ไขแต่ละกลุ่มโดยระบุว่ากลุ่มใดซ้ำกันหากมี",
"duration": "ระยะเวลา",
@@ -858,6 +907,7 @@
"edit_date": "แก้ไขวันที่",
"edit_date_and_time": "แก้ไขวันที่และเวลา",
"edit_date_and_time_action_prompt": "แก้ไขวันที่และเวลา {count} รายการแล้ว",
+ "edit_date_and_time_by_offset": "ย้ายวันที่ไปตามปริมาณ",
"edit_description": "แก้ไขคำอธิบาย",
"edit_exclusion_pattern": "แก้ไขข้อยกเว้น",
"edit_faces": "แก้ไขหน้า",
@@ -880,6 +930,8 @@
"editor_edits_applied_success": "การแก้ไขถูกบันทึกสำเร็จแล้ว",
"editor_flip_horizontal": "กลับด้านทางแนวนอน",
"editor_flip_vertical": "กลับด้านทางแนวตั้ง",
+ "editor_handle_corner": "ที่จับตรงมุม{corner, select, top_left {บนซ้าย} top_right {บนขวา} bottom_left {ล่างซ้าย} bottom_right {ล่างขวา} other {}}",
+ "editor_handle_edge": "ที่จับตรงขอบ{edge, select, top {บน} bottom {ล่าง} left {ซ้าย} right {ขวา} other {}}",
"editor_orientation": "การวางแนว",
"editor_reset_all_changes": "ยกเลิกการแก้ไข",
"editor_rotate_left": "หมุน 90 องศาทวนเข็มนาฬิกา",
@@ -888,7 +940,7 @@
"email_notifications": "แจ้งเตือนผ่านอีเมล",
"empty_folder": "โฟลเดอร์นี้ว่างเปล่า",
"empty_trash": "ทิ้งจากถังขยะ",
- "empty_trash_confirmation": "คุณแน่ใจหรือไม่ว่าต้องการล้างถังขยะ การดำเนินการนี้จะลบทรัพยากรทั้งหมดในถังขยะออกจาก Immich อย่างถาวร\nคุณไม่สามารถย้อนกลับการดำเนินการนี้ได้!",
+ "empty_trash_confirmation": "คุณต้องการที่จะล้างถังขยะหรือไม่ การดำเนินการนี้จะลบสื่อทั้งหมดในถังขยะออกจาก Immich อย่างถาวร\nคุณไม่สามารถย้อนกลับการดำเนินการนี้ได้!",
"enable": "เปิดใช้งาน",
"enable_backup": "เปิดการสำรองข้อมูล",
"enable_biometric_auth_description": "ใส่พินเพื่อเปิดการพิสูจน์อัตลักษณ์เพื่อยืนยันตัวบุคคล",
@@ -912,7 +964,7 @@
"cannot_navigate_next_asset": "ไม่สามารถเปลี่ยนเส้นทางได้",
"cannot_navigate_previous_asset": "ไม่สามารถเปลี่ยนเส้นทางก่อนหน้าได้",
"cant_apply_changes": "เกิดข้อผิดพลาดในการเปลี่ยนแปลง",
- "cant_change_activity": "Can't {enabled, select, true {disable} other {enable}} activity",
+ "cant_change_activity": "ไม่สามารถ{enabled, select, true {ปิด} other {เปิด}}กิจกรรมได้",
"cant_change_asset_favorite": "ไม่สามารถเปลี่ยนสื่อที่ชื่นชอบได้",
"cant_change_metadata_assets_count": "ไม่สามารถแก้ไขข้อมูล metadata ของ {count, plural, one {# สื่อ} other {# สื่อ}}",
"cant_get_faces": "เกิดข้อผิดพลาดในการเรียกดูใบหน้า",
@@ -938,10 +990,12 @@
"failed_to_load_people": "ไม่สามารถโหลดบุคคลได้",
"failed_to_remove_product_key": "ไม่สามารถลบ product key ได้",
"failed_to_reset_pin_code": "ไม่สามารถรีเซ็ตรหัส PIN",
- "failed_to_stack_assets": "Failed to stack assets",
- "failed_to_unstack_assets": "Failed to un-stack assets",
- "failed_to_update_notification_status": "อัพเดทสถานะการแจ้งเตือนไม่สำเร็จ",
+ "failed_to_stack_assets": "ไม่สามารถทำสื่อให้เป็น Stack ได้",
+ "failed_to_tag_assets": "การแท็กสื่อล้มเหลว",
+ "failed_to_unstack_assets": "ไม่สามารถแตกสื่อออกจาก Stack ได้",
+ "failed_to_update_notification_status": "อัปเดทสถานะการแจ้งเตือนไม่สำเร็จ",
"incorrect_email_or_password": "อีเมลหรือรหัสผ่านไม่ถูกต้อง",
+ "library_folder_already_exists": "มีพาธที่ชี้ไปไลบรารี่นี้อยู่แล้ว",
"page_not_found": "ไม่พบหน้า",
"paths_validation_failed": "การตรวจสอบ {paths, plural, one {# path} other {# paths}} ล้มเหลว",
"profile_picture_transparent_pixels": "รูปโปรไฟล์ไม่สามารถมีพิกเซลโปร่งใสได้ โปรดซูมเข้าและ/หรือย้ายรูปภาพ",
@@ -965,6 +1019,7 @@
"unable_to_complete_oauth_login": "ไม่สามารถทำการเข้าสู่ระบบ OAuth ให้เสร็จสมบูรณ์ได้",
"unable_to_connect": "ไม่สามารถเชื่อมต่อได้",
"unable_to_copy_to_clipboard": "ไม่สามารถคัดลอกไปยังคลิปบอร์ดได้ ตรวจสอบให้แน่ใจว่าคุณเข้าถึงหน้าผ่านทาง https",
+ "unable_to_create": "ไม่สามารถสร้าง Workflow นี้ได้",
"unable_to_create_admin_account": "ไม่สามารถสร้างบัญชีผู้ดูแลระบบได้",
"unable_to_create_api_key": "ไม่สามารถสร้างคีย์ API",
"unable_to_create_library": "ไม่สามารถสร้างคลังภาพได้",
@@ -975,6 +1030,7 @@
"unable_to_delete_exclusion_pattern": "ไม่สามารถลบรูปแบบที่ยกเว้น",
"unable_to_delete_shared_link": "ไม่สามารถลบลิงก์ที่แชร์ได้",
"unable_to_delete_user": "ไม่สามารถลบผู้ใช้ได้",
+ "unable_to_delete_workflow": "ไม่สามารถลบ Workflow นี้ได้",
"unable_to_download_files": "ไม่สามารถดาวน์โหลดไฟล์ได้",
"unable_to_edit_exclusion_pattern": "ไม่สามารถแก้ไขรูปแบบยกเว้นได้",
"unable_to_empty_trash": "ไม่สามารถลบถังขยะได้",
@@ -1014,6 +1070,7 @@
"unable_to_scan_library": "ไม่สามารถสแกนคลังภาพได้",
"unable_to_set_feature_photo": "ไม่สามารถตั้งรูปภาพเป็น Feature ได้",
"unable_to_set_profile_picture": "ไม่สามารถตั้งภาพโปรไฟล์ได้",
+ "unable_to_set_rating": "ไม่สามารถให้คะแนนได้",
"unable_to_submit_job": "ไม่สามารถส่งงานได้",
"unable_to_trash_asset": "ไม่สามารถทิ้งสื่อได้",
"unable_to_unlink_account": "ไม่สามารถยกเลิกการเชื่อมโยงบัญชีผู้ใช้ได้",
@@ -1025,9 +1082,11 @@
"unable_to_update_settings": "ไม่สามารถอัปเดตการตั้งค่าได้",
"unable_to_update_timeline_display_status": "ไม่สามารถแก้ไขสถานะการแสดงลำดับเวลาได้",
"unable_to_update_user": "ไม่สามารถอัปเดตผู้ใช้ได้",
+ "unable_to_update_workflow": "ไม่สามารถแก้ไข Workflow นี้ได้",
"unable_to_upload_file": "ไม่สามารถอัปโหลดได้"
},
"errors_text": "ข้อผิดพลาด",
+ "exclusion_pattern": "รูปแบบการตัดออก",
"exif": "Exif",
"exif_bottom_sheet_description": "เพิ่มคำอธิบาย",
"exif_bottom_sheet_description_error": "ข้อผิดพลาดขณะอัปเดตคำอธิบาย",
@@ -1044,15 +1103,18 @@
"export_as_json": "ส่งออกเป็นไฟล์ JSON",
"export_database": "ส่งออกฐานข้อมูล",
"export_database_description": "ส่งออกฐานข้อมูล SQLite",
+ "exposure_time": "เวลาเปิดรับแสง",
"extension": "ส่วนต่อขยาย",
"external": "ภายนอก",
"external_libraries": "คลังภาพภายนอก",
"external_network": "การเชื่อมต่อภายนอก",
"external_network_sheet_info": "เมื่อไม่ได้เชื่อมต่อเครือข่าย Wi-Fi ที่เลือกไว้ แอปจะเชื่อมต่อเซิร์ฟเวอร์ผ่าน URL ด้านล่างที่สามารถเข้าถึงได้ตามลำดับจากบนลงล่าง",
+ "f_number": "เลข F",
"face_unassigned": "ไม่กำหนดมอบหมาย",
"failed": "ล้มเหลว",
"failed_count": "ไม่สำเร็จ: {count}",
"failed_to_authenticate": "การยืนยันตัวตนไม่สำเร็จ",
+ "failed_to_delete_file": "ไม่สามารถลบไฟล์ได้",
"failed_to_load_assets": "เกิดข้อผิดพลาดในการโหลดสื่อ",
"failed_to_load_folder": "โหลดโฟลเดอร์ไม่สำเร็จ",
"favorite": "รายการโปรด",
@@ -1070,9 +1132,11 @@
"filter": "ตัวกรอง",
"filter_people": "กรองผู้คน",
"filter_places": "กรองสถานที่",
+ "filter_tags": "ตัวกรองแท็ก",
"filters": "ตัวกรอง",
"first": "แรกสุด",
"fix_incorrect_match": "แก้ไขการจับคู่ที่ไม่ถูกต้อง",
+ "focal_length": "ระยะโฟกัส",
"folder": "โฟลเดอร์",
"folder_not_found": "ไม่พบโฟลเดอร์",
"folders": "โฟล์เดอร์",
@@ -1083,6 +1147,7 @@
"free_up_space_description": "เพิ่มพื้นที่ว่างโดยการย้ายรูปภาพและวิดีโอที่สำรองข้อมูลแล้วไปยังถังขยะของอุปกรณ์ของคุณ สำเนาที่อยู่บนเซิร์ฟเวอร์ยังคงอยู่อย่างปลอดภัย",
"free_up_space_settings_subtitle": "เพิ่มพื้นที่จัดเก็บอุปกรณ์",
"full_path": "พาธเต็ม: {path}",
+ "full_path_or_folder": "พาธเต็มหรือโฟลเดอร์",
"gcast_enabled": "Google Cast",
"gcast_enabled_description": "ฟีเจอร์นี้ต้องโหลดทรัพยากรจาก Google เพื่อทำงาน",
"general": "ทั่วไป",
@@ -1105,6 +1170,9 @@
"group_year": "จัดกลุ่มตามปี",
"haptic_feedback_title": "การตอบสนองแบบสัมผัส",
"has_quota": "เหลือพื้นที่",
+ "hash_asset": "สื่อ Hash",
+ "hashed_assets": "สือที่ Hash แล้ว",
+ "hashing": "การ Hash",
"header_settings_add_header_tip": "เพิ่มส่วนหัว",
"header_settings_field_validator_msg": "ค่าต้องไม่ว่างเปล่า",
"header_settings_header_name_input": "ชื่อ Header",
@@ -1117,6 +1185,7 @@
"hide_named_person": "ซ่อน {name}",
"hide_password": "ซ่อนรหัสผ่าน",
"hide_person": "ซ่อนบุคคล",
+ "hide_schema": "ซ่อน Schema",
"hide_text_recognition": "ซ่อนการตรวจจับข้อความ",
"hide_unnamed_people": "ซ่อนบุคคลที่ไม่ได้ระบุชื่อ",
"home_page_building_timeline": "กำลังสร้าง timeline",
@@ -1150,6 +1219,7 @@
"individual_share": "แชร์ส่วนตัว",
"individual_shares": "การแชร์เดี่ยว",
"info": "ข้อมูล",
+ "integrity_checks": "การตรวจสอบความสมบูรณ์",
"interval": {
"day_at_onepm": "ทุกวันเวลาบ่ายโมง",
"hours": "ทุก ๆ {hours, plural, one {hour} other {{hours, number} hours}}",
@@ -1160,6 +1230,7 @@
"invalid_date_format": "รูปแบบวันที่ไม่ถูกต้อง",
"invite_people": "เชิญผู้คน",
"invite_to_album": "เชิญเข้าอัลบั้ม",
+ "iso": "ISO",
"items_count": "{count, plural, one {# รายการ} other {# รายการ}}",
"jobs": "งาน",
"keep": "เก็บ",
@@ -1188,6 +1259,7 @@
"leave": "ทิ้ง",
"leave_album": "ออกจากอัลบั้ม",
"lens_model": "รุ่นเลนส์",
+ "less": "น้อยลง",
"let_others_respond": "ให้คนอื่นตอบ",
"level": "ระดับ",
"library": "คลังภาพ",
@@ -1209,10 +1281,11 @@
"linked_oauth_account": "ลิงก์บัญชีผู้ใช้ OAuth",
"list": "รายการ",
"live": "Live",
+ "load_more": "โหลดเพิ่ม",
"loading": "กำลังโหลด",
"loading_search_results_failed": "โหลดผลการค้นหาล้มเหลว",
"local": "ในเครื่อง",
- "local_asset_cast_failed": "ไม่สามารถแคสสื่อที่ไม่ถูกอัพโหลดไปยังเซิร์ฟเวอร์",
+ "local_asset_cast_failed": "ไม่สามารถแคสสื่อที่ไม่ได้อัปโหลดไปยังเซิร์ฟเวอร์",
"local_assets": "สื่อในเครื่อง",
"local_id": "ID ในเครื่อง",
"local_media_summary": "สรุปสื่อในเครื่อง",
@@ -1228,6 +1301,7 @@
"location_picker_longitude_hint": "เพิ่มลองจิจูตตรงนี้",
"lock": "ล็อค",
"locked_folder": "โฟลเดอร์ล็อค",
+ "log_detail_title": "รายละเอียดล็อก",
"log_out": "ออกจากระบบ",
"log_out_all_devices": "ออกจากระบบทุกอุปกรณ์",
"logged_in_as": "{user} กำลังล็อคอิน",
@@ -1249,12 +1323,13 @@
"login_form_handshake_exception": "เกิดข้อผิดพลาดกระบวนการ Handshake กับเซิร์ฟเวอร์ ถ้ากำลังใช้ใบรับบรองแบบ self-signed กรุณาตั้งค่าอนุญาตใบรับรองแบบ self-signed",
"login_form_password_hint": "รหัสผ่าน",
"login_form_server_empty": "กรอก URL เซิร์ฟเวอร์",
- "login_form_server_error": "ไม่สามารถติดต่อกับเซิร์ฟเวอร์",
- "login_has_been_disabled": "ปิดการใช้งานการเข้าสู่ระบบแล้ว",
+ "login_form_server_error": "ไม่สามารถเชื่อมต่อเซิร์ฟเวอร์",
+ "login_has_been_disabled": "ปิดใช้งานการเข้าสู่ระบบแล้ว",
"login_password_changed_error": "เกิดข้อผิดพลาดขณะเปลี่ยนรหัสผ่าน",
"login_password_changed_success": "เปลี่ยนรหัสผ่านสำเร็จ",
"logout_all_device_confirmation": "คุณต้องการออกจากระบบทุกอุปกรณ์ ใช่หรือไม่ ?",
"logout_this_device_confirmation": "คุณต้องการออกจากระบบบนอุปกรณ์นี้หรือไม่?",
+ "logs": "ล็อก",
"longitude": "ลองจิจูด",
"look": "ดู",
"loop_videos": "วนวิดีโอ",
@@ -1277,6 +1352,7 @@
"maintenance_restore_library_hint_missing_files": "ไฟล์สำคัญของคุณอาจขาดหายไป",
"maintenance_restore_library_hint_regenerate_later": "คุณสามารถสร้างใหม่ได้ในการตั้งค่า",
"maintenance_restore_library_hint_storage_template_missing_files": "หากคุณใช้เทมเพลตที่เก็บข้อมูล ไฟล์ของคุณอาจจะขาดหายไป",
+ "maintenance_restore_library_loading": "กำลังโหลดระบบตรวจสอบและฮิวริสติก…",
"maintenance_task_backup": "กำลังสร้างไฟล์สำรองของฐานข้อมูลเดิม…",
"maintenance_task_migrations": "กำลังดำเนินการย้ายฐานข้อมูล…",
"maintenance_task_restore": "กำลังกู้คืนการสำรองข้อมูลที่เลือก…",
@@ -1299,6 +1375,7 @@
"map_location_picker_page_use_location": "ใช้ตำแหน่งนี้",
"map_location_service_disabled_content": "ต้องเปิดตำแหน่งเพื่อแสดงทรัพยากรจากตำแหน่งปัจจุบัน เปิดตอนนี้?",
"map_location_service_disabled_title": "บริการตำแหน่งถูกปิด",
+ "map_marker_for_image": "เครื่องหมายแผนที่ของภาพที่ถ่ายในเมือง{city}, {country}",
"map_marker_with_image": "หมุดแผนที่กับรูปถ่าย",
"map_no_location_permission_content": "จำเป็นต้องมีสิทธิ์เข้าถึงตำแหน่งเพื่อแสดงทรัพยากรจากตำแหน่งปัจจุบัน อนุญาตตอนนี้?",
"map_no_location_permission_title": "สิทธิ์เข้าถึงตำแหน่งถูกปฏิเสธ",
@@ -1327,10 +1404,15 @@
"enter_fullscreen_mode": "เข้าสู่โหมดเต็มหน้าจอ",
"exit_fullscreen_mode": "ออกจากโหมดเต็มหน้าจอ",
"loop": "วนซ้ำ",
+ "media_error_description": "เกิดปัญหาที่ทำให้เล่นสื่อนี้ต่อไม่ได้ อาจจะเป็นเพราะสื่อนี้เสีย หรือเบราว์เซอร์ของคุณไม่สามารถเล่นสื่อชนิดนี้ได้เอง",
"media_loading": "กำลังโหลดสื่อ",
"mute": "ปิดเสียง",
"network_error": "ข้อผิดพลาดเครือข่าย",
+ "network_error_description": "เกิดปัญหาเครือข่ายทำให้ไม่สามารถดาวน์โหลดต่อได้",
"not_supported_error": "ไม่รองรับต้นทาง",
+ "playback_rate": "ความเร็วการเล่น",
+ "playback_rate_current": "ความเร็วการเล่นตอนนี้",
+ "playback_rate_value": "ความเร็ว {playbackRate}",
"playback_time": "เวลาเล่น",
"quality": "คุณภาพ",
"second": "วินาที",
@@ -1359,6 +1441,8 @@
"merge_people_prompt": "คุณต้องการรวมบุคคลเหล่านี้หรือไม่ การกระทำนี้ไม่สามารถย้อนกลับได้",
"merge_people_successfully": "รวมผู้คนเรียบร้อยแล้ว",
"merged_people_count": "รวม {count, plural, one {# คน} other {# คน}}เข้าด้วยกันแล้ว",
+ "minFaces": "จำนวนใบหน้าขั้นต่ำ",
+ "minFaces_description": "จำนวนใบหน้าที่จะต้องเห็นก่อนที่บุคคลจะถูกแสดง",
"minimize": "ย่อลง",
"minute": "นาที",
"minutes": "นาที",
@@ -1396,6 +1480,7 @@
"never": "ไม่เคย",
"new_album": "อัลบั้มใหม่",
"new_api_key": "สร้างคีย์ API ใหม่",
+ "new_feature": "คุณสมบัติใหม่",
"new_password": "รหัสผ่านใหม่",
"new_person": "คนใหม่",
"new_pin_code": "รหัส PIN ใหม่",
@@ -1415,26 +1500,37 @@
"no_assets_message": "คลิกเพื่ออัปโหลดภาพแรกของคุณ",
"no_assets_to_show": "ไม่มีทรัพยากรให้แสดง",
"no_cast_devices_found": "ไม่พบอุปกรณ์แคสต์",
+ "no_checksum_local": "ไม่มี Checksum ‐ ไม่สามารถดึงสื่อบนเครื่องได้",
+ "no_checksum_remote": "ไม่มี Checksum - ไม่สามารถดึงสื่อจากเซิร์ฟเวอร์ได้",
"no_devices": "ไม่มีอุปกรณ์ที่ได้รับอนุญาต",
"no_duplicates_found": "ไม่พบรายการที่ซ้ำกัน",
"no_exif_info_available": "ไม่มีข้อมูล exif",
"no_explore_results_message": "อัปโหลดรูปภาพเพิ่มเพื่อสำรวจคอลเลกชันของคุณ",
"no_favorites_message": "เพิ่มรายการโปรดเพื่อค้นหาภาพและวิดีโอที่ดีที่สุดของคุณอย่างรวดเร็ว",
"no_libraries_message": "สร้างคลังภาพภายนอกเพื่อดูภาพถ่ายและวิดีโอต่าง ๆ ของคุณ",
+ "no_local_assets_found": "ไม่พบสื่อในเครื่องที่มี Checksum นี้",
"no_locked_photos_message": "รูปภาพและวิดีโอในโฟลเดอร์ล็อกจะถูกซ่อนไว้ และไม่แสดงระหว่างดูหรือค้นหาคลังภาพของคุณ",
"no_name": "ไม่มีชื่อ",
"no_notifications": "ไม่มีการแจ้งเตือน",
"no_people_found": "ไม่พบบุคคลที่ตรงกัน",
"no_places": "ไม่มีสถานที่",
+ "no_remote_assets_found": "ไม่พบสื่อบนเซิร์ฟเวอร์ที่มี Checksum นี้",
"no_results": "ไม่มีผลลัพธ์",
"no_results_description": "ลองใช้คำพ้องหรือคำหลักที่กว้างกว่านี้",
"no_shared_albums_message": "สร้างอัลบั้มเพื่อแชร์รูปภาพและวิดีโอกับคนในเครือข่ายของคุณ",
+ "no_steps": "ยังไม่ได้เพิ่มขั้นตอน",
"none": "ไม่มี",
"not_allowed": "ไม่อนุญาต",
+ "not_available": "ไม่มี",
"not_in_any_album": "ไม่อยู่ในอัลบั้มใด ๆ",
"not_selected": "ไม่ได้เลือก",
+ "not_set": "ไม่ได้ตั้ง",
"notes": "หมายเหตุ",
"nothing_here_yet": "ตรงนี้ยังไม่มีอะไร",
+ "notification_backup_reliability": "เปิดการแจ้งเตือนเพื่อให้การสำรองข้อมูลในพื้นหลังราบรื่นขึ้น",
+ "notification_enabled_list_tile_content": "Immich ใช้การแจ้งเตือนเพื่อจัดการการสำรองข้อมูลในพื่นหลัง จัดการการแจ้งเตือนได้ในการตั้งค่าของเครื่อง",
+ "notification_enabled_list_tile_open_button": "เปิดการตั้งค่า",
+ "notification_enabled_list_tile_title": "เปิดการแจ้งเตือนแล้ว",
"notification_permission_dialog_content": "เพื่อเปิดการแจ้งเตือน เข้าไปที่การตั้งค่าแล้วกด อนุญาต",
"notification_permission_list_tile_content": "ให้สิทธิ์เพื่อเปิดการแจ้งเตือน",
"notification_permission_list_tile_enable_button": "เปิดการแจ้งเดือน",
@@ -1446,8 +1542,11 @@
"obtainium_configurator": "ตัวกำหนดค่า Obtainium",
"obtainium_configurator_instructions": "ใช้ Obtainium เพื่อติดตั้งและอัปเดตแอป Android โดยตรงจาก Github ของ Immich สร้างคีย์ API และเลือกรูปแบบเพื่อสร้างลิงก์กำหนดค่า Obtainium ของคุณ",
"ocr": "OCR",
+ "ocr_body": "Immich สามารถอ่านตัวอักษรในภาพได้แล้ว คุณสามารถค้นหาภาพได้ตามคำที่ปรากฎในภาพ",
+ "ocr_title": "ค้นหาข้อความที่อยู่ในรูปภาพ",
"official_immich_resources": "แหล่งข้อมูล Immich อย่างเป็นทางการ",
"offline": "ออฟไลน์",
+ "offset": "ระยะห่าง",
"ok": "ตกลง",
"oldest_first": "เรียงเก่าสุดก่อน",
"on_this_device": "บนอุปกรณ์นี้",
@@ -1463,6 +1562,8 @@
"open": "เปิด",
"open_calendar": "เปิดปฏิทิน",
"open_in_browser": "เปิดในเบราว์เซอร์",
+ "open_in_immich_body": "ตั้ง Immich เป็นแอพรูปภาพใน Android เพื่อเปิดรูปจากแอพอื่นใน Immich",
+ "open_in_immich_title": "เปิดรูปภาพใน Immich",
"open_in_map_view": "เปิดดูในแผนที่",
"open_in_openstreetmap": "เปิดใน OpenStreetMap",
"open_the_search_filters": "เปิดตัวกรองการค้นหา",
@@ -1471,6 +1572,7 @@
"organize_into_albums": "จัดระเบียบใส่อัลบั้ม",
"organize_into_albums_description": "นำรูปภาพที่มีอยู่แล้วเข้าไปยังอัลบั้มโดยใช้การตั้งค่าการซิงก์ปัจจุบัน",
"organize_your_library": "จัดเรียงคลังภาพของคุณ",
+ "orientation": "แนว",
"original": "ต้นฉบับ",
"other": "อื่น ๆ",
"other_devices": "เครื่องอื่น",
@@ -1511,7 +1613,7 @@
"permanent_deletion_warning_setting_description": "เตือนเมื่อจะลบสื่อถาวร",
"permanently_delete": "ลบถาวร",
"permanently_delete_assets_count": "ลบ {count, plural, one {asset} other {assets}} ทิ้งถาวร",
- "permanently_delete_assets_prompt": "คุณแน่ใจหรือไม่ว่าต้องการลบ {count, plural, one {this asset?} other {these # asset?}}อย่างถาวร การดำเนินการนี้จะลบ {count, plural, one {it from its} other {them from their}} อัลบั้มด้วย",
+ "permanently_delete_assets_prompt": "คุณต้องการที่จะลบ{count, plural, one {สื่อนี้} other { # สื่อเหล่านี้}}อย่างถาวรหรือไม่ การดำเนินการนี้จะลบ{count, plural, one {สื่อนี้} other {สื่อเหล่านี้}}ออกจากอัลบั้มด้วย",
"permanently_deleted_asset": "ลบสื่อถาวรแล้ว",
"permanently_deleted_assets_count": "ลบ {count, plural, one {# asset} other {# assets}} เรียบร้อยแล้ว",
"permission": "สิทธิ์",
@@ -1519,9 +1621,10 @@
"person": "บุคคล",
"person_age_months": "อายุ {months, plural, one {# เดือน} other {# เดือน}}",
"person_age_year_months": "อายุ 1 ปี {months, plural, one {# เดือน} other {# เดือน}}",
- "person_age_years": "อายุ {years, plural, other {# ปี}}",
+ "person_age_years": "อายุ {years, plural, one {# ปี} other {# ปี}}",
"person_birthdate": "เกิดเมื่อ {date}",
"person_hidden": "{name}{hidden, select, true { (ซ่อนอยู่)} other {}}",
+ "person_recognized": "เห็นบุคคลแล้ว",
"photo_shared_all_users": "ดูเหมือนว่าคุณได้แชร์รูปภาพของคุณกับผู้ใช้ทั้งหมด หรือคุณไม่มีผู้ใช้ใดที่จะแชร์ด้วย",
"photos": "รูปภาพ",
"photos_and_videos": "รูปภาพ และ วิดีโอ",
@@ -1544,6 +1647,8 @@
"play_original_video_setting_description": "เน้นเล่นวิดีโอต้นฉบับแทนวิดีโอที่แปลงไฟล์แล้ว หากสื่อต้นฉบับไม่รองรับอาจไม่สามารถเล่นได้อย่างถูกต้อง",
"play_transcoded_video": "เล่นวิดีโอที่แปลงแล้ว",
"please_auth_to_access": "โปรดยืนยันตัวตนเพื่อเข้าถึง",
+ "plugin_method_filter_type": "ตัวกรอง",
+ "plugin_method_filter_type_description": "วิธีนี้สามารถกรองตามอีเวนท์และตั้งให้กันขั้นตอนถัดๆไปไม่ให้ทำต่อได้",
"port": "พอร์ต",
"preferences_settings_subtitle": "จัดการการกำหนดค่าของแอป",
"preferences_settings_title": "การตั้งค่า",
@@ -1561,8 +1666,10 @@
"profile": "โปรไฟล์",
"profile_drawer_app_logs": "การบันทึก",
"profile_drawer_github": "GitHub",
+ "profile_drawer_readonly_mode": "อยู่ในโหมดอ่านอย่างเดียวอยู่ กดภาพผู้ใช้ค้างเพื่อออก",
"profile_image_of_user": "รูปภาพโปรไฟล์ของ {user}",
"profile_picture_set": "ตั้งภาพโปรไฟล์แล้ว",
+ "projection_type": "วิธีการฉายภาพ",
"public_album": "อัลบั้มสาธารณะ",
"public_share": "แชร์แบบสาธารณะ",
"purchase_account_info": "ผู้สนับสนุน",
@@ -1596,6 +1703,7 @@
"purchase_server_description_2": "สถานะผู้สนับสนุน",
"purchase_server_title": "เซิร์ฟเวอร์",
"purchase_settings_server_activated": "รหัสผลิตภัณฑ์เซิร์ฟเวอร์ได้รับการจัดการโดยผู้ดูแลระบบ",
+ "query_asset_id": "ค้นหา ID ของสื่อ",
"queue_status": "จำนวนคิว {count}/{total}",
"rate_asset": "ให้คะแนนสื่อ",
"rating": "การให้คะแนน",
@@ -1614,7 +1722,10 @@
"recent": "ล่าสุด",
"recent_searches": "การค้นหาล่าสุด",
"recently_added": "เพิ่มล่าสุด",
+ "recently_added_body": "ไปหน้าที่มีทุกอย่างที่คุณเพื่งเพิ่มมา",
+ "recently_added_description": "ดูสื่อทั้งหมดใน Immich เรียงจากเวลาที่สื่อนั้น ๆ ถูกอัปโหลดมา",
"recently_added_page_title": "เพิ่มล่าสุด",
+ "recently_added_title": "เพิ่มล่าสุด",
"recently_taken": "ถ่ายล่าสุด",
"refresh": "รีเฟรช",
"refresh_encoded_videos": "โหลดการ encoded วิดีโอใหม่",
@@ -1626,16 +1737,25 @@
"refreshing_faces": "กำลังรีเฟรชใบหน้า",
"refreshing_metadata": "กำลังรีเฟรชข้อมูลเมตาดาต้า",
"regenerating_thumbnails": "กำลังสร้างรูป thumbnails ใหม่",
+ "remote": "ข้างนอก",
+ "remote_assets": "สื่อบนเซิร์ฟเวอร์",
+ "remote_media_summary": "ภาพรวมสื่อบนเซรฟ์เวอร์",
"remove": "ลบ",
"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_filter": "ลบตัวกรอง",
"remove_from_album": "ลบออกจากอัลบั้ม",
+ "remove_from_album_action_prompt": "ลบ {count} ภาพจากอัลบั้มแล้ว",
"remove_from_favorites": "เอาออกจากรายการโปรด",
+ "remove_from_lock_folder_action_prompt": "ลบ {count} จากโฟลเดอร์ล็อกแล้ว",
+ "remove_from_locked_folder": "ลบจากโฟลเดอร์ล็อก",
+ "remove_from_locked_folder_confirmation": "ต้องการที่จะนำภาพและวิดิโอออกจากโฟลเดอร์ล็อกหรือไม่ สื่อจะไปปรากฏในไลบรารี่",
"remove_from_shared_link": "ลบออกจากลิงก์ที่แชร์",
"remove_memory": "ลบความทรงจำ",
"remove_photo_from_memory": "ลบรูปออกจากความทรงจำนี้",
+ "remove_tag": "ลบแท็ก",
"remove_user": "ลบผู้ใช้",
"removed_api_key": "ลบคีย์ API แล้ว: {name}",
"removed_from_archive": "ลบจากเก็บถาวรแล้ว",
@@ -1644,6 +1764,7 @@
"removed_memory": "ความทรงจำที่ถูกลบ",
"removed_tagged_assets": "ลบแท็กจาก {count, plural, one {# สื่อ} other {# สื่อ}}",
"rename": "เปลี่ยนชื่อ",
+ "repository": "คลังเก็บข้อมูล",
"require_password": "ต้องการรหัสผ่าน",
"rescan": "สแกนใหม่",
"reset": "รีเซ็ต",
@@ -1681,12 +1802,14 @@
"saved_settings": "บันทึกการตั้งค่าสำเร็จ",
"say_something": "พูดอะไรสักอย่าง",
"scaffold_body_error_occurred": "เกิดข้อผิดพลาด",
- "scaffold_body_error_unrecoverable": "เกิดข้อผิดพลาดที่ไม่สามารถกู้คืนได้ โปรดแชร์ข้อผิดพลาดและ stack trace ไปยัง Discord หรือ GitHub เพื่อให้เราช่วยเหลือ หากได้รับคำแนะนำ คุณสามารถล้างข้อมูลแอปได้ด้านล่าง",
+ "scaffold_body_error_unrecoverable": "เกิดข้อผิดพลาดที่ไม่สามารถกู้คืนได้ โปรดแชร์ข้อผิดพลาดและ Stack trace ไปยัง Discord หรือ GitHub เพื่อให้เราช่วยเหลือ หากได้รับคำแนะนำ คุณสามารถล้างข้อมูลแอปได้ด้านล่าง",
"scan": "สแกน",
"scan_all_libraries": "สแกนคลังภาพทั้งหมด",
"scan_library": "สแกน",
"scanning": "กำลังสแกน",
"scanning_for_album": "กำลังสแกนอัลบั้ม...",
+ "screencast_mode_description": "ให้แสดงการใช้คีย์บอร์ดกับเมาส์ขึ้นบนจอ",
+ "screencast_mode_title": "เปิด/ปิดโหมดการแชร์หน้าจอ",
"search": "ค้นหา",
"search_albums": "ค้นหาอัลบั้ม",
"search_by_context": "ค้นหาตามบริบท",
@@ -1694,6 +1817,8 @@
"search_by_description_example": "วันปีนเขาในซาปา",
"search_by_filename": "ค้นหาตามชื่อไฟล์หรือนามสกุลไฟล์",
"search_by_filename_example": "ตัวอย่าง. IMG_1234.JPG หรือ PNG",
+ "search_by_full_path": "ค้นหาจากพาธเต็มหรือโฟลเดอร์",
+ "search_by_full_path_example": "/สมชาย/งาน/ปริ้น3มิติ/2569-07-01 ‐ ค้นหาคำว่า “งาน” “3มิติ” “ปริ้น” “2569” และอื่นๆ ได้",
"search_by_ocr": "ค้นหาด้วย OCR",
"search_by_ocr_example": "ลาเต้",
"search_camera_lens_model": "ค้นหารุ่นเลนส์...",
@@ -1715,6 +1840,7 @@
"search_filter_media_type_title": "เลือกประเภทสื่อ",
"search_filter_people_title": "เลือกผู้คน",
"search_filter_star_rating": "คะแนนดาว",
+ "search_filter_tags_title": "เลือกแท็ก",
"search_for": "การค้นหาสำหรับ",
"search_for_existing_person": "ค้นหาบุคคลที่มีอยู่",
"search_no_more_result": "ไม่มีผลลัพธ์เพิ่มเติม",
@@ -1754,9 +1880,11 @@
"select_person": "เลือกบุคคล",
"select_person_to_tag": "เลือกบุคคล",
"select_photos": "เลือกรูปภาพ",
+ "select_quality": "เลือกคุณภาพ",
"select_trash_all": "เลือกในถังขยะทั้งหมด",
"selected": "เลือก",
"selected_count": "{count, plural, other {# เลือกแล้ว}}",
+ "selected_gps_coordinates": "ตำแหน่ง GPS ที่เลือก",
"send_message": "ส่งข้อความ",
"send_welcome_email": "ส่งอีเมลต้อนรับ",
"server_endpoint": "ปลายทางเซิร์ฟเวอร์",
@@ -1778,6 +1906,7 @@
"set_profile_picture": "ตั้งรูปโปรไฟล์",
"set_slideshow_to_fullscreen": "ตั้งค่าการนำเสนอเต็มจอ",
"set_stack_primary_asset": "ตั้งเป็นสื่อหลัก",
+ "setting_image_navigation_enable_subtitle": "ถ้าเปิด คุณสามารถไปยังภาพก่อนหน้าหรือภาพถัดไปได้ด้วยการแตะฝั่งซ้ายสุด/ขวาสุดของจอ",
"setting_image_navigation_enable_title": "แตะเพื่อนำทาง",
"setting_image_navigation_title": "การนำทางรูปภาพ",
"setting_image_viewer_help": "ตัวดูรายละเอียดโหลดรูปย่อก่อน แล้วจะโหลดพรีวิวขนาดกลาง (ถ้าเปิด) แล้วค่อยโหลดรูปต้นฉบับ (ถ้าเปิด)",
@@ -1793,6 +1922,7 @@
"setting_video_viewer_auto_play_subtitle": "เริ่มเล่นวิดีโออัตโนมัติหลังเปิดแล้ว",
"setting_video_viewer_auto_play_title": "เล่นวิดีโออัตโนมัติ",
"setting_video_viewer_looping_title": "วนลูป",
+ "setting_video_viewer_original_video_subtitle": "เมื่อสตรีมวิดิโอจากเซรฟเวอร์ ให้เล่นวิดิโอต้นฉบับถึงแม้จะสามารถแปลงวิดิโอได้แต่อาจทำให้เกิดการกระตุก วิดิโอที่มีอยู่บนเครื่องจะเล่นจากต้นฉบับตลอดโดยไม่เปลี่ยนตามการตั้งค่านี้",
"setting_video_viewer_original_video_title": "บังคับวิดีโอต้นฉบับ",
"settings": "ตั้งค่า",
"settings_saved": "บันทึกการตั้งค่าแล้ว",
@@ -1800,6 +1930,10 @@
"share": "แชร์",
"share_dialog_preparing": "กำลังเตรียม...",
"share_link": "แชร์ลิงก์",
+ "share_original": "ใช้ต้นฉบับ (ใหญ่)",
+ "share_preview": "ใช้ภาพขนาดย่อ (เล็ก)",
+ "share_quality_body": "กดที่ปุ่มแชร์ค้างไว้เพื่อเลือกคุณภาพของภาพก่อนที่จะแชร์",
+ "share_quality_title": "เลือกคุณภาพการแชร์",
"shared": "แชร์",
"shared_album_activities_input_disable": "คอมเมนต์ถูกปิด",
"shared_album_activity_remove_content": "ุคุณต้องการลบกิจกรรมนี้หรือไม่?",
@@ -1814,7 +1948,9 @@
"shared_link_app_bar_title": "ลิงก์ที่แชร์",
"shared_link_clipboard_copied_massage": "คัดลอกไปยังคลิปบอร์ดแล้ว",
"shared_link_create_error": "เกิดข้อผิดพลาดขณะสร้างลิงก์แชร์",
- "shared_link_custom_url_description": "เข้าถึงลิงก์ที่แชร์นี้ด้วย URL ที่กำหนดเอง",
+ "shared_link_custom_url_description": "เข้าถึงลิงก์ที่แชร์นี้ด้วย URL และชื่อที่กำหนดเอง",
+ "shared_link_custom_url_title": "URL ชื่อกำหนดเอง",
+ "shared_link_custom_url_warning": "เตือน: ชื่อ URL กำหนดเองที่มีเครื่องหมาย “/” อาจไม่ทำงานในแบบที่คุณคาดคิด",
"shared_link_edit_description_hint": "เพิ่มรายละเอียดการแชร์",
"shared_link_edit_expire_after_option_day": "1 วัน",
"shared_link_edit_expire_after_option_days": "{count} วัน",
@@ -1861,12 +1997,15 @@
"show_keyboard_shortcuts": "แสดงปุ่มลัดแป้นพิมพ์",
"show_less": "แสดงน้อยลง",
"show_metadata": "แสดง metadata",
+ "show_more_fields": "{count, plural, one {แสดงช่องข้อมูลเพิ่ม # ช่อง} other {แสดงช่องข้อมูลเพิ่ม # ช่อง}}",
"show_or_hide_info": "แสดงหรือซ่อนข้อมูล",
"show_password": "แสดงรหัสผ่าน",
"show_person_options": "แสดงตัวเลือกของตัวบุคคล",
"show_progress_bar": "แสดงความคืบหน้า แถบ",
+ "show_schema": "แสดง Schema",
"show_search_options": "แสดงตัวเลือกการค้นหา",
"show_shared_links": "แสดงลิงก์ที่แชร์",
+ "show_slideshow_metadata_overlay": "แสดงข้อมูลภาพในหน้าต่างลอย",
"show_slideshow_transition": "แสดงสไลค์โชว์",
"show_supporter_badge": "เครื่องหมายผู้สนับสนุน",
"show_supporter_badge_description": "แสดงเครื่องหมายผู้สนับสนุน",
@@ -1878,13 +2017,21 @@
"sign_out": "ออกจากระบบ",
"sign_up": "ลงทะเบียน",
"size": "ขนาด",
+ "skip": "ข้าม",
"skip_to_content": "ข้ามไปยังเนื้อหา",
"skip_to_folders": "ข้ามโฟล์เดอร์",
"skip_to_tags": "ข้ามแท็ก",
"slideshow": "สไลด์",
+ "slideshow_body": "นั่งพักผ่อนแล้วชมภาพถ่ายของคุณเล่นในรูปแบบสไลด์โชว์เต็มหน้าจอ",
+ "slideshow_metadata_overlay_mode": "เนื้อหาในหน้าต่างลอย",
"slideshow_metadata_overlay_mode_description_only": "เฉพาะคำอธิบาย",
"slideshow_metadata_overlay_mode_full": "เต็ม",
+ "slideshow_repeat": "เล่นสไลด์โชว์ซำ้",
+ "slideshow_repeat_description": "กลับไปเริ่มต้นใหม่หลังแสดงสไลด์โชว์จบ",
"slideshow_settings": "ตั้งค่าสไลด์",
+ "slideshow_title": "สไลด์โชว์",
+ "smart_album": "สมาร์ตอัลบั้ม",
+ "some_assets_already_have_a_location_warning": "สื่อที่เลือกอยู่บางอันมีตำแหน่งแล้ว",
"sort_albums_by": "จัดเรียงอัลบั้มโดย...",
"sort_created": "จัดเรียงตามวันที่สร้าง",
"sort_items": "จัดเรียงรายการ",
@@ -1894,16 +2041,19 @@
"sort_recent": "จัดเรียงใหม่ล่าสุด",
"sort_title": "ไตเติ้ล",
"source": "แหล่ง",
- "stack": "ซ้อน",
- "stack_action_prompt": "ซ้อนทับ {count} รายการแล้ว",
- "stack_duplicates": "นำสิ่งที่ซ้ำมาซ้อนอยู่ด้วยกัน",
- "stack_selected_photos": "ซ้อนรูปที่ถูกเลือก",
- "stacked_assets_count": "ซ้อนทับสื่อ {count, plural, one {# รายการ} other {# รายการ}}แล้ว",
+ "stack": "Stack",
+ "stack_action_prompt": "นำ {count} รายการเข้า Stack แล้ว",
+ "stack_duplicates": "นำสิ่งที่ซ้ำมาอยู่ใน Stack ด้วยกัน",
+ "stack_selected_photos": "นำรูปที่เลือกทำเป็น Stack",
+ "stacked_assets_count": "นำสื่อ{count, plural, one {# รายการ} other {# รายการ}}เข้า Stack แล้ว",
+ "stacktrace": "Stacktrace",
"start": "เริ่มต้น",
"start_date": "วันที่เริ่ม",
"start_date_before_end_date": "วันที่เริ่มต้นต้องมาก่อนวันที่สิ้นสุด",
"state": "รัฐ",
"status": "สถานะ",
+ "step_delete": "ลบขั้นตอน",
+ "step_delete_confirm": "ต้องการลบขั้นตอนนี้หรือไม่",
"step_details": "รายละเอียดขั้นตอน",
"steps": "ขั้นตอน",
"stop_casting": "หยุดแคสต์",
@@ -1926,27 +2076,33 @@
"swap_merge_direction": "สลับด้านรวม",
"sync": "ซิงค์",
"sync_albums": "ซิงก์อัลบั้ม",
+ "sync_local": "ซิ้งค์กับบนเครื่อง",
+ "sync_remote": "ซิงก์สื่อไปบนเซิร์ฟเวอร์",
"sync_status": "สถานะซิงก์",
"sync_status_subtitle": "ดูและจัดการระบบซิงก์",
"sync_upload_album_setting_subtitle": "สร้างและอัปโหลดรูปภาพและวิดีโอของคุณไปยังอัลบั้มที่เลือกบน Immich",
"system_theme": "ธีมสีของระบบ",
"system_theme_command_description": "ใช้ธีมสีของระบบ ({value})",
"tag": "แท็ก",
+ "tag_assets": "ติดแท็กให้สื่อ",
"tag_created": "สร้างแท็ก: {tag}",
"tag_face": "แท็กใบหน้า",
"tag_feature_description": "ดูรูปถ่ายและวีดีโอที่สร้างกลุ่มตามหัวข้อแท็ก",
"tag_people": "แท็กผู้คน",
- "tag_updated": "แท็กที่ถูกอัพเดต: {tag}",
- "tagged_assets": "ที่ถูกแท็ก",
+ "tag_updated": "แท็กที่ถูกอัปเดต: {tag}",
+ "tagged_assets": "{count, plural, one {สื่อ} other {สื่อ 5 สื่อ}}ถูกติดแท็กแล้ว",
"tags": "แท็ก",
"tap_to_run_job": "แตะเพื่อรันงาน",
"template": "เท็มเพลต",
+ "text_recognition": "การตรวจหาตัวอักษร",
"theme": "ธีม",
"theme_selection": "การเลือกธีม",
"theme_selection_description": "ตั้งค่าธีมให้สว่างหรือมืดโดยอัตโนมัติ อิงจากค่าของเบราว์เซอร์ของคุณ",
"theme_setting_asset_list_storage_indicator_title": "แสดงตัวพื้นที่จัดเก็บบนตารางทรัพยากร",
"theme_setting_asset_list_tiles_per_row_title": "จำนวนทรัพยากรต่อแถว ({count})",
+ "theme_setting_colorful_interface_subtitle": "ใส่สีหลักให้พื้นหลัง",
"theme_setting_colorful_interface_title": "อินเตอร์เฟซมีสีสัน",
+ "theme_setting_primary_color_subtitle": "เลือกสีเพื่อใช้เน้นการกระทำต่างๆ",
"theme_setting_primary_color_title": "สีหลัก",
"theme_setting_system_primary_color_title": "ใช้สีของระบบ",
"theme_setting_system_theme_switch": "อัตโนมัติ (การตั้งค่าระบบ)",
@@ -1979,7 +2135,13 @@
"trash_page_delete_all": "ลบทั้งหมด",
"trash_page_info": "ทรัพยากรที่ทิ้งจะถูกลบถาวรหลัง {days} วัน",
"trashed_items_will_be_permanently_deleted_after": "รายการที่อยู่ในถังขยะจะถูกลบอย่างถาวรหลังผ่านไป {days, plural, one {# วัน} other {# วัน}}",
+ "trigger": "ทริกเกอร์",
+ "trigger_asset_metadata_extraction": "การดึงข้อมูลเมตาจากสื่อ",
+ "trigger_asset_metadata_extraction_description": "ทริกเกอร์ตอนที่ข้อมูลเมตา EXIF ถูกดึงออกมาจากสื่อแล้ว",
"trigger_asset_uploaded": "อัปโหลดสื่อ",
+ "trigger_asset_uploaded_description": "ทริกเกอร์ตอนที่สื่อถูกอัปโหลด",
+ "trigger_person_recognized": "รู้จักบุคคลแล้ว",
+ "trigger_person_recognized_description": "ทริกเกอร์ตอนที่เห็นเป็นบุคคล",
"troubleshoot": "การแก้ปัญหา",
"type": "ประเภท",
"unable_to_change_pin_code": "ไม่สามารถเปลี่ยนรหัสประจำตัว (PIN)",
@@ -1987,6 +2149,7 @@
"unable_to_setup_pin_code": "ไม่สามารถตั้งรหัสประจำตัว (PIN)",
"unarchive": "นำออกจากที่เก็บถาวร",
"unarchive_action_prompt": "{count} ถูกนำออกจากที่เก็บถาวร",
+ "unarchived_count": "{count, plural, other {เก็บถาวรแล้ว #}}",
"undo": "เลิกทำ",
"unfavorite": "นำออกจากรายการโปรด",
"unfavorite_action_prompt": "{count} ถูกนำออกจากรายการโปรด",
@@ -1994,8 +2157,10 @@
"unknown": "ไม่ทราบ",
"unknown_country": "ไม่ทราบประเทศ",
"unknown_date": "ไม่ทราบวัน",
+ "unknown_schema": "Schema ที่ไม่รู้จัก",
"unknown_year": "ไม่ทราบปี",
"unlimited": "ไม่จำกัด",
+ "unlink_motion_video": "ลบการเชื่อมต่อ Motion video",
"unlink_oauth": "ยกเลิกเชื่อมต่อ OAuth",
"unlinked_oauth_account": "ยกเลิกการเชื่อมต่อ OAuth",
"unmute_memories": "เลิกปิดเสียงความทรงจำ",
@@ -2005,15 +2170,19 @@
"unsaved_change": "ยังไม่ได้บันทึก",
"unselect_all": "ยกเลิกการเลือกทั้งหมด",
"unselect_all_duplicates": "ยกเลิกเลือกรายการซ้ำทั้งหมด",
- "unstack": "หยุดซ้อน",
- "unstack_action_prompt": "เลิกซ้อนทับ {count} รายการแล้ว",
- "unstacked_assets_count": "เลิกซ้อนทับ {count, plural, one {# รายการ} other {# รายการ}}แล้ว",
+ "unstack": "แตก Stack",
+ "unstack_action_prompt": "แตก {count} รายการออกจาก Stack แล้ว",
+ "unstacked_assets_count": "แตกสื่อ {count, plural, one {# รายการ} other {# รายการ}}ออกจาก Stack แล้ว",
+ "unsupported_field_type": "ชนิดข้อมูลที่ไม่รับรอง",
"unsupported_file_type": "ไม่สามารถอัปโหลดไฟล์ {file} เนื่องจากระบบไม่รองรับประเภทไฟล์ {type} ที่ไฟล์นั้นใช้",
+ "untagged": "ไม่มีแท็ก",
"up_next": "ต่อไป",
+ "update_location_action_prompt": "เปลี่ยนตำแหน่งของรูปภาพ {count} รูปเป็น:",
"updated_at": "อัปเดตเมื่อ",
"updated_password": "รหัสผ่านเปลี่ยนแล้ว",
"upload": "อัปโหลด",
"upload_concurrency": "อัปโหลดพร้อมกัน",
+ "upload_day_count": "{date}: อัปโหลด {count, plural, one {# รายการ} other {# รายการ}}",
"upload_details": "รายละเอียดการอัปโหลด",
"upload_error_with_count": "อัปโหลดผิดพลาดสำหรับสื่อ {count, plural, one {# รายการ} other {# รายการ}}",
"upload_errors": "อัปโหลดเสร็จสิ้นโดยมีข้อผิดพลาด {count, plural, one {# รายการ} other {# รายการ}} รีเฟรชหน้าเพื่อดูสื่อที่อัปโหลดใหม่",
@@ -2024,14 +2193,21 @@
"upload_status_errors": "ข้อผิดพลาด",
"upload_status_uploaded": "อัปโหลดแล้ว",
"upload_success": "อัปโหลดสำเร็จ รีเฟรชหน้าเพื่อดูสื่อที่อัปโหลดใหม่",
+ "upload_to_album_body": "สำหรับผู้ใช้ที่ไม่ได้ใช้คุณสมบัติอัปโหลดด้วยตนเอง ตอนนี้สามารถอัปโหลดรูปจากเครื่องเข้าอัลบั้มได้โดยตรงแล้ว ไม่จำเป็นต้องอัปโหลดก่อนแล้วนำเข้าอัลบั้มทีหลังอีกต่อไป",
+ "upload_to_album_title": "อัปโหลดตรงไปยังอัลบั้ม",
"upload_to_immich": "อัปโหลดไปยัง Immich ({count})",
"uploading": "กำลังอัปโหลด",
"uploading_media": "กำลังอัปโหลดสื่อ",
+ "uploads": "การอัปโหลด",
+ "uploads_count": "{count, plural, one {# อัปโหลด} other {# อัปโหลด}}",
"url": "URL",
"usage": "การใช้งาน",
"use_biometric": "ใช้การพิสูจน์อัตลักษณ์",
+ "use_browser_locale": "ใช้การตั้งค่าภาษาและพื้นที่ของเบราเซอร์",
+ "use_browser_locale_description": "จัดรูปวัน, เวลา และตัวเลขตามการตั้งค่าในเบราว์เซอร์",
"use_current_connection": "ใช้การเชื่อมต่อปัจจุบัน",
"use_custom_date_range": "ใช้การปรับแต่งช่วงเวลา",
+ "use_template": "ใช้เท็มเพลต",
"user": "ผู้ใช้",
"user_has_been_deleted": "ผู้ใช้รายนี้ถูกลบไปแล้ว",
"user_id": "ไอดีผู้ใช้",
@@ -2046,6 +2222,7 @@
"user_usage_stats_description": "ดูสถิติการใช้งานบัญชี",
"username": "ชื่อผู้ใช้",
"users": "ผู้ใช้",
+ "users_added_to_album_count": "เพื่มผู้ใช้ {count, plural, one {# คน} other {# คน}}ให้อัลบั้มแล้ว",
"utilities": "เครื่องมือ",
"validate": "ตรวจสอบ",
"validate_endpoint_error": "กรุณาระบุ URL ที่ถูกต้อง",
@@ -2058,6 +2235,7 @@
"video": "วิดีโอ",
"video_hover_setting": "เล่นวิดีโอแบบย่อเมื่อเลื่อนเมาส์อยู่บน",
"video_hover_setting_description": "เล่นวิดีโอตัวอย่างเมื่อเมาส์จ่อข้างบน เมื่อปิดใช้งาน วิดีโอตัวอย่างยังสามารถเล่นได้โดยกดปุ่มเล่น",
+ "video_quality": "คุณภาพวิดิโอ",
"videos": "วิดีโอ",
"videos_count": "{count, plural, one {# วิดีโอ} other {# วิดีโอ}}",
"view": "ดู",
@@ -2073,7 +2251,9 @@
"view_previous_asset": "ดูสื่อก่อนหน้า",
"view_qr_code": "ดูคิวอาร์โค้ด",
"view_similar_photos": "ดูรูปที่คล้ายกัน",
- "viewer_remove_from_stack": "เอาออกจากที่ซ้อน",
+ "view_stack": "ดู Stack",
+ "viewer_remove_from_stack": "เอาออกจาก Stack",
+ "visibility": "การมองเห็น",
"visibility_changed": "เปลี่ยนแปลงการมองเห็นสำหรับ {count, plural, one {# บุคคล} other {# บุคคล}}",
"visual": "เห็นภาพ",
"waiting": "กำลังรอ",
@@ -2082,9 +2262,26 @@
"week": "สัปดาห์",
"welcome": "ยินดีต้อนรับ",
"welcome_to_immich": "ยินดีต้อนรับสู่ immich",
+ "whats_new": "มีอะไรใหม่",
+ "whats_new_settings_subtitle": "ดูว่ามีอะไรใหม่ใน Immich",
+ "whats_new_version": "เวอร์ชัน {version}",
+ "when": "เมื่อ",
"width": "ความกว้าง",
"wifi_name": "ชื่อ Wi-Fi",
+ "workflow": "Workflow",
+ "workflow_delete_prompt": "ต้องการที่จะลบ Workflow นี้หรือไม่",
+ "workflow_deleted": "ลบ Workflow แล้ว",
+ "workflow_description": "คำอธิบาย Workflow",
+ "workflow_info": "ข้อมูล Workflow",
+ "workflow_json": "Workflow ในรูป JSON",
+ "workflow_json_help": "แก้ไข Workflow ในรูปแบบ JSON โดยการเปลี่ยนแปลงในนี้จะไปปรากฏในตัวแก้ไขแบบภาพ",
+ "workflow_name": "ชื่อ Workflow",
"workflow_navigation_prompt": "คุณต้องการออกโดยที่ยังไม่บันทึกการเปลี่ยนแปลงหรือไม่?",
+ "workflow_summary": "ภาพรวมของ Workflow",
+ "workflow_templates": "เท็มเพลต Workflow",
+ "workflow_update_success": "Workflow ได้ถูกแก้ไขเรียบร้อย",
+ "workflows": "Workflows",
+ "workflows_help_text": "Workflow สามารถทำการกระทำบนสื่อของคุณตามทริกเกอร์และตัวกรองอย่างอัตโนมัติได้",
"wrong_pin_code": "รหัส PIN ไม่ถูกต้อง",
"x_of_total": "{x}/{total}",
"year": "ปี",
@@ -2092,5 +2289,6 @@
"yes": "ใช่",
"you_dont_have_any_shared_links": "คุณไม่ได้มีลิงก์ที่แชร์",
"your_wifi_name": "ชื่อ Wi-Fi",
+ "zero_to_clear_rating": "กด 0 เพื่อล้างคะแนนบนสื่อนี้",
"zoom_image": "ซูมรูปภาพ"
}
diff --git a/i18n/tr.json b/i18n/tr.json
index 34ec3d20ec..2390d6e380 100644
--- a/i18n/tr.json
+++ b/i18n/tr.json
@@ -16,7 +16,7 @@
"add_a_name": "Ad ekle",
"add_a_title": "Bir başlık ekleyin",
"add_action": "Eylem ekle",
- "add_assets": "Varlık ekle",
+ "add_assets": "Öğe ekle",
"add_birthday": "Doğum günü ekle",
"add_endpoint": "Uç nokta ekle",
"add_exclusion_pattern": "Hariç tutma deseni ekle",
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Küçük resim kalitesi 1-100 arasında. Daha yüksek değerler daha iyidir, ancak daha büyük dosyalar üretir ve uygulamanın yanıt hızını azaltabilir.",
"image_thumbnail_title": "Küçük Fotoğraf Ayarları",
"import_config_from_json_description": "JSON yapılandırma dosyası yükleyerek sistem yapılandırmasını içe aktar",
+ "integrity_checks_checksum_files": "Doğrulama dosyaları",
+ "integrity_checks_checksum_files_description": "Doğrulama kontrolünü yapılandır",
+ "integrity_checks_checksum_files_enable_description": "Doğrulama kontrolünü etkinleştirin",
+ "integrity_checks_checksum_files_percentage_limit": "Yüzdelik sınır",
+ "integrity_checks_checksum_files_percentage_limit_description": "Her aralıkta çalışacak doğrulama kontrolü için maksimum yüzde sınırını 0.01 ile 1 arasında yapılandırın.",
+ "integrity_checks_checksum_files_time_limit": "Zaman limiti",
+ "integrity_checks_checksum_files_time_limit_description": "Doğrulama kontrolünün her aralıkta çalışacağı maksimum süreyi yapılandırın. (ms)",
+ "integrity_checks_missing_files": "Eksik dosyalar",
+ "integrity_checks_missing_files_description": "Eksik dosya kontrolünün sıklığını yapılandırın ve etkinleştirin veya devre dışı bırakın",
+ "integrity_checks_missing_files_enable_description": "Eksik dosya kontrolünü etkinleştirin",
+ "integrity_checks_settings": "Bütünlüğü doğrula",
+ "integrity_checks_settings_description": "Bütünlük kontrol aralıklarını yönetin",
+ "integrity_checks_untracked_files": "İzlenmeyen dosyalar",
+ "integrity_checks_untracked_files_description": "İzlenmeyen dosya kontrolü sıklığını yapılandırın ve özelliği açın veya kapatın",
+ "integrity_checks_untracked_files_enable_description": "İzlenmeyen dosyalar kontrolünü etkinleştirin",
"job_concurrency": "{job} eşzamanlılık",
"job_created": "Görev oluşturuldu",
"job_not_concurrency_safe": "Bu işlem eşzamanlılık açısından güvenli değil.",
@@ -189,8 +204,10 @@
"maintenance_delete_error": "Yedek silinemedi.",
"maintenance_integrity_check": "Kontrol et",
"maintenance_integrity_check_all": "Hepsini kontrol et",
+ "maintenance_integrity_checksum_mismatch": "Doğrulama Uyuşmazlığı",
"maintenance_integrity_checksum_mismatch_description": "Disk üzerindeki sağlama toplamı, Immich'in veritabanında sakladığı sağlama toplamıyla uyuşmayan dosyalar.",
"maintenance_integrity_checksum_mismatch_job": "Sağlama toplamı uyuşmazlıklarını kontrol et",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "Doğrulama uyuşmazlığı raporlarını yenile",
"maintenance_integrity_missing_file": "Eksik Dosyalar",
"maintenance_integrity_missing_file_description": "Immich'in veritabanında izlediği ancak dosya sisteminde bulunmayan dosyalar.",
"maintenance_integrity_missing_file_job": "Eksik dosyaları kontrol et",
@@ -408,11 +425,16 @@
"transcoding_policy_description": "Bir videonun ne zaman kod dönüştürüleceğini ayarlama",
"transcoding_preferred_hardware_device": "Tercih edilen donanım cihazı",
"transcoding_preferred_hardware_device_description": "Sadece VAAPI ve QSV için uygulanır. Donanım kod çevrimi için DRI Node ayarlar.",
- "transcoding_preset_preset": "Ön ayar (-ön)",
+ "transcoding_preset_preset": "Ön ayar (-preset)",
"transcoding_preset_preset_description": "Sıkıştırma hızı. Daha yavaş olan ayarlar belirli bitrate ayarları için daha küçük ve daha kaliteli dosya üretir. VP9 ayarı 'daha hızlı' ayarının üstündeki ayarları görmezden gelir.",
"transcoding_realtime": "Gerçek Zamanlı Kod Dönüştürme [DENEYSEL]",
+ "transcoding_realtime_description": "Videonun akışı sırasında kod dönüştürme işleminin gerçek zamanlı olarak yapılmasını sağlar. Kalite değiştirmeye olanak tanır, ancak sunucu yeteneklerine bağlı olarak daha yüksek oynatma gecikmesine ve takılmalara neden olabilir.",
"transcoding_realtime_enabled": "Gerçek zamanlı kod dönüştürmeyi etkinleştirin",
"transcoding_realtime_enabled_description": "Devre dışı bırakılırsa, sunucu yeni gerçek zamanlı kod dönüştürme oturumları başlatmayı reddedecektir.",
+ "transcoding_realtime_resolutions": "Çözüm",
+ "transcoding_realtime_resolutions_description": "Gerçek zamanlı dönüştürme (transcoding) için sunulan çözünürlükler. Sunucu veriyi yeterince hızlı dönüştüremezse, yüksek çözünürlükler oynatma sorunlarına yol açabilir.",
+ "transcoding_realtime_video_codecs": "Video kodekleri",
+ "transcoding_realtime_video_codecs_description": "Anlık kod dönüştürme için sunulan video kodekleri. Cihazlar, oynatma esnasında destekledikleri en iyi kodeği seçecektir. Verimlilik sıralaması AV1 > HEVC > H.264 şeklindedir. Donanım hızlandırma aktifken sadece ekran kartınızın desteklediği kodekleri seçiniz. Yazılımsal dönüştürmede ise hız sıralaması H.264 > AV1 > HEVC şeklindedir.",
"transcoding_reference_frames": "Referans kareler",
"transcoding_reference_frames_description": "Belirli bir kareyi sıkıştırırken referans alınacak kare sayısı. Daha yüksek değerler sıkıştırma verimliliğini artırır, ancak kodlamayı yavaşlatır. 0 bu değeri otomatik olarak ayarlar.",
"transcoding_required_description": "Yalnızca kabul edilen formatta olmayan videolar",
@@ -552,6 +574,7 @@
"asset_added_to_album": "Albüme eklendi",
"asset_adding_to_album": "Albüme ekleniyor…",
"asset_created": "Öğe oluşturuldu",
+ "asset_day_count": "{date}: {count, plural, one {# dosya} other {# dosya}}",
"asset_description_updated": "Öğe açıklaması güncellendi",
"asset_hashing": "Karma (hashleme) oluşturuluyor…",
"asset_list_group_by_sub_title": "Grupla",
@@ -573,7 +596,8 @@
"asset_viewer_settings_subtitle": "Galeri görüntüleyici ayarlarını düzenle",
"asset_viewer_settings_title": "İçerik Görüntüleyici",
"assets": "Öğeler",
- "assets_added_to_album_count": "Albüme {count, plural, one {# asset} other {# assets}} eklendi",
+ "assets_added_to_album_count": "Albüme {count, plural, one {# öge} other {# öge}} eklendi",
+ "assets_added_to_album_partial_count": "Albüme {successCount} içerisinden {totalCount} {totalCount, plural, one {ögeden} other {ögeden}} tane eklendi",
"assets_added_to_albums_count": "Eklendi {assetTotal, plural, one {# asset} other {# assets}} buraya {albumTotal, plural, one {# album} other {# albums}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Asset} other {Assets}} albüme eklenemiyor",
"assets_cannot_be_added_to_albums": "{count, plural, one {Asset} other {Assets}} hiçbir albüme eklenemez",
@@ -790,7 +814,6 @@
"custom_date": "Özel tarih",
"custom_locale": "Özel yerel ayar",
"custom_locale_description": "Tarih, saat ve sayılar seçilen dil ve bölgeye göre biçimlendirilsin",
- "custom_url": "Özel URL",
"cutoff_date_description": "Son döneme ait fotoğrafları tut …",
"cutoff_day": "{count, plural, one {gün} other {gün}}",
"cutoff_year": "{count, plural, one {yıl} other {yıl}}",
@@ -807,6 +830,7 @@
"day": "Gün",
"days": "Günler",
"deduplicate_all": "Tüm kopyaları kaldır",
+ "default_quality_subtitle": "Paylaş düğmesine dokunulduğunda kullanılacak kalite. Her seferinde seçim yapmak için paylaş düğmesine uzun süre basın.",
"default_share_quality": "Varsayılan paylaşım kalitesi",
"delete": "Sil",
"delete_action_confirmation_message": "Bu öğeyi silmek istediğinizden emin misiniz? Bu işlem, öğeyi sunucunun çöp kutusuna taşıyacak ve yerel olarak silmek isteyip istemediğinizi soracaktır",
@@ -1079,6 +1103,7 @@
"export_as_json": "JSON olarak Dışa Aktar",
"export_database": "Veritabanını Dışa Aktar",
"export_database_description": "SQLite veritabanını dışa aktarın",
+ "exposure_time": "Poz Süresi",
"extension": "Uzantı",
"external": "Harici",
"external_libraries": "Harici kütüphaneler",
@@ -1297,9 +1322,9 @@
"login_form_failed_login": "Giriş yaparken hata oluştu, sunucu URL'sini, e-postayı ve şifreyi 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_password_hint": "şifre",
- "login_form_server_empty": "Sunucu URL'si girin.",
- "login_form_server_error": "Sunucuya bağlanılamadı.",
- "login_has_been_disabled": "Giriş devre dışı bırakıldı.",
+ "login_form_server_empty": "Sunucu URL'si girin",
+ "login_form_server_error": "Sunucuya bağlanılamadı",
+ "login_has_been_disabled": "Giriş devre dışı bırakıldı",
"login_password_changed_error": "Şifreniz güncellenirken bir hata oluştu",
"login_password_changed_success": "Şifre başarıyla güncellendi",
"logout_all_device_confirmation": "Tüm cihazlarda oturum kapatmak istediğinizden emin misiniz?",
@@ -1350,6 +1375,7 @@
"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_marker_for_image": "{city}, {country} konumunda çekilen fotoğraf için harita işareti",
"map_marker_with_image": "Resimli harita işaretleyicisi",
"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",
@@ -1454,6 +1480,7 @@
"never": "Asla",
"new_album": "Yeni albüm",
"new_api_key": "Yeni API Anahtarı",
+ "new_feature": "Yeni Özellik",
"new_password": "Yeni şifre",
"new_person": "Yeni kişi",
"new_pin_code": "Yeni PIN kodu",
@@ -1497,9 +1524,13 @@
"not_available": "U/D",
"not_in_any_album": "Hiçbir albümde değil",
"not_selected": "Seçilmedi",
+ "not_set": "Ayarlanmadı",
"notes": "Notlar",
"nothing_here_yet": "Burada henüz bir şey yok",
"notification_backup_reliability": "Arka plan yedeklemelerinin güvenirliğini iyileştirmek için bildirimlere izin verin",
+ "notification_enabled_list_tile_content": "Immich, arka plan yedeklemesi için bildirimleri kullanır. Bunu cihaz ayarlarınızdan yönetebilirsiniz.",
+ "notification_enabled_list_tile_open_button": "Ayarları aç",
+ "notification_enabled_list_tile_title": "Bildirimler etkin",
"notification_permission_dialog_content": "Bildirimleri etkinleştirmek için cihaz ayarlarına gidin ve izin verin.",
"notification_permission_list_tile_content": "Bildirimleri etkinleştirmek için izin verin.",
"notification_permission_list_tile_enable_button": "Bildirimleri Etkinleştir",
@@ -1511,6 +1542,8 @@
"obtainium_configurator": "Obtainium Yapılandırıcı",
"obtainium_configurator_instructions": "Obtainium kullanarak Android uygulamasını doğrudan Immich GitHub sürümünden yükleyin ve güncelleyin. Bir API anahtarı oluşturun ve bir varyant seçerek Obtainium yapılandırma bağlantınızı oluşturun",
"ocr": "OCR",
+ "ocr_body": "Immich artık fotoğraflarınızın içindeki metinleri okuyabiliyor, böylece metinde yazanlara göre arama yapabilirsiniz.",
+ "ocr_title": "Fotoğraflarda metin ara",
"official_immich_resources": "Resmi Immich Kaynakları",
"offline": "Çevrim dışı",
"offset": "Ofset",
@@ -1529,6 +1562,8 @@
"open": "Aç",
"open_calendar": "Takvimi aç",
"open_in_browser": "Tarayıcıda aç",
+ "open_in_immich_body": "Immich'i Android'de galeri olarak ayarlayarak diğer uygulamalardan fotoğrafları doğrudan açabilirsiniz.",
+ "open_in_immich_title": "Fotoğrafları Immich ile aç",
"open_in_map_view": "Harita görünümünde aç",
"open_in_openstreetmap": "OpenStreetMap'te Aç",
"open_the_search_filters": "Arama filtrelerini aç",
@@ -1537,6 +1572,7 @@
"organize_into_albums": "Albümler halinde düzenle",
"organize_into_albums_description": "Mevcut fotoğrafları geçerli eşitleme ayarlarını kullanarak albümlere yerleştirin",
"organize_your_library": "Kütüphanenizi düzenleyin",
+ "orientation": "Yönlendirme",
"original": "orijinal",
"other": "Diğer",
"other_devices": "Diğer cihazlar",
@@ -1547,7 +1583,7 @@
"partner": "Ortak",
"partner_can_access": "{partner} erişebilir",
"partner_can_access_assets": "Arşivlenenler ve Silinenler dışındaki tüm fotoğraf ve videolarınız",
- "partner_can_access_location": "Fotoğraf ve videolarınızın çekildiği konum",
+ "partner_can_access_location": "Fotoğraflarınızın çekildiği konum",
"partner_list_user_photos": "{user} fotoğrafları",
"partner_page_empty_message": "Fotoğraflarınız henüz hiçbir ortakla paylaşılmadı.",
"partner_page_no_more_users": "Eklenecek başka kullanıcı yok",
@@ -1585,7 +1621,7 @@
"person": "Kişi",
"person_age_months": "{months, plural, one {# aylık} other {# aylık}}",
"person_age_year_months": "1 yıl, {months, plural, one {# aylık} other {# aylık}}",
- "person_age_years": "{years, plural, other {# yaşında}}",
+ "person_age_years": "{years, plural, one {# yıl} other {# yıl}} yaşında",
"person_birthdate": "{date} tarihinde doğdu",
"person_hidden": "{name}{hidden, select, true { (gizli)} other {}}",
"person_recognized": "Tanınan kişi",
@@ -1686,7 +1722,10 @@
"recent": "Son",
"recent_searches": "Son aramalar",
"recently_added": "Son eklenenler",
+ "recently_added_body": "Son zamanlarda eklediğiniz her şeye özel bir sayfadan doğrudan göz atın.",
+ "recently_added_description": "Ögelerinize Immich'e yüklemeye göre sıralanmış olarak göz atın",
"recently_added_page_title": "Son Eklenenler",
+ "recently_added_title": "Son eklenenler",
"recently_taken": "Son çekilenler",
"refresh": "Yenile",
"refresh_encoded_videos": "Kodlanmış videoları yenile",
@@ -1893,6 +1932,8 @@
"share_link": "Bağlantıyı Paylaş",
"share_original": "Orijinal (büyük) olanı kullanın",
"share_preview": "Küçük resmi kullan",
+ "share_quality_body": "Paylaşmadan önce görüntü kalitesini seçmek için paylaş düğmesine basılı tutun.",
+ "share_quality_title": "Paylaşma kalitesini seçin",
"shared": "Paylaşılan",
"shared_album_activities_input_disable": "Yoruma kapalı",
"shared_album_activity_remove_content": "Bu etkinliği silmek istiyor musunuz?",
@@ -1907,7 +1948,9 @@
"shared_link_app_bar_title": "Paylaşılan Bağlantılar",
"shared_link_clipboard_copied_massage": "Panoya kopyalandı",
"shared_link_create_error": "Paylaşım bağlantısı oluşturulurken hata oluştu",
- "shared_link_custom_url_description": "Özel bir URL ile bu paylaşılan bağlantıya erişin",
+ "shared_link_custom_url_description": "Bu paylaşılan bağlantıya özel bir URL adıyla erişin",
+ "shared_link_custom_url_title": "Özel URL",
+ "shared_link_custom_url_warning": "Uyarı: İleri eğik çizgi içeren özel bir URL adı beklediğiniz gibi çalışmayabilir.",
"shared_link_edit_description_hint": "Açıklama yazın",
"shared_link_edit_expire_after_option_day": "1 gün",
"shared_link_edit_expire_after_option_days": "{count} gün",
@@ -1954,6 +1997,7 @@
"show_keyboard_shortcuts": "Klavye kısayollarını göster",
"show_less": "Daha az göster",
"show_metadata": "Meta verileri göster",
+ "show_more_fields": "{count, plural, one {Show # alan daha göster} other {Show # alan daha göster}}",
"show_or_hide_info": "Bilgileri göster veya gizle",
"show_password": "Şifreyi göster",
"show_person_options": "Kişi seçeneklerini göster",
@@ -1973,16 +2017,19 @@
"sign_out": "Oturumu Kapat",
"sign_up": "Kaydol",
"size": "Boyut",
+ "skip": "Atla",
"skip_to_content": "İçeriğe atla",
"skip_to_folders": "Klasörlere atla",
"skip_to_tags": "Etiketlere atla",
"slideshow": "Slayt gösterisi",
+ "slideshow_body": "Arkanıza yaslanın ve fotoğraflarınızın tam ekran slayt gösterisinde akışını izleyin.",
"slideshow_metadata_overlay_mode": "Yer paylaşımı içeriği",
"slideshow_metadata_overlay_mode_description_only": "Sadece açıklama",
"slideshow_metadata_overlay_mode_full": "Dolu",
"slideshow_repeat": "Slayt gösterisini tekrarla",
"slideshow_repeat_description": "Slayt gösterisi bittiğinde başa dön",
"slideshow_settings": "Slayt gösterisi ayarları",
+ "slideshow_title": "Slayt gösterisi",
"smart_album": "Akıllı albüm",
"some_assets_already_have_a_location_warning": "Seçilen varlıkların bazılarının zaten bir konumu mevcut",
"sort_albums_by": "Albümleri sırala...",
@@ -2110,6 +2157,7 @@
"unknown": "Bilinmeyen",
"unknown_country": "Bilinmeyen Ülke",
"unknown_date": "Bilinmeyen tarih",
+ "unknown_schema": "Bilinmeyen şema",
"unknown_year": "Bilinmeyen Yıl",
"unlimited": "Sınırsız",
"unlink_motion_video": "Hareketli video bağlantısını kaldır",
@@ -2134,7 +2182,7 @@
"updated_password": "Güncellenen şifre",
"upload": "Yükle",
"upload_concurrency": "Yükleme eşzamanlılığı",
- "upload_day_count": "{tarih}: {sayı, çoğul, bir {# yükleme} diğer {# yüklemeler}}",
+ "upload_day_count": "{date}: {count, plural, one {# yükleme} other {# yükleme}}",
"upload_details": "Yükleme Ayrıntıları",
"upload_error_with_count": "{count, plural, one {# öğe} other {# öğeler}} için yükleme hatası",
"upload_errors": "{count, plural, one {# hata} other {# hatayla}} yükleme tamamlandı, yeni yüklenen öğeleri görmek için sayfayı güncelleyin.",
@@ -2145,10 +2193,13 @@
"upload_status_errors": "Hatalar",
"upload_status_uploaded": "Yüklendi",
"upload_success": "Yükleme başarılı, yüklenen yeni öğeleri görebilmek için sayfayı yenileyin.",
+ "upload_to_album_body": "Manuel yükleme özelliğini kullanmayan kullanıcılar için, artık fotoğrafları yüklerken bunları doğrudan bir albüme ekleme seçeneğiniz var; artık önce fotoğrafları yükleyip daha sonra albüme eklemenize gerek yok.",
+ "upload_to_album_title": "Doğrudan bir albüme yükle",
"upload_to_immich": "Immich'e Yükle ({count})",
"uploading": "Yükleniyor",
"uploading_media": "Medya yükleme",
"uploads": "Yüklemeler",
+ "uploads_count": "{count, plural, one {# yükleme} other {# yüklemeler}}",
"url": "URL",
"usage": "Kullanım",
"use_biometric": "Biyometri kullan",
@@ -2211,6 +2262,9 @@
"week": "Hafta",
"welcome": "Hoş geldiniz",
"welcome_to_immich": "Immich'e hoş geldiniz",
+ "whats_new": "Yenilikler",
+ "whats_new_settings_subtitle": "Immich'te yeni neler olduğuna bak",
+ "whats_new_version": "Versiyon {version}",
"when": "Ne zaman",
"width": "Genişlik",
"wifi_name": "Wi-Fi Adı",
diff --git a/i18n/uk.json b/i18n/uk.json
index 3a0e49503b..3c5ebb7b04 100644
--- a/i18n/uk.json
+++ b/i18n/uk.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Якість мініатюри від 1 до 100. Вище значення означає кращу якість, але створює більші файли та може зменшити швидкість роботи застосунку.",
"image_thumbnail_title": "Налаштування мініатюр",
"import_config_from_json_description": "Імпортувати конфігурацію системи, вивантаживши файл конфігурації JSON",
+ "integrity_checks_checksum_files": "Файли контрольних сум",
+ "integrity_checks_checksum_files_description": "Налаштувати перевірку контрольних сум",
+ "integrity_checks_checksum_files_enable_description": "Увімкнути перевірку контрольних сум",
+ "integrity_checks_checksum_files_percentage_limit": "Відсотковий ліміт",
+ "integrity_checks_checksum_files_percentage_limit_description": "Налаштуйте максимальний відсоток між 0.01 та 1 для того наскільки перевірка контрольних сум повинна виконуватись кожний інтервал.",
+ "integrity_checks_checksum_files_time_limit": "Ліміт часу",
+ "integrity_checks_checksum_files_time_limit_description": "Налаштуйте максимальну тривалість для якої перевірка контрольних сум повинна виконуватись кожний інтервал. (мс)",
+ "integrity_checks_missing_files": "Відсутні файли",
+ "integrity_checks_missing_files_description": "Налаштуйте частоту та увімкніть або вимкніть перевірку на відсутні файли",
+ "integrity_checks_missing_files_enable_description": "Увімкнути перевірку на відсутні файли",
+ "integrity_checks_settings": "Перевірки цілісності",
+ "integrity_checks_settings_description": "Керуйте інтервалами перевірок на цілісність",
+ "integrity_checks_untracked_files": "Невідстежувані файли",
+ "integrity_checks_untracked_files_description": "Налаштувати частоту та увімкнути або вимкнути перевірку на невідстежені файли",
+ "integrity_checks_untracked_files_enable_description": "Увімкнути перевірку на невідстежувані файли",
"job_concurrency": "Паралельність {job}",
"job_created": "Завдання створено",
"job_not_concurrency_safe": "Це завдання не є безпечним для одночасного виконання.",
@@ -198,7 +213,7 @@
"maintenance_integrity_missing_file_job": "Перевірка відсутніх файлів",
"maintenance_integrity_missing_file_refresh_job": "Оновити звіт про відсутні файли",
"maintenance_integrity_report": "Звіт про цілісність",
- "maintenance_integrity_untracked_file": "Невідстежувані файли",
+ "maintenance_integrity_untracked_file": "Невідстежувані Файли",
"maintenance_integrity_untracked_file_description": "Файли в папках Immich, про які Immich не має жодних записів.",
"maintenance_integrity_untracked_file_job": "Перевірка невідстежуваних файлів",
"maintenance_integrity_untracked_file_refresh_job": "Оновити звіт про невідстежувані файли",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Дозволяє виконувати перекодування в режимі реального часу під час потокової передачі відео. Забезпечує перемикання якості, але може спричиняти більшу затримку відтворення та заїкання залежно від можливостей сервера.",
"transcoding_realtime_enabled": "Увімкнути перекодування в реальному часі",
"transcoding_realtime_enabled_description": "Якщо вимкнено, сервер не буде запускати нові сеанси транскодування в реальному часі.",
+ "transcoding_realtime_resolutions": "Роздільні здатності",
+ "transcoding_realtime_resolutions_description": "Роздільні здатності пропонуються для транскодування в реальному-часі. Високі роздільні здатності можуть спричинити помилки відтворення якщо сервер не зможе їх швидко транскодувати.",
+ "transcoding_realtime_video_codecs": "Відео кодеки",
+ "transcoding_realtime_video_codecs_description": "Відео кодеки пропонують транскодування в реальному часі. Клієнти оберуть найкращу опцію яку вони підтримують на протязі відтворення. AV1 є ефективнішим чим HEVC, який є ефективнішим чим H.264. Коли використовується апаратне прискорення, обирайте тільки кодеки які прискорювач може кодувати. Під час використання програмного транскодування, зауважте, що H.264 є швидшим за AV1, котрий є швидшим за HEVC.",
"transcoding_reference_frames": "Опорні кадри",
"transcoding_reference_frames_description": "Кількість кадрів, на які посилається під час стиснення певного кадру. Вищі значення покращують ефективність стиснення, але збільшують час кодування. Значення 0 визначає цей параметр автоматично.",
"transcoding_required_description": "Лише відео, що не мають прийнятного формату",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Переглядач елементів",
"assets": "елементи",
"assets_added_to_album_count": "Додано {count, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до альбому",
+ "assets_added_to_album_partial_count": "Додано {successCount} з {totalCount} {totalCount, plural, one {asset} other {assets}} до альбому",
"assets_added_to_albums_count": "Додано {assetTotal, plural, one {# елемент} few {# елементи} many {# елементів} other {# елементів}} до {albumTotal, plural, one {# альбому} few {# альбомів} many {# альбомів} other {# альбомів}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Елемент} few {Елементи} many {Елементів} other {Елементів}} не вдається додати до альбому",
"assets_cannot_be_added_to_albums": "{count, plural, one {Елемент} few {Елементи} many {Елементів} other {Елементів}} не вдається додати до жодного з альбомів",
@@ -794,7 +814,6 @@
"custom_date": "Довільна дата",
"custom_locale": "Довільні регіональні налаштування",
"custom_locale_description": "Форматувати дату, час та числа з урахуванням вибраної мови та регіону",
- "custom_url": "Довільна URL-адреса",
"cutoff_date_description": "Зберігати фото за останні…",
"cutoff_day": "{count, plural, one {день} few {дні} many {днів} other {днів}}",
"cutoff_year": "{count, plural, one {рік} few {роки} many {років} other {років}}",
@@ -1200,7 +1219,7 @@
"individual_share": "Окремий доступ",
"individual_shares": "Окремі доступи",
"info": "Інформація",
- "integrity_checks": "Перевірки цілісності",
+ "integrity_checks": "Перевірки Цілісності",
"interval": {
"day_at_onepm": "Щодня о 13:00",
"hours": "Кожну {hours, plural, one {# годину} few {# години} many {# годин} other {# годин}}",
@@ -1303,9 +1322,9 @@
"login_form_failed_login": "Не вдалося ввійти, перевірте URL-адресу сервера, електронну пошту та пароль",
"login_form_handshake_exception": "Не вдалося установити з'єднання із сервером. Увімкніть підтримку самопідписаного сертифіката в налаштуваннях, якщо ви використовуєте самопідписаний сертифікат.",
"login_form_password_hint": "пароль",
- "login_form_server_empty": "Введіть URL-адресу сервера.",
- "login_form_server_error": "Не вдалося з'єднатися із сервером.",
- "login_has_been_disabled": "Вхід було вимкнено.",
+ "login_form_server_empty": "Введіть URL-адресу сервера",
+ "login_form_server_error": "Не вдалося з'єднатися із сервером",
+ "login_has_been_disabled": "Вхід було вимкнено",
"login_password_changed_error": "Не вдалося оновити пароль",
"login_password_changed_success": "Пароль оновлено",
"logout_all_device_confirmation": "Ви впевнені, що хочете вийти з усіх пристроїв?",
@@ -1461,6 +1480,7 @@
"never": "Ніколи",
"new_album": "Новий альбом",
"new_api_key": "Новий ключ API",
+ "new_feature": "Нова Функція",
"new_password": "Новий пароль",
"new_person": "Нова людина",
"new_pin_code": "Новий PIN-код",
@@ -1521,6 +1541,8 @@
"obtainium_configurator": "Конфігуратор Obtainium",
"obtainium_configurator_instructions": "Використовуйте Obtainium для установлення та оновлення застосунку Android безпосередньо з релізу Immich на GitHub. Створіть ключ API та виберіть варіант, щоб створити посилання на конфігурацію Obtainium",
"ocr": "OCR",
+ "ocr_body": "Immich тепер читає текст всередині ваших фото, щоб ви могли шукати їх по тому, що там написано.",
+ "ocr_title": "Пошуковий текст у ваших фотографіях",
"official_immich_resources": "Офіційні ресурси Immich",
"offline": "Недоступний",
"offset": "Зсув",
@@ -1539,6 +1561,8 @@
"open": "Відкрити",
"open_calendar": "Відкрити календар",
"open_in_browser": "Відкрити в браузері",
+ "open_in_immich_body": "Встановити Immich як вашу галерею в Android щоб відкривати фото зразу з додатку.",
+ "open_in_immich_title": "Відкрити фото в Immich",
"open_in_map_view": "Відкрити на мапі",
"open_in_openstreetmap": "Відкрити в OpenStreetMap",
"open_the_search_filters": "Відкрити фільтри пошуку",
@@ -1697,7 +1721,10 @@
"recent": "Нещодавно",
"recent_searches": "Нещодавні пошукові запити",
"recently_added": "Нещодавно додані",
+ "recently_added_body": "Стрибніть зразу до всього що ви додали останнім часом на виділеній сторінці.",
+ "recently_added_description": "Переглядайте ваші активи сортованими за тим коли вони були завантажені в Immich",
"recently_added_page_title": "Нещодавно додані",
+ "recently_added_title": "Додані останнім часом",
"recently_taken": "Нещодавно зняті",
"refresh": "Оновити",
"refresh_encoded_videos": "Оновити закодовані відео",
@@ -1888,8 +1915,8 @@
"setting_image_viewer_preview_title": "Завантажувати мініатюри",
"setting_languages_apply": "Застосувати",
"setting_languages_subtitle": "Змінити мову застосунку",
- "setting_notifications_notify_minutes": "{count, plural, one {# хвилина} few {# хвилини} many {# хвилин} other {# хвилин}}",
- "setting_notifications_notify_seconds": "{count, plural, one {# секунда} few {# секунди} many {# секунд} other {# секунд}}",
+ "setting_notifications_notify_minutes": "{count} хвилин",
+ "setting_notifications_notify_seconds": "{count} секунд",
"setting_notifications_subtitle": "Налаштуйте уподобання сповіщень",
"setting_video_viewer_auto_play_subtitle": "Автоматично починати відтворення відео під час їх відкриття",
"setting_video_viewer_auto_play_title": "Автоматичне відтворення відео",
@@ -1904,6 +1931,8 @@
"share_link": "Поділитися посиланням",
"share_original": "Використати оригінал (великий)",
"share_preview": "Використати мініатюру (малу)",
+ "share_quality_body": "Натисніть та тримайте кнопку поділитися щоб обрати якість зображення перед тим як поділитись.",
+ "share_quality_title": "Оберіть вашу якість для поширення",
"shared": "Спільні",
"shared_album_activities_input_disable": "Коментування вимкнено",
"shared_album_activity_remove_content": "Ви хочете видалити цей запис?",
@@ -1925,7 +1954,7 @@
"shared_link_edit_expire_after_option_hour": "1 годину",
"shared_link_edit_expire_after_option_hours": "{count, plural, one {# годину} few {# години} many {# годин} other {# годин}}",
"shared_link_edit_expire_after_option_minute": "1 хвилину",
- "shared_link_edit_expire_after_option_minutes": "{count, plural, one {# хвилину} few {# хвилини} many {# хвилин} other {# хвилин}}",
+ "shared_link_edit_expire_after_option_minutes": "{count} хвилин",
"shared_link_edit_expire_after_option_months": "{count, plural, one {# місяць} few {# місяці} many {# місяців} other {# місяців}}",
"shared_link_edit_expire_after_option_year": "{count, plural, one {# рік} few {# роки} many {# років} other {# років}}",
"shared_link_edit_password_hint": "Введіть пароль для спільного доступу",
@@ -1935,11 +1964,11 @@
"shared_link_expires_days": "Закінчується через {count, plural, one {# день} few {# дні} many {# днів} other {# днів}}",
"shared_link_expires_hour": "Закінчується через {count, plural, one {# годину} few {# години} many {# годин} other {# годин}}",
"shared_link_expires_hours": "Закінчується через {count, plural, one {# годину} few {# години} many {# годин} other {# годин}}",
- "shared_link_expires_minute": "Закінчується через {count, plural, one {# хвилину} few {# хвилини} many {# хвилин} other {# хвилин}}",
- "shared_link_expires_minutes": "Закінчується через {count, plural, one {# хвилину} few {# хвилини} many {# хвилин} other {# хвилин}}",
+ "shared_link_expires_minute": "Закінчується через {count} хвилину",
+ "shared_link_expires_minutes": "Закінчується через {count} хвилин",
"shared_link_expires_never": "Закінчується ∞",
- "shared_link_expires_second": "Закінчується через {count, plural, one {# секунду} few {# секунди} many {# секунд} other {# секунд}}",
- "shared_link_expires_seconds": "Закінчується через {count, plural, one {# секунду} few {# секунди} many {# секунд} other {# секунд}}",
+ "shared_link_expires_second": "Закінчується через {count} секунду",
+ "shared_link_expires_seconds": "Закінчується через {count} секунд",
"shared_link_individual_shared": "Індивідуальний спільний доступ",
"shared_link_info_chip_metadata": "Exif",
"shared_link_manage_links": "Керування спільними посиланнями",
@@ -1985,16 +2014,19 @@
"sign_out": "Вийти",
"sign_up": "Зареєструватися",
"size": "Розмір",
+ "skip": "Пропустити",
"skip_to_content": "Перейти до вмісту",
"skip_to_folders": "Перейти до папок",
"skip_to_tags": "Перейти до тегів",
"slideshow": "Слайд-шоу",
+ "slideshow_body": "Сядьте зручніше та подивіться як ваші фотографії програються в повноекранному слайд-шоу.",
"slideshow_metadata_overlay_mode": "Вміст оверлею",
"slideshow_metadata_overlay_mode_description_only": "Лише опис",
"slideshow_metadata_overlay_mode_full": "Повний",
"slideshow_repeat": "Повторювати слайд-шоу",
"slideshow_repeat_description": "Повернення до початку після завершення слайд-шоу",
"slideshow_settings": "Налаштування слайд-шоу",
+ "slideshow_title": "Слайд-шоу",
"smart_album": "Розумний альбом",
"some_assets_already_have_a_location_warning": "Для деяких вибраних елементів вже вказано місце",
"sort_albums_by": "Сортувати альбоми за…",
@@ -2122,6 +2154,7 @@
"unknown": "Невідомо",
"unknown_country": "Невідома країна",
"unknown_date": "Невідома дата",
+ "unknown_schema": "Невідома схема",
"unknown_year": "Невідомий рік",
"unlimited": "Без обмежень",
"unlink_motion_video": "Від'єднати рухоме відео",
@@ -2157,6 +2190,8 @@
"upload_status_errors": "Помилки",
"upload_status_uploaded": "Вивантажено",
"upload_success": "Вивантажено. Оновіть сторінку, щоб побачити нові елементи.",
+ "upload_to_album_body": "Для користувачів які повноцінно не використовують функцію ручного завантаження, тепер ви можете обрати, щоб додати локальні фото напряму до альбому коли ви їх завантажуєте, більше не треба завантажувати та потім додавати до альбому пізніше.",
+ "upload_to_album_title": "Завантажити напряму до альбому",
"upload_to_immich": "Вивантажити в Immich ({count})",
"uploading": "Вивантаження",
"uploading_media": "Вивантаження медіа",
@@ -2224,6 +2259,9 @@
"week": "Тиждень",
"welcome": "Ласкаво просимо",
"welcome_to_immich": "Ласкаво просимо до Immich",
+ "whats_new": "Що нового",
+ "whats_new_settings_subtitle": "Дивіться, що є нового в Immich",
+ "whats_new_version": "Версія {version}",
"when": "Коли",
"width": "Ширина",
"wifi_name": "Назва Wi-Fi",
diff --git a/i18n/vi.json b/i18n/vi.json
index aaa7e5ebc6..308537d627 100644
--- a/i18n/vi.json
+++ b/i18n/vi.json
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "Chất lượng ảnh thu nhỏ từ 1-100. Càng cao càng tốt, nhưng sẽ tạo ra các tệp lớn hơn có thể làm giảm khả năng phản hồi của app.",
"image_thumbnail_title": "Cài đặt Ảnh thu nhỏ",
"import_config_from_json_description": "Nhập cấu hình hệ thống bằng cách tải lên tệp cấu hình JSON",
+ "integrity_checks_checksum_files": "Các tệp checksum",
+ "integrity_checks_checksum_files_description": "Thiết lập kiểm tra checksum",
+ "integrity_checks_checksum_files_enable_description": "Bật kiểm tra checksum",
+ "integrity_checks_checksum_files_percentage_limit": "Giới hạn tỷ lệ phần trăm",
+ "integrity_checks_checksum_files_percentage_limit_description": "Thiết lập tỷ lệ phần trăm tối đa (trong khoảng từ 0.01 đến 1) cho tần suất thực hiện kiểm tra checksum trong mỗi khoảng thời gian.",
+ "integrity_checks_checksum_files_time_limit": "Giới hạn thời gian",
+ "integrity_checks_checksum_files_time_limit_description": "Thiết lập thời lượng tối đa để thực hiện kiểm tra checksum trong mỗi khoảng thời gian. (ms)",
+ "integrity_checks_missing_files": "Những tệp bị thiếu",
+ "integrity_checks_missing_files_description": "Thiết lập tần suất và bật/tắt tính năng kiểm tra tệp bị thiếu",
+ "integrity_checks_missing_files_enable_description": "Bật tính năng kiểm tra tệp bị thiếu",
+ "integrity_checks_settings": "Kiểm tra tính toàn vẹn",
+ "integrity_checks_settings_description": "Quản lý khoảng thời gian kiểm tra tính toàn vẹn",
+ "integrity_checks_untracked_files": "Những tệp chưa được theo dõi",
+ "integrity_checks_untracked_files_description": "Thiết lập tần suất và bật/tắt việc kiểm tra các tệp chưa được theo dõi",
+ "integrity_checks_untracked_files_enable_description": "Bật tính năng kiểm tra các tệp chưa được theo dõi",
"job_concurrency": "{job} chạy đồng thời",
"job_created": "Tác vụ đã được tạo",
"job_not_concurrency_safe": "Tác vụ này không an toàn để chạy đồng thời.",
@@ -123,7 +138,7 @@
"library_remove_exclusion_pattern_prompt": "Bạn có chắc muốn xóa mẫu loại trừ này?",
"library_remove_folder_prompt": "Bạn có chắc muốn gỡ thư mục nhập này?",
"library_scanning": "Quét định kỳ",
- "library_scanning_description": "Cấu hình quét thư viện định kỳ",
+ "library_scanning_description": "Thiết lập quét thư viện định kỳ",
"library_scanning_enable_description": "Bật quét thư viện định kỳ",
"library_settings": "Thư viện ngoài",
"library_settings_description": "Quản lý cài đặt thư viện ngoài",
@@ -337,7 +352,7 @@
"settings_page_description": "Trang cài đặt quản trị",
"sidecar_job": "Siêu dữ liệu đi kèm",
"sidecar_job_description": "Tìm hoặc đồng bộ các tệp siêu dữ liệu đi kèm từ hệ thống",
- "slideshow_duration_description": "Số giây hiển thị từng ảnh",
+ "slideshow_duration_description": "Số giây hiển thị mỗi ảnh",
"smart_search_job_description": "Chạy học máy trên toàn bộ tài nguyên để hỗ trợ tìm kiếm thông minh",
"storage_template_date_time_description": "Mốc thời gian tạo tài nguyên được dùng làm thông tin ngày giờ",
"storage_template_date_time_sample": "Thời gian mẫu {date}",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "Cho phép chuyển mã video theo thời gian thực khi video đang được phát trực tuyến. Cho phép chuyển đổi chất lượng, nhưng có thể gây ra độ trễ phát lại cao hơn và hiện tượng giật hình tùy thuộc vào khả năng của máy chủ.",
"transcoding_realtime_enabled": "Cho phép chuyển mã thời gian thực",
"transcoding_realtime_enabled_description": "Nếu tắt, máy chủ sẽ từ chối bắt đầu các phiên chuyển mã thời gian thực mới.",
+ "transcoding_realtime_resolutions": "Độ Phân Giải",
+ "transcoding_realtime_resolutions_description": "Các độ phân giải được cung cấp cho quá trình chuyển mã thời gian thực. Các độ phân giải cao hơn có thể gây ra sự cố khi phát lại nếu máy chủ không thể chuyển mã chúng đủ nhanh.",
+ "transcoding_realtime_video_codecs": "Bộ giải mã video",
+ "transcoding_realtime_video_codecs_description": "Các codec video được cung cấp cho quá trình chuyển mã thời gian thực. Máy khách sẽ chọn tùy chọn tốt nhất mà chúng hỗ trợ trong quá trình phát lại. AV1 có hiệu suất cao hơn HEVC, và HEVC lại có hiệu suất cao hơn H.264. Khi sử dụng tính năng tăng tốc phần cứng, chỉ nên chọn các codec mà bộ tăng tốc có khả năng mã hóa. Khi thực hiện chuyển mã bằng phần mềm, cần lưu ý rằng H.264 có tốc độ xử lý nhanh hơn AV1, và AV1 nhanh hơn HEVC.",
"transcoding_reference_frames": "Khung hình tham chiếu",
"transcoding_reference_frames_description": "Số lượng khung hình tham chiếu khi nén một khung hình nhất định. Giá trị cao hơn cải thiện hiệu suất nén nhưng làm chậm quá trình mã hóa. Giá trị 0 để tự động thiết lập giá trị này.",
"transcoding_required_description": "Chỉ video không ở định dạng được chấp nhận",
@@ -476,16 +495,16 @@
"advanced_settings_clear_image_cache_error": "Lỗi khi xóa bộ nhớ đệm",
"advanced_settings_clear_image_cache_success": "Đã giải phóng thành công {size}",
"advanced_settings_log_level_title": "Phân loại log: {level}",
- "advanced_settings_prefer_remote_subtitle": "Việc tải ảnh thu nhỏ từ tài nguyên trên một số thiết bị có thể diễn ra chậm. Kích hoạt cài đặt này để tải ảnh từ máy chủ.",
+ "advanced_settings_prefer_remote_subtitle": "Một số thiết bị nạp ảnh thu nhỏ từ tài nguyên thiết bị rất chậm. Bật để nạp ảnh từ máy chủ.",
"advanced_settings_prefer_remote_title": "Ưu tiên ảnh từ máy chủ",
- "advanced_settings_proxy_headers_subtitle": "Xác định các tiêu đề proxy Immich sẽ gửi kèm mỗi yêu cầu mạng",
- "advanced_settings_proxy_headers_title": "Tùy chỉnh tiêu đề proxy [THỬ NGHIỆM]",
- "advanced_settings_readonly_mode_subtitle": "Chế độ chỉ-xem chỉ cho phép xem ảnh, các tính năng như chọn nhiều ảnh, chia sẻ, phát, xóa đều bị vô hiệu hóa. Bật/Tắt chế độ chỉ-xem thông qua ảnh đại diện người dùng từ màn hình chính",
+ "advanced_settings_proxy_headers_subtitle": "Xác định các proxy header Immich sẽ gửi kèm mỗi yêu cầu mạng",
+ "advanced_settings_proxy_headers_title": "Tùy chỉnh proxy header [THỬ NGHIỆM]",
+ "advanced_settings_readonly_mode_subtitle": "Chỉ dùng ứng dụng để xem ảnh - các tính năng khác như chọn nhiều mục, chia sẻ, phát, xóa đều bị vô hiệu hóa. Nhấn giữ ảnh đại diện người dùng từ màn hình chính để bật/tắt chế độ.",
"advanced_settings_readonly_mode_title": "Chế độ chỉ-xem",
"advanced_settings_sync_remote_deletions_subtitle": "Tự động xóa hoặc khôi phục tài nguyên trên thiết bị này khi bạn thao tác trên web",
"advanced_settings_sync_remote_deletions_title": "Đồng bộ việc xóa từ thiết bị khác [THỬ NGHIỆM]",
"advanced_settings_tile_subtitle": "Dành cho người dùng nâng cao",
- "advanced_settings_troubleshooting_subtitle": "Bật các tính năng bổ sung để xử lý sự cố",
+ "advanced_settings_troubleshooting_subtitle": "Bật tính năng bổ sung để xử lý sự cố",
"advanced_settings_troubleshooting_title": "Xử lý sự cố",
"age_months": "{months, plural, one {# tháng} other {# tháng}} tuổi",
"age_year_months": "1 tuổi, {months, plural, one {# tháng} other {# tháng}}",
@@ -544,16 +563,16 @@
"appears_in": "Xuất hiện trong",
"apply_count": "Áp dụng ({count, number})",
"archive": "Lưu trữ",
- "archive_action_prompt": "{count} đã được thêm vào Lưu trữ",
+ "archive_action_prompt": "Đã thêm ({count}) vào Lưu trữ",
"archive_or_unarchive_photo": "Lưu trữ hoặc bỏ lưu trữ ảnh",
"archive_size": "Dung lượng tệp nén",
- "archive_size_description": "Cấu hình dung lượng tệp nén để tải xuống (đơn vị GiB)",
+ "archive_size_description": "Thiết lập dung lượng tệp nén tải xuống (đơn vị GiB)",
"archived": "Lưu trữ",
"archived_count": "{count, plural, other {Đã lưu trữ # mục}}",
"are_these_the_same_person": "Đây có phải cùng một người không?",
"are_you_sure_to_do_this": "Bạn có chắc muốn thực hiện điều này?",
"asset_added_to_album": "Đã thêm vào album",
- "asset_adding_to_album": "Đang thêm vào album…",
+ "asset_adding_to_album": "Thêm vào album…",
"asset_created": "Đã tạo tài nguyên",
"asset_day_count": "{date}: {count, plural, one {# tài nguyên} other {# tài nguyên}}",
"asset_description_updated": "Mô tả tài nguyên đã được cập nhật",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "Duyệt tài nguyên",
"assets": "Tài nguyên",
"assets_added_to_album_count": "Đã thêm {count, plural, one {# tài nguyên} other {# tài nguyên}} vào album",
+ "assets_added_to_album_partial_count": "Đã thêm {successCount} trong tổng số {totalCount} {totalCount, plural, one {tài nguyên} other {tài nguyên}} vào album",
"assets_added_to_albums_count": "Đã thêm {assetTotal, plural, one {# tài nguyên} other {# tài nguyên}} vào {albumTotal, plural, one {# album} other {# album}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Tài nguyên} other {Tài nguyên}} không thể thêm vào album",
"assets_cannot_be_added_to_albums": "{count, plural, one {Tài nguyên} other {Tài nguyên}} không thể thêm vào bất kỳ album nào",
@@ -629,13 +649,13 @@
"backup_error_sync_failed": "Đồng bộ thất bại. Không thể tiến hành sao lưu.",
"backup_info_card_assets": "tài nguyên",
"backup_options": "Tùy chọn sao lưu",
- "backup_settings_subtitle": "Cài đặt việc tải lên",
- "backward": "Lùi lại",
+ "backup_settings_subtitle": "Thiết lập việc tải lên",
+ "backward": "Lùi",
"battery_optimization_backup_reliability": "Tắt tính năng tiết kiệm pin để đảm bảo quá trình sao lưu nền",
- "biometric_auth_enabled": "Đã bật xác thực sinh trắc học",
- "biometric_locked_out": "Bạn đã bị khóa xác thực bằng sinh trắc học",
- "biometric_no_options": "Không có tùy chọn bằng sinh trắc học",
- "biometric_not_available": "Xác thực sinh trắc học không khả dụng trên thiết bị này",
+ "biometric_auth_enabled": "Đã bật xác thực vân tay",
+ "biometric_locked_out": "Bạn đã bị khóa xác thực bằng vân tay",
+ "biometric_no_options": "Tùy chọn vân tay không khả dụng",
+ "biometric_not_available": "Xác thực vân tay không khả dụng trên thiết bị này",
"birthdate_set_description": "Sinh nhật được sử dụng để tính tuổi của người này tại thời điểm chụp ảnh.",
"blurred_background": "Nền mờ",
"browse_templates": "Xem mẫu có sẵn",
@@ -657,7 +677,7 @@
"cannot_undo_this_action": "Bạn không thể hoàn tác hành động này!",
"cannot_update_the_description": "Không thể cập nhật mô tả",
"cast": "Chiếu",
- "cast_description": "Cấu hình các thiết bị chiếu khả dụng",
+ "cast_description": "Thiết lập thiết bị chiếu khả dụng",
"change": "Thay đổi",
"change_date": "Thay đổi ngày",
"change_description": "Thay đổi mô tả",
@@ -684,11 +704,11 @@
"choose": "Chọn",
"choose_matching_people_to_merge": "Chọn những người trùng khớp để hợp nhất",
"city": "Thành phố",
- "cleanup_confirm_description": "Immich phát hiện {count} tài nguyên (được tạo ra trước {date}) được sao lưu trên máy chủ. Bạn có muốn xóa bản sao được lưu trên thiết bị này không?",
+ "cleanup_confirm_description": "Immich tìm thấy {count} tài nguyên (được tạo ra trước {date}) được sao lưu trên máy chủ. Bạn có muốn xóa phiên bản của chúng lưu trên thiết bị này không?",
"cleanup_confirm_prompt_title": "Xóa khỏi thiết bị này?",
"cleanup_deleted_assets": "Đã chuyển {count} tài nguyên vào thùng rác",
"cleanup_deleting": "Đang chuyển vào thùng rác...",
- "cleanup_found_assets": "Phát hiện {count} tài nguyên được sao lưu",
+ "cleanup_found_assets": "Tìm thấy {count} tài nguyên đã sao lưu",
"cleanup_found_assets_with_size": "Phát hiện {count} tài nguyên đã sao lưu ({size})",
"cleanup_icloud_shared_albums_excluded": "Những album được chia sẻ trên iCloud không nằm trong phạm vi quét",
"cleanup_no_assets_found": "Không tìm thấy tài nguyên nào phù hợp với điều kiện trên. Tính năng Giải phóng dung lượng chỉ có thể xóa các tài nguyên đã được sao lưu lên máy chủ",
@@ -744,9 +764,9 @@
"continue": "Tiếp tục",
"control_bottom_app_bar_add_tags": "Thêm thẻ",
"control_bottom_app_bar_delete_from_local": "Xóa khỏi thiết bị",
- "control_bottom_app_bar_edit_location": "Chỉnh sửa vị trí",
- "control_bottom_app_bar_edit_time": "Chỉnh sửa Ngày và Giờ",
- "control_bottom_app_bar_trash_from_immich": "Di chuyển vào Thùng rác",
+ "control_bottom_app_bar_edit_location": "Sửa địa điểm",
+ "control_bottom_app_bar_edit_time": "Sửa ngày",
+ "control_bottom_app_bar_trash_from_immich": "Xóa",
"copied_image_to_clipboard": "Đã sao chép ảnh vào clipboard.",
"copied_to_clipboard": "Đã sao chép vào clipboard!",
"copy_error": "Sao chép lỗi",
@@ -766,7 +786,7 @@
"create_first_workflow": "Tạo workflow đầu tiên",
"create_library": "Tạo thư viện",
"create_link": "Tạo link",
- "create_link_to_share": "Tạo liên kết để chia sẻ",
+ "create_link_to_share": "Tạo link để chia sẻ",
"create_link_to_share_description": "Ai có link sẽ xem được các ảnh đã chọn",
"create_new": "TẠO MỚI",
"create_new_person": "Tạo người mới",
@@ -791,11 +811,10 @@
"current_device": "Thiết bị hiện tại",
"current_pin_code": "Mã PIN hiện tại",
"current_server_address": "Địa chủ máy chủ hiện tại",
- "custom_date": "Thiết lập ngày tùy chỉnh",
+ "custom_date": "Tùy chỉnh mốc",
"custom_locale": "Khu vực tùy chỉnh",
"custom_locale_description": "Định dạng ngày, thời gian và số dựa trên ngôn ngữ và khu vực đã chọn",
- "custom_url": "URL tùy chỉnh",
- "cutoff_date_description": "Giữ lại ảnh trong vòng…",
+ "cutoff_date_description": "Giữ lại các ảnh từ…",
"cutoff_day": "{count, plural, one {ngày} other {ngày}}",
"cutoff_year": "{count, plural, one {năm} other {năm}}",
"dark": "Tối",
@@ -815,7 +834,7 @@
"default_share_quality": "Chất lượng chia sẻ mặc định",
"delete": "Xóa",
"delete_action_confirmation_message": "Bạn có chắc muốn xóa tài nguyên này? Tài nguyên sẽ được chuyển vào thùng rác của máy chủ và sẽ hỏi bạn có muốn xóa nó trên đó không",
- "delete_action_prompt": "{count} đã xóa",
+ "delete_action_prompt": "Đã xóa ({count})",
"delete_album": "Xóa album",
"delete_api_key_prompt": "Bạn có chắc muốn xóa khóa API này?",
"delete_dialog_alert": "Những mục này sẽ bị xóa vĩnh viễn khỏi Immich và thiết bị của bạn",
@@ -827,12 +846,12 @@
"delete_key": "Xóa khóa",
"delete_library": "Xóa Thư viện",
"delete_link": "Xóa link",
- "delete_local_action_prompt": "{count} đã xóa trên thiết bị",
+ "delete_local_action_prompt": "Đã xóa ({count}) trên thiết bị",
"delete_local_dialog_ok_backed_up_only": "Xóa ảnh đã sao lưu",
"delete_local_dialog_ok_force": "Vẫn xóa",
"delete_others": "Xóa ảnh còn lại",
"delete_permanently": "Xóa vĩnh viễn",
- "delete_permanently_action_prompt": "{count} đã xóa vĩnh viễn",
+ "delete_permanently_action_prompt": "Đã xóa vĩnh viễn ({count})",
"delete_shared_link": "Xóa link đã chia sẻ",
"delete_shared_link_dialog_title": "Xóa link đã chia sẻ",
"delete_tag": "Xóa thẻ",
@@ -842,7 +861,7 @@
"description": "Mô tả",
"deselect_all": "Bỏ chọn tất cả",
"details": "Chi tiết",
- "direction": "Hướng",
+ "direction": "Điều hướng",
"disable": "Vô hiệu hóa",
"disabled": "Đã tắt",
"discord": "Discord",
@@ -887,7 +906,7 @@
"edit_birthday": "Sửa ngày sinh",
"edit_date": "Chỉnh sửa ngày",
"edit_date_and_time": "Chỉnh sửa ngày và giờ",
- "edit_date_and_time_action_prompt": "{count} đã sửa ngày và giờ",
+ "edit_date_and_time_action_prompt": "Đã sửa ngày và giờ ({count})",
"edit_date_and_time_by_offset": "Thay đổi ngày theo độ lệch",
"edit_description": "Chỉnh sửa mô tả",
"edit_exclusion_pattern": "Chỉnh sửa quy tắc loại trừ",
@@ -895,7 +914,7 @@
"edit_key": "Chỉnh sửa khóa",
"edit_link": "Chỉnh sửa link",
"edit_location": "Chỉnh sửa vị trí",
- "edit_location_action_prompt": "{count} đã sửa vị trí",
+ "edit_location_action_prompt": "Đã sửa địa điểm ({count})",
"edit_location_dialog_title": "Vị trí",
"edit_name": "Chỉnh sửa tên",
"edit_people": "Chỉnh sửa người",
@@ -924,13 +943,13 @@
"empty_trash_confirmation": "Bạn có chắc muốn dọn sạch thùng rác? Điều này sẽ xóa vĩnh viễn tất cả các tài nguyên trong thùng rác khỏi Immich.\nBạn không thể hoàn tác hành động này!",
"enable": "Bật",
"enable_backup": "Bật sao lưu",
- "enable_biometric_auth_description": "Nhập mã PIN của bạn để bật xác thực sinh trắc học",
+ "enable_biometric_auth_description": "Nhập mã PIN của bạn để bật xác thực vân tay",
"enabled": "Đã bật",
"end_date": "Ngày kết thúc",
"enqueued": "Đã xếp hàng",
"enter_wifi_name": "Nhập tên Wi-Fi",
"enter_your_pin_code": "Nhập mã PIN của bạn",
- "enter_your_pin_code_subtitle": "Nhập mã PIN của bạn để truy cập thư mục Khóa",
+ "enter_your_pin_code_subtitle": "Nhập mã PIN của bạn để truy cập thư mục Bí mật",
"error": "Lỗi",
"error_delete_face": "Lỗi khi xóa khuôn mặt khỏi tài nguyên",
"error_loading_albums": "Xảy ra lỗi khi tải các album",
@@ -1099,7 +1118,7 @@
"failed_to_load_assets": "Không tải được tài nguyên",
"failed_to_load_folder": "Không tải được thư mục",
"favorite": "Thích",
- "favorite_action_prompt": "{count} đã thêm vào Yêu thích",
+ "favorite_action_prompt": "Đã thêm ({count}) vào Yêu thích",
"favorite_or_unfavorite_photo": "Thích hoặc bỏ thích ảnh",
"favorites": "Yêu thích",
"feature_photo_updated": "Đã cập nhật ảnh nổi bật",
@@ -1123,14 +1142,14 @@
"folders": "Thư mục",
"folders_feature_description": "Duyệt ảnh và video theo thư mục trên hệ thống tệp",
"forgot_pin_code_question": "Quên mã PIN?",
- "forward": "Tiến tới",
+ "forward": "Tiến",
"free_up_space": "Giải phóng dung lượng",
- "free_up_space_description": "Chuyển hình ảnh và video đã được sao lưu vào thùng rác của thiết bị để giải phóng dung lượng. Bản sao lưu trên máy chủ không bị ảnh hưởng.",
- "free_up_space_settings_subtitle": "Tiết kiệm dung lượng bộ nhớ thiết bị",
+ "free_up_space_description": "Chuyển các hình ảnh và video đã được sao lưu vào thùng rác thiết bị. Bản sao lưu trên máy chủ không bị ảnh hưởng.",
+ "free_up_space_settings_subtitle": "Tiết kiệm bộ nhớ thiết bị",
"full_path": "Đường dẫn đầy đủ: {path}",
"full_path_or_folder": "Đường dẫn đầy đủ hoặc thư mục",
"gcast_enabled": "Google Cast",
- "gcast_enabled_description": "Tính năng này tải các tài nguyên từ Google để hoạt động.",
+ "gcast_enabled_description": "Tính năng này tải các tài nguyên từ Google để hoạt động",
"general": "Chung",
"geolocation_instruction_location": "Nhấn vào một tài nguyên có tọa độ GPS để sử dụng vị trí của nó hoặc chọn vị trí trực tiếp từ bản đồ",
"get_help": "Nhận trợ giúp",
@@ -1158,7 +1177,7 @@
"header_settings_field_validator_msg": "Không được để trống",
"header_settings_header_name_input": "Tên Header",
"header_settings_header_value_input": "Giá trị Header",
- "headers_settings_tile_title": "Tiêu đề proxy tùy chỉnh",
+ "headers_settings_tile_title": "Tùy chỉnh proxy header",
"height": "Chiều cao",
"hi_user": "Chào {name} ({email})",
"hide_all_people": "Ẩn tất cả mọi người",
@@ -1215,13 +1234,13 @@
"items_count": "{count, plural, one {# mục} other {# mục}}",
"jobs": "Tác vụ",
"keep": "Giữ",
- "keep_albums": "Giữ lại các tập ảnh",
+ "keep_albums": "Giữ lại các album",
"keep_albums_count": "Giữ lại {count} {count, plural, one {album} other {album}}",
"keep_all": "Giữ tất cả",
"keep_description": "Chọn giữ lại những gì trên thiết bị khi giải phóng dung lượng.",
"keep_favorites": "Giữ lại các mục yêu thích",
"keep_on_device": "Giữ lại trên thiết bị",
- "keep_on_device_hint": "Chọn các tệp sẽ được giữ lại trên thiết bị",
+ "keep_on_device_hint": "Chọn các mục sẽ không xóa",
"keep_this_delete_others": "Giữ tệp này, xóa các tệp khác",
"keeping": "Giữ lại: {items}",
"kept_this_deleted_others": "Đã giữ lại tài nguyên này và xóa {count, plural, one {# tài nguyên} other {# tài nguyên}}",
@@ -1281,7 +1300,7 @@
"location_picker_longitude_error": "Nhập kinh độ hợp lệ",
"location_picker_longitude_hint": "Nhập kinh độ của bạn",
"lock": "Khóa",
- "locked_folder": "Khóa",
+ "locked_folder": "Bí mật",
"log_detail_title": "Chi tiết log",
"log_out": "Đăng xuất",
"log_out_all_devices": "Đăng xuất tất cả thiết bị",
@@ -1312,7 +1331,7 @@
"logout_this_device_confirmation": "Bạn có chắc muốn đăng xuất thiết bị này?",
"logs": "Log",
"longitude": "Kinh độ",
- "look": "Xem",
+ "look": "Hiển thị",
"loop_videos": "Lặp video",
"loop_videos_description": "Bật để video tự động lặp lại trong trình xem chi tiết.",
"main_branch_warning": "Bạn đang dùng phiên bản đang phát triển; chúng tôi khuyên bạn nên dùng phiên bản phát hành!",
@@ -1344,7 +1363,7 @@
"manage_media_access_rationale": "Để có thể di chuyển tài nguyên vào thùng rác và khôi phục chúng từ đó.",
"manage_media_access_settings": "Mở cài đặt",
"manage_media_access_subtitle": "Cho phép ứng dụng [Immich] quản lý và di chuyển tệp.",
- "manage_media_access_title": "Quản lý phương tiện",
+ "manage_media_access_title": "Quản lý media",
"manage_sharing_with_partners": "Quản lý chia sẻ với người thân",
"manage_the_app_settings": "Quản lý cài đặt ứng dụng",
"manage_your_account": "Quản lý tài khoản của bạn",
@@ -1436,12 +1455,12 @@
"more": "Thêm",
"motion": "Hoạt ảnh",
"move": "Di chuyển",
- "move_off_locked_folder": "Di chuyển ra khỏi thư mục Khóa",
+ "move_off_locked_folder": "Chuyển ra khỏi thư mục Bí mật",
"move_to": "Di chuyển đến",
"move_to_device_trash": "Chuyển vào thùng rác thiết bị",
- "move_to_lock_folder_action_prompt": "{count} đã được thêm vào thư mục Khóa",
- "move_to_locked_folder": "Di chuyển đến thư mục Khóa",
- "move_to_locked_folder_confirmation": "Ảnh và video này sẽ bị xóa khỏi các album, chỉ có thể xem được trong thư mục Khóa",
+ "move_to_lock_folder_action_prompt": "Đã thêm {count} vào thư mục Bí mật",
+ "move_to_locked_folder": "Chuyển đến Bí mật",
+ "move_to_locked_folder_confirmation": "Ảnh và video này sẽ bị xóa khỏi mọi album và chỉ có thể xem được trong thư mục Bí mật",
"moved_to_trash": "Đã chuyển vào thùng rác",
"mute_memories": "Tắt tiếng Kỷ niệm",
"my_albums": "Album của tôi",
@@ -1461,10 +1480,11 @@
"never": "Không bao giờ",
"new_album": "Album mới",
"new_api_key": "Khóa API mới",
+ "new_feature": "Tính năng mới",
"new_password": "Mật khẩu mới",
"new_person": "Người mới",
"new_pin_code": "Mã PIN mới",
- "new_pin_code_subtitle": "Đây là lần đầu bạn vào thư mục Khóa. Hãy tạo mã PIN để truy cập an toàn",
+ "new_pin_code_subtitle": "Đây là lần đầu bạn vào thư mục Bí mật. Hãy tạo mã PIN để truy cập an toàn",
"new_update": "Cập nhật mới",
"new_user_created": "Người dùng mới đã được tạo",
"new_version_available": "CÓ PHIÊN BẢN MỚI",
@@ -1489,7 +1509,7 @@
"no_favorites_message": "Thêm ảnh yêu thích để nhanh chóng tìm thấy những bức ảnh và video đẹp nhất của bạn",
"no_libraries_message": "Tạo một thư viện ngoài để xem ảnh và video của bạn",
"no_local_assets_found": "Không tìm thấy tài nguyên trên thiết bị nào với checksum này",
- "no_locked_photos_message": "Ảnh và video trong thư mục Khóa sẽ được ẩn đi và không hiển thị khi bạn duyệt hay tìm kiếm trong thư viện.",
+ "no_locked_photos_message": "Ảnh và video trong thư mục Bí mật sẽ được ẩn đi và không hiển thị khi bạn duyệt hay tìm kiếm trong thư viện.",
"no_name": "Không có tên",
"no_notifications": "Không có thông báo",
"no_people_found": "Không có người nào khớp với tìm kiếm",
@@ -1504,6 +1524,7 @@
"not_available": "Thiếu",
"not_in_any_album": "Không thuộc album nào",
"not_selected": "Không được chọn",
+ "not_set": "Chưa đặt",
"notes": "Lưu ý",
"nothing_here_yet": "Chưa có nội dung nào",
"notification_backup_reliability": "Bật thông báo để đảm bảo quá trình sao lưu nền",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Cấu hình Obtainium",
"obtainium_configurator_instructions": "Sử dụng Obtainium để cài đặt và cập nhật ứng dụng Android trực tiếp từ bản phát hành GitHub của Immich. Tạo khóa API và chọn một biến thể để tạo liên kết cấu hình Obtainium của bạn",
"ocr": "OCR",
+ "ocr_body": "Immich hiện có thể đọc văn bản trong ảnh của bạn, nhờ đó bạn có thể tìm kiếm ảnh dựa trên nội dung văn bản đó.",
+ "ocr_title": "Tìm kiếm văn bản trong ảnh của bạn",
"official_immich_resources": "Tài nguyên chính thức của Immich",
"offline": "Ngoại tuyến",
"offset": "Độ lệch",
@@ -1539,6 +1562,8 @@
"open": "Mở",
"open_calendar": "Mở lịch",
"open_in_browser": "Mở trong trình duyệt",
+ "open_in_immich_body": "Hãy đặt Immich làm ứng dụng thư viện ảnh trên Android để mở ảnh trực tiếp từ các ứng dụng khác.",
+ "open_in_immich_title": "Mở ảnh trong Immich",
"open_in_map_view": "Mở trong bản đồ",
"open_in_openstreetmap": "Mở trong OpenStreetMap",
"open_the_search_filters": "Mở bộ lọc tìm kiếm",
@@ -1557,7 +1582,7 @@
"page": "Trang",
"partner": "Người thân",
"partner_can_access": "{partner} có thể truy cập",
- "partner_can_access_assets": "Tất cả ảnh và video của bạn ngoại trừ những ảnh và video trong mục Đã lưu trữ và Đã xóa",
+ "partner_can_access_assets": "Tất cả ảnh và video của bạn, ngoại trừ mục Đã lưu trữ và Đã xóa",
"partner_can_access_location": "Vị trí nơi ảnh của bạn được chụp",
"partner_list_user_photos": "Ảnh của {user}",
"partner_page_empty_message": "Ảnh của bạn chưa được chia sẻ với người thân nào.",
@@ -1596,7 +1621,7 @@
"person": "Mọi người",
"person_age_months": "{months, plural, one {# tháng} other {# tháng}} tuổi",
"person_age_year_months": "1 năm, {months, plural, one {# tháng} other {# tháng}} tuổi",
- "person_age_years": "{years, plural, other {# năm}} tuổi",
+ "person_age_years": "{years, plural, one {# tuổi} other {# tuổi}}",
"person_birthdate": "Sinh vào {date}",
"person_hidden": "{name}{hidden, select, true { (đã ẩn)} other {}}",
"person_recognized": "Người được nhận diện",
@@ -1696,8 +1721,11 @@
"reassing_hint": "Gán các tài nguyên đã chọn cho một người hiện có",
"recent": "Gần đây",
"recent_searches": "Tìm kiếm gần đây",
- "recently_added": "Được thêm gần đây",
- "recently_added_page_title": "Được thêm gần đây",
+ "recently_added": "Thêm gần đây",
+ "recently_added_body": "Truy cập ngay vào tất cả những gì bạn đã thêm gần đây trên một trang dành riêng.",
+ "recently_added_description": "Tìm kiếm các tài nguyên của bạn được sắp xếp theo thời gian tải lên Immich",
+ "recently_added_page_title": "Thêm gần đây",
+ "recently_added_title": "Thêm gần đây",
"recently_taken": "Chụp gần đây",
"refresh": "Làm mới",
"refresh_encoded_videos": "Làm mới video đã mã hóa",
@@ -1719,11 +1747,11 @@
"remove_custom_date_range": "Bỏ chọn khoảng ngày tùy chỉnh",
"remove_filter": "Xóa bộ lọc",
"remove_from_album": "Xóa khỏi album",
- "remove_from_album_action_prompt": "{count} đã gỡ khỏi album",
+ "remove_from_album_action_prompt": "Đã gỡ ({count}) khỏi album",
"remove_from_favorites": "Xóa khỏi mục Yêu thích",
- "remove_from_lock_folder_action_prompt": "{count} đã được xóa khỏi thư mục Khóa",
- "remove_from_locked_folder": "Xóa khỏi thư mục Khóa",
- "remove_from_locked_folder_confirmation": "Bạn có chắc muốn di chuyển ảnh và video này khỏi thư mục Khóa? Chúng sẽ hiện trong thư viện của bạn.",
+ "remove_from_lock_folder_action_prompt": "Đã xóa {count} khỏi thư mục Bí mật",
+ "remove_from_locked_folder": "Xóa khỏi thư mục Bí mật",
+ "remove_from_locked_folder_confirmation": "Bạn có chắc muốn di chuyển ảnh và video này khỏi thư mục Bí mật? Chúng sẽ hiện trong thư viện của bạn.",
"remove_from_shared_link": "Xóa khỏi link chia sẻ",
"remove_memory": "Xóa kỷ niệm",
"remove_photo_from_memory": "Xóa ảnh khỏi kỷ niệm này",
@@ -1842,7 +1870,7 @@
"select_all_duplicates": "Chọn tất cả các bản trùng lặp",
"select_avatar_color": "Chọn màu ảnh đại diện",
"select_count": "{count, plural, one {Chọn #} other {Chọn #}}",
- "select_cutoff_date": "Chọn giới hạn thời gian",
+ "select_cutoff_date": "Chọn mốc thời gian",
"select_face": "Chọn khuôn mặt",
"select_featured_photo": "Chọn ảnh nổi bật",
"select_from_computer": "Chọn từ máy tính",
@@ -1890,7 +1918,7 @@
"setting_languages_subtitle": "Thay đổi ngôn ngữ ứng dụng",
"setting_notifications_notify_minutes": "{count} phút",
"setting_notifications_notify_seconds": "{count} giây",
- "setting_notifications_subtitle": "Các loại thông báo",
+ "setting_notifications_subtitle": "Thiết lập thông báo",
"setting_video_viewer_auto_play_subtitle": "Khi mở video",
"setting_video_viewer_auto_play_title": "Tự động phát video",
"setting_video_viewer_looping_title": "Lặp lại",
@@ -1901,9 +1929,11 @@
"setup_pin_code": "Thiết lập mã PIN",
"share": "Chia sẻ",
"share_dialog_preparing": "Đang xử lý...",
- "share_link": "Link chia sẻ",
+ "share_link": "Chia sẻ link",
"share_original": "Chất lượng gốc (lớn)",
"share_preview": "Dùng ảnh thu nhỏ (nhỏ)",
+ "share_quality_body": "Nhấn giữ nút chia sẻ để chọn chất lượng hình ảnh trước khi chia sẻ.",
+ "share_quality_title": "Chọn chất lượng chia sẻ",
"shared": "Đã chia sẻ",
"shared_album_activities_input_disable": "Nhận xét hiện đã tắt",
"shared_album_activity_remove_content": "Bạn có muốn xóa hoạt động này?",
@@ -1915,10 +1945,12 @@
"shared_by_you": "Được chia sẻ bởi bạn",
"shared_from_partner": "Ảnh từ {partner}",
"shared_intent_upload_button_progress_text": "{current} / {total} Đã tải lên",
- "shared_link_app_bar_title": "Liên kết đã chia sẻ",
+ "shared_link_app_bar_title": "Những link đã chia sẻ",
"shared_link_clipboard_copied_massage": "Đã sao chép vào clipboard",
"shared_link_create_error": "Tạo liên kết chia sẻ không thành công",
"shared_link_custom_url_description": "Truy cập link đã chia sẻ với một URL tùy chỉnh",
+ "shared_link_custom_url_title": "URL tùy chỉnh",
+ "shared_link_custom_url_warning": "Cảnh báo: dùng dấu gạch chéo trong URL tùy chỉnh có thể gây ra lỗi.",
"shared_link_edit_description_hint": "Nhập mô tả chia sẻ",
"shared_link_edit_expire_after_option_day": "1 ngày",
"shared_link_edit_expire_after_option_days": "{count} ngày",
@@ -1929,7 +1961,7 @@
"shared_link_edit_expire_after_option_months": "{count} tháng",
"shared_link_edit_expire_after_option_year": "{count} năm",
"shared_link_edit_password_hint": "Nhập mật khẩu chia sẻ",
- "shared_link_edit_submit_button": "Cập nhật liên kết",
+ "shared_link_edit_submit_button": "Cập nhật link",
"shared_link_error_server_url_fetch": "Không thể kết nối địa chỉ máy chủ",
"shared_link_expires_day": "Hết hạn sau {count} ngày",
"shared_link_expires_days": "Hết hạn sau {count} ngày",
@@ -1945,7 +1977,7 @@
"shared_link_manage_links": "Quản lý các link đã chia sẻ",
"shared_link_options": "Tùy chọn chia sẻ link",
"shared_link_password_description": "Bắt buộc để truy cập link chia sẻ này",
- "shared_links": "Chia sẻ link",
+ "shared_links": "Đã chia sẻ",
"shared_links_description": "Chia sẻ ảnh và video bằng link",
"shared_photos_and_videos_count": "{assetCount, plural, other {# ảnh & video đã chia sẻ.}}",
"shared_with_me": "Chia sẻ với tôi",
@@ -1961,7 +1993,7 @@
"show_gallery": "Hiển thị thư viện ảnh",
"show_hidden_people": "Hiển thị người bị ẩn",
"show_in_timeline": "Hiển thị trên dòng thời gian",
- "show_in_timeline_setting_description": "Hiển thị ảnh và video từ người dùng này trong dòng thời gian của bạn",
+ "show_in_timeline_setting_description": "Hiển thị ảnh và video từ người dùng này trên dòng thời gian của bạn",
"show_keyboard_shortcuts": "Hiện phím tắt",
"show_less": "Hiện ít hơn",
"show_metadata": "Hiển thị metadata",
@@ -1985,16 +2017,19 @@
"sign_out": "Đăng xuất",
"sign_up": "Đăng ký",
"size": "Kích thước",
+ "skip": "Bỏ qua",
"skip_to_content": "Chuyển đến nội dung",
"skip_to_folders": "Chuyển đến thư mục",
"skip_to_tags": "Chuyển đến thẻ",
"slideshow": "Trình chiếu",
+ "slideshow_body": "Hãy thư giãn và xem các bức ảnh của bạn trình chiếu ở chế độ toàn màn hình.",
"slideshow_metadata_overlay_mode": "Lớp phủ nội dung",
"slideshow_metadata_overlay_mode_description_only": "Chỉ mô tả",
"slideshow_metadata_overlay_mode_full": "Đầy đủ",
- "slideshow_repeat": "Trình chiếu lại",
+ "slideshow_repeat": "Lặp lại trình chiếu",
"slideshow_repeat_description": "Phát lại từ đầu khi trình chiếu kết thúc",
"slideshow_settings": "Cài đặt trình chiếu",
+ "slideshow_title": "Slideshow",
"smart_album": "Album thông minh",
"some_assets_already_have_a_location_warning": "Một số tài nguyên được lựa chọn đã có vị trí",
"sort_albums_by": "Sắp xếp album theo...",
@@ -2007,7 +2042,7 @@
"sort_title": "Tiêu đề",
"source": "Mã nguồn",
"stack": "Nhóm ảnh",
- "stack_action_prompt": "{count} đã được nhóm",
+ "stack_action_prompt": "Đã nhóm ({count}) tương tự",
"stack_duplicates": "Nhóm mục trùng lặp",
"stack_selected_photos": "Nhóm các ảnh đã chọn",
"stacked_assets_count": "Đã nhóm {count, plural, one {# tài nguyên} other {# tài nguyên}}",
@@ -2092,7 +2127,7 @@
"total": "Tổng cộng",
"total_usage": "Dung lượng đã dùng",
"trash": "Thùng rác",
- "trash_action_prompt": "{count} đã chuyển vào thùng rác",
+ "trash_action_prompt": "Đã chuyển ({count}) vào thùng rác",
"trash_all": "Xóa hết",
"trash_count": "Xóa {count, number} mục",
"trash_delete_asset": "Chuyển vào thùng rác/Xóa tài nguyên",
@@ -2113,15 +2148,16 @@
"unable_to_check_version": "Không thể kiểm tra phiên bản ứng dụng hoặc máy chủ",
"unable_to_setup_pin_code": "Thiết lập mã PIN thất bại",
"unarchive": "Bỏ lưu trữ",
- "unarchive_action_prompt": "{count} đã bỏ khỏi Lưu trữ",
+ "unarchive_action_prompt": "Đã bỏ lưu trữ ({count})",
"unarchived_count": "{count, plural, other {Đã bỏ lưu trữ # mục}}",
"undo": "Hoàn tác",
"unfavorite": "Bỏ thích",
- "unfavorite_action_prompt": "{count} đã bỏ khỏi Yêu thích",
+ "unfavorite_action_prompt": "Đã bỏ yêu thích ({count})",
"unhide_person": "Hiện người",
"unknown": "Không xác định",
"unknown_country": "Quốc gia chưa rõ",
"unknown_date": "Dữ liệu không xác định",
+ "unknown_schema": "Lược đồ không xác định",
"unknown_year": "Năm không rõ",
"unlimited": "Không giới hạn",
"unlink_motion_video": "Hủy liên kết video chuyển động",
@@ -2135,7 +2171,7 @@
"unselect_all": "Bỏ chọn tất cả",
"unselect_all_duplicates": "Bỏ chọn tất cả các bản trùng lặp",
"unstack": "Hủy xếp nhóm",
- "unstack_action_prompt": "{count} đã bỏ nhóm",
+ "unstack_action_prompt": "Đã bỏ tương tự ({count})",
"unstacked_assets_count": "Đã hủy xếp nhóm {count, plural, one {# tài nguyên} other {# tài nguyên}}",
"unsupported_field_type": "Loại trường không được hỗ trợ",
"unsupported_file_type": "Tệp {file} không thể được tải lên vì loại tệp {type} không được hỗ trợ.",
@@ -2151,12 +2187,14 @@
"upload_error_with_count": "Không thể tải lên {count, plural, one {# tài nguyên} other {# tài nguyên}}",
"upload_errors": "Đã hoàn tất tải lên với {count, plural, one {# lỗi} other {# lỗi}}, làm mới trang để xem các tài nguyên mới tải lên.",
"upload_finished": "Đã hoàn tất tải lên",
- "upload_progress": "Còn lại {remaining, number} - Đã xử lý {processed, number}/{total, number}",
+ "upload_progress": "Còn {remaining, number} - Đã xử lý {processed, number}/{total, number}",
"upload_skipped_duplicates": "Đã bỏ qua {count, plural, one {# tài nguyên trùng lặp} other {# tài nguyên trùng lặp}}",
"upload_status_duplicates": "Trùng lặp",
"upload_status_errors": "Lỗi",
"upload_status_uploaded": "Đã tải lên",
"upload_success": "Tải lên thành công, làm mới trang để xem các tài nguyên mới tải lên.",
+ "upload_to_album_body": "Đối với những người dùng không sử dụng tính năng tải lên thủ công, giờ đây bạn có thể chọn thêm ảnh từ thiết bị trực tiếp vào album ngay khi tải lên, thay vì phải tải lên rồi mới thêm vào album sau như trước đây.",
+ "upload_to_album_title": "Tải lên trực tiếp vào album",
"upload_to_immich": "Tải lên Immich ({count})",
"uploading": "Đang tải lên",
"uploading_media": "Đang tải lên phương tiện",
@@ -2164,7 +2202,7 @@
"uploads_count": "{count, plural, one {# tải lên} other {# tải lên}}",
"url": "URL",
"usage": "Sử dụng",
- "use_biometric": "Dùng sinh trắc học",
+ "use_biometric": "Dùng vân tay",
"use_browser_locale": "Dùng ngôn ngữ trình duyệt",
"use_browser_locale_description": "Định dạng ngày, thời gian và số dựa trên ngôn ngữ trình duyệt",
"use_current_connection": "Dùng kết nối hiện tại",
@@ -2206,7 +2244,7 @@
"view_all_users": "Xem tất cả người dùng",
"view_asset_owners": "Xem chủ sở hữu tài nguyên",
"view_details": "Xem thông tin chi tiết",
- "view_in_timeline": "Xem trong dòng thời gian",
+ "view_in_timeline": "Xem trên dòng thời gian",
"view_link": "Xem liên kết",
"view_name": "Giao diện",
"view_next_asset": "Xem tài nguyên tiếp theo",
@@ -2224,6 +2262,9 @@
"week": "Tuần",
"welcome": "Chào mừng",
"welcome_to_immich": "Chào mừng đến với Immich",
+ "whats_new": "Những điều mới",
+ "whats_new_settings_subtitle": "Xem Immich có gì mới",
+ "whats_new_version": "Phiên bản {version}",
"when": "Khi nào",
"width": "Chiều rộng",
"wifi_name": "Tên Wi-Fi",
diff --git a/i18n/yue_Hant.json b/i18n/yue_Hant.json
index eae47fb625..0d79c8a89a 100644
--- a/i18n/yue_Hant.json
+++ b/i18n/yue_Hant.json
@@ -45,7 +45,7 @@
"authentication_settings": "驗證設定",
"authentication_settings_description": "管理密碼、OAuth 同其他驗證設定",
"authentication_settings_disable_all": "你確定你要停用所有登入嘅方式嗎?你會完全冇辦法登入。",
- "authentication_settings_reenable": "如果你要重新啟用嘅話,請使用伺服器指令。",
+ "authentication_settings_reenable": "如果你要重新啟用嘅話,請使用 伺服器指令。",
"background_task_job": "背景操作",
"backup_database": "建立資料庫備份",
"backup_database_enable_description": "啟用資料庫備份",
@@ -53,8 +53,8 @@
"backup_onboarding_1_description": "係雲端或者其他實體地方建立嘅備份副本。",
"backup_onboarding_2_description": "儲存係唔同裝置嘅本地副本。包含主要嘅檔案同埋喺本機嘅備份。",
"backup_onboarding_3_description": "資料包含原始文件,總共備份嘅次數。呢個包括1份異地嘅備份同埋2份本機副本。",
- "backup_onboarding_description": "我哋建議你使用嘅3-2-1備份嚟保障你嘅資料。為咗可以全方位地備份你嘅資料,你應該保留已經上傳嘅相/影片嘅副本,同埋Immich嘅資料庫,。",
- "backup_onboarding_footer": "有關其他Immich備份嘅資料,請參考說明文件。",
+ "backup_onboarding_description": "建議你使用 3-2-1備份原則 嚟保護你嘅數據。你應該備份已經上傳嘅相,影片同埋 Immich 嘅數據庫令到你嘅資料更加被保障。",
+ "backup_onboarding_footer": "有關其他Immich備份嘅資料,請參考 說明文件。",
"backup_onboarding_parts_title": "一個3-2-1備份包括:",
"backup_onboarding_title": "備份",
"backup_settings": "資料庫備份嘅設定",
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "縮圖品質(1-100)。數值越高畫質越好,但係檔案更加大,而且可能降低應用嘅回應速度。",
"image_thumbnail_title": "縮圖設定",
"import_config_from_json_description": "透過上傳 JSON 設定嚟導入系統設定",
+ "integrity_checks_checksum_files": "校驗檔案",
+ "integrity_checks_checksum_files_description": "設定校驗同檢查",
+ "integrity_checks_checksum_files_enable_description": "啟用校驗同埋檢查",
+ "integrity_checks_checksum_files_percentage_limit": "百分比限制",
+ "integrity_checks_checksum_files_percentage_limit_description": "設定每個檢查檢驗所執行,從 0.01 到 1 之間嘅最大百分比。",
+ "integrity_checks_checksum_files_time_limit": "時間限制",
+ "integrity_checks_checksum_files_time_limit_description": "設定每個檢查中,檢查嘅最長執行時間。(毫秒)",
+ "integrity_checks_missing_files": "遺失嘅檔案",
+ "integrity_checks_missing_files_description": "設定執行頻率同埋啟用或者停用遺失檔案檢查",
+ "integrity_checks_missing_files_enable_description": "啟用遺失檔案檢查",
+ "integrity_checks_settings": "完整性檢查",
+ "integrity_checks_settings_description": "管理完整性檢查嘅間隔",
+ "integrity_checks_untracked_files": "未追蹤嘅檔案",
+ "integrity_checks_untracked_files_description": "設定頻率,並且啟用或者停用未追蹤嘅檔案檢查",
+ "integrity_checks_untracked_files_enable_description": "啟用未追蹤檔案嘅檢查",
"job_concurrency": "{job} 並行數",
"job_created": "建立咗任務",
"job_not_concurrency_safe": "呢個任務唔支援並行執行。",
@@ -366,7 +381,7 @@
"template_settings": "通知範本",
"template_settings_description": "管理通知個自訂範本",
"theme_custom_css_settings": "自訂 CSS",
- "theme_custom_css_settings_description": "透過階層式樣式表 (CSS) 可以自訂 Immich 嘅外觀設計。",
+ "theme_custom_css_settings_description": "透過階層式樣式表 () 可以自訂 Immich 嘅外觀設計。",
"theme_settings": "主題設定",
"theme_settings_description": "自訂 Immich 網頁介面",
"thumbnail_generation_job": "產生縮圖",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "允許喺影片串流播放嘅同時即時進行轉碼。呢個功能支援動態切換畫質,但係可能會因為伺服器嘅效能而導致較高嘅播放延遲或斷斷續續嘅畫面。",
"transcoding_realtime_enabled": "啟用即時轉碼",
"transcoding_realtime_enabled_description": "如果停用,伺服器將會拒絕啟動新嘅即時轉碼工作階段。",
+ "transcoding_realtime_resolutions": "解像度",
+ "transcoding_realtime_resolutions_description": "實時轉碼所提供嘅解像度選項。更加高嘅解像度喺伺服器轉碼轉唔切嘅情況下可能會導致播放問題。",
+ "transcoding_realtime_video_codecs": "影片編解碼器",
+ "transcoding_realtime_video_codecs_description": "呢個係用喺實時轉碼嘅影片解碼器選項。用戶端會喺播放嘅時候選擇佢支持嘅最佳選項。AV1 嘅效率會高過 HEVC,而 HEVC 嘅效率又會高過 H.264。 喺使用硬體加速嘅時候淨係要選擇加速器支援嘅解碼器。使用軟件解碼嘅時候,H.264 嘅速度會快過 AV1, 而 AV1 嘅速度會快過 HEVC。",
"transcoding_reference_frames": "參考幀",
"transcoding_reference_frames_description": "喺壓縮特定幀嘅時候所參考嘅幀數量。數值越高可以提升壓縮嘅效率,但係會降低編碼嘅速度。設為 0 則自動決定此數值。",
"transcoding_required_description": "只係限於格式唔被接受嘅影片",
@@ -446,6 +465,20 @@
"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_delete_immediately_checkbox": "立即將用戶同埋佢嘅文件加入立即刪除嘅隊伍",
+ "user_details": "用戶詳情",
+ "user_management": "用户管理",
+ "user_password_has_been_reset": "用戶嘅密碼已重設:",
+ "user_password_reset_description": "請將臨時密碼比嗰個使用者,同埋同佢哋講喺下次登入嘅時候需要更改密碼。",
+ "user_restore_description": "{user} 嘅帳號將會被還原。",
+ "user_restore_scheduled_removal": "還原使用者 - 取消預定喺 {date, date, long} 嘅移除計畫",
+ "user_settings": "用户設定",
+ "user_settings_description": "管理用户設定",
+ "user_successfully_removed": "用戶 {email}已成功刪除。",
+ "users_page_description": "管理用户頁面",
+ "version_check_channel": "更新發佈渠道",
"version_check_channel_description": "揀選你接收版本更新公告嘅發布渠道",
"version_check_enabled_description": "啟用版本檢查",
"version_check_implications": "版本檢查功能依賴同 {server} 嘅定期通訊",
@@ -515,87 +548,1097 @@
"alt_text_qr_code": "QR code 圖片",
"always_keep": "一律保留",
"always_keep_photos_hint": "「釋放空間」功能會將所有相片保留喺呢個裝置上。",
+ "always_keep_videos_hint": "「釋放空間」功能會將所有影片保留喺呢個裝置上面。",
+ "api_key": "API 密匙",
+ "api_key_description": "呢個密匙只係會顯示一次。關閉視窗前唔該一定要先複製密匙。",
+ "api_key_empty": "API 密匙個名唔可以空白",
+ "api_keys": "API 密匙",
+ "app_architecture_variant": "變體(架構)",
+ "app_bar_signout_dialog_content": "你係唔係確定要登出?",
+ "app_bar_signout_dialog_title": "登出",
+ "app_download_links": "App 下載連結",
+ "app_settings": "應用程式設定",
+ "app_stores": "應用程式商店",
+ "app_update_available": "已有應用程式更新",
+ "appears_in": "出現喺",
+ "apply_count": "套用 ({count, number})",
+ "archive": "封存",
+ "archive_action_prompt": "已將 {count} 個項目封存",
+ "archive_or_unarchive_photo": "封存或者取消封存相片",
+ "archive_size": "封存大細",
+ "archive_size_description": "設定封存下載嘅檔案大細(GiB)",
"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_created": "已創立項目",
+ "asset_day_count": "{date}: {count, plural, one {# 個項目} other {# 個項目}}",
+ "asset_description_updated": "項目嘅描述更新咗啦",
"asset_hashing": "正在計算雜湊…",
+ "asset_list_group_by_sub_title": "點樣分類",
+ "asset_list_layout_settings_group_by": "項目點樣分類",
+ "asset_list_layout_settings_group_by_month_day": "月份 + 日期",
"asset_list_layout_sub_title": "版面",
+ "asset_list_settings_subtitle": "相片網格版面設定",
+ "asset_list_settings_title": "相片網格",
+ "asset_not_found_on_device_android": "裝置上面搵唔到項目",
+ "asset_not_found_on_device_ios": "裝置上面搵唔到呢個項目。如果你用緊 iCloud,可能喺因為 iCloud 入面擺咗損毀咗嘅文件而導致項目存取唔到",
+ "asset_not_found_on_icloud": "iCloud入面搵唔到呢個項目。可能喺因為iCloud入面擺咗損毀嘅文件導致項目冇辦法存取",
+ "asset_offline": "項目唔在線",
+ "asset_offline_description": "硬碟上面搵唔到呢個外部文件。唔該聯絡你個 Immich 管理員叫佢幫手。",
"asset_skipped": "已跳過",
+ "asset_skipped_in_trash": "喺垃圾桶入面",
+ "asset_troubleshoot": "文件診斷",
"asset_uploaded": "已上傳",
"asset_uploading": "上傳中…",
+ "asset_viewer_settings_subtitle": "管理您嘅媒體庫檢視器設定",
+ "asset_viewer_settings_title": "文件查閱器",
"assets": "項目",
+ "assets_added_to_album_count": "加咗 {count, plural, one {# 件項目} other {# 件項目}} 入去呢個相簿入面",
+ "assets_added_to_album_partial_count": "已經成功將 {totalCount}{totalCount, plural, one {件項目} other {件項目}}入面嘅 {successCount} 件加入相簿",
+ "assets_added_to_albums_count": "加咗 {assetTotal, plural, one {# 件項目} other {# 件項目}} 入 {albumTotal, plural, one {# 個相簿} other {# 個相簿}} 入面",
+ "assets_cannot_be_added_to_album_count": "加唔到 {count, plural, one {件項目} other {件項目}} 入相簿入面",
+ "assets_cannot_be_added_to_albums": "冇辦法加 {count, plural, one {件項目} other {件項目}} 入去任何嘅相簿入面",
+ "assets_count": "{count, plural, one {#件項目} other {#件項目}}",
+ "assets_moved_to_trash_count": "揼咗 {count, plural, one {# 件項目} other {# 件項目}} 入垃圾桶入面",
+ "assets_permanently_deleted_count": "永久刪除咗 {count, plural, one {# 件項目} other {# 件項目}}",
+ "assets_removed_count": "移除咗 {count, plural, one {# 件項目} other {# 件項目}}",
+ "assets_restore_confirmation": "你係唔係要恢復垃圾桶入面嘅所有項目?呢個動作喺冇得收返嘅!任何離線嘅項目唔可以咁樣恢復。",
+ "assets_restored_count": "恢復咗 {count, plural, one {# 件項目} other {# 件項目}}",
+ "assets_trashed": "{count}件項目揼咗落垃圾桶",
+ "assets_trashed_count": "揼咗 {count, plural, one {# 件項目} other {# 件項目}} 入垃圾桶入面",
+ "assets_were_part_of_album_count": "{count, plural, one {件項目} other {件項目}}已經喺嗰個相簿入面",
+ "assets_were_part_of_albums_count": "{count, plural, one {件項目} other {件項目}} 已經喺相簿入面",
+ "authorized_devices": "已授權嘅裝置",
+ "automatic_endpoint_switching_subtitle": "喺用到嘅時候透過指定嘅 Wi-Fi 本地連接,喺其他地方用其他替代嘅網絡",
+ "automatic_endpoint_switching_title": "自動切換 URL",
+ "autoplay_slideshow": "自動播放圖片",
"back": "上一頁",
+ "back_close_deselect": "返回,關閉或者取消選擇",
+ "background_location_permission": "後台定位嘅權限",
+ "background_location_permission_content": "為咗可以喺後台行緊嗰陣時換網絡,Immich喺任何時間都一定要有精確位置嘅權限,咁個程式先可以讀取你用緊 Wi-Fi 個名",
+ "background_options": "後台選項",
"backup": "備份",
+ "backup_album_selection_page_albums_tap": "一撳包括,雙撳排除",
+ "backup_album_selection_page_assets_scatter": "項目可以分散喺幾個相簿入面。所以喺備份個過程入面可以包含或者排除某啲相簿。",
+ "backup_album_selection_page_select_albums": "揀相簿",
+ "backup_album_selection_page_selection_info": "選擇資料",
+ "backup_albums_sync": "備份相簿同步",
+ "backup_background_service_complete_notification": "項目備份完成",
+ "backup_background_service_default_notification": "搵緊新項目…",
+ "backup_background_service_in_progress_notification": "備份緊您嘅項目…",
+ "backup_controller_page_albums": "備份相簿",
+ "backup_controller_page_background_battery_info_link": "話我知點做",
+ "backup_controller_page_background_battery_info_message": "為獲得最好嘅背景備份體驗,請停用任何會限制 Immich 背景活動嘅電池最佳化設定。\n\n由於佢同裝置型號相關,請查詢您裝置製造商嘅相關說明。",
"backup_controller_page_background_battery_info_ok": "OK",
+ "backup_controller_page_background_battery_info_title": "電池最佳化",
+ "backup_controller_page_background_delay": "新項目備份延遲:{duration}",
"backup_controller_page_backup": "備份",
"backup_controller_page_backup_selected": "已選取: ",
+ "backup_controller_page_backup_sub": "備份咗嘅相片同影片",
"backup_controller_page_excluded": "已排除: ",
+ "backup_controller_page_none_selected": "未選取任何項目",
"backup_controller_page_remainder": "剩餘",
+ "backup_controller_page_remainder_sub": "選取項目中未備份嘅相片同影片",
+ "backup_controller_page_server_storage": "伺服器儲存空間",
+ "backup_controller_page_storage_format": "用咗 {used} / {total}",
+ "backup_controller_page_to_backup": "要備份嘅相簿",
+ "backup_controller_page_total_sub": "你揀嘅相簿入面所有獨特嘅相片同埋影片",
+ "backup_error_sync_failed": "同步失敗。處理唔到備份。",
"backup_info_card_assets": "個項目",
+ "backup_options": "備份選項",
+ "backup_settings_subtitle": "管理上傳嘅設定",
"backward": "由舊至新",
+ "battery_optimization_backup_reliability": "閂咗電池最佳化可以提高後台備份嘅可靠性",
+ "biometric_auth_enabled": "生物識別已啟用",
+ "biometric_locked_out": "你被鎖定無法使用生物識別",
+ "biometric_no_options": "無可以用到嘅生物識別選項",
+ "biometric_not_available": "呢個裝置唔支持生物識別",
+ "birthdate_set_description": "出生日期喺攞嚟計喺影呢張相嗰陣時呢個人個歲數。",
+ "blurred_background": "背景模糊化",
+ "browse_templates": "瀏覽樣板",
+ "bugs_and_feature_requests": "問題同功能建議",
"build": "建置編號",
+ "build_image": "映像版本",
+ "bulk_delete_duplicates_confirmation": "你係唔係確定要一次過刪除呢{count, plural, one {#個} other {#個}}重複嘅項目?呢個會保留每組入面體積最大嘅項目,同埋永久刪除其他所有重複嘅項目。刪除咗之後喺冇得撤回嘅!",
+ "bulk_keep_duplicates_confirmation": "你係唔係確定要保留{count}個重複項目?呢個動作將會標記所有嘅重複項目為已解決,而且唔會刪除任何嘅項目。",
+ "bulk_trash_duplicates_confirmation": "你係唔係確定要將呢一批{count}個重複嘅項目移到垃圾桶?呢個動作會保留每組入面體積最大嘅項目,並且將其他所有重複嘅項目搬到垃圾桶。",
+ "buy": "購買 Immich",
"camera": "相機",
+ "camera_brand": "相機品牌",
+ "camera_model": "相機型號",
"cancel": "取消",
+ "cancel_search": "取消搜尋",
"canceled": "已取消",
"canceling": "取消中",
+ "cannot_merge_people": "合併唔到人物",
+ "cannot_undo_this_action": "呢個動作冇辦法撤回!",
+ "cannot_update_the_description": "更新唔到描述",
"cast": "投放",
+ "cast_description": "設定可用嘅投影裝置",
+ "change": "更改",
+ "change_date": "更改日期",
+ "change_description": "更改描述",
+ "change_display_order": "更改顯示次序",
+ "change_location": "更改位置",
+ "change_name": "更改名稱",
+ "change_name_successfully": "成功更改名稱",
+ "change_password": "更改密碼",
+ "change_password_description": "呢個一喺你第一次登錄呢個系統,一喺收到更改密碼嘅要求。請喺下面輸入你嘅新密碼。",
+ "change_password_form_confirm_password": "確認密碼",
+ "change_password_form_description": "你好 {name}:\n\n呢個喺你第一次登錄系統,或者收到更改密碼嘅要求。請係下面輸入新密碼。",
+ "change_password_form_log_out": "將所有其他裝置登出",
+ "change_password_form_log_out_description": "建議登出所有其他裝置",
+ "change_password_form_new_password": "新密碼",
+ "change_password_form_password_mismatch": "密碼唔對",
+ "change_password_form_reenter_new_password": "再輸入新密碼",
+ "change_pin_code": "改 PIN 碼",
+ "change_your_password": "更改您嘅密碼",
+ "changed_visibility_successfully": "已成功變更咗可見性",
"charging": "叉緊電",
+ "charging_requirement_mobile_backup": "背景備份需要裝置充著電",
+ "check_logs": "檢查紀錄",
+ "checksum": "校驗碼",
+ "choose": "揀",
+ "choose_matching_people_to_merge": "選擇要合併嘅相符人物",
"city": "城市",
+ "cleanup_confirm_description": "Immich 發現有 {count} 個項目(建立於 {date} 之前)已安全備份咗至伺服器。係咪要從此裝置中刪除本機副本?",
+ "cleanup_confirm_prompt_title": "從此裝置刪除?",
+ "cleanup_deleted_assets": "已將 {count} 個項目移到裝置嘅垃圾桶",
+ "cleanup_deleting": "正在移動到垃圾桶...",
+ "cleanup_found_assets": "找到 {count} 件已上傳嘅項目",
+ "cleanup_found_assets_with_size": "找到 {count} 件,總共 ({size}) 已上傳嘅項目",
+ "cleanup_icloud_shared_albums_excluded": "iCloud 共享相簿被排除於搜尋之外",
+ "cleanup_no_assets_found": "搵唔到符合上述條件嘅項目。釋放空間功能只能移除已備份至伺服器嘅項目",
+ "cleanup_preview_title": "{count} 項需要移除嘅項目",
+ "cleanup_step3_description": "掃描符合日期與儲存設定嘅已備份項目。",
+ "cleanup_step4_summary": "將從此裝置移除 {count} 個建立於 {date} 之前嘅項目。您仍可透過 Immich 應用程式存取呢啲相片。",
+ "cleanup_trash_hint": "若要徹底釋放儲存空間,請開啟系統相簿 App 清空垃圾桶",
"clear": "清空",
+ "clear_all": "全部清除",
+ "clear_all_recent_searches": "清除所有最近嘅搜尋",
+ "clear_failed_count": "清除失敗 ({count})",
+ "clear_file_cache": "清除檔案快取",
+ "clear_message": "清除訊息",
+ "clear_value": "清除值",
"client_cert_import": "導入",
+ "client_cert_import_success_msg": "匯入咗用戶端憑證",
+ "client_cert_invalid_msg": "無效嘅憑證檔案或密碼錯誤",
+ "client_cert_password_message": "請輸入此憑證嘅密碼",
+ "client_cert_password_title": "憑證密碼",
+ "client_cert_remove_msg": "移除咗用戶端憑證",
+ "client_cert_subtitle": "淨係支援 PKCS12 (.p12, .pfx) 格式。可以係登入前匯入或移除憑證",
+ "client_cert_title": "SSL 用戶端憑證 [實驗性]",
"close": "閂",
"collapse": "收埋",
+ "collapse_all": "全部折疊",
"color": "顏色",
+ "command": "命令",
+ "command_palette_prompt": "快速搵頁面、動作或指令",
+ "command_palette_to_close": "關閉",
+ "command_palette_to_navigate": "輸入",
+ "command_palette_to_select": "選擇",
+ "command_palette_to_show_all": "全部顯示",
+ "comment_deleted": "留言已刪除",
+ "comment_options": "留言選項",
+ "comments_and_likes": "留言及喜歡",
+ "comments_are_disabled": "留言已停用",
+ "common_create_new_album": "建立新相簿",
"completed": "搞掂",
+ "configuration": "設定",
"confirm": "確認",
+ "confirm_admin_password": "確認管理員密碼",
+ "confirm_delete_face": "您係咪確定要從該項目中刪除 {name} 嘅面孔?",
+ "confirm_delete_shared_link": "您係咪確定要刪除此分享連結?",
+ "confirm_keep_this_delete_others": "除此項目外,堆疊中嘅其他項目都將會被刪除。您係咪確定要繼續?",
+ "confirm_new_pin_code": "確認新 PIN 碼",
+ "confirm_password": "確認密碼",
+ "confirm_tag_face": "您係咪想將呢塊面孔標籤為 {name} ?",
+ "confirm_tag_face_unnamed": "您係咪想標籤呢塊面孔?",
+ "connected_device": "已連線裝置",
+ "connected_to": "已連線至",
"contain": "等比內縮",
+ "context": "脈絡",
"continue": "繼續",
+ "control_bottom_app_bar_add_tags": "新增標籤",
+ "control_bottom_app_bar_delete_from_local": "從裝置中刪除",
+ "control_bottom_app_bar_edit_location": "編輯位置資料",
+ "control_bottom_app_bar_edit_time": "編輯日期與時間",
+ "control_bottom_app_bar_trash_from_immich": "移到垃圾桶",
+ "copied_image_to_clipboard": "已將圖片複製到剪貼簿。",
+ "copied_to_clipboard": "已複製到剪貼簿!",
+ "copy_error": "複製錯誤",
+ "copy_image": "複製圖片",
+ "copy_json": "複製 JSON",
+ "copy_link": "複製連結",
+ "copy_link_to_clipboard": "複製連結到剪貼簿",
+ "copy_password": "複製密碼",
+ "copy_to_clipboard": "複製到剪貼簿",
"country": "國家",
"cover": "填滿",
"covers": "封面",
"create": "建立",
+ "create_album": "建立相簿",
"create_album_page_untitled": "未命名",
+ "create_api_key": "建立 API 金鑰",
+ "create_first_workflow": "建立第一個工作流程",
+ "create_library": "建立媒體庫",
+ "create_link": "建立連結",
+ "create_link_to_share": "建立共享連結",
+ "create_link_to_share_description": "比任何有連結嘅人查閱所揀嘅相",
+ "create_new": "新增",
+ "create_new_person": "建立新嘅人物",
+ "create_new_person_hint": "將選取嘅項目指派俾新嘅人物",
+ "create_new_user": "建立新使用者",
+ "create_person": "建立人物",
+ "create_person_subtitle": "為所選嘅面孔命名以新增同標記新人物",
+ "create_shared_album_page_share_add_assets": "新增項目",
+ "create_shared_album_page_share_select_photos": "選取相片",
+ "create_shared_link": "建立分享連結",
+ "create_tag": "建立標籤",
+ "create_tag_description": "建立新標籤。如果要建立巢狀標籤,請輸入包含正斜線嘅完整標籤路徑。",
+ "create_user": "建立使用者",
+ "create_workflow": "建立工作流程",
+ "created": "建立於",
+ "created_at": "建立於",
+ "creating_linked_albums": "建立連結相簿 ...",
+ "crop": "裁剪",
+ "crop_aspect_ratio_free": "自由比例",
+ "crop_aspect_ratio_original": "原檔",
+ "crop_aspect_ratio_square": "方形",
+ "current_device": "目前裝置",
+ "current_pin_code": "目前 PIN 碼",
+ "current_server_address": "目前嘅伺服器位址",
+ "custom_date": "另揀日期",
+ "custom_locale": "自訂地區設定",
+ "custom_locale_description": "根據選定語言同地區格式化日期、時間與數字",
+ "cutoff_date_description": "保留最近幾多日嘅相片…",
+ "cutoff_day": "{count, plural, one {日} other {日}}",
+ "cutoff_year": "{count, plural, one {年} other {年}}",
+ "dark": "深色",
+ "dark_theme": "切換至深色主題",
+ "date": "日期",
+ "date_after": "開始日期",
+ "date_and_time": "日期與時間",
+ "date_before": "結束日期",
+ "date_of_birth": "出生日期",
+ "date_of_birth_saved": "出生日期成功保存",
+ "date_range": "日期範圍",
+ "date_time_original": "原始日期/時間",
+ "day": "日",
+ "days": "日",
+ "deduplicate_all": "刪除所有嘅重複項目",
+ "default_quality_subtitle": "分享嗰陣用嘅畫質。長㩒分享掣可以每次手動自己揀。",
+ "default_share_quality": "預設分享畫質",
"delete": "刪除",
+ "delete_action_confirmation_message": "你係唔係確定要刪除呢個項目?呢個動作會將呢個項目揼落伺服器嘅垃圾桶,並且會問你係唔係要係本地裝置上面刪除",
+ "delete_action_prompt": "已經刪除 {count} 項",
+ "delete_album": "刪除相簿",
+ "delete_api_key_prompt": "你係唔係確定要移除呢個 API 密匙?",
+ "delete_dialog_alert": "呢啲項目會喺 Immich 伺服器同埋你嘅裝置上面永久刪除",
+ "delete_dialog_alert_local": "呢啲項目將會喺你嘅裝置上面永久咁刪除,但係依然會保留喺 Immich 伺服器上面",
+ "delete_dialog_alert_local_non_backed_up": "部分嘅項目仲未備份到 Immich 嗰度,喺裝置上面刪除後將會永久消失",
+ "delete_dialog_title": "永久刪除",
+ "delete_duplicates_confirmation": "你係唔係確定要永久刪除呢啲重複嘅項目?",
+ "delete_face": "刪除嗰塊面",
+ "delete_key": "刪除密匙",
+ "delete_library": "刪除資料庫",
+ "delete_link": "刪除連結",
+ "delete_local_action_prompt": "已喺本機刪除咗 {count} 個項目",
+ "delete_local_dialog_ok_backed_up_only": "刪除淨係備份咗嘅項目",
+ "delete_local_dialog_ok_force": "確認刪除",
+ "delete_others": "刪除其他",
+ "delete_permanently": "永久刪除",
+ "delete_permanently_action_prompt": "永久刪除咗 {count} 個項目",
+ "delete_shared_link": "刪除分享連結",
+ "delete_shared_link_dialog_title": "刪除分享連結",
+ "delete_tag": "刪除標籤",
+ "delete_tag_confirmation_prompt": "您係咪確定要刪除「{tagName}」標籤?",
+ "delete_user": "刪除使用者",
+ "deleted_shared_link": "已刪除咗共享連結",
"description": "描述",
+ "deselect_all": "取消全選",
+ "details": "詳細資料",
+ "direction": "方向",
+ "disable": "停用",
+ "disabled": "停用咗",
+ "discord": "Discord",
+ "discover": "探索",
+ "discovered_devices": "已發現嘅裝置",
+ "dismiss_all_errors": "忽略所有錯誤",
+ "display_options": "顯示選項",
+ "display_order": "顯示順序",
+ "display_original_photos": "顯示原始相片",
+ "display_original_photos_setting_description": "檢視時如果原始檔案支援網頁格式,優先顯示原圖而非縮圖。呢個選項可能會降低載入嘅速度。",
+ "do_not_show_again": "唔好再顯示呢個訊息",
+ "documentation": "說明文件",
+ "done": "完成",
+ "download": "下載",
+ "download_canceled": "下載取消咗",
+ "download_complete": "下載咗",
+ "download_enqueue": "已加入下載",
+ "download_failed": "下載唔到",
+ "download_finished": "下載咗",
+ "download_include_embedded_motion_videos": "嵌入影片",
+ "download_include_embedded_motion_videos_description": "將動態相片裏面內嵌嘅影片儲存為獨立檔案",
+ "download_notfound": "搵唔到下載項目",
+ "download_original": "下載原始項目",
+ "download_paused": "下載已經暫停",
+ "download_settings": "下載",
+ "download_settings_description": "管理同項目下載相關嘅設定",
+ "download_waiting_to_retry": "等待重試",
+ "downloading": "下載緊",
+ "downloading_asset_filename": "下載緊 {filename}",
+ "downloading_from_icloud": "從 iCloud 嗰度下載",
+ "downloading_media": "下載緊媒體",
+ "drag_to_reorder": "拖動嚟重新排列",
+ "drop_files_to_upload": "求其拖放文件嚟上傳",
+ "duplicate": "複製",
+ "duplicate_workflow": "複製工作流程",
+ "duplicates": "重複項目",
+ "duplicates_description": "請逐一標示每組入面嘅重複項目。",
+ "duration": "時長",
+ "edit": "編輯",
+ "edit_album": "編輯相簿",
+ "edit_avatar": "編輯頭像",
+ "edit_birthday": "編輯生日",
+ "edit_date": "編輯日期",
+ "edit_date_and_time": "編輯日期同埋時間",
+ "edit_date_and_time_action_prompt": "已編輯 {count} 樣日期時間",
+ "edit_date_and_time_by_offset": "按偏移嚟調整日期",
+ "edit_description": "修改描述",
+ "edit_exclusion_pattern": "編輯排除模式",
+ "edit_faces": "編輯人面",
+ "edit_key": "編輯 API 密匙",
+ "edit_link": "編輯連結",
+ "edit_location": "編輯位置",
+ "edit_location_action_prompt": "已編輯 {count} 個位置",
+ "edit_location_dialog_title": "位置",
+ "edit_name": "編輯名",
+ "edit_people": "編輯人物",
+ "edit_tag": "編輯標籤",
+ "edit_title": "編輯標題",
+ "edit_user": "編輯用戶",
+ "edit_workflow": "編輯工作流程",
+ "editor": "編輯器",
+ "editor_discard_edits_confirm": "放棄編輯",
+ "editor_discard_edits_prompt": "你有未保存嘅修改,你係唔係確定要揼咗佢?",
+ "editor_discard_edits_title": "係唔係確定放棄修改?",
+ "editor_edits_applied_error": "加唔到你嘅修改",
+ "editor_edits_applied_success": "已成功修改",
+ "editor_flip_horizontal": "水平翻轉",
+ "editor_flip_vertical": "垂直翻轉",
+ "editor_handle_corner": "{corner, select, top_left {左上角} top_right {右上角} bottom_left {左下角} bottom_right {右下角} other {其中一個}}角落的控制手柄",
+ "editor_handle_edge": "{edge, select, top {頂部} bottom {底部} left {左側} right {右側} other {其中一個}} 邊緣的控制手柄",
+ "editor_orientation": "方向",
+ "editor_reset_all_changes": "重設變更",
+ "editor_rotate_left": "逆時針旋轉 90 度",
+ "editor_rotate_right": "順時針旋轉 90 度",
+ "email": "電郵",
+ "email_notifications": "電郵通知",
+ "empty_folder": "呢個文件夾係空嘅",
+ "empty_trash": "清空垃圾桶",
+ "empty_trash_confirmation": "您係咪確定要清空垃圾桶?將會從 Immich 永久移除垃圾桶裡面所有嘅項目。\n無得還原呢個動作!",
+ "enable": "啟用",
+ "enable_backup": "啟用備份",
+ "enable_biometric_auth_description": "輸入您的 PIN 碼以啟用生物辨識驗證",
"enabled": "已啟用",
+ "end_date": "結束日期",
"enqueued": "已排入隊列",
+ "enter_wifi_name": "輸入 Wi-Fi 名",
+ "enter_your_pin_code": "輸入您嘅 PIN 碼",
+ "enter_your_pin_code_subtitle": "輸入您嘅 PIN 碼存取已上鎖嘅資料夾",
"error": "錯誤",
+ "error_delete_face": "從項目刪除面孔時出錯",
+ "error_loading_albums": "載入相簿時出錯",
+ "error_loading_image": "圖片載入出錯",
+ "error_loading_partners": "載入親友時出錯:{error}",
+ "error_retrieving_asset_information": "攞唔到項目資料",
+ "error_saving_image": "錯誤:{error}",
+ "error_tag_face_bounding_box": "標記面孔出錯 - 無法取得邊界框坐標",
+ "error_title": "出錯 - 有問題",
+ "error_while_navigating": "瀏覽唔到去項目",
+ "errors": {
+ "cannot_navigate_next_asset": "瀏覽唔到至下一個項目",
+ "cannot_navigate_previous_asset": "瀏覽唔到去上個項目",
+ "cant_apply_changes": "套用唔到變更",
+ "cant_change_activity": "{enabled, select, true {停用} other {啟用}}唔到活動",
+ "cant_change_asset_favorite": "改唔到項目嘅收藏狀態",
+ "cant_change_metadata_assets_count": "改唔到 {count, plural, other {# 個項目}} 嘅詮釋資料",
+ "cant_get_faces": "攞唔到面孔",
+ "cant_get_number_of_comments": "攞唔到留言數量",
+ "cant_search_people": "搵唔到人物",
+ "cant_search_places": "搵唔到地方",
+ "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_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_notifications": "載入唔到通知",
+ "failed_to_load_people": "載入唔到人物",
+ "failed_to_remove_product_key": "移除唔到產品金鑰",
+ "failed_to_reset_pin_code": "重設唔到 PIN 碼",
+ "failed_to_stack_assets": "堆疊唔到項目",
+ "failed_to_tag_assets": "標記唔到資源",
+ "failed_to_unstack_assets": "解除唔到項目堆疊",
+ "failed_to_update_notification_status": "更新唔到通知狀態",
+ "incorrect_email_or_password": "電子郵件或密碼唔岩",
+ "library_folder_already_exists": "呢個匯入路徑已存在。",
+ "page_not_found": "搵唔到到頁面",
+ "paths_validation_failed": "驗證唔到 {paths, plural, one {# 個路徑} other {# 個路徑}}",
+ "profile_picture_transparent_pixels": "個人資料圖片唔可以有透明畫素。請放大同/或移動圖片。",
+ "quota_higher_than_disk_size": "您設定嘅配額大過磁碟容量",
+ "something_went_wrong": "出錯",
+ "unable_to_add_album_users": "將使用者加唔到入相簿",
+ "unable_to_add_assets_to_shared_link": "將項目加唔到入至分享連結",
+ "unable_to_add_comment": "新增唔到留言",
+ "unable_to_add_exclusion_pattern": "新增唔到排除模式",
+ "unable_to_add_partners": "新增唔到親友",
+ "unable_to_add_remove_archive": "項目{archived, select, true {移唔走} other {加唔到入}}封存",
+ "unable_to_add_remove_favorites": "喺收藏入面{favorite, select, true {加唔到} other {刪除唔到}}個項目",
+ "unable_to_archive_unarchive": "{archived, select, true {封存} other {封存取消}}唔到",
+ "unable_to_change_album_user_role": "改唔到相簿用戶嘅角色",
+ "unable_to_change_date": "改唔到日期",
+ "unable_to_change_description": "改唔到描述",
+ "unable_to_change_favorite": "改唔到項目嘅收藏狀態",
+ "unable_to_change_location": "改唔到位置",
+ "unable_to_change_password": "改唔到密碼",
+ "unable_to_change_visibility": "改唔到 {count} 個人嘅可見性",
+ "unable_to_complete_oauth_login": "完成唔到 OAuth 登入",
+ "unable_to_connect": "無法連線",
+ "unable_to_delete_user": "刪除唔到用戶",
+ "unable_to_delete_workflow": "刪除唔到工作流程",
+ "unable_to_download_files": "下載唔到文件"
+ },
+ "errors_text": "錯誤",
+ "exclusion_pattern": "排除模式",
"exif": "Exif",
+ "exif_bottom_sheet_description": "加描述...",
+ "exif_bottom_sheet_no_description": "冇描述",
+ "exit_slideshow": "離開幻燈片",
+ "expand": "展開",
+ "expand_all": "展開晒",
+ "expire_after": "幾時失效",
"expired": "過咗期",
+ "expires_date": "喺 {date} 過期",
"explore": "探索",
"explorer": "總覽",
"export": "匯出",
+ "export_database": "匯出資料庫",
+ "exposure_time": "曝光時間",
"extension": "副檔名",
"external": "外部",
+ "external_libraries": "外部媒體庫",
+ "external_network": "外部網絡",
+ "f_number": "光圈",
"face_unassigned": "未指派",
"failed": "失敗",
+ "failed_count": "失敗咗 {count} 次",
"favorite": "收藏",
"favorites": "收藏夾",
"features": "功能",
+ "file_name_text": "檔案名",
+ "file_size": "檔案大細",
"filename": "檔案名",
"filetype": "檔案類型",
+ "filter": "篩選",
+ "filter_people": "篩選人物",
+ "filter_places": "篩選地點",
+ "filter_tags": "篩選標籤",
+ "filters": "篩選器",
+ "first": "第一個",
+ "focal_length": "焦距",
+ "folder": "資料夾",
+ "folders": "資料夾",
+ "forward": "由新到舊",
+ "gcast_enabled": "Google Cast",
+ "general": "一般",
+ "get_help": "搵幫手",
+ "getting_started": "開始使用",
+ "go_back": "返去",
+ "gps": "GPS",
+ "gps_missing": "冇 GPS",
+ "grant_permission": "授權",
+ "group_no": "唔分組",
+ "haptic_feedback_title": "震動回應",
+ "has_quota": "設定配額",
+ "hash_asset": "雜湊項目",
+ "hashed_assets": "雜湊咗嘅項目",
+ "hashing": "計緊雜湊值",
+ "header_settings_add_header_tip": "加標頭",
+ "header_settings_header_name_input": "標頭名",
+ "header_settings_header_value_input": "標頭值",
+ "height": "高度",
+ "hide_gallery": "隱藏相簿",
+ "hide_password": "遮住密碼",
+ "hide_person": "隱藏人物",
+ "hide_schema": "隱藏架構",
+ "host": "主機",
+ "hour": "鐘頭",
+ "hours": "鐘頭",
+ "id": "ID",
+ "idle": "閒置",
+ "image": "相",
+ "immich_logo": "Immich Logo",
+ "import_path": "導入路徑",
+ "in_archive": "封存咗",
+ "in_year": "{year}年",
+ "in_year_selector": "喺",
+ "include_archived": "包含封存咗嘅",
+ "individual_share": "單獨分享",
+ "individual_shares": "單獨分享",
+ "info": "資料",
+ "integrity_checks": "完整性檢查",
+ "invalid_date": "無效嘅日期",
+ "invite_people": "邀請人",
+ "iso": "ISO",
+ "jobs": "任務",
+ "keep": "保留",
+ "keep_albums": "保留相簿",
+ "keep_all": "留曬",
+ "keep_favorites": "保留收藏",
+ "keeping": "保留:{items}",
+ "keyboard_shortcuts": "鍵盤嘅快捷鍵",
+ "language": "語言",
+ "language_search_hint": "搵語言...",
+ "large_files": "大件檔案",
+ "last": "最後一個",
+ "last_seen": "最後在線",
+ "latest_version": "最新版本",
+ "latitude": "緯度",
+ "leave": "離開",
+ "leave_album": "離開相簿",
+ "lens_model": "鏡頭型號",
+ "less": "收埋",
+ "level": "等級",
+ "library": "媒體庫",
+ "library_add_folder": "新加個資料夾",
+ "library_edit_folder": "編輯資料夾",
+ "library_page_sort_created": "建立嘅日期",
+ "library_page_sort_last_modified": "上次修改",
+ "library_page_sort_title": "相簿標題",
+ "licenses": "授權",
+ "light": "淺色",
+ "like": "鍾意",
+ "like_deleted": "取消中意",
+ "link": "連結",
+ "list": "清單",
+ "live": "在線",
+ "load_more": "載入更多",
+ "loading": "載入緊",
+ "local": "本機",
+ "local_assets": "本機項目",
+ "local_id": "本地 ID",
+ "local_network": "本機網絡",
+ "location": "位置",
+ "location_permission": "位置權限",
+ "lock": "鎖定",
+ "locked_folder": "鎖定咗資料夾",
+ "log_detail_title": "記錄詳細資料",
+ "log_out": "登出",
+ "login": "登入",
+ "login_form_email_hint": "電郵地址",
+ "login_form_endpoint_hint": "http://你嘅伺服器地址:連接埠",
+ "login_form_err_invalid_email": "電郵無效",
+ "login_form_err_invalid_url": "無效嘅 URL",
+ "login_form_err_leading_whitespace": "開頭唔可以有空格",
+ "login_form_err_trailing_whitespace": "結尾唔可以有空格",
+ "login_form_password_hint": "密碼",
+ "logs": "紀錄",
+ "longitude": "經度",
+ "look": "樣貌",
+ "loop_videos": "循環播放條片",
"main_menu": "主選單",
"maintenance_action_restore": "還原緊數據庫",
+ "maintenance_restore_library_description": "還原緊資料庫",
+ "maintenance_restore_library_folder_read_fail": "讀取唔到",
+ "maintenance_restore_library_folder_write_fail": "寫唔到",
+ "maintenance_title": "暫時用唔到",
+ "make": "牌子",
+ "manage_geolocation": "管理位置",
+ "manage_media_access_settings": "打開設定",
+ "map": "地圖",
+ "map_settings": "地圖設定",
+ "map_settings_dark_mode": "深色模式",
+ "map_settings_date_range_option_year": "1年前",
+ "map_settings_include_show_archived": "包含封存咗嘅項目",
+ "map_settings_include_show_partners": "包含親友",
+ "map_settings_theme_settings": "地圖主題",
+ "matches": "相符",
+ "matching_assets": "符合嘅項目",
+ "media_chrome": {
+ "auto": "自動",
+ "captions": "字幕",
+ "captions_off": "閂咗",
+ "closed_captions": "隱藏字幕",
+ "disable_captions": "閂字幕",
+ "enable_captions": "開字幕",
+ "loop": "重複播放",
+ "media_loading": "媒體載入緊",
+ "mute": "靜音",
+ "network_error": "網絡錯誤",
+ "playback_rate": "播放速度",
+ "playback_time": "播放時間",
+ "quality": "畫質",
+ "second": "秒",
+ "seconds": "秒",
+ "time_value_remaining": "剩返 {time}",
+ "unmute": "開返聲",
+ "video_player": "影片播放器",
+ "volume": "音量"
+ },
+ "media_type": "媒體類型",
+ "memories": "回憶",
+ "memories_start_over": "重新開始",
+ "memory": "回憶",
+ "menu": "選單",
+ "merge": "合併",
+ "merge_people": "合併人物",
+ "minFaces": "最少人面數量",
+ "minimize": "縮細",
+ "minute": "分鐘",
+ "minutes": "分鐘",
+ "missing": "缺失",
+ "mobile_app": "手機程式",
+ "model": "型號",
+ "modify_date": "修改日期",
+ "month": "月",
+ "more": "更多",
+ "motion": "動作",
+ "move": "移動",
+ "move_to": "搬去",
+ "mute_memories": "回憶靜音",
+ "my_albums": "我嘅相簿",
+ "name": "名",
+ "navigate": "導航",
+ "network_requirements": "網絡要求",
+ "networking_settings": "網絡設定",
+ "never": "永唔失效",
+ "new_album": "新相簿",
+ "new_feature": "新功能",
+ "new_password": "新密碼",
+ "new_person": "新嘅人物",
+ "new_update": "新更新",
+ "newest_first": "由新到舊",
+ "next": "下一步",
+ "next_memory": "下個回顧",
+ "no": "否",
+ "no_name": "冇名",
+ "no_notifications": "冇通知",
+ "no_places": "冇地方",
+ "no_results": "冇結果",
+ "none": "冇",
+ "not_allowed": "唔得",
+ "not_available": "唔適用",
+ "not_selected": "未揀",
+ "notes": "提示",
+ "notification_backup_reliability": "啟動通知嚟提升後台備份嘅可靠性",
+ "notification_enabled_list_tile_open_button": "打開設定",
+ "notification_enabled_list_tile_title": "啟用咗通知",
+ "notification_permission_list_tile_enable_button": "啓用通知",
+ "notification_permission_list_tile_title": "通知權限",
+ "notifications": "通知",
+ "notifications_setting_description": "管理通知",
+ "oauth": "OAuth",
+ "obtainium_configurator": "Obtainium 設定工具",
+ "ocr": "OCR",
+ "offline": "離線",
+ "offset": "偏移",
+ "ok": "確定",
+ "oldest_first": "由舊至新",
+ "onboarding": "新手指南",
"onboarding_user_welcome_description": "我哋而家開始喇!",
"onboarding_welcome_user": "歡迎,{user}",
"online": "已上線",
"only_favorites": "淨係顯示最愛",
"open": "開",
+ "open_calendar": "打開日曆",
"open_in_map_view": "用地圖開",
"open_in_openstreetmap": "用 OpenStreetMap 開",
"open_the_search_filters": "開搜尋過濾器",
"options": "選項",
"or": "或者",
"organize_into_albums": "執成相簿",
+ "orientation": "方向",
+ "original": "原圖",
+ "other": "其他",
+ "other_devices": "其他裝置",
+ "other_variables": "其他變數",
+ "owned": "擁有",
+ "owner": "擁有者",
+ "page": "頁",
+ "partner": "親友",
+ "partner_list_user_photos": "{user} 啲相",
+ "partner_page_select_partner": "選擇親友",
+ "partner_sharing": "親友共享",
+ "partners": "親友",
+ "password": "密碼",
+ "password_required": "要密碼",
+ "path": "路徑",
+ "pattern": "模式",
+ "pause": "停咗",
+ "pause_memories": "暫停回憶",
+ "paused": "停咗",
+ "pending": "待處理",
+ "people": "人物",
+ "permanently_delete": "永久刪除",
+ "permission": "權限",
+ "person": "人物",
+ "person_recognized": "識別到人物",
+ "photos": "相",
+ "pick_custom_range": "自己揀範圍",
+ "place": "地點",
+ "places": "地點",
+ "play": "播放",
+ "play_memories": "播放回憶",
+ "plugin_method_filter_type": "篩選",
+ "port": "連接埠",
+ "preferences_settings_title": "偏好",
+ "preparing": "準備緊",
+ "preset": "預設",
+ "preview": "預覽",
+ "previous": "上一張",
+ "previous_memory": "上一張回憶",
+ "previous_or_next_day": "琴日/聽日",
+ "previous_or_next_month": "上個月/下個月",
+ "previous_or_next_photo": "上張相/下張相",
+ "previous_or_next_year": "上年/下年",
+ "primary": "首要",
+ "privacy": "私隱",
+ "profile": "用戶詳情",
+ "profile_drawer_app_logs": "紀錄",
+ "profile_drawer_github": "GitHub",
+ "public_album": "公開相簿",
+ "public_share": "公開分享",
+ "purchase_account_info": "支持者",
+ "purchase_button_activate": "啟用",
+ "purchase_button_buy": "買",
+ "purchase_button_buy_immich": "買 Immich",
+ "purchase_button_remove_key": "移除密匙",
+ "purchase_button_select": "揀",
+ "purchase_individual_description_2": "支持者狀態",
+ "purchase_individual_title": "個人",
+ "purchase_lifetime_description": "終身授權",
+ "purchase_option_title": "購買選項",
"purchase_panel_info_1": "Immich 嘅持續開發需要好多嘅時間同埋精力,背後亦都有全職工程師精益求精嘅改善同發展。我哋嘅使命喺推動開源軟件同良心企業實踐,為開發者提供可持續嘅收入,建立一個尊重私隱嘅生態環境,提供可以真正代替剝削性雲端服務嘅選擇。",
+ "purchase_per_server": "每部伺服器",
+ "purchase_per_user": "每個用戶",
+ "purchase_server_description_2": "支持者狀態",
+ "purchase_server_title": "伺服器",
+ "queue_status": "處理緊 {count}/{total}",
+ "rate_asset": "項目評分",
+ "rating": "星級",
+ "rating_clear": "清除評分",
+ "reaction_options": "反映選項",
+ "read_changelog": "睇更新紀錄",
+ "reassign": "重新編配",
+ "recent": "最近",
+ "recent_searches": "最近搵緊嘅項目",
+ "recently_added": "近期加入嘅",
+ "recently_added_page_title": "近期加入嘅",
+ "recently_added_title": "最近新加嘅",
+ "recently_taken": "近期影嘅",
+ "refresh": "重新整理",
+ "refresh_faces": "重新整理人面",
+ "refresh_metadata": "重新整理元數據",
+ "refresh_thumbnails": "重新整理縮圖",
+ "refreshed": "整理完",
+ "refreshing_faces": "整理緊人面",
+ "refreshing_metadata": "整理緊元數據",
+ "regenerating_thumbnails": "重新生成緊縮圖",
+ "remote": "遙距",
+ "remote_assets": "遠端項目",
+ "remove": "移除",
+ "remove_assets_title": "移除項目?",
+ "remove_filter": "移除篩選",
+ "remove_memory": "移除記憶",
+ "remove_tag": "移除標籤",
+ "remove_user": "移除用户",
+ "removed_memory": "移除咗記憶",
+ "rename": "重新命名",
+ "repository": "儲存庫",
+ "require_password": "要密碼",
+ "rescan": "重新掃描",
+ "reset": "重設",
+ "reset_password": "重設密碼",
+ "reset_sqlite_clear_app_data": "清除資料",
+ "resolution": "解像度",
+ "resolve_duplicates": "解決重複項",
+ "restore": "還原",
+ "restore_all": "全部復原",
+ "restore_user": "還原用戶",
+ "restored_asset": "還原咗檔案",
+ "resume": "繼續",
+ "review_duplicates": "檢查重複項目",
+ "role": "角色",
+ "role_editor": "編輯",
+ "role_viewer": "齋睇",
+ "running": "運行緊",
+ "save": "儲存",
+ "saved": "已儲存",
+ "saved_profile": "儲存咗個人資料",
+ "saved_settings": "保存曬設定",
+ "say_something": "講下嘢",
+ "scaffold_body_error_occurred": "發生錯誤",
+ "scan": "掃描",
+ "scan_library": "掃描",
+ "scanning": "掃描緊",
+ "search": "搜尋",
+ "search_albums": "搵相簿",
+ "search_by_ocr_example": "咖啡",
+ "search_city": "搵城市...",
+ "search_country": "搵國家...",
+ "search_filter_apply": "使用篩選",
+ "search_filter_date": "日期",
+ "search_filter_display_options": "顯示選項",
+ "search_filter_location": "位置",
+ "search_filter_location_title": "選擇位置",
+ "search_filter_media_type": "媒體類型",
+ "search_filter_people_title": "選擇人物",
+ "search_filter_star_rating": "評分",
+ "search_filter_tags_title": "揀標籤",
+ "search_for": "搜尋",
+ "search_no_people": "搵唔到人",
+ "search_options": "搜尋選項",
+ "search_page_view_all_button": "睇曬",
+ "search_people": "搵人物",
+ "search_places": "搵地點",
+ "search_settings": "搜尋設定",
+ "search_state": "搜尋地區...",
+ "search_tags": "搵標籤...",
+ "search_timezone": "搵時區...",
+ "search_type": "搵類型",
+ "searching_locales": "搵地區...",
+ "second": "秒",
+ "select": "選擇",
+ "select_album": "揀相簿",
+ "select_albums": "揀相簿",
+ "select_all": "揀曬",
+ "select_face": "揀人面",
+ "select_people": "揀人",
+ "select_photos": "揀相",
+ "select_quality": "揀畫質",
+ "selected": "揀咗",
+ "send_message": "傳訊息",
+ "server_endpoint": "伺服器端點",
+ "server_info_box_app_version": "App 版本",
+ "server_info_box_server_url": "伺服器網址",
+ "server_offline": "伺服器離咗線",
+ "server_online": "伺服器在線",
+ "server_privacy": "伺服器私隱",
+ "server_stats": "伺服器統計",
+ "server_version": "宜家嘅版本",
+ "set": "設定",
+ "setting_image_navigation_title": "圖片引導",
+ "setting_languages_apply": "套用",
+ "setting_notifications_notify_minutes": "{count} 分鐘",
"setting_notifications_notify_seconds": "{count} 秒",
+ "setting_video_viewer_looping_title": "重複播放",
+ "settings": "設定",
+ "settings_saved": "保存曬設定",
+ "share": "分享",
+ "share_dialog_preparing": "準備緊...",
+ "share_link": "分享連結",
+ "shared": "共享",
+ "shared_album_activity_remove_title": "刪除活動",
+ "shared_album_section_people_title": "人物",
+ "shared_by": "共享自",
+ "shared_link_app_bar_title": "分享連結",
+ "shared_link_custom_url_title": "自定 URL",
+ "shared_link_edit_expire_after_option_day": "1日",
+ "shared_link_edit_expire_after_option_days": "{count}日",
+ "shared_link_edit_expire_after_option_hour": "1 個鐘",
+ "shared_link_edit_expire_after_option_hours": "{count} 粒鐘",
+ "shared_link_edit_expire_after_option_minute": "1 分鐘",
+ "shared_link_edit_expire_after_option_minutes": "{count} 分鐘",
+ "shared_link_edit_expire_after_option_months": "{count} 個月",
+ "shared_link_edit_expire_after_option_year": "{count} 年",
+ "shared_link_edit_submit_button": "更新連結",
+ "shared_link_expires_never": "永不過期",
+ "shared_link_individual_shared": "個人共享",
+ "shared_link_info_chip_metadata": "Exif",
+ "shared_links": "分享連結",
+ "sharing": "共享",
+ "show_albums": "顯示相簿",
+ "show_gallery": "顯示媒體庫",
+ "show_metadata": "顯示元數據",
+ "show_password": "顯示密碼",
+ "show_schema": "顯示架構",
+ "show_supporter_badge": "支持者徽章",
+ "show_supporter_badge_description": "展示支持者徽章",
+ "shuffle": "隨機排列",
+ "sidebar": "側欄",
+ "sign_out": "登出",
+ "sign_up": "註冊",
+ "size": "大細",
+ "skip": "跳過",
+ "slideshow": "幻燈片",
+ "slideshow_metadata_overlay_mode": "覆蓋內容",
+ "slideshow_metadata_overlay_mode_description_only": "淨係描述",
+ "slideshow_metadata_overlay_mode_full": "完整",
+ "slideshow_repeat": "重複投影片",
+ "slideshow_settings": "幻燈片設定",
+ "slideshow_title": "幻燈片",
+ "smart_album": "智能相簿",
+ "sort_created": "建立日期",
+ "sort_modified": "修改嘅日期",
+ "sort_oldest": "最舊嘅相片",
+ "sort_title": "標題",
+ "source": "來源",
+ "stack": "堆疊",
+ "stack_action_prompt": "堆疊咗 {count} 個項目",
+ "stack_duplicates": "堆疊重複項目",
+ "stacktrace": "堆疊追蹤",
+ "start": "開始",
+ "start_date": "開始日期",
+ "state": "地區",
+ "status": "狀態",
+ "step_delete": "刪除步驟",
+ "step_details": "步驟詳情",
+ "steps": "步驟",
+ "stop_casting": "停止投放",
+ "storage": "儲存空間",
+ "storage_label": "儲存標籤",
+ "storage_quota": "儲存空間配額",
+ "submit": "提交",
+ "success": "成功",
+ "suggestions": "建議",
+ "support": "支持",
+ "supporter": "支持者",
+ "sync": "同步",
+ "sync_albums": "同步相簿",
+ "sync_local": "同步本機",
+ "sync_remote": "同步遠端",
+ "sync_status": "同步狀態",
+ "tag": "標籤",
+ "tag_assets": "標記項目",
+ "tag_face": "標記臉孔",
+ "tag_people": "標籤人物",
+ "tags": "標籤",
+ "template": "模板",
+ "text_recognition": "文字識別",
+ "theme": "主題",
+ "theme_selection": "主題選項",
+ "theme_setting_colorful_interface_title": "彩色界面",
+ "theme_setting_primary_color_title": "主色調",
+ "then": "之後",
+ "third_party_resources": "第三方資源",
+ "time": "時間",
+ "time_based_memories": "依時間回憶",
+ "timeline": "時間線",
+ "timezone": "時區",
+ "to_archive": "封存",
+ "to_change_password": "改密碼",
+ "to_favorite": "最愛",
+ "to_login": "登入",
+ "to_multi_select": "多選",
+ "to_select": "揀",
+ "to_trash": "垃圾桶",
+ "toggle_settings": "切換設定",
+ "toggle_theme_description": "切換主題",
+ "total": "總共",
+ "total_usage": "總用量",
+ "trash": "垃圾桶",
+ "trash_all": "掉曬",
+ "trash_delete_asset": "揼個項目落垃圾桶/刪除咗佢",
+ "trash_page_delete_all": "刪除曬",
+ "trigger": "觸發條件",
+ "trigger_person_recognized": "辨識到人物",
+ "troubleshoot": "疑難排解",
+ "type": "類型",
+ "unarchive": "取消封存",
+ "undo": "還原",
+ "unfavorite": "取消收藏",
+ "unhide_person": "取消隱藏人物",
+ "unknown": "唔知",
+ "unknown_country": "未知國家",
+ "unknown_date": "未知嘅日期",
+ "unknown_schema": "未知嘅架構",
+ "unknown_year": "未知嘅年份",
+ "unlimited": "無限制",
+ "unlink_oauth": "解除同 OAuth 嘅連結",
+ "unmute_memories": "取消靜音回憶",
+ "unnamed_album": "未命名相簿",
+ "unnamed_share": "未命名分享",
+ "unsaved_change": "變更未儲存",
+ "unselect_all": "取消全選",
+ "unstack": "取消堆疊",
+ "unstack_action_prompt": "{count} 個取消堆疊",
+ "untagged": "未標籤",
+ "up_next": "下個",
+ "updated_at": "最後更新嘅時間",
+ "updated_password": "更新咗密碼",
+ "upload": "上傳",
+ "upload_concurrency": "同時間嘅上傳數",
+ "upload_details": "上傳詳細資訊",
+ "upload_finished": "上傳咗",
"upload_status_duplicates": "重複項目",
+ "upload_status_errors": "錯誤",
+ "upload_status_uploaded": "上傳咗",
+ "uploading": "上傳緊",
+ "uploading_media": "項目上傳緊",
+ "uploads": "上傳",
+ "url": "網址",
+ "usage": "用量",
+ "use_biometric": "使用生物識別",
+ "use_template": "使用模板",
+ "user": "用戶",
+ "user_id": "用戶 ID",
+ "user_pin_code_settings": "PIN",
+ "user_privacy": "用戶私隱",
+ "user_purchase_settings": "買",
+ "username": "用戶名稱",
+ "users": "用戶",
+ "utilities": "工具",
+ "validate": "驗證",
+ "variables": "變數",
+ "version": "版本",
"version_announcement_message": "早晨!Immich 有新版本喇。唔該讀一讀 發表說明 並確保你嘅設定喺更新好嘅,以避免任何嘅設定錯誤,尤其喺你用緊 WatchTower 或者任何其他自動更新 Immich 嘅軟件。",
+ "version_history": "版本紀錄",
+ "video": "影片",
+ "video_quality": "影片畫質",
+ "videos": "影片",
+ "view": "檢視",
+ "view_album": "睇相簿",
+ "view_all": "睇曬",
+ "view_details": "檢視詳細資訊",
+ "view_link": "檢視連結",
+ "view_name": "睇",
+ "view_stack": "睇下堆疊",
+ "visibility": "能見度",
+ "visual": "視覺化",
+ "waiting": "等緊處理",
+ "waiting_count": "等緊 {count}",
"warning": "警告",
"week": "星期",
"welcome": "歡迎",
"welcome_to_immich": "歡迎使用 Immich",
+ "whats_new": "有咩新野",
+ "whats_new_version": "{version} 版",
+ "when": "喺",
"width": "寬",
"wifi_name": "Wi-Fi 名",
+ "workflow": "工作流程",
+ "workflow_info": "工作流程詳細資訊",
+ "workflow_json": "工作流程 JSON",
+ "workflow_name": "工作流程名",
+ "workflow_summary": "工作流程簡要",
+ "workflow_templates": "工作流程範本",
+ "workflows": "工作流程",
"wrong_pin_code": "PIN 碼唔啱",
+ "x_of_total": "{x} / {total}",
"year": "年",
"years_ago": "{years, plural, one {#年} other {#年}}前",
"yes": "係",
diff --git a/i18n/zh_Hans.json b/i18n/zh_Hans.json
index ce04377a96..fbbbc497f9 100644
--- a/i18n/zh_Hans.json
+++ b/i18n/zh_Hans.json
@@ -1,14 +1,14 @@
{
"about": "关于",
- "account": "账号",
- "account_settings": "账号设置",
- "acknowledge": "已知悉",
+ "account": "账户",
+ "account_settings": "账户设置",
+ "acknowledge": "好",
"action": "操作",
"action_common_update": "更新",
- "action_description": "对筛选出的照片/视频执行的一组操作",
+ "action_description": "对筛选出的项目执行的一组操作",
"actions": "操作",
"active": "进行中",
- "active_count": "活动: {count}",
+ "active_count": "进行中:{count}",
"activity": "活动",
"add": "添加",
"add_a_description": "添加描述",
@@ -43,97 +43,112 @@
"admin_user": "管理员用户",
"asset_offline_description": "未找到该外部资源库文件,已将其移至回收站。如果文件是在资源库内被移动,请在时间线中查找对应的新文件。如需恢复此文件,请确保 Immich 可访问下方的文件路径,并重新扫描该资源库。",
"authentication_settings": "认证设置",
- "authentication_settings_description": "管理密码、OAuth 和其他认证设置",
- "authentication_settings_disable_all": "您确定要禁用所有登录方式吗?登录功能将完全失效。",
- "authentication_settings_reenable": "如需重新启用,请使用 服务器命令。",
+ "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_onboarding_1_description": "异地备份,例如存储在云端或另一个物理位置。",
- "backup_onboarding_2_description": "本地多设备副本。即在不同设备上保存主文件及其本地备份。",
- "backup_onboarding_3_description": "数据的总副本数,包含原始文件。例如:1 份异地备份和 2 份本地副本。",
- "backup_onboarding_description": "建议采用 3-2-1 备份策略 来保护你的数据。为了实现全面的备份方案,你应该同时保存已上传的照片/视频副本以及 Immich 的数据库。",
- "backup_onboarding_footer": "有关备份 Immich 的更多信息,请参阅 文档。",
- "backup_onboarding_parts_title": "3-2-1备份原则包括:",
+ "backup_keep_last_amount": "保留备份数量",
+ "backup_onboarding_1_description": "备份到云端或其他物理位置。",
+ "backup_onboarding_2_description": "不同设备上的本地备份。包含主文件与本地文件的备份。",
+ "backup_onboarding_3_description": "所有数据(包含1份异地备份和2份本地备份)的备份。",
+ "backup_onboarding_description": "建议遵循 3-2-1备份原则 来保护你的数据。通过备份照片/视频与Immich数据库使你的数据更加安全。",
+ "backup_onboarding_footer": "有关备份Immich的更多信息,请参阅 文档。",
+ "backup_onboarding_parts_title": "3-2-1备份原则:",
"backup_onboarding_title": "备份",
"backup_settings": "数据库备份设置",
"backup_settings_description": "管理数据库备份设置。",
- "cleared_jobs": "已清除 {job} 的任务",
+ "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_reprocess_all_faces": "确定要重新处理所有人脸吗?此操作将清除已命名的人物。",
- "confirm_user_password_reset": "确定要重置 {user} 的密码吗?",
- "confirm_user_pin_code_reset": "确定要重置 {user} 的 PIN 码吗?",
- "copy_config_to_clipboard_description": "将当前系统配置作为 JSON 对象复制到剪贴板",
+ "confirm_delete_library": "确定要删除资源库“{library}”吗?",
+ "confirm_delete_library_assets": "确定要删除此资源库吗?此操作将从Immich中删除{count, plural, one {# 个关联项目} other {# 个关联项目}},且无法撤销。文件仍将保留在磁盘上。",
+ "confirm_email_below": "请输入“{email}”来确认操作",
+ "confirm_reprocess_all_faces": "确定要重新识别所有人脸吗?此操作将清除已命名的人物。",
+ "confirm_user_password_reset": "确定要重置{user}的密码吗?",
+ "confirm_user_pin_code_reset": "确定要重置{user}的PIN码吗?",
+ "copy_config_to_clipboard_description": "将当前系统配置拷贝为JSON对象到剪贴板",
"create_job": "创建任务",
"cron_expression": "Cron表达式",
- "cron_expression_description": "使用Cron格式设置扫描间隔。更多信息请参考 Crontab Guru 等网站",
+ "cron_expression_description": "使用Cron格式设置扫描间隔。更多信息请参考Crontab Guru等网站",
"cron_expression_presets": "Cron表达式预设",
"disable_login": "禁用登录",
"download_csv": "下载CSV文件",
- "duplicate_detection_job_description": "运行机器学习来检测相似图像,此功能依赖于智能搜索",
- "exclusion_pattern_description": "排除规则允许您在扫描资源库时忽略特定的文件和文件夹。如果您有某些包含不希望导入的文件(例如 RAW 格式文件)的文件夹,此功能将非常有用。",
- "export_config_as_json_description": "将当前系统配置下载为 JSON 文件",
+ "duplicate_detection_job_description": "通过机器学习来检测相似照片/视频。(功能依赖于智能搜索)",
+ "exclusion_pattern_description": "排除规则可以在扫描资源库时忽略指定的文件与文件夹。如果你有一些不希望导入的文件(如RAW格式文件)或文件夹,此功能将非常有用。",
+ "export_config_as_json_description": "将当前系统配置下载为JSON文件",
"external_libraries_page_description": "管理外部资源库",
"face_detection": "人脸检测",
- "face_detection_description": "使用机器学习检测影像中的人脸,对于视频仅处理其缩略图。“刷新”会重新处理所有影像;“重置”会清除当前所有人脸数据;“缺失”则仅将未曾处理过的影像加入队列。当“人脸检测”完成后,系统会将新检测到的人脸放入“人脸识别”队列,以将其归类到现有或新建的人物分组中。",
- "facial_recognition_job_description": "将检测到的人脸归类为不同的人物,此步骤需在“人脸检测”完成后运行。“重置”会(重新)聚类所有人脸。“缺失”则将尚未确定是谁的人脸加入归类队列。",
- "failed_job_command": "命令 {command} 在执行任务 {job} 时失败",
- "force_delete_user_warning": "警告:此操作将立即删除该用户及其所有文件。此操作不可撤销,且文件无法恢复。",
+ "face_detection_description": "通过机器学习识别照片/视频中的人脸,对于视频仅处理其缩略图。“刷新”会重新识别所有照片/视频;“重置”会清除当前所有人脸数据;“缺失”会将未曾处理过的照片/视频加入队列。当“人脸检测”完成后,系统会将新识别到的人脸放入“人脸识别”队列,以将其归类到现有或新建的人物分组中。",
+ "facial_recognition_job_description": "将检测到的人脸归类为不同的人物,此步骤在“人脸检测”完成后进行。“重置”会(重新)聚类所有人脸;“缺失”会将尚未归类的人脸加入队列。",
+ "failed_job_command": "执行命令{command}失败,任务:{job}",
+ "force_delete_user_warning": "警告:此操作将立即删除此用户与其所有项目。此操作不可撤销,且文件无法恢复。",
"image_format": "格式",
"image_format_description": "WebP格式的文件体积比JPEG更小,但编码速度较慢。",
"image_fullsize_description": "已剥离元数据的全尺寸图像,放大查看时使用",
"image_fullsize_enabled": "启用全尺寸图像生成",
- "image_fullsize_enabled_description": "为非网页友好格式生成全尺寸图像。启用“优先使用嵌入式预览”后,将直接使用嵌入式预览而无需转换。此设置不影响JPEG等网页友好格式。",
- "image_fullsize_quality_description": "全尺寸图像质量(1-100)。数值越高画质越好,但生成的文件也越大。",
+ "image_fullsize_enabled_description": "为非网页友好格式生成全尺寸图像。启用“优先使用嵌入式预览”则不进行转换。此设置不影响JPEG等网页友好格式。",
+ "image_fullsize_quality_description": "全尺寸图像质量(1-100)。数值越高质量越好,但文件体积也越大。",
"image_fullsize_title": "全尺寸图像设置",
"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_preview_quality_description": "预览图质量(1-100)。数值越高画质越好,但生成的文件越大,且可能降低应用响应速度。设置过低的数值可能影响机器学习(识别)的准确度。",
+ "image_prefer_wide_gamut_setting_description": "缩略图使用Display P3色彩空间。这能更好地保留广色域图像的色彩鲜艳度,但在使用旧版浏览器的老旧设备上可能产生色差。sRGB图像将保持sRGB色彩空间以避免色彩偏移。",
+ "image_preview_description": "已剥离元数据的中等尺寸图像,用于单幅影像展示与机器学习",
+ "image_preview_quality_description": "预览图质量(1-100)。数值越高质量越好,但文件体积也越大,且可能降低App响应速度。过低的数值可能影响机器学习的准确度。",
"image_preview_title": "预览图设置",
"image_progressive": "渐进式编码",
- "image_progressive_description": "对 JPEG 图像进行渐进式编码,以提升图片加载体验。此开关对 WebP 无效。",
+ "image_progressive_description": "对JPEG图像进行渐进式编码以提升图片加载体验。此设置不影响WebP图像。",
"image_quality": "质量",
"image_resolution": "分辨率",
- "image_resolution_description": "较高的分辨率能保留更多图像细节,但编码时间更长、生成的文件更大,且可能导致应用响应变慢。",
+ "image_resolution_description": "较高的分辨率能保留更多细节,但编码时间更长、文件体积更大,且可能降低App响应速度。",
"image_settings": "图像设置",
"image_settings_description": "管理生成图像的质量和分辨率",
- "image_thumbnail_description": "已剥离元数据的小型缩略图,用于列表展示多张照片,例如主时间线",
- "image_thumbnail_quality_description": "缩略图质量(1-100)。数值越高画质越好,但生成的文件越大,且可能降低应用响应速度。",
+ "image_thumbnail_description": "已剥离元数据的小型缩略图,用于列表展示多张照片,如主时间线",
+ "image_thumbnail_quality_description": "缩略图质量(1-100)。数值越高画质越好,但文件体积也越大,且可能降低App响应速度。",
"image_thumbnail_title": "缩略图设置",
- "import_config_from_json_description": "通过上传 JSON 配置文件导入系统配置",
+ "import_config_from_json_description": "通过上传JSON配置文件导入系统配置",
+ "integrity_checks_checksum_files": "文件校验和",
+ "integrity_checks_checksum_files_description": "配置校验与检查",
+ "integrity_checks_checksum_files_enable_description": "启用校验与检查",
+ "integrity_checks_checksum_files_percentage_limit": "百分比限制",
+ "integrity_checks_checksum_files_percentage_limit_description": "设置每个检查周期执行校验和检查的最大比例(0.01–1)。",
+ "integrity_checks_checksum_files_time_limit": "时间限制",
+ "integrity_checks_checksum_files_time_limit_description": "设置每个检查周期内,校验和(Checksum)检查允许运行的最长时间(毫秒)。",
+ "integrity_checks_missing_files": "缺失文件",
+ "integrity_checks_missing_files_description": "设置执行频率并启用或禁用缺失文件检查",
+ "integrity_checks_missing_files_enable_description": "启用缺失文件检查",
+ "integrity_checks_settings": "完整性检查",
+ "integrity_checks_settings_description": "管理完整性检查频率",
+ "integrity_checks_untracked_files": "未追踪的文件",
+ "integrity_checks_untracked_files_description": "设置执行频率并启用或禁用未追踪文件检查。",
+ "integrity_checks_untracked_files_enable_description": "启用未追踪文件检查",
"job_concurrency": "{job}并发数",
"job_created": "任务已创建",
- "job_not_concurrency_safe": "该任务不支持并发操作。",
+ "job_not_concurrency_safe": "此任务不支持并发操作。",
"job_settings": "任务设置",
"job_settings_description": "管理任务并发数",
"jobs_delayed": "{jobCount, plural, other {#个延迟}}",
- "jobs_failed": "{jobCount, plural, other {# 个失败}}",
+ "jobs_failed": "{jobCount, plural, other {#个失败}}",
"jobs_over_time": "任务动态",
"library_created": "已创建资源库:{library}",
"library_deleted": "资源库已删除",
"library_details": "资源库详情",
- "library_folder_description": "指定一个导入文件夹。系统将扫描该文件夹及其所有子文件夹中的图片和视频。",
+ "library_folder_description": "指定要导入的文件夹。系统将扫描此文件夹(包括子文件夹)中的照片与视频。",
"library_remove_exclusion_pattern_prompt": "确定要移除此排除规则吗?",
"library_remove_folder_prompt": "确定要移除此导入文件夹吗?",
"library_scanning": "定期扫描",
- "library_scanning_description": "配置定期扫描",
- "library_scanning_enable_description": "开启定期扫描",
+ "library_scanning_description": "设置定期扫描",
+ "library_scanning_enable_description": "启用定期扫描",
"library_settings": "外部资源库",
"library_settings_description": "管理外部资源库设置",
- "library_tasks_description": "扫描外部资源库以查找新增和变更的文件",
+ "library_tasks_description": "扫描并查找外部资源库中新增或变更的项目",
"library_updated": "资源库已更新",
"library_watching_enable_description": "监控外部资源库的文件变更",
"library_watching_settings": "资源库监控 [实验性功能]",
"library_watching_settings_description": "自动监控文件变更",
- "logging_enable_description": "启用日志记录",
- "logging_level_description": "启用后,所采用的日志级别。",
+ "logging_enable_description": "启用日志",
+ "logging_level_description": "启用时使用的日志级别。",
"logging_settings": "日志",
"machine_learning_availability_checks": "可用性检查",
"machine_learning_availability_checks_description": "自动检测并优先选择可用的机器学习服务器",
@@ -143,45 +158,45 @@
"machine_learning_availability_checks_timeout": "请求超时时间",
"machine_learning_availability_checks_timeout_description": "可用性检查的请求超时时间(毫秒)",
"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_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_enabled": "启用机器学习",
- "machine_learning_enabled_description": "若关闭此处总开关,所有机器学习相关特性将全部停用,下方具体设置无效。",
+ "machine_learning_enabled_description": "禁用后与机器学习的相关设置将失效。",
"machine_learning_facial_recognition": "人脸识别",
"machine_learning_facial_recognition_description": "检测、识别并自动归类图片中的人脸",
"machine_learning_facial_recognition_model": "人脸识别模型",
- "machine_learning_facial_recognition_model_description": "模型按尺寸降序排列。较大的模型运行速度较慢且占用更多内存,但效果更好。请注意,更换模型后,必须重新运行所有图片的“人脸检测”任务。",
+ "machine_learning_facial_recognition_model_description": "模型按文件体积降序排列。更大的模型运行速度更慢且占用更多内存,但效果更好。注意:更换模型后,必须对所有照片重新执行“人脸检测”任务。",
"machine_learning_facial_recognition_setting": "启用人脸识别",
- "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": "两张人脸被视为同一个人的最大距离,取值范围为 0 - 2。调低该值可避免将两个人误标为同一人,调高则可避免将同一个人误标为两个人。请注意,事后合并两个人物比拆分一个人物更容易,因此在可能的情况下,建议优先设置较低的阈值。",
- "machine_learning_min_detection_score": "最低检测阈值",
- "machine_learning_min_detection_score_description": "人脸检测的最低置信度分数,取值范围为 0-1。数值越低,检测到的人脸越多,但可能出现误判(例如将非人脸区域识别为人脸)。",
+ "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": "两张人脸被视为同一个人的阈值,范围为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_min_recognized_faces_description": "创建人物所需的最小人脸数量。更高的数值能提升人脸识别的精确度,但会增加人脸无法归类为任何人物的风险。",
"machine_learning_ocr": "文字识别(OCR)",
- "machine_learning_ocr_description": "利用机器学习技术识别图片中的文本内容",
+ "machine_learning_ocr_description": "通过机器学习识别照片中的文本内容",
"machine_learning_ocr_enabled": "启用文字识别(OCR)",
- "machine_learning_ocr_enabled_description": "若禁用,将不会尝试识别图片中的文字。",
+ "machine_learning_ocr_enabled_description": "禁用后将不会执行文字识别。",
"machine_learning_ocr_max_resolution": "最大分辨率",
- "machine_learning_ocr_max_resolution_description": "超过此分辨率的预览图将按比例调整大小。数值越高,效果越精准,但处理时间更长且更占用内存。",
- "machine_learning_ocr_min_detection_score": "最低检测阈值",
- "machine_learning_ocr_min_detection_score_description": "文本检测的最低置信度分数(0-1)。数值越低,检测到的文本越多,但可能出现误判。",
- "machine_learning_ocr_min_recognition_score": "最低识别阈值",
- "machine_learning_ocr_min_score_recognition_description": "已检测文本的最低置信度分数(0-1)。数值越低,识别出的文本越多,但可能出现误判。",
- "machine_learning_ocr_model": "OCR模型",
+ "machine_learning_ocr_max_resolution_description": "超过此分辨率的预览图将按比例调整大小。更高的数值能使效果更精确,但处理时间更长且需要占用更多内存。",
+ "machine_learning_ocr_min_detection_score": "最小检测阈值",
+ "machine_learning_ocr_min_detection_score_description": "文本检测的最小置信度分数,范围为0~1。更低的数值能检测出更多文本内容,但误判的可能性也更高。",
+ "machine_learning_ocr_min_recognition_score": "最小识别阈值",
+ "machine_learning_ocr_min_score_recognition_description": "文字识别的最小置信度分数,范围为0~1。更低的数值能识别出更多文本内容,但错误识别的可能性也更高。",
+ "machine_learning_ocr_model": "文字识别(OCR)模型",
"machine_learning_ocr_model_description": "服务器端模型比移动端模型更精准,但处理耗时更长且更占用内存。",
"machine_learning_settings": "机器学习设置",
"machine_learning_settings_description": "管理机器学习功能及相关设置",
"machine_learning_smart_search": "智能搜索",
"machine_learning_smart_search_description": "使用CLIP嵌入向量进行语义化图片搜索",
"machine_learning_smart_search_enabled": "启用智能搜索",
- "machine_learning_smart_search_enabled_description": "若禁用,图片将不会被编码以用于智能搜索。",
+ "machine_learning_smart_search_enabled_description": "禁用后照片将不会执行智能搜索编码。",
"machine_learning_url_description": "机器学习服务器的 URL。若提供多个 URL,系统将按从前往后的顺序逐个尝试连接,直至有服务器成功响应为止。未能响应的服务器将被暂时忽略,直至其恢复在线。",
"maintenance_backup_management": "备份管理",
"maintenance_delete_backup": "删除备份",
@@ -328,7 +343,7 @@
"server_external_domain_settings": "外部域名",
"server_external_domain_settings_description": "公开分享链接的域名,需包含 http(s)://",
"server_public_users": "用户公开",
- "server_public_users_description": "在将用户添加至共享相册时,会列出所有用户(包括姓名和邮箱)。若禁用此选项,则仅管理员可见用户列表。",
+ "server_public_users_description": "在将用户添加至共享相册时,会列出所有用户(包括姓名和邮箱)。禁用后仅管理员可见用户列表。",
"server_settings": "服务器设置",
"server_settings_description": "管理服务器设置",
"server_stats_page_description": "管理服务器统计页面",
@@ -416,6 +431,10 @@
"transcoding_realtime_description": "允许在视频流式传输(播放)的同时实时进行转码。该功能支持动态切换画质,但根据服务器性能的不同,可能会导致较高的播放延迟或画面卡顿。",
"transcoding_realtime_enabled": "启用实时转码",
"transcoding_realtime_enabled_description": "如果禁用,服务器将拒绝启动新的实时转码会话。",
+ "transcoding_realtime_resolutions": "分辨率",
+ "transcoding_realtime_resolutions_description": "这是实时转码所提供的分辨率选项。如果服务器无法以足够快的速度进行转码,使用更高分辨率可能会导致播放问题。",
+ "transcoding_realtime_video_codecs": "视频编解码器",
+ "transcoding_realtime_video_codecs_description": "这是用于实时转码的视频编解码器选项。客户端会在播放时选择其支持的最佳方案。AV1 的效率高于 HEVC,而 HEVC 的效率又高于 H.264。使用硬件加速时,请仅选择加速器支持编码的编解码器。使用软件转码时,请注意 H.264 的速度快于 AV1,而 AV1 的速度快于 HEVC。",
"transcoding_reference_frames": "参考帧",
"transcoding_reference_frames_description": "在压缩指定帧时,所参考的帧数量。数值越高,压缩效率越高,但会降低编码速度。0 表示由系统自动设置。",
"transcoding_required_description": "仅非标准格式的视频",
@@ -578,7 +597,8 @@
"asset_viewer_settings_title": "文件查看器",
"assets": "资源",
"assets_added_to_album_count": "已向相册添加{count, plural, one {#个资源} other {#个资源}}",
- "assets_added_to_albums_count": "已向 {albumTotal, plural, one {# 个相册} other {# 个相册}}添加 {assetTotal, plural, one {# 个资源} other {# 个医院}}",
+ "assets_added_to_album_partial_count": "已成功将 {totalCount}{totalCount, plural, one {asset} other {assets}}个项目中的 {successCount} 个添加到相册",
+ "assets_added_to_albums_count": "已向 {albumTotal, plural, one {# 个相册} other {# 个相册}}添加 {assetTotal, plural, one {# 个资源} other {# 个资源}}",
"assets_cannot_be_added_to_album_count": "无法向相册添加{count, plural, one {个资源} other {个资源}}",
"assets_cannot_be_added_to_albums": "无法向任何一个相册添加 {count, plural, one {个资源} other {个资源}}",
"assets_count": "{count, plural, one {#个项目} other {#个项目}}",
@@ -589,8 +609,8 @@
"assets_restored_count": "已恢复{count, plural, one {#个文件} other {#个文件}}",
"assets_trashed": "{count}个文件移至回收站",
"assets_trashed_count": "已将{count, plural, one {#个文件} other {#个文件}}移至回收站",
- "assets_were_part_of_album_count": "{count, plural, one {个医院} other {个资源}}已在该相册中",
- "assets_were_part_of_albums_count": "{count, plural, one {个项目} other {个项目}}已存在于这些相簿中",
+ "assets_were_part_of_album_count": "{count, plural, one {个资源} other {个资源}}已在该相册中",
+ "assets_were_part_of_albums_count": "{count, plural, one {个资源} other {个资源}} 已存在于这些相册中",
"authorized_devices": "已授权设备",
"automatic_endpoint_switching_subtitle": "在可用时通过指定的 Wi-Fi 进行本地连接,其他位置则使用替代网络连接",
"automatic_endpoint_switching_title": "自动切换 URL",
@@ -603,13 +623,13 @@
"backup": "备份",
"backup_album_selection_page_albums_tap": "单击包含,双击排除",
"backup_album_selection_page_assets_scatter": "资源可以分散在多个相册中。因此,在备份过程中,可以包含或排除某些相册。",
- "backup_album_selection_page_select_albums": "选择相簿",
+ "backup_album_selection_page_select_albums": "选择相册",
"backup_album_selection_page_selection_info": "选择信息",
- "backup_albums_sync": "备份相簿同步",
+ "backup_albums_sync": "备份相册同步",
"backup_background_service_complete_notification": "文件备份完成",
"backup_background_service_default_notification": "正在检查新文件…",
"backup_background_service_in_progress_notification": "正在备份您的文件…",
- "backup_controller_page_albums": "备份相簿",
+ "backup_controller_page_albums": "备份相册",
"backup_controller_page_background_battery_info_link": "展示操作步骤",
"backup_controller_page_background_battery_info_message": "为获得最佳的后台备份体验,请在系统设置中禁用针对Immich的任何电池优化限制。\n\n由于该设置因设备而异,请查询您设备制造商的具体要求。",
"backup_controller_page_background_battery_info_ok": "我知道了",
@@ -624,8 +644,8 @@
"backup_controller_page_remainder_sub": "已选项中尚未备份的照片和视频",
"backup_controller_page_server_storage": "服务器存储",
"backup_controller_page_storage_format": "已用 {used}(共 {total})",
- "backup_controller_page_to_backup": "待备份的相簿",
- "backup_controller_page_total_sub": "包含所选相簿内全部唯一的照片和视频",
+ "backup_controller_page_to_backup": "待备份的相册",
+ "backup_controller_page_total_sub": "包含所选相册内全部唯一的照片和视频",
"backup_error_sync_failed": "同步失败。无法处理备份。",
"backup_info_card_assets": "照片和视频",
"backup_options": "备份选项",
@@ -690,7 +710,7 @@
"cleanup_deleting": "正在移至回收站...",
"cleanup_found_assets": "已找到{count}个已备份的文件",
"cleanup_found_assets_with_size": "已找到{count}个已备份的文件({size})",
- "cleanup_icloud_shared_albums_excluded": "iCloud共享相簿已排除在扫描范围之外",
+ "cleanup_icloud_shared_albums_excluded": "iCloud 共享相册已排除在扫描范围之外",
"cleanup_no_assets_found": "未找到符合上述条件的文件。“释放空间”仅能移除已备份至服务器的文件",
"cleanup_preview_title": "待移除的照片/视频({count})",
"cleanup_step3_description": "扫描符合日期及保留设置的已备份照片/视频。",
@@ -725,7 +745,7 @@
"comment_options": "更多",
"comments_and_likes": "评论 & 点赞",
"comments_are_disabled": "评论已关闭",
- "common_create_new_album": "创建新相簿",
+ "common_create_new_album": "创建新相册",
"completed": "已完成",
"configuration": "配置",
"confirm": "确认",
@@ -760,7 +780,7 @@
"cover": "填充",
"covers": "封面",
"create": "创建",
- "create_album": "创建相簿",
+ "create_album": "创建相册",
"create_album_page_untitled": "未命名",
"create_api_key": "创建 API 密钥",
"create_first_workflow": "创建首个工作流",
@@ -783,7 +803,7 @@
"create_workflow": "新建工作流",
"created": "已创建",
"created_at": "创建时间",
- "creating_linked_albums": "正在创建相簿链接…",
+ "creating_linked_albums": "正在创建相册链接…",
"crop": "裁剪",
"crop_aspect_ratio_free": "自由比例",
"crop_aspect_ratio_original": "原始比例",
@@ -794,7 +814,6 @@
"custom_date": "自定义日期",
"custom_locale": "自定义区域",
"custom_locale_description": "根据所选的语言和地区来格式化日期、时间和数字",
- "custom_url": "自定义 URL",
"cutoff_date_description": "保留最近的照片…",
"cutoff_day": "{count, plural, one {天} other {天}}",
"cutoff_year": "{count, plural, one {年} other {年}}",
@@ -816,7 +835,7 @@
"delete": "删除",
"delete_action_confirmation_message": "您确定要删除此素材吗?此操作会将该素材移至服务器的回收站,并提示您是否将其在本地设备上删除",
"delete_action_prompt": "已删除 {count} 项",
- "delete_album": "删除相簿",
+ "delete_album": "删除相册",
"delete_api_key_prompt": "您确定要删除此 API 密钥吗?",
"delete_dialog_alert": "这些项目将从 Immich 服务器以及你的设备上被永久删除",
"delete_dialog_alert_local": "这些项目将从你的设备上被永久移除,但依然会保留在 Immich 服务器上",
@@ -882,7 +901,7 @@
"duplicates_description": "请逐一标记每组中的重复文件。",
"duration": "时长",
"edit": "编辑",
- "edit_album": "编辑相簿",
+ "edit_album": "编辑相册",
"edit_avatar": "编辑头像",
"edit_birthday": "编辑生日",
"edit_date": "编辑日期",
@@ -933,7 +952,7 @@
"enter_your_pin_code_subtitle": "输入你的 PIN 码以访问锁定的文件夹",
"error": "错误",
"error_delete_face": "删除该照片/视频中的人脸时出错",
- "error_loading_albums": "加载相簿时出错",
+ "error_loading_albums": "加载相册时出错",
"error_loading_image": "加载图片时出错",
"error_loading_partners": "加载协作者时出错:{error}",
"error_retrieving_asset_information": "获取项目信息时出错",
@@ -952,15 +971,15 @@
"cant_get_number_of_comments": "无法获取评论数量",
"cant_search_people": "无法搜索人物",
"cant_search_places": "无法搜索地点",
- "error_adding_assets_to_album": "添加照片/视频到相簿时出错",
- "error_adding_users_to_album": "添加用户到相簿时出错",
+ "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_removing_assets_from_album": "移除相册资源时出错,请检查控制台以获取更多详情",
"error_selecting_all_assets": "全选照片/视频时出错",
"exclusion_pattern_already_exists": "此排除模式已存在。",
- "failed_to_create_album": "创建相簿失败",
+ "failed_to_create_album": "创建相册失败",
"failed_to_create_shared_link": "创建共享链接失败",
"failed_to_edit_shared_link": "编辑共享链接失败",
"failed_to_get_people": "获取人物列表失败",
@@ -982,7 +1001,7 @@
"profile_picture_transparent_pixels": "头像不支持透明背景,请放大或移动图片。",
"quota_higher_than_disk_size": "你设置的配额超过了磁盘总大小",
"something_went_wrong": "出错了",
- "unable_to_add_album_users": "无法向相簿添加用户",
+ "unable_to_add_album_users": "无法向相册添加用户",
"unable_to_add_assets_to_shared_link": "无法向分享链接添加照片/视频",
"unable_to_add_comment": "无法添加评论",
"unable_to_add_exclusion_pattern": "无法添加排除规则",
@@ -990,7 +1009,7 @@
"unable_to_add_remove_archive": "无法{archived, select, true {从归档中移除} other {添加照片/视频到归档}}",
"unable_to_add_remove_favorites": "无法{favorite, select, true {添加照片/视频到收藏} other {从收藏中移除}}",
"unable_to_archive_unarchive": "无法{archived, select, true {归档} other {取消归档}}",
- "unable_to_change_album_user_role": "无法更改相簿用户的角色",
+ "unable_to_change_album_user_role": "无法更改相册用户的角色",
"unable_to_change_date": "无法更改日期",
"unable_to_change_description": "无法修改描述",
"unable_to_change_favorite": "无法更改照片/视频的收藏状态",
@@ -1005,7 +1024,7 @@
"unable_to_create_api_key": "无法创建新的 API 密钥",
"unable_to_create_library": "无法创建库",
"unable_to_create_user": "无法创建用户",
- "unable_to_delete_album": "无法删除相簿",
+ "unable_to_delete_album": "无法删除相册",
"unable_to_delete_asset": "无法删除照片/视频",
"unable_to_delete_assets": "删除照片/视频时出错",
"unable_to_delete_exclusion_pattern": "无法删除排除规则",
@@ -1029,7 +1048,7 @@
"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_album_users": "无法从相册中移除用户",
"unable_to_remove_api_key": "无法移除 API 密钥",
"unable_to_remove_assets_from_shared_link": "无法从共享链接中移除照片/视频",
"unable_to_remove_library": "无法移除库",
@@ -1041,7 +1060,7 @@
"unable_to_restore_assets": "无法恢复照片/视频",
"unable_to_restore_trash": "无法还原回收站",
"unable_to_restore_user": "无法恢复用户",
- "unable_to_save_album": "无法保存相簿",
+ "unable_to_save_album": "无法保存相册",
"unable_to_save_api_key": "无法保存 API 密钥",
"unable_to_save_date_of_birth": "无法保存出生日期",
"unable_to_save_name": "无法更新人物名称",
@@ -1056,8 +1075,8 @@
"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_album_cover": "无法更新相册封面",
+ "unable_to_update_album_info": "无法更新相册信息",
"unable_to_update_library": "无法更新图库",
"unable_to_update_location": "无法更新位置信息",
"unable_to_update_settings": "无法更新设置",
@@ -1143,7 +1162,7 @@
"gps": "有GPS信息",
"gps_missing": "无GPS信息",
"grant_permission": "授权权限",
- "group_albums_by": "相簿分组依据...",
+ "group_albums_by": "相册分组依据...",
"group_country": "按国家分组",
"group_no": "不分组",
"group_owner": "按所有者分组",
@@ -1162,7 +1181,7 @@
"height": "高度",
"hi_user": "您好,{name}({email})",
"hide_all_people": "隐藏所有人物",
- "hide_gallery": "隐藏相簿",
+ "hide_gallery": "隐藏相册",
"hide_named_person": "隐藏人物:{name}",
"hide_password": "隐藏密码",
"hide_person": "隐藏人物",
@@ -1190,12 +1209,12 @@
"immich_web_interface": "Immich网页界面",
"import_from_json": "从JSON导入",
"import_path": "导入路径",
- "in_albums": "在{count, plural, one {# 个相簿} other {# 个相簿}}中",
+ "in_albums": "在{count, plural, one {# 个相册} other {# 个相册}}中",
"in_archive": "已归档",
"in_year": "{year}年",
"in_year_selector": "在",
"include_archived": "包括已归档",
- "include_shared_albums": "包括共享相簿",
+ "include_shared_albums": "包括共享相册",
"include_shared_partner_assets": "包括协作者共享照片/视频",
"individual_share": "单独分享",
"individual_shares": "单独分享",
@@ -1210,13 +1229,13 @@
"invalid_date": "无效的日期",
"invalid_date_format": "无效的日期格式",
"invite_people": "邀请人员",
- "invite_to_album": "邀请加入相簿",
+ "invite_to_album": "邀请加入相册",
"iso": "ISO",
"items_count": "{count, plural, one {#个} other {#个}}项目",
"jobs": "任务",
"keep": "保留",
- "keep_albums": "保留相簿",
- "keep_albums_count": "保留 {count} {count, plural, one {个相簿} other {个相簿}}",
+ "keep_albums": "保留相册",
+ "keep_albums_count": "保留 {count} {count, plural, one {个相册} other {个相册}}",
"keep_all": "全部保留",
"keep_description": "选择释放空间时保留在设备上的内容。",
"keep_favorites": "保留收藏",
@@ -1238,9 +1257,9 @@
"latest_version": "最新版本",
"latitude": "纬度",
"leave": "离开",
- "leave_album": "离开相簿",
+ "leave_album": "离开相册",
"lens_model": "镜头型号",
- "less": "收起",
+ "less": "更少",
"let_others_respond": "允许他人回复",
"level": "等级",
"library": "资源库",
@@ -1249,7 +1268,7 @@
"library_page_sort_asset_count": "项目数量",
"library_page_sort_created": "创建日期",
"library_page_sort_last_modified": "上次修改",
- "library_page_sort_title": "相簿标题",
+ "library_page_sort_title": "相册标题",
"licenses": "许可证",
"light": "浅色",
"light_theme": "切换到浅色主题",
@@ -1303,9 +1322,9 @@
"login_form_failed_login": "登录失败,请检查服务器地址、邮箱和密码",
"login_form_handshake_exception": "与服务器的握手异常。如果您使用的是自签名证书,请在设置中开启对自签名证书的支持。",
"login_form_password_hint": "密码",
- "login_form_server_empty": "请输入服务器 URL。",
- "login_form_server_error": "无法连接到服务器。",
- "login_has_been_disabled": "登录功能已禁用。",
+ "login_form_server_empty": "请输入服务器URL",
+ "login_form_server_error": "无法连接到服务器",
+ "login_has_been_disabled": "登录功能已禁用",
"login_password_changed_error": "更新密码时出错",
"login_password_changed_success": "密码更新成功",
"logout_all_device_confirmation": "确定要退出所有设备的登录吗?",
@@ -1356,6 +1375,7 @@
"map_location_picker_page_use_location": "使用此位置",
"map_location_service_disabled_content": "需要启用定位服务才能显示您当前位置的媒体文件。是否现在启用它?",
"map_location_service_disabled_title": "定位服务已禁用",
+ "map_marker_for_image": "在 {city}, {country} 拍摄的地图标记",
"map_marker_with_image": "带预览图的地图标记",
"map_no_location_permission_content": "需要位置权限才能显示您当前位置的照片/视频。现在要允许吗?",
"map_no_location_permission_title": "位置权限被拒绝",
@@ -1440,13 +1460,13 @@
"move_to_device_trash": "移至设备回收站",
"move_to_lock_folder_action_prompt": "已将 {count} 项添加到锁定文件夹",
"move_to_locked_folder": "移至锁定文件夹",
- "move_to_locked_folder_confirmation": "这些照片和视频将从所有相簿中移除,仅可在锁定文件夹内查看",
+ "move_to_locked_folder_confirmation": "这些照片和视频将从所有相册中移除,仅可在锁定文件夹内查看",
"moved_to_trash": "已移至回收站",
"mute_memories": "静音回忆",
- "my_albums": "我的相簿",
+ "my_albums": "我的相册",
"my_immich_description": "将当前页面复制为我的Immich链接",
"my_immich_title": "我的Immich链接",
- "name": "用户名",
+ "name": "名字",
"name_or_nickname": "名称或昵称",
"name_required": "名称是必填项",
"navigate": "导航",
@@ -1458,8 +1478,9 @@
"networking_settings": "网络设置",
"networking_subtitle": "管理服务器端点设置",
"never": "永不过期",
- "new_album": "新建相簿",
+ "new_album": "新建相册",
"new_api_key": "新增 API 密钥",
+ "new_feature": "新功能",
"new_password": "新密码",
"new_person": "新人物",
"new_pin_code": "新的PIN码",
@@ -1471,10 +1492,10 @@
"next": "下一个",
"next_memory": "下一个回忆",
"no": "否",
- "no_albums_found": "未找到相簿",
- "no_albums_message": "创建相簿以整理您的照片和视频",
- "no_albums_with_name_yet": "没有同名的相簿。",
- "no_albums_yet": "您还没有创建任何相簿。",
+ "no_albums_found": "未找到相册",
+ "no_albums_message": "创建相册以整理您的照片和视频",
+ "no_albums_with_name_yet": "没有同名的相册。",
+ "no_albums_yet": "您还没有创建任何相册。",
"no_archived_assets_message": "归档照片和视频,将其从“照片”视图中隐藏",
"no_assets_message": "点击上传你的第一张照片",
"no_assets_to_show": "暂无内容可显示",
@@ -1496,16 +1517,20 @@
"no_remote_assets_found": "未找到具有此校验和的远程项目",
"no_results": "未找到任何匹配项",
"no_results_description": "请尝试使用同义词或更宽泛的关键词",
- "no_shared_albums_message": "创建相簿,与社交圈内的好友共享照片和视频",
+ "no_shared_albums_message": "创建相册,与社交圈内的好友共享照片和视频",
"no_steps": "尚未添加任何步骤",
"none": "无",
"not_allowed": "不允许",
"not_available": "不适用",
- "not_in_any_album": "未收录于任何相簿",
+ "not_in_any_album": "未收录于任何相册",
"not_selected": "未选择",
+ "not_set": "未设置",
"notes": "备注",
"nothing_here_yet": "暂无内容",
"notification_backup_reliability": "启用通知以提高后台备份的可靠性",
+ "notification_enabled_list_tile_content": "Immich 使用通知功能进行后台备份。您可以在设备设置中管理这些通知。",
+ "notification_enabled_list_tile_open_button": "打开设置",
+ "notification_enabled_list_tile_title": "已启用通知",
"notification_permission_dialog_content": "要想开启通知功能,需要去“设置”里手动允许。",
"notification_permission_list_tile_content": "请授予(相关)权限,以开启通知功能。",
"notification_permission_list_tile_enable_button": "启用通知",
@@ -1517,6 +1542,8 @@
"obtainium_configurator": "Obtainium 配置器",
"obtainium_configurator_instructions": "使用 Obtainium 直接从 Immich 的 GitHub 发布页安装和更新 Android 应用。请创建一个 API 密钥并选择一个版本,以生成你的 Obtainium 配置链接",
"ocr": "OCR",
+ "ocr_body": "Immich 现在可以读取照片中的文字,因此你可以根据照片里的内容来搜索它们。",
+ "ocr_title": "搜索照片中的文字",
"official_immich_resources": "Immich官方资源",
"offline": "离线",
"offset": "偏移量",
@@ -1535,13 +1562,15 @@
"open": "打开",
"open_calendar": "打开日历",
"open_in_browser": "在浏览器中打开",
+ "open_in_immich_body": "在 Android 上将 Immich 设为图库应用,即可直接从其他应用打开照片。",
+ "open_in_immich_title": "在 Immich 中打开照片",
"open_in_map_view": "在地图视图中打开",
"open_in_openstreetmap": "在 OpenStreetMap 中打开",
"open_the_search_filters": "打开搜索筛选",
"options": "选项",
"or": "或",
- "organize_into_albums": "整理到相簿中",
- "organize_into_albums_description": "使用当前的同步设置,将现有照片归入相簿",
+ "organize_into_albums": "整理到相册中",
+ "organize_into_albums_description": "使用当前的同步设置,将现有照片归入相册",
"organize_your_library": "整理您的资源库",
"orientation": "方向",
"original": "原始的",
@@ -1584,7 +1613,7 @@
"permanent_deletion_warning_setting_description": "永久删除照片/视频时显示警告",
"permanently_delete": "永久删除",
"permanently_delete_assets_count": "永久删除{count, plural, one {个项目} other {个项目}}",
- "permanently_delete_assets_prompt": "确定要永久删除 {count, plural, one {此项目吗?} other {这 # 个项目吗?}}这也会将{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 {#个项目}}",
"permission": "权限",
@@ -1592,7 +1621,7 @@
"person": "人物",
"person_age_months": "{months, plural, one {#个月} other {#个月}}大",
"person_age_year_months": "1 岁{months, plural, one {# 个月} other {# 个月}}大",
- "person_age_years": "{years, plural, other {#岁}}",
+ "person_age_years": "{years, plural, one {# } other {# }} 岁",
"person_birthdate": "出生于{date}",
"person_hidden": "{name}{hidden, select, true {(隐藏)} other {}}",
"person_recognized": "已识别人物",
@@ -1641,7 +1670,7 @@
"profile_image_of_user": "{user}的个人资料图片",
"profile_picture_set": "个人资料图片已设置。",
"projection_type": "投影类型",
- "public_album": "公开相簿",
+ "public_album": "公开相册",
"public_share": "公开共享",
"purchase_account_info": "支持者",
"purchase_activated_subtitle": "感谢您对 Immich 和开源软件的支持",
@@ -1693,7 +1722,10 @@
"recent": "最近",
"recent_searches": "最近搜索",
"recently_added": "近期添加",
+ "recently_added_body": "在专属页面上,直接查看您近期添加的所有内容。",
+ "recently_added_description": "浏览您的媒体,并按上传到 Immich 的时间排序。",
"recently_added_page_title": "最近添加",
+ "recently_added_title": "最近添加",
"recently_taken": "近期拍摄",
"refresh": "刷新",
"refresh_encoded_videos": "刷新已编码的视频",
@@ -1714,8 +1746,8 @@
"remove_assets_title": "移除项目?",
"remove_custom_date_range": "取消自定义日期范围",
"remove_filter": "移除过滤",
- "remove_from_album": "从相簿中移除",
- "remove_from_album_action_prompt": "从相簿中移除了 {count} 项",
+ "remove_from_album": "从相册中移除",
+ "remove_from_album_action_prompt": "从相册中移除了 {count} 项",
"remove_from_favorites": "从收藏移除",
"remove_from_lock_folder_action_prompt": "已从锁定的文件夹中移除 {count} 项",
"remove_from_locked_folder": "从锁定文件夹中移除",
@@ -1775,11 +1807,11 @@
"scan_all_libraries": "扫描所有图库",
"scan_library": "扫描",
"scanning": "扫描中",
- "scanning_for_album": "扫描相簿中...",
+ "scanning_for_album": "扫描相册中...",
"screencast_mode_description": "在屏幕上显示键盘和鼠标事件指示器",
"screencast_mode_title": "切换屏幕录制模式",
"search": "搜索",
- "search_albums": "搜索相簿",
+ "search_albums": "搜索相册",
"search_by_context": "通过描述的场景查找",
"search_by_description": "通过描述查找",
"search_by_description_example": "在沙巴徒步的日子",
@@ -1799,7 +1831,7 @@
"search_filter_date": "日期",
"search_filter_date_interval": "从{start}到{end}",
"search_filter_date_title": "选择日期范围",
- "search_filter_display_option_not_in_album": "不在相簿中",
+ "search_filter_display_option_not_in_album": "不在相册中",
"search_filter_display_options": "显示选项",
"search_filter_filename": "通过文件名搜索",
"search_filter_location": "位置",
@@ -1831,9 +1863,9 @@
"second": "秒",
"see_all_people": "查看所有人物",
"select": "选择",
- "select_album": "选择相簿",
- "select_album_cover": "选择相簿封面",
- "select_albums": "选择多个相簿",
+ "select_album": "选择相册",
+ "select_album_cover": "选择相册封面",
+ "select_albums": "选择相册",
"select_all": "全选",
"select_all_duplicates": "选择所有重复项",
"select_avatar_color": "选择头像颜色",
@@ -1867,7 +1899,7 @@
"server_update_available": "服务器更新可用",
"server_version": "服务器版本",
"set": "设置",
- "set_as_album_cover": "设为相簿封面",
+ "set_as_album_cover": "设为相册封面",
"set_as_featured_photo": "设置为特色照片",
"set_as_profile_picture": "设为个人资料图片",
"set_date_of_birth": "设置出生日期",
@@ -1900,11 +1932,13 @@
"share_link": "分享链接",
"share_original": "使用原图(大)",
"share_preview": "使用缩略图(小)",
+ "share_quality_body": "在分享之前,长按分享按钮以选择图像质量。",
+ "share_quality_title": "选择分享画质",
"shared": "共享",
"shared_album_activities_input_disable": "评论已禁用",
"shared_album_activity_remove_content": "是否删除此活动?",
"shared_album_activity_remove_title": "删除活动",
- "shared_album_section_people_action_error": "退出/删除相簿失败",
+ "shared_album_section_people_action_error": "退出/删除相册失败",
"shared_album_section_people_title": "人物",
"shared_by": "共享自",
"shared_by_user": "由“{user}”共享",
@@ -1915,6 +1949,8 @@
"shared_link_clipboard_copied_massage": "复制到剪贴板",
"shared_link_create_error": "创建共享链接出错",
"shared_link_custom_url_description": "使用自定义URL访问此共享链接",
+ "shared_link_custom_url_title": "自定义 URL",
+ "shared_link_custom_url_warning": "注意:带有正斜杠的自定义URL名称可能不会像您预期的那样运行。",
"shared_link_edit_description_hint": "编辑共享描述",
"shared_link_edit_expire_after_option_day": "1天",
"shared_link_edit_expire_after_option_days": "{count}天",
@@ -1949,8 +1985,8 @@
"sharing": "共享",
"sharing_enter_password": "请输入密码后查看此页面。",
"shift_to_permanent_delete": "按住 ⇧ Shift 键永久删除项目",
- "show_album_options": "显示相簿选项",
- "show_albums": "显示相簿",
+ "show_album_options": "显示相册选项",
+ "show_albums": "显示相册",
"show_all_people": "显示所有人物",
"show_and_hide_people": "显示和隐藏人物",
"show_file_location": "显示文件位置",
@@ -1981,19 +2017,22 @@
"sign_out": "退出登录",
"sign_up": "注册",
"size": "大小",
+ "skip": "跳过",
"skip_to_content": "跳转到内容",
"skip_to_folders": "跳转到文件夹",
"skip_to_tags": "跳转到标签",
"slideshow": "幻灯片放映",
+ "slideshow_body": "坐下来,以全屏幻灯片形式欣赏您的照片。",
"slideshow_metadata_overlay_mode": "叠加内容显示",
"slideshow_metadata_overlay_mode_description_only": "仅描述",
"slideshow_metadata_overlay_mode_full": "完整信息",
"slideshow_repeat": "重复幻灯片",
"slideshow_repeat_description": "幻灯片结束后循环播放",
"slideshow_settings": "放映设置",
+ "slideshow_title": "幻灯片放映",
"smart_album": "智能相册",
"some_assets_already_have_a_location_warning": "部分所选项目已有位置信息",
- "sort_albums_by": "相簿排序...",
+ "sort_albums_by": "相册排序...",
"sort_created": "创建日期",
"sort_items": "项目数量",
"sort_modified": "修改日期",
@@ -2036,12 +2075,12 @@
"supporter": "赞助者",
"swap_merge_direction": "互换合并方向",
"sync": "同步",
- "sync_albums": "同步相簿",
+ "sync_albums": "同步相册",
"sync_local": "同步本地",
"sync_remote": "同步远程",
"sync_status": "同步状态",
"sync_status_subtitle": "查看和管理同步系统",
- "sync_upload_album_setting_subtitle": "创建照片和视频并上传到 Immich 上选定的相簿",
+ "sync_upload_album_setting_subtitle": "创建照片和视频并上传到 Immich 上选定的相册",
"system_theme": "系统主题",
"system_theme_command_description": "使用系统主题({value})",
"tag": "标签",
@@ -2118,14 +2157,15 @@
"unknown": "未知",
"unknown_country": "未知的国家",
"unknown_date": "未知日期",
+ "unknown_schema": "未知架构",
"unknown_year": "未知年份",
"unlimited": "无限制",
"unlink_motion_video": "取消链接动态视频",
"unlink_oauth": "解绑 OAuth",
"unlinked_oauth_account": "解绑 OAuth 账户",
"unmute_memories": "取消静音回忆",
- "unnamed_album": "未命名相簿",
- "unnamed_album_delete_confirmation": "您确定要删除该相簿吗?",
+ "unnamed_album": "未命名相册",
+ "unnamed_album_delete_confirmation": "您确定要删除该相册吗?",
"unnamed_share": "未命名共享",
"unsaved_change": "修改未保存",
"unselect_all": "取消全选",
@@ -2153,6 +2193,8 @@
"upload_status_errors": "错误",
"upload_status_uploaded": "已上传",
"upload_success": "上传成功,刷新页面查看新上传的项目。",
+ "upload_to_album_body": "对于不使用手动上传功能的用户,现在您可以选择在上传本地照片的同时直接将其添加到相册中,无需再先上传后添加。",
+ "upload_to_album_title": "直接上传至相册",
"upload_to_immich": "上传至Immich({count})",
"uploading": "正在上传",
"uploading_media": "文件上传中",
@@ -2180,7 +2222,7 @@
"user_usage_stats_description": "查看帐户使用统计信息",
"username": "用户名",
"users": "用户",
- "users_added_to_album_count": "已将 {count, plural, one {# 个用户} other {# 个用户}} 添加到相簿",
+ "users_added_to_album_count": "已将 {count, plural, one {# 个用户} other {# 个用户}} 添加到相册",
"utilities": "实用工具",
"validate": "验证",
"validate_endpoint_error": "请输入有效的 URL",
@@ -2197,7 +2239,7 @@
"videos": "视频",
"videos_count": "{count, plural, one {#个视频} other {#个视频}}",
"view": "查看",
- "view_album": "查看相簿",
+ "view_album": "查看相册",
"view_all": "查看全部",
"view_all_users": "查看全部用户",
"view_asset_owners": "查看项目所有者",
@@ -2220,6 +2262,9 @@
"week": "周",
"welcome": "欢迎",
"welcome_to_immich": "欢迎使用 Immich",
+ "whats_new": "新功能",
+ "whats_new_settings_subtitle": "看看Immich有什么新变化",
+ "whats_new_version": "版本:{version}",
"when": "当",
"width": "宽度",
"wifi_name": "Wi-Fi名称",
diff --git a/i18n/zh_Hant.json b/i18n/zh_Hant.json
index e5f273dd21..ec133e09a4 100644
--- a/i18n/zh_Hant.json
+++ b/i18n/zh_Hant.json
@@ -23,7 +23,7 @@
"add_location": "新增地點",
"add_partner": "新增親友",
"add_photos": "加入相片",
- "add_step": "添加步驟",
+ "add_step": "新增步驟",
"add_tag": "新增標籤",
"add_to": "加入至…",
"add_to_album": "加入到相簿",
@@ -73,7 +73,7 @@
"cron_expression_description": "使用 Cron 格式設定掃描間隔。更多資訊請參閱 Crontab Guru",
"cron_expression_presets": "Cron 表達式預設值",
"disable_login": "停用登入",
- "download_csv": "下載CSV檔案",
+ "download_csv": "下載 CSV 檔案",
"duplicate_detection_job_description": "針對資產執行機器學習以偵測相似圖片。需依賴「智慧搜尋」功能",
"exclusion_pattern_description": "排除模式可讓您在掃描媒體庫時忽略特定檔案與資料夾。若某些資料夾包含您不想匯入的檔案(例如 RAW 檔),此功能將非常有用。",
"export_config_as_json_description": "將目前系統設定下載為 JSON 檔案",
@@ -108,6 +108,21 @@
"image_thumbnail_quality_description": "縮圖品質範圍為 1 到 100。數值越高品質越好,但檔案也會更大,並可能降低應用程式的回應速度。",
"image_thumbnail_title": "縮圖設定",
"import_config_from_json_description": "透過上傳 JSON 設定檔匯入系統設定",
+ "integrity_checks_checksum_files": "校驗檔案",
+ "integrity_checks_checksum_files_description": "設定校驗和檢查",
+ "integrity_checks_checksum_files_enable_description": "啟用校驗和檢查",
+ "integrity_checks_checksum_files_percentage_limit": "百分比限制",
+ "integrity_checks_checksum_files_percentage_limit_description": "設定每個區間內,校驗和檢驗所能執行的最大百分比,數值範圍介於 0.01 到 1 之間。",
+ "integrity_checks_checksum_files_time_limit": "時間限制",
+ "integrity_checks_checksum_files_time_limit_description": "設定每個週期中,校驗和檢查的最長執行時間。(毫秒)",
+ "integrity_checks_missing_files": "遺失的檔案",
+ "integrity_checks_missing_files_description": "設定執行頻率,並啟用或停用遺失檔案檢查",
+ "integrity_checks_missing_files_enable_description": "啟用遺失檔案檢查",
+ "integrity_checks_settings": "完整性檢查",
+ "integrity_checks_settings_description": "管理完整性檢查間隔",
+ "integrity_checks_untracked_files": "未追蹤的檔案",
+ "integrity_checks_untracked_files_description": "設定頻率,並啟用或停用未追蹤檔案檢查",
+ "integrity_checks_untracked_files_enable_description": "啟用未追蹤檔案檢查",
"job_concurrency": "{job} 並行數",
"job_created": "已建立任務",
"job_not_concurrency_safe": "此任務不支援並行執行。",
@@ -130,7 +145,7 @@
"library_tasks_description": "掃描外部媒體庫以尋找新增或變更的項目",
"library_updated": "更新媒體庫",
"library_watching_enable_description": "監控外部媒體庫的檔案變化",
- "library_watching_settings": "媒體庫監控[實驗性]",
+ "library_watching_settings": "媒體庫監控 [實驗性]",
"library_watching_settings_description": "自動監控檔案的變化",
"logging_enable_description": "啟用紀錄功能",
"logging_level_description": "啟用時的紀錄層級。",
@@ -159,7 +174,7 @@
"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": "兩張臉孔被視為同一人物的最大距離,範圍為 0 至 2。降低此數值可避免將不同人物標記為同一人;提高此數值則可避免將同一人物標記為兩個不同的人。請注意,合併人物比拆分人物更容易,因此建議在可能的情況下將此門檻值設定得較低。",
+ "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": "最低臉部辨識數量",
@@ -192,16 +207,16 @@
"maintenance_integrity_checksum_mismatch": "檢查碼不符",
"maintenance_integrity_checksum_mismatch_description": "檔案的總和檢查碼與資料庫的不符。",
"maintenance_integrity_checksum_mismatch_job": "檢查有否檢查碼不符",
- "maintenance_integrity_checksum_mismatch_refresh_job": "刷新檢查碼不符報告",
+ "maintenance_integrity_checksum_mismatch_refresh_job": "重新整理檢查碼不符報告",
"maintenance_integrity_missing_file": "缺失檔案",
"maintenance_integrity_missing_file_description": "已在資料庫中追蹤,但檔案系統中並不存在的檔案。",
"maintenance_integrity_missing_file_job": "檢查缺失檔案",
- "maintenance_integrity_missing_file_refresh_job": "刷新缺失檔案報告",
+ "maintenance_integrity_missing_file_refresh_job": "重新整理缺失檔案報告",
"maintenance_integrity_report": "完整性報告",
"maintenance_integrity_untracked_file": "未追蹤檔案",
"maintenance_integrity_untracked_file_description": "在 Immich 的目錄中,但沒有任何紀錄的檔案。",
"maintenance_integrity_untracked_file_job": "檢查未追蹤檔案",
- "maintenance_integrity_untracked_file_refresh_job": "刷新未追蹤檔案報告",
+ "maintenance_integrity_untracked_file_refresh_job": "重新整理未追蹤檔案報告",
"maintenance_restore_backup": "還原備份",
"maintenance_restore_backup_description": "Immich 的資料將被清除,並從選取的備份還原。在繼續操作前,系統會先建立目前的資料備份。",
"maintenance_restore_backup_different_version": "此備份是由不同版本的 Immich 所建立!",
@@ -283,9 +298,9 @@
"oauth_auto_register": "自動註冊",
"oauth_auto_register_description": "使用 OAuth 登入後自動註冊新使用者",
"oauth_button_text": "按鈕文字",
- "oauth_client_secret_description": "機密用戶端的必填項目;若公開用戶端不支援 PKCE (代碼交換的驗證金鑰),亦須填寫。",
+ "oauth_client_secret_description": "機密用戶端的必填項目;若公開用戶端不支援 PKCE(代碼交換的驗證金鑰),亦須填寫。",
"oauth_enable_description": "使用 OAuth 登入",
- "oauth_end_session_url_description": "用戶登出時將其導向到此URL。",
+ "oauth_end_session_url_description": "使用者登出時將其重新導向到此 URL。",
"oauth_mobile_redirect_uri": "行動端重新導向 URI",
"oauth_mobile_redirect_uri_override": "覆寫行動端重新導向 URI",
"oauth_mobile_redirect_uri_override_description": "當 OAuth 提供者不允許使用行動端 URI(例如 ''{callback}'')時啟用",
@@ -317,7 +332,7 @@
"registration": "管理者註冊",
"registration_description": "由於您是系統上的第一位使用者,您將被指派為系統管理員,並負責管理相關事務,後續的其他使用者也將由您建立。",
"release_channel_release_candidate": "候選發布版",
- "release_channel_stable": "稳定版",
+ "release_channel_stable": "穩定版",
"remove_failed_jobs": "移除失敗任務",
"require_password_change_on_login": "要求使用者在首次登入時變更密碼",
"reset_settings_to_default": "將設定重設為預設值",
@@ -402,7 +417,7 @@
"transcoding_max_b_frames": "最大 B 幀數",
"transcoding_max_b_frames_description": "較高的數值可提升壓縮效率,但會降低編碼速度。在較舊的裝置上,可能與硬體加速不相容。0 代表停用 B 幀,而 -1 則會自動設定此數值。",
"transcoding_max_bitrate": "最大位元速率",
- "transcoding_max_bitrate_description": "設定最大位元率能讓檔案大小更穩定,但會稍微犧牲品質。720p 下的典型值為:VP9 或 HEVC 為 2600 kbit/s,H.264 為 4500 kbit/s。設為 0 則停用。若未指定單位,系統將預設為 k (即 kbit/s);因此 5000、5000k 與 5M (即 Mbit/s) 是等效的。",
+ "transcoding_max_bitrate_description": "設定最大位元率能讓檔案大小更穩定,但會稍微犧牲品質。720p 下的典型值為:VP9 或 HEVC 為 2600 kbit/s,H.264 為 4500 kbit/s。設為 0 則停用。若未指定單位,系統將預設為 k(即 kbit/s);因此 5000、5000k 與 5M(即 Mbit/s)是等效的。",
"transcoding_max_keyframe_interval": "最大關鍵幀間隔",
"transcoding_max_keyframe_interval_description": "設定關鍵幀之間的最大幀距。較低的數值會降低壓縮效率,但可改善跳轉搜尋時間並提升高動態場景品質。0 為自動設定。",
"transcoding_optimal_description": "高於目標解析度或格式不在可接受範圍的影片",
@@ -412,10 +427,14 @@
"transcoding_preferred_hardware_device_description": "僅適用於 VAAPI 和 QSV。設定用於硬體轉碼的 dri 節點。",
"transcoding_preset_preset": "預設值(-preset)",
"transcoding_preset_preset_description": "壓縮速度。較慢的預設值可產生體積較小的檔案,並在指定位元率時提升品質。VP9 會忽略高於「faster」的設定。",
- "transcoding_realtime": "即時轉碼 [實驗性功能]",
+ "transcoding_realtime": "即時轉碼 [實驗性]",
"transcoding_realtime_description": "允許在影片串流傳輸(播放)的同時即時進行轉碼。此功能支援動態切換畫質,但根據伺服器效能的不同,可能會導致較高的播放延遲或畫面卡頓。",
"transcoding_realtime_enabled": "啟用即時轉碼",
"transcoding_realtime_enabled_description": "如果停用,伺服器將拒絕啟動新的即時轉碼工作階段。",
+ "transcoding_realtime_resolutions": "解析度",
+ "transcoding_realtime_resolutions_description": "即時轉碼所提供的解析度。如果伺服器無法以足夠快的速度進行轉碼,使用更高的解析度可能會導致播放問題。",
+ "transcoding_realtime_video_codecs": "影片編碼器",
+ "transcoding_realtime_video_codecs_description": "用於即時轉碼的影片編碼器選項。用戶端會在播放的時候選擇支援的最佳方案。AV1 的效率高於 HEVC,而 HEVC 的效率又高於 H.264。使用硬體加速時,請只選擇加速器支援編碼的編碼器。使用軟體轉碼時,H.264 的速度快於 AV1,而 AV1 的速度快於 HEVC。",
"transcoding_reference_frames": "參考幀",
"transcoding_reference_frames_description": "在壓縮特定幀時所參考的幀數量。數值越高可提升壓縮效率,但會降低編碼速度。設為 0 則自動決定此數值。",
"transcoding_required_description": "僅限格式不被接受的影片",
@@ -474,12 +493,12 @@
"advanced": "進階",
"advanced_settings_clear_image_cache": "清除圖片快取",
"advanced_settings_clear_image_cache_error": "清除圖片快取失敗",
- "advanced_settings_clear_image_cache_success": "成功清除{size}",
+ "advanced_settings_clear_image_cache_success": "成功清除 {size}",
"advanced_settings_log_level_title": "紀錄等級:{level}",
"advanced_settings_prefer_remote_subtitle": "部分裝置從本機項目載入縮圖的速度非常慢。啟用此設定可改為載入遠端圖片。",
"advanced_settings_prefer_remote_title": "偏好遠端影像",
"advanced_settings_proxy_headers_subtitle": "定義 Immich 在每次網路請求時應該傳送的代理標頭",
- "advanced_settings_proxy_headers_title": "自訂代理標頭[實驗性]",
+ "advanced_settings_proxy_headers_title": "自訂代理標頭 [實驗性]",
"advanced_settings_readonly_mode_subtitle": "啟用唯讀模式後僅能瀏覽相片,將停用多選、分享、投放及刪除等功能。可透過主畫面上的使用者個人圖示啟用或停用唯讀模式",
"advanced_settings_readonly_mode_title": "唯讀模式",
"advanced_settings_sync_remote_deletions_subtitle": "當在網頁端執行刪除或還原操作時,自動在此裝置上刪除或還原該項目",
@@ -547,7 +566,7 @@
"archive_action_prompt": "已將 {count} 個項目加入封存",
"archive_or_unarchive_photo": "封存或取消封存相片",
"archive_size": "封存大小",
- "archive_size_description": "設定要下載的封存檔案大小 (單位:GiB)",
+ "archive_size_description": "設定要下載的封存檔案大小(單位:GiB)",
"archived": "已封存",
"archived_count": "{count, plural, other {已封存 # 個項目}}",
"are_these_the_same_person": "同一位人物?",
@@ -578,6 +597,7 @@
"asset_viewer_settings_title": "項目檢視器",
"assets": "項目",
"assets_added_to_album_count": "已將 {count, plural, one {# 個項目} other {# 個項目}}加入至相簿",
+ "assets_added_to_album_partial_count": "已從 {totalCount} {totalCount, plural, one {件} other {件}} 項目中成功新增 {successCount} 件項目到相簿中",
"assets_added_to_albums_count": "已將 {assetTotal, plural, other {# 個項目}} 新增至 {albumTotal, plural, other {# 本相簿}}",
"assets_cannot_be_added_to_album_count": "無法將 {count, plural, one {項目} other {項目}} 加入至相簿",
"assets_cannot_be_added_to_albums": "無法將 {count, plural, one {項目} other {項目}} 加入任何相簿",
@@ -715,7 +735,7 @@
"collapse": "折疊",
"collapse_all": "全部折疊",
"color": "顏色",
- "command": "命令",
+ "command": "指令",
"command_palette_prompt": "快速搜尋頁面、動作或指令",
"command_palette_to_close": "關閉",
"command_palette_to_navigate": "輸入",
@@ -794,7 +814,6 @@
"custom_date": "另選日期",
"custom_locale": "自訂地區設定",
"custom_locale_description": "根據選定語言與地區格式化日期、時間與數字",
- "custom_url": "自訂 URL",
"cutoff_date_description": "保留最近多少天的相片…",
"cutoff_day": "{count, plural, one {天} other {天}}",
"cutoff_year": "{count, plural, one {年} other {年}}",
@@ -906,7 +925,7 @@
"editor": "編輯器",
"editor_discard_edits_confirm": "放棄編輯",
"editor_discard_edits_prompt": "您有尚未儲存的編輯內容。確定要捨棄嗎?",
- "editor_discard_edits_title": "確認放棄編輯嗎?",
+ "editor_discard_edits_title": "要捨棄編輯嗎?",
"editor_edits_applied_error": "無法套用編輯",
"editor_edits_applied_success": "已成功套用編輯",
"editor_flip_horizontal": "水平翻轉",
@@ -1068,7 +1087,7 @@
},
"errors_text": "錯誤",
"exclusion_pattern": "排除模式",
- "exif": "EXIF",
+ "exif": "Exif 資訊",
"exif_bottom_sheet_description": "新增描述...",
"exif_bottom_sheet_description_error": "更新描述時發生錯誤",
"exif_bottom_sheet_no_description": "無描述",
@@ -1094,7 +1113,7 @@
"face_unassigned": "未指派",
"failed": "失敗",
"failed_count": "失敗:{count}",
- "failed_to_authenticate": "身份驗證失敗",
+ "failed_to_authenticate": "身分驗證失敗",
"failed_to_delete_file": "無法刪除檔案",
"failed_to_load_assets": "項目載入失敗",
"failed_to_load_folder": "無法載入資料夾",
@@ -1192,7 +1211,7 @@
"import_path": "匯入路徑",
"in_albums": "在 {count, plural, one {# 本相簿} other {# 本相簿}}中",
"in_archive": "在封存中",
- "in_year": "{year}年",
+ "in_year": "{year} 年",
"in_year_selector": "在",
"include_archived": "包含已封存",
"include_shared_albums": "包含共享相簿",
@@ -1216,14 +1235,14 @@
"jobs": "任務",
"keep": "保留",
"keep_albums": "保留相簿",
- "keep_albums_count": "保留{count} {count, plural, one {本相簿} other {本相簿}}",
+ "keep_albums_count": "保留 {count} {count, plural, one {本相簿} other {本相簿}}",
"keep_all": "全部保留",
"keep_description": "選擇執行釋放空間時要保留在裝置上的項目。",
"keep_favorites": "保留最愛的相片",
"keep_on_device": "保留在裝置上",
"keep_on_device_hint": "選擇保留在裝置上的相片",
"keep_this_delete_others": "保留這個,刪除其他",
- "keeping": "保留:{items}",
+ "keeping": "保留:{items}",
"kept_this_deleted_others": "保留這個項目並刪除{count, plural, one {# 個項目} other {# 個項目}}",
"keyboard_shortcuts": "鍵盤快捷鍵",
"language": "語言",
@@ -1268,7 +1287,7 @@
"local": "本機",
"local_asset_cast_failed": "無法投放未上傳至伺服器的項目",
"local_assets": "本機項目",
- "local_id": "本地 ID",
+ "local_id": "本機 ID",
"local_media_summary": "本機媒體摘要",
"local_network": "本機網路",
"local_network_sheet_info": "當使用指定的 Wi-Fi 網路時,應用程式將透過此網址連線至伺服器",
@@ -1281,11 +1300,11 @@
"location_picker_longitude_error": "輸入有效的經度值",
"location_picker_longitude_hint": "請在此處輸入您的經度值",
"lock": "鎖定",
- "locked_folder": "已鎖定資料夾",
+ "locked_folder": "已上鎖的資料夾",
"log_detail_title": "紀錄詳細資訊",
"log_out": "登出",
"log_out_all_devices": "登出所有裝置",
- "logged_in_as": "以{user}身分登入",
+ "logged_in_as": "以 {user} 身分登入",
"logged_out_all_devices": "已登出所有裝置",
"logged_out_device": "已登出裝置",
"login": "登入",
@@ -1342,7 +1361,7 @@
"make": "製造商",
"manage_geolocation": "管理位置資訊",
"manage_media_access_rationale": "需要此權限才能處理項目移至垃圾桶與還原的操作。",
- "manage_media_access_settings": "打開設定",
+ "manage_media_access_settings": "開啟設定",
"manage_media_access_subtitle": "允許 Immich App 管理與移動媒體檔案。",
"manage_media_access_title": "媒體管理存取權限",
"manage_sharing_with_partners": "管理親友共享設定",
@@ -1445,7 +1464,7 @@
"moved_to_trash": "已丟進垃圾桶",
"mute_memories": "靜音回憶",
"my_albums": "我的相簿",
- "my_immich_description": "複製當前頁面為 My Immich 連結",
+ "my_immich_description": "複製目前頁面為 My Immich 連結",
"my_immich_title": "My Immich 連結",
"name": "名稱",
"name_or_nickname": "名稱或暱稱",
@@ -1461,6 +1480,7 @@
"never": "永不失效",
"new_album": "新相簿",
"new_api_key": "新的 API 金鑰",
+ "new_feature": "新功能",
"new_password": "新密碼",
"new_person": "新的人物",
"new_pin_code": "新 PIN 碼",
@@ -1498,17 +1518,18 @@
"no_results": "沒有結果",
"no_results_description": "試試同義詞或更通用的關鍵字吧",
"no_shared_albums_message": "建立共享相簿以分享相片與影片",
- "no_steps": "未添加任何步驟",
+ "no_steps": "未新增任何步驟",
"none": "無",
"not_allowed": "不允許",
"not_available": "不適用",
"not_in_any_album": "不在任何相簿中",
"not_selected": "未選取",
+ "not_set": "未設定",
"notes": "提示",
"nothing_here_yet": "暫無訊息",
"notification_backup_reliability": "啟用通知可提高背景備份的可靠性",
"notification_enabled_list_tile_content": "Immich 會使用通知以完成背景備份。請在系統設定中管理通知。",
- "notification_enabled_list_tile_open_button": "打開設定",
+ "notification_enabled_list_tile_open_button": "開啟設定",
"notification_enabled_list_tile_title": "啟用通知",
"notification_permission_dialog_content": "開啟通知,請前往「設定」,並選擇「允許」。",
"notification_permission_list_tile_content": "開啟通知權限。",
@@ -1521,6 +1542,8 @@
"obtainium_configurator": "Obtainium 設定工具",
"obtainium_configurator_instructions": "使用 Obtainium 直接從 Immich GitHub 的發行版本安裝並更新 Android App。建立 API 金鑰並選取版本類型以產生您的 Obtainium 設定連結",
"ocr": "OCR",
+ "ocr_body": "Immich 可以辨識你照片裡的文字,所以你可以透過照片裡的文字來搜尋照片。",
+ "ocr_title": "在您的照片中搜尋文字",
"official_immich_resources": "官方 Immich 資源",
"offline": "離線",
"offset": "移動",
@@ -1537,8 +1560,10 @@
"online": "線上",
"only_favorites": "僅顯示己收藏",
"open": "開啟",
- "open_calendar": "打開日曆",
+ "open_calendar": "開啟日曆",
"open_in_browser": "在瀏覽器中開啟",
+ "open_in_immich_body": "在 Android 裝置上將 Immich 設定為媒體庫,即可直接從其他應用程式開啟照片。",
+ "open_in_immich_title": "在 Immich 裡面開啟照片",
"open_in_map_view": "開啟地圖檢視",
"open_in_openstreetmap": "用 OpenStreetMap 開啟",
"open_the_search_filters": "開啟搜尋篩選器",
@@ -1596,7 +1621,7 @@
"person": "人物",
"person_age_months": "{months, plural, one {# 個月} other {# 個月}}",
"person_age_year_months": "1 年 {months, plural, one {# 個月} other {# 個月}}",
- "person_age_years": "{years, plural, other {# 歲}}",
+ "person_age_years": "{years, plural, one {# 歲} other {# 歲}}",
"person_birthdate": "出生於 {date}",
"person_hidden": "{name}{hidden, select, true {(隱藏)} other {}}",
"person_recognized": "已辨識人物",
@@ -1621,7 +1646,7 @@
"play_original_video": "播放原始影片",
"play_original_video_setting_description": "優先播放原始影片而非轉碼後的影片。若原始項目不相容,可能無法正常播放。",
"play_transcoded_video": "播放轉碼影片",
- "please_auth_to_access": "請進行身份驗證才能存取",
+ "please_auth_to_access": "請進行身分驗證才能存取",
"plugin_method_filter_type": "篩選",
"plugin_method_filter_type_description": "此方法可篩選事件,並有條件地阻止後續步驟執行",
"port": "連接埠",
@@ -1697,7 +1722,10 @@
"recent": "最近",
"recent_searches": "最近搜尋項目",
"recently_added": "最近新增",
+ "recently_added_body": "前往專屬頁面,直接查看您最近新增的所有內容。",
+ "recently_added_description": "瀏覽您的項目,並按上傳到 Immich 的時間排序",
"recently_added_page_title": "最近新增",
+ "recently_added_title": "最近新增",
"recently_taken": "最近拍攝",
"refresh": "重新整理",
"refresh_encoded_videos": "重新整理已編碼的影片",
@@ -1760,7 +1788,7 @@
"restore_user": "還原使用者",
"restored_asset": "已還原檔案",
"resume": "繼續",
- "resume_paused_jobs": "恢復 {count, plural, one {# 暫停的任務} other {# 暫停的任務}}",
+ "resume_paused_jobs": "復原 {count, plural, one {# 暫停的任務} other {# 暫停的任務}}",
"review_duplicates": "檢查重複內容",
"review_large_files": "檢查大型檔案",
"role": "角色",
@@ -1774,7 +1802,7 @@
"saved_settings": "已儲存設定",
"say_something": "說說您的想法吧",
"scaffold_body_error_occurred": "發生錯誤",
- "scaffold_body_error_unrecoverable": "發生無法恢復的錯誤。請在 Discord 或 Github 上分享錯誤資訊及堆疊追蹤,以便我們提供協助。在被建議的情況下你可以在下方嘗試清除程式資料。",
+ "scaffold_body_error_unrecoverable": "發生無法復原的錯誤。請在 Discord 或 Github 上分享錯誤資訊及堆疊追蹤,以便我們提供協助。在被建議的情況下你可以在下方嘗試清除程式資料。",
"scan": "掃描",
"scan_all_libraries": "掃描所有相簿",
"scan_library": "掃描",
@@ -1790,7 +1818,7 @@
"search_by_filename": "依檔名或副檔名搜尋",
"search_by_filename_example": "如 IMG_1234.JPG 或 PNG",
"search_by_full_path": "依完整路徑或資料夾搜尋",
- "search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - 您可以搜尋 Projects、3D、Printing、2026 等",
+ "search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - 您可以搜尋 Projects、3D、Printing、2026 等。",
"search_by_ocr": "透過 OCR 搜尋",
"search_by_ocr_example": "拿鐵",
"search_camera_lens_model": "搜尋鏡頭型號...",
@@ -1851,7 +1879,7 @@
"select_people": "選擇人物",
"select_person": "選取人物",
"select_person_to_tag": "選擇要標記的人物",
- "select_photos": "選相片",
+ "select_photos": "選取相片",
"select_quality": "選擇畫質",
"select_trash_all": "全部刪除",
"selected": "已選取",
@@ -1902,8 +1930,10 @@
"share": "分享",
"share_dialog_preparing": "正在準備...",
"share_link": "分享連結",
- "share_original": "使用原圖 (大)",
+ "share_original": "使用原圖(大)",
"share_preview": "使用縮圖(小)",
+ "share_quality_body": "長按分享按鈕即可在分享之前選擇圖片品質。",
+ "share_quality_title": "選擇您的分享品質",
"shared": "共享",
"shared_album_activities_input_disable": "留言功能已停用",
"shared_album_activity_remove_content": "您確定要刪除此活動嗎?",
@@ -1918,7 +1948,9 @@
"shared_link_app_bar_title": "分享連結",
"shared_link_clipboard_copied_massage": "已複製到剪貼簿",
"shared_link_create_error": "建立分享連結時發生錯誤",
- "shared_link_custom_url_description": "使用自訂 URL",
+ "shared_link_custom_url_description": "使用自訂 URL 名稱來使用共享連結",
+ "shared_link_custom_url_title": "自訂 URL",
+ "shared_link_custom_url_warning": "警告:使用正斜杠的自訂 URL 名稱未必會與你所預期的一樣運行。",
"shared_link_edit_description_hint": "編輯共享描述",
"shared_link_edit_expire_after_option_day": "1 天",
"shared_link_edit_expire_after_option_days": "{count} 天",
@@ -1985,17 +2017,20 @@
"sign_out": "登出",
"sign_up": "註冊",
"size": "用量",
+ "skip": "跳過",
"skip_to_content": "跳至內容",
"skip_to_folders": "跳到資料夾",
"skip_to_tags": "跳轉到標籤",
"slideshow": "幻燈片",
+ "slideshow_body": "請放鬆觀看,您的照片會以全螢幕幻燈片形式播放。",
"slideshow_metadata_overlay_mode": "覆蓋內容",
"slideshow_metadata_overlay_mode_description_only": "僅描述",
"slideshow_metadata_overlay_mode_full": "完整",
"slideshow_repeat": "重複投影片",
"slideshow_repeat_description": "循環播放",
"slideshow_settings": "幻燈片設定",
- "smart_album": "智能相簿",
+ "slideshow_title": "幻燈片",
+ "smart_album": "智慧相簿",
"some_assets_already_have_a_location_warning": "部分所選項目已有位置資訊",
"sort_albums_by": "相簿排序依據...",
"sort_created": "建立日期",
@@ -2029,7 +2064,7 @@
"storage": "儲存空間",
"storage_label": "儲存標籤",
"storage_quota": "儲存空間",
- "storage_usage": "已使用 {used} ,共 {available}",
+ "storage_usage": "已使用 {used},共 {available}",
"submit": "提交",
"success": "成功",
"suggestions": "建議",
@@ -2122,6 +2157,7 @@
"unknown": "未知",
"unknown_country": "未知國家",
"unknown_date": "未知的日期",
+ "unknown_schema": "未知的架構",
"unknown_year": "未知年份",
"unlimited": "不限制",
"unlink_motion_video": "解除連結動態影片",
@@ -2157,6 +2193,8 @@
"upload_status_errors": "錯誤",
"upload_status_uploaded": "已上傳",
"upload_success": "上傳成功,要檢視新上傳的檔案請重新整理頁面。",
+ "upload_to_album_body": "對於不使用手動上傳功能的使用者,現在可以選擇在上傳照片的同時直接將其新增至相簿,無需先上傳後才新增至相簿。",
+ "upload_to_album_title": "直接上傳到相簿",
"upload_to_immich": "上傳至 Immich ({count})",
"uploading": "上傳中",
"uploading_media": "項目上傳中",
@@ -2224,6 +2262,9 @@
"week": "週",
"welcome": "歡迎",
"welcome_to_immich": "歡迎使用 Immich",
+ "whats_new": "有什麼新東西",
+ "whats_new_settings_subtitle": "看看 Immich 裡有什麼新東西",
+ "whats_new_version": "版本:{version}",
"when": "當",
"width": "寬度",
"wifi_name": "Wi-Fi 名稱",
diff --git a/machine-learning/Dockerfile b/machine-learning/Dockerfile
index 283d1f24d4..c8191e307b 100644
--- a/machine-learning/Dockerfile
+++ b/machine-learning/Dockerfile
@@ -160,6 +160,9 @@ ENV IMMICH_SOURCE_REF=${BUILD_SOURCE_REF}
ENV IMMICH_SOURCE_COMMIT=${BUILD_SOURCE_COMMIT}
ENV IMMICH_SOURCE_URL=https://github.com/immich-app/immich/commit/${BUILD_SOURCE_COMMIT}
+# store huggingface in /cache subfolder to enable rootless deployment with a single volume
+ENV HF_HOME=/cache/hf-cache
+
ENTRYPOINT ["tini", "--"]
CMD ["python", "-m", "immich_ml"]
diff --git a/machine-learning/conftest.py b/machine-learning/conftest.py
index 57741f3807..a5acc059d1 100644
--- a/machine-learning/conftest.py
+++ b/machine-learning/conftest.py
@@ -1,11 +1,10 @@
import json
-from typing import Any, Iterator
+from types import SimpleNamespace
+from typing import Any, Callable, Iterator
from unittest import mock
-import numpy as np
import pytest
from fastapi.testclient import TestClient
-from numpy.typing import NDArray
from PIL import Image
from immich_ml.config import log
@@ -17,11 +16,6 @@ def pil_image() -> Image.Image:
return Image.new("RGB", (600, 800))
-@pytest.fixture
-def cv_image(pil_image: Image.Image) -> NDArray[np.float32]:
- return np.asarray(pil_image)[:, :, ::-1] # PIL uses RGB while cv2 uses BGR
-
-
@pytest.fixture
def mock_get_model() -> Iterator[mock.Mock]:
with mock.patch("immich_ml.models.cache.from_model_type", autospec=True) as mocked:
@@ -129,6 +123,18 @@ def ort_session() -> Iterator[mock.Mock]:
yield mocked
+@pytest.fixture(scope="function")
+def stub_session() -> Callable[..., mock.Mock]:
+ def _make(shape: tuple[Any, ...], outputs: Any = None, name: str = "input.1") -> mock.Mock:
+ session = mock.Mock()
+ session.get_inputs.return_value = [SimpleNamespace(name=name, shape=shape)]
+ if outputs is not None:
+ session.run.return_value = outputs
+ return session
+
+ return _make
+
+
@pytest.fixture(scope="function")
def ann_session() -> Iterator[mock.Mock]:
with mock.patch("immich_ml.sessions.ann.Ann") as mocked:
diff --git a/machine-learning/immich_ml/models/base.py b/machine-learning/immich_ml/models/base.py
index 00790ce744..5c40b21f32 100644
--- a/machine-learning/immich_ml/models/base.py
+++ b/machine-learning/immich_ml/models/base.py
@@ -57,7 +57,7 @@ class InferenceModel(ABC):
self.load()
if model_kwargs:
self.configure(**model_kwargs)
- return self._predict(*inputs)
+ return self._predict(*inputs, **model_kwargs)
@abstractmethod
def _predict(self, *inputs: Any, **model_kwargs: Any) -> Any: ...
diff --git a/machine-learning/immich_ml/models/facial_recognition/_ops.py b/machine-learning/immich_ml/models/facial_recognition/_ops.py
new file mode 100644
index 0000000000..6bdf5f5c3c
--- /dev/null
+++ b/machine-learning/immich_ml/models/facial_recognition/_ops.py
@@ -0,0 +1,74 @@
+"""
+Host-side geometry for the fused face models.
+
+The decode, NMS and Umeyama similarity are ports of insightface (Apache-2.0, https://github.com/deepinsight/insightface)
+"""
+
+from functools import lru_cache
+
+import cv2
+import numpy as np
+from numpy.typing import NDArray
+
+from immich_ml.models.transforms import ensure_dims
+
+DET_SIZE = 640
+ALIGNED_SIZE = 112
+
+# the FPN levels for which the fused detector emits a (scores, boxes, kps) triple,
+# and the anchors each feature-map cell carries, laid out anchor-major
+DET_STRIDES = (8, 16, 32)
+ANCHORS_PER_CELL = 2
+
+# canonical ArcFace 5-point template for a 112x112 crop
+ARCFACE_DST = np.array(
+ [[38.2946, 51.6963], [73.5318, 51.5014], [56.0252, 71.7366], [41.5493, 92.3655], [70.7299, 92.2041]],
+ dtype=np.float32,
+)
+
+
+@lru_cache(maxsize=len(DET_STRIDES))
+def _anchor_centers(size: int, stride: int) -> NDArray[np.float32]:
+ ys, xs = np.mgrid[: size // stride, : size // stride]
+ centers = np.stack([xs, ys], axis=-1, dtype=np.float32).reshape(-1, 2) * stride
+ return np.repeat(centers, ANCHORS_PER_CELL, axis=0)
+
+
+def decode_scrfd(
+ heads: list[NDArray[np.float32]], size: int = DET_SIZE
+) -> tuple[NDArray[np.float32], NDArray[np.float32], NDArray[np.float32]]:
+ heads = [ensure_dims(head, 4) for head in heads]
+ scores, boxes, kps = [], [], []
+ for level, stride in enumerate(DET_STRIDES):
+ centers = _anchor_centers(size, stride)
+ distance = heads[level + len(DET_STRIDES)][0] * stride
+ offsets = heads[level + 2 * len(DET_STRIDES)][0] * stride
+ scores.append(heads[level][0].squeeze(-1))
+ boxes.append(np.concatenate([centers[None] - distance[:, :, :2], centers[None] + distance[:, :, 2:]], axis=2))
+ kps.append(np.tile(centers, offsets.shape[2] // 2) + offsets)
+
+ return np.concatenate(scores, axis=1), np.concatenate(boxes, axis=1), np.concatenate(kps, axis=1)
+
+
+def nms(boxes: NDArray[np.float32], scores: NDArray[np.float32], threshold: float = 0.4) -> NDArray[np.intp]:
+ wh = np.column_stack([boxes[:, 0], boxes[:, 1], boxes[:, 2] - boxes[:, 0], boxes[:, 3] - boxes[:, 1]])
+ keep = cv2.dnn.NMSBoxes(wh.tolist(), scores.tolist(), 0.0, threshold) # NMSBoxes treats the inputs as Sequences
+ return np.asarray(keep, dtype=np.intp).reshape(-1)
+
+
+def umeyama(src: NDArray[np.float32], dst: NDArray[np.float32]) -> NDArray[np.float32]:
+ src_mean, dst_mean = src.mean(0), dst.mean(0)
+ src_c, dst_c = src - src_mean, dst - dst_mean
+ cov = dst_c.T @ src_c / len(src)
+ u, s, vt = np.linalg.svd(cov)
+ d = np.sign(np.linalg.det(u @ vt))
+ diag = np.diag([1.0, d])
+ rotation = u @ diag @ vt
+ scale = np.trace(np.diag(s) @ diag) / (src_c**2).sum() * len(src)
+ translation = dst_mean - scale * rotation @ src_mean
+ return np.hstack([scale * rotation, translation[:, None]], dtype=np.float32)
+
+
+def align_face(image: NDArray[np.uint8], kps: NDArray[np.float32]) -> NDArray[np.float32]:
+ matrix = umeyama(kps, ARCFACE_DST)
+ return cv2.warpAffine(image, matrix, (ALIGNED_SIZE, ALIGNED_SIZE)).astype(np.float32)
diff --git a/machine-learning/immich_ml/models/facial_recognition/detection.py b/machine-learning/immich_ml/models/facial_recognition/detection.py
index 26c9208e48..a113755201 100644
--- a/machine-learning/immich_ml/models/facial_recognition/detection.py
+++ b/machine-learning/immich_ml/models/facial_recognition/detection.py
@@ -1,41 +1,31 @@
-from typing import Any
-
import numpy as np
-from insightface.model_zoo import RetinaFace
from numpy.typing import NDArray
from immich_ml.models.base import InferenceModel
-from immich_ml.models.transforms import decode_cv2
-from immich_ml.schemas import FaceDetectionOutput, ModelSession, ModelTask, ModelType
+from immich_ml.models.transforms import decode_pil, letterbox, normalize
+from immich_ml.schemas import FaceDetectionOutput, ModelTask, ModelType
+
+from ._ops import DET_SIZE, decode_scrfd, nms
class FaceDetector(InferenceModel):
depends = []
identity = (ModelType.DETECTION, ModelTask.FACIAL_RECOGNITION)
- def __init__(self, model_name: str, min_score: float = 0.7, **model_kwargs: Any) -> None:
- self.min_score = model_kwargs.pop("minScore", min_score)
- super().__init__(model_name, **model_kwargs)
+ def _predict(self, inputs: NDArray[np.uint8] | bytes, minScore: float) -> FaceDetectionOutput:
+ canvas, scale = letterbox(decode_pil(inputs), DET_SIZE)
+ blob = normalize(canvas.astype(np.float32), mean=127.5, std=128).transpose(2, 0, 1)[None]
- def _load(self) -> ModelSession:
- session = self._make_session(self.model_path)
- self.model = RetinaFace(session=session)
- self.model.prepare(ctx_id=0, det_thresh=self.min_score, input_size=(640, 640))
+ input_name = self.session.get_inputs()[0].name
+ heads = self.session.run(None, {input_name: blob})
+ scores, boxes, kps = decode_scrfd(heads, DET_SIZE)
- return session
+ candidates = scores >= minScore
+ scores, boxes, kps = scores[candidates], boxes[candidates] / scale, kps[candidates] / scale
+ keep = nms(boxes, scores)
- def _predict(self, inputs: NDArray[np.uint8] | bytes) -> FaceDetectionOutput:
- inputs = decode_cv2(inputs)
-
- bboxes, landmarks = self._detect(inputs)
return {
- "boxes": bboxes[:, :4].round(),
- "scores": bboxes[:, 4],
- "landmarks": landmarks,
+ "boxes": boxes[keep].round(),
+ "scores": scores[keep],
+ "landmarks": kps[keep].reshape(-1, 5, 2),
}
-
- def _detect(self, inputs: NDArray[np.uint8] | bytes) -> tuple[NDArray[np.float32], NDArray[np.float32]]:
- return self.model.detect(inputs) # type: ignore
-
- def configure(self, **kwargs: Any) -> None:
- self.model.det_thresh = kwargs.pop("minScore", self.model.det_thresh)
diff --git a/machine-learning/immich_ml/models/facial_recognition/recognition.py b/machine-learning/immich_ml/models/facial_recognition/recognition.py
index c144bd3eaa..2b0575ec38 100644
--- a/machine-learning/immich_ml/models/facial_recognition/recognition.py
+++ b/machine-learning/immich_ml/models/facial_recognition/recognition.py
@@ -4,15 +4,13 @@ from typing import Any
import numpy as np
import onnx
import onnxruntime as ort
-from insightface.model_zoo import ArcFaceONNX
-from insightface.utils.face_align import norm_crop
from numpy.typing import NDArray
from onnx.tools.update_model_dims import update_inputs_outputs_dims
from PIL import Image
from immich_ml.config import log, settings
from immich_ml.models.base import InferenceModel
-from immich_ml.models.transforms import decode_cv2, serialize_np_array
+from immich_ml.models.transforms import decode_pil, normalize, serialize_np_array
from immich_ml.schemas import (
FaceDetectionOutput,
FacialRecognitionOutput,
@@ -22,6 +20,8 @@ from immich_ml.schemas import (
ModelType,
)
+from ._ops import align_face
+
class FaceRecognizer(InferenceModel):
depends = [(ModelType.DETECTION, ModelTask.FACIAL_RECOGNITION)]
@@ -37,10 +37,6 @@ class FaceRecognizer(InferenceModel):
if (not self.batch_size or self.batch_size > 1) and str(session.get_inputs()[0].shape[0]) != "batch":
self._add_batch_axis(self.model_path)
session = self._make_session(self.model_path)
- self.model = ArcFaceONNX(
- self.model_path_for_format(ModelFormat.ONNX).as_posix(),
- session=session,
- )
return session
def _predict(
@@ -48,20 +44,21 @@ class FaceRecognizer(InferenceModel):
) -> FacialRecognitionOutput:
if faces["boxes"].shape[0] == 0:
return []
- inputs = decode_cv2(inputs)
- cropped_faces = self._crop(inputs, faces)
- embeddings = self._predict_batch(cropped_faces)
+ image = np.asarray(decode_pil(inputs), dtype=np.uint8)
+ crops = np.stack([align_face(image, kps).transpose(2, 0, 1) for kps in faces["landmarks"]])
+ embeddings = self._predict_batch(normalize(crops, mean=127.5, std=127.5))
return self.postprocess(faces, embeddings)
- def _predict_batch(self, cropped_faces: list[NDArray[np.uint8]]) -> NDArray[np.float32]:
- if not self.batch_size or len(cropped_faces) <= self.batch_size:
- embeddings: NDArray[np.float32] = self.model.get_feat(cropped_faces)
- return embeddings
+ def _predict_batch(self, crops: NDArray[np.float32]) -> NDArray[np.float32]:
+ input_name = self.session.get_inputs()[0].name
+ if not self.batch_size or crops.shape[0] <= self.batch_size:
+ return self.session.run(None, {input_name: crops})[0]
- batch_embeddings: list[NDArray[np.float32]] = []
- for i in range(0, len(cropped_faces), self.batch_size):
- batch_embeddings.append(self.model.get_feat(cropped_faces[i : i + self.batch_size]))
- return np.concatenate(batch_embeddings, axis=0)
+ batches = [
+ self.session.run(None, {input_name: crops[i : i + self.batch_size]})[0]
+ for i in range(0, crops.shape[0], self.batch_size)
+ ]
+ return np.concatenate(batches, axis=0)
def postprocess(self, faces: FaceDetectionOutput, embeddings: NDArray[np.float32]) -> FacialRecognitionOutput:
return [
@@ -73,9 +70,6 @@ class FaceRecognizer(InferenceModel):
for (x1, y1, x2, y2), embedding, score in zip(faces["boxes"], embeddings, faces["scores"])
]
- def _crop(self, image: NDArray[np.uint8], faces: FaceDetectionOutput) -> list[NDArray[np.uint8]]:
- return [norm_crop(image, landmark) for landmark in faces["landmarks"]]
-
def _add_batch_axis(self, model_path: Path) -> None:
log.debug(f"Adding batch axis to model {model_path}")
proto = onnx.load(model_path)
diff --git a/machine-learning/immich_ml/models/ocr/detection.py b/machine-learning/immich_ml/models/ocr/detection.py
index 0a2cb8ad91..48dd87854b 100644
--- a/machine-learning/immich_ml/models/ocr/detection.py
+++ b/machine-learning/immich_ml/models/ocr/detection.py
@@ -63,7 +63,8 @@ class TextDetector(InferenceModel):
return OrtSession(self.model_path)
# partly adapted from RapidOCR
- def _predict(self, inputs: Image.Image) -> TextDetectionOutput:
+ # TODO: take the options as parameters instead of applying them through `configure`
+ def _predict(self, inputs: Image.Image, **kwargs: Any) -> TextDetectionOutput:
w, h = inputs.size
if w < 32 or h < 32:
return self._empty
diff --git a/machine-learning/immich_ml/models/ocr/recognition.py b/machine-learning/immich_ml/models/ocr/recognition.py
index 94f40c9285..ea7ff565d1 100644
--- a/machine-learning/immich_ml/models/ocr/recognition.py
+++ b/machine-learning/immich_ml/models/ocr/recognition.py
@@ -69,7 +69,8 @@ class TextRecognizer(InferenceModel):
)
return session
- def _predict(self, img: Image.Image, texts: TextDetectionOutput) -> TextRecognitionOutput:
+ # TODO: take the options as parameters instead of applying them through `configure`
+ def _predict(self, img: Image.Image, texts: TextDetectionOutput, **kwargs: Any) -> TextRecognitionOutput:
boxes, box_scores = texts["boxes"], texts["scores"]
if boxes.shape[0] == 0:
return self._empty
diff --git a/machine-learning/immich_ml/models/transforms.py b/machine-learning/immich_ml/models/transforms.py
index 3f9d93bed3..ac220a3812 100644
--- a/machine-learning/immich_ml/models/transforms.py
+++ b/machine-learning/immich_ml/models/transforms.py
@@ -1,6 +1,5 @@
import string
from io import BytesIO
-from typing import IO
import cv2
import numpy as np
@@ -12,11 +11,10 @@ _PIL_RESAMPLING_METHODS = {resampling.name.lower(): resampling for resampling in
_PUNCTUATION_TRANS = str.maketrans("", "", string.punctuation)
-def resize_pil(img: Image.Image, size: int) -> Image.Image:
+def resize_pil(img: Image.Image, size: int, resample: Image.Resampling = Image.Resampling.BICUBIC) -> Image.Image:
if img.width < img.height:
- return img.resize((size, int((img.height / img.width) * size)), resample=Image.Resampling.BICUBIC)
- else:
- return img.resize((int((img.width / img.height) * size), size), resample=Image.Resampling.BICUBIC)
+ return img.resize((size, int((img.height / img.width) * size)), resample=resample)
+ return img.resize((int((img.width / img.height) * size), size), resample=resample)
# https://stackoverflow.com/a/60883103
@@ -36,7 +34,9 @@ def to_numpy(img: Image.Image) -> NDArray[np.float32]:
def normalize(
img: NDArray[np.float32], mean: float | NDArray[np.float32], std: float | NDArray[np.float32]
) -> NDArray[np.float32]:
- return (img - mean) / std
+ img *= 1.0 / std
+ img -= mean / std
+ return img
def get_pil_resampling(resample: str) -> Image.Resampling:
@@ -47,26 +47,21 @@ def pil_to_cv2(image: Image.Image) -> NDArray[np.uint8]:
return cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR) # type: ignore
-def decode_pil(image_bytes: bytes | IO[bytes] | Image.Image) -> Image.Image:
- if isinstance(image_bytes, Image.Image):
- return image_bytes
- image: Image.Image = Image.open(BytesIO(image_bytes) if isinstance(image_bytes, bytes) else image_bytes)
+def decode_pil(image_bytes: bytes | Image.Image | NDArray[np.uint8]) -> Image.Image:
+ image: Image.Image
+ match image_bytes:
+ case Image.Image():
+ image = image_bytes
+ case np.ndarray():
+ image = Image.fromarray(image_bytes)
+ case bytes():
+ image = Image.open(BytesIO(image_bytes))
image.load()
if not image.mode == "RGB":
image = image.convert("RGB")
return image
-def decode_cv2(image_bytes: NDArray[np.uint8] | bytes | Image.Image) -> NDArray[np.uint8]:
- match image_bytes:
- case bytes() | memoryview() | bytearray():
- return pil_to_cv2(decode_pil(image_bytes)) # pillow is much faster than cv2
- case Image.Image():
- return pil_to_cv2(image_bytes)
- case _:
- return image_bytes
-
-
def clean_text(text: str, canonicalize: bool = False) -> str:
text = " ".join(text.split())
if canonicalize:
@@ -78,3 +73,21 @@ def clean_text(text: str, canonicalize: bool = False) -> str:
# TODO: use this in a less invasive way
def serialize_np_array(arr: NDArray[np.float32]) -> str:
return orjson.dumps(arr, option=orjson.OPT_SERIALIZE_NUMPY).decode()
+
+
+def letterbox(image: NDArray[np.uint8] | Image.Image, size: int) -> tuple[NDArray[np.uint8], float]:
+ if isinstance(image, Image.Image):
+ image = np.asarray(image)
+ height, width = image.shape[:2]
+ if height > width:
+ new_height, new_width = size, int(size * width / height)
+ else:
+ new_width, new_height = size, int(size * height / width)
+
+ canvas = np.zeros((size, size, 3), dtype=np.uint8)
+ cv2.resize(image, (new_width, new_height), dst=canvas[:new_height, :new_width])
+ return canvas, new_height / height
+
+
+def ensure_dims(array: NDArray[np.float32], ndim: int) -> NDArray[np.float32]:
+ return array if array.ndim >= ndim else np.expand_dims(array, axis=tuple(range(ndim - array.ndim)))
diff --git a/machine-learning/immich_ml/schemas.py b/machine-learning/immich_ml/schemas.py
index d5304cf763..d5695f5eb3 100644
--- a/machine-learning/immich_ml/schemas.py
+++ b/machine-learning/immich_ml/schemas.py
@@ -14,10 +14,7 @@ class ORJSONResponse(JSONResponse):
class StrEnum(str, Enum):
- value: str
-
- def __str__(self) -> str:
- return self.value
+ __str__ = str.__str__
class BoundingBox(TypedDict):
@@ -63,7 +60,7 @@ ModelIdentity = tuple[ModelType, ModelTask]
class SessionNode(Protocol):
@property
- def name(self) -> str | None: ...
+ def name(self) -> str: ...
@property
def shape(self) -> tuple[int, ...]: ...
diff --git a/machine-learning/immich_ml/sessions/ann/__init__.py b/machine-learning/immich_ml/sessions/ann/__init__.py
index 6f36f675f6..d3279f9a17 100644
--- a/machine-learning/immich_ml/sessions/ann/__init__.py
+++ b/machine-learning/immich_ml/sessions/ann/__init__.py
@@ -37,11 +37,11 @@ class AnnSession:
def get_inputs(self) -> list[SessionNode]:
shapes = self.ann.input_shapes[self.model]
- return [AnnNode(None, s) for s in shapes]
+ return [AnnNode(f"input.{i + 1}", s) for i, s in enumerate(shapes)]
def get_outputs(self) -> list[SessionNode]:
shapes = self.ann.output_shapes[self.model]
- return [AnnNode(None, s) for s in shapes]
+ return [AnnNode(f"output.{i + 1}", s) for i, s in enumerate(shapes)]
def run(
self,
@@ -54,5 +54,5 @@ class AnnSession:
class AnnNode(NamedTuple):
- name: str | None
+ name: str
shape: tuple[int, ...]
diff --git a/machine-learning/immich_ml/sessions/rknn/__init__.py b/machine-learning/immich_ml/sessions/rknn/__init__.py
index e388e4febc..90f2e63ed3 100644
--- a/machine-learning/immich_ml/sessions/rknn/__init__.py
+++ b/machine-learning/immich_ml/sessions/rknn/__init__.py
@@ -69,7 +69,7 @@ class RknnSession:
class RknnNode(NamedTuple):
- name: str | None
+ name: str
shape: tuple[int, ...]
diff --git a/machine-learning/mise.lock b/machine-learning/mise.lock
index e366eaa4be..560a5bcbd3 100644
--- a/machine-learning/mise.lock
+++ b/machine-learning/mise.lock
@@ -5,38 +5,38 @@ version = "3.11.15"
backend = "core:python"
[tools.python."platforms.linux-arm64"]
-checksum = "sha256:cbce0660e88cd9c56be7aaf2a2df92bea51f359388a521838b6b01817d728df0"
-url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260610/cpython-3.11.15+20260610-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz"
+checksum = "sha256:9ac18c9a761e91e6c6452bc0ef0082922a00a3fdec734555635d57c3169309b7"
+url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-aarch64-unknown-linux-gnu-install_only_stripped.tar.gz"
provenance = "github-attestations"
[tools.python."platforms.linux-arm64-musl"]
-checksum = "sha256:a55ea44225ee3741d4157c383f3d5c3e8eee5f9665e2ea069233486b4275d928"
-url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260610/cpython-3.11.15+20260610-aarch64-unknown-linux-musl-install_only_stripped.tar.gz"
+checksum = "sha256:bcd414f2e9d8cc5d4ac7fab2c8f912e30379c150fa6b94da19d64daf85cfc5d4"
+url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-aarch64-unknown-linux-musl-install_only_stripped.tar.gz"
provenance = "github-attestations"
[tools.python."platforms.linux-x64"]
-checksum = "sha256:67a5b22f796e96f4d7fa628f95866d5fd1d524d0588f74e4601facd82b66792b"
-url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260610/cpython-3.11.15+20260610-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz"
+checksum = "sha256:0604cd029b142dc223e131f17f5941c0c8d2d5074997c8178b515b19eea2a6c2"
+url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz"
provenance = "github-attestations"
[tools.python."platforms.linux-x64-musl"]
-checksum = "sha256:5a8544aa4303da3ca4b7505c98dd8453b671157039d25cd551e55abea0f83a60"
-url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260610/cpython-3.11.15+20260610-x86_64-unknown-linux-musl-install_only_stripped.tar.gz"
+checksum = "sha256:45bffdb320cf4a2c2dbf183b634aeb7e28f9cb0646f715b2f4117c11084d839a"
+url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-x86_64-unknown-linux-musl-install_only_stripped.tar.gz"
provenance = "github-attestations"
[tools.python."platforms.macos-arm64"]
-checksum = "sha256:8c56f1f59142e0f9f8861ad897bdfd97fd84403afa7b3d8b0f33b208ec471355"
-url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260610/cpython-3.11.15+20260610-aarch64-apple-darwin-install_only_stripped.tar.gz"
+checksum = "sha256:2318799eaf104f8a29bc09a93b0851b05dbbcb4ce9a5f045ddea169c0c7ff3a5"
+url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-aarch64-apple-darwin-install_only_stripped.tar.gz"
provenance = "github-attestations"
[tools.python."platforms.macos-x64"]
-checksum = "sha256:8cd3878c656ba1698314cbcb65f78df4c37b7c8eabff958558115c6db11adb3d"
-url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260610/cpython-3.11.15+20260610-x86_64-apple-darwin-install_only_stripped.tar.gz"
+checksum = "sha256:4925e5aaa9bc77c85302d350b36c1d9def2002996a6bcfa55c88ba6eb318de29"
+url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-x86_64-apple-darwin-install_only_stripped.tar.gz"
provenance = "github-attestations"
[tools.python."platforms.windows-x64"]
-checksum = "sha256:f081a733b4e7ba0e5e5e12d533b3c795dbef3ecbebf92f0b4202e5329bf7c8ab"
-url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260610/cpython-3.11.15+20260610-x86_64-pc-windows-msvc-install_only_stripped.tar.gz"
+checksum = "sha256:6589ca6d63f520bec4096d62b3ab91da3d0a80b16b594c99a6b677e335814683"
+url = "https://github.com/astral-sh/python-build-standalone/releases/download/20260623/cpython-3.11.15+20260623-x86_64-pc-windows-msvc-install_only_stripped.tar.gz"
provenance = "github-attestations"
[[tools.uv]]
@@ -46,27 +46,34 @@ backend = "aqua:astral-sh/uv"
[tools.uv."platforms.linux-arm64"]
checksum = "sha256:23ea21a05c62c4c307ce691f29bff2f15c94c4f07f2b83d9b356f0664bc8b3a2"
url = "https://github.com/astral-sh/uv/releases/download/0.8.15/uv-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/uv/releases/assets/289235419"
[tools.uv."platforms.linux-arm64-musl"]
checksum = "sha256:23ea21a05c62c4c307ce691f29bff2f15c94c4f07f2b83d9b356f0664bc8b3a2"
url = "https://github.com/astral-sh/uv/releases/download/0.8.15/uv-aarch64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/uv/releases/assets/289235419"
[tools.uv."platforms.linux-x64"]
checksum = "sha256:d0fec58f3124e05e0a1af0f6541abfce4333253cdaf23c7b6bb2e6128bf138ea"
url = "https://github.com/astral-sh/uv/releases/download/0.8.15/uv-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/uv/releases/assets/289235475"
[tools.uv."platforms.linux-x64-musl"]
checksum = "sha256:d0fec58f3124e05e0a1af0f6541abfce4333253cdaf23c7b6bb2e6128bf138ea"
url = "https://github.com/astral-sh/uv/releases/download/0.8.15/uv-x86_64-unknown-linux-musl.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/uv/releases/assets/289235475"
[tools.uv."platforms.macos-arm64"]
checksum = "sha256:103367962c5cb00bf7370d84cbaa3fec5a9807be9cc833ea9d8eea400c119fa2"
url = "https://github.com/astral-sh/uv/releases/download/0.8.15/uv-aarch64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/uv/releases/assets/289235412"
[tools.uv."platforms.macos-x64"]
checksum = "sha256:2bbef70982e97dfc36454de173f35ec1a5e83ae11e3885df6a50db3fd76171cb"
url = "https://github.com/astral-sh/uv/releases/download/0.8.15/uv-x86_64-apple-darwin.tar.gz"
+url_api = "https://api.github.com/repos/astral-sh/uv/releases/assets/289235464"
[tools.uv."platforms.windows-x64"]
checksum = "sha256:459d95892a5cc5c21779532f4f41b9238594b79e312a5142da2148ecfa10e705"
url = "https://github.com/astral-sh/uv/releases/download/0.8.15/uv-x86_64-pc-windows-msvc.zip"
+url_api = "https://api.github.com/repos/astral-sh/uv/releases/assets/289235467"
diff --git a/machine-learning/pyproject.toml b/machine-learning/pyproject.toml
index 24647147a2..e95ef7afef 100644
--- a/machine-learning/pyproject.toml
+++ b/machine-learning/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "immich-ml"
-version = "3.0.0rc4"
+version = "3.1.0"
description = ""
authors = [{ name = "Hau Tran", email = "alex.tran1502@gmail.com" }]
requires-python = ">=3.11,<4.0"
@@ -10,8 +10,8 @@ dependencies = [
"fastapi>=0.95.2,<1.0",
"gunicorn>=21.1.0",
"huggingface-hub>=1.0,<2.0",
- "insightface>=0.7.3,<2.0",
"numpy>=2.4.0,<3.0",
+ "onnx>=1.22.0",
"opencv-python-headless>=4.7.0.72,<5.0",
"orjson>=3.9.5",
"pillow>=12.2,<13",
diff --git a/machine-learning/test_main.py b/machine-learning/test_main.py
index be574c6397..567c6ab176 100644
--- a/machine-learning/test_main.py
+++ b/machine-learning/test_main.py
@@ -7,7 +7,6 @@ from types import SimpleNamespace
from typing import Any, Callable
from unittest import mock
-import cv2
import numpy as np
import onnxruntime as ort
import orjson
@@ -516,7 +515,7 @@ class TestAnnSession:
inputs = session.get_inputs()
assert len(inputs) == 1
- assert inputs[0].name is None
+ assert inputs[0].name == "input.1"
assert inputs[0].shape == (1, 3, 224, 224)
def test_get_outputs(self, ann_session: mock.Mock) -> None:
@@ -527,7 +526,7 @@ class TestAnnSession:
outputs = session.get_outputs()
assert len(outputs) == 1
- assert outputs[0].name is None
+ assert outputs[0].name == "output.1"
assert outputs[0].shape == (1, 3, 224, 224)
def test_run(self, ann_session: mock.Mock, mocker: MockerFixture) -> None:
@@ -781,89 +780,189 @@ class TestCLIP:
assert np.allclose(tokens["attention_mask"], np.array([mock_attention_mask], dtype=np.int32), atol=0)
+def make_scrfd_heads(detections: list[tuple[int, int, float]]) -> list[np.ndarray]:
+ """Build the 9 head tensors a SCRFD keypoint model emits at 640x640.
+
+ `detections` is a list of (cell_x, cell_y, score) placed on the stride-8 level.
+ Distances and keypoint offsets are fixed so the decoded geometry is known by
+ hand rather than derived from the code under test:
+ box = [cx - 1*8, cy - 2*8, cx + 3*8, cy + 4*8]
+ kps = [cx, cy] + [0, 1, 2, ... 9] * 8, reshaped to 5 points
+ """
+ heads: list[np.ndarray] = []
+ counts = [(640 // stride) ** 2 * 2 for stride in (8, 16, 32)]
+ for channels in (1, 4, 10):
+ for n in counts:
+ heads.append(np.zeros((n, channels), dtype=np.float32))
+ for cell_x, cell_y, score in detections:
+ i = 2 * (cell_y * 80 + cell_x) # anchor-major, 2 anchors per cell
+ heads[0][i] = score
+ heads[3][i] = [1, 2, 3, 4]
+ heads[6][i] = np.arange(10)
+ return heads
+
+
+def expected_box(cell_x: int, cell_y: int) -> list[float]:
+ cx, cy = cell_x * 8, cell_y * 8
+ return [cx - 8, cy - 16, cx + 24, cy + 32]
+
+
+def expected_landmarks(cell_x: int, cell_y: int) -> np.ndarray:
+ cx, cy = cell_x * 8, cell_y * 8
+ return (np.tile([cx, cy], 5) + np.arange(10) * 8).reshape(5, 2).astype(np.float32)
+
+
+@pytest.fixture
+def batch_axis(mocker: MockerFixture) -> SimpleNamespace:
+ """Patches for the `_add_batch_axis` path: the onnx module it rewrites the model
+ through, and the download it would otherwise trigger on load."""
+ mocker.patch("immich_ml.models.base.InferenceModel.download")
+ return SimpleNamespace(
+ onnx=mocker.patch("immich_ml.models.facial_recognition.recognition.onnx", autospec=True),
+ update_dims=mocker.patch(
+ "immich_ml.models.facial_recognition.recognition.update_inputs_outputs_dims", autospec=True
+ ),
+ )
+
+
class TestFaceRecognition:
- def test_set_min_score(self, snapshot_download: mock.Mock, ort_session: mock.Mock, path: mock.Mock) -> None:
- path.return_value.__truediv__.return_value.__truediv__.return_value.suffix = ".onnx"
-
- face_detector = FaceDetector("buffalo_s", min_score=0.5, cache_dir="test_cache")
- face_detector.load()
-
- assert face_detector.min_score == 0.5
- assert face_detector.model.det_thresh == 0.5
-
- def test_detection(self, cv_image: cv2.Mat, mocker: MockerFixture) -> None:
+ def test_detection(self, stub_session: Callable[..., mock.Mock], mocker: MockerFixture) -> None:
mocker.patch.object(FaceDetector, "load")
- face_detector = FaceDetector("buffalo_s", min_score=0.0, cache_dir="test_cache")
+ face_detector = FaceDetector("buffalo_s", cache_dir="test_cache")
- det_model = mock.Mock()
- num_faces = 2
- bbox = np.random.rand(num_faces, 4).astype(np.float32)
- scores = np.array([[0.67]] * num_faces).astype(np.float32)
- kpss = np.random.rand(num_faces, 5, 2).astype(np.float32)
- det_model.detect.return_value = (np.concatenate([bbox, scores], axis=-1), kpss)
- face_detector.model = det_model
+ session = stub_session((1, 3, 640, 640), outputs=make_scrfd_heads([(10, 10, 0.9), (50, 50, 0.8)]))
+ face_detector.session = session
- faces = face_detector.predict(cv_image)
+ faces = face_detector.predict(Image.new("RGB", (640, 640)), minScore=0.7)
assert isinstance(faces, dict)
- assert isinstance(faces.get("boxes", None), np.ndarray)
- assert isinstance(faces.get("landmarks", None), np.ndarray)
- assert isinstance(faces.get("scores", None), np.ndarray)
- assert np.equal(faces["boxes"], bbox.round()).all()
- assert np.equal(faces["landmarks"], kpss).all()
- assert np.equal(faces["scores"], scores).all()
- det_model.detect.assert_called_once()
+ assert set(faces) == {"boxes", "scores", "landmarks"}
+ # NMS returns highest score first
+ assert faces["boxes"].tolist() == [expected_box(10, 10), expected_box(50, 50)]
+ assert np.allclose(faces["scores"], [0.9, 0.8])
+ assert faces["landmarks"].shape == (2, 5, 2)
+ assert np.allclose(faces["landmarks"][0], expected_landmarks(10, 10))
+ assert np.allclose(faces["landmarks"][1], expected_landmarks(50, 50))
- def test_recognition(self, cv_image: cv2.Mat, mocker: MockerFixture) -> None:
+ def test_detection_applies_min_score_per_request(
+ self, stub_session: Callable[..., mock.Mock], mocker: MockerFixture
+ ) -> None:
+ mocker.patch.object(FaceDetector, "load")
+ face_detector = FaceDetector("buffalo_s", cache_dir="test_cache")
+
+ session = stub_session((1, 3, 640, 640), outputs=make_scrfd_heads([(10, 10, 0.9), (50, 50, 0.5)]))
+ face_detector.session = session
+
+ # the threshold is a request parameter, so the same loaded model must honour both
+ assert face_detector.predict(Image.new("RGB", (640, 640)), minScore=0.7)["boxes"].shape[0] == 1
+ assert face_detector.predict(Image.new("RGB", (640, 640)), minScore=0.4)["boxes"].shape[0] == 2
+
+ def test_detection_scales_boxes_back_to_the_original_image(
+ self, stub_session: Callable[..., mock.Mock], mocker: MockerFixture
+ ) -> None:
+ mocker.patch.object(FaceDetector, "load")
+ face_detector = FaceDetector("buffalo_s", cache_dir="test_cache")
+
+ session = stub_session((1, 3, 640, 640), outputs=make_scrfd_heads([(10, 10, 0.9)]))
+ face_detector.session = session
+
+ # a 320x320 image is letterboxed up to 640, so coordinates come back halved
+ faces = face_detector.predict(Image.new("RGB", (320, 320)), minScore=0.7)
+
+ assert faces["boxes"].tolist() == [[v / 2 for v in expected_box(10, 10)]]
+ assert np.allclose(faces["landmarks"][0], expected_landmarks(10, 10) / 2)
+
+ def test_recognition(self, stub_session: Callable[..., mock.Mock], mocker: MockerFixture) -> None:
mocker.patch.object(FaceRecognizer, "load")
mocker.patch(
"immich_ml.models.facial_recognition.recognition.ort.get_available_providers",
return_value=["CPUExecutionProvider"],
)
- face_recognizer = FaceRecognizer("buffalo_s", min_score=0.0, cache_dir="test_cache")
+ face_recognizer = FaceRecognizer("buffalo_s", cache_dir="test_cache")
+ # a uniform grey image whose crops land wholly inside it, so every sampled
+ # pixel is 128 and the normalised value the session receives is exact
+ image = Image.new("RGB", (600, 800), (128, 128, 128))
num_faces = 2
+ arcface_dst = np.array(
+ [[38.2946, 51.6963], [73.5318, 51.5014], [56.0252, 71.7366], [41.5493, 92.3655], [70.7299, 92.2041]],
+ dtype=np.float32,
+ )
+ kpss = np.stack([arcface_dst * 2 + [200, 300], arcface_dst * 2 + [220, 320]]).astype(np.float32)
bbox = np.random.rand(num_faces, 4).astype(np.float32)
scores = np.array([0.67] * num_faces).astype(np.float32)
- kpss = np.random.rand(num_faces, 5, 2).astype(np.float32)
- faces = {"boxes": bbox, "landmarks": kpss, "scores": scores}
+ embeddings = np.random.rand(num_faces, 512).astype(np.float32)
- rec_model = mock.Mock()
- embedding = np.random.rand(num_faces, 512).astype(np.float32)
- rec_model.get_feat.return_value = embedding
- face_recognizer.model = rec_model
+ session = stub_session(("batch", 3, 112, 112), outputs=[embeddings])
+ face_recognizer.session = session
- faces = face_recognizer.predict(cv_image, faces)
+ faces = face_recognizer.predict(image, {"boxes": bbox, "landmarks": kpss, "scores": scores})
assert isinstance(faces, list)
assert len(faces) == num_faces
for face in faces:
- assert isinstance(face.get("boundingBox"), dict)
assert set(face["boundingBox"]) == {"x1", "y1", "x2", "y2"}
assert all(isinstance(val, np.float32) for val in face["boundingBox"].values())
- embedding_str = face.get("embedding")
- assert isinstance(embedding_str, str)
- embedding = orjson.loads(embedding_str)
+ embedding = orjson.loads(face["embedding"])
assert isinstance(embedding, list)
assert len(embedding) == 512
assert isinstance(face.get("score", None), np.float32)
- rec_model.get_feat.assert_called_once()
- call_args = rec_model.get_feat.call_args_list[0].args
- assert len(call_args) == 1
- assert isinstance(call_args[0], list)
- assert isinstance(call_args[0][0], np.ndarray)
- assert call_args[0][0].shape == (112, 112, 3)
+ session.run.assert_called_once()
+ crops = session.run.call_args.args[1]["input.1"]
+ assert crops.shape == (num_faces, 3, 112, 112)
+ assert crops.dtype == np.float32
+ # mean/std 127.5, not raw 0-255. atol is loose enough for the float32 cancellation
+ # in normalize's scale-then-subtract, but still rejects a wrong mean or std
+ assert np.allclose(crops, (128 - 127.5) / 127.5, atol=1e-6)
+
+ def test_recognition_returns_early_without_faces(self, pil_image: Image.Image, mocker: MockerFixture) -> None:
+ mocker.patch.object(FaceRecognizer, "load")
+ mocker.patch(
+ "immich_ml.models.facial_recognition.recognition.ort.get_available_providers",
+ return_value=["CPUExecutionProvider"],
+ )
+ face_recognizer = FaceRecognizer("buffalo_s", cache_dir="test_cache")
+ session = mock.Mock()
+ face_recognizer.session = session
+
+ empty = {
+ "boxes": np.empty((0, 4), dtype=np.float32),
+ "landmarks": np.empty((0, 5, 2), dtype=np.float32),
+ "scores": np.empty(0, dtype=np.float32),
+ }
+
+ assert face_recognizer.predict(pil_image, empty) == []
+ session.run.assert_not_called()
+
+ def test_recognition_batches_when_batch_size_is_set(
+ self, pil_image: Image.Image, stub_session: Callable[..., mock.Mock], mocker: MockerFixture
+ ) -> None:
+ mocker.patch.object(FaceRecognizer, "load")
+ mocker.patch(
+ "immich_ml.models.facial_recognition.recognition.ort.get_available_providers",
+ return_value=["CPUExecutionProvider"],
+ )
+ face_recognizer = FaceRecognizer("buffalo_s", cache_dir="test_cache")
+ face_recognizer.batch_size = 2
+
+ num_faces = 5
+ session = stub_session((1, 3, 112, 112))
+ session.run.side_effect = lambda _, feed: [np.zeros((feed["input.1"].shape[0], 512), dtype=np.float32)]
+ face_recognizer.session = session
+
+ faces = {
+ "boxes": np.random.rand(num_faces, 4).astype(np.float32),
+ "landmarks": (np.random.rand(num_faces, 5, 2) * 100).astype(np.float32),
+ "scores": np.array([0.67] * num_faces, dtype=np.float32),
+ }
+ assert len(face_recognizer.predict(pil_image, faces)) == num_faces
+ assert session.run.call_count == 3 # 2 + 2 + 1
+ assert [c.args[1]["input.1"].shape[0] for c in session.run.call_args_list] == [2, 2, 1]
def test_recognition_adds_batch_axis_for_ort(
- self, ort_session: mock.Mock, path: mock.Mock, mocker: MockerFixture
+ self, batch_axis: SimpleNamespace, ort_session: mock.Mock, path: mock.Mock, mocker: MockerFixture
) -> None:
- onnx = mocker.patch("immich_ml.models.facial_recognition.recognition.onnx", autospec=True)
- update_dims = mocker.patch(
- "immich_ml.models.facial_recognition.recognition.update_inputs_outputs_dims", autospec=True
- )
- mocker.patch("immich_ml.models.base.InferenceModel.download")
- mocker.patch("immich_ml.models.facial_recognition.recognition.ArcFaceONNX")
mocker.patch(
"immich_ml.models.facial_recognition.recognition.ort.get_available_providers",
return_value=["CPUExecutionProvider"],
@@ -884,24 +983,20 @@ class TestFaceRecognition:
output_dims.type.tensor_type.shape.dim = [SimpleNamespace(dim_value=size) for size in [1, 800]]
proto.graph.output = [output_dims]
- onnx.load.return_value = proto
+ batch_axis.onnx.load.return_value = proto
face_recognizer = FaceRecognizer("buffalo_s", cache_dir=path)
face_recognizer.load()
assert face_recognizer.batch_size is None
- update_dims.assert_called_once_with(proto, {"input.1": ["batch", 3, 224, 224]}, {"output.1": ["batch", 800]})
- onnx.save.assert_called_once_with(update_dims.return_value, face_recognizer.model_path)
+ batch_axis.update_dims.assert_called_once_with(
+ proto, {"input.1": ["batch", 3, 224, 224]}, {"output.1": ["batch", 800]}
+ )
+ batch_axis.onnx.save.assert_called_once_with(batch_axis.update_dims.return_value, face_recognizer.model_path)
def test_recognition_does_not_add_batch_axis_if_exists(
- self, ort_session: mock.Mock, path: mock.Mock, mocker: MockerFixture
+ self, batch_axis: SimpleNamespace, ort_session: mock.Mock, path: mock.Mock, mocker: MockerFixture
) -> None:
- onnx = mocker.patch("immich_ml.models.facial_recognition.recognition.onnx", autospec=True)
- update_dims = mocker.patch(
- "immich_ml.models.facial_recognition.recognition.update_inputs_outputs_dims", autospec=True
- )
- mocker.patch("immich_ml.models.base.InferenceModel.download")
- mocker.patch("immich_ml.models.facial_recognition.recognition.ArcFaceONNX")
mocker.patch(
"immich_ml.models.facial_recognition.recognition.ort.get_available_providers",
return_value=["CPUExecutionProvider"],
@@ -916,88 +1011,53 @@ class TestFaceRecognition:
face_recognizer = FaceRecognizer("buffalo_s", cache_dir=path)
face_recognizer.load()
+ # batching is available here, so the axis is only skipped because it already exists
assert face_recognizer.batch_size is None
- update_dims.assert_not_called()
- onnx.load.assert_not_called()
- onnx.save.assert_not_called()
+ batch_axis.update_dims.assert_not_called()
+ batch_axis.onnx.load.assert_not_called()
+ batch_axis.onnx.save.assert_not_called()
- def test_recognition_does_not_add_batch_axis_for_armnn(
- self, ann_session: mock.Mock, path: mock.Mock, mocker: MockerFixture
+ @pytest.mark.parametrize(
+ ("session_fixture", "suffix", "model_kwargs", "available_providers"),
+ [
+ pytest.param("ann_session", ".armnn", {"model_format": ModelFormat.ARMNN}, None, id="armnn"),
+ pytest.param(
+ "ort_session", ".onnx", {}, ["OpenVINOExecutionProvider", "CPUExecutionProvider"], id="openvino"
+ ),
+ pytest.param(
+ "ort_session", ".onnx", {}, ["MIGraphXExecutionProvider", "CPUExecutionProvider"], id="migraphx"
+ ),
+ ],
+ )
+ def test_recognition_does_not_add_batch_axis_when_batching_is_unsupported(
+ self,
+ request: pytest.FixtureRequest,
+ batch_axis: SimpleNamespace,
+ path: mock.Mock,
+ ort_pybind: mock.Mock,
+ mocker: MockerFixture,
+ session_fixture: str,
+ suffix: str,
+ model_kwargs: dict[str, Any],
+ available_providers: list[str] | None,
) -> None:
- onnx = mocker.patch("immich_ml.models.facial_recognition.recognition.onnx", autospec=True)
- update_dims = mocker.patch(
- "immich_ml.models.facial_recognition.recognition.update_inputs_outputs_dims", autospec=True
- )
- mocker.patch("immich_ml.models.base.InferenceModel.download")
- mocker.patch("immich_ml.models.facial_recognition.recognition.ArcFaceONNX")
- path.return_value.__truediv__.return_value.__truediv__.return_value.suffix = ".armnn"
-
- inputs = [SimpleNamespace(name="input.1", shape=("batch", 3, 224, 224))]
- outputs = [SimpleNamespace(name="output.1", shape=("batch", 800))]
- ann_session.return_value.get_inputs.return_value = inputs
- ann_session.return_value.get_outputs.return_value = outputs
-
- face_recognizer = FaceRecognizer("buffalo_s", model_format=ModelFormat.ARMNN, cache_dir=path)
- face_recognizer.load()
-
- assert face_recognizer.batch_size == 1
- update_dims.assert_not_called()
- onnx.load.assert_not_called()
- onnx.save.assert_not_called()
-
- def test_recognition_does_not_add_batch_axis_for_openvino(
- self, ort_session: mock.Mock, path: mock.Mock, mocker: MockerFixture
- ) -> None:
- onnx = mocker.patch("immich_ml.models.facial_recognition.recognition.onnx", autospec=True)
- update_dims = mocker.patch(
- "immich_ml.models.facial_recognition.recognition.update_inputs_outputs_dims", autospec=True
- )
- mocker.patch("immich_ml.models.base.InferenceModel.download")
- mocker.patch("immich_ml.models.facial_recognition.recognition.ArcFaceONNX")
- path.return_value.__truediv__.return_value.__truediv__.return_value.suffix = ".onnx"
-
- inputs = [SimpleNamespace(name="input.1", shape=("batch", 3, 224, 224))]
- outputs = [SimpleNamespace(name="output.1", shape=("batch", 800))]
- ort_session.return_value.get_inputs.return_value = inputs
- ort_session.return_value.get_outputs.return_value = outputs
-
- face_recognizer = FaceRecognizer(
- "buffalo_s", model_format=ModelFormat.ARMNN, cache_dir=path, providers=["OpenVINOExecutionProvider"]
- )
- face_recognizer.load()
-
- assert face_recognizer.batch_size == 1
- update_dims.assert_not_called()
- onnx.load.assert_not_called()
- onnx.save.assert_not_called()
-
- def test_recognition_does_not_add_batch_axis_for_migraphx(
- self, ort_session: mock.Mock, path: mock.Mock, mocker: MockerFixture
- ) -> None:
- onnx = mocker.patch("immich_ml.models.facial_recognition.recognition.onnx", autospec=True)
- update_dims = mocker.patch(
- "immich_ml.models.facial_recognition.recognition.update_inputs_outputs_dims", autospec=True
- )
- mocker.patch("immich_ml.models.base.InferenceModel.download")
- mocker.patch("immich_ml.models.facial_recognition.recognition.ArcFaceONNX")
+ session = request.getfixturevalue(session_fixture)
+ ort_pybind.get_available_openvino_device_ids.return_value = ["CPU"]
mocker.patch(
"immich_ml.models.facial_recognition.recognition.ort.get_available_providers",
- return_value=["MIGraphXExecutionProvider", "CPUExecutionProvider"],
+ return_value=available_providers,
)
- path.return_value.__truediv__.return_value.__truediv__.return_value.suffix = ".onnx"
+ path.return_value.__truediv__.return_value.__truediv__.return_value.suffix = suffix
+ session.return_value.get_inputs.return_value = [SimpleNamespace(name="input.1", shape=(1, 3, 224, 224))]
+ session.return_value.get_outputs.return_value = [SimpleNamespace(name="output.1", shape=(1, 800))]
- inputs = [SimpleNamespace(name="input.1", shape=(1, 3, 224, 224))]
- outputs = [SimpleNamespace(name="output.1", shape=(1, 800))]
- ort_session.return_value.get_inputs.return_value = inputs
- ort_session.return_value.get_outputs.return_value = outputs
-
- face_recognizer = FaceRecognizer("buffalo_s", cache_dir=path)
+ face_recognizer = FaceRecognizer("buffalo_s", cache_dir=path, **model_kwargs)
face_recognizer.load()
assert face_recognizer.batch_size == 1
- update_dims.assert_not_called()
- onnx.load.assert_not_called()
- onnx.save.assert_not_called()
+ batch_axis.update_dims.assert_not_called()
+ batch_axis.onnx.load.assert_not_called()
+ batch_axis.onnx.save.assert_not_called()
def test_set_custom_max_batch_size(self, mocker: MockerFixture) -> None:
mocker.patch.object(settings, "max_batch_size", MaxBatchSize(facial_recognition=2))
@@ -1045,10 +1105,10 @@ class TestOcr:
rapid_recognizer.assert_called_once_with(
OcrOptions(
- session=ort_session.return_value,
- rec_batch_num=6,
- rec_img_shape=(3, 48, 320),
- model_root_dir=text_recognizer.cache_dir,
+ session=ort_session.return_value,
+ rec_batch_num=6,
+ rec_img_shape=(3, 48, 320),
+ model_root_dir=text_recognizer.cache_dir,
)
)
@@ -1063,10 +1123,10 @@ class TestOcr:
rapid_recognizer.assert_called_once_with(
OcrOptions(
- session=ort_session.return_value,
- rec_batch_num=4,
- rec_img_shape=(3, 48, 320),
- model_root_dir=text_recognizer.cache_dir,
+ session=ort_session.return_value,
+ rec_batch_num=4,
+ rec_img_shape=(3, 48, 320),
+ model_root_dir=text_recognizer.cache_dir,
)
)
@@ -1083,10 +1143,10 @@ class TestOcr:
rapid_recognizer.assert_called_once_with(
OcrOptions(
- session=ort_session.return_value,
- rec_batch_num=6,
- rec_img_shape=(3, 48, 320),
- model_root_dir=text_recognizer.cache_dir,
+ session=ort_session.return_value,
+ rec_batch_num=6,
+ rec_img_shape=(3, 48, 320),
+ model_root_dir=text_recognizer.cache_dir,
)
)
diff --git a/machine-learning/uv.lock b/machine-learning/uv.lock
index 3ecfea934c..fa92147445 100644
--- a/machine-learning/uv.lock
+++ b/machine-learning/uv.lock
@@ -25,23 +25,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/37/d7/15d67e05b235d1ed8c3ce61688fe4d84130e72af1657acadfaac3479f4cf/aiocache-0.12.3-py2.py3-none-any.whl", hash = "sha256:889086fc24710f431937b87ad3720a289f7fc31c4fd8b68e9f918b9bacd8270d", size = 28199, upload-time = "2024-09-25T13:20:22.688Z" },
]
-[[package]]
-name = "albumentations"
-version = "1.3.1"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "numpy" },
- { name = "opencv-python-headless" },
- { name = "pyyaml" },
- { name = "qudida" },
- { name = "scikit-image" },
- { name = "scipy" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/14/d6/8dd5b690d28a332a0b2c3179a345808b5d4c7ad5ddc079b7e116098dff35/albumentations-1.3.1.tar.gz", hash = "sha256:a6a38388fe546c568071e8c82f414498e86c9ed03c08b58e7a88b31cf7a244c6", size = 176371, upload-time = "2023-06-10T07:44:32.36Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/9b/f6/c486cedb4f75147232f32ec4c97026714cfef7c7e247a1f0427bc5489f66/albumentations-1.3.1-py3-none-any.whl", hash = "sha256:6b641d13733181d9ecdc29550e6ad580d1bfa9d25e2213a66940062f25e291bd", size = 125706, upload-time = "2023-06-10T07:44:30.373Z" },
-]
-
[[package]]
name = "annotated-doc"
version = "0.0.4"
@@ -326,88 +309,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/31/28/d28211d29bcc3620b1fece85a65ce5bb22f18670a03cd28ea4b75ede270c/configargparse-1.7.1-py3-none-any.whl", hash = "sha256:8b586a31f9d873abd1ca527ffbe58863c99f36d896e2829779803125e83be4b6", size = 25607, upload-time = "2025-05-23T14:26:15.923Z" },
]
-[[package]]
-name = "contourpy"
-version = "1.3.3"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "numpy" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/91/2e/c4390a31919d8a78b90e8ecf87cd4b4c4f05a5b48d05ec17db8e5404c6f4/contourpy-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:709a48ef9a690e1343202916450bc48b9e51c049b089c7f79a267b46cffcdaa1", size = 288773, upload-time = "2025-07-26T12:01:02.277Z" },
- { url = "https://files.pythonhosted.org/packages/0d/44/c4b0b6095fef4dc9c420e041799591e3b63e9619e3044f7f4f6c21c0ab24/contourpy-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:23416f38bfd74d5d28ab8429cc4d63fa67d5068bd711a85edb1c3fb0c3e2f381", size = 270149, upload-time = "2025-07-26T12:01:04.072Z" },
- { url = "https://files.pythonhosted.org/packages/30/2e/dd4ced42fefac8470661d7cb7e264808425e6c5d56d175291e93890cce09/contourpy-1.3.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:929ddf8c4c7f348e4c0a5a3a714b5c8542ffaa8c22954862a46ca1813b667ee7", size = 329222, upload-time = "2025-07-26T12:01:05.688Z" },
- { url = "https://files.pythonhosted.org/packages/f2/74/cc6ec2548e3d276c71389ea4802a774b7aa3558223b7bade3f25787fafc2/contourpy-1.3.3-cp311-cp311-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9e999574eddae35f1312c2b4b717b7885d4edd6cb46700e04f7f02db454e67c1", size = 377234, upload-time = "2025-07-26T12:01:07.054Z" },
- { url = "https://files.pythonhosted.org/packages/03/b3/64ef723029f917410f75c09da54254c5f9ea90ef89b143ccadb09df14c15/contourpy-1.3.3-cp311-cp311-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf67e0e3f482cb69779dd3061b534eb35ac9b17f163d851e2a547d56dba0a3a", size = 380555, upload-time = "2025-07-26T12:01:08.801Z" },
- { url = "https://files.pythonhosted.org/packages/5f/4b/6157f24ca425b89fe2eb7e7be642375711ab671135be21e6faa100f7448c/contourpy-1.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51e79c1f7470158e838808d4a996fa9bac72c498e93d8ebe5119bc1e6becb0db", size = 355238, upload-time = "2025-07-26T12:01:10.319Z" },
- { url = "https://files.pythonhosted.org/packages/98/56/f914f0dd678480708a04cfd2206e7c382533249bc5001eb9f58aa693e200/contourpy-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:598c3aaece21c503615fd59c92a3598b428b2f01bfb4b8ca9c4edeecc2438620", size = 1326218, upload-time = "2025-07-26T12:01:12.659Z" },
- { url = "https://files.pythonhosted.org/packages/fb/d7/4a972334a0c971acd5172389671113ae82aa7527073980c38d5868ff1161/contourpy-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:322ab1c99b008dad206d406bb61d014cf0174df491ae9d9d0fac6a6fda4f977f", size = 1392867, upload-time = "2025-07-26T12:01:15.533Z" },
- { url = "https://files.pythonhosted.org/packages/75/3e/f2cc6cd56dc8cff46b1a56232eabc6feea52720083ea71ab15523daab796/contourpy-1.3.3-cp311-cp311-win32.whl", hash = "sha256:fd907ae12cd483cd83e414b12941c632a969171bf90fc937d0c9f268a31cafff", size = 183677, upload-time = "2025-07-26T12:01:17.088Z" },
- { url = "https://files.pythonhosted.org/packages/98/4b/9bd370b004b5c9d8045c6c33cf65bae018b27aca550a3f657cdc99acdbd8/contourpy-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:3519428f6be58431c56581f1694ba8e50626f2dd550af225f82fb5f5814d2a42", size = 225234, upload-time = "2025-07-26T12:01:18.256Z" },
- { url = "https://files.pythonhosted.org/packages/d9/b6/71771e02c2e004450c12b1120a5f488cad2e4d5b590b1af8bad060360fe4/contourpy-1.3.3-cp311-cp311-win_arm64.whl", hash = "sha256:15ff10bfada4bf92ec8b31c62bf7c1834c244019b4a33095a68000d7075df470", size = 193123, upload-time = "2025-07-26T12:01:19.848Z" },
- { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419, upload-time = "2025-07-26T12:01:21.16Z" },
- { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979, upload-time = "2025-07-26T12:01:22.448Z" },
- { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653, upload-time = "2025-07-26T12:01:24.155Z" },
- { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536, upload-time = "2025-07-26T12:01:25.91Z" },
- { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397, upload-time = "2025-07-26T12:01:27.152Z" },
- { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601, upload-time = "2025-07-26T12:01:28.808Z" },
- { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288, upload-time = "2025-07-26T12:01:31.198Z" },
- { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386, upload-time = "2025-07-26T12:01:33.947Z" },
- { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018, upload-time = "2025-07-26T12:01:35.64Z" },
- { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567, upload-time = "2025-07-26T12:01:36.804Z" },
- { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" },
- { url = "https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257, upload-time = "2025-07-26T12:01:39.367Z" },
- { url = "https://files.pythonhosted.org/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034, upload-time = "2025-07-26T12:01:40.645Z" },
- { url = "https://files.pythonhosted.org/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672, upload-time = "2025-07-26T12:01:41.942Z" },
- { url = "https://files.pythonhosted.org/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234, upload-time = "2025-07-26T12:01:43.499Z" },
- { url = "https://files.pythonhosted.org/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169, upload-time = "2025-07-26T12:01:45.219Z" },
- { url = "https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859, upload-time = "2025-07-26T12:01:46.519Z" },
- { url = "https://files.pythonhosted.org/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062, upload-time = "2025-07-26T12:01:48.964Z" },
- { url = "https://files.pythonhosted.org/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932, upload-time = "2025-07-26T12:01:51.979Z" },
- { url = "https://files.pythonhosted.org/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024, upload-time = "2025-07-26T12:01:53.245Z" },
- { url = "https://files.pythonhosted.org/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578, upload-time = "2025-07-26T12:01:54.422Z" },
- { url = "https://files.pythonhosted.org/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524, upload-time = "2025-07-26T12:01:55.73Z" },
- { url = "https://files.pythonhosted.org/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730, upload-time = "2025-07-26T12:01:57.051Z" },
- { url = "https://files.pythonhosted.org/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897, upload-time = "2025-07-26T12:01:58.663Z" },
- { url = "https://files.pythonhosted.org/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751, upload-time = "2025-07-26T12:02:00.343Z" },
- { url = "https://files.pythonhosted.org/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486, upload-time = "2025-07-26T12:02:02.128Z" },
- { url = "https://files.pythonhosted.org/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106, upload-time = "2025-07-26T12:02:03.615Z" },
- { url = "https://files.pythonhosted.org/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548, upload-time = "2025-07-26T12:02:05.165Z" },
- { url = "https://files.pythonhosted.org/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297, upload-time = "2025-07-26T12:02:07.379Z" },
- { url = "https://files.pythonhosted.org/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023, upload-time = "2025-07-26T12:02:10.171Z" },
- { url = "https://files.pythonhosted.org/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157, upload-time = "2025-07-26T12:02:11.488Z" },
- { url = "https://files.pythonhosted.org/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570, upload-time = "2025-07-26T12:02:12.754Z" },
- { url = "https://files.pythonhosted.org/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713, upload-time = "2025-07-26T12:02:14.4Z" },
- { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" },
- { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" },
- { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" },
- { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" },
- { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" },
- { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" },
- { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" },
- { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" },
- { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" },
- { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" },
- { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" },
- { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" },
- { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" },
- { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" },
- { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" },
- { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" },
- { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" },
- { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" },
- { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" },
- { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" },
- { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" },
- { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" },
- { url = "https://files.pythonhosted.org/packages/a5/29/8dcfe16f0107943fa92388c23f6e05cff0ba58058c4c95b00280d4c75a14/contourpy-1.3.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd5dfcaeb10f7b7f9dc8941717c6c2ade08f587be2226222c12b25f0483ed497", size = 278809, upload-time = "2025-07-26T12:02:52.74Z" },
- { url = "https://files.pythonhosted.org/packages/85/a9/8b37ef4f7dafeb335daee3c8254645ef5725be4d9c6aa70b50ec46ef2f7e/contourpy-1.3.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:0c1fc238306b35f246d61a1d416a627348b5cf0648648a031e14bb8705fcdfe8", size = 261593, upload-time = "2025-07-26T12:02:54.037Z" },
- { url = "https://files.pythonhosted.org/packages/0a/59/ebfb8c677c75605cc27f7122c90313fd2f375ff3c8d19a1694bda74aaa63/contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:70f9aad7de812d6541d29d2bbf8feb22ff7e1c299523db288004e3157ff4674e", size = 302202, upload-time = "2025-07-26T12:02:55.947Z" },
- { url = "https://files.pythonhosted.org/packages/3c/37/21972a15834d90bfbfb009b9d004779bd5a07a0ec0234e5ba8f64d5736f4/contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ed3657edf08512fc3fe81b510e35c2012fbd3081d2e26160f27ca28affec989", size = 329207, upload-time = "2025-07-26T12:02:57.468Z" },
- { url = "https://files.pythonhosted.org/packages/0c/58/bd257695f39d05594ca4ad60df5bcb7e32247f9951fd09a9b8edb82d1daa/contourpy-1.3.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77", size = 225315, upload-time = "2025-07-26T12:02:58.801Z" },
-]
-
[[package]]
name = "coverage"
version = "7.13.4"
@@ -512,46 +413,6 @@ toml = [
{ name = "tomli", marker = "python_full_version <= '3.11'" },
]
-[[package]]
-name = "cycler"
-version = "0.12.1"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" },
-]
-
-[[package]]
-name = "cython"
-version = "3.0.8"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/68/09/ffb61f29b8e3d207c444032b21328327d753e274ea081bc74e009827cc81/Cython-3.0.8.tar.gz", hash = "sha256:8333423d8fd5765e7cceea3a9985dd1e0a5dfeb2734629e1a2ed2d6233d39de6", size = 2744096, upload-time = "2024-01-10T11:01:02.155Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/db/a7/f4a0bc9a80e23b380daa2ebb4879bf434aaa0b3b91f7ad8a7f9762b4bd1b/Cython-3.0.8-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aae26f9663e50caf9657148403d9874eea41770ecdd6caf381d177c2b1bb82ba", size = 3113615, upload-time = "2024-01-10T11:34:05.899Z" },
- { url = "https://files.pythonhosted.org/packages/e9/e9/e9295df74246c165b91253a473bfa179debf739c9bee961cbb3ae56c2b79/Cython-3.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:547eb3cdb2f8c6f48e6865d5a741d9dd051c25b3ce076fbca571727977b28ac3", size = 3436320, upload-time = "2024-01-10T11:02:08.689Z" },
- { url = "https://files.pythonhosted.org/packages/26/2c/6a887c957aa53e44f928119dea628a5dfacc8e875424034f5fecac9daba4/Cython-3.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a567d4b9ba70b26db89d75b243529de9e649a2f56384287533cf91512705bee", size = 3591755, upload-time = "2024-01-10T11:02:11.773Z" },
- { url = "https://files.pythonhosted.org/packages/ba/b8/f9c97bae6281da50b3ecb1f7fef0f7f7851eae084609b364717a2b366bf1/Cython-3.0.8-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:51d1426263b0e82fb22bda8ea60dc77a428581cc19e97741011b938445d383f1", size = 3636099, upload-time = "2024-01-10T11:02:15.191Z" },
- { url = "https://files.pythonhosted.org/packages/17/ae/cd055c2c081c67a6fcad1d8d17d82bd6395b14c6741e3a938f40318c8bc5/Cython-3.0.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c26daaeccda072459b48d211415fd1e5507c06bcd976fa0d5b8b9f1063467d7b", size = 3458119, upload-time = "2024-01-10T11:02:19.103Z" },
- { url = "https://files.pythonhosted.org/packages/72/ab/ac6f5548d6194f4bb2fc8c6c996aa7369f0fa1403e4d4de787d9e9309b27/Cython-3.0.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:289ce7838208211cd166e975865fd73b0649bf118170b6cebaedfbdaf4a37795", size = 3614418, upload-time = "2024-01-10T11:02:22.732Z" },
- { url = "https://files.pythonhosted.org/packages/70/e2/3e3e448b7a94887bec3235bcb71957b6681dc42b4536459f8f54d46fa936/Cython-3.0.8-cp311-cp311-win32.whl", hash = "sha256:c8aa05f5e17f8042a3be052c24f2edc013fb8af874b0bf76907d16c51b4e7871", size = 2572819, upload-time = "2024-01-10T11:02:25.976Z" },
- { url = "https://files.pythonhosted.org/packages/85/7d/58635941dfbb5b4e197adb88080b9cbfb230dc3b75683698a530a1989bdb/Cython-3.0.8-cp311-cp311-win_amd64.whl", hash = "sha256:000dc9e135d0eec6ecb2b40a5b02d0868a2f8d2e027a41b0fe16a908a9e6de02", size = 2784167, upload-time = "2024-01-10T11:02:28.808Z" },
- { url = "https://files.pythonhosted.org/packages/3d/8e/28f8c6109990eef7317ab7e43644092b49a88a39f9373dcd19318946df09/Cython-3.0.8-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:90d3fe31db55685d8cb97d43b0ec39ef614fcf660f83c77ed06aa670cb0e164f", size = 3135638, upload-time = "2024-01-10T11:34:22.889Z" },
- { url = "https://files.pythonhosted.org/packages/83/1f/4720cb682b8ed1ab9749dea35351a66dd29b6a022628cce038415660c384/Cython-3.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e24791ddae2324e88e3c902a765595c738f19ae34ee66bfb1a6dac54b1833419", size = 3340052, upload-time = "2024-01-10T11:02:32.471Z" },
- { url = "https://files.pythonhosted.org/packages/8a/47/ec3fceb9e8f7d6fa130216b8740038e1df7c8e5f215bba363fcf1272a6c1/Cython-3.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f020fa1c0552052e0660790b8153b79e3fc9a15dbd8f1d0b841fe5d204a6ae6", size = 3510079, upload-time = "2024-01-10T11:02:35.312Z" },
- { url = "https://files.pythonhosted.org/packages/71/31/b458127851e248effb909e2791b55870914863cde7c60b94db5ee65d7867/Cython-3.0.8-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18bfa387d7a7f77d7b2526af69a65dbd0b731b8d941aaff5becff8e21f6d7717", size = 3573972, upload-time = "2024-01-10T11:02:39.044Z" },
- { url = "https://files.pythonhosted.org/packages/6b/d5/ca6513844d0634abd05ba12304053a454bb70441a9520afa9897d4300156/Cython-3.0.8-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:fe81b339cffd87c0069c6049b4d33e28bdd1874625ee515785bf42c9fdff3658", size = 3356158, upload-time = "2024-01-10T11:02:42.125Z" },
- { url = "https://files.pythonhosted.org/packages/33/59/98a87b6264f4ad45c820db13c4ec657567476efde020c49443cc842a86af/Cython-3.0.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:80fd94c076e1e1b1ee40a309be03080b75f413e8997cddcf401a118879863388", size = 3522312, upload-time = "2024-01-10T11:02:45.056Z" },
- { url = "https://files.pythonhosted.org/packages/2b/cb/132115d07a0b9d4f075e0741db70a5416b424dcd875b2bb0dd805e818222/Cython-3.0.8-cp312-cp312-win32.whl", hash = "sha256:85077915a93e359a9b920280d214dc0cf8a62773e1f3d7d30fab8ea4daed670c", size = 2602579, upload-time = "2024-01-10T11:02:48.368Z" },
- { url = "https://files.pythonhosted.org/packages/b4/69/cb4620287cd9ef461103e122c0a2ae7f7ecf183e02510676fb5a15c95b05/Cython-3.0.8-cp312-cp312-win_amd64.whl", hash = "sha256:0cb2dcc565c7851f75d496f724a384a790fab12d1b82461b663e66605bec429a", size = 2791268, upload-time = "2024-01-10T11:02:51.483Z" },
- { url = "https://files.pythonhosted.org/packages/e3/7f/f584f5d15323feb897d42ef0e9d910649e2150d7a30cf7e7a8cc1d236e6f/Cython-3.0.8-py2.py3-none-any.whl", hash = "sha256:171b27051253d3f9108e9759e504ba59ff06e7f7ba944457f94deaf9c21bf0b6", size = 1168213, upload-time = "2024-01-10T11:00:56.857Z" },
-]
-
-[[package]]
-name = "easydict"
-version = "1.11"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/0a/d2/deb3296d08097fedd622d423c0ec8b68b78c1704b3f1545326f6ce05c75c/easydict-1.11.tar.gz", hash = "sha256:dcb1d2ed28eb300c8e46cd371340373abc62f7c14d6dea74fdfc6f1069061c78", size = 6644, upload-time = "2023-10-23T23:01:37.686Z" }
-
[[package]]
name = "fastapi"
version = "0.136.3"
@@ -627,55 +488,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/6f/12/d5c79ee252793ffe845d58a913197bfa02ae9a0b5c9bc3dc4b58d477b9e7/flatbuffers-23.5.26-py2.py3-none-any.whl", hash = "sha256:c0ff356da363087b915fde4b8b45bdda73432fc17cddb3c8157472eab1422ad1", size = 26744, upload-time = "2023-05-26T17:35:14.269Z" },
]
-[[package]]
-name = "fonttools"
-version = "4.61.1"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/ec/ca/cf17b88a8df95691275a3d77dc0a5ad9907f328ae53acbe6795da1b2f5ed/fonttools-4.61.1.tar.gz", hash = "sha256:6675329885c44657f826ef01d9e4fb33b9158e9d93c537d84ad8399539bc6f69", size = 3565756, upload-time = "2025-12-12T17:31:24.246Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/69/12/bf9f4eaa2fad039356cc627587e30ed008c03f1cebd3034376b5ee8d1d44/fonttools-4.61.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c6604b735bb12fef8e0efd5578c9fb5d3d8532d5001ea13a19cddf295673ee09", size = 2852213, upload-time = "2025-12-12T17:29:46.675Z" },
- { url = "https://files.pythonhosted.org/packages/ac/49/4138d1acb6261499bedde1c07f8c2605d1d8f9d77a151e5507fd3ef084b6/fonttools-4.61.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5ce02f38a754f207f2f06557523cd39a06438ba3aafc0639c477ac409fc64e37", size = 2401689, upload-time = "2025-12-12T17:29:48.769Z" },
- { url = "https://files.pythonhosted.org/packages/e5/fe/e6ce0fe20a40e03aef906af60aa87668696f9e4802fa283627d0b5ed777f/fonttools-4.61.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:77efb033d8d7ff233385f30c62c7c79271c8885d5c9657d967ede124671bbdfb", size = 5058809, upload-time = "2025-12-12T17:29:51.701Z" },
- { url = "https://files.pythonhosted.org/packages/79/61/1ca198af22f7dd22c17ab86e9024ed3c06299cfdb08170640e9996d501a0/fonttools-4.61.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:75c1a6dfac6abd407634420c93864a1e274ebc1c7531346d9254c0d8f6ca00f9", size = 5036039, upload-time = "2025-12-12T17:29:53.659Z" },
- { url = "https://files.pythonhosted.org/packages/99/cc/fa1801e408586b5fce4da9f5455af8d770f4fc57391cd5da7256bb364d38/fonttools-4.61.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0de30bfe7745c0d1ffa2b0b7048fb7123ad0d71107e10ee090fa0b16b9452e87", size = 5034714, upload-time = "2025-12-12T17:29:55.592Z" },
- { url = "https://files.pythonhosted.org/packages/bf/aa/b7aeafe65adb1b0a925f8f25725e09f078c635bc22754f3fecb7456955b0/fonttools-4.61.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:58b0ee0ab5b1fc9921eccfe11d1435added19d6494dde14e323f25ad2bc30c56", size = 5158648, upload-time = "2025-12-12T17:29:57.861Z" },
- { url = "https://files.pythonhosted.org/packages/99/f9/08ea7a38663328881384c6e7777bbefc46fd7d282adfd87a7d2b84ec9d50/fonttools-4.61.1-cp311-cp311-win32.whl", hash = "sha256:f79b168428351d11e10c5aeb61a74e1851ec221081299f4cf56036a95431c43a", size = 2280681, upload-time = "2025-12-12T17:29:59.943Z" },
- { url = "https://files.pythonhosted.org/packages/07/ad/37dd1ae5fa6e01612a1fbb954f0927681f282925a86e86198ccd7b15d515/fonttools-4.61.1-cp311-cp311-win_amd64.whl", hash = "sha256:fe2efccb324948a11dd09d22136fe2ac8a97d6c1347cf0b58a911dcd529f66b7", size = 2331951, upload-time = "2025-12-12T17:30:02.254Z" },
- { url = "https://files.pythonhosted.org/packages/6f/16/7decaa24a1bd3a70c607b2e29f0adc6159f36a7e40eaba59846414765fd4/fonttools-4.61.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f3cb4a569029b9f291f88aafc927dd53683757e640081ca8c412781ea144565e", size = 2851593, upload-time = "2025-12-12T17:30:04.225Z" },
- { url = "https://files.pythonhosted.org/packages/94/98/3c4cb97c64713a8cf499b3245c3bf9a2b8fd16a3e375feff2aed78f96259/fonttools-4.61.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41a7170d042e8c0024703ed13b71893519a1a6d6e18e933e3ec7507a2c26a4b2", size = 2400231, upload-time = "2025-12-12T17:30:06.47Z" },
- { url = "https://files.pythonhosted.org/packages/b7/37/82dbef0f6342eb01f54bca073ac1498433d6ce71e50c3c3282b655733b31/fonttools-4.61.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:10d88e55330e092940584774ee5e8a6971b01fc2f4d3466a1d6c158230880796", size = 4954103, upload-time = "2025-12-12T17:30:08.432Z" },
- { url = "https://files.pythonhosted.org/packages/6c/44/f3aeac0fa98e7ad527f479e161aca6c3a1e47bb6996b053d45226fe37bf2/fonttools-4.61.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:15acc09befd16a0fb8a8f62bc147e1a82817542d72184acca9ce6e0aeda9fa6d", size = 5004295, upload-time = "2025-12-12T17:30:10.56Z" },
- { url = "https://files.pythonhosted.org/packages/14/e8/7424ced75473983b964d09f6747fa09f054a6d656f60e9ac9324cf40c743/fonttools-4.61.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e6bcdf33aec38d16508ce61fd81838f24c83c90a1d1b8c68982857038673d6b8", size = 4944109, upload-time = "2025-12-12T17:30:12.874Z" },
- { url = "https://files.pythonhosted.org/packages/c8/8b/6391b257fa3d0b553d73e778f953a2f0154292a7a7a085e2374b111e5410/fonttools-4.61.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5fade934607a523614726119164ff621e8c30e8fa1ffffbbd358662056ba69f0", size = 5093598, upload-time = "2025-12-12T17:30:15.79Z" },
- { url = "https://files.pythonhosted.org/packages/d9/71/fd2ea96cdc512d92da5678a1c98c267ddd4d8c5130b76d0f7a80f9a9fde8/fonttools-4.61.1-cp312-cp312-win32.whl", hash = "sha256:75da8f28eff26defba42c52986de97b22106cb8f26515b7c22443ebc9c2d3261", size = 2269060, upload-time = "2025-12-12T17:30:18.058Z" },
- { url = "https://files.pythonhosted.org/packages/80/3b/a3e81b71aed5a688e89dfe0e2694b26b78c7d7f39a5ffd8a7d75f54a12a8/fonttools-4.61.1-cp312-cp312-win_amd64.whl", hash = "sha256:497c31ce314219888c0e2fce5ad9178ca83fe5230b01a5006726cdf3ac9f24d9", size = 2319078, upload-time = "2025-12-12T17:30:22.862Z" },
- { url = "https://files.pythonhosted.org/packages/4b/cf/00ba28b0990982530addb8dc3e9e6f2fa9cb5c20df2abdda7baa755e8fe1/fonttools-4.61.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c56c488ab471628ff3bfa80964372fc13504ece601e0d97a78ee74126b2045c", size = 2846454, upload-time = "2025-12-12T17:30:24.938Z" },
- { url = "https://files.pythonhosted.org/packages/5a/ca/468c9a8446a2103ae645d14fee3f610567b7042aba85031c1c65e3ef7471/fonttools-4.61.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc492779501fa723b04d0ab1f5be046797fee17d27700476edc7ee9ae535a61e", size = 2398191, upload-time = "2025-12-12T17:30:27.343Z" },
- { url = "https://files.pythonhosted.org/packages/a3/4b/d67eedaed19def5967fade3297fed8161b25ba94699efc124b14fb68cdbc/fonttools-4.61.1-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:64102ca87e84261419c3747a0d20f396eb024bdbeb04c2bfb37e2891f5fadcb5", size = 4928410, upload-time = "2025-12-12T17:30:29.771Z" },
- { url = "https://files.pythonhosted.org/packages/b0/8d/6fb3494dfe61a46258cd93d979cf4725ded4eb46c2a4ca35e4490d84daea/fonttools-4.61.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c1b526c8d3f615a7b1867f38a9410849c8f4aef078535742198e942fba0e9bd", size = 4984460, upload-time = "2025-12-12T17:30:32.073Z" },
- { url = "https://files.pythonhosted.org/packages/f7/f1/a47f1d30b3dc00d75e7af762652d4cbc3dff5c2697a0dbd5203c81afd9c3/fonttools-4.61.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:41ed4b5ec103bd306bb68f81dc166e77409e5209443e5773cb4ed837bcc9b0d3", size = 4925800, upload-time = "2025-12-12T17:30:34.339Z" },
- { url = "https://files.pythonhosted.org/packages/a7/01/e6ae64a0981076e8a66906fab01539799546181e32a37a0257b77e4aa88b/fonttools-4.61.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b501c862d4901792adaec7c25b1ecc749e2662543f68bb194c42ba18d6eec98d", size = 5067859, upload-time = "2025-12-12T17:30:36.593Z" },
- { url = "https://files.pythonhosted.org/packages/73/aa/28e40b8d6809a9b5075350a86779163f074d2b617c15d22343fce81918db/fonttools-4.61.1-cp313-cp313-win32.whl", hash = "sha256:4d7092bb38c53bbc78e9255a59158b150bcdc115a1e3b3ce0b5f267dc35dd63c", size = 2267821, upload-time = "2025-12-12T17:30:38.478Z" },
- { url = "https://files.pythonhosted.org/packages/1a/59/453c06d1d83dc0951b69ef692d6b9f1846680342927df54e9a1ca91c6f90/fonttools-4.61.1-cp313-cp313-win_amd64.whl", hash = "sha256:21e7c8d76f62ab13c9472ccf74515ca5b9a761d1bde3265152a6dc58700d895b", size = 2318169, upload-time = "2025-12-12T17:30:40.951Z" },
- { url = "https://files.pythonhosted.org/packages/32/8f/4e7bf82c0cbb738d3c2206c920ca34ca74ef9dabde779030145d28665104/fonttools-4.61.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fff4f534200a04b4a36e7ae3cb74493afe807b517a09e99cb4faa89a34ed6ecd", size = 2846094, upload-time = "2025-12-12T17:30:43.511Z" },
- { url = "https://files.pythonhosted.org/packages/71/09/d44e45d0a4f3a651f23a1e9d42de43bc643cce2971b19e784cc67d823676/fonttools-4.61.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d9203500f7c63545b4ce3799319fe4d9feb1a1b89b28d3cb5abd11b9dd64147e", size = 2396589, upload-time = "2025-12-12T17:30:45.681Z" },
- { url = "https://files.pythonhosted.org/packages/89/18/58c64cafcf8eb677a99ef593121f719e6dcbdb7d1c594ae5a10d4997ca8a/fonttools-4.61.1-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fa646ecec9528bef693415c79a86e733c70a4965dd938e9a226b0fc64c9d2e6c", size = 4877892, upload-time = "2025-12-12T17:30:47.709Z" },
- { url = "https://files.pythonhosted.org/packages/8a/ec/9e6b38c7ba1e09eb51db849d5450f4c05b7e78481f662c3b79dbde6f3d04/fonttools-4.61.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:11f35ad7805edba3aac1a3710d104592df59f4b957e30108ae0ba6c10b11dd75", size = 4972884, upload-time = "2025-12-12T17:30:49.656Z" },
- { url = "https://files.pythonhosted.org/packages/5e/87/b5339da8e0256734ba0dbbf5b6cdebb1dd79b01dc8c270989b7bcd465541/fonttools-4.61.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b931ae8f62db78861b0ff1ac017851764602288575d65b8e8ff1963fed419063", size = 4924405, upload-time = "2025-12-12T17:30:51.735Z" },
- { url = "https://files.pythonhosted.org/packages/0b/47/e3409f1e1e69c073a3a6fd8cb886eb18c0bae0ee13db2c8d5e7f8495e8b7/fonttools-4.61.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b148b56f5de675ee16d45e769e69f87623a4944f7443850bf9a9376e628a89d2", size = 5035553, upload-time = "2025-12-12T17:30:54.823Z" },
- { url = "https://files.pythonhosted.org/packages/bf/b6/1f6600161b1073a984294c6c031e1a56ebf95b6164249eecf30012bb2e38/fonttools-4.61.1-cp314-cp314-win32.whl", hash = "sha256:9b666a475a65f4e839d3d10473fad6d47e0a9db14a2f4a224029c5bfde58ad2c", size = 2271915, upload-time = "2025-12-12T17:30:57.913Z" },
- { url = "https://files.pythonhosted.org/packages/52/7b/91e7b01e37cc8eb0e1f770d08305b3655e4f002fc160fb82b3390eabacf5/fonttools-4.61.1-cp314-cp314-win_amd64.whl", hash = "sha256:4f5686e1fe5fce75d82d93c47a438a25bf0d1319d2843a926f741140b2b16e0c", size = 2323487, upload-time = "2025-12-12T17:30:59.804Z" },
- { url = "https://files.pythonhosted.org/packages/39/5c/908ad78e46c61c3e3ed70c3b58ff82ab48437faf84ec84f109592cabbd9f/fonttools-4.61.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:e76ce097e3c57c4bcb67c5aa24a0ecdbd9f74ea9219997a707a4061fbe2707aa", size = 2929571, upload-time = "2025-12-12T17:31:02.574Z" },
- { url = "https://files.pythonhosted.org/packages/bd/41/975804132c6dea64cdbfbaa59f3518a21c137a10cccf962805b301ac6ab2/fonttools-4.61.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9cfef3ab326780c04d6646f68d4b4742aae222e8b8ea1d627c74e38afcbc9d91", size = 2435317, upload-time = "2025-12-12T17:31:04.974Z" },
- { url = "https://files.pythonhosted.org/packages/b0/5a/aef2a0a8daf1ebaae4cfd83f84186d4a72ee08fd6a8451289fcd03ffa8a4/fonttools-4.61.1-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a75c301f96db737e1c5ed5fd7d77d9c34466de16095a266509e13da09751bd19", size = 4882124, upload-time = "2025-12-12T17:31:07.456Z" },
- { url = "https://files.pythonhosted.org/packages/80/33/d6db3485b645b81cea538c9d1c9219d5805f0877fda18777add4671c5240/fonttools-4.61.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:91669ccac46bbc1d09e9273546181919064e8df73488ea087dcac3e2968df9ba", size = 5100391, upload-time = "2025-12-12T17:31:09.732Z" },
- { url = "https://files.pythonhosted.org/packages/6c/d6/675ba631454043c75fcf76f0ca5463eac8eb0666ea1d7badae5fea001155/fonttools-4.61.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c33ab3ca9d3ccd581d58e989d67554e42d8d4ded94ab3ade3508455fe70e65f7", size = 4978800, upload-time = "2025-12-12T17:31:11.681Z" },
- { url = "https://files.pythonhosted.org/packages/7f/33/d3ec753d547a8d2bdaedd390d4a814e8d5b45a093d558f025c6b990b554c/fonttools-4.61.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:664c5a68ec406f6b1547946683008576ef8b38275608e1cee6c061828171c118", size = 5006426, upload-time = "2025-12-12T17:31:13.764Z" },
- { url = "https://files.pythonhosted.org/packages/b4/40/cc11f378b561a67bea850ab50063366a0d1dd3f6d0a30ce0f874b0ad5664/fonttools-4.61.1-cp314-cp314t-win32.whl", hash = "sha256:aed04cabe26f30c1647ef0e8fbb207516fd40fe9472e9439695f5c6998e60ac5", size = 2335377, upload-time = "2025-12-12T17:31:16.49Z" },
- { url = "https://files.pythonhosted.org/packages/e4/ff/c9a2b66b39f8628531ea58b320d66d951267c98c6a38684daa8f50fb02f8/fonttools-4.61.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2180f14c141d2f0f3da43f3a81bc8aa4684860f6b0e6f9e165a4831f24e6a23b", size = 2400613, upload-time = "2025-12-12T17:31:18.769Z" },
- { url = "https://files.pythonhosted.org/packages/c7/4e/ce75a57ff3aebf6fc1f4e9d508b8e5810618a33d900ad6c19eb30b290b97/fonttools-4.61.1-py3-none-any.whl", hash = "sha256:17d2bf5d541add43822bcf0c43d7d847b160c9bb01d15d5007d84e2217aaa371", size = 1148996, upload-time = "2025-12-12T17:31:21.03Z" },
-]
-
[[package]]
name = "fsspec"
version = "2023.12.2"
@@ -959,30 +771,17 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" },
]
-[[package]]
-name = "imageio"
-version = "2.33.1"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "numpy" },
- { name = "pillow" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/25/38/f4c568318c656352d211eec6954460dc3af0b7583a6682308f8a66e4c19b/imageio-2.33.1.tar.gz", hash = "sha256:78722d40b137bd98f5ec7312119f8aea9ad2049f76f434748eb306b6937cc1ce", size = 387374, upload-time = "2023-12-11T02:26:44.715Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/c0/69/3aaa69cb0748e33e644fda114c9abd3186ce369edd4fca11107e9f39c6a7/imageio-2.33.1-py3-none-any.whl", hash = "sha256:c5094c48ccf6b2e6da8b4061cd95e1209380afafcbeae4a4e280938cce227e1d", size = 313345, upload-time = "2023-12-11T02:26:42.724Z" },
-]
-
[[package]]
name = "immich-ml"
-version = "3.0.0rc4"
+version = "3.1.0"
source = { editable = "." }
dependencies = [
{ name = "aiocache" },
{ name = "fastapi" },
{ name = "gunicorn" },
{ name = "huggingface-hub" },
- { name = "insightface" },
{ name = "numpy" },
+ { name = "onnx" },
{ name = "opencv-python-headless" },
{ name = "orjson" },
{ name = "pillow" },
@@ -1062,8 +861,8 @@ requires-dist = [
{ name = "fastapi", specifier = ">=0.95.2,<1.0" },
{ name = "gunicorn", specifier = ">=21.1.0" },
{ name = "huggingface-hub", specifier = ">=1.0,<2.0" },
- { name = "insightface", specifier = ">=0.7.3,<2.0" },
{ name = "numpy", specifier = ">=2.4.0,<3.0" },
+ { name = "onnx", specifier = ">=1.22.0" },
{ name = "onnxruntime", marker = "extra == 'armnn'", specifier = ">=1.23.2,<2" },
{ name = "onnxruntime", marker = "extra == 'cpu'", specifier = ">=1.23.2,<2" },
{ name = "onnxruntime", marker = "extra == 'rknn'", specifier = ">=1.23.2,<2" },
@@ -1133,27 +932,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892, upload-time = "2023-01-07T11:08:09.864Z" },
]
-[[package]]
-name = "insightface"
-version = "0.7.3"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "albumentations" },
- { name = "cython" },
- { name = "easydict" },
- { name = "matplotlib" },
- { name = "numpy" },
- { name = "onnx" },
- { name = "pillow" },
- { name = "prettytable" },
- { name = "requests" },
- { name = "scikit-image" },
- { name = "scikit-learn" },
- { name = "scipy" },
- { name = "tqdm" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/0b/8d/0f4af90999ca96cf8cb846eb5ae27c5ef5b390f9c090dd19e4fa76364c13/insightface-0.7.3.tar.gz", hash = "sha256:f191f719612ebb37018f41936814500544cd0f86e6fcd676c023f354c668ddf7", size = 439490, upload-time = "2023-04-02T08:01:54.541Z" }
-
[[package]]
name = "itsdangerous"
version = "2.1.2"
@@ -1175,65 +953,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", size = 133271, upload-time = "2024-05-05T23:41:59.928Z" },
]
-[[package]]
-name = "joblib"
-version = "1.3.2"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/15/0f/d3b33b9f106dddef461f6df1872b7881321b247f3d255b87f61a7636f7fe/joblib-1.3.2.tar.gz", hash = "sha256:92f865e621e17784e7955080b6d042489e3b8e294949cc44c6eac304f59772b1", size = 1987720, upload-time = "2023-08-09T09:23:40.503Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/10/40/d551139c85db202f1f384ba8bcf96aca2f329440a844f924c8a0040b6d02/joblib-1.3.2-py3-none-any.whl", hash = "sha256:ef4331c65f239985f3f2220ecc87db222f08fd22097a3dd5698f693875f8cbb9", size = 302207, upload-time = "2023-08-09T09:23:34.583Z" },
-]
-
-[[package]]
-name = "kiwisolver"
-version = "1.4.5"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/b9/2d/226779e405724344fc678fcc025b812587617ea1a48b9442628b688e85ea/kiwisolver-1.4.5.tar.gz", hash = "sha256:e57e563a57fb22a142da34f38acc2fc1a5c864bc29ca1517a88abc963e60d6ec", size = 97552, upload-time = "2023-08-24T09:30:39.861Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/2a/eb/9e099ad7c47c279995d2d20474e1821100a5f10f847739bd65b1c1f02442/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:11863aa14a51fd6ec28688d76f1735f8f69ab1fabf388851a595d0721af042f5", size = 127403, upload-time = "2023-08-24T09:28:39.3Z" },
- { url = "https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90", size = 68156, upload-time = "2023-08-24T09:28:40.301Z" },
- { url = "https://files.pythonhosted.org/packages/4a/fe/23d7fa78f7c66086d196406beb1fb2eaf629dd7adc01c3453033303d17fa/kiwisolver-1.4.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fcc700eadbbccbf6bc1bcb9dbe0786b4b1cb91ca0dcda336eef5c2beed37b797", size = 66166, upload-time = "2023-08-24T09:28:41.235Z" },
- { url = "https://files.pythonhosted.org/packages/f1/68/f472bf16c9141bb1bea5c0b8c66c68fc1ccb048efdbd8f0872b92125724e/kiwisolver-1.4.5-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dfdd7c0b105af050eb3d64997809dc21da247cf44e63dc73ff0fd20b96be55a9", size = 1334300, upload-time = "2023-08-24T09:28:42.409Z" },
- { url = "https://files.pythonhosted.org/packages/8d/26/b4569d1f29751fca22ee915b4ebfef5974f4ef239b3335fc072882bd62d9/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76c6a5964640638cdeaa0c359382e5703e9293030fe730018ca06bc2010c4437", size = 1426579, upload-time = "2023-08-24T09:28:43.677Z" },
- { url = "https://files.pythonhosted.org/packages/f3/a3/804fc7c8bf233806ec0321c9da35971578620f2ab4fafe67d76100b3ce52/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbea0db94288e29afcc4c28afbf3a7ccaf2d7e027489c449cf7e8f83c6346eb9", size = 1541360, upload-time = "2023-08-24T09:28:45.939Z" },
- { url = "https://files.pythonhosted.org/packages/07/ef/286e1d26524854f6fbd6540e8364d67a8857d61038ac743e11edc42fe217/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ceec1a6bc6cab1d6ff5d06592a91a692f90ec7505d6463a88a52cc0eb58545da", size = 1470091, upload-time = "2023-08-24T09:28:47.959Z" },
- { url = "https://files.pythonhosted.org/packages/17/ba/17a706b232308e65f57deeccae503c268292e6a091313f6ce833a23093ea/kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:040c1aebeda72197ef477a906782b5ab0d387642e93bda547336b8957c61022e", size = 1426259, upload-time = "2023-08-24T09:28:49.224Z" },
- { url = "https://files.pythonhosted.org/packages/d0/f3/a0925611c9d6c2f37c5935a39203cadec6883aa914e013b46c84c4c2e641/kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f91de7223d4c7b793867797bacd1ee53bfe7359bd70d27b7b58a04efbb9436c8", size = 1847516, upload-time = "2023-08-24T09:28:50.979Z" },
- { url = "https://files.pythonhosted.org/packages/da/85/82d59bb8f7c4c9bb2785138b72462cb1b161668f8230c58bbb28c0403cd5/kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:faae4860798c31530dd184046a900e652c95513796ef51a12bc086710c2eec4d", size = 1946228, upload-time = "2023-08-24T09:28:52.812Z" },
- { url = "https://files.pythonhosted.org/packages/34/3c/6a37f444c0233993881e5db3a6a1775925d4d9d2f2609bb325bb1348ed94/kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b0157420efcb803e71d1b28e2c287518b8808b7cf1ab8af36718fd0a2c453eb0", size = 1901716, upload-time = "2023-08-24T09:28:54.115Z" },
- { url = "https://files.pythonhosted.org/packages/cd/7e/180425790efc00adfd47db14e1e341cb4826516982334129012b971121a6/kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:06f54715b7737c2fecdbf140d1afb11a33d59508a47bf11bb38ecf21dc9ab79f", size = 1852871, upload-time = "2023-08-24T09:28:55.433Z" },
- { url = "https://files.pythonhosted.org/packages/1b/9a/13c68b2edb1fa74321e60893a9a5829788e135138e68060cf44e2d92d2c3/kiwisolver-1.4.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fdb7adb641a0d13bdcd4ef48e062363d8a9ad4a182ac7647ec88f695e719ae9f", size = 1870265, upload-time = "2023-08-24T09:28:56.855Z" },
- { url = "https://files.pythonhosted.org/packages/9f/0a/fa56a0fdee5da2b4c79899c0f6bd1aefb29d9438c2d66430e78793571c6b/kiwisolver-1.4.5-cp311-cp311-win32.whl", hash = "sha256:bb86433b1cfe686da83ce32a9d3a8dd308e85c76b60896d58f082136f10bffac", size = 46649, upload-time = "2023-08-24T09:28:58.021Z" },
- { url = "https://files.pythonhosted.org/packages/1e/37/d3c2d4ba2719059a0f12730947bbe1ad5ee8bff89e8c35319dcb2c9ddb4c/kiwisolver-1.4.5-cp311-cp311-win_amd64.whl", hash = "sha256:6c08e1312a9cf1074d17b17728d3dfce2a5125b2d791527f33ffbe805200a355", size = 56116, upload-time = "2023-08-24T09:28:58.994Z" },
- { url = "https://files.pythonhosted.org/packages/f3/7a/debbce859be1a2711eb8437818107137192007b88d17b5cfdb556f457b42/kiwisolver-1.4.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:32d5cf40c4f7c7b3ca500f8985eb3fb3a7dfc023215e876f207956b5ea26632a", size = 125484, upload-time = "2023-08-24T09:28:59.975Z" },
- { url = "https://files.pythonhosted.org/packages/2d/e0/bf8df75ba93b9e035cc6757dd5dcaf63084fdc1c846ae134e818bd7e0f03/kiwisolver-1.4.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f846c260f483d1fd217fe5ed7c173fb109efa6b1fc8381c8b7552c5781756192", size = 67332, upload-time = "2023-08-24T09:29:01.733Z" },
- { url = "https://files.pythonhosted.org/packages/26/61/58bb691f6880588be3a4801d199bd776032ece07203faf3e4a8b377f7d9b/kiwisolver-1.4.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5ff5cf3571589b6d13bfbfd6bcd7a3f659e42f96b5fd1c4830c4cf21d4f5ef45", size = 64987, upload-time = "2023-08-24T09:29:02.789Z" },
- { url = "https://files.pythonhosted.org/packages/8e/a3/96ac5413068b237c006f54dd8d70114e8756d70e3da7613c5aef20627e22/kiwisolver-1.4.5-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7269d9e5f1084a653d575c7ec012ff57f0c042258bf5db0954bf551c158466e7", size = 1370613, upload-time = "2023-08-24T09:29:03.912Z" },
- { url = "https://files.pythonhosted.org/packages/4d/12/f48539e6e17068b59c7f12f4d6214b973431b8e3ac83af525cafd27cebec/kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da802a19d6e15dffe4b0c24b38b3af68e6c1a68e6e1d8f30148c83864f3881db", size = 1463183, upload-time = "2023-08-24T09:29:05.244Z" },
- { url = "https://files.pythonhosted.org/packages/f3/70/26c99be8eb034cc8e3f62e0760af1fbdc97a842a7cbc252f7978507d41c2/kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3aba7311af82e335dd1e36ffff68aaca609ca6290c2cb6d821a39aa075d8e3ff", size = 1581248, upload-time = "2023-08-24T09:29:06.531Z" },
- { url = "https://files.pythonhosted.org/packages/17/f6/f75f20e543639b09b2de7fc864274a5a9b96cda167a6210a1d9d19306b9d/kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:763773d53f07244148ccac5b084da5adb90bfaee39c197554f01b286cf869228", size = 1508815, upload-time = "2023-08-24T09:29:07.867Z" },
- { url = "https://files.pythonhosted.org/packages/e3/d5/bc0f22ac108743062ab703f8d6d71c9c7b077b8839fa358700bfb81770b8/kiwisolver-1.4.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2270953c0d8cdab5d422bee7d2007f043473f9d2999631c86a223c9db56cbd16", size = 1466042, upload-time = "2023-08-24T09:29:09.403Z" },
- { url = "https://files.pythonhosted.org/packages/75/18/98142500f21d6838bcab49ec919414a1f0c6d049d21ddadf139124db6a70/kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d099e745a512f7e3bbe7249ca835f4d357c586d78d79ae8f1dcd4d8adeb9bda9", size = 1885159, upload-time = "2023-08-24T09:29:10.66Z" },
- { url = "https://files.pythonhosted.org/packages/21/49/a241eff9e0ee013368c1d17957f9d345b0957493c3a43d82ebb558c90b0a/kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:74db36e14a7d1ce0986fa104f7d5637aea5c82ca6326ed0ec5694280942d1162", size = 1981694, upload-time = "2023-08-24T09:29:12.469Z" },
- { url = "https://files.pythonhosted.org/packages/90/90/9490c3de4788123041b1d600d64434f1eed809a2ce9f688075a22166b289/kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:7e5bab140c309cb3a6ce373a9e71eb7e4873c70c2dda01df6820474f9889d6d4", size = 1941579, upload-time = "2023-08-24T09:29:13.743Z" },
- { url = "https://files.pythonhosted.org/packages/b7/bb/a0cc488ef2aa92d7d304318c8549d3ec8dfe6dd3c2c67a44e3922b77bc4f/kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0f114aa76dc1b8f636d077979c0ac22e7cd8f3493abbab152f20eb8d3cda71f3", size = 1888168, upload-time = "2023-08-24T09:29:15.097Z" },
- { url = "https://files.pythonhosted.org/packages/4f/e9/9c0de8e45fef3d63f85eed3b1757f9aa511065942866331ef8b99421f433/kiwisolver-1.4.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:88a2df29d4724b9237fc0c6eaf2a1adae0cdc0b3e9f4d8e7dc54b16812d2d81a", size = 1908464, upload-time = "2023-08-24T09:29:16.539Z" },
- { url = "https://files.pythonhosted.org/packages/a3/60/4f0fd50b08f5be536ea0cef518ac7255d9dab43ca40f3b93b60e3ddf80dd/kiwisolver-1.4.5-cp312-cp312-win32.whl", hash = "sha256:72d40b33e834371fd330fb1472ca19d9b8327acb79a5821d4008391db8e29f20", size = 46473, upload-time = "2023-08-24T09:29:17.956Z" },
- { url = "https://files.pythonhosted.org/packages/63/50/2746566bdf4a6a842d117367d05c90cfb87ac04e9e2845aa1fa21f071362/kiwisolver-1.4.5-cp312-cp312-win_amd64.whl", hash = "sha256:2c5674c4e74d939b9d91dda0fae10597ac7521768fec9e399c70a1f27e2ea2d9", size = 56004, upload-time = "2023-08-24T09:29:19.329Z" },
-]
-
-[[package]]
-name = "lazy-loader"
-version = "0.4"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "packaging" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/6f/6b/c875b30a1ba490860c93da4cabf479e03f584eba06fe5963f6f6644653d8/lazy_loader-0.4.tar.gz", hash = "sha256:47c75182589b91a4e1a85a136c074285a5ad4d9f39c63e0d7fb76391c4574cd1", size = 15431, upload-time = "2024-04-05T13:03:12.261Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/83/60/d497a310bde3f01cb805196ac61b7ad6dc5dcf8dce66634dc34364b20b4f/lazy_loader-0.4-py3-none-any.whl", hash = "sha256:342aa8e14d543a154047afb4ba8ef17f5563baad3fc610d7b15b213b0f119efc", size = 12097, upload-time = "2024-04-05T13:03:10.514Z" },
-]
-
[[package]]
name = "librt"
version = "0.11.0"
@@ -1374,70 +1093,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/44/44/dbaf65876e258facd65f586dde158387ab89963e7f2235551afc9c2e24c2/MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb", size = 16979, upload-time = "2023-09-07T16:00:57.77Z" },
]
-[[package]]
-name = "matplotlib"
-version = "3.10.5"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "contourpy" },
- { name = "cycler" },
- { name = "fonttools" },
- { name = "kiwisolver" },
- { name = "numpy" },
- { name = "packaging" },
- { name = "pillow" },
- { name = "pyparsing" },
- { name = "python-dateutil" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/43/91/f2939bb60b7ebf12478b030e0d7f340247390f402b3b189616aad790c366/matplotlib-3.10.5.tar.gz", hash = "sha256:352ed6ccfb7998a00881692f38b4ca083c691d3e275b4145423704c34c909076", size = 34804044, upload-time = "2025-07-31T18:09:33.805Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/aa/c7/1f2db90a1d43710478bb1e9b57b162852f79234d28e4f48a28cc415aa583/matplotlib-3.10.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:dcfc39c452c6a9f9028d3e44d2d721484f665304857188124b505b2c95e1eecf", size = 8239216, upload-time = "2025-07-31T18:07:51.947Z" },
- { url = "https://files.pythonhosted.org/packages/82/6d/ca6844c77a4f89b1c9e4d481c412e1d1dbabf2aae2cbc5aa2da4a1d6683e/matplotlib-3.10.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:903352681b59f3efbf4546985142a9686ea1d616bb054b09a537a06e4b892ccf", size = 8102130, upload-time = "2025-07-31T18:07:53.65Z" },
- { url = "https://files.pythonhosted.org/packages/1d/1e/5e187a30cc673a3e384f3723e5f3c416033c1d8d5da414f82e4e731128ea/matplotlib-3.10.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:080c3676a56b8ee1c762bcf8fca3fe709daa1ee23e6ef06ad9f3fc17332f2d2a", size = 8666471, upload-time = "2025-07-31T18:07:55.304Z" },
- { url = "https://files.pythonhosted.org/packages/03/c0/95540d584d7d645324db99a845ac194e915ef75011a0d5e19e1b5cee7e69/matplotlib-3.10.5-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4b4984d5064a35b6f66d2c11d668565f4389b1119cc64db7a4c1725bc11adffc", size = 9500518, upload-time = "2025-07-31T18:07:57.199Z" },
- { url = "https://files.pythonhosted.org/packages/ba/2e/e019352099ea58b4169adb9c6e1a2ad0c568c6377c2b677ee1f06de2adc7/matplotlib-3.10.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3967424121d3a46705c9fa9bdb0931de3228f13f73d7bb03c999c88343a89d89", size = 9552372, upload-time = "2025-07-31T18:07:59.41Z" },
- { url = "https://files.pythonhosted.org/packages/b7/81/3200b792a5e8b354f31f4101ad7834743ad07b6d620259f2059317b25e4d/matplotlib-3.10.5-cp311-cp311-win_amd64.whl", hash = "sha256:33775bbeb75528555a15ac29396940128ef5613cf9a2d31fb1bfd18b3c0c0903", size = 8100634, upload-time = "2025-07-31T18:08:01.801Z" },
- { url = "https://files.pythonhosted.org/packages/52/46/a944f6f0c1f5476a0adfa501969d229ce5ae60cf9a663be0e70361381f89/matplotlib-3.10.5-cp311-cp311-win_arm64.whl", hash = "sha256:c61333a8e5e6240e73769d5826b9a31d8b22df76c0778f8480baf1b4b01c9420", size = 7978880, upload-time = "2025-07-31T18:08:03.407Z" },
- { url = "https://files.pythonhosted.org/packages/66/1e/c6f6bcd882d589410b475ca1fc22e34e34c82adff519caf18f3e6dd9d682/matplotlib-3.10.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:00b6feadc28a08bd3c65b2894f56cf3c94fc8f7adcbc6ab4516ae1e8ed8f62e2", size = 8253056, upload-time = "2025-07-31T18:08:05.385Z" },
- { url = "https://files.pythonhosted.org/packages/53/e6/d6f7d1b59413f233793dda14419776f5f443bcccb2dfc84b09f09fe05dbe/matplotlib-3.10.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ee98a5c5344dc7f48dc261b6ba5d9900c008fc12beb3fa6ebda81273602cc389", size = 8110131, upload-time = "2025-07-31T18:08:07.293Z" },
- { url = "https://files.pythonhosted.org/packages/66/2b/bed8a45e74957549197a2ac2e1259671cd80b55ed9e1fe2b5c94d88a9202/matplotlib-3.10.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a17e57e33de901d221a07af32c08870ed4528db0b6059dce7d7e65c1122d4bea", size = 8669603, upload-time = "2025-07-31T18:08:09.064Z" },
- { url = "https://files.pythonhosted.org/packages/7e/a7/315e9435b10d057f5e52dfc603cd353167ae28bb1a4e033d41540c0067a4/matplotlib-3.10.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97b9d6443419085950ee4a5b1ee08c363e5c43d7176e55513479e53669e88468", size = 9508127, upload-time = "2025-07-31T18:08:10.845Z" },
- { url = "https://files.pythonhosted.org/packages/7f/d9/edcbb1f02ca99165365d2768d517898c22c6040187e2ae2ce7294437c413/matplotlib-3.10.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ceefe5d40807d29a66ae916c6a3915d60ef9f028ce1927b84e727be91d884369", size = 9566926, upload-time = "2025-07-31T18:08:13.186Z" },
- { url = "https://files.pythonhosted.org/packages/3b/d9/6dd924ad5616c97b7308e6320cf392c466237a82a2040381163b7500510a/matplotlib-3.10.5-cp312-cp312-win_amd64.whl", hash = "sha256:c04cba0f93d40e45b3c187c6c52c17f24535b27d545f757a2fffebc06c12b98b", size = 8107599, upload-time = "2025-07-31T18:08:15.116Z" },
- { url = "https://files.pythonhosted.org/packages/0e/f3/522dc319a50f7b0279fbe74f86f7a3506ce414bc23172098e8d2bdf21894/matplotlib-3.10.5-cp312-cp312-win_arm64.whl", hash = "sha256:a41bcb6e2c8e79dc99c5511ae6f7787d2fb52efd3d805fff06d5d4f667db16b2", size = 7978173, upload-time = "2025-07-31T18:08:21.518Z" },
- { url = "https://files.pythonhosted.org/packages/8d/05/4f3c1f396075f108515e45cb8d334aff011a922350e502a7472e24c52d77/matplotlib-3.10.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:354204db3f7d5caaa10e5de74549ef6a05a4550fdd1c8f831ab9bca81efd39ed", size = 8253586, upload-time = "2025-07-31T18:08:23.107Z" },
- { url = "https://files.pythonhosted.org/packages/2f/2c/e084415775aac7016c3719fe7006cdb462582c6c99ac142f27303c56e243/matplotlib-3.10.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b072aac0c3ad563a2b3318124756cb6112157017f7431626600ecbe890df57a1", size = 8110715, upload-time = "2025-07-31T18:08:24.675Z" },
- { url = "https://files.pythonhosted.org/packages/52/1b/233e3094b749df16e3e6cd5a44849fd33852e692ad009cf7de00cf58ddf6/matplotlib-3.10.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d52fd5b684d541b5a51fb276b2b97b010c75bee9aa392f96b4a07aeb491e33c7", size = 8669397, upload-time = "2025-07-31T18:08:26.778Z" },
- { url = "https://files.pythonhosted.org/packages/e8/ec/03f9e003a798f907d9f772eed9b7c6a9775d5bd00648b643ebfb88e25414/matplotlib-3.10.5-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee7a09ae2f4676276f5a65bd9f2bd91b4f9fbaedf49f40267ce3f9b448de501f", size = 9508646, upload-time = "2025-07-31T18:08:28.848Z" },
- { url = "https://files.pythonhosted.org/packages/91/e7/c051a7a386680c28487bca27d23b02d84f63e3d2a9b4d2fc478e6a42e37e/matplotlib-3.10.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ba6c3c9c067b83481d647af88b4e441d532acdb5ef22178a14935b0b881188f4", size = 9567424, upload-time = "2025-07-31T18:08:30.726Z" },
- { url = "https://files.pythonhosted.org/packages/36/c2/24302e93ff431b8f4173ee1dd88976c8d80483cadbc5d3d777cef47b3a1c/matplotlib-3.10.5-cp313-cp313-win_amd64.whl", hash = "sha256:07442d2692c9bd1cceaa4afb4bbe5b57b98a7599de4dabfcca92d3eea70f9ebe", size = 8107809, upload-time = "2025-07-31T18:08:33.928Z" },
- { url = "https://files.pythonhosted.org/packages/0b/33/423ec6a668d375dad825197557ed8fbdb74d62b432c1ed8235465945475f/matplotlib-3.10.5-cp313-cp313-win_arm64.whl", hash = "sha256:48fe6d47380b68a37ccfcc94f009530e84d41f71f5dae7eda7c4a5a84aa0a674", size = 7978078, upload-time = "2025-07-31T18:08:36.764Z" },
- { url = "https://files.pythonhosted.org/packages/51/17/521fc16ec766455c7bb52cc046550cf7652f6765ca8650ff120aa2d197b6/matplotlib-3.10.5-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b80eb8621331449fc519541a7461987f10afa4f9cfd91afcd2276ebe19bd56c", size = 8295590, upload-time = "2025-07-31T18:08:38.521Z" },
- { url = "https://files.pythonhosted.org/packages/f8/12/23c28b2c21114c63999bae129fce7fd34515641c517ae48ce7b7dcd33458/matplotlib-3.10.5-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:47a388908e469d6ca2a6015858fa924e0e8a2345a37125948d8e93a91c47933e", size = 8158518, upload-time = "2025-07-31T18:08:40.195Z" },
- { url = "https://files.pythonhosted.org/packages/81/f8/aae4eb25e8e7190759f3cb91cbeaa344128159ac92bb6b409e24f8711f78/matplotlib-3.10.5-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8b6b49167d208358983ce26e43aa4196073b4702858670f2eb111f9a10652b4b", size = 8691815, upload-time = "2025-07-31T18:08:42.238Z" },
- { url = "https://files.pythonhosted.org/packages/d0/ba/450c39ebdd486bd33a359fc17365ade46c6a96bf637bbb0df7824de2886c/matplotlib-3.10.5-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a8da0453a7fd8e3da114234ba70c5ba9ef0e98f190309ddfde0f089accd46ea", size = 9522814, upload-time = "2025-07-31T18:08:44.914Z" },
- { url = "https://files.pythonhosted.org/packages/89/11/9c66f6a990e27bb9aa023f7988d2d5809cb98aa39c09cbf20fba75a542ef/matplotlib-3.10.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:52c6573dfcb7726a9907b482cd5b92e6b5499b284ffacb04ffbfe06b3e568124", size = 9573917, upload-time = "2025-07-31T18:08:47.038Z" },
- { url = "https://files.pythonhosted.org/packages/b3/69/8b49394de92569419e5e05e82e83df9b749a0ff550d07631ea96ed2eb35a/matplotlib-3.10.5-cp313-cp313t-win_amd64.whl", hash = "sha256:a23193db2e9d64ece69cac0c8231849db7dd77ce59c7b89948cf9d0ce655a3ce", size = 8181034, upload-time = "2025-07-31T18:08:48.943Z" },
- { url = "https://files.pythonhosted.org/packages/47/23/82dc435bb98a2fc5c20dffcac8f0b083935ac28286413ed8835df40d0baa/matplotlib-3.10.5-cp313-cp313t-win_arm64.whl", hash = "sha256:56da3b102cf6da2776fef3e71cd96fcf22103a13594a18ac9a9b31314e0be154", size = 8023337, upload-time = "2025-07-31T18:08:50.791Z" },
- { url = "https://files.pythonhosted.org/packages/ac/e0/26b6cfde31f5383503ee45dcb7e691d45dadf0b3f54639332b59316a97f8/matplotlib-3.10.5-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:96ef8f5a3696f20f55597ffa91c28e2e73088df25c555f8d4754931515512715", size = 8253591, upload-time = "2025-07-31T18:08:53.254Z" },
- { url = "https://files.pythonhosted.org/packages/c1/89/98488c7ef7ea20ea659af7499628c240a608b337af4be2066d644cfd0a0f/matplotlib-3.10.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:77fab633e94b9da60512d4fa0213daeb76d5a7b05156840c4fd0399b4b818837", size = 8112566, upload-time = "2025-07-31T18:08:55.116Z" },
- { url = "https://files.pythonhosted.org/packages/52/67/42294dfedc82aea55e1a767daf3263aacfb5a125f44ba189e685bab41b6f/matplotlib-3.10.5-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:27f52634315e96b1debbfdc5c416592edcd9c4221bc2f520fd39c33db5d9f202", size = 9513281, upload-time = "2025-07-31T18:08:56.885Z" },
- { url = "https://files.pythonhosted.org/packages/e7/68/f258239e0cf34c2cbc816781c7ab6fca768452e6bf1119aedd2bd4a882a3/matplotlib-3.10.5-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:525f6e28c485c769d1f07935b660c864de41c37fd716bfa64158ea646f7084bb", size = 9780873, upload-time = "2025-07-31T18:08:59.241Z" },
- { url = "https://files.pythonhosted.org/packages/89/64/f4881554006bd12e4558bd66778bdd15d47b00a1f6c6e8b50f6208eda4b3/matplotlib-3.10.5-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1f5f3ec4c191253c5f2b7c07096a142c6a1c024d9f738247bfc8e3f9643fc975", size = 9568954, upload-time = "2025-07-31T18:09:01.244Z" },
- { url = "https://files.pythonhosted.org/packages/06/f8/42779d39c3f757e1f012f2dda3319a89fb602bd2ef98ce8faf0281f4febd/matplotlib-3.10.5-cp314-cp314-win_amd64.whl", hash = "sha256:707f9c292c4cd4716f19ab8a1f93f26598222cd931e0cd98fbbb1c5994bf7667", size = 8237465, upload-time = "2025-07-31T18:09:03.206Z" },
- { url = "https://files.pythonhosted.org/packages/cf/f8/153fd06b5160f0cd27c8b9dd797fcc9fb56ac6a0ebf3c1f765b6b68d3c8a/matplotlib-3.10.5-cp314-cp314-win_arm64.whl", hash = "sha256:21a95b9bf408178d372814de7baacd61c712a62cae560b5e6f35d791776f6516", size = 8108898, upload-time = "2025-07-31T18:09:05.231Z" },
- { url = "https://files.pythonhosted.org/packages/9a/ee/c4b082a382a225fe0d2a73f1f57cf6f6f132308805b493a54c8641006238/matplotlib-3.10.5-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:a6b310f95e1102a8c7c817ef17b60ee5d1851b8c71b63d9286b66b177963039e", size = 8295636, upload-time = "2025-07-31T18:09:07.306Z" },
- { url = "https://files.pythonhosted.org/packages/30/73/2195fa2099718b21a20da82dfc753bf2af58d596b51aefe93e359dd5915a/matplotlib-3.10.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:94986a242747a0605cb3ff1cb98691c736f28a59f8ffe5175acaeb7397c49a5a", size = 8158575, upload-time = "2025-07-31T18:09:09.083Z" },
- { url = "https://files.pythonhosted.org/packages/f6/e9/a08cdb34618a91fa08f75e6738541da5cacde7c307cea18ff10f0d03fcff/matplotlib-3.10.5-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ff10ea43288f0c8bab608a305dc6c918cc729d429c31dcbbecde3b9f4d5b569", size = 9522815, upload-time = "2025-07-31T18:09:11.191Z" },
- { url = "https://files.pythonhosted.org/packages/4e/bb/34d8b7e0d1bb6d06ef45db01dfa560d5a67b1c40c0b998ce9ccde934bb09/matplotlib-3.10.5-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f6adb644c9d040ffb0d3434e440490a66cf73dbfa118a6f79cd7568431f7a012", size = 9783514, upload-time = "2025-07-31T18:09:13.307Z" },
- { url = "https://files.pythonhosted.org/packages/12/09/d330d1e55dcca2e11b4d304cc5227f52e2512e46828d6249b88e0694176e/matplotlib-3.10.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:4fa40a8f98428f789a9dcacd625f59b7bc4e3ef6c8c7c80187a7a709475cf592", size = 9573932, upload-time = "2025-07-31T18:09:15.335Z" },
- { url = "https://files.pythonhosted.org/packages/eb/3b/f70258ac729aa004aca673800a53a2b0a26d49ca1df2eaa03289a1c40f81/matplotlib-3.10.5-cp314-cp314t-win_amd64.whl", hash = "sha256:95672a5d628b44207aab91ec20bf59c26da99de12b88f7e0b1fb0a84a86ff959", size = 8322003, upload-time = "2025-07-31T18:09:17.416Z" },
- { url = "https://files.pythonhosted.org/packages/5b/60/3601f8ce6d76a7c81c7f25a0e15fde0d6b66226dd187aa6d2838e6374161/matplotlib-3.10.5-cp314-cp314t-win_arm64.whl", hash = "sha256:2efaf97d72629e74252e0b5e3c46813e9eeaa94e011ecf8084a971a31a97f40b", size = 8153849, upload-time = "2025-07-31T18:09:19.673Z" },
- { url = "https://files.pythonhosted.org/packages/dc/d6/e921be4e1a5f7aca5194e1f016cb67ec294548e530013251f630713e456d/matplotlib-3.10.5-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:160e125da27a749481eaddc0627962990f6029811dbeae23881833a011a0907f", size = 8233224, upload-time = "2025-07-31T18:09:27.512Z" },
- { url = "https://files.pythonhosted.org/packages/ec/74/a2b9b04824b9c349c8f1b2d21d5af43fa7010039427f2b133a034cb09e59/matplotlib-3.10.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ac3d50760394d78a3c9be6b28318fe22b494c4fcf6407e8fd4794b538251899b", size = 8098539, upload-time = "2025-07-31T18:09:29.629Z" },
- { url = "https://files.pythonhosted.org/packages/fc/66/cd29ebc7f6c0d2a15d216fb572573e8fc38bd5d6dec3bd9d7d904c0949f7/matplotlib-3.10.5-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6c49465bf689c4d59d174d0c7795fb42a21d4244d11d70e52b8011987367ac61", size = 8672192, upload-time = "2025-07-31T18:09:31.407Z" },
-]
-
[[package]]
name = "mdurl"
version = "0.1.2"
@@ -1449,39 +1104,43 @@ wheels = [
[[package]]
name = "ml-dtypes"
-version = "0.5.3"
+version = "0.5.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "numpy" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/78/a7/aad060393123cfb383956dca68402aff3db1e1caffd5764887ed5153f41b/ml_dtypes-0.5.3.tar.gz", hash = "sha256:95ce33057ba4d05df50b1f3cfefab22e351868a843b3b15a46c65836283670c9", size = 692316, upload-time = "2025-07-29T18:39:19.454Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/0e/4a/c27b42ed9b1c7d13d9ba8b6905dece787d6259152f2309338aed29b2447b/ml_dtypes-0.5.4.tar.gz", hash = "sha256:8ab06a50fb9bf9666dd0fe5dfb4676fa2b0ac0f31ecff72a6c3af8e22c063453", size = 692314, upload-time = "2025-11-17T22:32:31.031Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/af/f1/720cb1409b5d0c05cff9040c0e9fba73fa4c67897d33babf905d5d46a070/ml_dtypes-0.5.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4a177b882667c69422402df6ed5c3428ce07ac2c1f844d8a1314944651439458", size = 667412, upload-time = "2025-07-29T18:38:25.275Z" },
- { url = "https://files.pythonhosted.org/packages/6a/d5/05861ede5d299f6599f86e6bc1291714e2116d96df003cfe23cc54bcc568/ml_dtypes-0.5.3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9849ce7267444c0a717c80c6900997de4f36e2815ce34ac560a3edb2d9a64cd2", size = 4964606, upload-time = "2025-07-29T18:38:27.045Z" },
- { url = "https://files.pythonhosted.org/packages/db/dc/72992b68de367741bfab8df3b3fe7c29f982b7279d341aa5bf3e7ef737ea/ml_dtypes-0.5.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c3f5ae0309d9f888fd825c2e9d0241102fadaca81d888f26f845bc8c13c1e4ee", size = 4938435, upload-time = "2025-07-29T18:38:29.193Z" },
- { url = "https://files.pythonhosted.org/packages/81/1c/d27a930bca31fb07d975a2d7eaf3404f9388114463b9f15032813c98f893/ml_dtypes-0.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:58e39349d820b5702bb6f94ea0cb2dc8ec62ee81c0267d9622067d8333596a46", size = 206334, upload-time = "2025-07-29T18:38:30.687Z" },
- { url = "https://files.pythonhosted.org/packages/1a/d8/6922499effa616012cb8dc445280f66d100a7ff39b35c864cfca019b3f89/ml_dtypes-0.5.3-cp311-cp311-win_arm64.whl", hash = "sha256:66c2756ae6cfd7f5224e355c893cfd617fa2f747b8bbd8996152cbdebad9a184", size = 157584, upload-time = "2025-07-29T18:38:32.187Z" },
- { url = "https://files.pythonhosted.org/packages/0d/eb/bc07c88a6ab002b4635e44585d80fa0b350603f11a2097c9d1bfacc03357/ml_dtypes-0.5.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:156418abeeda48ea4797db6776db3c5bdab9ac7be197c1233771e0880c304057", size = 663864, upload-time = "2025-07-29T18:38:33.777Z" },
- { url = "https://files.pythonhosted.org/packages/cf/89/11af9b0f21b99e6386b6581ab40fb38d03225f9de5f55cf52097047e2826/ml_dtypes-0.5.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1db60c154989af253f6c4a34e8a540c2c9dce4d770784d426945e09908fbb177", size = 4951313, upload-time = "2025-07-29T18:38:36.45Z" },
- { url = "https://files.pythonhosted.org/packages/d8/a9/b98b86426c24900b0c754aad006dce2863df7ce0bb2bcc2c02f9cc7e8489/ml_dtypes-0.5.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1b255acada256d1fa8c35ed07b5f6d18bc21d1556f842fbc2d5718aea2cd9e55", size = 4928805, upload-time = "2025-07-29T18:38:38.29Z" },
- { url = "https://files.pythonhosted.org/packages/50/c1/85e6be4fc09c6175f36fb05a45917837f30af9a5146a5151cb3a3f0f9e09/ml_dtypes-0.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:da65e5fd3eea434ccb8984c3624bc234ddcc0d9f4c81864af611aaebcc08a50e", size = 208182, upload-time = "2025-07-29T18:38:39.72Z" },
- { url = "https://files.pythonhosted.org/packages/9e/17/cf5326d6867be057f232d0610de1458f70a8ce7b6290e4b4a277ea62b4cd/ml_dtypes-0.5.3-cp312-cp312-win_arm64.whl", hash = "sha256:8bb9cd1ce63096567f5f42851f5843b5a0ea11511e50039a7649619abfb4ba6d", size = 161560, upload-time = "2025-07-29T18:38:41.072Z" },
- { url = "https://files.pythonhosted.org/packages/2d/87/1bcc98a66de7b2455dfb292f271452cac9edc4e870796e0d87033524d790/ml_dtypes-0.5.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5103856a225465371fe119f2fef737402b705b810bd95ad5f348e6e1a6ae21af", size = 663781, upload-time = "2025-07-29T18:38:42.984Z" },
- { url = "https://files.pythonhosted.org/packages/fd/2c/bd2a79ba7c759ee192b5601b675b180a3fd6ccf48ffa27fe1782d280f1a7/ml_dtypes-0.5.3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4cae435a68861660af81fa3c5af16b70ca11a17275c5b662d9c6f58294e0f113", size = 4956217, upload-time = "2025-07-29T18:38:44.65Z" },
- { url = "https://files.pythonhosted.org/packages/14/f3/091ba84e5395d7fe5b30c081a44dec881cd84b408db1763ee50768b2ab63/ml_dtypes-0.5.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6936283b56d74fbec431ca57ce58a90a908fdbd14d4e2d22eea6d72bb208a7b7", size = 4933109, upload-time = "2025-07-29T18:38:46.405Z" },
- { url = "https://files.pythonhosted.org/packages/bc/24/054036dbe32c43295382c90a1363241684c4d6aaa1ecc3df26bd0c8d5053/ml_dtypes-0.5.3-cp313-cp313-win_amd64.whl", hash = "sha256:d0f730a17cf4f343b2c7ad50cee3bd19e969e793d2be6ed911f43086460096e4", size = 208187, upload-time = "2025-07-29T18:38:48.24Z" },
- { url = "https://files.pythonhosted.org/packages/a6/3d/7dc3ec6794a4a9004c765e0c341e32355840b698f73fd2daff46f128afc1/ml_dtypes-0.5.3-cp313-cp313-win_arm64.whl", hash = "sha256:2db74788fc01914a3c7f7da0763427280adfc9cd377e9604b6b64eb8097284bd", size = 161559, upload-time = "2025-07-29T18:38:50.493Z" },
- { url = "https://files.pythonhosted.org/packages/12/91/e6c7a0d67a152b9330445f9f0cf8ae6eee9b83f990b8c57fe74631e42a90/ml_dtypes-0.5.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:93c36a08a6d158db44f2eb9ce3258e53f24a9a4a695325a689494f0fdbc71770", size = 689321, upload-time = "2025-07-29T18:38:52.03Z" },
- { url = "https://files.pythonhosted.org/packages/9e/6c/b7b94b84a104a5be1883305b87d4c6bd6ae781504474b4cca067cb2340ec/ml_dtypes-0.5.3-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0e44a3761f64bc009d71ddb6d6c71008ba21b53ab6ee588dadab65e2fa79eafc", size = 5274495, upload-time = "2025-07-29T18:38:53.797Z" },
- { url = "https://files.pythonhosted.org/packages/5b/38/6266604dffb43378055394ea110570cf261a49876fc48f548dfe876f34cc/ml_dtypes-0.5.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bdf40d2aaabd3913dec11840f0d0ebb1b93134f99af6a0a4fd88ffe924928ab4", size = 5285422, upload-time = "2025-07-29T18:38:56.603Z" },
- { url = "https://files.pythonhosted.org/packages/7c/88/8612ff177d043a474b9408f0382605d881eeb4125ba89d4d4b3286573a83/ml_dtypes-0.5.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:aec640bd94c4c85c0d11e2733bd13cbb10438fb004852996ec0efbc6cacdaf70", size = 661182, upload-time = "2025-07-29T18:38:58.414Z" },
- { url = "https://files.pythonhosted.org/packages/6f/2b/0569a5e88b29240d373e835107c94ae9256fb2191d3156b43b2601859eff/ml_dtypes-0.5.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bda32ce212baa724e03c68771e5c69f39e584ea426bfe1a701cb01508ffc7035", size = 4956187, upload-time = "2025-07-29T18:39:00.611Z" },
- { url = "https://files.pythonhosted.org/packages/51/66/273c2a06ae44562b104b61e6b14444da00061fd87652506579d7eb2c40b1/ml_dtypes-0.5.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c205cac07d24a29840c163d6469f61069ce4b065518519216297fc2f261f8db9", size = 4930911, upload-time = "2025-07-29T18:39:02.405Z" },
- { url = "https://files.pythonhosted.org/packages/93/ab/606be3e87dc0821bd360c8c1ee46108025c31a4f96942b63907bb441b87d/ml_dtypes-0.5.3-cp314-cp314-win_amd64.whl", hash = "sha256:cd7c0bb22d4ff86d65ad61b5dd246812e8993fbc95b558553624c33e8b6903ea", size = 216664, upload-time = "2025-07-29T18:39:03.927Z" },
- { url = "https://files.pythonhosted.org/packages/30/a2/e900690ca47d01dffffd66375c5de8c4f8ced0f1ef809ccd3b25b3e6b8fa/ml_dtypes-0.5.3-cp314-cp314-win_arm64.whl", hash = "sha256:9d55ea7f7baf2aed61bf1872116cefc9d0c3693b45cae3916897ee27ef4b835e", size = 160203, upload-time = "2025-07-29T18:39:05.671Z" },
- { url = "https://files.pythonhosted.org/packages/53/21/783dfb51f40d2660afeb9bccf3612b99f6a803d980d2a09132b0f9d216ab/ml_dtypes-0.5.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:e12e29764a0e66a7a31e9b8bf1de5cc0423ea72979f45909acd4292de834ccd3", size = 689324, upload-time = "2025-07-29T18:39:07.567Z" },
- { url = "https://files.pythonhosted.org/packages/09/f7/a82d249c711abf411ac027b7163f285487f5e615c3e0716c61033ce996ab/ml_dtypes-0.5.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:19f6c3a4f635c2fc9e2aa7d91416bd7a3d649b48350c51f7f715a09370a90d93", size = 5275917, upload-time = "2025-07-29T18:39:09.339Z" },
- { url = "https://files.pythonhosted.org/packages/7f/3c/541c4b30815ab90ebfbb51df15d0b4254f2f9f1e2b4907ab229300d5e6f2/ml_dtypes-0.5.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ab039ffb40f3dc0aeeeba84fd6c3452781b5e15bef72e2d10bcb33e4bbffc39", size = 5285284, upload-time = "2025-07-29T18:39:11.532Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/5e/712092cfe7e5eb667b8ad9ca7c54442f21ed7ca8979745f1000e24cf8737/ml_dtypes-0.5.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6c7ecb74c4bd71db68a6bea1edf8da8c34f3d9fe218f038814fd1d310ac76c90", size = 679734, upload-time = "2025-11-17T22:31:39.223Z" },
+ { url = "https://files.pythonhosted.org/packages/4f/cf/912146dfd4b5c0eea956836c01dcd2fce6c9c844b2691f5152aca196ce4f/ml_dtypes-0.5.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc11d7e8c44a65115d05e2ab9989d1e045125d7be8e05a071a48bc76eb6d6040", size = 5056165, upload-time = "2025-11-17T22:31:41.071Z" },
+ { url = "https://files.pythonhosted.org/packages/a9/80/19189ea605017473660e43762dc853d2797984b3c7bf30ce656099add30c/ml_dtypes-0.5.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:19b9a53598f21e453ea2fbda8aa783c20faff8e1eeb0d7ab899309a0053f1483", size = 5034975, upload-time = "2025-11-17T22:31:42.758Z" },
+ { url = "https://files.pythonhosted.org/packages/b4/24/70bd59276883fdd91600ca20040b41efd4902a923283c4d6edcb1de128d2/ml_dtypes-0.5.4-cp311-cp311-win_amd64.whl", hash = "sha256:7c23c54a00ae43edf48d44066a7ec31e05fdc2eee0be2b8b50dd1903a1db94bb", size = 210742, upload-time = "2025-11-17T22:31:44.068Z" },
+ { url = "https://files.pythonhosted.org/packages/a0/c9/64230ef14e40aa3f1cb254ef623bf812735e6bec7772848d19131111ac0d/ml_dtypes-0.5.4-cp311-cp311-win_arm64.whl", hash = "sha256:557a31a390b7e9439056644cb80ed0735a6e3e3bb09d67fd5687e4b04238d1de", size = 160709, upload-time = "2025-11-17T22:31:46.557Z" },
+ { url = "https://files.pythonhosted.org/packages/a8/b8/3c70881695e056f8a32f8b941126cf78775d9a4d7feba8abcb52cb7b04f2/ml_dtypes-0.5.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a174837a64f5b16cab6f368171a1a03a27936b31699d167684073ff1c4237dac", size = 676927, upload-time = "2025-11-17T22:31:48.182Z" },
+ { url = "https://files.pythonhosted.org/packages/54/0f/428ef6881782e5ebb7eca459689448c0394fa0a80bea3aa9262cba5445ea/ml_dtypes-0.5.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a7f7c643e8b1320fd958bf098aa7ecf70623a42ec5154e3be3be673f4c34d900", size = 5028464, upload-time = "2025-11-17T22:31:50.135Z" },
+ { url = "https://files.pythonhosted.org/packages/3a/cb/28ce52eb94390dda42599c98ea0204d74799e4d8047a0eb559b6fd648056/ml_dtypes-0.5.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ad459e99793fa6e13bd5b7e6792c8f9190b4e5a1b45c63aba14a4d0a7f1d5ff", size = 5009002, upload-time = "2025-11-17T22:31:52.001Z" },
+ { url = "https://files.pythonhosted.org/packages/f5/f0/0cfadd537c5470378b1b32bd859cf2824972174b51b873c9d95cfd7475a5/ml_dtypes-0.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:c1a953995cccb9e25a4ae19e34316671e4e2edaebe4cf538229b1fc7109087b7", size = 212222, upload-time = "2025-11-17T22:31:53.742Z" },
+ { url = "https://files.pythonhosted.org/packages/16/2e/9acc86985bfad8f2c2d30291b27cd2bb4c74cea08695bd540906ed744249/ml_dtypes-0.5.4-cp312-cp312-win_arm64.whl", hash = "sha256:9bad06436568442575beb2d03389aa7456c690a5b05892c471215bfd8cf39460", size = 160793, upload-time = "2025-11-17T22:31:55.358Z" },
+ { url = "https://files.pythonhosted.org/packages/d9/a1/4008f14bbc616cfb1ac5b39ea485f9c63031c4634ab3f4cf72e7541f816a/ml_dtypes-0.5.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c760d85a2f82e2bed75867079188c9d18dae2ee77c25a54d60e9cc79be1bc48", size = 676888, upload-time = "2025-11-17T22:31:56.907Z" },
+ { url = "https://files.pythonhosted.org/packages/d3/b7/dff378afc2b0d5a7d6cd9d3209b60474d9819d1189d347521e1688a60a53/ml_dtypes-0.5.4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce756d3a10d0c4067172804c9cc276ba9cc0ff47af9078ad439b075d1abdc29b", size = 5036993, upload-time = "2025-11-17T22:31:58.497Z" },
+ { url = "https://files.pythonhosted.org/packages/eb/33/40cd74219417e78b97c47802037cf2d87b91973e18bb968a7da48a96ea44/ml_dtypes-0.5.4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:533ce891ba774eabf607172254f2e7260ba5f57bdd64030c9a4fcfbd99815d0d", size = 5010956, upload-time = "2025-11-17T22:31:59.931Z" },
+ { url = "https://files.pythonhosted.org/packages/e1/8b/200088c6859d8221454825959df35b5244fa9bdf263fd0249ac5fb75e281/ml_dtypes-0.5.4-cp313-cp313-win_amd64.whl", hash = "sha256:f21c9219ef48ca5ee78402d5cc831bd58ea27ce89beda894428bc67a52da5328", size = 212224, upload-time = "2025-11-17T22:32:01.349Z" },
+ { url = "https://files.pythonhosted.org/packages/8f/75/dfc3775cb36367816e678f69a7843f6f03bd4e2bcd79941e01ea960a068e/ml_dtypes-0.5.4-cp313-cp313-win_arm64.whl", hash = "sha256:35f29491a3e478407f7047b8a4834e4640a77d2737e0b294d049746507af5175", size = 160798, upload-time = "2025-11-17T22:32:02.864Z" },
+ { url = "https://files.pythonhosted.org/packages/4f/74/e9ddb35fd1dd43b1106c20ced3f53c2e8e7fc7598c15638e9f80677f81d4/ml_dtypes-0.5.4-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:304ad47faa395415b9ccbcc06a0350800bc50eda70f0e45326796e27c62f18b6", size = 702083, upload-time = "2025-11-17T22:32:04.08Z" },
+ { url = "https://files.pythonhosted.org/packages/74/f5/667060b0aed1aa63166b22897fdf16dca9eb704e6b4bbf86848d5a181aa7/ml_dtypes-0.5.4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6a0df4223b514d799b8a1629c65ddc351b3efa833ccf7f8ea0cf654a61d1e35d", size = 5354111, upload-time = "2025-11-17T22:32:05.546Z" },
+ { url = "https://files.pythonhosted.org/packages/40/49/0f8c498a28c0efa5f5c95a9e374c83ec1385ca41d0e85e7cf40e5d519a21/ml_dtypes-0.5.4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:531eff30e4d368cb6255bc2328d070e35836aa4f282a0fb5f3a0cd7260257298", size = 5366453, upload-time = "2025-11-17T22:32:07.115Z" },
+ { url = "https://files.pythonhosted.org/packages/8c/27/12607423d0a9c6bbbcc780ad19f1f6baa2b68b18ce4bddcdc122c4c68dc9/ml_dtypes-0.5.4-cp313-cp313t-win_amd64.whl", hash = "sha256:cb73dccfc991691c444acc8c0012bee8f2470da826a92e3a20bb333b1a7894e6", size = 225612, upload-time = "2025-11-17T22:32:08.615Z" },
+ { url = "https://files.pythonhosted.org/packages/e5/80/5a5929e92c72936d5b19872c5fb8fc09327c1da67b3b68c6a13139e77e20/ml_dtypes-0.5.4-cp313-cp313t-win_arm64.whl", hash = "sha256:3bbbe120b915090d9dd1375e4684dd17a20a2491ef25d640a908281da85e73f1", size = 164145, upload-time = "2025-11-17T22:32:09.782Z" },
+ { url = "https://files.pythonhosted.org/packages/72/4e/1339dc6e2557a344f5ba5590872e80346f76f6cb2ac3dd16e4666e88818c/ml_dtypes-0.5.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:2b857d3af6ac0d39db1de7c706e69c7f9791627209c3d6dedbfca8c7e5faec22", size = 673781, upload-time = "2025-11-17T22:32:11.364Z" },
+ { url = "https://files.pythonhosted.org/packages/04/f9/067b84365c7e83bda15bba2b06c6ca250ce27b20630b1128c435fb7a09aa/ml_dtypes-0.5.4-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:805cef3a38f4eafae3a5bf9ebdcdb741d0bcfd9e1bd90eb54abd24f928cd2465", size = 5036145, upload-time = "2025-11-17T22:32:12.783Z" },
+ { url = "https://files.pythonhosted.org/packages/c6/bb/82c7dcf38070b46172a517e2334e665c5bf374a262f99a283ea454bece7c/ml_dtypes-0.5.4-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14a4fd3228af936461db66faccef6e4f41c1d82fcc30e9f8d58a08916b1d811f", size = 5010230, upload-time = "2025-11-17T22:32:14.38Z" },
+ { url = "https://files.pythonhosted.org/packages/e9/93/2bfed22d2498c468f6bcd0d9f56b033eaa19f33320389314c19ef6766413/ml_dtypes-0.5.4-cp314-cp314-win_amd64.whl", hash = "sha256:8c6a2dcebd6f3903e05d51960a8058d6e131fe69f952a5397e5dbabc841b6d56", size = 221032, upload-time = "2025-11-17T22:32:15.763Z" },
+ { url = "https://files.pythonhosted.org/packages/76/a3/9c912fe6ea747bb10fe2f8f54d027eb265db05dfb0c6335e3e063e74e6e8/ml_dtypes-0.5.4-cp314-cp314-win_arm64.whl", hash = "sha256:5a0f68ca8fd8d16583dfa7793973feb86f2fbb56ce3966daf9c9f748f52a2049", size = 163353, upload-time = "2025-11-17T22:32:16.932Z" },
+ { url = "https://files.pythonhosted.org/packages/cd/02/48aa7d84cc30ab4ee37624a2fd98c56c02326785750cd212bc0826c2f15b/ml_dtypes-0.5.4-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:bfc534409c5d4b0bf945af29e5d0ab075eae9eecbb549ff8a29280db822f34f9", size = 702085, upload-time = "2025-11-17T22:32:18.175Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/e7/85cb99fe80a7a5513253ec7faa88a65306be071163485e9a626fce1b6e84/ml_dtypes-0.5.4-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2314892cdc3fcf05e373d76d72aaa15fda9fb98625effa73c1d646f331fcecb7", size = 5355358, upload-time = "2025-11-17T22:32:19.7Z" },
+ { url = "https://files.pythonhosted.org/packages/79/2b/a826ba18d2179a56e144aef69e57fb2ab7c464ef0b2111940ee8a3a223a2/ml_dtypes-0.5.4-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d2ffd05a2575b1519dc928c0b93c06339eb67173ff53acb00724502cda231cf", size = 5366332, upload-time = "2025-11-17T22:32:21.193Z" },
+ { url = "https://files.pythonhosted.org/packages/84/44/f4d18446eacb20ea11e82f133ea8f86e2bf2891785b67d9da8d0ab0ef525/ml_dtypes-0.5.4-cp314-cp314t-win_amd64.whl", hash = "sha256:4381fe2f2452a2d7589689693d3162e876b3ddb0a832cde7a414f8e1adf7eab1", size = 236612, upload-time = "2025-11-17T22:32:22.579Z" },
+ { url = "https://files.pythonhosted.org/packages/ad/3f/3d42e9a78fe5edf792a83c074b13b9b770092a4fbf3462872f4303135f09/ml_dtypes-0.5.4-cp314-cp314t-win_arm64.whl", hash = "sha256:11942cbf2cf92157db91e5022633c0d9474d4dfd813a909383bd23ce828a4b7d", size = 168825, upload-time = "2025-11-17T22:32:23.766Z" },
]
[[package]]
@@ -1606,15 +1265,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", size = 4695, upload-time = "2023-02-04T12:11:25.002Z" },
]
-[[package]]
-name = "networkx"
-version = "3.2.1"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/c4/80/a84676339aaae2f1cfdf9f418701dd634aef9cc76f708ef55c36ff39c3ca/networkx-3.2.1.tar.gz", hash = "sha256:9f1bb5cf3409bf324e0a722c20bdb4c20ee39bf1c30ce8ae499c8502b0b5e0c6", size = 2073928, upload-time = "2023-10-28T08:41:39.364Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/d5/f0/8fbc882ca80cf077f1b246c0e3c3465f7f415439bdea6b899f6b19f61f70/networkx-3.2.1-py3-none-any.whl", hash = "sha256:f18c69adc97877c42332c170849c96cefa91881c99a7cb3e95b7c659ebdc1ec2", size = 1647772, upload-time = "2023-10-28T08:41:36.945Z" },
-]
-
[[package]]
name = "numpy"
version = "2.4.6"
@@ -1709,7 +1359,7 @@ wheels = [
[[package]]
name = "onnx"
-version = "1.19.1"
+version = "1.22.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "ml-dtypes" },
@@ -1717,31 +1367,26 @@ dependencies = [
{ name = "protobuf" },
{ name = "typing-extensions" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/27/2f/c619eb65769357e9b6de9212c9a821ab39cd484448e5d6b3fb5fb0a64c6d/onnx-1.19.1.tar.gz", hash = "sha256:737524d6eb3907d3499ea459c6f01c5a96278bb3a0f2ff8ae04786fb5d7f1ed5", size = 12033525, upload-time = "2025-10-10T04:01:34.342Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/04/19/8ea73a64b368b75fe339771a20a02bc61ea1f551484c9e3d9d0bfbd0450f/onnx-1.22.0.tar.gz", hash = "sha256:ef40c0aaf0b643857ea9306fc7eddce17eaf9fb0407e4801f1fc5758443a38e0", size = 12024721, upload-time = "2026-06-15T12:50:05.354Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/36/07/0019c72924909e4f64b9199770630ab7b8d7914b912b03230e68f5eda7ae/onnx-1.19.1-cp311-cp311-macosx_12_0_universal2.whl", hash = "sha256:17aaf5832126de0a5197a5864e4f09a764dd7681d3035135547959b4b6b77a09", size = 18320936, upload-time = "2025-10-10T04:00:04.235Z" },
- { url = "https://files.pythonhosted.org/packages/af/2f/5c47acf740dc35f0decc640844260fbbdc0efa0565657c93fd7ff30f13f3/onnx-1.19.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:01b292a4d0b197c45d8184545bbc8ae1df83466341b604187c1b05902cb9c920", size = 18044269, upload-time = "2025-10-10T04:00:07.449Z" },
- { url = "https://files.pythonhosted.org/packages/d5/61/6c457ee8c3a62a3cad0a4bfa4c5436bb3ac4df90c3551d40bee1224b5b51/onnx-1.19.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1839af08ab4a909e4af936b8149c27f8c64b96138981024e251906e0539d8bf9", size = 18218092, upload-time = "2025-10-10T04:00:11.135Z" },
- { url = "https://files.pythonhosted.org/packages/54/d5/ab832e1369505e67926a70e9a102061f89ad01f91aa296c4b1277cb81b25/onnx-1.19.1-cp311-cp311-win32.whl", hash = "sha256:0bdbb676e3722bd32f9227c465d552689f49086f986a696419d865cb4e70b989", size = 16344809, upload-time = "2025-10-10T04:00:14.634Z" },
- { url = "https://files.pythonhosted.org/packages/8b/b5/6eb4611d24b85002f878ba8476b4cecbe6f9784c0236a3c5eff85236cc0a/onnx-1.19.1-cp311-cp311-win_amd64.whl", hash = "sha256:1346853df5c1e3ebedb2e794cf2a51e0f33759affd655524864ccbcddad7035b", size = 16464319, upload-time = "2025-10-10T04:00:18.235Z" },
- { url = "https://files.pythonhosted.org/packages/0c/ff/f0e1f06420c70e20d497fec7c94a864d069943b6312bedd4224c0ab946f8/onnx-1.19.1-cp311-cp311-win_arm64.whl", hash = "sha256:2d69c280c0e665b7f923f499243b9bb84fe97970b7a4668afa0032045de602c8", size = 16437503, upload-time = "2025-10-10T04:00:21.247Z" },
- { url = "https://files.pythonhosted.org/packages/50/07/f6c5b2cffef8c29e739616d1415aea22f7b7ef1f19c17f02b7cff71f5498/onnx-1.19.1-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:3612193a89ddbce5c4e86150869b9258780a82fb8c4ca197723a4460178a6ce9", size = 18327840, upload-time = "2025-10-10T04:00:24.259Z" },
- { url = "https://files.pythonhosted.org/packages/93/20/0568ebd52730287ae80cac8ac893a7301c793ea1630984e2519ee92b02a9/onnx-1.19.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6c2fd2f744e7a3880ad0c262efa2edf6d965d0bd02b8f327ec516ad4cb0f2f15", size = 18042539, upload-time = "2025-10-10T04:00:27.693Z" },
- { url = "https://files.pythonhosted.org/packages/14/fd/cd7a0fd10a04f8cc5ae436b63e0022e236fe51b9dbb8ee6317fd48568c72/onnx-1.19.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:485d3674d50d789e0ee72fa6f6e174ab81cb14c772d594f992141bd744729d8a", size = 18218271, upload-time = "2025-10-10T04:00:30.495Z" },
- { url = "https://files.pythonhosted.org/packages/65/68/cc8b8c05469fe08384b446304ad7e6256131ca0463bf6962366eebec98c0/onnx-1.19.1-cp312-cp312-win32.whl", hash = "sha256:638bc56ff1a5718f7441e887aeb4e450f37a81c6eac482040381b140bd9ba601", size = 16345111, upload-time = "2025-10-10T04:00:34.982Z" },
- { url = "https://files.pythonhosted.org/packages/c7/5e/d1cb16693598a512c2cf9ffe0841d8d8fd2c83ae8e889efd554f5aa427cf/onnx-1.19.1-cp312-cp312-win_amd64.whl", hash = "sha256:bc7e2e4e163e679721e547958b5a7db875bf822cad371b7c1304aa4401a7c7a4", size = 16465621, upload-time = "2025-10-10T04:00:39.107Z" },
- { url = "https://files.pythonhosted.org/packages/90/32/da116cc61fdef334782aa7f87a1738431dd1af1a5d1a44bd95d6d51ad260/onnx-1.19.1-cp312-cp312-win_arm64.whl", hash = "sha256:17c215b1c0f20fe93b4cbe62668247c1d2294b9bc7f6be0ca9ced28e980c07b7", size = 16437505, upload-time = "2025-10-10T04:00:42.255Z" },
- { url = "https://files.pythonhosted.org/packages/b4/b8/ab1fdfe2e8502f4dc4289fc893db35816bd20d080d8370f86e74dda5f598/onnx-1.19.1-cp313-cp313-macosx_12_0_universal2.whl", hash = "sha256:4e5f938c68c4dffd3e19e4fd76eb98d298174eb5ebc09319cdd0ec5fe50050dc", size = 18327815, upload-time = "2025-10-10T04:00:45.682Z" },
- { url = "https://files.pythonhosted.org/packages/04/40/eb875745a4b92aea10e5e32aa2830f409c4d7b6f7b48ca1c4eaad96636c5/onnx-1.19.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:86e20a5984b017feeef2dbf4ceff1c7c161ab9423254968dd77d3696c38691d0", size = 18041464, upload-time = "2025-10-10T04:00:48.557Z" },
- { url = "https://files.pythonhosted.org/packages/cf/8e/8586135f40dbe4989cec4d413164bc8fc5c73d37c566f33f5ea3a7f2b6f6/onnx-1.19.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d9c467f0f29993c12f330736af87972f30adb8329b515f39d63a0db929cb2c", size = 18218244, upload-time = "2025-10-10T04:00:51.891Z" },
- { url = "https://files.pythonhosted.org/packages/51/b5/4201254b8683129db5da3fb55aa1f7e56d0a8d45c66ce875dec21ca1ff25/onnx-1.19.1-cp313-cp313-win32.whl", hash = "sha256:65eee353a51b4e4ca3e797784661e5376e2b209f17557e04921eac9166a8752e", size = 16345330, upload-time = "2025-10-10T04:00:54.858Z" },
- { url = "https://files.pythonhosted.org/packages/69/67/c6d239afbcdbeb6805432969b908b5c9f700c96d332b34e3f99518d76caf/onnx-1.19.1-cp313-cp313-win_amd64.whl", hash = "sha256:c3bc87e38b53554b1fc9ef7b275c81c6f5c93c90a91935bb0aa8d4d498a6d48e", size = 16465567, upload-time = "2025-10-10T04:00:57.893Z" },
- { url = "https://files.pythonhosted.org/packages/99/fe/89f1e40f5bc54595ff0dcf5391ce19e578b528973ccc74dd99800196d30d/onnx-1.19.1-cp313-cp313-win_arm64.whl", hash = "sha256:e41496f400afb980ec643d80d5164753a88a85234fa5c06afdeebc8b7d1ec252", size = 16437562, upload-time = "2025-10-10T04:01:00.703Z" },
- { url = "https://files.pythonhosted.org/packages/86/43/b186ccbc8fe7e93643a6a6d40bbf2bb6ce4fb9469bbd3453c77e270c50ad/onnx-1.19.1-cp313-cp313t-macosx_12_0_universal2.whl", hash = "sha256:5f6274abf0fd74e80e78ecbb44bd44509409634525c89a9b38276c8af47dc0a2", size = 18355703, upload-time = "2025-10-10T04:01:03.735Z" },
- { url = "https://files.pythonhosted.org/packages/60/f1/22ee4d8b8f9fa4cb1d1b9579da3b4b5187ddab33846ec5ac744af02c0e2b/onnx-1.19.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:07dcd4d83584eb4bf8f21ac04c82643712e5e93ac2a0ed10121ec123cb127e1e", size = 18047830, upload-time = "2025-10-10T04:01:06.552Z" },
- { url = "https://files.pythonhosted.org/packages/8e/a4/8f3d51e3a095d42cdf2039a590cff06d024f2a10efbd0b1a2a6b3825f019/onnx-1.19.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1975860c3e720db25d37f1619976582828264bdcc64fa7511c321ac4fc01add3", size = 18221126, upload-time = "2025-10-10T04:01:09.77Z" },
- { url = "https://files.pythonhosted.org/packages/4f/0d/f9d6c2237083f1aac14b37f0b03b0d81f1147a8e2af0c3828165e0a6a67b/onnx-1.19.1-cp313-cp313t-win_amd64.whl", hash = "sha256:9807d0e181f6070ee3a6276166acdc571575d1bd522fc7e89dba16fd6e7ffed9", size = 16465560, upload-time = "2025-10-10T04:01:13.212Z" },
- { url = "https://files.pythonhosted.org/packages/36/70/8418a58faa7d606d6a92cab69ae8d361b3b3969bf7e7e9a65a86d5d1b674/onnx-1.19.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b6ee83e6929d75005482d9f304c502ac7c9b8d6db153aa6b484dae74d0f28570", size = 18042812, upload-time = "2025-10-10T04:01:15.919Z" },
+ { url = "https://files.pythonhosted.org/packages/0c/55/30825c02c92a0380ce84c3feeeec95d329fa77548ba58cb10ad4bbfd83c6/onnx-1.22.0-cp311-cp311-macosx_12_0_universal2.whl", hash = "sha256:2d8f229a553fa440fe623ed7b36fca5e7762da3af871c3f8f8ce451df73e2914", size = 20167891, upload-time = "2026-06-15T12:49:14.212Z" },
+ { url = "https://files.pythonhosted.org/packages/4b/24/cd4ab52ecaf41c3fbed674772ccbfe39041cb257b8471a47a37e48bff3f8/onnx-1.22.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1a89a7cb9ba13d78f009bdec448ec82a98972589734f157022a2bff7a5973a6", size = 18892720, upload-time = "2026-06-15T12:49:16.904Z" },
+ { url = "https://files.pythonhosted.org/packages/2b/a0/c9d9d56ceadb1c0a90a7cbec5a0510520ab6538938944fa84548e4b5b054/onnx-1.22.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1d0a2bdb15eb2b3cb65c438f3423d9620d14fdce32f92380e6bb1b2e09568ef5", size = 19110720, upload-time = "2026-06-15T12:49:19.812Z" },
+ { url = "https://files.pythonhosted.org/packages/0a/6e/e43e5a68d9cadde55df75310027f87127333a77e5ddcea14c73e96a10cac/onnx-1.22.0-cp311-cp311-win32.whl", hash = "sha256:239958534464612fbcb6ed23d5228aaa925b39b8773f58726809ffdccb4edd1c", size = 17083746, upload-time = "2026-06-15T12:49:22.935Z" },
+ { url = "https://files.pythonhosted.org/packages/54/57/cc0a9f2cf4522e42829d089927b4b75924d32f50dca237482e7b741df003/onnx-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:8561a2c00041c07e08db0c228593b5b4694100398685f348532af7dbb84189da", size = 17215684, upload-time = "2026-06-15T12:49:26.084Z" },
+ { url = "https://files.pythonhosted.org/packages/c9/99/0f049f9eaa06c8383060c5f0a338e3a6caac8822e6e326c9162f05abf95a/onnx-1.22.0-cp311-cp311-win_arm64.whl", hash = "sha256:8907b9b9389893bc0dc6314cc00ee1e3a69844e48d689eacc6a0340411a7da58", size = 17210398, upload-time = "2026-06-15T12:49:29.091Z" },
+ { url = "https://files.pythonhosted.org/packages/ee/6a/481561f1093834376ed493e4ca42a73e5be0d50031f2969c86593bdc7c96/onnx-1.22.0-cp312-abi3-macosx_12_0_universal2.whl", hash = "sha256:596fbf0490947533c1c1045ba860851dc9fb77471023dac9a71ba5b42ceab103", size = 20167081, upload-time = "2026-06-15T12:49:32.078Z" },
+ { url = "https://files.pythonhosted.org/packages/84/55/b34fc2aa30aa54b4a775402d24c4082242c720283a274fe976ac8eb94480/onnx-1.22.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ae5a563f281cd9d2845622cecf6c092a57e4ee1b138f66fdbbdd4200567a5e16", size = 18889249, upload-time = "2026-06-15T12:49:34.7Z" },
+ { url = "https://files.pythonhosted.org/packages/09/a6/bd32357e6cc1ecb473afd78193d7231724f284435d2db25696ecfaaa1503/onnx-1.22.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:955e02e1f6d385b53d52f9cd7b9cdf5caf417c300bcfe3c64c6d542be763845b", size = 19106514, upload-time = "2026-06-15T12:49:37.424Z" },
+ { url = "https://files.pythonhosted.org/packages/5a/9d/3af461ac6c714b8b369cb71499659932f4f12cfb066250b62f7567c3d530/onnx-1.22.0-cp312-abi3-pyemscripten_2025_0_wasm32.whl", hash = "sha256:82e9f27fc1223cb06d68a56bed6f9d3caf3d0dad1b61bce45006d529b15bd94c", size = 16966387, upload-time = "2026-06-15T12:49:40.918Z" },
+ { url = "https://files.pythonhosted.org/packages/d0/f0/68195b5e5a53e333faf2660f5352ee43738d0e42fc5216cc6b1871a9fbfb/onnx-1.22.0-cp312-abi3-win32.whl", hash = "sha256:cc8b66b312f8f03a53e268afb67180a2d97dd12cc79e2b61361c6c0073448016", size = 17081568, upload-time = "2026-06-15T12:49:43.398Z" },
+ { url = "https://files.pythonhosted.org/packages/13/a8/734725bb703c5fabb687f79c79e51249475212b3eb37771ac4a4ac9b487f/onnx-1.22.0-cp312-abi3-win_amd64.whl", hash = "sha256:72ccebab3bac07215c204ce8848d42e78eaaa666badbf72d25cd359b9f269e3a", size = 17213290, upload-time = "2026-06-15T12:49:45.933Z" },
+ { url = "https://files.pythonhosted.org/packages/bd/2a/8ce48d8ae26a8761ad4e5dc771961b155c5c3c7c8540ec7f2f2d71b69af0/onnx-1.22.0-cp312-abi3-win_arm64.whl", hash = "sha256:f3c120dcdb70ad738f3c061b32798f408ea299eb69f84dd69ab4a6bf3c2ec01f", size = 17207030, upload-time = "2026-06-15T12:49:48.635Z" },
+ { url = "https://files.pythonhosted.org/packages/f3/13/47323b97846387848efb1044ded11bb94b83526f3d1fbdb37c6480d4520f/onnx-1.22.0-cp314-cp314t-macosx_12_0_universal2.whl", hash = "sha256:19e45e4af88e3fe3261458d4b8cc461957ae2782a358a3560503569bf3b23b72", size = 20176465, upload-time = "2026-06-15T12:49:51.311Z" },
+ { url = "https://files.pythonhosted.org/packages/13/0c/d3b8a7e7eee123938586c608bb9894b5723f2342b9450c0eec59fbec7099/onnx-1.22.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c21a0e59fd967a95b358e4a6e756d1f1eec2d304a83480f329f66e30d2bf0223", size = 18894028, upload-time = "2026-06-15T12:49:54.451Z" },
+ { url = "https://files.pythonhosted.org/packages/b8/8a/da2a97ab46fe6e0cd9beb3ac14603a22f5be492f9ca347faf8233a07bb33/onnx-1.22.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2632406b8f523ef2e2873c363f90b20a3d88c0fbcfac757d3addffccf8f452c2", size = 19110420, upload-time = "2026-06-15T12:49:57.665Z" },
+ { url = "https://files.pythonhosted.org/packages/b9/a3/ce984063017518307ebfaa545782fc400e593dc2d7fdf4f23ce4be1ed197/onnx-1.22.0-cp314-cp314t-win_amd64.whl", hash = "sha256:a3a39fc4643867aecb33417fdddb11e308ee79d2d4a584b9d50cc7aec2091b13", size = 17237547, upload-time = "2026-06-15T12:50:00.382Z" },
+ { url = "https://files.pythonhosted.org/packages/00/50/257a880384a1dd502d543b0067945074d63cd17d0840e958355bc8197da8/onnx-1.22.0-cp314-cp314t-win_arm64.whl", hash = "sha256:8e268cdc0547e3949799ffd4a44451dc2b9080b57d0824a2db680b6ec65506f0", size = 17231391, upload-time = "2026-06-15T12:50:03.047Z" },
]
[[package]]
@@ -2058,18 +1703,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556, upload-time = "2024-04-20T21:34:40.434Z" },
]
-[[package]]
-name = "prettytable"
-version = "3.9.0"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "wcwidth" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/e1/c0/5e9c4d2a643a00a6f67578ef35485173de273a4567279e4f0c200c01386b/prettytable-3.9.0.tar.gz", hash = "sha256:f4ed94803c23073a90620b201965e5dc0bccf1760b7a7eaf3158cab8aaffdf34", size = 47874, upload-time = "2023-09-11T14:04:14.548Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/4d/81/316b6a55a0d1f327d04cc7b0ba9d04058cb62de6c3a4d4b0df280cbe3b0b/prettytable-3.9.0-py3-none-any.whl", hash = "sha256:a71292ab7769a5de274b146b276ce938786f56c31cf7cea88b6f3775d82fe8c8", size = 27772, upload-time = "2023-09-11T14:03:45.582Z" },
-]
-
[[package]]
name = "protobuf"
version = "6.33.2"
@@ -2274,15 +1907,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c", size = 1179756, upload-time = "2023-11-21T20:43:49.423Z" },
]
-[[package]]
-name = "pyparsing"
-version = "3.1.1"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/37/fe/65c989f70bd630b589adfbbcd6ed238af22319e90f059946c26b4835e44b/pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db", size = 884814, upload-time = "2023-07-30T15:07:02.617Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/39/92/8486ede85fcc088f1b3dba4ce92dd29d126fd96b0008ea213167940a2475/pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb", size = 103139, upload-time = "2023-07-30T15:06:59.829Z" },
-]
-
[[package]]
name = "pytest"
version = "9.0.3"
@@ -2338,18 +1962,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/5a/cc/06253936f4a7fa2e0f48dfe6d851d9c56df896a9ab09ac019d70b760619c/pytest_mock-3.15.1-py3-none-any.whl", hash = "sha256:0a25e2eb88fe5168d535041d09a4529a188176ae608a6d249ee65abc0949630d", size = 10095, upload-time = "2025-09-16T16:37:25.734Z" },
]
-[[package]]
-name = "python-dateutil"
-version = "2.8.2"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "six" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/4c/c4/13b4776ea2d76c115c1d1b84579f3764ee6d57204f6be27119f13a61d0a9/python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", size = 357324, upload-time = "2021-07-14T08:19:19.783Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9", size = 247702, upload-time = "2021-07-14T08:19:18.161Z" },
-]
-
[[package]]
name = "python-dotenv"
version = "1.0.0"
@@ -2511,21 +2123,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/01/1b/5dbe84eefc86f48473947e2f41711aded97eecef1231f4558f1f02713c12/pyzmq-27.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c9f7f6e13dff2e44a6afeaf2cf54cee5929ad64afaf4d40b50f93c58fc687355", size = 544862, upload-time = "2025-09-08T23:09:56.509Z" },
]
-[[package]]
-name = "qudida"
-version = "0.0.4"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "numpy" },
- { name = "opencv-python-headless" },
- { name = "scikit-learn" },
- { name = "typing-extensions" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/3e/2d/bab8babd9dc9a9e4df6eb115540cee4322c1a74078fb6f3b3ebc452a22b3/qudida-0.0.4.tar.gz", hash = "sha256:db198e2887ab0c9aa0023e565afbff41dfb76b361f85fd5e13f780d75ba18cc8", size = 3100, upload-time = "2021-08-09T16:47:55.807Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/f0/a1/a5f4bebaa31d109003909809d88aeb0d4b201463a9ea29308d9e4f9e7655/qudida-0.0.4-py3-none-any.whl", hash = "sha256:4519714c40cd0f2e6c51e1735edae8f8b19f4efe1f33be13e9d644ca5f736dd6", size = 3478, upload-time = "2021-08-09T16:47:54.637Z" },
-]
-
[[package]]
name = "rapidocr"
version = "3.8.1"
@@ -2661,139 +2258,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/15/19/016553f86f207450aebebc2b2b5088d086b901cc8186c02ac4284db3bd88/ruff-0.15.16-py3-none-win_arm64.whl", hash = "sha256:8cd61783afb39638a7133ef0d2dfb1e91277593962f81b5a8423eb0b888a6121", size = 11134555, upload-time = "2026-06-04T16:33:00.136Z" },
]
-[[package]]
-name = "scikit-image"
-version = "0.25.2"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "imageio" },
- { name = "lazy-loader" },
- { name = "networkx" },
- { name = "numpy" },
- { name = "packaging" },
- { name = "pillow" },
- { name = "scipy" },
- { name = "tifffile" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/c7/a8/3c0f256012b93dd2cb6fda9245e9f4bff7dc0486880b248005f15ea2255e/scikit_image-0.25.2.tar.gz", hash = "sha256:e5a37e6cd4d0c018a7a55b9d601357e3382826d3888c10d0213fc63bff977dde", size = 22693594, upload-time = "2025-02-18T18:05:24.538Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/c4/97/3051c68b782ee3f1fb7f8f5bb7d535cf8cb92e8aae18fa9c1cdf7e15150d/scikit_image-0.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f4bac9196fb80d37567316581c6060763b0f4893d3aca34a9ede3825bc035b17", size = 14003057, upload-time = "2025-02-18T18:04:30.395Z" },
- { url = "https://files.pythonhosted.org/packages/19/23/257fc696c562639826065514d551b7b9b969520bd902c3a8e2fcff5b9e17/scikit_image-0.25.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:d989d64ff92e0c6c0f2018c7495a5b20e2451839299a018e0e5108b2680f71e0", size = 13180335, upload-time = "2025-02-18T18:04:33.449Z" },
- { url = "https://files.pythonhosted.org/packages/ef/14/0c4a02cb27ca8b1e836886b9ec7c9149de03053650e9e2ed0625f248dd92/scikit_image-0.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2cfc96b27afe9a05bc92f8c6235321d3a66499995675b27415e0d0c76625173", size = 14144783, upload-time = "2025-02-18T18:04:36.594Z" },
- { url = "https://files.pythonhosted.org/packages/dd/9b/9fb556463a34d9842491d72a421942c8baff4281025859c84fcdb5e7e602/scikit_image-0.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24cc986e1f4187a12aa319f777b36008764e856e5013666a4a83f8df083c2641", size = 14785376, upload-time = "2025-02-18T18:04:39.856Z" },
- { url = "https://files.pythonhosted.org/packages/de/ec/b57c500ee85885df5f2188f8bb70398481393a69de44a00d6f1d055f103c/scikit_image-0.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:b4f6b61fc2db6340696afe3db6b26e0356911529f5f6aee8c322aa5157490c9b", size = 12791698, upload-time = "2025-02-18T18:04:42.868Z" },
- { url = "https://files.pythonhosted.org/packages/35/8c/5df82881284459f6eec796a5ac2a0a304bb3384eec2e73f35cfdfcfbf20c/scikit_image-0.25.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8db8dd03663112783221bf01ccfc9512d1cc50ac9b5b0fe8f4023967564719fb", size = 13986000, upload-time = "2025-02-18T18:04:47.156Z" },
- { url = "https://files.pythonhosted.org/packages/ce/e6/93bebe1abcdce9513ffec01d8af02528b4c41fb3c1e46336d70b9ed4ef0d/scikit_image-0.25.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:483bd8cc10c3d8a7a37fae36dfa5b21e239bd4ee121d91cad1f81bba10cfb0ed", size = 13235893, upload-time = "2025-02-18T18:04:51.049Z" },
- { url = "https://files.pythonhosted.org/packages/53/4b/eda616e33f67129e5979a9eb33c710013caa3aa8a921991e6cc0b22cea33/scikit_image-0.25.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d1e80107bcf2bf1291acfc0bf0425dceb8890abe9f38d8e94e23497cbf7ee0d", size = 14178389, upload-time = "2025-02-18T18:04:54.245Z" },
- { url = "https://files.pythonhosted.org/packages/6b/b5/b75527c0f9532dd8a93e8e7cd8e62e547b9f207d4c11e24f0006e8646b36/scikit_image-0.25.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a17e17eb8562660cc0d31bb55643a4da996a81944b82c54805c91b3fe66f4824", size = 15003435, upload-time = "2025-02-18T18:04:57.586Z" },
- { url = "https://files.pythonhosted.org/packages/34/e3/49beb08ebccda3c21e871b607c1cb2f258c3fa0d2f609fed0a5ba741b92d/scikit_image-0.25.2-cp312-cp312-win_amd64.whl", hash = "sha256:bdd2b8c1de0849964dbc54037f36b4e9420157e67e45a8709a80d727f52c7da2", size = 12899474, upload-time = "2025-02-18T18:05:01.166Z" },
- { url = "https://files.pythonhosted.org/packages/e6/7c/9814dd1c637f7a0e44342985a76f95a55dd04be60154247679fd96c7169f/scikit_image-0.25.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7efa888130f6c548ec0439b1a7ed7295bc10105458a421e9bf739b457730b6da", size = 13921841, upload-time = "2025-02-18T18:05:03.963Z" },
- { url = "https://files.pythonhosted.org/packages/84/06/66a2e7661d6f526740c309e9717d3bd07b473661d5cdddef4dd978edab25/scikit_image-0.25.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:dd8011efe69c3641920614d550f5505f83658fe33581e49bed86feab43a180fc", size = 13196862, upload-time = "2025-02-18T18:05:06.986Z" },
- { url = "https://files.pythonhosted.org/packages/4e/63/3368902ed79305f74c2ca8c297dfeb4307269cbe6402412668e322837143/scikit_image-0.25.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28182a9d3e2ce3c2e251383bdda68f8d88d9fff1a3ebe1eb61206595c9773341", size = 14117785, upload-time = "2025-02-18T18:05:10.69Z" },
- { url = "https://files.pythonhosted.org/packages/cd/9b/c3da56a145f52cd61a68b8465d6a29d9503bc45bc993bb45e84371c97d94/scikit_image-0.25.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8abd3c805ce6944b941cfed0406d88faeb19bab3ed3d4b50187af55cf24d147", size = 14977119, upload-time = "2025-02-18T18:05:13.871Z" },
- { url = "https://files.pythonhosted.org/packages/8a/97/5fcf332e1753831abb99a2525180d3fb0d70918d461ebda9873f66dcc12f/scikit_image-0.25.2-cp313-cp313-win_amd64.whl", hash = "sha256:64785a8acefee460ec49a354706db0b09d1f325674107d7fa3eadb663fb56d6f", size = 12885116, upload-time = "2025-02-18T18:05:17.844Z" },
- { url = "https://files.pythonhosted.org/packages/10/cc/75e9f17e3670b5ed93c32456fda823333c6279b144cd93e2c03aa06aa472/scikit_image-0.25.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:330d061bd107d12f8d68f1d611ae27b3b813b8cdb0300a71d07b1379178dd4cd", size = 13862801, upload-time = "2025-02-18T18:05:20.783Z" },
-]
-
-[[package]]
-name = "scikit-learn"
-version = "1.7.1"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "joblib" },
- { name = "numpy" },
- { name = "scipy" },
- { name = "threadpoolctl" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/41/84/5f4af978fff619706b8961accac84780a6d298d82a8873446f72edb4ead0/scikit_learn-1.7.1.tar.gz", hash = "sha256:24b3f1e976a4665aa74ee0fcaac2b8fccc6ae77c8e07ab25da3ba6d3292b9802", size = 7190445, upload-time = "2025-07-18T08:01:54.5Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/b4/bd/a23177930abd81b96daffa30ef9c54ddbf544d3226b8788ce4c3ef1067b4/scikit_learn-1.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:90c8494ea23e24c0fb371afc474618c1019dc152ce4a10e4607e62196113851b", size = 9334838, upload-time = "2025-07-18T08:01:11.239Z" },
- { url = "https://files.pythonhosted.org/packages/8d/a1/d3a7628630a711e2ac0d1a482910da174b629f44e7dd8cfcd6924a4ef81a/scikit_learn-1.7.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:bb870c0daf3bf3be145ec51df8ac84720d9972170786601039f024bf6d61a518", size = 8651241, upload-time = "2025-07-18T08:01:13.234Z" },
- { url = "https://files.pythonhosted.org/packages/26/92/85ec172418f39474c1cd0221d611345d4f433fc4ee2fc68e01f524ccc4e4/scikit_learn-1.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:40daccd1b5623f39e8943ab39735cadf0bdce80e67cdca2adcb5426e987320a8", size = 9718677, upload-time = "2025-07-18T08:01:15.649Z" },
- { url = "https://files.pythonhosted.org/packages/df/ce/abdb1dcbb1d2b66168ec43b23ee0cee356b4cc4100ddee3943934ebf1480/scikit_learn-1.7.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:30d1f413cfc0aa5a99132a554f1d80517563c34a9d3e7c118fde2d273c6fe0f7", size = 9511189, upload-time = "2025-07-18T08:01:18.013Z" },
- { url = "https://files.pythonhosted.org/packages/b2/3b/47b5eaee01ef2b5a80ba3f7f6ecf79587cb458690857d4777bfd77371c6f/scikit_learn-1.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:c711d652829a1805a95d7fe96654604a8f16eab5a9e9ad87b3e60173415cb650", size = 8914794, upload-time = "2025-07-18T08:01:20.357Z" },
- { url = "https://files.pythonhosted.org/packages/cb/16/57f176585b35ed865f51b04117947fe20f130f78940c6477b6d66279c9c2/scikit_learn-1.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3cee419b49b5bbae8796ecd690f97aa412ef1674410c23fc3257c6b8b85b8087", size = 9260431, upload-time = "2025-07-18T08:01:22.77Z" },
- { url = "https://files.pythonhosted.org/packages/67/4e/899317092f5efcab0e9bc929e3391341cec8fb0e816c4789686770024580/scikit_learn-1.7.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2fd8b8d35817b0d9ebf0b576f7d5ffbbabdb55536b0655a8aaae629d7ffd2e1f", size = 8637191, upload-time = "2025-07-18T08:01:24.731Z" },
- { url = "https://files.pythonhosted.org/packages/f3/1b/998312db6d361ded1dd56b457ada371a8d8d77ca2195a7d18fd8a1736f21/scikit_learn-1.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:588410fa19a96a69763202f1d6b7b91d5d7a5d73be36e189bc6396bfb355bd87", size = 9486346, upload-time = "2025-07-18T08:01:26.713Z" },
- { url = "https://files.pythonhosted.org/packages/ad/09/a2aa0b4e644e5c4ede7006748f24e72863ba2ae71897fecfd832afea01b4/scikit_learn-1.7.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e3142f0abe1ad1d1c31a2ae987621e41f6b578144a911ff4ac94781a583adad7", size = 9290988, upload-time = "2025-07-18T08:01:28.938Z" },
- { url = "https://files.pythonhosted.org/packages/15/fa/c61a787e35f05f17fc10523f567677ec4eeee5f95aa4798dbbbcd9625617/scikit_learn-1.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:3ddd9092c1bd469acab337d87930067c87eac6bd544f8d5027430983f1e1ae88", size = 8735568, upload-time = "2025-07-18T08:01:30.936Z" },
- { url = "https://files.pythonhosted.org/packages/52/f8/e0533303f318a0f37b88300d21f79b6ac067188d4824f1047a37214ab718/scikit_learn-1.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b7839687fa46d02e01035ad775982f2470be2668e13ddd151f0f55a5bf123bae", size = 9213143, upload-time = "2025-07-18T08:01:32.942Z" },
- { url = "https://files.pythonhosted.org/packages/71/f3/f1df377d1bdfc3e3e2adc9c119c238b182293e6740df4cbeac6de2cc3e23/scikit_learn-1.7.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:a10f276639195a96c86aa572ee0698ad64ee939a7b042060b98bd1930c261d10", size = 8591977, upload-time = "2025-07-18T08:01:34.967Z" },
- { url = "https://files.pythonhosted.org/packages/99/72/c86a4cd867816350fe8dee13f30222340b9cd6b96173955819a5561810c5/scikit_learn-1.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:13679981fdaebc10cc4c13c43344416a86fcbc61449cb3e6517e1df9d12c8309", size = 9436142, upload-time = "2025-07-18T08:01:37.397Z" },
- { url = "https://files.pythonhosted.org/packages/e8/66/277967b29bd297538dc7a6ecfb1a7dce751beabd0d7f7a2233be7a4f7832/scikit_learn-1.7.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f1262883c6a63f067a980a8cdd2d2e7f2513dddcef6a9eaada6416a7a7cbe43", size = 9282996, upload-time = "2025-07-18T08:01:39.721Z" },
- { url = "https://files.pythonhosted.org/packages/e2/47/9291cfa1db1dae9880420d1e07dbc7e8dd4a7cdbc42eaba22512e6bde958/scikit_learn-1.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:ca6d31fb10e04d50bfd2b50d66744729dbb512d4efd0223b864e2fdbfc4cee11", size = 8707418, upload-time = "2025-07-18T08:01:42.124Z" },
- { url = "https://files.pythonhosted.org/packages/61/95/45726819beccdaa34d3362ea9b2ff9f2b5d3b8bf721bd632675870308ceb/scikit_learn-1.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:781674d096303cfe3d351ae6963ff7c958db61cde3421cd490e3a5a58f2a94ae", size = 9561466, upload-time = "2025-07-18T08:01:44.195Z" },
- { url = "https://files.pythonhosted.org/packages/ee/1c/6f4b3344805de783d20a51eb24d4c9ad4b11a7f75c1801e6ec6d777361fd/scikit_learn-1.7.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:10679f7f125fe7ecd5fad37dd1aa2daae7e3ad8df7f3eefa08901b8254b3e12c", size = 9040467, upload-time = "2025-07-18T08:01:46.671Z" },
- { url = "https://files.pythonhosted.org/packages/6f/80/abe18fe471af9f1d181904203d62697998b27d9b62124cd281d740ded2f9/scikit_learn-1.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1f812729e38c8cb37f760dce71a9b83ccfb04f59b3dca7c6079dcdc60544fa9e", size = 9532052, upload-time = "2025-07-18T08:01:48.676Z" },
- { url = "https://files.pythonhosted.org/packages/14/82/b21aa1e0c4cee7e74864d3a5a721ab8fcae5ca55033cb6263dca297ed35b/scikit_learn-1.7.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:88e1a20131cf741b84b89567e1717f27a2ced228e0f29103426102bc2e3b8ef7", size = 9361575, upload-time = "2025-07-18T08:01:50.639Z" },
- { url = "https://files.pythonhosted.org/packages/f2/20/f4777fcd5627dc6695fa6b92179d0edb7a3ac1b91bcd9a1c7f64fa7ade23/scikit_learn-1.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b1bd1d919210b6a10b7554b717c9000b5485aa95a1d0f177ae0d7ee8ec750da5", size = 9277310, upload-time = "2025-07-18T08:01:52.547Z" },
-]
-
-[[package]]
-name = "scipy"
-version = "1.16.1"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "numpy" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/f5/4a/b927028464795439faec8eaf0b03b011005c487bb2d07409f28bf30879c4/scipy-1.16.1.tar.gz", hash = "sha256:44c76f9e8b6e8e488a586190ab38016e4ed2f8a038af7cd3defa903c0a2238b3", size = 30580861, upload-time = "2025-07-27T16:33:30.834Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/da/91/812adc6f74409b461e3a5fa97f4f74c769016919203138a3bf6fc24ba4c5/scipy-1.16.1-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:c033fa32bab91dc98ca59d0cf23bb876454e2bb02cbe592d5023138778f70030", size = 36552519, upload-time = "2025-07-27T16:26:29.658Z" },
- { url = "https://files.pythonhosted.org/packages/47/18/8e355edcf3b71418d9e9f9acd2708cc3a6c27e8f98fde0ac34b8a0b45407/scipy-1.16.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:6e5c2f74e5df33479b5cd4e97a9104c511518fbd979aa9b8f6aec18b2e9ecae7", size = 28638010, upload-time = "2025-07-27T16:26:38.196Z" },
- { url = "https://files.pythonhosted.org/packages/d9/eb/e931853058607bdfbc11b86df19ae7a08686121c203483f62f1ecae5989c/scipy-1.16.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0a55ffe0ba0f59666e90951971a884d1ff6f4ec3275a48f472cfb64175570f77", size = 20909790, upload-time = "2025-07-27T16:26:43.93Z" },
- { url = "https://files.pythonhosted.org/packages/45/0c/be83a271d6e96750cd0be2e000f35ff18880a46f05ce8b5d3465dc0f7a2a/scipy-1.16.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:f8a5d6cd147acecc2603fbd382fed6c46f474cccfcf69ea32582e033fb54dcfe", size = 23513352, upload-time = "2025-07-27T16:26:50.017Z" },
- { url = "https://files.pythonhosted.org/packages/7c/bf/fe6eb47e74f762f933cca962db7f2c7183acfdc4483bd1c3813cfe83e538/scipy-1.16.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cb18899127278058bcc09e7b9966d41a5a43740b5bb8dcba401bd983f82e885b", size = 33534643, upload-time = "2025-07-27T16:26:57.503Z" },
- { url = "https://files.pythonhosted.org/packages/bb/ba/63f402e74875486b87ec6506a4f93f6d8a0d94d10467280f3d9d7837ce3a/scipy-1.16.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:adccd93a2fa937a27aae826d33e3bfa5edf9aa672376a4852d23a7cd67a2e5b7", size = 35376776, upload-time = "2025-07-27T16:27:06.639Z" },
- { url = "https://files.pythonhosted.org/packages/c3/b4/04eb9d39ec26a1b939689102da23d505ea16cdae3dbb18ffc53d1f831044/scipy-1.16.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:18aca1646a29ee9a0625a1be5637fa798d4d81fdf426481f06d69af828f16958", size = 35698906, upload-time = "2025-07-27T16:27:14.943Z" },
- { url = "https://files.pythonhosted.org/packages/04/d6/bb5468da53321baeb001f6e4e0d9049eadd175a4a497709939128556e3ec/scipy-1.16.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d85495cef541729a70cdddbbf3e6b903421bc1af3e8e3a9a72a06751f33b7c39", size = 38129275, upload-time = "2025-07-27T16:27:23.873Z" },
- { url = "https://files.pythonhosted.org/packages/c4/94/994369978509f227cba7dfb9e623254d0d5559506fe994aef4bea3ed469c/scipy-1.16.1-cp311-cp311-win_amd64.whl", hash = "sha256:226652fca853008119c03a8ce71ffe1b3f6d2844cc1686e8f9806edafae68596", size = 38644572, upload-time = "2025-07-27T16:27:32.637Z" },
- { url = "https://files.pythonhosted.org/packages/f8/d9/ec4864f5896232133f51382b54a08de91a9d1af7a76dfa372894026dfee2/scipy-1.16.1-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:81b433bbeaf35728dad619afc002db9b189e45eebe2cd676effe1fb93fef2b9c", size = 36575194, upload-time = "2025-07-27T16:27:41.321Z" },
- { url = "https://files.pythonhosted.org/packages/5c/6d/40e81ecfb688e9d25d34a847dca361982a6addf8e31f0957b1a54fbfa994/scipy-1.16.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:886cc81fdb4c6903a3bb0464047c25a6d1016fef77bb97949817d0c0d79f9e04", size = 28594590, upload-time = "2025-07-27T16:27:49.204Z" },
- { url = "https://files.pythonhosted.org/packages/0e/37/9f65178edfcc629377ce9a64fc09baebea18c80a9e57ae09a52edf84880b/scipy-1.16.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:15240c3aac087a522b4eaedb09f0ad061753c5eebf1ea430859e5bf8640d5919", size = 20866458, upload-time = "2025-07-27T16:27:54.98Z" },
- { url = "https://files.pythonhosted.org/packages/2c/7b/749a66766871ea4cb1d1ea10f27004db63023074c22abed51f22f09770e0/scipy-1.16.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:65f81a25805f3659b48126b5053d9e823d3215e4a63730b5e1671852a1705921", size = 23539318, upload-time = "2025-07-27T16:28:01.604Z" },
- { url = "https://files.pythonhosted.org/packages/c4/db/8d4afec60eb833a666434d4541a3151eedbf2494ea6d4d468cbe877f00cd/scipy-1.16.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6c62eea7f607f122069b9bad3f99489ddca1a5173bef8a0c75555d7488b6f725", size = 33292899, upload-time = "2025-07-27T16:28:09.147Z" },
- { url = "https://files.pythonhosted.org/packages/51/1e/79023ca3bbb13a015d7d2757ecca3b81293c663694c35d6541b4dca53e98/scipy-1.16.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f965bbf3235b01c776115ab18f092a95aa74c271a52577bcb0563e85738fd618", size = 35162637, upload-time = "2025-07-27T16:28:17.535Z" },
- { url = "https://files.pythonhosted.org/packages/b6/49/0648665f9c29fdaca4c679182eb972935b3b4f5ace41d323c32352f29816/scipy-1.16.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f006e323874ffd0b0b816d8c6a8e7f9a73d55ab3b8c3f72b752b226d0e3ac83d", size = 35490507, upload-time = "2025-07-27T16:28:25.705Z" },
- { url = "https://files.pythonhosted.org/packages/62/8f/66cbb9d6bbb18d8c658f774904f42a92078707a7c71e5347e8bf2f52bb89/scipy-1.16.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8fd15fc5085ab4cca74cb91fe0a4263b1f32e4420761ddae531ad60934c2119", size = 37923998, upload-time = "2025-07-27T16:28:34.339Z" },
- { url = "https://files.pythonhosted.org/packages/14/c3/61f273ae550fbf1667675701112e380881905e28448c080b23b5a181df7c/scipy-1.16.1-cp312-cp312-win_amd64.whl", hash = "sha256:f7b8013c6c066609577d910d1a2a077021727af07b6fab0ee22c2f901f22352a", size = 38508060, upload-time = "2025-07-27T16:28:43.242Z" },
- { url = "https://files.pythonhosted.org/packages/93/0b/b5c99382b839854a71ca9482c684e3472badc62620287cbbdab499b75ce6/scipy-1.16.1-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:5451606823a5e73dfa621a89948096c6528e2896e40b39248295d3a0138d594f", size = 36533717, upload-time = "2025-07-27T16:28:51.706Z" },
- { url = "https://files.pythonhosted.org/packages/eb/e5/69ab2771062c91e23e07c12e7d5033a6b9b80b0903ee709c3c36b3eb520c/scipy-1.16.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:89728678c5ca5abd610aee148c199ac1afb16e19844401ca97d43dc548a354eb", size = 28570009, upload-time = "2025-07-27T16:28:57.017Z" },
- { url = "https://files.pythonhosted.org/packages/f4/69/bd75dbfdd3cf524f4d753484d723594aed62cfaac510123e91a6686d520b/scipy-1.16.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e756d688cb03fd07de0fffad475649b03cb89bee696c98ce508b17c11a03f95c", size = 20841942, upload-time = "2025-07-27T16:29:01.152Z" },
- { url = "https://files.pythonhosted.org/packages/ea/74/add181c87663f178ba7d6144b370243a87af8476664d5435e57d599e6874/scipy-1.16.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5aa2687b9935da3ed89c5dbed5234576589dd28d0bf7cd237501ccfbdf1ad608", size = 23498507, upload-time = "2025-07-27T16:29:05.202Z" },
- { url = "https://files.pythonhosted.org/packages/1d/74/ece2e582a0d9550cee33e2e416cc96737dce423a994d12bbe59716f47ff1/scipy-1.16.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0851f6a1e537fe9399f35986897e395a1aa61c574b178c0d456be5b1a0f5ca1f", size = 33286040, upload-time = "2025-07-27T16:29:10.201Z" },
- { url = "https://files.pythonhosted.org/packages/e4/82/08e4076df538fb56caa1d489588d880ec7c52d8273a606bb54d660528f7c/scipy-1.16.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fedc2cbd1baed37474b1924c331b97bdff611d762c196fac1a9b71e67b813b1b", size = 35176096, upload-time = "2025-07-27T16:29:17.091Z" },
- { url = "https://files.pythonhosted.org/packages/fa/79/cd710aab8c921375711a8321c6be696e705a120e3011a643efbbcdeeabcc/scipy-1.16.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2ef500e72f9623a6735769e4b93e9dcb158d40752cdbb077f305487e3e2d1f45", size = 35490328, upload-time = "2025-07-27T16:29:22.928Z" },
- { url = "https://files.pythonhosted.org/packages/71/73/e9cc3d35ee4526d784520d4494a3e1ca969b071fb5ae5910c036a375ceec/scipy-1.16.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:978d8311674b05a8f7ff2ea6c6bce5d8b45a0cb09d4c5793e0318f448613ea65", size = 37939921, upload-time = "2025-07-27T16:29:29.108Z" },
- { url = "https://files.pythonhosted.org/packages/21/12/c0efd2941f01940119b5305c375ae5c0fcb7ec193f806bd8f158b73a1782/scipy-1.16.1-cp313-cp313-win_amd64.whl", hash = "sha256:81929ed0fa7a5713fcdd8b2e6f73697d3b4c4816d090dd34ff937c20fa90e8ab", size = 38479462, upload-time = "2025-07-27T16:30:24.078Z" },
- { url = "https://files.pythonhosted.org/packages/7a/19/c3d08b675260046a991040e1ea5d65f91f40c7df1045fffff412dcfc6765/scipy-1.16.1-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:bcc12db731858abda693cecdb3bdc9e6d4bd200213f49d224fe22df82687bdd6", size = 36938832, upload-time = "2025-07-27T16:29:35.057Z" },
- { url = "https://files.pythonhosted.org/packages/81/f2/ce53db652c033a414a5b34598dba6b95f3d38153a2417c5a3883da429029/scipy-1.16.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:744d977daa4becb9fc59135e75c069f8d301a87d64f88f1e602a9ecf51e77b27", size = 29093084, upload-time = "2025-07-27T16:29:40.201Z" },
- { url = "https://files.pythonhosted.org/packages/a9/ae/7a10ff04a7dc15f9057d05b33737ade244e4bd195caa3f7cc04d77b9e214/scipy-1.16.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:dc54f76ac18073bcecffb98d93f03ed6b81a92ef91b5d3b135dcc81d55a724c7", size = 21365098, upload-time = "2025-07-27T16:29:44.295Z" },
- { url = "https://files.pythonhosted.org/packages/36/ac/029ff710959932ad3c2a98721b20b405f05f752f07344622fd61a47c5197/scipy-1.16.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:367d567ee9fc1e9e2047d31f39d9d6a7a04e0710c86e701e053f237d14a9b4f6", size = 23896858, upload-time = "2025-07-27T16:29:48.784Z" },
- { url = "https://files.pythonhosted.org/packages/71/13/d1ef77b6bd7898720e1f0b6b3743cb945f6c3cafa7718eaac8841035ab60/scipy-1.16.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4cf5785e44e19dcd32a0e4807555e1e9a9b8d475c6afff3d21c3c543a6aa84f4", size = 33438311, upload-time = "2025-07-27T16:29:54.164Z" },
- { url = "https://files.pythonhosted.org/packages/2d/e0/e64a6821ffbb00b4c5b05169f1c1fddb4800e9307efe3db3788995a82a2c/scipy-1.16.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3d0b80fb26d3e13a794c71d4b837e2a589d839fd574a6bbb4ee1288c213ad4a3", size = 35279542, upload-time = "2025-07-27T16:30:00.249Z" },
- { url = "https://files.pythonhosted.org/packages/57/59/0dc3c8b43e118f1e4ee2b798dcc96ac21bb20014e5f1f7a8e85cc0653bdb/scipy-1.16.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8503517c44c18d1030d666cb70aaac1cc8913608816e06742498833b128488b7", size = 35667665, upload-time = "2025-07-27T16:30:05.916Z" },
- { url = "https://files.pythonhosted.org/packages/45/5f/844ee26e34e2f3f9f8febb9343748e72daeaec64fe0c70e9bf1ff84ec955/scipy-1.16.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:30cc4bb81c41831ecfd6dc450baf48ffd80ef5aed0f5cf3ea775740e80f16ecc", size = 38045210, upload-time = "2025-07-27T16:30:11.655Z" },
- { url = "https://files.pythonhosted.org/packages/8d/d7/210f2b45290f444f1de64bc7353aa598ece9f0e90c384b4a156f9b1a5063/scipy-1.16.1-cp313-cp313t-win_amd64.whl", hash = "sha256:c24fa02f7ed23ae514460a22c57eca8f530dbfa50b1cfdbf4f37c05b5309cc39", size = 38593661, upload-time = "2025-07-27T16:30:17.825Z" },
- { url = "https://files.pythonhosted.org/packages/81/ea/84d481a5237ed223bd3d32d6e82d7a6a96e34756492666c260cef16011d1/scipy-1.16.1-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:796a5a9ad36fa3a782375db8f4241ab02a091308eb079746bc0f874c9b998318", size = 36525921, upload-time = "2025-07-27T16:30:30.081Z" },
- { url = "https://files.pythonhosted.org/packages/4e/9f/d9edbdeff9f3a664807ae3aea383e10afaa247e8e6255e6d2aa4515e8863/scipy-1.16.1-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:3ea0733a2ff73fd6fdc5fecca54ee9b459f4d74f00b99aced7d9a3adb43fb1cc", size = 28564152, upload-time = "2025-07-27T16:30:35.336Z" },
- { url = "https://files.pythonhosted.org/packages/3b/95/8125bcb1fe04bc267d103e76516243e8d5e11229e6b306bda1024a5423d1/scipy-1.16.1-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:85764fb15a2ad994e708258bb4ed8290d1305c62a4e1ef07c414356a24fcfbf8", size = 20836028, upload-time = "2025-07-27T16:30:39.421Z" },
- { url = "https://files.pythonhosted.org/packages/77/9c/bf92e215701fc70bbcd3d14d86337cf56a9b912a804b9c776a269524a9e9/scipy-1.16.1-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:ca66d980469cb623b1759bdd6e9fd97d4e33a9fad5b33771ced24d0cb24df67e", size = 23489666, upload-time = "2025-07-27T16:30:43.663Z" },
- { url = "https://files.pythonhosted.org/packages/5e/00/5e941d397d9adac41b02839011594620d54d99488d1be5be755c00cde9ee/scipy-1.16.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e7cc1ffcc230f568549fc56670bcf3df1884c30bd652c5da8138199c8c76dae0", size = 33358318, upload-time = "2025-07-27T16:30:48.982Z" },
- { url = "https://files.pythonhosted.org/packages/0e/87/8db3aa10dde6e3e8e7eb0133f24baa011377d543f5b19c71469cf2648026/scipy-1.16.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3ddfb1e8d0b540cb4ee9c53fc3dea3186f97711248fb94b4142a1b27178d8b4b", size = 35185724, upload-time = "2025-07-27T16:30:54.26Z" },
- { url = "https://files.pythonhosted.org/packages/89/b4/6ab9ae443216807622bcff02690262d8184078ea467efee2f8c93288a3b1/scipy-1.16.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4dc0e7be79e95d8ba3435d193e0d8ce372f47f774cffd882f88ea4e1e1ddc731", size = 35554335, upload-time = "2025-07-27T16:30:59.765Z" },
- { url = "https://files.pythonhosted.org/packages/9c/9a/d0e9dc03c5269a1afb60661118296a32ed5d2c24298af61b676c11e05e56/scipy-1.16.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f23634f9e5adb51b2a77766dac217063e764337fbc816aa8ad9aaebcd4397fd3", size = 37960310, upload-time = "2025-07-27T16:31:06.151Z" },
- { url = "https://files.pythonhosted.org/packages/5e/00/c8f3130a50521a7977874817ca89e0599b1b4ee8e938bad8ae798a0e1f0d/scipy-1.16.1-cp314-cp314-win_amd64.whl", hash = "sha256:57d75524cb1c5a374958a2eae3d84e1929bb971204cc9d52213fb8589183fc19", size = 39319239, upload-time = "2025-07-27T16:31:59.942Z" },
- { url = "https://files.pythonhosted.org/packages/f2/f2/1ca3eda54c3a7e4c92f6acef7db7b3a057deb135540d23aa6343ef8ad333/scipy-1.16.1-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:d8da7c3dd67bcd93f15618938f43ed0995982eb38973023d46d4646c4283ad65", size = 36939460, upload-time = "2025-07-27T16:31:11.865Z" },
- { url = "https://files.pythonhosted.org/packages/80/30/98c2840b293a132400c0940bb9e140171dcb8189588619048f42b2ce7b4f/scipy-1.16.1-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:cc1d2f2fd48ba1e0620554fe5bc44d3e8f5d4185c8c109c7fbdf5af2792cfad2", size = 29093322, upload-time = "2025-07-27T16:31:17.045Z" },
- { url = "https://files.pythonhosted.org/packages/c1/e6/1e6e006e850622cf2a039b62d1a6ddc4497d4851e58b68008526f04a9a00/scipy-1.16.1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:21a611ced9275cb861bacadbada0b8c0623bc00b05b09eb97f23b370fc2ae56d", size = 21365329, upload-time = "2025-07-27T16:31:21.188Z" },
- { url = "https://files.pythonhosted.org/packages/8e/02/72a5aa5b820589dda9a25e329ca752842bfbbaf635e36bc7065a9b42216e/scipy-1.16.1-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:8dfbb25dffc4c3dd9371d8ab456ca81beeaf6f9e1c2119f179392f0dc1ab7695", size = 23897544, upload-time = "2025-07-27T16:31:25.408Z" },
- { url = "https://files.pythonhosted.org/packages/2b/dc/7122d806a6f9eb8a33532982234bed91f90272e990f414f2830cfe656e0b/scipy-1.16.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f0ebb7204f063fad87fc0a0e4ff4a2ff40b2a226e4ba1b7e34bf4b79bf97cd86", size = 33442112, upload-time = "2025-07-27T16:31:30.62Z" },
- { url = "https://files.pythonhosted.org/packages/24/39/e383af23564daa1021a5b3afbe0d8d6a68ec639b943661841f44ac92de85/scipy-1.16.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f1b9e5962656f2734c2b285a8745358ecb4e4efbadd00208c80a389227ec61ff", size = 35286594, upload-time = "2025-07-27T16:31:36.112Z" },
- { url = "https://files.pythonhosted.org/packages/95/47/1a0b0aff40c3056d955f38b0df5d178350c3d74734ec54f9c68d23910be5/scipy-1.16.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5e1a106f8c023d57a2a903e771228bf5c5b27b5d692088f457acacd3b54511e4", size = 35665080, upload-time = "2025-07-27T16:31:42.025Z" },
- { url = "https://files.pythonhosted.org/packages/64/df/ce88803e9ed6e27fe9b9abefa157cf2c80e4fa527cf17ee14be41f790ad4/scipy-1.16.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:709559a1db68a9abc3b2c8672c4badf1614f3b440b3ab326d86a5c0491eafae3", size = 38050306, upload-time = "2025-07-27T16:31:48.109Z" },
- { url = "https://files.pythonhosted.org/packages/6e/6c/a76329897a7cae4937d403e623aa6aaea616a0bb5b36588f0b9d1c9a3739/scipy-1.16.1-cp314-cp314t-win_amd64.whl", hash = "sha256:c0c804d60492a0aad7f5b2bb1862f4548b990049e27e828391ff2bf6f7199998", size = 39427705, upload-time = "2025-07-27T16:31:53.96Z" },
-]
-
[[package]]
name = "setuptools"
version = "80.9.0"
@@ -2910,27 +2374,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/d2/05/e6600db80270777c4a64238a98d442f0fd07cc8915be2a1c16da7f2b9e74/sympy-1.12-py3-none-any.whl", hash = "sha256:c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5", size = 5742435, upload-time = "2023-05-10T18:22:14.76Z" },
]
-[[package]]
-name = "threadpoolctl"
-version = "3.2.0"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/47/8a/c05f7831beb32aff70f808766224f11c650f7edfd49b27a8fc6666107006/threadpoolctl-3.2.0.tar.gz", hash = "sha256:c96a0ba3bdddeaca37dc4cc7344aafad41cdb8c313f74fdfe387a867bba93355", size = 36266, upload-time = "2023-07-13T14:53:53.299Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/81/12/fd4dea011af9d69e1cad05c75f3f7202cdcbeac9b712eea58ca779a72865/threadpoolctl-3.2.0-py3-none-any.whl", hash = "sha256:2b7818516e423bdaebb97c723f86a7c6b0a83d3f3b0970328d66f4d9104dc032", size = 15539, upload-time = "2023-07-13T14:53:39.336Z" },
-]
-
-[[package]]
-name = "tifffile"
-version = "2023.12.9"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "numpy" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/f8/a4/6c0eadea1ccfcda27e6cce400c366098b5b082138a073f4252fe399f4148/tifffile-2023.12.9.tar.gz", hash = "sha256:9dd1da91180a6453018a241ff219e1905f169384355cd89c9ef4034c1b46cdb8", size = 353467, upload-time = "2023-12-09T20:46:29.203Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/54/a4/569fc717831969cf48bced350bdaf070cdeab06918d179429899e144358d/tifffile-2023.12.9-py3-none-any.whl", hash = "sha256:9b066e4b1a900891ea42ffd33dab8ba34c537935618b9893ddef42d7d422692f", size = 223627, upload-time = "2023-12-09T20:46:26.569Z" },
-]
-
[[package]]
name = "tokenizers"
version = "0.23.1"
@@ -3211,15 +2654,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/5a/a5/7aba9435beb863c2490bae3173a45f42044ac7a48155d3dd42ab49cfae45/watchfiles-0.21.0-cp312-none-win_arm64.whl", hash = "sha256:a3b9bec9579a15fb3ca2d9878deae789df72f2b0fdaf90ad49ee389cad5edab6", size = 268026, upload-time = "2023-10-13T13:05:38.591Z" },
]
-[[package]]
-name = "wcwidth"
-version = "0.2.13"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/6c/63/53559446a878410fc5a5974feb13d31d78d752eb18aeba59c7fef1af7598/wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5", size = 101301, upload-time = "2024-01-06T02:10:57.829Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/fd/84/fd2ba7aafacbad3c4201d395674fc6348826569da3c0937e75505ead3528/wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859", size = 34166, upload-time = "2024-01-06T02:10:55.763Z" },
-]
-
[[package]]
name = "websocket-client"
version = "1.8.0"
diff --git a/mise.lock b/mise.lock
index 44ecd6fdbe..836712e0fd 100644
--- a/mise.lock
+++ b/mise.lock
@@ -82,6 +82,15 @@ url_api = "https://api.github.com/repos/extism/js-pdk/releases/assets/353224133"
version = "7.1.3-6"
backend = "github:jellyfin/jellyfin-ffmpeg"
+[tools."github:jellyfin/jellyfin-ffmpeg"."platforms.windows-x64"]
+checksum = "sha256:7b7168149689610296f3a187c717056ce0786cc125a31caf28056737e9ba1cc1"
+url = "https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v7.1.3-6/jellyfin-ffmpeg_7.1.3-6_portable_win64-clang-gpl.zip"
+url_api = "https://api.github.com/repos/jellyfin/jellyfin-ffmpeg/releases/assets/409036094"
+
+[[tools."github:jellyfin/jellyfin-ffmpeg"]]
+version = "7.1.3-6"
+backend = "github:jellyfin/jellyfin-ffmpeg"
+
[tools."github:jellyfin/jellyfin-ffmpeg".options]
asset_pattern = "jellyfin-ffmpeg_*_portable_macarm64-gpl.tar.xz"
@@ -111,6 +120,18 @@ url_api = "https://api.github.com/repos/jellyfin/jellyfin-ffmpeg/releases/assets
version = "7.1.3-6"
backend = "github:jellyfin/jellyfin-ffmpeg"
+[tools."github:jellyfin/jellyfin-ffmpeg".options]
+asset_pattern = "jellyfin-ffmpeg_*_portable_mac64-gpl.tar.xz"
+
+[tools."github:jellyfin/jellyfin-ffmpeg"."platforms.macos-x64"]
+checksum = "sha256:066ede9774aaae97a18098aaeea8b7e0d286653eb8618f640476e99c59a536c2"
+url = "https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v7.1.3-6/jellyfin-ffmpeg_7.1.3-6_portable_mac64-gpl.tar.xz"
+url_api = "https://api.github.com/repos/jellyfin/jellyfin-ffmpeg/releases/assets/408995889"
+
+[[tools."github:jellyfin/jellyfin-ffmpeg"]]
+version = "7.1.3-6"
+backend = "github:jellyfin/jellyfin-ffmpeg"
+
[tools."github:jellyfin/jellyfin-ffmpeg".options]
asset_pattern = "jellyfin-ffmpeg_*_portable_linuxarm64-gpl.tar.xz"
@@ -124,27 +145,6 @@ checksum = "sha256:bea03c670e8cc5bfe9edc0c5d624d4735421610cef5e808db93e7d8596952
url = "https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v7.1.3-6/jellyfin-ffmpeg_7.1.3-6_portable_linuxarm64-gpl.tar.xz"
url_api = "https://api.github.com/repos/jellyfin/jellyfin-ffmpeg/releases/assets/409048876"
-[[tools."github:jellyfin/jellyfin-ffmpeg"]]
-version = "7.1.3-6"
-backend = "github:jellyfin/jellyfin-ffmpeg"
-
-[tools."github:jellyfin/jellyfin-ffmpeg"."platforms.windows-x64"]
-checksum = "sha256:7b7168149689610296f3a187c717056ce0786cc125a31caf28056737e9ba1cc1"
-url = "https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v7.1.3-6/jellyfin-ffmpeg_7.1.3-6_portable_win64-clang-gpl.zip"
-url_api = "https://api.github.com/repos/jellyfin/jellyfin-ffmpeg/releases/assets/409036094"
-
-[[tools."github:jellyfin/jellyfin-ffmpeg"]]
-version = "7.1.3-6"
-backend = "github:jellyfin/jellyfin-ffmpeg"
-
-[tools."github:jellyfin/jellyfin-ffmpeg".options]
-asset_pattern = "jellyfin-ffmpeg_*_portable_mac64-gpl.tar.xz"
-
-[tools."github:jellyfin/jellyfin-ffmpeg"."platforms.macos-x64"]
-checksum = "sha256:066ede9774aaae97a18098aaeea8b7e0d286653eb8618f640476e99c59a536c2"
-url = "https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v7.1.3-6/jellyfin-ffmpeg_7.1.3-6_portable_mac64-gpl.tar.xz"
-url_api = "https://api.github.com/repos/jellyfin/jellyfin-ffmpeg/releases/assets/408995889"
-
[[tools."github:webassembly/binaryen"]]
version = "version_124"
backend = "github:webassembly/binaryen"
@@ -243,104 +243,128 @@ url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-darwin-x64.tar.gz"
checksum = "sha256:cc5149eabd53779ce1e7bdc5401643622d0c7e6800ade18928a767e940bb0e62"
url = "https://nodejs.org/dist/v24.15.0/node-v24.15.0-win-x64.zip"
+[[tools."npm:@openapitools/openapi-generator-cli"]]
+version = "2.40.1"
+backend = "npm:@openapitools/openapi-generator-cli"
+
[[tools."npm:oazapfts"]]
version = "7.5.0"
backend = "npm:oazapfts"
[[tools.opentofu]]
-version = "1.11.6"
+version = "1.12.5"
backend = "aqua:opentofu/opentofu"
[tools.opentofu."platforms.linux-arm64"]
-checksum = "sha256:d4f2ab15776925864b049bb329d69682851de6f5204f256e9fa86d07a0308850"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_arm64.tar.gz"
+checksum = "sha256:e67e9da2b1ddf5050ebee62a584cb826eafe1dfd3827d7ec20899ac62791ed1a"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602545"
[tools.opentofu."platforms.linux-arm64-musl"]
-checksum = "sha256:d4f2ab15776925864b049bb329d69682851de6f5204f256e9fa86d07a0308850"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_arm64.tar.gz"
+checksum = "sha256:e67e9da2b1ddf5050ebee62a584cb826eafe1dfd3827d7ec20899ac62791ed1a"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602545"
[tools.opentofu."platforms.linux-x64"]
-checksum = "sha256:02800fafa2753a9f50c38483e2fdf5bc353fd62895eb9e25eec9a5145df3a69e"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_amd64.tar.gz"
+checksum = "sha256:a6894d45ae7a17ce83189cce8fe04b5a65f68cefceb62455b5a6a89fa53ab38f"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602624"
[tools.opentofu."platforms.linux-x64-musl"]
-checksum = "sha256:02800fafa2753a9f50c38483e2fdf5bc353fd62895eb9e25eec9a5145df3a69e"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_amd64.tar.gz"
+checksum = "sha256:a6894d45ae7a17ce83189cce8fe04b5a65f68cefceb62455b5a6a89fa53ab38f"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602624"
[tools.opentofu."platforms.macos-arm64"]
-checksum = "sha256:62d7fa8539e13b444827aa0a3b90c5972da5c47e8f8882d9dcf2e430e78840c1"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_darwin_arm64.tar.gz"
+checksum = "sha256:2ae38150a667f5c0bd57b318d18ad8091d08f93fcca40345f3d88998661de5a9"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_darwin_arm64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602544"
[tools.opentofu."platforms.macos-x64"]
-checksum = "sha256:1408cdef1c380f914565e6b4bb70794c6b163f195fcb233357f3d6c5745906b6"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_darwin_amd64.tar.gz"
+checksum = "sha256:1012d8f3d4567bcbcd1f2c7d766feca39a30bced32fb8be47e1887fbbee2456d"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_darwin_amd64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602621"
[tools.opentofu."platforms.windows-x64"]
-checksum = "sha256:27323f70c875b8251bfd7e61a4cffc3ebff4e56ed1e611b955016f0c7077367e"
-url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_windows_amd64.tar.gz"
+checksum = "sha256:af11850b496f3720e0184084c56d8b43aa74ea92d2338978bf368d70c96473f1"
+url = "https://github.com/opentofu/opentofu/releases/download/v1.12.5/tofu_1.12.5_windows_amd64.tar.gz"
+url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/484602547"
[[tools.pnpm]]
-version = "11.6.0"
+version = "11.20.0"
backend = "aqua:pnpm/pnpm"
[tools.pnpm."platforms.linux-arm64"]
-checksum = "sha256:2fec653ff6dadab340d1c3d2214688a7451cc471f39710839440b293ca7c53b0"
-url = "https://github.com/pnpm/pnpm/releases/download/v11.6.0/pnpm-linux-arm64.tar.gz"
+checksum = "sha256:f00fc2041bb41742b7943bf2bb24183ad20320e8384824a8031eb94edf2f57a5"
+url = "https://github.com/pnpm/pnpm/releases/download/v11.20.0/pnpm-linux-arm64.tar.gz"
+url_api = "https://api.github.com/repos/pnpm/pnpm/releases/assets/500142378"
provenance = "github-attestations"
[tools.pnpm."platforms.linux-arm64-musl"]
-checksum = "sha256:56a78c08cf22adf29e7dacb6f7f100139731693863d20fb94a7883463a62169e"
-url = "https://github.com/pnpm/pnpm/releases/download/v11.6.0/pnpm-linux-arm64-musl.tar.gz"
+checksum = "sha256:2a21235d3f0fbfbcb9e530b9a98f2c64dcee95d1d5d1c2d04428255c7b85f32c"
+url = "https://github.com/pnpm/pnpm/releases/download/v11.20.0/pnpm-linux-arm64-musl.tar.gz"
+url_api = "https://api.github.com/repos/pnpm/pnpm/releases/assets/500142372"
provenance = "github-attestations"
[tools.pnpm."platforms.linux-x64"]
-checksum = "sha256:74d64c1646385fb21691f32f0ab6aca1a9f5c829ba54d3cda3a24838a228e68c"
-url = "https://github.com/pnpm/pnpm/releases/download/v11.6.0/pnpm-linux-x64.tar.gz"
+checksum = "sha256:b4ad6ad2b21db2f8cd50af416c3aa148ba704c31c84893f465a770a01c2c4572"
+url = "https://github.com/pnpm/pnpm/releases/download/v11.20.0/pnpm-linux-x64.tar.gz"
+url_api = "https://api.github.com/repos/pnpm/pnpm/releases/assets/500142376"
provenance = "github-attestations"
[tools.pnpm."platforms.linux-x64-musl"]
-checksum = "sha256:7a0c463a09d912fba6b7d9eca0a946bc228ea50f3015a05c09a29e7e85a932d7"
-url = "https://github.com/pnpm/pnpm/releases/download/v11.6.0/pnpm-linux-x64-musl.tar.gz"
+checksum = "sha256:db046881c027f1a2d69e9a530a21a62c2bced4ba8ff437e7300426ae56951fe4"
+url = "https://github.com/pnpm/pnpm/releases/download/v11.20.0/pnpm-linux-x64-musl.tar.gz"
+url_api = "https://api.github.com/repos/pnpm/pnpm/releases/assets/500142377"
provenance = "github-attestations"
[tools.pnpm."platforms.macos-arm64"]
-checksum = "sha256:87c901635a14481fb30566a3749041134ffd4317bc6fe866c345b69fdf9b6b85"
-url = "https://github.com/pnpm/pnpm/releases/download/v11.6.0/pnpm-darwin-arm64.tar.gz"
+checksum = "sha256:4bc97fea72e5c92eec1fefc8d410c35d01e0d0d52f3160c59f38c32db58b5cd2"
+url = "https://github.com/pnpm/pnpm/releases/download/v11.20.0/pnpm-darwin-arm64.tar.gz"
+url_api = "https://api.github.com/repos/pnpm/pnpm/releases/assets/500142373"
provenance = "github-attestations"
[tools.pnpm."platforms.windows-x64"]
-checksum = "sha256:91c753435542b04859c689304fae0dd64eba6b40937cfa426a48485b712e4e9c"
-url = "https://github.com/pnpm/pnpm/releases/download/v11.6.0/pnpm-win32-x64.zip"
+checksum = "sha256:ea2528bdc3d96a1ff3c35587dc48ca692b39d77f08f26df4adeaaa9eb427024e"
+url = "https://github.com/pnpm/pnpm/releases/download/v11.20.0/pnpm-win32-x64.zip"
+url_api = "https://api.github.com/repos/pnpm/pnpm/releases/assets/500142371"
provenance = "github-attestations"
[[tools.terragrunt]]
-version = "1.0.3"
+version = "1.1.1"
backend = "aqua:gruntwork-io/terragrunt"
[tools.terragrunt."platforms.linux-arm64"]
-checksum = "sha256:e5b60ab05b5214db694e6bc215d8124fb626e277cdb56b86f6147ae110d510fe"
-url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_arm64.tar.gz"
+checksum = "sha256:a374a7993ff3d99665a7e014007d3647ec7f0465c9d55c85e9f94c932e73cea2"
+url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.1.1/terragrunt_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/476786148"
[tools.terragrunt."platforms.linux-arm64-musl"]
-checksum = "sha256:e5b60ab05b5214db694e6bc215d8124fb626e277cdb56b86f6147ae110d510fe"
-url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_arm64.tar.gz"
+checksum = "sha256:a374a7993ff3d99665a7e014007d3647ec7f0465c9d55c85e9f94c932e73cea2"
+url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.1.1/terragrunt_linux_arm64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/476786148"
[tools.terragrunt."platforms.linux-x64"]
-checksum = "sha256:6d48049baf82e0bf9c804368dc85cbfeadc10955e33777e9e8de3e020b94b073"
-url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_amd64.tar.gz"
+checksum = "sha256:ce90077ac31ef17a2ba10d11d45f36c6501997a8f4f79d703bb7daba37032f53"
+url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.1.1/terragrunt_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/476785968"
[tools.terragrunt."platforms.linux-x64-musl"]
-checksum = "sha256:6d48049baf82e0bf9c804368dc85cbfeadc10955e33777e9e8de3e020b94b073"
-url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_amd64.tar.gz"
+checksum = "sha256:ce90077ac31ef17a2ba10d11d45f36c6501997a8f4f79d703bb7daba37032f53"
+url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.1.1/terragrunt_linux_amd64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/476785968"
[tools.terragrunt."platforms.macos-arm64"]
-checksum = "sha256:aacb5be2ca5475300cbce246dfbd8a45eb47510fbaa70fab8561c49ef5db03aa"
-url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_darwin_arm64.tar.gz"
+checksum = "sha256:9ec8f678b9ae6c81d5d9d77b94cbf6349ce639d5938694b4adc9dea73e416794"
+url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.1.1/terragrunt_darwin_arm64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/476785628"
[tools.terragrunt."platforms.macos-x64"]
-checksum = "sha256:3133c2251e191aede8e3dd2a5b3aee2e91c5f08f88f117aee40eed9a24c8ef6b"
-url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_darwin_amd64.tar.gz"
+checksum = "sha256:73e768a69fa44a60f9d9174f54aaf179327e08706f633c9c79d5f5c9622c91c2"
+url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.1.1/terragrunt_darwin_amd64.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/476785520"
[tools.terragrunt."platforms.windows-x64"]
-checksum = "sha256:183b2745b4e04980a6bfa4450ff81956a12596ca22d70f7aaa793980f5b036db"
-url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_windows_amd64.exe.tar.gz"
+checksum = "sha256:dd50a324691e072a3ac879e9ec43d6310e2936c929fda658eb2811fefcc75115"
+url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.1.1/terragrunt_windows_amd64.exe.tar.gz"
+url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/476786421"
diff --git a/mise.toml b/mise.toml
index 38e413aef5..0039dbac2d 100644
--- a/mise.toml
+++ b/mise.toml
@@ -1,4 +1,4 @@
-experimental_monorepo_root = true
+monorepo_root = true
[monorepo]
config_roots = [
@@ -16,9 +16,10 @@ config_roots = [
[tools]
node = "24.15.0"
-pnpm = "11.6.0"
-terragrunt = "1.0.3"
-opentofu = "1.11.6"
+pnpm = "11.20.0"
+terragrunt = "1.1.1"
+opentofu = "1.12.5"
+"npm:@openapitools/openapi-generator-cli" = "2.40.1"
"npm:oazapfts" = "7.5.0"
"github:extism/cli" = "1.6.3"
"github:webassembly/binaryen" = "version_124"
@@ -35,7 +36,6 @@ macos-x64 = { asset_pattern = "jellyfin-ffmpeg_*_portable_mac64-gpl.tar.xz" }
macos-arm64 = { asset_pattern = "jellyfin-ffmpeg_*_portable_macarm64-gpl.tar.xz" }
[settings]
-experimental = true
pin = true
lockfile = true
@@ -62,6 +62,14 @@ run = [
[tasks.open-api-dart]
dir = "open-api"
+sources = [
+ "immich-openapi-specs.json",
+ "openapitools.json",
+ "templates/**/*",
+ "patch/*",
+ "bin/generate-dart-sdk.sh",
+]
+outputs = ["../mobile/generated/openapi/"]
run = "bash ./bin/generate-dart-sdk.sh"
[tasks.open-api]
diff --git a/mobile/.gitignore b/mobile/.gitignore
index 04eb74fddd..c426d46ec3 100644
--- a/mobile/.gitignore
+++ b/mobile/.gitignore
@@ -31,6 +31,15 @@
.pub-cache/
.pub/
/build/
+lib/**/*.drift.dart
+lib/**/*.freezed.dart
+lib/routing/router.gr.dart
+test/drift/main/generated/
+
+# Pigeon related
+/lib/platform/*.g.dart
+/ios/**/*.g.swift
+/android/**/*.g.kt
# Web related
lib/generated_plugin_registrant.dart
diff --git a/mobile/analysis_options.yaml b/mobile/analysis_options.yaml
index 7c49052fc2..065b3d56d8 100644
--- a/mobile/analysis_options.yaml
+++ b/mobile/analysis_options.yaml
@@ -26,40 +26,75 @@ linter:
# producing the lint.
rules:
- # avoid_print: false # Uncomment to disable the `avoid_print` rule
- # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
+ # Correctness
+ always_declare_return_types: true
+ avoid_type_to_string: true
+ avoid_unused_constructor_parameters: true
+ avoid_void_async: true
+ cancel_subscriptions: true
+ cast_nullable_to_non_nullable: true
+ close_sinks: true
+ collection_methods_unrelated_type: true
+ deprecated_consistency: true
+ discarded_futures: true
+ no_adjacent_strings_in_list: true
+ no_self_assignments: true
+ noop_primitive_operations: true
+ only_throw_errors: true
+ parameter_assignments: true
+ throw_in_finally: true
+ tighten_type_of_initializing_formals: true
unawaited_futures: true
- use_build_context_synchronously: false
- require_trailing_commas: true
+ unnecessary_ignore: true
+ unnecessary_null_checks: true
+ unnecessary_statements: true
unrelated_type_equality_checks: true
+
+ # Performance
+ avoid_slow_async_io: true
prefer_const_constructors: true
- always_use_package_imports: true
+ prefer_const_declarations: true
+ prefer_const_literals_to_create_immutables: true
+
+ # Flutter specific
+ avoid_unnecessary_containers: true
+ sized_box_for_whitespace: true
+ use_build_context_synchronously: true
+ use_colored_box: true
+ use_decorated_box: true
+ use_full_hex_values_for_flutter_colors: true
+
+ # Style
always_put_control_body_on_new_line: true
+ always_use_package_imports: true
+ avoid_multiple_declarations_per_line: true
+ avoid_print: true
+ combinators_ordering: true
+ directives_ordering: true
+ no_leading_underscores_for_local_identifiers: true
+ prefer_final_locals: true
+ require_trailing_commas: true
+ unnecessary_breaks: true
+ unnecessary_parenthesis: true
+ use_named_constants: true
+ use_super_parameters: true
# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options
analyzer:
exclude:
- - openapi/**
+ - generated/openapi/**
- build/**
- lib/generated_plugin_registrant.dart
- lib/**/*.g.dart
- lib/**/*.drift.dart
- # TODO: Re-enable after upgrading custom_lint
- # plugins:
- # - custom_lint
+ # NOTE: We explicitly do not use riverpod_lint as there are analyzer version conflicts between
+ # our Flutter version and the required old riverpod_lint 2.x
errors:
unawaited_futures: warning
always_put_control_body_on_new_line: warning
-custom_lint:
- rules:
- - avoid_build_context_in_providers: false
- - avoid_public_notifier_properties: false
- - avoid_manual_providers_as_generated_provider_dependency: false
- - unsupported_provider_value: false
-
dart_code_metrics:
rules:
- banned-usage:
@@ -69,6 +104,18 @@ dart_code_metrics:
exclude-paths:
- 'lib/utils/debug_print.dart'
severity: perf
+ - name: tr
+ description: 'Use context.t. or StaticTranslations.instance. instead of tr().'
+ - type: String
+ entries:
+ - name: tr
+ description: 'Use context.t. or StaticTranslations.instance. instead of String.tr().'
+ - name: plural
+ description: 'Use the generated plural accessor instead of String.plural().'
+ - type: Text
+ entries:
+ - name: tr
+ description: 'Use Text(context.t.) instead of Text().tr().'
# All rules from "recommended" preset
# Show potential errors
# - avoid-cascade-after-if-null
@@ -82,3 +129,17 @@ dart_code_metrics:
- prefer-const-border-radius
- prefer-declaring-const-constructor
- prefer-switch-expression
+
+ # Riverpod
+ - avoid-calling-notifier-members-inside-build
+ - avoid-notifier-constructors
+ - avoid-nullable-async-value-pattern
+ - avoid-public-notifier-properties
+ - avoid-ref-inside-state-dispose
+ - avoid-ref-read-inside-build
+ - avoid-ref-watch-outside-build
+ - avoid-unnecessary-consumer-widgets
+ - dispose-provided-instances
+ - prefer-immutable-provider-arguments
+ - use-ref-and-state-synchronously
+ - use-ref-read-synchronously
diff --git a/mobile/android/app/CMakeLists.txt b/mobile/android/app/CMakeLists.txt
index 133bde4fc0..9cad7b915a 100644
--- a/mobile/android/app/CMakeLists.txt
+++ b/mobile/android/app/CMakeLists.txt
@@ -7,6 +7,7 @@ project(native_buffer LANGUAGES C)
add_library(native_buffer SHARED
src/main/cpp/native_buffer.c
+ src/main/cpp/native_image.c
)
target_link_libraries(native_buffer jnigraphics)
diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle
index 1f22eeaf52..7e3d67fa81 100644
--- a/mobile/android/app/build.gradle
+++ b/mobile/android/app/build.gradle
@@ -89,13 +89,6 @@ flutter {
}
dependencies {
- constraints {
- implementation("androidx.glance:glance-appwidget") {
- version { strictly libs.versions.glance.get() }
- because 'home_widget requests 1.+ which can resolve to pre-releases incompatible with our compileSdk/AGP'
- }
- }
-
implementation libs.okhttp
implementation libs.cronet.embedded
implementation libs.media3.datasource.okhttp
diff --git a/mobile/android/app/src/main/AndroidManifest.xml b/mobile/android/app/src/main/AndroidManifest.xml
index 1b8d2a97fb..5f4de8284a 100644
--- a/mobile/android/app/src/main/AndroidManifest.xml
+++ b/mobile/android/app/src/main/AndroidManifest.xml
@@ -152,12 +152,6 @@
This is used by the Flutter tool to
generate GeneratedPluginRegistrant.java -->
-
-
-
+#include
+#include
+#include
+
+// Cache-friendly block size for the tiled rotation (in pixels). 32x32 uint32 = 4KB, fits L1.
+#define TILE 32
+
+// EXIF orientation values (androidx.exifinterface.media.ExifInterface.ORIENTATION_*).
+enum {
+ ORIENTATION_FLIP_HORIZONTAL = 2,
+ ORIENTATION_ROTATE_180 = 3,
+ ORIENTATION_FLIP_VERTICAL = 4,
+ ORIENTATION_TRANSPOSE = 5,
+ ORIENTATION_ROTATE_90 = 6,
+ ORIENTATION_TRANSVERSE = 7,
+ ORIENTATION_ROTATE_270 = 8,
+};
+
+// The orientations that swap width and height. Must stay in sync with affine_for's dim usage.
+static int swaps_dims(int o) {
+ return o == ORIENTATION_ROTATE_90 || o == ORIENTATION_ROTATE_270 ||
+ o == ORIENTATION_TRANSPOSE || o == ORIENTATION_TRANSVERSE;
+}
+
+// A source pixel (sx, sy) maps to destination index base + sx*stepX + sy*stepY, where dw is the
+// destination width. This affine form covers all 8 EXIF orientations and matches the pixel layout
+// of Bitmap.createBitmap(src, matrixForExifOrientation(o)). int64_t so it stays correct on
+// armeabi-v7a (32-bit long) regardless of how large MAX_RAW_DECODE_PIXELS grows.
+static void affine_for(int o, int sw, int sh, int dw, int64_t *base, int64_t *stepX, int64_t *stepY) {
+ switch (o) {
+ case ORIENTATION_ROTATE_90: *base = sh - 1; *stepX = dw; *stepY = -1; break;
+ case ORIENTATION_ROTATE_270: *base = (int64_t) (sw - 1) * dw; *stepX = -dw; *stepY = 1; break;
+ case ORIENTATION_ROTATE_180: *base = (int64_t) (sh - 1) * dw + (sw - 1); *stepX = -1; *stepY = -dw; break;
+ case ORIENTATION_FLIP_HORIZONTAL: *base = sw - 1; *stepX = -1; *stepY = dw; break;
+ case ORIENTATION_FLIP_VERTICAL: *base = (int64_t) (sh - 1) * dw; *stepX = 1; *stepY = -dw; break;
+ case ORIENTATION_TRANSPOSE: *base = 0; *stepX = dw; *stepY = 1; break;
+ case ORIENTATION_TRANSVERSE: *base = (int64_t) (sw - 1) * dw + (sh - 1); *stepX = -dw; *stepY = -1; break;
+ default: *base = 0; *stepX = 1; *stepY = dw; break;
+ }
+}
+
+// Copy each source pixel (whole uint32, so channel order/premult is irrelevant) to its rotated
+// destination, walking TILE x TILE blocks so the scattered writes of a 90/270 transpose stay
+// cache-resident. dst is densely packed (rowBytes == dw*4, no padding), which the affine math relies on.
+static void rotate_tiled(const uint8_t *src, int srcStride, uint32_t *dst,
+ int sw, int sh, int64_t base, int64_t stepX, int64_t stepY) {
+ for (int ty = 0; ty < sh; ty += TILE) {
+ int yEnd = ty + TILE < sh ? ty + TILE : sh;
+ for (int tx = 0; tx < sw; tx += TILE) {
+ int xEnd = tx + TILE < sw ? tx + TILE : sw;
+ for (int sy = ty; sy < yEnd; sy++) {
+ const uint32_t *srcRow = (const uint32_t *) (src + (size_t) sy * srcStride);
+ int64_t idx = base + (int64_t) sy * stepY + (int64_t) tx * stepX;
+ for (int sx = tx; sx < xEnd; sx++) {
+ dst[idx] = srcRow[sx];
+ idx += stepX;
+ }
+ }
+ }
+ }
+}
+
+// Rotates an RGBA_8888 bitmap to the given EXIF orientation into a freshly malloc'd buffer (free it
+// via NativeBuffer.free). Fills outInfo with {width, height, rowBytes} and returns the buffer
+// address, or 0 if the bitmap can't be handled (e.g. a non-8888 format) so the caller can fall back.
+JNIEXPORT jlong JNICALL
+Java_app_alextran_immich_NativeImage_rotate(
+ JNIEnv *env, jclass clazz, jobject bitmap, jint orientation, jintArray outInfo) {
+ AndroidBitmapInfo info;
+ if (AndroidBitmap_getInfo(env, bitmap, &info) != ANDROID_BITMAP_RESULT_SUCCESS) {
+ return 0;
+ }
+ if (info.format != ANDROID_BITMAP_FORMAT_RGBA_8888) {
+ return 0;
+ }
+
+ int sw = (int) info.width;
+ int sh = (int) info.height;
+ int dw = swaps_dims(orientation) ? sh : sw;
+ int dh = swaps_dims(orientation) ? sw : sh;
+
+ uint32_t *dst = (uint32_t *) malloc((size_t) dw * dh * 4);
+ if (dst == NULL) {
+ return 0;
+ }
+
+ void *srcPixels = NULL;
+ if (AndroidBitmap_lockPixels(env, bitmap, &srcPixels) != ANDROID_BITMAP_RESULT_SUCCESS) {
+ free(dst);
+ return 0;
+ }
+
+ int64_t base, stepX, stepY;
+ affine_for(orientation, sw, sh, dw, &base, &stepX, &stepY);
+ rotate_tiled((const uint8_t *) srcPixels, (int) info.stride, dst, sw, sh, base, stepX, stepY);
+
+ AndroidBitmap_unlockPixels(env, bitmap);
+
+ jint dims[3] = {dw, dh, dw * 4};
+ (*env)->SetIntArrayRegion(env, outInfo, 0, 3, dims);
+ // Keep ownership in C until the buffer is safely handed back: if outInfo was somehow too small,
+ // SetIntArrayRegion left a pending exception and Kotlin will never receive (or free) dst.
+ if ((*env)->ExceptionCheck(env)) {
+ free(dst);
+ return 0;
+ }
+ return (jlong) dst;
+}
+
+// Convert an RGBA_1010102 buffer to densely-packed RGBA_8888, matching Skia's
+// Bitmap.copy(ARGB_8888) byte-for-byte so it's a drop-in for the intermediate 8888 bitmap.
+// Each source pixel is a native (little-endian on every Android ABI) u32 with R in bits 0-9,
+// G in 10-19, B in 20-29, A in 30-31 (standard RGB10_A2). Each 10-bit channel maps to 8-bit via
+// round(v*255/1023). The 2-bit alpha maps to a*85. Both are kept as plain arithmetic as the whole
+// loop auto-vectorizes to NEON and measures faster than a LUT on-device. Output is R,G,B,A bytes
+// per pixel, i.e. Android ARGB_8888 memory == Dart PixelFormat.rgba8888.
+static void convert_1010102(const uint8_t *src, int srcStride, uint32_t *dst, int w, int h) {
+ for (int y = 0; y < h; y++) {
+ const uint32_t *srcRow = (const uint32_t *) (src + (size_t) y * srcStride);
+ uint32_t *dstRow = dst + (size_t) y * w;
+ for (int x = 0; x < w; x++) {
+ uint32_t px = srcRow[x];
+ uint32_t r = ((px & 0x3FF) * 16336u + 32768u) >> 16;
+ uint32_t g = (((px >> 10) & 0x3FF) * 16336u + 32768u) >> 16;
+ uint32_t b = (((px >> 20) & 0x3FF) * 16336u + 32768u) >> 16;
+ uint32_t a = ((px >> 30) & 0x3) * 85u;
+ dstRow[x] = r | (g << 8) | (b << 16) | (a << 24);
+ }
+ }
+}
+
+// Converts an RGBA_1010102 bitmap (what a 10-bit HEIC/AVIF decodes to on API 33+) into a freshly
+// malloc'd RGBA_8888 buffer. Fills outInfo with {width, height, rowBytes} and returns the buffer
+// address, or 0 (so the caller falls back to a Skia copy) if the bitmap isn't 1010102 or can't be
+// locked. Same ownership contract as rotate: free the returned buffer via NativeBuffer.free.
+JNIEXPORT jlong JNICALL
+Java_app_alextran_immich_NativeImage_convert1010102(
+ JNIEnv *env, jclass clazz, jobject bitmap, jintArray outInfo) {
+ AndroidBitmapInfo info;
+ if (AndroidBitmap_getInfo(env, bitmap, &info) != ANDROID_BITMAP_RESULT_SUCCESS) {
+ return 0;
+ }
+ if (info.format != ANDROID_BITMAP_FORMAT_RGBA_1010102) {
+ return 0;
+ }
+
+ int w = (int) info.width;
+ int h = (int) info.height;
+
+ uint32_t *dst = (uint32_t *) malloc((size_t) w * h * 4);
+ if (dst == NULL) {
+ return 0;
+ }
+
+ void *srcPixels = NULL;
+ if (AndroidBitmap_lockPixels(env, bitmap, &srcPixels) != ANDROID_BITMAP_RESULT_SUCCESS) {
+ free(dst);
+ return 0;
+ }
+
+ convert_1010102((const uint8_t *) srcPixels, (int) info.stride, dst, w, h);
+
+ AndroidBitmap_unlockPixels(env, bitmap);
+
+ jint dims[3] = {w, h, w * 4};
+ (*env)->SetIntArrayRegion(env, outInfo, 0, 3, dims);
+ if ((*env)->ExceptionCheck(env)) {
+ free(dst);
+ return 0;
+ }
+ return (jlong) dst;
+}
diff --git a/mobile/android/app/src/main/kotlin/app/alextran/immich/ImmichApp.kt b/mobile/android/app/src/main/kotlin/app/alextran/immich/ImmichApp.kt
index 37a325e896..65249ec901 100644
--- a/mobile/android/app/src/main/kotlin/app/alextran/immich/ImmichApp.kt
+++ b/mobile/android/app/src/main/kotlin/app/alextran/immich/ImmichApp.kt
@@ -3,17 +3,12 @@ package app.alextran.immich
import android.app.Application
import android.os.Handler
import android.os.Looper
-import androidx.work.Configuration
-import androidx.work.WorkManager
import app.alextran.immich.background.BackgroundEngineLock
import app.alextran.immich.background.BackgroundWorkerApiImpl
class ImmichApp : Application() {
override fun onCreate() {
super.onCreate()
- val config = Configuration.Builder().build()
- WorkManager.initialize(this, config)
- // always start BackupWorker after WorkManager init; this fixes the following bug:
// After the process is killed (by user or system), the first trigger (taking a new picture) is lost.
// Thus, the BackupWorker is not started. If the system kills the process after each initialization
// (because of low memory etc.), the backup is never performed.
@@ -23,6 +18,6 @@ class ImmichApp : Application() {
// as the previous start might have been killed without unlocking.
if (BackgroundEngineLock.connectEngines > 0) return@postDelayed
BackgroundWorkerApiImpl.enqueueBackgroundWorker(this)
- }, 5000)
+ }, 15000)
}
}
diff --git a/mobile/android/app/src/main/kotlin/app/alextran/immich/NativeImage.kt b/mobile/android/app/src/main/kotlin/app/alextran/immich/NativeImage.kt
new file mode 100644
index 0000000000..68feaa2d14
--- /dev/null
+++ b/mobile/android/app/src/main/kotlin/app/alextran/immich/NativeImage.kt
@@ -0,0 +1,29 @@
+package app.alextran.immich
+
+import android.graphics.Bitmap
+
+object NativeImage {
+ init {
+ // rotate() is compiled into the native_buffer shared lib (which already links jnigraphics).
+ System.loadLibrary("native_buffer")
+ }
+
+ /**
+ * Rotates an RGBA_8888 [bitmap] to the given EXIF [orientation], writing the result into a freshly
+ * malloc'd native buffer. Returns the buffer address (free it with [NativeBuffer.free]) and fills
+ * [outInfo] with {width, height, rowBytes}. Returns 0 when the bitmap can't be handled (e.g. a
+ * non-8888 config) so the caller can fall back.
+ */
+ @JvmStatic
+ external fun rotate(bitmap: Bitmap, orientation: Int, outInfo: IntArray): Long
+
+ /**
+ * Converts an RGBA_1010102 [bitmap] (what a 10-bit HEIC/AVIF decodes to on API 33+) to RGBA_8888,
+ * writing the result into a freshly malloc'd native buffer in one pass, with no intermediate
+ * ARGB_8888 bitmap. Returns the buffer address (free it with [NativeBuffer.free]) and fills
+ * [outInfo] with {width, height, rowBytes}. Returns 0 when the bitmap isn't RGBA_1010102 so the
+ * caller can fall back to a Skia copy.
+ */
+ @JvmStatic
+ external fun convert1010102(bitmap: Bitmap, outInfo: IntArray): Long
+}
diff --git a/mobile/android/app/src/main/kotlin/app/alextran/immich/background/BackgroundWorker.g.kt b/mobile/android/app/src/main/kotlin/app/alextran/immich/background/BackgroundWorker.g.kt
deleted file mode 100644
index 3fcaed34bc..0000000000
--- a/mobile/android/app/src/main/kotlin/app/alextran/immich/background/BackgroundWorker.g.kt
+++ /dev/null
@@ -1,453 +0,0 @@
-// Autogenerated from Pigeon (v26.3.4), do not edit directly.
-// See also: https://pub.dev/packages/pigeon
-@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass")
-
-package app.alextran.immich.background
-
-import android.util.Log
-import io.flutter.plugin.common.BasicMessageChannel
-import io.flutter.plugin.common.BinaryMessenger
-import io.flutter.plugin.common.EventChannel
-import io.flutter.plugin.common.MessageCodec
-import io.flutter.plugin.common.StandardMethodCodec
-import io.flutter.plugin.common.StandardMessageCodec
-import java.io.ByteArrayOutputStream
-import java.nio.ByteBuffer
-private object BackgroundWorkerPigeonUtils {
-
- fun createConnectionError(channelName: String): FlutterError {
- return FlutterError("channel-error", "Unable to establish connection on channel: '$channelName'.", "") }
-
- fun wrapResult(result: Any?): List {
- return listOf(result)
- }
-
- fun wrapError(exception: Throwable): List {
- return if (exception is FlutterError) {
- listOf(
- exception.code,
- exception.message,
- exception.details
- )
- } else {
- listOf(
- exception.javaClass.simpleName,
- exception.toString(),
- "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)
- )
- }
- }
- fun doubleEquals(a: Double, b: Double): Boolean {
- // Normalize -0.0 to 0.0 and handle NaN equality.
- return (if (a == 0.0) 0.0 else a) == (if (b == 0.0) 0.0 else b) || (a.isNaN() && b.isNaN())
- }
-
- fun floatEquals(a: Float, b: Float): Boolean {
- // Normalize -0.0 to 0.0 and handle NaN equality.
- return (if (a == 0.0f) 0.0f else a) == (if (b == 0.0f) 0.0f else b) || (a.isNaN() && b.isNaN())
- }
-
- fun doubleHash(d: Double): Int {
- // Normalize -0.0 to 0.0 and handle NaN to ensure consistent hash codes.
- val normalized = if (d == 0.0) 0.0 else d
- val bits = java.lang.Double.doubleToLongBits(normalized)
- return (bits xor (bits ushr 32)).toInt()
- }
-
- fun floatHash(f: Float): Int {
- // Normalize -0.0 to 0.0 and handle NaN to ensure consistent hash codes.
- val normalized = if (f == 0.0f) 0.0f else f
- return java.lang.Float.floatToIntBits(normalized)
- }
-
- fun deepEquals(a: Any?, b: Any?): Boolean {
- if (a === b) {
- return true
- }
- if (a == null || b == null) {
- return false
- }
- if (a is ByteArray && b is ByteArray) {
- return a.contentEquals(b)
- }
- if (a is IntArray && b is IntArray) {
- return a.contentEquals(b)
- }
- if (a is LongArray && b is LongArray) {
- return a.contentEquals(b)
- }
- if (a is DoubleArray && b is DoubleArray) {
- if (a.size != b.size) return false
- for (i in a.indices) {
- if (!doubleEquals(a[i], b[i])) return false
- }
- return true
- }
- if (a is FloatArray && b is FloatArray) {
- if (a.size != b.size) return false
- for (i in a.indices) {
- if (!floatEquals(a[i], b[i])) return false
- }
- return true
- }
- if (a is Array<*> && b is Array<*>) {
- if (a.size != b.size) return false
- for (i in a.indices) {
- if (!deepEquals(a[i], b[i])) return false
- }
- return true
- }
- if (a is List<*> && b is List<*>) {
- if (a.size != b.size) return false
- val iterA = a.iterator()
- val iterB = b.iterator()
- while (iterA.hasNext() && iterB.hasNext()) {
- if (!deepEquals(iterA.next(), iterB.next())) return false
- }
- return true
- }
- if (a is Map<*, *> && b is Map<*, *>) {
- if (a.size != b.size) return false
- for (entry in a) {
- val key = entry.key
- var found = false
- for (bEntry in b) {
- if (deepEquals(key, bEntry.key)) {
- if (deepEquals(entry.value, bEntry.value)) {
- found = true
- break
- } else {
- return false
- }
- }
- }
- if (!found) return false
- }
- return true
- }
- if (a is Double && b is Double) {
- return doubleEquals(a, b)
- }
- if (a is Float && b is Float) {
- return floatEquals(a, b)
- }
- return a == b
- }
-
- fun deepHash(value: Any?): Int {
- return when (value) {
- null -> 0
- is ByteArray -> value.contentHashCode()
- is IntArray -> value.contentHashCode()
- is LongArray -> value.contentHashCode()
- is DoubleArray -> {
- var result = 1
- for (item in value) {
- result = 31 * result + doubleHash(item)
- }
- result
- }
- is FloatArray -> {
- var result = 1
- for (item in value) {
- result = 31 * result + floatHash(item)
- }
- result
- }
- is Array<*> -> {
- var result = 1
- for (item in value) {
- result = 31 * result + deepHash(item)
- }
- result
- }
- is List<*> -> {
- var result = 1
- for (item in value) {
- result = 31 * result + deepHash(item)
- }
- result
- }
- is Map<*, *> -> {
- var result = 0
- for (entry in value) {
- result += ((deepHash(entry.key) * 31) xor deepHash(entry.value))
- }
- result
- }
- is Double -> doubleHash(value)
- is Float -> floatHash(value)
- else -> value.hashCode()
- }
- }
-
-}
-
-/**
- * Error class for passing custom error details to Flutter via a thrown PlatformException.
- * @property code The error code.
- * @property message The error message.
- * @property details The error details. Must be a datatype supported by the api codec.
- */
-class FlutterError (
- val code: String,
- override val message: String? = null,
- val details: Any? = null
-) : RuntimeException()
-
-/** Generated class from Pigeon that represents data sent in messages. */
-data class BackgroundWorkerSettings (
- val requiresCharging: Boolean,
- val minimumDelaySeconds: Long
-)
- {
- companion object {
- fun fromList(pigeonVar_list: List): BackgroundWorkerSettings {
- val requiresCharging = pigeonVar_list[0] as Boolean
- val minimumDelaySeconds = pigeonVar_list[1] as Long
- return BackgroundWorkerSettings(requiresCharging, minimumDelaySeconds)
- }
- }
- fun toList(): List {
- return listOf(
- requiresCharging,
- minimumDelaySeconds,
- )
- }
- override fun equals(other: Any?): Boolean {
- if (other == null || other.javaClass != javaClass) {
- return false
- }
- if (this === other) {
- return true
- }
- val other = other as BackgroundWorkerSettings
- return BackgroundWorkerPigeonUtils.deepEquals(this.requiresCharging, other.requiresCharging) && BackgroundWorkerPigeonUtils.deepEquals(this.minimumDelaySeconds, other.minimumDelaySeconds)
- }
-
- override fun hashCode(): Int {
- var result = javaClass.hashCode()
- result = 31 * result + BackgroundWorkerPigeonUtils.deepHash(this.requiresCharging)
- result = 31 * result + BackgroundWorkerPigeonUtils.deepHash(this.minimumDelaySeconds)
- return result
- }
-}
-private open class BackgroundWorkerPigeonCodec : StandardMessageCodec() {
- override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? {
- return when (type) {
- 129.toByte() -> {
- return (readValue(buffer) as? List)?.let {
- BackgroundWorkerSettings.fromList(it)
- }
- }
- else -> super.readValueOfType(type, buffer)
- }
- }
- override fun writeValue(stream: ByteArrayOutputStream, value: Any?) {
- when (value) {
- is BackgroundWorkerSettings -> {
- stream.write(129)
- writeValue(stream, value.toList())
- }
- else -> super.writeValue(stream, value)
- }
- }
-}
-
-/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
-interface BackgroundWorkerFgHostApi {
- fun enable()
- fun saveNotificationMessage(title: String, body: String)
- fun configure(settings: BackgroundWorkerSettings)
- fun disable()
-
- companion object {
- /** The codec used by BackgroundWorkerFgHostApi. */
- val codec: MessageCodec by lazy {
- BackgroundWorkerPigeonCodec()
- }
- /** Sets up an instance of `BackgroundWorkerFgHostApi` to handle messages through the `binaryMessenger`. */
- @JvmOverloads
- fun setUp(binaryMessenger: BinaryMessenger, api: BackgroundWorkerFgHostApi?, messageChannelSuffix: String = "") {
- val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else ""
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.enable$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { _, reply ->
- val wrapped: List = try {
- api.enable()
- listOf(null)
- } catch (exception: Throwable) {
- BackgroundWorkerPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.saveNotificationMessage$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { message, reply ->
- val args = message as List
- val titleArg = args[0] as String
- val bodyArg = args[1] as String
- val wrapped: List = try {
- api.saveNotificationMessage(titleArg, bodyArg)
- listOf(null)
- } catch (exception: Throwable) {
- BackgroundWorkerPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.configure$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { message, reply ->
- val args = message as List
- val settingsArg = args[0] as BackgroundWorkerSettings
- val wrapped: List = try {
- api.configure(settingsArg)
- listOf(null)
- } catch (exception: Throwable) {
- BackgroundWorkerPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFgHostApi.disable$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { _, reply ->
- val wrapped: List = try {
- api.disable()
- listOf(null)
- } catch (exception: Throwable) {
- BackgroundWorkerPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- }
- }
-}
-/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
-interface BackgroundWorkerBgHostApi {
- fun onInitialized()
- fun close()
-
- companion object {
- /** The codec used by BackgroundWorkerBgHostApi. */
- val codec: MessageCodec by lazy {
- BackgroundWorkerPigeonCodec()
- }
- /** Sets up an instance of `BackgroundWorkerBgHostApi` to handle messages through the `binaryMessenger`. */
- @JvmOverloads
- fun setUp(binaryMessenger: BinaryMessenger, api: BackgroundWorkerBgHostApi?, messageChannelSuffix: String = "") {
- val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else ""
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerBgHostApi.onInitialized$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { _, reply ->
- val wrapped: List = try {
- api.onInitialized()
- listOf(null)
- } catch (exception: Throwable) {
- BackgroundWorkerPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerBgHostApi.close$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { _, reply ->
- val wrapped: List = try {
- api.close()
- listOf(null)
- } catch (exception: Throwable) {
- BackgroundWorkerPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- }
- }
-}
-/** Generated class from Pigeon that represents Flutter messages that can be called from Kotlin. */
-class BackgroundWorkerFlutterApi(private val binaryMessenger: BinaryMessenger, private val messageChannelSuffix: String = "") {
- companion object {
- /** The codec used by BackgroundWorkerFlutterApi. */
- val codec: MessageCodec by lazy {
- BackgroundWorkerPigeonCodec()
- }
- }
- fun onIosUpload(isRefreshArg: Boolean, maxSecondsArg: Long?, callback: (Result) -> Unit)
-{
- val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else ""
- val channelName = "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFlutterApi.onIosUpload$separatedMessageChannelSuffix"
- val channel = BasicMessageChannel(binaryMessenger, channelName, codec)
- channel.send(listOf(isRefreshArg, maxSecondsArg)) {
- if (it is List<*>) {
- if (it.size > 1) {
- callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?)))
- } else {
- callback(Result.success(Unit))
- }
- } else {
- callback(Result.failure(BackgroundWorkerPigeonUtils.createConnectionError(channelName)))
- }
- }
- }
- fun onAndroidUpload(maxMinutesArg: Long?, callback: (Result) -> Unit)
-{
- val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else ""
- val channelName = "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFlutterApi.onAndroidUpload$separatedMessageChannelSuffix"
- val channel = BasicMessageChannel(binaryMessenger, channelName, codec)
- channel.send(listOf(maxMinutesArg)) {
- if (it is List<*>) {
- if (it.size > 1) {
- callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?)))
- } else {
- callback(Result.success(Unit))
- }
- } else {
- callback(Result.failure(BackgroundWorkerPigeonUtils.createConnectionError(channelName)))
- }
- }
- }
- fun cancel(callback: (Result) -> Unit)
-{
- val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else ""
- val channelName = "dev.flutter.pigeon.immich_mobile.BackgroundWorkerFlutterApi.cancel$separatedMessageChannelSuffix"
- val channel = BasicMessageChannel(binaryMessenger, channelName, codec)
- channel.send(null) {
- if (it is List<*>) {
- if (it.size > 1) {
- callback(Result.failure(FlutterError(it[0] as String, it[1] as String, it[2] as String?)))
- } else {
- callback(Result.success(Unit))
- }
- } else {
- callback(Result.failure(BackgroundWorkerPigeonUtils.createConnectionError(channelName)))
- }
- }
- }
-}
diff --git a/mobile/android/app/src/main/kotlin/app/alextran/immich/background/BackgroundWorker.kt b/mobile/android/app/src/main/kotlin/app/alextran/immich/background/BackgroundWorker.kt
index ce2de60c38..60387f434a 100644
--- a/mobile/android/app/src/main/kotlin/app/alextran/immich/background/BackgroundWorker.kt
+++ b/mobile/android/app/src/main/kotlin/app/alextran/immich/background/BackgroundWorker.kt
@@ -15,6 +15,7 @@ import androidx.work.ListenableWorker
import androidx.work.WorkerParameters
import app.alextran.immich.MainActivity
import app.alextran.immich.R
+import com.google.common.util.concurrent.Futures
import com.google.common.util.concurrent.ListenableFuture
import com.google.common.util.concurrent.SettableFuture
import io.flutter.FlutterInjector
@@ -61,6 +62,11 @@ class BackgroundWorker(context: Context, params: WorkerParameters) :
}
override fun startWork(): ListenableFuture {
+ if (BackgroundWorkerPreferences(ctx).isLocked() && BackgroundEngineLock.connectEngines > 0) {
+ Log.i(TAG, "Foreground engine active, skipping background worker")
+ return Futures.immediateFuture(Result.success())
+ }
+
Log.i(TAG, "Starting background upload worker")
if (!loader.initialized()) {
@@ -77,6 +83,10 @@ class BackgroundWorker(context: Context, params: WorkerParameters) :
showNotification(notificationConfig.first, notificationConfig.second)
loader.ensureInitializationCompleteAsync(ctx, null, Handler(Looper.getMainLooper())) {
+ if (isStopped || isComplete) {
+ return@ensureInitializationCompleteAsync
+ }
+
engine = FlutterEngine(ctx)
FlutterEngineCache.getInstance().put(BackgroundWorkerApiImpl.ENGINE_CACHE_KEY, engine!!)
@@ -143,11 +153,17 @@ class BackgroundWorker(context: Context, params: WorkerParameters) :
return
}
+ val api = flutterApi
+ if (api == null) {
+ Handler(Looper.getMainLooper()).postAtFrontOfQueue {
+ complete(Result.failure())
+ }
+ return
+ }
+
Handler(Looper.getMainLooper()).postAtFrontOfQueue {
- if (flutterApi != null) {
- flutterApi?.cancel {
- complete(Result.failure())
- }
+ api.cancel {
+ complete(Result.failure())
}
}
diff --git a/mobile/android/app/src/main/kotlin/app/alextran/immich/background/BackgroundWorkerLock.g.kt b/mobile/android/app/src/main/kotlin/app/alextran/immich/background/BackgroundWorkerLock.g.kt
deleted file mode 100644
index 4e2e382c2b..0000000000
--- a/mobile/android/app/src/main/kotlin/app/alextran/immich/background/BackgroundWorkerLock.g.kt
+++ /dev/null
@@ -1,95 +0,0 @@
-// Autogenerated from Pigeon (v26.3.4), do not edit directly.
-// See also: https://pub.dev/packages/pigeon
-@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass")
-
-package app.alextran.immich.background
-
-import android.util.Log
-import io.flutter.plugin.common.BasicMessageChannel
-import io.flutter.plugin.common.BinaryMessenger
-import io.flutter.plugin.common.EventChannel
-import io.flutter.plugin.common.MessageCodec
-import io.flutter.plugin.common.StandardMethodCodec
-import io.flutter.plugin.common.StandardMessageCodec
-import java.io.ByteArrayOutputStream
-import java.nio.ByteBuffer
-private object BackgroundWorkerLockPigeonUtils {
-
- fun wrapResult(result: Any?): List {
- return listOf(result)
- }
-
- fun wrapError(exception: Throwable): List {
- return if (exception is FlutterError) {
- listOf(
- exception.code,
- exception.message,
- exception.details
- )
- } else {
- listOf(
- exception.javaClass.simpleName,
- exception.toString(),
- "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)
- )
- }
- }
-}
-private open class BackgroundWorkerLockPigeonCodec : StandardMessageCodec() {
- override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? {
- return super.readValueOfType(type, buffer)
- }
- override fun writeValue(stream: ByteArrayOutputStream, value: Any?) {
- super.writeValue(stream, value)
- }
-}
-
-/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
-interface BackgroundWorkerLockApi {
- fun lock()
- fun unlock()
-
- companion object {
- /** The codec used by BackgroundWorkerLockApi. */
- val codec: MessageCodec by lazy {
- BackgroundWorkerLockPigeonCodec()
- }
- /** Sets up an instance of `BackgroundWorkerLockApi` to handle messages through the `binaryMessenger`. */
- @JvmOverloads
- fun setUp(binaryMessenger: BinaryMessenger, api: BackgroundWorkerLockApi?, messageChannelSuffix: String = "") {
- val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else ""
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerLockApi.lock$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { _, reply ->
- val wrapped: List = try {
- api.lock()
- listOf(null)
- } catch (exception: Throwable) {
- BackgroundWorkerLockPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.BackgroundWorkerLockApi.unlock$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { _, reply ->
- val wrapped: List = try {
- api.unlock()
- listOf(null)
- } catch (exception: Throwable) {
- BackgroundWorkerLockPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- }
- }
-}
diff --git a/mobile/android/app/src/main/kotlin/app/alextran/immich/connectivity/Connectivity.g.kt b/mobile/android/app/src/main/kotlin/app/alextran/immich/connectivity/Connectivity.g.kt
deleted file mode 100644
index aec1f06164..0000000000
--- a/mobile/android/app/src/main/kotlin/app/alextran/immich/connectivity/Connectivity.g.kt
+++ /dev/null
@@ -1,116 +0,0 @@
-// Autogenerated from Pigeon (v26.3.4), do not edit directly.
-// See also: https://pub.dev/packages/pigeon
-@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass")
-
-package app.alextran.immich.connectivity
-
-import android.util.Log
-import io.flutter.plugin.common.BasicMessageChannel
-import io.flutter.plugin.common.BinaryMessenger
-import io.flutter.plugin.common.EventChannel
-import io.flutter.plugin.common.MessageCodec
-import io.flutter.plugin.common.StandardMethodCodec
-import io.flutter.plugin.common.StandardMessageCodec
-import java.io.ByteArrayOutputStream
-import java.nio.ByteBuffer
-private object ConnectivityPigeonUtils {
-
- fun wrapResult(result: Any?): List {
- return listOf(result)
- }
-
- fun wrapError(exception: Throwable): List {
- return if (exception is FlutterError) {
- listOf(
- exception.code,
- exception.message,
- exception.details
- )
- } else {
- listOf(
- exception.javaClass.simpleName,
- exception.toString(),
- "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)
- )
- }
- }
-}
-
-/**
- * Error class for passing custom error details to Flutter via a thrown PlatformException.
- * @property code The error code.
- * @property message The error message.
- * @property details The error details. Must be a datatype supported by the api codec.
- */
-class FlutterError (
- val code: String,
- override val message: String? = null,
- val details: Any? = null
-) : RuntimeException()
-
-enum class NetworkCapability(val raw: Int) {
- CELLULAR(0),
- WIFI(1),
- VPN(2),
- UNMETERED(3);
-
- companion object {
- fun ofRaw(raw: Int): NetworkCapability? {
- return values().firstOrNull { it.raw == raw }
- }
- }
-}
-private open class ConnectivityPigeonCodec : StandardMessageCodec() {
- override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? {
- return when (type) {
- 129.toByte() -> {
- return (readValue(buffer) as Long?)?.let {
- NetworkCapability.ofRaw(it.toInt())
- }
- }
- else -> super.readValueOfType(type, buffer)
- }
- }
- override fun writeValue(stream: ByteArrayOutputStream, value: Any?) {
- when (value) {
- is NetworkCapability -> {
- stream.write(129)
- writeValue(stream, value.raw.toLong())
- }
- else -> super.writeValue(stream, value)
- }
- }
-}
-
-/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
-interface ConnectivityApi {
- fun getCapabilities(): List
-
- companion object {
- /** The codec used by ConnectivityApi. */
- val codec: MessageCodec by lazy {
- ConnectivityPigeonCodec()
- }
- /** Sets up an instance of `ConnectivityApi` to handle messages through the `binaryMessenger`. */
- @JvmOverloads
- fun setUp(binaryMessenger: BinaryMessenger, api: ConnectivityApi?, messageChannelSuffix: String = "") {
- val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else ""
- val taskQueue = binaryMessenger.makeBackgroundTaskQueue()
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.ConnectivityApi.getCapabilities$separatedMessageChannelSuffix", codec, taskQueue)
- if (api != null) {
- channel.setMessageHandler { _, reply ->
- val wrapped: List = try {
- listOf(api.getCapabilities())
- } catch (exception: Throwable) {
- ConnectivityPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- }
- }
-}
diff --git a/mobile/android/app/src/main/kotlin/app/alextran/immich/core/Network.g.kt b/mobile/android/app/src/main/kotlin/app/alextran/immich/core/Network.g.kt
deleted file mode 100644
index c380a0a6a5..0000000000
--- a/mobile/android/app/src/main/kotlin/app/alextran/immich/core/Network.g.kt
+++ /dev/null
@@ -1,451 +0,0 @@
-// Autogenerated from Pigeon (v26.3.4), do not edit directly.
-// See also: https://pub.dev/packages/pigeon
-@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass")
-
-package app.alextran.immich.core
-
-import android.util.Log
-import io.flutter.plugin.common.BasicMessageChannel
-import io.flutter.plugin.common.BinaryMessenger
-import io.flutter.plugin.common.EventChannel
-import io.flutter.plugin.common.MessageCodec
-import io.flutter.plugin.common.StandardMethodCodec
-import io.flutter.plugin.common.StandardMessageCodec
-import java.io.ByteArrayOutputStream
-import java.nio.ByteBuffer
-private object NetworkPigeonUtils {
-
- fun wrapResult(result: Any?): List {
- return listOf(result)
- }
-
- fun wrapError(exception: Throwable): List {
- return if (exception is FlutterError) {
- listOf(
- exception.code,
- exception.message,
- exception.details
- )
- } else {
- listOf(
- exception.javaClass.simpleName,
- exception.toString(),
- "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)
- )
- }
- }
- fun doubleEquals(a: Double, b: Double): Boolean {
- // Normalize -0.0 to 0.0 and handle NaN equality.
- return (if (a == 0.0) 0.0 else a) == (if (b == 0.0) 0.0 else b) || (a.isNaN() && b.isNaN())
- }
-
- fun floatEquals(a: Float, b: Float): Boolean {
- // Normalize -0.0 to 0.0 and handle NaN equality.
- return (if (a == 0.0f) 0.0f else a) == (if (b == 0.0f) 0.0f else b) || (a.isNaN() && b.isNaN())
- }
-
- fun doubleHash(d: Double): Int {
- // Normalize -0.0 to 0.0 and handle NaN to ensure consistent hash codes.
- val normalized = if (d == 0.0) 0.0 else d
- val bits = java.lang.Double.doubleToLongBits(normalized)
- return (bits xor (bits ushr 32)).toInt()
- }
-
- fun floatHash(f: Float): Int {
- // Normalize -0.0 to 0.0 and handle NaN to ensure consistent hash codes.
- val normalized = if (f == 0.0f) 0.0f else f
- return java.lang.Float.floatToIntBits(normalized)
- }
-
- fun deepEquals(a: Any?, b: Any?): Boolean {
- if (a === b) {
- return true
- }
- if (a == null || b == null) {
- return false
- }
- if (a is ByteArray && b is ByteArray) {
- return a.contentEquals(b)
- }
- if (a is IntArray && b is IntArray) {
- return a.contentEquals(b)
- }
- if (a is LongArray && b is LongArray) {
- return a.contentEquals(b)
- }
- if (a is DoubleArray && b is DoubleArray) {
- if (a.size != b.size) return false
- for (i in a.indices) {
- if (!doubleEquals(a[i], b[i])) return false
- }
- return true
- }
- if (a is FloatArray && b is FloatArray) {
- if (a.size != b.size) return false
- for (i in a.indices) {
- if (!floatEquals(a[i], b[i])) return false
- }
- return true
- }
- if (a is Array<*> && b is Array<*>) {
- if (a.size != b.size) return false
- for (i in a.indices) {
- if (!deepEquals(a[i], b[i])) return false
- }
- return true
- }
- if (a is List<*> && b is List<*>) {
- if (a.size != b.size) return false
- val iterA = a.iterator()
- val iterB = b.iterator()
- while (iterA.hasNext() && iterB.hasNext()) {
- if (!deepEquals(iterA.next(), iterB.next())) return false
- }
- return true
- }
- if (a is Map<*, *> && b is Map<*, *>) {
- if (a.size != b.size) return false
- for (entry in a) {
- val key = entry.key
- var found = false
- for (bEntry in b) {
- if (deepEquals(key, bEntry.key)) {
- if (deepEquals(entry.value, bEntry.value)) {
- found = true
- break
- } else {
- return false
- }
- }
- }
- if (!found) return false
- }
- return true
- }
- if (a is Double && b is Double) {
- return doubleEquals(a, b)
- }
- if (a is Float && b is Float) {
- return floatEquals(a, b)
- }
- return a == b
- }
-
- fun deepHash(value: Any?): Int {
- return when (value) {
- null -> 0
- is ByteArray -> value.contentHashCode()
- is IntArray -> value.contentHashCode()
- is LongArray -> value.contentHashCode()
- is DoubleArray -> {
- var result = 1
- for (item in value) {
- result = 31 * result + doubleHash(item)
- }
- result
- }
- is FloatArray -> {
- var result = 1
- for (item in value) {
- result = 31 * result + floatHash(item)
- }
- result
- }
- is Array<*> -> {
- var result = 1
- for (item in value) {
- result = 31 * result + deepHash(item)
- }
- result
- }
- is List<*> -> {
- var result = 1
- for (item in value) {
- result = 31 * result + deepHash(item)
- }
- result
- }
- is Map<*, *> -> {
- var result = 0
- for (entry in value) {
- result += ((deepHash(entry.key) * 31) xor deepHash(entry.value))
- }
- result
- }
- is Double -> doubleHash(value)
- is Float -> floatHash(value)
- else -> value.hashCode()
- }
- }
-
-}
-
-/**
- * Error class for passing custom error details to Flutter via a thrown PlatformException.
- * @property code The error code.
- * @property message The error message.
- * @property details The error details. Must be a datatype supported by the api codec.
- */
-class FlutterError (
- val code: String,
- override val message: String? = null,
- val details: Any? = null
-) : RuntimeException()
-
-/** Generated class from Pigeon that represents data sent in messages. */
-data class ClientCertData (
- val data: ByteArray,
- val password: String
-)
- {
- companion object {
- fun fromList(pigeonVar_list: List): ClientCertData {
- val data = pigeonVar_list[0] as ByteArray
- val password = pigeonVar_list[1] as String
- return ClientCertData(data, password)
- }
- }
- fun toList(): List {
- return listOf(
- data,
- password,
- )
- }
- override fun equals(other: Any?): Boolean {
- if (other == null || other.javaClass != javaClass) {
- return false
- }
- if (this === other) {
- return true
- }
- val other = other as ClientCertData
- return NetworkPigeonUtils.deepEquals(this.data, other.data) && NetworkPigeonUtils.deepEquals(this.password, other.password)
- }
-
- override fun hashCode(): Int {
- var result = javaClass.hashCode()
- result = 31 * result + NetworkPigeonUtils.deepHash(this.data)
- result = 31 * result + NetworkPigeonUtils.deepHash(this.password)
- return result
- }
-}
-
-/** Generated class from Pigeon that represents data sent in messages. */
-data class ClientCertPrompt (
- val title: String,
- val message: String,
- val cancel: String,
- val confirm: String
-)
- {
- companion object {
- fun fromList(pigeonVar_list: List): ClientCertPrompt {
- val title = pigeonVar_list[0] as String
- val message = pigeonVar_list[1] as String
- val cancel = pigeonVar_list[2] as String
- val confirm = pigeonVar_list[3] as String
- return ClientCertPrompt(title, message, cancel, confirm)
- }
- }
- fun toList(): List {
- return listOf(
- title,
- message,
- cancel,
- confirm,
- )
- }
- override fun equals(other: Any?): Boolean {
- if (other == null || other.javaClass != javaClass) {
- return false
- }
- if (this === other) {
- return true
- }
- val other = other as ClientCertPrompt
- return NetworkPigeonUtils.deepEquals(this.title, other.title) && NetworkPigeonUtils.deepEquals(this.message, other.message) && NetworkPigeonUtils.deepEquals(this.cancel, other.cancel) && NetworkPigeonUtils.deepEquals(this.confirm, other.confirm)
- }
-
- override fun hashCode(): Int {
- var result = javaClass.hashCode()
- result = 31 * result + NetworkPigeonUtils.deepHash(this.title)
- result = 31 * result + NetworkPigeonUtils.deepHash(this.message)
- result = 31 * result + NetworkPigeonUtils.deepHash(this.cancel)
- result = 31 * result + NetworkPigeonUtils.deepHash(this.confirm)
- return result
- }
-}
-private open class NetworkPigeonCodec : StandardMessageCodec() {
- override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? {
- return when (type) {
- 129.toByte() -> {
- return (readValue(buffer) as? List)?.let {
- ClientCertData.fromList(it)
- }
- }
- 130.toByte() -> {
- return (readValue(buffer) as? List)?.let {
- ClientCertPrompt.fromList(it)
- }
- }
- else -> super.readValueOfType(type, buffer)
- }
- }
- override fun writeValue(stream: ByteArrayOutputStream, value: Any?) {
- when (value) {
- is ClientCertData -> {
- stream.write(129)
- writeValue(stream, value.toList())
- }
- is ClientCertPrompt -> {
- stream.write(130)
- writeValue(stream, value.toList())
- }
- else -> super.writeValue(stream, value)
- }
- }
-}
-
-
-/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
-interface NetworkApi {
- fun addCertificate(clientData: ClientCertData, callback: (Result) -> Unit)
- fun selectCertificate(promptText: ClientCertPrompt, callback: (Result) -> Unit)
- fun removeCertificate(callback: (Result) -> Unit)
- fun hasCertificate(): Boolean
- fun getClientPointer(): Long
- fun setRequestHeaders(headers: Map, serverUrls: List, token: String?)
- fun getAppGroupId(): String
-
- companion object {
- /** The codec used by NetworkApi. */
- val codec: MessageCodec by lazy {
- NetworkPigeonCodec()
- }
- /** Sets up an instance of `NetworkApi` to handle messages through the `binaryMessenger`. */
- @JvmOverloads
- fun setUp(binaryMessenger: BinaryMessenger, api: NetworkApi?, messageChannelSuffix: String = "") {
- val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else ""
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.NetworkApi.addCertificate$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { message, reply ->
- val args = message as List
- val clientDataArg = args[0] as ClientCertData
- api.addCertificate(clientDataArg) { result: Result ->
- val error = result.exceptionOrNull()
- if (error != null) {
- reply.reply(NetworkPigeonUtils.wrapError(error))
- } else {
- reply.reply(NetworkPigeonUtils.wrapResult(null))
- }
- }
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.NetworkApi.selectCertificate$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { message, reply ->
- val args = message as List
- val promptTextArg = args[0] as ClientCertPrompt
- api.selectCertificate(promptTextArg) { result: Result ->
- val error = result.exceptionOrNull()
- if (error != null) {
- reply.reply(NetworkPigeonUtils.wrapError(error))
- } else {
- reply.reply(NetworkPigeonUtils.wrapResult(null))
- }
- }
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.NetworkApi.removeCertificate$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { _, reply ->
- api.removeCertificate{ result: Result ->
- val error = result.exceptionOrNull()
- if (error != null) {
- reply.reply(NetworkPigeonUtils.wrapError(error))
- } else {
- reply.reply(NetworkPigeonUtils.wrapResult(null))
- }
- }
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.NetworkApi.hasCertificate$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { _, reply ->
- val wrapped: List = try {
- listOf(api.hasCertificate())
- } catch (exception: Throwable) {
- NetworkPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.NetworkApi.getClientPointer$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { _, reply ->
- val wrapped: List = try {
- listOf(api.getClientPointer())
- } catch (exception: Throwable) {
- NetworkPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.NetworkApi.setRequestHeaders$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { message, reply ->
- val args = message as List
- val headersArg = args[0] as Map
- val serverUrlsArg = args[1] as List
- val tokenArg = args[2] as String?
- val wrapped: List = try {
- api.setRequestHeaders(headersArg, serverUrlsArg, tokenArg)
- listOf(null)
- } catch (exception: Throwable) {
- NetworkPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- run {
- val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.immich_mobile.NetworkApi.getAppGroupId$separatedMessageChannelSuffix", codec)
- if (api != null) {
- channel.setMessageHandler { _, reply ->
- val wrapped: List = try {
- listOf(api.getAppGroupId())
- } catch (exception: Throwable) {
- NetworkPigeonUtils.wrapError(exception)
- }
- reply.reply(wrapped)
- }
- } else {
- channel.setMessageHandler(null)
- }
- }
- }
- }
-}
diff --git a/mobile/android/app/src/main/kotlin/app/alextran/immich/images/LocalImages.g.kt b/mobile/android/app/src/main/kotlin/app/alextran/immich/images/LocalImages.g.kt
deleted file mode 100644
index e741ce07e9..0000000000
--- a/mobile/android/app/src/main/kotlin/app/alextran/immich/images/LocalImages.g.kt
+++ /dev/null
@@ -1,140 +0,0 @@
-// Autogenerated from Pigeon (v26.3.4), do not edit directly.
-// See also: https://pub.dev/packages/pigeon
-@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass")
-
-package app.alextran.immich.images
-
-import android.util.Log
-import io.flutter.plugin.common.BasicMessageChannel
-import io.flutter.plugin.common.BinaryMessenger
-import io.flutter.plugin.common.EventChannel
-import io.flutter.plugin.common.MessageCodec
-import io.flutter.plugin.common.StandardMethodCodec
-import io.flutter.plugin.common.StandardMessageCodec
-import java.io.ByteArrayOutputStream
-import java.nio.ByteBuffer
-private object LocalImagesPigeonUtils {
-
- fun wrapResult(result: Any?): List {
- return listOf(result)
- }
-
- fun wrapError(exception: Throwable): List {
- return if (exception is FlutterError) {
- listOf(
- exception.code,
- exception.message,
- exception.details
- )
- } else {
- listOf(
- exception.javaClass.simpleName,
- exception.toString(),
- "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)
- )
- }
- }
-}
-
-/**
- * Error class for passing custom error details to Flutter via a thrown PlatformException.
- * @property code The error code.
- * @property message The error message.
- * @property details The error details. Must be a datatype supported by the api codec.
- */
-class FlutterError (
- val code: String,
- override val message: String? = null,
- val details: Any? = null
-) : RuntimeException()
-private open class LocalImagesPigeonCodec : StandardMessageCodec() {
- override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? {
- return super.readValueOfType(type, buffer)
- }
- override fun writeValue(stream: ByteArrayOutputStream, value: Any?) {
- super.writeValue(stream, value)
- }
-}
-
-
-/** Generated interface from Pigeon that represents a handler of messages from Flutter. */
-interface LocalImageApi {
- fun requestImage(assetId: String, requestId: Long, width: Long, height: Long, isVideo: Boolean, preferEncoded: Boolean, callback: (Result