shalong-tanwen преди 1 година
родител
ревизия
748821d7a7
променени са 100 файла, в които са добавени 3646 реда и са изтрити 1808 реда
  1. 20 0
      .dockerignore
  2. 1 1
      .github/workflows/dispatch_sdk_update.yml
  3. 2 8
      .github/workflows/docker-cleanup.yml
  4. 4 7
      .github/workflows/docker.yml
  5. 3 3
      .github/workflows/test.yml
  6. 6 12
      Makefile
  7. 3 1
      README.md
  8. 1 1
      README_ca_ES.md
  9. 1 0
      README_es_ES.md
  10. 1 0
      README_fr_FR.md
  11. 1 0
      README_it_IT.md
  12. 1 0
      README_nl_NL.md
  13. 1 0
      README_tr_TR.md
  14. 150 118
      cli/package-lock.json
  15. 469 236
      cli/src/api/open-api/api.ts
  16. 1 1
      cli/src/api/open-api/base.ts
  17. 1 1
      cli/src/api/open-api/common.ts
  18. 1 1
      cli/src/api/open-api/configuration.ts
  19. 1 1
      cli/src/api/open-api/index.ts
  20. 5 0
      docker/README.md
  21. 26 58
      docker/docker-compose.dev.yml
  22. 20 52
      docker/docker-compose.prod.yml
  23. 4 4
      docker/docker-compose.test.yml
  24. 12 19
      docker/docker-compose.yml
  25. 1 20
      docs/docs/administration/reverse-proxy.md
  26. 1 2
      docs/docs/administration/server-commands.md
  27. 1 2
      docs/docs/developer/directories.md
  28. 8 2
      docs/docs/developer/setup.md
  29. 0 4
      docs/docs/developer/troubleshooting.md
  30. 1 1
      docs/docs/features/libraries.md
  31. 0 22
      docs/docs/install/docker-compose.md
  32. 6 22
      docs/docs/install/environment-variables.md
  33. 4 4
      docs/docs/install/unraid.md
  34. 10 10
      docs/package-lock.json
  35. 11 2
      machine-learning/app/config.py
  36. 2 1
      machine-learning/app/conftest.py
  37. 35 4
      machine-learning/app/main.py
  38. 6 4
      machine-learning/app/models/__init__.py
  39. 14 7
      machine-learning/app/models/base.py
  40. 5 5
      machine-learning/app/models/cache.py
  41. 10 66
      machine-learning/app/models/clip.py
  42. 57 0
      machine-learning/app/models/constants.py
  43. 30 40
      machine-learning/app/models/facial_recognition.py
  44. 1 1
      machine-learning/app/models/image_classification.py
  45. 19 13
      machine-learning/app/schemas.py
  46. 11 11
      machine-learning/app/test_main.py
  47. 9 4
      machine-learning/export/models/openclip.py
  48. 1 1
      machine-learning/pyproject.toml
  49. 52 0
      mobile/analysis_options.yaml
  50. 2 2
      mobile/android/fastlane/Fastfile
  51. 3 3
      mobile/android/fastlane/report.xml
  52. 24 0
      mobile/assets/i18n/ca.json
  53. 75 51
      mobile/assets/i18n/cs-CZ.json
  54. 63 39
      mobile/assets/i18n/da-DK.json
  55. 134 110
      mobile/assets/i18n/de-DE.json
  56. 74 16
      mobile/assets/i18n/en-US.json
  57. 100 76
      mobile/assets/i18n/es-ES.json
  58. 99 75
      mobile/assets/i18n/es-MX.json
  59. 100 76
      mobile/assets/i18n/es-PE.json
  60. 442 0
      mobile/assets/i18n/es-US.json
  61. 85 61
      mobile/assets/i18n/fi-FI.json
  62. 384 0
      mobile/assets/i18n/fr-CA.json
  63. 63 39
      mobile/assets/i18n/fr-FR.json
  64. 24 0
      mobile/assets/i18n/hi-IN.json
  65. 24 0
      mobile/assets/i18n/hu-HU.json
  66. 27 3
      mobile/assets/i18n/it-IT.json
  67. 35 11
      mobile/assets/i18n/ja-JP.json
  68. 162 138
      mobile/assets/i18n/ko-KR.json
  69. 24 0
      mobile/assets/i18n/lv-LV.json
  70. 24 0
      mobile/assets/i18n/mn.json
  71. 64 40
      mobile/assets/i18n/nb-NO.json
  72. 24 0
      mobile/assets/i18n/nl-NL.json
  73. 63 39
      mobile/assets/i18n/pl-PL.json
  74. 65 41
      mobile/assets/i18n/ru-RU.json
  75. 66 42
      mobile/assets/i18n/sk-SK.json
  76. 24 0
      mobile/assets/i18n/sr-Cyrl.json
  77. 24 0
      mobile/assets/i18n/sr-Latn.json
  78. 24 0
      mobile/assets/i18n/sv-FI.json
  79. 24 0
      mobile/assets/i18n/sv-SE.json
  80. 24 0
      mobile/assets/i18n/th-TH.json
  81. 24 0
      mobile/assets/i18n/uk-UA.json
  82. 79 55
      mobile/assets/i18n/vi-VN.json
  83. 51 27
      mobile/assets/i18n/zh-CN.json
  84. 51 27
      mobile/assets/i18n/zh-Hans.json
  85. 3 3
      mobile/ios/Runner.xcodeproj/project.pbxproj
  86. 2 7
      mobile/ios/Runner/Info.plist
  87. 1 1
      mobile/ios/fastlane/Fastfile
  88. 6 6
      mobile/ios/fastlane/report.xml
  89. 2 0
      mobile/lib/constants/locales.dart
  90. 0 4
      mobile/lib/main.dart
  91. 1 2
      mobile/lib/modules/activities/models/activity.model.dart
  92. 1 1
      mobile/lib/modules/activities/views/activities_page.dart
  93. 2 0
      mobile/lib/modules/album/providers/album.provider.dart
  94. 4 0
      mobile/lib/modules/album/services/album.service.dart
  95. 1 1
      mobile/lib/modules/album/ui/album_viewer_appbar.dart
  96. 10 15
      mobile/lib/modules/album/views/album_options_part.dart
  97. 0 1
      mobile/lib/modules/album/views/album_viewer_page.dart
  98. 4 11
      mobile/lib/modules/archive/providers/archive_asset_provider.dart
  99. 1 1
      mobile/lib/modules/asset_viewer/providers/image_viewer_page_state.provider.dart
  100. 3 12
      mobile/lib/modules/asset_viewer/providers/render_list.provider.dart

+ 20 - 0
.dockerignore

@@ -0,0 +1,20 @@
+.vscode/
+cli/
+design/
+docker/
+docs/
+fastlane/
+machine-learning/
+misc/
+mobile/
+
+server/node_modules
+server/coverage/
+server/.reverse-geocoding-dump/
+server/upload/
+server/dist/
+
+web/node_modules/
+web/coverage/
+web/.svelte-kit
+web/build/

+ 1 - 1
.github/workflows/dispatch_sdk_update.yml

@@ -14,7 +14,7 @@ jobs:
     runs-on: ubuntu-latest
     runs-on: ubuntu-latest
     if: ${{ !github.event.pull_request.head.repo.fork }}
     if: ${{ !github.event.pull_request.head.repo.fork }}
     steps:
     steps:
-      - uses: actions/github-script@v6
+      - uses: actions/github-script@v7
         with:
         with:
           github-token: ${{ secrets.GH_TOKEN }}
           github-token: ${{ secrets.GH_TOKEN }}
           script: |
           script: |

+ 2 - 8
.github/workflows/docker-cleanup.yml

@@ -29,14 +29,11 @@ jobs:
         include:
         include:
           - primary-name: "immich-server"
           - primary-name: "immich-server"
           - primary-name: "immich-machine-learning"
           - primary-name: "immich-machine-learning"
-          - primary-name: "immich-web"
-          - primary-name: "immich-proxy"
     env:
     env:
       # Requires a personal access token with the OAuth scope delete:packages
       # Requires a personal access token with the OAuth scope delete:packages
       TOKEN: ${{ secrets.PACKAGE_DELETE_TOKEN }}
       TOKEN: ${{ secrets.PACKAGE_DELETE_TOKEN }}
     steps:
     steps:
-      -
-        name: Clean temporary images
+      - name: Clean temporary images
         if: "${{ env.TOKEN != '' }}"
         if: "${{ env.TOKEN != '' }}"
         uses: stumpylog/image-cleaner-action/ephemeral@v0.4.0
         uses: stumpylog/image-cleaner-action/ephemeral@v0.4.0
         with:
         with:
@@ -60,15 +57,12 @@ jobs:
         include:
         include:
           - primary-name: "immich-server"
           - primary-name: "immich-server"
           - primary-name: "immich-machine-learning"
           - primary-name: "immich-machine-learning"
-          - primary-name: "immich-web"
-          - primary-name: "immich-proxy"
           - primary-name: "immich-build-cache"
           - primary-name: "immich-build-cache"
     env:
     env:
       # Requires a personal access token with the OAuth scope delete:packages
       # Requires a personal access token with the OAuth scope delete:packages
       TOKEN: ${{ secrets.PACKAGE_DELETE_TOKEN }}
       TOKEN: ${{ secrets.PACKAGE_DELETE_TOKEN }}
     steps:
     steps:
-      -
-        name: Clean untagged images
+      - name: Clean untagged images
         if: "${{ env.TOKEN != '' }}"
         if: "${{ env.TOKEN != '' }}"
         uses: stumpylog/image-cleaner-action/untagged@v0.4.0
         uses: stumpylog/image-cleaner-action/untagged@v0.4.0
         with:
         with:

+ 4 - 7
.github/workflows/docker.yml

@@ -24,16 +24,12 @@ jobs:
       fail-fast: false
       fail-fast: false
       matrix:
       matrix:
         include:
         include:
-          - context: "web"
-            image: "immich-web"
-            platforms: "linux/amd64,linux/arm64"
           - context: "machine-learning"
           - context: "machine-learning"
+            file: "machine-learning/Dockerfile"
             image: "immich-machine-learning"
             image: "immich-machine-learning"
             platforms: "linux/amd64,linux/arm64"
             platforms: "linux/amd64,linux/arm64"
-          - context: "nginx"
-            image: "immich-proxy"
-            platforms: "linux/amd64,linux/arm64"
-          - context: "server"
+          - context: "."
+            file: "server/Dockerfile"
             image: "immich-server"
             image: "immich-server"
             platforms: "linux/arm64,linux/amd64"
             platforms: "linux/arm64,linux/amd64"
 
 
@@ -103,6 +99,7 @@ jobs:
         uses: docker/build-push-action@v5.0.0
         uses: docker/build-push-action@v5.0.0
         with:
         with:
           context: ${{ matrix.context }}
           context: ${{ matrix.context }}
+          file: ${{ matrix.file }}
           platforms: ${{ matrix.platforms }}
           platforms: ${{ matrix.platforms }}
           # Skip pushing when PR from a fork
           # Skip pushing when PR from a fork
           push: ${{ !github.event.pull_request.head.repo.fork }}
           push: ${{ !github.event.pull_request.head.repo.fork }}

+ 3 - 3
.github/workflows/test.yml

@@ -168,13 +168,13 @@ jobs:
           poetry install --with dev
           poetry install --with dev
       - name: Lint with ruff
       - name: Lint with ruff
         run: |
         run: |
-          poetry run ruff check --format=github app
+          poetry run ruff check --format=github app export
       - name: Check black formatting
       - name: Check black formatting
         run: |
         run: |
-          poetry run black --check app
+          poetry run black --check app export
       - name: Run mypy type checking
       - name: Run mypy type checking
         run: |
         run: |
-          poetry run mypy --install-types --non-interactive app/
+          poetry run mypy --install-types --non-interactive --strict app/ export/
       - name: Run tests and coverage
       - name: Run tests and coverage
         run: |
         run: |
           poetry run pytest --cov app
           poetry run pytest --cov app

+ 6 - 12
Makefile

@@ -1,35 +1,29 @@
 dev:
 dev:
-	docker-compose -f ./docker/docker-compose.dev.yml up --remove-orphans
-
-dev-new:
 	docker compose -f ./docker/docker-compose.dev.yml up --remove-orphans || make dev-down
 	docker compose -f ./docker/docker-compose.dev.yml up --remove-orphans || make dev-down
 
 
 dev-down:
 dev-down:
 	docker compose -f ./docker/docker-compose.dev.yml down --remove-orphans
 	docker compose -f ./docker/docker-compose.dev.yml down --remove-orphans
 
 
-dev-new-update:
-	docker compose -f ./docker/docker-compose.dev.yml up --build -V --remove-orphans
-
 dev-update:
 dev-update:
-	docker-compose -f ./docker/docker-compose.dev.yml up --build -V --remove-orphans
+	docker compose -f ./docker/docker-compose.dev.yml up --build -V --remove-orphans
 
 
 dev-scale:
 dev-scale:
-	docker-compose -f ./docker/docker-compose.dev.yml up --build -V  --scale immich-server=3 --remove-orphans
+	docker compose -f ./docker/docker-compose.dev.yml up --build -V  --scale immich-server=3 --remove-orphans
 
 
 stage:
 stage:
-	docker-compose -f ./docker/docker-compose.staging.yml up --build -V --remove-orphans
+	docker compose -f ./docker/docker-compose.staging.yml up --build -V --remove-orphans
 
 
 pull-stage:
 pull-stage:
-	docker-compose -f ./docker/docker-compose.staging.yml pull
+	docker compose -f ./docker/docker-compose.staging.yml pull
 
 
 test-e2e:
 test-e2e:
 	docker compose -f ./docker/docker-compose.test.yml up --renew-anon-volumes --abort-on-container-exit --exit-code-from immich-server --remove-orphans --build
 	docker compose -f ./docker/docker-compose.test.yml up --renew-anon-volumes --abort-on-container-exit --exit-code-from immich-server --remove-orphans --build
 
 
 prod:
 prod:
-	docker-compose -f ./docker/docker-compose.prod.yml up --build -V --remove-orphans
+	docker compose -f ./docker/docker-compose.prod.yml up --build -V --remove-orphans
 
 
 prod-scale:
 prod-scale:
-	docker-compose -f ./docker/docker-compose.prod.yml up --build -V --scale immich-server=3 --scale immich-microservices=3 --remove-orphans
+	docker compose -f ./docker/docker-compose.prod.yml up --build -V --scale immich-server=3 --scale immich-microservices=3 --remove-orphans
 
 
 api:
 api:
 	cd ./server && npm run api:generate
 	cd ./server && npm run api:generate

+ 3 - 1
README.md

@@ -85,7 +85,7 @@ Spec: Free-tier Oracle VM - Amsterdam - 2.4Ghz quad-core ARM64 CPU, 24GB RAM
 | Virtual scroll                               | Yes    | Yes |
 | Virtual scroll                               | Yes    | Yes |
 | OAuth support                                | Yes    | Yes |
 | OAuth support                                | Yes    | Yes |
 | API Keys                                     | N/A    | Yes |
 | API Keys                                     | N/A    | Yes |
-| LivePhoto backup and playback                | iOS    | Yes |
+| LivePhoto/MotionPhoto backup and playback    | Yes    | Yes |
 | User-defined storage structure               | Yes    | Yes |
 | User-defined storage structure               | Yes    | Yes |
 | Public Sharing                               | No     | Yes |
 | Public Sharing                               | No     | Yes |
 | Archive and Favorites                        | Yes    | Yes |
 | Archive and Favorites                        | Yes    | Yes |
@@ -95,6 +95,7 @@ Spec: Free-tier Oracle VM - Amsterdam - 2.4Ghz quad-core ARM64 CPU, 24GB RAM
 | Memories (x years ago)                       | Yes    | Yes |
 | Memories (x years ago)                       | Yes    | Yes |
 | Offline support                              | Yes    | No  |
 | Offline support                              | Yes    | No  |
 | Read-only gallery                            | Yes    | Yes |
 | Read-only gallery                            | Yes    | Yes |
+| Stacked Photos                               | Yes    | Yes |
 
 
 ## Support the project
 ## Support the project
 
 
@@ -111,6 +112,7 @@ If you feel like this is the right cause and the app is something you are seeing
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
+- ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz
 
 
 ## Contributors
 ## Contributors
 <a href="https://github.com/alextran1502/immich/graphs/contributors">
 <a href="https://github.com/alextran1502/immich/graphs/contributors">

+ 1 - 1
README_ca_ES.md

@@ -109,4 +109,4 @@ Si creieu que aquesta és una causa justa i l'aplicació és alguna cosa que us
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
-
+- ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz

+ 1 - 0
README_es_ES.md

@@ -109,3 +109,4 @@ Si consideras que esta es una causa justa y la aplicación es algo que te gustar
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
+- ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz

+ 1 - 0
README_fr_FR.md

@@ -111,3 +111,4 @@ Si vous estimez que c'est pour la bonne cause et que vous prévoyez d'utiliser l
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
+- ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz

+ 1 - 0
README_it_IT.md

@@ -111,3 +111,4 @@ Se pensi che Immich sia una buona causa e che l'app sia qualcosa che useresti ne
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
+- ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz

+ 1 - 0
README_nl_NL.md

@@ -111,3 +111,4 @@ Als je denkt dat dit het juiste doel is en de app iets is dat je jezelf al heel
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
+- ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz

+ 1 - 0
README_tr_TR.md

@@ -108,3 +108,4 @@ Eğer bu size doğru bir amaç gibi geliyorsa ve uygulamanın uzun bir süre boy
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [Librepay](https://liberapay.com/alex.tran1502/)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - [buymeacoffee](https://www.buymeacoffee.com/altran1502)
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
 - Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
+- ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz

+ 150 - 118
cli/package-lock.json

@@ -775,9 +775,9 @@
       }
       }
     },
     },
     "node_modules/@eslint/eslintrc": {
     "node_modules/@eslint/eslintrc": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
-      "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz",
+      "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==",
       "dev": true,
       "dev": true,
       "dependencies": {
       "dependencies": {
         "ajv": "^6.12.4",
         "ajv": "^6.12.4",
@@ -798,21 +798,21 @@
       }
       }
     },
     },
     "node_modules/@eslint/js": {
     "node_modules/@eslint/js": {
-      "version": "8.50.0",
-      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz",
-      "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
+      "version": "8.53.0",
+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz",
+      "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==",
       "dev": true,
       "dev": true,
       "engines": {
       "engines": {
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
         "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
       }
       }
     },
     },
     "node_modules/@humanwhocodes/config-array": {
     "node_modules/@humanwhocodes/config-array": {
-      "version": "0.11.11",
-      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
-      "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
+      "version": "0.11.13",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
+      "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
       "dev": true,
       "dev": true,
       "dependencies": {
       "dependencies": {
-        "@humanwhocodes/object-schema": "^1.2.1",
+        "@humanwhocodes/object-schema": "^2.0.1",
         "debug": "^4.1.1",
         "debug": "^4.1.1",
         "minimatch": "^3.0.5"
         "minimatch": "^3.0.5"
       },
       },
@@ -834,9 +834,9 @@
       }
       }
     },
     },
     "node_modules/@humanwhocodes/object-schema": {
     "node_modules/@humanwhocodes/object-schema": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
-      "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
+      "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
       "dev": true
       "dev": true
     },
     },
     "node_modules/@isaacs/cliui": {
     "node_modules/@isaacs/cliui": {
@@ -1489,21 +1489,21 @@
       }
       }
     },
     },
     "node_modules/@types/byte-size": {
     "node_modules/@types/byte-size": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/@types/byte-size/-/byte-size-8.1.0.tgz",
-      "integrity": "sha512-LCIlZh8vyx+I2fgRycE1D34c33QDppYY6quBYYoaOpQ1nGhJ/avSP2VlrAefVotjJxgSk6WkKo0rTcCJwGG7vA==",
+      "version": "8.1.2",
+      "resolved": "https://registry.npmjs.org/@types/byte-size/-/byte-size-8.1.2.tgz",
+      "integrity": "sha512-jGyVzYu6avI8yuqQCNTZd65tzI8HZrLjKX9sdMqZrGWVlNChu0rf6p368oVEDCYJe5BMx2Ov04tD1wqtgTwGSA==",
       "dev": true
       "dev": true
     },
     },
     "node_modules/@types/chai": {
     "node_modules/@types/chai": {
-      "version": "4.3.6",
-      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz",
-      "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==",
+      "version": "4.3.10",
+      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.10.tgz",
+      "integrity": "sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==",
       "dev": true
       "dev": true
     },
     },
     "node_modules/@types/cli-progress": {
     "node_modules/@types/cli-progress": {
-      "version": "3.11.3",
-      "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.3.tgz",
-      "integrity": "sha512-/+C9xAdVtc+g5yHHkGBThgAA8rYpi5B+2ve3wLtybYj0JHEBs57ivR4x/zGfSsplRnV+psE91Nfin1soNKqz5Q==",
+      "version": "3.11.5",
+      "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.5.tgz",
+      "integrity": "sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g==",
       "dev": true,
       "dev": true,
       "dependencies": {
       "dependencies": {
         "@types/node": "*"
         "@types/node": "*"
@@ -1543,9 +1543,9 @@
       }
       }
     },
     },
     "node_modules/@types/jest": {
     "node_modules/@types/jest": {
-      "version": "29.5.5",
-      "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz",
-      "integrity": "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==",
+      "version": "29.5.8",
+      "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.8.tgz",
+      "integrity": "sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==",
       "dev": true,
       "dev": true,
       "dependencies": {
       "dependencies": {
         "expect": "^29.0.0",
         "expect": "^29.0.0",
@@ -1553,9 +1553,9 @@
       }
       }
     },
     },
     "node_modules/@types/js-yaml": {
     "node_modules/@types/js-yaml": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.6.tgz",
-      "integrity": "sha512-ACTuifTSIIbyksx2HTon3aFtCKWcID7/h3XEmRpDYdMCXxPbl+m9GteOJeaAkiAta/NJaSFuA7ahZ0NkwajDSw==",
+      "version": "4.0.9",
+      "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz",
+      "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==",
       "dev": true
       "dev": true
     },
     },
     "node_modules/@types/json-schema": {
     "node_modules/@types/json-schema": {
@@ -1565,25 +1565,28 @@
       "dev": true
       "dev": true
     },
     },
     "node_modules/@types/mime-types": {
     "node_modules/@types/mime-types": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.2.tgz",
-      "integrity": "sha512-q9QGHMGCiBJCHEvd4ZLdasdqXv570agPsUW0CeIm/B8DzhxsYMerD0l3IlI+EQ1A2RWHY2mmM9x1YIuuWxisCg==",
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.4.tgz",
+      "integrity": "sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==",
       "dev": true
       "dev": true
     },
     },
     "node_modules/@types/mock-fs": {
     "node_modules/@types/mock-fs": {
-      "version": "4.13.2",
-      "resolved": "https://registry.npmjs.org/@types/mock-fs/-/mock-fs-4.13.2.tgz",
-      "integrity": "sha512-mSIMAOjrNTVUFmZgJEigSIm+GlS4hbrk8U5+M8EB45uMrykKdN9TidjjSaOY1yFph2+TD7bsIfB4r+IrMYVyPQ==",
+      "version": "4.13.4",
+      "resolved": "https://registry.npmjs.org/@types/mock-fs/-/mock-fs-4.13.4.tgz",
+      "integrity": "sha512-mXmM0o6lULPI8z3XNnQCpL0BGxPwx1Ul1wXYEPBGl4efShyxW2Rln0JOPEWGyZaYZMM6OVXM/15zUuFMY52ljg==",
       "dev": true,
       "dev": true,
       "dependencies": {
       "dependencies": {
         "@types/node": "*"
         "@types/node": "*"
       }
       }
     },
     },
     "node_modules/@types/node": {
     "node_modules/@types/node": {
-      "version": "20.8.2",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.2.tgz",
-      "integrity": "sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==",
-      "dev": true
+      "version": "20.9.2",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz",
+      "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==",
+      "dev": true,
+      "dependencies": {
+        "undici-types": "~5.26.4"
+      }
     },
     },
     "node_modules/@types/normalize-package-data": {
     "node_modules/@types/normalize-package-data": {
       "version": "2.4.2",
       "version": "2.4.2",
@@ -1806,6 +1809,12 @@
         "url": "https://opencollective.com/typescript-eslint"
         "url": "https://opencollective.com/typescript-eslint"
       }
       }
     },
     },
+    "node_modules/@ungap/structured-clone": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+      "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+      "dev": true
+    },
     "node_modules/acorn": {
     "node_modules/acorn": {
       "version": "8.10.0",
       "version": "8.10.0",
       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
@@ -2402,9 +2411,9 @@
       }
       }
     },
     },
     "node_modules/commander": {
     "node_modules/commander": {
-      "version": "11.0.0",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
-      "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==",
+      "version": "11.1.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+      "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==",
       "engines": {
       "engines": {
         "node": ">=16"
         "node": ">=16"
       }
       }
@@ -2637,18 +2646,19 @@
       }
       }
     },
     },
     "node_modules/eslint": {
     "node_modules/eslint": {
-      "version": "8.50.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz",
-      "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
+      "version": "8.53.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz",
+      "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==",
       "dev": true,
       "dev": true,
       "dependencies": {
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.2.0",
         "@eslint-community/eslint-utils": "^4.2.0",
         "@eslint-community/regexpp": "^4.6.1",
         "@eslint-community/regexpp": "^4.6.1",
-        "@eslint/eslintrc": "^2.1.2",
-        "@eslint/js": "8.50.0",
-        "@humanwhocodes/config-array": "^0.11.11",
+        "@eslint/eslintrc": "^2.1.3",
+        "@eslint/js": "8.53.0",
+        "@humanwhocodes/config-array": "^0.11.13",
         "@humanwhocodes/module-importer": "^1.0.1",
         "@humanwhocodes/module-importer": "^1.0.1",
         "@nodelib/fs.walk": "^1.2.8",
         "@nodelib/fs.walk": "^1.2.8",
+        "@ungap/structured-clone": "^1.2.0",
         "ajv": "^6.12.4",
         "ajv": "^6.12.4",
         "chalk": "^4.0.0",
         "chalk": "^4.0.0",
         "cross-spawn": "^7.0.2",
         "cross-spawn": "^7.0.2",
@@ -2703,9 +2713,9 @@
       }
       }
     },
     },
     "node_modules/eslint-plugin-jest": {
     "node_modules/eslint-plugin-jest": {
-      "version": "27.4.2",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.4.2.tgz",
-      "integrity": "sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==",
+      "version": "27.6.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.6.0.tgz",
+      "integrity": "sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==",
       "dev": true,
       "dev": true,
       "dependencies": {
       "dependencies": {
         "@typescript-eslint/utils": "^5.10.0"
         "@typescript-eslint/utils": "^5.10.0"
@@ -3867,9 +3877,9 @@
       }
       }
     },
     },
     "node_modules/jest-extended": {
     "node_modules/jest-extended": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-4.0.1.tgz",
-      "integrity": "sha512-KM6dwuBUAgy6QONuR19CGubZB9Hkjqvl/d5Yc/FXsdB8+gsGxB2VQ+NEdOrr95J4GMPeLnDoPOKyi6+mKCCnZQ==",
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-4.0.2.tgz",
+      "integrity": "sha512-FH7aaPgtGYHc9mRjriS0ZEHYM5/W69tLrFTIdzm+yJgeoCmmrSB/luSfMSqWP9O29QWHPEmJ4qmU6EwsZideog==",
       "dev": true,
       "dev": true,
       "dependencies": {
       "dependencies": {
         "jest-diff": "^29.0.0",
         "jest-diff": "^29.0.0",
@@ -5612,9 +5622,9 @@
       "dev": true
       "dev": true
     },
     },
     "node_modules/systeminformation": {
     "node_modules/systeminformation": {
-      "version": "5.21.9",
-      "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.9.tgz",
-      "integrity": "sha512-7pI4mu9P/2MGDV0T49B52E7IULBGj+kRVk6JSYUj5qfAk7N7C7aNX15fXziqrbgZntc6/jjYzWeb/x41jhg/eA==",
+      "version": "5.21.17",
+      "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.17.tgz",
+      "integrity": "sha512-JZYRCbIjk3WuBV59A9/rTla2rROX+aAJ9uo2Z1dI+bjieORcukClN8rlM1zE9NYKpULSbaGc+KKct/870lO0DA==",
       "os": [
       "os": [
         "darwin",
         "darwin",
         "linux",
         "linux",
@@ -5862,6 +5872,12 @@
         "node": ">=4.2.0"
         "node": ">=4.2.0"
       }
       }
     },
     },
+    "node_modules/undici-types": {
+      "version": "5.26.5",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+      "dev": true
+    },
     "node_modules/update-browserslist-db": {
     "node_modules/update-browserslist-db": {
       "version": "1.0.13",
       "version": "1.0.13",
       "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
       "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
@@ -6091,9 +6107,9 @@
       "dev": true
       "dev": true
     },
     },
     "node_modules/yaml": {
     "node_modules/yaml": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz",
-      "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==",
+      "version": "2.3.4",
+      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+      "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
       "engines": {
       "engines": {
         "node": ">= 14"
         "node": ">= 14"
       }
       }
@@ -6702,9 +6718,9 @@
       "dev": true
       "dev": true
     },
     },
     "@eslint/eslintrc": {
     "@eslint/eslintrc": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz",
-      "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz",
+      "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "ajv": "^6.12.4",
         "ajv": "^6.12.4",
@@ -6719,18 +6735,18 @@
       }
       }
     },
     },
     "@eslint/js": {
     "@eslint/js": {
-      "version": "8.50.0",
-      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz",
-      "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==",
+      "version": "8.53.0",
+      "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz",
+      "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==",
       "dev": true
       "dev": true
     },
     },
     "@humanwhocodes/config-array": {
     "@humanwhocodes/config-array": {
-      "version": "0.11.11",
-      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz",
-      "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==",
+      "version": "0.11.13",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
+      "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
-        "@humanwhocodes/object-schema": "^1.2.1",
+        "@humanwhocodes/object-schema": "^2.0.1",
         "debug": "^4.1.1",
         "debug": "^4.1.1",
         "minimatch": "^3.0.5"
         "minimatch": "^3.0.5"
       }
       }
@@ -6742,9 +6758,9 @@
       "dev": true
       "dev": true
     },
     },
     "@humanwhocodes/object-schema": {
     "@humanwhocodes/object-schema": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
-      "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+      "version": "2.0.1",
+      "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
+      "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
       "dev": true
       "dev": true
     },
     },
     "@isaacs/cliui": {
     "@isaacs/cliui": {
@@ -7270,21 +7286,21 @@
       }
       }
     },
     },
     "@types/byte-size": {
     "@types/byte-size": {
-      "version": "8.1.0",
-      "resolved": "https://registry.npmjs.org/@types/byte-size/-/byte-size-8.1.0.tgz",
-      "integrity": "sha512-LCIlZh8vyx+I2fgRycE1D34c33QDppYY6quBYYoaOpQ1nGhJ/avSP2VlrAefVotjJxgSk6WkKo0rTcCJwGG7vA==",
+      "version": "8.1.2",
+      "resolved": "https://registry.npmjs.org/@types/byte-size/-/byte-size-8.1.2.tgz",
+      "integrity": "sha512-jGyVzYu6avI8yuqQCNTZd65tzI8HZrLjKX9sdMqZrGWVlNChu0rf6p368oVEDCYJe5BMx2Ov04tD1wqtgTwGSA==",
       "dev": true
       "dev": true
     },
     },
     "@types/chai": {
     "@types/chai": {
-      "version": "4.3.6",
-      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.6.tgz",
-      "integrity": "sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==",
+      "version": "4.3.10",
+      "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.10.tgz",
+      "integrity": "sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg==",
       "dev": true
       "dev": true
     },
     },
     "@types/cli-progress": {
     "@types/cli-progress": {
-      "version": "3.11.3",
-      "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.3.tgz",
-      "integrity": "sha512-/+C9xAdVtc+g5yHHkGBThgAA8rYpi5B+2ve3wLtybYj0JHEBs57ivR4x/zGfSsplRnV+psE91Nfin1soNKqz5Q==",
+      "version": "3.11.5",
+      "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.5.tgz",
+      "integrity": "sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@types/node": "*"
         "@types/node": "*"
@@ -7324,9 +7340,9 @@
       }
       }
     },
     },
     "@types/jest": {
     "@types/jest": {
-      "version": "29.5.5",
-      "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz",
-      "integrity": "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==",
+      "version": "29.5.8",
+      "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.8.tgz",
+      "integrity": "sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "expect": "^29.0.0",
         "expect": "^29.0.0",
@@ -7334,9 +7350,9 @@
       }
       }
     },
     },
     "@types/js-yaml": {
     "@types/js-yaml": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.6.tgz",
-      "integrity": "sha512-ACTuifTSIIbyksx2HTon3aFtCKWcID7/h3XEmRpDYdMCXxPbl+m9GteOJeaAkiAta/NJaSFuA7ahZ0NkwajDSw==",
+      "version": "4.0.9",
+      "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz",
+      "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==",
       "dev": true
       "dev": true
     },
     },
     "@types/json-schema": {
     "@types/json-schema": {
@@ -7346,25 +7362,28 @@
       "dev": true
       "dev": true
     },
     },
     "@types/mime-types": {
     "@types/mime-types": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.2.tgz",
-      "integrity": "sha512-q9QGHMGCiBJCHEvd4ZLdasdqXv570agPsUW0CeIm/B8DzhxsYMerD0l3IlI+EQ1A2RWHY2mmM9x1YIuuWxisCg==",
+      "version": "2.1.4",
+      "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.4.tgz",
+      "integrity": "sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==",
       "dev": true
       "dev": true
     },
     },
     "@types/mock-fs": {
     "@types/mock-fs": {
-      "version": "4.13.2",
-      "resolved": "https://registry.npmjs.org/@types/mock-fs/-/mock-fs-4.13.2.tgz",
-      "integrity": "sha512-mSIMAOjrNTVUFmZgJEigSIm+GlS4hbrk8U5+M8EB45uMrykKdN9TidjjSaOY1yFph2+TD7bsIfB4r+IrMYVyPQ==",
+      "version": "4.13.4",
+      "resolved": "https://registry.npmjs.org/@types/mock-fs/-/mock-fs-4.13.4.tgz",
+      "integrity": "sha512-mXmM0o6lULPI8z3XNnQCpL0BGxPwx1Ul1wXYEPBGl4efShyxW2Rln0JOPEWGyZaYZMM6OVXM/15zUuFMY52ljg==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@types/node": "*"
         "@types/node": "*"
       }
       }
     },
     },
     "@types/node": {
     "@types/node": {
-      "version": "20.8.2",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.2.tgz",
-      "integrity": "sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==",
-      "dev": true
+      "version": "20.9.2",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.2.tgz",
+      "integrity": "sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==",
+      "dev": true,
+      "requires": {
+        "undici-types": "~5.26.4"
+      }
     },
     },
     "@types/normalize-package-data": {
     "@types/normalize-package-data": {
       "version": "2.4.2",
       "version": "2.4.2",
@@ -7498,6 +7517,12 @@
         "eslint-visitor-keys": "^3.3.0"
         "eslint-visitor-keys": "^3.3.0"
       }
       }
     },
     },
+    "@ungap/structured-clone": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+      "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+      "dev": true
+    },
     "acorn": {
     "acorn": {
       "version": "8.10.0",
       "version": "8.10.0",
       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
@@ -7923,9 +7948,9 @@
       }
       }
     },
     },
     "commander": {
     "commander": {
-      "version": "11.0.0",
-      "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz",
-      "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ=="
+      "version": "11.1.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz",
+      "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="
     },
     },
     "concat-map": {
     "concat-map": {
       "version": "0.0.1",
       "version": "0.0.1",
@@ -8092,18 +8117,19 @@
       "dev": true
       "dev": true
     },
     },
     "eslint": {
     "eslint": {
-      "version": "8.50.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz",
-      "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==",
+      "version": "8.53.0",
+      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz",
+      "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@eslint-community/eslint-utils": "^4.2.0",
         "@eslint-community/eslint-utils": "^4.2.0",
         "@eslint-community/regexpp": "^4.6.1",
         "@eslint-community/regexpp": "^4.6.1",
-        "@eslint/eslintrc": "^2.1.2",
-        "@eslint/js": "8.50.0",
-        "@humanwhocodes/config-array": "^0.11.11",
+        "@eslint/eslintrc": "^2.1.3",
+        "@eslint/js": "8.53.0",
+        "@humanwhocodes/config-array": "^0.11.13",
         "@humanwhocodes/module-importer": "^1.0.1",
         "@humanwhocodes/module-importer": "^1.0.1",
         "@nodelib/fs.walk": "^1.2.8",
         "@nodelib/fs.walk": "^1.2.8",
+        "@ungap/structured-clone": "^1.2.0",
         "ajv": "^6.12.4",
         "ajv": "^6.12.4",
         "chalk": "^4.0.0",
         "chalk": "^4.0.0",
         "cross-spawn": "^7.0.2",
         "cross-spawn": "^7.0.2",
@@ -8162,9 +8188,9 @@
       "requires": {}
       "requires": {}
     },
     },
     "eslint-plugin-jest": {
     "eslint-plugin-jest": {
-      "version": "27.4.2",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.4.2.tgz",
-      "integrity": "sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==",
+      "version": "27.6.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.6.0.tgz",
+      "integrity": "sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "@typescript-eslint/utils": "^5.10.0"
         "@typescript-eslint/utils": "^5.10.0"
@@ -8969,9 +8995,9 @@
       }
       }
     },
     },
     "jest-extended": {
     "jest-extended": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-4.0.1.tgz",
-      "integrity": "sha512-KM6dwuBUAgy6QONuR19CGubZB9Hkjqvl/d5Yc/FXsdB8+gsGxB2VQ+NEdOrr95J4GMPeLnDoPOKyi6+mKCCnZQ==",
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/jest-extended/-/jest-extended-4.0.2.tgz",
+      "integrity": "sha512-FH7aaPgtGYHc9mRjriS0ZEHYM5/W69tLrFTIdzm+yJgeoCmmrSB/luSfMSqWP9O29QWHPEmJ4qmU6EwsZideog==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "jest-diff": "^29.0.0",
         "jest-diff": "^29.0.0",
@@ -10274,9 +10300,9 @@
       "dev": true
       "dev": true
     },
     },
     "systeminformation": {
     "systeminformation": {
-      "version": "5.21.9",
-      "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.9.tgz",
-      "integrity": "sha512-7pI4mu9P/2MGDV0T49B52E7IULBGj+kRVk6JSYUj5qfAk7N7C7aNX15fXziqrbgZntc6/jjYzWeb/x41jhg/eA=="
+      "version": "5.21.17",
+      "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.17.tgz",
+      "integrity": "sha512-JZYRCbIjk3WuBV59A9/rTla2rROX+aAJ9uo2Z1dI+bjieORcukClN8rlM1zE9NYKpULSbaGc+KKct/870lO0DA=="
     },
     },
     "test-exclude": {
     "test-exclude": {
       "version": "6.0.0",
       "version": "6.0.0",
@@ -10419,6 +10445,12 @@
       "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
       "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
       "dev": true
       "dev": true
     },
     },
+    "undici-types": {
+      "version": "5.26.5",
+      "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+      "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
+      "dev": true
+    },
     "update-browserslist-db": {
     "update-browserslist-db": {
       "version": "1.0.13",
       "version": "1.0.13",
       "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
       "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
@@ -10582,9 +10614,9 @@
       "dev": true
       "dev": true
     },
     },
     "yaml": {
     "yaml": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz",
-      "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg=="
+      "version": "2.3.4",
+      "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz",
+      "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA=="
     },
     },
     "yargs": {
     "yargs": {
       "version": "17.7.2",
       "version": "17.7.2",

Файловите разлики са ограничени, защото са твърде много
+ 469 - 236
cli/src/api/open-api/api.ts


+ 1 - 1
cli/src/api/open-api/base.ts

@@ -4,7 +4,7 @@
  * Immich
  * Immich
  * Immich API
  * Immich API
  *
  *
- * The version of the OpenAPI document: 1.85.0
+ * The version of the OpenAPI document: 1.87.0
  * 
  * 
  *
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

+ 1 - 1
cli/src/api/open-api/common.ts

@@ -4,7 +4,7 @@
  * Immich
  * Immich
  * Immich API
  * Immich API
  *
  *
- * The version of the OpenAPI document: 1.85.0
+ * The version of the OpenAPI document: 1.87.0
  * 
  * 
  *
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

+ 1 - 1
cli/src/api/open-api/configuration.ts

@@ -4,7 +4,7 @@
  * Immich
  * Immich
  * Immich API
  * Immich API
  *
  *
- * The version of the OpenAPI document: 1.85.0
+ * The version of the OpenAPI document: 1.87.0
  * 
  * 
  *
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

+ 1 - 1
cli/src/api/open-api/index.ts

@@ -4,7 +4,7 @@
  * Immich
  * Immich
  * Immich API
  * Immich API
  *
  *
- * The version of the OpenAPI document: 1.85.0
+ * The version of the OpenAPI document: 1.87.0
  * 
  * 
  *
  *
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

+ 5 - 0
docker/README.md

@@ -0,0 +1,5 @@
+> [!CAUTION]
+> Make sure to use the docker-compose.yml of the current release:
+> https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
+> 
+> The compose file on main may not be compatible with the latest release.

+ 26 - 58
docker/docker-compose.dev.yml

@@ -6,31 +6,34 @@ version: "3.8"
 
 
 name: immich-dev
 name: immich-dev
 
 
+x-server-build: &server-common
+  image: immich-server-dev:latest
+  build:
+    context: ../
+    dockerfile: server/Dockerfile
+    target: dev
+  volumes:
+    - ../server:/usr/src/app
+    - ${UPLOAD_LOCATION}/photos:/usr/src/app/upload
+    - /usr/src/app/node_modules
+    - /etc/localtime:/etc/localtime:ro
+  env_file:
+    - .env
+  environment:
+    - NODE_ENV=development
+  ulimits:
+    nofile:
+      soft: 1048576
+      hard: 1048576
+
 services:
 services:
   immich-server:
   immich-server:
     container_name: immich_server
     container_name: immich_server
-    image: immich-server-dev:latest
-    build:
-      context: ../server
-      dockerfile: Dockerfile
-      target: builder
     command: npm run start:debug immich
     command: npm run start:debug immich
-    volumes:
-      - ../server:/usr/src/app
-      - ${UPLOAD_LOCATION}/photos:/usr/src/app/upload
-      - /usr/src/app/node_modules
-      - /etc/localtime:/etc/localtime:ro
+    <<: *server-common
     ports:
     ports:
       - 3001:3001
       - 3001:3001
       - 9230:9230
       - 9230:9230
-    env_file:
-      - .env
-    environment:
-      - NODE_ENV=development
-    ulimits:
-      nofile:
-        soft: 1048576
-        hard: 1048576
     depends_on:
     depends_on:
       - redis
       - redis
       - database
       - database
@@ -38,30 +41,13 @@ services:
 
 
   immich-microservices:
   immich-microservices:
     container_name: immich_microservices
     container_name: immich_microservices
-    image: immich-microservices:latest
+    command: npm run start:debug microservices
+    <<: *server-common
     # extends:
     # extends:
     #   file: hwaccel.yml
     #   file: hwaccel.yml
     #   service: hwaccel
     #   service: hwaccel
-    build:
-      context: ../server
-      dockerfile: Dockerfile
-      target: builder
-    command: npm run start:debug microservices
-    volumes:
-      - ../server:/usr/src/app
-      - ${UPLOAD_LOCATION}/photos:/usr/src/app/upload
-      - /usr/src/app/node_modules
-      - /etc/localtime:/etc/localtime:ro
-    env_file:
-      - .env
     ports:
     ports:
       - 9231:9230
       - 9231:9230
-    environment:
-      - NODE_ENV=development
-    ulimits:
-      nofile:
-        soft: 1048576
-        hard: 1048576
     depends_on:
     depends_on:
       - database
       - database
       - immich-server
       - immich-server
@@ -73,12 +59,11 @@ services:
     build:
     build:
       context: ../web
       context: ../web
       dockerfile: Dockerfile
       dockerfile: Dockerfile
-      target: dev
     command: npm run dev --host
     command: npm run dev --host
     env_file:
     env_file:
       - .env
       - .env
     ports:
     ports:
-      - 3000:3000
+      - 2283:3000
       - 24678:24678
       - 24678:24678
     volumes:
     volumes:
       - ../web:/usr/src/app
       - ../web:/usr/src/app
@@ -123,11 +108,11 @@ services:
 
 
   redis:
   redis:
     container_name: immich_redis
     container_name: immich_redis
-    image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
+    image: redis:6.2-alpine@sha256:80cc8518800438c684a53ed829c621c94afd1087aaeb59b0d4343ed3e7bcf6c5
 
 
   database:
   database:
     container_name: immich_postgres
     container_name: immich_postgres
-    image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
+    image: postgres:14-alpine@sha256:50d9be76e9a90da4c781554955e0ffc79d9d5c4226838e64b36aacc97cbc35ad
     env_file:
     env_file:
       - .env
       - .env
     environment:
     environment:
@@ -139,22 +124,5 @@ services:
     ports:
     ports:
       - 5432:5432
       - 5432:5432
 
 
-  immich-proxy:
-    container_name: immich_proxy
-    image: immich-proxy-dev:latest
-    environment:
-      # Make sure these values get passed through from the env file
-      - IMMICH_SERVER_URL
-      - IMMICH_WEB_URL
-    build:
-      context: ../nginx
-      dockerfile: Dockerfile
-    ports:
-      - 2283:8080
-    depends_on:
-      - immich-server
-      - immich-web
-    restart: unless-stopped
-
 volumes:
 volumes:
   model-cache:
   model-cache:

+ 20 - 52
docker/docker-compose.prod.yml

@@ -2,19 +2,25 @@ version: "3.8"
 
 
 name: immich-prod
 name: immich-prod
 
 
+x-server-build: &server-common
+  image: immich-server:latest
+  build:
+    context: ../
+    dockerfile: server/Dockerfile
+  volumes:
+    - ${UPLOAD_LOCATION}/photos:/usr/src/app/upload
+    - /etc/localtime:/etc/localtime:ro
+  env_file:
+    - .env
+  restart: always
+
 services:
 services:
   immich-server:
   immich-server:
     container_name: immich_server
     container_name: immich_server
-    image: immich-server:latest
-    build:
-      context: ../server
-      dockerfile: Dockerfile
     command: [ "./start-server.sh" ]
     command: [ "./start-server.sh" ]
-    volumes:
-      - ${UPLOAD_LOCATION}/photos:/usr/src/app/upload
-      - /etc/localtime:/etc/localtime:ro
-    env_file:
-      - .env
+    <<: *server-common
+    ports:
+      - 2283:3001
     depends_on:
     depends_on:
       - redis
       - redis
       - database
       - database
@@ -22,35 +28,15 @@ services:
 
 
   immich-microservices:
   immich-microservices:
     container_name: immich_microservices
     container_name: immich_microservices
-    image: immich-microservices:latest
+    command: [ "./start-microservices.sh" ]
+    <<: *server-common
     # extends:
     # extends:
     #   file: hwaccel.yml
     #   file: hwaccel.yml
     #   service: hwaccel
     #   service: hwaccel
-    build:
-      context: ../server
-      dockerfile: Dockerfile
-    command: [ "./start-microservices.sh" ]
-    volumes:
-      - ${UPLOAD_LOCATION}/photos:/usr/src/app/upload
-      - /etc/localtime:/etc/localtime:ro
-    env_file:
-      - .env
     depends_on:
     depends_on:
+      - redis
       - database
       - database
-      - immich-server
       - typesense
       - typesense
-    restart: always
-
-  immich-web:
-    container_name: immich_web
-    image: immich-web:latest
-    build:
-      context: ../web
-      dockerfile: Dockerfile
-    env_file:
-      - .env
-    restart: always
-    depends_on:
       - immich-server
       - immich-server
 
 
   immich-machine-learning:
   immich-machine-learning:
@@ -79,12 +65,12 @@ services:
 
 
   redis:
   redis:
     container_name: immich_redis
     container_name: immich_redis
-    image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
+    image: redis:6.2-alpine@sha256:80cc8518800438c684a53ed829c621c94afd1087aaeb59b0d4343ed3e7bcf6c5
     restart: always
     restart: always
 
 
   database:
   database:
     container_name: immich_postgres
     container_name: immich_postgres
-    image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
+    image: postgres:14-alpine@sha256:50d9be76e9a90da4c781554955e0ffc79d9d5c4226838e64b36aacc97cbc35ad
     env_file:
     env_file:
       - .env
       - .env
     environment:
     environment:
@@ -95,23 +81,5 @@ services:
       - ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data
       - ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data
     restart: always
     restart: always
 
 
-  immich-proxy:
-    container_name: immich_proxy
-    image: immich-proxy:latest
-    environment:
-      # Make sure these values get passed through from the env file
-      - IMMICH_SERVER_URL
-      - IMMICH_WEB_URL
-    build:
-      context: ../nginx
-      dockerfile: Dockerfile
-    ports:
-      - 2283:8080
-    logging:
-      driver: none
-    depends_on:
-      - immich-server
-    restart: always
-
 volumes:
 volumes:
   model-cache:
   model-cache:

+ 4 - 4
docker/docker-compose.test.yml

@@ -6,9 +6,9 @@ services:
   immich-server:
   immich-server:
     image: immich-server-dev:latest
     image: immich-server-dev:latest
     build:
     build:
-      context: ../server
-      dockerfile: Dockerfile
-      target: builder
+      context: ../
+      dockerfile: server/Dockerfile
+      target: dev
     command: npm run test:e2e
     command: npm run test:e2e
     volumes:
     volumes:
       - ../server:/usr/src/app
       - ../server:/usr/src/app
@@ -23,7 +23,7 @@ services:
       - database
       - database
 
 
   database:
   database:
-    image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
+    image: postgres:14-alpine@sha256:50d9be76e9a90da4c781554955e0ffc79d9d5c4226838e64b36aacc97cbc35ad
     command: -c fsync=off
     command: -c fsync=off
     environment:
     environment:
       POSTGRES_PASSWORD: postgres
       POSTGRES_PASSWORD: postgres

+ 12 - 19
docker/docker-compose.yml

@@ -1,5 +1,13 @@
 version: "3.8"
 version: "3.8"
 
 
+#
+# WARNING: Make sure to use the docker-compose.yml of the current release:
+#
+# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
+#
+# The compose file on main may not be compatible with the latest release.
+#
+
 name: immich
 name: immich
 
 
 services:
 services:
@@ -12,6 +20,8 @@ services:
       - /etc/localtime:/etc/localtime:ro
       - /etc/localtime:/etc/localtime:ro
     env_file:
     env_file:
       - .env
       - .env
+    ports:
+      - 2283:3001
     depends_on:
     depends_on:
       - redis
       - redis
       - database
       - database
@@ -45,13 +55,6 @@ services:
       - .env
       - .env
     restart: always
     restart: always
 
 
-  immich-web:
-    container_name: immich_web
-    image: ghcr.io/immich-app/immich-web:${IMMICH_VERSION:-release}
-    env_file:
-      - .env
-    restart: always
-
   typesense:
   typesense:
     container_name: immich_typesense
     container_name: immich_typesense
     image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
     image: typesense/typesense:0.24.1@sha256:9bcff2b829f12074426ca044b56160ca9d777a0c488303469143dd9f8259d4dd
@@ -66,12 +69,12 @@ services:
 
 
   redis:
   redis:
     container_name: immich_redis
     container_name: immich_redis
-    image: redis:6.2-alpine@sha256:70a7a5b641117670beae0d80658430853896b5ef269ccf00d1827427e3263fa3
+    image: redis:6.2-alpine@sha256:80cc8518800438c684a53ed829c621c94afd1087aaeb59b0d4343ed3e7bcf6c5
     restart: always
     restart: always
 
 
   database:
   database:
     container_name: immich_postgres
     container_name: immich_postgres
-    image: postgres:14-alpine@sha256:28407a9961e76f2d285dc6991e8e48893503cc3836a4755bbc2d40bcc272a441
+    image: postgres:14-alpine@sha256:50d9be76e9a90da4c781554955e0ffc79d9d5c4226838e64b36aacc97cbc35ad
     env_file:
     env_file:
       - .env
       - .env
     environment:
     environment:
@@ -82,16 +85,6 @@ services:
       - pgdata:/var/lib/postgresql/data
       - pgdata:/var/lib/postgresql/data
     restart: always
     restart: always
 
 
-  immich-proxy:
-    container_name: immich_proxy
-    image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release}
-    ports:
-      - 2283:8080
-    depends_on:
-      - immich-server
-      - immich-web
-    restart: always
-
 volumes:
 volumes:
   pgdata:
   pgdata:
   model-cache:
   model-cache:

+ 1 - 20
docs/docs/administration/reverse-proxy.md

@@ -1,21 +1,6 @@
 # Reverse Proxy
 # Reverse Proxy
 
 
-When deploying Immich it is important to understand that a reverse proxy is required in front of the server and web container. The reverse proxy acts as an intermediary between the user and container, forwarding requests to the correct container based on the URL path.
-
-## Default Reverse Proxy
-
-Immich provides a default nginx reverse proxy preconfigured to perform the correct routing and set the necessary headers for the server and web container to use. These headers are crucial to redirect to the correct URL and determine the client's IP address.
-
-## Using a Different Reverse Proxy
-
-While the reverse proxy provided by Immich works well for basic deployments, some users may want to use a different reverse proxy. Fortunately, Immich is flexible enough to accommodate different reverse proxies. Users can either:
-
-1. Add another reverse proxy on top of Immich's reverse proxy
-2. Completely replace the default reverse proxy
-
-## Adding a Custom Reverse Proxy
-
-Users can deploy a custom reverse proxy that forwards requests to Immich's reverse proxy. This way, the new reverse proxy can handle TLS termination, load balancing, or other advanced features, while still delegating routing decisions to Immich's reverse proxy. All reverse proxies between Immich and the user must forward all headers and set the `Host`, `X-Forwarded-Host`, `X-Forwarded-Proto` and `X-Forwarded-For` headers to their appropriate values. Additionally, your reverse proxy should allow for big enough uploads. By following these practices, you ensure that all custom reverse proxies are fully compatible with Immich.
+Users can deploy a custom reverse proxy that forwards requests to Immich. This way, the reverse proxy can handle TLS termination, load balancing, or other advanced features. All reverse proxies between Immich and the user must forward all headers and set the `Host`, `X-Forwarded-Host`, `X-Forwarded-Proto` and `X-Forwarded-For` headers to their appropriate values. Additionally, your reverse proxy should allow for big enough uploads. By following these practices, you ensure that all custom reverse proxies are fully compatible with Immich.
 
 
 ### Nginx example config
 ### Nginx example config
 
 
@@ -43,7 +28,3 @@ server {
     }
     }
 }
 }
 ```
 ```
-
-## Replacing the Default Reverse Proxy
-
-Replacing Immich's default reverse proxy is an advanced deployment and support may be limited. When replacing Immich's default proxy it is important to ensure that requests to `/api/*` are routed to the server container and all other requests to the web container. Additionally, the previously mentioned headers should be configured accordingly. You may find our [nginx configuration file](https://github.com/immich-app/immich/blob/main/nginx/templates/default.conf.template) a helpful reference.

+ 1 - 2
docs/docs/administration/server-commands.md

@@ -51,8 +51,7 @@ immich-admin list-users
   {
   {
     id: 'e65e6f88-2a30-4dbe-8dd9-1885f4889b53',
     id: 'e65e6f88-2a30-4dbe-8dd9-1885f4889b53',
     email: 'immich@example.com.com',
     email: 'immich@example.com.com',
-    firstName: 'Immich',
-    lastName: 'Admin',
+    name: 'Immich Admin',
     storageLabel: 'admin',
     storageLabel: 'admin',
     externalPath: null,
     externalPath: null,
     profileImagePath: 'upload/profile/e65e6f88-2a30-4dbe-8dd9-1885f4889b53/e65e6f88-2a30-4dbe-8dd9-1885f4889b53.jpg',
     profileImagePath: 'upload/profile/e65e6f88-2a30-4dbe-8dd9-1885f4889b53/e65e6f88-2a30-4dbe-8dd9-1885f4889b53.jpg',

+ 1 - 2
docs/docs/developer/directories.md

@@ -17,6 +17,5 @@ Our [GitHub Repository](https://github.com/immich-app/immich) is a [monorepo](ht
 | `machine-learning/` | Source code for the `immich-machine-learning` docker image           |
 | `machine-learning/` | Source code for the `immich-machine-learning` docker image           |
 | `misc/release/`     | Scripts for version pumps and draft releases                         |
 | `misc/release/`     | Scripts for version pumps and draft releases                         |
 | `mobile/`           | Source code for the mobile app, both Android and iOS                 |
 | `mobile/`           | Source code for the mobile app, both Android and iOS                 |
-| `nginx/`            | Source code for the `immich-proxy` docker image                      |
 | `server/`           | Source code for the `immich-server` docker image                     |
 | `server/`           | Source code for the `immich-server` docker image                     |
-| `web/`              | Source code for the `immich-web` docker image                        |
+| `web/`              | Source code for the `web`                                            |

+ 8 - 2
docs/docs/developer/setup.md

@@ -52,7 +52,7 @@ If you only want to do web development connected to an existing, remote backend,
 3. Start the web development server
 3. Start the web development server
 
 
 ```
 ```
-PUBLIC_IMMICH_SERVER_URL=https://demo.immich.app/api npm run dev
+IMMICH_SERVER_URL=https://demo.immich.app/api npm run dev
 ```
 ```
 
 
 ## IDE setup
 ## IDE setup
@@ -61,9 +61,15 @@ PUBLIC_IMMICH_SERVER_URL=https://demo.immich.app/api npm run dev
 
 
 Setting these in the IDE give a better developer experience, auto-formatting code on save, and providing instant feedback on lint issues.
 Setting these in the IDE give a better developer experience, auto-formatting code on save, and providing instant feedback on lint issues.
 
 
+### Dart Code Metris
+
+The mobile app uses DCM (Dart Code Metrics) for linting and metrics calculation. Please refer to the [Getting Started](https://dcm.dev/docs/getting-started/#installation) page for more information on setting up DCM
+
+Note: Activating the license is not required.
+
 ### VSCode
 ### VSCode
 
 
-Install `Flutter`, `Prettier`, `ESLint` and `Svelte` extensions.
+Install `Flutter`, `DCM`, `Prettier`, `ESLint` and `Svelte` extensions.
 
 
 in User `settings.json` (`cmd + shift + p` and search for `Open User Settings JSON`) add the following:
 in User `settings.json` (`cmd + shift + p` and search for `Open User Settings JSON`) add the following:
 
 

+ 0 - 4
docs/docs/developer/troubleshooting.md

@@ -13,7 +13,3 @@ Running Immich on Windows can be frustrating and there are lots of ways it can g
 ### NTFS Mounted Volumes
 ### NTFS Mounted Volumes
 
 
 The docker-compose.dev.yml and docker-compose.prod.yml use volume mounts for the postgres database. On start-up, postgres will try to `chown` the data directory, but fail. See [this post](https://forums.docker.com/t/data-directory-var-lib-postgresql-data-pgdata-has-wrong-ownership/17963/24) for more information about this issue and possible solutions.
 The docker-compose.dev.yml and docker-compose.prod.yml use volume mounts for the postgres database. On start-up, postgres will try to `chown` the data directory, but fail. See [this post](https://forums.docker.com/t/data-directory-var-lib-postgresql-data-pgdata-has-wrong-ownership/17963/24) for more information about this issue and possible solutions.
-
-### `Cannot read properties of null (reading 'split')`
-
-This error occurs when trying to access the app via port `3000` instead of `2283`. During development `immich-proxy` runs on port 2283, while `immich-web` runs on `3000`.

+ 1 - 1
docs/docs/features/libraries.md

@@ -75,7 +75,7 @@ Some basic examples:
 - `*.tif` will exclude all files with the extension `.tif`
 - `*.tif` will exclude all files with the extension `.tif`
 - `hidden.jpg` will exclude all files named `hidden.jpg`
 - `hidden.jpg` will exclude all files named `hidden.jpg`
 - `**/Raw/**` will exclude all files in any directory named `Raw`
 - `**/Raw/**` will exclude all files in any directory named `Raw`
-- `*.(tif,jpg)` will exclude all files with the extension `.tif` or `.jpg`
+- `*.{tif,jpg}` will exclude all files with the extension `.tif` or `.jpg`
 
 
 ### Nightly job
 ### Nightly job
 
 

+ 0 - 22
docs/docs/install/docker-compose.md

@@ -122,28 +122,6 @@ TYPESENSE_API_KEY=some-random-text
 
 
 PUBLIC_LOGIN_PAGE_MESSAGE="My Family Photos and Videos Backup Server"
 PUBLIC_LOGIN_PAGE_MESSAGE="My Family Photos and Videos Backup Server"
 
 
-####################################################################################
-# Alternative Service Addresses - Optional
-#
-# This is an advanced feature for users who may be running their immich services on different hosts.
-# It will not change which address or port that services bind to within their containers, but it will change where other services look for their peers.
-# Note: immich-microservices is bound to 3002, but no references are made
-####################################################################################
-
-IMMICH_WEB_URL=http://immich-web:3000
-IMMICH_SERVER_URL=http://immich-server:3001
-
-####################################################################################
-# Alternative API's External Address - Optional
-#
-# This is an advanced feature used to control the public server endpoint returned to clients during Well-known discovery.
-# You should only use this if you want mobile apps to access the immich API over a custom URL. Do not include trailing slash.
-# NOTE: At this time, the web app will not be affected by this setting and will continue to use the relative path: /api
-# Examples: http://localhost:3001, http://immich-api.example.com, etc
-####################################################################################
-
-#IMMICH_API_URL_EXTERNAL=http://localhost:3001
-
 ###################################################################################
 ###################################################################################
 # Immich Version - Optional
 # Immich Version - Optional
 #
 #

+ 6 - 22
docs/docs/install/environment-variables.md

@@ -63,21 +63,6 @@ These environment variables are used by the `docker-compose.yml` file and do **N
 | `MACHINE_LEARNING_HOST` | Machine Learning Host | `0.0.0.0` | machine learning |
 | `MACHINE_LEARNING_HOST` | Machine Learning Host | `0.0.0.0` | machine learning |
 | `MACHINE_LEARNING_PORT` | Machine Learning Port |  `3003`   | machine learning |
 | `MACHINE_LEARNING_PORT` | Machine Learning Port |  `3003`   | machine learning |
 
 
-## URLs
-
-| Variable                   | Description             |           Default           | Services   |
-| :------------------------- | :---------------------- | :-------------------------: | :--------- |
-| `IMMICH_WEB_URL`           | Immich Web URL          |  `http://immich-web:3000`   | proxy      |
-| `IMMICH_SERVER_URL`        | Immich Server URL       | `http://immich-server:3001` | web, proxy |
-| `PUBLIC_IMMICH_SERVER_URL` | Public Immich URL       | `http://immich-server:3001` | web        |
-| `IMMICH_API_URL_EXTERNAL`  | Immich API URL External |           `/api`            | web        |
-
-:::info
-
-The above paths are modifying the internal paths of the containers.
-
-:::
-
 ## Database
 ## Database
 
 
 | Variable      | Description       |   Default   | Services              |
 | Variable      | Description       |   Default   | Services              |
@@ -188,19 +173,18 @@ Typesense URL example JSON before encoding:
 
 
 | Variable                                         | Description                                                       |       Default       | Services         |
 | Variable                                         | Description                                                       |       Default       | Services         |
 | :----------------------------------------------- | :---------------------------------------------------------------- | :-----------------: | :--------------- |
 | :----------------------------------------------- | :---------------------------------------------------------------- | :-----------------: | :--------------- |
-| `MACHINE_LEARNING_MODEL_TTL`<sup>\*1</sup>       | Inactivity time (s) before a model is unloaded (disabled if <= 0) |         `0`         | machine learning |
+| `MACHINE_LEARNING_MODEL_TTL`                     | Inactivity time (s) before a model is unloaded (disabled if <= 0) |        `300`        | machine learning |
+| `MACHINE_LEARNING_MODEL_TTL_POLL_S`              | Interval (s) between checks for the model TTL (disabled if <= 0)  |        `10`         | machine learning |
 | `MACHINE_LEARNING_CACHE_FOLDER`                  | Directory where models are downloaded                             |      `/cache`       | machine learning |
 | `MACHINE_LEARNING_CACHE_FOLDER`                  | Directory where models are downloaded                             |      `/cache`       | machine learning |
-| `MACHINE_LEARNING_REQUEST_THREADS`<sup>\*2</sup> | Thread count of the request thread pool (disabled if <= 0)        | number of CPU cores | machine learning |
+| `MACHINE_LEARNING_REQUEST_THREADS`<sup>\*1</sup> | Thread count of the request thread pool (disabled if <= 0)        | number of CPU cores | machine learning |
 | `MACHINE_LEARNING_MODEL_INTER_OP_THREADS`        | Number of parallel model operations                               |         `1`         | machine learning |
 | `MACHINE_LEARNING_MODEL_INTER_OP_THREADS`        | Number of parallel model operations                               |         `1`         | machine learning |
 | `MACHINE_LEARNING_MODEL_INTRA_OP_THREADS`        | Number of threads for each model operation                        |         `2`         | machine learning |
 | `MACHINE_LEARNING_MODEL_INTRA_OP_THREADS`        | Number of threads for each model operation                        |         `2`         | machine learning |
-| `MACHINE_LEARNING_WORKERS`<sup>\*3</sup>         | Number of worker processes to spawn                               |         `1`         | machine learning |
+| `MACHINE_LEARNING_WORKERS`<sup>\*2</sup>         | Number of worker processes to spawn                               |         `1`         | machine learning |
 | `MACHINE_LEARNING_WORKER_TIMEOUT`                | Maximum time (s) of unresponsiveness before a worker is killed    |        `120`        | machine learning |
 | `MACHINE_LEARNING_WORKER_TIMEOUT`                | Maximum time (s) of unresponsiveness before a worker is killed    |        `120`        | machine learning |
 
 
-\*1: This is an experimental feature. It may result in increased memory use over time when loading models repeatedly.
-
-\*2: It is recommended to begin with this parameter when changing the concurrency levels of the machine learning service and then tune the other ones.
+\*1: It is recommended to begin with this parameter when changing the concurrency levels of the machine learning service and then tune the other ones.
 
 
-\*3: Since each process duplicates models in memory, changing this is not recommended unless you have abundant memory to go around.
+\*2: Since each process duplicates models in memory, changing this is not recommended unless you have abundant memory to go around.
 
 
 :::info
 :::info
 
 

+ 4 - 4
docs/docs/install/unraid.md

@@ -98,12 +98,12 @@ alt="Select Plugins > Compose.Manager > Add New Stack > Label it Immich"
 
 
     > Note: This can take several minutes depending on your Internet speed and Unraid hardware
     > Note: This can take several minutes depending on your Internet speed and Unraid hardware
 
 
-9.  Once on the Docker page you will see several Immich containers, one of them will be labelled `immich_proxy` and will have a port mapping. Visit the `IP:PORT` displayed in your web browser and you should see the Immich admin setup page.
+9.  Once on the Docker page you will see several Immich containers, one of them will be labelled `immich_web` and will have a port mapping. Visit the `IP:PORT` displayed in your web browser and you should see the Immich admin setup page.
 
 
 <img
 <img
 src={require('./img/unraid06.webp').default}
 src={require('./img/unraid06.webp').default}
 width="80%"
 width="80%"
-alt="Go to Docker Tab and visit the address listed next to immich-proxy"
+alt="Go to Docker Tab and visit the address listed next to immich-web"
 />
 />
 
 
 <details >
 <details >
@@ -112,12 +112,12 @@ alt="Go to Docker Tab and visit the address listed next to immich-proxy"
     <img
     <img
         src={require('./img/unraid07.webp').default}
         src={require('./img/unraid07.webp').default}
         width="80%"
         width="80%"
-        alt="Go to Docker Tab and visit the address listed next to immich-proxy"
+        alt="Go to Docker Tab and visit the address listed next to immich-web"
     />
     />
     <img
     <img
         src={require('./img/unraid08.webp').default}
         src={require('./img/unraid08.webp').default}
         width="90%"
         width="90%"
-        alt="Go to Docker Tab and visit the address listed next to immich-proxy"
+        alt="Go to Docker Tab and visit the address listed next to immich-web"
     />
     />
     
     
 </details>
 </details>

+ 10 - 10
docs/package-lock.json

@@ -13232,19 +13232,19 @@
       }
       }
     },
     },
     "node_modules/tailwindcss": {
     "node_modules/tailwindcss": {
-      "version": "3.3.3",
-      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz",
-      "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==",
+      "version": "3.3.5",
+      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz",
+      "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==",
       "dependencies": {
       "dependencies": {
         "@alloc/quick-lru": "^5.2.0",
         "@alloc/quick-lru": "^5.2.0",
         "arg": "^5.0.2",
         "arg": "^5.0.2",
         "chokidar": "^3.5.3",
         "chokidar": "^3.5.3",
         "didyoumean": "^1.2.2",
         "didyoumean": "^1.2.2",
         "dlv": "^1.1.3",
         "dlv": "^1.1.3",
-        "fast-glob": "^3.2.12",
+        "fast-glob": "^3.3.0",
         "glob-parent": "^6.0.2",
         "glob-parent": "^6.0.2",
         "is-glob": "^4.0.3",
         "is-glob": "^4.0.3",
-        "jiti": "^1.18.2",
+        "jiti": "^1.19.1",
         "lilconfig": "^2.1.0",
         "lilconfig": "^2.1.0",
         "micromatch": "^4.0.5",
         "micromatch": "^4.0.5",
         "normalize-path": "^3.0.0",
         "normalize-path": "^3.0.0",
@@ -24517,19 +24517,19 @@
       }
       }
     },
     },
     "tailwindcss": {
     "tailwindcss": {
-      "version": "3.3.3",
-      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz",
-      "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==",
+      "version": "3.3.5",
+      "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz",
+      "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==",
       "requires": {
       "requires": {
         "@alloc/quick-lru": "^5.2.0",
         "@alloc/quick-lru": "^5.2.0",
         "arg": "^5.0.2",
         "arg": "^5.0.2",
         "chokidar": "^3.5.3",
         "chokidar": "^3.5.3",
         "didyoumean": "^1.2.2",
         "didyoumean": "^1.2.2",
         "dlv": "^1.1.3",
         "dlv": "^1.1.3",
-        "fast-glob": "^3.2.12",
+        "fast-glob": "^3.3.0",
         "glob-parent": "^6.0.2",
         "glob-parent": "^6.0.2",
         "is-glob": "^4.0.3",
         "is-glob": "^4.0.3",
-        "jiti": "^1.18.2",
+        "jiti": "^1.19.1",
         "lilconfig": "^2.1.0",
         "lilconfig": "^2.1.0",
         "micromatch": "^4.0.5",
         "micromatch": "^4.0.5",
         "normalize-path": "^3.0.0",
         "normalize-path": "^3.0.0",

+ 11 - 2
machine-learning/app/config.py

@@ -13,7 +13,8 @@ from .schemas import ModelType
 
 
 class Settings(BaseSettings):
 class Settings(BaseSettings):
     cache_folder: str = "/cache"
     cache_folder: str = "/cache"
-    model_ttl: int = 0
+    model_ttl: int = 300
+    model_ttl_poll_s: int = 10
     host: str = "0.0.0.0"
     host: str = "0.0.0.0"
     port: int = 3003
     port: int = 3003
     workers: int = 1
     workers: int = 1
@@ -38,8 +39,16 @@ class LogSettings(BaseSettings):
 _clean_name = str.maketrans(":\\/", "___", ".")
 _clean_name = str.maketrans(":\\/", "___", ".")
 
 
 
 
+def clean_name(model_name: str) -> str:
+    return model_name.split("/")[-1].translate(_clean_name)
+
+
 def get_cache_dir(model_name: str, model_type: ModelType) -> Path:
 def get_cache_dir(model_name: str, model_type: ModelType) -> Path:
-    return Path(settings.cache_folder) / model_type.value / model_name.translate(_clean_name)
+    return Path(settings.cache_folder) / model_type.value / clean_name(model_name)
+
+
+def get_hf_model_name(model_name: str) -> str:
+    return f"immich-app/{clean_name(model_name)}"
 
 
 
 
 LOG_LEVELS: dict[str, int] = {
 LOG_LEVELS: dict[str, int] = {

+ 2 - 1
machine-learning/app/conftest.py

@@ -36,7 +36,8 @@ def deployed_app() -> TestClient:
 
 
 @pytest.fixture(scope="session")
 @pytest.fixture(scope="session")
 def responses() -> dict[str, Any]:
 def responses() -> dict[str, Any]:
-    return json.load(open("responses.json", "r"))
+    responses: dict[str, Any] = json.load(open("responses.json", "r"))
+    return responses
 
 
 
 
 @pytest.fixture(scope="session")
 @pytest.fixture(scope="session")

+ 35 - 4
machine-learning/app/main.py

@@ -1,5 +1,9 @@
 import asyncio
 import asyncio
+import gc
+import os
+import sys
 import threading
 import threading
+import time
 from concurrent.futures import ThreadPoolExecutor
 from concurrent.futures import ThreadPoolExecutor
 from typing import Any
 from typing import Any
 from zipfile import BadZipFile
 from zipfile import BadZipFile
@@ -7,7 +11,7 @@ from zipfile import BadZipFile
 import orjson
 import orjson
 from fastapi import FastAPI, Form, HTTPException, UploadFile
 from fastapi import FastAPI, Form, HTTPException, UploadFile
 from fastapi.responses import ORJSONResponse
 from fastapi.responses import ORJSONResponse
-from onnxruntime.capi.onnxruntime_pybind11_state import InvalidProtobuf, NoSuchFile  # type: ignore
+from onnxruntime.capi.onnxruntime_pybind11_state import InvalidProtobuf, NoSuchFile
 from starlette.formparsers import MultiPartParser
 from starlette.formparsers import MultiPartParser
 
 
 from app.models.base import InferenceModel
 from app.models.base import InferenceModel
@@ -34,7 +38,10 @@ def init_state() -> None:
     )
     )
     # asyncio is a huge bottleneck for performance, so we use a thread pool to run blocking code
     # asyncio is a huge bottleneck for performance, so we use a thread pool to run blocking code
     app.state.thread_pool = ThreadPoolExecutor(settings.request_threads) if settings.request_threads > 0 else None
     app.state.thread_pool = ThreadPoolExecutor(settings.request_threads) if settings.request_threads > 0 else None
-    app.state.locks = {model_type: threading.Lock() for model_type in ModelType}
+    app.state.lock = threading.Lock()
+    app.state.last_called = None
+    if settings.model_ttl > 0 and settings.model_ttl_poll_s > 0:
+        asyncio.ensure_future(idle_shutdown_task())
     log.info(f"Initialized request thread pool with {settings.request_threads} threads.")
     log.info(f"Initialized request thread pool with {settings.request_threads} threads.")
 
 
 
 
@@ -79,9 +86,9 @@ async def predict(
 
 
 
 
 async def run(model: InferenceModel, inputs: Any) -> Any:
 async def run(model: InferenceModel, inputs: Any) -> Any:
+    app.state.last_called = time.time()
     if app.state.thread_pool is None:
     if app.state.thread_pool is None:
         return model.predict(inputs)
         return model.predict(inputs)
-
     return await asyncio.get_running_loop().run_in_executor(app.state.thread_pool, model.predict, inputs)
     return await asyncio.get_running_loop().run_in_executor(app.state.thread_pool, model.predict, inputs)
 
 
 
 
@@ -90,7 +97,7 @@ async def load(model: InferenceModel) -> InferenceModel:
         return model
         return model
 
 
     def _load() -> None:
     def _load() -> None:
-        with app.state.locks[model.model_type]:
+        with app.state.lock:
             model.load()
             model.load()
 
 
     loop = asyncio.get_running_loop()
     loop = asyncio.get_running_loop()
@@ -113,3 +120,27 @@ async def load(model: InferenceModel) -> InferenceModel:
         else:
         else:
             await loop.run_in_executor(app.state.thread_pool, _load)
             await loop.run_in_executor(app.state.thread_pool, _load)
         return model
         return model
+
+
+async def idle_shutdown_task() -> None:
+    while True:
+        log.debug("Checking for inactivity...")
+        if app.state.last_called is not None and time.time() - app.state.last_called > settings.model_ttl:
+            log.info("Shutting down due to inactivity.")
+            loop = asyncio.get_running_loop()
+            for task in asyncio.all_tasks(loop):
+                if task is not asyncio.current_task():
+                    try:
+                        task.cancel()
+                    except asyncio.CancelledError:
+                        pass
+            sys.stderr.close()
+            sys.stdout.close()
+            sys.stdout = sys.stderr = open(os.devnull, "w")
+            try:
+                await app.state.model_cache.cache.clear()
+                gc.collect()
+                loop.stop()
+            except asyncio.CancelledError:
+                pass
+        await asyncio.sleep(settings.model_ttl_poll_s)

+ 6 - 4
machine-learning/app/models/__init__.py

@@ -3,7 +3,8 @@ from typing import Any
 from app.schemas import ModelType
 from app.schemas import ModelType
 
 
 from .base import InferenceModel
 from .base import InferenceModel
-from .clip import MCLIPEncoder, OpenCLIPEncoder, is_mclip, is_openclip
+from .clip import MCLIPEncoder, OpenCLIPEncoder
+from .constants import is_insightface, is_mclip, is_openclip
 from .facial_recognition import FaceRecognizer
 from .facial_recognition import FaceRecognizer
 from .image_classification import ImageClassifier
 from .image_classification import ImageClassifier
 
 
@@ -15,11 +16,12 @@ def from_model_type(model_type: ModelType, model_name: str, **model_kwargs: Any)
                 return OpenCLIPEncoder(model_name, **model_kwargs)
                 return OpenCLIPEncoder(model_name, **model_kwargs)
             elif is_mclip(model_name):
             elif is_mclip(model_name):
                 return MCLIPEncoder(model_name, **model_kwargs)
                 return MCLIPEncoder(model_name, **model_kwargs)
-            else:
-                raise ValueError(f"Unknown CLIP model {model_name}")
         case ModelType.FACIAL_RECOGNITION:
         case ModelType.FACIAL_RECOGNITION:
-            return FaceRecognizer(model_name, **model_kwargs)
+            if is_insightface(model_name):
+                return FaceRecognizer(model_name, **model_kwargs)
         case ModelType.IMAGE_CLASSIFICATION:
         case ModelType.IMAGE_CLASSIFICATION:
             return ImageClassifier(model_name, **model_kwargs)
             return ImageClassifier(model_name, **model_kwargs)
         case _:
         case _:
             raise ValueError(f"Unknown model type {model_type}")
             raise ValueError(f"Unknown model type {model_type}")
+
+    raise ValueError(f"Unknown ${model_type} model {model_name}")

+ 14 - 7
machine-learning/app/models/base.py

@@ -7,8 +7,10 @@ from shutil import rmtree
 from typing import Any
 from typing import Any
 
 
 import onnxruntime as ort
 import onnxruntime as ort
+from huggingface_hub import snapshot_download
+from typing_extensions import Buffer
 
 
-from ..config import get_cache_dir, log, settings
+from ..config import get_cache_dir, get_hf_model_name, log, settings
 from ..schemas import ModelType
 from ..schemas import ModelType
 
 
 
 
@@ -78,9 +80,13 @@ class InferenceModel(ABC):
     def configure(self, **model_kwargs: Any) -> None:
     def configure(self, **model_kwargs: Any) -> None:
         pass
         pass
 
 
-    @abstractmethod
     def _download(self) -> None:
     def _download(self) -> None:
-        ...
+        snapshot_download(
+            get_hf_model_name(self.model_name),
+            cache_dir=self.cache_dir,
+            local_dir=self.cache_dir,
+            local_dir_use_symlinks=False,
+        )
 
 
     @abstractmethod
     @abstractmethod
     def _load(self) -> None:
     def _load(self) -> None:
@@ -134,11 +140,12 @@ class InferenceModel(ABC):
 
 
 
 
 # HF deep copies configs, so we need to make session options picklable
 # HF deep copies configs, so we need to make session options picklable
-class PicklableSessionOptions(ort.SessionOptions):
+class PicklableSessionOptions(ort.SessionOptions):  # type: ignore[misc]
     def __getstate__(self) -> bytes:
     def __getstate__(self) -> bytes:
         return pickle.dumps([(attr, getattr(self, attr)) for attr in dir(self) if not callable(getattr(self, attr))])
         return pickle.dumps([(attr, getattr(self, attr)) for attr in dir(self) if not callable(getattr(self, attr))])
 
 
-    def __setstate__(self, state: Any) -> None:
-        self.__init__()  # type: ignore
-        for attr, val in pickle.loads(state):
+    def __setstate__(self, state: Buffer) -> None:
+        self.__init__()  # type: ignore[misc]
+        attrs: list[tuple[str, Any]] = pickle.loads(state)
+        for attr, val in attrs:
             setattr(self, attr, val)
             setattr(self, attr, val)

+ 5 - 5
machine-learning/app/models/cache.py

@@ -6,7 +6,7 @@ from aiocache.plugins import BasePlugin, TimingPlugin
 
 
 from app.models import from_model_type
 from app.models import from_model_type
 
 
-from ..schemas import ModelType
+from ..schemas import ModelType, has_profiling
 from .base import InferenceModel
 from .base import InferenceModel
 
 
 
 
@@ -50,20 +50,20 @@ class ModelCache:
 
 
         key = f"{model_name}{model_type.value}{model_kwargs.get('mode', '')}"
         key = f"{model_name}{model_type.value}{model_kwargs.get('mode', '')}"
         async with OptimisticLock(self.cache, key) as lock:
         async with OptimisticLock(self.cache, key) as lock:
-            model = await self.cache.get(key)
+            model: InferenceModel | None = await self.cache.get(key)
             if model is None:
             if model is None:
                 model = from_model_type(model_type, model_name, **model_kwargs)
                 model = from_model_type(model_type, model_name, **model_kwargs)
                 await lock.cas(model, ttl=self.ttl)
                 await lock.cas(model, ttl=self.ttl)
         return model
         return model
 
 
     async def get_profiling(self) -> dict[str, float] | None:
     async def get_profiling(self) -> dict[str, float] | None:
-        if not hasattr(self.cache, "profiling"):
+        if not has_profiling(self.cache):
             return None
             return None
 
 
-        return self.cache.profiling  # type: ignore
+        return self.cache.profiling
 
 
 
 
-class RevalidationPlugin(BasePlugin):
+class RevalidationPlugin(BasePlugin):  # type: ignore[misc]
     """Revalidates cache item's TTL after cache hit."""
     """Revalidates cache item's TTL after cache hit."""
 
 
     async def post_get(
     async def post_get(

+ 10 - 66
machine-learning/app/models/clip.py

@@ -7,11 +7,10 @@ from typing import Any, Literal
 
 
 import numpy as np
 import numpy as np
 import onnxruntime as ort
 import onnxruntime as ort
-from huggingface_hub import snapshot_download
 from PIL import Image
 from PIL import Image
 from transformers import AutoTokenizer
 from transformers import AutoTokenizer
 
 
-from app.config import log
+from app.config import clean_name, log
 from app.models.transforms import crop, get_pil_resampling, normalize, resize, to_numpy
 from app.models.transforms import crop, get_pil_resampling, normalize, resize, to_numpy
 from app.schemas import ModelType, ndarray_f32, ndarray_i32, ndarray_i64
 from app.schemas import ModelType, ndarray_f32, ndarray_i32, ndarray_i64
 
 
@@ -52,7 +51,7 @@ class BaseCLIPEncoder(InferenceModel):
                 provider_options=self.provider_options,
                 provider_options=self.provider_options,
             )
             )
 
 
-    def _predict(self, image_or_text: Image.Image | str) -> list[float]:
+    def _predict(self, image_or_text: Image.Image | str) -> ndarray_f32:
         if isinstance(image_or_text, bytes):
         if isinstance(image_or_text, bytes):
             image_or_text = Image.open(BytesIO(image_or_text))
             image_or_text = Image.open(BytesIO(image_or_text))
 
 
@@ -61,16 +60,16 @@ class BaseCLIPEncoder(InferenceModel):
                 if self.mode == "text":
                 if self.mode == "text":
                     raise TypeError("Cannot encode image as text-only model")
                     raise TypeError("Cannot encode image as text-only model")
 
 
-                outputs = self.vision_model.run(None, self.transform(image_or_text))
+                outputs: ndarray_f32 = self.vision_model.run(None, self.transform(image_or_text))[0][0]
             case str():
             case str():
                 if self.mode == "vision":
                 if self.mode == "vision":
                     raise TypeError("Cannot encode text as vision-only model")
                     raise TypeError("Cannot encode text as vision-only model")
 
 
-                outputs = self.text_model.run(None, self.tokenize(image_or_text))
+                outputs = self.text_model.run(None, self.tokenize(image_or_text))[0][0]
             case _:
             case _:
                 raise TypeError(f"Expected Image or str, but got: {type(image_or_text)}")
                 raise TypeError(f"Expected Image or str, but got: {type(image_or_text)}")
 
 
-        return outputs[0][0].tolist()
+        return outputs
 
 
     @abstractmethod
     @abstractmethod
     def tokenize(self, text: str) -> dict[str, ndarray_i32]:
     def tokenize(self, text: str) -> dict[str, ndarray_i32]:
@@ -117,15 +116,7 @@ class OpenCLIPEncoder(BaseCLIPEncoder):
         mode: Literal["text", "vision"] | None = None,
         mode: Literal["text", "vision"] | None = None,
         **model_kwargs: Any,
         **model_kwargs: Any,
     ) -> None:
     ) -> None:
-        super().__init__(_clean_model_name(model_name), cache_dir, mode, **model_kwargs)
-
-    def _download(self) -> None:
-        snapshot_download(
-            f"immich-app/{self.model_name}",
-            cache_dir=self.cache_dir,
-            local_dir=self.cache_dir,
-            local_dir_use_symlinks=False,
-        )
+        super().__init__(clean_name(model_name), cache_dir, mode, **model_kwargs)
 
 
     def _load(self) -> None:
     def _load(self) -> None:
         super()._load()
         super()._load()
@@ -160,63 +151,16 @@ class OpenCLIPEncoder(BaseCLIPEncoder):
 
 
     @cached_property
     @cached_property
     def model_cfg(self) -> dict[str, Any]:
     def model_cfg(self) -> dict[str, Any]:
-        return json.load(self.model_cfg_path.open())
+        model_cfg: dict[str, Any] = json.load(self.model_cfg_path.open())
+        return model_cfg
 
 
     @cached_property
     @cached_property
     def preprocess_cfg(self) -> dict[str, Any]:
     def preprocess_cfg(self) -> dict[str, Any]:
-        return json.load(self.preprocess_cfg_path.open())
+        preprocess_cfg: dict[str, Any] = json.load(self.preprocess_cfg_path.open())
+        return preprocess_cfg
 
 
 
 
 class MCLIPEncoder(OpenCLIPEncoder):
 class MCLIPEncoder(OpenCLIPEncoder):
     def tokenize(self, text: str) -> dict[str, ndarray_i32]:
     def tokenize(self, text: str) -> dict[str, ndarray_i32]:
         tokens: dict[str, ndarray_i64] = self.tokenizer(text, return_tensors="np")
         tokens: dict[str, ndarray_i64] = self.tokenizer(text, return_tensors="np")
         return {k: v.astype(np.int32) for k, v in tokens.items()}
         return {k: v.astype(np.int32) for k, v in tokens.items()}
-
-
-_OPENCLIP_MODELS = {
-    "RN50__openai",
-    "RN50__yfcc15m",
-    "RN50__cc12m",
-    "RN101__openai",
-    "RN101__yfcc15m",
-    "RN50x4__openai",
-    "RN50x16__openai",
-    "RN50x64__openai",
-    "ViT-B-32__openai",
-    "ViT-B-32__laion2b_e16",
-    "ViT-B-32__laion400m_e31",
-    "ViT-B-32__laion400m_e32",
-    "ViT-B-32__laion2b-s34b-b79k",
-    "ViT-B-16__openai",
-    "ViT-B-16__laion400m_e31",
-    "ViT-B-16__laion400m_e32",
-    "ViT-B-16-plus-240__laion400m_e31",
-    "ViT-B-16-plus-240__laion400m_e32",
-    "ViT-L-14__openai",
-    "ViT-L-14__laion400m_e31",
-    "ViT-L-14__laion400m_e32",
-    "ViT-L-14__laion2b-s32b-b82k",
-    "ViT-L-14-336__openai",
-    "ViT-H-14__laion2b-s32b-b79k",
-    "ViT-g-14__laion2b-s12b-b42k",
-}
-
-
-_MCLIP_MODELS = {
-    "LABSE-Vit-L-14",
-    "XLM-Roberta-Large-Vit-B-32",
-    "XLM-Roberta-Large-Vit-B-16Plus",
-    "XLM-Roberta-Large-Vit-L-14",
-}
-
-
-def _clean_model_name(model_name: str) -> str:
-    return model_name.split("/")[-1].replace("::", "__")
-
-
-def is_openclip(model_name: str) -> bool:
-    return _clean_model_name(model_name) in _OPENCLIP_MODELS
-
-
-def is_mclip(model_name: str) -> bool:
-    return _clean_model_name(model_name) in _MCLIP_MODELS

+ 57 - 0
machine-learning/app/models/constants.py

@@ -0,0 +1,57 @@
+from app.config import clean_name
+
+_OPENCLIP_MODELS = {
+    "RN50__openai",
+    "RN50__yfcc15m",
+    "RN50__cc12m",
+    "RN101__openai",
+    "RN101__yfcc15m",
+    "RN50x4__openai",
+    "RN50x16__openai",
+    "RN50x64__openai",
+    "ViT-B-32__openai",
+    "ViT-B-32__laion2b_e16",
+    "ViT-B-32__laion400m_e31",
+    "ViT-B-32__laion400m_e32",
+    "ViT-B-32__laion2b-s34b-b79k",
+    "ViT-B-16__openai",
+    "ViT-B-16__laion400m_e31",
+    "ViT-B-16__laion400m_e32",
+    "ViT-B-16-plus-240__laion400m_e31",
+    "ViT-B-16-plus-240__laion400m_e32",
+    "ViT-L-14__openai",
+    "ViT-L-14__laion400m_e31",
+    "ViT-L-14__laion400m_e32",
+    "ViT-L-14__laion2b-s32b-b82k",
+    "ViT-L-14-336__openai",
+    "ViT-H-14__laion2b-s32b-b79k",
+    "ViT-g-14__laion2b-s12b-b42k",
+}
+
+
+_MCLIP_MODELS = {
+    "LABSE-Vit-L-14",
+    "XLM-Roberta-Large-Vit-B-32",
+    "XLM-Roberta-Large-Vit-B-16Plus",
+    "XLM-Roberta-Large-Vit-L-14",
+}
+
+
+_INSIGHTFACE_MODELS = {
+    "antelopev2",
+    "buffalo_l",
+    "buffalo_m",
+    "buffalo_s",
+}
+
+
+def is_openclip(model_name: str) -> bool:
+    return clean_name(model_name) in _OPENCLIP_MODELS
+
+
+def is_mclip(model_name: str) -> bool:
+    return clean_name(model_name) in _MCLIP_MODELS
+
+
+def is_insightface(model_name: str) -> bool:
+    return clean_name(model_name) in _INSIGHTFACE_MODELS

+ 30 - 40
machine-learning/app/models/facial_recognition.py

@@ -1,4 +1,3 @@
-import zipfile
 from pathlib import Path
 from pathlib import Path
 from typing import Any
 from typing import Any
 
 
@@ -7,9 +6,9 @@ import numpy as np
 import onnxruntime as ort
 import onnxruntime as ort
 from insightface.model_zoo import ArcFaceONNX, RetinaFace
 from insightface.model_zoo import ArcFaceONNX, RetinaFace
 from insightface.utils.face_align import norm_crop
 from insightface.utils.face_align import norm_crop
-from insightface.utils.storage import BASE_REPO_URL, download_file
 
 
-from app.schemas import ModelType, ndarray_f32
+from app.config import clean_name
+from app.schemas import BoundingBox, Face, ModelType, ndarray_f32
 
 
 from .base import InferenceModel
 from .base import InferenceModel
 
 
@@ -25,37 +24,21 @@ class FaceRecognizer(InferenceModel):
         **model_kwargs: Any,
         **model_kwargs: Any,
     ) -> None:
     ) -> None:
         self.min_score = model_kwargs.pop("minScore", min_score)
         self.min_score = model_kwargs.pop("minScore", min_score)
-        super().__init__(model_name, cache_dir, **model_kwargs)
-
-    def _download(self) -> None:
-        zip_file = self.cache_dir / f"{self.model_name}.zip"
-        download_file(f"{BASE_REPO_URL}/{self.model_name}.zip", zip_file)
-        with zipfile.ZipFile(zip_file, "r") as zip:
-            members = zip.namelist()
-            det_file = next(model for model in members if model.startswith("det_"))
-            rec_file = next(model for model in members if model.startswith("w600k_"))
-            zip.extractall(self.cache_dir, members=[det_file, rec_file])
-        zip_file.unlink()
+        super().__init__(clean_name(model_name), cache_dir, **model_kwargs)
 
 
     def _load(self) -> None:
     def _load(self) -> None:
-        try:
-            det_file = next(self.cache_dir.glob("det_*.onnx"))
-            rec_file = next(self.cache_dir.glob("w600k_*.onnx"))
-        except StopIteration:
-            raise FileNotFoundError("Facial recognition models not found in cache directory")
-
         self.det_model = RetinaFace(
         self.det_model = RetinaFace(
             session=ort.InferenceSession(
             session=ort.InferenceSession(
-                det_file.as_posix(),
+                self.det_file.as_posix(),
                 sess_options=self.sess_options,
                 sess_options=self.sess_options,
                 providers=self.providers,
                 providers=self.providers,
                 provider_options=self.provider_options,
                 provider_options=self.provider_options,
             ),
             ),
         )
         )
         self.rec_model = ArcFaceONNX(
         self.rec_model = ArcFaceONNX(
-            rec_file.as_posix(),
+            self.rec_file.as_posix(),
             session=ort.InferenceSession(
             session=ort.InferenceSession(
-                rec_file.as_posix(),
+                self.rec_file.as_posix(),
                 sess_options=self.sess_options,
                 sess_options=self.sess_options,
                 providers=self.providers,
                 providers=self.providers,
                 provider_options=self.provider_options,
                 provider_options=self.provider_options,
@@ -69,7 +52,7 @@ class FaceRecognizer(InferenceModel):
         )
         )
         self.rec_model.prepare(ctx_id=0)
         self.rec_model.prepare(ctx_id=0)
 
 
-    def _predict(self, image: ndarray_f32 | bytes) -> list[dict[str, Any]]:
+    def _predict(self, image: ndarray_f32 | bytes) -> list[Face]:
         if isinstance(image, bytes):
         if isinstance(image, bytes):
             image = cv2.imdecode(np.frombuffer(image, np.uint8), cv2.IMREAD_COLOR)
             image = cv2.imdecode(np.frombuffer(image, np.uint8), cv2.IMREAD_COLOR)
         bboxes, kpss = self.det_model.detect(image)
         bboxes, kpss = self.det_model.detect(image)
@@ -84,26 +67,33 @@ class FaceRecognizer(InferenceModel):
         height, width, _ = image.shape
         height, width, _ = image.shape
         for (x1, y1, x2, y2), score, kps in zip(bboxes, scores, kpss):
         for (x1, y1, x2, y2), score, kps in zip(bboxes, scores, kpss):
             cropped_img = norm_crop(image, kps)
             cropped_img = norm_crop(image, kps)
-            embedding = self.rec_model.get_feat(cropped_img)[0].tolist()
-            results.append(
-                {
-                    "imageWidth": width,
-                    "imageHeight": height,
-                    "boundingBox": {
-                        "x1": x1,
-                        "y1": y1,
-                        "x2": x2,
-                        "y2": y2,
-                    },
-                    "score": score,
-                    "embedding": embedding,
-                }
-            )
+            embedding: ndarray_f32 = self.rec_model.get_feat(cropped_img)[0]
+            face: Face = {
+                "imageWidth": width,
+                "imageHeight": height,
+                "boundingBox": {
+                    "x1": x1,
+                    "y1": y1,
+                    "x2": x2,
+                    "y2": y2,
+                },
+                "score": score,
+                "embedding": embedding,
+            }
+            results.append(face)
         return results
         return results
 
 
     @property
     @property
     def cached(self) -> bool:
     def cached(self) -> bool:
-        return self.cache_dir.is_dir() and any(self.cache_dir.glob("*.onnx"))
+        return self.det_file.is_file() and self.rec_file.is_file()
+
+    @property
+    def det_file(self) -> Path:
+        return self.cache_dir / "detection" / "model.onnx"
+
+    @property
+    def rec_file(self) -> Path:
+        return self.cache_dir / "recognition" / "model.onnx"
 
 
     def configure(self, **model_kwargs: Any) -> None:
     def configure(self, **model_kwargs: Any) -> None:
         self.det_model.det_thresh = model_kwargs.pop("minScore", self.det_model.det_thresh)
         self.det_model.det_thresh = model_kwargs.pop("minScore", self.det_model.det_thresh)

+ 1 - 1
machine-learning/app/models/image_classification.py

@@ -66,7 +66,7 @@ class ImageClassifier(InferenceModel):
     def _predict(self, image: Image.Image | bytes) -> list[str]:
     def _predict(self, image: Image.Image | bytes) -> list[str]:
         if isinstance(image, bytes):
         if isinstance(image, bytes):
             image = Image.open(BytesIO(image))
             image = Image.open(BytesIO(image))
-        predictions: list[dict[str, Any]] = self.model(image)  # type: ignore
+        predictions: list[dict[str, Any]] = self.model(image)
         tags = [tag for pred in predictions for tag in pred["label"].split(", ") if pred["score"] >= self.min_score]
         tags = [tag for pred in predictions for tag in pred["label"].split(", ") if pred["score"] >= self.min_score]
 
 
         return tags
         return tags

+ 19 - 13
machine-learning/app/schemas.py

@@ -1,17 +1,12 @@
 from enum import StrEnum
 from enum import StrEnum
-from typing import TypeAlias
+from typing import Any, Protocol, TypeAlias, TypedDict, TypeGuard
 
 
 import numpy as np
 import numpy as np
 from pydantic import BaseModel
 from pydantic import BaseModel
 
 
-
-def to_lower_camel(string: str) -> str:
-    tokens = [token.capitalize() if i > 0 else token for i, token in enumerate(string.split("_"))]
-    return "".join(tokens)
-
-
-class TextModelRequest(BaseModel):
-    text: str
+ndarray_f32: TypeAlias = np.ndarray[int, np.dtype[np.float32]]
+ndarray_i64: TypeAlias = np.ndarray[int, np.dtype[np.int64]]
+ndarray_i32: TypeAlias = np.ndarray[int, np.dtype[np.int32]]
 
 
 
 
 class TextResponse(BaseModel):
 class TextResponse(BaseModel):
@@ -22,7 +17,7 @@ class MessageResponse(BaseModel):
     message: str
     message: str
 
 
 
 
-class BoundingBox(BaseModel):
+class BoundingBox(TypedDict):
     x1: int
     x1: int
     y1: int
     y1: int
     x2: int
     x2: int
@@ -35,6 +30,17 @@ class ModelType(StrEnum):
     FACIAL_RECOGNITION = "facial-recognition"
     FACIAL_RECOGNITION = "facial-recognition"
 
 
 
 
-ndarray_f32: TypeAlias = np.ndarray[int, np.dtype[np.float32]]
-ndarray_i64: TypeAlias = np.ndarray[int, np.dtype[np.int64]]
-ndarray_i32: TypeAlias = np.ndarray[int, np.dtype[np.int32]]
+class HasProfiling(Protocol):
+    profiling: dict[str, float]
+
+
+class Face(TypedDict):
+    boundingBox: BoundingBox
+    embedding: ndarray_f32
+    imageWidth: int
+    imageHeight: int
+    score: float
+
+
+def has_profiling(obj: Any) -> TypeGuard[HasProfiling]:
+    return hasattr(obj, "profiling") and type(obj.profiling) == dict

+ 11 - 11
machine-learning/app/test_main.py

@@ -75,9 +75,9 @@ class TestCLIP:
         embedding = clip_encoder.predict(pil_image)
         embedding = clip_encoder.predict(pil_image)
 
 
         assert clip_encoder.mode == "vision"
         assert clip_encoder.mode == "vision"
-        assert isinstance(embedding, list)
-        assert len(embedding) == clip_model_cfg["embed_dim"]
-        assert all([isinstance(num, float) for num in embedding])
+        assert isinstance(embedding, np.ndarray)
+        assert embedding.shape[0] == clip_model_cfg["embed_dim"]
+        assert embedding.dtype == np.float32
         clip_encoder.vision_model.run.assert_called_once()
         clip_encoder.vision_model.run.assert_called_once()
 
 
     def test_basic_text(
     def test_basic_text(
@@ -97,22 +97,22 @@ class TestCLIP:
         embedding = clip_encoder.predict("test search query")
         embedding = clip_encoder.predict("test search query")
 
 
         assert clip_encoder.mode == "text"
         assert clip_encoder.mode == "text"
-        assert isinstance(embedding, list)
-        assert len(embedding) == clip_model_cfg["embed_dim"]
-        assert all([isinstance(num, float) for num in embedding])
+        assert isinstance(embedding, np.ndarray)
+        assert embedding.shape[0] == clip_model_cfg["embed_dim"]
+        assert embedding.dtype == np.float32
         clip_encoder.text_model.run.assert_called_once()
         clip_encoder.text_model.run.assert_called_once()
 
 
 
 
 class TestFaceRecognition:
 class TestFaceRecognition:
     def test_set_min_score(self, mocker: MockerFixture) -> None:
     def test_set_min_score(self, mocker: MockerFixture) -> None:
         mocker.patch.object(FaceRecognizer, "load")
         mocker.patch.object(FaceRecognizer, "load")
-        face_recognizer = FaceRecognizer("test_model_name", cache_dir="test_cache", min_score=0.5)
+        face_recognizer = FaceRecognizer("buffalo_s", cache_dir="test_cache", min_score=0.5)
 
 
         assert face_recognizer.min_score == 0.5
         assert face_recognizer.min_score == 0.5
 
 
     def test_basic(self, cv_image: cv2.Mat, mocker: MockerFixture) -> None:
     def test_basic(self, cv_image: cv2.Mat, mocker: MockerFixture) -> None:
         mocker.patch.object(FaceRecognizer, "load")
         mocker.patch.object(FaceRecognizer, "load")
-        face_recognizer = FaceRecognizer("test_model_name", min_score=0.0, cache_dir="test_cache")
+        face_recognizer = FaceRecognizer("buffalo_s", min_score=0.0, cache_dir="test_cache")
 
 
         det_model = mock.Mock()
         det_model = mock.Mock()
         num_faces = 2
         num_faces = 2
@@ -133,9 +133,9 @@ class TestFaceRecognition:
         for face in faces:
         for face in faces:
             assert face["imageHeight"] == 800
             assert face["imageHeight"] == 800
             assert face["imageWidth"] == 600
             assert face["imageWidth"] == 600
-            assert isinstance(face["embedding"], list)
-            assert len(face["embedding"]) == 512
-            assert all([isinstance(num, float) for num in face["embedding"]])
+            assert isinstance(face["embedding"], np.ndarray)
+            assert face["embedding"].shape[0] == 512
+            assert face["embedding"].dtype == np.float32
 
 
         det_model.detect.assert_called_once()
         det_model.detect.assert_called_once()
         assert rec_model.get_feat.call_count == num_faces
         assert rec_model.get_feat.call_count == num_faces

+ 9 - 4
machine-learning/export/models/openclip.py

@@ -1,6 +1,7 @@
 import tempfile
 import tempfile
 import warnings
 import warnings
 from dataclasses import dataclass, field
 from dataclasses import dataclass, field
+from math import e
 from pathlib import Path
 from pathlib import Path
 
 
 import open_clip
 import open_clip
@@ -69,10 +70,12 @@ def export_image_encoder(model: open_clip.CLIP, model_cfg: OpenCLIPModelConfig,
     output_path = Path(output_path)
     output_path = Path(output_path)
 
 
     def encode_image(image: torch.Tensor) -> torch.Tensor:
     def encode_image(image: torch.Tensor) -> torch.Tensor:
-        return model.encode_image(image, normalize=True)
+        output = model.encode_image(image, normalize=True)
+        assert isinstance(output, torch.Tensor)
+        return output
 
 
     args = (torch.randn(1, 3, model_cfg.image_size, model_cfg.image_size),)
     args = (torch.randn(1, 3, model_cfg.image_size, model_cfg.image_size),)
-    traced = torch.jit.trace(encode_image, args)
+    traced = torch.jit.trace(encode_image, args)  # type: ignore[no-untyped-call]
 
 
     with warnings.catch_warnings():
     with warnings.catch_warnings():
         warnings.simplefilter("ignore", UserWarning)
         warnings.simplefilter("ignore", UserWarning)
@@ -91,10 +94,12 @@ def export_text_encoder(model: open_clip.CLIP, model_cfg: OpenCLIPModelConfig, o
     output_path = Path(output_path)
     output_path = Path(output_path)
 
 
     def encode_text(text: torch.Tensor) -> torch.Tensor:
     def encode_text(text: torch.Tensor) -> torch.Tensor:
-        return model.encode_text(text, normalize=True)
+        output = model.encode_text(text, normalize=True)
+        assert isinstance(output, torch.Tensor)
+        return output
 
 
     args = (torch.ones(1, model_cfg.sequence_length, dtype=torch.int32),)
     args = (torch.ones(1, model_cfg.sequence_length, dtype=torch.int32),)
-    traced = torch.jit.trace(encode_text, args)
+    traced = torch.jit.trace(encode_text, args)  # type: ignore[no-untyped-call]
 
 
     with warnings.catch_warnings():
     with warnings.catch_warnings():
         warnings.simplefilter("ignore", UserWarning)
         warnings.simplefilter("ignore", UserWarning)

+ 1 - 1
machine-learning/pyproject.toml

@@ -1,6 +1,6 @@
 [tool.poetry]
 [tool.poetry]
 name = "machine-learning"
 name = "machine-learning"
-version = "1.85.0"
+version = "1.87.0"
 description = ""
 description = ""
 authors = ["Hau Tran <alex.tran1502@gmail.com>"]
 authors = ["Hau Tran <alex.tran1502@gmail.com>"]
 readme = "README.md"
 readme = "README.md"

+ 52 - 0
mobile/analysis_options.yaml

@@ -36,3 +36,55 @@ analyzer:
     - openapi/
     - openapi/
     - openapi/test/
     - openapi/test/
     - lib/generated_plugin_registrant.dart
     - lib/generated_plugin_registrant.dart
+
+dart_code_metrics:
+  metrics:
+    cyclomatic-complexity: 20
+    number-of-parameters: 4
+    maximum-nesting-level: 5
+  rules:
+    # Common
+    - avoid-accessing-collections-by-constant-index
+    - avoid-accessing-other-classes-private-members
+    - avoid-async-call-in-sync-function
+    - avoid-cascade-after-if-null
+    - avoid-collapsible-if
+    - avoid-collection-methods-with-unrelated-types
+    - avoid-declaring-call-method
+    - avoid-double-slash-imports
+    - avoid-duplicate-cascades
+    - avoid-duplicate-patterns
+    - avoid-generics-shadowing
+    - avoid-global-state
+    # Flutter
+    - add-copy-with:
+        file-name-pattern: '.model.dart'
+    - always-remove-listener
+    - avoid-border-all
+    - avoid-empty-setstate
+    - avoid-expanded-as-spacer
+    - avoid-incomplete-copy-with
+    - avoid-inherited-widget-in-initstate
+    - avoid-late-context
+    - avoid-recursive-widget-calls
+    - avoid-returning-widgets
+    - avoid-shrink-wrap-in-lists
+    - avoid-single-child-column-or-row
+    - avoid-state-constructors
+    - avoid-stateless-widget-initialized-fields
+    - avoid-unnecessary-overrides-in-state
+    - avoid-unnecessary-stateful-widgets
+    - avoid-wrapping-in-padding
+    - dispose-fields
+    - prefer-const-border-radius
+    - prefer-correct-edge-insets-constructor
+    - prefer-dedicated-media-query-methods
+    - prefer-define-hero-tag
+    - prefer-extracting-callbacks
+    - prefer-single-widget-per-file:
+        ignore-private-widgets: true
+    - prefer-sliver-prefix
+    - prefer-text-rich
+    - prefer-using-list-view
+    - proper-super-calls
+    - use-setstate-synchronously

+ 2 - 2
mobile/android/fastlane/Fastfile

@@ -35,8 +35,8 @@ platform :android do
       task: 'bundle', 
       task: 'bundle', 
       build_type: 'Release',
       build_type: 'Release',
       properties: {
       properties: {
-        "android.injected.version.code" => 109,
-        "android.injected.version.name" => "1.85.0",
+        "android.injected.version.code" => 111,
+        "android.injected.version.name" => "1.87.0",
       }
       }
     )
     )
     upload_to_play_store(skip_upload_apk: true, skip_upload_images: true, skip_upload_screenshots: true, aab: '../build/app/outputs/bundle/release/app-release.aab')
     upload_to_play_store(skip_upload_apk: true, skip_upload_images: true, skip_upload_screenshots: true, aab: '../build/app/outputs/bundle/release/app-release.aab')

+ 3 - 3
mobile/android/fastlane/report.xml

@@ -5,17 +5,17 @@
     
     
     
     
       
       
-      <testcase classname="fastlane.lanes" name="0: default_platform" time="0.000244">
+      <testcase classname="fastlane.lanes" name="0: default_platform" time="0.000219">
         
         
       </testcase>
       </testcase>
     
     
       
       
-      <testcase classname="fastlane.lanes" name="1: bundleRelease" time="67.0562">
+      <testcase classname="fastlane.lanes" name="1: bundleRelease" time="67.071569">
         
         
       </testcase>
       </testcase>
     
     
       
       
-      <testcase classname="fastlane.lanes" name="2: upload_to_play_store" time="33.087498">
+      <testcase classname="fastlane.lanes" name="2: upload_to_play_store" time="29.991184">
         
         
       </testcase>
       </testcase>
     
     

+ 24 - 0
mobile/assets/i18n/ca.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Error al modificar el títol de l'àlbum",
   "album_viewer_appbar_share_err_title": "Error al modificar el títol de l'àlbum",
   "album_viewer_appbar_share_leave": "Surt de l'àlbum",
   "album_viewer_appbar_share_leave": "Surt de l'àlbum",
   "album_viewer_appbar_share_remove": "Treu de l'àlbum",
   "album_viewer_appbar_share_remove": "Treu de l'àlbum",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Afegeix usuaris",
   "album_viewer_page_share_add_users": "Afegeix usuaris",
   "all_people_page_title": "Persones",
   "all_people_page_title": "Persones",
   "all_videos_page_title": "Vídeos",
   "all_videos_page_title": "Vídeos",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "No s'ha trobat res arxivat",
   "archive_page_no_archived_assets": "No s'ha trobat res arxivat",
   "archive_page_title": "Arxiu({})",
   "archive_page_title": "Arxiu({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Ús de memòria cau",
   "cache_settings_statistics_title": "Ús de memòria cau",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Configuració de la memòria cau",
   "cache_settings_title": "Configuració de la memòria cau",
   "change_password_form_confirm_password": "Confirma la contrasenya",
   "change_password_form_confirm_password": "Confirma la contrasenya",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Building the timeline",
   "home_page_building_timeline": "Building the timeline",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_success": "Download Success",
   "image_viewer_page_state_provider_download_success": "Download Success",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_title": "Company",
   "partner_page_title": "Company",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_go_to_settings": "Go to settings",
   "permission_onboarding_go_to_settings": "Go to settings",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Settings",
   "profile_drawer_settings": "Settings",
   "profile_drawer_sign_out": "Tanca la sessió",
   "profile_drawer_sign_out": "Tanca la sessió",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Error al crear l'àlbum",
   "select_user_for_sharing_page_err_album": "Error al crear l'àlbum",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "server_info_box_app_version": "Versió de l'aplicació",
   "server_info_box_app_version": "Versió de l'aplicació",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Versió del servidor",
   "server_info_box_server_version": "Versió del servidor",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
@@ -300,6 +315,12 @@
   "share_add_photos": "Afegeix fotografies",
   "share_add_photos": "Afegeix fotografies",
   "share_add_title": "Afegeix un títol",
   "share_add_title": "Afegeix un títol",
   "share_create_album": "Crea un àlbum",
   "share_create_album": "Crea un àlbum",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Preparing...",
   "share_dialog_preparing": "Preparing...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 75 - 51
mobile/assets/i18n/cs-CZ.json

@@ -13,7 +13,7 @@
   "album_info_card_backup_album_included": "ZAHRNUTO",
   "album_info_card_backup_album_included": "ZAHRNUTO",
   "album_thumbnail_card_item": "1 položka",
   "album_thumbnail_card_item": "1 položka",
   "album_thumbnail_card_items": "{} položek",
   "album_thumbnail_card_items": "{} položek",
-  "album_thumbnail_card_shared": "Sdíleno",
+  "album_thumbnail_card_shared": " · Sdíleno",
   "album_thumbnail_owned": "Vlastní",
   "album_thumbnail_owned": "Vlastní",
   "album_thumbnail_shared_by": "Sdílel(a) {}",
   "album_thumbnail_shared_by": "Sdílel(a) {}",
   "album_viewer_appbar_share_delete": "Odstranit album",
   "album_viewer_appbar_share_delete": "Odstranit album",
@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Nepodařilo se změnit název alba",
   "album_viewer_appbar_share_err_title": "Nepodařilo se změnit název alba",
   "album_viewer_appbar_share_leave": "Opustit album",
   "album_viewer_appbar_share_leave": "Opustit album",
   "album_viewer_appbar_share_remove": "Odstranit z alba",
   "album_viewer_appbar_share_remove": "Odstranit z alba",
+  "album_viewer_appbar_share_to": "Sdílet na",
   "album_viewer_page_share_add_users": "Přidat uživatele",
   "album_viewer_page_share_add_users": "Přidat uživatele",
   "all_people_page_title": "Lidé",
   "all_people_page_title": "Lidé",
   "all_videos_page_title": "Videa",
   "all_videos_page_title": "Videa",
+  "app_bar_signout_dialog_content": "Určitě se chcete odhlásit?",
+  "app_bar_signout_dialog_ok": "Ano",
+  "app_bar_signout_dialog_title": "Odhlásit se",
   "archive_page_no_archived_assets": "Nebyla nalezena žádná archivovaná média",
   "archive_page_no_archived_assets": "Nebyla nalezena žádná archivovaná média",
   "archive_page_title": "Archív ({})",
   "archive_page_title": "Archív ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamické rozložení",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamické rozložení",
@@ -44,11 +48,11 @@
   "backup_all": "Vše",
   "backup_all": "Vše",
   "backup_background_service_backup_failed_message": "Zálohování médií selhalo. Zkouším to znovu...",
   "backup_background_service_backup_failed_message": "Zálohování médií selhalo. Zkouším to znovu...",
   "backup_background_service_connection_failed_message": "Nepodařilo se připojit k serveru. Zkouším to znovu...",
   "backup_background_service_connection_failed_message": "Nepodařilo se připojit k serveru. Zkouším to znovu...",
-  "backup_background_service_current_upload_notification": "Zálohování {}",
+  "backup_background_service_current_upload_notification": "Nahrávání {}",
   "backup_background_service_default_notification": "Kontrola nových médií…",
   "backup_background_service_default_notification": "Kontrola nových médií…",
   "backup_background_service_error_title": "Chyba zálohování",
   "backup_background_service_error_title": "Chyba zálohování",
   "backup_background_service_in_progress_notification": "Zálohování vašich médií...",
   "backup_background_service_in_progress_notification": "Zálohování vašich médií...",
-  "backup_background_service_upload_failure_notification": "Nepodařilo se zálohovat {}",
+  "backup_background_service_upload_failure_notification": "Nepodařilo se nahrát {}",
   "backup_controller_page_albums": "Zálohovaná alba",
   "backup_controller_page_albums": "Zálohovaná alba",
   "backup_controller_page_background_app_refresh_disabled_content": "Povolte obnovení aplikace na pozadí v Nastavení > Obecné > Obnovení aplikace na pozadí, abyste mohli používat zálohování na pozadí.",
   "backup_controller_page_background_app_refresh_disabled_content": "Povolte obnovení aplikace na pozadí v Nastavení > Obecné > Obnovení aplikace na pozadí, abyste mohli používat zálohování na pozadí.",
   "backup_controller_page_background_app_refresh_disabled_title": " Obnovování aplikací na pozadí je vypnuté",
   "backup_controller_page_background_app_refresh_disabled_title": " Obnovování aplikací na pozadí je vypnuté",
@@ -91,14 +95,14 @@
   "backup_controller_page_total_sub": "Všechny jedinečné fotografie a videa z vybraných alb",
   "backup_controller_page_total_sub": "Všechny jedinečné fotografie a videa z vybraných alb",
   "backup_controller_page_turn_off": "Vypnout zálohování na popředí",
   "backup_controller_page_turn_off": "Vypnout zálohování na popředí",
   "backup_controller_page_turn_on": "Povolit zálohování na popředí",
   "backup_controller_page_turn_on": "Povolit zálohování na popředí",
-  "backup_controller_page_uploading_file_info": "Informace o zálohovaném souboru",
+  "backup_controller_page_uploading_file_info": "Informace o nahraném souboru",
   "backup_err_only_album": "Nelze odstranit jediné vybrané album",
   "backup_err_only_album": "Nelze odstranit jediné vybrané album",
   "backup_info_card_assets": "položek",
   "backup_info_card_assets": "položek",
   "backup_manual_cancelled": "Zrušeno",
   "backup_manual_cancelled": "Zrušeno",
   "backup_manual_failed": "Selhalo",
   "backup_manual_failed": "Selhalo",
-  "backup_manual_in_progress": "Zálohování již probíhá. Zkuste to znovu později",
+  "backup_manual_in_progress": "Nahrávání již probíhá. Zkuste to znovu později",
   "backup_manual_success": "Úspěch",
   "backup_manual_success": "Úspěch",
-  "backup_manual_title": "Stav zálohování",
+  "backup_manual_title": "Stav nahrávání",
   "cache_settings_album_thumbnails": "Náhledy stránek knihovny (položek {})",
   "cache_settings_album_thumbnails": "Náhledy stránek knihovny (položek {})",
   "cache_settings_clear_cache_button": "Vymazat vyrovnávací paměť",
   "cache_settings_clear_cache_button": "Vymazat vyrovnávací paměť",
   "cache_settings_clear_cache_button_title": "Vymaže vyrovnávací paměť aplikace. To výrazně ovlivní výkon aplikace, dokud se vyrovnávací paměť neobnoví.",
   "cache_settings_clear_cache_button_title": "Vymaže vyrovnávací paměť aplikace. To výrazně ovlivní výkon aplikace, dokud se vyrovnávací paměť neobnoví.",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Použití vyrovnávací paměti",
   "cache_settings_statistics_title": "Použití vyrovnávací paměti",
   "cache_settings_subtitle": "Ovládání chování mobilní aplikace Immich v mezipaměti",
   "cache_settings_subtitle": "Ovládání chování mobilní aplikace Immich v mezipaměti",
   "cache_settings_thumbnail_size": "Velikost vyrovnávací paměti náhledů (položek {})",
   "cache_settings_thumbnail_size": "Velikost vyrovnávací paměti náhledů (položek {})",
+  "cache_settings_tile_subtitle": "Ovládání chování místního úložiště",
+  "cache_settings_tile_title": "Místní úložiště",
   "cache_settings_title": "Nastavení vyrovnávací paměti",
   "cache_settings_title": "Nastavení vyrovnávací paměti",
   "change_password_form_confirm_password": "Potvrďte heslo",
   "change_password_form_confirm_password": "Potvrďte heslo",
   "change_password_form_description": "Dobrý den, {firstName} {lastName},\n\nje to buď poprvé, co se přihlašujete do systému, nebo byl vytvořen požadavek na změnu hesla. Níže zadejte nové heslo.",
   "change_password_form_description": "Dobrý den, {firstName} {lastName},\n\nje to buď poprvé, co se přihlašujete do systému, nebo byl vytvořen požadavek na změnu hesla. Níže zadejte nové heslo.",
@@ -130,10 +136,10 @@
   "control_bottom_app_bar_delete": "Vymazat",
   "control_bottom_app_bar_delete": "Vymazat",
   "control_bottom_app_bar_favorite": "Oblíbené",
   "control_bottom_app_bar_favorite": "Oblíbené",
   "control_bottom_app_bar_share": "Sdílet",
   "control_bottom_app_bar_share": "Sdílet",
-  "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_share_to": "Sdílet v",
+  "control_bottom_app_bar_stack": "Zásobník",
   "control_bottom_app_bar_unarchive": "Odarchivovat",
   "control_bottom_app_bar_unarchive": "Odarchivovat",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Nahrát",
   "create_album_page_untitled": "Bez názvu",
   "create_album_page_untitled": "Bez názvu",
   "create_shared_album_page_create": "Vytvořit",
   "create_shared_album_page_create": "Vytvořit",
   "create_shared_album_page_share": "Sdílet",
   "create_shared_album_page_share": "Sdílet",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "Zrušit",
   "delete_dialog_cancel": "Zrušit",
   "delete_dialog_ok": "Vymazat",
   "delete_dialog_ok": "Vymazat",
   "delete_dialog_title": "Vymazat trvale",
   "delete_dialog_title": "Vymazat trvale",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Opravdu chcete tento odkaz ke sdílení odstranit?",
+  "delete_shared_link_dialog_title": "Odstranit sdílený odkaz",
   "description_input_hint_text": "Přidat popis...",
   "description_input_hint_text": "Přidat popis...",
   "description_input_submit_error": "Chyba aktualizace popisu, další podrobnosti najdete v logu",
   "description_input_submit_error": "Chyba aktualizace popisu, další podrobnosti najdete v logu",
   "exif_bottom_sheet_description": "Přidat popis...",
   "exif_bottom_sheet_description": "Přidat popis...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "Přidáno {added} položek do alba {album}. {failed} položek již je v albu.",
   "home_page_add_to_album_conflicts": "Přidáno {added} položek do alba {album}. {failed} položek již je v albu.",
   "home_page_add_to_album_err_local": "Zatím není možné přidat lokální média do alb, přeskakuji",
   "home_page_add_to_album_err_local": "Zatím není možné přidat lokální média do alb, přeskakuji",
   "home_page_add_to_album_success": "Přidány položky {added} do alba {album}.",
   "home_page_add_to_album_success": "Přidány položky {added} do alba {album}.",
+  "home_page_album_err_partner": "Položky partnera nelze zatím přidat do alba, přeskakuji",
   "home_page_archive_err_local": "Zatím nemohu archivovat lokální média, přeskakuji",
   "home_page_archive_err_local": "Zatím nemohu archivovat lokální média, přeskakuji",
+  "home_page_archive_err_partner": "Položky partnera nelze archivovat, přeskakuji",
   "home_page_building_timeline": "Vytváření časové osy",
   "home_page_building_timeline": "Vytváření časové osy",
+  "home_page_delete_err_partner": "Položky partnera nelze odstranit, přeskakuji",
   "home_page_favorite_err_local": "Zatím není možné zařadit lokální média mezi oblíbená, přeskakuji",
   "home_page_favorite_err_local": "Zatím není možné zařadit lokální média mezi oblíbená, přeskakuji",
+  "home_page_favorite_err_partner": "Položky partnera nelze označit jako oblíbené, přeskakuji",
   "home_page_first_time_notice": "Pokud aplikaci používáte poprvé, nezapomeňte si vybrat zálohovaná alba, aby se na časové ose mohly nacházet fotografie a videa z vybraných alb.",
   "home_page_first_time_notice": "Pokud aplikaci používáte poprvé, nezapomeňte si vybrat zálohovaná alba, aby se na časové ose mohly nacházet fotografie a videa z vybraných alb.",
-  "home_page_upload_err_limit": "Lze zálohovat nejvýše 30 položek najednou, přeskakuji",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
+  "home_page_upload_err_limit": "Lze nahrát nejvýše 30 položek najednou, přeskakuji",
   "image_viewer_page_state_provider_download_error": "Chyba stahování",
   "image_viewer_page_state_provider_download_error": "Chyba stahování",
   "image_viewer_page_state_provider_download_success": "Stahování bylo úspěšné",
   "image_viewer_page_state_provider_download_success": "Stahování bylo úspěšné",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Chyba sdílení",
   "library_page_albums": "Alba",
   "library_page_albums": "Alba",
   "library_page_archive": "Archív",
   "library_page_archive": "Archív",
   "library_page_device_albums": "Alba v zařízení",
   "library_page_device_albums": "Alba v zařízení",
@@ -179,8 +190,8 @@
   "library_page_new_album": "Nové album",
   "library_page_new_album": "Nové album",
   "library_page_sharing": "Sdílení",
   "library_page_sharing": "Sdílení",
   "library_page_sort_created": "Naposledy vytvořené",
   "library_page_sort_created": "Naposledy vytvořené",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Naposledy upraveno",
+  "library_page_sort_most_recent_photo": "Nejnovější fotografie",
   "library_page_sort_title": "Podle názvu alba",
   "library_page_sort_title": "Podle názvu alba",
   "login_disabled": "Přihlášení bylo zakázáno",
   "login_disabled": "Přihlášení bylo zakázáno",
   "login_form_api_exception": "Výjimka API. Zkontrolujte URL serveru a zkuste to znovu.",
   "login_form_api_exception": "Výjimka API. Zkontrolujte URL serveru a zkuste to znovu.",
@@ -218,7 +229,7 @@
   "map_settings_dialog_cancel": "Zrušit",
   "map_settings_dialog_cancel": "Zrušit",
   "map_settings_dialog_save": "Uložit",
   "map_settings_dialog_save": "Uložit",
   "map_settings_dialog_title": "Nastavení map",
   "map_settings_dialog_title": "Nastavení map",
-  "map_settings_include_show_archived": "Include Archived",
+  "map_settings_include_show_archived": "Zahrnout archivované",
   "map_settings_only_relative_range": "Rozsah data",
   "map_settings_only_relative_range": "Rozsah data",
   "map_settings_only_show_favorites": "Zobrazit pouze oblíbené",
   "map_settings_only_show_favorites": "Zobrazit pouze oblíbené",
   "map_zoom_to_see_photos": "Oddálit pro zobrazení fotografií",
   "map_zoom_to_see_photos": "Oddálit pro zobrazení fotografií",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} již nebude mít přístup k vašim fotografiím.",
   "partner_page_stop_sharing_content": "{} již nebude mít přístup k vašim fotografiím.",
   "partner_page_stop_sharing_title": "Přestat sdílet vaše fotografie?",
   "partner_page_stop_sharing_title": "Přestat sdílet vaše fotografie?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Přesto pokračovat",
   "permission_onboarding_continue_anyway": "Přesto pokračovat",
   "permission_onboarding_get_started": "Začít",
   "permission_onboarding_get_started": "Začít",
   "permission_onboarding_go_to_settings": "Přejít do nastavení",
   "permission_onboarding_go_to_settings": "Přejít do nastavení",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich potřebuje přístup k zobrazení vašich fotek a videí.",
   "permission_onboarding_request": "Immich potřebuje přístup k zobrazení vašich fotek a videí.",
   "profile_drawer_app_logs": "Logy",
   "profile_drawer_app_logs": "Logy",
   "profile_drawer_client_server_up_to_date": "Klient a server jsou aktuální",
   "profile_drawer_client_server_up_to_date": "Klient a server jsou aktuální",
+  "profile_drawer_documentation": "Dokumentace",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Nastavení",
   "profile_drawer_settings": "Nastavení",
   "profile_drawer_sign_out": "Odhlásit se",
   "profile_drawer_sign_out": "Odhlásit se",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Vyhodit",
   "recently_added_page_title": "Nedávno přidané",
   "recently_added_page_title": "Nedávno přidané",
   "search_bar_hint": "Prohledejte své fotky",
   "search_bar_hint": "Prohledejte své fotky",
   "search_page_categories": "Kategorie",
   "search_page_categories": "Kategorie",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Nepodařilo se vytvořit album",
   "select_user_for_sharing_page_err_album": "Nepodařilo se vytvořit album",
   "select_user_for_sharing_page_share_suggestions": "Návrhy",
   "select_user_for_sharing_page_share_suggestions": "Návrhy",
   "server_info_box_app_version": "Verze aplikace",
   "server_info_box_app_version": "Verze aplikace",
+  "server_info_box_server_url": "URL serveru",
   "server_info_box_server_version": "Verze serveru",
   "server_info_box_server_version": "Verze serveru",
   "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_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ý!). Zakázat pro snížení využití dat (v síti i v mezipaměti zařízení).",
   "setting_image_viewer_original_subtitle": "Umožňuje načíst původní obrázek v plném rozlišení (velký!). Zakázat pro snížení využití dat (v síti i v mezipaměti zařízení).",
@@ -288,11 +303,11 @@
   "setting_notifications_notify_minutes": "{} minut",
   "setting_notifications_notify_minutes": "{} minut",
   "setting_notifications_notify_never": "nikdy",
   "setting_notifications_notify_never": "nikdy",
   "setting_notifications_notify_seconds": "{} sekundy",
   "setting_notifications_notify_seconds": "{} sekundy",
-  "setting_notifications_single_progress_subtitle": "Podrobné informace o průběhu zálohování položky",
+  "setting_notifications_single_progress_subtitle": "Podrobné informace o průběhu nahrávání položky",
   "setting_notifications_single_progress_title": "Zobrazit průběh detailů zálohování na pozadí",
   "setting_notifications_single_progress_title": "Zobrazit průběh detailů zálohování na pozadí",
   "setting_notifications_subtitle": "Přizpůsobení předvoleb oznámení",
   "setting_notifications_subtitle": "Přizpůsobení předvoleb oznámení",
   "setting_notifications_title": "Oznámení",
   "setting_notifications_title": "Oznámení",
-  "setting_notifications_total_progress_subtitle": "Celkový průběh zálohování (hotovo/celkově)",
+  "setting_notifications_total_progress_subtitle": "Celkový průběh nahrání (hotovo/celkově)",
   "setting_notifications_total_progress_title": "Zobrazit celkový průběh zálohování na pozadí",
   "setting_notifications_total_progress_title": "Zobrazit celkový průběh zálohování na pozadí",
   "setting_pages_app_bar_settings": "Nastavení",
   "setting_pages_app_bar_settings": "Nastavení",
   "settings_require_restart": "Pro použití tohoto nastavení restartujte Immich",
   "settings_require_restart": "Pro použití tohoto nastavení restartujte Immich",
@@ -300,28 +315,37 @@
   "share_add_photos": "Přidat fotografie",
   "share_add_photos": "Přidat fotografie",
   "share_add_title": "Přidat název",
   "share_add_title": "Přidat název",
   "share_create_album": "Vytvořit album",
   "share_create_album": "Vytvořit album",
+  "shared_album_activities_input_disable": "Komentář je vypnutý",
+  "shared_album_activities_input_hint": "Řekněte něco",
+  "shared_album_activity_remove_content": "Chcete odstranit tuto aktivitu?",
+  "shared_album_activity_remove_title": "Odstranit aktivitu",
+  "shared_album_activity_setting_subtitle": "Nechte ostatní reagovat",
+  "shared_album_activity_setting_title": "Komentáře a lajky",
   "share_dialog_preparing": "Připravuji...",
   "share_dialog_preparing": "Připravuji...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Sdílené odkazy",
+  "shared_link_create_app_bar_title": "Vytvořit odkaz pro sdílení",
+  "shared_link_create_info": "Umožnit každému, kdo má odkaz, zobrazit vybrané fotografie",
+  "shared_link_create_submit_button": "Vytvořit odkaz",
+  "shared_link_edit_allow_download": "Povolit veřejným uživatelům stahovat",
+  "shared_link_edit_allow_upload": "Povolit veřejným uživatelům nahrávat",
+  "shared_link_edit_app_bar_title": "Upravit odkaz",
+  "shared_link_edit_change_expiry": "Změnit dobu platnosti",
+  "shared_link_edit_description": "Popis",
+  "shared_link_edit_description_hint": "Zadejte popis sdílení",
+  "shared_link_edit_expire_after": "Platnost vyprší po",
+  "shared_link_edit_password": "Heslo",
+  "shared_link_edit_password_hint": "Zadejte heslo pro sdílení",
+  "shared_link_edit_show_meta": "Zobrazit metadata",
+  "shared_link_edit_submit_button": "Aktualizovat odkaz",
+  "shared_link_empty": "Nemáte žádné sdílené odkazy",
+  "shared_link_manage_links": "Spravovat sdílené odkazy",
+  "share_done": "Hotovo",
   "share_invite": "Pozvat do alba",
   "share_invite": "Pozvat do alba",
   "sharing_page_album": "Sdílená alba",
   "sharing_page_album": "Sdílená alba",
   "sharing_page_description": "Vytvářejte sdílená alba a sdílejte fotografie a videa s lidmi ve vaší síti.",
   "sharing_page_description": "Vytvářejte sdílená alba a sdílejte fotografie a videa s lidmi ve vaší síti.",
   "sharing_page_empty_list": "PRÁZDNÝ SEZNAM",
   "sharing_page_empty_list": "PRÁZDNÝ SEZNAM",
   "sharing_silver_appbar_create_shared_album": "Vytvořit sdílené album",
   "sharing_silver_appbar_create_shared_album": "Vytvořit sdílené album",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Sdílené odkazy",
   "sharing_silver_appbar_share_partner": "Sdílet s partnerem",
   "sharing_silver_appbar_share_partner": "Sdílet s partnerem",
   "tab_controller_nav_library": "Knihovna",
   "tab_controller_nav_library": "Knihovna",
   "tab_controller_nav_photos": "Fotografie",
   "tab_controller_nav_photos": "Fotografie",
@@ -338,29 +362,29 @@
   "theme_setting_three_stage_loading_subtitle": "Třístupňové načítání může zvýšit výkonnost načítání, ale vede k výrazně vyššímu zatížení sítě.",
   "theme_setting_three_stage_loading_subtitle": "Třístupňové načítání může zvýšit výkonnost načítání, ale vede k výrazně vyššímu zatížení sítě.",
   "theme_setting_three_stage_loading_title": "Povolení třístupňového načítání",
   "theme_setting_three_stage_loading_title": "Povolení třístupňového načítání",
   "translated_text_options": "Možnosti",
   "translated_text_options": "Možnosti",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
+  "trash_page_delete": "Smazat",
+  "trash_page_delete_all": "Smazat všechny",
+  "trash_page_empty_trash_btn": "Vysypat koš",
+  "trash_page_empty_trash_dialog_content": "Chcete vyprázdnit svoje vyhozené položky? Tyto položky budou trvale odstraněny z aplikace",
   "trash_page_empty_trash_dialog_ok": "Ok",
   "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
+  "trash_page_info": "Vyhozené položky budou trvale odstraněny po {} dnech",
+  "trash_page_no_assets": "Žádné vyhozené položky",
+  "trash_page_restore": "Obnovit",
+  "trash_page_restore_all": "Obnovit všechny",
+  "trash_page_select_assets_btn": "Vybrat položky",
+  "trash_page_select_btn": "Vybrat",
+  "trash_page_title": "Koš ({})",
   "upload_dialog_cancel": "Zrušit",
   "upload_dialog_cancel": "Zrušit",
   "upload_dialog_info": "Chcete zálohovat vybrané položky na server?",
   "upload_dialog_info": "Chcete zálohovat vybrané položky na server?",
-  "upload_dialog_ok": "Zálohovat",
-  "upload_dialog_title": "Zálohovat položku",
+  "upload_dialog_ok": "Nahrát",
+  "upload_dialog_title": "Nahrát položku",
   "version_announcement_overlay_ack": "Potvrdit",
   "version_announcement_overlay_ack": "Potvrdit",
   "version_announcement_overlay_release_notes": "poznámky k vydání",
   "version_announcement_overlay_release_notes": "poznámky k vydání",
   "version_announcement_overlay_text_1": "Ahoj, k dispozici je nová verze",
   "version_announcement_overlay_text_1": "Ahoj, k dispozici je nová verze",
   "version_announcement_overlay_text_2": "najděte si čas na návštěvu ",
   "version_announcement_overlay_text_2": "najděte si čas na návštěvu ",
   "version_announcement_overlay_text_3": " a ujistěte se, že vaše konfigurace docker-compose a .env je aktuální, abyste předešli nesprávné konfiguraci, zvláště pokud používáte WatchTower nebo jakýkoli mechanismus, který podporuje automatické aktualizace serverových aplikací.",
   "version_announcement_overlay_text_3": " a ujistěte se, že vaše konfigurace docker-compose a .env je aktuální, abyste předešli nesprávné konfiguraci, zvláště pokud používáte WatchTower nebo jakýkoli mechanismus, který podporuje automatické aktualizace serverových aplikací.",
   "version_announcement_overlay_title": "K dispozici je nová verze serveru \uD83C\uDF89",
   "version_announcement_overlay_title": "K dispozici je nová verze serveru \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Odstranit ze zásobníku",
+  "viewer_stack_use_as_main_asset": "Použít jako hlavní položku",
+  "viewer_unstack": "Rozbalit zásobník"
 }
 }

+ 63 - 39
mobile/assets/i18n/da-DK.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Fejlede i at ændre albumtitel",
   "album_viewer_appbar_share_err_title": "Fejlede i at ændre albumtitel",
   "album_viewer_appbar_share_leave": "Forlad album",
   "album_viewer_appbar_share_leave": "Forlad album",
   "album_viewer_appbar_share_remove": "Fjern fra album",
   "album_viewer_appbar_share_remove": "Fjern fra album",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Tilføj brugere",
   "album_viewer_page_share_add_users": "Tilføj brugere",
   "all_people_page_title": "Personer",
   "all_people_page_title": "Personer",
   "all_videos_page_title": "Videoer",
   "all_videos_page_title": "Videoer",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "Ingen arkiverede elementer blev fundet",
   "archive_page_no_archived_assets": "Ingen arkiverede elementer blev fundet",
   "archive_page_title": "Arkivér ({})",
   "archive_page_title": "Arkivér ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamisk layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamisk layout",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Cacheforbrug",
   "cache_settings_statistics_title": "Cacheforbrug",
   "cache_settings_subtitle": "Håndter cache-adfærden for Immich-appen.",
   "cache_settings_subtitle": "Håndter cache-adfærden for Immich-appen.",
   "cache_settings_thumbnail_size": "Størrelse af miniaturebillede cache ({} elementer)",
   "cache_settings_thumbnail_size": "Størrelse af miniaturebillede cache ({} elementer)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Cache-indstillinger",
   "cache_settings_title": "Cache-indstillinger",
   "change_password_form_confirm_password": "Bekræft kodeord",
   "change_password_form_confirm_password": "Bekræft kodeord",
   "change_password_form_description": "Hej {firstName} {lastName},\n\nDette er enten første gang du logger ind eller også er der lavet en anmodning om at ændre dit kodeord. Indtast venligst et nyt kodeord nedenfor.",
   "change_password_form_description": "Hej {firstName} {lastName},\n\nDette er enten første gang du logger ind eller også er der lavet en anmodning om at ændre dit kodeord. Indtast venligst et nyt kodeord nedenfor.",
@@ -130,8 +136,8 @@
   "control_bottom_app_bar_delete": "Slet",
   "control_bottom_app_bar_delete": "Slet",
   "control_bottom_app_bar_favorite": "Favorit",
   "control_bottom_app_bar_favorite": "Favorit",
   "control_bottom_app_bar_share": "Del",
   "control_bottom_app_bar_share": "Del",
-  "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_share_to": "Del til",
+  "control_bottom_app_bar_stack": "Stak",
   "control_bottom_app_bar_unarchive": "Afakivér",
   "control_bottom_app_bar_unarchive": "Afakivér",
   "control_bottom_app_bar_upload": "Upload",
   "control_bottom_app_bar_upload": "Upload",
   "create_album_page_untitled": "Uden titel",
   "create_album_page_untitled": "Uden titel",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "Annuller",
   "delete_dialog_cancel": "Annuller",
   "delete_dialog_ok": "Slet",
   "delete_dialog_ok": "Slet",
   "delete_dialog_title": "Slet permanent",
   "delete_dialog_title": "Slet permanent",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Er du sikker på, du vil slette dette delte link?",
+  "delete_shared_link_dialog_title": "Slet delt link",
   "description_input_hint_text": "Tilføj en beskrivelse...",
   "description_input_hint_text": "Tilføj en beskrivelse...",
   "description_input_submit_error": "Fejl med at opdatere beskrivelsen. Tjek loggen for flere detaljer",
   "description_input_submit_error": "Fejl med at opdatere beskrivelsen. Tjek loggen for flere detaljer",
   "exif_bottom_sheet_description": "Tilføj beskrivelse...",
   "exif_bottom_sheet_description": "Tilføj beskrivelse...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "Tilføjede {added} elementer til album {album}. {failed} elementer er allerede i albummet.",
   "home_page_add_to_album_conflicts": "Tilføjede {added} elementer til album {album}. {failed} elementer er allerede i albummet.",
   "home_page_add_to_album_err_local": "Kan endnu ikke tilføje lokale elementer til album. Springer over..",
   "home_page_add_to_album_err_local": "Kan endnu ikke tilføje lokale elementer til album. Springer over..",
   "home_page_add_to_album_success": "Tilføjede {added} elementer til album {album}.",
   "home_page_add_to_album_success": "Tilføjede {added} elementer til album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Kan ikke arkivere lokalt element endnu.. Springer over",
   "home_page_archive_err_local": "Kan ikke arkivere lokalt element endnu.. Springer over",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Bygger tidslinjen",
   "home_page_building_timeline": "Bygger tidslinjen",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Kan endnu ikke gøre lokale elementer til favoritter. Springer over..",
   "home_page_favorite_err_local": "Kan endnu ikke gøre lokale elementer til favoritter. Springer over..",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Hvis det er din første gang i appen, bedes du vælge en sikkerhedskopi af albummer så tidlinjen kan blive fyldt med billeder og videoer fra albummerne.",
   "home_page_first_time_notice": "Hvis det er din første gang i appen, bedes du vælge en sikkerhedskopi af albummer så tidlinjen kan blive fyldt med billeder og videoer fra albummerne.",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Det er kun muligt at lave sikkerhedskopi af 30 elementer ad gangen. Springer over",
   "home_page_upload_err_limit": "Det er kun muligt at lave sikkerhedskopi af 30 elementer ad gangen. Springer over",
   "image_viewer_page_state_provider_download_error": "Fejl ved download",
   "image_viewer_page_state_provider_download_error": "Fejl ved download",
   "image_viewer_page_state_provider_download_success": "Download succesfuld",
   "image_viewer_page_state_provider_download_success": "Download succesfuld",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Delingsfejl",
   "library_page_albums": "Albummer",
   "library_page_albums": "Albummer",
   "library_page_archive": "Arkiv",
   "library_page_archive": "Arkiv",
   "library_page_device_albums": "Albummer på enhed",
   "library_page_device_albums": "Albummer på enhed",
@@ -179,8 +190,8 @@
   "library_page_new_album": "Nyt album",
   "library_page_new_album": "Nyt album",
   "library_page_sharing": "Delte",
   "library_page_sharing": "Delte",
   "library_page_sort_created": "Senest oprettet",
   "library_page_sort_created": "Senest oprettet",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Sidst redigeret",
+  "library_page_sort_most_recent_photo": "Seneste billede",
   "library_page_sort_title": "Albumtitel",
   "library_page_sort_title": "Albumtitel",
   "login_disabled": "Login er blevet deaktiveret",
   "login_disabled": "Login er blevet deaktiveret",
   "login_form_api_exception": "API-undtagelse. Tjek serverens URL og prøv igen. ",
   "login_form_api_exception": "API-undtagelse. Tjek serverens URL og prøv igen. ",
@@ -218,7 +229,7 @@
   "map_settings_dialog_cancel": "Annuller",
   "map_settings_dialog_cancel": "Annuller",
   "map_settings_dialog_save": "Gem",
   "map_settings_dialog_save": "Gem",
   "map_settings_dialog_title": "Kortindstillinger",
   "map_settings_dialog_title": "Kortindstillinger",
-  "map_settings_include_show_archived": "Include Archived",
+  "map_settings_include_show_archived": "Inkluder arkiveret",
   "map_settings_only_relative_range": "Datointerval",
   "map_settings_only_relative_range": "Datointerval",
   "map_settings_only_show_favorites": "Vis kun favoritter",
   "map_settings_only_show_favorites": "Vis kun favoritter",
   "map_zoom_to_see_photos": "Zoom ud for at vise billeder",
   "map_zoom_to_see_photos": "Zoom ud for at vise billeder",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} vil ikke længere have adgang til dine billeder.",
   "partner_page_stop_sharing_content": "{} vil ikke længere have adgang til dine billeder.",
   "partner_page_stop_sharing_title": "Stop med at dele dine billeder?",
   "partner_page_stop_sharing_title": "Stop med at dele dine billeder?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Fortsæt alligevel",
   "permission_onboarding_continue_anyway": "Fortsæt alligevel",
   "permission_onboarding_get_started": "Kom i gang",
   "permission_onboarding_get_started": "Kom i gang",
   "permission_onboarding_go_to_settings": "Gå til indstillinger",
   "permission_onboarding_go_to_settings": "Gå til indstillinger",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich kræver tilliadelse til at se dine billeder og videoer.",
   "permission_onboarding_request": "Immich kræver tilliadelse til at se dine billeder og videoer.",
   "profile_drawer_app_logs": "Log",
   "profile_drawer_app_logs": "Log",
   "profile_drawer_client_server_up_to_date": "Klient og server er ajour",
   "profile_drawer_client_server_up_to_date": "Klient og server er ajour",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Indstillinger",
   "profile_drawer_settings": "Indstillinger",
   "profile_drawer_sign_out": "Log ud",
   "profile_drawer_sign_out": "Log ud",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Papirkurv",
   "recently_added_page_title": "Nyligt tilføjet",
   "recently_added_page_title": "Nyligt tilføjet",
   "search_bar_hint": "Søg i dine billeder",
   "search_bar_hint": "Søg i dine billeder",
   "search_page_categories": "Kategorier",
   "search_page_categories": "Kategorier",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Fejlede i at oprette et nyt album",
   "select_user_for_sharing_page_err_album": "Fejlede i at oprette et nyt album",
   "select_user_for_sharing_page_share_suggestions": "Anbefalinger",
   "select_user_for_sharing_page_share_suggestions": "Anbefalinger",
   "server_info_box_app_version": "Applikationsversion",
   "server_info_box_app_version": "Applikationsversion",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Serverversion ",
   "server_info_box_server_version": "Serverversion ",
   "setting_image_viewer_help": "Detaljeret visning indlæser miniaturebilleder først. Herefter indlæses mediumstørrelse forhåndsvisning af billedet (hvis dette er slået til), for til sidst at vise originalen (hvis dette er slået til).",
   "setting_image_viewer_help": "Detaljeret visning indlæser miniaturebilleder først. Herefter indlæses mediumstørrelse forhåndsvisning af billedet (hvis dette er slået til), for til sidst at vise originalen (hvis dette er slået til).",
   "setting_image_viewer_original_subtitle": "Slå indlæsning af originalbillede i fuld størrelse til (stort!). Deaktiver for at reducere dataforbruget (både på netværket og for enhedscache).",
   "setting_image_viewer_original_subtitle": "Slå indlæsning af originalbillede i fuld størrelse til (stort!). Deaktiver for at reducere dataforbruget (både på netværket og for enhedscache).",
@@ -300,28 +315,37 @@
   "share_add_photos": "Tilføj billeder",
   "share_add_photos": "Tilføj billeder",
   "share_add_title": "Tilføj en titel",
   "share_add_title": "Tilføj en titel",
   "share_create_album": "Opret album",
   "share_create_album": "Opret album",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Forbereder...",
   "share_dialog_preparing": "Forbereder...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Delte links",
+  "shared_link_create_app_bar_title": "Opret link for at dele",
+  "shared_link_create_info": "Lad enhver med linket se de(t) valgte billede(r)",
+  "shared_link_create_submit_button": "Oprat link",
+  "shared_link_edit_allow_download": "Tillad at en offenlig bruger kan downloade",
+  "shared_link_edit_allow_upload": "Tillad at en offentlig bruger kan uploade",
+  "shared_link_edit_app_bar_title": "Rediger link",
+  "shared_link_edit_change_expiry": "Ændrer udløbstidspunkt",
+  "shared_link_edit_description": "Beskrivelse",
+  "shared_link_edit_description_hint": "Indtast beskrivelse",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
+  "shared_link_edit_show_meta": "Vis metadata",
+  "shared_link_edit_submit_button": "Opdater link",
+  "shared_link_empty": "Du har endnu ingen delte links",
+  "shared_link_manage_links": "Håndter delte links",
+  "share_done": "Færdig",
   "share_invite": "Inviter til album",
   "share_invite": "Inviter til album",
   "sharing_page_album": "Delt albums",
   "sharing_page_album": "Delt albums",
   "sharing_page_description": "Opret delte albummer for at dele billeder og video med personer på dit netværk.",
   "sharing_page_description": "Opret delte albummer for at dele billeder og video med personer på dit netværk.",
   "sharing_page_empty_list": "TOM LISTE",
   "sharing_page_empty_list": "TOM LISTE",
   "sharing_silver_appbar_create_shared_album": "Opret delt album",
   "sharing_silver_appbar_create_shared_album": "Opret delt album",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Delte links",
   "sharing_silver_appbar_share_partner": "Del med partner",
   "sharing_silver_appbar_share_partner": "Del med partner",
   "tab_controller_nav_library": "Bibliotek",
   "tab_controller_nav_library": "Bibliotek",
   "tab_controller_nav_photos": "Billeder",
   "tab_controller_nav_photos": "Billeder",
@@ -338,18 +362,18 @@
   "theme_setting_three_stage_loading_subtitle": "Tre-trins indlæsning kan øge ydeevnen, men kan ligeledes føre til højere netværksbelastning",
   "theme_setting_three_stage_loading_subtitle": "Tre-trins indlæsning kan øge ydeevnen, men kan ligeledes føre til højere netværksbelastning",
   "theme_setting_three_stage_loading_title": "Slå tre-trins indlæsning til",
   "theme_setting_three_stage_loading_title": "Slå tre-trins indlæsning til",
   "translated_text_options": "Handlinger",
   "translated_text_options": "Handlinger",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
+  "trash_page_delete": "Slet",
+  "trash_page_delete_all": "Slet alt",
+  "trash_page_empty_trash_btn": "Tøm papirkurv",
+  "trash_page_empty_trash_dialog_content": "Vil du tømme papirkurven? Disse elementer vil blive permanent fjernet fra Immich",
   "trash_page_empty_trash_dialog_ok": "Ok",
   "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
+  "trash_page_info": "Slettede elementer vil blive slettet permanent efter {} dage",
+  "trash_page_no_assets": "Ingen slettede elementer",
+  "trash_page_restore": "Gendan",
+  "trash_page_restore_all": "Gendan alt",
+  "trash_page_select_assets_btn": "Vælg elementer",
+  "trash_page_select_btn": "Vælg",
+  "trash_page_title": "Papirkurv ({})",
   "upload_dialog_cancel": "Annuller",
   "upload_dialog_cancel": "Annuller",
   "upload_dialog_info": "Vil du sikkerhedskopiere de(t) valgte element(er) til serveren?",
   "upload_dialog_info": "Vil du sikkerhedskopiere de(t) valgte element(er) til serveren?",
   "upload_dialog_ok": "Upload",
   "upload_dialog_ok": "Upload",
@@ -360,7 +384,7 @@
   "version_announcement_overlay_text_2": ". Besøg venligst ",
   "version_announcement_overlay_text_2": ". Besøg venligst ",
   "version_announcement_overlay_text_3": " for at sikre dig, at din dockercompose- og .env-fil er opdateret, så der undgås fejlkonfiguration, specielt hvis du bruger WatchTower eller lignede.",
   "version_announcement_overlay_text_3": " for at sikre dig, at din dockercompose- og .env-fil er opdateret, så der undgås fejlkonfiguration, specielt hvis du bruger WatchTower eller lignede.",
   "version_announcement_overlay_title": "Ny serverversion er tilgængelig \uD83C\uDF89",
   "version_announcement_overlay_title": "Ny serverversion er tilgængelig \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Fjern fra stak",
+  "viewer_stack_use_as_main_asset": "Brug som hovedelement",
+  "viewer_unstack": "Fjern fra stak"
 }
 }

+ 134 - 110
mobile/assets/i18n/de-DE.json

@@ -3,8 +3,8 @@
   "add_to_album_bottom_sheet_already_exists": "Bereits in {album}",
   "add_to_album_bottom_sheet_already_exists": "Bereits in {album}",
   "advanced_settings_prefer_remote_subtitle": "Manche Endgeräte laden Vorschaubilder lokaler Bilder sehr langsam. Durch diese Einstellung werden diese stattdessen direkt vom Server geladen.",
   "advanced_settings_prefer_remote_subtitle": "Manche Endgeräte laden Vorschaubilder lokaler Bilder sehr langsam. Durch diese Einstellung werden diese stattdessen direkt vom Server geladen.",
   "advanced_settings_prefer_remote_title": "Server-Bilder bevorzugen",
   "advanced_settings_prefer_remote_title": "Server-Bilder bevorzugen",
-  "advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
-  "advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
+  "advanced_settings_self_signed_ssl_subtitle": "Verifizierung von SSL-Zertifikaten vom Server überspringen. Notwendig bei selbstsignierten Zertifikaten.",
+  "advanced_settings_self_signed_ssl_title": "Selbstsignierte SSL-Zertifikate erlauben",
   "advanced_settings_tile_subtitle": "Erweiterte Benutzereinstellungen",
   "advanced_settings_tile_subtitle": "Erweiterte Benutzereinstellungen",
   "advanced_settings_tile_title": "Sonstige",
   "advanced_settings_tile_title": "Sonstige",
   "advanced_settings_troubleshooting_subtitle": "Aktiviere erweiterte Funktionen zur Fehlersuche",
   "advanced_settings_troubleshooting_subtitle": "Aktiviere erweiterte Funktionen zur Fehlersuche",
@@ -14,7 +14,7 @@
   "album_thumbnail_card_item": "1 Element",
   "album_thumbnail_card_item": "1 Element",
   "album_thumbnail_card_items": "{} Elemente",
   "album_thumbnail_card_items": "{} Elemente",
   "album_thumbnail_card_shared": " · Geteilt",
   "album_thumbnail_card_shared": " · Geteilt",
-  "album_thumbnail_owned": "Owned",
+  "album_thumbnail_owned": "Eigene",
   "album_thumbnail_shared_by": "Geteilt von {}",
   "album_thumbnail_shared_by": "Geteilt von {}",
   "album_viewer_appbar_share_delete": "Album löschen",
   "album_viewer_appbar_share_delete": "Album löschen",
   "album_viewer_appbar_share_err_delete": "Album konnte nicht gelöscht werden",
   "album_viewer_appbar_share_err_delete": "Album konnte nicht gelöscht werden",
@@ -22,12 +22,16 @@
   "album_viewer_appbar_share_err_remove": "Beim Löschen von Elementen aus dem Album ist ein Problem aufgetreten",
   "album_viewer_appbar_share_err_remove": "Beim Löschen von Elementen aus dem Album ist ein Problem aufgetreten",
   "album_viewer_appbar_share_err_title": "Der Titel konnte nicht geändert werden",
   "album_viewer_appbar_share_err_title": "Der Titel konnte nicht geändert werden",
   "album_viewer_appbar_share_leave": "Album verlassen",
   "album_viewer_appbar_share_leave": "Album verlassen",
-  "album_viewer_appbar_share_remove": "Entferne vom Album",
+  "album_viewer_appbar_share_remove": "Vom Album entfernen",
+  "album_viewer_appbar_share_to": "Teile über",
   "album_viewer_page_share_add_users": "Nutzer hinzufügen",
   "album_viewer_page_share_add_users": "Nutzer hinzufügen",
   "all_people_page_title": "Personen",
   "all_people_page_title": "Personen",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "Bist du sicher, dass du dich abmelden möchtest?",
+  "app_bar_signout_dialog_ok": "Ja",
+  "app_bar_signout_dialog_title": "Abmelden",
   "archive_page_no_archived_assets": "Keine archivierten Inhalte gefunden",
   "archive_page_no_archived_assets": "Keine archivierten Inhalte gefunden",
-  "archive_page_title": "Archive ({})",
+  "archive_page_title": "Archiv ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamisches Layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamisches Layout",
   "asset_list_layout_settings_group_automatically": "Automatisch",
   "asset_list_layout_settings_group_automatically": "Automatisch",
   "asset_list_layout_settings_group_by": "Gruppiere Elemente nach",
   "asset_list_layout_settings_group_by": "Gruppiere Elemente nach",
@@ -54,13 +58,13 @@
   "backup_controller_page_background_app_refresh_disabled_title": "Hintergrundaktualisierungen sind deaktiviert.",
   "backup_controller_page_background_app_refresh_disabled_title": "Hintergrundaktualisierungen sind deaktiviert.",
   "backup_controller_page_background_app_refresh_enable_button_text": "Gehe zu Einstellungen",
   "backup_controller_page_background_app_refresh_enable_button_text": "Gehe zu Einstellungen",
   "backup_controller_page_background_battery_info_link": "Zeige mir wie",
   "backup_controller_page_background_battery_info_link": "Zeige mir wie",
-  "backup_controller_page_background_battery_info_message": "For the best background backup experience, please disable any battery optimizations restricting background activity for Immich.\n\nSince this is device-specific, please lookup the required information for your device manufacturer.",
+  "backup_controller_page_background_battery_info_message": "Für die besten Ergebnisse für Sicherungen im Hintergrund, deaktiviere alle Batterieoptimierungen und Einschränkungen für die Hintergrundaktivitäten von Immich.\n\nDa dies gerätespezifisch ist, schlage diese Informationen für deinen Gerätehersteller nach.",
   "backup_controller_page_background_battery_info_ok": "OK",
   "backup_controller_page_background_battery_info_ok": "OK",
   "backup_controller_page_background_battery_info_title": "Batterieoptimierungen",
   "backup_controller_page_background_battery_info_title": "Batterieoptimierungen",
   "backup_controller_page_background_charging": "Nur während des Ladens",
   "backup_controller_page_background_charging": "Nur während des Ladens",
   "backup_controller_page_background_configure_error": "Konnte Hintergrundservice nicht konfigurieren",
   "backup_controller_page_background_configure_error": "Konnte Hintergrundservice nicht konfigurieren",
-  "backup_controller_page_background_delay": "Delay new assets backup: {}",
-  "backup_controller_page_background_description": "Turn on the background service to automatically backup any new assets without needing to open the app",
+  "backup_controller_page_background_delay": "Sicherung neuer Elemente verzögern: {}",
+  "backup_controller_page_background_description": "Schalte den Hintergrundservice ein, um neue Elemente automatisch im Hintergrund zu sichern ohne die App zu öffnen",
   "backup_controller_page_background_is_off": "Automatische Sicherung im Hintergrund ist deaktiviert",
   "backup_controller_page_background_is_off": "Automatische Sicherung im Hintergrund ist deaktiviert",
   "backup_controller_page_background_is_on": "Automatische Sicherung im Hintergrund ist aktiviert",
   "backup_controller_page_background_is_on": "Automatische Sicherung im Hintergrund ist aktiviert",
   "backup_controller_page_background_turn_off": "Hintergrundservice ausschalten",
   "backup_controller_page_background_turn_off": "Hintergrundservice ausschalten",
@@ -78,7 +82,7 @@
   "backup_controller_page_id": "ID: {}",
   "backup_controller_page_id": "ID: {}",
   "backup_controller_page_info": "Informationen zur Sicherung",
   "backup_controller_page_info": "Informationen zur Sicherung",
   "backup_controller_page_none_selected": "Keine ausgewählt",
   "backup_controller_page_none_selected": "Keine ausgewählt",
-  "backup_controller_page_remainder": "Übrig",
+  "backup_controller_page_remainder": "Verbleibend",
   "backup_controller_page_remainder_sub": "Noch zu sichernde Fotos und Videos",
   "backup_controller_page_remainder_sub": "Noch zu sichernde Fotos und Videos",
   "backup_controller_page_select": "Auswählen",
   "backup_controller_page_select": "Auswählen",
   "backup_controller_page_server_storage": "Server Speicher",
   "backup_controller_page_server_storage": "Server Speicher",
@@ -94,23 +98,25 @@
   "backup_controller_page_uploading_file_info": "Informationen",
   "backup_controller_page_uploading_file_info": "Informationen",
   "backup_err_only_album": "Das einzige Album kann nicht entfernt werden",
   "backup_err_only_album": "Das einzige Album kann nicht entfernt werden",
   "backup_info_card_assets": "Elemente",
   "backup_info_card_assets": "Elemente",
-  "backup_manual_cancelled": "Cancelled",
-  "backup_manual_failed": "Failed",
-  "backup_manual_in_progress": "Upload already in progress. Try after sometime",
-  "backup_manual_success": "Success",
-  "backup_manual_title": "Upload status",
-  "cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
+  "backup_manual_cancelled": "Abgebrochen",
+  "backup_manual_failed": "Fehlgeschlagen",
+  "backup_manual_in_progress": "Sicherung läuft bereits. Bitte später erneut versuchen",
+  "backup_manual_success": "Erfolgreich",
+  "backup_manual_title": "Sicherungsstatus",
+  "cache_settings_album_thumbnails": "Vorschaubilder der Bibliothek ({} Elemente)",
   "cache_settings_clear_cache_button": "Zwischenspeicher löschen",
   "cache_settings_clear_cache_button": "Zwischenspeicher löschen",
   "cache_settings_clear_cache_button_title": "Löscht den Zwischenspeicher der App. Dies wird die Leistungsfähigkeit der App deutlich einschränken, bis der Zwischenspeicher wieder aufgebaut wurde.",
   "cache_settings_clear_cache_button_title": "Löscht den Zwischenspeicher der App. Dies wird die Leistungsfähigkeit der App deutlich einschränken, bis der Zwischenspeicher wieder aufgebaut wurde.",
   "cache_settings_image_cache_size": "{} Bilder im Zwischenspeicher",
   "cache_settings_image_cache_size": "{} Bilder im Zwischenspeicher",
-  "cache_settings_statistics_album": "Library thumbnails",
-  "cache_settings_statistics_assets": "{} assets ({})",
-  "cache_settings_statistics_full": "Full images",
-  "cache_settings_statistics_shared": "Shared album thumbnails",
+  "cache_settings_statistics_album": "Vorschaubilder der Bibliothek",
+  "cache_settings_statistics_assets": "{} Elemente ({})",
+  "cache_settings_statistics_full": "Originalbilder",
+  "cache_settings_statistics_shared": "Vorschaubilder geteilter Alben",
   "cache_settings_statistics_thumbnail": "Vorschaubilder",
   "cache_settings_statistics_thumbnail": "Vorschaubilder",
   "cache_settings_statistics_title": "Zwischenspeicher Nutzung",
   "cache_settings_statistics_title": "Zwischenspeicher Nutzung",
   "cache_settings_subtitle": "Kontrolliere wie Immich den Zwischenspeicher nutzen soll",
   "cache_settings_subtitle": "Kontrolliere wie Immich den Zwischenspeicher nutzen soll",
   "cache_settings_thumbnail_size": "{} Vorschaubilder im Zwischenspeicher",
   "cache_settings_thumbnail_size": "{} Vorschaubilder im Zwischenspeicher",
+  "cache_settings_tile_subtitle": "Lokalen Speicher verwalten",
+  "cache_settings_tile_title": "Lokaler Speicher",
   "cache_settings_title": "Zwischenspeicher Einstellungen",
   "cache_settings_title": "Zwischenspeicher Einstellungen",
   "change_password_form_confirm_password": "Passwort bestätigen",
   "change_password_form_confirm_password": "Passwort bestätigen",
   "change_password_form_description": "Hallo {firstName} {lastName}\n\nDas ist entweder das erste Mal dass du dich einloggst oder eine Anfrage zur Änderung deines Passwortes wurde gestellt. Bitte gebe das neue Passwort ein.",
   "change_password_form_description": "Hallo {firstName} {lastName}\n\nDas ist entweder das erste Mal dass du dich einloggst oder eine Anfrage zur Änderung deines Passwortes wurde gestellt. Bitte gebe das neue Passwort ein.",
@@ -119,21 +125,21 @@
   "change_password_form_reenter_new_password": "Passwort erneut eingeben",
   "change_password_form_reenter_new_password": "Passwort erneut eingeben",
   "common_add_to_album": "Zu Album hinzufügen",
   "common_add_to_album": "Zu Album hinzufügen",
   "common_change_password": "Passwort ändern",
   "common_change_password": "Passwort ändern",
-  "common_create_new_album": "Erstelle ein neues Album",
+  "common_create_new_album": "Neues Album erstellen",
   "common_server_error": "Bitte überprüfe Deine Netzwerkverbindung und stelle sicher, dass die App und Server Versionen kompatibel sind.",
   "common_server_error": "Bitte überprüfe Deine Netzwerkverbindung und stelle sicher, dass die App und Server Versionen kompatibel sind.",
   "common_shared": "Geteilt",
   "common_shared": "Geteilt",
   "control_bottom_app_bar_add_to_album": "Zu Album hinzufügen",
   "control_bottom_app_bar_add_to_album": "Zu Album hinzufügen",
   "control_bottom_app_bar_album_info": "{} Elemente",
   "control_bottom_app_bar_album_info": "{} Elemente",
-  "control_bottom_app_bar_album_info_shared": "{} Elemente · geteilt",
+  "control_bottom_app_bar_album_info_shared": "{} Elemente · Geteilt",
   "control_bottom_app_bar_archive": "Archiv",
   "control_bottom_app_bar_archive": "Archiv",
   "control_bottom_app_bar_create_new_album": "Neues Album erstellen",
   "control_bottom_app_bar_create_new_album": "Neues Album erstellen",
   "control_bottom_app_bar_delete": "Löschen",
   "control_bottom_app_bar_delete": "Löschen",
   "control_bottom_app_bar_favorite": "Favorit",
   "control_bottom_app_bar_favorite": "Favorit",
   "control_bottom_app_bar_share": "Teilen",
   "control_bottom_app_bar_share": "Teilen",
-  "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_share_to": "Teilen mit",
+  "control_bottom_app_bar_stack": "Stapeln",
   "control_bottom_app_bar_unarchive": "Dearchivieren",
   "control_bottom_app_bar_unarchive": "Dearchivieren",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Hochladen",
   "create_album_page_untitled": "Unbenannt",
   "create_album_page_untitled": "Unbenannt",
   "create_shared_album_page_create": "Erstellen",
   "create_shared_album_page_create": "Erstellen",
   "create_shared_album_page_share": "Teilen",
   "create_shared_album_page_share": "Teilen",
@@ -147,16 +153,16 @@
   "delete_dialog_alert": "Diese Elemente werden unwiderruflich von Immich und dem Gerät entfernt",
   "delete_dialog_alert": "Diese Elemente werden unwiderruflich von Immich und dem Gerät entfernt",
   "delete_dialog_cancel": "Abbrechen",
   "delete_dialog_cancel": "Abbrechen",
   "delete_dialog_ok": "Löschen",
   "delete_dialog_ok": "Löschen",
-  "delete_dialog_title": "Für immer löschen",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_dialog_title": "Endgültig löschen",
+  "delete_shared_link_dialog_content": "Bist du sicher, dass du diesen geteilten Link löschen möchtest?",
+  "delete_shared_link_dialog_title": "Geteilten Link löschen",
   "description_input_hint_text": "Beschreibung hinzufügen...",
   "description_input_hint_text": "Beschreibung hinzufügen...",
   "description_input_submit_error": "Beschreibung konnte nicht geändert werden, bitte im Log für mehr Details nachsehen.",
   "description_input_submit_error": "Beschreibung konnte nicht geändert werden, bitte im Log für mehr Details nachsehen.",
   "exif_bottom_sheet_description": "Beschreibung hinzufügen...",
   "exif_bottom_sheet_description": "Beschreibung hinzufügen...",
   "exif_bottom_sheet_details": "DETAILS",
   "exif_bottom_sheet_details": "DETAILS",
   "exif_bottom_sheet_location": "STANDORT",
   "exif_bottom_sheet_location": "STANDORT",
   "experimental_settings_new_asset_list_subtitle": "In Arbeit",
   "experimental_settings_new_asset_list_subtitle": "In Arbeit",
-  "experimental_settings_new_asset_list_title": "Experimentelle Fotogitter aktivieren",
+  "experimental_settings_new_asset_list_title": "Experimentelles Fotogitter aktivieren",
   "experimental_settings_subtitle": "Benutzung auf eigene Gefahr!",
   "experimental_settings_subtitle": "Benutzung auf eigene Gefahr!",
   "experimental_settings_title": "Experimentell",
   "experimental_settings_title": "Experimentell",
   "favorites_page_no_favorites": "Keine favorisierten Inhalte gefunden",
   "favorites_page_no_favorites": "Keine favorisierten Inhalte gefunden",
@@ -164,39 +170,44 @@
   "home_page_add_to_album_conflicts": "{added} Elemente zu {album} hinzugefügt. {failed} Elemente sind bereits vorhanden.",
   "home_page_add_to_album_conflicts": "{added} Elemente zu {album} hinzugefügt. {failed} Elemente sind bereits vorhanden.",
   "home_page_add_to_album_err_local": "Kann lokale Elemente noch nicht zu Alben hinzufügen, überspringe",
   "home_page_add_to_album_err_local": "Kann lokale Elemente noch nicht zu Alben hinzufügen, überspringe",
   "home_page_add_to_album_success": "{added} Elemente zu {album} hinzugefügt.",
   "home_page_add_to_album_success": "{added} Elemente zu {album} hinzugefügt.",
+  "home_page_album_err_partner": "Inhalte von Partnern können derzeit nicht zu Alben hinzugefügt werden",
   "home_page_archive_err_local": "Kann lokale Elemente nicht archvieren, überspringe",
   "home_page_archive_err_local": "Kann lokale Elemente nicht archvieren, überspringe",
+  "home_page_archive_err_partner": "Inhalte von Partnern können nicht archiviert werden",
   "home_page_building_timeline": "Zeitachse wird erstellt.",
   "home_page_building_timeline": "Zeitachse wird erstellt.",
+  "home_page_delete_err_partner": "Inhalte von Partnern können nicht gelöscht werden",
   "home_page_favorite_err_local": "Kann lokale Elemente noch nicht favorisieren, überspringe",
   "home_page_favorite_err_local": "Kann lokale Elemente noch nicht favorisieren, überspringe",
+  "home_page_favorite_err_partner": "Inhalte von Partnern können nicht favorisiert werden",
   "home_page_first_time_notice": "Wenn dies das erste Mal ist dass Du Immich nutzt, stelle bitte sicher, dass mindestens ein Album zur Sicherung ausgewählt ist, sodass die Zeitachse mit Fotos und Videos gefüllt werden kann.",
   "home_page_first_time_notice": "Wenn dies das erste Mal ist dass Du Immich nutzt, stelle bitte sicher, dass mindestens ein Album zur Sicherung ausgewählt ist, sodass die Zeitachse mit Fotos und Videos gefüllt werden kann.",
-  "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
+  "home_page_upload_err_limit": "Max. 30 Elemente können gleichzeitig hochgeladen werden, überspringe",
   "image_viewer_page_state_provider_download_error": "Fehler beim Herunterladen",
   "image_viewer_page_state_provider_download_error": "Fehler beim Herunterladen",
   "image_viewer_page_state_provider_download_success": "Erfolgreich heruntergeladen",
   "image_viewer_page_state_provider_download_success": "Erfolgreich heruntergeladen",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Fehler beim Teilen",
   "library_page_albums": "Alben",
   "library_page_albums": "Alben",
   "library_page_archive": "Archiv",
   "library_page_archive": "Archiv",
-  "library_page_device_albums": "Alben auf dem Gerät.",
+  "library_page_device_albums": "Alben auf dem Gerät",
   "library_page_favorites": "Favoriten",
   "library_page_favorites": "Favoriten",
   "library_page_new_album": "Neues Album",
   "library_page_new_album": "Neues Album",
   "library_page_sharing": "Teilen",
   "library_page_sharing": "Teilen",
   "library_page_sort_created": "Zuletzt erstellt",
   "library_page_sort_created": "Zuletzt erstellt",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
-  "library_page_sort_title": "Albumtitel",
-  "login_disabled": "Login has been disabled",
+  "library_page_sort_last_modified": "Zuletzt bearbeitet",
+  "library_page_sort_most_recent_photo": "Neuestes Foto",
+  "library_page_sort_title": "Titel des Albums",
+  "login_disabled": "Login ist deaktiviert",
   "login_form_api_exception": "API Fehler. Bitte die Serveradresse überprüfen und erneut versuchen.",
   "login_form_api_exception": "API Fehler. Bitte die Serveradresse überprüfen und erneut versuchen.",
   "login_form_button_text": "Anmelden",
   "login_form_button_text": "Anmelden",
   "login_form_email_hint": "deine@email.de",
   "login_form_email_hint": "deine@email.de",
   "login_form_endpoint_hint": "http://deine-server-ip:port/api",
   "login_form_endpoint_hint": "http://deine-server-ip:port/api",
-  "login_form_endpoint_url": "Server URL",
+  "login_form_endpoint_url": "Server-URL",
   "login_form_err_http": "Bitte gebe http:// oder https:// an",
   "login_form_err_http": "Bitte gebe http:// oder https:// an",
   "login_form_err_invalid_email": "Ungültige E-Mail",
   "login_form_err_invalid_email": "Ungültige E-Mail",
   "login_form_err_invalid_url": "Ungültige URL",
   "login_form_err_invalid_url": "Ungültige URL",
-  "login_form_err_leading_whitespace": "Leerzichen am Anfang",
+  "login_form_err_leading_whitespace": "Leerzeichen am Anfang",
   "login_form_err_trailing_whitespace": "Leerzeichen am Ende",
   "login_form_err_trailing_whitespace": "Leerzeichen am Ende",
   "login_form_failed_get_oauth_server_config": "Fehler beim Login per OAuth, Server-URL überprüfen",
   "login_form_failed_get_oauth_server_config": "Fehler beim Login per OAuth, Server-URL überprüfen",
   "login_form_failed_get_oauth_server_disable": "OAuth-Funktion nicht verfügbar auf diesem Server.",
   "login_form_failed_get_oauth_server_disable": "OAuth-Funktion nicht verfügbar auf diesem Server.",
-  "login_form_failed_login": "Error logging you in, check server url, email and password",
-  "login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
+  "login_form_failed_login": "Fehler beim Login, prüfe Server-URL, E-Mail und Passwort",
+  "login_form_handshake_exception": "Fehler beim Verbindungsaufbau mit dem Server. Falls du ein selbstsigniertes Zertifikat verwendest, aktiviere die Unterstützung in den Einstellungen.",
   "login_form_label_email": "E-Mail",
   "login_form_label_email": "E-Mail",
   "login_form_label_password": "Passwort",
   "login_form_label_password": "Passwort",
   "login_form_next_button": "Weiter",
   "login_form_next_button": "Weiter",
@@ -204,26 +215,26 @@
   "login_form_save_login": "Angemeldet bleiben",
   "login_form_save_login": "Angemeldet bleiben",
   "login_form_server_empty": "Serveradresse eingeben.",
   "login_form_server_empty": "Serveradresse eingeben.",
   "login_form_server_error": "Konnte nicht mit Server verbinden.",
   "login_form_server_error": "Konnte nicht mit Server verbinden.",
-  "login_password_changed_error": "There was an error updating your password",
-  "login_password_changed_success": "Password updated successfully",
-  "map_cannot_get_user_location": "Cannot get user's location",
-  "map_location_dialog_cancel": "Cancel",
-  "map_location_dialog_yes": "Yes",
-  "map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
-  "map_location_service_disabled_title": "Location Service disabled",
-  "map_no_assets_in_bounds": "No photos in this area",
-  "map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
-  "map_no_location_permission_title": "Location Permission denied",
-  "map_settings_dark_mode": "Dark mode",
-  "map_settings_dialog_cancel": "Cancel",
-  "map_settings_dialog_save": "Save",
-  "map_settings_dialog_title": "Map Settings",
-  "map_settings_include_show_archived": "Include Archived",
-  "map_settings_only_relative_range": "Date range",
-  "map_settings_only_show_favorites": "Show Favorite Only",
-  "map_zoom_to_see_photos": "Zoom out to see photos",
+  "login_password_changed_error": "Fehler beim Passwort ändern",
+  "login_password_changed_success": "Passwort erfolgreich geändert",
+  "map_cannot_get_user_location": "Standort konnte nicht ermittelt werden",
+  "map_location_dialog_cancel": "Abbrechen",
+  "map_location_dialog_yes": "Ja",
+  "map_location_service_disabled_content": "Ortungsdienste müssen aktiviert sein, um Inhalte am aktuellen Standort anzuzeigen. Willst du die Ortungsdienste aktivieren?",
+  "map_location_service_disabled_title": "Ortungsdienste deaktiviert",
+  "map_no_assets_in_bounds": "Keine Fotos in dieser Gegend",
+  "map_no_location_permission_content": "Ortungsdienste müssen aktiviert sein, um Inhalte am aktuellen Standort anzuzeigen. Willst du die Ortungsdienste aktivieren?",
+  "map_no_location_permission_title": "Kein Zugriff auf den Standort",
+  "map_settings_dark_mode": "Dunkler Modus",
+  "map_settings_dialog_cancel": "Abbrechen",
+  "map_settings_dialog_save": "Speichern",
+  "map_settings_dialog_title": "Karteneinstellungen",
+  "map_settings_include_show_archived": "Archivierte anzeigen",
+  "map_settings_only_relative_range": "Datumsbereich",
+  "map_settings_only_show_favorites": "Nur Favoriten anzeigen",
+  "map_zoom_to_see_photos": "Ansicht verkleinern um Fotos zu sehen",
   "monthly_title_text_date_format": "MMMM y",
   "monthly_title_text_date_format": "MMMM y",
-  "motion_photos_page_title": "Live Photos",
+  "motion_photos_page_title": "Live-Fotos",
   "notification_permission_dialog_cancel": "Abbrechen",
   "notification_permission_dialog_cancel": "Abbrechen",
   "notification_permission_dialog_content": "Um Benachrichtigungen zu aktivieren, navigiere zu Einstellungen und klicke \"Erlauben\"",
   "notification_permission_dialog_content": "Um Benachrichtigungen zu aktivieren, navigiere zu Einstellungen und klicke \"Erlauben\"",
   "notification_permission_dialog_settings": "Einstellungen",
   "notification_permission_dialog_settings": "Einstellungen",
@@ -231,33 +242,36 @@
   "notification_permission_list_tile_enable_button": "Aktiviere Benachrichtigungen",
   "notification_permission_list_tile_enable_button": "Aktiviere Benachrichtigungen",
   "notification_permission_list_tile_title": "Benachrichtigungs-Berechtigung",
   "notification_permission_list_tile_title": "Benachrichtigungs-Berechtigung",
   "partner_page_add_partner": "Partner hinzufügen",
   "partner_page_add_partner": "Partner hinzufügen",
-  "partner_page_empty_message": "Your photos are not yet shared with any partner.",
-  "partner_page_no_more_users": "No more users to add",
-  "partner_page_partner_add_failed": "Failed to add partner",
+  "partner_page_empty_message": "Deine Fotos sind noch nicht geteilt mit einem Partner",
+  "partner_page_no_more_users": "Keine weiteren Nutzer",
+  "partner_page_partner_add_failed": "Fehler beim Partner hinzufügen",
   "partner_page_select_partner": "Partner auswählen",
   "partner_page_select_partner": "Partner auswählen",
   "partner_page_shared_to_title": "Geteilt mit",
   "partner_page_shared_to_title": "Geteilt mit",
   "partner_page_stop_sharing_content": "{} wird nicht mehr auf deine Fotos zugreifen können.",
   "partner_page_stop_sharing_content": "{} wird nicht mehr auf deine Fotos zugreifen können.",
-  "partner_page_stop_sharing_title": "Stop sharing your photos?",
+  "partner_page_stop_sharing_title": "Deine Fotos nicht mehr teilen?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Trotzdem fortfahren",
   "permission_onboarding_continue_anyway": "Trotzdem fortfahren",
-  "permission_onboarding_get_started": "Get started",
+  "permission_onboarding_get_started": "Jetzt starten",
   "permission_onboarding_go_to_settings": "Gehe zu Einstellungen",
   "permission_onboarding_go_to_settings": "Gehe zu Einstellungen",
   "permission_onboarding_grant_permission": "Berechtigung erteilen",
   "permission_onboarding_grant_permission": "Berechtigung erteilen",
   "permission_onboarding_log_out": "Abmelden",
   "permission_onboarding_log_out": "Abmelden",
-  "permission_onboarding_permission_denied": "Berechtigungen verweigert. Um Immich zu benutzen, Zugriff auf Fotos und Videos in Einstellungen erlauben.",
+  "permission_onboarding_permission_denied": "Berechtigung verweigert. Um Immich zu benutzen, muss Zugriff auf Fotos und Videos in Einstellungen erlaubt werden.",
   "permission_onboarding_permission_granted": "Berechtigung erteilt! Du bist startklar.",
   "permission_onboarding_permission_granted": "Berechtigung erteilt! Du bist startklar.",
   "permission_onboarding_permission_limited": "Berechtigungen unzureichend. Um Immich das Sichern von ganzen Sammlungen zu ermöglichen, muss der Zugriff auf alle Fotos und Videos in den Einstellungen erlaubt werden.",
   "permission_onboarding_permission_limited": "Berechtigungen unzureichend. Um Immich das Sichern von ganzen Sammlungen zu ermöglichen, muss der Zugriff auf alle Fotos und Videos in den Einstellungen erlaubt werden.",
   "permission_onboarding_request": "Immich benötigt Berechtigung um auf deine Fotos und Videos zuzugreifen.",
   "permission_onboarding_request": "Immich benötigt Berechtigung um auf deine Fotos und Videos zuzugreifen.",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_client_server_up_to_date": "App und Server sind aktuell",
   "profile_drawer_client_server_up_to_date": "App und Server sind aktuell",
+  "profile_drawer_documentation": "Dokumentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Einstellungen",
   "profile_drawer_settings": "Einstellungen",
   "profile_drawer_sign_out": "Abmelden",
   "profile_drawer_sign_out": "Abmelden",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Papierkorb",
   "recently_added_page_title": "Zuletzt hinzugefügt",
   "recently_added_page_title": "Zuletzt hinzugefügt",
   "search_bar_hint": "Durchsuche deine Fotos",
   "search_bar_hint": "Durchsuche deine Fotos",
   "search_page_categories": "Kategorien",
   "search_page_categories": "Kategorien",
   "search_page_favorites": "Favoriten",
   "search_page_favorites": "Favoriten",
-  "search_page_motion_photos": "Live Photos",
+  "search_page_motion_photos": "Live-Fotos",
   "search_page_no_objects": "Keine Objektinformationen verfügbar",
   "search_page_no_objects": "Keine Objektinformationen verfügbar",
   "search_page_no_places": "Keine Informationen über Orte verfügbar",
   "search_page_no_places": "Keine Informationen über Orte verfügbar",
   "search_page_people": "Personen",
   "search_page_people": "Personen",
@@ -265,7 +279,7 @@
   "search_page_recently_added": "Zuletzt hinzugefügt",
   "search_page_recently_added": "Zuletzt hinzugefügt",
   "search_page_screenshots": "Bildschirmfotos",
   "search_page_screenshots": "Bildschirmfotos",
   "search_page_selfies": "Selfies",
   "search_page_selfies": "Selfies",
-  "search_page_things": "Dinge",
+  "search_page_things": "Gegenstände und Tiere",
   "search_page_videos": "Videos",
   "search_page_videos": "Videos",
   "search_page_view_all_button": "Alle anzeigen",
   "search_page_view_all_button": "Alle anzeigen",
   "search_page_your_activity": "Deine Aktivität",
   "search_page_your_activity": "Deine Aktivität",
@@ -274,55 +288,65 @@
   "search_suggestion_list_smart_search_hint_2": "m:dein-suchbegriff",
   "search_suggestion_list_smart_search_hint_2": "m:dein-suchbegriff",
   "select_additional_user_for_sharing_page_suggestions": "Vorschläge",
   "select_additional_user_for_sharing_page_suggestions": "Vorschläge",
   "select_user_for_sharing_page_err_album": "Album konnte nicht erstellt werden",
   "select_user_for_sharing_page_err_album": "Album konnte nicht erstellt werden",
-  "select_user_for_sharing_page_share_suggestions": "Suggestions",
+  "select_user_for_sharing_page_share_suggestions": "Empfehlungen",
   "server_info_box_app_version": "App Version",
   "server_info_box_app_version": "App Version",
+  "server_info_box_server_url": "Server-URL",
   "server_info_box_server_version": "Server Version",
   "server_info_box_server_version": "Server Version",
   "setting_image_viewer_help": "Der Detailbildbetrachter lädt zuerst die kleine Miniaturansicht, dann die Vorschau in mittlerer Größe (falls aktiviert) und schließlich das Original (falls aktiviert).",
   "setting_image_viewer_help": "Der Detailbildbetrachter lädt zuerst die kleine Miniaturansicht, dann die Vorschau in mittlerer Größe (falls aktiviert) und schließlich das Original (falls aktiviert).",
   "setting_image_viewer_original_subtitle": "Aktivieren, um das Originalbild in voller Auflösung (groß!) zu laden. Deaktivieren, um den Datenverbrauch zu reduzieren (sowohl im Netzwerk als auch im Gerätespeicher).",
   "setting_image_viewer_original_subtitle": "Aktivieren, um das Originalbild in voller Auflösung (groß!) zu laden. Deaktivieren, um den Datenverbrauch zu reduzieren (sowohl im Netzwerk als auch im Gerätespeicher).",
   "setting_image_viewer_original_title": "Original laden",
   "setting_image_viewer_original_title": "Original laden",
   "setting_image_viewer_preview_subtitle": "Aktivieren, um ein Bild mit mittlerer Auflösung zu laden. Deaktivieren, um entweder das Original direkt zu laden oder nur die Miniaturansicht zu verwenden.",
   "setting_image_viewer_preview_subtitle": "Aktivieren, um ein Bild mit mittlerer Auflösung zu laden. Deaktivieren, um entweder das Original direkt zu laden oder nur die Miniaturansicht zu verwenden.",
   "setting_image_viewer_preview_title": "Vorschaubild laden",
   "setting_image_viewer_preview_title": "Vorschaubild laden",
-  "setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
+  "setting_notifications_notify_failures_grace_period": "Benachrichtigung über Fehler bei der Hintergrundsicherung: {}",
   "setting_notifications_notify_hours": "{} Stunden",
   "setting_notifications_notify_hours": "{} Stunden",
   "setting_notifications_notify_immediately": "sofort",
   "setting_notifications_notify_immediately": "sofort",
   "setting_notifications_notify_minutes": "{} Minuten",
   "setting_notifications_notify_minutes": "{} Minuten",
   "setting_notifications_notify_never": "niemals",
   "setting_notifications_notify_never": "niemals",
   "setting_notifications_notify_seconds": "{} Sekunden",
   "setting_notifications_notify_seconds": "{} Sekunden",
-  "setting_notifications_single_progress_subtitle": "Detaillierte Upload Informationen für jedes Element.",
-  "setting_notifications_single_progress_title": "Zeige Hintergrund-Sicherungs Detailfortschritt",
-  "setting_notifications_subtitle": "Passe Deine Benachrichtigungen an",
+  "setting_notifications_single_progress_subtitle": "Detaillierter Upload-Fortschritt für jedes Element.",
+  "setting_notifications_single_progress_title": "Zeige detaillierten Fortschritt bei der Hintergrundsicherung",
+  "setting_notifications_subtitle": "Benachrichtigungen anpassen",
   "setting_notifications_title": "Benachrichtigungen",
   "setting_notifications_title": "Benachrichtigungen",
   "setting_notifications_total_progress_subtitle": "Gesamter Upload-Fortschritt (abgeschlossen/Anzahl Elemente)",
   "setting_notifications_total_progress_subtitle": "Gesamter Upload-Fortschritt (abgeschlossen/Anzahl Elemente)",
-  "setting_notifications_total_progress_title": "Zeige Hintergrundsicherungsfortschritt",
+  "setting_notifications_total_progress_title": "Zeige Gesamtfortschritt bei der Hintergrundsicherung",
   "setting_pages_app_bar_settings": "Einstellungen",
   "setting_pages_app_bar_settings": "Einstellungen",
   "settings_require_restart": "Bitte starte Immich neu, um diese Einstellung anzuwenden.",
   "settings_require_restart": "Bitte starte Immich neu, um diese Einstellung anzuwenden.",
   "share_add": "Hinzufügen",
   "share_add": "Hinzufügen",
   "share_add_photos": "Fotos hinzufügen",
   "share_add_photos": "Fotos hinzufügen",
   "share_add_title": "Titel hinzufügen",
   "share_add_title": "Titel hinzufügen",
   "share_create_album": "Album erstellen",
   "share_create_album": "Album erstellen",
+  "shared_album_activities_input_disable": "Kommentare sind deaktiviert.",
+  "shared_album_activities_input_hint": "Sag etwas",
+  "shared_album_activity_remove_content": "Möchtest du diese Aktivität entfernen?",
+  "shared_album_activity_remove_title": "Aktivität entfernen",
+  "shared_album_activity_setting_subtitle": "Lass andere reagieren.",
+  "shared_album_activity_setting_title": "Kommentare & Likes",
   "share_dialog_preparing": "Vorbereiten...",
   "share_dialog_preparing": "Vorbereiten...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Geteilte Links",
+  "shared_link_create_app_bar_title": "Link zum Teilen erstellen",
+  "shared_link_create_info": "Alle, die über den Link verfügen, können die Fotos sehen",
+  "shared_link_create_submit_button": "Link erstellen",
+  "shared_link_edit_allow_download": "Jeder darf herunterladen",
+  "shared_link_edit_allow_upload": "Jeder darf hochladen",
+  "shared_link_edit_app_bar_title": "Link bearbeiten",
+  "shared_link_edit_change_expiry": "Ablaufdatum bearbeiten",
+  "shared_link_edit_description": "Beschreibung",
+  "shared_link_edit_description_hint": "Beschreibung eingeben",
+  "shared_link_edit_expire_after": "Erlischt nach",
+  "shared_link_edit_password": "Passwort",
+  "shared_link_edit_password_hint": "Passwort eingeben",
+  "shared_link_edit_show_meta": "Metadaten anzeigen",
+  "shared_link_edit_submit_button": "Link aktualisieren",
+  "shared_link_empty": "Du hast keine geteilten Links",
+  "shared_link_manage_links": "Geteilte Links verwalten",
+  "share_done": "Fertig",
   "share_invite": "Zum Album einladen",
   "share_invite": "Zum Album einladen",
   "sharing_page_album": "Geteilte Alben",
   "sharing_page_album": "Geteilte Alben",
   "sharing_page_description": "Erstelle ein geteiltes Album um Fotos und Videos mit Personen in deinem Netzwerk zu teilen.",
   "sharing_page_description": "Erstelle ein geteiltes Album um Fotos und Videos mit Personen in deinem Netzwerk zu teilen.",
   "sharing_page_empty_list": "LEERE LISTE",
   "sharing_page_empty_list": "LEERE LISTE",
   "sharing_silver_appbar_create_shared_album": "Neues geteiltes Album",
   "sharing_silver_appbar_create_shared_album": "Neues geteiltes Album",
-  "sharing_silver_appbar_shared_links": "Shared links",
-  "sharing_silver_appbar_share_partner": "Teile mit Partner",
+  "sharing_silver_appbar_shared_links": "Geteilte Links",
+  "sharing_silver_appbar_share_partner": "Mit Partner teilen",
   "tab_controller_nav_library": "Bibliothek",
   "tab_controller_nav_library": "Bibliothek",
   "tab_controller_nav_photos": "Fotos",
   "tab_controller_nav_photos": "Fotos",
   "tab_controller_nav_search": "Suche",
   "tab_controller_nav_search": "Suche",
@@ -337,30 +361,30 @@
   "theme_setting_theme_title": "Theme",
   "theme_setting_theme_title": "Theme",
   "theme_setting_three_stage_loading_subtitle": "Das dreistufige Ladeverfahren kann die Performance beim Laden verbessern, erhöht allerdings den Datenverbrauch deutlich",
   "theme_setting_three_stage_loading_subtitle": "Das dreistufige Ladeverfahren kann die Performance beim Laden verbessern, erhöht allerdings den Datenverbrauch deutlich",
   "theme_setting_three_stage_loading_title": "Dreistufiges Laden aktivieren",
   "theme_setting_three_stage_loading_title": "Dreistufiges Laden aktivieren",
-  "translated_text_options": "Options",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
+  "translated_text_options": "Optionen",
+  "trash_page_delete": "Löschen",
+  "trash_page_delete_all": "Alle löschen",
+  "trash_page_empty_trash_btn": "Papierkorb leeren",
+  "trash_page_empty_trash_dialog_content": "Elemente im Papierkorb löschen? Diese Elemente werden dauerhaft von Immich entfernt",
   "trash_page_empty_trash_dialog_ok": "Ok",
   "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
-  "upload_dialog_cancel": "Cancel",
-  "upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
-  "upload_dialog_ok": "Upload",
-  "upload_dialog_title": "Upload Asset",
+  "trash_page_info": "Elemente im Papierkorb werden nach {} Tagen endgültig gelöscht",
+  "trash_page_no_assets": "Keine Elemente im Papierkorb",
+  "trash_page_restore": "Wiederherstellen",
+  "trash_page_restore_all": "Alle wiederherstellen",
+  "trash_page_select_assets_btn": "Elemente auswählen",
+  "trash_page_select_btn": "Auswählen",
+  "trash_page_title": "Papierkorb ({})",
+  "upload_dialog_cancel": "Abbrechen",
+  "upload_dialog_info": "Willst du die ausgewählten Elemente auf dem Server sichern?",
+  "upload_dialog_ok": "Hochladen",
+  "upload_dialog_title": "Element hochladen",
   "version_announcement_overlay_ack": "Ich habe verstanden",
   "version_announcement_overlay_ack": "Ich habe verstanden",
   "version_announcement_overlay_release_notes": "Änderungsprotokoll",
   "version_announcement_overlay_release_notes": "Änderungsprotokoll",
   "version_announcement_overlay_text_1": "Hallo mein Freund! Es gibt eine neue Version von",
   "version_announcement_overlay_text_1": "Hallo mein Freund! Es gibt eine neue Version von",
-  "version_announcement_overlay_text_2": "Bitte nehm dir die Zeit und lese das ",
+  "version_announcement_overlay_text_2": "Bitte nehme dir die Zeit und lies das ",
   "version_announcement_overlay_text_3": " und achte darauf, dass deine docker-compose und .env Dateien aktuell sind, vor allem wenn du ein System für automatische Updates benutzt (z.B. Watchtower).",
   "version_announcement_overlay_text_3": " und achte darauf, dass deine docker-compose und .env Dateien aktuell sind, vor allem wenn du ein System für automatische Updates benutzt (z.B. Watchtower).",
   "version_announcement_overlay_title": "Neue Server-Version verfügbar \uD83C\uDF89",
   "version_announcement_overlay_title": "Neue Server-Version verfügbar \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Aus Stapel entfernen",
+  "viewer_stack_use_as_main_asset": "An Stapelanfang",
+  "viewer_unstack": "Stapel aufheben"
 }
 }

+ 74 - 16
mobile/assets/i18n/en-US.json

@@ -1,6 +1,7 @@
 {
 {
   "add_to_album_bottom_sheet_added": "Added to {album}",
   "add_to_album_bottom_sheet_added": "Added to {album}",
   "add_to_album_bottom_sheet_already_exists": "Already in {album}",
   "add_to_album_bottom_sheet_already_exists": "Already in {album}",
+  "advanced_settings_log_level_title": "Log level: {}",
   "advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
   "advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
   "advanced_settings_prefer_remote_title": "Prefer remote images",
   "advanced_settings_prefer_remote_title": "Prefer remote images",
   "advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
   "advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
@@ -27,6 +28,9 @@
   "album_viewer_page_share_add_users": "Add users",
   "album_viewer_page_share_add_users": "Add users",
   "all_people_page_title": "People",
   "all_people_page_title": "People",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_title": "Archive ({})",
   "archive_page_title": "Archive ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
@@ -103,6 +107,9 @@
   "cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
   "cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
   "cache_settings_clear_cache_button": "Clear cache",
   "cache_settings_clear_cache_button": "Clear cache",
   "cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
   "cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
+  "cache_settings_duplicated_assets_clear_button": "CLEAR",
+  "cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app",
+  "cache_settings_duplicated_assets_title": "Duplicated Assets ({})",
   "cache_settings_image_cache_size": "Image cache size ({} assets)",
   "cache_settings_image_cache_size": "Image cache size ({} assets)",
   "cache_settings_statistics_album": "Library thumbnails",
   "cache_settings_statistics_album": "Library thumbnails",
   "cache_settings_statistics_assets": "{} assets ({})",
   "cache_settings_statistics_assets": "{} assets ({})",
@@ -112,6 +119,8 @@
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Caching Settings",
   "cache_settings_title": "Caching Settings",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
@@ -165,10 +174,15 @@
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Building the timeline",
   "home_page_building_timeline": "Building the timeline",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_success": "Download Success",
   "image_viewer_page_state_provider_download_success": "Download Success",
@@ -185,6 +199,7 @@
   "library_page_sort_title": "Album title",
   "library_page_sort_title": "Album title",
   "login_disabled": "Login has been disabled",
   "login_disabled": "Login has been disabled",
   "login_form_api_exception": "API exception. Please check the server URL and try again.",
   "login_form_api_exception": "API exception. Please check the server URL and try again.",
+  "login_form_back_button_text": "Back",
   "login_form_button_text": "Login",
   "login_form_button_text": "Login",
   "login_form_email_hint": "youremail@email.com",
   "login_form_email_hint": "youremail@email.com",
   "login_form_endpoint_hint": "http://your-server-ip:port/api",
   "login_form_endpoint_hint": "http://your-server-ip:port/api",
@@ -207,6 +222,10 @@
   "login_form_server_error": "Could not connect to server.",
   "login_form_server_error": "Could not connect to server.",
   "login_password_changed_error": "There was an error updating your password",
   "login_password_changed_error": "There was an error updating your password",
   "login_password_changed_success": "Password updated successfully",
   "login_password_changed_success": "Password updated successfully",
+  "map_assets_in_bounds": {
+    "one": "{} photo",
+    "many": "{} photos"
+  },
   "map_cannot_get_user_location": "Cannot get user's location",
   "map_cannot_get_user_location": "Cannot get user's location",
   "map_location_dialog_cancel": "Cancel",
   "map_location_dialog_cancel": "Cancel",
   "map_location_dialog_yes": "Yes",
   "map_location_dialog_yes": "Yes",
@@ -216,6 +235,15 @@
   "map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
   "map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
   "map_no_location_permission_title": "Location Permission denied",
   "map_no_location_permission_title": "Location Permission denied",
   "map_settings_dark_mode": "Dark mode",
   "map_settings_dark_mode": "Dark mode",
+  "map_settings_date_range_option_all": "All",
+  "map_settings_date_range_option_days": {
+    "one": "Past 24 hours",
+    "other": "Past {} days"
+  },
+  "map_settings_date_range_option_years": {
+    "one": "Past year",
+    "other": "Past {} years"
+  },
   "map_settings_dialog_cancel": "Cancel",
   "map_settings_dialog_cancel": "Cancel",
   "map_settings_dialog_save": "Save",
   "map_settings_dialog_save": "Save",
   "map_settings_dialog_title": "Map Settings",
   "map_settings_dialog_title": "Map Settings",
@@ -240,6 +268,7 @@
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_go_to_settings": "Go to settings",
   "permission_onboarding_go_to_settings": "Go to settings",
@@ -250,12 +279,16 @@
   "permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
   "permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_app_logs": "Logs",
+  "profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.",
+  "profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
+  "profile_drawer_server_out_of_date_major": "Server is out of date. Please update to the latest major version.",
+  "profile_drawer_server_out_of_date_minor": "Server is out of date. Please update to the latest minor version.",
   "profile_drawer_settings": "Settings",
   "profile_drawer_settings": "Settings",
   "profile_drawer_sign_out": "Sign Out",
   "profile_drawer_sign_out": "Sign Out",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
-  "profile_drawer_documentation": "Documentation",
-  "profile_drawer_github": "GitHub",
   "recently_added_page_title": "Recently Added",
   "recently_added_page_title": "Recently Added",
   "search_bar_hint": "Search your photos",
   "search_bar_hint": "Search your photos",
   "search_page_categories": "Categories",
   "search_page_categories": "Categories",
@@ -264,6 +297,13 @@
   "search_page_no_objects": "No Objects Info Available",
   "search_page_no_objects": "No Objects Info Available",
   "search_page_no_places": "No Places Info Available",
   "search_page_no_places": "No Places Info Available",
   "search_page_people": "People",
   "search_page_people": "People",
+  "search_page_person_add_name_dialog_cancel": "Cancel",
+  "search_page_person_add_name_dialog_save": "Save",
+  "search_page_person_add_name_dialog_hint": "Name",
+  "search_page_person_add_name_dialog_title": "Add a name",
+  "search_page_person_add_name_subtitle": "Find them fast by name with search",
+  "search_page_person_add_name_title": "Add a name",
+  "search_page_person_edit_name": "Edit name",
   "search_page_places": "Places",
   "search_page_places": "Places",
   "search_page_recently_added": "Recently added",
   "search_page_recently_added": "Recently added",
   "search_page_screenshots": "Screenshots",
   "search_page_screenshots": "Screenshots",
@@ -272,6 +312,7 @@
   "search_page_videos": "Videos",
   "search_page_videos": "Videos",
   "search_page_view_all_button": "View all",
   "search_page_view_all_button": "View all",
   "search_page_your_activity": "Your activity",
   "search_page_your_activity": "Your activity",
+  "search_page_your_map": "Your Map",
   "search_result_page_new_search_hint": "New Search",
   "search_result_page_new_search_hint": "New Search",
   "search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ",
   "search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ",
   "search_suggestion_list_smart_search_hint_2": "m:your-search-term",
   "search_suggestion_list_smart_search_hint_2": "m:your-search-term",
@@ -279,8 +320,9 @@
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "server_info_box_app_version": "App Version",
   "server_info_box_app_version": "App Version",
-  "server_info_box_server_version": "Server Version",
   "server_info_box_server_url": "Server URL",
   "server_info_box_server_url": "Server URL",
+  "server_info_box_server_version": "Server Version",
+  "server_info_box_latest_release":"Latest Version",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
   "setting_image_viewer_original_title": "Load original image",
   "setting_image_viewer_original_title": "Load original image",
@@ -304,9 +346,23 @@
   "share_add_photos": "Add photos",
   "share_add_photos": "Add photos",
   "share_add_title": "Add a title",
   "share_add_title": "Add a title",
   "share_create_album": "Create album",
   "share_create_album": "Create album",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
+  "shared_album_section_people_action_error": "Error leaving/removing from album",
+  "shared_album_section_people_action_leave": "Remove user from album",
+  "shared_album_section_people_action_remove_user": "Remove user from album",
+  "shared_album_section_people_owner_label": "Owner",
+  "shared_album_section_people_title": "PEOPLE",
   "share_dialog_preparing": "Preparing...",
   "share_dialog_preparing": "Preparing...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
+  "shared_link_clipboard_copied_massage": "Copied to clipboard",
+  "shared_link_clipboard_text": "Link: {}\nPassword: {}",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
+  "shared_link_create_error": "Error while creating shared link",
   "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
   "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
   "shared_link_create_submit_button": "Create link",
   "shared_link_create_submit_button": "Create link",
   "shared_link_edit_allow_download": "Allow public user to download",
   "shared_link_edit_allow_download": "Allow public user to download",
@@ -315,8 +371,21 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_password": "Password",
   "shared_link_edit_expire_after": "Expire after",
   "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_expire_after_option_days": {
+    "one": "{} day",
+    "other": "{} days"
+  },
+  "shared_link_edit_expire_after_option_hours": {
+    "one": "{} hour",
+    "other": "{} hours"
+  },
+  "shared_link_edit_expire_after_option_minutes": {
+    "one": "{} minute",
+    "other": "{} minutes"
+  },
+  "shared_link_edit_expire_after_option_never": "Never",
+  "shared_link_edit_password": "Password",
   "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
@@ -368,17 +437,6 @@
   "version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
   "version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
   "version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
   "version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
   "viewer_remove_from_stack": "Remove from Stack",
   "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_unstack": "Un-Stack",
-  "cache_settings_tile_title": "Local Storage",
-  "cache_settings_tile_subtitle": "Control the local storage behaviour",
   "viewer_stack_use_as_main_asset": "Use as Main Asset",
   "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "app_bar_signout_dialog_title": "Sign out",
-  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
-  "app_bar_signout_dialog_ok": "Yes",
-  "shared_album_activities_input_hint": "Say something",
-  "shared_album_activity_remove_title": "Delete Activity",
-  "shared_album_activity_remove_content": "Do you want to delete this activity?",
-  "shared_album_activity_setting_title": "Comments & likes",
-  "shared_album_activity_setting_subtitle": "Let others respond",
-  "shared_album_activities_input_disable": "Comment is disabled"
+  "viewer_unstack": "Un-Stack"
 }
 }

+ 100 - 76
mobile/assets/i18n/es-ES.json

@@ -3,8 +3,8 @@
   "add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
   "add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
   "advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
   "advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
   "advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
   "advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
-  "advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
-  "advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
+  "advanced_settings_self_signed_ssl_subtitle": "Omitir verificación del certificado SSL del servidor. Requerido para certificados autofirmados",
+  "advanced_settings_self_signed_ssl_title": "Permitir certificados autofirmados",
   "advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
   "advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
   "advanced_settings_tile_title": "Avanzado",
   "advanced_settings_tile_title": "Avanzado",
   "advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
   "advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum ",
   "album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum ",
   "album_viewer_appbar_share_leave": "Abandonar álbum ",
   "album_viewer_appbar_share_leave": "Abandonar álbum ",
   "album_viewer_appbar_share_remove": "Eliminar del álbum ",
   "album_viewer_appbar_share_remove": "Eliminar del álbum ",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Agregar usuarios",
   "album_viewer_page_share_add_users": "Agregar usuarios",
   "all_people_page_title": "Personas",
   "all_people_page_title": "Personas",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "¿Estás seguro que quieres cerrar sesión?",
+  "app_bar_signout_dialog_ok": "Sí",
+  "app_bar_signout_dialog_title": "Cerrar sesión",
   "archive_page_no_archived_assets": "No se encontraron recursos archivados",
   "archive_page_no_archived_assets": "No se encontraron recursos archivados",
   "archive_page_title": "Archivo ({})",
   "archive_page_title": "Archivo ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico",
   "asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico",
@@ -59,7 +63,7 @@
   "backup_controller_page_background_battery_info_title": "Optimizaciones de batería",
   "backup_controller_page_background_battery_info_title": "Optimizaciones de batería",
   "backup_controller_page_background_charging": "Solo mientras se carga",
   "backup_controller_page_background_charging": "Solo mientras se carga",
   "backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
   "backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
-  "backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos activos: {}",
+  "backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos elementos: {}",
   "backup_controller_page_background_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos archivos sin necesidad de abrir la aplicación.",
   "backup_controller_page_background_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos archivos sin necesidad de abrir la aplicación.",
   "backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
   "backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
   "backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está activada",
   "backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está activada",
@@ -71,7 +75,7 @@
   "backup_controller_page_backup_sub": "Fotos y videos respaldados",
   "backup_controller_page_backup_sub": "Fotos y videos respaldados",
   "backup_controller_page_cancel": "Cancelar",
   "backup_controller_page_cancel": "Cancelar",
   "backup_controller_page_created": "Creado el: {}",
   "backup_controller_page_created": "Creado el: {}",
-  "backup_controller_page_desc_backup": "Active la copia de seguridad para cargar automáticamente los nuevos activos al servidor.",
+  "backup_controller_page_desc_backup": "Active la copia de seguridad para cargar automáticamente los nuevos elementos al servidor.",
   "backup_controller_page_excluded": "Excluido:",
   "backup_controller_page_excluded": "Excluido:",
   "backup_controller_page_failed": "Fallidos ({})",
   "backup_controller_page_failed": "Fallidos ({})",
   "backup_controller_page_filename": "Nombre del archivo: {} [{}]",
   "backup_controller_page_filename": "Nombre del archivo: {} [{}]",
@@ -94,11 +98,11 @@
   "backup_controller_page_uploading_file_info": "Cargando información del archivo",
   "backup_controller_page_uploading_file_info": "Cargando información del archivo",
   "backup_err_only_album": "No se puede eliminar el único álbum",
   "backup_err_only_album": "No se puede eliminar el único álbum",
   "backup_info_card_assets": "archivos",
   "backup_info_card_assets": "archivos",
-  "backup_manual_cancelled": "Cancelled",
-  "backup_manual_failed": "Failed",
-  "backup_manual_in_progress": "Upload already in progress. Try after sometime",
-  "backup_manual_success": "Success",
-  "backup_manual_title": "Upload status",
+  "backup_manual_cancelled": "Cancelado",
+  "backup_manual_failed": "Fallido",
+  "backup_manual_in_progress": "Subida en progreso. Espere",
+  "backup_manual_success": "Éxito",
+  "backup_manual_title": "Estado de la subida",
   "cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} archivos)",
   "cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} archivos)",
   "cache_settings_clear_cache_button": "Borrar caché",
   "cache_settings_clear_cache_button": "Borrar caché",
   "cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
   "cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Uso de caché",
   "cache_settings_statistics_title": "Uso de caché",
   "cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich",
   "cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich",
   "cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} archivos)",
   "cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} archivos)",
+  "cache_settings_tile_subtitle": "Controla el comportamiento del almacenamiento local",
+  "cache_settings_tile_title": "Almacenamiento local",
   "cache_settings_title": "Configuración de la caché",
   "cache_settings_title": "Configuración de la caché",
   "change_password_form_confirm_password": "Confirmar Contraseña",
   "change_password_form_confirm_password": "Confirmar Contraseña",
   "change_password_form_description": "Hola {firstName} {lastName},\n\nEsta es la primera vez que inicias sesión en el sistema o se ha solicitado cambiar tu contraseña. Por favor, introduce la nueva contraseña a continuación.",
   "change_password_form_description": "Hola {firstName} {lastName},\n\nEsta es la primera vez que inicias sesión en el sistema o se ha solicitado cambiar tu contraseña. Por favor, introduce la nueva contraseña a continuación.",
@@ -130,10 +136,10 @@
   "control_bottom_app_bar_delete": "Eliminar",
   "control_bottom_app_bar_delete": "Eliminar",
   "control_bottom_app_bar_favorite": "Favorito",
   "control_bottom_app_bar_favorite": "Favorito",
   "control_bottom_app_bar_share": "Compartir",
   "control_bottom_app_bar_share": "Compartir",
-  "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_share_to": "Enviar",
+  "control_bottom_app_bar_stack": "Apilar",
   "control_bottom_app_bar_unarchive": "Desarchivar",
   "control_bottom_app_bar_unarchive": "Desarchivar",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Subir",
   "create_album_page_untitled": "Sin título",
   "create_album_page_untitled": "Sin título",
   "create_shared_album_page_create": "Crear",
   "create_shared_album_page_create": "Crear",
   "create_shared_album_page_share": "Compartir",
   "create_shared_album_page_share": "Compartir",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "Cancelar",
   "delete_dialog_cancel": "Cancelar",
   "delete_dialog_ok": "Eliminar",
   "delete_dialog_ok": "Eliminar",
   "delete_dialog_title": "Eliminar Permanentemente",
   "delete_dialog_title": "Eliminar Permanentemente",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Estás seguro que quieres eliminar este enlace compartido",
+  "delete_shared_link_dialog_title": "Eliminar enlace compartido",
   "description_input_hint_text": "Agregar descripción...",
   "description_input_hint_text": "Agregar descripción...",
   "description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
   "description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
   "exif_bottom_sheet_description": "Agregar Descripción...",
   "exif_bottom_sheet_description": "Agregar Descripción...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.{failed} elementos ya existen en el álbum.",
   "home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.{failed} elementos ya existen en el álbum.",
   "home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
   "home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
   "home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
   "home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Los recursos locales no pueden ser archivados, omitiendo",
   "home_page_archive_err_local": "Los recursos locales no pueden ser archivados, omitiendo",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Construyendo la línea de tiempo",
   "home_page_building_timeline": "Construyendo la línea de tiempo",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Aún no se pueden archivar recursos locales, omitiendo",
   "home_page_favorite_err_local": "Aún no se pueden archivar recursos locales, omitiendo",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
   "home_page_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
-  "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
+  "home_page_upload_err_limit": "Solo se pueden subir 30 elementos simultáneamente, omitiendo",
   "image_viewer_page_state_provider_download_error": "Error de descarga",
   "image_viewer_page_state_provider_download_error": "Error de descarga",
   "image_viewer_page_state_provider_download_success": "Descarga exitosa",
   "image_viewer_page_state_provider_download_success": "Descarga exitosa",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Error al compartir",
   "library_page_albums": "Álbumes",
   "library_page_albums": "Álbumes",
   "library_page_archive": "Archivo",
   "library_page_archive": "Archivo",
   "library_page_device_albums": "Álbumes en el dispositivo",
   "library_page_device_albums": "Álbumes en el dispositivo",
@@ -179,10 +190,10 @@
   "library_page_new_album": "Nuevo álbum",
   "library_page_new_album": "Nuevo álbum",
   "library_page_sharing": "Compartiendo",
   "library_page_sharing": "Compartiendo",
   "library_page_sort_created": "Creado más recientemente",
   "library_page_sort_created": "Creado más recientemente",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Última modificación",
+  "library_page_sort_most_recent_photo": "Foto más reciente",
   "library_page_sort_title": "Título del álbum",
   "library_page_sort_title": "Título del álbum",
-  "login_disabled": "Login has been disabled",
+  "login_disabled": "El inicio de sesión ha sido desactivado",
   "login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
   "login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
   "login_form_button_text": "Iniciar Sesión",
   "login_form_button_text": "Iniciar Sesión",
   "login_form_email_hint": "tucorreo@correo.com",
   "login_form_email_hint": "tucorreo@correo.com",
@@ -196,7 +207,7 @@
   "login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
   "login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
   "login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
   "login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
   "login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
   "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": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
+  "login_form_handshake_exception": "Hubo un error de verificación del certificado del servidor. Activa el soporte para certificados autofirmados en las preferencias si estás usando un certificado autofirmado",
   "login_form_label_email": "Correo",
   "login_form_label_email": "Correo",
   "login_form_label_password": "Contraseña",
   "login_form_label_password": "Contraseña",
   "login_form_next_button": "Siguiente",
   "login_form_next_button": "Siguiente",
@@ -204,24 +215,24 @@
   "login_form_save_login": "Mantener la sesión iniciada",
   "login_form_save_login": "Mantener la sesión iniciada",
   "login_form_server_empty": "Agrega la URL del servidor.",
   "login_form_server_empty": "Agrega la URL del servidor.",
   "login_form_server_error": "No se pudo conectar al servidor.",
   "login_form_server_error": "No se pudo conectar al servidor.",
-  "login_password_changed_error": "There was an error updating your password",
-  "login_password_changed_success": "Password updated successfully",
-  "map_cannot_get_user_location": "Cannot get user's location",
-  "map_location_dialog_cancel": "Cancel",
-  "map_location_dialog_yes": "Yes",
-  "map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
-  "map_location_service_disabled_title": "Location Service disabled",
-  "map_no_assets_in_bounds": "No photos in this area",
-  "map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
-  "map_no_location_permission_title": "Location Permission denied",
-  "map_settings_dark_mode": "Dark mode",
-  "map_settings_dialog_cancel": "Cancel",
-  "map_settings_dialog_save": "Save",
-  "map_settings_dialog_title": "Map Settings",
-  "map_settings_include_show_archived": "Include Archived",
-  "map_settings_only_relative_range": "Date range",
-  "map_settings_only_show_favorites": "Show Favorite Only",
-  "map_zoom_to_see_photos": "Zoom out to see photos",
+  "login_password_changed_error": "Hubo un error actualizando la contraseña",
+  "login_password_changed_success": "Contraseña cambiado con éxito",
+  "map_cannot_get_user_location": "No se pudo obtener la posición del usuario",
+  "map_location_dialog_cancel": "Cancelar",
+  "map_location_dialog_yes": "",
+  "map_location_service_disabled_content": "Los servicios de ubicación deben estar activados para mostrar elementos de tu ubicación actual. Deseas activarlos ahora?",
+  "map_location_service_disabled_title": "Servicios de ubicación desactivados",
+  "map_no_assets_in_bounds": "No hay fotos en esta zona",
+  "map_no_location_permission_content": "Se necesitan permisos de ubicación para mostrar elementos de tu ubicación actual. Deseas activarlos ahora?",
+  "map_no_location_permission_title": "Permisos de ubicación denegados",
+  "map_settings_dark_mode": "Modo oscuro",
+  "map_settings_dialog_cancel": "Cancelar",
+  "map_settings_dialog_save": "Guardar",
+  "map_settings_dialog_title": "Ajustes mapa",
+  "map_settings_include_show_archived": "Incluir archivados",
+  "map_settings_only_relative_range": "Rango de fechas",
+  "map_settings_only_show_favorites": "Mostrar solo favoritas",
+  "map_zoom_to_see_photos": "Alejar para ver fotos",
   "monthly_title_text_date_format": "MMMM y",
   "monthly_title_text_date_format": "MMMM y",
   "motion_photos_page_title": "Foto en Movimiento",
   "motion_photos_page_title": "Foto en Movimiento",
   "notification_permission_dialog_cancel": "Cancelar",
   "notification_permission_dialog_cancel": "Cancelar",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{}  ya no podrá acceder a tus fotos",
   "partner_page_stop_sharing_content": "{}  ya no podrá acceder a tus fotos",
   "partner_page_stop_sharing_title": "¿Dejar de compartir tus fotos?",
   "partner_page_stop_sharing_title": "¿Dejar de compartir tus fotos?",
   "partner_page_title": "Compañero",
   "partner_page_title": "Compañero",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continuar de todos modos",
   "permission_onboarding_continue_anyway": "Continuar de todos modos",
   "permission_onboarding_get_started": "Empezar",
   "permission_onboarding_get_started": "Empezar",
   "permission_onboarding_go_to_settings": "Ir a configuración",
   "permission_onboarding_go_to_settings": "Ir a configuración",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.",
   "permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.",
   "profile_drawer_app_logs": "Registros",
   "profile_drawer_app_logs": "Registros",
   "profile_drawer_client_server_up_to_date": "El Cliente y el Servidor están actualizados",
   "profile_drawer_client_server_up_to_date": "El Cliente y el Servidor están actualizados",
+  "profile_drawer_documentation": "Documentación",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Configuración",
   "profile_drawer_settings": "Configuración",
   "profile_drawer_sign_out": "Cerrar Sesión",
   "profile_drawer_sign_out": "Cerrar Sesión",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Papelera",
   "recently_added_page_title": "Recién Agregadas",
   "recently_added_page_title": "Recién Agregadas",
   "search_bar_hint": "Busca tus fotos",
   "search_bar_hint": "Busca tus fotos",
   "search_page_categories": "Categorías",
   "search_page_categories": "Categorías",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Fallo al crear el álbum",
   "select_user_for_sharing_page_err_album": "Fallo al crear el álbum",
   "select_user_for_sharing_page_share_suggestions": "Sugerencias",
   "select_user_for_sharing_page_share_suggestions": "Sugerencias",
   "server_info_box_app_version": "Versión de la Aplicación",
   "server_info_box_app_version": "Versión de la Aplicación",
+  "server_info_box_server_url": "URL del servidor",
   "server_info_box_server_version": "Versión del Servidor",
   "server_info_box_server_version": "Versión del Servidor",
   "setting_image_viewer_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano (si está habilitada), finalmente carga la original (si está habilitada).",
   "setting_image_viewer_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano (si está habilitada), finalmente carga la original (si está habilitada).",
   "setting_image_viewer_original_subtitle": "Activar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
   "setting_image_viewer_original_subtitle": "Activar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
@@ -300,35 +315,44 @@
   "share_add_photos": "Agregar fotos",
   "share_add_photos": "Agregar fotos",
   "share_add_title": "Agregar un título",
   "share_add_title": "Agregar un título",
   "share_create_album": "Crear álbum",
   "share_create_album": "Crear álbum",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Preparando...",
   "share_dialog_preparing": "Preparando...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Enlaces compartidos",
+  "shared_link_create_app_bar_title": "Crear enlace compartido",
+  "shared_link_create_info": "Cualquier persona con el enlace puede ver las fotos seleccionadas",
+  "shared_link_create_submit_button": "Crear enlace",
+  "shared_link_edit_allow_download": "Permitir descargar a usuarios públicos",
+  "shared_link_edit_allow_upload": "Permitir subir a usuarios públicos",
+  "shared_link_edit_app_bar_title": "Editar enlace",
+  "shared_link_edit_change_expiry": "Cambiar fecha de caducidad",
+  "shared_link_edit_description": "Descripción",
+  "shared_link_edit_description_hint": "Introduce la descripción del enlace",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Contraseña",
+  "shared_link_edit_password_hint": "Introduce la contraseña del enlace",
+  "shared_link_edit_show_meta": "Mostrar metadatos",
+  "shared_link_edit_submit_button": "Actualizar enlace",
+  "shared_link_empty": "No tienes enlaces compartidos",
+  "shared_link_manage_links": "Administrar enlaces compartidos",
+  "share_done": "Hecho",
   "share_invite": "Invitar al álbum",
   "share_invite": "Invitar al álbum",
   "sharing_page_album": "Álbumes compartidos",
   "sharing_page_album": "Álbumes compartidos",
   "sharing_page_description": "Crea álbumes compartidos para compartir fotos y vídeos con las personas de tu red.",
   "sharing_page_description": "Crea álbumes compartidos para compartir fotos y vídeos con las personas de tu red.",
   "sharing_page_empty_list": "LISTA VACIA",
   "sharing_page_empty_list": "LISTA VACIA",
   "sharing_silver_appbar_create_shared_album": "Crear un álbum compartido",
   "sharing_silver_appbar_create_shared_album": "Crear un álbum compartido",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Enlaces compartidos",
   "sharing_silver_appbar_share_partner": "Compartir con el compañero",
   "sharing_silver_appbar_share_partner": "Compartir con el compañero",
   "tab_controller_nav_library": "Biblioteca",
   "tab_controller_nav_library": "Biblioteca",
   "tab_controller_nav_photos": "Fotos",
   "tab_controller_nav_photos": "Fotos",
   "tab_controller_nav_search": "Buscar",
   "tab_controller_nav_search": "Buscar",
   "tab_controller_nav_sharing": "Compartiendo",
   "tab_controller_nav_sharing": "Compartiendo",
   "theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
   "theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
-  "theme_setting_asset_list_tiles_per_row_title": "Número de activos por fila ({})",
+  "theme_setting_asset_list_tiles_per_row_title": "Número de elementos por fila ({})",
   "theme_setting_dark_mode_switch": "Modo oscuro",
   "theme_setting_dark_mode_switch": "Modo oscuro",
   "theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
   "theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
   "theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
   "theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
@@ -337,30 +361,30 @@
   "theme_setting_theme_title": "Tema",
   "theme_setting_theme_title": "Tema",
   "theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
   "theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
   "theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
   "theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
-  "translated_text_options": "Options",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
-  "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
-  "upload_dialog_cancel": "Cancel",
-  "upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
-  "upload_dialog_ok": "Upload",
-  "upload_dialog_title": "Upload Asset",
+  "translated_text_options": "Opciones",
+  "trash_page_delete": "Eliminar",
+  "trash_page_delete_all": "Eliminar todos",
+  "trash_page_empty_trash_btn": "Vaciar papelera",
+  "trash_page_empty_trash_dialog_content": "Estás seguro que quieres eliminar los elementos? Estos elementos serán eliminados de Immich permanentemente",
+  "trash_page_empty_trash_dialog_ok": "",
+  "trash_page_info": "Los archivos en la papelera serán eliminados automáticamente después de {} días",
+  "trash_page_no_assets": "No hay elementos en la papelera",
+  "trash_page_restore": "Restaurar",
+  "trash_page_restore_all": "Restaurar todos",
+  "trash_page_select_assets_btn": "Seleccionar elementos",
+  "trash_page_select_btn": "Seleccionar",
+  "trash_page_title": "Papelera ({})",
+  "upload_dialog_cancel": "Cancelar",
+  "upload_dialog_info": "Quieres hacer una copia de seguridad al servidor de los elementos seleccionados?",
+  "upload_dialog_ok": "Subir",
+  "upload_dialog_title": "Subir elementos",
   "version_announcement_overlay_ack": "Aceptar",
   "version_announcement_overlay_ack": "Aceptar",
   "version_announcement_overlay_release_notes": "notas de versión",
   "version_announcement_overlay_release_notes": "notas de versión",
   "version_announcement_overlay_text_1": "Hola amigo, hay una nueva versión de",
   "version_announcement_overlay_text_1": "Hola amigo, hay una nueva versión de",
   "version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
   "version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
   "version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
   "version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
   "version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89",
   "version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Quitar de la pila",
+  "viewer_stack_use_as_main_asset": "Usar como elemento principal",
+  "viewer_unstack": "Desapilar"
 }
 }

+ 99 - 75
mobile/assets/i18n/es-MX.json

@@ -3,8 +3,8 @@
   "add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
   "add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
   "advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
   "advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
   "advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
   "advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
-  "advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
-  "advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
+  "advanced_settings_self_signed_ssl_subtitle": "Omitir verificación del certificado SSL del servidor. Requerido para certificados autofirmados",
+  "advanced_settings_self_signed_ssl_title": "Permitir certificados autofirmados",
   "advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
   "advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
   "advanced_settings_tile_title": "Avanzado",
   "advanced_settings_tile_title": "Avanzado",
   "advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
   "advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum",
   "album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum",
   "album_viewer_appbar_share_leave": "Abandonar álbum ",
   "album_viewer_appbar_share_leave": "Abandonar álbum ",
   "album_viewer_appbar_share_remove": "Eliminar del álbum",
   "album_viewer_appbar_share_remove": "Eliminar del álbum",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Agregar usuarios",
   "album_viewer_page_share_add_users": "Agregar usuarios",
   "all_people_page_title": "Personas",
   "all_people_page_title": "Personas",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "¿Estás seguro que quieres cerrar sesión?",
+  "app_bar_signout_dialog_ok": "Sí",
+  "app_bar_signout_dialog_title": "Cerrar sesión",
   "archive_page_no_archived_assets": "No se encontraron recursos archivados",
   "archive_page_no_archived_assets": "No se encontraron recursos archivados",
   "archive_page_title": "Archivo ({})",
   "archive_page_title": "Archivo ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico",
   "asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico",
@@ -59,7 +63,7 @@
   "backup_controller_page_background_battery_info_title": "Optimizaciones de batería",
   "backup_controller_page_background_battery_info_title": "Optimizaciones de batería",
   "backup_controller_page_background_charging": "Solo mientras se carga",
   "backup_controller_page_background_charging": "Solo mientras se carga",
   "backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
   "backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
-  "backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos activos: {}",
+  "backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos elementos: {}",
   "backup_controller_page_background_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos archivos sin necesidad de abrir la aplicación.",
   "backup_controller_page_background_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos archivos sin necesidad de abrir la aplicación.",
   "backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
   "backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
   "backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está desactivada",
   "backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está desactivada",
@@ -94,11 +98,11 @@
   "backup_controller_page_uploading_file_info": "Cargando información del archivo",
   "backup_controller_page_uploading_file_info": "Cargando información del archivo",
   "backup_err_only_album": "No se puede eliminar el único álbum",
   "backup_err_only_album": "No se puede eliminar el único álbum",
   "backup_info_card_assets": "archivos",
   "backup_info_card_assets": "archivos",
-  "backup_manual_cancelled": "Cancelled",
-  "backup_manual_failed": "Failed",
-  "backup_manual_in_progress": "Upload already in progress. Try after sometime",
-  "backup_manual_success": "Success",
-  "backup_manual_title": "Upload status",
+  "backup_manual_cancelled": "Cancelado",
+  "backup_manual_failed": "Fallido",
+  "backup_manual_in_progress": "Subida en progreso. Espere",
+  "backup_manual_success": "Éxito",
+  "backup_manual_title": "Estado de la subida",
   "cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} archivos)",
   "cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} archivos)",
   "cache_settings_clear_cache_button": "Borrar caché",
   "cache_settings_clear_cache_button": "Borrar caché",
   "cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
   "cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Uso de caché",
   "cache_settings_statistics_title": "Uso de caché",
   "cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich",
   "cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich",
   "cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} archivos)",
   "cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} archivos)",
+  "cache_settings_tile_subtitle": "Controla el comportamiento del almacenamiento local",
+  "cache_settings_tile_title": "Almacenamiento local",
   "cache_settings_title": "Configuración de la caché",
   "cache_settings_title": "Configuración de la caché",
   "change_password_form_confirm_password": "Confirmar Contraseña",
   "change_password_form_confirm_password": "Confirmar Contraseña",
   "change_password_form_description": "Hola {firstName} {lastName},\n\nEsta es la primera vez que inicias sesión en el sistema o se ha solicitado cambiar tu contraseña. Por favor, introduce la nueva contraseña a continuación.",
   "change_password_form_description": "Hola {firstName} {lastName},\n\nEsta es la primera vez que inicias sesión en el sistema o se ha solicitado cambiar tu contraseña. Por favor, introduce la nueva contraseña a continuación.",
@@ -130,10 +136,10 @@
   "control_bottom_app_bar_delete": "Eliminar",
   "control_bottom_app_bar_delete": "Eliminar",
   "control_bottom_app_bar_favorite": "Favorito",
   "control_bottom_app_bar_favorite": "Favorito",
   "control_bottom_app_bar_share": "Compartir",
   "control_bottom_app_bar_share": "Compartir",
-  "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_share_to": "Enviar",
+  "control_bottom_app_bar_stack": "Apilar",
   "control_bottom_app_bar_unarchive": "Desarchivar",
   "control_bottom_app_bar_unarchive": "Desarchivar",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Subir",
   "create_album_page_untitled": "Sin título",
   "create_album_page_untitled": "Sin título",
   "create_shared_album_page_create": "Crear",
   "create_shared_album_page_create": "Crear",
   "create_shared_album_page_share": "Compartir",
   "create_shared_album_page_share": "Compartir",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "Cancelar",
   "delete_dialog_cancel": "Cancelar",
   "delete_dialog_ok": "Eliminar",
   "delete_dialog_ok": "Eliminar",
   "delete_dialog_title": "Eliminar permanentemente",
   "delete_dialog_title": "Eliminar permanentemente",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Estás seguro que quieres eliminar este enlace compartido",
+  "delete_shared_link_dialog_title": "Eliminar enlace compartido",
   "description_input_hint_text": "Agregar descripción...",
   "description_input_hint_text": "Agregar descripción...",
   "description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
   "description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
   "exif_bottom_sheet_description": "Agregar Descripción...",
   "exif_bottom_sheet_description": "Agregar Descripción...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.\n{failed} elementos ya existen en el álbum.",
   "home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.\n{failed} elementos ya existen en el álbum.",
   "home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
   "home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
   "home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
   "home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Los recursos locales no pueden ser archivados, omitiendo",
   "home_page_archive_err_local": "Los recursos locales no pueden ser archivados, omitiendo",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Construyendo la línea de tiempo",
   "home_page_building_timeline": "Construyendo la línea de tiempo",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Aún no se pueden archivar recursos locales, omitiendo",
   "home_page_favorite_err_local": "Aún no se pueden archivar recursos locales, omitiendo",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
   "home_page_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
-  "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
+  "home_page_upload_err_limit": "Solo se pueden subir 30 elementos simultáneamente, omitiendo",
   "image_viewer_page_state_provider_download_error": "Error de descarga",
   "image_viewer_page_state_provider_download_error": "Error de descarga",
   "image_viewer_page_state_provider_download_success": "Descarga exitosa",
   "image_viewer_page_state_provider_download_success": "Descarga exitosa",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Error al compartir",
   "library_page_albums": "Álbumes",
   "library_page_albums": "Álbumes",
   "library_page_archive": "Archivo",
   "library_page_archive": "Archivo",
   "library_page_device_albums": "Álbumes en el dispositivo",
   "library_page_device_albums": "Álbumes en el dispositivo",
@@ -179,10 +190,10 @@
   "library_page_new_album": "Nuevo álbum",
   "library_page_new_album": "Nuevo álbum",
   "library_page_sharing": "Compartiendo",
   "library_page_sharing": "Compartiendo",
   "library_page_sort_created": "Creado más recientemente",
   "library_page_sort_created": "Creado más recientemente",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Última modificación",
+  "library_page_sort_most_recent_photo": "Foto más reciente",
   "library_page_sort_title": "Título del álbum",
   "library_page_sort_title": "Título del álbum",
-  "login_disabled": "Login has been disabled",
+  "login_disabled": "El inicio de sesión ha sido desactivado",
   "login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
   "login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
   "login_form_button_text": "Iniciar sesión",
   "login_form_button_text": "Iniciar sesión",
   "login_form_email_hint": "tucorreo@correo.com",
   "login_form_email_hint": "tucorreo@correo.com",
@@ -196,7 +207,7 @@
   "login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
   "login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
   "login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
   "login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
   "login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
   "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": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
+  "login_form_handshake_exception": "Hubo un error de verificación del certificado del servidor. Activa el soporte para certificados autofirmados en las preferencias si estás usando un certificado autofirmado",
   "login_form_label_email": "Correo electrónico",
   "login_form_label_email": "Correo electrónico",
   "login_form_label_password": "Contraseña",
   "login_form_label_password": "Contraseña",
   "login_form_next_button": "Siguiente",
   "login_form_next_button": "Siguiente",
@@ -204,24 +215,24 @@
   "login_form_save_login": "Permanecer conectado",
   "login_form_save_login": "Permanecer conectado",
   "login_form_server_empty": "Agrega la URL del servidor.",
   "login_form_server_empty": "Agrega la URL del servidor.",
   "login_form_server_error": "No se pudo conectar al servidor.",
   "login_form_server_error": "No se pudo conectar al servidor.",
-  "login_password_changed_error": "There was an error updating your password",
-  "login_password_changed_success": "Password updated successfully",
-  "map_cannot_get_user_location": "Cannot get user's location",
-  "map_location_dialog_cancel": "Cancel",
-  "map_location_dialog_yes": "Yes",
-  "map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
-  "map_location_service_disabled_title": "Location Service disabled",
-  "map_no_assets_in_bounds": "No photos in this area",
-  "map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
-  "map_no_location_permission_title": "Location Permission denied",
-  "map_settings_dark_mode": "Dark mode",
-  "map_settings_dialog_cancel": "Cancel",
-  "map_settings_dialog_save": "Save",
-  "map_settings_dialog_title": "Map Settings",
-  "map_settings_include_show_archived": "Include Archived",
-  "map_settings_only_relative_range": "Date range",
-  "map_settings_only_show_favorites": "Show Favorite Only",
-  "map_zoom_to_see_photos": "Zoom out to see photos",
+  "login_password_changed_error": "Hubo un error actualizando la contraseña",
+  "login_password_changed_success": "Contraseña cambiado con éxito",
+  "map_cannot_get_user_location": "No se pudo obtener la posición del usuario",
+  "map_location_dialog_cancel": "Cancelar",
+  "map_location_dialog_yes": "",
+  "map_location_service_disabled_content": "Los servicios de localización deben estar activados para mostrar elementos de tu ubicación actual. Deseas activarlos ahora?",
+  "map_location_service_disabled_title": "Servicios de localización desactivados",
+  "map_no_assets_in_bounds": "No hay fotos en esta zona",
+  "map_no_location_permission_content": "Se necesitan permisos de ubicación para mostrar elementos de tu ubicación actual. Deseas activarlos ahora?",
+  "map_no_location_permission_title": "Permisos de ubicación denegados",
+  "map_settings_dark_mode": "Modo oscuro",
+  "map_settings_dialog_cancel": "Cancelar",
+  "map_settings_dialog_save": "Guardar",
+  "map_settings_dialog_title": "Ajustes mapa",
+  "map_settings_include_show_archived": "Incluir archivados",
+  "map_settings_only_relative_range": "Rango de fechas",
+  "map_settings_only_show_favorites": "Mostrar solo favoritas",
+  "map_zoom_to_see_photos": "Alejar para ver fotos",
   "monthly_title_text_date_format": "MMMM y",
   "monthly_title_text_date_format": "MMMM y",
   "motion_photos_page_title": "Foto en Movimiento",
   "motion_photos_page_title": "Foto en Movimiento",
   "notification_permission_dialog_cancel": "Cancelar",
   "notification_permission_dialog_cancel": "Cancelar",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{}  ya no podrá acceder a tus fotos",
   "partner_page_stop_sharing_content": "{}  ya no podrá acceder a tus fotos",
   "partner_page_stop_sharing_title": "¿Dejar de compartir tus fotos?",
   "partner_page_stop_sharing_title": "¿Dejar de compartir tus fotos?",
   "partner_page_title": "Compañero",
   "partner_page_title": "Compañero",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continuar de todos modos",
   "permission_onboarding_continue_anyway": "Continuar de todos modos",
   "permission_onboarding_get_started": "Empezar",
   "permission_onboarding_get_started": "Empezar",
   "permission_onboarding_go_to_settings": "Ir a configuración",
   "permission_onboarding_go_to_settings": "Ir a configuración",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.",
   "permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.",
   "profile_drawer_app_logs": "Registros",
   "profile_drawer_app_logs": "Registros",
   "profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
   "profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
+  "profile_drawer_documentation": "Documentación",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Configuración",
   "profile_drawer_settings": "Configuración",
   "profile_drawer_sign_out": "Cerrar sesión",
   "profile_drawer_sign_out": "Cerrar sesión",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Papelera",
   "recently_added_page_title": "Recién Agregadas",
   "recently_added_page_title": "Recién Agregadas",
   "search_bar_hint": "Busca tus fotos",
   "search_bar_hint": "Busca tus fotos",
   "search_page_categories": "Categorías",
   "search_page_categories": "Categorías",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Error al crear álbum",
   "select_user_for_sharing_page_err_album": "Error al crear álbum",
   "select_user_for_sharing_page_share_suggestions": "Sugerencias",
   "select_user_for_sharing_page_share_suggestions": "Sugerencias",
   "server_info_box_app_version": "Versión de la Aplicación",
   "server_info_box_app_version": "Versión de la Aplicación",
+  "server_info_box_server_url": "URL del servidor",
   "server_info_box_server_version": "Versión del Servidor",
   "server_info_box_server_version": "Versión del Servidor",
   "setting_image_viewer_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano (si está habilitada), finalmente carga la original (si está habilitada).",
   "setting_image_viewer_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano (si está habilitada), finalmente carga la original (si está habilitada).",
   "setting_image_viewer_original_subtitle": "Activar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
   "setting_image_viewer_original_subtitle": "Activar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
@@ -300,35 +315,44 @@
   "share_add_photos": "Agregar fotos",
   "share_add_photos": "Agregar fotos",
   "share_add_title": "Agregar un título",
   "share_add_title": "Agregar un título",
   "share_create_album": "Crear álbum",
   "share_create_album": "Crear álbum",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Preparando...",
   "share_dialog_preparing": "Preparando...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Enlaces compartidos",
+  "shared_link_create_app_bar_title": "Crear enlace compartido",
+  "shared_link_create_info": "Cualquier persona con el enlace puede ver las fotos seleccionadas",
+  "shared_link_create_submit_button": "Crear enlace",
+  "shared_link_edit_allow_download": "Permitir descargar a usuarios públicos",
+  "shared_link_edit_allow_upload": "Permitir subir a usuarios públicos",
+  "shared_link_edit_app_bar_title": "Editar enlace",
+  "shared_link_edit_change_expiry": "Cambiar fecha de caducidad",
+  "shared_link_edit_description": "Descripción",
+  "shared_link_edit_description_hint": "Introduce la descripción del enlace",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Contraseña",
+  "shared_link_edit_password_hint": "Introduce la contraseña del enlace",
+  "shared_link_edit_show_meta": "Mostrar metadatos",
+  "shared_link_edit_submit_button": "Actualizar enlace",
+  "shared_link_empty": "No tienes enlaces compartidos",
+  "shared_link_manage_links": "Administrar enlaces compartidos",
+  "share_done": "Hecho",
   "share_invite": "Invitar al álbum",
   "share_invite": "Invitar al álbum",
   "sharing_page_album": "Álbumes compartidos",
   "sharing_page_album": "Álbumes compartidos",
   "sharing_page_description": "Crea álbumes compartidos para compartir fotos y videos con personas de tu red.",
   "sharing_page_description": "Crea álbumes compartidos para compartir fotos y videos con personas de tu red.",
   "sharing_page_empty_list": "LISTA VACIA",
   "sharing_page_empty_list": "LISTA VACIA",
   "sharing_silver_appbar_create_shared_album": "Crear álbum compartido",
   "sharing_silver_appbar_create_shared_album": "Crear álbum compartido",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Enlaces compartidos",
   "sharing_silver_appbar_share_partner": "Compartir con compañero",
   "sharing_silver_appbar_share_partner": "Compartir con compañero",
   "tab_controller_nav_library": "Biblioteca",
   "tab_controller_nav_library": "Biblioteca",
   "tab_controller_nav_photos": "Fotos",
   "tab_controller_nav_photos": "Fotos",
   "tab_controller_nav_search": "Buscar",
   "tab_controller_nav_search": "Buscar",
   "tab_controller_nav_sharing": "Compartiendo",
   "tab_controller_nav_sharing": "Compartiendo",
   "theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
   "theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
-  "theme_setting_asset_list_tiles_per_row_title": "Número de activos por fila ({})",
+  "theme_setting_asset_list_tiles_per_row_title": "Número de elementos por fila ({})",
   "theme_setting_dark_mode_switch": "Modo oscuro",
   "theme_setting_dark_mode_switch": "Modo oscuro",
   "theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
   "theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
   "theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
   "theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
@@ -337,30 +361,30 @@
   "theme_setting_theme_title": "Tema",
   "theme_setting_theme_title": "Tema",
   "theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
   "theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
   "theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
   "theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
-  "translated_text_options": "Options",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
-  "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
-  "upload_dialog_cancel": "Cancel",
-  "upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
-  "upload_dialog_ok": "Upload",
-  "upload_dialog_title": "Upload Asset",
+  "translated_text_options": "Opciones",
+  "trash_page_delete": "Eliminar",
+  "trash_page_delete_all": "Eliminar todos",
+  "trash_page_empty_trash_btn": "Vaciar papelera",
+  "trash_page_empty_trash_dialog_content": "Estás seguro que quieres eliminar los elementos? Estos elementos serán eliminados de Immich permanentemente",
+  "trash_page_empty_trash_dialog_ok": "",
+  "trash_page_info": "Los archivos en la papelera serán eliminados automáticamente después de {} días",
+  "trash_page_no_assets": "No hay elementos en la papelera",
+  "trash_page_restore": "Restaurar",
+  "trash_page_restore_all": "Restaurar todos",
+  "trash_page_select_assets_btn": "Seleccionar elementos",
+  "trash_page_select_btn": "Seleccionar",
+  "trash_page_title": "Papelera ({})",
+  "upload_dialog_cancel": "Cancelar",
+  "upload_dialog_info": "Quieres hacer una copia de seguridad al servidor de los elementos seleccionados?",
+  "upload_dialog_ok": "Subir",
+  "upload_dialog_title": "Subir elementos",
   "version_announcement_overlay_ack": "Aceptar",
   "version_announcement_overlay_ack": "Aceptar",
   "version_announcement_overlay_release_notes": "notas de la versión",
   "version_announcement_overlay_release_notes": "notas de la versión",
   "version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
   "version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
   "version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
   "version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
   "version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
   "version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
   "version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89",
   "version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Quitar de la pila",
+  "viewer_stack_use_as_main_asset": "Usar como elemento principal",
+  "viewer_unstack": "Desapilar"
 }
 }

+ 100 - 76
mobile/assets/i18n/es-PE.json

@@ -3,8 +3,8 @@
   "add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
   "add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
   "advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
   "advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
   "advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
   "advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
-  "advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
-  "advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
+  "advanced_settings_self_signed_ssl_subtitle": "Omitir verificación del certificado SSL del servidor. Requerido para certificados autofirmados",
+  "advanced_settings_self_signed_ssl_title": "Permitir certificados autofirmados",
   "advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
   "advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
   "advanced_settings_tile_title": "Avanzado",
   "advanced_settings_tile_title": "Avanzado",
   "advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
   "advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum",
   "album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum",
   "album_viewer_appbar_share_leave": "Abandonar álbum ",
   "album_viewer_appbar_share_leave": "Abandonar álbum ",
   "album_viewer_appbar_share_remove": "Eliminar del álbum",
   "album_viewer_appbar_share_remove": "Eliminar del álbum",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Agregar usuarios",
   "album_viewer_page_share_add_users": "Agregar usuarios",
   "all_people_page_title": "Personas",
   "all_people_page_title": "Personas",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "¿Estás seguro que quieres cerrar sesión?",
+  "app_bar_signout_dialog_ok": "Sí",
+  "app_bar_signout_dialog_title": "Cerrar sesión",
   "archive_page_no_archived_assets": "No se encontraron recursos archivados",
   "archive_page_no_archived_assets": "No se encontraron recursos archivados",
   "archive_page_title": "Archivo ({})",
   "archive_page_title": "Archivo ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico",
   "asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico",
@@ -59,7 +63,7 @@
   "backup_controller_page_background_battery_info_title": "Optimizaciones de batería",
   "backup_controller_page_background_battery_info_title": "Optimizaciones de batería",
   "backup_controller_page_background_charging": "Solo mientras se carga",
   "backup_controller_page_background_charging": "Solo mientras se carga",
   "backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
   "backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
-  "backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos activos: {}",
+  "backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos elementos: {}",
   "backup_controller_page_background_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos archivos sin necesidad de abrir la aplicación.",
   "backup_controller_page_background_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos archivos sin necesidad de abrir la aplicación.",
   "backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
   "backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
   "backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está desactivada",
   "backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está desactivada",
@@ -71,7 +75,7 @@
   "backup_controller_page_backup_sub": "Fotos y videos respaldados",
   "backup_controller_page_backup_sub": "Fotos y videos respaldados",
   "backup_controller_page_cancel": "Cancelar",
   "backup_controller_page_cancel": "Cancelar",
   "backup_controller_page_created": "Creado el: {}",
   "backup_controller_page_created": "Creado el: {}",
-  "backup_controller_page_desc_backup": "Activa la copia de seguridad en primer plano para cargar automáticamente nuevos recursos al servidor al abrir la aplicación.",
+  "backup_controller_page_desc_backup": "Active la copia de seguridad para cargar automáticamente los nuevos elementos al servidor.",
   "backup_controller_page_excluded": "Excluido:",
   "backup_controller_page_excluded": "Excluido:",
   "backup_controller_page_failed": "Fallidos ({})",
   "backup_controller_page_failed": "Fallidos ({})",
   "backup_controller_page_filename": "Nombre del archivo: {} [{}]",
   "backup_controller_page_filename": "Nombre del archivo: {} [{}]",
@@ -94,11 +98,11 @@
   "backup_controller_page_uploading_file_info": "Cargando información del archivo",
   "backup_controller_page_uploading_file_info": "Cargando información del archivo",
   "backup_err_only_album": "No se puede eliminar el único álbum",
   "backup_err_only_album": "No se puede eliminar el único álbum",
   "backup_info_card_assets": "archivos",
   "backup_info_card_assets": "archivos",
-  "backup_manual_cancelled": "Cancelled",
-  "backup_manual_failed": "Failed",
-  "backup_manual_in_progress": "Upload already in progress. Try after sometime",
-  "backup_manual_success": "Success",
-  "backup_manual_title": "Upload status",
+  "backup_manual_cancelled": "Cancelado",
+  "backup_manual_failed": "Fallido",
+  "backup_manual_in_progress": "Subida en progreso. Espere",
+  "backup_manual_success": "Éxito",
+  "backup_manual_title": "Estado de la subida",
   "cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} archivos)",
   "cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} archivos)",
   "cache_settings_clear_cache_button": "Borrar caché",
   "cache_settings_clear_cache_button": "Borrar caché",
   "cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
   "cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Uso de caché",
   "cache_settings_statistics_title": "Uso de caché",
   "cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich",
   "cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich",
   "cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} archivos)",
   "cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} archivos)",
+  "cache_settings_tile_subtitle": "Controla el comportamiento del almacenamiento local",
+  "cache_settings_tile_title": "Almacenamiento local",
   "cache_settings_title": "Configuración de la caché",
   "cache_settings_title": "Configuración de la caché",
   "change_password_form_confirm_password": "Confirmar Contraseña",
   "change_password_form_confirm_password": "Confirmar Contraseña",
   "change_password_form_description": "Hola {firstName} {lastName},\n\nEsta es la primera vez que inicias sesión en el sistema o se ha solicitado cambiar tu contraseña. Por favor, introduce la nueva contraseña a continuación.",
   "change_password_form_description": "Hola {firstName} {lastName},\n\nEsta es la primera vez que inicias sesión en el sistema o se ha solicitado cambiar tu contraseña. Por favor, introduce la nueva contraseña a continuación.",
@@ -130,10 +136,10 @@
   "control_bottom_app_bar_delete": "Eliminar",
   "control_bottom_app_bar_delete": "Eliminar",
   "control_bottom_app_bar_favorite": "Favorito",
   "control_bottom_app_bar_favorite": "Favorito",
   "control_bottom_app_bar_share": "Compartir",
   "control_bottom_app_bar_share": "Compartir",
-  "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_share_to": "Enviar",
+  "control_bottom_app_bar_stack": "Apilar",
   "control_bottom_app_bar_unarchive": "Desarchivar",
   "control_bottom_app_bar_unarchive": "Desarchivar",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Subir",
   "create_album_page_untitled": "Sin título",
   "create_album_page_untitled": "Sin título",
   "create_shared_album_page_create": "Crear",
   "create_shared_album_page_create": "Crear",
   "create_shared_album_page_share": "Compartir",
   "create_shared_album_page_share": "Compartir",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "Cancelar",
   "delete_dialog_cancel": "Cancelar",
   "delete_dialog_ok": "Eliminar",
   "delete_dialog_ok": "Eliminar",
   "delete_dialog_title": "Eliminar permanentemente",
   "delete_dialog_title": "Eliminar permanentemente",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Estás seguro que quieres eliminar este enlace compartido",
+  "delete_shared_link_dialog_title": "Eliminar enlace compartido",
   "description_input_hint_text": "Agregar descripción...",
   "description_input_hint_text": "Agregar descripción...",
   "description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
   "description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
   "exif_bottom_sheet_description": "Agregar Descripción...",
   "exif_bottom_sheet_description": "Agregar Descripción...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.\n{failed} elementos ya existen en el álbum.",
   "home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.\n{failed} elementos ya existen en el álbum.",
   "home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
   "home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
   "home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
   "home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Los recursos locales no pueden ser archivados, omitiendo",
   "home_page_archive_err_local": "Los recursos locales no pueden ser archivados, omitiendo",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Construyendo la línea de tiempo",
   "home_page_building_timeline": "Construyendo la línea de tiempo",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Aún no se pueden archivar recursos locales, omitiendo",
   "home_page_favorite_err_local": "Aún no se pueden archivar recursos locales, omitiendo",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
   "home_page_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
-  "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
+  "home_page_upload_err_limit": "Solo se pueden subir 30 elementos simultáneamente, omitiendo",
   "image_viewer_page_state_provider_download_error": "Error de descarga",
   "image_viewer_page_state_provider_download_error": "Error de descarga",
   "image_viewer_page_state_provider_download_success": "Descarga exitosa",
   "image_viewer_page_state_provider_download_success": "Descarga exitosa",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Error al compartir",
   "library_page_albums": "Álbumes",
   "library_page_albums": "Álbumes",
   "library_page_archive": "Archivo",
   "library_page_archive": "Archivo",
   "library_page_device_albums": "Álbumes en el dispositivo",
   "library_page_device_albums": "Álbumes en el dispositivo",
@@ -179,10 +190,10 @@
   "library_page_new_album": "Nuevo álbum",
   "library_page_new_album": "Nuevo álbum",
   "library_page_sharing": "Compartiendo",
   "library_page_sharing": "Compartiendo",
   "library_page_sort_created": "Creado más recientemente",
   "library_page_sort_created": "Creado más recientemente",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Última modificación",
+  "library_page_sort_most_recent_photo": "Foto más reciente",
   "library_page_sort_title": "Título del álbum",
   "library_page_sort_title": "Título del álbum",
-  "login_disabled": "Login has been disabled",
+  "login_disabled": "El inicio de sesión ha sido desactivado",
   "login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
   "login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
   "login_form_button_text": "Iniciar sesión",
   "login_form_button_text": "Iniciar sesión",
   "login_form_email_hint": "tucorreo@correo.com",
   "login_form_email_hint": "tucorreo@correo.com",
@@ -196,7 +207,7 @@
   "login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
   "login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
   "login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
   "login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
   "login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
   "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": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
+  "login_form_handshake_exception": "Hubo un error de verificación del certificado del servidor. Activa el soporte para certificados autofirmados en las preferencias si estás usando un certificado autofirmado",
   "login_form_label_email": "Correo electrónico",
   "login_form_label_email": "Correo electrónico",
   "login_form_label_password": "Contraseña",
   "login_form_label_password": "Contraseña",
   "login_form_next_button": "Siguiente",
   "login_form_next_button": "Siguiente",
@@ -204,24 +215,24 @@
   "login_form_save_login": "Permanecer conectado",
   "login_form_save_login": "Permanecer conectado",
   "login_form_server_empty": "Agrega la URL del servidor.",
   "login_form_server_empty": "Agrega la URL del servidor.",
   "login_form_server_error": "No se pudo conectar al servidor.",
   "login_form_server_error": "No se pudo conectar al servidor.",
-  "login_password_changed_error": "There was an error updating your password",
-  "login_password_changed_success": "Password updated successfully",
-  "map_cannot_get_user_location": "Cannot get user's location",
-  "map_location_dialog_cancel": "Cancel",
-  "map_location_dialog_yes": "Yes",
-  "map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
-  "map_location_service_disabled_title": "Location Service disabled",
-  "map_no_assets_in_bounds": "No photos in this area",
-  "map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
-  "map_no_location_permission_title": "Location Permission denied",
-  "map_settings_dark_mode": "Dark mode",
-  "map_settings_dialog_cancel": "Cancel",
-  "map_settings_dialog_save": "Save",
-  "map_settings_dialog_title": "Map Settings",
-  "map_settings_include_show_archived": "Include Archived",
-  "map_settings_only_relative_range": "Date range",
-  "map_settings_only_show_favorites": "Show Favorite Only",
-  "map_zoom_to_see_photos": "Zoom out to see photos",
+  "login_password_changed_error": "Hubo un error actualizando la contraseña",
+  "login_password_changed_success": "Contraseña cambiado con éxito",
+  "map_cannot_get_user_location": "No se pudo obtener la posición del usuario",
+  "map_location_dialog_cancel": "Cancelar",
+  "map_location_dialog_yes": "",
+  "map_location_service_disabled_content": "Los servicios de localización deben estar activados para mostrar elementos de tu ubicación actual. Deseas activarlos ahora?",
+  "map_location_service_disabled_title": "Servicios de localización desactivados",
+  "map_no_assets_in_bounds": "No hay fotos en esta zona",
+  "map_no_location_permission_content": "Se necesitan permisos de ubicación para mostrar elementos de tu ubicación actual. Deseas activarlos ahora?",
+  "map_no_location_permission_title": "Permisos de ubicación denegados",
+  "map_settings_dark_mode": "Modo oscuro",
+  "map_settings_dialog_cancel": "Cancelar",
+  "map_settings_dialog_save": "Guardar",
+  "map_settings_dialog_title": "Ajustes mapa",
+  "map_settings_include_show_archived": "Incluir archivados",
+  "map_settings_only_relative_range": "Rango de fechas",
+  "map_settings_only_show_favorites": "Mostrar solo favoritas",
+  "map_zoom_to_see_photos": "Alejar para ver fotos",
   "monthly_title_text_date_format": "MMMM y",
   "monthly_title_text_date_format": "MMMM y",
   "motion_photos_page_title": "Foto en Movimiento",
   "motion_photos_page_title": "Foto en Movimiento",
   "notification_permission_dialog_cancel": "Cancelar",
   "notification_permission_dialog_cancel": "Cancelar",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{}  ya no podrá acceder a tus fotos",
   "partner_page_stop_sharing_content": "{}  ya no podrá acceder a tus fotos",
   "partner_page_stop_sharing_title": "¿Dejar de compartir tus fotos?",
   "partner_page_stop_sharing_title": "¿Dejar de compartir tus fotos?",
   "partner_page_title": "Compañero",
   "partner_page_title": "Compañero",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continuar de todos modos",
   "permission_onboarding_continue_anyway": "Continuar de todos modos",
   "permission_onboarding_get_started": "Empezar",
   "permission_onboarding_get_started": "Empezar",
   "permission_onboarding_go_to_settings": "Ir a configuración",
   "permission_onboarding_go_to_settings": "Ir a configuración",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.",
   "permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.",
   "profile_drawer_app_logs": "Registros",
   "profile_drawer_app_logs": "Registros",
   "profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
   "profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
+  "profile_drawer_documentation": "Documentación",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Configuración",
   "profile_drawer_settings": "Configuración",
   "profile_drawer_sign_out": "Cerrar sesión",
   "profile_drawer_sign_out": "Cerrar sesión",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Papelera",
   "recently_added_page_title": "Recién Agregadas",
   "recently_added_page_title": "Recién Agregadas",
   "search_bar_hint": "Busca tus fotos",
   "search_bar_hint": "Busca tus fotos",
   "search_page_categories": "Categorías",
   "search_page_categories": "Categorías",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Error al crear álbum",
   "select_user_for_sharing_page_err_album": "Error al crear álbum",
   "select_user_for_sharing_page_share_suggestions": "Sugerencias",
   "select_user_for_sharing_page_share_suggestions": "Sugerencias",
   "server_info_box_app_version": "Versión de la Aplicación",
   "server_info_box_app_version": "Versión de la Aplicación",
+  "server_info_box_server_url": "URL del servidor",
   "server_info_box_server_version": "Versión del Servidor",
   "server_info_box_server_version": "Versión del Servidor",
   "setting_image_viewer_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano (si está habilitada), finalmente carga la original (si está habilitada).",
   "setting_image_viewer_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano (si está habilitada), finalmente carga la original (si está habilitada).",
   "setting_image_viewer_original_subtitle": "Activar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
   "setting_image_viewer_original_subtitle": "Activar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
@@ -300,35 +315,44 @@
   "share_add_photos": "Agregar fotos",
   "share_add_photos": "Agregar fotos",
   "share_add_title": "Agregar un título",
   "share_add_title": "Agregar un título",
   "share_create_album": "Crear álbum",
   "share_create_album": "Crear álbum",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Preparando...",
   "share_dialog_preparing": "Preparando...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Enlaces compartidos",
+  "shared_link_create_app_bar_title": "Crear enlace compartido",
+  "shared_link_create_info": "Cualquier persona con el enlace puede ver las fotos seleccionadas",
+  "shared_link_create_submit_button": "Crear enlace",
+  "shared_link_edit_allow_download": "Permitir descargar a usuarios públicos",
+  "shared_link_edit_allow_upload": "Permitir subir a usuarios públicos",
+  "shared_link_edit_app_bar_title": "Editar enlace",
+  "shared_link_edit_change_expiry": "Cambiar fecha de caducidad",
+  "shared_link_edit_description": "Descripción",
+  "shared_link_edit_description_hint": "Introduce la descripción del enlace",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Contraseña",
+  "shared_link_edit_password_hint": "Introduce la contraseña del enlace",
+  "shared_link_edit_show_meta": "Mostrar metadatos",
+  "shared_link_edit_submit_button": "Actualizar enlace",
+  "shared_link_empty": "No tienes enlaces compartidos",
+  "shared_link_manage_links": "Administrar enlaces compartidos",
+  "share_done": "Hecho",
   "share_invite": "Invitar al álbum",
   "share_invite": "Invitar al álbum",
   "sharing_page_album": "Álbumes compartidos",
   "sharing_page_album": "Álbumes compartidos",
   "sharing_page_description": "Crea álbumes compartidos para compartir fotos y videos con personas de tu red.",
   "sharing_page_description": "Crea álbumes compartidos para compartir fotos y videos con personas de tu red.",
   "sharing_page_empty_list": "LISTA VACIA",
   "sharing_page_empty_list": "LISTA VACIA",
   "sharing_silver_appbar_create_shared_album": "Crear álbum compartido",
   "sharing_silver_appbar_create_shared_album": "Crear álbum compartido",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Enlaces compartidos",
   "sharing_silver_appbar_share_partner": "Compartir con compañero",
   "sharing_silver_appbar_share_partner": "Compartir con compañero",
   "tab_controller_nav_library": "Biblioteca",
   "tab_controller_nav_library": "Biblioteca",
   "tab_controller_nav_photos": "Fotos",
   "tab_controller_nav_photos": "Fotos",
   "tab_controller_nav_search": "Buscar",
   "tab_controller_nav_search": "Buscar",
   "tab_controller_nav_sharing": "Compartiendo",
   "tab_controller_nav_sharing": "Compartiendo",
   "theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
   "theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
-  "theme_setting_asset_list_tiles_per_row_title": "Número de activos por fila ({})",
+  "theme_setting_asset_list_tiles_per_row_title": "Número de elementos por fila ({})",
   "theme_setting_dark_mode_switch": "Modo oscuro",
   "theme_setting_dark_mode_switch": "Modo oscuro",
   "theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
   "theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
   "theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
   "theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
@@ -337,30 +361,30 @@
   "theme_setting_theme_title": "Tema",
   "theme_setting_theme_title": "Tema",
   "theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
   "theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
   "theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
   "theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
-  "translated_text_options": "Options",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
-  "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
-  "upload_dialog_cancel": "Cancel",
-  "upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
-  "upload_dialog_ok": "Upload",
-  "upload_dialog_title": "Upload Asset",
+  "translated_text_options": "Opciones",
+  "trash_page_delete": "Eliminar",
+  "trash_page_delete_all": "Eliminar todos",
+  "trash_page_empty_trash_btn": "Vaciar papelera",
+  "trash_page_empty_trash_dialog_content": "Estás seguro que quieres eliminar los elementos? Estos elementos serán eliminados de Immich permanentemente",
+  "trash_page_empty_trash_dialog_ok": "",
+  "trash_page_info": "Los archivos en la papelera serán eliminados automáticamente después de {} días",
+  "trash_page_no_assets": "No hay elementos en la papelera",
+  "trash_page_restore": "Restaurar",
+  "trash_page_restore_all": "Restaurar todos",
+  "trash_page_select_assets_btn": "Seleccionar elementos",
+  "trash_page_select_btn": "Seleccionar",
+  "trash_page_title": "Papelera ({})",
+  "upload_dialog_cancel": "Cancelar",
+  "upload_dialog_info": "Quieres hacer una copia de seguridad al servidor de los elementos seleccionados?",
+  "upload_dialog_ok": "Subir",
+  "upload_dialog_title": "Subir elementos",
   "version_announcement_overlay_ack": "Aceptar",
   "version_announcement_overlay_ack": "Aceptar",
   "version_announcement_overlay_release_notes": "notas de la versión",
   "version_announcement_overlay_release_notes": "notas de la versión",
   "version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
   "version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
   "version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
   "version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
   "version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
   "version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
   "version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89",
   "version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Quitar de la pila",
+  "viewer_stack_use_as_main_asset": "Usar como elemento principal",
+  "viewer_unstack": "Desapilar"
 }
 }

+ 442 - 0
mobile/assets/i18n/es-US.json

@@ -0,0 +1,442 @@
+{
+  "add_to_album_bottom_sheet_added": "Agregado a {album}",
+  "add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
+  "advanced_settings_log_level_title": "Nivel de registro: {}",
+  "advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados en el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
+  "advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
+  "advanced_settings_self_signed_ssl_subtitle": "Omite la verificación del certificado SSL para la URL del servidor. Requerido para certificados autofirmados.",
+  "advanced_settings_self_signed_ssl_title": "Permitir certificados SSL autofirmados",
+  "advanced_settings_tile_subtitle": "Configuraciones avanzadas de usuario",
+  "advanced_settings_tile_title": "Avanzado",
+  "advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
+  "advanced_settings_troubleshooting_title": "Solución de problemas",
+  "album_info_card_backup_album_excluded": "EXCLUIDOS",
+  "album_info_card_backup_album_included": "INCLUIDOS",
+  "album_thumbnail_card_item": "1 elemento",
+  "album_thumbnail_card_items": "{} elementos",
+  "album_thumbnail_card_shared": " · Compartido",
+  "album_thumbnail_owned": "Propio",
+  "album_thumbnail_shared_by": "Compartido por {}",
+  "album_viewer_appbar_share_delete": "Eliminar álbum",
+  "album_viewer_appbar_share_err_delete": "No se ha podido eliminar el álbum",
+  "album_viewer_appbar_share_err_leave": "No se ha podido abandonar el álbum",
+  "album_viewer_appbar_share_err_remove": "Hay problemas para remover los archivos del álbum",
+  "album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum",
+  "album_viewer_appbar_share_leave": "Abandonar álbum",
+  "album_viewer_appbar_share_remove": "Remover del álbum",
+  "album_viewer_appbar_share_to": "Compartir con",
+  "album_viewer_page_share_add_users": "Agregar usuarios",
+  "all_people_page_title": "Personas",
+  "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "¿Estás seguro de que quieres cerrar sesión?",
+  "app_bar_signout_dialog_ok": "Sí",
+  "app_bar_signout_dialog_title": "Cerrar sesión",
+  "archive_page_no_archived_assets": "No se encontraron recursos archivados",
+  "archive_page_title": "Archivo ({})",
+  "asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico",
+  "asset_list_layout_settings_group_automatically": "Automático",
+  "asset_list_layout_settings_group_by": "Agrupar recursos por",
+  "asset_list_layout_settings_group_by_month": "Mes",
+  "asset_list_layout_settings_group_by_month_day": "Mes + día",
+  "asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
+  "asset_list_settings_title": "Cuadrícula de fotos",
+  "backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
+  "backup_album_selection_page_albums_tap": "Pulsar para incluir, pulsar dos veces para excluir",
+  "backup_album_selection_page_assets_scatter": "Los archivos pueden dispersarse en varios álbumes. De este modo, los álbumes pueden ser incluidos o excluidos durante el proceso de copia de seguridad.",
+  "backup_album_selection_page_select_albums": "Seleccionar álbumes",
+  "backup_album_selection_page_selection_info": "Información de la selección",
+  "backup_album_selection_page_total_assets": "Total de archivos únicos",
+  "backup_all": "Todos",
+  "backup_background_service_backup_failed_message": "Error al copiar archivos. Reintentando…",
+  "backup_background_service_connection_failed_message": "Error al conectar con el servidor. Reintentando…",
+  "backup_background_service_current_upload_notification": "Subiendo {}",
+  "backup_background_service_default_notification": "Verificando si hay nuevos archivos…",
+  "backup_background_service_error_title": "Error de copia de seguridad",
+  "backup_background_service_in_progress_notification": "Creando copia de seguridad de tus archivos…",
+  "backup_background_service_upload_failure_notification": "Error al subir {}",
+  "backup_controller_page_albums": "Álbumes de respaldo",
+  "backup_controller_page_background_app_refresh_disabled_content": "Activa la actualización en segundo plano de la aplicación en Configuración > General > Actualización en segundo plano para usar la copia de seguridad en segundo plano.",
+  "backup_controller_page_background_app_refresh_disabled_title": "Actualización en segundo plano desactivada",
+  "backup_controller_page_background_app_refresh_enable_button_text": "Ir a configuración",
+  "backup_controller_page_background_battery_info_link": "Muéstrame cómo",
+  "backup_controller_page_background_battery_info_message": "Para obtener la mejor experiencia de copia de seguridad en segundo plano, desactiva cualquier optimización de batería que restrinja la actividad en segundo plano para Immich.\n\nDado que esto es específico en cada dispositivo, busca la información necesaria del fabricante de tu dispositivo.",
+  "backup_controller_page_background_battery_info_ok": "Ok",
+  "backup_controller_page_background_battery_info_title": "Optimizaciones de batería",
+  "backup_controller_page_background_charging": "Sólo mientras se carga",
+  "backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
+  "backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos recursos: {}",
+  "backup_controller_page_background_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevo recurso sin necesidad de abrir la aplicación",
+  "backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
+  "backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está activada",
+  "backup_controller_page_background_turn_off": "Desactivar el servicio en segundo plano",
+  "backup_controller_page_background_turn_on": "Activar el servicio en segundo plano",
+  "backup_controller_page_background_wifi": "Sólo en WiFi",
+  "backup_controller_page_backup": "Respaldo",
+  "backup_controller_page_backup_selected": "Seleccionado: ",
+  "backup_controller_page_backup_sub": "Fotos y videos respaldados",
+  "backup_controller_page_cancel": "Cancelar",
+  "backup_controller_page_created": "Creado el: {}",
+  "backup_controller_page_desc_backup": "Activa la copia de seguridad en primer plano para subir automáticamente nuevos recursos al servidor al abrir la aplicación.",
+  "backup_controller_page_excluded": "Excluído: ",
+  "backup_controller_page_failed": "Fallidos ({})",
+  "backup_controller_page_filename": "Nombre del archivo: {} [{}]",
+  "backup_controller_page_id": "ID: {}",
+  "backup_controller_page_info": "Información del respaldo",
+  "backup_controller_page_none_selected": "Ninguno seleccionado",
+  "backup_controller_page_remainder": "Restante",
+  "backup_controller_page_remainder_sub": "Fotos y videos restantes para hacer una copia de seguridad de la selección",
+  "backup_controller_page_select": "Seleccionar",
+  "backup_controller_page_server_storage": "Almacenamiento del servidor",
+  "backup_controller_page_start_backup": "Iniciar respaldo",
+  "backup_controller_page_status_off": "La copia de seguridad automática en primer plano está desactivada",
+  "backup_controller_page_status_on": "La copia de seguridad automática en primer plano está activada",
+  "backup_controller_page_storage_format": "{} de {} usado",
+  "backup_controller_page_to_backup": "Álbumes a respaldar",
+  "backup_controller_page_total": "Total",
+  "backup_controller_page_total_sub": "Todas las fotos y videos únicos de los álbumes seleccionados",
+  "backup_controller_page_turn_off": "Desactivar la copia de seguridad en primer plano",
+  "backup_controller_page_turn_on": "Activar la copia de seguridad en primer plano",
+  "backup_controller_page_uploading_file_info": "Subiendo información del archivo",
+  "backup_err_only_album": "No se puede eliminar el único álbum",
+  "backup_info_card_assets": "recursos",
+  "backup_manual_cancelled": "Cancelado",
+  "backup_manual_failed": "Fallido",
+  "backup_manual_in_progress": "Subida ya en progreso. Inténtalo después de un tiempo",
+  "backup_manual_success": "Exitoso",
+  "backup_manual_title": "Estado de subida",
+  "cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} recursos)",
+  "cache_settings_clear_cache_button": "Borrar caché",
+  "cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
+  "cache_settings_duplicated_assets_clear_button": "BORRAR",
+  "cache_settings_duplicated_assets_subtitle": "Fotos y videos que son ignorados por la aplicación",
+  "cache_settings_duplicated_assets_title": "Recursos duplicados ({})",
+  "cache_settings_image_cache_size": "Tamaño de la caché de imágenes ({} recursos)",
+  "cache_settings_statistics_album": "Miniaturas de la biblioteca",
+  "cache_settings_statistics_assets": "{} recursos ({})",
+  "cache_settings_statistics_full": "Imágenes completas",
+  "cache_settings_statistics_shared": "Miniaturas de álbumes compartidos",
+  "cache_settings_statistics_thumbnail": "Miniaturas",
+  "cache_settings_statistics_title": "Uso de caché",
+  "cache_settings_subtitle": "Controla el comportamiento de la caché de la aplicación móvil Immich",
+  "cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} recursos)",
+  "cache_settings_tile_subtitle": "Controla el comportamiento del almacenamiento local",
+  "cache_settings_tile_title": "Almacenamiento local",
+  "cache_settings_title": "Configuración de la caché",
+  "change_password_form_confirm_password": "Confirmar Contraseña",
+  "change_password_form_description": "Hola {name},\n\nÉsta es la primera vez que inicias sesión en el sistema o se ha solicitado cambiar tu contraseña. Por favor, introduce la nueva contraseña a continuación.",
+  "change_password_form_new_password": "Nueva Contraseña",
+  "change_password_form_password_mismatch": "Las contraseñas no coinciden",
+  "change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
+  "common_add_to_album": "Agregar al álbum",
+  "common_change_password": "Cambiar Contraseña",
+  "common_create_new_album": "Crear nuevo álbum",
+  "common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
+  "common_shared": "Compartido",
+  "control_bottom_app_bar_add_to_album": "Agregar al álbum",
+  "control_bottom_app_bar_album_info": "{} elementos",
+  "control_bottom_app_bar_album_info_shared": "{} elementos · Compartido",
+  "control_bottom_app_bar_archive": "Archivar",
+  "control_bottom_app_bar_create_new_album": "Crear nuevo álbum",
+  "control_bottom_app_bar_delete": "Eliminar",
+  "control_bottom_app_bar_favorite": "Favorito",
+  "control_bottom_app_bar_share": "Compartir",
+  "control_bottom_app_bar_share_to": "Compartir con",
+  "control_bottom_app_bar_stack": "Apilar",
+  "control_bottom_app_bar_unarchive": "Desarchivar",
+  "control_bottom_app_bar_upload": "Subir",
+  "create_album_page_untitled": "Sin título",
+  "create_shared_album_page_create": "Crear",
+  "create_shared_album_page_share": "Compartir",
+  "create_shared_album_page_share_add_assets": "AGREGAR RECURSOS",
+  "create_shared_album_page_share_select_photos": "Seleccionar fotos",
+  "curated_location_page_title": "Lugares",
+  "curated_object_page_title": "Objetos",
+  "daily_title_text_date": "E, dd MMM",
+  "daily_title_text_date_year": "E, dd de MMM, yyyy",
+  "date_format": "E d, LLL y • h:mm a",
+  "delete_dialog_alert": "Estos elementos se eliminarán permanentemente de Immich y de tu dispositivo",
+  "delete_dialog_cancel": "Cancelar",
+  "delete_dialog_ok": "Eliminar",
+  "delete_dialog_title": "Eliminar permanentemente",
+  "delete_shared_link_dialog_content": "¿Estás seguro de que quieres eliminar este enlace compartido?",
+  "delete_shared_link_dialog_title": "Eliminar enlace compartido",
+  "description_input_hint_text": "Agregar descripción...",
+  "description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
+  "exif_bottom_sheet_description": "Agregar Descripción...",
+  "exif_bottom_sheet_details": "DETALLES",
+  "exif_bottom_sheet_location": "UBICACIÓN",
+  "experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
+  "experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
+  "experimental_settings_subtitle": "¡Úsalo bajo tu propio riesgo!",
+  "experimental_settings_title": "Experimental",
+  "favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
+  "favorites_page_title": "Favoritos",
+  "home_page_add_to_album_conflicts": "{added} recursos agregados al álbum {album}.\n{failed} recursos ya existen en el álbum.",
+  "home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
+  "home_page_add_to_album_success": "{added} recursos agregados al álbum {album}.",
+  "home_page_archive_err_local": "Aún no se pueden archivar recursos locales, omitiendo",
+  "home_page_building_timeline": "Construyendo la línea de tiempo",
+  "home_page_favorite_err_local": "Aún no se pueden marcar recursos locales como favoritos, omitiendo",
+  "home_page_first_time_notice": "Si ésta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
+  "home_page_share_err_local": "No se pueden compartir recursos locales a través de enlaces, omitiendo",
+  "home_page_upload_err_limit": "Sólo se pueden subir un máximo de 30 recursos a la vez, omitiendo",
+  "home_page_favorite_err_partner": "Aún no se pueden marcar recursos de compañeros como favoritos, omitiendo",
+  "home_page_album_err_partner": "Aún no se pueden agregar recursos de compañeros a un álbum, omitiendo",
+  "home_page_archive_err_partner": "Aún no se pueden archivar recursos de compañeros, omitiendo",
+  "home_page_delete_err_partner": "Aún no se pueden eliminar recursos de compañeros, omitiendo",
+  "image_viewer_page_state_provider_download_error": "Error de descarga",
+  "image_viewer_page_state_provider_download_success": "Descarga exitosa",
+  "image_viewer_page_state_provider_share_error": "Error al compartir",
+  "library_page_albums": "Álbumes",
+  "library_page_archive": "Archivo",
+  "library_page_device_albums": "Álbumes en el dispositivo",
+  "library_page_favorites": "Favoritos",
+  "library_page_new_album": "Nuevo álbum",
+  "library_page_sharing": "Compartiendo",
+  "library_page_sort_created": "Creado más recientemente",
+  "library_page_sort_last_modified": "Modificado más recientemente",
+  "library_page_sort_most_recent_photo": "Foto más reciente",
+  "library_page_sort_title": "Título del álbum",
+  "login_disabled": "El inicio de sesión ha sido deshabilitado",
+  "login_form_api_exception": "Excepción de API. Por favor, verifica la URL del servidor e inténtalo de nuevo.",
+  "login_form_back_button_text": "Volver",
+  "login_form_button_text": "Iniciar sesión",
+  "login_form_email_hint": "tucorreo@correo.com",
+  "login_form_endpoint_hint": "http://ip-de-tu-servidor:puerto/api",
+  "login_form_endpoint_url": "URL del servidor",
+  "login_form_err_http": "Por favor, especifique http:// o https://",
+  "login_form_err_invalid_email": "Correo electrónico inválido",
+  "login_form_err_invalid_url": "URL inválido",
+  "login_form_err_leading_whitespace": "Espacio en blanco inicial",
+  "login_form_err_trailing_whitespace": "Espacio en blanco al final",
+  "login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
+  "login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
+  "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. Habilita el soporte de certificado autofirmado en la configuración si estás usando un certificado autofirmado.",
+  "login_form_label_email": "Correo electrónico",
+  "login_form_label_password": "Contraseña",
+  "login_form_next_button": "Siguiente",
+  "login_form_password_hint": "contraseña",
+  "login_form_save_login": "Permanecer conectado",
+  "login_form_server_empty": "Introduce la URL del servidor.",
+  "login_form_server_error": "No se pudo conectar al servidor.",
+  "login_password_changed_error": "Hubo un error al actualizar tu contraseña",
+  "login_password_changed_success": "Contraseña actualizada exitosamente",
+  "map_assets_in_bounds": {
+    "one": "{} foto",
+    "other": "{} fotos"
+  },
+  "map_cannot_get_user_location": "No se puede obtener la ubicación del usuario",
+  "map_location_dialog_cancel": "Cancelar",
+  "map_location_dialog_yes": "Sí",
+  "map_location_service_disabled_content": "El servicio de ubicación debe estar habilitado para mostrar recursos desde tu ubicación actual. ¿Quieres habilitarlo ahora?",
+  "map_location_service_disabled_title": "Servicio de ubicación deshabilitado",
+  "map_no_assets_in_bounds": "No hay fotos en esta área",
+  "map_no_location_permission_content": "Se necesita permiso de ubicación para mostrar recursos desde tu ubicación actual. ¿Quieres permitirlo ahora?",
+  "map_no_location_permission_title": "Permiso de ubicación denegado",
+  "map_settings_dark_mode": "Modo oscuro",
+  "map_settings_date_range_option_all": "Todo",
+  "map_settings_date_range_option_days": {
+    "one": "Últimas 24 horas",
+    "other": "Últimos {} días"
+  },
+  "map_settings_date_range_option_years": {
+    "one": "Último año",
+    "other": "Últimos {} años"
+  },
+  "map_settings_dialog_cancel": "Cancelar",
+  "map_settings_dialog_save": "Guardar",
+  "map_settings_dialog_title": "Configuración del mapa",
+  "map_settings_include_show_archived": "Incluir archivados",
+  "map_settings_only_relative_range": "Rango de fechas",
+  "map_settings_only_show_favorites": "Mostrar sólo favoritos",
+  "map_zoom_to_see_photos": "Aleja el mapa para ver las fotos",
+  "monthly_title_text_date_format": "MMMM y",
+  "motion_photos_page_title": "Fotos en movimiento",
+  "notification_permission_dialog_cancel": "Cancelar",
+  "notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
+  "notification_permission_dialog_settings": "Configuración",
+  "notification_permission_list_tile_content": "Concede permiso para activar las notificaciones.",
+  "notification_permission_list_tile_enable_button": "Activar notificaciones",
+  "notification_permission_list_tile_title": "Permisos de notificación",
+  "partner_page_add_partner": "Agregar compañero",
+  "partner_page_empty_message": "Tus fotos aún no se han compartido con ningún compañero.",
+  "partner_page_no_more_users": "No hay más usuarios para agregar",
+  "partner_page_partner_add_failed": "Error al agregar compañero",
+  "partner_page_select_partner": "Seleccionar compañero",
+  "partner_page_shared_to_title": "Compartido con",
+  "partner_page_stop_sharing_content": "{} ya no podrá acceder a tus fotos",
+  "partner_page_stop_sharing_title": "¿Dejar de compartir tus fotos?",
+  "partner_page_title": "Compañero",
+  "permission_onboarding_back": "Volver",
+  "permission_onboarding_continue_anyway": "Continuar de todos modos",
+  "permission_onboarding_get_started": "Empezar",
+  "permission_onboarding_go_to_settings": "Ir a configuración",
+  "permission_onboarding_grant_permission": "Conceder permiso",
+  "permission_onboarding_log_out": "Cerrar sesión",
+  "permission_onboarding_permission_denied": "Permiso denegado. Para usar Immich, concede permisos de fotos y videos en Configuración.",
+  "permission_onboarding_permission_granted": "¡Permiso concedido! Todo listo.",
+  "permission_onboarding_permission_limited": "Permiso limitado. Para permitir que Immich haga copia de seguridad y gestione toda tu colección de galería, concede permisos de fotos y videos en Configuración.",
+  "permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.",
+  "profile_drawer_app_logs": "Registros",
+  "profile_drawer_client_out_of_date_major": "La aplicación móvil está desactualizada. Actualiza a la última versión mayor.",
+  "profile_drawer_client_out_of_date_minor": "La aplicación móvil está desactualizada. Actualiza a la última versión menor.",
+  "profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
+  "profile_drawer_documentation": "Documentación",
+  "profile_drawer_github": "GitHub",
+  "profile_drawer_server_out_of_date_major": "El servidor está desactualizado. Actualiza a la última versión mayor.",
+  "profile_drawer_server_out_of_date_minor": "El servidor está desactualizado. Actualiza a la última versión menor.",
+  "profile_drawer_settings": "Configuración",
+  "profile_drawer_sign_out": "Cerrar sesión",
+  "profile_drawer_trash": "Papelera",
+  "recently_added_page_title": "Recién Agregados",
+  "search_bar_hint": "Busca tus fotos",
+  "search_page_categories": "Categorías",
+  "search_page_favorites": "Favoritos",
+  "search_page_motion_photos": "Fotos en movimiento",
+  "search_page_no_objects": "No hay información de objetos disponible",
+  "search_page_no_places": "No hay información de lugares disponible",
+  "search_page_people": "Personas",
+  "search_page_person_add_name_dialog_cancel": "Cancelar",
+  "search_page_person_add_name_dialog_hint": "Nombre",
+  "search_page_person_add_name_dialog_save": "Guardar",
+  "search_page_person_add_name_dialog_title": "Agregar nombre",
+  "search_page_person_add_name_subtitle": "Encuéntralos rápidamente por nombre",
+  "search_page_person_add_name_title": "Agregar un nombre",
+  "search_page_person_edit_name": "Editar nombre",
+  "search_page_places": "Lugares",
+  "search_page_recently_added": "Recién agregados",
+  "search_page_screenshots": "Capturas de pantalla",
+  "search_page_selfies": "Selfies",
+  "search_page_things": "Cosas",
+  "search_page_videos": "Videos",
+  "search_page_view_all_button": "Ver todo",
+  "search_page_your_activity": "Tu actividad",
+  "search_page_your_map": "Tu mapa",
+  "search_result_page_new_search_hint": "Nueva búsqueda",
+  "search_suggestion_list_smart_search_hint_1": "La búsqueda inteligente está habilitada por defecto, para buscar metadatos utiliza la sintaxis ",
+  "search_suggestion_list_smart_search_hint_2": "m:tu-término-de-búsqueda",
+  "select_additional_user_for_sharing_page_suggestions": "Sugerencias",
+  "select_user_for_sharing_page_err_album": "Error al crear álbum",
+  "select_user_for_sharing_page_share_suggestions": "Sugerencias",
+  "server_info_box_app_version": "Versión de la Aplicación",
+  "server_info_box_server_url": "URL del Servidor",
+  "server_info_box_server_version": "Versión del Servidor",
+  "server_info_box_latest_release": "Última versión",
+  "setting_image_viewer_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano (si está habilitada), finalmente carga la original (si está habilitada).",
+  "setting_image_viewer_original_subtitle": "Activar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
+  "setting_image_viewer_original_title": "Cargar imagen original",
+  "setting_image_viewer_preview_subtitle": "Activar para cargar una imagen de resolución media. Deshabilitar para cargar directamente la imagen original o usar una miniatura.",
+  "setting_image_viewer_preview_title": "Cargar imagen de previsualización",
+  "setting_notifications_notify_failures_grace_period": "Notificar fallos de copia de seguridad en segundo plano: {}",
+  "setting_notifications_notify_hours": "{} horas",
+  "setting_notifications_notify_immediately": "inmediatamente",
+  "setting_notifications_notify_minutes": "{} minutos",
+  "setting_notifications_notify_never": "nunca",
+  "setting_notifications_notify_seconds": "{} segundos",
+  "setting_notifications_single_progress_subtitle": "Información detallada del progreso de subida de cada recurso",
+  "setting_notifications_single_progress_title": "Mostrar progreso detallado de copia de seguridad en segundo plano",
+  "setting_notifications_subtitle": "Ajusta tus preferencias de notificación",
+  "setting_notifications_title": "Notificaciones",
+  "setting_notifications_total_progress_subtitle": "Progreso general de subida (recursos completados/totales)",
+  "setting_notifications_total_progress_title": "Mostrar progreso total de copia de seguridad en segundo plano",
+  "setting_pages_app_bar_settings": "Configuración",
+  "settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste",
+  "share_add": "Agregar",
+  "share_add_photos": "Agregar fotos",
+  "share_add_title": "Agregar un título",
+  "share_create_album": "Crear álbum",
+  "shared_album_activities_input_disable": "Los comentarios están deshabilitados",
+  "shared_album_activities_input_hint": "Di algo",
+  "shared_album_activity_remove_content": "¿Quieres eliminar esta actividad?",
+  "shared_album_activity_remove_title": "Eliminar actividad",
+  "shared_album_activity_setting_subtitle": "Permitir que otros respondan",
+  "shared_album_activity_setting_title": "Comentarios y me gusta",
+  "shared_album_section_people_action_error": "Error al dejar/remover del álbum",
+  "shared_album_section_people_action_leave": "Dejar álbum",
+  "shared_album_section_people_action_remove_user": "Remover usuario del álbum",
+  "shared_album_section_people_owner_label": "Dueño",
+  "shared_album_section_people_title": "PERSONAS",
+  "share_dialog_preparing": "Preparando...",
+  "shared_link_app_bar_title": "Enlaces compartidos",
+  "shared_link_clipboard_copied_massage": "Copiado al portapapeles",
+  "shared_link_clipboard_text": "Enlace: {}\nContraseña: {}",
+  "shared_link_create_app_bar_title": "Crear enlace para compartir",
+  "shared_link_create_error": "Error al crear enlace compartido",
+  "shared_link_create_info": "Permitir que cualquiera con el enlace vea la(s) foto(s) seleccionada(s)",
+  "shared_link_create_submit_button": "Crear enlace",
+  "shared_link_edit_allow_download": "Permitir que el usuario público pueda descargar",
+  "shared_link_edit_allow_upload": "Permitir que el usuario público pueda subir",
+  "shared_link_edit_app_bar_title": "Editar enlace",
+  "shared_link_edit_change_expiry": "Cambiar tiempo de expiración",
+  "shared_link_edit_description": "Descripción",
+  "shared_link_edit_description_hint": "Introduce la descripción del enlace",
+  "shared_link_edit_expire_after": "Expirar después de",
+  "shared_link_edit_expire_after_option_days": {
+    "one": "{} día",
+    "other": "{} días"
+  },
+  "shared_link_edit_expire_after_option_hours": {
+    "one": "{} hora",
+    "other": "{} horas"
+  },
+  "shared_link_edit_expire_after_option_minutes": {
+    "one": "{} minuto",
+    "other": "{} minutos"
+  },
+  "shared_link_edit_expire_after_option_never": "Nunca",
+  "shared_link_edit_password": "Contraseña",
+  "shared_link_edit_password_hint": "Introduce la contraseña del enlace",
+  "shared_link_edit_show_meta": "Mostrar metadatos",
+  "shared_link_edit_submit_button": "Actualizar enlace",
+  "shared_link_empty": "No tienes ningún enlace compartido",
+  "shared_link_manage_links": "Administrar enlaces compartidos",
+  "share_done": "Hecho",
+  "share_invite": "Invitar al álbum",
+  "sharing_page_album": "Álbumes compartidos",
+  "sharing_page_description": "Crea álbumes compartidos para compartir fotos y videos con personas de tu red.",
+  "sharing_page_empty_list": "LISTA VACÍA",
+  "sharing_silver_appbar_create_shared_album": "Crear álbum compartido",
+  "sharing_silver_appbar_shared_links": "Enlaces compartidos",
+  "sharing_silver_appbar_share_partner": "Compartir con compañero",
+  "tab_controller_nav_library": "Biblioteca",
+  "tab_controller_nav_photos": "Fotos",
+  "tab_controller_nav_search": "Buscar",
+  "tab_controller_nav_sharing": "Compartidos",
+  "theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los recursos",
+  "theme_setting_asset_list_tiles_per_row_title": "Número de recursos por fila ({})",
+  "theme_setting_dark_mode_switch": "Modo oscuro",
+  "theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
+  "theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
+  "theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
+  "theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
+  "theme_setting_theme_title": "Tema",
+  "theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
+  "theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
+  "translated_text_options": "Opciones",
+  "trash_page_delete": "Eliminar",
+  "trash_page_delete_all": "Eliminar todos",
+  "trash_page_empty_trash_btn": "Vaciar papelera",
+  "trash_page_empty_trash_dialog_content": "¿Quieres vaciar los recursos de la papelera? Estos elementos serán eliminados permanentemente de Immich",
+  "trash_page_empty_trash_dialog_ok": "Ok",
+  "trash_page_info": "Los elementos en la papelera serán borrados permanentemente luego de {} días",
+  "trash_page_no_assets": "No hay recursos en la papelera",
+  "trash_page_restore": "Restaurar",
+  "trash_page_restore_all": "Restaurar todos",
+  "trash_page_select_assets_btn": "Seleccionar recursos",
+  "trash_page_select_btn": "Seleccionar",
+  "trash_page_title": "Papelera ({})",
+  "upload_dialog_cancel": "Cancelar",
+  "upload_dialog_info": "¿Quieres respaldar los recursos seleccionados en el servidor?",
+  "upload_dialog_ok": "Subir",
+  "upload_dialog_title": "Subir recurso",
+  "version_announcement_overlay_ack": "Aceptar",
+  "version_announcement_overlay_release_notes": "notas de la versión",
+  "version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
+  "version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
+  "version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
+  "version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89",
+  "viewer_remove_from_stack": "Eliminar de la pila",
+  "viewer_stack_use_as_main_asset": "Utilizar como recurso principal",
+  "viewer_unstack": "Desapilar"
+}

+ 85 - 61
mobile/assets/i18n/fi-FI.json

@@ -3,8 +3,8 @@
   "add_to_album_bottom_sheet_already_exists": "Kohde on jo albumissa {album}",
   "add_to_album_bottom_sheet_already_exists": "Kohde on jo albumissa {album}",
   "advanced_settings_prefer_remote_subtitle": "Jotkut laitteet ovat erittäin hitaita lataamaan esikatselukuvia laitteen kohteista. Aktivoi tämä asetus käyttääksesi etäkuvia.",
   "advanced_settings_prefer_remote_subtitle": "Jotkut laitteet ovat erittäin hitaita lataamaan esikatselukuvia laitteen kohteista. Aktivoi tämä asetus käyttääksesi etäkuvia.",
   "advanced_settings_prefer_remote_title": "Suosi etäkuvia",
   "advanced_settings_prefer_remote_title": "Suosi etäkuvia",
-  "advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
-  "advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
+  "advanced_settings_self_signed_ssl_subtitle": "Ohita SSL sertifikaattivarmennus palvelimen päätepisteellä. Vaaditaan self-signed -sertifikaateissa.",
+  "advanced_settings_self_signed_ssl_title": "Salli self-signed SSL -sertifikaatit",
   "advanced_settings_tile_subtitle": "Edistyneen käyttäjän asetukset",
   "advanced_settings_tile_subtitle": "Edistyneen käyttäjän asetukset",
   "advanced_settings_tile_title": "Edistyneet",
   "advanced_settings_tile_title": "Edistyneet",
   "advanced_settings_troubleshooting_subtitle": "Kytke vianetsinnän lisäominaisuudet päälle",
   "advanced_settings_troubleshooting_subtitle": "Kytke vianetsinnän lisäominaisuudet päälle",
@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Albumin nimen muuttaminen epäonnistui",
   "album_viewer_appbar_share_err_title": "Albumin nimen muuttaminen epäonnistui",
   "album_viewer_appbar_share_leave": "Poistu albumista",
   "album_viewer_appbar_share_leave": "Poistu albumista",
   "album_viewer_appbar_share_remove": "Poista albumista",
   "album_viewer_appbar_share_remove": "Poista albumista",
+  "album_viewer_appbar_share_to": "Jaa",
   "album_viewer_page_share_add_users": "Lisää käyttäjiä",
   "album_viewer_page_share_add_users": "Lisää käyttäjiä",
   "all_people_page_title": "Ihmiset",
   "all_people_page_title": "Ihmiset",
   "all_videos_page_title": "Videot",
   "all_videos_page_title": "Videot",
+  "app_bar_signout_dialog_content": "Haluatko varmasti kirjautua ulos?",
+  "app_bar_signout_dialog_ok": "Kyllä",
+  "app_bar_signout_dialog_title": "Kirjaudu ulos",
   "archive_page_no_archived_assets": "Arkistoituja kohteita ei löytynyt",
   "archive_page_no_archived_assets": "Arkistoituja kohteita ei löytynyt",
   "archive_page_title": "Arkisto ({})",
   "archive_page_title": "Arkisto ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynaaminen asetelma",
   "asset_list_layout_settings_dynamic_layout_title": "Dynaaminen asetelma",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Välimuistin käyttö",
   "cache_settings_statistics_title": "Välimuistin käyttö",
   "cache_settings_subtitle": "Hallitse Immich-mobiilisovelluksen välimuistin käyttöä",
   "cache_settings_subtitle": "Hallitse Immich-mobiilisovelluksen välimuistin käyttöä",
   "cache_settings_thumbnail_size": "Esikatselukuvien välimuistin koko ({} kohdetta)",
   "cache_settings_thumbnail_size": "Esikatselukuvien välimuistin koko ({} kohdetta)",
+  "cache_settings_tile_subtitle": "Hallitse paikallista tallenustilaa",
+  "cache_settings_tile_title": "Paikallinen tallennustila",
   "cache_settings_title": "Välimuistin asetukset",
   "cache_settings_title": "Välimuistin asetukset",
   "change_password_form_confirm_password": "Vahvista salasana",
   "change_password_form_confirm_password": "Vahvista salasana",
   "change_password_form_description": "Hei {firstName} {lastName},\n\nTämä on joko ensimmäinen kirjautumisesi järjestelmään tai salasanan vaihtaminen vaihtaminen on pakotettu. Ole hyvä ja syötä uusi salasana alle.",
   "change_password_form_description": "Hei {firstName} {lastName},\n\nTämä on joko ensimmäinen kirjautumisesi järjestelmään tai salasanan vaihtaminen vaihtaminen on pakotettu. Ole hyvä ja syötä uusi salasana alle.",
@@ -130,10 +136,10 @@
   "control_bottom_app_bar_delete": "Poista",
   "control_bottom_app_bar_delete": "Poista",
   "control_bottom_app_bar_favorite": "Suosikki",
   "control_bottom_app_bar_favorite": "Suosikki",
   "control_bottom_app_bar_share": "Jaa",
   "control_bottom_app_bar_share": "Jaa",
-  "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_share_to": "Jaa",
+  "control_bottom_app_bar_stack": "Pinoa",
   "control_bottom_app_bar_unarchive": "Palauta arkistosta",
   "control_bottom_app_bar_unarchive": "Palauta arkistosta",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Siirrä palvelimelle",
   "create_album_page_untitled": "Nimetön",
   "create_album_page_untitled": "Nimetön",
   "create_shared_album_page_create": "Luo",
   "create_shared_album_page_create": "Luo",
   "create_shared_album_page_share": "Jaa",
   "create_shared_album_page_share": "Jaa",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "Peruuta",
   "delete_dialog_cancel": "Peruuta",
   "delete_dialog_ok": "Poista",
   "delete_dialog_ok": "Poista",
   "delete_dialog_title": "Poista pysyvästi",
   "delete_dialog_title": "Poista pysyvästi",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Oletko varma, että haluat poistaa jaetun linkin?",
+  "delete_shared_link_dialog_title": "Poista jaettu linkki",
   "description_input_hint_text": "Lisää kuvaus...",
   "description_input_hint_text": "Lisää kuvaus...",
   "description_input_submit_error": "Virhe kuvauksen päivittämisessä, tarkista lisätiedot lokista",
   "description_input_submit_error": "Virhe kuvauksen päivittämisessä, tarkista lisätiedot lokista",
   "exif_bottom_sheet_description": "Lisää kuvaus…",
   "exif_bottom_sheet_description": "Lisää kuvaus…",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "Lisätty {added} kohdetta albumiin {album}. {failed} kohdetta on jo albumissa.",
   "home_page_add_to_album_conflicts": "Lisätty {added} kohdetta albumiin {album}. {failed} kohdetta on jo albumissa.",
   "home_page_add_to_album_err_local": "Paikallisten kohteiden lisääminen albumeihin ei ole mahdollista, ohitetaan",
   "home_page_add_to_album_err_local": "Paikallisten kohteiden lisääminen albumeihin ei ole mahdollista, ohitetaan",
   "home_page_add_to_album_success": "Lisätty {added} kohdetta albumiin {album}.",
   "home_page_add_to_album_success": "Lisätty {added} kohdetta albumiin {album}.",
+  "home_page_album_err_partner": "Kumppanin kohteita ei voi vielä lisätä albumiin. Hypätään yli",
   "home_page_archive_err_local": "Paikallisten kohteiden arkistointi ei ole mahdollista, ohitetaan",
   "home_page_archive_err_local": "Paikallisten kohteiden arkistointi ei ole mahdollista, ohitetaan",
+  "home_page_archive_err_partner": "Kumppanin kohteita ei voi arkistoida. Hypätään yli",
   "home_page_building_timeline": "Rakennetaan aikajanaa",
   "home_page_building_timeline": "Rakennetaan aikajanaa",
+  "home_page_delete_err_partner": "Kumppanin kohteita ei voi poistaa.Hypätään yli",
   "home_page_favorite_err_local": "Paikallisten kohteiden lisääminen suosikkeihin ei ole mahdollista, ohitetaan",
   "home_page_favorite_err_local": "Paikallisten kohteiden lisääminen suosikkeihin ei ole mahdollista, ohitetaan",
+  "home_page_favorite_err_partner": "Kumppanin kohteita ei voi vielä merkitä suosikiksi. Hypätään yli",
   "home_page_first_time_notice": "Jos käytät sovellusta ensimmäistä kertaa, muista valita varmuuskopioitavat albumi(t), jotta aikajanalla voi olla kuvia ja videoita.",
   "home_page_first_time_notice": "Jos käytät sovellusta ensimmäistä kertaa, muista valita varmuuskopioitavat albumi(t), jotta aikajanalla voi olla kuvia ja videoita.",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Voit lähettää palvelimelle enintään 30 kohdetta kerrallaan, ohitetaan",
   "home_page_upload_err_limit": "Voit lähettää palvelimelle enintään 30 kohdetta kerrallaan, ohitetaan",
   "image_viewer_page_state_provider_download_error": "Lataus epäonnistui",
   "image_viewer_page_state_provider_download_error": "Lataus epäonnistui",
   "image_viewer_page_state_provider_download_success": "Lataus onnistui",
   "image_viewer_page_state_provider_download_success": "Lataus onnistui",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Jakovirhe",
   "library_page_albums": "Albumit",
   "library_page_albums": "Albumit",
   "library_page_archive": "Arkisto",
   "library_page_archive": "Arkisto",
   "library_page_device_albums": "Laitteen albumit",
   "library_page_device_albums": "Laitteen albumit",
@@ -179,8 +190,8 @@
   "library_page_new_album": "Uusi albumi",
   "library_page_new_album": "Uusi albumi",
   "library_page_sharing": "Jakaminen",
   "library_page_sharing": "Jakaminen",
   "library_page_sort_created": "Viimeisin luotu",
   "library_page_sort_created": "Viimeisin luotu",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Viimeksi muokattu",
+  "library_page_sort_most_recent_photo": "Viimeisin kuva",
   "library_page_sort_title": "Albumin otsikko",
   "library_page_sort_title": "Albumin otsikko",
   "login_disabled": "Kirjautuminen on poistettu käytöstä",
   "login_disabled": "Kirjautuminen on poistettu käytöstä",
   "login_form_api_exception": "API-virhe. Tarkista palvelimen URL-osoite ja yritä uudelleen.",
   "login_form_api_exception": "API-virhe. Tarkista palvelimen URL-osoite ja yritä uudelleen.",
@@ -196,7 +207,7 @@
   "login_form_failed_get_oauth_server_config": "Virhe kirjauduttaessa OAuth:lla, tarkista palvelimen URL",
   "login_form_failed_get_oauth_server_config": "Virhe kirjauduttaessa OAuth:lla, tarkista palvelimen URL",
   "login_form_failed_get_oauth_server_disable": "OAuth-ominaisuus ei ole käytössä tällä palvelimella",
   "login_form_failed_get_oauth_server_disable": "OAuth-ominaisuus ei ole käytössä tällä palvelimella",
   "login_form_failed_login": "Virhe kirjautumisessa. Tarkista palvelimen URL, sähköpostiosoite ja salasana.",
   "login_form_failed_login": "Virhe kirjautumisessa. Tarkista palvelimen URL, sähköpostiosoite ja salasana.",
-  "login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
+  "login_form_handshake_exception": "Tapahtui poikkeus kättelyssä palvelimen kanssa. Kytke päälle self-signed -sertifikaattituki asetuksista, mikäli käytät self-signed -sertifikaatteja.",
   "login_form_label_email": "Sähköposti",
   "login_form_label_email": "Sähköposti",
   "login_form_label_password": "Salasana",
   "login_form_label_password": "Salasana",
   "login_form_next_button": "Seuraava",
   "login_form_next_button": "Seuraava",
@@ -204,24 +215,24 @@
   "login_form_save_login": "Pysy kirjautuneena",
   "login_form_save_login": "Pysy kirjautuneena",
   "login_form_server_empty": "Syötä palvelimen URL-osoite.",
   "login_form_server_empty": "Syötä palvelimen URL-osoite.",
   "login_form_server_error": "Palvelimeen ei saatu yhteyttä.",
   "login_form_server_error": "Palvelimeen ei saatu yhteyttä.",
-  "login_password_changed_error": "There was an error updating your password",
-  "login_password_changed_success": "Password updated successfully",
-  "map_cannot_get_user_location": "Cannot get user's location",
-  "map_location_dialog_cancel": "Cancel",
-  "map_location_dialog_yes": "Yes",
-  "map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
-  "map_location_service_disabled_title": "Location Service disabled",
-  "map_no_assets_in_bounds": "No photos in this area",
-  "map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
-  "map_no_location_permission_title": "Location Permission denied",
-  "map_settings_dark_mode": "Dark mode",
-  "map_settings_dialog_cancel": "Cancel",
-  "map_settings_dialog_save": "Save",
-  "map_settings_dialog_title": "Map Settings",
-  "map_settings_include_show_archived": "Include Archived",
-  "map_settings_only_relative_range": "Date range",
-  "map_settings_only_show_favorites": "Show Favorite Only",
-  "map_zoom_to_see_photos": "Zoom out to see photos",
+  "login_password_changed_error": "Salasanan päivityksessä tapahtui virhe",
+  "login_password_changed_success": "Salasan päivitetty onnistuneesti",
+  "map_cannot_get_user_location": "Käyttäjän sijaintia ei voitu määrittää",
+  "map_location_dialog_cancel": "Peruuta",
+  "map_location_dialog_yes": "Kyllä",
+  "map_location_service_disabled_content": "Paikannuspalvelun pitää olla päälle kytkettynä, jotta nykyisen sijaintisi kohteita voidaan näyttää. Haluatko kytkeä sen päälle?",
+  "map_location_service_disabled_title": "Paikannuspalvelu pois päältä",
+  "map_no_assets_in_bounds": "Ei kuvia tällä alueella",
+  "map_no_location_permission_content": "Paikannuslupa tarvitaan, jotta nykyisen sijainnin kohteita voidaan näyttää. Haluatko sallia pääsyn sijaintiin?",
+  "map_no_location_permission_title": "Paikannuslupa estetty",
+  "map_settings_dark_mode": "Tumma tila",
+  "map_settings_dialog_cancel": "Peruuta",
+  "map_settings_dialog_save": "Tallenna",
+  "map_settings_dialog_title": "Kartta-asetukset",
+  "map_settings_include_show_archived": "Sisällytä arkistoidut",
+  "map_settings_only_relative_range": "Päivämäärän rajaus",
+  "map_settings_only_show_favorites": "Näytä vain suosikit",
+  "map_zoom_to_see_photos": "Tarkenna nähdäksesi kuvat",
   "monthly_title_text_date_format": "MMMM y",
   "monthly_title_text_date_format": "MMMM y",
   "motion_photos_page_title": "Liikekuvat",
   "motion_photos_page_title": "Liikekuvat",
   "notification_permission_dialog_cancel": "Peruuta",
   "notification_permission_dialog_cancel": "Peruuta",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} ei voi enää käyttää kuviasi.",
   "partner_page_stop_sharing_content": "{} ei voi enää käyttää kuviasi.",
   "partner_page_stop_sharing_title": "Lopetetaanko kuvien jakaminen?",
   "partner_page_stop_sharing_title": "Lopetetaanko kuvien jakaminen?",
   "partner_page_title": "Kumppani",
   "partner_page_title": "Kumppani",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Jatka silti",
   "permission_onboarding_continue_anyway": "Jatka silti",
   "permission_onboarding_get_started": "Aloittaminen",
   "permission_onboarding_get_started": "Aloittaminen",
   "permission_onboarding_go_to_settings": "Siirry asetuksiin",
   "permission_onboarding_go_to_settings": "Siirry asetuksiin",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich vaatii käyttöoikeuden kuvien ja videoiden käyttämiseen.",
   "permission_onboarding_request": "Immich vaatii käyttöoikeuden kuvien ja videoiden käyttämiseen.",
   "profile_drawer_app_logs": "Lokit",
   "profile_drawer_app_logs": "Lokit",
   "profile_drawer_client_server_up_to_date": "Asiakassovellus ja palvelin ovat ajan tasalla",
   "profile_drawer_client_server_up_to_date": "Asiakassovellus ja palvelin ovat ajan tasalla",
+  "profile_drawer_documentation": "Dokumentaatio",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Asetukset",
   "profile_drawer_settings": "Asetukset",
   "profile_drawer_sign_out": "Kirjaudu ulos",
   "profile_drawer_sign_out": "Kirjaudu ulos",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Roskakori",
   "recently_added_page_title": "Viimeksi lisätyt",
   "recently_added_page_title": "Viimeksi lisätyt",
   "search_bar_hint": "Etsi kuvia",
   "search_bar_hint": "Etsi kuvia",
   "search_page_categories": "Kategoriat",
   "search_page_categories": "Kategoriat",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Albumin luonti epäonnistui",
   "select_user_for_sharing_page_err_album": "Albumin luonti epäonnistui",
   "select_user_for_sharing_page_share_suggestions": "Ehdotukset",
   "select_user_for_sharing_page_share_suggestions": "Ehdotukset",
   "server_info_box_app_version": "Sovelluksen versio",
   "server_info_box_app_version": "Sovelluksen versio",
+  "server_info_box_server_url": "Palvelimen URL-osoite",
   "server_info_box_server_version": "Palvelimen versio",
   "server_info_box_server_version": "Palvelimen versio",
   "setting_image_viewer_help": "Sovellus lataa ensin pienen esikatselukuvan, toisena keskitarkkuuksisen kuvan (jos käytössä) ja kolmantena alkuperäisen täysitarkkuuksisen kuvan (jos käytössä)",
   "setting_image_viewer_help": "Sovellus lataa ensin pienen esikatselukuvan, toisena keskitarkkuuksisen kuvan (jos käytössä) ja kolmantena alkuperäisen täysitarkkuuksisen kuvan (jos käytössä)",
   "setting_image_viewer_original_subtitle": "Ota käyttöön ladataksesi alkuperäinen täysitarkkuuksinen kuva (suuri!). Poista käytöstä vähentääksesi datan käyttöä (sekä verkossa että laitteen välimuistissa).",
   "setting_image_viewer_original_subtitle": "Ota käyttöön ladataksesi alkuperäinen täysitarkkuuksinen kuva (suuri!). Poista käytöstä vähentääksesi datan käyttöä (sekä verkossa että laitteen välimuistissa).",
@@ -300,28 +315,37 @@
   "share_add_photos": "Lisää kuvia",
   "share_add_photos": "Lisää kuvia",
   "share_add_title": "Lisää nimi",
   "share_add_title": "Lisää nimi",
   "share_create_album": "Luo albumi",
   "share_create_album": "Luo albumi",
+  "shared_album_activities_input_disable": "Kommentointi on kytketty pois päältä",
+  "shared_album_activities_input_hint": "Sano jotain",
+  "shared_album_activity_remove_content": "Haluatko poistaa tämän aktiviteetin?",
+  "shared_album_activity_remove_title": "Poista aktiviteetti",
+  "shared_album_activity_setting_subtitle": "Anna muiden vastata",
+  "shared_album_activity_setting_title": "Kommentit ja tykkäykset",
   "share_dialog_preparing": "Valmistellaan...",
   "share_dialog_preparing": "Valmistellaan...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Jaetut linkit",
+  "shared_link_create_app_bar_title": "Luo linkki jaettavaksi",
+  "shared_link_create_info": "Salli kaikkien linkinhaltijoiden nähdä valitut kuvat",
+  "shared_link_create_submit_button": "Luo linkki",
+  "shared_link_edit_allow_download": "Salli julkisen käyttäjän ladata palvelimelta",
+  "shared_link_edit_allow_upload": "Salli julkisen käyttäjän siirtää palvelimelle",
+  "shared_link_edit_app_bar_title": "Muokkaa linkkiä",
+  "shared_link_edit_change_expiry": "Muuta erääntymisaikaa",
+  "shared_link_edit_description": "Kuvaus",
+  "shared_link_edit_description_hint": "Lisää jaon kuvaus",
+  "shared_link_edit_expire_after": "Umpeutuu",
+  "shared_link_edit_password": "Salasana",
+  "shared_link_edit_password_hint": "Syötä jaon salasana",
+  "shared_link_edit_show_meta": "Näytä metadata",
+  "shared_link_edit_submit_button": "Päivitä linkki",
+  "shared_link_empty": "Sinulla ei ole jaettuja linkkejä",
+  "shared_link_manage_links": "Hallitse jaettuja linkkejä",
+  "share_done": "Valmis",
   "share_invite": "Kutsu albumiin",
   "share_invite": "Kutsu albumiin",
   "sharing_page_album": "Jaetut albumit",
   "sharing_page_album": "Jaetut albumit",
   "sharing_page_description": "Luo jaettuja albumeja jakaaksesi kuvia ja videoita läheisillesi.",
   "sharing_page_description": "Luo jaettuja albumeja jakaaksesi kuvia ja videoita läheisillesi.",
   "sharing_page_empty_list": "TYHJÄ LISTA",
   "sharing_page_empty_list": "TYHJÄ LISTA",
   "sharing_silver_appbar_create_shared_album": "Luo jaettu albumi",
   "sharing_silver_appbar_create_shared_album": "Luo jaettu albumi",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Jaetut linkit",
   "sharing_silver_appbar_share_partner": "Jaa kumppanille",
   "sharing_silver_appbar_share_partner": "Jaa kumppanille",
   "tab_controller_nav_library": "Kirjasto",
   "tab_controller_nav_library": "Kirjasto",
   "tab_controller_nav_photos": "Kuvat",
   "tab_controller_nav_photos": "Kuvat",
@@ -337,19 +361,19 @@
   "theme_setting_theme_title": "Teema",
   "theme_setting_theme_title": "Teema",
   "theme_setting_three_stage_loading_subtitle": "Kolmivaiheinen lataaminen saattaa parantaa latauksen suorituskykyä, mutta lisää kaistankäyttöä huomattavasti.",
   "theme_setting_three_stage_loading_subtitle": "Kolmivaiheinen lataaminen saattaa parantaa latauksen suorituskykyä, mutta lisää kaistankäyttöä huomattavasti.",
   "theme_setting_three_stage_loading_title": "Ota kolmivaiheinen lataus käyttöön",
   "theme_setting_three_stage_loading_title": "Ota kolmivaiheinen lataus käyttöön",
-  "translated_text_options": "Options",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
+  "translated_text_options": "Vaihtoehdot",
+  "trash_page_delete": "Poista",
+  "trash_page_delete_all": "Poista kaikki",
+  "trash_page_empty_trash_btn": "Tyhjennä roskakori",
+  "trash_page_empty_trash_dialog_content": "Haluatko poistaa roskakoriin siirretyt kohteet? Kohteet poistetaan lopullisesti Immich:sta.",
   "trash_page_empty_trash_dialog_ok": "Ok",
   "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
+  "trash_page_info": "Roskakoriin siirretyt kohteet poistetaan lopullisesti {} päivän jälkeen",
+  "trash_page_no_assets": "Ei poistettuja kohteita",
+  "trash_page_restore": "Palauta",
+  "trash_page_restore_all": "Palauta kaikki",
+  "trash_page_select_assets_btn": "Valitse kohteet",
+  "trash_page_select_btn": "Valitse",
+  "trash_page_title": "Roskakori",
   "upload_dialog_cancel": "Peruuta",
   "upload_dialog_cancel": "Peruuta",
   "upload_dialog_info": "Haluatko varmuuskopioida valitut kohteet palvelimelle?",
   "upload_dialog_info": "Haluatko varmuuskopioida valitut kohteet palvelimelle?",
   "upload_dialog_ok": "Lähetä",
   "upload_dialog_ok": "Lähetä",
@@ -360,7 +384,7 @@
   "version_announcement_overlay_text_2": "Ota hetki aikaa vieraillaksesi",
   "version_announcement_overlay_text_2": "Ota hetki aikaa vieraillaksesi",
   "version_announcement_overlay_text_3": "ja varmista, että käyttämäsi docker-compose ja .env-asetukset ovat ajantasalla välttyäksesi asetusongelmilta. Varsinkin jos käytät WatchToweria tai jotain muuta mekanismia päivittääksesi palvelinsovellusta automaattisesti.",
   "version_announcement_overlay_text_3": "ja varmista, että käyttämäsi docker-compose ja .env-asetukset ovat ajantasalla välttyäksesi asetusongelmilta. Varsinkin jos käytät WatchToweria tai jotain muuta mekanismia päivittääksesi palvelinsovellusta automaattisesti.",
   "version_announcement_overlay_title": "Uusi palvelinversio saatavilla \uD83C\uDF89",
   "version_announcement_overlay_title": "Uusi palvelinversio saatavilla \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Poista pinosta",
+  "viewer_stack_use_as_main_asset": "Käytä pääkohteena",
+  "viewer_unstack": "Pura pino"
 }
 }

+ 384 - 0
mobile/assets/i18n/fr-CA.json

@@ -0,0 +1,384 @@
+{
+    "add_to_album_bottom_sheet_added": "Ajouté à {album}",
+    "add_to_album_bottom_sheet_already_exists": "Déjà dans {album}",
+    "advanced_settings_prefer_remote_subtitle": "Certains appareils sont très lents à charger des vignettes à partir de ressources présentes sur l'appareil. Activez ce paramètre pour charger des images externes à la place.",
+    "advanced_settings_prefer_remote_title": "Préférer les images externes",
+    "advanced_settings_self_signed_ssl_subtitle": "Permet d'ignorer la vérification du certificat SSL pour le point d'accès du serveur. Requis pour les certificats auto-signés.",
+    "advanced_settings_self_signed_ssl_title": "Autoriser les certificats SSL auto-signés",
+    "advanced_settings_tile_subtitle": "Paramètres d'utilisateur avancés",
+    "advanced_settings_tile_title": "Avancé",
+    "advanced_settings_troubleshooting_subtitle": "Activer des fonctions supplémentaires pour le dépannage",
+    "advanced_settings_troubleshooting_title": "Dépannage",
+    "album_info_card_backup_album_excluded": "EXCLUS",
+    "album_info_card_backup_album_included": "INCLUS",
+    "album_thumbnail_card_item": "1 élément",
+    "album_thumbnail_card_items": "{} éléments",
+    "album_thumbnail_card_shared": " · Partagé",
+    "album_thumbnail_owned": "Possédé",
+    "album_thumbnail_shared_by": "Partagé par {}",
+    "album_viewer_appbar_share_delete": "Supprimer l'album",
+    "album_viewer_appbar_share_err_delete": "Échec de la suppression de l'album",
+    "album_viewer_appbar_share_err_leave": "Impossible de quitter l'album",
+    "album_viewer_appbar_share_err_remove": "Il y a des problèmes lors de la suppression des éléments de l'album",
+    "album_viewer_appbar_share_err_title": "Échec de la modification du titre de l'album",
+    "album_viewer_appbar_share_leave": "Quitter l'album",
+    "album_viewer_appbar_share_remove": "Retirer de l'album",
+    "album_viewer_appbar_share_to": "Partager à",
+    "album_viewer_page_share_add_users": "Ajouter des utilisateurs",
+    "all_people_page_title": "Personnes",
+    "all_videos_page_title": "Vidéos",
+    "app_bar_signout_dialog_content": "Êtes-vous sûr de vouloir vous déconnecter?",
+    "app_bar_signout_dialog_ok": "Oui",
+    "app_bar_signout_dialog_title": "Se déconnecter",
+    "archive_page_no_archived_assets": "Aucun élément archivé n'a été trouvé",
+    "archive_page_title": "Archive ({})",
+    "asset_list_layout_settings_dynamic_layout_title": "Affichage dynamique",
+    "asset_list_layout_settings_group_automatically": "Automatique",
+    "asset_list_layout_settings_group_by": "Grouper les éléments par",
+    "asset_list_layout_settings_group_by_month": "Mois",
+    "asset_list_layout_settings_group_by_month_day": "Mois + jour",
+    "asset_list_settings_subtitle": "Paramètres de disposition de la grille de photos",
+    "asset_list_settings_title": "Grille de photos",
+    "backup_album_selection_page_albums_device": "Albums sur l'appareil ({})",
+    "backup_album_selection_page_albums_tap": "Tapez pour inclure, tapez deux fois pour exclure",
+    "backup_album_selection_page_assets_scatter": "Les éléments peuvent être répartis sur plusieurs albums. De ce fait, les albums peuvent être inclus ou exclus pendant le processus de sauvegarde.",
+    "backup_album_selection_page_select_albums": "Sélectionner les albums",
+    "backup_album_selection_page_selection_info": "Informations sur la sélection",
+    "backup_album_selection_page_total_assets": "Total des éléments uniques",
+    "backup_all": "Tout",
+    "backup_background_service_backup_failed_message": "Échec de la sauvegarde des éléments. Nouvelle tentative...",
+    "backup_background_service_connection_failed_message": "Impossible de se connecter au serveur. Nouvelle tentative...",
+    "backup_background_service_current_upload_notification": "Transfert {}",
+    "backup_background_service_default_notification": "Recherche de nouveaux éléments...",
+    "backup_background_service_error_title": "Erreur de sauvegarde",
+    "backup_background_service_in_progress_notification": "Sauvegarde de vos éléments...",
+    "backup_background_service_upload_failure_notification": "Impossible de transférer {}",
+    "backup_controller_page_albums": "Sauvegarder les albums",
+    "backup_controller_page_background_app_refresh_disabled_content": "Activez le rafraîchissement de l'application en arrière-plan dans Paramètres > Général > Rafraîchissement de l'application en arrière-plan afin d'utiliser la sauvegarde en arrière-plan.",
+    "backup_controller_page_background_app_refresh_disabled_title": "Rafraîchissement de l'application en arrière-plan désactivé",
+    "backup_controller_page_background_app_refresh_enable_button_text": "Aller aux paramètres",
+    "backup_controller_page_background_battery_info_link": "Montrez-moi comment",
+    "backup_controller_page_background_battery_info_message": "Pour une expérience optimale de la sauvegarde en arrière-plan, veuillez désactiver toute optimisation de la batterie limitant l'activité en arrière-plan pour Immich.\n\nÉtant donné que cela est spécifique à chaque appareil, veuillez consulter les informations requises pour le fabricant de votre appareil.",
+    "backup_controller_page_background_battery_info_ok": "OK",
+    "backup_controller_page_background_battery_info_title": "Optimisation de la batterie",
+    "backup_controller_page_background_charging": "Seulement pendant la charge",
+    "backup_controller_page_background_configure_error": "Échec de la configuration du service d'arrière-plan",
+    "backup_controller_page_background_delay": "Retarder la sauvegarde des nouveaux éléments d'actif: {}",
+    "backup_controller_page_background_description": "Activez le service d'arrière-plan pour sauvegarder automatiquement tous les nouveaux éléments sans avoir à ouvrir l'application.",
+    "backup_controller_page_background_is_off": "La sauvegarde automatique en arrière-plan est désactivée",
+    "backup_controller_page_background_is_on": "La sauvegarde automatique en arrière-plan est activée",
+    "backup_controller_page_background_turn_off": "Désactiver le service d'arrière-plan",
+    "backup_controller_page_background_turn_on": "Activer le service d'arrière-plan",
+    "backup_controller_page_background_wifi": "Uniquement sur WiFi",
+    "backup_controller_page_backup": "Sauvegardé",
+    "backup_controller_page_backup_selected": "Sélectionné: ",
+    "backup_controller_page_backup_sub": "Photos et vidéos sauvegardées",
+    "backup_controller_page_cancel": "Annuler",
+    "backup_controller_page_created": "Créé le: {}",
+    "backup_controller_page_desc_backup": "Activez la sauvegarde pour envoyer automatiquement les nouveaux éléments sur le serveur.",
+    "backup_controller_page_excluded": "Exclus: ",
+    "backup_controller_page_failed": "Échec de l'opération ({})",
+    "backup_controller_page_filename": "Nom du fichier: {} [{}]",
+    "backup_controller_page_id": "ID: {}",
+    "backup_controller_page_info": "Informations de sauvegarde",
+    "backup_controller_page_none_selected": "Aucune sélection",
+    "backup_controller_page_remainder": "Restant",
+    "backup_controller_page_remainder_sub": "Photos et albums restants à sauvegarder à partir de la sélection",
+    "backup_controller_page_select": "Sélectionner",
+    "backup_controller_page_server_storage": "Stockage du serveur",
+    "backup_controller_page_start_backup": "Démarrer la sauvegarde",
+    "backup_controller_page_status_off": "La sauvegarde est désactivée",
+    "backup_controller_page_status_on": "La sauvegarde est activée",
+    "backup_controller_page_storage_format": "{} de {} utilisé",
+    "backup_controller_page_to_backup": "Albums à sauvegarder",
+    "backup_controller_page_total": "Total",
+    "backup_controller_page_total_sub": "Toutes les photos et vidéos uniques des albums sélectionnés",
+    "backup_controller_page_turn_off": "Désactiver la sauvegarde",
+    "backup_controller_page_turn_on": "Activer la sauvegarde",
+    "backup_controller_page_uploading_file_info": "Transfert des informations du fichier",
+    "backup_err_only_album": "Impossible de retirer le seul album",
+    "backup_info_card_assets": "éléments",
+    "backup_manual_cancelled": "Annulé",
+    "backup_manual_failed": "Echec",
+    "backup_manual_in_progress": "Téléchargement déjà en cours. Essayez après un instant",
+    "backup_manual_success": "Succès ",
+    "backup_manual_title": "Statut du téléchargement ",
+    "cache_settings_album_thumbnails": "vignettes de la page bibliothèque ({} éléments)",
+    "cache_settings_clear_cache_button": "Effacer le cache",
+    "cache_settings_clear_cache_button_title": "Efface le cache de l'application. Cela aura un impact significatif sur les performances de l'application jusqu'à ce que le cache soit reconstruit.",
+    "cache_settings_image_cache_size": "Taille du cache des images ({} éléments)",
+    "cache_settings_statistics_album": "vignettes de la bibliothèque",
+    "cache_settings_statistics_assets": "{} éléments ({})",
+    "cache_settings_statistics_full": "Images complètes",
+    "cache_settings_statistics_shared": "vignettes d'albums partagés",
+    "cache_settings_statistics_thumbnail": "vignettes",
+    "cache_settings_statistics_title": "Utilisation du cache",
+    "cache_settings_subtitle": "Contrôler le comportement de mise en cache de l'application mobile Immich",
+    "cache_settings_thumbnail_size": "Taille du cache des vignettes ({} éléments)",
+    "cache_settings_tile_subtitle": "Contrôler le comportement du stockage local",
+    "cache_settings_tile_title": "Stockage local",
+    "cache_settings_title": "Paramètres de mise en cache",
+    "change_password_form_confirm_password": "Confirmez le mot de passe",
+    "change_password_form_description": "Bonjour {firstName} {lastName},\n\nC'est la première fois que vous vous connectez au système ou vous avez demandé de changer votre mot de passe. Veuillez saisir le nouveau mot de passe ci-dessous.",
+    "change_password_form_new_password": "Nouveau mot de passe",
+    "change_password_form_password_mismatch": "Les mots de passe ne correspondent pas",
+    "change_password_form_reenter_new_password": "Saisissez à nouveau le nouveau mot de passe",
+    "common_add_to_album": "Ajouter à l'album",
+    "common_change_password": "Modifier le mot de passe",
+    "common_create_new_album": "Créer un nouvel album",
+    "common_server_error": "Veuillez vérifier votre connexion réseau, vous assurer que le serveur est accessible et que les versions de l'application et du serveur sont compatibles.",
+    "common_shared": "Partagé",
+    "control_bottom_app_bar_add_to_album": "Ajouter à l'album",
+    "control_bottom_app_bar_album_info": "{} éléments",
+    "control_bottom_app_bar_album_info_shared": "{} éléments - Partagés",
+    "control_bottom_app_bar_archive": "Archive",
+    "control_bottom_app_bar_create_new_album": "Créer un nouvel album",
+    "control_bottom_app_bar_delete": "Supprimer",
+    "control_bottom_app_bar_favorite": "Favoris",
+    "control_bottom_app_bar_share": "Partager",
+    "control_bottom_app_bar_share_to": "Partager à",
+    "control_bottom_app_bar_stack": "Empiler",
+    "control_bottom_app_bar_unarchive": "Désarchiver",
+    "control_bottom_app_bar_upload": "Téléverser",
+    "create_album_page_untitled": "Sans titre",
+    "create_shared_album_page_create": "Créer",
+    "create_shared_album_page_share": "Partager",
+    "create_shared_album_page_share_add_assets": "AJOUTER DES ÉLÉMENTS",
+    "create_shared_album_page_share_select_photos": "Sélectionner les photos",
+    "curated_location_page_title": "Places",
+    "curated_object_page_title": "Objets",
+    "daily_title_text_date": "E, dd MMM",
+    "daily_title_text_date_year": "E, dd MMM, yyyy",
+    "date_format": "E, LLL d, y • h:mm a",
+    "delete_dialog_alert": "Ces éléments seront définitivement supprimés de Immich et de votre appareil.",
+    "delete_dialog_cancel": "Annuler",
+    "delete_dialog_ok": "Supprimer",
+    "delete_dialog_title": "Supprimer définitivement",
+    "delete_shared_link_dialog_content": "Êtes-vous sûr de vouloir supprimer ce lien partagé?",
+    "delete_shared_link_dialog_title": "Supprimer le lien partagé",
+    "description_input_hint_text": "Ajouter une description...",
+    "description_input_submit_error": "Erreur de mise à jour de la description, vérifier le journal pour plus de détails",
+    "exif_bottom_sheet_description": "Ajouter une description...",
+    "exif_bottom_sheet_details": "DÉTAILS",
+    "exif_bottom_sheet_location": "LOCALISATION",
+    "experimental_settings_new_asset_list_subtitle": "En cours de développement",
+    "experimental_settings_new_asset_list_title": "Activer la grille de photos expérimentale",
+    "experimental_settings_subtitle": "Utilisez à vos dépends!",
+    "experimental_settings_title": "Expérimental",
+    "favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
+    "favorites_page_title": "Favoris",
+    "home_page_add_to_album_conflicts": "{added} éléments ajoutés à l'album {album}. Les éléments {failed} sont déjà dans l'album.",
+    "home_page_add_to_album_err_local": "Impossible d'ajouter des éléments locaux aux albums pour le moment, étape ignorée",
+    "home_page_add_to_album_success": "{added} éléments ajoutés à l'album {album}.",
+    "home_page_archive_err_local": "Impossible d'archiver les ressources locales pour l'instant, étape ignorée",
+    "home_page_building_timeline": "Construction de la chronologie",
+    "home_page_favorite_err_local": "Impossible d'ajouter des éléments locaux aux favoris pour le moment, étape ignorée",
+    "home_page_first_time_notice": "Si c'est la première fois que vous utilisez l'application, veillez à choisir un ou plusieurs albums de sauvegarde afin que la chronologie puisse alimenter les photos et les vidéos de cet ou ces albums.",
+    "home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée",
+    "image_viewer_page_state_provider_download_error": "Erreur de téléchargement",
+    "image_viewer_page_state_provider_download_success": "Téléchargement réussi",
+    "image_viewer_page_state_provider_share_error": "Erreur de partage",
+    "library_page_albums": "Albums",
+    "library_page_archive": "Archive",
+    "library_page_device_albums": "Albums sur l'appareil",
+    "library_page_favorites": "Favoris",
+    "library_page_new_album": "Nouvel album",
+    "library_page_sharing": "Partage",
+    "library_page_sort_created": "Créations les plus récentes",
+    "library_page_sort_last_modified": "Dernière modification",
+    "library_page_sort_most_recent_photo": "Photo la plus récente",
+    "library_page_sort_title": "Titre de l'album",
+    "login_disabled": "La connexion a été désactivée ",
+    "login_form_api_exception": "Erreur de l'API. Veuillez vérifier l'URL du serveur et et réessayer.",
+    "login_form_button_text": "Connexion",
+    "login_form_email_hint": "votreemail@email.com",
+    "login_form_endpoint_hint": "http://adresse-ip-serveur:port/api",
+    "login_form_endpoint_url": "URL du point d'accès au serveur",
+    "login_form_err_http": "Veuillez préciser http:// ou https://",
+    "login_form_err_invalid_email": "E-mail invalide",
+    "login_form_err_invalid_url": "URL invalide",
+    "login_form_err_leading_whitespace": "Espace en début de ligne",
+    "login_form_err_trailing_whitespace": "Espace de fin de ligne",
+    "login_form_failed_get_oauth_server_config": "Erreur de connexion par OAuth, vérifiez l\"URL du serveur",
+    "login_form_failed_get_oauth_server_disable": "La fonctionnalité OAuth n'est pas disponible sur ce serveur",
+    "login_form_failed_login": "Erreur de connexion, vérifiez l'url du serveur, l'email et le mot de passe",
+    "login_form_handshake_exception": "Il y a eu une exception de liaison avec le serveur. Activez la prise en charge des certificats auto-signés dans les paramètres si vous utilisez un certificat auto-signé.",
+    "login_form_label_email": "E-mail",
+    "login_form_label_password": "Mot de passe",
+    "login_form_next_button": "Suivant",
+    "login_form_password_hint": "mot de passe",
+    "login_form_save_login": "Rester connecté",
+    "login_form_server_empty": "Saisissez l'URL du serveur.",
+    "login_form_server_error": "Impossible de se connecter au serveur.",
+    "login_password_changed_error": "Une erreur s'est produite lors de la mise à jour de votre mot de passe",
+    "login_password_changed_success": "Mot de passe mis à jour avec succès",
+    "map_cannot_get_user_location": "Impossible d'obtenir la localisation de l'utilisateur",
+    "map_location_dialog_cancel": "Annuler",
+    "map_location_dialog_yes": "Oui",
+    "map_location_service_disabled_content": "Le service de localisation doit être activé pour afficher les éléments de votre emplacement actuel. Souhaitez-vous l'activer maintenant?",
+    "map_location_service_disabled_title": "Service de localisation désactivé",
+    "map_no_assets_in_bounds": "Pas de photos dans cette zone",
+    "map_no_location_permission_content": "L'autorisation de localisation est nécessaire pour afficher les éléments de votre emplacement actuel. Souhaitez-vous l'autoriser maintenant?",
+    "map_no_location_permission_title": "Permission de localisation refusée",
+    "map_settings_dark_mode": "Mode sombre",
+    "map_settings_dialog_cancel": "Annuler",
+    "map_settings_dialog_save": "Sauvegarder",
+    "map_settings_dialog_title": "Paramètres de la carte",
+    "map_settings_include_show_archived": "Inclure les archives",
+    "map_settings_only_relative_range": "Plage de dates",
+    "map_settings_only_show_favorites": "Afficher uniquement les favoris",
+    "map_zoom_to_see_photos": "Dézoomer pour voir les photos",
+    "monthly_title_text_date_format": "MMMM y",
+    "motion_photos_page_title": "Photos avec mouvement",
+    "notification_permission_dialog_cancel": "Annuler",
+    "notification_permission_dialog_content": "Pour activer les notifications, allez dans Paramètres et sélectionnez Autoriser.",
+    "notification_permission_dialog_settings": "Paramètres",
+    "notification_permission_list_tile_content": "Accordez la permission d'activer les notifications.",
+    "notification_permission_list_tile_enable_button": "Activer les notifications",
+    "notification_permission_list_tile_title": "Permission de notification",
+    "partner_page_add_partner": "Ajouter un partenaire",
+    "partner_page_empty_message": "Vos photos ne sont pas encore partagées avec un partenaire.",
+    "partner_page_no_more_users": "Plus d'utilisateurs à ajouter",
+    "partner_page_partner_add_failed": "Échec de l'ajout d'un partenaire",
+    "partner_page_select_partner": "Sélectionner un partenaire",
+    "partner_page_shared_to_title": "Partagé avec",
+    "partner_page_stop_sharing_content": "{} ne pourra plus accéder à vos photos.",
+    "partner_page_stop_sharing_title": "Arrêter de partager vos photos?",
+    "partner_page_title": "Partenaire",
+    "permission_onboarding_continue_anyway": "Continuer quand même",
+    "permission_onboarding_get_started": "Commencer",
+    "permission_onboarding_go_to_settings": "Accéder aux paramètres",
+    "permission_onboarding_grant_permission": "Accorder l'autorisation",
+    "permission_onboarding_log_out": "Se déconnecter",
+    "permission_onboarding_permission_denied": "Permission refusée. Pour utiliser Immich, accordez lautorisation pour les photos et vidéos dans les Paramètres.",
+    "permission_onboarding_permission_granted": "Permission accordée! Vous êtes prêts.",
+    "permission_onboarding_permission_limited": "Permission limitée. Pour permettre à Immich de sauvegarder et de gérer l'ensemble de votre bibliothèque, accordez l'autorisation pour les photos et vidéos dans les Paramètres.",
+    "permission_onboarding_request": "Immich demande l'autorisation de visionner vos photos et vidéo",
+    "profile_drawer_app_logs": "Journaux",
+    "profile_drawer_client_server_up_to_date": "Le client et le serveur sont à jour",
+    "profile_drawer_documentation": "Documentation",
+    "profile_drawer_github": "GitHub",
+    "profile_drawer_settings": "Paramètres",
+    "profile_drawer_sign_out": "Se déconnecter",
+    "profile_drawer_trash": "Corbeille",
+    "recently_added_page_title": "Récemment ajouté",
+    "search_bar_hint": "Rechercher vos photos",
+    "search_page_categories": "Catégories",
+    "search_page_favorites": "Favoris",
+    "search_page_motion_photos": "Photos avec mouvement",
+    "search_page_no_objects": "Aucune information disponible sur les objets",
+    "search_page_no_places": "Aucune information disponible sur la localisation",
+    "search_page_people": "Personnes",
+    "search_page_places": "Lieux",
+    "search_page_recently_added": "Récemment ajouté",
+    "search_page_screenshots": "Captures d'écran",
+    "search_page_selfies": "Selfies",
+    "search_page_things": "Objets",
+    "search_page_videos": "Vidéos",
+    "search_page_view_all_button": "Voir tout",
+    "search_page_your_activity": "Votre activité",
+    "search_result_page_new_search_hint": "Nouvelle recherche",
+    "search_suggestion_list_smart_search_hint_1": "La recherche intelligente est activée par défaut. Pour rechercher des métadonnées, utilisez la syntaxe suivante",
+    "search_suggestion_list_smart_search_hint_2": "m:votre-terme-de-recherche",
+    "select_additional_user_for_sharing_page_suggestions": "Suggestions",
+    "select_user_for_sharing_page_err_album": "Échec de la création de l'album",
+    "select_user_for_sharing_page_share_suggestions": "Suggestions",
+    "server_info_box_app_version": "Version de l'application",
+    "server_info_box_server_url": "URL du serveur",
+    "server_info_box_server_version": "Version du serveur",
+    "setting_image_viewer_help": "Le visualiseur de détails charge d'abord la petite vignette, puis l'aperçu de taille moyenne (s'il est activé), enfin l'original (s'il est activé).",
+    "setting_image_viewer_original_subtitle": "Activez cette option pour charger l'image en résolution originale (volumineux!). Désactiver pour réduire l'utilisation des données (réseau et cache de l'appareil).",
+    "setting_image_viewer_original_title": "Charger l'image originale",
+    "setting_image_viewer_preview_subtitle": "Activer pour charger une image de résolution moyenne. Désactiver pour charger directement l'original ou utiliser uniquement la vignette.",
+    "setting_image_viewer_preview_title": "Charger l'image d'aperçu",
+    "setting_notifications_notify_failures_grace_period": "Notifier les échecs de la sauvegarde en arrière-plan: {}",
+    "setting_notifications_notify_hours": "{} heures",
+    "setting_notifications_notify_immediately": "immédiatement",
+    "setting_notifications_notify_minutes": "{} minutes",
+    "setting_notifications_notify_never": "jamais",
+    "setting_notifications_notify_seconds": "{} secondes",
+    "setting_notifications_single_progress_subtitle": "Informations détaillées sur la progression du transfert par élément",
+    "setting_notifications_single_progress_title": "Afficher la progression du détail de la sauvegarde en arrière-plan",
+    "setting_notifications_subtitle": "Ajustez vos préférences de notification",
+    "setting_notifications_title": "Notifications",
+    "setting_notifications_total_progress_subtitle": "Progression globale du transfert (effectué/total des éléments)",
+    "setting_notifications_total_progress_title": "Afficher la progression totale de la sauvegarde en arrière-plan",
+    "setting_pages_app_bar_settings": "Paramètres",
+    "settings_require_restart": "Veuillez redémarrer Immich pour appliquer ce paramètre",
+    "share_add": "Ajouter",
+    "share_add_photos": "Ajouter des photos",
+    "share_add_title": "Ajouter un titre",
+    "share_create_album": "Créer un album",
+    "shared_album_activities_input_disable": "Les commentaires sont désactivés",
+    "shared_album_activities_input_hint": "Dire quelque chose",
+    "shared_album_activity_remove_content": "Souhaitez-vous supprimer cette activité?",
+    "shared_album_activity_remove_title": "Supprimer l'activité",
+    "shared_album_activity_setting_subtitle": "Laisser les autres réagir",
+    "shared_album_activity_setting_title": "Commentaires et likes",
+    "share_dialog_preparing": "Préparation...",
+    "shared_link_app_bar_title": "Liens partagés",
+    "shared_link_create_app_bar_title": "Créer un lien pour partager",
+    "shared_link_create_info": "Permettre à toute personne ayant le lien de voir la ou les photos sélectionnées",
+    "shared_link_create_submit_button": "Créer le lien",
+    "shared_link_edit_allow_download": "Autoriser les utilisateurs publics à télécharger",
+    "shared_link_edit_allow_upload": "Autoriser les utilisateurs publics à téléverser",
+    "shared_link_edit_app_bar_title": "Modifier le lien",
+    "shared_link_edit_change_expiry": "Modifier le délai d'expiration",
+    "shared_link_edit_description": "Description",
+    "shared_link_edit_description_hint": "Saisir la description du partage",
+    "shared_link_edit_expire_after": "Expire après",
+    "shared_link_edit_password": "Mot de passe",
+    "shared_link_edit_password_hint": "Saisir le mot de passe de partage",
+    "shared_link_edit_show_meta": "Afficher les métadonnées",
+    "shared_link_edit_submit_button": "Mettre à jour le lien",
+    "shared_link_empty": "Vous n'avez pas de liens partagés",
+    "shared_link_manage_links": "Gérer les liens partagés",
+    "share_done": "Fait",
+    "share_invite": "Inviter à l'album",
+    "sharing_page_album": "Albums partagés",
+    "sharing_page_description": "Créez des albums partagés pour partager des photos et des vidéos avec les personnes de votre réseau.",
+    "sharing_page_empty_list": "LISTE VIDE",
+    "sharing_silver_appbar_create_shared_album": "Créer un album partagé",
+    "sharing_silver_appbar_shared_links": "Liens partagés",
+    "sharing_silver_appbar_share_partner": "Partager avec un partenaire",
+    "tab_controller_nav_library": "Bibliothèque",
+    "tab_controller_nav_photos": "Photos",
+    "tab_controller_nav_search": "Recherche",
+    "tab_controller_nav_sharing": "Partage",
+    "theme_setting_asset_list_storage_indicator_title": "Afficher l'indicateur de stockage sur les tuiles des éléments",
+    "theme_setting_asset_list_tiles_per_row_title": "Nombre d'éléments par ligne ({})",
+    "theme_setting_dark_mode_switch": "Mode sombre",
+    "theme_setting_image_viewer_quality_subtitle": "Ajustez la qualité de la visionneuse d'images détaillées",
+    "theme_setting_image_viewer_quality_title": "Qualité de la visualisation des images",
+    "theme_setting_system_theme_switch": "Automatique (suivre les paramètres du système)",
+    "theme_setting_theme_subtitle": "Choisissez le thème de l'application",
+    "theme_setting_theme_title": "Thème",
+    "theme_setting_three_stage_loading_subtitle": "Le chargement en trois étapes peut améliorer les performances de chargement, mais entraîne une augmentation significative de la charge du réseau.",
+    "theme_setting_three_stage_loading_title": "Activer le chargement en trois étapes",
+    "translated_text_options": "Options",
+    "trash_page_delete": "Supprimer",
+    "trash_page_delete_all": "Tout supprimer",
+    "trash_page_empty_trash_btn": "Vider la corbeille",
+    "trash_page_empty_trash_dialog_content": "Voulez-vous vider les éléments de la corbeille? Ces objets seront définitivement retirés d'Immich",
+    "trash_page_empty_trash_dialog_ok": "Ok",
+    "trash_page_info": "Les éléments mis à la corbeille seront définitivement supprimés au bout de {} jours.",
+    "trash_page_no_assets": "Pas d'éléments dans la corbeille",
+    "trash_page_restore": "Restaurer",
+    "trash_page_restore_all": "Tout restaurer",
+    "trash_page_select_assets_btn": "Sélectionner les éléments",
+    "trash_page_select_btn": "Sélectionner",
+    "trash_page_title": "Corbeille ({})",
+    "upload_dialog_cancel": "Annuler",
+    "upload_dialog_info": "Voulez-vous sauvegarder la sélection vers le serveur?",
+    "upload_dialog_ok": "Télécharger ",
+    "upload_dialog_title": "Télécharger cet élément ",
+    "version_announcement_overlay_ack": "Confirmer",
+    "version_announcement_overlay_release_notes": "notes de mise à jour",
+    "version_announcement_overlay_text_1": "Bonjour, une nouvelle version de",
+    "version_announcement_overlay_text_2": "veuillez prendre le temps de visiter le ",
+    "version_announcement_overlay_text_3": " et assurez-vous que votre configuration docker-compose et .env est à jour pour éviter toute erreur de configuration, en particulier si vous utilisez WatchTower ou tout autre mécanisme qui gère la mise à jour automatique de votre application serveur.",
+    "version_announcement_overlay_title": "Nouvelle version serveur disponible \uD83C\uDF89",
+    "viewer_remove_from_stack": "Retirer de la pile",
+    "viewer_stack_use_as_main_asset": "Utiliser comme élément principal",
+    "viewer_unstack": "Désempiler"
+  }

+ 63 - 39
mobile/assets/i18n/fr-FR.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Échec de la modification du titre de l'album",
   "album_viewer_appbar_share_err_title": "Échec de la modification du titre de l'album",
   "album_viewer_appbar_share_leave": "Quitter l'album",
   "album_viewer_appbar_share_leave": "Quitter l'album",
   "album_viewer_appbar_share_remove": "Retirer de l'album",
   "album_viewer_appbar_share_remove": "Retirer de l'album",
+  "album_viewer_appbar_share_to": "Partager à",
   "album_viewer_page_share_add_users": "Ajouter des utilisateurs",
   "album_viewer_page_share_add_users": "Ajouter des utilisateurs",
   "all_people_page_title": "Personnes",
   "all_people_page_title": "Personnes",
   "all_videos_page_title": "Vidéos",
   "all_videos_page_title": "Vidéos",
+  "app_bar_signout_dialog_content": "Êtes-vous sûr de vouloir vous déconnecter ?",
+  "app_bar_signout_dialog_ok": "Oui",
+  "app_bar_signout_dialog_title": "Se déconnecter",
   "archive_page_no_archived_assets": "Aucun élément archivé n'a été trouvé",
   "archive_page_no_archived_assets": "Aucun élément archivé n'a été trouvé",
   "archive_page_title": "Archive ({})",
   "archive_page_title": "Archive ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Affichage dynamique",
   "asset_list_layout_settings_dynamic_layout_title": "Affichage dynamique",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Utilisation du cache",
   "cache_settings_statistics_title": "Utilisation du cache",
   "cache_settings_subtitle": "Contrôler le comportement de mise en cache de l'application mobile Immich",
   "cache_settings_subtitle": "Contrôler le comportement de mise en cache de l'application mobile Immich",
   "cache_settings_thumbnail_size": "Taille du cache des miniatures ({} éléments)",
   "cache_settings_thumbnail_size": "Taille du cache des miniatures ({} éléments)",
+  "cache_settings_tile_subtitle": "Contrôler le comportement du stockage local",
+  "cache_settings_tile_title": "Stockage local",
   "cache_settings_title": "Paramètres de mise en cache",
   "cache_settings_title": "Paramètres de mise en cache",
   "change_password_form_confirm_password": "Confirmez le mot de passe",
   "change_password_form_confirm_password": "Confirmez le mot de passe",
   "change_password_form_description": "Bonjour {firstName} {lastName},\n\nC'est la première fois que vous vous connectez au système ou vous avez demandé à changer votre mot de passe. Veuillez saisir le nouveau mot de passe ci-dessous.",
   "change_password_form_description": "Bonjour {firstName} {lastName},\n\nC'est la première fois que vous vous connectez au système ou vous avez demandé à changer votre mot de passe. Veuillez saisir le nouveau mot de passe ci-dessous.",
@@ -130,10 +136,10 @@
   "control_bottom_app_bar_delete": "Supprimer",
   "control_bottom_app_bar_delete": "Supprimer",
   "control_bottom_app_bar_favorite": "Favoris",
   "control_bottom_app_bar_favorite": "Favoris",
   "control_bottom_app_bar_share": "Partager",
   "control_bottom_app_bar_share": "Partager",
-  "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_share_to": "Partager à",
+  "control_bottom_app_bar_stack": "Empiler",
   "control_bottom_app_bar_unarchive": "Désarchiver",
   "control_bottom_app_bar_unarchive": "Désarchiver",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Téléverser",
   "create_album_page_untitled": "Sans titre",
   "create_album_page_untitled": "Sans titre",
   "create_shared_album_page_create": "Créer",
   "create_shared_album_page_create": "Créer",
   "create_shared_album_page_share": "Partager",
   "create_shared_album_page_share": "Partager",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "Annuler",
   "delete_dialog_cancel": "Annuler",
   "delete_dialog_ok": "Supprimer",
   "delete_dialog_ok": "Supprimer",
   "delete_dialog_title": "Supprimer définitivement",
   "delete_dialog_title": "Supprimer définitivement",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Êtes-vous sûr de vouloir supprimer ce lien partagé ?",
+  "delete_shared_link_dialog_title": "Supprimer le lien partagé",
   "description_input_hint_text": "Ajouter une description...",
   "description_input_hint_text": "Ajouter une description...",
   "description_input_submit_error": "Erreur de mise à jour de la description, vérifier le journal pour plus de détails",
   "description_input_submit_error": "Erreur de mise à jour de la description, vérifier le journal pour plus de détails",
   "exif_bottom_sheet_description": "Ajouter une description...",
   "exif_bottom_sheet_description": "Ajouter une description...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "{added} éléments ajoutés à l'album {album}. Les éléments {failed} sont déjà dans l'album.",
   "home_page_add_to_album_conflicts": "{added} éléments ajoutés à l'album {album}. Les éléments {failed} sont déjà dans l'album.",
   "home_page_add_to_album_err_local": "Impossible d'ajouter des éléments locaux aux albums pour le moment, étape ignorée",
   "home_page_add_to_album_err_local": "Impossible d'ajouter des éléments locaux aux albums pour le moment, étape ignorée",
   "home_page_add_to_album_success": "{added} éléments ajoutés à l'album {album}.",
   "home_page_add_to_album_success": "{added} éléments ajoutés à l'album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Impossible d'archiver les ressources locales pour l'instant, étape ignorée",
   "home_page_archive_err_local": "Impossible d'archiver les ressources locales pour l'instant, étape ignorée",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Construction de la chronologie",
   "home_page_building_timeline": "Construction de la chronologie",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Impossible d'ajouter des éléments locaux aux favoris pour le moment, étape ignorée",
   "home_page_favorite_err_local": "Impossible d'ajouter des éléments locaux aux favoris pour le moment, étape ignorée",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Si c'est la première fois que vous utilisez l'application, veillez à choisir un ou plusieurs albums de sauvegarde afin que la chronologie puisse alimenter les photos et les vidéos de cet ou ces albums.",
   "home_page_first_time_notice": "Si c'est la première fois que vous utilisez l'application, veillez à choisir un ou plusieurs albums de sauvegarde afin que la chronologie puisse alimenter les photos et les vidéos de cet ou ces albums.",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée",
   "home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée",
   "image_viewer_page_state_provider_download_error": "Erreur de téléchargement",
   "image_viewer_page_state_provider_download_error": "Erreur de téléchargement",
   "image_viewer_page_state_provider_download_success": "Téléchargement réussi",
   "image_viewer_page_state_provider_download_success": "Téléchargement réussi",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Erreur de partage",
   "library_page_albums": "Albums",
   "library_page_albums": "Albums",
   "library_page_archive": "Archive",
   "library_page_archive": "Archive",
   "library_page_device_albums": "Albums sur l'appareil",
   "library_page_device_albums": "Albums sur l'appareil",
@@ -179,8 +190,8 @@
   "library_page_new_album": "Nouvel album",
   "library_page_new_album": "Nouvel album",
   "library_page_sharing": "Partage",
   "library_page_sharing": "Partage",
   "library_page_sort_created": "Créations les plus récentes",
   "library_page_sort_created": "Créations les plus récentes",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Dernière modification",
+  "library_page_sort_most_recent_photo": "Photo la plus récente",
   "library_page_sort_title": "Titre de l'album",
   "library_page_sort_title": "Titre de l'album",
   "login_disabled": "La connexion a été désactivée ",
   "login_disabled": "La connexion a été désactivée ",
   "login_form_api_exception": "Erreur de l'API. Veuillez vérifier l'URL du serveur et et réessayer.",
   "login_form_api_exception": "Erreur de l'API. Veuillez vérifier l'URL du serveur et et réessayer.",
@@ -218,7 +229,7 @@
   "map_settings_dialog_cancel": "Annuler",
   "map_settings_dialog_cancel": "Annuler",
   "map_settings_dialog_save": "Sauvegarder",
   "map_settings_dialog_save": "Sauvegarder",
   "map_settings_dialog_title": "Paramètres de la carte",
   "map_settings_dialog_title": "Paramètres de la carte",
-  "map_settings_include_show_archived": "Include Archived",
+  "map_settings_include_show_archived": "Inclure les archives",
   "map_settings_only_relative_range": "Plage de dates",
   "map_settings_only_relative_range": "Plage de dates",
   "map_settings_only_show_favorites": "Afficher uniquement les favoris",
   "map_settings_only_show_favorites": "Afficher uniquement les favoris",
   "map_zoom_to_see_photos": "Dézoomer pour voir les photos",
   "map_zoom_to_see_photos": "Dézoomer pour voir les photos",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} ne pourra plus accéder à vos photos.",
   "partner_page_stop_sharing_content": "{} ne pourra plus accéder à vos photos.",
   "partner_page_stop_sharing_title": "Arrêter de partager vos photos ?",
   "partner_page_stop_sharing_title": "Arrêter de partager vos photos ?",
   "partner_page_title": "Partenaire",
   "partner_page_title": "Partenaire",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continuer quand même",
   "permission_onboarding_continue_anyway": "Continuer quand même",
   "permission_onboarding_get_started": "Commencer",
   "permission_onboarding_get_started": "Commencer",
   "permission_onboarding_go_to_settings": "Accéder aux paramètres",
   "permission_onboarding_go_to_settings": "Accéder aux paramètres",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich demande l'autorisation de visionner vos photos et vidéo",
   "permission_onboarding_request": "Immich demande l'autorisation de visionner vos photos et vidéo",
   "profile_drawer_app_logs": "Journaux",
   "profile_drawer_app_logs": "Journaux",
   "profile_drawer_client_server_up_to_date": "Le client et le serveur sont à jour",
   "profile_drawer_client_server_up_to_date": "Le client et le serveur sont à jour",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Paramètres",
   "profile_drawer_settings": "Paramètres",
   "profile_drawer_sign_out": "Se déconnecter",
   "profile_drawer_sign_out": "Se déconnecter",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Corbeille",
   "recently_added_page_title": "Récemment ajouté",
   "recently_added_page_title": "Récemment ajouté",
   "search_bar_hint": "Rechercher vos photos",
   "search_bar_hint": "Rechercher vos photos",
   "search_page_categories": "Catégories",
   "search_page_categories": "Catégories",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Échec de la création de l'album",
   "select_user_for_sharing_page_err_album": "Échec de la création de l'album",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "server_info_box_app_version": "Version de l'application",
   "server_info_box_app_version": "Version de l'application",
+  "server_info_box_server_url": "URL du serveur",
   "server_info_box_server_version": "Version du serveur",
   "server_info_box_server_version": "Version du serveur",
   "setting_image_viewer_help": "Le visualiseur de détails charge d'abord la petite miniature, puis l'aperçu de taille moyenne (s'il est activé), enfin l'original (s'il est activé).",
   "setting_image_viewer_help": "Le visualiseur de détails charge d'abord la petite miniature, puis l'aperçu de taille moyenne (s'il est activé), enfin l'original (s'il est activé).",
   "setting_image_viewer_original_subtitle": "Activez cette option pour charger l'image en résolution originale (volumineux !). Désactiver pour réduire l'utilisation des données (réseau et cache de l'appareil).",
   "setting_image_viewer_original_subtitle": "Activez cette option pour charger l'image en résolution originale (volumineux !). Désactiver pour réduire l'utilisation des données (réseau et cache de l'appareil).",
@@ -300,28 +315,37 @@
   "share_add_photos": "Ajouter des photos",
   "share_add_photos": "Ajouter des photos",
   "share_add_title": "Ajouter un titre",
   "share_add_title": "Ajouter un titre",
   "share_create_album": "Créer un album",
   "share_create_album": "Créer un album",
+  "shared_album_activities_input_disable": "Les commentaires sont désactivés",
+  "shared_album_activities_input_hint": "Dire quelque chose",
+  "shared_album_activity_remove_content": "Souhaitez-vous supprimer cette activité ?",
+  "shared_album_activity_remove_title": "Supprimer l'activité",
+  "shared_album_activity_setting_subtitle": "Laisser les autres réagir",
+  "shared_album_activity_setting_title": "Commentaires et likes",
   "share_dialog_preparing": "Préparation...",
   "share_dialog_preparing": "Préparation...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
+  "shared_link_app_bar_title": "Liens partagés",
+  "shared_link_create_app_bar_title": "Créer un lien pour partager",
+  "shared_link_create_info": "Permettre à toute personne ayant le lien de voir la ou les photos sélectionnées",
+  "shared_link_create_submit_button": "Créer le lien",
+  "shared_link_edit_allow_download": "Autoriser les utilisateurs publics à télécharger",
+  "shared_link_edit_allow_upload": "Autoriser les utilisateurs publics à téléverser",
+  "shared_link_edit_app_bar_title": "Modifier le lien",
+  "shared_link_edit_change_expiry": "Modifier le délai d'expiration",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_edit_description_hint": "Saisir la description du partage",
+  "shared_link_edit_expire_after": "Expire après",
+  "shared_link_edit_password": "Mot de passe",
+  "shared_link_edit_password_hint": "Saisir le mot de passe de partage",
+  "shared_link_edit_show_meta": "Afficher les métadonnées",
+  "shared_link_edit_submit_button": "Mettre à jour le lien",
+  "shared_link_empty": "Vous n'avez pas de liens partagés",
+  "shared_link_manage_links": "Gérer les liens partagés",
+  "share_done": "Fait",
   "share_invite": "Inviter à l'album",
   "share_invite": "Inviter à l'album",
   "sharing_page_album": "Albums partagés",
   "sharing_page_album": "Albums partagés",
   "sharing_page_description": "Créez des albums partagés pour partager des photos et des vidéos avec les personnes de votre réseau.",
   "sharing_page_description": "Créez des albums partagés pour partager des photos et des vidéos avec les personnes de votre réseau.",
   "sharing_page_empty_list": "LISTE VIDE",
   "sharing_page_empty_list": "LISTE VIDE",
   "sharing_silver_appbar_create_shared_album": "Créer un album partagé",
   "sharing_silver_appbar_create_shared_album": "Créer un album partagé",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Liens partagés",
   "sharing_silver_appbar_share_partner": "Partager avec un partenaire",
   "sharing_silver_appbar_share_partner": "Partager avec un partenaire",
   "tab_controller_nav_library": "Bibliothèque",
   "tab_controller_nav_library": "Bibliothèque",
   "tab_controller_nav_photos": "Photos",
   "tab_controller_nav_photos": "Photos",
@@ -338,18 +362,18 @@
   "theme_setting_three_stage_loading_subtitle": "Le chargement en trois étapes peut améliorer les performances de chargement, mais entraîne une augmentation significative de la charge du réseau.",
   "theme_setting_three_stage_loading_subtitle": "Le chargement en trois étapes peut améliorer les performances de chargement, mais entraîne une augmentation significative de la charge du réseau.",
   "theme_setting_three_stage_loading_title": "Activer le chargement en trois étapes",
   "theme_setting_three_stage_loading_title": "Activer le chargement en trois étapes",
   "translated_text_options": "Options",
   "translated_text_options": "Options",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
+  "trash_page_delete": "Supprimer",
+  "trash_page_delete_all": "Tout supprimer",
+  "trash_page_empty_trash_btn": "Vider la corbeille",
+  "trash_page_empty_trash_dialog_content": "Voulez-vous vider les éléments de la corbeille? Ces objets seront définitivement retirés d'Immich",
   "trash_page_empty_trash_dialog_ok": "Ok",
   "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
+  "trash_page_info": "Les éléments mis à la corbeille seront définitivement supprimés au bout de {} jours.",
+  "trash_page_no_assets": "Pas d'éléments dans la corbeille",
+  "trash_page_restore": "Restaurer",
+  "trash_page_restore_all": "Tout restaurer",
+  "trash_page_select_assets_btn": "Sélectionner les éléments",
+  "trash_page_select_btn": "Sélectionner",
+  "trash_page_title": "Corbeille ({})",
   "upload_dialog_cancel": "Annuler",
   "upload_dialog_cancel": "Annuler",
   "upload_dialog_info": "Voulez-vous sauvegarder la sélection vers le serveur ?",
   "upload_dialog_info": "Voulez-vous sauvegarder la sélection vers le serveur ?",
   "upload_dialog_ok": "Télécharger ",
   "upload_dialog_ok": "Télécharger ",
@@ -360,7 +384,7 @@
   "version_announcement_overlay_text_2": "veuillez prendre le temps de visiter le ",
   "version_announcement_overlay_text_2": "veuillez prendre le temps de visiter le ",
   "version_announcement_overlay_text_3": " et assurez-vous que votre configuration docker-compose et .env est à jour pour éviter toute erreur de configuration, en particulier si vous utilisez WatchTower ou tout autre mécanisme qui gère la mise à jour automatique de votre application serveur.",
   "version_announcement_overlay_text_3": " et assurez-vous que votre configuration docker-compose et .env est à jour pour éviter toute erreur de configuration, en particulier si vous utilisez WatchTower ou tout autre mécanisme qui gère la mise à jour automatique de votre application serveur.",
   "version_announcement_overlay_title": "Nouvelle version serveur disponible \uD83C\uDF89",
   "version_announcement_overlay_title": "Nouvelle version serveur disponible \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Retirer de la pile",
+  "viewer_stack_use_as_main_asset": "Utiliser comme élément principal",
+  "viewer_unstack": "Désempiler"
 }
 }

+ 24 - 0
mobile/assets/i18n/hi-IN.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Failed to change album title",
   "album_viewer_appbar_share_err_title": "Failed to change album title",
   "album_viewer_appbar_share_leave": "Leave album",
   "album_viewer_appbar_share_leave": "Leave album",
   "album_viewer_appbar_share_remove": "Remove from album",
   "album_viewer_appbar_share_remove": "Remove from album",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Add users",
   "album_viewer_page_share_add_users": "Add users",
   "all_people_page_title": "People",
   "all_people_page_title": "People",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_title": "Archive ({})",
   "archive_page_title": "Archive ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Caching Settings",
   "cache_settings_title": "Caching Settings",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Building the timeline",
   "home_page_building_timeline": "Building the timeline",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_success": "Download Success",
   "image_viewer_page_state_provider_download_success": "Download Success",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_go_to_settings": "Go to settings",
   "permission_onboarding_go_to_settings": "Go to settings",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Settings",
   "profile_drawer_settings": "Settings",
   "profile_drawer_sign_out": "Sign Out",
   "profile_drawer_sign_out": "Sign Out",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "server_info_box_app_version": "App Version",
   "server_info_box_app_version": "App Version",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Server Version",
   "server_info_box_server_version": "Server Version",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
@@ -300,6 +315,12 @@
   "share_add_photos": "Add photos",
   "share_add_photos": "Add photos",
   "share_add_title": "Add a title",
   "share_add_title": "Add a title",
   "share_create_album": "Create album",
   "share_create_album": "Create album",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Preparing...",
   "share_dialog_preparing": "Preparing...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 24 - 0
mobile/assets/i18n/hu-HU.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Hiba az album átnevezése közben",
   "album_viewer_appbar_share_err_title": "Hiba az album átnevezése közben",
   "album_viewer_appbar_share_leave": "Kilépés az albumból",
   "album_viewer_appbar_share_leave": "Kilépés az albumból",
   "album_viewer_appbar_share_remove": "Törlés az albumból",
   "album_viewer_appbar_share_remove": "Törlés az albumból",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Felhasználók hozzáadása",
   "album_viewer_page_share_add_users": "Felhasználók hozzáadása",
   "all_people_page_title": "Emberek",
   "all_people_page_title": "Emberek",
   "all_videos_page_title": "Videók",
   "all_videos_page_title": "Videók",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "Nem található archivált média",
   "archive_page_no_archived_assets": "Nem található archivált média",
   "archive_page_title": "Archívum ({})",
   "archive_page_title": "Archívum ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Gyorsítótár által használt terület",
   "cache_settings_statistics_title": "Gyorsítótár által használt terület",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Gyorsítótár beállítások",
   "cache_settings_title": "Gyorsítótár beállítások",
   "change_password_form_confirm_password": "Jelszó Megerősítése",
   "change_password_form_confirm_password": "Jelszó Megerősítése",
   "change_password_form_description": "Kedves {lastName} {firstName}!\n\nMost jelentkezel be először a rendszerbe vagy más okból szükséfes a jelszavad meváltoztatása. Kérjük, add meg új jelszavad.",
   "change_password_form_description": "Kedves {lastName} {firstName}!\n\nMost jelentkezel be először a rendszerbe vagy más okból szükséfes a jelszavad meváltoztatása. Kérjük, add meg új jelszavad.",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_err_local": "Helyi médiát még nem lehet albumba tenni. Kihagyjuk.",
   "home_page_add_to_album_err_local": "Helyi médiát még nem lehet albumba tenni. Kihagyjuk.",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Helyi média archiválása még nem támogatott, úgyhogy kihagyjuk",
   "home_page_archive_err_local": "Helyi média archiválása még nem támogatott, úgyhogy kihagyjuk",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Building the timeline",
   "home_page_building_timeline": "Building the timeline",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Helyi médiát még nem lehet a kedvencek közé tenni. Kihagyjuk.",
   "home_page_favorite_err_local": "Helyi médiát még nem lehet a kedvencek közé tenni. Kihagyjuk.",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Csak 30 elemet tudsz egyszerre feltölteni, átugrás",
   "home_page_upload_err_limit": "Csak 30 elemet tudsz egyszerre feltölteni, átugrás",
   "image_viewer_page_state_provider_download_error": "Letöltési Hiba",
   "image_viewer_page_state_provider_download_error": "Letöltési Hiba",
   "image_viewer_page_state_provider_download_success": "Letöltés Sikeres",
   "image_viewer_page_state_provider_download_success": "Letöltés Sikeres",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Folytatás mindenképp",
   "permission_onboarding_continue_anyway": "Folytatás mindenképp",
   "permission_onboarding_get_started": "Kezdjük el",
   "permission_onboarding_get_started": "Kezdjük el",
   "permission_onboarding_go_to_settings": "Beállítások megnyitása",
   "permission_onboarding_go_to_settings": "Beállítások megnyitása",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Engedélyezni kell, hogy az Immich hozzáférjen a képekhez és videókhoz",
   "permission_onboarding_request": "Engedélyezni kell, hogy az Immich hozzáférjen a képekhez és videókhoz",
   "profile_drawer_app_logs": "Naplók",
   "profile_drawer_app_logs": "Naplók",
   "profile_drawer_client_server_up_to_date": "Kliens és a szerver is naprakész",
   "profile_drawer_client_server_up_to_date": "Kliens és a szerver is naprakész",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Beállítások",
   "profile_drawer_settings": "Beállítások",
   "profile_drawer_sign_out": "Kijelentkezés",
   "profile_drawer_sign_out": "Kijelentkezés",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Hiba az album létrehozása közben",
   "select_user_for_sharing_page_err_album": "Hiba az album létrehozása közben",
   "select_user_for_sharing_page_share_suggestions": "Javaslatok",
   "select_user_for_sharing_page_share_suggestions": "Javaslatok",
   "server_info_box_app_version": "Alkalmazás Verzió",
   "server_info_box_app_version": "Alkalmazás Verzió",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Szerver Verzió",
   "server_info_box_server_version": "Szerver Verzió",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
@@ -300,6 +315,12 @@
   "share_add_photos": "Fotók hozzáadása",
   "share_add_photos": "Fotók hozzáadása",
   "share_add_title": "Cím hozzáadása",
   "share_add_title": "Cím hozzáadása",
   "share_create_album": "Album létrehozása",
   "share_create_album": "Album létrehozása",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Előkészítés...",
   "share_dialog_preparing": "Előkészítés...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 27 - 3
mobile/assets/i18n/it-IT.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Impossibile cambiare il titolo dell'album ",
   "album_viewer_appbar_share_err_title": "Impossibile cambiare il titolo dell'album ",
   "album_viewer_appbar_share_leave": "Lascia album",
   "album_viewer_appbar_share_leave": "Lascia album",
   "album_viewer_appbar_share_remove": "Rimuovere dall'album ",
   "album_viewer_appbar_share_remove": "Rimuovere dall'album ",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Aggiungi utenti",
   "album_viewer_page_share_add_users": "Aggiungi utenti",
   "all_people_page_title": "Persone",
   "all_people_page_title": "Persone",
   "all_videos_page_title": "Video",
   "all_videos_page_title": "Video",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "Nessuna oggetto archiviato",
   "archive_page_no_archived_assets": "Nessuna oggetto archiviato",
   "archive_page_title": "Archivia ({})",
   "archive_page_title": "Archivia ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Layout dinamico",
   "asset_list_layout_settings_dynamic_layout_title": "Layout dinamico",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Uso della cache",
   "cache_settings_statistics_title": "Uso della cache",
   "cache_settings_subtitle": "Controlla il comportamento della cache dell'applicazione mobile immich",
   "cache_settings_subtitle": "Controlla il comportamento della cache dell'applicazione mobile immich",
   "cache_settings_thumbnail_size": "Dimensione cache dei thumbnail ({} assets)",
   "cache_settings_thumbnail_size": "Dimensione cache dei thumbnail ({} assets)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Impostazioni della Cache",
   "cache_settings_title": "Impostazioni della Cache",
   "change_password_form_confirm_password": "Conferma Password ",
   "change_password_form_confirm_password": "Conferma Password ",
   "change_password_form_description": "Ciao {firstName} {lastName},\n\nQuesto è la prima volta che accedi al sistema oppure è stato fatto una richiesta di cambiare la password. Per favore inserisca la nuova password qui sotto",
   "change_password_form_description": "Ciao {firstName} {lastName},\n\nQuesto è la prima volta che accedi al sistema oppure è stato fatto una richiesta di cambiare la password. Per favore inserisca la nuova password qui sotto",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Aggiunti {added} elementi all'album {album}. {failed} elementi erano già presenti nell'album.",
   "home_page_add_to_album_conflicts": "Aggiunti {added} elementi all'album {album}. {failed} elementi erano già presenti nell'album.",
   "home_page_add_to_album_err_local": "Non puoi aggiungere negli album foto ancora non caricate",
   "home_page_add_to_album_err_local": "Non puoi aggiungere negli album foto ancora non caricate",
   "home_page_add_to_album_success": "Aggiunti {added} elementi all'album {album}",
   "home_page_add_to_album_success": "Aggiunti {added} elementi all'album {album}",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Non puoi archiviare immagini non ancora caricate",
   "home_page_archive_err_local": "Non puoi archiviare immagini non ancora caricate",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Costruendo il Timeline",
   "home_page_building_timeline": "Costruendo il Timeline",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Non puoi aggiungere tra i preferiti le foto ancora non caricate",
   "home_page_favorite_err_local": "Non puoi aggiungere tra i preferiti le foto ancora non caricate",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Se è la prima volta che usi l'app, assicurati di scegliere gli album per avere il Timeline con immagini e video",
   "home_page_first_time_notice": "Se è la prima volta che usi l'app, assicurati di scegliere gli album per avere il Timeline con immagini e video",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Puoi caricare al massimo 30 file per volta, ignora quelli in eccesso",
   "home_page_upload_err_limit": "Puoi caricare al massimo 30 file per volta, ignora quelli in eccesso",
   "image_viewer_page_state_provider_download_error": "Errore nel Download",
   "image_viewer_page_state_provider_download_error": "Errore nel Download",
   "image_viewer_page_state_provider_download_success": "Download con successo",
   "image_viewer_page_state_provider_download_success": "Download con successo",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} non sarà più in grado di accedere alle tue foto.",
   "partner_page_stop_sharing_content": "{} non sarà più in grado di accedere alle tue foto.",
   "partner_page_stop_sharing_title": "Stoppare la condivisione delle tue foto?",
   "partner_page_stop_sharing_title": "Stoppare la condivisione delle tue foto?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continua lo stesso",
   "permission_onboarding_continue_anyway": "Continua lo stesso",
   "permission_onboarding_get_started": "Inizia",
   "permission_onboarding_get_started": "Inizia",
   "permission_onboarding_go_to_settings": "Vai a Impostazioni",
   "permission_onboarding_go_to_settings": "Vai a Impostazioni",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich richiede i permessi per vedere le tue foto e video",
   "permission_onboarding_request": "Immich richiede i permessi per vedere le tue foto e video",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_client_server_up_to_date": "Client e server sono aggiornati",
   "profile_drawer_client_server_up_to_date": "Client e server sono aggiornati",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Impostazioni ",
   "profile_drawer_settings": "Impostazioni ",
   "profile_drawer_sign_out": "Logout",
   "profile_drawer_sign_out": "Logout",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Impossibile nel creare l'album ",
   "select_user_for_sharing_page_err_album": "Impossibile nel creare l'album ",
   "select_user_for_sharing_page_share_suggestions": "Suggerimenti",
   "select_user_for_sharing_page_share_suggestions": "Suggerimenti",
   "server_info_box_app_version": "Versione App",
   "server_info_box_app_version": "Versione App",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Versione Server",
   "server_info_box_server_version": "Versione Server",
   "setting_image_viewer_help": "Il visualizzatore dettagliato carica una piccola thumbnail per prima, per poi caricare un immagine di media grandezza (se abilitato). Ed infine carica l'originale (se abilitato).",
   "setting_image_viewer_help": "Il visualizzatore dettagliato carica una piccola thumbnail per prima, per poi caricare un immagine di media grandezza (se abilitato). Ed infine carica l'originale (se abilitato).",
   "setting_image_viewer_original_subtitle": "Abilita per caricare l'immagine originale a risoluzione massima (grande!). Disabilita per ridurre l'utilizzo di banda (sia sul network che nella cache del dispositivo).",
   "setting_image_viewer_original_subtitle": "Abilita per caricare l'immagine originale a risoluzione massima (grande!). Disabilita per ridurre l'utilizzo di banda (sia sul network che nella cache del dispositivo).",
@@ -300,6 +315,12 @@
   "share_add_photos": "Aggiungi foto",
   "share_add_photos": "Aggiungi foto",
   "share_add_title": "Aggiungi un titolo ",
   "share_add_title": "Aggiungi un titolo ",
   "share_create_album": "Crea album",
   "share_create_album": "Crea album",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Preparo…",
   "share_dialog_preparing": "Preparo…",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",
@@ -355,10 +379,10 @@
   "upload_dialog_ok": "Carica",
   "upload_dialog_ok": "Carica",
   "upload_dialog_title": "Carica file",
   "upload_dialog_title": "Carica file",
   "version_announcement_overlay_ack": "Presa visione",
   "version_announcement_overlay_ack": "Presa visione",
-  "version_announcement_overlay_release_notes": "note di rilascio ",
+  "version_announcement_overlay_release_notes": "note di rilascio",
   "version_announcement_overlay_text_1": "Ciao, c'è una nuova versione di",
   "version_announcement_overlay_text_1": "Ciao, c'è una nuova versione di",
-  "version_announcement_overlay_text_2": "per favore prenditi il tuo tempo per visitare il",
-  "version_announcement_overlay_text_3": "e verifica che il tuo docker-compose e il file .env siano aggiornati per impedire qualsiasi errore di configurazione, specialmente se utilizzate WatchTower o altri strumenti per l'aggiornamento automatico dell'applicativo",
+  "version_announcement_overlay_text_2": "per favore prenditi il tuo tempo per visitare le ",
+  "version_announcement_overlay_text_3": " e verifica che il tuo docker-compose e il file .env siano aggiornati per impedire qualsiasi errore di configurazione, specialmente se utilizzate WatchTower o altri strumenti per l'aggiornamento automatico dell'applicativo",
   "version_announcement_overlay_title": "Nuova versione del server disponibile \uD83C\uDF89",
   "version_announcement_overlay_title": "Nuova versione del server disponibile \uD83C\uDF89",
   "viewer_remove_from_stack": "Remove from Stack",
   "viewer_remove_from_stack": "Remove from Stack",
   "viewer_stack_use_as_main_asset": "Use as Main Asset",
   "viewer_stack_use_as_main_asset": "Use as Main Asset",

+ 35 - 11
mobile/assets/i18n/ja-JP.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "タイトル変更の失敗",
   "album_viewer_appbar_share_err_title": "タイトル変更の失敗",
   "album_viewer_appbar_share_leave": "アルバムから脱退",
   "album_viewer_appbar_share_leave": "アルバムから脱退",
   "album_viewer_appbar_share_remove": "アルバムから削除",
   "album_viewer_appbar_share_remove": "アルバムから削除",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "ユーザーを追加",
   "album_viewer_page_share_add_users": "ユーザーを追加",
   "all_people_page_title": "People",
   "all_people_page_title": "People",
   "all_videos_page_title": "ビデオ",
   "all_videos_page_title": "ビデオ",
+  "app_bar_signout_dialog_content": " サインアウトしますか?",
+  "app_bar_signout_dialog_ok": "はい",
+  "app_bar_signout_dialog_title": " サインアウト",
   "archive_page_no_archived_assets": "アーカイブ済みの写真またはビデオがありません",
   "archive_page_no_archived_assets": "アーカイブ済みの写真またはビデオがありません",
   "archive_page_title": "アーカイブ({})",
   "archive_page_title": "アーカイブ({})",
   "asset_list_layout_settings_dynamic_layout_title": "ダイナミックレイアウト",
   "asset_list_layout_settings_dynamic_layout_title": "ダイナミックレイアウト",
@@ -111,9 +115,11 @@
   "cache_settings_statistics_title": "キャッシュ",
   "cache_settings_statistics_title": "キャッシュ",
   "cache_settings_subtitle": "キャッシュの動作を変更する",
   "cache_settings_subtitle": "キャッシュの動作を変更する",
   "cache_settings_thumbnail_size": "サムネイルのキャッシュのサイズ ({}枚)",
   "cache_settings_thumbnail_size": "サムネイルのキャッシュのサイズ ({}枚)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "キャッシュの設定",
   "cache_settings_title": "キャッシュの設定",
   "change_password_form_confirm_password": "確定",
   "change_password_form_confirm_password": "確定",
-  "change_password_form_description": "{lastaName} {firstName}さん こんにちは\n\nサーバーにアクセスするのが初めてか、パスワードリセットのリクエストがされました。新しいパスワードを入力してください",
+  "change_password_form_description": "{lastName} {firstName}さん こんにちは\n\nサーバーにアクセスするのが初めてか、パスワードリセットのリクエストがされました。新しいパスワードを入力してください",
   "change_password_form_new_password": "新しいパスワード",
   "change_password_form_new_password": "新しいパスワード",
   "change_password_form_password_mismatch": "パスワードが一致しません",
   "change_password_form_password_mismatch": "パスワードが一致しません",
   "change_password_form_reenter_new_password": "再度パスワードを入力してください",
   "change_password_form_reenter_new_password": "再度パスワードを入力してください",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "キャンセル",
   "delete_dialog_cancel": "キャンセル",
   "delete_dialog_ok": "削除",
   "delete_dialog_ok": "削除",
   "delete_dialog_title": "永久的に削除",
   "delete_dialog_title": "永久的に削除",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "本当にこの共有リンクを消しますか?",
+  "delete_shared_link_dialog_title": "共有リンクを消す",
   "description_input_hint_text": "説明を追加",
   "description_input_hint_text": "説明を追加",
   "description_input_submit_error": "説明の編集に失敗、詳細の確認はログで行ってください",
   "description_input_submit_error": "説明の編集に失敗、詳細の確認はログで行ってください",
   "exif_bottom_sheet_description": "説明を追加",
   "exif_bottom_sheet_description": "説明を追加",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "{album}に{added}枚写真を追加しました。追加済みの{failed}枚はスキップしました。",
   "home_page_add_to_album_conflicts": "{album}に{added}枚写真を追加しました。追加済みの{failed}枚はスキップしました。",
   "home_page_add_to_album_err_local": "まだアップロードされてない項目はアルバムに登録できません",
   "home_page_add_to_album_err_local": "まだアップロードされてない項目はアルバムに登録できません",
   "home_page_add_to_album_success": "{album}に{added}枚写真を追加しました",
   "home_page_add_to_album_success": "{album}に{added}枚写真を追加しました",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "まだアップロードされてない項目はアーカイブできません",
   "home_page_archive_err_local": "まだアップロードされてない項目はアーカイブできません",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "タイムライン構築中",
   "home_page_building_timeline": "タイムライン構築中",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "まだアップロードされてない項目はお気に入り登録できません",
   "home_page_favorite_err_local": "まだアップロードされてない項目はお気に入り登録できません",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "はじめてアプリを使う場合、タイムラインに写真を表示するためにアルバムを選択してください",
   "home_page_first_time_notice": "はじめてアプリを使う場合、タイムラインに写真を表示するためにアルバムを選択してください",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "image_viewer_page_state_provider_download_error": "ダウンロード失敗",
   "image_viewer_page_state_provider_download_error": "ダウンロード失敗",
   "image_viewer_page_state_provider_download_success": "ダウンロード成功",
   "image_viewer_page_state_provider_download_success": "ダウンロード成功",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "無視して続行",
   "permission_onboarding_continue_anyway": "無視して続行",
   "permission_onboarding_get_started": "はじめる",
   "permission_onboarding_get_started": "はじめる",
   "permission_onboarding_go_to_settings": "システム設定",
   "permission_onboarding_go_to_settings": "システム設定",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immichは写真へのアクセス許可が必要です",
   "permission_onboarding_request": "Immichは写真へのアクセス許可が必要です",
   "profile_drawer_app_logs": "ログ",
   "profile_drawer_app_logs": "ログ",
   "profile_drawer_client_server_up_to_date": "すべて最新です",
   "profile_drawer_client_server_up_to_date": "すべて最新です",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "設定",
   "profile_drawer_settings": "設定",
   "profile_drawer_sign_out": "サインアウト",
   "profile_drawer_sign_out": "サインアウト",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "アルバム作成に失敗",
   "select_user_for_sharing_page_err_album": "アルバム作成に失敗",
   "select_user_for_sharing_page_share_suggestions": "ユーザ一覧",
   "select_user_for_sharing_page_share_suggestions": "ユーザ一覧",
   "server_info_box_app_version": "アプリVer.",
   "server_info_box_app_version": "アプリVer.",
+  "server_info_box_server_url": " サーバのURL",
   "server_info_box_server_version": "サーバーVer.",
   "server_info_box_server_version": "サーバーVer.",
   "setting_image_viewer_help": "写真をタップするとサムネイル・中画質(要設定)・オリジナル(要設定)の順に読み込みます",
   "setting_image_viewer_help": "写真をタップするとサムネイル・中画質(要設定)・オリジナル(要設定)の順に読み込みます",
   "setting_image_viewer_original_subtitle": "オリジナルの画像を表示したい時にオンにしてください(最大画質で表示されるのでモバイルデータとストレージの消費量が増えます)。",
   "setting_image_viewer_original_subtitle": "オリジナルの画像を表示したい時にオンにしてください(最大画質で表示されるのでモバイルデータとストレージの消費量が増えます)。",
@@ -300,20 +315,29 @@
   "share_add_photos": "写真を追加",
   "share_add_photos": "写真を追加",
   "share_add_title": "タイトルを追加",
   "share_add_title": "タイトルを追加",
   "share_create_album": "アルバムを作成",
   "share_create_album": "アルバムを作成",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "準備中",
   "share_dialog_preparing": "準備中",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
+  "shared_link_app_bar_title": "共有リンク",
+  "shared_link_create_app_bar_title": "共有リンクを作る",
   "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
   "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
+  "shared_link_create_submit_button": "リンクを作る",
   "shared_link_edit_allow_download": "Allow public user to download",
   "shared_link_edit_allow_download": "Allow public user to download",
   "shared_link_edit_allow_upload": "Allow public user to upload",
   "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
+  "shared_link_edit_app_bar_title": " リンクを編集する",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
+  "shared_link_edit_description": " デスクリプション ",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": " パスワード",
+  "shared_link_edit_password_hint": "共有パスワードを入力する",
+  "shared_link_edit_show_meta": " メタデータを見る",
+  "shared_link_edit_submit_button": "リンクをアップデートする",
+  "shared_link_empty": "共有リンクはありません ",
   "shared_link_manage_links": "Manage Shared links",
   "shared_link_manage_links": "Manage Shared links",
   "share_done": "Done",
   "share_done": "Done",
   "share_invite": "アルバムに招待",
   "share_invite": "アルバムに招待",

+ 162 - 138
mobile/assets/i18n/ko-KR.json

@@ -1,21 +1,21 @@
 {
 {
   "add_to_album_bottom_sheet_added": "{album}에 추가",
   "add_to_album_bottom_sheet_added": "{album}에 추가",
   "add_to_album_bottom_sheet_already_exists": "{album}에 이미 포함되어 있습니다",
   "add_to_album_bottom_sheet_already_exists": "{album}에 이미 포함되어 있습니다",
-  "advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
-  "advanced_settings_prefer_remote_title": "Prefer remote images",
-  "advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
-  "advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
-  "advanced_settings_tile_subtitle": "Advanced user's settings",
-  "advanced_settings_tile_title": "Advanced",
-  "advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
-  "advanced_settings_troubleshooting_title": "Troubleshooting",
+  "advanced_settings_prefer_remote_subtitle": "일부 디바이스에서는 디바이스에 있는 미디어의 썸네일을 로드하는 속도가 매우 느립니다. 대신 원격 이미지를 로드하려면 이 설정을 활성화하세요",
+  "advanced_settings_prefer_remote_title": "원격 이미지 선호",
+  "advanced_settings_self_signed_ssl_subtitle": "서버 엔드포인트에 대한 SSL 인증서 확인을 건너뜁니다. 자체 서명 인증서에 필요합니다",
+  "advanced_settings_self_signed_ssl_title": "자체 서명된 SSL 인증서 허용",
+  "advanced_settings_tile_subtitle": "고급 사용자 설정",
+  "advanced_settings_tile_title": "고급",
+  "advanced_settings_troubleshooting_subtitle": "문제 해결을 위한 추가 기능 사용",
+  "advanced_settings_troubleshooting_title": "문제 해결",
   "album_info_card_backup_album_excluded": "제외됨",
   "album_info_card_backup_album_excluded": "제외됨",
   "album_info_card_backup_album_included": "포함됨",
   "album_info_card_backup_album_included": "포함됨",
   "album_thumbnail_card_item": "1개 항목",
   "album_thumbnail_card_item": "1개 항목",
   "album_thumbnail_card_items": "{}개 항목",
   "album_thumbnail_card_items": "{}개 항목",
   "album_thumbnail_card_shared": " · 공유",
   "album_thumbnail_card_shared": " · 공유",
-  "album_thumbnail_owned": "Owned",
-  "album_thumbnail_shared_by": "Shared by {}",
+  "album_thumbnail_owned": "소유",
+  "album_thumbnail_shared_by": "공유자 {}",
   "album_viewer_appbar_share_delete": "앨범 삭제",
   "album_viewer_appbar_share_delete": "앨범 삭제",
   "album_viewer_appbar_share_err_delete": "앨범 삭제 실패",
   "album_viewer_appbar_share_err_delete": "앨범 삭제 실패",
   "album_viewer_appbar_share_err_leave": "앨범에서 나가지 못했습니다",
   "album_viewer_appbar_share_err_leave": "앨범에서 나가지 못했습니다",
@@ -23,14 +23,18 @@
   "album_viewer_appbar_share_err_title": "앨범 제목 변경 실패",
   "album_viewer_appbar_share_err_title": "앨범 제목 변경 실패",
   "album_viewer_appbar_share_leave": "앨범 나가기",
   "album_viewer_appbar_share_leave": "앨범 나가기",
   "album_viewer_appbar_share_remove": "앨범에서 제거",
   "album_viewer_appbar_share_remove": "앨범에서 제거",
+  "album_viewer_appbar_share_to": "공유 대상",
   "album_viewer_page_share_add_users": "사용자 추가",
   "album_viewer_page_share_add_users": "사용자 추가",
-  "all_people_page_title": "People",
-  "all_videos_page_title": "Videos",
-  "archive_page_no_archived_assets": "No archived assets found",
-  "archive_page_title": "Archive ({})",
+  "all_people_page_title": "사람",
+  "all_videos_page_title": "동영상",
+  "app_bar_signout_dialog_content": "정말 로그아웃하시겠습니까?",
+  "app_bar_signout_dialog_ok": "네",
+  "app_bar_signout_dialog_title": "로그 아웃",
+  "archive_page_no_archived_assets": "보관된 미디어를 찾을 수 없습니다",
+  "archive_page_title": "보관 ({})",
   "asset_list_layout_settings_dynamic_layout_title": "다이나믹 레이아웃",
   "asset_list_layout_settings_dynamic_layout_title": "다이나믹 레이아웃",
-  "asset_list_layout_settings_group_automatically": "Automatic",
-  "asset_list_layout_settings_group_by": "다음으로 그룹화",
+  "asset_list_layout_settings_group_automatically": "자동",
+  "asset_list_layout_settings_group_by": "다음으로 미디어 그룹화",
   "asset_list_layout_settings_group_by_month": "월",
   "asset_list_layout_settings_group_by_month": "월",
   "asset_list_layout_settings_group_by_month_day": "월 + 일",
   "asset_list_layout_settings_group_by_month_day": "월 + 일",
   "asset_list_settings_subtitle": "사진 배열 레이아웃 설정",
   "asset_list_settings_subtitle": "사진 배열 레이아웃 설정",
@@ -50,9 +54,9 @@
   "backup_background_service_in_progress_notification": "미디어파일 백업 중...",
   "backup_background_service_in_progress_notification": "미디어파일 백업 중...",
   "backup_background_service_upload_failure_notification": "{} 업로드 실패",
   "backup_background_service_upload_failure_notification": "{} 업로드 실패",
   "backup_controller_page_albums": "백업대상",
   "backup_controller_page_albums": "백업대상",
-  "backup_controller_page_background_app_refresh_disabled_content": "Enable background app refresh in Settings > General > Background App Refresh in order to use background backup.",
-  "backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
-  "backup_controller_page_background_app_refresh_enable_button_text": "Go to settings",
+  "backup_controller_page_background_app_refresh_disabled_content": "백그라운드 백업을 사용하려면 설정 > 일반 > 백그라운드 앱 새로 고침에서 백그라운드 앱 새로 고침을 활성화합니다",
+  "backup_controller_page_background_app_refresh_disabled_title": "백그라운드 앱 새로 고침 비활성화",
+  "backup_controller_page_background_app_refresh_enable_button_text": "설정으로 이동",
   "backup_controller_page_background_battery_info_link": "사용 가이드",
   "backup_controller_page_background_battery_info_link": "사용 가이드",
   "backup_controller_page_background_battery_info_message": "최상의 백업 환경을 위해 Immich 앱의 백그라운드 활동을 제한하는 배터리 최적화기능을 꺼주세요.\n\n휴대폰마다 설정방법이 다르므로 제조업체별로 설정방법을 확인하세요.",
   "backup_controller_page_background_battery_info_message": "최상의 백업 환경을 위해 Immich 앱의 백그라운드 활동을 제한하는 배터리 최적화기능을 꺼주세요.\n\n휴대폰마다 설정방법이 다르므로 제조업체별로 설정방법을 확인하세요.",
   "backup_controller_page_background_battery_info_ok": "확인",
   "backup_controller_page_background_battery_info_ok": "확인",
@@ -94,11 +98,11 @@
   "backup_controller_page_uploading_file_info": "파일 정보 업로드 중",
   "backup_controller_page_uploading_file_info": "파일 정보 업로드 중",
   "backup_err_only_album": "유일한 앨범은 제거할 수 없습니다",
   "backup_err_only_album": "유일한 앨범은 제거할 수 없습니다",
   "backup_info_card_assets": "미디어",
   "backup_info_card_assets": "미디어",
-  "backup_manual_cancelled": "Cancelled",
-  "backup_manual_failed": "Failed",
-  "backup_manual_in_progress": "Upload already in progress. Try after sometime",
-  "backup_manual_success": "Success",
-  "backup_manual_title": "Upload status",
+  "backup_manual_cancelled": "취소됨",
+  "backup_manual_failed": "실패",
+  "backup_manual_in_progress": "업로드가 이미 진행 중입니다. 잠시 후 시도하세요",
+  "backup_manual_success": "성공",
+  "backup_manual_title": "업로드 상태",
   "cache_settings_album_thumbnails": "라이브러리 페이지 썸네일 ({} 미디어)",
   "cache_settings_album_thumbnails": "라이브러리 페이지 썸네일 ({} 미디어)",
   "cache_settings_clear_cache_button": "캐시 지우기",
   "cache_settings_clear_cache_button": "캐시 지우기",
   "cache_settings_clear_cache_button_title": "앱의 캐시를 지웁니다. 이 작업은 캐시가 다시 빌드될 때까지 앱의 성능에 상당한 영향을 미칩니다.",
   "cache_settings_clear_cache_button_title": "앱의 캐시를 지웁니다. 이 작업은 캐시가 다시 빌드될 때까지 앱의 성능에 상당한 영향을 미칩니다.",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "캐시 사용률",
   "cache_settings_statistics_title": "캐시 사용률",
   "cache_settings_subtitle": "Immich 앱의 캐싱 동작 제어",
   "cache_settings_subtitle": "Immich 앱의 캐싱 동작 제어",
   "cache_settings_thumbnail_size": "썸네일 캐시 크기 ({} 미디어)",
   "cache_settings_thumbnail_size": "썸네일 캐시 크기 ({} 미디어)",
+  "cache_settings_tile_subtitle": "로컬 저장소 동작 제어",
+  "cache_settings_tile_title": "로컬 저장소",
   "cache_settings_title": "캐시 설정",
   "cache_settings_title": "캐시 설정",
   "change_password_form_confirm_password": "비밀번호 확인",
   "change_password_form_confirm_password": "비밀번호 확인",
   "change_password_form_description": "{firstName} {lastName} 님, 안녕하세요.\n\n시스템에 처음 로그인했거나 비밀번호 변경 요청이 있었습니다. 아래에 새 비밀번호를 입력하세요.",
   "change_password_form_description": "{firstName} {lastName} 님, 안녕하세요.\n\n시스템에 처음 로그인했거나 비밀번호 변경 요청이 있었습니다. 아래에 새 비밀번호를 입력하세요.",
@@ -120,27 +126,27 @@
   "common_add_to_album": "앨범에 추가",
   "common_add_to_album": "앨범에 추가",
   "common_change_password": "비밀번호 변경",
   "common_change_password": "비밀번호 변경",
   "common_create_new_album": "새 앨범 만들기",
   "common_create_new_album": "새 앨범 만들기",
-  "common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
+  "common_server_error": "네트워크 연결을 확인하고 서버에 연결할 수 있는지, 앱/서버 버전이 호환되는지 확인하세요",
   "common_shared": "공유됨",
   "common_shared": "공유됨",
   "control_bottom_app_bar_add_to_album": "앨범에 추가",
   "control_bottom_app_bar_add_to_album": "앨범에 추가",
   "control_bottom_app_bar_album_info": "{} 항목",
   "control_bottom_app_bar_album_info": "{} 항목",
   "control_bottom_app_bar_album_info_shared": "{} 항목 · 공유됨",
   "control_bottom_app_bar_album_info_shared": "{} 항목 · 공유됨",
-  "control_bottom_app_bar_archive": "Archive",
+  "control_bottom_app_bar_archive": "보관",
   "control_bottom_app_bar_create_new_album": "앨범 생성",
   "control_bottom_app_bar_create_new_album": "앨범 생성",
   "control_bottom_app_bar_delete": "삭제",
   "control_bottom_app_bar_delete": "삭제",
   "control_bottom_app_bar_favorite": "즐겨찾기",
   "control_bottom_app_bar_favorite": "즐겨찾기",
   "control_bottom_app_bar_share": "공유",
   "control_bottom_app_bar_share": "공유",
-  "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
-  "control_bottom_app_bar_unarchive": "Unarchive",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_share_to": "공유 대상",
+  "control_bottom_app_bar_stack": "스택",
+  "control_bottom_app_bar_unarchive": "보관 해제",
+  "control_bottom_app_bar_upload": "업로드",
   "create_album_page_untitled": "제목없음",
   "create_album_page_untitled": "제목없음",
   "create_shared_album_page_create": "만들기",
   "create_shared_album_page_create": "만들기",
   "create_shared_album_page_share": "공유",
   "create_shared_album_page_share": "공유",
   "create_shared_album_page_share_add_assets": "사진 추가",
   "create_shared_album_page_share_add_assets": "사진 추가",
   "create_shared_album_page_share_select_photos": "사진 선택",
   "create_shared_album_page_share_select_photos": "사진 선택",
-  "curated_location_page_title": "Places",
-  "curated_object_page_title": "Things",
+  "curated_location_page_title": "장소",
+  "curated_object_page_title": "사물",
   "daily_title_text_date": "E, M월 d일",
   "daily_title_text_date": "E, M월 d일",
   "daily_title_text_date_year": "E, M월 d일, yyyy",
   "daily_title_text_date_year": "E, M월 d일, yyyy",
   "date_format": "yyyy년 M월 d일, EEEE • a h:mm",
   "date_format": "yyyy년 M월 d일, EEEE • a h:mm",
@@ -148,10 +154,10 @@
   "delete_dialog_cancel": "취소",
   "delete_dialog_cancel": "취소",
   "delete_dialog_ok": "삭제",
   "delete_dialog_ok": "삭제",
   "delete_dialog_title": "영구적으로 삭제",
   "delete_dialog_title": "영구적으로 삭제",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
-  "description_input_hint_text": "Add description...",
-  "description_input_submit_error": "Error updating description, check the log for more details",
+  "delete_shared_link_dialog_content": "이 공유 링크를 삭제하시겠습니까?",
+  "delete_shared_link_dialog_title": "공유 링크 삭제",
+  "description_input_hint_text": "설명 추가",
+  "description_input_submit_error": "설명 업데이트 오류, 자세한 내용은 로그를 확인하세요",
   "exif_bottom_sheet_description": "설명 추가...",
   "exif_bottom_sheet_description": "설명 추가...",
   "exif_bottom_sheet_details": "상세정보",
   "exif_bottom_sheet_details": "상세정보",
   "exif_bottom_sheet_location": "위치",
   "exif_bottom_sheet_location": "위치",
@@ -159,31 +165,36 @@
   "experimental_settings_new_asset_list_title": "실험적 사진 그리드 적용",
   "experimental_settings_new_asset_list_title": "실험적 사진 그리드 적용",
   "experimental_settings_subtitle": "문제시 책임지지 않습니다!",
   "experimental_settings_subtitle": "문제시 책임지지 않습니다!",
   "experimental_settings_title": "실험적기능",
   "experimental_settings_title": "실험적기능",
-  "favorites_page_no_favorites": "No favorite assets found",
+  "favorites_page_no_favorites": "즐겨찾기된 미디어를 찾을 수 없습니다",
   "favorites_page_title": "즐겨찾기",
   "favorites_page_title": "즐겨찾기",
   "home_page_add_to_album_conflicts": "{album} 앨범에 {added} 미디어를 추가했습니다. {failed} 이미 앨범에 있는 항목입니다.",
   "home_page_add_to_album_conflicts": "{album} 앨범에 {added} 미디어를 추가했습니다. {failed} 이미 앨범에 있는 항목입니다.",
-  "home_page_add_to_album_err_local": "앨범에 미디어파일을 추가할 수 없어, 건너뜁니다.",
+  "home_page_add_to_album_err_local": "아직 앨범에 로컬 미디어를 추가할 수 없으므로 건너뜁니다",
   "home_page_add_to_album_success": "{album} 앨범에 {added} 미디어를 추가했습니다. ",
   "home_page_add_to_album_success": "{album} 앨범에 {added} 미디어를 추가했습니다. ",
-  "home_page_archive_err_local": "Can not archive local assets yet, skipping",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
+  "home_page_archive_err_local": "아직 로컬 미디어를 보관할 수 없습니다",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "타임라인 생성",
   "home_page_building_timeline": "타임라인 생성",
-  "home_page_favorite_err_local": "미디어파일을 즐겨찾기에 추가할 수 없어, 건너뜁니다.",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
+  "home_page_favorite_err_local": "아직 로컬 미디어를 즐겨찾기에 추가할 수 없으므로 건너뜁니다",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "앱을 처음 사용하는 경우 타임라인이 앨범의 사진과 비디오를 채울 수 있도록 백업대상 앨범을 선택해야 합니다.",
   "home_page_first_time_notice": "앱을 처음 사용하는 경우 타임라인이 앨범의 사진과 비디오를 채울 수 있도록 백업대상 앨범을 선택해야 합니다.",
-  "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
+  "home_page_upload_err_limit": "한번에 최대 30개의 미디어만 업로드할 수 있습니다",
   "image_viewer_page_state_provider_download_error": "다운로드 에러",
   "image_viewer_page_state_provider_download_error": "다운로드 에러",
   "image_viewer_page_state_provider_download_success": "다운로드 완료",
   "image_viewer_page_state_provider_download_success": "다운로드 완료",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "공유 오류",
   "library_page_albums": "앨범",
   "library_page_albums": "앨범",
-  "library_page_archive": "Archive",
-  "library_page_device_albums": "Albums on Device",
+  "library_page_archive": "보관",
+  "library_page_device_albums": "장치의 앨범",
   "library_page_favorites": "즐겨찾기",
   "library_page_favorites": "즐겨찾기",
   "library_page_new_album": "새 앨범",
   "library_page_new_album": "새 앨범",
   "library_page_sharing": "공유",
   "library_page_sharing": "공유",
   "library_page_sort_created": "최근생성일",
   "library_page_sort_created": "최근생성일",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "마지막 수정",
+  "library_page_sort_most_recent_photo": "가장 최근 사진",
   "library_page_sort_title": "앨범 제목",
   "library_page_sort_title": "앨범 제목",
-  "login_disabled": "Login has been disabled",
-  "login_form_api_exception": "API exception. Please check the server URL and try again.",
+  "login_disabled": "로그인이 비활성화되었습니다",
+  "login_form_api_exception": "API 예외입니다. 서버 URL을 확인한 후 다시 시도하세요",
   "login_form_button_text": "로그인",
   "login_form_button_text": "로그인",
   "login_form_email_hint": "youremail@email.com",
   "login_form_email_hint": "youremail@email.com",
   "login_form_endpoint_hint": "https://your-server-ip:port/api",
   "login_form_endpoint_hint": "https://your-server-ip:port/api",
@@ -196,86 +207,90 @@
   "login_form_failed_get_oauth_server_config": "OAuth 로그인 오류, 서버 URL을 확인해주세요",
   "login_form_failed_get_oauth_server_config": "OAuth 로그인 오류, 서버 URL을 확인해주세요",
   "login_form_failed_get_oauth_server_disable": "이 서버에서는 OAuth 기능을 사용할 수 없습니다.",
   "login_form_failed_get_oauth_server_disable": "이 서버에서는 OAuth 기능을 사용할 수 없습니다.",
   "login_form_failed_login": "로그인 오류, 서버 URL, 이메일 및 비밀번호를 확인하세요",
   "login_form_failed_login": "로그인 오류, 서버 URL, 이메일 및 비밀번호를 확인하세요",
-  "login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
+  "login_form_handshake_exception": "서버에 핸드셰이크 예외가 발생했습니다. 자체 서명 인증서를 사용하는 경우 설정에서 자체 서명 인증서 지원을 사용 설정합니다",
   "login_form_label_email": "이메일",
   "login_form_label_email": "이메일",
   "login_form_label_password": "비밀번호",
   "login_form_label_password": "비밀번호",
-  "login_form_next_button": "Next",
+  "login_form_next_button": "다음",
   "login_form_password_hint": "비밀번호",
   "login_form_password_hint": "비밀번호",
   "login_form_save_login": "로그인상태 유지",
   "login_form_save_login": "로그인상태 유지",
-  "login_form_server_empty": "Enter a server URL.",
-  "login_form_server_error": "Could not connect to server.",
-  "login_password_changed_error": "There was an error updating your password",
-  "login_password_changed_success": "Password updated successfully",
-  "map_cannot_get_user_location": "Cannot get user's location",
-  "map_location_dialog_cancel": "Cancel",
-  "map_location_dialog_yes": "Yes",
-  "map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
-  "map_location_service_disabled_title": "Location Service disabled",
-  "map_no_assets_in_bounds": "No photos in this area",
-  "map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
-  "map_no_location_permission_title": "Location Permission denied",
-  "map_settings_dark_mode": "Dark mode",
-  "map_settings_dialog_cancel": "Cancel",
-  "map_settings_dialog_save": "Save",
-  "map_settings_dialog_title": "Map Settings",
-  "map_settings_include_show_archived": "Include Archived",
-  "map_settings_only_relative_range": "Date range",
-  "map_settings_only_show_favorites": "Show Favorite Only",
-  "map_zoom_to_see_photos": "Zoom out to see photos",
+  "login_form_server_empty": "서버 URL 입력",
+  "login_form_server_error": "서버에 연결할 수 없습니다",
+  "login_password_changed_error": "비밀번호를 업데이트하는 동안 오류가 발생했습니다",
+  "login_password_changed_success": "비밀번호 업데이트 성공",
+  "map_cannot_get_user_location": "사용자 위치를 가져올 수 없습니다.",
+  "map_location_dialog_cancel": "아니오",
+  "map_location_dialog_yes": "",
+  "map_location_service_disabled_content": "현재 위치의 미디어를 표시하려면 위치 서비스를 활성화해야 합니다. 지금 활성화하시겠습니까?",
+  "map_location_service_disabled_title": "위치 서비스 비활성화",
+  "map_no_assets_in_bounds": "이 영역에 사진이 없습니다",
+  "map_no_location_permission_content": "현재 위치의 미디어를 표시하려면 위치 권한이 필요합니다. 지금 허용하시겠습니까?",
+  "map_no_location_permission_title": "위치 권한 거부됨",
+  "map_settings_dark_mode": "다크 모드",
+  "map_settings_dialog_cancel": "취소",
+  "map_settings_dialog_save": "저장",
+  "map_settings_dialog_title": "지도 설정",
+  "map_settings_include_show_archived": "아카이브 포함",
+  "map_settings_only_relative_range": "날짜 범위",
+  "map_settings_only_show_favorites": "즐겨찾기에만 표시",
+  "map_zoom_to_see_photos": "축소하여 사진 보기",
   "monthly_title_text_date_format": "y년 M월",
   "monthly_title_text_date_format": "y년 M월",
-  "motion_photos_page_title": "Motion Photos",
+  "motion_photos_page_title": "모션 사진",
   "notification_permission_dialog_cancel": "취소",
   "notification_permission_dialog_cancel": "취소",
   "notification_permission_dialog_content": "알림을 활성화하려면 설정으로 이동하여 허용을 선택해주세요.",
   "notification_permission_dialog_content": "알림을 활성화하려면 설정으로 이동하여 허용을 선택해주세요.",
   "notification_permission_dialog_settings": "설정",
   "notification_permission_dialog_settings": "설정",
   "notification_permission_list_tile_content": "알림 활성화 권한허용",
   "notification_permission_list_tile_content": "알림 활성화 권한허용",
   "notification_permission_list_tile_enable_button": "알림 활성화",
   "notification_permission_list_tile_enable_button": "알림 활성화",
   "notification_permission_list_tile_title": "알림 권한",
   "notification_permission_list_tile_title": "알림 권한",
-  "partner_page_add_partner": "Add partner",
-  "partner_page_empty_message": "Your photos are not yet shared with any partner.",
-  "partner_page_no_more_users": "No more users to add",
-  "partner_page_partner_add_failed": "Failed to add partner",
-  "partner_page_select_partner": "Select partner",
-  "partner_page_shared_to_title": "Shared to",
-  "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
-  "partner_page_stop_sharing_title": "Stop sharing your photos?",
-  "partner_page_title": "Partner",
-  "permission_onboarding_continue_anyway": "Continue anyway",
-  "permission_onboarding_get_started": "Get started",
-  "permission_onboarding_go_to_settings": "Go to settings",
-  "permission_onboarding_grant_permission": "Grant permission",
-  "permission_onboarding_log_out": "Log out",
-  "permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
-  "permission_onboarding_permission_granted": "Permission granted! You are all set.",
-  "permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
-  "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
+  "partner_page_add_partner": "파트너 추가",
+  "partner_page_empty_message": "사진이 아직 어떤 파트너와도 공유되지 않았습니다",
+  "partner_page_no_more_users": "더 이상 추가할 사용자 없음",
+  "partner_page_partner_add_failed": "파트너 추가에 실패했습니다",
+  "partner_page_select_partner": "파트너 선택",
+  "partner_page_shared_to_title": "공유 대상",
+  "partner_page_stop_sharing_content": "더 이상 {}에서 사진에 액세스할 수 없습니다.",
+  "partner_page_stop_sharing_title": "사진 공유를 중단하시겠습니까?",
+  "partner_page_title": "파트너",
+  "permission_onboarding_back": "Back",
+  "permission_onboarding_continue_anyway": "어쨌든 계속하기",
+  "permission_onboarding_get_started": "시작하기",
+  "permission_onboarding_go_to_settings": "설정으로 이동",
+  "permission_onboarding_grant_permission": "권한 부여",
+  "permission_onboarding_log_out": "로그 아웃",
+  "permission_onboarding_permission_denied": "권한이 거부되었습니다. Immich를 사용하려면 설정에서 사진 및 동영상 권한을 부여하세요",
+  "permission_onboarding_permission_granted": "승인되었습니다! 모든 준비가 완료되었습니다",
+  "permission_onboarding_permission_limited": "권한 제한. Immich가 전체 갤러리 컬렉션을 백업하고 관리하도록 하려면 설정에서 사진 및 동영상 권한을 부여하세요",
+  "permission_onboarding_request": "Immich는 사진과 동영상을 볼 수 있는 권한을 요구합니다",
   "profile_drawer_app_logs": "로그",
   "profile_drawer_app_logs": "로그",
   "profile_drawer_client_server_up_to_date": "클라이언트와 서버가 최신 상태입니다",
   "profile_drawer_client_server_up_to_date": "클라이언트와 서버가 최신 상태입니다",
+  "profile_drawer_documentation": "문서",
+  "profile_drawer_github": "깃허브",
   "profile_drawer_settings": "설정",
   "profile_drawer_settings": "설정",
   "profile_drawer_sign_out": "로그아웃",
   "profile_drawer_sign_out": "로그아웃",
-  "profile_drawer_trash": "Trash",
-  "recently_added_page_title": "Recently Added",
+  "profile_drawer_trash": "휴지통",
+  "recently_added_page_title": "최근 추가",
   "search_bar_hint": "사진 검색",
   "search_bar_hint": "사진 검색",
-  "search_page_categories": "Categories",
-  "search_page_favorites": "Favorites",
-  "search_page_motion_photos": "Motion Photos",
+  "search_page_categories": "카테고리",
+  "search_page_favorites": "즐겨찾기",
+  "search_page_motion_photos": "모션 사진",
   "search_page_no_objects": "발견된 사물이\n없습니다",
   "search_page_no_objects": "발견된 사물이\n없습니다",
   "search_page_no_places": "발견된 장소가\n없습니다",
   "search_page_no_places": "발견된 장소가\n없습니다",
-  "search_page_people": "People",
+  "search_page_people": "사람",
   "search_page_places": "장소",
   "search_page_places": "장소",
-  "search_page_recently_added": "Recently added",
-  "search_page_screenshots": "Screenshots",
-  "search_page_selfies": "Selfies",
+  "search_page_recently_added": "최근 추가",
+  "search_page_screenshots": "스크린샷",
+  "search_page_selfies": "셀카",
   "search_page_things": "사물",
   "search_page_things": "사물",
-  "search_page_videos": "Videos",
-  "search_page_view_all_button": "View all",
-  "search_page_your_activity": "Your activity",
+  "search_page_videos": "동영상",
+  "search_page_view_all_button": "모두 보기",
+  "search_page_your_activity": "내 활동",
   "search_result_page_new_search_hint": "새 검색",
   "search_result_page_new_search_hint": "새 검색",
-  "search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ",
+  "search_suggestion_list_smart_search_hint_1": "스마트 검색은 기본적으로 활성화되어 있으며, 메타데이터를 검색하려면 다음 구문을 사용합니다",
   "search_suggestion_list_smart_search_hint_2": "m:your-search-term",
   "search_suggestion_list_smart_search_hint_2": "m:your-search-term",
   "select_additional_user_for_sharing_page_suggestions": "초대 가능한 사용자 제안",
   "select_additional_user_for_sharing_page_suggestions": "초대 가능한 사용자 제안",
   "select_user_for_sharing_page_err_album": "앨범 생성 실패",
   "select_user_for_sharing_page_err_album": "앨범 생성 실패",
   "select_user_for_sharing_page_share_suggestions": "초대 가능한 사용자 제안",
   "select_user_for_sharing_page_share_suggestions": "초대 가능한 사용자 제안",
   "server_info_box_app_version": "앱 버전",
   "server_info_box_app_version": "앱 버전",
+  "server_info_box_server_url": "서버 URL",
   "server_info_box_server_version": "서버 버전",
   "server_info_box_server_version": "서버 버전",
   "setting_image_viewer_help": "상세뷰어는 먼저 작은 썸네일을 불러온 다음 중간크기 미리보기를 불러오고(활성화된 경우) 마지막으로 원본을 불러옵니다(활성화된 경우).",
   "setting_image_viewer_help": "상세뷰어는 먼저 작은 썸네일을 불러온 다음 중간크기 미리보기를 불러오고(활성화된 경우) 마지막으로 원본을 불러옵니다(활성화된 경우).",
   "setting_image_viewer_original_subtitle": "원본 해상도 이미지(고화질)를 로드하려면 활성화합니다. 데이터 사용량을 줄이려면 비활성화합니다.",
   "setting_image_viewer_original_subtitle": "원본 해상도 이미지(고화질)를 로드하려면 활성화합니다. 데이터 사용량을 줄이려면 비활성화합니다.",
@@ -300,28 +315,37 @@
   "share_add_photos": "사진 추가",
   "share_add_photos": "사진 추가",
   "share_add_title": "새 앨범제목",
   "share_add_title": "새 앨범제목",
   "share_create_album": "앨범 만들기",
   "share_create_album": "앨범 만들기",
+  "shared_album_activities_input_disable": "댓글이 비활성화되었습니다.",
+  "shared_album_activities_input_hint": "말하기",
+  "shared_album_activity_remove_content": "이 활동을 삭제하시겠습니까?",
+  "shared_album_activity_remove_title": "활동 삭제",
+  "shared_album_activity_setting_subtitle": "다른 사람이 응답하도록 허용",
+  "shared_album_activity_setting_title": "댓글 및 좋아요",
   "share_dialog_preparing": "준비중...",
   "share_dialog_preparing": "준비중...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "공유 링크",
+  "shared_link_create_app_bar_title": "공유할 링크 만들기",
+  "shared_link_create_info": "링크를 가진 모든 사람이 선택한 사진을 볼 수 있도록 합니다",
+  "shared_link_create_submit_button": "링크 만들기",
+  "shared_link_edit_allow_download": "공용 사용자의 다운로드 허용",
+  "shared_link_edit_allow_upload": "공용 사용자의 업로드 허용",
+  "shared_link_edit_app_bar_title": "링크 수정",
+  "shared_link_edit_change_expiry": "만료 시간 변경",
+  "shared_link_edit_description": "설명",
+  "shared_link_edit_description_hint": "공유 설명 입력",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "비밀번호",
+  "shared_link_edit_password_hint": "공유 비밀번호 입력",
+  "shared_link_edit_show_meta": "메타데이터 표시",
+  "shared_link_edit_submit_button": "링크 업데이트",
+  "shared_link_empty": "공유 링크가 없습니다",
+  "shared_link_manage_links": "공유 링크 관리",
+  "share_done": "완료",
   "share_invite": "앨범에 초대",
   "share_invite": "앨범에 초대",
   "sharing_page_album": "공유앨범",
   "sharing_page_album": "공유앨범",
   "sharing_page_description": "공유앨범을 만들어 다른 사용자들과 사진 및 비디오를 공유합니다.",
   "sharing_page_description": "공유앨범을 만들어 다른 사용자들과 사진 및 비디오를 공유합니다.",
   "sharing_page_empty_list": "공유앨범 없음",
   "sharing_page_empty_list": "공유앨범 없음",
   "sharing_silver_appbar_create_shared_album": "공유앨범 만들기",
   "sharing_silver_appbar_create_shared_album": "공유앨범 만들기",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "공유 링크",
   "sharing_silver_appbar_share_partner": "파트너와 공유",
   "sharing_silver_appbar_share_partner": "파트너와 공유",
   "tab_controller_nav_library": "라이브러리",
   "tab_controller_nav_library": "라이브러리",
   "tab_controller_nav_photos": "사진",
   "tab_controller_nav_photos": "사진",
@@ -337,30 +361,30 @@
   "theme_setting_theme_title": "테마",
   "theme_setting_theme_title": "테마",
   "theme_setting_three_stage_loading_subtitle": "이 기능은 로딩 성능을 향상시킬 수 있지만 훨씬 더 많은 데이터를 사용합니다.",
   "theme_setting_three_stage_loading_subtitle": "이 기능은 로딩 성능을 향상시킬 수 있지만 훨씬 더 많은 데이터를 사용합니다.",
   "theme_setting_three_stage_loading_title": "3단계 로딩 활성화",
   "theme_setting_three_stage_loading_title": "3단계 로딩 활성화",
-  "translated_text_options": "Options",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
-  "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
-  "upload_dialog_cancel": "Cancel",
-  "upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
-  "upload_dialog_ok": "Upload",
-  "upload_dialog_title": "Upload Asset",
+  "translated_text_options": "옵션",
+  "trash_page_delete": "삭제",
+  "trash_page_delete_all": "모두 삭제",
+  "trash_page_empty_trash_btn": "휴지통 비우기",
+  "trash_page_empty_trash_dialog_content": "휴지통에 버린 미디어를 비우고 싶으신가요? 이 항목들은 Immich에서 영구적으로 삭제됩니다",
+  "trash_page_empty_trash_dialog_ok": "확인",
+  "trash_page_info": "휴지통에 버린 항목은 {}일 후에 영구 삭제됩니다",
+  "trash_page_no_assets": "휴지통에 버려진 미디어 없음",
+  "trash_page_restore": "복원",
+  "trash_page_restore_all": "모두 복원",
+  "trash_page_select_assets_btn": "미디어 선택",
+  "trash_page_select_btn": "선택",
+  "trash_page_title": "휴지통 ({})",
+  "upload_dialog_cancel": "취소",
+  "upload_dialog_info": "선택한 미디어를 서버에 백업하시겠습니까?",
+  "upload_dialog_ok": "업로드",
+  "upload_dialog_title": "미디어 업로드",
   "version_announcement_overlay_ack": "승인",
   "version_announcement_overlay_ack": "승인",
   "version_announcement_overlay_release_notes": "릴리스 정보",
   "version_announcement_overlay_release_notes": "릴리스 정보",
   "version_announcement_overlay_text_1": "안녕하세요!",
   "version_announcement_overlay_text_1": "안녕하세요!",
   "version_announcement_overlay_text_2": "앱에 새로운 업데이트가 있습니다!",
   "version_announcement_overlay_text_2": "앱에 새로운 업데이트가 있습니다!",
   "version_announcement_overlay_text_3": "특히 WatchTower 또는 서버 응용 프로그램 자동 업데이트를 처리하는 메커니즘을 사용하는 경우 잘못된 구성을 방지하기 위해 docker-compose 및 .env 설정이 최신 상태인지 확인하세요.",
   "version_announcement_overlay_text_3": "특히 WatchTower 또는 서버 응용 프로그램 자동 업데이트를 처리하는 메커니즘을 사용하는 경우 잘못된 구성을 방지하기 위해 docker-compose 및 .env 설정이 최신 상태인지 확인하세요.",
   "version_announcement_overlay_title": "새 서버 버전 사용 가능 \uD83C\uDF89",
   "version_announcement_overlay_title": "새 서버 버전 사용 가능 \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "스택에서 제거",
+  "viewer_stack_use_as_main_asset": "메인 미디어로 사용",
+  "viewer_unstack": "스택 해제"
 }
 }

+ 24 - 0
mobile/assets/i18n/lv-LV.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Neizdevās mainīt albuma nosaukumu",
   "album_viewer_appbar_share_err_title": "Neizdevās mainīt albuma nosaukumu",
   "album_viewer_appbar_share_leave": "Pamest albumu",
   "album_viewer_appbar_share_leave": "Pamest albumu",
   "album_viewer_appbar_share_remove": "Noņemt no albuma",
   "album_viewer_appbar_share_remove": "Noņemt no albuma",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Pievienot lietotājus",
   "album_viewer_page_share_add_users": "Pievienot lietotājus",
   "all_people_page_title": "Cilvēki",
   "all_people_page_title": "Cilvēki",
   "all_videos_page_title": "Videoklipi",
   "all_videos_page_title": "Videoklipi",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "Nav atrasts neviens arhivēts aktīvs",
   "archive_page_no_archived_assets": "Nav atrasts neviens arhivēts aktīvs",
   "archive_page_title": "Arhīvs ({})",
   "archive_page_title": "Arhīvs ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dinamiskais izkārtojums",
   "asset_list_layout_settings_dynamic_layout_title": "Dinamiskais izkārtojums",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Kešatmiņas lietojums",
   "cache_settings_statistics_title": "Kešatmiņas lietojums",
   "cache_settings_subtitle": "Kontrolēt Immich mobilās lietotnes kešdarbi",
   "cache_settings_subtitle": "Kontrolēt Immich mobilās lietotnes kešdarbi",
   "cache_settings_thumbnail_size": "Sīktēlu keša lielums ({} aktīvi)",
   "cache_settings_thumbnail_size": "Sīktēlu keša lielums ({} aktīvi)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Kešdarbes iestatījumi",
   "cache_settings_title": "Kešdarbes iestatījumi",
   "change_password_form_confirm_password": "Apstiprināt Paroli",
   "change_password_form_confirm_password": "Apstiprināt Paroli",
   "change_password_form_description": "Sveiki {FirstName} {LastName},\n\nŠī ir pirmā reize, kad pierakstāties sistēmā, vai arī ir iesniegts pieprasījums mainīt paroli. Lūdzu, zemāk ievadiet jauno paroli.",
   "change_password_form_description": "Sveiki {FirstName} {LastName},\n\nŠī ir pirmā reize, kad pierakstāties sistēmā, vai arī ir iesniegts pieprasījums mainīt paroli. Lūdzu, zemāk ievadiet jauno paroli.",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Pievienoja {added} aktīvus albumam {album}. {failed} aktīvi jau ir albumā.",
   "home_page_add_to_album_conflicts": "Pievienoja {added} aktīvus albumam {album}. {failed} aktīvi jau ir albumā.",
   "home_page_add_to_album_err_local": "Albumiem vēl nevar pievienot lokālos aktīvus, notiek izlaišana",
   "home_page_add_to_album_err_local": "Albumiem vēl nevar pievienot lokālos aktīvus, notiek izlaišana",
   "home_page_add_to_album_success": "Pievienoja {added} aktīvus albumam {album}.",
   "home_page_add_to_album_success": "Pievienoja {added} aktīvus albumam {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Vēl nevar arhivēt lokālos aktīvus, notiek izlaišana",
   "home_page_archive_err_local": "Vēl nevar arhivēt lokālos aktīvus, notiek izlaišana",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Tiek izveidota laika skala",
   "home_page_building_timeline": "Tiek izveidota laika skala",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Vēl nevar pievienot izlaisei vietējos aktīvus, notiek izlaišana",
   "home_page_favorite_err_local": "Vēl nevar pievienot izlaisei vietējos aktīvus, notiek izlaišana",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Ja šī ir pirmā reize, kad izmantojat aplikāciju, lūdzu, izvēlieties dublējuma albumu(s), lai laika skala varētu aizpildīt fotoattēlus un videoklipus albumā(os).",
   "home_page_first_time_notice": "Ja šī ir pirmā reize, kad izmantojat aplikāciju, lūdzu, izvēlieties dublējuma albumu(s), lai laika skala varētu aizpildīt fotoattēlus un videoklipus albumā(os).",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "image_viewer_page_state_provider_download_error": "Lejupielādes Kļūda",
   "image_viewer_page_state_provider_download_error": "Lejupielādes Kļūda",
   "image_viewer_page_state_provider_download_success": "Lejupielāde Izdevās",
   "image_viewer_page_state_provider_download_success": "Lejupielāde Izdevās",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} vairs nevarēs piekļūt jūsu fotoattēliem.",
   "partner_page_stop_sharing_content": "{} vairs nevarēs piekļūt jūsu fotoattēliem.",
   "partner_page_stop_sharing_title": "Beigt kopīgot jūsu fotogrāfijas?",
   "partner_page_stop_sharing_title": "Beigt kopīgot jūsu fotogrāfijas?",
   "partner_page_title": "Partneris",
   "partner_page_title": "Partneris",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Tomēr turpināt",
   "permission_onboarding_continue_anyway": "Tomēr turpināt",
   "permission_onboarding_get_started": "Darba sākšana",
   "permission_onboarding_get_started": "Darba sākšana",
   "permission_onboarding_go_to_settings": "Doties uz iestatījumiem",
   "permission_onboarding_go_to_settings": "Doties uz iestatījumiem",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich nepieciešama atļauja skatīt jūsu fotoattēlus un videoklipus.",
   "permission_onboarding_request": "Immich nepieciešama atļauja skatīt jūsu fotoattēlus un videoklipus.",
   "profile_drawer_app_logs": "Žurnāli",
   "profile_drawer_app_logs": "Žurnāli",
   "profile_drawer_client_server_up_to_date": "Klients un serveris ir atjaunināti",
   "profile_drawer_client_server_up_to_date": "Klients un serveris ir atjaunināti",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Iestatījumi",
   "profile_drawer_settings": "Iestatījumi",
   "profile_drawer_sign_out": "Izrakstīties",
   "profile_drawer_sign_out": "Izrakstīties",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Neizdevās izveidot albumu",
   "select_user_for_sharing_page_err_album": "Neizdevās izveidot albumu",
   "select_user_for_sharing_page_share_suggestions": "Ieteikumi",
   "select_user_for_sharing_page_share_suggestions": "Ieteikumi",
   "server_info_box_app_version": "Aplikācijas Versija",
   "server_info_box_app_version": "Aplikācijas Versija",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Servera Versija",
   "server_info_box_server_version": "Servera Versija",
   "setting_image_viewer_help": "Detaļu skatītājs vispirms ielādē mazo sīktēlu, pēc tam ielādē vidēja lieluma priekšskatījumu (ja iespējots), visbeidzot ielādē oriģinālu (ja iespējots).",
   "setting_image_viewer_help": "Detaļu skatītājs vispirms ielādē mazo sīktēlu, pēc tam ielādē vidēja lieluma priekšskatījumu (ja iespējots), visbeidzot ielādē oriģinālu (ja iespējots).",
   "setting_image_viewer_original_subtitle": "Iespējojiet sākotnējā pilnas izšķirtspējas attēla (liels!) ielādi. Atspējot lai samazinātu datu lietojumu  (gan tīklā, gan ierīces kešatmiņā).",
   "setting_image_viewer_original_subtitle": "Iespējojiet sākotnējā pilnas izšķirtspējas attēla (liels!) ielādi. Atspējot lai samazinātu datu lietojumu  (gan tīklā, gan ierīces kešatmiņā).",
@@ -300,6 +315,12 @@
   "share_add_photos": "Pievienot fotoattēlus",
   "share_add_photos": "Pievienot fotoattēlus",
   "share_add_title": "Pievienot virsrakstu",
   "share_add_title": "Pievienot virsrakstu",
   "share_create_album": "Izveidot albumu",
   "share_create_album": "Izveidot albumu",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Notiek sagatavošana...",
   "share_dialog_preparing": "Notiek sagatavošana...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 24 - 0
mobile/assets/i18n/mn.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Failed to change album title",
   "album_viewer_appbar_share_err_title": "Failed to change album title",
   "album_viewer_appbar_share_leave": "Leave album",
   "album_viewer_appbar_share_leave": "Leave album",
   "album_viewer_appbar_share_remove": "Remove from album",
   "album_viewer_appbar_share_remove": "Remove from album",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Add users",
   "album_viewer_page_share_add_users": "Add users",
   "all_people_page_title": "People",
   "all_people_page_title": "People",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_title": "Archive ({})",
   "archive_page_title": "Archive ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Caching Settings",
   "cache_settings_title": "Caching Settings",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Building the timeline",
   "home_page_building_timeline": "Building the timeline",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_success": "Download Success",
   "image_viewer_page_state_provider_download_success": "Download Success",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_go_to_settings": "Go to settings",
   "permission_onboarding_go_to_settings": "Go to settings",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Settings",
   "profile_drawer_settings": "Settings",
   "profile_drawer_sign_out": "Sign Out",
   "profile_drawer_sign_out": "Sign Out",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "server_info_box_app_version": "App Version",
   "server_info_box_app_version": "App Version",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Server Version",
   "server_info_box_server_version": "Server Version",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
@@ -300,6 +315,12 @@
   "share_add_photos": "Add photos",
   "share_add_photos": "Add photos",
   "share_add_title": "Add a title",
   "share_add_title": "Add a title",
   "share_create_album": "Create album",
   "share_create_album": "Create album",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Preparing...",
   "share_dialog_preparing": "Preparing...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 64 - 40
mobile/assets/i18n/nb-NO.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Feilet ved endring av albumtittel",
   "album_viewer_appbar_share_err_title": "Feilet ved endring av albumtittel",
   "album_viewer_appbar_share_leave": "Forlat album",
   "album_viewer_appbar_share_leave": "Forlat album",
   "album_viewer_appbar_share_remove": "Fjern fra album",
   "album_viewer_appbar_share_remove": "Fjern fra album",
+  "album_viewer_appbar_share_to": "Del til",
   "album_viewer_page_share_add_users": "Legg til brukere",
   "album_viewer_page_share_add_users": "Legg til brukere",
   "all_people_page_title": "Folk",
   "all_people_page_title": "Folk",
   "all_videos_page_title": "Videoer",
   "all_videos_page_title": "Videoer",
+  "app_bar_signout_dialog_content": "Er du sikker på at du vil logge ut?",
+  "app_bar_signout_dialog_ok": "Ja",
+  "app_bar_signout_dialog_title": "Logg ut",
   "archive_page_no_archived_assets": "Ingen arkiverte objekter funnet",
   "archive_page_no_archived_assets": "Ingen arkiverte objekter funnet",
   "archive_page_title": "Arkiv ({})",
   "archive_page_title": "Arkiv ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamisk bildeorganisering",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamisk bildeorganisering",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Bufferbruk",
   "cache_settings_statistics_title": "Bufferbruk",
   "cache_settings_subtitle": "Kontroller bufringsadferden til Immich-appen",
   "cache_settings_subtitle": "Kontroller bufringsadferden til Immich-appen",
   "cache_settings_thumbnail_size": "Størrelse på miniatyrbildebuffer ({} objekter)",
   "cache_settings_thumbnail_size": "Størrelse på miniatyrbildebuffer ({} objekter)",
+  "cache_settings_tile_subtitle": "Kontroller lokal lagring",
+  "cache_settings_tile_title": "Lokal lagring",
   "cache_settings_title": "Bufringsinnstillinger",
   "cache_settings_title": "Bufringsinnstillinger",
   "change_password_form_confirm_password": "Bekreft passord",
   "change_password_form_confirm_password": "Bekreft passord",
   "change_password_form_description": "Hei {firstName} {lastName}!\n\nDette er enten første gang du logger på systemet, eller det er sendt en forespørsel om å endre passordet ditt. Vennligst skriv inn det nye passordet nedenfor.",
   "change_password_form_description": "Hei {firstName} {lastName}!\n\nDette er enten første gang du logger på systemet, eller det er sendt en forespørsel om å endre passordet ditt. Vennligst skriv inn det nye passordet nedenfor.",
@@ -130,10 +136,10 @@
   "control_bottom_app_bar_delete": "Slett",
   "control_bottom_app_bar_delete": "Slett",
   "control_bottom_app_bar_favorite": "Favoritt",
   "control_bottom_app_bar_favorite": "Favoritt",
   "control_bottom_app_bar_share": "Del",
   "control_bottom_app_bar_share": "Del",
-  "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_share_to": "Del til",
+  "control_bottom_app_bar_stack": "Stable",
   "control_bottom_app_bar_unarchive": "Fjern fra arkiv",
   "control_bottom_app_bar_unarchive": "Fjern fra arkiv",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Last opp",
   "create_album_page_untitled": "Uten navn",
   "create_album_page_untitled": "Uten navn",
   "create_shared_album_page_create": "Opprett",
   "create_shared_album_page_create": "Opprett",
   "create_shared_album_page_share": "Del",
   "create_shared_album_page_share": "Del",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "Avbryt",
   "delete_dialog_cancel": "Avbryt",
   "delete_dialog_ok": "Slett",
   "delete_dialog_ok": "Slett",
   "delete_dialog_title": "Slett permanent",
   "delete_dialog_title": "Slett permanent",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Er du sikker på at du vil slette denne delte linken?",
+  "delete_shared_link_dialog_title": "Slett delt link",
   "description_input_hint_text": "Legg til beskrivelse ...",
   "description_input_hint_text": "Legg til beskrivelse ...",
   "description_input_submit_error": "Feil ved oppdatering av beskrivelse, sjekk loggen for flere detaljer",
   "description_input_submit_error": "Feil ved oppdatering av beskrivelse, sjekk loggen for flere detaljer",
   "exif_bottom_sheet_description": "Legg til beskrivelse ...",
   "exif_bottom_sheet_description": "Legg til beskrivelse ...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "Lagt til {added} objekter til album {album}. {failed} objekter er allerede i albumet.",
   "home_page_add_to_album_conflicts": "Lagt til {added} objekter til album {album}. {failed} objekter er allerede i albumet.",
   "home_page_add_to_album_err_local": "Kan ikke legge til lokale objekter til album enda, hopper over",
   "home_page_add_to_album_err_local": "Kan ikke legge til lokale objekter til album enda, hopper over",
   "home_page_add_to_album_success": "Lagt til {added} objekter til album {album}.",
   "home_page_add_to_album_success": "Lagt til {added} objekter til album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Kan ikke arkivere lokale objekter enda, hopper over",
   "home_page_archive_err_local": "Kan ikke arkivere lokale objekter enda, hopper over",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Genererer tidslinjen",
   "home_page_building_timeline": "Genererer tidslinjen",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Kan ikke sette favoritt på lokale objekter enda, hopper over",
   "home_page_favorite_err_local": "Kan ikke sette favoritt på lokale objekter enda, hopper over",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Hvis dette er første gangen du benytter appen, velg et album (eller flere) for sikkerhetskopiering, slik at tidslinjen kan fylles med dine bilder og videoer.",
   "home_page_first_time_notice": "Hvis dette er første gangen du benytter appen, velg et album (eller flere) for sikkerhetskopiering, slik at tidslinjen kan fylles med dine bilder og videoer.",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Maksimalt 30 objekter kan lastes opp om gangen, hopper over",
   "home_page_upload_err_limit": "Maksimalt 30 objekter kan lastes opp om gangen, hopper over",
   "image_viewer_page_state_provider_download_error": "Nedlasting feilet",
   "image_viewer_page_state_provider_download_error": "Nedlasting feilet",
   "image_viewer_page_state_provider_download_success": "Nedlasting vellykket",
   "image_viewer_page_state_provider_download_success": "Nedlasting vellykket",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Delingsfeil",
   "library_page_albums": "Albumer",
   "library_page_albums": "Albumer",
   "library_page_archive": "Arkiv",
   "library_page_archive": "Arkiv",
   "library_page_device_albums": "Albumer på enheten",
   "library_page_device_albums": "Albumer på enheten",
@@ -179,8 +190,8 @@
   "library_page_new_album": "Nytt album",
   "library_page_new_album": "Nytt album",
   "library_page_sharing": "Deling",
   "library_page_sharing": "Deling",
   "library_page_sort_created": "Nylig opplastet",
   "library_page_sort_created": "Nylig opplastet",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Sist endret",
+  "library_page_sort_most_recent_photo": "Siste bilde",
   "library_page_sort_title": "Albumtittel",
   "library_page_sort_title": "Albumtittel",
   "login_disabled": "Innlogging har blitt deaktivert",
   "login_disabled": "Innlogging har blitt deaktivert",
   "login_form_api_exception": "API-feil. Sjekk URL-en til serveren og prøv igjen.",
   "login_form_api_exception": "API-feil. Sjekk URL-en til serveren og prøv igjen.",
@@ -218,7 +229,7 @@
   "map_settings_dialog_cancel": "Avbryt",
   "map_settings_dialog_cancel": "Avbryt",
   "map_settings_dialog_save": "Lagre",
   "map_settings_dialog_save": "Lagre",
   "map_settings_dialog_title": "Kartinnstillinger",
   "map_settings_dialog_title": "Kartinnstillinger",
-  "map_settings_include_show_archived": "Include Archived",
+  "map_settings_include_show_archived": "Inkluder arkiverte",
   "map_settings_only_relative_range": "Datoområde",
   "map_settings_only_relative_range": "Datoområde",
   "map_settings_only_show_favorites": "Vis kun favoritter",
   "map_settings_only_show_favorites": "Vis kun favoritter",
   "map_zoom_to_see_photos": "Zoom ut for å se bilder",
   "map_zoom_to_see_photos": "Zoom ut for å se bilder",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} vil ikke lenger ha tilgang til dine bilder.",
   "partner_page_stop_sharing_content": "{} vil ikke lenger ha tilgang til dine bilder.",
   "partner_page_stop_sharing_title": "Stopp deling av bildene dine?",
   "partner_page_stop_sharing_title": "Stopp deling av bildene dine?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Fortsett uansett",
   "permission_onboarding_continue_anyway": "Fortsett uansett",
   "permission_onboarding_get_started": "Kom i gang",
   "permission_onboarding_get_started": "Kom i gang",
   "permission_onboarding_go_to_settings": "Gå til innstillinger",
   "permission_onboarding_go_to_settings": "Gå til innstillinger",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich trenger tilgang til å se dine bilder og videoer",
   "permission_onboarding_request": "Immich trenger tilgang til å se dine bilder og videoer",
   "profile_drawer_app_logs": "Logg",
   "profile_drawer_app_logs": "Logg",
   "profile_drawer_client_server_up_to_date": "Klient og server er oppdatert",
   "profile_drawer_client_server_up_to_date": "Klient og server er oppdatert",
+  "profile_drawer_documentation": "Dokumentasjon",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Innstillinger",
   "profile_drawer_settings": "Innstillinger",
   "profile_drawer_sign_out": "Logg ut",
   "profile_drawer_sign_out": "Logg ut",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Søppelbøtte",
   "recently_added_page_title": "Nylig lagt til",
   "recently_added_page_title": "Nylig lagt til",
   "search_bar_hint": "Søk i dine bilder",
   "search_bar_hint": "Søk i dine bilder",
   "search_page_categories": "Kategorier",
   "search_page_categories": "Kategorier",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Feilet ved oppretting av album",
   "select_user_for_sharing_page_err_album": "Feilet ved oppretting av album",
   "select_user_for_sharing_page_share_suggestions": "Forslag",
   "select_user_for_sharing_page_share_suggestions": "Forslag",
   "server_info_box_app_version": "App-versjon",
   "server_info_box_app_version": "App-versjon",
+  "server_info_box_server_url": "Server-adresse",
   "server_info_box_server_version": "Server-versjon",
   "server_info_box_server_version": "Server-versjon",
   "setting_image_viewer_help": "Detaljvisningen laster først miniatyrbildet, deretter forhåndsvisningsbildet (hvis aktivert), og til slutt originalen (hvis aktivert).",
   "setting_image_viewer_help": "Detaljvisningen laster først miniatyrbildet, deretter forhåndsvisningsbildet (hvis aktivert), og til slutt originalen (hvis aktivert).",
   "setting_image_viewer_original_subtitle": "Aktiver for å laste originalbildet i full oppløsning (stort!). Deaktiver for å spare databruk (både nettverksbruk og bufferdata på enheten).",
   "setting_image_viewer_original_subtitle": "Aktiver for å laste originalbildet i full oppløsning (stort!). Deaktiver for å spare databruk (både nettverksbruk og bufferdata på enheten).",
@@ -300,28 +315,37 @@
   "share_add_photos": "Legg til bilder",
   "share_add_photos": "Legg til bilder",
   "share_add_title": "Legg til tittel",
   "share_add_title": "Legg til tittel",
   "share_create_album": "Opprett album",
   "share_create_album": "Opprett album",
+  "shared_album_activities_input_disable": "Kommenterer er deaktivert",
+  "shared_album_activities_input_hint": "Si noe",
+  "shared_album_activity_remove_content": "Vil du slette denne aktiviteten?",
+  "shared_album_activity_remove_title": "Slett aktivitet",
+  "shared_album_activity_setting_subtitle": "La andre respondere",
+  "shared_album_activity_setting_title": "Kommentarer og likes",
   "share_dialog_preparing": "Forbereder ...",
   "share_dialog_preparing": "Forbereder ...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Delte linker",
+  "shared_link_create_app_bar_title": "Opprett delelink",
+  "shared_link_create_info": "La alle med linken se de(t) valgte bilde(ne)",
+  "shared_link_create_submit_button": "Opprett link",
+  "shared_link_edit_allow_download": "Tillat offentlig bruker å laste ned",
+  "shared_link_edit_allow_upload": "Tillat offentlig bruker å laste opp",
+  "shared_link_edit_app_bar_title": "Endre link",
+  "shared_link_edit_change_expiry": "Endre utløpstid",
+  "shared_link_edit_description": "Beskrivelse",
+  "shared_link_edit_description_hint": "Endre delebeskrivelse",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Passord",
+  "shared_link_edit_password_hint": "Skriv inn dele-passord",
+  "shared_link_edit_show_meta": "Vis metadata",
+  "shared_link_edit_submit_button": "Oppdater link",
+  "shared_link_empty": "Du har ingen delte linker",
+  "shared_link_manage_links": "Håndter delte linker",
+  "share_done": "Ferdig",
   "share_invite": "Inviter til album",
   "share_invite": "Inviter til album",
   "sharing_page_album": "Delte album",
   "sharing_page_album": "Delte album",
   "sharing_page_description": "Lag delte albumer for å dele bilder og videoer med folk i nettverket ditt.",
   "sharing_page_description": "Lag delte albumer for å dele bilder og videoer med folk i nettverket ditt.",
   "sharing_page_empty_list": "TOM LISTE",
   "sharing_page_empty_list": "TOM LISTE",
   "sharing_silver_appbar_create_shared_album": "Lag delt album",
   "sharing_silver_appbar_create_shared_album": "Lag delt album",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Delte linker",
   "sharing_silver_appbar_share_partner": "Del med partner",
   "sharing_silver_appbar_share_partner": "Del med partner",
   "tab_controller_nav_library": "Bibliotek",
   "tab_controller_nav_library": "Bibliotek",
   "tab_controller_nav_photos": "Bilder",
   "tab_controller_nav_photos": "Bilder",
@@ -338,18 +362,18 @@
   "theme_setting_three_stage_loading_subtitle": "Tre-trinns innlasting kan øke lasteytelsen, men forårsaker betydelig høyere nettverksbelastning",
   "theme_setting_three_stage_loading_subtitle": "Tre-trinns innlasting kan øke lasteytelsen, men forårsaker betydelig høyere nettverksbelastning",
   "theme_setting_three_stage_loading_title": "Aktiver tre-trinns innlasting",
   "theme_setting_three_stage_loading_title": "Aktiver tre-trinns innlasting",
   "translated_text_options": "Valg",
   "translated_text_options": "Valg",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
+  "trash_page_delete": "Slett",
+  "trash_page_delete_all": "Slett alt",
+  "trash_page_empty_trash_btn": "Tøm søppelbøtte",
+  "trash_page_empty_trash_dialog_content": "Vil du tømme søppelbøtten? Objektene vil bli permanent fjernet fra Immich",
   "trash_page_empty_trash_dialog_ok": "Ok",
   "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
+  "trash_page_info": "Objekter i søppelbøtten blir permanent fjernet etter {} dager",
+  "trash_page_no_assets": "Ingen forkastede objekter",
+  "trash_page_restore": "Gjenopprett",
+  "trash_page_restore_all": "Gjenopprett alt",
+  "trash_page_select_assets_btn": "Velg objekter",
+  "trash_page_select_btn": "Velg",
+  "trash_page_title": "Søppelbøtte ({})",
   "upload_dialog_cancel": "Avbryt",
   "upload_dialog_cancel": "Avbryt",
   "upload_dialog_info": "Vil du utføre backup av valgte objekt(er) til serveren?",
   "upload_dialog_info": "Vil du utføre backup av valgte objekt(er) til serveren?",
   "upload_dialog_ok": "Last opp",
   "upload_dialog_ok": "Last opp",
@@ -360,7 +384,7 @@
   "version_announcement_overlay_text_2": "vennligst ta deg tid til å besøke ",
   "version_announcement_overlay_text_2": "vennligst ta deg tid til å besøke ",
   "version_announcement_overlay_text_3": " og verifiser at docker-compose og .env-oppsettet ditt er oppdatert for å forhindre en eventuell feilkonfigurasjon, spesielt hvis du benytter WatchTower eller en annen tjeneste som håndterer oppdatering av server-applikasjonen automatisk.",
   "version_announcement_overlay_text_3": " og verifiser at docker-compose og .env-oppsettet ditt er oppdatert for å forhindre en eventuell feilkonfigurasjon, spesielt hvis du benytter WatchTower eller en annen tjeneste som håndterer oppdatering av server-applikasjonen automatisk.",
   "version_announcement_overlay_title": "Ny serverversjon tilgjengelig",
   "version_announcement_overlay_title": "Ny serverversjon tilgjengelig",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Fjern fra stabling",
+  "viewer_stack_use_as_main_asset": "Bruk som hovedobjekt",
+  "viewer_unstack": "avstable"
 }
 }

+ 24 - 0
mobile/assets/i18n/nl-NL.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Albumtitel wijzigen mislukt",
   "album_viewer_appbar_share_err_title": "Albumtitel wijzigen mislukt",
   "album_viewer_appbar_share_leave": "Verlaat album",
   "album_viewer_appbar_share_leave": "Verlaat album",
   "album_viewer_appbar_share_remove": "Verwijder uit album",
   "album_viewer_appbar_share_remove": "Verwijder uit album",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Gebruikers toevoegen",
   "album_viewer_page_share_add_users": "Gebruikers toevoegen",
   "all_people_page_title": "Personen",
   "all_people_page_title": "Personen",
   "all_videos_page_title": "Video's",
   "all_videos_page_title": "Video's",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "Geen gearchiveerde items gevonden",
   "archive_page_no_archived_assets": "Geen gearchiveerde items gevonden",
   "archive_page_title": "Archief ({})",
   "archive_page_title": "Archief ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamische layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamische layout",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Cachegebruik",
   "cache_settings_statistics_title": "Cachegebruik",
   "cache_settings_subtitle": "Beheer het cachegedrag van de Immich app",
   "cache_settings_subtitle": "Beheer het cachegedrag van de Immich app",
   "cache_settings_thumbnail_size": "Thumbnail-cachegrootte ({} items)",
   "cache_settings_thumbnail_size": "Thumbnail-cachegrootte ({} items)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Cache-instellingen",
   "cache_settings_title": "Cache-instellingen",
   "change_password_form_confirm_password": "Bevestig wachtwoord",
   "change_password_form_confirm_password": "Bevestig wachtwoord",
   "change_password_form_description": "Hallo {firstName} {lastName},\n\nDit is ofwel de eerste keer dat je inlogt, of er is een verzoek gedaan om je wachtwoord te wijzigen. Vul hieronder een nieuw wachtwoord in.",
   "change_password_form_description": "Hallo {firstName} {lastName},\n\nDit is ofwel de eerste keer dat je inlogt, of er is een verzoek gedaan om je wachtwoord te wijzigen. Vul hieronder een nieuw wachtwoord in.",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "{added} items toegevoegd aan album {album}. {failed} items staan al in het album.",
   "home_page_add_to_album_conflicts": "{added} items toegevoegd aan album {album}. {failed} items staan al in het album.",
   "home_page_add_to_album_err_local": "Lokale items kunnen nog niet aan albums worden toegevoegd, overslaan",
   "home_page_add_to_album_err_local": "Lokale items kunnen nog niet aan albums worden toegevoegd, overslaan",
   "home_page_add_to_album_success": "{added} items toegevoegd aan album {album}.",
   "home_page_add_to_album_success": "{added} items toegevoegd aan album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Lokale items kunnen nog niet gearchiveerd worden, overslaan",
   "home_page_archive_err_local": "Lokale items kunnen nog niet gearchiveerd worden, overslaan",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Tijdlijn opbouwen",
   "home_page_building_timeline": "Tijdlijn opbouwen",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Lokale items kunnen nog niet als favoriet worden aangemerkt, overslaan",
   "home_page_favorite_err_local": "Lokale items kunnen nog niet als favoriet worden aangemerkt, overslaan",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Als dit de eerste keer is dat je de app gebruikt, zorg er dan voor dat je een back-up album kiest, zodat de tijdlijn gevuld kan worden met foto's en video's uit het album.",
   "home_page_first_time_notice": "Als dit de eerste keer is dat je de app gebruikt, zorg er dan voor dat je een back-up album kiest, zodat de tijdlijn gevuld kan worden met foto's en video's uit het album.",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Kan maximaal 30 assets tegelijk uploaden, overslaan",
   "home_page_upload_err_limit": "Kan maximaal 30 assets tegelijk uploaden, overslaan",
   "image_viewer_page_state_provider_download_error": "Download mislukt",
   "image_viewer_page_state_provider_download_error": "Download mislukt",
   "image_viewer_page_state_provider_download_success": "Download succesvol",
   "image_viewer_page_state_provider_download_success": "Download succesvol",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} zal geen toegang meer hebben tot je fotos's.",
   "partner_page_stop_sharing_content": "{} zal geen toegang meer hebben tot je fotos's.",
   "partner_page_stop_sharing_title": "Stoppen met het delen van je foto's?",
   "partner_page_stop_sharing_title": "Stoppen met het delen van je foto's?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Toch doorgaan",
   "permission_onboarding_continue_anyway": "Toch doorgaan",
   "permission_onboarding_get_started": "Aan de slag",
   "permission_onboarding_get_started": "Aan de slag",
   "permission_onboarding_go_to_settings": "Ga naar instellingen",
   "permission_onboarding_go_to_settings": "Ga naar instellingen",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich heeft toestemming nodig om je foto's en video's te bekijken.",
   "permission_onboarding_request": "Immich heeft toestemming nodig om je foto's en video's te bekijken.",
   "profile_drawer_app_logs": "Logboek",
   "profile_drawer_app_logs": "Logboek",
   "profile_drawer_client_server_up_to_date": "App en server zijn up-to-date",
   "profile_drawer_client_server_up_to_date": "App en server zijn up-to-date",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Instellingen",
   "profile_drawer_settings": "Instellingen",
   "profile_drawer_sign_out": "Uitloggen",
   "profile_drawer_sign_out": "Uitloggen",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Album aanmaken mislukt",
   "select_user_for_sharing_page_err_album": "Album aanmaken mislukt",
   "select_user_for_sharing_page_share_suggestions": "Suggesties",
   "select_user_for_sharing_page_share_suggestions": "Suggesties",
   "server_info_box_app_version": "Appversie",
   "server_info_box_app_version": "Appversie",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Serverversie",
   "server_info_box_server_version": "Serverversie",
   "setting_image_viewer_help": "De gedetailleerde weergave laadt eerst de kleine thumbnail, vervolgens het middelgrote voorbeeld (indien ingeschakeld) en ten slotte het origineel (indien ingeschakeld).",
   "setting_image_viewer_help": "De gedetailleerde weergave laadt eerst de kleine thumbnail, vervolgens het middelgrote voorbeeld (indien ingeschakeld) en ten slotte het origineel (indien ingeschakeld).",
   "setting_image_viewer_original_subtitle": "Schakel in om de originele afbeelding met volledige resolutie (groot!) te laden. Schakel uit om datagebruik te verminderen (zowel netwerk als apparaatcache).",
   "setting_image_viewer_original_subtitle": "Schakel in om de originele afbeelding met volledige resolutie (groot!) te laden. Schakel uit om datagebruik te verminderen (zowel netwerk als apparaatcache).",
@@ -300,6 +315,12 @@
   "share_add_photos": "Foto's toevoegen",
   "share_add_photos": "Foto's toevoegen",
   "share_add_title": "Titel toevoegen",
   "share_add_title": "Titel toevoegen",
   "share_create_album": "Album aanmaken",
   "share_create_album": "Album aanmaken",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Voorbereiden...",
   "share_dialog_preparing": "Voorbereiden...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 63 - 39
mobile/assets/i18n/pl-PL.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Nie udało się zmienić tytułu albumu",
   "album_viewer_appbar_share_err_title": "Nie udało się zmienić tytułu albumu",
   "album_viewer_appbar_share_leave": "Opuść album",
   "album_viewer_appbar_share_leave": "Opuść album",
   "album_viewer_appbar_share_remove": "Usuń z albumu",
   "album_viewer_appbar_share_remove": "Usuń z albumu",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Dodaj użytkowników",
   "album_viewer_page_share_add_users": "Dodaj użytkowników",
   "all_people_page_title": "Ludzie",
   "all_people_page_title": "Ludzie",
   "all_videos_page_title": "Filmy",
   "all_videos_page_title": "Filmy",
+  "app_bar_signout_dialog_content": "Czy na pewno chcesz się wylogować?",
+  "app_bar_signout_dialog_ok": "Tak",
+  "app_bar_signout_dialog_title": "Wyloguj się",
   "archive_page_no_archived_assets": "Nie znaleziono zarchiwizowanych zasobów",
   "archive_page_no_archived_assets": "Nie znaleziono zarchiwizowanych zasobów",
   "archive_page_title": "Archiwum ({})",
   "archive_page_title": "Archiwum ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Układ dynamiczny",
   "asset_list_layout_settings_dynamic_layout_title": "Układ dynamiczny",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Użycie Cache",
   "cache_settings_statistics_title": "Użycie Cache",
   "cache_settings_subtitle": "Kontrolowanie zachowania buforowania aplikacji mobilnej Immich",
   "cache_settings_subtitle": "Kontrolowanie zachowania buforowania aplikacji mobilnej Immich",
   "cache_settings_thumbnail_size": "Rozmiar pamięci podręcznej miniatur ({} zasobów)",
   "cache_settings_thumbnail_size": "Rozmiar pamięci podręcznej miniatur ({} zasobów)",
+  "cache_settings_tile_subtitle": "Kontroluj zachowanie lokalnego magazynu",
+  "cache_settings_tile_title": "Lokalny magazyn",
   "cache_settings_title": "Ustawienia Buforowania",
   "cache_settings_title": "Ustawienia Buforowania",
   "change_password_form_confirm_password": "Potwierdź Hasło",
   "change_password_form_confirm_password": "Potwierdź Hasło",
   "change_password_form_description": "Cześć {firstName} {lastName},\n\nPierwszy raz logujesz się do systemu, albo złożono prośbę o zmianę hasła. Wpisz poniżej nowe hasło.",
   "change_password_form_description": "Cześć {firstName} {lastName},\n\nPierwszy raz logujesz się do systemu, albo złożono prośbę o zmianę hasła. Wpisz poniżej nowe hasło.",
@@ -131,9 +137,9 @@
   "control_bottom_app_bar_favorite": "Ulubione",
   "control_bottom_app_bar_favorite": "Ulubione",
   "control_bottom_app_bar_share": "Udostępnij",
   "control_bottom_app_bar_share": "Udostępnij",
   "control_bottom_app_bar_share_to": "Share To",
   "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_stack": "Stos",
   "control_bottom_app_bar_unarchive": "Cofnij archiwizację",
   "control_bottom_app_bar_unarchive": "Cofnij archiwizację",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Wgraj",
   "create_album_page_untitled": "Bez tytułu",
   "create_album_page_untitled": "Bez tytułu",
   "create_shared_album_page_create": "Utwórz",
   "create_shared_album_page_create": "Utwórz",
   "create_shared_album_page_share": "Udostępnij",
   "create_shared_album_page_share": "Udostępnij",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "Anuluj",
   "delete_dialog_cancel": "Anuluj",
   "delete_dialog_ok": "Usuń",
   "delete_dialog_ok": "Usuń",
   "delete_dialog_title": "Usuń trwale",
   "delete_dialog_title": "Usuń trwale",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Czy na pewno chcesz usunąć ten udostępniony link?",
+  "delete_shared_link_dialog_title": "Usuń udostępniony link",
   "description_input_hint_text": "Dodaj opis...",
   "description_input_hint_text": "Dodaj opis...",
   "description_input_submit_error": "Błąd aktualizacji opisu, sprawdź dziennik, aby uzyskać więcej szczegółów",
   "description_input_submit_error": "Błąd aktualizacji opisu, sprawdź dziennik, aby uzyskać więcej szczegółów",
   "exif_bottom_sheet_description": "Dodaj Opis...",
   "exif_bottom_sheet_description": "Dodaj Opis...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "Dodano {added} zasoby do albumu {album}. {failed} zasobów jest już w albumie.",
   "home_page_add_to_album_conflicts": "Dodano {added} zasoby do albumu {album}. {failed} zasobów jest już w albumie.",
   "home_page_add_to_album_err_local": "Nie można dodawać zasobów lokalnych do albumów, pomijam",
   "home_page_add_to_album_err_local": "Nie można dodawać zasobów lokalnych do albumów, pomijam",
   "home_page_add_to_album_success": "Dodano {added} zasoby do albumu {album}.",
   "home_page_add_to_album_success": "Dodano {added} zasoby do albumu {album}.",
+  "home_page_album_err_partner": "Nie można jeszcze dodać zasobów partnera do albumu, pomijam",
   "home_page_archive_err_local": "Nie można jeszcze zarchiwizować zasobów lokalnych, pomijanie",
   "home_page_archive_err_local": "Nie można jeszcze zarchiwizować zasobów lokalnych, pomijanie",
+  "home_page_archive_err_partner": "Nie można zarchiwizować zasobów partnera, pomijam",
   "home_page_building_timeline": "Budowanie osi czasu",
   "home_page_building_timeline": "Budowanie osi czasu",
+  "home_page_delete_err_partner": "Nie można usunąć zasobów partnera, pomijam",
   "home_page_favorite_err_local": "Nie można dodać do ulubionych lokalnych zasobów, pomijam",
   "home_page_favorite_err_local": "Nie można dodać do ulubionych lokalnych zasobów, pomijam",
+  "home_page_favorite_err_partner": "Nie można jeszcze dodać do ulubionych zasobów partnera, pomijam",
   "home_page_first_time_notice": "Jeśli korzystasz z aplikacji po raz pierwszy, pamiętaj o wybraniu albumów zapasowych, aby oś czasu mogła zapełnić zdjęcia i filmy w albumach.",
   "home_page_first_time_notice": "Jeśli korzystasz z aplikacji po raz pierwszy, pamiętaj o wybraniu albumów zapasowych, aby oś czasu mogła zapełnić zdjęcia i filmy w albumach.",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Można przesłać maksymalnie 30 zasobów jednocześnie, pomijanie",
   "home_page_upload_err_limit": "Można przesłać maksymalnie 30 zasobów jednocześnie, pomijanie",
   "image_viewer_page_state_provider_download_error": "Błąd pobierania",
   "image_viewer_page_state_provider_download_error": "Błąd pobierania",
   "image_viewer_page_state_provider_download_success": "Pobieranie zakończone",
   "image_viewer_page_state_provider_download_success": "Pobieranie zakończone",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Udostępnij błąd",
   "library_page_albums": "Albumy",
   "library_page_albums": "Albumy",
   "library_page_archive": "Archiwum",
   "library_page_archive": "Archiwum",
   "library_page_device_albums": "Albumy na Urządzeniu",
   "library_page_device_albums": "Albumy na Urządzeniu",
@@ -179,8 +190,8 @@
   "library_page_new_album": "Nowy album",
   "library_page_new_album": "Nowy album",
   "library_page_sharing": "Udostępnianie",
   "library_page_sharing": "Udostępnianie",
   "library_page_sort_created": "Ostatnio utworzone",
   "library_page_sort_created": "Ostatnio utworzone",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Ostatnio zmodyfikowany",
+  "library_page_sort_most_recent_photo": "Najnowsze zdjęcie",
   "library_page_sort_title": "Tytuł albumu",
   "library_page_sort_title": "Tytuł albumu",
   "login_disabled": "Logowanie zostało wyłączone",
   "login_disabled": "Logowanie zostało wyłączone",
   "login_form_api_exception": "Wyjątek API. Sprawdź adres URL serwera i spróbuj ponownie.",
   "login_form_api_exception": "Wyjątek API. Sprawdź adres URL serwera i spróbuj ponownie.",
@@ -218,7 +229,7 @@
   "map_settings_dialog_cancel": "Anuluj",
   "map_settings_dialog_cancel": "Anuluj",
   "map_settings_dialog_save": "Zapisz",
   "map_settings_dialog_save": "Zapisz",
   "map_settings_dialog_title": "Ustawienia mapy",
   "map_settings_dialog_title": "Ustawienia mapy",
-  "map_settings_include_show_archived": "Include Archived",
+  "map_settings_include_show_archived": "Uwzględnij zarchiwizowane",
   "map_settings_only_relative_range": "Zakres dat",
   "map_settings_only_relative_range": "Zakres dat",
   "map_settings_only_show_favorites": "Pokaż tylko ulubione",
   "map_settings_only_show_favorites": "Pokaż tylko ulubione",
   "map_zoom_to_see_photos": "Pomniejsz, aby zobaczyć zdjęcia",
   "map_zoom_to_see_photos": "Pomniejsz, aby zobaczyć zdjęcia",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} nie będziesz już mieć dostępu do swoich zdjęć.",
   "partner_page_stop_sharing_content": "{} nie będziesz już mieć dostępu do swoich zdjęć.",
   "partner_page_stop_sharing_title": "Przestać udostępniać swoje zdjęcia?",
   "partner_page_stop_sharing_title": "Przestać udostępniać swoje zdjęcia?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Kontynuuj mimo to",
   "permission_onboarding_continue_anyway": "Kontynuuj mimo to",
   "permission_onboarding_get_started": "Rozpocznij",
   "permission_onboarding_get_started": "Rozpocznij",
   "permission_onboarding_go_to_settings": "Przejdź do ustawień",
   "permission_onboarding_go_to_settings": "Przejdź do ustawień",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich potrzebuje pozwolenia na przeglądanie Twoich zdjęć i filmów.",
   "permission_onboarding_request": "Immich potrzebuje pozwolenia na przeglądanie Twoich zdjęć i filmów.",
   "profile_drawer_app_logs": "Logi",
   "profile_drawer_app_logs": "Logi",
   "profile_drawer_client_server_up_to_date": "Klient i serwer są aktualne",
   "profile_drawer_client_server_up_to_date": "Klient i serwer są aktualne",
+  "profile_drawer_documentation": "Dokumentacja",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Ustawienia",
   "profile_drawer_settings": "Ustawienia",
   "profile_drawer_sign_out": "Wyloguj się",
   "profile_drawer_sign_out": "Wyloguj się",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Kosz",
   "recently_added_page_title": "Ostatnio Dodane",
   "recently_added_page_title": "Ostatnio Dodane",
   "search_bar_hint": "Szukaj swoich zdjęć",
   "search_bar_hint": "Szukaj swoich zdjęć",
   "search_page_categories": "Kategorie",
   "search_page_categories": "Kategorie",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Nie udało się utworzyć albumu",
   "select_user_for_sharing_page_err_album": "Nie udało się utworzyć albumu",
   "select_user_for_sharing_page_share_suggestions": "Propozycje",
   "select_user_for_sharing_page_share_suggestions": "Propozycje",
   "server_info_box_app_version": "Wersja Aplikacji",
   "server_info_box_app_version": "Wersja Aplikacji",
+  "server_info_box_server_url": "Adres URL",
   "server_info_box_server_version": "Wersja Serwera",
   "server_info_box_server_version": "Wersja Serwera",
   "setting_image_viewer_help": "Przeglądarka szczegółów najpierw ładuje małą miniaturę, następnie ładuje podgląd średniej wielkości (jeśli jest włączony), a na koniec ładuje oryginał (jeśli jest włączony).",
   "setting_image_viewer_help": "Przeglądarka szczegółów najpierw ładuje małą miniaturę, następnie ładuje podgląd średniej wielkości (jeśli jest włączony), a na koniec ładuje oryginał (jeśli jest włączony).",
   "setting_image_viewer_original_subtitle": "Włącz ładowanie oryginalnego obrazu w pełnej rozdzielczości (dużego!). Wyłącz, aby zmniejszyć zużycie danych (zarówno w sieci, jak i w pamięci podręcznej urządzenia).",
   "setting_image_viewer_original_subtitle": "Włącz ładowanie oryginalnego obrazu w pełnej rozdzielczości (dużego!). Wyłącz, aby zmniejszyć zużycie danych (zarówno w sieci, jak i w pamięci podręcznej urządzenia).",
@@ -300,28 +315,37 @@
   "share_add_photos": "Dodaj zdjęcia",
   "share_add_photos": "Dodaj zdjęcia",
   "share_add_title": "Dodaj tytuł",
   "share_add_title": "Dodaj tytuł",
   "share_create_album": "Utwórz album",
   "share_create_album": "Utwórz album",
+  "shared_album_activities_input_disable": "Komentarz jest wyłączony",
+  "shared_album_activities_input_hint": "Powiedz coś",
+  "shared_album_activity_remove_content": "Czy chcesz usunąć tę aktywność?",
+  "shared_album_activity_remove_title": "Usuń aktywność",
+  "shared_album_activity_setting_subtitle": "Pozwól innym odpowiedzieć",
+  "shared_album_activity_setting_title": "Komentarze i polubienia",
   "share_dialog_preparing": "Przygotowywanie...",
   "share_dialog_preparing": "Przygotowywanie...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Udostępnione linki",
+  "shared_link_create_app_bar_title": "Utwórz link do udostępnienia",
+  "shared_link_create_info": "Pozwól każdemu, kto ma link, zobaczyć wybrane zdjęcia",
+  "shared_link_create_submit_button": "Utwórz link",
+  "shared_link_edit_allow_download": "Zezwalaj użytkownikowi publicznemu na pobieranie",
+  "shared_link_edit_allow_upload": "Zezwalaj użytkownikowi publicznemu na przesyłanie",
+  "shared_link_edit_app_bar_title": "Edytuj link",
+  "shared_link_edit_change_expiry": "Zmień czas ważności",
+  "shared_link_edit_description": "Opis",
+  "shared_link_edit_description_hint": "Wprowadź opis udostępnienia",
+  "shared_link_edit_expire_after": "Wygasa po",
+  "shared_link_edit_password": "Hasło",
+  "shared_link_edit_password_hint": "Wprowadź hasło udostępniania",
+  "shared_link_edit_show_meta": "Pokaż metadane",
+  "shared_link_edit_submit_button": "Aktualizuj link",
+  "shared_link_empty": "Nie masz żadnych udostępnionych linków",
+  "shared_link_manage_links": "Zarządzaj udostępnionymi linkami",
+  "share_done": "Zrobione",
   "share_invite": "Zaproś do albumu",
   "share_invite": "Zaproś do albumu",
   "sharing_page_album": "Udostępnione albumy",
   "sharing_page_album": "Udostępnione albumy",
   "sharing_page_description": "Twórz wspóldzielone albumy, aby udostępniać zdjęcia i filmy osobom w sieci.",
   "sharing_page_description": "Twórz wspóldzielone albumy, aby udostępniać zdjęcia i filmy osobom w sieci.",
   "sharing_page_empty_list": "PUSTA LISTA",
   "sharing_page_empty_list": "PUSTA LISTA",
   "sharing_silver_appbar_create_shared_album": "Utwórz współdzielony album",
   "sharing_silver_appbar_create_shared_album": "Utwórz współdzielony album",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Udostępnione linki",
   "sharing_silver_appbar_share_partner": "Udostępnij partnerce/partnerowi",
   "sharing_silver_appbar_share_partner": "Udostępnij partnerce/partnerowi",
   "tab_controller_nav_library": "Biblioteka",
   "tab_controller_nav_library": "Biblioteka",
   "tab_controller_nav_photos": "Zdjęcia",
   "tab_controller_nav_photos": "Zdjęcia",
@@ -338,18 +362,18 @@
   "theme_setting_three_stage_loading_subtitle": "Trójstopniowe ładowanie może zwiększyć wydajność ładowania, ale powoduje znacznie większe obciążenie sieci",
   "theme_setting_three_stage_loading_subtitle": "Trójstopniowe ładowanie może zwiększyć wydajność ładowania, ale powoduje znacznie większe obciążenie sieci",
   "theme_setting_three_stage_loading_title": "Włączenie trójstopniowego ładowania",
   "theme_setting_three_stage_loading_title": "Włączenie trójstopniowego ładowania",
   "translated_text_options": "Opcje",
   "translated_text_options": "Opcje",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
+  "trash_page_delete": "Usuń",
+  "trash_page_delete_all": "Usuń wszystko",
+  "trash_page_empty_trash_btn": "Opróżnij kosz",
+  "trash_page_empty_trash_dialog_content": "Czy chcesz opróżnić swoje usunięte zasoby? Przedmioty te zostaną trwale usunięte z Immich",
   "trash_page_empty_trash_dialog_ok": "Ok",
   "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
+  "trash_page_info": "Elementy przeniesione do kosza zostaną trwale usunięte po {} dniach",
+  "trash_page_no_assets": "Brak usuniętych zasobów",
+  "trash_page_restore": "Przywrócić",
+  "trash_page_restore_all": "Przywrócić wszystkie",
+  "trash_page_select_assets_btn": "Wybierz zasoby",
+  "trash_page_select_btn": "Wybierz",
+  "trash_page_title": "Kosz({})",
   "upload_dialog_cancel": "Anuluj",
   "upload_dialog_cancel": "Anuluj",
   "upload_dialog_info": "Czy chcesz wykonać kopię zapasową wybranych zasobów na serwerze?",
   "upload_dialog_info": "Czy chcesz wykonać kopię zapasową wybranych zasobów na serwerze?",
   "upload_dialog_ok": "Prześlij",
   "upload_dialog_ok": "Prześlij",
@@ -360,7 +384,7 @@
   "version_announcement_overlay_text_2": "prosimy o poświęcenie czasu na odwiedzenie ",
   "version_announcement_overlay_text_2": "prosimy o poświęcenie czasu na odwiedzenie ",
   "version_announcement_overlay_text_3": " i upewnij się, że twoja konfiguracja docker-compose i .env jest aktualna, aby zapobiec błędnym konfiguracjom, zwłaszcza jeśli używasz WatchTower lub dowolnego mechanizmu, który obsługuje automatyczną aktualizację aplikacji serwera.",
   "version_announcement_overlay_text_3": " i upewnij się, że twoja konfiguracja docker-compose i .env jest aktualna, aby zapobiec błędnym konfiguracjom, zwłaszcza jeśli używasz WatchTower lub dowolnego mechanizmu, który obsługuje automatyczną aktualizację aplikacji serwera.",
   "version_announcement_overlay_title": "Nowa wersja serwera dostępna \uD83C\uDF89",
   "version_announcement_overlay_title": "Nowa wersja serwera dostępna \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Usuń ze stosu",
+  "viewer_stack_use_as_main_asset": "Użyj jako głównego zasobu",
+  "viewer_unstack": "Usuń stos"
 }
 }

+ 65 - 41
mobile/assets/i18n/ru-RU.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Ошибка переименования альбома",
   "album_viewer_appbar_share_err_title": "Ошибка переименования альбома",
   "album_viewer_appbar_share_leave": "Покинуть альбом",
   "album_viewer_appbar_share_leave": "Покинуть альбом",
   "album_viewer_appbar_share_remove": "Удалить из альбома",
   "album_viewer_appbar_share_remove": "Удалить из альбома",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Добавить пользователей",
   "album_viewer_page_share_add_users": "Добавить пользователей",
   "all_people_page_title": "Люди",
   "all_people_page_title": "Люди",
   "all_videos_page_title": "Видео",
   "all_videos_page_title": "Видео",
+  "app_bar_signout_dialog_content": "Вы уверены, что хотите выйти из системы?",
+  "app_bar_signout_dialog_ok": "Да",
+  "app_bar_signout_dialog_title": "Выйти из системы",
   "archive_page_no_archived_assets": "В архиве сейчас пусто",
   "archive_page_no_archived_assets": "В архиве сейчас пусто",
   "archive_page_title": "Архив ({})",
   "archive_page_title": "Архив ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Динамическое расположение",
   "asset_list_layout_settings_dynamic_layout_title": "Динамическое расположение",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Размер кэша",
   "cache_settings_statistics_title": "Размер кэша",
   "cache_settings_subtitle": "Управление кэшированием мобильного приложения Immich",
   "cache_settings_subtitle": "Управление кэшированием мобильного приложения Immich",
   "cache_settings_thumbnail_size": "Размер кэша эскизов ({} объектов)",
   "cache_settings_thumbnail_size": "Размер кэша эскизов ({} объектов)",
+  "cache_settings_tile_subtitle": "Управление поведением локального хранилища",
+  "cache_settings_tile_title": "Локальное хранилище",
   "cache_settings_title": "Настройки кэширования",
   "cache_settings_title": "Настройки кэширования",
   "change_password_form_confirm_password": "Подтвердите пароль",
   "change_password_form_confirm_password": "Подтвердите пароль",
   "change_password_form_description": "Привет {firstName} {lastName},\n\nЭто либо ваш первый вход в систему, либо был сделан запрос на смену пароля. Пожалуйста, введите новый пароль ниже.",
   "change_password_form_description": "Привет {firstName} {lastName},\n\nЭто либо ваш первый вход в систему, либо был сделан запрос на смену пароля. Пожалуйста, введите новый пароль ниже.",
@@ -130,10 +136,10 @@
   "control_bottom_app_bar_delete": "Удалить",
   "control_bottom_app_bar_delete": "Удалить",
   "control_bottom_app_bar_favorite": "Избранное",
   "control_bottom_app_bar_favorite": "Избранное",
   "control_bottom_app_bar_share": "Поделиться",
   "control_bottom_app_bar_share": "Поделиться",
-  "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_share_to": "Поделиться",
+  "control_bottom_app_bar_stack": "Стек",
   "control_bottom_app_bar_unarchive": "Восстановить",
   "control_bottom_app_bar_unarchive": "Восстановить",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Загрузить",
   "create_album_page_untitled": "Без названия",
   "create_album_page_untitled": "Без названия",
   "create_shared_album_page_create": "Создать",
   "create_shared_album_page_create": "Создать",
   "create_shared_album_page_share": "Поделиться",
   "create_shared_album_page_share": "Поделиться",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "Отменить",
   "delete_dialog_cancel": "Отменить",
   "delete_dialog_ok": "Удалить",
   "delete_dialog_ok": "Удалить",
   "delete_dialog_title": "Удалить навсегда",
   "delete_dialog_title": "Удалить навсегда",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Вы уверены, что хотите удалить эту общую ссылку?",
+  "delete_shared_link_dialog_title": "Удалить общую ссылку",
   "description_input_hint_text": "Добавить описание...",
   "description_input_hint_text": "Добавить описание...",
   "description_input_submit_error": "Не удалось обновить описание, проверьте логи, чтобы узнать причину",
   "description_input_submit_error": "Не удалось обновить описание, проверьте логи, чтобы узнать причину",
   "exif_bottom_sheet_description": "Добавить описание...",
   "exif_bottom_sheet_description": "Добавить описание...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "Добавлено {added} объектов в альбом {album}. Объекты {failed} уже есть в альбоме.",
   "home_page_add_to_album_conflicts": "Добавлено {added} объектов в альбом {album}. Объекты {failed} уже есть в альбоме.",
   "home_page_add_to_album_err_local": "Пока нельзя добавлять локальные объекты в альбомы, пропускаем",
   "home_page_add_to_album_err_local": "Пока нельзя добавлять локальные объекты в альбомы, пропускаем",
   "home_page_add_to_album_success": "Добавлено {added} объектов в альбом {album}.",
   "home_page_add_to_album_success": "Добавлено {added} объектов в альбом {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Пока невозможно добавить локальные объекты в архив, пропускаем",
   "home_page_archive_err_local": "Пока невозможно добавить локальные объекты в архив, пропускаем",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Построение временной шкалы",
   "home_page_building_timeline": "Построение временной шкалы",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Пока не удается добавить в избранное локальные объекты, пропускаем",
   "home_page_favorite_err_local": "Пока не удается добавить в избранное локальные объекты, пропускаем",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Если вы используете приложение впервые, убедитесь, что вы выбрали резервный(е) альбом(ы), чтобы временная шкала могла заполнить фотографии и видео в альбоме(ах).",
   "home_page_first_time_notice": "Если вы используете приложение впервые, убедитесь, что вы выбрали резервный(е) альбом(ы), чтобы временная шкала могла заполнить фотографии и видео в альбоме(ах).",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Вы можете выгрузить максимум 30 файлов за раз",
   "home_page_upload_err_limit": "Вы можете выгрузить максимум 30 файлов за раз",
   "image_viewer_page_state_provider_download_error": "Ошибка загрузки",
   "image_viewer_page_state_provider_download_error": "Ошибка загрузки",
   "image_viewer_page_state_provider_download_success": "Успешно загружено",
   "image_viewer_page_state_provider_download_success": "Успешно загружено",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Ошибка при публикации",
   "library_page_albums": "Альбомы",
   "library_page_albums": "Альбомы",
   "library_page_archive": "Архив",
   "library_page_archive": "Архив",
   "library_page_device_albums": "Альбомы на устройстве",
   "library_page_device_albums": "Альбомы на устройстве",
@@ -179,8 +190,8 @@
   "library_page_new_album": "Новый альбом",
   "library_page_new_album": "Новый альбом",
   "library_page_sharing": "Общие",
   "library_page_sharing": "Общие",
   "library_page_sort_created": "По новизне",
   "library_page_sort_created": "По новизне",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Последнее изменение",
+  "library_page_sort_most_recent_photo": "Последняя фотография",
   "library_page_sort_title": "По названию альбома",
   "library_page_sort_title": "По названию альбома",
   "login_disabled": "Вход отключен",
   "login_disabled": "Вход отключен",
   "login_form_api_exception": "Ошибка при попытке взаимодействия с сервером. Проверьте URL-адрес до него и попробуйте еще раз.",
   "login_form_api_exception": "Ошибка при попытке взаимодействия с сервером. Проверьте URL-адрес до него и попробуйте еще раз.",
@@ -218,7 +229,7 @@
   "map_settings_dialog_cancel": "Отмена",
   "map_settings_dialog_cancel": "Отмена",
   "map_settings_dialog_save": "Сохранить",
   "map_settings_dialog_save": "Сохранить",
   "map_settings_dialog_title": "Настройки карты",
   "map_settings_dialog_title": "Настройки карты",
-  "map_settings_include_show_archived": "Include Archived",
+  "map_settings_include_show_archived": "Включить архивные данные",
   "map_settings_only_relative_range": "Период времени",
   "map_settings_only_relative_range": "Период времени",
   "map_settings_only_show_favorites": "Показать только избранное",
   "map_settings_only_show_favorites": "Показать только избранное",
   "map_zoom_to_see_photos": "Уменьшение масштаба для просмотра фотографий",
   "map_zoom_to_see_photos": "Уменьшение масштаба для просмотра фотографий",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} больше не сможет получить доступ к вашим фотографиям",
   "partner_page_stop_sharing_content": "{} больше не сможет получить доступ к вашим фотографиям",
   "partner_page_stop_sharing_title": "Закрыть доступ партнёра к вашим фото?",
   "partner_page_stop_sharing_title": "Закрыть доступ партнёра к вашим фото?",
   "partner_page_title": "Партнёр",
   "partner_page_title": "Партнёр",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Все равно продолжить",
   "permission_onboarding_continue_anyway": "Все равно продолжить",
   "permission_onboarding_get_started": "Давайте начнём",
   "permission_onboarding_get_started": "Давайте начнём",
   "permission_onboarding_go_to_settings": "Перейти в настройки",
   "permission_onboarding_go_to_settings": "Перейти в настройки",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich просит вас предоставить разрешение на доступ к вашим фото и видео",
   "permission_onboarding_request": "Immich просит вас предоставить разрешение на доступ к вашим фото и видео",
   "profile_drawer_app_logs": "Журнал",
   "profile_drawer_app_logs": "Журнал",
   "profile_drawer_client_server_up_to_date": "Клиент и сервер обновлены",
   "profile_drawer_client_server_up_to_date": "Клиент и сервер обновлены",
+  "profile_drawer_documentation": "Документация",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Настройки",
   "profile_drawer_settings": "Настройки",
   "profile_drawer_sign_out": "Выйти",
   "profile_drawer_sign_out": "Выйти",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Корзина",
   "recently_added_page_title": "Недавно добавленные",
   "recently_added_page_title": "Недавно добавленные",
   "search_bar_hint": "Поиск фотографий",
   "search_bar_hint": "Поиск фотографий",
   "search_page_categories": "Категории",
   "search_page_categories": "Категории",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "\nНе удалось создать альбом",
   "select_user_for_sharing_page_err_album": "\nНе удалось создать альбом",
   "select_user_for_sharing_page_share_suggestions": "Предложения",
   "select_user_for_sharing_page_share_suggestions": "Предложения",
   "server_info_box_app_version": "Версия приложения",
   "server_info_box_app_version": "Версия приложения",
+  "server_info_box_server_url": "URL сервера",
   "server_info_box_server_version": "Версия сервера",
   "server_info_box_server_version": "Версия сервера",
   "setting_image_viewer_help": "Средство просмотра деталей сначала загружает маленькую миниатюру, затем загружает предварительный просмотр среднего размера (если включено) и, наконец, загружает оригинал (если включено).",
   "setting_image_viewer_help": "Средство просмотра деталей сначала загружает маленькую миниатюру, затем загружает предварительный просмотр среднего размера (если включено) и, наконец, загружает оригинал (если включено).",
   "setting_image_viewer_original_subtitle": "Включите загрузку оригинального изображения в полном разрешении (большое!). Отключите, чтобы уменьшить объем данных (как в сети, так и в кеше устройства).",
   "setting_image_viewer_original_subtitle": "Включите загрузку оригинального изображения в полном разрешении (большое!). Отключите, чтобы уменьшить объем данных (как в сети, так и в кеше устройства).",
@@ -300,28 +315,37 @@
   "share_add_photos": "Добавить фото",
   "share_add_photos": "Добавить фото",
   "share_add_title": "Добавить название",
   "share_add_title": "Добавить название",
   "share_create_album": "Создать альбом",
   "share_create_album": "Создать альбом",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Подготовка...",
   "share_dialog_preparing": "Подготовка...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Общие ссылки",
+  "shared_link_create_app_bar_title": "Создать ссылку для совместного использования",
+  "shared_link_create_info": "Позволить любому человеку, имеющему ссылку, увидеть выбранную фотографию (фотографии)",
+  "shared_link_create_submit_button": "Создать ссылку",
+  "shared_link_edit_allow_download": "Разрешить публичному пользователю скачивать",
+  "shared_link_edit_allow_upload": "Разрешить публичному пользователю загружать файлы",
+  "shared_link_edit_app_bar_title": "Редактировать ссылку",
+  "shared_link_edit_change_expiry": "Изменить срок действия доступа",
+  "shared_link_edit_description": "Описание",
+  "shared_link_edit_description_hint": "Введите описание совместного доступа",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Пароль",
+  "shared_link_edit_password_hint": "Введите пароль общего доступа",
+  "shared_link_edit_show_meta": "Показать метаданные",
+  "shared_link_edit_submit_button": "Обновить ссылку",
+  "shared_link_empty": "У вас нет общих ссылок",
+  "shared_link_manage_links": "Управление общими ссылками",
+  "share_done": "Выполнено",
   "share_invite": "\nПригласить в альбом",
   "share_invite": "\nПригласить в альбом",
   "sharing_page_album": "Общие альбомы",
   "sharing_page_album": "Общие альбомы",
   "sharing_page_description": "Создавайте общие альбомы, чтобы делиться фотографиями и видео с людьми в вашей сети.",
   "sharing_page_description": "Создавайте общие альбомы, чтобы делиться фотографиями и видео с людьми в вашей сети.",
   "sharing_page_empty_list": "ПУСТОЙ СПИСОК",
   "sharing_page_empty_list": "ПУСТОЙ СПИСОК",
   "sharing_silver_appbar_create_shared_album": "Создать общий альбом",
   "sharing_silver_appbar_create_shared_album": "Создать общий альбом",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Общие ссылки",
   "sharing_silver_appbar_share_partner": "Поделиться с партнёром",
   "sharing_silver_appbar_share_partner": "Поделиться с партнёром",
   "tab_controller_nav_library": "Библиотека",
   "tab_controller_nav_library": "Библиотека",
   "tab_controller_nav_photos": "Фото",
   "tab_controller_nav_photos": "Фото",
@@ -338,18 +362,18 @@
   "theme_setting_three_stage_loading_subtitle": "Трехэтапная загрузка может повысить производительность загрузки, но вызывает значительно более высокую нагрузку на сеть",
   "theme_setting_three_stage_loading_subtitle": "Трехэтапная загрузка может повысить производительность загрузки, но вызывает значительно более высокую нагрузку на сеть",
   "theme_setting_three_stage_loading_title": "Включить трехэтапную загрузку",
   "theme_setting_three_stage_loading_title": "Включить трехэтапную загрузку",
   "translated_text_options": "Опции",
   "translated_text_options": "Опции",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
-  "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
+  "trash_page_delete": "Удалить",
+  "trash_page_delete_all": "Удалить все",
+  "trash_page_empty_trash_btn": "Очистить корзину",
+  "trash_page_empty_trash_dialog_content": "Вы хотите очистить свою корзину? Эти объекты будут навсегда удалены из Immich",
+  "trash_page_empty_trash_dialog_ok": "ОК",
+  "trash_page_info": "Удаленные элементы будут окончательно удалены через {} дней",
+  "trash_page_no_assets": "Отсутствие удаленных объектов",
+  "trash_page_restore": "Восстановить",
+  "trash_page_restore_all": "Восстановить все",
+  "trash_page_select_assets_btn": "Выбранные объекты",
+  "trash_page_select_btn": "Выбрать",
+  "trash_page_title": "Корзина ({})",
   "upload_dialog_cancel": "Отмена",
   "upload_dialog_cancel": "Отмена",
   "upload_dialog_info": "Вы хотите загрузить выбранный объект(ы) на ваш сервер?",
   "upload_dialog_info": "Вы хотите загрузить выбранный объект(ы) на ваш сервер?",
   "upload_dialog_ok": "Загрузить",
   "upload_dialog_ok": "Загрузить",
@@ -360,7 +384,7 @@
   "version_announcement_overlay_text_2": "пожалуйста, найдите время, чтобы посетить",
   "version_announcement_overlay_text_2": "пожалуйста, найдите время, чтобы посетить",
   "version_announcement_overlay_text_3": " и убедитесь, что ваши настройки docker-compose и .env обновлены, чтобы предотвратить любые неправильные настройки, особенно если вы используете WatchTower или любой другой механизм, который обрабатывает обновление вашего серверного приложения автоматически.",
   "version_announcement_overlay_text_3": " и убедитесь, что ваши настройки docker-compose и .env обновлены, чтобы предотвратить любые неправильные настройки, особенно если вы используете WatchTower или любой другой механизм, который обрабатывает обновление вашего серверного приложения автоматически.",
   "version_announcement_overlay_title": "Доступна новая версия сервера \uD83C\uDF89",
   "version_announcement_overlay_title": "Доступна новая версия сервера \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Удалить из стека",
+  "viewer_stack_use_as_main_asset": "Использование в качестве основного объекта",
+  "viewer_unstack": "Разобрать стек"
 }
 }

+ 66 - 42
mobile/assets/i18n/sk-SK.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Nepodarilo sa zmeniť názov albumu",
   "album_viewer_appbar_share_err_title": "Nepodarilo sa zmeniť názov albumu",
   "album_viewer_appbar_share_leave": "Opustiť album",
   "album_viewer_appbar_share_leave": "Opustiť album",
   "album_viewer_appbar_share_remove": "Odstrániť z albumu",
   "album_viewer_appbar_share_remove": "Odstrániť z albumu",
+  "album_viewer_appbar_share_to": "Zdieľať s",
   "album_viewer_page_share_add_users": "Pridať používateľov",
   "album_viewer_page_share_add_users": "Pridať používateľov",
   "all_people_page_title": "Ľudia",
   "all_people_page_title": "Ľudia",
   "all_videos_page_title": "Videá",
   "all_videos_page_title": "Videá",
+  "app_bar_signout_dialog_content": "Skutočne sa chcete odhlásiť?",
+  "app_bar_signout_dialog_ok": "Áno",
+  "app_bar_signout_dialog_title": "Odhlásiť sa",
   "archive_page_no_archived_assets": "Žiadne archivované médiá",
   "archive_page_no_archived_assets": "Žiadne archivované médiá",
   "archive_page_title": "Archív ({})",
   "archive_page_title": "Archív ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamické rozloženie",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamické rozloženie",
@@ -65,7 +69,7 @@
   "backup_controller_page_background_is_on": "Automatické zálohovanie na pozadí je zapnuté",
   "backup_controller_page_background_is_on": "Automatické zálohovanie na pozadí je zapnuté",
   "backup_controller_page_background_turn_off": "Vypnúť zálohovanie na pozadí",
   "backup_controller_page_background_turn_off": "Vypnúť zálohovanie na pozadí",
   "backup_controller_page_background_turn_on": "Povoliť zálohovanie na pozadí",
   "backup_controller_page_background_turn_on": "Povoliť zálohovanie na pozadí",
-  "backup_controller_page_background_wifi": "Len na WiFi",
+  "backup_controller_page_background_wifi": "Len cez WiFi",
   "backup_controller_page_backup": "Zálohovanie",
   "backup_controller_page_backup": "Zálohovanie",
   "backup_controller_page_backup_selected": "Vybrané: ",
   "backup_controller_page_backup_selected": "Vybrané: ",
   "backup_controller_page_backup_sub": "Zálohované fotografie a videa",
   "backup_controller_page_backup_sub": "Zálohované fotografie a videa",
@@ -86,7 +90,7 @@
   "backup_controller_page_status_off": "Automatické zálohovanie na popredí je vypnuté",
   "backup_controller_page_status_off": "Automatické zálohovanie na popredí je vypnuté",
   "backup_controller_page_status_on": "Automatické zálohovanie na popredí je zapnuté",
   "backup_controller_page_status_on": "Automatické zálohovanie na popredí je zapnuté",
   "backup_controller_page_storage_format": "{} z {} použitých",
   "backup_controller_page_storage_format": "{} z {} použitých",
-  "backup_controller_page_to_backup": "Albumy, ktoré sa majú zálohovať",
+  "backup_controller_page_to_backup": "Albumy ktoré budú zálohované",
   "backup_controller_page_total": "Celkom",
   "backup_controller_page_total": "Celkom",
   "backup_controller_page_total_sub": "Všetky jedinečné fotografie a videá z vybraných albumov",
   "backup_controller_page_total_sub": "Všetky jedinečné fotografie a videá z vybraných albumov",
   "backup_controller_page_turn_off": "Vypnúť zálohovanie na popredí",
   "backup_controller_page_turn_off": "Vypnúť zálohovanie na popredí",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Použitie vyrovnávacej pamäte",
   "cache_settings_statistics_title": "Použitie vyrovnávacej pamäte",
   "cache_settings_subtitle": "Ovládanie správania mobilnej aplikácie Immich v medzipamäti",
   "cache_settings_subtitle": "Ovládanie správania mobilnej aplikácie Immich v medzipamäti",
   "cache_settings_thumbnail_size": "Veľkosť vyrovnávacej pamäte náhľadov (položiek {})",
   "cache_settings_thumbnail_size": "Veľkosť vyrovnávacej pamäte náhľadov (položiek {})",
+  "cache_settings_tile_subtitle": "Ovládanie správania lokálneho úložiska",
+  "cache_settings_tile_title": "Lokálne úložisko",
   "cache_settings_title": "Nastavenia vyrovnávacej pamäte",
   "cache_settings_title": "Nastavenia vyrovnávacej pamäte",
   "change_password_form_confirm_password": "Potvrďte heslo",
   "change_password_form_confirm_password": "Potvrďte heslo",
   "change_password_form_description": "Dobrý deň, {firstName} {lastName},\n\nBuď sa do systému prihlasujete prvýkrát, alebo bola podaná žiadosť o zmenu hesla. Prosím, zadajte nové heslo nižšie.",
   "change_password_form_description": "Dobrý deň, {firstName} {lastName},\n\nBuď sa do systému prihlasujete prvýkrát, alebo bola podaná žiadosť o zmenu hesla. Prosím, zadajte nové heslo nižšie.",
@@ -125,15 +131,15 @@
   "control_bottom_app_bar_add_to_album": "Pridať do albumu",
   "control_bottom_app_bar_add_to_album": "Pridať do albumu",
   "control_bottom_app_bar_album_info": "{} položiek",
   "control_bottom_app_bar_album_info": "{} položiek",
   "control_bottom_app_bar_album_info_shared": "{} položiek - zdieľané",
   "control_bottom_app_bar_album_info_shared": "{} položiek - zdieľané",
-  "control_bottom_app_bar_archive": "Archív",
+  "control_bottom_app_bar_archive": "Archivovať",
   "control_bottom_app_bar_create_new_album": "Vytvoriť nový album",
   "control_bottom_app_bar_create_new_album": "Vytvoriť nový album",
   "control_bottom_app_bar_delete": "Vymazať",
   "control_bottom_app_bar_delete": "Vymazať",
   "control_bottom_app_bar_favorite": "Obľúbené",
   "control_bottom_app_bar_favorite": "Obľúbené",
   "control_bottom_app_bar_share": "Zdieľať",
   "control_bottom_app_bar_share": "Zdieľať",
   "control_bottom_app_bar_share_to": "Share To",
   "control_bottom_app_bar_share_to": "Share To",
-  "control_bottom_app_bar_stack": "Stack",
+  "control_bottom_app_bar_stack": "Zoskupenie",
   "control_bottom_app_bar_unarchive": "Odarchivovať",
   "control_bottom_app_bar_unarchive": "Odarchivovať",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Nahrať",
   "create_album_page_untitled": "Bez názvu",
   "create_album_page_untitled": "Bez názvu",
   "create_shared_album_page_create": "Vytvoriť",
   "create_shared_album_page_create": "Vytvoriť",
   "create_shared_album_page_share": "Zdieľať",
   "create_shared_album_page_share": "Zdieľať",
@@ -148,8 +154,8 @@
   "delete_dialog_cancel": "Zrušiť",
   "delete_dialog_cancel": "Zrušiť",
   "delete_dialog_ok": "Vymazať",
   "delete_dialog_ok": "Vymazať",
   "delete_dialog_title": "Vymazať natrvalo",
   "delete_dialog_title": "Vymazať natrvalo",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Ste si istí že chcete odstrániť tento zdieľaný odkaz?",
+  "delete_shared_link_dialog_title": "Odstrániť zdieľaný odkaz",
   "description_input_hint_text": "Pridať popis...",
   "description_input_hint_text": "Pridať popis...",
   "description_input_submit_error": "Chyba pri aktualizovaní popisu, zobrazte log pre viac detailov",
   "description_input_submit_error": "Chyba pri aktualizovaní popisu, zobrazte log pre viac detailov",
   "exif_bottom_sheet_description": "Pridať popis...",
   "exif_bottom_sheet_description": "Pridať popis...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "Pridané {added} položiek do albumu {album}. {failed} položiek už je v albume.",
   "home_page_add_to_album_conflicts": "Pridané {added} položiek do albumu {album}. {failed} položiek už je v albume.",
   "home_page_add_to_album_err_local": "Zatiaľ nie je možné pridať lokálne média do albumov, preskakuje sa",
   "home_page_add_to_album_err_local": "Zatiaľ nie je možné pridať lokálne média do albumov, preskakuje sa",
   "home_page_add_to_album_success": "Pridané {added} položky do albumu {album}.",
   "home_page_add_to_album_success": "Pridané {added} položky do albumu {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Zatiaľ nemožno archivovať lokálne médiá, preskakuje sa",
   "home_page_archive_err_local": "Zatiaľ nemožno archivovať lokálne médiá, preskakuje sa",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Vytváranie časovej osi",
   "home_page_building_timeline": "Vytváranie časovej osi",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Zatiaľ nie je možné zaradiť lokálne média medzi obľúbené, preskakuje sa",
   "home_page_favorite_err_local": "Zatiaľ nie je možné zaradiť lokálne média medzi obľúbené, preskakuje sa",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Ak aplikáciu používate prvý krát, nezabudnite si vybrať zálohované albumy, aby sa na časovej osi mohli nachádzať fotografie a videá z vybraných albumoch.",
   "home_page_first_time_notice": "Ak aplikáciu používate prvý krát, nezabudnite si vybrať zálohované albumy, aby sa na časovej osi mohli nachádzať fotografie a videá z vybraných albumoch.",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Naraz môžete nahrať len 30 médií, preskakujem...",
   "home_page_upload_err_limit": "Naraz môžete nahrať len 30 médií, preskakujem...",
   "image_viewer_page_state_provider_download_error": "Chyba sťahovania",
   "image_viewer_page_state_provider_download_error": "Chyba sťahovania",
   "image_viewer_page_state_provider_download_success": "Sťahovanie bolo úspešné",
   "image_viewer_page_state_provider_download_success": "Sťahovanie bolo úspešné",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "Chyba zdieľania",
   "library_page_albums": "Albumy",
   "library_page_albums": "Albumy",
   "library_page_archive": "Archív",
   "library_page_archive": "Archív",
   "library_page_device_albums": "Albumy v zariadení",
   "library_page_device_albums": "Albumy v zariadení",
@@ -179,8 +190,8 @@
   "library_page_new_album": "Nový album",
   "library_page_new_album": "Nový album",
   "library_page_sharing": "Zdieľanie",
   "library_page_sharing": "Zdieľanie",
   "library_page_sort_created": "Najnovšie vytvorené",
   "library_page_sort_created": "Najnovšie vytvorené",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Naposledy upravené",
+  "library_page_sort_most_recent_photo": "Najnovšia fotka",
   "library_page_sort_title": "Podľa názvu albumu",
   "library_page_sort_title": "Podľa názvu albumu",
   "login_disabled": "Prihlasovanie bolo vypnuté",
   "login_disabled": "Prihlasovanie bolo vypnuté",
   "login_form_api_exception": "Chyba API. Skontrolujte adresu URL servera a skúste to znova.",
   "login_form_api_exception": "Chyba API. Skontrolujte adresu URL servera a skúste to znova.",
@@ -218,7 +229,7 @@
   "map_settings_dialog_cancel": "Zrušiť",
   "map_settings_dialog_cancel": "Zrušiť",
   "map_settings_dialog_save": "Uložiť",
   "map_settings_dialog_save": "Uložiť",
   "map_settings_dialog_title": "Nastavenia máp",
   "map_settings_dialog_title": "Nastavenia máp",
-  "map_settings_include_show_archived": "Include Archived",
+  "map_settings_include_show_archived": "Zahrnúť archivované",
   "map_settings_only_relative_range": "Rozsah dátumu",
   "map_settings_only_relative_range": "Rozsah dátumu",
   "map_settings_only_show_favorites": "Zobraziť iba obľúbené",
   "map_settings_only_show_favorites": "Zobraziť iba obľúbené",
   "map_zoom_to_see_photos": "Oddiaľte priblíženie aby ste videli fotky",
   "map_zoom_to_see_photos": "Oddiaľte priblíženie aby ste videli fotky",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} už nebude mať prístup ku vašim fotkám.",
   "partner_page_stop_sharing_content": "{} už nebude mať prístup ku vašim fotkám.",
   "partner_page_stop_sharing_title": "Zastaviť zdieľanie vašich fotiek?",
   "partner_page_stop_sharing_title": "Zastaviť zdieľanie vašich fotiek?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Pokračovať aj tak",
   "permission_onboarding_continue_anyway": "Pokračovať aj tak",
   "permission_onboarding_get_started": "Začať",
   "permission_onboarding_get_started": "Začať",
   "permission_onboarding_go_to_settings": "Prejsť do nastavení",
   "permission_onboarding_go_to_settings": "Prejsť do nastavení",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich vyžaduje povolenie na prezeranie vašich fotografií a videí.",
   "permission_onboarding_request": "Immich vyžaduje povolenie na prezeranie vašich fotografií a videí.",
   "profile_drawer_app_logs": "Logy",
   "profile_drawer_app_logs": "Logy",
   "profile_drawer_client_server_up_to_date": "Klient a server sú aktuálne",
   "profile_drawer_client_server_up_to_date": "Klient a server sú aktuálne",
+  "profile_drawer_documentation": "Dokumentácia",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Nastavenia",
   "profile_drawer_settings": "Nastavenia",
   "profile_drawer_sign_out": "Odhlásiť sa",
   "profile_drawer_sign_out": "Odhlásiť sa",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Kôš",
   "recently_added_page_title": "Nedávno pridané",
   "recently_added_page_title": "Nedávno pridané",
   "search_bar_hint": "Prehľadajte svoje obrázky",
   "search_bar_hint": "Prehľadajte svoje obrázky",
   "search_page_categories": "Kategórie",
   "search_page_categories": "Kategórie",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Nepodarilo sa vytvoriť album",
   "select_user_for_sharing_page_err_album": "Nepodarilo sa vytvoriť album",
   "select_user_for_sharing_page_share_suggestions": "Návrhy",
   "select_user_for_sharing_page_share_suggestions": "Návrhy",
   "server_info_box_app_version": "Verzia aplikácie",
   "server_info_box_app_version": "Verzia aplikácie",
+  "server_info_box_server_url": "URL Serveru",
   "server_info_box_server_version": "Verzia servera",
   "server_info_box_server_version": "Verzia servera",
   "setting_image_viewer_help": "Prehliadač detailov najprv načíta malú miniatúru, potom načíta náhľad strednej veľkosti (ak je povolený) a nakoniec načíta originál (ak je povolený).",
   "setting_image_viewer_help": "Prehliadač detailov najprv načíta malú miniatúru, potom načíta náhľad strednej veľkosti (ak je povolený) a nakoniec načíta originál (ak je povolený).",
   "setting_image_viewer_original_subtitle": "Povolením umožníte načítať pôvodný obrázok v plnom rozlíšení (veľký!). Zakázaním znížite používania dát (v sieti, aj v dočasnej pamäte zariadenia).",
   "setting_image_viewer_original_subtitle": "Povolením umožníte načítať pôvodný obrázok v plnom rozlíšení (veľký!). Zakázaním znížite používania dát (v sieti, aj v dočasnej pamäte zariadenia).",
@@ -300,28 +315,37 @@
   "share_add_photos": "Pridať fotografie",
   "share_add_photos": "Pridať fotografie",
   "share_add_title": "Pridať názov",
   "share_add_title": "Pridať názov",
   "share_create_album": "Vytvoriť album",
   "share_create_album": "Vytvoriť album",
+  "shared_album_activities_input_disable": "Komentár je zakázaný",
+  "shared_album_activities_input_hint": "Napíšte niečo",
+  "shared_album_activity_remove_content": "Chcete vymazať túto aktivitu?",
+  "shared_album_activity_remove_title": "Vymazať aktivitu",
+  "shared_album_activity_setting_subtitle": "Nechajte ostatných reagovať",
+  "shared_album_activity_setting_title": "Komentáre a lajky",
   "share_dialog_preparing": "Pripravujem...",
   "share_dialog_preparing": "Pripravujem...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Zdieľané odkazy",
+  "shared_link_create_app_bar_title": "Vytvoriť odkaz na zdieľanie",
+  "shared_link_create_info": "Umožniť komukoľvek s odkazom zobraziť označené médiá",
+  "shared_link_create_submit_button": "Vytvoriť odkaz",
+  "shared_link_edit_allow_download": "Povoliť návštevníkom sťahovať médiá",
+  "shared_link_edit_allow_upload": "Povoliť návštevníkom pridávať médiá",
+  "shared_link_edit_app_bar_title": "Upraviť odkaz",
+  "shared_link_edit_change_expiry": "Zmeniť čas vypršania",
+  "shared_link_edit_description": "Popis",
+  "shared_link_edit_description_hint": "Zadajte popis zdieľania",
+  "shared_link_edit_expire_after": "Expiruje po",
+  "shared_link_edit_password": "Heslo",
+  "shared_link_edit_password_hint": "Zadajte heslo zdieľania",
+  "shared_link_edit_show_meta": "Zobraziť metadáta",
+  "shared_link_edit_submit_button": "Aktualizovať odkaz",
+  "shared_link_empty": "Zatiaľ nemáte žiadne zdieľané odkazy",
+  "shared_link_manage_links": "Spravovať zdieľané odkazy",
+  "share_done": "Hotovo",
   "share_invite": "Pozvať do albumu",
   "share_invite": "Pozvať do albumu",
   "sharing_page_album": "Zdieľané albumy",
   "sharing_page_album": "Zdieľané albumy",
   "sharing_page_description": "Vytvárajte zdieľané albumy a zdieľajte fotografie a videá s ľuďmi vo vašej sieti.",
   "sharing_page_description": "Vytvárajte zdieľané albumy a zdieľajte fotografie a videá s ľuďmi vo vašej sieti.",
   "sharing_page_empty_list": "Prázdny list",
   "sharing_page_empty_list": "Prázdny list",
   "sharing_silver_appbar_create_shared_album": "Vytvoriť zdieľaný album",
   "sharing_silver_appbar_create_shared_album": "Vytvoriť zdieľaný album",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Zdieľané odkazy",
   "sharing_silver_appbar_share_partner": "Zdieľať s partnerom",
   "sharing_silver_appbar_share_partner": "Zdieľať s partnerom",
   "tab_controller_nav_library": "Knižnica",
   "tab_controller_nav_library": "Knižnica",
   "tab_controller_nav_photos": "Fotografie",
   "tab_controller_nav_photos": "Fotografie",
@@ -338,18 +362,18 @@
   "theme_setting_three_stage_loading_subtitle": "Trojstupňové načítanie môže zvýšiť výkonnosť načítania, ale vedie k výrazne vyššiemu zaťaženiu siete.",
   "theme_setting_three_stage_loading_subtitle": "Trojstupňové načítanie môže zvýšiť výkonnosť načítania, ale vedie k výrazne vyššiemu zaťaženiu siete.",
   "theme_setting_three_stage_loading_title": "Povolenie trojstupňového načítavania",
   "theme_setting_three_stage_loading_title": "Povolenie trojstupňového načítavania",
   "translated_text_options": "Nastavenia",
   "translated_text_options": "Nastavenia",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
+  "trash_page_delete": "Vymazať",
+  "trash_page_delete_all": "Vymazať všetky",
+  "trash_page_empty_trash_btn": "Vyprázdniť kôš",
+  "trash_page_empty_trash_dialog_content": "Skutočne chcete vyprázdniť kôš? Tieto položky budú permanentne odstránené z Immichu",
   "trash_page_empty_trash_dialog_ok": "Ok",
   "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
+  "trash_page_info": "Médiá v koši sa permanentne odstránia po {} dňoch",
+  "trash_page_no_assets": "Žiadne médiá v koši",
+  "trash_page_restore": "Obnoviť",
+  "trash_page_restore_all": "Obnoviť všetky",
+  "trash_page_select_assets_btn": "Označiť médiá",
+  "trash_page_select_btn": "Označiť",
+  "trash_page_title": "Kôš ({})",
   "upload_dialog_cancel": "Zrušiť",
   "upload_dialog_cancel": "Zrušiť",
   "upload_dialog_info": "Chcete zálohovať zvolené médiá na server?",
   "upload_dialog_info": "Chcete zálohovať zvolené médiá na server?",
   "upload_dialog_ok": "Nahrať",
   "upload_dialog_ok": "Nahrať",
@@ -360,7 +384,7 @@
   "version_announcement_overlay_text_2": "nájdite si čas na návštevu ",
   "version_announcement_overlay_text_2": "nájdite si čas na návštevu ",
   "version_announcement_overlay_text_3": " a uistite sa, že vaša konfigurácia docker-compose a .env je aktuálna, aby ste predišli nesprávnej konfigurácii, najmä ak používate WatchTower alebo akýkoľvek mechanizmus, ktorý podporuje automatické aktualizácie serverových aplikácií.",
   "version_announcement_overlay_text_3": " a uistite sa, že vaša konfigurácia docker-compose a .env je aktuálna, aby ste predišli nesprávnej konfigurácii, najmä ak používate WatchTower alebo akýkoľvek mechanizmus, ktorý podporuje automatické aktualizácie serverových aplikácií.",
   "version_announcement_overlay_title": "K dispozícii je nová verzia servera \uD83C\uDF89",
   "version_announcement_overlay_title": "K dispozícii je nová verzia servera \uD83C\uDF89",
-  "viewer_remove_from_stack": "Remove from Stack",
-  "viewer_stack_use_as_main_asset": "Use as Main Asset",
-  "viewer_unstack": "Un-Stack"
+  "viewer_remove_from_stack": "Odstrániť zo zoskupenia",
+  "viewer_stack_use_as_main_asset": "Použiť ako hlavnú fotku",
+  "viewer_unstack": "Odskupiť"
 }
 }

+ 24 - 0
mobile/assets/i18n/sr-Cyrl.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Failed to change album title",
   "album_viewer_appbar_share_err_title": "Failed to change album title",
   "album_viewer_appbar_share_leave": "Leave album",
   "album_viewer_appbar_share_leave": "Leave album",
   "album_viewer_appbar_share_remove": "Remove from album",
   "album_viewer_appbar_share_remove": "Remove from album",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Add users",
   "album_viewer_page_share_add_users": "Add users",
   "all_people_page_title": "People",
   "all_people_page_title": "People",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_title": "Archive ({})",
   "archive_page_title": "Archive ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Caching Settings",
   "cache_settings_title": "Caching Settings",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Building the timeline",
   "home_page_building_timeline": "Building the timeline",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_success": "Download Success",
   "image_viewer_page_state_provider_download_success": "Download Success",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_go_to_settings": "Go to settings",
   "permission_onboarding_go_to_settings": "Go to settings",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Settings",
   "profile_drawer_settings": "Settings",
   "profile_drawer_sign_out": "Sign Out",
   "profile_drawer_sign_out": "Sign Out",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "server_info_box_app_version": "App Version",
   "server_info_box_app_version": "App Version",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Server Version",
   "server_info_box_server_version": "Server Version",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
@@ -300,6 +315,12 @@
   "share_add_photos": "Add photos",
   "share_add_photos": "Add photos",
   "share_add_title": "Add a title",
   "share_add_title": "Add a title",
   "share_create_album": "Create album",
   "share_create_album": "Create album",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Preparing...",
   "share_dialog_preparing": "Preparing...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 24 - 0
mobile/assets/i18n/sr-Latn.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Neuspešno menjanje naziva albuma",
   "album_viewer_appbar_share_err_title": "Neuspešno menjanje naziva albuma",
   "album_viewer_appbar_share_leave": "Izađi iz albuma",
   "album_viewer_appbar_share_leave": "Izađi iz albuma",
   "album_viewer_appbar_share_remove": "Obriši iz albuma",
   "album_viewer_appbar_share_remove": "Obriši iz albuma",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Dodaj korisnike",
   "album_viewer_page_share_add_users": "Dodaj korisnike",
   "all_people_page_title": "People",
   "all_people_page_title": "People",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_title": "Archive ({})",
   "archive_page_title": "Archive ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dinamični raspored",
   "asset_list_layout_settings_dynamic_layout_title": "Dinamični raspored",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Iskorišćena keš memorija",
   "cache_settings_statistics_title": "Iskorišćena keš memorija",
   "cache_settings_subtitle": "Kontrole za keš memoriju mobilne aplikacije Immich",
   "cache_settings_subtitle": "Kontrole za keš memoriju mobilne aplikacije Immich",
   "cache_settings_thumbnail_size": "Keš memorija koju zauzimaju minijature ({} stavki)",
   "cache_settings_thumbnail_size": "Keš memorija koju zauzimaju minijature ({} stavki)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Opcije za keširanje",
   "cache_settings_title": "Opcije za keširanje",
   "change_password_form_confirm_password": "Ponovo unesite šifru",
   "change_password_form_confirm_password": "Ponovo unesite šifru",
   "change_password_form_description": "Ćao, {firstName}, {lastName}\n\nOvo je verovatno Vaše prvo pristupanje sistemu, ili je podnešen zahtev za promenu šifre. Molimo Vas, unesite novu šifru ispod",
   "change_password_form_description": "Ćao, {firstName}, {lastName}\n\nOvo je verovatno Vaše prvo pristupanje sistemu, ili je podnešen zahtev za promenu šifre. Molimo Vas, unesite novu šifru ispod",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Dodat {added} zapis u album {album}. {failed} zapisi su već u albumu ",
   "home_page_add_to_album_conflicts": "Dodat {added} zapis u album {album}. {failed} zapisi su već u albumu ",
   "home_page_add_to_album_err_local": "Trenutno nemoguće dodati lokalne zapise u albume, preskacu se",
   "home_page_add_to_album_err_local": "Trenutno nemoguće dodati lokalne zapise u albume, preskacu se",
   "home_page_add_to_album_success": "Dodate {added} stavke u album {album}.",
   "home_page_add_to_album_success": "Dodate {added} stavke u album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Kreiranje hronološke linije",
   "home_page_building_timeline": "Kreiranje hronološke linije",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Trenutno nije moguce dodati lokalne zapise u favorite, preskacu se",
   "home_page_favorite_err_local": "Trenutno nije moguce dodati lokalne zapise u favorite, preskacu se",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Ako je ovo prvi put da koristite aplikaciju, molimo Vas da odaberete albume koje želite da sačuvate",
   "home_page_first_time_notice": "Ako je ovo prvi put da koristite aplikaciju, molimo Vas da odaberete albume koje želite da sačuvate",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "image_viewer_page_state_provider_download_error": "Preuzimanje Neuspešno",
   "image_viewer_page_state_provider_download_error": "Preuzimanje Neuspešno",
   "image_viewer_page_state_provider_download_success": "Preuzimanje Uspešno",
   "image_viewer_page_state_provider_download_success": "Preuzimanje Uspešno",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_go_to_settings": "Go to settings",
   "permission_onboarding_go_to_settings": "Go to settings",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "profile_drawer_app_logs": "Evidencija",
   "profile_drawer_app_logs": "Evidencija",
   "profile_drawer_client_server_up_to_date": "Klijent i server su najnovije verzije",
   "profile_drawer_client_server_up_to_date": "Klijent i server su najnovije verzije",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Opcije",
   "profile_drawer_settings": "Opcije",
   "profile_drawer_sign_out": "Odjavi se",
   "profile_drawer_sign_out": "Odjavi se",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Neuspešno kreiranje albuma",
   "select_user_for_sharing_page_err_album": "Neuspešno kreiranje albuma",
   "select_user_for_sharing_page_share_suggestions": "Sugestije",
   "select_user_for_sharing_page_share_suggestions": "Sugestije",
   "server_info_box_app_version": "Verzija Aplikacije",
   "server_info_box_app_version": "Verzija Aplikacije",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Verzija Servera",
   "server_info_box_server_version": "Verzija Servera",
   "setting_image_viewer_help": "Detaljno pregledanje prvo učitava minijaturu, pa srednju, pa original. (Ako te opcije uključene)",
   "setting_image_viewer_help": "Detaljno pregledanje prvo učitava minijaturu, pa srednju, pa original. (Ako te opcije uključene)",
   "setting_image_viewer_original_subtitle": "Aktiviraj učitavanje slika u punoj rezoluciji (Velika!). Deaktivacijom ove stavke možeš da smanjiš potrošnju interneta i zauzetog prostora na uređaju.",
   "setting_image_viewer_original_subtitle": "Aktiviraj učitavanje slika u punoj rezoluciji (Velika!). Deaktivacijom ove stavke možeš da smanjiš potrošnju interneta i zauzetog prostora na uređaju.",
@@ -300,6 +315,12 @@
   "share_add_photos": "Dodaj fotografije",
   "share_add_photos": "Dodaj fotografije",
   "share_add_title": "Dodaj naslov",
   "share_add_title": "Dodaj naslov",
   "share_create_album": "Napravi album",
   "share_create_album": "Napravi album",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Pripremanje...",
   "share_dialog_preparing": "Pripremanje...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 24 - 0
mobile/assets/i18n/sv-FI.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Failed to change album title",
   "album_viewer_appbar_share_err_title": "Failed to change album title",
   "album_viewer_appbar_share_leave": "Leave album",
   "album_viewer_appbar_share_leave": "Leave album",
   "album_viewer_appbar_share_remove": "Remove from album",
   "album_viewer_appbar_share_remove": "Remove from album",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Add users",
   "album_viewer_page_share_add_users": "Add users",
   "all_people_page_title": "People",
   "all_people_page_title": "People",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_title": "Archive ({})",
   "archive_page_title": "Archive ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Caching Settings",
   "cache_settings_title": "Caching Settings",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Building the timeline",
   "home_page_building_timeline": "Building the timeline",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_success": "Download Success",
   "image_viewer_page_state_provider_download_success": "Download Success",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_go_to_settings": "Go to settings",
   "permission_onboarding_go_to_settings": "Go to settings",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Settings",
   "profile_drawer_settings": "Settings",
   "profile_drawer_sign_out": "Sign Out",
   "profile_drawer_sign_out": "Sign Out",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "server_info_box_app_version": "App Version",
   "server_info_box_app_version": "App Version",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Server Version",
   "server_info_box_server_version": "Server Version",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
@@ -300,6 +315,12 @@
   "share_add_photos": "Add photos",
   "share_add_photos": "Add photos",
   "share_add_title": "Add a title",
   "share_add_title": "Add a title",
   "share_create_album": "Create album",
   "share_create_album": "Create album",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Preparing...",
   "share_dialog_preparing": "Preparing...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 24 - 0
mobile/assets/i18n/sv-SE.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Kunde inte ändra albumtitel",
   "album_viewer_appbar_share_err_title": "Kunde inte ändra albumtitel",
   "album_viewer_appbar_share_leave": "Lämna album",
   "album_viewer_appbar_share_leave": "Lämna album",
   "album_viewer_appbar_share_remove": "Ta bort från album",
   "album_viewer_appbar_share_remove": "Ta bort från album",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Lägg till användare",
   "album_viewer_page_share_add_users": "Lägg till användare",
   "all_people_page_title": "People",
   "all_people_page_title": "People",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_title": "Arkivera ({})",
   "archive_page_title": "Arkivera ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamisk layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamisk layout",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Cacheförbrukning",
   "cache_settings_statistics_title": "Cacheförbrukning",
   "cache_settings_subtitle": "Hantera cachebeteendet för Immich-appen.",
   "cache_settings_subtitle": "Hantera cachebeteendet för Immich-appen.",
   "cache_settings_thumbnail_size": "Storlek på cacheminnet ({} bilder och videor)",
   "cache_settings_thumbnail_size": "Storlek på cacheminnet ({} bilder och videor)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Cache Inställningar",
   "cache_settings_title": "Cache Inställningar",
   "change_password_form_confirm_password": "Bekräfta lösenord",
   "change_password_form_confirm_password": "Bekräfta lösenord",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Lade till {added} foton och videor i albumet {album}. {failed} foton och videor finns redan i albumet.",
   "home_page_add_to_album_conflicts": "Lade till {added} foton och videor i albumet {album}. {failed} foton och videor finns redan i albumet.",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_success": "Lade till {added} foton och videor i albumet {album}.",
   "home_page_add_to_album_success": "Lade till {added} foton och videor i albumet {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Bygger tidslinjen",
   "home_page_building_timeline": "Bygger tidslinjen",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Om det här är första gången du använder appen, välj ett eller flera backup-album så att tidslinjen kan fyllas med foton och videor från albumen.",
   "home_page_first_time_notice": "Om det här är första gången du använder appen, välj ett eller flera backup-album så att tidslinjen kan fyllas med foton och videor från albumen.",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_success": "Download Success",
   "image_viewer_page_state_provider_download_success": "Download Success",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_title": "Sluta dela dina foton?",
   "partner_page_stop_sharing_title": "Sluta dela dina foton?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_get_started": "Kom igång",
   "permission_onboarding_get_started": "Kom igång",
   "permission_onboarding_go_to_settings": "Gå till inställningar",
   "permission_onboarding_go_to_settings": "Gå till inställningar",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich kräver tillstånd för att se dina foton och videor.",
   "permission_onboarding_request": "Immich kräver tillstånd för att se dina foton och videor.",
   "profile_drawer_app_logs": "Loggar",
   "profile_drawer_app_logs": "Loggar",
   "profile_drawer_client_server_up_to_date": "Klient och server är uppdaterade",
   "profile_drawer_client_server_up_to_date": "Klient och server är uppdaterade",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Inställningar",
   "profile_drawer_settings": "Inställningar",
   "profile_drawer_sign_out": "Logga ut",
   "profile_drawer_sign_out": "Logga ut",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Kunde inte skapa nytt album",
   "select_user_for_sharing_page_err_album": "Kunde inte skapa nytt album",
   "select_user_for_sharing_page_share_suggestions": "Förslag",
   "select_user_for_sharing_page_share_suggestions": "Förslag",
   "server_info_box_app_version": "App version",
   "server_info_box_app_version": "App version",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Server version",
   "server_info_box_server_version": "Server version",
   "setting_image_viewer_help": "Detaljerad vy laddar miniatyrer först. Efter detta laddas den medelstora förhandsgranskningen av bilden (om detta är aktiverat), och visar slutligen originalet (om detta är aktiverat).",
   "setting_image_viewer_help": "Detaljerad vy laddar miniatyrer först. Efter detta laddas den medelstora förhandsgranskningen av bilden (om detta är aktiverat), och visar slutligen originalet (om detta är aktiverat).",
   "setting_image_viewer_original_subtitle": "Aktivera för att ladda originalbilden i full storlek (stor!). Inaktivera för att minska dataanvändningen (både i nätverket och för enhetscache).",
   "setting_image_viewer_original_subtitle": "Aktivera för att ladda originalbilden i full storlek (stor!). Inaktivera för att minska dataanvändningen (både i nätverket och för enhetscache).",
@@ -300,6 +315,12 @@
   "share_add_photos": "Lägg till foton",
   "share_add_photos": "Lägg till foton",
   "share_add_title": "Lägg till en titel",
   "share_add_title": "Lägg till en titel",
   "share_create_album": "Skapa album",
   "share_create_album": "Skapa album",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Förbereder...",
   "share_dialog_preparing": "Förbereder...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 24 - 0
mobile/assets/i18n/th-TH.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "เปลี่ยนชื่ออัลบั้มไม่สำเร็จ",
   "album_viewer_appbar_share_err_title": "เปลี่ยนชื่ออัลบั้มไม่สำเร็จ",
   "album_viewer_appbar_share_leave": "ออกจากอัลบั้ม",
   "album_viewer_appbar_share_leave": "ออกจากอัลบั้ม",
   "album_viewer_appbar_share_remove": "ลบออกจากอัลบั้ม",
   "album_viewer_appbar_share_remove": "ลบออกจากอัลบั้ม",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "เพิ่มผู้ใช้งาน",
   "album_viewer_page_share_add_users": "เพิ่มผู้ใช้งาน",
   "all_people_page_title": "ผู้คน",
   "all_people_page_title": "ผู้คน",
   "all_videos_page_title": "วิดีโอ",
   "all_videos_page_title": "วิดีโอ",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "ไม่พบทรัพยากรในที่เก็บถาวร",
   "archive_page_no_archived_assets": "ไม่พบทรัพยากรในที่เก็บถาวร",
   "archive_page_title": "เก็บถาวร ({})",
   "archive_page_title": "เก็บถาวร ({})",
   "asset_list_layout_settings_dynamic_layout_title": "แผนผังปรับตัว",
   "asset_list_layout_settings_dynamic_layout_title": "แผนผังปรับตัว",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "การใช้งานแคช",
   "cache_settings_statistics_title": "การใช้งานแคช",
   "cache_settings_subtitle": "ควบคุมพฤติกรรมการแคชของแอปพลิเคชัน Immich",
   "cache_settings_subtitle": "ควบคุมพฤติกรรมการแคชของแอปพลิเคชัน Immich",
   "cache_settings_thumbnail_size": "ขนาดแคชรูปย่อ ({} ทรัพยากร)",
   "cache_settings_thumbnail_size": "ขนาดแคชรูปย่อ ({} ทรัพยากร)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "ตั้งค่าแคช",
   "cache_settings_title": "ตั้งค่าแคช",
   "change_password_form_confirm_password": "ยืนยันรหัสผ่าน",
   "change_password_form_confirm_password": "ยืนยันรหัสผ่าน",
   "change_password_form_description": "สวัสดี {firstName} {lastName},\n\nครั้งนี้อาจจะเป็นครั้งแรกที่คุณเข้าสู่ระบบ หรือมีคำขอเพื่อที่จะเปลี่ยนรหัสผ่านของคุI กรุณาเพิ่มรหัสผ่านใหม่ข้างล่าง",
   "change_password_form_description": "สวัสดี {firstName} {lastName},\n\nครั้งนี้อาจจะเป็นครั้งแรกที่คุณเข้าสู่ระบบ หรือมีคำขอเพื่อที่จะเปลี่ยนรหัสผ่านของคุI กรุณาเพิ่มรหัสผ่านใหม่ข้างล่าง",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "เพิ่ม {added} ทรัพยากรเข้าอัลบั้ม {album}. {failed} ทรัพยากรอยู่ในอัลบั้มอยู่แล้ว",
   "home_page_add_to_album_conflicts": "เพิ่ม {added} ทรัพยากรเข้าอัลบั้ม {album}. {failed} ทรัพยากรอยู่ในอัลบั้มอยู่แล้ว",
   "home_page_add_to_album_err_local": " ไม่สามารถเพิ่มทรัพยากรบนเครื่องเข้าอัลบั้ม กำลังข้าม",
   "home_page_add_to_album_err_local": " ไม่สามารถเพิ่มทรัพยากรบนเครื่องเข้าอัลบั้ม กำลังข้าม",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "ไม่สามารถเก็บถาวรในขณะนี้ กำลังข้าม",
   "home_page_archive_err_local": "ไม่สามารถเก็บถาวรในขณะนี้ กำลังข้าม",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "กำลังสร้าง timeline",
   "home_page_building_timeline": "กำลังสร้าง timeline",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": " ไม่สามารถตั้งทรัพยากรบนเครื่องเป็นรายการโปรด กำลังข้าม",
   "home_page_favorite_err_local": " ไม่สามารถตั้งทรัพยากรบนเครื่องเป็นรายการโปรด กำลังข้าม",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "ถ้าครั้งนี้เป็นครั้งแรกที่ใช้แอปนี้ กรุณาเลือกอัลบั้มที่จะสำรองข้อมูล ไทม์ไลน์จะได้เพิ่มรูปภาพและวิดีโอที่อยู่ในอัลบั้ม",
   "home_page_first_time_notice": "ถ้าครั้งนี้เป็นครั้งแรกที่ใช้แอปนี้ กรุณาเลือกอัลบั้มที่จะสำรองข้อมูล ไทม์ไลน์จะได้เพิ่มรูปภาพและวิดีโอที่อยู่ในอัลบั้ม",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "สามารถอัพโหลดได้มากสุดครั้งละ 30 ทรัพยากร กำลังข้าม",
   "home_page_upload_err_limit": "สามารถอัพโหลดได้มากสุดครั้งละ 30 ทรัพยากร กำลังข้าม",
   "image_viewer_page_state_provider_download_error": "ดาวน์โหลดผิดพลาด",
   "image_viewer_page_state_provider_download_error": "ดาวน์โหลดผิดพลาด",
   "image_viewer_page_state_provider_download_success": "ดาวน์โหลดสำเร็จ",
   "image_viewer_page_state_provider_download_success": "ดาวน์โหลดสำเร็จ",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} จะไม่สามารถเข้าถึงรูปภาพของคุณ",
   "partner_page_stop_sharing_content": "{} จะไม่สามารถเข้าถึงรูปภาพของคุณ",
   "partner_page_stop_sharing_title": "หยุดแชร์รูปภาพ?",
   "partner_page_stop_sharing_title": "หยุดแชร์รูปภาพ?",
   "partner_page_title": "พันธมิตร",
   "partner_page_title": "พันธมิตร",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "ดำเนินการต่อ",
   "permission_onboarding_continue_anyway": "ดำเนินการต่อ",
   "permission_onboarding_get_started": "เริ่มต้น",
   "permission_onboarding_get_started": "เริ่มต้น",
   "permission_onboarding_go_to_settings": "ไปยังการตั้งค่า",
   "permission_onboarding_go_to_settings": "ไปยังการตั้งค่า",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich จำเป็นจะต้องได้รับสิทธิ์ดูรูปภาพและวิดีโอ",
   "permission_onboarding_request": "Immich จำเป็นจะต้องได้รับสิทธิ์ดูรูปภาพและวิดีโอ",
   "profile_drawer_app_logs": "Log",
   "profile_drawer_app_logs": "Log",
   "profile_drawer_client_server_up_to_date": "ไคลเอนต์และเซิร์ฟเวอร์เป็นปัจจุบัน",
   "profile_drawer_client_server_up_to_date": "ไคลเอนต์และเซิร์ฟเวอร์เป็นปัจจุบัน",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Settings",
   "profile_drawer_settings": "Settings",
   "profile_drawer_sign_out": "ออกจากระบบ",
   "profile_drawer_sign_out": "ออกจากระบบ",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "สร้างอัลบั้มล้มเหลว",
   "select_user_for_sharing_page_err_album": "สร้างอัลบั้มล้มเหลว",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "server_info_box_app_version": "เวอร์ชั่นแอพ",
   "server_info_box_app_version": "เวอร์ชั่นแอพ",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "เวอร์ชั้นเซิร์ฟเวอร์",
   "server_info_box_server_version": "เวอร์ชั้นเซิร์ฟเวอร์",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
@@ -300,6 +315,12 @@
   "share_add_photos": "เพิ่มรูปภาพ",
   "share_add_photos": "เพิ่มรูปภาพ",
   "share_add_title": "เพิ่มชื่อ",
   "share_add_title": "เพิ่มชื่อ",
   "share_create_album": "สร้างอัลบั้ม",
   "share_create_album": "สร้างอัลบั้ม",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "กำลังเตรียม...",
   "share_dialog_preparing": "กำลังเตรียม...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 24 - 0
mobile/assets/i18n/uk-UA.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Не вдалося змінити назву альбому",
   "album_viewer_appbar_share_err_title": "Не вдалося змінити назву альбому",
   "album_viewer_appbar_share_leave": "Вийти з альбому",
   "album_viewer_appbar_share_leave": "Вийти з альбому",
   "album_viewer_appbar_share_remove": "Видалити з альбому",
   "album_viewer_appbar_share_remove": "Видалити з альбому",
+  "album_viewer_appbar_share_to": "Share To",
   "album_viewer_page_share_add_users": "Додати користувачів",
   "album_viewer_page_share_add_users": "Додати користувачів",
   "all_people_page_title": "Люди",
   "all_people_page_title": "Люди",
   "all_videos_page_title": "Відео",
   "all_videos_page_title": "Відео",
+  "app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
+  "app_bar_signout_dialog_ok": "Yes",
+  "app_bar_signout_dialog_title": "Sign out",
   "archive_page_no_archived_assets": "Немає архівних елементів",
   "archive_page_no_archived_assets": "Немає архівних елементів",
   "archive_page_title": "Архів ({})",
   "archive_page_title": "Архів ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Динамічне компонування",
   "asset_list_layout_settings_dynamic_layout_title": "Динамічне компонування",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Використання кешу",
   "cache_settings_statistics_title": "Використання кешу",
   "cache_settings_subtitle": "Контролює кешування у мобільному застосунку",
   "cache_settings_subtitle": "Контролює кешування у мобільному застосунку",
   "cache_settings_thumbnail_size": "Розмір кешованих мініатюр ({} елементи)",
   "cache_settings_thumbnail_size": "Розмір кешованих мініатюр ({} елементи)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "Local Storage",
   "cache_settings_title": "Налаштування Кешування",
   "cache_settings_title": "Налаштування Кешування",
   "change_password_form_confirm_password": "Підтвердити пароль",
   "change_password_form_confirm_password": "Підтвердити пароль",
   "change_password_form_description": "Привіт {firstName} {lastName},\n\nВи або або вперше входите у систему, або було зроблено запит на зміну вашого пароля. \nВведіть ваш новий пароль.",
   "change_password_form_description": "Привіт {firstName} {lastName},\n\nВи або або вперше входите у систему, або було зроблено запит на зміну вашого пароля. \nВведіть ваш новий пароль.",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Додано {added} елементів у альбом {album}. {failed} елементів вже було в альбомі.",
   "home_page_add_to_album_conflicts": "Додано {added} елементів у альбом {album}. {failed} елементів вже було в альбомі.",
   "home_page_add_to_album_err_local": "Неможливо додати локальні елементи до альбомів, пропущено",
   "home_page_add_to_album_err_local": "Неможливо додати локальні елементи до альбомів, пропущено",
   "home_page_add_to_album_success": "Додано {added} елементів у альбом {album}.",
   "home_page_add_to_album_success": "Додано {added} елементів у альбом {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Поки що неможливо заархівувати локальні елементи, пропущено",
   "home_page_archive_err_local": "Поки що неможливо заархівувати локальні елементи, пропущено",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Побудова хронології",
   "home_page_building_timeline": "Побудова хронології",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Неможливо отримати улюблені локальні елементи, пропущено",
   "home_page_favorite_err_local": "Неможливо отримати улюблені локальні елементи, пропущено",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "Якщо ви вперше користуєтеся програмою, переконайтеся, що ви вибрали альбоми для резервування, щоб могти заповнювати хронологію знімків та відео в альбомах.",
   "home_page_first_time_notice": "Якщо ви вперше користуєтеся програмою, переконайтеся, що ви вибрали альбоми для резервування, щоб могти заповнювати хронологію знімків та відео в альбомах.",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Можна вантажити не більше 30 елементів водночас, пропущено",
   "home_page_upload_err_limit": "Можна вантажити не більше 30 елементів водночас, пропущено",
   "image_viewer_page_state_provider_download_error": "Помилка завантаження",
   "image_viewer_page_state_provider_download_error": "Помилка завантаження",
   "image_viewer_page_state_provider_download_success": "Усіпшно завантажено",
   "image_viewer_page_state_provider_download_success": "Усіпшно завантажено",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} втратить доступ до ваших знімків.",
   "partner_page_stop_sharing_content": "{} втратить доступ до ваших знімків.",
   "partner_page_stop_sharing_title": "Припинити надання ваших знімків?",
   "partner_page_stop_sharing_title": "Припинити надання ваших знімків?",
   "partner_page_title": "Партнер",
   "partner_page_title": "Партнер",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Все одно продовжити",
   "permission_onboarding_continue_anyway": "Все одно продовжити",
   "permission_onboarding_get_started": "Розпочати",
   "permission_onboarding_get_started": "Розпочати",
   "permission_onboarding_go_to_settings": "Перейти до налаштувань",
   "permission_onboarding_go_to_settings": "Перейти до налаштувань",
@@ -250,6 +262,8 @@
   "permission_onboarding_request": "Immich потребує доступу до ваших знімків та відео.",
   "permission_onboarding_request": "Immich потребує доступу до ваших знімків та відео.",
   "profile_drawer_app_logs": "Журнал",
   "profile_drawer_app_logs": "Журнал",
   "profile_drawer_client_server_up_to_date": "Клієнт та Сервер — актуальні",
   "profile_drawer_client_server_up_to_date": "Клієнт та Сервер — актуальні",
+  "profile_drawer_documentation": "Documentation",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Налаштування",
   "profile_drawer_settings": "Налаштування",
   "profile_drawer_sign_out": "Вийти",
   "profile_drawer_sign_out": "Вийти",
   "profile_drawer_trash": "Trash",
   "profile_drawer_trash": "Trash",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Не вдалося створити альбом",
   "select_user_for_sharing_page_err_album": "Не вдалося створити альбом",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "select_user_for_sharing_page_share_suggestions": "Suggestions",
   "server_info_box_app_version": "App Version",
   "server_info_box_app_version": "App Version",
+  "server_info_box_server_url": "Server URL",
   "server_info_box_server_version": "Server Version",
   "server_info_box_server_version": "Server Version",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
@@ -300,6 +315,12 @@
   "share_add_photos": "Додати знімки",
   "share_add_photos": "Додати знімки",
   "share_add_title": "Додати назву",
   "share_add_title": "Додати назву",
   "share_create_album": "Створити альбом",
   "share_create_album": "Створити альбом",
+  "shared_album_activities_input_disable": "Comment is disabled",
+  "shared_album_activities_input_hint": "Say something",
+  "shared_album_activity_remove_content": "Do you want to delete this activity?",
+  "shared_album_activity_remove_title": "Delete Activity",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "Comments & likes",
   "share_dialog_preparing": "Підготовка...",
   "share_dialog_preparing": "Підготовка...",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_app_bar_title": "Shared Links",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
@@ -311,6 +332,9 @@
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_change_expiry": "Change expiration time",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description": "Description",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "Password",
+  "shared_link_edit_password_hint": "Enter the share password",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_show_meta": "Show metadata",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_edit_submit_button": "Update link",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",

+ 79 - 55
mobile/assets/i18n/vi-VN.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "Failed to change album title",
   "album_viewer_appbar_share_err_title": "Failed to change album title",
   "album_viewer_appbar_share_leave": "Leave album",
   "album_viewer_appbar_share_leave": "Leave album",
   "album_viewer_appbar_share_remove": "Remove from album",
   "album_viewer_appbar_share_remove": "Remove from album",
+  "album_viewer_appbar_share_to": "Chia sẻ với",
   "album_viewer_page_share_add_users": "Add users",
   "album_viewer_page_share_add_users": "Add users",
-  "all_people_page_title": "People",
+  "all_people_page_title": "Mọi người",
   "all_videos_page_title": "Videos",
   "all_videos_page_title": "Videos",
+  "app_bar_signout_dialog_content": "Bạn có muốn đăng xuất?",
+  "app_bar_signout_dialog_ok": "Có",
+  "app_bar_signout_dialog_title": "Đăng xuất",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_no_archived_assets": "No archived assets found",
   "archive_page_title": "Archive ({})",
   "archive_page_title": "Archive ({})",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
   "asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
@@ -69,7 +73,7 @@
   "backup_controller_page_backup": "Backup",
   "backup_controller_page_backup": "Backup",
   "backup_controller_page_backup_selected": "Selected: ",
   "backup_controller_page_backup_selected": "Selected: ",
   "backup_controller_page_backup_sub": "Backed up photos and videos",
   "backup_controller_page_backup_sub": "Backed up photos and videos",
-  "backup_controller_page_cancel": "Cancel",
+  "backup_controller_page_cancel": "Từ chối",
   "backup_controller_page_created": "Created on: {}",
   "backup_controller_page_created": "Created on: {}",
   "backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
   "backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
   "backup_controller_page_excluded": "Excluded: ",
   "backup_controller_page_excluded": "Excluded: ",
@@ -95,10 +99,10 @@
   "backup_err_only_album": "Cannot remove the only album",
   "backup_err_only_album": "Cannot remove the only album",
   "backup_info_card_assets": "assets",
   "backup_info_card_assets": "assets",
   "backup_manual_cancelled": "Cancelled",
   "backup_manual_cancelled": "Cancelled",
-  "backup_manual_failed": "Failed",
+  "backup_manual_failed": "Thất bại",
   "backup_manual_in_progress": "Upload already in progress. Try after sometime",
   "backup_manual_in_progress": "Upload already in progress. Try after sometime",
-  "backup_manual_success": "Success",
-  "backup_manual_title": "Upload status",
+  "backup_manual_success": "Thành công",
+  "backup_manual_title": "Trạng thái tải lên",
   "cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
   "cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
   "cache_settings_clear_cache_button": "Clear cache",
   "cache_settings_clear_cache_button": "Clear cache",
   "cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
   "cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_statistics_title": "Cache usage",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
   "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
+  "cache_settings_tile_subtitle": "Kiểm soát cách xử lý lưu trữ cục bộ",
+  "cache_settings_tile_title": "Lưu trữ cục bộ",
   "cache_settings_title": "Caching Settings",
   "cache_settings_title": "Caching Settings",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_confirm_password": "Confirm Password",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
   "change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
@@ -130,10 +136,10 @@
   "control_bottom_app_bar_delete": "Delete",
   "control_bottom_app_bar_delete": "Delete",
   "control_bottom_app_bar_favorite": "Favorite",
   "control_bottom_app_bar_favorite": "Favorite",
   "control_bottom_app_bar_share": "Share",
   "control_bottom_app_bar_share": "Share",
-  "control_bottom_app_bar_share_to": "Share To",
+  "control_bottom_app_bar_share_to": "Chia sẻ với",
   "control_bottom_app_bar_stack": "Stack",
   "control_bottom_app_bar_stack": "Stack",
   "control_bottom_app_bar_unarchive": "Unarchive",
   "control_bottom_app_bar_unarchive": "Unarchive",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "Tải lên",
   "create_album_page_untitled": "Untitled",
   "create_album_page_untitled": "Untitled",
   "create_shared_album_page_create": "Create",
   "create_shared_album_page_create": "Create",
   "create_shared_album_page_share": "Share",
   "create_shared_album_page_share": "Share",
@@ -145,11 +151,11 @@
   "daily_title_text_date_year": "E, MMM dd, yyyy",
   "daily_title_text_date_year": "E, MMM dd, yyyy",
   "date_format": "E, LLL d, y • h:mm a",
   "date_format": "E, LLL d, y • h:mm a",
   "delete_dialog_alert": "These items will be permanently deleted from Immich and from your device",
   "delete_dialog_alert": "These items will be permanently deleted from Immich and from your device",
-  "delete_dialog_cancel": "Cancel",
+  "delete_dialog_cancel": "Từ chối",
   "delete_dialog_ok": "Delete",
   "delete_dialog_ok": "Delete",
   "delete_dialog_title": "Delete Permanently",
   "delete_dialog_title": "Delete Permanently",
-  "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_content": "Bạn có muốn xóa liên kết đã chia sẻ này không?",
+  "delete_shared_link_dialog_title": "Xoá liên kết đã chia sẻ",
   "description_input_hint_text": "Add description...",
   "description_input_hint_text": "Add description...",
   "description_input_submit_error": "Error updating description, check the log for more details",
   "description_input_submit_error": "Error updating description, check the log for more details",
   "exif_bottom_sheet_description": "Add Description...",
   "exif_bottom_sheet_description": "Add Description...",
@@ -164,10 +170,15 @@
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
   "home_page_add_to_album_success": "Added {added} assets to album {album}.",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
   "home_page_archive_err_local": "Can not archive local assets yet, skipping",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "Building the timeline",
   "home_page_building_timeline": "Building the timeline",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
   "home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
   "home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_error": "Download Error",
   "image_viewer_page_state_provider_download_success": "Download Success",
   "image_viewer_page_state_provider_download_success": "Download Success",
@@ -179,8 +190,8 @@
   "library_page_new_album": "New album",
   "library_page_new_album": "New album",
   "library_page_sharing": "Sharing",
   "library_page_sharing": "Sharing",
   "library_page_sort_created": "Most recently created",
   "library_page_sort_created": "Most recently created",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "Sửa đổi lần cuối",
+  "library_page_sort_most_recent_photo": "Ảnh gần đây nhất",
   "library_page_sort_title": "Album title",
   "library_page_sort_title": "Album title",
   "login_disabled": "Login has been disabled",
   "login_disabled": "Login has been disabled",
   "login_form_api_exception": "API exception. Please check the server URL and try again.",
   "login_form_api_exception": "API exception. Please check the server URL and try again.",
@@ -199,32 +210,32 @@
   "login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
   "login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
   "login_form_label_email": "Email",
   "login_form_label_email": "Email",
   "login_form_label_password": "Password",
   "login_form_label_password": "Password",
-  "login_form_next_button": "Next",
+  "login_form_next_button": "Tiếp tục",
   "login_form_password_hint": "password",
   "login_form_password_hint": "password",
   "login_form_save_login": "Stay logged in",
   "login_form_save_login": "Stay logged in",
   "login_form_server_empty": "Enter a server URL.",
   "login_form_server_empty": "Enter a server URL.",
   "login_form_server_error": "Could not connect to server.",
   "login_form_server_error": "Could not connect to server.",
   "login_password_changed_error": "There was an error updating your password",
   "login_password_changed_error": "There was an error updating your password",
-  "login_password_changed_success": "Password updated successfully",
+  "login_password_changed_success": "Cập nhật mật khẩu thành công",
   "map_cannot_get_user_location": "Cannot get user's location",
   "map_cannot_get_user_location": "Cannot get user's location",
-  "map_location_dialog_cancel": "Cancel",
-  "map_location_dialog_yes": "Yes",
+  "map_location_dialog_cancel": "Từ chối",
+  "map_location_dialog_yes": "",
   "map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
   "map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
   "map_location_service_disabled_title": "Location Service disabled",
   "map_location_service_disabled_title": "Location Service disabled",
   "map_no_assets_in_bounds": "No photos in this area",
   "map_no_assets_in_bounds": "No photos in this area",
   "map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
   "map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
   "map_no_location_permission_title": "Location Permission denied",
   "map_no_location_permission_title": "Location Permission denied",
-  "map_settings_dark_mode": "Dark mode",
-  "map_settings_dialog_cancel": "Cancel",
-  "map_settings_dialog_save": "Save",
-  "map_settings_dialog_title": "Map Settings",
+  "map_settings_dark_mode": "Chế độ tối",
+  "map_settings_dialog_cancel": "Từ chối",
+  "map_settings_dialog_save": "Lưu",
+  "map_settings_dialog_title": "Cài đặt bản đồ",
   "map_settings_include_show_archived": "Include Archived",
   "map_settings_include_show_archived": "Include Archived",
   "map_settings_only_relative_range": "Date range",
   "map_settings_only_relative_range": "Date range",
   "map_settings_only_show_favorites": "Show Favorite Only",
   "map_settings_only_show_favorites": "Show Favorite Only",
   "map_zoom_to_see_photos": "Zoom out to see photos",
   "map_zoom_to_see_photos": "Zoom out to see photos",
   "monthly_title_text_date_format": "MMMM y",
   "monthly_title_text_date_format": "MMMM y",
   "motion_photos_page_title": "Motion Photos",
   "motion_photos_page_title": "Motion Photos",
-  "notification_permission_dialog_cancel": "Cancel",
+  "notification_permission_dialog_cancel": "Từ chối",
   "notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
   "notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
   "notification_permission_dialog_settings": "Settings",
   "notification_permission_dialog_settings": "Settings",
   "notification_permission_list_tile_content": "Grant permission to enable notifications.",
   "notification_permission_list_tile_content": "Grant permission to enable notifications.",
@@ -235,10 +246,11 @@
   "partner_page_no_more_users": "No more users to add",
   "partner_page_no_more_users": "No more users to add",
   "partner_page_partner_add_failed": "Failed to add partner",
   "partner_page_partner_add_failed": "Failed to add partner",
   "partner_page_select_partner": "Select partner",
   "partner_page_select_partner": "Select partner",
-  "partner_page_shared_to_title": "Shared to",
+  "partner_page_shared_to_title": "Chia sẻ với",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_stop_sharing_title": "Stop sharing your photos?",
   "partner_page_title": "Partner",
   "partner_page_title": "Partner",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_continue_anyway": "Continue anyway",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_get_started": "Get started",
   "permission_onboarding_go_to_settings": "Go to settings",
   "permission_onboarding_go_to_settings": "Go to settings",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "permission_onboarding_request": "Immich requires permission to view your photos and videos.",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_app_logs": "Logs",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
   "profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
+  "profile_drawer_documentation": "Tài liệu",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "Settings",
   "profile_drawer_settings": "Settings",
   "profile_drawer_sign_out": "Sign Out",
   "profile_drawer_sign_out": "Sign Out",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "Thùng rác",
   "recently_added_page_title": "Recently Added",
   "recently_added_page_title": "Recently Added",
   "search_bar_hint": "Search your photos",
   "search_bar_hint": "Search your photos",
   "search_page_categories": "Categories",
   "search_page_categories": "Categories",
@@ -260,7 +274,7 @@
   "search_page_motion_photos": "Motion Photos",
   "search_page_motion_photos": "Motion Photos",
   "search_page_no_objects": "Không có thông tin vật thể",
   "search_page_no_objects": "Không có thông tin vật thể",
   "search_page_no_places": "No Places Info Available",
   "search_page_no_places": "No Places Info Available",
-  "search_page_people": "People",
+  "search_page_people": "Mọi người",
   "search_page_places": "Places",
   "search_page_places": "Places",
   "search_page_recently_added": "Recently added",
   "search_page_recently_added": "Recently added",
   "search_page_screenshots": "Screenshots",
   "search_page_screenshots": "Screenshots",
@@ -276,6 +290,7 @@
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_err_album": "Failed to create album",
   "select_user_for_sharing_page_share_suggestions": "Gợi ý",
   "select_user_for_sharing_page_share_suggestions": "Gợi ý",
   "server_info_box_app_version": "App Version",
   "server_info_box_app_version": "App Version",
+  "server_info_box_server_url": "Địa chỉ máy chủ",
   "server_info_box_server_version": "Server Version",
   "server_info_box_server_version": "Server Version",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
   "setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
@@ -300,28 +315,37 @@
   "share_add_photos": "Add photos",
   "share_add_photos": "Add photos",
   "share_add_title": "Add a title",
   "share_add_title": "Add a title",
   "share_create_album": "Create album",
   "share_create_album": "Create album",
+  "shared_album_activities_input_disable": "Nhận xét hiện đã tắt",
+  "shared_album_activities_input_hint": "Nói điều gì đó",
+  "shared_album_activity_remove_content": "Bạn có muốn xoá hoạt động này?",
+  "shared_album_activity_remove_title": "Xoá hoạt động",
+  "shared_album_activity_setting_subtitle": "Cho phép người khác phản hồi",
+  "shared_album_activity_setting_title": "Bình luận và lượt thích",
   "share_dialog_preparing": "Preparing...",
   "share_dialog_preparing": "Preparing...",
-  "shared_link_app_bar_title": "Shared Links",
-  "shared_link_create_app_bar_title": "Create link to share",
-  "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
-  "shared_link_edit_allow_download": "Allow public user to download",
-  "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
-  "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
-  "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_app_bar_title": "Đường liên kết chia sẻ",
+  "shared_link_create_app_bar_title": "Tạo liên kết để chia sẻ",
+  "shared_link_create_info": "Cho phép bất cứ ai có liên kết xem (các) ảnh đã chọn",
+  "shared_link_create_submit_button": "Tạo liên kết",
+  "shared_link_edit_allow_download": "Cho phép bất cứ ai đều có thể tải xuống",
+  "shared_link_edit_allow_upload": "Cho phép bất cứ ai đều có thể tải lên",
+  "shared_link_edit_app_bar_title": "Chỉnh sửa liên kết",
+  "shared_link_edit_change_expiry": "Thay đổi thời gian hết hạn",
+  "shared_link_edit_description": "Mô tả",
+  "shared_link_edit_description_hint": "Nhập mô tả chia sẻ",
+  "shared_link_edit_expire_after": "Hết hạn sau",
+  "shared_link_edit_password": "Mật khẩu",
+  "shared_link_edit_password_hint": "Nhập mật khẩu chia sẻ",
+  "shared_link_edit_show_meta": "Hiện thị siêu dữ liệu",
+  "shared_link_edit_submit_button": "Cập nhật liên kết",
+  "shared_link_empty": "Bạn không có liên kết được chia sẻ nào",
+  "shared_link_manage_links": "Quản lý liên kết được chia sẻ",
+  "share_done": "Hoàn tất",
   "share_invite": "Invite to album",
   "share_invite": "Invite to album",
   "sharing_page_album": "Shared albums",
   "sharing_page_album": "Shared albums",
   "sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
   "sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
   "sharing_page_empty_list": "EMPTY LIST",
   "sharing_page_empty_list": "EMPTY LIST",
   "sharing_silver_appbar_create_shared_album": "Create shared album",
   "sharing_silver_appbar_create_shared_album": "Create shared album",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "Các liên kết chia sẻ",
   "sharing_silver_appbar_share_partner": "Share with partner",
   "sharing_silver_appbar_share_partner": "Share with partner",
   "tab_controller_nav_library": "Library",
   "tab_controller_nav_library": "Library",
   "tab_controller_nav_photos": "Photos",
   "tab_controller_nav_photos": "Photos",
@@ -337,22 +361,22 @@
   "theme_setting_theme_title": "Theme",
   "theme_setting_theme_title": "Theme",
   "theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
   "theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
   "theme_setting_three_stage_loading_title": "Enable three-stage loading",
   "theme_setting_three_stage_loading_title": "Enable three-stage loading",
-  "translated_text_options": "Options",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
-  "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
-  "trash_page_empty_trash_dialog_ok": "Ok",
-  "trash_page_info": "Trashed items will be permanently deleted after {} days",
-  "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
-  "trash_page_title": "Trash ({})",
-  "upload_dialog_cancel": "Cancel",
+  "translated_text_options": "Tuỳ chỉnh",
+  "trash_page_delete": "Xoá",
+  "trash_page_delete_all": "Xoá tất cả",
+  "trash_page_empty_trash_btn": "Dọn sạch thùng rác",
+  "trash_page_empty_trash_dialog_content": "Bạn có muốn dọn sạch thùng rác của mình không? Những mục này sẽ bị xoá vĩnh viễn khỏi Immich",
+  "trash_page_empty_trash_dialog_ok": "Đồng ý",
+  "trash_page_info": "Những mục này sẽ bị xoá sau {} ngày",
+  "trash_page_no_assets": "Không có ảnh hoặc video",
+  "trash_page_restore": "Khôi phục",
+  "trash_page_restore_all": "Khôi phục tất cả",
+  "trash_page_select_assets_btn": "Chọn mục",
+  "trash_page_select_btn": "Chọn",
+  "trash_page_title": "Thùng rác ({})",
+  "upload_dialog_cancel": "Từ chối",
   "upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
   "upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
-  "upload_dialog_ok": "Upload",
+  "upload_dialog_ok": "Tải lên",
   "upload_dialog_title": "Upload Asset",
   "upload_dialog_title": "Upload Asset",
   "version_announcement_overlay_ack": "Acknowledge",
   "version_announcement_overlay_ack": "Acknowledge",
   "version_announcement_overlay_release_notes": "release notes",
   "version_announcement_overlay_release_notes": "release notes",

+ 51 - 27
mobile/assets/i18n/zh-CN.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "修改相册标题失败",
   "album_viewer_appbar_share_err_title": "修改相册标题失败",
   "album_viewer_appbar_share_leave": "退出共享",
   "album_viewer_appbar_share_leave": "退出共享",
   "album_viewer_appbar_share_remove": "从相册中移除",
   "album_viewer_appbar_share_remove": "从相册中移除",
+  "album_viewer_appbar_share_to": "共享给",
   "album_viewer_page_share_add_users": "创建用户",
   "album_viewer_page_share_add_users": "创建用户",
   "all_people_page_title": "人物",
   "all_people_page_title": "人物",
   "all_videos_page_title": "视频",
   "all_videos_page_title": "视频",
+  "app_bar_signout_dialog_content": "您确定要注消吗?",
+  "app_bar_signout_dialog_ok": "是",
+  "app_bar_signout_dialog_title": "注消",
   "archive_page_no_archived_assets": "未找到归档项目",
   "archive_page_no_archived_assets": "未找到归档项目",
   "archive_page_title": "归档({})",
   "archive_page_title": "归档({})",
   "asset_list_layout_settings_dynamic_layout_title": "动态布局",
   "asset_list_layout_settings_dynamic_layout_title": "动态布局",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "缓存使用情况",
   "cache_settings_statistics_title": "缓存使用情况",
   "cache_settings_subtitle": "控制 Immich 的缓存行为",
   "cache_settings_subtitle": "控制 Immich 的缓存行为",
   "cache_settings_thumbnail_size": "缩略图缓存大小({} 项)",
   "cache_settings_thumbnail_size": "缩略图缓存大小({} 项)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "本地存储",
   "cache_settings_title": "缓存设置",
   "cache_settings_title": "缓存设置",
   "change_password_form_confirm_password": "确认密码",
   "change_password_form_confirm_password": "确认密码",
   "change_password_form_description": "{firstName} {lastName} 您好,\n\n这是您首次登录系统,或被管理员要求更改密码。\n请在下方输入新密码。",
   "change_password_form_description": "{firstName} {lastName} 您好,\n\n这是您首次登录系统,或被管理员要求更改密码。\n请在下方输入新密码。",
@@ -130,10 +136,10 @@
   "control_bottom_app_bar_delete": "删除",
   "control_bottom_app_bar_delete": "删除",
   "control_bottom_app_bar_favorite": "收藏",
   "control_bottom_app_bar_favorite": "收藏",
   "control_bottom_app_bar_share": "共享",
   "control_bottom_app_bar_share": "共享",
-  "control_bottom_app_bar_share_to": "Share To",
+  "control_bottom_app_bar_share_to": "共享给",
   "control_bottom_app_bar_stack": "Stack",
   "control_bottom_app_bar_stack": "Stack",
   "control_bottom_app_bar_unarchive": "取消归档",
   "control_bottom_app_bar_unarchive": "取消归档",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "上传",
   "create_album_page_untitled": "未命名",
   "create_album_page_untitled": "未命名",
   "create_shared_album_page_create": "创建",
   "create_shared_album_page_create": "创建",
   "create_shared_album_page_share": "共享",
   "create_shared_album_page_share": "共享",
@@ -149,7 +155,7 @@
   "delete_dialog_ok": "删除",
   "delete_dialog_ok": "删除",
   "delete_dialog_title": "永久删除",
   "delete_dialog_title": "永久删除",
   "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
   "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_title": "删除共享链接",
   "description_input_hint_text": "添加描述...",
   "description_input_hint_text": "添加描述...",
   "description_input_submit_error": "更新描述时出错,请检查日志以获取更多详细信息",
   "description_input_submit_error": "更新描述时出错,请检查日志以获取更多详细信息",
   "exif_bottom_sheet_description": "添加描述...",
   "exif_bottom_sheet_description": "添加描述...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "已向相册 {album} 中添加 {added} 项。\n其中 {failed} 项在相册中已存在。",
   "home_page_add_to_album_conflicts": "已向相册 {album} 中添加 {added} 项。\n其中 {failed} 项在相册中已存在。",
   "home_page_add_to_album_err_local": "暂不能将本地项目添加到相册中,跳过",
   "home_page_add_to_album_err_local": "暂不能将本地项目添加到相册中,跳过",
   "home_page_add_to_album_success": "已向相册 {album}  中添加 {added} 项。",
   "home_page_add_to_album_success": "已向相册 {album}  中添加 {added} 项。",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "暂无法归档本地项目,跳过",
   "home_page_archive_err_local": "暂无法归档本地项目,跳过",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "正在生成时间线",
   "home_page_building_timeline": "正在生成时间线",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "暂不能收藏本地项目,跳过",
   "home_page_favorite_err_local": "暂不能收藏本地项目,跳过",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "如果这是您第一次使用该应用程序,请确保选择一个要备份的本地相册,以便可以在时间线中预览该相册中的照片和视频。",
   "home_page_first_time_notice": "如果这是您第一次使用该应用程序,请确保选择一个要备份的本地相册,以便可以在时间线中预览该相册中的照片和视频。",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "一次最多只能上传 30 个项目,跳过",
   "home_page_upload_err_limit": "一次最多只能上传 30 个项目,跳过",
   "image_viewer_page_state_provider_download_error": "下载出现错误",
   "image_viewer_page_state_provider_download_error": "下载出现错误",
   "image_viewer_page_state_provider_download_success": "下载成功",
   "image_viewer_page_state_provider_download_success": "下载成功",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "共享错误",
   "library_page_albums": "相册",
   "library_page_albums": "相册",
   "library_page_archive": "归档",
   "library_page_archive": "归档",
   "library_page_device_albums": "设备上的相册",
   "library_page_device_albums": "设备上的相册",
@@ -179,14 +190,14 @@
   "library_page_new_album": "新建相册",
   "library_page_new_album": "新建相册",
   "library_page_sharing": "共享",
   "library_page_sharing": "共享",
   "library_page_sort_created": "最近创建的",
   "library_page_sort_created": "最近创建的",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "上次修改",
+  "library_page_sort_most_recent_photo": "最近的项目",
   "library_page_sort_title": "相册标题",
   "library_page_sort_title": "相册标题",
   "login_disabled": "登录已被禁用",
   "login_disabled": "登录已被禁用",
   "login_form_api_exception": "API 异常,请检查服务器地址并重试。",
   "login_form_api_exception": "API 异常,请检查服务器地址并重试。",
   "login_form_button_text": "登录",
   "login_form_button_text": "登录",
   "login_form_email_hint": "youremail@email.com",
   "login_form_email_hint": "youremail@email.com",
-  "login_form_endpoint_hint": "http(s)://的服务器地址:端口/api",
+  "login_form_endpoint_hint": "http(s)://的服务器地址:端口/api",
   "login_form_endpoint_url": "服务器链接地址",
   "login_form_endpoint_url": "服务器链接地址",
   "login_form_err_http": "请注明 http:// 或 https://",
   "login_form_err_http": "请注明 http:// 或 https://",
   "login_form_err_invalid_email": "无效的电子邮件",
   "login_form_err_invalid_email": "无效的电子邮件",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} 将无法再访问您的照片。",
   "partner_page_stop_sharing_content": "{} 将无法再访问您的照片。",
   "partner_page_stop_sharing_title": "您确定要停止共享您的照片吗?",
   "partner_page_stop_sharing_title": "您确定要停止共享您的照片吗?",
   "partner_page_title": "同伴",
   "partner_page_title": "同伴",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "仍然继续",
   "permission_onboarding_continue_anyway": "仍然继续",
   "permission_onboarding_get_started": "开始使用",
   "permission_onboarding_get_started": "开始使用",
   "permission_onboarding_go_to_settings": "转到设置",
   "permission_onboarding_go_to_settings": "转到设置",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich 需要权限才能查看您的照片和视频。",
   "permission_onboarding_request": "Immich 需要权限才能查看您的照片和视频。",
   "profile_drawer_app_logs": "日志",
   "profile_drawer_app_logs": "日志",
   "profile_drawer_client_server_up_to_date": "客户端和服务端都是最新的",
   "profile_drawer_client_server_up_to_date": "客户端和服务端都是最新的",
+  "profile_drawer_documentation": "文档",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "设置",
   "profile_drawer_settings": "设置",
   "profile_drawer_sign_out": "退出登录",
   "profile_drawer_sign_out": "退出登录",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "回收站",
   "recently_added_page_title": "最近添加",
   "recently_added_page_title": "最近添加",
   "search_bar_hint": "搜索照片",
   "search_bar_hint": "搜索照片",
   "search_page_categories": "类别",
   "search_page_categories": "类别",
@@ -271,11 +285,12 @@
   "search_page_your_activity": "您的活动",
   "search_page_your_activity": "您的活动",
   "search_result_page_new_search_hint": "搜索新的",
   "search_result_page_new_search_hint": "搜索新的",
   "search_suggestion_list_smart_search_hint_1": "默认情况下启用智能搜索;要搜索元数据,请使用相关语法",
   "search_suggestion_list_smart_search_hint_1": "默认情况下启用智能搜索;要搜索元数据,请使用相关语法",
-  "search_suggestion_list_smart_search_hint_2": "m:的搜索关键词",
+  "search_suggestion_list_smart_search_hint_2": "m:的搜索关键词",
   "select_additional_user_for_sharing_page_suggestions": "建议",
   "select_additional_user_for_sharing_page_suggestions": "建议",
   "select_user_for_sharing_page_err_album": "创建相册失败",
   "select_user_for_sharing_page_err_album": "创建相册失败",
   "select_user_for_sharing_page_share_suggestions": "建议",
   "select_user_for_sharing_page_share_suggestions": "建议",
   "server_info_box_app_version": "App 版本",
   "server_info_box_app_version": "App 版本",
+  "server_info_box_server_url": "服务器地址",
   "server_info_box_server_version": "服务器版本",
   "server_info_box_server_version": "服务器版本",
   "setting_image_viewer_help": "详细信息查看器首先加载小缩略图,然后加载中等大小的预览图(若启用),最后加载原始图像。",
   "setting_image_viewer_help": "详细信息查看器首先加载小缩略图,然后加载中等大小的预览图(若启用),最后加载原始图像。",
   "setting_image_viewer_original_subtitle": "启用以加载原图,禁用以减少数据使用量(网络和设备缓存)。",
   "setting_image_viewer_original_subtitle": "启用以加载原图,禁用以减少数据使用量(网络和设备缓存)。",
@@ -300,28 +315,37 @@
   "share_add_photos": "添加项目",
   "share_add_photos": "添加项目",
   "share_add_title": "添加标题",
   "share_add_title": "添加标题",
   "share_create_album": "创建相册",
   "share_create_album": "创建相册",
+  "shared_album_activities_input_disable": "评论已禁用",
+  "shared_album_activities_input_hint": "说些什么",
+  "shared_album_activity_remove_content": "您确定要删除此活动吗?",
+  "shared_album_activity_remove_title": "删除活动",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "评论与喜欢",
   "share_dialog_preparing": "正在准备...",
   "share_dialog_preparing": "正在准备...",
-  "shared_link_app_bar_title": "Shared Links",
+  "shared_link_app_bar_title": "共享链接",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
   "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
+  "shared_link_create_submit_button": "创建链接",
   "shared_link_edit_allow_download": "Allow public user to download",
   "shared_link_edit_allow_download": "Allow public user to download",
   "shared_link_edit_allow_upload": "Allow public user to upload",
   "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
+  "shared_link_edit_app_bar_title": "编辑链接",
+  "shared_link_edit_change_expiry": "修改过期时间",
+  "shared_link_edit_description": "描述",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "密码",
+  "shared_link_edit_password_hint": "输入共享密码",
+  "shared_link_edit_show_meta": "显示元数据",
+  "shared_link_edit_submit_button": "更新链接",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_manage_links": "管理共享链接",
+  "share_done": "完成",
   "share_invite": "邀请相册共享",
   "share_invite": "邀请相册共享",
   "sharing_page_album": "共享相册",
   "sharing_page_album": "共享相册",
   "sharing_page_description": "创建共享相册以与网络中的人共享照片和视频。",
   "sharing_page_description": "创建共享相册以与网络中的人共享照片和视频。",
   "sharing_page_empty_list": "空",
   "sharing_page_empty_list": "空",
   "sharing_silver_appbar_create_shared_album": "创建共享相册",
   "sharing_silver_appbar_create_shared_album": "创建共享相册",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "共享链接",
   "sharing_silver_appbar_share_partner": "共享给同伴",
   "sharing_silver_appbar_share_partner": "共享给同伴",
   "tab_controller_nav_library": "图库",
   "tab_controller_nav_library": "图库",
   "tab_controller_nav_photos": "照片",
   "tab_controller_nav_photos": "照片",
@@ -338,17 +362,17 @@
   "theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
   "theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
   "theme_setting_three_stage_loading_title": "启用三段式加载",
   "theme_setting_three_stage_loading_title": "启用三段式加载",
   "translated_text_options": "选项",
   "translated_text_options": "选项",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
+  "trash_page_delete": "删除",
+  "trash_page_delete_all": "删除全部",
+  "trash_page_empty_trash_btn": "清空回收站",
   "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
   "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
-  "trash_page_empty_trash_dialog_ok": "Ok",
+  "trash_page_empty_trash_dialog_ok": "好的",
   "trash_page_info": "Trashed items will be permanently deleted after {} days",
   "trash_page_info": "Trashed items will be permanently deleted after {} days",
   "trash_page_no_assets": "No trashed assets",
   "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
+  "trash_page_restore": "恢复",
+  "trash_page_restore_all": "恢复全部",
+  "trash_page_select_assets_btn": "选择项目",
+  "trash_page_select_btn": "选择",
   "trash_page_title": "Trash ({})",
   "trash_page_title": "Trash ({})",
   "upload_dialog_cancel": "取消",
   "upload_dialog_cancel": "取消",
   "upload_dialog_info": "是否要将所选项目备份到服务器?",
   "upload_dialog_info": "是否要将所选项目备份到服务器?",

+ 51 - 27
mobile/assets/i18n/zh-Hans.json

@@ -23,9 +23,13 @@
   "album_viewer_appbar_share_err_title": "修改相册标题失败",
   "album_viewer_appbar_share_err_title": "修改相册标题失败",
   "album_viewer_appbar_share_leave": "退出共享",
   "album_viewer_appbar_share_leave": "退出共享",
   "album_viewer_appbar_share_remove": "从相册中移除",
   "album_viewer_appbar_share_remove": "从相册中移除",
+  "album_viewer_appbar_share_to": "共享给",
   "album_viewer_page_share_add_users": "创建用户",
   "album_viewer_page_share_add_users": "创建用户",
   "all_people_page_title": "人物",
   "all_people_page_title": "人物",
   "all_videos_page_title": "视频",
   "all_videos_page_title": "视频",
+  "app_bar_signout_dialog_content": "您确定要注消吗?",
+  "app_bar_signout_dialog_ok": "是",
+  "app_bar_signout_dialog_title": "注消",
   "archive_page_no_archived_assets": "未找到归档项目",
   "archive_page_no_archived_assets": "未找到归档项目",
   "archive_page_title": "归档({})",
   "archive_page_title": "归档({})",
   "asset_list_layout_settings_dynamic_layout_title": "动态布局",
   "asset_list_layout_settings_dynamic_layout_title": "动态布局",
@@ -111,6 +115,8 @@
   "cache_settings_statistics_title": "缓存使用情况",
   "cache_settings_statistics_title": "缓存使用情况",
   "cache_settings_subtitle": "控制 Immich 的缓存行为",
   "cache_settings_subtitle": "控制 Immich 的缓存行为",
   "cache_settings_thumbnail_size": "缩略图缓存大小({} 项)",
   "cache_settings_thumbnail_size": "缩略图缓存大小({} 项)",
+  "cache_settings_tile_subtitle": "Control the local storage behaviour",
+  "cache_settings_tile_title": "本地存储",
   "cache_settings_title": "缓存设置",
   "cache_settings_title": "缓存设置",
   "change_password_form_confirm_password": "确认密码",
   "change_password_form_confirm_password": "确认密码",
   "change_password_form_description": "{firstName} {lastName} 您好,\n\n这是您首次登录系统,或被管理员要求更改密码。\n请在下方输入新密码。",
   "change_password_form_description": "{firstName} {lastName} 您好,\n\n这是您首次登录系统,或被管理员要求更改密码。\n请在下方输入新密码。",
@@ -130,10 +136,10 @@
   "control_bottom_app_bar_delete": "删除",
   "control_bottom_app_bar_delete": "删除",
   "control_bottom_app_bar_favorite": "收藏",
   "control_bottom_app_bar_favorite": "收藏",
   "control_bottom_app_bar_share": "共享",
   "control_bottom_app_bar_share": "共享",
-  "control_bottom_app_bar_share_to": "Share To",
+  "control_bottom_app_bar_share_to": "共享给",
   "control_bottom_app_bar_stack": "Stack",
   "control_bottom_app_bar_stack": "Stack",
   "control_bottom_app_bar_unarchive": "取消归档",
   "control_bottom_app_bar_unarchive": "取消归档",
-  "control_bottom_app_bar_upload": "Upload",
+  "control_bottom_app_bar_upload": "上传",
   "create_album_page_untitled": "未命名",
   "create_album_page_untitled": "未命名",
   "create_shared_album_page_create": "创建",
   "create_shared_album_page_create": "创建",
   "create_shared_album_page_share": "共享",
   "create_shared_album_page_share": "共享",
@@ -149,7 +155,7 @@
   "delete_dialog_ok": "删除",
   "delete_dialog_ok": "删除",
   "delete_dialog_title": "永久删除",
   "delete_dialog_title": "永久删除",
   "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
   "delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
-  "delete_shared_link_dialog_title": "Delete Shared Link",
+  "delete_shared_link_dialog_title": "删除共享链接",
   "description_input_hint_text": "添加描述...",
   "description_input_hint_text": "添加描述...",
   "description_input_submit_error": "更新描述时出错,请检查日志以获取更多详细信息",
   "description_input_submit_error": "更新描述时出错,请检查日志以获取更多详细信息",
   "exif_bottom_sheet_description": "添加描述...",
   "exif_bottom_sheet_description": "添加描述...",
@@ -164,14 +170,19 @@
   "home_page_add_to_album_conflicts": "已向相册 {album} 中添加 {added} 项。\n其中 {failed} 项在相册中已存在。",
   "home_page_add_to_album_conflicts": "已向相册 {album} 中添加 {added} 项。\n其中 {failed} 项在相册中已存在。",
   "home_page_add_to_album_err_local": "暂不能将本地资项目添加到相册中,跳过",
   "home_page_add_to_album_err_local": "暂不能将本地资项目添加到相册中,跳过",
   "home_page_add_to_album_success": "已向相册 {album}  中添加 {added} 项。",
   "home_page_add_to_album_success": "已向相册 {album}  中添加 {added} 项。",
+  "home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
   "home_page_archive_err_local": "暂无法归档本地项目,跳过",
   "home_page_archive_err_local": "暂无法归档本地项目,跳过",
+  "home_page_archive_err_partner": "Can not archive partner assets, skipping",
   "home_page_building_timeline": "正在生成时间线",
   "home_page_building_timeline": "正在生成时间线",
+  "home_page_delete_err_partner": "Can not delete partner assets, skipping",
   "home_page_favorite_err_local": "暂不能收藏本地项目,跳过",
   "home_page_favorite_err_local": "暂不能收藏本地项目,跳过",
+  "home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
   "home_page_first_time_notice": "如果这是您第一次使用该应用程序,请确保选择一个要备份的本地相册,以便可以在时间线中预览该相册中的照片和视频。",
   "home_page_first_time_notice": "如果这是您第一次使用该应用程序,请确保选择一个要备份的本地相册,以便可以在时间线中预览该相册中的照片和视频。",
+  "home_page_share_err_local": "Can not share local assets via link, skipping",
   "home_page_upload_err_limit": "一次最多只能上传 30 个项目,跳过",
   "home_page_upload_err_limit": "一次最多只能上传 30 个项目,跳过",
   "image_viewer_page_state_provider_download_error": "下载出现错误",
   "image_viewer_page_state_provider_download_error": "下载出现错误",
   "image_viewer_page_state_provider_download_success": "下载成功",
   "image_viewer_page_state_provider_download_success": "下载成功",
-  "image_viewer_page_state_provider_share_error": "Share Error",
+  "image_viewer_page_state_provider_share_error": "共享错误",
   "library_page_albums": "相册",
   "library_page_albums": "相册",
   "library_page_archive": "归档",
   "library_page_archive": "归档",
   "library_page_device_albums": "设备上的相册",
   "library_page_device_albums": "设备上的相册",
@@ -179,14 +190,14 @@
   "library_page_new_album": "新建相册",
   "library_page_new_album": "新建相册",
   "library_page_sharing": "共享",
   "library_page_sharing": "共享",
   "library_page_sort_created": "最近创建的",
   "library_page_sort_created": "最近创建的",
-  "library_page_sort_last_modified": "Last modified",
-  "library_page_sort_most_recent_photo": "Most recent photo",
+  "library_page_sort_last_modified": "上次修改",
+  "library_page_sort_most_recent_photo": "最近的项目",
   "library_page_sort_title": "相册标题",
   "library_page_sort_title": "相册标题",
   "login_disabled": "登录已被禁用",
   "login_disabled": "登录已被禁用",
   "login_form_api_exception": "API 异常,请检查服务器地址并重试。",
   "login_form_api_exception": "API 异常,请检查服务器地址并重试。",
   "login_form_button_text": "登录",
   "login_form_button_text": "登录",
   "login_form_email_hint": "youremail@email.com",
   "login_form_email_hint": "youremail@email.com",
-  "login_form_endpoint_hint": "http(s)://的服务器地址:端口/api",
+  "login_form_endpoint_hint": "http(s)://的服务器地址:端口/api",
   "login_form_endpoint_url": "服务器链接地址",
   "login_form_endpoint_url": "服务器链接地址",
   "login_form_err_http": "请注明 http:// 或 https://",
   "login_form_err_http": "请注明 http:// 或 https://",
   "login_form_err_invalid_email": "无效的电子邮件",
   "login_form_err_invalid_email": "无效的电子邮件",
@@ -239,6 +250,7 @@
   "partner_page_stop_sharing_content": "{} 将无法再访问您的照片。",
   "partner_page_stop_sharing_content": "{} 将无法再访问您的照片。",
   "partner_page_stop_sharing_title": "您确定要停止共享您的照片吗?",
   "partner_page_stop_sharing_title": "您确定要停止共享您的照片吗?",
   "partner_page_title": "同伴",
   "partner_page_title": "同伴",
+  "permission_onboarding_back": "Back",
   "permission_onboarding_continue_anyway": "仍然继续",
   "permission_onboarding_continue_anyway": "仍然继续",
   "permission_onboarding_get_started": "开始使用",
   "permission_onboarding_get_started": "开始使用",
   "permission_onboarding_go_to_settings": "转到设置",
   "permission_onboarding_go_to_settings": "转到设置",
@@ -250,9 +262,11 @@
   "permission_onboarding_request": "Immich 需要权限才能查看您的照片和视频。",
   "permission_onboarding_request": "Immich 需要权限才能查看您的照片和视频。",
   "profile_drawer_app_logs": "日志",
   "profile_drawer_app_logs": "日志",
   "profile_drawer_client_server_up_to_date": "客户端和服务端都是最新的",
   "profile_drawer_client_server_up_to_date": "客户端和服务端都是最新的",
+  "profile_drawer_documentation": "文档",
+  "profile_drawer_github": "GitHub",
   "profile_drawer_settings": "设置",
   "profile_drawer_settings": "设置",
   "profile_drawer_sign_out": "退出登录",
   "profile_drawer_sign_out": "退出登录",
-  "profile_drawer_trash": "Trash",
+  "profile_drawer_trash": "回收站",
   "recently_added_page_title": "最近添加",
   "recently_added_page_title": "最近添加",
   "search_bar_hint": "搜索照片",
   "search_bar_hint": "搜索照片",
   "search_page_categories": "类别",
   "search_page_categories": "类别",
@@ -271,11 +285,12 @@
   "search_page_your_activity": "您的活动",
   "search_page_your_activity": "您的活动",
   "search_result_page_new_search_hint": "搜索新的",
   "search_result_page_new_search_hint": "搜索新的",
   "search_suggestion_list_smart_search_hint_1": "默认情况下启用智能搜索;要搜索元数据,请使用相关语法",
   "search_suggestion_list_smart_search_hint_1": "默认情况下启用智能搜索;要搜索元数据,请使用相关语法",
-  "search_suggestion_list_smart_search_hint_2": "m:的搜索关键词",
+  "search_suggestion_list_smart_search_hint_2": "m:的搜索关键词",
   "select_additional_user_for_sharing_page_suggestions": "建议",
   "select_additional_user_for_sharing_page_suggestions": "建议",
   "select_user_for_sharing_page_err_album": "创建相册失败",
   "select_user_for_sharing_page_err_album": "创建相册失败",
   "select_user_for_sharing_page_share_suggestions": "建议",
   "select_user_for_sharing_page_share_suggestions": "建议",
   "server_info_box_app_version": "App 版本",
   "server_info_box_app_version": "App 版本",
+  "server_info_box_server_url": "服务器地址",
   "server_info_box_server_version": "服务器版本",
   "server_info_box_server_version": "服务器版本",
   "setting_image_viewer_help": "详细信息查看器首先加载小缩略图,然后加载中等大小的预览图(若启用),最后加载原始图像。",
   "setting_image_viewer_help": "详细信息查看器首先加载小缩略图,然后加载中等大小的预览图(若启用),最后加载原始图像。",
   "setting_image_viewer_original_subtitle": "启用以加载原图,禁用以减少数据使用量(网络和设备缓存)。",
   "setting_image_viewer_original_subtitle": "启用以加载原图,禁用以减少数据使用量(网络和设备缓存)。",
@@ -300,28 +315,37 @@
   "share_add_photos": "添加项目",
   "share_add_photos": "添加项目",
   "share_add_title": "添加标题",
   "share_add_title": "添加标题",
   "share_create_album": "创建相册",
   "share_create_album": "创建相册",
+  "shared_album_activities_input_disable": "评论已禁用",
+  "shared_album_activities_input_hint": "说些什么",
+  "shared_album_activity_remove_content": "您确定要删除此活动吗?",
+  "shared_album_activity_remove_title": "删除活动",
+  "shared_album_activity_setting_subtitle": "Let others respond",
+  "shared_album_activity_setting_title": "评论与喜欢",
   "share_dialog_preparing": "正在准备...",
   "share_dialog_preparing": "正在准备...",
-  "shared_link_app_bar_title": "Shared Links",
+  "shared_link_app_bar_title": "共享链接",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_app_bar_title": "Create link to share",
   "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
   "shared_link_create_info": "Let anyone with the link see the selected photo(s)",
-  "shared_link_create_submit_button": "Create link",
+  "shared_link_create_submit_button": "创建链接",
   "shared_link_edit_allow_download": "Allow public user to download",
   "shared_link_edit_allow_download": "Allow public user to download",
   "shared_link_edit_allow_upload": "Allow public user to upload",
   "shared_link_edit_allow_upload": "Allow public user to upload",
-  "shared_link_edit_app_bar_title": "Edit link",
-  "shared_link_edit_change_expiry": "Change expiration time",
-  "shared_link_edit_description": "Description",
+  "shared_link_edit_app_bar_title": "编辑链接",
+  "shared_link_edit_change_expiry": "修改过期时间",
+  "shared_link_edit_description": "描述",
   "shared_link_edit_description_hint": "Enter the share description",
   "shared_link_edit_description_hint": "Enter the share description",
-  "shared_link_edit_show_meta": "Show metadata",
-  "shared_link_edit_submit_button": "Update link",
+  "shared_link_edit_expire_after": "Expire after",
+  "shared_link_edit_password": "密码",
+  "shared_link_edit_password_hint": "输入共享密码",
+  "shared_link_edit_show_meta": "显示元数据",
+  "shared_link_edit_submit_button": "更新链接",
   "shared_link_empty": "You don't have any shared links",
   "shared_link_empty": "You don't have any shared links",
-  "shared_link_manage_links": "Manage Shared links",
-  "share_done": "Done",
+  "shared_link_manage_links": "管理共享链接",
+  "share_done": "完成",
   "share_invite": "邀请相册共享",
   "share_invite": "邀请相册共享",
   "sharing_page_album": "共享相册",
   "sharing_page_album": "共享相册",
   "sharing_page_description": "创建共享相册以与网络中的人共享照片和视频。",
   "sharing_page_description": "创建共享相册以与网络中的人共享照片和视频。",
   "sharing_page_empty_list": "空",
   "sharing_page_empty_list": "空",
   "sharing_silver_appbar_create_shared_album": "创建共享相册",
   "sharing_silver_appbar_create_shared_album": "创建共享相册",
-  "sharing_silver_appbar_shared_links": "Shared links",
+  "sharing_silver_appbar_shared_links": "共享链接",
   "sharing_silver_appbar_share_partner": "共享给同伴",
   "sharing_silver_appbar_share_partner": "共享给同伴",
   "tab_controller_nav_library": "图库",
   "tab_controller_nav_library": "图库",
   "tab_controller_nav_photos": "照片",
   "tab_controller_nav_photos": "照片",
@@ -338,17 +362,17 @@
   "theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
   "theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
   "theme_setting_three_stage_loading_title": "启用三段式加载",
   "theme_setting_three_stage_loading_title": "启用三段式加载",
   "translated_text_options": "选项",
   "translated_text_options": "选项",
-  "trash_page_delete": "Delete",
-  "trash_page_delete_all": "Delete All",
-  "trash_page_empty_trash_btn": "Empty trash",
+  "trash_page_delete": "删除",
+  "trash_page_delete_all": "删除全部",
+  "trash_page_empty_trash_btn": "清空回收站",
   "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
   "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
-  "trash_page_empty_trash_dialog_ok": "Ok",
+  "trash_page_empty_trash_dialog_ok": "好的",
   "trash_page_info": "Trashed items will be permanently deleted after {} days",
   "trash_page_info": "Trashed items will be permanently deleted after {} days",
   "trash_page_no_assets": "No trashed assets",
   "trash_page_no_assets": "No trashed assets",
-  "trash_page_restore": "Restore",
-  "trash_page_restore_all": "Restore All",
-  "trash_page_select_assets_btn": "Select assets",
-  "trash_page_select_btn": "Select",
+  "trash_page_restore": "恢复",
+  "trash_page_restore_all": "恢复全部",
+  "trash_page_select_assets_btn": "选择项目",
+  "trash_page_select_btn": "选择",
   "trash_page_title": "Trash ({})",
   "trash_page_title": "Trash ({})",
   "upload_dialog_cancel": "取消",
   "upload_dialog_cancel": "取消",
   "upload_dialog_info": "是否要将所选项目备份到服务器?",
   "upload_dialog_info": "是否要将所选项目备份到服务器?",

+ 3 - 3
mobile/ios/Runner.xcodeproj/project.pbxproj

@@ -379,7 +379,7 @@
 				CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
 				CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 125;
+				CURRENT_PROJECT_VERSION = 127;
 				DEVELOPMENT_TEAM = 2F67MQ8R79;
 				DEVELOPMENT_TEAM = 2F67MQ8R79;
 				ENABLE_BITCODE = NO;
 				ENABLE_BITCODE = NO;
 				INFOPLIST_FILE = Runner/Info.plist;
 				INFOPLIST_FILE = Runner/Info.plist;
@@ -515,7 +515,7 @@
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 125;
+				CURRENT_PROJECT_VERSION = 127;
 				DEVELOPMENT_TEAM = 2F67MQ8R79;
 				DEVELOPMENT_TEAM = 2F67MQ8R79;
 				ENABLE_BITCODE = NO;
 				ENABLE_BITCODE = NO;
 				INFOPLIST_FILE = Runner/Info.plist;
 				INFOPLIST_FILE = Runner/Info.plist;
@@ -543,7 +543,7 @@
 				CLANG_ENABLE_MODULES = YES;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_IDENTITY = "Apple Development";
 				CODE_SIGN_STYLE = Automatic;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 125;
+				CURRENT_PROJECT_VERSION = 127;
 				DEVELOPMENT_TEAM = 2F67MQ8R79;
 				DEVELOPMENT_TEAM = 2F67MQ8R79;
 				ENABLE_BITCODE = NO;
 				ENABLE_BITCODE = NO;
 				INFOPLIST_FILE = Runner/Info.plist;
 				INFOPLIST_FILE = Runner/Info.plist;

+ 2 - 7
mobile/ios/Runner/Info.plist

@@ -43,15 +43,10 @@
       <string>mn</string>
       <string>mn</string>
       <string>ko</string>
       <string>ko</string>
       <string>sr</string>
       <string>sr</string>
-      <string>sr</string>
       <string>hi</string>
       <string>hi</string>
-      <string>es</string>
-      <string>es</string>
-      <string>sv</string>
       <string>ca</string>
       <string>ca</string>
       <string>hu</string>
       <string>hu</string>
       <string>lv</string>
       <string>lv</string>
-      <string>zh</string>
       <string>th</string>
       <string>th</string>
     </array>
     </array>
     <key>CFBundleName</key>
     <key>CFBundleName</key>
@@ -59,11 +54,11 @@
     <key>CFBundlePackageType</key>
     <key>CFBundlePackageType</key>
     <string>APPL</string>
     <string>APPL</string>
     <key>CFBundleShortVersionString</key>
     <key>CFBundleShortVersionString</key>
-    <string>1.85.0</string>
+    <string>1.87.0</string>
     <key>CFBundleSignature</key>
     <key>CFBundleSignature</key>
     <string>????</string>
     <string>????</string>
     <key>CFBundleVersion</key>
     <key>CFBundleVersion</key>
-    <string>125</string>
+    <string>127</string>
     <key>FLTEnableImpeller</key>
     <key>FLTEnableImpeller</key>
     <true />
     <true />
     <key>ITSAppUsesNonExemptEncryption</key>
     <key>ITSAppUsesNonExemptEncryption</key>

+ 1 - 1
mobile/ios/fastlane/Fastfile

@@ -19,7 +19,7 @@ platform :ios do
   desc "iOS Beta"
   desc "iOS Beta"
   lane :beta do
   lane :beta do
     increment_version_number(
     increment_version_number(
-      version_number: "1.85.0"
+      version_number: "1.87.0"
     )
     )
     increment_build_number(
     increment_build_number(
       build_number: latest_testflight_build_number + 1,
       build_number: latest_testflight_build_number + 1,

+ 6 - 6
mobile/ios/fastlane/report.xml

@@ -5,32 +5,32 @@
     
     
     
     
       
       
-      <testcase classname="fastlane.lanes" name="0: default_platform" time="0.000291">
+      <testcase classname="fastlane.lanes" name="0: default_platform" time="0.000245">
         
         
       </testcase>
       </testcase>
     
     
       
       
-      <testcase classname="fastlane.lanes" name="1: increment_version_number" time="0.199372">
+      <testcase classname="fastlane.lanes" name="1: increment_version_number" time="0.162192">
         
         
       </testcase>
       </testcase>
     
     
       
       
-      <testcase classname="fastlane.lanes" name="2: latest_testflight_build_number" time="6.104477">
+      <testcase classname="fastlane.lanes" name="2: latest_testflight_build_number" time="5.082136">
         
         
       </testcase>
       </testcase>
     
     
       
       
-      <testcase classname="fastlane.lanes" name="3: increment_build_number" time="0.164465">
+      <testcase classname="fastlane.lanes" name="3: increment_build_number" time="0.181105">
         
         
       </testcase>
       </testcase>
     
     
       
       
-      <testcase classname="fastlane.lanes" name="4: build_app" time="108.828838">
+      <testcase classname="fastlane.lanes" name="4: build_app" time="99.633247">
         
         
       </testcase>
       </testcase>
     
     
       
       
-      <testcase classname="fastlane.lanes" name="5: upload_to_testflight" time="60.89387">
+      <testcase classname="fastlane.lanes" name="5: upload_to_testflight" time="62.690406">
         
         
       </testcase>
       </testcase>
     
     

+ 2 - 0
mobile/lib/constants/locales.dart

@@ -9,6 +9,7 @@ const List<Locale> locales = [
   Locale('it', 'IT'),
   Locale('it', 'IT'),
   Locale('es', 'ES'),
   Locale('es', 'ES'),
   Locale('vi', 'VN'),
   Locale('vi', 'VN'),
+  Locale('fr', 'CA'),
   Locale('fr', 'FR'),
   Locale('fr', 'FR'),
   Locale('ja', 'JP'),
   Locale('ja', 'JP'),
   Locale('pl', 'PL'),
   Locale('pl', 'PL'),
@@ -29,6 +30,7 @@ const List<Locale> locales = [
   Locale('hi', 'IN'),
   Locale('hi', 'IN'),
   Locale('es', 'PE'),
   Locale('es', 'PE'),
   Locale('es', 'MX'),
   Locale('es', 'MX'),
+  Locale('es', 'US'),
   Locale('sv', 'FI'),
   Locale('sv', 'FI'),
   Locale('ca', 'CA'),
   Locale('ca', 'CA'),
   Locale('hu', 'HU'),
   Locale('hu', 'HU'),

+ 0 - 4
mobile/lib/main.dart

@@ -26,11 +26,9 @@ import 'package:immich_mobile/shared/models/store.dart';
 import 'package:immich_mobile/shared/models/user.dart';
 import 'package:immich_mobile/shared/models/user.dart';
 import 'package:immich_mobile/shared/providers/app_state.provider.dart';
 import 'package:immich_mobile/shared/providers/app_state.provider.dart';
 import 'package:immich_mobile/shared/providers/db.provider.dart';
 import 'package:immich_mobile/shared/providers/db.provider.dart';
-import 'package:immich_mobile/shared/providers/release_info.provider.dart';
 import 'package:immich_mobile/shared/services/immich_logger.service.dart';
 import 'package:immich_mobile/shared/services/immich_logger.service.dart';
 import 'package:immich_mobile/shared/services/local_notification.service.dart';
 import 'package:immich_mobile/shared/services/local_notification.service.dart';
 import 'package:immich_mobile/shared/views/immich_loading_overlay.dart';
 import 'package:immich_mobile/shared/views/immich_loading_overlay.dart';
-import 'package:immich_mobile/shared/views/version_announcement_overlay.dart';
 import 'package:immich_mobile/utils/http_ssl_cert_override.dart';
 import 'package:immich_mobile/utils/http_ssl_cert_override.dart';
 import 'package:immich_mobile/utils/immich_app_theme.dart';
 import 'package:immich_mobile/utils/immich_app_theme.dart';
 import 'package:immich_mobile/utils/migration.dart';
 import 'package:immich_mobile/utils/migration.dart';
@@ -196,7 +194,6 @@ class ImmichAppState extends ConsumerState<ImmichApp>
   @override
   @override
   Widget build(BuildContext context) {
   Widget build(BuildContext context) {
     var router = ref.watch(appRouterProvider);
     var router = ref.watch(appRouterProvider);
-    ref.watch(releaseInfoProvider.notifier).checkGithubReleaseInfo();
 
 
     return MaterialApp(
     return MaterialApp(
       localizationsDelegates: context.localizationDelegates,
       localizationsDelegates: context.localizationDelegates,
@@ -220,7 +217,6 @@ class ImmichAppState extends ConsumerState<ImmichApp>
             darkTheme: immichDarkTheme,
             darkTheme: immichDarkTheme,
             theme: immichLightTheme,
             theme: immichLightTheme,
           ),
           ),
-          const VersionAnnouncementOverlay(),
         ],
         ],
       ),
       ),
     );
     );

+ 1 - 2
mobile/lib/modules/activities/models/activity.model.dart

@@ -48,8 +48,7 @@ class Activity {
             : ActivityType.like,
             : ActivityType.like,
         user = User(
         user = User(
           email: dto.user.email,
           email: dto.user.email,
-          firstName: dto.user.firstName,
-          lastName: dto.user.lastName,
+          name: dto.user.name,
           profileImagePath: dto.user.profileImagePath,
           profileImagePath: dto.user.profileImagePath,
           id: dto.user.id,
           id: dto.user.id,
           // Placeholder values
           // Placeholder values

+ 1 - 1
mobile/lib/modules/activities/views/activities_page.dart

@@ -60,7 +60,7 @@ class ActivitiesPage extends HookConsumerWidget {
         mainAxisSize: leftAlign ? MainAxisSize.min : MainAxisSize.max,
         mainAxisSize: leftAlign ? MainAxisSize.min : MainAxisSize.max,
         children: [
         children: [
           Text(
           Text(
-            "${activity.user.firstName} ${activity.user.lastName}",
+            activity.user.name,
             style: textStyle,
             style: textStyle,
             overflow: TextOverflow.ellipsis,
             overflow: TextOverflow.ellipsis,
           ),
           ),

+ 2 - 0
mobile/lib/modules/album/providers/album.provider.dart

@@ -25,6 +25,8 @@ class AlbumNotifier extends StateNotifier<List<Album>> {
         _albumService.refreshRemoteAlbums(isShared: false),
         _albumService.refreshRemoteAlbums(isShared: false),
       ]);
       ]);
 
 
+  Future<void> getDeviceAlbums() => _albumService.refreshDeviceAlbums();
+
   Future<bool> deleteAlbum(Album album) => _albumService.deleteAlbum(album);
   Future<bool> deleteAlbum(Album album) => _albumService.deleteAlbum(album);
 
 
   Future<Album?> createAlbum(
   Future<Album?> createAlbum(

+ 4 - 0
mobile/lib/modules/album/services/album.service.dart

@@ -67,6 +67,10 @@ class AlbumService {
       final List<String> selectedIds =
       final List<String> selectedIds =
           await _backupService.selectedAlbumsQuery().idProperty().findAll();
           await _backupService.selectedAlbumsQuery().idProperty().findAll();
       if (selectedIds.isEmpty) {
       if (selectedIds.isEmpty) {
+        final numLocal = await _db.albums.where().localIdIsNotNull().count();
+        if (numLocal > 0) {
+          _syncService.removeAllLocalAlbumsAndAssets();
+        }
         return false;
         return false;
       }
       }
       final List<AssetPathEntity> onDevice =
       final List<AssetPathEntity> onDevice =

+ 1 - 1
mobile/lib/modules/album/ui/album_viewer_appbar.dart

@@ -189,7 +189,7 @@ class AlbumViewerAppbar extends HookConsumerWidget
                   gravity: ToastGravity.BOTTOM,
                   gravity: ToastGravity.BOTTOM,
                 );
                 );
               }
               }
-              context.pop();
+              buildContext.pop();
             },
             },
           );
           );
           return const ShareDialog();
           return const ShareDialog();

+ 10 - 15
mobile/lib/modules/album/views/album_options_part.dart

@@ -32,7 +32,7 @@ class AlbumOptionsPage extends HookConsumerWidget {
       Navigator.pop(context);
       Navigator.pop(context);
       ImmichToast.show(
       ImmichToast.show(
         context: context,
         context: context,
-        msg: "Error leaving/removing from album",
+        msg: "shared_album_section_people_action_error".tr(),
         toastType: ToastType.error,
         toastType: ToastType.error,
         gravity: ToastGravity.BOTTOM,
         gravity: ToastGravity.BOTTOM,
       );
       );
@@ -83,7 +83,7 @@ class AlbumOptionsPage extends HookConsumerWidget {
         actions = [
         actions = [
           ListTile(
           ListTile(
             leading: const Icon(Icons.exit_to_app_rounded),
             leading: const Icon(Icons.exit_to_app_rounded),
-            title: const Text("Leave album"),
+            title: const Text("shared_album_section_people_action_leave").tr(),
             onTap: leaveAlbum,
             onTap: leaveAlbum,
           ),
           ),
         ];
         ];
@@ -93,7 +93,7 @@ class AlbumOptionsPage extends HookConsumerWidget {
         actions = [
         actions = [
           ListTile(
           ListTile(
             leading: const Icon(Icons.person_remove_rounded),
             leading: const Icon(Icons.person_remove_rounded),
-            title: const Text("Remove user from album"),
+            title: const Text("shared_album_section_people_remove_user").tr(),
             onTap: () => removeUserFromAlbum(user),
             onTap: () => removeUserFromAlbum(user),
           ),
           ),
         ];
         ];
@@ -119,14 +119,10 @@ class AlbumOptionsPage extends HookConsumerWidget {
 
 
     buildOwnerInfo() {
     buildOwnerInfo() {
       return ListTile(
       return ListTile(
-        leading: owner != null
-            ? UserCircleAvatar(
-                user: owner,
-                useRandomBackgroundColor: true,
-              )
-            : const SizedBox(),
+        leading:
+            owner != null ? UserCircleAvatar(user: owner) : const SizedBox(),
         title: Text(
         title: Text(
-          album.owner.value?.firstName ?? "",
+          album.owner.value?.name ?? "",
           style: const TextStyle(
           style: const TextStyle(
             fontWeight: FontWeight.bold,
             fontWeight: FontWeight.bold,
           ),
           ),
@@ -136,11 +132,11 @@ class AlbumOptionsPage extends HookConsumerWidget {
           style: TextStyle(color: context.colorScheme.onSurface.darken(40)),
           style: TextStyle(color: context.colorScheme.onSurface.darken(40)),
         ),
         ),
         trailing: const Text(
         trailing: const Text(
-          "Owner",
+          "shared_album_section_people_owner_label",
           style: TextStyle(
           style: TextStyle(
             fontWeight: FontWeight.bold,
             fontWeight: FontWeight.bold,
           ),
           ),
-        ),
+        ).tr(),
       );
       );
     }
     }
 
 
@@ -153,11 +149,10 @@ class AlbumOptionsPage extends HookConsumerWidget {
           return ListTile(
           return ListTile(
             leading: UserCircleAvatar(
             leading: UserCircleAvatar(
               user: user,
               user: user,
-              useRandomBackgroundColor: true,
               radius: 22,
               radius: 22,
             ),
             ),
             title: Text(
             title: Text(
-              user.firstName,
+              user.name,
               style: const TextStyle(
               style: const TextStyle(
                 fontWeight: FontWeight.bold,
                 fontWeight: FontWeight.bold,
               ),
               ),
@@ -219,7 +214,7 @@ class AlbumOptionsPage extends HookConsumerWidget {
               subtitle:
               subtitle:
                   const Text("shared_album_activity_setting_subtitle").tr(),
                   const Text("shared_album_activity_setting_subtitle").tr(),
             ),
             ),
-          buildSectionTitle("PEOPLE"),
+          buildSectionTitle("shared_album_section_people_title".tr()),
           buildOwnerInfo(),
           buildOwnerInfo(),
           buildSharedUsersList(),
           buildSharedUsersList(),
         ],
         ],

+ 0 - 1
mobile/lib/modules/album/views/album_viewer_page.dart

@@ -218,7 +218,6 @@ class AlbumViewerPage extends HookConsumerWidget {
                   user: album.sharedUsers.toList()[index],
                   user: album.sharedUsers.toList()[index],
                   radius: 18,
                   radius: 18,
                   size: 36,
                   size: 36,
-                  useRandomBackgroundColor: true,
                 ),
                 ),
               );
               );
             }),
             }),

+ 4 - 11
mobile/lib/modules/archive/providers/archive_asset_provider.dart

@@ -1,15 +1,14 @@
 import 'package:hooks_riverpod/hooks_riverpod.dart';
 import 'package:hooks_riverpod/hooks_riverpod.dart';
 import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart';
 import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structure.dart';
-import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart';
-import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
 import 'package:immich_mobile/shared/models/asset.dart';
 import 'package:immich_mobile/shared/models/asset.dart';
 import 'package:immich_mobile/shared/providers/db.provider.dart';
 import 'package:immich_mobile/shared/providers/db.provider.dart';
 import 'package:immich_mobile/shared/providers/user.provider.dart';
 import 'package:immich_mobile/shared/providers/user.provider.dart';
+import 'package:immich_mobile/utils/renderlist_generator.dart';
 import 'package:isar/isar.dart';
 import 'package:isar/isar.dart';
 
 
-final archiveProvider = StreamProvider<RenderList>((ref) async* {
+final archiveProvider = StreamProvider<RenderList>((ref) {
   final user = ref.watch(currentUserProvider);
   final user = ref.watch(currentUserProvider);
-  if (user == null) return;
+  if (user == null) return const Stream.empty();
   final query = ref
   final query = ref
       .watch(dbProvider)
       .watch(dbProvider)
       .assets
       .assets
@@ -19,11 +18,5 @@ final archiveProvider = StreamProvider<RenderList>((ref) async* {
       .isArchivedEqualTo(true)
       .isArchivedEqualTo(true)
       .isTrashedEqualTo(false)
       .isTrashedEqualTo(false)
       .sortByFileCreatedAt();
       .sortByFileCreatedAt();
-  final settings = ref.watch(appSettingsServiceProvider);
-  final groupBy =
-      GroupAssetsBy.values[settings.getSetting(AppSettingsEnum.groupAssetsBy)];
-  yield await RenderList.fromQuery(query, groupBy);
-  await for (final _ in query.watchLazy()) {
-    yield await RenderList.fromQuery(query, groupBy);
-  }
+  return renderListGenerator(query, ref);
 });
 });

+ 1 - 1
mobile/lib/modules/asset_viewer/providers/image_viewer_page_state.provider.dart

@@ -68,7 +68,7 @@ class ImageViewerStateNotifier extends StateNotifier<ImageViewerPageState> {
                 gravity: ToastGravity.BOTTOM,
                 gravity: ToastGravity.BOTTOM,
               );
               );
             }
             }
-            context.pop();
+            buildContext.pop();
           },
           },
         );
         );
         return const ShareDialog();
         return const ShareDialog();

+ 3 - 12
mobile/lib/modules/asset_viewer/providers/render_list.provider.dart

@@ -3,6 +3,7 @@ import 'package:immich_mobile/modules/home/ui/asset_grid/asset_grid_data_structu
 import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart';
 import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart';
 import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
 import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
 import 'package:immich_mobile/shared/models/asset.dart';
 import 'package:immich_mobile/shared/models/asset.dart';
+import 'package:immich_mobile/utils/renderlist_generator.dart';
 import 'package:isar/isar.dart';
 import 'package:isar/isar.dart';
 
 
 final renderListProvider =
 final renderListProvider =
@@ -17,16 +18,6 @@ final renderListProvider =
 
 
 final renderListQueryProvider = StreamProvider.family<RenderList,
 final renderListQueryProvider = StreamProvider.family<RenderList,
     QueryBuilder<Asset, Asset, QAfterSortBy>?>(
     QueryBuilder<Asset, Asset, QAfterSortBy>?>(
-  (ref, query) async* {
-    if (query == null) {
-      return;
-    }
-    final settings = ref.watch(appSettingsServiceProvider);
-    final groupBy = GroupAssetsBy
-        .values[settings.getSetting(AppSettingsEnum.groupAssetsBy)];
-    yield await RenderList.fromQuery(query, groupBy);
-    await for (final _ in query.watchLazy()) {
-      yield await RenderList.fromQuery(query, groupBy);
-    }
-  },
+  (ref, query) =>
+      query == null ? const Stream.empty() : renderListGenerator(query, ref),
 );
 );

Някои файлове не бяха показани, защото твърде много файлове са промени