Compare commits

..

1 Commits

Author SHA1 Message Date
Thomas Way
d46e5f2436 feat: Use postgres as a queue
We've been keen to try this for a while as it means we can remove redis as a
dependency, which makes Immich easier to setup and run.

This replaces bullmq with a bespoke postgres queue. Jobs in the queue are
processed either immediately via triggers and notifications, or eventually if a
notification is missed.
2025-04-30 22:42:18 +01:00
670 changed files with 15977 additions and 26467 deletions

2
.github/.nvmrc vendored
View File

@@ -1 +1 @@
22.15.0 22.14.0

View File

@@ -1,118 +0,0 @@
name: 'Single arch image build'
description: 'Build single-arch image on platform appropriate runner'
inputs:
image:
description: 'Name of the image to build'
required: true
ghcr-token:
description: 'GitHub Container Registry token'
required: true
platform:
description: 'Platform to build for'
required: true
artifact-key-base:
description: 'Base key for artifact name'
required: true
context:
description: 'Path to build context'
required: true
dockerfile:
description: 'Path to Dockerfile'
required: true
build-args:
description: 'Docker build arguments'
required: false
runs:
using: 'composite'
steps:
- name: Prepare
id: prepare
shell: bash
env:
PLATFORM: ${{ inputs.platform }}
run: |
echo "platform-pair=${PLATFORM//\//-}" >> $GITHUB_OUTPUT
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
- name: Login to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
if: ${{ !github.event.pull_request.head.repo.fork }}
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ inputs.ghcr-token }}
- name: Generate cache key suffix
id: cache-key-suffix
shell: bash
env:
REF: ${{ github.ref_name }}
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
echo "cache-key-suffix=pr-${{ github.event.number }}" >> $GITHUB_OUTPUT
else
SUFFIX=$(echo "${REF}" | sed 's/[^a-zA-Z0-9]/-/g')
echo "suffix=${SUFFIX}" >> $GITHUB_OUTPUT
fi
- name: Generate cache target
id: cache-target
shell: bash
env:
BUILD_ARGS: ${{ inputs.build-args }}
IMAGE: ${{ inputs.image }}
SUFFIX: ${{ steps.cache-key-suffix.outputs.suffix }}
PLATFORM_PAIR: ${{ steps.prepare.outputs.platform-pair }}
run: |
HASH=$(sha256sum <<< "${BUILD_ARGS}" | cut -d' ' -f1)
CACHE_KEY="${PLATFORM_PAIR}-${HASH}"
echo "cache-key-base=${CACHE_KEY}" >> $GITHUB_OUTPUT
if [[ "${{ github.event.pull_request.head.repo.fork }}" == "true" ]]; then
# Essentially just ignore the cache output (forks can't write to registry cache)
echo "cache-to=type=local,dest=/tmp/discard,ignore-error=true" >> $GITHUB_OUTPUT
else
echo "cache-to=type=registry,ref=${IMAGE}-build-cache:${CACHE_KEY}-${SUFFIX},mode=max,compression=zstd" >> $GITHUB_OUTPUT
fi
- name: Generate docker image tags
id: meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
env:
DOCKER_METADATA_PR_HEAD_SHA: 'true'
- name: Build and push image
id: build
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
with:
context: ${{ inputs.context }}
file: ${{ inputs.dockerfile }}
platforms: ${{ inputs.platform }}
labels: ${{ steps.meta.outputs.labels }}
cache-to: ${{ steps.cache-target.outputs.cache-to }}
cache-from: |
type=registry,ref=${{ inputs.image }}-build-cache:${{ steps.cache-target.outputs.cache-key-base }}-${{ steps.cache-key-suffix.outputs.suffix }}
type=registry,ref=${{ inputs.image }}-build-cache:${{ steps.cache-target.outputs.cache-key-base }}-main
outputs: type=image,"name=${{ inputs.image }}",push-by-digest=true,name-canonical=true,push=${{ !github.event.pull_request.head.repo.fork }}
build-args: |
BUILD_ID=${{ github.run_id }}
BUILD_IMAGE=${{ github.event_name == 'release' && github.ref_name || steps.meta.outputs.tags }}
BUILD_SOURCE_REF=${{ github.ref_name }}
BUILD_SOURCE_COMMIT=${{ github.sha }}
${{ inputs.build-args }}
- name: Export digest
shell: bash
run: | # zizmor: ignore[template-injection]
mkdir -p ${{ runner.temp }}/digests
digest="${{ steps.build.outputs.digest }}"
touch "${{ runner.temp }}/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: ${{ inputs.artifact-key-base }}-${{ steps.cache-target.outputs.cache-key-base }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1

View File

@@ -35,12 +35,12 @@ jobs:
should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }} should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }}
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- id: found_paths - id: found_paths
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
with: with:
filters: | filters: |
mobile: mobile:
@@ -61,19 +61,19 @@ jobs:
runs-on: macos-14 runs-on: macos-14
steps: steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
ref: ${{ inputs.ref || github.sha }} ref: ${{ inputs.ref || github.sha }}
persist-credentials: false persist-credentials: false
- uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1 - uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4
with: with:
distribution: 'zulu' distribution: 'zulu'
java-version: '17' java-version: '17'
cache: 'gradle' cache: 'gradle'
- name: Setup Flutter SDK - name: Setup Flutter SDK
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2.19.0 uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2
with: with:
channel: 'stable' channel: 'stable'
flutter-version-file: ./mobile/pubspec.yaml flutter-version-file: ./mobile/pubspec.yaml
@@ -104,7 +104,7 @@ jobs:
flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64,android-x64 flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64,android-x64
- name: Publish Android Artifact - name: Publish Android Artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with: with:
name: release-apk-signed name: release-apk-signed
path: mobile/build/app/outputs/flutter-apk/*.apk path: mobile/build/app/outputs/flutter-apk/*.apk

View File

@@ -19,7 +19,7 @@ jobs:
actions: write actions: write
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false

View File

@@ -29,12 +29,12 @@ jobs:
working-directory: ./cli working-directory: ./cli
steps: steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
# Setup .npmrc file to publish to npm # Setup .npmrc file to publish to npm
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './cli/.nvmrc' node-version-file: './cli/.nvmrc'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'
@@ -59,7 +59,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
@@ -70,7 +70,7 @@ jobs:
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0 uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
- name: Login to GitHub Container Registry - name: Login to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
if: ${{ !github.event.pull_request.head.repo.fork }} if: ${{ !github.event.pull_request.head.repo.fork }}
with: with:
registry: ghcr.io registry: ghcr.io
@@ -85,7 +85,7 @@ jobs:
- name: Generate docker image tags - name: Generate docker image tags
id: metadata id: metadata
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0 uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
with: with:
flavor: | flavor: |
latest=false latest=false

View File

@@ -44,13 +44,13 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
# Initializes the CodeQL tools for scanning. # Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL - name: Initialize CodeQL
uses: github/codeql-action/init@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 uses: github/codeql-action/init@28deaeda66b76a05916b6923827895f2b14ab387 # v3
with: with:
languages: ${{ matrix.language }} languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file. # If you wish to specify custom queries, you can do so here or in a config file.
@@ -63,7 +63,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # 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) # If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild - name: Autobuild
uses: github/codeql-action/autobuild@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 uses: github/codeql-action/autobuild@28deaeda66b76a05916b6923827895f2b14ab387 # v3
# Command-line programs to run using the OS shell. # 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 # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -76,6 +76,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh # ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis - name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 uses: github/codeql-action/analyze@28deaeda66b76a05916b6923827895f2b14ab387 # v3
with: with:
category: '/language:${{matrix.language}}' category: '/language:${{matrix.language}}'

View File

@@ -24,11 +24,11 @@ jobs:
should_run_ml: ${{ steps.found_paths.outputs.machine-learning == 'true' || steps.should_force.outputs.should_force == 'true' }} should_run_ml: ${{ steps.found_paths.outputs.machine-learning == 'true' || steps.should_force.outputs.should_force == 'true' }}
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- id: found_paths - id: found_paths
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
with: with:
filters: | filters: |
server: server:
@@ -40,8 +40,6 @@ jobs:
- 'machine-learning/**' - 'machine-learning/**'
workflow: workflow:
- '.github/workflows/docker.yml' - '.github/workflows/docker.yml'
- '.github/workflows/multi-runner-build.yml'
- '.github/actions/image-build'
- name: Check if we should force jobs to run - name: Check if we should force jobs to run
id: should_force id: should_force
@@ -60,7 +58,7 @@ jobs:
suffix: ['', '-cuda', '-rocm', '-openvino', '-armnn', '-rknn'] suffix: ['', '-cuda', '-rocm', '-openvino', '-armnn', '-rknn']
steps: steps:
- name: Login to GitHub Container Registry - name: Login to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
@@ -89,7 +87,7 @@ jobs:
suffix: [''] suffix: ['']
steps: steps:
- name: Login to GitHub Container Registry - name: Login to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
with: with:
registry: ghcr.io registry: ghcr.io
username: ${{ github.repository_owner }} username: ${{ github.repository_owner }}
@@ -105,74 +103,429 @@ jobs:
docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_PR}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}" docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_PR}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}"
docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_COMMIT}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}" docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_COMMIT}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}"
machine-learning: build_and_push_ml:
name: Build and Push ML name: Build and Push ML
needs: pre-job needs: pre-job
permissions:
contents: read
packages: write
if: ${{ needs.pre-job.outputs.should_run_ml == 'true' }} if: ${{ needs.pre-job.outputs.should_run_ml == 'true' }}
runs-on: ${{ matrix.runner }}
env:
image: immich-machine-learning
context: machine-learning
file: machine-learning/Dockerfile
GHCR_REPO: ghcr.io/${{ github.repository_owner }}/immich-machine-learning
strategy:
# Prevent a failure in one image from stopping the other builds
fail-fast: false
matrix:
include:
- platform: linux/amd64
runner: ubuntu-latest
device: cpu
- platform: linux/arm64
runner: ubuntu-24.04-arm
device: cpu
- platform: linux/amd64
runner: ubuntu-latest
device: cuda
suffix: -cuda
- platform: linux/amd64
runner: mich
device: rocm
suffix: -rocm
- platform: linux/amd64
runner: ubuntu-latest
device: openvino
suffix: -openvino
- platform: linux/arm64
runner: ubuntu-24.04-arm
device: armnn
suffix: -armnn
- platform: linux/arm64
runner: ubuntu-24.04-arm
device: rknn
suffix: -rknn
steps:
- name: Prepare
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
persist-credentials: false
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
- name: Login to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
if: ${{ !github.event.pull_request.head.repo.fork }}
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Generate cache key suffix
env:
REF: ${{ github.ref_name }}
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
echo "CACHE_KEY_SUFFIX=pr-${{ github.event.number }}" >> $GITHUB_ENV
else
SUFFIX=$(echo "${REF}" | sed 's/[^a-zA-Z0-9]/-/g')
echo "CACHE_KEY_SUFFIX=${SUFFIX}" >> $GITHUB_ENV
fi
- name: Generate cache target
id: cache-target
run: |
if [[ "${{ github.event.pull_request.head.repo.fork }}" == "true" ]]; then
# Essentially just ignore the cache output (forks can't write to registry cache)
echo "cache-to=type=local,dest=/tmp/discard,ignore-error=true" >> $GITHUB_OUTPUT
else
echo "cache-to=type=registry,ref=${GHCR_REPO}-build-cache:${PLATFORM_PAIR}-${{ matrix.device }}-${CACHE_KEY_SUFFIX},mode=max,compression=zstd" >> $GITHUB_OUTPUT
fi
- name: Generate docker image tags
id: meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
env:
DOCKER_METADATA_PR_HEAD_SHA: 'true'
- name: Build and push image
id: build
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
with:
context: ${{ env.context }}
file: ${{ env.file }}
platforms: ${{ matrix.platforms }}
labels: ${{ steps.meta.outputs.labels }}
cache-to: ${{ steps.cache-target.outputs.cache-to }}
cache-from: |
type=registry,ref=${{ env.GHCR_REPO }}-build-cache:${{ env.PLATFORM_PAIR }}-${{ matrix.device }}-${{ env.CACHE_KEY_SUFFIX }}
type=registry,ref=${{ env.GHCR_REPO }}-build-cache:${{ env.PLATFORM_PAIR }}-${{ matrix.device }}-main
outputs: type=image,"name=${{ env.GHCR_REPO }}",push-by-digest=true,name-canonical=true,push=${{ !github.event.pull_request.head.repo.fork }}
build-args: |
DEVICE=${{ matrix.device }}
BUILD_ID=${{ github.run_id }}
BUILD_IMAGE=${{ github.event_name == 'release' && github.ref_name || steps.metadata.outputs.tags }}
BUILD_SOURCE_REF=${{ github.ref_name }}
BUILD_SOURCE_COMMIT=${{ github.sha }}
- name: Export digest
run: | # zizmor: ignore[template-injection]
mkdir -p ${{ runner.temp }}/digests
digest="${{ steps.build.outputs.digest }}"
touch "${{ runner.temp }}/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: ml-digests-${{ matrix.device }}-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1
merge_ml:
name: Merge & Push ML
runs-on: ubuntu-latest
permissions:
contents: read
actions: read
packages: write
if: ${{ needs.pre-job.outputs.should_run_ml == 'true' && !github.event.pull_request.head.repo.fork }}
env:
GHCR_REPO: ghcr.io/${{ github.repository_owner }}/immich-machine-learning
DOCKER_REPO: altran1502/immich-machine-learning
strategy:
matrix:
include:
- device: cpu
- device: cuda
suffix: -cuda
- device: rocm
suffix: -rocm
- device: openvino
suffix: -openvino
- device: armnn
suffix: -armnn
- device: rknn
suffix: -rknn
needs:
- build_and_push_ml
steps:
- name: Download digests
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
path: ${{ runner.temp }}/digests
pattern: ml-digests-${{ matrix.device }}-*
merge-multiple: true
- name: Login to Docker Hub
if: ${{ github.event_name == 'release' }}
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
- name: Generate docker image tags
id: meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
env:
DOCKER_METADATA_PR_HEAD_SHA: 'true'
with:
flavor: |
# Disable latest tag
latest=false
suffix=${{ matrix.suffix }}
images: |
name=${{ env.GHCR_REPO }}
name=${{ env.DOCKER_REPO }},enable=${{ github.event_name == 'release' }}
tags: |
# Tag with branch name
type=ref,event=branch
# Tag with pr-number
type=ref,event=pr
# Tag with long commit sha hash
type=sha,format=long,prefix=commit-
# Tag with git tag on release
type=ref,event=tag
type=raw,value=release,enable=${{ github.event_name == 'release' }}
- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
run: |
# Process annotations
declare -a ANNOTATIONS=()
if [[ -n "$DOCKER_METADATA_OUTPUT_JSON" ]]; then
while IFS= read -r annotation; do
# Extract key and value by removing the manifest: prefix
if [[ "$annotation" =~ ^manifest:(.+)=(.+)$ ]]; then
key="${BASH_REMATCH[1]}"
value="${BASH_REMATCH[2]}"
# Use array to properly handle arguments with spaces
ANNOTATIONS+=(--annotation "index:$key=$value")
fi
done < <(jq -r '.annotations[]' <<< "$DOCKER_METADATA_OUTPUT_JSON")
fi
TAGS=$(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
SOURCE_ARGS=$(printf "${GHCR_REPO}@sha256:%s " *)
docker buildx imagetools create $TAGS "${ANNOTATIONS[@]}" $SOURCE_ARGS
build_and_push_server:
name: Build and Push Server
runs-on: ${{ matrix.runner }}
permissions:
contents: read
packages: write
needs: pre-job
if: ${{ needs.pre-job.outputs.should_run_server == 'true' }}
env:
image: immich-server
context: .
file: server/Dockerfile
GHCR_REPO: ghcr.io/${{ github.repository_owner }}/immich-server
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
- device: cpu - platform: linux/amd64
tag-suffix: '' runner: ubuntu-latest
- device: cuda - platform: linux/arm64
tag-suffix: '-cuda' runner: ubuntu-24.04-arm
platforms: linux/amd64 steps:
- device: openvino - name: Prepare
tag-suffix: '-openvino' run: |
platforms: linux/amd64 platform=${{ matrix.platform }}
- device: armnn echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
tag-suffix: '-armnn'
platforms: linux/arm64
- device: rknn
tag-suffix: '-rknn'
platforms: linux/arm64
- device: rocm
tag-suffix: '-rocm'
platforms: linux/amd64
runner-mapping: '{"linux/amd64": "mich"}'
uses: ./.github/workflows/multi-runner-build.yml
permissions:
contents: read
actions: read
packages: write
secrets:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
with:
image: immich-machine-learning
context: machine-learning
dockerfile: machine-learning/Dockerfile
platforms: ${{ matrix.platforms }}
runner-mapping: ${{ matrix.runner-mapping }}
tag-suffix: ${{ matrix.tag-suffix }}
dockerhub-push: ${{ github.event_name == 'release' }}
build-args: |
DEVICE=${{ matrix.device }}
server: - name: Checkout
name: Build and Push Server uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
needs: pre-job with:
if: ${{ needs.pre-job.outputs.should_run_server == 'true' }} persist-credentials: false
uses: ./.github/workflows/multi-runner-build.yml
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
- name: Login to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
if: ${{ !github.event.pull_request.head.repo.fork }}
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Generate cache key suffix
env:
REF: ${{ github.ref_name }}
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
echo "CACHE_KEY_SUFFIX=pr-${{ github.event.number }}" >> $GITHUB_ENV
else
SUFFIX=$(echo "${REF}" | sed 's/[^a-zA-Z0-9]/-/g')
echo "CACHE_KEY_SUFFIX=${SUFFIX}" >> $GITHUB_ENV
fi
- name: Generate cache target
id: cache-target
run: |
if [[ "${{ github.event.pull_request.head.repo.fork }}" == "true" ]]; then
# Essentially just ignore the cache output (forks can't write to registry cache)
echo "cache-to=type=local,dest=/tmp/discard,ignore-error=true" >> $GITHUB_OUTPUT
else
echo "cache-to=type=registry,ref=${GHCR_REPO}-build-cache:${PLATFORM_PAIR}-${CACHE_KEY_SUFFIX},mode=max,compression=zstd" >> $GITHUB_OUTPUT
fi
- name: Generate docker image tags
id: meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
env:
DOCKER_METADATA_PR_HEAD_SHA: 'true'
- name: Build and push image
id: build
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
with:
context: ${{ env.context }}
file: ${{ env.file }}
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
cache-to: ${{ steps.cache-target.outputs.cache-to }}
cache-from: |
type=registry,ref=${{ env.GHCR_REPO }}-build-cache:${{ env.PLATFORM_PAIR }}-${{ env.CACHE_KEY_SUFFIX }}
type=registry,ref=${{ env.GHCR_REPO }}-build-cache:${{ env.PLATFORM_PAIR }}-main
outputs: type=image,"name=${{ env.GHCR_REPO }}",push-by-digest=true,name-canonical=true,push=${{ !github.event.pull_request.head.repo.fork }}
build-args: |
DEVICE=cpu
BUILD_ID=${{ github.run_id }}
BUILD_IMAGE=${{ github.event_name == 'release' && github.ref_name || steps.metadata.outputs.tags }}
BUILD_SOURCE_REF=${{ github.ref_name }}
BUILD_SOURCE_COMMIT=${{ github.sha }}
- name: Export digest
run: | # zizmor: ignore[template-injection]
mkdir -p ${{ runner.temp }}/digests
digest="${{ steps.build.outputs.digest }}"
touch "${{ runner.temp }}/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: server-digests-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1
merge_server:
name: Merge & Push Server
runs-on: ubuntu-latest
permissions: permissions:
contents: read contents: read
actions: read actions: read
packages: write packages: write
secrets: if: ${{ needs.pre-job.outputs.should_run_server == 'true' && !github.event.pull_request.head.repo.fork }}
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} env:
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }} GHCR_REPO: ghcr.io/${{ github.repository_owner }}/immich-server
with: DOCKER_REPO: altran1502/immich-server
image: immich-server needs:
context: . - build_and_push_server
dockerfile: server/Dockerfile steps:
dockerhub-push: ${{ github.event_name == 'release' }} - name: Download digests
build-args: | uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
DEVICE=cpu with:
path: ${{ runner.temp }}/digests
pattern: server-digests-*
merge-multiple: true
- name: Login to Docker Hub
if: ${{ github.event_name == 'release' }}
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
- name: Generate docker image tags
id: meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
env:
DOCKER_METADATA_PR_HEAD_SHA: 'true'
with:
flavor: |
# Disable latest tag
latest=false
suffix=${{ matrix.suffix }}
images: |
name=${{ env.GHCR_REPO }}
name=${{ env.DOCKER_REPO }},enable=${{ github.event_name == 'release' }}
tags: |
# Tag with branch name
type=ref,event=branch
# Tag with pr-number
type=ref,event=pr
# Tag with long commit sha hash
type=sha,format=long,prefix=commit-
# Tag with git tag on release
type=ref,event=tag
type=raw,value=release,enable=${{ github.event_name == 'release' }}
- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
run: |
# Process annotations
declare -a ANNOTATIONS=()
if [[ -n "$DOCKER_METADATA_OUTPUT_JSON" ]]; then
while IFS= read -r annotation; do
# Extract key and value by removing the manifest: prefix
if [[ "$annotation" =~ ^manifest:(.+)=(.+)$ ]]; then
key="${BASH_REMATCH[1]}"
value="${BASH_REMATCH[2]}"
# Use array to properly handle arguments with spaces
ANNOTATIONS+=(--annotation "index:$key=$value")
fi
done < <(jq -r '.annotations[]' <<< "$DOCKER_METADATA_OUTPUT_JSON")
fi
TAGS=$(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
SOURCE_ARGS=$(printf "${GHCR_REPO}@sha256:%s " *)
docker buildx imagetools create $TAGS "${ANNOTATIONS[@]}" $SOURCE_ARGS
success-check-server: success-check-server:
name: Docker Build & Push Server Success name: Docker Build & Push Server Success
needs: [server, retag_server] needs: [merge_server, retag_server]
permissions: {} permissions: {}
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: always() if: always()
@@ -187,7 +540,7 @@ jobs:
success-check-ml: success-check-ml:
name: Docker Build & Push ML Success name: Docker Build & Push ML Success
needs: [machine-learning, retag_ml] needs: [merge_ml, retag_ml]
permissions: {} permissions: {}
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: always() if: always()

View File

@@ -21,11 +21,11 @@ jobs:
should_run: ${{ steps.found_paths.outputs.docs == 'true' || steps.should_force.outputs.should_force == 'true' }} should_run: ${{ steps.found_paths.outputs.docs == 'true' || steps.should_force.outputs.should_force == 'true' }}
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- id: found_paths - id: found_paths
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
with: with:
filters: | filters: |
docs: docs:
@@ -49,12 +49,12 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './docs/.nvmrc' node-version-file: './docs/.nvmrc'
@@ -68,7 +68,7 @@ jobs:
run: npm run build run: npm run build
- name: Upload build output - name: Upload build output
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with: with:
name: docs-build-output name: docs-build-output
path: docs/build/ path: docs/build/

View File

@@ -20,7 +20,7 @@ jobs:
run: echo 'The triggering workflow did not succeed' && exit 1 run: echo 'The triggering workflow did not succeed' && exit 1
- name: Get artifact - name: Get artifact
id: get-artifact id: get-artifact
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
with: with:
script: | script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
@@ -38,7 +38,7 @@ jobs:
return { found: true, id: matchArtifact.id }; return { found: true, id: matchArtifact.id };
- name: Determine deploy parameters - name: Determine deploy parameters
id: parameters id: parameters
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
env: env:
HEAD_SHA: ${{ github.event.workflow_run.head_sha }} HEAD_SHA: ${{ github.event.workflow_run.head_sha }}
with: with:
@@ -108,13 +108,13 @@ jobs:
if: ${{ fromJson(needs.checks.outputs.artifact).found && fromJson(needs.checks.outputs.parameters).shouldDeploy }} if: ${{ fromJson(needs.checks.outputs.artifact).found && fromJson(needs.checks.outputs.parameters).shouldDeploy }}
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Load parameters - name: Load parameters
id: parameters id: parameters
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
env: env:
PARAM_JSON: ${{ needs.checks.outputs.parameters }} PARAM_JSON: ${{ needs.checks.outputs.parameters }}
with: with:
@@ -125,7 +125,7 @@ jobs:
core.setOutput("shouldDeploy", parameters.shouldDeploy); core.setOutput("shouldDeploy", parameters.shouldDeploy);
- name: Download artifact - name: Download artifact
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
env: env:
ARTIFACT_JSON: ${{ needs.checks.outputs.artifact }} ARTIFACT_JSON: ${{ needs.checks.outputs.artifact }}
with: with:
@@ -150,7 +150,7 @@ jobs:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }} TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2.1.5 uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
with: with:
tg_version: '0.58.12' tg_version: '0.58.12'
tofu_version: '1.7.1' tofu_version: '1.7.1'
@@ -165,7 +165,7 @@ jobs:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }} TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2.1.5 uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
with: with:
tg_version: '0.58.12' tg_version: '0.58.12'
tofu_version: '1.7.1' tofu_version: '1.7.1'
@@ -181,8 +181,7 @@ jobs:
echo "output=$CLEANED" >> $GITHUB_OUTPUT echo "output=$CLEANED" >> $GITHUB_OUTPUT
- name: Publish to Cloudflare Pages - name: Publish to Cloudflare Pages
# TODO: Action is deprecated uses: cloudflare/pages-action@f0a1cd58cd66095dee69bfa18fa5efd1dde93bca # v1
uses: cloudflare/pages-action@f0a1cd58cd66095dee69bfa18fa5efd1dde93bca # v1.5.0
with: with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN_PAGES_UPLOAD }} apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN_PAGES_UPLOAD }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
@@ -199,7 +198,7 @@ jobs:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }} TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2.1.5 uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
with: with:
tg_version: '0.58.12' tg_version: '0.58.12'
tofu_version: '1.7.1' tofu_version: '1.7.1'
@@ -207,7 +206,7 @@ jobs:
tg_command: 'apply' tg_command: 'apply'
- name: Comment - name: Comment
uses: actions-cool/maintain-one-comment@4b2dbf086015f892dcb5e8c1106f5fccd6c1476b # v3.2.0 uses: actions-cool/maintain-one-comment@4b2dbf086015f892dcb5e8c1106f5fccd6c1476b # v3
if: ${{ steps.parameters.outputs.event == 'pr' }} if: ${{ steps.parameters.outputs.event == 'pr' }}
with: with:
number: ${{ fromJson(needs.checks.outputs.parameters).pr_number }} number: ${{ fromJson(needs.checks.outputs.parameters).pr_number }}

View File

@@ -14,7 +14,7 @@ jobs:
pull-requests: write pull-requests: write
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
@@ -25,7 +25,7 @@ jobs:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }} TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2.1.5 uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
with: with:
tg_version: '0.58.12' tg_version: '0.58.12'
tofu_version: '1.7.1' tofu_version: '1.7.1'
@@ -33,7 +33,7 @@ jobs:
tg_command: 'destroy -refresh=false' tg_command: 'destroy -refresh=false'
- name: Comment - name: Comment
uses: actions-cool/maintain-one-comment@4b2dbf086015f892dcb5e8c1106f5fccd6c1476b # v3.2.0 uses: actions-cool/maintain-one-comment@4b2dbf086015f892dcb5e8c1106f5fccd6c1476b # v3
with: with:
number: ${{ github.event.number }} number: ${{ github.event.number }}
delete: true delete: true

View File

@@ -16,20 +16,20 @@ jobs:
steps: steps:
- name: Generate a token - name: Generate a token
id: generate-token id: generate-token
uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2
with: with:
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }} app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }} private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
- name: 'Checkout' - name: 'Checkout'
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
ref: ${{ github.event.pull_request.head.ref }} ref: ${{ github.event.pull_request.head.ref }}
token: ${{ steps.generate-token.outputs.token }} token: ${{ steps.generate-token.outputs.token }}
persist-credentials: true persist-credentials: true
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './server/.nvmrc' node-version-file: './server/.nvmrc'
@@ -37,13 +37,13 @@ jobs:
run: make install-all && make format-all run: make install-all && make format-all
- name: Commit and push - name: Commit and push
uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9.1.4 uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9
with: with:
default_author: github_actions default_author: github_actions
message: 'chore: fix formatting' message: 'chore: fix formatting'
- name: Remove label - name: Remove label
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
if: always() if: always()
with: with:
script: | script: |

View File

@@ -1,185 +0,0 @@
name: 'Multi-runner container image build'
on:
workflow_call:
inputs:
image:
description: 'Name of the image'
type: string
required: true
context:
description: 'Path to build context'
type: string
required: true
dockerfile:
description: 'Path to Dockerfile'
type: string
required: true
tag-suffix:
description: 'Suffix to append to the image tag'
type: string
default: ''
dockerhub-push:
description: 'Push to Docker Hub'
type: boolean
default: false
build-args:
description: 'Docker build arguments'
type: string
required: false
platforms:
description: 'Platforms to build for'
type: string
runner-mapping:
description: 'Mapping from platforms to runners'
type: string
secrets:
DOCKERHUB_USERNAME:
required: false
DOCKERHUB_TOKEN:
required: false
env:
GHCR_IMAGE: ghcr.io/${{ github.repository_owner }}/${{ inputs.image }}
DOCKERHUB_IMAGE: altran1502/${{ inputs.image }}
jobs:
matrix:
name: 'Generate matrix'
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.matrix.outputs.matrix }}
key: ${{ steps.artifact-key.outputs.base }}
steps:
- name: Generate build matrix
id: matrix
shell: bash
env:
PLATFORMS: ${{ inputs.platforms || 'linux/amd64,linux/arm64' }}
RUNNER_MAPPING: ${{ inputs.runner-mapping || '{"linux/amd64":"ubuntu-latest","linux/arm64":"ubuntu-24.04-arm"}' }}
run: |
matrix=$(jq -R -c \
--argjson runner_mapping "${RUNNER_MAPPING}" \
'split(",") | map({platform: ., runner: $runner_mapping[.]})' \
<<< "${PLATFORMS}")
echo "${matrix}"
echo "matrix=${matrix}" >> $GITHUB_OUTPUT
- name: Determine artifact key
id: artifact-key
shell: bash
env:
IMAGE: ${{ inputs.image }}
SUFFIX: ${{ inputs.tag-suffix }}
run: |
if [[ -n "${SUFFIX}" ]]; then
base="${IMAGE}${SUFFIX}-digests"
else
base="${IMAGE}-digests"
fi
echo "${base}"
echo "base=${base}" >> $GITHUB_OUTPUT
build:
needs: matrix
runs-on: ${{ matrix.runner }}
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
include: ${{ fromJson(needs.matrix.outputs.matrix) }}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with:
persist-credentials: false
- uses: ./.github/actions/image-build
with:
context: ${{ inputs.context }}
dockerfile: ${{ inputs.dockerfile }}
image: ${{ env.GHCR_IMAGE }}
ghcr-token: ${{ secrets.GITHUB_TOKEN }}
platform: ${{ matrix.platform }}
artifact-key-base: ${{ needs.matrix.outputs.key }}
build-args: ${{ inputs.build-args }}
merge:
needs: [matrix, build]
runs-on: ubuntu-latest
if: ${{ !github.event.pull_request.head.repo.fork }}
permissions:
contents: read
actions: read
packages: write
steps:
- name: Download digests
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
with:
path: ${{ runner.temp }}/digests
pattern: ${{ needs.matrix.outputs.key }}-*
merge-multiple: true
- name: Login to Docker Hub
if: ${{ inputs.dockerhub-push }}
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
- name: Generate docker image tags
id: meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
env:
DOCKER_METADATA_PR_HEAD_SHA: 'true'
with:
flavor: |
# Disable latest tag
latest=false
suffix=${{ inputs.tag-suffix }}
images: |
name=${{ env.GHCR_IMAGE }}
name=${{ env.DOCKERHUB_IMAGE }},enable=${{ inputs.dockerhub-push }}
tags: |
# Tag with branch name
type=ref,event=branch
# Tag with pr-number
type=ref,event=pr
# Tag with long commit sha hash
type=sha,format=long,prefix=commit-
# Tag with git tag on release
type=ref,event=tag
type=raw,value=release,enable=${{ github.event_name == 'release' }}
- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
run: |
# Process annotations
declare -a ANNOTATIONS=()
if [[ -n "$DOCKER_METADATA_OUTPUT_JSON" ]]; then
while IFS= read -r annotation; do
# Extract key and value by removing the manifest: prefix
if [[ "$annotation" =~ ^manifest:(.+)=(.+)$ ]]; then
key="${BASH_REMATCH[1]}"
value="${BASH_REMATCH[2]}"
# Use array to properly handle arguments with spaces
ANNOTATIONS+=(--annotation "index:$key=$value")
fi
done < <(jq -r '.annotations[]' <<< "$DOCKER_METADATA_OUTPUT_JSON")
fi
TAGS=$(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
SOURCE_ARGS=$(printf "${GHCR_IMAGE}@sha256:%s " *)
docker buildx imagetools create $TAGS "${ANNOTATIONS[@]}" $SOURCE_ARGS

View File

@@ -14,7 +14,7 @@ jobs:
pull-requests: write pull-requests: write
steps: steps:
- name: Require PR to have a changelog label - name: Require PR to have a changelog label
uses: mheap/github-action-required-labels@388fd6af37b34cdfe5a23b37060e763217e58b03 # v5.5.0 uses: mheap/github-action-required-labels@388fd6af37b34cdfe5a23b37060e763217e58b03 # v5
with: with:
mode: exactly mode: exactly
count: 1 count: 1

View File

@@ -11,4 +11,4 @@ jobs:
pull-requests: write pull-requests: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0 - uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5

View File

@@ -32,19 +32,19 @@ jobs:
steps: steps:
- name: Generate a token - name: Generate a token
id: generate-token id: generate-token
uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2
with: with:
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }} app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }} private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
- name: Checkout - name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
token: ${{ steps.generate-token.outputs.token }} token: ${{ steps.generate-token.outputs.token }}
persist-credentials: true persist-credentials: true
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2 uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
- name: Bump version - name: Bump version
env: env:
@@ -54,7 +54,7 @@ jobs:
- name: Commit and tag - name: Commit and tag
id: push-tag id: push-tag
uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9.1.4 uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9
with: with:
default_author: github_actions default_author: github_actions
message: 'chore: version ${{ env.IMMICH_VERSION }}' message: 'chore: version ${{ env.IMMICH_VERSION }}'
@@ -83,24 +83,24 @@ jobs:
steps: steps:
- name: Generate a token - name: Generate a token
id: generate-token id: generate-token
uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6 uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2
with: with:
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }} app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }} private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
- name: Checkout - name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
token: ${{ steps.generate-token.outputs.token }} token: ${{ steps.generate-token.outputs.token }}
persist-credentials: false persist-credentials: false
- name: Download APK - name: Download APK
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0 uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with: with:
name: release-apk-signed name: release-apk-signed
- name: Create draft release - name: Create draft release
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2 uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2
with: with:
draft: true draft: true
tag_name: ${{ env.IMMICH_VERSION }} tag_name: ${{ env.IMMICH_VERSION }}

View File

@@ -13,7 +13,7 @@ jobs:
permissions: permissions:
pull-requests: write pull-requests: write
steps: steps:
- uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2.8.2 - uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2
with: with:
message-id: 'preview-status' message-id: 'preview-status'
message: 'Deploying preview environment to https://pr-${{ github.event.pull_request.number }}.preview.internal.immich.cloud/' message: 'Deploying preview environment to https://pr-${{ github.event.pull_request.number }}.preview.internal.immich.cloud/'
@@ -24,7 +24,7 @@ jobs:
permissions: permissions:
pull-requests: write pull-requests: write
steps: steps:
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
with: with:
script: | script: |
github.rest.issues.removeLabel({ github.rest.issues.removeLabel({

View File

@@ -16,12 +16,12 @@ jobs:
run: run:
working-directory: ./open-api/typescript-sdk working-directory: ./open-api/typescript-sdk
steps: steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
# Setup .npmrc file to publish to npm # Setup .npmrc file to publish to npm
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './open-api/typescript-sdk/.nvmrc' node-version-file: './open-api/typescript-sdk/.nvmrc'
registry-url: 'https://registry.npmjs.org' registry-url: 'https://registry.npmjs.org'

View File

@@ -20,11 +20,11 @@ jobs:
should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }} should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }}
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- id: found_paths - id: found_paths
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
with: with:
filters: | filters: |
mobile: mobile:
@@ -44,12 +44,12 @@ jobs:
contents: read contents: read
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Flutter SDK - name: Setup Flutter SDK
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2.19.0 uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2
with: with:
channel: 'stable' channel: 'stable'
flutter-version-file: ./mobile/pubspec.yaml flutter-version-file: ./mobile/pubspec.yaml
@@ -67,7 +67,7 @@ jobs:
working-directory: ./mobile working-directory: ./mobile
- name: Find file changes - name: Find file changes
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4 uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
id: verify-changed-files id: verify-changed-files
with: with:
files: | files: |
@@ -105,12 +105,12 @@ jobs:
actions: read actions: read
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Install the latest version of uv - name: Install the latest version of uv
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2 uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
- name: Run zizmor 🌈 - name: Run zizmor 🌈
run: uvx zizmor --format=sarif . > results.sarif run: uvx zizmor --format=sarif . > results.sarif
@@ -118,7 +118,7 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload SARIF file - name: Upload SARIF file
uses: github/codeql-action/upload-sarif@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 uses: github/codeql-action/upload-sarif@28deaeda66b76a05916b6923827895f2b14ab387 # v3
with: with:
sarif_file: results.sarif sarif_file: results.sarif
category: zizmor category: zizmor

View File

@@ -17,7 +17,6 @@ jobs:
permissions: permissions:
contents: read contents: read
outputs: outputs:
should_run_i18n: ${{ steps.found_paths.outputs.i18n == 'true' || steps.should_force.outputs.should_force == 'true' }}
should_run_web: ${{ steps.found_paths.outputs.web == 'true' || steps.should_force.outputs.should_force == 'true' }} should_run_web: ${{ steps.found_paths.outputs.web == 'true' || steps.should_force.outputs.should_force == 'true' }}
should_run_server: ${{ steps.found_paths.outputs.server == 'true' || steps.should_force.outputs.should_force == 'true' }} should_run_server: ${{ steps.found_paths.outputs.server == 'true' || steps.should_force.outputs.should_force == 'true' }}
should_run_cli: ${{ steps.found_paths.outputs.cli == 'true' || steps.should_force.outputs.should_force == 'true' }} should_run_cli: ${{ steps.found_paths.outputs.cli == 'true' || steps.should_force.outputs.should_force == 'true' }}
@@ -29,16 +28,14 @@ jobs:
should_run_.github: ${{ steps.found_paths.outputs['.github'] == 'true' || steps.should_force.outputs.should_force == 'true' }} # redundant to have should_force but if someone changes the trigger then this won't have to be changed should_run_.github: ${{ steps.found_paths.outputs['.github'] == 'true' || steps.should_force.outputs.should_force == 'true' }} # redundant to have should_force but if someone changes the trigger then this won't have to be changed
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- id: found_paths - id: found_paths
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
with: with:
filters: | filters: |
i18n:
- 'i18n/**'
web: web:
- 'web/**' - 'web/**'
- 'i18n/**' - 'i18n/**'
@@ -76,12 +73,12 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './server/.nvmrc' node-version-file: './server/.nvmrc'
@@ -117,12 +114,12 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './cli/.nvmrc' node-version-file: './cli/.nvmrc'
@@ -162,12 +159,12 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './cli/.nvmrc' node-version-file: './cli/.nvmrc'
@@ -200,12 +197,12 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './web/.nvmrc' node-version-file: './web/.nvmrc'
@@ -241,12 +238,12 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './web/.nvmrc' node-version-file: './web/.nvmrc'
@@ -265,46 +262,6 @@ jobs:
run: npm run test:cov run: npm run test:cov
if: ${{ !cancelled() }} if: ${{ !cancelled() }}
i18n-tests:
name: Test i18n
needs: pre-job
if: ${{ needs.pre-job.outputs.should_run_i18n == 'true' }}
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false
- name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './web/.nvmrc'
- name: Install dependencies
run: npm --prefix=web ci
- name: Format
run: npm --prefix=web run format:i18n
- 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:
CHANGED_FILES: ${{ steps.verify-changed-files.outputs.changed_files }}
run: |
echo "ERROR: i18n files not up to date!"
echo "Changed files: ${CHANGED_FILES}"
exit 1
e2e-tests-lint: e2e-tests-lint:
name: End-to-End Lint name: End-to-End Lint
needs: pre-job needs: pre-job
@@ -318,12 +275,12 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './e2e/.nvmrc' node-version-file: './e2e/.nvmrc'
@@ -361,12 +318,12 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './server/.nvmrc' node-version-file: './server/.nvmrc'
@@ -389,17 +346,17 @@ jobs:
working-directory: ./e2e working-directory: ./e2e
strategy: strategy:
matrix: matrix:
runner: [ubuntu-latest, ubuntu-24.04-arm] runner: [mich, ubuntu-24.04-arm]
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
submodules: 'recursive' submodules: 'recursive'
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './e2e/.nvmrc' node-version-file: './e2e/.nvmrc'
@@ -437,17 +394,17 @@ jobs:
working-directory: ./e2e working-directory: ./e2e
strategy: strategy:
matrix: matrix:
runner: [ubuntu-latest, ubuntu-24.04-arm] runner: [mich, ubuntu-24.04-arm]
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
submodules: 'recursive' submodules: 'recursive'
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './e2e/.nvmrc' node-version-file: './e2e/.nvmrc'
@@ -495,12 +452,12 @@ jobs:
permissions: permissions:
contents: read contents: read
steps: steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Flutter SDK - name: Setup Flutter SDK
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2.19.0 uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2
with: with:
channel: 'stable' channel: 'stable'
flutter-version-file: ./mobile/pubspec.yaml flutter-version-file: ./mobile/pubspec.yaml
@@ -519,13 +476,13 @@ jobs:
run: run:
working-directory: ./machine-learning working-directory: ./machine-learning
steps: steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Install uv - name: Install uv
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2 uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
# TODO: add caching when supported (https://github.com/actions/setup-python/pull/818) # TODO: add caching when supported (https://github.com/actions/setup-python/pull/818)
# with: # with:
# python-version: 3.11 # python-version: 3.11
@@ -559,12 +516,12 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './.github/.nvmrc' node-version-file: './.github/.nvmrc'
@@ -581,7 +538,7 @@ jobs:
permissions: permissions:
contents: read contents: read
steps: steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
@@ -600,12 +557,12 @@ jobs:
contents: read contents: read
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './server/.nvmrc' node-version-file: './server/.nvmrc'
@@ -619,7 +576,7 @@ jobs:
run: make open-api run: make open-api
- name: Find file changes - name: Find file changes
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4 uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
id: verify-changed-files id: verify-changed-files
with: with:
files: | files: |
@@ -636,8 +593,8 @@ jobs:
echo "Changed files: ${CHANGED_FILES}" echo "Changed files: ${CHANGED_FILES}"
exit 1 exit 1
sql-schema-up-to-date: generated-typeorm-migrations-up-to-date:
name: SQL Schema Checks name: TypeORM Checks
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: read contents: read
@@ -661,12 +618,12 @@ jobs:
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- name: Setup Node - name: Setup Node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with: with:
node-version-file: './server/.nvmrc' node-version-file: './server/.nvmrc'
@@ -684,10 +641,10 @@ jobs:
- name: Generate new migrations - name: Generate new migrations
continue-on-error: true continue-on-error: true
run: npm run migrations:generate src/TestMigration run: npm run migrations:generate TestMigration
- name: Find file changes - name: Find file changes
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4 uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
id: verify-changed-files id: verify-changed-files
with: with:
files: | files: |
@@ -708,7 +665,7 @@ jobs:
DB_URL: postgres://postgres:postgres@localhost:5432/immich DB_URL: postgres://postgres:postgres@localhost:5432/immich
- name: Find file changes - name: Find file changes
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4 uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
id: verify-changed-sql-files id: verify-changed-sql-files
with: with:
files: | files: |

View File

@@ -15,11 +15,11 @@ jobs:
should_run: ${{ steps.found_paths.outputs.i18n == 'true' && github.head_ref != 'chore/translations'}} should_run: ${{ steps.found_paths.outputs.i18n == 'true' && github.head_ref != 'chore/translations'}}
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
with: with:
persist-credentials: false persist-credentials: false
- id: found_paths - id: found_paths
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
with: with:
filters: | filters: |
i18n: i18n:
@@ -38,7 +38,7 @@ jobs:
exit 1 exit 1
fi fi
- name: Find Pull Request - name: Find Pull Request
uses: juliangruber/find-pull-request-action@48b6133aa6c826f267ebd33aa2d29470f9d9e7d0 # v1.9.0 uses: juliangruber/find-pull-request-action@48b6133aa6c826f267ebd33aa2d29470f9d9e7d0 # v1
id: find-pr id: find-pr
with: with:
branch: chore/translations branch: chore/translations

View File

@@ -1 +1 @@
22.15.0 22.14.0

1216
cli/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -21,7 +21,7 @@
"@types/lodash-es": "^4.17.12", "@types/lodash-es": "^4.17.12",
"@types/micromatch": "^4.0.9", "@types/micromatch": "^4.0.9",
"@types/mock-fs": "^4.13.1", "@types/mock-fs": "^4.13.1",
"@types/node": "^22.15.16", "@types/node": "^22.14.1",
"@vitest/coverage-v8": "^3.0.0", "@vitest/coverage-v8": "^3.0.0",
"byte-size": "^9.0.0", "byte-size": "^9.0.0",
"cli-progress": "^3.12.0", "cli-progress": "^3.12.0",
@@ -69,6 +69,6 @@
"micromatch": "^4.0.8" "micromatch": "^4.0.8"
}, },
"volta": { "volta": {
"node": "22.15.0" "node": "22.14.0"
} }
} }

View File

@@ -33,6 +33,7 @@ services:
- ${UPLOAD_LOCATION}/photos/upload:/usr/src/app/upload/upload - ${UPLOAD_LOCATION}/photos/upload:/usr/src/app/upload/upload
- /usr/src/app/node_modules - /usr/src/app/node_modules
- /etc/localtime:/etc/localtime:ro - /etc/localtime:/etc/localtime:ro
- ../flickr30k-images:/flickr30k:ro
env_file: env_file:
- .env - .env
environment: environment:
@@ -58,7 +59,6 @@ services:
- 9231:9231 - 9231:9231
- 2283:2283 - 2283:2283
depends_on: depends_on:
- redis
- database - database
healthcheck: healthcheck:
disable: false disable: false
@@ -114,12 +114,6 @@ services:
healthcheck: healthcheck:
disable: false disable: false
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:ff21bc0f8194dc9c105b769aeabf9585fea6a8ed649c0781caeac5cb3c247884
healthcheck:
test: redis-cli ping || exit 1
database: database:
container_name: immich_postgres container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52 image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52
@@ -154,25 +148,25 @@ services:
-c wal_compression=on -c wal_compression=on
# set IMMICH_TELEMETRY_INCLUDE=all in .env to enable metrics # set IMMICH_TELEMETRY_INCLUDE=all in .env to enable metrics
# immich-prometheus: immich-prometheus:
# container_name: immich_prometheus container_name: immich_prometheus
# ports: ports:
# - 9090:9090 - 9090:9090
# image: prom/prometheus image: prom/prometheus
# volumes: volumes:
# - ./prometheus.yml:/etc/prometheus/prometheus.yml - ./prometheus.yml:/etc/prometheus/prometheus.yml
# - prometheus-data:/prometheus - prometheus-data:/prometheus
# first login uses admin/admin # first login uses admin/admin
# add data source for http://immich-prometheus:9090 to get started # add data source for http://immich-prometheus:9090 to get started
# immich-grafana: immich-grafana:
# container_name: immich_grafana container_name: immich_grafana
# command: ['./run.sh', '-disable-reporting'] command: ['./run.sh', '-disable-reporting']
# ports: ports:
# - 3000:3000 - 3001:3000
# image: grafana/grafana:10.3.3-ubuntu image: grafana/grafana:10.3.3-ubuntu
# volumes: volumes:
# - grafana-data:/var/lib/grafana - grafana-data:/var/lib/grafana
volumes: volumes:
model-cache: model-cache:

View File

@@ -27,7 +27,6 @@ services:
ports: ports:
- 2283:2283 - 2283:2283
depends_on: depends_on:
- redis
- database - database
restart: always restart: always
healthcheck: healthcheck:
@@ -54,13 +53,6 @@ services:
healthcheck: healthcheck:
disable: false disable: false
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:ff21bc0f8194dc9c105b769aeabf9585fea6a8ed649c0781caeac5cb3c247884
healthcheck:
test: redis-cli ping || exit 1
restart: always
database: database:
container_name: immich_postgres container_name: immich_postgres
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52 image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52
@@ -90,7 +82,7 @@ services:
container_name: immich_prometheus container_name: immich_prometheus
ports: ports:
- 9090:9090 - 9090:9090
image: prom/prometheus@sha256:e2b8aa62b64855956e3ec1e18b4f9387fb6203174a4471936f4662f437f04405 image: prom/prometheus@sha256:339ce86a59413be18d0e445472891d022725b4803fab609069110205e79fb2f1
volumes: volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml - ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus - prometheus-data:/prometheus

View File

@@ -25,7 +25,6 @@ services:
ports: ports:
- '2283:2283' - '2283:2283'
depends_on: depends_on:
- redis
- database - database
restart: always restart: always
healthcheck: healthcheck:
@@ -47,13 +46,6 @@ services:
healthcheck: healthcheck:
disable: false disable: false
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:ff21bc0f8194dc9c105b769aeabf9585fea6a8ed649c0781caeac5cb3c247884
healthcheck:
test: redis-cli ping || exit 1
restart: always
database: database:
container_name: immich_postgres container_name: immich_postgres
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52 image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52

View File

@@ -1,12 +1,14 @@
global: global:
scrape_interval: 15s scrape_interval: 3s
evaluation_interval: 15s evaluation_interval: 3s
scrape_configs: scrape_configs:
- job_name: immich_api - job_name: immich_api
scrape_interval: 3s
static_configs: static_configs:
- targets: ['immich-server:8081'] - targets: ["immich-server:8081"]
- job_name: immich_microservices - job_name: immich_microservices
scrape_interval:
static_configs: static_configs:
- targets: ['immich-server:8082'] - targets: ["immich-server:8082"]

View File

@@ -1 +1 @@
22.15.0 22.14.0

View File

@@ -278,7 +278,7 @@ You can use [Smart Search](/docs/features/searching.md) for this to some extent.
### I'm getting a lot of "faces" that aren't faces, what can I do? ### I'm getting a lot of "faces" that aren't faces, what can I do?
You can increase the MIN DETECTION SCORE to 0.8 to help prevent bad thumbnails. Setting the score too high (above 0.9) might filter out too many real faces depending on the library used. If you just want to hide specific faces, you can adjust the 'MIN FACES DETECTED' setting in the administration panel You can increase the MIN DETECTION SCORE to 0.8 to help prevent bad thumbnails. Setting the score too high (above 0.9) might filter out too many real faces depending on the library used. If you just want to hide specific faces, you can adjust the 'MIN FACES DETECTED' setting in the administration panel
to increase the bar for what the algorithm considers a "core face" for that person, reducing the chance of bad thumbnails being chosen. to increase the bar for what the algorithm considers a "core face" for that person, reducing the chance of bad thumbnails being chosen.
### The immich_model-cache volume takes up a lot of space, what could be the problem? ### The immich_model-cache volume takes up a lot of space, what could be the problem?
@@ -367,12 +367,6 @@ You need to [enable WebSockets](/docs/administration/reverse-proxy/) on your rev
Immich components are typically deployed using docker. To see logs for deployed docker containers, you can use the [Docker CLI](https://docs.docker.com/engine/reference/commandline/cli/), specifically the `docker logs` command. For examples, see [Docker Help](/docs/guides/docker-help.md). Immich components are typically deployed using docker. To see logs for deployed docker containers, you can use the [Docker CLI](https://docs.docker.com/engine/reference/commandline/cli/), specifically the `docker logs` command. For examples, see [Docker Help](/docs/guides/docker-help.md).
### How can I reduce the log verbosity of Redis?
To decrease Redis logs, you can add the following line to the `redis:` section of the `docker-compose.yml`:
` command: redis-server --loglevel warning`
### How can I run Immich as a non-root user? ### How can I run Immich as a non-root user?
You can change the user in the container by setting the `user` argument in `docker-compose.yml` for each service. You can change the user in the container by setting the `user` argument in `docker-compose.yml` for each service.
@@ -380,7 +374,6 @@ You may need to add mount points or docker volumes for the following internal co
- `immich-machine-learning:/.config` - `immich-machine-learning:/.config`
- `immich-machine-learning:/.cache` - `immich-machine-learning:/.cache`
- `redis:/data`
The non-root user/group needs read/write access to the volume mounts, including `UPLOAD_LOCATION` and `/cache` for machine-learning. The non-root user/group needs read/write access to the volume mounts, including `UPLOAD_LOCATION` and `/cache` for machine-learning.
@@ -425,7 +418,7 @@ After removing the containers and volumes, there are a few directories that need
- `UPLOAD_LOCATION` contains all the media uploaded to Immich. - `UPLOAD_LOCATION` contains all the media uploaded to Immich.
:::note Portainer :::note Portainer
If you use portainer, bring down the stack in portainer. Go into the volumes section If you use portainer, bring down the stack in portainer. Go into the volumes section
and remove all the volumes related to immich then restart the stack. and remove all the volumes related to immich then restart the stack.
::: :::

View File

@@ -22,7 +22,7 @@ server {
client_max_body_size 50000M; client_max_body_size 50000M;
# Set headers # Set headers
proxy_set_header Host $host; proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Proto $scheme;

View File

@@ -13,7 +13,7 @@ Immich uses a traditional client-server design, with a dedicated database for da
<img alt="Immich Architecture" src={AppArchitecture} className="p-4 dark:bg-immich-dark-primary my-4" /> <img alt="Immich Architecture" src={AppArchitecture} className="p-4 dark:bg-immich-dark-primary my-4" />
The diagram shows clients communicating with the server's API via REST. The server communicates with downstream systems (i.e. Redis, Postgres, Machine Learning, file system) through repository interfaces. Not shown in the diagram, is that the server is split into two separate containers `immich-server` and `immich-microservices`. The microservices container does not handle API requests or schedule cron jobs, but primarily handles incoming job requests from Redis. The diagram shows clients communicating with the server's API via REST. The server communicates with downstream systems (i.e. Postgres, Machine Learning, file system) through repository interfaces. Not shown in the diagram, is that the server is split into two separate containers `immich-server` and `immich-microservices`. The microservices container does not handle API requests or schedule cron jobs, but primarily handles incoming job requests from Postgres.
## Clients ## Clients
@@ -53,7 +53,6 @@ The Immich backend is divided into several services, which are run as individual
1. `immich-server` - Handle and respond to REST API requests, execute background jobs (thumbnail generation, metadata extraction, transcoding, etc.) 1. `immich-server` - Handle and respond to REST API requests, execute background jobs (thumbnail generation, metadata extraction, transcoding, etc.)
1. `immich-machine-learning` - Execute machine learning models 1. `immich-machine-learning` - Execute machine learning models
1. `postgres` - Persistent data storage 1. `postgres` - Persistent data storage
1. `redis`- Queue management for background jobs
### Immich Server ### Immich Server
@@ -111,7 +110,3 @@ Immich persists data in Postgres, which includes information about access and au
:::info :::info
See [Database Migrations](./database-migrations.md) for more information about how to modify the database to create an index, modify a table, add a new column, etc. See [Database Migrations](./database-migrations.md) for more information about how to modify the database to create an index, modify a table, add a new column, etc.
::: :::
### Redis
Immich uses [Redis](https://redis.com/) via [BullMQ](https://docs.bullmq.io/) to manage job queues. Some jobs trigger subsequent jobs. For example, Smart Search and Facial Recognition relies on thumbnail generation and automatically run after one is generated.

View File

@@ -23,7 +23,6 @@ This environment includes the services below. Additional details are available i
- Server - [`/server`](https://github.com/immich-app/immich/tree/main/server) - Server - [`/server`](https://github.com/immich-app/immich/tree/main/server)
- Web app - [`/web`](https://github.com/immich-app/immich/tree/main/web) - Web app - [`/web`](https://github.com/immich-app/immich/tree/main/web)
- Machine learning - [`/machine-learning`](https://github.com/immich-app/immich/tree/main/machine-learning) - Machine learning - [`/machine-learning`](https://github.com/immich-app/immich/tree/main/machine-learning)
- Redis
- PostgreSQL development database with exposed port `5432` so you can use any database client to access it - PostgreSQL development database with exposed port `5432` so you can use any database client to access it
All the services are packaged to run as with single Docker Compose command. All the services are packaged to run as with single Docker Compose command.

View File

@@ -121,6 +121,6 @@ Once this is done, you can continue to step 3 of "Basic Setup".
[hw-file]: https://github.com/immich-app/immich/releases/latest/download/hwaccel.transcoding.yml [hw-file]: https://github.com/immich-app/immich/releases/latest/download/hwaccel.transcoding.yml
[nvct]: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html [nvct]: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
[jellyfin-lp]: https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/intel#low-power-encoding [jellyfin-lp]: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#configure-and-verify-lp-mode-on-linux
[jellyfin-kernel-bug]: https://jellyfin.org/docs/general/post-install/transcoding/hardware-acceleration/intel#known-issues-and-limitations-on-linux [jellyfin-kernel-bug]: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#known-issues-and-limitations
[libmali-rockchip]: https://github.com/tsukumijima/libmali-rockchip/releases [libmali-rockchip]: https://github.com/tsukumijima/libmali-rockchip/releases

View File

@@ -72,7 +72,7 @@ In rare cases, the library watcher can hang, preventing Immich from starting up.
### Nightly job ### Nightly job
There is an automatic scan job that is scheduled to run once a day. This job also cleans up any libraries stuck in deletion. It is possible to trigger the cleanup by clicking "Scan all libraries" in the library management page. There is an automatic scan job that is scheduled to run once a day. This job also cleans up any libraries stuck in deletion. It is possible to trigger the cleanup by clicking "Scan all libraries" in the library managment page.
## Usage ## Usage

View File

@@ -92,7 +92,7 @@ Memory and execution time estimates were obtained without acceleration on a 7800
**Execution Time (ms)**: After warming up the model with one pass, the mean execution time of 100 passes with the same input. **Execution Time (ms)**: After warming up the model with one pass, the mean execution time of 100 passes with the same input.
**Memory (MiB)**: The peak RSS usage of the process after performing the above timing benchmark. Does not include image decoding, concurrent processing, the web server, etc., which are relatively constant factors. **Memory (MiB)**: The peak RSS usage of the process afer performing the above timing benchmark. Does not include image decoding, concurrent processing, the web server, etc., which are relatively constant factors.
**Recall (%)**: Evaluated on Crossmodal-3600, the average of the recall@1, recall@5 and recall@10 results for zeroshot image retrieval. Chinese (Simplified), English, French, German, Italian, Japanese, Korean, Polish, Russian, Spanish and Turkish are additionally tested on XTD-10. Chinese (Simplified) and English are additionally tested on Flickr30k. The recall metrics are the average across all tested datasets. **Recall (%)**: Evaluated on Crossmodal-3600, the average of the recall@1, recall@5 and recall@10 results for zeroshot image retrieval. Chinese (Simplified), English, French, German, Italian, Japanese, Korean, Polish, Russian, Spanish and Turkish are additionally tested on XTD-10. Chinese (Simplified) and English are additionally tested on Flickr30k. The recall metrics are the average across all tested datasets.

View File

@@ -1,6 +1,6 @@
# Scaling Immich # Scaling Immich
Immich is built with modern deployment practices in mind, and the backend is designed to be able to run multiple instances in parallel. When doing this, the only requirement you need to be aware of is that every instance needs to be connected to the shared infrastructure. That means they should all have access to the same Postgres and Redis instances, and have the same files mounted into the containers. Immich is built with modern deployment practices in mind, and the backend is designed to be able to run multiple instances in parallel. When doing this, the only requirement you need to be aware of is that every instance needs to be connected to the shared infrastructure. That means they should all have access to the same Postgres instance, and have the same files mounted into the containers.
Scaling can be useful for many reasons. Maybe you have a gaming PC that you want to use for transcoding and thumbnail generation, or perhaps you run a Kubernetes cluster across a handful of powerful servers that you want to make use of. Scaling can be useful for many reasons. Maybe you have a gaming PC that you want to use for transcoding and thumbnail generation, or perhaps you run a Kubernetes cluster across a handful of powerful servers that you want to make use of.
@@ -16,4 +16,4 @@ By default, each running `immich-server` container comes with multiple internal
## Scaling down ## Scaling down
In the same way you can scale up to multiple containers, you can also choose to scale down. All state is stored in Postgres, Redis, and the filesystem so there is no risk in stopping a running immich-server container, for example if you want to use your GPU to play some games. As long as there is an API worker running you will still be able to browse Immich, and jobs will wait to be processed until there is a worker available for them. In the same way you can scale up to multiple containers, you can also choose to scale down. All state is stored in Postgres and the filesystem so there is no risk in stopping a running immich-server container, for example if you want to use your GPU to play some games. As long as there is an API worker running you will still be able to browse Immich, and jobs will wait to be processed until there is a worker available for them.

View File

@@ -2,13 +2,53 @@
sidebar_position: 30 sidebar_position: 30
--- ---
import CodeBlock from '@theme/CodeBlock';
import ExampleEnv from '!!raw-loader!../../../docker/example.env';
# Docker Compose [Recommended] # Docker Compose [Recommended]
Docker Compose is the recommended method to run Immich in production. Below are the steps to deploy Immich with Docker Compose. Docker Compose is the recommended method to run Immich in production. Below are the steps to deploy Immich with Docker Compose.
import DockerComposeSteps from '/docs/partials/_docker-compose-install-steps.mdx'; ## Step 1 - Download the required files
<DockerComposeSteps /> Create a directory of your choice (e.g. `./immich-app`) to hold the `docker-compose.yml` and `.env` files.
```bash title="Move to the directory you created"
mkdir ./immich-app
cd ./immich-app
```
Download [`docker-compose.yml`][compose-file] and [`example.env`][env-file] by running the following commands:
```bash title="Get docker-compose.yml file"
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
```
```bash title="Get .env file"
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
```
You can alternatively download these two files from your browser and move them to the directory that you created, in which case ensure that you rename `example.env` to `.env`.
## Step 2 - Populate the .env file with custom values
<CodeBlock language="bash" title="Default environmental variable content">
{ExampleEnv}
</CodeBlock>
- Populate `UPLOAD_LOCATION` with your preferred location for storing backup assets. It should be a new directory on the server with enough free space.
- Consider changing `DB_PASSWORD` to a custom value. Postgres is not publicly exposed, so this password is only used for local authentication.
To avoid issues with Docker parsing this value, it is best to use only the characters `A-Za-z0-9`. `pwgen` is a handy utility for this.
- Set your timezone by uncommenting the `TZ=` line.
- Populate custom database information if necessary.
## Step 3 - Start the containers
From the directory you created in Step 1 (which should now contain your customized `docker-compose.yml` and `.env` files), run the following command to start Immich as a background service:
```bash title="Start the containers"
docker compose up -d
```
:::info Docker version :::info Docker version
If you get an error such as `unknown shorthand flag: 'd' in -d` or `open <location of your .env file>: permission denied`, you are probably running the wrong Docker version. (This happens, for example, with the docker.io package in Ubuntu 22.04.3 LTS.) You can correct the problem by following the complete [Docker Engine install](https://docs.docker.com/engine/install/) procedure for your distribution, crucially the "Uninstall old versions" and "Install using the apt/rpm repository" sections. These replace the distro's Docker packages with Docker's official ones. If you get an error such as `unknown shorthand flag: 'd' in -d` or `open <location of your .env file>: permission denied`, you are probably running the wrong Docker version. (This happens, for example, with the docker.io package in Ubuntu 22.04.3 LTS.) You can correct the problem by following the complete [Docker Engine install](https://docs.docker.com/engine/install/) procedure for your distribution, crucially the "Uninstall old versions" and "Install using the apt/rpm repository" sections. These replace the distro's Docker packages with Docker's official ones.
@@ -30,3 +70,6 @@ If you get an error `can't set healthcheck.start_interval as feature require Doc
## Next Steps ## Next Steps
Read the [Post Installation](/docs/install/post-install.mdx) steps and [upgrade instructions](/docs/install/upgrading.md). Read the [Post Installation](/docs/install/post-install.mdx) steps and [upgrade instructions](/docs/install/upgrading.md).
[compose-file]: https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
[env-file]: https://github.com/immich-app/immich/releases/latest/download/example.env

View File

@@ -80,7 +80,6 @@ Information on the current workers can be found [here](/docs/administration/jobs
| `DB_USERNAME` | Database user | `postgres` | server, database<sup>\*1</sup> | | `DB_USERNAME` | Database user | `postgres` | server, database<sup>\*1</sup> |
| `DB_PASSWORD` | Database password | `postgres` | server, database<sup>\*1</sup> | | `DB_PASSWORD` | Database password | `postgres` | server, database<sup>\*1</sup> |
| `DB_DATABASE_NAME` | Database name | `immich` | server, database<sup>\*1</sup> | | `DB_DATABASE_NAME` | Database name | `immich` | server, database<sup>\*1</sup> |
| `DB_SSL_MODE` | Database SSL mode | | server |
| `DB_VECTOR_EXTENSION`<sup>\*2</sup> | Database vector extension (one of [`pgvector`, `pgvecto.rs`]) | `pgvecto.rs` | server | | `DB_VECTOR_EXTENSION`<sup>\*2</sup> | Database vector extension (one of [`pgvector`, `pgvecto.rs`]) | `pgvecto.rs` | server |
| `DB_SKIP_MIGRATIONS` | Whether to skip running migrations on startup (one of [`true`, `false`]) | `false` | server | | `DB_SKIP_MIGRATIONS` | Whether to skip running migrations on startup (one of [`true`, `false`]) | `false` | server |
@@ -99,54 +98,6 @@ When `DB_URL` is defined, the `DB_HOSTNAME`, `DB_PORT`, `DB_USERNAME`, `DB_PASSW
::: :::
## Redis
| Variable | Description | Default | Containers |
| :--------------- | :------------- | :-----: | :--------- |
| `REDIS_URL` | Redis URL | | server |
| `REDIS_SOCKET` | Redis socket | | server |
| `REDIS_HOSTNAME` | Redis host | `redis` | server |
| `REDIS_PORT` | Redis port | `6379` | server |
| `REDIS_USERNAME` | Redis username | | server |
| `REDIS_PASSWORD` | Redis password | | server |
| `REDIS_DBINDEX` | Redis DB index | `0` | server |
:::info
All `REDIS_` variables must be provided to all Immich workers, including `api` and `microservices`.
`REDIS_URL` must start with `ioredis://` and then include a `base64` encoded JSON string for the configuration.
More information can be found in the upstream [ioredis] documentation.
When `REDIS_URL` or `REDIS_SOCKET` are defined, the `REDIS_HOSTNAME`, `REDIS_PORT`, `REDIS_USERNAME`, `REDIS_PASSWORD`, and `REDIS_DBINDEX` variables are ignored.
:::
Redis (Sentinel) URL example JSON before encoding:
<details>
<summary>JSON</summary>
```json
{
"sentinels": [
{
"host": "redis-sentinel-node-0",
"port": 26379
},
{
"host": "redis-sentinel-node-1",
"port": 26379
},
{
"host": "redis-sentinel-node-2",
"port": 26379
}
],
"name": "redis-sentinel"
}
```
</details>
## Machine Learning ## Machine Learning
| Variable | Description | Default | Containers | | Variable | Description | Default | Containers |
@@ -213,16 +164,10 @@ the `_FILE` variable should be set to the path of a file containing the variable
| `DB_USERNAME` | `DB_USERNAME_FILE`<sup>\*1</sup> | | `DB_USERNAME` | `DB_USERNAME_FILE`<sup>\*1</sup> |
| `DB_PASSWORD` | `DB_PASSWORD_FILE`<sup>\*1</sup> | | `DB_PASSWORD` | `DB_PASSWORD_FILE`<sup>\*1</sup> |
| `DB_URL` | `DB_URL_FILE`<sup>\*1</sup> | | `DB_URL` | `DB_URL_FILE`<sup>\*1</sup> |
| `REDIS_PASSWORD` | `REDIS_PASSWORD_FILE`<sup>\*2</sup> |
\*1: See the [official documentation][docker-secrets-docs] for \*1: See the [official documentation][docker-secrets-docs] for
details on how to use Docker Secrets in the Postgres image. details on how to use Docker Secrets in the Postgres image.
\*2: See [this comment][docker-secrets-example] for an example of how
to use a Docker secret for the password in the Redis container.
[tz-list]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List [tz-list]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
[docker-secrets-example]: https://github.com/docker-library/redis/issues/46#issuecomment-335326234
[docker-secrets-docs]: https://github.com/docker-library/docs/tree/master/postgres#docker-secrets [docker-secrets-docs]: https://github.com/docker-library/docs/tree/master/postgres#docker-secrets
[docker-secrets]: https://docs.docker.com/engine/swarm/secrets/ [docker-secrets]: https://docs.docker.com/engine/swarm/secrets/
[ioredis]: https://ioredis.readthedocs.io/en/latest/README/#connect-to-redis

View File

@@ -29,7 +29,7 @@ Download [`docker-compose.yml`](https://github.com/immich-app/immich/releases/la
## Step 2 - Populate the .env file with custom values ## Step 2 - Populate the .env file with custom values
Follow [Step 2 in Docker Compose](/docs/install/docker-compose#step-2---populate-the-env-file-with-custom-values) for instructions on customizing the `.env` file, and then return back to this guide to continue. Follow [Step 2 in Docker Compose](./docker-compose#step-2---populate-the-env-file-with-custom-values) for instructions on customizing the `.env` file, and then return back to this guide to continue.
## Step 3 - Create a new project in Container Manager ## Step 3 - Create a new project in Container Manager

View File

@@ -2,7 +2,7 @@
sidebar_position: 80 sidebar_position: 80
--- ---
# TrueNAS [Community] # TrueNAS SCALE [Community]
:::note :::note
This is a community contribution and not officially supported by the Immich team, but included here for convenience. This is a community contribution and not officially supported by the Immich team, but included here for convenience.
@@ -12,17 +12,17 @@ Community support can be found in the dedicated channel on the [Discord Server](
**Please report app issues to the corresponding [Github Repository](https://github.com/truenas/charts/tree/master/community/immich).** **Please report app issues to the corresponding [Github Repository](https://github.com/truenas/charts/tree/master/community/immich).**
::: :::
Immich can easily be installed on TrueNAS Community Edition via the **Community** train application. Immich can easily be installed on TrueNAS SCALE via the **Community** train application.
Consider reviewing the TrueNAS [Apps resources](https://apps.truenas.com/getting-started/) if you have not previously configured applications on your system. Consider reviewing the TrueNAS [Apps tutorial](https://www.truenas.com/docs/scale/scaletutorials/apps/) if you have not previously configured applications on your system.
TrueNAS Community Edition makes installing and updating Immich easy, but you must use the Immich web portal and mobile app to configure accounts and access libraries. TrueNAS SCALE makes installing and updating Immich easy, but you must use the Immich web portal and mobile app to configure accounts and access libraries.
## First Steps ## First Steps
The Immich app in TrueNAS Community Edition installs, completes the initial configuration, then starts the Immich web portal. The Immich app in TrueNAS SCALE installs, completes the initial configuration, then starts the Immich web portal.
When updates become available, TrueNAS alerts and provides easy updates. When updates become available, SCALE alerts and provides easy updates.
Before installing the Immich app in TrueNAS, review the [Environment Variables](#environment-variables) documentation to see if you want to configure any during installation. Before installing the Immich app in SCALE, review the [Environment Variables](#environment-variables) documentation to see if you want to configure any during installation.
You may also configure environment variables at any time after deploying the application. You may also configure environment variables at any time after deploying the application.
### Setting up Storage Datasets ### Setting up Storage Datasets
@@ -107,8 +107,6 @@ Accept the default option or select the **Machine Learning Image Type** for your
Immich's default is `postgres` but you should consider setting the **Database Password** to a custom value using only the characters `A-Za-z0-9`. Immich's default is `postgres` but you should consider setting the **Database Password** to a custom value using only the characters `A-Za-z0-9`.
The **Redis Password** should be set to a custom value using only the characters `A-Za-z0-9`.
Accept the **Log Level** default of **Log**. Accept the **Log Level** default of **Log**.
Leave **Hugging Face Endpoint** blank. (This is for downloading ML models from a different source.) Leave **Hugging Face Endpoint** blank. (This is for downloading ML models from a different source.)
@@ -126,9 +124,9 @@ className="border rounded-xl"
Accept the default port `30041` in **WebUI Port** or enter a custom port number. Accept the default port `30041` in **WebUI Port** or enter a custom port number.
:::info Allowed Port Numbers :::info Allowed Port Numbers
Only numbers within the range 9000-65535 may be used on TrueNAS versions below TrueNAS Community Edition 24.10 Electric Eel. Only numbers within the range 9000-65535 may be used on SCALE versions below TrueNAS Scale 24.10 Electric Eel.
Regardless of version, to avoid port conflicts, don't use [ports on this list](https://www.truenas.com/docs/solutions/optimizations/security/#truenas-default-ports). Regardless of version, to avoid port conflicts, don't use [ports on this list](https://www.truenas.com/docs/references/defaultports/).
::: :::
### Storage Configuration ### Storage Configuration
@@ -173,7 +171,7 @@ className="border rounded-xl"
You may configure [External Libraries](/docs/features/libraries) by mounting them using **Additional Storage**. You may configure [External Libraries](/docs/features/libraries) by mounting them using **Additional Storage**.
The **Mount Path** is the location you will need to copy and paste into the External Library settings within Immich. The **Mount Path** is the location you will need to copy and paste into the External Library settings within Immich.
The **Host Path** is the location on the TrueNAS Community Edition server where your external library is located. The **Host Path** is the location on the TrueNAS SCALE server where your external library is located.
<!-- A section for Labels would go here but I don't know what they do. --> <!-- A section for Labels would go here but I don't know what they do. -->
@@ -188,17 +186,17 @@ className="border rounded-xl"
Accept the default **CPU** limit of `2` threads or specify the number of threads (CPUs with Multi-/Hyper-threading have 2 threads per core). Accept the default **CPU** limit of `2` threads or specify the number of threads (CPUs with Multi-/Hyper-threading have 2 threads per core).
Specify the **Memory** limit in MB of RAM. Immich recommends at least 6000 MB (6GB). If you selected **Enable Machine Learning** in **Immich Configuration**, you should probably set this above 8000 MB. Accept the default **Memory** limit of `4096` MB or specify the number of MB of RAM. If you're using Machine Learning you should probably set this above 8000 MB.
:::info Older TrueNAS Versions :::info Older SCALE Versions
Before TrueNAS Community Edition version 24.10 Electric Eel: Before TrueNAS SCALE version 24.10 Electric Eel:
The **CPU** value was specified in a different format with a default of `4000m` which is 4 threads. The **CPU** value was specified in a different format with a default of `4000m` which is 4 threads.
The **Memory** value was specified in a different format with a default of `8Gi` which is 8 GiB of RAM. The value was specified in bytes or a number with a measurement suffix. Examples: `129M`, `123Mi`, `1000000000` The **Memory** value was specified in a different format with a default of `8Gi` which is 8 GiB of RAM. The value was specified in bytes or a number with a measurement suffix. Examples: `129M`, `123Mi`, `1000000000`
::: :::
Enable **GPU Configuration** options if you have a GPU that you will use for [Hardware Transcoding](/docs/features/hardware-transcoding) and/or [Hardware-Accelerated Machine Learning](/docs/features/ml-hardware-acceleration.md). More info: [GPU Passthrough Docs for TrueNAS Apps](https://apps.truenas.com/managing-apps/installing-apps/#gpu-passthrough) Enable **GPU Configuration** options if you have a GPU that you will use for [Hardware Transcoding](/docs/features/hardware-transcoding) and/or [Hardware-Accelerated Machine Learning](/docs/features/ml-hardware-acceleration.md). More info: [GPU Passthrough Docs for TrueNAS Apps](https://www.truenas.com/docs/truenasapps/#gpu-passthrough)
### Install ### Install
@@ -240,9 +238,9 @@ className="border rounded-xl"
/> />
:::info :::info
Some Environment Variables are not available for the TrueNAS Community Edition app. This is mainly because they can be configured through GUI options in the [Edit Immich screen](#edit-app-settings). Some Environment Variables are not available for the TrueNAS SCALE app. This is mainly because they can be configured through GUI options in the [Edit Immich screen](#edit-app-settings).
Some examples are: `IMMICH_VERSION`, `UPLOAD_LOCATION`, `DB_DATA_LOCATION`, `TZ`, `IMMICH_LOG_LEVEL`, `DB_PASSWORD`, `REDIS_PASSWORD`. Some examples are: `IMMICH_VERSION`, `UPLOAD_LOCATION`, `DB_DATA_LOCATION`, `TZ`, `IMMICH_LOG_LEVEL`, `DB_PASSWORD`.
::: :::
## Updating the App ## Updating the App
@@ -251,7 +249,7 @@ Some examples are: `IMMICH_VERSION`, `UPLOAD_LOCATION`, `DB_DATA_LOCATION`, `TZ`
Make sure to read the general [upgrade instructions](/docs/install/upgrading.md). Make sure to read the general [upgrade instructions](/docs/install/upgrading.md).
::: :::
When updates become available, TrueNAS alerts and provides easy updates. When updates become available, SCALE alerts and provides easy updates.
To update the app to the latest version: To update the app to the latest version:
- Go to the **Installed Applications** screen and select Immich from the list of installed applications. - Go to the **Installed Applications** screen and select Immich from the list of installed applications.

View File

@@ -17,9 +17,9 @@ Immich can easily be installed and updated on Unraid via:
::: :::
In order to install Immich from the Unraid CA, you will need an existing Redis and PostgreSQL 14 container, If you do not already have Redis or PostgreSQL you can install them from the Unraid CA, just make sure you choose PostgreSQL **14**. In order to install Immich from the Unraid CA, you will need an existing PostgreSQL 14 container, If you do not already have PostgreSQL you can install it from the Unraid CA, just make sure you choose PostgreSQL **14**.
Once you have Redis and PostgreSQL running, search for Immich on the Unraid CA, choose either of the templates listed and fill out the example variables. Once you have PostgreSQL running, search for Immich on the Unraid CA, choose either of the templates listed and fill out the example variables.
For more information about setting up the community image see [here](https://github.com/imagegenius/docker-immich#application-setup) For more information about setting up the community image see [here](https://github.com/imagegenius/docker-immich#application-setup)
@@ -45,63 +45,63 @@ width="70%"
alt="Select Plugins > Compose.Manager > Add New Stack > Label it Immich" alt="Select Plugins > Compose.Manager > Add New Stack > Label it Immich"
/> />
3. Select the cogwheel ⚙️ next to Immich and click "**Edit Stack**" 3. Select the cogwheel ⚙️ next to Immich and click "**Edit Stack**"
4. Click "**Compose File**" and then paste the entire contents of the [Immich Docker Compose](https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml) file into the Unraid editor. Remove any text that may be in the text area by default. Note that Unraid v6.12.10 uses version 24.0.9 of the Docker Engine, which does not support healthcheck `start_interval` as defined in the `database` service of the Docker compose file (version 25 or higher is needed). This parameter defines an initial waiting period before starting health checks, to give the container time to start up. Commenting out the `start_interval` and `start_period` parameters will allow the containers to start up normally. The only downside to this is that the database container will not receive an initial health check until `interval` time has passed. 4. Click "**Compose File**" and then paste the entire contents of the [Immich Docker Compose](https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml) file into the Unraid editor. Remove any text that may be in the text area by default. Note that Unraid v6.12.10 uses version 24.0.9 of the Docker Engine, which does not support healthcheck `start_interval` as defined in the `database` service of the Docker compose file (version 25 or higher is needed). This parameter defines an initial waiting period before starting health checks, to give the container time to start up. Commenting out the `start_interval` and `start_period` parameters will allow the containers to start up normally. The only downside to this is that the database container will not receive an initial health check until `interval` time has passed.
<details > <details >
<summary>Using an existing Postgres container? Click me! Otherwise proceed to step 5.</summary> <summary>Using an existing Postgres container? Click me! Otherwise proceed to step 5.</summary>
<ul> <ul>
<li>Comment out the database service</li> <li>Comment out the database service</li>
<img <img
src={require('./img/unraid02.webp').default} src={require('./img/unraid02.webp').default}
width="50%" width="50%"
alt="Comment out database service in the compose file" alt="Comment out database service in the compose file"
/> />
<li>Comment out the database dependency for <b>each service</b> <i>(example in screenshot below only shows 2 of the services - ensure you do this for all services)</i></li> <li>Comment out the database dependency for <b>each service</b> <i>(example in screenshot below only shows 2 of the services - ensure you do this for all services)</i></li>
<img <img
src={require('./img/unraid03.webp').default} src={require('./img/unraid03.webp').default}
width="50%" width="50%"
alt="Comment out every reference to the database service in the compose file" alt="Comment out every reference to the database service in the compose file"
/> />
<li>Comment out the volumes</li> <li>Comment out the volumes</li>
<img <img
src={require('./img/unraid04.webp').default} src={require('./img/unraid04.webp').default}
width="20%" width="20%"
alt="Comment out database volume" alt="Comment out database volume"
/> />
</ul> </ul>
</details> </details>
5. Click "**Save Changes**", you will be prompted to edit stack UI labels, just leave this blank and click "**Ok**" 5. Click "**Save Changes**", you will be prompted to edit stack UI labels, just leave this blank and click "**Ok**"
6. Select the cog ⚙️ next to Immich, click "**Edit Stack**", then click "**Env File**" 6. Select the cog ⚙️ next to Immich, click "**Edit Stack**", then click "**Env File**"
7. Paste the entire contents of the [Immich example.env](https://github.com/immich-app/immich/releases/latest/download/example.env) file into the Unraid editor, then **before saving** edit the following: 7. Paste the entire contents of the [Immich example.env](https://github.com/immich-app/immich/releases/latest/download/example.env) file into the Unraid editor, then **before saving** edit the following:
- `UPLOAD_LOCATION`: Create a folder in your Images Unraid share and place the **absolute** location here > For example my _"images"_ share has a folder within it called _"immich"_. If I browse to this directory in the terminal and type `pwd` the output is `/mnt/user/images/immich`. This is the exact value I need to enter as my `UPLOAD_LOCATION` - `UPLOAD_LOCATION`: Create a folder in your Images Unraid share and place the **absolute** location here > For example my _"images"_ share has a folder within it called _"immich"_. If I browse to this directory in the terminal and type `pwd` the output is `/mnt/user/images/immich`. This is the exact value I need to enter as my `UPLOAD_LOCATION`
- `DB_DATA_LOCATION`: Change this to use an Unraid share (preferably a cache pool, e.g. `/mnt/user/appdata/postgresql/data`). This uses the `appdata` share. Do also create the `postgresql` folder, by running `mkdir /mnt/user/{share_location}/postgresql/data`. If left at default it will try to use Unraid's `/boot/config/plugins/compose.manager/projects/[stack_name]/postgres` folder which it doesn't have permissions to, resulting in this container continuously restarting. - `DB_DATA_LOCATION`: Change this to use an Unraid share (preferably a cache pool, e.g. `/mnt/user/appdata/postgresql/data`). This uses the `appdata` share. Do also create the `postgresql` folder, by running `mkdir /mnt/user/{share_location}/postgresql/data`. If left at default it will try to use Unraid's `/boot/config/plugins/compose.manager/projects/[stack_name]/postgres` folder which it doesn't have permissions to, resulting in this container continuously restarting.
<img <img
src={require('./img/unraid05.webp').default} src={require('./img/unraid05.webp').default}
width="70%" width="70%"
alt="Absolute location of where you want immich images stored" alt="Absolute location of where you want immich images stored"
/> />
<details > <details >
<summary>Using an existing Postgres container? Click me! Otherwise proceed to step 8.</summary> <summary>Using an existing Postgres container? Click me! Otherwise proceed to step 8.</summary>
<p>Update the following database variables as relevant to your Postgres container:</p> <p>Update the following database variables as relevant to your Postgres container:</p>
<ul> <ul>
<li><code>DB_HOSTNAME</code></li> <li><code>DB_HOSTNAME</code></li>
<li><code>DB_USERNAME</code></li> <li><code>DB_USERNAME</code></li>
<li><code>DB_PASSWORD</code></li> <li><code>DB_PASSWORD</code></li>
<li><code>DB_DATABASE_NAME</code></li> <li><code>DB_DATABASE_NAME</code></li>
<li><code>DB_PORT</code></li> <li><code>DB_PORT</code></li>
</ul> </ul>
</details> </details>
8. Click "**Save Changes**" followed by "**Compose Up**" and Unraid will begin to create the Immich containers in a popup window. Once complete you will see a message on the popup window stating _"Connection Closed"_. Click "**Done**" and go to the Unraid "**Docker**" page 8. Click "**Save Changes**" followed by "**Compose Up**" and Unraid will begin to create the Immich containers in a popup window. Once complete you will see a message on the popup window stating _"Connection Closed"_. Click "**Done**" and go to the Unraid "**Docker**" page
> Note: This can take several minutes depending on your Internet speed and Unraid hardware > Note: This can take several minutes depending on your Internet speed and Unraid hardware
9. Once on the Docker page you will see several Immich containers, one of them will be labelled `immich_server` and will have a port mapping. Visit the `IP:PORT` displayed in your web browser and you should see the Immich admin setup page. 9. Once on the Docker page you will see several Immich containers, one of them will be labelled `immich_server` and will have a port mapping. Visit the `IP:PORT` displayed in your web browser and you should see the Immich admin setup page.
<img <img
src={require('./img/unraid06.webp').default} src={require('./img/unraid06.webp').default}
@@ -122,7 +122,7 @@ alt="Go to Docker Tab and visit the address listed next to immich-web"
width="90%" width="90%"
alt="Go to Docker Tab and visit the address listed next to immich-web" alt="Go to Docker Tab and visit the address listed next to immich-web"
/> />
</details> </details>
:::tip :::tip

View File

@@ -1,5 +1,5 @@
--- ---
sidebar_position: 3 sidebar_position: 2
--- ---
# Comparison # Comparison

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

View File

@@ -2,13 +2,9 @@
sidebar_position: 1 sidebar_position: 1
--- ---
# Welcome to Immich # Introduction
<img <img src={require('./img/feature-panel.webp').default} alt="Immich - Self-hosted photos and videos backup tool" />
src={require('./img/social-preview-light.webp').default}
alt="Immich - Self-hosted photos and videos backup tool"
data-theme="light"
/>
## Welcome! ## Welcome!

View File

@@ -1,5 +1,5 @@
--- ---
sidebar_position: 2 sidebar_position: 3
--- ---
# Quick start # Quick start
@@ -10,20 +10,11 @@ to install and use it.
## Requirements ## Requirements
- A system with at least 4GB of RAM and 2 CPU cores. Check the [requirements page](/docs/install/requirements) to get started.
- [Docker](https://docs.docker.com/engine/install/)
> For a more detailed list of requirements, see the [requirements page](/docs/install/requirements).
---
## Set up the server ## Set up the server
import DockerComposeSteps from '/docs/partials/_docker-compose-install-steps.mdx'; Follow the [Docker Compose (Recommended)](/docs/install/docker-compose) instructions to install the server.
<DockerComposeSteps />
---
## Try the web app ## Try the web app
@@ -35,8 +26,6 @@ Try uploading a picture from your browser.
<img src={require('./img/upload-button.webp').default} title="Upload button" /> <img src={require('./img/upload-button.webp').default} title="Upload button" />
---
## Try the mobile app ## Try the mobile app
### Download the Mobile App ### Download the Mobile App
@@ -67,8 +56,6 @@ You can select the **Jobs** tab to see Immich processing your photos.
<img src={require('/docs/guides/img/jobs-tab.webp').default} title="Jobs tab" width={300} /> <img src={require('/docs/guides/img/jobs-tab.webp').default} title="Jobs tab" width={300} />
---
## Review the database backup and restore process ## Review the database backup and restore process
Immich has built-in database backups. You can refer to the Immich has built-in database backups. You can refer to the
@@ -78,8 +65,6 @@ Immich has built-in database backups. You can refer to the
The database only contains metadata and user information. You must setup manual backups of the images and videos stored in `UPLOAD_LOCATION`. The database only contains metadata and user information. You must setup manual backups of the images and videos stored in `UPLOAD_LOCATION`.
::: :::
---
## Where to go from here? ## Where to go from here?
You may decide you'd like to install the server a different way; the Install category on the left menu provides many options. You may decide you'd like to install the server a different way; the Install category on the left menu provides many options.

View File

@@ -1,43 +0,0 @@
import CodeBlock from '@theme/CodeBlock';
import ExampleEnv from '!!raw-loader!../../../docker/example.env';
### Step 1 - Download the required files
Create a directory of your choice (e.g. `./immich-app`) to hold the `docker-compose.yml` and `.env` files.
```bash title="Move to the directory you created"
mkdir ./immich-app
cd ./immich-app
```
Download [`docker-compose.yml`](https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml) and [`example.env`](https://github.com/immich-app/immich/releases/latest/download/example.env) by running the following commands:
```bash title="Get docker-compose.yml file"
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
```
```bash title="Get .env file"
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
```
You can alternatively download these two files from your browser and move them to the directory that you created, in which case ensure that you rename `example.env` to `.env`.
### Step 2 - Populate the .env file with custom values
<CodeBlock language="bash" title="Default environmental variable content">
{ExampleEnv}
</CodeBlock>
- Populate `UPLOAD_LOCATION` with your preferred location for storing backup assets. It should be a new directory on the server with enough free space.
- Consider changing `DB_PASSWORD` to a custom value. Postgres is not publicly exposed, so this password is only used for local authentication.
To avoid issues with Docker parsing this value, it is best to use only the characters `A-Za-z0-9`. `pwgen` is a handy utility for this.
- Set your timezone by uncommenting the `TZ=` line.
- Populate custom database information if necessary.
### Step 3 - Start the containers
From the directory you created in Step 1 (which should now contain your customized `docker-compose.yml` and `.env` files), run the following command to start Immich as a background service:
```bash title="Start the containers"
docker compose up -d
```

View File

@@ -95,7 +95,7 @@ const config = {
position: 'right', position: 'right',
}, },
{ {
to: '/docs/overview/welcome', to: '/docs/overview/introduction',
position: 'right', position: 'right',
label: 'Docs', label: 'Docs',
}, },
@@ -124,12 +124,6 @@ const config = {
label: 'Discord', label: 'Discord',
position: 'right', position: 'right',
}, },
{
type: 'html',
position: 'right',
value:
'<a href="https://buy.immich.app" target="_blank" class="no-underline hover:no-underline"><button class="buy-button bg-immich-primary dark:bg-immich-dark-primary text-white dark:text-black rounded-xl">Buy Immich</button></a>',
},
], ],
}, },
footer: { footer: {
@@ -140,7 +134,7 @@ const config = {
items: [ items: [
{ {
label: 'Welcome', label: 'Welcome',
to: '/docs/overview/welcome', to: '/docs/overview/introduction',
}, },
{ {
label: 'Installation', label: 'Installation',

View File

@@ -57,6 +57,6 @@
"node": ">=20" "node": ">=20"
}, },
"volta": { "volta": {
"node": "22.15.0" "node": "22.14.0"
} }
} }

View File

@@ -7,22 +7,14 @@
@tailwind components; @tailwind components;
@tailwind utilities; @tailwind utilities;
@font-face { @import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
font-family: 'Overpass';
src: url('/fonts/overpass/Overpass.ttf') format('truetype-variations');
font-weight: 1 999;
font-style: normal;
ascent-override: 106.25%;
size-adjust: 106.25%;
}
@font-face { body {
font-family: 'Overpass Mono'; font-family: 'Be Vietnam Pro', serif;
src: url('/fonts/overpass/OverpassMono.ttf') format('truetype-variations'); font-optical-sizing: auto;
font-weight: 1 999; /* font-size: 1.125rem;
font-style: normal;
ascent-override: 106.25%; ascent-override: 106.25%;
size-adjust: 106.25%; size-adjust: 106.25%; */
} }
.breadcrumbs__link { .breadcrumbs__link {
@@ -37,7 +29,6 @@ img {
/* You can override the default Infima variables here. */ /* You can override the default Infima variables here. */
:root { :root {
font-family: 'Overpass', sans-serif;
--ifm-color-primary: #4250af; --ifm-color-primary: #4250af;
--ifm-color-primary-dark: #4250af; --ifm-color-primary-dark: #4250af;
--ifm-color-primary-darker: #4250af; --ifm-color-primary-darker: #4250af;
@@ -68,12 +59,14 @@ div[class^='announcementBar_'] {
} }
.menu__link { .menu__link {
padding: 10px 10px 10px 16px; padding: 10px;
padding-left: 16px;
border-radius: 24px; border-radius: 24px;
margin-right: 16px; margin-right: 16px;
} }
.menu__list-item-collapsible { .menu__list-item-collapsible {
border-radius: 10px;
margin-right: 16px; margin-right: 16px;
border-radius: 24px; border-radius: 24px;
} }
@@ -90,12 +83,3 @@ div[class*='navbar__items'] > li:has(a[class*='version-switcher-34ab39']) {
code { code {
font-weight: 600; font-weight: 600;
} }
.buy-button {
padding: 8px 14px;
border: 1px solid transparent;
font-family: 'Overpass', sans-serif;
font-weight: 500;
cursor: pointer;
box-shadow: 0 0 5px 2px rgba(181, 206, 254, 0.4);
}

View File

@@ -2,7 +2,6 @@ import {
mdiBug, mdiBug,
mdiCalendarToday, mdiCalendarToday,
mdiCrosshairsOff, mdiCrosshairsOff,
mdiCrop,
mdiDatabase, mdiDatabase,
mdiLeadPencil, mdiLeadPencil,
mdiLockOff, mdiLockOff,
@@ -23,18 +22,6 @@ const withLanguage = (date: Date) => (language: string) => date.toLocaleDateStri
type Item = Omit<TimelineItem, 'done' | 'getDateLabel'> & { date: Date }; type Item = Omit<TimelineItem, 'done' | 'getDateLabel'> & { date: Date };
const items: Item[] = [ const items: Item[] = [
{
icon: mdiCrop,
iconColor: 'tomato',
title: 'Image dimensions in EXIF metadata are cursed',
description:
'The dimensions in EXIF metadata can be different from the actual dimensions of the image, causing issues with cropping and resizing.',
link: {
url: 'https://github.com/immich-app/immich/pull/17974',
text: '#17974',
},
date: new Date(2025, 5, 5),
},
{ {
icon: mdiMicrosoftWindows, icon: mdiMicrosoftWindows,
iconColor: '#357EC7', iconColor: '#357EC7',

View File

@@ -4,7 +4,7 @@ import Layout from '@theme/Layout';
import { discordPath, discordViewBox } from '@site/src/components/svg-paths'; import { discordPath, discordViewBox } from '@site/src/components/svg-paths';
import ThemedImage from '@theme/ThemedImage'; import ThemedImage from '@theme/ThemedImage';
import Icon from '@mdi/react'; import Icon from '@mdi/react';
import { mdiAndroid } from '@mdi/js';
function HomepageHeader() { function HomepageHeader() {
return ( return (
<header> <header>
@@ -13,14 +13,11 @@ function HomepageHeader() {
<div className="w-full h-[120vh] absolute left-0 top-0 backdrop-blur-3xl bg-immich-bg/40 dark:bg-transparent"></div> <div className="w-full h-[120vh] absolute left-0 top-0 backdrop-blur-3xl bg-immich-bg/40 dark:bg-transparent"></div>
</div> </div>
<section className="text-center pt-12 sm:pt-24 bg-immich-bg/50 dark:bg-immich-dark-bg/80"> <section className="text-center pt-12 sm:pt-24 bg-immich-bg/50 dark:bg-immich-dark-bg/80">
<a href="https://futo.org" target="_blank" rel="noopener noreferrer"> <ThemedImage
<ThemedImage sources={{ dark: 'img/logomark-dark.svg', light: 'img/logomark-light.svg' }}
sources={{ dark: 'img/logomark-dark-with-futo.svg', light: 'img/logomark-light-with-futo.svg' }} className="h-[115px] w-[115px] mb-2 antialiased rounded-none"
className="h-[125px] w-[125px] mb-2 antialiased rounded-none" alt="Immich logo"
alt="Immich logo" />
/>
</a>
<div className="mt-8"> <div className="mt-8">
<p className="text-3xl md:text-5xl sm:leading-tight mb-1 font-extrabold text-black/90 dark:text-white px-4"> <p className="text-3xl md:text-5xl sm:leading-tight mb-1 font-extrabold text-black/90 dark:text-white px-4">
Self-hosted{' '} Self-hosted{' '}
@@ -31,7 +28,7 @@ function HomepageHeader() {
solution<span className="block"></span> solution<span className="block"></span>
</p> </p>
<p className="max-w-1/4 m-auto mt-4 px-4 text-lg text-gray-700 dark:text-gray-100"> <p className="max-w-1/4 m-auto mt-4 px-4">
Easily back up, organize, and manage your photos on your own server. Immich helps you Easily back up, organize, and manage your photos on your own server. Immich helps you
<span className="sm:block"></span> browse, search and organize your photos and videos with ease, without <span className="sm:block"></span> browse, search and organize your photos and videos with ease, without
sacrificing your privacy. sacrificing your privacy.
@@ -39,21 +36,27 @@ function HomepageHeader() {
</div> </div>
<div className="flex flex-col sm:flex-row place-items-center place-content-center mt-9 gap-4 "> <div className="flex flex-col sm:flex-row place-items-center place-content-center mt-9 gap-4 ">
<Link <Link
className="flex place-items-center place-content-center py-3 px-8 border bg-immich-primary dark:bg-immich-dark-primary rounded-xl no-underline hover:no-underline text-white hover:text-gray-50 dark:text-immich-dark-bg font-bold" className="flex place-items-center place-content-center py-3 px-8 border bg-immich-primary dark:bg-immich-dark-primary rounded-xl no-underline hover:no-underline text-white hover:text-gray-50 dark:text-immich-dark-bg font-bold uppercase"
to="docs/overview/quick-start" to="docs/overview/introduction"
> >
Get Started Get started
</Link> </Link>
<Link <Link
className="flex place-items-center place-content-center py-3 px-8 border bg-white/90 dark:bg-gray-300 rounded-xl hover:no-underline text-immich-primary dark:text-immich-dark-bg font-bold" className="flex place-items-center place-content-center py-3 px-8 border bg-immich-primary/10 dark:bg-gray-300 rounded-xl hover:no-underline text-immich-primary dark:text-immich-dark-bg font-bold uppercase"
to="https://demo.immich.app/" to="https://demo.immich.app/"
> >
Open Demo Demo
</Link>
<Link
className="flex place-items-center place-content-center py-3 px-8 border bg-immich-primary/10 dark:bg-gray-300 rounded-xl hover:no-underline text-immich-primary dark:text-immich-dark-bg font-bold uppercase"
to="https://immich.store"
>
Buy Merch
</Link> </Link>
</div> </div>
<div className="my-12 flex gap-1 font-medium place-items-center place-content-center text-immich-primary dark:text-immich-dark-primary">
<div className="my-8 flex gap-1 font-medium place-items-center place-content-center text-immich-primary dark:text-immich-dark-primary">
<Icon <Icon
path={discordPath} path={discordPath}
viewBox={discordViewBox} /* viewBox may show an error in your IDE but it is normal. */ viewBox={discordViewBox} /* viewBox may show an error in your IDE but it is normal. */
@@ -116,7 +119,7 @@ export default function Home(): JSX.Element {
<HomepageHeader /> <HomepageHeader />
<div className="flex flex-col place-items-center text-center place-content-center dark:bg-immich-dark-bg py-8"> <div className="flex flex-col place-items-center text-center place-content-center dark:bg-immich-dark-bg py-8">
<p>This project is available under GNU AGPL v3 license.</p> <p>This project is available under GNU AGPL v3 license.</p>
<p className="text-sm">Privacy should not be a luxury</p> <p className="text-xs">Privacy should not be a luxury</p>
</div> </div>
</Layout> </Layout>
); );

View File

@@ -1,4 +1,5 @@
import React from 'react'; import React from 'react';
import Link from '@docusaurus/Link';
import Layout from '@theme/Layout'; import Layout from '@theme/Layout';
function HomepageHeader() { function HomepageHeader() {
return ( return (

View File

@@ -30,4 +30,3 @@
/docs/guides/api-album-sync /docs/community-projects 307 /docs/guides/api-album-sync /docs/community-projects 307
/docs/guides/remove-offline-files /docs/community-projects 307 /docs/guides/remove-offline-files /docs/community-projects 307
/milestones /roadmap 307 /milestones /roadmap 307
/docs/overview/introduction /docs/overview/welcome 307

View File

@@ -3,14 +3,50 @@
"label": "v1.132.3", "label": "v1.132.3",
"url": "https://v1.132.3.archive.immich.app" "url": "https://v1.132.3.archive.immich.app"
}, },
{
"label": "v1.132.2",
"url": "https://v1.132.2.archive.immich.app"
},
{
"label": "v1.132.1",
"url": "https://v1.132.1.archive.immich.app"
},
{
"label": "v1.132.0",
"url": "https://v1.132.0.archive.immich.app"
},
{ {
"label": "v1.131.3", "label": "v1.131.3",
"url": "https://v1.131.3.archive.immich.app" "url": "https://v1.131.3.archive.immich.app"
}, },
{
"label": "v1.131.2",
"url": "https://v1.131.2.archive.immich.app"
},
{
"label": "v1.131.1",
"url": "https://v1.131.1.archive.immich.app"
},
{
"label": "v1.131.0",
"url": "https://v1.131.0.archive.immich.app"
},
{ {
"label": "v1.130.3", "label": "v1.130.3",
"url": "https://v1.130.3.archive.immich.app" "url": "https://v1.130.3.archive.immich.app"
}, },
{
"label": "v1.130.2",
"url": "https://v1.130.2.archive.immich.app"
},
{
"label": "v1.130.1",
"url": "https://v1.130.1.archive.immich.app"
},
{
"label": "v1.130.0",
"url": "https://v1.130.0.archive.immich.app"
},
{ {
"label": "v1.129.0", "label": "v1.129.0",
"url": "https://v1.129.0.archive.immich.app" "url": "https://v1.129.0.archive.immich.app"
@@ -27,14 +63,46 @@
"label": "v1.126.1", "label": "v1.126.1",
"url": "https://v1.126.1.archive.immich.app" "url": "https://v1.126.1.archive.immich.app"
}, },
{
"label": "v1.126.0",
"url": "https://v1.126.0.archive.immich.app"
},
{ {
"label": "v1.125.7", "label": "v1.125.7",
"url": "https://v1.125.7.archive.immich.app" "url": "https://v1.125.7.archive.immich.app"
}, },
{
"label": "v1.125.6",
"url": "https://v1.125.6.archive.immich.app"
},
{
"label": "v1.125.5",
"url": "https://v1.125.5.archive.immich.app"
},
{
"label": "v1.125.3",
"url": "https://v1.125.3.archive.immich.app"
},
{
"label": "v1.125.2",
"url": "https://v1.125.2.archive.immich.app"
},
{
"label": "v1.125.1",
"url": "https://v1.125.1.archive.immich.app"
},
{ {
"label": "v1.124.2", "label": "v1.124.2",
"url": "https://v1.124.2.archive.immich.app" "url": "https://v1.124.2.archive.immich.app"
}, },
{
"label": "v1.124.1",
"url": "https://v1.124.1.archive.immich.app"
},
{
"label": "v1.124.0",
"url": "https://v1.124.0.archive.immich.app"
},
{ {
"label": "v1.123.0", "label": "v1.123.0",
"url": "https://v1.123.0.archive.immich.app" "url": "https://v1.123.0.archive.immich.app"
@@ -43,6 +111,18 @@
"label": "v1.122.3", "label": "v1.122.3",
"url": "https://v1.122.3.archive.immich.app" "url": "https://v1.122.3.archive.immich.app"
}, },
{
"label": "v1.122.2",
"url": "https://v1.122.2.archive.immich.app"
},
{
"label": "v1.122.1",
"url": "https://v1.122.1.archive.immich.app"
},
{
"label": "v1.122.0",
"url": "https://v1.122.0.archive.immich.app"
},
{ {
"label": "v1.121.0", "label": "v1.121.0",
"url": "https://v1.121.0.archive.immich.app" "url": "https://v1.121.0.archive.immich.app"
@@ -51,14 +131,34 @@
"label": "v1.120.2", "label": "v1.120.2",
"url": "https://v1.120.2.archive.immich.app" "url": "https://v1.120.2.archive.immich.app"
}, },
{
"label": "v1.120.1",
"url": "https://v1.120.1.archive.immich.app"
},
{
"label": "v1.120.0",
"url": "https://v1.120.0.archive.immich.app"
},
{ {
"label": "v1.119.1", "label": "v1.119.1",
"url": "https://v1.119.1.archive.immich.app" "url": "https://v1.119.1.archive.immich.app"
}, },
{
"label": "v1.119.0",
"url": "https://v1.119.0.archive.immich.app"
},
{ {
"label": "v1.118.2", "label": "v1.118.2",
"url": "https://v1.118.2.archive.immich.app" "url": "https://v1.118.2.archive.immich.app"
}, },
{
"label": "v1.118.1",
"url": "https://v1.118.1.archive.immich.app"
},
{
"label": "v1.118.0",
"url": "https://v1.118.0.archive.immich.app"
},
{ {
"label": "v1.117.0", "label": "v1.117.0",
"url": "https://v1.117.0.archive.immich.app" "url": "https://v1.117.0.archive.immich.app"
@@ -67,6 +167,14 @@
"label": "v1.116.2", "label": "v1.116.2",
"url": "https://v1.116.2.archive.immich.app" "url": "https://v1.116.2.archive.immich.app"
}, },
{
"label": "v1.116.1",
"url": "https://v1.116.1.archive.immich.app"
},
{
"label": "v1.116.0",
"url": "https://v1.116.0.archive.immich.app"
},
{ {
"label": "v1.115.0", "label": "v1.115.0",
"url": "https://v1.115.0.archive.immich.app" "url": "https://v1.115.0.archive.immich.app"
@@ -79,10 +187,18 @@
"label": "v1.113.1", "label": "v1.113.1",
"url": "https://v1.113.1.archive.immich.app" "url": "https://v1.113.1.archive.immich.app"
}, },
{
"label": "v1.113.0",
"url": "https://v1.113.0.archive.immich.app"
},
{ {
"label": "v1.112.1", "label": "v1.112.1",
"url": "https://v1.112.1.archive.immich.app" "url": "https://v1.112.1.archive.immich.app"
}, },
{
"label": "v1.112.0",
"url": "https://v1.112.0.archive.immich.app"
},
{ {
"label": "v1.111.0", "label": "v1.111.0",
"url": "https://v1.111.0.archive.immich.app" "url": "https://v1.111.0.archive.immich.app"
@@ -95,6 +211,14 @@
"label": "v1.109.2", "label": "v1.109.2",
"url": "https://v1.109.2.archive.immich.app" "url": "https://v1.109.2.archive.immich.app"
}, },
{
"label": "v1.109.1",
"url": "https://v1.109.1.archive.immich.app"
},
{
"label": "v1.109.0",
"url": "https://v1.109.0.archive.immich.app"
},
{ {
"label": "v1.108.0", "label": "v1.108.0",
"url": "https://v1.108.0.archive.immich.app" "url": "https://v1.108.0.archive.immich.app"
@@ -103,14 +227,38 @@
"label": "v1.107.2", "label": "v1.107.2",
"url": "https://v1.107.2.archive.immich.app" "url": "https://v1.107.2.archive.immich.app"
}, },
{
"label": "v1.107.1",
"url": "https://v1.107.1.archive.immich.app"
},
{
"label": "v1.107.0",
"url": "https://v1.107.0.archive.immich.app"
},
{ {
"label": "v1.106.4", "label": "v1.106.4",
"url": "https://v1.106.4.archive.immich.app" "url": "https://v1.106.4.archive.immich.app"
}, },
{
"label": "v1.106.3",
"url": "https://v1.106.3.archive.immich.app"
},
{
"label": "v1.106.2",
"url": "https://v1.106.2.archive.immich.app"
},
{
"label": "v1.106.1",
"url": "https://v1.106.1.archive.immich.app"
},
{ {
"label": "v1.105.1", "label": "v1.105.1",
"url": "https://v1.105.1.archive.immich.app" "url": "https://v1.105.1.archive.immich.app"
}, },
{
"label": "v1.105.0",
"url": "https://v1.105.0.archive.immich.app"
},
{ {
"label": "v1.104.0", "label": "v1.104.0",
"url": "https://v1.104.0.archive.immich.app" "url": "https://v1.104.0.archive.immich.app"
@@ -119,10 +267,26 @@
"label": "v1.103.1", "label": "v1.103.1",
"url": "https://v1.103.1.archive.immich.app" "url": "https://v1.103.1.archive.immich.app"
}, },
{
"label": "v1.103.0",
"url": "https://v1.103.0.archive.immich.app"
},
{ {
"label": "v1.102.3", "label": "v1.102.3",
"url": "https://v1.102.3.archive.immich.app" "url": "https://v1.102.3.archive.immich.app"
}, },
{
"label": "v1.102.2",
"url": "https://v1.102.2.archive.immich.app"
},
{
"label": "v1.102.1",
"url": "https://v1.102.1.archive.immich.app"
},
{
"label": "v1.102.0",
"url": "https://v1.102.0.archive.immich.app"
},
{ {
"label": "v1.101.0", "label": "v1.101.0",
"url": "https://v1.101.0.archive.immich.app" "url": "https://v1.101.0.archive.immich.app"

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 75 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 75 KiB

View File

@@ -1 +1 @@
22.15.0 22.14.0

View File

@@ -28,14 +28,10 @@ services:
extra_hosts: extra_hosts:
- 'auth-server:host-gateway' - 'auth-server:host-gateway'
depends_on: depends_on:
- redis
- database - database
ports: ports:
- 2285:2285 - 2285:2285
redis:
image: redis:6.2-alpine@sha256:3211c33a618c457e5d241922c975dbc4f446d0bdb2dc75694f5573ef8e2d01fa
database: database:
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52 image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52
command: -c fsync=off -c shared_preload_libraries=vectors.so command: -c fsync=off -c shared_preload_libraries=vectors.so

1213
e2e/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -25,9 +25,9 @@
"@immich/sdk": "file:../open-api/typescript-sdk", "@immich/sdk": "file:../open-api/typescript-sdk",
"@playwright/test": "^1.44.1", "@playwright/test": "^1.44.1",
"@types/luxon": "^3.4.2", "@types/luxon": "^3.4.2",
"@types/node": "^22.15.16", "@types/node": "^22.14.1",
"@types/oidc-provider": "^8.5.1", "@types/oidc-provider": "^8.5.1",
"@types/pg": "^8.15.1", "@types/pg": "^8.11.0",
"@types/pngjs": "^6.0.4", "@types/pngjs": "^6.0.4",
"@types/supertest": "^6.0.2", "@types/supertest": "^6.0.2",
"@vitest/coverage-v8": "^3.0.0", "@vitest/coverage-v8": "^3.0.0",
@@ -52,6 +52,6 @@
"vitest": "^3.0.0" "vitest": "^3.0.0"
}, },
"volta": { "volta": {
"node": "22.15.0" "node": "22.14.0"
} }
} }

View File

@@ -46,6 +46,38 @@ describe('/activities', () => {
}); });
describe('GET /activities', () => { describe('GET /activities', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/activities');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require an albumId', async () => {
const { status, body } = await request(app)
.get('/activities')
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toEqual(400);
expect(body).toEqual(errorDto.badRequest(expect.arrayContaining(['albumId must be a UUID'])));
});
it('should reject an invalid albumId', async () => {
const { status, body } = await request(app)
.get('/activities')
.query({ albumId: uuidDto.invalid })
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toEqual(400);
expect(body).toEqual(errorDto.badRequest(expect.arrayContaining(['albumId must be a UUID'])));
});
it('should reject an invalid assetId', async () => {
const { status, body } = await request(app)
.get('/activities')
.query({ albumId: uuidDto.notFound, assetId: uuidDto.invalid })
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toEqual(400);
expect(body).toEqual(errorDto.badRequest(expect.arrayContaining(['assetId must be a UUID'])));
});
it('should start off empty', async () => { it('should start off empty', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/activities') .get('/activities')
@@ -160,6 +192,30 @@ describe('/activities', () => {
}); });
describe('POST /activities', () => { describe('POST /activities', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).post('/activities');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require an albumId', async () => {
const { status, body } = await request(app)
.post('/activities')
.set('Authorization', `Bearer ${admin.accessToken}`)
.send({ albumId: uuidDto.invalid });
expect(status).toEqual(400);
expect(body).toEqual(errorDto.badRequest(expect.arrayContaining(['albumId must be a UUID'])));
});
it('should require a comment when type is comment', async () => {
const { status, body } = await request(app)
.post('/activities')
.set('Authorization', `Bearer ${admin.accessToken}`)
.send({ albumId: uuidDto.notFound, type: 'comment', comment: null });
expect(status).toEqual(400);
expect(body).toEqual(errorDto.badRequest(['comment must be a string', 'comment should not be empty']));
});
it('should add a comment to an album', async () => { it('should add a comment to an album', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.post('/activities') .post('/activities')
@@ -274,6 +330,20 @@ describe('/activities', () => {
}); });
describe('DELETE /activities/:id', () => { describe('DELETE /activities/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).delete(`/activities/${uuidDto.notFound}`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require a valid uuid', async () => {
const { status, body } = await request(app)
.delete(`/activities/${uuidDto.invalid}`)
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
});
it('should remove a comment from an album', async () => { it('should remove a comment from an album', async () => {
const reaction = await createActivity({ const reaction = await createActivity({
albumId: album.id, albumId: album.id,

View File

@@ -9,7 +9,7 @@ import {
LoginResponseDto, LoginResponseDto,
SharedLinkType, SharedLinkType,
} from '@immich/sdk'; } from '@immich/sdk';
import { createUserDto } from 'src/fixtures'; import { createUserDto, uuidDto } from 'src/fixtures';
import { errorDto } from 'src/responses'; import { errorDto } from 'src/responses';
import { app, asBearerAuth, utils } from 'src/utils'; import { app, asBearerAuth, utils } from 'src/utils';
import request from 'supertest'; import request from 'supertest';
@@ -128,6 +128,28 @@ describe('/albums', () => {
}); });
describe('GET /albums', () => { describe('GET /albums', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/albums');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should reject an invalid shared param', async () => {
const { status, body } = await request(app)
.get('/albums?shared=invalid')
.set('Authorization', `Bearer ${user1.accessToken}`);
expect(status).toEqual(400);
expect(body).toEqual(errorDto.badRequest(['shared must be a boolean value']));
});
it('should reject an invalid assetId param', async () => {
const { status, body } = await request(app)
.get('/albums?assetId=invalid')
.set('Authorization', `Bearer ${user1.accessToken}`);
expect(status).toEqual(400);
expect(body).toEqual(errorDto.badRequest(['assetId must be a UUID']));
});
it("should not show other users' favorites", async () => { it("should not show other users' favorites", async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get(`/albums/${user1Albums[0].id}?withoutAssets=false`) .get(`/albums/${user1Albums[0].id}?withoutAssets=false`)
@@ -301,6 +323,12 @@ describe('/albums', () => {
}); });
describe('GET /albums/:id', () => { describe('GET /albums/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get(`/albums/${user1Albums[0].id}`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should return album info for own album', async () => { it('should return album info for own album', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get(`/albums/${user1Albums[0].id}?withoutAssets=false`) .get(`/albums/${user1Albums[0].id}?withoutAssets=false`)
@@ -393,6 +421,12 @@ describe('/albums', () => {
}); });
describe('GET /albums/statistics', () => { describe('GET /albums/statistics', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/albums/statistics');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should return total count of albums the user has access to', async () => { it('should return total count of albums the user has access to', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/albums/statistics') .get('/albums/statistics')
@@ -404,6 +438,12 @@ describe('/albums', () => {
}); });
describe('POST /albums', () => { describe('POST /albums', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).post('/albums').send({ albumName: 'New album' });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should create an album', async () => { it('should create an album', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.post('/albums') .post('/albums')
@@ -431,6 +471,12 @@ describe('/albums', () => {
}); });
describe('PUT /albums/:id/assets', () => { describe('PUT /albums/:id/assets', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).put(`/albums/${user1Albums[0].id}/assets`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should be able to add own asset to own album', async () => { it('should be able to add own asset to own album', async () => {
const asset = await utils.createAsset(user1.accessToken); const asset = await utils.createAsset(user1.accessToken);
const { status, body } = await request(app) const { status, body } = await request(app)
@@ -480,6 +526,14 @@ describe('/albums', () => {
}); });
describe('PATCH /albums/:id', () => { describe('PATCH /albums/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app)
.patch(`/albums/${uuidDto.notFound}`)
.send({ albumName: 'New album name' });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should update an album', async () => { it('should update an album', async () => {
const album = await utils.createAlbum(user1.accessToken, { const album = await utils.createAlbum(user1.accessToken, {
albumName: 'New album', albumName: 'New album',
@@ -522,6 +576,15 @@ describe('/albums', () => {
}); });
describe('DELETE /albums/:id/assets', () => { describe('DELETE /albums/:id/assets', () => {
it('should require authentication', async () => {
const { status, body } = await request(app)
.delete(`/albums/${user1Albums[0].id}/assets`)
.send({ ids: [user1Asset1.id] });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require authorization', async () => { it('should require authorization', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.delete(`/albums/${user1Albums[1].id}/assets`) .delete(`/albums/${user1Albums[1].id}/assets`)
@@ -616,6 +679,13 @@ describe('/albums', () => {
}); });
}); });
it('should require authentication', async () => {
const { status, body } = await request(app).put(`/albums/${user1Albums[0].id}/users`).send({ sharedUserIds: [] });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should be able to add user to own album', async () => { it('should be able to add user to own album', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.put(`/albums/${album.id}/users`) .put(`/albums/${album.id}/users`)

View File

@@ -1,5 +1,5 @@
import { LoginResponseDto, Permission, createApiKey } from '@immich/sdk'; import { LoginResponseDto, Permission, createApiKey } from '@immich/sdk';
import { createUserDto } from 'src/fixtures'; import { createUserDto, uuidDto } from 'src/fixtures';
import { errorDto } from 'src/responses'; import { errorDto } from 'src/responses';
import { app, asBearerAuth, utils } from 'src/utils'; import { app, asBearerAuth, utils } from 'src/utils';
import request from 'supertest'; import request from 'supertest';
@@ -24,6 +24,12 @@ describe('/api-keys', () => {
}); });
describe('POST /api-keys', () => { describe('POST /api-keys', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).post('/api-keys').send({ name: 'API Key' });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should not work without permission', async () => { it('should not work without permission', async () => {
const { secret } = await create(user.accessToken, [Permission.ApiKeyRead]); const { secret } = await create(user.accessToken, [Permission.ApiKeyRead]);
const { status, body } = await request(app).post('/api-keys').set('x-api-key', secret).send({ name: 'API Key' }); const { status, body } = await request(app).post('/api-keys').set('x-api-key', secret).send({ name: 'API Key' });
@@ -93,6 +99,12 @@ describe('/api-keys', () => {
}); });
describe('GET /api-keys', () => { describe('GET /api-keys', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/api-keys');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should start off empty', async () => { it('should start off empty', async () => {
const { status, body } = await request(app).get('/api-keys').set('Authorization', `Bearer ${admin.accessToken}`); const { status, body } = await request(app).get('/api-keys').set('Authorization', `Bearer ${admin.accessToken}`);
expect(body).toEqual([]); expect(body).toEqual([]);
@@ -113,6 +125,12 @@ describe('/api-keys', () => {
}); });
describe('GET /api-keys/:id', () => { describe('GET /api-keys/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get(`/api-keys/${uuidDto.notFound}`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require authorization', async () => { it('should require authorization', async () => {
const { apiKey } = await create(user.accessToken, [Permission.All]); const { apiKey } = await create(user.accessToken, [Permission.All]);
const { status, body } = await request(app) const { status, body } = await request(app)
@@ -122,6 +140,14 @@ describe('/api-keys', () => {
expect(body).toEqual(errorDto.badRequest('API Key not found')); expect(body).toEqual(errorDto.badRequest('API Key not found'));
}); });
it('should require a valid uuid', async () => {
const { status, body } = await request(app)
.get(`/api-keys/${uuidDto.invalid}`)
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
});
it('should get api key details', async () => { it('should get api key details', async () => {
const { apiKey } = await create(user.accessToken, [Permission.All]); const { apiKey } = await create(user.accessToken, [Permission.All]);
const { status, body } = await request(app) const { status, body } = await request(app)
@@ -139,6 +165,12 @@ describe('/api-keys', () => {
}); });
describe('PUT /api-keys/:id', () => { describe('PUT /api-keys/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).put(`/api-keys/${uuidDto.notFound}`).send({ name: 'new name' });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require authorization', async () => { it('should require authorization', async () => {
const { apiKey } = await create(user.accessToken, [Permission.All]); const { apiKey } = await create(user.accessToken, [Permission.All]);
const { status, body } = await request(app) const { status, body } = await request(app)
@@ -149,6 +181,15 @@ describe('/api-keys', () => {
expect(body).toEqual(errorDto.badRequest('API Key not found')); expect(body).toEqual(errorDto.badRequest('API Key not found'));
}); });
it('should require a valid uuid', async () => {
const { status, body } = await request(app)
.put(`/api-keys/${uuidDto.invalid}`)
.send({ name: 'new name' })
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
});
it('should update api key details', async () => { it('should update api key details', async () => {
const { apiKey } = await create(user.accessToken, [Permission.All]); const { apiKey } = await create(user.accessToken, [Permission.All]);
const { status, body } = await request(app) const { status, body } = await request(app)
@@ -167,6 +208,12 @@ describe('/api-keys', () => {
}); });
describe('DELETE /api-keys/:id', () => { describe('DELETE /api-keys/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).delete(`/api-keys/${uuidDto.notFound}`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require authorization', async () => { it('should require authorization', async () => {
const { apiKey } = await create(user.accessToken, [Permission.All]); const { apiKey } = await create(user.accessToken, [Permission.All]);
const { status, body } = await request(app) const { status, body } = await request(app)
@@ -176,6 +223,14 @@ describe('/api-keys', () => {
expect(body).toEqual(errorDto.badRequest('API Key not found')); expect(body).toEqual(errorDto.badRequest('API Key not found'));
}); });
it('should require a valid uuid', async () => {
const { status, body } = await request(app)
.delete(`/api-keys/${uuidDto.invalid}`)
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
});
it('should delete an api key', async () => { it('should delete an api key', async () => {
const { apiKey } = await create(user.accessToken, [Permission.All]); const { apiKey } = await create(user.accessToken, [Permission.All]);
const { status } = await request(app) const { status } = await request(app)

View File

@@ -3,7 +3,6 @@ import {
AssetMediaStatus, AssetMediaStatus,
AssetResponseDto, AssetResponseDto,
AssetTypeEnum, AssetTypeEnum,
AssetVisibility,
getAssetInfo, getAssetInfo,
getMyUser, getMyUser,
LoginResponseDto, LoginResponseDto,
@@ -23,9 +22,27 @@ import { app, asBearerAuth, tempDir, TEN_TIMES, testAssetDir, utils } from 'src/
import request from 'supertest'; import request from 'supertest';
import { afterAll, beforeAll, describe, expect, it } from 'vitest'; import { afterAll, beforeAll, describe, expect, it } from 'vitest';
const makeUploadDto = (options?: { omit: string }): Record<string, any> => {
const dto: Record<string, any> = {
deviceAssetId: 'example-image',
deviceId: 'TEST',
fileCreatedAt: new Date().toISOString(),
fileModifiedAt: new Date().toISOString(),
isFavorite: 'testing',
duration: '0:00:00.000000',
};
const omit = options?.omit;
if (omit) {
delete dto[omit];
}
return dto;
};
const locationAssetFilepath = `${testAssetDir}/metadata/gps-position/thompson-springs.jpg`; const locationAssetFilepath = `${testAssetDir}/metadata/gps-position/thompson-springs.jpg`;
const ratingAssetFilepath = `${testAssetDir}/metadata/rating/mongolels.jpg`; const ratingAssetFilepath = `${testAssetDir}/metadata/rating/mongolels.jpg`;
const facesAssetDir = `${testAssetDir}/metadata/faces`; const facesAssetFilepath = `${testAssetDir}/metadata/faces/portrait.jpg`;
const readTags = async (bytes: Buffer, filename: string) => { const readTags = async (bytes: Buffer, filename: string) => {
const filepath = join(tempDir, filename); const filepath = join(tempDir, filename);
@@ -120,9 +137,9 @@ describe('/asset', () => {
// stats // stats
utils.createAsset(statsUser.accessToken), utils.createAsset(statsUser.accessToken),
utils.createAsset(statsUser.accessToken, { isFavorite: true }), utils.createAsset(statsUser.accessToken, { isFavorite: true }),
utils.createAsset(statsUser.accessToken, { visibility: AssetVisibility.Archive }), utils.createAsset(statsUser.accessToken, { isArchived: true }),
utils.createAsset(statsUser.accessToken, { utils.createAsset(statsUser.accessToken, {
visibility: AssetVisibility.Archive, isArchived: true,
isFavorite: true, isFavorite: true,
assetData: { filename: 'example.mp4' }, assetData: { filename: 'example.mp4' },
}), }),
@@ -143,6 +160,13 @@ describe('/asset', () => {
}); });
describe('GET /assets/:id/original', () => { describe('GET /assets/:id/original', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get(`/assets/${uuidDto.notFound}/original`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should download the file', async () => { it('should download the file', async () => {
const response = await request(app) const response = await request(app)
.get(`/assets/${user1Assets[0].id}/original`) .get(`/assets/${user1Assets[0].id}/original`)
@@ -154,6 +178,20 @@ describe('/asset', () => {
}); });
describe('GET /assets/:id', () => { describe('GET /assets/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get(`/assets/${uuidDto.notFound}`);
expect(body).toEqual(errorDto.unauthorized);
expect(status).toBe(401);
});
it('should require a valid id', async () => {
const { status, body } = await request(app)
.get(`/assets/${uuidDto.invalid}`)
.set('Authorization', `Bearer ${user1.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
});
it('should require access', async () => { it('should require access', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get(`/assets/${user2Assets[0].id}`) .get(`/assets/${user2Assets[0].id}`)
@@ -186,22 +224,31 @@ describe('/asset', () => {
}); });
}); });
describe('faces', () => { it('should get the asset faces', async () => {
const metadataFaceTests = [ const config = await utils.getSystemConfig(admin.accessToken);
{ config.metadata.faces.import = true;
description: 'without orientation', await updateConfig({ systemConfigDto: config }, { headers: asBearerAuth(admin.accessToken) });
// asset faces
const facesAsset = await utils.createAsset(admin.accessToken, {
assetData: {
filename: 'portrait.jpg', filename: 'portrait.jpg',
bytes: await readFile(facesAssetFilepath),
}, },
{ });
description: 'adjusting face regions to orientation',
filename: 'portrait-orientation-6.jpg', await utils.waitForWebsocketEvent({ event: 'assetUpload', id: facesAsset.id });
},
]; const { status, body } = await request(app)
// should produce same resulting face region coordinates for any orientation .get(`/assets/${facesAsset.id}`)
const expectedFaces = [ .set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(200);
expect(body.id).toEqual(facesAsset.id);
expect(body.people).toMatchObject([
{ {
name: 'Marie Curie', name: 'Marie Curie',
birthDate: null, birthDate: null,
thumbnailPath: '',
isHidden: false, isHidden: false,
faces: [ faces: [
{ {
@@ -218,6 +265,7 @@ describe('/asset', () => {
{ {
name: 'Pierre Curie', name: 'Pierre Curie',
birthDate: null, birthDate: null,
thumbnailPath: '',
isHidden: false, isHidden: false,
faces: [ faces: [
{ {
@@ -231,30 +279,7 @@ describe('/asset', () => {
}, },
], ],
}, },
]; ]);
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);
expect(body.people).toMatchObject(expectedFaces);
});
}); });
it('should work with a shared link', async () => { it('should work with a shared link', async () => {
@@ -308,7 +333,7 @@ describe('/asset', () => {
}); });
it('disallows viewing archived assets', async () => { it('disallows viewing archived assets', async () => {
const asset = await utils.createAsset(user1.accessToken, { visibility: AssetVisibility.Archive }); const asset = await utils.createAsset(user1.accessToken, { isArchived: true });
const { status } = await request(app) const { status } = await request(app)
.get(`/assets/${asset.id}`) .get(`/assets/${asset.id}`)
@@ -329,6 +354,13 @@ describe('/asset', () => {
}); });
describe('GET /assets/statistics', () => { describe('GET /assets/statistics', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/assets/statistics');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should return stats of all assets', async () => { it('should return stats of all assets', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/assets/statistics') .get('/assets/statistics')
@@ -352,7 +384,7 @@ describe('/asset', () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/assets/statistics') .get('/assets/statistics')
.set('Authorization', `Bearer ${statsUser.accessToken}`) .set('Authorization', `Bearer ${statsUser.accessToken}`)
.query({ visibility: AssetVisibility.Archive }); .query({ isArchived: true });
expect(status).toBe(200); expect(status).toBe(200);
expect(body).toEqual({ images: 1, videos: 1, total: 2 }); expect(body).toEqual({ images: 1, videos: 1, total: 2 });
@@ -362,7 +394,7 @@ describe('/asset', () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/assets/statistics') .get('/assets/statistics')
.set('Authorization', `Bearer ${statsUser.accessToken}`) .set('Authorization', `Bearer ${statsUser.accessToken}`)
.query({ isFavorite: true, visibility: AssetVisibility.Archive }); .query({ isFavorite: true, isArchived: true });
expect(status).toBe(200); expect(status).toBe(200);
expect(body).toEqual({ images: 0, videos: 1, total: 1 }); expect(body).toEqual({ images: 0, videos: 1, total: 1 });
@@ -372,7 +404,7 @@ describe('/asset', () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/assets/statistics') .get('/assets/statistics')
.set('Authorization', `Bearer ${statsUser.accessToken}`) .set('Authorization', `Bearer ${statsUser.accessToken}`)
.query({ isFavorite: false, visibility: AssetVisibility.Timeline }); .query({ isFavorite: false, isArchived: false });
expect(status).toBe(200); expect(status).toBe(200);
expect(body).toEqual({ images: 1, videos: 0, total: 1 }); expect(body).toEqual({ images: 1, videos: 0, total: 1 });
@@ -393,6 +425,13 @@ describe('/asset', () => {
await utils.waitForQueueFinish(admin.accessToken, 'thumbnailGeneration'); await utils.waitForQueueFinish(admin.accessToken, 'thumbnailGeneration');
}); });
it('should require authentication', async () => {
const { status, body } = await request(app).get('/assets/random');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it.each(TEN_TIMES)('should return 1 random assets', async () => { it.each(TEN_TIMES)('should return 1 random assets', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/assets/random') .get('/assets/random')
@@ -428,9 +467,31 @@ describe('/asset', () => {
expect(status).toBe(200); expect(status).toBe(200);
expect(body).toEqual([expect.objectContaining({ id: user2Assets[0].id })]); expect(body).toEqual([expect.objectContaining({ id: user2Assets[0].id })]);
}); });
it('should return error', async () => {
const { status } = await request(app)
.get('/assets/random?count=ABC')
.set('Authorization', `Bearer ${user1.accessToken}`);
expect(status).toBe(400);
});
}); });
describe('PUT /assets/:id', () => { describe('PUT /assets/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).put(`/assets/:${uuidDto.notFound}`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require a valid id', async () => {
const { status, body } = await request(app)
.put(`/assets/${uuidDto.invalid}`)
.set('Authorization', `Bearer ${user1.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
});
it('should require access', async () => { it('should require access', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.put(`/assets/${user2Assets[0].id}`) .put(`/assets/${user2Assets[0].id}`)
@@ -458,7 +519,7 @@ describe('/asset', () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.put(`/assets/${user1Assets[0].id}`) .put(`/assets/${user1Assets[0].id}`)
.set('Authorization', `Bearer ${user1.accessToken}`) .set('Authorization', `Bearer ${user1.accessToken}`)
.send({ visibility: AssetVisibility.Archive }); .send({ isArchived: true });
expect(body).toMatchObject({ id: user1Assets[0].id, isArchived: true }); expect(body).toMatchObject({ id: user1Assets[0].id, isArchived: true });
expect(status).toEqual(200); expect(status).toEqual(200);
}); });
@@ -558,6 +619,28 @@ describe('/asset', () => {
expect(status).toEqual(200); expect(status).toEqual(200);
}); });
it('should reject invalid gps coordinates', async () => {
for (const test of [
{ latitude: 12 },
{ longitude: 12 },
{ latitude: 12, longitude: 'abc' },
{ latitude: 'abc', longitude: 12 },
{ latitude: null, longitude: 12 },
{ latitude: 12, longitude: null },
{ latitude: 91, longitude: 12 },
{ latitude: -91, longitude: 12 },
{ latitude: 12, longitude: -181 },
{ latitude: 12, longitude: 181 },
]) {
const { status, body } = await request(app)
.put(`/assets/${user1Assets[0].id}`)
.send(test)
.set('Authorization', `Bearer ${user1.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest());
}
});
it('should update gps data', async () => { it('should update gps data', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.put(`/assets/${user1Assets[0].id}`) .put(`/assets/${user1Assets[0].id}`)
@@ -629,6 +712,17 @@ describe('/asset', () => {
expect(status).toEqual(200); expect(status).toEqual(200);
}); });
it('should reject invalid rating', async () => {
for (const test of [{ rating: 7 }, { rating: 3.5 }, { rating: null }]) {
const { status, body } = await request(app)
.put(`/assets/${user1Assets[0].id}`)
.send(test)
.set('Authorization', `Bearer ${user1.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest());
}
});
it('should return tagged people', async () => { it('should return tagged people', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.put(`/assets/${user1Assets[0].id}`) .put(`/assets/${user1Assets[0].id}`)
@@ -652,6 +746,25 @@ describe('/asset', () => {
}); });
describe('DELETE /assets', () => { describe('DELETE /assets', () => {
it('should require authentication', async () => {
const { status, body } = await request(app)
.delete(`/assets`)
.send({ ids: [uuidDto.notFound] });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require a valid uuid', async () => {
const { status, body } = await request(app)
.delete(`/assets`)
.send({ ids: [uuidDto.invalid] })
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['each value in ids must be a UUID']));
});
it('should throw an error when the id is not found', async () => { it('should throw an error when the id is not found', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.delete(`/assets`) .delete(`/assets`)
@@ -764,6 +877,13 @@ describe('/asset', () => {
}); });
describe('GET /assets/:id/thumbnail', () => { describe('GET /assets/:id/thumbnail', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get(`/assets/${locationAsset.id}/thumbnail`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should not include gps data for webp thumbnails', async () => { it('should not include gps data for webp thumbnails', async () => {
await utils.waitForWebsocketEvent({ await utils.waitForWebsocketEvent({
event: 'assetUpload', event: 'assetUpload',
@@ -799,6 +919,13 @@ describe('/asset', () => {
}); });
describe('GET /assets/:id/original', () => { describe('GET /assets/:id/original', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get(`/assets/${locationAsset.id}/original`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should download the original', async () => { it('should download the original', async () => {
const { status, body, type } = await request(app) const { status, body, type } = await request(app)
.get(`/assets/${locationAsset.id}/original`) .get(`/assets/${locationAsset.id}/original`)
@@ -819,9 +946,43 @@ describe('/asset', () => {
}); });
}); });
describe('PUT /assets', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).put('/assets');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
});
describe('POST /assets', () => { describe('POST /assets', () => {
beforeAll(setupTests, 30_000); beforeAll(setupTests, 30_000);
it('should require authentication', async () => {
const { status, body } = await request(app).post(`/assets`);
expect(body).toEqual(errorDto.unauthorized);
expect(status).toBe(401);
});
it.each([
{ should: 'require `deviceAssetId`', dto: { ...makeUploadDto({ omit: 'deviceAssetId' }) } },
{ should: 'require `deviceId`', dto: { ...makeUploadDto({ omit: 'deviceId' }) } },
{ should: 'require `fileCreatedAt`', dto: { ...makeUploadDto({ omit: 'fileCreatedAt' }) } },
{ should: 'require `fileModifiedAt`', dto: { ...makeUploadDto({ omit: 'fileModifiedAt' }) } },
{ should: 'require `duration`', dto: { ...makeUploadDto({ omit: 'duration' }) } },
{ should: 'throw if `isFavorite` is not a boolean', dto: { ...makeUploadDto(), isFavorite: 'not-a-boolean' } },
{ should: 'throw if `isVisible` is not a boolean', dto: { ...makeUploadDto(), isVisible: 'not-a-boolean' } },
{ should: 'throw if `isArchived` is not a boolean', dto: { ...makeUploadDto(), isArchived: 'not-a-boolean' } },
])('should $should', async ({ dto }) => {
const { status, body } = await request(app)
.post('/assets')
.set('Authorization', `Bearer ${user1.accessToken}`)
.attach('assetData', makeRandomImage(), 'example.png')
.field(dto);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest());
});
const tests = [ const tests = [
{ {
input: 'formats/avif/8bit-sRGB.avif', input: 'formats/avif/8bit-sRGB.avif',
@@ -1083,21 +1244,31 @@ describe('/asset', () => {
}, },
]; ];
it.each(tests)(`should upload and generate a thumbnail for different file types`, async ({ input, expected }) => { it(`should upload and generate a thumbnail for different file types`, async () => {
const filepath = join(testAssetDir, input); // upload in parallel
const response = await utils.createAsset(admin.accessToken, { const assets = await Promise.all(
assetData: { bytes: await readFile(filepath), filename: basename(filepath) }, tests.map(async ({ input }) => {
}); const filepath = join(testAssetDir, input);
return utils.createAsset(admin.accessToken, {
assetData: { bytes: await readFile(filepath), filename: basename(filepath) },
});
}),
);
expect(response.status).toBe(AssetMediaStatus.Created); for (const { id, status } of assets) {
const id = response.id; expect(status).toBe(AssetMediaStatus.Created);
// longer timeout as the thumbnail generation from full-size raw files can take a while // longer timeout as the thumbnail generation from full-size raw files can take a while
await utils.waitForWebsocketEvent({ event: 'assetUpload', id }); await utils.waitForWebsocketEvent({ event: 'assetUpload', id });
}
const asset = await utils.getAssetInfo(admin.accessToken, id); for (const [i, { id }] of assets.entries()) {
expect(asset.exifInfo).toBeDefined(); const { expected } = tests[i];
expect(asset.exifInfo).toMatchObject(expected.exifInfo); const asset = await utils.getAssetInfo(admin.accessToken, id);
expect(asset).toMatchObject(expected);
expect(asset.exifInfo).toBeDefined();
expect(asset.exifInfo).toMatchObject(expected.exifInfo);
expect(asset).toMatchObject(expected);
}
}); });
it('should handle a duplicate', async () => { it('should handle a duplicate', async () => {

View File

@@ -19,6 +19,17 @@ describe(`/auth/admin-sign-up`, () => {
expect(body).toEqual(signupResponseDto.admin); expect(body).toEqual(signupResponseDto.admin);
}); });
it('should sign up the admin with a local domain', async () => {
const { status, body } = await request(app)
.post('/auth/admin-sign-up')
.send({ ...signupDto.admin, email: 'admin@local' });
expect(status).toEqual(201);
expect(body).toEqual({
...signupResponseDto.admin,
email: 'admin@local',
});
});
it('should not allow a second admin to sign up', async () => { it('should not allow a second admin to sign up', async () => {
await signUpAdmin({ signUpDto: signupDto.admin }); await signUpAdmin({ signUpDto: signupDto.admin });
@@ -46,6 +57,22 @@ describe('/auth/*', () => {
expect(body).toEqual(errorDto.incorrectLogin); expect(body).toEqual(errorDto.incorrectLogin);
}); });
for (const key of Object.keys(loginDto.admin)) {
it(`should not allow null ${key}`, async () => {
const { status, body } = await request(app)
.post('/auth/login')
.send({ ...loginDto.admin, [key]: null });
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest());
});
it('should reject an invalid email', async () => {
const { status, body } = await request(app).post('/auth/login').send({ email: [], password });
expect(status).toBe(400);
expect(body).toEqual(errorDto.invalidEmail);
});
}
it('should accept a correct password', async () => { it('should accept a correct password', async () => {
const { status, body, headers } = await request(app).post('/auth/login').send({ email, password }); const { status, body, headers } = await request(app).post('/auth/login').send({ email, password });
expect(status).toBe(201); expect(status).toBe(201);
@@ -100,6 +127,14 @@ describe('/auth/*', () => {
}); });
describe('POST /auth/change-password', () => { describe('POST /auth/change-password', () => {
it('should require authentication', async () => {
const { status, body } = await request(app)
.post(`/auth/change-password`)
.send({ password, newPassword: 'Password1234' });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require the current password', async () => { it('should require the current password', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.post(`/auth/change-password`) .post(`/auth/change-password`)

View File

@@ -1,5 +1,6 @@
import { AssetMediaResponseDto, LoginResponseDto } from '@immich/sdk'; import { AssetMediaResponseDto, LoginResponseDto } from '@immich/sdk';
import { readFile, writeFile } from 'node:fs/promises'; import { readFile, writeFile } from 'node:fs/promises';
import { errorDto } from 'src/responses';
import { app, tempDir, utils } from 'src/utils'; import { app, tempDir, utils } from 'src/utils';
import request from 'supertest'; import request from 'supertest';
import { beforeAll, describe, expect, it } from 'vitest'; import { beforeAll, describe, expect, it } from 'vitest';
@@ -16,6 +17,15 @@ describe('/download', () => {
}); });
describe('POST /download/info', () => { describe('POST /download/info', () => {
it('should require authentication', async () => {
const { status, body } = await request(app)
.post(`/download/info`)
.send({ assetIds: [asset1.id] });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should download info', async () => { it('should download info', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.post('/download/info') .post('/download/info')
@@ -32,6 +42,15 @@ describe('/download', () => {
}); });
describe('POST /download/archive', () => { describe('POST /download/archive', () => {
it('should require authentication', async () => {
const { status, body } = await request(app)
.post(`/download/archive`)
.send({ assetIds: [asset1.id, asset2.id] });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should download an archive', async () => { it('should download an archive', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.post('/download/archive') .post('/download/archive')

View File

@@ -78,7 +78,7 @@ describe('/jobs', () => {
} }
await utils.jobCommand(admin.accessToken, JobName.MetadataExtraction, { await utils.jobCommand(admin.accessToken, JobName.MetadataExtraction, {
command: JobCommand.Empty, command: JobCommand.Clear,
force: false, force: false,
}); });
@@ -160,7 +160,7 @@ describe('/jobs', () => {
expect(assetBefore.thumbhash).toBeNull(); expect(assetBefore.thumbhash).toBeNull();
await utils.jobCommand(admin.accessToken, JobName.ThumbnailGeneration, { await utils.jobCommand(admin.accessToken, JobName.ThumbnailGeneration, {
command: JobCommand.Empty, command: JobCommand.Clear,
force: false, force: false,
}); });

View File

@@ -1,4 +1,4 @@
import { AssetVisibility, LoginResponseDto } from '@immich/sdk'; import { LoginResponseDto } from '@immich/sdk';
import { readFile } from 'node:fs/promises'; import { readFile } from 'node:fs/promises';
import { basename, join } from 'node:path'; import { basename, join } from 'node:path';
import { Socket } from 'socket.io-client'; import { Socket } from 'socket.io-client';
@@ -44,7 +44,7 @@ describe('/map', () => {
it('should get map markers for all non-archived assets', async () => { it('should get map markers for all non-archived assets', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/map/markers') .get('/map/markers')
.query({ visibility: AssetVisibility.Timeline }) .query({ isArchived: false })
.set('Authorization', `Bearer ${admin.accessToken}`); .set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(200); expect(status).toBe(200);

View File

@@ -5,6 +5,22 @@ import { app, asBearerAuth, utils } from 'src/utils';
import request from 'supertest'; import request from 'supertest';
import { beforeAll, beforeEach, describe, expect, it } from 'vitest'; import { beforeAll, beforeEach, describe, expect, it } from 'vitest';
const invalidBirthday = [
{
birthDate: 'false',
response: ['birthDate must be a string in the format yyyy-MM-dd', 'Birth date cannot be in the future'],
},
{
birthDate: '123567',
response: ['birthDate must be a string in the format yyyy-MM-dd', 'Birth date cannot be in the future'],
},
{
birthDate: 123_567,
response: ['birthDate must be a string in the format yyyy-MM-dd', 'Birth date cannot be in the future'],
},
{ birthDate: '9999-01-01', response: ['Birth date cannot be in the future'] },
];
describe('/people', () => { describe('/people', () => {
let admin: LoginResponseDto; let admin: LoginResponseDto;
let visiblePerson: PersonResponseDto; let visiblePerson: PersonResponseDto;
@@ -42,6 +58,14 @@ describe('/people', () => {
describe('GET /people', () => { describe('GET /people', () => {
beforeEach(async () => {}); beforeEach(async () => {});
it('should require authentication', async () => {
const { status, body } = await request(app).get('/people');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should return all people (including hidden)', async () => { it('should return all people (including hidden)', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/people') .get('/people')
@@ -93,6 +117,13 @@ describe('/people', () => {
}); });
describe('GET /people/:id', () => { describe('GET /people/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get(`/people/${uuidDto.notFound}`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should throw error if person with id does not exist', async () => { it('should throw error if person with id does not exist', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get(`/people/${uuidDto.notFound}`) .get(`/people/${uuidDto.notFound}`)
@@ -113,6 +144,13 @@ describe('/people', () => {
}); });
describe('GET /people/:id/statistics', () => { describe('GET /people/:id/statistics', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get(`/people/${multipleAssetsPerson.id}/statistics`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should throw error if person with id does not exist', async () => { it('should throw error if person with id does not exist', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get(`/people/${uuidDto.notFound}/statistics`) .get(`/people/${uuidDto.notFound}/statistics`)
@@ -133,6 +171,23 @@ describe('/people', () => {
}); });
describe('POST /people', () => { describe('POST /people', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).post(`/people`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
for (const { birthDate, response } of invalidBirthday) {
it(`should not accept an invalid birth date [${birthDate}]`, async () => {
const { status, body } = await request(app)
.post(`/people`)
.set('Authorization', `Bearer ${admin.accessToken}`)
.send({ birthDate });
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(response));
});
}
it('should create a person', async () => { it('should create a person', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.post(`/people`) .post(`/people`)
@@ -168,6 +223,39 @@ describe('/people', () => {
}); });
describe('PUT /people/:id', () => { describe('PUT /people/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).put(`/people/${uuidDto.notFound}`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
for (const { key, type } of [
{ key: 'name', type: 'string' },
{ key: 'featureFaceAssetId', type: 'string' },
{ key: 'isHidden', type: 'boolean value' },
{ key: 'isFavorite', type: 'boolean value' },
]) {
it(`should not allow null ${key}`, async () => {
const { status, body } = await request(app)
.put(`/people/${visiblePerson.id}`)
.set('Authorization', `Bearer ${admin.accessToken}`)
.send({ [key]: null });
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest([`${key} must be a ${type}`]));
});
}
for (const { birthDate, response } of invalidBirthday) {
it(`should not accept an invalid birth date [${birthDate}]`, async () => {
const { status, body } = await request(app)
.put(`/people/${visiblePerson.id}`)
.set('Authorization', `Bearer ${admin.accessToken}`)
.send({ birthDate });
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(response));
});
}
it('should update a date of birth', async () => { it('should update a date of birth', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.put(`/people/${visiblePerson.id}`) .put(`/people/${visiblePerson.id}`)
@@ -224,6 +312,12 @@ describe('/people', () => {
}); });
describe('POST /people/:id/merge', () => { describe('POST /people/:id/merge', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).post(`/people/${uuidDto.notFound}/merge`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should not supporting merging a person into themselves', async () => { it('should not supporting merging a person into themselves', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.post(`/people/${visiblePerson.id}/merge`) .post(`/people/${visiblePerson.id}/merge`)

View File

@@ -1,15 +1,9 @@
import { import { AssetMediaResponseDto, AssetResponseDto, deleteAssets, LoginResponseDto, updateAsset } from '@immich/sdk';
AssetMediaResponseDto,
AssetResponseDto,
AssetVisibility,
deleteAssets,
LoginResponseDto,
updateAsset,
} from '@immich/sdk';
import { DateTime } from 'luxon'; import { DateTime } from 'luxon';
import { readFile } from 'node:fs/promises'; import { readFile } from 'node:fs/promises';
import { join } from 'node:path'; import { join } from 'node:path';
import { Socket } from 'socket.io-client'; import { Socket } from 'socket.io-client';
import { errorDto } from 'src/responses';
import { app, asBearerAuth, TEN_TIMES, testAssetDir, utils } from 'src/utils'; import { app, asBearerAuth, TEN_TIMES, testAssetDir, utils } from 'src/utils';
import request from 'supertest'; import request from 'supertest';
import { afterAll, beforeAll, describe, expect, it } from 'vitest'; import { afterAll, beforeAll, describe, expect, it } from 'vitest';
@@ -56,7 +50,7 @@ describe('/search', () => {
{ filename: '/formats/motionphoto/samsung-one-ui-6.heic' }, { filename: '/formats/motionphoto/samsung-one-ui-6.heic' },
{ filename: '/formats/motionphoto/samsung-one-ui-5.jpg' }, { filename: '/formats/motionphoto/samsung-one-ui-5.jpg' },
{ filename: '/metadata/gps-position/thompson-springs.jpg', dto: { visibility: AssetVisibility.Archive } }, { filename: '/metadata/gps-position/thompson-springs.jpg', dto: { isArchived: true } },
// used for search suggestions // used for search suggestions
{ filename: '/formats/png/density_plot.png' }, { filename: '/formats/png/density_plot.png' },
@@ -147,6 +141,65 @@ describe('/search', () => {
}); });
describe('POST /search/metadata', () => { describe('POST /search/metadata', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).post('/search/metadata');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
const badTests = [
{
should: 'should reject page as a string',
dto: { page: 'abc' },
expected: ['page must not be less than 1', 'page must be an integer number'],
},
{
should: 'should reject page as a decimal',
dto: { page: 1.5 },
expected: ['page must be an integer number'],
},
{
should: 'should reject page as a negative number',
dto: { page: -10 },
expected: ['page must not be less than 1'],
},
{
should: 'should reject page as 0',
dto: { page: 0 },
expected: ['page must not be less than 1'],
},
{
should: 'should reject size as a string',
dto: { size: 'abc' },
expected: [
'size must not be greater than 1000',
'size must not be less than 1',
'size must be an integer number',
],
},
{
should: 'should reject an invalid size',
dto: { size: -1.5 },
expected: ['size must not be less than 1', 'size must be an integer number'],
},
...['isArchived', 'isFavorite', 'isEncoded', 'isOffline', 'isMotion', 'isVisible'].map((value) => ({
should: `should reject ${value} not a boolean`,
dto: { [value]: 'immich' },
expected: [`${value} must be a boolean value`],
})),
];
for (const { should, dto, expected } of badTests) {
it(should, async () => {
const { status, body } = await request(app)
.post('/search/metadata')
.set('Authorization', `Bearer ${admin.accessToken}`)
.send(dto);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(expected));
});
}
const searchTests = [ const searchTests = [
{ {
should: 'should get my assets', should: 'should get my assets',
@@ -178,12 +231,12 @@ describe('/search', () => {
deferred: () => ({ dto: { size: 1, isFavorite: false }, assets: [assetLast] }), deferred: () => ({ dto: { size: 1, isFavorite: false }, assets: [assetLast] }),
}, },
{ {
should: 'should search by visibility (AssetVisibility.Archive)', should: 'should search by isArchived (true)',
deferred: () => ({ dto: { visibility: AssetVisibility.Archive }, assets: [assetSprings] }), deferred: () => ({ dto: { isArchived: true }, assets: [assetSprings] }),
}, },
{ {
should: 'should search by visibility (AssetVisibility.Timeline)', should: 'should search by isArchived (false)',
deferred: () => ({ dto: { size: 1, visibility: AssetVisibility.Timeline }, assets: [assetLast] }), deferred: () => ({ dto: { size: 1, isArchived: false }, assets: [assetLast] }),
}, },
{ {
should: 'should search by type (image)', should: 'should search by type (image)',
@@ -192,7 +245,7 @@ describe('/search', () => {
{ {
should: 'should search by type (video)', should: 'should search by type (video)',
deferred: () => ({ deferred: () => ({
dto: { type: 'VIDEO', visibility: AssetVisibility.Hidden }, dto: { type: 'VIDEO' },
assets: [ assets: [
// the three live motion photos // the three live motion photos
{ id: expect.any(String) }, { id: expect.any(String) },
@@ -236,6 +289,13 @@ describe('/search', () => {
should: 'should search by takenAfter (no results)', should: 'should search by takenAfter (no results)',
deferred: () => ({ dto: { takenAfter: today.plus({ hour: 1 }).toJSDate() }, assets: [] }), deferred: () => ({ dto: { takenAfter: today.plus({ hour: 1 }).toJSDate() }, assets: [] }),
}, },
// {
// should: 'should search by originalPath',
// deferred: () => ({
// dto: { originalPath: asset1.originalPath },
// assets: [asset1],
// }),
// },
{ {
should: 'should search by originalFilename', should: 'should search by originalFilename',
deferred: () => ({ deferred: () => ({
@@ -265,7 +325,7 @@ describe('/search', () => {
deferred: () => ({ deferred: () => ({
dto: { dto: {
city: '', city: '',
visibility: AssetVisibility.Timeline, isVisible: true,
includeNull: true, includeNull: true,
}, },
assets: [assetLast], assets: [assetLast],
@@ -276,7 +336,7 @@ describe('/search', () => {
deferred: () => ({ deferred: () => ({
dto: { dto: {
city: null, city: null,
visibility: AssetVisibility.Timeline, isVisible: true,
includeNull: true, includeNull: true,
}, },
assets: [assetLast], assets: [assetLast],
@@ -297,7 +357,7 @@ describe('/search', () => {
deferred: () => ({ deferred: () => ({
dto: { dto: {
state: '', state: '',
visibility: AssetVisibility.Timeline, isVisible: true,
withExif: true, withExif: true,
includeNull: true, includeNull: true,
}, },
@@ -309,7 +369,7 @@ describe('/search', () => {
deferred: () => ({ deferred: () => ({
dto: { dto: {
state: null, state: null,
visibility: AssetVisibility.Timeline, isVisible: true,
includeNull: true, includeNull: true,
}, },
assets: [assetLast, assetNotocactus], assets: [assetLast, assetNotocactus],
@@ -330,7 +390,7 @@ describe('/search', () => {
deferred: () => ({ deferred: () => ({
dto: { dto: {
country: '', country: '',
visibility: AssetVisibility.Timeline, isVisible: true,
includeNull: true, includeNull: true,
}, },
assets: [assetLast], assets: [assetLast],
@@ -341,7 +401,7 @@ describe('/search', () => {
deferred: () => ({ deferred: () => ({
dto: { dto: {
country: null, country: null,
visibility: AssetVisibility.Timeline, isVisible: true,
includeNull: true, includeNull: true,
}, },
assets: [assetLast], assets: [assetLast],
@@ -394,6 +454,14 @@ describe('/search', () => {
} }
}); });
describe('POST /search/smart', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).post('/search/smart');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
});
describe('POST /search/random', () => { describe('POST /search/random', () => {
beforeAll(async () => { beforeAll(async () => {
await Promise.all([ await Promise.all([
@@ -408,6 +476,13 @@ describe('/search', () => {
await utils.waitForQueueFinish(admin.accessToken, 'thumbnailGeneration'); await utils.waitForQueueFinish(admin.accessToken, 'thumbnailGeneration');
}); });
it('should require authentication', async () => {
const { status, body } = await request(app).post('/search/random').send({ size: 1 });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it.each(TEN_TIMES)('should return 1 random assets', async () => { it.each(TEN_TIMES)('should return 1 random assets', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.post('/search/random') .post('/search/random')
@@ -437,6 +512,12 @@ describe('/search', () => {
}); });
describe('GET /search/explore', () => { describe('GET /search/explore', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/search/explore');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should get explore data', async () => { it('should get explore data', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/search/explore') .get('/search/explore')
@@ -447,6 +528,12 @@ describe('/search', () => {
}); });
describe('GET /search/places', () => { describe('GET /search/places', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/search/places');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should get relevant places', async () => { it('should get relevant places', async () => {
const name = 'Paris'; const name = 'Paris';
@@ -465,6 +552,12 @@ describe('/search', () => {
}); });
describe('GET /search/cities', () => { describe('GET /search/cities', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/search/cities');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should get all cities', async () => { it('should get all cities', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/search/cities') .get('/search/cities')
@@ -483,6 +576,12 @@ describe('/search', () => {
}); });
describe('GET /search/suggestions', () => { describe('GET /search/suggestions', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/search/suggestions');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should get suggestions for country (including null)', async () => { it('should get suggestions for country (including null)', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.get('/search/suggestions?type=country&includeNull=true') .get('/search/suggestions?type=country&includeNull=true')

View File

@@ -1,4 +1,4 @@
import { AssetMediaResponseDto, AssetVisibility, LoginResponseDto, SharedLinkType, TimeBucketSize } from '@immich/sdk'; import { AssetMediaResponseDto, LoginResponseDto, SharedLinkType, TimeBucketSize } from '@immich/sdk';
import { DateTime } from 'luxon'; import { DateTime } from 'luxon';
import { createUserDto } from 'src/fixtures'; import { createUserDto } from 'src/fixtures';
import { errorDto } from 'src/responses'; import { errorDto } from 'src/responses';
@@ -104,7 +104,7 @@ describe('/timeline', () => {
const req1 = await request(app) const req1 = await request(app)
.get('/timeline/buckets') .get('/timeline/buckets')
.set('Authorization', `Bearer ${timeBucketUser.accessToken}`) .set('Authorization', `Bearer ${timeBucketUser.accessToken}`)
.query({ size: TimeBucketSize.Month, withPartners: true, visibility: AssetVisibility.Archive }); .query({ size: TimeBucketSize.Month, withPartners: true, isArchived: true });
expect(req1.status).toBe(400); expect(req1.status).toBe(400);
expect(req1.body).toEqual(errorDto.badRequest()); expect(req1.body).toEqual(errorDto.badRequest());
@@ -112,7 +112,7 @@ describe('/timeline', () => {
const req2 = await request(app) const req2 = await request(app)
.get('/timeline/buckets') .get('/timeline/buckets')
.set('Authorization', `Bearer ${user.accessToken}`) .set('Authorization', `Bearer ${user.accessToken}`)
.query({ size: TimeBucketSize.Month, withPartners: true, visibility: undefined }); .query({ size: TimeBucketSize.Month, withPartners: true, isArchived: undefined });
expect(req2.status).toBe(400); expect(req2.status).toBe(400);
expect(req2.body).toEqual(errorDto.badRequest()); expect(req2.body).toEqual(errorDto.badRequest());

View File

@@ -3,7 +3,6 @@ import {
AssetMediaCreateDto, AssetMediaCreateDto,
AssetMediaResponseDto, AssetMediaResponseDto,
AssetResponseDto, AssetResponseDto,
AssetVisibility,
CheckExistingAssetsDto, CheckExistingAssetsDto,
CreateAlbumDto, CreateAlbumDto,
CreateLibraryDto, CreateLibraryDto,
@@ -430,10 +429,7 @@ export const utils = {
}, },
archiveAssets: (accessToken: string, ids: string[]) => archiveAssets: (accessToken: string, ids: string[]) =>
updateAssets( updateAssets({ assetBulkUpdateDto: { ids, isArchived: true } }, { headers: asBearerAuth(accessToken) }),
{ assetBulkUpdateDto: { ids, visibility: AssetVisibility.Archive } },
{ headers: asBearerAuth(accessToken) },
),
deleteAssets: (accessToken: string, ids: string[]) => deleteAssets: (accessToken: string, ids: string[]) =>
deleteAssets({ assetBulkDeleteDto: { ids } }, { headers: asBearerAuth(accessToken) }), deleteAssets({ assetBulkDeleteDto: { ids } }, { headers: asBearerAuth(accessToken) }),

View File

@@ -47,13 +47,15 @@ test.describe('Shared Links', () => {
await page.locator(`[data-asset-id="${asset.id}"]`).hover(); await page.locator(`[data-asset-id="${asset.id}"]`).hover();
await page.waitForSelector('[data-group] svg'); await page.waitForSelector('[data-group] svg');
await page.getByRole('checkbox').click(); await page.getByRole('checkbox').click();
await Promise.all([page.waitForEvent('download'), page.getByRole('button', { name: 'Download' }).click()]); await page.getByRole('button', { name: 'Download' }).click();
await page.waitForEvent('download');
}); });
test('download all from shared link', async ({ page }) => { test('download all from shared link', async ({ page }) => {
await page.goto(`/share/${sharedLink.key}`); await page.goto(`/share/${sharedLink.key}`);
await page.getByRole('heading', { name: 'Test Album' }).waitFor(); await page.getByRole('heading', { name: 'Test Album' }).waitFor();
await Promise.all([page.waitForEvent('download'), page.getByRole('button', { name: 'Download' }).click()]); await page.getByRole('button', { name: 'Download' }).click();
await page.waitForEvent('download');
}); });
test('enter password for a shared link', async ({ page }) => { test('enter password for a shared link', async ({ page }) => {

View File

@@ -187,13 +187,20 @@
"oauth_auto_register": "التسجيل التلقائي", "oauth_auto_register": "التسجيل التلقائي",
"oauth_auto_register_description": "التسجيل التلقائي للمستخدمين الجدد بعد تسجيل الدخول باستخدام OAuth", "oauth_auto_register_description": "التسجيل التلقائي للمستخدمين الجدد بعد تسجيل الدخول باستخدام OAuth",
"oauth_button_text": "نص الزر", "oauth_button_text": "نص الزر",
"oauth_client_id": "معرف العميل",
"oauth_client_secret": "الرمز السري للعميل",
"oauth_enable_description": "تسجيل الدخول باستخدام OAuth", "oauth_enable_description": "تسجيل الدخول باستخدام OAuth",
"oauth_issuer_url": "عنوان URL الخاص بجهة الإصدار",
"oauth_mobile_redirect_uri": "عنوان URI لإعادة التوجيه على الهاتف", "oauth_mobile_redirect_uri": "عنوان URI لإعادة التوجيه على الهاتف",
"oauth_mobile_redirect_uri_override": "تجاوز عنوان URI لإعادة التوجيه على الهاتف", "oauth_mobile_redirect_uri_override": "تجاوز عنوان URI لإعادة التوجيه على الهاتف",
"oauth_mobile_redirect_uri_override_description": "قم بتفعيله عندما لا يسمح موفر OAuth بمعرف URI للجوال، مثل '{callback}'", "oauth_mobile_redirect_uri_override_description": "قم بتفعيله عندما لا يسمح موفر OAuth بمعرف URI للجوال، مثل '{callback}'",
"oauth_profile_signing_algorithm": "خوارزمية توقيع الملف الشخصي",
"oauth_profile_signing_algorithm_description": "الخوارزمية المستخدمة للتوقيع على ملف تعريف المستخدم.",
"oauth_scope": "النطاق",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "إدارة إعدادات تسجيل الدخول OAuth", "oauth_settings_description": "إدارة إعدادات تسجيل الدخول OAuth",
"oauth_settings_more_details": "لمزيد من التفاصيل حول هذه الميزة، يرجى الرجوع إلى <link>الوثائق</link>.", "oauth_settings_more_details": "لمزيد من التفاصيل حول هذه الميزة، يرجى الرجوع إلى <link>الوثائق</link>.",
"oauth_signing_algorithm": "خوارزمية التوقيع",
"oauth_storage_label_claim": "المطالبة بتصنيف التخزين", "oauth_storage_label_claim": "المطالبة بتصنيف التخزين",
"oauth_storage_label_claim_description": "قم تلقائيًا بتعيين تصنيف التخزين الخاص بالمستخدم على قيمة هذه المطالبة.", "oauth_storage_label_claim_description": "قم تلقائيًا بتعيين تصنيف التخزين الخاص بالمستخدم على قيمة هذه المطالبة.",
"oauth_storage_quota_claim": "المطالبة بحصة التخزين", "oauth_storage_quota_claim": "المطالبة بحصة التخزين",
@@ -598,7 +605,6 @@
"change_password_form_new_password": "كلمة المرور الجديدة", "change_password_form_new_password": "كلمة المرور الجديدة",
"change_password_form_password_mismatch": "كلمة المرور غير مطابقة", "change_password_form_password_mismatch": "كلمة المرور غير مطابقة",
"change_password_form_reenter_new_password": "أعد إدخال كلمة مرور جديدة", "change_password_form_reenter_new_password": "أعد إدخال كلمة مرور جديدة",
"change_pin_code": "تغيير الرقم السري",
"change_your_password": "غير كلمة المرور الخاصة بك", "change_your_password": "غير كلمة المرور الخاصة بك",
"changed_visibility_successfully": "تم تغيير الرؤية بنجاح", "changed_visibility_successfully": "تم تغيير الرؤية بنجاح",
"check_all": "تحقق من الكل", "check_all": "تحقق من الكل",
@@ -639,7 +645,6 @@
"confirm_delete_face": "هل أنت متأكد من حذف وجه {name} من الأصول؟", "confirm_delete_face": "هل أنت متأكد من حذف وجه {name} من الأصول؟",
"confirm_delete_shared_link": "هل أنت متأكد أنك تريد حذف هذا الرابط المشترك؟", "confirm_delete_shared_link": "هل أنت متأكد أنك تريد حذف هذا الرابط المشترك؟",
"confirm_keep_this_delete_others": "سيتم حذف جميع الأصول الأخرى في المجموعة باستثناء هذا الأصل. هل أنت متأكد من أنك تريد المتابعة؟", "confirm_keep_this_delete_others": "سيتم حذف جميع الأصول الأخرى في المجموعة باستثناء هذا الأصل. هل أنت متأكد من أنك تريد المتابعة؟",
"confirm_new_pin_code": "ثبت الرقم السري الجديد",
"confirm_password": "تأكيد كلمة المرور", "confirm_password": "تأكيد كلمة المرور",
"contain": "محتواة", "contain": "محتواة",
"context": "السياق", "context": "السياق",
@@ -685,7 +690,6 @@
"crop": "Crop", "crop": "Crop",
"curated_object_page_title": "أشياء", "curated_object_page_title": "أشياء",
"current_device": "الجهاز الحالي", "current_device": "الجهاز الحالي",
"current_pin_code": "الرقم السري الحالي",
"current_server_address": "Current server address", "current_server_address": "Current server address",
"custom_locale": "لغة مخصصة", "custom_locale": "لغة مخصصة",
"custom_locale_description": "تنسيق التواريخ والأرقام بناءً على اللغة والمنطقة", "custom_locale_description": "تنسيق التواريخ والأرقام بناءً على اللغة والمنطقة",
@@ -1224,7 +1228,6 @@
"new_api_key": "مفتاح API جديد", "new_api_key": "مفتاح API جديد",
"new_password": "كلمة المرور الجديدة", "new_password": "كلمة المرور الجديدة",
"new_person": "شخص جديد", "new_person": "شخص جديد",
"new_pin_code": "الرقم السري الجديد",
"new_user_created": "تم إنشاء مستخدم جديد", "new_user_created": "تم إنشاء مستخدم جديد",
"new_version_available": "إصدار جديد متاح", "new_version_available": "إصدار جديد متاح",
"newest_first": "الأحدث أولاً", "newest_first": "الأحدث أولاً",
@@ -1342,9 +1345,6 @@
"photos_count": "{count, plural, one {{count, number} صورة} other {{count, number} صور}}", "photos_count": "{count, plural, one {{count, number} صورة} other {{count, number} صور}}",
"photos_from_previous_years": "صور من السنوات السابقة", "photos_from_previous_years": "صور من السنوات السابقة",
"pick_a_location": "اختر موقعًا", "pick_a_location": "اختر موقعًا",
"pin_code_changed_successfully": "تم تغير الرقم السري",
"pin_code_reset_successfully": "تم اعادة تعيين الرقم السري",
"pin_code_setup_successfully": "تم انشاء رقم سري",
"place": "مكان", "place": "مكان",
"places": "الأماكن", "places": "الأماكن",
"places_count": "{count, plural, one {{count, number} مكان} other {{count, number} أماكن}}", "places_count": "{count, plural, one {{count, number} مكان} other {{count, number} أماكن}}",
@@ -1375,7 +1375,7 @@
"public_share": "مشاركة عامة", "public_share": "مشاركة عامة",
"purchase_account_info": "داعم", "purchase_account_info": "داعم",
"purchase_activated_subtitle": "شكرًا لك على دعمك لـ Immich والبرمجيات مفتوحة المصدر", "purchase_activated_subtitle": "شكرًا لك على دعمك لـ Immich والبرمجيات مفتوحة المصدر",
"purchase_activated_time": "تم التفعيل في {date}", "purchase_activated_time": "تم التفعيل في {date, date}",
"purchase_activated_title": "لقد تم تفعيل مفتاحك بنجاح", "purchase_activated_title": "لقد تم تفعيل مفتاحك بنجاح",
"purchase_button_activate": "تنشيط", "purchase_button_activate": "تنشيط",
"purchase_button_buy": "شراء", "purchase_button_buy": "شراء",
@@ -1601,7 +1601,6 @@
"settings": "الإعدادات", "settings": "الإعدادات",
"settings_require_restart": "يرجى إعادة تشغيل لتطبيق هذا الإعداد", "settings_require_restart": "يرجى إعادة تشغيل لتطبيق هذا الإعداد",
"settings_saved": "تم حفظ الإعدادات", "settings_saved": "تم حفظ الإعدادات",
"setup_pin_code": "تحديد رقم سري",
"share": "مشاركة", "share": "مشاركة",
"share_add_photos": "إضافة الصور", "share_add_photos": "إضافة الصور",
"share_assets_selected": "{} selected", "share_assets_selected": "{} selected",
@@ -1786,8 +1785,6 @@
"trash_page_title": "Trash ({})", "trash_page_title": "Trash ({})",
"trashed_items_will_be_permanently_deleted_after": "سيتم حذفُ العناصر المحذوفة نِهائيًا بعد {days, plural, one {# يوم} other {# أيام }}.", "trashed_items_will_be_permanently_deleted_after": "سيتم حذفُ العناصر المحذوفة نِهائيًا بعد {days, plural, one {# يوم} other {# أيام }}.",
"type": "النوع", "type": "النوع",
"unable_to_change_pin_code": "تفيير الرقم السري غير ممكن",
"unable_to_setup_pin_code": "انشاء الرقم السري غير ممكن",
"unarchive": "أخرج من الأرشيف", "unarchive": "أخرج من الأرشيف",
"unarchived_count": "{count, plural, other {غير مؤرشفة #}}", "unarchived_count": "{count, plural, other {غير مؤرشفة #}}",
"unfavorite": "أزل التفضيل", "unfavorite": "أزل التفضيل",
@@ -1832,8 +1829,6 @@
"user": "مستخدم", "user": "مستخدم",
"user_id": "معرف المستخدم", "user_id": "معرف المستخدم",
"user_liked": "قام {user} بالإعجاب {type, select, photo {بهذه الصورة} video {بهذا الفيديو} asset {بهذا المحتوى} other {بها}}", "user_liked": "قام {user} بالإعجاب {type, select, photo {بهذه الصورة} video {بهذا الفيديو} asset {بهذا المحتوى} other {بها}}",
"user_pin_code_settings": "الرقم السري",
"user_pin_code_settings_description": "تغير الرقم السري",
"user_purchase_settings": "الشراء", "user_purchase_settings": "الشراء",
"user_purchase_settings_description": "إدارة عملية الشراء الخاصة بك", "user_purchase_settings_description": "إدارة عملية الشراء الخاصة بك",
"user_role_set": "قم بتعيين {user} كـ {role}", "user_role_set": "قم بتعيين {user} كـ {role}",

View File

@@ -14,7 +14,6 @@
"add_a_location": "Дадаць месца", "add_a_location": "Дадаць месца",
"add_a_name": "Дадаць імя", "add_a_name": "Дадаць імя",
"add_a_title": "Дадаць загаловак", "add_a_title": "Дадаць загаловак",
"add_endpoint": "Дадаць кропку доступу",
"add_exclusion_pattern": "Дадаць шаблон выключэння", "add_exclusion_pattern": "Дадаць шаблон выключэння",
"add_import_path": "Дадаць шлях імпарту", "add_import_path": "Дадаць шлях імпарту",
"add_location": "Дадайце месца", "add_location": "Дадайце месца",
@@ -43,7 +42,7 @@
"backup_database_enable_description": "Уключыць рэзерваванне базы даных", "backup_database_enable_description": "Уключыць рэзерваванне базы даных",
"backup_keep_last_amount": "Колькасць папярэдніх рэзервовых копій для захавання", "backup_keep_last_amount": "Колькасць папярэдніх рэзервовых копій для захавання",
"backup_settings": "Налады рэзервовага капіявання", "backup_settings": "Налады рэзервовага капіявання",
"backup_settings_description": "Кіраванне наладамі дампа базы дадзеных. Заўвага: гэтыя задачы не кантралююцца, і ў выпадку няўдачы паведамленне адпраўлена не будзе.", "backup_settings_description": "Кіраванне наладкамі рэзервовага капіявання базы даных",
"check_all": "Праверыць усе", "check_all": "Праверыць усе",
"cleanup": "Ачыстка", "cleanup": "Ачыстка",
"cleared_jobs": "Ачышчаны заданні для: {job}", "cleared_jobs": "Ачышчаны заданні для: {job}",
@@ -63,18 +62,8 @@
"external_library_created_at": "Знешняя бібліятэка (створана {date})", "external_library_created_at": "Знешняя бібліятэка (створана {date})",
"external_library_management": "Кіраванне знешняй бібліятэкай", "external_library_management": "Кіраванне знешняй бібліятэкай",
"face_detection": "Выяўленне твараў", "face_detection": "Выяўленне твараў",
"face_detection_description": "Выяўляць твары на фотаздымках і відэа з дапамогай машыннага навучання. Для відэа ўлічваецца толькі мініяцюра. \"Абнавіць\" (пера)апрацоўвае ўсе медыя. \"Скінуць\" дадаткова ачышчае ўсе бягучыя дадзеныя пра твары. \"Адсутнічае\" ставіць у чаргу медыя, якія яшчэ не былі апрацаваныя. Выяўленыя твары будуць пастаўлены ў чаргу для распазнавання асоб пасля завяршэння выяўлення твараў, з групаваннем іх па існуючых або новых людзях.",
"facial_recognition_job_description": "Групаваць выяўленыя твары па асобах. Гэты этап выконваецца пасля завяршэння выяўлення твараў. \"Скінуць\" (паўторна) перагрупоўвае ўсе твары. \"Адсутнічае\" ставіць у чаргу твары, якія яшчэ не прыпісаныя да якой-небудзь асобы.",
"failed_job_command": "Каманда {command} не выканалася для задання: {job}",
"force_delete_user_warning": "ПАПЯРЭДЖАННЕ: Гэта дзеянне неадкладна выдаліць карыстальніка і ўсе аб'екты. Гэта дзеянне не можа быць адроблена і файлы немагчыма будзе аднавіць.", "force_delete_user_warning": "ПАПЯРЭДЖАННЕ: Гэта дзеянне неадкладна выдаліць карыстальніка і ўсе аб'екты. Гэта дзеянне не можа быць адроблена і файлы немагчыма будзе аднавіць.",
"forcing_refresh_library_files": "Прымусовае абнаўленне ўсіх файлаў бібліятэкі",
"image_format": "Фармат", "image_format": "Фармат",
"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_preview_title": "Налады папярэдняга прагляду", "image_preview_title": "Налады папярэдняга прагляду",
"image_quality": "Якасць", "image_quality": "Якасць",
"image_resolution": "Раздзяляльнасць", "image_resolution": "Раздзяляльнасць",

View File

@@ -183,13 +183,20 @@
"oauth_auto_register": "Автоматична регистрация", "oauth_auto_register": "Автоматична регистрация",
"oauth_auto_register_description": "Автоматично регистриране на нови потребители след влизане с OAuth", "oauth_auto_register_description": "Автоматично регистриране на нови потребители след влизане с OAuth",
"oauth_button_text": "Текст на бутона", "oauth_button_text": "Текст на бутона",
"oauth_client_id": "Клиентски ID",
"oauth_client_secret": "Клиентска тайна",
"oauth_enable_description": "Влизане с OAuth", "oauth_enable_description": "Влизане с OAuth",
"oauth_issuer_url": "URL на издателя",
"oauth_mobile_redirect_uri": "URI за мобилно пренасочване", "oauth_mobile_redirect_uri": "URI за мобилно пренасочване",
"oauth_mobile_redirect_uri_override": "URI пренасочване за мобилни устройства", "oauth_mobile_redirect_uri_override": "URI пренасочване за мобилни устройства",
"oauth_mobile_redirect_uri_override_description": "Разреши когато доставчика за OAuth удостоверяване не позволява за мобилни URI идентификатори, като '{callback}'", "oauth_mobile_redirect_uri_override_description": "Разреши когато доставчика за OAuth удостоверяване не позволява за мобилни URI идентификатори, като '{callback}'",
"oauth_profile_signing_algorithm": "Алгоритъм за създаване на профили",
"oauth_profile_signing_algorithm_description": "Алгоритъм използван за вписване на потребителски профил.",
"oauth_scope": "Област/обхват на приложение",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "Управление на настройките за вход с OAuth", "oauth_settings_description": "Управление на настройките за вход с OAuth",
"oauth_settings_more_details": "За повече информация за функционалността, се потърсете в <link>docs</link>.", "oauth_settings_more_details": "За повече информация за функционалността, се потърсете в <link>docs</link>.",
"oauth_signing_algorithm": "Алгоритъм за вписване",
"oauth_storage_label_claim": "Заявка за етикет за съхранение", "oauth_storage_label_claim": "Заявка за етикет за съхранение",
"oauth_storage_label_claim_description": "Автоматично задайте етикета за съхранение на потребителя със стойността от тази заявка.", "oauth_storage_label_claim_description": "Автоматично задайте етикета за съхранение на потребителя със стойността от тази заявка.",
"oauth_storage_quota_claim": "Заявка за квота за съхранение", "oauth_storage_quota_claim": "Заявка за квота за съхранение",
@@ -1006,7 +1013,7 @@
"public_share": "Публично споделяне", "public_share": "Публично споделяне",
"purchase_account_info": "Поддръжник", "purchase_account_info": "Поддръжник",
"purchase_activated_subtitle": "Благодарим ви, че подкрепяте Immich и софтуера с отворен код", "purchase_activated_subtitle": "Благодарим ви, че подкрепяте Immich и софтуера с отворен код",
"purchase_activated_time": "Активиран на {date}", "purchase_activated_time": "Активиран на {date, date}",
"purchase_activated_title": "Вашият ключ беше успешно активиран", "purchase_activated_title": "Вашият ключ беше успешно активиран",
"purchase_button_activate": "Активирай", "purchase_button_activate": "Активирай",
"purchase_button_buy": "Купи", "purchase_button_buy": "Купи",

View File

@@ -138,12 +138,17 @@
"oauth_auto_register": "", "oauth_auto_register": "",
"oauth_auto_register_description": "", "oauth_auto_register_description": "",
"oauth_button_text": "", "oauth_button_text": "",
"oauth_client_id": "",
"oauth_client_secret": "",
"oauth_enable_description": "", "oauth_enable_description": "",
"oauth_issuer_url": "",
"oauth_mobile_redirect_uri": "", "oauth_mobile_redirect_uri": "",
"oauth_mobile_redirect_uri_override": "", "oauth_mobile_redirect_uri_override": "",
"oauth_mobile_redirect_uri_override_description": "", "oauth_mobile_redirect_uri_override_description": "",
"oauth_scope": "",
"oauth_settings": "", "oauth_settings": "",
"oauth_settings_description": "", "oauth_settings_description": "",
"oauth_signing_algorithm": "",
"oauth_storage_label_claim": "", "oauth_storage_label_claim": "",
"oauth_storage_label_claim_description": "", "oauth_storage_label_claim_description": "",
"oauth_storage_quota_claim": "", "oauth_storage_quota_claim": "",

View File

@@ -1,17 +1 @@
{ {}
"about": "সম্পর্কে",
"account": "অ্যাকাউন্ট",
"account_settings": "অ্যাকাউন্ট সেটিংস",
"acknowledge": "স্বীকৃতি",
"action": "কার্য",
"action_common_update": "আপডেট",
"actions": "কর্ম",
"active": "সচল",
"activity": "কার্যকলাপ",
"add": "যোগ করুন",
"add_a_description": "একটি বিবরণ যোগ করুন",
"add_a_location": "একটি অবস্থান যোগ করুন",
"add_a_name": "একটি নাম যোগ করুন",
"add_a_title": "একটি শিরোনাম যোগ করুন",
"add_endpoint": "এন্ডপয়েন্ট যোগ করুন"
}

View File

@@ -39,11 +39,11 @@
"authentication_settings_disable_all": "Estàs segur que vols desactivar tots els mètodes d'inici de sessió? L'inici de sessió quedarà completament desactivat.", "authentication_settings_disable_all": "Estàs segur que vols desactivar tots els mètodes d'inici de sessió? L'inici de sessió quedarà completament desactivat.",
"authentication_settings_reenable": "Per a tornar a habilitar, empra una <link>Comanda de Servidor</link>.", "authentication_settings_reenable": "Per a tornar a habilitar, empra una <link>Comanda de Servidor</link>.",
"background_task_job": "Tasques en segon pla", "background_task_job": "Tasques en segon pla",
"backup_database": "Fer un bolcat de la base de dades", "backup_database": "Còpia de la base de dades",
"backup_database_enable_description": "Habilitar bolcat de la base de dades", "backup_database_enable_description": "Habilitar còpies de la base de dades",
"backup_keep_last_amount": "Quantitat de bolcats anteriors per conservar", "backup_keep_last_amount": "Quantitat de còpies de seguretat anteriors per conservar",
"backup_settings": "Configuració dels bolcats", "backup_settings": "Ajustes de les còpies de seguretat",
"backup_settings_description": "Gestionar la configuració bolcats de la base de dades. Nota: els treballs no es monitoritzen ni es notifiquen les fallades.", "backup_settings_description": "Gestionar la configuració de la còpia de seguretat de la base de dades",
"check_all": "Marca-ho tot", "check_all": "Marca-ho tot",
"cleanup": "Neteja", "cleanup": "Neteja",
"cleared_jobs": "Tasques esborrades per a: {job}", "cleared_jobs": "Tasques esborrades per a: {job}",
@@ -53,7 +53,6 @@
"confirm_email_below": "Per a confirmar, escriviu \"{email}\" a sota", "confirm_email_below": "Per a confirmar, escriviu \"{email}\" a sota",
"confirm_reprocess_all_faces": "Esteu segur que voleu reprocessar totes les cares? Això també esborrarà la gent que heu anomenat.", "confirm_reprocess_all_faces": "Esteu segur que voleu reprocessar totes les cares? Això també esborrarà la gent que heu anomenat.",
"confirm_user_password_reset": "Esteu segur que voleu reinicialitzar la contrasenya de l'usuari {user}?", "confirm_user_password_reset": "Esteu segur que voleu reinicialitzar la contrasenya de l'usuari {user}?",
"confirm_user_pin_code_reset": "Esteu segur que voleu restablir el codi PIN de {user}?",
"create_job": "Crear tasca", "create_job": "Crear tasca",
"cron_expression": "Expressió Cron", "cron_expression": "Expressió Cron",
"cron_expression_description": "Estableix l'interval d'escaneig amb el format cron. Per obtenir més informació, consulteu, p.e <link>Crontab Guru</link>", "cron_expression_description": "Estableix l'interval d'escaneig amb el format cron. Per obtenir més informació, consulteu, p.e <link>Crontab Guru</link>",
@@ -193,22 +192,26 @@
"oauth_auto_register": "Registre automàtic", "oauth_auto_register": "Registre automàtic",
"oauth_auto_register_description": "Registra nous usuaris automàticament després d'iniciar sessió amb OAuth", "oauth_auto_register_description": "Registra nous usuaris automàticament després d'iniciar sessió amb OAuth",
"oauth_button_text": "Text del botó", "oauth_button_text": "Text del botó",
"oauth_client_secret_description": "Requerit si PKCE (Proof Key for Code Exchange) no està suportat pel proveïdor OAuth", "oauth_client_id": "ID Client",
"oauth_client_secret": "Secret de Client",
"oauth_enable_description": "Iniciar sessió amb OAuth", "oauth_enable_description": "Iniciar sessió amb OAuth",
"oauth_issuer_url": "URL de l'emissor",
"oauth_mobile_redirect_uri": "URI de redirecció mòbil", "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": "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_mobile_redirect_uri_override_description": "Habilita quan el proveïdor d'OAuth no permet una URI mòbil, com ara '{callback}'",
"oauth_profile_signing_algorithm": "Algoritme de signatura del perfil",
"oauth_profile_signing_algorithm_description": "Algoritme utilitzat per signar el perfil dusuari.",
"oauth_scope": "Abast",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "Gestiona la configuració de l'inici de sessió OAuth", "oauth_settings_description": "Gestiona la configuració de l'inici de sessió OAuth",
"oauth_settings_more_details": "Per a més detalls sobre aquesta funcionalitat, consulteu la <link>documentació</link>.", "oauth_settings_more_details": "Per a més detalls sobre aquesta funcionalitat, consulteu la <link>documentació</link>.",
"oauth_signing_algorithm": "Algorisme de signatura",
"oauth_storage_label_claim": "Petició d'etiquetatge d'emmagatzematge", "oauth_storage_label_claim": "Petició d'etiquetatge d'emmagatzematge",
"oauth_storage_label_claim_description": "Estableix automàticament l'etiquetatge d'emmagatzematge de l'usuari a aquest valor.", "oauth_storage_label_claim_description": "Estableix automàticament l'etiquetatge d'emmagatzematge de l'usuari a aquest valor.",
"oauth_storage_quota_claim": "Quota d'emmagatzematge reclamada", "oauth_storage_quota_claim": "Quota d'emmagatzematge reclamada",
"oauth_storage_quota_claim_description": "Estableix automàticament la quota d'emmagatzematge de l'usuari al valor d'aquest paràmetre.", "oauth_storage_quota_claim_description": "Estableix automàticament la quota d'emmagatzematge de l'usuari al valor d'aquest paràmetre.",
"oauth_storage_quota_default": "Quota d'emmagatzematge predeterminada (GiB)", "oauth_storage_quota_default": "Quota d'emmagatzematge predeterminada (GiB)",
"oauth_storage_quota_default_description": "Quota disponible en GB quan no s'estableixi cap valor (Entreu 0 per a quota il·limitada).", "oauth_storage_quota_default_description": "Quota disponible en GB quan no s'estableixi cap valor (Entreu 0 per a quota il·limitada).",
"oauth_timeout": "Solicitud caducada",
"oauth_timeout_description": "Timeout per a sol·licituds en mil·lisegons",
"offline_paths": "Rutes sense connexió", "offline_paths": "Rutes sense connexió",
"offline_paths_description": "Aquests resultats poden ser deguts a l'eliminació manual de fitxers que no formen part d'una llibreria externa.", "offline_paths_description": "Aquests resultats poden ser deguts a l'eliminació manual de fitxers que no formen part d'una llibreria externa.",
"password_enable_description": "Inicia sessió amb correu electrònic i contrasenya", "password_enable_description": "Inicia sessió amb correu electrònic i contrasenya",
@@ -349,7 +352,6 @@
"user_delete_delay_settings_description": "Nombre de dies després de la supressió per eliminar permanentment el compte i els elements d'un usuari. El treball de supressió d'usuaris s'executa a mitjanit per comprovar si hi ha usuaris preparats per eliminar. Els canvis en aquesta configuració s'avaluaran en la propera execució.", "user_delete_delay_settings_description": "Nombre de dies després de la supressió per eliminar permanentment el compte i els elements d'un usuari. El treball de supressió d'usuaris s'executa a mitjanit per comprovar si hi ha usuaris preparats per eliminar. Els canvis en aquesta configuració s'avaluaran en la propera execució.",
"user_delete_immediately": "El compte i els recursos de <b>{user}</b> es posaran a la cua per suprimir-los permanentment <b>immediatament</b>.", "user_delete_immediately": "El compte i els recursos de <b>{user}</b> es posaran a la cua per suprimir-los permanentment <b>immediatament</b>.",
"user_delete_immediately_checkbox": "Posa en cua l'usuari i els recursos per suprimir-los immediatament", "user_delete_immediately_checkbox": "Posa en cua l'usuari i els recursos per suprimir-los immediatament",
"user_details": "Detalls d'usuari",
"user_management": "Gestió d'usuaris", "user_management": "Gestió d'usuaris",
"user_password_has_been_reset": "La contrasenya de l'usuari ha estat restablida:", "user_password_has_been_reset": "La contrasenya de l'usuari ha estat restablida:",
"user_password_reset_description": "Si us plau, proporcioneu la contrasenya temporal a l'usuari i informeu-los que haurà de canviar la contrasenya en el proper inici de sessió.", "user_password_reset_description": "Si us plau, proporcioneu la contrasenya temporal a l'usuari i informeu-los que haurà de canviar la contrasenya en el proper inici de sessió.",
@@ -369,17 +371,13 @@
"admin_password": "Contrasenya de l'administrador", "admin_password": "Contrasenya de l'administrador",
"administration": "Administrador", "administration": "Administrador",
"advanced": "Avançat", "advanced": "Avançat",
"advanced_settings_enable_alternate_media_filter_subtitle": "Feu servir aquesta opció per filtrar els continguts multimèdia durant la sincronització segons criteris alternatius. Només proveu-ho si teniu problemes amb l'aplicació per detectar tots els àlbums.", "advanced_settings_log_level_title": "Nivell de registre: {}",
"advanced_settings_enable_alternate_media_filter_title": "Utilitza el filtre de sincronització d'àlbums de dispositius alternatius",
"advanced_settings_log_level_title": "Nivell de registre: {level}",
"advanced_settings_prefer_remote_subtitle": "Alguns dispositius són molt lents en carregar miniatures dels elements del dispositiu. Activeu aquest paràmetre per carregar imatges remotes en el seu lloc.", "advanced_settings_prefer_remote_subtitle": "Alguns dispositius són molt lents en carregar miniatures dels elements del dispositiu. Activeu aquest paràmetre per carregar imatges remotes en el seu lloc.",
"advanced_settings_prefer_remote_title": "Prefereix imatges remotes", "advanced_settings_prefer_remote_title": "Prefereix imatges remotes",
"advanced_settings_proxy_headers_subtitle": "Definiu les capçaleres de proxy que Immich per enviar amb cada sol·licitud de xarxa", "advanced_settings_proxy_headers_subtitle": "Definiu les capçaleres de proxy que Immich per enviar amb cada sol·licitud de xarxa",
"advanced_settings_proxy_headers_title": "Capçaleres de proxy", "advanced_settings_proxy_headers_title": "Capçaleres de proxy",
"advanced_settings_self_signed_ssl_subtitle": "Omet la verificació del certificat SSL del servidor. Requerit per a certificats autosignats.", "advanced_settings_self_signed_ssl_subtitle": "Omet la verificació del certificat SSL del servidor. Requerit per a certificats autosignats.",
"advanced_settings_self_signed_ssl_title": "Permet certificats SSL autosignats", "advanced_settings_self_signed_ssl_title": "Permet certificats SSL autosignats",
"advanced_settings_sync_remote_deletions_subtitle": "Suprimeix o restaura automàticament un actiu en aquest dispositiu quan es realitzi aquesta acció al web",
"advanced_settings_sync_remote_deletions_title": "Sincronitza les eliminacions remotes",
"advanced_settings_tile_subtitle": "Configuració avançada de l'usuari", "advanced_settings_tile_subtitle": "Configuració avançada de l'usuari",
"advanced_settings_troubleshooting_subtitle": "Habilita funcions addicionals per a la resolució de problemes", "advanced_settings_troubleshooting_subtitle": "Habilita funcions addicionals per a la resolució de problemes",
"advanced_settings_troubleshooting_title": "Resolució de problemes", "advanced_settings_troubleshooting_title": "Resolució de problemes",
@@ -402,9 +400,9 @@
"album_remove_user_confirmation": "Esteu segurs que voleu eliminar {user}?", "album_remove_user_confirmation": "Esteu segurs que voleu eliminar {user}?",
"album_share_no_users": "Sembla que has compartit aquest àlbum amb tots els usuaris o no tens cap usuari amb qui compartir-ho.", "album_share_no_users": "Sembla que has compartit aquest àlbum amb tots els usuaris o no tens cap usuari amb qui compartir-ho.",
"album_thumbnail_card_item": "1 element", "album_thumbnail_card_item": "1 element",
"album_thumbnail_card_items": "{count} elements", "album_thumbnail_card_items": "{} elements",
"album_thumbnail_card_shared": " · Compartit", "album_thumbnail_card_shared": " · Compartit",
"album_thumbnail_shared_by": "Compartit per {user}", "album_thumbnail_shared_by": "Compartit per {}",
"album_updated": "Àlbum actualitzat", "album_updated": "Àlbum actualitzat",
"album_updated_setting_description": "Rep una notificació per correu electrònic quan un àlbum compartit tingui recursos nous", "album_updated_setting_description": "Rep una notificació per correu electrònic quan un àlbum compartit tingui recursos nous",
"album_user_left": "Surt de {album}", "album_user_left": "Surt de {album}",
@@ -442,7 +440,7 @@
"archive": "Arxiu", "archive": "Arxiu",
"archive_or_unarchive_photo": "Arxivar o desarxivar fotografia", "archive_or_unarchive_photo": "Arxivar o desarxivar fotografia",
"archive_page_no_archived_assets": "No s'ha trobat res arxivat", "archive_page_no_archived_assets": "No s'ha trobat res arxivat",
"archive_page_title": "Arxiu({count})", "archive_page_title": "Arxiu({})",
"archive_size": "Mida de l'arxiu", "archive_size": "Mida de l'arxiu",
"archive_size_description": "Configureu la mida de l'arxiu de les descàrregues (en GiB)", "archive_size_description": "Configureu la mida de l'arxiu de les descàrregues (en GiB)",
"archived": "Arxivat", "archived": "Arxivat",
@@ -479,18 +477,18 @@
"assets_added_to_album_count": "{count, plural, one {Afegit un element} other {Afegits # elements}} a l'àlbum", "assets_added_to_album_count": "{count, plural, one {Afegit un element} other {Afegits # elements}} a l'àlbum",
"assets_added_to_name_count": "{count, plural, one {S'ha afegit # recurs} other {S'han afegit # recursos}} a {hasName, select, true {<b>{name}</b>} other {new album}}", "assets_added_to_name_count": "{count, plural, one {S'ha afegit # recurs} other {S'han afegit # recursos}} a {hasName, select, true {<b>{name}</b>} other {new album}}",
"assets_count": "{count, plural, one {# recurs} other {# recursos}}", "assets_count": "{count, plural, one {# recurs} other {# recursos}}",
"assets_deleted_permanently": "{count} element(s) esborrats permanentment", "assets_deleted_permanently": "{} element(s) esborrats permanentment",
"assets_deleted_permanently_from_server": "{count} element(s) esborrats permanentment del servidor d'Immich", "assets_deleted_permanently_from_server": "{} element(s) esborrats permanentment del servidor d'Immich",
"assets_moved_to_trash_count": "{count, plural, one {# recurs mogut} other {# recursos moguts}} a la paperera", "assets_moved_to_trash_count": "{count, plural, one {# recurs mogut} other {# recursos moguts}} a la paperera",
"assets_permanently_deleted_count": "{count, plural, one {# recurs esborrat} other {# recursos esborrats}} permanentment", "assets_permanently_deleted_count": "{count, plural, one {# recurs esborrat} other {# recursos esborrats}} permanentment",
"assets_removed_count": "{count, plural, one {# element eliminat} other {# elements eliminats}}", "assets_removed_count": "{count, plural, one {# element eliminat} other {# elements eliminats}}",
"assets_removed_permanently_from_device": "{count} element(s) esborrat permanentment del dispositiu", "assets_removed_permanently_from_device": "{} element(s) esborrat permanentment del dispositiu",
"assets_restore_confirmation": "Esteu segurs que voleu restaurar tots els teus actius? Aquesta acció no es pot desfer! Tingueu en compte que els recursos fora de línia no es poden restaurar d'aquesta manera.", "assets_restore_confirmation": "Esteu segurs que voleu restaurar tots els teus actius? Aquesta acció no es pot desfer! Tingueu en compte que els recursos fora de línia no es poden restaurar d'aquesta manera.",
"assets_restored_count": "{count, plural, one {# element restaurat} other {# elements restaurats}}", "assets_restored_count": "{count, plural, one {# element restaurat} other {# elements restaurats}}",
"assets_restored_successfully": "{count} element(s) recuperats correctament", "assets_restored_successfully": "{} element(s) recuperats correctament",
"assets_trashed": "{count} element(s) enviat a la paperera", "assets_trashed": "{} element(s) enviat a la paperera",
"assets_trashed_count": "{count, plural, one {# element enviat} other {# elements enviats}} a la paperera", "assets_trashed_count": "{count, plural, one {# element enviat} other {# elements enviats}} a la paperera",
"assets_trashed_from_server": "{count} element(s) enviat a la paperera del servidor d'Immich", "assets_trashed_from_server": "{} element(s) enviat a la paperera del servidor d'Immich",
"assets_were_part_of_album_count": "{count, plural, one {L'element ja és} other {Els elements ja són}} part de l'àlbum", "assets_were_part_of_album_count": "{count, plural, one {L'element ja és} other {Els elements ja són}} part de l'àlbum",
"authorized_devices": "Dispositius autoritzats", "authorized_devices": "Dispositius autoritzats",
"automatic_endpoint_switching_subtitle": "Connecteu-vos localment a través de la Wi-Fi designada quan estigui disponible i utilitzeu connexions alternatives en altres llocs", "automatic_endpoint_switching_subtitle": "Connecteu-vos localment a través de la Wi-Fi designada quan estigui disponible i utilitzeu connexions alternatives en altres llocs",
@@ -499,7 +497,7 @@
"back_close_deselect": "Tornar, tancar o anul·lar la selecció", "back_close_deselect": "Tornar, tancar o anul·lar la selecció",
"background_location_permission": "Permís d'ubicació en segon pla", "background_location_permission": "Permís d'ubicació en segon pla",
"background_location_permission_content": "Per canviar de xarxa quan s'executa en segon pla, Immich ha de *sempre* tenir accés a la ubicació precisa perquè l'aplicació pugui llegir el nom de la xarxa Wi-Fi", "background_location_permission_content": "Per canviar de xarxa quan s'executa en segon pla, Immich ha de *sempre* tenir accés a la ubicació precisa perquè l'aplicació pugui llegir el nom de la xarxa Wi-Fi",
"backup_album_selection_page_albums_device": "Àlbums al dispositiu ({count})", "backup_album_selection_page_albums_device": "Àlbums al dispositiu ({})",
"backup_album_selection_page_albums_tap": "Un toc per incloure, doble toc per excloure", "backup_album_selection_page_albums_tap": "Un toc per incloure, doble toc per excloure",
"backup_album_selection_page_assets_scatter": "Els elements poden dispersar-se en diversos àlbums. Per tant, els àlbums es poden incloure o excloure durant el procés de còpia de seguretat.", "backup_album_selection_page_assets_scatter": "Els elements poden dispersar-se en diversos àlbums. Per tant, els àlbums es poden incloure o excloure durant el procés de còpia de seguretat.",
"backup_album_selection_page_select_albums": "Selecciona àlbums", "backup_album_selection_page_select_albums": "Selecciona àlbums",
@@ -508,37 +506,37 @@
"backup_all": "Tots", "backup_all": "Tots",
"backup_background_service_backup_failed_message": "No s'ha pogut copiar els elements. Tornant a intentar…", "backup_background_service_backup_failed_message": "No s'ha pogut copiar els elements. Tornant a intentar…",
"backup_background_service_connection_failed_message": "No s'ha pogut connectar al servidor. Tornant a intentar…", "backup_background_service_connection_failed_message": "No s'ha pogut connectar al servidor. Tornant a intentar…",
"backup_background_service_current_upload_notification": "Pujant {filename}", "backup_background_service_current_upload_notification": "Pujant {}",
"backup_background_service_default_notification": "Cercant nous elements", "backup_background_service_default_notification": "Cercant nous elements...",
"backup_background_service_error_title": "Error copiant", "backup_background_service_error_title": "Error copiant",
"backup_background_service_in_progress_notification": "Copiant els teus elements", "backup_background_service_in_progress_notification": "Copiant els teus elements",
"backup_background_service_upload_failure_notification": "Error en pujar {filename}", "backup_background_service_upload_failure_notification": "Error al pujar {}",
"backup_controller_page_albums": "Copia els àlbums", "backup_controller_page_albums": "Copia els àlbums",
"backup_controller_page_background_app_refresh_disabled_content": "Activa l'actualització en segon pla de l'aplicació a Configuració > General > Actualització en segon pla per utilitzar la copia de seguretat en segon pla.", "backup_controller_page_background_app_refresh_disabled_content": "Activa l'actualització en segon pla de l'aplicació a Configuració > General > Actualització en segon pla per utilitzar la copia de seguretat en segon pla.",
"backup_controller_page_background_app_refresh_disabled_title": "Actualització en segon pla desactivada", "backup_controller_page_background_app_refresh_disabled_title": "Actualització en segon pla desactivada",
"backup_controller_page_background_app_refresh_enable_button_text": "Vés a configuració", "backup_controller_page_background_app_refresh_enable_button_text": "Vés a configuració",
"backup_controller_page_background_battery_info_link": "Mostra'm com", "backup_controller_page_background_battery_info_link": "Mostra'm com",
"backup_controller_page_background_battery_info_message": "Per obtenir la millor experiència de còpia de seguretat en segon pla, desactiveu qualsevol optimització de bateria que restringeixi l'activitat en segon pla per a Immich.\n\nAtès que això és específic del dispositiu, busqueu la informació necessària per al fabricant del vostre dispositiu.", "backup_controller_page_background_battery_info_message": "Per obtenir la millor experiència de copia de seguretat en segon pla, desactiveu qualsevol optimització de bateria que restringeixi l'activitat en segon pla per a Immich.\n\nAtès que això és específic del dispositiu, busqueu la informació necessària per al fabricant del vostre dispositiu",
"backup_controller_page_background_battery_info_ok": "D'acord", "backup_controller_page_background_battery_info_ok": "D'acord",
"backup_controller_page_background_battery_info_title": "Optimitzacions de bateria", "backup_controller_page_background_battery_info_title": "Optimitzacions de bateria",
"backup_controller_page_background_charging": "Només mentre es carrega", "backup_controller_page_background_charging": "Només mentre es carrega",
"backup_controller_page_background_configure_error": "No s'ha pogut configurar el servei en segon pla", "backup_controller_page_background_configure_error": "No s'ha pogut configurar el servei en segon pla",
"backup_controller_page_background_delay": "Retard en la còpia de seguretat de nous elements: {duration}", "backup_controller_page_background_delay": "Retard en la copia de seguretat de nous elements: {}",
"backup_controller_page_background_description": "Activeu el servei en segon pla per copiar automàticament tots els nous elements sense haver d'obrir l'aplicació", "backup_controller_page_background_description": "Activeu el servei en segon pla per copiar automàticament tots els nous elements sense haver d'obrir l'aplicació.",
"backup_controller_page_background_is_off": "La còpia automàtica en segon pla està desactivada", "backup_controller_page_background_is_off": "La còpia automàtica en segon pla està desactivada",
"backup_controller_page_background_is_on": "La còpia automàtica en segon pla està activada", "backup_controller_page_background_is_on": "La còpia automàtica en segon pla està activada",
"backup_controller_page_background_turn_off": "Desactiva el servei en segon pla", "backup_controller_page_background_turn_off": "Desactiva el servei en segon pla",
"backup_controller_page_background_turn_on": "Activa el servei en segon pla", "backup_controller_page_background_turn_on": "Activa el servei en segon pla",
"backup_controller_page_background_wifi": "Només amb Wi-Fi", "backup_controller_page_background_wifi": "Només amb WiFi",
"backup_controller_page_backup": "Còpia", "backup_controller_page_backup": "Còpia",
"backup_controller_page_backup_selected": "Seleccionat: ", "backup_controller_page_backup_selected": "Seleccionat: ",
"backup_controller_page_backup_sub": "Fotografies i vídeos copiats", "backup_controller_page_backup_sub": "Fotografies i vídeos copiats",
"backup_controller_page_created": "Creat el: {date}", "backup_controller_page_created": "Creat el: {}",
"backup_controller_page_desc_backup": "Activeu la còpia de seguretat per pujar automàticament els nous elements al servidor en obrir l'aplicació.", "backup_controller_page_desc_backup": "Activeu la còpia de seguretat per pujar automàticament els nous elements al servidor en obrir l'aplicació.",
"backup_controller_page_excluded": "Exclosos: ", "backup_controller_page_excluded": "Exclosos: ",
"backup_controller_page_failed": "Fallats ({count})", "backup_controller_page_failed": "Fallats ({})",
"backup_controller_page_filename": "Nom de l'arxiu: {filename} [{size}]", "backup_controller_page_filename": "Nom de l'arxiu: {} [{}]",
"backup_controller_page_id": "ID: {id}", "backup_controller_page_id": "ID: {}",
"backup_controller_page_info": "Informació de la còpia", "backup_controller_page_info": "Informació de la còpia",
"backup_controller_page_none_selected": "Cap seleccionat", "backup_controller_page_none_selected": "Cap seleccionat",
"backup_controller_page_remainder": "Restant", "backup_controller_page_remainder": "Restant",
@@ -547,7 +545,7 @@
"backup_controller_page_start_backup": "Inicia la còpia", "backup_controller_page_start_backup": "Inicia la còpia",
"backup_controller_page_status_off": "La copia de seguretat està desactivada", "backup_controller_page_status_off": "La copia de seguretat està desactivada",
"backup_controller_page_status_on": "La copia de seguretat està activada", "backup_controller_page_status_on": "La copia de seguretat està activada",
"backup_controller_page_storage_format": "{used} de {total} utilitzats", "backup_controller_page_storage_format": "{} de {} utilitzats",
"backup_controller_page_to_backup": "Àlbums a copiar", "backup_controller_page_to_backup": "Àlbums a copiar",
"backup_controller_page_total_sub": "Totes les fotografies i vídeos dels àlbums seleccionats", "backup_controller_page_total_sub": "Totes les fotografies i vídeos dels àlbums seleccionats",
"backup_controller_page_turn_off": "Desactiva la còpia de seguretat", "backup_controller_page_turn_off": "Desactiva la còpia de seguretat",
@@ -572,21 +570,21 @@
"bulk_keep_duplicates_confirmation": "Esteu segur que voleu mantenir {count, plural, one {# recurs duplicat} other {# recursos duplicats}}? Això resoldrà tots els grups duplicats sense eliminar res.", "bulk_keep_duplicates_confirmation": "Esteu segur que voleu mantenir {count, plural, one {# recurs duplicat} other {# recursos duplicats}}? Això resoldrà tots els grups duplicats sense eliminar res.",
"bulk_trash_duplicates_confirmation": "Esteu segur que voleu enviar a les escombraries {count, plural, one {# recurs duplicat} other {# recursos duplicats}}? Això mantindrà el recurs més gran de cada grup i eliminarà la resta de duplicats.", "bulk_trash_duplicates_confirmation": "Esteu segur que voleu enviar a les escombraries {count, plural, one {# recurs duplicat} other {# recursos duplicats}}? Això mantindrà el recurs més gran de cada grup i eliminarà la resta de duplicats.",
"buy": "Comprar Immich", "buy": "Comprar Immich",
"cache_settings_album_thumbnails": "Miniatures de la pàgina de la biblioteca ({count} elements)", "cache_settings_album_thumbnails": "Miniatures de la pàgina de la biblioteca ({} elements)",
"cache_settings_clear_cache_button": "Neteja la memòria cau", "cache_settings_clear_cache_button": "Neteja la memòria cau",
"cache_settings_clear_cache_button_title": "Neteja la memòria cau de l'aplicació. Això impactarà significativament el rendiment fins que la memòria cau es torni a reconstruir.", "cache_settings_clear_cache_button_title": "Neteja la memòria cau de l'aplicació. Això impactarà significativament el rendiment fins que la memòria cau es torni a reconstruir.",
"cache_settings_duplicated_assets_clear_button": "NETEJA", "cache_settings_duplicated_assets_clear_button": "NETEJA",
"cache_settings_duplicated_assets_subtitle": "Fotos i vídeos que estan a la llista negra de l'aplicació", "cache_settings_duplicated_assets_subtitle": "Fotos i vídeos que estan a la llista negra de l'aplicació.",
"cache_settings_duplicated_assets_title": "Elements duplicats ({count})", "cache_settings_duplicated_assets_title": "Elements duplicats ({})",
"cache_settings_image_cache_size": "Mida de la memòria cau d'imatges ({count} elements)", "cache_settings_image_cache_size": "Mida de la memòria cau de imatges ({} elements)",
"cache_settings_statistics_album": "Miniatures de la biblioteca", "cache_settings_statistics_album": "Miniatures de la biblioteca",
"cache_settings_statistics_assets": "{count} elements ({size})", "cache_settings_statistics_assets": "{} elements ({})",
"cache_settings_statistics_full": "Imatges completes", "cache_settings_statistics_full": "Imatges completes",
"cache_settings_statistics_shared": "Miniatures d'àlbums compartits", "cache_settings_statistics_shared": "Miniatures d'àlbums compartits",
"cache_settings_statistics_thumbnail": "Miniatures", "cache_settings_statistics_thumbnail": "Miniatures",
"cache_settings_statistics_title": "Ús de memòria cau", "cache_settings_statistics_title": "Ús de memòria cau",
"cache_settings_subtitle": "Controla el comportament de la memòria cau de l'aplicació mòbil Immich", "cache_settings_subtitle": "Controla el comportament de la memòria cau de l'aplicació mòbil Immich",
"cache_settings_thumbnail_size": "Mida de la memòria cau de les miniatures ({count} elements)", "cache_settings_thumbnail_size": "Mida de la memòria cau de les miniatures ({} elements)",
"cache_settings_tile_subtitle": "Controla el comportament de l'emmagatzematge local", "cache_settings_tile_subtitle": "Controla el comportament de l'emmagatzematge local",
"cache_settings_tile_title": "Emmagatzematge local", "cache_settings_tile_title": "Emmagatzematge local",
"cache_settings_title": "Configuració de la memòria cau", "cache_settings_title": "Configuració de la memòria cau",
@@ -612,7 +610,6 @@
"change_password_form_new_password": "Nova contrasenya", "change_password_form_new_password": "Nova contrasenya",
"change_password_form_password_mismatch": "Les contrasenyes no coincideixen", "change_password_form_password_mismatch": "Les contrasenyes no coincideixen",
"change_password_form_reenter_new_password": "Torna a introduir la nova contrasenya", "change_password_form_reenter_new_password": "Torna a introduir la nova contrasenya",
"change_pin_code": "Canviar el codi PIN",
"change_your_password": "Canvia la teva contrasenya", "change_your_password": "Canvia la teva contrasenya",
"changed_visibility_successfully": "Visibilitat canviada amb èxit", "changed_visibility_successfully": "Visibilitat canviada amb èxit",
"check_all": "Marqueu-ho tot", "check_all": "Marqueu-ho tot",
@@ -653,12 +650,11 @@
"confirm_delete_face": "Estàs segur que vols eliminar la cara de {name} de les cares reconegudes?", "confirm_delete_face": "Estàs segur que vols eliminar la cara de {name} de les cares reconegudes?",
"confirm_delete_shared_link": "Esteu segurs que voleu eliminar aquest enllaç compartit?", "confirm_delete_shared_link": "Esteu segurs que voleu eliminar aquest enllaç compartit?",
"confirm_keep_this_delete_others": "Excepte aquest element, tots els altres de la pila se suprimiran. Esteu segur que voleu continuar?", "confirm_keep_this_delete_others": "Excepte aquest element, tots els altres de la pila se suprimiran. Esteu segur que voleu continuar?",
"confirm_new_pin_code": "Confirma el nou codi PIN",
"confirm_password": "Confirmació de contrasenya", "confirm_password": "Confirmació de contrasenya",
"contain": "Contingut", "contain": "Contingut",
"context": "Context", "context": "Context",
"continue": "Continuar", "continue": "Continuar",
"control_bottom_app_bar_album_info_shared": "{count} elements - Compartits", "control_bottom_app_bar_album_info_shared": "{} elements - Compartits",
"control_bottom_app_bar_create_new_album": "Crea un àlbum nou", "control_bottom_app_bar_create_new_album": "Crea un àlbum nou",
"control_bottom_app_bar_delete_from_immich": "Suprimeix del Immich", "control_bottom_app_bar_delete_from_immich": "Suprimeix del Immich",
"control_bottom_app_bar_delete_from_local": "Suprimeix del dispositiu", "control_bottom_app_bar_delete_from_local": "Suprimeix del dispositiu",
@@ -696,11 +692,9 @@
"create_tag_description": "Crear una nova etiqueta. Per les etiquetes aniuades, escriu la ruta comperta de l'etiqueta, incloses les barres diagonals.", "create_tag_description": "Crear una nova etiqueta. Per les etiquetes aniuades, escriu la ruta comperta de l'etiqueta, incloses les barres diagonals.",
"create_user": "Crea un usuari", "create_user": "Crea un usuari",
"created": "Creat", "created": "Creat",
"created_at": "Creat",
"crop": "Retalla", "crop": "Retalla",
"curated_object_page_title": "Coses", "curated_object_page_title": "Coses",
"current_device": "Dispositiu actual", "current_device": "Dispositiu actual",
"current_pin_code": "Codi PIN actual",
"current_server_address": "Adreça actual del servidor", "current_server_address": "Adreça actual del servidor",
"custom_locale": "Localització personalitzada", "custom_locale": "Localització personalitzada",
"custom_locale_description": "Format de dates i números segons la llengua i regió", "custom_locale_description": "Format de dates i números segons la llengua i regió",
@@ -724,7 +718,7 @@
"delete": "Esborra", "delete": "Esborra",
"delete_album": "Esborra l'àlbum", "delete_album": "Esborra l'àlbum",
"delete_api_key_prompt": "Esteu segurs que voleu eliminar aquesta clau API?", "delete_api_key_prompt": "Esteu segurs que voleu eliminar aquesta clau API?",
"delete_dialog_alert": "Aquests elements seran eliminats de manera permanent d'Immich i del vostre dispositiu", "delete_dialog_alert": "Aquests elements seran eliminats de manera permanent d'Immich i del vostre dispositiu.",
"delete_dialog_alert_local": "Aquests elements s'eliminaran permanentment del vostre dispositiu, però encara estaran disponibles al servidor Immich", "delete_dialog_alert_local": "Aquests elements s'eliminaran permanentment del vostre dispositiu, però encara estaran disponibles al servidor Immich",
"delete_dialog_alert_local_non_backed_up": "Alguns dels elements no tenen còpia de seguretat a Immich i s'eliminaran permanentment del dispositiu", "delete_dialog_alert_local_non_backed_up": "Alguns dels elements no tenen còpia de seguretat a Immich i s'eliminaran permanentment del dispositiu",
"delete_dialog_alert_remote": "Aquests elements s'eliminaran permanentment del servidor Immich", "delete_dialog_alert_remote": "Aquests elements s'eliminaran permanentment del servidor Immich",
@@ -769,7 +763,7 @@
"download_enqueue": "Descàrrega en cua", "download_enqueue": "Descàrrega en cua",
"download_error": "Error de descàrrega", "download_error": "Error de descàrrega",
"download_failed": "Descàrrega ha fallat", "download_failed": "Descàrrega ha fallat",
"download_filename": "arxiu: {filename}", "download_filename": "arxiu: {}",
"download_finished": "Descàrrega acabada", "download_finished": "Descàrrega acabada",
"download_include_embedded_motion_videos": "Vídeos incrustats", "download_include_embedded_motion_videos": "Vídeos incrustats",
"download_include_embedded_motion_videos_description": "Incloure vídeos incrustats en fotografies en moviment com un arxiu separat", "download_include_embedded_motion_videos_description": "Incloure vídeos incrustats en fotografies en moviment com un arxiu separat",
@@ -813,7 +807,6 @@
"editor_crop_tool_h2_aspect_ratios": "Relació d'aspecte", "editor_crop_tool_h2_aspect_ratios": "Relació d'aspecte",
"editor_crop_tool_h2_rotation": "Rotació", "editor_crop_tool_h2_rotation": "Rotació",
"email": "Correu electrònic", "email": "Correu electrònic",
"email_notifications": "Correu electrònic de notificacions",
"empty_folder": "Aquesta carpeta és buida", "empty_folder": "Aquesta carpeta és buida",
"empty_trash": "Buidar la paperera", "empty_trash": "Buidar la paperera",
"empty_trash_confirmation": "Esteu segur que voleu buidar la paperera? Això eliminarà tots els recursos a la paperera permanentment d'Immich.\nNo podeu desfer aquesta acció!", "empty_trash_confirmation": "Esteu segur que voleu buidar la paperera? Això eliminarà tots els recursos a la paperera permanentment d'Immich.\nNo podeu desfer aquesta acció!",
@@ -821,12 +814,12 @@
"enabled": "Activat", "enabled": "Activat",
"end_date": "Data final", "end_date": "Data final",
"enqueued": "En cua", "enqueued": "En cua",
"enter_wifi_name": "Introdueix el nom de Wi-Fi", "enter_wifi_name": "Introdueix el nom de WiFi",
"error": "Error", "error": "Error",
"error_change_sort_album": "No s'ha pogut canviar l'ordre d'ordenació dels àlbums", "error_change_sort_album": "No s'ha pogut canviar l'ordre d'ordenació dels àlbums",
"error_delete_face": "Error esborrant cara de les cares reconegudes", "error_delete_face": "Error esborrant cara de les cares reconegudes",
"error_loading_image": "Error carregant la imatge", "error_loading_image": "Error carregant la imatge",
"error_saving_image": "Error: {error}", "error_saving_image": "Error: {}",
"error_title": "Error - Quelcom ha anat malament", "error_title": "Error - Quelcom ha anat malament",
"errors": { "errors": {
"cannot_navigate_next_asset": "No es pot navegar a l'element següent", "cannot_navigate_next_asset": "No es pot navegar a l'element següent",
@@ -856,12 +849,10 @@
"failed_to_keep_this_delete_others": "No s'ha pogut conservar aquest element i suprimir els altres", "failed_to_keep_this_delete_others": "No s'ha pogut conservar aquest element i suprimir els altres",
"failed_to_load_asset": "No s'ha pogut carregar l'element", "failed_to_load_asset": "No s'ha pogut carregar l'element",
"failed_to_load_assets": "No s'han pogut carregar els elements", "failed_to_load_assets": "No s'han pogut carregar els elements",
"failed_to_load_notifications": "Error en carregar les notificacions",
"failed_to_load_people": "No s'han pogut carregar les persones", "failed_to_load_people": "No s'han pogut carregar les persones",
"failed_to_remove_product_key": "No s'ha pogut eliminar la clau del producte", "failed_to_remove_product_key": "No s'ha pogut eliminar la clau del producte",
"failed_to_stack_assets": "No s'han pogut apilar els elements", "failed_to_stack_assets": "No s'han pogut apilar els elements",
"failed_to_unstack_assets": "No s'han pogut desapilar els elements", "failed_to_unstack_assets": "No s'han pogut desapilar els elements",
"failed_to_update_notification_status": "Error en actualitzar l'estat de les notificacions",
"import_path_already_exists": "Aquesta ruta d'importació ja existeix.", "import_path_already_exists": "Aquesta ruta d'importació ja existeix.",
"incorrect_email_or_password": "Correu electrònic o contrasenya incorrectes", "incorrect_email_or_password": "Correu electrònic o contrasenya incorrectes",
"paths_validation_failed": "{paths, plural, one {# ruta} other {# rutes}} no ha pogut validar", "paths_validation_failed": "{paths, plural, one {# ruta} other {# rutes}} no ha pogut validar",
@@ -929,7 +920,6 @@
"unable_to_remove_reaction": "No es pot eliminar la reacció", "unable_to_remove_reaction": "No es pot eliminar la reacció",
"unable_to_repair_items": "No es poden reparar els elements", "unable_to_repair_items": "No es poden reparar els elements",
"unable_to_reset_password": "No es pot restablir la contrasenya", "unable_to_reset_password": "No es pot restablir la contrasenya",
"unable_to_reset_pin_code": "No es pot restablir el codi PIN",
"unable_to_resolve_duplicate": "No es pot resoldre el duplicat", "unable_to_resolve_duplicate": "No es pot resoldre el duplicat",
"unable_to_restore_assets": "No es poden restaurar els recursos", "unable_to_restore_assets": "No es poden restaurar els recursos",
"unable_to_restore_trash": "No es pot restaurar la paperera", "unable_to_restore_trash": "No es pot restaurar la paperera",
@@ -958,15 +948,15 @@
"unable_to_upload_file": "No es pot carregar el fitxer" "unable_to_upload_file": "No es pot carregar el fitxer"
}, },
"exif": "Exif", "exif": "Exif",
"exif_bottom_sheet_description": "Afegeix descripció...", "exif_bottom_sheet_description": "Afegeix descripció",
"exif_bottom_sheet_details": "DETALLS", "exif_bottom_sheet_details": "DETALLS",
"exif_bottom_sheet_location": "UBICACIÓ", "exif_bottom_sheet_location": "UBICACIÓ",
"exif_bottom_sheet_people": "PERSONES", "exif_bottom_sheet_people": "PERSONES",
"exif_bottom_sheet_person_add_person": "Afegir nom", "exif_bottom_sheet_person_add_person": "Afegir nom",
"exif_bottom_sheet_person_age": "Edat {age}", "exif_bottom_sheet_person_age": "Edat {}",
"exif_bottom_sheet_person_age_months": "Edat {months} mesos", "exif_bottom_sheet_person_age_months": "Edat {} mesos",
"exif_bottom_sheet_person_age_year_months": "Edat 1 any, {months} mesos", "exif_bottom_sheet_person_age_year_months": "Edat 1 any, {} mesos",
"exif_bottom_sheet_person_age_years": "Edat {years}", "exif_bottom_sheet_person_age_years": "Edat {}",
"exit_slideshow": "Surt de la presentació de diapositives", "exit_slideshow": "Surt de la presentació de diapositives",
"expand_all": "Ampliar-ho tot", "expand_all": "Ampliar-ho tot",
"experimental_settings_new_asset_list_subtitle": "Treball en curs", "experimental_settings_new_asset_list_subtitle": "Treball en curs",
@@ -984,7 +974,7 @@
"external": "Extern", "external": "Extern",
"external_libraries": "Llibreries externes", "external_libraries": "Llibreries externes",
"external_network": "Xarxa externa", "external_network": "Xarxa externa",
"external_network_sheet_info": "Quan no estigui a la xarxa Wi-Fi preferida, l'aplicació es connectarà al servidor mitjançant el primer dels URL següents a què pot arribar, començant de dalt a baix", "external_network_sheet_info": "Quan no estigui a la xarxa WiFi preferida, l'aplicació es connectarà al servidor mitjançant el primer dels URL següents a què pot arribar, començant de dalt a baix.",
"face_unassigned": "Sense assignar", "face_unassigned": "Sense assignar",
"failed": "Fallat", "failed": "Fallat",
"failed_to_load_assets": "Error carregant recursos", "failed_to_load_assets": "Error carregant recursos",
@@ -1002,7 +992,6 @@
"filetype": "Tipus d'arxiu", "filetype": "Tipus d'arxiu",
"filter": "Filtrar", "filter": "Filtrar",
"filter_people": "Filtra persones", "filter_people": "Filtra persones",
"filter_places": "Filtrar per llocs",
"find_them_fast": "Trobeu-los ràpidament pel nom amb la cerca", "find_them_fast": "Trobeu-los ràpidament pel nom amb la cerca",
"fix_incorrect_match": "Corregiu la coincidència incorrecta", "fix_incorrect_match": "Corregiu la coincidència incorrecta",
"folder": "Carpeta", "folder": "Carpeta",
@@ -1051,12 +1040,11 @@
"home_page_delete_remote_err_local": "Elements locals a la selecció d'eliminació remota, ometent", "home_page_delete_remote_err_local": "Elements locals a la selecció d'eliminació remota, ometent",
"home_page_favorite_err_local": "Encara no es pot afegir a preferits elements locals, ometent", "home_page_favorite_err_local": "Encara no es pot afegir a preferits elements locals, ometent",
"home_page_favorite_err_partner": "Encara no es pot afegir a preferits elements de companys, ometent", "home_page_favorite_err_partner": "Encara no es pot afegir a preferits elements de companys, ometent",
"home_page_first_time_notice": "Si és la primera vegada que utilitzes l'app, si us plau, assegura't d'escollir un àlbum de còpia de seguretat perquè la línia de temps pugui carregar fotos i vídeos als àlbums", "home_page_first_time_notice": "Si és la primera vegada que utilitzes l'app, si us plau, assegura't d'escollir un àlbum de còpia de seguretat perquè la línia de temps pugui carregar fotos i vídeos als àlbums.",
"home_page_share_err_local": "No es poden compartir els elements locals a través d'un enllaç, ometent", "home_page_share_err_local": "No es poden compartir els elements locals a través d'un enllaç, ometent",
"home_page_upload_err_limit": "Només es poden pujar un màxim de 30 elements alhora, ometent", "home_page_upload_err_limit": "Només es poden pujar un màxim de 30 elements alhora, ometent",
"host": "Amfitrió", "host": "Amfitrió",
"hour": "Hora", "hour": "Hora",
"id": "ID",
"ignore_icloud_photos": "Ignora fotos d'iCloud", "ignore_icloud_photos": "Ignora fotos d'iCloud",
"ignore_icloud_photos_description": "Les fotos emmagatzemades a iCloud no es penjaran al servidor Immich", "ignore_icloud_photos_description": "Les fotos emmagatzemades a iCloud no es penjaran al servidor Immich",
"image": "Imatge", "image": "Imatge",
@@ -1132,7 +1120,7 @@
"local_network": "Xarxa local", "local_network": "Xarxa local",
"local_network_sheet_info": "L'aplicació es connectarà al servidor mitjançant aquest URL quan utilitzeu la xarxa Wi-Fi especificada", "local_network_sheet_info": "L'aplicació es connectarà al servidor mitjançant aquest URL quan utilitzeu la xarxa Wi-Fi especificada",
"location_permission": "Permís d'ubicació", "location_permission": "Permís d'ubicació",
"location_permission_content": "Per utilitzar la funció de canvi automàtic, Immich necessita un permís d'ubicació precisa perquè pugui llegir el nom de la xarxa Wi-Fi actual", "location_permission_content": "Per utilitzar la funció de canvi automàtic, Immich necessita un permís de ubicació precisa perquè pugui llegir el nom de la xarxa WiFi actual",
"location_picker_choose_on_map": "Escollir en el mapa", "location_picker_choose_on_map": "Escollir en el mapa",
"location_picker_latitude_error": "Introdueix una latitud vàlida", "location_picker_latitude_error": "Introdueix una latitud vàlida",
"location_picker_latitude_hint": "Introdueix aquí la latitud", "location_picker_latitude_hint": "Introdueix aquí la latitud",
@@ -1156,7 +1144,7 @@
"login_form_err_trailing_whitespace": "Espai en blanc al final", "login_form_err_trailing_whitespace": "Espai en blanc al final",
"login_form_failed_get_oauth_server_config": "Error en iniciar sessió amb OAuth, comprova l'URL del servidor", "login_form_failed_get_oauth_server_config": "Error en iniciar sessió amb OAuth, comprova l'URL del servidor",
"login_form_failed_get_oauth_server_disable": "La funcionalitat OAuth no està disponible en aquest servidor", "login_form_failed_get_oauth_server_disable": "La funcionalitat OAuth no està disponible en aquest servidor",
"login_form_failed_login": "Error en iniciar sessió, comprova l'URL del servidor, el correu electrònic i la contrasenya", "login_form_failed_login": "Error en iniciar sessió, comprova l'URL del servidor, el correu electrònic i la contrasenya.",
"login_form_handshake_exception": "S'ha produït una excepció de handshake amb el servidor. Activa el suport per certificats autofirmats a la configuració si estàs fent servir un certificat autofirmat.", "login_form_handshake_exception": "S'ha produït una excepció de handshake amb el servidor. Activa el suport per certificats autofirmats a la configuració si estàs fent servir un certificat autofirmat.",
"login_form_password_hint": "contrasenya", "login_form_password_hint": "contrasenya",
"login_form_save_login": "Mantingues identificat", "login_form_save_login": "Mantingues identificat",
@@ -1182,8 +1170,8 @@
"manage_your_devices": "Gestioneu els vostres dispositius connectats", "manage_your_devices": "Gestioneu els vostres dispositius connectats",
"manage_your_oauth_connection": "Gestioneu la vostra connexió OAuth", "manage_your_oauth_connection": "Gestioneu la vostra connexió OAuth",
"map": "Mapa", "map": "Mapa",
"map_assets_in_bound": "{count} foto", "map_assets_in_bound": "{} foto",
"map_assets_in_bounds": "{count} fotos", "map_assets_in_bounds": "{} fotos",
"map_cannot_get_user_location": "No es pot obtenir la ubicació de l'usuari", "map_cannot_get_user_location": "No es pot obtenir la ubicació de l'usuari",
"map_location_dialog_yes": "Sí", "map_location_dialog_yes": "Sí",
"map_location_picker_page_use_location": "Utilitzar aquesta ubicació", "map_location_picker_page_use_location": "Utilitzar aquesta ubicació",
@@ -1197,18 +1185,15 @@
"map_settings": "Paràmetres de mapa", "map_settings": "Paràmetres de mapa",
"map_settings_dark_mode": "Mode fosc", "map_settings_dark_mode": "Mode fosc",
"map_settings_date_range_option_day": "Últimes 24 hores", "map_settings_date_range_option_day": "Últimes 24 hores",
"map_settings_date_range_option_days": "Darrers {days} dies", "map_settings_date_range_option_days": "Darrers {} dies",
"map_settings_date_range_option_year": "Any passat", "map_settings_date_range_option_year": "Any passat",
"map_settings_date_range_option_years": "Darrers {years} anys", "map_settings_date_range_option_years": "Darrers {} anys",
"map_settings_dialog_title": "Configuració del mapa", "map_settings_dialog_title": "Configuració del mapa",
"map_settings_include_show_archived": "Incloure arxivats", "map_settings_include_show_archived": "Incloure arxivats",
"map_settings_include_show_partners": "Incloure companys", "map_settings_include_show_partners": "Incloure companys",
"map_settings_only_show_favorites": "Mostra només preferits", "map_settings_only_show_favorites": "Mostra només preferits",
"map_settings_theme_settings": "Tema del Mapa", "map_settings_theme_settings": "Tema del Mapa",
"map_zoom_to_see_photos": "Allunya per veure fotos", "map_zoom_to_see_photos": "Allunya per veure fotos",
"mark_all_as_read": "Marcar-ho tot com a llegit",
"mark_as_read": "Marcar com ha llegit",
"marked_all_as_read": "Marcat tot com a llegit",
"matches": "Coincidències", "matches": "Coincidències",
"media_type": "Tipus de mitjà", "media_type": "Tipus de mitjà",
"memories": "Records", "memories": "Records",
@@ -1218,7 +1203,7 @@
"memories_start_over": "Torna a començar", "memories_start_over": "Torna a començar",
"memories_swipe_to_close": "Llisca per tancar", "memories_swipe_to_close": "Llisca per tancar",
"memories_year_ago": "Fa un any", "memories_year_ago": "Fa un any",
"memories_years_ago": "Fa {years, plural, other {# years}} anys", "memories_years_ago": "Fa {} anys",
"memory": "Record", "memory": "Record",
"memory_lane_title": "Línia de records {title}", "memory_lane_title": "Línia de records {title}",
"menu": "Menú", "menu": "Menú",
@@ -1235,11 +1220,9 @@
"month": "Mes", "month": "Mes",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "MMMM y",
"more": "Més", "more": "Més",
"moved_to_archive": "S'han mogut {count, plural, one {# asset} other {# assets}} a l'arxiu",
"moved_to_library": "S'ha mogut {count, plural, one {# asset} other {# assets}} a la llibreria",
"moved_to_trash": "S'ha mogut a la paperera", "moved_to_trash": "S'ha mogut a la paperera",
"multiselect_grid_edit_date_time_err_read_only": "No es pot canviar la data del fitxer(s) de només lectura, ometent", "multiselect_grid_edit_date_time_err_read_only": "No es pot canviar la data del fitxer(s) de només lectura, ometent",
"multiselect_grid_edit_gps_err_read_only": "No es pot canviar la localització de fitxers de només lectura, saltant", "multiselect_grid_edit_gps_err_read_only": "No es pot canviar la localització de fitxers de només lectura. Saltant.",
"mute_memories": "Silenciar records", "mute_memories": "Silenciar records",
"my_albums": "Els meus àlbums", "my_albums": "Els meus àlbums",
"name": "Nom", "name": "Nom",
@@ -1251,7 +1234,6 @@
"new_api_key": "Nova clau de l'API", "new_api_key": "Nova clau de l'API",
"new_password": "Nova contrasenya", "new_password": "Nova contrasenya",
"new_person": "Persona nova", "new_person": "Persona nova",
"new_pin_code": "Nou codi PIN",
"new_user_created": "Nou usuari creat", "new_user_created": "Nou usuari creat",
"new_version_available": "NOVA VERSIÓ DISPONIBLE", "new_version_available": "NOVA VERSIÓ DISPONIBLE",
"newest_first": "El més nou primer", "newest_first": "El més nou primer",
@@ -1270,8 +1252,6 @@
"no_favorites_message": "Afegiu preferits per trobar les millors fotos i vídeos a l'instant", "no_favorites_message": "Afegiu preferits per trobar les millors fotos i vídeos a l'instant",
"no_libraries_message": "Creeu una llibreria externa per veure les vostres fotos i vídeos", "no_libraries_message": "Creeu una llibreria externa per veure les vostres fotos i vídeos",
"no_name": "Sense nom", "no_name": "Sense nom",
"no_notifications": "No hi ha notificacions",
"no_people_found": "No s'han trobat coincidències de persones",
"no_places": "No hi ha llocs", "no_places": "No hi ha llocs",
"no_results": "Sense resultats", "no_results": "Sense resultats",
"no_results_description": "Proveu un sinònim o una paraula clau més general", "no_results_description": "Proveu un sinònim o una paraula clau més general",
@@ -1302,7 +1282,6 @@
"onboarding_welcome_user": "Benvingut, {user}", "onboarding_welcome_user": "Benvingut, {user}",
"online": "En línia", "online": "En línia",
"only_favorites": "Només preferits", "only_favorites": "Només preferits",
"open": "Obrir",
"open_in_map_view": "Obrir a la vista del mapa", "open_in_map_view": "Obrir a la vista del mapa",
"open_in_openstreetmap": "Obre a OpenStreetMap", "open_in_openstreetmap": "Obre a OpenStreetMap",
"open_the_search_filters": "Obriu els filtres de cerca", "open_the_search_filters": "Obriu els filtres de cerca",
@@ -1326,7 +1305,7 @@
"partner_page_partner_add_failed": "No s'ha pogut afegir el company", "partner_page_partner_add_failed": "No s'ha pogut afegir el company",
"partner_page_select_partner": "Escull company", "partner_page_select_partner": "Escull company",
"partner_page_shared_to_title": "Compartit amb", "partner_page_shared_to_title": "Compartit amb",
"partner_page_stop_sharing_content": "{partner} ja no podrà accedir a les teves fotos.", "partner_page_stop_sharing_content": "{} ja no podrà accedir a les teves fotos.",
"partner_sharing": "Compartició amb companys", "partner_sharing": "Compartició amb companys",
"partners": "Companys", "partners": "Companys",
"password": "Contrasenya", "password": "Contrasenya",
@@ -1372,9 +1351,6 @@
"photos_count": "{count, plural, one {{count, number} Foto} other {{count, number} Fotos}}", "photos_count": "{count, plural, one {{count, number} Foto} other {{count, number} Fotos}}",
"photos_from_previous_years": "Fotos d'anys anteriors", "photos_from_previous_years": "Fotos d'anys anteriors",
"pick_a_location": "Triar una ubicació", "pick_a_location": "Triar una ubicació",
"pin_code_changed_successfully": "Codi PIN canviat correctament",
"pin_code_reset_successfully": "S'ha restablert correctament el codi PIN",
"pin_code_setup_successfully": "S'ha configurat correctament un codi PIN",
"place": "Lloc", "place": "Lloc",
"places": "Llocs", "places": "Llocs",
"places_count": "{count, plural, one {{count, number} Lloc} other {{count, number} Llocs}}", "places_count": "{count, plural, one {{count, number} Lloc} other {{count, number} Llocs}}",
@@ -1392,7 +1368,6 @@
"previous_or_next_photo": "Foto anterior o següent", "previous_or_next_photo": "Foto anterior o següent",
"primary": "Primària", "primary": "Primària",
"privacy": "Privacitat", "privacy": "Privacitat",
"profile": "Perfil",
"profile_drawer_app_logs": "Registres", "profile_drawer_app_logs": "Registres",
"profile_drawer_client_out_of_date_major": "L'aplicació mòbil està desactualitzada. Si us plau, actualitzeu a l'última versió major.", "profile_drawer_client_out_of_date_major": "L'aplicació mòbil està desactualitzada. Si us plau, actualitzeu a l'última versió major.",
"profile_drawer_client_out_of_date_minor": "L'aplicació mòbil està desactualitzada. Si us plau, actualitzeu a l'última versió menor.", "profile_drawer_client_out_of_date_minor": "L'aplicació mòbil està desactualitzada. Si us plau, actualitzeu a l'última versió menor.",
@@ -1406,7 +1381,7 @@
"public_share": "Compartit públicament", "public_share": "Compartit públicament",
"purchase_account_info": "Contribuent", "purchase_account_info": "Contribuent",
"purchase_activated_subtitle": "Gràcies per donar suport a Immich i al programari de codi obert", "purchase_activated_subtitle": "Gràcies per donar suport a Immich i al programari de codi obert",
"purchase_activated_time": "Activat el {date}", "purchase_activated_time": "Activat el {date, date}",
"purchase_activated_title": "La teva clau s'ha activat correctament", "purchase_activated_title": "La teva clau s'ha activat correctament",
"purchase_button_activate": "Activar", "purchase_button_activate": "Activar",
"purchase_button_buy": "Comprar", "purchase_button_buy": "Comprar",
@@ -1451,8 +1426,6 @@
"recent_searches": "Cerques recents", "recent_searches": "Cerques recents",
"recently_added": "Afegit recentment", "recently_added": "Afegit recentment",
"recently_added_page_title": "Afegit recentment", "recently_added_page_title": "Afegit recentment",
"recently_taken": "Fet recentment",
"recently_taken_page_title": "Fet recentment",
"refresh": "Actualitzar", "refresh": "Actualitzar",
"refresh_encoded_videos": "Actualitza vídeos codificats", "refresh_encoded_videos": "Actualitza vídeos codificats",
"refresh_faces": "Actualitzar cares", "refresh_faces": "Actualitzar cares",
@@ -1495,7 +1468,6 @@
"reset": "Restablir", "reset": "Restablir",
"reset_password": "Restablir contrasenya", "reset_password": "Restablir contrasenya",
"reset_people_visibility": "Restablir la visibilitat de les persones", "reset_people_visibility": "Restablir la visibilitat de les persones",
"reset_pin_code": "Restablir el codi PIN",
"reset_to_default": "Restableix els valors predeterminats", "reset_to_default": "Restableix els valors predeterminats",
"resolve_duplicates": "Resoldre duplicats", "resolve_duplicates": "Resoldre duplicats",
"resolved_all_duplicates": "Tots els duplicats resolts", "resolved_all_duplicates": "Tots els duplicats resolts",
@@ -1588,7 +1560,6 @@
"select_keep_all": "Mantén tota la selecció", "select_keep_all": "Mantén tota la selecció",
"select_library_owner": "Selecciona el propietari de la bilbioteca", "select_library_owner": "Selecciona el propietari de la bilbioteca",
"select_new_face": "Selecciona nova cara", "select_new_face": "Selecciona nova cara",
"select_person_to_tag": "Selecciona una persona per etiquetar",
"select_photos": "Tria fotografies", "select_photos": "Tria fotografies",
"select_trash_all": "Envia la selecció a la paperera", "select_trash_all": "Envia la selecció a la paperera",
"select_user_for_sharing_page_err_album": "Error al crear l'àlbum", "select_user_for_sharing_page_err_album": "Error al crear l'àlbum",
@@ -1619,12 +1590,12 @@
"setting_languages_apply": "Aplicar", "setting_languages_apply": "Aplicar",
"setting_languages_subtitle": "Canvia el llenguatge de l'aplicació", "setting_languages_subtitle": "Canvia el llenguatge de l'aplicació",
"setting_languages_title": "Idiomes", "setting_languages_title": "Idiomes",
"setting_notifications_notify_failures_grace_period": "Notifica les fallades de la còpia de seguretat en segon pla: {duration}", "setting_notifications_notify_failures_grace_period": "Notifica les fallades de la còpia de seguretat en segon pla: {}",
"setting_notifications_notify_hours": "{count} hores", "setting_notifications_notify_hours": "{} hores",
"setting_notifications_notify_immediately": "immediatament", "setting_notifications_notify_immediately": "immediatament",
"setting_notifications_notify_minutes": "{count} minuts", "setting_notifications_notify_minutes": "{} minuts",
"setting_notifications_notify_never": "mai", "setting_notifications_notify_never": "mai",
"setting_notifications_notify_seconds": "{count} segons", "setting_notifications_notify_seconds": "{} segons",
"setting_notifications_single_progress_subtitle": "Informació detallada del progrés de la pujada de cada fitxer", "setting_notifications_single_progress_subtitle": "Informació detallada del progrés de la pujada de cada fitxer",
"setting_notifications_single_progress_title": "Mostra el progrés detallat de la còpia de seguretat en segon pla", "setting_notifications_single_progress_title": "Mostra el progrés detallat de la còpia de seguretat en segon pla",
"setting_notifications_subtitle": "Ajusta les preferències de notificació", "setting_notifications_subtitle": "Ajusta les preferències de notificació",
@@ -1636,10 +1607,9 @@
"settings": "Configuració", "settings": "Configuració",
"settings_require_restart": "Si us plau, reinicieu Immich per a aplicar aquest canvi", "settings_require_restart": "Si us plau, reinicieu Immich per a aplicar aquest canvi",
"settings_saved": "Configuració desada", "settings_saved": "Configuració desada",
"setup_pin_code": "Configurar un codi PIN",
"share": "Comparteix", "share": "Comparteix",
"share_add_photos": "Afegeix fotografies", "share_add_photos": "Afegeix fotografies",
"share_assets_selected": "{count} seleccionats", "share_assets_selected": "{} seleccionats",
"share_dialog_preparing": "S'està preparant...", "share_dialog_preparing": "S'està preparant...",
"shared": "Compartit", "shared": "Compartit",
"shared_album_activities_input_disable": "Els comentaris estan desactivats", "shared_album_activities_input_disable": "Els comentaris estan desactivats",
@@ -1653,32 +1623,32 @@
"shared_by_user": "Compartit per {user}", "shared_by_user": "Compartit per {user}",
"shared_by_you": "Compartit per tu", "shared_by_you": "Compartit per tu",
"shared_from_partner": "Fotos de {partner}", "shared_from_partner": "Fotos de {partner}",
"shared_intent_upload_button_progress_text": "{current} / {total} Pujat", "shared_intent_upload_button_progress_text": "{} / {} Pujat",
"shared_link_app_bar_title": "Enllaços compartits", "shared_link_app_bar_title": "Enllaços compartits",
"shared_link_clipboard_copied_massage": "S'ha copiat al porta-retalls", "shared_link_clipboard_copied_massage": "S'ha copiat al porta-retalls",
"shared_link_clipboard_text": "Enllaç: {link}\nContrasenya: {password}", "shared_link_clipboard_text": "Enllaç: {}\nContrasenya: {}",
"shared_link_create_error": "S'ha produït un error en crear l'enllaç compartit", "shared_link_create_error": "S'ha produït un error en crear l'enllaç compartit",
"shared_link_edit_description_hint": "Introduïu la descripció de compartició", "shared_link_edit_description_hint": "Introduïu la descripció de compartició",
"shared_link_edit_expire_after_option_day": "1 dia", "shared_link_edit_expire_after_option_day": "1 dia",
"shared_link_edit_expire_after_option_days": "{count} dies", "shared_link_edit_expire_after_option_days": "{} dies",
"shared_link_edit_expire_after_option_hour": "1 hora", "shared_link_edit_expire_after_option_hour": "1 hora",
"shared_link_edit_expire_after_option_hours": "{count} hores", "shared_link_edit_expire_after_option_hours": "{} hores",
"shared_link_edit_expire_after_option_minute": "1 minut", "shared_link_edit_expire_after_option_minute": "1 minut",
"shared_link_edit_expire_after_option_minutes": "{count} minuts", "shared_link_edit_expire_after_option_minutes": "{} minuts",
"shared_link_edit_expire_after_option_months": "{count} mesos", "shared_link_edit_expire_after_option_months": "{} mesos",
"shared_link_edit_expire_after_option_year": "any {count}", "shared_link_edit_expire_after_option_year": "any {}",
"shared_link_edit_password_hint": "Introduïu la contrasenya de compartició", "shared_link_edit_password_hint": "Introduïu la contrasenya de compartició",
"shared_link_edit_submit_button": "Actualitza l'enllaç", "shared_link_edit_submit_button": "Actualitza l'enllaç",
"shared_link_error_server_url_fetch": "No s'ha pogut obtenir l'URL del servidor", "shared_link_error_server_url_fetch": "No s'ha pogut obtenir l'URL del servidor",
"shared_link_expires_day": "Caduca d'aquí a {count} dia", "shared_link_expires_day": "Caduca d'aquí a {} dia",
"shared_link_expires_days": "Caduca d'aquí a {count} dies", "shared_link_expires_days": "Caduca d'aquí a {} dies",
"shared_link_expires_hour": "Caduca d'aquí a {count} hora", "shared_link_expires_hour": "Caduca d'aquí a {} hora",
"shared_link_expires_hours": "Caduca d'aquí a {count} hores", "shared_link_expires_hours": "Caduca d'aquí a {} hores",
"shared_link_expires_minute": "Caduca d'aquí a {count} minut", "shared_link_expires_minute": "Caduca d'aquí a {} minut",
"shared_link_expires_minutes": "Caduca d'aquí a {count} minuts", "shared_link_expires_minutes": "Caduca d'aquí a {} minuts",
"shared_link_expires_never": "Caduca ∞", "shared_link_expires_never": "Caduca ∞",
"shared_link_expires_second": "Caduca d'aquí a {count} segon", "shared_link_expires_second": "Caduca d'aquí a {} segon",
"shared_link_expires_seconds": "Caduca d'aquí a {count} segons", "shared_link_expires_seconds": "Caduca d'aquí a {} segons",
"shared_link_individual_shared": "Individual compartit", "shared_link_individual_shared": "Individual compartit",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Gestiona els enllaços compartits", "shared_link_manage_links": "Gestiona els enllaços compartits",
@@ -1753,7 +1723,6 @@
"stop_sharing_photos_with_user": "Deixa de compartir les fotos amb aquest usuari", "stop_sharing_photos_with_user": "Deixa de compartir les fotos amb aquest usuari",
"storage": "Emmagatzematge", "storage": "Emmagatzematge",
"storage_label": "Etiquetatge d'emmagatzematge", "storage_label": "Etiquetatge d'emmagatzematge",
"storage_quota": "Quota d'emmagatzematge",
"storage_usage": "{used} de {available} en ús", "storage_usage": "{used} de {available} en ús",
"submit": "Envia", "submit": "Envia",
"suggestions": "Suggeriments", "suggestions": "Suggeriments",
@@ -1780,7 +1749,7 @@
"theme_selection": "Selecció de tema", "theme_selection": "Selecció de tema",
"theme_selection_description": "Activa automàticament el tema fosc o clar en funció de les preferències del sistema del navegador", "theme_selection_description": "Activa automàticament el tema fosc o clar en funció de les preferències del sistema del navegador",
"theme_setting_asset_list_storage_indicator_title": "Mostra l'indicador d'emmagatzematge als títols dels elements", "theme_setting_asset_list_storage_indicator_title": "Mostra l'indicador d'emmagatzematge als títols dels elements",
"theme_setting_asset_list_tiles_per_row_title": "Nombre d'elements per fila ({count})", "theme_setting_asset_list_tiles_per_row_title": "Nombre d'elements per fila ({})",
"theme_setting_colorful_interface_subtitle": "Apliqueu color primari a les superfícies de fons.", "theme_setting_colorful_interface_subtitle": "Apliqueu color primari a les superfícies de fons.",
"theme_setting_colorful_interface_title": "Interfície colorida", "theme_setting_colorful_interface_title": "Interfície colorida",
"theme_setting_image_viewer_quality_subtitle": "Ajusta la qualitat del visor de detalls d'imatges", "theme_setting_image_viewer_quality_subtitle": "Ajusta la qualitat del visor de detalls d'imatges",
@@ -1815,15 +1784,13 @@
"trash_no_results_message": "Les imatges i vídeos que s'enviïn a la paperera es mostraran aquí.", "trash_no_results_message": "Les imatges i vídeos que s'enviïn a la paperera es mostraran aquí.",
"trash_page_delete_all": "Eliminar-ho tot", "trash_page_delete_all": "Eliminar-ho tot",
"trash_page_empty_trash_dialog_content": "Segur que voleu eliminar els elements? Aquests elements seran eliminats permanentment de Immich", "trash_page_empty_trash_dialog_content": "Segur que voleu eliminar els elements? Aquests elements seran eliminats permanentment de Immich",
"trash_page_info": "Els elements que s'enviïn a la paperera s'eliminaran permanentment després de {days} dies", "trash_page_info": "Els elements que s'enviïn a la paperera s'eliminaran permanentment després de {} dies",
"trash_page_no_assets": "No hi ha elements a la paperera", "trash_page_no_assets": "No hi ha elements a la paperera",
"trash_page_restore_all": "Restaura-ho tot", "trash_page_restore_all": "Restaura-ho tot",
"trash_page_select_assets_btn": "Selecciona elements", "trash_page_select_assets_btn": "Selecciona elements",
"trash_page_title": "Paperera ({count})", "trash_page_title": "Paperera ({})",
"trashed_items_will_be_permanently_deleted_after": "Els elements que s'enviïn a la paperera s'eliminaran permanentment després de {days, plural, one {# dia} other {# dies}}.", "trashed_items_will_be_permanently_deleted_after": "Els elements que s'enviïn a la paperera s'eliminaran permanentment després de {days, plural, one {# dia} other {# dies}}.",
"type": "Tipus", "type": "Tipus",
"unable_to_change_pin_code": "No es pot canviar el codi PIN",
"unable_to_setup_pin_code": "No s'ha pogut configurar el codi PIN",
"unarchive": "Desarxivar", "unarchive": "Desarxivar",
"unarchived_count": "{count, plural, other {# elements desarxivats}}", "unarchived_count": "{count, plural, other {# elements desarxivats}}",
"unfavorite": "Reverteix preferit", "unfavorite": "Reverteix preferit",
@@ -1847,7 +1814,6 @@
"untracked_files": "Fitxers no monitoritzats", "untracked_files": "Fitxers no monitoritzats",
"untracked_files_decription": "Aquests fitxers no estan monitoritzats per l'aplicació. Poden ser el resultat de moviments errats, descàrregues interrompudes o deixats enrere per error", "untracked_files_decription": "Aquests fitxers no estan monitoritzats per l'aplicació. Poden ser el resultat de moviments errats, descàrregues interrompudes o deixats enrere per error",
"up_next": "Pròxim", "up_next": "Pròxim",
"updated_at": "Actualitzat",
"updated_password": "Contrasenya actualitzada", "updated_password": "Contrasenya actualitzada",
"upload": "Pujar", "upload": "Pujar",
"upload_concurrency": "Concurrència de pujades", "upload_concurrency": "Concurrència de pujades",
@@ -1860,18 +1826,15 @@
"upload_status_errors": "Errors", "upload_status_errors": "Errors",
"upload_status_uploaded": "Carregat", "upload_status_uploaded": "Carregat",
"upload_success": "Pujada correcta, actualitza la pàgina per veure nous recursos de pujada.", "upload_success": "Pujada correcta, actualitza la pàgina per veure nous recursos de pujada.",
"upload_to_immich": "Puja a Immich ({count})", "upload_to_immich": "Puja a Immich ({})",
"uploading": "Pujant", "uploading": "Pujant",
"url": "URL", "url": "URL",
"usage": "Ús", "usage": "Ús",
"use_current_connection": "utilitzar la connexió actual", "use_current_connection": "utilitzar la connexió actual",
"use_custom_date_range": "Fes servir un rang de dates personalitzat", "use_custom_date_range": "Fes servir un rang de dates personalitzat",
"user": "Usuari", "user": "Usuari",
"user_has_been_deleted": "Aquest usuari ha sigut eliminat.",
"user_id": "ID d'usuari", "user_id": "ID d'usuari",
"user_liked": "A {user} li ha agradat {type, select, photo {aquesta foto} video {aquest vídeo} asset {aquest recurs} other {}}", "user_liked": "A {user} li ha agradat {type, select, photo {aquesta foto} video {aquest vídeo} asset {aquest recurs} other {}}",
"user_pin_code_settings": "Codi PIN",
"user_pin_code_settings_description": "Gestiona el teu codi PIN",
"user_purchase_settings": "Compra", "user_purchase_settings": "Compra",
"user_purchase_settings_description": "Gestiona la teva compra", "user_purchase_settings_description": "Gestiona la teva compra",
"user_role_set": "Establir {user} com a {role}", "user_role_set": "Establir {user} com a {role}",
@@ -1920,11 +1883,11 @@
"week": "Setmana", "week": "Setmana",
"welcome": "Benvingut", "welcome": "Benvingut",
"welcome_to_immich": "Benvingut a immich", "welcome_to_immich": "Benvingut a immich",
"wifi_name": "Nom Wi-Fi", "wifi_name": "Nom WiFi",
"year": "Any", "year": "Any",
"years_ago": "Fa {years, plural, one {# any} other {# anys}}", "years_ago": "Fa {years, plural, one {# any} other {# anys}}",
"yes": "Sí", "yes": "Sí",
"you_dont_have_any_shared_links": "No tens cap enllaç compartit", "you_dont_have_any_shared_links": "No tens cap enllaç compartit",
"your_wifi_name": "Nom del teu Wi-Fi", "your_wifi_name": "El teu nom WiFi",
"zoom_image": "Ampliar Imatge" "zoom_image": "Ampliar Imatge"
} }

View File

@@ -53,7 +53,6 @@
"confirm_email_below": "Pro potvrzení zadejte níže \"{email}\"", "confirm_email_below": "Pro potvrzení zadejte níže \"{email}\"",
"confirm_reprocess_all_faces": "Opravdu chcete znovu zpracovat všechny obličeje? Tím se vymažou i pojmenované osoby.", "confirm_reprocess_all_faces": "Opravdu chcete znovu zpracovat všechny obličeje? Tím se vymažou i pojmenované osoby.",
"confirm_user_password_reset": "Opravdu chcete obnovit heslo uživatele {user}?", "confirm_user_password_reset": "Opravdu chcete obnovit heslo uživatele {user}?",
"confirm_user_pin_code_reset": "Opravdu chcete resetovat PIN kód uživatele {user}?",
"create_job": "Vytvořit úlohu", "create_job": "Vytvořit úlohu",
"cron_expression": "Výraz cron", "cron_expression": "Výraz cron",
"cron_expression_description": "Nastavte interval prohledávání pomocí cron formátu. Další informace naleznete např. v <link>Crontab Guru</link>", "cron_expression_description": "Nastavte interval prohledávání pomocí cron formátu. Další informace naleznete např. v <link>Crontab Guru</link>",
@@ -193,22 +192,26 @@
"oauth_auto_register": "Automatická registrace", "oauth_auto_register": "Automatická registrace",
"oauth_auto_register_description": "Automaticky registrovat nové uživatele po přihlášení pomocí OAuth", "oauth_auto_register_description": "Automaticky registrovat nové uživatele po přihlášení pomocí OAuth",
"oauth_button_text": "Text tlačítka", "oauth_button_text": "Text tlačítka",
"oauth_client_secret_description": "Vyžaduje se, pokud poskytovatel OAuth nepodporuje PKCE (Proof Key for Code Exchange)", "oauth_client_id": "Client ID",
"oauth_client_secret": "Client Secret",
"oauth_enable_description": "Přihlásit pomocí OAuth", "oauth_enable_description": "Přihlásit pomocí OAuth",
"oauth_issuer_url": "URL vydavatele",
"oauth_mobile_redirect_uri": "Mobilní přesměrování URI", "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": "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_mobile_redirect_uri_override_description": "Povolit, pokud poskytovatel OAuth nepovoluje mobilní URI, například '{callback}'",
"oauth_profile_signing_algorithm": "Algoritmus podepisování profilu",
"oauth_profile_signing_algorithm_description": "Algoritmus použitý k podepsání profilu uživatele.",
"oauth_scope": "Rozsah",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "Správa nastavení OAuth přihlášení", "oauth_settings_description": "Správa nastavení OAuth přihlášení",
"oauth_settings_more_details": "Další podrobnosti o této funkci naleznete v <link>dokumentaci</link>.", "oauth_settings_more_details": "Další podrobnosti o této funkci naleznete v <link>dokumentaci</link>.",
"oauth_signing_algorithm": "Algoritmus podepisování",
"oauth_storage_label_claim": "Deklarace štítku úložiště", "oauth_storage_label_claim": "Deklarace štítku úložiště",
"oauth_storage_label_claim_description": "Automaticky nastavit štítek úložiště uživatele na hodnotu této deklarace.", "oauth_storage_label_claim_description": "Automaticky nastavit štítek úložiště uživatele na hodnotu této deklarace.",
"oauth_storage_quota_claim": "Deklarace kvóty úložiště", "oauth_storage_quota_claim": "Deklarace kvóty úložiště",
"oauth_storage_quota_claim_description": "Automaticky nastavit kvótu úložiště uživatele na hodnotu této deklarace.", "oauth_storage_quota_claim_description": "Automaticky nastavit kvótu úložiště uživatele na hodnotu této deklarace.",
"oauth_storage_quota_default": "Výchozí kvóta úložiště (GiB)", "oauth_storage_quota_default": "Výchozí kvóta úložiště (GiB)",
"oauth_storage_quota_default_description": "Kvóta v GiB, která se použije, pokud není poskytnuta žádná deklarace (pro neomezenou kvótu zadejte 0).", "oauth_storage_quota_default_description": "Kvóta v GiB, která se použije, pokud není poskytnuta žádná deklarace (pro neomezenou kvótu zadejte 0).",
"oauth_timeout": "Časový limit požadavku",
"oauth_timeout_description": "Časový limit pro požadavky v milisekundách",
"offline_paths": "Cesty offline", "offline_paths": "Cesty offline",
"offline_paths_description": "Tyto výsledky mohou být způsobeny ručním odstraněním souborů, které nejsou součástí externí knihovny.", "offline_paths_description": "Tyto výsledky mohou být způsobeny ručním odstraněním souborů, které nejsou součástí externí knihovny.",
"password_enable_description": "Přihlášení pomocí e-mailu a hesla", "password_enable_description": "Přihlášení pomocí e-mailu a hesla",
@@ -349,7 +352,6 @@
"user_delete_delay_settings_description": "Počet dní po odstranění, po kterých bude odstraněn účet a položky uživatele. Úloha odstraňování uživatelů se spouští o půlnoci a kontroluje uživatele, kteří jsou připraveni k odstranění. Změny tohoto nastavení se vyhodnotí při dalším spuštění.", "user_delete_delay_settings_description": "Počet dní po odstranění, po kterých bude odstraněn účet a položky uživatele. Úloha odstraňování uživatelů se spouští o půlnoci a kontroluje uživatele, kteří jsou připraveni k odstranění. Změny tohoto nastavení se vyhodnotí při dalším spuštění.",
"user_delete_immediately": "Účet a položky uživatele <b>{user}</b> budou zařazeny do fronty k trvalému smazání <b>okamžitě</b>.", "user_delete_immediately": "Účet a položky uživatele <b>{user}</b> budou zařazeny do fronty k trvalému smazání <b>okamžitě</b>.",
"user_delete_immediately_checkbox": "Uživatele a položky zařadit do fronty k okamžitému smazání", "user_delete_immediately_checkbox": "Uživatele a položky zařadit do fronty k okamžitému smazání",
"user_details": "Podrobnosti o uživateli",
"user_management": "Správa uživatelů", "user_management": "Správa uživatelů",
"user_password_has_been_reset": "Heslo uživatele bylo obnoveno:", "user_password_has_been_reset": "Heslo uživatele bylo obnoveno:",
"user_password_reset_description": "Poskytněte uživateli dočasné heslo a informujte ho, že si ho bude muset při příštím přihlášení změnit.", "user_password_reset_description": "Poskytněte uživateli dočasné heslo a informujte ho, že si ho bude muset při příštím přihlášení změnit.",
@@ -371,7 +373,7 @@
"advanced": "Pokročilé", "advanced": "Pokročilé",
"advanced_settings_enable_alternate_media_filter_subtitle": "Tuto možnost použijte k filtrování médií během synchronizace na základě alternativních kritérií. Tuto možnost vyzkoušejte pouze v případě, že máte problémy s detekcí všech alb v aplikaci.", "advanced_settings_enable_alternate_media_filter_subtitle": "Tuto možnost použijte k filtrování médií během synchronizace na základě alternativních kritérií. Tuto možnost vyzkoušejte pouze v případě, že máte problémy s detekcí všech alb v aplikaci.",
"advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTÁLNÍ] Použít alternativní filtr pro synchronizaci alb zařízení", "advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTÁLNÍ] Použít alternativní filtr pro synchronizaci alb zařízení",
"advanced_settings_log_level_title": "Úroveň protokolování: {level}", "advanced_settings_log_level_title": "Úroveň protokolování: {}",
"advanced_settings_prefer_remote_subtitle": "U některých zařízení je načítání miniatur z prostředků v zařízení velmi pomalé. Aktivujte toto nastavení, aby se místo toho načítaly vzdálené obrázky.", "advanced_settings_prefer_remote_subtitle": "U některých zařízení je načítání miniatur z prostředků v zařízení velmi pomalé. Aktivujte toto nastavení, aby se místo toho načítaly vzdálené obrázky.",
"advanced_settings_prefer_remote_title": "Preferovat vzdálené obrázky", "advanced_settings_prefer_remote_title": "Preferovat vzdálené obrázky",
"advanced_settings_proxy_headers_subtitle": "Definice hlaviček proxy serveru, které by měl Immich odesílat s každým síťovým požadavkem", "advanced_settings_proxy_headers_subtitle": "Definice hlaviček proxy serveru, které by měl Immich odesílat s každým síťovým požadavkem",
@@ -383,8 +385,8 @@
"advanced_settings_tile_subtitle": "Pokročilé uživatelské nastavení", "advanced_settings_tile_subtitle": "Pokročilé uživatelské nastavení",
"advanced_settings_troubleshooting_subtitle": "Zobrazit dodatečné vlastnosti pro řešení problémů", "advanced_settings_troubleshooting_subtitle": "Zobrazit dodatečné vlastnosti pro řešení problémů",
"advanced_settings_troubleshooting_title": "Řešení problémů", "advanced_settings_troubleshooting_title": "Řešení problémů",
"age_months": "Věk {months, plural, one {# měsíc} few {# měsíce} other {# měsíců}}", "age_months": "{months, plural, one {# měsíc} few {# měsíce} other {# měsíců}}",
"age_year_months": "Věk 1 rok, {months, plural, one {# měsíc} other {# měsíce}}", "age_year_months": "1 rok a {months, plural, one {# měsíc} few {# měsíce} other {# měsíců}}",
"age_years": "{years, plural, one {# rok} few {# roky} other {# let}}", "age_years": "{years, plural, one {# rok} few {# roky} other {# let}}",
"album_added": "Přidáno album", "album_added": "Přidáno album",
"album_added_notification_setting_description": "Dostávat e-mailové oznámení, když jste přidáni do sdíleného alba", "album_added_notification_setting_description": "Dostávat e-mailové oznámení, když jste přidáni do sdíleného alba",
@@ -402,9 +404,9 @@
"album_remove_user_confirmation": "Opravdu chcete odebrat uživatele {user}?", "album_remove_user_confirmation": "Opravdu chcete odebrat uživatele {user}?",
"album_share_no_users": "Zřejmě jste toto album sdíleli se všemi uživateli, nebo nemáte žádného uživatele, se kterým byste ho mohli sdílet.", "album_share_no_users": "Zřejmě jste toto album sdíleli se všemi uživateli, nebo nemáte žádného uživatele, se kterým byste ho mohli sdílet.",
"album_thumbnail_card_item": "1 položka", "album_thumbnail_card_item": "1 položka",
"album_thumbnail_card_items": "{count} položek", "album_thumbnail_card_items": "{} položek",
"album_thumbnail_card_shared": " · Sdíleno", "album_thumbnail_card_shared": " · Sdíleno",
"album_thumbnail_shared_by": "Sdílel(a) {user}", "album_thumbnail_shared_by": "Sdílel(a) {}",
"album_updated": "Album aktualizováno", "album_updated": "Album aktualizováno",
"album_updated_setting_description": "Dostávat e-mailová oznámení o nových položkách sdíleného alba", "album_updated_setting_description": "Dostávat e-mailová oznámení o nových položkách sdíleného alba",
"album_user_left": "Opustil {album}", "album_user_left": "Opustil {album}",
@@ -442,7 +444,7 @@
"archive": "Archiv", "archive": "Archiv",
"archive_or_unarchive_photo": "Archivovat nebo odarchivovat fotku", "archive_or_unarchive_photo": "Archivovat nebo odarchivovat fotku",
"archive_page_no_archived_assets": "Nebyla nalezena žádná archivovaná média", "archive_page_no_archived_assets": "Nebyla nalezena žádná archivovaná média",
"archive_page_title": "Archiv ({count})", "archive_page_title": "Archiv ({})",
"archive_size": "Velikost archivu", "archive_size": "Velikost archivu",
"archive_size_description": "Nastavte velikost archivu pro stahování (v GiB)", "archive_size_description": "Nastavte velikost archivu pro stahování (v GiB)",
"archived": "Archiv", "archived": "Archiv",
@@ -479,18 +481,18 @@
"assets_added_to_album_count": "Do alba {count, plural, one {byla přidána # položka} few {byly přidány # položky} other {bylo přidáno # položek}}", "assets_added_to_album_count": "Do alba {count, plural, one {byla přidána # položka} few {byly přidány # položky} other {bylo přidáno # položek}}",
"assets_added_to_name_count": "{count, plural, one {Přidána # položka} few {Přidány # položky} other {Přidáno # položek}} do {hasName, select, true {alba <b>{name}</b>} other {nového alba}}", "assets_added_to_name_count": "{count, plural, one {Přidána # položka} few {Přidány # položky} other {Přidáno # položek}} do {hasName, select, true {alba <b>{name}</b>} other {nového alba}}",
"assets_count": "{count, plural, one {# položka} few {# položky} other {# položek}}", "assets_count": "{count, plural, one {# položka} few {# položky} other {# položek}}",
"assets_deleted_permanently": "{count} položek trvale odstraněno", "assets_deleted_permanently": "{} položek trvale odstraněno",
"assets_deleted_permanently_from_server": "{count} položek trvale odstraněno z Immich serveru", "assets_deleted_permanently_from_server": "{} položek trvale odstraněno z Immich serveru",
"assets_moved_to_trash_count": "Do koše {count, plural, one {přesunuta # položka} few {přesunuty # položky} other {přesunuto # položek}}", "assets_moved_to_trash_count": "Do koše {count, plural, one {přesunuta # položka} few {přesunuty # položky} other {přesunuto # položek}}",
"assets_permanently_deleted_count": "Trvale {count, plural, one {smazána # položka} few {smazány # položky} other {smazáno # položek}}", "assets_permanently_deleted_count": "Trvale {count, plural, one {smazána # položka} few {smazány # položky} other {smazáno # položek}}",
"assets_removed_count": "{count, plural, one {Odstraněna # položka} few {Odstraněny # položky} other {Odstraněno # položek}}", "assets_removed_count": "{count, plural, one {Odstraněna # položka} few {Odstraněny # položky} other {Odstraněno # položek}}",
"assets_removed_permanently_from_device": "{count} položek trvale odstraněno z vašeho zařízení", "assets_removed_permanently_from_device": "{} položek trvale odstraněno z vašeho zařízení",
"assets_restore_confirmation": "Opravdu chcete obnovit všechny vyhozené položky? Tuto akci nelze vrátit zpět! Upozorňujeme, že tímto způsobem nelze obnovit žádné offline položky.", "assets_restore_confirmation": "Opravdu chcete obnovit všechny vyhozené položky? Tuto akci nelze vrátit zpět! Upozorňujeme, že tímto způsobem nelze obnovit žádné offline položky.",
"assets_restored_count": "{count, plural, one {Obnovena # položka} few {Obnoveny # položky} other {Obnoveno # položek}}", "assets_restored_count": "{count, plural, one {Obnovena # položka} few {Obnoveny # položky} other {Obnoveno # položek}}",
"assets_restored_successfully": "{count} položek úspěšně obnoveno", "assets_restored_successfully": "{} položek úspěšně obnoveno",
"assets_trashed": "{count} položek vyhozeno do koše", "assets_trashed": "{} položek vyhozeno do koše",
"assets_trashed_count": "{count, plural, one {Vyhozena # položka} few {Vyhozeny # položky} other {Vyhozeno # položek}}", "assets_trashed_count": "{count, plural, one {Vyhozena # položka} few {Vyhozeny # položky} other {Vyhozeno # položek}}",
"assets_trashed_from_server": "{count} položek vyhozeno do koše na Immich serveru", "assets_trashed_from_server": "{} položek vyhozeno do koše na Immich serveru",
"assets_were_part_of_album_count": "{count, plural, one {Položka byla} other {Položky byly}} součástí alba", "assets_were_part_of_album_count": "{count, plural, one {Položka byla} other {Položky byly}} součástí alba",
"authorized_devices": "Autorizovaná zařízení", "authorized_devices": "Autorizovaná zařízení",
"automatic_endpoint_switching_subtitle": "Připojit se místně přes určenou Wi-Fi, pokud je k dispozici, a používat alternativní připojení jinde", "automatic_endpoint_switching_subtitle": "Připojit se místně přes určenou Wi-Fi, pokud je k dispozici, a používat alternativní připojení jinde",
@@ -499,7 +501,7 @@
"back_close_deselect": "Zpět, zavřít nebo zrušit výběr", "back_close_deselect": "Zpět, zavřít nebo zrušit výběr",
"background_location_permission": "Povolení polohy na pozadí", "background_location_permission": "Povolení polohy na pozadí",
"background_location_permission_content": "Aby bylo možné přepínat sítě při běhu na pozadí, musí mít Immich *vždy* přístup k přesné poloze, aby mohl zjistit název Wi-Fi sítě", "background_location_permission_content": "Aby bylo možné přepínat sítě při běhu na pozadí, musí mít Immich *vždy* přístup k přesné poloze, aby mohl zjistit název Wi-Fi sítě",
"backup_album_selection_page_albums_device": "Alba v zařízení ({count})", "backup_album_selection_page_albums_device": "Alba v zařízení ({})",
"backup_album_selection_page_albums_tap": "Klepnutím na položku ji zahrnete, opětovným klepnutím ji vyloučíte", "backup_album_selection_page_albums_tap": "Klepnutím na položku ji zahrnete, opětovným klepnutím ji vyloučíte",
"backup_album_selection_page_assets_scatter": "Položky mohou být roztroušeny ve více albech. To umožňuje zahrnout nebo vyloučit alba během procesu zálohování.", "backup_album_selection_page_assets_scatter": "Položky mohou být roztroušeny ve více albech. To umožňuje zahrnout nebo vyloučit alba během procesu zálohování.",
"backup_album_selection_page_select_albums": "Vybraná alba", "backup_album_selection_page_select_albums": "Vybraná alba",
@@ -508,11 +510,11 @@
"backup_all": "Vše", "backup_all": "Vše",
"backup_background_service_backup_failed_message": "Zálohování médií selhalo. Zkouším to znovu…", "backup_background_service_backup_failed_message": "Zálohování médií selhalo. Zkouším to znovu…",
"backup_background_service_connection_failed_message": "Nepodařilo se připojit k serveru. Zkouším to znovu…", "backup_background_service_connection_failed_message": "Nepodařilo se připojit k serveru. Zkouším to znovu…",
"backup_background_service_current_upload_notification": "Nahrávání {filename}", "backup_background_service_current_upload_notification": "Nahrávání {}",
"backup_background_service_default_notification": "Kontrola nových médií…", "backup_background_service_default_notification": "Kontrola nových médií…",
"backup_background_service_error_title": "Chyba zálohování", "backup_background_service_error_title": "Chyba zálohování",
"backup_background_service_in_progress_notification": "Zálohování vašich médií…", "backup_background_service_in_progress_notification": "Zálohování vašich médií…",
"backup_background_service_upload_failure_notification": "Nepodařilo se nahrát {filename}", "backup_background_service_upload_failure_notification": "Nepodařilo se nahrát {}",
"backup_controller_page_albums": "Zálohovaná alba", "backup_controller_page_albums": "Zálohovaná alba",
"backup_controller_page_background_app_refresh_disabled_content": "Povolte obnovení aplikace na pozadí v Nastavení > Obecné > Obnovení aplikace na pozadí, abyste mohli používat zálohování na pozadí.", "backup_controller_page_background_app_refresh_disabled_content": "Povolte obnovení aplikace na pozadí v Nastavení > Obecné > Obnovení aplikace na pozadí, abyste mohli používat zálohování na pozadí.",
"backup_controller_page_background_app_refresh_disabled_title": "Obnovování aplikací na pozadí je vypnuté", "backup_controller_page_background_app_refresh_disabled_title": "Obnovování aplikací na pozadí je vypnuté",
@@ -523,7 +525,7 @@
"backup_controller_page_background_battery_info_title": "Optimalizace baterie", "backup_controller_page_background_battery_info_title": "Optimalizace baterie",
"backup_controller_page_background_charging": "Pouze během nabíjení", "backup_controller_page_background_charging": "Pouze během nabíjení",
"backup_controller_page_background_configure_error": "Nepodařilo se nakonfigurovat službu na pozadí", "backup_controller_page_background_configure_error": "Nepodařilo se nakonfigurovat službu na pozadí",
"backup_controller_page_background_delay": "Zpoždění zálohování nových médií: {duration}", "backup_controller_page_background_delay": "Zpoždění zálohování nových médií: {}",
"backup_controller_page_background_description": "Povolte službu na pozadí pro automatické zálohování všech nových položek bez nutnosti otevření aplikace", "backup_controller_page_background_description": "Povolte službu na pozadí pro automatické zálohování všech nových položek bez nutnosti otevření aplikace",
"backup_controller_page_background_is_off": "Automatické zálohování na pozadí je vypnuto", "backup_controller_page_background_is_off": "Automatické zálohování na pozadí je vypnuto",
"backup_controller_page_background_is_on": "Automatické zálohování na pozadí je zapnuto", "backup_controller_page_background_is_on": "Automatické zálohování na pozadí je zapnuto",
@@ -533,12 +535,12 @@
"backup_controller_page_backup": "Zálohování", "backup_controller_page_backup": "Zálohování",
"backup_controller_page_backup_selected": "Vybrané: ", "backup_controller_page_backup_selected": "Vybrané: ",
"backup_controller_page_backup_sub": "Zálohované fotografie a videa", "backup_controller_page_backup_sub": "Zálohované fotografie a videa",
"backup_controller_page_created": "Vytvořeno: {date}", "backup_controller_page_created": "Vytvořeno: {}",
"backup_controller_page_desc_backup": "Zapněte zálohování na popředí, aby se nové položky automaticky nahrávaly na server při otevření aplikace.", "backup_controller_page_desc_backup": "Zapněte zálohování na popředí, aby se nové položky automaticky nahrávaly na server při otevření aplikace.",
"backup_controller_page_excluded": "Vyloučeno: ", "backup_controller_page_excluded": "Vyloučeno: ",
"backup_controller_page_failed": "Nepodařilo se ({count})", "backup_controller_page_failed": "Nepodařilo se ({})",
"backup_controller_page_filename": "Název souboru: {filename} [{size}]", "backup_controller_page_filename": "Název souboru: {} [{}]",
"backup_controller_page_id": "ID: {id}", "backup_controller_page_id": "ID: {}",
"backup_controller_page_info": "Informace o zálohování", "backup_controller_page_info": "Informace o zálohování",
"backup_controller_page_none_selected": "Žádné vybrané", "backup_controller_page_none_selected": "Žádné vybrané",
"backup_controller_page_remainder": "Zbývá", "backup_controller_page_remainder": "Zbývá",
@@ -547,7 +549,7 @@
"backup_controller_page_start_backup": "Spustit zálohování", "backup_controller_page_start_backup": "Spustit zálohování",
"backup_controller_page_status_off": "Automatické zálohování na popředí je vypnuto", "backup_controller_page_status_off": "Automatické zálohování na popředí je vypnuto",
"backup_controller_page_status_on": "Automatické zálohování na popředí je zapnuto", "backup_controller_page_status_on": "Automatické zálohování na popředí je zapnuto",
"backup_controller_page_storage_format": "{used} z {total} použitých", "backup_controller_page_storage_format": "{} z {} použitých",
"backup_controller_page_to_backup": "Alba, která mají být zálohována", "backup_controller_page_to_backup": "Alba, která mají být zálohována",
"backup_controller_page_total_sub": "Všechny jedinečné fotografie a videa z vybraných alb", "backup_controller_page_total_sub": "Všechny jedinečné fotografie a videa z vybraných alb",
"backup_controller_page_turn_off": "Vypnout zálohování na popředí", "backup_controller_page_turn_off": "Vypnout zálohování na popředí",
@@ -572,21 +574,21 @@
"bulk_keep_duplicates_confirmation": "Opravdu si chcete ponechat {count, plural, one {# duplicitní položku} few {# duplicitní položky} other {# duplicitních položek}}? Tím se vyřeší všechny duplicitní skupiny, aniž by se cokoli odstranilo.", "bulk_keep_duplicates_confirmation": "Opravdu si chcete ponechat {count, plural, one {# duplicitní položku} few {# duplicitní položky} other {# duplicitních položek}}? Tím se vyřeší všechny duplicitní skupiny, aniž by se cokoli odstranilo.",
"bulk_trash_duplicates_confirmation": "Opravdu chcete hromadně vyhodit {count, plural, one {# duplicitní položku} few {# duplicitní položky} other {# duplicitních položek}}? Tím se zachová největší položka z každé skupiny a všechny ostatní duplikáty se vyhodí.", "bulk_trash_duplicates_confirmation": "Opravdu chcete hromadně vyhodit {count, plural, one {# duplicitní položku} few {# duplicitní položky} other {# duplicitních položek}}? Tím se zachová největší položka z každé skupiny a všechny ostatní duplikáty se vyhodí.",
"buy": "Zakoupit Immich", "buy": "Zakoupit Immich",
"cache_settings_album_thumbnails": "Náhledy stránek knihovny ({count} položek)", "cache_settings_album_thumbnails": "Náhledy stránek knihovny (položek {})",
"cache_settings_clear_cache_button": "Vymazat vyrovnávací paměť", "cache_settings_clear_cache_button": "Vymazat vyrovnávací paměť",
"cache_settings_clear_cache_button_title": "Vymaže vyrovnávací paměť aplikace. To výrazně ovlivní výkon aplikace, dokud se vyrovnávací paměť neobnoví.", "cache_settings_clear_cache_button_title": "Vymaže vyrovnávací paměť aplikace. To výrazně ovlivní výkon aplikace, dokud se vyrovnávací paměť neobnoví.",
"cache_settings_duplicated_assets_clear_button": "VYMAZAT", "cache_settings_duplicated_assets_clear_button": "VYMAZAT",
"cache_settings_duplicated_assets_subtitle": "Fotografie a videa, které aplikace zařadila na černou listinu", "cache_settings_duplicated_assets_subtitle": "Fotografie a videa, které aplikace zařadila na černou listinu",
"cache_settings_duplicated_assets_title": "Duplicitní položky ({count})", "cache_settings_duplicated_assets_title": "Duplicitní položky ({})",
"cache_settings_image_cache_size": "Velikost vyrovnávací paměti ({count} položek)", "cache_settings_image_cache_size": "Velikost vyrovnávací paměti (položek {})",
"cache_settings_statistics_album": "Knihovna náhledů", "cache_settings_statistics_album": "Knihovna náhledů",
"cache_settings_statistics_assets": "{count, plural, one {# položka} few {# položky} other {# položek}} ({size})", "cache_settings_statistics_assets": "{} položky ({})",
"cache_settings_statistics_full": "Kompletní fotografie", "cache_settings_statistics_full": "Kompletní fotografie",
"cache_settings_statistics_shared": "Sdílené náhledy alb", "cache_settings_statistics_shared": "Sdílené náhledy alb",
"cache_settings_statistics_thumbnail": "Náhledy", "cache_settings_statistics_thumbnail": "Náhledy",
"cache_settings_statistics_title": "Použití vyrovnávací paměti", "cache_settings_statistics_title": "Použití vyrovnávací paměti",
"cache_settings_subtitle": "Ovládání chování mobilní aplikace Immich v mezipaměti", "cache_settings_subtitle": "Ovládání chování mobilní aplikace Immich v mezipaměti",
"cache_settings_thumbnail_size": "Velikost vyrovnávací paměti náhledů ({count, plural, one {# položka} few {# položky} other {# položek}})", "cache_settings_thumbnail_size": "Velikost vyrovnávací paměti náhledů (položek {})",
"cache_settings_tile_subtitle": "Ovládání chování místního úložiště", "cache_settings_tile_subtitle": "Ovládání chování místního úložiště",
"cache_settings_tile_title": "Místní úložiště", "cache_settings_tile_title": "Místní úložiště",
"cache_settings_title": "Nastavení vyrovnávací paměti", "cache_settings_title": "Nastavení vyrovnávací paměti",
@@ -612,7 +614,6 @@
"change_password_form_new_password": "Nové heslo", "change_password_form_new_password": "Nové heslo",
"change_password_form_password_mismatch": "Hesla se neshodují", "change_password_form_password_mismatch": "Hesla se neshodují",
"change_password_form_reenter_new_password": "Znovu zadejte nové heslo", "change_password_form_reenter_new_password": "Znovu zadejte nové heslo",
"change_pin_code": "Změnit PIN kód",
"change_your_password": "Změna vašeho hesla", "change_your_password": "Změna vašeho hesla",
"changed_visibility_successfully": "Změna viditelnosti proběhla úspěšně", "changed_visibility_successfully": "Změna viditelnosti proběhla úspěšně",
"check_all": "Zkontrolovat vše", "check_all": "Zkontrolovat vše",
@@ -653,12 +654,11 @@
"confirm_delete_face": "Opravdu chcete z položky odstranit obličej osoby {name}?", "confirm_delete_face": "Opravdu chcete z položky odstranit obličej osoby {name}?",
"confirm_delete_shared_link": "Opravdu chcete odstranit tento sdílený odkaz?", "confirm_delete_shared_link": "Opravdu chcete odstranit tento sdílený odkaz?",
"confirm_keep_this_delete_others": "Všechny ostatní položky v tomto uskupení mimo této budou odstraněny. Opravdu chcete pokračovat?", "confirm_keep_this_delete_others": "Všechny ostatní položky v tomto uskupení mimo této budou odstraněny. Opravdu chcete pokračovat?",
"confirm_new_pin_code": "Potvrzení nového PIN kódu",
"confirm_password": "Potvrzení hesla", "confirm_password": "Potvrzení hesla",
"contain": "Obsah", "contain": "Obsah",
"context": "Kontext", "context": "Kontext",
"continue": "Pokračovat", "continue": "Pokračovat",
"control_bottom_app_bar_album_info_shared": "{count, plural, one {# položka sdílená} few {# položky sdílené} other {# položek sdílených}}", "control_bottom_app_bar_album_info_shared": "{} položky sdílené",
"control_bottom_app_bar_create_new_album": "Vytvořit nové album", "control_bottom_app_bar_create_new_album": "Vytvořit nové album",
"control_bottom_app_bar_delete_from_immich": "Smazat ze serveru Immich", "control_bottom_app_bar_delete_from_immich": "Smazat ze serveru Immich",
"control_bottom_app_bar_delete_from_local": "Smazat ze zařízení", "control_bottom_app_bar_delete_from_local": "Smazat ze zařízení",
@@ -696,11 +696,9 @@
"create_tag_description": "Vytvoření nové značky. U vnořených značek zadejte celou cestu ke značce včetně dopředných lomítek.", "create_tag_description": "Vytvoření nové značky. U vnořených značek zadejte celou cestu ke značce včetně dopředných lomítek.",
"create_user": "Vytvořit uživatele", "create_user": "Vytvořit uživatele",
"created": "Vytvořeno", "created": "Vytvořeno",
"created_at": "Vytvořeno",
"crop": "Oříznout", "crop": "Oříznout",
"curated_object_page_title": "Věci", "curated_object_page_title": "Věci",
"current_device": "Současné zařízení", "current_device": "Současné zařízení",
"current_pin_code": "Aktuální PIN kód",
"current_server_address": "Aktuální adresa serveru", "current_server_address": "Aktuální adresa serveru",
"custom_locale": "Vlastní lokalizace", "custom_locale": "Vlastní lokalizace",
"custom_locale_description": "Formátovat datumy a čísla podle jazyka a oblasti", "custom_locale_description": "Formátovat datumy a čísla podle jazyka a oblasti",
@@ -769,7 +767,7 @@
"download_enqueue": "Stahování ve frontě", "download_enqueue": "Stahování ve frontě",
"download_error": "Chyba při stahování", "download_error": "Chyba při stahování",
"download_failed": "Stahování selhalo", "download_failed": "Stahování selhalo",
"download_filename": "soubor: {filename}", "download_filename": "soubor: {}",
"download_finished": "Stahování dokončeno", "download_finished": "Stahování dokončeno",
"download_include_embedded_motion_videos": "Vložená videa", "download_include_embedded_motion_videos": "Vložená videa",
"download_include_embedded_motion_videos_description": "Zahrnout videa vložená do pohyblivých fotografií jako samostatný soubor", "download_include_embedded_motion_videos_description": "Zahrnout videa vložená do pohyblivých fotografií jako samostatný soubor",
@@ -813,7 +811,6 @@
"editor_crop_tool_h2_aspect_ratios": "Poměr stran", "editor_crop_tool_h2_aspect_ratios": "Poměr stran",
"editor_crop_tool_h2_rotation": "Otočení", "editor_crop_tool_h2_rotation": "Otočení",
"email": "E-mail", "email": "E-mail",
"email_notifications": "E-mailová oznámení",
"empty_folder": "Tato složka je prázdná", "empty_folder": "Tato složka je prázdná",
"empty_trash": "Vyprázdnit koš", "empty_trash": "Vyprázdnit koš",
"empty_trash_confirmation": "Opravdu chcete vysypat koš? Tím se z Immiche trvale odstraní všechny položky v koši.\nTuto akci nelze vrátit zpět!", "empty_trash_confirmation": "Opravdu chcete vysypat koš? Tím se z Immiche trvale odstraní všechny položky v koši.\nTuto akci nelze vrátit zpět!",
@@ -821,12 +818,12 @@
"enabled": "Povoleno", "enabled": "Povoleno",
"end_date": "Konečné datum", "end_date": "Konečné datum",
"enqueued": "Ve frontě", "enqueued": "Ve frontě",
"enter_wifi_name": "Zadejte název Wi-Fi", "enter_wifi_name": "Zadejte název WiFi",
"error": "Chyba", "error": "Chyba",
"error_change_sort_album": "Nepodařilo se změnit pořadí alba", "error_change_sort_album": "Nepodařilo se změnit pořadí alba",
"error_delete_face": "Chyba při odstraňování obličeje z položky", "error_delete_face": "Chyba při odstraňování obličeje z položky",
"error_loading_image": "Chyba při načítání obrázku", "error_loading_image": "Chyba při načítání obrázku",
"error_saving_image": "Chyba: {error}", "error_saving_image": "Chyba: {}",
"error_title": "Chyba - Něco se pokazilo", "error_title": "Chyba - Něco se pokazilo",
"errors": { "errors": {
"cannot_navigate_next_asset": "Nelze přejít na další položku", "cannot_navigate_next_asset": "Nelze přejít na další položku",
@@ -856,12 +853,10 @@
"failed_to_keep_this_delete_others": "Nepodařilo se zachovat tuto položku a odstranit ostatní položky", "failed_to_keep_this_delete_others": "Nepodařilo se zachovat tuto položku a odstranit ostatní položky",
"failed_to_load_asset": "Nepodařilo se načíst položku", "failed_to_load_asset": "Nepodařilo se načíst položku",
"failed_to_load_assets": "Nepodařilo se načíst položky", "failed_to_load_assets": "Nepodařilo se načíst položky",
"failed_to_load_notifications": "Nepodařilo se načíst oznámení",
"failed_to_load_people": "Chyba načítání osob", "failed_to_load_people": "Chyba načítání osob",
"failed_to_remove_product_key": "Nepodařilo se odebrat klíč produktu", "failed_to_remove_product_key": "Nepodařilo se odebrat klíč produktu",
"failed_to_stack_assets": "Nepodařilo se seskupit položky", "failed_to_stack_assets": "Nepodařilo se seskupit položky",
"failed_to_unstack_assets": "Nepodařilo se rozložit položky", "failed_to_unstack_assets": "Nepodařilo se rozložit položky",
"failed_to_update_notification_status": "Nepodařilo se aktualizovat stav oznámení",
"import_path_already_exists": "Tato cesta importu již existuje.", "import_path_already_exists": "Tato cesta importu již existuje.",
"incorrect_email_or_password": "Nesprávný e-mail nebo heslo", "incorrect_email_or_password": "Nesprávný e-mail nebo heslo",
"paths_validation_failed": "{paths, plural, one {# cesta neprošla} few {# cesty neprošly} other {# cest neprošlo}} kontrolou", "paths_validation_failed": "{paths, plural, one {# cesta neprošla} few {# cesty neprošly} other {# cest neprošlo}} kontrolou",
@@ -929,7 +924,6 @@
"unable_to_remove_reaction": "Nelze odstranit reakci", "unable_to_remove_reaction": "Nelze odstranit reakci",
"unable_to_repair_items": "Nelze opravit položky", "unable_to_repair_items": "Nelze opravit položky",
"unable_to_reset_password": "Nelze obnovit heslo", "unable_to_reset_password": "Nelze obnovit heslo",
"unable_to_reset_pin_code": "Nelze resetovat PIN kód",
"unable_to_resolve_duplicate": "Nelze vyřešit duplicitu", "unable_to_resolve_duplicate": "Nelze vyřešit duplicitu",
"unable_to_restore_assets": "Nelze obnovit položky", "unable_to_restore_assets": "Nelze obnovit položky",
"unable_to_restore_trash": "Nelze obnovit koš", "unable_to_restore_trash": "Nelze obnovit koš",
@@ -963,10 +957,10 @@
"exif_bottom_sheet_location": "POLOHA", "exif_bottom_sheet_location": "POLOHA",
"exif_bottom_sheet_people": "LIDÉ", "exif_bottom_sheet_people": "LIDÉ",
"exif_bottom_sheet_person_add_person": "Přidat jméno", "exif_bottom_sheet_person_add_person": "Přidat jméno",
"exif_bottom_sheet_person_age": "Věk {age, plural, one {# rok} few {# roky} other {# let}}", "exif_bottom_sheet_person_age": "{} let",
"exif_bottom_sheet_person_age_months": "Věk {months, plural, one {# měsíc} few {# měsíce} other {# měsíců}}", "exif_bottom_sheet_person_age_months": "{} měsíců",
"exif_bottom_sheet_person_age_year_months": "Věk 1 rok, {months, plural, one {# měsíc} other {# měsíce}}", "exif_bottom_sheet_person_age_year_months": "1 rok a {} měsíců",
"exif_bottom_sheet_person_age_years": "Věk {years, plural, one {# rok} few {# roky} other {# let}}", "exif_bottom_sheet_person_age_years": "{} let",
"exit_slideshow": "Ukončit prezentaci", "exit_slideshow": "Ukončit prezentaci",
"expand_all": "Rozbalit vše", "expand_all": "Rozbalit vše",
"experimental_settings_new_asset_list_subtitle": "Zpracovávám", "experimental_settings_new_asset_list_subtitle": "Zpracovávám",
@@ -984,7 +978,7 @@
"external": "Externí", "external": "Externí",
"external_libraries": "Externí knihovny", "external_libraries": "Externí knihovny",
"external_network": "Externí síť", "external_network": "Externí síť",
"external_network_sheet_info": "Pokud nejste v preferované síti Wi-Fi, aplikace se připojí k serveru prostřednictvím první z níže uvedených adres URL, které může dosáhnout, počínaje shora dolů", "external_network_sheet_info": "Pokud nejste v preferované síti WiFi, aplikace se připojí k serveru prostřednictvím první z níže uvedených adres URL, které může dosáhnout, počínaje shora dolů",
"face_unassigned": "Nepřiřazena", "face_unassigned": "Nepřiřazena",
"failed": "Selhalo", "failed": "Selhalo",
"failed_to_load_assets": "Nepodařilo se načíst položky", "failed_to_load_assets": "Nepodařilo se načíst položky",
@@ -1056,7 +1050,6 @@
"home_page_upload_err_limit": "Lze nahrát nejvýše 30 položek najednou, přeskakuji", "home_page_upload_err_limit": "Lze nahrát nejvýše 30 položek najednou, přeskakuji",
"host": "Hostitel", "host": "Hostitel",
"hour": "Hodina", "hour": "Hodina",
"id": "ID",
"ignore_icloud_photos": "Ignorovat fotografie na iCloudu", "ignore_icloud_photos": "Ignorovat fotografie na iCloudu",
"ignore_icloud_photos_description": "Fotografie uložené na iCloudu se nebudou nahrávat na Immich server", "ignore_icloud_photos_description": "Fotografie uložené na iCloudu se nebudou nahrávat na Immich server",
"image": "Obrázek", "image": "Obrázek",
@@ -1132,7 +1125,7 @@
"local_network": "Místní síť", "local_network": "Místní síť",
"local_network_sheet_info": "Aplikace se při použití zadané sítě Wi-Fi připojí k serveru prostřednictvím tohoto URL", "local_network_sheet_info": "Aplikace se při použití zadané sítě Wi-Fi připojí k serveru prostřednictvím tohoto URL",
"location_permission": "Oprávnění polohy", "location_permission": "Oprávnění polohy",
"location_permission_content": "Aby bylo možné používat funkci automatického přepínání, potřebuje Immich oprávnění k přesné poloze, aby mohl přečíst název aktuální sítě Wi-Fi", "location_permission_content": "Aby bylo možné používat funkci automatického přepínání, potřebuje Immich oprávnění k přesné poloze, aby mohl přečíst název aktuální WiFi sítě",
"location_picker_choose_on_map": "Vyberte na mapě", "location_picker_choose_on_map": "Vyberte na mapě",
"location_picker_latitude_error": "Zadejte platnou zeměpisnou šířku", "location_picker_latitude_error": "Zadejte platnou zeměpisnou šířku",
"location_picker_latitude_hint": "Zadejte vlastní zeměpisnou šířku", "location_picker_latitude_hint": "Zadejte vlastní zeměpisnou šířku",
@@ -1182,8 +1175,8 @@
"manage_your_devices": "Správa přihlášených zařízení", "manage_your_devices": "Správa přihlášených zařízení",
"manage_your_oauth_connection": "Správa OAuth propojení", "manage_your_oauth_connection": "Správa OAuth propojení",
"map": "Mapa", "map": "Mapa",
"map_assets_in_bound": "{count, plural, one {# fotka} few {# fotky} other {# fotek}}", "map_assets_in_bound": "{} fotka",
"map_assets_in_bounds": "{count, plural, one {# fotka} few {# fotky} other {# fotek}}", "map_assets_in_bounds": "{} fotek",
"map_cannot_get_user_location": "Nelze zjistit polohu uživatele", "map_cannot_get_user_location": "Nelze zjistit polohu uživatele",
"map_location_dialog_yes": "Ano", "map_location_dialog_yes": "Ano",
"map_location_picker_page_use_location": "Použít tuto polohu", "map_location_picker_page_use_location": "Použít tuto polohu",
@@ -1197,18 +1190,15 @@
"map_settings": "Nastavení mapy", "map_settings": "Nastavení mapy",
"map_settings_dark_mode": "Tmavý režim", "map_settings_dark_mode": "Tmavý režim",
"map_settings_date_range_option_day": "Posledních 24 hodin", "map_settings_date_range_option_day": "Posledních 24 hodin",
"map_settings_date_range_option_days": "Posledních {days, plural, one {# den} few {# dny} other {# dní}}", "map_settings_date_range_option_days": "Posledních {} dní",
"map_settings_date_range_option_year": "Poslední rok", "map_settings_date_range_option_year": "Poslední rok",
"map_settings_date_range_option_years": "Poslední {years, plural, one {# rok} few {# roky} other {# roky}}", "map_settings_date_range_option_years": "Poslední {} roky",
"map_settings_dialog_title": "Nastavení map", "map_settings_dialog_title": "Nastavení map",
"map_settings_include_show_archived": "Zahrnout archivované", "map_settings_include_show_archived": "Zahrnout archivované",
"map_settings_include_show_partners": "Včetně partnerů", "map_settings_include_show_partners": "Včetně partnerů",
"map_settings_only_show_favorites": "Zobrazit pouze oblíbené", "map_settings_only_show_favorites": "Zobrazit pouze oblíbené",
"map_settings_theme_settings": "Motiv mapy", "map_settings_theme_settings": "Motiv mapy",
"map_zoom_to_see_photos": "Oddálit pro zobrazení fotografií", "map_zoom_to_see_photos": "Oddálit pro zobrazení fotografií",
"mark_all_as_read": "Označit vše jako přečtené",
"mark_as_read": "Označit jako přečtené",
"marked_all_as_read": "Vše označeno jako přečtené",
"matches": "Shody", "matches": "Shody",
"media_type": "Typ média", "media_type": "Typ média",
"memories": "Vzpomínky", "memories": "Vzpomínky",
@@ -1218,7 +1208,7 @@
"memories_start_over": "Začít znovu", "memories_start_over": "Začít znovu",
"memories_swipe_to_close": "Přejetím nahoru zavřete", "memories_swipe_to_close": "Přejetím nahoru zavřete",
"memories_year_ago": "Před rokem", "memories_year_ago": "Před rokem",
"memories_years_ago": "Před {years, plural, one {# rokem} few {# roky} other {# lety}}", "memories_years_ago": "Před {} lety",
"memory": "Vzpomínka", "memory": "Vzpomínka",
"memory_lane_title": "Řada vzpomínek {title}", "memory_lane_title": "Řada vzpomínek {title}",
"menu": "Nabídka", "menu": "Nabídka",
@@ -1235,8 +1225,6 @@
"month": "Měsíc", "month": "Měsíc",
"monthly_title_text_date_format": "LLLL y", "monthly_title_text_date_format": "LLLL y",
"more": "Více", "more": "Více",
"moved_to_archive": "{count, plural, one {Přesunuta # položka} few {Přesunuty # položky} other {Přesunuto # položek}} do archivu",
"moved_to_library": "{count, plural, one {Přesunuta # položka} few {Přesunuty # položky} other {Přesunuto # položek}} do knihovny",
"moved_to_trash": "Přesunuto do koše", "moved_to_trash": "Přesunuto do koše",
"multiselect_grid_edit_date_time_err_read_only": "Nelze upravit datum položek pouze pro čtení, přeskakuji", "multiselect_grid_edit_date_time_err_read_only": "Nelze upravit datum položek pouze pro čtení, přeskakuji",
"multiselect_grid_edit_gps_err_read_only": "Nelze upravit polohu položek pouze pro čtení, přeskakuji", "multiselect_grid_edit_gps_err_read_only": "Nelze upravit polohu položek pouze pro čtení, přeskakuji",
@@ -1251,7 +1239,6 @@
"new_api_key": "Nový API klíč", "new_api_key": "Nový API klíč",
"new_password": "Nové heslo", "new_password": "Nové heslo",
"new_person": "Nová osoba", "new_person": "Nová osoba",
"new_pin_code": "Nový PIN kód",
"new_user_created": "Vytvořen nový uživatel", "new_user_created": "Vytvořen nový uživatel",
"new_version_available": "NOVÁ VERZE K DISPOZICI", "new_version_available": "NOVÁ VERZE K DISPOZICI",
"newest_first": "Nejnovější první", "newest_first": "Nejnovější první",
@@ -1270,8 +1257,6 @@
"no_favorites_message": "Přidejte si oblíbené položky a rychle najděte své nejlepší obrázky a videa", "no_favorites_message": "Přidejte si oblíbené položky a rychle najděte své nejlepší obrázky a videa",
"no_libraries_message": "Vytvořte si externí knihovnu pro zobrazení fotografií a videí", "no_libraries_message": "Vytvořte si externí knihovnu pro zobrazení fotografií a videí",
"no_name": "Bez jména", "no_name": "Bez jména",
"no_notifications": "Žádná oznámení",
"no_people_found": "Nebyli nalezeni žádní odpovídající lidé",
"no_places": "Žádná místa", "no_places": "Žádná místa",
"no_results": "Žádné výsledky", "no_results": "Žádné výsledky",
"no_results_description": "Zkuste použít synonymum nebo obecnější klíčové slovo", "no_results_description": "Zkuste použít synonymum nebo obecnější klíčové slovo",
@@ -1326,7 +1311,7 @@
"partner_page_partner_add_failed": "Nepodařilo se přidat partnera", "partner_page_partner_add_failed": "Nepodařilo se přidat partnera",
"partner_page_select_partner": "Vyberte partnera", "partner_page_select_partner": "Vyberte partnera",
"partner_page_shared_to_title": "Sdíleno", "partner_page_shared_to_title": "Sdíleno",
"partner_page_stop_sharing_content": "{partner} již nebude mít přístup k vašim fotografiím.", "partner_page_stop_sharing_content": "{} již nebude mít přístup k vašim fotografiím.",
"partner_sharing": "Sdílení mezi partnery", "partner_sharing": "Sdílení mezi partnery",
"partners": "Partneři", "partners": "Partneři",
"password": "Heslo", "password": "Heslo",
@@ -1372,9 +1357,6 @@
"photos_count": "{count, plural, one {{count, number} fotka} few {{count, number} fotky} other {{count, number} fotek}}", "photos_count": "{count, plural, one {{count, number} fotka} few {{count, number} fotky} other {{count, number} fotek}}",
"photos_from_previous_years": "Fotky z předchozích let", "photos_from_previous_years": "Fotky z předchozích let",
"pick_a_location": "Vyberte polohu", "pick_a_location": "Vyberte polohu",
"pin_code_changed_successfully": "PIN kód byl úspěšně změněn",
"pin_code_reset_successfully": "PIN kód úspěšně resetován",
"pin_code_setup_successfully": "PIN kód úspěšně nastaven",
"place": "Místo", "place": "Místo",
"places": "Místa", "places": "Místa",
"places_count": "{count, plural, one {{count, number} místo} few {{count, number} místa} other {{count, number} míst}}", "places_count": "{count, plural, one {{count, number} místo} few {{count, number} místa} other {{count, number} míst}}",
@@ -1392,7 +1374,6 @@
"previous_or_next_photo": "Předchozí nebo další fotka", "previous_or_next_photo": "Předchozí nebo další fotka",
"primary": "Primární", "primary": "Primární",
"privacy": "Soukromí", "privacy": "Soukromí",
"profile": "Profil",
"profile_drawer_app_logs": "Logy", "profile_drawer_app_logs": "Logy",
"profile_drawer_client_out_of_date_major": "Mobilní aplikace je zastaralá. Aktualizujte ji na nejnovější hlavní verzi.", "profile_drawer_client_out_of_date_major": "Mobilní aplikace je zastaralá. Aktualizujte ji na nejnovější hlavní verzi.",
"profile_drawer_client_out_of_date_minor": "Mobilní aplikace je zastaralá. Aktualizujte ji na nejnovější verzi.", "profile_drawer_client_out_of_date_minor": "Mobilní aplikace je zastaralá. Aktualizujte ji na nejnovější verzi.",
@@ -1406,7 +1387,7 @@
"public_share": "Veřejné sdílení", "public_share": "Veřejné sdílení",
"purchase_account_info": "Podporovatel", "purchase_account_info": "Podporovatel",
"purchase_activated_subtitle": "Děkujeme vám za podporu aplikace Immich a softwaru s otevřeným zdrojovým kódem", "purchase_activated_subtitle": "Děkujeme vám za podporu aplikace Immich a softwaru s otevřeným zdrojovým kódem",
"purchase_activated_time": "Aktivováno dne {date}", "purchase_activated_time": "Aktivováno dne {date, date}",
"purchase_activated_title": "Váš klíč byl úspěšně aktivován", "purchase_activated_title": "Váš klíč byl úspěšně aktivován",
"purchase_button_activate": "Aktivovat", "purchase_button_activate": "Aktivovat",
"purchase_button_buy": "Koupit", "purchase_button_buy": "Koupit",
@@ -1451,8 +1432,6 @@
"recent_searches": "Nedávná vyhledávání", "recent_searches": "Nedávná vyhledávání",
"recently_added": "Nedávno přidané", "recently_added": "Nedávno přidané",
"recently_added_page_title": "Nedávno přidané", "recently_added_page_title": "Nedávno přidané",
"recently_taken": "Nedávno pořízené",
"recently_taken_page_title": "Nedávno pořízené",
"refresh": "Obnovit", "refresh": "Obnovit",
"refresh_encoded_videos": "Obnovit kódovaná videa", "refresh_encoded_videos": "Obnovit kódovaná videa",
"refresh_faces": "Obnovit obličeje", "refresh_faces": "Obnovit obličeje",
@@ -1495,7 +1474,6 @@
"reset": "Výchozí", "reset": "Výchozí",
"reset_password": "Obnovit heslo", "reset_password": "Obnovit heslo",
"reset_people_visibility": "Obnovit viditelnost lidí", "reset_people_visibility": "Obnovit viditelnost lidí",
"reset_pin_code": "Resetovat PIN kód",
"reset_to_default": "Obnovit výchozí nastavení", "reset_to_default": "Obnovit výchozí nastavení",
"resolve_duplicates": "Vyřešit duplicity", "resolve_duplicates": "Vyřešit duplicity",
"resolved_all_duplicates": "Vyřešeny všechny duplicity", "resolved_all_duplicates": "Vyřešeny všechny duplicity",
@@ -1588,7 +1566,6 @@
"select_keep_all": "Vybrat ponechat vše", "select_keep_all": "Vybrat ponechat vše",
"select_library_owner": "Vyberte vlastníka knihovny", "select_library_owner": "Vyberte vlastníka knihovny",
"select_new_face": "Výběr nového obličeje", "select_new_face": "Výběr nového obličeje",
"select_person_to_tag": "Vyberte osobu, kterou chcete označit",
"select_photos": "Vybrat fotky", "select_photos": "Vybrat fotky",
"select_trash_all": "Vybrat vyhodit vše", "select_trash_all": "Vybrat vyhodit vše",
"select_user_for_sharing_page_err_album": "Nepodařilo se vytvořit album", "select_user_for_sharing_page_err_album": "Nepodařilo se vytvořit album",
@@ -1619,12 +1596,12 @@
"setting_languages_apply": "Použít", "setting_languages_apply": "Použít",
"setting_languages_subtitle": "Změna jazyka aplikace", "setting_languages_subtitle": "Změna jazyka aplikace",
"setting_languages_title": "Jazyk", "setting_languages_title": "Jazyk",
"setting_notifications_notify_failures_grace_period": "Oznámení o selhání zálohování na pozadí: {duration}", "setting_notifications_notify_failures_grace_period": "Oznámení o selhání zálohování na pozadí: {}",
"setting_notifications_notify_hours": "{count, plural, one {# hodina} few {# hodiny} other {# hodin}}", "setting_notifications_notify_hours": "{} hodin",
"setting_notifications_notify_immediately": "okamžitě", "setting_notifications_notify_immediately": "okamžitě",
"setting_notifications_notify_minutes": "{count, plural, one {# minuta} few {# minuty} other {# minut}}", "setting_notifications_notify_minutes": "{} minut",
"setting_notifications_notify_never": "nikdy", "setting_notifications_notify_never": "nikdy",
"setting_notifications_notify_seconds": "{count, plural, one {# sekunda} few {# sekundy} other {# sekund}}", "setting_notifications_notify_seconds": "{} sekundy",
"setting_notifications_single_progress_subtitle": "Podrobné informace o průběhu nahrávání položky", "setting_notifications_single_progress_subtitle": "Podrobné informace o průběhu nahrávání položky",
"setting_notifications_single_progress_title": "Zobrazit průběh detailů zálohování na pozadí", "setting_notifications_single_progress_title": "Zobrazit průběh detailů zálohování na pozadí",
"setting_notifications_subtitle": "Přizpůsobení předvoleb oznámení", "setting_notifications_subtitle": "Přizpůsobení předvoleb oznámení",
@@ -1636,10 +1613,9 @@
"settings": "Nastavení", "settings": "Nastavení",
"settings_require_restart": "Pro použití tohoto nastavení restartujte Immich", "settings_require_restart": "Pro použití tohoto nastavení restartujte Immich",
"settings_saved": "Nastavení uloženo", "settings_saved": "Nastavení uloženo",
"setup_pin_code": "Nastavení PIN kódu",
"share": "Sdílet", "share": "Sdílet",
"share_add_photos": "Přidat fotografie", "share_add_photos": "Přidat fotografie",
"share_assets_selected": "{count} vybráno", "share_assets_selected": "{} vybráno",
"share_dialog_preparing": "Připravuji...", "share_dialog_preparing": "Připravuji...",
"shared": "Sdílené", "shared": "Sdílené",
"shared_album_activities_input_disable": "Komentář je vypnutý", "shared_album_activities_input_disable": "Komentář je vypnutý",
@@ -1653,32 +1629,32 @@
"shared_by_user": "Sdílel(a) {user}", "shared_by_user": "Sdílel(a) {user}",
"shared_by_you": "Sdíleli jste", "shared_by_you": "Sdíleli jste",
"shared_from_partner": "Fotky od {partner}", "shared_from_partner": "Fotky od {partner}",
"shared_intent_upload_button_progress_text": "{current} / {total} nahráno", "shared_intent_upload_button_progress_text": "{} / {} nahráno",
"shared_link_app_bar_title": "Sdílené odkazy", "shared_link_app_bar_title": "Sdílené odkazy",
"shared_link_clipboard_copied_massage": "Zkopírováno do schránky", "shared_link_clipboard_copied_massage": "Zkopírováno do schránky",
"shared_link_clipboard_text": "Odkaz: {link}\nHeslo: {password}", "shared_link_clipboard_text": "Odkaz: {}\nHeslo: {}",
"shared_link_create_error": "Chyba při vytváření sdíleného odkazu", "shared_link_create_error": "Chyba při vytváření sdíleného odkazu",
"shared_link_edit_description_hint": "Zadejte popis sdílení", "shared_link_edit_description_hint": "Zadejte popis sdílení",
"shared_link_edit_expire_after_option_day": "1 den", "shared_link_edit_expire_after_option_day": "1 den",
"shared_link_edit_expire_after_option_days": "{count, plural, one {# den} few {# dny} other {# dní}}", "shared_link_edit_expire_after_option_days": "{} dní",
"shared_link_edit_expire_after_option_hour": "1 hodina", "shared_link_edit_expire_after_option_hour": "1 hodina",
"shared_link_edit_expire_after_option_hours": "{count, plural, one {# hodina} few {# hodiny} other {# hodin}}", "shared_link_edit_expire_after_option_hours": "{} hodin",
"shared_link_edit_expire_after_option_minute": "1 minuta", "shared_link_edit_expire_after_option_minute": "1 minuta",
"shared_link_edit_expire_after_option_minutes": "{count, plural, one {# minuta} few {# minuty} other {# minut}}", "shared_link_edit_expire_after_option_minutes": "{} minut",
"shared_link_edit_expire_after_option_months": "{count, plural, one {# měsíc} few {# měsíce} other {# měsíců}}", "shared_link_edit_expire_after_option_months": "{} měsíce",
"shared_link_edit_expire_after_option_year": "{count, plural, one {# rok} few {# roky} other {# let}}", "shared_link_edit_expire_after_option_year": "{} rok",
"shared_link_edit_password_hint": "Zadejte heslo pro sdílení", "shared_link_edit_password_hint": "Zadejte heslo pro sdílení",
"shared_link_edit_submit_button": "Aktualizovat odkaz", "shared_link_edit_submit_button": "Aktualizovat odkaz",
"shared_link_error_server_url_fetch": "Nelze načíst url serveru", "shared_link_error_server_url_fetch": "Nelze načíst url serveru",
"shared_link_expires_day": "Vyprší za {count, plural, one {# den} few {# dny} other {# dní}}", "shared_link_expires_day": "Vyprší za {} den",
"shared_link_expires_days": "Vyprší za {count, plural, one {# den} few {# dny} other {# dní}}", "shared_link_expires_days": "Vyprší za {} dní",
"shared_link_expires_hour": "Vyprší za {count, plural, one {# hodina} few {# hodiny} other {# hodin}}", "shared_link_expires_hour": "Vyprší za {} hodinu",
"shared_link_expires_hours": "Vyprší za {count, plural, one {# hodina} few {# hodiny} other {# hodin}}", "shared_link_expires_hours": "Vyprší za {} hodin",
"shared_link_expires_minute": "Vyprší za {count, plural, one {# minuta} few {# minuty} other {# minut}}", "shared_link_expires_minute": "Vyprší za {} minutu",
"shared_link_expires_minutes": "Vyprší za {count, plural, one {# minuta} few {# minuty} other {# minut}}", "shared_link_expires_minutes": "Vyprší za {} minut",
"shared_link_expires_never": "Platnost ∞", "shared_link_expires_never": "Platnost ∞",
"shared_link_expires_second": "Vyprší za {count, plural, one {# sekunda} few {# sekundy} other {# sekund}}", "shared_link_expires_second": "Vyprší za {} sekundu",
"shared_link_expires_seconds": "Vyprší za {count, plural, one {# sekunda} few {# sekundy} other {# sekund}}", "shared_link_expires_seconds": "Vyprší za {} sekund",
"shared_link_individual_shared": "Individuální sdílení", "shared_link_individual_shared": "Individuální sdílení",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Spravovat sdílené odkazy", "shared_link_manage_links": "Spravovat sdílené odkazy",
@@ -1753,7 +1729,6 @@
"stop_sharing_photos_with_user": "Přestat sdílet své fotky s tímto uživatelem", "stop_sharing_photos_with_user": "Přestat sdílet své fotky s tímto uživatelem",
"storage": "Velikost úložiště", "storage": "Velikost úložiště",
"storage_label": "Štítek úložiště", "storage_label": "Štítek úložiště",
"storage_quota": "Kvóta úložiště",
"storage_usage": "Využito {used} z {available}", "storage_usage": "Využito {used} z {available}",
"submit": "Odeslat", "submit": "Odeslat",
"suggestions": "Návrhy", "suggestions": "Návrhy",
@@ -1780,7 +1755,7 @@
"theme_selection": "Výběr motivu", "theme_selection": "Výběr motivu",
"theme_selection_description": "Automatické nastavení světlého nebo tmavého motivu podle systémových preferencí prohlížeče", "theme_selection_description": "Automatické nastavení světlého nebo tmavého motivu podle systémových preferencí prohlížeče",
"theme_setting_asset_list_storage_indicator_title": "Zobrazit indikátor úložiště na dlaždicích položek", "theme_setting_asset_list_storage_indicator_title": "Zobrazit indikátor úložiště na dlaždicích položek",
"theme_setting_asset_list_tiles_per_row_title": "Počet položek na řádek ({count})", "theme_setting_asset_list_tiles_per_row_title": "Počet položek na řádek ({})",
"theme_setting_colorful_interface_subtitle": "Použít hlavní barvu na povrchy pozadí.", "theme_setting_colorful_interface_subtitle": "Použít hlavní barvu na povrchy pozadí.",
"theme_setting_colorful_interface_title": "Barevné rozhraní", "theme_setting_colorful_interface_title": "Barevné rozhraní",
"theme_setting_image_viewer_quality_subtitle": "Přizpůsobení kvality detailů prohlížeče obrázků", "theme_setting_image_viewer_quality_subtitle": "Přizpůsobení kvality detailů prohlížeče obrázků",
@@ -1815,15 +1790,13 @@
"trash_no_results_message": "Zde se zobrazí odstraněné fotky a videa.", "trash_no_results_message": "Zde se zobrazí odstraněné fotky a videa.",
"trash_page_delete_all": "Smazat všechny", "trash_page_delete_all": "Smazat všechny",
"trash_page_empty_trash_dialog_content": "Chcete vyprázdnit svoje vyhozené položky? Tyto položky budou trvale odstraněny z aplikace", "trash_page_empty_trash_dialog_content": "Chcete vyprázdnit svoje vyhozené položky? Tyto položky budou trvale odstraněny z aplikace",
"trash_page_info": "Vyhozené položky budou trvale smazány po {count, plural, one {# dni} other {# dnech}}", "trash_page_info": "Vyhozené položky budou trvale smazány po {} dnech",
"trash_page_no_assets": "Žádné vyhozené položky", "trash_page_no_assets": "Žádné vyhozené položky",
"trash_page_restore_all": "Obnovit všechny", "trash_page_restore_all": "Obnovit všechny",
"trash_page_select_assets_btn": "Vybrat položky", "trash_page_select_assets_btn": "Vybrat položky",
"trash_page_title": "Koš ({count})", "trash_page_title": "Koš ({})",
"trashed_items_will_be_permanently_deleted_after": "Smazané položky budou trvale odstraněny po {days, plural, one {# dni} other {# dnech}}.", "trashed_items_will_be_permanently_deleted_after": "Smazané položky budou trvale odstraněny po {days, plural, one {# dni} other {# dnech}}.",
"type": "Typ", "type": "Typ",
"unable_to_change_pin_code": "Nelze změnit PIN kód",
"unable_to_setup_pin_code": "Nelze nastavit PIN kód",
"unarchive": "Odarchivovat", "unarchive": "Odarchivovat",
"unarchived_count": "{count, plural, one {Odarchivována #} few {Odarchivovány #} other {Odarchivováno #}}", "unarchived_count": "{count, plural, one {Odarchivována #} few {Odarchivovány #} other {Odarchivováno #}}",
"unfavorite": "Zrušit oblíbení", "unfavorite": "Zrušit oblíbení",
@@ -1847,7 +1820,6 @@
"untracked_files": "Nesledované soubory", "untracked_files": "Nesledované soubory",
"untracked_files_decription": "Tyto soubory nejsou aplikaci známy. Mohou být výsledkem neúspěšných přesunů, přerušeného nahrávání nebo mohou zůstat pozadu kvůli chybě", "untracked_files_decription": "Tyto soubory nejsou aplikaci známy. Mohou být výsledkem neúspěšných přesunů, přerušeného nahrávání nebo mohou zůstat pozadu kvůli chybě",
"up_next": "To je prozatím vše", "up_next": "To je prozatím vše",
"updated_at": "Aktualizováno",
"updated_password": "Heslo aktualizováno", "updated_password": "Heslo aktualizováno",
"upload": "Nahrát", "upload": "Nahrát",
"upload_concurrency": "Souběžnost nahrávání", "upload_concurrency": "Souběžnost nahrávání",
@@ -1860,18 +1832,15 @@
"upload_status_errors": "Chyby", "upload_status_errors": "Chyby",
"upload_status_uploaded": "Nahráno", "upload_status_uploaded": "Nahráno",
"upload_success": "Nahrání proběhlo úspěšně, obnovením stránky se zobrazí nově nahrané položky.", "upload_success": "Nahrání proběhlo úspěšně, obnovením stránky se zobrazí nově nahrané položky.",
"upload_to_immich": "Nahrát do Immich ({count})", "upload_to_immich": "Nahrát do Immiche ({})",
"uploading": "Nahrávání", "uploading": "Nahrávání",
"url": "URL", "url": "URL",
"usage": "Využití", "usage": "Využití",
"use_current_connection": "použít aktuální připojení", "use_current_connection": "použít aktuální připojení",
"use_custom_date_range": "Použít vlastní rozsah dat", "use_custom_date_range": "Použít vlastní rozsah dat",
"user": "Uživatel", "user": "Uživatel",
"user_has_been_deleted": "Tento uživatel byl smazán.",
"user_id": "ID uživatele", "user_id": "ID uživatele",
"user_liked": "Uživateli {user} se {type, select, photo {líbila tato fotka} video {líbilo toto video} asset {líbila tato položka} other {to líbilo}}", "user_liked": "Uživateli {user} se {type, select, photo {líbila tato fotka} video {líbilo toto video} asset {líbila tato položka} other {to líbilo}}",
"user_pin_code_settings": "PIN kód",
"user_pin_code_settings_description": "Správa vašeho PIN kódu",
"user_purchase_settings": "Nákup", "user_purchase_settings": "Nákup",
"user_purchase_settings_description": "Správa vašeho nákupu", "user_purchase_settings_description": "Správa vašeho nákupu",
"user_role_set": "Uživatel {user} nastaven jako {role}", "user_role_set": "Uživatel {user} nastaven jako {role}",
@@ -1920,11 +1889,11 @@
"week": "Týden", "week": "Týden",
"welcome": "Vítejte", "welcome": "Vítejte",
"welcome_to_immich": "Vítejte v Immichi", "welcome_to_immich": "Vítejte v Immichi",
"wifi_name": "Název Wi-Fi", "wifi_name": "Název WiFi",
"year": "Rok", "year": "Rok",
"years_ago": "Před {years, plural, one {rokem} other {# lety}}", "years_ago": "Před {years, plural, one {rokem} other {# lety}}",
"yes": "Ano", "yes": "Ano",
"you_dont_have_any_shared_links": "Nemáte žádné sdílené odkazy", "you_dont_have_any_shared_links": "Nemáte žádné sdílené odkazy",
"your_wifi_name": "Název vaší Wi-Fi", "your_wifi_name": "Váš název WiFi",
"zoom_image": "Zvětšit obrázek" "zoom_image": "Zvětšit obrázek"
} }

View File

@@ -72,9 +72,6 @@
"image_format_description": "WebP producerer mindre filer end JPEG, men er langsommere at komprimere.", "image_format_description": "WebP producerer mindre filer end JPEG, men er langsommere at komprimere.",
"image_fullsize_description": "Fuld størrelses billede uden metadata, brugt når zoomet ind", "image_fullsize_description": "Fuld størrelses billede uden metadata, brugt når zoomet ind",
"image_fullsize_enabled": "Aktiver fuld størrelses billede generering", "image_fullsize_enabled": "Aktiver fuld størrelses billede generering",
"image_fullsize_enabled_description": "Generer fuld-størrelses billede for ikke-web-venlige formater. Når \"Foretræk indlejret forhåndsvisning\" er slået til, bliver indlejrede forhåndsvisninger brugt direkte uden konvertering. Påvirker ikke web-venlige formater såsom JPEG.",
"image_fullsize_quality_description": "Fuld-størrelses billede kvalitet fra 1-100. Højere er bedre, men producerer større filer.",
"image_fullsize_title": "Full-størrelses billede indstillinger",
"image_prefer_embedded_preview": "Foretræk indlejret forhåndsvisning", "image_prefer_embedded_preview": "Foretræk indlejret forhåndsvisning",
"image_prefer_embedded_preview_setting_description": "Brug indlejrede forhåndsvisninger i RAW fotos som input til billedbehandling og når det er tilgængeligt. Dette kan give mere nøjagtige farver for nogle billeder, men kvaliteten af forhåndsvisningen er kameraafhængig, og billedet kan have flere komprimeringsartefakter.", "image_prefer_embedded_preview_setting_description": "Brug indlejrede forhåndsvisninger i RAW fotos som input til billedbehandling og når det er tilgængeligt. Dette kan give mere nøjagtige farver for nogle billeder, men kvaliteten af forhåndsvisningen er kameraafhængig, og billedet kan have flere komprimeringsartefakter.",
"image_prefer_wide_gamut": "Foretrækker bred farveskala", "image_prefer_wide_gamut": "Foretrækker bred farveskala",
@@ -192,13 +189,20 @@
"oauth_auto_register": "Autoregistrér", "oauth_auto_register": "Autoregistrér",
"oauth_auto_register_description": "Registrér automatisk nye brugere efter at have logget ind med OAuth", "oauth_auto_register_description": "Registrér automatisk nye brugere efter at have logget ind med OAuth",
"oauth_button_text": "Knaptekst", "oauth_button_text": "Knaptekst",
"oauth_client_id": "Kunde-ID",
"oauth_client_secret": "Kundehemmelighed",
"oauth_enable_description": "Log ind med OAuth", "oauth_enable_description": "Log ind med OAuth",
"oauth_issuer_url": "Udsteder-URL",
"oauth_mobile_redirect_uri": "Mobilomdiregerings-URL", "oauth_mobile_redirect_uri": "Mobilomdiregerings-URL",
"oauth_mobile_redirect_uri_override": "Tilsidesættelse af mobil omdiregerings-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_mobile_redirect_uri_override_description": "Aktiver, når OAuth-udbyderen ikke tillader en mobil URI, som '{callback}'",
"oauth_profile_signing_algorithm": "Log-ind-algoritme",
"oauth_profile_signing_algorithm_description": "Algoritme til signering af brugerprofilen.",
"oauth_scope": "Omfang",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "Administrer OAuth login-indstillinger", "oauth_settings_description": "Administrer OAuth login-indstillinger",
"oauth_settings_more_details": "Læs flere detaljer om funktionen i <link>dokumentationen</link>.", "oauth_settings_more_details": "Læs flere detaljer om funktionen i <link>dokumentationen</link>.",
"oauth_signing_algorithm": "Signeringsalgoritme",
"oauth_storage_label_claim": "Lagringsmærkat fordring", "oauth_storage_label_claim": "Lagringsmærkat fordring",
"oauth_storage_label_claim_description": "Sæt automatisk brugerens lagringsmærkat til denne fordrings værdi.", "oauth_storage_label_claim_description": "Sæt automatisk brugerens lagringsmærkat til denne fordrings værdi.",
"oauth_storage_quota_claim": "Lagringskvotefordring", "oauth_storage_quota_claim": "Lagringskvotefordring",
@@ -1374,7 +1378,7 @@
"public_share": "Offentlig deling", "public_share": "Offentlig deling",
"purchase_account_info": "Supporter", "purchase_account_info": "Supporter",
"purchase_activated_subtitle": "Tak fordi du støtter Immich og open source-software", "purchase_activated_subtitle": "Tak fordi du støtter Immich og open source-software",
"purchase_activated_time": "Aktiveret den {date}", "purchase_activated_time": "Aktiveret den {date, date}",
"purchase_activated_title": "Din nøgle er blevet aktiveret", "purchase_activated_title": "Din nøgle er blevet aktiveret",
"purchase_button_activate": "Aktiver", "purchase_button_activate": "Aktiver",
"purchase_button_buy": "Køb", "purchase_button_buy": "Køb",

View File

@@ -53,7 +53,6 @@
"confirm_email_below": "Bestätige, indem du unten \"{email}\" eingibst", "confirm_email_below": "Bestätige, indem du unten \"{email}\" eingibst",
"confirm_reprocess_all_faces": "Bist du sicher, dass du alle Gesichter erneut verarbeiten möchtest? Dies löscht auch alle bereits benannten Personen.", "confirm_reprocess_all_faces": "Bist du sicher, dass du alle Gesichter erneut verarbeiten möchtest? Dies löscht auch alle bereits benannten Personen.",
"confirm_user_password_reset": "Bist du sicher, dass du das Passwort für {user} zurücksetzen möchtest?", "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?",
"create_job": "Aufgabe erstellen", "create_job": "Aufgabe erstellen",
"cron_expression": "Cron-Ausdruck", "cron_expression": "Cron-Ausdruck",
"cron_expression_description": "Stellen Sie das Scanintervall im Cron-Format ein. Weitere Informationen finden Sie beispielsweise unter <link>Crontab Guru</link>", "cron_expression_description": "Stellen Sie das Scanintervall im Cron-Format ein. Weitere Informationen finden Sie beispielsweise unter <link>Crontab Guru</link>",
@@ -107,7 +106,7 @@
"library_scanning_enable_description": "Regelmäßiges Scannen der Bibliothek aktivieren", "library_scanning_enable_description": "Regelmäßiges Scannen der Bibliothek aktivieren",
"library_settings": "Externe Bibliothek", "library_settings": "Externe Bibliothek",
"library_settings_description": "Einstellungen externer Bibliotheken verwalten", "library_settings_description": "Einstellungen externer Bibliotheken verwalten",
"library_tasks_description": "Überprüfe externe Bibliotheken auf neue und/oder veränderte Medien", "library_tasks_description": "Überprüfe externe Bibliotheken auf neue oder veränderte Medien",
"library_watching_enable_description": "Überwache externe Bibliotheken auf Dateiänderungen", "library_watching_enable_description": "Überwache externe Bibliotheken auf Dateiänderungen",
"library_watching_settings": "Bibliotheksüberwachung (EXPERIMENTELL)", "library_watching_settings": "Bibliotheksüberwachung (EXPERIMENTELL)",
"library_watching_settings_description": "Automatisch auf geänderte Dateien prüfen", "library_watching_settings_description": "Automatisch auf geänderte Dateien prüfen",
@@ -193,28 +192,32 @@
"oauth_auto_register": "Automatische Registrierung", "oauth_auto_register": "Automatische Registrierung",
"oauth_auto_register_description": "Automatische Registrierung neuer Benutzer nach der OAuth-Anmeldung", "oauth_auto_register_description": "Automatische Registrierung neuer Benutzer nach der OAuth-Anmeldung",
"oauth_button_text": "Button-Text", "oauth_button_text": "Button-Text",
"oauth_client_secret_description": "Erforderlich wenn PKCE (Proof Key for Code Exchange) nicht vom OAuth- Anbieter unterstützt wird", "oauth_client_id": "Client-ID",
"oauth_client_secret": "Client-Geheimnis",
"oauth_enable_description": "Anmeldung mit OAuth", "oauth_enable_description": "Anmeldung mit OAuth",
"oauth_issuer_url": "Aussteller-URL",
"oauth_mobile_redirect_uri": "Mobile Umleitungs-URI", "oauth_mobile_redirect_uri": "Mobile Umleitungs-URI",
"oauth_mobile_redirect_uri_override": "Mobile Umleitungs-URI überschreiben", "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_mobile_redirect_uri_override_description": "Einschalten, wenn der OAuth-Anbieter keine mobile URI wie '{callback}' erlaubt",
"oauth_profile_signing_algorithm": "Algorithmus zur Profilsignierung",
"oauth_profile_signing_algorithm_description": "Dieser Algorithmus wird für die Signatur des Benutzerprofils verwendet.",
"oauth_scope": "Umfang",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "OAuth-Anmeldeeinstellungen verwalten", "oauth_settings_description": "OAuth-Anmeldeeinstellungen verwalten",
"oauth_settings_more_details": "Weitere Informationen zu dieser Funktion findest du in der <link>Dokumentation</link>.", "oauth_settings_more_details": "Weitere Informationen zu dieser Funktion findest du in der <link>Dokumentation</link>.",
"oauth_signing_algorithm": "Signier-Algorithmus",
"oauth_storage_label_claim": "Speicherpfadbezeichnung", "oauth_storage_label_claim": "Speicherpfadbezeichnung",
"oauth_storage_label_claim_description": "Die Speicherpfadbezeichnung des Benutzers automatisch auf den Wert dieser Eingabe setzen.", "oauth_storage_label_claim_description": "Die Speicherpfadbezeichnung des Benutzers automatisch auf den Wert dieser Eingabe setzen.",
"oauth_storage_quota_claim": "Speicherkontingentangabe", "oauth_storage_quota_claim": "Speicherkontingentangabe",
"oauth_storage_quota_claim_description": "Setzen Sie das Speicherkontingent des Benutzers automatisch auf den angegebenen Wert.", "oauth_storage_quota_claim_description": "Setzen Sie das Speicherkontingent des Benutzers automatisch auf den angegebenen Wert.",
"oauth_storage_quota_default": "Standard-Speicherplatzkontingent (GiB)", "oauth_storage_quota_default": "Standard-Speicherplatzkontingent (GiB)",
"oauth_storage_quota_default_description": "Kontingent in GiB, das verwendet werden soll, wenn keines übermittelt wird (gib 0 für ein unbegrenztes Kontingent ein).", "oauth_storage_quota_default_description": "Kontingent in GiB, das verwendet werden soll, wenn keines übermittelt wird (gib 0 für ein unbegrenztes Kontingent ein).",
"oauth_timeout": "Zeitüberschreitung bei Anfrage",
"oauth_timeout_description": "Zeitüberschreitung für Anfragen in Millisekunden",
"offline_paths": "Offline-Pfade", "offline_paths": "Offline-Pfade",
"offline_paths_description": "Dies könnte durch manuelles Löschen von Dateien, die nicht Teil einer externen Bibliothek sind, verursacht sein.", "offline_paths_description": "Die Ergebnisse könnten durch manuelles Löschen von Dateien, die nicht Teil einer externen Bibliothek sind, verursacht sein.",
"password_enable_description": "Mit E-Mail und Passwort anmelden", "password_enable_description": "Login mit E-Mail und Passwort",
"password_settings": "Passwort-Anmeldung", "password_settings": "Passwort-Login",
"password_settings_description": "Passwort-Anmeldeeinstellungen verwalten", "password_settings_description": "Passwort-Anmeldeeinstellungen verwalten",
"paths_validated_successfully": "Alle Pfade erfolgreich überprüft", "paths_validated_successfully": "Alle Pfade wurden erfolgreich validiert",
"person_cleanup_job": "Personen aufräumen", "person_cleanup_job": "Personen aufräumen",
"quota_size_gib": "Kontingent (GiB)", "quota_size_gib": "Kontingent (GiB)",
"refreshing_all_libraries": "Alle Bibliotheken aktualisieren", "refreshing_all_libraries": "Alle Bibliotheken aktualisieren",
@@ -248,7 +251,7 @@
"storage_template_hash_verification_enabled_description": "Aktiviert die Hash-Verifizierung. Deaktiviere diese Option nur, wenn du dir über die damit verbundenen Auswirkungen im Klaren bist", "storage_template_hash_verification_enabled_description": "Aktiviert die Hash-Verifizierung. Deaktiviere diese Option nur, wenn du dir über die damit verbundenen Auswirkungen im Klaren bist",
"storage_template_migration": "Migration von Speichervorlagen", "storage_template_migration": "Migration von Speichervorlagen",
"storage_template_migration_description": "Diese Aufgabe wendet die aktuelle <link>{template}</link> auf zuvor hochgeladene Dateien an", "storage_template_migration_description": "Diese Aufgabe wendet die aktuelle <link>{template}</link> auf zuvor hochgeladene Dateien an",
"storage_template_migration_info": "Die Speichervorlage wird alle Dateierweiterungen in Kleinbuchstaben umwandeln. Vorlagenänderungen gelten nur für neue Dateien. Um die Vorlage rückwirkend auf bereits hochgeladene Assets anzuwenden, führe den <link>{job}</link> aus.", "storage_template_migration_info": "Die Vorlage wird alle Dateierweiterungen in Kleinbuchstaben umwandeln. Vorlagenänderungen gelten nur für neue Dateien. Um die Vorlage rückwirkend auf bereits hochgeladene Assets anzuwenden, führe den <link>{job}</link> aus.",
"storage_template_migration_job": "Speichervorlagenmigrations-Aufgabe", "storage_template_migration_job": "Speichervorlagenmigrations-Aufgabe",
"storage_template_more_details": "Weitere Details zu dieser Funktion findest du unter <template-link>Speichervorlage</template-link> und dessen <implications-link>Implikationen</implications-link>", "storage_template_more_details": "Weitere Details zu dieser Funktion findest du unter <template-link>Speichervorlage</template-link> und dessen <implications-link>Implikationen</implications-link>",
"storage_template_onboarding_description": "Wenn aktiviert, sortiert diese Funktion Dateien automatisch basierend auf einer benutzerdefinierten Vorlage. Aufgrund von Stabilitätsproblemen ist die Funktion standardmäßig deaktiviert. Weitere Informationen findest du in der <link>Dokumentation</link>.", "storage_template_onboarding_description": "Wenn aktiviert, sortiert diese Funktion Dateien automatisch basierend auf einer benutzerdefinierten Vorlage. Aufgrund von Stabilitätsproblemen ist die Funktion standardmäßig deaktiviert. Weitere Informationen findest du in der <link>Dokumentation</link>.",
@@ -349,7 +352,6 @@
"user_delete_delay_settings_description": "Gibt die Anzahl der Tage bis zur endgültigen Löschung eines Kontos und seiner Dateien an. Der Benutzerlöschauftrag wird täglich um Mitternacht ausgeführt, um zu überprüfen, ob Nutzer zur Löschung bereit sind. Änderungen an dieser Einstellung werden erst bei der nächsten Ausführung berücksichtigt.", "user_delete_delay_settings_description": "Gibt die Anzahl der Tage bis zur endgültigen Löschung eines Kontos und seiner Dateien an. Der Benutzerlöschauftrag wird täglich um Mitternacht ausgeführt, um zu überprüfen, ob Nutzer zur Löschung bereit sind. Änderungen an dieser Einstellung werden erst bei der nächsten Ausführung berücksichtigt.",
"user_delete_immediately": "Das Konto und die Dateien von <b>{user}</b> werden <b>sofort</b> für eine permanente Löschung in die Warteschlange gestellt.", "user_delete_immediately": "Das Konto und die Dateien von <b>{user}</b> werden <b>sofort</b> für eine permanente Löschung in die Warteschlange gestellt.",
"user_delete_immediately_checkbox": "Benutzer und Dateien zur sofortigen Löschung in die Warteschlange stellen", "user_delete_immediately_checkbox": "Benutzer und Dateien zur sofortigen Löschung in die Warteschlange stellen",
"user_details": "Benutzerdetails",
"user_management": "Benutzerverwaltung", "user_management": "Benutzerverwaltung",
"user_password_has_been_reset": "Das Passwort des Benutzers wurde zurückgesetzt:", "user_password_has_been_reset": "Das Passwort des Benutzers wurde zurückgesetzt:",
"user_password_reset_description": "Bitte gib dem Benutzer das temporäre Passwort und informiere ihn, dass das Passwort beim nächsten Login geändert werden muss.", "user_password_reset_description": "Bitte gib dem Benutzer das temporäre Passwort und informiere ihn, dass das Passwort beim nächsten Login geändert werden muss.",
@@ -371,7 +373,7 @@
"advanced": "Erweitert", "advanced": "Erweitert",
"advanced_settings_enable_alternate_media_filter_subtitle": "Verwende diese Option, um Medien während der Synchronisierung nach anderen Kriterien zu filtern. Versuchen dies nur, wenn Probleme mit der Erkennung aller Alben durch die App auftreten.", "advanced_settings_enable_alternate_media_filter_subtitle": "Verwende diese Option, um Medien während der Synchronisierung nach anderen Kriterien zu filtern. Versuchen dies nur, wenn Probleme mit der Erkennung aller Alben durch die App auftreten.",
"advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTELL] Benutze alternativen Filter für Synchronisierung der Gerätealben", "advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTELL] Benutze alternativen Filter für Synchronisierung der Gerätealben",
"advanced_settings_log_level_title": "Log-Level: {level}", "advanced_settings_log_level_title": "Log-Level: {name}",
"advanced_settings_prefer_remote_subtitle": "Einige Geräte sind sehr langsam beim Laden von Miniaturbildern direkt aus dem Gerät. Aktivieren Sie diese Einstellung, um stattdessen die Server-Bilder zu laden.", "advanced_settings_prefer_remote_subtitle": "Einige Geräte sind sehr langsam beim Laden von Miniaturbildern direkt aus dem Gerät. Aktivieren Sie diese Einstellung, um stattdessen die Server-Bilder zu laden.",
"advanced_settings_prefer_remote_title": "Server-Bilder bevorzugen", "advanced_settings_prefer_remote_title": "Server-Bilder bevorzugen",
"advanced_settings_proxy_headers_subtitle": "Definiere einen Proxy-Header, den Immich bei jeder Netzwerkanfrage mitschicken soll", "advanced_settings_proxy_headers_subtitle": "Definiere einen Proxy-Header, den Immich bei jeder Netzwerkanfrage mitschicken soll",
@@ -402,9 +404,9 @@
"album_remove_user_confirmation": "Bist du sicher, dass du {user} entfernen willst?", "album_remove_user_confirmation": "Bist du sicher, dass du {user} entfernen willst?",
"album_share_no_users": "Es sieht so aus, als hättest du dieses Album mit allen Benutzern geteilt oder du hast keine Benutzer, mit denen du teilen kannst.", "album_share_no_users": "Es sieht so aus, als hättest du dieses Album mit allen Benutzern geteilt oder du hast keine Benutzer, mit denen du teilen kannst.",
"album_thumbnail_card_item": "1 Element", "album_thumbnail_card_item": "1 Element",
"album_thumbnail_card_items": "{count} Elemente", "album_thumbnail_card_items": "{} Elemente",
"album_thumbnail_card_shared": " · Geteilt", "album_thumbnail_card_shared": " · Geteilt",
"album_thumbnail_shared_by": "Geteilt von {user}", "album_thumbnail_shared_by": "Geteilt von {}",
"album_updated": "Album aktualisiert", "album_updated": "Album aktualisiert",
"album_updated_setting_description": "Erhalte eine E-Mail-Benachrichtigung, wenn ein freigegebenes Album neue Dateien enthält", "album_updated_setting_description": "Erhalte eine E-Mail-Benachrichtigung, wenn ein freigegebenes Album neue Dateien enthält",
"album_user_left": "{album} verlassen", "album_user_left": "{album} verlassen",
@@ -442,7 +444,7 @@
"archive": "Archiv", "archive": "Archiv",
"archive_or_unarchive_photo": "Foto archivieren bzw. Archivierung aufheben", "archive_or_unarchive_photo": "Foto archivieren bzw. Archivierung aufheben",
"archive_page_no_archived_assets": "Keine archivierten Inhalte gefunden", "archive_page_no_archived_assets": "Keine archivierten Inhalte gefunden",
"archive_page_title": "Archiv ({count})", "archive_page_title": "Archiv ({})",
"archive_size": "Archivgröße", "archive_size": "Archivgröße",
"archive_size_description": "Archivgröße für Downloads konfigurieren (in GiB)", "archive_size_description": "Archivgröße für Downloads konfigurieren (in GiB)",
"archived": "Archiviert", "archived": "Archiviert",
@@ -479,18 +481,18 @@
"assets_added_to_album_count": "{count, plural, one {# Datei} other {# Dateien}} zum Album hinzugefügt", "assets_added_to_album_count": "{count, plural, one {# Datei} other {# Dateien}} zum Album hinzugefügt",
"assets_added_to_name_count": "{count, plural, one {# Element} other {# Elemente}} zu {hasName, select, true {<b>{name}</b>} other {neuem Album}} hinzugefügt", "assets_added_to_name_count": "{count, plural, one {# Element} other {# Elemente}} zu {hasName, select, true {<b>{name}</b>} other {neuem Album}} hinzugefügt",
"assets_count": "{count, plural, one {# Datei} other {# Dateien}}", "assets_count": "{count, plural, one {# Datei} other {# Dateien}}",
"assets_deleted_permanently": "{count} Element(e) permanent gelöscht", "assets_deleted_permanently": "{} Datei/en permanent gelöscht",
"assets_deleted_permanently_from_server": "{count} Element(e) permanent vom Immich-Server gelöscht", "assets_deleted_permanently_from_server": "{} Datei/en wurden permanent vom Immich Server gelöscht",
"assets_moved_to_trash_count": "{count, plural, one {# Datei} other {# Dateien}} in den Papierkorb verschoben", "assets_moved_to_trash_count": "{count, plural, one {# Datei} other {# Dateien}} in den Papierkorb verschoben",
"assets_permanently_deleted_count": "{count, plural, one {# Datei} other {# Dateien}} endgültig gelöscht", "assets_permanently_deleted_count": "{count, plural, one {# Datei} other {# Dateien}} endgültig gelöscht",
"assets_removed_count": "{count, plural, one {# Datei} other {# Dateien}} entfernt", "assets_removed_count": "{count, plural, one {# Datei} other {# Dateien}} entfernt",
"assets_removed_permanently_from_device": "{count} Element(e) permanent von Ihrem Gerät gelöscht", "assets_removed_permanently_from_device": "{} Datei/en wurden permanent vom Gerät gelöscht",
"assets_restore_confirmation": "Bist du sicher, dass du alle Dateien aus dem Papierkorb wiederherstellen willst? Diese Aktion kann nicht rückgängig gemacht werden! Beachte, dass Offline-Dateien auf diese Weise nicht wiederhergestellt werden können.", "assets_restore_confirmation": "Bist du sicher, dass du alle Dateien aus dem Papierkorb wiederherstellen willst? Diese Aktion kann nicht rückgängig gemacht werden! Beachte, dass Offline-Dateien auf diese Weise nicht wiederhergestellt werden können.",
"assets_restored_count": "{count, plural, one {# Datei} other {# Dateien}} wiederhergestellt", "assets_restored_count": "{count, plural, one {# Datei} other {# Dateien}} wiederhergestellt",
"assets_restored_successfully": "{count} Element(e) erfolgreich wiederhergestellt", "assets_restored_successfully": "{} Datei/en erfolgreich wiederhergestellt",
"assets_trashed": "{count} Element(e) gelöscht", "assets_trashed": "{} Datei/en gelöscht",
"assets_trashed_count": "{count, plural, one {# Datei} other {# Dateien}} in den Papierkorb verschoben", "assets_trashed_count": "{count, plural, one {# Datei} other {# Dateien}} in den Papierkorb verschoben",
"assets_trashed_from_server": "{count} Element(e) vom Immich-Server gelöscht", "assets_trashed_from_server": "{} Datei/en vom Immich-Server gelöscht",
"assets_were_part_of_album_count": "{count, plural, one {# Datei ist} other {# Dateien sind}} bereits im Album vorhanden", "assets_were_part_of_album_count": "{count, plural, one {# Datei ist} other {# Dateien sind}} bereits im Album vorhanden",
"authorized_devices": "Verwendete Geräte", "authorized_devices": "Verwendete Geräte",
"automatic_endpoint_switching_subtitle": "Verbinden Sie sich lokal über ein bestimmtes WLAN, wenn es verfügbar ist, und verwenden Sie andere Verbindungsmöglichkeiten anderswo", "automatic_endpoint_switching_subtitle": "Verbinden Sie sich lokal über ein bestimmtes WLAN, wenn es verfügbar ist, und verwenden Sie andere Verbindungsmöglichkeiten anderswo",
@@ -499,7 +501,7 @@
"back_close_deselect": "Zurück, Schließen oder Abwählen", "back_close_deselect": "Zurück, Schließen oder Abwählen",
"background_location_permission": "Hintergrund Standortfreigabe", "background_location_permission": "Hintergrund Standortfreigabe",
"background_location_permission_content": "Um im Hintergrund zwischen den Netzwerken wechseln zu können, muss Immich *immer* Zugriff auf den genauen Standort haben, damit die App den Namen des WLAN-Netzwerks ermitteln kann", "background_location_permission_content": "Um im Hintergrund zwischen den Netzwerken wechseln zu können, muss Immich *immer* Zugriff auf den genauen Standort haben, damit die App den Namen des WLAN-Netzwerks ermitteln kann",
"backup_album_selection_page_albums_device": "Alben auf dem Gerät ({count})", "backup_album_selection_page_albums_device": "Alben auf dem Gerät ({})",
"backup_album_selection_page_albums_tap": "Einmalig das Album antippen um es zu sichern, doppelt antippen um es nicht mehr zu sichern", "backup_album_selection_page_albums_tap": "Einmalig das Album antippen um es zu sichern, doppelt antippen um es nicht mehr zu sichern",
"backup_album_selection_page_assets_scatter": "Elemente (Fotos / Videos) können sich über mehrere Alben verteilen. Daher können diese vor der Sicherung eingeschlossen oder ausgeschlossen werden.", "backup_album_selection_page_assets_scatter": "Elemente (Fotos / Videos) können sich über mehrere Alben verteilen. Daher können diese vor der Sicherung eingeschlossen oder ausgeschlossen werden.",
"backup_album_selection_page_select_albums": "Alben auswählen", "backup_album_selection_page_select_albums": "Alben auswählen",
@@ -508,11 +510,11 @@
"backup_all": "Alle", "backup_all": "Alle",
"backup_background_service_backup_failed_message": "Es trat ein Fehler bei der Sicherung auf. Erneuter Versuch…", "backup_background_service_backup_failed_message": "Es trat ein Fehler bei der Sicherung auf. Erneuter Versuch…",
"backup_background_service_connection_failed_message": "Es konnte keine Verbindung zum Server hergestellt werden. Erneuter Versuch…", "backup_background_service_connection_failed_message": "Es konnte keine Verbindung zum Server hergestellt werden. Erneuter Versuch…",
"backup_background_service_current_upload_notification": "Lädt {filename} hoch", "backup_background_service_current_upload_notification": "Lädt {} hoch",
"backup_background_service_default_notification": "Suche nach neuen Elementen…", "backup_background_service_default_notification": "Suche nach neuen Elementen…",
"backup_background_service_error_title": "Fehler bei der Sicherung", "backup_background_service_error_title": "Fehler bei der Sicherung",
"backup_background_service_in_progress_notification": "Elemente werden gesichert…", "backup_background_service_in_progress_notification": "Elemente werden gesichert…",
"backup_background_service_upload_failure_notification": "Konnte {filename} nicht hochladen", "backup_background_service_upload_failure_notification": "Konnte {} nicht hochladen",
"backup_controller_page_albums": "Gesicherte Alben", "backup_controller_page_albums": "Gesicherte Alben",
"backup_controller_page_background_app_refresh_disabled_content": "Aktiviere Hintergrundaktualisierungen in Einstellungen -> Allgemein -> Hintergrundaktualisierungen um Sicherungen im Hintergrund zu ermöglichen.", "backup_controller_page_background_app_refresh_disabled_content": "Aktiviere Hintergrundaktualisierungen in Einstellungen -> Allgemein -> Hintergrundaktualisierungen um Sicherungen im Hintergrund zu ermöglichen.",
"backup_controller_page_background_app_refresh_disabled_title": "Hintergrundaktualisierungen sind deaktiviert", "backup_controller_page_background_app_refresh_disabled_title": "Hintergrundaktualisierungen sind deaktiviert",
@@ -523,7 +525,7 @@
"backup_controller_page_background_battery_info_title": "Batterieoptimierungen", "backup_controller_page_background_battery_info_title": "Batterieoptimierungen",
"backup_controller_page_background_charging": "Nur während des Ladens", "backup_controller_page_background_charging": "Nur während des Ladens",
"backup_controller_page_background_configure_error": "Konnte Hintergrundservice nicht konfigurieren", "backup_controller_page_background_configure_error": "Konnte Hintergrundservice nicht konfigurieren",
"backup_controller_page_background_delay": "Sicherung neuer Elemente verzögern um: {duration}", "backup_controller_page_background_delay": "Sicherung neuer Elemente verzögern um: {}",
"backup_controller_page_background_description": "Schalte den Hintergrundservice ein, um neue Elemente automatisch im Hintergrund zu sichern ohne die App zu öffnen", "backup_controller_page_background_description": "Schalte den Hintergrundservice ein, um neue Elemente automatisch im Hintergrund zu sichern ohne die App zu öffnen",
"backup_controller_page_background_is_off": "Automatische Sicherung im Hintergrund ist deaktiviert", "backup_controller_page_background_is_off": "Automatische Sicherung im Hintergrund ist deaktiviert",
"backup_controller_page_background_is_on": "Automatische Sicherung im Hintergrund ist aktiviert", "backup_controller_page_background_is_on": "Automatische Sicherung im Hintergrund ist aktiviert",
@@ -533,12 +535,12 @@
"backup_controller_page_backup": "Sicherung", "backup_controller_page_backup": "Sicherung",
"backup_controller_page_backup_selected": "Ausgewählt: ", "backup_controller_page_backup_selected": "Ausgewählt: ",
"backup_controller_page_backup_sub": "Gesicherte Fotos und Videos", "backup_controller_page_backup_sub": "Gesicherte Fotos und Videos",
"backup_controller_page_created": "Erstellt am: {date}", "backup_controller_page_created": "Erstellt: {}",
"backup_controller_page_desc_backup": "Aktiviere die Sicherung, um Elemente immer automatisch auf den Server zu laden, während du die App benutzt.", "backup_controller_page_desc_backup": "Aktiviere die Sicherung, um Elemente immer automatisch auf den Server zu laden, während du die App benutzt.",
"backup_controller_page_excluded": "Ausgeschlossen: ", "backup_controller_page_excluded": "Ausgeschlossen: ",
"backup_controller_page_failed": "Fehlgeschlagen ({count})", "backup_controller_page_failed": "Fehlgeschlagen ({})",
"backup_controller_page_filename": "Dateiname: {filename} [{size}]", "backup_controller_page_filename": "Dateiname: {} [{}]",
"backup_controller_page_id": "ID: {id}", "backup_controller_page_id": "ID: {}",
"backup_controller_page_info": "Informationen zur Sicherung", "backup_controller_page_info": "Informationen zur Sicherung",
"backup_controller_page_none_selected": "Keine ausgewählt", "backup_controller_page_none_selected": "Keine ausgewählt",
"backup_controller_page_remainder": "Verbleibend", "backup_controller_page_remainder": "Verbleibend",
@@ -547,7 +549,7 @@
"backup_controller_page_start_backup": "Sicherung starten", "backup_controller_page_start_backup": "Sicherung starten",
"backup_controller_page_status_off": "Sicherung im Vordergrund ist inaktiv", "backup_controller_page_status_off": "Sicherung im Vordergrund ist inaktiv",
"backup_controller_page_status_on": "Sicherung im Vordergrund ist aktiv", "backup_controller_page_status_on": "Sicherung im Vordergrund ist aktiv",
"backup_controller_page_storage_format": "{used} von {total} genutzt", "backup_controller_page_storage_format": "{} von {} genutzt",
"backup_controller_page_to_backup": "Zu sichernde Alben", "backup_controller_page_to_backup": "Zu sichernde Alben",
"backup_controller_page_total_sub": "Alle Fotos und Videos", "backup_controller_page_total_sub": "Alle Fotos und Videos",
"backup_controller_page_turn_off": "Sicherung im Vordergrund ausschalten", "backup_controller_page_turn_off": "Sicherung im Vordergrund ausschalten",
@@ -572,21 +574,21 @@
"bulk_keep_duplicates_confirmation": "Bist du sicher, dass du {count, plural, one {# duplizierte Datei} other {# duplizierte Dateien}} behalten möchtest? Dies wird alle Duplikat-Gruppen auflösen ohne etwas zu löschen.", "bulk_keep_duplicates_confirmation": "Bist du sicher, dass du {count, plural, one {# duplizierte Datei} other {# duplizierte Dateien}} behalten möchtest? Dies wird alle Duplikat-Gruppen auflösen ohne etwas zu löschen.",
"bulk_trash_duplicates_confirmation": "Bist du sicher, dass du {count, plural, one {# duplizierte Datei} other {# duplizierte Dateien gemeinsam}} in den Papierkorb verschieben möchtest? Dies wird die größte Datei jeder Gruppe behalten und alle anderen Duplikate in den Papierkorb verschieben.", "bulk_trash_duplicates_confirmation": "Bist du sicher, dass du {count, plural, one {# duplizierte Datei} other {# duplizierte Dateien gemeinsam}} in den Papierkorb verschieben möchtest? Dies wird die größte Datei jeder Gruppe behalten und alle anderen Duplikate in den Papierkorb verschieben.",
"buy": "Immich erwerben", "buy": "Immich erwerben",
"cache_settings_album_thumbnails": "Vorschaubilder der Bibliothek ({count} Elemente)", "cache_settings_album_thumbnails": "Vorschaubilder der Bibliothek ({} Elemente)",
"cache_settings_clear_cache_button": "Zwischenspeicher löschen", "cache_settings_clear_cache_button": "Zwischenspeicher löschen",
"cache_settings_clear_cache_button_title": "Löscht den Zwischenspeicher der App. Dies wird die Leistungsfähigkeit der App deutlich einschränken, bis der Zwischenspeicher wieder aufgebaut wurde.", "cache_settings_clear_cache_button_title": "Löscht den Zwischenspeicher der App. Dies wird die Leistungsfähigkeit der App deutlich einschränken, bis der Zwischenspeicher wieder aufgebaut wurde.",
"cache_settings_duplicated_assets_clear_button": "LEEREN", "cache_settings_duplicated_assets_clear_button": "LEEREN",
"cache_settings_duplicated_assets_subtitle": "Fotos und Videos, die von der App blockiert werden", "cache_settings_duplicated_assets_subtitle": "Fotos und Videos, die von der App blockiert werden",
"cache_settings_duplicated_assets_title": "Duplikate ({count})", "cache_settings_duplicated_assets_title": "Duplikate ({})",
"cache_settings_image_cache_size": "Bilder im Zwischenspeicher ({count} Bilder)", "cache_settings_image_cache_size": "{} Bilder im Zwischenspeicher",
"cache_settings_statistics_album": "Vorschaubilder der Bibliothek", "cache_settings_statistics_album": "Vorschaubilder der Bibliothek",
"cache_settings_statistics_assets": "{count} Elemente ({size})", "cache_settings_statistics_assets": "{} Elemente ({})",
"cache_settings_statistics_full": "Originalbilder", "cache_settings_statistics_full": "Originalbilder",
"cache_settings_statistics_shared": "Vorschaubilder geteilter Alben", "cache_settings_statistics_shared": "Vorschaubilder geteilter Alben",
"cache_settings_statistics_thumbnail": "Vorschaubilder", "cache_settings_statistics_thumbnail": "Vorschaubilder",
"cache_settings_statistics_title": "Zwischenspeicher-Nutzung", "cache_settings_statistics_title": "Zwischenspeicher-Nutzung",
"cache_settings_subtitle": "Kontrollieren, wie Immich den Zwischenspeicher nutzt", "cache_settings_subtitle": "Kontrollieren, wie Immich den Zwischenspeicher nutzt",
"cache_settings_thumbnail_size": "Vorschaubilder im Zwischenspeicher ({count} Bilder)", "cache_settings_thumbnail_size": "{} Vorschaubilder im Zwischenspeicher",
"cache_settings_tile_subtitle": "Lokalen Speicher verwalten", "cache_settings_tile_subtitle": "Lokalen Speicher verwalten",
"cache_settings_tile_title": "Lokaler Speicher", "cache_settings_tile_title": "Lokaler Speicher",
"cache_settings_title": "Zwischenspeicher Einstellungen", "cache_settings_title": "Zwischenspeicher Einstellungen",
@@ -612,7 +614,6 @@
"change_password_form_new_password": "Neues Passwort", "change_password_form_new_password": "Neues Passwort",
"change_password_form_password_mismatch": "Passwörter stimmen nicht überein", "change_password_form_password_mismatch": "Passwörter stimmen nicht überein",
"change_password_form_reenter_new_password": "Passwort erneut eingeben", "change_password_form_reenter_new_password": "Passwort erneut eingeben",
"change_pin_code": "PIN Code ändern",
"change_your_password": "Ändere dein Passwort", "change_your_password": "Ändere dein Passwort",
"changed_visibility_successfully": "Die Sichtbarkeit wurde erfolgreich geändert", "changed_visibility_successfully": "Die Sichtbarkeit wurde erfolgreich geändert",
"check_all": "Alle prüfen", "check_all": "Alle prüfen",
@@ -646,19 +647,18 @@
"comments_and_likes": "Kommentare & Likes", "comments_and_likes": "Kommentare & Likes",
"comments_are_disabled": "Kommentare sind deaktiviert", "comments_are_disabled": "Kommentare sind deaktiviert",
"common_create_new_album": "Neues Album erstellen", "common_create_new_album": "Neues Album erstellen",
"common_server_error": "Bitte überprüfe deine Netzwerkverbindung und stelle sicher, dass die App und Server Versionen kompatibel sind.", "common_server_error": "Bitte überprüfe Deine Netzwerkverbindung und stelle sicher, dass die App und Server Versionen kompatibel sind.",
"completed": "Abgeschlossen", "completed": "Fertig",
"confirm": "Bestätigen", "confirm": "Bestätigen",
"confirm_admin_password": "Administrator Passwort bestätigen", "confirm_admin_password": "Administrator Passwort bestätigen",
"confirm_delete_face": "Bist du sicher dass du das Gesicht von {name} aus der Datei entfernen willst?", "confirm_delete_face": "Bist du sicher dass du das Gesicht von {name} aus der Datei entfernen willst?",
"confirm_delete_shared_link": "Bist du sicher, dass du diesen geteilten Link löschen willst?", "confirm_delete_shared_link": "Bist du sicher, dass du diesen geteilten Link löschen willst?",
"confirm_keep_this_delete_others": "Alle anderen Dateien im Stapel bis auf diese werden gelöscht. Bist du sicher, dass du fortfahren möchten?", "confirm_keep_this_delete_others": "Alle anderen Dateien im Stapel bis auf diese werden gelöscht. Bist du sicher, dass du fortfahren möchten?",
"confirm_new_pin_code": "Neuen PIN Code bestätigen",
"confirm_password": "Passwort bestätigen", "confirm_password": "Passwort bestätigen",
"contain": "Vollständig", "contain": "Vollständig",
"context": "Kontext", "context": "Kontext",
"continue": "Fortsetzen", "continue": "Fortsetzen",
"control_bottom_app_bar_album_info_shared": "{count} Elemente · Geteilt", "control_bottom_app_bar_album_info_shared": "{} Elemente · Geteilt",
"control_bottom_app_bar_create_new_album": "Neues Album erstellen", "control_bottom_app_bar_create_new_album": "Neues Album erstellen",
"control_bottom_app_bar_delete_from_immich": "Aus Immich löschen", "control_bottom_app_bar_delete_from_immich": "Aus Immich löschen",
"control_bottom_app_bar_delete_from_local": "Vom Gerät löschen", "control_bottom_app_bar_delete_from_local": "Vom Gerät löschen",
@@ -696,11 +696,9 @@
"create_tag_description": "Erstelle einen neuen Tag. Für verschachtelte Tags, gib den gesamten Pfad inklusive Schrägstrich an.", "create_tag_description": "Erstelle einen neuen Tag. Für verschachtelte Tags, gib den gesamten Pfad inklusive Schrägstrich an.",
"create_user": "Nutzer erstellen", "create_user": "Nutzer erstellen",
"created": "Erstellt", "created": "Erstellt",
"created_at": "Erstellt",
"crop": "Zuschneiden", "crop": "Zuschneiden",
"curated_object_page_title": "Dinge", "curated_object_page_title": "Dinge",
"current_device": "Aktuelles Gerät", "current_device": "Aktuelles Gerät",
"current_pin_code": "Aktueller PIN Code",
"current_server_address": "Aktuelle Serveradresse", "current_server_address": "Aktuelle Serveradresse",
"custom_locale": "Benutzerdefinierte Sprache", "custom_locale": "Benutzerdefinierte Sprache",
"custom_locale_description": "Datumsangaben und Zahlen je nach Sprache und Land formatieren", "custom_locale_description": "Datumsangaben und Zahlen je nach Sprache und Land formatieren",
@@ -769,7 +767,7 @@
"download_enqueue": "Download in die Warteschlange gesetzt", "download_enqueue": "Download in die Warteschlange gesetzt",
"download_error": "Download fehlerhaft", "download_error": "Download fehlerhaft",
"download_failed": "Download fehlerhaft", "download_failed": "Download fehlerhaft",
"download_filename": "Datei: {filename}", "download_filename": "Datei: {}",
"download_finished": "Download abgeschlossen", "download_finished": "Download abgeschlossen",
"download_include_embedded_motion_videos": "Eingebettete Videos", "download_include_embedded_motion_videos": "Eingebettete Videos",
"download_include_embedded_motion_videos_description": "Videos, die in Bewegungsfotos eingebettet sind, als separate Datei einfügen", "download_include_embedded_motion_videos_description": "Videos, die in Bewegungsfotos eingebettet sind, als separate Datei einfügen",
@@ -813,7 +811,6 @@
"editor_crop_tool_h2_aspect_ratios": "Seitenverhältnisse", "editor_crop_tool_h2_aspect_ratios": "Seitenverhältnisse",
"editor_crop_tool_h2_rotation": "Drehung", "editor_crop_tool_h2_rotation": "Drehung",
"email": "E-Mail", "email": "E-Mail",
"email_notifications": "E-Mail Benachrichtigungen",
"empty_folder": "Dieser Ordner ist leer", "empty_folder": "Dieser Ordner ist leer",
"empty_trash": "Papierkorb leeren", "empty_trash": "Papierkorb leeren",
"empty_trash_confirmation": "Bist du sicher, dass du den Papierkorb leeren willst?\nDies entfernt alle Dateien im Papierkorb endgültig aus Immich und kann nicht rückgängig gemacht werden!", "empty_trash_confirmation": "Bist du sicher, dass du den Papierkorb leeren willst?\nDies entfernt alle Dateien im Papierkorb endgültig aus Immich und kann nicht rückgängig gemacht werden!",
@@ -826,7 +823,7 @@
"error_change_sort_album": "Ändern der Anzeigereihenfolge fehlgeschlagen", "error_change_sort_album": "Ändern der Anzeigereihenfolge fehlgeschlagen",
"error_delete_face": "Fehler beim Löschen des Gesichts", "error_delete_face": "Fehler beim Löschen des Gesichts",
"error_loading_image": "Fehler beim Laden des Bildes", "error_loading_image": "Fehler beim Laden des Bildes",
"error_saving_image": "Fehler: {error}", "error_saving_image": "Fehler: {}",
"error_title": "Fehler - Etwas ist schief gelaufen", "error_title": "Fehler - Etwas ist schief gelaufen",
"errors": { "errors": {
"cannot_navigate_next_asset": "Kann nicht zur nächsten Datei navigieren", "cannot_navigate_next_asset": "Kann nicht zur nächsten Datei navigieren",
@@ -856,12 +853,10 @@
"failed_to_keep_this_delete_others": "Fehler beim Löschen der anderen Dateien", "failed_to_keep_this_delete_others": "Fehler beim Löschen der anderen Dateien",
"failed_to_load_asset": "Fehler beim Laden der Datei", "failed_to_load_asset": "Fehler beim Laden der Datei",
"failed_to_load_assets": "Fehler beim Laden der Dateien", "failed_to_load_assets": "Fehler beim Laden der Dateien",
"failed_to_load_notifications": "Fehler beim Laden der Benachrichtigungen",
"failed_to_load_people": "Fehler beim Laden von Personen", "failed_to_load_people": "Fehler beim Laden von Personen",
"failed_to_remove_product_key": "Fehler beim Entfernen des Produktschlüssels", "failed_to_remove_product_key": "Fehler beim Entfernen des Produktschlüssels",
"failed_to_stack_assets": "Dateien konnten nicht gestapelt werden", "failed_to_stack_assets": "Dateien konnten nicht gestapelt werden",
"failed_to_unstack_assets": "Dateien konnten nicht entstapelt werden", "failed_to_unstack_assets": "Dateien konnten nicht entstapelt werden",
"failed_to_update_notification_status": "Benachrichtigungsstatus aktualisieren fehlgeschlagen",
"import_path_already_exists": "Dieser Importpfad existiert bereits.", "import_path_already_exists": "Dieser Importpfad existiert bereits.",
"incorrect_email_or_password": "Ungültige E-Mail oder Passwort", "incorrect_email_or_password": "Ungültige E-Mail oder Passwort",
"paths_validation_failed": "{paths, plural, one {# Pfad konnte} other {# Pfade konnten}} nicht validiert werden", "paths_validation_failed": "{paths, plural, one {# Pfad konnte} other {# Pfade konnten}} nicht validiert werden",
@@ -929,7 +924,6 @@
"unable_to_remove_reaction": "Reaktion kann nicht entfernt werden", "unable_to_remove_reaction": "Reaktion kann nicht entfernt werden",
"unable_to_repair_items": "Objekte können nicht repariert werden", "unable_to_repair_items": "Objekte können nicht repariert werden",
"unable_to_reset_password": "Passwort kann nicht zurückgesetzt werden", "unable_to_reset_password": "Passwort kann nicht zurückgesetzt werden",
"unable_to_reset_pin_code": "Zurücksetzen des PIN Code nicht möglich",
"unable_to_resolve_duplicate": "Duplikate können nicht aufgelöst werden", "unable_to_resolve_duplicate": "Duplikate können nicht aufgelöst werden",
"unable_to_restore_assets": "Dateien konnten nicht wiederhergestellt werden", "unable_to_restore_assets": "Dateien konnten nicht wiederhergestellt werden",
"unable_to_restore_trash": "Papierkorb kann nicht wiederhergestellt werden", "unable_to_restore_trash": "Papierkorb kann nicht wiederhergestellt werden",
@@ -963,10 +957,10 @@
"exif_bottom_sheet_location": "STANDORT", "exif_bottom_sheet_location": "STANDORT",
"exif_bottom_sheet_people": "PERSONEN", "exif_bottom_sheet_people": "PERSONEN",
"exif_bottom_sheet_person_add_person": "Namen hinzufügen", "exif_bottom_sheet_person_add_person": "Namen hinzufügen",
"exif_bottom_sheet_person_age": "Alter {age}", "exif_bottom_sheet_person_age": "Alter {}",
"exif_bottom_sheet_person_age_months": "{months} Monate alt", "exif_bottom_sheet_person_age_months": "{} Monate alt",
"exif_bottom_sheet_person_age_year_months": "1 Jahr, {months} Monate alt", "exif_bottom_sheet_person_age_year_months": "1 Jahr, {} Monate alt",
"exif_bottom_sheet_person_age_years": "Alter {years}", "exif_bottom_sheet_person_age_years": "{} alt",
"exit_slideshow": "Diashow beenden", "exit_slideshow": "Diashow beenden",
"expand_all": "Alle aufklappen", "expand_all": "Alle aufklappen",
"experimental_settings_new_asset_list_subtitle": "In Arbeit", "experimental_settings_new_asset_list_subtitle": "In Arbeit",
@@ -975,7 +969,7 @@
"experimental_settings_title": "Experimentell", "experimental_settings_title": "Experimentell",
"expire_after": "Verfällt nach", "expire_after": "Verfällt nach",
"expired": "Verfallen", "expired": "Verfallen",
"expires_date": "Läuft am {date} ab", "expires_date": "Läuft {date} ab",
"explore": "Erkunden", "explore": "Erkunden",
"explorer": "Datei-Explorer", "explorer": "Datei-Explorer",
"export": "Exportieren", "export": "Exportieren",
@@ -1056,7 +1050,6 @@
"home_page_upload_err_limit": "Es können max. 30 Elemente gleichzeitig hochgeladen werden, überspringen", "home_page_upload_err_limit": "Es können max. 30 Elemente gleichzeitig hochgeladen werden, überspringen",
"host": "Host", "host": "Host",
"hour": "Stunde", "hour": "Stunde",
"id": "ID",
"ignore_icloud_photos": "iCloud Fotos ignorieren", "ignore_icloud_photos": "iCloud Fotos ignorieren",
"ignore_icloud_photos_description": "Fotos, die in der iCloud gespeichert sind, werden nicht auf den immich Server hochgeladen", "ignore_icloud_photos_description": "Fotos, die in der iCloud gespeichert sind, werden nicht auf den immich Server hochgeladen",
"image": "Bild", "image": "Bild",
@@ -1132,7 +1125,7 @@
"local_network": "Lokales Netzwerk", "local_network": "Lokales Netzwerk",
"local_network_sheet_info": "Die App stellt über diese URL eine Verbindung zum Server her, wenn sie das angegebene WLAN-Netzwerk verwendet", "local_network_sheet_info": "Die App stellt über diese URL eine Verbindung zum Server her, wenn sie das angegebene WLAN-Netzwerk verwendet",
"location_permission": "Standort Genehmigung", "location_permission": "Standort Genehmigung",
"location_permission_content": "Um die automatische Umschaltfunktion nutzen zu können, benötigt Immich genaue Standortberechtigung, damit es den Namen des aktuellen WLAN-Netzwerks ermitteln kann", "location_permission_content": "Um die automatische Umschaltfunktion nutzen zu können, benötigt Immich eine genaue Standortberechtigung, damit es den Namen des aktuellen WLAN-Netzwerks ermitteln kann",
"location_picker_choose_on_map": "Auf der Karte auswählen", "location_picker_choose_on_map": "Auf der Karte auswählen",
"location_picker_latitude_error": "Gültigen Breitengrad eingeben", "location_picker_latitude_error": "Gültigen Breitengrad eingeben",
"location_picker_latitude_hint": "Breitengrad eingeben", "location_picker_latitude_hint": "Breitengrad eingeben",
@@ -1182,8 +1175,8 @@
"manage_your_devices": "Deine eingeloggten Geräte verwalten", "manage_your_devices": "Deine eingeloggten Geräte verwalten",
"manage_your_oauth_connection": "Deine OAuth-Verknüpfung verwalten", "manage_your_oauth_connection": "Deine OAuth-Verknüpfung verwalten",
"map": "Karte", "map": "Karte",
"map_assets_in_bound": "{count} Foto", "map_assets_in_bound": "{} Foto",
"map_assets_in_bounds": "{count} Fotos", "map_assets_in_bounds": "{} Fotos",
"map_cannot_get_user_location": "Standort konnte nicht ermittelt werden", "map_cannot_get_user_location": "Standort konnte nicht ermittelt werden",
"map_location_dialog_yes": "Ja", "map_location_dialog_yes": "Ja",
"map_location_picker_page_use_location": "Aufnahmeort verwenden", "map_location_picker_page_use_location": "Aufnahmeort verwenden",
@@ -1197,18 +1190,15 @@
"map_settings": "Karteneinstellungen", "map_settings": "Karteneinstellungen",
"map_settings_dark_mode": "Dunkler Modus", "map_settings_dark_mode": "Dunkler Modus",
"map_settings_date_range_option_day": "Letzte 24 Stunden", "map_settings_date_range_option_day": "Letzte 24 Stunden",
"map_settings_date_range_option_days": "Letzten {days} Tage", "map_settings_date_range_option_days": "Letzte {} Tage",
"map_settings_date_range_option_year": "Letztes Jahr", "map_settings_date_range_option_year": "Letztes Jahr",
"map_settings_date_range_option_years": "Letzten {years} Jahre", "map_settings_date_range_option_years": "Letzte {} Jahre",
"map_settings_dialog_title": "Karteneinstellungen", "map_settings_dialog_title": "Karteneinstellungen",
"map_settings_include_show_archived": "Archivierte anzeigen", "map_settings_include_show_archived": "Archivierte anzeigen",
"map_settings_include_show_partners": "Partner einbeziehen", "map_settings_include_show_partners": "Partner einbeziehen",
"map_settings_only_show_favorites": "Nur Favoriten anzeigen", "map_settings_only_show_favorites": "Nur Favoriten anzeigen",
"map_settings_theme_settings": "Karten Design", "map_settings_theme_settings": "Karten Design",
"map_zoom_to_see_photos": "Ansicht verkleinern um Fotos zu sehen", "map_zoom_to_see_photos": "Ansicht verkleinern um Fotos zu sehen",
"mark_all_as_read": "Alle als gelesen markieren",
"mark_as_read": "Als gelesen markieren",
"marked_all_as_read": "Alle als gelesen markiert",
"matches": "Treffer", "matches": "Treffer",
"media_type": "Medientyp", "media_type": "Medientyp",
"memories": "Erinnerungen", "memories": "Erinnerungen",
@@ -1218,7 +1208,7 @@
"memories_start_over": "Erneut beginnen", "memories_start_over": "Erneut beginnen",
"memories_swipe_to_close": "Nach oben Wischen zum schließen", "memories_swipe_to_close": "Nach oben Wischen zum schließen",
"memories_year_ago": "ein Jahr her", "memories_year_ago": "ein Jahr her",
"memories_years_ago": "Vor {years} Jahren", "memories_years_ago": "{} Jahre her",
"memory": "Erinnerung", "memory": "Erinnerung",
"memory_lane_title": "Foto-Erinnerungen {title}", "memory_lane_title": "Foto-Erinnerungen {title}",
"menu": "Menü", "menu": "Menü",
@@ -1235,8 +1225,6 @@
"month": "Monat", "month": "Monat",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "MMMM y",
"more": "Mehr", "more": "Mehr",
"moved_to_archive": "{count, plural, one {# Datei} other {# Dateien}} archiviert",
"moved_to_library": "{count, plural, one {# Datei} other {# Dateien}} in die Bibliothek verschoben",
"moved_to_trash": "In den Papierkorb verschoben", "moved_to_trash": "In den Papierkorb verschoben",
"multiselect_grid_edit_date_time_err_read_only": "Das Datum und die Uhrzeit von schreibgeschützten Inhalten kann nicht verändert werden, überspringen", "multiselect_grid_edit_date_time_err_read_only": "Das Datum und die Uhrzeit von schreibgeschützten Inhalten kann nicht verändert werden, überspringen",
"multiselect_grid_edit_gps_err_read_only": "Der Aufnahmeort von schreibgeschützten Inhalten kann nicht verändert werden, überspringen", "multiselect_grid_edit_gps_err_read_only": "Der Aufnahmeort von schreibgeschützten Inhalten kann nicht verändert werden, überspringen",
@@ -1251,7 +1239,6 @@
"new_api_key": "Neuer API-Schlüssel", "new_api_key": "Neuer API-Schlüssel",
"new_password": "Neues Passwort", "new_password": "Neues Passwort",
"new_person": "Neue Person", "new_person": "Neue Person",
"new_pin_code": "Neuer PIN Code",
"new_user_created": "Neuer Benutzer wurde erstellt", "new_user_created": "Neuer Benutzer wurde erstellt",
"new_version_available": "NEUE VERSION VERFÜGBAR", "new_version_available": "NEUE VERSION VERFÜGBAR",
"newest_first": "Neueste zuerst", "newest_first": "Neueste zuerst",
@@ -1270,8 +1257,6 @@
"no_favorites_message": "Füge Favoriten hinzu, um deine besten Bilder und Videos schnell zu finden", "no_favorites_message": "Füge Favoriten hinzu, um deine besten Bilder und Videos schnell zu finden",
"no_libraries_message": "Eine externe Bibliothek erstellen, um deine Fotos und Videos anzusehen", "no_libraries_message": "Eine externe Bibliothek erstellen, um deine Fotos und Videos anzusehen",
"no_name": "Kein Name", "no_name": "Kein Name",
"no_notifications": "Keine Benachrichtigungen",
"no_people_found": "Keine passenden Personen gefunden",
"no_places": "Keine Orte", "no_places": "Keine Orte",
"no_results": "Keine Ergebnisse", "no_results": "Keine Ergebnisse",
"no_results_description": "Versuche es mit einem Synonym oder einem allgemeineren Stichwort", "no_results_description": "Versuche es mit einem Synonym oder einem allgemeineren Stichwort",
@@ -1326,7 +1311,7 @@
"partner_page_partner_add_failed": "Fehler beim Partner hinzufügen", "partner_page_partner_add_failed": "Fehler beim Partner hinzufügen",
"partner_page_select_partner": "Partner auswählen", "partner_page_select_partner": "Partner auswählen",
"partner_page_shared_to_title": "Geteilt mit", "partner_page_shared_to_title": "Geteilt mit",
"partner_page_stop_sharing_content": "{partner} wird nicht mehr auf deine Fotos zugreifen können.", "partner_page_stop_sharing_content": "{} wird nicht mehr auf deine Fotos zugreifen können.",
"partner_sharing": "Partner-Sharing", "partner_sharing": "Partner-Sharing",
"partners": "Partner", "partners": "Partner",
"password": "Passwort", "password": "Passwort",
@@ -1372,9 +1357,6 @@
"photos_count": "{count, plural, one {{count, number} Foto} other {{count, number} Fotos}}", "photos_count": "{count, plural, one {{count, number} Foto} other {{count, number} Fotos}}",
"photos_from_previous_years": "Fotos von vorherigen Jahren", "photos_from_previous_years": "Fotos von vorherigen Jahren",
"pick_a_location": "Wähle einen Ort", "pick_a_location": "Wähle einen Ort",
"pin_code_changed_successfully": "PIN Code erfolgreich geändert",
"pin_code_reset_successfully": "PIN Code erfolgreich zurückgesetzt",
"pin_code_setup_successfully": "PIN Code erfolgreich festgelegt",
"place": "Ort", "place": "Ort",
"places": "Orte", "places": "Orte",
"places_count": "{count, plural, one {{count, number} Ort} other {{count, number} Orte}}", "places_count": "{count, plural, one {{count, number} Ort} other {{count, number} Orte}}",
@@ -1392,11 +1374,10 @@
"previous_or_next_photo": "Vorheriges oder nächstes Foto", "previous_or_next_photo": "Vorheriges oder nächstes Foto",
"primary": "Primär", "primary": "Primär",
"privacy": "Privatsphäre", "privacy": "Privatsphäre",
"profile": "Profil",
"profile_drawer_app_logs": "Logs", "profile_drawer_app_logs": "Logs",
"profile_drawer_client_out_of_date_major": "Mobile-App ist veraltet. Bitte aktualisiere auf die neueste Major-Version.", "profile_drawer_client_out_of_date_major": "Mobile-App ist veraltet. Bitte aktualisiere auf die neueste Major-Version.",
"profile_drawer_client_out_of_date_minor": "Mobile-App ist veraltet. Bitte aktualisiere auf die neueste Minor-Version.", "profile_drawer_client_out_of_date_minor": "Mobile-App ist veraltet. Bitte aktualisiere auf die neueste Minor-Version.",
"profile_drawer_client_server_up_to_date": "Die App- und Server-Versionen sind aktuell", "profile_drawer_client_server_up_to_date": "Die App-Version / Server-Version sind aktuell",
"profile_drawer_github": "GitHub", "profile_drawer_github": "GitHub",
"profile_drawer_server_out_of_date_major": "Server-Version ist veraltet. Bitte aktualisiere auf die neueste Major-Version.", "profile_drawer_server_out_of_date_major": "Server-Version ist veraltet. Bitte aktualisiere auf die neueste Major-Version.",
"profile_drawer_server_out_of_date_minor": "Server-Version ist veraltet. Bitte aktualisiere auf die neueste Minor-Version.", "profile_drawer_server_out_of_date_minor": "Server-Version ist veraltet. Bitte aktualisiere auf die neueste Minor-Version.",
@@ -1406,7 +1387,7 @@
"public_share": "Öffentliche Freigabe", "public_share": "Öffentliche Freigabe",
"purchase_account_info": "Unterstützer", "purchase_account_info": "Unterstützer",
"purchase_activated_subtitle": "Danke für die Unterstützung von Immich und Open-Source Software", "purchase_activated_subtitle": "Danke für die Unterstützung von Immich und Open-Source Software",
"purchase_activated_time": "Aktiviert am {date}", "purchase_activated_time": "Aktiviert am {date, date}",
"purchase_activated_title": "Dein Schlüssel wurde erfolgreich aktiviert", "purchase_activated_title": "Dein Schlüssel wurde erfolgreich aktiviert",
"purchase_button_activate": "Aktivieren", "purchase_button_activate": "Aktivieren",
"purchase_button_buy": "Kaufen", "purchase_button_buy": "Kaufen",
@@ -1451,8 +1432,6 @@
"recent_searches": "Letzte Suchen", "recent_searches": "Letzte Suchen",
"recently_added": "Kürzlich hinzugefügt", "recently_added": "Kürzlich hinzugefügt",
"recently_added_page_title": "Zuletzt hinzugefügt", "recently_added_page_title": "Zuletzt hinzugefügt",
"recently_taken": "Kürzlich aufgenommen",
"recently_taken_page_title": "Kürzlich aufgenommen",
"refresh": "Aktualisieren", "refresh": "Aktualisieren",
"refresh_encoded_videos": "Kodierte Videos aktualisieren", "refresh_encoded_videos": "Kodierte Videos aktualisieren",
"refresh_faces": "Gesichter aktualisieren", "refresh_faces": "Gesichter aktualisieren",
@@ -1495,7 +1474,6 @@
"reset": "Zurücksetzen", "reset": "Zurücksetzen",
"reset_password": "Passwort zurücksetzen", "reset_password": "Passwort zurücksetzen",
"reset_people_visibility": "Sichtbarkeit von Personen zurücksetzen", "reset_people_visibility": "Sichtbarkeit von Personen zurücksetzen",
"reset_pin_code": "PIN Code zurücksetzen",
"reset_to_default": "Auf Standard zurücksetzen", "reset_to_default": "Auf Standard zurücksetzen",
"resolve_duplicates": "Duplikate entfernen", "resolve_duplicates": "Duplikate entfernen",
"resolved_all_duplicates": "Alle Duplikate aufgelöst", "resolved_all_duplicates": "Alle Duplikate aufgelöst",
@@ -1588,7 +1566,6 @@
"select_keep_all": "Alle behalten", "select_keep_all": "Alle behalten",
"select_library_owner": "Bibliotheksbesitzer auswählen", "select_library_owner": "Bibliotheksbesitzer auswählen",
"select_new_face": "Neues Gesicht auswählen", "select_new_face": "Neues Gesicht auswählen",
"select_person_to_tag": "Wählen Sie eine Person zum Markieren aus",
"select_photos": "Fotos auswählen", "select_photos": "Fotos auswählen",
"select_trash_all": "Alle löschen", "select_trash_all": "Alle löschen",
"select_user_for_sharing_page_err_album": "Album konnte nicht erstellt werden", "select_user_for_sharing_page_err_album": "Album konnte nicht erstellt werden",
@@ -1619,12 +1596,12 @@
"setting_languages_apply": "Anwenden", "setting_languages_apply": "Anwenden",
"setting_languages_subtitle": "App-Sprache ändern", "setting_languages_subtitle": "App-Sprache ändern",
"setting_languages_title": "Sprachen", "setting_languages_title": "Sprachen",
"setting_notifications_notify_failures_grace_period": "Benachrichtigung bei Fehler(n) in der Hintergrundsicherung: {duration}", "setting_notifications_notify_failures_grace_period": "Benachrichtigung bei Fehler/n in der Hintergrundsicherung: {}",
"setting_notifications_notify_hours": "{count} Stunden", "setting_notifications_notify_hours": "{} Stunden",
"setting_notifications_notify_immediately": "sofort", "setting_notifications_notify_immediately": "sofort",
"setting_notifications_notify_minutes": "{count} Minuten", "setting_notifications_notify_minutes": "{} Minuten",
"setting_notifications_notify_never": "niemals", "setting_notifications_notify_never": "niemals",
"setting_notifications_notify_seconds": "{count} Sekunden", "setting_notifications_notify_seconds": "{} Sekunden",
"setting_notifications_single_progress_subtitle": "Detaillierter Upload-Fortschritt für jedes Element", "setting_notifications_single_progress_subtitle": "Detaillierter Upload-Fortschritt für jedes Element",
"setting_notifications_single_progress_title": "Zeige den detaillierten Fortschritt der Hintergrundsicherung", "setting_notifications_single_progress_title": "Zeige den detaillierten Fortschritt der Hintergrundsicherung",
"setting_notifications_subtitle": "Benachrichtigungen anpassen", "setting_notifications_subtitle": "Benachrichtigungen anpassen",
@@ -1636,10 +1613,9 @@
"settings": "Einstellungen", "settings": "Einstellungen",
"settings_require_restart": "Bitte starte Immich neu, um diese Einstellung anzuwenden", "settings_require_restart": "Bitte starte Immich neu, um diese Einstellung anzuwenden",
"settings_saved": "Einstellungen gespeichert", "settings_saved": "Einstellungen gespeichert",
"setup_pin_code": "Einen PIN Code festlegen",
"share": "Teilen", "share": "Teilen",
"share_add_photos": "Fotos hinzufügen", "share_add_photos": "Fotos hinzufügen",
"share_assets_selected": "{count} ausgewählt", "share_assets_selected": "{} ausgewählt",
"share_dialog_preparing": "Vorbereiten...", "share_dialog_preparing": "Vorbereiten...",
"shared": "Geteilt", "shared": "Geteilt",
"shared_album_activities_input_disable": "Kommentare sind deaktiviert", "shared_album_activities_input_disable": "Kommentare sind deaktiviert",
@@ -1653,32 +1629,32 @@
"shared_by_user": "Von {user} geteilt", "shared_by_user": "Von {user} geteilt",
"shared_by_you": "Von dir geteilt", "shared_by_you": "Von dir geteilt",
"shared_from_partner": "Fotos von {partner}", "shared_from_partner": "Fotos von {partner}",
"shared_intent_upload_button_progress_text": "{current} / {total} hochgeladen", "shared_intent_upload_button_progress_text": "{} / {} hochgeladen",
"shared_link_app_bar_title": "Geteilte Links", "shared_link_app_bar_title": "Geteilte Links",
"shared_link_clipboard_copied_massage": "Link kopiert", "shared_link_clipboard_copied_massage": "Link kopiert",
"shared_link_clipboard_text": "Link: {link}\nPasswort: {password}", "shared_link_clipboard_text": "Link: {}\nPasswort: {}",
"shared_link_create_error": "Fehler beim Erstellen der Linkfreigabe", "shared_link_create_error": "Fehler beim Erstellen der Linkfreigabe",
"shared_link_edit_description_hint": "Beschreibung eingeben", "shared_link_edit_description_hint": "Beschreibung eingeben",
"shared_link_edit_expire_after_option_day": "1 Tag", "shared_link_edit_expire_after_option_day": "1 Tag",
"shared_link_edit_expire_after_option_days": "{count} Tagen", "shared_link_edit_expire_after_option_days": "{} Tage",
"shared_link_edit_expire_after_option_hour": "1 Stunde", "shared_link_edit_expire_after_option_hour": "1 Stunde",
"shared_link_edit_expire_after_option_hours": "{count} Stunden", "shared_link_edit_expire_after_option_hours": "{} Stunden",
"shared_link_edit_expire_after_option_minute": "1 Minute", "shared_link_edit_expire_after_option_minute": "1 Minute",
"shared_link_edit_expire_after_option_minutes": "{count} Minuten", "shared_link_edit_expire_after_option_minutes": "{} Minuten",
"shared_link_edit_expire_after_option_months": "{count} Monaten", "shared_link_edit_expire_after_option_months": "{} Monate",
"shared_link_edit_expire_after_option_year": "{count} Jahr", "shared_link_edit_expire_after_option_year": "{} Jahr",
"shared_link_edit_password_hint": "Passwort eingeben", "shared_link_edit_password_hint": "Passwort eingeben",
"shared_link_edit_submit_button": "Link aktualisieren", "shared_link_edit_submit_button": "Link aktualisieren",
"shared_link_error_server_url_fetch": "Fehler beim Ermitteln der Server-URL", "shared_link_error_server_url_fetch": "Fehler beim Ermitteln der Server-URL",
"shared_link_expires_day": "Läuft ab in {count} Tag", "shared_link_expires_day": "Verfällt in {} Tag",
"shared_link_expires_days": "Läuft ab in {count} Tagen", "shared_link_expires_days": "Verfällt in {} Tagen",
"shared_link_expires_hour": "Läuft ab in {count} Stunde", "shared_link_expires_hour": "Verfällt in {} Stunde",
"shared_link_expires_hours": "Läuft ab in {count} Stunden", "shared_link_expires_hours": "Verfällt in {} Stunden",
"shared_link_expires_minute": "Läuft ab in {count} Minute", "shared_link_expires_minute": "Verfällt in {} Minute",
"shared_link_expires_minutes": "Läuft ab in {count} Minuten", "shared_link_expires_minutes": "Verfällt in {} Minuten",
"shared_link_expires_never": "Läuft nie ab", "shared_link_expires_never": "Läuft nie ab",
"shared_link_expires_second": "Läuft ab in {count} Sekunde", "shared_link_expires_second": "Verfällt in {} Sekunde",
"shared_link_expires_seconds": "Läuft ab in {count} Sekunden", "shared_link_expires_seconds": "Verfällt in {} Sekunden",
"shared_link_individual_shared": "Individuell geteilt", "shared_link_individual_shared": "Individuell geteilt",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Geteilte Links verwalten", "shared_link_manage_links": "Geteilte Links verwalten",
@@ -1753,7 +1729,6 @@
"stop_sharing_photos_with_user": "Aufhören Fotos mit diesem Benutzer zu teilen", "stop_sharing_photos_with_user": "Aufhören Fotos mit diesem Benutzer zu teilen",
"storage": "Speicherplatz", "storage": "Speicherplatz",
"storage_label": "Speicherpfad", "storage_label": "Speicherpfad",
"storage_quota": "Speicherplatz-Kontingent",
"storage_usage": "{used} von {available} verwendet", "storage_usage": "{used} von {available} verwendet",
"submit": "Bestätigen", "submit": "Bestätigen",
"suggestions": "Vorschläge", "suggestions": "Vorschläge",
@@ -1770,7 +1745,7 @@
"tag_assets": "Dateien taggen", "tag_assets": "Dateien taggen",
"tag_created": "Tag erstellt: {tag}", "tag_created": "Tag erstellt: {tag}",
"tag_feature_description": "Durchsuchen von Fotos und Videos, gruppiert nach logischen Tag-Themen", "tag_feature_description": "Durchsuchen von Fotos und Videos, gruppiert nach logischen Tag-Themen",
"tag_not_found_question": "Kein Tag vorhanden? <link>Erstelle einen neuen Tag.</link>", "tag_not_found_question": "Kein Tag zu finden? <link>Erstelle einen neuen Tag.</link>",
"tag_people": "Personen taggen", "tag_people": "Personen taggen",
"tag_updated": "Tag aktualisiert: {tag}", "tag_updated": "Tag aktualisiert: {tag}",
"tagged_assets": "{count, plural, one {# Datei} other {# Dateien}} getagged", "tagged_assets": "{count, plural, one {# Datei} other {# Dateien}} getagged",
@@ -1780,7 +1755,7 @@
"theme_selection": "Themenauswahl", "theme_selection": "Themenauswahl",
"theme_selection_description": "Automatische Einstellung des Themes auf Hell oder Dunkel, je nach Systemeinstellung des Browsers", "theme_selection_description": "Automatische Einstellung des Themes auf Hell oder Dunkel, je nach Systemeinstellung des Browsers",
"theme_setting_asset_list_storage_indicator_title": "Forschrittsbalken der Sicherung auf dem Vorschaubild", "theme_setting_asset_list_storage_indicator_title": "Forschrittsbalken der Sicherung auf dem Vorschaubild",
"theme_setting_asset_list_tiles_per_row_title": "Anzahl der Elemente pro Reihe ({count})", "theme_setting_asset_list_tiles_per_row_title": "Anzahl der Elemente pro Reihe ({})",
"theme_setting_colorful_interface_subtitle": "Primärfarbe auf App-Hintergrund anwenden.", "theme_setting_colorful_interface_subtitle": "Primärfarbe auf App-Hintergrund anwenden.",
"theme_setting_colorful_interface_title": "Farbige UI-Oberfläche", "theme_setting_colorful_interface_title": "Farbige UI-Oberfläche",
"theme_setting_image_viewer_quality_subtitle": "Einstellen der Qualität des Detailbildbetrachters", "theme_setting_image_viewer_quality_subtitle": "Einstellen der Qualität des Detailbildbetrachters",
@@ -1815,15 +1790,13 @@
"trash_no_results_message": "Gelöschte Fotos und Videos werden hier angezeigt.", "trash_no_results_message": "Gelöschte Fotos und Videos werden hier angezeigt.",
"trash_page_delete_all": "Alle löschen", "trash_page_delete_all": "Alle löschen",
"trash_page_empty_trash_dialog_content": "Elemente im Papierkorb löschen? Diese Elemente werden dauerhaft aus Immich entfernt", "trash_page_empty_trash_dialog_content": "Elemente im Papierkorb löschen? Diese Elemente werden dauerhaft aus Immich entfernt",
"trash_page_info": "Elemente im Papierkorb werden nach {days} Tagen endgültig gelöscht", "trash_page_info": "Elemente im Papierkorb werden nach {} Tagen endgültig gelöscht",
"trash_page_no_assets": "Es gibt keine Daten im Papierkorb", "trash_page_no_assets": "Es gibt keine Daten im Papierkorb",
"trash_page_restore_all": "Alle wiederherstellen", "trash_page_restore_all": "Alle wiederherstellen",
"trash_page_select_assets_btn": "Elemente auswählen", "trash_page_select_assets_btn": "Elemente auswählen",
"trash_page_title": "Papierkorb ({count})", "trash_page_title": "Papierkorb ({})",
"trashed_items_will_be_permanently_deleted_after": "Gelöschte Objekte werden nach {days, plural, one {# Tag} other {# Tagen}} endgültig gelöscht.", "trashed_items_will_be_permanently_deleted_after": "Gelöschte Objekte werden nach {days, plural, one {# Tag} other {# Tagen}} endgültig gelöscht.",
"type": "Typ", "type": "Typ",
"unable_to_change_pin_code": "PIN Code konnte nicht geändert werden",
"unable_to_setup_pin_code": "PIN Code konnte nicht festgelegt werden",
"unarchive": "Entarchivieren", "unarchive": "Entarchivieren",
"unarchived_count": "{count, plural, other {# entarchiviert}}", "unarchived_count": "{count, plural, other {# entarchiviert}}",
"unfavorite": "Entfavorisieren", "unfavorite": "Entfavorisieren",
@@ -1847,7 +1820,6 @@
"untracked_files": "Unverfolgte Dateien", "untracked_files": "Unverfolgte Dateien",
"untracked_files_decription": "Diese Dateien werden nicht von der Application getrackt. Sie können das Ergebnis fehlgeschlagener Verschiebungen, unterbrochener Uploads oder aufgrund eines Fehlers sein", "untracked_files_decription": "Diese Dateien werden nicht von der Application getrackt. Sie können das Ergebnis fehlgeschlagener Verschiebungen, unterbrochener Uploads oder aufgrund eines Fehlers sein",
"up_next": "Weiter", "up_next": "Weiter",
"updated_at": "Aktualisiert",
"updated_password": "Passwort aktualisiert", "updated_password": "Passwort aktualisiert",
"upload": "Hochladen", "upload": "Hochladen",
"upload_concurrency": "Parallelität beim Hochladen", "upload_concurrency": "Parallelität beim Hochladen",
@@ -1860,18 +1832,15 @@
"upload_status_errors": "Fehler", "upload_status_errors": "Fehler",
"upload_status_uploaded": "Hochgeladen", "upload_status_uploaded": "Hochgeladen",
"upload_success": "Hochladen erfolgreich. Aktualisiere die Seite, um neue hochgeladene Dateien zu sehen.", "upload_success": "Hochladen erfolgreich. Aktualisiere die Seite, um neue hochgeladene Dateien zu sehen.",
"upload_to_immich": "Auf Immich hochladen ({count})", "upload_to_immich": "Zu Immich hochladen ({})",
"uploading": "Wird hochgeladen", "uploading": "Wird hochgeladen",
"url": "URL", "url": "URL",
"usage": "Verwendung", "usage": "Verwendung",
"use_current_connection": "aktuelle Verbindung verwenden", "use_current_connection": "aktuelle Verbindung verwenden",
"use_custom_date_range": "Stattdessen einen benutzerdefinierten Datumsbereich verwenden", "use_custom_date_range": "Stattdessen einen benutzerdefinierten Datumsbereich verwenden",
"user": "Nutzer", "user": "Nutzer",
"user_has_been_deleted": "Dieser Benutzer wurde gelöscht.",
"user_id": "Nutzer-ID", "user_id": "Nutzer-ID",
"user_liked": "{type, select, photo {Dieses Foto} video {Dieses Video} asset {Diese Datei} other {Dies}} gefällt {user}", "user_liked": "{type, select, photo {Dieses Foto} video {Dieses Video} asset {Diese Datei} other {Dies}} gefällt {user}",
"user_pin_code_settings": "PIN Code",
"user_pin_code_settings_description": "Verwalte deinen PIN Code",
"user_purchase_settings": "Kauf", "user_purchase_settings": "Kauf",
"user_purchase_settings_description": "Kauf verwalten", "user_purchase_settings_description": "Kauf verwalten",
"user_role_set": "{user} als {role} festlegen", "user_role_set": "{user} als {role} festlegen",

View File

@@ -14,7 +14,7 @@
"add_a_location": "Προσθήκη μίας τοποθεσίας", "add_a_location": "Προσθήκη μίας τοποθεσίας",
"add_a_name": "Προσθήκη ονόματος", "add_a_name": "Προσθήκη ονόματος",
"add_a_title": "Προσθήκη τίτλου", "add_a_title": "Προσθήκη τίτλου",
"add_endpoint": "Προσθήκη τελικού σημείου", "add_endpoint": "Add endpoint",
"add_exclusion_pattern": "Προσθήκη μοτίβου αποκλεισμού", "add_exclusion_pattern": "Προσθήκη μοτίβου αποκλεισμού",
"add_import_path": "Προσθήκη μονοπατιού εισαγωγής", "add_import_path": "Προσθήκη μονοπατιού εισαγωγής",
"add_location": "Προσθήκη τοποθεσίας", "add_location": "Προσθήκη τοποθεσίας",
@@ -53,7 +53,6 @@
"confirm_email_below": "Για επιβεβαίωση, πληκτρολογήστε \"{email}\" παρακάτω", "confirm_email_below": "Για επιβεβαίωση, πληκτρολογήστε \"{email}\" παρακάτω",
"confirm_reprocess_all_faces": "Είστε βέβαιοι ότι θέλετε να επεξεργαστείτε ξανά όλα τα πρόσωπα; Αυτό θα εκκαθαρίσει ακόμα και τα άτομα στα οποία έχετε ήδη ορίσει το όνομα.", "confirm_reprocess_all_faces": "Είστε βέβαιοι ότι θέλετε να επεξεργαστείτε ξανά όλα τα πρόσωπα; Αυτό θα εκκαθαρίσει ακόμα και τα άτομα στα οποία έχετε ήδη ορίσει το όνομα.",
"confirm_user_password_reset": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε τον κωδικό πρόσβασης του χρήστη {user};", "confirm_user_password_reset": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε τον κωδικό πρόσβασης του χρήστη {user};",
"confirm_user_pin_code_reset": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε τον κωδικό PIN του χρήστη {user};",
"create_job": "Δημιουργία εργασίας", "create_job": "Δημιουργία εργασίας",
"cron_expression": "Σύνταξη Cron", "cron_expression": "Σύνταξη Cron",
"cron_expression_description": "Ορίστε το διάστημα σάρωσης χρησιμοποιώντας τη μορφή cron. Για περισσότερες πληροφορίες, ανατρέξτε π.χ. στο <link>Crontab Guru</link>", "cron_expression_description": "Ορίστε το διάστημα σάρωσης χρησιμοποιώντας τη μορφή cron. Για περισσότερες πληροφορίες, ανατρέξτε π.χ. στο <link>Crontab Guru</link>",
@@ -193,13 +192,20 @@
"oauth_auto_register": "Αυτόματη καταχώρηση", "oauth_auto_register": "Αυτόματη καταχώρηση",
"oauth_auto_register_description": "Αυτόματη καταχώρηση νέου χρήστη αφού συνδεθεί με OAuth", "oauth_auto_register_description": "Αυτόματη καταχώρηση νέου χρήστη αφού συνδεθεί με OAuth",
"oauth_button_text": "Κείμενο κουμπιού", "oauth_button_text": "Κείμενο κουμπιού",
"oauth_client_id": "Ταυτότητα πελάτη (Client)",
"oauth_client_secret": "Μυστικός κωδικός πελάτη",
"oauth_enable_description": "Σύνδεση με OAuth", "oauth_enable_description": "Σύνδεση με OAuth",
"oauth_issuer_url": "Διεύθυνση URL εκδότη",
"oauth_mobile_redirect_uri": "URI Ανακατεύθυνσης για κινητά τηλέφωνα", "oauth_mobile_redirect_uri": "URI Ανακατεύθυνσης για κινητά τηλέφωνα",
"oauth_mobile_redirect_uri_override": "Προσπέλαση URI ανακατεύθυνσης για κινητά τηλέφωνα", "oauth_mobile_redirect_uri_override": "Προσπέλαση URI ανακατεύθυνσης για κινητά τηλέφωνα",
"oauth_mobile_redirect_uri_override_description": "Ενεργοποιήστε το όταν ο πάροχος OAuth δεν επιτρέπει μια URI για κινητά, όπως το '{callback}'", "oauth_mobile_redirect_uri_override_description": "Ενεργοποιήστε το όταν ο πάροχος OAuth δεν επιτρέπει μια URI για κινητά, όπως το '{callback}'",
"oauth_profile_signing_algorithm": "Αλγόριθμος σύνδεσης προφίλ",
"oauth_profile_signing_algorithm_description": "Αλγόριθμος που χρησιμοποιείται για την σύνδεση των χρηστών.",
"oauth_scope": "Εύρος",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "Διαχείριση ρυθμίσεων σύνδεσης OAuth", "oauth_settings_description": "Διαχείριση ρυθμίσεων σύνδεσης OAuth",
"oauth_settings_more_details": "Για περισσότερες λεπτομέρειες σχετικά με αυτήν τη δυνατότητα, ανατρέξτε στην <link>τεκμηρίωση</link>.", "oauth_settings_more_details": "Για περισσότερες λεπτομέρειες σχετικά με αυτήν τη δυνατότητα, ανατρέξτε στην <link>τεκμηρίωση</link>.",
"oauth_signing_algorithm": "Αλγόριθμος υπογραφής",
"oauth_storage_label_claim": "Δήλωση ετικέτας αποθήκευσης", "oauth_storage_label_claim": "Δήλωση ετικέτας αποθήκευσης",
"oauth_storage_label_claim_description": "Ορίζει αυτόματα την ετικέτα αποθήκευσης του χρήστη στη δηλωμένη τιμή.", "oauth_storage_label_claim_description": "Ορίζει αυτόματα την ετικέτα αποθήκευσης του χρήστη στη δηλωμένη τιμή.",
"oauth_storage_quota_claim": "Δήλωση ποσοστού αποθήκευσης", "oauth_storage_quota_claim": "Δήλωση ποσοστού αποθήκευσης",
@@ -346,7 +352,6 @@
"user_delete_delay_settings_description": "Αριθμός ημερών μετά την αφαίρεση, για την οριστική διαγραφή του λογαριασμού και των αρχείων ενός χρήστη. Η εργασία διαγραφής χρηστών εκτελείται τα μεσάνυχτα, για να ελέγξει ποιοι χρήστες είναι έτοιμοι για διαγραφή. Οι αλλαγές σε αυτή τη ρύθμιση θα αξιολογηθούν κατά την επόμενη εκτέλεση.", "user_delete_delay_settings_description": "Αριθμός ημερών μετά την αφαίρεση, για την οριστική διαγραφή του λογαριασμού και των αρχείων ενός χρήστη. Η εργασία διαγραφής χρηστών εκτελείται τα μεσάνυχτα, για να ελέγξει ποιοι χρήστες είναι έτοιμοι για διαγραφή. Οι αλλαγές σε αυτή τη ρύθμιση θα αξιολογηθούν κατά την επόμενη εκτέλεση.",
"user_delete_immediately": "Ο λογαριασμός και τα αρχεία του/της <b>{user}</b> θα μπουν στην ουρά για οριστική διαγραφή, <b>άμεσα</b>.", "user_delete_immediately": "Ο λογαριασμός και τα αρχεία του/της <b>{user}</b> θα μπουν στην ουρά για οριστική διαγραφή, <b>άμεσα</b>.",
"user_delete_immediately_checkbox": "Βάλε τον χρήστη και τα αρχεία του στην ουρά για άμεση διαγραφή", "user_delete_immediately_checkbox": "Βάλε τον χρήστη και τα αρχεία του στην ουρά για άμεση διαγραφή",
"user_details": "Λεπτομέρειες χρήστη",
"user_management": "Διαχείριση χρηστών", "user_management": "Διαχείριση χρηστών",
"user_password_has_been_reset": "Ο κωδικός πρόσβασης του χρήστη έχει επαναρυθμιστεί:", "user_password_has_been_reset": "Ο κωδικός πρόσβασης του χρήστη έχει επαναρυθμιστεί:",
"user_password_reset_description": "Παρακαλώ παρέχετε τον προσωρινό κωδικό πρόσβασης στον χρήστη και ενημερώστε τον ότι θα πρέπει να τον αλλάξει, κατά την επόμενη σύνδεσή του.", "user_password_reset_description": "Παρακαλώ παρέχετε τον προσωρινό κωδικό πρόσβασης στον χρήστη και ενημερώστε τον ότι θα πρέπει να τον αλλάξει, κατά την επόμενη σύνδεσή του.",
@@ -368,9 +373,9 @@
"advanced": "Για προχωρημένους", "advanced": "Για προχωρημένους",
"advanced_settings_enable_alternate_media_filter_subtitle": "Χρησιμοποιήστε αυτήν την επιλογή για να φιλτράρετε τα μέσα ενημέρωσης κατά τον συγχρονισμό με βάση εναλλακτικά κριτήρια. Δοκιμάστε αυτή τη δυνατότητα μόνο αν έχετε προβλήματα με την εφαρμογή που εντοπίζει όλα τα άλμπουμ.", "advanced_settings_enable_alternate_media_filter_subtitle": "Χρησιμοποιήστε αυτήν την επιλογή για να φιλτράρετε τα μέσα ενημέρωσης κατά τον συγχρονισμό με βάση εναλλακτικά κριτήρια. Δοκιμάστε αυτή τη δυνατότητα μόνο αν έχετε προβλήματα με την εφαρμογή που εντοπίζει όλα τα άλμπουμ.",
"advanced_settings_enable_alternate_media_filter_title": "[ΠΕΙΡΑΜΑΤΙΚΟ] Χρήση εναλλακτικού φίλτρου συγχρονισμού άλμπουμ συσκευής", "advanced_settings_enable_alternate_media_filter_title": "[ΠΕΙΡΑΜΑΤΙΚΟ] Χρήση εναλλακτικού φίλτρου συγχρονισμού άλμπουμ συσκευής",
"advanced_settings_log_level_title": "Επίπεδο σύνδεσης: {level}", "advanced_settings_log_level_title": "Επίπεδο σύνδεσης: {}",
"advanced_settings_prefer_remote_subtitle": "Μερικές συσκευές αργούν πολύ να φορτώσουν μικρογραφίες από αρχεία στη συσκευή. Ενεργοποιήστε αυτήν τη ρύθμιση για να φορτώνονται αντί αυτού απομακρυσμένες εικόνες.", "advanced_settings_prefer_remote_subtitle": "Μερικές συσκευές αργούν πολύ να φορτώσουν μικρογραφίες από αρχεία στη συσκευή. Ενεργοποιήστε αυτήν τη ρύθμιση για να φορτώνονται αντί αυτού απομακρυσμένες εικόνες.",
"advanced_settings_prefer_remote_title": "Προτίμηση απομακρυσμένων εικόνων", "advanced_settings_prefer_remote_title": "Προτίμηση απομακρυσμένων εικόνων.",
"advanced_settings_proxy_headers_subtitle": "Καθορισμός κεφαλίδων διακομιστή μεσολάβησης που το Immich πρέπει να στέλνει με κάθε αίτημα δικτύου", "advanced_settings_proxy_headers_subtitle": "Καθορισμός κεφαλίδων διακομιστή μεσολάβησης που το Immich πρέπει να στέλνει με κάθε αίτημα δικτύου",
"advanced_settings_proxy_headers_title": "Κεφαλίδες διακομιστή μεσολάβησης", "advanced_settings_proxy_headers_title": "Κεφαλίδες διακομιστή μεσολάβησης",
"advanced_settings_self_signed_ssl_subtitle": "Παρακάμπτει τον έλεγχο πιστοποιητικού SSL του διακομιστή. Απαραίτητο για αυτο-υπογεγραμμένα πιστοποιητικά.", "advanced_settings_self_signed_ssl_subtitle": "Παρακάμπτει τον έλεγχο πιστοποιητικού SSL του διακομιστή. Απαραίτητο για αυτο-υπογεγραμμένα πιστοποιητικά.",
@@ -399,9 +404,9 @@
"album_remove_user_confirmation": "Είστε σίγουροι ότι θέλετε να αφαιρέσετε τον/την {user};", "album_remove_user_confirmation": "Είστε σίγουροι ότι θέλετε να αφαιρέσετε τον/την {user};",
"album_share_no_users": "Φαίνεται ότι έχετε κοινοποιήσει αυτό το άλμπουμ σε όλους τους χρήστες ή δεν έχετε χρήστες για να το κοινοποιήσετε.", "album_share_no_users": "Φαίνεται ότι έχετε κοινοποιήσει αυτό το άλμπουμ σε όλους τους χρήστες ή δεν έχετε χρήστες για να το κοινοποιήσετε.",
"album_thumbnail_card_item": "1 αντικείμενο", "album_thumbnail_card_item": "1 αντικείμενο",
"album_thumbnail_card_items": "{count} αντικείμενα", "album_thumbnail_card_items": "{} αντικείμενα",
"album_thumbnail_card_shared": " Κοινόχρηστο", "album_thumbnail_card_shared": "· Κοινόχρηστο",
"album_thumbnail_shared_by": "Κοινοποιημένο από {user}", "album_thumbnail_shared_by": "Κοινοποιημένο από {}",
"album_updated": "Το άλμπουμ, ενημερώθηκε", "album_updated": "Το άλμπουμ, ενημερώθηκε",
"album_updated_setting_description": "Λάβετε ειδοποίηση μέσω email όταν ένα κοινόχρηστο άλμπουμ έχει νέα αρχεία", "album_updated_setting_description": "Λάβετε ειδοποίηση μέσω email όταν ένα κοινόχρηστο άλμπουμ έχει νέα αρχεία",
"album_user_left": "Αποχωρήσατε από το {album}", "album_user_left": "Αποχωρήσατε από το {album}",
@@ -439,7 +444,7 @@
"archive": "Αρχείο", "archive": "Αρχείο",
"archive_or_unarchive_photo": "Αρχειοθέτηση ή αποαρχειοθέτηση φωτογραφίας", "archive_or_unarchive_photo": "Αρχειοθέτηση ή αποαρχειοθέτηση φωτογραφίας",
"archive_page_no_archived_assets": "Δε βρέθηκαν αρχειοθετημένα στοιχεία", "archive_page_no_archived_assets": "Δε βρέθηκαν αρχειοθετημένα στοιχεία",
"archive_page_title": "Αρχείο ({count})", "archive_page_title": "Αρχείο ({})",
"archive_size": "Μέγεθος Αρχείου", "archive_size": "Μέγεθος Αρχείου",
"archive_size_description": "Ρυθμίστε το μέγεθος του αρχείου για λήψεις (σε GiB)", "archive_size_description": "Ρυθμίστε το μέγεθος του αρχείου για λήψεις (σε GiB)",
"archived": "Αρχείο", "archived": "Αρχείο",
@@ -469,46 +474,46 @@
"asset_skipped_in_trash": "Στον κάδο απορριμμάτων", "asset_skipped_in_trash": "Στον κάδο απορριμμάτων",
"asset_uploaded": "Ανεβάστηκε", "asset_uploaded": "Ανεβάστηκε",
"asset_uploading": "Ανεβάζεται…", "asset_uploading": "Ανεβάζεται…",
"asset_viewer_settings_subtitle": "Διαχείριση ρυθμίσεων προβολής συλλογής", "asset_viewer_settings_subtitle": "Manage your gallery viewer settings",
"asset_viewer_settings_title": "Προβολή Στοιχείων", "asset_viewer_settings_title": "Προβολή Στοιχείων",
"assets": "Αντικείμενα", "assets": "Αντικείμενα",
"assets_added_count": "Προστέθηκε {count, plural, one {# αρχείο} other {# αρχεία}}", "assets_added_count": "Προστέθηκε {count, plural, one {# αρχείο} other {# αρχεία}}",
"assets_added_to_album_count": "Προστέθηκε {count, plural, one {# αρχείο} other {# αρχεία}} στο άλμπουμ", "assets_added_to_album_count": "Προστέθηκε {count, plural, one {# αρχείο} other {# αρχεία}} στο άλμπουμ",
"assets_added_to_name_count": "Προστέθηκε {count, plural, one {# αρχείο} other {# αρχεία}} στο {hasName, select, true {<b>{name}</b>} other {νέο άλμπουμ}}", "assets_added_to_name_count": "Προστέθηκε {count, plural, one {# αρχείο} other {# αρχεία}} στο {hasName, select, true {<b>{name}</b>} other {νέο άλμπουμ}}",
"assets_count": "{count, plural, one {# αρχείο} other {# αρχεία}}", "assets_count": "{count, plural, one {# αρχείο} other {# αρχεία}}",
"assets_deleted_permanently": "{count} τα στοιχεία διαγράφηκαν οριστικά", "assets_deleted_permanently": "{} στοιχείο(-α) διαγράφηκε(-αν) οριστικά",
"assets_deleted_permanently_from_server": "{count} στοιχεία διαγράφηκαν οριστικά από το διακομιστή Immich", "assets_deleted_permanently_from_server": "{} στοιχείο(α) διαγράφηκε(-αν) οριστικά από τον διακομιστή Immich",
"assets_moved_to_trash_count": "Μετακινήθηκαν {count, plural, one {# αρχείο} other {# αρχεία}} στον κάδο απορριμμάτων", "assets_moved_to_trash_count": "Μετακινήθηκε/καν {count, plural, one {# αρχείο} other {# αρχεία}} στον κάδο απορριμμάτων",
"assets_permanently_deleted_count": "Διαγράφηκαν μόνιμα {count, plural, one {# αρχείο} other {# αρχεία}}", "assets_permanently_deleted_count": "Διαγράφηκε/καν μόνιμα {count, plural, one {# αρχείο} other {# αρχεία}}",
"assets_removed_count": "Αφαιρέθηκαν {count, plural, one {# αρχείο} other {# αρχεία}}", "assets_removed_count": "Αφαιρέθηκαν {count, plural, one {# αρχείο} other {# αρχεία}}",
"assets_removed_permanently_from_device": "{count} στοιχεία καταργήθηκαν οριστικά από τη συσκευή σας", "assets_removed_permanently_from_device": "{} στοιχεία καταργήθηκαν οριστικά από τη συσκευή σας",
"assets_restore_confirmation": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε όλα τα στοιχεία που βρίσκονται στον κάδο απορριμμάτων; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί! Λάβετε υπόψη ότι δεν θα είναι δυνατή η επαναφορά στοιχείων εκτός σύνδεσης.", "assets_restore_confirmation": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε όλα τα στοιχεία που βρίσκονται στον κάδο απορριμμάτων; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί! Λάβετε υπόψη ότι δεν θα είναι δυνατή η επαναφορά στοιχείων εκτός σύνδεσης.",
"assets_restored_count": "Έγινε επαναφορά {count, plural, one {# στοιχείου} other {# στοιχείων}}", "assets_restored_count": "Έγινε επαναφορά {count, plural, one {# στοιχείου} other {# στοιχείων}}",
"assets_restored_successfully": "{count} στοιχεία αποκαταστάθηκαν με επιτυχία", "assets_restored_successfully": "{} στοιχεία αποκαταστάθηκαν με επιτυχία",
"assets_trashed": "{} στοιχεία μεταφέρθηκαν στον κάδο απορριμμάτων", "assets_trashed": "{} στοιχεία μεταφέρθηκαν στον κάδο απορριμμάτων",
"assets_trashed_count": "Μετακιν. στον κάδο απορριμάτων {count, plural, one {# στοιχείο} other {# στοιχεία}}", "assets_trashed_count": "Μετακιν. στον κάδο απορριμάτων {count, plural, one {# στοιχείο} other {# στοιχεία}}",
"assets_trashed_from_server": "{} στοιχεία μεταφέρθηκαν στον κάδο απορριμμάτων από το διακομιστή Immich", "assets_trashed_from_server": "{} στοιχεία μεταφέρθηκαν στον κάδο απορριμμάτων από τον διακομιστή Immich",
"assets_were_part_of_album_count": "{count, plural, one {Το στοιχείο ανήκει} other {Τα στοιχεία ανήκουν}} ήδη στο άλμπουμ", "assets_were_part_of_album_count": "{count, plural, one {Το στοιχείο ανήκει} other {Τα στοιχεία ανήκουν}} ήδη στο άλμπουμ",
"authorized_devices": "Εξουσιοδοτημένες Συσκευές", "authorized_devices": "Εξουσιοδοτημένες Συσκευές",
"automatic_endpoint_switching_subtitle": "Σύνδεση τοπικά μέσω του καθορισμένου Wi-Fi όταν είναι διαθέσιμο και χρήση εναλλακτικών συνδέσεων αλλού", "automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
"automatic_endpoint_switching_title": "Αυτόματη εναλλαγή URL", "automatic_endpoint_switching_title": "Automatic URL switching",
"back": "Πίσω", "back": "Πίσω",
"back_close_deselect": "Πίσω, κλείσιμο ή αποεπιλογή", "back_close_deselect": "Πίσω, κλείσιμο ή αποεπιλογή",
"background_location_permission": "Άδεια τοποθεσίας στο παρασκήνιο", "background_location_permission": "Background location permission",
"background_location_permission_content": "Το Immich για να μπορεί να αλλάζει δίκτυα όταν τρέχει στο παρασκήνιο, πρέπει *πάντα* να έχει πρόσβαση στην ακριβή τοποθεσία ώστε η εφαρμογή να μπορεί να διαβάζει το όνομα του δικτύου Wi-Fi", "background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name",
"backup_album_selection_page_albums_device": "Άλμπουμ στη συσκευή ({})", "backup_album_selection_page_albums_device": "Άλμπουμ στη συσκευή ({})",
"backup_album_selection_page_albums_tap": "Πάτημα για συμπερίληψη, διπλό πάτημα για εξαίρεση", "backup_album_selection_page_albums_tap": "Πάτημα για συμπερίληψη, διπλό πάτημα για εξαίρεση",
"backup_album_selection_page_assets_scatter": "Τα στοιχεία μπορεί να διασκορπιστούν σε πολλά άλμπουμ. Έτσι, τα άλμπουμ μπορούν να περιληφθούν ή να εξαιρεθούν κατά τη διαδικασία δημιουργίας αντιγράφων ασφαλείας.", "backup_album_selection_page_assets_scatter": "Τα στοιχεία μπορεί να διασκορπιστούν σε πολλά άλμπουμ. Έτσι, τα άλμπουμ μπορούν να περιληφθούν ή να εξαιρεθούν κατά τη διαδικασία δημιουργίας αντιγράφων ασφαλείας.",
"backup_album_selection_page_select_albums": "Επιλογή άλμπουμ", "backup_album_selection_page_select_albums": "Επιλογή άλμπουμ",
"backup_album_selection_page_selection_info": "Πληροφορίες επιλογής", "backup_album_selection_page_selection_info": "Πληροφορίες επιλογής",
"backup_album_selection_page_total_assets": "Συνολικά μοναδικά στοιχεία", "backup_album_selection_page_total_assets": "Συνολικά μοναδικά στοιχεία",
"backup_all": "Όλα", "backup_all": "Όλα",
"backup_background_service_backup_failed_message": "Αποτυχία δημιουργίας αντιγράφων ασφαλείας. Επανάληψη", "backup_background_service_backup_failed_message": "Αποτυχία δημιουργίας αντιγράφων ασφαλείας. Επανάληψη...",
"backup_background_service_connection_failed_message": "Αποτυχία σύνδεσης με το διακομιστή. Επανάληψη", "backup_background_service_connection_failed_message": "Αποτυχία σύνδεσης με το διακομιστή. Επανάληψη...",
"backup_background_service_current_upload_notification": "Μεταφόρτωση {}", "backup_background_service_current_upload_notification": "Μεταφόρτωση {}",
"backup_background_service_default_notification": "Έλεγχος για νέα στοιχεία", "backup_background_service_default_notification": "Έλεγχος για νέα στοιχεία...",
"backup_background_service_error_title": "Σφάλμα δημιουργίας αντιγράφων ασφαλείας", "backup_background_service_error_title": "Σφάλμα δημιουργίας αντιγράφων ασφαλείας",
"backup_background_service_in_progress_notification": "Δημιουργία αντιγράφων ασφαλείας των στοιχείων σας", "backup_background_service_in_progress_notification": "Δημιουργία αντιγράφων ασφαλείας των στοιχείων σας...",
"backup_background_service_upload_failure_notification": "Αποτυχία μεταφόρτωσης {}", "backup_background_service_upload_failure_notification": "Αποτυχία μεταφόρτωσης {}",
"backup_controller_page_albums": "Δημιουργία αντιγράφων ασφαλείας άλμπουμ", "backup_controller_page_albums": "Δημιουργία αντιγράφων ασφαλείας άλμπουμ",
"backup_controller_page_background_app_refresh_disabled_content": "Ενεργοποιήστε την ανανέωση εφαρμογής στο παρασκήνιο στις Ρυθμίσεις > Γενικά > Ανανέωση Εφαρμογής στο Παρασκήνιο για να χρησιμοποιήσετε την δημιουργία αντιγράφων ασφαλείας στο παρασκήνιο.", "backup_controller_page_background_app_refresh_disabled_content": "Ενεργοποιήστε την ανανέωση εφαρμογής στο παρασκήνιο στις Ρυθμίσεις > Γενικά > Ανανέωση Εφαρμογής στο Παρασκήνιο για να χρησιμοποιήσετε την δημιουργία αντιγράφων ασφαλείας στο παρασκήνιο.",
@@ -526,7 +531,7 @@
"backup_controller_page_background_is_on": "Η αυτόματη δημιουργία αντιγράφων ασφαλείας στο παρασκήνιο είναι ενεργοποιημένη", "backup_controller_page_background_is_on": "Η αυτόματη δημιουργία αντιγράφων ασφαλείας στο παρασκήνιο είναι ενεργοποιημένη",
"backup_controller_page_background_turn_off": "Απενεργοποίηση υπηρεσίας παρασκηνίου", "backup_controller_page_background_turn_off": "Απενεργοποίηση υπηρεσίας παρασκηνίου",
"backup_controller_page_background_turn_on": "Ενεργοποίηση υπηρεσίας παρασκηνίου", "backup_controller_page_background_turn_on": "Ενεργοποίηση υπηρεσίας παρασκηνίου",
"backup_controller_page_background_wifi": "Μόνο σε σύνδεση Wi-Fi", "backup_controller_page_background_wifi": "Μόνο σε σύνδεση WiFi",
"backup_controller_page_backup": "Αντίγραφα ασφαλείας", "backup_controller_page_backup": "Αντίγραφα ασφαλείας",
"backup_controller_page_backup_selected": "Επιλεγμένα: ", "backup_controller_page_backup_selected": "Επιλεγμένα: ",
"backup_controller_page_backup_sub": "Φωτογραφίες και βίντεο για τα οποία έχουν δημιουργηθεί αντίγραφα ασφαλείας", "backup_controller_page_backup_sub": "Φωτογραφίες και βίντεο για τα οποία έχουν δημιουργηθεί αντίγραφα ασφαλείας",
@@ -542,13 +547,13 @@
"backup_controller_page_remainder_sub": "Υπόλοιπες φωτογραφίες και βίντεο για αντιγραφή ασφαλείας από την επιλογή", "backup_controller_page_remainder_sub": "Υπόλοιπες φωτογραφίες και βίντεο για αντιγραφή ασφαλείας από την επιλογή",
"backup_controller_page_server_storage": "Χωρητικότητα Διακομιστή", "backup_controller_page_server_storage": "Χωρητικότητα Διακομιστή",
"backup_controller_page_start_backup": "Έναρξη δημιουργίας αντιγράφου ασφαλείας", "backup_controller_page_start_backup": "Έναρξη δημιουργίας αντιγράφου ασφαλείας",
"backup_controller_page_status_off": "Η αυτόματη δημιουργία αντιγράφου ασφαλείας στο προσκήνιο, είναι απενεργοποιημένη", "backup_controller_page_status_off": "Η αυτόματη δημιουργία αντιγράφου ασφαλείας στο προσκήνιο είναι απενεργοποιημένη\n",
"backup_controller_page_status_on": "Η αυτόματη δημιουργία αντιγράφου ασφαλείας στο προσκήνιο είναι ενεργοποιημένη", "backup_controller_page_status_on": "Η αυτόματη δημιουργία αντιγράφου ασφαλείας στο προσκήνιο είναι ενεργοποιημένη",
"backup_controller_page_storage_format": "{} από {} σε χρήση", "backup_controller_page_storage_format": "{} από {} σε χρήση",
"backup_controller_page_to_backup": "Άλμπουμ για δημιουργία αντιγράφου ασφαλείας", "backup_controller_page_to_backup": "Άλμπουμ για δημιουργία αντιγράφου ασφαλείας",
"backup_controller_page_total_sub": "Όλες οι μοναδικές φωτογραφίες και βίντεο από τα επιλεγμένα άλμπουμ", "backup_controller_page_total_sub": "Όλες οι μοναδικές φωτογραφίες και βίντεο από τα επιλεγμένα άλμπουμ\n",
"backup_controller_page_turn_off": "Απενεργοποίηση δημιουργίας αντιγράφου ασφαλείας στο προσκήνιο", "backup_controller_page_turn_off": "Απενεργοποίηση δημιουργίας αντιγράφου ασφαλείας στο προσκήνιο\n",
"backup_controller_page_turn_on": "Ενεργοποίηση δημιουργίας αντιγράφου ασφαλείας στο προσκήνιο", "backup_controller_page_turn_on": "Ενεργοποίηση δημιουργίας αντιγράφου ασφαλείας στο προσκήνιο\n",
"backup_controller_page_uploading_file_info": "Μεταφόρτωση πληροφοριών αρχείου", "backup_controller_page_uploading_file_info": "Μεταφόρτωση πληροφοριών αρχείου",
"backup_err_only_album": "Δεν είναι δυνατή η αφαίρεση του μοναδικού άλμπουμ", "backup_err_only_album": "Δεν είναι δυνατή η αφαίρεση του μοναδικού άλμπουμ",
"backup_info_card_assets": "στοιχεία", "backup_info_card_assets": "στοιχεία",
@@ -557,7 +562,7 @@
"backup_manual_success": "Επιτυχία", "backup_manual_success": "Επιτυχία",
"backup_manual_title": "Κατάσταση μεταφόρτωσης", "backup_manual_title": "Κατάσταση μεταφόρτωσης",
"backup_options_page_title": "Επιλογές αντιγράφων ασφαλείας", "backup_options_page_title": "Επιλογές αντιγράφων ασφαλείας",
"backup_setting_subtitle": "Διαχείριση ρυθμίσεων μεταφόρτωσης στο παρασκήνιο και στο προσκήνιο", "backup_setting_subtitle": "Manage background and foreground upload settings",
"backward": "Προς τα πίσω", "backward": "Προς τα πίσω",
"birthdate_saved": "Η ημερομηνία γέννησης αποθηκεύτηκε επιτυχώς", "birthdate_saved": "Η ημερομηνία γέννησης αποθηκεύτηκε επιτυχώς",
"birthdate_set_description": "Η ημερομηνία γέννησης χρησιμοποιείται για τον υπολογισμό της ηλικίας αυτού του ατόμου, τη χρονική στιγμή μιας φωτογραφίας.", "birthdate_set_description": "Η ημερομηνία γέννησης χρησιμοποιείται για τον υπολογισμό της ηλικίας αυτού του ατόμου, τη χρονική στιγμή μιας φωτογραφίας.",
@@ -574,7 +579,7 @@
"cache_settings_clear_cache_button_title": "Καθαρίζει τη προσωρινή μνήμη της εφαρμογής. Αυτό θα επηρεάσει σημαντικά την απόδοση της εφαρμογής μέχρι να αναδημιουργηθεί η προσωρινή μνήμη.", "cache_settings_clear_cache_button_title": "Καθαρίζει τη προσωρινή μνήμη της εφαρμογής. Αυτό θα επηρεάσει σημαντικά την απόδοση της εφαρμογής μέχρι να αναδημιουργηθεί η προσωρινή μνήμη.",
"cache_settings_duplicated_assets_clear_button": "ΕΚΚΑΘΑΡΙΣΗ", "cache_settings_duplicated_assets_clear_button": "ΕΚΚΑΘΑΡΙΣΗ",
"cache_settings_duplicated_assets_subtitle": "Φωτογραφίες και βίντεο που έχουν μπει στη μαύρη λίστα από την εφαρμογή", "cache_settings_duplicated_assets_subtitle": "Φωτογραφίες και βίντεο που έχουν μπει στη μαύρη λίστα από την εφαρμογή",
"cache_settings_duplicated_assets_title": "Διπλότυπα στοιχεία ({})", "cache_settings_duplicated_assets_title": "Διπλά στοιχεία ({})",
"cache_settings_image_cache_size": "Μέγεθος προσωρινής μνήμης εικόνων ({} στοιχεία)", "cache_settings_image_cache_size": "Μέγεθος προσωρινής μνήμης εικόνων ({} στοιχεία)",
"cache_settings_statistics_album": "Μικρογραφίες βιβλιοθήκης", "cache_settings_statistics_album": "Μικρογραφίες βιβλιοθήκης",
"cache_settings_statistics_assets": "{} στοιχεία ({})", "cache_settings_statistics_assets": "{} στοιχεία ({})",
@@ -592,12 +597,12 @@
"camera_model": "Μοντέλο κάμερας", "camera_model": "Μοντέλο κάμερας",
"cancel": "Ακύρωση", "cancel": "Ακύρωση",
"cancel_search": "Ακύρωση αναζήτησης", "cancel_search": "Ακύρωση αναζήτησης",
"canceled": "Ακυρωμένο", "canceled": "Canceled",
"cannot_merge_people": "Αδύνατη η συγχώνευση ατόμων", "cannot_merge_people": "Αδύνατη η συγχώνευση ατόμων",
"cannot_undo_this_action": "Δεν μπορείτε να αναιρέσετε αυτήν την ενέργεια!", "cannot_undo_this_action": "Δεν μπορείτε να αναιρέσετε αυτήν την ενέργεια!",
"cannot_update_the_description": "Αδύνατη η ενημέρωση της περιγραφής", "cannot_update_the_description": "Αδύνατη η ενημέρωση της περιγραφής",
"change_date": "Αλλαγή ημερομηνίας", "change_date": "Αλλαγή ημερομηνίας",
"change_display_order": "Αλλαγή σειράς εμφάνισης", "change_display_order": "Change display order",
"change_expiration_time": "Αλλαγή χρόνου λήξης", "change_expiration_time": "Αλλαγή χρόνου λήξης",
"change_location": "Αλλαγή τοποθεσίας", "change_location": "Αλλαγή τοποθεσίας",
"change_name": "Αλλαγή ονομασίας", "change_name": "Αλλαγή ονομασίας",
@@ -612,9 +617,9 @@
"change_your_password": "Αλλάξτε τον κωδικό σας", "change_your_password": "Αλλάξτε τον κωδικό σας",
"changed_visibility_successfully": "Η προβολή, άλλαξε με επιτυχία", "changed_visibility_successfully": "Η προβολή, άλλαξε με επιτυχία",
"check_all": "Επιλογή Όλων", "check_all": "Επιλογή Όλων",
"check_corrupt_asset_backup": "Έλεγχος για κατεστραμμένα αντίγραφα ασφαλείας στοιχείων", "check_corrupt_asset_backup": "Check for corrupt asset backups",
"check_corrupt_asset_backup_button": "Εκτέλεση ελέγχου", "check_corrupt_asset_backup_button": "Perform check",
"check_corrupt_asset_backup_description": "Εκτέλεσε αυτόν τον έλεγχο μόνο μέσω Wi-Fi και αφού έχουν αποθηκευτεί όλα τα αντίγραφα ασφαλείας των στοιχείων. Η διαδικασία μπορεί να διαρκέσει μερικά λεπτά.", "check_corrupt_asset_backup_description": "Run this check only over Wi-Fi and once all assets have been backed-up. The procedure might take a few minutes.",
"check_logs": "Ελέγξτε τα αρχεία καταγραφής", "check_logs": "Ελέγξτε τα αρχεία καταγραφής",
"choose_matching_people_to_merge": "Επιλέξτε τα αντίστοιχα άτομα για συγχώνευση", "choose_matching_people_to_merge": "Επιλέξτε τα αντίστοιχα άτομα για συγχώνευση",
"city": "Πόλη", "city": "Πόλη",
@@ -643,7 +648,7 @@
"comments_are_disabled": "Τα σχόλια είναι απενεργοποιημένα", "comments_are_disabled": "Τα σχόλια είναι απενεργοποιημένα",
"common_create_new_album": "Δημιουργία νέου άλμπουμ", "common_create_new_album": "Δημιουργία νέου άλμπουμ",
"common_server_error": "Ελέγξτε τη σύνδεσή σας, βεβαιωθείτε ότι ο διακομιστής είναι προσβάσιμος και ότι οι εκδόσεις της εφαρμογής/διακομιστή είναι συμβατές.", "common_server_error": "Ελέγξτε τη σύνδεσή σας, βεβαιωθείτε ότι ο διακομιστής είναι προσβάσιμος και ότι οι εκδόσεις της εφαρμογής/διακομιστή είναι συμβατές.",
"completed": "Ολοκληρώθηκε", "completed": "Completed",
"confirm": "Επιβεβαίωση", "confirm": "Επιβεβαίωση",
"confirm_admin_password": "Επιβεβαίωση κωδικού Διαχειριστή", "confirm_admin_password": "Επιβεβαίωση κωδικού Διαχειριστή",
"confirm_delete_face": "Είστε σίγουροι ότι θέλετε να διαγράψετε το πρόσωπο του/της {name} από το στοιχείο;", "confirm_delete_face": "Είστε σίγουροι ότι θέλετε να διαγράψετε το πρόσωπο του/της {name} από το στοιχείο;",
@@ -659,7 +664,7 @@
"control_bottom_app_bar_delete_from_local": "Διαγραφή από τη συσκευή", "control_bottom_app_bar_delete_from_local": "Διαγραφή από τη συσκευή",
"control_bottom_app_bar_edit_location": "Επεξεργασία Τοποθεσίας", "control_bottom_app_bar_edit_location": "Επεξεργασία Τοποθεσίας",
"control_bottom_app_bar_edit_time": "Επεξεργασία Ημερομηνίας & Ώρας", "control_bottom_app_bar_edit_time": "Επεξεργασία Ημερομηνίας & Ώρας",
"control_bottom_app_bar_share_link": "Κοινοποιήστε το σύνδεσμο", "control_bottom_app_bar_share_link": "Share Link",
"control_bottom_app_bar_share_to": "Κοινοποίηση Σε", "control_bottom_app_bar_share_to": "Κοινοποίηση Σε",
"control_bottom_app_bar_trash_from_immich": "Μετακίνηση στα Απορρίμματα", "control_bottom_app_bar_trash_from_immich": "Μετακίνηση στα Απορρίμματα",
"copied_image_to_clipboard": "Η εικόνα αντιγράφηκε στο πρόχειρο.", "copied_image_to_clipboard": "Η εικόνα αντιγράφηκε στο πρόχειρο.",
@@ -694,7 +699,7 @@
"crop": "Αποκοπή", "crop": "Αποκοπή",
"curated_object_page_title": "Πράγματα", "curated_object_page_title": "Πράγματα",
"current_device": "Τρέχουσα συσκευή", "current_device": "Τρέχουσα συσκευή",
"current_server_address": "Τρέχουσα διεύθυνση διακομιστή", "current_server_address": "Current server address",
"custom_locale": "Προσαρμοσμένη Τοπική Ρύθμιση", "custom_locale": "Προσαρμοσμένη Τοπική Ρύθμιση",
"custom_locale_description": "Μορφοποιήστε τις ημερομηνίες και τους αριθμούς, σύμφωνα με τη γλώσσα και την περιοχή", "custom_locale_description": "Μορφοποιήστε τις ημερομηνίες και τους αριθμούς, σύμφωνα με τη γλώσσα και την περιοχή",
"daily_title_text_date": "Ε, MMM dd", "daily_title_text_date": "Ε, MMM dd",
@@ -745,7 +750,7 @@
"direction": "Κατεύθυνση", "direction": "Κατεύθυνση",
"disabled": "Απενεργοποιημένο", "disabled": "Απενεργοποιημένο",
"disallow_edits": "Απαγόρευση επεξεργασιών", "disallow_edits": "Απαγόρευση επεξεργασιών",
"discord": "Πλατφόρμα Discord", "discord": "Discord",
"discover": "Ανίχνευση", "discover": "Ανίχνευση",
"dismiss_all_errors": "Παράβλεψη όλων των σφαλμάτων", "dismiss_all_errors": "Παράβλεψη όλων των σφαλμάτων",
"dismiss_error": "Παράβλεψη σφάλματος", "dismiss_error": "Παράβλεψη σφάλματος",
@@ -806,16 +811,16 @@
"editor_crop_tool_h2_aspect_ratios": "Αναλογίες διαστάσεων", "editor_crop_tool_h2_aspect_ratios": "Αναλογίες διαστάσεων",
"editor_crop_tool_h2_rotation": "Περιστροφή", "editor_crop_tool_h2_rotation": "Περιστροφή",
"email": "Email", "email": "Email",
"empty_folder": "Αυτός ο φάκελος είναι κενός", "empty_folder": "This folder is empty",
"empty_trash": "Άδειασμα κάδου απορριμμάτων", "empty_trash": "Άδειασμα κάδου απορριμμάτων",
"empty_trash_confirmation": "Είστε σίγουροι οτι θέλετε να αδειάσετε τον κάδο απορριμμάτων; Αυτό θα αφαιρέσει μόνιμα όλα τα στοιχεία του κάδου απορριμμάτων του Immich. \nΑυτή η ενέργεια δεν μπορεί να αναιρεθεί!", "empty_trash_confirmation": "Είστε σίγουροι οτι θέλετε να αδειάσετε τον κάδο απορριμμάτων; Αυτό θα αφαιρέσει μόνιμα όλα τα στοιχεία του κάδου απορριμμάτων του Immich. \nΑυτή η ενέργεια δεν μπορεί να αναιρεθεί!",
"enable": "Ενεργοποίηση", "enable": "Ενεργοποίηση",
"enabled": "Ενεργοποιημένο", "enabled": "Ενεργοποιημένο",
"end_date": "Τελική ημερομηνία", "end_date": "Τελική ημερομηνία",
"enqueued": "Τοποθετήθηκε στη λίστα αναμονής", "enqueued": "Enqueued",
"enter_wifi_name": "Εισαγωγή ονόματος Wi-Fi", "enter_wifi_name": "Enter WiFi name",
"error": "Σφάλμα", "error": "Σφάλμα",
"error_change_sort_album": "Απέτυχε η αλλαγή σειράς του άλμπουμ", "error_change_sort_album": "Failed to change album sort order",
"error_delete_face": "Σφάλμα διαγραφής προσώπου από το στοιχείο", "error_delete_face": "Σφάλμα διαγραφής προσώπου από το στοιχείο",
"error_loading_image": "Σφάλμα κατά τη φόρτωση της εικόνας", "error_loading_image": "Σφάλμα κατά τη φόρτωση της εικόνας",
"error_saving_image": "Σφάλμα: {}", "error_saving_image": "Σφάλμα: {}",
@@ -852,7 +857,6 @@
"failed_to_remove_product_key": "Αποτυχία αφαίρεσης κλειδιού προϊόντος", "failed_to_remove_product_key": "Αποτυχία αφαίρεσης κλειδιού προϊόντος",
"failed_to_stack_assets": "Αποτυχία στην συμπίεση των στοιχείων", "failed_to_stack_assets": "Αποτυχία στην συμπίεση των στοιχείων",
"failed_to_unstack_assets": "Αποτυχία στην αποσυμπίεση των στοιχείων", "failed_to_unstack_assets": "Αποτυχία στην αποσυμπίεση των στοιχείων",
"failed_to_update_notification_status": "Αποτυχία ενημέρωσης της κατάστασης ειδοποίησης",
"import_path_already_exists": "Αυτή η διαδρομή εισαγωγής υπάρχει ήδη.", "import_path_already_exists": "Αυτή η διαδρομή εισαγωγής υπάρχει ήδη.",
"incorrect_email_or_password": "Λανθασμένο email ή κωδικός πρόσβασης", "incorrect_email_or_password": "Λανθασμένο email ή κωδικός πρόσβασης",
"paths_validation_failed": "{paths, plural, one {# διαδρομή} other {# διαδρομές}} απέτυχαν κατά την επικύρωση", "paths_validation_failed": "{paths, plural, one {# διαδρομή} other {# διαδρομές}} απέτυχαν κατά την επικύρωση",
@@ -951,12 +955,12 @@
"exif_bottom_sheet_description": "Προσθήκη Περιγραφής...", "exif_bottom_sheet_description": "Προσθήκη Περιγραφής...",
"exif_bottom_sheet_details": "ΛΕΠΤΟΜΕΡΕΙΕΣ", "exif_bottom_sheet_details": "ΛΕΠΤΟΜΕΡΕΙΕΣ",
"exif_bottom_sheet_location": "ΤΟΠΟΘΕΣΙΑ", "exif_bottom_sheet_location": "ΤΟΠΟΘΕΣΙΑ",
"exif_bottom_sheet_people": "ΑΤΟΜΑ", "exif_bottom_sheet_people": "ΑΝΘΡΩΠΟΙ",
"exif_bottom_sheet_person_add_person": "Προσθήκη ονόματος", "exif_bottom_sheet_person_add_person": "Προσθήκη ονόματος",
"exif_bottom_sheet_person_age": "Ηλικία {}", "exif_bottom_sheet_person_age": "Age {}",
"exif_bottom_sheet_person_age_months": "Ηλικία {} μήνες", "exif_bottom_sheet_person_age_months": "Age {} months",
"exif_bottom_sheet_person_age_year_months": "Ηλικία 1 έτους, {} μηνών", "exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
"exif_bottom_sheet_person_age_years": "Ηλικία {}", "exif_bottom_sheet_person_age_years": "Age {}",
"exit_slideshow": "Έξοδος από την παρουσίαση", "exit_slideshow": "Έξοδος από την παρουσίαση",
"expand_all": "Ανάπτυξη όλων", "expand_all": "Ανάπτυξη όλων",
"experimental_settings_new_asset_list_subtitle": "Σε εξέλιξη", "experimental_settings_new_asset_list_subtitle": "Σε εξέλιξη",
@@ -973,12 +977,12 @@
"extension": "Επέκταση", "extension": "Επέκταση",
"external": "Εξωτερικός", "external": "Εξωτερικός",
"external_libraries": "Εξωτερικές βιβλιοθήκες", "external_libraries": "Εξωτερικές βιβλιοθήκες",
"external_network": "Εξωτερικό δίκτυο", "external_network": "External network",
"external_network_sheet_info": "Όταν δεν είστε συνδεδεμένοι στο προτιμώμενο δίκτυο Wi-Fi, η εφαρμογή θα συνδεθεί με τον διακομιστή μέσω του πρώτου από τα παρακάτω URLs που μπορεί να βρει διαθέσιμο, ξεκινώντας από το πάνω προς το κάτω", "external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
"face_unassigned": "Μη ανατεθειμένο", "face_unassigned": "Μη ανατεθειμένο",
"failed": "Απέτυχε", "failed": "Failed",
"failed_to_load_assets": "Αποτυχία φόρτωσης στοιχείων", "failed_to_load_assets": "Αποτυχία φόρτωσης στοιχείων",
"failed_to_load_folder": "Αποτυχία φόρτωσης φακέλου", "failed_to_load_folder": "Failed to load folder",
"favorite": "Αγαπημένο", "favorite": "Αγαπημένο",
"favorite_or_unfavorite_photo": "Ορίστε μία φωτογραφία ως αγαπημένη ή αφαιρέστε την από τα αγαπημένα", "favorite_or_unfavorite_photo": "Ορίστε μία φωτογραφία ως αγαπημένη ή αφαιρέστε την από τα αγαπημένα",
"favorites": "Αγαπημένα", "favorites": "Αγαπημένα",
@@ -992,22 +996,21 @@
"filetype": "Τύπος αρχείου", "filetype": "Τύπος αρχείου",
"filter": "Φίλτρο", "filter": "Φίλτρο",
"filter_people": "Φιλτράρισμα ατόμων", "filter_people": "Φιλτράρισμα ατόμων",
"filter_places": "Φιλτράρισμα τοποθεσιών",
"find_them_fast": "Βρείτε τους γρήγορα με αναζήτηση κατά όνομα", "find_them_fast": "Βρείτε τους γρήγορα με αναζήτηση κατά όνομα",
"fix_incorrect_match": "Διόρθωση λανθασμένης αντιστοίχισης", "fix_incorrect_match": "Διόρθωση λανθασμένης αντιστοίχισης",
"folder": "Φάκελος", "folder": "Folder",
"folder_not_found": "Ο φάκελος δεν βρέθηκε", "folder_not_found": "Folder not found",
"folders": "Φάκελοι", "folders": "Φάκελοι",
"folders_feature_description": "Περιήγηση στην προβολή φακέλου για τις φωτογραφίες και τα βίντεο στο σύστημα αρχείων", "folders_feature_description": "Περιήγηση στην προβολή φακέλου για τις φωτογραφίες και τα βίντεο στο σύστημα αρχείων",
"forward": "Προς τα εμπρός", "forward": "Προς τα εμπρός",
"general": "Γενικά", "general": "Γενικά",
"get_help": "Ζητήστε βοήθεια", "get_help": "Ζητήστε βοήθεια",
"get_wifiname_error": "Δεν ήταν δυνατή η λήψη του ονόματος Wi-Fi. Βεβαιωθείτε ότι έχετε δώσει τις απαραίτητες άδειες και ότι είστε συνδεδεμένοι σε δίκτυο Wi-Fi", "get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
"getting_started": "Ξεκινώντας", "getting_started": "Ξεκινώντας",
"go_back": "Πηγαίνετε πίσω", "go_back": "Πηγαίνετε πίσω",
"go_to_folder": "Μετάβαση στο φάκελο", "go_to_folder": "Μετάβαση στο φάκελο",
"go_to_search": "Πηγαίνετε στην αναζήτηση", "go_to_search": "Πηγαίνετε στην αναζήτηση",
"grant_permission": "Επιτρέψτε την άδεια", "grant_permission": "Grant permission",
"group_albums_by": "Ομαδοποίηση άλμπουμ κατά...", "group_albums_by": "Ομαδοποίηση άλμπουμ κατά...",
"group_country": "Ομαδοποίηση κατά χώρα", "group_country": "Ομαδοποίηση κατά χώρα",
"group_no": "Καμία ομοδοποίηση", "group_no": "Καμία ομοδοποίηση",
@@ -1041,7 +1044,7 @@
"home_page_delete_remote_err_local": "Τοπικά στοιχεία στη διαγραφή απομακρυσμένης επιλογής, παραλείπεται", "home_page_delete_remote_err_local": "Τοπικά στοιχεία στη διαγραφή απομακρυσμένης επιλογής, παραλείπεται",
"home_page_favorite_err_local": "Δεν μπορώ ακόμα να αγαπήσω τα τοπικά στοιχεία, παραλείπεται", "home_page_favorite_err_local": "Δεν μπορώ ακόμα να αγαπήσω τα τοπικά στοιχεία, παραλείπεται",
"home_page_favorite_err_partner": "Δεν είναι ακόμα δυνατή η πρόσθεση στοιχείων συντρόφου στα αγαπημένα, παραλείπεται", "home_page_favorite_err_partner": "Δεν είναι ακόμα δυνατή η πρόσθεση στοιχείων συντρόφου στα αγαπημένα, παραλείπεται",
"home_page_first_time_notice": "Εάν αυτή είναι η πρώτη φορά που χρησιμοποιείτε την εφαρμογή, βεβαιωθείτε ότι έχετε επιλέξει ένα άλμπουμ αντίγραφου ασφαλείας, ώστε το χρονοδιάγραμμα να μπορεί να συμπληρώσει φωτογραφίες και βίντεο στα άλμπουμ", "home_page_first_time_notice": "Εάν αυτή είναι η πρώτη φορά που χρησιμοποιείτε την εφαρμογή, βεβαιωθείτε ότι έχετε επιλέξει ένα άλμπουμ αντίγραφου ασφαλείας, ώστε το χρονοδιάγραμμα να μπορεί να συμπληρώσει φωτογραφίες και βίντεο στα άλμπουμ.",
"home_page_share_err_local": "Δεν είναι δυνατή η κοινή χρήση τοπικών στοιχείων μέσω συνδέσμου, παραλείπεται", "home_page_share_err_local": "Δεν είναι δυνατή η κοινή χρήση τοπικών στοιχείων μέσω συνδέσμου, παραλείπεται",
"home_page_upload_err_limit": "Μπορείτε να ανεβάσετε μόνο 30 στοιχεία κάθε φορά, παραλείπεται", "home_page_upload_err_limit": "Μπορείτε να ανεβάσετε μόνο 30 στοιχεία κάθε φορά, παραλείπεται",
"host": "Φιλοξενία", "host": "Φιλοξενία",
@@ -1119,9 +1122,9 @@
"loading": "Φόρτωση", "loading": "Φόρτωση",
"loading_search_results_failed": "Η φόρτωση αποτελεσμάτων αναζήτησης απέτυχε", "loading_search_results_failed": "Η φόρτωση αποτελεσμάτων αναζήτησης απέτυχε",
"local_network": "Local network", "local_network": "Local network",
"local_network_sheet_info": "Η εφαρμογή θα συνδεθεί με τον διακομιστή μέσω αυτού του URL όταν χρησιμοποιείται το καθορισμένο δίκτυο Wi-Fi", "local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
"location_permission": "Άδεια τοποθεσίας", "location_permission": "Location permission",
"location_permission_content": "Για να χρησιμοποιηθεί η λειτουργία αυτόματης εναλλαγής, το Immich χρειάζεται άδεια για την ακριβή τοποθεσία της συσκευής ώστε να μπορεί να διαβάζει το όνομα του τρέχοντος δικτύου Wi-Fi", "location_permission_content": "In order to use the auto-switching feature, Immich needs precise location permission so it can read the current WiFi network's name",
"location_picker_choose_on_map": "Επιλέξτε στο χάρτη", "location_picker_choose_on_map": "Επιλέξτε στο χάρτη",
"location_picker_latitude_error": "Εισαγάγετε ένα έγκυρο γεωγραφικό πλάτος", "location_picker_latitude_error": "Εισαγάγετε ένα έγκυρο γεωγραφικό πλάτος",
"location_picker_latitude_hint": "Εισαγάγετε το γεωγραφικό πλάτος σας εδώ", "location_picker_latitude_hint": "Εισαγάγετε το γεωγραφικό πλάτος σας εδώ",
@@ -1195,9 +1198,6 @@
"map_settings_only_show_favorites": "Εμφάνιση μόνο αγαπημένων", "map_settings_only_show_favorites": "Εμφάνιση μόνο αγαπημένων",
"map_settings_theme_settings": "Θέμα χάρτη", "map_settings_theme_settings": "Θέμα χάρτη",
"map_zoom_to_see_photos": "Σμικρύνετε για να δείτε φωτογραφίες", "map_zoom_to_see_photos": "Σμικρύνετε για να δείτε φωτογραφίες",
"mark_all_as_read": "Επισήμανση όλων ως αναγνωσμένα",
"mark_as_read": "Επισήμανση ως αναγνωσμένο",
"marked_all_as_read": "Όλα επισημάνθηκαν ως αναγνωσμένα",
"matches": "Αντιστοιχίες", "matches": "Αντιστοιχίες",
"media_type": "Τύπος πολυμέσου", "media_type": "Τύπος πολυμέσου",
"memories": "Αναμνήσεις", "memories": "Αναμνήσεις",
@@ -1207,7 +1207,7 @@
"memories_start_over": "Ξεκινήστε από την αρχή", "memories_start_over": "Ξεκινήστε από την αρχή",
"memories_swipe_to_close": "Σύρετε προς τα πάνω για να κλείσετε", "memories_swipe_to_close": "Σύρετε προς τα πάνω για να κλείσετε",
"memories_year_ago": "Πριν ένα χρόνο", "memories_year_ago": "Πριν ένα χρόνο",
"memories_years_ago": "Πριν από {} έτη", "memories_years_ago": "Πριν από {} χρόνια",
"memory": "Ανάμνηση", "memory": "Ανάμνηση",
"memory_lane_title": "Διαδρομή Αναμνήσεων {title}", "memory_lane_title": "Διαδρομή Αναμνήσεων {title}",
"menu": "Μενού", "menu": "Μενού",
@@ -1231,8 +1231,8 @@
"my_albums": "Τα άλμπουμ μου", "my_albums": "Τα άλμπουμ μου",
"name": "Όνομα", "name": "Όνομα",
"name_or_nickname": "Όνομα ή ψευδώνυμο", "name_or_nickname": "Όνομα ή ψευδώνυμο",
"networking_settings": "Δικτύωση", "networking_settings": "Networking",
"networking_subtitle": "Διαχείριση ρυθμίσεων τελικών σημείων διακομιστή", "networking_subtitle": "Manage the server endpoint settings",
"never": "Ποτέ", "never": "Ποτέ",
"new_album": "Νέο Άλμπουμ", "new_album": "Νέο Άλμπουμ",
"new_api_key": "Νέο API Key", "new_api_key": "Νέο API Key",
@@ -1256,13 +1256,12 @@
"no_favorites_message": "Προσθέστε αγαπημένα για να βρείτε γρήγορα τις καλύτερες φωτογραφίες και τα βίντεό σας", "no_favorites_message": "Προσθέστε αγαπημένα για να βρείτε γρήγορα τις καλύτερες φωτογραφίες και τα βίντεό σας",
"no_libraries_message": "Δημιουργήστε μια εξωτερική βιβλιοθήκη για να προβάλετε τις φωτογραφίες και τα βίντεό σας", "no_libraries_message": "Δημιουργήστε μια εξωτερική βιβλιοθήκη για να προβάλετε τις φωτογραφίες και τα βίντεό σας",
"no_name": "Χωρίς Όνομα", "no_name": "Χωρίς Όνομα",
"no_notifications": "Καμία ειδοποίηση",
"no_places": "Καμία τοποθεσία", "no_places": "Καμία τοποθεσία",
"no_results": "Κανένα αποτέλεσμα", "no_results": "Κανένα αποτέλεσμα",
"no_results_description": "Δοκιμάστε ένα συνώνυμο ή πιο γενική λέξη-κλειδί", "no_results_description": "Δοκιμάστε ένα συνώνυμο ή πιο γενική λέξη-κλειδί",
"no_shared_albums_message": "Δημιουργήστε ένα άλμπουμ για να μοιράζεστε φωτογραφίες και βίντεο με άτομα στο δίκτυό σας", "no_shared_albums_message": "Δημιουργήστε ένα άλμπουμ για να μοιράζεστε φωτογραφίες και βίντεο με άτομα στο δίκτυό σας",
"not_in_any_album": "Σε κανένα άλμπουμ", "not_in_any_album": "Σε κανένα άλμπουμ",
"not_selected": "Δεν επιλέχθηκε", "not_selected": "Not selected",
"note_apply_storage_label_to_previously_uploaded assets": "Σημείωση: Για να εφαρμόσετε την Ετικέτα Αποθήκευσης σε στοιχεία που έχουν μεταφορτωθεί προηγουμένως, εκτελέστε το", "note_apply_storage_label_to_previously_uploaded assets": "Σημείωση: Για να εφαρμόσετε την Ετικέτα Αποθήκευσης σε στοιχεία που έχουν μεταφορτωθεί προηγουμένως, εκτελέστε το",
"notes": "Σημειώσεις", "notes": "Σημειώσεις",
"notification_permission_dialog_content": "Για να ενεργοποιήσετε τις ειδοποιήσεις, μεταβείτε στις Ρυθμίσεις και επιλέξτε να επιτρέπεται.", "notification_permission_dialog_content": "Για να ενεργοποιήσετε τις ειδοποιήσεις, μεταβείτε στις Ρυθμίσεις και επιλέξτε να επιτρέπεται.",
@@ -1287,7 +1286,6 @@
"onboarding_welcome_user": "Καλωσόρισες, {user}", "onboarding_welcome_user": "Καλωσόρισες, {user}",
"online": "Σε σύνδεση", "online": "Σε σύνδεση",
"only_favorites": "Μόνο αγαπημένα", "only_favorites": "Μόνο αγαπημένα",
"open": "Άνοιγμα",
"open_in_map_view": "Άνοιγμα σε προβολή χάρτη", "open_in_map_view": "Άνοιγμα σε προβολή χάρτη",
"open_in_openstreetmap": "Άνοιγμα στο OpenStreetMap", "open_in_openstreetmap": "Άνοιγμα στο OpenStreetMap",
"open_the_search_filters": "Ανοίξτε τα φίλτρα αναζήτησης", "open_the_search_filters": "Ανοίξτε τα φίλτρα αναζήτησης",
@@ -1365,7 +1363,7 @@
"play_motion_photo": "Αναπαραγωγή Κινούμενης Φωτογραφίας", "play_motion_photo": "Αναπαραγωγή Κινούμενης Φωτογραφίας",
"play_or_pause_video": "Αναπαραγωγή ή παύση βίντεο", "play_or_pause_video": "Αναπαραγωγή ή παύση βίντεο",
"port": "Θύρα", "port": "Θύρα",
"preferences_settings_subtitle": "Διαχειριστείτε τις προτιμήσεις της εφαρμογής", "preferences_settings_subtitle": "Manage the app's preferences",
"preferences_settings_title": "Προτιμήσεις", "preferences_settings_title": "Προτιμήσεις",
"preset": "Προκαθορισμένη ρύθμιση", "preset": "Προκαθορισμένη ρύθμιση",
"preview": "Προεπισκόπηση", "preview": "Προεπισκόπηση",
@@ -1387,7 +1385,7 @@
"public_share": "Δημόσια Κοινή Χρήση", "public_share": "Δημόσια Κοινή Χρήση",
"purchase_account_info": "Υποστηρικτής", "purchase_account_info": "Υποστηρικτής",
"purchase_activated_subtitle": "Σας ευχαριστούμε για την υποστήριξη του Immich και λογισμικών ανοιχτού κώδικα", "purchase_activated_subtitle": "Σας ευχαριστούμε για την υποστήριξη του Immich και λογισμικών ανοιχτού κώδικα",
"purchase_activated_time": "Ενεργοποιήθηκε στις {date}", "purchase_activated_time": "Ενεργοποιήθηκε στις {date, date}",
"purchase_activated_title": "Το κλειδί σας ενεργοποιήθηκε με επιτυχία", "purchase_activated_title": "Το κλειδί σας ενεργοποιήθηκε με επιτυχία",
"purchase_button_activate": "Ενεργοποίηση", "purchase_button_activate": "Ενεργοποίηση",
"purchase_button_buy": "Αγορά", "purchase_button_buy": "Αγορά",
@@ -1432,8 +1430,6 @@
"recent_searches": "Πρόσφατες αναζητήσεις", "recent_searches": "Πρόσφατες αναζητήσεις",
"recently_added": "Προστέθηκαν πρόσφατα", "recently_added": "Προστέθηκαν πρόσφατα",
"recently_added_page_title": "Προστέθηκαν Πρόσφατα", "recently_added_page_title": "Προστέθηκαν Πρόσφατα",
"recently_taken": "Λήφθηκαν πρόσφατα",
"recently_taken_page_title": "Λήφθηκαν Πρόσφατα",
"refresh": "Ανανέωση", "refresh": "Ανανέωση",
"refresh_encoded_videos": "Ανανέωση κωδικοποιημένων βίντεο", "refresh_encoded_videos": "Ανανέωση κωδικοποιημένων βίντεο",
"refresh_faces": "Ανανέωση προσώπων", "refresh_faces": "Ανανέωση προσώπων",
@@ -1518,7 +1514,7 @@
"search_filter_date_title": "Επιλέξτε εύρος ημερομηνιών", "search_filter_date_title": "Επιλέξτε εύρος ημερομηνιών",
"search_filter_display_option_not_in_album": "Όχι στο άλμπουμ", "search_filter_display_option_not_in_album": "Όχι στο άλμπουμ",
"search_filter_display_options": "Επιλογές εμφάνισης", "search_filter_display_options": "Επιλογές εμφάνισης",
"search_filter_filename": "Αναζήτηση με όνομα αρχείου", "search_filter_filename": "Search by file name",
"search_filter_location": "Τοποθεσία", "search_filter_location": "Τοποθεσία",
"search_filter_location_title": "Επιλέξτε τοποθεσία", "search_filter_location_title": "Επιλέξτε τοποθεσία",
"search_filter_media_type": "Τύπος Μέσου", "search_filter_media_type": "Τύπος Μέσου",
@@ -1526,17 +1522,17 @@
"search_filter_people_title": "Επιλέξτε άτομα", "search_filter_people_title": "Επιλέξτε άτομα",
"search_for": "Αναζήτηση για", "search_for": "Αναζήτηση για",
"search_for_existing_person": "Αναζήτηση υπάρχοντος ατόμου", "search_for_existing_person": "Αναζήτηση υπάρχοντος ατόμου",
"search_no_more_result": "Δεν υπάρχουν άλλα αποτελέσματα", "search_no_more_result": "No more results",
"search_no_people": "Κανένα άτομο", "search_no_people": "Κανένα άτομο",
"search_no_people_named": "Κανένα άτομο με όνομα \"{name}\"", "search_no_people_named": "Κανένα άτομο με όνομα \"{name}\"",
"search_no_result": "Δεν βρέθηκαν αποτελέσματα, προσπαθήστε με διαφορετικές ορολογίες αναζήτησης ή συνδυασμούς", "search_no_result": "No results found, try a different search term or combination",
"search_options": "Επιλογές αναζήτησης", "search_options": "Επιλογές αναζήτησης",
"search_page_categories": "Κατηγορίες", "search_page_categories": "Κατηγορίες",
"search_page_motion_photos": "Κινούμενες Φωτογραφίες", "search_page_motion_photos": "Κινούμενες Φωτογραφίες",
"search_page_no_objects": "Μη διαθέσιμες πληροφορίες αντικειμένων", "search_page_no_objects": "Μη διαθέσιμες πληροφορίες αντικειμένων",
"search_page_no_places": "Μη διαθέσιμες πληροφορίες για μέρη", "search_page_no_places": "Μη διαθέσιμες πληροφορίες για μέρη",
"search_page_screenshots": "Στιγμιότυπα οθόνης", "search_page_screenshots": "Στιγμιότυπα οθόνης",
"search_page_search_photos_videos": "Αναζήτηση για τις φωτογραφίες και τα βίντεό σας", "search_page_search_photos_videos": "Search for your photos and videos",
"search_page_selfies": "Σέλφι", "search_page_selfies": "Σέλφι",
"search_page_things": "Πράγματα", "search_page_things": "Πράγματα",
"search_page_view_all_button": "Προβολή όλων", "search_page_view_all_button": "Προβολή όλων",
@@ -1548,7 +1544,7 @@
"search_result_page_new_search_hint": "Νέα Αναζήτηση", "search_result_page_new_search_hint": "Νέα Αναζήτηση",
"search_settings": "Ρυθμίσεις αναζήτησης", "search_settings": "Ρυθμίσεις αναζήτησης",
"search_state": "Αναζήτηση νομού...", "search_state": "Αναζήτηση νομού...",
"search_suggestion_list_smart_search_hint_1": "Η έξυπνη αναζήτηση είναι ενεργοποιημένη από προεπιλογή, για αναζήτηση μεταδεδομένων χρησιμοποιήστε το συντακτικό ", "search_suggestion_list_smart_search_hint_1": "Η έξυπνη αναζήτηση είναι ενεργοποιημένη από προεπιλογή, για αναζήτηση μεταδεδομένων χρησιμοποιήστε το συντακτικό",
"search_suggestion_list_smart_search_hint_2": "m:όρος-αναζήτησης", "search_suggestion_list_smart_search_hint_2": "m:όρος-αναζήτησης",
"search_tags": "Αναζήτηση ετικετών...", "search_tags": "Αναζήτηση ετικετών...",
"search_timezone": "Αναζήτηση ζώνης ώρας...", "search_timezone": "Αναζήτηση ζώνης ώρας...",
@@ -1575,7 +1571,7 @@
"selected_count": "{count, plural, other {# επιλεγμένοι}}", "selected_count": "{count, plural, other {# επιλεγμένοι}}",
"send_message": "Αποστολή μηνύματος", "send_message": "Αποστολή μηνύματος",
"send_welcome_email": "Αποστολή email καλωσορίσματος", "send_welcome_email": "Αποστολή email καλωσορίσματος",
"server_endpoint": "Τελικό σημείο Διακομιστή", "server_endpoint": "Server Endpoint",
"server_info_box_app_version": "Έκδοση εφαρμογής", "server_info_box_app_version": "Έκδοση εφαρμογής",
"server_info_box_server_url": "URL διακομιστή", "server_info_box_server_url": "URL διακομιστή",
"server_offline": "Διακομιστής Εκτός Σύνδεσης", "server_offline": "Διακομιστής Εκτός Σύνδεσης",
@@ -1596,7 +1592,7 @@
"setting_image_viewer_preview_title": "Φόρτωση εικόνας προεπισκόπησης", "setting_image_viewer_preview_title": "Φόρτωση εικόνας προεπισκόπησης",
"setting_image_viewer_title": "Εικόνες", "setting_image_viewer_title": "Εικόνες",
"setting_languages_apply": "Εφαρμογή", "setting_languages_apply": "Εφαρμογή",
"setting_languages_subtitle": "Αλλάξτε τη γλώσσα της εφαρμογής", "setting_languages_subtitle": "Change the app's language",
"setting_languages_title": "Γλώσσες", "setting_languages_title": "Γλώσσες",
"setting_notifications_notify_failures_grace_period": "Ειδοποίηση αποτυχιών δημιουργίας αντιγράφων ασφαλείας στο παρασκήνιο: {}", "setting_notifications_notify_failures_grace_period": "Ειδοποίηση αποτυχιών δημιουργίας αντιγράφων ασφαλείας στο παρασκήνιο: {}",
"setting_notifications_notify_hours": "{} ώρες", "setting_notifications_notify_hours": "{} ώρες",
@@ -1610,8 +1606,8 @@
"setting_notifications_total_progress_subtitle": "Συνολική πρόοδος μεταφόρτωσης (ολοκληρώθηκε/σύνολο στοιχείων)", "setting_notifications_total_progress_subtitle": "Συνολική πρόοδος μεταφόρτωσης (ολοκληρώθηκε/σύνολο στοιχείων)",
"setting_notifications_total_progress_title": "Εμφάνιση συνολικής προόδου δημιουργίας αντιγράφων ασφαλείας παρασκηνίου", "setting_notifications_total_progress_title": "Εμφάνιση συνολικής προόδου δημιουργίας αντιγράφων ασφαλείας παρασκηνίου",
"setting_video_viewer_looping_title": "Συνεχής Επανάληψη", "setting_video_viewer_looping_title": "Συνεχής Επανάληψη",
"setting_video_viewer_original_video_subtitle": "Όταν μεταδίδετε ένα βίντεο από τον διακομιστή, αναπαράγετε το αυθεντικό ακόμη και όταν υπάρχει διαθέσιμο με διαφορετική κωδικοποίηση. Μπορεί να προκαλέσει καθυστέρηση φόρτωσης. Τα βίντεο που είναι διαθέσιμα τοπικά, αναπαράγονται στην αυθεντική ποιότητα, ανεξαρτήτως αυτής της ρύθμισης.", "setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
"setting_video_viewer_original_video_title": "Αναγκαστική αναπαραγωγή αυθεντικού βίντεο", "setting_video_viewer_original_video_title": "Force original video",
"settings": "Ρυθμίσεις", "settings": "Ρυθμίσεις",
"settings_require_restart": "Επανεκκινήστε το Immich για να εφαρμόσετε αυτήν τη ρύθμιση", "settings_require_restart": "Επανεκκινήστε το Immich για να εφαρμόσετε αυτήν τη ρύθμιση",
"settings_saved": "Οι ρυθμίσεις αποθηκεύτηκαν", "settings_saved": "Οι ρυθμίσεις αποθηκεύτηκαν",
@@ -1626,12 +1622,12 @@
"shared_album_section_people_action_error": "Σφάλμα αποχώρησης/κατάργησης από το άλμπουμ", "shared_album_section_people_action_error": "Σφάλμα αποχώρησης/κατάργησης από το άλμπουμ",
"shared_album_section_people_action_leave": "Αποχώρηση χρήστη από το άλμπουμ", "shared_album_section_people_action_leave": "Αποχώρηση χρήστη από το άλμπουμ",
"shared_album_section_people_action_remove_user": "Κατάργηση χρήστη από το άλμπουμ", "shared_album_section_people_action_remove_user": "Κατάργηση χρήστη από το άλμπουμ",
"shared_album_section_people_title": "ΑΤΟΜΑ", "shared_album_section_people_title": "ΑΝΘΡΩΠΟΙ",
"shared_by": "Σε κοινή χρήση από", "shared_by": "Σε κοινή χρήση από",
"shared_by_user": "Σε κοινή χρήση από {user}", "shared_by_user": "Σε κοινή χρήση από {user}",
"shared_by_you": "Σε κοινή χρήση από εσάς", "shared_by_you": "Σε κοινή χρήση από εσάς",
"shared_from_partner": "Φωτογραφίες από {partner}", "shared_from_partner": "Φωτογραφίες από {partner}",
"shared_intent_upload_button_progress_text": "{} / {} Μεταφορτωμένα", "shared_intent_upload_button_progress_text": "{} / {} Uploaded",
"shared_link_app_bar_title": "Κοινόχρηστοι Σύνδεσμοι", "shared_link_app_bar_title": "Κοινόχρηστοι Σύνδεσμοι",
"shared_link_clipboard_copied_massage": "Αντιγράφηκε στο πρόχειρο", "shared_link_clipboard_copied_massage": "Αντιγράφηκε στο πρόχειρο",
"shared_link_clipboard_text": "Σύνδεσμος: {}\nΚωδικός πρόσβασης: {}", "shared_link_clipboard_text": "Σύνδεσμος: {}\nΚωδικός πρόσβασης: {}",
@@ -1810,7 +1806,7 @@
"unlink_motion_video": "Αποσυνδέστε το βίντεο κίνησης", "unlink_motion_video": "Αποσυνδέστε το βίντεο κίνησης",
"unlink_oauth": "Αποσύνδεση OAuth", "unlink_oauth": "Αποσύνδεση OAuth",
"unlinked_oauth_account": "Ο λογαριασμός OAuth αποσυνδέθηκε", "unlinked_oauth_account": "Ο λογαριασμός OAuth αποσυνδέθηκε",
"unmute_memories": "Ενεργοποίηση Αναμνήσεων", "unmute_memories": "Αποσυνδέστε τις αναμνήσεις",
"unnamed_album": "Ανώνυμο Άλμπουμ", "unnamed_album": "Ανώνυμο Άλμπουμ",
"unnamed_album_delete_confirmation": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το άλμπουμ;", "unnamed_album_delete_confirmation": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το άλμπουμ;",
"unnamed_share": "Ανώνυμη Κοινή Χρήση", "unnamed_share": "Ανώνυμη Κοινή Χρήση",
@@ -1834,11 +1830,11 @@
"upload_status_errors": "Σφάλματα", "upload_status_errors": "Σφάλματα",
"upload_status_uploaded": "Μεταφορτώθηκαν", "upload_status_uploaded": "Μεταφορτώθηκαν",
"upload_success": "Η μεταφόρτωση ολοκληρώθηκε, ανανεώστε τη σελίδα για να δείτε τα νέα αντικείμενα.", "upload_success": "Η μεταφόρτωση ολοκληρώθηκε, ανανεώστε τη σελίδα για να δείτε τα νέα αντικείμενα.",
"upload_to_immich": "Μεταφόρτωση στο Immich ({})", "upload_to_immich": "Upload to Immich ({})",
"uploading": "Μεταφορτώνεται", "uploading": "Uploading",
"url": "URL", "url": "URL",
"usage": "Χρήση", "usage": "Χρήση",
"use_current_connection": "χρήση τρέχουσας σύνδεσης", "use_current_connection": "use current connection",
"use_custom_date_range": "Χρήση προσαρμοσμένου εύρους ημερομηνιών", "use_custom_date_range": "Χρήση προσαρμοσμένου εύρους ημερομηνιών",
"user": "Χρήστης", "user": "Χρήστης",
"user_id": "ID Χρήστη", "user_id": "ID Χρήστη",
@@ -1853,14 +1849,14 @@
"users": "Χρήστες", "users": "Χρήστες",
"utilities": "Βοηθητικά προγράμματα", "utilities": "Βοηθητικά προγράμματα",
"validate": "Επικύρωση", "validate": "Επικύρωση",
"validate_endpoint_error": "Παρακαλώ εισάγετε ένα έγκυρο URL", "validate_endpoint_error": "Please enter a valid URL",
"variables": "Μεταβλητές", "variables": "Μεταβλητές",
"version": "Έκδοση", "version": "Έκδοση",
"version_announcement_closing": "Ο φίλος σου, Alex", "version_announcement_closing": "Ο φίλος σου, Alex",
"version_announcement_message": "Γειά σας! Μια νέα έκδοση του Immich είναι διαθέσιμη. Παρακαλούμε αφιερώστε λίγο χρόνο για να διαβάσετε τις <link>σημειώσεις έκδοσης</link> ώστε να βεβαιωθείτε ότι η ρύθμιση σας είναι ενημερωμένη και να αποφύγετε τυχόν σφάλματα, ειδικά αν χρησιμοποιείτε το WatchTower ή οποιοδήποτε μηχανισμό που διαχειρίζεται αυτόματα την ενημέρωση της εγκατάστασης του Immich σας.", "version_announcement_message": "Γειά σας! Μια νέα έκδοση του Immich είναι διαθέσιμη. Παρακαλούμε αφιερώστε λίγο χρόνο για να διαβάσετε τις <link>σημειώσεις έκδοσης</link> ώστε να βεβαιωθείτε ότι η ρύθμιση σας είναι ενημερωμένη και να αποφύγετε τυχόν σφάλματα, ειδικά αν χρησιμοποιείτε το WatchTower ή οποιοδήποτε μηχανισμό που διαχειρίζεται αυτόματα την ενημέρωση της εγκατάστασης του Immich σας.",
"version_announcement_overlay_release_notes": "σημειώσεις έκδοσης", "version_announcement_overlay_release_notes": "σημειώσεις έκδοσης",
"version_announcement_overlay_text_1": "Γειά σας, υπάρχει μια νέα έκδοση του", "version_announcement_overlay_text_1": "Γειά σας, υπάρχει μια νέα έκδοση του",
"version_announcement_overlay_text_2": "παρακαλώ αφιερώστε χρόνο να επισκεφθείτε το ", "version_announcement_overlay_text_2": "παρακαλώ αφιερώστε χρόνο να επισκεφθείτε το",
"version_announcement_overlay_text_3": " και βεβαιωθείτε ότι το docker-compose και το .env σας είναι ενημερωμένη για την αποφυγή τυχόν εσφαλμένων διαμορφώσεων, ειδικά εάν χρησιμοποιείτε το WatchTower ή οποιονδήποτε μηχανισμό που χειρίζεται την αυτόματη ενημέρωση του διακομιστή σας.", "version_announcement_overlay_text_3": " και βεβαιωθείτε ότι το docker-compose και το .env σας είναι ενημερωμένη για την αποφυγή τυχόν εσφαλμένων διαμορφώσεων, ειδικά εάν χρησιμοποιείτε το WatchTower ή οποιονδήποτε μηχανισμό που χειρίζεται την αυτόματη ενημέρωση του διακομιστή σας.",
"version_announcement_overlay_title": "Διαθέσιμη νέα έκδοση διακομιστή 🎉", "version_announcement_overlay_title": "Διαθέσιμη νέα έκδοση διακομιστή 🎉",
"version_history": "Ιστορικό Εκδόσεων", "version_history": "Ιστορικό Εκδόσεων",
@@ -1891,11 +1887,11 @@
"week": "Εβδομάδα", "week": "Εβδομάδα",
"welcome": "Καλωσορίσατε", "welcome": "Καλωσορίσατε",
"welcome_to_immich": "Καλωσορίσατε στο Ιmmich", "welcome_to_immich": "Καλωσορίσατε στο Ιmmich",
"wifi_name": "Όνομα Wi-Fi", "wifi_name": "WiFi Name",
"year": "Έτος", "year": "Έτος",
"years_ago": "πριν από {years, plural, one {# χρόνο} other {# χρόνια}}", "years_ago": "πριν από {years, plural, one {# χρόνο} other {# χρόνια}}",
"yes": "Ναι", "yes": "Ναι",
"you_dont_have_any_shared_links": "Δεν έχετε κοινόχρηστους συνδέσμους", "you_dont_have_any_shared_links": "Δεν έχετε κοινόχρηστους συνδέσμους",
"your_wifi_name": "Το όνομα του Wi-Fi σας", "your_wifi_name": "Your WiFi name",
"zoom_image": "Ζουμ Εικόνας" "zoom_image": "Ζουμ Εικόνας"
} }

View File

@@ -26,7 +26,6 @@
"add_to_album": "Add to album", "add_to_album": "Add to album",
"add_to_album_bottom_sheet_added": "Added to {album}", "add_to_album_bottom_sheet_added": "Added to {album}",
"add_to_album_bottom_sheet_already_exists": "Already in {album}", "add_to_album_bottom_sheet_already_exists": "Already in {album}",
"add_to_locked_folder": "Add to Locked Folder",
"add_to_shared_album": "Add to shared album", "add_to_shared_album": "Add to shared album",
"add_url": "Add URL", "add_url": "Add URL",
"added_to_archive": "Added to archive", "added_to_archive": "Added to archive",
@@ -54,7 +53,6 @@
"confirm_email_below": "To confirm, type \"{email}\" below", "confirm_email_below": "To confirm, type \"{email}\" below",
"confirm_reprocess_all_faces": "Are you sure you want to reprocess all faces? This will also clear named people.", "confirm_reprocess_all_faces": "Are you sure you want to reprocess all faces? This will also clear named people.",
"confirm_user_password_reset": "Are you sure you want to reset {user}'s password?", "confirm_user_password_reset": "Are you sure you want to reset {user}'s password?",
"confirm_user_pin_code_reset": "Are you sure you want to reset {user}'s PIN code?",
"create_job": "Create job", "create_job": "Create job",
"cron_expression": "Cron expression", "cron_expression": "Cron expression",
"cron_expression_description": "Set the scanning interval using the cron format. For more information please refer to e.g. <link>Crontab Guru</link>", "cron_expression_description": "Set the scanning interval using the cron format. For more information please refer to e.g. <link>Crontab Guru</link>",
@@ -350,7 +348,6 @@
"user_delete_delay_settings_description": "Number of days after removal to permanently delete a user's account and assets. The user deletion job runs at midnight to check for users that are ready for deletion. Changes to this setting will be evaluated at the next execution.", "user_delete_delay_settings_description": "Number of days after removal to permanently delete a user's account and assets. The user deletion job runs at midnight to check for users that are ready for deletion. Changes to this setting will be evaluated at the next execution.",
"user_delete_immediately": "<b>{user}</b>'s account and assets will be queued for permanent deletion <b>immediately</b>.", "user_delete_immediately": "<b>{user}</b>'s account and assets will be queued for permanent deletion <b>immediately</b>.",
"user_delete_immediately_checkbox": "Queue user and assets for immediate deletion", "user_delete_immediately_checkbox": "Queue user and assets for immediate deletion",
"user_details": "User Details",
"user_management": "User Management", "user_management": "User Management",
"user_password_has_been_reset": "The user's password has been reset:", "user_password_has_been_reset": "The user's password has been reset:",
"user_password_reset_description": "Please provide the temporary password to the user and inform them they will need to change the password at their next login.", "user_password_reset_description": "Please provide the temporary password to the user and inform them they will need to change the password at their next login.",
@@ -372,7 +369,7 @@
"advanced": "Advanced", "advanced": "Advanced",
"advanced_settings_enable_alternate_media_filter_subtitle": "Use this option to filter media during sync based on alternate criteria. Only try this if you have issues with the app detecting all albums.", "advanced_settings_enable_alternate_media_filter_subtitle": "Use this option to filter media during sync based on alternate criteria. Only try this if you have issues with the app detecting all albums.",
"advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTAL] Use alternate device album sync filter", "advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTAL] Use alternate device album sync filter",
"advanced_settings_log_level_title": "Log level: {level}", "advanced_settings_log_level_title": "Log level: {}",
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.", "advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
"advanced_settings_prefer_remote_title": "Prefer remote images", "advanced_settings_prefer_remote_title": "Prefer remote images",
"advanced_settings_proxy_headers_subtitle": "Define proxy headers Immich should send with each network request", "advanced_settings_proxy_headers_subtitle": "Define proxy headers Immich should send with each network request",
@@ -403,9 +400,9 @@
"album_remove_user_confirmation": "Are you sure you want to remove {user}?", "album_remove_user_confirmation": "Are you sure you want to remove {user}?",
"album_share_no_users": "Looks like you have shared this album with all users or you don't have any user to share with.", "album_share_no_users": "Looks like you have shared this album with all users or you don't have any user to share with.",
"album_thumbnail_card_item": "1 item", "album_thumbnail_card_item": "1 item",
"album_thumbnail_card_items": "{count} items", "album_thumbnail_card_items": "{} items",
"album_thumbnail_card_shared": " · Shared", "album_thumbnail_card_shared": " · Shared",
"album_thumbnail_shared_by": "Shared by {user}", "album_thumbnail_shared_by": "Shared by {}",
"album_updated": "Album updated", "album_updated": "Album updated",
"album_updated_setting_description": "Receive an email notification when a shared album has new assets", "album_updated_setting_description": "Receive an email notification when a shared album has new assets",
"album_user_left": "Left {album}", "album_user_left": "Left {album}",
@@ -443,7 +440,7 @@
"archive": "Archive", "archive": "Archive",
"archive_or_unarchive_photo": "Archive or unarchive photo", "archive_or_unarchive_photo": "Archive or unarchive photo",
"archive_page_no_archived_assets": "No archived assets found", "archive_page_no_archived_assets": "No archived assets found",
"archive_page_title": "Archive ({count})", "archive_page_title": "Archive ({})",
"archive_size": "Archive size", "archive_size": "Archive size",
"archive_size_description": "Configure the archive size for downloads (in GiB)", "archive_size_description": "Configure the archive size for downloads (in GiB)",
"archived": "Archived", "archived": "Archived",
@@ -480,18 +477,18 @@
"assets_added_to_album_count": "Added {count, plural, one {# asset} other {# assets}} to the album", "assets_added_to_album_count": "Added {count, plural, one {# asset} other {# assets}} to the album",
"assets_added_to_name_count": "Added {count, plural, one {# asset} other {# assets}} to {hasName, select, true {<b>{name}</b>} other {new album}}", "assets_added_to_name_count": "Added {count, plural, one {# asset} other {# assets}} to {hasName, select, true {<b>{name}</b>} other {new album}}",
"assets_count": "{count, plural, one {# asset} other {# assets}}", "assets_count": "{count, plural, one {# asset} other {# assets}}",
"assets_deleted_permanently": "{count} asset(s) deleted permanently", "assets_deleted_permanently": "{} asset(s) deleted permanently",
"assets_deleted_permanently_from_server": "{count} asset(s) deleted permanently from the Immich server", "assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
"assets_moved_to_trash_count": "Moved {count, plural, one {# asset} other {# assets}} to trash", "assets_moved_to_trash_count": "Moved {count, plural, one {# asset} other {# assets}} to trash",
"assets_permanently_deleted_count": "Permanently deleted {count, plural, one {# asset} other {# assets}}", "assets_permanently_deleted_count": "Permanently deleted {count, plural, one {# asset} other {# assets}}",
"assets_removed_count": "Removed {count, plural, one {# asset} other {# assets}}", "assets_removed_count": "Removed {count, plural, one {# asset} other {# assets}}",
"assets_removed_permanently_from_device": "{count} asset(s) removed permanently from your device", "assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
"assets_restore_confirmation": "Are you sure you want to restore all your trashed assets? You cannot undo this action! Note that any offline assets cannot be restored this way.", "assets_restore_confirmation": "Are you sure you want to restore all your trashed assets? You cannot undo this action! Note that any offline assets cannot be restored this way.",
"assets_restored_count": "Restored {count, plural, one {# asset} other {# assets}}", "assets_restored_count": "Restored {count, plural, one {# asset} other {# assets}}",
"assets_restored_successfully": "{count} asset(s) restored successfully", "assets_restored_successfully": "{} asset(s) restored successfully",
"assets_trashed": "{count} asset(s) trashed", "assets_trashed": "{} asset(s) trashed",
"assets_trashed_count": "Trashed {count, plural, one {# asset} other {# assets}}", "assets_trashed_count": "Trashed {count, plural, one {# asset} other {# assets}}",
"assets_trashed_from_server": "{count} asset(s) trashed from the Immich server", "assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
"assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}} already part of the album", "assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}} already part of the album",
"authorized_devices": "Authorized Devices", "authorized_devices": "Authorized Devices",
"automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere", "automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
@@ -500,7 +497,7 @@
"back_close_deselect": "Back, close, or deselect", "back_close_deselect": "Back, close, or deselect",
"background_location_permission": "Background location permission", "background_location_permission": "Background location permission",
"background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name", "background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name",
"backup_album_selection_page_albums_device": "Albums on device ({count})", "backup_album_selection_page_albums_device": "Albums on device ({})",
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude", "backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
"backup_album_selection_page_assets_scatter": "Assets can scatter across multiple albums. Thus, albums can be included or excluded during the backup process.", "backup_album_selection_page_assets_scatter": "Assets can scatter across multiple albums. Thus, albums can be included or excluded during the backup process.",
"backup_album_selection_page_select_albums": "Select albums", "backup_album_selection_page_select_albums": "Select albums",
@@ -509,11 +506,11 @@
"backup_all": "All", "backup_all": "All",
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…", "backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…", "backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
"backup_background_service_current_upload_notification": "Uploading {filename}", "backup_background_service_current_upload_notification": "Uploading {}",
"backup_background_service_default_notification": "Checking for new assets…", "backup_background_service_default_notification": "Checking for new assets…",
"backup_background_service_error_title": "Backup error", "backup_background_service_error_title": "Backup error",
"backup_background_service_in_progress_notification": "Backing up your assets…", "backup_background_service_in_progress_notification": "Backing up your assets…",
"backup_background_service_upload_failure_notification": "Failed to upload {filename}", "backup_background_service_upload_failure_notification": "Failed to upload {}",
"backup_controller_page_albums": "Backup Albums", "backup_controller_page_albums": "Backup Albums",
"backup_controller_page_background_app_refresh_disabled_content": "Enable background app refresh in Settings > General > Background App Refresh in order to use background backup.", "backup_controller_page_background_app_refresh_disabled_content": "Enable background app refresh in Settings > General > Background App Refresh in order to use background backup.",
"backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled", "backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
@@ -524,22 +521,22 @@
"backup_controller_page_background_battery_info_title": "Battery optimizations", "backup_controller_page_background_battery_info_title": "Battery optimizations",
"backup_controller_page_background_charging": "Only while charging", "backup_controller_page_background_charging": "Only while charging",
"backup_controller_page_background_configure_error": "Failed to configure the background service", "backup_controller_page_background_configure_error": "Failed to configure the background service",
"backup_controller_page_background_delay": "Delay new assets backup: {duration}", "backup_controller_page_background_delay": "Delay new assets backup: {}",
"backup_controller_page_background_description": "Turn on the background service to automatically backup any new assets without needing to open the app", "backup_controller_page_background_description": "Turn on the background service to automatically backup any new assets without needing to open the app",
"backup_controller_page_background_is_off": "Automatic background backup is off", "backup_controller_page_background_is_off": "Automatic background backup is off",
"backup_controller_page_background_is_on": "Automatic background backup is on", "backup_controller_page_background_is_on": "Automatic background backup is on",
"backup_controller_page_background_turn_off": "Turn off background service", "backup_controller_page_background_turn_off": "Turn off background service",
"backup_controller_page_background_turn_on": "Turn on background service", "backup_controller_page_background_turn_on": "Turn on background service",
"backup_controller_page_background_wifi": "Only on Wi-Fi", "backup_controller_page_background_wifi": "Only on WiFi",
"backup_controller_page_backup": "Backup", "backup_controller_page_backup": "Backup",
"backup_controller_page_backup_selected": "Selected: ", "backup_controller_page_backup_selected": "Selected: ",
"backup_controller_page_backup_sub": "Backed up photos and videos", "backup_controller_page_backup_sub": "Backed up photos and videos",
"backup_controller_page_created": "Created on: {date}", "backup_controller_page_created": "Created on: {}",
"backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.", "backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
"backup_controller_page_excluded": "Excluded: ", "backup_controller_page_excluded": "Excluded: ",
"backup_controller_page_failed": "Failed ({count})", "backup_controller_page_failed": "Failed ({})",
"backup_controller_page_filename": "File name: {filename} [{size}]", "backup_controller_page_filename": "File name: {} [{}]",
"backup_controller_page_id": "ID: {id}", "backup_controller_page_id": "ID: {}",
"backup_controller_page_info": "Backup Information", "backup_controller_page_info": "Backup Information",
"backup_controller_page_none_selected": "None selected", "backup_controller_page_none_selected": "None selected",
"backup_controller_page_remainder": "Remainder", "backup_controller_page_remainder": "Remainder",
@@ -548,7 +545,7 @@
"backup_controller_page_start_backup": "Start Backup", "backup_controller_page_start_backup": "Start Backup",
"backup_controller_page_status_off": "Automatic foreground backup is off", "backup_controller_page_status_off": "Automatic foreground backup is off",
"backup_controller_page_status_on": "Automatic foreground backup is on", "backup_controller_page_status_on": "Automatic foreground backup is on",
"backup_controller_page_storage_format": "{used} of {total} used", "backup_controller_page_storage_format": "{} of {} used",
"backup_controller_page_to_backup": "Albums to be backed up", "backup_controller_page_to_backup": "Albums to be backed up",
"backup_controller_page_total_sub": "All unique photos and videos from selected albums", "backup_controller_page_total_sub": "All unique photos and videos from selected albums",
"backup_controller_page_turn_off": "Turn off foreground backup", "backup_controller_page_turn_off": "Turn off foreground backup",
@@ -573,21 +570,21 @@
"bulk_keep_duplicates_confirmation": "Are you sure you want to keep {count, plural, one {# duplicate asset} other {# duplicate assets}}? This will resolve all duplicate groups without deleting anything.", "bulk_keep_duplicates_confirmation": "Are you sure you want to keep {count, plural, one {# duplicate asset} other {# duplicate assets}}? This will resolve all duplicate groups without deleting anything.",
"bulk_trash_duplicates_confirmation": "Are you sure you want to bulk trash {count, plural, one {# duplicate asset} other {# duplicate assets}}? This will keep the largest asset of each group and trash all other duplicates.", "bulk_trash_duplicates_confirmation": "Are you sure you want to bulk trash {count, plural, one {# duplicate asset} other {# duplicate assets}}? This will keep the largest asset of each group and trash all other duplicates.",
"buy": "Purchase Immich", "buy": "Purchase Immich",
"cache_settings_album_thumbnails": "Library page thumbnails ({count} assets)", "cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
"cache_settings_clear_cache_button": "Clear cache", "cache_settings_clear_cache_button": "Clear cache",
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.", "cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
"cache_settings_duplicated_assets_clear_button": "CLEAR", "cache_settings_duplicated_assets_clear_button": "CLEAR",
"cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app", "cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app",
"cache_settings_duplicated_assets_title": "Duplicated Assets ({count})", "cache_settings_duplicated_assets_title": "Duplicated Assets ({})",
"cache_settings_image_cache_size": "Image cache size ({count} assets)", "cache_settings_image_cache_size": "Image cache size ({} assets)",
"cache_settings_statistics_album": "Library thumbnails", "cache_settings_statistics_album": "Library thumbnails",
"cache_settings_statistics_assets": "{count} assets ({size})", "cache_settings_statistics_assets": "{} assets ({})",
"cache_settings_statistics_full": "Full images", "cache_settings_statistics_full": "Full images",
"cache_settings_statistics_shared": "Shared album thumbnails", "cache_settings_statistics_shared": "Shared album thumbnails",
"cache_settings_statistics_thumbnail": "Thumbnails", "cache_settings_statistics_thumbnail": "Thumbnails",
"cache_settings_statistics_title": "Cache usage", "cache_settings_statistics_title": "Cache usage",
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application", "cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
"cache_settings_thumbnail_size": "Thumbnail cache size ({count} assets)", "cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
"cache_settings_tile_subtitle": "Control the local storage behaviour", "cache_settings_tile_subtitle": "Control the local storage behaviour",
"cache_settings_tile_title": "Local Storage", "cache_settings_tile_title": "Local Storage",
"cache_settings_title": "Caching Settings", "cache_settings_title": "Caching Settings",
@@ -601,7 +598,6 @@
"cannot_undo_this_action": "You cannot undo this action!", "cannot_undo_this_action": "You cannot undo this action!",
"cannot_update_the_description": "Cannot update the description", "cannot_update_the_description": "Cannot update the description",
"change_date": "Change date", "change_date": "Change date",
"change_description": "Change description",
"change_display_order": "Change display order", "change_display_order": "Change display order",
"change_expiration_time": "Change expiration time", "change_expiration_time": "Change expiration time",
"change_location": "Change location", "change_location": "Change location",
@@ -614,7 +610,6 @@
"change_password_form_new_password": "New Password", "change_password_form_new_password": "New Password",
"change_password_form_password_mismatch": "Passwords do not match", "change_password_form_password_mismatch": "Passwords do not match",
"change_password_form_reenter_new_password": "Re-enter New Password", "change_password_form_reenter_new_password": "Re-enter New Password",
"change_pin_code": "Change PIN code",
"change_your_password": "Change your password", "change_your_password": "Change your password",
"changed_visibility_successfully": "Changed visibility successfully", "changed_visibility_successfully": "Changed visibility successfully",
"check_all": "Check All", "check_all": "Check All",
@@ -655,12 +650,11 @@
"confirm_delete_face": "Are you sure you want to delete {name} face from the asset?", "confirm_delete_face": "Are you sure you want to delete {name} face from the asset?",
"confirm_delete_shared_link": "Are you sure you want to delete this shared link?", "confirm_delete_shared_link": "Are you sure you want to delete this shared link?",
"confirm_keep_this_delete_others": "All other assets in the stack will be deleted except for this asset. Are you sure you want to continue?", "confirm_keep_this_delete_others": "All other assets in the stack will be deleted except for this asset. Are you sure you want to continue?",
"confirm_new_pin_code": "Confirm new PIN code",
"confirm_password": "Confirm password", "confirm_password": "Confirm password",
"contain": "Contain", "contain": "Contain",
"context": "Context", "context": "Context",
"continue": "Continue", "continue": "Continue",
"control_bottom_app_bar_album_info_shared": "{count} items · Shared", "control_bottom_app_bar_album_info_shared": "{} items · Shared",
"control_bottom_app_bar_create_new_album": "Create new album", "control_bottom_app_bar_create_new_album": "Create new album",
"control_bottom_app_bar_delete_from_immich": "Delete from Immich", "control_bottom_app_bar_delete_from_immich": "Delete from Immich",
"control_bottom_app_bar_delete_from_local": "Delete from device", "control_bottom_app_bar_delete_from_local": "Delete from device",
@@ -698,11 +692,9 @@
"create_tag_description": "Create a new tag. For nested tags, please enter the full path of the tag including forward slashes.", "create_tag_description": "Create a new tag. For nested tags, please enter the full path of the tag including forward slashes.",
"create_user": "Create user", "create_user": "Create user",
"created": "Created", "created": "Created",
"created_at": "Created",
"crop": "Crop", "crop": "Crop",
"curated_object_page_title": "Things", "curated_object_page_title": "Things",
"current_device": "Current device", "current_device": "Current device",
"current_pin_code": "Current PIN code",
"current_server_address": "Current server address", "current_server_address": "Current server address",
"custom_locale": "Custom Locale", "custom_locale": "Custom Locale",
"custom_locale_description": "Format dates and numbers based on the language and the region", "custom_locale_description": "Format dates and numbers based on the language and the region",
@@ -771,7 +763,7 @@
"download_enqueue": "Download enqueued", "download_enqueue": "Download enqueued",
"download_error": "Download Error", "download_error": "Download Error",
"download_failed": "Download failed", "download_failed": "Download failed",
"download_filename": "file: {filename}", "download_filename": "file: {}",
"download_finished": "Download finished", "download_finished": "Download finished",
"download_include_embedded_motion_videos": "Embedded videos", "download_include_embedded_motion_videos": "Embedded videos",
"download_include_embedded_motion_videos_description": "Include videos embedded in motion photos as a separate file", "download_include_embedded_motion_videos_description": "Include videos embedded in motion photos as a separate file",
@@ -795,8 +787,6 @@
"edit_avatar": "Edit avatar", "edit_avatar": "Edit avatar",
"edit_date": "Edit date", "edit_date": "Edit date",
"edit_date_and_time": "Edit date and time", "edit_date_and_time": "Edit date and time",
"edit_description": "Edit description",
"edit_description_prompt": "Please select a new description:",
"edit_exclusion_pattern": "Edit exclusion pattern", "edit_exclusion_pattern": "Edit exclusion pattern",
"edit_faces": "Edit faces", "edit_faces": "Edit faces",
"edit_import_path": "Edit import path", "edit_import_path": "Edit import path",
@@ -817,7 +807,6 @@
"editor_crop_tool_h2_aspect_ratios": "Aspect ratios", "editor_crop_tool_h2_aspect_ratios": "Aspect ratios",
"editor_crop_tool_h2_rotation": "Rotation", "editor_crop_tool_h2_rotation": "Rotation",
"email": "Email", "email": "Email",
"email_notifications": "Email notifications",
"empty_folder": "This folder is empty", "empty_folder": "This folder is empty",
"empty_trash": "Empty trash", "empty_trash": "Empty trash",
"empty_trash_confirmation": "Are you sure you want to empty the trash? This will remove all the assets in trash permanently from Immich.\nYou cannot undo this action!", "empty_trash_confirmation": "Are you sure you want to empty the trash? This will remove all the assets in trash permanently from Immich.\nYou cannot undo this action!",
@@ -825,14 +814,12 @@
"enabled": "Enabled", "enabled": "Enabled",
"end_date": "End date", "end_date": "End date",
"enqueued": "Enqueued", "enqueued": "Enqueued",
"enter_wifi_name": "Enter Wi-Fi name", "enter_wifi_name": "Enter WiFi name",
"enter_your_pin_code": "Enter your PIN code",
"enter_your_pin_code_subtitle": "Enter your PIN code to access the locked folder",
"error": "Error", "error": "Error",
"error_change_sort_album": "Failed to change album sort order", "error_change_sort_album": "Failed to change album sort order",
"error_delete_face": "Error deleting face from asset", "error_delete_face": "Error deleting face from asset",
"error_loading_image": "Error loading image", "error_loading_image": "Error loading image",
"error_saving_image": "Error: {error}", "error_saving_image": "Error: {}",
"error_title": "Error - Something went wrong", "error_title": "Error - Something went wrong",
"errors": { "errors": {
"cannot_navigate_next_asset": "Cannot navigate to the next asset", "cannot_navigate_next_asset": "Cannot navigate to the next asset",
@@ -885,7 +872,6 @@
"unable_to_archive_unarchive": "Unable to {archived, select, true {archive} other {unarchive}}", "unable_to_archive_unarchive": "Unable to {archived, select, true {archive} other {unarchive}}",
"unable_to_change_album_user_role": "Unable to change the album user's role", "unable_to_change_album_user_role": "Unable to change the album user's role",
"unable_to_change_date": "Unable to change date", "unable_to_change_date": "Unable to change date",
"unable_to_change_description": "Unable to change description",
"unable_to_change_favorite": "Unable to change favorite for asset", "unable_to_change_favorite": "Unable to change favorite for asset",
"unable_to_change_location": "Unable to change location", "unable_to_change_location": "Unable to change location",
"unable_to_change_password": "Unable to change password", "unable_to_change_password": "Unable to change password",
@@ -923,7 +909,6 @@
"unable_to_log_out_all_devices": "Unable to log out all devices", "unable_to_log_out_all_devices": "Unable to log out all devices",
"unable_to_log_out_device": "Unable to log out device", "unable_to_log_out_device": "Unable to log out device",
"unable_to_login_with_oauth": "Unable to login with OAuth", "unable_to_login_with_oauth": "Unable to login with OAuth",
"unable_to_move_to_locked_folder": "Unable to move to locked folder",
"unable_to_play_video": "Unable to play video", "unable_to_play_video": "Unable to play video",
"unable_to_reassign_assets_existing_person": "Unable to reassign assets to {name, select, null {an existing person} other {{name}}}", "unable_to_reassign_assets_existing_person": "Unable to reassign assets to {name, select, null {an existing person} other {{name}}}",
"unable_to_reassign_assets_new_person": "Unable to reassign assets to a new person", "unable_to_reassign_assets_new_person": "Unable to reassign assets to a new person",
@@ -937,7 +922,6 @@
"unable_to_remove_reaction": "Unable to remove reaction", "unable_to_remove_reaction": "Unable to remove reaction",
"unable_to_repair_items": "Unable to repair items", "unable_to_repair_items": "Unable to repair items",
"unable_to_reset_password": "Unable to reset password", "unable_to_reset_password": "Unable to reset password",
"unable_to_reset_pin_code": "Unable to reset PIN code",
"unable_to_resolve_duplicate": "Unable to resolve duplicate", "unable_to_resolve_duplicate": "Unable to resolve duplicate",
"unable_to_restore_assets": "Unable to restore assets", "unable_to_restore_assets": "Unable to restore assets",
"unable_to_restore_trash": "Unable to restore trash", "unable_to_restore_trash": "Unable to restore trash",
@@ -971,10 +955,10 @@
"exif_bottom_sheet_location": "LOCATION", "exif_bottom_sheet_location": "LOCATION",
"exif_bottom_sheet_people": "PEOPLE", "exif_bottom_sheet_people": "PEOPLE",
"exif_bottom_sheet_person_add_person": "Add name", "exif_bottom_sheet_person_add_person": "Add name",
"exif_bottom_sheet_person_age": "Age {age}", "exif_bottom_sheet_person_age": "Age {}",
"exif_bottom_sheet_person_age_months": "Age {months} months", "exif_bottom_sheet_person_age_months": "Age {} months",
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {months} months", "exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
"exif_bottom_sheet_person_age_years": "Age {years}", "exif_bottom_sheet_person_age_years": "Age {}",
"exit_slideshow": "Exit Slideshow", "exit_slideshow": "Exit Slideshow",
"expand_all": "Expand all", "expand_all": "Expand all",
"experimental_settings_new_asset_list_subtitle": "Work in progress", "experimental_settings_new_asset_list_subtitle": "Work in progress",
@@ -1064,7 +1048,6 @@
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping", "home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
"host": "Host", "host": "Host",
"hour": "Hour", "hour": "Hour",
"id": "ID",
"ignore_icloud_photos": "Ignore iCloud photos", "ignore_icloud_photos": "Ignore iCloud photos",
"ignore_icloud_photos_description": "Photos that are stored on iCloud will not be uploaded to the Immich server", "ignore_icloud_photos_description": "Photos that are stored on iCloud will not be uploaded to the Immich server",
"image": "Image", "image": "Image",
@@ -1146,8 +1129,6 @@
"location_picker_latitude_hint": "Enter your latitude here", "location_picker_latitude_hint": "Enter your latitude here",
"location_picker_longitude_error": "Enter a valid longitude", "location_picker_longitude_error": "Enter a valid longitude",
"location_picker_longitude_hint": "Enter your longitude here", "location_picker_longitude_hint": "Enter your longitude here",
"lock": "Lock",
"locked_folder": "Locked Folder",
"log_out": "Log out", "log_out": "Log out",
"log_out_all_devices": "Log Out All Devices", "log_out_all_devices": "Log Out All Devices",
"logged_out_all_devices": "Logged out all devices", "logged_out_all_devices": "Logged out all devices",
@@ -1192,8 +1173,8 @@
"manage_your_devices": "Manage your logged-in devices", "manage_your_devices": "Manage your logged-in devices",
"manage_your_oauth_connection": "Manage your OAuth connection", "manage_your_oauth_connection": "Manage your OAuth connection",
"map": "Map", "map": "Map",
"map_assets_in_bound": "{count} photo", "map_assets_in_bound": "{} photo",
"map_assets_in_bounds": "{count} photos", "map_assets_in_bounds": "{} photos",
"map_cannot_get_user_location": "Cannot get user's location", "map_cannot_get_user_location": "Cannot get user's location",
"map_location_dialog_yes": "Yes", "map_location_dialog_yes": "Yes",
"map_location_picker_page_use_location": "Use this location", "map_location_picker_page_use_location": "Use this location",
@@ -1207,17 +1188,17 @@
"map_settings": "Map settings", "map_settings": "Map settings",
"map_settings_dark_mode": "Dark mode", "map_settings_dark_mode": "Dark mode",
"map_settings_date_range_option_day": "Past 24 hours", "map_settings_date_range_option_day": "Past 24 hours",
"map_settings_date_range_option_days": "Past {days} days", "map_settings_date_range_option_days": "Past {} days",
"map_settings_date_range_option_year": "Past year", "map_settings_date_range_option_year": "Past year",
"map_settings_date_range_option_years": "Past {years} years", "map_settings_date_range_option_years": "Past {} years",
"map_settings_dialog_title": "Map Settings", "map_settings_dialog_title": "Map Settings",
"map_settings_include_show_archived": "Include Archived", "map_settings_include_show_archived": "Include Archived",
"map_settings_include_show_partners": "Include Partners", "map_settings_include_show_partners": "Include Partners",
"map_settings_only_show_favorites": "Show Favorite Only", "map_settings_only_show_favorites": "Show Favorite Only",
"map_settings_theme_settings": "Map Theme", "map_settings_theme_settings": "Map Theme",
"map_zoom_to_see_photos": "Zoom out to see photos", "map_zoom_to_see_photos": "Zoom out to see photos",
"mark_all_as_read": "Mark all as read",
"mark_as_read": "Mark as read", "mark_as_read": "Mark as read",
"mark_all_as_read": "Mark all as read",
"marked_all_as_read": "Marked all as read", "marked_all_as_read": "Marked all as read",
"matches": "Matches", "matches": "Matches",
"media_type": "Media type", "media_type": "Media type",
@@ -1228,7 +1209,7 @@
"memories_start_over": "Start Over", "memories_start_over": "Start Over",
"memories_swipe_to_close": "Swipe up to close", "memories_swipe_to_close": "Swipe up to close",
"memories_year_ago": "A year ago", "memories_year_ago": "A year ago",
"memories_years_ago": "{years, plural, other {# years}} ago", "memories_years_ago": "{} years ago",
"memory": "Memory", "memory": "Memory",
"memory_lane_title": "Memory Lane {title}", "memory_lane_title": "Memory Lane {title}",
"menu": "Menu", "menu": "Menu",
@@ -1245,10 +1226,6 @@
"month": "Month", "month": "Month",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "MMMM y",
"more": "More", "more": "More",
"move": "Move",
"move_off_locked_folder": "Move out of Locked Folder",
"move_to_locked_folder": "Move to Locked Folder",
"move_to_locked_folder_confirmation": "These photos and video will be removed from all albums, and only viewable from the Locked Folder",
"moved_to_archive": "Moved {count, plural, one {# asset} other {# assets}} to archive", "moved_to_archive": "Moved {count, plural, one {# asset} other {# assets}} to archive",
"moved_to_library": "Moved {count, plural, one {# asset} other {# assets}} to library", "moved_to_library": "Moved {count, plural, one {# asset} other {# assets}} to library",
"moved_to_trash": "Moved to trash", "moved_to_trash": "Moved to trash",
@@ -1265,8 +1242,6 @@
"new_api_key": "New API Key", "new_api_key": "New API Key",
"new_password": "New password", "new_password": "New password",
"new_person": "New person", "new_person": "New person",
"new_pin_code": "New PIN code",
"new_pin_code_subtitle": "This is your first time accessing the locked folder. Create a PIN code to securely access this page",
"new_user_created": "New user created", "new_user_created": "New user created",
"new_version_available": "NEW VERSION AVAILABLE", "new_version_available": "NEW VERSION AVAILABLE",
"newest_first": "Newest first", "newest_first": "Newest first",
@@ -1284,19 +1259,17 @@
"no_explore_results_message": "Upload more photos to explore your collection.", "no_explore_results_message": "Upload more photos to explore your collection.",
"no_favorites_message": "Add favorites to quickly find your best pictures and videos", "no_favorites_message": "Add favorites to quickly find your best pictures and videos",
"no_libraries_message": "Create an external library to view your photos and videos", "no_libraries_message": "Create an external library to view your photos and videos",
"no_locked_photos_message": "Photos and videos in Locked Folder are hidden and won't show up as you browser your library.",
"no_name": "No Name", "no_name": "No Name",
"no_notifications": "No notifications",
"no_people_found": "No matching people found", "no_people_found": "No matching people found",
"no_places": "No places", "no_places": "No places",
"no_results": "No results", "no_results": "No results",
"no_results_description": "Try a synonym or more general keyword", "no_results_description": "Try a synonym or more general keyword",
"no_notifications": "No notifications",
"no_shared_albums_message": "Create an album to share photos and videos with people in your network", "no_shared_albums_message": "Create an album to share photos and videos with people in your network",
"not_in_any_album": "Not in any album", "not_in_any_album": "Not in any album",
"not_selected": "Not selected", "not_selected": "Not selected",
"note_apply_storage_label_to_previously_uploaded assets": "Note: To apply the Storage Label to previously uploaded assets, run the", "note_apply_storage_label_to_previously_uploaded assets": "Note: To apply the Storage Label to previously uploaded assets, run the",
"notes": "Notes", "notes": "Notes",
"nothing_here_yet": "Nothing here yet",
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.", "notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
"notification_permission_list_tile_content": "Grant permission to enable notifications.", "notification_permission_list_tile_content": "Grant permission to enable notifications.",
"notification_permission_list_tile_enable_button": "Enable Notifications", "notification_permission_list_tile_enable_button": "Enable Notifications",
@@ -1343,7 +1316,7 @@
"partner_page_partner_add_failed": "Failed to add partner", "partner_page_partner_add_failed": "Failed to add partner",
"partner_page_select_partner": "Select partner", "partner_page_select_partner": "Select partner",
"partner_page_shared_to_title": "Shared to", "partner_page_shared_to_title": "Shared to",
"partner_page_stop_sharing_content": "{partner} will no longer be able to access your photos.", "partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
"partner_sharing": "Partner Sharing", "partner_sharing": "Partner Sharing",
"partners": "Partners", "partners": "Partners",
"password": "Password", "password": "Password",
@@ -1389,10 +1362,6 @@
"photos_count": "{count, plural, one {{count, number} Photo} other {{count, number} Photos}}", "photos_count": "{count, plural, one {{count, number} Photo} other {{count, number} Photos}}",
"photos_from_previous_years": "Photos from previous years", "photos_from_previous_years": "Photos from previous years",
"pick_a_location": "Pick a location", "pick_a_location": "Pick a location",
"pin_code_changed_successfully": "Successfully changed PIN code",
"pin_code_reset_successfully": "Successfully reset PIN code",
"pin_code_setup_successfully": "Successfully setup a PIN code",
"pin_verification": "PIN code verification",
"place": "Place", "place": "Place",
"places": "Places", "places": "Places",
"places_count": "{count, plural, one {{count, number} Place} other {{count, number} Places}}", "places_count": "{count, plural, one {{count, number} Place} other {{count, number} Places}}",
@@ -1410,7 +1379,6 @@
"previous_or_next_photo": "Previous or next photo", "previous_or_next_photo": "Previous or next photo",
"primary": "Primary", "primary": "Primary",
"privacy": "Privacy", "privacy": "Privacy",
"profile": "Profile",
"profile_drawer_app_logs": "Logs", "profile_drawer_app_logs": "Logs",
"profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.", "profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.",
"profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.", "profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.",
@@ -1424,7 +1392,7 @@
"public_share": "Public Share", "public_share": "Public Share",
"purchase_account_info": "Supporter", "purchase_account_info": "Supporter",
"purchase_activated_subtitle": "Thank you for supporting Immich and open-source software", "purchase_activated_subtitle": "Thank you for supporting Immich and open-source software",
"purchase_activated_time": "Activated on {date}", "purchase_activated_time": "Activated on {date, date}",
"purchase_activated_title": "Your key has been successfully activated", "purchase_activated_title": "Your key has been successfully activated",
"purchase_button_activate": "Activate", "purchase_button_activate": "Activate",
"purchase_button_buy": "Buy", "purchase_button_buy": "Buy",
@@ -1490,8 +1458,6 @@
"remove_deleted_assets": "Remove Deleted Assets", "remove_deleted_assets": "Remove Deleted Assets",
"remove_from_album": "Remove from album", "remove_from_album": "Remove from album",
"remove_from_favorites": "Remove from favorites", "remove_from_favorites": "Remove from favorites",
"remove_from_locked_folder": "Remove from Locked Folder",
"remove_from_locked_folder_confirmation": "Are you sure you want to move these photos and videos out of Locked Folder? They will be visible in your library",
"remove_from_shared_link": "Remove from shared link", "remove_from_shared_link": "Remove from shared link",
"remove_memory": "Remove memory", "remove_memory": "Remove memory",
"remove_photo_from_memory": "Remove photo from this memory", "remove_photo_from_memory": "Remove photo from this memory",
@@ -1515,7 +1481,6 @@
"reset": "Reset", "reset": "Reset",
"reset_password": "Reset password", "reset_password": "Reset password",
"reset_people_visibility": "Reset people visibility", "reset_people_visibility": "Reset people visibility",
"reset_pin_code": "Reset PIN code",
"reset_to_default": "Reset to default", "reset_to_default": "Reset to default",
"resolve_duplicates": "Resolve duplicates", "resolve_duplicates": "Resolve duplicates",
"resolved_all_duplicates": "Resolved all duplicates", "resolved_all_duplicates": "Resolved all duplicates",
@@ -1639,12 +1604,12 @@
"setting_languages_apply": "Apply", "setting_languages_apply": "Apply",
"setting_languages_subtitle": "Change the app's language", "setting_languages_subtitle": "Change the app's language",
"setting_languages_title": "Languages", "setting_languages_title": "Languages",
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {duration}", "setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
"setting_notifications_notify_hours": "{count} hours", "setting_notifications_notify_hours": "{} hours",
"setting_notifications_notify_immediately": "immediately", "setting_notifications_notify_immediately": "immediately",
"setting_notifications_notify_minutes": "{count} minutes", "setting_notifications_notify_minutes": "{} minutes",
"setting_notifications_notify_never": "never", "setting_notifications_notify_never": "never",
"setting_notifications_notify_seconds": "{count} seconds", "setting_notifications_notify_seconds": "{} seconds",
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset", "setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
"setting_notifications_single_progress_title": "Show background backup detail progress", "setting_notifications_single_progress_title": "Show background backup detail progress",
"setting_notifications_subtitle": "Adjust your notification preferences", "setting_notifications_subtitle": "Adjust your notification preferences",
@@ -1656,10 +1621,9 @@
"settings": "Settings", "settings": "Settings",
"settings_require_restart": "Please restart Immich to apply this setting", "settings_require_restart": "Please restart Immich to apply this setting",
"settings_saved": "Settings saved", "settings_saved": "Settings saved",
"setup_pin_code": "Setup a PIN code",
"share": "Share", "share": "Share",
"share_add_photos": "Add photos", "share_add_photos": "Add photos",
"share_assets_selected": "{count} selected", "share_assets_selected": "{} selected",
"share_dialog_preparing": "Preparing...", "share_dialog_preparing": "Preparing...",
"shared": "Shared", "shared": "Shared",
"shared_album_activities_input_disable": "Comment is disabled", "shared_album_activities_input_disable": "Comment is disabled",
@@ -1673,32 +1637,32 @@
"shared_by_user": "Shared by {user}", "shared_by_user": "Shared by {user}",
"shared_by_you": "Shared by you", "shared_by_you": "Shared by you",
"shared_from_partner": "Photos from {partner}", "shared_from_partner": "Photos from {partner}",
"shared_intent_upload_button_progress_text": "{current} / {total} Uploaded", "shared_intent_upload_button_progress_text": "{} / {} Uploaded",
"shared_link_app_bar_title": "Shared Links", "shared_link_app_bar_title": "Shared Links",
"shared_link_clipboard_copied_massage": "Copied to clipboard", "shared_link_clipboard_copied_massage": "Copied to clipboard",
"shared_link_clipboard_text": "Link: {link}\nPassword: {password}", "shared_link_clipboard_text": "Link: {}\nPassword: {}",
"shared_link_create_error": "Error while creating shared link", "shared_link_create_error": "Error while creating shared link",
"shared_link_edit_description_hint": "Enter the share description", "shared_link_edit_description_hint": "Enter the share description",
"shared_link_edit_expire_after_option_day": "1 day", "shared_link_edit_expire_after_option_day": "1 day",
"shared_link_edit_expire_after_option_days": "{count} days", "shared_link_edit_expire_after_option_days": "{} days",
"shared_link_edit_expire_after_option_hour": "1 hour", "shared_link_edit_expire_after_option_hour": "1 hour",
"shared_link_edit_expire_after_option_hours": "{count} hours", "shared_link_edit_expire_after_option_hours": "{} hours",
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_minute": "1 minute",
"shared_link_edit_expire_after_option_minutes": "{count} minutes", "shared_link_edit_expire_after_option_minutes": "{} minutes",
"shared_link_edit_expire_after_option_months": "{count} months", "shared_link_edit_expire_after_option_months": "{} months",
"shared_link_edit_expire_after_option_year": "{count} year", "shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_password_hint": "Enter the share password", "shared_link_edit_password_hint": "Enter the share password",
"shared_link_edit_submit_button": "Update link", "shared_link_edit_submit_button": "Update link",
"shared_link_error_server_url_fetch": "Cannot fetch the server url", "shared_link_error_server_url_fetch": "Cannot fetch the server url",
"shared_link_expires_day": "Expires in {count} day", "shared_link_expires_day": "Expires in {} day",
"shared_link_expires_days": "Expires in {count} days", "shared_link_expires_days": "Expires in {} days",
"shared_link_expires_hour": "Expires in {count} hour", "shared_link_expires_hour": "Expires in {} hour",
"shared_link_expires_hours": "Expires in {count} hours", "shared_link_expires_hours": "Expires in {} hours",
"shared_link_expires_minute": "Expires in {count} minute", "shared_link_expires_minute": "Expires in {} minute",
"shared_link_expires_minutes": "Expires in {count} minutes", "shared_link_expires_minutes": "Expires in {} minutes",
"shared_link_expires_never": "Expires ∞", "shared_link_expires_never": "Expires ∞",
"shared_link_expires_second": "Expires in {count} second", "shared_link_expires_second": "Expires in {} second",
"shared_link_expires_seconds": "Expires in {count} seconds", "shared_link_expires_seconds": "Expires in {} seconds",
"shared_link_individual_shared": "Individual shared", "shared_link_individual_shared": "Individual shared",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Manage Shared links", "shared_link_manage_links": "Manage Shared links",
@@ -1773,7 +1737,6 @@
"stop_sharing_photos_with_user": "Stop sharing your photos with this user", "stop_sharing_photos_with_user": "Stop sharing your photos with this user",
"storage": "Storage space", "storage": "Storage space",
"storage_label": "Storage label", "storage_label": "Storage label",
"storage_quota": "Storage Quota",
"storage_usage": "{used} of {available} used", "storage_usage": "{used} of {available} used",
"submit": "Submit", "submit": "Submit",
"suggestions": "Suggestions", "suggestions": "Suggestions",
@@ -1800,7 +1763,7 @@
"theme_selection": "Theme selection", "theme_selection": "Theme selection",
"theme_selection_description": "Automatically set the theme to light or dark based on your browser's system preference", "theme_selection_description": "Automatically set the theme to light or dark based on your browser's system preference",
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles", "theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({count})", "theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.", "theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
"theme_setting_colorful_interface_title": "Colorful interface", "theme_setting_colorful_interface_title": "Colorful interface",
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer", "theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
@@ -1835,15 +1798,13 @@
"trash_no_results_message": "Trashed photos and videos will show up here.", "trash_no_results_message": "Trashed photos and videos will show up here.",
"trash_page_delete_all": "Delete All", "trash_page_delete_all": "Delete All",
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich", "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
"trash_page_info": "Trashed items will be permanently deleted after {days} days", "trash_page_info": "Trashed items will be permanently deleted after {} days",
"trash_page_no_assets": "No trashed assets", "trash_page_no_assets": "No trashed assets",
"trash_page_restore_all": "Restore All", "trash_page_restore_all": "Restore All",
"trash_page_select_assets_btn": "Select assets", "trash_page_select_assets_btn": "Select assets",
"trash_page_title": "Trash ({count})", "trash_page_title": "Trash ({})",
"trashed_items_will_be_permanently_deleted_after": "Trashed items will be permanently deleted after {days, plural, one {# day} other {# days}}.", "trashed_items_will_be_permanently_deleted_after": "Trashed items will be permanently deleted after {days, plural, one {# day} other {# days}}.",
"type": "Type", "type": "Type",
"unable_to_change_pin_code": "Unable to change PIN code",
"unable_to_setup_pin_code": "Unable to setup PIN code",
"unarchive": "Unarchive", "unarchive": "Unarchive",
"unarchived_count": "{count, plural, other {Unarchived #}}", "unarchived_count": "{count, plural, other {Unarchived #}}",
"unfavorite": "Unfavorite", "unfavorite": "Unfavorite",
@@ -1867,7 +1828,6 @@
"untracked_files": "Untracked files", "untracked_files": "Untracked files",
"untracked_files_decription": "These files are not tracked by the application. They can be the results of failed moves, interrupted uploads, or left behind due to a bug", "untracked_files_decription": "These files are not tracked by the application. They can be the results of failed moves, interrupted uploads, or left behind due to a bug",
"up_next": "Up next", "up_next": "Up next",
"updated_at": "Updated",
"updated_password": "Updated password", "updated_password": "Updated password",
"upload": "Upload", "upload": "Upload",
"upload_concurrency": "Upload concurrency", "upload_concurrency": "Upload concurrency",
@@ -1880,18 +1840,15 @@
"upload_status_errors": "Errors", "upload_status_errors": "Errors",
"upload_status_uploaded": "Uploaded", "upload_status_uploaded": "Uploaded",
"upload_success": "Upload success, refresh the page to see new upload assets.", "upload_success": "Upload success, refresh the page to see new upload assets.",
"upload_to_immich": "Upload to Immich ({count})", "upload_to_immich": "Upload to Immich ({})",
"uploading": "Uploading", "uploading": "Uploading",
"url": "URL", "url": "URL",
"usage": "Usage", "usage": "Usage",
"use_current_connection": "use current connection", "use_current_connection": "use current connection",
"use_custom_date_range": "Use custom date range instead", "use_custom_date_range": "Use custom date range instead",
"user": "User", "user": "User",
"user_has_been_deleted": "This user has been deleted.",
"user_id": "User ID", "user_id": "User ID",
"user_liked": "{user} liked {type, select, photo {this photo} video {this video} asset {this asset} other {it}}", "user_liked": "{user} liked {type, select, photo {this photo} video {this video} asset {this asset} other {it}}",
"user_pin_code_settings": "PIN Code",
"user_pin_code_settings_description": "Manage your PIN code",
"user_purchase_settings": "Purchase", "user_purchase_settings": "Purchase",
"user_purchase_settings_description": "Manage your purchase", "user_purchase_settings_description": "Manage your purchase",
"user_role_set": "Set {user} as {role}", "user_role_set": "Set {user} as {role}",
@@ -1940,12 +1897,11 @@
"week": "Week", "week": "Week",
"welcome": "Welcome", "welcome": "Welcome",
"welcome_to_immich": "Welcome to Immich", "welcome_to_immich": "Welcome to Immich",
"wifi_name": "Wi-Fi Name", "wifi_name": "WiFi Name",
"wrong_pin_code": "Wrong PIN code",
"year": "Year", "year": "Year",
"years_ago": "{years, plural, one {# year} other {# years}} ago", "years_ago": "{years, plural, one {# year} other {# years}} ago",
"yes": "Yes", "yes": "Yes",
"you_dont_have_any_shared_links": "You don't have any shared links", "you_dont_have_any_shared_links": "You don't have any shared links",
"your_wifi_name": "Your Wi-Fi name", "your_wifi_name": "Your WiFi name",
"zoom_image": "Zoom Image" "zoom_image": "Zoom Image"
} }

View File

@@ -53,7 +53,6 @@
"confirm_email_below": "Para confirmar, escribe \"{email}\" a continuación", "confirm_email_below": "Para confirmar, escribe \"{email}\" a continuación",
"confirm_reprocess_all_faces": "¿Estás seguro de que deseas reprocesar todas las caras? Esto borrará a todas las personas que nombraste.", "confirm_reprocess_all_faces": "¿Estás seguro de que deseas reprocesar todas las caras? Esto borrará a todas las personas que nombraste.",
"confirm_user_password_reset": "¿Estás seguro de que quieres restablecer la contraseña de {user}?", "confirm_user_password_reset": "¿Estás seguro de que quieres restablecer la contraseña de {user}?",
"confirm_user_pin_code_reset": "Está seguro de que quiere restablecer el PIN de {user}?",
"create_job": "Crear trabajo", "create_job": "Crear trabajo",
"cron_expression": "Expresión CRON", "cron_expression": "Expresión CRON",
"cron_expression_description": "Establece el intervalo de escaneo utilizando el formato CRON. Para más información puedes consultar, por ejemplo, <link> Crontab Guru</link>", "cron_expression_description": "Establece el intervalo de escaneo utilizando el formato CRON. Para más información puedes consultar, por ejemplo, <link> Crontab Guru</link>",
@@ -193,22 +192,26 @@
"oauth_auto_register": "Registro automático", "oauth_auto_register": "Registro automático",
"oauth_auto_register_description": "Registre automáticamente nuevos usuarios después de iniciar sesión con OAuth", "oauth_auto_register_description": "Registre automáticamente nuevos usuarios después de iniciar sesión con OAuth",
"oauth_button_text": "Texto del botón", "oauth_button_text": "Texto del botón",
"oauth_client_secret_description": "Requerido si PKCE (Prueba de clave para el intercambio de códigos) no es compatible con el proveedor OAuth", "oauth_client_id": "ID Cliente",
"oauth_client_secret": "Secreto Cliente",
"oauth_enable_description": "Iniciar sesión con OAuth", "oauth_enable_description": "Iniciar sesión con OAuth",
"oauth_issuer_url": "URL del emisor",
"oauth_mobile_redirect_uri": "URI de redireccionamiento móvil", "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": "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_mobile_redirect_uri_override_description": "Habilitar cuando el proveedor de OAuth no permite una URI móvil, como '{callback}'",
"oauth_profile_signing_algorithm": "Algoritmo de firma de perfiles",
"oauth_profile_signing_algorithm_description": "Algoritmo utilizado para firmar el perfil del usuario.",
"oauth_scope": "Ámbito",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "Administrar la configuración de inicio de sesión de OAuth", "oauth_settings_description": "Administrar la configuración de inicio de sesión de OAuth",
"oauth_settings_more_details": "Para más detalles acerca de esta característica, consulte la <link>documentación</link>.", "oauth_settings_more_details": "Para más detalles acerca de esta característica, consulte la <link>documentación</link>.",
"oauth_signing_algorithm": "Algoritmo de firma",
"oauth_storage_label_claim": "Petición de etiqueta de almacenamiento", "oauth_storage_label_claim": "Petición de etiqueta de almacenamiento",
"oauth_storage_label_claim_description": "Establece la etiqueta del almacenamiento del usuario automáticamente a este valor reclamado.", "oauth_storage_label_claim_description": "Establece la etiqueta del almacenamiento del usuario automáticamente a este valor reclamado.",
"oauth_storage_quota_claim": "Reclamar quota de almacenamiento", "oauth_storage_quota_claim": "Reclamar quota de almacenamiento",
"oauth_storage_quota_claim_description": "Establezca automáticamente la cuota de almacenamiento del usuario al valor de esta solicitud.", "oauth_storage_quota_claim_description": "Establezca automáticamente la cuota de almacenamiento del usuario al valor de esta solicitud.",
"oauth_storage_quota_default": "Cuota de almacenamiento predeterminada (GiB)", "oauth_storage_quota_default": "Cuota de almacenamiento predeterminada (GiB)",
"oauth_storage_quota_default_description": "Cuota en GiB que se utilizará cuando no se proporcione ninguna por defecto (ingrese 0 para una cuota ilimitada).", "oauth_storage_quota_default_description": "Cuota en GiB que se utilizará cuando no se proporcione ninguna por defecto (ingrese 0 para una cuota ilimitada).",
"oauth_timeout": "Expiración de solicitud",
"oauth_timeout_description": "Tiempo de espera de solicitudes en milisegundos",
"offline_paths": "Rutas sin conexión", "offline_paths": "Rutas sin conexión",
"offline_paths_description": "Estos resultados pueden deberse al eliminar manualmente archivos que no son parte de una biblioteca externa.", "offline_paths_description": "Estos resultados pueden deberse al eliminar manualmente archivos que no son parte de una biblioteca externa.",
"password_enable_description": "Iniciar sesión con correo electrónico y contraseña", "password_enable_description": "Iniciar sesión con correo electrónico y contraseña",
@@ -349,7 +352,6 @@
"user_delete_delay_settings_description": "Número de días después de la eliminación para eliminar permanentemente la cuenta y los activos de un usuario. El trabajo de eliminación de usuarios se ejecuta a medianoche para comprobar si hay usuarios que estén listos para su eliminación. Los cambios a esta configuración se evaluarán en la próxima ejecución.", "user_delete_delay_settings_description": "Número de días después de la eliminación para eliminar permanentemente la cuenta y los activos de un usuario. El trabajo de eliminación de usuarios se ejecuta a medianoche para comprobar si hay usuarios que estén listos para su eliminación. Los cambios a esta configuración se evaluarán en la próxima ejecución.",
"user_delete_immediately": "La cuenta <b>{user}</b> y los archivos se pondrán en cola para su eliminación permanente <b>inmediatamente</b>.", "user_delete_immediately": "La cuenta <b>{user}</b> y los archivos se pondrán en cola para su eliminación permanente <b>inmediatamente</b>.",
"user_delete_immediately_checkbox": "Poner en cola la eliminación inmediata de usuarios y elementos", "user_delete_immediately_checkbox": "Poner en cola la eliminación inmediata de usuarios y elementos",
"user_details": "Detalles de Usuario",
"user_management": "Gestión de usuarios", "user_management": "Gestión de usuarios",
"user_password_has_been_reset": "La contraseña del usuario ha sido restablecida:", "user_password_has_been_reset": "La contraseña del usuario ha sido restablecida:",
"user_password_reset_description": "Proporcione una contraseña temporal al usuario e infórmele que deberá cambiar la contraseña en su próximo inicio de sesión.", "user_password_reset_description": "Proporcione una contraseña temporal al usuario e infórmele que deberá cambiar la contraseña en su próximo inicio de sesión.",
@@ -371,7 +373,7 @@
"advanced": "Avanzada", "advanced": "Avanzada",
"advanced_settings_enable_alternate_media_filter_subtitle": "Usa esta opción para filtrar medios durante la sincronización según criterios alternativos. Intenta esto solo si tienes problemas con que la aplicación detecte todos los álbumes.", "advanced_settings_enable_alternate_media_filter_subtitle": "Usa esta opción para filtrar medios durante la sincronización según criterios alternativos. Intenta esto solo si tienes problemas con que la aplicación detecte todos los álbumes.",
"advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTAL] Usar filtro alternativo de sincronización de álbumes del dispositivo", "advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTAL] Usar filtro alternativo de sincronización de álbumes del dispositivo",
"advanced_settings_log_level_title": "Nivel de registro: {level}", "advanced_settings_log_level_title": "Nivel de registro: {}",
"advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de los elementos encontrados en el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.", "advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de los elementos encontrados en el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
"advanced_settings_prefer_remote_title": "Preferir imágenes remotas", "advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
"advanced_settings_proxy_headers_subtitle": "Configura headers HTTP que Immich incluirá en cada petición de red", "advanced_settings_proxy_headers_subtitle": "Configura headers HTTP que Immich incluirá en cada petición de red",
@@ -385,7 +387,7 @@
"advanced_settings_troubleshooting_title": "Solución de problemas", "advanced_settings_troubleshooting_title": "Solución de problemas",
"age_months": "Tiempo {months, plural, one {# mes} other {# meses}}", "age_months": "Tiempo {months, plural, one {# mes} other {# meses}}",
"age_year_months": "1 año, {months, plural, one {# mes} other {# meses}}", "age_year_months": "1 año, {months, plural, one {# mes} other {# meses}}",
"age_years": "Edad {years, plural, one {# año} other {# años}}", "age_years": "Antigüedad {years, plural, one {# año} other {# años}}",
"album_added": "Álbum añadido", "album_added": "Álbum añadido",
"album_added_notification_setting_description": "Reciba una notificación por correo electrónico cuando lo agreguen a un álbum compartido", "album_added_notification_setting_description": "Reciba una notificación por correo electrónico cuando lo agreguen a un álbum compartido",
"album_cover_updated": "Portada del álbum actualizada", "album_cover_updated": "Portada del álbum actualizada",
@@ -402,9 +404,9 @@
"album_remove_user_confirmation": "¿Estás seguro de que quieres eliminar a {user}?", "album_remove_user_confirmation": "¿Estás seguro de que quieres eliminar a {user}?",
"album_share_no_users": "Parece que has compartido este álbum con todos los usuarios o no tienes ningún usuario con quien compartirlo.", "album_share_no_users": "Parece que has compartido este álbum con todos los usuarios o no tienes ningún usuario con quien compartirlo.",
"album_thumbnail_card_item": "1 elemento", "album_thumbnail_card_item": "1 elemento",
"album_thumbnail_card_items": "{count} elementos", "album_thumbnail_card_items": "{} elementos",
"album_thumbnail_card_shared": " · Compartido", "album_thumbnail_card_shared": " · Compartido",
"album_thumbnail_shared_by": "Compartido por {user}", "album_thumbnail_shared_by": "Compartido por {}",
"album_updated": "Album actualizado", "album_updated": "Album actualizado",
"album_updated_setting_description": "Reciba una notificación por correo electrónico cuando un álbum compartido tenga nuevos archivos", "album_updated_setting_description": "Reciba una notificación por correo electrónico cuando un álbum compartido tenga nuevos archivos",
"album_user_left": "Salida {album}", "album_user_left": "Salida {album}",
@@ -442,7 +444,7 @@
"archive": "Archivo", "archive": "Archivo",
"archive_or_unarchive_photo": "Archivar o restaurar foto", "archive_or_unarchive_photo": "Archivar o restaurar foto",
"archive_page_no_archived_assets": "No se encontraron elementos archivados", "archive_page_no_archived_assets": "No se encontraron elementos archivados",
"archive_page_title": "Archivo ({count})", "archive_page_title": "Archivo ({})",
"archive_size": "Tamaño del archivo", "archive_size": "Tamaño del archivo",
"archive_size_description": "Configure el tamaño del archivo para descargas (en GB)", "archive_size_description": "Configure el tamaño del archivo para descargas (en GB)",
"archived": "Archivado", "archived": "Archivado",
@@ -479,18 +481,18 @@
"assets_added_to_album_count": "Añadido {count, plural, one {# asset} other {# assets}} al álbum", "assets_added_to_album_count": "Añadido {count, plural, one {# asset} other {# assets}} al álbum",
"assets_added_to_name_count": "Añadido {count, plural, one {# asset} other {# assets}} a {hasName, select, true {<b>{name}</b>} other {new album}}", "assets_added_to_name_count": "Añadido {count, plural, one {# asset} other {# assets}} a {hasName, select, true {<b>{name}</b>} other {new album}}",
"assets_count": "{count, plural, one {# activo} other {# activos}}", "assets_count": "{count, plural, one {# activo} other {# activos}}",
"assets_deleted_permanently": "{count} elemento(s) eliminado(s) permanentemente", "assets_deleted_permanently": "{} elementos(s) eliminado(s) permanentemente",
"assets_deleted_permanently_from_server": "{count} recurso(s) eliminado(s) de forma permanente del servidor de Immich", "assets_deleted_permanently_from_server": "{} recurso(s) eliminado(s) de forma permanente del servidor de Immich",
"assets_moved_to_trash_count": "{count, plural, one {# elemento movido} other {# elementos movidos}} a la papelera", "assets_moved_to_trash_count": "{count, plural, one {# elemento movido} other {# elementos movidos}} a la papelera",
"assets_permanently_deleted_count": "Eliminado permanentemente {count, plural, one {# elemento} other {# elementos}}", "assets_permanently_deleted_count": "Eliminado permanentemente {count, plural, one {# elemento} other {# elementos}}",
"assets_removed_count": "Eliminado {count, plural, one {# elemento} other {# elementos}}", "assets_removed_count": "Eliminado {count, plural, one {# elemento} other {# elementos}}",
"assets_removed_permanently_from_device": "{count} elemento(s) eliminado(s) permanentemente de su dispositivo", "assets_removed_permanently_from_device": "{} elemento(s) eliminado(s) permanentemente de su dispositivo",
"assets_restore_confirmation": "¿Estás seguro de que quieres restaurar todos tus activos eliminados? ¡No puede deshacer esta acción! Tenga en cuenta que los archivos sin conexión no se pueden restaurar de esta manera.", "assets_restore_confirmation": "¿Estás seguro de que quieres restaurar todos tus activos eliminados? ¡No puede deshacer esta acción! Tenga en cuenta que los archivos sin conexión no se pueden restaurar de esta manera.",
"assets_restored_count": "Restaurado {count, plural, one {# elemento} other {# elementos}}", "assets_restored_count": "Restaurado {count, plural, one {# elemento} other {# elementos}}",
"assets_restored_successfully": "{count} elemento(s) restaurado(s) exitosamente", "assets_restored_successfully": "{} elemento(s) restaurado(s) exitosamente",
"assets_trashed": "{count} elemento(s) eliminado(s)", "assets_trashed": "{} elemento(s) eliminado(s)",
"assets_trashed_count": "Borrado {count, plural, one {# elemento} other {# elementos}}", "assets_trashed_count": "Borrado {count, plural, one {# elemento} other {# elementos}}",
"assets_trashed_from_server": "{count} recurso(s) enviado(s) a la papelera desde el servidor de Immich", "assets_trashed_from_server": "{} recurso(s) enviado(s) a la papelera desde el servidor de Immich",
"assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}} ya forma parte del álbum", "assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}} ya forma parte del álbum",
"authorized_devices": "Dispositivos Autorizados", "authorized_devices": "Dispositivos Autorizados",
"automatic_endpoint_switching_subtitle": "Conectarse localmente a través de la Wi-Fi designada cuando esté disponible y usar conexiones alternativas en otros lugares", "automatic_endpoint_switching_subtitle": "Conectarse localmente a través de la Wi-Fi designada cuando esté disponible y usar conexiones alternativas en otros lugares",
@@ -499,7 +501,7 @@
"back_close_deselect": "Atrás, cerrar o anular la selección", "back_close_deselect": "Atrás, cerrar o anular la selección",
"background_location_permission": "Permiso de ubicación en segundo plano", "background_location_permission": "Permiso de ubicación en segundo plano",
"background_location_permission_content": "Para poder cambiar de red mientras se ejecuta en segundo plano, Immich debe tener *siempre* acceso a la ubicación precisa para que la aplicación pueda leer el nombre de la red Wi-Fi", "background_location_permission_content": "Para poder cambiar de red mientras se ejecuta en segundo plano, Immich debe tener *siempre* acceso a la ubicación precisa para que la aplicación pueda leer el nombre de la red Wi-Fi",
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({count})", "backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
"backup_album_selection_page_albums_tap": "Toque para incluir, doble toque para excluir", "backup_album_selection_page_albums_tap": "Toque para incluir, doble toque para excluir",
"backup_album_selection_page_assets_scatter": "Los elementos pueden dispersarse en varios álbumes. De este modo, los álbumes pueden ser incluidos o excluidos durante el proceso de copia de seguridad.", "backup_album_selection_page_assets_scatter": "Los elementos pueden dispersarse en varios álbumes. De este modo, los álbumes pueden ser incluidos o excluidos durante el proceso de copia de seguridad.",
"backup_album_selection_page_select_albums": "Seleccionar Álbumes", "backup_album_selection_page_select_albums": "Seleccionar Álbumes",
@@ -508,11 +510,11 @@
"backup_all": "Todos", "backup_all": "Todos",
"backup_background_service_backup_failed_message": "Error al copiar elementos. Reintentando…", "backup_background_service_backup_failed_message": "Error al copiar elementos. Reintentando…",
"backup_background_service_connection_failed_message": "Error al conectar con el servidor. Reintentando…", "backup_background_service_connection_failed_message": "Error al conectar con el servidor. Reintentando…",
"backup_background_service_current_upload_notification": "Subiendo {filename}", "backup_background_service_current_upload_notification": "Subiendo {}",
"backup_background_service_default_notification": "Comprobando nuevos elementos…", "backup_background_service_default_notification": "Comprobando nuevos elementos…",
"backup_background_service_error_title": "Error de copia de seguridad", "backup_background_service_error_title": "Error de copia de seguridad",
"backup_background_service_in_progress_notification": "Creando copia de seguridad de tus elementos…", "backup_background_service_in_progress_notification": "Creando copia de seguridad de tus elementos…",
"backup_background_service_upload_failure_notification": "Error al subir {filename}", "backup_background_service_upload_failure_notification": "Error al subir {}",
"backup_controller_page_albums": "Álbumes de copia de seguridad", "backup_controller_page_albums": "Álbumes de copia de seguridad",
"backup_controller_page_background_app_refresh_disabled_content": "Activa la actualización en segundo plano de la aplicación en Configuración > General > Actualización en segundo plano para usar la copia de seguridad en segundo plano.", "backup_controller_page_background_app_refresh_disabled_content": "Activa la actualización en segundo plano de la aplicación en Configuración > General > Actualización en segundo plano para usar la copia de seguridad en segundo plano.",
"backup_controller_page_background_app_refresh_disabled_title": "Actualización en segundo plano desactivada", "backup_controller_page_background_app_refresh_disabled_title": "Actualización en segundo plano desactivada",
@@ -523,22 +525,22 @@
"backup_controller_page_background_battery_info_title": "Optimizaciones de batería", "backup_controller_page_background_battery_info_title": "Optimizaciones de batería",
"backup_controller_page_background_charging": "Solo mientras se carga", "backup_controller_page_background_charging": "Solo mientras se carga",
"backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano", "backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
"backup_controller_page_background_delay": "Retrasar la copia de seguridad de los nuevos elementos: {duration}", "backup_controller_page_background_delay": "Retrasar la copia de seguridad de los nuevos elementos: {}",
"backup_controller_page_background_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos elementos sin necesidad de abrir la aplicación", "backup_controller_page_background_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos elementos sin necesidad de abrir la aplicación",
"backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada", "backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
"backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está activada", "backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está activada",
"backup_controller_page_background_turn_off": "Desactivar el servicio en segundo plano", "backup_controller_page_background_turn_off": "Desactivar el servicio en segundo plano",
"backup_controller_page_background_turn_on": "Activar el servicio en segundo plano", "backup_controller_page_background_turn_on": "Activar el servicio en segundo plano",
"backup_controller_page_background_wifi": "Solo en Wi-Fi", "backup_controller_page_background_wifi": "Solo en WiFi",
"backup_controller_page_backup": "Copia de Seguridad", "backup_controller_page_backup": "Copia de Seguridad",
"backup_controller_page_backup_selected": "Seleccionado: ", "backup_controller_page_backup_selected": "Seleccionado: ",
"backup_controller_page_backup_sub": "Fotos y videos respaldados", "backup_controller_page_backup_sub": "Fotos y videos respaldados",
"backup_controller_page_created": "Creado el: {date}", "backup_controller_page_created": "Creado el: {}",
"backup_controller_page_desc_backup": "Active la copia de seguridad para subir automáticamente los nuevos elementos al servidor cuando se abre la aplicación.", "backup_controller_page_desc_backup": "Active la copia de seguridad para subir automáticamente los nuevos elementos al servidor cuando se abre la aplicación.",
"backup_controller_page_excluded": "Excluido: ", "backup_controller_page_excluded": "Excluido: ",
"backup_controller_page_failed": "Fallidos ({count})", "backup_controller_page_failed": "Fallidos ({})",
"backup_controller_page_filename": "Nombre del archivo: {filename} [{size}]", "backup_controller_page_filename": "Nombre del archivo: {} [{}]",
"backup_controller_page_id": "ID: {id}", "backup_controller_page_id": "ID: {}",
"backup_controller_page_info": "Información de la Copia de Seguridad", "backup_controller_page_info": "Información de la Copia de Seguridad",
"backup_controller_page_none_selected": "Ninguno seleccionado", "backup_controller_page_none_selected": "Ninguno seleccionado",
"backup_controller_page_remainder": "Restante", "backup_controller_page_remainder": "Restante",
@@ -547,7 +549,7 @@
"backup_controller_page_start_backup": "Iniciar copia de seguridad", "backup_controller_page_start_backup": "Iniciar copia de seguridad",
"backup_controller_page_status_off": "La copia de seguridad está desactivada", "backup_controller_page_status_off": "La copia de seguridad está desactivada",
"backup_controller_page_status_on": "La copia de seguridad está activada", "backup_controller_page_status_on": "La copia de seguridad está activada",
"backup_controller_page_storage_format": "{used} de {total} usadas", "backup_controller_page_storage_format": "{} de {} usadas",
"backup_controller_page_to_backup": "Álbumes a respaldar", "backup_controller_page_to_backup": "Álbumes a respaldar",
"backup_controller_page_total_sub": "Todas las fotos y vídeos únicos de los álbumes seleccionados", "backup_controller_page_total_sub": "Todas las fotos y vídeos únicos de los álbumes seleccionados",
"backup_controller_page_turn_off": "Apagar la copia de seguridad", "backup_controller_page_turn_off": "Apagar la copia de seguridad",
@@ -572,21 +574,21 @@
"bulk_keep_duplicates_confirmation": "¿Estas seguro de que desea mantener {count, plural, one {# duplicate asset} other {# duplicate assets}} archivos duplicados? Esto resolverá todos los grupos duplicados sin borrar nada.", "bulk_keep_duplicates_confirmation": "¿Estas seguro de que desea mantener {count, plural, one {# duplicate asset} other {# duplicate assets}} archivos duplicados? Esto resolverá todos los grupos duplicados sin borrar nada.",
"bulk_trash_duplicates_confirmation": "¿Estas seguro de que desea eliminar masivamente {count, plural, one {# duplicate asset} other {# duplicate assets}} archivos duplicados? Esto mantendrá el archivo más grande de cada grupo y eliminará todos los demás duplicados.", "bulk_trash_duplicates_confirmation": "¿Estas seguro de que desea eliminar masivamente {count, plural, one {# duplicate asset} other {# duplicate assets}} archivos duplicados? Esto mantendrá el archivo más grande de cada grupo y eliminará todos los demás duplicados.",
"buy": "Comprar Immich", "buy": "Comprar Immich",
"cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({count} elementos)", "cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} elementos)",
"cache_settings_clear_cache_button": "Borrar caché", "cache_settings_clear_cache_button": "Borrar caché",
"cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.", "cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
"cache_settings_duplicated_assets_clear_button": "LIMPIAR", "cache_settings_duplicated_assets_clear_button": "LIMPIAR",
"cache_settings_duplicated_assets_subtitle": "Fotos y vídeos en la lista negra de la app", "cache_settings_duplicated_assets_subtitle": "Fotos y vídeos en la lista negra de la app",
"cache_settings_duplicated_assets_title": "Elementos duplicados ({count})", "cache_settings_duplicated_assets_title": "Elementos duplicados ({})",
"cache_settings_image_cache_size": "Tamaño de la caché de imágenes ({count} elementos)", "cache_settings_image_cache_size": "Tamaño de la caché de imágenes ({} elementos)",
"cache_settings_statistics_album": "Miniaturas de la biblioteca", "cache_settings_statistics_album": "Miniaturas de la biblioteca",
"cache_settings_statistics_assets": "{count} elementos ({size})", "cache_settings_statistics_assets": "{} elementos ({})",
"cache_settings_statistics_full": "Imágenes completas", "cache_settings_statistics_full": "Imágenes completas",
"cache_settings_statistics_shared": "Miniaturas de álbumes compartidos", "cache_settings_statistics_shared": "Miniaturas de álbumes compartidos",
"cache_settings_statistics_thumbnail": "Miniaturas", "cache_settings_statistics_thumbnail": "Miniaturas",
"cache_settings_statistics_title": "Uso de caché", "cache_settings_statistics_title": "Uso de caché",
"cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich", "cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich",
"cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({count} elementos)", "cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} elementos)",
"cache_settings_tile_subtitle": "Controla el comportamiento del almacenamiento local", "cache_settings_tile_subtitle": "Controla el comportamiento del almacenamiento local",
"cache_settings_tile_title": "Almacenamiento local", "cache_settings_tile_title": "Almacenamiento local",
"cache_settings_title": "Configuración de la caché", "cache_settings_title": "Configuración de la caché",
@@ -612,7 +614,6 @@
"change_password_form_new_password": "Nueva Contraseña", "change_password_form_new_password": "Nueva Contraseña",
"change_password_form_password_mismatch": "Las contraseñas no coinciden", "change_password_form_password_mismatch": "Las contraseñas no coinciden",
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña", "change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
"change_pin_code": "Cambiar PIN",
"change_your_password": "Cambia tu contraseña", "change_your_password": "Cambia tu contraseña",
"changed_visibility_successfully": "Visibilidad cambiada correctamente", "changed_visibility_successfully": "Visibilidad cambiada correctamente",
"check_all": "Comprobar todo", "check_all": "Comprobar todo",
@@ -653,12 +654,11 @@
"confirm_delete_face": "¿Estás seguro que deseas eliminar la cara de {name} del archivo?", "confirm_delete_face": "¿Estás seguro que deseas eliminar la cara de {name} del archivo?",
"confirm_delete_shared_link": "¿Estás seguro de que deseas eliminar este enlace compartido?", "confirm_delete_shared_link": "¿Estás seguro de que deseas eliminar este enlace compartido?",
"confirm_keep_this_delete_others": "Todos los demás activos de la pila se eliminarán excepto este activo. ¿Está seguro de que quiere continuar?", "confirm_keep_this_delete_others": "Todos los demás activos de la pila se eliminarán excepto este activo. ¿Está seguro de que quiere continuar?",
"confirm_new_pin_code": "Confirmar nuevo pin",
"confirm_password": "Confirmar contraseña", "confirm_password": "Confirmar contraseña",
"contain": "Incluido", "contain": "Incluido",
"context": "Contexto", "context": "Contexto",
"continue": "Continuar", "continue": "Continuar",
"control_bottom_app_bar_album_info_shared": "{count} elementos · Compartidos", "control_bottom_app_bar_album_info_shared": "{} elementos · Compartidos",
"control_bottom_app_bar_create_new_album": "Crear nuevo álbum", "control_bottom_app_bar_create_new_album": "Crear nuevo álbum",
"control_bottom_app_bar_delete_from_immich": "Borrar de Immich", "control_bottom_app_bar_delete_from_immich": "Borrar de Immich",
"control_bottom_app_bar_delete_from_local": "Borrar del dispositivo", "control_bottom_app_bar_delete_from_local": "Borrar del dispositivo",
@@ -696,11 +696,9 @@
"create_tag_description": "Crear una nueva etiqueta. Para las etiquetas anidadas, ingresa la ruta completa de la etiqueta, incluidas las barras diagonales.", "create_tag_description": "Crear una nueva etiqueta. Para las etiquetas anidadas, ingresa la ruta completa de la etiqueta, incluidas las barras diagonales.",
"create_user": "Crear usuario", "create_user": "Crear usuario",
"created": "Creado", "created": "Creado",
"created_at": "Creado",
"crop": "Recortar", "crop": "Recortar",
"curated_object_page_title": "Objetos", "curated_object_page_title": "Objetos",
"current_device": "Dispositivo actual", "current_device": "Dispositivo actual",
"current_pin_code": "PIN actual",
"current_server_address": "Dirección actual del servidor", "current_server_address": "Dirección actual del servidor",
"custom_locale": "Configuración regional personalizada", "custom_locale": "Configuración regional personalizada",
"custom_locale_description": "Formatear fechas y números según el idioma y la región", "custom_locale_description": "Formatear fechas y números según el idioma y la región",
@@ -748,7 +746,7 @@
"description": "Descripción", "description": "Descripción",
"description_input_hint_text": "Agregar descripción...", "description_input_hint_text": "Agregar descripción...",
"description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles", "description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
"details": "Detalles", "details": "DETALLES",
"direction": "Dirección", "direction": "Dirección",
"disabled": "Deshabilitado", "disabled": "Deshabilitado",
"disallow_edits": "Bloquear edición", "disallow_edits": "Bloquear edición",
@@ -769,7 +767,7 @@
"download_enqueue": "Descarga en cola", "download_enqueue": "Descarga en cola",
"download_error": "Error al descargar", "download_error": "Error al descargar",
"download_failed": "Descarga fallida", "download_failed": "Descarga fallida",
"download_filename": "archivo: {filename}", "download_filename": "archivo: {}",
"download_finished": "Descarga completada", "download_finished": "Descarga completada",
"download_include_embedded_motion_videos": "Vídeos incrustados", "download_include_embedded_motion_videos": "Vídeos incrustados",
"download_include_embedded_motion_videos_description": "Incluir vídeos incrustados en fotografías en movimiento como un archivo separado", "download_include_embedded_motion_videos_description": "Incluir vídeos incrustados en fotografías en movimiento como un archivo separado",
@@ -813,7 +811,6 @@
"editor_crop_tool_h2_aspect_ratios": "Proporciones del aspecto", "editor_crop_tool_h2_aspect_ratios": "Proporciones del aspecto",
"editor_crop_tool_h2_rotation": "Rotación", "editor_crop_tool_h2_rotation": "Rotación",
"email": "Correo", "email": "Correo",
"email_notifications": "Notificaciones por correo electrónico",
"empty_folder": "Esta carpeta está vacía", "empty_folder": "Esta carpeta está vacía",
"empty_trash": "Vaciar papelera", "empty_trash": "Vaciar papelera",
"empty_trash_confirmation": "¿Estás seguro de que quieres vaciar la papelera? Esto eliminará permanentemente todos los archivos de la basura de Immich.\n¡No puedes deshacer esta acción!", "empty_trash_confirmation": "¿Estás seguro de que quieres vaciar la papelera? Esto eliminará permanentemente todos los archivos de la basura de Immich.\n¡No puedes deshacer esta acción!",
@@ -821,12 +818,12 @@
"enabled": "Habilitado", "enabled": "Habilitado",
"end_date": "Fecha final", "end_date": "Fecha final",
"enqueued": "Añadido a la cola", "enqueued": "Añadido a la cola",
"enter_wifi_name": "Introduce el nombre Wi-Fi", "enter_wifi_name": "Enter WiFi name",
"error": "Error", "error": "Error",
"error_change_sort_album": "No se pudo cambiar el orden de visualización del álbum", "error_change_sort_album": "No se pudo cambiar el orden de visualización del álbum",
"error_delete_face": "Error al eliminar la cara del archivo", "error_delete_face": "Error al eliminar la cara del archivo",
"error_loading_image": "Error al cargar la imagen", "error_loading_image": "Error al cargar la imagen",
"error_saving_image": "Error: {error}", "error_saving_image": "Error: {}",
"error_title": "Error: algo salió mal", "error_title": "Error: algo salió mal",
"errors": { "errors": {
"cannot_navigate_next_asset": "No puedes navegar al siguiente archivo", "cannot_navigate_next_asset": "No puedes navegar al siguiente archivo",
@@ -856,12 +853,10 @@
"failed_to_keep_this_delete_others": "No se pudo conservar este activo y eliminar los demás", "failed_to_keep_this_delete_others": "No se pudo conservar este activo y eliminar los demás",
"failed_to_load_asset": "Error al cargar el elemento", "failed_to_load_asset": "Error al cargar el elemento",
"failed_to_load_assets": "Error al cargar los elementos", "failed_to_load_assets": "Error al cargar los elementos",
"failed_to_load_notifications": "Error al cargar las notificaciones",
"failed_to_load_people": "Error al cargar a los usuarios", "failed_to_load_people": "Error al cargar a los usuarios",
"failed_to_remove_product_key": "No se pudo eliminar la clave del producto", "failed_to_remove_product_key": "No se pudo eliminar la clave del producto",
"failed_to_stack_assets": "No se pudieron agrupar los archivos", "failed_to_stack_assets": "No se pudieron agrupar los archivos",
"failed_to_unstack_assets": "Error al desagrupar los archivos", "failed_to_unstack_assets": "Error al desagrupar los archivos",
"failed_to_update_notification_status": "Error al actualizar el estado de la notificación",
"import_path_already_exists": "Esta ruta de importación ya existe.", "import_path_already_exists": "Esta ruta de importación ya existe.",
"incorrect_email_or_password": "Contraseña o email incorrecto", "incorrect_email_or_password": "Contraseña o email incorrecto",
"paths_validation_failed": "Falló la validación en {paths, plural, one {# carpeta} other {# carpetas}}", "paths_validation_failed": "Falló la validación en {paths, plural, one {# carpeta} other {# carpetas}}",
@@ -929,7 +924,6 @@
"unable_to_remove_reaction": "No se puede eliminar la reacción", "unable_to_remove_reaction": "No se puede eliminar la reacción",
"unable_to_repair_items": "No se pueden reparar los items", "unable_to_repair_items": "No se pueden reparar los items",
"unable_to_reset_password": "No se puede restablecer la contraseña", "unable_to_reset_password": "No se puede restablecer la contraseña",
"unable_to_reset_pin_code": "No se ha podido restablecer el PIN",
"unable_to_resolve_duplicate": "No se resolver duplicado", "unable_to_resolve_duplicate": "No se resolver duplicado",
"unable_to_restore_assets": "No se pueden restaurar los archivos", "unable_to_restore_assets": "No se pueden restaurar los archivos",
"unable_to_restore_trash": "No se puede restaurar la papelera", "unable_to_restore_trash": "No se puede restaurar la papelera",
@@ -963,10 +957,10 @@
"exif_bottom_sheet_location": "UBICACIÓN", "exif_bottom_sheet_location": "UBICACIÓN",
"exif_bottom_sheet_people": "PERSONAS", "exif_bottom_sheet_people": "PERSONAS",
"exif_bottom_sheet_person_add_person": "Añadir nombre", "exif_bottom_sheet_person_add_person": "Añadir nombre",
"exif_bottom_sheet_person_age": "Edad {age}", "exif_bottom_sheet_person_age": "Antigüedad {}",
"exif_bottom_sheet_person_age_months": "Edad {months} meses", "exif_bottom_sheet_person_age_months": "Antigüedad {} meses",
"exif_bottom_sheet_person_age_year_months": "Edad 1 año, {months} meses", "exif_bottom_sheet_person_age_year_months": "Antigüedad 1 año, {} meses",
"exif_bottom_sheet_person_age_years": "Edad {years}", "exif_bottom_sheet_person_age_years": "Antigüedad {}",
"exit_slideshow": "Salir de la presentación", "exit_slideshow": "Salir de la presentación",
"expand_all": "Expandir todo", "expand_all": "Expandir todo",
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso", "experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
@@ -1056,7 +1050,6 @@
"home_page_upload_err_limit": "Solo se pueden subir 30 elementos simultáneamente, omitiendo", "home_page_upload_err_limit": "Solo se pueden subir 30 elementos simultáneamente, omitiendo",
"host": "Host", "host": "Host",
"hour": "Hora", "hour": "Hora",
"id": "ID",
"ignore_icloud_photos": "Ignorar fotos de iCloud", "ignore_icloud_photos": "Ignorar fotos de iCloud",
"ignore_icloud_photos_description": "Las fotos almacenadas en iCloud no se subirán a Immich", "ignore_icloud_photos_description": "Las fotos almacenadas en iCloud no se subirán a Immich",
"image": "Imagen", "image": "Imagen",
@@ -1182,8 +1175,8 @@
"manage_your_devices": "Administre sus dispositivos conectados", "manage_your_devices": "Administre sus dispositivos conectados",
"manage_your_oauth_connection": "Administra tu conexión OAuth", "manage_your_oauth_connection": "Administra tu conexión OAuth",
"map": "Mapa", "map": "Mapa",
"map_assets_in_bound": "{count} foto", "map_assets_in_bound": "{} foto",
"map_assets_in_bounds": "{count} fotos", "map_assets_in_bounds": "{} fotos",
"map_cannot_get_user_location": "No se pudo obtener la posición del usuario", "map_cannot_get_user_location": "No se pudo obtener la posición del usuario",
"map_location_dialog_yes": "Sí", "map_location_dialog_yes": "Sí",
"map_location_picker_page_use_location": "Usar esta ubicación", "map_location_picker_page_use_location": "Usar esta ubicación",
@@ -1197,18 +1190,15 @@
"map_settings": "Ajustes mapa", "map_settings": "Ajustes mapa",
"map_settings_dark_mode": "Modo oscuro", "map_settings_dark_mode": "Modo oscuro",
"map_settings_date_range_option_day": "Últimas 24 horas", "map_settings_date_range_option_day": "Últimas 24 horas",
"map_settings_date_range_option_days": "Últimos {days} días", "map_settings_date_range_option_days": "Últimos {} días",
"map_settings_date_range_option_year": "Último año", "map_settings_date_range_option_year": "Último año",
"map_settings_date_range_option_years": "Últimos {years} años", "map_settings_date_range_option_years": "Últimos {} años",
"map_settings_dialog_title": "Ajustes mapa", "map_settings_dialog_title": "Ajustes mapa",
"map_settings_include_show_archived": "Incluir archivados", "map_settings_include_show_archived": "Incluir archivados",
"map_settings_include_show_partners": "Incluir Parejas", "map_settings_include_show_partners": "Incluir Parejas",
"map_settings_only_show_favorites": "Mostrar solo favoritas", "map_settings_only_show_favorites": "Mostrar solo favoritas",
"map_settings_theme_settings": "Apariencia del Mapa", "map_settings_theme_settings": "Apariencia del Mapa",
"map_zoom_to_see_photos": "Alejar para ver fotos", "map_zoom_to_see_photos": "Alejar para ver fotos",
"mark_all_as_read": "Marcar todos como leídos",
"mark_as_read": "Marcar como leído",
"marked_all_as_read": "Todos marcados como leídos",
"matches": "Coincidencias", "matches": "Coincidencias",
"media_type": "Tipo de medio", "media_type": "Tipo de medio",
"memories": "Recuerdos", "memories": "Recuerdos",
@@ -1218,7 +1208,7 @@
"memories_start_over": "Empezar de nuevo", "memories_start_over": "Empezar de nuevo",
"memories_swipe_to_close": "Desliza para cerrar", "memories_swipe_to_close": "Desliza para cerrar",
"memories_year_ago": "Hace un año", "memories_year_ago": "Hace un año",
"memories_years_ago": "Hace {years} años", "memories_years_ago": "Hace {} años",
"memory": "Recuerdo", "memory": "Recuerdo",
"memory_lane_title": "Baúl de los recuerdos {title}", "memory_lane_title": "Baúl de los recuerdos {title}",
"menu": "Menú", "menu": "Menú",
@@ -1235,8 +1225,6 @@
"month": "Mes", "month": "Mes",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "MMMM y",
"more": "Mas", "more": "Mas",
"moved_to_archive": "Movido(s) {count, plural, one {# recurso} other {# recursos}} a archivo",
"moved_to_library": "Movido(s) {count, plural, one {# recurso} other {# recursos}} a biblioteca",
"moved_to_trash": "Movido a la papelera", "moved_to_trash": "Movido a la papelera",
"multiselect_grid_edit_date_time_err_read_only": "No se puede cambiar la fecha del archivo(s) de solo lectura, omitiendo", "multiselect_grid_edit_date_time_err_read_only": "No se puede cambiar la fecha del archivo(s) de solo lectura, omitiendo",
"multiselect_grid_edit_gps_err_read_only": "No se puede editar la ubicación de activos de solo lectura, omitiendo", "multiselect_grid_edit_gps_err_read_only": "No se puede editar la ubicación de activos de solo lectura, omitiendo",
@@ -1246,12 +1234,11 @@
"name_or_nickname": "Nombre o apodo", "name_or_nickname": "Nombre o apodo",
"networking_settings": "Red", "networking_settings": "Red",
"networking_subtitle": "Configuraciones de acceso por URL al servidor", "networking_subtitle": "Configuraciones de acceso por URL al servidor",
"never": "Nunca", "never": "nunca",
"new_album": "Nuevo álbum", "new_album": "Nuevo álbum",
"new_api_key": "Nueva clave API", "new_api_key": "Nueva clave API",
"new_password": "Nueva contraseña", "new_password": "Nueva contraseña",
"new_person": "Nueva persona", "new_person": "Nueva persona",
"new_pin_code": "Nuevo PIN",
"new_user_created": "Nuevo usuario creado", "new_user_created": "Nuevo usuario creado",
"new_version_available": "NUEVA VERSIÓN DISPONIBLE", "new_version_available": "NUEVA VERSIÓN DISPONIBLE",
"newest_first": "El más reciente primero", "newest_first": "El más reciente primero",
@@ -1270,8 +1257,6 @@
"no_favorites_message": "Agregue favoritos para encontrar rápidamente sus mejores fotos y videos", "no_favorites_message": "Agregue favoritos para encontrar rápidamente sus mejores fotos y videos",
"no_libraries_message": "Crea una biblioteca externa para ver tus fotos y vídeos", "no_libraries_message": "Crea una biblioteca externa para ver tus fotos y vídeos",
"no_name": "Sin nombre", "no_name": "Sin nombre",
"no_notifications": "Ninguna notificación",
"no_people_found": "No se encontraron personas coincidentes",
"no_places": "Sin lugares", "no_places": "Sin lugares",
"no_results": "Sin resultados", "no_results": "Sin resultados",
"no_results_description": "Pruebe con un sinónimo o una palabra clave más general", "no_results_description": "Pruebe con un sinónimo o una palabra clave más general",
@@ -1326,7 +1311,7 @@
"partner_page_partner_add_failed": "No se pudo añadir el socio", "partner_page_partner_add_failed": "No se pudo añadir el socio",
"partner_page_select_partner": "Seleccionar compañero", "partner_page_select_partner": "Seleccionar compañero",
"partner_page_shared_to_title": "Compartido con", "partner_page_shared_to_title": "Compartido con",
"partner_page_stop_sharing_content": "{partner} ya no podrá acceder a tus fotos.", "partner_page_stop_sharing_content": "{} ya no podrá acceder a tus fotos.",
"partner_sharing": "Compartir con invitados", "partner_sharing": "Compartir con invitados",
"partners": "Invitados", "partners": "Invitados",
"password": "Contraseña", "password": "Contraseña",
@@ -1372,9 +1357,6 @@
"photos_count": "{count, plural, one {{count, number} Foto} other {{count, number} Fotos}}", "photos_count": "{count, plural, one {{count, number} Foto} other {{count, number} Fotos}}",
"photos_from_previous_years": "Fotos de años anteriores", "photos_from_previous_years": "Fotos de años anteriores",
"pick_a_location": "Elige una ubicación", "pick_a_location": "Elige una ubicación",
"pin_code_changed_successfully": "PIN cambiado exitosamente",
"pin_code_reset_successfully": "PIN restablecido exitosamente",
"pin_code_setup_successfully": "PIN establecido exitosamente",
"place": "Lugar", "place": "Lugar",
"places": "Lugares", "places": "Lugares",
"places_count": "{count, plural, one {{count, number} Lugar} other {{count, number} Lugares}}", "places_count": "{count, plural, one {{count, number} Lugar} other {{count, number} Lugares}}",
@@ -1392,7 +1374,6 @@
"previous_or_next_photo": "Foto anterior o siguiente", "previous_or_next_photo": "Foto anterior o siguiente",
"primary": "Básico", "primary": "Básico",
"privacy": "Privacidad", "privacy": "Privacidad",
"profile": "Perfil",
"profile_drawer_app_logs": "Registros", "profile_drawer_app_logs": "Registros",
"profile_drawer_client_out_of_date_major": "La app está desactualizada. Por favor actualiza a la última versión principal.", "profile_drawer_client_out_of_date_major": "La app está desactualizada. Por favor actualiza a la última versión principal.",
"profile_drawer_client_out_of_date_minor": "La app está desactualizada. Por favor actualiza a la última versión menor.", "profile_drawer_client_out_of_date_minor": "La app está desactualizada. Por favor actualiza a la última versión menor.",
@@ -1406,7 +1387,7 @@
"public_share": "Compartir públicamente", "public_share": "Compartir públicamente",
"purchase_account_info": "Seguidor", "purchase_account_info": "Seguidor",
"purchase_activated_subtitle": "Gracias por apoyar a Immich y al software de código abierto", "purchase_activated_subtitle": "Gracias por apoyar a Immich y al software de código abierto",
"purchase_activated_time": "Activado el {date}", "purchase_activated_time": "Activado el {date, date}",
"purchase_activated_title": "Su clave ha sido activada correctamente", "purchase_activated_title": "Su clave ha sido activada correctamente",
"purchase_button_activate": "Activar", "purchase_button_activate": "Activar",
"purchase_button_buy": "Comprar", "purchase_button_buy": "Comprar",
@@ -1495,7 +1476,6 @@
"reset": "Reiniciar", "reset": "Reiniciar",
"reset_password": "Restablecer la contraseña", "reset_password": "Restablecer la contraseña",
"reset_people_visibility": "Restablecer la visibilidad de las personas", "reset_people_visibility": "Restablecer la visibilidad de las personas",
"reset_pin_code": "Restablecer PIN",
"reset_to_default": "Restablecer los valores predeterminados", "reset_to_default": "Restablecer los valores predeterminados",
"resolve_duplicates": "Resolver duplicados", "resolve_duplicates": "Resolver duplicados",
"resolved_all_duplicates": "Todos los duplicados resueltos", "resolved_all_duplicates": "Todos los duplicados resueltos",
@@ -1588,7 +1568,6 @@
"select_keep_all": "Conservar todo", "select_keep_all": "Conservar todo",
"select_library_owner": "Seleccionar propietario de la biblioteca", "select_library_owner": "Seleccionar propietario de la biblioteca",
"select_new_face": "Seleccionar nueva cara", "select_new_face": "Seleccionar nueva cara",
"select_person_to_tag": "Elija una persona a etiquetar",
"select_photos": "Seleccionar Fotos", "select_photos": "Seleccionar Fotos",
"select_trash_all": "Seleccionar eliminar todo", "select_trash_all": "Seleccionar eliminar todo",
"select_user_for_sharing_page_err_album": "Fallo al crear el álbum", "select_user_for_sharing_page_err_album": "Fallo al crear el álbum",
@@ -1619,12 +1598,12 @@
"setting_languages_apply": "Aplicar", "setting_languages_apply": "Aplicar",
"setting_languages_subtitle": "Cambia el idioma de la aplicación", "setting_languages_subtitle": "Cambia el idioma de la aplicación",
"setting_languages_title": "Idiomas", "setting_languages_title": "Idiomas",
"setting_notifications_notify_failures_grace_period": "Notificar fallos de copia de seguridad en segundo plano: {duration}", "setting_notifications_notify_failures_grace_period": "Notificar fallos de copia de seguridad en segundo plano: {}",
"setting_notifications_notify_hours": "{count} horas", "setting_notifications_notify_hours": "{} horas",
"setting_notifications_notify_immediately": "inmediatamente", "setting_notifications_notify_immediately": "inmediatamente",
"setting_notifications_notify_minutes": "{count} minutos", "setting_notifications_notify_minutes": "{} minutos",
"setting_notifications_notify_never": "nunca", "setting_notifications_notify_never": "nunca",
"setting_notifications_notify_seconds": "{count} segundos", "setting_notifications_notify_seconds": "{} segundos",
"setting_notifications_single_progress_subtitle": "Información detallada del progreso de subida de cada archivo", "setting_notifications_single_progress_subtitle": "Información detallada del progreso de subida de cada archivo",
"setting_notifications_single_progress_title": "Mostrar progreso detallado de copia de seguridad en segundo plano", "setting_notifications_single_progress_title": "Mostrar progreso detallado de copia de seguridad en segundo plano",
"setting_notifications_subtitle": "Ajusta tus preferencias de notificación", "setting_notifications_subtitle": "Ajusta tus preferencias de notificación",
@@ -1636,10 +1615,9 @@
"settings": "Ajustes", "settings": "Ajustes",
"settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste", "settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste",
"settings_saved": "Ajustes guardados", "settings_saved": "Ajustes guardados",
"setup_pin_code": "Establecer un PIN",
"share": "Compartir", "share": "Compartir",
"share_add_photos": "Agregar fotos", "share_add_photos": "Agregar fotos",
"share_assets_selected": "{count} seleccionado(s)", "share_assets_selected": "{} seleccionado(s)",
"share_dialog_preparing": "Preparando...", "share_dialog_preparing": "Preparando...",
"shared": "Compartido", "shared": "Compartido",
"shared_album_activities_input_disable": "Los comentarios están deshabilitados", "shared_album_activities_input_disable": "Los comentarios están deshabilitados",
@@ -1653,32 +1631,32 @@
"shared_by_user": "Compartido por {user}", "shared_by_user": "Compartido por {user}",
"shared_by_you": "Compartido por ti", "shared_by_you": "Compartido por ti",
"shared_from_partner": "Fotos de {partner}", "shared_from_partner": "Fotos de {partner}",
"shared_intent_upload_button_progress_text": "{current} / {total} Cargado(s)", "shared_intent_upload_button_progress_text": "{} / {} Cargado(s)",
"shared_link_app_bar_title": "Enlaces compartidos", "shared_link_app_bar_title": "Enlaces compartidos",
"shared_link_clipboard_copied_massage": "Copiado al portapapeles", "shared_link_clipboard_copied_massage": "Copiado al portapapeles",
"shared_link_clipboard_text": "Enlace: {link}\nContraseña: {password}", "shared_link_clipboard_text": "Enlace: {}\nContraseña: {}",
"shared_link_create_error": "Error creando el enlace compartido", "shared_link_create_error": "Error creando el enlace compartido",
"shared_link_edit_description_hint": "Introduce la descripción del enlace", "shared_link_edit_description_hint": "Introduce la descripción del enlace",
"shared_link_edit_expire_after_option_day": "1 día", "shared_link_edit_expire_after_option_day": "1 día",
"shared_link_edit_expire_after_option_days": "{count} días", "shared_link_edit_expire_after_option_days": "{} días",
"shared_link_edit_expire_after_option_hour": "1 hora", "shared_link_edit_expire_after_option_hour": "1 hora",
"shared_link_edit_expire_after_option_hours": "{count} horas", "shared_link_edit_expire_after_option_hours": "{} horas",
"shared_link_edit_expire_after_option_minute": "1 minuto", "shared_link_edit_expire_after_option_minute": "1 minuto",
"shared_link_edit_expire_after_option_minutes": "{count} minutos", "shared_link_edit_expire_after_option_minutes": "{} minutos",
"shared_link_edit_expire_after_option_months": "{count} meses", "shared_link_edit_expire_after_option_months": "{} meses",
"shared_link_edit_expire_after_option_year": "{count} año", "shared_link_edit_expire_after_option_year": "{} año",
"shared_link_edit_password_hint": "Introduce la contraseña del enlace", "shared_link_edit_password_hint": "Introduce la contraseña del enlace",
"shared_link_edit_submit_button": "Actualizar enlace", "shared_link_edit_submit_button": "Actualizar enlace",
"shared_link_error_server_url_fetch": "No se puede adquirir la URL del servidor", "shared_link_error_server_url_fetch": "No se puede adquirir la URL del servidor",
"shared_link_expires_day": "Caduca en {count} día", "shared_link_expires_day": "Caduca en {} día",
"shared_link_expires_days": "Caduca en {count} días", "shared_link_expires_days": "Caduca en {} días",
"shared_link_expires_hour": "Caduca en {count} hora", "shared_link_expires_hour": "Caduca en {} hora",
"shared_link_expires_hours": "Caduca en {count} horas", "shared_link_expires_hours": "Caduca en {} horas",
"shared_link_expires_minute": "Caduca en {count} minuto", "shared_link_expires_minute": "Caduca en {} minuto",
"shared_link_expires_minutes": "Caduca en {count} minutos", "shared_link_expires_minutes": "Caduca en {} minutos",
"shared_link_expires_never": "Caduca ∞", "shared_link_expires_never": "Caduca ∞",
"shared_link_expires_second": "Caduca en {count} segundo", "shared_link_expires_second": "Caduca en {} segundo",
"shared_link_expires_seconds": "Caduca en {count} segundos", "shared_link_expires_seconds": "Caduca en {} segundos",
"shared_link_individual_shared": "Compartido individualmente", "shared_link_individual_shared": "Compartido individualmente",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Administrar enlaces compartidos", "shared_link_manage_links": "Administrar enlaces compartidos",
@@ -1753,7 +1731,6 @@
"stop_sharing_photos_with_user": "Deja de compartir tus fotos con este usuario", "stop_sharing_photos_with_user": "Deja de compartir tus fotos con este usuario",
"storage": "Espacio de almacenamiento", "storage": "Espacio de almacenamiento",
"storage_label": "Etiqueta de almacenamiento", "storage_label": "Etiqueta de almacenamiento",
"storage_quota": "Cuota de Almacenamiento",
"storage_usage": "{used} de {available} en uso", "storage_usage": "{used} de {available} en uso",
"submit": "Enviar", "submit": "Enviar",
"suggestions": "Sugerencias", "suggestions": "Sugerencias",
@@ -1780,7 +1757,7 @@
"theme_selection": "Selección de tema", "theme_selection": "Selección de tema",
"theme_selection_description": "Establece el tema automáticamente como \"claro\" u \"oscuro\" según las preferencias del sistema/navegador", "theme_selection_description": "Establece el tema automáticamente como \"claro\" u \"oscuro\" según las preferencias del sistema/navegador",
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos", "theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
"theme_setting_asset_list_tiles_per_row_title": "Número de elementos por fila ({count})", "theme_setting_asset_list_tiles_per_row_title": "Número de elementos por fila ({})",
"theme_setting_colorful_interface_subtitle": "Aplicar el color primario a las superficies de fondo.", "theme_setting_colorful_interface_subtitle": "Aplicar el color primario a las superficies de fondo.",
"theme_setting_colorful_interface_title": "Color de Interfaz", "theme_setting_colorful_interface_title": "Color de Interfaz",
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes", "theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
@@ -1815,15 +1792,13 @@
"trash_no_results_message": "Las fotos y videos que se envíen a la papelera aparecerán aquí.", "trash_no_results_message": "Las fotos y videos que se envíen a la papelera aparecerán aquí.",
"trash_page_delete_all": "Eliminar todos", "trash_page_delete_all": "Eliminar todos",
"trash_page_empty_trash_dialog_content": "¿Está seguro que quiere eliminar los elementos? Estos elementos serán eliminados de Immich permanentemente", "trash_page_empty_trash_dialog_content": "¿Está seguro que quiere eliminar los elementos? Estos elementos serán eliminados de Immich permanentemente",
"trash_page_info": "Los archivos en la papelera serán eliminados automáticamente de forma permanente después de {days} días", "trash_page_info": "Los archivos en la papelera serán eliminados automáticamente de forma permanente después de {} días",
"trash_page_no_assets": "No hay elementos en la papelera", "trash_page_no_assets": "No hay elementos en la papelera",
"trash_page_restore_all": "Restaurar todos", "trash_page_restore_all": "Restaurar todos",
"trash_page_select_assets_btn": "Seleccionar elementos", "trash_page_select_assets_btn": "Seleccionar elementos",
"trash_page_title": "Papelera ({count})", "trash_page_title": "Papelera ({})",
"trashed_items_will_be_permanently_deleted_after": "Los elementos en la papelera serán eliminados permanentemente tras {days, plural, one {# día} other {# días}}.", "trashed_items_will_be_permanently_deleted_after": "Los elementos en la papelera serán eliminados permanentemente tras {days, plural, one {# día} other {# días}}.",
"type": "Tipo", "type": "Tipo",
"unable_to_change_pin_code": "No se ha podido cambiar el PIN",
"unable_to_setup_pin_code": "No se ha podido establecer el PIN",
"unarchive": "Desarchivar", "unarchive": "Desarchivar",
"unarchived_count": "{count, plural, one {# No archivado} other {# No archivados}}", "unarchived_count": "{count, plural, one {# No archivado} other {# No archivados}}",
"unfavorite": "Retirar favorito", "unfavorite": "Retirar favorito",
@@ -1847,7 +1822,6 @@
"untracked_files": "Archivos no monitorizados", "untracked_files": "Archivos no monitorizados",
"untracked_files_decription": "Estos archivos no están siendo monitorizados por la aplicación. Es posible que sean resultado de errores al moverlos, subidas interrumpidas o por un fallo de la aplicación", "untracked_files_decription": "Estos archivos no están siendo monitorizados por la aplicación. Es posible que sean resultado de errores al moverlos, subidas interrumpidas o por un fallo de la aplicación",
"up_next": "A continuación", "up_next": "A continuación",
"updated_at": "Actualizado",
"updated_password": "Contraseña actualizada", "updated_password": "Contraseña actualizada",
"upload": "Subir", "upload": "Subir",
"upload_concurrency": "Subidas simultáneas", "upload_concurrency": "Subidas simultáneas",
@@ -1860,7 +1834,7 @@
"upload_status_errors": "Errores", "upload_status_errors": "Errores",
"upload_status_uploaded": "Subido", "upload_status_uploaded": "Subido",
"upload_success": "Subida realizada correctamente, actualice la página para ver los nuevos recursos de subida.", "upload_success": "Subida realizada correctamente, actualice la página para ver los nuevos recursos de subida.",
"upload_to_immich": "Subir a Immich ({count})", "upload_to_immich": "Subir a Immich ({})",
"uploading": "Subiendo", "uploading": "Subiendo",
"url": "URL", "url": "URL",
"usage": "Uso", "usage": "Uso",
@@ -1869,11 +1843,9 @@
"user": "Usuario", "user": "Usuario",
"user_id": "ID de usuario", "user_id": "ID de usuario",
"user_liked": "{user} le gustó {type, select, photo {this photo} video {this video} asset {this asset} other {it}}", "user_liked": "{user} le gustó {type, select, photo {this photo} video {this video} asset {this asset} other {it}}",
"user_pin_code_settings": "PIN",
"user_pin_code_settings_description": "Gestione su PIN",
"user_purchase_settings": "Compra", "user_purchase_settings": "Compra",
"user_purchase_settings_description": "Gestiona tu compra", "user_purchase_settings_description": "Gestiona tu compra",
"user_role_set": "Establecer {user} como {role}", "user_role_set": "Carbiar {user} a {role}",
"user_usage_detail": "Detalle del uso del usuario", "user_usage_detail": "Detalle del uso del usuario",
"user_usage_stats": "Estadísticas de uso de la cuenta", "user_usage_stats": "Estadísticas de uso de la cuenta",
"user_usage_stats_description": "Ver estadísticas de uso de la cuenta", "user_usage_stats_description": "Ver estadísticas de uso de la cuenta",
@@ -1919,11 +1891,11 @@
"week": "Semana", "week": "Semana",
"welcome": "Bienvenido", "welcome": "Bienvenido",
"welcome_to_immich": "Bienvenido a Immich", "welcome_to_immich": "Bienvenido a Immich",
"wifi_name": "Nombre Wi-Fi", "wifi_name": "WiFi Name",
"year": "Año", "year": "Año",
"years_ago": "Hace {years, plural, one {# año} other {# años}}", "years_ago": "Hace {years, plural, one {# año} other {# años}}",
"yes": "Sí", "yes": "Sí",
"you_dont_have_any_shared_links": "No tienes ningún enlace compartido", "you_dont_have_any_shared_links": "No tienes ningún enlace compartido",
"your_wifi_name": "El nombre de tu Wi-Fi", "your_wifi_name": "El nombre de tu WiFi",
"zoom_image": "Acercar Imagen" "zoom_image": "Acercar Imagen"
} }

View File

@@ -53,7 +53,6 @@
"confirm_email_below": "Kinnitamiseks sisesta allpool \"{email}\"", "confirm_email_below": "Kinnitamiseks sisesta allpool \"{email}\"",
"confirm_reprocess_all_faces": "Kas oled kindel, et soovid kõik näod uuesti töödelda? See eemaldab kõik nimega isikud.", "confirm_reprocess_all_faces": "Kas oled kindel, et soovid kõik näod uuesti töödelda? See eemaldab kõik nimega isikud.",
"confirm_user_password_reset": "Kas oled kindel, et soovid kasutaja {user} parooli lähtestada?", "confirm_user_password_reset": "Kas oled kindel, et soovid kasutaja {user} parooli lähtestada?",
"confirm_user_pin_code_reset": "Kas oled kindel, et soovid kasutaja {user} PIN-koodi lähtestada?",
"create_job": "Lisa tööde", "create_job": "Lisa tööde",
"cron_expression": "Cron avaldis", "cron_expression": "Cron avaldis",
"cron_expression_description": "Sea skaneerimise intervall cron formaadis. Rohkema info jaoks vaata nt. <link>Crontab Guru</link>", "cron_expression_description": "Sea skaneerimise intervall cron formaadis. Rohkema info jaoks vaata nt. <link>Crontab Guru</link>",
@@ -193,22 +192,26 @@
"oauth_auto_register": "Automaatne registreerimine", "oauth_auto_register": "Automaatne registreerimine",
"oauth_auto_register_description": "Registreeri uued kasutajad automaatselt OAuth abil sisselogimisel", "oauth_auto_register_description": "Registreeri uued kasutajad automaatselt OAuth abil sisselogimisel",
"oauth_button_text": "Nupu tekst", "oauth_button_text": "Nupu tekst",
"oauth_client_secret_description": "Nõutud, kui PKCE (Proof Key for Code Exchange) ei ole OAuth pakkuja poolt toetatud", "oauth_client_id": "Kliendi ID",
"oauth_client_secret": "Kliendi saladus",
"oauth_enable_description": "Sisene OAuth abil", "oauth_enable_description": "Sisene OAuth abil",
"oauth_issuer_url": "Väljastaja URL",
"oauth_mobile_redirect_uri": "Mobiilne ümbersuunamise URI", "oauth_mobile_redirect_uri": "Mobiilne ümbersuunamise URI",
"oauth_mobile_redirect_uri_override": "Mobiilse ümbersuunamise URI ülekirjutamine", "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_mobile_redirect_uri_override_description": "Lülita sisse, kui OAuth pakkuja ei luba mobiilset URI-d, näiteks '{callback}'",
"oauth_profile_signing_algorithm": "Profiili allkirjastamise algoritm",
"oauth_profile_signing_algorithm_description": "Algoritm, mida kasutatakse kasutajaprofiili allkirjastamiseks.",
"oauth_scope": "Skoop",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "Halda OAuth sisselogimise seadeid", "oauth_settings_description": "Halda OAuth sisselogimise seadeid",
"oauth_settings_more_details": "Selle funktsiooni kohta rohkem teada saamiseks loe <link>dokumentatsiooni</link>.", "oauth_settings_more_details": "Selle funktsiooni kohta rohkem teada saamiseks loe <link>dokumentatsiooni</link>.",
"oauth_signing_algorithm": "Allkirjastamise algoritm",
"oauth_storage_label_claim": "Talletussildi väide", "oauth_storage_label_claim": "Talletussildi väide",
"oauth_storage_label_claim_description": "Sea kasutaja talletussildiks automaatselt selle väite väärtus.", "oauth_storage_label_claim_description": "Sea kasutaja talletussildiks automaatselt selle väite väärtus.",
"oauth_storage_quota_claim": "Talletuskvoodi väide", "oauth_storage_quota_claim": "Talletuskvoodi väide",
"oauth_storage_quota_claim_description": "Sea kasutaja talletuskvoodiks automaatselt selle väite väärtus.", "oauth_storage_quota_claim_description": "Sea kasutaja talletuskvoodiks automaatselt selle väite väärtus.",
"oauth_storage_quota_default": "Vaikimisi talletuskvoot (GiB)", "oauth_storage_quota_default": "Vaikimisi talletuskvoot (GiB)",
"oauth_storage_quota_default_description": "Kvoot (GiB), mida kasutada, kui ühtegi väidet pole esitatud (piiramatu kvoodi jaoks sisesta 0).", "oauth_storage_quota_default_description": "Kvoot (GiB), mida kasutada, kui ühtegi väidet pole esitatud (piiramatu kvoodi jaoks sisesta 0).",
"oauth_timeout": "Päringu ajalõpp",
"oauth_timeout_description": "Päringute ajalõpp millisekundites",
"offline_paths": "Ühenduseta failiteed", "offline_paths": "Ühenduseta failiteed",
"offline_paths_description": "Need tulemused võivad olla põhjustatud manuaalselt kustutatud failidest, mis ei ole osa välisest kogust.", "offline_paths_description": "Need tulemused võivad olla põhjustatud manuaalselt kustutatud failidest, mis ei ole osa välisest kogust.",
"password_enable_description": "Logi sisse e-posti aadressi ja parooliga", "password_enable_description": "Logi sisse e-posti aadressi ja parooliga",
@@ -349,7 +352,6 @@
"user_delete_delay_settings_description": "Päevade arv, pärast mida kustutatakse eemaldatud kasutaja konto ja üksused jäädavalt. Kasutajate kustutamise tööde käivitub keskööl, et otsida kustutamiseks valmis kasutajaid. Selle seadistuse muudatused rakenduvad järgmisel käivitumisel.", "user_delete_delay_settings_description": "Päevade arv, pärast mida kustutatakse eemaldatud kasutaja konto ja üksused jäädavalt. Kasutajate kustutamise tööde käivitub keskööl, et otsida kustutamiseks valmis kasutajaid. Selle seadistuse muudatused rakenduvad järgmisel käivitumisel.",
"user_delete_immediately": "Kasutaja <b>{user}</b> konto ja üksused suunatakse <b>koheselt</b> jäädavale kustutamisele.", "user_delete_immediately": "Kasutaja <b>{user}</b> konto ja üksused suunatakse <b>koheselt</b> jäädavale kustutamisele.",
"user_delete_immediately_checkbox": "Suuna kasutaja ja üksused jäädavale kustutamisele", "user_delete_immediately_checkbox": "Suuna kasutaja ja üksused jäädavale kustutamisele",
"user_details": "Kasutaja detailid",
"user_management": "Kasutajate haldus", "user_management": "Kasutajate haldus",
"user_password_has_been_reset": "Kasutaja parool on lähtestatud:", "user_password_has_been_reset": "Kasutaja parool on lähtestatud:",
"user_password_reset_description": "Sisesta kasutajale ajutine parool ja teavita teda, et järgmisel sisselogimisel tuleb parool ära muuta.", "user_password_reset_description": "Sisesta kasutajale ajutine parool ja teavita teda, et järgmisel sisselogimisel tuleb parool ära muuta.",
@@ -369,19 +371,9 @@
"admin_password": "Administraatori parool", "admin_password": "Administraatori parool",
"administration": "Administratsioon", "administration": "Administratsioon",
"advanced": "Täpsemad valikud", "advanced": "Täpsemad valikud",
"advanced_settings_enable_alternate_media_filter_subtitle": "Kasuta seda valikut, et filtreerida sünkroonimise ajal üksuseid alternatiivsete kriteeriumite alusel. Proovi seda ainult siis, kui rakendusel on probleeme kõigi albumite tuvastamisega.", "advanced_settings_log_level_title": "Logimistase: {}",
"advanced_settings_enable_alternate_media_filter_title": "[EKSPERIMENTAALNE] Kasuta alternatiivset seadme albumi sünkroonimise filtrit",
"advanced_settings_log_level_title": "Logimistase: {level}",
"advanced_settings_prefer_remote_subtitle": "Mõned seadmed laadivad seadmes olevate üksuste pisipilte piinavalt aeglaselt. Aktiveeri see seadistus, et laadida selle asemel kaugpilte.",
"advanced_settings_prefer_remote_title": "Eelista kaugpilte",
"advanced_settings_proxy_headers_subtitle": "Määra vaheserveri päised, mida Immich peaks iga päringuga saatma",
"advanced_settings_proxy_headers_title": "Vaheserveri päised", "advanced_settings_proxy_headers_title": "Vaheserveri päised",
"advanced_settings_self_signed_ssl_subtitle": "Jätab serveri lõpp-punkti SSL-sertifikaadi kontrolli vahele. Nõutud endasigneeritud sertifikaatide jaoks.",
"advanced_settings_self_signed_ssl_title": "Luba endasigneeritud SSL-sertifikaadid", "advanced_settings_self_signed_ssl_title": "Luba endasigneeritud SSL-sertifikaadid",
"advanced_settings_sync_remote_deletions_subtitle": "Kustuta või taasta üksus selles seadmes automaatself, kui sama tegevus toimub veebis",
"advanced_settings_sync_remote_deletions_title": "Sünkrooni kaugkustutamised [EKSPERIMENTAALNE]",
"advanced_settings_tile_subtitle": "Edasijõudnud kasutajate seaded",
"advanced_settings_troubleshooting_subtitle": "Luba lisafunktsioonid tõrkeotsinguks",
"advanced_settings_troubleshooting_title": "Tõrkeotsing", "advanced_settings_troubleshooting_title": "Tõrkeotsing",
"age_months": "Vanus {months, plural, one {# kuu} other {# kuud}}", "age_months": "Vanus {months, plural, one {# kuu} other {# kuud}}",
"age_year_months": "Vanus 1 aasta, {months, plural, one {# kuu} other {# kuud}}", "age_year_months": "Vanus 1 aasta, {months, plural, one {# kuu} other {# kuud}}",
@@ -402,9 +394,9 @@
"album_remove_user_confirmation": "Kas oled kindel, et soovid kasutaja {user} eemaldada?", "album_remove_user_confirmation": "Kas oled kindel, et soovid kasutaja {user} eemaldada?",
"album_share_no_users": "Paistab, et oled seda albumit kõikide kasutajatega jaganud, või pole ühtegi kasutajat, kellega jagada.", "album_share_no_users": "Paistab, et oled seda albumit kõikide kasutajatega jaganud, või pole ühtegi kasutajat, kellega jagada.",
"album_thumbnail_card_item": "1 üksus", "album_thumbnail_card_item": "1 üksus",
"album_thumbnail_card_items": "{count} üksust", "album_thumbnail_card_items": "{} üksust",
"album_thumbnail_card_shared": " · Jagatud", "album_thumbnail_card_shared": " · Jagatud",
"album_thumbnail_shared_by": "Jagas {user}", "album_thumbnail_shared_by": "Jagas {}",
"album_updated": "Album muudetud", "album_updated": "Album muudetud",
"album_updated_setting_description": "Saa teavitus e-posti teel, kui jagatud albumis on uusi üksuseid", "album_updated_setting_description": "Saa teavitus e-posti teel, kui jagatud albumis on uusi üksuseid",
"album_user_left": "Lahkutud albumist {album}", "album_user_left": "Lahkutud albumist {album}",
@@ -415,7 +407,6 @@
"album_viewer_appbar_share_err_remove": "Üksuste albumist eemaldamisel tekkis probleeme", "album_viewer_appbar_share_err_remove": "Üksuste albumist eemaldamisel tekkis probleeme",
"album_viewer_appbar_share_err_title": "Albumi pealkirja muutmine ebaõnnestus", "album_viewer_appbar_share_err_title": "Albumi pealkirja muutmine ebaõnnestus",
"album_viewer_appbar_share_leave": "Lahku albumist", "album_viewer_appbar_share_leave": "Lahku albumist",
"album_viewer_appbar_share_to": "Jaga",
"album_viewer_page_share_add_users": "Lisa kasutajaid", "album_viewer_page_share_add_users": "Lisa kasutajaid",
"album_with_link_access": "Luba kõigil, kellel on link, näha selle albumi fotosid ja isikuid.", "album_with_link_access": "Luba kõigil, kellel on link, näha selle albumi fotosid ja isikuid.",
"albums": "Albumid", "albums": "Albumid",
@@ -442,15 +433,13 @@
"archive": "Arhiiv", "archive": "Arhiiv",
"archive_or_unarchive_photo": "Arhiveeri või taasta foto", "archive_or_unarchive_photo": "Arhiveeri või taasta foto",
"archive_page_no_archived_assets": "Arhiveeritud üksuseid ei leitud", "archive_page_no_archived_assets": "Arhiveeritud üksuseid ei leitud",
"archive_page_title": "Arhiveeri ({count})",
"archive_size": "Arhiivi suurus", "archive_size": "Arhiivi suurus",
"archive_size_description": "Seadista arhiivi suurus allalaadimiseks (GiB)", "archive_size_description": "Seadista arhiivi suurus allalaadimiseks (GiB)",
"archived": "Arhiveeritud", "archived": "Arhiveeritud",
"archived_count": "{count, plural, other {# arhiveeritud}}", "archived_count": "{count, plural, other {# arhiveeritud}}",
"are_these_the_same_person": "Kas need on sama isik?", "are_these_the_same_person": "Kas need on sama isik?",
"are_you_sure_to_do_this": "Kas oled kindel, et soovid seda teha?", "are_you_sure_to_do_this": "Kas oled kindel, et soovid seda teha?",
"asset_action_delete_err_read_only": "Kirjutuskaitstud üksuseid ei saa kustutada, jäetakse vahele", "asset_action_delete_err_read_only": "Kirjutuskaitstud üksuseid ei saa kustutada, jätan vahele",
"asset_action_share_err_offline": "Ühenduseta üksuseid ei saa pärida, jäetakse vahele",
"asset_added_to_album": "Lisatud albumisse", "asset_added_to_album": "Lisatud albumisse",
"asset_adding_to_album": "Albumisse lisamine…", "asset_adding_to_album": "Albumisse lisamine…",
"asset_description_updated": "Üksuse kirjeldus on muudetud", "asset_description_updated": "Üksuse kirjeldus on muudetud",
@@ -463,8 +452,6 @@
"asset_list_layout_settings_group_by": "Grupeeri üksused", "asset_list_layout_settings_group_by": "Grupeeri üksused",
"asset_list_layout_settings_group_by_month_day": "Kuu + päev", "asset_list_layout_settings_group_by_month_day": "Kuu + päev",
"asset_list_layout_sub_title": "Asetus", "asset_list_layout_sub_title": "Asetus",
"asset_list_settings_subtitle": "Fotoruudustiku asetuse sätted",
"asset_list_settings_title": "Fotoruudustik",
"asset_offline": "Üksus pole kättesaadav", "asset_offline": "Üksus pole kättesaadav",
"asset_offline_description": "Seda välise kogu üksust ei leitud kettalt. Abi saamiseks palun võta ühendust oma Immich'i administraatoriga.", "asset_offline_description": "Seda välise kogu üksust ei leitud kettalt. Abi saamiseks palun võta ühendust oma Immich'i administraatoriga.",
"asset_restored_successfully": "Üksus edukalt taastatud", "asset_restored_successfully": "Üksus edukalt taastatud",
@@ -472,94 +459,38 @@
"asset_skipped_in_trash": "Prügikastis", "asset_skipped_in_trash": "Prügikastis",
"asset_uploaded": "Üleslaaditud", "asset_uploaded": "Üleslaaditud",
"asset_uploading": "Üleslaadimine…", "asset_uploading": "Üleslaadimine…",
"asset_viewer_settings_subtitle": "Halda galeriivaaturi seadeid",
"asset_viewer_settings_title": "Üksuste vaatur",
"assets": "Üksused", "assets": "Üksused",
"assets_added_count": "{count, plural, one {# üksus} other {# üksust}} lisatud", "assets_added_count": "{count, plural, one {# üksus} other {# üksust}} lisatud",
"assets_added_to_album_count": "{count, plural, one {# üksus} other {# üksust}} albumisse lisatud", "assets_added_to_album_count": "{count, plural, one {# üksus} other {# üksust}} albumisse lisatud",
"assets_added_to_name_count": "{count, plural, one {# üksus} other {# üksust}} lisatud {hasName, select, true {albumisse <b>{name}</b>} other {uude albumisse}}", "assets_added_to_name_count": "{count, plural, one {# üksus} other {# üksust}} lisatud {hasName, select, true {albumisse <b>{name}</b>} other {uude albumisse}}",
"assets_count": "{count, plural, one {# üksus} other {# üksust}}", "assets_count": "{count, plural, one {# üksus} other {# üksust}}",
"assets_deleted_permanently": "{count} üksus(t) jäädavalt kustutatud",
"assets_deleted_permanently_from_server": "{count} üksus(t) Immich'i serverist jäädavalt kustutatud",
"assets_moved_to_trash_count": "{count, plural, one {# üksus} other {# üksust}} liigutatud prügikasti", "assets_moved_to_trash_count": "{count, plural, one {# üksus} other {# üksust}} liigutatud prügikasti",
"assets_permanently_deleted_count": "{count, plural, one {# üksus} other {# üksust}} jäädavalt kustutatud", "assets_permanently_deleted_count": "{count, plural, one {# üksus} other {# üksust}} jäädavalt kustutatud",
"assets_removed_count": "{count, plural, one {# üksus} other {# üksust}} eemaldatud", "assets_removed_count": "{count, plural, one {# üksus} other {# üksust}} eemaldatud",
"assets_removed_permanently_from_device": "{count} üksus(t) seadmest jäädavalt eemaldatud",
"assets_restore_confirmation": "Kas oled kindel, et soovid oma prügikasti liigutatud üksused taastada? Seda ei saa tagasi võtta! Pane tähele, et sel meetodil ei saa taastada ühenduseta üksuseid.", "assets_restore_confirmation": "Kas oled kindel, et soovid oma prügikasti liigutatud üksused taastada? Seda ei saa tagasi võtta! Pane tähele, et sel meetodil ei saa taastada ühenduseta üksuseid.",
"assets_restored_count": "{count, plural, one {# üksus} other {# üksust}} taastatud", "assets_restored_count": "{count, plural, one {# üksus} other {# üksust}} taastatud",
"assets_restored_successfully": "{count} üksus(t) edukalt taastatud",
"assets_trashed": "{count} üksus(t) liigutatud prügikasti",
"assets_trashed_count": "{count, plural, one {# üksus} other {# üksust}} liigutatud prügikasti", "assets_trashed_count": "{count, plural, one {# üksus} other {# üksust}} liigutatud prügikasti",
"assets_trashed_from_server": "{count} üksus(t) liigutatud Immich'i serveris prügikasti",
"assets_were_part_of_album_count": "{count, plural, one {Üksus oli} other {Üksused olid}} juba osa albumist", "assets_were_part_of_album_count": "{count, plural, one {Üksus oli} other {Üksused olid}} juba osa albumist",
"authorized_devices": "Autoriseeritud seadmed", "authorized_devices": "Autoriseeritud seadmed",
"automatic_endpoint_switching_subtitle": "Ühendu lokaalselt üle valitud WiFi-võrgu, kui see on saadaval, ja kasuta mujal alternatiivseid ühendusi", "automatic_endpoint_switching_subtitle": "Ühendu lokaalselt üle valitud WiFi-võrgu, kui see on saadaval, ja kasuta mujal alternatiivseid ühendusi",
"automatic_endpoint_switching_title": "Automaatne URL-i ümberlülitamine",
"back": "Tagasi", "back": "Tagasi",
"back_close_deselect": "Tagasi, sulge või tühista valik", "back_close_deselect": "Tagasi, sulge või tühista valik",
"background_location_permission": "Taustal asukoha luba",
"background_location_permission_content": "Et taustal töötades võrguühendust vahetada, peab Immich'il *alati* olema täpse asukoha luba, et rakendus saaks WiFi-võrgu nime lugeda",
"backup_album_selection_page_albums_device": "Albumid seadmel ({count})",
"backup_album_selection_page_albums_tap": "Puuduta kaasamiseks, topeltpuuduta välistamiseks",
"backup_album_selection_page_assets_scatter": "Üksused võivad olla jaotatud mitme albumi vahel. Seega saab albumeid varundamise protsessi kaasata või välistada.",
"backup_album_selection_page_select_albums": "Vali albumid", "backup_album_selection_page_select_albums": "Vali albumid",
"backup_album_selection_page_selection_info": "Valiku info", "backup_album_selection_page_selection_info": "Valiku info",
"backup_album_selection_page_total_assets": "Unikaalseid üksuseid kokku", "backup_album_selection_page_total_assets": "Unikaalseid üksuseid kokku",
"backup_all": "Kõik", "backup_all": "Kõik",
"backup_background_service_backup_failed_message": "Üksuste varundamine ebaõnnestus. Uuesti proovimine…",
"backup_background_service_connection_failed_message": "Serveriga ühendumine ebaõnnestus. Uuesti proovimine…",
"backup_background_service_current_upload_notification": "{filename} üleslaadimine",
"backup_background_service_default_notification": "Uute üksuste kontrollimine…", "backup_background_service_default_notification": "Uute üksuste kontrollimine…",
"backup_background_service_error_title": "Varundamise viga", "backup_background_service_error_title": "Varundamise viga",
"backup_background_service_in_progress_notification": "Sinu üksuste varundamine…",
"backup_background_service_upload_failure_notification": "Faili {filename} üleslaadimine ebaõnnestus",
"backup_controller_page_albums": "Varunduse albumid",
"backup_controller_page_background_app_refresh_disabled_content": "Taustal varundamise kasutamiseks luba rakenduse taustal värskendamine: Seaded > Üldine > Rakenduse taustal värskendamine.",
"backup_controller_page_background_app_refresh_disabled_title": "Rakenduse taustal värskendamine keelatud",
"backup_controller_page_background_app_refresh_enable_button_text": "Mine seadetesse",
"backup_controller_page_background_battery_info_link": "Näita mulle, kuidas",
"backup_controller_page_background_battery_info_message": "Parima taustal varundamise kogemuse jaoks palun keela Immich'i puhul kõik taustategevust piiravad aku optimeerimised.\n\nKuna see on seadmespetsiifiline, otsi vajalikku teavet oma seadme tootja kohta.",
"backup_controller_page_background_battery_info_ok": "OK", "backup_controller_page_background_battery_info_ok": "OK",
"backup_controller_page_background_battery_info_title": "Aku optimeerimised",
"backup_controller_page_background_charging": "Ainult laadimise ajal",
"backup_controller_page_background_configure_error": "Taustateenuse seadistamine ebaõnnestus",
"backup_controller_page_background_delay": "Oota uute üksuste varundamisega: {duration}",
"backup_controller_page_background_description": "Lülita taustateenus sisse, et uusi üksuseid automaatselt varundada, ilma et peaks rakendust avama",
"backup_controller_page_background_is_off": "Automaatne taustal varundamine on välja lülitatud",
"backup_controller_page_background_is_on": "Automaatne taustal varundamine on sisse lülitatud",
"backup_controller_page_background_turn_off": "Lülita taustateenus välja",
"backup_controller_page_background_turn_on": "Lülita taustateenus sisse",
"backup_controller_page_background_wifi": "Ainult WiFi-võrgus", "backup_controller_page_background_wifi": "Ainult WiFi-võrgus",
"backup_controller_page_backup": "Varundamine",
"backup_controller_page_backup_selected": "Valitud: ",
"backup_controller_page_backup_sub": "Varundatud fotod ja videod", "backup_controller_page_backup_sub": "Varundatud fotod ja videod",
"backup_controller_page_created": "Lisatud: {date}",
"backup_controller_page_desc_backup": "Lülita sisse esiplaanil varundamine, et rakenduse avamisel uued üksused automaatselt serverisse üles laadida.", "backup_controller_page_desc_backup": "Lülita sisse esiplaanil varundamine, et rakenduse avamisel uued üksused automaatselt serverisse üles laadida.",
"backup_controller_page_excluded": "Välistatud: ",
"backup_controller_page_failed": "Ebaõnnestunud ({count})",
"backup_controller_page_filename": "Failinimi: {filename} [{size}]",
"backup_controller_page_id": "ID: {id}",
"backup_controller_page_info": "Varunduse info",
"backup_controller_page_none_selected": "Ühtegi pole valitud",
"backup_controller_page_remainder": "Ootel",
"backup_controller_page_remainder_sub": "Valitud fotod ja videod, mis on veel varundamise ootel",
"backup_controller_page_server_storage": "Serveri talletusruum",
"backup_controller_page_start_backup": "Alusta varundamist",
"backup_controller_page_status_off": "Automaatne esiplaanil varundamine on välja lülitatud",
"backup_controller_page_status_on": "Automaatne esiplaanil varundamine on sisse lülitatud",
"backup_controller_page_storage_format": "{used}/{total} kasutusel",
"backup_controller_page_to_backup": "Albumid, mida varundada", "backup_controller_page_to_backup": "Albumid, mida varundada",
"backup_controller_page_total_sub": "Kõik unikaalsed fotod ja videod valitud albumitest", "backup_controller_page_total_sub": "Kõik unikaalsed fotod ja videod valitud albumitest",
"backup_controller_page_turn_off": "Lülita esiplaanil varundus välja",
"backup_controller_page_turn_on": "Lülita esiplaanil varundus sisse",
"backup_controller_page_uploading_file_info": "Faili info üleslaadimine",
"backup_err_only_album": "Ei saa ainsat albumit eemaldada", "backup_err_only_album": "Ei saa ainsat albumit eemaldada",
"backup_info_card_assets": "üksused", "backup_info_card_assets": "üksused",
"backup_manual_cancelled": "Tühistatud", "backup_manual_cancelled": "Tühistatud",
"backup_manual_in_progress": "Üleslaadimine juba käib. Proovi hiljem uuesti",
"backup_manual_success": "Õnnestus",
"backup_manual_title": "Üleslaadimise staatus", "backup_manual_title": "Üleslaadimise staatus",
"backup_options_page_title": "Varundamise valikud",
"backup_setting_subtitle": "Halda taustal ja esiplaanil üleslaadimise seadeid", "backup_setting_subtitle": "Halda taustal ja esiplaanil üleslaadimise seadeid",
"backward": "Tagasi", "backward": "Tagasi",
"birthdate_saved": "Sünnikuupäev salvestatud", "birthdate_saved": "Sünnikuupäev salvestatud",
@@ -572,24 +503,8 @@
"bulk_keep_duplicates_confirmation": "Kas oled kindel, et soovid {count, plural, one {# dubleeritud üksuse} other {# dubleeritud üksust}} alles jätta? Sellega märgitakse kõik duplikaadigrupid lahendatuks ilma midagi kustutamata.", "bulk_keep_duplicates_confirmation": "Kas oled kindel, et soovid {count, plural, one {# dubleeritud üksuse} other {# dubleeritud üksust}} alles jätta? Sellega märgitakse kõik duplikaadigrupid lahendatuks ilma midagi kustutamata.",
"bulk_trash_duplicates_confirmation": "Kas oled kindel, et soovid {count, plural, one {# dubleeritud üksuse} other {# dubleeritud üksust}} masskustutada? Sellega jäetakse alles iga grupi suurim üksus ning duplikaadid liigutatakse prügikasti.", "bulk_trash_duplicates_confirmation": "Kas oled kindel, et soovid {count, plural, one {# dubleeritud üksuse} other {# dubleeritud üksust}} masskustutada? Sellega jäetakse alles iga grupi suurim üksus ning duplikaadid liigutatakse prügikasti.",
"buy": "Osta Immich", "buy": "Osta Immich",
"cache_settings_album_thumbnails": "Kogu lehtede pisipildid ({count} üksust)",
"cache_settings_clear_cache_button": "Tühjenda puhver", "cache_settings_clear_cache_button": "Tühjenda puhver",
"cache_settings_clear_cache_button_title": "Tühjendab rakenduse puhvri. See mõjutab oluliselt rakenduse jõudlust, kuni puhver uuesti täidetakse.",
"cache_settings_duplicated_assets_clear_button": "TÜHJENDA",
"cache_settings_duplicated_assets_subtitle": "Fotod ja videod, mis on rakenduse poolt mustfiltreeritud",
"cache_settings_duplicated_assets_title": "Dubleeritud üksused ({count})",
"cache_settings_image_cache_size": "Piltide puhvri suurus ({count} üksust)",
"cache_settings_statistics_album": "Kogu pisipildid",
"cache_settings_statistics_assets": "{count} üksust ({size})",
"cache_settings_statistics_full": "Täismõõdus pildid",
"cache_settings_statistics_shared": "Jagatud albumite pisipildid",
"cache_settings_statistics_thumbnail": "Pisipildid",
"cache_settings_statistics_title": "Puhvri kasutus", "cache_settings_statistics_title": "Puhvri kasutus",
"cache_settings_subtitle": "Juhi Immich'i rakenduse puhverdamist",
"cache_settings_thumbnail_size": "Pisipiltide puhvri suurus ({count} üksust)",
"cache_settings_tile_subtitle": "Juhi lokaalse talletuse käitumist",
"cache_settings_tile_title": "Lokaalne talletus",
"cache_settings_title": "Puhverdamise seaded",
"camera": "Kaamera", "camera": "Kaamera",
"camera_brand": "Kaamera mark", "camera_brand": "Kaamera mark",
"camera_model": "Kaamera mudel", "camera_model": "Kaamera mudel",
@@ -600,7 +515,6 @@
"cannot_undo_this_action": "Sa ei saa seda tagasi võtta!", "cannot_undo_this_action": "Sa ei saa seda tagasi võtta!",
"cannot_update_the_description": "Kirjelduse muutmine ebaõnnestus", "cannot_update_the_description": "Kirjelduse muutmine ebaõnnestus",
"change_date": "Muuda kuupäeva", "change_date": "Muuda kuupäeva",
"change_display_order": "Muuda kuva järjekorda",
"change_expiration_time": "Muuda aegumisaega", "change_expiration_time": "Muuda aegumisaega",
"change_location": "Muuda asukohta", "change_location": "Muuda asukohta",
"change_name": "Muuda nime", "change_name": "Muuda nime",
@@ -608,17 +522,12 @@
"change_password": "Parooli muutmine", "change_password": "Parooli muutmine",
"change_password_description": "See on su esimene kord süsteemi siseneda, või on tehtud taotlus parooli muutmiseks. Palun sisesta allpool uus parool.", "change_password_description": "See on su esimene kord süsteemi siseneda, või on tehtud taotlus parooli muutmiseks. Palun sisesta allpool uus parool.",
"change_password_form_confirm_password": "Kinnita parool", "change_password_form_confirm_password": "Kinnita parool",
"change_password_form_description": "Hei {name},\n\nSa kas logid süsteemi esimest korda sisse, või on esitatud taotlus sinu parooli muutmiseks. Palun sisesta allpool uus parool.",
"change_password_form_new_password": "Uus parool", "change_password_form_new_password": "Uus parool",
"change_password_form_password_mismatch": "Paroolid ei klapi", "change_password_form_password_mismatch": "Paroolid ei klapi",
"change_password_form_reenter_new_password": "Korda uut parooli", "change_password_form_reenter_new_password": "Korda uut parooli",
"change_pin_code": "Muuda PIN-koodi",
"change_your_password": "Muuda oma parooli", "change_your_password": "Muuda oma parooli",
"changed_visibility_successfully": "Nähtavus muudetud", "changed_visibility_successfully": "Nähtavus muudetud",
"check_all": "Märgi kõik", "check_all": "Märgi kõik",
"check_corrupt_asset_backup": "Otsi riknenud üksuste varukoopiaid",
"check_corrupt_asset_backup_button": "Teosta kontroll",
"check_corrupt_asset_backup_description": "Käivita see kontroll ainult WiFi-võrgus ja siis, kui kõik üksused on varundatud. See protseduur võib kesta mõne minuti.",
"check_logs": "Vaata logisid", "check_logs": "Vaata logisid",
"choose_matching_people_to_merge": "Vali kattuvad isikud, mida ühendada", "choose_matching_people_to_merge": "Vali kattuvad isikud, mida ühendada",
"city": "Linn", "city": "Linn",
@@ -646,27 +555,20 @@
"comments_and_likes": "Kommentaarid ja meeldimised", "comments_and_likes": "Kommentaarid ja meeldimised",
"comments_are_disabled": "Kommentaarid on keelatud", "comments_are_disabled": "Kommentaarid on keelatud",
"common_create_new_album": "Lisa uus album", "common_create_new_album": "Lisa uus album",
"common_server_error": "Kontrolli oma võrguühendust ja veendu, et server on kättesaadav ning rakenduse ja serveri versioonid on ühilduvad.",
"completed": "Lõpetatud", "completed": "Lõpetatud",
"confirm": "Kinnita", "confirm": "Kinnita",
"confirm_admin_password": "Kinnita administraatori parool", "confirm_admin_password": "Kinnita administraatori parool",
"confirm_delete_face": "Kas oled kindel, et soovid isiku {name} näo üksuselt kustutada?", "confirm_delete_face": "Kas oled kindel, et soovid isiku {name} näo üksuselt kustutada?",
"confirm_delete_shared_link": "Kas oled kindel, et soovid selle jagatud lingi kustutada?", "confirm_delete_shared_link": "Kas oled kindel, et soovid selle jagatud lingi kustutada?",
"confirm_keep_this_delete_others": "Kõik muud üksused selles virnas kustutatakse. Kas oled kindel, et soovid jätkata?", "confirm_keep_this_delete_others": "Kõik muud üksused selles virnas kustutatakse. Kas oled kindel, et soovid jätkata?",
"confirm_new_pin_code": "Kinnita uus PIN-kood",
"confirm_password": "Kinnita parool", "confirm_password": "Kinnita parool",
"contain": "Mahuta ära", "contain": "Mahuta ära",
"context": "Kontekst", "context": "Kontekst",
"continue": "Jätka", "continue": "Jätka",
"control_bottom_app_bar_album_info_shared": "{count} üksust · Jagatud",
"control_bottom_app_bar_create_new_album": "Lisa uus album", "control_bottom_app_bar_create_new_album": "Lisa uus album",
"control_bottom_app_bar_delete_from_immich": "Kustuta Immich'ist",
"control_bottom_app_bar_delete_from_local": "Kustuta seadmest", "control_bottom_app_bar_delete_from_local": "Kustuta seadmest",
"control_bottom_app_bar_edit_location": "Muuda asukohta", "control_bottom_app_bar_edit_location": "Muuda asukohta",
"control_bottom_app_bar_edit_time": "Muuda kuupäeva ja aega", "control_bottom_app_bar_edit_time": "Muuda kuupäeva ja aega",
"control_bottom_app_bar_share_link": "Jaga linki",
"control_bottom_app_bar_share_to": "Jaga",
"control_bottom_app_bar_trash_from_immich": "Liiguta prügikasti",
"copied_image_to_clipboard": "Pilt kopeeritud lõikelauale.", "copied_image_to_clipboard": "Pilt kopeeritud lõikelauale.",
"copied_to_clipboard": "Kopeeritud lõikelauale!", "copied_to_clipboard": "Kopeeritud lõikelauale!",
"copy_error": "Kopeeri viga", "copy_error": "Kopeeri viga",
@@ -681,36 +583,25 @@
"covers": "Kaanepildid", "covers": "Kaanepildid",
"create": "Lisa", "create": "Lisa",
"create_album": "Lisa album", "create_album": "Lisa album",
"create_album_page_untitled": "Pealkirjata",
"create_library": "Lisa kogu", "create_library": "Lisa kogu",
"create_link": "Lisa link", "create_link": "Lisa link",
"create_link_to_share": "Lisa jagamiseks link", "create_link_to_share": "Lisa jagamiseks link",
"create_link_to_share_description": "Luba kõigil, kellel on link, valitud pilte näha", "create_link_to_share_description": "Luba kõigil, kellel on link, valitud pilte näha",
"create_new": "LISA UUS",
"create_new_person": "Lisa uus isik", "create_new_person": "Lisa uus isik",
"create_new_person_hint": "Seosta valitud üksused uue isikuga", "create_new_person_hint": "Seosta valitud üksused uue isikuga",
"create_new_user": "Lisa uus kasutaja", "create_new_user": "Lisa uus kasutaja",
"create_shared_album_page_share_add_assets": "LISA ÜKSUSEID",
"create_shared_album_page_share_select_photos": "Vali fotod", "create_shared_album_page_share_select_photos": "Vali fotod",
"create_tag": "Lisa silt", "create_tag": "Lisa silt",
"create_tag_description": "Lisa uus silt. Pesastatud siltide jaoks sisesta täielik tee koos kaldkriipsudega.", "create_tag_description": "Lisa uus silt. Pesastatud siltide jaoks sisesta täielik tee koos kaldkriipsudega.",
"create_user": "Lisa kasutaja", "create_user": "Lisa kasutaja",
"created": "Lisatud", "created": "Lisatud",
"created_at": "Lisatud",
"crop": "Kärpimine",
"curated_object_page_title": "Asjad",
"current_device": "Praegune seade", "current_device": "Praegune seade",
"current_pin_code": "Praegune PIN-kood",
"current_server_address": "Praegune serveri aadress",
"custom_locale": "Kohandatud lokaat", "custom_locale": "Kohandatud lokaat",
"custom_locale_description": "Vorminda kuupäevad ja arvud vastavalt keelele ja regioonile", "custom_locale_description": "Vorminda kuupäevad ja arvud vastavalt keelele ja regioonile",
"daily_title_text_date": "d. MMMM",
"daily_title_text_date_year": "d. MMMM yyyy",
"dark": "Tume", "dark": "Tume",
"date_after": "Kuupäev pärast", "date_after": "Kuupäev pärast",
"date_and_time": "Kuupäev ja kellaaeg", "date_and_time": "Kuupäev ja kellaaeg",
"date_before": "Kuupäev enne", "date_before": "Kuupäev enne",
"date_format": "d. MMMM y • HH:mm",
"date_of_birth_saved": "Sünnikuupäev salvestatud", "date_of_birth_saved": "Sünnikuupäev salvestatud",
"date_range": "Kuupäevavahemik", "date_range": "Kuupäevavahemik",
"day": "Päev", "day": "Päev",
@@ -724,11 +615,6 @@
"delete": "Kustuta", "delete": "Kustuta",
"delete_album": "Kustuta album", "delete_album": "Kustuta album",
"delete_api_key_prompt": "Kas oled kindel, et soovid selle API võtme kustutada?", "delete_api_key_prompt": "Kas oled kindel, et soovid selle API võtme kustutada?",
"delete_dialog_alert": "Need üksused kustutatakse jäädavalt Immich'ist ja sinu seadmest",
"delete_dialog_alert_local": "Need üksused kustutatakse jäädavalt sinu seadmest, aga jäävad Immich'i serverisse alles",
"delete_dialog_alert_local_non_backed_up": "Mõned üksustest ei ole Immich'isse varundatud ning kustutatakse su seadmest jäädavalt",
"delete_dialog_alert_remote": "Need üksused kustutatakse jäädavalt Immich'i serverist",
"delete_dialog_ok_force": "Kustuta sellegipoolest",
"delete_dialog_title": "Kustuta jäädavalt", "delete_dialog_title": "Kustuta jäädavalt",
"delete_duplicates_confirmation": "Kas oled kindel, et soovid need duplikaadid jäädavalt kustutada?", "delete_duplicates_confirmation": "Kas oled kindel, et soovid need duplikaadid jäädavalt kustutada?",
"delete_face": "Kustuta nägu", "delete_face": "Kustuta nägu",
@@ -736,7 +622,6 @@
"delete_library": "Kustuta kogu", "delete_library": "Kustuta kogu",
"delete_link": "Kustuta link", "delete_link": "Kustuta link",
"delete_local_dialog_ok_backed_up_only": "Kustuta ainult varundatud", "delete_local_dialog_ok_backed_up_only": "Kustuta ainult varundatud",
"delete_local_dialog_ok_force": "Kustuta sellegipoolest",
"delete_others": "Kustuta teised", "delete_others": "Kustuta teised",
"delete_shared_link": "Kustuta jagatud link", "delete_shared_link": "Kustuta jagatud link",
"delete_shared_link_dialog_title": "Kustuta jagatud link", "delete_shared_link_dialog_title": "Kustuta jagatud link",
@@ -747,7 +632,6 @@
"deletes_missing_assets": "Kustutab üksused, mis on kettalt puudu", "deletes_missing_assets": "Kustutab üksused, mis on kettalt puudu",
"description": "Kirjeldus", "description": "Kirjeldus",
"description_input_hint_text": "Lisa kirjeldus...", "description_input_hint_text": "Lisa kirjeldus...",
"description_input_submit_error": "Viga kirjelduse muutmisel, rohkem infot leiad logist",
"details": "Üksikasjad", "details": "Üksikasjad",
"direction": "Suund", "direction": "Suund",
"disabled": "Välja lülitatud", "disabled": "Välja lülitatud",
@@ -769,21 +653,17 @@
"download_enqueue": "Allalaadimine ootel", "download_enqueue": "Allalaadimine ootel",
"download_error": "Allalaadimise viga", "download_error": "Allalaadimise viga",
"download_failed": "Allalaadimine ebaõnnestus", "download_failed": "Allalaadimine ebaõnnestus",
"download_filename": "fail: {filename}",
"download_finished": "Allalaadimine lõpetatud", "download_finished": "Allalaadimine lõpetatud",
"download_include_embedded_motion_videos": "Manustatud videod", "download_include_embedded_motion_videos": "Manustatud videod",
"download_include_embedded_motion_videos_description": "Lisa liikuvatesse fotodesse manustatud videod eraldi failidena", "download_include_embedded_motion_videos_description": "Lisa liikuvatesse fotodesse manustatud videod eraldi failidena",
"download_notfound": "Allalaadimist ei leitud",
"download_paused": "Allalaadimine peatatud", "download_paused": "Allalaadimine peatatud",
"download_settings": "Allalaadimine", "download_settings": "Allalaadimine",
"download_settings_description": "Halda üksuste allalaadimise seadeid", "download_settings_description": "Halda üksuste allalaadimise seadeid",
"download_started": "Allalaadimine alustatud", "download_started": "Allalaadimine alustatud",
"download_sucess": "Allalaadimine õnnestus", "download_sucess": "Allalaadimine õnnestus",
"download_sucess_android": "Meediumid laaditi alla kataloogi DCIM/Immich", "download_sucess_android": "Meediumid laaditi alla kataloogi DCIM/Immich",
"download_waiting_to_retry": "Uuesti proovimise ootel",
"downloading": "Allalaadimine", "downloading": "Allalaadimine",
"downloading_asset_filename": "Üksuse {filename} allalaadimine", "downloading_asset_filename": "Üksuse {filename} allalaadimine",
"downloading_media": "Meediumi allalaadimine",
"drop_files_to_upload": "Failide üleslaadimiseks sikuta need ükskõik kuhu", "drop_files_to_upload": "Failide üleslaadimiseks sikuta need ükskõik kuhu",
"duplicates": "Duplikaadid", "duplicates": "Duplikaadid",
"duplicates_description": "Lahenda iga grupp, valides duplikaadid, kui neid on", "duplicates_description": "Lahenda iga grupp, valides duplikaadid, kui neid on",
@@ -813,20 +693,17 @@
"editor_crop_tool_h2_aspect_ratios": "Kuvasuhted", "editor_crop_tool_h2_aspect_ratios": "Kuvasuhted",
"editor_crop_tool_h2_rotation": "Pööre", "editor_crop_tool_h2_rotation": "Pööre",
"email": "E-post", "email": "E-post",
"email_notifications": "E-posti teavitused",
"empty_folder": "See kaust on tühi", "empty_folder": "See kaust on tühi",
"empty_trash": "Tühjenda prügikast", "empty_trash": "Tühjenda prügikast",
"empty_trash_confirmation": "Kas oled kindel, et soovid prügikasti tühjendada? See eemaldab kõik seal olevad üksused Immich'ist jäädavalt.\nSeda tegevust ei saa tagasi võtta!", "empty_trash_confirmation": "Kas oled kindel, et soovid prügikasti tühjendada? See eemaldab kõik seal olevad üksused Immich'ist jäädavalt.\nSeda tegevust ei saa tagasi võtta!",
"enable": "Luba", "enable": "Luba",
"enabled": "Lubatud", "enabled": "Lubatud",
"end_date": "Lõppkuupäev", "end_date": "Lõppkuupäev",
"enqueued": "Järjekorras",
"enter_wifi_name": "Sisesta WiFi-võrgu nimi", "enter_wifi_name": "Sisesta WiFi-võrgu nimi",
"error": "Viga", "error": "Viga",
"error_change_sort_album": "Albumi sorteerimisjärjestuse muutmine ebaõnnestus", "error_change_sort_album": "Albumi sorteerimisjärjestuse muutmine ebaõnnestus",
"error_delete_face": "Viga näo kustutamisel", "error_delete_face": "Viga näo kustutamisel",
"error_loading_image": "Viga pildi laadimisel", "error_loading_image": "Viga pildi laadimisel",
"error_saving_image": "Viga: {error}",
"error_title": "Viga - midagi läks valesti", "error_title": "Viga - midagi läks valesti",
"errors": { "errors": {
"cannot_navigate_next_asset": "Järgmise üksuse juurde liikumine ebaõnnestus", "cannot_navigate_next_asset": "Järgmise üksuse juurde liikumine ebaõnnestus",
@@ -856,12 +733,10 @@
"failed_to_keep_this_delete_others": "Selle üksuse säilitamine ja ülejäänute kustutamine ebaõnnestus", "failed_to_keep_this_delete_others": "Selle üksuse säilitamine ja ülejäänute kustutamine ebaõnnestus",
"failed_to_load_asset": "Üksuse laadimine ebaõnnestus", "failed_to_load_asset": "Üksuse laadimine ebaõnnestus",
"failed_to_load_assets": "Üksuste laadimine ebaõnnestus", "failed_to_load_assets": "Üksuste laadimine ebaõnnestus",
"failed_to_load_notifications": "Teavituste laadimine ebaõnnestus",
"failed_to_load_people": "Isikute laadimine ebaõnnestus", "failed_to_load_people": "Isikute laadimine ebaõnnestus",
"failed_to_remove_product_key": "Tootevõtme eemaldamine ebaõnnestus", "failed_to_remove_product_key": "Tootevõtme eemaldamine ebaõnnestus",
"failed_to_stack_assets": "Üksuste virnastamine ebaõnnestus", "failed_to_stack_assets": "Üksuste virnastamine ebaõnnestus",
"failed_to_unstack_assets": "Üksuste eraldamine ebaõnnestus", "failed_to_unstack_assets": "Üksuste eraldamine ebaõnnestus",
"failed_to_update_notification_status": "Teavituste seisundi uuendamine ebaõnnestus",
"import_path_already_exists": "See imporditee on juba olemas.", "import_path_already_exists": "See imporditee on juba olemas.",
"incorrect_email_or_password": "Vale e-posti aadress või parool", "incorrect_email_or_password": "Vale e-posti aadress või parool",
"paths_validation_failed": "{paths, plural, one {# tee} other {# teed}} ei valideerunud", "paths_validation_failed": "{paths, plural, one {# tee} other {# teed}} ei valideerunud",
@@ -929,7 +804,6 @@
"unable_to_remove_reaction": "Reaktsiooni eemaldamine ebaõnnestus", "unable_to_remove_reaction": "Reaktsiooni eemaldamine ebaõnnestus",
"unable_to_repair_items": "Üksuste parandamine ebaõnnestus", "unable_to_repair_items": "Üksuste parandamine ebaõnnestus",
"unable_to_reset_password": "Parooli lähtestamine ebaõnnestus", "unable_to_reset_password": "Parooli lähtestamine ebaõnnestus",
"unable_to_reset_pin_code": "PIN-koodi lähtestamine ebaõnnestus",
"unable_to_resolve_duplicate": "Duplikaadi lahendamine ebaõnnestus", "unable_to_resolve_duplicate": "Duplikaadi lahendamine ebaõnnestus",
"unable_to_restore_assets": "Üksuste taastamine ebaõnnestus", "unable_to_restore_assets": "Üksuste taastamine ebaõnnestus",
"unable_to_restore_trash": "Prügikastist taastamine ebaõnnestus", "unable_to_restore_trash": "Prügikastist taastamine ebaõnnestus",
@@ -963,15 +837,8 @@
"exif_bottom_sheet_location": "ASUKOHT", "exif_bottom_sheet_location": "ASUKOHT",
"exif_bottom_sheet_people": "ISIKUD", "exif_bottom_sheet_people": "ISIKUD",
"exif_bottom_sheet_person_add_person": "Lisa nimi", "exif_bottom_sheet_person_add_person": "Lisa nimi",
"exif_bottom_sheet_person_age": "Vanus {age}",
"exif_bottom_sheet_person_age_months": "Vanus {months} kuud",
"exif_bottom_sheet_person_age_year_months": "Vanus 1 aasta, {months} kuud",
"exif_bottom_sheet_person_age_years": "Vanus {years}",
"exit_slideshow": "Sulge slaidiesitlus", "exit_slideshow": "Sulge slaidiesitlus",
"expand_all": "Näita kõik", "expand_all": "Näita kõik",
"experimental_settings_new_asset_list_subtitle": "Töös",
"experimental_settings_new_asset_list_title": "Luba eksperimentaalne fotoruudistik",
"experimental_settings_subtitle": "Kasuta omal vastutusel!",
"experimental_settings_title": "Eksperimentaalne", "experimental_settings_title": "Eksperimentaalne",
"expire_after": "Aegub", "expire_after": "Aegub",
"expired": "Aegunud", "expired": "Aegunud",
@@ -983,16 +850,12 @@
"extension": "Laiend", "extension": "Laiend",
"external": "Väline", "external": "Väline",
"external_libraries": "Välised kogud", "external_libraries": "Välised kogud",
"external_network": "Väline võrk",
"external_network_sheet_info": "Kui seade ei ole eelistatud WiFi-võrgus, ühendub rakendus serveriga allolevatest URL-idest esimese kättesaadava kaudu, alustades ülevalt", "external_network_sheet_info": "Kui seade ei ole eelistatud WiFi-võrgus, ühendub rakendus serveriga allolevatest URL-idest esimese kättesaadava kaudu, alustades ülevalt",
"face_unassigned": "Seostamata", "face_unassigned": "Seostamata",
"failed": "Ebaõnnestus",
"failed_to_load_assets": "Üksuste laadimine ebaõnnestus", "failed_to_load_assets": "Üksuste laadimine ebaõnnestus",
"failed_to_load_folder": "Kausta laadimine ebaõnnestus",
"favorite": "Lemmik", "favorite": "Lemmik",
"favorite_or_unfavorite_photo": "Lisa foto lemmikutesse või eemalda lemmikutest", "favorite_or_unfavorite_photo": "Lisa foto lemmikutesse või eemalda lemmikutest",
"favorites": "Lemmikud", "favorites": "Lemmikud",
"favorites_page_no_favorites": "Lemmikuid üksuseid ei leitud",
"feature_photo_updated": "Esiletõstetud foto muudetud", "feature_photo_updated": "Esiletõstetud foto muudetud",
"features": "Funktsioonid", "features": "Funktsioonid",
"features_setting_description": "Halda rakenduse funktsioone", "features_setting_description": "Halda rakenduse funktsioone",
@@ -1000,9 +863,7 @@
"file_name_or_extension": "Failinimi või -laiend", "file_name_or_extension": "Failinimi või -laiend",
"filename": "Failinimi", "filename": "Failinimi",
"filetype": "Failitüüp", "filetype": "Failitüüp",
"filter": "Filter",
"filter_people": "Filtreeri isikuid", "filter_people": "Filtreeri isikuid",
"filter_places": "Filtreeri kohti",
"find_them_fast": "Leia teda kiiresti nime järgi otsides", "find_them_fast": "Leia teda kiiresti nime järgi otsides",
"fix_incorrect_match": "Paranda ebaõige vaste", "fix_incorrect_match": "Paranda ebaõige vaste",
"folder": "Kaust", "folder": "Kaust",
@@ -1012,27 +873,21 @@
"forward": "Edasi", "forward": "Edasi",
"general": "Üldine", "general": "Üldine",
"get_help": "Küsi abi", "get_help": "Küsi abi",
"get_wifiname_error": "WiFi-võrgu nime ei õnnestunud lugeda. Veendu, et oled andnud vajalikud load ja oled WiFi-võrguga ühendatud",
"getting_started": "Alustamine", "getting_started": "Alustamine",
"go_back": "Tagasi", "go_back": "Tagasi",
"go_to_folder": "Mine kausta", "go_to_folder": "Mine kausta",
"go_to_search": "Otsingusse", "go_to_search": "Otsingusse",
"grant_permission": "Anna luba",
"group_albums_by": "Grupeeri albumid...", "group_albums_by": "Grupeeri albumid...",
"group_country": "Grupeeri riigi kaupa", "group_country": "Grupeeri riigi kaupa",
"group_no": "Ära grupeeri", "group_no": "Ära grupeeri",
"group_owner": "Grupeeri omaniku kaupa", "group_owner": "Grupeeri omaniku kaupa",
"group_places_by": "Grupeeri kohad...", "group_places_by": "Grupeeri kohad...",
"group_year": "Grupeeri aasta kaupa", "group_year": "Grupeeri aasta kaupa",
"haptic_feedback_switch": "Luba haptiline tagasiside",
"haptic_feedback_title": "Haptiline tagasiside",
"has_quota": "On kvoot", "has_quota": "On kvoot",
"header_settings_add_header_tip": "Lisa päis", "header_settings_add_header_tip": "Lisa päis",
"header_settings_field_validator_msg": "Väärtus ei saa olla tühi", "header_settings_field_validator_msg": "Väärtus ei saa olla tühi",
"header_settings_header_name_input": "Päise nimi", "header_settings_header_name_input": "Päise nimi",
"header_settings_header_value_input": "Päise väärtus", "header_settings_header_value_input": "Päise väärtus",
"headers_settings_tile_subtitle": "Määra vaheserveri päised, mida rakendus peaks iga päringuga saatma",
"headers_settings_tile_title": "Kohandatud vaheserveri päised",
"hi_user": "Tere {name} ({email})", "hi_user": "Tere {name} ({email})",
"hide_all_people": "Peida kõik isikud", "hide_all_people": "Peida kõik isikud",
"hide_gallery": "Peida galerii", "hide_gallery": "Peida galerii",
@@ -1041,24 +896,19 @@
"hide_person": "Peida isik", "hide_person": "Peida isik",
"hide_unnamed_people": "Peida nimetud isikud", "hide_unnamed_people": "Peida nimetud isikud",
"home_page_add_to_album_conflicts": "{added} üksust lisati albumisse {album}. {failed} üksust oli juba albumis.", "home_page_add_to_album_conflicts": "{added} üksust lisati albumisse {album}. {failed} üksust oli juba albumis.",
"home_page_add_to_album_err_local": "Lokaalseid üksuseid ei saa veel albumisse lisada, jäetakse vahele", "home_page_add_to_album_err_local": "Lokaalseid üksuseid ei saa veel albumisse lisada, jätan vahele",
"home_page_add_to_album_success": "{added} üksust lisati albumisse {album}.", "home_page_add_to_album_success": "{added} üksust lisati albumisse {album}.",
"home_page_album_err_partner": "Partneri üksuseid ei saa veel albumisse lisada, jäetakse vahele", "home_page_album_err_partner": "Partneri üksuseid ei saa veel albumisse lisada, jätan vahele",
"home_page_archive_err_local": "Lokaalseid üksuseid ei saa veel arhiveerida, jäetakse vahele", "home_page_archive_err_local": "Lokaalseid üksuseid ei saa veel arhiveerida, jätan vahele",
"home_page_archive_err_partner": "Partneri üksuseid ei saa arhiveerida, jäetakse vahele", "home_page_archive_err_partner": "Partneri üksuseid ei saa arhiveerida, jätan vahele",
"home_page_building_timeline": "Ajajoone koostamine", "home_page_building_timeline": "Ajajoone koostamine",
"home_page_delete_err_partner": "Partneri üksuseid ei saa kustutada, jäetakse vahele", "home_page_delete_err_partner": "Partneri üksuseid ei saa kustutada, jätan vahele",
"home_page_delete_remote_err_local": "Kaugkustutamise valikus on lokaalsed üksused, jäetakse vahele", "home_page_favorite_err_local": "Lokaalseid üksuseid ei saa lemmikuks märkida, jätan vahele",
"home_page_favorite_err_local": "Lokaalseid üksuseid ei saa lemmikuks märkida, jäetakse vahele", "home_page_favorite_err_partner": "Partneri üksuseid ei saa lemmikuks märkida, jätan vahele",
"home_page_favorite_err_partner": "Partneri üksuseid ei saa lemmikuks märkida, jäetakse vahele", "home_page_share_err_local": "Lokaalseid üksuseid ei saa lingiga jagada, jätan vahele",
"home_page_first_time_notice": "Kui see on su esimene kord rakendust kasutada, vali varunduse album, et ajajoon saaks sellest fotosid ja videosid kuvada",
"home_page_share_err_local": "Lokaalseid üksuseid ei saa lingiga jagada, jäetakse vahele",
"home_page_upload_err_limit": "Korraga saab üles laadida ainult 30 üksust, jäetakse vahele",
"host": "Host", "host": "Host",
"hour": "Tund", "hour": "Tund",
"id": "ID",
"ignore_icloud_photos": "Ignoreeri iCloud fotosid", "ignore_icloud_photos": "Ignoreeri iCloud fotosid",
"ignore_icloud_photos_description": "Fotosid, mis on iCloud'is, ei laadita üles Immich'i serverisse",
"image": "Pilt", "image": "Pilt",
"image_alt_text_date": "{isVideo, select, true {Video} other {Pilt}} tehtud {date}", "image_alt_text_date": "{isVideo, select, true {Video} other {Pilt}} tehtud {date}",
"image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Pilt}} tehtud {date} koos isikuga {person1}", "image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Pilt}} tehtud {date} koos isikuga {person1}",
@@ -1070,10 +920,8 @@
"image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Pilt}} tehtud {date} kohas {city}, {country} koos isikutega {person1} ja {person2}", "image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Pilt}} tehtud {date} kohas {city}, {country} koos isikutega {person1} ja {person2}",
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Pilt}} tehtud {date} kohas {city}, {country} koos isikutega {person1}, {person2} ja {person3}", "image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Pilt}} tehtud {date} kohas {city}, {country} koos isikutega {person1}, {person2} ja {person3}",
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Pilt}} tehtud {date} kohas {city}, {country} koos {person1}, {person2} ja veel {additionalCount, number} isikuga", "image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Pilt}} tehtud {date} kohas {city}, {country} koos {person1}, {person2} ja veel {additionalCount, number} isikuga",
"image_saved_successfully": "Pilt salvestatud",
"image_viewer_page_state_provider_download_started": "Allalaadimine alustatud", "image_viewer_page_state_provider_download_started": "Allalaadimine alustatud",
"image_viewer_page_state_provider_download_success": "Allalaadimine õnnestus", "image_viewer_page_state_provider_download_success": "Allalaadimine õnnestus",
"image_viewer_page_state_provider_share_error": "Jagamise viga",
"immich_logo": "Immich'i logo", "immich_logo": "Immich'i logo",
"immich_web_interface": "Immich'i veebiliides", "immich_web_interface": "Immich'i veebiliides",
"import_from_json": "Impordi JSON-formaadist", "import_from_json": "Impordi JSON-formaadist",
@@ -1114,11 +962,8 @@
"level": "Tase", "level": "Tase",
"library": "Kogu", "library": "Kogu",
"library_options": "Kogu seaded", "library_options": "Kogu seaded",
"library_page_device_albums": "Albumid seadmes",
"library_page_new_album": "Uus album", "library_page_new_album": "Uus album",
"library_page_sort_asset_count": "Üksuste arv", "library_page_sort_asset_count": "Üksuste arv",
"library_page_sort_created": "Loomise aeg",
"library_page_sort_last_modified": "Viimase muutmise aeg",
"library_page_sort_title": "Albumi pealkiri", "library_page_sort_title": "Albumi pealkiri",
"light": "Hele", "light": "Hele",
"like_deleted": "Meeldimine kustutatud", "like_deleted": "Meeldimine kustutatud",
@@ -1129,22 +974,14 @@
"list": "Loend", "list": "Loend",
"loading": "Laadimine", "loading": "Laadimine",
"loading_search_results_failed": "Otsitulemuste laadimine ebaõnnestus", "loading_search_results_failed": "Otsitulemuste laadimine ebaõnnestus",
"local_network": "Kohalik võrk",
"local_network_sheet_info": "Rakendus ühendub valitud Wi-Fi võrgus olles serveriga selle URL-i kaudu", "local_network_sheet_info": "Rakendus ühendub valitud Wi-Fi võrgus olles serveriga selle URL-i kaudu",
"location_permission": "Asukoha luba",
"location_permission_content": "Automaatseks ümberlülitumiseks vajab Immich täpse asukoha luba, et saaks lugeda aktiivse WiFi-võrgu nime", "location_permission_content": "Automaatseks ümberlülitumiseks vajab Immich täpse asukoha luba, et saaks lugeda aktiivse WiFi-võrgu nime",
"location_picker_choose_on_map": "Vali kaardil", "location_picker_choose_on_map": "Vali kaardil",
"location_picker_latitude_error": "Sisesta korrektne laiuskraad",
"location_picker_latitude_hint": "Sisesta laiuskraad siia",
"location_picker_longitude_error": "Sisesta korrektne pikkuskraad",
"location_picker_longitude_hint": "Sisesta pikkuskraad siia",
"log_out": "Logi välja", "log_out": "Logi välja",
"log_out_all_devices": "Logi kõigist seadmetest välja", "log_out_all_devices": "Logi kõigist seadmetest välja",
"logged_out_all_devices": "Kõigist seadmetest välja logitud", "logged_out_all_devices": "Kõigist seadmetest välja logitud",
"logged_out_device": "Seadmest välja logitud", "logged_out_device": "Seadmest välja logitud",
"login": "Logi sisse", "login": "Logi sisse",
"login_disabled": "Sisselogimine on keelatud",
"login_form_api_exception": "API viga. Kontrolli serveri URL-i ja proovi uuesti.",
"login_form_back_button_text": "Tagasi", "login_form_back_button_text": "Tagasi",
"login_form_email_hint": "sinunimi@email.com", "login_form_email_hint": "sinunimi@email.com",
"login_form_endpoint_hint": "http://serveri-ip:port", "login_form_endpoint_hint": "http://serveri-ip:port",
@@ -1152,18 +989,8 @@
"login_form_err_http": "Palun täpsusta http:// või https://", "login_form_err_http": "Palun täpsusta http:// või https://",
"login_form_err_invalid_email": "Vigane e-posti aadress", "login_form_err_invalid_email": "Vigane e-posti aadress",
"login_form_err_invalid_url": "Vigane URL", "login_form_err_invalid_url": "Vigane URL",
"login_form_err_leading_whitespace": "Eelnevad tühikud",
"login_form_err_trailing_whitespace": "Järgnevad tühikud",
"login_form_failed_get_oauth_server_config": "Viga OAuth abil sisenemisel, kontrolli serveri URL-i",
"login_form_failed_get_oauth_server_disable": "OAuth funktsionaalsus ei ole selles serveris saadaval",
"login_form_failed_login": "Viga sisselogimisel, kontrolli serveri URL-i, e-posti aadressi ja parooli",
"login_form_handshake_exception": "Serveriga suhtlemisel tekkis kätlemise viga. Kui kasutad endasigneeritud sertifikaati, luba seadetes endasigneeritud sertifikaatide tugi.",
"login_form_password_hint": "parool", "login_form_password_hint": "parool",
"login_form_save_login": "Jää sisselogituks",
"login_form_server_empty": "Sisesta serveri URL.",
"login_form_server_error": "Serveriga ühendumine ebaõnnestus.",
"login_has_been_disabled": "Sisselogimine on keelatud.", "login_has_been_disabled": "Sisselogimine on keelatud.",
"login_password_changed_error": "Parooli muutmisel tekkis viga",
"login_password_changed_success": "Parool edukalt uuendatud", "login_password_changed_success": "Parool edukalt uuendatud",
"logout_all_device_confirmation": "Kas oled kindel, et soovid kõigist seadmetest välja logida?", "logout_all_device_confirmation": "Kas oled kindel, et soovid kõigist seadmetest välja logida?",
"logout_this_device_confirmation": "Kas oled kindel, et soovid sellest seadmest välja logida?", "logout_this_device_confirmation": "Kas oled kindel, et soovid sellest seadmest välja logida?",
@@ -1182,43 +1009,17 @@
"manage_your_devices": "Halda oma autenditud seadmeid", "manage_your_devices": "Halda oma autenditud seadmeid",
"manage_your_oauth_connection": "Halda oma OAuth ühendust", "manage_your_oauth_connection": "Halda oma OAuth ühendust",
"map": "Kaart", "map": "Kaart",
"map_assets_in_bound": "{count} foto",
"map_assets_in_bounds": "{count} fotot",
"map_cannot_get_user_location": "Ei saa kasutaja asukohta tuvastada",
"map_location_dialog_yes": "Jah",
"map_location_picker_page_use_location": "Kasuta seda asukohta",
"map_location_service_disabled_content": "Praeguse asukoha üksuste kuvamiseks tuleb lubada asukoha teenus. Kas soovid seda praegu lubada?",
"map_location_service_disabled_title": "Asukoha teenus keelatud",
"map_marker_for_images": "Kaardimarker kohas {city}, {country} tehtud piltide jaoks", "map_marker_for_images": "Kaardimarker kohas {city}, {country} tehtud piltide jaoks",
"map_marker_with_image": "Kaardimarker pildiga", "map_marker_with_image": "Kaardimarker pildiga",
"map_no_assets_in_bounds": "Selles piirkonnas ei ole fotosid",
"map_no_location_permission_content": "Praeguse asukoha üksuste kuvamiseks on vaja asukoha luba. Kas soovid seda praegu lubada?",
"map_no_location_permission_title": "Asukoha luba keelatud",
"map_settings": "Kaardi seaded", "map_settings": "Kaardi seaded",
"map_settings_dark_mode": "Tume režiim",
"map_settings_date_range_option_day": "Viimased 24 tundi", "map_settings_date_range_option_day": "Viimased 24 tundi",
"map_settings_date_range_option_days": "Viimased {days} päeva",
"map_settings_date_range_option_year": "Viimane aasta", "map_settings_date_range_option_year": "Viimane aasta",
"map_settings_date_range_option_years": "Viimased {years} aastat",
"map_settings_dialog_title": "Kaardi seaded", "map_settings_dialog_title": "Kaardi seaded",
"map_settings_include_show_archived": "Kaasa arhiveeritud",
"map_settings_include_show_partners": "Kaasa partnerid",
"map_settings_only_show_favorites": "Kuva ainult lemmikud",
"map_settings_theme_settings": "Kaardi teema",
"map_zoom_to_see_photos": "Fotode nägemiseks suumi välja",
"mark_all_as_read": "Märgi kõik loetuks",
"mark_as_read": "Märgi loetuks",
"marked_all_as_read": "Kõik märgiti loetuks",
"matches": "Ühtivad failid", "matches": "Ühtivad failid",
"media_type": "Meediumi tüüp", "media_type": "Meediumi tüüp",
"memories": "Mälestused", "memories": "Mälestused",
"memories_all_caught_up": "Ongi kõik",
"memories_check_back_tomorrow": "Vaata homme juba uusi mälestusi",
"memories_setting_description": "Halda, mida sa oma mälestustes näed", "memories_setting_description": "Halda, mida sa oma mälestustes näed",
"memories_start_over": "Alusta uuesti",
"memories_swipe_to_close": "Sulgemiseks pühi üles",
"memories_year_ago": "Aasta tagasi", "memories_year_ago": "Aasta tagasi",
"memories_years_ago": "{years, plural, other {# aastat}} tagasi",
"memory": "Mälestus", "memory": "Mälestus",
"memory_lane_title": "Mälestus {title}", "memory_lane_title": "Mälestus {title}",
"menu": "Menüü", "menu": "Menüü",
@@ -1233,13 +1034,10 @@
"missing": "Puuduvad", "missing": "Puuduvad",
"model": "Mudel", "model": "Mudel",
"month": "Kuu", "month": "Kuu",
"monthly_title_text_date_format": "MMMM y",
"more": "Rohkem", "more": "Rohkem",
"moved_to_archive": "{count, plural, one {# üksus} other {# üksust}} liigutatud arhiivi",
"moved_to_library": "{count, plural, one {# üksus} other {# üksust}} liigutatud kogusse",
"moved_to_trash": "Liigutatud prügikasti", "moved_to_trash": "Liigutatud prügikasti",
"multiselect_grid_edit_date_time_err_read_only": "Kirjutuskaitsega üksus(t)e kuupäeva ei saa muuta, jäetakse vahele", "multiselect_grid_edit_date_time_err_read_only": "Kirjutuskaitsega üksus(t)e kuupäeva ei saa muuta, jätan vahele",
"multiselect_grid_edit_gps_err_read_only": "Kirjutuskaitsega üksus(t)e asukohta ei saa muuta, jäetakse vahele", "multiselect_grid_edit_gps_err_read_only": "Kirjutuskaitsega üksus(t)e asukohta ei saa muuta, jätan vahele",
"mute_memories": "Vaigista mälestused", "mute_memories": "Vaigista mälestused",
"my_albums": "Minu albumid", "my_albums": "Minu albumid",
"name": "Nimi", "name": "Nimi",
@@ -1251,7 +1049,6 @@
"new_api_key": "Uus API võti", "new_api_key": "Uus API võti",
"new_password": "Uus parool", "new_password": "Uus parool",
"new_person": "Uus isik", "new_person": "Uus isik",
"new_pin_code": "Uus PIN-kood",
"new_user_created": "Uus kasutaja lisatud", "new_user_created": "Uus kasutaja lisatud",
"new_version_available": "UUS VERSIOON SAADAVAL", "new_version_available": "UUS VERSIOON SAADAVAL",
"newest_first": "Uuemad eespool", "newest_first": "Uuemad eespool",
@@ -1263,27 +1060,19 @@
"no_albums_yet": "Paistab, et sul pole veel ühtegi albumit.", "no_albums_yet": "Paistab, et sul pole veel ühtegi albumit.",
"no_archived_assets_message": "Arhiveeri fotod ja videod, et neid Fotod vaatest peita", "no_archived_assets_message": "Arhiveeri fotod ja videod, et neid Fotod vaatest peita",
"no_assets_message": "KLIKI ESIMESE FOTO ÜLESLAADIMISEKS", "no_assets_message": "KLIKI ESIMESE FOTO ÜLESLAADIMISEKS",
"no_assets_to_show": "Pole üksuseid, mida kuvada",
"no_duplicates_found": "Ühtegi duplikaati ei leitud.", "no_duplicates_found": "Ühtegi duplikaati ei leitud.",
"no_exif_info_available": "Exif info pole saadaval", "no_exif_info_available": "Exif info pole saadaval",
"no_explore_results_message": "Oma kogu avastamiseks laadi üles rohkem fotosid.", "no_explore_results_message": "Oma kogu avastamiseks laadi üles rohkem fotosid.",
"no_favorites_message": "Lisa lemmikud, et oma parimaid fotosid ja videosid kiiresti leida", "no_favorites_message": "Lisa lemmikud, et oma parimaid fotosid ja videosid kiiresti leida",
"no_libraries_message": "Lisa väline kogu oma fotode ja videote vaatamiseks", "no_libraries_message": "Lisa väline kogu oma fotode ja videote vaatamiseks",
"no_name": "Nimetu", "no_name": "Nimetu",
"no_notifications": "Teavitusi pole",
"no_people_found": "Kattuvaid isikuid ei leitud",
"no_places": "Kohti ei ole", "no_places": "Kohti ei ole",
"no_results": "Vasteid pole", "no_results": "Vasteid pole",
"no_results_description": "Proovi sünonüümi või üldisemat märksõna", "no_results_description": "Proovi sünonüümi või üldisemat märksõna",
"no_shared_albums_message": "Lisa album, et fotosid ja videosid teistega jagada", "no_shared_albums_message": "Lisa album, et fotosid ja videosid teistega jagada",
"not_in_any_album": "Pole üheski albumis", "not_in_any_album": "Pole üheski albumis",
"not_selected": "Ei ole valitud",
"note_apply_storage_label_to_previously_uploaded assets": "Märkus: Et rakendada talletussilt varem üleslaaditud üksustele, käivita", "note_apply_storage_label_to_previously_uploaded assets": "Märkus: Et rakendada talletussilt varem üleslaaditud üksustele, käivita",
"notes": "Märkused", "notes": "Märkused",
"notification_permission_dialog_content": "Teavituste lubamiseks mine Seadetesse ja vali lubamine.",
"notification_permission_list_tile_content": "Anna luba teavituste saatmiseks.",
"notification_permission_list_tile_enable_button": "Luba teavitused",
"notification_permission_list_tile_title": "Teavituste luba",
"notification_toggle_setting_description": "Luba e-posti teel teavitused", "notification_toggle_setting_description": "Luba e-posti teel teavitused",
"notifications": "Teavitused", "notifications": "Teavitused",
"notifications_setting_description": "Halda teavitusi", "notifications_setting_description": "Halda teavitusi",
@@ -1294,7 +1083,6 @@
"offline_paths_description": "Need tulemused võivad olla põhjustatud manuaalselt kustutatud failidest, mis ei ole osa välisest kogust.", "offline_paths_description": "Need tulemused võivad olla põhjustatud manuaalselt kustutatud failidest, mis ei ole osa välisest kogust.",
"ok": "Ok", "ok": "Ok",
"oldest_first": "Vanemad eespool", "oldest_first": "Vanemad eespool",
"on_this_device": "Sellel seadmel",
"onboarding": "Kasutuselevõtt", "onboarding": "Kasutuselevõtt",
"onboarding_privacy_description": "Järgnevad (valikulised) funktsioonid sõltuvad välistest teenustest ning neid saab igal ajal administraatori seadetes välja lülitada.", "onboarding_privacy_description": "Järgnevad (valikulised) funktsioonid sõltuvad välistest teenustest ning neid saab igal ajal administraatori seadetes välja lülitada.",
"onboarding_theme_description": "Vali oma serverile värviteema. Saad seda hiljem seadetes muuta.", "onboarding_theme_description": "Vali oma serverile värviteema. Saad seda hiljem seadetes muuta.",
@@ -1302,7 +1090,6 @@
"onboarding_welcome_user": "Tere tulemast, {user}", "onboarding_welcome_user": "Tere tulemast, {user}",
"online": "Ühendatud", "online": "Ühendatud",
"only_favorites": "Ainult lemmikud", "only_favorites": "Ainult lemmikud",
"open": "Ava",
"open_in_map_view": "Ava kaardi vaates", "open_in_map_view": "Ava kaardi vaates",
"open_in_openstreetmap": "Ava OpenStreetMap", "open_in_openstreetmap": "Ava OpenStreetMap",
"open_the_search_filters": "Ava otsingufiltrid", "open_the_search_filters": "Ava otsingufiltrid",
@@ -1319,14 +1106,9 @@
"partner_can_access": "{partner} pääseb ligi", "partner_can_access": "{partner} pääseb ligi",
"partner_can_access_assets": "Kõik su fotod ja videod, välja arvatud arhiveeritud ja kustutatud", "partner_can_access_assets": "Kõik su fotod ja videod, välja arvatud arhiveeritud ja kustutatud",
"partner_can_access_location": "Asukohad, kus su fotod tehti", "partner_can_access_location": "Asukohad, kus su fotod tehti",
"partner_list_user_photos": "Kasutaja {user} fotod",
"partner_list_view_all": "Vaata kõiki", "partner_list_view_all": "Vaata kõiki",
"partner_page_empty_message": "Su fotod pole veel ühegi partneriga jagatud.",
"partner_page_no_more_users": "Pole rohkem kasutajaid, keda lisada",
"partner_page_partner_add_failed": "Partneri lisamine ebaõnnestus", "partner_page_partner_add_failed": "Partneri lisamine ebaõnnestus",
"partner_page_select_partner": "Vali partner", "partner_page_select_partner": "Vali partner",
"partner_page_shared_to_title": "Jagatud",
"partner_page_stop_sharing_content": "{partner} ei pääse rohkem su fotodele ligi.",
"partner_sharing": "Partneriga jagamine", "partner_sharing": "Partneriga jagamine",
"partners": "Partnerid", "partners": "Partnerid",
"password": "Parool", "password": "Parool",
@@ -1356,13 +1138,6 @@
"permanently_deleted_asset": "Üksus jäädavalt kustutatud", "permanently_deleted_asset": "Üksus jäädavalt kustutatud",
"permanently_deleted_assets_count": "{count, plural, one {# üksus} other {# üksust}} jäädavalt kustutatud", "permanently_deleted_assets_count": "{count, plural, one {# üksus} other {# üksust}} jäädavalt kustutatud",
"permission_onboarding_back": "Tagasi", "permission_onboarding_back": "Tagasi",
"permission_onboarding_continue_anyway": "Jätka sellegipoolest",
"permission_onboarding_get_started": "Alusta",
"permission_onboarding_go_to_settings": "Mine seadetesse",
"permission_onboarding_permission_denied": "Luba keelatud. Immich'i kasutamiseks anna Seadetes fotode ja videote load.",
"permission_onboarding_permission_granted": "Luba antud! Oled valmis.",
"permission_onboarding_permission_limited": "Piiratud luba. Et Immich saaks tervet su galeriid varundada ja hallata, anna Seadetes luba fotodele ja videotele.",
"permission_onboarding_request": "Immich'il on vaja luba su fotode ja videote vaatamiseks.",
"person": "Isik", "person": "Isik",
"person_birthdate": "Sündinud {date}", "person_birthdate": "Sündinud {date}",
"person_hidden": "{name}{hidden, select, true { (peidetud)} other {}}", "person_hidden": "{name}{hidden, select, true { (peidetud)} other {}}",
@@ -1372,9 +1147,6 @@
"photos_count": "{count, plural, one {{count, number} foto} other {{count, number} fotot}}", "photos_count": "{count, plural, one {{count, number} foto} other {{count, number} fotot}}",
"photos_from_previous_years": "Fotod varasematest aastatest", "photos_from_previous_years": "Fotod varasematest aastatest",
"pick_a_location": "Vali asukoht", "pick_a_location": "Vali asukoht",
"pin_code_changed_successfully": "PIN-kood edukalt muudetud",
"pin_code_reset_successfully": "PIN-kood edukalt lähtestatud",
"pin_code_setup_successfully": "PIN-kood edukalt seadistatud",
"place": "Asukoht", "place": "Asukoht",
"places": "Kohad", "places": "Kohad",
"places_count": "{count, plural, one {{count, number} koht} other {{count, number} kohta}}", "places_count": "{count, plural, one {{count, number} koht} other {{count, number} kohta}}",
@@ -1383,7 +1155,6 @@
"play_motion_photo": "Esita liikuv foto", "play_motion_photo": "Esita liikuv foto",
"play_or_pause_video": "Esita või peata video", "play_or_pause_video": "Esita või peata video",
"port": "Port", "port": "Port",
"preferences_settings_subtitle": "Halda rakenduse eelistusi",
"preferences_settings_title": "Eelistused", "preferences_settings_title": "Eelistused",
"preset": "Eelseadistus", "preset": "Eelseadistus",
"preview": "Eelvaade", "preview": "Eelvaade",
@@ -1392,21 +1163,15 @@
"previous_or_next_photo": "Eelmine või järgmine foto", "previous_or_next_photo": "Eelmine või järgmine foto",
"primary": "Peamine", "primary": "Peamine",
"privacy": "Privaatsus", "privacy": "Privaatsus",
"profile": "Profiil",
"profile_drawer_app_logs": "Logid", "profile_drawer_app_logs": "Logid",
"profile_drawer_client_out_of_date_major": "Mobiilirakendus on aegunud. Palun uuenda uusimale suurele versioonile.",
"profile_drawer_client_out_of_date_minor": "Mobiilirakendus on aegunud. Palun uuenda uusimale väikesele versioonile.",
"profile_drawer_client_server_up_to_date": "Klient ja server on uuendatud",
"profile_drawer_github": "GitHub", "profile_drawer_github": "GitHub",
"profile_drawer_server_out_of_date_major": "Server on aegunud. Palun uuenda uusimale suurele versioonile.",
"profile_drawer_server_out_of_date_minor": "Server on aegunud. Palun uuenda uusimale väikesele versioonile.",
"profile_image_of_user": "Kasutaja {user} profiilipilt", "profile_image_of_user": "Kasutaja {user} profiilipilt",
"profile_picture_set": "Profiilipilt määratud.", "profile_picture_set": "Profiilipilt määratud.",
"public_album": "Avalik album", "public_album": "Avalik album",
"public_share": "Avalik jagamine", "public_share": "Avalik jagamine",
"purchase_account_info": "Toetaja", "purchase_account_info": "Toetaja",
"purchase_activated_subtitle": "Aitäh, et toetad Immich'it ja avatud lähtekoodiga tarkvara", "purchase_activated_subtitle": "Aitäh, et toetad Immich'it ja avatud lähtekoodiga tarkvara",
"purchase_activated_time": "Aktiveeritud {date}", "purchase_activated_time": "Aktiveeritud {date, date}",
"purchase_activated_title": "Sinu võtme aktiveerimine õnnestus", "purchase_activated_title": "Sinu võtme aktiveerimine õnnestus",
"purchase_button_activate": "Aktiveeri", "purchase_button_activate": "Aktiveeri",
"purchase_button_buy": "Osta", "purchase_button_buy": "Osta",
@@ -1451,8 +1216,6 @@
"recent_searches": "Hiljutised otsingud", "recent_searches": "Hiljutised otsingud",
"recently_added": "Hiljuti lisatud", "recently_added": "Hiljuti lisatud",
"recently_added_page_title": "Hiljuti lisatud", "recently_added_page_title": "Hiljuti lisatud",
"recently_taken": "Hiljuti tehtud",
"recently_taken_page_title": "Hiljuti tehtud",
"refresh": "Värskenda", "refresh": "Värskenda",
"refresh_encoded_videos": "Värskenda kodeeritud videod", "refresh_encoded_videos": "Värskenda kodeeritud videod",
"refresh_faces": "Värskenda näod", "refresh_faces": "Värskenda näod",
@@ -1495,7 +1258,6 @@
"reset": "Lähtesta", "reset": "Lähtesta",
"reset_password": "Lähtesta parool", "reset_password": "Lähtesta parool",
"reset_people_visibility": "Lähtesta isikute nähtavus", "reset_people_visibility": "Lähtesta isikute nähtavus",
"reset_pin_code": "Lähtesta PIN-kood",
"reset_to_default": "Lähtesta", "reset_to_default": "Lähtesta",
"resolve_duplicates": "Lahenda duplikaadid", "resolve_duplicates": "Lahenda duplikaadid",
"resolved_all_duplicates": "Kõik duplikaadid lahendatud", "resolved_all_duplicates": "Kõik duplikaadid lahendatud",
@@ -1515,7 +1277,6 @@
"saved_profile": "Profiil salvestatud", "saved_profile": "Profiil salvestatud",
"saved_settings": "Seaded salvestatud", "saved_settings": "Seaded salvestatud",
"say_something": "Ütle midagi", "say_something": "Ütle midagi",
"scaffold_body_error_occurred": "Tekkis viga",
"scan_all_libraries": "Skaneeri kõik kogud", "scan_all_libraries": "Skaneeri kõik kogud",
"scan_library": "Skaneeri", "scan_library": "Skaneeri",
"scan_settings": "Skaneerimise seaded", "scan_settings": "Skaneerimise seaded",
@@ -1531,12 +1292,10 @@
"search_camera_model": "Otsi kaamera mudelit...", "search_camera_model": "Otsi kaamera mudelit...",
"search_city": "Otsi linna...", "search_city": "Otsi linna...",
"search_country": "Otsi riiki...", "search_country": "Otsi riiki...",
"search_filter_apply": "Rakenda filter",
"search_filter_camera_title": "Vali kaamera tüüp", "search_filter_camera_title": "Vali kaamera tüüp",
"search_filter_date": "Kuupäev", "search_filter_date": "Kuupäev",
"search_filter_date_interval": "{start} kuni {end}", "search_filter_date_interval": "{start} kuni {end}",
"search_filter_date_title": "Vali kuupäevavahemik", "search_filter_date_title": "Vali kuupäevavahemik",
"search_filter_display_option_not_in_album": "Pole albumis",
"search_filter_display_options": "Kuva valikud", "search_filter_display_options": "Kuva valikud",
"search_filter_filename": "Otsi failinime alusel", "search_filter_filename": "Otsi failinime alusel",
"search_filter_location": "Asukoht", "search_filter_location": "Asukoht",
@@ -1546,30 +1305,21 @@
"search_filter_people_title": "Vali isikud", "search_filter_people_title": "Vali isikud",
"search_for": "Otsi", "search_for": "Otsi",
"search_for_existing_person": "Otsi olemasolevat isikut", "search_for_existing_person": "Otsi olemasolevat isikut",
"search_no_more_result": "Rohkem vasteid pole",
"search_no_people": "Isikuid ei ole", "search_no_people": "Isikuid ei ole",
"search_no_people_named": "Ei ole isikuid nimega \"{name}\"", "search_no_people_named": "Ei ole isikuid nimega \"{name}\"",
"search_no_result": "Vasteid ei leitud, proovi muud otsinguterminit või kombinatsiooni",
"search_options": "Otsingu valikud", "search_options": "Otsingu valikud",
"search_page_categories": "Kategooriad", "search_page_categories": "Kategooriad",
"search_page_motion_photos": "Liikuvad fotod",
"search_page_no_objects": "Objektide info pole saadaval",
"search_page_no_places": "Kohtade info pole saadaval",
"search_page_screenshots": "Ekraanipildid", "search_page_screenshots": "Ekraanipildid",
"search_page_search_photos_videos": "Otsi oma fotosid ja videosid", "search_page_search_photos_videos": "Otsi oma fotosid ja videosid",
"search_page_selfies": "Selfid", "search_page_selfies": "Selfid",
"search_page_things": "Asjad", "search_page_things": "Asjad",
"search_page_view_all_button": "Vaata kõiki", "search_page_view_all_button": "Vaata kõiki",
"search_page_your_activity": "Sinu aktiivsus",
"search_page_your_map": "Sinu kaart",
"search_people": "Otsi inimesi", "search_people": "Otsi inimesi",
"search_places": "Otsi kohti", "search_places": "Otsi kohti",
"search_rating": "Otsi hinnangu järgi...", "search_rating": "Otsi hinnangu järgi...",
"search_result_page_new_search_hint": "Uus otsing", "search_result_page_new_search_hint": "Uus otsing",
"search_settings": "Otsi seadeid", "search_settings": "Otsi seadeid",
"search_state": "Otsi osariiki...", "search_state": "Otsi osariiki...",
"search_suggestion_list_smart_search_hint_1": "Nutiotsing on vaikimisi lubatud, metaandmete otsimiseks kasuta süntaksit ",
"search_suggestion_list_smart_search_hint_2": "m:sinu-otsingu-termin",
"search_tags": "Otsi silte...", "search_tags": "Otsi silte...",
"search_timezone": "Otsi ajavööndit...", "search_timezone": "Otsi ajavööndit...",
"search_type": "Otsingu tüüp", "search_type": "Otsingu tüüp",
@@ -1588,7 +1338,6 @@
"select_keep_all": "Vali jäta kõik alles", "select_keep_all": "Vali jäta kõik alles",
"select_library_owner": "Vali kogu omanik", "select_library_owner": "Vali kogu omanik",
"select_new_face": "Vali uus nägu", "select_new_face": "Vali uus nägu",
"select_person_to_tag": "Vali sildistamiseks isik",
"select_photos": "Vali fotod", "select_photos": "Vali fotod",
"select_trash_all": "Vali kõik prügikasti", "select_trash_all": "Vali kõik prügikasti",
"select_user_for_sharing_page_err_album": "Albumi lisamine ebaõnnestus", "select_user_for_sharing_page_err_album": "Albumi lisamine ebaõnnestus",
@@ -1610,41 +1359,14 @@
"set_date_of_birth": "Määra sünnikuupäev", "set_date_of_birth": "Määra sünnikuupäev",
"set_profile_picture": "Sea profiilipilt", "set_profile_picture": "Sea profiilipilt",
"set_slideshow_to_fullscreen": "Kuva slaidiesitlus täisekraanil", "set_slideshow_to_fullscreen": "Kuva slaidiesitlus täisekraanil",
"setting_image_viewer_help": "Detailivaatur laadib kõigepealt väikese pisipildi, seejärel keskmises mõõdus eelvaate (kui lubatud) ja lõpuks originaalpildi (kui lubatud).",
"setting_image_viewer_original_subtitle": "Lülita sisse, et laadida algne täisresolutsiooniga pilt (suur!). Lülita välja, et vähendada andmekasutust (nii võrgu kui seadme puhvri).",
"setting_image_viewer_original_title": "Laadi algne pilt",
"setting_image_viewer_preview_subtitle": "Luba keskmise resolutsiooniga pildi laadimine. Keela, et laadida kohe originaalpilt või kasutada ainult pisipilti.",
"setting_image_viewer_preview_title": "Laadi pildi eelvaade",
"setting_image_viewer_title": "Pildid",
"setting_languages_apply": "Rakenda", "setting_languages_apply": "Rakenda",
"setting_languages_subtitle": "Muuda rakenduse keelt",
"setting_languages_title": "Keeled", "setting_languages_title": "Keeled",
"setting_notifications_notify_failures_grace_period": "Teavita taustal varundamise vigadest: {duration}",
"setting_notifications_notify_hours": "{count} tundi",
"setting_notifications_notify_immediately": "kohe", "setting_notifications_notify_immediately": "kohe",
"setting_notifications_notify_minutes": "{count} minutit",
"setting_notifications_notify_never": "mitte kunagi", "setting_notifications_notify_never": "mitte kunagi",
"setting_notifications_notify_seconds": "{count} sekundit",
"setting_notifications_single_progress_subtitle": "Detailne üleslaadimise edenemise info üksuse kohta",
"setting_notifications_single_progress_title": "Kuva taustal varundamise detailset edenemist",
"setting_notifications_subtitle": "Halda oma teavituste eelistusi",
"setting_notifications_total_progress_subtitle": "Üldine üleslaadimise edenemine (üksuseid tehtud/kokku)",
"setting_notifications_total_progress_title": "Kuva taustal varundamise üldist edenemist",
"setting_video_viewer_looping_title": "Taasesitus",
"setting_video_viewer_original_video_subtitle": "Esita serverist video voogedastamisel originaal, isegi kui transkodeeritud video on saadaval. Võib põhjustada puhverdamist. Lokaalselt saadaolevad videod mängitakse originaalkvaliteediga sõltumata sellest seadest.",
"setting_video_viewer_original_video_title": "Sunni originaalvideo",
"settings": "Seaded", "settings": "Seaded",
"settings_require_restart": "Selle seade rakendamiseks palun taaskäivita Immich",
"settings_saved": "Seaded salvestatud", "settings_saved": "Seaded salvestatud",
"setup_pin_code": "Seadista PIN-kood",
"share": "Jaga", "share": "Jaga",
"share_add_photos": "Lisa fotosid",
"share_assets_selected": "{count} valitud",
"share_dialog_preparing": "Ettevalmistamine...",
"shared": "Jagatud", "shared": "Jagatud",
"shared_album_activities_input_disable": "Kommentaarid on keelatud",
"shared_album_activity_remove_content": "Kas soovid selle tegevuse kustutada?",
"shared_album_activity_remove_title": "Kustuta tegevus",
"shared_album_section_people_action_error": "Viga albumist eemaldamisel/lahkumisel", "shared_album_section_people_action_error": "Viga albumist eemaldamisel/lahkumisel",
"shared_album_section_people_action_leave": "Eemalda kasutaja albumist", "shared_album_section_people_action_leave": "Eemalda kasutaja albumist",
"shared_album_section_people_action_remove_user": "Eemalda kasutaja albumist", "shared_album_section_people_action_remove_user": "Eemalda kasutaja albumist",
@@ -1653,33 +1375,12 @@
"shared_by_user": "Jagas {user}", "shared_by_user": "Jagas {user}",
"shared_by_you": "Jagasid sina", "shared_by_you": "Jagasid sina",
"shared_from_partner": "Fotod partnerilt {partner}", "shared_from_partner": "Fotod partnerilt {partner}",
"shared_intent_upload_button_progress_text": "{current} / {total} üles laaditud",
"shared_link_app_bar_title": "Jagatud lingid", "shared_link_app_bar_title": "Jagatud lingid",
"shared_link_clipboard_copied_massage": "Kopeeritud lõikelauale", "shared_link_clipboard_copied_massage": "Kopeeritud lõikelauale",
"shared_link_clipboard_text": "Link: {link}\nParool: {password}",
"shared_link_create_error": "Viga jagatud lingi loomisel", "shared_link_create_error": "Viga jagatud lingi loomisel",
"shared_link_edit_description_hint": "Sisesta jagatud lingi kirjeldus",
"shared_link_edit_expire_after_option_day": "1 päev", "shared_link_edit_expire_after_option_day": "1 päev",
"shared_link_edit_expire_after_option_days": "{count} päeva",
"shared_link_edit_expire_after_option_hour": "1 tund", "shared_link_edit_expire_after_option_hour": "1 tund",
"shared_link_edit_expire_after_option_hours": "{count} tundi",
"shared_link_edit_expire_after_option_minute": "1 minut", "shared_link_edit_expire_after_option_minute": "1 minut",
"shared_link_edit_expire_after_option_minutes": "{count} minutit",
"shared_link_edit_expire_after_option_months": "{count} kuud",
"shared_link_edit_expire_after_option_year": "{count} aasta",
"shared_link_edit_password_hint": "Sisesta jagatud lingi parool",
"shared_link_edit_submit_button": "Muuda link",
"shared_link_error_server_url_fetch": "Serveri URL-i ei leitud",
"shared_link_expires_day": "Aegub {count} päeva pärast",
"shared_link_expires_days": "Aegub {count} päeva pärast",
"shared_link_expires_hour": "Aegub {count} tunni pärast",
"shared_link_expires_hours": "Aegub {count} tunni pärast",
"shared_link_expires_minute": "Aegub {count} minuti pärast",
"shared_link_expires_minutes": "Aegub {count} minuti pärast",
"shared_link_expires_never": "Ei aegu",
"shared_link_expires_second": "Aegub {count} sekundi pärast",
"shared_link_expires_seconds": "Aegub {count} sekundi pärast",
"shared_link_individual_shared": "Individuaalselt jagatud",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Halda jagatud linke", "shared_link_manage_links": "Halda jagatud linke",
"shared_link_options": "Jagatud lingi valikud", "shared_link_options": "Jagatud lingi valikud",
@@ -1691,8 +1392,6 @@
"sharing": "Jagamine", "sharing": "Jagamine",
"sharing_enter_password": "Palun sisesta selle lehe vaatamiseks salasõna.", "sharing_enter_password": "Palun sisesta selle lehe vaatamiseks salasõna.",
"sharing_page_album": "Jagatud albumid", "sharing_page_album": "Jagatud albumid",
"sharing_page_description": "Loo jagatud albumeid, et jagada fotosid ja videosid inimestega oma võrgustikus.",
"sharing_page_empty_list": "TÜHI LOEND",
"sharing_sidebar_description": "Kuva külgmenüüs Jagamise linki", "sharing_sidebar_description": "Kuva külgmenüüs Jagamise linki",
"sharing_silver_appbar_create_shared_album": "Uus jagatud album", "sharing_silver_appbar_create_shared_album": "Uus jagatud album",
"sharing_silver_appbar_share_partner": "Jaga partneriga", "sharing_silver_appbar_share_partner": "Jaga partneriga",
@@ -1753,7 +1452,6 @@
"stop_sharing_photos_with_user": "Lõpeta oma fotode selle kasutajaga jagamine", "stop_sharing_photos_with_user": "Lõpeta oma fotode selle kasutajaga jagamine",
"storage": "Talletusruum", "storage": "Talletusruum",
"storage_label": "Talletussilt", "storage_label": "Talletussilt",
"storage_quota": "Talletuskvoot",
"storage_usage": "{used}/{available} kasutatud", "storage_usage": "{used}/{available} kasutatud",
"submit": "Saada", "submit": "Saada",
"suggestions": "Soovitused", "suggestions": "Soovitused",
@@ -1764,8 +1462,6 @@
"swap_merge_direction": "Muuda ühendamise suunda", "swap_merge_direction": "Muuda ühendamise suunda",
"sync": "Sünkrooni", "sync": "Sünkrooni",
"sync_albums": "Sünkrooni albumid", "sync_albums": "Sünkrooni albumid",
"sync_albums_manual_subtitle": "Sünkrooni kõik üleslaaditud videod ja fotod valitud varundusalbumitesse",
"sync_upload_album_setting_subtitle": "Loo ja laadi oma pildid ja videod üles Immich'isse valitud albumitesse",
"tag": "Silt", "tag": "Silt",
"tag_assets": "Sildista üksuseid", "tag_assets": "Sildista üksuseid",
"tag_created": "Lisatud silt: {tag}", "tag_created": "Lisatud silt: {tag}",
@@ -1779,19 +1475,9 @@
"theme": "Teema", "theme": "Teema",
"theme_selection": "Teema valik", "theme_selection": "Teema valik",
"theme_selection_description": "Sea automaatselt hele või tume teema vastavalt veebilehitseja eelistustele", "theme_selection_description": "Sea automaatselt hele või tume teema vastavalt veebilehitseja eelistustele",
"theme_setting_asset_list_storage_indicator_title": "Kuva üksuste ruutudel talletusindikaatorit",
"theme_setting_asset_list_tiles_per_row_title": "Üksuste arv reas ({count})",
"theme_setting_colorful_interface_subtitle": "Rakenda taustapindadele põhivärv.",
"theme_setting_colorful_interface_title": "Värviline kasutajaliides",
"theme_setting_image_viewer_quality_subtitle": "Kohanda detailvaaturi kvaliteeti",
"theme_setting_image_viewer_quality_title": "Pildivaaturi kvaliteet",
"theme_setting_primary_color_subtitle": "Vali värv põhitegevuste ja aktsentide jaoks.",
"theme_setting_primary_color_title": "Põhivärv", "theme_setting_primary_color_title": "Põhivärv",
"theme_setting_system_primary_color_title": "Kasuta süsteemset värvi", "theme_setting_system_primary_color_title": "Kasuta süsteemset värvi",
"theme_setting_system_theme_switch": "Automaatne (järgi süsteemi seadet)", "theme_setting_system_theme_switch": "Automaatne (järgi süsteemi seadet)",
"theme_setting_theme_subtitle": "Vali rakenduse teema seade",
"theme_setting_three_stage_loading_subtitle": "Kolmeastmeline laadimine võib parandada laadimise jõudlust, aga põhjustab oluliselt suuremat võrgukoormust",
"theme_setting_three_stage_loading_title": "Luba kolmeastmeline laadimine",
"they_will_be_merged_together": "Nad ühendatakse kokku", "they_will_be_merged_together": "Nad ühendatakse kokku",
"third_party_resources": "Kolmanda osapoole ressursid", "third_party_resources": "Kolmanda osapoole ressursid",
"time_based_memories": "Ajapõhised mälestused", "time_based_memories": "Ajapõhised mälestused",
@@ -1811,19 +1497,12 @@
"trash_all": "Kõik prügikasti", "trash_all": "Kõik prügikasti",
"trash_count": "Liiguta {count, number} prügikasti", "trash_count": "Liiguta {count, number} prügikasti",
"trash_delete_asset": "Kustuta üksus", "trash_delete_asset": "Kustuta üksus",
"trash_emptied": "Prügikast tühjendatud",
"trash_no_results_message": "Siia ilmuvad prügikasti liigutatud fotod ja videod.", "trash_no_results_message": "Siia ilmuvad prügikasti liigutatud fotod ja videod.",
"trash_page_delete_all": "Kustuta kõik", "trash_page_delete_all": "Kustuta kõik",
"trash_page_empty_trash_dialog_content": "Kas soovid prügikasti liigutatud üksused kustutada? Need eemaldatakse Immich'ist jäädavalt",
"trash_page_info": "Prügikasti liigutatud üksused kustutatakse jäädavalt {days} päeva pärast",
"trash_page_no_assets": "Prügikastis üksuseid pole",
"trash_page_restore_all": "Taasta kõik", "trash_page_restore_all": "Taasta kõik",
"trash_page_select_assets_btn": "Vali üksused", "trash_page_select_assets_btn": "Vali üksused",
"trash_page_title": "Prügikast ({count})",
"trashed_items_will_be_permanently_deleted_after": "Prügikasti tõstetud üksused kustutatakse jäädavalt {days, plural, one {# päeva} other {# päeva}} pärast.", "trashed_items_will_be_permanently_deleted_after": "Prügikasti tõstetud üksused kustutatakse jäädavalt {days, plural, one {# päeva} other {# päeva}} pärast.",
"type": "Tüüp", "type": "Tüüp",
"unable_to_change_pin_code": "PIN-koodi muutmine ebaõnnestus",
"unable_to_setup_pin_code": "PIN-koodi seadistamine ebaõnnestus",
"unarchive": "Taasta arhiivist", "unarchive": "Taasta arhiivist",
"unarchived_count": "{count, plural, other {# arhiivist taastatud}}", "unarchived_count": "{count, plural, other {# arhiivist taastatud}}",
"unfavorite": "Eemalda lemmikutest", "unfavorite": "Eemalda lemmikutest",
@@ -1847,12 +1526,9 @@
"untracked_files": "Mittejälgitavad failid", "untracked_files": "Mittejälgitavad failid",
"untracked_files_decription": "Rakendus ei jälgi neid faile. Need võivad olla põhjustatud ebaõnnestunud liigutamisest, katkestatud üleslaadimisest või rakenduse veast", "untracked_files_decription": "Rakendus ei jälgi neid faile. Need võivad olla põhjustatud ebaõnnestunud liigutamisest, katkestatud üleslaadimisest või rakenduse veast",
"up_next": "Järgmine", "up_next": "Järgmine",
"updated_at": "Uuendatud",
"updated_password": "Parool muudetud", "updated_password": "Parool muudetud",
"upload": "Laadi üles", "upload": "Laadi üles",
"upload_concurrency": "Üleslaadimise samaaegsus", "upload_concurrency": "Üleslaadimise samaaegsus",
"upload_dialog_info": "Kas soovid valitud üksuse(d) serverisse varundada?",
"upload_dialog_title": "Üksuse üleslaadimine",
"upload_errors": "Üleslaadimine lõpetatud {count, plural, one {# veaga} other {# veaga}}, uute üksuste nägemiseks värskenda lehte.", "upload_errors": "Üleslaadimine lõpetatud {count, plural, one {# veaga} other {# veaga}}, uute üksuste nägemiseks värskenda lehte.",
"upload_progress": "Ootel {remaining, number} - Töödeldud {processed, number}/{total, number}", "upload_progress": "Ootel {remaining, number} - Töödeldud {processed, number}/{total, number}",
"upload_skipped_duplicates": "{count, plural, one {# dubleeritud üksus} other {# dubleeritud üksust}} vahele jäetud", "upload_skipped_duplicates": "{count, plural, one {# dubleeritud üksus} other {# dubleeritud üksust}} vahele jäetud",
@@ -1860,18 +1536,13 @@
"upload_status_errors": "Vead", "upload_status_errors": "Vead",
"upload_status_uploaded": "Üleslaaditud", "upload_status_uploaded": "Üleslaaditud",
"upload_success": "Üleslaadimine õnnestus, uute üksuste nägemiseks värskenda lehte.", "upload_success": "Üleslaadimine õnnestus, uute üksuste nägemiseks värskenda lehte.",
"upload_to_immich": "Laadi Immich'isse ({count})",
"uploading": "Üleslaadimine", "uploading": "Üleslaadimine",
"url": "URL", "url": "URL",
"usage": "Kasutus", "usage": "Kasutus",
"use_current_connection": "kasuta praegust ühendust",
"use_custom_date_range": "Kasuta kohandatud kuupäevavahemikku", "use_custom_date_range": "Kasuta kohandatud kuupäevavahemikku",
"user": "Kasutaja", "user": "Kasutaja",
"user_has_been_deleted": "See kasutaja on kustutatud.",
"user_id": "Kasutaja ID", "user_id": "Kasutaja ID",
"user_liked": "Kasutajale {user} meeldis {type, select, photo {see foto} video {see video} asset {see üksus} other {see}}", "user_liked": "Kasutajale {user} meeldis {type, select, photo {see foto} video {see video} asset {see üksus} other {see}}",
"user_pin_code_settings": "PIN-kood",
"user_pin_code_settings_description": "Halda oma PIN-koodi",
"user_purchase_settings": "Ost", "user_purchase_settings": "Ost",
"user_purchase_settings_description": "Halda oma ostu", "user_purchase_settings_description": "Halda oma ostu",
"user_role_set": "Määra kasutajale {user} roll {role}", "user_role_set": "Määra kasutajale {user} roll {role}",
@@ -1882,16 +1553,10 @@
"users": "Kasutajad", "users": "Kasutajad",
"utilities": "Tööriistad", "utilities": "Tööriistad",
"validate": "Valideeri", "validate": "Valideeri",
"validate_endpoint_error": "Sisesta korrektne URL",
"variables": "Muutujad", "variables": "Muutujad",
"version": "Versioon", "version": "Versioon",
"version_announcement_closing": "Sinu sõber, Alex", "version_announcement_closing": "Sinu sõber, Alex",
"version_announcement_message": "Hei! Saadaval on uus Immich'i versioon. Palun võta aega, et lugeda <link>väljalasketeadet</link> ning veendu, et su seadistus on ajakohane, et vältida konfiguratsiooniprobleeme, eriti kui kasutad WatchTower'it või muud mehhanismi, mis Immich'it automaatselt uuendab.", "version_announcement_message": "Hei! Saadaval on uus Immich'i versioon. Palun võta aega, et lugeda <link>väljalasketeadet</link> ning veendu, et su seadistus on ajakohane, et vältida konfiguratsiooniprobleeme, eriti kui kasutad WatchTower'it või muud mehhanismi, mis Immich'it automaatselt uuendab.",
"version_announcement_overlay_release_notes": "väljalasketeadet",
"version_announcement_overlay_text_1": "Hei sõber, on saadaval uus versioon rakendusest",
"version_announcement_overlay_text_2": "palun võta aega, et lugeda ",
"version_announcement_overlay_text_3": " ning veendu, et su docker-compose ja .env seadistus on ajakohane, et vältida konfiguratsiooniprobleeme, eriti kui kasutad WatchTower'it või muud mehhanismi, mis serveripoolset rakendust automaatselt uuendab.",
"version_announcement_overlay_title": "Uus serveri versioon saadaval 🎉",
"version_history": "Versiooniajalugu", "version_history": "Versiooniajalugu",
"version_history_item": "Versioon {version} paigaldatud {date}", "version_history_item": "Versioon {version} paigaldatud {date}",
"video": "Video", "video": "Video",
@@ -1912,7 +1577,6 @@
"view_qr_code": "Vaata QR-koodi", "view_qr_code": "Vaata QR-koodi",
"view_stack": "Vaata virna", "view_stack": "Vaata virna",
"viewer_remove_from_stack": "Eemalda virnast", "viewer_remove_from_stack": "Eemalda virnast",
"viewer_stack_use_as_main_asset": "Kasuta peamise üksusena",
"viewer_unstack": "Eralda", "viewer_unstack": "Eralda",
"visibility_changed": "{count, plural, one {# isiku} other {# isiku}} nähtavus muudetud", "visibility_changed": "{count, plural, one {# isiku} other {# isiku}} nähtavus muudetud",
"waiting": "Ootel", "waiting": "Ootel",

View File

@@ -1,18 +1 @@
{ {}
"active": "Martxan",
"add": "Gehitu",
"add_a_description": "Azalpena gehitu",
"add_a_name": "Izena gehitu",
"add_a_title": "Izenburua gehitu",
"add_more_users": "Erabiltzaile gehiago gehitu",
"add_photos": "Argazkiak gehitu",
"add_to_album": "Albumera gehitu",
"add_to_album_bottom_sheet_already_exists": "Dagoeneko {album} albumenean",
"add_to_shared_album": "Gehitu partekatutako albumera",
"add_url": "URL-a gehitu",
"added_to_favorites": "Faboritoetara gehituta",
"admin": {
"cleanup": "Garbiketa",
"image_quality": "Kalitatea"
}
}

View File

@@ -4,7 +4,6 @@
"account_settings": "تنظیمات حساب کاربری", "account_settings": "تنظیمات حساب کاربری",
"acknowledge": "متوجه شدم", "acknowledge": "متوجه شدم",
"action": "عملکرد", "action": "عملکرد",
"action_common_update": "به‌ روز‌رسانی",
"actions": "عملکرد", "actions": "عملکرد",
"active": "فعال", "active": "فعال",
"activity": "فعالیت", "activity": "فعالیت",
@@ -154,13 +153,20 @@
"oauth_auto_register": "ثبت خودکار", "oauth_auto_register": "ثبت خودکار",
"oauth_auto_register_description": "کاربران جدید را پس از ورود با OAuth به طور خودکار ثبت نام کن", "oauth_auto_register_description": "کاربران جدید را پس از ورود با OAuth به طور خودکار ثبت نام کن",
"oauth_button_text": "متن دکمه", "oauth_button_text": "متن دکمه",
"oauth_client_id": "شناسه کاربر",
"oauth_client_secret": "شناسه محرمانه کاربر",
"oauth_enable_description": "ورود توسط OAuth", "oauth_enable_description": "ورود توسط OAuth",
"oauth_issuer_url": "نشانی وب صادر کننده",
"oauth_mobile_redirect_uri": "تغییر مسیر URI موبایل", "oauth_mobile_redirect_uri": "تغییر مسیر URI موبایل",
"oauth_mobile_redirect_uri_override": "تغییر مسیر URI تلفن همراه", "oauth_mobile_redirect_uri_override": "تغییر مسیر URI تلفن همراه",
"oauth_mobile_redirect_uri_override_description": "زمانی که 'app.immich:/' یک URI پرش نامعتبر است، فعال کنید.", "oauth_mobile_redirect_uri_override_description": "زمانی که 'app.immich:/' یک URI پرش نامعتبر است، فعال کنید.",
"oauth_profile_signing_algorithm": "الگوریتم امضای پروفایل",
"oauth_profile_signing_algorithm_description": "الگوریتم مورد استفاده برای امضای پروفایل کاربر.",
"oauth_scope": "محدوده",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "مدیریت تنظیمات ورود به سیستم OAuth", "oauth_settings_description": "مدیریت تنظیمات ورود به سیستم OAuth",
"oauth_settings_more_details": "برای جزئیات بیشتر در مورد این ویژگی، به <link>مستندات</link> مراجعه کنید.", "oauth_settings_more_details": "برای جزئیات بیشتر در مورد این ویژگی، به <link>مستندات</link> مراجعه کنید.",
"oauth_signing_algorithm": "الگوریتم امضا",
"oauth_storage_label_claim": "درخواست برچسب فضای ذخیره سازی", "oauth_storage_label_claim": "درخواست برچسب فضای ذخیره سازی",
"oauth_storage_label_claim_description": "تنظیم خودکار برچسب فضای ذخیره‌سازی کاربر به مقدار درخواست شده.", "oauth_storage_label_claim_description": "تنظیم خودکار برچسب فضای ذخیره‌سازی کاربر به مقدار درخواست شده.",
"oauth_storage_quota_claim": "درخواست سهمیه فضای ذخیره سازی", "oauth_storage_quota_claim": "درخواست سهمیه فضای ذخیره سازی",

File diff suppressed because it is too large Load Diff

View File

@@ -39,11 +39,11 @@
"authentication_settings_disable_all": "Êtes-vous sûr de vouloir désactiver toutes les méthodes de connexion? La connexion sera complètement désactivée.", "authentication_settings_disable_all": "Êtes-vous sûr de vouloir désactiver toutes les méthodes de connexion? La connexion sera complètement désactivée.",
"authentication_settings_reenable": "Pour réactiver, utilisez une <link>Commande Serveur</link>.", "authentication_settings_reenable": "Pour réactiver, utilisez une <link>Commande Serveur</link>.",
"background_task_job": "Tâches de fond", "background_task_job": "Tâches de fond",
"backup_database": "Création d'une image de la base de données", "backup_database": "Sauvegarde de la base de données",
"backup_database_enable_description": "Activer la création d'images de la base de données", "backup_database_enable_description": "Activer la sauvegarde",
"backup_keep_last_amount": "Nombre d'images à conserver", "backup_keep_last_amount": "Nombre de sauvegardes à conserver",
"backup_settings": "Paramètres de création d'images de la base de données", "backup_settings": "Paramètres de la sauvegarde",
"backup_settings_description": "Gérer les paramètres de création d'images de la base de données. Note : ces tâches ne sont pas contrôlées et vous ne serez pas averti(e) en cas d'échec.", "backup_settings_description": "Gérer les paramètres de la sauvegarde",
"check_all": "Tout cocher", "check_all": "Tout cocher",
"cleanup": "Nettoyage", "cleanup": "Nettoyage",
"cleared_jobs": "Tâches supprimées pour : {job}", "cleared_jobs": "Tâches supprimées pour : {job}",
@@ -53,7 +53,6 @@
"confirm_email_below": "Pour confirmer, tapez « {email} » ci-dessous", "confirm_email_below": "Pour confirmer, tapez « {email} » ci-dessous",
"confirm_reprocess_all_faces": "Êtes-vous sûr de vouloir retraiter tous les visages? Cela effacera également les personnes déjà identifiées.", "confirm_reprocess_all_faces": "Êtes-vous sûr de vouloir retraiter tous les visages? Cela effacera également les personnes déjà identifiées.",
"confirm_user_password_reset": "Êtes-vous sûr de vouloir réinitialiser le mot de passe de {user}?", "confirm_user_password_reset": "Êtes-vous sûr de vouloir réinitialiser le mot de passe de {user}?",
"confirm_user_pin_code_reset": "Êtes-vous sûr de vouloir réinitialiser le code PIN de l'utilisateur {user}?",
"create_job": "Créer une tâche", "create_job": "Créer une tâche",
"cron_expression": "Expression cron", "cron_expression": "Expression cron",
"cron_expression_description": "Définir l'intervalle d'analyse à l'aide d'une expression cron. Pour plus d'informations, voir <link>Crontab Guru</link>", "cron_expression_description": "Définir l'intervalle d'analyse à l'aide d'une expression cron. Pour plus d'informations, voir <link>Crontab Guru</link>",
@@ -64,7 +63,7 @@
"external_library_created_at": "Bibliothèque externe (créée le {date})", "external_library_created_at": "Bibliothèque externe (créée le {date})",
"external_library_management": "Gestion de la bibliothèque externe", "external_library_management": "Gestion de la bibliothèque externe",
"face_detection": "Détection des visages", "face_detection": "Détection des visages",
"face_detection_description": "Détection des visages dans les médias à l'aide de l'apprentissage automatique. Pour les vidéos, seule la miniature est prise en compte. « Actualiser » (re)traite tous les médias. « Réinitialiser » retraite tous les visages en repartant de zéro. « Manquant » met en file d'attente les médias qui n'ont pas encore été traités. Lorsque la détection est terminée, les visages détectés seront mis en file d'attente pour la reconnaissance faciale.", "face_detection_description": "Détection des visages dans les médias à l'aide de l'apprentissage automatique. Pour les vidéos, seule la miniature est prise en compte. « Actualiser » (re)traite tous les médias. « Réinitialiser » retraite tous les médias en repartant de zéro. « Manquant » met en file d'attente les médias qui n'ont pas encore été pris en compte. Lorsque la détection est terminée, tous les visages détectés sont ensuite mis en file d'attente pour la reconnaissance faciale.",
"facial_recognition_job_description": "Regrouper les visages détectés en personnes. Cette étape est exécutée une fois la détection des visages terminée. « Réinitialiser » (re)regroupe tous les visages. « Manquant » met en file d'attente les visages auxquels aucune personne n'a été attribuée.", "facial_recognition_job_description": "Regrouper les visages détectés en personnes. Cette étape est exécutée une fois la détection des visages terminée. « Réinitialiser » (re)regroupe tous les visages. « Manquant » met en file d'attente les visages auxquels aucune personne n'a été attribuée.",
"failed_job_command": "La commande {command} a échoué pour la tâche: {job}", "failed_job_command": "La commande {command} a échoué pour la tâche: {job}",
"force_delete_user_warning": "ATTENTION: Cette opération entraîne la suppression immédiate de l'utilisateur et de tous ses médias. Cette opération ne peut être annulée et les fichiers ne peuvent être récupérés.", "force_delete_user_warning": "ATTENTION: Cette opération entraîne la suppression immédiate de l'utilisateur et de tous ses médias. Cette opération ne peut être annulée et les fichiers ne peuvent être récupérés.",
@@ -170,7 +169,7 @@
"migration_job_description": "Migration des miniatures pour les médias et les visages vers la dernière structure de dossiers", "migration_job_description": "Migration des miniatures pour les médias et les visages vers la dernière structure de dossiers",
"no_paths_added": "Aucun chemin n'a été ajouté", "no_paths_added": "Aucun chemin n'a été ajouté",
"no_pattern_added": "Aucun schéma d'exclusion n'a été ajouté", "no_pattern_added": "Aucun schéma d'exclusion n'a été ajouté",
"note_apply_storage_label_previous_assets": "Remarque : pour appliquer l'étiquette de stockage à des médias précédemment téléversés, exécutez", "note_apply_storage_label_previous_assets": "Remarque: pour appliquer l'étiquette de stockage à des médias précédemment envoyés, exécutez la commande",
"note_cannot_be_changed_later": "REMARQUE: Il n'est pas possible de modifier ce paramètre ultérieurement!", "note_cannot_be_changed_later": "REMARQUE: Il n'est pas possible de modifier ce paramètre ultérieurement!",
"notification_email_from_address": "Depuis l'adresse", "notification_email_from_address": "Depuis l'adresse",
"notification_email_from_address_description": "Adresse courriel de l'expéditeur, par exemple: « Serveur de photos Immich <nepasrepondre@exemple.org> »", "notification_email_from_address_description": "Adresse courriel de l'expéditeur, par exemple: « Serveur de photos Immich <nepasrepondre@exemple.org> »",
@@ -193,22 +192,26 @@
"oauth_auto_register": "Inscription automatique", "oauth_auto_register": "Inscription automatique",
"oauth_auto_register_description": "Inscrire automatiquement de nouveaux utilisateurs après leur connexion avec OAuth", "oauth_auto_register_description": "Inscrire automatiquement de nouveaux utilisateurs après leur connexion avec OAuth",
"oauth_button_text": "Texte du bouton", "oauth_button_text": "Texte du bouton",
"oauth_client_secret_description": "Nécessaire si le protocole PKCE (Proof Key for Code Exchange) n'est pas supporté mar le fournisseur d'authentification OAuth", "oauth_client_id": "ID du client",
"oauth_client_secret": "Secret du client",
"oauth_enable_description": "Connexion avec OAuth", "oauth_enable_description": "Connexion avec OAuth",
"oauth_issuer_url": "URL de l'émetteur",
"oauth_mobile_redirect_uri": "URI de redirection mobile", "oauth_mobile_redirect_uri": "URI de redirection mobile",
"oauth_mobile_redirect_uri_override": "Remplacer l'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_mobile_redirect_uri_override_description": "Activer quand le fournisseur d'OAuth ne permet pas un URI mobile, comme '{callback} '",
"oauth_profile_signing_algorithm": "Algorithme de signature de profil",
"oauth_profile_signing_algorithm_description": "Algorithme utilisé pour signer le profil utilisateur.",
"oauth_scope": "Périmètre",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "Gérer les paramètres de connexion OAuth", "oauth_settings_description": "Gérer les paramètres de connexion OAuth",
"oauth_settings_more_details": "Pour plus de détails sur cette fonctionnalité, consultez <link>ce lien</link>.", "oauth_settings_more_details": "Pour plus de détails sur cette fonctionnalité, consultez <link>ce lien</link>.",
"oauth_signing_algorithm": "Algorithme de signature",
"oauth_storage_label_claim": "Demande d'étiquette de stockage", "oauth_storage_label_claim": "Demande d'étiquette de stockage",
"oauth_storage_label_claim_description": "Définir automatiquement l'étiquette de stockage de l'utilisateur sur la valeur de cette revendication.", "oauth_storage_label_claim_description": "Définir automatiquement l'étiquette de stockage de l'utilisateur sur la valeur de cette revendication.",
"oauth_storage_quota_claim": "Demande de quota de stockage", "oauth_storage_quota_claim": "Demande de quota de stockage",
"oauth_storage_quota_claim_description": "Définir automatiquement le quota de stockage de l'utilisateur par la valeur de cette demande.", "oauth_storage_quota_claim_description": "Définir automatiquement le quota de stockage de l'utilisateur par la valeur de cette demande.",
"oauth_storage_quota_default": "Quota de stockage par défaut (Go)", "oauth_storage_quota_default": "Quota de stockage par défaut (Go)",
"oauth_storage_quota_default_description": "Quota en Go à utiliser lorsqu'aucune valeur n'est précisée (saisir 0 pour un quota illimité).", "oauth_storage_quota_default_description": "Quota en Go à utiliser lorsqu'aucune valeur n'est précisée (saisir 0 pour un quota illimité).",
"oauth_timeout": "Expiration de la durée de la requête",
"oauth_timeout_description": "Délai d'expiration des requêtes en millisecondes",
"offline_paths": "Chemins d'accès hors ligne", "offline_paths": "Chemins d'accès hors ligne",
"offline_paths_description": "Ces résultats peuvent être dus à la suppression manuelle de fichiers qui ne font pas partie d'une bibliothèque externe.", "offline_paths_description": "Ces résultats peuvent être dus à la suppression manuelle de fichiers qui ne font pas partie d'une bibliothèque externe.",
"password_enable_description": "Connexion avec courriel et mot de passe", "password_enable_description": "Connexion avec courriel et mot de passe",
@@ -247,14 +250,14 @@
"storage_template_hash_verification_enabled": "Vérification du hachage activée", "storage_template_hash_verification_enabled": "Vérification du hachage activée",
"storage_template_hash_verification_enabled_description": "Active la vérification du hachage, ne désactivez pas cette option à moins d'être sûr de ce que vous faites", "storage_template_hash_verification_enabled_description": "Active la vérification du hachage, ne désactivez pas cette option à moins d'être sûr de ce que vous faites",
"storage_template_migration": "Migration du modèle de stockage", "storage_template_migration": "Migration du modèle de stockage",
"storage_template_migration_description": "Appliquer le modèle courant <link>{template}</link> aux médias précédemment téléversés", "storage_template_migration_description": "Appliquer le modèle courant <link>{template}</link> aux médias précédemment envoyés",
"storage_template_migration_info": "L'enregistrement des modèles va convertir toutes les extensions en minuscule. Les changements de modèle ne s'appliqueront qu'aux nouveaux médias. Pour appliquer rétroactivement le modèle aux médias précédemment téléversés, exécutez la tâche <link>{job}</link>.", "storage_template_migration_info": "L'enregistrement des modèles convertit toutes les extensions en minuscule. Les changements de modèle ne s'appliqueront qu'aux nouveaux médias. Pour appliquer rétroactivement le modèle aux médias précédemment envoyés, exécutez la tâche <link>{job}</link>.",
"storage_template_migration_job": "Tâche de migration du modèle de stockage", "storage_template_migration_job": "Tâche de migration du modèle de stockage",
"storage_template_more_details": "Pour plus de détails sur cette fonctionnalité, reportez-vous au <template-link>Modèle de stockage</template-link> et à ses <implications-link>implications</implications-link>", "storage_template_more_details": "Pour plus de détails sur cette fonctionnalité, reportez-vous au <template-link>Modèle de stockage</template-link> et à ses <implications-link>implications</implications-link>",
"storage_template_onboarding_description": "Lorsqu'elle est activée, cette fonctionnalité réorganise les fichiers basés sur un modèle défini par l'utilisateur. En raison de problèmes de stabilité, la fonction a été désactivée par défaut. Pour plus d'informations, veuillez consulter la <link>documentation</link>.", "storage_template_onboarding_description": "Lorsqu'elle est activée, cette fonctionnalité réorganise les fichiers basés sur un modèle défini par l'utilisateur. En raison de problèmes de stabilité, la fonction a été désactivée par défaut. Pour plus d'informations, veuillez consulter la <link>documentation</link>.",
"storage_template_path_length": "Limite approximative de la longueur du chemin: <b>{length, number}</b>/{limit, number}", "storage_template_path_length": "Limite approximative de la longueur du chemin: <b>{length, number}</b>/{limit, number}",
"storage_template_settings": "Modèle de stockage", "storage_template_settings": "Modèle de stockage",
"storage_template_settings_description": "Gérer la structure des dossiers et le nom des fichiers du média téléversé", "storage_template_settings_description": "Gérer la structure des dossiers et le nom des fichiers du média envoyé",
"storage_template_user_label": "<code>{label}</code> est l'étiquette de stockage de l'utilisateur", "storage_template_user_label": "<code>{label}</code> est l'étiquette de stockage de l'utilisateur",
"system_settings": "Paramètres du système", "system_settings": "Paramètres du système",
"tag_cleanup_job": "Nettoyage des étiquettes", "tag_cleanup_job": "Nettoyage des étiquettes",
@@ -342,14 +345,13 @@
"trash_settings": "Corbeille", "trash_settings": "Corbeille",
"trash_settings_description": "Gérer les paramètres de la corbeille", "trash_settings_description": "Gérer les paramètres de la corbeille",
"untracked_files": "Fichiers non suivis", "untracked_files": "Fichiers non suivis",
"untracked_files_description": "Ces fichiers ne sont pas suivis par l'application. Ils peuvent être le résultat d'échecs de déplacement, de téléversements interrompus, ou d'abandons en raison d'un bug", "untracked_files_description": "Ces fichiers ne sont pas suivis par l'application. Ils peuvent être le résultat d'échecs de déplacement, d'envois interrompus, ou d'abandons en raison d'un bug",
"user_cleanup_job": "Nettoyage des utilisateurs", "user_cleanup_job": "Nettoyage des utilisateurs",
"user_delete_delay": "La suppression définitive du compte et des médias de <b>{user}</b> sera programmée dans {delay, plural, one {# jour} other {# jours}}.", "user_delete_delay": "La suppression définitive du compte et des médias de <b>{user}</b> sera programmée dans {delay, plural, one {# jour} other {# jours}}.",
"user_delete_delay_settings": "Délai de suppression", "user_delete_delay_settings": "Délai de suppression",
"user_delete_delay_settings_description": "Nombre de jours après la validation pour supprimer définitivement le compte et les médias d'un utilisateur. La suppression des utilisateurs se lance à minuit. Les modifications apportées à ce paramètre seront pris en compte lors de la prochaine exécution.", "user_delete_delay_settings_description": "Nombre de jours après la validation pour supprimer définitivement le compte et les médias d'un utilisateur. La suppression des utilisateurs se lance à minuit. Les modifications apportées à ce paramètre seront pris en compte lors de la prochaine exécution.",
"user_delete_immediately": "Le compte et les médias de <b>{user}</b> seront mis en file d'attente en vue d'une suppression permanente <b>immédiatement</b>.", "user_delete_immediately": "Le compte et les médias de <b>{user}</b> seront mis en file d'attente en vue d'une suppression permanente <b>immédiatement</b>.",
"user_delete_immediately_checkbox": "Mise en file d'attente d'un utilisateur et de médias en vue d'une suppression immédiate", "user_delete_immediately_checkbox": "Mise en file d'attente d'un utilisateur et de médias en vue d'une suppression immédiate",
"user_details": "Détails utilisateur",
"user_management": "Gestion des utilisateurs", "user_management": "Gestion des utilisateurs",
"user_password_has_been_reset": "Le mot de passe de l'utilisateur a été réinitialisé:", "user_password_has_been_reset": "Le mot de passe de l'utilisateur a été réinitialisé:",
"user_password_reset_description": "Veuillez fournir le mot de passe temporaire à l'utilisateur et informez-le qu'il devra le changer à sa première connexion.", "user_password_reset_description": "Veuillez fournir le mot de passe temporaire à l'utilisateur et informez-le qu'il devra le changer à sa première connexion.",
@@ -370,8 +372,8 @@
"administration": "Administration", "administration": "Administration",
"advanced": "Avancé", "advanced": "Avancé",
"advanced_settings_enable_alternate_media_filter_subtitle": "Utilisez cette option pour filtrer les média durant la synchronisation avec des critères alternatifs. N'utilisez cela que lorsque l'application n'arrive pas à détecter tout les albums.", "advanced_settings_enable_alternate_media_filter_subtitle": "Utilisez cette option pour filtrer les média durant la synchronisation avec des critères alternatifs. N'utilisez cela que lorsque l'application n'arrive pas à détecter tout les albums.",
"advanced_settings_enable_alternate_media_filter_title": "[EXPÉRIMENTAL] Utiliser le filtre de synchronisation d'album alternatif", "advanced_settings_enable_alternate_media_filter_title": "[EXEPRIMENTAL] Utiliser le filtre de synchronisation d'album alternatif",
"advanced_settings_log_level_title": "Niveau de journalisation : {level}", "advanced_settings_log_level_title": "Niveau de journalisation : {}",
"advanced_settings_prefer_remote_subtitle": "Certains appareils sont très lents à charger des miniatures à partir de ressources présentes sur l'appareil. Activez ce paramètre pour charger des images externes à la place.", "advanced_settings_prefer_remote_subtitle": "Certains appareils sont très lents à charger des miniatures à partir de ressources présentes sur l'appareil. Activez ce paramètre pour charger des images externes à la place.",
"advanced_settings_prefer_remote_title": "Préférer les images externes", "advanced_settings_prefer_remote_title": "Préférer les images externes",
"advanced_settings_proxy_headers_subtitle": "Ajoutez des en-têtes personnalisés à chaque requête réseau", "advanced_settings_proxy_headers_subtitle": "Ajoutez des en-têtes personnalisés à chaque requête réseau",
@@ -379,7 +381,7 @@
"advanced_settings_self_signed_ssl_subtitle": "Permet d'ignorer la vérification du certificat SSL pour le point d'accès du serveur. Requis pour les certificats auto-signés.", "advanced_settings_self_signed_ssl_subtitle": "Permet d'ignorer la vérification du certificat SSL pour le point d'accès du serveur. Requis pour les certificats auto-signés.",
"advanced_settings_self_signed_ssl_title": "Autoriser les certificats SSL auto-signés", "advanced_settings_self_signed_ssl_title": "Autoriser les certificats SSL auto-signés",
"advanced_settings_sync_remote_deletions_subtitle": "Supprimer ou restaurer automatiquement un média sur cet appareil lorsqu'une action a été faite sur le web", "advanced_settings_sync_remote_deletions_subtitle": "Supprimer ou restaurer automatiquement un média sur cet appareil lorsqu'une action a été faite sur le web",
"advanced_settings_sync_remote_deletions_title": "Synchroniser les suppressions depuis le serveur [EXPÉRIMENTAL]", "advanced_settings_sync_remote_deletions_title": "Synchroniser les suppressions depuis le serveur [EXPERIMENTAL]",
"advanced_settings_tile_subtitle": "Paramètres d'utilisateur avancés", "advanced_settings_tile_subtitle": "Paramètres d'utilisateur avancés",
"advanced_settings_troubleshooting_subtitle": "Activer des fonctions supplémentaires pour le dépannage", "advanced_settings_troubleshooting_subtitle": "Activer des fonctions supplémentaires pour le dépannage",
"advanced_settings_troubleshooting_title": "Dépannage", "advanced_settings_troubleshooting_title": "Dépannage",
@@ -402,9 +404,9 @@
"album_remove_user_confirmation": "Êtes-vous sûr de vouloir supprimer {user}?", "album_remove_user_confirmation": "Êtes-vous sûr de vouloir supprimer {user}?",
"album_share_no_users": "Il semble que vous ayez partagé cet album avec tous les utilisateurs ou que vous n'ayez aucun utilisateur avec lequel le partager.", "album_share_no_users": "Il semble que vous ayez partagé cet album avec tous les utilisateurs ou que vous n'ayez aucun utilisateur avec lequel le partager.",
"album_thumbnail_card_item": "1 élément", "album_thumbnail_card_item": "1 élément",
"album_thumbnail_card_items": "{count} éléments", "album_thumbnail_card_items": "{} éléments",
"album_thumbnail_card_shared": " · Partagé", "album_thumbnail_card_shared": " · Partagé",
"album_thumbnail_shared_by": "Partagé par {user}", "album_thumbnail_shared_by": "Partagé par {}",
"album_updated": "Album mis à jour", "album_updated": "Album mis à jour",
"album_updated_setting_description": "Recevoir une notification par courriel lorsqu'un album partagé a de nouveaux médias", "album_updated_setting_description": "Recevoir une notification par courriel lorsqu'un album partagé a de nouveaux médias",
"album_user_left": "{album} quitté", "album_user_left": "{album} quitté",
@@ -427,14 +429,14 @@
"allow_dark_mode": "Autoriser le mode sombre", "allow_dark_mode": "Autoriser le mode sombre",
"allow_edits": "Autoriser les modifications", "allow_edits": "Autoriser les modifications",
"allow_public_user_to_download": "Permettre aux utilisateurs non connectés de télécharger", "allow_public_user_to_download": "Permettre aux utilisateurs non connectés de télécharger",
"allow_public_user_to_upload": "Permettre le téléversement aux utilisateurs non connectés", "allow_public_user_to_upload": "Permettre l'envoi aux utilisateurs non connectés",
"alt_text_qr_code": "Image du code QR", "alt_text_qr_code": "Image du code QR",
"anti_clockwise": "Sens anti-horaire", "anti_clockwise": "Sens anti-horaire",
"api_key": "Clé API", "api_key": "Clé API",
"api_key_description": "Cette valeur ne sera affichée qu'une seule fois. Assurez-vous de la copier avant de fermer la fenêtre.", "api_key_description": "Cette valeur ne sera affichée qu'une seule fois. Assurez-vous de la copier avant de fermer la fenêtre.",
"api_key_empty": "Le nom de votre clé API ne doit pas être vide", "api_key_empty": "Le nom de votre clé API ne doit pas être vide",
"api_keys": "Clés d'API", "api_keys": "Clés d'API",
"app_bar_signout_dialog_content": "Êtes-vous sûr(e) de vouloir vous déconnecter?", "app_bar_signout_dialog_content": "Êtes-vous sûr de vouloir vous déconnecter?",
"app_bar_signout_dialog_ok": "Oui", "app_bar_signout_dialog_ok": "Oui",
"app_bar_signout_dialog_title": "Se déconnecter", "app_bar_signout_dialog_title": "Se déconnecter",
"app_settings": "Paramètres de l'application", "app_settings": "Paramètres de l'application",
@@ -442,15 +444,15 @@
"archive": "Archive", "archive": "Archive",
"archive_or_unarchive_photo": "Archiver ou désarchiver une photo", "archive_or_unarchive_photo": "Archiver ou désarchiver une photo",
"archive_page_no_archived_assets": "Aucun élément archivé n'a été trouvé", "archive_page_no_archived_assets": "Aucun élément archivé n'a été trouvé",
"archive_page_title": "Archive ({count})", "archive_page_title": "Archive ({})",
"archive_size": "Taille de l'archive", "archive_size": "Taille de l'archive",
"archive_size_description": "Configurer la taille de l'archive maximale pour les téléchargements (en Go)", "archive_size_description": "Configurer la taille de l'archive maximale pour les téléchargements (en Go)",
"archived": "Archives", "archived": "Archives",
"archived_count": "{count, plural, one {# archivé} other {# archivés}}", "archived_count": "{count, plural, one {# archivé} other {# archivés}}",
"are_these_the_same_person": "Est-ce la même personne?", "are_these_the_same_person": "Est-ce la même personne?",
"are_you_sure_to_do_this": "Êtes-vous sûr de vouloir faire ceci?", "are_you_sure_to_do_this": "Êtes-vous sûr de vouloir faire ceci?",
"asset_action_delete_err_read_only": "Impossible de supprimer le(s) média(s) en lecture seule, ils sont ignorés", "asset_action_delete_err_read_only": "Impossible de supprimer le(s) élément(s) en lecture seule.",
"asset_action_share_err_offline": "Impossible de récupérer le(s) média(s) hors ligne, ils sont ignorés", "asset_action_share_err_offline": "Impossible de récupérer le(s) élément(s) hors ligne.",
"asset_added_to_album": "Ajouté à l'album", "asset_added_to_album": "Ajouté à l'album",
"asset_adding_to_album": "Ajout à l'album…", "asset_adding_to_album": "Ajout à l'album…",
"asset_description_updated": "La description du média a été mise à jour", "asset_description_updated": "La description du média a été mise à jour",
@@ -470,7 +472,7 @@
"asset_restored_successfully": "Élément restauré avec succès", "asset_restored_successfully": "Élément restauré avec succès",
"asset_skipped": "Sauté", "asset_skipped": "Sauté",
"asset_skipped_in_trash": "À la corbeille", "asset_skipped_in_trash": "À la corbeille",
"asset_uploaded": "Téléversé", "asset_uploaded": "Envoyé",
"asset_uploading": "Téléversement…", "asset_uploading": "Téléversement…",
"asset_viewer_settings_subtitle": "Modifier les paramètres du visualiseur photos", "asset_viewer_settings_subtitle": "Modifier les paramètres du visualiseur photos",
"asset_viewer_settings_title": "Visualiseur d'éléments", "asset_viewer_settings_title": "Visualiseur d'éléments",
@@ -479,18 +481,18 @@
"assets_added_to_album_count": "{count, plural, one {# média ajouté} other {# médias ajoutés}} à l'album", "assets_added_to_album_count": "{count, plural, one {# média ajouté} other {# médias ajoutés}} à l'album",
"assets_added_to_name_count": "{count, plural, one {# média ajouté} other {# médias ajoutés}} à {hasName, select, true {<b>{name}</b>} other {new album}}", "assets_added_to_name_count": "{count, plural, one {# média ajouté} other {# médias ajoutés}} à {hasName, select, true {<b>{name}</b>} other {new album}}",
"assets_count": "{count, plural, one {# média} other {# médias}}", "assets_count": "{count, plural, one {# média} other {# médias}}",
"assets_deleted_permanently": "{count} média(s) supprimé(s) définitivement", "assets_deleted_permanently": "{} élément(s) supprimé(s) définitivement",
"assets_deleted_permanently_from_server": "{count} média(s) supprimé(s) définitivement du serveur Immich", "assets_deleted_permanently_from_server": "{} élément(s) supprimé(s) définitivement du serveur Immich",
"assets_moved_to_trash_count": "{count, plural, one {# média déplacé} other {# médias déplacés}} dans la corbeille", "assets_moved_to_trash_count": "{count, plural, one {# média déplacé} other {# médias déplacés}} dans la corbeille",
"assets_permanently_deleted_count": "{count, plural, one {# média supprimé} other {# médias supprimés}} définitivement", "assets_permanently_deleted_count": "{count, plural, one {# média supprimé} other {# médias supprimés}} définitivement",
"assets_removed_count": "{count, plural, one {# média supprimé} other {# médias supprimés}}", "assets_removed_count": "{count, plural, one {# média supprimé} other {# médias supprimés}}",
"assets_removed_permanently_from_device": "{count} média(s) supprimé(s) définitivement de votre appareil", "assets_removed_permanently_from_device": "{} élément(s) supprimé(s) définitivement de votre appareil",
"assets_restore_confirmation": "Êtes-vous sûr de vouloir restaurer tous vos médias de la corbeille? Vous ne pouvez pas annuler cette action! Notez que les médias hors ligne ne peuvent être restaurés de cette façon.", "assets_restore_confirmation": "Êtes-vous sûr de vouloir restaurer tous vos médias de la corbeille? Vous ne pouvez pas annuler cette action! Notez que les médias hors ligne ne peuvent être restaurés de cette façon.",
"assets_restored_count": "{count, plural, one {# média restauré} other {# médias restaurés}}", "assets_restored_count": "{count, plural, one {# média restauré} other {# médias restaurés}}",
"assets_restored_successfully": "{count} élément(s) restauré(s) avec succès", "assets_restored_successfully": "Élément restauré avec succès",
"assets_trashed": "{count} média(s) déplacé(s) vers la corbeille", "assets_trashed": "{} élément(s) déplacé(s) vers la corbeille",
"assets_trashed_count": "{count, plural, one {# média} other {# médias}} mis à la corbeille", "assets_trashed_count": "{count, plural, one {# média} other {# médias}} mis à la corbeille",
"assets_trashed_from_server": "{count} média(s) déplacé(s) vers la corbeille du serveur Immich", "assets_trashed_from_server": "{} élément(s) déplacé(s) vers la corbeille du serveur Immich",
"assets_were_part_of_album_count": "{count, plural, one {Un média est} other {Des médias sont}} déjà dans l'album", "assets_were_part_of_album_count": "{count, plural, one {Un média est} other {Des médias sont}} déjà dans l'album",
"authorized_devices": "Appareils autorisés", "authorized_devices": "Appareils autorisés",
"automatic_endpoint_switching_subtitle": "Se connecter localement lorsque connecté au WI-FI spécifié mais utiliser une adresse alternative lorsque connecté à un autre réseau", "automatic_endpoint_switching_subtitle": "Se connecter localement lorsque connecté au WI-FI spécifié mais utiliser une adresse alternative lorsque connecté à un autre réseau",
@@ -499,20 +501,20 @@
"back_close_deselect": "Retournez en arrière, fermez ou désélectionnez", "back_close_deselect": "Retournez en arrière, fermez ou désélectionnez",
"background_location_permission": "Permission de localisation en arrière plan", "background_location_permission": "Permission de localisation en arrière plan",
"background_location_permission_content": "Afin de pouvoir changer d'adresse en arrière plan, Immich doit avoir *en permanence* accès à la localisation précise, afin d'accéder au le nom du réseau Wi-Fi utilisé", "background_location_permission_content": "Afin de pouvoir changer d'adresse en arrière plan, Immich doit avoir *en permanence* accès à la localisation précise, afin d'accéder au le nom du réseau Wi-Fi utilisé",
"backup_album_selection_page_albums_device": "Albums sur l'appareil ({count})", "backup_album_selection_page_albums_device": "Albums sur l'appareil ({})",
"backup_album_selection_page_albums_tap": "Tapez pour inclure, tapez deux fois pour exclure", "backup_album_selection_page_albums_tap": "Tapez pour inclure, tapez deux fois pour exclure",
"backup_album_selection_page_assets_scatter": "Les éléments peuvent être répartis sur plusieurs albums. De ce fait, les albums peuvent être inclus ou exclus pendant le processus de sauvegarde.", "backup_album_selection_page_assets_scatter": "Les éléments peuvent être répartis sur plusieurs albums. De ce fait, les albums peuvent être inclus ou exclus pendant le processus de sauvegarde.",
"backup_album_selection_page_select_albums": "Sélectionner les albums", "backup_album_selection_page_select_albums": "Sélectionner les albums",
"backup_album_selection_page_selection_info": "Informations sur la sélection", "backup_album_selection_page_selection_info": "Informations sur la sélection",
"backup_album_selection_page_total_assets": "Total des éléments uniques", "backup_album_selection_page_total_assets": "Total des éléments uniques",
"backup_all": "Tout", "backup_all": "Tout",
"backup_background_service_backup_failed_message": "Échec de la sauvegarde des médias. Nouvelle tentative", "backup_background_service_backup_failed_message": "Échec de la sauvegarde des éléments. Nouvelle tentative...",
"backup_background_service_connection_failed_message": "Impossible de se connecter au serveur. Nouvelle tentative", "backup_background_service_connection_failed_message": "Impossible de se connecter au serveur. Nouvelle tentative...",
"backup_background_service_current_upload_notification": "Téléversement de {filename}", "backup_background_service_current_upload_notification": "Envoi {}",
"backup_background_service_default_notification": "Recherche de nouveaux médias…", "backup_background_service_default_notification": "Recherche de nouveaux éléments...",
"backup_background_service_error_title": "Erreur de sauvegarde", "backup_background_service_error_title": "Erreur de sauvegarde",
"backup_background_service_in_progress_notification": "Sauvegarde de vos médias…", "backup_background_service_in_progress_notification": "Sauvegarde de vos éléments...",
"backup_background_service_upload_failure_notification": "Échec lors du téléversement de {filename}", "backup_background_service_upload_failure_notification": "Échec lors de l'envoi {}",
"backup_controller_page_albums": "Sauvegarder les albums", "backup_controller_page_albums": "Sauvegarder les albums",
"backup_controller_page_background_app_refresh_disabled_content": "Activez le rafraîchissement de l'application en arrière-plan dans Paramètres > Général > Rafraîchissement de l'application en arrière-plan afin d'utiliser la sauvegarde en arrière-plan.", "backup_controller_page_background_app_refresh_disabled_content": "Activez le rafraîchissement de l'application en arrière-plan dans Paramètres > Général > Rafraîchissement de l'application en arrière-plan afin d'utiliser la sauvegarde en arrière-plan.",
"backup_controller_page_background_app_refresh_disabled_title": "Rafraîchissement de l'application en arrière-plan désactivé", "backup_controller_page_background_app_refresh_disabled_title": "Rafraîchissement de l'application en arrière-plan désactivé",
@@ -523,22 +525,22 @@
"backup_controller_page_background_battery_info_title": "Optimisation de la batterie", "backup_controller_page_background_battery_info_title": "Optimisation de la batterie",
"backup_controller_page_background_charging": "Seulement pendant la charge", "backup_controller_page_background_charging": "Seulement pendant la charge",
"backup_controller_page_background_configure_error": "Échec de la configuration du service d'arrière-plan", "backup_controller_page_background_configure_error": "Échec de la configuration du service d'arrière-plan",
"backup_controller_page_background_delay": "Retarder la sauvegarde des nouveaux médias : {duration}", "backup_controller_page_background_delay": "Retarder la sauvegarde des nouveaux éléments : {}",
"backup_controller_page_background_description": "Activez le service d'arrière-plan pour sauvegarder automatiquement tous les nouveaux médias sans avoir à ouvrir l'application", "backup_controller_page_background_description": "Activez le service d'arrière-plan pour sauvegarder automatiquement tous les nouveaux éléments sans avoir à ouvrir l'application.",
"backup_controller_page_background_is_off": "La sauvegarde automatique en arrière-plan est désactivée", "backup_controller_page_background_is_off": "La sauvegarde automatique en arrière-plan est désactivée",
"backup_controller_page_background_is_on": "La sauvegarde automatique en arrière-plan est activée", "backup_controller_page_background_is_on": "La sauvegarde automatique en arrière-plan est activée",
"backup_controller_page_background_turn_off": "Désactiver le service d'arrière-plan", "backup_controller_page_background_turn_off": "Désactiver le service d'arrière-plan",
"backup_controller_page_background_turn_on": "Activer le service d'arrière-plan", "backup_controller_page_background_turn_on": "Activer le service d'arrière-plan",
"backup_controller_page_background_wifi": "Uniquement en wifi", "backup_controller_page_background_wifi": "Uniquement sur WiFi",
"backup_controller_page_backup": "Sauvegardé", "backup_controller_page_backup": "Sauvegardé",
"backup_controller_page_backup_selected": "Sélectionné : ", "backup_controller_page_backup_selected": "Sélectionné: ",
"backup_controller_page_backup_sub": "Photos et vidéos sauvegardées", "backup_controller_page_backup_sub": "Photos et vidéos sauvegardées",
"backup_controller_page_created": "Créé le : {date}", "backup_controller_page_created": "Créé le : {}",
"backup_controller_page_desc_backup": "Activez la sauvegarde au premier plan pour téléverser automatiquement les nouveaux médias sur le serveur lors de l'ouverture de l'application.", "backup_controller_page_desc_backup": "Activez la sauvegarde pour envoyer automatiquement les nouveaux éléments sur le serveur.",
"backup_controller_page_excluded": "Exclus : ", "backup_controller_page_excluded": "Exclus: ",
"backup_controller_page_failed": "Échec de l'opération ({count})", "backup_controller_page_failed": "Échec de l'opération ({})",
"backup_controller_page_filename": "Nom du fichier : {filename} [{size}]", "backup_controller_page_filename": "Nom du fichier : {} [{}]",
"backup_controller_page_id": "ID : {id}", "backup_controller_page_id": "ID : {}",
"backup_controller_page_info": "Informations de sauvegarde", "backup_controller_page_info": "Informations de sauvegarde",
"backup_controller_page_none_selected": "Aucune sélection", "backup_controller_page_none_selected": "Aucune sélection",
"backup_controller_page_remainder": "Restant", "backup_controller_page_remainder": "Restant",
@@ -547,20 +549,20 @@
"backup_controller_page_start_backup": "Démarrer la sauvegarde", "backup_controller_page_start_backup": "Démarrer la sauvegarde",
"backup_controller_page_status_off": "La sauvegarde est désactivée", "backup_controller_page_status_off": "La sauvegarde est désactivée",
"backup_controller_page_status_on": "La sauvegarde est activée", "backup_controller_page_status_on": "La sauvegarde est activée",
"backup_controller_page_storage_format": "{used} sur {total} utilisés", "backup_controller_page_storage_format": "{} sur {} utilisés",
"backup_controller_page_to_backup": "Albums à sauvegarder", "backup_controller_page_to_backup": "Albums à sauvegarder",
"backup_controller_page_total_sub": "Toutes les photos et vidéos uniques des albums sélectionnés", "backup_controller_page_total_sub": "Toutes les photos et vidéos uniques des albums sélectionnés",
"backup_controller_page_turn_off": "Désactiver la sauvegarde", "backup_controller_page_turn_off": "Désactiver la sauvegarde",
"backup_controller_page_turn_on": "Activer la sauvegarde", "backup_controller_page_turn_on": "Activer la sauvegarde",
"backup_controller_page_uploading_file_info": "Téléversement des informations du fichier", "backup_controller_page_uploading_file_info": "Transfert des informations du fichier",
"backup_err_only_album": "Impossible de retirer le seul album", "backup_err_only_album": "Impossible de retirer le seul album",
"backup_info_card_assets": "éléments", "backup_info_card_assets": "éléments",
"backup_manual_cancelled": "Annulé", "backup_manual_cancelled": "Annulé",
"backup_manual_in_progress": "Téléversement déjà en cours. Réessayez plus tard", "backup_manual_in_progress": "Téléchargement déjà en cours. Essayez après un instant",
"backup_manual_success": "Succès", "backup_manual_success": "Succès ",
"backup_manual_title": "Statut du téléversement", "backup_manual_title": "Statut du téléchargement ",
"backup_options_page_title": "Options de sauvegarde", "backup_options_page_title": "Options de sauvegarde",
"backup_setting_subtitle": "Ajuster les paramètres de téléversement au premier et en arrière-plan", "backup_setting_subtitle": "Ajuster les paramètres de sauvegarde",
"backward": "Arrière", "backward": "Arrière",
"birthdate_saved": "Date de naissance enregistrée avec succès", "birthdate_saved": "Date de naissance enregistrée avec succès",
"birthdate_set_description": "La date de naissance est utilisée pour calculer l'âge de cette personne au moment où la photo a été prise.", "birthdate_set_description": "La date de naissance est utilisée pour calculer l'âge de cette personne au moment où la photo a été prise.",
@@ -572,21 +574,21 @@
"bulk_keep_duplicates_confirmation": "Êtes-vous sûr de vouloir conserver {count, plural, one {# doublon} other {# doublons}}? Cela résoudra tous les groupes de doublons sans rien supprimer.", "bulk_keep_duplicates_confirmation": "Êtes-vous sûr de vouloir conserver {count, plural, one {# doublon} other {# doublons}}? Cela résoudra tous les groupes de doublons sans rien supprimer.",
"bulk_trash_duplicates_confirmation": "Êtes-vous sûr de vouloir mettre à la corbeille {count, plural, one {# doublon} other {# doublons}}? Cette opération permet de conserver le plus grand média de chaque groupe et de mettre à la corbeille tous les autres doublons.", "bulk_trash_duplicates_confirmation": "Êtes-vous sûr de vouloir mettre à la corbeille {count, plural, one {# doublon} other {# doublons}}? Cette opération permet de conserver le plus grand média de chaque groupe et de mettre à la corbeille tous les autres doublons.",
"buy": "Acheter Immich", "buy": "Acheter Immich",
"cache_settings_album_thumbnails": "Page des miniatures de la bibliothèque ({count} médias)", "cache_settings_album_thumbnails": "Page des miniatures de la bibliothèque ({} éléments)",
"cache_settings_clear_cache_button": "Effacer le cache", "cache_settings_clear_cache_button": "Effacer le cache",
"cache_settings_clear_cache_button_title": "Efface le cache de l'application. Cela aura un impact significatif sur les performances de l'application jusqu'à ce que le cache soit reconstruit.", "cache_settings_clear_cache_button_title": "Efface le cache de l'application. Cela aura un impact significatif sur les performances de l'application jusqu'à ce que le cache soit reconstruit.",
"cache_settings_duplicated_assets_clear_button": "EFFACER", "cache_settings_duplicated_assets_clear_button": "EFFACER",
"cache_settings_duplicated_assets_subtitle": "Photos et vidéos qui sont exclues par l'application", "cache_settings_duplicated_assets_subtitle": "Photos et vidéos qui sont exclues par l'application",
"cache_settings_duplicated_assets_title": "Médias dupliqués ({count})", "cache_settings_duplicated_assets_title": "Éléments dupliqués ({})",
"cache_settings_image_cache_size": "Taille du cache des images ({count} médias)", "cache_settings_image_cache_size": "Taille du cache des images ({} éléments)",
"cache_settings_statistics_album": "Miniatures de la bibliothèque", "cache_settings_statistics_album": "Miniatures de la bibliothèque",
"cache_settings_statistics_assets": "{count} médias ({size})", "cache_settings_statistics_assets": "{} éléments ({})",
"cache_settings_statistics_full": "Images complètes", "cache_settings_statistics_full": "Images complètes",
"cache_settings_statistics_shared": "Miniatures de l'album partagé", "cache_settings_statistics_shared": "Miniatures de l'album partagé",
"cache_settings_statistics_thumbnail": "Miniatures", "cache_settings_statistics_thumbnail": "Miniatures",
"cache_settings_statistics_title": "Utilisation du cache", "cache_settings_statistics_title": "Utilisation du cache",
"cache_settings_subtitle": "Contrôler le comportement de mise en cache de l'application mobile Immich", "cache_settings_subtitle": "Contrôler le comportement de mise en cache de l'application mobile Immich",
"cache_settings_thumbnail_size": "Taille du cache des miniatures ({count} médias)", "cache_settings_thumbnail_size": "Taille du cache des miniatures ({} éléments)",
"cache_settings_tile_subtitle": "Contrôler le comportement du stockage local", "cache_settings_tile_subtitle": "Contrôler le comportement du stockage local",
"cache_settings_tile_title": "Stockage local", "cache_settings_tile_title": "Stockage local",
"cache_settings_title": "Paramètres de mise en cache", "cache_settings_title": "Paramètres de mise en cache",
@@ -612,14 +614,13 @@
"change_password_form_new_password": "Nouveau mot de passe", "change_password_form_new_password": "Nouveau mot de passe",
"change_password_form_password_mismatch": "Les mots de passe ne correspondent pas", "change_password_form_password_mismatch": "Les mots de passe ne correspondent pas",
"change_password_form_reenter_new_password": "Saisissez à nouveau le nouveau mot de passe", "change_password_form_reenter_new_password": "Saisissez à nouveau le nouveau mot de passe",
"change_pin_code": "Changer le code PIN",
"change_your_password": "Changer votre mot de passe", "change_your_password": "Changer votre mot de passe",
"changed_visibility_successfully": "Visibilité modifiée avec succès", "changed_visibility_successfully": "Visibilité modifiée avec succès",
"check_all": "Tout sélectionner", "check_all": "Tout sélectionner",
"check_corrupt_asset_backup": "Vérifier la corruption des éléments enregistrés", "check_corrupt_asset_backup": "Vérifier la corruption des éléments enregistrés",
"check_corrupt_asset_backup_button": "Vérifier", "check_corrupt_asset_backup_button": "Vérifier",
"check_corrupt_asset_backup_description": "Lancer cette vérification uniquement lorsque connecté à un réseau Wi-Fi et que tout le contenu a été enregistré. Cette procédure peut durer plusieurs minutes.", "check_corrupt_asset_backup_description": "Lancer cette vérification uniquement lorsque connecté à un réseau Wi-Fi et que tout le contenu a été enregistré. Cette procédure peut durer plusieurs minutes.",
"check_logs": "Vérifier les journaux", "check_logs": "Vérifier les logs",
"choose_matching_people_to_merge": "Choisir les personnes à fusionner", "choose_matching_people_to_merge": "Choisir les personnes à fusionner",
"city": "Ville", "city": "Ville",
"clear": "Effacer", "clear": "Effacer",
@@ -653,18 +654,17 @@
"confirm_delete_face": "Êtes-vous sûr de vouloir supprimer le visage de {name} du média?", "confirm_delete_face": "Êtes-vous sûr de vouloir supprimer le visage de {name} du média?",
"confirm_delete_shared_link": "Voulez-vous vraiment supprimer ce lien partagé?", "confirm_delete_shared_link": "Voulez-vous vraiment supprimer ce lien partagé?",
"confirm_keep_this_delete_others": "Tous les autres médias dans la pile seront supprimés sauf celui-ci. Êtes-vous sûr de vouloir continuer?", "confirm_keep_this_delete_others": "Tous les autres médias dans la pile seront supprimés sauf celui-ci. Êtes-vous sûr de vouloir continuer?",
"confirm_new_pin_code": "Confirmer le nouveau code PIN",
"confirm_password": "Confirmer le mot de passe", "confirm_password": "Confirmer le mot de passe",
"contain": "Contenu", "contain": "Contenu",
"context": "Contexte", "context": "Contexte",
"continue": "Continuer", "continue": "Continuer",
"control_bottom_app_bar_album_info_shared": "{count} médias · Partagés", "control_bottom_app_bar_album_info_shared": "{} éléments · Partagés",
"control_bottom_app_bar_create_new_album": "Créer un nouvel album", "control_bottom_app_bar_create_new_album": "Créer un nouvel album",
"control_bottom_app_bar_delete_from_immich": "Supprimer de Immich", "control_bottom_app_bar_delete_from_immich": "Supprimer de Immich",
"control_bottom_app_bar_delete_from_local": "Supprimer de l'appareil", "control_bottom_app_bar_delete_from_local": "Supprimer de l'appareil",
"control_bottom_app_bar_edit_location": "Modifier la localisation", "control_bottom_app_bar_edit_location": "Modifier la localisation",
"control_bottom_app_bar_edit_time": "Modifier la date et l'heure", "control_bottom_app_bar_edit_time": "Modifier la date et l'heure",
"control_bottom_app_bar_share_link": "Lien partagé", "control_bottom_app_bar_share_link": "Share Link",
"control_bottom_app_bar_share_to": "Partager à", "control_bottom_app_bar_share_to": "Partager à",
"control_bottom_app_bar_trash_from_immich": "Déplacer vers la corbeille", "control_bottom_app_bar_trash_from_immich": "Déplacer vers la corbeille",
"copied_image_to_clipboard": "Image copiée dans le presse-papiers.", "copied_image_to_clipboard": "Image copiée dans le presse-papiers.",
@@ -696,12 +696,10 @@
"create_tag_description": "Créer une nouvelle étiquette. Pour les étiquettes imbriquées, veuillez entrer le chemin complet de l'étiquette, y compris les caractères \"/\".", "create_tag_description": "Créer une nouvelle étiquette. Pour les étiquettes imbriquées, veuillez entrer le chemin complet de l'étiquette, y compris les caractères \"/\".",
"create_user": "Créer un utilisateur", "create_user": "Créer un utilisateur",
"created": "Créé", "created": "Créé",
"created_at": "Créé à",
"crop": "Recadrer", "crop": "Recadrer",
"curated_object_page_title": "Objets", "curated_object_page_title": "Objets",
"current_device": "Appareil actuel", "current_device": "Appareil actuel",
"current_pin_code": "Code PIN actuel", "current_server_address": "Adresse actuelle du serveur ",
"current_server_address": "Adresse actuelle du serveur",
"custom_locale": "Paramètres régionaux personnalisés", "custom_locale": "Paramètres régionaux personnalisés",
"custom_locale_description": "Afficher les dates et nombres en fonction des paramètres régionaux", "custom_locale_description": "Afficher les dates et nombres en fonction des paramètres régionaux",
"daily_title_text_date": "E, dd MMM", "daily_title_text_date": "E, dd MMM",
@@ -724,10 +722,10 @@
"delete": "Supprimer", "delete": "Supprimer",
"delete_album": "Supprimer l'album", "delete_album": "Supprimer l'album",
"delete_api_key_prompt": "Voulez-vous vraiment supprimer cette clé API?", "delete_api_key_prompt": "Voulez-vous vraiment supprimer cette clé API?",
"delete_dialog_alert": "Ces médias seront définitivement supprimés de Immich et de votre appareil", "delete_dialog_alert": "Ces éléments seront définitivement supprimés de Immich et de votre appareil.",
"delete_dialog_alert_local": "Ces médias seront définitivement supprimés de votre appareil mais resteront disponibles sur le serveur d'Immich", "delete_dialog_alert_local": "Ces éléments seront définitivement supprimés de votre appareil mais resteront disponibles sur le serveur d'Immich.",
"delete_dialog_alert_local_non_backed_up": "Certains médias ne sont pas sauvegardés sur Immich et seront définitivement supprimés de votre appareil", "delete_dialog_alert_local_non_backed_up": "Certains éléments ne sont pas sauvegardés sur Immich et seront définitivement supprimés de votre appareil.",
"delete_dialog_alert_remote": "Ces médias seront définitivement supprimés du serveur Immich", "delete_dialog_alert_remote": "Ces éléments seront définitivement supprimés du serveur Immich.",
"delete_dialog_ok_force": "Supprimer tout de même", "delete_dialog_ok_force": "Supprimer tout de même",
"delete_dialog_title": "Supprimer définitivement", "delete_dialog_title": "Supprimer définitivement",
"delete_duplicates_confirmation": "Êtes-vous certain de vouloir supprimer définitivement ces doublons?", "delete_duplicates_confirmation": "Êtes-vous certain de vouloir supprimer définitivement ces doublons?",
@@ -769,7 +767,7 @@
"download_enqueue": "Téléchargement en attente", "download_enqueue": "Téléchargement en attente",
"download_error": "Erreur de téléchargement", "download_error": "Erreur de téléchargement",
"download_failed": "Téléchargement échoué", "download_failed": "Téléchargement échoué",
"download_filename": "fichier : {filename}", "download_filename": "fichier : {}",
"download_finished": "Téléchargement terminé", "download_finished": "Téléchargement terminé",
"download_include_embedded_motion_videos": "Vidéos intégrées", "download_include_embedded_motion_videos": "Vidéos intégrées",
"download_include_embedded_motion_videos_description": "Inclure des vidéos intégrées dans les photos de mouvement comme un fichier séparé", "download_include_embedded_motion_videos_description": "Inclure des vidéos intégrées dans les photos de mouvement comme un fichier séparé",
@@ -784,7 +782,7 @@
"downloading": "Téléchargement", "downloading": "Téléchargement",
"downloading_asset_filename": "Téléchargement du média {filename}", "downloading_asset_filename": "Téléchargement du média {filename}",
"downloading_media": "Téléchargement du média", "downloading_media": "Téléchargement du média",
"drop_files_to_upload": "Déposez les fichiers n'importe où pour téléverser", "drop_files_to_upload": "Déposez les fichiers n'importe où pour envoyer",
"duplicates": "Doublons", "duplicates": "Doublons",
"duplicates_description": "Examiner chaque groupe et indiquer s'il y a des doublons", "duplicates_description": "Examiner chaque groupe et indiquer s'il y a des doublons",
"duration": "Durée", "duration": "Durée",
@@ -813,7 +811,6 @@
"editor_crop_tool_h2_aspect_ratios": "Rapports hauteur/largeur", "editor_crop_tool_h2_aspect_ratios": "Rapports hauteur/largeur",
"editor_crop_tool_h2_rotation": "Rotation", "editor_crop_tool_h2_rotation": "Rotation",
"email": "Courriel", "email": "Courriel",
"email_notifications": "Notifications email",
"empty_folder": "Ce dossier est vide", "empty_folder": "Ce dossier est vide",
"empty_trash": "Vider la corbeille", "empty_trash": "Vider la corbeille",
"empty_trash_confirmation": "Êtes-vous sûr de vouloir vider la corbeille? Cela supprimera définitivement de Immich tous les médias qu'elle contient.\nVous ne pouvez pas annuler cette action!", "empty_trash_confirmation": "Êtes-vous sûr de vouloir vider la corbeille? Cela supprimera définitivement de Immich tous les médias qu'elle contient.\nVous ne pouvez pas annuler cette action!",
@@ -821,12 +818,12 @@
"enabled": "Activé", "enabled": "Activé",
"end_date": "Date de fin", "end_date": "Date de fin",
"enqueued": "Mis en file", "enqueued": "Mis en file",
"enter_wifi_name": "Entrez le nom du réseau wifi", "enter_wifi_name": "Entrez le nom du réseau ",
"error": "Erreur", "error": "Erreur",
"error_change_sort_album": "Impossible de modifier l'ordre de tri des albums", "error_change_sort_album": "Impossible de modifier l'ordre de tri des albums",
"error_delete_face": "Erreur lors de la suppression du visage pour le média", "error_delete_face": "Erreur lors de la suppression du visage pour le média",
"error_loading_image": "Erreur de chargement de l'image", "error_loading_image": "Erreur de chargement de l'image",
"error_saving_image": "Erreur : {error}", "error_saving_image": "Erreur : {}",
"error_title": "Erreur - Quelque chose s'est mal passé", "error_title": "Erreur - Quelque chose s'est mal passé",
"errors": { "errors": {
"cannot_navigate_next_asset": "Impossible de naviguer jusqu'au prochain média", "cannot_navigate_next_asset": "Impossible de naviguer jusqu'au prochain média",
@@ -856,12 +853,10 @@
"failed_to_keep_this_delete_others": "Impossible de conserver ce média et de supprimer les autres médias", "failed_to_keep_this_delete_others": "Impossible de conserver ce média et de supprimer les autres médias",
"failed_to_load_asset": "Impossible de charger le média", "failed_to_load_asset": "Impossible de charger le média",
"failed_to_load_assets": "Impossible de charger les médias", "failed_to_load_assets": "Impossible de charger les médias",
"failed_to_load_notifications": "Erreur de récupération des notifications",
"failed_to_load_people": "Impossible de charger les personnes", "failed_to_load_people": "Impossible de charger les personnes",
"failed_to_remove_product_key": "Échec de suppression de la clé du produit", "failed_to_remove_product_key": "Échec de suppression de la clé du produit",
"failed_to_stack_assets": "Impossible d'empiler les médias", "failed_to_stack_assets": "Impossible d'empiler les médias",
"failed_to_unstack_assets": "Impossible de dépiler les médias", "failed_to_unstack_assets": "Impossible de dépiler les médias",
"failed_to_update_notification_status": "Erreur de mise à jour du statut des notifications",
"import_path_already_exists": "Ce chemin d'importation existe déjà.", "import_path_already_exists": "Ce chemin d'importation existe déjà.",
"incorrect_email_or_password": "Courriel ou mot de passe incorrect", "incorrect_email_or_password": "Courriel ou mot de passe incorrect",
"paths_validation_failed": "Validation échouée pour {paths, plural, one {# un chemin} other {# plusieurs chemins}}", "paths_validation_failed": "Validation échouée pour {paths, plural, one {# un chemin} other {# plusieurs chemins}}",
@@ -929,7 +924,6 @@
"unable_to_remove_reaction": "Impossible de supprimer la réaction", "unable_to_remove_reaction": "Impossible de supprimer la réaction",
"unable_to_repair_items": "Impossible de réparer les éléments", "unable_to_repair_items": "Impossible de réparer les éléments",
"unable_to_reset_password": "Impossible de réinitialiser le mot de passe", "unable_to_reset_password": "Impossible de réinitialiser le mot de passe",
"unable_to_reset_pin_code": "Impossible de réinitialiser le code PIN",
"unable_to_resolve_duplicate": "Impossible de résoudre le doublon", "unable_to_resolve_duplicate": "Impossible de résoudre le doublon",
"unable_to_restore_assets": "Impossible de restaurer les médias", "unable_to_restore_assets": "Impossible de restaurer les médias",
"unable_to_restore_trash": "Impossible de restaurer la corbeille", "unable_to_restore_trash": "Impossible de restaurer la corbeille",
@@ -955,7 +949,7 @@
"unable_to_update_settings": "Impossible de mettre à jour les paramètres", "unable_to_update_settings": "Impossible de mettre à jour les paramètres",
"unable_to_update_timeline_display_status": "Impossible de mettre à jour le statut d'affichage de la vue chronologique", "unable_to_update_timeline_display_status": "Impossible de mettre à jour le statut d'affichage de la vue chronologique",
"unable_to_update_user": "Impossible de mettre à jour l'utilisateur", "unable_to_update_user": "Impossible de mettre à jour l'utilisateur",
"unable_to_upload_file": "Impossible de téléverser le fichier" "unable_to_upload_file": "Impossible d'envoyer le fichier"
}, },
"exif": "Exif", "exif": "Exif",
"exif_bottom_sheet_description": "Ajouter une description...", "exif_bottom_sheet_description": "Ajouter une description...",
@@ -963,15 +957,15 @@
"exif_bottom_sheet_location": "LOCALISATION", "exif_bottom_sheet_location": "LOCALISATION",
"exif_bottom_sheet_people": "PERSONNES", "exif_bottom_sheet_people": "PERSONNES",
"exif_bottom_sheet_person_add_person": "Ajouter un nom", "exif_bottom_sheet_person_add_person": "Ajouter un nom",
"exif_bottom_sheet_person_age": "Âge {age}", "exif_bottom_sheet_person_age": "Âge {}",
"exif_bottom_sheet_person_age_months": "Âge {months} mois", "exif_bottom_sheet_person_age_months": "Âge {} mois",
"exif_bottom_sheet_person_age_year_months": "Âge 1 an, {months} mois", "exif_bottom_sheet_person_age_year_months": "Âge 1 an, {} mois",
"exif_bottom_sheet_person_age_years": "Âge {years}", "exif_bottom_sheet_person_age_years": "Âge {}",
"exit_slideshow": "Quitter le diaporama", "exit_slideshow": "Quitter le diaporama",
"expand_all": "Tout développer", "expand_all": "Tout développer",
"experimental_settings_new_asset_list_subtitle": "En cours de développement", "experimental_settings_new_asset_list_subtitle": "En cours de développement",
"experimental_settings_new_asset_list_title": "Activer la grille de photos expérimentale", "experimental_settings_new_asset_list_title": "Activer la grille de photos expérimentale",
"experimental_settings_subtitle": "Utilisez à vos dépends!", "experimental_settings_subtitle": "Utilisez à vos dépends!",
"experimental_settings_title": "Expérimental", "experimental_settings_title": "Expérimental",
"expire_after": "Expire", "expire_after": "Expire",
"expired": "Expiré", "expired": "Expiré",
@@ -984,7 +978,7 @@
"external": "Externe", "external": "Externe",
"external_libraries": "Bibliothèques externes", "external_libraries": "Bibliothèques externes",
"external_network": "Réseau externe", "external_network": "Réseau externe",
"external_network_sheet_info": "Quand vous n'êtes pas connecté(e) à votre réseau wifi préféré, l'application va tenter de se connecter aux adresses ci-dessous, en commençant par la première", "external_network_sheet_info": "Quand vous n'êtes pas connecté à votre réseau préféré, l'application va tenter de se connecter aux adresses ci-dessous, en commençant par la première",
"face_unassigned": "Non attribué", "face_unassigned": "Non attribué",
"failed": "Échec", "failed": "Échec",
"failed_to_load_assets": "Échec du chargement des ressources", "failed_to_load_assets": "Échec du chargement des ressources",
@@ -1002,7 +996,6 @@
"filetype": "Type de fichier", "filetype": "Type de fichier",
"filter": "Filtres", "filter": "Filtres",
"filter_people": "Filtrer les personnes", "filter_people": "Filtrer les personnes",
"filter_places": "Filtrer par lieu",
"find_them_fast": "Pour les retrouver rapidement par leur nom", "find_them_fast": "Pour les retrouver rapidement par leur nom",
"fix_incorrect_match": "Corriger une association incorrecte", "fix_incorrect_match": "Corriger une association incorrecte",
"folder": "Dossier", "folder": "Dossier",
@@ -1012,12 +1005,12 @@
"forward": "Avant", "forward": "Avant",
"general": "Général", "general": "Général",
"get_help": "Obtenir de l'aide", "get_help": "Obtenir de l'aide",
"get_wifiname_error": "Impossible d'obtenir le nom du réseau wifi. Assurez-vous d'avoir donné les permissions nécessaires à l'application et que vous êtes connecté à un réseau wifi", "get_wifiname_error": "Impossible d'obtenir le nom du réseau Wi-Fi. Assurez-vous d'avoir donné les permissions nécessaires à l'application et que vous êtes connecté à un réseau Wi-Fi.",
"getting_started": "Commencer", "getting_started": "Commencer",
"go_back": "Retour", "go_back": "Retour",
"go_to_folder": "Dossier", "go_to_folder": "Dossier",
"go_to_search": "Faire une recherche", "go_to_search": "Faire une recherche",
"grant_permission": "Accorder les permissions", "grant_permission": "Accorder les permissions ",
"group_albums_by": "Grouper les albums par...", "group_albums_by": "Grouper les albums par...",
"group_country": "Grouper par pays", "group_country": "Grouper par pays",
"group_no": "Pas de groupe", "group_no": "Pas de groupe",
@@ -1041,24 +1034,23 @@
"hide_person": "Masquer la personne", "hide_person": "Masquer la personne",
"hide_unnamed_people": "Cacher les personnes non nommées", "hide_unnamed_people": "Cacher les personnes non nommées",
"home_page_add_to_album_conflicts": "{added} éléments ajoutés à l'album {album}. Les éléments {failed} sont déjà dans l'album.", "home_page_add_to_album_conflicts": "{added} éléments ajoutés à l'album {album}. Les éléments {failed} sont déjà dans l'album.",
"home_page_add_to_album_err_local": "Impossible d'ajouter des médias locaux aux albums, ils sont ignorés", "home_page_add_to_album_err_local": "Impossible d'ajouter des éléments locaux aux albums pour le moment, étape ignorée",
"home_page_add_to_album_success": "{added} éléments ajoutés à l'album {album}.", "home_page_add_to_album_success": "{added} éléments ajoutés à l'album {album}.",
"home_page_album_err_partner": "Impossible d'ajouter des médias d'un partenaire à un album, ils sont ignorés", "home_page_album_err_partner": "Il n'est pas encore possible d'ajouter des éléments d'un partenaire à un album.",
"home_page_archive_err_local": "Impossible d'archiver les médias locaux, ils sont ignorés", "home_page_archive_err_local": "Impossible d'archiver les ressources locales pour l'instant, étape ignorée",
"home_page_archive_err_partner": "Impossible d'archiver les médias d'un partenaire, ils sont ignorés", "home_page_archive_err_partner": "Impossible d'archiver les éléments d'un partenaire.",
"home_page_building_timeline": "Construction de la chronologie", "home_page_building_timeline": "Construction de la chronologie",
"home_page_delete_err_partner": "Impossible de supprimer les médias d'un partenaire, ils sont ignorés", "home_page_delete_err_partner": "Ne peut pas supprimer les éléments d'un partenaire.",
"home_page_delete_remote_err_local": "Des médias locaux sont dans la sélection de suppression à distance, ils sont ignorés", "home_page_delete_remote_err_local": "Des éléments locaux sont dans la sélection de suppression à distance, ils sont donc ignorés.",
"home_page_favorite_err_local": "Impossible d'ajouter des médias locaux aux favoris, ils sont ignorés", "home_page_favorite_err_local": "Impossible d'ajouter des éléments locaux aux favoris pour le moment, étape ignorée",
"home_page_favorite_err_partner": "Impossible de mettre en favori les médias d'un partenaire, ils sont ignorés", "home_page_favorite_err_partner": "Il n'est pas encore possible de mettre en favori les éléments d'un partenaire.",
"home_page_first_time_notice": "Si c'est la première fois que vous utilisez l'application, veillez à choisir un ou plusieurs albums de sauvegarde afin que la chronologie puisse alimenter les photos et les vidéos de cet ou ces albums", "home_page_first_time_notice": "Si c'est la première fois que vous utilisez l'application, veillez à choisir un ou plusieurs albums de sauvegarde afin que la chronologie puisse alimenter les photos et les vidéos de cet ou ces albums.",
"home_page_share_err_local": "Impossible de partager par lien les médias locaux, ils sont ignorés", "home_page_share_err_local": "Impossible de partager par lien les médias locaux, cette opération est donc ignorée.",
"home_page_upload_err_limit": "Impossible de téléverser plus de 30 médias en même temps, demande ignorée", "home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée",
"host": "Hôte", "host": "Hôte",
"hour": "Heure", "hour": "Heure",
"id": "ID",
"ignore_icloud_photos": "Ignorer les photos iCloud", "ignore_icloud_photos": "Ignorer les photos iCloud",
"ignore_icloud_photos_description": "Les photos stockées sur iCloud ne sont pas téléversées sur le serveur Immich", "ignore_icloud_photos_description": "Les photos stockées sur iCloud ne sont pas enregistrées sur Immich",
"image": "Image", "image": "Image",
"image_alt_text_date": "{isVideo, select, true {Video} other {Image}} prise le {date}", "image_alt_text_date": "{isVideo, select, true {Video} other {Image}} prise le {date}",
"image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Image}} prise avec {person1} le {date}", "image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Image}} prise avec {person1} le {date}",
@@ -1131,8 +1123,8 @@
"loading_search_results_failed": "Chargement des résultats échoué", "loading_search_results_failed": "Chargement des résultats échoué",
"local_network": "Réseau local", "local_network": "Réseau local",
"local_network_sheet_info": "L'application va se connecter au serveur via cette URL quand l'appareil est connecté à ce réseau Wi-Fi", "local_network_sheet_info": "L'application va se connecter au serveur via cette URL quand l'appareil est connecté à ce réseau Wi-Fi",
"location_permission": "Autorisation de localisation", "location_permission": "Autorisation de localisation ",
"location_permission_content": "Afin de pouvoir changer d'adresse automatiquement, Immich doit avoir accès à la localisation précise, afin d'accéder au nom du réseau wifi utilisé", "location_permission_content": "Afin de pouvoir changer d'adresse automatiquement, Immich doit avoir accès à la localisation précise, afin d'accéder au le nom du réseau Wi-Fi utilisé",
"location_picker_choose_on_map": "Sélectionner sur la carte", "location_picker_choose_on_map": "Sélectionner sur la carte",
"location_picker_latitude_error": "Saisir une latitude correcte", "location_picker_latitude_error": "Saisir une latitude correcte",
"location_picker_latitude_hint": "Saisir la latitude ici", "location_picker_latitude_hint": "Saisir la latitude ici",
@@ -1143,8 +1135,8 @@
"logged_out_all_devices": "Déconnecté de tous les appareils", "logged_out_all_devices": "Déconnecté de tous les appareils",
"logged_out_device": "Déconnecté de l'appareil", "logged_out_device": "Déconnecté de l'appareil",
"login": "Connexion", "login": "Connexion",
"login_disabled": "La connexion a été désactivée", "login_disabled": "La connexion a été désactivée ",
"login_form_api_exception": "Erreur de l'API. Veuillez vérifier l'URL du serveur et réessayer.", "login_form_api_exception": "Erreur de l'API. Veuillez vérifier l'URL du serveur et et réessayer.",
"login_form_back_button_text": "Retour", "login_form_back_button_text": "Retour",
"login_form_email_hint": "votrecourriel@email.com", "login_form_email_hint": "votrecourriel@email.com",
"login_form_endpoint_hint": "http://adresse-ip-serveur:port", "login_form_endpoint_hint": "http://adresse-ip-serveur:port",
@@ -1182,33 +1174,30 @@
"manage_your_devices": "Gérer vos appareils", "manage_your_devices": "Gérer vos appareils",
"manage_your_oauth_connection": "Gérer votre connexion OAuth", "manage_your_oauth_connection": "Gérer votre connexion OAuth",
"map": "Carte", "map": "Carte",
"map_assets_in_bound": "{count} photo", "map_assets_in_bound": "{} photo",
"map_assets_in_bounds": "{count} photos", "map_assets_in_bounds": "{} photos",
"map_cannot_get_user_location": "Impossible d'obtenir la localisation de l'utilisateur", "map_cannot_get_user_location": "Impossible d'obtenir la localisation de l'utilisateur",
"map_location_dialog_yes": "Oui", "map_location_dialog_yes": "Oui",
"map_location_picker_page_use_location": "Utiliser ma position", "map_location_picker_page_use_location": "Utiliser ma position",
"map_location_service_disabled_content": "Le service de localisation doit être activé pour afficher les médias de votre emplacement actuel. Souhaitez-vous l'activer maintenant?", "map_location_service_disabled_content": "Le service de localisation doit être activé pour afficher les éléments de votre emplacement actuel. Souhaitez-vous l'activer maintenant?",
"map_location_service_disabled_title": "Service de localisation désactivé", "map_location_service_disabled_title": "Service de localisation désactivé",
"map_marker_for_images": "Marqueur de carte pour les images prises à {city}, {country}", "map_marker_for_images": "Marqueur de carte pour les images prises à {city}, {country}",
"map_marker_with_image": "Marqueur de carte avec image", "map_marker_with_image": "Marqueur de carte avec image",
"map_no_assets_in_bounds": "Pas de photos dans cette zone", "map_no_assets_in_bounds": "Pas de photos dans cette zone",
"map_no_location_permission_content": "L'autorisation de localisation est nécessaire pour afficher les médias de votre emplacement actuel. Souhaitez-vous l'autoriser maintenant?", "map_no_location_permission_content": "L'autorisation de localisation est nécessaire pour afficher les éléments de votre emplacement actuel. Souhaitez-vous l'autoriser maintenant?",
"map_no_location_permission_title": "Permission de localisation refusée", "map_no_location_permission_title": "Permission de localisation refusée",
"map_settings": "Paramètres de la carte", "map_settings": "Paramètres de la carte",
"map_settings_dark_mode": "Mode sombre", "map_settings_dark_mode": "Mode sombre",
"map_settings_date_range_option_day": "Dernières 24 heures", "map_settings_date_range_option_day": "Dernières 24 heures",
"map_settings_date_range_option_days": "{days} derniers jours", "map_settings_date_range_option_days": "{} derniers jours",
"map_settings_date_range_option_year": "Année passée", "map_settings_date_range_option_year": "Année passée",
"map_settings_date_range_option_years": "{years} dernières années", "map_settings_date_range_option_years": "{} dernières années",
"map_settings_dialog_title": "Paramètres de la carte", "map_settings_dialog_title": "Paramètres de la carte",
"map_settings_include_show_archived": "Inclure les archives", "map_settings_include_show_archived": "Inclure les archives",
"map_settings_include_show_partners": "Inclure les partenaires", "map_settings_include_show_partners": "Inclure les partenaires",
"map_settings_only_show_favorites": "Afficher uniquement les favoris", "map_settings_only_show_favorites": "Afficher uniquement les favoris",
"map_settings_theme_settings": "Thème de la carte", "map_settings_theme_settings": "Thème de la carte",
"map_zoom_to_see_photos": "Dézoomer pour voir les photos", "map_zoom_to_see_photos": "Dézoomer pour voir les photos",
"mark_all_as_read": "Tout marquer comme lu",
"mark_as_read": "Marquer comme lu",
"marked_all_as_read": "Tout a été marqué comme lu",
"matches": "Correspondances", "matches": "Correspondances",
"media_type": "Type de média", "media_type": "Type de média",
"memories": "Souvenirs", "memories": "Souvenirs",
@@ -1218,7 +1207,7 @@
"memories_start_over": "Recommencer", "memories_start_over": "Recommencer",
"memories_swipe_to_close": "Balayez vers le haut pour fermer", "memories_swipe_to_close": "Balayez vers le haut pour fermer",
"memories_year_ago": "Il y a un an", "memories_year_ago": "Il y a un an",
"memories_years_ago": "Il y a {years, plural, other {# ans}}", "memories_years_ago": "Il y a {} ans",
"memory": "Souvenir", "memory": "Souvenir",
"memory_lane_title": "Fil de souvenirs {title}", "memory_lane_title": "Fil de souvenirs {title}",
"menu": "Menu", "menu": "Menu",
@@ -1235,23 +1224,20 @@
"month": "Mois", "month": "Mois",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "MMMM y",
"more": "Plus", "more": "Plus",
"moved_to_archive": "{count, plural, one {# élément déplacé} other {# éléments déplacés}} vers les archives",
"moved_to_library": "{count, plural, one {# élément déplacé} other {# éléments déplacés}} vers la bibliothèque",
"moved_to_trash": "Déplacé dans la corbeille", "moved_to_trash": "Déplacé dans la corbeille",
"multiselect_grid_edit_date_time_err_read_only": "Impossible de modifier la date de médias en lecture seule, ils sont ignorés", "multiselect_grid_edit_date_time_err_read_only": "Impossible de modifier la date d'un élément d'actif en lecture seule.",
"multiselect_grid_edit_gps_err_read_only": "Impossible de modifier l'emplacement de médias en lecture seule, ils sont ignorés", "multiselect_grid_edit_gps_err_read_only": "Impossible de modifier l'emplacement d'un élément en lecture seule.",
"mute_memories": "Mettre en sourdine les souvenirs", "mute_memories": "Mettre en sourdine les souvenirs",
"my_albums": "Mes albums", "my_albums": "Mes albums",
"name": "Nom", "name": "Nom",
"name_or_nickname": "Nom ou surnom", "name_or_nickname": "Nom ou surnom",
"networking_settings": "Réseau", "networking_settings": "Réseau ",
"networking_subtitle": "Gérer les adresses du serveur", "networking_subtitle": "Gérer les adresses du serveur",
"never": "Jamais", "never": "Jamais",
"new_album": "Nouvel Album", "new_album": "Nouvel Album",
"new_api_key": "Nouvelle clé API", "new_api_key": "Nouvelle clé API",
"new_password": "Nouveau mot de passe", "new_password": "Nouveau mot de passe",
"new_person": "Nouvelle personne", "new_person": "Nouvelle personne",
"new_pin_code": "Nouveau code PIN",
"new_user_created": "Nouvel utilisateur créé", "new_user_created": "Nouvel utilisateur créé",
"new_version_available": "NOUVELLE VERSION DISPONIBLE", "new_version_available": "NOUVELLE VERSION DISPONIBLE",
"newest_first": "Récents en premier", "newest_first": "Récents en premier",
@@ -1262,23 +1248,21 @@
"no_albums_with_name_yet": "Il semble que vous n'ayez pas encore d'albums avec ce nom.", "no_albums_with_name_yet": "Il semble que vous n'ayez pas encore d'albums avec ce nom.",
"no_albums_yet": "Il semble que vous n'ayez pas encore d'album.", "no_albums_yet": "Il semble que vous n'ayez pas encore d'album.",
"no_archived_assets_message": "Archiver des photos et vidéos pour les masquer dans votre bibliothèque", "no_archived_assets_message": "Archiver des photos et vidéos pour les masquer dans votre bibliothèque",
"no_assets_message": "CLIQUER ICI POUR TÉLÉVERSER VOTRE PREMIÈRE PHOTO", "no_assets_message": "CLIQUER ICI POUR ENVOYER VOTRE PREMIÈRE PHOTO",
"no_assets_to_show": "Aucun élément à afficher", "no_assets_to_show": "Aucun élément à afficher",
"no_duplicates_found": "Aucun doublon n'a été trouvé.", "no_duplicates_found": "Aucun doublon n'a été trouvé.",
"no_exif_info_available": "Aucune information exif disponible", "no_exif_info_available": "Aucune information exif disponible",
"no_explore_results_message": "Téléversez plus de photos pour explorer votre collection.", "no_explore_results_message": "Envoyez plus de photos pour explorer votre collection.",
"no_favorites_message": "Ajouter des photos et vidéos à vos favoris pour les retrouver plus rapidement", "no_favorites_message": "Ajouter des photos et vidéos à vos favoris pour les retrouver plus rapidement",
"no_libraries_message": "Créer une bibliothèque externe pour voir vos photos et vidéos dans un autre espace de stockage", "no_libraries_message": "Créer une bibliothèque externe pour voir vos photos et vidéos dans un autre espace de stockage",
"no_name": "Pas de nom", "no_name": "Pas de nom",
"no_notifications": "Pas de notification",
"no_people_found": "Aucune personne correspondante trouvée",
"no_places": "Pas de lieu", "no_places": "Pas de lieu",
"no_results": "Aucun résultat", "no_results": "Aucun résultat",
"no_results_description": "Essayez un synonyme ou un mot-clé plus général", "no_results_description": "Essayez un synonyme ou un mot-clé plus général",
"no_shared_albums_message": "Créer un album pour partager vos photos et vidéos avec les personnes de votre réseau", "no_shared_albums_message": "Créer un album pour partager vos photos et vidéos avec les personnes de votre réseau",
"not_in_any_album": "Dans aucun album", "not_in_any_album": "Dans aucun album",
"not_selected": "Non sélectionné", "not_selected": "Non sélectionné",
"note_apply_storage_label_to_previously_uploaded assets": "Note : Pour appliquer l'étiquette de stockage aux médias déjà téléversés, exécutez", "note_apply_storage_label_to_previously_uploaded assets": "Note: Pour appliquer l'étiquette de stockage aux médias déjà envoyés, lancer la",
"notes": "Notes", "notes": "Notes",
"notification_permission_dialog_content": "Pour activer les notifications, allez dans Paramètres et sélectionnez Autoriser.", "notification_permission_dialog_content": "Pour activer les notifications, allez dans Paramètres et sélectionnez Autoriser.",
"notification_permission_list_tile_content": "Accordez la permission d'activer les notifications.", "notification_permission_list_tile_content": "Accordez la permission d'activer les notifications.",
@@ -1326,7 +1310,7 @@
"partner_page_partner_add_failed": "Échec de l'ajout d'un partenaire", "partner_page_partner_add_failed": "Échec de l'ajout d'un partenaire",
"partner_page_select_partner": "Sélectionner un partenaire", "partner_page_select_partner": "Sélectionner un partenaire",
"partner_page_shared_to_title": "Partagé avec", "partner_page_shared_to_title": "Partagé avec",
"partner_page_stop_sharing_content": "{partner} ne pourra plus accéder à vos photos.", "partner_page_stop_sharing_content": "{} ne pourra plus accéder à vos photos.",
"partner_sharing": "Partage avec les partenaires", "partner_sharing": "Partage avec les partenaires",
"partners": "Partenaires", "partners": "Partenaires",
"password": "Mot de passe", "password": "Mot de passe",
@@ -1360,9 +1344,9 @@
"permission_onboarding_get_started": "Commencer", "permission_onboarding_get_started": "Commencer",
"permission_onboarding_go_to_settings": "Accéder aux paramètres", "permission_onboarding_go_to_settings": "Accéder aux paramètres",
"permission_onboarding_permission_denied": "Permission refusée. Pour utiliser Immich, accordez lautorisation pour les photos et vidéos dans les Paramètres.", "permission_onboarding_permission_denied": "Permission refusée. Pour utiliser Immich, accordez lautorisation pour les photos et vidéos dans les Paramètres.",
"permission_onboarding_permission_granted": "Permission accordée! Vous êtes prêts.", "permission_onboarding_permission_granted": "Permission accordée! Vous êtes prêts.",
"permission_onboarding_permission_limited": "Permission limitée. Pour permettre à Immich de sauvegarder et de gérer l'ensemble de votre bibliothèque, accordez l'autorisation pour les photos et vidéos dans les Paramètres.", "permission_onboarding_permission_limited": "Permission limitée. Pour permettre à Immich de sauvegarder et de gérer l'ensemble de votre bibliothèque, accordez l'autorisation pour les photos et vidéos dans les Paramètres.",
"permission_onboarding_request": "Immich nécessite l'autorisation d'accéder à vos photos et vidéos.", "permission_onboarding_request": "Immich demande l'autorisation de visionner vos photos et vidéo",
"person": "Personne", "person": "Personne",
"person_birthdate": "Né(e) le {date}", "person_birthdate": "Né(e) le {date}",
"person_hidden": "{name}{hidden, select, true { (caché)} other {}}", "person_hidden": "{name}{hidden, select, true { (caché)} other {}}",
@@ -1372,9 +1356,6 @@
"photos_count": "{count, plural, one {{count, number} Photo} other {{count, number} Photos}}", "photos_count": "{count, plural, one {{count, number} Photo} other {{count, number} Photos}}",
"photos_from_previous_years": "Photos des années précédentes", "photos_from_previous_years": "Photos des années précédentes",
"pick_a_location": "Choisissez un lieu", "pick_a_location": "Choisissez un lieu",
"pin_code_changed_successfully": "Code PIN changé avec succès",
"pin_code_reset_successfully": "Réinitialisation du code PIN réussie",
"pin_code_setup_successfully": "Définition du code PIN réussie",
"place": "Lieu", "place": "Lieu",
"places": "Lieux", "places": "Lieux",
"places_count": "{count, plural, one {{count, number} Lieu} other {{count, number} Lieux}}", "places_count": "{count, plural, one {{count, number} Lieu} other {{count, number} Lieux}}",
@@ -1392,7 +1373,6 @@
"previous_or_next_photo": "Photo précédente ou suivante", "previous_or_next_photo": "Photo précédente ou suivante",
"primary": "Primaire", "primary": "Primaire",
"privacy": "Vie privée", "privacy": "Vie privée",
"profile": "Profile",
"profile_drawer_app_logs": "Journaux", "profile_drawer_app_logs": "Journaux",
"profile_drawer_client_out_of_date_major": "L'application mobile est obsolète. Veuillez effectuer la mise à jour vers la dernière version majeure.", "profile_drawer_client_out_of_date_major": "L'application mobile est obsolète. Veuillez effectuer la mise à jour vers la dernière version majeure.",
"profile_drawer_client_out_of_date_minor": "L'application mobile est obsolète. Veuillez effectuer la mise à jour vers la dernière version mineure.", "profile_drawer_client_out_of_date_minor": "L'application mobile est obsolète. Veuillez effectuer la mise à jour vers la dernière version mineure.",
@@ -1406,7 +1386,7 @@
"public_share": "Partage public", "public_share": "Partage public",
"purchase_account_info": "Contributeur", "purchase_account_info": "Contributeur",
"purchase_activated_subtitle": "Merci d'avoir apporté votre soutien à Immich et aux logiciels open source", "purchase_activated_subtitle": "Merci d'avoir apporté votre soutien à Immich et aux logiciels open source",
"purchase_activated_time": "Activé le {date}", "purchase_activated_time": "Activé le {date, date}",
"purchase_activated_title": "Votre clé a été activée avec succès", "purchase_activated_title": "Votre clé a été activée avec succès",
"purchase_button_activate": "Activer", "purchase_button_activate": "Activer",
"purchase_button_buy": "Acheter", "purchase_button_buy": "Acheter",
@@ -1451,8 +1431,6 @@
"recent_searches": "Recherches récentes", "recent_searches": "Recherches récentes",
"recently_added": "Récemment ajouté", "recently_added": "Récemment ajouté",
"recently_added_page_title": "Récemment ajouté", "recently_added_page_title": "Récemment ajouté",
"recently_taken": "Récemment photographié",
"recently_taken_page_title": "Récemment photographié",
"refresh": "Actualiser", "refresh": "Actualiser",
"refresh_encoded_videos": "Actualiser les vidéos encodées", "refresh_encoded_videos": "Actualiser les vidéos encodées",
"refresh_faces": "Actualiser les visages", "refresh_faces": "Actualiser les visages",
@@ -1487,7 +1465,7 @@
"rename": "Renommer", "rename": "Renommer",
"repair": "Réparer", "repair": "Réparer",
"repair_no_results_message": "Les fichiers non importés ou absents s'afficheront ici", "repair_no_results_message": "Les fichiers non importés ou absents s'afficheront ici",
"replace_with_upload": "Remplacer par téléversement", "replace_with_upload": "Remplacer par téléchargement",
"repository": "Dépôt", "repository": "Dépôt",
"require_password": "Demander le mot de passe", "require_password": "Demander le mot de passe",
"require_user_to_change_password_on_first_login": "Demander à l'utilisateur de changer son mot de passe lors de sa première connexion", "require_user_to_change_password_on_first_login": "Demander à l'utilisateur de changer son mot de passe lors de sa première connexion",
@@ -1495,7 +1473,6 @@
"reset": "Réinitialiser", "reset": "Réinitialiser",
"reset_password": "Réinitialiser le mot de passe", "reset_password": "Réinitialiser le mot de passe",
"reset_people_visibility": "Réinitialiser la visibilité des personnes", "reset_people_visibility": "Réinitialiser la visibilité des personnes",
"reset_pin_code": "Réinitialiser le code PIN",
"reset_to_default": "Rétablir les valeurs par défaut", "reset_to_default": "Rétablir les valeurs par défaut",
"resolve_duplicates": "Résoudre les doublons", "resolve_duplicates": "Résoudre les doublons",
"resolved_all_duplicates": "Résolution de tous les doublons", "resolved_all_duplicates": "Résolution de tous les doublons",
@@ -1504,7 +1481,7 @@
"restore_user": "Restaurer l'utilisateur", "restore_user": "Restaurer l'utilisateur",
"restored_asset": "Média restauré", "restored_asset": "Média restauré",
"resume": "Reprendre", "resume": "Reprendre",
"retry_upload": "Réessayer le téléversement", "retry_upload": "Réessayer l'envoi",
"review_duplicates": "Consulter les doublons", "review_duplicates": "Consulter les doublons",
"role": "Rôle", "role": "Rôle",
"role_editor": "Éditeur", "role_editor": "Éditeur",
@@ -1546,7 +1523,7 @@
"search_filter_people_title": "Sélectionner une personne", "search_filter_people_title": "Sélectionner une personne",
"search_for": "Chercher", "search_for": "Chercher",
"search_for_existing_person": "Rechercher une personne existante", "search_for_existing_person": "Rechercher une personne existante",
"search_no_more_result": "Plus de résultats", "search_no_more_result": "\nPlus de résultats",
"search_no_people": "Aucune personne", "search_no_people": "Aucune personne",
"search_no_people_named": "Aucune personne nommée « {name} »", "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_no_result": "Aucun résultat trouvé, essayez un autre terme de recherche ou une autre combinaison",
@@ -1557,7 +1534,7 @@
"search_page_no_places": "Aucune information disponible sur la localisation", "search_page_no_places": "Aucune information disponible sur la localisation",
"search_page_screenshots": "Captures d'écran", "search_page_screenshots": "Captures d'écran",
"search_page_search_photos_videos": "Rechercher dans vos photos et vidéos", "search_page_search_photos_videos": "Rechercher dans vos photos et vidéos",
"search_page_selfies": "Autoportraits (Selfies)", "search_page_selfies": "Selfies",
"search_page_things": "Objets", "search_page_things": "Objets",
"search_page_view_all_button": "Voir tout", "search_page_view_all_button": "Voir tout",
"search_page_your_activity": "Votre activité", "search_page_your_activity": "Votre activité",
@@ -1568,7 +1545,7 @@
"search_result_page_new_search_hint": "Nouvelle recherche", "search_result_page_new_search_hint": "Nouvelle recherche",
"search_settings": "Paramètres de recherche", "search_settings": "Paramètres de recherche",
"search_state": "Rechercher par état/région...", "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_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", "search_suggestion_list_smart_search_hint_2": "m:votre-terme-de-recherche",
"search_tags": "Recherche d'étiquettes...", "search_tags": "Recherche d'étiquettes...",
"search_timezone": "Rechercher par fuseau horaire...", "search_timezone": "Rechercher par fuseau horaire...",
@@ -1588,7 +1565,6 @@
"select_keep_all": "Choisir de tout garder", "select_keep_all": "Choisir de tout garder",
"select_library_owner": "Sélectionner le propriétaire de la bibliothèque", "select_library_owner": "Sélectionner le propriétaire de la bibliothèque",
"select_new_face": "Sélectionner un nouveau visage", "select_new_face": "Sélectionner un nouveau visage",
"select_person_to_tag": "Sélectionner une personne à identifier",
"select_photos": "Sélectionner les photos", "select_photos": "Sélectionner les photos",
"select_trash_all": "Choisir de tout supprimer", "select_trash_all": "Choisir de tout supprimer",
"select_user_for_sharing_page_err_album": "Échec de la création de l'album", "select_user_for_sharing_page_err_album": "Échec de la création de l'album",
@@ -1611,7 +1587,7 @@
"set_profile_picture": "Définir la photo de profil", "set_profile_picture": "Définir la photo de profil",
"set_slideshow_to_fullscreen": "Afficher le diaporama en plein écran", "set_slideshow_to_fullscreen": "Afficher le diaporama en plein écran",
"setting_image_viewer_help": "Le visualiseur de détails charge d'abord la petite miniature, puis l'aperçu de taille moyenne (s'il est activé), enfin l'original (s'il est activé).", "setting_image_viewer_help": "Le visualiseur de détails charge d'abord la petite miniature, puis l'aperçu de taille moyenne (s'il est activé), enfin l'original (s'il est activé).",
"setting_image_viewer_original_subtitle": "Activez cette option pour charger l'image en résolution originale (fichier volumineux!). Désactiver pour réduire l'utilisation des données (réseau et cache de l'appareil).", "setting_image_viewer_original_subtitle": "Activez cette option pour charger l'image en résolution originale (volumineux!). Désactiver pour réduire l'utilisation des données (réseau et cache de l'appareil).",
"setting_image_viewer_original_title": "Charger l'image originale", "setting_image_viewer_original_title": "Charger l'image originale",
"setting_image_viewer_preview_subtitle": "Activer pour charger une image de résolution moyenne. Désactiver pour charger directement l'original ou utiliser uniquement la miniature.", "setting_image_viewer_preview_subtitle": "Activer pour charger une image de résolution moyenne. Désactiver pour charger directement l'original ou utiliser uniquement la miniature.",
"setting_image_viewer_preview_title": "Charger l'image d'aperçu", "setting_image_viewer_preview_title": "Charger l'image d'aperçu",
@@ -1619,16 +1595,16 @@
"setting_languages_apply": "Appliquer", "setting_languages_apply": "Appliquer",
"setting_languages_subtitle": "Changer la langue de l'application", "setting_languages_subtitle": "Changer la langue de l'application",
"setting_languages_title": "Langues", "setting_languages_title": "Langues",
"setting_notifications_notify_failures_grace_period": "Notifier les échecs de la sauvegarde en arrière-plan : {duration}", "setting_notifications_notify_failures_grace_period": "Notifier les échecs de sauvegarde en arrière-plan : {}",
"setting_notifications_notify_hours": "{count} heures", "setting_notifications_notify_hours": "{} heures",
"setting_notifications_notify_immediately": "immédiatement", "setting_notifications_notify_immediately": "immédiatement",
"setting_notifications_notify_minutes": "{count} minutes", "setting_notifications_notify_minutes": "{} minutes",
"setting_notifications_notify_never": "jamais", "setting_notifications_notify_never": "jamais",
"setting_notifications_notify_seconds": "{count} secondes", "setting_notifications_notify_seconds": "{} secondes",
"setting_notifications_single_progress_subtitle": "Informations détaillées sur la progression du téléversement par média", "setting_notifications_single_progress_subtitle": "Informations détaillées sur la progression du transfert par élément",
"setting_notifications_single_progress_title": "Afficher la progression du détail de la sauvegarde en arrière-plan", "setting_notifications_single_progress_title": "Afficher la progression du détail de la sauvegarde en arrière-plan",
"setting_notifications_subtitle": "Ajustez vos préférences de notification", "setting_notifications_subtitle": "Ajustez vos préférences de notification",
"setting_notifications_total_progress_subtitle": "Progression globale du téléversement (effectué/total des médias)", "setting_notifications_total_progress_subtitle": "Progression globale du transfert (effectué/total des éléments)",
"setting_notifications_total_progress_title": "Afficher la progression totale de la sauvegarde en arrière-plan", "setting_notifications_total_progress_title": "Afficher la progression totale de la sauvegarde en arrière-plan",
"setting_video_viewer_looping_title": "Boucle", "setting_video_viewer_looping_title": "Boucle",
"setting_video_viewer_original_video_subtitle": "Lors de la diffusion d'une vidéo depuis le serveur, lisez l'original même si un transcodage est disponible. Cela peut entraîner de la mise en mémoire tampon. Les vidéos disponibles localement sont lues en qualité d'origine, quel que soit ce paramètre.", "setting_video_viewer_original_video_subtitle": "Lors de la diffusion d'une vidéo depuis le serveur, lisez l'original même si un transcodage est disponible. Cela peut entraîner de la mise en mémoire tampon. Les vidéos disponibles localement sont lues en qualité d'origine, quel que soit ce paramètre.",
@@ -1636,14 +1612,13 @@
"settings": "Paramètres", "settings": "Paramètres",
"settings_require_restart": "Veuillez redémarrer Immich pour appliquer ce paramètre", "settings_require_restart": "Veuillez redémarrer Immich pour appliquer ce paramètre",
"settings_saved": "Paramètres sauvegardés", "settings_saved": "Paramètres sauvegardés",
"setup_pin_code": "Définir un code PIN",
"share": "Partager", "share": "Partager",
"share_add_photos": "Ajouter des photos", "share_add_photos": "Ajouter des photos",
"share_assets_selected": "{count} sélectionné(s)", "share_assets_selected": "{} sélectionné(s)",
"share_dialog_preparing": "Préparation...", "share_dialog_preparing": "Préparation...",
"shared": "Partagé", "shared": "Partagé",
"shared_album_activities_input_disable": "Les commentaires sont désactivés", "shared_album_activities_input_disable": "Les commentaires sont désactivés",
"shared_album_activity_remove_content": "Souhaitez-vous supprimer cette activité?", "shared_album_activity_remove_content": "Souhaitez-vous supprimer cette activité?",
"shared_album_activity_remove_title": "Supprimer l'activité", "shared_album_activity_remove_title": "Supprimer l'activité",
"shared_album_section_people_action_error": "Erreur lors de la suppression", "shared_album_section_people_action_error": "Erreur lors de la suppression",
"shared_album_section_people_action_leave": "Supprimer l'utilisateur de l'album", "shared_album_section_people_action_leave": "Supprimer l'utilisateur de l'album",
@@ -1653,32 +1628,32 @@
"shared_by_user": "Partagé par {user}", "shared_by_user": "Partagé par {user}",
"shared_by_you": "Partagé par vous", "shared_by_you": "Partagé par vous",
"shared_from_partner": "Photos de {partner}", "shared_from_partner": "Photos de {partner}",
"shared_intent_upload_button_progress_text": "{current} / {total} Téléversé(s)", "shared_intent_upload_button_progress_text": "{} / {} Envoyés",
"shared_link_app_bar_title": "Liens partagés", "shared_link_app_bar_title": "Liens partagés",
"shared_link_clipboard_copied_massage": "Copié dans le presse-papier", "shared_link_clipboard_copied_massage": "Copié dans le presse-papier\n",
"shared_link_clipboard_text": "Lien : {link}\nMot de passe : {password}", "shared_link_clipboard_text": "Lien : {}\nMot de passe : {}",
"shared_link_create_error": "Erreur pendant la création du lien partagé", "shared_link_create_error": "Erreur pendant la création du lien partagé",
"shared_link_edit_description_hint": "Saisir la description du partage", "shared_link_edit_description_hint": "Saisir la description du partage",
"shared_link_edit_expire_after_option_day": "1 jour", "shared_link_edit_expire_after_option_day": "1 jour",
"shared_link_edit_expire_after_option_days": "{count} jours", "shared_link_edit_expire_after_option_days": "{} jours",
"shared_link_edit_expire_after_option_hour": "1 heure", "shared_link_edit_expire_after_option_hour": "1 heure",
"shared_link_edit_expire_after_option_hours": "{count} heures", "shared_link_edit_expire_after_option_hours": "{} heures",
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_minute": "1 minute",
"shared_link_edit_expire_after_option_minutes": "{count} minutes", "shared_link_edit_expire_after_option_minutes": "{} minutes",
"shared_link_edit_expire_after_option_months": "{count} mois", "shared_link_edit_expire_after_option_months": "{} mois",
"shared_link_edit_expire_after_option_year": "{count} an", "shared_link_edit_expire_after_option_year": "{} années",
"shared_link_edit_password_hint": "Saisir le mot de passe de partage", "shared_link_edit_password_hint": "Saisir le mot de passe de partage",
"shared_link_edit_submit_button": "Mettre à jour le lien", "shared_link_edit_submit_button": "Mettre à jour le lien",
"shared_link_error_server_url_fetch": "Impossible de récupérer l'url du serveur", "shared_link_error_server_url_fetch": "Impossible de récupérer l'url du serveur",
"shared_link_expires_day": "Expire dans {count} jour", "shared_link_expires_day": "Expire dans {} jour",
"shared_link_expires_days": "Expire dans {count} jours", "shared_link_expires_days": "Expire dans {} jours",
"shared_link_expires_hour": "Expire dans {count} heure", "shared_link_expires_hour": "Expire dans {} heure",
"shared_link_expires_hours": "Expire dans {count} heures", "shared_link_expires_hours": "Expire dans {} heures",
"shared_link_expires_minute": "Expire dans {count} minute", "shared_link_expires_minute": "Expire dans {} minute",
"shared_link_expires_minutes": "Expire dans {count} minutes", "shared_link_expires_minutes": "Expire dans {} minutes",
"shared_link_expires_never": "Expire ∞", "shared_link_expires_never": "Expire ∞",
"shared_link_expires_second": "Expire dans {count} seconde", "shared_link_expires_second": "Expire dans {} seconde",
"shared_link_expires_seconds": "Expire dans {count} secondes", "shared_link_expires_seconds": "Expire dans {} secondes",
"shared_link_individual_shared": "Partagé individuellement", "shared_link_individual_shared": "Partagé individuellement",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Gérer les liens partagés", "shared_link_manage_links": "Gérer les liens partagés",
@@ -1753,7 +1728,6 @@
"stop_sharing_photos_with_user": "Arrêter de partager vos photos avec cet utilisateur", "stop_sharing_photos_with_user": "Arrêter de partager vos photos avec cet utilisateur",
"storage": "Stockage", "storage": "Stockage",
"storage_label": "Étiquette de stockage", "storage_label": "Étiquette de stockage",
"storage_quota": "Quota de stockage",
"storage_usage": "{used} sur {available} utilisé", "storage_usage": "{used} sur {available} utilisé",
"submit": "Soumettre", "submit": "Soumettre",
"suggestions": "Suggestions", "suggestions": "Suggestions",
@@ -1764,8 +1738,8 @@
"swap_merge_direction": "Inverser la direction de fusion", "swap_merge_direction": "Inverser la direction de fusion",
"sync": "Synchroniser", "sync": "Synchroniser",
"sync_albums": "Synchroniser dans des albums", "sync_albums": "Synchroniser dans des albums",
"sync_albums_manual_subtitle": "Synchroniser toutes les vidéos et photos téléversées dans les albums sélectionnés", "sync_albums_manual_subtitle": "Synchroniser toutes les vidéos et photos sauvegardées dans les albums sélectionnés",
"sync_upload_album_setting_subtitle": "Crée et téléverse vos photos et vidéos dans les albums sélectionnés sur Immich", "sync_upload_album_setting_subtitle": "Créer et sauvegarde vos photos et vidéos dans les albums sélectionnés sur Immich",
"tag": "Étiquette", "tag": "Étiquette",
"tag_assets": "Étiqueter les médias", "tag_assets": "Étiqueter les médias",
"tag_created": "Étiquette créée: {tag}", "tag_created": "Étiquette créée: {tag}",
@@ -1780,7 +1754,7 @@
"theme_selection": "Sélection du thème", "theme_selection": "Sélection du thème",
"theme_selection_description": "Ajuster automatiquement le thème clair ou sombre via les préférences système", "theme_selection_description": "Ajuster automatiquement le thème clair ou sombre via les préférences système",
"theme_setting_asset_list_storage_indicator_title": "Afficher l'indicateur de stockage sur les tuiles des éléments", "theme_setting_asset_list_storage_indicator_title": "Afficher l'indicateur de stockage sur les tuiles des éléments",
"theme_setting_asset_list_tiles_per_row_title": "Nombre de médias par ligne ({count})", "theme_setting_asset_list_tiles_per_row_title": "Nombre d'éléments par ligne ({})",
"theme_setting_colorful_interface_subtitle": "Appliquer la couleur principale sur les surfaces d'arrière-plan.", "theme_setting_colorful_interface_subtitle": "Appliquer la couleur principale sur les surfaces d'arrière-plan.",
"theme_setting_colorful_interface_title": "Interface colorée", "theme_setting_colorful_interface_title": "Interface colorée",
"theme_setting_image_viewer_quality_subtitle": "Ajustez la qualité de la visionneuse d'images détaillées", "theme_setting_image_viewer_quality_subtitle": "Ajustez la qualité de la visionneuse d'images détaillées",
@@ -1790,7 +1764,7 @@
"theme_setting_system_primary_color_title": "Utiliser la couleur du système", "theme_setting_system_primary_color_title": "Utiliser la couleur du système",
"theme_setting_system_theme_switch": "Automatique (suivre les paramètres du système)", "theme_setting_system_theme_switch": "Automatique (suivre les paramètres du système)",
"theme_setting_theme_subtitle": "Choisissez le thème de l'application", "theme_setting_theme_subtitle": "Choisissez le thème de l'application",
"theme_setting_three_stage_loading_subtitle": "Le chargement en trois étapes peut améliorer les performances de chargement, mais entraîne une augmentation significative de la charge du réseau", "theme_setting_three_stage_loading_subtitle": "Le chargement en trois étapes peut améliorer les performances de chargement, mais entraîne une augmentation significative de la charge du réseau.",
"theme_setting_three_stage_loading_title": "Activer le chargement en trois étapes", "theme_setting_three_stage_loading_title": "Activer le chargement en trois étapes",
"they_will_be_merged_together": "Elles seront fusionnées ensemble", "they_will_be_merged_together": "Elles seront fusionnées ensemble",
"third_party_resources": "Ressources tierces", "third_party_resources": "Ressources tierces",
@@ -1814,16 +1788,14 @@
"trash_emptied": "Corbeille vidée", "trash_emptied": "Corbeille vidée",
"trash_no_results_message": "Les photos et vidéos supprimées s'afficheront ici.", "trash_no_results_message": "Les photos et vidéos supprimées s'afficheront ici.",
"trash_page_delete_all": "Tout supprimer", "trash_page_delete_all": "Tout supprimer",
"trash_page_empty_trash_dialog_content": "Voulez-vous vider les médias de la corbeille? Ces objets seront définitivement retirés d'Immich", "trash_page_empty_trash_dialog_content": "Voulez-vous vider les éléments de la corbeille? Ces objets seront définitivement retirés d'Immich",
"trash_page_info": "Les médias mis à la corbeille seront définitivement supprimés au bout de {days} jours", "trash_page_info": "Les éléments mis à la corbeille seront définitivement supprimés au bout de {} jours.",
"trash_page_no_assets": "Aucun élément dans la corbeille", "trash_page_no_assets": "Aucun élément dans la corbeille",
"trash_page_restore_all": "Tout restaurer", "trash_page_restore_all": "Tout restaurer",
"trash_page_select_assets_btn": "Sélectionner les éléments", "trash_page_select_assets_btn": "Sélectionner les éléments",
"trash_page_title": "Corbeille ({count})", "trash_page_title": "Corbeille ({})",
"trashed_items_will_be_permanently_deleted_after": "Les éléments dans la corbeille seront supprimés définitivement après {days, plural, one {# jour} other {# jours}}.", "trashed_items_will_be_permanently_deleted_after": "Les éléments dans la corbeille seront supprimés définitivement après {days, plural, one {# jour} other {# jours}}.",
"type": "Type", "type": "Type",
"unable_to_change_pin_code": "Impossible de changer le code PIN",
"unable_to_setup_pin_code": "Impossible de définir le code PIN",
"unarchive": "Désarchiver", "unarchive": "Désarchiver",
"unarchived_count": "{count, plural, one {# supprimé} other {# supprimés}} de l'archive", "unarchived_count": "{count, plural, one {# supprimé} other {# supprimés}} de l'archive",
"unfavorite": "Enlever des favoris", "unfavorite": "Enlever des favoris",
@@ -1845,33 +1817,29 @@
"unstack": "Désempiler", "unstack": "Désempiler",
"unstacked_assets_count": "{count, plural, one {# média dépilé} other {# médias dépilés}}", "unstacked_assets_count": "{count, plural, one {# média dépilé} other {# médias dépilés}}",
"untracked_files": "Fichiers non suivis", "untracked_files": "Fichiers non suivis",
"untracked_files_decription": "Ces fichiers ne sont pas suivis par l'application. Ils peuvent être le résultat de déplacements échoués, de téléversements interrompus ou abandonnés pour cause de bug", "untracked_files_decription": "Ces fichiers ne sont pas suivis par l'application. Ils peuvent être le résultat de déplacements échoués, d'envois interrompus ou laissés pour compte à cause d'un bug",
"up_next": "Suite", "up_next": "Suite",
"updated_at": "Mis à jour à",
"updated_password": "Mot de passe mis à jour", "updated_password": "Mot de passe mis à jour",
"upload": "Téléverser", "upload": "Envoyer",
"upload_concurrency": "Téléversements simultanés", "upload_concurrency": "Envois simultanés",
"upload_dialog_info": "Voulez-vous sauvegarder la sélection vers le serveur?", "upload_dialog_info": "Voulez-vous sauvegarder la sélection vers le serveur?",
"upload_dialog_title": "Téléverser le média", "upload_dialog_title": "Télécharger cet élément ",
"upload_errors": "Le téléversement s'est achevé avec {count, plural, one {# erreur} other {# erreurs}}. Rafraîchir la page pour voir les nouveaux médias téléversés.", "upload_errors": "L'envoi s'est achevé avec {count, plural, one {# erreur} other {# erreurs}}. Rafraîchir la page pour voir les nouveaux médias envoyés.",
"upload_progress": "{remaining, number} restant(s) - {processed, number} traité(s)/{total, number}", "upload_progress": "{remaining, number} restant(s) - {processed, number} traité(s)/{total, number}",
"upload_skipped_duplicates": "{count, plural, one {# doublon ignoré} other {# doublons ignorés}}", "upload_skipped_duplicates": "{count, plural, one {# doublon ignoré} other {# doublons ignorés}}",
"upload_status_duplicates": "Doublons", "upload_status_duplicates": "Doublons",
"upload_status_errors": "Erreurs", "upload_status_errors": "Erreurs",
"upload_status_uploaded": "Téléversé", "upload_status_uploaded": "Envoyé",
"upload_success": "Téléversement réussi. Rafraîchir la page pour voir les nouveaux médias téléversés.", "upload_success": "Envoi réussi. Rafraîchir la page pour voir les nouveaux médias envoyés.",
"upload_to_immich": "Téléverser vers Immich ({count})", "upload_to_immich": "Envoyer vers Immich ({})",
"uploading": "Téléversement en cours", "uploading": "Téléversement en cours",
"url": "URL", "url": "URL",
"usage": "Utilisation", "usage": "Utilisation",
"use_current_connection": "Utiliser le réseau actuel", "use_current_connection": "Utiliser le réseau actuel ",
"use_custom_date_range": "Utilisez une plage de date personnalisée à la place", "use_custom_date_range": "Utilisez une plage de date personnalisée à la place",
"user": "Utilisateur", "user": "Utilisateur",
"user_has_been_deleted": "Cet utilisateur à été supprimé.",
"user_id": "ID Utilisateur", "user_id": "ID Utilisateur",
"user_liked": "{user} a aimé {type, select, photo {cette photo} video {cette vidéo} asset {ce média} other {ceci}}", "user_liked": "{user} a aimé {type, select, photo {cette photo} video {cette vidéo} asset {ce média} other {ceci}}",
"user_pin_code_settings": "Code PIN",
"user_pin_code_settings_description": "Gérer votre code PIN",
"user_purchase_settings": "Achat", "user_purchase_settings": "Achat",
"user_purchase_settings_description": "Gérer votre achat", "user_purchase_settings_description": "Gérer votre achat",
"user_role_set": "Définir {user} comme {role}", "user_role_set": "Définir {user} comme {role}",
@@ -1920,11 +1888,11 @@
"week": "Semaine", "week": "Semaine",
"welcome": "Bienvenue", "welcome": "Bienvenue",
"welcome_to_immich": "Bienvenue sur Immich", "welcome_to_immich": "Bienvenue sur Immich",
"wifi_name": "Nom du réseau wifi", "wifi_name": "Nom du réseau ",
"year": "Année", "year": "Année",
"years_ago": "Il y a {years, plural, one {# an} other {# ans}}", "years_ago": "Il y a {years, plural, one {# an} other {# ans}}",
"yes": "Oui", "yes": "Oui",
"you_dont_have_any_shared_links": "Vous n'avez aucun lien partagé", "you_dont_have_any_shared_links": "Vous n'avez aucun lien partagé",
"your_wifi_name": "Nom du réseau wifi", "your_wifi_name": "Nom du réseau Wi-Fi ",
"zoom_image": "Zoomer" "zoom_image": "Zoomer"
} }

View File

@@ -192,13 +192,20 @@
"oauth_auto_register": "Rexistro automático", "oauth_auto_register": "Rexistro automático",
"oauth_auto_register_description": "Rexistrar automaticamente novos usuarios despois de iniciar sesión con OAuth", "oauth_auto_register_description": "Rexistrar automaticamente novos usuarios despois de iniciar sesión con OAuth",
"oauth_button_text": "Texto do botón", "oauth_button_text": "Texto do botón",
"oauth_client_id": "ID de cliente",
"oauth_client_secret": "Segredo do cliente",
"oauth_enable_description": "Iniciar sesión con OAuth", "oauth_enable_description": "Iniciar sesión con OAuth",
"oauth_issuer_url": "URL do emisor",
"oauth_mobile_redirect_uri": "URI de redirección móbil", "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": "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_mobile_redirect_uri_override_description": "Activar cando o provedor OAuth non permite un URI móbil, como '{callback}'",
"oauth_profile_signing_algorithm": "Algoritmo de sinatura do perfil",
"oauth_profile_signing_algorithm_description": "Algoritmo usado para asinar o perfil do usuario.",
"oauth_scope": "Ámbito",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "Xestionar a configuración de inicio de sesión OAuth", "oauth_settings_description": "Xestionar a configuración de inicio de sesión OAuth",
"oauth_settings_more_details": "Para máis detalles sobre esta función, consulte a <link>documentación</link>.", "oauth_settings_more_details": "Para máis detalles sobre esta función, consulte a <link>documentación</link>.",
"oauth_signing_algorithm": "Algoritmo de sinatura",
"oauth_storage_label_claim": "Declaración de etiqueta de almacenamento", "oauth_storage_label_claim": "Declaración de etiqueta de almacenamento",
"oauth_storage_label_claim_description": "Establecer automaticamente a etiqueta de almacenamento do usuario ao valor desta declaración.", "oauth_storage_label_claim_description": "Establecer automaticamente a etiqueta de almacenamento do usuario ao valor desta declaración.",
"oauth_storage_quota_claim": "Declaración de cota de almacenamento", "oauth_storage_quota_claim": "Declaración de cota de almacenamento",
@@ -366,7 +373,7 @@
"advanced": "Avanzado", "advanced": "Avanzado",
"advanced_settings_enable_alternate_media_filter_subtitle": "Usa esta opción para filtrar medios durante a sincronización baseándose en criterios alternativos. Só proba isto se tes problemas coa aplicación detectando todos os álbums.", "advanced_settings_enable_alternate_media_filter_subtitle": "Usa esta opción para filtrar medios durante a sincronización baseándose en criterios alternativos. Só proba isto se tes problemas coa aplicación detectando todos os álbums.",
"advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTAL] Usar filtro alternativo de sincronización de álbums do dispositivo", "advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTAL] Usar filtro alternativo de sincronización de álbums do dispositivo",
"advanced_settings_log_level_title": "Nivel de rexistro: {level}", "advanced_settings_log_level_title": "Nivel de rexistro: {}",
"advanced_settings_prefer_remote_subtitle": "Algúns dispositivos son extremadamente lentos para cargar miniaturas de activos no dispositivo. Active esta configuración para cargar imaxes remotas no seu lugar.", "advanced_settings_prefer_remote_subtitle": "Algúns dispositivos son extremadamente lentos para cargar miniaturas de activos no dispositivo. Active esta configuración para cargar imaxes remotas no seu lugar.",
"advanced_settings_prefer_remote_title": "Preferir imaxes remotas", "advanced_settings_prefer_remote_title": "Preferir imaxes remotas",
"advanced_settings_proxy_headers_subtitle": "Definir cabeceiras de proxy que Immich debería enviar con cada solicitude de rede", "advanced_settings_proxy_headers_subtitle": "Definir cabeceiras de proxy que Immich debería enviar con cada solicitude de rede",
@@ -397,9 +404,9 @@
"album_remove_user_confirmation": "Estás seguro de que queres eliminar a {user}?", "album_remove_user_confirmation": "Estás seguro de que queres eliminar a {user}?",
"album_share_no_users": "Parece que compartiches este álbum con todos os usuarios ou non tes ningún usuario co que compartir.", "album_share_no_users": "Parece que compartiches este álbum con todos os usuarios ou non tes ningún usuario co que compartir.",
"album_thumbnail_card_item": "1 elemento", "album_thumbnail_card_item": "1 elemento",
"album_thumbnail_card_items": "{count} elementos", "album_thumbnail_card_items": "{} elementos",
"album_thumbnail_card_shared": " · Compartido", "album_thumbnail_card_shared": " · Compartido",
"album_thumbnail_shared_by": "Compartido por {user}", "album_thumbnail_shared_by": "Compartido por {}",
"album_updated": "Álbum actualizado", "album_updated": "Álbum actualizado",
"album_updated_setting_description": "Recibir unha notificación por correo electrónico cando un álbum compartido teña novos activos", "album_updated_setting_description": "Recibir unha notificación por correo electrónico cando un álbum compartido teña novos activos",
"album_user_left": "Saíu de {album}", "album_user_left": "Saíu de {album}",
@@ -437,7 +444,7 @@
"archive": "Arquivo", "archive": "Arquivo",
"archive_or_unarchive_photo": "Arquivar ou desarquivar foto", "archive_or_unarchive_photo": "Arquivar ou desarquivar foto",
"archive_page_no_archived_assets": "Non se atoparon activos arquivados", "archive_page_no_archived_assets": "Non se atoparon activos arquivados",
"archive_page_title": "Arquivo ({count})", "archive_page_title": "Arquivo ({})",
"archive_size": "Tamaño do arquivo", "archive_size": "Tamaño do arquivo",
"archive_size_description": "Configurar o tamaño do arquivo para descargas (en GiB)", "archive_size_description": "Configurar o tamaño do arquivo para descargas (en GiB)",
"archived": "Arquivado", "archived": "Arquivado",
@@ -474,27 +481,27 @@
"assets_added_to_album_count": "Engadido {count, plural, one {# activo} other {# activos}} ao álbum", "assets_added_to_album_count": "Engadido {count, plural, one {# activo} other {# activos}} ao álbum",
"assets_added_to_name_count": "Engadido {count, plural, one {# activo} other {# activos}} a {hasName, select, true {<b>{name}</b>} other {novo álbum}}", "assets_added_to_name_count": "Engadido {count, plural, one {# activo} other {# activos}} a {hasName, select, true {<b>{name}</b>} other {novo álbum}}",
"assets_count": "{count, plural, one {# activo} other {# activos}}", "assets_count": "{count, plural, one {# activo} other {# activos}}",
"assets_deleted_permanently": "{count} activo(s) eliminado(s) permanentemente", "assets_deleted_permanently": "{} activo(s) eliminado(s) permanentemente",
"assets_deleted_permanently_from_server": "{count} activo(s) eliminado(s) permanentemente do servidor Immich", "assets_deleted_permanently_from_server": "{} activo(s) eliminado(s) permanentemente do servidor Immich",
"assets_moved_to_trash_count": "Movido {count, plural, one {# activo} other {# activos}} ao lixo", "assets_moved_to_trash_count": "Movido {count, plural, one {# activo} other {# activos}} ao lixo",
"assets_permanently_deleted_count": "Eliminados permanentemente {count, plural, one {# activo} other {# activos}}", "assets_permanently_deleted_count": "Eliminados permanentemente {count, plural, one {# activo} other {# activos}}",
"assets_removed_count": "Eliminados {count, plural, one {# activo} other {# activos}}", "assets_removed_count": "Eliminados {count, plural, one {# activo} other {# activos}}",
"assets_removed_permanently_from_device": "{count} activo(s) eliminado(s) permanentemente do teu dispositivo", "assets_removed_permanently_from_device": "{} activo(s) eliminado(s) permanentemente do teu dispositivo",
"assets_restore_confirmation": "Estás seguro de que queres restaurar todos os seus activos no lixo? Non podes desfacer esta acción! Ten en conta que calquera activo fóra de liña non pode ser restaurado desta maneira.", "assets_restore_confirmation": "Estás seguro de que queres restaurar todos os seus activos no lixo? Non podes desfacer esta acción! Ten en conta que calquera activo fóra de liña non pode ser restaurado desta maneira.",
"assets_restored_count": "Restaurados {count, plural, one {# activo} other {# activos}}", "assets_restored_count": "Restaurados {count, plural, one {# activo} other {# activos}}",
"assets_restored_successfully": "{count} activo(s) restaurado(s) correctamente", "assets_restored_successfully": "{} activo(s) restaurado(s) correctamente",
"assets_trashed": "{count} activo(s) movido(s) ao lixo", "assets_trashed": "{} activo(s) movido(s) ao lixo",
"assets_trashed_count": "Movido {count, plural, one {# activo} other {# activos}} ao lixo", "assets_trashed_count": "Movido {count, plural, one {# activo} other {# activos}} ao lixo",
"assets_trashed_from_server": "{count} activo(s) movido(s) ao lixo desde o servidor Immich", "assets_trashed_from_server": "{} activo(s) movido(s) ao lixo desde o servidor Immich",
"assets_were_part_of_album_count": "{count, plural, one {O activo xa era} other {Os activos xa eran}} parte do álbum", "assets_were_part_of_album_count": "{count, plural, one {O activo xa era} other {Os activos xa eran}} parte do álbum",
"authorized_devices": "Dispositivos Autorizados", "authorized_devices": "Dispositivos Autorizados",
"automatic_endpoint_switching_subtitle": "Conectar localmente a través da wifi designada cando estea dispoñible e usar conexións alternativas noutros lugares", "automatic_endpoint_switching_subtitle": "Conectar localmente a través de Wi-Fi designada cando estea dispoñible e usar conexións alternativas noutros lugares",
"automatic_endpoint_switching_title": "Cambio automático de URL", "automatic_endpoint_switching_title": "Cambio automático de URL",
"back": "Atrás", "back": "Atrás",
"back_close_deselect": "Atrás, pechar ou deseleccionar", "back_close_deselect": "Atrás, pechar ou deseleccionar",
"background_location_permission": "Permiso de ubicación en segundo plano", "background_location_permission": "Permiso de ubicación en segundo plano",
"background_location_permission_content": "Para cambiar de rede cando se executa en segundo plano, Immich debe ter *sempre* acceso á ubicación precisa para que a aplicación poida ler o nome da rede wifi", "background_location_permission_content": "Para cambiar de rede cando se executa en segundo plano, Immich debe ter *sempre* acceso á ubicación precisa para que a aplicación poida ler o nome da rede Wi-Fi",
"backup_album_selection_page_albums_device": "Álbums no dispositivo ({count})", "backup_album_selection_page_albums_device": "Álbums no dispositivo ({})",
"backup_album_selection_page_albums_tap": "Tocar para incluír, dobre toque para excluír", "backup_album_selection_page_albums_tap": "Tocar para incluír, dobre toque para excluír",
"backup_album_selection_page_assets_scatter": "Os activos poden dispersarse por varios álbums. Polo tanto, os álbums poden incluírse ou excluírse durante o proceso de copia de seguridade.", "backup_album_selection_page_assets_scatter": "Os activos poden dispersarse por varios álbums. Polo tanto, os álbums poden incluírse ou excluírse durante o proceso de copia de seguridade.",
"backup_album_selection_page_select_albums": "Seleccionar álbums", "backup_album_selection_page_select_albums": "Seleccionar álbums",
@@ -503,11 +510,11 @@
"backup_all": "Todo", "backup_all": "Todo",
"backup_background_service_backup_failed_message": "Erro ao facer copia de seguridade dos activos. Reintentando…", "backup_background_service_backup_failed_message": "Erro ao facer copia de seguridade dos activos. Reintentando…",
"backup_background_service_connection_failed_message": "Erro ao conectar co servidor. Reintentando…", "backup_background_service_connection_failed_message": "Erro ao conectar co servidor. Reintentando…",
"backup_background_service_current_upload_notification": "Subindo {filename}", "backup_background_service_current_upload_notification": "Subindo {}",
"backup_background_service_default_notification": "Comprobando novos activos…", "backup_background_service_default_notification": "Comprobando novos activos…",
"backup_background_service_error_title": "Erro na copia de seguridade", "backup_background_service_error_title": "Erro na copia de seguridade",
"backup_background_service_in_progress_notification": "Facendo copia de seguridade dos teus activos…", "backup_background_service_in_progress_notification": "Facendo copia de seguridade dos teus activos…",
"backup_background_service_upload_failure_notification": "Erro ao subir {filename}", "backup_background_service_upload_failure_notification": "Erro ao subir {}",
"backup_controller_page_albums": "Álbums da Copia de Seguridade", "backup_controller_page_albums": "Álbums da Copia de Seguridade",
"backup_controller_page_background_app_refresh_disabled_content": "Active a actualización de aplicacións en segundo plano en Axustes > Xeral > Actualización en segundo plano para usar a copia de seguridade en segundo plano.", "backup_controller_page_background_app_refresh_disabled_content": "Active a actualización de aplicacións en segundo plano en Axustes > Xeral > Actualización en segundo plano para usar a copia de seguridade en segundo plano.",
"backup_controller_page_background_app_refresh_disabled_title": "Actualización de aplicacións en segundo plano desactivada", "backup_controller_page_background_app_refresh_disabled_title": "Actualización de aplicacións en segundo plano desactivada",
@@ -518,22 +525,22 @@
"backup_controller_page_background_battery_info_title": "Optimizacións da batería", "backup_controller_page_background_battery_info_title": "Optimizacións da batería",
"backup_controller_page_background_charging": "Só mentres se carga", "backup_controller_page_background_charging": "Só mentres se carga",
"backup_controller_page_background_configure_error": "Erro ao configurar o servizo en segundo plano", "backup_controller_page_background_configure_error": "Erro ao configurar o servizo en segundo plano",
"backup_controller_page_background_delay": "Atrasar copia de seguridade de novos activos: {duration}", "backup_controller_page_background_delay": "Atrasar copia de seguridade de novos activos: {}",
"backup_controller_page_background_description": "Active o servizo en segundo plano para facer copia de seguridade automaticamente de calquera activo novo sen necesidade de abrir a aplicación", "backup_controller_page_background_description": "Active o servizo en segundo plano para facer copia de seguridade automaticamente de calquera activo novo sen necesidade de abrir a aplicación",
"backup_controller_page_background_is_off": "A copia de seguridade automática en segundo plano está desactivada", "backup_controller_page_background_is_off": "A copia de seguridade automática en segundo plano está desactivada",
"backup_controller_page_background_is_on": "A copia de seguridade automática en segundo plano está activada", "backup_controller_page_background_is_on": "A copia de seguridade automática en segundo plano está activada",
"backup_controller_page_background_turn_off": "Desactivar servizo en segundo plano", "backup_controller_page_background_turn_off": "Desactivar servizo en segundo plano",
"backup_controller_page_background_turn_on": "Activar servizo en segundo plano", "backup_controller_page_background_turn_on": "Activar servizo en segundo plano",
"backup_controller_page_background_wifi": "Só con wifi", "backup_controller_page_background_wifi": "Só con WiFi",
"backup_controller_page_backup": "Copia de Seguridade", "backup_controller_page_backup": "Copia de Seguridade",
"backup_controller_page_backup_selected": "Seleccionado: ", "backup_controller_page_backup_selected": "Seleccionado: ",
"backup_controller_page_backup_sub": "Fotos e vídeos con copia de seguridade", "backup_controller_page_backup_sub": "Fotos e vídeos con copia de seguridade",
"backup_controller_page_created": "Creado o: {date}", "backup_controller_page_created": "Creado o: {}",
"backup_controller_page_desc_backup": "Active a copia de seguridade en primeiro plano para cargar automaticamente novos activos ao servidor ao abrir a aplicación.", "backup_controller_page_desc_backup": "Active a copia de seguridade en primeiro plano para cargar automaticamente novos activos ao servidor ao abrir a aplicación.",
"backup_controller_page_excluded": "Excluído: ", "backup_controller_page_excluded": "Excluído: ",
"backup_controller_page_failed": "Fallado ({count})", "backup_controller_page_failed": "Fallado ({})",
"backup_controller_page_filename": "Nome do ficheiro: {filename} [{size}]", "backup_controller_page_filename": "Nome do ficheiro: {} [{}]",
"backup_controller_page_id": "ID: {id}", "backup_controller_page_id": "ID: {}",
"backup_controller_page_info": "Información da Copia de Seguridade", "backup_controller_page_info": "Información da Copia de Seguridade",
"backup_controller_page_none_selected": "Ningún seleccionado", "backup_controller_page_none_selected": "Ningún seleccionado",
"backup_controller_page_remainder": "Restante", "backup_controller_page_remainder": "Restante",
@@ -542,7 +549,7 @@
"backup_controller_page_start_backup": "Iniciar Copia de Seguridade", "backup_controller_page_start_backup": "Iniciar Copia de Seguridade",
"backup_controller_page_status_off": "A copia de seguridade automática en primeiro plano está desactivada", "backup_controller_page_status_off": "A copia de seguridade automática en primeiro plano está desactivada",
"backup_controller_page_status_on": "A copia de seguridade automática en primeiro plano está activada", "backup_controller_page_status_on": "A copia de seguridade automática en primeiro plano está activada",
"backup_controller_page_storage_format": "{used} de {total} usado", "backup_controller_page_storage_format": "{} de {} usado",
"backup_controller_page_to_backup": "Álbums para facer copia de seguridade", "backup_controller_page_to_backup": "Álbums para facer copia de seguridade",
"backup_controller_page_total_sub": "Todas as fotos e vídeos únicos dos álbums seleccionados", "backup_controller_page_total_sub": "Todas as fotos e vídeos únicos dos álbums seleccionados",
"backup_controller_page_turn_off": "Desactivar copia de seguridade en primeiro plano", "backup_controller_page_turn_off": "Desactivar copia de seguridade en primeiro plano",
@@ -567,21 +574,21 @@
"bulk_keep_duplicates_confirmation": "Estás seguro de que queres conservar {count, plural, one {# activo duplicado} other {# activos duplicados}}? Isto resolverá todos os grupos duplicados sen eliminar nada.", "bulk_keep_duplicates_confirmation": "Estás seguro de que queres conservar {count, plural, one {# activo duplicado} other {# activos duplicados}}? Isto resolverá todos os grupos duplicados sen eliminar nada.",
"bulk_trash_duplicates_confirmation": "Estás seguro de que queres mover masivamente ao lixo {count, plural, one {# activo duplicado} other {# activos duplicados}}? Isto conservará o activo máis grande de cada grupo e moverá ao lixo todos os demais duplicados.", "bulk_trash_duplicates_confirmation": "Estás seguro de que queres mover masivamente ao lixo {count, plural, one {# activo duplicado} other {# activos duplicados}}? Isto conservará o activo máis grande de cada grupo e moverá ao lixo todos os demais duplicados.",
"buy": "Comprar Immich", "buy": "Comprar Immich",
"cache_settings_album_thumbnails": "Miniaturas da páxina da biblioteca ({count} activos)", "cache_settings_album_thumbnails": "Miniaturas da páxina da biblioteca ({} activos)",
"cache_settings_clear_cache_button": "Borrar caché", "cache_settings_clear_cache_button": "Borrar caché",
"cache_settings_clear_cache_button_title": "Borra a caché da aplicación. Isto afectará significativamente o rendemento da aplicación ata que a caché se reconstruíu.", "cache_settings_clear_cache_button_title": "Borra a caché da aplicación. Isto afectará significativamente o rendemento da aplicación ata que a caché se reconstruíu.",
"cache_settings_duplicated_assets_clear_button": "BORRAR", "cache_settings_duplicated_assets_clear_button": "BORRAR",
"cache_settings_duplicated_assets_subtitle": "Fotos e vídeos que están na lista negra da aplicación", "cache_settings_duplicated_assets_subtitle": "Fotos e vídeos que están na lista negra da aplicación",
"cache_settings_duplicated_assets_title": "Activos Duplicados ({count})", "cache_settings_duplicated_assets_title": "Activos Duplicados ({})",
"cache_settings_image_cache_size": "Tamaño da caché de imaxes ({count} activos)", "cache_settings_image_cache_size": "Tamaño da caché de imaxes ({} activos)",
"cache_settings_statistics_album": "Miniaturas da biblioteca", "cache_settings_statistics_album": "Miniaturas da biblioteca",
"cache_settings_statistics_assets": "{count} activos ({size})", "cache_settings_statistics_assets": "{} activos ({})",
"cache_settings_statistics_full": "Imaxes completas", "cache_settings_statistics_full": "Imaxes completas",
"cache_settings_statistics_shared": "Miniaturas de álbums compartidos", "cache_settings_statistics_shared": "Miniaturas de álbums compartidos",
"cache_settings_statistics_thumbnail": "Miniaturas", "cache_settings_statistics_thumbnail": "Miniaturas",
"cache_settings_statistics_title": "Uso da caché", "cache_settings_statistics_title": "Uso da caché",
"cache_settings_subtitle": "Controlar o comportamento da caché da aplicación móbil Immich", "cache_settings_subtitle": "Controlar o comportamento da caché da aplicación móbil Immich",
"cache_settings_thumbnail_size": "Tamaño da caché de miniaturas ({count} activos)", "cache_settings_thumbnail_size": "Tamaño da caché de miniaturas ({} activos)",
"cache_settings_tile_subtitle": "Controlar o comportamento do almacenamento local", "cache_settings_tile_subtitle": "Controlar o comportamento do almacenamento local",
"cache_settings_tile_title": "Almacenamento Local", "cache_settings_tile_title": "Almacenamento Local",
"cache_settings_title": "Configuración da Caché", "cache_settings_title": "Configuración da Caché",
@@ -612,7 +619,7 @@
"check_all": "Marcar todo", "check_all": "Marcar todo",
"check_corrupt_asset_backup": "Comprobar copias de seguridade de activos corruptos", "check_corrupt_asset_backup": "Comprobar copias de seguridade de activos corruptos",
"check_corrupt_asset_backup_button": "Realizar comprobación", "check_corrupt_asset_backup_button": "Realizar comprobación",
"check_corrupt_asset_backup_description": "Execute esta comprobación só a través da wifi e unha vez que todos os activos teñan copia de seguridade. O procedemento pode tardar uns minutos.", "check_corrupt_asset_backup_description": "Execute esta comprobación só a través de Wi-Fi e unha vez que todos os activos teñan copia de seguridade. O procedemento pode tardar uns minutos.",
"check_logs": "Comprobar Rexistros", "check_logs": "Comprobar Rexistros",
"choose_matching_people_to_merge": "Elixir persoas coincidentes para fusionar", "choose_matching_people_to_merge": "Elixir persoas coincidentes para fusionar",
"city": "Cidade", "city": "Cidade",
@@ -651,7 +658,7 @@
"contain": "Conter", "contain": "Conter",
"context": "Contexto", "context": "Contexto",
"continue": "Continuar", "continue": "Continuar",
"control_bottom_app_bar_album_info_shared": "{count} elementos · Compartidos", "control_bottom_app_bar_album_info_shared": "{} elementos · Compartidos",
"control_bottom_app_bar_create_new_album": "Crear novo álbum", "control_bottom_app_bar_create_new_album": "Crear novo álbum",
"control_bottom_app_bar_delete_from_immich": "Eliminar de Immich", "control_bottom_app_bar_delete_from_immich": "Eliminar de Immich",
"control_bottom_app_bar_delete_from_local": "Eliminar do dispositivo", "control_bottom_app_bar_delete_from_local": "Eliminar do dispositivo",
@@ -760,7 +767,7 @@
"download_enqueue": "Descarga en cola", "download_enqueue": "Descarga en cola",
"download_error": "Erro na Descarga", "download_error": "Erro na Descarga",
"download_failed": "Descarga fallada", "download_failed": "Descarga fallada",
"download_filename": "ficheiro: {filename}", "download_filename": "ficheiro: {}",
"download_finished": "Descarga finalizada", "download_finished": "Descarga finalizada",
"download_include_embedded_motion_videos": "Vídeos incrustados", "download_include_embedded_motion_videos": "Vídeos incrustados",
"download_include_embedded_motion_videos_description": "Incluír vídeos incrustados en fotos en movemento como un ficheiro separado", "download_include_embedded_motion_videos_description": "Incluír vídeos incrustados en fotos en movemento como un ficheiro separado",
@@ -811,12 +818,12 @@
"enabled": "Activado", "enabled": "Activado",
"end_date": "Data de fin", "end_date": "Data de fin",
"enqueued": "En cola", "enqueued": "En cola",
"enter_wifi_name": "Introducir nome da wifi", "enter_wifi_name": "Introducir nome da WiFi",
"error": "Erro", "error": "Erro",
"error_change_sort_album": "Erro ao cambiar a orde de clasificación do álbum", "error_change_sort_album": "Erro ao cambiar a orde de clasificación do álbum",
"error_delete_face": "Erro ao eliminar a cara do activo", "error_delete_face": "Erro ao eliminar a cara do activo",
"error_loading_image": "Erro ao cargar a imaxe", "error_loading_image": "Erro ao cargar a imaxe",
"error_saving_image": "Erro: {error}", "error_saving_image": "Erro: {}",
"error_title": "Erro - Algo saíu mal", "error_title": "Erro - Algo saíu mal",
"errors": { "errors": {
"cannot_navigate_next_asset": "Non se pode navegar ao seguinte activo", "cannot_navigate_next_asset": "Non se pode navegar ao seguinte activo",
@@ -846,12 +853,10 @@
"failed_to_keep_this_delete_others": "Erro ao conservar este activo e eliminar os outros activos", "failed_to_keep_this_delete_others": "Erro ao conservar este activo e eliminar os outros activos",
"failed_to_load_asset": "Erro ao cargar o activo", "failed_to_load_asset": "Erro ao cargar o activo",
"failed_to_load_assets": "Erro ao cargar activos", "failed_to_load_assets": "Erro ao cargar activos",
"failed_to_load_notifications": "Erro ao cargar as notificacións",
"failed_to_load_people": "Erro ao cargar persoas", "failed_to_load_people": "Erro ao cargar persoas",
"failed_to_remove_product_key": "Erro ao eliminar a chave do produto", "failed_to_remove_product_key": "Erro ao eliminar a chave do produto",
"failed_to_stack_assets": "Erro ao apilar activos", "failed_to_stack_assets": "Erro ao apilar activos",
"failed_to_unstack_assets": "Erro ao desapilar activos", "failed_to_unstack_assets": "Erro ao desapilar activos",
"failed_to_update_notification_status": "Erro ao actualizar o estado das notificacións",
"import_path_already_exists": "Esta ruta de importación xa existe.", "import_path_already_exists": "Esta ruta de importación xa existe.",
"incorrect_email_or_password": "Correo electrónico ou contrasinal incorrectos", "incorrect_email_or_password": "Correo electrónico ou contrasinal incorrectos",
"paths_validation_failed": "{paths, plural, one {# ruta fallou} other {# rutas fallaron}} na validación", "paths_validation_failed": "{paths, plural, one {# ruta fallou} other {# rutas fallaron}} na validación",
@@ -952,10 +957,10 @@
"exif_bottom_sheet_location": "UBICACIÓN", "exif_bottom_sheet_location": "UBICACIÓN",
"exif_bottom_sheet_people": "PERSOAS", "exif_bottom_sheet_people": "PERSOAS",
"exif_bottom_sheet_person_add_person": "Engadir nome", "exif_bottom_sheet_person_add_person": "Engadir nome",
"exif_bottom_sheet_person_age": "Idade {age}", "exif_bottom_sheet_person_age": "Idade {}",
"exif_bottom_sheet_person_age_months": "Idade {months} meses", "exif_bottom_sheet_person_age_months": "Idade {} meses",
"exif_bottom_sheet_person_age_year_months": "Idade 1 ano, {months} meses", "exif_bottom_sheet_person_age_year_months": "Idade 1 ano, {} meses",
"exif_bottom_sheet_person_age_years": "Idade {years}", "exif_bottom_sheet_person_age_years": "Idade {}",
"exit_slideshow": "Saír da Presentación", "exit_slideshow": "Saír da Presentación",
"expand_all": "Expandir todo", "expand_all": "Expandir todo",
"experimental_settings_new_asset_list_subtitle": "Traballo en progreso", "experimental_settings_new_asset_list_subtitle": "Traballo en progreso",
@@ -973,7 +978,7 @@
"external": "Externo", "external": "Externo",
"external_libraries": "Bibliotecas Externas", "external_libraries": "Bibliotecas Externas",
"external_network": "Rede externa", "external_network": "Rede externa",
"external_network_sheet_info": "Cando non estea na rede wifi preferida, a aplicación conectarase ao servidor a través da primeira das seguintes URLs que poida alcanzar, comezando de arriba a abaixo", "external_network_sheet_info": "Cando non estea na rede WiFi preferida, a aplicación conectarase ao servidor a través da primeira das seguintes URLs que poida alcanzar, comezando de arriba a abaixo",
"face_unassigned": "Sen asignar", "face_unassigned": "Sen asignar",
"failed": "Fallado", "failed": "Fallado",
"failed_to_load_assets": "Erro ao cargar activos", "failed_to_load_assets": "Erro ao cargar activos",
@@ -1001,7 +1006,7 @@
"forward": "Adiante", "forward": "Adiante",
"general": "Xeral", "general": "Xeral",
"get_help": "Obter Axuda", "get_help": "Obter Axuda",
"get_wifiname_error": "Non se puido obter o nome da wifi. Asegúrate de que concedeu os permisos necesarios e está conectado a unha rede wifi", "get_wifiname_error": "Non se puido obter o nome da Wi-Fi. Asegúrate de que concedeu os permisos necesarios e está conectado a unha rede Wi-Fi",
"getting_started": "Primeiros Pasos", "getting_started": "Primeiros Pasos",
"go_back": "Volver", "go_back": "Volver",
"go_to_folder": "Ir ao cartafol", "go_to_folder": "Ir ao cartafol",
@@ -1118,9 +1123,9 @@
"loading": "Cargando", "loading": "Cargando",
"loading_search_results_failed": "Erro ao cargar os resultados da busca", "loading_search_results_failed": "Erro ao cargar os resultados da busca",
"local_network": "Rede local", "local_network": "Rede local",
"local_network_sheet_info": "A aplicación conectarase ao servidor a través desta URL cando use a rede wifi especificada", "local_network_sheet_info": "A aplicación conectarase ao servidor a través desta URL cando use a rede Wi-Fi especificada",
"location_permission": "Permiso de ubicación", "location_permission": "Permiso de ubicación",
"location_permission_content": "Para usar a función de cambio automático, Immich necesita permiso de ubicación precisa para poder ler o nome da rede wifi actual", "location_permission_content": "Para usar a función de cambio automático, Immich necesita permiso de ubicación precisa para poder ler o nome da rede WiFi actual",
"location_picker_choose_on_map": "Elixir no mapa", "location_picker_choose_on_map": "Elixir no mapa",
"location_picker_latitude_error": "Introducir unha latitude válida", "location_picker_latitude_error": "Introducir unha latitude válida",
"location_picker_latitude_hint": "Introduza a túa latitude aquí", "location_picker_latitude_hint": "Introduza a túa latitude aquí",
@@ -1170,8 +1175,8 @@
"manage_your_devices": "Xestionar os teus dispositivos con sesión iniciada", "manage_your_devices": "Xestionar os teus dispositivos con sesión iniciada",
"manage_your_oauth_connection": "Xestionar a túa conexión OAuth", "manage_your_oauth_connection": "Xestionar a túa conexión OAuth",
"map": "Mapa", "map": "Mapa",
"map_assets_in_bound": "{count} foto", "map_assets_in_bound": "{} foto",
"map_assets_in_bounds": "{count} fotos", "map_assets_in_bounds": "{} fotos",
"map_cannot_get_user_location": "Non se pode obter a ubicación do usuario", "map_cannot_get_user_location": "Non se pode obter a ubicación do usuario",
"map_location_dialog_yes": "Si", "map_location_dialog_yes": "Si",
"map_location_picker_page_use_location": "Usar esta ubicación", "map_location_picker_page_use_location": "Usar esta ubicación",
@@ -1185,18 +1190,15 @@
"map_settings": "Configuración do mapa", "map_settings": "Configuración do mapa",
"map_settings_dark_mode": "Modo escuro", "map_settings_dark_mode": "Modo escuro",
"map_settings_date_range_option_day": "Últimas 24 horas", "map_settings_date_range_option_day": "Últimas 24 horas",
"map_settings_date_range_option_days": "Últimos {days} días", "map_settings_date_range_option_days": "Últimos {} días",
"map_settings_date_range_option_year": "Último ano", "map_settings_date_range_option_year": "Último ano",
"map_settings_date_range_option_years": "Últimos {years} anos", "map_settings_date_range_option_years": "Últimos {} anos",
"map_settings_dialog_title": "Configuración do Mapa", "map_settings_dialog_title": "Configuración do Mapa",
"map_settings_include_show_archived": "Incluír Arquivados", "map_settings_include_show_archived": "Incluír Arquivados",
"map_settings_include_show_partners": "Incluír Compañeiros/as", "map_settings_include_show_partners": "Incluír Compañeiros/as",
"map_settings_only_show_favorites": "Mostrar Só Favoritos", "map_settings_only_show_favorites": "Mostrar Só Favoritos",
"map_settings_theme_settings": "Tema do Mapa", "map_settings_theme_settings": "Tema do Mapa",
"map_zoom_to_see_photos": "Alonxe o zoom para ver fotos", "map_zoom_to_see_photos": "Alonxe o zoom para ver fotos",
"mark_all_as_read": "Marcar todo como lido",
"mark_as_read": "Marcar como lido",
"marked_all_as_read": "Marcado todo como lido",
"matches": "Coincidencias", "matches": "Coincidencias",
"media_type": "Tipo de medio", "media_type": "Tipo de medio",
"memories": "Recordos", "memories": "Recordos",
@@ -1206,7 +1208,7 @@
"memories_start_over": "Comezar de novo", "memories_start_over": "Comezar de novo",
"memories_swipe_to_close": "Deslizar cara arriba para pechar", "memories_swipe_to_close": "Deslizar cara arriba para pechar",
"memories_year_ago": "Hai un ano", "memories_year_ago": "Hai un ano",
"memories_years_ago": "Hai {years} anos", "memories_years_ago": "Hai {} anos",
"memory": "Recordo", "memory": "Recordo",
"memory_lane_title": "Camiño dos Recordos {title}", "memory_lane_title": "Camiño dos Recordos {title}",
"menu": "Menú", "menu": "Menú",
@@ -1255,7 +1257,6 @@
"no_favorites_message": "Engade favoritos para atopar rapidamente as túas mellores fotos e vídeos", "no_favorites_message": "Engade favoritos para atopar rapidamente as túas mellores fotos e vídeos",
"no_libraries_message": "Crea unha biblioteca externa para ver as túas fotos e vídeos", "no_libraries_message": "Crea unha biblioteca externa para ver as túas fotos e vídeos",
"no_name": "Sen Nome", "no_name": "Sen Nome",
"no_notifications": "Sen notificacións",
"no_places": "Sen lugares", "no_places": "Sen lugares",
"no_results": "Sen resultados", "no_results": "Sen resultados",
"no_results_description": "Proba cun sinónimo ou palabra chave máis xeral", "no_results_description": "Proba cun sinónimo ou palabra chave máis xeral",
@@ -1310,7 +1311,7 @@
"partner_page_partner_add_failed": "Erro ao engadir compañeiro/a", "partner_page_partner_add_failed": "Erro ao engadir compañeiro/a",
"partner_page_select_partner": "Seleccionar compañeiro/a", "partner_page_select_partner": "Seleccionar compañeiro/a",
"partner_page_shared_to_title": "Compartido con", "partner_page_shared_to_title": "Compartido con",
"partner_page_stop_sharing_content": "{partner} xa non poderá acceder ás túas fotos.", "partner_page_stop_sharing_content": "{} xa non poderás acceder ás túas fotos.",
"partner_sharing": "Compartición con Compañeiro/a", "partner_sharing": "Compartición con Compañeiro/a",
"partners": "Compañeiros/as", "partners": "Compañeiros/as",
"password": "Contrasinal", "password": "Contrasinal",
@@ -1386,7 +1387,7 @@
"public_share": "Compartir Público", "public_share": "Compartir Público",
"purchase_account_info": "Seguidor/a", "purchase_account_info": "Seguidor/a",
"purchase_activated_subtitle": "Grazas por apoiar Immich e o software de código aberto", "purchase_activated_subtitle": "Grazas por apoiar Immich e o software de código aberto",
"purchase_activated_time": "Activado o {date}", "purchase_activated_time": "Activado o {date, date}",
"purchase_activated_title": "A súa chave activouse correctamente", "purchase_activated_title": "A súa chave activouse correctamente",
"purchase_button_activate": "Activar", "purchase_button_activate": "Activar",
"purchase_button_buy": "Comprar", "purchase_button_buy": "Comprar",
@@ -1431,8 +1432,6 @@
"recent_searches": "Buscas recentes", "recent_searches": "Buscas recentes",
"recently_added": "Engadido recentemente", "recently_added": "Engadido recentemente",
"recently_added_page_title": "Engadido Recentemente", "recently_added_page_title": "Engadido Recentemente",
"recently_taken": "Recentemente tomado",
"recently_taken_page_title": "Recentemente Tomado",
"refresh": "Actualizar", "refresh": "Actualizar",
"refresh_encoded_videos": "Actualizar vídeos codificados", "refresh_encoded_videos": "Actualizar vídeos codificados",
"refresh_faces": "Actualizar caras", "refresh_faces": "Actualizar caras",
@@ -1597,12 +1596,12 @@
"setting_languages_apply": "Aplicar", "setting_languages_apply": "Aplicar",
"setting_languages_subtitle": "Cambiar a lingua da aplicación", "setting_languages_subtitle": "Cambiar a lingua da aplicación",
"setting_languages_title": "Linguas", "setting_languages_title": "Linguas",
"setting_notifications_notify_failures_grace_period": "Notificar fallos da copia de seguridade en segundo plano: {duration}", "setting_notifications_notify_failures_grace_period": "Notificar fallos da copia de seguridade en segundo plano: {}",
"setting_notifications_notify_hours": "{count} horas", "setting_notifications_notify_hours": "{} horas",
"setting_notifications_notify_immediately": "inmediatamente", "setting_notifications_notify_immediately": "inmediatamente",
"setting_notifications_notify_minutes": "{count} minutos", "setting_notifications_notify_minutes": "{} minutos",
"setting_notifications_notify_never": "nunca", "setting_notifications_notify_never": "nunca",
"setting_notifications_notify_seconds": "{count} segundos", "setting_notifications_notify_seconds": "{} segundos",
"setting_notifications_single_progress_subtitle": "Información detallada do progreso da carga por activo", "setting_notifications_single_progress_subtitle": "Información detallada do progreso da carga por activo",
"setting_notifications_single_progress_title": "Mostrar progreso detallado da copia de seguridade en segundo plano", "setting_notifications_single_progress_title": "Mostrar progreso detallado da copia de seguridade en segundo plano",
"setting_notifications_subtitle": "Axustar as túas preferencias de notificación", "setting_notifications_subtitle": "Axustar as túas preferencias de notificación",
@@ -1616,7 +1615,7 @@
"settings_saved": "Configuración gardada", "settings_saved": "Configuración gardada",
"share": "Compartir", "share": "Compartir",
"share_add_photos": "Engadir fotos", "share_add_photos": "Engadir fotos",
"share_assets_selected": "{count} seleccionados", "share_assets_selected": "{} seleccionados",
"share_dialog_preparing": "Preparando...", "share_dialog_preparing": "Preparando...",
"shared": "Compartido", "shared": "Compartido",
"shared_album_activities_input_disable": "O comentario está desactivado", "shared_album_activities_input_disable": "O comentario está desactivado",
@@ -1630,32 +1629,32 @@
"shared_by_user": "Compartido por {user}", "shared_by_user": "Compartido por {user}",
"shared_by_you": "Compartido por ti", "shared_by_you": "Compartido por ti",
"shared_from_partner": "Fotos de {partner}", "shared_from_partner": "Fotos de {partner}",
"shared_intent_upload_button_progress_text": "{current} / {total} Subidos", "shared_intent_upload_button_progress_text": "{} / {} Subidos",
"shared_link_app_bar_title": "Ligazóns Compartidas", "shared_link_app_bar_title": "Ligazóns Compartidas",
"shared_link_clipboard_copied_massage": "Copiado ao portapapeis", "shared_link_clipboard_copied_massage": "Copiado ao portapapeis",
"shared_link_clipboard_text": "Ligazón: {link}\nContrasinal: {password}", "shared_link_clipboard_text": "Ligazón: {}\nContrasinal: {}",
"shared_link_create_error": "Erro ao crear ligazón compartida", "shared_link_create_error": "Erro ao crear ligazón compartida",
"shared_link_edit_description_hint": "Introduza a descrición da compartición", "shared_link_edit_description_hint": "Introduza a descrición da compartición",
"shared_link_edit_expire_after_option_day": "1 día", "shared_link_edit_expire_after_option_day": "1 día",
"shared_link_edit_expire_after_option_days": "{count} días", "shared_link_edit_expire_after_option_days": "{} días",
"shared_link_edit_expire_after_option_hour": "1 hora", "shared_link_edit_expire_after_option_hour": "1 hora",
"shared_link_edit_expire_after_option_hours": "{count} horas", "shared_link_edit_expire_after_option_hours": "{} horas",
"shared_link_edit_expire_after_option_minute": "1 minuto", "shared_link_edit_expire_after_option_minute": "1 minuto",
"shared_link_edit_expire_after_option_minutes": "{count} minutos", "shared_link_edit_expire_after_option_minutes": "{} minutos",
"shared_link_edit_expire_after_option_months": "{count} meses", "shared_link_edit_expire_after_option_months": "{} meses",
"shared_link_edit_expire_after_option_year": "{count} ano", "shared_link_edit_expire_after_option_year": "{} ano",
"shared_link_edit_password_hint": "Introduza o contrasinal da compartición", "shared_link_edit_password_hint": "Introduza o contrasinal da compartición",
"shared_link_edit_submit_button": "Actualizar ligazón", "shared_link_edit_submit_button": "Actualizar ligazón",
"shared_link_error_server_url_fetch": "Non se pode obter a url do servidor", "shared_link_error_server_url_fetch": "Non se pode obter a url do servidor",
"shared_link_expires_day": "Caduca en {count} día", "shared_link_expires_day": "Caduca en {} día",
"shared_link_expires_days": "Caduca en {count} días", "shared_link_expires_days": "Caduca en {} días",
"shared_link_expires_hour": "Caduca en {count} hora", "shared_link_expires_hour": "Caduca en {} hora",
"shared_link_expires_hours": "Caduca en {count} horas", "shared_link_expires_hours": "Caduca en {} horas",
"shared_link_expires_minute": "Caduca en {count} minuto", "shared_link_expires_minute": "Caduca en {} minuto",
"shared_link_expires_minutes": "Caduca en {count} minutos", "shared_link_expires_minutes": "Caduca en {} minutos",
"shared_link_expires_never": "Caduca ∞", "shared_link_expires_never": "Caduca ∞",
"shared_link_expires_second": "Caduca en {count} segundo", "shared_link_expires_second": "Caduca en {} segundo",
"shared_link_expires_seconds": "Caduca en {count} segundos", "shared_link_expires_seconds": "Caduca en {} segundos",
"shared_link_individual_shared": "Compartido individualmente", "shared_link_individual_shared": "Compartido individualmente",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Xestionar ligazóns Compartidas", "shared_link_manage_links": "Xestionar ligazóns Compartidas",
@@ -1756,7 +1755,7 @@
"theme_selection": "Selección de tema", "theme_selection": "Selección de tema",
"theme_selection_description": "Establecer automaticamente o tema a claro ou escuro baseándose na preferencia do sistema do teu navegador", "theme_selection_description": "Establecer automaticamente o tema a claro ou escuro baseándose na preferencia do sistema do teu navegador",
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamento nas tellas de activos", "theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamento nas tellas de activos",
"theme_setting_asset_list_tiles_per_row_title": "Número de activos por fila ({count})", "theme_setting_asset_list_tiles_per_row_title": "Número de activos por fila ({})",
"theme_setting_colorful_interface_subtitle": "Aplicar cor primaria ás superficies de fondo.", "theme_setting_colorful_interface_subtitle": "Aplicar cor primaria ás superficies de fondo.",
"theme_setting_colorful_interface_title": "Interface colorida", "theme_setting_colorful_interface_title": "Interface colorida",
"theme_setting_image_viewer_quality_subtitle": "Axustar a calidade do visor de imaxes de detalle", "theme_setting_image_viewer_quality_subtitle": "Axustar a calidade do visor de imaxes de detalle",
@@ -1791,11 +1790,11 @@
"trash_no_results_message": "As fotos e vídeos movidos ao lixo aparecerán aquí.", "trash_no_results_message": "As fotos e vídeos movidos ao lixo aparecerán aquí.",
"trash_page_delete_all": "Eliminar Todo", "trash_page_delete_all": "Eliminar Todo",
"trash_page_empty_trash_dialog_content": "Queres baleirar os teus activos no lixo? Estes elementos eliminaranse permanentemente de Immich", "trash_page_empty_trash_dialog_content": "Queres baleirar os teus activos no lixo? Estes elementos eliminaranse permanentemente de Immich",
"trash_page_info": "Os elementos no lixo eliminaranse permanentemente despois de {days} días", "trash_page_info": "Os elementos no lixo eliminaranse permanentemente despois de {} días",
"trash_page_no_assets": "Non hai activos no lixo", "trash_page_no_assets": "Non hai activos no lixo",
"trash_page_restore_all": "Restaurar Todo", "trash_page_restore_all": "Restaurar Todo",
"trash_page_select_assets_btn": "Seleccionar activos", "trash_page_select_assets_btn": "Seleccionar activos",
"trash_page_title": "Lixo ({count})", "trash_page_title": "Lixo ({})",
"trashed_items_will_be_permanently_deleted_after": "Os elementos no lixo eliminaranse permanentemente despois de {days, plural, one {# día} other {# días}}.", "trashed_items_will_be_permanently_deleted_after": "Os elementos no lixo eliminaranse permanentemente despois de {days, plural, one {# día} other {# días}}.",
"type": "Tipo", "type": "Tipo",
"unarchive": "Desarquivar", "unarchive": "Desarquivar",
@@ -1833,7 +1832,7 @@
"upload_status_errors": "Erros", "upload_status_errors": "Erros",
"upload_status_uploaded": "Subido", "upload_status_uploaded": "Subido",
"upload_success": "Subida exitosa, actualice a páxina para ver os novos activos subidos.", "upload_success": "Subida exitosa, actualice a páxina para ver os novos activos subidos.",
"upload_to_immich": "Subir a Immich ({count})", "upload_to_immich": "Subir a Immich ({})",
"uploading": "Subindo", "uploading": "Subindo",
"url": "URL", "url": "URL",
"usage": "Uso", "usage": "Uso",
@@ -1890,11 +1889,11 @@
"week": "Semana", "week": "Semana",
"welcome": "Benvido/a", "welcome": "Benvido/a",
"welcome_to_immich": "Benvido/a a Immich", "welcome_to_immich": "Benvido/a a Immich",
"wifi_name": "Nome da wifi", "wifi_name": "Nome da WiFi",
"year": "Ano", "year": "Ano",
"years_ago": "Hai {years, plural, one {# ano} other {# anos}}", "years_ago": "Hai {years, plural, one {# ano} other {# anos}}",
"yes": "Si", "yes": "Si",
"you_dont_have_any_shared_links": "Non tes ningunha ligazón compartida", "you_dont_have_any_shared_links": "Non tes ningunha ligazón compartida",
"your_wifi_name": "O nome da túa wifi", "your_wifi_name": "O nome da túa WiFi",
"zoom_image": "Ampliar Imaxe" "zoom_image": "Ampliar Imaxe"
} }

View File

@@ -53,7 +53,6 @@
"confirm_email_below": "כדי לאשר, יש להקליד \"{email}\" למטה", "confirm_email_below": "כדי לאשר, יש להקליד \"{email}\" למטה",
"confirm_reprocess_all_faces": "האם באמת ברצונך לעבד מחדש את כל הפנים? זה גם ינקה אנשים בעלי שם.", "confirm_reprocess_all_faces": "האם באמת ברצונך לעבד מחדש את כל הפנים? זה גם ינקה אנשים בעלי שם.",
"confirm_user_password_reset": "האם באמת ברצונך לאפס את הסיסמה של המשתמש {user}?", "confirm_user_password_reset": "האם באמת ברצונך לאפס את הסיסמה של המשתמש {user}?",
"confirm_user_pin_code_reset": "האם אתה בטוח שברצונך לאפס את קוד ה PIN של {user}?",
"create_job": "צור עבודה", "create_job": "צור עבודה",
"cron_expression": "ביטוי cron", "cron_expression": "ביטוי cron",
"cron_expression_description": "הגדר את מרווח הסריקה באמצעות תבנית ה- cron. למידע נוסף נא לפנות למשל אל <link>Crontab Guru</link>", "cron_expression_description": "הגדר את מרווח הסריקה באמצעות תבנית ה- cron. למידע נוסף נא לפנות למשל אל <link>Crontab Guru</link>",
@@ -193,22 +192,26 @@
"oauth_auto_register": "רישום אוטומטי", "oauth_auto_register": "רישום אוטומטי",
"oauth_auto_register_description": "רשום אוטומטית משתמשים חדשים לאחר כניסה עם OAuth", "oauth_auto_register_description": "רשום אוטומטית משתמשים חדשים לאחר כניסה עם OAuth",
"oauth_button_text": "טקסט לחצן", "oauth_button_text": "טקסט לחצן",
"oauth_client_secret_description": "נדרש כאשר ספק ה־OAuth אינו תומך ב־PKCE (מפתח הוכחה להחלפת קוד)", "oauth_client_id": "מזהה לקוח",
"oauth_client_secret": "סוד לקוח",
"oauth_enable_description": "התחבר עם OAuth", "oauth_enable_description": "התחבר עם OAuth",
"oauth_issuer_url": "כתובת אתר המנפיק",
"oauth_mobile_redirect_uri": "URI להפניה מחדש בנייד", "oauth_mobile_redirect_uri": "URI להפניה מחדש בנייד",
"oauth_mobile_redirect_uri_override": "עקיפת URI להפניה מחדש בנייד", "oauth_mobile_redirect_uri_override": "עקיפת URI להפניה מחדש בנייד",
"oauth_mobile_redirect_uri_override_description": "אפשר כאשר ספק OAuth לא מאפשר כתובת URI לנייד, כמו '{callback}'", "oauth_mobile_redirect_uri_override_description": "אפשר כאשר ספק OAuth לא מאפשר כתובת URI לנייד, כמו '{callback}'",
"oauth_profile_signing_algorithm": "אלגוריתם חתימת פרופיל",
"oauth_profile_signing_algorithm_description": "אלגוריתם המשמש לחתימה על פרופיל המשתמש.",
"oauth_scope": "רמת הרשאה",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "ניהול הגדרות התחברות עם OAuth", "oauth_settings_description": "ניהול הגדרות התחברות עם OAuth",
"oauth_settings_more_details": "למידע נוסף אודות תכונה זו, בדוק את ה<link>תיעוד</link>.", "oauth_settings_more_details": "למידע נוסף אודות תכונה זו, בדוק את ה<link>תיעוד</link>.",
"oauth_signing_algorithm": "אלגוריתם חתימה",
"oauth_storage_label_claim": "דרישת תווית אחסון", "oauth_storage_label_claim": "דרישת תווית אחסון",
"oauth_storage_label_claim_description": "הגדר אוטומטית את תווית האחסון של המשתמש לערך של דרישה זו.", "oauth_storage_label_claim_description": "הגדר אוטומטית את תווית האחסון של המשתמש לערך של דרישה זו.",
"oauth_storage_quota_claim": "דרישת מכסת אחסון", "oauth_storage_quota_claim": "דרישת מכסת אחסון",
"oauth_storage_quota_claim_description": "הגדר אוטומטית את מכסת האחסון של המשתמש לערך של דרישה זו.", "oauth_storage_quota_claim_description": "הגדר אוטומטית את מכסת האחסון של המשתמש לערך של דרישה זו.",
"oauth_storage_quota_default": "מכסת אחסון ברירת מחדל (GiB)", "oauth_storage_quota_default": "מכסת אחסון ברירת מחדל (GiB)",
"oauth_storage_quota_default_description": "מכסה ב-GiB לשימוש כאשר לא מסופקת דרישה (הזן 0 עבור מכסה בלתי מוגבלת).", "oauth_storage_quota_default_description": "מכסה ב-GiB לשימוש כאשר לא מסופקת דרישה (הזן 0 עבור מכסה בלתי מוגבלת).",
"oauth_timeout": "הבקשה נכשלה הזמן הקצוב הסתיים",
"oauth_timeout_description": "זמן קצוב לבקשות (במילישניות)",
"offline_paths": "נתיבים לא מקוונים", "offline_paths": "נתיבים לא מקוונים",
"offline_paths_description": "תוצאות אלו עשויות להיות עקב מחיקה ידנית של קבצים שאינם חלק מספרייה חיצונית.", "offline_paths_description": "תוצאות אלו עשויות להיות עקב מחיקה ידנית של קבצים שאינם חלק מספרייה חיצונית.",
"password_enable_description": "התחבר עם דוא\"ל וסיסמה", "password_enable_description": "התחבר עם דוא\"ל וסיסמה",
@@ -611,7 +614,6 @@
"change_password_form_new_password": "סיסמה חדשה", "change_password_form_new_password": "סיסמה חדשה",
"change_password_form_password_mismatch": "סיסמאות לא תואמות", "change_password_form_password_mismatch": "סיסמאות לא תואמות",
"change_password_form_reenter_new_password": "הכנס שוב סיסמה חדשה", "change_password_form_reenter_new_password": "הכנס שוב סיסמה חדשה",
"change_pin_code": "שנה קוד PIN",
"change_your_password": "החלף את הסיסמה שלך", "change_your_password": "החלף את הסיסמה שלך",
"changed_visibility_successfully": "הנראות שונתה בהצלחה", "changed_visibility_successfully": "הנראות שונתה בהצלחה",
"check_all": "לסמן הכל", "check_all": "לסמן הכל",
@@ -652,7 +654,6 @@
"confirm_delete_face": "האם באמת ברצונך למחוק את הפנים של {name} מהתמונה?", "confirm_delete_face": "האם באמת ברצונך למחוק את הפנים של {name} מהתמונה?",
"confirm_delete_shared_link": "האם באמת ברצונך למחוק את הקישור המשותף הזה?", "confirm_delete_shared_link": "האם באמת ברצונך למחוק את הקישור המשותף הזה?",
"confirm_keep_this_delete_others": "כל שאר תמונות שבערימה יימחקו למעט תמונה זאת. האם באמת ברצונך להמשיך?", "confirm_keep_this_delete_others": "כל שאר תמונות שבערימה יימחקו למעט תמונה זאת. האם באמת ברצונך להמשיך?",
"confirm_new_pin_code": "אשר קוד PIN חדש",
"confirm_password": "אשר סיסמה", "confirm_password": "אשר סיסמה",
"contain": "מכיל", "contain": "מכיל",
"context": "הקשר", "context": "הקשר",
@@ -698,7 +699,6 @@
"crop": "חתוך", "crop": "חתוך",
"curated_object_page_title": "דברים", "curated_object_page_title": "דברים",
"current_device": "מכשיר נוכחי", "current_device": "מכשיר נוכחי",
"current_pin_code": "קוד PIN הנוכחי",
"current_server_address": "כתובת שרת נוכחית", "current_server_address": "כתובת שרת נוכחית",
"custom_locale": "אזור שפה מותאם אישית", "custom_locale": "אזור שפה מותאם אישית",
"custom_locale_description": "עצב תאריכים ומספרים על סמך השפה והאזור", "custom_locale_description": "עצב תאריכים ומספרים על סמך השפה והאזור",
@@ -853,12 +853,10 @@
"failed_to_keep_this_delete_others": "הפעולה נכשלה לא ניתן היה לשמור את התמונה הזו ולמחוק את שאר התמונות", "failed_to_keep_this_delete_others": "הפעולה נכשלה לא ניתן היה לשמור את התמונה הזו ולמחוק את שאר התמונות",
"failed_to_load_asset": "טעינת התמונה נכשלה", "failed_to_load_asset": "טעינת התמונה נכשלה",
"failed_to_load_assets": "טעינת התמונות נכשלה", "failed_to_load_assets": "טעינת התמונות נכשלה",
"failed_to_load_notifications": "אירעה שגיאה בעת טעינת ההתראות",
"failed_to_load_people": "נכשל באחזור אנשים", "failed_to_load_people": "נכשל באחזור אנשים",
"failed_to_remove_product_key": "הסרת מפתח מוצר נכשלה", "failed_to_remove_product_key": "הסרת מפתח מוצר נכשלה",
"failed_to_stack_assets": "יצירת ערימת תמונות נכשלה", "failed_to_stack_assets": "יצירת ערימת תמונות נכשלה",
"failed_to_unstack_assets": "ביטול ערימת תמונות נכשלה", "failed_to_unstack_assets": "ביטול ערימת תמונות נכשלה",
"failed_to_update_notification_status": "שגיאה בעדכון ההתראה",
"import_path_already_exists": "נתיב הייבוא הזה כבר קיים.", "import_path_already_exists": "נתיב הייבוא הזה כבר קיים.",
"incorrect_email_or_password": "דוא\"ל או סיסמה שגויים", "incorrect_email_or_password": "דוא\"ל או סיסמה שגויים",
"paths_validation_failed": "{paths, plural, one {נתיב # נכשל} other {# נתיבים נכשלו}} אימות", "paths_validation_failed": "{paths, plural, one {נתיב # נכשל} other {# נתיבים נכשלו}} אימות",
@@ -926,7 +924,6 @@
"unable_to_remove_reaction": "לא ניתן להסיר תגובה", "unable_to_remove_reaction": "לא ניתן להסיר תגובה",
"unable_to_repair_items": "לא ניתן לתקן פריטים", "unable_to_repair_items": "לא ניתן לתקן פריטים",
"unable_to_reset_password": "לא ניתן לאפס סיסמה", "unable_to_reset_password": "לא ניתן לאפס סיסמה",
"unable_to_reset_pin_code": "לא ניתן לאפס קוד PIN",
"unable_to_resolve_duplicate": "לא ניתן לפתור כפילות", "unable_to_resolve_duplicate": "לא ניתן לפתור כפילות",
"unable_to_restore_assets": "לא ניתן לשחזר תמונות", "unable_to_restore_assets": "לא ניתן לשחזר תמונות",
"unable_to_restore_trash": "לא ניתן לשחזר אשפה", "unable_to_restore_trash": "לא ניתן לשחזר אשפה",
@@ -1180,7 +1177,7 @@
"map": "מפה", "map": "מפה",
"map_assets_in_bound": "תמונה {}", "map_assets_in_bound": "תמונה {}",
"map_assets_in_bounds": "{} תמונות", "map_assets_in_bounds": "{} תמונות",
"map_cannot_get_user_location": "לא ניתן לקבוע את מיקום המשתמש", "map_cannot_get_user_location": "לא ניתן לקבל את מיקום המשתמש",
"map_location_dialog_yes": "כן", "map_location_dialog_yes": "כן",
"map_location_picker_page_use_location": "השתמש במיקום הזה", "map_location_picker_page_use_location": "השתמש במיקום הזה",
"map_location_service_disabled_content": "שירות המיקום צריך להיות מופעל כדי להציג תמונות מהמיקום הנוכחי שלך. האם ברצונך להפעיל אותו עכשיו?", "map_location_service_disabled_content": "שירות המיקום צריך להיות מופעל כדי להציג תמונות מהמיקום הנוכחי שלך. האם ברצונך להפעיל אותו עכשיו?",
@@ -1202,9 +1199,6 @@
"map_settings_only_show_favorites": "הצג מועדפים בלבד", "map_settings_only_show_favorites": "הצג מועדפים בלבד",
"map_settings_theme_settings": "ערכת נושא למפה", "map_settings_theme_settings": "ערכת נושא למפה",
"map_zoom_to_see_photos": "הקטן את התצוגה כדי לראות תמונות", "map_zoom_to_see_photos": "הקטן את התצוגה כדי לראות תמונות",
"mark_all_as_read": "סמן הכל כנקרא",
"mark_as_read": "סמן כנקרא",
"marked_all_as_read": "כל ההתראות סומנו כנקראו",
"matches": "התאמות", "matches": "התאמות",
"media_type": "סוג מדיה", "media_type": "סוג מדיה",
"memories": "זכרונות", "memories": "זכרונות",
@@ -1245,7 +1239,6 @@
"new_api_key": "מפתח API חדש", "new_api_key": "מפתח API חדש",
"new_password": "סיסמה חדשה", "new_password": "סיסמה חדשה",
"new_person": "אדם חדש", "new_person": "אדם חדש",
"new_pin_code": "קוד PIN חדש",
"new_user_created": "משתמש חדש נוצר", "new_user_created": "משתמש חדש נוצר",
"new_version_available": "גרסה חדשה זמינה", "new_version_available": "גרסה חדשה זמינה",
"newest_first": "החדש ביותר ראשון", "newest_first": "החדש ביותר ראשון",
@@ -1264,8 +1257,6 @@
"no_favorites_message": "הוסף מועדפים כדי למצוא במהירות את התמונות והסרטונים הכי טובים שלך", "no_favorites_message": "הוסף מועדפים כדי למצוא במהירות את התמונות והסרטונים הכי טובים שלך",
"no_libraries_message": "צור ספרייה חיצונית כדי לראות את התמונות והסרטונים שלך", "no_libraries_message": "צור ספרייה חיצונית כדי לראות את התמונות והסרטונים שלך",
"no_name": "אין שם", "no_name": "אין שם",
"no_notifications": "אין התראות",
"no_people_found": "לא נמצאו אנשים תואמים",
"no_places": "אין מקומות", "no_places": "אין מקומות",
"no_results": "אין תוצאות", "no_results": "אין תוצאות",
"no_results_description": "נסה להשתמש במילה נרדפת או במילת מפתח יותר כללית", "no_results_description": "נסה להשתמש במילה נרדפת או במילת מפתח יותר כללית",
@@ -1366,9 +1357,6 @@
"photos_count": "{count, plural, one {תמונה {count, number}} other {{count, number} תמונות}}", "photos_count": "{count, plural, one {תמונה {count, number}} other {{count, number} תמונות}}",
"photos_from_previous_years": "תמונות משנים קודמות", "photos_from_previous_years": "תמונות משנים קודמות",
"pick_a_location": "בחר מיקום", "pick_a_location": "בחר מיקום",
"pin_code_changed_successfully": "קוד ה PIN שונה בהצלחה",
"pin_code_reset_successfully": "קוד PIN אופס בהצלחה",
"pin_code_setup_successfully": "קוד PIN הוגדר בהצלחה",
"place": "מקום", "place": "מקום",
"places": "מקומות", "places": "מקומות",
"places_count": "{count, plural, one {מקום {count, number}} other {{count, number} מקומות}}", "places_count": "{count, plural, one {מקום {count, number}} other {{count, number} מקומות}}",
@@ -1389,7 +1377,7 @@
"profile_drawer_app_logs": "יומן", "profile_drawer_app_logs": "יומן",
"profile_drawer_client_out_of_date_major": "גרסת היישום לנייד מיושנת. נא לעדכן לגרסה הראשית האחרונה.", "profile_drawer_client_out_of_date_major": "גרסת היישום לנייד מיושנת. נא לעדכן לגרסה הראשית האחרונה.",
"profile_drawer_client_out_of_date_minor": "גרסת היישום לנייד מיושנת. נא לעדכן לגרסה המשנית האחרונה.", "profile_drawer_client_out_of_date_minor": "גרסת היישום לנייד מיושנת. נא לעדכן לגרסה המשנית האחרונה.",
"profile_drawer_client_server_up_to_date": יישום והשרת מעודכנים", "profile_drawer_client_server_up_to_date": לקוח והשרת הם מעודכנים",
"profile_drawer_github": "GitHub", "profile_drawer_github": "GitHub",
"profile_drawer_server_out_of_date_major": "השרת אינו מעודכן. נא לעדכן לגרסה הראשית האחרונה.", "profile_drawer_server_out_of_date_major": "השרת אינו מעודכן. נא לעדכן לגרסה הראשית האחרונה.",
"profile_drawer_server_out_of_date_minor": "השרת אינו מעודכן. נא לעדכן לגרסה המשנית האחרונה.", "profile_drawer_server_out_of_date_minor": "השרת אינו מעודכן. נא לעדכן לגרסה המשנית האחרונה.",
@@ -1444,8 +1432,6 @@
"recent_searches": "חיפושים אחרונים", "recent_searches": "חיפושים אחרונים",
"recently_added": "נוסף לאחרונה", "recently_added": "נוסף לאחרונה",
"recently_added_page_title": "נוסף לאחרונה", "recently_added_page_title": "נוסף לאחרונה",
"recently_taken": "צולם לאחרונה",
"recently_taken_page_title": "צולם לאחרונה",
"refresh": "רענן", "refresh": "רענן",
"refresh_encoded_videos": "רענן סרטונים מקודדים", "refresh_encoded_videos": "רענן סרטונים מקודדים",
"refresh_faces": "רענן פנים", "refresh_faces": "רענן פנים",
@@ -1488,7 +1474,6 @@
"reset": "איפוס", "reset": "איפוס",
"reset_password": "איפוס סיסמה", "reset_password": "איפוס סיסמה",
"reset_people_visibility": "אפס את נראות האנשים", "reset_people_visibility": "אפס את נראות האנשים",
"reset_pin_code": "אפס קוד PIN",
"reset_to_default": "אפס לברירת מחדל", "reset_to_default": "אפס לברירת מחדל",
"resolve_duplicates": "פתור כפילויות", "resolve_duplicates": "פתור כפילויות",
"resolved_all_duplicates": "כל הכפילויות נפתרו", "resolved_all_duplicates": "כל הכפילויות נפתרו",
@@ -1581,7 +1566,6 @@
"select_keep_all": "בחר שמור הכל", "select_keep_all": "בחר שמור הכל",
"select_library_owner": "בחר את הבעלים של הספרייה", "select_library_owner": "בחר את הבעלים של הספרייה",
"select_new_face": "בחר פנים חדשות", "select_new_face": "בחר פנים חדשות",
"select_person_to_tag": "בחר אדם לתיוג",
"select_photos": "בחר תמונות", "select_photos": "בחר תמונות",
"select_trash_all": "בחר העבר הכל לאשפה", "select_trash_all": "בחר העבר הכל לאשפה",
"select_user_for_sharing_page_err_album": "יצירת אלבום נכשלה", "select_user_for_sharing_page_err_album": "יצירת אלבום נכשלה",
@@ -1592,8 +1576,8 @@
"server_endpoint": "נקודת קצה שרת", "server_endpoint": "נקודת קצה שרת",
"server_info_box_app_version": "גרסת יישום", "server_info_box_app_version": "גרסת יישום",
"server_info_box_server_url": "כתובת שרת", "server_info_box_server_url": "כתובת שרת",
"server_offline": "השרת מנותק", "server_offline": "שרת לא מקוון",
"server_online": "החיבור לשרת פעיל", "server_online": "שרת מקוון",
"server_stats": "סטטיסטיקות שרת", "server_stats": "סטטיסטיקות שרת",
"server_version": "גרסת שרת", "server_version": "גרסת שרת",
"set": "הגדר", "set": "הגדר",
@@ -1629,7 +1613,6 @@
"settings": "הגדרות", "settings": "הגדרות",
"settings_require_restart": "אנא הפעל מחדש את היישום כדי להחיל הגדרה זו", "settings_require_restart": "אנא הפעל מחדש את היישום כדי להחיל הגדרה זו",
"settings_saved": "ההגדרות נשמרו", "settings_saved": "ההגדרות נשמרו",
"setup_pin_code": "הגדר קוד PIN",
"share": "שתף", "share": "שתף",
"share_add_photos": "הוסף תמונות", "share_add_photos": "הוסף תמונות",
"share_assets_selected": "{} נבחרו", "share_assets_selected": "{} נבחרו",
@@ -1729,7 +1712,7 @@
"sort_people_by_similarity": "מיין אנשים לפי דמיון", "sort_people_by_similarity": "מיין אנשים לפי דמיון",
"sort_recent": "תמונה אחרונה ביותר", "sort_recent": "תמונה אחרונה ביותר",
"sort_title": "כותרת", "sort_title": "כותרת",
"source": "קוד מקור", "source": "מקור",
"stack": "ערימה", "stack": "ערימה",
"stack_duplicates": "צור ערימת כפילויות", "stack_duplicates": "צור ערימת כפילויות",
"stack_select_one_photo": "בחר תמונה ראשית אחת עבור הערימה", "stack_select_one_photo": "בחר תמונה ראשית אחת עבור הערימה",
@@ -1771,7 +1754,7 @@
"theme": "ערכת נושא", "theme": "ערכת נושא",
"theme_selection": "בחירת ערכת נושא", "theme_selection": "בחירת ערכת נושא",
"theme_selection_description": "הגדר אוטומטית את ערכת הנושא לבהיר או כהה בהתבסס על העדפת המערכת של הדפדפן שלך", "theme_selection_description": "הגדר אוטומטית את ערכת הנושא לבהיר או כהה בהתבסס על העדפת המערכת של הדפדפן שלך",
"theme_setting_asset_list_storage_indicator_title": "הצג סטטוס גיבוי על גבי התמונות", "theme_setting_asset_list_storage_indicator_title": "הצג סטטוס אחסון על גבי התמונות",
"theme_setting_asset_list_tiles_per_row_title": "מספר תמונות בכל שורה ({})", "theme_setting_asset_list_tiles_per_row_title": "מספר תמונות בכל שורה ({})",
"theme_setting_colorful_interface_subtitle": "החל את הצבע העיקרי למשטחי רקע.", "theme_setting_colorful_interface_subtitle": "החל את הצבע העיקרי למשטחי רקע.",
"theme_setting_colorful_interface_title": "ממשק צבעוני", "theme_setting_colorful_interface_title": "ממשק צבעוני",
@@ -1814,8 +1797,6 @@
"trash_page_title": "אשפה ({})", "trash_page_title": "אשפה ({})",
"trashed_items_will_be_permanently_deleted_after": "פריטים באשפה ימחקו לצמיתות לאחר {days, plural, one {יום #} other {# ימים}}.", "trashed_items_will_be_permanently_deleted_after": "פריטים באשפה ימחקו לצמיתות לאחר {days, plural, one {יום #} other {# ימים}}.",
"type": "סוג", "type": "סוג",
"unable_to_change_pin_code": "לא ניתן לשנות את קוד ה PIN",
"unable_to_setup_pin_code": "לא ניתן להגדיר קוד PIN",
"unarchive": "הוצא מארכיון", "unarchive": "הוצא מארכיון",
"unarchived_count": "{count, plural, other {# הוצאו מהארכיון}}", "unarchived_count": "{count, plural, other {# הוצאו מהארכיון}}",
"unfavorite": "לא מועדף", "unfavorite": "לא מועדף",
@@ -1860,8 +1841,6 @@
"user": "משתמש", "user": "משתמש",
"user_id": "מזהה משתמש", "user_id": "מזהה משתמש",
"user_liked": "{user} אהב את {type, select, photo {התמונה הזאת} video {הסרטון הזה} asset {התמונה הזאת} other {זה}}", "user_liked": "{user} אהב את {type, select, photo {התמונה הזאת} video {הסרטון הזה} asset {התמונה הזאת} other {זה}}",
"user_pin_code_settings": "קוד PIN",
"user_pin_code_settings_description": "נהל את קוד ה PIN שלך",
"user_purchase_settings": "רכישה", "user_purchase_settings": "רכישה",
"user_purchase_settings_description": "ניהול הרכישה שלך", "user_purchase_settings_description": "ניהול הרכישה שלך",
"user_role_set": "הגדר את {user} בתור {role}", "user_role_set": "הגדר את {user} בתור {role}",

View File

@@ -171,13 +171,20 @@
"oauth_auto_register": "ऑटो रजिस्टर", "oauth_auto_register": "ऑटो रजिस्टर",
"oauth_auto_register_description": "OAuth के साथ साइन इन करने के बाद स्वचालित रूप से नए उपयोगकर्ताओं को पंजीकृत करें", "oauth_auto_register_description": "OAuth के साथ साइन इन करने के बाद स्वचालित रूप से नए उपयोगकर्ताओं को पंजीकृत करें",
"oauth_button_text": "टेक्स्ट बटन", "oauth_button_text": "टेक्स्ट बटन",
"oauth_client_id": "ग्राहक ID",
"oauth_client_secret": "ग्राहक गुप्त",
"oauth_enable_description": "OAuth से लॉगिन करें", "oauth_enable_description": "OAuth से लॉगिन करें",
"oauth_issuer_url": "जारीकर्ता URL",
"oauth_mobile_redirect_uri": "मोबाइल रीडायरेक्ट यूआरआई", "oauth_mobile_redirect_uri": "मोबाइल रीडायरेक्ट यूआरआई",
"oauth_mobile_redirect_uri_override": "मोबाइल रीडायरेक्ट यूआरआई ओवरराइड", "oauth_mobile_redirect_uri_override": "मोबाइल रीडायरेक्ट यूआरआई ओवरराइड",
"oauth_mobile_redirect_uri_override_description": "सक्षम करें जब 'app.immitch:/' एक अमान्य रीडायरेक्ट यूआरआई हो।", "oauth_mobile_redirect_uri_override_description": "सक्षम करें जब 'app.immitch:/' एक अमान्य रीडायरेक्ट यूआरआई हो।",
"oauth_profile_signing_algorithm": "प्रोफ़ाइल हस्ताक्षर एल्गोरिथ्म",
"oauth_profile_signing_algorithm_description": "उपयोगकर्ता प्रोफ़ाइल पर हस्ताक्षर करने के लिए एल्गोरिदम का उपयोग किया जाता है।",
"oauth_scope": "स्कोप",
"oauth_settings": "ओऑथ", "oauth_settings": "ओऑथ",
"oauth_settings_description": "OAuth लॉगिन सेटिंग प्रबंधित करें", "oauth_settings_description": "OAuth लॉगिन सेटिंग प्रबंधित करें",
"oauth_settings_more_details": "इस सुविधा के बारे में अधिक जानकारी के लिए, देखें <link>डॉक्स</link>।", "oauth_settings_more_details": "इस सुविधा के बारे में अधिक जानकारी के लिए, देखें <link>डॉक्स</link>।",
"oauth_signing_algorithm": "हस्ताक्षर एल्गोरिथ्म",
"oauth_storage_label_claim": "भंडारण लेबल का दावा", "oauth_storage_label_claim": "भंडारण लेबल का दावा",
"oauth_storage_label_claim_description": "इस दावे के मूल्य पर उपयोगकर्ता के भंडारण लेबल को स्वचालित रूप से सेट करें।", "oauth_storage_label_claim_description": "इस दावे के मूल्य पर उपयोगकर्ता के भंडारण लेबल को स्वचालित रूप से सेट करें।",
"oauth_storage_quota_claim": "भंडारण कोटा का दावा", "oauth_storage_quota_claim": "भंडारण कोटा का दावा",

File diff suppressed because it is too large Load Diff

View File

@@ -39,11 +39,11 @@
"authentication_settings_disable_all": "Biztosan letiltod az összes bejelentkezési módot? A bejelentkezés teljesen le lesz tiltva.", "authentication_settings_disable_all": "Biztosan letiltod az összes bejelentkezési módot? A bejelentkezés teljesen le lesz tiltva.",
"authentication_settings_reenable": "Az újbóli engedélyezéshez használj egy<link>Szerver Parancsot</link>.", "authentication_settings_reenable": "Az újbóli engedélyezéshez használj egy<link>Szerver Parancsot</link>.",
"background_task_job": "Háttérfeladatok", "background_task_job": "Háttérfeladatok",
"backup_database": "Adatbázis lementése", "backup_database": "Adatbázis Biztonsági Mentése",
"backup_database_enable_description": "Adatbázis mentések engedélyezése", "backup_database_enable_description": "Adatbázis biztonsági mentések engedélyezése",
"backup_keep_last_amount": "Megőrizendő korábbi mentések száma", "backup_keep_last_amount": "Megőrizendő korábbi biztonsági mentések száma",
"backup_settings": "Adatbázis mentés beállításai", "backup_settings": "Biztonsági mentés beállításai",
"backup_settings_description": "Adatbázis mentés beállításainak kezelése. Megjegyzés: Ezek a feladatok nincsenek felügyelve, így nem kapsz értesítés meghiúsulás esetén.", "backup_settings_description": "Adatbázis mentési beállításainak kezelése",
"check_all": "Összes Kipiálása", "check_all": "Összes Kipiálása",
"cleanup": "Takarítás", "cleanup": "Takarítás",
"cleared_jobs": "{job}: feladatai törölve", "cleared_jobs": "{job}: feladatai törölve",
@@ -53,7 +53,6 @@
"confirm_email_below": "A megerősítéshez írd be, hogy \"{email}\"", "confirm_email_below": "A megerősítéshez írd be, hogy \"{email}\"",
"confirm_reprocess_all_faces": "Biztos vagy benne, hogy újra fel szeretnéd dolgozni az összes arcot? Ez a már elnevezett személyeket is törli.", "confirm_reprocess_all_faces": "Biztos vagy benne, hogy újra fel szeretnéd dolgozni az összes arcot? Ez a már elnevezett személyeket is törli.",
"confirm_user_password_reset": "Biztosan vissza szeretnéd állítani {user} jelszavát?", "confirm_user_password_reset": "Biztosan vissza szeretnéd állítani {user} jelszavát?",
"confirm_user_pin_code_reset": "Biztos, hogy vissza akarod állítani {user} PIN-kódját?",
"create_job": "Feladat létrehozása", "create_job": "Feladat létrehozása",
"cron_expression": "Cron kifejezés", "cron_expression": "Cron kifejezés",
"cron_expression_description": "A beolvasási időköz beállítása a cron formátummal. További információért lásd pl. <link>Crontab Guru</link>", "cron_expression_description": "A beolvasási időköz beállítása a cron formátummal. További információért lásd pl. <link>Crontab Guru</link>",
@@ -193,22 +192,26 @@
"oauth_auto_register": "Automatikus regisztráció", "oauth_auto_register": "Automatikus regisztráció",
"oauth_auto_register_description": "Új felhasználók automatikus regisztrálása az OAuth használatával történő bejelentkezés után", "oauth_auto_register_description": "Új felhasználók automatikus regisztrálása az OAuth használatával történő bejelentkezés után",
"oauth_button_text": "Gomb szövege", "oauth_button_text": "Gomb szövege",
"oauth_client_secret_description": "Kötelező, ha az OAuth szolgáltató nem támogatja a PKCE-t (Proof Key for Code Exchange)", "oauth_client_id": "Kliens ID",
"oauth_client_secret": "Kliens Titok",
"oauth_enable_description": "Bejelentkezés OAuth használatával", "oauth_enable_description": "Bejelentkezés OAuth használatával",
"oauth_issuer_url": "Kibocsátó URL",
"oauth_mobile_redirect_uri": "Mobil átirányítási URI", "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": "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_mobile_redirect_uri_override_description": "Engedélyezd, ha az OAuth szolgáltató tiltja a mobil URI-t, mint például '{callback}'",
"oauth_profile_signing_algorithm": "Profil aláíró algoritmus",
"oauth_profile_signing_algorithm_description": "A felhasználói profil aláírásához használt algoritmus.",
"oauth_scope": "Hatókör",
"oauth_settings": "OAuth", "oauth_settings": "OAuth",
"oauth_settings_description": "OAuth bejelentkezési beállítások kezelése", "oauth_settings_description": "OAuth bejelentkezési beállítások kezelése",
"oauth_settings_more_details": "Erről a funkcióról további információt a <link>dokumentációban</link> találsz.", "oauth_settings_more_details": "Erről a funkcióról további információt a <link>dokumentációban</link> találsz.",
"oauth_signing_algorithm": "Aláírás algoritmusa",
"oauth_storage_label_claim": "Tárhely címke igénylés", "oauth_storage_label_claim": "Tárhely címke igénylés",
"oauth_storage_label_claim_description": "A felhasználó tárhely címkéjének automatikus beállítása az igényeltre.", "oauth_storage_label_claim_description": "A felhasználó tárhely címkéjének automatikus beállítása az igényeltre.",
"oauth_storage_quota_claim": "Tárhelykvóta igénylése", "oauth_storage_quota_claim": "Tárhelykvóta igénylése",
"oauth_storage_quota_claim_description": "A felhasználó tárhelykvótájának automatikus beállítása ennek az igényeltre.", "oauth_storage_quota_claim_description": "A felhasználó tárhelykvótájának automatikus beállítása ennek az igényeltre.",
"oauth_storage_quota_default": "Alapértelmezett tárhelykvóta (GiB)", "oauth_storage_quota_default": "Alapértelmezett tárhelykvóta (GiB)",
"oauth_storage_quota_default_description": "Alapértelmezett tárhely kvóta GiB-ban, amennyiben a felhasználó nem jelezte az igényét (A korlátlan tárhelyhez 0-t adj meg).", "oauth_storage_quota_default_description": "Alapértelmezett tárhely kvóta GiB-ban, amennyiben a felhasználó nem jelezte az igényét (A korlátlan tárhelyhez 0-t adj meg).",
"oauth_timeout": "Kérés időkorlátja",
"oauth_timeout_description": "Kérések időkorlátja milliszekundumban",
"offline_paths": "Offline Útvonalak", "offline_paths": "Offline Útvonalak",
"offline_paths_description": "Ezek az eredmények olyan fájlok kézi törlésének tudhatók be, amelyek nem részei külső képtárnak.", "offline_paths_description": "Ezek az eredmények olyan fájlok kézi törlésének tudhatók be, amelyek nem részei külső képtárnak.",
"password_enable_description": "Bejelentkezés emaillel és jelszóval", "password_enable_description": "Bejelentkezés emaillel és jelszóval",
@@ -368,16 +371,13 @@
"admin_password": "Admin Jelszó", "admin_password": "Admin Jelszó",
"administration": "Adminisztráció", "administration": "Adminisztráció",
"advanced": "Haladó", "advanced": "Haladó",
"advanced_settings_enable_alternate_media_filter_subtitle": "Ezzel a beállítással a szinkronizálás során alternatív kritériumok alapján szűrheted a fájlokat. Csak akkor próbáld ki, ha problémáid vannak azzal, hogy az alkalmazás nem ismeri fel az összes albumot.", "advanced_settings_log_level_title": "Naplózás szintje: {}",
"advanced_settings_enable_alternate_media_filter_title": "[KÍSÉRLETI] Alternatív eszköz album szinkronizálási szűrő használata",
"advanced_settings_log_level_title": "Naplózás szintje: {level}",
"advanced_settings_prefer_remote_subtitle": "Néhány eszköz fájdalmasan lassan tölti be az eszközön lévő bélyegképeket. Ez a beállítás inkább a távoli képeket tölti be helyettük.", "advanced_settings_prefer_remote_subtitle": "Néhány eszköz fájdalmasan lassan tölti be az eszközön lévő bélyegképeket. Ez a beállítás inkább a távoli képeket tölti be helyettük.",
"advanced_settings_prefer_remote_title": "Távoli képek előnyben részesítése", "advanced_settings_prefer_remote_title": "Távoli képek előnyben részesítése",
"advanced_settings_proxy_headers_subtitle": "Add meg azokat a proxy fejléceket, amiket az app elküldjön minden hálózati kérésnél", "advanced_settings_proxy_headers_subtitle": "Add meg azokat a proxy fejléceket, amiket az app elküldjön minden hálózati kérésnél",
"advanced_settings_proxy_headers_title": "Proxy Fejlécek", "advanced_settings_proxy_headers_title": "Proxy Fejlécek",
"advanced_settings_self_signed_ssl_subtitle": "Nem ellenőrzi a szerver SSL tanúsítványát. Önaláírt tanúsítvány esetén szükséges beállítás.", "advanced_settings_self_signed_ssl_subtitle": "Nem ellenőrzi a szerver SSL tanúsítványát. Önaláírt tanúsítvány esetén szükséges beállítás.",
"advanced_settings_self_signed_ssl_title": "Önaláírt SSL tanúsítványok engedélyezése", "advanced_settings_self_signed_ssl_title": "Önaláírt SSL tanúsítványok engedélyezése",
"advanced_settings_sync_remote_deletions_subtitle": "Automatikusan törölni vagy visszaállítani egy elemet ezen az eszközön, ha az adott műveletet a weben hajtották végre",
"advanced_settings_tile_subtitle": "Haladó felhasználói beállítások", "advanced_settings_tile_subtitle": "Haladó felhasználói beállítások",
"advanced_settings_troubleshooting_subtitle": "További funkciók engedélyezése hibaelhárítás céljából", "advanced_settings_troubleshooting_subtitle": "További funkciók engedélyezése hibaelhárítás céljából",
"advanced_settings_troubleshooting_title": "Hibaelhárítás", "advanced_settings_troubleshooting_title": "Hibaelhárítás",
@@ -610,7 +610,6 @@
"change_password_form_new_password": "Új Jelszó", "change_password_form_new_password": "Új Jelszó",
"change_password_form_password_mismatch": "A beírt jelszavak nem egyeznek", "change_password_form_password_mismatch": "A beírt jelszavak nem egyeznek",
"change_password_form_reenter_new_password": "Jelszó (Még Egyszer)", "change_password_form_reenter_new_password": "Jelszó (Még Egyszer)",
"change_pin_code": "PIN kód megváltoztatása",
"change_your_password": "Jelszavad megváltoztatása", "change_your_password": "Jelszavad megváltoztatása",
"changed_visibility_successfully": "Láthatóság sikeresen megváltoztatva", "changed_visibility_successfully": "Láthatóság sikeresen megváltoztatva",
"check_all": "Mind Kijelöl", "check_all": "Mind Kijelöl",
@@ -651,7 +650,6 @@
"confirm_delete_face": "Biztos, hogy törölni szeretnéd a(z) {name} arcát az elemről?", "confirm_delete_face": "Biztos, hogy törölni szeretnéd a(z) {name} arcát az elemről?",
"confirm_delete_shared_link": "Biztosan törölni szeretnéd ezt a megosztott linket?", "confirm_delete_shared_link": "Biztosan törölni szeretnéd ezt a megosztott linket?",
"confirm_keep_this_delete_others": "Minden más elem a készletben törlésre kerül, kivéve ezt az elemet. Biztosan folytatni szeretnéd?", "confirm_keep_this_delete_others": "Minden más elem a készletben törlésre kerül, kivéve ezt az elemet. Biztosan folytatni szeretnéd?",
"confirm_new_pin_code": "Új PIN kód megerősítése",
"confirm_password": "Jelszó megerősítése", "confirm_password": "Jelszó megerősítése",
"contain": "Belül", "contain": "Belül",
"context": "Kontextus", "context": "Kontextus",
@@ -697,7 +695,6 @@
"crop": "Kivágás", "crop": "Kivágás",
"curated_object_page_title": "Dolgok", "curated_object_page_title": "Dolgok",
"current_device": "Ez az eszköz", "current_device": "Ez az eszköz",
"current_pin_code": "Aktuális PIN kód",
"current_server_address": "Jelenlegi szerver cím", "current_server_address": "Jelenlegi szerver cím",
"custom_locale": "Egyéni Területi Beállítás", "custom_locale": "Egyéni Területi Beállítás",
"custom_locale_description": "Dátumok és számok formázása a nyelv és terület szerint", "custom_locale_description": "Dátumok és számok formázása a nyelv és terület szerint",
@@ -1237,7 +1234,6 @@
"new_api_key": "Új API Kulcs", "new_api_key": "Új API Kulcs",
"new_password": "Új jelszó", "new_password": "Új jelszó",
"new_person": "Új személy", "new_person": "Új személy",
"new_pin_code": "Új PIN kód",
"new_user_created": "Új felhasználó létrehozva", "new_user_created": "Új felhasználó létrehozva",
"new_version_available": "ÚJ VERZIÓ ÉRHETŐ EL", "new_version_available": "ÚJ VERZIÓ ÉRHETŐ EL",
"newest_first": "Legújabb először", "newest_first": "Legújabb először",
@@ -1355,9 +1351,6 @@
"photos_count": "{count, plural, one {{count, number} Fotó} other {{count, number} Fotó}}", "photos_count": "{count, plural, one {{count, number} Fotó} other {{count, number} Fotó}}",
"photos_from_previous_years": "Fényképek az előző évekből", "photos_from_previous_years": "Fényképek az előző évekből",
"pick_a_location": "Hely választása", "pick_a_location": "Hely választása",
"pin_code_changed_successfully": "Sikeres PIN kód változtatás",
"pin_code_reset_successfully": "Sikeres PIN kód visszaállítás",
"pin_code_setup_successfully": "Sikeres PIN kód beállítás",
"place": "Hely", "place": "Hely",
"places": "Helyek", "places": "Helyek",
"places_count": "{count, plural, one {{count, number} Helyszín} other {{count, number} Helyszín}}", "places_count": "{count, plural, one {{count, number} Helyszín} other {{count, number} Helyszín}}",
@@ -1388,7 +1381,7 @@
"public_share": "Nyilvános Megosztás", "public_share": "Nyilvános Megosztás",
"purchase_account_info": "Támogató", "purchase_account_info": "Támogató",
"purchase_activated_subtitle": "Köszönjük, hogy támogattad az Immich-et és a nyílt forráskódú szoftvereket", "purchase_activated_subtitle": "Köszönjük, hogy támogattad az Immich-et és a nyílt forráskódú szoftvereket",
"purchase_activated_time": "Aktiválva ekkor: {date}", "purchase_activated_time": "Aktiválva ekkor: {date, date}",
"purchase_activated_title": "Kulcs sikeresen aktiválva", "purchase_activated_title": "Kulcs sikeresen aktiválva",
"purchase_button_activate": "Aktiválás", "purchase_button_activate": "Aktiválás",
"purchase_button_buy": "Vásárlás", "purchase_button_buy": "Vásárlás",
@@ -1475,7 +1468,6 @@
"reset": "Visszaállítás", "reset": "Visszaállítás",
"reset_password": "Jelszó visszaállítása", "reset_password": "Jelszó visszaállítása",
"reset_people_visibility": "Személyek láthatóságának visszaállítása", "reset_people_visibility": "Személyek láthatóságának visszaállítása",
"reset_pin_code": "PIN kód visszaállítása",
"reset_to_default": "Visszaállítás alapállapotba", "reset_to_default": "Visszaállítás alapállapotba",
"resolve_duplicates": "Duplikátumok feloldása", "resolve_duplicates": "Duplikátumok feloldása",
"resolved_all_duplicates": "Minden duplikátum feloldása", "resolved_all_duplicates": "Minden duplikátum feloldása",
@@ -1615,7 +1607,6 @@
"settings": "Beállítások", "settings": "Beállítások",
"settings_require_restart": "Ennek a beállításnak az érvénybe lépéséhez indítsd újra az Immich-et", "settings_require_restart": "Ennek a beállításnak az érvénybe lépéséhez indítsd újra az Immich-et",
"settings_saved": "Beállítások elmentve", "settings_saved": "Beállítások elmentve",
"setup_pin_code": "PIN kód beállítása",
"share": "Megosztás", "share": "Megosztás",
"share_add_photos": "Fotók hozzáadása", "share_add_photos": "Fotók hozzáadása",
"share_assets_selected": "{} kiválasztva", "share_assets_selected": "{} kiválasztva",
@@ -1800,8 +1791,6 @@
"trash_page_title": "Lomtár ({})", "trash_page_title": "Lomtár ({})",
"trashed_items_will_be_permanently_deleted_after": "A lomtárban lévő elemek véglegesen törlésre kerülnek {days, plural, other {# nap}} múlva.", "trashed_items_will_be_permanently_deleted_after": "A lomtárban lévő elemek véglegesen törlésre kerülnek {days, plural, other {# nap}} múlva.",
"type": "Típus", "type": "Típus",
"unable_to_change_pin_code": "Sikertelen PIN kód változtatás",
"unable_to_setup_pin_code": "Sikertelen PIN kód beállítás",
"unarchive": "Archívumból kivesz", "unarchive": "Archívumból kivesz",
"unarchived_count": "{count, plural, other {# elem kivéve az archívumból}}", "unarchived_count": "{count, plural, other {# elem kivéve az archívumból}}",
"unfavorite": "Kedvenc közül kivesz", "unfavorite": "Kedvenc közül kivesz",
@@ -1846,8 +1835,6 @@
"user": "Felhasználó", "user": "Felhasználó",
"user_id": "Felhasználó azonosítója", "user_id": "Felhasználó azonosítója",
"user_liked": "{user} felhasználónak {type, select, photo {ez a fénykép} video {ez a videó} asset {ez az elem} other {ez}} tetszik", "user_liked": "{user} felhasználónak {type, select, photo {ez a fénykép} video {ez a videó} asset {ez az elem} other {ez}} tetszik",
"user_pin_code_settings": "PIN kód",
"user_pin_code_settings_description": "PIN kód kezelése",
"user_purchase_settings": "Megvásárlás", "user_purchase_settings": "Megvásárlás",
"user_purchase_settings_description": "Vásárlás kezelése", "user_purchase_settings_description": "Vásárlás kezelése",
"user_role_set": "{user} felhasználónak {role} jogkör biztosítása", "user_role_set": "{user} felhasználónak {role} jogkör biztosítása",

View File

@@ -1,24 +1,23 @@
{ {
"about": "Մասին",
"account": "", "account": "",
"account_settings": "", "account_settings": "",
"acknowledge": "", "acknowledge": "",
"action": "Գործողություն", "action": "",
"actions": "", "actions": "",
"active": "", "active": "",
"activity": "", "activity": "",
"add": "Ավելացնել", "add": "",
"add_a_description": "", "add_a_description": "",
"add_a_location": "Ավելացնել տեղ", "add_a_location": "",
"add_a_name": "Ավելացնել անուն", "add_a_name": "",
"add_a_title": "", "add_a_title": "",
"add_exclusion_pattern": "", "add_exclusion_pattern": "",
"add_import_path": "", "add_import_path": "",
"add_location": "Ավելացնել տեղ", "add_location": "",
"add_more_users": "", "add_more_users": "",
"add_partner": "", "add_partner": "",
"add_path": "", "add_path": "",
"add_photos": "Ավելացնել նկարներ", "add_photos": "",
"add_to": "", "add_to": "",
"add_to_album": "", "add_to_album": "",
"add_to_shared_album": "", "add_to_shared_album": "",
@@ -137,12 +136,17 @@
"oauth_auto_register": "", "oauth_auto_register": "",
"oauth_auto_register_description": "", "oauth_auto_register_description": "",
"oauth_button_text": "", "oauth_button_text": "",
"oauth_client_id": "",
"oauth_client_secret": "",
"oauth_enable_description": "", "oauth_enable_description": "",
"oauth_issuer_url": "",
"oauth_mobile_redirect_uri": "", "oauth_mobile_redirect_uri": "",
"oauth_mobile_redirect_uri_override": "", "oauth_mobile_redirect_uri_override": "",
"oauth_mobile_redirect_uri_override_description": "", "oauth_mobile_redirect_uri_override_description": "",
"oauth_scope": "",
"oauth_settings": "", "oauth_settings": "",
"oauth_settings_description": "", "oauth_settings_description": "",
"oauth_signing_algorithm": "",
"oauth_storage_label_claim": "", "oauth_storage_label_claim": "",
"oauth_storage_label_claim_description": "", "oauth_storage_label_claim_description": "",
"oauth_storage_quota_claim": "", "oauth_storage_quota_claim": "",
@@ -291,10 +295,7 @@
"asset_offline": "", "asset_offline": "",
"assets": "", "assets": "",
"authorized_devices": "", "authorized_devices": "",
"back": "Հետ", "back": "",
"backup_all": "Բոլոր",
"backup_controller_page_background_battery_info_link": "Ցույց տուր ինչպես",
"backup_controller_page_background_battery_info_ok": "Լավ",
"backward": "", "backward": "",
"blurred_background": "", "blurred_background": "",
"camera": "", "camera": "",
@@ -306,8 +307,8 @@
"cannot_update_the_description": "", "cannot_update_the_description": "",
"change_date": "", "change_date": "",
"change_expiration_time": "", "change_expiration_time": "",
"change_location": "Փոխել տեղը", "change_location": "",
"change_name": "Փոխել անուն", "change_name": "",
"change_name_successfully": "", "change_name_successfully": "",
"change_password": "", "change_password": "",
"change_your_password": "", "change_your_password": "",
@@ -315,15 +316,13 @@
"check_all": "", "check_all": "",
"check_logs": "", "check_logs": "",
"choose_matching_people_to_merge": "", "choose_matching_people_to_merge": "",
"city": "Քաղաք", "city": "",
"clear": "", "clear": "",
"clear_all": "", "clear_all": "",
"clear_message": "", "clear_message": "",
"clear_value": "", "clear_value": "",
"client_cert_dialog_msg_confirm": "Լավ",
"close": "", "close": "",
"collapse_all": "", "collapse_all": "",
"color": "Գույն",
"color_theme": "", "color_theme": "",
"comment_options": "", "comment_options": "",
"comments_are_disabled": "", "comments_are_disabled": "",
@@ -334,7 +333,6 @@
"contain": "", "contain": "",
"context": "", "context": "",
"continue": "", "continue": "",
"control_bottom_app_bar_edit_location": "Փոխել Տեղը",
"copied_image_to_clipboard": "", "copied_image_to_clipboard": "",
"copied_to_clipboard": "", "copied_to_clipboard": "",
"copy_error": "", "copy_error": "",
@@ -344,7 +342,7 @@
"copy_link_to_clipboard": "", "copy_link_to_clipboard": "",
"copy_password": "", "copy_password": "",
"copy_to_clipboard": "", "copy_to_clipboard": "",
"country": "Երկիր", "country": "",
"cover": "", "cover": "",
"covers": "", "covers": "",
"create": "", "create": "",
@@ -352,25 +350,22 @@
"create_library": "", "create_library": "",
"create_link": "", "create_link": "",
"create_link_to_share": "", "create_link_to_share": "",
"create_new": "ՍՏԵՂԾԵԼ ՆՈՐ", "create_new_person": "",
"create_new_person": "Ստեղծել նոր անձ",
"create_new_user": "", "create_new_user": "",
"create_shared_album_page_share_select_photos": "Ընտրե Նկարներ",
"create_user": "", "create_user": "",
"created": "", "created": "",
"curated_object_page_title": "Բաներ",
"current_device": "", "current_device": "",
"custom_locale": "", "custom_locale": "",
"custom_locale_description": "", "custom_locale_description": "",
"dark": "Մութ", "dark": "",
"date_after": "", "date_after": "",
"date_and_time": "", "date_and_time": "",
"date_before": "", "date_before": "",
"date_range": "", "date_range": "",
"day": "Օր", "day": "",
"default_locale": "", "default_locale": "",
"default_locale_description": "", "default_locale_description": "",
"delete": "Ջնջել", "delete": "",
"delete_album": "", "delete_album": "",
"delete_api_key_prompt": "", "delete_api_key_prompt": "",
"delete_key": "", "delete_key": "",
@@ -406,7 +401,7 @@
"edit_import_paths": "", "edit_import_paths": "",
"edit_key": "", "edit_key": "",
"edit_link": "", "edit_link": "",
"edit_location": "Փոխել տեղը", "edit_location": "",
"edit_name": "", "edit_name": "",
"edit_people": "", "edit_people": "",
"edit_title": "", "edit_title": "",
@@ -489,9 +484,6 @@
"unable_to_update_timeline_display_status": "", "unable_to_update_timeline_display_status": "",
"unable_to_update_user": "" "unable_to_update_user": ""
}, },
"exif_bottom_sheet_person_add_person": "Ավելացնել անուն",
"exif_bottom_sheet_person_age": "Տարիք {}",
"exif_bottom_sheet_person_age_years": "Տարիք {}",
"exit_slideshow": "", "exit_slideshow": "",
"expand_all": "", "expand_all": "",
"expire_after": "", "expire_after": "",
@@ -521,7 +513,6 @@
"go_to_search": "", "go_to_search": "",
"group_albums_by": "", "group_albums_by": "",
"has_quota": "", "has_quota": "",
"hi_user": "Բարեւ {name} ({email})",
"hide_gallery": "", "hide_gallery": "",
"hide_password": "", "hide_password": "",
"hide_person": "", "hide_person": "",
@@ -579,8 +570,6 @@
"manage_your_devices": "", "manage_your_devices": "",
"manage_your_oauth_connection": "", "manage_your_oauth_connection": "",
"map": "", "map": "",
"map_assets_in_bound": "{} նկար",
"map_assets_in_bounds": "{} նկարներ",
"map_marker_with_image": "", "map_marker_with_image": "",
"map_settings": "", "map_settings": "",
"matches": "", "matches": "",
@@ -647,7 +636,6 @@
"partner_can_access": "", "partner_can_access": "",
"partner_can_access_assets": "", "partner_can_access_assets": "",
"partner_can_access_location": "", "partner_can_access_location": "",
"partner_list_user_photos": "{}-ին նկարները",
"partner_sharing": "", "partner_sharing": "",
"partners": "", "partners": "",
"password": "", "password": "",
@@ -671,7 +659,7 @@
"permanent_deletion_warning_setting_description": "", "permanent_deletion_warning_setting_description": "",
"permanently_delete": "", "permanently_delete": "",
"permanently_deleted_asset": "", "permanently_deleted_asset": "",
"photos": "Նկարներ", "photos": "",
"photos_count": "", "photos_count": "",
"photos_from_previous_years": "", "photos_from_previous_years": "",
"pick_a_location": "", "pick_a_location": "",
@@ -719,28 +707,21 @@
"retry_upload": "", "retry_upload": "",
"review_duplicates": "", "review_duplicates": "",
"role": "", "role": "",
"save": "Պահե", "save": "",
"saved_api_key": "", "saved_api_key": "",
"saved_profile": "", "saved_profile": "",
"saved_settings": "", "saved_settings": "",
"say_something": "", "say_something": "",
"scan_all_libraries": "", "scan_all_libraries": "",
"scan_library": "Նայե",
"scan_settings": "", "scan_settings": "",
"search": "Փնտրե", "search": "",
"search_albums": "", "search_albums": "",
"search_by_context": "", "search_by_context": "",
"search_camera_make": "", "search_camera_make": "",
"search_camera_model": "", "search_camera_model": "",
"search_city": "Որոնե քաղաք…", "search_city": "",
"search_country": "", "search_country": "",
"search_filter_date": "Ամսաթիվ",
"search_filter_date_interval": "{start} մինչեւ {end}",
"search_filter_location": "Տեղ",
"search_filter_location_title": "Ընտրե տեղ",
"search_for_existing_person": "", "search_for_existing_person": "",
"search_no_people": "Ոչ մի անձ",
"search_page_motion_photos": "Շարժվող Նկարներ",
"search_people": "", "search_people": "",
"search_places": "", "search_places": "",
"search_state": "", "search_state": "",
@@ -757,7 +738,7 @@
"select_keep_all": "", "select_keep_all": "",
"select_library_owner": "", "select_library_owner": "",
"select_new_face": "", "select_new_face": "",
"select_photos": "Ընտրե նկարներ", "select_photos": "",
"select_trash_all": "", "select_trash_all": "",
"selected": "", "selected": "",
"send_message": "", "send_message": "",
@@ -769,24 +750,13 @@
"set_date_of_birth": "", "set_date_of_birth": "",
"set_profile_picture": "", "set_profile_picture": "",
"set_slideshow_to_fullscreen": "", "set_slideshow_to_fullscreen": "",
"setting_notifications_notify_never": "երբեք",
"setting_notifications_notify_seconds": "{} վայրկյան",
"settings": "", "settings": "",
"settings_saved": "", "settings_saved": "",
"share": "", "share": "",
"share_add_photos": "Ավելացնել նկարներ",
"shared": "", "shared": "",
"shared_by": "", "shared_by": "",
"shared_by_you": "", "shared_by_you": "",
"shared_from_partner": "", "shared_from_partner": "",
"shared_link_edit_expire_after_option_day": "1 օր",
"shared_link_edit_expire_after_option_days": "{} օր",
"shared_link_edit_expire_after_option_hour": "1 ժամ",
"shared_link_edit_expire_after_option_hours": "{} ժամ",
"shared_link_edit_expire_after_option_minute": "1 րոպե",
"shared_link_edit_expire_after_option_minutes": "{} րոպե",
"shared_link_edit_expire_after_option_months": "{} ամիս",
"shared_link_edit_expire_after_option_year": "{} տարի",
"shared_links": "", "shared_links": "",
"shared_photos_and_videos_count": "", "shared_photos_and_videos_count": "",
"shared_with_partner": "", "shared_with_partner": "",
@@ -814,8 +784,6 @@
"slideshow": "", "slideshow": "",
"slideshow_settings": "", "slideshow_settings": "",
"sort_albums_by": "", "sort_albums_by": "",
"sort_oldest": "Ամենահին նկարը",
"sort_recent": "Ամենանոր նկարը",
"stack": "", "stack": "",
"stack_selected_photos": "", "stack_selected_photos": "",
"stacktrace": "", "stacktrace": "",
@@ -840,25 +808,22 @@
"theme_selection": "", "theme_selection": "",
"theme_selection_description": "", "theme_selection_description": "",
"time_based_memories": "", "time_based_memories": "",
"timezone": "Ժամային գոտի", "timezone": "",
"to_archive": "", "to_archive": "",
"to_favorite": "", "to_favorite": "",
"to_trash": "Աղբ",
"toggle_settings": "", "toggle_settings": "",
"toggle_theme": "", "toggle_theme": "",
"total_usage": "", "total_usage": "",
"trash": "Աղբ", "trash": "",
"trash_all": "", "trash_all": "",
"trash_no_results_message": "", "trash_no_results_message": "",
"trash_page_title": "Աղբ ({})",
"trashed_items_will_be_permanently_deleted_after": "", "trashed_items_will_be_permanently_deleted_after": "",
"type": "Տեսակ", "type": "",
"unarchive": "", "unarchive": "",
"unfavorite": "", "unfavorite": "",
"unhide_person": "", "unhide_person": "",
"unknown": "Անհայտ", "unknown": "",
"unknown_country": "Անհայտ Երկիր", "unknown_year": "",
"unknown_year": "Անհայտ Տարի",
"unlimited": "", "unlimited": "",
"unlink_oauth": "", "unlink_oauth": "",
"unlinked_oauth_account": "", "unlinked_oauth_account": "",
@@ -870,7 +835,6 @@
"updated_password": "", "updated_password": "",
"upload": "", "upload": "",
"upload_concurrency": "", "upload_concurrency": "",
"upload_status_errors": "Սխալներ",
"url": "", "url": "",
"usage": "", "usage": "",
"user": "", "user": "",
@@ -882,7 +846,6 @@
"validate": "", "validate": "",
"variables": "", "variables": "",
"version": "", "version": "",
"version_announcement_closing": "Քո ընկերը՝ Ալեքսը",
"video": "", "video": "",
"video_hover_setting": "", "video_hover_setting": "",
"video_hover_setting_description": "", "video_hover_setting_description": "",
@@ -894,11 +857,11 @@
"view_next_asset": "", "view_next_asset": "",
"view_previous_asset": "", "view_previous_asset": "",
"waiting": "", "waiting": "",
"week": "Շաբաթ", "week": "",
"welcome": "Բարի գալուստ", "welcome": "",
"welcome_to_immich": "", "welcome_to_immich": "",
"year": "Տարի", "year": "",
"yes": "Այո", "yes": "",
"you_dont_have_any_shared_links": "", "you_dont_have_any_shared_links": "",
"zoom_image": "" "zoom_image": ""
} }

Some files were not shown because too many files have changed in this diff Show More