mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
Compare commits
95 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 06b6f16cd6 | |||
| 3eb03f7934 | |||
| 03ed3daa31 | |||
| 02581e81a7 | |||
| 3ab3d5cf43 | |||
| 0ef04d9baa | |||
| df016f9228 | |||
| 17779c1e74 | |||
| 01d6a244d8 | |||
| 21d6755f39 | |||
| e91c017dd0 | |||
| 43687cd8b4 | |||
| 06729ee5a5 | |||
| b0c9743d9a | |||
| 37cc028868 | |||
| 84a2b7a3c8 | |||
| 89b3433346 | |||
| 3ff0d47ee3 | |||
| aeaf846482 | |||
| b031548791 | |||
| fcea617313 | |||
| 024f20ea26 | |||
| 0a4ed6fd71 | |||
| b6e2ce1f35 | |||
| e323e778cd | |||
| 6a87797649 | |||
| f4a4649bbc | |||
| 6ca54ee722 | |||
| 8e3035f783 | |||
| 79801595db | |||
| 3e1c8aacb1 | |||
| 91ac56cef2 | |||
| 58beac8fe0 | |||
| f632d320f5 | |||
| 2ddaf6a611 | |||
| 1932c60e1c | |||
| dc6f8e746e | |||
| ad7aedb843 | |||
| 571e6a8560 | |||
| 4791313def | |||
| f88fdae048 | |||
| bcef7aa6b6 | |||
| ce292bdce9 | |||
| 4eee023648 | |||
| 8f4b0fce49 | |||
| c6b3127b35 | |||
| 4d6a50c2cb | |||
| 15f3947ae6 | |||
| e142e3aca7 | |||
| 38438c8d9a | |||
| a278c10c75 | |||
| 2276443c56 | |||
| bb44773e57 | |||
| 14d9e90a03 | |||
| 03e042213c | |||
| db589455f4 | |||
| fb0a54d548 | |||
| 7013cc0904 | |||
| dcaf7b4a65 | |||
| 12f7b2a005 | |||
| 7837d40f57 | |||
| b4f719653f | |||
| f370b4bac6 | |||
| d788169bf3 | |||
| eea820fa2f | |||
| 271f1cb868 | |||
| 8c8dc9d32f | |||
| fd18e55f7c | |||
| faab9e620d | |||
| 5ba3efafd8 | |||
| 8b3c9bf9c3 | |||
| 41f285aa3e | |||
| fdac6c8bc4 | |||
| d7f05d2510 | |||
| 3100bd5eed | |||
| 8a024e2b50 | |||
| 25a6a38b30 | |||
| 7c6750941e | |||
| 832ed4d015 | |||
| 238895cad9 | |||
| e2ec04e86c | |||
| 6050526360 | |||
| bfd76570c5 | |||
| 37e6a49652 | |||
| 36caeb34ec | |||
| 87713c7f2f | |||
| 2039c129f2 | |||
| 52b00b0bad | |||
| 21af184045 | |||
| 1fcc2b704b | |||
| 7de73dc176 | |||
| fe2bf0c6dd | |||
| d4a97f2d25 | |||
| bd58db4fcc | |||
| 7f43c6a3a3 |
@@ -75,7 +75,7 @@
|
||||
{
|
||||
"label": "Build Immich CLI",
|
||||
"type": "shell",
|
||||
"command": "pnpm --filter cli build:dev"
|
||||
"command": "pnpm --filter @immich/cli build:dev"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ services:
|
||||
- ${UPLOAD_LOCATION:-upload-devcontainer-volume}${UPLOAD_LOCATION:+/photos}:/data
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- pnpm_store_server:/buildcache/pnpm-store
|
||||
- ../plugins:/build/corePlugin
|
||||
- ../packages/plugins:/build/corePlugin
|
||||
immich-web:
|
||||
env_file: !reset []
|
||||
immich-machine-learning:
|
||||
|
||||
+1
-3
@@ -30,9 +30,7 @@ machine-learning/
|
||||
misc/
|
||||
mobile/
|
||||
|
||||
open-api/typescript-sdk/build/
|
||||
!open-api/typescript-sdk/package.json
|
||||
!open-api/typescript-sdk/package-lock.json
|
||||
packages/sdk/build/
|
||||
|
||||
server/upload/
|
||||
server/src/queries
|
||||
|
||||
+2
-2
@@ -24,7 +24,7 @@ mobile/lib/infrastructure/repositories/db.repository.steps.dart linguist-generat
|
||||
mobile/test/drift/main/generated/** -diff -merge
|
||||
mobile/test/drift/main/generated/** linguist-generated=true
|
||||
|
||||
open-api/typescript-sdk/fetch-client.ts -diff -merge
|
||||
open-api/typescript-sdk/fetch-client.ts linguist-generated=true
|
||||
packages/sdk/fetch-client.ts -diff -merge
|
||||
packages/sdk/fetch-client.ts linguist-generated=true
|
||||
|
||||
*.sh text eol=lf
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
cli:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- cli/src/**
|
||||
- packages/cli/src/**
|
||||
|
||||
documentation:
|
||||
- changed-files:
|
||||
|
||||
@@ -73,8 +73,8 @@ jobs:
|
||||
needs: pre-job
|
||||
permissions:
|
||||
contents: read
|
||||
# Skip when PR from a fork
|
||||
if: ${{ !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' && fromJSON(needs.pre-job.outputs.should_run).mobile == true }}
|
||||
pull-requests: write
|
||||
if: ${{ github.actor != 'dependabot[bot]' && fromJSON(needs.pre-job.outputs.should_run).mobile == true }}
|
||||
runs-on: mich
|
||||
|
||||
steps:
|
||||
@@ -86,11 +86,17 @@ jobs:
|
||||
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
ref: ${{ inputs.ref || github.sha }}
|
||||
ref: ${{ inputs.ref }}
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Create the Keystore
|
||||
if: ${{ !github.event.pull_request.head.repo.fork }}
|
||||
env:
|
||||
KEY_JKS: ${{ secrets.KEY_JKS }}
|
||||
working-directory: ./mobile
|
||||
@@ -110,16 +116,8 @@ jobs:
|
||||
~/.gradle/wrapper
|
||||
~/.android/sdk
|
||||
mobile/android/.gradle
|
||||
mobile/.dart_tool
|
||||
key: build-mobile-gradle-${{ runner.os }}-main
|
||||
|
||||
- name: Setup Flutter SDK
|
||||
uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2.23.0
|
||||
with:
|
||||
channel: 'stable'
|
||||
flutter-version-file: ./mobile/pubspec.yaml
|
||||
cache: true
|
||||
|
||||
- name: Setup Android SDK
|
||||
uses: android-actions/setup-android@40fd30fb8d7440372e1316f5d1809ec01dcd3699 # v4.0.1
|
||||
with:
|
||||
@@ -130,11 +128,10 @@ jobs:
|
||||
run: flutter pub get
|
||||
|
||||
- name: Generate translation file
|
||||
run: dart run easy_localization:generate -S ../i18n && dart run bin/generate_keys.dart
|
||||
working-directory: ./mobile
|
||||
run: mise //mobile:codegen:translation
|
||||
|
||||
- name: Generate platform APIs
|
||||
run: make pigeon
|
||||
run: mise //mobile:codegen:pigeon
|
||||
working-directory: ./mobile
|
||||
|
||||
- name: Build Android App Bundle
|
||||
@@ -144,20 +141,43 @@ jobs:
|
||||
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
|
||||
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
|
||||
IS_MAIN: ${{ github.ref == 'refs/heads/main' }}
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
run: |
|
||||
if [[ $IS_MAIN == 'true' ]]; then
|
||||
flutter build apk --release
|
||||
flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64,android-x64
|
||||
else
|
||||
flutter build apk --debug --split-per-abi --target-platform android-arm64
|
||||
flutter build apk --release
|
||||
fi
|
||||
|
||||
- name: Publish Android Artifact
|
||||
id: upload-apk
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: release-apk-signed
|
||||
path: mobile/build/app/outputs/flutter-apk/*.apk
|
||||
|
||||
- name: Comment APK download link on PR
|
||||
if: ${{ github.event_name == 'pull_request' && !github.event.pull_request.head.repo.fork }}
|
||||
uses: mshick/add-pr-comment@8e4927817251f1ff60c001f04568532b38e0b4a0 # v3.11.0
|
||||
env:
|
||||
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
|
||||
APK_URL: ${{ steps.upload-apk.outputs.artifact-url }}
|
||||
with:
|
||||
github-token: ${{ steps.token.outputs.token }}
|
||||
message-id: 'mobile-android-apk'
|
||||
message: |
|
||||
📱 **Android release APK (universal)** — `${{ env.HEAD_SHA }}`
|
||||
|
||||
Download: ${{ env.APK_URL }}
|
||||
|
||||
<details>
|
||||
<summary>QR code</summary>
|
||||
<img src="https://api.qrserver.com/v1/create-qr-code/?size=240x240&data=${{ env.APK_URL }}" alt="QR code" />
|
||||
</details>
|
||||
|
||||
Installs as a separate app (applicationId `app.alextran.immich.pr${{ github.event.pull_request.number }}`), so it coexists with the Play Store version and any other PR builds.
|
||||
|
||||
- name: Save Gradle Cache
|
||||
id: cache-gradle-save
|
||||
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
@@ -168,7 +188,6 @@ jobs:
|
||||
~/.gradle/wrapper
|
||||
~/.android/sdk
|
||||
mobile/android/.gradle
|
||||
mobile/.dart_tool
|
||||
key: ${{ steps.cache-gradle-restore.outputs.cache-primary-key }}
|
||||
|
||||
build-sign-ios:
|
||||
@@ -181,6 +200,12 @@ jobs:
|
||||
runs-on: macos-15
|
||||
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@caa599d954228439ea3e8ce1c3328f41ab120ee6 # create-workflow-token-action-v2.0.0
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
|
||||
- name: Select Xcode 26
|
||||
run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer
|
||||
|
||||
@@ -190,24 +215,20 @@ jobs:
|
||||
ref: ${{ inputs.ref || github.sha }}
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup Flutter SDK
|
||||
uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2.23.0
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
channel: 'stable'
|
||||
flutter-version-file: ./mobile/pubspec.yaml
|
||||
cache: true
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Install Flutter dependencies
|
||||
working-directory: ./mobile
|
||||
run: flutter pub get
|
||||
|
||||
- name: Generate translation files
|
||||
run: dart run easy_localization:generate -S ../i18n && dart run bin/generate_keys.dart
|
||||
working-directory: ./mobile
|
||||
run: mise //mobile:codegen:translation
|
||||
|
||||
- name: Generate platform APIs
|
||||
run: make pigeon
|
||||
working-directory: ./mobile
|
||||
run: mise //mobile:codegen:pigeon
|
||||
|
||||
- name: Setup Ruby
|
||||
uses: ruby/setup-ruby@c4e5b1316158f92e3d49443a9d58b31d25ac0f8f # v1.306.0
|
||||
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Check for breaking API changes
|
||||
uses: oasdiff/oasdiff-action/breaking@37bf9ff785c7315df88216660826e71be4cc03da # v0.0.44
|
||||
uses: oasdiff/oasdiff-action/breaking@26ccb332c67a45ca649de9faf60552ef1b8260d9 # v0.0.46
|
||||
with:
|
||||
base: https://raw.githubusercontent.com/${{ github.repository }}/main/open-api/immich-openapi-specs.json
|
||||
revision: open-api/immich-openapi-specs.json
|
||||
|
||||
+12
-22
@@ -3,11 +3,11 @@ on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- 'cli/**'
|
||||
- 'packages/cli/**'
|
||||
- '.github/workflows/cli.yml'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'cli/**'
|
||||
- 'packages/cli/**'
|
||||
- '.github/workflows/cli.yml'
|
||||
release:
|
||||
types: [published]
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
packages: write
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./cli
|
||||
working-directory: ./packages/cli
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@caa599d954228439ea3e8ce1c3328f41ab120ee6 # create-workflow-token-action-v2.0.0
|
||||
@@ -36,30 +36,20 @@ jobs:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './cli/.nvmrc'
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup typescript-sdk
|
||||
run: pnpm install && pnpm run build
|
||||
working-directory: ./open-api/typescript-sdk
|
||||
|
||||
- run: pnpm install --frozen-lockfile
|
||||
- run: pnpm build
|
||||
- run: pnpm publish --provenance --no-git-checks
|
||||
- name: Publish
|
||||
if: ${{ github.event_name == 'release' }}
|
||||
run: mise run ci-publish
|
||||
|
||||
docker:
|
||||
name: Docker
|
||||
@@ -99,7 +89,7 @@ jobs:
|
||||
- name: Get package version
|
||||
id: package-version
|
||||
run: |
|
||||
version=$(jq -r '.version' cli/package.json)
|
||||
version=$(jq -r '.version' packages/cli/package.json)
|
||||
echo "version=$version" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Generate docker image tags
|
||||
@@ -117,7 +107,7 @@ jobs:
|
||||
- name: Build and push image
|
||||
uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f # v7.1.0
|
||||
with:
|
||||
file: cli/Dockerfile
|
||||
file: packages/cli/Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: ${{ github.event_name == 'release' }}
|
||||
cache-from: type=gha
|
||||
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
needs: [get_body, should_run]
|
||||
if: ${{ needs.should_run.outputs.should_run == 'true' }}
|
||||
container:
|
||||
image: ghcr.io/immich-app/mdq:main@sha256:32abe582452b12dff55055e1d6bc24508a8f17164f9d1831db7bb70953c014c6
|
||||
image: ghcr.io/immich-app/mdq:main@sha256:0a8b8867773a0f8368061f47578603f438349f8f1f28b0e16105f481e5c794e0
|
||||
outputs:
|
||||
checked: ${{ steps.get_checkbox.outputs.checked }}
|
||||
steps:
|
||||
|
||||
@@ -57,7 +57,7 @@ jobs:
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
|
||||
uses: github/codeql-action/init@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -70,7 +70,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
|
||||
uses: github/codeql-action/autobuild@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||
@@ -83,6 +83,6 @@ jobs:
|
||||
# ./location_of_script_within_repo/buildscript.sh
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4.35.2
|
||||
uses: github/codeql-action/analyze@e46ed2cbd01164d986452f91f178727624ae40d7 # v4.35.3
|
||||
with:
|
||||
category: '/language:${{matrix.language}}'
|
||||
|
||||
@@ -64,17 +64,11 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './docs/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Run install
|
||||
run: pnpm install
|
||||
|
||||
@@ -131,7 +131,7 @@ jobs:
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@01a4d354b70f99a6baf4a1b72827f6d4922e4978 # use-mise-action-v2.0.0
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@01a4d354b70f99a6baf4a1b72827f6d4922e4978 # use-mise-action-v2.0.0
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
|
||||
@@ -14,29 +14,23 @@ jobs:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Generate a token
|
||||
id: generate-token
|
||||
uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@caa599d954228439ea3e8ce1c3328f41ab120ee6 # create-workflow-token-action-v2.0.0
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
|
||||
- name: 'Checkout'
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.ref }}
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
persist-credentials: true
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Fix formatting
|
||||
run: pnpm --recursive install && pnpm run --recursive --if-present --parallel format:fix
|
||||
|
||||
@@ -17,6 +17,6 @@ jobs:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
|
||||
- uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1
|
||||
- uses: actions/labeler@f27b608878404679385c85cfa523b85ccb86e213 # v6.1.0
|
||||
with:
|
||||
repo-token: ${{ steps.token.outputs.token }}
|
||||
|
||||
@@ -48,33 +48,28 @@ jobs:
|
||||
version: ${{ steps.output.outputs.version }}
|
||||
permissions: {} # No job-level permissions are needed because it uses the app-token
|
||||
steps:
|
||||
- name: Generate a token
|
||||
id: generate-token
|
||||
uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@caa599d954228439ea3e8ce1c3328f41ab120ee6 # create-workflow-token-action-v2.0.0
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
|
||||
- name: Checkout
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
persist-credentials: true
|
||||
ref: main
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
# TODO move to mise
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@26f6d4f2c533a43e6b5da0b4a5dd983f98f7b49a # v6.0.4
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
|
||||
- name: Bump version
|
||||
env:
|
||||
SERVER_BUMP: ${{ inputs.serverBump }}
|
||||
|
||||
+11
-16
@@ -14,9 +14,6 @@ jobs:
|
||||
contents: read
|
||||
id-token: write
|
||||
packages: write
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./open-api/typescript-sdk
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@caa599d954228439ea3e8ce1c3328f41ab120ee6 # create-workflow-token-action-v2.0.0
|
||||
@@ -24,24 +21,22 @@ jobs:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
|
||||
# Setup .npmrc file to publish to npm
|
||||
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './open-api/typescript-sdk/.nvmrc'
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Install deps
|
||||
run: pnpm install --frozen-lockfile
|
||||
run: pnpm --filter @immich/sdk install --frozen-lockfile
|
||||
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
run: pnpm --filter @immich/sdk build
|
||||
|
||||
- name: Publish
|
||||
run: pnpm publish --provenance --no-git-checks
|
||||
run: pnpm --filter @immich/sdk publish --provenance --no-git-checks
|
||||
|
||||
@@ -60,38 +60,30 @@ jobs:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup Flutter SDK
|
||||
uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2.23.0
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
channel: 'stable'
|
||||
flutter-version-file: ./mobile/pubspec.yaml
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: dart pub get
|
||||
run: flutter pub get
|
||||
|
||||
- name: Install dependencies for UI package
|
||||
run: dart pub get
|
||||
run: flutter pub get
|
||||
working-directory: ./mobile/packages/ui
|
||||
|
||||
- name: Install dependencies for UI Showcase
|
||||
run: dart pub get
|
||||
run: flutter pub get
|
||||
working-directory: ./mobile/packages/ui/showcase
|
||||
|
||||
- name: Install DCM
|
||||
uses: CQLabs/setup-dcm@8697ae0790c0852e964a6ef1d768d62a6675481a # v2.0.1
|
||||
with:
|
||||
github-token: ${{ steps.token.outputs.token }}
|
||||
version: auto
|
||||
working-directory: ./mobile
|
||||
|
||||
- name: Generate translation file
|
||||
run: dart run easy_localization:generate -S ../i18n && dart run bin/generate_keys.dart
|
||||
- name: Generate translation files
|
||||
run: mise //mobile:codegen:translation
|
||||
|
||||
- name: Run Build Runner
|
||||
run: make build
|
||||
run: mise //mobile:codegen:dart
|
||||
|
||||
- name: Generate platform API
|
||||
run: make pigeon
|
||||
run: mise //mobile:codegen:pigeon
|
||||
|
||||
- name: Find file changes
|
||||
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4
|
||||
@@ -107,20 +99,16 @@ jobs:
|
||||
env:
|
||||
CHANGED_FILES: ${{ steps.verify-changed-files.outputs.changed_files }}
|
||||
run: |
|
||||
echo "ERROR: Generated files not up to date! Run 'make build' and 'make pigeon' inside the mobile directory"
|
||||
echo "ERROR: Generated files not up to date! Run 'mise //mobile:codegen:dart' and 'mise //mobile:codegen:pigeon'"
|
||||
echo "Changed files: ${CHANGED_FILES}"
|
||||
exit 1
|
||||
|
||||
- name: Run dart analyze
|
||||
run: dart analyze --fatal-infos
|
||||
- name: Run analyze
|
||||
run: mise //mobile:analyze
|
||||
|
||||
- name: Run dart format
|
||||
run: make format
|
||||
- name: Run format
|
||||
run: mise //mobile:format
|
||||
|
||||
# TODO: Re-enable after upgrading custom_lint
|
||||
# - name: Run dart custom_lint
|
||||
# run: dart run custom_lint
|
||||
|
||||
# TODO: Use https://github.com/CQLabs/dcm-action
|
||||
- name: Run DCM
|
||||
run: dcm analyze lib --fatal-style --fatal-warnings
|
||||
|
||||
+159
-202
@@ -33,14 +33,14 @@ jobs:
|
||||
web:
|
||||
- 'web/**'
|
||||
- 'i18n/**'
|
||||
- 'open-api/typescript-sdk/**'
|
||||
- 'packages/sdk/**'
|
||||
- 'pnpm-lock.yaml'
|
||||
server:
|
||||
- 'server/**'
|
||||
- 'pnpm-lock.yaml'
|
||||
cli:
|
||||
- 'cli/**'
|
||||
- 'open-api/typescript-sdk/**'
|
||||
- 'packages/cli/**'
|
||||
- 'packages/sdk/**'
|
||||
- 'pnpm-lock.yaml'
|
||||
e2e:
|
||||
- 'e2e/**'
|
||||
@@ -78,28 +78,14 @@ jobs:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
- name: Run package manager install
|
||||
run: pnpm install
|
||||
- name: Run linter
|
||||
run: pnpm lint
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run formatter
|
||||
run: pnpm format
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run tsc
|
||||
run: pnpm check
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run small tests & coverage
|
||||
run: pnpm test
|
||||
if: ${{ !cancelled() }}
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Run ci-unit
|
||||
run: mise run ci-unit
|
||||
|
||||
cli-unit-tests:
|
||||
name: Unit Test CLI
|
||||
needs: pre-job
|
||||
@@ -109,7 +95,7 @@ jobs:
|
||||
contents: read
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./cli
|
||||
working-directory: ./packages/cli
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@caa599d954228439ea3e8ce1c3328f41ab120ee6 # create-workflow-token-action-v2.0.0
|
||||
@@ -122,31 +108,15 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './cli/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
- name: Setup typescript-sdk
|
||||
run: pnpm install && pnpm run build
|
||||
working-directory: ./open-api/typescript-sdk
|
||||
- name: Install deps
|
||||
run: pnpm install
|
||||
- name: Run linter
|
||||
run: pnpm lint
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run formatter
|
||||
run: pnpm format
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run tsc
|
||||
run: pnpm check
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run unit tests & coverage
|
||||
run: pnpm test
|
||||
if: ${{ !cancelled() }}
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Run ci-unit
|
||||
run: mise run ci-unit
|
||||
|
||||
cli-unit-tests-win:
|
||||
name: Unit Test CLI (Windows)
|
||||
needs: pre-job
|
||||
@@ -156,7 +126,7 @@ jobs:
|
||||
contents: read
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./cli
|
||||
working-directory: ./packages/cli
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@caa599d954228439ea3e8ce1c3328f41ab120ee6 # create-workflow-token-action-v2.0.0
|
||||
@@ -169,26 +139,28 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './cli/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
- name: Setup typescript-sdk
|
||||
run: pnpm install --frozen-lockfile && pnpm build
|
||||
working-directory: ./open-api/typescript-sdk
|
||||
- name: Install deps
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Run setup @immich/sdk
|
||||
run: mise run //:sdk:install && mise run //:sdk:build
|
||||
|
||||
- name: Run pnpm install
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
# Skip linter & formatter in Windows test.
|
||||
|
||||
- name: Run tsc
|
||||
run: pnpm check
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Run unit tests & coverage
|
||||
run: pnpm test
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
web-lint:
|
||||
name: Lint Web
|
||||
needs: pre-job
|
||||
@@ -211,28 +183,22 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './web/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
- name: Run setup typescript-sdk
|
||||
run: pnpm install --frozen-lockfile && pnpm build
|
||||
working-directory: ./open-api/typescript-sdk
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Run setup @immich/sdk
|
||||
run: mise run //:sdk:install && mise run //:sdk:build
|
||||
|
||||
- name: Run pnpm install
|
||||
run: pnpm rebuild && pnpm install --frozen-lockfile
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
- name: Run linter
|
||||
run: pnpm lint
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run formatter
|
||||
run: pnpm format
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run svelte checks
|
||||
run: pnpm check:svelte
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
web-unit-tests:
|
||||
name: Test Web
|
||||
needs: pre-job
|
||||
@@ -255,25 +221,15 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './web/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
- name: Run setup typescript-sdk
|
||||
run: pnpm install --frozen-lockfile && pnpm build
|
||||
working-directory: ./open-api/typescript-sdk
|
||||
- name: Run npm install
|
||||
run: pnpm install --frozen-lockfile
|
||||
- name: Run tsc
|
||||
run: pnpm check:typescript
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run unit tests & coverage
|
||||
run: pnpm test
|
||||
if: ${{ !cancelled() }}
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Run ci-unit
|
||||
run: mise run ci-unit
|
||||
|
||||
i18n-tests:
|
||||
name: Test i18n
|
||||
needs: pre-job
|
||||
@@ -293,24 +249,25 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './web/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm --filter=immich-i18n install --frozen-lockfile
|
||||
run: pnpm -w install --frozen-lockfile
|
||||
|
||||
- name: Format
|
||||
run: pnpm --filter=immich-i18n format:fix
|
||||
run: pnpm format:fix
|
||||
|
||||
- name: Find file changes
|
||||
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4
|
||||
id: verify-changed-files
|
||||
with:
|
||||
files: |
|
||||
i18n/**
|
||||
|
||||
- name: Verify files have not changed
|
||||
if: steps.verify-changed-files.outputs.files_changed == 'true'
|
||||
env:
|
||||
@@ -319,6 +276,7 @@ jobs:
|
||||
echo "ERROR: i18n files not up to date!"
|
||||
echo "Changed files: ${CHANGED_FILES}"
|
||||
exit 1
|
||||
|
||||
e2e-tests-lint:
|
||||
name: End-to-End Lint
|
||||
needs: pre-job
|
||||
@@ -341,30 +299,16 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './e2e/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
- name: Run setup typescript-sdk
|
||||
run: pnpm install --frozen-lockfile && pnpm build
|
||||
working-directory: ./open-api/typescript-sdk
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run linter
|
||||
run: pnpm lint
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run formatter
|
||||
run: pnpm format
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run tsc
|
||||
run: pnpm check
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Run ci-unit
|
||||
run: mise run ci-unit
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
server-medium-tests:
|
||||
name: Medium Tests (Server)
|
||||
needs: pre-job
|
||||
@@ -388,23 +332,16 @@ jobs:
|
||||
persist-credentials: false
|
||||
submodules: 'recursive'
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@01a4d354b70f99a6baf4a1b72827f6d4922e4978 # use-mise-action-v2.0.0
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
- name: Run pnpm install
|
||||
run: SHARP_IGNORE_GLOBAL_LIBVIPS=true pnpm install --frozen-lockfile
|
||||
- name: Run medium tests
|
||||
run: pnpm test:medium
|
||||
|
||||
- name: Run ci-medium
|
||||
run: mise run ci-medium
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
e2e-tests-server-cli:
|
||||
name: End-to-End Tests (Server & CLI)
|
||||
needs: pre-job
|
||||
@@ -431,52 +368,57 @@ jobs:
|
||||
persist-credentials: false
|
||||
submodules: 'recursive'
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version-file: './e2e/.nvmrc'
|
||||
node-version-file: '.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
- name: Run setup typescript-sdk
|
||||
run: pnpm install --frozen-lockfile && pnpm build
|
||||
working-directory: ./open-api/typescript-sdk
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Setup packages
|
||||
run: pnpm --filter "@immich/*" install --frozen-lockfile && pnpm --filter "@immich/*" build
|
||||
|
||||
- name: Run setup web
|
||||
run: pnpm install --frozen-lockfile && pnpm exec svelte-kit sync
|
||||
working-directory: ./web
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run setup cli
|
||||
run: pnpm install --frozen-lockfile && pnpm build
|
||||
working-directory: ./cli
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Start Docker Compose
|
||||
run: docker compose up -d --build --renew-anon-volumes --force-recreate --remove-orphans --wait --wait-timeout 300
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Run e2e tests (api & cli)
|
||||
env:
|
||||
VITEST_DISABLE_DOCKER_SETUP: true
|
||||
run: pnpm test
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Run e2e tests (maintenance)
|
||||
env:
|
||||
VITEST_DISABLE_DOCKER_SETUP: true
|
||||
run: pnpm test:maintenance
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Capture Docker logs
|
||||
if: always()
|
||||
run: docker compose logs --no-color > docker-compose-logs.txt
|
||||
working-directory: ./e2e
|
||||
|
||||
- name: Archive Docker logs
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
if: always()
|
||||
with:
|
||||
name: e2e-server-docker-logs-${{ matrix.runner }}
|
||||
path: e2e/docker-compose-logs.txt
|
||||
|
||||
e2e-tests-web:
|
||||
name: End-to-End Tests (Web)
|
||||
needs: pre-job
|
||||
@@ -503,70 +445,84 @@ jobs:
|
||||
persist-credentials: false
|
||||
submodules: 'recursive'
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version-file: './e2e/.nvmrc'
|
||||
node-version-file: '.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
- name: Run setup typescript-sdk
|
||||
run: pnpm install --frozen-lockfile && pnpm build
|
||||
working-directory: ./open-api/typescript-sdk
|
||||
|
||||
- name: Run setup @immich/sdk
|
||||
run: pnpm --filter @immich/sdk install --frozen-lockfile && pnpm --filter @immich/sdk build
|
||||
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Install Playwright Browsers
|
||||
run: pnpm exec playwright install chromium --only-shell
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Docker build
|
||||
run: docker compose up -d --build --renew-anon-volumes --force-recreate --remove-orphans --wait --wait-timeout 300
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Run e2e tests (web)
|
||||
env:
|
||||
PLAYWRIGHT_DISABLE_WEBSERVER: true
|
||||
run: pnpm test:web
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Archive e2e test (web) results
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
if: success() || failure()
|
||||
with:
|
||||
name: e2e-web-test-results-${{ matrix.runner }}
|
||||
path: e2e/playwright-report/
|
||||
|
||||
- name: Run ui tests (web)
|
||||
env:
|
||||
PLAYWRIGHT_DISABLE_WEBSERVER: true
|
||||
run: pnpm test:web:ui
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Archive ui test (web) results
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
if: success() || failure()
|
||||
with:
|
||||
name: e2e-ui-test-results-${{ matrix.runner }}
|
||||
path: e2e/playwright-report/
|
||||
|
||||
- name: Run maintenance tests
|
||||
env:
|
||||
PLAYWRIGHT_DISABLE_WEBSERVER: true
|
||||
run: pnpm test:web:maintenance
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
- name: Archive maintenance tests (web) results
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
if: success() || failure()
|
||||
with:
|
||||
name: e2e-maintenance-isolated-test-results-${{ matrix.runner }}
|
||||
path: e2e/playwright-report/
|
||||
|
||||
- name: Capture Docker logs
|
||||
if: always()
|
||||
run: docker compose logs --no-color > docker-compose-logs.txt
|
||||
working-directory: ./e2e
|
||||
|
||||
- name: Archive Docker logs
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
if: always()
|
||||
with:
|
||||
name: e2e-web-docker-logs-${{ matrix.runner }}
|
||||
path: e2e/docker-compose-logs.txt
|
||||
|
||||
success-check-e2e:
|
||||
name: End-to-End Tests Success
|
||||
needs: [e2e-tests-server-cli, e2e-tests-web]
|
||||
@@ -595,17 +551,22 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
- name: Setup Flutter SDK
|
||||
uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2.23.0
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
channel: 'stable'
|
||||
flutter-version-file: ./mobile/pubspec.yaml
|
||||
- name: Generate translation file
|
||||
run: dart run easy_localization:generate -S ../i18n && dart run bin/generate_keys.dart
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: flutter pub get
|
||||
working-directory: ./mobile
|
||||
|
||||
- name: Generate translation files
|
||||
run: mise //mobile:codegen:translation
|
||||
|
||||
- name: Run tests
|
||||
working-directory: ./mobile
|
||||
run: flutter test -j 1
|
||||
run: mise //mobile:test
|
||||
|
||||
ml-unit-tests:
|
||||
name: Unit Test ML
|
||||
needs: pre-job
|
||||
@@ -613,9 +574,6 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
env:
|
||||
MISE_CEILING_PATHS: ${{ github.workspace }}
|
||||
MISE_TRUSTED_CONFIG_PATHS: ${{ github.workspace }}/machine-learning/mise.toml
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ./machine-learning
|
||||
@@ -632,21 +590,13 @@ jobs:
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@01a4d354b70f99a6baf4a1b72827f6d4922e4978 # use-mise-action-v2.0.0
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
working_directory: ./machine-learning
|
||||
|
||||
- name: Install dependencies
|
||||
run: mise run install --extra cpu
|
||||
- name: Lint code
|
||||
run: mise run lint --output-format=github
|
||||
- name: Format code
|
||||
run: mise run format
|
||||
- name: Run type checking
|
||||
run: mise run check
|
||||
- name: Run tests and coverage
|
||||
run: mise run test
|
||||
- name: Run ci-unit
|
||||
run: mise run ci-unit
|
||||
|
||||
github-files-formatting:
|
||||
name: .github Files Formatting
|
||||
needs: pre-job
|
||||
@@ -669,19 +619,19 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './.github/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Run pnpm install
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
- name: Run formatter
|
||||
run: pnpm format
|
||||
if: ${{ !cancelled() }}
|
||||
|
||||
shellcheck:
|
||||
name: ShellCheck
|
||||
runs-on: ubuntu-latest
|
||||
@@ -720,29 +670,28 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Install server dependencies
|
||||
run: SHARP_IGNORE_GLOBAL_LIBVIPS=true pnpm --filter immich install --frozen-lockfile
|
||||
- name: Build the app
|
||||
run: pnpm --filter immich build
|
||||
|
||||
- name: Run API generation
|
||||
run: ./bin/generate-open-api.sh
|
||||
run: mise //:open-api
|
||||
working-directory: open-api
|
||||
|
||||
- name: Find file changes
|
||||
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4
|
||||
id: verify-changed-files
|
||||
with:
|
||||
files: |
|
||||
mobile/openapi
|
||||
open-api/typescript-sdk
|
||||
packages/sdk
|
||||
open-api/immich-openapi-specs.json
|
||||
|
||||
- name: Verify files have not changed
|
||||
if: steps.verify-changed-files.outputs.files_changed == 'true'
|
||||
env:
|
||||
@@ -751,6 +700,7 @@ jobs:
|
||||
echo "ERROR: Generated files not up to date!"
|
||||
echo "Changed files: ${CHANGED_FILES}"
|
||||
exit 1
|
||||
|
||||
sql-schema-up-to-date:
|
||||
name: SQL Schema Checks
|
||||
runs-on: ubuntu-latest
|
||||
@@ -782,31 +732,35 @@ jobs:
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
|
||||
- name: Setup Mise
|
||||
uses: immich-app/devtools/actions/use-mise@cf6e190bacde3d7bda59372a786b36ac7d01536a # use-mise-action-v2.0.1
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
cache-dependency-path: '**/pnpm-lock.yaml'
|
||||
github_token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Install server dependencies
|
||||
run: SHARP_IGNORE_GLOBAL_LIBVIPS=true pnpm install --frozen-lockfile
|
||||
|
||||
- name: Build the app
|
||||
run: pnpm build
|
||||
|
||||
- name: Run existing migrations
|
||||
run: pnpm migrations:run
|
||||
|
||||
- name: Test npm run schema:reset command works
|
||||
run: pnpm schema:reset
|
||||
|
||||
- name: Generate new migrations
|
||||
continue-on-error: true
|
||||
run: pnpm migrations:generate src/TestMigration
|
||||
|
||||
- name: Find file changes
|
||||
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4
|
||||
id: verify-changed-files
|
||||
with:
|
||||
files: |
|
||||
server/src
|
||||
|
||||
- name: Verify migration files have not changed
|
||||
if: steps.verify-changed-files.outputs.files_changed == 'true'
|
||||
env:
|
||||
@@ -816,16 +770,19 @@ jobs:
|
||||
echo "Changed files: ${CHANGED_FILES}"
|
||||
cat ./src/*-TestMigration.ts
|
||||
exit 1
|
||||
|
||||
- name: Run SQL generation
|
||||
run: pnpm sync:sql
|
||||
run: mise //:sql
|
||||
env:
|
||||
DB_URL: postgres://postgres:postgres@localhost:5432/immich
|
||||
|
||||
- name: Find file changes
|
||||
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4
|
||||
id: verify-changed-sql-files
|
||||
with:
|
||||
files: |
|
||||
server/src/queries
|
||||
|
||||
- name: Verify SQL files have not changed
|
||||
if: steps.verify-changed-sql-files.outputs.files_changed == 'true'
|
||||
env:
|
||||
|
||||
@@ -36,7 +36,7 @@ jobs:
|
||||
github-token: ${{ steps.token.outputs.token }}
|
||||
filters: |
|
||||
i18n:
|
||||
- modified: 'i18n/!(en|package)**\.json'
|
||||
- modified: 'i18n/!(en)**\.json'
|
||||
skip-force-logic: 'true'
|
||||
|
||||
enforce-lock:
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@ mobile/openapi/doc
|
||||
mobile/openapi/.openapi-generator/FILES
|
||||
mobile/ios/build
|
||||
|
||||
open-api/typescript-sdk/build
|
||||
packages/**/build
|
||||
mobile/android/fastlane/report.xml
|
||||
mobile/ios/fastlane/report.xml
|
||||
|
||||
|
||||
Vendored
+6
-4
@@ -23,15 +23,17 @@
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Immich CLI",
|
||||
"program": "${workspaceFolder}/cli/dist/index.js",
|
||||
"program": "${workspaceFolder}/packages/cli/dist/index.js",
|
||||
"args": ["upload", "--help"],
|
||||
"runtimeArgs": ["--enable-source-maps"],
|
||||
"console": "integratedTerminal",
|
||||
"resolveSourceMapLocations": ["${workspaceFolder}/cli/dist/**/*.js.map"],
|
||||
"resolveSourceMapLocations": [
|
||||
"${workspaceFolder}/packages/cli/dist/**/*.js.map"
|
||||
],
|
||||
"sourceMaps": true,
|
||||
"outFiles": ["${workspaceFolder}/cli/dist/**/*.js"],
|
||||
"outFiles": ["${workspaceFolder}/packages/cli/dist/**/*.js"],
|
||||
"skipFiles": ["<node_internals>/**"],
|
||||
"preLaunchTask": "Build Immich CLI"
|
||||
"preLaunchTask": "Build @immich/cli"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -37,105 +37,24 @@ prod-scale:
|
||||
|
||||
.PHONY: open-api
|
||||
open-api:
|
||||
cd ./open-api && bash ./bin/generate-open-api.sh
|
||||
|
||||
open-api-dart:
|
||||
cd ./open-api && bash ./bin/generate-open-api.sh dart
|
||||
|
||||
open-api-typescript:
|
||||
cd ./open-api && bash ./bin/generate-open-api.sh typescript
|
||||
@printf "This command has been removed. Please use:\n\n mise open-api # or mise //:open-api from another directory\n\n"\n\n >&2 && exit 1
|
||||
|
||||
sql:
|
||||
pnpm --filter immich run sync:sql
|
||||
@printf "This command has been removed. Please use:\n\n mise sql # or mise //:sql from another directory\n\n"\n\n >&2 && exit 1
|
||||
|
||||
attach-server:
|
||||
docker exec -it docker_immich-server_1 sh
|
||||
|
||||
renovate:
|
||||
LOG_LEVEL=debug pnpm exec renovate --platform=local --repository-cache=reset
|
||||
|
||||
# Directories that need to be created for volumes or build output
|
||||
VOLUME_DIRS = \
|
||||
./.pnpm-store \
|
||||
./web/.svelte-kit \
|
||||
./web/node_modules \
|
||||
./web/coverage \
|
||||
./e2e/node_modules \
|
||||
./docs/node_modules \
|
||||
./server/node_modules \
|
||||
./open-api/typescript-sdk/node_modules \
|
||||
./.github/node_modules \
|
||||
./node_modules \
|
||||
./cli/node_modules
|
||||
|
||||
# Include .env file if it exists
|
||||
-include docker/.env
|
||||
|
||||
MODULES = e2e server web cli sdk docs .github
|
||||
|
||||
# directory to package name mapping function
|
||||
# cli = @immich/cli
|
||||
# docs = documentation
|
||||
# e2e = immich-e2e
|
||||
# open-api/typescript-sdk = @immich/sdk
|
||||
# server = immich
|
||||
# web = immich-web
|
||||
map-package = $(subst sdk,@immich/sdk,$(subst cli,@immich/cli,$(subst docs,documentation,$(subst e2e,immich-e2e,$(subst server,immich,$(subst web,immich-web,$1))))))
|
||||
|
||||
audit-%:
|
||||
pnpm --filter $(call map-package,$*) audit fix
|
||||
install-%:
|
||||
pnpm --filter $(call map-package,$*) install $(if $(FROZEN),--frozen-lockfile) $(if $(OFFLINE),--offline)
|
||||
build-cli: build-sdk
|
||||
build-web: build-sdk
|
||||
build-%: install-%
|
||||
pnpm --filter $(call map-package,$*) run build
|
||||
format-%:
|
||||
pnpm --filter $(call map-package,$*) run format:fix
|
||||
lint-%:
|
||||
pnpm --filter $(call map-package,$*) run lint:fix
|
||||
check-%:
|
||||
pnpm --filter $(call map-package,$*) run check
|
||||
check-web:
|
||||
pnpm --filter immich-web run check:typescript
|
||||
pnpm --filter immich-web run check:svelte
|
||||
test-%:
|
||||
pnpm --filter $(call map-package,$*) run test
|
||||
test-e2e:
|
||||
docker compose -f ./e2e/docker-compose.yml build
|
||||
pnpm --filter immich-e2e run test
|
||||
pnpm --filter immich-e2e run test:web
|
||||
test-medium:
|
||||
docker run \
|
||||
--rm \
|
||||
-v ./server/src:/usr/src/app/src \
|
||||
-v ./server/test:/usr/src/app/test \
|
||||
-v ./server/vitest.config.medium.mjs:/usr/src/app/vitest.config.medium.mjs \
|
||||
-v ./server/tsconfig.json:/usr/src/app/tsconfig.json \
|
||||
-e NODE_ENV=development \
|
||||
immich-server:latest \
|
||||
-c "pnpm test:medium -- --run"
|
||||
test-medium-dev:
|
||||
docker exec -it immich_server /bin/sh -c "pnpm run test:medium"
|
||||
|
||||
install-all:
|
||||
pnpm -r --filter '!documentation' install
|
||||
|
||||
build-all: $(foreach M,$(filter-out e2e docs .github,$(MODULES)),build-$M) ;
|
||||
|
||||
check-all:
|
||||
pnpm -r --filter '!documentation' run "/^(check|check\:svelte|check\:typescript)$/"
|
||||
lint-all:
|
||||
pnpm -r --filter '!documentation' run lint:fix
|
||||
format-all:
|
||||
pnpm -r --filter '!documentation' run format:fix
|
||||
audit-all:
|
||||
pnpm -r --filter '!documentation' audit fix
|
||||
hygiene-all: audit-all
|
||||
pnpm -r --filter '!documentation' run "/(format:fix|check|check:svelte|check:typescript|sql)/"
|
||||
|
||||
test-all:
|
||||
pnpm -r --filter '!documentation' run "/^test/"
|
||||
|
||||
clean:
|
||||
find . -name "node_modules" -type d -prune -exec rm -rf {} +
|
||||
@@ -146,7 +65,3 @@ clean:
|
||||
find . -name ".pnpm-store" -type d -prune -exec rm -rf '{}' +
|
||||
command -v docker >/dev/null 2>&1 && docker compose -f ./docker/docker-compose.dev.yml down -v --remove-orphans || true
|
||||
command -v docker >/dev/null 2>&1 && docker compose -f ./e2e/docker-compose.yml down -v --remove-orphans || true
|
||||
|
||||
|
||||
setup-server-dev: install-server
|
||||
setup-web-dev: install-sdk build-sdk install-web
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
24.15.0
|
||||
@@ -1,14 +0,0 @@
|
||||
FROM node:24.1.0-alpine3.20@sha256:8fe019e0d57dbdce5f5c27c0b63d2775cf34b00e3755a7dea969802d7e0c2b25 AS core
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
COPY package* pnpm* .pnpmfile.cjs ./
|
||||
COPY ./cli ./cli/
|
||||
COPY ./open-api/typescript-sdk ./open-api/typescript-sdk/
|
||||
RUN corepack enable pnpm && \
|
||||
pnpm install --filter @immich/sdk --filter @immich/cli --frozen-lockfile && \
|
||||
pnpm --filter @immich/sdk build && \
|
||||
pnpm --filter @immich/cli build
|
||||
|
||||
WORKDIR /import
|
||||
|
||||
ENTRYPOINT ["node", "/usr/src/app/cli/dist"]
|
||||
+30
-30
@@ -2,37 +2,37 @@
|
||||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.opentofu.org/cloudflare/cloudflare" {
|
||||
version = "4.52.5"
|
||||
constraints = "4.52.5"
|
||||
version = "4.52.7"
|
||||
constraints = "4.52.7"
|
||||
hashes = [
|
||||
"h1:+rfzF+16ZcWZWnTyW/p1HHTzYbPKX8Zt2nIFtR/+f+E=",
|
||||
"h1:18bXaaOSq8MWKuMxo/4y7EB7/i7G90y5QsKHZRmkoDo=",
|
||||
"h1:4vZVOpKeEQZsF2VrARRZFeL37Ed/gD4rRMtfnvWQres=",
|
||||
"h1:BZOsTF83QPKXTAaYqxPKzdl1KRjk/L2qbPpFjM0w28A=",
|
||||
"h1:CDuC+HXLvc1z6wkCRsSDcc/+QENIHEtssYshiWg3opA=",
|
||||
"h1:DE+YFzLnqSe79pI2R4idRGx5QzLdrA7RXvngTkGfZ30=",
|
||||
"h1:DfaJwH3Ml4yrRbdAY4AcDVy0QTQk5T3A622TXzS/u2E=",
|
||||
"h1:EIDXP0W3kgIv2pecrFmqtK/DnlqkyckzBzhxKaXU+4A=",
|
||||
"h1:EV4kYyaOnwGA0bh/3hU6Ezqnt1PFDxopH7i85e48IzY=",
|
||||
"h1:M0iXabfzamU+MPDi0G9XACpbacFKMakmM+Z9HZ8HrsM=",
|
||||
"h1:YWmCbGF/KbsrUzcYVBLscwLizidbp95TDQa0N2qpmVo=",
|
||||
"h1:cxPcCB5gbrpUO1+IXkQYs1YTY50/0IlApCzGea0cwuQ=",
|
||||
"h1:g6DldikTV2HXUu9uoeNY5FuLufgaYWF4ufgZg7wq62s=",
|
||||
"h1:oi/Hrx9pwoQ+Z52CBC+rrowVH387EIj0qvnxQgDeI+0=",
|
||||
"zh:1a3400cb38863b2585968d1876706bcfc67a148e1318a1d325c6c7704adc999b",
|
||||
"zh:4c5062cb9e9da1676f06ae92b8370186d98976cc4c7030d3cd76df12af54282a",
|
||||
"zh:52110f493b5f0587ef77a1cfd1a67001fd4c617b14c6502d732ab47352bdc2f7",
|
||||
"zh:5aa536f9eaeb43823aaf2aa80e7d39b25ef2b383405ed034aa16a28b446a9238",
|
||||
"zh:5cc39459a1c6be8a918f17054e4fbba573825ed5597dcada588fe99614d98a5b",
|
||||
"zh:629ae6a7ba298815131da826474d199312d21cec53a4d5ded4fa56a692e6f072",
|
||||
"zh:719cc7c75dc1d3eb30c22ff5102a017996d9788b948078c7e1c5b3446aeca661",
|
||||
"zh:8698635a3ca04383c1e93b21d6963346bdae54d27177a48e4b1435b7f731731c",
|
||||
"h1:+O72J3QYiZtYmYYZM/Eh0f4NNfl1BvjX1eju43qTQsQ=",
|
||||
"h1:0oqjYIPXcXh7XiDiKI085cHDYQQ5mh8kDl9dmBtvtog=",
|
||||
"h1:4b4ESb87MGv5bnadgYe7sK5rEkKMZhbkQcwPubQTsR4=",
|
||||
"h1:6mTr3eA1Ddb348lLmJuyvn98z4KF+ejqaUEJ76D1rzQ=",
|
||||
"h1:9/3YH+9k9HqsvFtbmBf7SO2+xqZeZrXNKzLkjNuhUEA=",
|
||||
"h1:Jcq4tBWgyH4/2JsojNBSRaN0mcItVMchO+lynonrlqc=",
|
||||
"h1:Y4Vv/2RdP0Q+uxqhOxzOdKxuuEMjXPDcU0vPc5bCQzI=",
|
||||
"h1:a0gW8FBKsbP9Fi0HEDoy49WIbEWVHk9+BR4/iwuBdDQ=",
|
||||
"h1:gElv6iqJtg8OKN77gbw+MjrkrQmJHPkkMEi1J+0xkpU=",
|
||||
"h1:oslXUugD/NQ+duJgT4BhKQyfGbuFOANknMvR73fiOeM=",
|
||||
"h1:pPItIWii5oymR+geZB219ROSPuSODPLTlM4S/u8xLvM=",
|
||||
"h1:u67GWw8GwD9NDlDzp9Y5VRnSQGcCrE8rSpkGPaBpDl0=",
|
||||
"h1:uUUa9dY0XQOycI8pxg16PFFtL0WCTi9uEJz8trTQ7pU=",
|
||||
"h1:y3rV8KF2q6GEMANNlf5EkKJurlfbKlIKpjGcdxoy7pQ=",
|
||||
"zh:0c904ce31a4c6c4a5b3bf7ff1560e77c0cc7e2450c8553ded8e8c90398e1418b",
|
||||
"zh:36183d310c36373fe4cb936b83c595c6fd3b0a94bc7827f28e5789ccbf59752e",
|
||||
"zh:556a568a6f0235e8f41647de9e4d3a1e7b1d6502df8b19b54ec441f1c653ea10",
|
||||
"zh:633ebbd5b0245e75e500ef9be4d9e62288f97e8da3baaa51323892a786d90285",
|
||||
"zh:6acfe60cf52a65ba8f044f748548d2119e7f4fd7f8ebcb14698960d87c68f529",
|
||||
"zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f",
|
||||
"zh:8a9993f1dcadf1dd6ca43b23348abe374605d29945a2fafc07fb3457644e6a54",
|
||||
"zh:b1b9a1e6bcc24d5863a664a411d2dc906373ae7a2399d2d65548ce7377057852",
|
||||
"zh:b270184cdeec277218e84b94cb136fead753da717f9b9dc378e51907f3f00bb0",
|
||||
"zh:dff2bc10071210181726ce270f954995fe42c696e61e2e8f874021fed02521e5",
|
||||
"zh:e8e87b40b6a87dc097b0fdc20d3f725cec0d82abc9cc3755c1f89f8f6e8b0036",
|
||||
"zh:ee964a6573d399a5dd22ce328fb38ca1207797a02248f14b2e4913ee390e7803",
|
||||
"zh:904acc31ebb9d6ef68c792074b30532ee61bf515f19e0a3c75b46f126cca1f13",
|
||||
"zh:a1d0a81246afc8750286d3f6fe7a8fbe6460dd2662407b28dbfbabb612e5fa9d",
|
||||
"zh:a41a36fe253fc365fe2b7ffc749624688b2693b4634862fda161179ab100029f",
|
||||
"zh:a7ef269e77ffa8715c8945a2c14322c7ff159ea44c15f62505f3cbb2cae3b32d",
|
||||
"zh:b01aa3bed30610633b762df64332b26f8844a68c3960cebcb30f04918efc67fe",
|
||||
"zh:b069cc2cd18cae10757df3ae030508eac8d55de7e49eda7a5e3e11f2f7fe6455",
|
||||
"zh:b2d2c6313729ebb7465dceece374049e2d08bda34473901be9ff46a8836d42b2",
|
||||
"zh:db0e114edaf4bc2f3d4769958807c83022bfbc619a00bdf4c4bd17faa4ab2d8b",
|
||||
"zh:ecc0aa8b9044f664fd2aaf8fa992d976578f78478980555b4b8f6148e8d1a5fe",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ terraform {
|
||||
required_providers {
|
||||
cloudflare = {
|
||||
source = "cloudflare/cloudflare"
|
||||
version = "4.52.5"
|
||||
version = "4.52.7"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+30
-30
@@ -2,37 +2,37 @@
|
||||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.opentofu.org/cloudflare/cloudflare" {
|
||||
version = "4.52.5"
|
||||
constraints = "4.52.5"
|
||||
version = "4.52.7"
|
||||
constraints = "4.52.7"
|
||||
hashes = [
|
||||
"h1:+rfzF+16ZcWZWnTyW/p1HHTzYbPKX8Zt2nIFtR/+f+E=",
|
||||
"h1:18bXaaOSq8MWKuMxo/4y7EB7/i7G90y5QsKHZRmkoDo=",
|
||||
"h1:4vZVOpKeEQZsF2VrARRZFeL37Ed/gD4rRMtfnvWQres=",
|
||||
"h1:BZOsTF83QPKXTAaYqxPKzdl1KRjk/L2qbPpFjM0w28A=",
|
||||
"h1:CDuC+HXLvc1z6wkCRsSDcc/+QENIHEtssYshiWg3opA=",
|
||||
"h1:DE+YFzLnqSe79pI2R4idRGx5QzLdrA7RXvngTkGfZ30=",
|
||||
"h1:DfaJwH3Ml4yrRbdAY4AcDVy0QTQk5T3A622TXzS/u2E=",
|
||||
"h1:EIDXP0W3kgIv2pecrFmqtK/DnlqkyckzBzhxKaXU+4A=",
|
||||
"h1:EV4kYyaOnwGA0bh/3hU6Ezqnt1PFDxopH7i85e48IzY=",
|
||||
"h1:M0iXabfzamU+MPDi0G9XACpbacFKMakmM+Z9HZ8HrsM=",
|
||||
"h1:YWmCbGF/KbsrUzcYVBLscwLizidbp95TDQa0N2qpmVo=",
|
||||
"h1:cxPcCB5gbrpUO1+IXkQYs1YTY50/0IlApCzGea0cwuQ=",
|
||||
"h1:g6DldikTV2HXUu9uoeNY5FuLufgaYWF4ufgZg7wq62s=",
|
||||
"h1:oi/Hrx9pwoQ+Z52CBC+rrowVH387EIj0qvnxQgDeI+0=",
|
||||
"zh:1a3400cb38863b2585968d1876706bcfc67a148e1318a1d325c6c7704adc999b",
|
||||
"zh:4c5062cb9e9da1676f06ae92b8370186d98976cc4c7030d3cd76df12af54282a",
|
||||
"zh:52110f493b5f0587ef77a1cfd1a67001fd4c617b14c6502d732ab47352bdc2f7",
|
||||
"zh:5aa536f9eaeb43823aaf2aa80e7d39b25ef2b383405ed034aa16a28b446a9238",
|
||||
"zh:5cc39459a1c6be8a918f17054e4fbba573825ed5597dcada588fe99614d98a5b",
|
||||
"zh:629ae6a7ba298815131da826474d199312d21cec53a4d5ded4fa56a692e6f072",
|
||||
"zh:719cc7c75dc1d3eb30c22ff5102a017996d9788b948078c7e1c5b3446aeca661",
|
||||
"zh:8698635a3ca04383c1e93b21d6963346bdae54d27177a48e4b1435b7f731731c",
|
||||
"h1:+O72J3QYiZtYmYYZM/Eh0f4NNfl1BvjX1eju43qTQsQ=",
|
||||
"h1:0oqjYIPXcXh7XiDiKI085cHDYQQ5mh8kDl9dmBtvtog=",
|
||||
"h1:4b4ESb87MGv5bnadgYe7sK5rEkKMZhbkQcwPubQTsR4=",
|
||||
"h1:6mTr3eA1Ddb348lLmJuyvn98z4KF+ejqaUEJ76D1rzQ=",
|
||||
"h1:9/3YH+9k9HqsvFtbmBf7SO2+xqZeZrXNKzLkjNuhUEA=",
|
||||
"h1:Jcq4tBWgyH4/2JsojNBSRaN0mcItVMchO+lynonrlqc=",
|
||||
"h1:Y4Vv/2RdP0Q+uxqhOxzOdKxuuEMjXPDcU0vPc5bCQzI=",
|
||||
"h1:a0gW8FBKsbP9Fi0HEDoy49WIbEWVHk9+BR4/iwuBdDQ=",
|
||||
"h1:gElv6iqJtg8OKN77gbw+MjrkrQmJHPkkMEi1J+0xkpU=",
|
||||
"h1:oslXUugD/NQ+duJgT4BhKQyfGbuFOANknMvR73fiOeM=",
|
||||
"h1:pPItIWii5oymR+geZB219ROSPuSODPLTlM4S/u8xLvM=",
|
||||
"h1:u67GWw8GwD9NDlDzp9Y5VRnSQGcCrE8rSpkGPaBpDl0=",
|
||||
"h1:uUUa9dY0XQOycI8pxg16PFFtL0WCTi9uEJz8trTQ7pU=",
|
||||
"h1:y3rV8KF2q6GEMANNlf5EkKJurlfbKlIKpjGcdxoy7pQ=",
|
||||
"zh:0c904ce31a4c6c4a5b3bf7ff1560e77c0cc7e2450c8553ded8e8c90398e1418b",
|
||||
"zh:36183d310c36373fe4cb936b83c595c6fd3b0a94bc7827f28e5789ccbf59752e",
|
||||
"zh:556a568a6f0235e8f41647de9e4d3a1e7b1d6502df8b19b54ec441f1c653ea10",
|
||||
"zh:633ebbd5b0245e75e500ef9be4d9e62288f97e8da3baaa51323892a786d90285",
|
||||
"zh:6acfe60cf52a65ba8f044f748548d2119e7f4fd7f8ebcb14698960d87c68f529",
|
||||
"zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f",
|
||||
"zh:8a9993f1dcadf1dd6ca43b23348abe374605d29945a2fafc07fb3457644e6a54",
|
||||
"zh:b1b9a1e6bcc24d5863a664a411d2dc906373ae7a2399d2d65548ce7377057852",
|
||||
"zh:b270184cdeec277218e84b94cb136fead753da717f9b9dc378e51907f3f00bb0",
|
||||
"zh:dff2bc10071210181726ce270f954995fe42c696e61e2e8f874021fed02521e5",
|
||||
"zh:e8e87b40b6a87dc097b0fdc20d3f725cec0d82abc9cc3755c1f89f8f6e8b0036",
|
||||
"zh:ee964a6573d399a5dd22ce328fb38ca1207797a02248f14b2e4913ee390e7803",
|
||||
"zh:904acc31ebb9d6ef68c792074b30532ee61bf515f19e0a3c75b46f126cca1f13",
|
||||
"zh:a1d0a81246afc8750286d3f6fe7a8fbe6460dd2662407b28dbfbabb612e5fa9d",
|
||||
"zh:a41a36fe253fc365fe2b7ffc749624688b2693b4634862fda161179ab100029f",
|
||||
"zh:a7ef269e77ffa8715c8945a2c14322c7ff159ea44c15f62505f3cbb2cae3b32d",
|
||||
"zh:b01aa3bed30610633b762df64332b26f8844a68c3960cebcb30f04918efc67fe",
|
||||
"zh:b069cc2cd18cae10757df3ae030508eac8d55de7e49eda7a5e3e11f2f7fe6455",
|
||||
"zh:b2d2c6313729ebb7465dceece374049e2d08bda34473901be9ff46a8836d42b2",
|
||||
"zh:db0e114edaf4bc2f3d4769958807c83022bfbc619a00bdf4c4bd17faa4ab2d8b",
|
||||
"zh:ecc0aa8b9044f664fd2aaf8fa992d976578f78478980555b4b8f6148e8d1a5fe",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ terraform {
|
||||
required_providers {
|
||||
cloudflare = {
|
||||
source = "cloudflare/cloudflare"
|
||||
version = "4.52.5"
|
||||
version = "4.52.7"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,10 +25,10 @@ services:
|
||||
- server_node_modules:/usr/src/app/server/node_modules
|
||||
- web_node_modules:/usr/src/app/web/node_modules
|
||||
- github_node_modules:/usr/src/app/.github/node_modules
|
||||
- cli_node_modules:/usr/src/app/cli/node_modules
|
||||
- cli_node_modules:/usr/src/app/packages/cli/node_modules
|
||||
- docs_node_modules:/usr/src/app/docs/node_modules
|
||||
- e2e_node_modules:/usr/src/app/e2e/node_modules
|
||||
- sdk_node_modules:/usr/src/app/open-api/typescript-sdk/node_modules
|
||||
- sdk_node_modules:/usr/src/app/packages/sdk/node_modules
|
||||
- app_node_modules:/usr/src/app/node_modules
|
||||
- sveltekit:/usr/src/app/web/.svelte-kit
|
||||
- coverage:/usr/src/app/web/coverage
|
||||
@@ -74,7 +74,7 @@ services:
|
||||
- ${UPLOAD_LOCATION}/photos:/data
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
- pnpm_store_server:/buildcache/pnpm-store
|
||||
- ../plugins:/build/corePlugin
|
||||
- ../packages/plugins:/build/corePlugin
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
@@ -157,7 +157,7 @@ services:
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:9@sha256:3b55fbaa0cd93cf0d9d961f405e4dfcc70efe325e2d84da207a0a8e6d8fde4f9
|
||||
image: docker.io/valkey/valkey:9@sha256:8436e10bc65c94886a91d4415b6a6dfa9cb5a306fb3b996e5bb67cd2b4854193
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ services:
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:9@sha256:3b55fbaa0cd93cf0d9d961f405e4dfcc70efe325e2d84da207a0a8e6d8fde4f9
|
||||
image: docker.io/valkey/valkey:9@sha256:8436e10bc65c94886a91d4415b6a6dfa9cb5a306fb3b996e5bb67cd2b4854193
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
|
||||
@@ -61,7 +61,7 @@ services:
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:9@sha256:3b55fbaa0cd93cf0d9d961f405e4dfcc70efe325e2d84da207a0a8e6d8fde4f9
|
||||
image: docker.io/valkey/valkey:9@sha256:8436e10bc65c94886a91d4415b6a6dfa9cb5a306fb3b996e5bb67cd2b4854193
|
||||
user: '1000:1000'
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
@@ -95,6 +95,3 @@ services:
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
volumes:
|
||||
model-cache:
|
||||
|
||||
@@ -49,7 +49,7 @@ services:
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:9@sha256:3b55fbaa0cd93cf0d9d961f405e4dfcc70efe325e2d84da207a0a8e6d8fde4f9
|
||||
image: docker.io/valkey/valkey:9@sha256:8436e10bc65c94886a91d4415b6a6dfa9cb5a306fb3b996e5bb67cd2b4854193
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
24.15.0
|
||||
@@ -13,8 +13,11 @@ The `immich-server` docker image comes preinstalled with an administrative CLI (
|
||||
| `enable-oauth-login` | Enable OAuth login |
|
||||
| `disable-oauth-login` | Disable OAuth login |
|
||||
| `list-users` | List Immich users |
|
||||
| `grant-admin` | Grant admin privileges to a user (by email) |
|
||||
| `revoke-admin` | Revoke admin privileges from a user (by email) |
|
||||
| `version` | Print Immich version |
|
||||
| `change-media-location` | Change database file paths to align with a new media location |
|
||||
| `schema-check` | Verify database migrations and check for schema drift |
|
||||
|
||||
## How to run a command
|
||||
|
||||
@@ -102,6 +105,22 @@ immich-admin list-users
|
||||
]
|
||||
```
|
||||
|
||||
Grant Admin
|
||||
|
||||
```
|
||||
immich-admin grant-admin
|
||||
? Please enter the user email: user@example.com
|
||||
Admin access has been granted to user@example.com
|
||||
```
|
||||
|
||||
Revoke Admin
|
||||
|
||||
```
|
||||
immich-admin revoke-admin
|
||||
? Please enter the user email: user@example.com
|
||||
Admin access has been revoked from user@example.com
|
||||
```
|
||||
|
||||
Print Immich Version
|
||||
|
||||
```
|
||||
@@ -126,3 +145,12 @@ immich-admin change-media-location
|
||||
Database file paths updated successfully! 🎉
|
||||
...
|
||||
```
|
||||
|
||||
Schema Check
|
||||
|
||||
```
|
||||
immich-admin schema-check
|
||||
Migrations are up to date
|
||||
|
||||
No schema drift detected
|
||||
```
|
||||
|
||||
+1
-1
@@ -10,4 +10,4 @@ OpenAPI is used to generate the client (Typescript, Dart) SDK. `openapi-generato
|
||||
make open-api
|
||||
```
|
||||
|
||||
You can find the generated client SDK in the `open-api/typescript-sdk/client` for Typescript SDK and `mobile/openapi` for Dart SDK.
|
||||
You can find the generated client SDK in the `packages/sdk/client` for Typescript SDK and `mobile/openapi` for Dart SDK.
|
||||
|
||||
@@ -205,7 +205,7 @@ When the Dev Container starts, it automatically:
|
||||
1. **Runs post-create script** (`container-server-post-create.sh`):
|
||||
- Adjusts file permissions for the `node` user
|
||||
- Installs dependencies: `pnpm install` in all packages
|
||||
- Builds TypeScript SDK: `pnpm run build` in `open-api/typescript-sdk`
|
||||
- Builds TypeScript SDK: `pnpm --filter @immich/sdk build`
|
||||
|
||||
2. **Starts development servers** via VS Code tasks:
|
||||
- `Immich API Server (Nest)` - API server with hot-reloading on port 2283
|
||||
@@ -243,8 +243,8 @@ To connect the mobile app to your Dev Container:
|
||||
|
||||
- **Server code** (`/server`): Changes trigger automatic restart
|
||||
- **Web code** (`/web`): Changes trigger hot module replacement
|
||||
- **Database migrations**: Run `pnpm run sync:sql` in the server directory
|
||||
- **API changes**: Regenerate TypeScript SDK with `make open-api`
|
||||
- **Database migrations**: Run `mise //:sql`
|
||||
- **API changes**: Regenerate TypeScript SDK with `mise //:open-api`
|
||||
|
||||
## Testing
|
||||
|
||||
@@ -252,20 +252,11 @@ To connect the mobile app to your Dev Container:
|
||||
|
||||
The Dev Container supports multiple ways to run tests:
|
||||
|
||||
#### Using Make Commands (Recommended)
|
||||
#### Using Mise Commands (Recommended)
|
||||
|
||||
```bash
|
||||
# Run tests for specific components
|
||||
make test-server # Server unit tests
|
||||
make test-web # Web unit tests
|
||||
make test-e2e # End-to-end tests
|
||||
make test-cli # CLI tests
|
||||
|
||||
# Run all tests
|
||||
make test-all # Runs tests for all components
|
||||
|
||||
# Medium tests (integration tests)
|
||||
make test-medium-dev # End-to-end tests
|
||||
mise run checklist # in `server/`, `web/`, `packages/cli`
|
||||
```
|
||||
|
||||
#### Using PNPM Directly
|
||||
@@ -289,48 +280,16 @@ pnpm run test # Run API tests
|
||||
pnpm run test:web # Run web UI tests
|
||||
```
|
||||
|
||||
### Code Quality Commands
|
||||
|
||||
```bash
|
||||
# Linting
|
||||
make lint-server # Lint server code
|
||||
make lint-web # Lint web code
|
||||
make lint-all # Lint all components
|
||||
|
||||
# Formatting
|
||||
make format-server # Format server code
|
||||
make format-web # Format web code
|
||||
make format-all # Format all code
|
||||
|
||||
# Type checking
|
||||
make check-server # Type check server
|
||||
make check-web # Type check web
|
||||
make check-all # Check all components
|
||||
|
||||
# Complete hygiene check
|
||||
make hygiene-all # Run lint, format, check, SQL sync, and audit
|
||||
```
|
||||
|
||||
### Additional Make Commands
|
||||
|
||||
```bash
|
||||
# Build commands
|
||||
make build-server # Build server
|
||||
make build-web # Build web app
|
||||
make build-all # Build everything
|
||||
|
||||
# API generation
|
||||
make open-api # Generate OpenAPI specs
|
||||
make open-api-typescript # Generate TypeScript SDK
|
||||
make open-api-dart # Generate Dart SDK
|
||||
|
||||
# Database
|
||||
make sql # Sync database schema
|
||||
|
||||
# Dependencies
|
||||
make install-server # Install server dependencies
|
||||
make install-web # Install web dependencies
|
||||
make install-all # Install all dependencies
|
||||
mise sql # Sync database schema
|
||||
```
|
||||
|
||||
### Debugging
|
||||
|
||||
@@ -10,7 +10,8 @@ Our [GitHub Repository](https://github.com/immich-app/immich) is a [monorepo](ht
|
||||
| :------------------ | :------------------------------------------------------------------- |
|
||||
| `.github/` | Github templates and action workflows |
|
||||
| `.vscode/` | VSCode debug launch profiles |
|
||||
| `cli/` | Source code for the work-in-progress CLI rewrite |
|
||||
| `packages/cli` | Source code for the CLI |
|
||||
| `packages/sdk` | Source code for the generated OpenAPI SDK |
|
||||
| `docker/` | Docker compose resources for dev, test, production |
|
||||
| `design/` | Screenshots and logos for the README |
|
||||
| `docs/` | Source code for the [https://immich.app](https://immich.app) website |
|
||||
|
||||
@@ -34,21 +34,23 @@ Run all web checks with `pnpm run check:all`
|
||||
Run all server checks with `pnpm run check:all`
|
||||
:::
|
||||
|
||||
:::info Auto Fix
|
||||
:::tip Auto Fix
|
||||
You can use `pnpm run __:fix` to potentially correct some issues automatically for `pnpm run format` and `lint`.
|
||||
:::
|
||||
|
||||
## Mobile Checks
|
||||
## Mobile Checklist
|
||||
|
||||
The following commands must be executed from within the mobile app directory of the codebase.
|
||||
- [ ] `mise //mobile:codegen` (auto-generate files using build_runner)
|
||||
- [ ] `mise //mobile:lint` (static analysis via Dart Analyzer and DCM)
|
||||
- [ ] `mise //mobile:format` (formatting via Dart Formatter)
|
||||
- [ ] `mise //mobile:test` (unit tests)
|
||||
|
||||
- [ ] `make build` (auto-generate files using build_runner)
|
||||
- [ ] `make analyze` (static analysis via Dart Analyzer and DCM)
|
||||
- [ ] `make format` (formatting via Dart Formatter)
|
||||
- [ ] `make test` (unit tests)
|
||||
:::tip
|
||||
Run all these commands at once with `mise //mobile:checklist`
|
||||
:::
|
||||
|
||||
:::info Auto Fix
|
||||
You can use `dart fix --apply` and `dcm fix lib` to potentially correct some issues automatically for `make analyze`.
|
||||
:::tip Auto Fix
|
||||
You can use `mise //mobile:lint-fix` to potentially correct some issues automatically for `mise //mobile:lint`.
|
||||
:::
|
||||
|
||||
## OpenAPI
|
||||
|
||||
@@ -58,7 +58,7 @@ You can access the web from `http://your-machine-ip:3000` or `http://localhost:3
|
||||
|
||||
If you only want to do web development connected to an existing, remote backend, follow these steps:
|
||||
|
||||
1. Build the Immich SDK - `cd open-api/typescript-sdk && pnpm i && pnpm run build && cd -`
|
||||
1. Build the Immich SDK - `pnpm --filter @immich/sdk install && pnpm --filter @immich/sdk build`
|
||||
2. Enter the web directory - `cd web/`
|
||||
3. Install web dependencies - `pnpm i`
|
||||
4. Start the web development server
|
||||
|
||||
@@ -17,15 +17,14 @@ make e2e
|
||||
|
||||
Before you can run the tests, you need to run the following commands _once_:
|
||||
|
||||
- `pnpm install` (in `e2e/`)
|
||||
- `pnpm run build` (in `cli/`)
|
||||
- `make open-api` (in the project root `/`)
|
||||
- `pnpm install`
|
||||
- `pnpm --filter "@immich/*" build`
|
||||
- `mise //:open-api`
|
||||
|
||||
Once the test environment is running, the e2e tests can be run via:
|
||||
|
||||
```bash
|
||||
cd e2e/
|
||||
pnpm test
|
||||
mise //e2e:test
|
||||
```
|
||||
|
||||
The tests check various things including:
|
||||
|
||||
@@ -26,7 +26,7 @@ The default configuration looks like this:
|
||||
},
|
||||
"ffmpeg": {
|
||||
"accel": "disabled",
|
||||
"accelDecode": false,
|
||||
"accelDecode": true,
|
||||
"acceptedAudioCodecs": ["aac", "mp3", "opus"],
|
||||
"acceptedContainers": ["mov", "ogg", "webm"],
|
||||
"acceptedVideoCodecs": ["h264"],
|
||||
@@ -264,4 +264,4 @@ volumes:
|
||||
- ./configuration.yml:${IMMICH_CONFIG_FILE}
|
||||
```
|
||||
|
||||
::
|
||||
:::
|
||||
|
||||
@@ -52,7 +52,7 @@ Scroll to the bottom of the "**Details**" section and find the `IP Address` list
|
||||
|
||||
## Step 4 - Configure Firewall Settings
|
||||
|
||||
Once your project completes the build process, your containers will start. In order to be able to access Immich from your browser, you need to configure the firewall settings for your Synology NAS.
|
||||
Once your project completes the build process, your containers will start. In order to be able to access Immich from your browser, you need to configure the firewall settings for your Synology NAS to allow communication between the Immich containers.
|
||||
|
||||
Open "**Control Panel**" on your Synology NAS, and select "**Security**". Navigate to "**Firewall**"
|
||||
|
||||
@@ -74,6 +74,7 @@ Read the [Post Installation](/install/post-install.mdx) steps and [upgrade instr
|
||||
|
||||
<details>
|
||||
<summary>Updating Immich using Container Manager</summary>
|
||||
|
||||
Check the post installation and upgrade instructions at the links above before proceeding with this section.
|
||||
|
||||
## Step 1. Backup
|
||||
@@ -110,7 +111,7 @@ Go to **Project**, select **Action** then **Build**. This will download, unpack,
|
||||
|
||||
## Step 5. Update firewall rule
|
||||
|
||||
The default behavior is to automatically start the containers once installed. If `immich_server` runs for a few seconds and then stops, it may be because the firewall rule no longer matches the server IP address.
|
||||
Without a fixed subnet, the default behavior is to automatically start the containers once installed. If `immich_server` runs for a few seconds and then stops, it may be because the firewall rule no longer matches the server IP address.
|
||||
|
||||
Go to the **Container** section. Click on `immich_server` and scroll down on **General** to find the IP address.
|
||||

|
||||
@@ -123,4 +124,67 @@ In this example, the IP addresses mismatch and the firewall rule needs to be edi
|
||||
|
||||

|
||||
|
||||
To prevent future firewall issues, you may set a fixed subnet. [See Set Fixed Subnet](#set-fixed-subnet) for instructions.
|
||||
|
||||
</details>
|
||||
|
||||
<details id="set-fixed-subnet">
|
||||
<summary>Set Fixed Subnet</summary>
|
||||
|
||||
Docker by default assigns dynamic subnets to bridge networks which can change when rebuilding containers and can cause firewall rules to break. To avoid this, define a fixed subnet in your `docker-compose.yml`:
|
||||
|
||||
## Step 1. Determine current subnet
|
||||
|
||||
Go to the **Container** section. Click on `immich_server` and scroll down on **General** to find the IP address.
|
||||

|
||||
|
||||
## Step 2. Add network configuration
|
||||
|
||||
Add the following network configuration at the end of your `docker-compose.yml` file:
|
||||
|
||||
```yaml
|
||||
networks:
|
||||
immich-network:
|
||||
driver: bridge
|
||||
ipam:
|
||||
config:
|
||||
- subnet: 172.20.0.0/16
|
||||
gateway: 172.20.0.1
|
||||
```
|
||||
|
||||
If your docker container is running on a different subnet then update accordingly.
|
||||
|
||||
## Step 3. Add network to each service
|
||||
|
||||
Add the network to each service (immich-server, immich-machine-learning, redis, database):
|
||||
|
||||
```yaml
|
||||
services:
|
||||
immich-server:
|
||||
# other config options
|
||||
networks:
|
||||
- immich-network
|
||||
|
||||
immich-machine-learning:
|
||||
# other config options
|
||||
networks:
|
||||
- immich-network
|
||||
|
||||
redis:
|
||||
# other config options
|
||||
networks:
|
||||
- immich-network
|
||||
|
||||
database:
|
||||
# other config options
|
||||
networks:
|
||||
- immich-network
|
||||
```
|
||||
|
||||
Save your changes. Synology will ask if you want to save changes only or rebuild containers. Select rebuild containers.
|
||||
|
||||
## Step 4. Update Firewall Rules, if necessary
|
||||
|
||||
If your firewall rules were not already set for this subnet, the firewall rules will need to be updated. See [Step 4 - Configure Firewall Settings](#step-4---configure-firewall-settings).
|
||||
|
||||
</details>
|
||||
|
||||
@@ -56,8 +56,5 @@
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=20"
|
||||
},
|
||||
"volta": {
|
||||
"node": "24.15.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
24.15.0
|
||||
@@ -4,7 +4,7 @@ services:
|
||||
e2e-auth-server:
|
||||
container_name: immich-e2e-auth-server
|
||||
build:
|
||||
context: ../e2e-auth-server
|
||||
context: ../packages/e2e-auth-server
|
||||
ports:
|
||||
- 2286:2286
|
||||
|
||||
@@ -44,7 +44,7 @@ services:
|
||||
|
||||
redis:
|
||||
container_name: immich-e2e-redis
|
||||
image: docker.io/valkey/valkey:9@sha256:3b55fbaa0cd93cf0d9d961f405e4dfcc70efe325e2d84da207a0a8e6d8fde4f9
|
||||
image: docker.io/valkey/valkey:9@sha256:8436e10bc65c94886a91d4415b6a6dfa9cb5a306fb3b996e5bb67cd2b4854193
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
|
||||
|
||||
@@ -27,3 +27,18 @@ run = { task = "lint --fix" }
|
||||
[tasks.check]
|
||||
env._.path = "./node_modules/.bin"
|
||||
run = "tsc --noEmit"
|
||||
|
||||
|
||||
[tasks.ci-setup]
|
||||
depends = ["//:sdk:install", "//:sdk:build", "//cli:install", "//cli:build"]
|
||||
run = { task = ":install" }
|
||||
|
||||
|
||||
[tasks.ci-unit]
|
||||
depends = ["//:sdk:install", "//:sdk:build"]
|
||||
run = [
|
||||
{ task = ":install" },
|
||||
{ task = ":format" },
|
||||
{ task = ":lint" },
|
||||
{ task = ":check" },
|
||||
]
|
||||
|
||||
@@ -56,8 +56,5 @@
|
||||
"utimes": "^5.2.1",
|
||||
"vite-tsconfig-paths": "^6.1.1",
|
||||
"vitest": "^4.0.0"
|
||||
},
|
||||
"volta": {
|
||||
"node": "24.15.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ import { LoginResponseDto, ManualJobName } from '@immich/sdk';
|
||||
import { errorDto } from 'src/responses';
|
||||
import { app, utils } from 'src/utils';
|
||||
import request from 'supertest';
|
||||
import { afterAll, beforeAll, describe, expect, it } from 'vitest';
|
||||
import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'vitest';
|
||||
|
||||
describe('/admin/database-backups', () => {
|
||||
let cookie: string | undefined;
|
||||
@@ -13,6 +13,9 @@ describe('/admin/database-backups', () => {
|
||||
admin = await utils.adminSetup({
|
||||
onboarding: false,
|
||||
});
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
await utils.resetBackups(admin.accessToken);
|
||||
});
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@ describe('/albums', () => {
|
||||
|
||||
it('should not return shared albums with a deleted owner', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.get('/albums?shared=true')
|
||||
.get('/albums?isShared=true')
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
|
||||
expect(status).toBe(200);
|
||||
@@ -188,7 +188,7 @@ describe('/albums', () => {
|
||||
it('should return the album collection including owned and shared', async () => {
|
||||
const { status, body } = await request(app).get('/albums').set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toHaveLength(4);
|
||||
expect(body).toHaveLength(5);
|
||||
expect(body).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
@@ -219,13 +219,20 @@ describe('/albums', () => {
|
||||
]),
|
||||
shared: false,
|
||||
}),
|
||||
expect.objectContaining({
|
||||
albumName: user2SharedUser,
|
||||
albumUsers: expect.arrayContaining([
|
||||
{ role: AlbumUserRole.Owner, user: expect.objectContaining({ id: user2.userId }) },
|
||||
]),
|
||||
shared: true,
|
||||
}),
|
||||
]),
|
||||
);
|
||||
});
|
||||
|
||||
it('should return the album collection filtered by shared', async () => {
|
||||
it('should return the album collection filtered by isShared', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.get('/albums?shared=true')
|
||||
.get('/albums?isShared=true')
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toHaveLength(4);
|
||||
@@ -263,9 +270,9 @@ describe('/albums', () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('should return the album collection filtered by NOT shared', async () => {
|
||||
it('should return the album collection filtered by NOT isShared', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.get('/albums?shared=false')
|
||||
.get('/albums?isShared=false')
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toHaveLength(1);
|
||||
@@ -282,6 +289,63 @@ describe('/albums', () => {
|
||||
);
|
||||
});
|
||||
|
||||
it('should return only owned albums when filtered by isOwned=true', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.get('/albums?isOwned=true')
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toHaveLength(4);
|
||||
expect(body).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({ albumName: user1SharedEditorUser }),
|
||||
expect.objectContaining({ albumName: user1SharedViewerUser }),
|
||||
expect.objectContaining({ albumName: user1SharedLink }),
|
||||
expect.objectContaining({ albumName: user1NotShared }),
|
||||
]),
|
||||
);
|
||||
});
|
||||
|
||||
it('should return only shared-with-me albums when filtered by isOwned=false', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.get('/albums?isOwned=false')
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toHaveLength(1);
|
||||
expect(body).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
albumName: user2SharedUser,
|
||||
albumUsers: expect.arrayContaining([
|
||||
{ role: AlbumUserRole.Owner, user: expect.objectContaining({ id: user2.userId }) },
|
||||
]),
|
||||
}),
|
||||
]),
|
||||
);
|
||||
});
|
||||
|
||||
it('should return owned shared-out albums when filtered by isOwned=true&ishared=true', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.get('/albums?isOwned=true&isShared=true')
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toHaveLength(3);
|
||||
expect(body).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({ albumName: user1SharedEditorUser }),
|
||||
expect.objectContaining({ albumName: user1SharedViewerUser }),
|
||||
expect.objectContaining({ albumName: user1SharedLink }),
|
||||
]),
|
||||
);
|
||||
});
|
||||
|
||||
it('should return empty list when filtered by isOwned=false&isShared=false', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.get('/albums?isOwned=false&isShared=false')
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toHaveLength(0);
|
||||
});
|
||||
|
||||
it('should return the album collection filtered by assetId', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.get(`/albums?assetId=${user1Asset2.id}`)
|
||||
@@ -290,17 +354,17 @@ describe('/albums', () => {
|
||||
expect(body).toHaveLength(2);
|
||||
});
|
||||
|
||||
it('should return the album collection filtered by assetId and ignores shared=true', async () => {
|
||||
it('should return the album collection filtered by assetId and ignores isShared=true', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.get(`/albums?shared=true&assetId=${user1Asset1.id}`)
|
||||
.get(`/albums?isShared=true&assetId=${user1Asset1.id}`)
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toHaveLength(5);
|
||||
});
|
||||
|
||||
it('should return the album collection filtered by assetId and ignores shared=false', async () => {
|
||||
it('should return the album collection filtered by assetId and ignores isShared=false', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.get(`/albums?shared=false&assetId=${user1Asset1.id}`)
|
||||
.get(`/albums?isShared=false&assetId=${user1Asset1.id}`)
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toHaveLength(5);
|
||||
|
||||
@@ -7,7 +7,6 @@ import {
|
||||
getMyUser,
|
||||
LoginResponseDto,
|
||||
SharedLinkType,
|
||||
updateConfig,
|
||||
} from '@immich/sdk';
|
||||
import { exiftool } from 'exiftool-vendored';
|
||||
import { DateTime } from 'luxon';
|
||||
@@ -24,7 +23,6 @@ import { afterAll, beforeAll, describe, expect, it } from 'vitest';
|
||||
|
||||
const locationAssetFilepath = `${testAssetDir}/metadata/gps-position/thompson-springs.jpg`;
|
||||
const ratingAssetFilepath = `${testAssetDir}/metadata/rating/mongolels.jpg`;
|
||||
const facesAssetDir = `${testAssetDir}/metadata/faces`;
|
||||
|
||||
const readTags = async (bytes: Buffer, filename: string) => {
|
||||
const filepath = join(tempDir, filename);
|
||||
@@ -185,78 +183,6 @@ describe('/asset', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('faces', () => {
|
||||
const metadataFaceTests = [
|
||||
{
|
||||
description: 'without orientation',
|
||||
filename: 'portrait.jpg',
|
||||
},
|
||||
{
|
||||
description: 'adjusting face regions to orientation',
|
||||
filename: 'portrait-orientation-6.jpg',
|
||||
},
|
||||
];
|
||||
// should produce same resulting face region coordinates for any orientation
|
||||
const expectedFaces = [
|
||||
{
|
||||
name: 'Marie Curie',
|
||||
birthDate: null,
|
||||
isHidden: false,
|
||||
faces: [
|
||||
{
|
||||
imageHeight: 700,
|
||||
imageWidth: 840,
|
||||
boundingBoxX1: 261,
|
||||
boundingBoxX2: 356,
|
||||
boundingBoxY1: 146,
|
||||
boundingBoxY2: 284,
|
||||
sourceType: 'exif',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'Pierre Curie',
|
||||
birthDate: null,
|
||||
isHidden: false,
|
||||
faces: [
|
||||
{
|
||||
imageHeight: 700,
|
||||
imageWidth: 840,
|
||||
boundingBoxX1: 536,
|
||||
boundingBoxX2: 618,
|
||||
boundingBoxY1: 83,
|
||||
boundingBoxY2: 252,
|
||||
sourceType: 'exif',
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
it.each(metadataFaceTests)('should get the asset faces from $filename $description', async ({ filename }) => {
|
||||
const config = await utils.getSystemConfig(admin.accessToken);
|
||||
config.metadata.faces.import = true;
|
||||
await updateConfig({ systemConfigDto: config }, { headers: asBearerAuth(admin.accessToken) });
|
||||
|
||||
const facesAsset = await utils.createAsset(admin.accessToken, {
|
||||
assetData: {
|
||||
filename,
|
||||
bytes: await readFile(`${facesAssetDir}/${filename}`),
|
||||
},
|
||||
});
|
||||
|
||||
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: facesAsset.id });
|
||||
|
||||
const { status, body } = await request(app)
|
||||
.get(`/assets/${facesAsset.id}`)
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||
|
||||
expect(status).toBe(200);
|
||||
expect(body.id).toEqual(facesAsset.id);
|
||||
const sortedPeople = body.people.toSorted((a: any, b: any) => a.name.localeCompare(b.name));
|
||||
expect(sortedPeople).toMatchObject(expectedFaces);
|
||||
});
|
||||
});
|
||||
|
||||
it('should work with a shared link', async () => {
|
||||
const sharedLink = await utils.createSharedLink(user1.accessToken, {
|
||||
type: SharedLinkType.Individual,
|
||||
|
||||
@@ -441,7 +441,18 @@ describe('/search', () => {
|
||||
.get('/search/explore')
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toEqual([{ fieldName: 'exifInfo.city', items: [] }]);
|
||||
expect(Array.isArray(body)).toBe(true);
|
||||
expect(body).toEqual(expect.arrayContaining([{ fieldName: 'exifInfo.city', items: [] }]));
|
||||
expect(body).toEqual(
|
||||
expect.arrayContaining([
|
||||
{
|
||||
fieldName: 'createdAt',
|
||||
items: expect.arrayContaining([
|
||||
expect.objectContaining({ data: expect.objectContaining({ id: assetLast.id }) }),
|
||||
]),
|
||||
},
|
||||
]),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { readFileSync } from 'node:fs';
|
||||
import { immichCli } from 'src/utils';
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
const pkg = JSON.parse(readFileSync('../cli/package.json', 'utf8'));
|
||||
const pkg = JSON.parse(readFileSync('../packages/cli/package.json', 'utf8'));
|
||||
|
||||
describe(`immich --version`, () => {
|
||||
describe('immich --version', () => {
|
||||
|
||||
@@ -28,6 +28,7 @@ export function toColumnarFormat(assets: MockTimelineAsset[]): TimeBucketAssetRe
|
||||
ownerId: [],
|
||||
ratio: [],
|
||||
thumbhash: [],
|
||||
createdAt: [],
|
||||
fileCreatedAt: [],
|
||||
localOffsetHours: [],
|
||||
isFavorite: [],
|
||||
@@ -338,7 +339,6 @@ export function toAssetResponseDto(asset: MockTimelineAsset, owner?: UserRespons
|
||||
livePhotoVideoId: asset.livePhotoVideoId,
|
||||
tags: [],
|
||||
people: [],
|
||||
unassignedFaces: [],
|
||||
stack: asset.stack,
|
||||
isOffline: false,
|
||||
hasMetadata: true,
|
||||
|
||||
@@ -240,7 +240,8 @@ export const setupBaseMockApiRoutes = async (context: BrowserContext, adminUserI
|
||||
});
|
||||
});
|
||||
await context.route('**/api/albums*', async (route, request) => {
|
||||
if (request.url().endsWith('albums?shared=true') || request.url().endsWith('albums')) {
|
||||
const url = request.url();
|
||||
if (url.endsWith('albums?isShared=true') || url.endsWith('albums?isOwned=true') || url.endsWith('albums')) {
|
||||
return route.fulfill({
|
||||
status: 200,
|
||||
contentType: 'application/json',
|
||||
|
||||
@@ -66,7 +66,6 @@ export const createMockStackAsset = (ownerId: string): AssetResponseDto => {
|
||||
livePhotoVideoId: null,
|
||||
tags: [],
|
||||
people: [],
|
||||
unassignedFaces: [],
|
||||
stack: undefined,
|
||||
isOffline: false,
|
||||
hasMetadata: true,
|
||||
|
||||
+3
-1
@@ -90,7 +90,7 @@ export const tempDir = tmpdir();
|
||||
export const asBearerAuth = (accessToken: string) => ({ Authorization: `Bearer ${accessToken}` });
|
||||
export const asKeyAuth = (key: string) => ({ 'x-api-key': key });
|
||||
export const immichCli = (args: string[]) =>
|
||||
executeCommand('pnpm', ['exec', 'immich', '-d', `/${tempDir}/immich/`, ...args], { cwd: '../cli' }).promise;
|
||||
executeCommand('pnpm', ['exec', 'immich', '-d', `/${tempDir}/immich/`, ...args], { cwd: '../packages/cli' }).promise;
|
||||
export const dockerExec = (args: string[]) =>
|
||||
executeCommand('docker', ['exec', '-i', 'immich-e2e-server', '/bin/bash', '-c', args.join(' ')]);
|
||||
export const immichAdmin = (args: string[]) => dockerExec([`immich-admin ${args.join(' ')}`]);
|
||||
@@ -568,6 +568,8 @@ export const utils = {
|
||||
name: ManualJobName.BackupDatabase,
|
||||
});
|
||||
|
||||
await utils.waitForQueueFinish(accessToken, 'backupDatabase');
|
||||
|
||||
return utils.poll(
|
||||
() => request(app).get('/admin/database-backups').set('Authorization', `Bearer ${accessToken}`),
|
||||
({ status, body }) => status === 200 && body.backups.length === 1,
|
||||
|
||||
@@ -5,8 +5,10 @@
|
||||
"acknowledge": "Neem kennis",
|
||||
"action": "Aksie",
|
||||
"action_common_update": "Werk by",
|
||||
"action_description": "’n Stel van aksies om op die gefiltreerde bates uit te voer",
|
||||
"actions": "Aksies",
|
||||
"active": "Aktief",
|
||||
"active_count": "Aktief: {count}",
|
||||
"activity": "Aktiwiteite",
|
||||
"activity_changed": "Aktiwiteit is {enabled, select, true {geaktiveer} other {gedeaktiveer}}",
|
||||
"add": "Voeg toe",
|
||||
@@ -14,9 +16,14 @@
|
||||
"add_a_location": "Voeg ’n ligging toe",
|
||||
"add_a_name": "Voeg ’n naam toe",
|
||||
"add_a_title": "Voeg ’n titel toe",
|
||||
"add_action": "Voeg aksie toe",
|
||||
"add_action_description": "Klik om ’n aksie toe te voeg om uit te voer",
|
||||
"add_assets": "Voeg bates by",
|
||||
"add_birthday": "Voeg ’n verjaarsdag toe",
|
||||
"add_endpoint": "Voeg eindpunt toe",
|
||||
"add_exclusion_pattern": "Voeg uitsluitingspatroon toe",
|
||||
"add_filter": "Voeg filter by",
|
||||
"add_filter_description": "Klik om ’n filtervoorwaarde toe te voeg",
|
||||
"add_location": "Voeg ligging toe",
|
||||
"add_more_users": "Voeg meer gebruikers toe",
|
||||
"add_partner": "Voeg vennoot toe",
|
||||
@@ -27,9 +34,13 @@
|
||||
"add_to_album": "Voeg toe tot album",
|
||||
"add_to_album_bottom_sheet_added": "Tot {album} toegevoeg",
|
||||
"add_to_album_bottom_sheet_already_exists": "Reeds in {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Sommige plaaslike bates kon nie toe gevoeg word tot die album nie",
|
||||
"add_to_album_toggle": "Wissel seleksie vir {album}",
|
||||
"add_to_albums": "Voeg toe tot albums",
|
||||
"add_to_albums_count": "Voeg toe tot albums ({count})",
|
||||
"add_to_bottom_bar": "Voeg toe",
|
||||
"add_to_shared_album": "Voeg toe tot gedeelde album",
|
||||
"add_upload_to_stack": "Voeg oplaai by stapel",
|
||||
"add_url": "Voeg bronadres toe",
|
||||
"added_to_archive": "Tot argief toegevoeg",
|
||||
"added_to_favorites": "Tot gunstelinge toegevoeg",
|
||||
@@ -46,6 +57,7 @@
|
||||
"backup_database": "Skep Databasisstortlêer",
|
||||
"backup_database_enable_description": "Aktiveer databasisstortlêers",
|
||||
"backup_keep_last_amount": "Aantal vorige stortlêers om te hou",
|
||||
"backup_onboarding_2_description": "plaaslike kopieë op verskillende toestelle. Dit sluit die hooflêers en ’n rugsteun van daardie lêers plaaslik in.",
|
||||
"backup_onboarding_3_description": "totale kopieë van u data, insluitend die oorspronklike lêers. Dit sluit 1 kopie op ’n ander perseel en 2 lokale kopieë in.",
|
||||
"backup_onboarding_description": "’n <backblaze-link>3-2-1-rugsteunstrategie</backblaze-link> word sterk aanbeveel om u data veilig te hou. Hou kopieë van u foto’s/video’s sowel as die Immich-databasis vir ’n volledige rugsteunoplossing.",
|
||||
"backup_onboarding_footer": "Lees hierdie <link>dokument</link> vir meer inligting oor hoe om ’n rugsteunkopie van Immich te maak.",
|
||||
@@ -61,6 +73,7 @@
|
||||
"confirm_reprocess_all_faces": "Is u seker u wil alle gesigte herverwerk? Dit sal ook genoemde mense skoonmaak.",
|
||||
"confirm_user_password_reset": "Is u seker u wil {user} se wagwoord terugstel?",
|
||||
"confirm_user_pin_code_reset": "Is u seker u wil {user} se PIN-kode herstel?",
|
||||
"copy_config_to_clipboard_description": "Kopieer die huidige stelselkonfigurasie as ’n JSON‑objek na die klipbord",
|
||||
"create_job": "Skep taak",
|
||||
"cron_expression": "Cron-uitdrukking",
|
||||
"cron_expression_description": "Stel die skanderingsinterval in met die cron-formaat. Kyk gerus na bv. <link>Crontab Guru</link> vir meer inligting",
|
||||
@@ -68,6 +81,8 @@
|
||||
"disable_login": "Deaktiveer aantekening",
|
||||
"duplicate_detection_job_description": "Begin masjienleer op items om soortgelyke beelde op te spoor. Maak staat op Slimsoek",
|
||||
"exclusion_pattern_description": "Met uitsluitingspatrone kan u lêers en vouers ignoreer wanneer u u biblioteek skandeer. Dit is nuttig as u vouers het wat lêers bevat wat u nie wil invoer nie, soos RAW-lêers.",
|
||||
"export_config_as_json_description": "Laai die huidige stelselkonfigurasie af as ’n JSON‑lêer",
|
||||
"external_libraries_page_description": "Admin eksterne biblioteekbladsy",
|
||||
"face_detection": "Gesigherkenning",
|
||||
"face_detection_description": "Identifiseer die gesigte in media d.m.v. masjienleer. Vir video’s word slegs die duimnael oorweeg. “Herlaai” (ver)werk al die media weer. “Stel terug” verwyder alle huidige gesigdata. “Onverwerk” plaas items in die ry wat nog nie verwerk is nie. Geïdentifiseerde gesigte sal ná voltooiing van Gesigidentifikasie vir Gesigherkenning in die ry geplaas word om hulle in bestaande of nuwe persone te groepeer.",
|
||||
"facial_recognition_job_description": "Groepeer gesigte in mense. Die stap is vinniger nadat Gesigherkenning klaar is. “Herstel” (her-)groepeer alle gesigte. “Vermiste” plaas gesigte in ry wat nie ’n persoon gekoppel het nie.",
|
||||
|
||||
+13
-7
@@ -61,8 +61,8 @@
|
||||
"backup_onboarding_1_description": "نسخة خارج الموقع في موقع آخر.",
|
||||
"backup_onboarding_2_description": "نسخ محلية على أجهزة مختلفة. يشمل ذلك الملفات الرئيسية ونسخة احتياطية محلية منها.",
|
||||
"backup_onboarding_3_description": "إجمالي نُسخ بياناتك، بما في ذلك الملفات الأصلية. يشمل ذلك نسخةً واحدةً خارج الموقع ونسختين محليتين.",
|
||||
"backup_onboarding_description": "يُنصح باتباع <backblaze-link>استراتيجية النسخ الاحتياطي 3-2- 1</backblaze-link> لحماية بياناتك. احتفظ بنسخ احتياطية من صورك/فيديوهاتك المحمّلة، بالإضافة إلى قاعدة بيانات Immich، لضمان حل نسخ احتياطي شامل.",
|
||||
"backup_onboarding_footer": "لمزيد من المعلومات حول النسخ الاحتياطي لـ <link>Immich</link>، يرجى الرجوع إلى <link>الوثائق</link>.",
|
||||
"backup_onboarding_description": "يُنصح باتباع <backblaze-link>استراتيجية النسخ الاحتياطي 3-2-1</backblaze-link> لحماية بياناتك. يجب عليك الاحتفاظ بنسخ من الصور والفيديوهات المرفوعة، بالإضافة إلى قاعدة بيانات Immich لضمان حل نسخ احتياطي شامل.",
|
||||
"backup_onboarding_footer": "لمزيد من المعلومات حول النسخ الاحتياطي لـ Immich، يرجى الرجوع إلى <link>الوثائق</link>.",
|
||||
"backup_onboarding_parts_title": "يتضمن النسخ الاحتياطي 3-2-1 ما يلي:",
|
||||
"backup_onboarding_title": "النسخ الاحتياطية",
|
||||
"backup_settings": "إعدادات تفريغ قاعدة البيانات",
|
||||
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "تفعيل إشعارات البريد الإلكتروني",
|
||||
"notification_settings": "إعدادات الإشعارات",
|
||||
"notification_settings_description": "إدارة إعدادات الإشعارات، بما في ذلك البريد الإلكتروني",
|
||||
"oauth_allow_insecure_requests": "السماح بالطلبات الغير الآمنة",
|
||||
"oauth_allow_insecure_requests_description": "تحذير: هذا يعطل التحقق من صحة شهادة أمن طبقة النقل لطلبات الترخيص المفتوح وقد يعرضك الهجمات الوسطية.",
|
||||
"oauth_auto_launch": "التشغيل التلقائي",
|
||||
"oauth_auto_launch_description": "ابدأ تدفق تسجيل الدخول OAuth تلقائيًا عند الانتقال إلى صفحة تسجيل الدخول",
|
||||
"oauth_auto_register": "التسجيل التلقائي",
|
||||
@@ -274,6 +276,7 @@
|
||||
"oauth_button_text": "نص الزر",
|
||||
"oauth_client_secret_description": "مطلوب للعميل السري، او اذا PKCE(مفتاح الاثبات لتبادل الكود) ليس مدعوم من العميل العام.",
|
||||
"oauth_enable_description": "تسجيل الدخول باستخدام OAuth",
|
||||
"oauth_end_session_url_description": "إعادة توجيه المستخدم إلى معرف الموارد الموحد (URI) هذا عند تسجيل الخروج.",
|
||||
"oauth_mobile_redirect_uri": "عنوان URI لإعادة التوجيه على الهاتف",
|
||||
"oauth_mobile_redirect_uri_override": "تجاوز عنوان URI لإعادة التوجيه على الهاتف",
|
||||
"oauth_mobile_redirect_uri_override_description": "قم بتفعيله عندما لا يسمح موفر OAuth بمعرف URI للجوال، مثل ''{callback}''",
|
||||
@@ -333,7 +336,7 @@
|
||||
"storage_template_migration_description": "قم بتطبيق القالب الحالي <link>{template}</link> على المحتويات التي تم رفعها سابقًا",
|
||||
"storage_template_migration_info": "تغييرات النموذج الخزني ستغير جميع الصيغ الى احرف صغيرة. تغييرات النموذج ستنطبق فقط على المحتويات الجديدة. لتطبيق النموذج على المحتويات التي تم رفعها سابقًا، قم بتشغيل <link>{job}</link>.",
|
||||
"storage_template_migration_job": "وظيفة تهجير قالب التخزين",
|
||||
"storage_template_more_details": "لمزيد من التفاصيل حول هذه الميزة، يرجى الرجوع إلى <template-link>Storage Template</template-link> و <implications-link>implications</implications-link>.",
|
||||
"storage_template_more_details": "لمزيد من التفاصيل حول هذه الميزة، يرجى الرجوع إلى <template-link>Storage Template</template-link> و <implications-link>implications</implications-link>",
|
||||
"storage_template_onboarding_description_v2": "عند التفعيل. هذه الخاصية ستقوم بالترتيب التلقائي للملفات بناء على نموذج معرف من قبل المستخدم. رجاء اطلع على <link>التوثيق</link>.",
|
||||
"storage_template_path_length": "الحد التقريبي لطول المسار: <b>{length, number}</b>/{limit, number}",
|
||||
"storage_template_settings": "قالب التخزين",
|
||||
@@ -881,15 +884,12 @@
|
||||
"cutoff_date_description": "احتفظ بالصور من آخر…",
|
||||
"cutoff_day": "{count, plural, one {يوم} other {ايام}}",
|
||||
"cutoff_year": "{count, plural, one {سنة} other {سنوات}}",
|
||||
"daily_title_text_date": "E ، MMM DD",
|
||||
"daily_title_text_date_year": "E ، MMM DD ، yyyy",
|
||||
"dark": "معتم",
|
||||
"dark_theme": "تبديل المظهر إلى الداكن",
|
||||
"date": "تاريخ",
|
||||
"date_after": "التارخ بعد",
|
||||
"date_and_time": "التاريخ و الوقت",
|
||||
"date_before": "التاريخ قبل",
|
||||
"date_format": "E ، Lll D ، Y • H: MM A",
|
||||
"date_of_birth_saved": "تم حفظ تاريخ الميلاد بنجاح",
|
||||
"date_range": "نطاق الموعد",
|
||||
"day": "يوم",
|
||||
@@ -1392,6 +1392,7 @@
|
||||
"light_theme": "التبديل إلى المظهر الفاتح",
|
||||
"like": "اعجاب",
|
||||
"like_deleted": "تم حذف الإعجاب",
|
||||
"link": "رابط",
|
||||
"link_motion_video": "رابط فيديو الحركة",
|
||||
"link_to_docs": "لمزيد من المعلومات، يُرجى الرجوع إلى <link>الوثائق</link>.",
|
||||
"link_to_oauth": "الربط مع OAuth",
|
||||
@@ -1544,7 +1545,6 @@
|
||||
"mobile_app_download_onboarding_note": "قم بتنزيل التطبيق المصاحب للهاتف المحمول باستخدام الخيارات التالية",
|
||||
"model": "نموذج",
|
||||
"month": "شهر",
|
||||
"monthly_title_text_date_format": "ط ط ط",
|
||||
"more": "المزيد",
|
||||
"move": "تحريك",
|
||||
"move_down": "انزل الى الاسفل",
|
||||
@@ -1562,6 +1562,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "لا يمكن تعديل موقع الأصول (المواد) للقراءة فقط، سوف يتخطى",
|
||||
"mute_memories": "كتم الذكريات",
|
||||
"my_albums": "ألبوماتي",
|
||||
"my_immich_description": "نسخ الصفحة الحالية كرابط Immich الخاص بي",
|
||||
"my_immich_title": "رابط Immich الخاص بي",
|
||||
"name": "الاسم",
|
||||
"name_or_nickname": "الاسم أو اللقب",
|
||||
"name_required": "الاسم مطلوب",
|
||||
@@ -1926,6 +1928,8 @@
|
||||
"scan_settings": "إعدادات الفحص",
|
||||
"scanning": "جاري البحث",
|
||||
"scanning_for_album": "جارٍ الفحص عن ألبوم...",
|
||||
"screencast_mode_description": "إظهار مؤشرات أحداث لوحة المفاتيح والماوس على الشاشة",
|
||||
"screencast_mode_title": "تبديل وضع تسجيل الشاشة",
|
||||
"search": "البحث",
|
||||
"search_albums": "البحث في الألبومات",
|
||||
"search_by_context": "البحث حسب السياق",
|
||||
@@ -2214,6 +2218,8 @@
|
||||
"sync_status": "حالة النسخ المتزامن",
|
||||
"sync_status_subtitle": "عرض وإدارة نظام النسخ المتزامن",
|
||||
"sync_upload_album_setting_subtitle": "انشئ و ارفع صورك و فديوهاتك الالبومات المختارة في Immich",
|
||||
"system_theme": "سمة النظام",
|
||||
"system_theme_command_description": "استعمل سمة النظام ({value})",
|
||||
"tag": "العلامة",
|
||||
"tag_assets": "أصول العلامة",
|
||||
"tag_created": "تم إنشاء العلامة: {tag}",
|
||||
|
||||
+27
-2
@@ -5,6 +5,7 @@
|
||||
"acknowledge": "Təsdiq et",
|
||||
"action": "Əməliyyat",
|
||||
"action_common_update": "Yenilə",
|
||||
"action_description": "Filtrlənmiş aktivliklər üzərində yerinə yetiriləcək əməliyyatlar toplusu",
|
||||
"actions": "Əməliyyatlar",
|
||||
"active": "Aktiv",
|
||||
"active_count": "Aktiv: {count}",
|
||||
@@ -15,9 +16,14 @@
|
||||
"add_a_location": "Məkan əlavə et",
|
||||
"add_a_name": "Ad əlavə et",
|
||||
"add_a_title": "Başlıq əlavə et",
|
||||
"add_action": "Yeni əməliyyat əlavə et",
|
||||
"add_action_description": "Əməliyyat əlavə etmək üçün klikləyin",
|
||||
"add_assets": "Aktivlik əlavə et",
|
||||
"add_birthday": "Doğum günü əlavə et",
|
||||
"add_endpoint": "Son nöqtə əlavə et",
|
||||
"add_exclusion_pattern": "Çıxarma nümunəsi əlavə et",
|
||||
"add_filter": "Filter əlavə et",
|
||||
"add_filter_description": "Filtr şərti əlavə etmək üçün klik edin",
|
||||
"add_location": "Məkan əlavə et",
|
||||
"add_more_users": "Daha çox istifadəçi əlavə et",
|
||||
"add_partner": "Partnyor əlavə et",
|
||||
@@ -36,6 +42,7 @@
|
||||
"add_to_shared_album": "Paylaşılan alboma əlavə et",
|
||||
"add_upload_to_stack": "Yeni yüklənmə əlavə et",
|
||||
"add_url": "URL əlavə et",
|
||||
"add_workflow_step": "İş axını addımı əlavə et",
|
||||
"added_to_archive": "Arxivə əlavə edildi",
|
||||
"added_to_favorites": "Sevimlilələrə əlavə edildi",
|
||||
"added_to_favorites_count": "{count, number} şəkil sevimlilələrə əlavə edildi",
|
||||
@@ -46,7 +53,7 @@
|
||||
"authentication_settings": "Səlahiyyətləndirmə parametrləri",
|
||||
"authentication_settings_description": "Şifrə, OAuth və digər səlahiyyətləndirmə parametrləri",
|
||||
"authentication_settings_disable_all": "Bütün giriş etmə metodlarını söndürmək istədiyinizdən əminsinizmi? Giriş etmə funksiyası tamamilə söndürüləcəkdir.",
|
||||
"authentication_settings_reenable": "Yenidən aktiv etmək üçün <link> Server Əmri</link> -ni istifadə edin.",
|
||||
"authentication_settings_reenable": "Yenidən aktiv etmək üçün <link> Server Əmri</link>-ni istifadə edin.",
|
||||
"background_task_job": "Arxa plan tapşırıqları",
|
||||
"backup_database": "Verilənlər bazasının dump-ını yaradın",
|
||||
"backup_database_enable_description": "Verilənlər bazasının artıq nüsxələrini aktiv et",
|
||||
@@ -54,6 +61,7 @@
|
||||
"backup_onboarding_1_description": "buludda və ya başqa fiziki yerdə saytdan kənar surət.",
|
||||
"backup_onboarding_2_description": "müxtəlif cihazlarda yerli nüsxələr. Bura əsas fayllar və həmin faylların ehtiyat lokal nüsxəsi daxildir.",
|
||||
"backup_onboarding_3_description": "orijinal fayllar da daxil olmaqla məlumatlarınızın ümumi surətləri. Buraya 1 kənar nüsxə və 2 lokal nüsxə daxildir.",
|
||||
"backup_onboarding_description": "<backblaze-link>3-2-1 yedəkləmə strategiyası</backblaze-link> məlumatlarınızı qorumaq üçün tövsiyə olunur. Yüklədiyiniz şəkil və videoların, həmçinin Immich verilənlər bazasının surətlərini saxlamalısınız ki, hərtərəfli yedəkləmə həlli əldə edəsiniz.",
|
||||
"backup_onboarding_footer": "Immich-in ehtiyat nüsxəsini çıxarmaq haqqında ətraflı məlumat üçün <link>sənədlərə</link> müraciət edin.",
|
||||
"backup_onboarding_parts_title": "3-2-1 ehtiyat nüsxəsinə aşağıdakılar daxildir:",
|
||||
"backup_onboarding_title": "Ehtiyat surətlər",
|
||||
@@ -61,14 +69,31 @@
|
||||
"backup_settings_description": "Verilənlər bazasının ehtiyat nüsxə parametrlərini idarə et",
|
||||
"cleared_jobs": "{job} üçün tapşırıqlar silindi",
|
||||
"config_set_by_file": "Konfiqurasiya hal-hazırda konfiqurasiya faylı ilə təyin olunub",
|
||||
"confirm_delete_library": "{library} kitabxanasını silmək istədiyinizdən əminmisiniz?",
|
||||
"confirm_delete_library": "{library} kitabxanasını silmək istədiyinizə əminmisiniz?",
|
||||
"confirm_email_below": "Təsdiqləmək üçün aşağıya {email} yazın",
|
||||
"confirm_reprocess_all_faces": "Bütün üzləri yenidən emal etmək istədiyinizə əminsiniz? Bu, həmçinin adlandırılmış şəxsləri siləcək.",
|
||||
"confirm_user_password_reset": "{user} adlı istifadəçinin şifrəsini sıfırlamaq istədiyinizdən əminmisiniz?",
|
||||
"confirm_user_pin_code_reset": "{user} istifadəçisinin PIN kodunu sıfırlamaq istədiyinizə əminsiniz?",
|
||||
"copy_config_to_clipboard_description": "Cari sistem konfiqurasiyasını JSON obyekt kimi mübadilə buferinə kopyalayın",
|
||||
"create_job": "İş yarat",
|
||||
"cron_expression": "Cron ifadəsi",
|
||||
"cron_expression_description": "Cron formatından istifadə edərək skan intervalını təyin edin. Ətraflı məlumat üçün nümunələrə baxa bilərsiniz. <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "Cron ifadəsi ön ayarları",
|
||||
"disable_login": "Giriş etməni söndür",
|
||||
"duplicate_detection_job_description": "Bənzər şəkilləri tapmaq üçün maşın öyrənməsini işə salın. Bu prosses Smart Search funksiyasına əsaslanır",
|
||||
"exclusion_pattern_description": "İstisna nümunələri kitabxananızı skan edərkən faylları və qovluqları nəzərə almamağa imkan verir. Bu, RAW faylları kimi idxal etmək istəmədiyiniz faylları olan qovluqlarınız olduqda faydalıdır.",
|
||||
"export_config_as_json_description": "Cari sistem konfiqurasiyasını JSON faylı kimi endirin",
|
||||
"external_libraries_page_description": "Admin xarici kitabxana səhifəsi",
|
||||
"face_detection": "Üz tanıma",
|
||||
"failed_job_command": "{command} əmri {job} işi üçün uğursuz oldu",
|
||||
"force_delete_user_warning": "XƏBƏRDARLIQ: Bu əməliyyat istifadəçi və bütün məlumatları siləcəkdir. Bu prossesi və silinən faylları geri qaytarmaq olmaz.",
|
||||
"image_format": "Format",
|
||||
"image_format_description": "WebP, JPEG faylına görə daha kiçik həcmə sahibdir, lakin onu kodlaşdırmaq daha çox vaxt alır.",
|
||||
"image_fullsize_description": "Böyüdülmüş halda istifadə edilən, metadata-sı silinmiş tam ölçülü şəkil",
|
||||
"image_fullsize_enabled": "Tam ölçülü şəkil generasiyasını aktiv et",
|
||||
"image_fullsize_enabled_description": "Veb üçün uyğun olmayan formatlar üçün tam ölçülü şəkil yaradın. “Daxili önizləməyə üstünlük ver” aktiv olduqda, daxili önizləmələr çevrilmədən birbaşa istifadə olunur. JPEG kimi veb üçün uyğun formatlara təsir etmir.",
|
||||
"image_fullsize_quality_description": "Tam ölçülü şəkil keyfiyyəti (1-100). Daha yüksək dəyər daha yaxşı keyfiyyət verir, lakin daha böyük ölçülü fayl yaradır.",
|
||||
"image_fullsize_title": "Tam ölçülü şəkil tənzimləmələri",
|
||||
"image_preview_title": "Önizləmə parametrləri",
|
||||
"image_quality": "Keyfiyyət",
|
||||
"image_resolution": "Çözümlülük",
|
||||
|
||||
+1899
-5
File diff suppressed because it is too large
Load Diff
+55
-4
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Включване на имейл известията",
|
||||
"notification_settings": "Настройки на известията",
|
||||
"notification_settings_description": "Управление на настройките за известия, вкл. имейл",
|
||||
"oauth_allow_insecure_requests": "Разрешаване на несигурни заявки",
|
||||
"oauth_allow_insecure_requests_description": "ПРЕДУПРЕЖДЕНИЕ: Това изключва проверката за валидност на TLS сертификата при OAuth заявки и отваря възможност за атака от типа \"човек по средата\".",
|
||||
"oauth_auto_launch": "Автоматично стартиране",
|
||||
"oauth_auto_launch_description": "Автоматично стартиране на вход чрез OAuth, когато се отвори страницата за вход",
|
||||
"oauth_auto_register": "Автоматична регистрация",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Текст на бутона",
|
||||
"oauth_client_secret_description": "Задължително за поверителен клиент или когато не се поддържа PKCE (Proof Key for Code Exchange) за публичен клиент.",
|
||||
"oauth_enable_description": "Влизане с OAuth",
|
||||
"oauth_end_session_url_description": "Пренасочване на потребителя към този URI адрес, когато излезе от системата.",
|
||||
"oauth_mobile_redirect_uri": "URI за мобилно пренасочване",
|
||||
"oauth_mobile_redirect_uri_override": "URI пренасочване за мобилни устройства",
|
||||
"oauth_mobile_redirect_uri_override_description": "Разреши когато доставчика за OAuth удостоверяване не позволява за мобилни URI идентификатори, като ''{callback}''",
|
||||
"oauth_prompt_description": "Параметър за подкана (напр. select_account, login, consent)",
|
||||
"oauth_role_claim": "Потвърждение на роля",
|
||||
"oauth_role_claim_description": "Автоматично предоставяне на административни права при наличие на това потвържение. Потвърждението може да има стойност 'user' или 'admin'.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Запазване на снимки от последните…",
|
||||
"cutoff_day": "{count, plural, one {ден} other {дни}}",
|
||||
"cutoff_year": "{count, plural, one {година} other {години}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM yyyy",
|
||||
"dark": "Тъмен",
|
||||
"dark_theme": "Премини към тъмна тема",
|
||||
"date": "Дата",
|
||||
"date_after": "Дата след",
|
||||
"date_and_time": "Дата и час",
|
||||
"date_before": "Дата преди",
|
||||
"date_format": "E, d LLL y • h:mm a",
|
||||
"date_of_birth": "Дата на раждане",
|
||||
"date_of_birth_saved": "Дата на раждане е записана успешно",
|
||||
"date_range": "Период от време",
|
||||
"day": "Ден",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Преместете архивираните снимки и видеа в кошчето на устройството, за да освободите място. Копията на сървъра ще бъдат запазени.",
|
||||
"free_up_space_settings_subtitle": "Освобождаване на място за съхранение на устройството",
|
||||
"full_path": "Пълен път: {path}",
|
||||
"full_path_or_folder": "Пълен път или папка",
|
||||
"gcast_enabled": "Gооgle Cast",
|
||||
"gcast_enabled_description": "За да работи тази функция зарежда външни ресурси от Google.",
|
||||
"general": "Общи",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Премини към светла тема",
|
||||
"like": "Харесайте",
|
||||
"like_deleted": "Като изтрит",
|
||||
"link": "Връзка",
|
||||
"link_motion_video": "Линк към видео",
|
||||
"link_to_docs": "За повече информация вижте <link>документацията</link>.",
|
||||
"link_to_oauth": "Линк към OAuth",
|
||||
"linked_oauth_account": "Свързан OAuth акаунт",
|
||||
"list": "Лист",
|
||||
"live": "Живот",
|
||||
"loading": "Зареждане",
|
||||
"loading_search_results_failed": "Зареждането на резултатите от търсенето е неуспешно",
|
||||
"local": "Локално",
|
||||
@@ -1518,6 +1523,38 @@
|
||||
"marked_all_as_read": "Всички маркирани като прочетени",
|
||||
"matches": "Съвпадения",
|
||||
"matching_assets": "Съвпадащи обекти",
|
||||
"media_chrome": {
|
||||
"auto": "Авто",
|
||||
"captions": "Субтитри",
|
||||
"captions_off": "Изключенo",
|
||||
"closed_captions": "субтитри",
|
||||
"decode_error": "Грешка при декодиране",
|
||||
"disable_captions": "Изключи субтитри",
|
||||
"enable_captions": "Включи субтитри",
|
||||
"enter_fullscreen_mode": "На цял екран",
|
||||
"exit_fullscreen_mode": "Изход от цял екран",
|
||||
"loop": "Повтаряй",
|
||||
"media_error_description": "Възпроизвеждането е спряно поради грешка във файла. Може би файлът е повреден или браузъра не поддържа този формат.",
|
||||
"media_loading": "зареждане на медия",
|
||||
"mute": "Без звук",
|
||||
"network_error": "Грешка в мрежата",
|
||||
"network_error_description": "Прекъсване на зареждането поради грешка в мрежата.",
|
||||
"not_supported_error": "Този източник не се поддържа",
|
||||
"playback_rate": "Скорост на възпроизвеждане",
|
||||
"playback_rate_current": "текуща скорост на възпроизвеждане",
|
||||
"playback_rate_value": "Скорост на възпроизвеждане {playbackRate}",
|
||||
"playback_time": "продължителност",
|
||||
"quality": "Качество",
|
||||
"second": "секунда",
|
||||
"seconds": "секунди",
|
||||
"time_value_of_total_time": "{currentTime} от {totalTime}",
|
||||
"time_value_remaining": "{time} остават",
|
||||
"unmute": "Включи звук",
|
||||
"unsupported_error_description": "Възникна непоправима грешка. Проблем в сървъра или мрежата, възможно е браузъра да не поддържа този формат.",
|
||||
"video_not_loaded_unknown_time": "не е заредено видео, неизвестно време.",
|
||||
"video_player": "видеоплеер",
|
||||
"volume": "сила на звука"
|
||||
},
|
||||
"media_type": "Вид медия",
|
||||
"memories": "Спомени",
|
||||
"memories_all_caught_up": "Това е всичко за днес",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Свалете мобилното приложение Immich с някоя от следните опции",
|
||||
"model": "Модел",
|
||||
"month": "Месец",
|
||||
"monthly_title_text_date_format": "MMMM г",
|
||||
"more": "Още",
|
||||
"motion": "Движение",
|
||||
"move": "Премести",
|
||||
"move_down": "Премести надолу",
|
||||
"move_off_locked_folder": "Извади от заключената папка",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Не може да се редактира местоположението на обект само за четене, пропускане",
|
||||
"mute_memories": "Изключване на звука на спомените",
|
||||
"my_albums": "Мои албуми",
|
||||
"my_immich_description": "Копирай адреса на текущата страница като връзка към моя Immich",
|
||||
"my_immich_title": "Връзка към моя Immich",
|
||||
"name": "Име",
|
||||
"name_or_nickname": "Име или прякор",
|
||||
"name_required": "Задължително е Име",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "Премахване на елементите?",
|
||||
"remove_custom_date_range": "Премахни зададения диапазон от дати",
|
||||
"remove_deleted_assets": "Премахни Изтритите Елементи",
|
||||
"remove_filter": "Премахни филтър",
|
||||
"remove_from_album": "Премахни от албума",
|
||||
"remove_from_album_action_prompt": "{count} са премахнати от албума",
|
||||
"remove_from_favorites": "Премахни от Любими",
|
||||
@@ -1926,6 +1966,8 @@
|
||||
"scan_settings": "Сканирай настройките",
|
||||
"scanning": "Сканиране",
|
||||
"scanning_for_album": "Сканирай за албум...",
|
||||
"screencast_mode_description": "Показване на екрана на индикатори за събития от клавиатурата и мишката",
|
||||
"screencast_mode_title": "Превключване на режима на скрийнкаст",
|
||||
"search": "Търсене",
|
||||
"search_albums": "Търси албуми",
|
||||
"search_by_context": "Търси по контекст",
|
||||
@@ -1933,6 +1975,8 @@
|
||||
"search_by_description_example": "Разходка в Сапа",
|
||||
"search_by_filename": "Търси по име на файла или разширение",
|
||||
"search_by_filename_example": "например IMG_1234.JPG или PNG",
|
||||
"search_by_full_path": "Търсене по пълен път или папка",
|
||||
"search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - търсена за Projects, 3D, Printing, 2026 и т.н.",
|
||||
"search_by_ocr": "Търсене на текст",
|
||||
"search_by_ocr_example": "Lattе",
|
||||
"search_camera_lens_model": "Търсене на модел на обектива...",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Покажи схема",
|
||||
"show_search_options": "Показване на опциите за търсене",
|
||||
"show_shared_links": "Покажи споделени линкове",
|
||||
"show_slideshow_metadata_overlay": "Покажи информационния слой",
|
||||
"show_slideshow_transition": "Покажи прехода на слайдшоуто",
|
||||
"show_supporter_badge": "Значка поддръжник",
|
||||
"show_supporter_badge_description": "Покажи значка поддръжник",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Премини към папките",
|
||||
"skip_to_tags": "Премини към етикетите",
|
||||
"slideshow": "Слайдшоу",
|
||||
"slideshow_metadata_overlay_mode": "Съдържание на слоя с информация",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Само описание",
|
||||
"slideshow_metadata_overlay_mode_full": "Пълна",
|
||||
"slideshow_repeat": "Повтаряй слайдшоуто",
|
||||
"slideshow_repeat_description": "Започвай отново, когато слайдшоуто приключи",
|
||||
"slideshow_settings": "Настройки за слайдшоу",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Състояние на синхронизацията",
|
||||
"sync_status_subtitle": "Преглед и управление на системата за синхронизация",
|
||||
"sync_upload_album_setting_subtitle": "Създавайте и зареждайте снимки и видеа в избрани албуми в Immich",
|
||||
"system_theme": "Тема от системата",
|
||||
"system_theme_command_description": "Използвай системната тема ({value})",
|
||||
"tag": "Таг",
|
||||
"tag_assets": "Тагни елементи",
|
||||
"tag_created": "Създаден етикет: {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Работни процеси",
|
||||
"workflows_help_text": "Работните процеси автоматизират действията с вашите обекти чрез тригери и филтри",
|
||||
"wrong_pin_code": "Грешен PIN код",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Година",
|
||||
"years_ago": "преди {years, plural, one {# година} other {# години}}",
|
||||
"yes": "Да",
|
||||
|
||||
+55
-4
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Habilita les notificacions de correu electrònic",
|
||||
"notification_settings": "Configuració de notificacions",
|
||||
"notification_settings_description": "Gestiona la configuració de notificacions, incloent-hi el correu electrònic",
|
||||
"oauth_allow_insecure_requests": "Permet sol·licituds no segures",
|
||||
"oauth_allow_insecure_requests_description": "AVÍS: Això inhabilita la validació de certificats TLS per a les sol·licituds OAuth i us pot exposar a atacs MITM.",
|
||||
"oauth_auto_launch": "Execució automàtica",
|
||||
"oauth_auto_launch_description": "Inicia el flux d'inici de sessió OAuth automàticament en accedir a la pàgina d'inici de sessió",
|
||||
"oauth_auto_register": "Registre automàtic",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Text del botó",
|
||||
"oauth_client_secret_description": "Requerit per clients confidencials, o si PKCE (Proof Key for Code Exchange) no està suportat pel client públic.",
|
||||
"oauth_enable_description": "Iniciar sessió amb OAuth",
|
||||
"oauth_end_session_url_description": "Redirigeix l'usuari a aquest URI quan tanqui la sessió.",
|
||||
"oauth_mobile_redirect_uri": "URI de redirecció mòbil",
|
||||
"oauth_mobile_redirect_uri_override": "Sobreescriu l'URI de redirecció mòbil",
|
||||
"oauth_mobile_redirect_uri_override_description": "Habilita quan el proveïdor d'OAuth no permet una URI mòbil, com ara ''{callback}''",
|
||||
"oauth_prompt_description": "Paràmetre de sol·licitud (per exemple, select_account, login, consent)",
|
||||
"oauth_role_claim": "Concessió de rol",
|
||||
"oauth_role_claim_description": "Atorgar accés d'administrador automàticament segons la presència d'aquesta concessió. La concessió pot ser 'usuari' o 'admin'.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Manté fotos des de l'últim…",
|
||||
"cutoff_day": "{count, plural, one {dia} other {dies}}",
|
||||
"cutoff_year": "{count, plural, one {any} other {anys}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Fosc",
|
||||
"dark_theme": "Canvia a tema fosc",
|
||||
"date": "Data",
|
||||
"date_after": "Data posterior a",
|
||||
"date_and_time": "Data i hora",
|
||||
"date_before": "Data anterior a",
|
||||
"date_format": "E, d LLL, y • hh:mm",
|
||||
"date_of_birth": "Data de naixement",
|
||||
"date_of_birth_saved": "Data de naixement guardada amb èxit",
|
||||
"date_range": "Interval de dates",
|
||||
"day": "Dia",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Mou fotos i videos que ja tinguen còpia al servidor a la paperera del teu dispositiu per alliberar espai. Les còpies del servidor no es modificaran.",
|
||||
"free_up_space_settings_subtitle": "Alliberar espai del dispositiu",
|
||||
"full_path": "Ruta completa: {path}",
|
||||
"full_path_or_folder": "Camí sencer o carpeta",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Aquesta funció carrega recursos externs de Google per funcionar.",
|
||||
"general": "General",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Canviar a tema clar",
|
||||
"like": "M'agrada",
|
||||
"like_deleted": "M'agrada suprimit",
|
||||
"link": "Enllaç",
|
||||
"link_motion_video": "Enllaçar vídeo en moviment",
|
||||
"link_to_docs": "Per més informació, mirar la <link>documentation</link>.",
|
||||
"link_to_oauth": "Enllaç a OAuth",
|
||||
"linked_oauth_account": "Compte OAuth enllaçat",
|
||||
"list": "Llista",
|
||||
"live": "En viu",
|
||||
"loading": "Carregant",
|
||||
"loading_search_results_failed": "No s'han pogut carregar els resultats de la cerca",
|
||||
"local": "Local",
|
||||
@@ -1518,6 +1523,38 @@
|
||||
"marked_all_as_read": "Marcat tot com a llegit",
|
||||
"matches": "Coincidències",
|
||||
"matching_assets": "Recursos Coincidents",
|
||||
"media_chrome": {
|
||||
"auto": "Auto",
|
||||
"captions": "Llegendes",
|
||||
"captions_off": "Desactivat",
|
||||
"closed_captions": "Llegendes tancades",
|
||||
"decode_error": "Error de decodificació",
|
||||
"disable_captions": "Desactivar llegendes",
|
||||
"enable_captions": "Activar llegendes",
|
||||
"enter_fullscreen_mode": "Activar mode pantalla sencera",
|
||||
"exit_fullscreen_mode": "Desactivar mode pantalla sencera",
|
||||
"loop": "Bucle",
|
||||
"media_error_description": "Un error dels mitjans ha provocat l'aturada de la reproducció. El mitjà pot estar corromput o el navegador no suporta el format.",
|
||||
"media_loading": "carregant el mitjà",
|
||||
"mute": "Silencia",
|
||||
"network_error": "Error de xarxa",
|
||||
"network_error_description": "Un error de xarxa ha provocat la fallada de la descarrega.",
|
||||
"not_supported_error": "Font origen no suportada",
|
||||
"playback_rate": "Velocitat de reproducció",
|
||||
"playback_rate_current": "velocitat actual de reproducció",
|
||||
"playback_rate_value": "Velocitat de reproducció {playbackRate}",
|
||||
"playback_time": "temps de reproducció",
|
||||
"quality": "Quallitat",
|
||||
"second": "segon",
|
||||
"seconds": "segons",
|
||||
"time_value_of_total_time": "{currentTime} de {totalTime}",
|
||||
"time_value_remaining": "{time} restant",
|
||||
"unmute": "Activa so",
|
||||
"unsupported_error_description": "Un error no suportat ha passat. El servidor o la xarxa han fallat, o el vostre navegador no accepta aquest format.",
|
||||
"video_not_loaded_unknown_time": "vídeo no carregat, temps desconegut.",
|
||||
"video_player": "reproductor de vídeo",
|
||||
"volume": "volum"
|
||||
},
|
||||
"media_type": "Tipus de mitjà",
|
||||
"memories": "Records",
|
||||
"memories_all_caught_up": "Posat al dia",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Descarregar la App de mòbil fent servir les seguents opcions",
|
||||
"model": "Model",
|
||||
"month": "Mes",
|
||||
"monthly_title_text_date_format": "MMMM a",
|
||||
"more": "Més",
|
||||
"motion": "Moviment",
|
||||
"move": "Moure",
|
||||
"move_down": "Moure cap avall",
|
||||
"move_off_locked_folder": "Moure fora de la carpeta bloquejada",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "No es pot canviar la localització de fitxers de només lectura, saltant",
|
||||
"mute_memories": "Silenciar records",
|
||||
"my_albums": "Els meus àlbums",
|
||||
"my_immich_description": "Copia la pàgina actual com a enllaç de My Immich",
|
||||
"my_immich_title": "Enllaç My Immich",
|
||||
"name": "Nom",
|
||||
"name_or_nickname": "Nom o sobrenom",
|
||||
"name_required": "El nom és obligatori",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "Eliminar els elements?",
|
||||
"remove_custom_date_range": "Elimina l'interval de dates personalitzat",
|
||||
"remove_deleted_assets": "Suprimeix fitxers fora de línia",
|
||||
"remove_filter": "Elimina el filtre",
|
||||
"remove_from_album": "Treu de l'àlbum",
|
||||
"remove_from_album_action_prompt": "{count} eliminats de l'àlbum",
|
||||
"remove_from_favorites": "Eliminar dels preferits",
|
||||
@@ -1926,6 +1966,8 @@
|
||||
"scan_settings": "Configuració d'escaneig",
|
||||
"scanning": "Escanejant",
|
||||
"scanning_for_album": "S'està buscant l'àlbum...",
|
||||
"screencast_mode_description": "Mostra els indicadors d'esdeveniments del teclat i del ratolí a la pantalla",
|
||||
"screencast_mode_title": "Activa/desactiva el mode de captura de pantalla",
|
||||
"search": "Cerca",
|
||||
"search_albums": "Buscar àlbums",
|
||||
"search_by_context": "Buscar per context",
|
||||
@@ -1933,6 +1975,8 @@
|
||||
"search_by_description_example": "Jornada de senderisme a Sapa",
|
||||
"search_by_filename": "Cerca per nom de fitxer o extensió",
|
||||
"search_by_filename_example": "per exemple IMG_1234.JPG o PNG",
|
||||
"search_by_full_path": "Cerca per camí complert o carpeta",
|
||||
"search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - pots buscar Projectes, 3D, Impressió, 2026 etc.",
|
||||
"search_by_ocr": "Buscar per OCR",
|
||||
"search_by_ocr_example": "Després",
|
||||
"search_camera_lens_model": "Buscar model de lents....",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Mostrar esquema",
|
||||
"show_search_options": "Mostra opcions de cerca",
|
||||
"show_shared_links": "Mostra els enllaços compartits",
|
||||
"show_slideshow_metadata_overlay": "Mostra informació sobre la imatge",
|
||||
"show_slideshow_transition": "Mostra la transició de la presentació de diapositives",
|
||||
"show_supporter_badge": "Insígnia de contribuent",
|
||||
"show_supporter_badge_description": "Mostra una insígnia de contributor",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Anar a carpetes",
|
||||
"skip_to_tags": "Anar a etiquetes",
|
||||
"slideshow": "Diapositives",
|
||||
"slideshow_metadata_overlay_mode": "Contingut de superposició",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Descripció només",
|
||||
"slideshow_metadata_overlay_mode_full": "Tot",
|
||||
"slideshow_repeat": "Repeteix la presentació de diapositives",
|
||||
"slideshow_repeat_description": "Torna al principi quan acaba la presentació de diapositives",
|
||||
"slideshow_settings": "Configuració de diapositives",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Estat de la incronització",
|
||||
"sync_status_subtitle": "Observa i administra el sistema de sincronització",
|
||||
"sync_upload_album_setting_subtitle": "Creeu i pugeu les seves fotos i vídeos als àlbums seleccionats a Immich",
|
||||
"system_theme": "Tema del sistema",
|
||||
"system_theme_command_description": "Utilitza el tema del sistema ({value})",
|
||||
"tag": "Etiqueta",
|
||||
"tag_assets": "Etiquetar actius",
|
||||
"tag_created": "Etiqueta creada: {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Automatitzacions",
|
||||
"workflows_help_text": "Les automatitzacions realitzen accions automàticament sobre els teus mitjans basant-se en disparadors i filtres",
|
||||
"wrong_pin_code": "Codi PIN incorrecte",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Any",
|
||||
"years_ago": "Fa {years, plural, one {# any} other {# anys}}",
|
||||
"yes": "Sí",
|
||||
|
||||
+55
-4
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Povolení e-mailových oznámení",
|
||||
"notification_settings": "Oznámení",
|
||||
"notification_settings_description": "Správa nastavení oznámení včetně e-mailu",
|
||||
"oauth_allow_insecure_requests": "Povolit nezabezpečené požadavky",
|
||||
"oauth_allow_insecure_requests_description": "VAROVÁNÍ: Toto zakáže ověřování TLS certifikátů u požadavků OAuth, což vás může vystavit riziku útoků typu MITM.",
|
||||
"oauth_auto_launch": "Automatické zahájení",
|
||||
"oauth_auto_launch_description": "Automatické zahájení přihlašovacího toku OAuth po přechodu na přihlašovací stránku",
|
||||
"oauth_auto_register": "Automatická registrace",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Text tlačítka",
|
||||
"oauth_client_secret_description": "Vyžadováno pro důvěrné klienty nebo pokud PKCE (Proof Key for Code Exchange) není podporováno pro veřejné klienty.",
|
||||
"oauth_enable_description": "Přihlásit pomocí OAuth",
|
||||
"oauth_end_session_url_description": "Přesměrovat uživatele po odhlášení na tuto adresu.",
|
||||
"oauth_mobile_redirect_uri": "Mobilní přesměrování URI",
|
||||
"oauth_mobile_redirect_uri_override": "Přepsat mobilní přesměrování URI",
|
||||
"oauth_mobile_redirect_uri_override_description": "Povolit, pokud poskytovatel OAuth nepovoluje mobilní URI, například ''{callback}''",
|
||||
"oauth_prompt_description": "Parametr dotazu (např. select_account, login, consent)",
|
||||
"oauth_role_claim": "Deklarace Role",
|
||||
"oauth_role_claim_description": "Automaticky udělit přístup správce na základě přítomnosti této deklarace. Deklarace může mít hodnotu 'user' nebo 'admin'.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Zanechat fotografie a videa z posledních…",
|
||||
"cutoff_day": "{count, plural, one {den} few {dny} other {dnů}}",
|
||||
"cutoff_year": "{count, plural, one {rok} few {roky} other {let}}",
|
||||
"daily_title_text_date": "EEEE, d. MMMM",
|
||||
"daily_title_text_date_year": "EEEE, d. MMMM y",
|
||||
"dark": "Tmavý",
|
||||
"dark_theme": "Přepnout na tmavý motiv",
|
||||
"date": "Datum",
|
||||
"date_after": "Datum po",
|
||||
"date_and_time": "Datum a čas",
|
||||
"date_before": "Datum před",
|
||||
"date_format": "EEEE, d. MMMM y • H:mm",
|
||||
"date_of_birth": "Datum narození",
|
||||
"date_of_birth_saved": "Datum narození úspěšně uloženo",
|
||||
"date_range": "Rozsah dat",
|
||||
"day": "Den",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Přesunout zálohované fotografie a videa do koše zařízení, abyste uvolnili místo. Vaše kopie na serveru zůstanou v bezpečí.",
|
||||
"free_up_space_settings_subtitle": "Uvolnit úložiště zařízení",
|
||||
"full_path": "Úplná cesta: {path}",
|
||||
"full_path_or_folder": "Celá cesta nebo složka",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Tato funkce načítá externí zdroje z Googlu, aby mohla fungovat.",
|
||||
"general": "Obecné",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Přepnout na světlý motiv",
|
||||
"like": "Líbí se mi",
|
||||
"like_deleted": "Oblíbení smazáno",
|
||||
"link": "Odkaz",
|
||||
"link_motion_video": "Připojit pohyblivé video",
|
||||
"link_to_docs": "Další informace najdete v <link>dokumentaci</link>.",
|
||||
"link_to_oauth": "Propojit s OAuth",
|
||||
"linked_oauth_account": "Propojený OAuth účet",
|
||||
"list": "Seznam",
|
||||
"live": "Živý",
|
||||
"loading": "Načítání",
|
||||
"loading_search_results_failed": "Načítání výsledků vyhledávání se nezdařilo",
|
||||
"local": "Místní",
|
||||
@@ -1518,6 +1523,38 @@
|
||||
"marked_all_as_read": "Vše označeno jako přečtené",
|
||||
"matches": "Shody",
|
||||
"matching_assets": "Odpovídající položky",
|
||||
"media_chrome": {
|
||||
"auto": "Automaticky",
|
||||
"captions": "Titulky",
|
||||
"captions_off": "Vypnuto",
|
||||
"closed_captions": "skryté titulky",
|
||||
"decode_error": "Chyba dekódování",
|
||||
"disable_captions": "Vypnout titulky",
|
||||
"enable_captions": "Zapnout titulky",
|
||||
"enter_fullscreen_mode": "Přepnout do režimu celé obrazovky",
|
||||
"exit_fullscreen_mode": "Ukončit režim celé obrazovky",
|
||||
"loop": "Smyčka",
|
||||
"media_error_description": "K přerušení přehrávání došlo kvůli chybě souboru. Soubor může být poškozený, případně váš prohlížeč tento formát nepodporuje.",
|
||||
"media_loading": "načítání médií",
|
||||
"mute": "Ztlumit",
|
||||
"network_error": "Chyba sítě",
|
||||
"network_error_description": "K selhání stahování médií došlo kvůli síťové chybě.",
|
||||
"not_supported_error": "Zdroj není podporován",
|
||||
"playback_rate": "Rychlost přehrávání",
|
||||
"playback_rate_current": "aktuální rychlost přehrávání",
|
||||
"playback_rate_value": "Rychlost přehrávání {playbackRate}",
|
||||
"playback_time": "doba přehrávání",
|
||||
"quality": "Kvalita",
|
||||
"second": "sekunda",
|
||||
"seconds": "sekund",
|
||||
"time_value_of_total_time": "{currentTime} z {totalTime}",
|
||||
"time_value_remaining": "zbývá {time}",
|
||||
"unmute": "Zrušit ztlumení",
|
||||
"unsupported_error_description": "Došlo k chybě způsobené nepodporovaným formátem. Došlo k selhání serveru nebo sítě, případně váš prohlížeč tento formát nepodporuje.",
|
||||
"video_not_loaded_unknown_time": "video se nenačetlo, známý čas.",
|
||||
"video_player": "videopřehrávač",
|
||||
"volume": "hlasitost"
|
||||
},
|
||||
"media_type": "Typ média",
|
||||
"memories": "Vzpomínky",
|
||||
"memories_all_caught_up": "To je všechno",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Stáhněte si doprovodnou mobilní aplikaci pomocí následujících možností",
|
||||
"model": "Model",
|
||||
"month": "Měsíc",
|
||||
"monthly_title_text_date_format": "LLLL y",
|
||||
"more": "Více",
|
||||
"motion": "Pohyb",
|
||||
"move": "Přesunout",
|
||||
"move_down": "Přesunout dolů",
|
||||
"move_off_locked_folder": "Přesunout z uzamčené složky",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Nelze upravit polohu položek pouze pro čtení, přeskakuji",
|
||||
"mute_memories": "Ztlumit vzpomínky",
|
||||
"my_albums": "Moje alba",
|
||||
"my_immich_description": "Zkopírovat aktuální stránku jako odkaz na Můj Immich",
|
||||
"my_immich_title": "Odkaz na Můj Immich",
|
||||
"name": "Jméno",
|
||||
"name_or_nickname": "Jméno nebo přezdívka",
|
||||
"name_required": "Jméno je povinné",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "Odstranit položky?",
|
||||
"remove_custom_date_range": "Odstranit vlastní rozsah dat",
|
||||
"remove_deleted_assets": "Odstranit offline soubory",
|
||||
"remove_filter": "Odstranit filtr",
|
||||
"remove_from_album": "Odstranit z alba",
|
||||
"remove_from_album_action_prompt": "{count} odstraněných z alba",
|
||||
"remove_from_favorites": "Odstranit z oblíbených",
|
||||
@@ -1926,6 +1966,8 @@
|
||||
"scan_settings": "Nastavení prohledávání",
|
||||
"scanning": "Prohládává se",
|
||||
"scanning_for_album": "Prohledávání alba...",
|
||||
"screencast_mode_description": "Zobrazit na obrazovce indikátory událostí klávesnice a myši",
|
||||
"screencast_mode_title": "Přepnout režim screencastu",
|
||||
"search": "Hledat",
|
||||
"search_albums": "Vyhledávejte alba",
|
||||
"search_by_context": "Vyhledávání podle obsahu",
|
||||
@@ -1933,6 +1975,8 @@
|
||||
"search_by_description_example": "Pěší turistika v Sapě",
|
||||
"search_by_filename": "Vyhledávání podle názvu nebo přípony souboru",
|
||||
"search_by_filename_example": "např. IMG_1234.JPG nebo PNG",
|
||||
"search_by_full_path": "Hledat podle celé cesty nebo složky",
|
||||
"search_by_full_path_example": "/Jan/Projekty/3D_tisk/2026-07-01 – můžete hledat Projekty, 3D, tisk, 2026 apod.",
|
||||
"search_by_ocr": "Hledat pomocí OCR",
|
||||
"search_by_ocr_example": "Latte",
|
||||
"search_camera_lens_model": "Vyhledat model objektivu...",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Zobrazit schéma",
|
||||
"show_search_options": "Zobrazit možnosti vyhledávání",
|
||||
"show_shared_links": "Zobrazit sdílené odkazy",
|
||||
"show_slideshow_metadata_overlay": "Zobrazit překryvné informace k obrázku",
|
||||
"show_slideshow_transition": "Zobrazit přechod prezentace",
|
||||
"show_supporter_badge": "Odznak podporovatele",
|
||||
"show_supporter_badge_description": "Zobrazit odznak podporovatele",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Přeskočit na složky",
|
||||
"skip_to_tags": "Přeskočit na značky",
|
||||
"slideshow": "Prezentace",
|
||||
"slideshow_metadata_overlay_mode": "Obsah překryvného panelu",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Pouze popis",
|
||||
"slideshow_metadata_overlay_mode_full": "Úplný",
|
||||
"slideshow_repeat": "Opakovat prezentaci",
|
||||
"slideshow_repeat_description": "Po skončení prezentace se vrátit na začátek",
|
||||
"slideshow_settings": "Nastavení prezentace",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Stav synchronizace",
|
||||
"sync_status_subtitle": "Zobrazit a spravovat synchronizační systém",
|
||||
"sync_upload_album_setting_subtitle": "Vytvořit a nahrát fotografie a videa do vybraných alb na Immich",
|
||||
"system_theme": "Vzhled systému",
|
||||
"system_theme_command_description": "Použít systémové téma ({value})",
|
||||
"tag": "Značka",
|
||||
"tag_assets": "Přiřadit značku",
|
||||
"tag_created": "Vytvořena značka: {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Pracovní postupy",
|
||||
"workflows_help_text": "Pracovní postupy automatizují akce týkající se vašich položek na základě spouštěčů a filtrů",
|
||||
"wrong_pin_code": "Chybný PIN kód",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Rok",
|
||||
"years_ago": "Před {years, plural, one {rokem} other {# lety}}",
|
||||
"yes": "Ano",
|
||||
|
||||
+60
-9
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Slå emailnotifikationer til",
|
||||
"notification_settings": "Notifikationsindstillinger",
|
||||
"notification_settings_description": "Administrer notifikationsindstillinger, inklusiv email",
|
||||
"oauth_allow_insecure_requests": "Tillad usikre anmodninger",
|
||||
"oauth_allow_insecure_requests_description": "ADVARSEL: Dette deaktiverer TLS-certificering for OAuth anmodninger og kan udsætte dig for MITM angreb.",
|
||||
"oauth_auto_launch": "Auto-opstart",
|
||||
"oauth_auto_launch_description": "Påbegynd OAuth login-flow automatisk når loginsiden tilgås",
|
||||
"oauth_auto_register": "Autoregistrér",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Knaptekst",
|
||||
"oauth_client_secret_description": "Påkrævet for en fortrolig klient eller hvis PKCE (Proof Key for Code Exchange) ikke understøttes for en offentlig klient.",
|
||||
"oauth_enable_description": "Log ind med OAuth",
|
||||
"oauth_end_session_url_description": "Omdiriger brugeren til denne URI, når de logger ud.",
|
||||
"oauth_mobile_redirect_uri": "Mobilomdiregerings-URL",
|
||||
"oauth_mobile_redirect_uri_override": "Tilsidesættelse af mobil omdiregerings-URL",
|
||||
"oauth_mobile_redirect_uri_override_description": "Aktiver, når OAuth-udbyderen ikke tillader en mobil URI, som ''{callback}''",
|
||||
"oauth_prompt_description": "Prompt-parameter (f.eks. select_account, login, consent)",
|
||||
"oauth_role_claim": "Rolle attribut",
|
||||
"oauth_role_claim_description": "Tildel automatisk admin adgang på basis af forekomst af denne påstand. Dén kan være enten 'user' eller 'admin'.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Behold fotos fra den sidste…",
|
||||
"cutoff_day": "{count, plural, one {dag} other {dage}}",
|
||||
"cutoff_year": "{count, plural, one {år} other {år}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Mørk",
|
||||
"dark_theme": "Skift til mørkt tema",
|
||||
"date": "Dato",
|
||||
"date_after": "Dato efter",
|
||||
"date_and_time": "Dato og klokkeslæt",
|
||||
"date_before": "Dato før",
|
||||
"date_format": "E d. LLL y • hh:mm",
|
||||
"date_of_birth": "Fødselsdag",
|
||||
"date_of_birth_saved": "Fødselsdatoen blev gemt korrekt",
|
||||
"date_range": "Datointerval",
|
||||
"day": "Dag",
|
||||
@@ -972,7 +974,7 @@
|
||||
"downloading_media": "Download medier",
|
||||
"drop_files_to_upload": "Slip filer hvor som helst for at uploade dem",
|
||||
"duplicates": "Duplikater",
|
||||
"duplicates_description": "Løs hver gruppe ved at angive hvilke, hvis nogen, er dubletter",
|
||||
"duplicates_description": "Løs hver gruppe ved at angive hvilke, hvis nogen, er dubletter.",
|
||||
"duration": "Varighed",
|
||||
"edit": "Rediger",
|
||||
"edit_album": "Redigér album",
|
||||
@@ -998,7 +1000,7 @@
|
||||
"edit_title": "Redigér titel",
|
||||
"edit_user": "Redigér bruger",
|
||||
"edit_workflow": "Rediger workflow",
|
||||
"editor": "Redaktør",
|
||||
"editor": "Rediger",
|
||||
"editor_close_without_save_prompt": "Ændringerne vil ikke blive gemt",
|
||||
"editor_close_without_save_title": "Luk editor?",
|
||||
"editor_confirm_reset_all_changes": "Er du sikker på, at du vil nulstille alle ændringer?",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Flyt sikkerhedskopierede fotos og videoer til din enheds skraldespand for at frigøre plads. Dine kopier på serveren forbliver sikre.",
|
||||
"free_up_space_settings_subtitle": "Frigør enhedslagerplads",
|
||||
"full_path": "Fuld sti: {path}",
|
||||
"full_path_or_folder": "Fuld sti eller mappe",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Denne funktion indlæser eksterne ressourcer fra Google for at virke.",
|
||||
"general": "Generel",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Skift til lyst tema",
|
||||
"like": "Synes om",
|
||||
"like_deleted": "Ligesom slettet",
|
||||
"link": "Link",
|
||||
"link_motion_video": "Link bevægelsesvideo",
|
||||
"link_to_docs": "For yderligere information, se <link>dokumentationen</link>.",
|
||||
"link_to_oauth": "Link til OAuth",
|
||||
"linked_oauth_account": "Tilsluttet OAuth-konto",
|
||||
"list": "Liste",
|
||||
"live": "Live",
|
||||
"loading": "Indlæser",
|
||||
"loading_search_results_failed": "Indlæsning af søgeresultater fejlede",
|
||||
"local": "Lokal",
|
||||
@@ -1518,7 +1523,39 @@
|
||||
"marked_all_as_read": "Markerede alle som læst",
|
||||
"matches": "Parringer",
|
||||
"matching_assets": "Matchende objekter",
|
||||
"media_type": "Medietype",
|
||||
"media_chrome": {
|
||||
"auto": "Auto",
|
||||
"captions": "Undertekster",
|
||||
"captions_off": "Fra",
|
||||
"closed_captions": "Undertekster for hørehæmmede",
|
||||
"decode_error": "Fejl ved dekodning",
|
||||
"disable_captions": "Slå undertekster fra",
|
||||
"enable_captions": "Slå undertekster til",
|
||||
"enter_fullscreen_mode": "Fuld skærm",
|
||||
"exit_fullscreen_mode": "Luk fuld skærm",
|
||||
"loop": "Gentag",
|
||||
"media_error_description": "En mediefejl stoppede afspilningen. Filen kan være korrupt eller browseren understøtter ikke filtypen.",
|
||||
"media_loading": "Loader medie",
|
||||
"mute": "Sluk lyd",
|
||||
"network_error": "Netværksfejl",
|
||||
"network_error_description": "En netværksfejl fik download til at fejle.",
|
||||
"not_supported_error": "Kilde er ikke understøttet",
|
||||
"playback_rate": "Afspilningshastighed",
|
||||
"playback_rate_current": "nuværende afspilningshastighed",
|
||||
"playback_rate_value": "Afspilningshastighed {playbackRate}",
|
||||
"playback_time": "afspilnings varighed",
|
||||
"quality": "Kvalitet",
|
||||
"second": "sekund",
|
||||
"seconds": "sekunder",
|
||||
"time_value_of_total_time": "{currentTime} af {totalTime}",
|
||||
"time_value_remaining": "{time} tilbage",
|
||||
"unmute": "Lyd til",
|
||||
"unsupported_error_description": "En ukendt fejl opstod. Fejl på server, netværk eller din browser understøtter ikke formatet.",
|
||||
"video_not_loaded_unknown_time": "video er ikke indlæst, ukendt tidspunkt.",
|
||||
"video_player": "videoafspiller",
|
||||
"volume": "lydstyrke"
|
||||
},
|
||||
"media_type": "Medieformat",
|
||||
"memories": "Minder",
|
||||
"memories_all_caught_up": "Ajour",
|
||||
"memories_check_back_tomorrow": "Kom tilbage i morgen for at se nye minder",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Hent den tilhørende mobilapp via en af følgende muligheder",
|
||||
"model": "Model",
|
||||
"month": "Måned",
|
||||
"monthly_title_text_date_format": "MMMM å",
|
||||
"more": "Mere",
|
||||
"motion": "Bevægelse",
|
||||
"move": "Flyt",
|
||||
"move_down": "Flyt ned",
|
||||
"move_off_locked_folder": "Flyt ud af låst mappe",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Kan ikke redigere lokation af skrivebeskyttet elementer. Springer over",
|
||||
"mute_memories": "Dæmp minder",
|
||||
"my_albums": "Mine albummer",
|
||||
"my_immich_description": "Kopier aktuel side som et Mit Immich link",
|
||||
"my_immich_title": "Mit Immich link",
|
||||
"name": "Navn",
|
||||
"name_or_nickname": "Navn eller kaldenavn",
|
||||
"name_required": "Navn er påkrævet",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "Fjern mediefiler?",
|
||||
"remove_custom_date_range": "Fjern tilpasset datointerval",
|
||||
"remove_deleted_assets": "Fjern slettede mediefiler",
|
||||
"remove_filter": "Fjern filter",
|
||||
"remove_from_album": "Fjern fra album",
|
||||
"remove_from_album_action_prompt": "{count} fjernet fra albummet",
|
||||
"remove_from_favorites": "Fjern fra favoritter",
|
||||
@@ -1908,7 +1948,7 @@
|
||||
"review_duplicates": "Gennemgå dubletter",
|
||||
"review_large_files": "Gennemgå store filer",
|
||||
"role": "Rolle",
|
||||
"role_editor": "Redaktør",
|
||||
"role_editor": "Rediger",
|
||||
"role_viewer": "Seer",
|
||||
"running": "Kører",
|
||||
"save": "Gem",
|
||||
@@ -1926,6 +1966,8 @@
|
||||
"scan_settings": "Skanningsindstillinger",
|
||||
"scanning": "Skanner",
|
||||
"scanning_for_album": "Skanner efter albummer...",
|
||||
"screencast_mode_description": "Vis indikatorer for tastatur- og musehændelse på skærmen",
|
||||
"screencast_mode_title": "Skift skærmcast-tilstand",
|
||||
"search": "Søg",
|
||||
"search_albums": "Søg i albummer",
|
||||
"search_by_context": "Søg efter kontekst",
|
||||
@@ -1933,6 +1975,8 @@
|
||||
"search_by_description_example": "Vandredag i Paris",
|
||||
"search_by_filename": "Søg efter filnavn eller filtypenavn",
|
||||
"search_by_filename_example": "dvs. IMG_1234.JPG eller PNG",
|
||||
"search_by_full_path": "søg efter fuld sti eller mappe",
|
||||
"search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - du kan søge efter Projects, 3D, Printing, 2026 osv.",
|
||||
"search_by_ocr": "Søg via OCR",
|
||||
"search_by_ocr_example": "Søg efter tekst i dine billeder",
|
||||
"search_camera_lens_model": "Søg objektiv model...",
|
||||
@@ -2101,7 +2145,7 @@
|
||||
"shared_link_edit_expire_after_option_year": "{count} år",
|
||||
"shared_link_edit_password_hint": "Indtast kodeordet",
|
||||
"shared_link_edit_submit_button": "Opdater link",
|
||||
"shared_link_error_server_url_fetch": "Kan ikke hente server URL",
|
||||
"shared_link_error_server_url_fetch": "Kan ikke hente server url",
|
||||
"shared_link_expires_day": "Udløber om {count} dag",
|
||||
"shared_link_expires_days": "Udløber om {count} dage",
|
||||
"shared_link_expires_hour": "Udløber om {count} time",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Vis skema",
|
||||
"show_search_options": "Vis søgeindstillinger",
|
||||
"show_shared_links": "Vis delte links",
|
||||
"show_slideshow_metadata_overlay": "Vis billedinfo-overlay",
|
||||
"show_slideshow_transition": "Vis overgang til diasshow",
|
||||
"show_supporter_badge": "Supporter skilt",
|
||||
"show_supporter_badge_description": "Vis et supporter ikon",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Spring til mapper",
|
||||
"skip_to_tags": "Spring til tags",
|
||||
"slideshow": "Diasshow",
|
||||
"slideshow_metadata_overlay_mode": "Overlay indhold",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Kun beskrivelse",
|
||||
"slideshow_metadata_overlay_mode_full": "Fuld",
|
||||
"slideshow_repeat": "Gentag diasshow",
|
||||
"slideshow_repeat_description": "Hop tilbage til begyndelsen når diasshow stopper",
|
||||
"slideshow_settings": "Diasshowindstillinger",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Synkroniserings Status",
|
||||
"sync_status_subtitle": "Se og administrér synkroniseringssystemet",
|
||||
"sync_upload_album_setting_subtitle": "Opret og upload dine billeder og videoer til de valgte albummer i Immich",
|
||||
"system_theme": "Systemtema",
|
||||
"system_theme_command_description": "Brug systemtemaet ({value})",
|
||||
"tag": "Tag",
|
||||
"tag_assets": "Tag mediefiler",
|
||||
"tag_created": "Oprettet tag: {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Arbejdsgange",
|
||||
"workflows_help_text": "Arbejdsgange automatiserer handlinger på dine filer baseret på udløsere og filtre",
|
||||
"wrong_pin_code": "Forkert PIN kode",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "År",
|
||||
"years_ago": "{years, plural, one {# år} other {# år}} siden",
|
||||
"yes": "Ja",
|
||||
|
||||
+62
-11
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"about": "Über",
|
||||
"about": "Über Immich",
|
||||
"account": "Konto",
|
||||
"account_settings": "Kontoeinstellungen",
|
||||
"acknowledge": "Verstanden",
|
||||
"acknowledge": "Schließen",
|
||||
"action": "Aktion",
|
||||
"action_common_update": "Aktualisieren",
|
||||
"action_description": "Eine Reihe von Aktionen, die an den gefilterten Assets ausgeführt werden sollen",
|
||||
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "E-Mail-Benachrichtigungen aktivieren",
|
||||
"notification_settings": "Benachrichtigungseinstellungen",
|
||||
"notification_settings_description": "Benachrichtigungseinstellungen (inkl. E-Mail) verwalten",
|
||||
"oauth_allow_insecure_requests": "Unsichere Anfragen erlauben",
|
||||
"oauth_allow_insecure_requests_description": "WARNUNG: Dies deaktiviert die TLS-Zertifikatsvalidierung für OAuth-Anfragen und kann Sie MITM-Angriffen aussetzen.",
|
||||
"oauth_auto_launch": "Auto-Start",
|
||||
"oauth_auto_launch_description": "Automatischer Start des OAuth-Anmeldevorgangs beim Aufrufen der Anmeldeseite",
|
||||
"oauth_auto_register": "Automatische Registrierung",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Button-Text",
|
||||
"oauth_client_secret_description": "Erforderlich für Confidential Clients oder wenn PKCE (Proof Key for Code Exchange) nicht für Public Clients unterstützt wird.",
|
||||
"oauth_enable_description": "Anmeldung mit OAuth",
|
||||
"oauth_end_session_url_description": "Leite den Benutzer nach dem Abmelden zu dieser URI weiter.",
|
||||
"oauth_mobile_redirect_uri": "Mobile Umleitungs-URI",
|
||||
"oauth_mobile_redirect_uri_override": "Mobile Umleitungs-URI überschreiben",
|
||||
"oauth_mobile_redirect_uri_override_description": "Einschalten, wenn der OAuth-Anbieter keine mobile URI wie ''{callback}'' erlaubt",
|
||||
"oauth_prompt_description": "Eingabe Parameter (z. B. Konto auswählen, Login, Einwilligung)",
|
||||
"oauth_role_claim": "Rollen-Claim",
|
||||
"oauth_role_claim_description": "Gewähre automatisch Admin-Zugriff basierend auf dem Vorhandensein dieses Claims. Der Claim kann entweder 'user' oder 'admin' sein.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,16 +885,14 @@
|
||||
"cutoff_date_description": "Behalte Fotos der letzten…",
|
||||
"cutoff_day": "{count, plural, one {Tag} other {Tage}}",
|
||||
"cutoff_year": "{count, plural, one {Jahr} other {Jahre}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Dunkel",
|
||||
"dark_theme": "Auf dunkle Ansicht umschalten",
|
||||
"date": "Datum",
|
||||
"date_after": "Datum nach",
|
||||
"date_and_time": "Datum und Zeit",
|
||||
"date_before": "Datum vor",
|
||||
"date_format": "E d. LLL y • hh:mm",
|
||||
"date_of_birth_saved": "Das Geburtsdatum wurde erfolgreich gespeichert",
|
||||
"date_of_birth": "Geburtstag",
|
||||
"date_of_birth_saved": "Der Geburtstag wurde erfolgreich gespeichert",
|
||||
"date_range": "Datumsbereich",
|
||||
"day": "Tag",
|
||||
"days": "Tage",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Bewege Fotos und Videos, die bereits gesichert wurden, in den Papierkorb auf deinem Gerät. Die Kopie auf dem Server bleibt unberührt.",
|
||||
"free_up_space_settings_subtitle": "Gerätespeicher freigeben",
|
||||
"full_path": "Vollständiger Pfad: {path}",
|
||||
"full_path_or_folder": "Voller Ordnerpfad oder Ordner",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Diese Funktion lädt externe Quellen von Google, um zu funktionieren.",
|
||||
"general": "Allgemein",
|
||||
@@ -1370,7 +1373,7 @@
|
||||
"last": "Letzte",
|
||||
"last_months": "{count, plural, one {Letzter Monat} other {Letzte # Monate}}",
|
||||
"last_seen": "Zuletzt gesehen",
|
||||
"latest_version": "Aktuelle Version",
|
||||
"latest_version": "Neuste Version",
|
||||
"latitude": "Breitengrad",
|
||||
"leave": "Verlassen",
|
||||
"leave_album": "Album verlassen",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Auf helle Ansicht umschalten",
|
||||
"like": "Gefällt mir",
|
||||
"like_deleted": "Like gelöscht",
|
||||
"link": "Link",
|
||||
"link_motion_video": "Bewegungsvideo verknüpfen",
|
||||
"link_to_docs": "Weitere Informationen finden Sie in der <link>Dokumentation</link>.",
|
||||
"link_to_oauth": "Mit OAuth verknüpfen",
|
||||
"linked_oauth_account": "Verknüpftes OAuth-Konto",
|
||||
"list": "Liste",
|
||||
"live": "Live",
|
||||
"loading": "Laden",
|
||||
"loading_search_results_failed": "Laden von Suchergebnissen fehlgeschlagen",
|
||||
"local": "Lokal",
|
||||
@@ -1494,7 +1499,7 @@
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Keine Fotos in diesem Gebiet} one {# Foto} other {# Fotos}}",
|
||||
"map_cannot_get_user_location": "Standort konnte nicht ermittelt werden",
|
||||
"map_location_dialog_yes": "Ja",
|
||||
"map_location_picker_page_use_location": "Aufnahmeort verwenden",
|
||||
"map_location_picker_page_use_location": "Diesen Standort verwenden",
|
||||
"map_location_service_disabled_content": "Ortungsdienste müssen aktiviert sein, um Inhalte am aktuellen Standort anzuzeigen. Willst du die Ortungsdienste jetzt aktivieren?",
|
||||
"map_location_service_disabled_title": "Ortungsdienste deaktiviert",
|
||||
"map_marker_for_images": "Kartenmarkierung für Bilder, die in {city}, {country} aufgenommen wurden",
|
||||
@@ -1518,6 +1523,38 @@
|
||||
"marked_all_as_read": "Alle als gelesen markiert",
|
||||
"matches": "Treffer",
|
||||
"matching_assets": "Passende Dateien",
|
||||
"media_chrome": {
|
||||
"auto": "Auto",
|
||||
"captions": "Untertitel",
|
||||
"captions_off": "Aus",
|
||||
"closed_captions": "Untertitel",
|
||||
"decode_error": "Dekodierungsfehler",
|
||||
"disable_captions": "Untertitel deaktivieren",
|
||||
"enable_captions": "Untertitel aktivieren",
|
||||
"enter_fullscreen_mode": "Vollbildmodus aktivieren",
|
||||
"exit_fullscreen_mode": "Vollbildmodus beenden",
|
||||
"loop": "Endlosschleife",
|
||||
"media_error_description": "Ein Medienfehler hat die Wiedergabe abgebrochen. Das Medium könnte beschädigt sein oder Ihr Browser unterstützt dieses Format nicht.",
|
||||
"media_loading": "Medien werden geladen",
|
||||
"mute": "Stumm schalten",
|
||||
"network_error": "Netzwerkfehler",
|
||||
"network_error_description": "Ein Netzwerkfehler hat dazu geführt, dass der Medien-Download fehlgeschlagen ist.",
|
||||
"not_supported_error": "Quelle nicht unterstützt",
|
||||
"playback_rate": "Wiedergabegeschwindigkeit",
|
||||
"playback_rate_current": "aktuelle Wiedergabegeschwindigkeit",
|
||||
"playback_rate_value": "Wiedergabegeschwindigkeit {playbackRate}",
|
||||
"playback_time": "Wiedergabezeit",
|
||||
"quality": "Qualität",
|
||||
"second": "Sekunde",
|
||||
"seconds": "Sekunden",
|
||||
"time_value_of_total_time": "{currentTime} von {totalTime}",
|
||||
"time_value_remaining": "{time} verbleibend",
|
||||
"unmute": "Stummschaltung aufheben",
|
||||
"unsupported_error_description": "Ein nicht unterstützter Fehler ist aufgetreten. Der Server oder das Netzwerk ist fehlgeschlagen, oder Ihr Browser unterstützt dieses Format nicht.",
|
||||
"video_not_loaded_unknown_time": "Video nicht geladen, unbekannte Zeit.",
|
||||
"video_player": "Videoplayer",
|
||||
"volume": "Lautstärke"
|
||||
},
|
||||
"media_type": "Medientyp",
|
||||
"memories": "Erinnerungen",
|
||||
"memories_all_caught_up": "Alles aufgeholt",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Herunterladen der mobilen Begleiter-App über einen der folgenden Möglichkeiten",
|
||||
"model": "Modell",
|
||||
"month": "Monat",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Mehr",
|
||||
"motion": "Bewegung",
|
||||
"move": "Verschieben",
|
||||
"move_down": "Nach unten",
|
||||
"move_off_locked_folder": "Aus dem gesperrten Ordner verschieben",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Der Aufnahmeort von schreibgeschützten Inhalten kann nicht verändert werden, überspringen",
|
||||
"mute_memories": "Erinnerungen stumm schalten",
|
||||
"my_albums": "Meine Alben",
|
||||
"my_immich_description": "Diese Seite als „Mein Immich“-Link kopieren",
|
||||
"my_immich_title": "Mein Immich-Link",
|
||||
"name": "Name",
|
||||
"name_or_nickname": "Name oder Nickname",
|
||||
"name_required": "Name ist erforderlich",
|
||||
@@ -1749,7 +1788,7 @@
|
||||
"places_count": "{count, plural, one {{count, number} Ort} other {{count, number} Orte}}",
|
||||
"play": "Abspielen",
|
||||
"play_memories": "Erinnerungen abspielen",
|
||||
"play_motion_photo": "Bewegte Bilder abspielen",
|
||||
"play_motion_photo": "Live-Foto abspielen",
|
||||
"play_or_pause_video": "Video abspielen oder pausieren",
|
||||
"play_original_video": "Originales Video abspielen",
|
||||
"play_original_video_setting_description": "Bevorzugen die Wiedergabe von Originalvideos gegenüber transkodierten Videos. Wenn das Original nicht kompatibel ist, wird es möglicherweise nicht korrekt wiedergegeben.",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "Dateien entfernen?",
|
||||
"remove_custom_date_range": "Benutzerdefinierten Datumsbereich entfernen",
|
||||
"remove_deleted_assets": "Offline-Dateien entfernen",
|
||||
"remove_filter": "Filter entfernen",
|
||||
"remove_from_album": "Aus Album entfernen",
|
||||
"remove_from_album_action_prompt": "{count} vom Album entfernt",
|
||||
"remove_from_favorites": "Aus Favoriten entfernen",
|
||||
@@ -1926,6 +1966,8 @@
|
||||
"scan_settings": "Scan-Einstellungen",
|
||||
"scanning": "Scanne",
|
||||
"scanning_for_album": "Nach Alben scannen...",
|
||||
"screencast_mode_description": "Tastatur- und Mausereignisindikatoren auf dem Bildschirm anzeigen",
|
||||
"screencast_mode_title": "Bildschirmübertragungsmodus umschalten",
|
||||
"search": "Suche",
|
||||
"search_albums": "Album suchen",
|
||||
"search_by_context": "Suche nach Kontext",
|
||||
@@ -1933,6 +1975,8 @@
|
||||
"search_by_description_example": "Wandern in Sapa",
|
||||
"search_by_filename": "Suche nach Dateiname oder -erweiterung",
|
||||
"search_by_filename_example": "z.B. IMG_1234.JPG oder PNG",
|
||||
"search_by_full_path": "Suchen nach Ordnerpfad oder Ordner",
|
||||
"search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - Sie können nach Projekten, 3D, Drucken, 2026 usw. suchen.",
|
||||
"search_by_ocr": "Suche per OCR",
|
||||
"search_by_ocr_example": "Latte",
|
||||
"search_camera_lens_model": "Suche nach Kameralinse...",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Schema anzeigen",
|
||||
"show_search_options": "Suchoptionen anzeigen",
|
||||
"show_shared_links": "Zeige geteilte Links",
|
||||
"show_slideshow_metadata_overlay": "Bildinformationen anzeigen",
|
||||
"show_slideshow_transition": "Slideshow-Übergang anzeigen",
|
||||
"show_supporter_badge": "Unterstützerabzeichen",
|
||||
"show_supporter_badge_description": "Zeige Unterstützerabzeichen",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Springe zu Ordnern",
|
||||
"skip_to_tags": "Springe zu Tags",
|
||||
"slideshow": "Diashow",
|
||||
"slideshow_metadata_overlay_mode": "Overlay Inhalt",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Nur Beschreibung",
|
||||
"slideshow_metadata_overlay_mode_full": "Alles",
|
||||
"slideshow_repeat": "Slideshow wiederholen",
|
||||
"slideshow_repeat_description": "Wenn Slideshow beendet, zum Anfang zurückkehren",
|
||||
"slideshow_settings": "Diashow-Einstellungen",
|
||||
@@ -2189,7 +2237,7 @@
|
||||
"state": "Bundesland / Provinz",
|
||||
"status": "Status",
|
||||
"stop_casting": "Übertragung stoppen",
|
||||
"stop_motion_photo": "Stop-Motion-Foto",
|
||||
"stop_motion_photo": "Live-Foto stoppen",
|
||||
"stop_photo_sharing": "Deine Fotos nicht mehr teilen?",
|
||||
"stop_photo_sharing_description": "{partner} wird keinen Zugriff mehr auf deine Fotos haben.",
|
||||
"stop_sharing_photos_with_user": "Aufhören Fotos mit diesem Benutzer zu teilen",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Synchronisierungstatus",
|
||||
"sync_status_subtitle": "Synchronisierungssystem anzeigen und bearbeiten",
|
||||
"sync_upload_album_setting_subtitle": "Erstelle und lade deine ausgewählten Fotos und Videos in die ausgewählten Alben auf Immich hoch",
|
||||
"system_theme": "Systemthema",
|
||||
"system_theme_command_description": "Systemdesign verwenden ({value})",
|
||||
"tag": "Tag",
|
||||
"tag_assets": "Dateien taggen",
|
||||
"tag_created": "Tag erstellt: {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Workflows",
|
||||
"workflows_help_text": "Workflows automatisieren Aktionen auf deinen Dateien, basierend auf Auslösern und Filtern",
|
||||
"wrong_pin_code": "PIN-Code falsch",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Jahr",
|
||||
"years_ago": "Vor {years, plural, one {einem Jahr} other {# Jahren}}",
|
||||
"yes": "Ja",
|
||||
|
||||
+46
-14
@@ -1,19 +1,19 @@
|
||||
{
|
||||
"about": "Über",
|
||||
"account": "Konto",
|
||||
"account_settings": "Konto Einstellungen",
|
||||
"account_settings": "Konto Istellige",
|
||||
"acknowledge": "Bestätigä",
|
||||
"action": "Aktion",
|
||||
"action_common_update": "Update",
|
||||
"action_description": "Aktionä, wo uf de gefilterti Mediä ausgführt werdä solled",
|
||||
"actions": "Aktionen",
|
||||
"actions": "Aktionä",
|
||||
"active": "Aktiv",
|
||||
"active_count": "Aktiv: {count}",
|
||||
"activity": "Aktivität",
|
||||
"activity_changed": "Aktivität ist {enabled, select, true {aktiviert} other {deaktiviert}}",
|
||||
"add": "Hinzuefüge",
|
||||
"add_a_description": "Beschreibung hinzufügen",
|
||||
"add_a_location": "Standort hinzuefügä",
|
||||
"add_a_description": "Beschribig afüege",
|
||||
"add_a_location": "Standort afüege",
|
||||
"add_a_name": "Namä hinzefügä",
|
||||
"add_a_title": "Titel hinzufeügä",
|
||||
"add_action": "Aktion hinzuefügä",
|
||||
@@ -38,10 +38,10 @@
|
||||
"add_to_album_toggle": "Auswahl umschalten für {album}",
|
||||
"add_to_albums": "Zu Alben hinzufügen",
|
||||
"add_to_albums_count": "Zu Alben hinzufügen ({count})",
|
||||
"add_to_bottom_bar": "Hinzufügen zu",
|
||||
"add_to_bottom_bar": "Däzuefüege zu",
|
||||
"add_to_shared_album": "Zu geteiltem Album hinzufügen",
|
||||
"add_upload_to_stack": "Upload zum Stapel hinzufügen",
|
||||
"add_url": "URL hinzufügen",
|
||||
"add_url": "URL däzuefüege",
|
||||
"add_workflow_step": "Workflow-Schritt hinzufügen",
|
||||
"added_to_archive": "Zum Archiv hinzugefügt",
|
||||
"added_to_favorites": "Zu Favoriten hinzugefügt",
|
||||
@@ -54,7 +54,7 @@
|
||||
"authentication_settings_description": "Passwort-, OAuth- und andere Authentifizierungseinstellungen verwalten",
|
||||
"authentication_settings_disable_all": "Bist du sicher, dass du alle Loginmethoden deaktivieren willst? Die Anmeldung wird vollständig deaktiviert.",
|
||||
"authentication_settings_reenable": "Nutze einen <link>Server-Befehl</link> zur Reaktivierung.",
|
||||
"background_task_job": "Hintergrundaufgaben",
|
||||
"background_task_job": "Hintergrundfarbä",
|
||||
"backup_database": "Datenbanksicherung erstellen",
|
||||
"backup_database_enable_description": "Datenbank regelmässig sichern",
|
||||
"backup_keep_last_amount": "Anzahl der aufzubewahrenden früheren Sicherungen",
|
||||
@@ -64,7 +64,7 @@
|
||||
"backup_onboarding_description": "Eine <backblaze-link>3-2-1 Sicherungsstrategie</backblaze-link> wird empfohlen, um deine Daten zu schützen. Du solltest sowohl Kopien deiner hochgeladenen Fotos/Videos als auch der Immich-Datenbank aufbewahren, um eine umfassende Sicherungslösung zu haben.",
|
||||
"backup_onboarding_footer": "Weitere Informationen zum Sichern von Immich findest du in der <link>Dokumentation</link>.",
|
||||
"backup_onboarding_parts_title": "Eine 3-2-1-Sicherung umfasst:",
|
||||
"backup_onboarding_title": "Backups",
|
||||
"backup_onboarding_title": "Sicherige",
|
||||
"backup_settings": "Einstellungen für Datenbanksicherung",
|
||||
"backup_settings_description": "Einstellungen zur regelmässigen Sicherung der Datenbank.",
|
||||
"cleared_jobs": "Folgende Aufgaben zurückgesetzt: {job}",
|
||||
@@ -76,16 +76,16 @@
|
||||
"confirm_user_password_reset": "Bist du sicher, dass du das Passwort für {user} zurücksetzen möchtest?",
|
||||
"confirm_user_pin_code_reset": "Bist du sicher, dass du den PIN-Code von {user} zurücksetzen möchtest?",
|
||||
"copy_config_to_clipboard_description": "Aktuelle Systemkonfiguration als JSON-Objekt in die Zwischenablage kopieren",
|
||||
"create_job": "Aufgabe erstellen",
|
||||
"create_job": "Ufgab erstelle",
|
||||
"cron_expression": "Cron-Ausdruck",
|
||||
"cron_expression_description": "Setze das Scanintervall im Cron-Format. Für mehr Informationen, siehe z. B. <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "Vorlagen für Cron-Ausdrücke",
|
||||
"disable_login": "Login deaktivieren",
|
||||
"disable_login": "Login deaktivierä",
|
||||
"duplicate_detection_job_description": "Verwendet maschinelles Lernen auf den Dateien, um Duplikate zu finden. Baut auf der intelligenten Suche auf",
|
||||
"exclusion_pattern_description": "Mit Ausschlussmustern können Dateien und Ordner beim Scannen deiner Bibliothek ignoriert werden. Dies ist nützlich, wenn du Ordner hast, die Dateien enthalten, die du nicht importieren möchtest, wie z. B. RAW-Dateien.",
|
||||
"export_config_as_json_description": "Aktuelle Systemkonfiguration als JSON-Datei herunterladen",
|
||||
"external_libraries_page_description": "Externe Bibliotheksseite für Administratoren",
|
||||
"face_detection": "Gesichtserkennung",
|
||||
"face_detection": "Gsichtserkennig",
|
||||
"face_detection_description": "Diese Aufgabe erkennt mit maschinellem Lernen Gesichter in Dateien. Bei Videos wird nur das Vorschaubild verwendet. „Aktualisieren“ verarbeitet alle Dateien neu. „Zurücksetzen“ setzt zusätzlich alle Gesichter zurück. „Fehlende“ fügt nur nicht verarbeitete Dateien in die Warteschlange ein. Erfasste Gesichter werden zur Gesichtsidentifizierung in die Warteschlange eingefügt, um sie in bestehende oder neue Personen zu gruppieren.",
|
||||
"facial_recognition_job_description": "Diese Aufgabe gruppiert im Anschluss an die Gesichtserkennung die erkannten Gesichter zu Personen. „Zurücksetzen“ gruppiert alle Gesichter neu, während „Fehlende“ Gesichter ohne Zuordnung in die Warteschlange stellt.",
|
||||
"failed_job_command": "Befehl {command} ist für Aufgabe {job} fehlgeschlagen",
|
||||
@@ -99,7 +99,7 @@
|
||||
"image_fullsize_title": "Hochauflösende Vorschaueinstellungen",
|
||||
"image_prefer_embedded_preview": "Eingebettete Vorschau bevorzugen",
|
||||
"image_prefer_embedded_preview_setting_description": "Verwende eingebettete Vorschaubilder in RAW-Fotos als Grundlage für die Bildverarbeitung, sofern diese zur Verfügung stehen. Dies kann bei einigen Bildern genauere Farben erzeugen, allerdings ist die Qualität der Vorschau kameraabhängig und das Bild kann mehr Kompressionsartefakte aufweisen.",
|
||||
"image_prefer_wide_gamut": "Breites Spektrum bevorzugen",
|
||||
"image_prefer_wide_gamut": "weiterer Farbraum bevorzugen",
|
||||
"image_prefer_wide_gamut_setting_description": "Display P3 (DCI-P3) für Vorschaubilder verwenden. Dadurch bleibt die Lebendigkeit von Bildern mit breiten Farbräumen besser erhalten, aber die Bilder können auf älteren Geräten mit einer älteren Browserversion etwas anders aussehen. sRGB-Bilder werden im sRGB-Format belassen, um Farbverschiebungen zu vermeiden.",
|
||||
"image_preview_description": "Mittelgrosses Bild mit entfernten Metadaten, das bei der Betrachtung einer einzelnen Datei und für maschinelles Lernen verwendet wird",
|
||||
"image_preview_quality_description": "Vorschauqualität von 1-100. Ein höherer Wert ist besser, erzeugt dadurch aber grössere Dateien und kann die Reaktionsfähigkeit der App beeinträchtigen. Ein niedriger Wert kann dafür aber die Qualität des maschinellen Lernens beeinträchtigen.",
|
||||
@@ -107,7 +107,7 @@
|
||||
"image_progressive": "Fortlaufend",
|
||||
"image_progressive_description": "JPEG-Bilder schrittweise kodieren, um ein stufenweises Laden zu ermöglichen. Dies hat keine Auswirkungen auf WebP-Bilder.",
|
||||
"image_quality": "Qualität",
|
||||
"image_resolution": "Auflösung",
|
||||
"image_resolution": "Uflösig",
|
||||
"image_resolution_description": "Höhere Auflösungen können mehr Details erhalten, benötigen aber mehr Zeit für die Kodierung, haben grössere Dateigrössen und können die Reaktionsfähigkeit der App beeinträchtigen.",
|
||||
"image_settings": "Bildeinstellungen",
|
||||
"image_settings_description": "Qualität und Auflösung der generierten Bilder verwalten",
|
||||
@@ -120,6 +120,8 @@
|
||||
"job_not_concurrency_safe": "Diese Aufgabe kann nicht mehrmals parallel laufen gelassen werden.",
|
||||
"job_settings": "Aufgabeneinstellungen",
|
||||
"job_settings_description": "Gleichzeitige Ausführung von Aufgaben verwalten",
|
||||
"jobs_delayed": "Qualität",
|
||||
"jobs_failed": "{jobCount, plural, other {# failed}}",
|
||||
"jobs_over_time": "Jobs im Laufe der Zeit",
|
||||
"library_created": "Bibliothek erstellt: {library}",
|
||||
"library_deleted": "Bibliothek gelöscht",
|
||||
@@ -127,6 +129,36 @@
|
||||
"library_folder_description": "Wähle einen Ordner zum Importieren. Dieser Ordner wird inklusive Unterordnern nach Bildern und Videos durchsucht.",
|
||||
"library_remove_exclusion_pattern_prompt": "Bilst du sicher, dass du dieses Ausschlussmuster entfernen möchtest?",
|
||||
"library_remove_folder_prompt": "Bist du sicher, dass du diesen Import-Ordner entfernen möchtest?",
|
||||
"library_scanning": "Regelmässiges Scannen"
|
||||
"library_scanning": "Regelmässiges Scannen",
|
||||
"library_scanning_description": "Regelmässiges Scannen der Bibliothek konfigurieren",
|
||||
"library_scanning_enable_description": "Regelmässiges Scannen der Bibliothek aktivieren",
|
||||
"library_settings": "Externe Bibliothek",
|
||||
"library_settings_description": "Einstellungen für externe Bibliotheken verwalten",
|
||||
"library_tasks_description": "Externe Bibliotheken nach neuen und/oder geänderten Assets durchsuchen",
|
||||
"library_updated": "Aktualisierte Bibliothek",
|
||||
"library_watching_enable_description": "Änderungen an Dateien in externen Bibliotheken überwachen",
|
||||
"library_watching_settings": "Bibliothek beobachten [EXPERIMENTELL]",
|
||||
"library_watching_settings_description": "Automatisch nach geänderten Dateien suchen",
|
||||
"logging_enable_description": "Logging aktivieren",
|
||||
"logging_level_description": "Wenn aktiviert, welches Logging-Level soll verwendet werden.",
|
||||
"logging_settings": "Logging",
|
||||
"machine_learning_availability_checks": "Verfügbarkeitsüberprüfungen",
|
||||
"machine_learning_availability_checks_description": "Verfügbare Machine-Learning-Server automatisch erkennen und bevorzugen",
|
||||
"machine_learning_availability_checks_enabled": "Verfügbarkeitsüberprüfungen aktivieren",
|
||||
"machine_learning_availability_checks_interval": "Überprüfungsintervall",
|
||||
"machine_learning_availability_checks_interval_description": "Intervall in Millisekunden zwischen Verfügbarkeitsüberprüfungen",
|
||||
"machine_learning_availability_checks_timeout": "Zeitüberschreitung der Anfrage",
|
||||
"machine_learning_availability_checks_timeout_description": "Timeout in Millisekunden für Verfügbarkeitsüberprüfungen",
|
||||
"machine_learning_clip_model": "CLIP Model",
|
||||
"machine_learning_clip_model_description": "Der Name eines der <link>hier</link> gelisteten CLIP-Modelle. Hinweis: Nach dem Ändern eines Modells muss der ‚Smart Search‘-Vorgang für alle Bilder erneut gestartet werden.",
|
||||
"machine_learning_duplicate_detection": "Duplikatserkennung",
|
||||
"machine_learning_duplicate_detection_enabled": "Duplikatserkennung aktivieren",
|
||||
"machine_learning_duplicate_detection_enabled_description": "Falls deaktiviert, werden exakt identische Assets weiterhin dedupliziert.",
|
||||
"machine_learning_duplicate_detection_setting_description": "Verwende CLIP embeddings um wahrscheinliche Dublikate zu finden",
|
||||
"machine_learning_enabled": "Maschinelles Lernen aktivieren",
|
||||
"machine_learning_enabled_description": "Falls deaktiviert, werden alle ML-Funktionen deaktiviert, unabhängig von den untenstehenden Einstellungen.",
|
||||
"machine_learning_facial_recognition": "Gesichtserkennung",
|
||||
"machine_learning_facial_recognition_description": "Gesichter in Bildern erkennen, identifizieren und gruppieren",
|
||||
"machine_learning_facial_recognition_model": "Model für die Gesichtserkennung"
|
||||
}
|
||||
}
|
||||
|
||||
+11
-4
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Ενεργοποίηση ειδοποιήσεων μέσω email",
|
||||
"notification_settings": "Ρυθμίσεις ειδοποιήσεων",
|
||||
"notification_settings_description": "Διαχείρηση ρυθμίσεων ειδοποιήσεων, συμπεριλαμβανομένου του email",
|
||||
"oauth_allow_insecure_requests": "Να επιτρέπονται μη ασφαλή αιτήματα",
|
||||
"oauth_allow_insecure_requests_description": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό απενεργοποιεί την επαλήθευση πιστοποιητικών TLS για αιτήματα OAuth και μπορεί να σας εκθέσει σε επιθέσεις MITM.",
|
||||
"oauth_auto_launch": "Αυτόματη εκκίνηση",
|
||||
"oauth_auto_launch_description": "Αυτόματη εκκίνιση της υπηρεσίας OAuth με την πλοήγηση στην σελίδα σύνδεσης",
|
||||
"oauth_auto_register": "Αυτόματη καταχώρηση",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Κείμενο κουμπιού",
|
||||
"oauth_client_secret_description": "Απαιτείται για έμπιστο πρόγραμμα πελάτη ή αν δεν υποστηρίζεται PKCE (Proof Key for Code Exchange) σε δημόσιο πρόγραμμα πελάτη.",
|
||||
"oauth_enable_description": "Σύνδεση με OAuth",
|
||||
"oauth_end_session_url_description": "Ανακατεύθυνση του χρήστη σε αυτό το URI όταν αποσυνδέεται.",
|
||||
"oauth_mobile_redirect_uri": "URI Ανακατεύθυνσης για κινητά τηλέφωνα",
|
||||
"oauth_mobile_redirect_uri_override": "Προσπέλαση URI ανακατεύθυνσης για κινητά τηλέφωνα",
|
||||
"oauth_mobile_redirect_uri_override_description": "Ενεργοποιήστε το όταν ο πάροχος OAuth δεν επιτρέπει μια URI για κινητά, όπως το ''{callback}''",
|
||||
"oauth_prompt_description": "Παράμετρος προτροπής (π.χ. επιλογή_λογαριασμού, σύνδεση, συναίνεση)",
|
||||
"oauth_role_claim": "Ανάθεση ρόλου",
|
||||
"oauth_role_claim_description": "Αυτόματη παραχώρηση πρόσβασης διαχειριστή με βάση την ύπαρξη αυτής της ανάθεσης. Η ανάθεση μπορεί να είναι είτε 'χρήστης' είτε 'διαχειριστής'.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,12 @@
|
||||
"cutoff_date_description": "Διατήρηση φωτογραφιών από τις τελευταίες…",
|
||||
"cutoff_day": "{count, plural, one {ημέρα} other {ημέρες}}",
|
||||
"cutoff_year": "{count, plural, one {έτος} other {έτη}}",
|
||||
"daily_title_text_date": "Ε, MMM dd",
|
||||
"daily_title_text_date_year": "Ε, MMM dd, yyyy",
|
||||
"dark": "Σκούρο",
|
||||
"dark_theme": "Μετάβαση σε σκοτεινό θέμα",
|
||||
"date": "Ημερομηνία",
|
||||
"date_after": "Ημερομηνία μετά",
|
||||
"date_and_time": "Ημερομηνία και ώρα",
|
||||
"date_before": "Ημερομηνία πριν",
|
||||
"date_format": "Ε, LLL d, y • h:mm a",
|
||||
"date_of_birth_saved": "Η ημερομηνία γέννησης αποθηκεύτηκε επιτυχώς",
|
||||
"date_range": "Εύρος ημερομηνιών",
|
||||
"day": "Ημέρα",
|
||||
@@ -1392,6 +1393,7 @@
|
||||
"light_theme": "Μετάβαση σε φωτεινό θέμα",
|
||||
"like": "Μου αρέσει",
|
||||
"like_deleted": "Το \"μου αρέσει\" διαγράφηκε",
|
||||
"link": "Σύνδεσμος",
|
||||
"link_motion_video": "Σύνδεσε βίντεο κίνησης",
|
||||
"link_to_docs": "Για περισσότερες πληροφορίες, ανατρέξτε στην <link>τεκμηρίωση</link>.",
|
||||
"link_to_oauth": "Σύνδεση στον OAuth",
|
||||
@@ -1544,7 +1546,6 @@
|
||||
"mobile_app_download_onboarding_note": "Κατέβασε την συνοδευτική εφαρμογή για κινητά χρησιμοποιώντας τις παρακάτω επιλογές",
|
||||
"model": "Μοντέλο",
|
||||
"month": "Μήνας",
|
||||
"monthly_title_text_date_format": "ΜΜΜΜ y",
|
||||
"more": "Περισσότερα",
|
||||
"move": "Μετακίνηση",
|
||||
"move_down": "Μετακίνηση προς τα κάτω",
|
||||
@@ -1562,6 +1563,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Δεν είναι δυνατή η επεξεργασία της τοποθεσίας των στοιχείων μόνο για ανάγνωση, παραλείπεται",
|
||||
"mute_memories": "Σίγαση Αναμνήσεων",
|
||||
"my_albums": "Τα άλμπουμ μου",
|
||||
"my_immich_description": "Αντιγραφή της τρέχουσας σελίδας ως σύνδεσμος Το Immich μου",
|
||||
"my_immich_title": "Σύνδεσμος Το Immich μου",
|
||||
"name": "Όνομα",
|
||||
"name_or_nickname": "Όνομα ή ψευδώνυμο",
|
||||
"name_required": "Απαιτείται όνομα",
|
||||
@@ -1926,6 +1929,8 @@
|
||||
"scan_settings": "Ρυθμίσεις Σάρωσης",
|
||||
"scanning": "Σαρώνεται",
|
||||
"scanning_for_album": "Σάρωση για άλμπουμ...",
|
||||
"screencast_mode_description": "Εμφάνιση ενδείξεων συμβάντων πληκτρολογίου και ποντικιού στην οθόνη",
|
||||
"screencast_mode_title": "Εναλλαγή λειτουργίας καταγραφής οθόνης",
|
||||
"search": "Αναζήτηση",
|
||||
"search_albums": "Αναζήτηση άλμπουμ",
|
||||
"search_by_context": "Αναζήτηση με βάση το πλαίσιο",
|
||||
@@ -2214,6 +2219,8 @@
|
||||
"sync_status": "Κατάσταση συγχρονισμού",
|
||||
"sync_status_subtitle": "Προβολή και διαχείριση του συστήματος συγχρονισμού",
|
||||
"sync_upload_album_setting_subtitle": "Δημιουργήστε και ανεβάστε τις φωτογραφίες και τα βίντεό σας στα επιλεγμένα άλμπουμ στο Immich",
|
||||
"system_theme": "Θέμα συστήματος",
|
||||
"system_theme_command_description": "Χρήση θέματος από το σύστημα ({value})",
|
||||
"tag": "Ετικέτα",
|
||||
"tag_assets": "Ετικετοποίηση στοιχείων",
|
||||
"tag_created": "Δημιουργήθηκε ετικέτα: {tag}",
|
||||
|
||||
+8
-4
@@ -885,15 +885,13 @@
|
||||
"cutoff_date_description": "Keep photos from the last…",
|
||||
"cutoff_day": "{count, plural, one {day} other {days}}",
|
||||
"cutoff_year": "{count, plural, one {year} other {years}}",
|
||||
"daily_title_text_date": "E, MMM dd",
|
||||
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||
"dark": "Dark",
|
||||
"dark_theme": "Switch to dark theme",
|
||||
"date": "Date",
|
||||
"date_after": "Date after",
|
||||
"date_and_time": "Date and Time",
|
||||
"date_before": "Date before",
|
||||
"date_format": "E, LLL d, y • h:mm a",
|
||||
"date_of_birth": "Date of birth",
|
||||
"date_of_birth_saved": "Date of birth saved successfully",
|
||||
"date_range": "Date range",
|
||||
"day": "Day",
|
||||
@@ -1403,6 +1401,7 @@
|
||||
"link_to_oauth": "Link to OAuth",
|
||||
"linked_oauth_account": "Linked OAuth account",
|
||||
"list": "List",
|
||||
"live": "Live",
|
||||
"loading": "Loading",
|
||||
"loading_search_results_failed": "Loading search results failed",
|
||||
"local": "Local",
|
||||
@@ -1582,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Download the companion mobile app using the following options",
|
||||
"model": "Model",
|
||||
"month": "Month",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "More",
|
||||
"motion": "Motion",
|
||||
"move": "Move",
|
||||
"move_down": "Move down",
|
||||
"move_off_locked_folder": "Move out of locked folder",
|
||||
@@ -1893,6 +1892,7 @@
|
||||
"remove_assets_title": "Remove assets?",
|
||||
"remove_custom_date_range": "Remove custom date range",
|
||||
"remove_deleted_assets": "Remove Deleted Assets",
|
||||
"remove_filter": "Remove filter",
|
||||
"remove_from_album": "Remove from album",
|
||||
"remove_from_album_action_prompt": "{count} removed from the album",
|
||||
"remove_from_favorites": "Remove from favorites",
|
||||
@@ -2192,6 +2192,7 @@
|
||||
"show_schema": "Show schema",
|
||||
"show_search_options": "Show search options",
|
||||
"show_shared_links": "Show shared links",
|
||||
"show_slideshow_metadata_overlay": "Show image info overlay",
|
||||
"show_slideshow_transition": "Show slideshow transition",
|
||||
"show_supporter_badge": "Supporter badge",
|
||||
"show_supporter_badge_description": "Show a supporter badge",
|
||||
@@ -2207,6 +2208,9 @@
|
||||
"skip_to_folders": "Skip to folders",
|
||||
"skip_to_tags": "Skip to tags",
|
||||
"slideshow": "Slideshow",
|
||||
"slideshow_metadata_overlay_mode": "Overlay content",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Description only",
|
||||
"slideshow_metadata_overlay_mode_full": "Full",
|
||||
"slideshow_repeat": "Repeat slideshow",
|
||||
"slideshow_repeat_description": "Loop back to beginning when slideshow ends",
|
||||
"slideshow_settings": "Slideshow settings",
|
||||
|
||||
+249
-11
@@ -65,7 +65,7 @@
|
||||
"backup_onboarding_footer": "Por pli da informoj pri savkopioj kun Immich, bonvolu legi la <link>dokumentaron</link>.",
|
||||
"backup_onboarding_parts_title": "Sekur-kopioj laŭ strategio 3-2-1 inkluzivas:",
|
||||
"backup_onboarding_title": "Savkopioj",
|
||||
"backup_settings": "Agordaĵoj de kopiado de datumbazo",
|
||||
"backup_settings": "Agordoj pri kopiado de datumbazo",
|
||||
"backup_settings_description": "Administri agordojn pri datumbazo-nekropsio.",
|
||||
"cleared_jobs": "Taskoj forigitaj por: {job}",
|
||||
"config_set_by_file": "La agordoj estas aktuale regitaj de agordo-dosiero",
|
||||
@@ -118,7 +118,7 @@
|
||||
"job_concurrency": "{job}: nombro de samtempaj taskoj",
|
||||
"job_created": "Tasko kreita",
|
||||
"job_not_concurrency_safe": "Estas nesekure fari tiun ĉi taskon samtempe kun aliaj.",
|
||||
"job_settings": "Agordoj pri tasko",
|
||||
"job_settings": "Agordoj pri taskoj",
|
||||
"job_settings_description": "Administri samtempajn taskojn",
|
||||
"jobs_delayed": "{jobCount, plural, other {# prokrastitaj}}",
|
||||
"jobs_failed": "{jobCount, plural, other {# malsukesis}}",
|
||||
@@ -212,7 +212,7 @@
|
||||
"map_enable_description": "Ŝalti map-funkciojn",
|
||||
"map_gps_settings": "Agordaĵoj pri mapoj kaj GPS",
|
||||
"map_gps_settings_description": "Administri agordojn pri mapoj kaj GPS",
|
||||
"map_implications": "Montri mapojn de dependas de ekstera servo (tiles.immich.cloud)",
|
||||
"map_implications": "Montri mapojn dependas de ekstera servo (tiles.immich.cloud)",
|
||||
"map_light_style": "Hela stilo",
|
||||
"map_manage_reverse_geocoding_settings": "Administri agordojn pri <link>inversa geo-kodigo</link>",
|
||||
"map_reverse_geocoding": "Inversa geo-kodigo",
|
||||
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Ŝalti sciigojn per retmesaĝo",
|
||||
"notification_settings": "Agordoj pri sciigoj",
|
||||
"notification_settings_description": "Administri agordojn pri sciigoj, inkluzive tiujn per retmesaĝoj",
|
||||
"oauth_allow_insecure_requests": "Permesi nesekurajn petojn",
|
||||
"oauth_allow_insecure_requests_description": "ATENTU: tio ĉi malŝaltas validigon de TLS-atestiloj por OAuth-petoj, kaj lasas vin sendefenda kontraŭ kaŝa interkaptado de komunikado (man-in-the-middle).",
|
||||
"oauth_auto_launch": "Startigi aŭtomate",
|
||||
"oauth_auto_launch_description": "Aŭtomate startigi la OAuth-procezon tuj ĉe la ensaluta paĝo",
|
||||
"oauth_auto_register": "Registri aŭtomate",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Teksto de butono",
|
||||
"oauth_client_secret_description": "Bezonata por privata kliento, aŭ se PKCE (Proof Key for Code Exchange) ne estas subtenata de publika kliento.",
|
||||
"oauth_enable_description": "Ensaluti per OAuth",
|
||||
"oauth_end_session_url_description": "Resendi uzanton al tiu ĉi URI post elsaluto.",
|
||||
"oauth_mobile_redirect_uri": "Resenda URI por poŝ-aparatoj",
|
||||
"oauth_mobile_redirect_uri_override": "Insisti pri resenda URI por poŝ-aparatoj",
|
||||
"oauth_mobile_redirect_uri_override_description": "Ŝaltu tion ĉi kiam la provizanto de OAuth ne permesas URI-on por poŝ-aparatoj, kiel \"{callback}\"",
|
||||
"oauth_prompt_description": "Parametro de invito (ekz. select_account, login, consent)",
|
||||
"oauth_role_claim": "Petita rolo",
|
||||
"oauth_role_claim_description": "Aŭtomate doni rolon de administranto laŭ tiu ĉi peto. La peto povas esti aŭ 'user' (uzanto) aŭ 'admin' (administranto).",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -314,7 +318,7 @@
|
||||
"server_external_domain_settings_description": "Domajno por eksteraj ligiloj",
|
||||
"server_public_users": "Publikaj uzantoj",
|
||||
"server_public_users_description": "Nomo kaj retadreso de ĉiuj uzantoj estas listigitaj kiam oni aldonas uzanton al dividita albumo. Kiam malŝaltita, la listo de uzantoj estos videbla nur por administrantoj.",
|
||||
"server_settings": "Agordoj de servilo",
|
||||
"server_settings": "Agordoj pri servilo",
|
||||
"server_settings_description": "Administri agordojn pri servilo",
|
||||
"server_stats_page_description": "Paĝo de statistikoj pri la servilo",
|
||||
"server_welcome_message": "Bonvena mesaĝo",
|
||||
@@ -436,7 +440,7 @@
|
||||
"user_password_reset_description": "Bonvolu sendi la dumtempan pasvorton al la uzanto, kaj informu ke ĝi devos esti ŝanĝita je la sekva ensaluto.",
|
||||
"user_restore_description": "La konto de <b>{user}</b> estos restaŭrita.",
|
||||
"user_restore_scheduled_removal": "Restaŭri uzanton - forviŝo planita je {date, date, long}",
|
||||
"user_settings": "Agordoj de uzanto",
|
||||
"user_settings": "Agordoj pri uzantoj",
|
||||
"user_settings_description": "Administri agordojn pri uzantoj",
|
||||
"user_successfully_removed": "La uzanto {email} estas forigita.",
|
||||
"users_page_description": "Paĝo por administri uzantojn",
|
||||
@@ -698,7 +702,7 @@
|
||||
"blurred_background": "Malklarigita fono",
|
||||
"bugs_and_feature_requests": "Cimoj kaj petoj por novaj funkcioj",
|
||||
"build": "Versio",
|
||||
"build_image": "Bildo de la versio",
|
||||
"build_image": "Pakaĵo por instali tiun ĉi softvaron",
|
||||
"bulk_delete_duplicates_confirmation": "Ĉu vi certas, ke vi volas amase forigi {count, plural, one {# duoblaĵon} other {# duoblaĵojn}}? Tiel, vi konservos la plej grandan elementon el ĉiu grupo kaj porĉiame forigos duoblaĵojn. Ne eblas malfari tion!",
|
||||
"bulk_keep_duplicates_confirmation": "Ĉu vi certas, ke vi volas konservi {count, plural, one {# duoblaĵon} other {# duoblaĵojn}}? Tio solvos ĉiujn duoblajn grupojn sen forigi ion ajn.",
|
||||
"bulk_trash_duplicates_confirmation": "Ĉu vi certas, ke vi volas amase forigi {count, plural, one {# duoblaĵon} other {# duoblaĵojn}}? Tiel, vi konservos la plej grandan elementon el ĉiu grupo kaj porĉiame forigos duoblaĵojn.",
|
||||
@@ -851,7 +855,7 @@
|
||||
"create_new": "KREI NOVAN",
|
||||
"create_new_face": "Krei novan vizaĝon",
|
||||
"create_new_person": "Krei novan homon",
|
||||
"create_new_person_hint": "Atribui elektitajn elementojn al nova homo",
|
||||
"create_new_person_hint": "Konekti elektitajn elementojn al nova homo",
|
||||
"create_new_user": "Krei novan uzanton",
|
||||
"create_person": "Krei homon",
|
||||
"create_person_subtitle": "Aldoni nomon al la elektita vizaĝo por krei kaj etikedi novan homon",
|
||||
@@ -881,15 +885,12 @@
|
||||
"cutoff_date_description": "Konservi fotojn el la lastaj…",
|
||||
"cutoff_day": "{count, plural, one {tago} other {tagoj}}",
|
||||
"cutoff_year": "{count, plural, one {jaro} other {jaroj}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Malhela",
|
||||
"dark_theme": "Ŝanĝi al hela reĝimo",
|
||||
"date": "Dato",
|
||||
"date_after": "Dato post",
|
||||
"date_and_time": "Dato kaj horo",
|
||||
"date_before": "Dato antaŭ",
|
||||
"date_format": "E, LLL d, y • h:mm a",
|
||||
"date_of_birth_saved": "Naskiĝdato sukcese registrita",
|
||||
"date_range": "Dato-intervalo",
|
||||
"day": "Tago",
|
||||
@@ -1088,41 +1089,195 @@
|
||||
"unable_to_add_partners": "Ne eblas aldoni partnerojn",
|
||||
"unable_to_add_remove_archive": "Ne eblas {archived, select, true {forigi elementon de} other {aldoni elementon al}} la arĥivo",
|
||||
"unable_to_add_remove_favorites": "Ne eblas {favorite, select, true {aldoni elementon al} other {forigi elementon de}} preferataĵoj",
|
||||
"unable_to_archive_unarchive": "Ne eblis {archived, select, true {enarĥivigi} other {elarĥivigi}}",
|
||||
"unable_to_change_album_user_role": "Ne eblis ŝanĝi la rolon de la album-uzanto",
|
||||
"unable_to_change_date": "Ne eblis ŝanĝi daton",
|
||||
"unable_to_change_description": "Ne eblis ŝanĝi priskribon",
|
||||
"unable_to_change_favorite": "Ne eblas ŝanĝi preferon por tiu elemento",
|
||||
"unable_to_change_location": "Ne eblis ŝanĝi lokon",
|
||||
"unable_to_change_password": "Ne eblis ŝanĝi pasvorton",
|
||||
"unable_to_change_visibility": "Ne eblis ŝanĝi la videblecon por {count, plural, one {# homo} other {# homoj}}",
|
||||
"unable_to_complete_oauth_login": "Ne eblis fini la ensaluto per OAuth",
|
||||
"unable_to_connect": "Ne eblis konektiĝi",
|
||||
"unable_to_copy_to_clipboard": "Ne eblas kopii al la tondujo; kontrolu ĉu vi konektiĝas per https",
|
||||
"unable_to_create": "Ne eblis krei laborfluon",
|
||||
"unable_to_create_admin_account": "Ne eblis krei konton de administranto",
|
||||
"unable_to_create_api_key": "Ne eblis krei novan API-ŝlosilon",
|
||||
"unable_to_create_library": "Ne eblis krei bibliotekon",
|
||||
"unable_to_create_user": "Ne eblis krei uzanton",
|
||||
"unable_to_delete_album": "Ne eblis forigi albumon",
|
||||
"unable_to_delete_asset": "Ne eblis forigi elementon",
|
||||
"unable_to_delete_assets": "Eraro okazis dum forigo de elementoj",
|
||||
"unable_to_delete_exclusion_pattern": "Ne eblas forigi skemon de ekskludo",
|
||||
"unable_to_delete_shared_link": "Ne eblis forigi dividitan ligilon",
|
||||
"unable_to_delete_user": "Ne eblis forigi uzanton",
|
||||
"unable_to_delete_workflow": "Ne eblis forigi laborfluon",
|
||||
"unable_to_download_files": "Ne eblis elŝuti dosierojn",
|
||||
"unable_to_edit_exclusion_pattern": "Ne eblas redakti skemon de ekskludo",
|
||||
"unable_to_empty_trash": "Ne eblis malplenigi rubujon",
|
||||
"unable_to_enter_fullscreen": "Ne eblis ŝalti plenekranan reĝimon",
|
||||
"unable_to_exit_fullscreen": "Ne eblis eliĝi el plenekrana reĝimo",
|
||||
"unable_to_get_comments_number": "Ne eblis trovi nombron da komentoj",
|
||||
"unable_to_get_shared_link": "Ne eblis ekhavi dividitan ligilon",
|
||||
"unable_to_hide_person": "Ne eblis kaŝi tiun homon",
|
||||
"unable_to_link_motion_video": "Ne eblis ligi videon",
|
||||
"unable_to_link_oauth_account": "Ne eblis ligi al OAuth-konto",
|
||||
"unable_to_log_out_all_devices": "Ne eblis elsaluti el ĉiuj aparatoj",
|
||||
"unable_to_log_out_device": "Ne eblis elsaluti el tiu aparato",
|
||||
"unable_to_login_with_oauth": "Ne eblis ensaluti per OAuth",
|
||||
"unable_to_play_video": "Ne eblis ludi videon",
|
||||
"unable_to_reassign_assets_existing_person": "Ne eblis rekonekti elementojn al {name, select, null {ekzistanta homo} other {{name}}}",
|
||||
"unable_to_reassign_assets_new_person": "Ne eblis konekti elementojn al nova homo",
|
||||
"unable_to_refresh_user": "Ne eblis renovigi uzanton",
|
||||
"unable_to_remove_album_users": "Ne eblis forigi uzantojn de albumo",
|
||||
"unable_to_remove_api_key": "Ne eblis forigi API-ŝlosilo",
|
||||
"unable_to_remove_assets_from_shared_link": "Ne eblis forigi elementojn el dividita ligilo",
|
||||
"unable_to_remove_library": "Ne eblis forigi bibliotekon",
|
||||
"unable_to_remove_partner": "Ne eblis forigi partneron",
|
||||
"unable_to_remove_reaction": "Ne eblis forigi reagon",
|
||||
"unable_to_reset_password": "Ne eblis restarigi pasvorton",
|
||||
"unable_to_reset_pin_code": "Ne eblis restarigi PIN-kodon",
|
||||
"unable_to_resolve_duplicate": "Ne eblis solvi tiun ĉi duoblaĵon",
|
||||
"unable_to_restore_assets": "Ne eblis restaŭri elementojn",
|
||||
"unable_to_restore_trash": "Ne eblis restaŭri rubaĵojn",
|
||||
"unable_to_restore_user": "Ne eblis restaŭri uzanton",
|
||||
"unable_to_save_album": "Ne eblis konservi albumon",
|
||||
"unable_to_save_api_key": "Ne eblis konservi API-ŝlosilon",
|
||||
"unable_to_save_date_of_birth": "Ne eblis konservi naskiĝdaton",
|
||||
"unable_to_save_name": "Ne eblis konservi nomon",
|
||||
"unable_to_save_profile": "Ne eblis konservi profilon",
|
||||
"unable_to_save_settings": "Ne eblis konservi agordojn",
|
||||
"unable_to_scan_libraries": "Ne eblas analizi biblitekojn",
|
||||
"unable_to_scan_library": "Ne eblas analizi biblitekon",
|
||||
"unable_to_update_workflow": "Ne eblis ĝisdatigi laborfluon"
|
||||
"unable_to_set_feature_photo": "Ne eblis agordi ĉap-foton",
|
||||
"unable_to_set_profile_picture": "Ne eblis agordi profilbildon",
|
||||
"unable_to_set_rating": "Ne eblis konservi pritakson",
|
||||
"unable_to_submit_job": "Ne eblis plenumi taskon",
|
||||
"unable_to_trash_asset": "Ne eblis forigi elementon",
|
||||
"unable_to_unlink_account": "Ne eblis malligi konton",
|
||||
"unable_to_unlink_motion_video": "Ne eblis malligi movbildon",
|
||||
"unable_to_update_album_cover": "Ne eblis ŝanĝi kovrilon de albumo",
|
||||
"unable_to_update_album_info": "Ne eblis ŝanĝi informojn pri albumo",
|
||||
"unable_to_update_library": "Ne eblis ĝisdatigi bibliotekon",
|
||||
"unable_to_update_location": "Ne eblis ŝanĝi lokon",
|
||||
"unable_to_update_settings": "Ne eblis ĝisdatigi agordojn",
|
||||
"unable_to_update_timeline_display_status": "Ne eblis ŝanĝi tiun agordon por la partnero",
|
||||
"unable_to_update_user": "Ne eblis ĝisdatigi uzanton",
|
||||
"unable_to_update_workflow": "Ne eblis ĝisdatigi laborfluon",
|
||||
"unable_to_upload_file": "Ne eblis alŝuti dosieron"
|
||||
},
|
||||
"errors_text": "Eraroj",
|
||||
"exclusion_pattern": "Skemo de ekskludo",
|
||||
"exif": "Exif",
|
||||
"exif_bottom_sheet_description": "Aldoni priskribon...",
|
||||
"exif_bottom_sheet_description_error": "Eraro dum ĝisdatigo de priskribo",
|
||||
"exif_bottom_sheet_details": "DETALOJ",
|
||||
"exif_bottom_sheet_location": "LOKO",
|
||||
"exif_bottom_sheet_no_description": "Neniu priskribo",
|
||||
"exif_bottom_sheet_people": "HOMOJ",
|
||||
"exif_bottom_sheet_person_add_person": "Aldoni nomon",
|
||||
"exit_slideshow": "Fini bildserion",
|
||||
"expand": "Etendi",
|
||||
"expand_all": "Etendi ĉiujn",
|
||||
"experimental_settings_new_asset_list_subtitle": "Prilaborataĵoj",
|
||||
"experimental_settings_new_asset_list_title": "Ŝalti eksperimentan foto-kradon",
|
||||
"experimental_settings_subtitle": "Uzu je propra risko!",
|
||||
"experimental_settings_title": "Eksperimenta",
|
||||
"expire_after": "Eksvalidigi post",
|
||||
"expired": "Eksvalida",
|
||||
"expires_date": "Eksvalidiĝos je {date}",
|
||||
"explore": "Esplori",
|
||||
"explorer": "Foliumilo",
|
||||
"export": "Eksporti",
|
||||
"export_as_json": "Eksporti kiel JSON",
|
||||
"export_database": "Eksporti datumbazon",
|
||||
"export_database_description": "Eksporti la SQLite-datumbazon",
|
||||
"extension": "Sufikso",
|
||||
"external": "Ekstera",
|
||||
"external_libraries": "Eksteraj bibliotekoj",
|
||||
"external_network": "Ekstera reto",
|
||||
"external_network_sheet_info": "Kiam la preferata vifio estas netrovebla, la apo provos konektiĝi al la servilo per la ĉi-suba listo de URL-oj, ekde la unua",
|
||||
"face_unassigned": "Ne konektitaj",
|
||||
"failed": "Malsukcesis",
|
||||
"failed_count": "Malsukcesis: {count}",
|
||||
"failed_to_authenticate": "Malsukcesis ensaluti",
|
||||
"failed_to_load_assets": "Malsukcesis ŝargi elementojn",
|
||||
"failed_to_load_folder": "Malsukcesis ŝargi dosierujon",
|
||||
"favorite": "Preferataĵo",
|
||||
"favorite_action_prompt": "{count} aldonita(j) al Preferataĵoj",
|
||||
"favorite_or_unfavorite_photo": "Aldoni/forigi foton al/de preferataĵoj",
|
||||
"favorites": "Preferataĵoj",
|
||||
"favorites_page_no_favorites": "Neniuj preferataj elementoj trovitaj",
|
||||
"feature_photo_updated": "Ĉap-foto sukcese ŝanĝita",
|
||||
"features": "Funkcioj",
|
||||
"features_in_development": "Funkcioj ankoraŭ prilaborataj",
|
||||
"features_setting_description": "Administri funkciojn de la apo",
|
||||
"file_name_or_extension": "Dosiernomo aŭ sufikso",
|
||||
"file_name_text": "Dosiernomo",
|
||||
"file_name_with_value": "Dosiernomo: {file_name}",
|
||||
"file_size": "Grandeco de dosiero",
|
||||
"filename": "Dosiernomo",
|
||||
"filetype": "Tipo de dosiero",
|
||||
"filter": "Filtri",
|
||||
"filter_description": "Kondiĉoj por trovi la celitajn elementojn",
|
||||
"filter_people": "Filtri laŭ homoj",
|
||||
"filter_places": "Filtri laŭ lokoj",
|
||||
"filter_tags": "Filtri laŭ etikedoj",
|
||||
"filters": "Filtriloj",
|
||||
"find_them_fast": "Rapide retrovi la homon per ties nomo",
|
||||
"first": "Unua",
|
||||
"fix_incorrect_match": "Korekti malĝustan kongruiĝon",
|
||||
"folder": "Dosierujo",
|
||||
"folder_not_found": "Dosierujo netrovita",
|
||||
"folders": "Dosierujoj",
|
||||
"folders_feature_description": "Foliumado en dosierujoj por la fotoj kaj videoj en la sistemo",
|
||||
"forgot_pin_code_question": "Ĉu vi forgesis vian PIN-kodon?",
|
||||
"forward": "Antaŭen",
|
||||
"free_up_space": "Liberigi spacon",
|
||||
"free_up_space_description": "Vi forigos fotojn kaj/aŭ videojn, kiuj havas savkopiojn en la servilo, por liberigi spacon en via aparato. La kopioj en la servilo restos.",
|
||||
"free_up_space_settings_subtitle": "Liberigi spacon en aparato",
|
||||
"full_path": "Plena dosiervojo: {path}",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Tiu ĉi funkcio ŝargas eksterajn rimedojn de Google por sia funkciado.",
|
||||
"general": "Ĝeneralaj",
|
||||
"geolocation_instruction_location": "Elektu elementon kun GPS-koordinatoj por uzi ĝian lokon, aŭ elektu lokon rekte sur la mapo",
|
||||
"get_help": "Trovi helpon",
|
||||
"get_people_error": "Eraro dum serĉo de homoj",
|
||||
"home_page_favorite_err_local": "Ankoraŭ ne eblas aldoni lokajn elementojn al Preferataĵoj; ignorita(j)",
|
||||
"home_page_favorite_err_partner": "Ankoraŭ ne eblas aldoni elementojn de partnero al Preferataĵoj; ignorita(j)",
|
||||
"include_shared_albums": "Inkluzivi dividitajn albumojn",
|
||||
"include_shared_partner_assets": "Inkluzivi elementojn dividitajn de partnero",
|
||||
"keep_favorites": "Konservi preferataĵojn",
|
||||
"maintenance_action_restore": "Restaŭrado de datumbazo",
|
||||
"maintenance_restore_from_backup": "Restaŭri el savkopio",
|
||||
"maintenance_restore_library": "Restaŭri vian bibliotekon",
|
||||
"maintenance_restore_library_confirm": "Se tio ŝajne bona, daŭrigu kaj restaŭru savkopion!",
|
||||
"maintenance_restore_library_description": "Restaŭrado de datumbazo",
|
||||
"maintenance_restore_library_folder_has_files": "{folder} enhavas {count} dosiero(j)n",
|
||||
"maintenance_restore_library_folder_no_files": "{folder} ne enhavas ajnan dosieron!",
|
||||
"maintenance_restore_library_folder_pass": "legebla(j) kaj skribebla(j)",
|
||||
"maintenance_restore_library_folder_read_fail": "nelegebla(j)",
|
||||
"maintenance_restore_library_folder_write_fail": "ne skribebla(j)",
|
||||
"maintenance_restore_library_hint_missing_files": "Povus esti, ke mankas gravaj dosieroj",
|
||||
"maintenance_restore_library_hint_regenerate_later": "Eblas poste regeneri ilin en Agordoj",
|
||||
"maintenance_restore_library_hint_storage_template_missing_files": "Ĉu vi uzas ŝablonojn de stokado? Povus esti, ke mankas dosieroj",
|
||||
"maintenance_restore_library_loading": "Ŝargiĝas heŭristikoj kaj kontroloj de integreco…",
|
||||
"maintenance_task_restore": "Restaŭrado de elektita savkopio…",
|
||||
"maintenance_task_rollback": "Malsukcesis la restaŭrado; malfariĝas la ŝanĝoj…",
|
||||
"manage_media_access_settings": "Malfermi agordaĵaron",
|
||||
"manage_shared_links": "Administri dividitajn ligilojn",
|
||||
"manage_the_app_settings": "Agordi la apon",
|
||||
"map_settings_only_show_favorites": "Montri nur preferataĵojn",
|
||||
"missing": "Netraktitaj",
|
||||
"mobile_app": "Apo por poŝtelefono",
|
||||
"mobile_app_download_onboarding_note": "Elŝutu la poŝtelefonan apon de Immich per tiuj ebloj",
|
||||
"networking_subtitle": "Administri agordojn pri finpunktoj de la servilo",
|
||||
"no_devices": "Neniuj aprobitaj aparatoj",
|
||||
"no_explore_results_message": "Alŝutu pli da fotoj por esplori vian kolekton.",
|
||||
"no_favorites_message": "Aldoni al Preferataĵoj por rapide retrovi viajn plej bonajn bildojn kaj videojn",
|
||||
"no_notifications": "Neniuj sciigoj",
|
||||
"no_results_description": "Provu sinonimon aŭ pli ĝeneralan ŝlosilvorton",
|
||||
"no_shared_albums_message": "Krei albumon por dividi fotojn kaj videojn kun konatoj",
|
||||
"notification_permission_dialog_content": "Por ŝalti sciigojn, iru al Agordoj kaj elektu 'permesi'.",
|
||||
"notification_permission_list_tile_content": "Donu permeson por ŝalti sciigojn.",
|
||||
"notification_permission_list_tile_enable_button": "Ŝalti sciigojn",
|
||||
@@ -1130,12 +1285,28 @@
|
||||
"notification_toggle_setting_description": "Ŝalti sciigojn per retmesaĝo",
|
||||
"notifications": "Sciigoj",
|
||||
"notifications_setting_description": "Administri sciigojn",
|
||||
"onboarding_privacy_description": "La ĉi-subaj (nedevigaj) funkcioj dependas de eksteraj servoj. Vi povas (mal)ŝalti ilin iam ajn.",
|
||||
"only_favorites": "Nur preferataĵoj",
|
||||
"owned": "Propraj",
|
||||
"partner_page_empty_message": "Viaj fotoj ankoraŭ ne estas dividitaj kun ajna partnero.",
|
||||
"partner_page_shared_to_title": "Dividita(j) kun",
|
||||
"photo_shared_all_users": "Ŝajne vi dividis viajn fotojn kun ĉiuj uzantoj, aŭ povus esti ke ne ekzistas aliaj uzantoj.",
|
||||
"preferences_settings_subtitle": "Administri agordojn pri la apo",
|
||||
"purchase_settings_server_activated": "La administranto respondecas pri la ŝlosilo de aŭtentikeco por la servilo",
|
||||
"rating_clear": "Forviŝi pritakson",
|
||||
"refresh": "Denove",
|
||||
"refresh_encoded_videos": "Renovigi koditajn videojn",
|
||||
"refresh_faces": "Renovigi vizaĝojn",
|
||||
"refresh_metadata": "Renovigi metadatumojn",
|
||||
"refresh_thumbnails": "Renovigi bildetojn",
|
||||
"refreshed": "Renovigita(j)",
|
||||
"refreshes_every_file": "Re-legas ĉiujn ekzistantajn kaj novajn dosierojn",
|
||||
"refreshing_encoded_video": "Renovigado de koditaj videoj",
|
||||
"refreshing_faces": "Renovigado de vizaĝoj",
|
||||
"refreshing_metadata": "Renovigado de metadatumoj",
|
||||
"remove_assets_shared_link_confirmation": "Ĉu vi certas, ke vi volas forigi {count, plural, one {# elementon} other {# elementojn}} de tiu dividita ligilo?",
|
||||
"remove_from_favorites": "Forigi el preferataĵoj",
|
||||
"remove_from_shared_link": "Forigi el dividita ligilo",
|
||||
"removed_from_favorites": "Forigita(j) el preferataĵoj",
|
||||
"removed_from_favorites_count": "{count, plural, other {Forigis #}} el Preferataĵoj",
|
||||
"rescan": "Reanalizi",
|
||||
@@ -1144,6 +1315,11 @@
|
||||
"reset_sqlite_confirmation": "Ĉu vi certas, ke vi volas forviŝi la datumojn de la apo? Tio forigos ĉiujn agordojn kaj elsalutigos vin.",
|
||||
"reset_sqlite_confirmation_note": "Noto: vi devos relanĉi la apon por la forviŝo.",
|
||||
"reset_sqlite_done": "Datumoj de la apo estas forviŝitaj. Bonvolu relanĉi Immich kaj ensalutu denove.",
|
||||
"restore": "Restaŭri",
|
||||
"restore_all": "Restaŭri ĉiujn",
|
||||
"restore_trash_action_prompt": "{count} restaŭrita(j) el rubujo",
|
||||
"restore_user": "Restaŭri uzanton",
|
||||
"restored_asset": "Restaŭri elementon",
|
||||
"scaffold_body_error_unrecoverable": "Neriparebla eraro okazis. Bonvolu sendi al ni la eraron kaj la stakspuron per Discord aŭ per Github por ke ni povu helpi. Vi povas forviŝi la ĉi-subajn datumojn de la apo se vi volas.",
|
||||
"scan": "Analizi",
|
||||
"scan_all_libraries": "Analizi ĉiujn bibliotekojn",
|
||||
@@ -1152,18 +1328,79 @@
|
||||
"scanning": "Analizado",
|
||||
"scanning_for_album": "Serĉado de albumo...",
|
||||
"search_suggestion_list_smart_search_hint_1": "Inteligenta serĉado defaŭlte estas ŝaltita. Por serĉi metadatumojn, uzu sintakson tiel ",
|
||||
"server_privacy": "Privateco de servilo",
|
||||
"server_restarting_description": "La paĝo baldaŭ reŝargiĝos.",
|
||||
"setting_notifications_subtitle": "Redakti viajn preferojn pri sciigoj",
|
||||
"share_action_prompt": "Dividis {count} elementojn",
|
||||
"shared": "Dividitaj",
|
||||
"shared_album_activities_input_disable": "Komentado estas malŝaltita",
|
||||
"shared_album_activity_remove_content": "Ĉu vi volas forigi tiun ĉi agon?",
|
||||
"shared_album_activity_remove_title": "Forigi agon",
|
||||
"shared_album_section_people_action_error": "Okazis eraro dum forigo el la albumo",
|
||||
"shared_album_section_people_action_leave": "Forigi uzanton de albumo",
|
||||
"shared_album_section_people_action_remove_user": "Forigi uzanton de albumo",
|
||||
"shared_album_section_people_title": "HOMOJ",
|
||||
"shared_by": "Dividita de",
|
||||
"shared_by_user": "Dividita de {user}",
|
||||
"shared_by_you": "Dividita de vi",
|
||||
"shared_from_partner": "Fotoj de {partner}",
|
||||
"shared_intent_upload_button_progress_text": "{current} el {total} alŝutitaj",
|
||||
"shared_link_app_bar_title": "Dividitaj ligiloj",
|
||||
"shared_link_clipboard_copied_massage": "Kopiita al tondujo",
|
||||
"shared_link_clipboard_text": "Ligilo: {link}\nPasvorto: {password}",
|
||||
"shared_link_create_error": "Okazis eraro dum kreo de dividita ligilo",
|
||||
"shared_link_custom_url_description": "Atingi la dividita ligilo per propra URL-o",
|
||||
"shared_link_edit_description_hint": "Tajpu priskribon de la dividaĵaro",
|
||||
"shared_link_edit_expire_after_option_day": "1 tago",
|
||||
"shared_link_edit_expire_after_option_days": "{count} tagoj",
|
||||
"shared_link_edit_expire_after_option_hour": "1 horo",
|
||||
"shared_link_edit_expire_after_option_hours": "{count} horoj",
|
||||
"shared_link_edit_expire_after_option_minute": "1 minuto",
|
||||
"shared_link_edit_expire_after_option_minutes": "{count} minutoj",
|
||||
"shared_link_edit_expire_after_option_months": "{count} monatoj",
|
||||
"shared_link_edit_expire_after_option_year": "{count} jaro",
|
||||
"shared_link_edit_password_hint": "Tajpu pasvorton por la dividaĵaro",
|
||||
"shared_link_edit_submit_button": "Ĝisdatigi ligilon",
|
||||
"shared_link_error_server_url_fetch": "Ne eblis trovi la URL-on de la servilo",
|
||||
"shared_link_expires_day": "Eksvalidiĝos post {count} tago",
|
||||
"shared_link_expires_days": "Eksvalidiĝos post {count} tagoj",
|
||||
"shared_link_expires_hour": "Eksvalidiĝos post {count} horo",
|
||||
"shared_link_expires_hours": "Eksvalidiĝos post {count} horoj",
|
||||
"shared_link_expires_minute": "Eksvalidiĝos post {count} minuto",
|
||||
"shared_link_expires_minutes": "Eksvalidiĝos post {count} minutoj",
|
||||
"shared_link_expires_never": "Neniam eksvalidiĝos",
|
||||
"shared_link_expires_second": "Eksvalidiĝos post {count} sekundo",
|
||||
"shared_link_expires_seconds": "Eksvalidiĝos post {count} sekundoj",
|
||||
"shared_link_info_chip_metadata": "EXIF",
|
||||
"shared_link_manage_links": "Administri dividitajn ligilojn",
|
||||
"shared_link_options": "Agordoj pri dividitaj ligiloj",
|
||||
"shared_link_password_description": "Devigi uzon de pasvorto por uzi la ligilon",
|
||||
"shared_links": "Dividitaj ligiloj",
|
||||
"shared_links_description": "Dividi fotojn kaj videojn per ligilo",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# dividitaj fotoj kaj videoj.}}",
|
||||
"shared_with_me": "Dividitaj kun mi",
|
||||
"shared_with_partner": "Dividitaj kun {partner}",
|
||||
"sharing_page_album": "Dividitaj albumoj",
|
||||
"sharing_page_description": "Krei dividitajn albumojn por dividi fotojn kaj videojn kun konatoj.",
|
||||
"sharing_silver_appbar_create_shared_album": "Nova dividita albumo",
|
||||
"show_shared_links": "Montri dividitajn ligilojn",
|
||||
"start_date": "Komenca dato",
|
||||
"start_date_before_end_date": "Komenca dato devas esti antaŭ fina dato",
|
||||
"to_favorite": "Aldoni al preferataĵoj",
|
||||
"trash_page_restore_all": "Restaŭri ĉiujn",
|
||||
"trigger_description": "Evento, kiu ekfunkciigas la laborfluon",
|
||||
"unfavorite": "Forigi el preferataĵoj",
|
||||
"unfavorite_action_prompt": "{count} forigita(j) el Preferataĵoj",
|
||||
"untitled_workflow": "Sentitola laborfluo",
|
||||
"upload_concurrency": "Nombro da samtempaj alŝutoj",
|
||||
"upload_errors": "Alŝuto finita kun {count, plural, one {# eraro} other {# eraroj}}. Reŝargu la paĝon por vidi novajn elementojn.",
|
||||
"upload_success": "Alŝuto sukcese finita. Reŝargu la paĝon por vidi novajn elementojn.",
|
||||
"user_pin_code_settings_description": "Administri vian PIN-kodon",
|
||||
"user_privacy": "Privateco de uzanto",
|
||||
"user_purchase_settings_description": "Administri vian aĉeton",
|
||||
"view_links": "Vidi ligilojn",
|
||||
"waiting": "En atendovico",
|
||||
"waiting_count": "En atendovico: {count}",
|
||||
"week": "Semajno",
|
||||
"wifi_name": "Nomo de Vifireto",
|
||||
"workflow_delete_prompt": "Ĉu vi certas, ke vi volas forigi tiun ĉi laborfluon?",
|
||||
@@ -1181,5 +1418,6 @@
|
||||
"workflows_help_text": "Laborfluo aŭtomatigas agojn pri elementoj, laŭ ekigiloj kaj filtriloj",
|
||||
"year": "Jaro",
|
||||
"yes": "Jes",
|
||||
"you_dont_have_any_shared_links": "Vi ne havas ajnan dividitan ligilon",
|
||||
"zero_to_clear_rating": "tuŝu 0 por forviŝi la pritakson de la elemento"
|
||||
}
|
||||
|
||||
+57
-6
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Habilitar notificaciones por correo electrónico",
|
||||
"notification_settings": "Configuración de las notificaciones",
|
||||
"notification_settings_description": "Administrar la configuración de notificaciones, incluido el correo electrónico",
|
||||
"oauth_allow_insecure_requests": "Permitir solicitudes inseguras",
|
||||
"oauth_allow_insecure_requests_description": "ADVERTENCIA: Esto deshabilita la validación de certificado TLS para peticiones OAuth y le puede exponer a ataques MITM.",
|
||||
"oauth_auto_launch": "Lanzamiento automático",
|
||||
"oauth_auto_launch_description": "Inicie el flujo de inicio de sesión de OAuth automáticamente al acceder a la página de inicio de sesión",
|
||||
"oauth_auto_register": "Registro automático",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Texto del botón",
|
||||
"oauth_client_secret_description": "Requerido para clientes confidenciales, o si PKCE (Prueba de clave para el intercambio de códigos) no es compatible con clientes públicos.",
|
||||
"oauth_enable_description": "Iniciar sesión con OAuth",
|
||||
"oauth_end_session_url_description": "Redirigir al usuario a esta URI cuando cierra sesión.",
|
||||
"oauth_mobile_redirect_uri": "URI de redireccionamiento móvil",
|
||||
"oauth_mobile_redirect_uri_override": "Sobreescribir URI de redirección móvil",
|
||||
"oauth_mobile_redirect_uri_override_description": "Habilitar cuando el proveedor de OAuth no permite una URI móvil, como ''{callback}''",
|
||||
"oauth_prompt_description": "Parámetro de solicitud (p. eje. select_account, login, consent)",
|
||||
"oauth_role_claim": "Concesión de rol",
|
||||
"oauth_role_claim_description": "Otorgar acceso de administrador automáticamente según la presencia de esta concesión. La concesión puede tener \"usuario\" o \"admin\".",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -767,7 +771,7 @@
|
||||
"cleanup_found_assets_with_size": "Se encontraron {count} recursos respaldados ({size})",
|
||||
"cleanup_icloud_shared_albums_excluded": "Los álbumes compartidos de iCloud están excluidos del escaneo",
|
||||
"cleanup_no_assets_found": "No se encontraron recursos que coincidan con los criterios anteriores. Liberar espacio solo puede eliminar recursos respaldados en el servidor",
|
||||
"cleanup_preview_title": "{count} recursos a remover",
|
||||
"cleanup_preview_title": "{count} recursos a eliminar",
|
||||
"cleanup_step3_description": "Busque recursos respaldados que coincidan con su fecha y conserve la configuración.",
|
||||
"cleanup_step4_summary": "{count} recursos (creados antes del {date}) para eliminar de tu dispositivo local. Las fotos seguirán accesibles desde la app de Immich.",
|
||||
"cleanup_trash_hint": "Para completar la liberación de espacio, abra la aplicación de fotos y vacíe la papelera",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Conserva fotos del último…",
|
||||
"cutoff_day": "{count, plural, one {día} other {días}}",
|
||||
"cutoff_year": "{count, plural, one {año} other {años}}",
|
||||
"daily_title_text_date": "E dd, MMM",
|
||||
"daily_title_text_date_year": "E dd de MMM, yyyy",
|
||||
"dark": "Oscuro",
|
||||
"dark_theme": "Cambiar a tema oscuro",
|
||||
"date": "Fecha",
|
||||
"date_after": "Fecha posterior",
|
||||
"date_and_time": "Fecha y hora",
|
||||
"date_before": "Fecha anterior",
|
||||
"date_format": "E d, LLL y • h:mm a",
|
||||
"date_of_birth": "Fecha de nacimiento",
|
||||
"date_of_birth_saved": "Guardada con éxito la fecha de nacimiento",
|
||||
"date_range": "Rango de fechas",
|
||||
"day": "Día",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Elimina tus fotos y videos de tu dispositivo para liberar espacio. Los respaldos en el servidor se mantendrán seguros.",
|
||||
"free_up_space_settings_subtitle": "Liberar espacio del dispositivo",
|
||||
"full_path": "Ruta completa: {path}",
|
||||
"full_path_or_folder": "Ruta completa o carpeta",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Esta funcionalidad carga recursos externos desde Google para poder funcionar.",
|
||||
"general": "General",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Cambiar a tema claro",
|
||||
"like": "Me gusta",
|
||||
"like_deleted": "Me gusta eliminado",
|
||||
"link": "Enlace",
|
||||
"link_motion_video": "Enlazar vídeo en movimiento",
|
||||
"link_to_docs": "Para más información, consulta la <link>documentación</link>.",
|
||||
"link_to_oauth": "Enlace a OAuth",
|
||||
"linked_oauth_account": "Cuenta OAuth vinculada",
|
||||
"list": "Lista",
|
||||
"live": "En vivo",
|
||||
"loading": "Cargando",
|
||||
"loading_search_results_failed": "Error al cargar los resultados de la búsqueda",
|
||||
"local": "Local",
|
||||
@@ -1518,6 +1523,38 @@
|
||||
"marked_all_as_read": "Todos marcados como leídos",
|
||||
"matches": "Coincidencias",
|
||||
"matching_assets": "Recursos coincidentes",
|
||||
"media_chrome": {
|
||||
"auto": "Auto",
|
||||
"captions": "Subtítulos",
|
||||
"captions_off": "Apagado",
|
||||
"closed_captions": "subtítulos",
|
||||
"decode_error": "Error de decodificación",
|
||||
"disable_captions": "Desactivar subtítulos",
|
||||
"enable_captions": "Activar subtítulos",
|
||||
"enter_fullscreen_mode": "Entrar en modo pantalla completa",
|
||||
"exit_fullscreen_mode": "Salir del modo pantalla completa",
|
||||
"loop": "Bucle",
|
||||
"media_error_description": "Un error de medios causó la interrupción de la reproducción. El contenido podría estar dañado o tu navegador no admite este formato.",
|
||||
"media_loading": "cargando medios",
|
||||
"mute": "Silenciar",
|
||||
"network_error": "Error de red",
|
||||
"network_error_description": "Un error de red causó la falla en la descarga del contenido.",
|
||||
"not_supported_error": "Fuente no compatible",
|
||||
"playback_rate": "Velocidad de reproducción",
|
||||
"playback_rate_current": "velocidad de reproducción actual",
|
||||
"playback_rate_value": "Velocidad de reproducción {playbackRate}",
|
||||
"playback_time": "tiempo de reproducción",
|
||||
"quality": "Calidad",
|
||||
"second": "segundo",
|
||||
"seconds": "segundos",
|
||||
"time_value_of_total_time": "{currentTime} de {totalTime}",
|
||||
"time_value_remaining": "{time} restante",
|
||||
"unmute": "Reactivar sonido",
|
||||
"unsupported_error_description": "Ocurrió un error de incompatibilidad. El servidor o la red fallaron, o tu navegador no admite este formato.",
|
||||
"video_not_loaded_unknown_time": "video no cargado, tiempo desconocido.",
|
||||
"video_player": "reproductor de video",
|
||||
"volume": "volumen"
|
||||
},
|
||||
"media_type": "Tipo de medio",
|
||||
"memories": "Recuerdos",
|
||||
"memories_all_caught_up": "Puesto al día",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Descarga la aplicación móvil utilizando las siguientes opciones",
|
||||
"model": "Modelo",
|
||||
"month": "Mes",
|
||||
"monthly_title_text_date_format": "MMMM a",
|
||||
"more": "Mas",
|
||||
"motion": "En movimiento",
|
||||
"move": "Mover",
|
||||
"move_down": "Bajar",
|
||||
"move_off_locked_folder": "Sacar de la carpeta protegida",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "No se puede editar la ubicación de recursos de solo lectura, omitiendo",
|
||||
"mute_memories": "Silenciar recuerdos",
|
||||
"my_albums": "Mis álbumes",
|
||||
"my_immich_description": "Copiar la página actual como enlace de Mi Immich",
|
||||
"my_immich_title": "Enlace de Mi Immich",
|
||||
"name": "Nombre",
|
||||
"name_or_nickname": "Nombre o apodo",
|
||||
"name_required": "El nombre es obligatorio",
|
||||
@@ -1760,7 +1799,7 @@
|
||||
"preferences_settings_title": "Preferencias",
|
||||
"preparing": "Preparando",
|
||||
"preset": "Preestablecido",
|
||||
"preview": "Posterior",
|
||||
"preview": "Previsualizar",
|
||||
"previous": "Anterior",
|
||||
"previous_memory": "Recuerdo anterior",
|
||||
"previous_or_next_day": "Día posterior/anterior",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "¿Eliminar recursos?",
|
||||
"remove_custom_date_range": "Eliminar intervalo de fechas personalizado",
|
||||
"remove_deleted_assets": "Eliminar recursos sin conexión",
|
||||
"remove_filter": "Eliminar filtro",
|
||||
"remove_from_album": "Eliminar del álbum",
|
||||
"remove_from_album_action_prompt": "{count} eliminado del álbum",
|
||||
"remove_from_favorites": "Quitar de favoritos",
|
||||
@@ -1926,6 +1966,8 @@
|
||||
"scan_settings": "Configuración de escaneo",
|
||||
"scanning": "Escaneando",
|
||||
"scanning_for_album": "Buscando álbum...",
|
||||
"screencast_mode_description": "Mostrar los indicadores de eventos del teclado y del ratón en la pantalla",
|
||||
"screencast_mode_title": "Alternar modo de grabación de pantalla",
|
||||
"search": "Buscar",
|
||||
"search_albums": "Buscar álbumes",
|
||||
"search_by_context": "Buscar por contexto",
|
||||
@@ -1933,6 +1975,8 @@
|
||||
"search_by_description_example": "Día de senderismo en Sapa",
|
||||
"search_by_filename": "Buscar por nombre de archivo o extensión",
|
||||
"search_by_filename_example": "es decir IMG_1234.JPG o PNG",
|
||||
"search_by_full_path": "Buscar por ruta completa o carpeta",
|
||||
"search_by_full_path_example": "John/Proyectos/Impresión_3D/2026-07-01 Puedes buscar Proyectos, 3D, Impresión, 2026, etc.",
|
||||
"search_by_ocr": "Buscar por OCR",
|
||||
"search_by_ocr_example": "Café con leche",
|
||||
"search_camera_lens_model": "Buscar modelo de lente...",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Mostrar esquema",
|
||||
"show_search_options": "Mostrar opciones de búsqueda",
|
||||
"show_shared_links": "Mostrar enlaces compartidos",
|
||||
"show_slideshow_metadata_overlay": "Mostrar información de la imagen por superposición",
|
||||
"show_slideshow_transition": "Mostrar la transición de las diapositivas",
|
||||
"show_supporter_badge": "Insignia de colaborador",
|
||||
"show_supporter_badge_description": "Mostrar una insignia de colaborador",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Ir a las carpetas",
|
||||
"skip_to_tags": "Ir a las etiquetas",
|
||||
"slideshow": "Pase de diapositivas",
|
||||
"slideshow_metadata_overlay_mode": "Contenido superpuesto",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Solo descripción",
|
||||
"slideshow_metadata_overlay_mode_full": "Lleno",
|
||||
"slideshow_repeat": "Repetir presentación de diapositivas",
|
||||
"slideshow_repeat_description": "Volver al inicio cuando finaliza la presentación de diapositivas",
|
||||
"slideshow_settings": "Ajustes de diapositivas",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Estado de la sincronización",
|
||||
"sync_status_subtitle": "Ver y gestionar el estado de la sincronización",
|
||||
"sync_upload_album_setting_subtitle": "Crea y sube tus fotos y videos a los álbumes seleccionados en Immich",
|
||||
"system_theme": "Tema del sistema",
|
||||
"system_theme_command_description": "Usar el tema del sistema ({value})",
|
||||
"tag": "Etiqueta",
|
||||
"tag_assets": "Etiquetar recursos",
|
||||
"tag_created": "Etiqueta creada: {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Flujos de trabajo",
|
||||
"workflows_help_text": "Los flujos de trabajo automatizan acciones en sus recursos según activadores y filtros",
|
||||
"wrong_pin_code": "Código PIN incorrecto",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Año",
|
||||
"years_ago": "Hace {years, plural, one {# año} other {# años}}",
|
||||
"yes": "Sí",
|
||||
|
||||
+38
-4
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Luba e-posti teel teavitused",
|
||||
"notification_settings": "Teavituse seaded",
|
||||
"notification_settings_description": "Halda teavituste seadeid, sh. e-posti teel",
|
||||
"oauth_allow_insecure_requests": "Luba ebaturvalised päringud",
|
||||
"oauth_allow_insecure_requests_description": "HOIATUS: See lülitab välja OAuth päringute TLS-sertifikaadi valideerimise ja võib jätta sind kaitseta vahendusrünnete ees.",
|
||||
"oauth_auto_launch": "Automaatne käivitamine",
|
||||
"oauth_auto_launch_description": "Alusta OAuth autentimist automaatselt sisselogimise lehele jõudmisel",
|
||||
"oauth_auto_register": "Automaatne registreerimine",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Nupu tekst",
|
||||
"oauth_client_secret_description": "Nõutud konfidentsiaalse kliendi jaoks, või avaliku kliendi jaoks, kui PKCE (Proof Key for Code Exchange) ei ole toetatud.",
|
||||
"oauth_enable_description": "Sisene OAuth abil",
|
||||
"oauth_end_session_url_description": "Suuna kasutaja välja logimisel sellele URI-le.",
|
||||
"oauth_mobile_redirect_uri": "Mobiilne ümbersuunamise URI",
|
||||
"oauth_mobile_redirect_uri_override": "Mobiilse ümbersuunamise URI ülekirjutamine",
|
||||
"oauth_mobile_redirect_uri_override_description": "Lülita sisse, kui OAuth pakkuja ei luba mobiilset URI-d, näiteks ''{callback}''",
|
||||
"oauth_prompt_description": "Prompt parameeter (nt. select_account, login, consent)",
|
||||
"oauth_role_claim": "Rolli väide",
|
||||
"oauth_role_claim_description": "Anna selle väite olemasolul automaatselt administraatori ligipääs. Väite väärtus võib olla 'user' või 'admin'.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Jäta alles fotod ja videod viimasest…",
|
||||
"cutoff_day": "{count, plural, one {päev} other {päeva}}",
|
||||
"cutoff_year": "{count, plural, one {aasta} other {aastat}}",
|
||||
"daily_title_text_date": "d. MMMM",
|
||||
"daily_title_text_date_year": "d. MMMM yyyy",
|
||||
"dark": "Tume",
|
||||
"dark_theme": "Vali tume teema",
|
||||
"date": "Kuupäev",
|
||||
"date_after": "Kuupäev pärast",
|
||||
"date_and_time": "Kuupäev ja kellaaeg",
|
||||
"date_before": "Kuupäev enne",
|
||||
"date_format": "d. MMMM y • HH:mm",
|
||||
"date_of_birth": "Sünnikuupäev",
|
||||
"date_of_birth_saved": "Sünnikuupäev salvestatud",
|
||||
"date_range": "Kuupäevavahemik",
|
||||
"day": "Päev",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Liiguta varundatud fotod ja videod prügikasti, et talletusruumi vabastada. Serveris olevad koopiad jäävad alles.",
|
||||
"free_up_space_settings_subtitle": "Vabasta seadme talletusruumi",
|
||||
"full_path": "Täielik tee: {path}",
|
||||
"full_path_or_folder": "Täielik tee või kaust",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "See funktsionaalsus laadib töötamiseks Google'st väliseid ressursse.",
|
||||
"general": "Üldine",
|
||||
@@ -1392,6 +1395,7 @@
|
||||
"light_theme": "Vali hele teema",
|
||||
"like": "Meeldib",
|
||||
"like_deleted": "Meeldimine kustutatud",
|
||||
"link": "Link",
|
||||
"link_motion_video": "Lingi liikuv video",
|
||||
"link_to_docs": "Rohkema info saamiseks vaata <link>dokumentatsiooni</link>.",
|
||||
"link_to_oauth": "Ühenda OAuth",
|
||||
@@ -1518,6 +1522,23 @@
|
||||
"marked_all_as_read": "Kõik märgiti loetuks",
|
||||
"matches": "Ühtivad failid",
|
||||
"matching_assets": "Ühtivad üksused",
|
||||
"media_chrome": {
|
||||
"captions": "Subtiitrid",
|
||||
"decode_error": "Dekodeerimise viga",
|
||||
"disable_captions": "Keela subtiitrid",
|
||||
"enable_captions": "Luba subtiitrid",
|
||||
"mute": "Vaigista",
|
||||
"network_error": "Võrgu tõrge",
|
||||
"not_supported_error": "Allikas pole toetatud",
|
||||
"playback_rate": "Taasesituse kiirus",
|
||||
"playback_rate_current": "praegune taasesituse kiirus",
|
||||
"playback_rate_value": "Taasesituse kiirus {playbackRate}",
|
||||
"quality": "Kvaliteet",
|
||||
"second": "sekund",
|
||||
"seconds": "sekundit",
|
||||
"time_value_of_total_time": "{currentTime} / {totalTime}",
|
||||
"volume": "helitugevus"
|
||||
},
|
||||
"media_type": "Üksuse tüüp",
|
||||
"memories": "Mälestused",
|
||||
"memories_all_caught_up": "Ongi kõik",
|
||||
@@ -1544,7 +1565,6 @@
|
||||
"mobile_app_download_onboarding_note": "Mobiilirakenduse allalaadimiseks kasuta järgnevaid valikuid",
|
||||
"model": "Mudel",
|
||||
"month": "Kuu",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Rohkem",
|
||||
"move": "Liiguta",
|
||||
"move_down": "Liiguta alla",
|
||||
@@ -1562,6 +1582,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Kirjutuskaitsega üksus(t)e asukohta ei saa muuta, jäetakse vahele",
|
||||
"mute_memories": "Vaigista mälestused",
|
||||
"my_albums": "Minu albumid",
|
||||
"my_immich_description": "Kopeeri praegune leht kui Minu Immich link",
|
||||
"my_immich_title": "Minu Immich link",
|
||||
"name": "Nimi",
|
||||
"name_or_nickname": "Nimi või hüüdnimi",
|
||||
"name_required": "Nimi on nõutud",
|
||||
@@ -1853,6 +1875,7 @@
|
||||
"remove_assets_title": "Eemalda üksused?",
|
||||
"remove_custom_date_range": "Eemalda kohandatud kuupäevavahemik",
|
||||
"remove_deleted_assets": "Eemalda kustutatud üksused",
|
||||
"remove_filter": "Eemalda filter",
|
||||
"remove_from_album": "Eemalda albumist",
|
||||
"remove_from_album_action_prompt": "{count} eemaldatud albumist",
|
||||
"remove_from_favorites": "Eemalda lemmikutest",
|
||||
@@ -1926,6 +1949,8 @@
|
||||
"scan_settings": "Skaneerimise seaded",
|
||||
"scanning": "Otsimine",
|
||||
"scanning_for_album": "Albumi skaneerimine...",
|
||||
"screencast_mode_description": "Kuva ekraanil klaviatuuri- ja hiiresündmuste indikaatoreid",
|
||||
"screencast_mode_title": "Lülita kuvalevi režiim",
|
||||
"search": "Otsi",
|
||||
"search_albums": "Otsi albumeid",
|
||||
"search_by_context": "Otsi konteksti alusel",
|
||||
@@ -1933,6 +1958,8 @@
|
||||
"search_by_description_example": "Matkapäev Sapas",
|
||||
"search_by_filename": "Otsi failinime või -laiendi järgi",
|
||||
"search_by_filename_example": "st. IMG_1234.JPG või PNG",
|
||||
"search_by_full_path": "Otsi täieliku tee või kausta alusel",
|
||||
"search_by_full_path_example": "/Juhan/Projektid/3D_printimine/2026-07-01 - saad otsida märksõnu Projektid, 3D, printimine, 2026 jne.",
|
||||
"search_by_ocr": "Otsi OCR-i abil",
|
||||
"search_by_ocr_example": "Latte",
|
||||
"search_camera_lens_model": "Otsi läätse mudelit...",
|
||||
@@ -2148,6 +2175,7 @@
|
||||
"show_schema": "Kuva skeem",
|
||||
"show_search_options": "Kuva otsingu valikud",
|
||||
"show_shared_links": "Näita jagatud linke",
|
||||
"show_slideshow_metadata_overlay": "Kuva pildi info ülekatet",
|
||||
"show_slideshow_transition": "Kuva slaidiesitluse üleminekud",
|
||||
"show_supporter_badge": "Toetaja märk",
|
||||
"show_supporter_badge_description": "Kuva toetaja märki",
|
||||
@@ -2163,6 +2191,9 @@
|
||||
"skip_to_folders": "Kaustade juurde",
|
||||
"skip_to_tags": "Siltide juurde",
|
||||
"slideshow": "Slaidiesitlus",
|
||||
"slideshow_metadata_overlay_mode": "Ülekatte sisu",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Ainult kirjeldus",
|
||||
"slideshow_metadata_overlay_mode_full": "Täielik",
|
||||
"slideshow_repeat": "Korda slaidiesitlust",
|
||||
"slideshow_repeat_description": "Mine slaidiesitluse lõppedes tagasi algusesse",
|
||||
"slideshow_settings": "Slaidiesitluse seaded",
|
||||
@@ -2214,6 +2245,8 @@
|
||||
"sync_status": "Sünkroonimise staatus",
|
||||
"sync_status_subtitle": "Vaata ja halda sünkroonimissüsteemi",
|
||||
"sync_upload_album_setting_subtitle": "Loo ja laadi oma pildid ja videod üles Immich'isse valitud albumitesse",
|
||||
"system_theme": "Süsteemi teema",
|
||||
"system_theme_command_description": "Kasuta süsteemi teemat ({value})",
|
||||
"tag": "Silt",
|
||||
"tag_assets": "Sildista üksuseid",
|
||||
"tag_created": "Lisatud silt: {tag}",
|
||||
@@ -2425,6 +2458,7 @@
|
||||
"workflows": "Töövood",
|
||||
"workflows_help_text": "Töövood automatiseerivad tegevusi üksustega päästikute ja filtrite alusel",
|
||||
"wrong_pin_code": "Vale PIN-kood",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Aasta",
|
||||
"years_ago": "{years, plural, one {# aasta} other {# aastat}} tagasi",
|
||||
"yes": "Jah",
|
||||
|
||||
@@ -125,7 +125,15 @@
|
||||
"metadata_settings": "Metadata Konfigurazioa",
|
||||
"metadata_settings_description": "Kudeatu metadaten konfigurazioa",
|
||||
"migration_job": "Migrazio",
|
||||
"oauth_prompt_description": "Prompt parametroa",
|
||||
"oauth_role_claim": "Rol aldarrikapena",
|
||||
"oauth_role_claim_description": "Eman automatikoki administratzaile sarbidea erreklamazio honen presentzian oinarrituta. Erreklamazioak 'erabiltzailea' edo 'administratzailea' izan dezake.",
|
||||
"oauth_settings": "OAuth",
|
||||
"oauth_settings_description": "OAuth saioaren hasierako konfigurazioa kudeatu.",
|
||||
"oauth_settings_more_details": "Ezaugarri horri buruzko xehetasun gehiago nahi izanez gero, ikusi <link>docs</link>.",
|
||||
"oauth_storage_label_claim": "Memoriaren etiketa eskaera",
|
||||
"oauth_storage_label_claim_description": "Erabiltzailearen memoria-etiketa automatikoki finkatzea, eskatutako balioan.",
|
||||
"oauth_storage_quota_claim": "Eskatutako memoriaren kuota",
|
||||
"transcoding_acceleration_vaapi": "VAAPI"
|
||||
},
|
||||
"advanced": "Aurreratua",
|
||||
|
||||
+23
-14
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Ota käyttöön sähköposti-ilmoitukset",
|
||||
"notification_settings": "Ilmoitusasetukset",
|
||||
"notification_settings_description": "Hallitse ilmoitusasetuksia, myös sähköpostin",
|
||||
"oauth_allow_insecure_requests": "Salli turvattomat pyynnöt",
|
||||
"oauth_allow_insecure_requests_description": "VAROITUS: Tämä poistaa TLS-varmenteen tarkistuksen OAuth-pyynnöiltä ja voi altistaa sinut väliintulohyökkäyksille (MITM).",
|
||||
"oauth_auto_launch": "Automaattinen käynnistys",
|
||||
"oauth_auto_launch_description": "Aloita OAuth-kirjautumisvuo heti kun saavutaan kirjautumissivulle",
|
||||
"oauth_auto_register": "Automaattinen rekisteröinti",
|
||||
@@ -274,20 +276,22 @@
|
||||
"oauth_button_text": "Painikkeen teksti",
|
||||
"oauth_client_secret_description": "Vaaditaan luottamukselliselle asiakasohjelmalle, tai jos julkinen asiakasohjelma ei tue PKCE:tä (Proof Key for Code Exchange).",
|
||||
"oauth_enable_description": "Kirjaudu käyttäen OAuthia",
|
||||
"oauth_end_session_url_description": "Uudelleenohjaa käyttäjä tähän URI-osoitteeseen uloskirjautumisen jälkeen.",
|
||||
"oauth_mobile_redirect_uri": "Mobiilin uudelleenohjaus-URI",
|
||||
"oauth_mobile_redirect_uri_override": "Ohita mobiilin uudelleenohjaus-URI",
|
||||
"oauth_mobile_redirect_uri_override_description": "Ota käyttöön kun OAuth-tarjoaja ei salli mobiili-URI:a, kuten ''{callback}''",
|
||||
"oauth_prompt_description": "Kehoteparametri (esim. select_account, login, consent)",
|
||||
"oauth_role_claim": "Roolin vaatimus",
|
||||
"oauth_role_claim_description": "Salli pääkäyttäjän pääsyoikeus automaattisesti tämän vaatimuksen perusteella. Vaatimus voi sisältää, joko 'käyttäjän' tai 'pääkäyttäjän'.",
|
||||
"oauth_settings": "OAuth",
|
||||
"oauth_settings_description": "Hallitse OAuth-kirjautumisen asetuksia",
|
||||
"oauth_settings_more_details": "Saadaksesi lisätietoja tästä toiminnosta, katso <link>dokumentaatio</link>.",
|
||||
"oauth_storage_label_claim": "Tallennustilan nimikkeen valtuutusväittämä (claim)",
|
||||
"oauth_storage_label_claim_description": "Määriä käyttäjän tallennustilan nimike tämän väittämän arvoksi automaattisesti.",
|
||||
"oauth_storage_quota_claim": "Tallennustilan kiintiön väittämä (claim)",
|
||||
"oauth_storage_label_claim_description": "Määritä käyttäjän tallennustilan nimike tämän vaatimuksen arvoksi automaattisesti.",
|
||||
"oauth_storage_quota_claim": "Tallennustilan kiintiön vaatimus",
|
||||
"oauth_storage_quota_claim_description": "Aseta automaattisesti käyttäjien tallennustilan määrä tähän arvoon.",
|
||||
"oauth_storage_quota_default": "Tallennustilan oletuskiintiö (Gt)",
|
||||
"oauth_storage_quota_default_description": "Käytettävä kiintiön määrä gigatavuissa, kun väittämää ei ole annettu.",
|
||||
"oauth_storage_quota_default_description": "Käytettävä kiintiön määrä gigatavuissa, kun vaatimusta ei ole annettu.",
|
||||
"oauth_timeout": "Pyynnön aikakatkaisu",
|
||||
"oauth_timeout_description": "Pyyntöjen aikakatkaisu millisekunteina",
|
||||
"ocr_job_description": "Käytä koneoppimista tunnistamaan tekstiä kuvista",
|
||||
@@ -463,8 +467,8 @@
|
||||
"advanced_settings_proxy_headers_title": "Mukautetut välityspalvelimen otsikot [KOKEELLINEN]",
|
||||
"advanced_settings_readonly_mode_subtitle": "Aktivoi vain luku -tilan, jolloin valokuvia voi ainoastaan selata. Toiminnot kuten useiden kuvien valitseminen, jakaminen, siirtäminen toistolaitteelle ja poistaminen ovat pois käytöstä. Laita vain luku -tila päälle tai pois päältä päävalikon käyttäjäkuvakkeesta",
|
||||
"advanced_settings_readonly_mode_title": "Vain luku -tila",
|
||||
"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 [KOKEELLINEN]",
|
||||
"advanced_settings_self_signed_ssl_subtitle": "Ohittaa SSL-varmenteen tarkistuksen palvelimen päätepisteessä. Vaaditaan itse allekirjoitetuille varmenteille.",
|
||||
"advanced_settings_self_signed_ssl_title": "Salli itse allekirjoitetut SSL-varmenteet [KOKEELLINEN]",
|
||||
"advanced_settings_sync_remote_deletions_subtitle": "Poista tai palauta kohde automaattisesti tällä laitteella, kun kyseinen toiminto suoritetaan verkossa",
|
||||
"advanced_settings_sync_remote_deletions_title": "Synkronoi etäpoistot [KOKEELLINEN]",
|
||||
"advanced_settings_tile_subtitle": "Edistyneen käyttäjän asetukset",
|
||||
@@ -784,9 +788,9 @@
|
||||
"client_cert_invalid_msg": "Virheellinen varmennetiedosto tai väärä salasana",
|
||||
"client_cert_password_message": "Syötä salasana tälle sertifikaatille",
|
||||
"client_cert_password_title": "Sertifikaatin salasana",
|
||||
"client_cert_remove_msg": "Asiakassertifikaatti on poistettu",
|
||||
"client_cert_remove_msg": "Asiakasvarmenne on poistettu",
|
||||
"client_cert_subtitle": "Vain PKCS12 (.p12, .pfx) -muotoa tuetaan. Varmenteen tuonti/poisto on käytettävissä vain ennen sisäänkirjautumista",
|
||||
"client_cert_title": "SSL-asiakassertifikaatti [KOKEELLINEN]",
|
||||
"client_cert_title": "SSL-asiakasvarmenne [KOKEELLINEN]",
|
||||
"clockwise": "Myötäpäivään",
|
||||
"close": "Sulje",
|
||||
"collapse": "Supista",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Säilytä kuvat viimeisimmältä…",
|
||||
"cutoff_day": "{count, plural, one {päivä} other {päivää}}",
|
||||
"cutoff_year": "{count, plural, one {vuosi} other {vuotta}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Tumma",
|
||||
"dark_theme": "Vaihda tummaan teemaan",
|
||||
"date": "Päivämäärä",
|
||||
"date_after": "Päivämäärän jälkeen",
|
||||
"date_and_time": "Päivämäärä ja aika",
|
||||
"date_before": "Päivä ennen",
|
||||
"date_format": "E d. LLL y • hh:mm",
|
||||
"date_of_birth": "Syntymäaika",
|
||||
"date_of_birth_saved": "Syntymäaika tallennettu",
|
||||
"date_range": "Päivämäärän rajaus",
|
||||
"day": "Päivä",
|
||||
@@ -944,7 +946,7 @@
|
||||
"display_order": "Näyttöjärjestys",
|
||||
"display_original_photos": "Näytä alkuperäiset kuvat",
|
||||
"display_original_photos_setting_description": "Näytä mieluiten alkuperäinen kuva esikatselukuvan sijasta, kun alkuperäinen kuva on web-yhteensopiva. Tämä voi aiheuttaa kuvien näyttämisen hitautta.",
|
||||
"do_not_show_again": "Älä näytä tätä enää",
|
||||
"do_not_show_again": "Älä näytä tätä uudelleen",
|
||||
"documentation": "Dokumentaatio",
|
||||
"done": "Valmis",
|
||||
"download": "Lataa",
|
||||
@@ -1392,6 +1394,7 @@
|
||||
"light_theme": "Vaihda vaaleaan teemaan",
|
||||
"like": "Tykkää",
|
||||
"like_deleted": "Tykkäys poistettu",
|
||||
"link": "Linkki",
|
||||
"link_motion_video": "Linkitä liikevideo",
|
||||
"link_to_docs": "Lisätietoja löytyy <link>dokumentaatiosta</link>.",
|
||||
"link_to_oauth": "Linkki OAuth",
|
||||
@@ -1437,7 +1440,7 @@
|
||||
"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_login": "Virhe kirjautumisessa. Tarkista palvelimen URL, sähköpostiosoite ja salasana",
|
||||
"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_handshake_exception": "Kättely palvelimen kanssa epäonnistui. Ota käyttöön itse allekirjoitettujen varmenteiden tuki asetuksista, jos käytät niitä.",
|
||||
"login_form_password_hint": "salasana",
|
||||
"login_form_save_login": "Pysy kirjautuneena",
|
||||
"login_form_server_empty": "Syötä palvelimen URL-osoite.",
|
||||
@@ -1521,7 +1524,7 @@
|
||||
"media_type": "Median tyyppi",
|
||||
"memories": "Muistoja",
|
||||
"memories_all_caught_up": "Kaikki ajan tasalla",
|
||||
"memories_check_back_tomorrow": "Palaa huomenna nähdäskesi lisää muistoja",
|
||||
"memories_check_back_tomorrow": "Palaa huomenna nähdäksesi lisää muistoja",
|
||||
"memories_setting_description": "Hallitse mitä näet muistoissasi",
|
||||
"memories_start_over": "Aloita alusta",
|
||||
"memories_swipe_to_close": "Pyyhkäise ylös sulkeaksesi",
|
||||
@@ -1544,7 +1547,6 @@
|
||||
"mobile_app_download_onboarding_note": "Lataa mobiilisovellus käyttämällä seuraavia vaihtoehtoja",
|
||||
"model": "Malli",
|
||||
"month": "Kuukauden mukaan",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Enemmän",
|
||||
"move": "Siirrä",
|
||||
"move_down": "Siirrä alas",
|
||||
@@ -1562,6 +1564,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Vain luku -tilassa olevien kohteiden sijantitietoja ei voitu muokata, ohitetaan",
|
||||
"mute_memories": "Mykistä muistot",
|
||||
"my_albums": "Omat albumit",
|
||||
"my_immich_description": "Kopioi nykyinen sivu Oma Immich-linkkinä",
|
||||
"my_immich_title": "Oma Immich-linkki",
|
||||
"name": "Nimi",
|
||||
"name_or_nickname": "Nimi tai lempinimi",
|
||||
"name_required": "Nimi on pakollinen",
|
||||
@@ -1926,6 +1930,8 @@
|
||||
"scan_settings": "Skannausasetukset",
|
||||
"scanning": "Skannataan",
|
||||
"scanning_for_album": "Etsitään albumia...",
|
||||
"screencast_mode_description": "Näytä näppäimistön ja hiiren syöttötapahtumat näytöllä",
|
||||
"screencast_mode_title": "Vaihda screencast-tila",
|
||||
"search": "Haku",
|
||||
"search_albums": "Etsi albumeita",
|
||||
"search_by_context": "Etsi kontekstin perusteella",
|
||||
@@ -2214,6 +2220,8 @@
|
||||
"sync_status": "Synkronoinnin status",
|
||||
"sync_status_subtitle": "Näytä ja hallinnoi synkronointijärjestelmää",
|
||||
"sync_upload_album_setting_subtitle": "Luo ja lataa valokuvasi ja videosi valittuihin albumeihin Immichissä",
|
||||
"system_theme": "Järjestelmän teema",
|
||||
"system_theme_command_description": "Käytä järjestelmän teemaa ({value})",
|
||||
"tag": "Tunniste",
|
||||
"tag_assets": "Lisää tunnisteita",
|
||||
"tag_created": "Luotu tunniste: {tag}",
|
||||
@@ -2425,6 +2433,7 @@
|
||||
"workflows": "Työnkulut",
|
||||
"workflows_help_text": "Työnkulut automatisoivat toimintoja kohteillesi laukaisimien ja suodattimien perusteella",
|
||||
"wrong_pin_code": "Väärä PIN-koodi",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Vuosi",
|
||||
"years_ago": "{years, plural, one {# vuosi} other {# vuotta}} sitten",
|
||||
"yes": "Kyllä",
|
||||
|
||||
+22
-1
@@ -7,6 +7,7 @@
|
||||
"action_common_update": "I-update",
|
||||
"actions": "Mga Aksyon",
|
||||
"active": "Tumatakbo",
|
||||
"active_count": "Aktibo: {count}",
|
||||
"activity": "Mga Aktibidad",
|
||||
"activity_changed": "Ang aktibidad ay {enabled, select, true {naka-enable} other {hindi naka-enable}}",
|
||||
"add": "Mag dagdag",
|
||||
@@ -14,6 +15,7 @@
|
||||
"add_a_location": "Dagdagan ng lugar",
|
||||
"add_a_name": "Dagdagan ng pangalan",
|
||||
"add_a_title": "Dagdagan ng pamagat",
|
||||
"add_assets": "Dagdagan ng asset",
|
||||
"add_birthday": "Maglagay ng kaarawan",
|
||||
"add_endpoint": "Dagdagan ng dulo",
|
||||
"add_location": "Magdagdag ng lugar",
|
||||
@@ -28,6 +30,7 @@
|
||||
"add_to_album_bottom_sheet_already_exists": "Nasa {album} na",
|
||||
"add_to_albums": "Idagdag sa mga album",
|
||||
"add_to_albums_count": "Idagdag sa mga album ({count})",
|
||||
"add_to_bottom_bar": "Idagdag sa",
|
||||
"add_to_shared_album": "Idagdag sa shared album",
|
||||
"add_url": "Magdagdag ng URL",
|
||||
"added_to_archive": "Naidagdag sa archive",
|
||||
@@ -44,6 +47,10 @@
|
||||
"backup_database": "Gumawa ng Dump ng Database",
|
||||
"backup_database_enable_description": "Paganahin ang Database Dumps",
|
||||
"backup_keep_last_amount": "Bilang ng mga itatagong nakaraang dump",
|
||||
"backup_onboarding_1_description": "offsite na kopya sa cloud o sa ibang pisikal na lokasyon.",
|
||||
"backup_onboarding_footer": "Para sa karagdagang impormasyon tungkol sa pag-backup ng Immich, maaaring tignan sa <link>dokumentasyon</link>.",
|
||||
"backup_onboarding_parts_title": "Ang 3-2-1 backup ay kasama:",
|
||||
"backup_onboarding_title": "Backups",
|
||||
"backup_settings": "Setting ng mga Database Dump",
|
||||
"backup_settings_description": "Pamahalaan ang mga setting ng database dump.",
|
||||
"cleared_jobs": "Tinanggal na ang mga trabaho para sa {job}",
|
||||
@@ -76,18 +83,32 @@
|
||||
"asset_adding_to_album": "Dinadagdag sa album...",
|
||||
"asset_filename_is_offline": "Offline ang asset {filename}",
|
||||
"asset_uploading": "Ina-upload...",
|
||||
"backup_controller_page_background_app_refresh_enable_button_text": "Pumunta sa settings",
|
||||
"change_your_password": "Palitan ang iyong password",
|
||||
"country": "Bansa",
|
||||
"create_album_page_untitled": "Walang pamagat",
|
||||
"documentation": "Dokumentasyion",
|
||||
"done": "Tapos na",
|
||||
"download": "I-download",
|
||||
"edit": "I-edit",
|
||||
"edit_album": "I-edit ang album",
|
||||
"edit_avatar": "I-edit ang avatar",
|
||||
"edit_birthday": "I-edit ang birthday",
|
||||
"edit_date": "I-edit ang petsa",
|
||||
"edit_date_and_time": "I-edit ang petsa at oras",
|
||||
"editor_close_without_save_title": "Isara ang editor?",
|
||||
"explore": "I-explore",
|
||||
"export": "I-export",
|
||||
"has_quota": "May quota",
|
||||
"hour": "Oras",
|
||||
"info": "Informasyon",
|
||||
"jobs": "Mga trabaho",
|
||||
"language": "Wika",
|
||||
"leave": "Umalis",
|
||||
"no_results": "Walang resulta"
|
||||
"no_results": "Walang resulta",
|
||||
"shared_link_edit_expire_after_option_minutes": "{count} minuto",
|
||||
"shared_link_edit_expire_after_option_months": "{count} buwan",
|
||||
"shared_link_edit_expire_after_option_year": "{count} taon",
|
||||
"shared_link_edit_password_hint": "I-enter ang share password",
|
||||
"year": "Taon"
|
||||
}
|
||||
|
||||
+60
-9
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Activer les notifications par courriel",
|
||||
"notification_settings": "Paramètres de notification",
|
||||
"notification_settings_description": "Gérer les paramètres de notification, y compris les courriels",
|
||||
"oauth_allow_insecure_requests": "Permettre les requêtes non sécurisées",
|
||||
"oauth_allow_insecure_requests_description": "ATTENTION : cela désactive la validation de certificat TLS pour les requêtes OAuth et peut vous exposer à des attaques par l'homme du milieu (MITM).",
|
||||
"oauth_auto_launch": "Lancement automatique",
|
||||
"oauth_auto_launch_description": "Démarrer automatiquement le flux de connexion OAuth lors de la navigation vers la page de connexion",
|
||||
"oauth_auto_register": "Inscription automatique",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Texte du bouton",
|
||||
"oauth_client_secret_description": "Nécessaire pour un client confidentiel, ou si le protocole PKCE (Proof Key for Code Exchange) n'est pas supporté par le client public.",
|
||||
"oauth_enable_description": "Connexion avec OAuth",
|
||||
"oauth_end_session_url_description": "Rediriger l'utilisateur vers cette URI lorsqu'il se déconnecte.",
|
||||
"oauth_mobile_redirect_uri": "URI de redirection mobile",
|
||||
"oauth_mobile_redirect_uri_override": "Remplacer l'URI de redirection mobile",
|
||||
"oauth_mobile_redirect_uri_override_description": "Activer quand le fournisseur d'OAuth ne permet pas un URI mobile, comme ''{callback}''",
|
||||
"oauth_prompt_description": "Paramètre de prompt (par ex. select_account, login, consentement)",
|
||||
"oauth_role_claim": "Attribut de rôle",
|
||||
"oauth_role_claim_description": "Donne automatiquement un accès en tant qu'admin, en se basant sur la présence de cet attribut. L'attribut peut avoir soit 'user' (utilisateur) soit 'admin'.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Conservez les photos depuis les derniers…",
|
||||
"cutoff_day": "{count, plural, one {jour} other {jours}}",
|
||||
"cutoff_year": "{count, plural, one {année} other {années}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Sombre",
|
||||
"dark_theme": "Basculer sur le thème sombre",
|
||||
"date": "Date",
|
||||
"date_after": "Date après",
|
||||
"date_and_time": "Date et heure",
|
||||
"date_before": "Date avant",
|
||||
"date_format": "E, LLL d, y • h:mm a",
|
||||
"date_of_birth": "Date de naissance",
|
||||
"date_of_birth_saved": "Date de naissance enregistrée avec succès",
|
||||
"date_range": "Plage de dates",
|
||||
"day": "Jour",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Déplacer les photos et vidéos sauvegardées vers la corbeille de votre appareil pour libérer de l'espace. Vos copies sur le serveur restent en sécurité.",
|
||||
"free_up_space_settings_subtitle": "Libérer l'espace de votre appareil",
|
||||
"full_path": "Chemin complet : {path}",
|
||||
"full_path_or_folder": "Chemin complet ou dossier",
|
||||
"gcast_enabled": "Diffusion Google Cast",
|
||||
"gcast_enabled_description": "Cette fonctionnalité charge des ressources externes depuis Google pour fonctionner.",
|
||||
"general": "Général",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Basculer sur le thème clair",
|
||||
"like": "J'aime",
|
||||
"like_deleted": "Réaction « J'aime » supprimée",
|
||||
"link": "Lien",
|
||||
"link_motion_video": "Lier la photo animée",
|
||||
"link_to_docs": "Pour plus d'informations, se référer à la <link>documentation</link>.",
|
||||
"link_to_oauth": "Lien au service OAuth",
|
||||
"linked_oauth_account": "Compte OAuth rattaché",
|
||||
"list": "Liste",
|
||||
"live": "Direct",
|
||||
"loading": "Chargement",
|
||||
"loading_search_results_failed": "Chargement des résultats échoué",
|
||||
"local": "Local",
|
||||
@@ -1518,6 +1523,38 @@
|
||||
"marked_all_as_read": "Tout a été marqué comme lu",
|
||||
"matches": "Correspondances",
|
||||
"matching_assets": "Médias correspondants",
|
||||
"media_chrome": {
|
||||
"auto": "Auto",
|
||||
"captions": "Sous-titres",
|
||||
"captions_off": "Désactivé",
|
||||
"closed_captions": "sous-titres codés",
|
||||
"decode_error": "Erreur de décodage",
|
||||
"disable_captions": "Désactiver les sous-titres",
|
||||
"enable_captions": "Activer les sous-titres",
|
||||
"enter_fullscreen_mode": "Mettre en mode plein écran",
|
||||
"exit_fullscreen_mode": "Quitter le mode plein écran",
|
||||
"loop": "Lire en boucle",
|
||||
"media_error_description": "Une erreur de média a provoqué l’interruption de la lecture. Le média peut être corrompu ou votre navigateur ne prend pas en charge ce format.",
|
||||
"media_loading": "chargement des médias",
|
||||
"mute": "Désactiver le son",
|
||||
"network_error": "Erreur réseau",
|
||||
"network_error_description": "Une erreur réseau a causé l’échec du téléchargement du média.",
|
||||
"not_supported_error": "Source non supportée",
|
||||
"playback_rate": "Taux de lecture",
|
||||
"playback_rate_current": "taux de lecture actuel",
|
||||
"playback_rate_value": "Taux de lecture {playbackRate}",
|
||||
"playback_time": "durée de lecture",
|
||||
"quality": "Qualité",
|
||||
"second": "seconde",
|
||||
"seconds": "secondes",
|
||||
"time_value_of_total_time": "{currentTime} sur {totalTime}",
|
||||
"time_value_remaining": "{time} restant",
|
||||
"unmute": "Activer le son",
|
||||
"unsupported_error_description": "Une erreur non supportée s’est produite. Le serveur ou le réseau a échoué, ou votre navigateur ne prend pas en charge ce format.",
|
||||
"video_not_loaded_unknown_time": "vidéo non chargée, durée inconnue.",
|
||||
"video_player": "lecteur vidéo",
|
||||
"volume": "volume"
|
||||
},
|
||||
"media_type": "Type de média",
|
||||
"memories": "Souvenirs",
|
||||
"memories_all_caught_up": "Vous avez tout vu",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Téléchargez l'application mobile compagnon via les options suivantes",
|
||||
"model": "Modèle",
|
||||
"month": "Mois",
|
||||
"monthly_title_text_date_format": "MMMM a",
|
||||
"more": "Plus",
|
||||
"motion": "Mouvement",
|
||||
"move": "Déplacer",
|
||||
"move_down": "Descendre",
|
||||
"move_off_locked_folder": "Déplacer en dehors du dossier verrouillé",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Impossible de modifier l'emplacement de médias en lecture seule, ils sont ignorés",
|
||||
"mute_memories": "Mettre en sourdine les souvenirs",
|
||||
"my_albums": "Mes albums",
|
||||
"my_immich_description": "Copier la page actuelle comme Mon lien Immich",
|
||||
"my_immich_title": "Mon lien Immich",
|
||||
"name": "Nom",
|
||||
"name_or_nickname": "Nom ou surnom",
|
||||
"name_required": "Le nom est nécessaire",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "Supprimer les médias ?",
|
||||
"remove_custom_date_range": "Supprimer la plage de date personnalisée",
|
||||
"remove_deleted_assets": "Supprimer les fichiers hors ligne",
|
||||
"remove_filter": "Supprimer le filtre",
|
||||
"remove_from_album": "Supprimer de l'album",
|
||||
"remove_from_album_action_prompt": "{count} supprimé(s) de l'album",
|
||||
"remove_from_favorites": "Supprimer des favoris",
|
||||
@@ -1926,13 +1966,17 @@
|
||||
"scan_settings": "Paramètres d'analyse",
|
||||
"scanning": "Analyse en cours",
|
||||
"scanning_for_album": "Recherche d'albums en cours...",
|
||||
"screencast_mode_description": "Afficher à l'écran les indicateurs d'évènements de clavier et souris",
|
||||
"screencast_mode_title": "Basculer le mode de diffusion d'écran",
|
||||
"search": "Recherche",
|
||||
"search_albums": "Rechercher des albums",
|
||||
"search_by_context": "Rechercher par contexte",
|
||||
"search_by_context": "Recherche par contexte",
|
||||
"search_by_description": "Recherche par description",
|
||||
"search_by_description_example": "Randonnée à Sapa",
|
||||
"search_by_filename": "Rechercher par nom du fichier ou extension",
|
||||
"search_by_filename": "Recherche par nom du fichier ou extension",
|
||||
"search_by_filename_example": "Exemple : IMG_1234.JPG ou PNG",
|
||||
"search_by_full_path": "Recherche par chemin complet ou dossier",
|
||||
"search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - vous pouvez rechercher Projets, 3D, Impression, 2026, etc.",
|
||||
"search_by_ocr": "Recherche par Reconnaissance Optique de Caractères OCR",
|
||||
"search_by_ocr_example": "café latte",
|
||||
"search_camera_lens_model": "Chercher par modèle d'objectif...",
|
||||
@@ -1962,7 +2006,7 @@
|
||||
"search_no_people": "Aucune personne",
|
||||
"search_no_people_named": "Aucune personne nommée « {name} »",
|
||||
"search_no_result": "Aucun résultat trouvé, essayez un autre terme de recherche ou une autre combinaison",
|
||||
"search_options": "Rechercher une option",
|
||||
"search_options": "Options de recherche",
|
||||
"search_page_categories": "Catégories",
|
||||
"search_page_motion_photos": "Photos avec mouvement",
|
||||
"search_page_no_objects": "Aucune information disponible sur les objets",
|
||||
@@ -1976,9 +2020,9 @@
|
||||
"search_page_your_map": "Votre carte",
|
||||
"search_people": "Rechercher une personne",
|
||||
"search_places": "Rechercher un lieu",
|
||||
"search_rating": "Chercher par évaluation...",
|
||||
"search_rating": "Recherche par évaluation...",
|
||||
"search_result_page_new_search_hint": "Nouvelle recherche",
|
||||
"search_settings": "Paramètres de recherche",
|
||||
"search_settings": "Rechercher dans les paramètres",
|
||||
"search_state": "Rechercher par état/région...",
|
||||
"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",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Afficher le schéma",
|
||||
"show_search_options": "Afficher les options de recherche",
|
||||
"show_shared_links": "Afficher les liens partagés",
|
||||
"show_slideshow_metadata_overlay": "Afficher les infos de l'image en superposition",
|
||||
"show_slideshow_transition": "Afficher la transition du diaporama",
|
||||
"show_supporter_badge": "Badge de contributeur",
|
||||
"show_supporter_badge_description": "Afficher le badge de contributeur",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Passer vers les dossiers",
|
||||
"skip_to_tags": "Passer vers les étiquettes",
|
||||
"slideshow": "Diaporama",
|
||||
"slideshow_metadata_overlay_mode": "Contenu en superposition",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Seulement la description",
|
||||
"slideshow_metadata_overlay_mode_full": "Tout",
|
||||
"slideshow_repeat": "Répéter le diaporama",
|
||||
"slideshow_repeat_description": "Reboucler au début lorsque le diaporama se termine",
|
||||
"slideshow_settings": "Paramètres du diaporama",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Statut de synchronisation",
|
||||
"sync_status_subtitle": "Consulter et gérer le système de synchronisation",
|
||||
"sync_upload_album_setting_subtitle": "Créez et envoyez vos photos et vidéos dans les albums sélectionnés sur Immich",
|
||||
"system_theme": "Thème du système",
|
||||
"system_theme_command_description": "Utiliser le thème du système ({value})",
|
||||
"tag": "Étiquette",
|
||||
"tag_assets": "Étiqueter les médias",
|
||||
"tag_created": "Étiquette créée : {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Flux de traitement",
|
||||
"workflows_help_text": "Les flux de traitement automatisent des actions sur vos médias, en se basant sur des déclencheurs et des filtres",
|
||||
"wrong_pin_code": "Code PIN erroné",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Année",
|
||||
"years_ago": "Il y a {years, plural, one {# an} other {# ans}}",
|
||||
"yes": "Oui",
|
||||
|
||||
+55
-4
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Cumasaigh fógraí ríomhphoist",
|
||||
"notification_settings": "Socruithe Fógra",
|
||||
"notification_settings_description": "Bainistigh socruithe fógraí, lena n-áirítear ríomhphost",
|
||||
"oauth_allow_insecure_requests": "Ceadaigh iarratais neamhshábháilte",
|
||||
"oauth_allow_insecure_requests_description": "RABHADH: Díchumasaíonn sé seo bailíochtú teastais TLS le haghaidh iarratais OAuth agus d’fhéadfadh sé go mbeadh tú nochtaithe d’ionsaithe MITM.",
|
||||
"oauth_auto_launch": "Seoladh uathoibríoch",
|
||||
"oauth_auto_launch_description": "Tosaigh sreabhadh logála isteach OAuth go huathoibríoch nuair a dhéantar nascleanúint chuig an leathanach logála isteach",
|
||||
"oauth_auto_register": "Clárú uathoibríoch",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Téacs cnaipe",
|
||||
"oauth_client_secret_description": "Riachtanach do chliant rúnda, nó mura dtacaítear le PKCE (Eochair Chruthúnais le haghaidh Malartú Cód) do chliant poiblí.",
|
||||
"oauth_enable_description": "Logáil isteach le OAuth",
|
||||
"oauth_end_session_url_description": "Athsheol an t-úsáideoir chuig an URI seo nuair a logálann siad amach.",
|
||||
"oauth_mobile_redirect_uri": "URI atreoraithe soghluaiste",
|
||||
"oauth_mobile_redirect_uri_override": "Sárú URI atreoraithe soghluaiste",
|
||||
"oauth_mobile_redirect_uri_override_description": "Cumasaigh nuair nach gceadaíonn soláthraí OAuth URI soghluaiste, mar shampla ''{callback}''",
|
||||
"oauth_prompt_description": "Paraiméadar leid (m.sh. roghnaigh_cuntas, logáil isteach, toiliú)",
|
||||
"oauth_role_claim": "Éileamh Róil",
|
||||
"oauth_role_claim_description": "Deonaigh rochtain riarthóra go huathoibríoch bunaithe ar láithreacht an éilimh seo. Féadfaidh 'úsáideoir' nó 'riarthóir' a bheith san éileamh.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Coinnigh grianghraif ón uair dheireanach…",
|
||||
"cutoff_day": "{count, plural, one {lá} other {laethanta}}",
|
||||
"cutoff_year": "{count, plural, one {bliain} other {blianta}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Dorcha",
|
||||
"dark_theme": "Athraigh go téama dorcha",
|
||||
"date": "Dáta",
|
||||
"date_after": "Dáta i ndiaidh",
|
||||
"date_and_time": "Dáta agus Am",
|
||||
"date_before": "Dáta roimh",
|
||||
"date_format": "E, d LLL, y • h:mm a",
|
||||
"date_of_birth": "Dáta breithe",
|
||||
"date_of_birth_saved": "Dáta breithe sábháilte go rathúil",
|
||||
"date_range": "Raon dáta",
|
||||
"day": "Lá",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Bog grianghraif agus físeáin chúltaca chuig bruscar do ghléis chun spás a shaoradh. Fanann do chóipeanna ar an bhfreastalaí slán.",
|
||||
"free_up_space_settings_subtitle": "Saor stóráil gléis",
|
||||
"full_path": "Cosán iomlán: {path}",
|
||||
"full_path_or_folder": "Cosán nó fillteán iomlán",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Lódálann an ghné seo acmhainní seachtracha ó Google chun go n-oibreoidh sí.",
|
||||
"general": "Ginearálta",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Athraigh go téama éadrom",
|
||||
"like": "Is maith liom",
|
||||
"like_deleted": "Scriosadh an rud is maith liom",
|
||||
"link": "Nasc",
|
||||
"link_motion_video": "Físeán gluaiseachta nasctha",
|
||||
"link_to_docs": "Le haghaidh tuilleadh eolais, féach ar an <link>doiciméadú</link>.",
|
||||
"link_to_oauth": "Nasc le OAuth",
|
||||
"linked_oauth_account": "Cuntas OAuth nasctha",
|
||||
"list": "Liosta",
|
||||
"live": "Beo",
|
||||
"loading": "Ag luchtú",
|
||||
"loading_search_results_failed": "Theip ar lódáil na dtorthaí cuardaigh",
|
||||
"local": "Áitiúil",
|
||||
@@ -1518,6 +1523,38 @@
|
||||
"marked_all_as_read": "Marcáladh gach rud mar léite",
|
||||
"matches": "Cluichí",
|
||||
"matching_assets": "Sócmhainní Meaitseála",
|
||||
"media_chrome": {
|
||||
"auto": "Uath",
|
||||
"captions": "Fotheidil",
|
||||
"captions_off": "As",
|
||||
"closed_captions": "fotheidil dúnta",
|
||||
"decode_error": "Earráid díchódaithe",
|
||||
"disable_captions": "Díchumasaigh fotheidil",
|
||||
"enable_captions": "Cumasaigh fotheidil",
|
||||
"enter_fullscreen_mode": "Téigh isteach i mód lánscáileáin",
|
||||
"exit_fullscreen_mode": "Scoir mód lánscáileáin",
|
||||
"loop": "Lúb",
|
||||
"media_error_description": "Earráid sna meáin ba chúis leis an athsheinm. B’fhéidir go bhfuil na meáin truaillithe nó nach dtacaíonn do bhrabhsálaí leis an bhformáid seo.",
|
||||
"media_loading": "luchtú meán",
|
||||
"mute": "Balbhaigh",
|
||||
"network_error": "Earráid líonra",
|
||||
"network_error_description": "Theip ar íoslódáil na meán de dheasca earráide líonra.",
|
||||
"not_supported_error": "Foinse Gan Tacaíocht",
|
||||
"playback_rate": "Ráta athsheinm",
|
||||
"playback_rate_current": "ráta athsheinm reatha",
|
||||
"playback_rate_value": "Ráta athsheinm {playbackRate}",
|
||||
"playback_time": "am athsheinm",
|
||||
"quality": "Cáilíocht",
|
||||
"second": "soicind",
|
||||
"seconds": "soicindí",
|
||||
"time_value_of_total_time": "{currentTime} de {totalTime}",
|
||||
"time_value_remaining": "{time} fágtha",
|
||||
"unmute": "Díbhalbhaigh",
|
||||
"unsupported_error_description": "Tharla earráid nach dtacaítear léi. Theip ar an bhfreastalaí nó ar an líonra, nó ní thacaíonn do bhrabhsálaí leis an bhformáid seo.",
|
||||
"video_not_loaded_unknown_time": "físeán gan luchtú, am anaithnid.",
|
||||
"video_player": "seinnteoir físeáin",
|
||||
"volume": "toirt"
|
||||
},
|
||||
"media_type": "Cineál meán",
|
||||
"memories": "Cuimhní cinn",
|
||||
"memories_all_caught_up": "Gach rud gafa suas",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Íoslódáil an aip shoghluaiste tionlacain ag baint úsáide as na roghanna seo a leanas",
|
||||
"model": "Samhail",
|
||||
"month": "Mí",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Tuilleadh",
|
||||
"motion": "Gluaiseacht",
|
||||
"move": "Bog",
|
||||
"move_down": "Bog síos",
|
||||
"move_off_locked_folder": "Bog amach as fillteán faoi ghlas",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Ní féidir suíomh sócmhainn(í) inléite amháin a chur in eagar, ag scipeáil",
|
||||
"mute_memories": "Cuimhní Balbhaigh",
|
||||
"my_albums": "Mo chuid albaim",
|
||||
"my_immich_description": "Cóipeáil an leathanach reatha mar nasc My Immich",
|
||||
"my_immich_title": "Mo nasc Immich",
|
||||
"name": "Ainm",
|
||||
"name_or_nickname": "Ainm nó leasainm",
|
||||
"name_required": "Tá ainm ag teastáil",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "Bain sócmhainní?",
|
||||
"remove_custom_date_range": "Bain raon dáta saincheaptha",
|
||||
"remove_deleted_assets": "Bain Sócmhainní Scriosta",
|
||||
"remove_filter": "Bain an scagaire",
|
||||
"remove_from_album": "Bain den albam",
|
||||
"remove_from_album_action_prompt": "Baineadh {count} den albam",
|
||||
"remove_from_favorites": "Bain as ceanáin",
|
||||
@@ -1926,6 +1966,8 @@
|
||||
"scan_settings": "Socruithe Scanadh",
|
||||
"scanning": "Ag scanadh",
|
||||
"scanning_for_album": "Ag scanadh le haghaidh albam...",
|
||||
"screencast_mode_description": "Taispeáin táscairí imeachta méarchláir agus luiche ar an scáileán",
|
||||
"screencast_mode_title": "Mód craolta scáileáin a scoránaigh",
|
||||
"search": "Cuardaigh",
|
||||
"search_albums": "Cuardaigh albaim",
|
||||
"search_by_context": "Cuardaigh de réir comhthéacs",
|
||||
@@ -1933,6 +1975,8 @@
|
||||
"search_by_description_example": "Lá siúlóide i Sapa",
|
||||
"search_by_filename": "Cuardaigh de réir ainm comhaid nó síneadh",
|
||||
"search_by_filename_example": "i.e. IMG_1234.JPG nó PNG",
|
||||
"search_by_full_path": "Cuardaigh de réir cosáin iomláin nó fillteáin",
|
||||
"search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - is féidir leat cuardach a dhéanamh ar Thionscadail, 3D, Priontáil, 2026 srl.",
|
||||
"search_by_ocr": "Cuardaigh de réir OCR",
|
||||
"search_by_ocr_example": "Latte",
|
||||
"search_camera_lens_model": "Cuardaigh samhail lionsa...",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Taispeáin scéim",
|
||||
"show_search_options": "Taispeáin roghanna cuardaigh",
|
||||
"show_shared_links": "Taispeáin naisc chomhroinnte",
|
||||
"show_slideshow_metadata_overlay": "Taispeáin forleagan faisnéise íomhá",
|
||||
"show_slideshow_transition": "Taispeáin an t-aistriú sleamhnán",
|
||||
"show_supporter_badge": "Suaitheantas tacaíochta",
|
||||
"show_supporter_badge_description": "Taispeáin suaitheantas tacaíochta",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Léim go dtí na fillteáin",
|
||||
"skip_to_tags": "Léim go dtí na clibeanna",
|
||||
"slideshow": "Sleamhnán",
|
||||
"slideshow_metadata_overlay_mode": "Ábhar forleagan",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Cur síos amháin",
|
||||
"slideshow_metadata_overlay_mode_full": "Lán",
|
||||
"slideshow_repeat": "Athdhéan an sleamhnán",
|
||||
"slideshow_repeat_description": "Lúb ar ais go dtí an tús nuair a chríochnaíonn an sleamhnán",
|
||||
"slideshow_settings": "Socruithe sleamhnán",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Stádas Sioncrónaithe",
|
||||
"sync_status_subtitle": "Féach ar an gcóras sioncrónaithe agus bainistigh é",
|
||||
"sync_upload_album_setting_subtitle": "Cruthaigh agus uaslódáil do ghrianghraif agus físeáin chuig na halbaim roghnaithe ar Immich",
|
||||
"system_theme": "Téama an chórais",
|
||||
"system_theme_command_description": "Úsáid téama an chórais ({value})",
|
||||
"tag": "Clib",
|
||||
"tag_assets": "Sócmhainní clibe",
|
||||
"tag_created": "Clib cruthaithe: {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Sreafaí oibre",
|
||||
"workflows_help_text": "Uathoibríonn sreafaí oibre gníomhartha ar do shócmhainní bunaithe ar spreagthóirí agus scagairí",
|
||||
"wrong_pin_code": "Cód PIN mícheart",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Bliain",
|
||||
"years_ago": "{years, plural, one {# bliain} other {# blianta}} ó shin",
|
||||
"yes": "Tá",
|
||||
|
||||
+12
-4
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Activar notificacións por correo electrónico",
|
||||
"notification_settings": "Configuración de Notificacións",
|
||||
"notification_settings_description": "Xestionar a configuración de notificacións, incluído o correo electrónico",
|
||||
"oauth_allow_insecure_requests": "Permitir solicitudes non segureas",
|
||||
"oauth_allow_insecure_requests_description": "AVISO: Isto desactiva a validación de certificados TLS para as solicitudes OAuth e pode expoñerte a ataques MITM.",
|
||||
"oauth_auto_launch": "Lanzamento automático",
|
||||
"oauth_auto_launch_description": "Iniciar o fluxo de inicio de sesión OAuth automaticamente ao navegar á páxina de inicio de sesión",
|
||||
"oauth_auto_register": "Rexistro automático",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Texto do botón",
|
||||
"oauth_client_secret_description": "Requirido para clientes confidenciais ou se o provedor OAuth non admite PKCE (Proof Key for Code Exchange).",
|
||||
"oauth_enable_description": "Iniciar sesión con OAuth",
|
||||
"oauth_end_session_url_description": "Redireccionar o usuario a este URI cando peche sesión.",
|
||||
"oauth_mobile_redirect_uri": "URI de redirección móbil",
|
||||
"oauth_mobile_redirect_uri_override": "Substitución de URI de redirección móbil",
|
||||
"oauth_mobile_redirect_uri_override_description": "Activar cando o provedor OAuth non permite un URI móbil, como ''{callback}''",
|
||||
"oauth_prompt_description": "Parámetro de solicitude (por exemplo, select_account, login, consent)",
|
||||
"oauth_role_claim": "Declaración de rol",
|
||||
"oauth_role_claim_description": "Conceder acceso de administrador automaticamente segundo a presenza desta declaración. A declaración pode ter os valores 'user' ou 'admin'.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,12 @@
|
||||
"cutoff_date_description": "Manter fotos dos últimos…",
|
||||
"cutoff_day": "{count, plural, one {day} other {days}}",
|
||||
"cutoff_year": "{count, plural, one {day} other {days}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Escuro",
|
||||
"dark_theme": "Alternar a tema escuro",
|
||||
"date": "Data",
|
||||
"date_after": "Data posterior a",
|
||||
"date_and_time": "Data e Hora",
|
||||
"date_before": "Data anterior a",
|
||||
"date_format": "E, d LLL, y • H:mm",
|
||||
"date_of_birth_saved": "Data de nacemento gardada correctamente",
|
||||
"date_range": "Rango de datas",
|
||||
"day": "Día",
|
||||
@@ -1392,6 +1393,7 @@
|
||||
"light_theme": "Cambiar a tema claro",
|
||||
"like": "Gústame",
|
||||
"like_deleted": "Gústame eliminado",
|
||||
"link": "Ligazón",
|
||||
"link_motion_video": "Ligar vídeo en movemento",
|
||||
"link_to_docs": "Para máis información, consulte a <link>documentación</link>.",
|
||||
"link_to_oauth": "Ligar a OAuth",
|
||||
@@ -1544,7 +1546,6 @@
|
||||
"mobile_app_download_onboarding_note": "Descarga a aplicación móbil complementaria usando as seguintes opcións",
|
||||
"model": "Modelo",
|
||||
"month": "Mes",
|
||||
"monthly_title_text_date_format": "MMMM a",
|
||||
"more": "Máis",
|
||||
"move": "Mover",
|
||||
"move_down": "Baixar",
|
||||
@@ -1562,6 +1563,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Non se pode editar a localización de activo(s) de só lectura, omitindo",
|
||||
"mute_memories": "Silenciar Recordos",
|
||||
"my_albums": "Os meus álbums",
|
||||
"my_immich_description": "Copiar a páxina actual como Ligazón do Meu Immich",
|
||||
"my_immich_title": "Ligazón do Meu Immich",
|
||||
"name": "Nome",
|
||||
"name_or_nickname": "Nome ou alcume",
|
||||
"name_required": "O nome é obligatorio",
|
||||
@@ -1926,6 +1929,8 @@
|
||||
"scan_settings": "Configuración de Escaneo",
|
||||
"scanning": "Escaneando",
|
||||
"scanning_for_album": "Escaneando álbum...",
|
||||
"screencast_mode_description": "Mostrar os indicadores de eventos do teclado e do rato na pantalla",
|
||||
"screencast_mode_title": "Alternar o modo de captura da pantalla",
|
||||
"search": "Buscar",
|
||||
"search_albums": "Buscar álbums",
|
||||
"search_by_context": "Buscar por contexto",
|
||||
@@ -2214,6 +2219,8 @@
|
||||
"sync_status": "Estado de Sincronización",
|
||||
"sync_status_subtitle": "Ver e xestionar o sistema de sincronización",
|
||||
"sync_upload_album_setting_subtitle": "Crear e subir as súas fotos e vídeos aos álbums seleccionados en Immich",
|
||||
"system_theme": "Tema do sistema",
|
||||
"system_theme_command_description": "Empregar o tema do sistema ({value})",
|
||||
"tag": "Etiqueta",
|
||||
"tag_assets": "Etiquetar activos",
|
||||
"tag_created": "Etiqueta creada: {tag}",
|
||||
@@ -2425,6 +2432,7 @@
|
||||
"workflows": "Fluxos de traballo",
|
||||
"workflows_help_text": "Os fluxos de traballo automatizan accións nos teus recursos en función de disparadores e filtros",
|
||||
"wrong_pin_code": "Código PIN incorrecto",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Ano",
|
||||
"years_ago": "Hai {years, plural, one {# ano} other {# anos}}",
|
||||
"yes": "Si",
|
||||
|
||||
+4
-4
@@ -5,6 +5,7 @@
|
||||
"acknowledge": "Bestätige",
|
||||
"action": "Aktion",
|
||||
"action_common_update": "Aktualisiere",
|
||||
"action_description": "A Gruppe fo Aktione wo söll usgfüert werde",
|
||||
"actions": "Aktione",
|
||||
"active": "Aktiv",
|
||||
"active_count": "Aktive:{count}",
|
||||
@@ -16,9 +17,12 @@
|
||||
"add_a_name": "Name hiifüege",
|
||||
"add_a_title": "Titel hiifüege",
|
||||
"add_action": "Aktion hiifüege",
|
||||
"add_action_description": "Klick da um e Aktion hinzue zfüege wo söll usgfüert werde",
|
||||
"add_assets": "Objäkt Hinzuefüege",
|
||||
"add_birthday": "Geburtsdatum hiifüege",
|
||||
"add_endpoint": "Endpunkt hiifüege",
|
||||
"add_exclusion_pattern": "Ausschlussmuster hiifüege",
|
||||
"add_filter": "Filter hinzuefüege",
|
||||
"add_location": "Standort hiifüege",
|
||||
"add_more_users": "Wiiteri Nutzer hiifüege",
|
||||
"add_partner": "Partner hiifüege",
|
||||
@@ -821,15 +825,12 @@
|
||||
"custom_locale": "Benutzerdefinierti Sproch",
|
||||
"custom_locale_description": "Datumsahgoob und Zahle je nach Sproch und Land formatiere",
|
||||
"custom_url": "Benutzerdefinierti URL",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Dunkäl",
|
||||
"dark_theme": "Dunkli Aahsicht umschalte",
|
||||
"date": "Datum",
|
||||
"date_after": "Datum noch",
|
||||
"date_and_time": "Datum und Ziit",
|
||||
"date_before": "Datum vor",
|
||||
"date_format": "E d. LLL y • hh:mm",
|
||||
"date_of_birth_saved": "S’Geburtsdatum isch erfolgrich gspiicheret worde",
|
||||
"date_range": "Datumsberiich",
|
||||
"day": "Tag",
|
||||
@@ -1414,7 +1415,6 @@
|
||||
"mobile_app_download_onboarding_note": "Herunterlade vo dr mobile App über eini vo de folgende Möglichkeitä",
|
||||
"model": "Modäll",
|
||||
"month": "Monet",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Meh",
|
||||
"move": "Verschiebä",
|
||||
"move_off_locked_folder": "Us em gschperrte Ordner verschiebe",
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"about": "વિશે",
|
||||
"account": "ખાતું",
|
||||
"account_settings": "ખાતાનાં સેટિંગ્સ",
|
||||
"acknowledge": "જાણકારી મળી",
|
||||
"acknowledge": "જાણકારી",
|
||||
"action": "ક્રિયા",
|
||||
"action_common_update": "સુધારો",
|
||||
"action_description": "છાંટેલી વસ્તુઓ પર કરી શકાય તેવી ક્રિયાઓ",
|
||||
|
||||
+15
-6
@@ -267,16 +267,20 @@
|
||||
"notification_enable_email_notifications": "אפשר התראות דוא\"ל",
|
||||
"notification_settings": "הגדרות התראות",
|
||||
"notification_settings_description": "ניהול הגדרות התראות, כולל דוא\"ל",
|
||||
"oauth_allow_insecure_requests": "אפשר בקשות לא מאובטחות",
|
||||
"oauth_allow_insecure_requests_description": "אזהרה: פעולה זו מבטלת את אימות תעודת האבטחה (TLS) עבור בקשות OAuth, ועלולה לחשוף אותך למתקפות “אדם בתווך” (MITM).",
|
||||
"oauth_auto_launch": "הפעלה אוטומטית",
|
||||
"oauth_auto_launch_description": "התחל את זרימת ההתחברות של OAuth באופן אוטומטי עם הניווט לדף ההתחברות",
|
||||
"oauth_auto_register": "רישום אוטומטי",
|
||||
"oauth_auto_launch_description": "התחברות באמצעות OAuth תתחיל אוטומטית כשנכנסים לעמוד ההתחברות",
|
||||
"oauth_auto_register": "הרשמה אוטומטית",
|
||||
"oauth_auto_register_description": "רשום אוטומטית משתמשים חדשים לאחר כניסה עם OAuth",
|
||||
"oauth_button_text": "טקסט לחצן",
|
||||
"oauth_client_secret_description": "נדרש עבור לקוח סודי, או אם PKCE (מפתח הוכחה להחלפת קוד) אינו נתמך עבור לקוח ציבורי.",
|
||||
"oauth_enable_description": "התחבר עם OAuth",
|
||||
"oauth_end_session_url_description": "הפנה את המשתמש ל-URI זה כאשר הוא מתנתק.",
|
||||
"oauth_mobile_redirect_uri": "URI להפניה מחדש בנייד",
|
||||
"oauth_mobile_redirect_uri_override": "עקיפת URI להפניה מחדש בנייד",
|
||||
"oauth_mobile_redirect_uri_override_description": "אפשר כאשר ספק OAuth לא מאפשר כתובת URI לנייד, כמו ''{callback}''",
|
||||
"oauth_prompt_description": "פרמטר בקשה (למשל select_account, login, consent)",
|
||||
"oauth_role_claim": "דרישת תפקיד",
|
||||
"oauth_role_claim_description": "הענק גישת מנהל באופן אוטומטי אם תביעה זו קיימת. ערך התביעה יכול להיות 'user' או 'admin'.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -849,9 +853,12 @@
|
||||
"create_link_to_share": "צור קישור לשיתוף",
|
||||
"create_link_to_share_description": "אפשר לכל אחד עם הקישור לראות את התמונות שנבחרו",
|
||||
"create_new": "צור חדש",
|
||||
"create_new_face": "צור פנים חדשות",
|
||||
"create_new_person": "צור אדם חדש",
|
||||
"create_new_person_hint": "הקצה את התמונות שנבחרו לאדם חדש",
|
||||
"create_new_user": "צור משתמש חדש",
|
||||
"create_person": "צור אדם",
|
||||
"create_person_subtitle": "הוסף שם לפנים שנבחרו כדי ליצור ולתייג את האדם החדש",
|
||||
"create_shared_album_page_share_add_assets": "הוסף תמונות",
|
||||
"create_shared_album_page_share_select_photos": "בחירת תמונות",
|
||||
"create_shared_link": "צור קישור משותף",
|
||||
@@ -878,15 +885,12 @@
|
||||
"cutoff_date_description": "שמור תמונות מ…",
|
||||
"cutoff_day": "{count, plural, one {יום} other {ימים}}",
|
||||
"cutoff_year": "{count, plural, one {שנה} other {שנים}}",
|
||||
"daily_title_text_date": "E, MMM dd",
|
||||
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||
"dark": "כהה",
|
||||
"dark_theme": "מעבר לערכת נושא כהה",
|
||||
"date": "תאריך",
|
||||
"date_after": "תאריך אחרי",
|
||||
"date_and_time": "תאריך ושעה",
|
||||
"date_before": "תאריך לפני",
|
||||
"date_format": "E, LLL d, y • h:mm a",
|
||||
"date_of_birth_saved": "תאריך לידה נשמר בהצלחה",
|
||||
"date_range": "טווח תאריכים",
|
||||
"day": "יום",
|
||||
@@ -1541,7 +1545,6 @@
|
||||
"mobile_app_download_onboarding_note": "הורד את האפליקציה המלווה באחת מהאפשרויות הבאות",
|
||||
"model": "דגם",
|
||||
"month": "חודש",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "עוד",
|
||||
"move": "העבר",
|
||||
"move_down": "הזזה למטה",
|
||||
@@ -1559,6 +1562,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "לא ניתן לערוך מיקום של תמונות לקריאה בלבד, מדלג",
|
||||
"mute_memories": "השתקת זיכרונות",
|
||||
"my_albums": "האלבומים שלי",
|
||||
"my_immich_description": "העתק את הדף הנוכחי כקישור ל-My Immich",
|
||||
"my_immich_title": "קישור ה Immich link שלי",
|
||||
"name": "שם",
|
||||
"name_or_nickname": "שם או כינוי",
|
||||
"name_required": "נדרש שם",
|
||||
@@ -1923,6 +1928,7 @@
|
||||
"scan_settings": "הגדרות סריקה",
|
||||
"scanning": "בתהליך סריקה",
|
||||
"scanning_for_album": "סורק אחר אלבום...",
|
||||
"screencast_mode_title": "כבה/הפעל מצב שידור מסך",
|
||||
"search": "חיפוש",
|
||||
"search_albums": "חיפוש אלבומים",
|
||||
"search_by_context": "חיפוש לפי הקשר",
|
||||
@@ -2211,9 +2217,12 @@
|
||||
"sync_status": "סטטוס סנכרון",
|
||||
"sync_status_subtitle": "הצג ונהל את מערכת הסנכרון",
|
||||
"sync_upload_album_setting_subtitle": "צור והעלה תמונות וסרטונים שלך לאלבומים שנבחרו ביישום",
|
||||
"system_theme": "ערכת נושא של המערכת",
|
||||
"system_theme_command_description": "השתמש בערכת העיצוב של המערכת ({value})",
|
||||
"tag": "תג",
|
||||
"tag_assets": "תיוג תמונות",
|
||||
"tag_created": "נוצר תג: {tag}",
|
||||
"tag_face": "תייג פנים",
|
||||
"tag_feature_description": "עיון בתמונות וסרטונים שקובצו על ידי נושאי תג לוגיים",
|
||||
"tag_not_found_question": "לא ניתן למצוא תג? <link>יצירת תג חדש.</link>",
|
||||
"tag_people": "תייג אנשים",
|
||||
|
||||
@@ -877,15 +877,12 @@
|
||||
"cutoff_date_description": "पिछले कितने फ़ोटो रखें…",
|
||||
"cutoff_day": "{count, plural, one {दिन} other {दिन}}",
|
||||
"cutoff_year": "{count, plural, one {वर्ष} other {वर्ष}}",
|
||||
"daily_title_text_date": "ई, एमएमएम डीडी",
|
||||
"daily_title_text_date_year": "ई, एमएमएम दिन, वर्ष",
|
||||
"dark": "डार्क",
|
||||
"dark_theme": "डार्क थीम टॉगल करें",
|
||||
"date": "दिनांक",
|
||||
"date_after": "इसके बाद की तारीख",
|
||||
"date_and_time": "तिथि और समय",
|
||||
"date_before": "पहले की तारीख",
|
||||
"date_format": "ई, एलएलएल डी, वाई • एच:एमएम ए",
|
||||
"date_of_birth_saved": "जन्मतिथि सफलतापूर्वक सहेजी गई",
|
||||
"date_range": "तिथि सीमा",
|
||||
"day": "दिन",
|
||||
@@ -1533,7 +1530,6 @@
|
||||
"mobile_app_download_onboarding_note": "निम्नलिखित विकल्पों का उपयोग करके साथी मोबाइल ऐप डाउनलोड करें",
|
||||
"model": "मॉडल",
|
||||
"month": "महीना",
|
||||
"monthly_title_text_date_format": "एमएमएमएम वाई",
|
||||
"more": "अधिक",
|
||||
"move": "स्थान परिवर्तन",
|
||||
"move_down": "नीचे ले जाएँ",
|
||||
|
||||
+5
-6
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Omogući obavijesti putem e-pošte",
|
||||
"notification_settings": "Postavke obavijesti",
|
||||
"notification_settings_description": "Upravljanje postavkama obavijesti, uključujući e-poštu",
|
||||
"oauth_allow_insecure_requests": "Dozvoli nesigurne zahtjeve",
|
||||
"oauth_allow_insecure_requests_description": "UPOZORENJE: Ovo onemogućava validaciju TLS certifikata za OAuth zahtjeve i može vas izložiti MITM napadima.",
|
||||
"oauth_auto_launch": "Automatsko pokretanje",
|
||||
"oauth_auto_launch_description": "Automatski pokrenite OAuth prijavu nakon navigacije na stranicu za prijavu",
|
||||
"oauth_auto_register": "Automatska registracija",
|
||||
@@ -274,6 +276,7 @@
|
||||
"oauth_button_text": "Tekst gumba",
|
||||
"oauth_client_secret_description": "Obaveznoya privatnog klijenta ili ukoliko PKCE (Proof Key for Code Exchange) nije podržan od javnog klijenta.",
|
||||
"oauth_enable_description": "Prijavite se putem OAutha",
|
||||
"oauth_end_session_url_description": "Preusmjeri korisnika na ovaj URI nakon odjave.",
|
||||
"oauth_mobile_redirect_uri": "Mobilnog Preusmjeravanja URI",
|
||||
"oauth_mobile_redirect_uri_override": "Nadjačavanje URI-preusmjeravanja za mobilne uređaje",
|
||||
"oauth_mobile_redirect_uri_override_description": "Omogući kada pružatelj OAuth ne dopušta mobilni URI, poput ''{callback}''",
|
||||
@@ -351,7 +354,7 @@
|
||||
"template_settings": "Predložak Obavijesti",
|
||||
"template_settings_description": "Upravljaj prilagođenim predlošcima za obavijesti",
|
||||
"theme_custom_css_settings": "Prilagođeni CSS",
|
||||
"theme_custom_css_settings_description": "Kaskadni listovi stilova (CSS) omogućuju prilagođavanje dizajna Immicha.",
|
||||
"theme_custom_css_settings_description": "Kaskadni stilovi (CSS) omogućavaju prilagođavanje dizajna Immich-a.",
|
||||
"theme_settings": "Postavke tema",
|
||||
"theme_settings_description": "Upravljajte prilagodbom Immich web sučelja",
|
||||
"thumbnail_generation_job": "Generirajte sličice",
|
||||
@@ -383,7 +386,7 @@
|
||||
"transcoding_hardware_acceleration": "Hardversko ubrzanje",
|
||||
"transcoding_hardware_acceleration_description": "Eksperimentalno: brže transkodiranje, ali može smanjiti kvalitetu pri istoj brzini prijenosa",
|
||||
"transcoding_hardware_decoding": "Hardversko dekodiranje",
|
||||
"transcoding_hardware_decoding_setting_description": "Odnosi se samo na NVENC, QSV i RKMPP. Omogućuje ubrzanje s kraja na kraj umjesto samo ubrzavanja kodiranja. Možda neće raditi na svim videozapisima.",
|
||||
"transcoding_hardware_decoding_setting_description": "Omogućava ubrzanje od početka do kraja (end-to-end) umjesto samo ubrzanja kodiranja. Možda neće raditi na svim video snimcima.",
|
||||
"transcoding_max_b_frames": "Maksimalni B-frameovi",
|
||||
"transcoding_max_b_frames_description": "Više vrijednosti poboljšavaju učinkovitost kompresije, ali usporavaju kodiranje. Možda nije kompatibilan s hardverskim ubrzanjem na starijim uređajima. 0 onemogućuje B-frameove, dok -1 automatski postavlja ovu vrijednost.",
|
||||
"transcoding_max_bitrate": "Maksimalne brzina prijenosa (bitrate)",
|
||||
@@ -876,15 +879,12 @@
|
||||
"cutoff_date_description": "Zadrži slike od zadnjih…",
|
||||
"cutoff_day": "{count, plural, one {dan} other {dana}}",
|
||||
"cutoff_year": "{count, plural, one {godina} other {godine}}",
|
||||
"daily_title_text_date": "E, MMM dd",
|
||||
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||
"dark": "Tamno",
|
||||
"dark_theme": "Prebaci u tamnu temu",
|
||||
"date": "Datum",
|
||||
"date_after": "Datum nakon",
|
||||
"date_and_time": "Datum i Vrijeme",
|
||||
"date_before": "Datum prije",
|
||||
"date_format": "E, LLL d, y • h:mm a",
|
||||
"date_of_birth_saved": "Datum rođenja uspješno spremljen",
|
||||
"date_range": "Razdoblje",
|
||||
"day": "Dan",
|
||||
@@ -1460,7 +1460,6 @@
|
||||
"missing": "Nedostaje",
|
||||
"model": "Model",
|
||||
"month": "Mjesec",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Više",
|
||||
"move": "Pomakni",
|
||||
"move_off_locked_folder": "Premjesti iz zaključane mape",
|
||||
|
||||
+60
-5
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Email értesítések engedélyezése",
|
||||
"notification_settings": "Értesítés beállítások",
|
||||
"notification_settings_description": "Értesítési és email beállítások kezelése",
|
||||
"oauth_allow_insecure_requests": "Nem biztonságos kérések engedélyezése",
|
||||
"oauth_allow_insecure_requests_description": "FIGYELEM: Ez letiltja a TLS-tanúsítványok ellenőrzését az [OAuth] kérések esetében, és ezáltal MITM támadásoknak tehet ki téged.",
|
||||
"oauth_auto_launch": "Automatikus indítás",
|
||||
"oauth_auto_launch_description": "Az OAuth bejelentkezési folyamat automatikus indítása a bejelentkezési oldal megnyitásakor",
|
||||
"oauth_auto_register": "Automatikus regisztráció",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Gomb szövege",
|
||||
"oauth_client_secret_description": "Bizalmas kliens esetén kötelező, vagy ha az OAuth szolgáltató nem támogatja a PKCE-t (Proof Key for Code Exchange) nyilvános kliensnél.",
|
||||
"oauth_enable_description": "Bejelentkezés OAuth használatával",
|
||||
"oauth_end_session_url_description": "A felhasználó kijelentkezésekor irányítsd át erre az URI-ra.",
|
||||
"oauth_mobile_redirect_uri": "Mobil átirányítási URI",
|
||||
"oauth_mobile_redirect_uri_override": "Mobil átirányítási URI felülírás",
|
||||
"oauth_mobile_redirect_uri_override_description": "Engedélyezd, ha az OAuth szolgáltató tiltja a mobil URI-t, mint például ''{callback}''",
|
||||
"oauth_prompt_description": "Parancssori paraméter (pl. select_account, login, consent)",
|
||||
"oauth_role_claim": "Szerepkör kérelem",
|
||||
"oauth_role_claim_description": "Automatikusan adjon rendszergazdai hozzáférést ennek az igénylésnek a jelenléte alapján. A kérelem lehet „felhasználó” vagy „rendszergazda”.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -849,9 +853,12 @@
|
||||
"create_link_to_share": "Megosztási link létrehozása",
|
||||
"create_link_to_share_description": "A kiválasztott fotókat mindenki láthassa, aki a linket használja",
|
||||
"create_new": "ÚJ LÉTREHOZÁSA",
|
||||
"create_new_face": "Új arc létrehozása",
|
||||
"create_new_person": "Új személy létrehozása",
|
||||
"create_new_person_hint": "Kiválasztott elemek új személyhez rendelése",
|
||||
"create_new_user": "Új felhasználó létrehozása",
|
||||
"create_person": "Új ember létrehozása",
|
||||
"create_person_subtitle": "Adj nevet a kijelölt arcnak az új személy létrehozásához és megjelöléséhez",
|
||||
"create_shared_album_page_share_add_assets": "ELEMEK HOZZÁADÁSA",
|
||||
"create_shared_album_page_share_select_photos": "Fotók választása",
|
||||
"create_shared_link": "Megosztott link létrehozása",
|
||||
@@ -878,15 +885,13 @@
|
||||
"cutoff_date_description": "Fotók megtartása az elmúlt…",
|
||||
"cutoff_day": "{count, plural, one {nap} other {nap}}",
|
||||
"cutoff_year": "{count, plural, one {év} other {év}}",
|
||||
"daily_title_text_date": "MMM dd (E)",
|
||||
"daily_title_text_date_year": "yyyy MMM dd (E)",
|
||||
"dark": "Sötét",
|
||||
"dark_theme": "Sötét témára váltás",
|
||||
"date": "Dátum",
|
||||
"date_after": "Dátumtól",
|
||||
"date_and_time": "Dátum és idő",
|
||||
"date_before": "Dátumig",
|
||||
"date_format": "y LLL d (E) • HH:mm",
|
||||
"date_of_birth": "Születési dátum",
|
||||
"date_of_birth_saved": "Születésnap sikeresen elmentve",
|
||||
"date_range": "Dátum intervallum",
|
||||
"day": "Nap",
|
||||
@@ -1233,6 +1238,7 @@
|
||||
"free_up_space_description": "Hely felszabadítása érdekében helyezze át a mentett fotókat és videókat az eszköz kukájába. A szerveren lévő másolatok biztonságban maradnak.",
|
||||
"free_up_space_settings_subtitle": "Eszköz tárhely felszabadítása",
|
||||
"full_path": "Teljes eléréi útvonal: {path}",
|
||||
"full_path_or_folder": "Teljes elérési út vagy mappa",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Ez a funkció a Google-től tölti be a működéséhez szükséges külső adatokat.",
|
||||
"general": "Általános",
|
||||
@@ -1389,11 +1395,13 @@
|
||||
"light_theme": "Világos témára váltás",
|
||||
"like": "Tetszik",
|
||||
"like_deleted": "Reakció törölve",
|
||||
"link": "Link",
|
||||
"link_motion_video": "Motion videó hozzárendelése",
|
||||
"link_to_docs": "További információért nézd meg a <link>dokumentációt</link>.",
|
||||
"link_to_oauth": "Csatlakoztatás OAuth-hoz",
|
||||
"linked_oauth_account": "Csatlakoztatott OAuth fiók",
|
||||
"list": "Lista",
|
||||
"live": "Élő",
|
||||
"loading": "Betöltés",
|
||||
"loading_search_results_failed": "Keresési eredmények betöltése sikertelen",
|
||||
"local": "Helyi",
|
||||
@@ -1515,13 +1523,45 @@
|
||||
"marked_all_as_read": "Összes megjelölve olvasottként",
|
||||
"matches": "Azonosak",
|
||||
"matching_assets": "Kapcsolódó elemek",
|
||||
"media_chrome": {
|
||||
"auto": "Automatikus",
|
||||
"captions": "Feliratok",
|
||||
"captions_off": "Ki",
|
||||
"closed_captions": "feliratok",
|
||||
"decode_error": "Dekódolási hiba",
|
||||
"disable_captions": "Feliratok kikapcsolása",
|
||||
"enable_captions": "Feliratok bekapcsolása",
|
||||
"enter_fullscreen_mode": "Teljes képernyős mód bekapcsolása",
|
||||
"exit_fullscreen_mode": "Teljes képernyős mód kikapcsolása",
|
||||
"loop": "Ismétel",
|
||||
"media_error_description": "Médiahiba miatt a lejátszás megszakadt. Lehet, hogy a fájl sérült, vagy a böngésző nem támogatja ezt a formátumot.",
|
||||
"media_loading": "média betöltése",
|
||||
"mute": "Némít",
|
||||
"network_error": "Hálózati hiba",
|
||||
"network_error_description": "Hálózati hiba miatt a média letöltése nem sikerült.",
|
||||
"not_supported_error": "Nem támogatott forrás",
|
||||
"playback_rate": "Lejátszási sebesség",
|
||||
"playback_rate_current": "aktuális lejátszási sebesség",
|
||||
"playback_rate_value": "Lejátszási sebesség {playbackRate}",
|
||||
"playback_time": "lejátszási idő",
|
||||
"quality": "Minőség",
|
||||
"second": "másodperc",
|
||||
"seconds": "másodperc",
|
||||
"time_value_of_total_time": "{currentTime} a {totalTime}-ből",
|
||||
"time_value_remaining": "{time} van hátra",
|
||||
"unmute": "Némítás kikapcsolása",
|
||||
"unsupported_error_description": "Nem támogatott hiba történt. A szerver vagy a hálózat meghibásodott, vagy a böngésző nem támogatja ezt a formátumot.",
|
||||
"video_not_loaded_unknown_time": "A videó nem töltődött be, ismeretlen hossz.",
|
||||
"video_player": "videó lejátszó",
|
||||
"volume": "hangerő"
|
||||
},
|
||||
"media_type": "Médiatípus",
|
||||
"memories": "Emlékek",
|
||||
"memories_all_caught_up": "Naprakész vagy",
|
||||
"memories_check_back_tomorrow": "Nézz vissza holnap újabb emlékekért",
|
||||
"memories_setting_description": "Állítsd be, hogy mik jelenjenek meg az emlékeid közt",
|
||||
"memories_start_over": "Újrakezdés",
|
||||
"memories_swipe_to_close": "Bezáráshoz söpörd ki felfelé",
|
||||
"memories_swipe_to_close": "A bezáráshoz húzd felfelé a képernyőt",
|
||||
"memory": "Emlék",
|
||||
"memory_lane_title": "Emlékek {title}",
|
||||
"menu": "Menü",
|
||||
@@ -1541,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Töltse le a kiegészítő mobilalkalmazást az alábbi opciók segítségével",
|
||||
"model": "Modell",
|
||||
"month": "Hónap",
|
||||
"monthly_title_text_date_format": "y MMMM",
|
||||
"more": "Továbbiak",
|
||||
"motion": "Mozgás",
|
||||
"move": "Áthelyezés",
|
||||
"move_down": "Lejjebb",
|
||||
"move_off_locked_folder": "Átmozgatás a zárolt mappából",
|
||||
@@ -1559,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Csak-olvasható elem(ek) helye nem módosítható, ezért kihagyjuk",
|
||||
"mute_memories": "Emlékek elnémítása",
|
||||
"my_albums": "Saját albumaim",
|
||||
"my_immich_description": "Az aktuális oldal másolása Én Immich-em linkként",
|
||||
"my_immich_title": "Én Immich-em link",
|
||||
"name": "Név",
|
||||
"name_or_nickname": "Név vagy becenév",
|
||||
"name_required": "Kötelező megadni egy nevet",
|
||||
@@ -1850,6 +1892,7 @@
|
||||
"remove_assets_title": "Elemek eltávolítása?",
|
||||
"remove_custom_date_range": "Egyéni időintervallum eltávolítása",
|
||||
"remove_deleted_assets": "Törölt elemek eltávolítása",
|
||||
"remove_filter": "Szűrő eltávolítása",
|
||||
"remove_from_album": "Eltávolítás az albumból",
|
||||
"remove_from_album_action_prompt": "{count} eltávolítva az albumból",
|
||||
"remove_from_favorites": "Eltávolítás a kedvencekből",
|
||||
@@ -1923,6 +1966,8 @@
|
||||
"scan_settings": "Átfésülési beállítások",
|
||||
"scanning": "Átfésülés folyamatban",
|
||||
"scanning_for_album": "Albumok átfésülése...",
|
||||
"screencast_mode_description": "Billentyűzet és egér esemény megjelenítése a képernyőn",
|
||||
"screencast_mode_title": "Screencast mód kapcsolása",
|
||||
"search": "Keresés",
|
||||
"search_albums": "Albumok keresése",
|
||||
"search_by_context": "Keresés tartalom alapján",
|
||||
@@ -1930,6 +1975,8 @@
|
||||
"search_by_description_example": "Túrázós nap Szapában",
|
||||
"search_by_filename": "Keresés fájlnév vagy kiterjesztés alapján",
|
||||
"search_by_filename_example": "például IMG_1234.JPG vagy PNG",
|
||||
"search_by_full_path": "Keresés teljes elérési út vagy mappa alapján",
|
||||
"search_by_full_path_example": "/Jancsi/Projektek/3D_nyomtatás/2026-07-01 – kereshetsz a Projektek, 3D, Nyomtatás, 2026 stb. kifejezésekre.",
|
||||
"search_by_ocr": "Keresés szövegfelismeréssel (OCR)",
|
||||
"search_by_ocr_example": "Latte",
|
||||
"search_camera_lens_model": "Keresés objektívmodell alapján...",
|
||||
@@ -2145,6 +2192,7 @@
|
||||
"show_schema": "Séma megjelenítése",
|
||||
"show_search_options": "Keresési beállítások megjelenítése",
|
||||
"show_shared_links": "Megosztott linkek megjelenítése",
|
||||
"show_slideshow_metadata_overlay": "Képadatok megjelenítése",
|
||||
"show_slideshow_transition": "Vetítés áttűnési effektus megjelenítése",
|
||||
"show_supporter_badge": "Támogató jelvény",
|
||||
"show_supporter_badge_description": "Támogató jelvény megjelenítése",
|
||||
@@ -2160,6 +2208,9 @@
|
||||
"skip_to_folders": "Ugrás a mappákhoz",
|
||||
"skip_to_tags": "Ugrás a címkékhez",
|
||||
"slideshow": "Diavetítés",
|
||||
"slideshow_metadata_overlay_mode": "Képadatok tartalma",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Csak leírás",
|
||||
"slideshow_metadata_overlay_mode_full": "Teljes",
|
||||
"slideshow_repeat": "Diavetítés ismétlése",
|
||||
"slideshow_repeat_description": "Ha a diavetítés véget ér, újraindul az elejétől",
|
||||
"slideshow_settings": "Diavetítés beállításai",
|
||||
@@ -2211,9 +2262,12 @@
|
||||
"sync_status": "Szinkronizálás állapota",
|
||||
"sync_status_subtitle": "Szinkronizálás megtekintése és kezelése",
|
||||
"sync_upload_album_setting_subtitle": "Fotók és videók létrehozása és szinkronizálása a kiválasztott Immich albumokba",
|
||||
"system_theme": "Rendszer téma",
|
||||
"system_theme_command_description": "Rendszer téma használata ({value})",
|
||||
"tag": "Címke",
|
||||
"tag_assets": "Elemek címkézése",
|
||||
"tag_created": "Létrehozott címke: {tag}",
|
||||
"tag_face": "Arc címkézése",
|
||||
"tag_feature_description": "Fényképek és videók böngészése a címkék témája szerint csoportosítva",
|
||||
"tag_not_found_question": "Nem találod a címkét? <link>Hozz létre egy újat.</link>",
|
||||
"tag_people": "Emberek címkézése",
|
||||
@@ -2421,6 +2475,7 @@
|
||||
"workflows": "Folyamatok",
|
||||
"workflows_help_text": "A folyamatok automatizált műveleteket hajtanak végre elemeken, indítási feltételek és szűrők alapján",
|
||||
"wrong_pin_code": "Hibás PIN kód",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Év",
|
||||
"years_ago": "{years, plural, one {# évvel} other {# évvel}} ezelőtt",
|
||||
"yes": "Igen",
|
||||
|
||||
@@ -54,7 +54,6 @@
|
||||
"curated_object_page_title": "Բաներ",
|
||||
"current_pin_code": "Տվյալ ՊԻՆ կոդը",
|
||||
"current_server_address": "Ընթացիկ սերվերի հասցե",
|
||||
"daily_title_text_date": "E, MMM dd",
|
||||
"dark": "Մութ",
|
||||
"dark_theme": "Միացնել/անջատել մուգ տեսքը",
|
||||
"day": "Օր",
|
||||
|
||||
+47
-4
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Aktifkan notifikasi email",
|
||||
"notification_settings": "Pengaturan Notifikasi",
|
||||
"notification_settings_description": "Kelola pengaturan notifikasi, termasuk email",
|
||||
"oauth_allow_insecure_requests": "Izinkan permintaan tidak aman",
|
||||
"oauth_allow_insecure_requests_description": "PERINGATAN: Ini menonaktifkan validasi sertifikat TLS untuk permintaan OAuth dan dapat membuat Anda rentan terhadap serangan MITM.",
|
||||
"oauth_auto_launch": "Peluncuran otomatis",
|
||||
"oauth_auto_launch_description": "Mulai alur log masuk OAuth secara otomatis setelah menuju ke halaman log masuk",
|
||||
"oauth_auto_register": "Pendaftaran otomatis",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Teks tombol",
|
||||
"oauth_client_secret_description": "Diperlukan untuk klien yang konfidensial, atau jika PKCE (Proof Key for Code Exchange) tidak didukung untuk klien umum.",
|
||||
"oauth_enable_description": "Log masuk dengan OAuth",
|
||||
"oauth_end_session_url_description": "Arahkan pengguna ke URI ini saat mereka keluar.",
|
||||
"oauth_mobile_redirect_uri": "URI pengalihan ponsel",
|
||||
"oauth_mobile_redirect_uri_override": "Penimpaan URI penerusan ponsel",
|
||||
"oauth_mobile_redirect_uri_override_description": "Aktifkan ketika penyedia OAuth tidak mengizinkan tautan ponsel, seperti ''{callback}''",
|
||||
"oauth_prompt_description": "Parameter prompt (mis. select_account, login, consent)",
|
||||
"oauth_role_claim": "Klaim Peran",
|
||||
"oauth_role_claim_description": "Secara otomatis memberikan akses admin berdasarkan keberadaan klaim ini. Klaim dapat berupa \"user\" atau \"admin\".",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,12 @@
|
||||
"cutoff_date_description": "Simpan foto dari … terakhir",
|
||||
"cutoff_day": "{count, plural, one {hari} other {hari}}",
|
||||
"cutoff_year": "{count, plural, one {tahun} other {tahun}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM yyyy",
|
||||
"dark": "Gelap",
|
||||
"dark_theme": "Beralih ke tema gelap",
|
||||
"date": "Tanggal",
|
||||
"date_after": "Tanggal setelah",
|
||||
"date_and_time": "Tanggal dan Waktu",
|
||||
"date_before": "Tanggal sebelum",
|
||||
"date_format": "E, d LLL y • HH:mm",
|
||||
"date_of_birth_saved": "Tanggal lahir berhasil disimpan",
|
||||
"date_range": "Rentang tanggal",
|
||||
"day": "Hari",
|
||||
@@ -1236,6 +1237,7 @@
|
||||
"free_up_space_description": "Pindahkan foto dan video yang dicadangkan ke tempat sampah perangkat Anda untuk mengosongkan ruang. Salinan Anda di server tetap aman.",
|
||||
"free_up_space_settings_subtitle": "Kosongkan penyimpanan perangkat",
|
||||
"full_path": "Jalur lengkap: {path}",
|
||||
"full_path_or_folder": "Jalur lengkap atau folder",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Fitur ini memuat sumber daya eksternal dari Google agar dapat berfungsi.",
|
||||
"general": "Umum",
|
||||
@@ -1392,6 +1394,7 @@
|
||||
"light_theme": "Ganti ke mode terang",
|
||||
"like": "Suka",
|
||||
"like_deleted": "Suka dihapus",
|
||||
"link": "Tautan",
|
||||
"link_motion_video": "Tautan video gerak",
|
||||
"link_to_docs": "Untuk informasi lebih lanjut, silakan lihat <link>dokumentasi</link>.",
|
||||
"link_to_oauth": "Tautkan ke OAuth",
|
||||
@@ -1518,6 +1521,38 @@
|
||||
"marked_all_as_read": "Semua telah ditandai sebagai telah dibaca",
|
||||
"matches": "Yang Cocok",
|
||||
"matching_assets": "Aset yang Cocok",
|
||||
"media_chrome": {
|
||||
"auto": "Otomatis",
|
||||
"captions": "Teks terjemahan",
|
||||
"captions_off": "Mati",
|
||||
"closed_captions": "teks terjemahan tertutup",
|
||||
"decode_error": "Kesalahan dekode",
|
||||
"disable_captions": "Nonaktifkan teks terjemahan",
|
||||
"enable_captions": "Aktifkan teks terjemahan",
|
||||
"enter_fullscreen_mode": "Masuk mode layar penuh",
|
||||
"exit_fullscreen_mode": "Keluar dari mode layar penuh",
|
||||
"loop": "Ulangi",
|
||||
"media_error_description": "Kesalahan media menyebabkan pemutaran dihentikan. Media mungkin rusak atau browser Anda tidak mendukung format ini.",
|
||||
"media_loading": "memuat media",
|
||||
"mute": "Bisukan",
|
||||
"network_error": "Kesalahan jaringan",
|
||||
"network_error_description": "Kesalahan jaringan menyebabkan pengunduhan media gagal.",
|
||||
"not_supported_error": "Sumber Tidak Didukung",
|
||||
"playback_rate": "Kecepatan putar",
|
||||
"playback_rate_current": "kecepatan putar saat ini",
|
||||
"playback_rate_value": "Kecepatan putar {playbackRate}",
|
||||
"playback_time": "waktu pemutaran",
|
||||
"quality": "Kualitas",
|
||||
"second": "detik",
|
||||
"seconds": "detik",
|
||||
"time_value_of_total_time": "{currentTime} dari {totalTime}",
|
||||
"time_value_remaining": "{time} tersisa",
|
||||
"unmute": "Bunyikan",
|
||||
"unsupported_error_description": "Terjadi kesalahan yang tidak didukung. Server atau jaringan gagal, atau browser Anda tidak mendukung format ini.",
|
||||
"video_not_loaded_unknown_time": "video belum dimuat, waktu tidak diketahui.",
|
||||
"video_player": "pemutar video",
|
||||
"volume": "volume"
|
||||
},
|
||||
"media_type": "Jenis media",
|
||||
"memories": "Kenangan",
|
||||
"memories_all_caught_up": "Semua telah dilihat",
|
||||
@@ -1544,7 +1579,6 @@
|
||||
"mobile_app_download_onboarding_note": "Unduh aplikasi seluler pendamping dengan menggunakan opsi berikut",
|
||||
"model": "Model",
|
||||
"month": "Bulan",
|
||||
"monthly_title_text_date_format": "BBBB t",
|
||||
"more": "Lainnya",
|
||||
"move": "Pindahkan",
|
||||
"move_down": "Pindahkan ke bawah",
|
||||
@@ -1562,6 +1596,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Tidak dapat mengedit lokasi aset hanya-baca, dilewati",
|
||||
"mute_memories": "Nonaktifkan Kenangan",
|
||||
"my_albums": "Album saya",
|
||||
"my_immich_description": "Salin halaman saat ini sebagai tautan My Immich",
|
||||
"my_immich_title": "Tautan My Immich",
|
||||
"name": "Nama",
|
||||
"name_or_nickname": "Nama atau nama panggilan",
|
||||
"name_required": "Nama diperlukan",
|
||||
@@ -1926,6 +1962,8 @@
|
||||
"scan_settings": "Pengaturan Pemindaian",
|
||||
"scanning": "Memindai",
|
||||
"scanning_for_album": "Memindai album...",
|
||||
"screencast_mode_description": "Tampilkan indikator peristiwa keyboard dan mouse di layar",
|
||||
"screencast_mode_title": "Aktifkan/nonaktifkan mode siaran layar",
|
||||
"search": "Cari",
|
||||
"search_albums": "Cari album",
|
||||
"search_by_context": "Cari berdasarkan konteks",
|
||||
@@ -1933,6 +1971,8 @@
|
||||
"search_by_description_example": "Mendaki Bromo",
|
||||
"search_by_filename": "Cari berdasarkan nama file atau ekstensi",
|
||||
"search_by_filename_example": "mis. IMG_1234.JPG atau PNG",
|
||||
"search_by_full_path": "Cari berdasarkan jalur lengkap atau folder",
|
||||
"search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - Anda dapat mencari Projects, 3D, Printing, 2026, dll.",
|
||||
"search_by_ocr": "Cari dengan OCR",
|
||||
"search_by_ocr_example": "Latte",
|
||||
"search_camera_lens_model": "Cari model lensa...",
|
||||
@@ -2214,6 +2254,8 @@
|
||||
"sync_status": "Status Sinkronisasi",
|
||||
"sync_status_subtitle": "Lihat dan kelola sistem sinkronisasi",
|
||||
"sync_upload_album_setting_subtitle": "Buat dan unggah foto serta video Anda ke album yang telah dipilih pada Immich",
|
||||
"system_theme": "Tema sistem",
|
||||
"system_theme_command_description": "Gunakan tema sistem ({value})",
|
||||
"tag": "Tag",
|
||||
"tag_assets": "Tag aset",
|
||||
"tag_created": "Tag yang dibuat: {tag}",
|
||||
@@ -2425,6 +2467,7 @@
|
||||
"workflows": "Alur kerja",
|
||||
"workflows_help_text": "Alur kerja untuk otomasi kegiatan pada aset Anda sesuai dengan pemicu dan filter",
|
||||
"wrong_pin_code": "Kode PIN salah",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Tahun",
|
||||
"years_ago": "{years, plural, one {# tahun} other {# tahun}} lalu",
|
||||
"yes": "Ya",
|
||||
|
||||
+57
-6
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Attiva notifiche via email",
|
||||
"notification_settings": "Impostazioni Notifiche",
|
||||
"notification_settings_description": "Gestisci le impostazioni di notifica, incluse le email",
|
||||
"oauth_allow_insecure_requests": "Consenti richieste non sicure",
|
||||
"oauth_allow_insecure_requests_description": "ATTENZIONE: Questo disabilita la validazione del certificato TLS per richieste OAuth e potrebbe esporti ad attacchi MITM.",
|
||||
"oauth_auto_launch": "Avvio automatico",
|
||||
"oauth_auto_launch_description": "Esegui il flusso di autenticazione OAuth automaticamente navigando sulla pagina di login",
|
||||
"oauth_auto_register": "Registrazione automatica",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Testo pulsante",
|
||||
"oauth_client_secret_description": "Richiesto per client confidenziali o se PKCE (Proof Key for Code Exchange) non è supportato dal client pubblico.",
|
||||
"oauth_enable_description": "Login con OAuth",
|
||||
"oauth_end_session_url_description": "Reindirizza l'utente a questo URI quando si disconnettono.",
|
||||
"oauth_mobile_redirect_uri": "URI di reindirizzamento per app mobile",
|
||||
"oauth_mobile_redirect_uri_override": "Sovrascrivi URI di reindirizzamento per app mobile",
|
||||
"oauth_mobile_redirect_uri_override_description": "Abilita quando il gestore OAuth non consente un URL come ''{callback}''",
|
||||
"oauth_prompt_description": "Parametri del prompt (es. select_account, login, consent)",
|
||||
"oauth_role_claim": "Claim del ruolo",
|
||||
"oauth_role_claim_description": "Concedi automaticamente l'accesso come amministratore in base alla presenza di questo claim. Il claim può essere 'user' o 'admin'.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -351,7 +355,7 @@
|
||||
"template_settings": "Templates Notifiche",
|
||||
"template_settings_description": "Gestisci i modelli personalizzati per le notifiche",
|
||||
"theme_custom_css_settings": "CSS Personalizzato",
|
||||
"theme_custom_css_settings_description": "I fogli di stile CSS consentono di personalizzare il design di Immich.",
|
||||
"theme_custom_css_settings_description": "I fogli di stile CSS consentono di personalizzare la grafica di Immich.",
|
||||
"theme_settings": "Impostazioni Tema",
|
||||
"theme_settings_description": "Gestisci la personalizzazione dell'interfaccia web di Immich",
|
||||
"thumbnail_generation_job": "Genera Anteprime",
|
||||
@@ -526,7 +530,7 @@
|
||||
"allowed": "Consentito",
|
||||
"alt_text_qr_code": "Immagine QR",
|
||||
"always_keep": "Mantieni sempre",
|
||||
"always_keep_photos_hint": "Liberare spazio manterrà tutte le foto su questo dispositivo.",
|
||||
"always_keep_photos_hint": "Libera Spazio mantiene tutte le foto su questo dispositivo.",
|
||||
"always_keep_videos_hint": "Libera Spazio mantiene tutti i video su questo dispositivo.",
|
||||
"anti_clockwise": "Senso anti-orario",
|
||||
"api_key": "Chiave API",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Mantieni le foto fino al…",
|
||||
"cutoff_day": "{count, plural, one {giorno} other {giorni}}",
|
||||
"cutoff_year": "{count, plural, one {anno} other {anni}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Scuro",
|
||||
"dark_theme": "Imposta tema scuro",
|
||||
"date": "Data",
|
||||
"date_after": "Dopo la data",
|
||||
"date_and_time": "Data e ora",
|
||||
"date_before": "Prima della data",
|
||||
"date_format": "E, d LLL, y • hh:mm",
|
||||
"date_of_birth": "Data di nascita",
|
||||
"date_of_birth_saved": "Data di nascita salvata con successo",
|
||||
"date_range": "Intervallo di date",
|
||||
"day": "Giorno",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Sposta le foto e i video del tuo dispositivo nel cestino per liberare spazio. Le copie sul server rimarranno al sicuro.",
|
||||
"free_up_space_settings_subtitle": "Libera spazio sul dispositivo",
|
||||
"full_path": "Percorso completo: {path}",
|
||||
"full_path_or_folder": "Percorso assoluto o Cartella",
|
||||
"gcast_enabled": "Google Cast Abilitato",
|
||||
"gcast_enabled_description": "Questa funzione carica risorse esterne da Google per poter funzionare.",
|
||||
"general": "Generale",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Cambia a tema chiaro",
|
||||
"like": "Mi piace",
|
||||
"like_deleted": "Mi piace rimosso",
|
||||
"link": "Link",
|
||||
"link_motion_video": "Collega video in movimento",
|
||||
"link_to_docs": "Per maggiori informazioni, riferirsi al <link>documentazione</link>.",
|
||||
"link_to_oauth": "Collegamento a OAuth",
|
||||
"linked_oauth_account": "Account OAuth collegato",
|
||||
"list": "Lista",
|
||||
"live": "Live",
|
||||
"loading": "Caricamento",
|
||||
"loading_search_results_failed": "Impossibile caricare i risultati della ricerca",
|
||||
"local": "Locale",
|
||||
@@ -1518,6 +1523,38 @@
|
||||
"marked_all_as_read": "Segnato tutto come letto",
|
||||
"matches": "Corrispondenze",
|
||||
"matching_assets": "Risorse Corrispondenti",
|
||||
"media_chrome": {
|
||||
"auto": "Auto",
|
||||
"captions": "Didascalie",
|
||||
"captions_off": "Spento",
|
||||
"closed_captions": "sottotitoli",
|
||||
"decode_error": "Errore di decodifica",
|
||||
"disable_captions": "Disattiva didascalie",
|
||||
"enable_captions": "Attiva didascalie",
|
||||
"enter_fullscreen_mode": "Passa alla modalità a schermo intero",
|
||||
"exit_fullscreen_mode": "Esci dalla modalità a schermo intero",
|
||||
"loop": "Ciclo",
|
||||
"media_error_description": "Si è verificato un errore nel file multimediale che ha interrotto la riproduzione. Il file potrebbe essere danneggiato oppure il tuo browser non supporta questo formato.",
|
||||
"media_loading": "Caricamento dei contenuti multimediali",
|
||||
"mute": "Silenzioso",
|
||||
"network_error": "Errore di rete",
|
||||
"network_error_description": "A causa di un errore di rete, il download del file non è andato a buon fine.",
|
||||
"not_supported_error": "Sorgente non supportata",
|
||||
"playback_rate": "Velocità di riproduzione",
|
||||
"playback_rate_current": "Velocità di riproduzione corrente",
|
||||
"playback_rate_value": "Velocità di riproduzione {playbackRate}",
|
||||
"playback_time": "durata della riproduzione",
|
||||
"quality": "Qualità",
|
||||
"second": "secondo",
|
||||
"seconds": "Secondi",
|
||||
"time_value_of_total_time": "{currentTime} di {totalTime}",
|
||||
"time_value_remaining": "{time} rimanente",
|
||||
"unmute": "Riattiva l'audio",
|
||||
"unsupported_error_description": "Si è verificato un errore non supportato. Si è verificato un errore a livello di server o di rete, oppure il browser in uso non supporta questo formato.",
|
||||
"video_not_loaded_unknown_time": "video non caricato, tempo sconosciuto.",
|
||||
"video_player": "lettore video",
|
||||
"volume": "volume"
|
||||
},
|
||||
"media_type": "Tipo Media",
|
||||
"memories": "Ricordi",
|
||||
"memories_all_caught_up": "Tutto a posto",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Scarica l’app mobile dedicata utilizzando una delle seguenti opzioni",
|
||||
"model": "Modello",
|
||||
"month": "Mese",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Di più",
|
||||
"motion": "Movimento",
|
||||
"move": "Sposta",
|
||||
"move_down": "Muovi in basso",
|
||||
"move_off_locked_folder": "Sposta al di fuori della cartella privata",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Non puoi modificare la posizione di risorse in sola lettura, azione ignorata",
|
||||
"mute_memories": "Silenzia ricordi",
|
||||
"my_albums": "I miei album",
|
||||
"my_immich_description": "Copia la pagina corrente come un link My Immich",
|
||||
"my_immich_title": "Link My Immich",
|
||||
"name": "Nome",
|
||||
"name_or_nickname": "Nome o soprannome",
|
||||
"name_required": "Nome è richiesto",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "Rimuovo le risorse?",
|
||||
"remove_custom_date_range": "Rimuovi intervallo data personalizzato",
|
||||
"remove_deleted_assets": "Rimuovi le Risorse cancellate",
|
||||
"remove_filter": "Rimuovi filtro",
|
||||
"remove_from_album": "Rimuovere dall'album",
|
||||
"remove_from_album_action_prompt": "{count} elementi rimossi dall'album",
|
||||
"remove_from_favorites": "Rimuovi dai preferiti",
|
||||
@@ -1926,6 +1966,8 @@
|
||||
"scan_settings": "Impostazioni Analisi",
|
||||
"scanning": "Scansione in corso",
|
||||
"scanning_for_album": "Sto cercando l'album...",
|
||||
"screencast_mode_description": "Mostra indicatori di eventi mouse e tastiera sullo schermo",
|
||||
"screencast_mode_title": "Attiva/disattiva modalità screencast",
|
||||
"search": "Cerca",
|
||||
"search_albums": "Cerca album",
|
||||
"search_by_context": "Cerca con contesto",
|
||||
@@ -1933,6 +1975,8 @@
|
||||
"search_by_description_example": "Giornata di escursioni a Sapa",
|
||||
"search_by_filename": "Cerca per nome del file o estensione",
|
||||
"search_by_filename_example": "es. IMG_1234.JPG o PNG",
|
||||
"search_by_full_path": "Cerca per percorso completo o cartella",
|
||||
"search_by_full_path_example": "/Giovanni/Progetti/Stampa_3D/2026-07-01 - puoi cercare per Progetti, 3D, Stampa, 2026 ecc.",
|
||||
"search_by_ocr": "Ricerca tramite OCR",
|
||||
"search_by_ocr_example": "Caffè Latte",
|
||||
"search_camera_lens_model": "Cerca il modello del'obiettivo...",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Mostra lo schema",
|
||||
"show_search_options": "Mostra impostazioni di ricerca",
|
||||
"show_shared_links": "Mostra link condivisi",
|
||||
"show_slideshow_metadata_overlay": "Mostra metadati in sovrimpressione",
|
||||
"show_slideshow_transition": "Mostra la transizione della presentazione",
|
||||
"show_supporter_badge": "Medaglia di Contributore",
|
||||
"show_supporter_badge_description": "Mostra la medaglia di contributore",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Salta alle cartelle",
|
||||
"skip_to_tags": "Salta ai tag",
|
||||
"slideshow": "Presentazione",
|
||||
"slideshow_metadata_overlay_mode": "Contenuto dell'overlay",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Solo descrizione",
|
||||
"slideshow_metadata_overlay_mode_full": "Completo",
|
||||
"slideshow_repeat": "Ripeti presentazione",
|
||||
"slideshow_repeat_description": "Ricomincia da capo quando la presentazione termina",
|
||||
"slideshow_settings": "Impostazioni presentazione",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Stato di Sincronizzazione",
|
||||
"sync_status_subtitle": "Visualizza e gestisci il sistema di sincronizzazione",
|
||||
"sync_upload_album_setting_subtitle": "Crea e carica le tue foto e video sull'album selezionato in Immich",
|
||||
"system_theme": "Tema di sistema",
|
||||
"system_theme_command_description": "Utilizza il tema di sistema ({value})",
|
||||
"tag": "Tag",
|
||||
"tag_assets": "Tagga risorse",
|
||||
"tag_created": "Tag creato: {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Flussi di lavoro",
|
||||
"workflows_help_text": "I flussi di lavoro automatizzano azioni sulle tue risorse a seconda di eventi e filtri",
|
||||
"wrong_pin_code": "Codice PIN errato",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Anno",
|
||||
"years_ago": "{years, plural, one {# anno} other {# anni}} fa",
|
||||
"yes": "Sì",
|
||||
|
||||
+2
-5
@@ -267,6 +267,7 @@
|
||||
"notification_enable_email_notifications": "メール通知を有効にします",
|
||||
"notification_settings": "通知設定",
|
||||
"notification_settings_description": "メールを含む通知設定を管理します",
|
||||
"oauth_allow_insecure_requests": "安全ではないリクエストを許可する",
|
||||
"oauth_auto_launch": "自動起動",
|
||||
"oauth_auto_launch_description": "ログインページに移動すると、OAuthログインフローが自動的に開始されます",
|
||||
"oauth_auto_register": "自動登録",
|
||||
@@ -881,18 +882,15 @@
|
||||
"cutoff_date_description": "写真を保持する期間:",
|
||||
"cutoff_day": "{count, plural, one {(日)} other {(日)}}",
|
||||
"cutoff_year": "{count, plural, one {年} other {年}}",
|
||||
"daily_title_text_date": "MM DD, EE",
|
||||
"daily_title_text_date_year": "yyyy MM DD, EE",
|
||||
"dark": "ダークモード",
|
||||
"dark_theme": "ダークモードに切り替え",
|
||||
"date": "日付",
|
||||
"date_after": "この日以降",
|
||||
"date_and_time": "日付と時間",
|
||||
"date_before": "この日以前",
|
||||
"date_format": "MM DD, EE • hh:mm",
|
||||
"date_of_birth_saved": "生年月日は正常に保存されました",
|
||||
"date_range": "日付",
|
||||
"day": "ライトモード",
|
||||
"day": "日",
|
||||
"days": "日",
|
||||
"deduplicate_all": "全て重複排除",
|
||||
"default_locale": "デフォルトの言語と地域",
|
||||
@@ -1544,7 +1542,6 @@
|
||||
"mobile_app_download_onboarding_note": "以下のオプションを使用してコンパニオンモバイルアプリをダウンロードしてください",
|
||||
"model": "モデル",
|
||||
"month": "月",
|
||||
"monthly_title_text_date_format": "yyyy MM",
|
||||
"more": "もっと表示",
|
||||
"move": "移動",
|
||||
"move_down": "下へ",
|
||||
|
||||
+19
-4
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "이메일 알림 활성화",
|
||||
"notification_settings": "알림 설정",
|
||||
"notification_settings_description": "이메일을 포함한 알림 설정을 관리합니다.",
|
||||
"oauth_allow_insecure_requests": "비보안 요청 허용",
|
||||
"oauth_allow_insecure_requests_description": "경고: OAuth 요청에 대한 TLS 인증서 검증을 비활성화하여 중간자 공격에 노출될 수 있습니다.",
|
||||
"oauth_auto_launch": "자동 실행",
|
||||
"oauth_auto_launch_description": "로그인 페이지에 접근 시 OAuth 로그인 과정을 자동으로 진행",
|
||||
"oauth_auto_register": "자동 등록",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "버튼 텍스트",
|
||||
"oauth_client_secret_description": "비공개 클라이언트 또는 공개 클라이언트가 PKCE(Proof Key for Code Exchange, 코드 교환용 검증 키)를 지원하지 않는 경우 필요합니다.",
|
||||
"oauth_enable_description": "OAuth 로그인",
|
||||
"oauth_end_session_url_description": "로그아웃 리다이렉트 URI",
|
||||
"oauth_mobile_redirect_uri": "모바일 리다이렉트 URI",
|
||||
"oauth_mobile_redirect_uri_override": "모바일 리다이렉트 URI 오버라이드",
|
||||
"oauth_mobile_redirect_uri_override_description": "OAuth 공급자가 ''{callback}'' 등의 모바일 URI를 허용하지 않는 경우 활성화하세요.",
|
||||
"oauth_prompt_description": "프롬프트 파라미터 (예: select_account, login, consent)",
|
||||
"oauth_role_claim": "역할 클레임",
|
||||
"oauth_role_claim_description": "요청한 클레임을 사용자의 역할로 자동 설정합니다. 'user' 또는 'admin'을 선택할 수 있습니다.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,12 @@
|
||||
"cutoff_date_description": "선택한 기간의 사진을 유지합니다…",
|
||||
"cutoff_day": "{count, plural, one {일} other {일}}",
|
||||
"cutoff_year": "{count, plural, one {년} other {년}}",
|
||||
"daily_title_text_date": "M월 d일 EEEE",
|
||||
"daily_title_text_date_year": "yyyy년 M월 d일 EEEE",
|
||||
"dark": "다크",
|
||||
"dark_theme": "다크 테마 전환",
|
||||
"date": "날짜",
|
||||
"date_after": "다음 날짜 이후",
|
||||
"date_and_time": "날짜 및 시간",
|
||||
"date_before": "다음 날짜 전",
|
||||
"date_format": "yyyy년 M월 d일 EEEE • a h:mm",
|
||||
"date_of_birth_saved": "생년월일이 저장되었습니다.",
|
||||
"date_range": "날짜 범위",
|
||||
"day": "일",
|
||||
@@ -1236,6 +1237,7 @@
|
||||
"free_up_space_description": "백업된 사진과 동영상을 기기의 휴지통으로 이동하여 저장 공간을 확보하세요. 원본 파일은 서버에 안전하게 보관됩니다.",
|
||||
"free_up_space_settings_subtitle": "기기의 저장 공간을 확보합니다.",
|
||||
"full_path": "전체 경로: {path}",
|
||||
"full_path_or_folder": "전체 경로 또는 폴더",
|
||||
"gcast_enabled": "구글 캐스트",
|
||||
"gcast_enabled_description": "이 기능은 Google의 외부 리소스를 사용합니다.",
|
||||
"general": "일반",
|
||||
@@ -1392,6 +1394,7 @@
|
||||
"light_theme": "라이트 테마로 전환",
|
||||
"like": "좋아요",
|
||||
"like_deleted": "좋아요가 삭제되었습니다.",
|
||||
"link": "링크",
|
||||
"link_motion_video": "모션 비디오 링크",
|
||||
"link_to_docs": "자세한 내용은 <link>문서</link>를 참조하십시오.",
|
||||
"link_to_oauth": "OAuth에 연결",
|
||||
@@ -1518,6 +1521,10 @@
|
||||
"marked_all_as_read": "모두 읽음으로 표시했습니다.",
|
||||
"matches": "일치",
|
||||
"matching_assets": "일치하는 항목",
|
||||
"media_chrome": {
|
||||
"auto": "자동",
|
||||
"captions": "자막"
|
||||
},
|
||||
"media_type": "미디어 종류",
|
||||
"memories": "추억",
|
||||
"memories_all_caught_up": "모두 확인함",
|
||||
@@ -1544,7 +1551,6 @@
|
||||
"mobile_app_download_onboarding_note": "다음 옵션 중 하나를 사용해 모바일 앱을 다운로드하세요.",
|
||||
"model": "모델",
|
||||
"month": "월",
|
||||
"monthly_title_text_date_format": "yyyy년 M월",
|
||||
"more": "더보기",
|
||||
"move": "이동",
|
||||
"move_down": "아래로 이동",
|
||||
@@ -1562,6 +1568,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "읽기 전용인 항목의 위치는 변경할 수 없어 건너뜁니다.",
|
||||
"mute_memories": "추억 음소거",
|
||||
"my_albums": "내 앨범",
|
||||
"my_immich_description": "현재 페이지를 Immich 링크로 복사",
|
||||
"my_immich_title": "내 Immich 링크",
|
||||
"name": "이름",
|
||||
"name_or_nickname": "이름 또는 닉네임",
|
||||
"name_required": "이름은 필수 입력 사항입니다",
|
||||
@@ -1926,6 +1934,8 @@
|
||||
"scan_settings": "스캔 설정",
|
||||
"scanning": "스캔 중",
|
||||
"scanning_for_album": "앨범을 스캔하는 중...",
|
||||
"screencast_mode_description": "화면에 키보드 및 마우스 이벤트 표시기를 표시",
|
||||
"screencast_mode_title": "스크린캐스트 모드 토글",
|
||||
"search": "검색",
|
||||
"search_albums": "앨범 검색",
|
||||
"search_by_context": "문맥 기반 검색",
|
||||
@@ -2214,9 +2224,12 @@
|
||||
"sync_status": "동기화 상태",
|
||||
"sync_status_subtitle": "동기화 시스템 확인 및 관리",
|
||||
"sync_upload_album_setting_subtitle": "선택한 앨범을 Immich에 생성하고 사진 및 동영상 업로드",
|
||||
"system_theme": "시스템 테마",
|
||||
"system_theme_command_description": "시스템 테마 사용({value})",
|
||||
"tag": "태그",
|
||||
"tag_assets": "항목 태그",
|
||||
"tag_created": "태그 생성됨: {tag}",
|
||||
"tag_face": "얼굴 태그 부여",
|
||||
"tag_feature_description": "태그 주제별로 그룹화된 사진과 동영상 탐색",
|
||||
"tag_not_found_question": "태그를 찾을 수 없나요? <link>새 태그를 생성하세요.</link>",
|
||||
"tag_people": "인물 태그",
|
||||
@@ -2242,6 +2255,7 @@
|
||||
"theme_setting_theme_subtitle": "앱 테마 선택",
|
||||
"theme_setting_three_stage_loading_subtitle": "3단계 로딩을 사용하면 로드 성능을 향상시킬 수 있으나, 네트워크 부하가 크게 증가합니다.",
|
||||
"theme_setting_three_stage_loading_title": "3단계 로드 활성화",
|
||||
"then": "그다음",
|
||||
"they_will_be_merged_together": "선택한 인물들을 한 인물로 합칩니다.",
|
||||
"third_party_resources": "서드 파티 리소스",
|
||||
"time": "시간",
|
||||
@@ -2423,6 +2437,7 @@
|
||||
"workflows": "워크플로",
|
||||
"workflows_help_text": "워크플로는 트리거와 필터를 기반으로 자산에 대한 작업을 자동화합니다",
|
||||
"wrong_pin_code": "잘못된 PIN 코드",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "년",
|
||||
"years_ago": "{years, plural, one {#년} other {#년}} 전",
|
||||
"yes": "네",
|
||||
|
||||
+55
-4
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Įgalinti el. pašto pranešimus",
|
||||
"notification_settings": "Pranešimų nustatymai",
|
||||
"notification_settings_description": "Tvarkyti pranešimų nustatymus, įskaitant el. pašto",
|
||||
"oauth_allow_insecure_requests": "Leisti nesaugias užklausas",
|
||||
"oauth_allow_insecure_requests_description": "ĮSPĖJIMAS: Tai išjungia TLS sertifikato patvirtinimą OAuth užklausoms ir gali suteikti MITM atakų galimybę.",
|
||||
"oauth_auto_launch": "Paleisti automatiškai",
|
||||
"oauth_auto_launch_description": "Prisijungimo puslapyje automatiškai pradėti OAuth prisijungimo procesą",
|
||||
"oauth_auto_register": "Automatinis registravimas",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Mygtuko tekstas",
|
||||
"oauth_client_secret_description": "Privalomas konfidencialaus kliento, arba jei viešasis klientas nepalaiko PKCE (Proof Key for Code Exchange).",
|
||||
"oauth_enable_description": "Prisijungti su OAuth",
|
||||
"oauth_end_session_url_description": "Nukreipkite vartotoją į šį URI, kai jie atsijungia.",
|
||||
"oauth_mobile_redirect_uri": "Mobiliojo peradresavimo URI",
|
||||
"oauth_mobile_redirect_uri_override": "Mobiliojo peradresavimo URI pakeitimas",
|
||||
"oauth_mobile_redirect_uri_override_description": "Įjunkite, kai OAuth teikėjas nepalaiko mobiliojo URI, tokio kaip ''{callback}''",
|
||||
"oauth_prompt_description": "Užklausos parametras (pvz., select_account, prisijungti, sutikti)",
|
||||
"oauth_role_claim": "Rolės Tvirtinimas",
|
||||
"oauth_role_claim_description": "Suteikti admin teises automatiškai pagal šios rolės tvirtinimo buvimą. Tvirtinimas gali turėti priskirtus arba 'vartotoją' arba 'admin'.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Išsaugoti nuotraukas iš paskutinės…",
|
||||
"cutoff_day": "{count, plural, one {diena} other {dienos}}",
|
||||
"cutoff_year": "{count, plural, one {metai} other {metai}}",
|
||||
"daily_title_text_date": "E, MMM dd",
|
||||
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||
"dark": "Tamsi",
|
||||
"dark_theme": "Perjungti į tamsią temą",
|
||||
"date": "Data",
|
||||
"date_after": "Data po",
|
||||
"date_and_time": "Data ir laikas",
|
||||
"date_before": "Data prieš",
|
||||
"date_format": "E, LLL d, y • h:mm",
|
||||
"date_of_birth": "Gimimo data",
|
||||
"date_of_birth_saved": "Gimimo data sėkmingai išsaugota",
|
||||
"date_range": "Datų intervalas",
|
||||
"day": "Diena",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Perkelkite atsargines nuotraukų ir vaizdo įrašų kopijas į įrenginio šiukšliadėžę, kad atlaisvintumėte vietos. Jūsų kopijos serveryje lieka saugios.",
|
||||
"free_up_space_settings_subtitle": "Atlaisvinkite vietos įrenginyje",
|
||||
"full_path": "Pilnas kelias: {path}",
|
||||
"full_path_or_folder": "Pilnas kelias ar aplankas",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Kad veiktų, ši funkcija įkelia išorinius „Google“ išteklius.",
|
||||
"general": "Bendri",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Perjungti į šviesią temą",
|
||||
"like": "Patinka",
|
||||
"like_deleted": "Patinka panaikintas",
|
||||
"link": "Nuoroda",
|
||||
"link_motion_video": "Susieti judesio vaizdo įrašą",
|
||||
"link_to_docs": "Daugiau informacijos rasite <link>dokumentacijoje</link>.",
|
||||
"link_to_oauth": "Susieti su OAuth",
|
||||
"linked_oauth_account": "Susieta OAuth paskyra",
|
||||
"list": "Sąrašas",
|
||||
"live": "Tiesiogiai",
|
||||
"loading": "Kraunama",
|
||||
"loading_search_results_failed": "Nepavyko užkrauti paieškos rezultatų",
|
||||
"local": "Vietinis",
|
||||
@@ -1518,6 +1523,38 @@
|
||||
"marked_all_as_read": "Viskas pažymėta kaip perskaityta",
|
||||
"matches": "Atitikmenys",
|
||||
"matching_assets": "Atitinkantys elementai",
|
||||
"media_chrome": {
|
||||
"auto": "Auto",
|
||||
"captions": "Subtitrai",
|
||||
"captions_off": "Išjungta",
|
||||
"closed_captions": "uždarieji subtitrai",
|
||||
"decode_error": "Dekodavimo klaida",
|
||||
"disable_captions": "Išjungti subtitrus",
|
||||
"enable_captions": "Įjungti subtitrus",
|
||||
"enter_fullscreen_mode": "Pilno ekrano režimas",
|
||||
"exit_fullscreen_mode": "Išeiti iš pilno ekrano režimo",
|
||||
"loop": "Kartoti",
|
||||
"media_error_description": "Dėl medijos klaidos atkūrimas buvo nutrauktas. Medija gali būti sugadinta arba jūsų naršyklė nepalaiko šio formato.",
|
||||
"media_loading": "medijos įkėlimas",
|
||||
"mute": "Nutildyti",
|
||||
"network_error": "Tinklo klaida",
|
||||
"network_error_description": "Dėl tinklo klaidos nepavyko atsisiųsti medijos.",
|
||||
"not_supported_error": "Šaltinis Nepalaikomas",
|
||||
"playback_rate": "Grojimo dažnis",
|
||||
"playback_rate_current": "dabartinis grojimo dažnis",
|
||||
"playback_rate_value": "Grojimo dažnis {playbackRate}",
|
||||
"playback_time": "grojimo laikas",
|
||||
"quality": "Kokybė",
|
||||
"second": "sekundė",
|
||||
"seconds": "sekundės",
|
||||
"time_value_of_total_time": "{currentTime} iš {totalTime}",
|
||||
"time_value_remaining": "{time} liko",
|
||||
"unmute": "Įjungti garsą",
|
||||
"unsupported_error_description": "Įvyko klaida. Serveris arba tinklas sugedo arba jūsų naršyklė nepalaiko šio formato.",
|
||||
"video_not_loaded_unknown_time": "vaizdo įrašas neįkeltas, laikas nežinomas.",
|
||||
"video_player": "vaizdo grotuvas",
|
||||
"volume": "garso stiprumas"
|
||||
},
|
||||
"media_type": "Laikmenos tipas",
|
||||
"memories": "Atsiminimai",
|
||||
"memories_all_caught_up": "Jau viskas peržiūrėta",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Atsisiųskite mobiliąją programėlę naudodami šias parinktis",
|
||||
"model": "Modelis",
|
||||
"month": "Mėnesis",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Daugiau",
|
||||
"motion": "Judesys",
|
||||
"move": "Perkelti",
|
||||
"move_down": "Žemyn",
|
||||
"move_off_locked_folder": "Ištraukti iš užrakinto aplanko",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Negalima redaguoti tik skaitomo elemento vietovės, praleidžiama",
|
||||
"mute_memories": "Užtildyti prisiminimus",
|
||||
"my_albums": "Mano albumai",
|
||||
"my_immich_description": "Kopijuoti dabartinį puslapį kaip Mano Immich nuorodą",
|
||||
"my_immich_title": "Mano Immich nuoroda",
|
||||
"name": "Vardas",
|
||||
"name_or_nickname": "Vardas arba slapyvardis",
|
||||
"name_required": "Vardas yra privalomas",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "Pašalinti elementus?",
|
||||
"remove_custom_date_range": "Pašalinti pasirinktinę dienų seką",
|
||||
"remove_deleted_assets": "Pašalinti Ištrintus Elemenuts",
|
||||
"remove_filter": "Pašalinti filtrą",
|
||||
"remove_from_album": "Pašalinti iš albumo",
|
||||
"remove_from_album_action_prompt": "{count} pašalinta iš albumo",
|
||||
"remove_from_favorites": "Pašalinti iš mėgstamiausių",
|
||||
@@ -1926,6 +1966,8 @@
|
||||
"scan_settings": "Skenavimo nustatymai",
|
||||
"scanning": "Skenuojama",
|
||||
"scanning_for_album": "Skenuojama albumų...",
|
||||
"screencast_mode_description": "Rodyti klaviatūros ir pelės veiklos indikatorius ekrane",
|
||||
"screencast_mode_title": "Įjungti screencast režimą",
|
||||
"search": "Ieškoti",
|
||||
"search_albums": "Ieškoti albumų",
|
||||
"search_by_context": "Ieškoti pagal kontekstą",
|
||||
@@ -1933,6 +1975,8 @@
|
||||
"search_by_description_example": "Ilga kelionė per kopas",
|
||||
"search_by_filename": "Ieškoti pagal failo pavadinimą arba plėtinį",
|
||||
"search_by_filename_example": "pvz. IMG_1234.JPG arba PNG",
|
||||
"search_by_full_path": "Ieškoti pagal pilną kelią ar aplanką",
|
||||
"search_by_full_path_example": "/Jonas/Projektai/3D_Printavimas/2026-07-01 - paieška pagal Projektus, 3D, Printavimas, 2026 ir t.t.",
|
||||
"search_by_ocr": "Ieškoti pagal OCR",
|
||||
"search_by_ocr_example": "Kakava",
|
||||
"search_camera_lens_model": "Ieškoti objektyvo modelio...",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Rodyti schemą",
|
||||
"show_search_options": "Rodyti paieškos parinktis",
|
||||
"show_shared_links": "Rodyti bendrinamas nuorodas",
|
||||
"show_slideshow_metadata_overlay": "Rodyti paveikslėlio informacijos juostą",
|
||||
"show_slideshow_transition": "Rodyti perėjimą tarp skaidrių",
|
||||
"show_supporter_badge": "Rėmėjo ženklelis",
|
||||
"show_supporter_badge_description": "Rodyti rėmėjo ženklelį",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Praleisti iki aplankų",
|
||||
"skip_to_tags": "Praleisti iki žymių",
|
||||
"slideshow": "Skaidrių peržiūra",
|
||||
"slideshow_metadata_overlay_mode": "Info juostos turinys",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Tik aprašymas",
|
||||
"slideshow_metadata_overlay_mode_full": "Pilnas",
|
||||
"slideshow_repeat": "Kartoti skaidres",
|
||||
"slideshow_repeat_description": "Pradėti iš pradžių, kai skaidrės baigiasi",
|
||||
"slideshow_settings": "Skaidrių peržiūros nustatymai",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Sinchronizacijos būklė",
|
||||
"sync_status_subtitle": "Žiūrėti ir valdyti sinchronizacijos systemą",
|
||||
"sync_upload_album_setting_subtitle": "Sukurti ir įkelti jūsų nuotraukas ir vaizdo įrašus į pasirinktus Immich albumus",
|
||||
"system_theme": "Sistemos tema",
|
||||
"system_theme_command_description": "Naudoti sistemos temą ({value})",
|
||||
"tag": "Žyma",
|
||||
"tag_assets": "Pažymėti",
|
||||
"tag_created": "Sukurta žyma: {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Darbų eigos",
|
||||
"workflows_help_text": "Darbo eigos automatizuoja veiksmus su jūsų elementais pagal trigerius ir filtrus",
|
||||
"wrong_pin_code": "Neteisingas PIN kodas",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Metai",
|
||||
"years_ago": "Prieš {years, plural, one {# metus} other {# metų}}",
|
||||
"yes": "Taip",
|
||||
|
||||
+596
-23
File diff suppressed because it is too large
Load Diff
@@ -808,15 +808,12 @@
|
||||
"custom_locale": "കസ്റ്റം ലൊക്കേൽ",
|
||||
"custom_locale_description": "ഭാഷയെയും പ്രദേശത്തെയും അടിസ്ഥാനമാക്കി തീയതികളും അക്കങ്ങളും ഫോർമാറ്റ് ചെയ്യുക",
|
||||
"custom_url": "കസ്റ്റം URL",
|
||||
"daily_title_text_date": "E, MMM dd",
|
||||
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||
"dark": "ഇരുണ്ടത്",
|
||||
"dark_theme": "ഡാർക്ക് തീം ടോഗിൾ ചെയ്യുക",
|
||||
"date": "തീയതി",
|
||||
"date_after": "ഇതിനു ശേഷമുള്ള തീയതി",
|
||||
"date_and_time": "തീയതിയും സമയവും",
|
||||
"date_before": "ഇതിനു മുമ്പുള്ള തീയതി",
|
||||
"date_format": "E, LLL d, y • h:mm a",
|
||||
"date_of_birth_saved": "ജനനത്തീയതി വിജയകരമായി സേവ് ചെയ്തു",
|
||||
"date_range": "തീയതി പരിധി",
|
||||
"day": "ദിവസം",
|
||||
@@ -1397,7 +1394,6 @@
|
||||
"mobile_app_download_onboarding_note": "താഴെ പറയുന്ന ഓപ്ഷനുകൾ ഉപയോഗിച്ച് മൊബൈൽ ആപ്പ് ഡൗൺലോഡ് ചെയ്യുക",
|
||||
"model": "മോഡൽ",
|
||||
"month": "മാസം",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "കൂടുതൽ",
|
||||
"move": "നീക്കുക",
|
||||
"move_off_locked_folder": "ലോക്ക് ചെയ്ത ഫോൾഡറിൽ നിന്ന് മാറ്റുക",
|
||||
|
||||
+111
-57
@@ -5,72 +5,124 @@
|
||||
"acknowledge": "Ойлголоо",
|
||||
"action": "Үйлдэл",
|
||||
"action_common_update": "Шинэчлэх",
|
||||
"actions": "Үйлдлүүд",
|
||||
"action_description": "Шүүгдсэн зүйлс дээр хийх үйлдэлүүд",
|
||||
"actions": "Үйл ажиллагаа",
|
||||
"active": "Идэвхтэй",
|
||||
"activity": "Үйлдлийн бүртгэл",
|
||||
"activity_changed": "Үйлдлийн бүртгэл {enabled, select, true {идэвхтэй} other {идэвхгүй}}",
|
||||
"active_count": "Идэвхтэй: {count}",
|
||||
"activity": "Үйлдлүүд",
|
||||
"activity_changed": "Үйлдлүүд {enabled, select, true {идэвхтэй} other {идэвхгүй}}",
|
||||
"add": "Нэмэх",
|
||||
"add_a_description": "Тайлбар оруулах",
|
||||
"add_a_location": "Байршил нэмэх",
|
||||
"add_a_name": "Нэр өгөх",
|
||||
"add_a_title": "Гарчиг оруулах",
|
||||
"add_endpoint": "Endpoint нэмэх",
|
||||
"add_a_name": "Нэр нэмэх",
|
||||
"add_a_title": "Гарчиг нэмэх",
|
||||
"add_action": "Үйлдэл нэмэх",
|
||||
"add_action_description": "Дарж үйлдэлүүд нэмнэ үү",
|
||||
"add_assets": "Зүйлс нэмэх",
|
||||
"add_birthday": "Төрсөн огноо нэмэх",
|
||||
"add_endpoint": "Хаяг нэмэх",
|
||||
"add_exclusion_pattern": "Хасагдах загвар нэмэх",
|
||||
"add_filter": "Шүүлтүүр нэмэх",
|
||||
"add_filter_description": "Шүүлтүүрийн нөхцөл нэмэхийн тулд дарна уу",
|
||||
"add_location": "Байршил оруулах",
|
||||
"add_more_users": "Өөр хэрэглэгчид нэмэх",
|
||||
"add_partner": "Хамтрагч нэмэх",
|
||||
"add_path": "Зам нэмэх",
|
||||
"add_photos": "Зураг нэмэх",
|
||||
"add_tag": "Шошго нэмэх",
|
||||
"add_to": "Нэмэх…",
|
||||
"add_to_album": "Цомогт оруулах",
|
||||
"add_to_album_bottom_sheet_added": "{album}-д нэмлээ",
|
||||
"add_to_album_bottom_sheet_already_exists": "{album}-д аль хэдийн орсон байна",
|
||||
"add_to_shared_album": "Нээлттэй албумд оруулах",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Зарим суурин зүйлсийг цомогт нэмж чадсангүй",
|
||||
"add_to_album_toggle": "Сонголтыг асаах/унтраах {album}",
|
||||
"add_to_albums": "Цомгуудад нэмэх",
|
||||
"add_to_albums_count": "Цомгуудад нэмэх {count}",
|
||||
"add_to_bottom_bar": "Нэмэх",
|
||||
"add_to_shared_album": "Хуваалцсан цомогт оруулах",
|
||||
"add_upload_to_stack": "Оруулаад бүлэгт нэмэх",
|
||||
"add_url": "URL нэмэх",
|
||||
"add_workflow_step": "Ажлын процессын алхам нэмэх",
|
||||
"added_to_archive": "Архивд оруулах",
|
||||
"added_to_favorites": "Дуртай зурганд нэмэх",
|
||||
"added_to_favorites_count": "Дуртай зурагнуудад {count, number} нэмэгдлээ",
|
||||
"added_to_favorites": "Дуртай зүйлс-д нэмэх",
|
||||
"added_to_favorites_count": "Дуртай зүйлс-д {count, number} нэмэгдлээ",
|
||||
"admin": {
|
||||
"add_exclusion_pattern_description": "Үл тоомсорлох загварыг нэмэх. Дараах тэмдэг орлуулалтыг дэмжинэ *,** ба ?. \"Raw\" нэртэй дурын сан дахь бүх файлыг үл тоомсорлохын тулд \"**/Raw/**\" гэж ашиглаарай. \".tif\"-ээр төгссөн бүх файлыг үл тоомсорлохын тулд \"**/*.tif\" гэж ашиглаарай. Абсолют замыг үл тоомсорлохын тулд \"/path/to/ignore/**\" гэж ашиглаарай.",
|
||||
"admin_user": "Админ хэрэглэгч",
|
||||
"authentication_settings": "Танин нэвтрэлт тохиргоо",
|
||||
"authentication_settings_description": "Нууц үгийн удирдлага, OAuth болон бусад танин нэвтрэлтийн тохиргоо",
|
||||
"authentication_settings_disable_all": "Бүх нэвтрэх аргуудыг идэвхигүй болгохдоо итгэлтэй байна уу? Нэвтрэх үйлдэл бүрэн идэвхигүй болно.",
|
||||
"background_task_job": "Арын ажил",
|
||||
"asset_offline_description": "Энэхүү гаднах сангийн зүйлс дискнээс олдохоо больсон бөгөөд хогийн сав руу зөөгдсөн байна. Хэрэв файлыг сан дотроо зөөсөн бол харгалзах шинэ зүйлсийг огноон хуваараас шалгана уу. Эдгээр зүйлсийг сэргээхийн тулд, Immich нь доорх файлын замд хандаж чадаж байгаа эсэхийг шалгаад санг дахин сканнердана уу.",
|
||||
"authentication_settings": "Баталгаажуулалтын тохиргоо",
|
||||
"authentication_settings_description": "Нууц үгийн удирдлага, OAuth, болон бусад баталгаажуулалтын тохиргоо",
|
||||
"authentication_settings_disable_all": "Бүх нэвтрэх аргуудыг идэвхигүй болгохдоо итгэлтэй байна уу? Нэвтрэлт бүрэн идэвхгүй болно.",
|
||||
"authentication_settings_reenable": "Дахин идэвхжүүлэхэд дараах <link>Серверийн коммандыг</link> ашиглана.",
|
||||
"background_task_job": "Арын процесс",
|
||||
"backup_database": "Өгөгдлийн сангийн дамп үүсгэх",
|
||||
"backup_database_enable_description": "Өгөгдлийн сангийн дамп идэвхижүүлэх",
|
||||
"backup_keep_last_amount": "Өмнөх хэдэн дампыг хадгалах вэ",
|
||||
"backup_settings": "Датабаз дамп тохиргоо",
|
||||
"backup_settings_description": "Датабазаас дамп хийх тохиргоонууд.",
|
||||
"config_set_by_file": "Тохиргоог одоогоор файлаас авч байна",
|
||||
"confirm_delete_library": "Та {library} гэсэн санг устгахдаа итгэлтэй байна уу?",
|
||||
"confirm_delete_library_assets": "Та энэ санг устгахдаа итгэлтэй байна уу? Энэ үйлдлээр таны {count, plural, one {# contained asset} other {all # contained assets}} серверээс устах бөгөөд буцаах боломжгүй. Гэхдээ файлууд диск дээрээ үлдэнэ.",
|
||||
"confirm_email_below": "Баталгаажуулахын тулд та \"{email}\" гэж бичнэ үү",
|
||||
"confirm_reprocess_all_faces": "Бүх царайг дахин процесс хийх үү? Тэгвэл бүх нэрс арилах болно.",
|
||||
"backup_database_enable_description": "Өгөгдлийн сангийн дамп-г идэвхижүүлэх",
|
||||
"backup_keep_last_amount": "Өмнөх дампуудыг хадгалах тоо",
|
||||
"backup_onboarding_1_description": "нэмэлтээр нөөц хуулбарыг үүлэнд буюу өөр физик байршилд хадгалах.",
|
||||
"backup_onboarding_2_description": "үндсэн файлууд болон тэдгээрийн суурин хуулбарыг хоёр өөр төрлийн хадгалагч дээр хадгалах.",
|
||||
"backup_onboarding_3_description": "өгөгдлүүдийн гурван хуулбарыг үүсгэх, оригинал файлуудыг оруулаад: 1 гадна болон 2 суурин хуулбар.",
|
||||
"backup_onboarding_description": "Найдвартай хамгаалахын тулд <backblaze-link>3-2-1 </backblaze-link>гэгдэх өгөгдлийн нөөцлөлийн стратегийг ашиглахыг зөвлөж байна. Оруулсан зураг болон бичлэгүүд мөн Immich ийн өгөгдлийн сангийн хуулбарыг үүсгэж байгаарай.",
|
||||
"backup_onboarding_footer": "Immich-ийг нөөцлөх талаар дэлгэрэнгүй мэдээллийг <link>баримт бичиг</link>-с үзнэ үү.",
|
||||
"backup_onboarding_parts_title": "A 3-2-1 нөөцлөл гэдэгт:",
|
||||
"backup_onboarding_title": "Нөөцлөлтүүд",
|
||||
"backup_settings": "Өгөгдлийн сангийн дамп-ын тохиргоо",
|
||||
"backup_settings_description": "Өгөгдлийн сангийн дампын тохиргоонууд.",
|
||||
"cleared_jobs": "Дараах ажилбаруудыг цэвэрлэв: {job}",
|
||||
"config_set_by_file": "Тохиргооны файлын тусламжтайгаар тохируулсан",
|
||||
"confirm_delete_library": "Та {library} санг устгахдаа итгэлтэй байна уу?",
|
||||
"confirm_delete_library_assets": "Та энэ санг устгахдаа итгэлтэй байна уу? Энэ үйлдлээр таны {count, plural, one {# contained asset} other {all # contained assets}} серверээс буцалтгүй устах ба буцаах боломжгүй. Гэхдээ файлууд диск дээрээ үлдэнэ.",
|
||||
"confirm_email_below": "Баталгаажуулахын тулд \"{email}\" бичнэ үү",
|
||||
"confirm_reprocess_all_faces": "Бүх нүүр царайнд дахин боловсруулалт хийх үү? Энэ нь хүмүүсийн өмнөх бүх нэрсийг устгана.",
|
||||
"confirm_user_password_reset": "{user}-ийн нууц үгийг дахин тохируулах уу?",
|
||||
"confirm_user_pin_code_reset": "{user} хэрэглэгчийн PIN code дахин тохируулах уу?",
|
||||
"face_detection": "Нүүр илрүүлэх",
|
||||
"copy_config_to_clipboard_description": "Одоогийн системийн тохиргоог JSON object хэлбэрээр clipboard руу хуулах",
|
||||
"create_job": "ажилбар үүсгэх",
|
||||
"cron_expression": "Хувиарь (cron)",
|
||||
"cron_expression_description": "cron форматыг ашиглан скан хийх интервалыг тохируулна уу. Дэлгэрэнгүй мэдээллийг жишээ нь <link>Crontab Guru</link> -с авна уу.",
|
||||
"cron_expression_presets": "Хувиарь (урьдчилан суулгасан хувилбарууд)",
|
||||
"disable_login": "Нэвтрэхийг идэвхгүй болгох",
|
||||
"duplicate_detection_job_description": "Ижил төстэй зургийг илрүүлэхийн тулд машин сургалтыг зүйлс (зураг, видео) дээр ажиллуулна уу. Smart Search дээр тулгуурлана.",
|
||||
"exclusion_pattern_description": "Хасах загварууд нь таны санг сканнердах үед файл болон хавтаснуудыг үл тоомсорлох боломжийг олгодог. Хэрэв танд RAW файл гэх мэт импортлохыг хүсэхгүй файл агуулсан хавтас байгаа бол энэ нь хэрэгтэй.",
|
||||
"export_config_as_json_description": "Одоогийн системийн тохиргоог JSON файл хэлбэрээр татаж авах",
|
||||
"external_libraries_page_description": "Гаднах санг удирдах хуудас",
|
||||
"face_detection": "Нүүр царай илрүүлэх",
|
||||
"face_detection_description": "Машин сургалтыг ашиглан зүйлс дэх царайг илрүүлнэ. Видео бичлэгийн хувьд зөвхөн эхний богино бичлэгээс хайж үзнэ. \"Refresh\" бүх зүйлсийг дахин боловсруулна. \"Reset\" нь одоогийн бүх царайны өгөгдлийг мөн арилгана. \"Missing\" нь хараахан боловсруулагдаагүй зүйлсийг дараалалд оруулна. Илэрсэн царайг царай таних ажиллагаа дууссаны дараа царай таних дараалалд оруулж, одоо байгаа эсвэл шинэ хүмүүст хуваана.",
|
||||
"facial_recognition_job_description": "Илэрсэн царайнуудыг хүмүүст хувиарлан бүлэглэнэ. Энэ алхам нь царай таних ажиллагаа дууссаны дараа ажиллана. \"Reset\" товчлуур нь бүх царайг дахин хувиарлана. Хүн оноогүй царайнуудыг \"Олдоогүй\" хүмүүсийн дараалалд оруулна.",
|
||||
"failed_job_command": "Комманд {command} дараах ажлуудад биелээгүй:{job}",
|
||||
"force_delete_user_warning": "АНХААРУУЛГА: Энэ нь хэрэглэгч болон бүх зүйлсийг нэн даруй устгах болно. Үүнийг буцаах боломжгүй бөгөөд файлуудыг сэргээх боломжгүй.",
|
||||
"image_format": "Формат",
|
||||
"image_format_description": "WebP нь JPEG-ээс жижиг файлуудыг үүсгэдэг боловч кодлоход удаан.",
|
||||
"image_fullsize_description": "Зургийг томруулахад мета өгөгдөлгүй бүрэн хэмжээст зургийг ашигладаг",
|
||||
"image_fullsize_enabled": "Бүрэн хэмжээтэй зураг үүсгэлтийг идэвхжүүлэх",
|
||||
"image_fullsize_enabled_description": "Вэб-д зориулагдаагүй форматын бүрэн хэмжээтэй зураг үүсгэх. \"Суулгагдсан урьдчилсан харагдац \" тохиргоог идэвхжүүлсэн үед суулгагдсан урьдчилсан харагдацыг хөрвүүлэлтгүйгээр шууд ашигладаг. Энэ нь JPEG зэрэг вэбэд нийцтэй форматад нөлөөлөхгүй.",
|
||||
"image_fullsize_quality_description": "Бүрэн хэмжээний зургийн чанар 1-100 хооронд . Өндөр байх нь сайн боловч файлын хэмжээ илүү том байна.",
|
||||
"image_fullsize_title": "Бүтэн хэмжээтэй зургийн тохиргоо",
|
||||
"image_prefer_embedded_preview": "Суулгагдсан урьдчилан харагчийг илүүд үзэх",
|
||||
"image_prefer_embedded_preview_setting_description": "Боломжтой бол RAW форматтай зурагийг урьдчилсан харагч ашиглан үзээрэй. Энэ нь зарим зургийн өнгөний хуулбарыг илүү нарийвчлалтай болгож болох боловч урьдчилсан харагчийн зургийн чанар нь камераас хамаардаг бөгөөд зураг нь илүү их шахалтын (compression artifacts) ул мөр агуулж болзошгүй.",
|
||||
"image_prefer_wide_gamut": "Өргөн хүрээг (gamut) илүүд үзнэ",
|
||||
"image_quality": "Чанар",
|
||||
"job_settings": "Ажлын тохиргоо",
|
||||
"machine_learning_enabled": "Машин сургалт идэвхжүүлэх",
|
||||
"machine_learning_enabled_description": "Идэвхгүй болгосон үед доорх тохиргооноос хамаарахгүйгээр бүх машин сургалтын боломж идэвхгүй болно.",
|
||||
"machine_learning_enabled": "Машин сургалт буюу хиймэл ухаан идэвхжүүлэх",
|
||||
"machine_learning_enabled_description": "Хэрэв идэвхгүй болгосон бол, цааших тохиргоонуудаас үл хамааран машин сургалтын бүх боломжууд идэвхгүй болно.",
|
||||
"machine_learning_facial_recognition": "Нүүр танилт",
|
||||
"machine_learning_facial_recognition_description": "Зураг дээрх хүмүүсийн нүүрийг илрүүлж, таньж, бүлэглэнэ",
|
||||
"machine_learning_facial_recognition_model": "Нүүр танилтын загвар",
|
||||
"machine_learning_facial_recognition_model_description": "Загварууд хэмжээ нь буурах эрэмбээр жагссан. Том загварууд удаан, илүү их санах ой хэрэглэх боловч харьцангуй чанартай үр дүн үзүүлнэ. Загвар өөрчилсөн тохиолдолд нүүр илрүүлэлтийн ажлыг дахин эхлүүлэх шаардлагатайг санаарай.",
|
||||
"machine_learning_facial_recognition_setting": "Нүүр танилт идэвхжүүлэх",
|
||||
"map_settings": "Газрын зураг",
|
||||
"trash_enabled_description": "Хогийн сав идэвхжүүлэх",
|
||||
"trash_enabled_description": "Хогийн сав /тохиргооны боломжууд/",
|
||||
"trash_number_of_days": "Хоногийн тоо",
|
||||
"trash_number_of_days_description": "Хогийн саванд хэд хоног хадгалаад бүр мөсөн устгах вэ",
|
||||
"trash_number_of_days_description": "Хогийн саванд хэд хоног хадгалаад дараа нь бүр мөсөн устгах вэ",
|
||||
"trash_settings": "Хогийн савны тохиргоо",
|
||||
"trash_settings_description": "Хогийн савны тохиргоог өөрчлөх",
|
||||
"user_management": "Хэрэглэгчийн удирдлага",
|
||||
"user_password_has_been_reset": "Хэрэглэгчийн нууц үг шинээр тохируулагдлаа:",
|
||||
"user_restore_description": "<b>{user}</b>-н бүртгэл сэргэнэ.",
|
||||
"user_password_has_been_reset": "Хэрэглэгчийн нууц үг шинээр reset хийгдлээ:",
|
||||
"user_restore_description": "<b>{user}</b>-н бүртгэл сэргээгдэх болно.",
|
||||
"user_settings": "Хэрэглэгчийн тохиргоо"
|
||||
},
|
||||
"administration": "Админ",
|
||||
"administration": "Серверийн удирдлага",
|
||||
"album_added": "Цомог нэмэгдлээ",
|
||||
"album_info_updated": "Цомгийн мэлээлэл шинэчлэгдлээ",
|
||||
"album_info_updated": "Цомгийн мэдээлэл шинэчлэгдлээ",
|
||||
"album_leave": "Цомгоос гарах уу?",
|
||||
"album_leave_confirmation": "Та {album} цомгоос гарахдаа итгэлтэй байна уу?",
|
||||
"album_name": "Цомгийн нэр",
|
||||
@@ -82,25 +134,25 @@
|
||||
"all_albums": "Бүх цомог",
|
||||
"all_people": "Бүх хүн",
|
||||
"all_videos": "Бүх бичлэг",
|
||||
"allow_dark_mode": "Харанхуй горим зөвшөөрөх",
|
||||
"allow_edits": "Засварлалт зөвшөөрөх",
|
||||
"allow_dark_mode": "Бараан харагдацын горимыг зөвшөөрөх",
|
||||
"allow_edits": "Засвар хийхийг зөвшөөрөх",
|
||||
"api_key": "API түлхүүр",
|
||||
"api_key_description": "Энэ утга зөвхөн ганц л удаа харагдана. Цонхоо хаахаас өмнө хуулж аваарай.",
|
||||
"api_key_empty": "Таны API түлхүүрийн нэр хоосон байж болохгүй",
|
||||
"api_keys": "API түлхүүрүүд",
|
||||
"app_settings": "Апп-н тохиргоо",
|
||||
"app_settings": "Програмын тохиргоо",
|
||||
"archive": "Архив",
|
||||
"archive_or_unarchive_photo": "Зургийг архивт хийх эсвэл гаргах",
|
||||
"archive_or_unarchive_photo": "Зургийг архивт оруулах эсвэл гаргах",
|
||||
"archive_size": "Архивын хэмжээ",
|
||||
"archive_size_description": "Татах үеийн архивын хэмжээг тохируулах (GiB-р)",
|
||||
"archive_size_description": "Татах үеийн архивын хэмжээг тохируулах (GiB-аар)",
|
||||
"asset_added_to_album": "Цомогт нэмсэн",
|
||||
"asset_adding_to_album": "Цомогт нэмж байна...",
|
||||
"backup_controller_page_background_app_refresh_disabled_content": "Апп нээгээгүй байх үед нөөцлөлт хийх бол Settings > General > Background App Refresh хандаж идэвхижүүлнэ үү.",
|
||||
"backup_controller_page_background_app_refresh_disabled_title": "Апп нээгээгүй байх үед нөөцлөлт идэвхигүй.",
|
||||
"asset_adding_to_album": "Цомогт нэмж байна…",
|
||||
"backup_controller_page_background_app_refresh_disabled_content": "Програмын арын сэргээлийг идэвхжүүлснээр Settings > General > Background App Refresh нөөц хадаглалтын арын горимыг ашиглах боломжтой болно.",
|
||||
"backup_controller_page_background_app_refresh_disabled_title": "Програмын арын сэргээлийг идэвхгүй болгосон",
|
||||
"backup_controller_page_background_app_refresh_enable_button_text": "Тохиргоо хэсэгт очих",
|
||||
"buy": "Immich худалдаж авах",
|
||||
"camera": "Камер",
|
||||
"camera_brand": "Камерын үйлдвэр",
|
||||
"camera_brand": "Камерын бренд",
|
||||
"camera_model": "Камерын загвар",
|
||||
"cancel": "Цуцлах",
|
||||
"cancel_search": "Хайлт цуцлах",
|
||||
@@ -115,33 +167,35 @@
|
||||
"empty_trash": "Хогийн сав хоослох",
|
||||
"errors": {
|
||||
"unable_to_empty_trash": "Хогийн савыг хоослож чадсангүй",
|
||||
"unable_to_restore_trash": "Хогийн савнаас гаргаж чадсангүй"
|
||||
"unable_to_restore_trash": "Хогийн савнаас сэргэж чадсангүй"
|
||||
},
|
||||
"explore": "Эрж олох",
|
||||
"favorites": "Дуртай",
|
||||
"explore": "Хайлт",
|
||||
"failed_to_load_assets": "Зүйлсийг уншиж чадсангүй",
|
||||
"favorites": "Дуртай зүйлс",
|
||||
"folders": "Хавтаснууд",
|
||||
"invite_people": "Хүмүүс урих",
|
||||
"library": "Зургийн сан",
|
||||
"no_assets_message": "Энд дарж та эхний зургаа хуулж үзэх үү",
|
||||
"no_explore_results_message": "Зураг хуулж оруулсаны дараа ашиглах боломжтой болно.",
|
||||
"notification_permission_list_tile_content": "Мэдэгдэл нээх эрх өгнө үү.\n",
|
||||
"library": "Сан",
|
||||
"no_assets_message": "Энд дарж анхны зургаа оруулна уу",
|
||||
"no_explore_results_message": "Илүү олон зураг оруулсаны дараа хайлт ашиглах боломжтой болно.",
|
||||
"notification_permission_list_tile_content": "Мэдэгдэл харуулахын тулд эрх өгнө үү.",
|
||||
"notification_permission_list_tile_enable_button": "Мэдэгдэл нээх",
|
||||
"notification_permission_list_tile_title": "Мэдэгдлийн эрх",
|
||||
"only_favorites": "Зөвхөн дуртай зурагнууд",
|
||||
"only_favorites": "Зөвхөн дуртай зүйлс",
|
||||
"people": "Хүмүүс",
|
||||
"places": "Байршилууд",
|
||||
"remove_from_favorites": "Дуртай зурагнуудаас хасах",
|
||||
"removed_from_favorites": "Дуртай зурагнуудаас хасагдсан",
|
||||
"removed_from_favorites_count": "Дуртай зурагнуудаас {count, plural, other {Removed #}} хасагдлаа",
|
||||
"search_places": "Байршил хайх",
|
||||
"search_your_photos": "Зурагнуудаасаа хайлт хийх",
|
||||
"server_online": "Сервер Онлайн",
|
||||
"remove_from_favorites": "Дуртай зүйлсээс хасах",
|
||||
"removed_from_favorites": "Дуртай зүйлсээс хасагдсан",
|
||||
"removed_from_favorites_count": "Дуртай зүйлсээс {count, plural, other {Removed #}} хасагдлаа",
|
||||
"search_places": "Байршилууд хайх",
|
||||
"search_your_photos": "Зурагнаас хайлт хийх",
|
||||
"server_online": "Сервер Асаалттай",
|
||||
"settings": "Тохиргоо",
|
||||
"sharing": "Хуваалцах",
|
||||
"sign_out": "Гарах",
|
||||
"storage": "Дискний багтаамж",
|
||||
"storage_usage": "Нийт {available} боломжтойгоос {used} хэрэглэсэн",
|
||||
"trash": "Хогийн сав",
|
||||
"upload": "Зураг хуулах",
|
||||
"upload": "Зураг оруулах",
|
||||
"utilities": "Багаж хэрэгсэл",
|
||||
"view_all": "Бүгдийг харах",
|
||||
"view_all_users": "Бүх хэрэглэгчийг харах",
|
||||
@@ -149,8 +203,8 @@
|
||||
"warning": "Анхааруулга",
|
||||
"week": "Долоо хоног",
|
||||
"welcome": "Тавтай морил",
|
||||
"welcome_to_immich": "Тавтай морилно уу",
|
||||
"wifi_name": "WiFi Name",
|
||||
"welcome_to_immich": "Immich-д Тавтай морилно уу",
|
||||
"wifi_name": "Wi-Fi Нэр",
|
||||
"year": "Он",
|
||||
"years_ago": "{years, plural, one {# year} other {# years}} өмнө",
|
||||
"yes": "Тийм",
|
||||
|
||||
@@ -796,15 +796,12 @@
|
||||
"custom_locale": "भाषा व क्षेत्र",
|
||||
"custom_locale_description": "दिनांक व संख्या भाषेनुसार व क्षेत्रानुसार format करा",
|
||||
"custom_url": "सानुकूल URL",
|
||||
"daily_title_text_date": "ई, एमएमएम डीडी",
|
||||
"daily_title_text_date_year": "ई, एमएमएम दिवस, वर्ष",
|
||||
"dark": "डार्क",
|
||||
"dark_theme": "डार्क थीम बदल",
|
||||
"date": "तारीख",
|
||||
"date_after": "नंतरची तारीख",
|
||||
"date_and_time": "दिनांक व वेळ",
|
||||
"date_before": "पूर्वची तारीख",
|
||||
"date_format": "ई, एलएलएल डी, वाई • एच:एमएम ए",
|
||||
"date_of_birth_saved": "जन्मतारीख जतन झाली",
|
||||
"date_range": "तारीख श्रेणी",
|
||||
"day": "दिवस",
|
||||
@@ -1385,7 +1382,6 @@
|
||||
"mobile_app_download_onboarding_note": "खाली दिलेल्या पर्यायांचा वापर करून साथीदार मोबाईल अॅप डाउनलोड करा",
|
||||
"model": "मॉडेल",
|
||||
"month": "महिना",
|
||||
"monthly_title_text_date_format": "एमएमएमएम वाई",
|
||||
"more": "अधिक",
|
||||
"move": "हलवा",
|
||||
"move_off_locked_folder": "लॉक फोल्डरच्या बाहेर हलवा",
|
||||
|
||||
+54
-4
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Aktiver e-postvarsler",
|
||||
"notification_settings": "Varselinnstillinger",
|
||||
"notification_settings_description": "Administrer varselinnstillinger, inkludert e-post",
|
||||
"oauth_allow_insecure_requests": "Tillat usikre tilkoblinger",
|
||||
"oauth_allow_insecure_requests_description": "ADVARSEL: Dette deaktiverer validering av TLS-sertifikater for OAuth-forespørsler og kan utsette deg for MITM-angrep.",
|
||||
"oauth_auto_launch": "Automatisk oppstart",
|
||||
"oauth_auto_launch_description": "Start OAuth-innloggingsflyten automatisk når du navigerer til innloggingssiden",
|
||||
"oauth_auto_register": "Automatisk registrering",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Knappetekst",
|
||||
"oauth_client_secret_description": "Kreves for konfidensiell klient, eller hvis PKCE (Proof Key for Code Exchange) ikke støttes for offentlig klient.",
|
||||
"oauth_enable_description": "Logg inn med OAuth",
|
||||
"oauth_end_session_url_description": "Videresend brukeren til denne URI når de logger ut.",
|
||||
"oauth_mobile_redirect_uri": "Mobil omdirigerings-URI",
|
||||
"oauth_mobile_redirect_uri_override": "Mobil omdirigerings-URI overstyring",
|
||||
"oauth_mobile_redirect_uri_override_description": "Aktiver når OAuth-leverandøren ikke tillater en mobil URI, som ''{callback}''",
|
||||
"oauth_prompt_description": "Parameter for prompt (f.eks. select_account, login, consent)",
|
||||
"oauth_role_claim": "Krev Rolle",
|
||||
"oauth_role_claim_description": "Gi automatisk administratortilgang basert på tilstedeværelsen av dette kravet. Kravet kan ha enten «bruker» eller «administrator».",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Fjern bilder som er eldre enn…",
|
||||
"cutoff_day": "{count, plural, one {dag} other {dager}}",
|
||||
"cutoff_year": "{count, plural, one {år} other {år}}",
|
||||
"daily_title_text_date": "E MMM. dd",
|
||||
"daily_title_text_date_year": "E MMM. dddd, yyyy",
|
||||
"dark": "Mørk",
|
||||
"dark_theme": "Skift til mørkt tema",
|
||||
"date": "Dato",
|
||||
"date_after": "Dato etter",
|
||||
"date_and_time": "Dato og tid",
|
||||
"date_before": "Dato før",
|
||||
"date_format": "d LLL. E y • hh:mm",
|
||||
"date_of_birth": "Fødselsdato",
|
||||
"date_of_birth_saved": "Fødselsdatoen ble lagret vellykket",
|
||||
"date_range": "Datoområde",
|
||||
"day": "Dag",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Flytt sikkerhetskopierte bilder og videoer til enhetens papirkurv for å frigjøre plass. Kopiene dine på serveren forblir trygge.",
|
||||
"free_up_space_settings_subtitle": "Frigjør lagringsplass på enheten",
|
||||
"full_path": "Full sti: {path}",
|
||||
"full_path_or_folder": "Full sti eller mappe",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Denne funksjonen laster eksterne ressurser fra Google for å fungere.",
|
||||
"general": "Generelt",
|
||||
@@ -1392,6 +1395,7 @@
|
||||
"light_theme": "Skift til lyst tema",
|
||||
"like": "Lik",
|
||||
"like_deleted": "Som slettede",
|
||||
"link": "Lenke",
|
||||
"link_motion_video": "Koble bevegelsesvideo",
|
||||
"link_to_docs": "For mer informasjon, se <link>dokumentasjonen</link>.",
|
||||
"link_to_oauth": "Lenke til OAuth",
|
||||
@@ -1518,6 +1522,38 @@
|
||||
"marked_all_as_read": "Merket alle som lest",
|
||||
"matches": "Samsvarende",
|
||||
"matching_assets": "Matchende elementer",
|
||||
"media_chrome": {
|
||||
"auto": "Automatisk",
|
||||
"captions": "Undertekst",
|
||||
"captions_off": "Av",
|
||||
"closed_captions": "Teksting for hørselshemmede",
|
||||
"decode_error": "Dekodingsfeil",
|
||||
"disable_captions": "Slå av undertekst",
|
||||
"enable_captions": "Slå på undertekst",
|
||||
"enter_fullscreen_mode": "Gå i fullskjerm modus",
|
||||
"exit_fullscreen_mode": "Gå ut av fullskjerm modus",
|
||||
"loop": "Gjenta",
|
||||
"media_error_description": "En mediefeil fikk avspillingen til å stanse. Mediet kan være korrupt eller så støtter ikke nettleseren din dette formatet.",
|
||||
"media_loading": "innhold laster",
|
||||
"mute": "Dempe lyd",
|
||||
"network_error": "Nettverksfeil",
|
||||
"network_error_description": "En nettverksfeil gjorde at nedlastningen av media sluttet.",
|
||||
"not_supported_error": "Kilde ikke støttet",
|
||||
"playback_rate": "Avspillingshastighet",
|
||||
"playback_rate_current": "Nåværende avspillingshastighet",
|
||||
"playback_rate_value": "Avspillingshastighet {playbackRate}",
|
||||
"playback_time": "Avspillingstid",
|
||||
"quality": "Kvalitet",
|
||||
"second": "sekund",
|
||||
"seconds": "sekunder",
|
||||
"time_value_of_total_time": "{currentTime} av {totalTime}",
|
||||
"time_value_remaining": "{time} gjenværende",
|
||||
"unmute": "Opphev dempingen",
|
||||
"unsupported_error_description": "En ikke-støttet feil oppstod. Serveren eller nettverket feilet, eller så støtter ikke nettleseren din dette formatet.",
|
||||
"video_not_loaded_unknown_time": "Video lastet ikke, ukjent tid.",
|
||||
"video_player": "filmspiller",
|
||||
"volume": "volum"
|
||||
},
|
||||
"media_type": "Mediatype",
|
||||
"memories": "Minner",
|
||||
"memories_all_caught_up": "Alt utført",
|
||||
@@ -1544,8 +1580,8 @@
|
||||
"mobile_app_download_onboarding_note": "Last ned den tilhørende mobilappen ved å bruke følgende alternativer",
|
||||
"model": "Modell",
|
||||
"month": "Måned",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Mer",
|
||||
"motion": "Bevegelse",
|
||||
"move": "Flytt",
|
||||
"move_down": "Flytt ned",
|
||||
"move_off_locked_folder": "Flytt ut av låst mappe",
|
||||
@@ -1562,6 +1598,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Kunne ikke endre lokasjon på element(er) med kun lese-rettigheter, hopper over",
|
||||
"mute_memories": "Demp minner",
|
||||
"my_albums": "Mine album",
|
||||
"my_immich_description": "Kopier gjeldende side som en My Immich-lenke",
|
||||
"my_immich_title": "My Immich-lenke",
|
||||
"name": "Navn",
|
||||
"name_or_nickname": "Navn eller kallenavn",
|
||||
"name_required": "Navn er påkrevd",
|
||||
@@ -1853,6 +1891,7 @@
|
||||
"remove_assets_title": "Vil du fjerne eiendeler?",
|
||||
"remove_custom_date_range": "Fjern egendefinert datoperiode",
|
||||
"remove_deleted_assets": "Fjern fra frakoblede filer",
|
||||
"remove_filter": "Fjern filter",
|
||||
"remove_from_album": "Fjern fra album",
|
||||
"remove_from_album_action_prompt": "{count} fjernet fra albumet",
|
||||
"remove_from_favorites": "Fjern fra favoritter",
|
||||
@@ -1926,6 +1965,8 @@
|
||||
"scan_settings": "Skanneinnstillinger",
|
||||
"scanning": "Skanner",
|
||||
"scanning_for_album": "Skanner etter album...",
|
||||
"screencast_mode_description": "Vis indikatorer for tastatur- og musehendelser på skjermen",
|
||||
"screencast_mode_title": "Aktiver/deaktiver skjermbildefremvisning",
|
||||
"search": "Søk",
|
||||
"search_albums": "Søk i album",
|
||||
"search_by_context": "Søk etter kontekst",
|
||||
@@ -1933,6 +1974,8 @@
|
||||
"search_by_description_example": "Turdag i Sapa",
|
||||
"search_by_filename": "Søk etter filnavn og filtype",
|
||||
"search_by_filename_example": "f.eks. IMG_1234.JPG eller PNG",
|
||||
"search_by_full_path": "Søk med full sti eller mappe",
|
||||
"search_by_full_path_example": "/Johan/Prosjekt/3D_Printing/2026-07-01 - du kan søke etter Prosjekt, 3D, Printing 2026 osv.",
|
||||
"search_by_ocr": "Søk med tekstgjenkjenning",
|
||||
"search_by_ocr_example": "Latte",
|
||||
"search_camera_lens_model": "Søk etter objektivmodell...",
|
||||
@@ -2148,6 +2191,7 @@
|
||||
"show_schema": "Vis skjema",
|
||||
"show_search_options": "Vis søkealternativer",
|
||||
"show_shared_links": "Vis delte lenker",
|
||||
"show_slideshow_metadata_overlay": "Vis bildeinformasjonsoverlegg",
|
||||
"show_slideshow_transition": "Vis overgang til lysbildefremvisning",
|
||||
"show_supporter_badge": "Supportermerke",
|
||||
"show_supporter_badge_description": "Vis et supportermerke",
|
||||
@@ -2163,6 +2207,9 @@
|
||||
"skip_to_folders": "Hopp til mapper",
|
||||
"skip_to_tags": "Hopp til tagger",
|
||||
"slideshow": "Lysbildefremvisning",
|
||||
"slideshow_metadata_overlay_mode": "Overleggsinnhold",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Bare beskrivelse",
|
||||
"slideshow_metadata_overlay_mode_full": "Full",
|
||||
"slideshow_repeat": "Gjenta lysbildefremvisning",
|
||||
"slideshow_repeat_description": "Gå tilbake til begynnelsen når lysbildeserien er slutt",
|
||||
"slideshow_settings": "Lysbildefremvisning innstillinger",
|
||||
@@ -2214,6 +2261,8 @@
|
||||
"sync_status": "Synkroniseringsstatus",
|
||||
"sync_status_subtitle": "Vis og håndter synkronisering",
|
||||
"sync_upload_album_setting_subtitle": "Opprett og last opp dine bilder og videoer til det valgte albumet på Immich",
|
||||
"system_theme": "Systemtema",
|
||||
"system_theme_command_description": "Bruk systemtema ({value})",
|
||||
"tag": "Tagg",
|
||||
"tag_assets": "Merk ressurser",
|
||||
"tag_created": "Lag merke: {tag}",
|
||||
@@ -2425,6 +2474,7 @@
|
||||
"workflows": "Arbeidsflyter",
|
||||
"workflows_help_text": "Arbeidsflyter automatiserer hendelser på dine mediefiler basert på dine utløsere og filtre",
|
||||
"wrong_pin_code": "Feil PIN-kode",
|
||||
"x_of_total": "{x} av {total}",
|
||||
"year": "År",
|
||||
"years_ago": "{years, plural, one {# år} other {# år}} siden",
|
||||
"yes": "Ja",
|
||||
|
||||
+59
-8
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "E-mailmeldingen inschakelen",
|
||||
"notification_settings": "Meldingsinstellingen",
|
||||
"notification_settings_description": "Beheer meldingsinstellingen, inclusief e-mail",
|
||||
"oauth_allow_insecure_requests": "Onveilige verzoeken toestaan",
|
||||
"oauth_allow_insecure_requests_description": "WAARSCHUWING: Dit schakelt TLS-certificaat validatie voor OAuth verzoeken uit en kan je vatbaar maken voor MITM aanvallen.",
|
||||
"oauth_auto_launch": "Automatisch starten",
|
||||
"oauth_auto_launch_description": "Automatisch inloggen met OAuth bij het navigeren naar de inlogpagina",
|
||||
"oauth_auto_register": "Automatisch registreren",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Knoptekst",
|
||||
"oauth_client_secret_description": "Vereist voor een confidentiële client, of als PKCE (Proof Key for Code Exchange) niet wordt ondersteund door de publieke client.",
|
||||
"oauth_enable_description": "Inloggen met OAuth",
|
||||
"oauth_end_session_url_description": "Leidt de gebruiker om naar deze URI tijdens uitloggen.",
|
||||
"oauth_mobile_redirect_uri": "Omleidings-URI voor mobiel",
|
||||
"oauth_mobile_redirect_uri_override": "Omleidings-URI voor mobiele app overschrijven",
|
||||
"oauth_mobile_redirect_uri_override_description": "Inschakelen wanneer de OAuth-provider geen mobiele URI toestaat, zoals ''{callback}''",
|
||||
"oauth_prompt_description": "Prompt variabele (bijv. select_account, login, consent)",
|
||||
"oauth_role_claim": "Rol claim",
|
||||
"oauth_role_claim_description": "Automatisch admin toegang geven als deze claim aanwezig is. De claim kan 'user' of 'admin' zijn.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -820,13 +824,13 @@
|
||||
"context": "Context",
|
||||
"continue": "Doorgaan",
|
||||
"control_bottom_app_bar_create_new_album": "Nieuw album maken",
|
||||
"control_bottom_app_bar_delete_from_immich": "Verwijderen van Immich",
|
||||
"control_bottom_app_bar_delete_from_local": "Verwijderen van apparaat",
|
||||
"control_bottom_app_bar_delete_from_immich": "Verwijder uit Immich",
|
||||
"control_bottom_app_bar_delete_from_local": "Verwijder van apparaat",
|
||||
"control_bottom_app_bar_edit_location": "Locatie bewerken",
|
||||
"control_bottom_app_bar_edit_time": "Datum & tijd bewerken",
|
||||
"control_bottom_app_bar_share_link": "Link delen",
|
||||
"control_bottom_app_bar_share_to": "Delen met",
|
||||
"control_bottom_app_bar_trash_from_immich": "Verwijderen van Immich",
|
||||
"control_bottom_app_bar_trash_from_immich": "Verplaats naar prullenbak",
|
||||
"copied_image_to_clipboard": "Afbeelding gekopieerd naar klembord.",
|
||||
"copied_to_clipboard": "Gekopieerd naar klembord!",
|
||||
"copy_error": "Fout bij kopiëren",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Bewaar foto's van de laatste…",
|
||||
"cutoff_day": "{count, plural, one {dag} other {dagen}}",
|
||||
"cutoff_year": "{count, plural, one {jaar} other {jaren}}",
|
||||
"daily_title_text_date": "E dd MMM",
|
||||
"daily_title_text_date_year": "E dd MMM yyyy",
|
||||
"dark": "Donker",
|
||||
"dark_theme": "Wissel naar donker thema",
|
||||
"date": "Datum",
|
||||
"date_after": "Datum na",
|
||||
"date_and_time": "Datum en tijd",
|
||||
"date_before": "Datum voor",
|
||||
"date_format": "E d LLL y • H:mm",
|
||||
"date_of_birth": "Geboortedatum",
|
||||
"date_of_birth_saved": "Geboortedatum succesvol opgeslagen",
|
||||
"date_range": "Datumbereik",
|
||||
"day": "Dag",
|
||||
@@ -897,7 +899,7 @@
|
||||
"deduplicate_all": "Alles dedupliceren",
|
||||
"default_locale": "Standaard landinstelling",
|
||||
"default_locale_description": "Formatteer datums en getallen op basis van de taalinstellingen van je browser",
|
||||
"delete": "Verwijderen",
|
||||
"delete": "Verwijder",
|
||||
"delete_action_confirmation_message": "Weet je zeker dat je dit item wilt verwijderen? Deze actie zorgt ervoor dat het item naar de prullenbak van de server wordt verplaatst en je wordt gevraagd of je deze ook lokaal wilt verwijderen",
|
||||
"delete_action_prompt": "{count} verwijderd",
|
||||
"delete_album": "Album verwijderen",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Verplaats back-ups van foto's en video's naar de prullenbak van uw apparaat om ruimte vrij te maken. Uw kopieën op de server blijven veilig.",
|
||||
"free_up_space_settings_subtitle": "Maak opslagruimte vrij op uw apparaat",
|
||||
"full_path": "Volledig pad: {path}",
|
||||
"full_path_or_folder": "Volledig pad of map",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Deze functie gebruikt externe bronnen van Google om te kunnen werken.",
|
||||
"general": "Algemeen",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Wissel naar licht thema",
|
||||
"like": "Vind ik leuk",
|
||||
"like_deleted": "Like verwijderd",
|
||||
"link": "Link",
|
||||
"link_motion_video": "Koppel bewegende video",
|
||||
"link_to_docs": "Raadpleeg voor meer informatie de <link>documentatie</link>.",
|
||||
"link_to_oauth": "Koppel OAuth",
|
||||
"linked_oauth_account": "Gekoppeld OAuth account",
|
||||
"list": "Lijst",
|
||||
"live": "Operationeel",
|
||||
"loading": "Laden",
|
||||
"loading_search_results_failed": "Laden van zoekresultaten mislukt",
|
||||
"local": "Lokaal",
|
||||
@@ -1518,6 +1523,38 @@
|
||||
"marked_all_as_read": "Allen gemarkeerd als gelezen",
|
||||
"matches": "Overeenkomsten",
|
||||
"matching_assets": "Overeenkomende assets",
|
||||
"media_chrome": {
|
||||
"auto": "Automatisch",
|
||||
"captions": "Ondertiteling",
|
||||
"captions_off": "Uit",
|
||||
"closed_captions": "Ondertiteling",
|
||||
"decode_error": "Decodeerfout",
|
||||
"disable_captions": "Ondertiteling uitzetten",
|
||||
"enable_captions": "Ondertiteling aanzetten",
|
||||
"enter_fullscreen_mode": "Volledig scherm openen",
|
||||
"exit_fullscreen_mode": "Volledig scherm sluiten",
|
||||
"loop": "Herhalen",
|
||||
"media_error_description": "Een mediafout heeft ervoor gezorgd dat het afspelen is afgebroken. De media is mogelijk beschadigd, of uw browser ondersteunt dit formaat niet.",
|
||||
"media_loading": "media wordt geladen",
|
||||
"mute": "Dempen",
|
||||
"network_error": "Netwerkfout",
|
||||
"network_error_description": "Vanwege een netwerkfout is het downloaden van de media mislukt.",
|
||||
"not_supported_error": "Niet ondersteunde bron",
|
||||
"playback_rate": "Afspeelsnelheid",
|
||||
"playback_rate_current": "huidige afspeelsnelheid",
|
||||
"playback_rate_value": "Afspeelsnelheid {playbackRate}",
|
||||
"playback_time": "afspeeltijd",
|
||||
"quality": "Kwaliteit",
|
||||
"second": "seconde",
|
||||
"seconds": "seconden",
|
||||
"time_value_of_total_time": "{currentTime} van {totalTime}",
|
||||
"time_value_remaining": "nog {time} te gaan",
|
||||
"unmute": "Dempen opheffen",
|
||||
"unsupported_error_description": "Er is een niet-ondersteunde fout opgetreden. De server of het netwerk is uitgevallen, of je browser ondersteunt dit formaat niet.",
|
||||
"video_not_loaded_unknown_time": "video niet geladen, onbekende tijd.",
|
||||
"video_player": "videospeler",
|
||||
"volume": "volume"
|
||||
},
|
||||
"media_type": "Mediatype",
|
||||
"memories": "Herinneringen",
|
||||
"memories_all_caught_up": "Je bent helemaal bij",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Download de mobiele app via de onderstaande opties",
|
||||
"model": "Model",
|
||||
"month": "Maand",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Meer",
|
||||
"motion": "Beweging",
|
||||
"move": "Verplaats",
|
||||
"move_down": "Naar beneden verplaatsen",
|
||||
"move_off_locked_folder": "Verplaats uit vergrendelde map",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Kan locatie van alleen-lezen item(s) niet wijzigen, overslaan",
|
||||
"mute_memories": "Herinneringen dempen",
|
||||
"my_albums": "Mijn albums",
|
||||
"my_immich_description": "Huidige pagina kopiëren als Mijn Immich link",
|
||||
"my_immich_title": "Mijn Immich link",
|
||||
"name": "Naam",
|
||||
"name_or_nickname": "Naam of gebruikersnaam",
|
||||
"name_required": "Naam is verplicht",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "Items verwijderen?",
|
||||
"remove_custom_date_range": "Aangepast datumbereik verwijderen",
|
||||
"remove_deleted_assets": "Verwijder offline bestanden",
|
||||
"remove_filter": "Verwijder filter",
|
||||
"remove_from_album": "Verwijderen uit album",
|
||||
"remove_from_album_action_prompt": "{count, plural, one {# item} other {# items}} verwijderd uit het album",
|
||||
"remove_from_favorites": "Verwijderen uit favorieten",
|
||||
@@ -1926,6 +1966,8 @@
|
||||
"scan_settings": "Scaninstellingen",
|
||||
"scanning": "Scannen",
|
||||
"scanning_for_album": "Scannen voor album...",
|
||||
"screencast_mode_description": "Toetsenbord en muis indicatoren laten zien op het scherm",
|
||||
"screencast_mode_title": "Schakel de schermopnamemodus in/uit",
|
||||
"search": "Zoeken",
|
||||
"search_albums": "Zoek albums",
|
||||
"search_by_context": "Zoeken op context",
|
||||
@@ -1933,6 +1975,8 @@
|
||||
"search_by_description_example": "Wandelen in Sapa",
|
||||
"search_by_filename": "Zoeken op bestandsnaam of -extensie",
|
||||
"search_by_filename_example": "b.v. IMG_1234.JPG of PNG",
|
||||
"search_by_full_path": "Zoeken op volledig pad of map",
|
||||
"search_by_full_path_example": "/John/Projects/3D_Printen/2026-07-01 - je kunt zoeken op Projecten, 3D, Printen, 2026 enz.",
|
||||
"search_by_ocr": "Zoeken op tekst herkend door OCR",
|
||||
"search_by_ocr_example": "Kaneel",
|
||||
"search_camera_lens_model": "Zoek cameralens…",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Toon schema",
|
||||
"show_search_options": "Zoekopties weergeven",
|
||||
"show_shared_links": "Toon gedeelde links",
|
||||
"show_slideshow_metadata_overlay": "Toon afbeeldings info overlay",
|
||||
"show_slideshow_transition": "Diavoorstellingsovergang tonen",
|
||||
"show_supporter_badge": "Supportersbadge",
|
||||
"show_supporter_badge_description": "Toon een supportersbadge",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Doorgaan naar mappen",
|
||||
"skip_to_tags": "Doorgaan naar tags",
|
||||
"slideshow": "Diavoorstelling",
|
||||
"slideshow_metadata_overlay_mode": "Overlay content",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Enkel beschrijving",
|
||||
"slideshow_metadata_overlay_mode_full": "Volledig",
|
||||
"slideshow_repeat": "Herhaal diavoorstelling",
|
||||
"slideshow_repeat_description": "Keer terug naar het begin wanneer de diavoorstelling eindigt",
|
||||
"slideshow_settings": "Diavoorstelling instellingen",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Synchronisatiestatus",
|
||||
"sync_status_subtitle": "Bekijk en beheer het synchronisatie systeem",
|
||||
"sync_upload_album_setting_subtitle": "Maak en upload je foto's en video's naar de geselecteerde albums op Immich",
|
||||
"system_theme": "Systeem thema",
|
||||
"system_theme_command_description": "Gebruik systeem thema ({value})",
|
||||
"tag": "Tag",
|
||||
"tag_assets": "Items taggen",
|
||||
"tag_created": "Tag aangemaakt: {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Werkstromen",
|
||||
"workflows_help_text": "Werkstromen automatiseren acties op je items gebaseerd op triggers en filters",
|
||||
"wrong_pin_code": "Onjuiste pincode",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Jaar",
|
||||
"years_ago": "{years, plural, one {Een jaar} other {# jaar}} geleden",
|
||||
"yes": "Ja",
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"name": "immich-i18n",
|
||||
"version": "2.7.5",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"format": "prettier --cache --check .",
|
||||
"format:fix": "prettier --cache --write --list-different ."
|
||||
},
|
||||
"devDependencies": {
|
||||
"prettier": "^3.7.4",
|
||||
"prettier-plugin-sort-json": "^4.1.1"
|
||||
}
|
||||
}
|
||||
+56
-5
@@ -267,6 +267,8 @@
|
||||
"notification_enable_email_notifications": "Włącz powiadomienia e-mail",
|
||||
"notification_settings": "Ustawienia Powiadomień",
|
||||
"notification_settings_description": "Zarządzaj ustawieniami powiadomień, włączając w to powiadomienia e-mail",
|
||||
"oauth_allow_insecure_requests": "Zezwól na niezabezpieczone żądania",
|
||||
"oauth_allow_insecure_requests_description": "UWAGA: Spowoduje to wyłączenie weryfikacji certyfikatów TLS dla żądań OAuth i może narazić użytkownika na ataki typu MITM.",
|
||||
"oauth_auto_launch": "Automatyczne Uruchamianie",
|
||||
"oauth_auto_launch_description": "Rozpocznij proces logowania OAuth automatycznie po przejściu na stronę logowania",
|
||||
"oauth_auto_register": "Automatyczna rejestracja",
|
||||
@@ -274,9 +276,11 @@
|
||||
"oauth_button_text": "Tekst na przycisku",
|
||||
"oauth_client_secret_description": "Wymagane dla poufnego klienta lub jeśli PKCE (Proof Key for Code Exchange) nie jest obsługiwane dla klienta publicznego.",
|
||||
"oauth_enable_description": "Loguj się za pomocą OAuth",
|
||||
"oauth_end_session_url_description": "Po wylogowaniu przekieruj użytkownika na ten adres URI.",
|
||||
"oauth_mobile_redirect_uri": "Mobilny adres zwrotny",
|
||||
"oauth_mobile_redirect_uri_override": "Zapasowy URI przekierowania mobilnego",
|
||||
"oauth_mobile_redirect_uri_override_description": "Włącz, gdy dostawca OAuth nie pozwala na mobilne identyfikatory URI typu ''{callback}''",
|
||||
"oauth_prompt_description": "Parametr podpowiedzi (np. wybierz_konto, login, zgoda)",
|
||||
"oauth_role_claim": "Oświadczenie roli",
|
||||
"oauth_role_claim_description": "Automatycznie przyznaj dostęp administratora na podstawie obecności tego oświadczenia. Oświadczenie może mieć wartość „użytkownik” lub „administrator”.",
|
||||
"oauth_settings": "OAuth",
|
||||
@@ -881,15 +885,13 @@
|
||||
"cutoff_date_description": "Zachowaj zdjęcia z ostatnich…",
|
||||
"cutoff_day": "{count, plural, one {dzień} other {dni}}",
|
||||
"cutoff_year": "{count, plural, one {rok} few {lata} other {lat}}",
|
||||
"daily_title_text_date": "E, dd MMM",
|
||||
"daily_title_text_date_year": "E, dd MMM, yyyy",
|
||||
"dark": "Ciemny",
|
||||
"dark_theme": "Przełącz na ciemny motyw",
|
||||
"date": "Data",
|
||||
"date_after": "Data po",
|
||||
"date_and_time": "Data i godzina",
|
||||
"date_before": "Data przed",
|
||||
"date_format": "E d. LLL y • hh:mm",
|
||||
"date_of_birth": "Data urodzenia",
|
||||
"date_of_birth_saved": "Data urodzenia zapisana pomyślnie",
|
||||
"date_range": "Zakres dat",
|
||||
"day": "Dzień",
|
||||
@@ -933,7 +935,7 @@
|
||||
"details": "Szczegóły",
|
||||
"direction": "Kierunek",
|
||||
"disable": "Wyłącz",
|
||||
"disabled": "Wyłączone",
|
||||
"disabled": "Nieaktywny",
|
||||
"disallow_edits": "Nie pozwalaj edytować",
|
||||
"discord": "Discord",
|
||||
"discover": "Odkryj",
|
||||
@@ -1236,6 +1238,7 @@
|
||||
"free_up_space_description": "Przenieś zdjęcia i filmy z kopią zapasową do kosza urządzenia, aby zwolnić miejsce. Twoje kopie na serwerze pozostają bezpieczne.",
|
||||
"free_up_space_settings_subtitle": "Zwolnij miejsce w pamięci urządzenia",
|
||||
"full_path": "Pełna ścieżka: {path}",
|
||||
"full_path_or_folder": "Pełna ścieżka lub folder",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Ta funkcja , aby działać, ładuje zewnętrzne zasoby z Google.",
|
||||
"general": "Ogólne",
|
||||
@@ -1392,11 +1395,13 @@
|
||||
"light_theme": "Przełącz na jasny motyw",
|
||||
"like": "Polub",
|
||||
"like_deleted": "Polubienie usunięte",
|
||||
"link": "Link",
|
||||
"link_motion_video": "Podłącz ruchome wideo",
|
||||
"link_to_docs": "Więcej informacji znajdziesz w <link>dokumentacji</link>.",
|
||||
"link_to_oauth": "Połącz z OAuth",
|
||||
"linked_oauth_account": "Połączone konto OAuth",
|
||||
"list": "Lista",
|
||||
"live": "Na żywo",
|
||||
"loading": "Ładowanie",
|
||||
"loading_search_results_failed": "Ładowanie wyników wyszukiwania nie powiodło się",
|
||||
"local": "Lokalny",
|
||||
@@ -1518,6 +1523,38 @@
|
||||
"marked_all_as_read": "Zaznaczono wszystkie jako przeczytane",
|
||||
"matches": "Powiązania",
|
||||
"matching_assets": "Pasujące zasoby",
|
||||
"media_chrome": {
|
||||
"auto": "Auto",
|
||||
"captions": "Napisy",
|
||||
"captions_off": "Wyłączone",
|
||||
"closed_captions": "napisy zamknięte",
|
||||
"decode_error": "Błąd dekodowania",
|
||||
"disable_captions": "Wyłącz napisy",
|
||||
"enable_captions": "Włącz napisy",
|
||||
"enter_fullscreen_mode": "Przejdź do trybu pełnoekranowego",
|
||||
"exit_fullscreen_mode": "Wyjdź z trybu pełnoekranowego",
|
||||
"loop": "Pętla",
|
||||
"media_error_description": "Wystąpił błąd pliku multimedialnego, co spowodowało przerwanie odtwarzania. Plik może być uszkodzony lub Twoja przeglądarka nie obsługuje tego formatu.",
|
||||
"media_loading": "ładowanie multimediów",
|
||||
"mute": "Wycisz",
|
||||
"network_error": "Błąd sieci",
|
||||
"network_error_description": "Pobieranie pliku multimedialnego nie powiodło się z powodu błędu sieciowego.",
|
||||
"not_supported_error": "Źródło nieobsługiwane",
|
||||
"playback_rate": "Szybkość odtwarzania",
|
||||
"playback_rate_current": "aktualna prędkość odtwarzania",
|
||||
"playback_rate_value": "Prędkość odtwarzania {playbackRate}",
|
||||
"playback_time": "czas odtwarzania",
|
||||
"quality": "Jakość",
|
||||
"second": "sekunda",
|
||||
"seconds": "sekundy",
|
||||
"time_value_of_total_time": "{currentTime} z {totalTime}",
|
||||
"time_value_remaining": "Pozostało {time}",
|
||||
"unmute": "Włącz dźwięk",
|
||||
"unsupported_error_description": "Wystąpił nieobsługiwany błąd. Zawiódł serwer lub sieć albo twoja przeglądarka nie obsługuje tego formatu.",
|
||||
"video_not_loaded_unknown_time": "Film nie został załadowany, czas nieznany.",
|
||||
"video_player": "odtwarzacz filmów",
|
||||
"volume": "głośność"
|
||||
},
|
||||
"media_type": "Typ zasobu",
|
||||
"memories": "Wspomnienia",
|
||||
"memories_all_caught_up": "Wszystko złapane",
|
||||
@@ -1544,8 +1581,8 @@
|
||||
"mobile_app_download_onboarding_note": "Pobierz towarzyszącą aplikację mobilną, korzystając z następujących opcji",
|
||||
"model": "Model",
|
||||
"month": "Miesiąc",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"more": "Więcej",
|
||||
"motion": "Ruch",
|
||||
"move": "Przenieś",
|
||||
"move_down": "Przesuń w dół",
|
||||
"move_off_locked_folder": "Przenieś z folderu zablokowanego",
|
||||
@@ -1562,6 +1599,8 @@
|
||||
"multiselect_grid_edit_gps_err_read_only": "Nie można edytować lokalizacji zasobów tylko do odczytu, pomijanie",
|
||||
"mute_memories": "Wycisz wspomnienia",
|
||||
"my_albums": "Moje albumy",
|
||||
"my_immich_description": "Skopiuj bieżącą stronę jako link „Mój Immich”",
|
||||
"my_immich_title": "Mój Immich link",
|
||||
"name": "Nazwa",
|
||||
"name_or_nickname": "Nazwa lub pseudonim",
|
||||
"name_required": "Imię jest wymagane",
|
||||
@@ -1853,6 +1892,7 @@
|
||||
"remove_assets_title": "Usunąć zasoby?",
|
||||
"remove_custom_date_range": "Usuń niestandardowy zakres dat",
|
||||
"remove_deleted_assets": "Usuń Niedostępne Pliki",
|
||||
"remove_filter": "Usuń filtr",
|
||||
"remove_from_album": "Usuń z albumu",
|
||||
"remove_from_album_action_prompt": "{count} usunięto z albumu",
|
||||
"remove_from_favorites": "Usuń z ulubionych",
|
||||
@@ -1926,6 +1966,8 @@
|
||||
"scan_settings": "Ustawienia Skanowania",
|
||||
"scanning": "Skanowanie",
|
||||
"scanning_for_album": "Skanuję album...",
|
||||
"screencast_mode_description": "Wyświetlaj na ekranie wskaźniki zdarzeń klawiatury i myszy",
|
||||
"screencast_mode_title": "Włącz tryb prezentacji ekranu",
|
||||
"search": "Szukaj",
|
||||
"search_albums": "Przeszukaj albumy",
|
||||
"search_by_context": "Wyszukaj według treści",
|
||||
@@ -1933,6 +1975,8 @@
|
||||
"search_by_description_example": "Całodniowa wycieczka w Bieszczady",
|
||||
"search_by_filename": "Szukaj według nazwy pliku lub rozszerzenia",
|
||||
"search_by_filename_example": "np. IMG_1234.JPG lub PNG",
|
||||
"search_by_full_path": "Wyszukaj według pełnej ścieżki lub folderu",
|
||||
"search_by_full_path_example": "/John/Projekty/Drukowanie_3D/2026-07-01 – możesz wyszukiwać hasła takie jak Projekty, 3D, Drukowanie, 2026 itp.",
|
||||
"search_by_ocr": "Wyszukaj przy użyciu OCR",
|
||||
"search_by_ocr_example": "Latte",
|
||||
"search_camera_lens_model": "Wyszukaj model obiektywu...",
|
||||
@@ -2148,6 +2192,7 @@
|
||||
"show_schema": "Pokaż schemat",
|
||||
"show_search_options": "Wyświetl opcje wyszukiwania",
|
||||
"show_shared_links": "Pokaż udostępniane linki",
|
||||
"show_slideshow_metadata_overlay": "Pokaż nakładkę z informacjami o zdjęciu",
|
||||
"show_slideshow_transition": "Pokaż przejście pokazu slajdów",
|
||||
"show_supporter_badge": "Odznaka wspierającego",
|
||||
"show_supporter_badge_description": "Pokaż odznakę wspierającego",
|
||||
@@ -2163,6 +2208,9 @@
|
||||
"skip_to_folders": "Przejdź do folderów",
|
||||
"skip_to_tags": "Przejdź do tagów",
|
||||
"slideshow": "Pokaz slajdów",
|
||||
"slideshow_metadata_overlay_mode": "Treść nakładki",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Tylko opis",
|
||||
"slideshow_metadata_overlay_mode_full": "Pełna",
|
||||
"slideshow_repeat": "Powtórz pokaz slajdów",
|
||||
"slideshow_repeat_description": "Zapętl pokaz slajdów",
|
||||
"slideshow_settings": "Ustawienia pokazu slajdów",
|
||||
@@ -2214,6 +2262,8 @@
|
||||
"sync_status": "Stan synchronizacji",
|
||||
"sync_status_subtitle": "Wyświetl i zarządzaj systemem synchronizacji",
|
||||
"sync_upload_album_setting_subtitle": "Twórz i przesyłaj swoje zdjęcia i filmy do wybranych albumów w Immich",
|
||||
"system_theme": "Motyw systemu",
|
||||
"system_theme_command_description": "Użyj motywu systemowego ({value})",
|
||||
"tag": "Etykieta",
|
||||
"tag_assets": "Ustaw etykiety zasobów",
|
||||
"tag_created": "Stworzono etykietę: {tag}",
|
||||
@@ -2425,6 +2475,7 @@
|
||||
"workflows": "Przepływy pracy",
|
||||
"workflows_help_text": "Przepływy pracy automatyzują działania na twoich zasobach w oparciu o wyzwalacze i filtry",
|
||||
"wrong_pin_code": "Nieprawidłowy kod PIN",
|
||||
"x_of_total": "{x} z {total}",
|
||||
"year": "Rok",
|
||||
"years_ago": "{years, plural, one {# rok} few {# lata} other {# lat}} temu",
|
||||
"yes": "Tak",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user