Merge branch 'main' into fix-21954
|
|
@ -6,28 +6,35 @@ services:
|
|||
- IMMICH_SERVER_URL=http://127.0.0.1:2283/
|
||||
volumes: !override # bind mount host to /workspaces/immich
|
||||
- ..:/workspaces/immich
|
||||
- cli_node_modules:/workspaces/immich/cli/node_modules
|
||||
- e2e_node_modules:/workspaces/immich/e2e/node_modules
|
||||
- open_api_node_modules:/workspaces/immich/open-api/typescript-sdk/node_modules
|
||||
- server_node_modules:/workspaces/immich/server/node_modules
|
||||
- web_node_modules:/workspaces/immich/web/node_modules
|
||||
- ${UPLOAD_LOCATION}/photos:/data
|
||||
- ${UPLOAD_LOCATION:-upload-devcontainer-volume}${UPLOAD_LOCATION:+/photos}:/data
|
||||
- pnpm-store:/usr/src/app/.pnpm-store
|
||||
- server-node_modules:/usr/src/app/server/node_modules
|
||||
- web-node_modules:/usr/src/app/web/node_modules
|
||||
- github-node_modules:/usr/src/app/.github/node_modules
|
||||
- cli-node_modules:/usr/src/app/cli/node_modules
|
||||
- docs-node_modules:/usr/src/app/docs/node_modules
|
||||
- e2e-node_modules:/usr/src/app/e2e/node_modules
|
||||
- sdk-node_modules:/usr/src/app/open-api/typescript-sdk/node_modules
|
||||
- app-node_modules:/usr/src/app/node_modules
|
||||
- sveltekit:/usr/src/app/web/.svelte-kit
|
||||
- coverage:/usr/src/app/web/coverage
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
|
||||
immich-web:
|
||||
env_file: !reset []
|
||||
immich-machine-learning:
|
||||
env_file: !reset []
|
||||
database:
|
||||
env_file: !reset []
|
||||
environment: !override
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD-postgres}
|
||||
POSTGRES_USER: ${DB_USERNAME-postgres}
|
||||
POSTGRES_DB: ${DB_DATABASE_NAME-immich}
|
||||
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||
POSTGRES_HOST_AUTH_METHOD: md5
|
||||
volumes:
|
||||
- ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data
|
||||
|
||||
- ${UPLOAD_LOCATION:-postgres-devcontainer-volume}${UPLOAD_LOCATION:+/postgres}:/var/lib/postgresql/data
|
||||
redis:
|
||||
env_file: !reset []
|
||||
volumes:
|
||||
# Node modules for each service to avoid conflicts and ensure consistent dependencies
|
||||
cli_node_modules:
|
||||
e2e_node_modules:
|
||||
open_api_node_modules:
|
||||
server_node_modules:
|
||||
web_node_modules:
|
||||
|
||||
# UPLOAD_LOCATION must be set to a absolute path or vol-upload
|
||||
vol-upload:
|
||||
|
||||
# DB_DATA_LOCATION must be set to a absolute path or vol-database
|
||||
vol-database:
|
||||
upload-devcontainer-volume:
|
||||
postgres-devcontainer-volume:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
"userEnvProbe": "loginInteractiveShell",
|
||||
"remoteEnv": {
|
||||
// The location where your uploaded files are stored
|
||||
"UPLOAD_LOCATION": "${localEnv:UPLOAD_LOCATION:./Library}",
|
||||
"UPLOAD_LOCATION": "${localEnv:UPLOAD_LOCATION:./library}",
|
||||
// Connection secret for postgres. You should change it to a random password
|
||||
// Please use only the characters `A-Za-z0-9`, without special characters or spaces
|
||||
"DB_PASSWORD": "${localEnv:DB_PASSWORD:postgres}",
|
||||
|
|
|
|||
2
.github/.nvmrc
vendored
|
|
@ -1 +1 @@
|
|||
22.19.0
|
||||
22.20.0
|
||||
|
|
|
|||
8
.github/workflows/build-mobile.yml
vendored
|
|
@ -55,7 +55,7 @@ jobs:
|
|||
runs-on: mich
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
ref: ${{ inputs.ref || github.sha }}
|
||||
persist-credentials: false
|
||||
|
|
@ -66,14 +66,14 @@ jobs:
|
|||
working-directory: ./mobile
|
||||
run: printf "%s" $KEY_JKS | base64 -d > android/key.jks
|
||||
|
||||
- uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
|
||||
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
|
||||
with:
|
||||
distribution: 'zulu'
|
||||
java-version: '17'
|
||||
|
||||
- name: Restore Gradle Cache
|
||||
id: cache-gradle-restore
|
||||
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
|
||||
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
|
|
@ -130,7 +130,7 @@ jobs:
|
|||
|
||||
- name: Save Gradle Cache
|
||||
id: cache-gradle-save
|
||||
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
|
||||
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
|
||||
if: github.ref == 'refs/heads/main'
|
||||
with:
|
||||
path: |
|
||||
|
|
|
|||
2
.github/workflows/cache-cleanup.yml
vendored
|
|
@ -19,7 +19,7 @@ jobs:
|
|||
actions: write
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
|
|
|||
10
.github/workflows/cli.yml
vendored
|
|
@ -29,7 +29,7 @@ jobs:
|
|||
working-directory: ./cli
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
|
@ -37,7 +37,7 @@ jobs:
|
|||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './cli/.nvmrc'
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
|
|
@ -50,7 +50,7 @@ jobs:
|
|||
|
||||
- run: pnpm install --frozen-lockfile
|
||||
- run: pnpm build
|
||||
- run: pnpm publish
|
||||
- run: pnpm publish --no-git-checks
|
||||
if: ${{ github.event_name == 'release' }}
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
|
@ -65,7 +65,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ jobs:
|
|||
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
if: ${{ !github.event.pull_request.head.repo.fork }}
|
||||
with:
|
||||
registry: ghcr.io
|
||||
|
|
|
|||
8
.github/workflows/codeql-analysis.yml
vendored
|
|
@ -44,13 +44,13 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
|
||||
uses: github/codeql-action/init@64d10c13136e1c5bce3e5fbde8d4906eeaafc885 # v3.30.6
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# 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).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
|
||||
uses: github/codeql-action/autobuild@64d10c13136e1c5bce3e5fbde8d4906eeaafc885 # v3.30.6
|
||||
|
||||
# ℹ️ 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
|
||||
|
|
@ -76,6 +76,6 @@ jobs:
|
|||
# ./location_of_script_within_repo/buildscript.sh
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@192325c86100d080feab897ff886c34abd4c83a3 # v3.30.3
|
||||
uses: github/codeql-action/analyze@64d10c13136e1c5bce3e5fbde8d4906eeaafc885 # v3.30.6
|
||||
with:
|
||||
category: '/language:${{matrix.language}}'
|
||||
|
|
|
|||
8
.github/workflows/docker.yml
vendored
|
|
@ -53,7 +53,7 @@ jobs:
|
|||
suffix: ['', '-cuda', '-rocm', '-openvino', '-armnn', '-rknn']
|
||||
steps:
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
|
|
@ -82,7 +82,7 @@ jobs:
|
|||
suffix: ['']
|
||||
steps:
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
|
||||
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
|
|
@ -124,7 +124,7 @@ jobs:
|
|||
tag-suffix: '-rocm'
|
||||
platforms: linux/amd64
|
||||
runner-mapping: '{"linux/amd64": "mich"}'
|
||||
uses: immich-app/devtools/.github/workflows/multi-runner-build.yml@129aeda75a450666ce96e8bc8126652e717917a7 # multi-runner-build-workflow-0.1.1
|
||||
uses: immich-app/devtools/.github/workflows/multi-runner-build.yml@946acac326940f8badf09ccf591d9cb345d6a689 # multi-runner-build-workflow-v0.2.1
|
||||
permissions:
|
||||
contents: read
|
||||
actions: read
|
||||
|
|
@ -147,7 +147,7 @@ jobs:
|
|||
name: Build and Push Server
|
||||
needs: pre-job
|
||||
if: ${{ fromJSON(needs.pre-job.outputs.should_run).server == true }}
|
||||
uses: immich-app/devtools/.github/workflows/multi-runner-build.yml@129aeda75a450666ce96e8bc8126652e717917a7 # multi-runner-build-workflow-0.1.1
|
||||
uses: immich-app/devtools/.github/workflows/multi-runner-build.yml@946acac326940f8badf09ccf591d9cb345d6a689 # multi-runner-build-workflow-v0.2.1
|
||||
permissions:
|
||||
contents: read
|
||||
actions: read
|
||||
|
|
|
|||
4
.github/workflows/docs-build.yml
vendored
|
|
@ -47,7 +47,7 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
|
@ -55,7 +55,7 @@ jobs:
|
|||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './docs/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
|
|||
10
.github/workflows/docs-deploy.yml
vendored
|
|
@ -20,7 +20,7 @@ jobs:
|
|||
run: echo 'The triggering workflow did not succeed' && exit 1
|
||||
- name: Get artifact
|
||||
id: get-artifact
|
||||
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
with:
|
||||
script: |
|
||||
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
||||
|
|
@ -38,7 +38,7 @@ jobs:
|
|||
return { found: true, id: matchArtifact.id };
|
||||
- name: Determine deploy parameters
|
||||
id: parameters
|
||||
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
env:
|
||||
HEAD_SHA: ${{ github.event.workflow_run.head_sha }}
|
||||
with:
|
||||
|
|
@ -108,13 +108,13 @@ jobs:
|
|||
if: ${{ fromJson(needs.checks.outputs.artifact).found && fromJson(needs.checks.outputs.parameters).shouldDeploy }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Load parameters
|
||||
id: parameters
|
||||
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
env:
|
||||
PARAM_JSON: ${{ needs.checks.outputs.parameters }}
|
||||
with:
|
||||
|
|
@ -125,7 +125,7 @@ jobs:
|
|||
core.setOutput("shouldDeploy", parameters.shouldDeploy);
|
||||
|
||||
- name: Download artifact
|
||||
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
env:
|
||||
ARTIFACT_JSON: ${{ needs.checks.outputs.artifact }}
|
||||
with:
|
||||
|
|
|
|||
2
.github/workflows/docs-destroy.yml
vendored
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
pull-requests: write
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
|
|
|||
6
.github/workflows/fix-format.yml
vendored
|
|
@ -22,7 +22,7 @@ jobs:
|
|||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
|
||||
- name: 'Checkout'
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.ref }}
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
|
|
@ -32,7 +32,7 @@ jobs:
|
|||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -48,7 +48,7 @@ jobs:
|
|||
message: 'chore: fix formatting'
|
||||
|
||||
- name: Remove label
|
||||
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
if: always()
|
||||
with:
|
||||
script: |
|
||||
|
|
|
|||
2
.github/workflows/pr-labeler.yml
vendored
|
|
@ -11,4 +11,4 @@ jobs:
|
|||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
|
||||
- uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1
|
||||
|
|
|
|||
12
.github/workflows/prepare-release.yml
vendored
|
|
@ -55,20 +55,20 @@ jobs:
|
|||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
persist-credentials: true
|
||||
ref: main
|
||||
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
|
||||
uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
|
||||
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -117,18 +117,18 @@ jobs:
|
|||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
persist-credentials: false
|
||||
|
||||
- name: Download APK
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
|
||||
with:
|
||||
name: release-apk-signed
|
||||
|
||||
- name: Create draft release
|
||||
uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 # v2.3.3
|
||||
uses: softprops/action-gh-release@aec2ec56f94eb8180ceec724245f64ef008b89f5 # v2.4.0
|
||||
with:
|
||||
draft: true
|
||||
tag_name: ${{ env.IMMICH_VERSION }}
|
||||
|
|
|
|||
2
.github/workflows/preview-label.yaml
vendored
|
|
@ -24,7 +24,7 @@ jobs:
|
|||
permissions:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
|
||||
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
with:
|
||||
script: |
|
||||
github.rest.issues.removeLabel({
|
||||
|
|
|
|||
6
.github/workflows/sdk.yml
vendored
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
run:
|
||||
working-directory: ./open-api/typescript-sdk
|
||||
steps:
|
||||
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
|
@ -24,7 +24,7 @@ jobs:
|
|||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
|
||||
# Setup .npmrc file to publish to npm
|
||||
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
- uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './open-api/typescript-sdk/.nvmrc'
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
|
|
@ -35,6 +35,6 @@ jobs:
|
|||
- name: Build
|
||||
run: pnpm build
|
||||
- name: Publish
|
||||
run: pnpm publish
|
||||
run: pnpm publish --no-git-checks
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||
|
|
|
|||
2
.github/workflows/static_analysis.yml
vendored
|
|
@ -42,7 +42,7 @@ jobs:
|
|||
working-directory: ./mobile
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
|
|
|||
66
.github/workflows/test.yml
vendored
|
|
@ -56,13 +56,13 @@ jobs:
|
|||
working-directory: ./server
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -93,13 +93,13 @@ jobs:
|
|||
working-directory: ./cli
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './cli/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -133,13 +133,13 @@ jobs:
|
|||
working-directory: ./cli
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './cli/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -168,13 +168,13 @@ jobs:
|
|||
working-directory: ./web
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './web/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -185,7 +185,7 @@ jobs:
|
|||
- name: Run pnpm install
|
||||
run: pnpm rebuild && pnpm install --frozen-lockfile
|
||||
- name: Run linter
|
||||
run: pnpm lint:p
|
||||
run: pnpm lint
|
||||
if: ${{ !cancelled() }}
|
||||
- name: Run formatter
|
||||
run: pnpm format
|
||||
|
|
@ -205,13 +205,13 @@ jobs:
|
|||
working-directory: ./web
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './web/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -236,13 +236,13 @@ jobs:
|
|||
contents: read
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './web/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -277,13 +277,13 @@ jobs:
|
|||
working-directory: ./e2e
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './e2e/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -316,13 +316,13 @@ jobs:
|
|||
working-directory: ./server
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -347,14 +347,14 @@ jobs:
|
|||
runner: [ubuntu-latest, ubuntu-24.04-arm]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: 'recursive'
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './e2e/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -395,14 +395,14 @@ jobs:
|
|||
runner: [ubuntu-latest, ubuntu-24.04-arm]
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: 'recursive'
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './e2e/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -441,7 +441,7 @@ jobs:
|
|||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup Flutter SDK
|
||||
|
|
@ -466,12 +466,12 @@ jobs:
|
|||
run:
|
||||
working-directory: ./machine-learning
|
||||
steps:
|
||||
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2
|
||||
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
||||
uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
|
||||
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
|
||||
# TODO: add caching when supported (https://github.com/actions/setup-python/pull/818)
|
||||
# with:
|
||||
# python-version: 3.11
|
||||
|
|
@ -503,13 +503,13 @@ jobs:
|
|||
working-directory: ./.github
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './.github/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -525,7 +525,7 @@ jobs:
|
|||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Run ShellCheck
|
||||
|
|
@ -540,13 +540,13 @@ jobs:
|
|||
contents: read
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
@ -581,7 +581,7 @@ jobs:
|
|||
contents: read
|
||||
services:
|
||||
postgres:
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3@sha256:da52bbead5d818adaa8077c8dcdaad0aaf93038c31ad8348b51f9f0ec1310a4d
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3@sha256:dbf18b3ffea4a81434c65b71e20d27203baf903a0275f4341e4c16dfd901fd67
|
||||
env:
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_USER: postgres
|
||||
|
|
@ -595,13 +595,13 @@ jobs:
|
|||
working-directory: ./server
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
- name: Setup pnpm
|
||||
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version-file: './server/.nvmrc'
|
||||
cache: 'pnpm'
|
||||
|
|
|
|||
14
.vscode/launch.json
vendored
|
|
@ -18,6 +18,20 @@
|
|||
"name": "Immich Workers",
|
||||
"remoteRoot": "/usr/src/app/server",
|
||||
"localRoot": "${workspaceFolder}/server"
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Immich CLI",
|
||||
"program": "${workspaceFolder}/cli/dist/index.js",
|
||||
"args": ["upload", "--help"],
|
||||
"runtimeArgs": ["--enable-source-maps"],
|
||||
"console": "integratedTerminal",
|
||||
"resolveSourceMapLocations": ["${workspaceFolder}/cli/dist/**/*.js.map"],
|
||||
"sourceMaps": true,
|
||||
"outFiles": ["${workspaceFolder}/cli/dist/**/*.js"],
|
||||
"skipFiles": ["<node_internals>/**"],
|
||||
"preLaunchTask": "Build Immich CLI"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
8
.vscode/tasks.json
vendored
|
|
@ -5,6 +5,7 @@
|
|||
"label": "Fix Permissions, Install Dependencies",
|
||||
"type": "shell",
|
||||
"command": "[ -f /immich-devcontainer/container-start.sh ] && /immich-devcontainer/container-start.sh || exit 0",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
|
|
@ -25,6 +26,7 @@
|
|||
"dependsOn": ["Fix Permissions, Install Dependencies"],
|
||||
"type": "shell",
|
||||
"command": "[ -f /immich-devcontainer/container-start-backend.sh ] && /immich-devcontainer/container-start-backend.sh || exit 0",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
|
|
@ -45,6 +47,7 @@
|
|||
"dependsOn": ["Fix Permissions, Install Dependencies"],
|
||||
"type": "shell",
|
||||
"command": "[ -f /immich-devcontainer/container-start-frontend.sh ] && /immich-devcontainer/container-start-frontend.sh || exit 0",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"echo": true,
|
||||
"reveal": "always",
|
||||
|
|
@ -67,6 +70,11 @@
|
|||
"runOn": "folderOpen"
|
||||
},
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"label": "Build Immich CLI",
|
||||
"type": "shell",
|
||||
"command": "pnpm --filter cli build:dev"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
2
Makefile
|
|
@ -91,8 +91,6 @@ format-%:
|
|||
pnpm --filter $(call map-package,$*) run format:fix
|
||||
lint-%:
|
||||
pnpm --filter $(call map-package,$*) run lint:fix
|
||||
lint-web:
|
||||
pnpm --filter $(call map-package,$*) run lint:p
|
||||
check-%:
|
||||
pnpm --filter $(call map-package,$*) run check
|
||||
check-web:
|
||||
|
|
|
|||
24
README.md
|
|
@ -28,7 +28,8 @@
|
|||
<a href="readme_i18n/README_de_DE.md">Deutsch</a>
|
||||
<a href="readme_i18n/README_nl_NL.md">Nederlands</a>
|
||||
<a href="readme_i18n/README_tr_TR.md">Türkçe</a>
|
||||
<a href="readme_i18n/README_zh_CN.md">中文</a>
|
||||
<a href="readme_i18n/README_zh_CN.md">简体中文</a>
|
||||
<a href="readme_i18n/README_zh_TW.md">正體中文</a>
|
||||
<a href="readme_i18n/README_uk_UA.md">Українська</a>
|
||||
<a href="readme_i18n/README_ru_RU.md">Русский</a>
|
||||
<a href="readme_i18n/README_pt_BR.md">Português Brasileiro</a>
|
||||
|
|
@ -38,26 +39,25 @@
|
|||
<a href="readme_i18n/README_th_TH.md">ภาษาไทย</a>
|
||||
</p>
|
||||
|
||||
## Disclaimer
|
||||
|
||||
- ⚠️ The project is under **very active** development.
|
||||
- ⚠️ Expect bugs and breaking changes.
|
||||
- ⚠️ **Do not use the app as the only way to store your photos and videos.**
|
||||
- ⚠️ Always follow [3-2-1](https://www.backblaze.com/blog/the-3-2-1-backup-strategy/) backup plan for your precious photos and videos!
|
||||
> [!WARNING]
|
||||
> ⚠️ Always follow [3-2-1](https://www.backblaze.com/blog/the-3-2-1-backup-strategy/) backup plan for your precious photos and videos!
|
||||
>
|
||||
|
||||
|
||||
> [!NOTE]
|
||||
> You can find the main documentation, including installation guides, at https://immich.app/.
|
||||
|
||||
## Links
|
||||
|
||||
- [Documentation](https://immich.app/docs)
|
||||
- [About](https://immich.app/docs/overview/introduction)
|
||||
- [Installation](https://immich.app/docs/install/requirements)
|
||||
- [Documentation](https://docs.immich.app/)
|
||||
- [About](https://docs.immich.app/overview/introduction)
|
||||
- [Installation](https://docs.immich.app/install/requirements)
|
||||
- [Roadmap](https://immich.app/roadmap)
|
||||
- [Demo](#demo)
|
||||
- [Features](#features)
|
||||
- [Translations](https://immich.app/docs/developer/translations)
|
||||
- [Contributing](https://immich.app/docs/overview/support-the-project)
|
||||
- [Translations](https://docs.immich.app/developer/translations)
|
||||
- [Contributing](https://docs.immich.app/overview/support-the-project)
|
||||
|
||||
## Demo
|
||||
|
||||
|
|
@ -106,7 +106,7 @@ Access the demo [here](https://demo.immich.app). For the mobile app, you can use
|
|||
|
||||
## Translations
|
||||
|
||||
Read more about translations [here](https://immich.app/docs/developer/translations).
|
||||
Read more about translations [here](https://docs.immich.app/developer/translations).
|
||||
|
||||
<a href="https://hosted.weblate.org/engage/immich/">
|
||||
<img src="https://hosted.weblate.org/widget/immich/immich/multi-auto.svg" alt="Translation status" />
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
22.19.0
|
||||
22.20.0
|
||||
|
|
|
|||
|
|
@ -1,30 +1,38 @@
|
|||
A command-line interface for interfacing with the self-hosted photo manager [Immich](https://immich.app/).
|
||||
|
||||
Please see the [Immich CLI documentation](https://immich.app/docs/features/command-line-interface).
|
||||
Please see the [Immich CLI documentation](https://docs.immich.app/features/command-line-interface).
|
||||
|
||||
# For developers
|
||||
|
||||
Before building the CLI, you must build the immich server and the open-api client. To build the server run the following in the server folder:
|
||||
|
||||
$ npm install
|
||||
$ npm run build
|
||||
$ pnpm install
|
||||
$ pnpm run build
|
||||
|
||||
Then, to build the open-api client run the following in the open-api folder:
|
||||
|
||||
$ ./bin/generate-open-api.sh
|
||||
|
||||
To run the Immich CLI from source, run the following in the cli folder:
|
||||
## Run from build
|
||||
|
||||
$ npm install
|
||||
$ npm run build
|
||||
$ ts-node .
|
||||
Go to the cli folder and build it:
|
||||
|
||||
You'll need ts-node, the easiest way to install it is to use npm:
|
||||
$ pnpm install
|
||||
$ pnpm run build
|
||||
$ node dist/index.js
|
||||
|
||||
$ npm i -g ts-node
|
||||
## Run and Debug from source (VSCode)
|
||||
|
||||
With VScode you can run and debug the Immich CLI. Go to the launch.json file, find the Immich CLI config and change this with the command you need to debug
|
||||
|
||||
`"args": ["upload", "--help"],`
|
||||
|
||||
replace that for the command of your choice.
|
||||
|
||||
## Install from build
|
||||
|
||||
You can also build and install the CLI using
|
||||
|
||||
$ npm run build
|
||||
$ npm install -g .
|
||||
$ pnpm run build
|
||||
$ pnpm install -g .
|
||||
****
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@immich/cli",
|
||||
"version": "2.2.94",
|
||||
"version": "2.2.97",
|
||||
"description": "Command Line Interface (CLI) for Immich",
|
||||
"type": "module",
|
||||
"exports": "./dist/index.js",
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/micromatch": "^4.0.9",
|
||||
"@types/mock-fs": "^4.13.1",
|
||||
"@types/node": "^22.18.1",
|
||||
"@types/node": "^22.18.8",
|
||||
"@vitest/coverage-v8": "^3.0.0",
|
||||
"byte-size": "^9.0.0",
|
||||
"cli-progress": "^3.12.0",
|
||||
|
|
@ -43,6 +43,7 @@
|
|||
},
|
||||
"scripts": {
|
||||
"build": "vite build",
|
||||
"build:dev": "vite build --sourcemap true",
|
||||
"lint": "eslint \"src/**/*.ts\" --max-warnings 0",
|
||||
"lint:fix": "npm run lint -- --fix",
|
||||
"prepack": "npm run build",
|
||||
|
|
@ -68,6 +69,6 @@
|
|||
"micromatch": "^4.0.8"
|
||||
},
|
||||
"volta": {
|
||||
"node": "22.19.0"
|
||||
"node": "22.20.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose
|
||||
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
|
||||
#
|
||||
# Make sure to use the docker-compose.yml of the current release:
|
||||
#
|
||||
|
|
@ -8,8 +8,8 @@
|
|||
# The compose file on main may not be compatible with the latest release.
|
||||
|
||||
# For development see:
|
||||
# - https://immich.app/docs/developer/setup
|
||||
# - https://immich.app/docs/developer/troubleshooting
|
||||
# - https://docs.immich.app/developer/setup
|
||||
# - https://docs.immich.app/developer/troubleshooting
|
||||
|
||||
name: immich-dev
|
||||
|
||||
|
|
@ -55,8 +55,8 @@ services:
|
|||
IMMICH_BUILD_IMAGE_URL: https://github.com/immich-app/immich/pkgs/container/immich-server
|
||||
IMMICH_THIRD_PARTY_SOURCE_URL: https://github.com/immich-app/immich/
|
||||
IMMICH_THIRD_PARTY_BUG_FEATURE_URL: https://github.com/immich-app/immich/issues
|
||||
IMMICH_THIRD_PARTY_DOCUMENTATION_URL: https://immich.app/docs
|
||||
IMMICH_THIRD_PARTY_SUPPORT_URL: https://immich.app/docs/community-guides
|
||||
IMMICH_THIRD_PARTY_DOCUMENTATION_URL: https://docs.immich.app
|
||||
IMMICH_THIRD_PARTY_SUPPORT_URL: https://docs.immich.app/community-guides
|
||||
ulimits:
|
||||
nofile:
|
||||
soft: 1048576
|
||||
|
|
@ -134,13 +134,13 @@ services:
|
|||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571
|
||||
image: docker.io/valkey/valkey:8@sha256:81db6d39e1bba3b3ff32bd3a1b19a6d69690f94a3954ec131277b9a26b95b3aa
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
|
||||
database:
|
||||
container_name: immich_postgres
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:41eacbe83eca995561fe43814fd4891e16e39632806253848efaf04d3c8a8b84
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose
|
||||
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
|
||||
#
|
||||
# Make sure to use the docker-compose.yml of the current release:
|
||||
#
|
||||
|
|
@ -56,14 +56,14 @@ services:
|
|||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571
|
||||
image: docker.io/valkey/valkey:8@sha256:81db6d39e1bba3b3ff32bd3a1b19a6d69690f94a3954ec131277b9a26b95b3aa
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
|
||||
database:
|
||||
container_name: immich_postgres
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:41eacbe83eca995561fe43814fd4891e16e39632806253848efaf04d3c8a8b84
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
# WARNING: To install Immich, follow our guide: https://immich.app/docs/install/docker-compose
|
||||
# WARNING: To install Immich, follow our guide: https://docs.immich.app/install/docker-compose
|
||||
#
|
||||
# Make sure to use the docker-compose.yml of the current release:
|
||||
#
|
||||
|
|
@ -36,7 +36,7 @@ services:
|
|||
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
|
||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
|
||||
# extends: # uncomment this section for hardware acceleration - see https://docs.immich.app/features/ml-hardware-acceleration
|
||||
# file: hwaccel.ml.yml
|
||||
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||
volumes:
|
||||
|
|
@ -49,14 +49,14 @@ services:
|
|||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571
|
||||
image: docker.io/valkey/valkey:8@sha256:81db6d39e1bba3b3ff32bd3a1b19a6d69690f94a3954ec131277b9a26b95b3aa
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
|
||||
database:
|
||||
container_name: immich_postgres
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:41eacbe83eca995561fe43814fd4891e16e39632806253848efaf04d3c8a8b84
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
POSTGRES_USER: ${DB_USERNAME}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
|
||||
# You can find documentation for all the supported env variables at https://docs.immich.app/install/environment-variables
|
||||
|
||||
# The location where your uploaded files are stored
|
||||
UPLOAD_LOCATION=./library
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
# you can inline the config for a backend by copying its contents
|
||||
# into the immich-machine-learning service in the docker-compose.yml file.
|
||||
|
||||
# See https://immich.app/docs/features/ml-hardware-acceleration for info on usage.
|
||||
# See https://docs.immich.app/features/ml-hardware-acceleration for info on usage.
|
||||
|
||||
services:
|
||||
armnn:
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
# you can inline the config for a backend by copying its contents
|
||||
# into the immich-microservices service in the docker-compose.yml file.
|
||||
|
||||
# See https://immich.app/docs/features/hardware-transcoding for more info on using hardware transcoding.
|
||||
# See https://docs.immich.app/features/hardware-transcoding for more info on using hardware transcoding.
|
||||
|
||||
services:
|
||||
cpu: {}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
22.19.0
|
||||
22.20.0
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ For organizations seeking to resell Immich, we have established the following gu
|
|||
|
||||
- Do not misrepresent your reseller site or services as being officially affiliated with or endorsed by Immich or our development team.
|
||||
|
||||
- For small resellers who wish to contribute financially to Immich's development, we recommend directing your customers to purchase licenses directy from us rather than attempting to broker revenue-sharing arrangements. We ask that you refrain from misrepresenting reseller activities as directly supporting our development work.
|
||||
- For small resellers who wish to contribute financially to Immich's development, we recommend directing your customers to purchase licenses directly from us rather than attempting to broker revenue-sharing arrangements. We ask that you refrain from misrepresenting reseller activities as directly supporting our development work.
|
||||
|
||||
When in doubt or if you have an edge case scenario, we encourage you to contact us directly via email to discuss the use of our trademark. We can provide clear guidance on what is acceptable and what is not. You can reach out at: questions@immich.app
|
||||
|
||||
|
|
|
|||
|
|
@ -55,3 +55,19 @@ Additionally, some jobs (such as memories generation) run on a schedule, which i
|
|||
:::note
|
||||
Some jobs ([External Libraries](/features/libraries) scanning, Database Dump) are configured in their own sections in System Settings.
|
||||
:::
|
||||
|
||||
## Job processing order
|
||||
|
||||
The below diagram shows the job run order for newly uploaded files
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A[Asset Upload] --> B[Metadata Extraction]
|
||||
B --> C[Storage Template Migration]
|
||||
C --> D["Thumbnail Generation (Large, small, blurred and person)"]
|
||||
D --> E[Smart Search]
|
||||
D --> F[Face Detection]
|
||||
D --> G[Video Transcoding]
|
||||
E --> H[Duplicate Detection]
|
||||
F --> I[Facial Recognition]
|
||||
```
|
||||
|
|
|
|||
|
|
@ -6,6 +6,10 @@ Users can deploy a custom reverse proxy that forwards requests to Immich. This w
|
|||
Immich does not support being served on a sub-path such as `location /immich {`. It has to be served on the root path of a (sub)domain.
|
||||
:::
|
||||
|
||||
:::info
|
||||
If your reverse proxy uses the [Let's Encrypt](https://letsencrypt.org/) [http-01 challenge](https://letsencrypt.org/docs/challenge-types/#http-01-challenge), you may want to verify that the Immich well-known endpoint (`/.well-known/immich`) gets correctly routed to Immich, otherwise it will likely be routed elsewhere and the mobile app may run into connection issues.
|
||||
:::
|
||||
|
||||
### Nginx example config
|
||||
|
||||
Below is an example config for nginx. Make sure to set `public_url` to the front-facing URL of your instance, and `backend_url` to the path of the Immich server.
|
||||
|
|
@ -37,29 +41,14 @@ server {
|
|||
location / {
|
||||
proxy_pass http://<backend_url>:2283;
|
||||
}
|
||||
|
||||
# useful when using Let's Encrypt http-01 challenge
|
||||
# location = /.well-known/immich {
|
||||
# proxy_pass http://<backend_url>:2283;
|
||||
# }
|
||||
}
|
||||
```
|
||||
|
||||
#### Compatibility with Let's Encrypt
|
||||
|
||||
In the event that your nginx configuration includes a section for Let's Encrypt, it's likely that you have a segment similar to the following:
|
||||
|
||||
```nginx
|
||||
location ~ /.well-known {
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
This particular `location` directive can inadvertently prevent mobile clients from reaching the `/.well-known/immich` path, which is crucial for discovery. Usual error message for this case is: "Your app major version is not compatible with the server". To remedy this, you should introduce an additional location block specifically for this path, ensuring that requests are correctly proxied to the Immich server:
|
||||
|
||||
```nginx
|
||||
location = /.well-known/immich {
|
||||
proxy_pass http://<backend_url>:2283;
|
||||
}
|
||||
```
|
||||
|
||||
By doing so, you'll maintain the functionality of Let's Encrypt while allowing mobile clients to access the necessary Immich path without obstruction.
|
||||
|
||||
### Caddy example config
|
||||
|
||||
As an alternative to nginx, you can also use [Caddy](https://caddyserver.com/) as a reverse proxy (with automatic HTTPS configuration). Below is an example config.
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
# Community Guides
|
||||
|
||||
This page lists community guides that are written around Immich, but not officially supported by the development team.
|
||||
|
||||
:::warning
|
||||
This list comes with no guarantees about security, performance, reliability, or accuracy. Use at your own risk.
|
||||
:::
|
||||
|
||||
import CommunityGuides from '../src/components/community-guides.tsx';
|
||||
import React from 'react';
|
||||
|
||||
<CommunityGuides />
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
# Community Projects
|
||||
|
||||
This page lists community projects that are built around Immich, but not officially supported by the development team.
|
||||
|
||||
:::warning
|
||||
This list comes with no guarantees about security, performance, reliability, or accuracy. Use at your own risk.
|
||||
:::
|
||||
|
||||
import CommunityProjects from '../src/components/community-projects.tsx';
|
||||
import React from 'react';
|
||||
|
||||
<CommunityProjects />
|
||||
|
|
@ -4,7 +4,7 @@ Immich supports the Google's Cast protocol so that photos and videos can be cast
|
|||
|
||||
## Enable Google Cast Support
|
||||
|
||||
Google Cast support is disabled by default. The web UI uses Google-provided scripts and must retreive them from Google servers when the page loads. This is a privacy concern for some and is thus opt-in.
|
||||
Google Cast support is disabled by default. The web UI uses Google-provided scripts and must retrieve them from Google servers when the page loads. This is a privacy concern for some and is thus opt-in.
|
||||
|
||||
You can enable Google Cast support through `Account Settings > Features > Cast > Google Cast`
|
||||
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@ For example to get a list of files that would be uploaded for further
|
|||
processing:
|
||||
|
||||
```bash
|
||||
immich upload --dry-run . | tail -n +4 | jq .newFiles[]
|
||||
immich upload --dry-run . | tail -n +6 | jq .newFiles[]
|
||||
```
|
||||
|
||||
### Obtain the API Key
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
# External Libraries
|
||||
|
||||
:::info
|
||||
Currently an external library can only belong to a single user which is selected when the library is initially created.
|
||||
:::
|
||||
|
||||
External libraries track assets stored in the filesystem outside of Immich. When the external library is scanned, Immich will load videos and photos from disk and create the corresponding assets. These assets will then be shown in the main timeline, and they will look and behave like any other asset, including viewing on the map, adding to albums, etc. Later, if a file is modified outside of Immich, you need to scan the library for the changes to show up.
|
||||
|
||||
If an external asset is deleted from disk, Immich will move it to trash on rescan. To restore the asset, you need to restore the original file. After 30 days the file will be removed from trash, and any changes to metadata within Immich will be lost.
|
||||
|
|
|
|||
|
|
@ -54,9 +54,25 @@ You do not need to redo any machine learning jobs after enabling hardware accele
|
|||
#### OpenVINO
|
||||
|
||||
- Integrated GPUs are more likely to experience issues than discrete GPUs, especially for older processors or servers with low RAM.
|
||||
- Ensure the server's kernel version is new enough to use the device for hardware accceleration.
|
||||
- Ensure the server's kernel version is new enough to use the device for hardware acceleration.
|
||||
- Expect higher RAM usage when using OpenVINO compared to CPU processing.
|
||||
|
||||
#### OpenVINO-WSL
|
||||
|
||||
- Ensure your container can access the /dev/dri directory, you can verify this by doing `docker exec -t immich_machine_learning ls -la /dev/dri`. If this is not the case execute `getent group render` and `getent group video` on the WSL host, then add those groups to hwaccel.ml.yaml
|
||||
```yaml
|
||||
openvino-wsl:
|
||||
devices:
|
||||
- /dev/dri:/dev/dri
|
||||
- /dev/dxg:/dev/dxg
|
||||
volumes:
|
||||
- /dev/bus/usb:/dev/bus/usb
|
||||
- /usr/lib/wsl:/usr/lib/wsl
|
||||
group_add:
|
||||
- 44 # Replace this number with the number you found with getent group video
|
||||
- 992 # Replace this number with the number you found with getent group render
|
||||
```
|
||||
|
||||
#### RKNN
|
||||
|
||||
- You must have a supported Rockchip SoC: only RK3566, RK3568, RK3576 and RK3588 are supported at this moment.
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ import { mdiCloudOffOutline, mdiCloudCheckOutline } from '@mdi/js';
|
|||
import MobileAppDownload from '/docs/partials/_mobile-app-download.md';
|
||||
import MobileAppLogin from '/docs/partials/_mobile-app-login.md';
|
||||
import MobileAppBackup from '/docs/partials/_mobile-app-backup.md';
|
||||
import { cloudDonePath, cloudOffPath } from '@site/src/components/svg-paths';
|
||||
|
||||
# Mobile App
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ You can read this guide to learn more about [partner sharing](/features/partner-
|
|||
|
||||
## Public sharing
|
||||
|
||||
You can create a public link to share a group of photos or videos, or an album, with anyone. The public link can be shared via email, social media, or any other method. There are a varierity of options to customize the public link, such as setting an expiration date, password protection, and more. Public shared link is handy when you want to share a group of photos or videos with someone who doesn't have an Immich account and allow the shared user to upload their photos or videos to your account.
|
||||
You can create a public link to share a group of photos or videos, or an album, with anyone. The public link can be shared via email, social media, or any other method. There are a variety of options to customize the public link, such as setting an expiration date, password protection, and more. Public shared link is handy when you want to share a group of photos or videos with someone who doesn't have an Immich account and allow the shared user to upload their photos or videos to your account.
|
||||
|
||||
The public shared link is generated with a random URL, which acts as as a secret to avoid the link being guessed by unwanted parties, for instance.
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,10 @@ Restart Immich by running `docker compose up -d`.
|
|||
|
||||
# Create the library
|
||||
|
||||
:::info
|
||||
External library management requires administrator access and the steps below assume you are using an admin account.
|
||||
:::
|
||||
|
||||
In the Immich web UI:
|
||||
|
||||
- click the **Administration** link in the upper right corner.
|
||||
|
|
@ -33,7 +37,7 @@ In the Immich web UI:
|
|||
<img src={require('./img/create-external-library.webp').default} width="50%" title="Create Library button" />
|
||||
|
||||
- In the dialog, select which user should own the new library
|
||||
<img src={require('./img/library-owner.webp').default} width="50%" title="Library owner diaglog" />
|
||||
<img src={require('./img/library-owner.webp').default} width="50%" title="Library owner dialog" />
|
||||
|
||||
- Click the three-dots menu and select **Edit Import Paths**
|
||||
<img src={require('./img/edit-import-paths.webp').default} width="50%" title="Edit Import Paths menu option" />
|
||||
|
|
|
|||
|
|
@ -171,6 +171,7 @@ Redis (Sentinel) URL example JSON before encoding:
|
|||
| `MACHINE_LEARNING_MAX_BATCH_SIZE__FACIAL_RECOGNITION` | Set the maximum number of faces that will be processed at once by the facial recognition model | None (`1` if using OpenVINO) | machine learning |
|
||||
| `MACHINE_LEARNING_RKNN` | Enable RKNN hardware acceleration if supported | `True` | machine learning |
|
||||
| `MACHINE_LEARNING_RKNN_THREADS` | How many threads of RKNN runtime should be spinned up while inferencing. | `1` | machine learning |
|
||||
| `MACHINE_LEARNING_MODEL_ARENA` | Pre-allocates CPU memory to avoid memory fragmentation | true | machine learning |
|
||||
|
||||
\*1: It is recommended to begin with this parameter when changing the concurrency levels of the machine learning service and then tune the other ones.
|
||||
|
||||
|
|
|
|||
32
docs/docs/install/one-click.md
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
sidebar_position: 65
|
||||
---
|
||||
|
||||
# One-Click [Cloud Service]
|
||||
|
||||
:::note
|
||||
This version of Immich is provided via cloud service providers' one-click marketplaces. Hosting costs are set by the cloud service providers.
|
||||
Support for these are provided by the individual cloud service providers.
|
||||
|
||||
**Please report issues to the corresponding [Github Repository][github].**
|
||||
:::
|
||||
|
||||
## Installation
|
||||
|
||||
Go to the provider's marketplace and choose Immich, then follow the provided instructions.
|
||||
|
||||
## One-Click Immich marketplace providers
|
||||
|
||||
### DigitalOcean
|
||||
|
||||
https://marketplace.digitalocean.com/apps/immich
|
||||
|
||||
### Vultr
|
||||
|
||||
https://www.vultr.com/marketplace/apps/immich
|
||||
|
||||
## Issues
|
||||
|
||||
For issues, open an issue on the associated [GitHub Repository][github].
|
||||
|
||||
[github]: https://github.com/immich-app/immich/
|
||||
|
|
@ -16,7 +16,7 @@ Immich can easily be installed on a Synology NAS using Container Manager within
|
|||
|
||||
## Step 1 - Download the required files
|
||||
|
||||
Create a directory of your choice (e.g. `./immich-app`) to house Immich. In general, it's a best practice to have all Docker-based applications running under the `./docker` directory, so in this case, your directory structure will look like `./docker/immich-app`.
|
||||
Create a directory of your choice (e.g. `./immich-app`) to house Immich. In general, it's best practice to have all Docker-based applications running under the `./docker` directory, so in this case, your directory structure will look like `./docker/immich-app`.
|
||||
|
||||
Now create a `./postgres` and `./library` directory as sub-directories of the `./docker/immich-app`.
|
||||
|
||||
|
|
@ -25,7 +25,7 @@ When you're all done, you should have the following:
|
|||
- `./docker/immich-app/postgres`
|
||||
- `./docker/immich-app/library`
|
||||
|
||||
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) to your computer. Upload the files to the `./docker/immich-app` directory, and rename `example.env` to `.env`.
|
||||
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) to your computer. Upload the files to the `./docker/immich-app` directory, and rename `example.env` to `.env`. Note: If you plan to use the Synology Text editor to edit the `.env` file on the NAS within File Station, you will need to rename it to a temporary name (e.g. `example.txt`) in order to see 'Open with Text Editor' in the file context menu. Once saved, rename it back to `.env`.
|
||||
|
||||
## Step 2 - Populate the .env file with custom values
|
||||
|
||||
|
|
@ -34,23 +34,23 @@ Follow [Step 2 in Docker Compose](/install/docker-compose#step-2---populate-the-
|
|||
## Step 3 - Create a new project in Container Manager
|
||||
|
||||
Open Container Manager, and select the "**Project**" action on the left navigation bar and then click "**Create**".
|
||||

|
||||

|
||||
|
||||
In the settings of your new project, set "**Project name**" to a name you'll remember, such as _immich-app_. When setting the "**Path**", select the `./docker/immich-app` directory you created earlier. Doing so will prompt a message to use the existing `docker-compose.yml` already present in the directory for your project. Click "**OK**" to continue.
|
||||
|
||||

|
||||

|
||||
|
||||
The following screen will give you the option to further customize your `docker-compose.yml` file, giving you a warning regarding the `start_interval` property. Under the `healthcheck` heading, remove the `start_interval: 30s` completely and click "**Next**".
|
||||
The following screen will give you the option to further customize your `docker-compose.yml` file. Take note of `DB_STORAGE_TYPE: 'HDD'` and uncomment if applicable for your Synology setup.
|
||||
|
||||

|
||||

|
||||
|
||||
Skip the section asking to set-up a portal for Web Station, and then complete the wizard which will build and start the containers for your project.
|
||||
|
||||
Once your containers are successfully running, navigate to the "**Container**" section of Container Manager, right-click on the "**immich-server**" container, and choose the "**Details**".
|
||||
|
||||
Scroll to the bottom of the "**Details**" section, and find the `IP Address` of the container, located in the `Network` section. Take note of the container's IP address as you will need it for **Step 4**.
|
||||
Scroll to the bottom of the "**Details**" section and find the `IP Address` listed in the `Network` section. Take note of the container's IP address as you will need it for **Step 4**.
|
||||
|
||||

|
||||

|
||||
|
||||
## Step 4 - Configure Firewall Settings
|
||||
|
||||
|
|
@ -63,8 +63,66 @@ Open "**Control Panel**" on your Synology NAS, and select "**Security**". Naviga
|
|||
Click "**Edit Rules**" and add the following firewall rules:
|
||||
|
||||
- Add a "**Source IP**" rule for the IP address of your container that you obtained in Step 3 above
|
||||
|
||||

|
||||
|
||||
- Add a "**Ports**" rule for the port specified in the `docker-compose.yml`, which should be `2283`
|
||||
|
||||

|
||||
|
||||
## Next Steps
|
||||
|
||||
Read the [Post Installation](/install/post-install.mdx) steps and [upgrade instructions](/install/upgrading.md).
|
||||
|
||||
<details>
|
||||
<summary>Updating Immich using Container Manager</summary>
|
||||
Check the post installation and upgrade instructions at the links above before proceeding with this section.
|
||||
|
||||
## Step 1. Backup
|
||||
|
||||
Ensure your photos and videos are backed up. Your `.env` settings will define where they are stored. There is no need to delete any files or folders within the `docker` folder when doing a release upgrade unless instructed in the release notes.
|
||||
|
||||
## Step 2. Check release notes
|
||||
|
||||
Always check the [release notes](https://github.com/immich-app/immich/releases) before proceeding with an update!
|
||||
|
||||
## Step 3. Stop containers & clean up
|
||||
|
||||
Open **Container Manager**. Select **Project** then your Immich app
|
||||
|
||||

|
||||
|
||||
Select **Stop**
|
||||
|
||||

|
||||
|
||||
Select **Action** then **Clean**. This removes the containers.
|
||||
|
||||

|
||||
|
||||
Go to **Image** and select **Remove Unused Images**.
|
||||
|
||||

|
||||
|
||||
## Step 4. Build
|
||||
|
||||
Go to **Project**, select **Action** then **Build**. This will download, unpack, install and start the containers.
|
||||
|
||||

|
||||
|
||||
## Step 5. Update firewall rule
|
||||
|
||||
The default behavior is to automatically start the containers once installed. If `immich_server` runs for a few seconds and then stops, it may be because the firewall rule no longer matches the server IP address.
|
||||
|
||||
Go to the **Container** section. Click on `immich_server` and scroll down on **General** to find the IP address.
|
||||

|
||||
|
||||
Go to Synology **Control Panel**. Select **Security** and **Firewall**.
|
||||
|
||||

|
||||
|
||||
In this example, the IP addresses mismatch and the firewall rule needs to be edited to match above.
|
||||
|
||||

|
||||
|
||||
</details>
|
||||
|
|
|
|||
|
|
@ -387,27 +387,35 @@ To migrate from the old storage configuration to the new one, you will need to c
|
|||
3. **Copy the data** from the old datasets to the new dataset. We advise using the `rsync` command to copy the data, as it will preserve the permissions and ownership of the files. The following commands are examples:
|
||||
|
||||
```bash
|
||||
rsync -av /mnt/tank/immich/library/ /mnt/tank/immich/data/library/
|
||||
rsync -av /mnt/tank/immich/upload/ /mnt/tank/immich/data/upload/
|
||||
rsync -av /mnt/tank/immich/thumbs/ /mnt/tank/immich/data/thumbs/
|
||||
rsync -av /mnt/tank/immich/profile/ /mnt/tank/immich/data/profile/
|
||||
rsync -av /mnt/tank/immich/video/ /mnt/tank/immich/data/encoded-video/
|
||||
rsync -av /mnt/tank/immich/backups/ /mnt/tank/immich/data/backups/
|
||||
sudo rsync -av /mnt/tank/immich/library/ /mnt/tank/immich/data/library/
|
||||
sudo rsync -av /mnt/tank/immich/upload/ /mnt/tank/immich/data/upload/
|
||||
sudo rsync -av /mnt/tank/immich/thumbs/ /mnt/tank/immich/data/thumbs/
|
||||
sudo rsync -av /mnt/tank/immich/profile/ /mnt/tank/immich/data/profile/
|
||||
sudo rsync -av /mnt/tank/immich/video/ /mnt/tank/immich/data/encoded-video/
|
||||
sudo rsync -av /mnt/tank/immich/backups/ /mnt/tank/immich/data/backups/
|
||||
```
|
||||
|
||||
Make sure to replace `/mnt/tank/immich/` with the correct path to your old datasets and `/mnt/tank/immich/data/` with the correct path to your new dataset.
|
||||
|
||||
:::tip
|
||||
If you were using **ixVolume (dataset created automatically by the system)** for Immich data storage, the path to the data should be `/mnt/.ix-apps/app_mounts/immich/`. You have to use this path instead of `/mnt/tank/immich/` in the `rsync` command above, for example:
|
||||
If you were using **ixVolume (dataset created automatically by the system)** for some of Immich data storage, the path to the data should be `/mnt/.ix-apps/app_mounts/immich/`. You have to use this path instead of `/mnt/tank/immich/` in the `rsync` command above, for example:
|
||||
|
||||
```bash
|
||||
rsync -av /mnt/.ix-apps/app_mounts/immich/library/ /mnt/tank/immich/data/library/
|
||||
sudo rsync -av /mnt/.ix-apps/app_mounts/immich/library/ /mnt/tank/immich/data/library/
|
||||
```
|
||||
|
||||
If you also were storing your files in the **ixVolume**, the **_upload_** folder is named `uploads` instead of `upload`, so the command to run should be:
|
||||
|
||||
```bash
|
||||
sudo rsync -av /mnt/.ix-apps/app_mounts/immich/uploads/ /mnt/tank/immich/data/upload/
|
||||
```
|
||||
|
||||
This means that depending on your old storage configuration, you might have to use a mix of paths in the `rsync` commands above.
|
||||
|
||||
If you were also using an ixVolume for Postgres data storage, you also should, first create the pgData dataset, as described in the [Setting up Storage Datasets](#setting-up-storage-datasets) section above, and then you can use the following command to copy the Postgres data:
|
||||
|
||||
```bash
|
||||
rsync -av /mnt/.ix-apps/app_mounts/immich/pgData/ /mnt/tank/immich/pgData/
|
||||
sudo rsync -av /mnt/.ix-apps/app_mounts/immich/pgData/ /mnt/tank/immich/pgData/
|
||||
```
|
||||
|
||||
:::
|
||||
|
|
@ -416,7 +424,7 @@ rsync -av /mnt/.ix-apps/app_mounts/immich/pgData/ /mnt/tank/immich/pgData/
|
|||
Make sure that for each folder, the `.immich` file is copied as well, as it contains important metadata for Immich. If for some reason the `.immich` file is not copied, you can copy it manually with the `rsync` command, for example:
|
||||
|
||||
```bash
|
||||
rsync -av /mnt/tank/immich/library/.immich /mnt/tank/immich/data/library/
|
||||
sudo rsync -av /mnt/tank/immich/library/.immich /mnt/tank/immich/data/library/
|
||||
```
|
||||
|
||||
Replace `library` with the name of the folder where you are copying the file.
|
||||
|
|
@ -437,38 +445,37 @@ This will recreate the Immich container with the new storage configuration and s
|
|||
|
||||
If everything went well, you should now be able to access Immich with the new storage configuration. You can verify that the data has been copied correctly by checking the Immich web interface and ensuring that all your photos and videos are still available. You may delete the old datasets, if you no longer need them, using the TrueNAS web interface.
|
||||
|
||||
:::tip
|
||||
If you were using **ixVolume (dataset created automatically by the system)** or folders for Immich data storage, you can delete the old datasets using the following commands:
|
||||
|
||||
```bash
|
||||
rm -r /mnt/.ix-apps/app_mounts/immich/library
|
||||
rm -r /mnt/.ix-apps/app_mounts/immich/uploads
|
||||
rm -r /mnt/.ix-apps/app_mounts/immich/thumbs
|
||||
rm -r /mnt/.ix-apps/app_mounts/immich/profile
|
||||
rm -r /mnt/.ix-apps/app_mounts/immich/video
|
||||
rm -r /mnt/.ix-apps/app_mounts/immich/backups
|
||||
sudo rm -r /mnt/.ix-apps/app_mounts/immich/*
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="migrate-old-dataset" label="Keep the existing datasets">
|
||||
|
||||
|
||||
To migrate from the old storage configuration to the new one without creating new datasets.
|
||||
|
||||
1. **Stop the Immich app** from the TrueNAS web interface to ensure no data is being written while you are updating the app.
|
||||
2. **Update the datasets permissions**: Ensure that the datasets used for Immich data storage (`library`, `upload`, `thumbs`, `profile`, `video`, `backups`) have the correct permissions set for the user who will run Immich. The user should have ***modify*** permissions on these datasets. The default user for Immich is `apps` (UID 568) and the default group is `apps` (GID 568). If you are using a different user, make sure to set the permissions accordingly. You can do this from the TrueNAS web interface by going to the **Datasets** screen, selecting each dataset, clicking on the **Edit** button next to **Permissions**, and adding the user with ***modify*** permissions.
|
||||
2. **Update the datasets permissions**: Ensure that the datasets used for Immich data storage (`library`, `upload`, `thumbs`, `profile`, `video`, `backups`) have the correct permissions set for the user who will run Immich. The user should have **_modify_** permissions on these datasets. The default user for Immich is `apps` (UID 568) and the default group is `apps` (GID 568). If you are using a different user, make sure to set the permissions accordingly. You can do this from the TrueNAS web interface by going to the **Datasets** screen, selecting each dataset, clicking on the **Edit** button next to **Permissions**, and adding the user with **_modify_** permissions.
|
||||
3. **Update the Immich app** to use the existing datasets:
|
||||
- Go to the **Installed Applications** screen and select Immich from the list of installed applications.
|
||||
- Click **Edit** on the **Application Info** widget.
|
||||
- In the **Storage Configuration** section, untick the **Use Old Storage Configuration (Deprecated)** checkbox.
|
||||
- For the **Data Storage**, you can keep the **ixVolume (dataset created automatically by the system)** as no data will be directly written to it. We recommend selecting **Host Path (Path that already exists on the system)** and then select a **new** dataset you created for Immich data storage, for example, `data`.
|
||||
- For the **Postgres Data Storage**, keep **Host Path (Path that already exists on the system)** and then select the existing dataset you used for Postgres data storage, for example, `pgData`.
|
||||
- Following the instructions in the [Multiple Datasets for Immich Storage](#additional-storage-advanced-users) section, you can add, **for each old dataset**, a new Additional Storage with the following settings:
|
||||
- **Type**: `Host Path (Path that already exists on the system)`
|
||||
- **Mount Path**: `/data/<folder-name>` (e.g. `/data/library`)
|
||||
- **Host Path**: `/mnt/<your-pool-name>/<dataset-name>` (e.g. `/mnt/tank/immich/library`)
|
||||
:::danger Ensure using the correct paths names
|
||||
Make sure to replace `<folder-name>` with the actual name of the folder used by Immich: `library`, `upload`, `thumbs`, `profile`, `encoded-video`, and `backups`. Also, replace `<your-pool-name>` and `<dataset-name>` with the actual names of your pool and dataset.
|
||||
:::
|
||||
- **Read Only**: Keep it unticked as Immich needs to write to these datasets.
|
||||
- Click **Update** at the bottom of the page to save changes.
|
||||
- Go to the **Installed Applications** screen and select Immich from the list of installed applications.
|
||||
- Click **Edit** on the **Application Info** widget.
|
||||
- In the **Storage Configuration** section, untick the **Use Old Storage Configuration (Deprecated)** checkbox.
|
||||
- For the **Data Storage**, you can keep the **ixVolume (dataset created automatically by the system)** as no data will be directly written to it. We recommend selecting **Host Path (Path that already exists on the system)** and then select a **new** dataset you created for Immich data storage, for example, `data`.
|
||||
- For the **Postgres Data Storage**, keep **Host Path (Path that already exists on the system)** and then select the existing dataset you used for Postgres data storage, for example, `pgData`.
|
||||
- Following the instructions in the [Multiple Datasets for Immich Storage](#additional-storage-advanced-users) section, you can add, **for each old dataset**, a new Additional Storage with the following settings:
|
||||
- **Type**: `Host Path (Path that already exists on the system)`
|
||||
- **Mount Path**: `/data/<folder-name>` (e.g. `/data/library`)
|
||||
- **Host Path**: `/mnt/<your-pool-name>/<dataset-name>` (e.g. `/mnt/tank/immich/library`)
|
||||
:::danger Ensure using the correct paths names
|
||||
Make sure to replace `<folder-name>` with the actual name of the folder used by Immich: `library`, `upload`, `thumbs`, `profile`, `encoded-video`, and `backups`. Also, replace `<your-pool-name>` and `<dataset-name>` with the actual names of your pool and dataset.
|
||||
:::
|
||||
- **Read Only**: Keep it unticked as Immich needs to write to these datasets.
|
||||
- Click **Update** at the bottom of the page to save changes.
|
||||
4. **Start the Immich app** from the TrueNAS web interface. This will recreate the Immich container with the new storage configuration and start the app. If everything went well, you should now be able to access Immich with the new storage configuration. You can verify that the data is still available by checking the Immich web interface and ensuring that all your photos and videos are still accessible.
|
||||
|
||||
</TabItem>
|
||||
|
|
|
|||
|
|
@ -4,9 +4,7 @@ sidebar_position: 95
|
|||
|
||||
# Upgrading
|
||||
|
||||
:::danger Read the release notes
|
||||
Immich is currently under heavy development, which means you can expect [breaking changes][breaking] and bugs. You should read the release notes prior to updating and take special care when using automated tools like [Watchtower][watchtower].
|
||||
|
||||
:::tip Breaking changes
|
||||
You can see versions that had breaking changes [here][breaking].
|
||||
:::
|
||||
|
||||
|
|
@ -89,7 +87,7 @@ After making a backup, please modify your `docker-compose.yml` file with the fol
|
|||
If you deviated from the defaults of pg14 or pgvectors0.2.0, you must adjust the pg major version and pgvecto.rs version. If you are still using the default `docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0` image, you can just follow the changes above. For example, if the previous image is `docker.io/tensorchord/pgvecto-rs:pg16-v0.3.0`, the new image should be `ghcr.io/immich-app/postgres:16-vectorchord0.3.0-pgvectors0.3.0` instead of the image specified in the diff.
|
||||
:::
|
||||
|
||||
After making these changes, you can start Immich as normal. Immich will make some changes to the DB during startup, which can take seconds to minutes to finish, depending on hardware and library size. In particular, it’s normal for the server logs to be seemingly stuck at `Reindexing clip_index` and `Reindexing face_index`for some time if you have over 100k assets in Immich and/or Immich is on a relatively weak server. If you see these logs and there are no errors, just give it time.
|
||||
After making these changes, you can start Immich as normal. Immich will make some changes to the DB during startup, which can take seconds to minutes to finish, depending on hardware and library size. In particular, it’s normal for the server logs to be seemingly stuck at `Reindexing clip_index` and `Reindexing face_index` for some time if you have over 100k assets in Immich and/or Immich is on a relatively weak server. If you see these logs and there are no errors, just give it time.
|
||||
|
||||
:::danger
|
||||
After switching to VectorChord, you should not downgrade Immich below 1.133.0.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
The mobile app can be downloaded from the following places:
|
||||
|
||||
- Obtainium: You can get your Obtainium config link from the [Utilities page of your Immich server](https://my.immich.app/utilities).
|
||||
- [Google Play Store](https://play.google.com/store/apps/details?id=app.alextran.immich)
|
||||
- [Apple App Store](https://apps.apple.com/us/app/immich/id1613945652)
|
||||
- [F-Droid](https://f-droid.org/packages/app.alextran.immich)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
Now that you have imported some pictures, you should setup server backups to preserve your memories.
|
||||
You can do so by following our [backup guide](/administration/backup-and-restore.md).
|
||||
|
||||
:::danger
|
||||
Immich is still under heavy development _and_ handles very important data.
|
||||
It is essential that you set up good backups, and test them.
|
||||
:::info
|
||||
A 3-2-1 backup strategy is still crucial. The team has the responsibility to ensure that the application doesn’t cause loss of your precious memories; however, we cannot guarantee that hard drives will not fail, or an electrical event causes unexpected shutdown of your server/system, leading to data loss. Therefore, we still encourage users to follow best practices when safeguarding their data. Keep multiple copies of your most precious data: at least two local copies and one copy offsite in cold storage.
|
||||
:::
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ const prism = require('prism-react-renderer');
|
|||
const config = {
|
||||
title: 'Immich',
|
||||
tagline: 'High performance self-hosted photo and video backup solution directly from your mobile phone',
|
||||
url: 'https://immich.app',
|
||||
url: 'https://docs.immich.app',
|
||||
baseUrl: '/',
|
||||
onBrokenLinks: 'throw',
|
||||
onBrokenMarkdownLinks: 'warn',
|
||||
|
|
@ -65,11 +65,6 @@ const config = {
|
|||
themeConfig:
|
||||
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
|
||||
({
|
||||
announcementBar: {
|
||||
id: 'site_announcement_immich',
|
||||
content: `⚠️ The project is under <strong>very active</strong> development. Expect bugs and changes. Do not use it as <strong>the only way</strong> to store your photos and videos!`,
|
||||
isCloseable: false,
|
||||
},
|
||||
docs: {
|
||||
sidebar: {
|
||||
autoCollapseCategories: false,
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@
|
|||
"write-heading-ids": "docusaurus write-heading-ids"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "~3.8.0",
|
||||
"@docusaurus/preset-classic": "~3.8.0",
|
||||
"@docusaurus/theme-common": "~3.8.0",
|
||||
"@docusaurus/core": "~3.9.0",
|
||||
"@docusaurus/preset-classic": "~3.9.0",
|
||||
"@docusaurus/theme-common": "~3.9.0",
|
||||
"@mdi/js": "^7.3.67",
|
||||
"@mdi/react": "^1.6.1",
|
||||
"@mdx-js/react": "^3.0.0",
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
"url": "^0.11.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "~3.8.0",
|
||||
"@docusaurus/module-type-aliases": "~3.9.0",
|
||||
"@docusaurus/tsconfig": "^3.7.0",
|
||||
"@docusaurus/types": "^3.7.0",
|
||||
"prettier": "^3.2.4",
|
||||
|
|
@ -57,6 +57,6 @@
|
|||
"node": ">=20"
|
||||
},
|
||||
"volta": {
|
||||
"node": "22.19.0"
|
||||
"node": "22.20.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,108 +0,0 @@
|
|||
import Link from '@docusaurus/Link';
|
||||
import React from 'react';
|
||||
|
||||
interface CommunityGuidesProps {
|
||||
title: string;
|
||||
description: string;
|
||||
url: string;
|
||||
}
|
||||
|
||||
const guides: CommunityGuidesProps[] = [
|
||||
{
|
||||
title: 'Cloudflare Tunnels with SSO/OAuth',
|
||||
description: `Setting up Cloudflare Tunnels and a SaaS App for Immich.`,
|
||||
url: 'https://github.com/immich-app/immich/discussions/8299',
|
||||
},
|
||||
{
|
||||
title: 'Database backup in TrueNAS',
|
||||
description: `Create a database backup with pgAdmin in TrueNAS.`,
|
||||
url: 'https://github.com/immich-app/immich/discussions/8809',
|
||||
},
|
||||
{
|
||||
title: 'Unraid backup scripts',
|
||||
description: `Back up your assets in Unraid with a pre-prepared script.`,
|
||||
url: 'https://github.com/immich-app/immich/discussions/8416',
|
||||
},
|
||||
{
|
||||
title: 'Sync folders with albums',
|
||||
description: `synchronize folders in imported library with albums having the folders name.`,
|
||||
url: 'https://github.com/immich-app/immich/discussions/3382',
|
||||
},
|
||||
{
|
||||
title: 'Immich Podman Quadlets Handbook',
|
||||
description:
|
||||
'A rewrite of the original Immich Docker Compose file using Podman Quadlets, with a set of extra guides in the repository’s wiki.',
|
||||
url: 'https://github.com/linux-universe/immich-podman-quadlets/blob/main/README.md',
|
||||
},
|
||||
{
|
||||
title: 'Podman/Quadlets Install',
|
||||
description: 'Documentation for simple podman setup using quadlets.',
|
||||
url: 'https://github.com/tbelway/immich-podman-quadlets/blob/main/docs/install/podman-quadlet.md',
|
||||
},
|
||||
{
|
||||
title: 'Google Photos import + albums',
|
||||
description: 'Import your Google Photos files into Immich and add your albums.',
|
||||
url: 'https://github.com/immich-app/immich/discussions/1340',
|
||||
},
|
||||
{
|
||||
title: 'Access Immich with custom domain',
|
||||
description: 'Access your local Immich installation over the internet using your own domain.',
|
||||
url: 'https://github.com/ppr88/immich-guides/blob/main/open-immich-custom-domain.md',
|
||||
},
|
||||
{
|
||||
title: 'Nginx caching map server',
|
||||
description: 'Increase privacy by using nginx as a caching proxy in front of a map tile server.',
|
||||
url: 'https://github.com/pcouy/pcouy.github.io/blob/main/_posts/2024-08-30-proxying-a-map-tile-server-for-increased-privacy.md',
|
||||
},
|
||||
{
|
||||
title: 'fail2ban setup instructions',
|
||||
description: 'How to configure an existing fail2ban installation to block incorrect login attempts.',
|
||||
url: 'https://github.com/immich-app/immich/discussions/3243#discussioncomment-6681948',
|
||||
},
|
||||
{
|
||||
title: 'Immich remote access with NordVPN Meshnet',
|
||||
description: 'Access Immich with an end-to-end encrypted connection.',
|
||||
url: 'https://meshnet.nordvpn.com/how-to/remote-files-media-access/immich-remote-access',
|
||||
},
|
||||
{
|
||||
title: 'Trust Self Signed Certificates with Immich - OAuth Setup',
|
||||
description:
|
||||
'Set up Certificate Authority trust with Immich, and your private OAuth2/OpenID service, while using a private CA for HTTPS commication.',
|
||||
url: 'https://github.com/immich-app/immich/discussions/18614',
|
||||
},
|
||||
];
|
||||
|
||||
function CommunityGuide({ title, description, url }: CommunityGuidesProps): JSX.Element {
|
||||
return (
|
||||
<section className="flex flex-col gap-4 justify-between dark:bg-immich-dark-gray bg-immich-gray dark:border-0 border-gray-200 border border-solid rounded-2xl px-4 py-6">
|
||||
<div className="flex flex-col gap-2">
|
||||
<p className="m-0 items-start flex gap-2 text-2xl font-bold text-immich-primary dark:text-immich-dark-primary">
|
||||
<span>{title}</span>
|
||||
</p>
|
||||
|
||||
<p className="m-0 text-sm text-gray-600 dark:text-gray-300">{description}</p>
|
||||
<p className="m-0 text-sm text-gray-600 dark:text-gray-300 my-4">
|
||||
<a href={url}>{url}</a>
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex">
|
||||
<Link
|
||||
className="px-4 py-2 bg-immich-primary/10 dark:bg-gray-300 rounded-xl text-sm hover:no-underline text-immich-primary dark:text-immich-dark-bg font-semibold"
|
||||
to={url}
|
||||
>
|
||||
View Guide
|
||||
</Link>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
export default function CommunityGuides(): JSX.Element {
|
||||
return (
|
||||
<div className="grid grid-cols-1 xl:grid-cols-2 gap-4">
|
||||
{guides.map((guides) => (
|
||||
<CommunityGuide {...guides} />
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
@ -1,158 +0,0 @@
|
|||
import Link from '@docusaurus/Link';
|
||||
import React from 'react';
|
||||
|
||||
interface CommunityProjectProps {
|
||||
title: string;
|
||||
description: string;
|
||||
url: string;
|
||||
}
|
||||
|
||||
const projects: CommunityProjectProps[] = [
|
||||
{
|
||||
title: 'immich-go',
|
||||
description: `An alternative to the immich-CLI that doesn't depend on nodejs. It specializes in importing Google Photos Takeout archives.`,
|
||||
url: 'https://github.com/simulot/immich-go',
|
||||
},
|
||||
{
|
||||
title: 'ImmichFrame',
|
||||
description: 'Run an Immich slideshow in a photo frame.',
|
||||
url: 'https://github.com/3rob3/ImmichFrame',
|
||||
},
|
||||
{
|
||||
title: 'API Album Sync',
|
||||
description: 'A Python script to sync folders as albums.',
|
||||
url: 'https://git.orenit.solutions/open/immichalbumpull',
|
||||
},
|
||||
{
|
||||
title: 'Remove offline files',
|
||||
description: 'A simple way to remove orphaned offline assets from the Immich database',
|
||||
url: 'https://github.com/Thoroslives/immich_remove_offline_files',
|
||||
},
|
||||
{
|
||||
title: 'Immich-Tools',
|
||||
description: 'Provides scripts for handling problems on the repair page.',
|
||||
url: 'https://github.com/clumsyCoder00/Immich-Tools',
|
||||
},
|
||||
{
|
||||
title: 'Lightroom Publisher: mi.Immich.Publisher',
|
||||
description: 'Lightroom plugin to publish photos from Lightroom collections to Immich albums.',
|
||||
url: 'https://github.com/midzelis/mi.Immich.Publisher',
|
||||
},
|
||||
{
|
||||
title: 'Lightroom Immich Plugin: lrc-immich-plugin',
|
||||
description:
|
||||
'Lightroom plugin to publish, export photos from Lightroom to Immich. Import from Immich to Lightroom is also supported.',
|
||||
url: 'https://blog.fokuspunk.de/lrc-immich-plugin/',
|
||||
},
|
||||
{
|
||||
title: 'Immich-Tiktok-Remover',
|
||||
description: 'Script to search for and remove TikTok videos from your Immich library.',
|
||||
url: 'https://github.com/mxc2/immich-tiktok-remover',
|
||||
},
|
||||
{
|
||||
title: 'Immich Android TV',
|
||||
description: 'Unofficial Immich Android TV app.',
|
||||
url: 'https://github.com/giejay/Immich-Android-TV',
|
||||
},
|
||||
{
|
||||
title: 'Create albums from folders',
|
||||
description: 'A Python script to create albums based on the folder structure of an external library.',
|
||||
url: 'https://github.com/Salvoxia/immich-folder-album-creator',
|
||||
},
|
||||
{
|
||||
title: 'Powershell Module PSImmich',
|
||||
description: 'Powershell Module for the Immich API',
|
||||
url: 'https://github.com/hanpq/PSImmich',
|
||||
},
|
||||
{
|
||||
title: 'Immich Distribution',
|
||||
description: 'Snap package for easy install and zero-care auto updates of Immich. Self-hosted photo management.',
|
||||
url: 'https://immich-distribution.nsg.cc',
|
||||
},
|
||||
{
|
||||
title: 'Immich Kiosk',
|
||||
description: 'Lightweight slideshow to run on kiosk devices and browsers.',
|
||||
url: 'https://github.com/damongolding/immich-kiosk',
|
||||
},
|
||||
{
|
||||
title: 'Immich Power Tools',
|
||||
description: 'Power tools for organizing your immich library.',
|
||||
url: 'https://github.com/varun-raj/immich-power-tools',
|
||||
},
|
||||
{
|
||||
title: 'Immich Public Proxy',
|
||||
description:
|
||||
'Share your Immich photos and albums in a safe way without exposing your Immich instance to the public.',
|
||||
url: 'https://github.com/alangrainger/immich-public-proxy',
|
||||
},
|
||||
{
|
||||
title: 'Immich Kodi',
|
||||
description: 'Unofficial Kodi plugin for Immich.',
|
||||
url: 'https://github.com/vladd11/immich-kodi',
|
||||
},
|
||||
{
|
||||
title: 'Immich Downloader',
|
||||
description: 'Downloads a configurable number of random photos based on people or album ID.',
|
||||
url: 'https://github.com/jon6fingrs/immich-dl',
|
||||
},
|
||||
{
|
||||
title: 'Immich Upload Optimizer',
|
||||
description: 'Automatically optimize files uploaded to Immich in order to save storage space',
|
||||
url: 'https://github.com/miguelangel-nubla/immich-upload-optimizer',
|
||||
},
|
||||
{
|
||||
title: 'Immich Machine Learning Load Balancer',
|
||||
description: 'Speed up your machine learning by load balancing your requests to multiple computers',
|
||||
url: 'https://github.com/apetersson/immich_ml_balancer',
|
||||
},
|
||||
{
|
||||
title: 'Immich Drop Uploader',
|
||||
description: 'A tiny, zero-login web app for collecting photos/videos from anyone into your Immich server.',
|
||||
url: 'https://github.com/Nasogaa/immich-drop',
|
||||
},
|
||||
{
|
||||
title: 'Immich Birthday Sync',
|
||||
description: 'Bulk-upload and -download birthdays, with CardDAV sync support',
|
||||
url: 'https://github.com/sid3windr/immich-birthday',
|
||||
},
|
||||
{
|
||||
title: 'Immich Stack',
|
||||
description: 'Auto-stack photos with identical filenames and differing extensions (i.e. JPG+RAW)',
|
||||
url: 'https://github.com/sid3windr/immich-stack',
|
||||
},
|
||||
];
|
||||
|
||||
function CommunityProject({ title, description, url }: CommunityProjectProps): JSX.Element {
|
||||
return (
|
||||
<section className="flex flex-col gap-4 justify-between dark:bg-immich-dark-gray bg-immich-gray dark:border-0 border-gray-200 border border-solid rounded-2xl px-4 py-6">
|
||||
<div className="flex flex-col gap-2">
|
||||
<p className="m-0 items-start flex gap-2 text-2xl font-bold text-immich-primary dark:text-immich-dark-primary">
|
||||
<span>{title}</span>
|
||||
</p>
|
||||
|
||||
<p className="m-0 text-sm text-gray-600 dark:text-gray-300">{description}</p>
|
||||
<p className="m-0 text-sm text-gray-600 dark:text-gray-300 my-4">
|
||||
<a href={url}>{url}</a>
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex">
|
||||
<Link
|
||||
className="px-4 py-2 bg-immich-primary/10 dark:bg-gray-300 rounded-xl text-sm hover:no-underline text-immich-primary dark:text-immich-dark-bg font-semibold"
|
||||
to={url}
|
||||
>
|
||||
View Link
|
||||
</Link>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
|
||||
export default function CommunityProjects(): JSX.Element {
|
||||
return (
|
||||
<div className="grid grid-cols-1 xl:grid-cols-2 gap-4">
|
||||
{projects.map((project) => (
|
||||
<CommunityProject {...project} />
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
export const discordPath =
|
||||
'M81.15,0c-1.2376,2.1973-2.3489,4.4704-3.3591,6.794-9.5975-1.4396-19.3718-1.4396-28.9945,0-.985-2.3236-2.1216-4.5967-3.3591-6.794-9.0166,1.5407-17.8059,4.2431-26.1405,8.0568C2.779,32.5304-1.6914,56.3725.5312,79.8863c9.6732,7.1476,20.5083,12.603,32.0505,16.0884,2.6014-3.4854,4.8998-7.1981,6.8698-11.0623-3.738-1.3891-7.3497-3.1318-10.8098-5.1523.9092-.6567,1.7932-1.3386,2.6519-1.9953,20.281,9.547,43.7696,9.547,64.0758,0,.8587.7072,1.7427,1.3891,2.6519,1.9953-3.4601,2.0457-7.0718,3.7632-10.835,5.1776,1.97,3.8642,4.2683,7.5769,6.8698,11.0623,11.5419-3.4854,22.3769-8.9156,32.0509-16.0631,2.626-27.2771-4.496-50.9172-18.817-71.8548C98.9811,4.2684,90.1918,1.5659,81.1752.0505l-.0252-.0505ZM42.2802,65.4144c-6.2383,0-11.4159-5.6575-11.4159-12.6535s4.9755-12.6788,11.3907-12.6788,11.5169,5.708,11.4159,12.6788c-.101,6.9708-5.026,12.6535-11.3907,12.6535ZM84.3576,65.4144c-6.2637,0-11.3907-5.6575-11.3907-12.6535s4.9755-12.6788,11.3907-12.6788,11.4917,5.708,11.3906,12.6788c-.101,6.9708-5.026,12.6535-11.3906,12.6535Z';
|
||||
export const discordViewBox = '0 0 126.644 96';
|
||||
6
docs/static/_redirects
vendored
|
|
@ -27,8 +27,10 @@
|
|||
/administration/password-login /administration/system-settings 307
|
||||
/features/search /features/searching 307
|
||||
/features/smart-search /features/searching 307
|
||||
/guides/api-album-sync /community-projects 307
|
||||
/guides/remove-offline-files /community-projects 307
|
||||
/guides/api-album-sync https://awesome.immich.app/ 307
|
||||
/guides/remove-offline-files https://awesome.immich.app/ 307
|
||||
/community-guides https://awesome.immich.app/ 307
|
||||
/community-projects https://awesome.immich.app/ 307
|
||||
/overview/introduction /overview/quick-start 307
|
||||
/overview/welcome /overview/quick-start 307
|
||||
/docs/* /:splat 307
|
||||
|
|
|
|||
12
docs/static/archived-versions.json
vendored
|
|
@ -1,4 +1,16 @@
|
|||
[
|
||||
{
|
||||
"label": "v2.1.0",
|
||||
"url": "https://docs.v2.1.0.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.0.1",
|
||||
"url": "https://docs.v2.0.1.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.0.0",
|
||||
"url": "https://docs.v2.0.0.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.144.1",
|
||||
"url": "https://docs.v1.144.1.archive.immich.app"
|
||||
|
|
|
|||
BIN
docs/static/img/synology-action-clean.png
vendored
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
docs/static/img/synology-build.png
vendored
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
docs/static/img/synology-container-ip.png
vendored
Normal file
|
After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 153 KiB |
BIN
docs/static/img/synology-custom-port-firewall-rule.png
vendored
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
docs/static/img/synology-fw-ipedit.png
vendored
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
docs/static/img/synology-fw-rules.png
vendored
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
docs/static/img/synology-ipaddress-firewall-rule.png
vendored
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
docs/static/img/synology-project-stop.png
vendored
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
docs/static/img/synology-remove-unused.png
vendored
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
docs/static/img/synology-select-proj.png
vendored
Normal file
|
After Width: | Height: | Size: 26 KiB |
|
|
@ -1 +1 @@
|
|||
22.19.0
|
||||
22.20.0
|
||||
|
|
|
|||
|
|
@ -35,10 +35,10 @@ services:
|
|||
- 2285:2285
|
||||
|
||||
redis:
|
||||
image: redis:6.2-alpine@sha256:7fe72c486b910f6b1a9769c937dad5d63648ddee82e056f47417542dd40825bb
|
||||
image: redis:6.2-alpine@sha256:77697a75da9f94e9357b61fcaf8345f69e3d9d32e9d15032c8415c21263977dc
|
||||
|
||||
database:
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0@sha256:11ced39d65a92a54d12890ced6a26cc2003f92697d6f0d4d944b98459dba7138
|
||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0@sha256:6f3e9d2c2177af16c2988ff71425d79d89ca630ec2f9c8db03209ab716542338
|
||||
command: -c fsync=off -c shared_preload_libraries=vchord.so -c config_file=/var/lib/postgresql/data/postgresql.conf
|
||||
environment:
|
||||
POSTGRES_PASSWORD: postgres
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "immich-e2e",
|
||||
"version": "1.144.1",
|
||||
"version": "2.1.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"type": "module",
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
"@playwright/test": "^1.44.1",
|
||||
"@socket.io/component-emitter": "^3.1.2",
|
||||
"@types/luxon": "^3.4.2",
|
||||
"@types/node": "^22.18.1",
|
||||
"@types/node": "^22.18.8",
|
||||
"@types/oidc-provider": "^9.0.0",
|
||||
"@types/pg": "^8.15.1",
|
||||
"@types/pngjs": "^6.0.4",
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
"pngjs": "^7.0.0",
|
||||
"prettier": "^3.2.5",
|
||||
"prettier-plugin-organize-imports": "^4.0.0",
|
||||
"sharp": "^0.34.3",
|
||||
"sharp": "^0.34.4",
|
||||
"socket.io-client": "^4.7.4",
|
||||
"supertest": "^7.0.0",
|
||||
"typescript": "^5.3.3",
|
||||
|
|
@ -52,6 +52,6 @@
|
|||
"vitest": "^3.0.0"
|
||||
},
|
||||
"volta": {
|
||||
"node": "22.19.0"
|
||||
"node": "22.20.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -136,6 +136,7 @@ describe('/albums', () => {
|
|||
expect(body).toEqual({
|
||||
...user1Albums[0],
|
||||
assets: [expect.objectContaining({ isFavorite: false })],
|
||||
contributorCounts: [{ userId: user1.userId, assetCount: 1 }],
|
||||
lastModifiedAssetTimestamp: expect.any(String),
|
||||
startDate: expect.any(String),
|
||||
endDate: expect.any(String),
|
||||
|
|
@ -310,6 +311,7 @@ describe('/albums', () => {
|
|||
expect(body).toEqual({
|
||||
...user1Albums[0],
|
||||
assets: [expect.objectContaining({ id: user1Albums[0].assets[0].id })],
|
||||
contributorCounts: [{ userId: user1.userId, assetCount: 1 }],
|
||||
lastModifiedAssetTimestamp: expect.any(String),
|
||||
startDate: expect.any(String),
|
||||
endDate: expect.any(String),
|
||||
|
|
@ -345,6 +347,7 @@ describe('/albums', () => {
|
|||
expect(body).toEqual({
|
||||
...user1Albums[0],
|
||||
assets: [expect.objectContaining({ id: user1Albums[0].assets[0].id })],
|
||||
contributorCounts: [{ userId: user1.userId, assetCount: 1 }],
|
||||
lastModifiedAssetTimestamp: expect.any(String),
|
||||
startDate: expect.any(String),
|
||||
endDate: expect.any(String),
|
||||
|
|
@ -362,6 +365,7 @@ describe('/albums', () => {
|
|||
expect(body).toEqual({
|
||||
...user1Albums[0],
|
||||
assets: [],
|
||||
contributorCounts: [{ userId: user1.userId, assetCount: 1 }],
|
||||
assetCount: 1,
|
||||
lastModifiedAssetTimestamp: expect.any(String),
|
||||
endDate: expect.any(String),
|
||||
|
|
@ -382,6 +386,7 @@ describe('/albums', () => {
|
|||
expect(body).toEqual({
|
||||
...user2Albums[0],
|
||||
assets: [],
|
||||
contributorCounts: [{ userId: user1.userId, assetCount: 1 }],
|
||||
assetCount: 1,
|
||||
lastModifiedAssetTimestamp: expect.any(String),
|
||||
endDate: expect.any(String),
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ test.describe('Registration', () => {
|
|||
await page.getByRole('button', { name: 'User Privacy' }).click();
|
||||
await page.getByRole('button', { name: 'Storage Template' }).click();
|
||||
await page.getByRole('button', { name: 'Backups' }).click();
|
||||
await page.getByRole('button', { name: 'Mobile App' }).click();
|
||||
await page.getByRole('button', { name: 'Done' }).click();
|
||||
|
||||
// success
|
||||
|
|
@ -85,6 +86,7 @@ test.describe('Registration', () => {
|
|||
await page.getByRole('button', { name: 'Theme' }).click();
|
||||
await page.getByRole('button', { name: 'Language' }).click();
|
||||
await page.getByRole('button', { name: 'User Privacy' }).click();
|
||||
await page.getByRole('button', { name: 'Mobile App' }).click();
|
||||
await page.getByRole('button', { name: 'Done' }).click();
|
||||
|
||||
// success
|
||||
|
|
|
|||
|
|
@ -28,10 +28,12 @@
|
|||
"add_to_album": "إضافة إلى ألبوم",
|
||||
"add_to_album_bottom_sheet_added": "تمت الاضافة الى {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "موجود مسبقا في {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "لا يمكن إضافة بعض الأصول المحلية إلى الألبوم",
|
||||
"add_to_album_toggle": "تبديل التحديد لـ{album}",
|
||||
"add_to_albums": "إضافة الى البومات",
|
||||
"add_to_albums_count": "إضافه إلى البومات ({count})",
|
||||
"add_to_shared_album": "إضافة إلى ألبوم مشارك",
|
||||
"add_upload_to_stack": "اضف رفع الى حزمة",
|
||||
"add_url": "إضافة رابط",
|
||||
"added_to_archive": "أُضيفت للأرشيف",
|
||||
"added_to_favorites": "أُضيفت للمفضلات",
|
||||
|
|
@ -598,6 +600,7 @@
|
|||
"backup_controller_page_turn_on": "قم بتشغيل النسخ الاحتياطي المقدمة",
|
||||
"backup_controller_page_uploading_file_info": "تحميل معلومات الملف",
|
||||
"backup_err_only_album": "لا يمكن إزالة الألبوم الوحيد",
|
||||
"backup_error_sync_failed": "فشل المزامنة. لا يمكن معالجة النسخ الاحتياطي.",
|
||||
"backup_info_card_assets": "أصول",
|
||||
"backup_manual_cancelled": "ملغي",
|
||||
"backup_manual_in_progress": "قيد التحميل حاول مره اخرى",
|
||||
|
|
|
|||
19
i18n/az.json
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"about": "Haqqında",
|
||||
"account": "Hesab",
|
||||
"account_settings": "Hesab parametrləri",
|
||||
"acknowledge": "Aydındır",
|
||||
"account_settings": "Hesab Parametrləri",
|
||||
"acknowledge": "Təsdiq et",
|
||||
"action": "Əməliyyat",
|
||||
"action_common_update": "Yenilə",
|
||||
"actions": "Əməliyyatlar",
|
||||
|
|
@ -16,8 +16,8 @@
|
|||
"add_a_title": "Başlıq əlavə et",
|
||||
"add_birthday": "Doğum günü əlavə et",
|
||||
"add_endpoint": "Son nöqtə əlavə et",
|
||||
"add_exclusion_pattern": "İstisna nümunəsi əlavə et",
|
||||
"add_import_path": "Import yolunu əlavə et",
|
||||
"add_exclusion_pattern": "Çıxarma nümunəsi əlavə et",
|
||||
"add_import_path": "İdxal yolu əlavə et",
|
||||
"add_location": "Məkan əlavə et",
|
||||
"add_more_users": "Daha çox istifadəçi əlavə et",
|
||||
"add_partner": "Partnyor əlavə et",
|
||||
|
|
@ -25,20 +25,21 @@
|
|||
"add_photos": "Şəkillər əlavə et",
|
||||
"add_tag": "Etiket əlavə et",
|
||||
"add_to": "Bura əlavə et…",
|
||||
"add_to_album": "Albom əlavə et",
|
||||
"add_to_album": "Alboma əlavə et",
|
||||
"add_to_album_bottom_sheet_added": "{album} albomuna əlavə edildi",
|
||||
"add_to_album_bottom_sheet_already_exists": "Artıq {album} albomunda var",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Bəzi lokal resurslar alboma əlavə edilə bilmədi",
|
||||
"add_to_album_toggle": "{album} üçün seçimi dəyişin",
|
||||
"add_to_albums": "Albomlara əlavə et",
|
||||
"add_to_albums_count": "Albomlara əlavə et ({count})",
|
||||
"add_to_albums_count": "({count}) albomlarına əlavə et",
|
||||
"add_to_shared_album": "Paylaşılan alboma əlavə et",
|
||||
"add_url": "URL əlavə et",
|
||||
"added_to_archive": "Arxivə əlavə edildi",
|
||||
"added_to_favorites": "Sevimlilələrə əlavə edildi",
|
||||
"added_to_favorites_count": "{count, number} şəkil sevimlilələrə əlavə edildi",
|
||||
"admin": {
|
||||
"add_exclusion_pattern_description": "İstisna şablonlarını əlavə edin. *, ** və ? ilə Globbing dəstəklənir. Məs.: \"Raw\" adlanan hər hansısa bir qovluqda bütün faylları saymamaq üçün \"**/Raw/**\"-dan istifadə edin. \".tif\" ilə bitən bütün faylları saymamaq üçün \"**/*.tif\"-dən istifadə edin. Faylı mütləq yoldan istifadə etməklə saymamaq istəyirsinizsə \"/path/to/ignore/**\"-dan istifadə edin.",
|
||||
"admin_user": "Admin İstifadəçi",
|
||||
"add_exclusion_pattern_description": "Çıxarma nümunələri əlavə et. *, ** və ? istifadə edilərək globbing dəstəklənir. Hər hansı bir \"Raw\" adlı qovluqdakı bütün faylları görməməzlikdən gəlmək üçün **/Raw/** istifadə et. “.tif” ilə bitən bütün faylları görməməzlikdən gəlmək üçün **/*.tif istifadə et. Tam yolu görməməzlikdən gəlmək üçün /path/to/ignore/** istifadə et.",
|
||||
"admin_user": "İdarəçi İstifadəçi",
|
||||
"asset_offline_description": "Bu xarici kitabxana varlığı diskdə artıq tapılmadı və zibil qutusuna köçürüldü. Əgər fayl kitabxana içərisində köçürülübsə, zaman şkalanızı yeni uyğun gələn varlıq üçün yoxlayın. Varlığı yenidən qaytarmaq üçün aşağıda verilmiş fayl yolunun Immich tərəfindən əlçatan olduğundan əmin olduqdan sonra kitabxananı skan edin.",
|
||||
"authentication_settings": "Səlahiyyətləndirmə parametrləri",
|
||||
"authentication_settings_description": "Şifrə, OAuth və digər səlahiyyətləndirmə parametrləri",
|
||||
|
|
@ -76,7 +77,7 @@
|
|||
"image_thumbnail_title": "Önizləmə parametrləri",
|
||||
"job_concurrency": "{job}paralellik",
|
||||
"job_created": "Tapşırıq yaradıldı",
|
||||
"job_not_concurrency_safe": "Bu tapşırıq parallel fəaliyyət üçün uyğun deyil",
|
||||
"job_not_concurrency_safe": "Bu iş eyni vaxtda icra üçün təhlükəsiz deyil.",
|
||||
"job_settings": "Tapşırıq parametrləri",
|
||||
"job_settings_description": "Parallel şəkildə fəaliyyət göstərən tapşırıqları idarə et",
|
||||
"job_status": "Tapşırıq statusu",
|
||||
|
|
|
|||
10
i18n/be.json
|
|
@ -51,6 +51,9 @@
|
|||
"backup_keep_last_amount": "Колькасць папярэдніх рэзервовых копій для захавання",
|
||||
"backup_onboarding_1_description": "зняшняя копія ў воблаку або ў іншым фізічным месцы.",
|
||||
"backup_onboarding_2_description": "лакальныя копіі на іншых прыладах. Гэта ўключае ў сябе асноўныя файлы і лакальную рэзервовую копію гэтых файлаў.",
|
||||
"backup_onboarding_3_description": "поўная колькасць копій вашых данных, у тым ліку зыходных файлаў. Гэта ўключае 1 пазаштатную копію і 2 лакальныя копіі.",
|
||||
"backup_onboarding_description": "<backblaze-link> стратэгія рэзервавання 3-2-1 </backblaze-link> рэкамендавана для аховы вашых данных. Вы павінны захоўваць копіі вашых загружаных фота / відэа гэтак жа добра, як базу данных Immich для вычарпальна поўнага рэзервовага капіявання.",
|
||||
"backup_onboarding_footer": "Каб атрымаць дадатковую інфармацыю пра рэзервовае капіраванне Immich, звярніцеся да <link>дакументацыі</link>.",
|
||||
"backup_onboarding_parts_title": "Рэзервовая копія «3-2-1» уключае ў сябе:",
|
||||
"backup_onboarding_title": "Рэзервовыя копіі",
|
||||
"backup_settings": "Налады рэзервовага капіявання",
|
||||
|
|
@ -93,6 +96,8 @@
|
|||
"image_resolution": "Раздзяляльнасць",
|
||||
"image_settings": "Налады відарыса",
|
||||
"image_settings_description": "Кіруйце якасцю і раздзяляльнасцю сгенерыраваных відарысаў",
|
||||
"image_thumbnail_description": "Маленькая мініяцюра з выдаленымі метададзенымі, якая выкарыстоўваецца пры праглядзе груп фатаграфій, такіх як асноўная хроніка",
|
||||
"image_thumbnail_quality_description": "Якасць мініяцюр ад 1 да 100. Чым вышэй якасць, тым лепш, але пры гэтым ствараюцца файлы большага памеру і можа знізіцца хуткасць водгуку прыкладання.",
|
||||
"image_thumbnail_title": "Налады мініяцюр",
|
||||
"job_concurrency": "{job} канкурэнтнасць",
|
||||
"job_created": "Заданне створана",
|
||||
|
|
@ -100,6 +105,8 @@
|
|||
"job_settings": "Налады заданняў",
|
||||
"job_settings_description": "Кіраваць наладамі адначасовага (паралельнага) выканання задання",
|
||||
"job_status": "Становішча задання",
|
||||
"jobs_delayed": "{jobCount, plural, other {# адкладзена}}",
|
||||
"jobs_failed": "{jobCount, plural, other {# не выканалася}}",
|
||||
"library_created": "Створана бібліятэка: {library}",
|
||||
"library_deleted": "Бібліятэка выдалена",
|
||||
"library_scanning": "Сканаванне па раскладзе",
|
||||
|
|
@ -156,6 +163,9 @@
|
|||
"trash_settings": "Налады сметніцы",
|
||||
"trash_settings_description": "Кіраванне наладамі сметніцы",
|
||||
"user_cleanup_job": "Ачыстка карыстальніка",
|
||||
"user_delete_delay": "Уліковы запіс <b>{user}</b> і актывы будуць запланаваны для канчатковага выдалення праз {delay, plural, one {# дзень} few {# дні} many {# дзён} other {# дзён}}.",
|
||||
"user_delete_delay_settings_description": "Колькасць дзён пасля выдалення, па заканчэнні якіх уліковы запіс карыстальніка і яго актывы будуць выдаленыя незваротна. Заданне на выдаленне карыстальніка запускаецца апоўначы для праверкі гатоўнасці карыстальнікаў да выдалення. Змены ў гэтым параметры будуць улічаныя пры наступным выкананні.",
|
||||
"user_delete_immediately": "Уліковы запіс <b>{user}</b> і актывы будуць <b>неадкладна</b> змешчаны ў чаргу на канчатковае выдаленне.",
|
||||
"user_management": "Кіраванне карыстальнікамі",
|
||||
"user_password_has_been_reset": "Пароль карыстальніка быў скінуты:",
|
||||
"user_password_reset_description": "Задайце карыстальніку часовы пароль і паведаміце яму, што пры наступным уваходзе ў сістэму яму трэба будзе змяніць пароль.",
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
"add_to_album": "Добави към албум",
|
||||
"add_to_album_bottom_sheet_added": "Добавено в {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Вече е в {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Някои локални файлове не успяха да се добавят към албума",
|
||||
"add_to_album_toggle": "Сменете избора за {album}",
|
||||
"add_to_albums": "Добавяне в албуми",
|
||||
"add_to_albums_count": "Добавяне в албуми ({count})",
|
||||
|
|
@ -598,6 +599,7 @@
|
|||
"backup_controller_page_turn_on": "Включи архивиране в активен режим",
|
||||
"backup_controller_page_uploading_file_info": "Инфо за архивирания файл",
|
||||
"backup_err_only_album": "Не може да се премахне единствения албум",
|
||||
"backup_error_sync_failed": "Синхронизацията е неуспешна. Резервното копие не може да се обработи.",
|
||||
"backup_info_card_assets": "обекта",
|
||||
"backup_manual_cancelled": "Отменено",
|
||||
"backup_manual_in_progress": "Върви архивиране. Опитай след малко",
|
||||
|
|
@ -1235,7 +1237,7 @@
|
|||
"local": "Локално",
|
||||
"local_asset_cast_failed": "Не може да се предава обект, който още не е качен на сървъра",
|
||||
"local_assets": "Локални обекти",
|
||||
"local_media_summary": "Обобщение на локалните медийни файлове",
|
||||
"local_media_summary": "Обобщение на локалните файлове",
|
||||
"local_network": "Локална мрежа",
|
||||
"local_network_sheet_info": "Приложението ще се свърже със сървъра на този URL, когато устройството е свързано към зададената Wi-Fi мрежа",
|
||||
"location_permission": "Разрешение за местоположение",
|
||||
|
|
@ -1344,7 +1346,7 @@
|
|||
"missing": "Липсващи",
|
||||
"model": "Модел",
|
||||
"month": "Месец",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
"monthly_title_text_date_format": "MMMM г",
|
||||
"more": "Още",
|
||||
"move": "Премести",
|
||||
"move_off_locked_folder": "Извади от заключената папка",
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
"add_to_album": "এলবাম এ যোগ করুন",
|
||||
"add_to_album_bottom_sheet_added": "{album} এ যোগ করা হয়েছে",
|
||||
"add_to_album_bottom_sheet_already_exists": "{album} এ আগে থেকেই আছে",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "কিছু স্থানীয় ছবি বা ভিডিও অ্যালবামে যোগ করা যায়নি",
|
||||
"add_to_album_toggle": "{album} - এর নির্বাচন পরিবর্তন করুন",
|
||||
"add_to_albums": "অ্যালবামে যোগ করুন",
|
||||
"add_to_albums_count": "অ্যালবামে যোগ করুন ({count})",
|
||||
|
|
@ -123,6 +124,11 @@
|
|||
"logging_enable_description": "লগিং এনাবল/সক্ষম করুন",
|
||||
"logging_level_description": "সক্রিয় থাকাকালীন, কোন লগ স্তর ব্যবহার করতে হবে।",
|
||||
"logging_settings": "লগিং",
|
||||
"machine_learning_availability_checks": "প্রাপ্যতা পরীক্ষা",
|
||||
"machine_learning_availability_checks_description": "স্বয়ংক্রিয়ভাবে উপলব্ধ মেশিন লার্নিং সার্ভারগুলি সনাক্ত করুন এবং পছন্দ করুন",
|
||||
"machine_learning_availability_checks_enabled": "প্রাপ্যতা পরীক্ষা সক্ষম করুন",
|
||||
"machine_learning_availability_checks_interval": "চেক ব্যবধান",
|
||||
"machine_learning_availability_checks_interval_description": "প্রাপ্যতা পরীক্ষাগুলির মধ্যে ব্যবধান মিলিসেকেন্ডে",
|
||||
"machine_learning_clip_model": "CLIP মডেল",
|
||||
"machine_learning_clip_model_description": "<link>এখানে</link> তালিকাভুক্ত একটি CLIP মডেলের নাম। মনে রাখবেন, মডেল পরিবর্তনের পর সব ছবির জন্য অবশ্যই ‘Smart Search’ কাজটি আবার চালাতে হবে।",
|
||||
"machine_learning_duplicate_detection": "পুনরাবৃত্তি সনাক্তকরণ",
|
||||
|
|
|
|||
|
|
@ -33,8 +33,9 @@
|
|||
"add_to_albums": "Afegir als àlbums",
|
||||
"add_to_albums_count": "Afegir als àlbums ({count})",
|
||||
"add_to_shared_album": "Afegir a un àlbum compartit",
|
||||
"add_upload_to_stack": "Afegeix la càrrega a la pila",
|
||||
"add_url": "Afegir URL",
|
||||
"added_to_archive": "Afegit als arxivats",
|
||||
"added_to_archive": "Afegir a l'arxiu",
|
||||
"added_to_favorites": "Afegit als preferits",
|
||||
"added_to_favorites_count": "{count, number} afegits als preferits",
|
||||
"admin": {
|
||||
|
|
@ -599,6 +600,7 @@
|
|||
"backup_controller_page_turn_on": "Activa la còpia de seguretat",
|
||||
"backup_controller_page_uploading_file_info": "S'està pujant la informació del fitxer",
|
||||
"backup_err_only_album": "No es pot eliminar l'únic àlbum",
|
||||
"backup_error_sync_failed": "Sincronització malament, No es pot fer backup.",
|
||||
"backup_info_card_assets": "elements",
|
||||
"backup_manual_cancelled": "Cancel·lat",
|
||||
"backup_manual_in_progress": "La pujada ja està en curs. Torneu-ho a provar més tard",
|
||||
|
|
|
|||
|
|
@ -28,11 +28,12 @@
|
|||
"add_to_album": "Přidat do alba",
|
||||
"add_to_album_bottom_sheet_added": "Přidáno do {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Je již v {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Některá místní aktiva nebylo možné přidat do alba",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Některé místní položky nebylo možné přidat do alba",
|
||||
"add_to_album_toggle": "Přepnout výběr pro {album}",
|
||||
"add_to_albums": "Přidat do alb",
|
||||
"add_to_albums_count": "Přidat do alb ({count})",
|
||||
"add_to_shared_album": "Přidat do sdíleného alba",
|
||||
"add_upload_to_stack": "Přidat nahrané do zásobníku",
|
||||
"add_url": "Přidat URL",
|
||||
"added_to_archive": "Přidáno do archivu",
|
||||
"added_to_favorites": "Přidáno do oblíbených",
|
||||
|
|
@ -129,8 +130,8 @@
|
|||
"machine_learning_availability_checks_enabled": "Povolit kontroly dostupnosti",
|
||||
"machine_learning_availability_checks_interval": "Interval kontrol",
|
||||
"machine_learning_availability_checks_interval_description": "Interval v milisekundách mezi kontrolami dostupnosti",
|
||||
"machine_learning_availability_checks_timeout": "Vypršení požadavku",
|
||||
"machine_learning_availability_checks_timeout_description": "Časové vypršení požadavku v milisekundách u kontrol dostupnosti",
|
||||
"machine_learning_availability_checks_timeout": "Časový limit požadavku",
|
||||
"machine_learning_availability_checks_timeout_description": "Časový limit v milisekundách pro kontrolu dostupnosti",
|
||||
"machine_learning_clip_model": "Model CLIP",
|
||||
"machine_learning_clip_model_description": "Název CLIP modelu je uvedený <link>zde</link>. Pamatujte, že při změně modelu je nutné znovu spustit úlohu 'Chytré vyhledávání' pro všechny obrázky.",
|
||||
"machine_learning_duplicate_detection": "Kontrola duplicit",
|
||||
|
|
@ -599,6 +600,7 @@
|
|||
"backup_controller_page_turn_on": "Povolit zálohování na popředí",
|
||||
"backup_controller_page_uploading_file_info": "Informace o nahraném souboru",
|
||||
"backup_err_only_album": "Nelze odstranit jediné vybrané album",
|
||||
"backup_error_sync_failed": "Synchronizace selhala. Nelze zpracovat zálohu.",
|
||||
"backup_info_card_assets": "položek",
|
||||
"backup_manual_cancelled": "Zrušeno",
|
||||
"backup_manual_in_progress": "Nahrávání již probíhá. Zkuste to znovu později",
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
"add_to_album": "Tilføj til album",
|
||||
"add_to_album_bottom_sheet_added": "Tilføjet til {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Nogle lokale elementer kunne ikke føjes til albummet",
|
||||
"add_to_album_toggle": "Skift selektion for {album}",
|
||||
"add_to_albums": "Tilføj til albummer",
|
||||
"add_to_albums_count": "Tilføj til albummer({count})",
|
||||
|
|
@ -598,6 +599,7 @@
|
|||
"backup_controller_page_turn_on": "Slå sikkerhedskopiering til",
|
||||
"backup_controller_page_uploading_file_info": "Uploader filinformation",
|
||||
"backup_err_only_album": "Kan ikke slette det eneste album",
|
||||
"backup_error_sync_failed": "Synkroniseringen mislykkedes. Sikkerhedskopieringen kunne ikke behandles.",
|
||||
"backup_info_card_assets": "objekter",
|
||||
"backup_manual_cancelled": "Annulleret",
|
||||
"backup_manual_in_progress": "Upload er allerede undervejs. Prøv igen efter noget tid",
|
||||
|
|
@ -649,7 +651,7 @@
|
|||
"cast": "Caste",
|
||||
"cast_description": "Konfigurer tilgængelige cast destinationer",
|
||||
"change_date": "Ændr dato",
|
||||
"change_description": "Beskrivelse af ændringer",
|
||||
"change_description": "Ændr beskrivelse",
|
||||
"change_display_order": "Ændrer visningsrækkefølge",
|
||||
"change_expiration_time": "Ændr udløbstidspunkt",
|
||||
"change_location": "Ændr sted",
|
||||
|
|
@ -1383,7 +1385,7 @@
|
|||
"no_albums_message": "Opret et album for at organisere dine billeder og videoer",
|
||||
"no_albums_with_name_yet": "Det ser ud til, at du ikke har noget album med dette navn endnu.",
|
||||
"no_albums_yet": "Det ser ud til, at du ikke har nogen album endnu.",
|
||||
"no_archived_assets_message": "Arkivér billeder og videoer for at gemme dem væk fra din Billede oversigt",
|
||||
"no_archived_assets_message": "Arkivér billeder og videoer for at gemme dem væk fra din billedoversigt",
|
||||
"no_assets_message": "KLIK FOR AT UPLOADE DIT FØRSTE BILLEDE",
|
||||
"no_assets_to_show": "Ingen elementer at vise",
|
||||
"no_cast_devices_found": "Ingen Cast-enheder fundet",
|
||||
|
|
|
|||
41
i18n/de.json
|
|
@ -33,6 +33,7 @@
|
|||
"add_to_albums": "Zu Alben hinzufügen",
|
||||
"add_to_albums_count": "Zu Alben hinzufügen ({count})",
|
||||
"add_to_shared_album": "Zu geteiltem Album hinzufügen",
|
||||
"add_upload_to_stack": "Upload zum Stapel hinzufügen",
|
||||
"add_url": "URL hinzufügen",
|
||||
"added_to_archive": "Zum Archiv hinzugefügt",
|
||||
"added_to_favorites": "Zu Favoriten hinzugefügt",
|
||||
|
|
@ -48,14 +49,14 @@
|
|||
"background_task_job": "Hintergrundaufgaben",
|
||||
"backup_database": "Datenbanksicherung erstellen",
|
||||
"backup_database_enable_description": "Datenbank regelmäßig sichern",
|
||||
"backup_keep_last_amount": "Anzahl der aufzubewahrenden früheren Backups",
|
||||
"backup_keep_last_amount": "Anzahl der aufzubewahrenden früheren Sicherungen",
|
||||
"backup_onboarding_1_description": "Offsite-Kopie in der Cloud oder an einem anderen physischen Ort.",
|
||||
"backup_onboarding_2_description": "Lokale Kopien auf verschiedenen Geräten. Dazu gehören die Hauptdateien und eine lokale Sicherung dieser Dateien.",
|
||||
"backup_onboarding_3_description": "3 komplette Kopien deiner Daten, inkl. der Originaldateien. Dies umfasst 1 Kopie an einem anderen Ort und 2 lokale Kopie.",
|
||||
"backup_onboarding_description": "Eine <backblaze-link>3-2-1 Backup-Strategie</backblaze-link> wird empfohlen, um deine Daten zu schützen. Du solltest sowohl Kopien deiner hochgeladenen Fotos/Videos als auch der Immich-Datenbank aufbewahren, um eine umfassende Backup-Lösung zu haben.",
|
||||
"backup_onboarding_2_description": "lokale Kopien auf verschiedenen Geräten. Dazu gehören die Hauptdateien und eine lokale Sicherung dieser Dateien.",
|
||||
"backup_onboarding_3_description": "Kopien deiner Daten inklusive Originaldateien. Dies umfasst 1 Kopie an einem anderen Ort und 2 lokale Kopien.",
|
||||
"backup_onboarding_description": "Eine <backblaze-link>3-2-1 Sicherungssrategie</backblaze-link> wird empfohlen, um deine Daten zu schützen. Du solltest sowohl Kopien deiner hochgeladenen Fotos/Videos als auch der Immich-Datenbank aufbewahren, um eine umfassende Sicherungslösung zu haben.",
|
||||
"backup_onboarding_footer": "Weitere Informationen zum Sichern von Immich findest du in der <link>Dokumentation</link>.",
|
||||
"backup_onboarding_parts_title": "Eine 3-2-1-Sicherung umfasst:",
|
||||
"backup_onboarding_title": "Backups",
|
||||
"backup_onboarding_title": "Sicherungen",
|
||||
"backup_settings": "Einstellungen für Datenbanksicherung",
|
||||
"backup_settings_description": "Einstellungen zur regelmäßigen Sicherung der Datenbank. Hinweis: Diese Jobs werden nicht überwacht und du wirst nicht über Fehler informiert.",
|
||||
"cleared_jobs": "Folgende Aufgaben zurückgesetzt: {job}",
|
||||
|
|
@ -67,9 +68,9 @@
|
|||
"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",
|
||||
"cron_expression": "Cron Zeitangabe",
|
||||
"cron_expression_description": "Setze ein Intervall für die Sicherung mittels cron. Hilfe mit dem Format bietet dir dabei z. B. der <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "Nützliche Zeitangaben für Cron",
|
||||
"cron_expression": "Cron-Zeitangabe",
|
||||
"cron_expression_description": "Setze das Scanintervall im Cron-Format. Hilfe mit dem Format bietet dir dabei z. B. der <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "Vorlagen für Cron-Zeitangabe",
|
||||
"disable_login": "Login deaktivieren",
|
||||
"duplicate_detection_job_description": "Diese Aufgabe führt das maschinelle Lernen für jede Datei aus, um Duplikate zu finden. Diese Aufgabe beruht auf der intelligenten Suche",
|
||||
"exclusion_pattern_description": "Mit Ausschlussmustern können Dateien und Ordner beim Scannen Ihrer Bibliothek ignoriert werden. Dies ist nützlich, wenn du Ordner hast, die Dateien enthalten, die du nicht importieren möchtest, wie z. B. RAW-Dateien.",
|
||||
|
|
@ -286,13 +287,13 @@
|
|||
"storage_template_user_label": "<code>{label}</code> is die Speicherpfadbezeichnung des Benutzers",
|
||||
"system_settings": "Systemeinstellungen",
|
||||
"tag_cleanup_job": "Tags aufräumen",
|
||||
"template_email_available_tags": "In deiner Vorlage kannst du die folgenden Variablen verwenden: {tags}",
|
||||
"template_email_if_empty": "Wenn die Vorlage leer ist, wird die Standard-E-Mail verwendet.",
|
||||
"template_email_invite_album": "E-Mail-Vorlage: Einladung zu Album",
|
||||
"template_email_available_tags": "Du kannst die folgenden Variablen in deiner Vorlage verwenden: {tags}",
|
||||
"template_email_if_empty": "Wenn die Vorlage leer ist, wird die Standard-E-Mail-Vorlage verwendet.",
|
||||
"template_email_invite_album": "Einladung zu Album",
|
||||
"template_email_preview": "Vorschau",
|
||||
"template_email_settings": "E-Mail-Vorlagen",
|
||||
"template_email_update_album": "Album-Vorlage aktualisieren",
|
||||
"template_email_welcome": "Willkommen bei den E-Mail-Vorlagen",
|
||||
"template_email_update_album": "Aktualisiertes Album",
|
||||
"template_email_welcome": "Willkommens-E-Mail",
|
||||
"template_settings": "Benachrichtigungsvorlagen",
|
||||
"template_settings_description": "Benutzerdefinierte Vorlagen für Benachrichtigungen verwalten",
|
||||
"theme_custom_css_settings": "Benutzerdefiniertes CSS",
|
||||
|
|
@ -538,18 +539,18 @@
|
|||
"autoplay_slideshow": "Automatische Diashow",
|
||||
"back": "Zurück",
|
||||
"back_close_deselect": "Zurück, Schließen oder Abwählen",
|
||||
"background_backup_running_error": "Hintergrund Sicherung läuft, kann manuelle Sicherung nicht starten",
|
||||
"background_backup_running_error": "Sicherung läuft im Hintergrund. Manuelle Sicherung kann nicht gestartet werden",
|
||||
"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_options": "Hintergrund Optionen",
|
||||
"backup": "Sicherung",
|
||||
"backup_album_selection_page_albums_device": "Alben auf dem Gerät ({count})",
|
||||
"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": "Antippen zum sichern, erneut antippen zum Ausschließen",
|
||||
"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_selection_info": "Information",
|
||||
"backup_album_selection_page_total_assets": "Elemente",
|
||||
"backup_albums_sync": "Synchronisation von Alben beim Backup",
|
||||
"backup_album_selection_page_selection_info": "Auswahlinformation",
|
||||
"backup_album_selection_page_total_assets": "Elemente gesamt",
|
||||
"backup_albums_sync": "Synchronisation der Sicherungsalben",
|
||||
"backup_all": "Alle",
|
||||
"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…",
|
||||
|
|
@ -599,6 +600,7 @@
|
|||
"backup_controller_page_turn_on": "Sicherung im Vordergrund einschalten",
|
||||
"backup_controller_page_uploading_file_info": "Informationen",
|
||||
"backup_err_only_album": "Das einzige Album kann nicht entfernt werden",
|
||||
"backup_error_sync_failed": "Synchronisierung fehlgeschlagen. Sicherung kann nicht verarbeitet werden.",
|
||||
"backup_info_card_assets": "Elemente",
|
||||
"backup_manual_cancelled": "Abgebrochen",
|
||||
"backup_manual_in_progress": "Sicherung läuft bereits. Bitte versuche es später erneut",
|
||||
|
|
@ -1037,6 +1039,7 @@
|
|||
"exif_bottom_sheet_description_error": "Fehler bei der Aktualisierung der Beschreibung",
|
||||
"exif_bottom_sheet_details": "DETAILS",
|
||||
"exif_bottom_sheet_location": "STANDORT",
|
||||
"exif_bottom_sheet_no_description": "Keine Beschreibung",
|
||||
"exif_bottom_sheet_people": "PERSONEN",
|
||||
"exif_bottom_sheet_person_add_person": "Namen hinzufügen",
|
||||
"exit_slideshow": "Diashow beenden",
|
||||
|
|
@ -1953,7 +1956,7 @@
|
|||
"sync_remote": "mit Server synchronisieren",
|
||||
"sync_status": "Synchronisierungstatus",
|
||||
"sync_status_subtitle": "Synchronisierungssystem anzeigen und bearbeiten",
|
||||
"sync_upload_album_setting_subtitle": "Erstelle deine ausgewählten Alben in Immich und lade die Fotos und Videos dort hoch",
|
||||
"sync_upload_album_setting_subtitle": "Erstelle und lade deine ausgewählten Fotos und Videos in die ausgewählten Alben auf Immich hoch",
|
||||
"tag": "Tag",
|
||||
"tag_assets": "Dateien taggen",
|
||||
"tag_created": "Tag erstellt: {tag}",
|
||||
|
|
|
|||
|
|
@ -28,10 +28,12 @@
|
|||
"add_to_album": "Προσθήκη σε άλμπουμ",
|
||||
"add_to_album_bottom_sheet_added": "Προστέθηκε στο {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Ήδη στο {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Ορισμένοι τοπικά στοιχεία δεν μπόρεσαν να προστεθούν στο άλμπουμ",
|
||||
"add_to_album_toggle": "Εναλλαγή επιλογής για το {album}",
|
||||
"add_to_albums": "Προσθήκη στα άλμπουμ",
|
||||
"add_to_albums_count": "Προσθήκη στα άλμπουμ ({count})",
|
||||
"add_to_shared_album": "Προσθήκη σε κοινόχρηστο άλμπουμ",
|
||||
"add_upload_to_stack": "Προσθήκη αρχείου στην ουρά",
|
||||
"add_url": "Προσθήκη Συνδέσμου",
|
||||
"added_to_archive": "Προστέθηκε στο αρχείο",
|
||||
"added_to_favorites": "Προστέθηκε στα αγαπημένα",
|
||||
|
|
@ -598,6 +600,7 @@
|
|||
"backup_controller_page_turn_on": "Ενεργοποίηση δημιουργίας αντιγράφου ασφαλείας στο προσκήνιο",
|
||||
"backup_controller_page_uploading_file_info": "Μεταφόρτωση πληροφοριών αρχείου",
|
||||
"backup_err_only_album": "Δεν είναι δυνατή η αφαίρεση του μοναδικού άλμπουμ",
|
||||
"backup_error_sync_failed": "Ο συγχρονισμός απέτυχε. Δεν είναι δυνατή η επεξεργασία του αντιγράφου ασφαλείας.",
|
||||
"backup_info_card_assets": "στοιχεία",
|
||||
"backup_manual_cancelled": "Ακυρώθηκε",
|
||||
"backup_manual_in_progress": "Μεταφόρτωση σε εξέλιξη. Δοκιμάστε αργότερα",
|
||||
|
|
|
|||
19
i18n/en.json
|
|
@ -33,6 +33,7 @@
|
|||
"add_to_albums": "Add to albums",
|
||||
"add_to_albums_count": "Add to albums ({count})",
|
||||
"add_to_shared_album": "Add to shared album",
|
||||
"add_upload_to_stack": "Add upload to stack",
|
||||
"add_url": "Add URL",
|
||||
"added_to_archive": "Added to archive",
|
||||
"added_to_favorites": "Added to favorites",
|
||||
|
|
@ -210,6 +211,8 @@
|
|||
"notification_email_ignore_certificate_errors_description": "Ignore TLS certificate validation errors (not recommended)",
|
||||
"notification_email_password_description": "Password to use when authenticating with the email server",
|
||||
"notification_email_port_description": "Port of the email server (e.g 25, 465, or 587)",
|
||||
"notification_email_secure": "SMTPS",
|
||||
"notification_email_secure_description": "Use SMTPS (SMTP over TLS)",
|
||||
"notification_email_sent_test_email_button": "Send test email and save",
|
||||
"notification_email_setting_description": "Settings for sending email notifications",
|
||||
"notification_email_test_email": "Send test email",
|
||||
|
|
@ -332,7 +335,7 @@
|
|||
"transcoding_max_b_frames": "Maximum B-frames",
|
||||
"transcoding_max_b_frames_description": "Higher values improve compression efficiency, but slow down encoding. May not be compatible with hardware acceleration on older devices. 0 disables B-frames, while -1 sets this value automatically.",
|
||||
"transcoding_max_bitrate": "Maximum bitrate",
|
||||
"transcoding_max_bitrate_description": "Setting a max bitrate can make file sizes more predictable at a minor cost to quality. At 720p, typical values are 2600 kbit/s for VP9 or HEVC, or 4500 kbit/s for H.264. Disabled if set to 0.",
|
||||
"transcoding_max_bitrate_description": "Setting a max bitrate can make file sizes more predictable at a minor cost to quality. At 720p, typical values are 2600 kbit/s for VP9 or HEVC, or 4500 kbit/s for H.264. Disabled if set to 0. When no unit is specified, k (for kbit/s) is assumed; therefore 5000, 5000k, and 5M (for Mbit/s) are equivalent.",
|
||||
"transcoding_max_keyframe_interval": "Maximum keyframe interval",
|
||||
"transcoding_max_keyframe_interval_description": "Sets the maximum frame distance between keyframes. Lower values worsen compression efficiency, but improve seek times and may improve quality in scenes with fast movement. 0 sets this value automatically.",
|
||||
"transcoding_optimal_description": "Videos higher than target resolution or not in an accepted format",
|
||||
|
|
@ -350,7 +353,7 @@
|
|||
"transcoding_target_resolution": "Target resolution",
|
||||
"transcoding_target_resolution_description": "Higher resolutions can preserve more detail but take longer to encode, have larger file sizes, and can reduce app responsiveness.",
|
||||
"transcoding_temporal_aq": "Temporal AQ",
|
||||
"transcoding_temporal_aq_description": "Applies only to NVENC. Increases quality of high-detail, low-motion scenes. May not be compatible with older devices.",
|
||||
"transcoding_temporal_aq_description": "Applies only to NVENC. Temporal Adaptive Quantization increases quality of high-detail, low-motion scenes. May not be compatible with older devices.",
|
||||
"transcoding_threads": "Threads",
|
||||
"transcoding_threads_description": "Higher values lead to faster encoding, but leave less room for the server to process other tasks while active. This value should not be more than the number of CPU cores. Maximizes utilization if set to 0.",
|
||||
"transcoding_tone_mapping": "Tone-mapping",
|
||||
|
|
@ -465,9 +468,11 @@
|
|||
"api_key_description": "This value will only be shown once. Please be sure to copy it before closing the window.",
|
||||
"api_key_empty": "Your API Key name shouldn't be empty",
|
||||
"api_keys": "API Keys",
|
||||
"app_architecture_variant": "Variant (Architecture)",
|
||||
"app_bar_signout_dialog_content": "Are you sure you want to sign out?",
|
||||
"app_bar_signout_dialog_ok": "Yes",
|
||||
"app_bar_signout_dialog_title": "Sign out",
|
||||
"app_download_links": "App Download Links",
|
||||
"app_settings": "App Settings",
|
||||
"appears_in": "Appears in",
|
||||
"apply_count": "Apply ({count, number})",
|
||||
|
|
@ -1038,6 +1043,7 @@
|
|||
"exif_bottom_sheet_description_error": "Error updating description",
|
||||
"exif_bottom_sheet_details": "DETAILS",
|
||||
"exif_bottom_sheet_location": "LOCATION",
|
||||
"exif_bottom_sheet_no_description": "No description",
|
||||
"exif_bottom_sheet_people": "PEOPLE",
|
||||
"exif_bottom_sheet_person_add_person": "Add name",
|
||||
"exit_slideshow": "Exit Slideshow",
|
||||
|
|
@ -1344,6 +1350,8 @@
|
|||
"minute": "Minute",
|
||||
"minutes": "Minutes",
|
||||
"missing": "Missing",
|
||||
"mobile_app": "Mobile App",
|
||||
"mobile_app_download_onboarding_note": "You can access these options again from the Utilities page.",
|
||||
"model": "Model",
|
||||
"month": "Month",
|
||||
"monthly_title_text_date_format": "MMMM y",
|
||||
|
|
@ -1362,6 +1370,8 @@
|
|||
"my_albums": "My albums",
|
||||
"name": "Name",
|
||||
"name_or_nickname": "Name or nickname",
|
||||
"navigate": "Navigate",
|
||||
"navigate_to_time": "Navigate to Time",
|
||||
"network_requirement_photos_upload": "Use cellular data to backup photos",
|
||||
"network_requirement_videos_upload": "Use cellular data to backup videos",
|
||||
"network_requirements": "Network Requirements",
|
||||
|
|
@ -1371,6 +1381,7 @@
|
|||
"never": "Never",
|
||||
"new_album": "New Album",
|
||||
"new_api_key": "New API Key",
|
||||
"new_date_range": "New date range",
|
||||
"new_password": "New password",
|
||||
"new_person": "New person",
|
||||
"new_pin_code": "New PIN code",
|
||||
|
|
@ -1421,6 +1432,8 @@
|
|||
"notifications": "Notifications",
|
||||
"notifications_setting_description": "Manage notifications",
|
||||
"oauth": "OAuth",
|
||||
"obtainium_configurator": "Obtainium Configurator",
|
||||
"obtainium_configurator_instructions": "Please create an API key and select a variant to create your Obtainium configuration link.",
|
||||
"official_immich_resources": "Official Immich Resources",
|
||||
"offline": "Offline",
|
||||
"offset": "Offset",
|
||||
|
|
@ -1805,6 +1818,8 @@
|
|||
"setting_notifications_subtitle": "Adjust your notification preferences",
|
||||
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
||||
"setting_notifications_total_progress_title": "Show background backup total progress",
|
||||
"setting_video_viewer_auto_play_subtitle": "Automatically start playing videos when they are opened",
|
||||
"setting_video_viewer_auto_play_title": "Auto play videos",
|
||||
"setting_video_viewer_looping_title": "Looping",
|
||||
"setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
|
||||
"setting_video_viewer_original_video_title": "Force original video",
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
"add_to_albums": "Incluir en álbumes",
|
||||
"add_to_albums_count": "Incluir en {count} álbumes",
|
||||
"add_to_shared_album": "Incluir en álbum compartido",
|
||||
"add_upload_to_stack": "Añadir archivo y apilar",
|
||||
"add_url": "Agregar URL",
|
||||
"added_to_archive": "Agregado al Archivado",
|
||||
"added_to_favorites": "Agregado a favoritos",
|
||||
|
|
@ -599,6 +600,7 @@
|
|||
"backup_controller_page_turn_on": "Activar la copia de seguridad",
|
||||
"backup_controller_page_uploading_file_info": "Subiendo información del archivo",
|
||||
"backup_err_only_album": "No se puede eliminar el único álbum",
|
||||
"backup_error_sync_failed": "La sincronización falló. No es posible procesar la copia de seguridad.",
|
||||
"backup_info_card_assets": "elementos",
|
||||
"backup_manual_cancelled": "Cancelado",
|
||||
"backup_manual_in_progress": "Subida ya en progreso. Vuelve a intentarlo más tarde",
|
||||
|
|
@ -1088,7 +1090,7 @@
|
|||
"folders": "Carpetas",
|
||||
"folders_feature_description": "Explorar la vista de carpetas para las fotos y los videos en el sistema de archivos",
|
||||
"forgot_pin_code_question": "¿Olvidaste tu código PIN?",
|
||||
"forward": "Reenviar",
|
||||
"forward": "Avanzar",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Esta funcionalidad carga recursos externos desde Google para poder funcionar.",
|
||||
"general": "General",
|
||||
|
|
@ -1905,7 +1907,7 @@
|
|||
"skip_to_content": "Saltar al contenido",
|
||||
"skip_to_folders": "Ir a las carpetas",
|
||||
"skip_to_tags": "Ir a las etiquetas",
|
||||
"slideshow": "Diapositivas",
|
||||
"slideshow": "Pase de diapositivas",
|
||||
"slideshow_settings": "Ajustes de diapositivas",
|
||||
"sort_albums_by": "Ordenar álbumes por…",
|
||||
"sort_created": "Fecha de creación",
|
||||
|
|
|
|||
11
i18n/et.json
|
|
@ -33,6 +33,7 @@
|
|||
"add_to_albums": "Lisa albumitesse",
|
||||
"add_to_albums_count": "Lisa albumitesse ({count})",
|
||||
"add_to_shared_album": "Lisa jagatud albumisse",
|
||||
"add_upload_to_stack": "Virnasta üleslaaditud üksus",
|
||||
"add_url": "Lisa URL",
|
||||
"added_to_archive": "Lisatud arhiivi",
|
||||
"added_to_favorites": "Lisatud lemmikutesse",
|
||||
|
|
@ -599,6 +600,7 @@
|
|||
"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_error_sync_failed": "Sünkroonimine ebaõnnestus. Varundust ei saa töödelda.",
|
||||
"backup_info_card_assets": "üksused",
|
||||
"backup_manual_cancelled": "Tühistatud",
|
||||
"backup_manual_in_progress": "Üleslaadimine juba käib. Proovi hiljem uuesti",
|
||||
|
|
@ -1037,6 +1039,7 @@
|
|||
"exif_bottom_sheet_description_error": "Viga kirjelduse muutmisel",
|
||||
"exif_bottom_sheet_details": "ÜKSIKASJAD",
|
||||
"exif_bottom_sheet_location": "ASUKOHT",
|
||||
"exif_bottom_sheet_no_description": "Kirjeldus puudub",
|
||||
"exif_bottom_sheet_people": "ISIKUD",
|
||||
"exif_bottom_sheet_person_add_person": "Lisa nimi",
|
||||
"exit_slideshow": "Sulge slaidiesitlus",
|
||||
|
|
@ -1323,7 +1326,7 @@
|
|||
"marked_all_as_read": "Kõik märgiti loetuks",
|
||||
"matches": "Ühtivad failid",
|
||||
"matching_assets": "Ühtivad üksused",
|
||||
"media_type": "Meediumi tüüp",
|
||||
"media_type": "Üksuse tüüp",
|
||||
"memories": "Mälestused",
|
||||
"memories_all_caught_up": "Ongi kõik",
|
||||
"memories_check_back_tomorrow": "Vaata homme juba uusi mälestusi",
|
||||
|
|
@ -1406,6 +1409,7 @@
|
|||
"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_uploads_in_progress": "Üleslaadimisi käimas ei ole",
|
||||
"not_available": "Pole saadaval",
|
||||
"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",
|
||||
|
|
@ -1583,6 +1587,7 @@
|
|||
"purchase_server_description_2": "Toetaja staatus",
|
||||
"purchase_server_title": "Server",
|
||||
"purchase_settings_server_activated": "Serveri tootevõtit haldab administraator",
|
||||
"query_asset_id": "Päringu üksuse ID",
|
||||
"queue_status": "Järjekorras {count}/{total}",
|
||||
"rating": "Hinnang",
|
||||
"rating_clear": "Tühjenda hinnang",
|
||||
|
|
@ -1710,8 +1715,8 @@
|
|||
"search_filter_filename": "Otsi failinime alusel",
|
||||
"search_filter_location": "Asukoht",
|
||||
"search_filter_location_title": "Vali asukoht",
|
||||
"search_filter_media_type": "Meediumi tüüp",
|
||||
"search_filter_media_type_title": "Vali meediumi tüüp",
|
||||
"search_filter_media_type": "Üksuse tüüp",
|
||||
"search_filter_media_type_title": "Vali üksuse tüüp",
|
||||
"search_filter_people_title": "Vali isikud",
|
||||
"search_for": "Otsi",
|
||||
"search_for_existing_person": "Otsi olemasolevat isikut",
|
||||
|
|
|
|||
123
i18n/fi.json
|
|
@ -28,6 +28,7 @@
|
|||
"add_to_album": "Lisää albumiin",
|
||||
"add_to_album_bottom_sheet_added": "Lisätty albumiin {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Kohde on jo albumissa {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Joitakin osia paikallisesta sisällöstä ei pystytty lisämään albumiin",
|
||||
"add_to_album_toggle": "Vaihda albumin {album} valintaa",
|
||||
"add_to_albums": "Lisää albumeihin",
|
||||
"add_to_albums_count": "Lisää albumeihin ({count})",
|
||||
|
|
@ -39,7 +40,7 @@
|
|||
"admin": {
|
||||
"add_exclusion_pattern_description": "Lisää mallit, jonka mukaan jätetään tiedostoja pois. Jokerimerkit *, ** ja ? ovat tuettuna. Jättääksesi pois kaikki tiedostot mistä tahansa löytyvästä kansiosta \"Raw\" käytä \"**/Raw/**\". Jättääksesi pois kaikki \". tif\" päätteiset tiedot, käytä \"**/*.tif\". Jättääksesi pois tarkan tiedostopolun, käytä \"/path/to/ignore/**\".",
|
||||
"admin_user": "Ylläpitäjä",
|
||||
"asset_offline_description": "Ulkoista kirjaston resurssia ei enää löydy levyltä, ja se on siirretty roskakoriin. Jos tiedosto siirrettiin kirjaston sisällä, tarkista aikajanaltasi uusi vastaava resurssi. Palautaaksesi tämän resurssin, varmista, että alla oleva tiedostopolku on Immichin käytettävissä ja skannaa kirjasto uudelleen.",
|
||||
"asset_offline_description": "Ulkoista kirjaston resurssia ei enää löydy levyltä, ja se on siirretty roskakoriin. Jos tiedosto siirrettiin kirjaston sisällä, tarkista aikajanaltasi uusi vastaava resurssi. Palauttaaksesi tämän resurssin, varmista, että alla oleva tiedostopolku on Immichin käytettävissä ja skannaa kirjasto uudelleen.",
|
||||
"authentication_settings": "Autentikointiasetukset",
|
||||
"authentication_settings_description": "Hallitse salasana-, OAuth- ja muut autentikoinnin asetukset",
|
||||
"authentication_settings_disable_all": "Haluatko varmasti poistaa kaikki kirjautumistavat käytöstä? Kirjautuminen on tämän jälkeen mahdotonta.",
|
||||
|
|
@ -149,7 +150,7 @@
|
|||
"machine_learning_max_recognition_distance": "Suurin kasvojen eroavaisuus",
|
||||
"machine_learning_max_recognition_distance_description": "Kahden kasvon suurin eroavaisuus, milloin ne vielä mielletään samaksi henkilöksi, välillä 0-2. Arvoa alentamalla voidaan ehkäistä kahden saman näköisen henkilön mieltäminen samaksi henkilöksi, kun taas korottamalla voidaan ehkäistä saman henkilön mieltäminen kahdeksi erilliseksi henkilöksi. Huomaa että on helpompaa yhdistää kaksi, kuin erottaa, joten suosi mahdollisimman matalaa arvoa.",
|
||||
"machine_learning_min_detection_score": "Tunnistuksen vähimmäistulos",
|
||||
"machine_learning_min_detection_score_description": "Pienin kasvojen tunnistamisessa saatu vahvuusarvo välillä 0-1. Matalammalla arvolla havaitaan enemmän kascoja, mutta voi lisätä virhearvioiden määrää.",
|
||||
"machine_learning_min_detection_score_description": "Pienin kasvojen tunnistamisessa saatu vahvuusarvo välillä 0-1. Matalammalla arvolla havaitaan enemmän kasvoja, mutta voi lisätä virhearvioiden määrää.",
|
||||
"machine_learning_min_recognized_faces": "Tunnistettujen kasvojen vähimmäismäärä",
|
||||
"machine_learning_min_recognized_faces_description": "Luotavan käyttäjän kasvojen vähimmäismäärä. Arvoa nostamalla kasvojentunnistuksen tarkkuus paranee, mutta todennäköisyys sille, että kasvoja ei osata yhdistää henkilöön kasvaa.",
|
||||
"machine_learning_settings": "Koneoppimisen asetukset",
|
||||
|
|
@ -183,7 +184,7 @@
|
|||
"metadata_settings": "Metatietoasetukset",
|
||||
"metadata_settings_description": "Hallitse metatietoja",
|
||||
"migration_job": "Migraatio",
|
||||
"migration_job_description": "Migroi aineiston pikkukuvat ja kasvot uusimpaan kansiorakenteeseen",
|
||||
"migration_job_description": "Migratoi aineiston pikkukuvat ja kasvot uusimpaan kansiorakenteeseen",
|
||||
"nightly_tasks_cluster_faces_setting_description": "Aja kasvojen tunnistus uusiin tunnistettuihin kasvoihin",
|
||||
"nightly_tasks_cluster_new_faces_setting": "Kokoa uudet kasvot",
|
||||
"nightly_tasks_database_cleanup_setting": "Tietokannan puhdistuksen tehtävät",
|
||||
|
|
@ -203,7 +204,7 @@
|
|||
"note_apply_storage_label_previous_assets": "Huom: Asettaaksesi nimikkeen aiemmin ladatulle aineistolle, aja",
|
||||
"note_cannot_be_changed_later": "Huom: Tätä ei voi enää myöhemmin vaihtaa!",
|
||||
"notification_email_from_address": "Lähettäjän osoite",
|
||||
"notification_email_from_address_description": "Lähettäjän sähköpostiosoite. Esimerkiksi \"Immich-kuvapalvelin <noreply@example.com>\". Varmista, että käytetystä osoiteesta on lupa lähettää sähköposteja.",
|
||||
"notification_email_from_address_description": "Lähettäjän sähköpostiosoite. Esimerkiksi \"Immich-kuvapalvelin <noreply@example.com>\". Varmista, että käytetystä osoitteesta on lupa lähettää sähköposteja.",
|
||||
"notification_email_host_description": "Sähköpostipalvelin (esim. smtp.immich.app)",
|
||||
"notification_email_ignore_certificate_errors": "Älä huomioi varmennevirheitä",
|
||||
"notification_email_ignore_certificate_errors_description": "Älä huomioi TLS-varmenteiden validointivirheitä (ei suositeltu)",
|
||||
|
|
@ -225,9 +226,9 @@
|
|||
"oauth_button_text": "Painikkeen teksti",
|
||||
"oauth_client_secret_description": "Vaaditaan, jos OAuth-palveluntarjoaja ei tue PKCE:tä (Proof Key for Code Exchange)",
|
||||
"oauth_enable_description": "Kirjaudu käyttäen OAuthia",
|
||||
"oauth_mobile_redirect_uri": "Mobiilin uudellenohjaus-URI",
|
||||
"oauth_mobile_redirect_uri": "Mobiilin uudelleenohjaus-URI",
|
||||
"oauth_mobile_redirect_uri_override": "Ohita mobiilin uudelleenohjaus-URI",
|
||||
"oauth_mobile_redirect_uri_override_description": "Ota käyttöön kun OAuth tarjoaja ei salli mobiili URI:a, kuten ''{callback}''",
|
||||
"oauth_mobile_redirect_uri_override_description": "Ota käyttöön kun OAuth-tarjoaja ei salli mobiili-URI:a, kuten ''{callback}''",
|
||||
"oauth_role_claim": "Roolin vaatimus",
|
||||
"oauth_role_claim_description": "Salli pääkäyttäjän pääsyoikeus automaattisesti tämän vaatimuksen perusteella. Vaatimus voi sisältää, joko 'käyttäjän' tai 'pääkäyttäjän'.",
|
||||
"oauth_settings": "OAuth",
|
||||
|
|
@ -278,7 +279,7 @@
|
|||
"storage_template_migration_info": "Tallennusmalli muuntaa kaikki tiedostopäätteet pieniksi kirjaimiksi. Mallipohjan muutokset koskevat vain uusia resursseja. Jos haluat käyttää mallipohjaa takautuvasti aiemmin ladattuihin resursseihin, suorita <link>{job}</link>.",
|
||||
"storage_template_migration_job": "Tallennustilan mallin muutostyö",
|
||||
"storage_template_more_details": "Saadaksesi lisätietoa tästä ominaisuudesta, katso <template-link>Tallennustilan Mallit</template-link> sekä <implications-link>mihin se vaikuttaa</implications-link>",
|
||||
"storage_template_onboarding_description_v2": "Päälle kytkettynä, toiminto järjestestelee tiedostot automaattisesti käyttäjän määrittämän mallin mukaisesti. Lisätietoja <link>dokumentaatiosta</link>..",
|
||||
"storage_template_onboarding_description_v2": "Päälle kytkettynä toiminto järjestelee tiedostot automaattisesti käyttäjän määrittämän mallin mukaisesti. Lisätietoja <link>dokumentaatiosta</link>..",
|
||||
"storage_template_path_length": "Arvioitu tiedostopolun pituusrajoitus: <b>{length, number}</b>/{limit, number}",
|
||||
"storage_template_settings": "Tallennustilan malli",
|
||||
"storage_template_settings_description": "Hallitse palvelimelle ladatun aineiston kansiorakennetta ja tiedostonimiä",
|
||||
|
|
@ -301,17 +302,17 @@
|
|||
"thumbnail_generation_job": "Luo pikkukuvat",
|
||||
"thumbnail_generation_job_description": "Generoi isot, pienet sekä sumeat pikkukuvat jokaisesta aineistosta, kuten myös henkilöistä",
|
||||
"transcoding_acceleration_api": "Kiihdytysrajapinta",
|
||||
"transcoding_acceleration_api_description": "Rajapinta, jolla keskustellaan laittesi kanssa nopeuttaaksemme koodausta. Tämä asetus on paras mahdollinen: Mikäli ongelmia ilmenee, palataan käyttämään ohjelmistopohjaista koodausta. VP9 voi toimia tai ei, riippuen laitteistosi kokoonpanosta.",
|
||||
"transcoding_acceleration_api_description": "Rajapinta, jolla keskustellaan laitteesi kanssa nopeuttaaksemme koodausta. Tämä asetus on paras mahdollinen: Mikäli ongelmia ilmenee, palataan käyttämään ohjelmistopohjaista koodausta. VP9 voi toimia tai ei, riippuen laitteistosi kokoonpanosta.",
|
||||
"transcoding_acceleration_nvenc": "NVENC (vaatii NVIDIA:n grafiikkasuorittimen)",
|
||||
"transcoding_acceleration_qsv": "Quick Sync (Vaatii vähintään gen7 Intel prosessorin)",
|
||||
"transcoding_acceleration_rkmpp": "RKMPP (vain Rockchip SOCt)",
|
||||
"transcoding_acceleration_vaapi": "VAAPI",
|
||||
"transcoding_accepted_audio_codecs": "Sallitut äänikoodekit",
|
||||
"transcoding_accepted_audio_codecs_description": "Valitse mitä äänikoodekkeja ei tarvitse muuntaa. Käytetään vain tiettyjen koodauskäytäntöjen kanssa.",
|
||||
"transcoding_accepted_containers": "Hyväksytyt kontit",
|
||||
"transcoding_accepted_containers_description": "Valitse, mitä formaatteja ei tarvitse kääntää MP4- muotoon. Käytössä vain tietyille muunnos säännöille.",
|
||||
"transcoding_accepted_audio_codecs_description": "Valitse, mitä äänikoodekkeja ei tarvitse muuntaa. Käytetään vain tiettyjen koodauskäytäntöjen kanssa.",
|
||||
"transcoding_accepted_containers": "Sallitut säiliömuodot",
|
||||
"transcoding_accepted_containers_description": "Valitse, mitä säiliömuotoja ei tarvitse muuntaa MP4-muotoon. Käytetään vain tiettyjen koodauskäytäntöjen kanssa.",
|
||||
"transcoding_accepted_video_codecs": "Sallitut videokoodekit",
|
||||
"transcoding_accepted_video_codecs_description": "Valitse mitä videokoodekkeja ei tarvitse muuntaa. Käytetään vain tiettyjen koodauskäytäntöjen kanssa.",
|
||||
"transcoding_accepted_video_codecs_description": "Valitse, mitä videokoodekkeja ei tarvitse muuntaa. Käytetään vain tiettyjen koodauskäytäntöjen kanssa.",
|
||||
"transcoding_advanced_options_description": "Asetukset, joita useimpien käyttäjien ei tulisi muuttaa",
|
||||
"transcoding_audio_codec": "Äänikoodekki",
|
||||
"transcoding_audio_codec_description": "Opus on paras laadultaan, mutta ei välttämättä ole yhteensopiva vanhempien laitteiden tai sovellusten kanssa.",
|
||||
|
|
@ -338,7 +339,7 @@
|
|||
"transcoding_policy": "Transkoodauskäytäntö",
|
||||
"transcoding_policy_description": "Aseta milloin video transkoodataan",
|
||||
"transcoding_preferred_hardware_device": "Ensisijainen laite",
|
||||
"transcoding_preferred_hardware_device_description": "On voimassa vain VAAPI ja QSV -määritteille. Asettaa laitteistokoodauksessa käytetyn DRI noodin.",
|
||||
"transcoding_preferred_hardware_device_description": "On voimassa vain VAAPI- ja QSV-määritteille. Asettaa laitteistokoodauksessa käytetyn DRI-noodin.",
|
||||
"transcoding_preset_preset": "Esiasetus (-asetus)",
|
||||
"transcoding_preset_preset_description": "Pakkausnopeus. Hitaampi tuottaa pienempiä tiedostoja ja parantaa laatua, kun kohdistetaan tiettyyn bittinopeuteen. VP9 ei huomioi korkeampaa kuin 'faster'.",
|
||||
"transcoding_reference_frames": "Kehysviitteet",
|
||||
|
|
@ -355,7 +356,7 @@
|
|||
"transcoding_tone_mapping": "Sävykartoitus",
|
||||
"transcoding_tone_mapping_description": "Pyrkii säilömään HDR-kuvien ulkonäön, kun muunnetaan peruskuvaksi. Jokaisella algoritmilla on omat heikkoutensa värien, yksityiskohtien tai kirkkauksien kesken. Hable säilöö yksityiskohdat, Mobius värit ja Reinhard kirkkaudet.",
|
||||
"transcoding_transcode_policy": "Transkoodauskäytäntö",
|
||||
"transcoding_transcode_policy_description": "Käytäntö miten video tulisi transkoodata. HDR videot transkoodataan aina, paitsi jos transkoodaus on poistettu käytöstä.",
|
||||
"transcoding_transcode_policy_description": "Käytäntö, miten video tulisi transkoodata. HDR-videot transkoodataan aina, paitsi jos transkoodaus on poistettu käytöstä.",
|
||||
"transcoding_two_pass_encoding": "Two-pass enkoodaus",
|
||||
"transcoding_two_pass_encoding_setting_description": "Transkoodaa kahdessa vaiheessa tuottaaksesi paremmin koodattuja videoita. Kun maksimibittinopeus on käytössä (vaaditaan H.264- ja HEVC-koodaukselle), tämä tila käyttää bittinopeusaluetta, joka perustuu maksimibittinopeuteen ja ohittaa CRF. VP9 osalta CRF:ää voidaan käyttää, jos maksimibittinopeus on poistettu käytöstä.",
|
||||
"transcoding_video_codec": "Videokoodekki",
|
||||
|
|
@ -435,7 +436,7 @@
|
|||
"album_updated_setting_description": "Saa sähköpostia kun jaetussa albumissa on uutta sisältöä",
|
||||
"album_user_left": "Poistuttiin albumista {album}",
|
||||
"album_user_removed": "{user} poistettu",
|
||||
"album_viewer_appbar_delete_confirm": "Haluatko varmast poistaa tämän albumin tililtäsi?",
|
||||
"album_viewer_appbar_delete_confirm": "Haluatko varmasti poistaa tämän albumin tililtäsi?",
|
||||
"album_viewer_appbar_share_err_delete": "Albumin poistaminen epäonnistui",
|
||||
"album_viewer_appbar_share_err_leave": "Albumista poistuminen epäonnistui",
|
||||
"album_viewer_appbar_share_err_remove": "Ongelmia kohteiden poistamisessa albumista",
|
||||
|
|
@ -481,7 +482,7 @@
|
|||
"archived_count": "{count, plural, other {Arkistoitu #}}",
|
||||
"are_these_the_same_person": "Ovatko he sama henkilö?",
|
||||
"are_you_sure_to_do_this": "Haluatko varmasti tehdä tämän?",
|
||||
"asset_action_delete_err_read_only": "Vain luku-tilassa olevia kohteita ei voitu poistaa, ohitetaan",
|
||||
"asset_action_delete_err_read_only": "Vain luku -tilassa olevia kohteita ei voitu poistaa, ohitetaan",
|
||||
"asset_action_share_err_offline": "Verkottomassa tilassa olevia kohteita ei voitu noutaa, ohitetaan",
|
||||
"asset_added_to_album": "Lisätty albumiin",
|
||||
"asset_adding_to_album": "Lisätään albumiin…",
|
||||
|
|
@ -503,6 +504,7 @@
|
|||
"asset_skipped": "Ohitettu",
|
||||
"asset_skipped_in_trash": "Roskakorissa",
|
||||
"asset_trashed": "Kohde poistettu",
|
||||
"asset_troubleshoot": "Sisällön vian paikannus",
|
||||
"asset_uploaded": "Lähetetty",
|
||||
"asset_uploading": "Ladataan…",
|
||||
"asset_viewer_settings_subtitle": "Galleriakatseluohjelman asetusten hallinta",
|
||||
|
|
@ -510,7 +512,7 @@
|
|||
"assets": "Kohteet",
|
||||
"assets_added_count": "Lisätty {count, plural, one {# kohde} other {# kohdetta}}",
|
||||
"assets_added_to_album_count": "Albumiin lisätty {count, plural, one {# kohde} other {# kohdetta}}",
|
||||
"assets_added_to_albums_count": "Lisätty {assetTotal, plural, one {# aineisto} other {# aaineistoa}} {albumTotal, plural, one {# albumiin} other {# albumeihin}}",
|
||||
"assets_added_to_albums_count": "Lisätty {assetTotal, plural, one {# kohde} other {# kohdetta}} {albumTotal, plural, one {# albumiin} other {# albumiin}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Kohdetta} other {Kohdetta}} ei voida lisätä albumiin",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Aineisto} other {Aineistoa}} ei voi lisätä mihinkään albumiin",
|
||||
"assets_count": "{count, plural, one {# media} other {# mediaa}}",
|
||||
|
|
@ -547,6 +549,7 @@
|
|||
"backup_album_selection_page_select_albums": "Valitse albumit",
|
||||
"backup_album_selection_page_selection_info": "Valintatiedot",
|
||||
"backup_album_selection_page_total_assets": "Ainulaatuisia kohteita yhteensä",
|
||||
"backup_albums_sync": "Varmuuskopioitujen albumeiden synkronointi",
|
||||
"backup_all": "Kaikki",
|
||||
"backup_background_service_backup_failed_message": "Kohteiden varmuuskopiointi epäonnistui. Yritetään uudelleen…",
|
||||
"backup_background_service_connection_failed_message": "Palvelimeen ei saatu yhteyttä. Yritetään uudelleen…",
|
||||
|
|
@ -596,7 +599,8 @@
|
|||
"backup_controller_page_turn_on": "Varmuuskopiointi päälle",
|
||||
"backup_controller_page_uploading_file_info": "Tiedostojen lähetystiedot",
|
||||
"backup_err_only_album": "Vähintään yhden albumin tulee olla valittuna",
|
||||
"backup_info_card_assets": "kohteet",
|
||||
"backup_error_sync_failed": "Synkronointi epäonnistui. Varmuuskopion käsittely ei onnistu.",
|
||||
"backup_info_card_assets": "kohdetta",
|
||||
"backup_manual_cancelled": "Peruutettu",
|
||||
"backup_manual_in_progress": "Lähetys palvelimelle on jo käynnissä. Kokeile myöhemmin uudelleen",
|
||||
"backup_manual_success": "Onnistui",
|
||||
|
|
@ -631,7 +635,7 @@
|
|||
"cache_settings_statistics_thumbnail": "Esikatselukuvat",
|
||||
"cache_settings_statistics_title": "Välimuistin käyttö",
|
||||
"cache_settings_subtitle": "Hallitse Immich-mobiilisovelluksen välimuistin käyttöä",
|
||||
"cache_settings_tile_subtitle": "Hallitse paikallista tallenustilaa",
|
||||
"cache_settings_tile_subtitle": "Hallitse paikallista tallennustilaa",
|
||||
"cache_settings_tile_title": "Paikallinen tallennustila",
|
||||
"cache_settings_title": "Välimuistin asetukset",
|
||||
"camera": "Kamera",
|
||||
|
|
@ -663,6 +667,8 @@
|
|||
"change_pin_code": "Vaihda PIN-koodi",
|
||||
"change_your_password": "Vaihda salasanasi",
|
||||
"changed_visibility_successfully": "Näkyvyys vaihdettu",
|
||||
"charging": "Ladataan laitetta",
|
||||
"charging_requirement_mobile_backup": "Varmuuskopiointi taustalla vaatii laitteen latautumista",
|
||||
"check_corrupt_asset_backup": "Vioittuneiden varmuuskopioiden tarkistaminen",
|
||||
"check_corrupt_asset_backup_button": "Suorita tarkistus",
|
||||
"check_corrupt_asset_backup_description": "Suorita tämä tarkistus vain Wi-Fi-yhteyden kautta ja vasta, kun kaikki kohteet on varmuuskopioitu. Toimenpide voi kestää muutamia minuutteja.",
|
||||
|
|
@ -749,6 +755,7 @@
|
|||
"create_user": "Luo käyttäjä",
|
||||
"created": "Luotu",
|
||||
"created_at": "Luotu",
|
||||
"creating_linked_albums": "Luodaan linkattuja albumeita...",
|
||||
"crop": "Rajaa",
|
||||
"curated_object_page_title": "Asiat",
|
||||
"current_device": "Nykyinen laite",
|
||||
|
|
@ -773,7 +780,7 @@
|
|||
"deduplication_criteria_1": "Kuvan koko tavuina",
|
||||
"deduplication_criteria_2": "EXIF-datan määrä",
|
||||
"deduplication_info": "Deduplikaatiotieto",
|
||||
"deduplication_info_description": "Jotta voimme automaattisesti esivalita aineistot ja poistaa duplikaatit suurina erinä, tarkastelemme:",
|
||||
"deduplication_info_description": "Jotta voimme automaattisesti esivalita aineistot ja poistaa kaksoiskappaleet suurina erinä, tarkastelemme:",
|
||||
"default_locale": "Oletuskieliasetus",
|
||||
"default_locale_description": "Muotoile päivämäärät ja numerot selaimesi kielen mukaan",
|
||||
"delete": "Poista",
|
||||
|
|
@ -848,7 +855,7 @@
|
|||
"downloading_media": "Median lataaminen",
|
||||
"drop_files_to_upload": "Pudota tiedostot mihin tahansa ladataksesi ne",
|
||||
"duplicates": "Kaksoiskappaleet",
|
||||
"duplicates_description": "Selvitä jokaisen kohdalla mitkä (jos yksikään) ovat kaksoiskappaleita",
|
||||
"duplicates_description": "Selvitä jokaisen kohdalla mitkä (jos mitkään) ovat kaksoiskappaleita",
|
||||
"duration": "Kesto",
|
||||
"edit": "Muokkaa",
|
||||
"edit_album": "Muokkaa albumia",
|
||||
|
|
@ -898,7 +905,9 @@
|
|||
"error": "Virhe",
|
||||
"error_change_sort_album": "Albumin lajittelujärjestyksen muuttaminen epäonnistui",
|
||||
"error_delete_face": "Virhe kasvojen poistamisessa kohteesta",
|
||||
"error_getting_places": "Ongelma paikkojen haussa",
|
||||
"error_loading_image": "Kuvan lataus ei onnistunut",
|
||||
"error_loading_partners": "Ongelma partnerin haussa: {error}",
|
||||
"error_saving_image": "Virhe: {error}",
|
||||
"error_tag_face_bounding_box": "Kasvojen merkitseminen epäonnistui – rajausruudun koordinaatteja ei löydy",
|
||||
"error_title": "Virhe - Jotain meni pieleen",
|
||||
|
|
@ -1058,11 +1067,12 @@
|
|||
"failed_to_load_folder": "Kansion lataaminen epäonnistui",
|
||||
"favorite": "Suosikki",
|
||||
"favorite_action_prompt": "{count} lisätty suosikkeihin",
|
||||
"favorite_or_unfavorite_photo": "Suosikki- tai ei-suosikkikuva",
|
||||
"favorite_or_unfavorite_photo": "Lisää tai poista kuva suosikeista",
|
||||
"favorites": "Suosikit",
|
||||
"favorites_page_no_favorites": "Suosikkikohteita ei löytynyt",
|
||||
"feature_photo_updated": "Kansikuva ladattu",
|
||||
"features": "Ominaisuudet",
|
||||
"features_in_development": "Kehityksessä olevat ominaisuudet",
|
||||
"features_setting_description": "Hallitse sovelluksen ominaisuuksia",
|
||||
"file_name": "Tiedoston nimi",
|
||||
"file_name_or_extension": "Tiedostonimi tai tiedostopääte",
|
||||
|
|
@ -1090,6 +1100,8 @@
|
|||
"go_back": "Palaa",
|
||||
"go_to_folder": "Mene kansioon",
|
||||
"go_to_search": "Siirry hakuun",
|
||||
"gps": "GPS",
|
||||
"gps_missing": "Ei GPS:ää",
|
||||
"grant_permission": "Myönnä lupa",
|
||||
"group_albums_by": "Ryhmitä albumi...",
|
||||
"group_country": "Ryhmitä maan mukaan",
|
||||
|
|
@ -1119,18 +1131,18 @@
|
|||
"home_page_add_to_album_conflicts": "Lisätty {added} kohdetta albumiin {album}. {failed} kohdetta on jo albumissa.",
|
||||
"home_page_add_to_album_err_local": "Paikallisten kohteiden lisääminen albumeihin ei ole mahdollista, ohitetaan",
|
||||
"home_page_add_to_album_success": "Lisätty {added} kohdetta albumiin {album}.",
|
||||
"home_page_album_err_partner": "Kumppanin kohteita ei voi vielä lisätä albumiin. Hypätään yli",
|
||||
"home_page_album_err_partner": "Kumppanin kohteita ei voi vielä lisätä albumiin, ohitetaan",
|
||||
"home_page_archive_err_local": "Paikallisten kohteiden arkistointi ei ole mahdollista, ohitetaan",
|
||||
"home_page_archive_err_partner": "Kumppanin kohteita ei voi arkistoida. Hypätään yli",
|
||||
"home_page_archive_err_partner": "Kumppanin kohteita ei voi arkistoida, ohitetaan",
|
||||
"home_page_building_timeline": "Rakennetaan aikajanaa",
|
||||
"home_page_delete_err_partner": "Kumppanin kohteita ei voi poistaa.Hypätään yli",
|
||||
"home_page_delete_err_partner": "Kumppanin kohteita ei voi poistaa, ohitetaan",
|
||||
"home_page_delete_remote_err_local": "Paikallisia kohteita etäkohdevalintojen joukossa, ohitetaan",
|
||||
"home_page_favorite_err_local": "Paikallisten kohteiden lisääminen suosikkeihin ei ole mahdollista, ohitetaan",
|
||||
"home_page_favorite_err_partner": "Kumppanin kohteita ei voi vielä merkitä suosikiksi. Hypätään yli",
|
||||
"home_page_favorite_err_partner": "Kumppanin kohteita ei voi vielä merkitä suosikiksi, ohitetaan",
|
||||
"home_page_first_time_notice": "Jos käytät sovellusta ensimmäistä kertaa, muista valita varmuuskopioitavat albumi(t), jotta aikajanalla voi olla kuvia ja videoita",
|
||||
"home_page_locked_error_local": "Paikallisten kohteiden siirto lukittuun kansioon ei onnistu, ohitetaan",
|
||||
"home_page_locked_error_partner": "Kumppanin kohteita ei voi siirtää lukittuun kansioon, ohitetaan",
|
||||
"home_page_share_err_local": "Paikallisia kohteita ei voitu jakaa linkkien avulla. Hypätään yli",
|
||||
"home_page_share_err_local": "Paikallisia kohteita ei voitu jakaa linkkien avulla, ohitetaan",
|
||||
"home_page_upload_err_limit": "Voit lähettää palvelimelle enintään 30 kohdetta kerrallaan, ohitetaan",
|
||||
"host": "Isäntä",
|
||||
"hour": "Tunti",
|
||||
|
|
@ -1158,7 +1170,7 @@
|
|||
"immich_web_interface": "Immich-verkkokäyttöliittymä",
|
||||
"import_from_json": "Tuo JSON-tiedostosta",
|
||||
"import_path": "Tuontipolku",
|
||||
"in_albums": "{count, plural, one {# Albumissa} other {# albumissa}}",
|
||||
"in_albums": "{count, plural, one {# albumissa} other {# albumissa}}",
|
||||
"in_archive": "Arkistossa",
|
||||
"include_archived": "Sisällytä arkistoidut",
|
||||
"include_shared_albums": "Sisällytä jaetut albumit",
|
||||
|
|
@ -1167,10 +1179,10 @@
|
|||
"individual_shares": "Yksittäiset jaot",
|
||||
"info": "Lisätietoja",
|
||||
"interval": {
|
||||
"day_at_onepm": "Joka päivä klo 13:00",
|
||||
"day_at_onepm": "Joka päivä klo 13.00",
|
||||
"hours": "Joka {hours, plural, one {tunti} other {{hours, number} tuntia}}",
|
||||
"night_at_midnight": "Joka yö keskiyöllä",
|
||||
"night_at_twoam": "Joka yö klo 02:00"
|
||||
"night_at_twoam": "Joka yö klo 2.00"
|
||||
},
|
||||
"invalid_date": "Virheellinen päivämäärä",
|
||||
"invalid_date_format": "Virheellinen päivämäärämuoto",
|
||||
|
|
@ -1225,6 +1237,7 @@
|
|||
"local": "Paikallinen",
|
||||
"local_asset_cast_failed": "Kohdetta, joka ei ole ladattuna palvelimelle, ei voida striimata",
|
||||
"local_assets": "Paikalliset kohteet",
|
||||
"local_media_summary": "Paikallisen median yhteenveto",
|
||||
"local_network": "Lähiverkko",
|
||||
"local_network_sheet_info": "Sovellus muodostaa yhteyden palvelimeen tämän URL-osoitteen kautta, kun käytetään määritettyä Wi-Fi-verkkoa",
|
||||
"location_permission": "Sijainnin käyttöoikeus",
|
||||
|
|
@ -1236,6 +1249,7 @@
|
|||
"location_picker_longitude_hint": "Syötä pituusaste",
|
||||
"lock": "Lukitse",
|
||||
"locked_folder": "Lukittu kansio",
|
||||
"log_detail_title": "Lokin yksityiskohtaisuus",
|
||||
"log_out": "Kirjaudu ulos",
|
||||
"log_out_all_devices": "Kirjaudu ulos kaikilta laitteilta",
|
||||
"logged_in_as": "Kirjautunut käyttäjänä {user}",
|
||||
|
|
@ -1266,6 +1280,7 @@
|
|||
"login_password_changed_success": "Salasan päivitetty onnistuneesti",
|
||||
"logout_all_device_confirmation": "Haluatko varmasti kirjautua ulos kaikilta laitteilta?",
|
||||
"logout_this_device_confirmation": "Haluatko varmasti kirjautua ulos näiltä laitteilta?",
|
||||
"logs": "Loki",
|
||||
"longitude": "Pituusaste",
|
||||
"look": "Tyyli",
|
||||
"loop_videos": "Toista videot uudelleen",
|
||||
|
|
@ -1273,6 +1288,7 @@
|
|||
"main_branch_warning": "Käytät kehitysversiota; suosittelemme vahvasti käyttämään julkaisuversiota!",
|
||||
"main_menu": "Päävalikko",
|
||||
"make": "Valmistaja",
|
||||
"manage_geolocation": "Muokkaa sijaintia",
|
||||
"manage_shared_links": "Hallitse jaettuja linkkejä",
|
||||
"manage_sharing_with_partners": "Hallitse jakamista kumppaneille",
|
||||
"manage_the_app_settings": "Hallitse sovelluksen asetuksia",
|
||||
|
|
@ -1307,6 +1323,7 @@
|
|||
"mark_as_read": "Merkitse luetuksi",
|
||||
"marked_all_as_read": "Merkitty kaikki luetuiksi",
|
||||
"matches": "Osumia",
|
||||
"matching_assets": "Vastaava sisältö",
|
||||
"media_type": "Median tyyppi",
|
||||
"memories": "Muistoja",
|
||||
"memories_all_caught_up": "Kaikki ajan tasalla",
|
||||
|
|
@ -1340,13 +1357,14 @@
|
|||
"moved_to_library": "Siirretty {count, plural, one {# kohde} other {# kohdetta}} kirjastoon",
|
||||
"moved_to_trash": "Siirretty roskakoriin",
|
||||
"multiselect_grid_edit_date_time_err_read_only": "Vain luku -tilassa olevien kohteiden päivämäärää ei voitu muokata, ohitetaan",
|
||||
"multiselect_grid_edit_gps_err_read_only": "Vain luku-tilassa olevien kohteiden sijantitietoja ei voitu muokata, ohitetaan",
|
||||
"multiselect_grid_edit_gps_err_read_only": "Vain luku -tilassa olevien kohteiden sijantitietoja ei voitu muokata, ohitetaan",
|
||||
"mute_memories": "Mykistä muistot",
|
||||
"my_albums": "Omat albumit",
|
||||
"name": "Nimi",
|
||||
"name_or_nickname": "Nimi tai lempinimi",
|
||||
"network_requirement_photos_upload": "Käytä mobiiliverkkoa kuvien varmuuskopioimiseksi",
|
||||
"network_requirement_videos_upload": "Käytä mobiiliverkkoa videoiden varmuuskopioimiseksi",
|
||||
"network_requirements": "Verkkovaatimukset",
|
||||
"network_requirements_updated": "Verkkovaatimukset muuttuivat, nollataan varmuuskopiointijono",
|
||||
"networking_settings": "Verkko",
|
||||
"networking_subtitle": "Hallitse palvelinasetuksia",
|
||||
|
|
@ -1357,6 +1375,7 @@
|
|||
"new_person": "Uusi henkilö",
|
||||
"new_pin_code": "Uusi PIN-koodi",
|
||||
"new_pin_code_subtitle": "Tämä on ensimmäinen kerta, kun käytät lukittua kansiota. Luo PIN-koodi päästäksesi tähän sisältöön turvallisesti",
|
||||
"new_timeline": "Uusi aikajana",
|
||||
"new_user_created": "Uusi käyttäjä lisätty",
|
||||
"new_version_available": "UUSI VERSIO SAATAVILLA",
|
||||
"newest_first": "Uusin ensin",
|
||||
|
|
@ -1367,23 +1386,28 @@
|
|||
"no_albums_with_name_yet": "Näyttää siltä, ettei sinulla ole yhtään tämän nimistä albumia.",
|
||||
"no_albums_yet": "Näyttää siltä, ettei sinulla ole vielä yhtään albumia.",
|
||||
"no_archived_assets_message": "Arkistoi kuvia ja videoita piilottaaksesi ne kuvat näkymästä",
|
||||
"no_assets_message": "NAPAUTA LATAAKSESI ENSIMMÄISEN KUVASI",
|
||||
"no_assets_message": "NAPAUTA LADATAKSESI ENSIMMÄINEN KUVASI",
|
||||
"no_assets_to_show": "Ei näytettäviä kohteita",
|
||||
"no_cast_devices_found": "Cast-laitteita ei löytynyt",
|
||||
"no_checksum_local": "Ei tarkistussummaa - paikallista sisältöä ei voida hakea",
|
||||
"no_checksum_remote": "Ei tarkistussummaa - etänä olevaa sisältöä ei voida hakea",
|
||||
"no_duplicates_found": "Kaksoiskappaleita ei löytynyt.",
|
||||
"no_exif_info_available": "EXIF-tietoa ei saatavilla",
|
||||
"no_explore_results_message": "Lataa lisää kuvia tutkiaksesi kokoelmaasi.",
|
||||
"no_favorites_message": "Lisää suosikkeja löytääksesi nopeasti parhaat kuvasi ja videosi",
|
||||
"no_libraries_message": "Luo ulkoinen kirjasto nähdäksesi valokuvasi ja videot",
|
||||
"no_local_assets_found": "Paikallista sisältöä ei löytynyt tällä tarkistussummalla",
|
||||
"no_locked_photos_message": "Kuvat ja videot lukitussa kansiossa ovat piilotettuja, eivätkä ne näy selatessasi tai etsiessäsi kirjastoasi.",
|
||||
"no_name": "Ei nimeä",
|
||||
"no_notifications": "Ei ilmoituksia",
|
||||
"no_people_found": "Ei vastaavia henkilöitä",
|
||||
"no_places": "Ei paikkoja",
|
||||
"no_remote_assets_found": "Etänä olevaa sisältöä ei löytynyt tällä tarkistussummalla",
|
||||
"no_results": "Ei tuloksia",
|
||||
"no_results_description": "Kokeile synonyymiä tai yleisempää avainsanaa",
|
||||
"no_shared_albums_message": "Luo albumi, jotta voit jakaa kuvia ja videoita toisille",
|
||||
"no_uploads_in_progress": "Ei käynnissä olevia latauksia",
|
||||
"not_available": "N/A",
|
||||
"not_in_any_album": "Ei yhdessäkään albumissa",
|
||||
"not_selected": "Ei valittu",
|
||||
"note_apply_storage_label_to_previously_uploaded assets": "Huom: Jotta voit soveltaa tallennustunnistetta aiemmin ladattuihin kohteisiin, suorita",
|
||||
|
|
@ -1418,6 +1442,8 @@
|
|||
"open_the_search_filters": "Avaa hakusuodattimet",
|
||||
"options": "Vaihtoehdot",
|
||||
"or": "tai",
|
||||
"organize_into_albums": "Järjestä albumeihin",
|
||||
"organize_into_albums_description": "Siirrä olemassa olevat kuvat albumeihin käyttäen nykyisiä synkronointiasetuksia",
|
||||
"organize_your_library": "Järjestele kirjastosi",
|
||||
"original": "alkuperäinen",
|
||||
"other": "Muut",
|
||||
|
|
@ -1463,7 +1489,7 @@
|
|||
"permanent_deletion_warning_setting_description": "Näytä varoitus, kun poistat kohteita pysyvästi",
|
||||
"permanently_delete": "Poista pysyvästi",
|
||||
"permanently_delete_assets_count": "Poista pysyvästi {count, plural, one {kohde} other {kohteita}}",
|
||||
"permanently_delete_assets_prompt": "Haluatko varmasti poistaa pysyvästi {count, plural, one {tämän kohteen?} other {nämä <b>#</b> kohteet?}} Tämä poistaa myös {count, plural, one {sen} other {ne}} kaikista albumeista.",
|
||||
"permanently_delete_assets_prompt": "Haluatko varmasti poistaa pysyvästi {count, plural, one {tämän kohteen?} other {nämä <b>#</b> kohteet?}} Tämä poistaa {count, plural, one {sen} other {ne}} myös kaikista albumeista.",
|
||||
"permanently_deleted_asset": "Media poistettu pysyvästi",
|
||||
"permanently_deleted_assets_count": "{count, plural, one {# media} other {# mediaa}} poistettu pysyvästi",
|
||||
"permission": "Käyttöoikeus",
|
||||
|
|
@ -1503,6 +1529,7 @@
|
|||
"port": "Portti",
|
||||
"preferences_settings_subtitle": "Hallitse sovelluksen asetuksia",
|
||||
"preferences_settings_title": "Asetukset",
|
||||
"preparing": "Valmistellaan",
|
||||
"preset": "Asetus",
|
||||
"preview": "Esikatselu",
|
||||
"previous": "Edellinen",
|
||||
|
|
@ -1519,6 +1546,7 @@
|
|||
"profile_drawer_client_out_of_date_minor": "Sovelluksen mobiiliversio on vanhentunut. Päivitä viimeisimpään versioon.",
|
||||
"profile_drawer_client_server_up_to_date": "Asiakasohjelma ja palvelin ovat ajan tasalla",
|
||||
"profile_drawer_github": "GitHub",
|
||||
"profile_drawer_readonly_mode": "Muokkaus on estetty. Paina käyttäjäkuvaketta pitkään palataksesi muokkaustilaan.",
|
||||
"profile_drawer_server_out_of_date_major": "Palvelimen ohjelmistoversio on vanhentunut. Päivitä viimeisimpään merkittävään versioon.",
|
||||
"profile_drawer_server_out_of_date_minor": "Palvelimen ohjelmistoversio on vanhentunut. Päivitä viimeisimpään versioon.",
|
||||
"profile_image_of_user": "Käyttäjän {user} profiilikuva",
|
||||
|
|
@ -1557,6 +1585,7 @@
|
|||
"purchase_server_description_2": "Tukijan tila",
|
||||
"purchase_server_title": "Palvelin",
|
||||
"purchase_settings_server_activated": "Palvelimen tuoteavainta hallinnoi ylläpitäjä",
|
||||
"query_asset_id": "Kysy sisällön ID:tä",
|
||||
"queue_status": "Jonossa {count}/{total}",
|
||||
"rating": "Tähtiarvostelu",
|
||||
"rating_clear": "Tyhjennä arvostelu",
|
||||
|
|
@ -1564,6 +1593,9 @@
|
|||
"rating_description": "Näytä EXIF-arvosana lisätietopaneelissa",
|
||||
"reaction_options": "Reaktioasetukset",
|
||||
"read_changelog": "Lue muutosloki",
|
||||
"readonly_mode_disabled": "Muokkaustila päällä",
|
||||
"readonly_mode_enabled": "Muokkaustila pois päältä",
|
||||
"ready_for_upload": "Valmis lähetystä varten",
|
||||
"reassign": "Määritä uudelleen",
|
||||
"reassigned_assets_to_existing_person": "Uudelleen määritetty {count, plural, one {# kohde} other {# kohdetta}} {name, select, null {olemassa olevalle henkilölle} other {{name}}}",
|
||||
"reassigned_assets_to_new_person": "Määritetty {count, plural, one {# media} other {# mediaa}} uudelle henkilölle",
|
||||
|
|
@ -1588,6 +1620,7 @@
|
|||
"regenerating_thumbnails": "Regeneroidaan pikkukuvia",
|
||||
"remote": "Etä",
|
||||
"remote_assets": "Etäkohteet",
|
||||
"remote_media_summary": "Yhteenveto etänä olevasta mediasta",
|
||||
"remove": "Poista",
|
||||
"remove_assets_album_confirmation": "Haluatko varmasti poistaa {count, plural, one {# median} other {# mediaa}} albumista?",
|
||||
"remove_assets_shared_link_confirmation": "Haluatko varmasti poistaa {count, plural, one {# median} other {# mediaa}} tästä jakolinkistä?",
|
||||
|
|
@ -1640,6 +1673,7 @@
|
|||
"restore_user": "Palauta käyttäjä",
|
||||
"restored_asset": "Palautettu media",
|
||||
"resume": "Jatka",
|
||||
"resume_paused_jobs": "Jatka {count, plural, one {# paused job} other {# paused jobs}}",
|
||||
"retry_upload": "Yritä latausta uudelleen",
|
||||
"review_duplicates": "Tarkastele kaksoiskappaleita",
|
||||
"review_large_files": "Tarkista suuret tiedostot",
|
||||
|
|
@ -1704,7 +1738,7 @@
|
|||
"search_places": "Etsi paikkoja",
|
||||
"search_rating": "Hae luokituksen mukaan...",
|
||||
"search_result_page_new_search_hint": "Uusi haku",
|
||||
"search_settings": "Hakuasetukset",
|
||||
"search_settings": "Etsi asetuksia",
|
||||
"search_state": "Etsi maakuntaa...",
|
||||
"search_suggestion_list_smart_search_hint_1": "Älykäs haku on oletuksena käytössä. Käytä metatietojen etsimiseen syntaksia ",
|
||||
"search_suggestion_list_smart_search_hint_2": "m:hakusana",
|
||||
|
|
@ -1716,7 +1750,7 @@
|
|||
"second": "Toinen",
|
||||
"see_all_people": "Näytä kaikki henkilöt",
|
||||
"select": "Valitse",
|
||||
"select_album_cover": "Valitse albmin kansi",
|
||||
"select_album_cover": "Valitse albumin kansi",
|
||||
"select_all": "Valitse kaikki",
|
||||
"select_all_duplicates": "Valitse kaikki kaksoiskappaleet",
|
||||
"select_all_in": "Valitse kaikki {group}",
|
||||
|
|
@ -1733,6 +1767,7 @@
|
|||
"select_user_for_sharing_page_err_album": "Albumin luonti epäonnistui",
|
||||
"selected": "Valittu",
|
||||
"selected_count": "{count, plural, other {# valittu}}",
|
||||
"selected_gps_coordinates": "Valitut GPS-koordinaatit",
|
||||
"send_message": "Lähetä viesti",
|
||||
"send_welcome_email": "Lähetä tervetuloviesti",
|
||||
"server_endpoint": "Palvelinosoite",
|
||||
|
|
@ -1774,7 +1809,7 @@
|
|||
"setting_video_viewer_original_video_subtitle": "Kun toistat videota palvelimelta, toista alkuperäinen, vaikka transkoodattu versio olisi saatavilla. Tämä voi johtaa puskurointiin. Paikalliset videot toistetaan aina alkuperäislaadulla.",
|
||||
"setting_video_viewer_original_video_title": "Pakota alkuperäinen video",
|
||||
"settings": "Asetukset",
|
||||
"settings_require_restart": "Käynnistä Immich uudelleen ottaaksesti tämän asetuksen käyttöön",
|
||||
"settings_require_restart": "Käynnistä Immich uudelleen ottaaksesi tämä asetus käyttöön",
|
||||
"settings_saved": "Asetukset tallennettu",
|
||||
"setup_pin_code": "Määritä PIN-koodi",
|
||||
"share": "Jaa",
|
||||
|
|
@ -1840,7 +1875,7 @@
|
|||
"sharing_sidebar_description": "Näytä jakamislinkki sivupalkissa",
|
||||
"sharing_silver_appbar_create_shared_album": "Luo jaettu albumi",
|
||||
"sharing_silver_appbar_share_partner": "Jaa kumppanille",
|
||||
"shift_to_permanent_delete": "Paina ⇧ poistaaksesi median pysyvästi",
|
||||
"shift_to_permanent_delete": "Paina ⇧ poistaaksesi media pysyvästi",
|
||||
"show_album_options": "Näytä albumin asetukset",
|
||||
"show_albums": "Näytä albumit",
|
||||
"show_all_people": "Näytä kaikki henkilöt",
|
||||
|
|
@ -1861,6 +1896,7 @@
|
|||
"show_slideshow_transition": "Näytä diaesitys siirtymä",
|
||||
"show_supporter_badge": "Kannattajan merkki",
|
||||
"show_supporter_badge_description": "Näytä kannattajan merkki",
|
||||
"show_text_search_menu": "Näytä tekstihakuvalikko",
|
||||
"shuffle": "Sekoita",
|
||||
"sidebar": "Sivupalkki",
|
||||
"sidebar_display_description": "Näytä linkki näkymään sivupalkissa",
|
||||
|
|
@ -1891,6 +1927,7 @@
|
|||
"stacktrace": "Vianetsintätiedot",
|
||||
"start": "Aloita",
|
||||
"start_date": "Alkupäivä",
|
||||
"start_date_before_end_date": "Aloituspäivämäärän pitää olla ennen lopetuspäivämäärää",
|
||||
"state": "Maakunta",
|
||||
"status": "Tila",
|
||||
"stop_casting": "Lopeta suoratoisto",
|
||||
|
|
@ -1915,6 +1952,8 @@
|
|||
"sync_albums_manual_subtitle": "Synkronoi kaikki ladatut videot ja valokuvat valittuihin varmuuskopioalbumeihin",
|
||||
"sync_local": "Synkronoi paikallinen",
|
||||
"sync_remote": "Synkronoi etä",
|
||||
"sync_status": "Synkronoinnin status",
|
||||
"sync_status_subtitle": "Näytä ja hallinnoi synkronointijärjestelmää",
|
||||
"sync_upload_album_setting_subtitle": "Luo ja lataa valokuvasi ja videosi valittuihin albumeihin Immichissä",
|
||||
"tag": "Tunniste",
|
||||
"tag_assets": "Lisää tunnisteita",
|
||||
|
|
@ -1952,7 +1991,9 @@
|
|||
"to_change_password": "Vaihda salasana",
|
||||
"to_favorite": "Aseta suosikiksi",
|
||||
"to_login": "Kirjaudu sisään",
|
||||
"to_multi_select": "usean valitsemiseksi",
|
||||
"to_parent": "Siirry vanhempaan",
|
||||
"to_select": "valitsemiseksi",
|
||||
"to_trash": "Roskakoriin",
|
||||
"toggle_settings": "Määritä asetukset",
|
||||
"total": "Yhteensä",
|
||||
|
|
@ -1960,7 +2001,7 @@
|
|||
"trash": "Roskakori",
|
||||
"trash_action_prompt": "{count} siirretty roskakoriin",
|
||||
"trash_all": "Vie kaikki roskakoriin",
|
||||
"trash_count": "Roskakori {count, number}",
|
||||
"trash_count": "Vie {count, number} roskakoriin",
|
||||
"trash_delete_asset": "Poista / vie roskakoriin",
|
||||
"trash_emptied": "Roskakori tyhjennetty",
|
||||
"trash_no_results_message": "Roskakorissa olevat kuvat ja videot näytetään täällä.",
|
||||
|
|
@ -1972,6 +2013,7 @@
|
|||
"trash_page_select_assets_btn": "Valitse kohteet",
|
||||
"trash_page_title": "Roskakori ({count})",
|
||||
"trashed_items_will_be_permanently_deleted_after": "Roskakorin kohteet poistetaan pysyvästi {days, plural, one {# päivän} other {# päivän}} päästä.",
|
||||
"troubleshoot": "Vianetsintä",
|
||||
"type": "Tyyppi",
|
||||
"unable_to_change_pin_code": "PIN-koodin vaihtaminen epäonnistui",
|
||||
"unable_to_setup_pin_code": "PIN-koodin määrittäminen epäonnistui",
|
||||
|
|
@ -2002,6 +2044,7 @@
|
|||
"unstacked_assets_count": "Poistettu pinosta {count, plural, one {# kohde} other {# kohdetta}}",
|
||||
"untagged": "Ilman tunnistetta",
|
||||
"up_next": "Seuraavaksi",
|
||||
"update_location_action_prompt": "Päivitä {count} kohteen sijaintia:",
|
||||
"updated_at": "Päivitetty",
|
||||
"updated_password": "Salasana päivitetty",
|
||||
"upload": "Siirrä palvelimelle",
|
||||
|
|
@ -2068,6 +2111,7 @@
|
|||
"view_next_asset": "Näytä seuraava",
|
||||
"view_previous_asset": "Näytä edellinen",
|
||||
"view_qr_code": "Näytä QR-koodi",
|
||||
"view_similar_photos": "Näytä samankaltaiset kuvat",
|
||||
"view_stack": "Näytä pinona",
|
||||
"view_user": "Näytä käyttäjä",
|
||||
"viewer_remove_from_stack": "Poista pinosta",
|
||||
|
|
@ -2086,5 +2130,6 @@
|
|||
"yes": "Kyllä",
|
||||
"you_dont_have_any_shared_links": "Sinulla ei ole jaettuja linkkejä",
|
||||
"your_wifi_name": "Wi-Fi-verkkosi nimi",
|
||||
"zoom_image": "Zoomaa kuvaa"
|
||||
"zoom_image": "Zoomaa kuvaa",
|
||||
"zoom_to_bounds": "Zoomaa reunoihin"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
"add_to_albums": "Ajouter aux albums",
|
||||
"add_to_albums_count": "Ajouter aux albums ({count})",
|
||||
"add_to_shared_album": "Ajouter à l'album partagé",
|
||||
"add_upload_to_stack": "Ajouter les éléments téléversés à la pile",
|
||||
"add_url": "Ajouter l'URL",
|
||||
"added_to_archive": "Ajouté à l'archive",
|
||||
"added_to_favorites": "Ajouté aux favoris",
|
||||
|
|
@ -599,8 +600,8 @@
|
|||
"backup_controller_page_turn_on": "Activer la sauvegarde au premier plan",
|
||||
"backup_controller_page_uploading_file_info": "Envoi des informations du fichier",
|
||||
"backup_err_only_album": "Impossible de retirer le seul album",
|
||||
"backup_error_sync_failed": "Échec de la synchronisation. Impossible de démarrer la sauvegarde.",
|
||||
"backup_info_card_assets": "éléments",
|
||||
"backup_error_sync_failed": "Échec de la synchronisation. Impossible d'exécuter la sauvegarde.",
|
||||
"backup_info_card_assets": "médias",
|
||||
"backup_manual_cancelled": "Annulé",
|
||||
"backup_manual_in_progress": "Envoi déjà en cours. Réessayez plus tard",
|
||||
"backup_manual_success": "Succès",
|
||||
|
|
|
|||
635
i18n/gl.json
25
i18n/he.json
|
|
@ -15,7 +15,7 @@
|
|||
"add_a_name": "הוספת שם",
|
||||
"add_a_title": "הוספת כותרת",
|
||||
"add_birthday": "הוספת יום הולדת",
|
||||
"add_endpoint": "הוסף נקודת קצה",
|
||||
"add_endpoint": "הוסף כתובת URL",
|
||||
"add_exclusion_pattern": "הוספת דפוס החרגה",
|
||||
"add_import_path": "הוספת נתיב יבוא",
|
||||
"add_location": "הוספת מיקום",
|
||||
|
|
@ -28,9 +28,10 @@
|
|||
"add_to_album": "הוספה לאלבום",
|
||||
"add_to_album_bottom_sheet_added": "נוסף ל {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "כבר ב {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "לא ניתן היה להוסיף חלק מהקבצים המקומיים לאלבום",
|
||||
"add_to_album_toggle": "החלפת מצב בחירה עבור {album}",
|
||||
"add_to_albums": "הוספה לאלבומים",
|
||||
"add_to_albums_count": "Add to albums ({count})",
|
||||
"add_to_albums_count": "הוסף ({count}) לאלבום",
|
||||
"add_to_shared_album": "הוספה לאלבום משותף",
|
||||
"add_url": "הוספת קישור",
|
||||
"added_to_archive": "נוסף לארכיון",
|
||||
|
|
@ -403,7 +404,7 @@
|
|||
"advanced_settings_proxy_headers_title": "כותרות פרוקסי",
|
||||
"advanced_settings_readonly_mode_subtitle": "מאפשר את מצב לקריאה בלבד בו התמונות ניתנות לצפייה בלבד, דברים כמו בחירת תמונות מרובות, שיתוף, שידור, מחיקה הם כולם מושבתים. אפשר/השבת מצב לקריאה בלבד באמצעות יצגן המשתמש מהמסך הראשי",
|
||||
"advanced_settings_readonly_mode_title": "מצב לקריאה בלבד",
|
||||
"advanced_settings_self_signed_ssl_subtitle": "מדלג על אימות תעודת SSL עבור נקודת הקצה של השרת. דרוש עבור תעודות בחתימה עצמית.",
|
||||
"advanced_settings_self_signed_ssl_subtitle": "מדלג על אימות תעודת SSL עבור כתובת URL של השרת. דרוש עבור תעודות בחתימה עצמית.",
|
||||
"advanced_settings_self_signed_ssl_title": "התר תעודות SSL בחתימה עצמית",
|
||||
"advanced_settings_sync_remote_deletions_subtitle": "מחק או שחזר תמונה במכשיר זה באופן אוטומטי כאשר פעולה זו נעשית בדפדפן",
|
||||
"advanced_settings_sync_remote_deletions_title": "סנכרן מחיקות שבוצעו במכשירים אחרים [נסיוני]",
|
||||
|
|
@ -591,13 +592,14 @@
|
|||
"backup_controller_page_start_backup": "התחל גיבוי",
|
||||
"backup_controller_page_status_off": "גיבוי חזית אוטומטי כבוי",
|
||||
"backup_controller_page_status_on": "גיבוי חזית אוטומטי מופעל",
|
||||
"backup_controller_page_storage_format": "{used}מתוך {total} בשימוש",
|
||||
"backup_controller_page_storage_format": "{used} מתוך {total} בשימוש",
|
||||
"backup_controller_page_to_backup": "אלבומים לגבות",
|
||||
"backup_controller_page_total_sub": "כל התמונות והסרטונים הייחודיים מאלבומים שנבחרו",
|
||||
"backup_controller_page_turn_off": "כיבוי גיבוי חזית",
|
||||
"backup_controller_page_turn_on": "הפעל גיבוי חזית",
|
||||
"backup_controller_page_uploading_file_info": "מעלה מידע על הקובץ",
|
||||
"backup_err_only_album": "לא ניתן להסיר את האלבום היחיד",
|
||||
"backup_error_sync_failed": "הסינכרון נכשל. לא ניתן להשלים את הגיבוי.",
|
||||
"backup_info_card_assets": "תמונות",
|
||||
"backup_manual_cancelled": "בוטל",
|
||||
"backup_manual_in_progress": "העלאה כבר בתהליך. נסה אחרי זמן מה",
|
||||
|
|
@ -753,6 +755,7 @@
|
|||
"create_user": "צור משתמש",
|
||||
"created": "נוצר",
|
||||
"created_at": "נוצר",
|
||||
"creating_linked_albums": "יוצר אלבומים מקושרים...",
|
||||
"crop": "חתוך",
|
||||
"curated_object_page_title": "דברים",
|
||||
"current_device": "מכשיר נוכחי",
|
||||
|
|
@ -1258,7 +1261,7 @@
|
|||
"login_form_back_button_text": "חזרה",
|
||||
"login_form_email_hint": "yourmail@email.com",
|
||||
"login_form_endpoint_hint": "http://your-server-ip:port",
|
||||
"login_form_endpoint_url": "כתובת נקודת קצה השרת",
|
||||
"login_form_endpoint_url": "כתובת URL של השרת",
|
||||
"login_form_err_http": "נא לציין //:http או //:https",
|
||||
"login_form_err_invalid_email": "דוא\"ל שגוי",
|
||||
"login_form_err_invalid_url": "כתובת לא חוקית",
|
||||
|
|
@ -1364,7 +1367,7 @@
|
|||
"network_requirements": "דרישות רשת",
|
||||
"network_requirements_updated": "דרישות הרשת השתנו, תור הגיבוי אופס",
|
||||
"networking_settings": "רשת",
|
||||
"networking_subtitle": "ניהול הגדרות נקודת קצה שרת",
|
||||
"networking_subtitle": "ניהול הגדרות כתובת URL של השרת",
|
||||
"never": "אף פעם",
|
||||
"new_album": "אלבום חדש",
|
||||
"new_api_key": "מפתח API חדש",
|
||||
|
|
@ -1500,7 +1503,7 @@
|
|||
"permission_onboarding_permission_limited": "הרשאה מוגבלת. כדי לתת ליישום לגבות ולנהל את כל אוסף הגלריה שלך, הענק הרשאה לתמונות וסרטונים בהגדרות.",
|
||||
"permission_onboarding_request": "היישום דורש הרשאה כדי לראות את התמונות והסרטונים שלך.",
|
||||
"person": "אדם",
|
||||
"person_age_months": "בגיל {months, plural, one {חודש #} other {# חודשים}}",
|
||||
"person_age_months": "{months, plural, one {חודש #} other {# חודשים}}",
|
||||
"person_age_year_months": "בגיל שנה ו{months, plural, one {חודש #} other {# חודשים}}",
|
||||
"person_age_years": "בגיל {years, plural, other {# שנים}}",
|
||||
"person_birthdate": "נולד בתאריך {date}",
|
||||
|
|
@ -1767,7 +1770,7 @@
|
|||
"selected_gps_coordinates": "קואורדינטות GPS שנבחרו",
|
||||
"send_message": "שלח הודעה",
|
||||
"send_welcome_email": "שלח דוא\"ל קבלת פנים",
|
||||
"server_endpoint": "נקודת קצה שרת",
|
||||
"server_endpoint": "כתובת URL של השרת",
|
||||
"server_info_box_app_version": "גרסת יישום",
|
||||
"server_info_box_server_url": "כתובת שרת",
|
||||
"server_offline": "השרת מנותק",
|
||||
|
|
@ -1948,8 +1951,8 @@
|
|||
"sync_albums": "סנכרן אלבומים",
|
||||
"sync_albums_manual_subtitle": "סנכרן את כל הסרטונים והתמונות שהועלו לאלבומי הגיבוי שנבחרו",
|
||||
"sync_local": "סנכרן מקומי",
|
||||
"sync_remote": "סנכרן נקודת קצה מרוחקת",
|
||||
"sync_status": "סנכרן מצב",
|
||||
"sync_remote": "סנכרן מהשרת",
|
||||
"sync_status": "סטטוס סנכרון",
|
||||
"sync_status_subtitle": "הצג ונהל את מערכת הסנכרון",
|
||||
"sync_upload_album_setting_subtitle": "צור והעלה תמונות וסרטונים שלך לאלבומים שנבחרו ביישום",
|
||||
"tag": "תג",
|
||||
|
|
@ -2084,7 +2087,7 @@
|
|||
"users_added_to_album_count": "נוספו {count, plural, one {משתמש #} other {# משתמשים}} לאלבום",
|
||||
"utilities": "כלים",
|
||||
"validate": "לאמת",
|
||||
"validate_endpoint_error": "נא להזין כתובת תקנית",
|
||||
"validate_endpoint_error": "נא להזין כתובת URL תקנית",
|
||||
"variables": "משתנים",
|
||||
"version": "גרסה",
|
||||
"version_announcement_closing": "החבר שלך, אלכס",
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
"add_to_album": "एल्बम में डालें",
|
||||
"add_to_album_bottom_sheet_added": "{album} में डालें",
|
||||
"add_to_album_bottom_sheet_already_exists": "{album} में पहले से है",
|
||||
"add_to_albums": "एकाधिक एल्बम में डाले",
|
||||
"add_to_shared_album": "शेयर किए गए एल्बम में डालें",
|
||||
"add_url": "URL डालें",
|
||||
"added_to_archive": "संग्रहीत कर दिया गया है",
|
||||
|
|
|
|||
189
i18n/hr.json
|
|
@ -15,9 +15,9 @@
|
|||
"add_a_name": "Dodaj ime",
|
||||
"add_a_title": "Dodaj naslov",
|
||||
"add_birthday": "Dodaj rođendan",
|
||||
"add_endpoint": "Dodaj krajnju točnu",
|
||||
"add_endpoint": "Dodaj krajnju točku",
|
||||
"add_exclusion_pattern": "Dodaj uzorak izuzimanja",
|
||||
"add_import_path": "Dodaj import folder",
|
||||
"add_import_path": "Dodaj putanju uvoza",
|
||||
"add_location": "Dodaj lokaciju",
|
||||
"add_more_users": "Dodaj još korisnika",
|
||||
"add_partner": "Dodaj partnera",
|
||||
|
|
@ -28,35 +28,37 @@
|
|||
"add_to_album": "Dodaj u album",
|
||||
"add_to_album_bottom_sheet_added": "Dodano u {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Već u {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Neke lokalne stavke nije moguće dodati u album",
|
||||
"add_to_album_toggle": "Uključi/isključi odabir za {album}",
|
||||
"add_to_albums": "Dodaj u albume",
|
||||
"add_to_albums_count": "Dodaj u albume ({count})",
|
||||
"add_to_shared_album": "Dodaj u dijeljeni album",
|
||||
"add_upload_to_stack": "Dodaj preneseno u skup",
|
||||
"add_url": "Dodaj URL",
|
||||
"added_to_archive": "Dodano u arhivu",
|
||||
"added_to_favorites": "Dodano u omiljeno",
|
||||
"added_to_favorites_count": "Dodano {count, number} u omiljeno",
|
||||
"admin": {
|
||||
"add_exclusion_pattern_description": "Dodajte uzorke izuzimanja. Globiranje pomoću *, ** i ? je podržano. Za ignoriranje svih datoteka u bilo kojem direktoriju pod nazivom \"Raw\", koristite \"**/Raw/**\". Da biste zanemarili sve datoteke koje završavaju na \".tif\", koristite \"**/*.tif\". Da biste zanemarili apsolutni put, koristite \"/path/to/ignore/**\".",
|
||||
"add_exclusion_pattern_description": "Dodajte uzorke izuzimanja. Globiranje pomoću *, ** i ? je podržano. Za ignoriranje svih datoteka u bilo kojem direktoriju pod nazivom \"Raw\", koristite \"**/Raw/**\". Kako biste ignorirali sve datoteke koje završavaju na \".tif\", koristite \"**/*.tif\". Kako biste ignorirali apsolutnu putanju, koristite \"/putanja/za/ignoriranje/**\".",
|
||||
"admin_user": "Administrator",
|
||||
"asset_offline_description": "Ovo sredstvo vanjske knjižnice više nije pronađeno na disku i premješteno je u smeće. Ako je datoteka premještena unutar biblioteke, provjerite svoju vremensku traku za novo odgovarajuće sredstvo. Da biste vratili ovo sredstvo, provjerite može li Immich pristupiti donjoj stazi datoteke i skenirajte biblioteku.",
|
||||
"authentication_settings": "Postavke autentikacije",
|
||||
"authentication_settings_description": "Uredi lozinku, OAuth, i druge postavke autentikacije",
|
||||
"authentication_settings_disable_all": "Jeste li sigurni da želite onemogućenit sve načine prijave? Prijava će biti potpuno onemogućena.",
|
||||
"authentication_settings_reenable": "Za ponovno uključivanje upotrijebite <link>naredbu poslužitelja</link>.",
|
||||
"asset_offline_description": "Ova stavka vanjske biblioteke nije pronađena na disku i premještena je u smeće. Ako je datoteka premještena unutar biblioteke, provjerite svoju vremensku traku za novu odgovarajuću stavku. Da biste vratili ovu stavku, provjerite može li Immich pristupiti donjoj putanji datoteke i skenirajte biblioteku.",
|
||||
"authentication_settings": "Postavke autentifikacije",
|
||||
"authentication_settings_description": "Upravljajte lozinkom, OAuthom i drugim postavkama autentifikacije",
|
||||
"authentication_settings_disable_all": "Jeste li sigurni da želite onemogućiti sve načine prijave? Prijava će biti potpuno onemogućena.",
|
||||
"authentication_settings_reenable": "Za ponovno uključivanje upotrijebite <link>naredbu servera</link>.",
|
||||
"background_task_job": "Pozadinski zadaci",
|
||||
"backup_database": "Kreiraj sigurnosnu kopiju baze podataka",
|
||||
"backup_database_enable_description": "Omogućite sigurnosne kopije baze podataka",
|
||||
"backup_keep_last_amount": "Količina prethodnih sigurnosnih kopija za čuvanje",
|
||||
"backup_onboarding_1_description": "kopija izvan lokacije u oblaku ili na drugoj fizičkoj lokaciji.",
|
||||
"backup_onboarding_2_description": "lokalne kopije na različitim uređajima. To uključuje glavne datoteke i sigurnosnu kopiju tih datoteka lokalno.",
|
||||
"backup_onboarding_2_description": "lokalne kopije na različitim uređajima. To uključuje glavne datoteke i lokalnu sigurnosnu kopiju tih datoteka.",
|
||||
"backup_onboarding_3_description": "ukupne kopije vaših podataka, uključujući izvorne datoteke. To uključuje 1 kopiju izvan lokacije i 2 lokalne kopije.",
|
||||
"backup_onboarding_description": "Preporučuje se <backblaze-link>3-2-1 strategija sigurnosnog kopiranja</backblaze-link> za zaštitu vaših podataka. Trebali biste čuvati kopije svojih prenesenih fotografija/videozapisa kao i Immich bazu podataka za sveobuhvatno rješenje sigurnosne kopije.",
|
||||
"backup_onboarding_footer": "Za više informacija o sigurnosnom kopiranju Immich, molimo pogledajte <link>dokumentaciju</link>.",
|
||||
"backup_onboarding_footer": "Za više informacija o sigurnosnom kopiranju Immicha, molimo pogledajte <link>dokumentaciju</link>.",
|
||||
"backup_onboarding_parts_title": "3-2-1 sigurnosna kopija uključuje:",
|
||||
"backup_onboarding_title": "Sigurnosne kopije",
|
||||
"backup_settings": "Postavke sigurnosne kopije",
|
||||
"backup_settings_description": "Upravljajte postavkama izvoza baze podataka.",
|
||||
"backup_settings": "Postavke sigurnosne kopije baze podataka",
|
||||
"backup_settings_description": "Upravljajte postavkama sigurnosne kopije baze podataka.",
|
||||
"cleared_jobs": "Izbrisani poslovi za: {job}",
|
||||
"config_set_by_file": "Konfiguracija je trenutno postavljena konfiguracijskom datotekom",
|
||||
"confirm_delete_library": "Jeste li sigurni da želite izbrisati biblioteku {library}?",
|
||||
|
|
@ -65,23 +67,23 @@
|
|||
"confirm_reprocess_all_faces": "Jeste li sigurni da želite ponovno obraditi sva lica? Ovo će također obrisati imenovane osobe.",
|
||||
"confirm_user_password_reset": "Jeste li sigurni da želite poništiti lozinku korisnika {user}?",
|
||||
"confirm_user_pin_code_reset": "Jeste li sigurni da želite resetirati PIN korisnika {user}?",
|
||||
"create_job": "Izradi zadatak",
|
||||
"cron_expression": "Cron izraz (expression)",
|
||||
"create_job": "Stvori posao",
|
||||
"cron_expression": "Cron izraz",
|
||||
"cron_expression_description": "Postavite interval skeniranja koristeći cron format. Za više informacija pogledajte npr. <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "Cron unaprijed postavljene postavke izraza",
|
||||
"cron_expression_presets": "Unaprijed postavljene postavke cron izraza",
|
||||
"disable_login": "Onemogući prijavu",
|
||||
"duplicate_detection_job_description": "Pokrenite strojno učenje na materijalima kako biste otkrili slične slike. Oslanja se na Pametno Pretraživanje",
|
||||
"exclusion_pattern_description": "Uzorci izuzimanja omogućuju vam da zanemarite datoteke i mape prilikom skeniranja svoje biblioteke. Ovo je korisno ako imate mape koje sadrže datoteke koje ne želite uvesti, kao što su RAW datoteke.",
|
||||
"external_library_management": "Upravljanje vanjskom knjižnicom",
|
||||
"duplicate_detection_job_description": "Pokrenite strojno učenje na stavkama kako biste otkrili slične slike. Oslanja se na Pametno pretraživanje",
|
||||
"exclusion_pattern_description": "Uzorci izuzimanja omogućuju vam da ignorirate datoteke i mape prilikom skeniranja svoje biblioteke. Ovo je korisno ako imate mape koje sadrže datoteke koje ne želite uvesti, kao što su RAW datoteke.",
|
||||
"external_library_management": "Upravljanje vanjskom bibliotekom",
|
||||
"face_detection": "Detekcija lica",
|
||||
"face_detection_description": "Prepoznajte lica u sredstvima pomoću strojnog učenja. Za videozapise u obzir se uzima samo minijaturni prikaz. \"Sve\" (ponovno) obrađuje svu imovinu. \"Nedostaje\" stavlja u red čekanja sredstva koja još nisu obrađena. Otkrivena lica bit će stavljena u red čekanja za prepoznavanje lica nakon dovršetka prepoznavanja lica, grupirajući ih u postojeće ili nove osobe.",
|
||||
"facial_recognition_job_description": "Grupirajte otkrivena lica u osobe. Ovaj se korak pokreće nakon dovršetka prepoznavanja lica. \"Sve\" (ponovno) grupira sva lica. \"Nedostajuća\" lica u redovima kojima nije dodijeljena osoba.",
|
||||
"face_detection_description": "Detektirajte lica u stavkama pomoću strojnog učenja. Za videozapise se uzima u obzir samo sličica. \"Osvježi\" (ponovno) obrađuje sve stavke. \"Poništi\" dodatno briše sve trenutne podatke o licu. \"Nedostaje\" stavlja u red čekanja stavke koje još nisu obrađene. Detektirana lica bit će stavljena u red čekanja za Prepoznavanje lica nakon što se dovrši Detekcija lica, grupirajući ih u postojeće ili nove osobe.",
|
||||
"facial_recognition_job_description": "Grupirajte otkrivena lica u osobe. Ovaj korak se izvršava nakon što je Detekcija lica dovršena. \"Resetiraj\" (ponovno) grupira sva lica. \"Nedostaje\" stavlja u red lica kojima nije dodijeljena osoba.",
|
||||
"failed_job_command": "Naredba {command} nije uspjela za posao: {job}",
|
||||
"force_delete_user_warning": "UPOZORENJE: Ovo će odmah ukloniti korisnika i sve pripadajuće podatke. Ovo se ne može poništiti i datoteke se ne mogu vratiti.",
|
||||
"force_delete_user_warning": "UPOZORENJE: Ovo će odmah ukloniti korisnika i sve pripadajuće stavke. Ovo se ne može poništiti i datoteke se ne mogu vratiti.",
|
||||
"image_format": "Format",
|
||||
"image_format_description": "WebP proizvodi manje datoteke od JPEG-a, ali se sporije kodira.",
|
||||
"image_fullsize_description": "Slika pune veličine bez meta podataka, koristi se prilikom zumiranja",
|
||||
"image_fullsize_enabled": "Omogući generiranje slike pune veličine",
|
||||
"image_fullsize_description": "Slika pune veličine bez metapodataka, koristi se prilikom zumiranja",
|
||||
"image_fullsize_enabled": "Omogući generiranje slika pune veličine",
|
||||
"image_fullsize_enabled_description": "Generiraj sliku pune veličine za formate koji nisu prilagođeni webu. Kada je opcija \"Preferiraj ugrađeni pregled\" omogućena, ugrađeni pregledi koriste se izravno bez konverzije. Ne utječe na formate prilagođene webu kao što je JPEG.",
|
||||
"image_fullsize_quality_description": "Kvaliteta slike pune veličine od 1 do 100. Veća vrijednost znači bolja kvaliteta, ali stvara veće datoteke.",
|
||||
"image_fullsize_title": "Postavke slike pune veličine",
|
||||
|
|
@ -89,7 +91,7 @@
|
|||
"image_prefer_embedded_preview_setting_description": "Koristite ugrađene preglede u RAW fotografije kao ulaz za obradu slike kada su dostupni. To može proizvesti preciznije boje za neke slike, ali kvaliteta pregleda ovisi o kameri i slika može imati više artifakta kompresije.",
|
||||
"image_prefer_wide_gamut": "Preferirajte široku gamu",
|
||||
"image_prefer_wide_gamut_setting_description": "Koristite Display P3 za sličice. Ovo bolje čuva živost slika sa širokim prostorima boja, ali slike mogu izgledati drugačije na starim uređajima sa starom verzijom preglednika. sRGB slike čuvaju se kao sRGB kako bi se izbjegle promjene boja.",
|
||||
"image_preview_description": "Slika srednje veličine s ogoljenim metapodacima, koristi se prilikom pregledavanja jednog sredstva i za strojno učenje",
|
||||
"image_preview_description": "Slika srednje veličine s uklonjenim metapodacima, koristi se prilikom pregledavanja jedne stavke i za strojno učenje",
|
||||
"image_preview_quality_description": "Kvaliteta pregleda od 1-100. Više je bolje, ali proizvodi veće datoteke i može smanjiti odziv aplikacije. Postavljanje niske vrijednosti može utjecati na kvalitetu strojnog učenja.",
|
||||
"image_preview_title": "Postavke pregleda",
|
||||
"image_quality": "Kvaliteta",
|
||||
|
|
@ -116,27 +118,31 @@
|
|||
"library_scanning_enable_description": "Omogući periodično skeniranje biblioteke",
|
||||
"library_settings": "Externa biblioteka",
|
||||
"library_settings_description": "Upravljajte postavkama vanjske biblioteke",
|
||||
"library_tasks_description": "Skeniraj eksterne biblioteke za nove i/ili promijenjene resurse",
|
||||
"library_tasks_description": "Skeniraj vanjske biblioteke za nove i/ili promijenjene stavke",
|
||||
"library_watching_enable_description": "Pratite vanjske biblioteke za promjena datoteke",
|
||||
"library_watching_settings": "Gledanje biblioteke (EKSPERIMENTALNO)",
|
||||
"library_watching_settings_description": "Automatsko praćenje promijenjenih datoteke",
|
||||
"logging_enable_description": "Omogući zapisivanje",
|
||||
"logging_level_description": "Kada je omogućeno, koju razinu zapisivanja koristiti.",
|
||||
"logging_settings": "Zapisivanje",
|
||||
"machine_learning_availability_checks": "Provjere dostupnosti",
|
||||
"machine_learning_availability_checks_enabled": "Omogući provjere dostupnosti",
|
||||
"machine_learning_availability_checks_interval": "Provjeri interval",
|
||||
"machine_learning_availability_checks_interval_description": "Interval u milisekundama između provjera dostupnosti",
|
||||
"machine_learning_clip_model": "CLIP model",
|
||||
"machine_learning_clip_model_description": "Naziv CLIP modela navedenog <link>ovdje</link>. Imajte na umu da morate ponovno pokrenuti posao 'Pametno Pretraživanje' za sve slike nakon promjene modela.",
|
||||
"machine_learning_duplicate_detection": "Detekcija Duplikata",
|
||||
"machine_learning_duplicate_detection_enabled": "Omogući detekciju duplikata",
|
||||
"machine_learning_duplicate_detection_enabled_description": "Ako je onemogućeno, potpuno identična sredstva i dalje će biti deduplicirana.",
|
||||
"machine_learning_duplicate_detection_enabled_description": "Ako je onemogućeno, potpuno identične stavke i dalje će biti deduplicirane.",
|
||||
"machine_learning_duplicate_detection_setting_description": "Upotrijebite CLIP ugradnje da biste pronašli vjerojatne duplikate",
|
||||
"machine_learning_enabled": "Uključi strojsko učenje",
|
||||
"machine_learning_enabled_description": "Ukoliko je ovo isključeno, sve funkcije strojnoga učenja biti će isključene bez obzira na postavke ispod.",
|
||||
"machine_learning_facial_recognition": "Detekcija lica",
|
||||
"machine_learning_facial_recognition": "Prepoznavanje lica",
|
||||
"machine_learning_facial_recognition_description": "Detektiraj, prepoznaj i grupiraj lica u fotografijama",
|
||||
"machine_learning_facial_recognition_model": "Model prepoznavanja lica",
|
||||
"machine_learning_facial_recognition_model_description": "Modeli su navedeni silaznim redoslijedom veličine. Veći modeli su sporiji i koriste više memorije, ali daju bolje rezultate. Imajte na umu da morate ponovno pokrenuti posao detekcije lica za sve slike nakon promjene modela.",
|
||||
"machine_learning_facial_recognition_setting": "Omogući prepoznavanje lica",
|
||||
"machine_learning_facial_recognition_setting_description": "Ako je onemogućeno, slike neće biti kodirane za prepoznavanje lica i neće popuniti odjeljak Ljudi na stranici Istraživanje.",
|
||||
"machine_learning_facial_recognition_setting_description": "Ako je onemogućeno, slike neće biti kodirane za prepoznavanje lica i neće popuniti odjeljak Osobe na stranici Istraži.",
|
||||
"machine_learning_max_detection_distance": "Maksimalna udaljenost za detektiranje",
|
||||
"machine_learning_max_detection_distance_description": "Maksimalna udaljenost između dvije slike da bi se smatrale duplikatima, u rasponu od 0,001-0,1. Više vrijednosti otkrit će više duplikata, ali mogu rezultirati netočnim rezultatima.",
|
||||
"machine_learning_max_recognition_distance": "Maksimalna udaljenost za detekciju",
|
||||
|
|
@ -144,7 +150,7 @@
|
|||
"machine_learning_min_detection_score": "Minimalni rezultat otkrivanja",
|
||||
"machine_learning_min_detection_score_description": "Minimalni rezultat pouzdanosti za detektirano lice od 0-1. Niže vrijednosti otkrit će više lica, ali mogu dovesti do lažno pozitivnih rezultata.",
|
||||
"machine_learning_min_recognized_faces": "Minimum prepoznatih lica",
|
||||
"machine_learning_min_recognized_faces_description": "Najmanji broj prepoznatih lica za osobu koja se stvara. Povećanje toga čini prepoznavanje lica preciznijim po cijenu povećanja šanse da lice nije dodijeljeno osobi.",
|
||||
"machine_learning_min_recognized_faces_description": "Najmanji broj prepoznatih lica za osobu koja se stvara. Povećanje toga čini Prepoznavanje lica preciznijim po cijenu povećanja šanse da lice nije dodijeljeno osobi.",
|
||||
"machine_learning_settings": "Postavke strojnog učenja",
|
||||
"machine_learning_settings_description": "Upravljajte značajkama i postavkama strojnog učenja",
|
||||
"machine_learning_smart_search": "Pametna pretraga",
|
||||
|
|
@ -170,21 +176,21 @@
|
|||
"memory_cleanup_job": "Čišćenje memorije",
|
||||
"memory_generate_job": "Generiranje memorije",
|
||||
"metadata_extraction_job": "Izdvoj metapodatke",
|
||||
"metadata_extraction_job_description": "Izdvojite podatke o metapodacima iz svakog sredstva, kao što su GPS, lica i rezolucija",
|
||||
"metadata_extraction_job_description": "Izdvojite metapodatke iz svake stavke, kao što su GPS, lica i rezolucija",
|
||||
"metadata_faces_import_setting": "Omogući uvoz lica",
|
||||
"metadata_faces_import_setting_description": "Uvezite lica iz EXIF podataka slike i sidecar datoteka",
|
||||
"metadata_settings": "Postavke Metapodataka",
|
||||
"metadata_settings_description": "Upravljanje postavkama metapodataka",
|
||||
"migration_job": "Migracija",
|
||||
"migration_job_description": "Premjestite minijature za sredstva i lica u najnoviju strukturu mapa",
|
||||
"migration_job_description": "Premjestite sličice za stavke i lica u najnoviju strukturu mapa",
|
||||
"nightly_tasks_cluster_faces_setting_description": "Pokreni prepoznavanje lica na novootkrivenim licima",
|
||||
"nightly_tasks_cluster_new_faces_setting": "Grupiraj nova lica",
|
||||
"nightly_tasks_database_cleanup_setting": "Zadaci čišćenja baze podataka",
|
||||
"nightly_tasks_database_cleanup_setting_description": "Očisti stare, istekle podatke iz baze podataka",
|
||||
"nightly_tasks_generate_memories_setting": "Generiraj uspomene",
|
||||
"nightly_tasks_generate_memories_setting_description": "Stvori nove uspomene iz sadržaja",
|
||||
"nightly_tasks_generate_memories_setting_description": "Stvori nove uspomene iz stavki",
|
||||
"nightly_tasks_missing_thumbnails_setting": "Generiraj nedostajuće sličice",
|
||||
"nightly_tasks_missing_thumbnails_setting_description": "Stavi u red čekanja sadržaje bez sličica za generiranje sličica",
|
||||
"nightly_tasks_missing_thumbnails_setting_description": "Stavke bez sličica stavi u red čekanja za generiranje sličica",
|
||||
"nightly_tasks_settings": "Postavke noćnih zadataka",
|
||||
"nightly_tasks_settings_description": "Upravljanje noćnim zadacima",
|
||||
"nightly_tasks_start_time_setting": "Vrijeme početka",
|
||||
|
|
@ -193,7 +199,7 @@
|
|||
"nightly_tasks_sync_quota_usage_setting_description": "Ažuriraj korisničku kvotu za pohranu na temelju trenutne potrošnje",
|
||||
"no_paths_added": "Nema dodanih putanja",
|
||||
"no_pattern_added": "Nije dodan uzorak",
|
||||
"note_apply_storage_label_previous_assets": "Napomena: da biste primijenili Oznaku Pohrane na prethodno prenesena sredstva, pokrenite",
|
||||
"note_apply_storage_label_previous_assets": "Napomena: Da biste primijenili Oznaku pohrane na prethodno prenesene stavke, pokrenite",
|
||||
"note_cannot_be_changed_later": "NAPOMENA: Ovo se ne može promijeniti kasnije!",
|
||||
"notification_email_from_address": "Od adrese",
|
||||
"notification_email_from_address_description": "E-mail adresa pošiljatelja, na primjer: \"Immich Photo Server <noreply@example.com>\". Obavezno koristite adresu s koje vam je dopušteno slanje e-pošte.",
|
||||
|
|
@ -260,21 +266,21 @@
|
|||
"sidecar_job": "Sidecar metapodaci",
|
||||
"sidecar_job_description": "Otkrijte ili sinkronizirajte sidecar metapodatke iz datotečnog sustava",
|
||||
"slideshow_duration_description": "Broj sekundi za prikaz svake slike",
|
||||
"smart_search_job_description": "Pokrenite strojno učenje na sredstvima za podršku pametnog pretraživanja",
|
||||
"storage_template_date_time_description": "Vremenska oznaka stvaranja sredstva koristi se za informacije o datumu i vremenu",
|
||||
"smart_search_job_description": "Pokrenite strojno učenje na stavkama za korištenje Pametnog pretraživanja",
|
||||
"storage_template_date_time_description": "Vremenska oznaka stvaranja stavke koristi se za informacije o datumu i vremenu",
|
||||
"storage_template_date_time_sample": "Vrijeme uzorka {date}",
|
||||
"storage_template_enable_description": "Omogući mehanizam predloška za pohranu",
|
||||
"storage_template_hash_verification_enabled": "Omogućena hash provjera",
|
||||
"storage_template_hash_verification_enabled_description": "Omogućuje hash provjeru, nemojte je onemogućiti osim ako niste sigurni u implikacije",
|
||||
"storage_template_migration": "Migracija predloška za pohranu",
|
||||
"storage_template_migration_description": "Primijenite trenutni <link>{template}</link> na prethodno prenesena sredstva",
|
||||
"storage_template_migration_info": "Predložak za pohranu će sve nastavke (ekstenzije) pretvoriti u mala slova. Promjene predloška primjenjivat će se samo na nova sredstva. Za retroaktivnu primjenu predloška na prethodno prenesena sredstva, pokrenite <link>{job}</link>.",
|
||||
"storage_template_migration_description": "Primijenite trenutni <link>{template}</link> na prethodno prenesene stavke",
|
||||
"storage_template_migration_info": "Predložak za pohranu pretvorit će sve datotečne nastavke u mala slova. Promjene predloška primijenit će se samo na nove stavke. Da biste retroaktivno primijenili predložak na prethodno prenesene stavke, pokrenite <link>{job}<link>.",
|
||||
"storage_template_migration_job": "Posao Migracije Predloška Pohrane",
|
||||
"storage_template_more_details": "Za više pojedinosti o ovoj značajci pogledajte <template-link>Predložak pohrane</template-link> i njegove <implications-link>implikacije</implications-link>",
|
||||
"storage_template_onboarding_description_v2": "Kada je omogućena, ova će značajka automatski organizira datoteke prema predlošku koji je definirao korisnik. Za više informacija pogledajte <link>dokumentaciju</link>.",
|
||||
"storage_template_path_length": "Približno ograničenje duljine putanje: <b>{length, number}</b>/{limit, number}",
|
||||
"storage_template_settings": "Predložak pohrane",
|
||||
"storage_template_settings_description": "Upravljajte strukturom mape i nazivom datoteke učitanog sredstva",
|
||||
"storage_template_settings_description": "Upravljajte strukturom mape i nazivom datoteke učitane stavke",
|
||||
"storage_template_user_label": "<code>{label}</code> je korisnička oznaka za pohranu",
|
||||
"system_settings": "Postavke Sustava",
|
||||
"tag_cleanup_job": "Čišćenje oznaka",
|
||||
|
|
@ -292,7 +298,7 @@
|
|||
"theme_settings": "Postavke tema",
|
||||
"theme_settings_description": "Upravljajte prilagodbom Immich web sučelja",
|
||||
"thumbnail_generation_job": "Generirajte sličice",
|
||||
"thumbnail_generation_job_description": "Generirajte velike, male i zamućene sličice za svaki materijal, kao i sličice za svaku osobu",
|
||||
"thumbnail_generation_job_description": "Generirajte velike, male i zamućene sličice za svaku stavku, kao i sličice za svaku osobu",
|
||||
"transcoding_acceleration_api": "API ubrzanja",
|
||||
"transcoding_acceleration_api_description": "API koji će komunicirati s vašim uređajem radi ubrzanja transkodiranja. Ova postavka je 'najveći trud': vratit će se na softversko transkodiranje u slučaju kvara. VP9 može ili ne mora raditi ovisno o vašem hardveru.",
|
||||
"transcoding_acceleration_nvenc": "NVENC (zahtjeva NVIDIA GPU)",
|
||||
|
|
@ -355,20 +361,20 @@
|
|||
"transcoding_video_codec_description": "VP9 ima visoku učinkovitost i web-kompatibilnost, ali treba dulje za transkodiranje. HEVC ima sličnu izvedbu, ali ima slabiju web kompatibilnost. H.264 široko je kompatibilan i brzo se transkodira, ali proizvodi mnogo veće datoteke. AV1 je najučinkovitiji kodek, ali nema podršku na starijim uređajima.",
|
||||
"trash_enabled_description": "Omogućite značajke Smeća",
|
||||
"trash_number_of_days": "Broj dana",
|
||||
"trash_number_of_days_description": "Broj dana za držanje sredstava u smeću prije njihovog trajnog uklanjanja",
|
||||
"trash_number_of_days_description": "Broj dana za čuvanje stavki u smeću prije njihovog trajnog uklanjanja",
|
||||
"trash_settings": "Postavke Smeća",
|
||||
"trash_settings_description": "Upravljanje postavkama smeća",
|
||||
"unlink_all_oauth_accounts": "Odspoji sve OAuth račune",
|
||||
"unlink_all_oauth_accounts_description": "Zapamtite da odspojite sve OAuth račune prije prelaska na novog pružatelja usluge.",
|
||||
"unlink_all_oauth_accounts_prompt": "Jeste li sigurni da želite odspojiti sve OAuth račune? Ovo će resetirati OAuth ID za svakog korisnika i ne može se poništiti.",
|
||||
"user_cleanup_job": "Čišćenje korisnika",
|
||||
"user_delete_delay": "Račun i sredstva korisnika <b>{user}</b> bit će zakazani za trajno brisanje za {delay, plural, one {# day} other {# days}}.",
|
||||
"user_delete_delay": "Račun i stavke korisnika <b>{user}</b> bit će stavljeni u red čekanja trajnog brisanja za {delay, plural, one {# dan} other {# dana}}.",
|
||||
"user_delete_delay_settings": "Brisanje odgode",
|
||||
"user_delete_delay_settings_description": "Broj dana nakon uklanjanja za trajno brisanje korisničkog računa i imovine. Posao brisanja korisnika pokreće se u ponoć kako bi se provjerili korisnici koji su spremni za brisanje. Promjene ove postavke bit će procijenjene pri sljedećem izvršavanju.",
|
||||
"user_delete_immediately": "Račun i sredstva korisnika <b>{user}</b> bit će stavljeni u red čekanja za trajno brisanje <b>odmah</b>.",
|
||||
"user_delete_immediately_checkbox": "Stavite korisnika i imovinu u red za trenutačno brisanje",
|
||||
"user_delete_delay_settings_description": "Broj dana nakon uklanjanja za trajno brisanje korisničkog računa i stavki. Posao brisanja korisnika pokreće se u ponoć kako bi se provjerili korisnici koji su spremni za brisanje. Promjene ove postavke bit će procijenjene pri sljedećem izvršavanju.",
|
||||
"user_delete_immediately": "Račun i stavke korisnika <b>{user}</b> bit će stavljeni u red čekanja za trajno brisanje <b>odmah</b>.",
|
||||
"user_delete_immediately_checkbox": "Stavite korisnika i stavke u red čekanja za trenutno brisanje",
|
||||
"user_details": "Detalji korisnika",
|
||||
"user_management": "Upravljanje Korisnicima",
|
||||
"user_management": "Upravljanje korisnicima",
|
||||
"user_password_has_been_reset": "Korisnička lozinka je poništena:",
|
||||
"user_password_reset_description": "Molimo dostavite privremenu lozinku korisniku i obavijestite ga da će morati promijeniti lozinku pri sljedećoj prijavi.",
|
||||
"user_restore_description": "Račun korisnika <b>{user}</b> bit će vraćen.",
|
||||
|
|
@ -390,13 +396,13 @@
|
|||
"advanced_settings_enable_alternate_media_filter_subtitle": "Koristite ovu opciju za filtriranje medija tijekom sinkronizacije na temelju alternativnih kriterija. Pokušajte ovo samo ako imate problema s aplikacijom koja ne prepoznaje sve albume.",
|
||||
"advanced_settings_enable_alternate_media_filter_title": "[EKSPERIMENTALNO] Koristite alternativni filter za sinkronizaciju albuma na uređaju",
|
||||
"advanced_settings_log_level_title": "Razina zapisivanja: {level}",
|
||||
"advanced_settings_prefer_remote_subtitle": "Neki uređaji sporo učitavaju sličice s lokalnih resursa. Aktivirajte ovu postavku kako biste umjesto toga učitali slike s udaljenih izvora.",
|
||||
"advanced_settings_prefer_remote_subtitle": "Neki uređaji sporo učitavaju sličice s lokalnih stavki. Aktivirajte ovu postavku kako biste umjesto toga učitali slike s udaljenih izvora.",
|
||||
"advanced_settings_prefer_remote_title": "Preferiraj udaljene slike",
|
||||
"advanced_settings_proxy_headers_subtitle": "Definirajte zaglavlja posrednika koja Immich treba slati sa svakim mrežnim zahtjevom.",
|
||||
"advanced_settings_proxy_headers_title": "Proxy zaglavlja",
|
||||
"advanced_settings_self_signed_ssl_subtitle": "Preskoči provjeru SSL certifikata za krajnju točku poslužitelja. Potrebno za samo-potpisane certifikate.",
|
||||
"advanced_settings_self_signed_ssl_title": "Dopusti samo-potpisane SSL certifikate",
|
||||
"advanced_settings_sync_remote_deletions_subtitle": "Automatski izbriši ili obnovi resurs na ovom uređaju kada se ta radnja izvrši na webu",
|
||||
"advanced_settings_sync_remote_deletions_subtitle": "Automatski izbriši ili obnovi stavku na ovom uređaju kada se ta radnja izvrši na webu",
|
||||
"advanced_settings_sync_remote_deletions_title": "Sinkroniziraj udaljena brisanja [EKSPERIMENTALNO]",
|
||||
"advanced_settings_tile_subtitle": "Postavke za napredne korisnike",
|
||||
"advanced_settings_troubleshooting_subtitle": "Omogući dodatne značajke za rješavanje problema",
|
||||
|
|
@ -421,14 +427,15 @@
|
|||
"album_remove_user_confirmation": "Jeste li sigurni da želite ukloniti {user}?",
|
||||
"album_search_not_found": "Nema albuma koji odgovaraju vašem pretraživanju",
|
||||
"album_share_no_users": "Čini se da ste podijelili ovaj album sa svim korisnicima ili nemate nijednog korisnika s kojim biste ga dijelili.",
|
||||
"album_summary": "Sažetak albuma",
|
||||
"album_updated": "Album ažuriran",
|
||||
"album_updated_setting_description": "Primite obavijest e-poštom kada dijeljeni album ima nova sredstva",
|
||||
"album_updated_setting_description": "Primite obavijest e-poštom kada dijeljeni album ima nove stavke",
|
||||
"album_user_left": "Napušten {album}",
|
||||
"album_user_removed": "Uklonjen {user}",
|
||||
"album_viewer_appbar_delete_confirm": "Jeste li sigurni da želite izbrisati ovaj album s vašeg računa?",
|
||||
"album_viewer_appbar_share_err_delete": "Neuspješno brisanje albuma",
|
||||
"album_viewer_appbar_share_err_leave": "Neuspješno napuštanje albuma",
|
||||
"album_viewer_appbar_share_err_remove": "Postoje problemi s uklanjanjem resursa iz albuma",
|
||||
"album_viewer_appbar_share_err_remove": "Postoje problemi s uklanjanjem stavki iz albuma",
|
||||
"album_viewer_appbar_share_err_title": "Neuspješno mijenjanje naslova albuma",
|
||||
"album_viewer_appbar_share_leave": "Napusti album",
|
||||
"album_viewer_appbar_share_to": "Podijeli s",
|
||||
|
|
@ -437,8 +444,8 @@
|
|||
"albums": "Albumi",
|
||||
"albums_count": "{count, plural, one {{count, number} Album} other {{count, number} Albumi}}",
|
||||
"albums_default_sort_order": "Zadani redoslijed sortiranja albuma",
|
||||
"albums_default_sort_order_description": "Početni redoslijed sortiranja elemenata prilikom izrade novih albuma.",
|
||||
"albums_feature_description": "Zbirke resursa koje se mogu dijeliti s drugim korisnicima.",
|
||||
"albums_default_sort_order_description": "Početni redoslijed sortiranja stavki prilikom izrade novih albuma.",
|
||||
"albums_feature_description": "Zbirke stavki koje se mogu dijeliti s drugim korisnicima.",
|
||||
"albums_on_device_count": "Albumi na uređaju ({count})",
|
||||
"all": "Sve",
|
||||
"all_albums": "Svi albumi",
|
||||
|
|
@ -457,58 +464,60 @@
|
|||
"app_bar_signout_dialog_content": "Jeste li sigurni da se želite odjaviti?",
|
||||
"app_bar_signout_dialog_ok": "Da",
|
||||
"app_bar_signout_dialog_title": "Odjavi se",
|
||||
"app_settings": "Postavke Aplikacije",
|
||||
"app_settings": "Postavke aplikacije",
|
||||
"appears_in": "Pojavljuje se u",
|
||||
"archive": "Arhiva",
|
||||
"archive_action_prompt": "{count} dodano u arhivu",
|
||||
"archive_or_unarchive_photo": "Arhivirajte ili dearhivirajte fotografiju",
|
||||
"archive_page_no_archived_assets": "Nema arhiviranih resursa",
|
||||
"archive_page_no_archived_assets": "Nema arhiviranih stavki",
|
||||
"archive_page_title": "Arhiviraj ({count})",
|
||||
"archive_size": "Veličina arhive",
|
||||
"archive_size_description": "Konfigurirajte veličinu arhive za preuzimanja (u GiB)",
|
||||
"archived": "Ahrivirano",
|
||||
"archived": "Arhivirano",
|
||||
"archived_count": "{count, plural, other {Archived #}}",
|
||||
"are_these_the_same_person": "Je li ovo ista osoba?",
|
||||
"are_you_sure_to_do_this": "Jeste li sigurni da to želite učiniti?",
|
||||
"asset_action_delete_err_read_only": "Nije moguće izbrisati resurse samo za čitanje, preskačem",
|
||||
"asset_action_share_err_offline": "Nije moguće dohvatiti izvanmrežne resurse, preskačem",
|
||||
"asset_action_delete_err_read_only": "Nije moguće izbrisati stavke samo za čitanje, preskakanje",
|
||||
"asset_action_share_err_offline": "Nije moguće dohvatiti izvanmrežne stavke, preskakanje",
|
||||
"asset_added_to_album": "Dodano u album",
|
||||
"asset_adding_to_album": "Dodavanje u album…",
|
||||
"asset_description_updated": "Opis imovine je ažuriran",
|
||||
"asset_filename_is_offline": "Sredstvo {filename} je izvan mreže",
|
||||
"asset_has_unassigned_faces": "Materijal ima nedodijeljena lica",
|
||||
"asset_hashing": "Sažimanje…",
|
||||
"asset_description_updated": "Opis stavke je ažuriran",
|
||||
"asset_filename_is_offline": "Stavka {filename} je izvan mreže",
|
||||
"asset_has_unassigned_faces": "Stavka ima nedodijeljena lica",
|
||||
"asset_hashing": "Hashiranje…",
|
||||
"asset_list_group_by_sub_title": "Grupiraj po",
|
||||
"asset_list_layout_settings_dynamic_layout_title": "Dinamički raspored",
|
||||
"asset_list_layout_settings_group_automatically": "Automatski",
|
||||
"asset_list_layout_settings_group_by": "Grupiraj resurse po",
|
||||
"asset_list_layout_settings_group_by": "Grupiraj stavke po",
|
||||
"asset_list_layout_settings_group_by_month_day": "Mjesec + dan",
|
||||
"asset_list_layout_sub_title": "Raspored",
|
||||
"asset_list_settings_subtitle": "Postavke izgleda mreže fotografija",
|
||||
"asset_list_settings_title": "Mreža Fotografija",
|
||||
"asset_offline": "Sredstvo izvan mreže",
|
||||
"asset_offline_description": "Ovaj materijal je izvan mreže. Immich ne može pristupiti lokaciji datoteke. Provjerite je li sredstvo dostupno, a zatim ponovno skenirajte biblioteku.",
|
||||
"asset_restored_successfully": "Resurs uspješno obnovljen",
|
||||
"asset_list_settings_subtitle": "Postavke izgleda Mreže fotografija",
|
||||
"asset_list_settings_title": "Mreža fotografija",
|
||||
"asset_offline": "Stavka izvan mreže",
|
||||
"asset_offline_description": "Ova vanjska stavka nije pronađena na disku. Za pomoć se obratite Immich administratoru.",
|
||||
"asset_restored_successfully": "Stavka uspješno obnovljena",
|
||||
"asset_skipped": "Preskočeno",
|
||||
"asset_skipped_in_trash": "U smeću",
|
||||
"asset_uploaded": "Učitano",
|
||||
"asset_uploading": "Šaljem…",
|
||||
"asset_viewer_settings_subtitle": "Upravljajte postavkama preglednika vaše galerije",
|
||||
"asset_viewer_settings_title": "Preglednik Resursa",
|
||||
"assets": "Sredstva",
|
||||
"assets_added_count": "Dodano {count, plural, one {# asset} other {# assets}}",
|
||||
"assets_added_to_album_count": "Dodano {count, plural, one {# asset} other {# assets}} u album",
|
||||
"assets_added_to_albums_count": "Dodano je {assetTotal} datoteka u {albumTotal} albuma",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Sadržaj se ne može dodati u album} other {{count} sadržaja se ne mogu dodati u album}}",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Datoteka se ne može dodati ni u jedan album} few {Datoteke se ne mogu dodati ni u jedan album} other {Datoteka se ne može dodati ni u jedan album}}",
|
||||
"assets_count": "{count, plural, one {# asset} other {# assets}}",
|
||||
"assets_deleted_permanently": "{count} resurs(i) uspješno uklonjeni",
|
||||
"assets_deleted_permanently_from_server": "{count} resurs(i) trajno obrisan(i) sa Immich poslužitelja",
|
||||
"assets_downloaded_failed": "{count, plural, one {Preuzeta # datoteka – {error} datoteka nije uspjela} other {Preuzeto je # datoteka – {error} datoteke nisu uspjele}}",
|
||||
"assets_downloaded_successfully": "{count, plural, one {Uspješno preuzeta # datoteka} other {Uspješno preuzete # datoteke}}",
|
||||
"assets_moved_to_trash_count": "{count, plural, one {# asset} other {# asset}} premješteno u smeće",
|
||||
"assets_permanently_deleted_count": "Trajno izbrisano {count, plural, one {# asset} other {# assets}}",
|
||||
"assets_removed_count": "Uklonjeno {count, plural, one {# asset} other {# assets}}",
|
||||
"asset_trashed": "Stavka premještena u smeće",
|
||||
"asset_troubleshoot": "Rješavanje problema sa stavkom",
|
||||
"asset_uploaded": "Preneseno",
|
||||
"asset_uploading": "Prenošenje…",
|
||||
"asset_viewer_settings_subtitle": "Upravljajte postavkama vašeg preglednika galerije",
|
||||
"asset_viewer_settings_title": "Preglednik stavki",
|
||||
"assets": "Stavke",
|
||||
"assets_added_count": "{count, plural, one {Dodana # stavka} few {Dodane # stavke} other {Dodano # stavki}}",
|
||||
"assets_added_to_album_count": "{count, plural, one {Dodana # stavka} few {Dodane # stavke} other {Dodano # stavki}} u album",
|
||||
"assets_added_to_albums_count": "{assetTotal, plural, one {Dodana # stavka} other {Dodano # stavki}} u {albumTotal, plural, one {# album} other {# albuma}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Stavka se ne može} other {Stavke se ne mogu}} dodati u album",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Stavka se ne može} few {Stavke se ne mogu} other {Stavki se ne može}} dodati ni u jedan album",
|
||||
"assets_count": "{count, plural, one {# stavka} few {# stavke} other {# stavki}}",
|
||||
"assets_deleted_permanently": "Trajno {count, plural, one {izbrisana # stavka} few {izbrisane # stavke} other {izbrisano # stavki}}",
|
||||
"assets_deleted_permanently_from_server": "Trajno {count, plural, one {izbrisana # stavka} few {izbrisane # stavke} other {izbrisano # stavki}} s Immich servera",
|
||||
"assets_downloaded_failed": "{count, plural, one {Preuzeta # datoteka – {error} datoteka nije uspjela} few {Preuzete # datoteke - {error} datoteke nisu uspjele} other {Preuzeto # datoteka – {error} datoteke nisu uspjele}}",
|
||||
"assets_downloaded_successfully": "{count, plural, one {Uspješno preuzeta # datoteka} few {Uspješno preuzete # datoteke} other {Uspješno preueto # datoteka}}",
|
||||
"assets_moved_to_trash_count": "{count, plural, one {# stavka premještena} few {# stavke premještene} other {# stavk premještenoi}} u smeće",
|
||||
"assets_permanently_deleted_count": "Trajno {count, plural, one {izbrisana # stavka} few {izbrisane # stavke} other {izbrisano # stavki}}",
|
||||
"assets_removed_count": "{count, plural, one {Uklonjena # stavka} few {Uklonjene # stavke} other {Uklonjeno # stavki}}",
|
||||
"assets_removed_permanently_from_device": "{count} resurs(i) trajno uklonjen(i) s vašeg uređaja",
|
||||
"assets_restore_confirmation": "Jeste li sigurni da želite obnoviti sve svoje resurse bačene u otpad? Ne možete poništiti ovu radnju! Imajte na umu da se bilo koji izvanmrežni resursi ne mogu obnoviti na ovaj način.",
|
||||
"assets_restored_count": "Vraćeno {count, plural, one {# asset} other {# assets}}",
|
||||
|
|
@ -518,7 +527,7 @@
|
|||
"assets_trashed_from_server": "{count} resurs(i) premješten(i) u smeće s Immich poslužitelja",
|
||||
"assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}} već dio albuma",
|
||||
"assets_were_part_of_albums_count": "{count, plural, one {Datoteka je već bila dio albuma} few {Datoteke su već bile dio albuma} other {Datoteka je već bila dio albuma}}",
|
||||
"authorized_devices": "Ovlašteni Uređaji",
|
||||
"authorized_devices": "Ovlašteni uređaji",
|
||||
"automatic_endpoint_switching_subtitle": "Povežite se lokalno preko naznačene Wi-Fi mreže kada je dostupna i koristite alternativne veze na drugim lokacijama",
|
||||
"automatic_endpoint_switching_title": "Automatsko prebacivanje URL-a",
|
||||
"autoplay_slideshow": "Automatsko prikazivanje slajdova",
|
||||
|
|
@ -1034,7 +1043,7 @@
|
|||
"export_database_description": "Izvezi SQLite bazu podataka",
|
||||
"extension": "Proširenje (Extension)",
|
||||
"external": "Vanjski",
|
||||
"external_libraries": "Vanjske Biblioteke",
|
||||
"external_libraries": "Vanjske biblioteke",
|
||||
"external_network": "Vanjska mreža",
|
||||
"external_network_sheet_info": "Kada niste na željenoj Wi-Fi mreži, aplikacija će se povezati s poslužiteljem putem prve dostupne URL adrese s popisa ispod, redom od vrha prema dnu",
|
||||
"face_unassigned": "Nedodijeljeno",
|
||||
|
|
@ -1048,7 +1057,7 @@
|
|||
"favorites": "Omiljene",
|
||||
"favorites_page_no_favorites": "Nema pronađenih omiljenih stavki",
|
||||
"feature_photo_updated": "Istaknuta fotografija ažurirana",
|
||||
"features": "Značajke (Features)",
|
||||
"features": "Značajke",
|
||||
"features_setting_description": "Upravljajte značajkama aplikacije",
|
||||
"file_name": "Naziv datoteke",
|
||||
"file_name_or_extension": "Naziv ili ekstenzija datoteke",
|
||||
|
|
@ -1220,7 +1229,7 @@
|
|||
"location_picker_longitude_error": "Unesite valjanu geografsku dužinu",
|
||||
"location_picker_longitude_hint": "Unesite ovdje svoju geografsku dužinu",
|
||||
"lock": "Zaključaj",
|
||||
"locked_folder": "Zaključana Mapa",
|
||||
"locked_folder": "Zaključana mapa",
|
||||
"log_out": "Odjavi se",
|
||||
"log_out_all_devices": "Odjava sa svih uređaja",
|
||||
"logged_in_as": "Prijavljeni kao {user}",
|
||||
|
|
@ -1900,6 +1909,8 @@
|
|||
"sync_albums_manual_subtitle": "Sinkroniziraj sve prenesene videozapise i fotografije u odabrane albume za sigurnosnu kopiju",
|
||||
"sync_local": "Sinkroniziraj lokalno",
|
||||
"sync_remote": "Sinkroniziraj udaljeno",
|
||||
"sync_status": "Status sinkronizacije",
|
||||
"sync_status_subtitle": "Pregledajte i upravljajte sistemom sinkronizacije",
|
||||
"sync_upload_album_setting_subtitle": "Kreiraj i prenesi svoje fotografije i videozapise u odabrane albume na Immichu",
|
||||
"tag": "Oznaka",
|
||||
"tag_assets": "Označi stavke",
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
"add_to_album": "Felvétel albumba",
|
||||
"add_to_album_bottom_sheet_added": "Hozzáadva a(z) \"{album}\" albumhoz",
|
||||
"add_to_album_bottom_sheet_already_exists": "Már benne van a(z) \"{album}\" albumban",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Néhány helyi elem nem adható hozzá az albumhoz",
|
||||
"add_to_album_toggle": "{album} kijelölésének váltása",
|
||||
"add_to_albums": "Hozzáadás albumokhoz",
|
||||
"add_to_albums_count": "Hozzáadás albumokhoz ({count})",
|
||||
|
|
@ -175,7 +176,7 @@
|
|||
"map_settings_description": "Térkép beállítások kezelése",
|
||||
"map_style_description": "Egy style.json térképtémára mutató URL cím",
|
||||
"memory_cleanup_job": "Memória takarítás",
|
||||
"memory_generate_job": "Emlék generálása",
|
||||
"memory_generate_job": "Emlékek generálása",
|
||||
"metadata_extraction_job": "Metaadatok kinyerése",
|
||||
"metadata_extraction_job_description": "Metaadat információk (pl. GPS, arcok és felbontás) kinyerése minden elemből",
|
||||
"metadata_faces_import_setting": "Arc importálás engedélyezése",
|
||||
|
|
@ -598,6 +599,7 @@
|
|||
"backup_controller_page_turn_on": "Előtérben mentés bekapcsolása",
|
||||
"backup_controller_page_uploading_file_info": "Fájl információk feltöltése",
|
||||
"backup_err_only_album": "Az utolsó albumot nem tudod törölni",
|
||||
"backup_error_sync_failed": "A szinkronizálás nem sikerült. A biztonsági mentés nem elkészíthető.",
|
||||
"backup_info_card_assets": "elemek",
|
||||
"backup_manual_cancelled": "Megszakítva",
|
||||
"backup_manual_in_progress": "Feltöltés már folyamatban. Próbáld meg később",
|
||||
|
|
|
|||
|
|
@ -28,10 +28,12 @@
|
|||
"add_to_album": "Tambahkan ke album",
|
||||
"add_to_album_bottom_sheet_added": "Ditambahkan ke {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Sudah ada di {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Beberapa aset lokal tidak dapat ditambahkan ke album",
|
||||
"add_to_album_toggle": "Masukkan ke {album} / Batalkan dari {album}",
|
||||
"add_to_albums": "Tambahkan ke album",
|
||||
"add_to_albums_count": "Tambahkan ke album ({count})",
|
||||
"add_to_shared_album": "Tambahkan ke album terbagi",
|
||||
"add_upload_to_stack": "Tambahkan unggahan ke tumpukan",
|
||||
"add_url": "Tambahkan URL",
|
||||
"added_to_archive": "Ditambahkan ke arsip",
|
||||
"added_to_favorites": "Ditambahkan ke favorit",
|
||||
|
|
@ -598,6 +600,7 @@
|
|||
"backup_controller_page_turn_on": "Aktifkan pencadangan latar depan",
|
||||
"backup_controller_page_uploading_file_info": "Mengunggah info file",
|
||||
"backup_err_only_album": "Tidak dapat menghapus album",
|
||||
"backup_error_sync_failed": "Sinkronisasi gagal. Tidak dapat memproses cadangan.",
|
||||
"backup_info_card_assets": "aset",
|
||||
"backup_manual_cancelled": "Dibatalkan",
|
||||
"backup_manual_in_progress": "Dalam proses unggah. Coba lagi nanti",
|
||||
|
|
|
|||
23
i18n/it.json
|
|
@ -14,7 +14,7 @@
|
|||
"add_a_location": "Aggiungi una posizione",
|
||||
"add_a_name": "Aggiungi un nome",
|
||||
"add_a_title": "Aggiungi un titolo",
|
||||
"add_birthday": "Aggiungi un compleanno",
|
||||
"add_birthday": "Aggiungi compleanno",
|
||||
"add_endpoint": "Aggiungi un endpoint",
|
||||
"add_exclusion_pattern": "Aggiungi un pattern di esclusione",
|
||||
"add_import_path": "Aggiungi un percorso per l’importazione",
|
||||
|
|
@ -33,6 +33,7 @@
|
|||
"add_to_albums": "Aggiungi ad album",
|
||||
"add_to_albums_count": "Aggiungi ad album ({count})",
|
||||
"add_to_shared_album": "Aggiungi ad album condiviso",
|
||||
"add_upload_to_stack": "Aggiungi caricamento allo stack",
|
||||
"add_url": "Aggiungi URL",
|
||||
"added_to_archive": "Aggiunto all'archivio",
|
||||
"added_to_favorites": "Aggiunto ai preferiti",
|
||||
|
|
@ -177,7 +178,7 @@
|
|||
"map_style_description": "URL per un tema della mappa style.json",
|
||||
"memory_cleanup_job": "Pulizia dei vecchi Ricordi",
|
||||
"memory_generate_job": "Generazione dei Ricordi",
|
||||
"metadata_extraction_job": "Estrazione Metadata",
|
||||
"metadata_extraction_job": "Estrazione Metadati",
|
||||
"metadata_extraction_job_description": "Estrai informazioni dai metadati di ciascuna risorsa, come coordinate GPS, volti e risoluzione",
|
||||
"metadata_faces_import_setting": "Abilita l'importazione dei volti",
|
||||
"metadata_faces_import_setting_description": "Importa i volti dai dati EXIF dell'immagine e dai file sidecar",
|
||||
|
|
@ -308,11 +309,11 @@
|
|||
"transcoding_acceleration_rkmpp": "RKMPP (Solo per SOC Rockchip)",
|
||||
"transcoding_acceleration_vaapi": "VAAPI",
|
||||
"transcoding_accepted_audio_codecs": "Codifiche audio accettate",
|
||||
"transcoding_accepted_audio_codecs_description": "Seleziona quali codifiche audio non devono essere trascodificate. Solo usato per alcune politiche di trascodifica.",
|
||||
"transcoding_accepted_audio_codecs_description": "Seleziona quali codifiche audio non devono essere transcodificate. Solo usato per alcune politiche di transcodifica.",
|
||||
"transcoding_accepted_containers": "Contenitori accettati",
|
||||
"transcoding_accepted_containers_description": "Seleziona quali formati non hanno bisogno di essere remuxati in MP4. Usato solo per certe politiche di transcodifica.",
|
||||
"transcoding_accepted_video_codecs": "Codifiche video accettate",
|
||||
"transcoding_accepted_video_codecs_description": "Seleziona quali codifiche video non devono essere trascodificate. Usato solo per alcune politiche di trascodifica.",
|
||||
"transcoding_accepted_video_codecs_description": "Seleziona quali codifiche video non devono essere transcodificate. Usato solo per alcune politiche di transcodifica.",
|
||||
"transcoding_advanced_options_description": "Impostazioni che la maggior parte degli utenti non dovrebbero cambiare",
|
||||
"transcoding_audio_codec": "Codifica Audio",
|
||||
"transcoding_audio_codec_description": "Opus è l'opzione con la qualità più alta, ma è meno compatibile con dispositivi o software vecchi.",
|
||||
|
|
@ -345,7 +346,7 @@
|
|||
"transcoding_reference_frames": "Frame di riferimento",
|
||||
"transcoding_reference_frames_description": "Il numero di frame da prendere in considerazione nel comprimere un determinato frame. Valori più alti migliorano l'efficienza di compressione, ma rallentano la codifica. 0 imposta questo valore automaticamente.",
|
||||
"transcoding_required_description": "Solo video che non sono in un formato accettato",
|
||||
"transcoding_settings": "Impostazioni Trascodifica Video",
|
||||
"transcoding_settings": "Impostazioni Transcodifica Video",
|
||||
"transcoding_settings_description": "Gestisci quali video transcodificare e come processarli",
|
||||
"transcoding_target_resolution": "Risoluzione desiderata",
|
||||
"transcoding_target_resolution_description": "Risoluzioni più elevate possono preservare più dettagli ma richiedono più tempo per la codifica, producono file di dimensioni maggiori e possono ridurre la reattività dell'applicazione.",
|
||||
|
|
@ -356,11 +357,11 @@
|
|||
"transcoding_tone_mapping": "Mappatura della tonalità",
|
||||
"transcoding_tone_mapping_description": "Tenta di preservare l'aspetto dei video HDR quando convertiti in SDR. Ciascun algoritmo fa diversi compromessi per colore, dettaglio e luminosità. Hable conserva il dettaglio, Mobius conserva il colore e Reinhard conserva la luminosità.",
|
||||
"transcoding_transcode_policy": "Politica di transcodifica",
|
||||
"transcoding_transcode_policy_description": "Politica che determina quando un video deve essere trascodificato. I video HDR verranno sempre trascodificati (eccetto quando la trascodifica è disabilitata).",
|
||||
"transcoding_transcode_policy_description": "Politica che determina quando un video deve essere transcodificato. I video HDR verranno sempre transcodificati (eccetto quando la transcodifica è disabilitata).",
|
||||
"transcoding_two_pass_encoding": "Codifica a due passaggi",
|
||||
"transcoding_two_pass_encoding_setting_description": "Trascodifica in due passaggi per produrre video codificati migliori. Quando il bitrate massimo è abilitato (necessario affinché funzioni con H.264 e HEVC), questa modalità utilizza un intervallo di bitrate basato sul bitrate massimo e ignora CRF. Per VP9, CRF può essere utilizzato se il bitrate massimo è disabilitato.",
|
||||
"transcoding_two_pass_encoding_setting_description": "Transcodifica in due passaggi per produrre video codificati migliori. Quando il bitrate massimo è abilitato (necessario affinché funzioni con H.264 e HEVC), questa modalità utilizza un intervallo di bitrate basato sul bitrate massimo e ignora CRF. Per VP9, CRF può essere utilizzato se il bitrate massimo è disabilitato.",
|
||||
"transcoding_video_codec": "Codec video",
|
||||
"transcoding_video_codec_description": "VP9 ha alta efficienza e compatibilità web, ma richiede più tempo per la trascodifica. HEVC ha prestazioni simili, ma una minore compatibilità web. H.264 è ampiamente compatibile e veloce da transcodificare, ma produce file molto più grandi. AV1 è il codec più efficiente, ma non è supportato sui dispositivi più vecchi.",
|
||||
"transcoding_video_codec_description": "VP9 ha alta efficienza e compatibilità web, ma richiede più tempo per la transcodifica. HEVC ha prestazioni simili, ma una minore compatibilità web. H.264 è ampiamente compatibile e veloce da transcodificare, ma produce file molto più grandi. AV1 è il codec più efficiente, ma non è supportato sui dispositivi più vecchi.",
|
||||
"trash_enabled_description": "Abilita Funzionalità Cestino",
|
||||
"trash_number_of_days": "Numero di giorni",
|
||||
"trash_number_of_days_description": "Numero di giorni per cui mantenere gli asset nel cestino prima di rimuoverli definitivamente",
|
||||
|
|
@ -388,8 +389,8 @@
|
|||
"version_check_implications": "La funzione di controllo della versione fa uso di una comunicazione periodica con github.com",
|
||||
"version_check_settings": "Controllo Versione",
|
||||
"version_check_settings_description": "Abilita/disabilita la notifica per nuove versioni",
|
||||
"video_conversion_job": "Trascodifica video",
|
||||
"video_conversion_job_description": "Trascodifica video per maggiore compatibilità con browser e dispositivi"
|
||||
"video_conversion_job": "Transcodifica video",
|
||||
"video_conversion_job_description": "Transcodifica video per maggiore compatibilità con browser e dispositivi"
|
||||
},
|
||||
"admin_email": "Email Amministratore",
|
||||
"admin_password": "Password Amministratore",
|
||||
|
|
@ -599,6 +600,7 @@
|
|||
"backup_controller_page_turn_on": "Attiva backup",
|
||||
"backup_controller_page_uploading_file_info": "Caricamento informazioni file",
|
||||
"backup_err_only_album": "Non è possibile rimuovere l'unico album",
|
||||
"backup_error_sync_failed": "Sincronizzazione non riuscita. Impossibile elaborare il backup.",
|
||||
"backup_info_card_assets": "risorse",
|
||||
"backup_manual_cancelled": "Annullato",
|
||||
"backup_manual_in_progress": "Caricamento già in corso. Riprova più tardi",
|
||||
|
|
@ -1037,6 +1039,7 @@
|
|||
"exif_bottom_sheet_description_error": "Errore durante l'aggiornamento della descrizione",
|
||||
"exif_bottom_sheet_details": "DETTAGLI",
|
||||
"exif_bottom_sheet_location": "POSIZIONE",
|
||||
"exif_bottom_sheet_no_description": "Nessuna descrizione",
|
||||
"exif_bottom_sheet_people": "PERSONE",
|
||||
"exif_bottom_sheet_person_add_person": "Aggiungi nome",
|
||||
"exit_slideshow": "Esci dalla presentazione",
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
"add_to_album": "アルバムに追加",
|
||||
"add_to_album_bottom_sheet_added": "{album}に追加",
|
||||
"add_to_album_bottom_sheet_already_exists": "{album}に追加済み",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "いくつかの項目はまだサーバーへアップロードされていないためアルバムに追加できませんでした",
|
||||
"add_to_album_toggle": "{album}の選択を切り替え",
|
||||
"add_to_albums": "アルバムに追加",
|
||||
"add_to_albums_count": "{count}つのアルバムへ追加",
|
||||
|
|
@ -598,6 +599,7 @@
|
|||
"backup_controller_page_turn_on": "バックアップをオンにする",
|
||||
"backup_controller_page_uploading_file_info": "アップロード中のファイル",
|
||||
"backup_err_only_album": "最低1つのアルバムを選択してください",
|
||||
"backup_error_sync_failed": "同期に失敗しました。バックアップができません。",
|
||||
"backup_info_card_assets": "写真と動画",
|
||||
"backup_manual_cancelled": "キャンセルされました",
|
||||
"backup_manual_in_progress": "アップロードが進行中です。後でもう一度試してください",
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
"add_a_location": "დაამატე ადგილი",
|
||||
"add_a_name": "დაამატე სახელი",
|
||||
"add_a_title": "დაასათაურე",
|
||||
"add_birthday": "დაბადების დღის დამატება",
|
||||
"add_exclusion_pattern": "დაამატე გამონაკლისი ნიმუში",
|
||||
"add_import_path": "დაამატე საიმპორტო მისამართი",
|
||||
"add_location": "დაამატე ადგილი",
|
||||
|
|
@ -21,16 +22,20 @@
|
|||
"add_partner": "დაამატე პარტნიორი",
|
||||
"add_path": "დაამატე მისამართი",
|
||||
"add_photos": "დაამატე ფოტოები",
|
||||
"add_tag": "დაამატე თეგი",
|
||||
"add_to": "დაამატე ...ში",
|
||||
"add_to_album": "დაამატე ალბომში",
|
||||
"add_to_album_bottom_sheet_added": "დამატებულია {album}-ში",
|
||||
"add_to_album_bottom_sheet_already_exists": "{album}-ში უკვე არსებობს",
|
||||
"add_to_albums": "დაამატე ალბომებში",
|
||||
"add_to_albums_count": "დაამატე ალბომში ({count})",
|
||||
"add_to_shared_album": "დაამატე საზიარო ალბომში",
|
||||
"add_url": "დაამატე URL",
|
||||
"added_to_archive": "დაარქივდა",
|
||||
"added_to_favorites": "დაამატე რჩეულებში",
|
||||
"added_to_favorites_count": "{count, number} დაემატა რჩეულებში",
|
||||
"admin": {
|
||||
"admin_user": "ადმინ მომხმარებელი",
|
||||
"asset_offline_description": "ეს საგარეო ბიბლიოთეკის აქტივი დისკზე ვერ მოიძებნა და სანაგვეში იქნა მოთავსებული. თუ ფაილი ბიბლიოთეკის შიგნით მდებარეობს, შეამოწმეთ შესაბამისი აქტივი ტაიმლაინზე. ამ აქტივის აღსადგენად, დარწმუნდით რომ ქვემოთ მოცემული ფაილის მისამართი Immich-ის მიერ წვდომადია და დაასკანერეთ ბიბლიოთეკა.",
|
||||
"authentication_settings": "ავთენტიკაციის პარამეტრები",
|
||||
"authentication_settings_description": "პაროლის, OAuth-ის და სხვა ავტენთიფიკაციის პარამეტრების მართვა",
|
||||
|
|
@ -41,7 +46,7 @@
|
|||
"backup_database_enable_description": "ბაზის დამპების ჩართვა",
|
||||
"backup_keep_last_amount": "წინა დამპების შესანარჩუნებელი რაოდენობა",
|
||||
"backup_settings": "მონაცემთა ბაზის დამპის მორგება",
|
||||
"backup_settings_description": "მონაცემთა ბაზის პარამეტრების ამრთვა. შენიშვნა: ამ დავალებების მონიტორინგი არ ხდება და თქვენ არ მოგივათ შეტყობინება, თუ ის ჩავარდება.",
|
||||
"backup_settings_description": "მონაცემთა ბაზის ასლის შექმნის პარამეტრების მრთვა.",
|
||||
"cleared_jobs": "დავალებები {job}-ისათვის გაწმენდილია",
|
||||
"config_set_by_file": "მიმდინარე კონფიგურაცია ფაილის მიერ არის დაყენებული",
|
||||
"confirm_delete_library": "ნამდვილად გინდა {library} ბიბლიოთეკის წაშლა?",
|
||||
|
|
@ -58,6 +63,7 @@
|
|||
"image_format_description": "WebP ფორმატი JPEG-ზე პატარა ფაილებს აწარმოებს, მაგრამ მის დამზადებას უფრო მეტი დრო სჭირდება.",
|
||||
"image_fullsize_title": "სრული ზომის გამოსახულების პარამეტრები",
|
||||
"image_prefer_wide_gamut": "უპირატესობა მიენიჭოს ფერის ფართე დიაპაზონს",
|
||||
"image_preview_title": "გამოსახულების გადახედვის პარამეტრები",
|
||||
"image_quality": "ხარისხი",
|
||||
"image_resolution": "გაფართოება",
|
||||
"image_settings": "გამოსახულების პარამეტრები",
|
||||
|
|
@ -68,6 +74,7 @@
|
|||
"library_created": "შეიქმნა ბიბლიოთეკა: {library}",
|
||||
"library_deleted": "ბიბლიოთეკა წაიშალა",
|
||||
"library_import_path_description": "აირჩიე დასაიმპორტებელი საქაღალდე. ფოტოები და ვიდეოები მოიძებნება ამ საქაღალდესა და მასში არსებულ საქაღალდეებში.",
|
||||
"library_settings": "გარე ბიბლიოთეკა",
|
||||
"library_settings_description": "გარე ბიბლიოთეკების პარამეტრების მართვა",
|
||||
"logging_settings": "ჟურნალი",
|
||||
"map_settings": "რუკა",
|
||||
|
|
|
|||
|
|
@ -8,11 +8,13 @@
|
|||
"actions": "ಕ್ರಿಯೆಗಳು",
|
||||
"active": "ಸಕ್ರಿಯ",
|
||||
"activity": "ಚಟುವಟಿಕೆ",
|
||||
"activity_changed": "ಚಟುವಟಿಕೆ {enabled, select, true{ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ} other {ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ}}",
|
||||
"add": "ಸೇರಿಸಿ",
|
||||
"add_a_description": "ವಿವರಣೆಯನ್ನು ಸೇರಿಸಿ",
|
||||
"add_a_location": "ಸ್ಥಳವನ್ನು ಸೇರಿಸಿ",
|
||||
"add_a_name": "ಹೆಸರನ್ನು ಸೇರಿಸಿ",
|
||||
"add_a_title": "ಶೀರ್ಷಿಕೆಯನ್ನು ಸೇರಿಸಿ",
|
||||
"add_birthday": "ಜನ್ಮದಿನ ಸೇರಿಸಿ",
|
||||
"add_endpoint": "ಎಂಡ್ಪಾಯಿಂಟ್ ಸೇರಿಸಿ",
|
||||
"add_exclusion_pattern": "ಹೊರಗಿಡುವಿಕೆ ಮಾದರಿಯನ್ನು ಸೇರಿಸಿ",
|
||||
"add_import_path": "ಆಮದು ಮಾರ್ಗವನ್ನು ಸೇರಿಸಿ",
|
||||
|
|
@ -22,5 +24,6 @@
|
|||
"add_path": "ಹಾದಿಯನ್ನು ಸೇರಿಸಿ",
|
||||
"add_photos": "ಫೋಟೋಗಳನ್ನು ಸೇರಿಸಿ",
|
||||
"add_to": "ಸೇರಿಸಿ…",
|
||||
"add_to_album": "ಆಲ್ಬಮ್ಗೆ ಸೇರಿಸಿ"
|
||||
"add_to_album": "ಆಲ್ಬಮ್ಗೆ ಸೇರಿಸಿ",
|
||||
"add_to_album_bottom_sheet_added": "{album}ಗೆ ಸೇರಿಸಿದೆ"
|
||||
}
|
||||
|
|
|
|||
28
i18n/ko.json
|
|
@ -8,7 +8,7 @@
|
|||
"actions": "작업",
|
||||
"active": "활성",
|
||||
"activity": "활동",
|
||||
"activity_changed": "활동이 {enabled, select, true {활성화} other {비활성화}}되었습니다.",
|
||||
"activity_changed": "활동이 {enabled, select, true {활성화} other {비활성화}}되었습니다",
|
||||
"add": "추가",
|
||||
"add_a_description": "설명 추가",
|
||||
"add_a_location": "위치 추가",
|
||||
|
|
@ -34,15 +34,15 @@
|
|||
"add_to_albums_count": "여러 앨범에 추가 ({count})",
|
||||
"add_to_shared_album": "공유 앨범에 추가",
|
||||
"add_url": "URL 추가",
|
||||
"added_to_archive": "보관함으로 이동되었습니다.",
|
||||
"added_to_favorites": "즐겨찾기에 추가되었습니다.",
|
||||
"added_to_archive": "보관함으로 이동되었습니다",
|
||||
"added_to_favorites": "즐겨찾기에 추가되었습니다",
|
||||
"added_to_favorites_count": "즐겨찾기에 항목 {count, number}개 추가됨",
|
||||
"admin": {
|
||||
"add_exclusion_pattern_description": "*, **, ? 등의 glob 패턴을 사용할 수 있습니다. 예를 들어 \"Raw\" 폴더 내 모든 파일을 제외하려면 \"**/Raw/**\"를, .tif 파일을 제외하려면 \"**/*.tif\", 특정한 절대 경로를 제외하려면 \"/path/to/ignore/**\" 처럼 사용합니다.",
|
||||
"admin_user": "관리자",
|
||||
"asset_offline_description": "이 항목은 외부 라이브러리에 등록되었으나 디스크에서 찾을 수 없어 휴지통으로 이동했습니다. 파일이 라이브러리 경로 내에서 이동된 경우 타임라인에서 새로 인식된 항목이 있는지 확인해보세요. 이 항목을 복원하려면 아래 경로에 Immich가 접근할 수 있는지 확인하고 라이브러리를 다시 스캔하세요.",
|
||||
"authentication_settings": "인증 설정",
|
||||
"authentication_settings_description": "비밀번호, OAuth 및 기타 인증 설정을 관리합니다.",
|
||||
"authentication_settings_description": "비밀번호, OAuth 및 기타 인증 설정을 관리합니다",
|
||||
"authentication_settings_disable_all": "모든 로그인 수단을 비활성화하시겠습니까? 더이상 로그인할 수 없습니다.",
|
||||
"authentication_settings_reenable": "다시 활성화하려면 <link>서버 명령어</link>를 사용하세요.",
|
||||
"background_task_job": "백그라운드 작업",
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
"backup_database_enable_description": "데이터베이스 덤프 활성화",
|
||||
"backup_keep_last_amount": "보관할 이전 덤프 수",
|
||||
"backup_onboarding_1_description": "개는 클라우드나 다른 물리적 위치에 보관합니다.",
|
||||
"backup_onboarding_2_description": "개는 서로 다른 로컬 장치에 보관하고,",
|
||||
"backup_onboarding_2_description": "다른 기기의 로컬 사본. 메인 파일과 로컬 백업을 포함합니다.",
|
||||
"backup_onboarding_3_description": "개의 데이터 사본을 만듭니다.",
|
||||
"backup_onboarding_description": "소중한 데이터를 안전하게 보호하기 위해 <backblaze-link>3-2-1 백업 전략</backblaze-link> 사용을 권장합니다. Immich를 백업할 때 업로드한 사진 및 동영상뿐 아니라 데이터베이스도 함께 보관해야 한다는 점을 잊지 마세요.",
|
||||
"backup_onboarding_footer": "Immich 백업에 대한 자세한 내용은 <link>공식 문서</link>를 참조하세요.",
|
||||
|
|
@ -59,10 +59,10 @@
|
|||
"backup_settings": "데이터베이스 덤프 설정",
|
||||
"backup_settings_description": "데이터베이스 덤프 주기와 보관 기간을 설정합니다.",
|
||||
"cleared_jobs": "작업 중단: {job}",
|
||||
"config_set_by_file": "설정이 구성 파일을 통해 관리되고 있습니다.",
|
||||
"config_set_by_file": "설정이 구성 파일을 통해 관리되고 있습니다",
|
||||
"confirm_delete_library": "{library} 라이브러리를 삭제하시겠습니까?",
|
||||
"confirm_delete_library_assets": "이 라이브러리를 삭제하시겠습니까? Immich에서 {count, plural, one {항목 #개가} other {항목 #개가}} 삭제되며 되돌릴 수 없습니다. 원본 파일은 디스크에 남아 있습니다.",
|
||||
"confirm_email_below": "계속하려면 아래에 \"{email}\"을(를) 입력하세요.",
|
||||
"confirm_email_below": "계속하려면 아래에 \"{email}\"을(를) 입력하세요",
|
||||
"confirm_reprocess_all_faces": "모든 얼굴을 다시 처리하시겠습니까? 이름이 지정된 인물도 초기화됩니다.",
|
||||
"confirm_user_password_reset": "{user}님의 비밀번호를 초기화하시겠습니까?",
|
||||
"confirm_user_pin_code_reset": "{user}님의 PIN 코드를 초기화하시겠습니까?",
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
"cron_expression_description": "Cron 표현식으로 스캔 주기를 설정합니다. 자세한 내용은 다음을 참조하세요, <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "Cron 표현식 프리셋",
|
||||
"disable_login": "로그인 비활성화",
|
||||
"duplicate_detection_job_description": "기계 학습으로 유사한 이미지를 감지합니다. 스마트 검색이 활성화되어 있어야 합니다.",
|
||||
"duplicate_detection_job_description": "기계 학습으로 유사한 이미지를 감지합니다. 스마트 검색이 활성화되어 있어야 합니다",
|
||||
"exclusion_pattern_description": "라이브러리 스캔에서 제외할 파일이나 폴더 규칙을 설정합니다. 폴더에 원하지 않는 파일(RAW 파일 등)이 함께 존재하는 경우 유용합니다.",
|
||||
"external_library_management": "외부 라이브러리 관리",
|
||||
"face_detection": "얼굴 감지",
|
||||
|
|
@ -599,6 +599,7 @@
|
|||
"backup_controller_page_turn_on": "활성화",
|
||||
"backup_controller_page_uploading_file_info": "파일 정보 업로드 중",
|
||||
"backup_err_only_album": "유일한 앨범은 삭제할 수 없습니다.",
|
||||
"backup_error_sync_failed": "동기화에 실패했습니다. 백업을 진행할 수 없습니다.",
|
||||
"backup_info_card_assets": "항목",
|
||||
"backup_manual_cancelled": "취소됨",
|
||||
"backup_manual_in_progress": "업로드가 이미 진행 중입니다. 잠시 후 다시 시도하세요",
|
||||
|
|
@ -1092,6 +1093,7 @@
|
|||
"gcast_enabled": "구글 캐스트",
|
||||
"gcast_enabled_description": "이 기능은 Google의 외부 리소스를 사용하여 실행됩니다.",
|
||||
"general": "일반",
|
||||
"geolocation_instruction_location": "GPS 좌표가 포함된 항목을 클릭해 위치를 사용하거나, 지도에서 직접 위치를 선택하세요",
|
||||
"get_help": "도움 얻기",
|
||||
"get_wifiname_error": "Wi-Fi 이름을 가져올 수 없습니다. 필수 권한이 부여되었는지, Wi-Fi 네트워크에 연결되어 있는지 확인하세요.",
|
||||
"getting_started": "시작하기",
|
||||
|
|
@ -1387,20 +1389,25 @@
|
|||
"no_assets_message": "여기를 클릭해 첫 사진을 업로드하세요.",
|
||||
"no_assets_to_show": "표시할 항목 없음",
|
||||
"no_cast_devices_found": "캐스트 기기 없음",
|
||||
"no_checksum_local": "체크섬이 없습니다. 로컬 항목을 불러올 수 없습니다",
|
||||
"no_checksum_remote": "체크섬이 없습니다. 외부 항목을 불러올 수 없습니다",
|
||||
"no_duplicates_found": "비슷한 항목이 없습니다.",
|
||||
"no_exif_info_available": "EXIF 정보 없음",
|
||||
"no_explore_results_message": "더 많은 사진을 업로드하여 탐색 기능을 사용하세요.",
|
||||
"no_favorites_message": "즐겨찾기에서 사진과 동영상을 빠르게 찾기",
|
||||
"no_libraries_message": "외부 라이브러리로 다른 경로의 사진과 동영상을 확인하세요.",
|
||||
"no_local_assets_found": "체크섬에 맞는 로컬 항목을 찾을 수 없습니다",
|
||||
"no_locked_photos_message": "잠금 폴더의 사진 및 동영상은 숨겨지며 라이브러리를 탐색할 때 표시되지 않습니다.",
|
||||
"no_name": "이름 없음",
|
||||
"no_notifications": "알림 없음",
|
||||
"no_people_found": "일치하는 인물 없음",
|
||||
"no_places": "장소 없음",
|
||||
"no_remote_assets_found": "체크섬에 맞는 외부 항목을 찾을 수 없습니다",
|
||||
"no_results": "결과 없음",
|
||||
"no_results_description": "동의어 또는 더 일반적인 단어를 사용해 보세요.",
|
||||
"no_shared_albums_message": "앨범을 만들어 주변 사람들과 사진 및 동영상을 공유하세요.",
|
||||
"no_uploads_in_progress": "진행 중인 업로드 없음",
|
||||
"not_available": "없음",
|
||||
"not_in_any_album": "앨범에 없음",
|
||||
"not_selected": "선택되지 않음",
|
||||
"note_apply_storage_label_to_previously_uploaded assets": "참고: 이전에 업로드한 항목에도 스토리지 레이블을 적용하려면 다음을 실행합니다,",
|
||||
|
|
@ -1435,6 +1442,8 @@
|
|||
"open_the_search_filters": "검색 필터 열기",
|
||||
"options": "옵션",
|
||||
"or": "또는",
|
||||
"organize_into_albums": "앨범으로 정리하기",
|
||||
"organize_into_albums_description": "현재 동기화 설정을 사용하여 기존 사진을 앨범으로 정리합니다",
|
||||
"organize_your_library": "라이브러리 정리",
|
||||
"original": "원본",
|
||||
"other": "기타",
|
||||
|
|
@ -1576,6 +1585,7 @@
|
|||
"purchase_server_description_2": "서포터 배지",
|
||||
"purchase_server_title": "서버",
|
||||
"purchase_settings_server_activated": "서버 제품 키는 관리자가 제어합니다.",
|
||||
"query_asset_id": "쿼리 항목 ID",
|
||||
"queue_status": "전체 {total}, {count} 대기 중",
|
||||
"rating": "등급",
|
||||
"rating_clear": "등급 초기화",
|
||||
|
|
@ -1663,6 +1673,7 @@
|
|||
"restore_user": "사용자 복원",
|
||||
"restored_asset": "항목이 복원되었습니다.",
|
||||
"resume": "재개",
|
||||
"resume_paused_jobs": "재개 {count, plural, one {# 일시 중지된 작업} other {# 일시 중지된 작업}}",
|
||||
"retry_upload": "다시 시도",
|
||||
"review_duplicates": "비슷한 항목 확인",
|
||||
"review_large_files": "용량이 큰 파일 확인",
|
||||
|
|
@ -1756,6 +1767,7 @@
|
|||
"select_user_for_sharing_page_err_album": "앨범을 생성하지 못했습니다.",
|
||||
"selected": "선택됨",
|
||||
"selected_count": "{count, plural, other {#개 선택됨}}",
|
||||
"selected_gps_coordinates": "선택한 GPS 좌표",
|
||||
"send_message": "메시지 전송",
|
||||
"send_welcome_email": "환영 이메일 전송",
|
||||
"server_endpoint": "서버 엔드포인트",
|
||||
|
|
|
|||