mirror of
https://github.com/immich-app/immich.git
synced 2026-07-25 14:00:45 +03:00
Compare commits
7 Commits
chore/tran
...
feat/stack
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
da89c75bdd | ||
|
|
2272583a7e | ||
|
|
73f8e90f0f | ||
|
|
2999b00e5d | ||
|
|
c668bd3342 | ||
|
|
c3a02b179a | ||
|
|
6b77c90e1c |
@@ -83,7 +83,7 @@
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/docker-in-docker:4": {
|
||||
"ghcr.io/devcontainers/features/docker-in-docker:2": {
|
||||
// https://github.com/devcontainers/features/issues/1466
|
||||
"moby": false
|
||||
}
|
||||
|
||||
2
.github/workflows/auto-close.yml
vendored
2
.github/workflows/auto-close.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
outputs:
|
||||
uses_template: ${{ steps.check.outputs.uses_template }}
|
||||
steps:
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
sparse-checkout: .github/pull_request_template.md
|
||||
sparse-checkout-cone-mode: false
|
||||
|
||||
24
.github/workflows/build-mobile.yml
vendored
24
.github/workflows/build-mobile.yml
vendored
@@ -51,11 +51,10 @@ jobs:
|
||||
should_run: ${{ steps.check.outputs.should_run }}
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Check what should run
|
||||
id: check
|
||||
@@ -80,14 +79,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
permission-pull-requests: write
|
||||
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
ref: ${{ inputs.ref }}
|
||||
persist-credentials: false
|
||||
@@ -106,14 +103,14 @@ jobs:
|
||||
working-directory: ./mobile
|
||||
run: printf "%s" $KEY_JKS | base64 -d > android/key.jks
|
||||
|
||||
- uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0
|
||||
- uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287 # v5.3.0
|
||||
with:
|
||||
distribution: 'zulu'
|
||||
java-version: '17'
|
||||
|
||||
- name: Restore Gradle Cache
|
||||
id: cache-gradle-restore
|
||||
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
||||
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
with:
|
||||
path: |
|
||||
~/.gradle/caches
|
||||
@@ -184,7 +181,7 @@ jobs:
|
||||
|
||||
- name: Save Gradle Cache
|
||||
id: cache-gradle-save
|
||||
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
||||
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
|
||||
if: github.ref == 'refs/heads/main'
|
||||
with:
|
||||
path: |
|
||||
@@ -201,21 +198,20 @@ jobs:
|
||||
contents: read
|
||||
# Run on main branch or workflow_dispatch, or on PRs/other branches (build only, no upload)
|
||||
if: ${{ !github.event.pull_request.head.repo.fork && fromJSON(needs.pre-job.outputs.should_run).mobile == true }}
|
||||
runs-on: macos-26
|
||||
runs-on: macos-15
|
||||
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Select Xcode 26
|
||||
run: sudo xcode-select -s /Applications/Xcode_26.2.app/Contents/Developer
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
ref: ${{ inputs.ref || github.sha }}
|
||||
persist-credentials: false
|
||||
@@ -241,7 +237,7 @@ jobs:
|
||||
run: flutter build ios --config-only --no-codesign
|
||||
|
||||
- name: Setup Ruby
|
||||
uses: ruby/setup-ruby@003a5c4d8d6321bd302e38f6f0ec593f77f06600 # v1.319.0
|
||||
uses: ruby/setup-ruby@89f90524b88a01fe6e0b732220432cc6142926af # v1.313.0
|
||||
with:
|
||||
ruby-version: '3.3'
|
||||
bundler-cache: true
|
||||
|
||||
6
.github/workflows/cache-cleanup.yml
vendored
6
.github/workflows/cache-cleanup.yml
vendored
@@ -19,15 +19,13 @@ jobs:
|
||||
actions: write
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
permission-actions: write
|
||||
|
||||
- name: Check out code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
6
.github/workflows/check-openapi.yml
vendored
6
.github/workflows/check-openapi.yml
vendored
@@ -20,12 +20,12 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Check for breaking API changes
|
||||
uses: oasdiff/oasdiff-action/breaking@024f6c399f9a21ada1addb0f9a36ce1bfac995f1 # v0.1.6
|
||||
uses: oasdiff/oasdiff-action/breaking@e24529087d93f837b28b50bb66ba9016380a7fcc # v0.1.2
|
||||
with:
|
||||
base: https://raw.githubusercontent.com/${{ github.repository }}/main/open-api/immich-openapi-specs.json
|
||||
revision: open-api/immich-openapi-specs.json
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
20
.github/workflows/cli.yml
vendored
20
.github/workflows/cli.yml
vendored
@@ -31,14 +31,13 @@ jobs:
|
||||
working-directory: ./packages/cli
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -64,26 +63,25 @@ jobs:
|
||||
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
|
||||
uses: docker/setup-qemu-action@06116385d9baf250c9f4dcb4858b16962ea869c3 # v4.1.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
|
||||
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
||||
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
|
||||
if: ${{ !github.event.pull_request.head.repo.fork }}
|
||||
with:
|
||||
registry: ghcr.io
|
||||
@@ -98,7 +96,7 @@ jobs:
|
||||
|
||||
- name: Generate docker image tags
|
||||
id: metadata
|
||||
uses: docker/metadata-action@dc802804100637a589fabce1cb79ff13a1411302 # v6.2.0
|
||||
uses: docker/metadata-action@80c7e94dd9b9319bd5eb7a0e0fe9291e23a2a2e9 # v6.1.0
|
||||
with:
|
||||
flavor: |
|
||||
latest=false
|
||||
@@ -109,7 +107,7 @@ jobs:
|
||||
type=raw,value=latest,enable=${{ github.event_name == 'release' && !github.event.release.prerelease }}
|
||||
|
||||
- name: Build and push image
|
||||
uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0
|
||||
uses: docker/build-push-action@f9f3042f7e2789586610d6e8b85c8f03e5195baf # v7.2.0
|
||||
with:
|
||||
file: packages/cli/Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
|
||||
2
.github/workflows/close-duplicates.yml
vendored
2
.github/workflows/close-duplicates.yml
vendored
@@ -39,7 +39,7 @@ jobs:
|
||||
needs: [get_body, should_run]
|
||||
if: ${{ needs.should_run.outputs.should_run == 'true' }}
|
||||
container:
|
||||
image: ghcr.io/immich-app/mdq:main@sha256:d603f5618c1fc9f2b4d506ffed54ba6bcfec83d56b893b5fa8b3f899a402fa0a
|
||||
image: ghcr.io/immich-app/mdq:main@sha256:2a64c7f045cb7b580fbdf3614d7d1805f5775fec453e3d1023764180efa8c70b
|
||||
outputs:
|
||||
checked: ${{ steps.get_checkbox.outputs.checked }}
|
||||
steps:
|
||||
|
||||
11
.github/workflows/codeql-analysis.yml
vendored
11
.github/workflows/codeql-analysis.yml
vendored
@@ -44,21 +44,20 @@ jobs:
|
||||
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1
|
||||
uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
@@ -71,7 +70,7 @@ jobs:
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1
|
||||
uses: github/codeql-action/autobuild@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
|
||||
|
||||
# ℹ️ 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
|
||||
@@ -84,6 +83,6 @@ jobs:
|
||||
# ./location_of_script_within_repo/buildscript.sh
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@7188fc363630916deb702c7fdcf4e481b751f97a # v4.37.1
|
||||
uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2
|
||||
with:
|
||||
category: '/language:${{matrix.language}}'
|
||||
|
||||
7
.github/workflows/docker.yml
vendored
7
.github/workflows/docker.yml
vendored
@@ -23,11 +23,10 @@ jobs:
|
||||
should_run: ${{ steps.check.outputs.should_run }}
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Check what should run
|
||||
id: check
|
||||
@@ -61,7 +60,7 @@ jobs:
|
||||
suffix: ['', '-cuda', '-rocm', '-openvino', '-armnn', '-rknn']
|
||||
steps:
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
||||
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
@@ -91,7 +90,7 @@ jobs:
|
||||
suffix: ['']
|
||||
steps:
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@af1e73f918a031802d376d3c8bbc3fe56130a9b0 # v4.4.0
|
||||
uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4.2.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
|
||||
8
.github/workflows/docs-build.yml
vendored
8
.github/workflows/docs-build.yml
vendored
@@ -21,11 +21,10 @@ jobs:
|
||||
should_run: ${{ steps.check.outputs.should_run }}
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Check what should run
|
||||
id: check
|
||||
@@ -55,14 +54,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
11
.github/workflows/docs-deploy.yml
vendored
11
.github/workflows/docs-deploy.yml
vendored
@@ -20,12 +20,10 @@ jobs:
|
||||
artifact: ${{ steps.get-artifact.outputs.result }}
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-actions: read
|
||||
permission-pull-requests: read
|
||||
|
||||
- if: ${{ github.event.workflow_run.conclusion != 'success' }}
|
||||
run: echo 'The triggering workflow did not succeed' && exit 1
|
||||
@@ -128,16 +126,13 @@ jobs:
|
||||
if: ${{ fromJson(needs.checks.outputs.artifact).found && fromJson(needs.checks.outputs.parameters).shouldDeploy }}
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
permission-actions: read
|
||||
permission-pull-requests: write
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
6
.github/workflows/docs-destroy.yml
vendored
6
.github/workflows/docs-destroy.yml
vendored
@@ -17,15 +17,13 @@ jobs:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
permission-pull-requests: write
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
56
.github/workflows/fdroid.yml
vendored
56
.github/workflows/fdroid.yml
vendored
@@ -1,56 +0,0 @@
|
||||
name: Update F-Droid Repo
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
update-index:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ !github.event.release.prerelease }}
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout pubspec for versionCode
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
with:
|
||||
ref: ${{ github.event.release.tag_name }}
|
||||
persist-credentials: false
|
||||
sparse-checkout: mobile/pubspec.yaml
|
||||
sparse-checkout-cone-mode: false
|
||||
|
||||
- name: Update F-Droid repo
|
||||
env:
|
||||
GITLAB_TOKEN: ${{ secrets.FDROID_REPO_TOKEN }}
|
||||
RELEASE: ${{ toJSON(github.event.release) }}
|
||||
TAG: ${{ github.event.release.tag_name }}
|
||||
run: |
|
||||
VERSION_CODE=$(yq '.version' mobile/pubspec.yaml | cut -d+ -f2)
|
||||
export VERSION_CODE
|
||||
|
||||
NEW_ENTRY=$(yq -P '
|
||||
[.assets[] | select(.name == "app-release.apk")] as $matches |
|
||||
with(select($matches | length == 0); error("app-release.apk not found in release assets")) |
|
||||
{
|
||||
"url": $matches[0].browser_download_url,
|
||||
"sha256sum": ($matches[0].digest | sub("^sha256:", "")),
|
||||
"date": (.published_at | split("T") | .[0]),
|
||||
"version-code": env(VERSION_CODE)
|
||||
} | .date tag= "!!timestamp"
|
||||
' <<< "$RELEASE")
|
||||
export NEW_ENTRY
|
||||
|
||||
git clone --depth 1 "https://oauth2:${GITLAB_TOKEN}@gitlab.futo.org/fdroid/repo-v2.git" fdroid-repo
|
||||
cd fdroid-repo
|
||||
|
||||
yq -i '
|
||||
with(select([.apks[] | select(."version-code" == env(VERSION_CODE))] | length > 0); error("version-code already in index")) |
|
||||
.apks = [env(NEW_ENTRY)] + .apks
|
||||
' apps/Immich/index.yml
|
||||
|
||||
git config user.name "Immich Release Bot"
|
||||
git config user.email "bot@immich.app"
|
||||
git commit -am "Immich: add version-code ${VERSION_CODE} (${TAG})"
|
||||
git push
|
||||
6
.github/workflows/fix-format.yml
vendored
6
.github/workflows/fix-format.yml
vendored
@@ -15,15 +15,13 @@ jobs:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: write
|
||||
permission-pull-requests: write
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.ref }}
|
||||
persist-credentials: true
|
||||
|
||||
2
.github/workflows/merge-translations.yml
vendored
2
.github/workflows/merge-translations.yml
vendored
@@ -35,8 +35,6 @@ jobs:
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: write
|
||||
permission-pull-requests: write
|
||||
|
||||
- name: Find translation PR
|
||||
id: find_pr
|
||||
|
||||
5
.github/workflows/pr-label-validation.yml
vendored
5
.github/workflows/pr-label-validation.yml
vendored
@@ -14,14 +14,13 @@ jobs:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-pull-requests: write
|
||||
|
||||
- name: Require PR to have a changelog label
|
||||
uses: mheap/github-action-required-labels@23e10fde7e062233401931a0eece796cd9bf3177 # v5.6.0
|
||||
uses: mheap/github-action-required-labels@0ac283b4e65c1fb28ce6079dea5546ceca98ccbe # v5.5.2
|
||||
with:
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
mode: exactly
|
||||
|
||||
6
.github/workflows/pr-labeler.yml
vendored
6
.github/workflows/pr-labeler.yml
vendored
@@ -12,13 +12,11 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
permission-pull-requests: write
|
||||
|
||||
- uses: actions/labeler@b8dd2d9be0f68b860e7dae5dae7d772984eacd6d # v6.2.0
|
||||
- uses: actions/labeler@f27b608878404679385c85cfa523b85ccb86e213 # v6.1.0
|
||||
with:
|
||||
repo-token: ${{ steps.token.outputs.token }}
|
||||
|
||||
13
.github/workflows/prepare-release.yml
vendored
13
.github/workflows/prepare-release.yml
vendored
@@ -54,14 +54,13 @@ jobs:
|
||||
permissions: {} # No job-level permissions are needed because it uses the app-token
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: write
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
persist-credentials: true
|
||||
@@ -74,7 +73,7 @@ jobs:
|
||||
|
||||
# TODO move to mise
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990 # v8.3.2
|
||||
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
|
||||
|
||||
- name: Bump version
|
||||
env:
|
||||
@@ -136,11 +135,9 @@ jobs:
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: write
|
||||
permission-actions: read
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
persist-credentials: false
|
||||
@@ -152,7 +149,7 @@ jobs:
|
||||
github-token: ${{ steps.generate-token.outputs.token }}
|
||||
|
||||
- name: Create draft release
|
||||
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
|
||||
uses: softprops/action-gh-release@b4309332981a82ec1c5618f44dd2e27cc8bfbfda # v3.0.0
|
||||
with:
|
||||
draft: true
|
||||
prerelease: ${{ needs.bump_version.outputs.rc }}
|
||||
|
||||
6
.github/workflows/preview-label.yaml
vendored
6
.github/workflows/preview-label.yaml
vendored
@@ -14,11 +14,10 @@ jobs:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-pull-requests: write
|
||||
|
||||
- uses: immich-app/devtools/actions/sticky-comment@0135acd12ad9f3369b94a2aa3c0ae8c835a4e926 # sticky-comment-action-v1.0.0
|
||||
with:
|
||||
@@ -33,11 +32,10 @@ jobs:
|
||||
pull-requests: write
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-pull-requests: write
|
||||
|
||||
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
||||
with:
|
||||
|
||||
5
.github/workflows/sdk.yml
vendored
5
.github/workflows/sdk.yml
vendored
@@ -16,14 +16,13 @@ jobs:
|
||||
packages: write
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
9
.github/workflows/static_analysis.yml
vendored
9
.github/workflows/static_analysis.yml
vendored
@@ -20,11 +20,10 @@ jobs:
|
||||
should_run: ${{ steps.check.outputs.should_run }}
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Check what should run
|
||||
id: check
|
||||
@@ -34,7 +33,6 @@ jobs:
|
||||
filters: |
|
||||
mobile:
|
||||
- 'mobile/**'
|
||||
- 'i18n/en.json'
|
||||
force-filters: |
|
||||
- '.github/workflows/static_analysis.yml'
|
||||
force-events: 'workflow_dispatch,release'
|
||||
@@ -51,14 +49,13 @@ jobs:
|
||||
working-directory: ./mobile
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
92
.github/workflows/test.yml
vendored
92
.github/workflows/test.yml
vendored
@@ -17,11 +17,10 @@ jobs:
|
||||
should_run: ${{ steps.check.outputs.should_run }}
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Check what should run
|
||||
id: check
|
||||
@@ -78,14 +77,13 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -107,14 +105,13 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -139,14 +136,13 @@ jobs:
|
||||
working-directory: ./packages/cli
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -171,14 +167,13 @@ jobs:
|
||||
working-directory: ./packages/cli
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -216,14 +211,13 @@ jobs:
|
||||
working-directory: ./web
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -255,14 +249,13 @@ jobs:
|
||||
working-directory: ./web
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -284,14 +277,13 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -335,14 +327,13 @@ jobs:
|
||||
working-directory: ./e2e
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -368,14 +359,13 @@ jobs:
|
||||
working-directory: ./server
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: 'recursive'
|
||||
@@ -405,14 +395,13 @@ jobs:
|
||||
runner: [ubuntu-latest, ubuntu-24.04-arm]
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: 'recursive'
|
||||
@@ -422,7 +411,7 @@ jobs:
|
||||
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
cache: 'pnpm'
|
||||
@@ -483,14 +472,13 @@ jobs:
|
||||
runner: [ubuntu-latest, ubuntu-24.04-arm]
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: 'recursive'
|
||||
@@ -500,7 +488,7 @@ jobs:
|
||||
uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
|
||||
|
||||
- name: Setup Node
|
||||
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
||||
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
cache: 'pnpm'
|
||||
@@ -592,13 +580,12 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -631,13 +618,12 @@ jobs:
|
||||
working-directory: ./machine-learning
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -662,14 +648,13 @@ jobs:
|
||||
working-directory: ./.github
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -693,13 +678,12 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -715,14 +699,13 @@ jobs:
|
||||
contents: read
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
@@ -774,14 +757,13 @@ jobs:
|
||||
- 5432:5432
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
||||
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
||||
with:
|
||||
persist-credentials: false
|
||||
token: ${{ steps.token.outputs.token }}
|
||||
|
||||
6
.github/workflows/weblate-lock.yml
vendored
6
.github/workflows/weblate-lock.yml
vendored
@@ -24,11 +24,10 @@ jobs:
|
||||
should_run: ${{ steps.check.outputs.should_run }}
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-contents: read
|
||||
|
||||
- name: Check what should run
|
||||
id: check
|
||||
@@ -48,11 +47,10 @@ jobs:
|
||||
if: ${{ fromJSON(needs.pre-job.outputs.should_run).i18n == true }}
|
||||
steps:
|
||||
- id: token
|
||||
uses: immich-app/devtools/actions/create-workflow-token@1af396ae134e4bc3b63d947e672bc68bf4ff9dc5 # create-workflow-token-action-v3.0.0
|
||||
uses: immich-app/devtools/actions/create-workflow-token@9db058b2e6eec20e07760b0e17a0505c78ec3191 # create-workflow-token-action-v2.0.1
|
||||
with:
|
||||
client-id: ${{ secrets.PUSH_O_MATIC_APP_CLIENT_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
permission-pull-requests: read
|
||||
|
||||
- name: Bot review status
|
||||
env:
|
||||
|
||||
38
.vscode/settings.json
vendored
38
.vscode/settings.json
vendored
@@ -29,6 +29,9 @@
|
||||
"editor.formatOnSave": true,
|
||||
"tailwindCSS.lint.suggestCanonicalClasses": "ignore"
|
||||
},
|
||||
"svelte.plugin.svelte.compilerWarnings": {
|
||||
"state_referenced_locally": "ignore"
|
||||
},
|
||||
"[typescript]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
"editor.formatOnSave": true
|
||||
@@ -40,40 +43,37 @@
|
||||
"eslint.useFlatConfig": true,
|
||||
"eslint.validate": ["javascript", "typescript", "svelte"],
|
||||
"eslint.workingDirectories": [
|
||||
{ "changeProcessCWD": true, "directory": "cli" },
|
||||
{ "changeProcessCWD": true, "directory": "e2e" },
|
||||
{ "changeProcessCWD": true, "directory": "server" },
|
||||
{ "changeProcessCWD": true, "directory": "web" }
|
||||
{ "directory": "cli", "changeProcessCWD": true },
|
||||
{ "directory": "e2e", "changeProcessCWD": true },
|
||||
{ "directory": "server", "changeProcessCWD": true },
|
||||
{ "directory": "web", "changeProcessCWD": true }
|
||||
],
|
||||
"files.watcherExclude": {
|
||||
"**/.jj/**": true,
|
||||
"**/.git/**": true,
|
||||
"**/node_modules/**": true,
|
||||
"**/build/**": true,
|
||||
"**/dist/**": true,
|
||||
"**/.svelte-kit/**": true
|
||||
},
|
||||
"explorer.fileNesting.enabled": true,
|
||||
"explorer.fileNesting.patterns": {
|
||||
"*.dart": "${capture}.g.dart,${capture}.gr.dart,${capture}.drift.dart",
|
||||
"*.js": "${capture}.spec.js,${capture}.mock.js",
|
||||
"*.ts": "${capture}.spec.ts,${capture}.mock.ts",
|
||||
"*.js": "${capture}.spec.js,${capture}.mock.js",
|
||||
"package.json": "package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb, bun.lock, pnpm-workspace.yaml, .pnpmfile.cjs"
|
||||
},
|
||||
"files.watcherExclude": {
|
||||
"**/.git/**": true,
|
||||
"**/.jj/**": true,
|
||||
"**/.svelte-kit/**": true,
|
||||
"**/build/**": true,
|
||||
"**/dist/**": true,
|
||||
"**/node_modules/**": true
|
||||
},
|
||||
"js/ts.preferences.importModuleSpecifier": "non-relative",
|
||||
"search.exclude": {
|
||||
"**/.svelte-kit": true,
|
||||
"**/node_modules": true,
|
||||
"**/build": true,
|
||||
"**/dist": true,
|
||||
"**/node_modules": true,
|
||||
"**/.svelte-kit": true,
|
||||
"**/open-api/typescript-sdk/src": true
|
||||
},
|
||||
"svelte.enable-ts-plugin": true,
|
||||
"svelte.plugin.svelte.compilerWarnings": {
|
||||
"state_referenced_locally": "ignore"
|
||||
},
|
||||
"tailwindCSS.experimental.configFile": {
|
||||
"web/src/app.css": "web/src/**"
|
||||
},
|
||||
"js/ts.preferences.importModuleSpecifier": "non-relative",
|
||||
"vitest.maximumConfigs": 10
|
||||
}
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
/web/ @danieldietzler
|
||||
/machine-learning/ @mertalev
|
||||
/e2e/ @danieldietzler
|
||||
/mobile/ @shenlong-tanwen @santoshakil @agg23
|
||||
/mobile/ @shenlong-tanwen @santoshakil
|
||||
|
||||
@@ -32,13 +32,11 @@
|
||||
<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_bg_BG.md">Български</a>
|
||||
<a href="readme_i18n/README_pt_BR.md">Português Brasileiro</a>
|
||||
<a href="readme_i18n/README_sv_SE.md">Svenska</a>
|
||||
<a href="readme_i18n/README_ar_JO.md">العربية</a>
|
||||
<a href="readme_i18n/README_vi_VN.md">Tiếng Việt</a>
|
||||
<a href="readme_i18n/README_th_TH.md">ภาษาไทย</a>
|
||||
<a href="readme_i18n/README_ml_IN.md">മലയാളം</a>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
@@ -7,37 +7,30 @@ backend = "aqua:opentofu/opentofu"
|
||||
[tools.opentofu."platforms.linux-arm64"]
|
||||
checksum = "sha256:d4f2ab15776925864b049bb329d69682851de6f5204f256e9fa86d07a0308850"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/391536382"
|
||||
|
||||
[tools.opentofu."platforms.linux-arm64-musl"]
|
||||
checksum = "sha256:d4f2ab15776925864b049bb329d69682851de6f5204f256e9fa86d07a0308850"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/391536382"
|
||||
|
||||
[tools.opentofu."platforms.linux-x64"]
|
||||
checksum = "sha256:02800fafa2753a9f50c38483e2fdf5bc353fd62895eb9e25eec9a5145df3a69e"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/391536401"
|
||||
|
||||
[tools.opentofu."platforms.linux-x64-musl"]
|
||||
checksum = "sha256:02800fafa2753a9f50c38483e2fdf5bc353fd62895eb9e25eec9a5145df3a69e"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_linux_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/391536401"
|
||||
|
||||
[tools.opentofu."platforms.macos-arm64"]
|
||||
checksum = "sha256:62d7fa8539e13b444827aa0a3b90c5972da5c47e8f8882d9dcf2e430e78840c1"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_darwin_arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/391536399"
|
||||
|
||||
[tools.opentofu."platforms.macos-x64"]
|
||||
checksum = "sha256:1408cdef1c380f914565e6b4bb70794c6b163f195fcb233357f3d6c5745906b6"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_darwin_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/391536384"
|
||||
|
||||
[tools.opentofu."platforms.windows-x64"]
|
||||
checksum = "sha256:27323f70c875b8251bfd7e61a4cffc3ebff4e56ed1e611b955016f0c7077367e"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.11.6/tofu_1.11.6_windows_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/391536406"
|
||||
|
||||
[[tools.terragrunt]]
|
||||
version = "1.0.3"
|
||||
@@ -46,34 +39,27 @@ backend = "aqua:gruntwork-io/terragrunt"
|
||||
[tools.terragrunt."platforms.linux-arm64"]
|
||||
checksum = "sha256:e5b60ab05b5214db694e6bc215d8124fb626e277cdb56b86f6147ae110d510fe"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654253"
|
||||
|
||||
[tools.terragrunt."platforms.linux-arm64-musl"]
|
||||
checksum = "sha256:e5b60ab05b5214db694e6bc215d8124fb626e277cdb56b86f6147ae110d510fe"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654253"
|
||||
|
||||
[tools.terragrunt."platforms.linux-x64"]
|
||||
checksum = "sha256:6d48049baf82e0bf9c804368dc85cbfeadc10955e33777e9e8de3e020b94b073"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654196"
|
||||
|
||||
[tools.terragrunt."platforms.linux-x64-musl"]
|
||||
checksum = "sha256:6d48049baf82e0bf9c804368dc85cbfeadc10955e33777e9e8de3e020b94b073"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_linux_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654196"
|
||||
|
||||
[tools.terragrunt."platforms.macos-arm64"]
|
||||
checksum = "sha256:aacb5be2ca5475300cbce246dfbd8a45eb47510fbaa70fab8561c49ef5db03aa"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_darwin_arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654084"
|
||||
|
||||
[tools.terragrunt."platforms.macos-x64"]
|
||||
checksum = "sha256:3133c2251e191aede8e3dd2a5b3aee2e91c5f08f88f117aee40eed9a24c8ef6b"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_darwin_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406653970"
|
||||
|
||||
[tools.terragrunt."platforms.windows-x64"]
|
||||
checksum = "sha256:183b2745b4e04980a6bfa4450ff81956a12596ca22d70f7aaa793980f5b036db"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.0.3/terragrunt_windows_amd64.exe.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/406654412"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[tools]
|
||||
terragrunt = "1.1.1"
|
||||
opentofu = "1.12.4"
|
||||
terragrunt = "1.0.3"
|
||||
opentofu = "1.11.6"
|
||||
|
||||
[tasks."tg:fmt"]
|
||||
run = "terragrunt hclfmt"
|
||||
|
||||
@@ -2,35 +2,37 @@
|
||||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.opentofu.org/cloudflare/cloudflare" {
|
||||
version = "4.52.8"
|
||||
constraints = "4.52.8"
|
||||
version = "4.52.7"
|
||||
constraints = "4.52.7"
|
||||
hashes = [
|
||||
"h1:2uxVaMaGPDJljXqYzuD6xtyfOKdNudtGIgawRTkFJIs=",
|
||||
"h1:34HL1GDpqYdn2iEC+85pCi+NddZf30qH3fJ8y3P6CAM=",
|
||||
"h1:4Z+uD+YY/7HrqdypM7DyUK+RtWepoLBc9fqtRQYZx4I=",
|
||||
"h1:8Ss6wlJL2BHvkIZU1iaHvyUntqNhPFZ0fl6mjsxhctc=",
|
||||
"h1:AYeWWMTWaNg01N3hivxr/6YlG41j1RietMnft9vLjUI=",
|
||||
"h1:BGRNOzo8NUgbx5RwpWkWmr38f/s3txb7mzQhqfM5blI=",
|
||||
"h1:EEXRMdC8bPlpLuOU8u+dE8mFJe3BpquFdH6vXcKseY4=",
|
||||
"h1:ENp29e6O6OnaHJlbtmRlyjlAmm3Wt4mGctWUpBY3d0g=",
|
||||
"h1:IAtBAbGVe1npj/n1NvCIZkSYGl7qaPYT+FnVdZ2CZ00=",
|
||||
"h1:QRGGKngrxLORr4CImKXLDDJL5s67zUNBDAgk6FIIFNk=",
|
||||
"h1:bNql6cC+MfDbaJK3q7a8C1m3A21o7e5mrjBIGtk0RdI=",
|
||||
"h1:gmNv+PEOkYDdu+c15bfpcoAE3EI7pgmov9RMf3GZLsI=",
|
||||
"h1:yieZ7NWRYQcLYHUevzDDrrmDkoQICM+3ZeX4i/mw9ME=",
|
||||
"zh:08b305329a680a9213b2d8e642fbce7e4d97a524b1d2cef59e190ba9d678c477",
|
||||
"zh:47975bd711ee18a46e589822171fa87474a552b332bfc8dea8fd1a64504eed8d",
|
||||
"zh:5640d0d226bbafff3395542456c29feb942ca9c55ac01b4245a34c0590a33363",
|
||||
"zh:5b0ad839fafba938c60a95d6b4a865843643591e97573ed2b9c4af3754064f74",
|
||||
"h1:+O72J3QYiZtYmYYZM/Eh0f4NNfl1BvjX1eju43qTQsQ=",
|
||||
"h1:0oqjYIPXcXh7XiDiKI085cHDYQQ5mh8kDl9dmBtvtog=",
|
||||
"h1:4b4ESb87MGv5bnadgYe7sK5rEkKMZhbkQcwPubQTsR4=",
|
||||
"h1:6mTr3eA1Ddb348lLmJuyvn98z4KF+ejqaUEJ76D1rzQ=",
|
||||
"h1:9/3YH+9k9HqsvFtbmBf7SO2+xqZeZrXNKzLkjNuhUEA=",
|
||||
"h1:Jcq4tBWgyH4/2JsojNBSRaN0mcItVMchO+lynonrlqc=",
|
||||
"h1:Y4Vv/2RdP0Q+uxqhOxzOdKxuuEMjXPDcU0vPc5bCQzI=",
|
||||
"h1:a0gW8FBKsbP9Fi0HEDoy49WIbEWVHk9+BR4/iwuBdDQ=",
|
||||
"h1:gElv6iqJtg8OKN77gbw+MjrkrQmJHPkkMEi1J+0xkpU=",
|
||||
"h1:oslXUugD/NQ+duJgT4BhKQyfGbuFOANknMvR73fiOeM=",
|
||||
"h1:pPItIWii5oymR+geZB219ROSPuSODPLTlM4S/u8xLvM=",
|
||||
"h1:u67GWw8GwD9NDlDzp9Y5VRnSQGcCrE8rSpkGPaBpDl0=",
|
||||
"h1:uUUa9dY0XQOycI8pxg16PFFtL0WCTi9uEJz8trTQ7pU=",
|
||||
"h1:y3rV8KF2q6GEMANNlf5EkKJurlfbKlIKpjGcdxoy7pQ=",
|
||||
"zh:0c904ce31a4c6c4a5b3bf7ff1560e77c0cc7e2450c8553ded8e8c90398e1418b",
|
||||
"zh:36183d310c36373fe4cb936b83c595c6fd3b0a94bc7827f28e5789ccbf59752e",
|
||||
"zh:556a568a6f0235e8f41647de9e4d3a1e7b1d6502df8b19b54ec441f1c653ea10",
|
||||
"zh:633ebbd5b0245e75e500ef9be4d9e62288f97e8da3baaa51323892a786d90285",
|
||||
"zh:6acfe60cf52a65ba8f044f748548d2119e7f4fd7f8ebcb14698960d87c68f529",
|
||||
"zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f",
|
||||
"zh:93a9bc1139f5c02a44fdbf51fb2ce0891e2a42033b66febb928ccf72e870408f",
|
||||
"zh:977f75cdf365686aa16ae02dcc0fc1769bae6f86be6e165393756c940bfb4af0",
|
||||
"zh:9afcda2660b3dc6ee6329acea532a719225bd1f6cf46f695feb2d77160847c1b",
|
||||
"zh:9e3da67b1b05b03d1f0c18b8677edf3797815b5dd49629f10eb2f457dccbed30",
|
||||
"zh:b8d7da230f5266367c1b6b1cf31aa39087e231a87d55b71bb9d5c854ca1fcfe6",
|
||||
"zh:cc96e7cd7350456b7a11a53d1c76c73a542de8359f9750f637ff865e8e77be91",
|
||||
"zh:da1f58d067def243047bb7178cb197e2b9c3a791a9eb380ad92b73290615ae29",
|
||||
"zh:ed5f3e1f59a338bcdce0a2537a8a2f299cfe18c168626799b2a9c97af3d8d3cb",
|
||||
"zh:f16cc31f73a58a26ffe2d93223eddb7c340623a4e2ef38c6091766fd611e3e11",
|
||||
"zh:904acc31ebb9d6ef68c792074b30532ee61bf515f19e0a3c75b46f126cca1f13",
|
||||
"zh:a1d0a81246afc8750286d3f6fe7a8fbe6460dd2662407b28dbfbabb612e5fa9d",
|
||||
"zh:a41a36fe253fc365fe2b7ffc749624688b2693b4634862fda161179ab100029f",
|
||||
"zh:a7ef269e77ffa8715c8945a2c14322c7ff159ea44c15f62505f3cbb2cae3b32d",
|
||||
"zh:b01aa3bed30610633b762df64332b26f8844a68c3960cebcb30f04918efc67fe",
|
||||
"zh:b069cc2cd18cae10757df3ae030508eac8d55de7e49eda7a5e3e11f2f7fe6455",
|
||||
"zh:b2d2c6313729ebb7465dceece374049e2d08bda34473901be9ff46a8836d42b2",
|
||||
"zh:db0e114edaf4bc2f3d4769958807c83022bfbc619a00bdf4c4bd17faa4ab2d8b",
|
||||
"zh:ecc0aa8b9044f664fd2aaf8fa992d976578f78478980555b4b8f6148e8d1a5fe",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ terraform {
|
||||
required_providers {
|
||||
cloudflare = {
|
||||
source = "cloudflare/cloudflare"
|
||||
version = "4.52.8"
|
||||
version = "4.52.7"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,35 +2,37 @@
|
||||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.opentofu.org/cloudflare/cloudflare" {
|
||||
version = "4.52.8"
|
||||
constraints = "4.52.8"
|
||||
version = "4.52.7"
|
||||
constraints = "4.52.7"
|
||||
hashes = [
|
||||
"h1:2uxVaMaGPDJljXqYzuD6xtyfOKdNudtGIgawRTkFJIs=",
|
||||
"h1:34HL1GDpqYdn2iEC+85pCi+NddZf30qH3fJ8y3P6CAM=",
|
||||
"h1:4Z+uD+YY/7HrqdypM7DyUK+RtWepoLBc9fqtRQYZx4I=",
|
||||
"h1:8Ss6wlJL2BHvkIZU1iaHvyUntqNhPFZ0fl6mjsxhctc=",
|
||||
"h1:AYeWWMTWaNg01N3hivxr/6YlG41j1RietMnft9vLjUI=",
|
||||
"h1:BGRNOzo8NUgbx5RwpWkWmr38f/s3txb7mzQhqfM5blI=",
|
||||
"h1:EEXRMdC8bPlpLuOU8u+dE8mFJe3BpquFdH6vXcKseY4=",
|
||||
"h1:ENp29e6O6OnaHJlbtmRlyjlAmm3Wt4mGctWUpBY3d0g=",
|
||||
"h1:IAtBAbGVe1npj/n1NvCIZkSYGl7qaPYT+FnVdZ2CZ00=",
|
||||
"h1:QRGGKngrxLORr4CImKXLDDJL5s67zUNBDAgk6FIIFNk=",
|
||||
"h1:bNql6cC+MfDbaJK3q7a8C1m3A21o7e5mrjBIGtk0RdI=",
|
||||
"h1:gmNv+PEOkYDdu+c15bfpcoAE3EI7pgmov9RMf3GZLsI=",
|
||||
"h1:yieZ7NWRYQcLYHUevzDDrrmDkoQICM+3ZeX4i/mw9ME=",
|
||||
"zh:08b305329a680a9213b2d8e642fbce7e4d97a524b1d2cef59e190ba9d678c477",
|
||||
"zh:47975bd711ee18a46e589822171fa87474a552b332bfc8dea8fd1a64504eed8d",
|
||||
"zh:5640d0d226bbafff3395542456c29feb942ca9c55ac01b4245a34c0590a33363",
|
||||
"zh:5b0ad839fafba938c60a95d6b4a865843643591e97573ed2b9c4af3754064f74",
|
||||
"h1:+O72J3QYiZtYmYYZM/Eh0f4NNfl1BvjX1eju43qTQsQ=",
|
||||
"h1:0oqjYIPXcXh7XiDiKI085cHDYQQ5mh8kDl9dmBtvtog=",
|
||||
"h1:4b4ESb87MGv5bnadgYe7sK5rEkKMZhbkQcwPubQTsR4=",
|
||||
"h1:6mTr3eA1Ddb348lLmJuyvn98z4KF+ejqaUEJ76D1rzQ=",
|
||||
"h1:9/3YH+9k9HqsvFtbmBf7SO2+xqZeZrXNKzLkjNuhUEA=",
|
||||
"h1:Jcq4tBWgyH4/2JsojNBSRaN0mcItVMchO+lynonrlqc=",
|
||||
"h1:Y4Vv/2RdP0Q+uxqhOxzOdKxuuEMjXPDcU0vPc5bCQzI=",
|
||||
"h1:a0gW8FBKsbP9Fi0HEDoy49WIbEWVHk9+BR4/iwuBdDQ=",
|
||||
"h1:gElv6iqJtg8OKN77gbw+MjrkrQmJHPkkMEi1J+0xkpU=",
|
||||
"h1:oslXUugD/NQ+duJgT4BhKQyfGbuFOANknMvR73fiOeM=",
|
||||
"h1:pPItIWii5oymR+geZB219ROSPuSODPLTlM4S/u8xLvM=",
|
||||
"h1:u67GWw8GwD9NDlDzp9Y5VRnSQGcCrE8rSpkGPaBpDl0=",
|
||||
"h1:uUUa9dY0XQOycI8pxg16PFFtL0WCTi9uEJz8trTQ7pU=",
|
||||
"h1:y3rV8KF2q6GEMANNlf5EkKJurlfbKlIKpjGcdxoy7pQ=",
|
||||
"zh:0c904ce31a4c6c4a5b3bf7ff1560e77c0cc7e2450c8553ded8e8c90398e1418b",
|
||||
"zh:36183d310c36373fe4cb936b83c595c6fd3b0a94bc7827f28e5789ccbf59752e",
|
||||
"zh:556a568a6f0235e8f41647de9e4d3a1e7b1d6502df8b19b54ec441f1c653ea10",
|
||||
"zh:633ebbd5b0245e75e500ef9be4d9e62288f97e8da3baaa51323892a786d90285",
|
||||
"zh:6acfe60cf52a65ba8f044f748548d2119e7f4fd7f8ebcb14698960d87c68f529",
|
||||
"zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f",
|
||||
"zh:93a9bc1139f5c02a44fdbf51fb2ce0891e2a42033b66febb928ccf72e870408f",
|
||||
"zh:977f75cdf365686aa16ae02dcc0fc1769bae6f86be6e165393756c940bfb4af0",
|
||||
"zh:9afcda2660b3dc6ee6329acea532a719225bd1f6cf46f695feb2d77160847c1b",
|
||||
"zh:9e3da67b1b05b03d1f0c18b8677edf3797815b5dd49629f10eb2f457dccbed30",
|
||||
"zh:b8d7da230f5266367c1b6b1cf31aa39087e231a87d55b71bb9d5c854ca1fcfe6",
|
||||
"zh:cc96e7cd7350456b7a11a53d1c76c73a542de8359f9750f637ff865e8e77be91",
|
||||
"zh:da1f58d067def243047bb7178cb197e2b9c3a791a9eb380ad92b73290615ae29",
|
||||
"zh:ed5f3e1f59a338bcdce0a2537a8a2f299cfe18c168626799b2a9c97af3d8d3cb",
|
||||
"zh:f16cc31f73a58a26ffe2d93223eddb7c340623a4e2ef38c6091766fd611e3e11",
|
||||
"zh:904acc31ebb9d6ef68c792074b30532ee61bf515f19e0a3c75b46f126cca1f13",
|
||||
"zh:a1d0a81246afc8750286d3f6fe7a8fbe6460dd2662407b28dbfbabb612e5fa9d",
|
||||
"zh:a41a36fe253fc365fe2b7ffc749624688b2693b4634862fda161179ab100029f",
|
||||
"zh:a7ef269e77ffa8715c8945a2c14322c7ff159ea44c15f62505f3cbb2cae3b32d",
|
||||
"zh:b01aa3bed30610633b762df64332b26f8844a68c3960cebcb30f04918efc67fe",
|
||||
"zh:b069cc2cd18cae10757df3ae030508eac8d55de7e49eda7a5e3e11f2f7fe6455",
|
||||
"zh:b2d2c6313729ebb7465dceece374049e2d08bda34473901be9ff46a8836d42b2",
|
||||
"zh:db0e114edaf4bc2f3d4769958807c83022bfbc619a00bdf4c4bd17faa4ab2d8b",
|
||||
"zh:ecc0aa8b9044f664fd2aaf8fa992d976578f78478980555b4b8f6148e8d1a5fe",
|
||||
]
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ terraform {
|
||||
required_providers {
|
||||
cloudflare = {
|
||||
source = "cloudflare/cloudflare"
|
||||
version = "4.52.8"
|
||||
version = "4.52.7"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ services:
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:9@sha256:8e8d64b405ce18f41b8e5ee20aa4687a8ed0022d1298f2ce31cdcf3a76e09411
|
||||
image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ services:
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:9@sha256:8e8d64b405ce18f41b8e5ee20aa4687a8ed0022d1298f2ce31cdcf3a76e09411
|
||||
image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
@@ -85,7 +85,7 @@ services:
|
||||
container_name: immich_prometheus
|
||||
ports:
|
||||
- 9090:9090
|
||||
image: prom/prometheus@sha256:3c42b892cf723fa54d2f262c37a0e1f80aa8c8ddb1da7b9b0df9455a35a7f893
|
||||
image: prom/prometheus@sha256:a75c5a35bc21d7afe69551eefa3cb1e1fb1775fe759408007a66b54ec3de1f29
|
||||
volumes:
|
||||
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
||||
- prometheus-data:/prometheus
|
||||
@@ -97,7 +97,7 @@ services:
|
||||
command: ['./run.sh', '-disable-reporting']
|
||||
ports:
|
||||
- 3000:3000
|
||||
image: grafana/grafana:12.4.5-ubuntu@sha256:00396460e499415c828b7c298f19287c8a0f95e72412ee37ac11723655c2d6b9
|
||||
image: grafana/grafana:12.4.4-ubuntu@sha256:df2e7ef5f32f771794cf76bad5f2bceac227036460a2cc269a9045e5662abc58
|
||||
volumes:
|
||||
- grafana-data:/var/lib/grafana
|
||||
|
||||
|
||||
@@ -61,7 +61,7 @@ services:
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:9@sha256:8e8d64b405ce18f41b8e5ee20aa4687a8ed0022d1298f2ce31cdcf3a76e09411
|
||||
image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
|
||||
user: '1000:1000'
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
|
||||
@@ -49,7 +49,7 @@ services:
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/valkey/valkey:9@sha256:8e8d64b405ce18f41b8e5ee20aa4687a8ed0022d1298f2ce31cdcf3a76e09411
|
||||
image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
|
||||
@@ -10,7 +10,7 @@ DB_DATA_LOCATION=./postgres
|
||||
# TZ=Etc/UTC
|
||||
|
||||
# The Immich version to use. You can pin this to a specific version like "v2.1.0"
|
||||
IMMICH_VERSION=v3
|
||||
IMMICH_VERSION=v2
|
||||
|
||||
# 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
|
||||
|
||||
@@ -409,7 +409,7 @@ To decrease Redis logs, you can add the following line to the `redis:` section o
|
||||
|
||||
You can change the user in the container by setting the `user` argument in `docker-compose.yml` for each service.
|
||||
|
||||
[Example docker-compose.rootless.yml file](https://github.com/immich-app/immich/blob/main/docker/docker-compose.rootless.yml)
|
||||
[Example docker-compose.yml file](https://github.com/immich-app/immich/blob/main/docker/docker-compose.rootless.yml)
|
||||
|
||||
You may need to add mount points or docker volumes for the following internal container paths:
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ You can trigger a database backup manually:
|
||||
|
||||
1. Go to **Administration > Job Queues**
|
||||
2. Click **Create job** in the top right
|
||||
3. Select **Create Database Dump** and click **Confirm**
|
||||
3. Select **Create Database Backup** and click **Confirm**
|
||||
|
||||
The backup will appear in `UPLOAD_LOCATION/backups` and counts toward your retention limit.
|
||||
|
||||
|
||||
BIN
docs/docs/administration/img/reset-admin-password.webp
Normal file
BIN
docs/docs/administration/img/reset-admin-password.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.9 KiB |
@@ -35,7 +35,6 @@ Found Admin:
|
||||
- Email=admin@example.com
|
||||
- Name=Immich Admin
|
||||
? Please choose a new password (optional) immich-is-cool
|
||||
? Invalidate existing sessions? Yes
|
||||
The admin password has been updated.
|
||||
```
|
||||
|
||||
|
||||
@@ -1,30 +1,5 @@
|
||||
# System Integrity
|
||||
|
||||
## Integrity report
|
||||
|
||||
At a [customizable interval](https://my.immich.app/admin/system-settings?isOpen=integrity-checks), Immich runs integrity checks to ensure that your library is still intact and there are no corrupt files.
|
||||
There are three kind of issues Immich checks for:
|
||||
|
||||
- Untracked files: the path was found in Immich's directories but it is not referenced in Immich's database
|
||||
- Missing files: the path is found in the Immich internal database, but does not actually exist on disk
|
||||
- Checksum mismatches: the checksum of the file stored in Immich's database does not match the actual file's checksum anymore
|
||||
|
||||
All three run nightly at 3am by default. For the "Checksum files" check, there are additional time and progress limits, as those are the most taxing checks. With these additional limits, Immich can slowly check checksums of your files over the course of a couple of days.
|
||||
|
||||
You can see the results of these checks on the [maintenance](https://my.immich.app/admin/maintenance) page. Here, you can also trigger a full scan (a _check_) for specific jobs, or all of them. In addition, you can also _refresh_ checks. This will only look at items that have currently been reported on, and check if those have been fixed.
|
||||
|
||||
### Common causes
|
||||
|
||||
Most common are untracked files. In many cases those are corrupted thumbnails or encoded videos that have been partially generated at some point and never got cleaned up properly. These are usually fine to delete, as both can always be regenerated at a later point. Other files will need to be investigated on a case-by-case basis by checking they already exist in Immich and thinking about how they might have gotten untracked.
|
||||
|
||||
:::info
|
||||
You might want to run the _missing_ jobs for thumbnails and encoded videos (https://my.immich.app/admin/queues) to make sure all your assets have proper thumbnails and encoded videos. Watch the server logs while running the jobs, in case there are any issues with some assets.
|
||||
:::
|
||||
|
||||
Missing files are files where Immich references them internally, but they don't actually exist on disk in that location. It could be that you deleted a file on disk from the internal library (don't do that, Immich doesn't support it). It could also be that there are issues with your file storage. Please carefully investigate missing files, and never hesitate to reach out on [our Discord](https://discord.immich.app) if you have any questions!
|
||||
|
||||
Checksum mismatches are often indicative of file system corruption. It could also be that you previously edited a file from the internal library on the disk, which is also not supported and will cause a checksum mismatch. Again, the recommended action is to look at any reported item individually, check it out, try to remember if you changed it or some metadata on it at some point. If you edited the file, the supported resolution is to delete the mismatched asset from Immich and reupload it as a new asset.
|
||||
|
||||
## Folder checks
|
||||
|
||||
:::info
|
||||
@@ -65,7 +40,7 @@ The above error messages show that the server has previously (successfully) writ
|
||||
|
||||
### Ignoring the checks
|
||||
|
||||
:::danger
|
||||
:::warning
|
||||
The checks are designed to catch common problems that we have seen users have in the past, and often indicate there's something wrong that you should solve. If you know what you're doing and you want to disable them you can set the following environment variable:
|
||||
:::
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ This environment includes the services below. Additional details are available i
|
||||
- Redis
|
||||
- PostgreSQL development database with exposed port `5432` so you can use any database client to access it
|
||||
|
||||
All the services are packaged to run with a single Docker Compose command.
|
||||
All the services are packaged to run as with single Docker Compose command.
|
||||
|
||||
:::tip mise
|
||||
[mise](https://mise.jdx.dev) is used throughout the project to manage tool versions and run tasks. [Install mise](https://mise.jdx.dev/installing-mise.html), then from the repo root run `mise trust` and `mise install` to get all required tools. Tasks for each service can be run from the repo root using `mise //namespace:task` (e.g. `mise //server:lint`). To list all available tasks, run `mise tasks ls --all`.
|
||||
@@ -41,7 +41,7 @@ All the services are packaged to run with a single Docker Compose command.
|
||||
1. Clone the project repo.
|
||||
2. Run `cp docker/example.env docker/.env`.
|
||||
3. Edit `docker/.env` to provide values for the required variable `UPLOAD_LOCATION`.
|
||||
4. Install dependencies - `mise x -- pnpm i`
|
||||
4. Install dependencies - `pnpm i`
|
||||
5. From the root directory, run:
|
||||
|
||||
```bash title="Start development server"
|
||||
@@ -52,7 +52,7 @@ mise dev
|
||||
|
||||
All the services will be started with hot-reloading enabled for a quick feedback loop.
|
||||
|
||||
You can access the web from `http://your-machine-ip:3000` or `http://localhost:3000` and access the server from the mobile app at `http://your-machine-ip:3000`
|
||||
You can access the web from `http://your-machine-ip:3000` or `http://localhost:3000` and access the server from the mobile app at `http://your-machine-ip:3000/api`
|
||||
|
||||
**Notes:**
|
||||
|
||||
@@ -99,21 +99,6 @@ To see local changes to `@immich/ui` in Immich, do the following:
|
||||
2. Run `mise //mobile:translation` to generate the translation file.
|
||||
3. Change to the `mobile/` directory and run `flutter run` to start the app.
|
||||
|
||||
##### iOS Code Signing
|
||||
|
||||
The Immich Apple Team ID and bundle IDs are specified in `mobile/ios/Signing.xcconfig`. For local development, we provide an override mechanism.
|
||||
|
||||
Create `mobile/ios/Signing.local.xcconfig` and populate it with the necessary values needed to build and sign Immich yourself. This local override file is gitignored.
|
||||
|
||||
```
|
||||
IMMICH_TEAM_ID = ABCDE12345
|
||||
IMMICH_BUNDLE_ID_PROD = com.customuniqueid.immich
|
||||
IMMICH_BUNDLE_ID_DEV = com.customuniqueid.immichdev
|
||||
IMMICH_GROUP_ID = group.com.customuniqueid.immich
|
||||
```
|
||||
|
||||
The environment values are used across Immich's targets and schemes to prevent redundant edits by contributors.
|
||||
|
||||
#### Translation
|
||||
|
||||
To add a new translation text, enter the key-value pair in the `i18n/en.json` in the root of the immich project. Then run:
|
||||
|
||||
@@ -99,7 +99,6 @@ Options:
|
||||
-H, --include-hidden Include hidden folders (default: false, env: IMMICH_INCLUDE_HIDDEN)
|
||||
-a, --album Automatically create albums based on folder name (default: false, env: IMMICH_AUTO_CREATE_ALBUM)
|
||||
-A, --album-name <name> Add all assets to specified album (env: IMMICH_ALBUM_NAME)
|
||||
--visibility <visibility> Set the visibility of uploaded assets (choices: "archive", "timeline", "hidden", "locked", env: IMMICH_VISIBILITY)
|
||||
-n, --dry-run Don't perform any actions, just show what will be done (default: false, env: IMMICH_DRY_RUN)
|
||||
-c, --concurrency <number> Number of assets to upload at the same time (default: 4, env: IMMICH_UPLOAD_CONCURRENCY)
|
||||
-j, --json-output Output detailed information in json format (default: false, env: IMMICH_JSON_OUTPUT)
|
||||
@@ -177,12 +176,6 @@ By default, hidden files are skipped. If you want to include hidden files, use t
|
||||
immich upload --include-hidden --recursive directory/
|
||||
```
|
||||
|
||||
You can set the visibility of uploaded assets to `archive`, `timeline`, `hidden`, or `locked` with the `--visibility` option:
|
||||
|
||||
```bash
|
||||
immich upload --visibility archive --recursive directory/
|
||||
```
|
||||
|
||||
You can use the `--json-output` option to get a json printed which includes
|
||||
three keys: `newFiles`, `duplicates` and `newAssets`. Due to some logging
|
||||
output you will need to strip the first three lines of output to get the json.
|
||||
|
||||
@@ -19,7 +19,7 @@ If this does not work, try running `docker compose up -d --force-recreate`.
|
||||
|
||||
| Variable | Description | Default | Containers |
|
||||
| :----------------- | :------------------------------ | :-----: | :----------------------- |
|
||||
| `IMMICH_VERSION` | Image tags | `v3` | server, machine learning |
|
||||
| `IMMICH_VERSION` | Image tags | `v2` | server, machine learning |
|
||||
| `UPLOAD_LOCATION` | Host path for uploads | | server |
|
||||
| `DB_DATA_LOCATION` | Host path for Postgres database | | database |
|
||||
|
||||
@@ -89,7 +89,7 @@ Information on the current workers can be found [here](/administration/jobs-work
|
||||
|
||||
\*1: The values of `DB_USERNAME`, `DB_PASSWORD`, and `DB_DATABASE_NAME` are passed to the Postgres container as the variables `POSTGRES_USER`, `POSTGRES_PASSWORD`, and `POSTGRES_DB` in `docker-compose.yml`.
|
||||
|
||||
\*2: If not provided, the appropriate extension to use is auto-detected at startup by inspecting the database. When multiple extensions are installed, the order of preference is VectorChord, pgvector.
|
||||
\*2: If not provided, the appropriate extension to use is auto-detected at startup by introspecting the database. When multiple extensions are installed, the order of preference is VectorChord, pgvecto.rs, pgvector.
|
||||
|
||||
\*3: Uses either [`postgresql.ssd.conf`](https://github.com/immich-app/base-images/blob/main/postgres/postgresql.ssd.conf) or [`postgresql.hdd.conf`](https://github.com/immich-app/base-images/blob/main/postgres/postgresql.hdd.conf) which mainly controls the Postgres `effective_io_concurrency` setting to allow for concurrenct IO on SSDs and sequential IO on HDDs.
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ sidebar_position: 85
|
||||
:::note
|
||||
This is a community contribution and not officially supported by the Immich team, but included here for convenience.
|
||||
|
||||
Community support should be directed to Synology-specific support platforms.
|
||||
Community support can be found in the dedicated channel on the [Discord Server](https://discord.immich.app/).
|
||||
:::
|
||||
|
||||
Immich can easily be installed on a Synology NAS using Container Manager within DSM. If you have not installed Container Manager already, you can install it in the Packages Center. Refer to the [Container Manager docs](https://kb.synology.com/en-us/DSM/help/ContainerManager/docker_desc?version=7) for more information on using Container Manager.
|
||||
|
||||
@@ -121,7 +121,7 @@ alt="Go to Docker Tab and visit the address listed next to immich-web"
|
||||
width="90%"
|
||||
alt="Go to Docker Tab and visit the address listed next to immich-web"
|
||||
/>
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
:::tip
|
||||
|
||||
@@ -28,15 +28,11 @@ docker image prune
|
||||
|
||||
## Versioning Policy
|
||||
|
||||
Immich follows [semantic versioning][semver], which tags releases in the format `<major>.<minor>.<patch>`.
|
||||
We intend for breaking changes, including those to the API or deployment, to be limited to major version releases.
|
||||
You can configure your Docker image to point to the current major version by using a metatag, such as `:v3`. These metatags do not follow release candidates.
|
||||
Immich follows [semantic versioning][semver], which tags releases in the format `<major>.<minor>.<patch>`. We intend for breaking changes to be limited to major version releases.
|
||||
You can configure your Docker image to point to the current major version by using a metatag, such as `:v2`.
|
||||
|
||||
The mobile app is typically compatible with the current and prior major version. However, the server is only compatible with the matching major version.
|
||||
Thus, we recommend upgrading all mobile clients before upgrading the server to ensure compatibility.
|
||||
|
||||
We do not backport patches to earlier versions. We encourage all users to run the most recent stable release of Immich.
|
||||
Downgrading to an earlier version, even within the same minor version, is not supported.
|
||||
Currently, we have no plans to backport patches to earlier versions. We encourage all users to run the most recent release of Immich.
|
||||
Switching back to an earlier version, even within the same minor release tag, is not supported.
|
||||
|
||||
[semver]: https://semver.org/
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
The mobile app can be downloaded from the following places:
|
||||
|
||||
- [Apple App Store](https://apps.apple.com/us/app/immich/id1613945652)
|
||||
- [Google Play Store](https://play.google.com/store/apps/details?id=app.alextran.immich)
|
||||
- [GitHub Releases (APK)](https://github.com/immich-app/immich/releases)
|
||||
- Obtainium: You can get your Obtainium config link from the [Utilities page of your Immich server](https://my.immich.app/utilities).
|
||||
- [F-Droid](https://app.futo.org/fdroid/repo/)
|
||||
- [Google Play Store](https://play.google.com/store/apps/details?id=app.alextran.immich)
|
||||
- [Apple App Store](https://apps.apple.com/us/app/immich/id1613945652)
|
||||
- [F-Droid](https://f-droid.org/packages/app.alextran.immich)
|
||||
- [GitHub Releases (apk)](https://github.com/immich-app/immich/releases)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# @generated - this file is auto-generated by `mise lock` https://mise.en.dev/dev-tools/mise-lock.html
|
||||
|
||||
[[tools.wrangler]]
|
||||
version = "4.110.0"
|
||||
version = "4.100.0"
|
||||
backend = "npm:wrangler"
|
||||
|
||||
[tools.wrangler.options]
|
||||
|
||||
@@ -28,4 +28,4 @@ run = "prettier --write ."
|
||||
run = "wrangler pages deploy build --project-name=${PROJECT_NAME} --branch=${BRANCH_NAME}"
|
||||
|
||||
[tools]
|
||||
wrangler = "4.111.0"
|
||||
wrangler = "4.100.0"
|
||||
|
||||
@@ -40,8 +40,7 @@
|
||||
"@docusaurus/tsconfig": "^3.10.0",
|
||||
"@docusaurus/types": "^3.10.0",
|
||||
"prettier": "^3.7.4",
|
||||
"@typescript/native": "npm:typescript@^7.0.2",
|
||||
"typescript": "npm:@typescript/typescript6@^6.0.2"
|
||||
"typescript": "^6.0.0"
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
|
||||
4
docs/static/archived-versions.json
vendored
4
docs/static/archived-versions.json
vendored
@@ -1,7 +1,7 @@
|
||||
[
|
||||
{
|
||||
"label": "v3.0.3",
|
||||
"url": "https://docs.v3.0.3.archive.immich.app"
|
||||
"label": "v3.0.0-rc.4",
|
||||
"url": "https://docs.v3.0.0-rc.4.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v2.7.5",
|
||||
|
||||
@@ -45,7 +45,7 @@ services:
|
||||
|
||||
redis:
|
||||
container_name: immich-e2e-redis
|
||||
image: docker.io/valkey/valkey:9@sha256:8e8d64b405ce18f41b8e5ee20aa4687a8ed0022d1298f2ce31cdcf3a76e09411
|
||||
image: docker.io/valkey/valkey:9@sha256:4963247afc4cd33c7d3b2d2816b9f7f8eeebab148d29056c2ca4d7cbc966f2d9
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
|
||||
|
||||
@@ -41,18 +41,9 @@ export default typescriptEslint.config([
|
||||
'@typescript-eslint/no-floating-promises': 'error',
|
||||
'unicorn/prefer-module': 'off',
|
||||
'unicorn/import-style': 'off',
|
||||
'unicorn/consistent-boolean-name': 'off',
|
||||
'unicorn/no-non-function-verb-prefix': 'off',
|
||||
'unicorn/no-unreadable-for-of-expression': 'off',
|
||||
'unicorn/max-nested-calls': 'off',
|
||||
'unicorn/prefer-uint8array-base64': 'off',
|
||||
'unicorn/isolated-functions': 'off',
|
||||
'unicorn/prefer-promise-with-resolvers': 'off',
|
||||
'unicorn/no-declarations-before-early-exit': 'off',
|
||||
'unicorn/prefer-simple-condition-first': 'off',
|
||||
curly: 2,
|
||||
'prettier/prettier': 0,
|
||||
'unicorn/name-replacements': 'off',
|
||||
'unicorn/prevent-abbreviations': 'off',
|
||||
'unicorn/filename-case': 'off',
|
||||
'unicorn/no-null': 'off',
|
||||
'unicorn/prefer-top-level-await': 'off',
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "immich-e2e",
|
||||
"version": "3.0.3",
|
||||
"version": "3.0.0-rc.4",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"type": "module",
|
||||
@@ -32,7 +32,7 @@
|
||||
"@playwright/test": "^1.44.1",
|
||||
"@socket.io/component-emitter": "^3.1.2",
|
||||
"@types/luxon": "^3.4.2",
|
||||
"@types/node": "^24.13.3",
|
||||
"@types/node": "^24.13.2",
|
||||
"@types/pg": "^8.15.1",
|
||||
"@types/pngjs": "^6.0.4",
|
||||
"@types/supertest": "^7.0.0",
|
||||
@@ -40,7 +40,7 @@
|
||||
"eslint": "^10.0.0",
|
||||
"eslint-config-prettier": "^10.1.8",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"eslint-plugin-unicorn": "^72.0.0",
|
||||
"eslint-plugin-unicorn": "^64.0.0",
|
||||
"exiftool-vendored": "^35.0.0",
|
||||
"globals": "^17.0.0",
|
||||
"luxon": "^3.4.4",
|
||||
@@ -51,8 +51,7 @@
|
||||
"sharp": "^0.34.5",
|
||||
"socket.io-client": "^4.7.4",
|
||||
"supertest": "^7.0.0",
|
||||
"@typescript/native": "npm:typescript@^7.0.2",
|
||||
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
||||
"typescript": "^6.0.0",
|
||||
"typescript-eslint": "^8.28.0",
|
||||
"utimes": "^5.2.1",
|
||||
"vitest": "^4.0.0"
|
||||
|
||||
@@ -118,7 +118,7 @@ describe('/admin/database-backups', () => {
|
||||
|
||||
expect(status).toBe(201);
|
||||
|
||||
cookie = headers['set-cookie'][0].split(';', 1)[0];
|
||||
cookie = headers['set-cookie'][0].split(';')[0];
|
||||
|
||||
await expect
|
||||
.poll(
|
||||
@@ -224,7 +224,7 @@ describe('/admin/database-backups', () => {
|
||||
});
|
||||
|
||||
expect(status).toBe(201);
|
||||
cookie = headers['set-cookie'][0].split(';', 1)[0];
|
||||
cookie = headers['set-cookie'][0].split(';')[0];
|
||||
|
||||
await expect
|
||||
.poll(
|
||||
@@ -295,7 +295,7 @@ describe('/admin/database-backups', () => {
|
||||
});
|
||||
|
||||
expect(status).toBe(201);
|
||||
cookie = headers['set-cookie'][0].split(';', 1)[0];
|
||||
cookie = headers['set-cookie'][0].split(';')[0];
|
||||
|
||||
await expect
|
||||
.poll(
|
||||
|
||||
@@ -85,7 +85,7 @@ describe('/admin/maintenance', () => {
|
||||
|
||||
expect(status).toBe(201);
|
||||
|
||||
cookie = headers['set-cookie'][0].split(';', 1)[0];
|
||||
cookie = headers['set-cookie'][0].split(';')[0];
|
||||
expect(cookie).toEqual(
|
||||
expect.stringMatching(/^immich_maintenance_token=[A-Za-z0-9-_]*\.[A-Za-z0-9-_]*\.[A-Za-z0-9-_]*$/),
|
||||
);
|
||||
@@ -149,7 +149,7 @@ describe('/admin/maintenance', () => {
|
||||
const { status, body } = await request(app)
|
||||
.post('/admin/maintenance/login')
|
||||
.send({
|
||||
token: cookie!.split('=', 2)[1].trim(),
|
||||
token: cookie!.split('=')[1].trim(),
|
||||
});
|
||||
expect(status).toBe(201);
|
||||
expect(body).toEqual(
|
||||
|
||||
@@ -27,7 +27,7 @@ test.describe('Maintenance', () => {
|
||||
test('maintenance shows no options to users until they authenticate', async ({ page }) => {
|
||||
const setCookie = await utils.enterMaintenance(admin.accessToken);
|
||||
const cookie = setCookie
|
||||
?.map((cookie) => cookie.split(';', 1)[0].split('='))
|
||||
?.map((cookie) => cookie.split(';')[0].split('='))
|
||||
?.find(([name]) => name === 'immich_maintenance_token');
|
||||
|
||||
expect(cookie).toBeTruthy();
|
||||
|
||||
@@ -120,7 +120,6 @@ describe('/albums', () => {
|
||||
}),
|
||||
]);
|
||||
|
||||
// eslint-disable-next-line unicorn/no-unreadable-array-destructuring
|
||||
[user2Albums[0]] = await Promise.all([
|
||||
getAlbumInfo({ id: user2Albums[0].id }, { headers: asBearerAuth(user2.accessToken) }),
|
||||
deleteUserAdmin({ id: user3.userId, userAdminDeleteDto: {} }, { headers: asBearerAuth(admin.accessToken) }),
|
||||
@@ -797,22 +796,5 @@ describe('/albums', () => {
|
||||
expect(status).toBe(400);
|
||||
expect(body).toEqual(errorDto.badRequest('Not found or no album.share access'));
|
||||
});
|
||||
|
||||
it('should not allow an editor to change the role of an owner', async () => {
|
||||
const album = await utils.createAlbum(user1.accessToken, {
|
||||
albumName: 'testAlbum',
|
||||
albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Editor }],
|
||||
});
|
||||
|
||||
expect(album.albumUsers[1].role).toEqual(AlbumUserRole.Editor);
|
||||
|
||||
const { status, body } = await request(app)
|
||||
.put(`/albums/${album.id}/user/${user1.userId}`)
|
||||
.set('Authorization', `Bearer ${user2.accessToken}`)
|
||||
.send({ role: AlbumUserRole.Editor });
|
||||
|
||||
expect(status).toBe(400);
|
||||
expect(body).toEqual(errorDto.badRequest('User is owner'));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -781,7 +781,7 @@ describe('/asset', () => {
|
||||
exifImageWidth: 4032,
|
||||
exifImageHeight: 3024,
|
||||
latitude: 41.2203,
|
||||
longitude: -96.071625,
|
||||
longitude: -96.071_625,
|
||||
make: 'Apple',
|
||||
model: 'iPhone 7',
|
||||
lensModel: 'iPhone 7 back camera 3.99mm f/1.8',
|
||||
@@ -973,9 +973,9 @@ describe('/asset', () => {
|
||||
fileSizeInByte: 31_175_472,
|
||||
focalLength: 18.3,
|
||||
iso: 100,
|
||||
latitude: 36.61324,
|
||||
latitude: 36.613_24,
|
||||
lensModel: '18.3mm F2.8',
|
||||
longitude: -121.89785,
|
||||
longitude: -121.897_85,
|
||||
make: 'RICOH IMAGING COMPANY, LTD.',
|
||||
model: 'RICOH GR III',
|
||||
orientation: '1',
|
||||
|
||||
@@ -75,7 +75,7 @@ describe('/map', () => {
|
||||
country: 'United States of America',
|
||||
id: expect.any(String),
|
||||
lat: expect.closeTo(39.115),
|
||||
lon: expect.closeTo(-108.400968),
|
||||
lon: expect.closeTo(-108.400_968),
|
||||
state: 'Colorado',
|
||||
},
|
||||
{
|
||||
@@ -83,7 +83,7 @@ describe('/map', () => {
|
||||
country: 'United States of America',
|
||||
id: expect.any(String),
|
||||
lat: expect.closeTo(41.2203),
|
||||
lon: expect.closeTo(-96.071625),
|
||||
lon: expect.closeTo(-96.071_625),
|
||||
state: 'Nebraska',
|
||||
},
|
||||
]);
|
||||
@@ -123,7 +123,7 @@ describe('/map', () => {
|
||||
country: 'United States of America',
|
||||
id: expect.any(String),
|
||||
lat: expect.closeTo(39.115),
|
||||
lon: expect.closeTo(-108.400968),
|
||||
lon: expect.closeTo(-108.400_968),
|
||||
state: 'Colorado',
|
||||
},
|
||||
{
|
||||
@@ -131,7 +131,7 @@ describe('/map', () => {
|
||||
country: 'United States of America',
|
||||
id: expect.any(String),
|
||||
lat: expect.closeTo(41.2203),
|
||||
lon: expect.closeTo(-96.071625),
|
||||
lon: expect.closeTo(-96.071_625),
|
||||
state: 'Nebraska',
|
||||
},
|
||||
]);
|
||||
@@ -188,20 +188,20 @@ describe('/map', () => {
|
||||
const reverseGeocodeTestCases = [
|
||||
{
|
||||
name: 'Vaucluse',
|
||||
lat: -33.85897705866313,
|
||||
lon: 151.27849073027048,
|
||||
lat: -33.858_977_058_663_13,
|
||||
lon: 151.278_490_730_270_48,
|
||||
results: [{ city: 'Vaucluse', state: 'New South Wales', country: 'Australia' }],
|
||||
},
|
||||
{
|
||||
name: 'Ravenhall',
|
||||
lat: -37.76573239917475,
|
||||
lon: 144.7524531648833,
|
||||
lat: -37.765_732_399_174_75,
|
||||
lon: 144.752_453_164_883_3,
|
||||
results: [{ city: 'Ravenhall', state: 'Victoria', country: 'Australia' }],
|
||||
},
|
||||
{
|
||||
name: 'Scarborough',
|
||||
lat: -31.894346156789997,
|
||||
lon: 115.75761710390464,
|
||||
lat: -31.894_346_156_789_997,
|
||||
lon: 115.757_617_103_904_64,
|
||||
results: [{ city: 'Scarborough', state: 'Western Australia', country: 'Australia' }],
|
||||
},
|
||||
];
|
||||
|
||||
@@ -44,7 +44,7 @@ const loginWithOAuth = async (sub: OAuthUser | string, redirectUri?: string) =>
|
||||
});
|
||||
|
||||
// login
|
||||
const response1 = await redirect(url.replace(authServer.internal, () => authServer.external));
|
||||
const response1 = await redirect(url.replace(authServer.internal, authServer.external));
|
||||
const response2 = await request(authServer.external + response1.location)
|
||||
.post('')
|
||||
.set('Cookie', response1.cookies)
|
||||
|
||||
@@ -4,7 +4,6 @@ import {
|
||||
AssetVisibility,
|
||||
deleteAssets,
|
||||
LoginResponseDto,
|
||||
SharedLinkType,
|
||||
updateAsset,
|
||||
} from '@immich/sdk';
|
||||
import { DateTime } from 'luxon';
|
||||
@@ -87,23 +86,23 @@ describe('/search', () => {
|
||||
|
||||
// note: the coordinates here are not the actual coordinates of the images and are random for most of them
|
||||
const coordinates = [
|
||||
{ latitude: 48.85341, longitude: 2.3488 }, // paris
|
||||
{ latitude: 35.6895, longitude: 139.69171 }, // tokyo
|
||||
{ latitude: 52.52437, longitude: 13.41053 }, // berlin
|
||||
{ latitude: 1.3146631, longitude: 103.8454093 }, // singapore
|
||||
{ latitude: 41.01384, longitude: 28.94966 }, // istanbul
|
||||
{ latitude: 5.55602, longitude: -0.1969 }, // accra
|
||||
{ latitude: 37.5442706, longitude: -4.7277528 }, // andalusia
|
||||
{ latitude: 23.13302, longitude: -82.38304 }, // havana
|
||||
{ latitude: 41.69411, longitude: 44.83368 }, // tbilisi
|
||||
{ latitude: 31.22222, longitude: 121.45806 }, // shanghai
|
||||
{ latitude: 48.853_41, longitude: 2.3488 }, // paris
|
||||
{ latitude: 35.6895, longitude: 139.691_71 }, // tokyo
|
||||
{ latitude: 52.524_37, longitude: 13.410_53 }, // berlin
|
||||
{ latitude: 1.314_663_1, longitude: 103.845_409_3 }, // singapore
|
||||
{ latitude: 41.013_84, longitude: 28.949_66 }, // istanbul
|
||||
{ latitude: 5.556_02, longitude: -0.1969 }, // accra
|
||||
{ latitude: 37.544_270_6, longitude: -4.727_752_8 }, // andalusia
|
||||
{ latitude: 23.133_02, longitude: -82.383_04 }, // havana
|
||||
{ latitude: 41.694_11, longitude: 44.833_68 }, // tbilisi
|
||||
{ latitude: 31.222_22, longitude: 121.458_06 }, // shanghai
|
||||
{ latitude: 38.9711, longitude: -109.7137 }, // thompson springs
|
||||
{ latitude: 40.71427, longitude: -74.00597 }, // new york
|
||||
{ latitude: 47.04057, longitude: 9.06804 }, // glarus
|
||||
{ latitude: 32.77152, longitude: -89.11673 }, // philadelphia
|
||||
{ latitude: 31.63416, longitude: -7.99994 }, // marrakesh
|
||||
{ latitude: 38.5237354, longitude: -78.4886194 }, // tanners ridge
|
||||
{ latitude: 59.93863, longitude: 30.31413 }, // st. petersburg
|
||||
{ latitude: 40.714_27, longitude: -74.005_97 }, // new york
|
||||
{ latitude: 47.040_57, longitude: 9.068_04 }, // glarus
|
||||
{ latitude: 32.771_52, longitude: -89.116_73 }, // philadelphia
|
||||
{ latitude: 31.634_16, longitude: -7.999_94 }, // marrakesh
|
||||
{ latitude: 38.523_735_4, longitude: -78.488_619_4 }, // tanners ridge
|
||||
{ latitude: 59.938_63, longitude: 30.314_13 }, // st. petersburg
|
||||
{ latitude: 0, longitude: 0 }, // null island
|
||||
];
|
||||
|
||||
@@ -112,7 +111,7 @@ describe('/search', () => {
|
||||
);
|
||||
|
||||
await Promise.all(updates);
|
||||
for (const i of coordinates.keys()) {
|
||||
for (const [i] of coordinates.entries()) {
|
||||
await utils.waitForWebsocketEvent({ event: 'assetUpdate', id: assets[i].id });
|
||||
}
|
||||
|
||||
@@ -358,32 +357,6 @@ describe('/search', () => {
|
||||
expect(body.assets.items).toHaveLength(assets.length);
|
||||
});
|
||||
}
|
||||
|
||||
it('should reject shared link access without an album filter', async () => {
|
||||
const album = await utils.createAlbum(admin.accessToken, { albumName: 'foo' });
|
||||
const sharedLink = await utils.createSharedLink(admin.accessToken, {
|
||||
type: SharedLinkType.Album,
|
||||
albumId: album.id,
|
||||
});
|
||||
const { status, body } = await request(app).post(`/search/metadata?key=${sharedLink.key}`).send({});
|
||||
expect(status).toBe(400);
|
||||
expect(body).toEqual({ message: 'Shared link access is only allowed in combination with an albumIds filter' });
|
||||
});
|
||||
|
||||
it('should allow shared link access for albums', async () => {
|
||||
const asset = await utils.createAsset(admin.accessToken);
|
||||
const album = await utils.createAlbum(admin.accessToken, { albumName: 'foo', assetIds: [asset.id] });
|
||||
const sharedLink = await utils.createSharedLink(admin.accessToken, {
|
||||
type: SharedLinkType.Album,
|
||||
albumId: album.id,
|
||||
});
|
||||
|
||||
const { status, body } = await request(app)
|
||||
.post(`/search/metadata?key=${sharedLink.key}`)
|
||||
.send({ albumIds: [album.id] });
|
||||
expect(status).toBe(200);
|
||||
expect(body.assets.items).toEqual([expect.objectContaining({ id: asset.id })]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('POST /search/random', () => {
|
||||
|
||||
@@ -91,14 +91,12 @@ describe('/server', () => {
|
||||
it('should respond with the server version', async () => {
|
||||
const { status, body } = await request(app).get('/server/version');
|
||||
expect(status).toBe(200);
|
||||
expect(body).toEqual(
|
||||
expect.objectContaining({
|
||||
major: expect.any(Number),
|
||||
minor: expect.any(Number),
|
||||
patch: expect.any(Number),
|
||||
}),
|
||||
);
|
||||
expect(Object.keys(body)).toEqual(expect.arrayContaining(['major', 'minor', 'patch', 'prerelease']));
|
||||
expect(body).toEqual({
|
||||
major: expect.any(Number),
|
||||
minor: expect.any(Number),
|
||||
patch: expect.any(Number),
|
||||
prerelease: expect.anything(),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ describe(`immich login`, () => {
|
||||
it('should login and save auth.yml with 600', async () => {
|
||||
const admin = await utils.adminSetup();
|
||||
const key = await utils.createApiKey(admin.accessToken, [Permission.All]);
|
||||
const { stdout, stderr, exitCode } = await immichCli(['login', app, key.secret]);
|
||||
const { stdout, stderr, exitCode } = await immichCli(['login', app, `${key.secret}`]);
|
||||
expect(stdout.split('\n')).toEqual([
|
||||
'Logging in to http://127.0.0.1:2285/api',
|
||||
'Logged in as admin@immich.cloud',
|
||||
@@ -48,7 +48,7 @@ describe(`immich login`, () => {
|
||||
it('should login without /api in the url', async () => {
|
||||
const admin = await utils.adminSetup();
|
||||
const key = await utils.createApiKey(admin.accessToken, [Permission.All]);
|
||||
const { stdout, stderr, exitCode } = await immichCli(['login', app.replaceAll('/api', ''), key.secret]);
|
||||
const { stdout, stderr, exitCode } = await immichCli(['login', app.replaceAll('/api', ''), `${key.secret}`]);
|
||||
expect(stdout.split('\n')).toEqual([
|
||||
'Logging in to http://127.0.0.1:2285',
|
||||
'Discovered API at http://127.0.0.1:2285/api',
|
||||
|
||||
@@ -119,9 +119,7 @@ describe(`immich upload`, () => {
|
||||
const baseDir = `/tmp/upload/`;
|
||||
|
||||
const testPaths = Object.keys(files).map((filePath) => `${baseDir}/${filePath}`);
|
||||
for (const filePath of testPaths) {
|
||||
utils.createImageFile(filePath);
|
||||
}
|
||||
testPaths.map((filePath) => utils.createImageFile(filePath));
|
||||
|
||||
const commandLine = paths.map((argument) => `${baseDir}/${argument}`);
|
||||
|
||||
@@ -137,9 +135,7 @@ describe(`immich upload`, () => {
|
||||
const assets = await getAssetStatistics({}, { headers: asKeyAuth(key) });
|
||||
expect(assets.total).toBe(expectedCount);
|
||||
|
||||
for (const filePath of testPaths) {
|
||||
utils.removeImageFile(filePath);
|
||||
}
|
||||
testPaths.map((filePath) => utils.removeImageFile(filePath));
|
||||
});
|
||||
}
|
||||
});
|
||||
@@ -650,7 +646,7 @@ describe(`immich upload`, () => {
|
||||
]);
|
||||
|
||||
expect(stdout).toBe('');
|
||||
expect(stderr).toEqual(`error: option '-n, --dry-run' cannot be used with option '--skip-hash'`);
|
||||
expect(stderr).toEqual(`error: option '-n, --dry-run' cannot be used with option '-h, --skip-hash'`);
|
||||
expect(exitCode).not.toBe(0);
|
||||
|
||||
const assets = await getAssetStatistics({}, { headers: asKeyAuth(key) });
|
||||
|
||||
@@ -65,10 +65,6 @@ describe(`immich-admin`, () => {
|
||||
child.stdout.on('data', (chunk) => {
|
||||
data += chunk;
|
||||
if (data.includes('Please choose a new password (optional)')) {
|
||||
child.stdin.write('\n');
|
||||
}
|
||||
|
||||
if (data.includes('Invalidate existing sessions?')) {
|
||||
child.stdin.end('\n');
|
||||
}
|
||||
});
|
||||
|
||||
@@ -21,7 +21,7 @@ export const randomImageFromString = async (
|
||||
let seedNumber = 0;
|
||||
for (let i = 0; i < seed.length; i++) {
|
||||
seedNumber = (seedNumber << 5) - seedNumber + (seed.codePointAt(i) ?? 0);
|
||||
seedNumber &= seedNumber; // Convert to 32bit integer
|
||||
seedNumber = seedNumber & seedNumber; // Convert to 32bit integer
|
||||
}
|
||||
return randomImage(new SeededRandom(Math.abs(seedNumber)), { width, height });
|
||||
};
|
||||
|
||||
@@ -64,7 +64,7 @@ export function generateAsset(
|
||||
const asset: MockTimelineAsset = {
|
||||
id: assetId,
|
||||
ownerId,
|
||||
ratio: Number(ratio.split(':', 1)[0]) / Number(ratio.split(':', 2)[1]),
|
||||
ratio: Number.parseFloat(ratio.split(':')[0]) / Number.parseFloat(ratio.split(':')[1]),
|
||||
thumbhash: generateThumbhash(rng),
|
||||
localDateTime: date.toISOString(),
|
||||
fileCreatedAt: date.toISOString(),
|
||||
@@ -214,7 +214,7 @@ export function generateTimelineData(config: TimelineConfig): MockTimelineData {
|
||||
}
|
||||
|
||||
// Create a mock album from random assets
|
||||
const allAssets = buckets.values().toArray().flat();
|
||||
const allAssets = [...buckets.values()].flat();
|
||||
|
||||
// Select 10-30 random assets for the album (or all assets if less than 10)
|
||||
const albumSize = Math.min(allAssets.length, globalRng.nextInt(10, 31));
|
||||
|
||||
@@ -172,7 +172,11 @@ function shouldIncludeAsset(
|
||||
if (isArchived !== undefined && actuallyArchived !== isArchived) {
|
||||
return false;
|
||||
}
|
||||
return isFavorite === undefined || actuallyFavorited === isFavorite;
|
||||
if (isFavorite !== undefined && actuallyFavorited !== isFavorite) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Get summary for all buckets (mimics getTimeBuckets API)
|
||||
@@ -357,7 +361,7 @@ export function getAsset(
|
||||
owner?: UserResponseDto,
|
||||
): AssetResponseDto | undefined {
|
||||
// Search through all buckets for the asset
|
||||
const buckets = timelineData.buckets.values().toArray();
|
||||
const buckets = [...timelineData.buckets.values()];
|
||||
for (const assets of buckets) {
|
||||
const asset = assets.find((a) => a.id === assetId);
|
||||
if (asset) {
|
||||
@@ -391,7 +395,7 @@ export function getAlbum(
|
||||
|
||||
// Get the actual asset objects from the timeline data
|
||||
const albumAssets: AssetResponseDto[] = [];
|
||||
const allAssets = timelineData.buckets.values().toArray().flat();
|
||||
const allAssets = [...timelineData.buckets.values()].flat();
|
||||
|
||||
for (const assetId of album.assetIds) {
|
||||
const assetConfig = allAssets.find((a) => a.id === assetId);
|
||||
|
||||
@@ -143,7 +143,7 @@ export function validateTimelineConfig(config: TimelineConfig): void {
|
||||
}
|
||||
|
||||
// Validate seed if provided
|
||||
if (config.seed !== undefined && (config.seed < 0 || !Number.isSafeInteger(config.seed))) {
|
||||
if (config.seed !== undefined && (config.seed < 0 || !Number.isInteger(config.seed))) {
|
||||
throw new Error('Seed must be a non-negative integer');
|
||||
}
|
||||
|
||||
|
||||
@@ -153,8 +153,11 @@ export function getMockAsset(
|
||||
const isInDifferentPeriod = (date1: DateTime, date2: DateTime): boolean => {
|
||||
if (unit === 'day') {
|
||||
return !date1.startOf('day').equals(date2.startOf('day'));
|
||||
} else if (unit === 'month') {
|
||||
return date1.year !== date2.year || date1.month !== date2.month;
|
||||
} else {
|
||||
return date1.year !== date2.year;
|
||||
}
|
||||
return unit === 'month' ? date1.year !== date2.year || date1.month !== date2.month : date1.year !== date2.year;
|
||||
};
|
||||
|
||||
if (direction === 'next') {
|
||||
|
||||
@@ -82,9 +82,6 @@ export const setupBaseMockApiRoutes = async (context: BrowserContext, adminUserI
|
||||
cast: {
|
||||
gCastEnabled: false,
|
||||
},
|
||||
recentlyAdded: {
|
||||
sidebarWeb: false,
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
@@ -40,8 +40,7 @@ export const setupTimelineMockApiRoutes = async (
|
||||
contentType: 'application/json',
|
||||
json: getTimeBuckets(timelineRestData, isTrashed, isArchived, isFavorite, albumId, changes),
|
||||
});
|
||||
}
|
||||
if (pathname === '/api/timeline/bucket') {
|
||||
} else if (pathname === '/api/timeline/bucket') {
|
||||
const timeBucket = url.searchParams.get('timeBucket');
|
||||
if (!timeBucket) {
|
||||
return route.continue();
|
||||
|
||||
@@ -38,7 +38,7 @@ test.describe('asset-viewer', () => {
|
||||
assets.push(...timeBucket);
|
||||
}
|
||||
for (const yearMonth of timelineRestData.buckets.keys()) {
|
||||
const [year, month] = yearMonth.split('-', 2);
|
||||
const [year, month] = yearMonth.split('-');
|
||||
yearMonths.push(`${year}-${Number(month)}`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -110,7 +110,6 @@ export async function enableTagsPreference(context: BrowserContext) {
|
||||
download: { archiveSize: 4_294_967_296, includeEmbeddedVideos: false },
|
||||
purchase: { showSupportBadge: true, hideBuyButtonUntil: '2100-02-12T00:00:00.000Z' },
|
||||
cast: { gCastEnabled: false },
|
||||
recentlyAdded: { sidebarWeb: false },
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable unicorn/no-this-outside-of-class */
|
||||
import type { AssetResponseDto } from '@immich/sdk';
|
||||
import { expect, Page } from '@playwright/test';
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ test.describe('Timeline', () => {
|
||||
assets.push(...timeBucket);
|
||||
}
|
||||
for (const yearMonth of timelineRestData.buckets.keys()) {
|
||||
const [year, month] = yearMonth.split('-', 2);
|
||||
const [year, month] = yearMonth.split('-');
|
||||
yearMonths.push(`${year}-${Number(month)}`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -7,7 +7,7 @@ export const sleep = (ms: number) => {
|
||||
};
|
||||
|
||||
export const padYearMonth = (yearMonth: string) => {
|
||||
const [year, month] = yearMonth.split('-', 2);
|
||||
const [year, month] = yearMonth.split('-');
|
||||
return `${year}-${month.padStart(2, '0')}`;
|
||||
};
|
||||
|
||||
@@ -72,7 +72,6 @@ export const thumbnailUtils = {
|
||||
},
|
||||
async queryThumbnailInViewport(page: Page, collector: (assetId: string) => boolean) {
|
||||
const assetIds: string[] = [];
|
||||
// eslint-disable-next-line unicorn/no-this-outside-of-class
|
||||
for (const thumb of await this.locator(page).all()) {
|
||||
const box = await thumb.boundingBox();
|
||||
if (box) {
|
||||
@@ -152,7 +151,6 @@ export const timelineUtils = {
|
||||
page.evaluate(() => {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
|
||||
return document.querySelector('#asset-grid').scrollTop;
|
||||
});
|
||||
await expect.poll(queryTop).toBeGreaterThan(0);
|
||||
@@ -179,7 +177,6 @@ export const assetViewerUtils = {
|
||||
page.evaluate(() => {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-ignore
|
||||
// eslint-disable-next-line unicorn/no-optional-chaining-on-undeclared-variable
|
||||
return document.activeElement?.dataset?.asset;
|
||||
});
|
||||
await expect(poll(page, activeElement, (result) => result === assetId)).resolves.toBe(assetId);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* eslint-disable unicorn/no-top-level-assignment-in-function */
|
||||
import {
|
||||
AssetMediaCreateDto,
|
||||
AssetMediaResponseDto,
|
||||
@@ -178,7 +177,7 @@ export const utils = {
|
||||
resetDatabase: async (tables?: string[]) => {
|
||||
client = await utils.connectDatabase();
|
||||
|
||||
tables ||= [
|
||||
tables = tables || [
|
||||
// TODO e2e test for deleting a stack, since it is quite complex
|
||||
'stack',
|
||||
'library',
|
||||
@@ -305,7 +304,7 @@ export const utils = {
|
||||
},
|
||||
|
||||
adminSetup: async (options?: AdminSetupOptions) => {
|
||||
options ||= { onboarding: true };
|
||||
options = options || { onboarding: true };
|
||||
|
||||
await signUpAdmin({ signUpDto: signupDto.admin });
|
||||
const response = await login({ loginCredentialDto: loginDto.admin });
|
||||
@@ -546,7 +545,6 @@ export const utils = {
|
||||
{
|
||||
headers: asBearerAuth(accessToken),
|
||||
fetch: (...args: Parameters<typeof fetch>) =>
|
||||
// eslint-disable-next-line unicorn/no-invalid-argument-count, unicorn/prefer-await
|
||||
fetch(...args).then((response) => {
|
||||
setCookie = response.headers.getSetCookie();
|
||||
return response;
|
||||
@@ -676,7 +674,7 @@ export const utils = {
|
||||
|
||||
cliLogin: async (accessToken: string) => {
|
||||
const key = await utils.createApiKey(accessToken, [Permission.All]);
|
||||
await immichCli(['login', app, key.secret]);
|
||||
await immichCli(['login', app, `${key.secret}`]);
|
||||
return key.secret;
|
||||
},
|
||||
|
||||
@@ -708,7 +706,6 @@ export const utils = {
|
||||
},
|
||||
};
|
||||
|
||||
// eslint-disable-next-line unicorn/no-top-level-side-effects
|
||||
utils.initSdk();
|
||||
|
||||
if (!existsSync(`${testAssetDir}/albums`)) {
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"resolveJsonModule": true,
|
||||
"target": "es2023",
|
||||
"lib": ["dom", "ESNext"],
|
||||
"sourceMap": true,
|
||||
"outDir": "./dist",
|
||||
"incremental": true,
|
||||
|
||||
25
i18n/af.json
25
i18n/af.json
@@ -23,7 +23,6 @@
|
||||
"add_location": "Voeg ligging toe",
|
||||
"add_partner": "Voeg vennoot toe",
|
||||
"add_photos": "Voeg foto’s toe",
|
||||
"add_step": "Voeg stap by",
|
||||
"add_tag": "Voeg etiket toe",
|
||||
"add_to": "Voeg toe tot…",
|
||||
"add_to_album": "Voeg toe tot album",
|
||||
@@ -50,7 +49,6 @@
|
||||
"backup_database": "Skep Databasisstortlêer",
|
||||
"backup_database_enable_description": "Aktiveer databasisstortlêers",
|
||||
"backup_keep_last_amount": "Aantal vorige stortlêers om te hou",
|
||||
"backup_onboarding_1_description": "kopie in die wolk of op 'n ander fisiese plek.",
|
||||
"backup_onboarding_2_description": "plaaslike kopieë op verskillende toestelle. Dit sluit die hooflêers en ’n rugsteun van daardie lêers plaaslik in.",
|
||||
"backup_onboarding_3_description": "totale kopieë van u data, insluitend die oorspronklike lêers. Dit sluit 1 kopie op ’n ander perseel en 2 lokale kopieë in.",
|
||||
"backup_onboarding_description": "’n <backblaze-link>3-2-1-rugsteunstrategie</backblaze-link> word sterk aanbeveel om u data veilig te hou. Hou kopieë van u foto’s/video’s sowel as die Immich-databasis vir ’n volledige rugsteunoplossing.",
|
||||
@@ -73,7 +71,6 @@
|
||||
"cron_expression_description": "Stel die skanderingsinterval in met die cron-formaat. Kyk gerus na bv. <link>Crontab Guru</link> vir meer inligting",
|
||||
"cron_expression_presets": "Cron-uitdrukking voorafinstellings",
|
||||
"disable_login": "Deaktiveer aantekening",
|
||||
"download_csv": "Laai CSV af",
|
||||
"duplicate_detection_job_description": "Begin masjienleer op items om soortgelyke beelde op te spoor. Maak staat op Slimsoek",
|
||||
"exclusion_pattern_description": "Met uitsluitingspatrone kan u lêers en vouers ignoreer wanneer u u biblioteek skandeer. Dit is nuttig as u vouers het wat lêers bevat wat u nie wil invoer nie, soos RAW-lêers.",
|
||||
"export_config_as_json_description": "Laai die huidige stelselkonfigurasie af as ’n JSON‑lêer",
|
||||
@@ -87,18 +84,12 @@
|
||||
"image_format_description": "WebP lewer kleiner lêers as JPEG, maar is stadiger om te enkodeer.",
|
||||
"image_fullsize_description": "Volgrootte prent met geen metadata, gebruik wanner ingezoem",
|
||||
"image_fullsize_enabled": "Aktiveer spek van volgrootte prent",
|
||||
"image_fullsize_enabled_description": "Genereer 'n volformaat-beeld vir formate wat nie webvriendelik is nie. Wanneer \"Verkies ingebedde voorskou\" geaktiveer is, word ingebedde voorskoue direk gebruik sonder omskakeling. Dit het geen invloed op webvriendelike formate soos JPEG nie.",
|
||||
"image_fullsize_quality_description": "Beeldgehalte op volle grootte van 1 tot 100. Hoër is beter, maar lewer groter lêers op.",
|
||||
"image_fullsize_title": "Instellings vir volformaat-beeld",
|
||||
"image_prefer_embedded_preview": "Verkies ingebedde voorskou",
|
||||
"image_prefer_embedded_preview_setting_description": "Gebruik ingebedde voorskoue in RAW-foto's as invoer vir beeldverwerking wanneer dit beskikbaar is. Dit kan vir sommige beelde akkurater kleure lewer, maar die gehalte van die voorskou hang van die kamera af en die beeld kan meer kompressie-artefakte vertoon.",
|
||||
"image_prefer_wide_gamut": "Verkies breëspektrum",
|
||||
"image_prefer_wide_gamut_setting_description": "Gebruik Display P3 vir duimnaels. Dit behou die lewendheid van beelde met wye kleurruimtes beter, maar beelde kan anders verskyn op ou toestelle met ’n ou blaaierweergawe. sRGB-beelde gebruik steeds sRGB om kleurverskuiwings te voorkom.",
|
||||
"image_preview_description": "Mediumgrootte prent met gestroopte metadata, wat gebruik word wanneer ’n enkele item bekyk word en vir masjienleer",
|
||||
"image_preview_quality_description": "Voorskoukwaliteit van 1-100. Hoër is beter, maar lewer groter lêers en kan die toep vertraag. Die stel van ’n lae waarde kan masjienleerkwaliteit beïnvloed.",
|
||||
"image_preview_title": "Voorskou-instellings",
|
||||
"image_progressive": "Progresiewe",
|
||||
"image_progressive_description": "Kodeer JPEG-beelde progressief vir geleidelike laai en vertoning. Dit het geen uitwerking op WebP-beelde nie.",
|
||||
"image_quality": "Kwaliteit",
|
||||
"image_resolution": "Resolusie",
|
||||
"image_resolution_description": "Hoër resolusies kan meer detail bewaar, maar neem langer om te enkodeer, het groter lêergroottes en kan die toep vertraag.",
|
||||
@@ -107,22 +98,6 @@
|
||||
"image_thumbnail_description": "Klein duimnaels sonder metadata, gebruik om groepe foto’s soos die tydlyn te bekyk",
|
||||
"image_thumbnail_quality_description": "Duinmaelkwaliteit van 1-100. Hoër is beter, maar lewer groter lêers en kan die toep vertraag.",
|
||||
"image_thumbnail_title": "Duimnaelinstellings",
|
||||
"import_config_from_json_description": "Voer stelselkonfigurasie in deur 'n JSON-konfigurasielêer op te laai",
|
||||
"integrity_checks_checksum_files": "kontrolesomlêer",
|
||||
"integrity_checks_checksum_files_description": "Konfigureer die kontrolesom-kontrole",
|
||||
"integrity_checks_checksum_files_enable_description": "Aktiveer die kontrolesom-kontrolering",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Persentasie limiet",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Konfigureer die maksimum persentasie tussen 0.01 en 1 vir die mate waarin die kontrolesom-kontrole tydens elke interval uitgevoer moet word.",
|
||||
"integrity_checks_checksum_files_time_limit": "Tyd limiet",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Konfigureer die maksimum duur waarvoor die kontrolesom-kontrole tydens elke interval moet loop. (ms)",
|
||||
"integrity_checks_missing_files": "Ontbrekende lêers",
|
||||
"integrity_checks_missing_files_description": "Konfigureer die frekwensie en aktiveer of deaktiveer die kontrole vir ontbrekende lêers",
|
||||
"integrity_checks_missing_files_enable_description": "Aktiveer die kontrole vir ontbrekende lêers",
|
||||
"integrity_checks_settings": "integriteitskontroles",
|
||||
"integrity_checks_settings_description": "Bestuur tussenposes vir integriteitskontroles",
|
||||
"integrity_checks_untracked_files": "Ongevokgde lêers",
|
||||
"integrity_checks_untracked_files_description": "Konfigureer die frekwensie en aktiveer of deaktiveer die kontrole vir ongevolgde lêers",
|
||||
"integrity_checks_untracked_files_enable_description": "Aktiveer die kontrole van ongevolgde lêers",
|
||||
"job_concurrency": "{job} gelyktydigheid",
|
||||
"job_created": "Taak geskep",
|
||||
"job_not_concurrency_safe": "Hierdie taak kan nie gelyktydig uitgevoer word nie.",
|
||||
|
||||
17
i18n/ar.json
17
i18n/ar.json
@@ -108,20 +108,6 @@
|
||||
"image_thumbnail_quality_description": "تتراوح جودة الصورة المصغرة من 1 إلى 100. كلما كانت الجودة أعلى كان ذلك أفضل، ولكنها تنتج ملفات أكبر وقد تقلل من استجابة التطبيق.",
|
||||
"image_thumbnail_title": "إعدادات الصورة المصغرة",
|
||||
"import_config_from_json_description": "استيراد اعدادات النظام بتحميل ملف اعدادات بصيغة JSON",
|
||||
"integrity_checks_checksum_files": "ملفات الجمع التحققي",
|
||||
"integrity_checks_checksum_files_description": "ضبط التحقق من الجمع التحققي",
|
||||
"integrity_checks_checksum_files_enable_description": "تفعيل التحقق من الجمع التحققي",
|
||||
"integrity_checks_checksum_files_percentage_limit": "حد النسبه المئويه",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "ضبط الحد الاعلى النسبه المئويه بين 0.01 و 1 لتحديد كم يجب ان يعمل التحقق من الجمع التحققي بكل فتره.",
|
||||
"integrity_checks_checksum_files_time_limit": "الحد الزمني",
|
||||
"integrity_checks_checksum_files_time_limit_description": "قم بضبط الحد الأقصى للمدة التي يجب أن تستغرقها عملية التحقق من المجموع الاختباري (checksum) في كل فاصل زمني. (بالملي ثانية)",
|
||||
"integrity_checks_missing_files": "ملفات مفقودة",
|
||||
"integrity_checks_missing_files_description": "ضبط وتيرة الفحص وتفعيل أو تعطيل فحص الملفات المفقودة",
|
||||
"integrity_checks_missing_files_enable_description": "تفعيل فحص الملفات المفقودة",
|
||||
"integrity_checks_settings": "فحوصات السلامه",
|
||||
"integrity_checks_settings_description": "إدارة فترات التحقق من السلامة",
|
||||
"integrity_checks_untracked_files": "ملفات غير متعقبه",
|
||||
"integrity_checks_untracked_files_description": "قم بضبط التردد وتفعيل أو تعطيل فحص الملفات غير المتعقبة",
|
||||
"job_concurrency": "تزامن {job}",
|
||||
"job_created": "تم إنشاء الوظيفة",
|
||||
"job_not_concurrency_safe": "هذه الوظيفة غير آمنة للتشغيل المتزامن.",
|
||||
@@ -808,6 +794,7 @@
|
||||
"custom_date": "تاريخ مخصص",
|
||||
"custom_locale": "لغة مخصصة",
|
||||
"custom_locale_description": "تنسيق التواريخ, الأوقات والأرقام بناءً على اللغة والمنطقة المختاره",
|
||||
"custom_url": "رابط مخصص",
|
||||
"cutoff_date_description": "احتفظ بالصور من آخر…",
|
||||
"cutoff_day": "{count, plural, one {يوم} other {ايام}}",
|
||||
"cutoff_year": "{count, plural, one {سنة} other {سنوات}}",
|
||||
@@ -1317,7 +1304,7 @@
|
||||
"login_form_handshake_exception": "كان هناك استثناء مصافحة مع الخادم.تمكين دعم الشهادة الموقعة ذاتيا في الإعدادات إذا كنت تستخدم شهادة موقعة ذاتيا.",
|
||||
"login_form_password_hint": "كلمة المرور",
|
||||
"login_form_server_empty": "أدخل عنوان URL الخادم.",
|
||||
"login_form_server_error": "تعذر الاتصال بالخادم.",
|
||||
"login_form_server_error": "لا يمكن الاتصال بالخادم.",
|
||||
"login_has_been_disabled": "تم تعطيل تسجيل الدخول.",
|
||||
"login_password_changed_error": "كان هناك خطأ في تحديث كلمة المرور الخاصة بك",
|
||||
"login_password_changed_success": "تم تحديث كلمة السر بنجاح",
|
||||
|
||||
56
i18n/az.json
56
i18n/az.json
@@ -23,7 +23,6 @@
|
||||
"add_location": "Məkan əlavə et",
|
||||
"add_partner": "Partnyor əlavə et",
|
||||
"add_photos": "Şəkillər əlavə et",
|
||||
"add_step": "Addım əlavə et",
|
||||
"add_tag": "Etiket əlavə et",
|
||||
"add_to": "Bura əlavə et…",
|
||||
"add_to_album": "Alboma əlavə et",
|
||||
@@ -45,7 +44,7 @@
|
||||
"authentication_settings": "Səlahiyyətləndirmə parametrləri",
|
||||
"authentication_settings_description": "Şifrə, OAuth və digər səlahiyyətləndirmə parametrləri",
|
||||
"authentication_settings_disable_all": "Bütün giriş etmə metodlarını söndürmək istədiyinizdən əminsinizmi? Giriş etmə funksiyası tamamilə söndürüləcəkdir.",
|
||||
"authentication_settings_reenable": "Yenidən aktiv etmək üçün <link>Server Əmri</link> istifadə edin.",
|
||||
"authentication_settings_reenable": "Yenidən aktiv etmək üçün <link> Server Əmri</link>-ni istifadə edin.",
|
||||
"background_task_job": "Arxa plan tapşırıqları",
|
||||
"backup_database": "Verilənlər bazasının dump-ını yaradın",
|
||||
"backup_database_enable_description": "Verilənlər bazasının artıq nüsxələrini aktiv et",
|
||||
@@ -58,11 +57,10 @@
|
||||
"backup_onboarding_parts_title": "3-2-1 ehtiyat nüsxəsinə aşağıdakılar daxildir:",
|
||||
"backup_onboarding_title": "Ehtiyat surətlər",
|
||||
"backup_settings": "Bazanın Dump Parametrləri",
|
||||
"backup_settings_description": "Verilənlər bazasının ehtiyat nüsxə parametrləri.",
|
||||
"backup_settings_description": "Verilənlər bazasının ehtiyat nüsxə parametrlərini idarə et",
|
||||
"cleared_jobs": "{job} üçün tapşırıqlar silindi",
|
||||
"config_set_by_file": "Konfiqurasiya hal-hazırda konfiqurasiya faylı ilə təyin olunub",
|
||||
"confirm_delete_library": "{library} kitabxanasını silmək istədiyinizə əminmisiniz?",
|
||||
"confirm_delete_library_assets": "Bu kitabxananı silmək istədiyinizə əminsiniz? {count, plural, one {# contained asset} other {all # contained assets}} Immich-dən silinəcək və geri qaytarmaq mümkün olmayacaq. Fayllar diskdə qalacaq.",
|
||||
"confirm_email_below": "Təsdiqləmək üçün aşağıya {email} yazın",
|
||||
"confirm_reprocess_all_faces": "Bütün üzləri yenidən emal etmək istədiyinizə əminsiniz? Bu, həmçinin adlandırılmış şəxsləri siləcək.",
|
||||
"confirm_user_password_reset": "{user} adlı istifadəçinin şifrəsini sıfırlamaq istədiyinizdən əminmisiniz?",
|
||||
@@ -73,14 +71,11 @@
|
||||
"cron_expression_description": "Cron formatından istifadə edərək skan intervalını təyin edin. Ətraflı məlumat üçün nümunələrə baxa bilərsiniz. <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "Cron ifadəsi ön ayarları",
|
||||
"disable_login": "Giriş etməni söndür",
|
||||
"download_csv": "CSV endir",
|
||||
"duplicate_detection_job_description": "Bənzər şəkilləri tapmaq üçün maşın öyrənməsini işə salın. Bu prosses Smart Search funksiyasına əsaslanır",
|
||||
"exclusion_pattern_description": "İstisna nümunələri kitabxananızı skan edərkən faylları və qovluqları nəzərə almamağa imkan verir. Bu, RAW faylları kimi idxal etmək istəmədiyiniz faylları olan qovluqlarınız olduqda faydalıdır.",
|
||||
"export_config_as_json_description": "Cari sistem konfiqurasiyasını JSON faylı kimi endirin",
|
||||
"external_libraries_page_description": "Admin xarici kitabxana səhifəsi",
|
||||
"face_detection": "Üz tanıma",
|
||||
"face_detection_description": "Maşın öyrənməsindən istifadə edərək aktivlərdəki üzləri aşkar edilsin. Videolar üçün yalnız eskiz nəzərə alınır. \"Yeniləyin\" bütün elementləri emal edir. \"Sıfırlayın\" əlavə olaraq bütün cari üz məlumatlarını silir. \"Yarımçıq\" hələ emal olunmamış aktivləri növbəyə qoyur. Aşkar edilmiş üzlər Üz Aşkarlama tamamlandıqdan sonra Üz Tanıma üçün növbəyə qoyulacaq və onları mövcud və ya yeni insanlara qruplaşdıracaq.",
|
||||
"facial_recognition_job_description": "Aşkarlanmış üzləri insanlara qruplaşdırın. Bu addım Üz Aşkarlanması tamamlandıqdan sonra icra olunur. \"Sıfırla\" bütün üzləri (simaları) yenidən qruplaşdırır. \"Çatışmayan\" növbələnmiş amma şəxs təyin olmayan üzləri göstərir.",
|
||||
"failed_job_command": "{command} əmri {job} işi üçün uğursuz oldu",
|
||||
"force_delete_user_warning": "XƏBƏRDARLIQ: Bu əməliyyat istifadəçi və bütün məlumatları siləcəkdir. Bu prossesi və silinən faylları geri qaytarmaq olmaz.",
|
||||
"image_format": "Format",
|
||||
@@ -90,39 +85,13 @@
|
||||
"image_fullsize_enabled_description": "Veb üçün uyğun olmayan formatlar üçün tam ölçülü şəkil yaradın. “Daxili önizləməyə üstünlük ver” aktiv olduqda, daxili önizləmələr çevrilmədən birbaşa istifadə olunur. JPEG kimi veb üçün uyğun formatlara təsir etmir.",
|
||||
"image_fullsize_quality_description": "Tam ölçülü şəkil keyfiyyəti (1-100). Daha yüksək dəyər daha yaxşı keyfiyyət verir, lakin daha böyük ölçülü fayl yaradır.",
|
||||
"image_fullsize_title": "Tam ölçülü şəkil tənzimləmələri",
|
||||
"image_prefer_embedded_preview": "Yerləşdirilmiş önizləməyə üstünlük ver",
|
||||
"image_prefer_embedded_preview_setting_description": "RAW fotoşəkillərində təsvir emalı üçün giriş kimi və mümkün olduqda daxil edilmiş önizləmələrdən istifadə edin. Bu, bəzi şəkillər üçün daha dəqiq rənglər yarada bilər, lakin önizləmənin keyfiyyəti kameradan asılıdır və təsvirdə daha çox sıxılma artefaktları ola bilər.",
|
||||
"image_prefer_wide_gamut": "Geniş qammaya üstünlük ver",
|
||||
"image_prefer_wide_gamut_setting_description": "Miniatürlər üçün Display P3 istifadə edin. Bu, geniş rəng diapazonu ilə şəkillərin canlılığını daha yaxşı qoruyur, lakin köhnə brauzer versiyası olan köhnə cihazlarda şəkillər fərqli görünə bilər. Rəng dəyişikliklərinin qarşısını almaq üçün sRGB şəkilləri sRGB olaraq saxlanılır.",
|
||||
"image_preview_description": "Tək bir elementə baxarkən və maşın öyrənməsi üçün istifadə edilən, metaməlumatları silinmiş orta ölçülü şəkil",
|
||||
"image_preview_quality_description": "1-100 arasında önizləmə keyfiyyəti. Daha yüksək olan daha yaxşıdır, lakin daha böyük fayllar yaradır və tətbiqin cəldliyini zəiflədə bilər. Aşağı dəyərin təyin edilməsi maşın öyrənməsinin keyfiyyətinə təsir göstərə bilər.",
|
||||
"image_preview_title": "Önizləmə parametrləri",
|
||||
"image_progressive": "Proqressiv",
|
||||
"image_progressive_description": "Tədricən yüklənmə ekranı üçün JPEG şəkillərini tədricən (proqressiv) kodlaşdırın. Bunun WebP şəkillərinə heç bir təsiri yoxdur.",
|
||||
"image_quality": "Keyfiyyət",
|
||||
"image_resolution": "Çözümlülük",
|
||||
"image_resolution_description": "Yüksək çözümlülükdə daha çox detallar vardır, lakin onları kodlaşdırmaq da daha çox vaxt alır, daha böyük həcmə sahib olurlar və tətbiqin işləmə sürətini yavaşladır.",
|
||||
"image_settings": "Şəklin parametrləri",
|
||||
"image_settings_description": "Hazırlanan şəkillərin keyfiyyətini və çözümlülüyünü idarə et",
|
||||
"image_thumbnail_description": "Əsas zaman xətti kimi foto qruplarına baxarkən istifadə edilən, metaməlumatları silinmiş kiçik eskiz",
|
||||
"image_thumbnail_quality_description": "1-100 arasında eskiz keyfiyyəti. Daha yüksək keyfiyyət daha yaxşıdır, lakin daha böyük fayllar yaradır və tətbiqin cəldliyini zəiflədə bilər.",
|
||||
"image_thumbnail_title": "Önizləmə parametrləri",
|
||||
"import_config_from_json_description": "JSON konfiqurasiya faylını yükləməklə sistem konfiqurasiyasını idxal edin",
|
||||
"integrity_checks_checksum_files": "Yoxlama cəmi (checksum) faylları",
|
||||
"integrity_checks_checksum_files_description": "Yoxlama cəmi (checksum) yoxlamasını konfiqurasiya et",
|
||||
"integrity_checks_checksum_files_enable_description": "Yoxlama cəmi (checksum) yoxlamasını aktivləşdir",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Faiz limiti",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Yoxlama cəmi (checksum) yoxlamasının hər intervalda nə qədər işləməli olduğunun maksimum faizini 0,01 ilə 1 arasında təyin edin.",
|
||||
"integrity_checks_checksum_files_time_limit": "Zaman limiti",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Yoxlama cəmi yoxlamasının hər intervalda işləməli olduğu maksimum müddəti təyin edin. (millisaniyə)",
|
||||
"integrity_checks_missing_files": "Çatışmayan fayllar",
|
||||
"integrity_checks_missing_files_description": "Tezliyi təyin et və çatışmayan faylların yoxlanılmasını aktiv/deaktiv et",
|
||||
"integrity_checks_missing_files_enable_description": "Çatışmayan faylların yoxlanmasını aktiv et",
|
||||
"integrity_checks_settings": "Tamlıq yoxlamaları",
|
||||
"integrity_checks_settings_description": "Tamlıq yoxlamalarının intervalını təyin et",
|
||||
"integrity_checks_untracked_files": "İzlənməyən fayllar",
|
||||
"integrity_checks_untracked_files_description": "İzlənməyən faylların axtarışını aktiv/deaktiv et və tezliyini təyin et",
|
||||
"integrity_checks_untracked_files_enable_description": "İzlənməyən faylların axtarışını aktiv et",
|
||||
"job_concurrency": "{job}paralellik",
|
||||
"job_created": "Tapşırıq yaradıldı",
|
||||
"job_not_concurrency_safe": "Bu iş eyni vaxtda icra üçün təhlükəsiz deyil.",
|
||||
@@ -130,35 +99,21 @@
|
||||
"job_settings_description": "Parallel şəkildə fəaliyyət göstərən tapşırıqları idarə et",
|
||||
"jobs_delayed": "{jobCount, plural, other {# gecikməli}}",
|
||||
"jobs_failed": "{jobCount, plural, other {# uğursuz}}",
|
||||
"jobs_over_time": "Tapşırıqların qrafiki",
|
||||
"library_created": "{library} kitabxanası yaradıldı",
|
||||
"library_deleted": "Kitabxana silindi",
|
||||
"library_details": "Kitabxana parametrləri",
|
||||
"library_folder_description": "İdxal qovluğunu göstərin. Bu qovluqda, alt qovluqlarla birlikdə, şəkil və videolar axtarılacaq.",
|
||||
"library_remove_exclusion_pattern_prompt": "Bu istisna şablonunu silmək istədiyinizə əminsiniz?",
|
||||
"library_remove_folder_prompt": "Bu idxal qovluğunu silmək istədiyinizə əminsiniz?",
|
||||
"library_scanning": "Periodik skan",
|
||||
"library_scanning_description": "Periodik kitabxana skanını confiqurasiya et",
|
||||
"library_scanning_enable_description": "Periodik kitabxana skanını aktivləşdir",
|
||||
"library_settings": "Xarici kitabxana",
|
||||
"library_settings_description": "Xarici kitabxana parametrlərini idarə et",
|
||||
"library_tasks_description": "Xarici kitabxanalarda yenilikləri yoxla",
|
||||
"library_updated": "Yenilənmiş kitabxana",
|
||||
"library_tasks_description": "Kitabxana tapşırıqlarını yerinə yetir",
|
||||
"library_watching_enable_description": "Fayl dəyişiklikləri üçün xarici kitabxanalara baxış keçirin",
|
||||
"library_watching_settings": "Kitabxana nəzarəti [EKSPERİMENTAL]",
|
||||
"library_watching_settings": "Kitabxana nəzarəti (EKSPERİMENTAL)",
|
||||
"library_watching_settings_description": "Dəyişdirilən faylları avtomatik olaraq yoxla",
|
||||
"logging_enable_description": "Jurnalı aktivləşdir",
|
||||
"logging_level_description": "Aktiv edildikdə hansı jurnal səviyyəsi istifadə olunur.",
|
||||
"logging_settings": "Tarixçə",
|
||||
"machine_learning_availability_checks": "Əlçatanlıq yoxlamaları",
|
||||
"machine_learning_availability_checks_description": "Əlçatan maşın öyrənmə serverlərini avtomatik tap və təyin et",
|
||||
"machine_learning_availability_checks_enabled": "Əlçatanlıq yoxlamalarını aktiv et",
|
||||
"machine_learning_availability_checks_interval": "Yoxlama intervalı",
|
||||
"machine_learning_availability_checks_interval_description": "Əlçatanlıq yoxlamaları arasında millisaniyələrlə interval",
|
||||
"machine_learning_availability_checks_timeout": "Sorğunun bitmə müddəti",
|
||||
"machine_learning_availability_checks_timeout_description": "Əlçatanlıq yoxlamaları üçün millisaniyələrlə limit",
|
||||
"machine_learning_clip_model": "CLIP modeli",
|
||||
"machine_learning_clip_model_description": "<link>Burada</link> qeyd olunan CLIP modelinin adı. Modeli dəyişdirdikdən sonra bütün şəkillər üçün 'Ağıllı Axtarış' funksiyasını yenidən işə salmalısınız.",
|
||||
"machine_learning_clip_model_description": "<link>Burada</link>qeyd olunan CLIP modelinin adı. Modeli dəyişdirdikdən sonra bütün şəkillər üçün 'Ağıllı Axtarış' funksiyasını yenidən işə salmalısınız.",
|
||||
"machine_learning_duplicate_detection": "Dublikat Aşkarlama",
|
||||
"machine_learning_duplicate_detection_enabled": "Dublikat aşkarlamanı aktiv etmək",
|
||||
"machine_learning_duplicate_detection_enabled_description": "Əgər deaktiv edilibsə, birə-bir eyni fayllar yenədə silinəcək.",
|
||||
@@ -169,6 +124,5 @@
|
||||
"machine_learning_facial_recognition_description": "Şəkillərdəki üzləri aşkarla, tanı və qruplaşdır",
|
||||
"machine_learning_facial_recognition_model": "Üz tanıma modeli"
|
||||
},
|
||||
"discord": "Discord",
|
||||
"timeline": "Zaman şkalası"
|
||||
}
|
||||
|
||||
481
i18n/be.json
481
i18n/be.json
File diff suppressed because it is too large
Load Diff
49
i18n/bg.json
49
i18n/bg.json
@@ -108,21 +108,6 @@
|
||||
"image_thumbnail_quality_description": "Качество на миниатюрата от 1 до 100. По-високата стойност е по-добра, но води до по-големи файлове и може да намали бързодействието на приложението.",
|
||||
"image_thumbnail_title": "Настройки на миниатюрите",
|
||||
"import_config_from_json_description": "Импорт на системна конфигурация чрез качване на JSON файл",
|
||||
"integrity_checks_checksum_files": "Файлове с контролни суми",
|
||||
"integrity_checks_checksum_files_description": "Настройка на проверката с контролна сума",
|
||||
"integrity_checks_checksum_files_enable_description": "Активиране на проверката с контролна сума",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Процентно ограничение",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Конфигурирайте максималния процент между 0.01 и 1 за това колко често трябва да се изпълнява проверката на контролната сума през всеки интервал.",
|
||||
"integrity_checks_checksum_files_time_limit": "Ограничение на времето",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Конфигурирайте максималната продължителност, за която трябва да се изпълнява проверка на контролната сума за всеки интервал. (ms)",
|
||||
"integrity_checks_missing_files": "Липсващи файловe",
|
||||
"integrity_checks_missing_files_description": "Конфигурирайте честотата и активирайте или деактивирайте проверката за липсващи файлове",
|
||||
"integrity_checks_missing_files_enable_description": "Активиране на проверката за липсващи файлове",
|
||||
"integrity_checks_settings": "Проверка за цялост",
|
||||
"integrity_checks_settings_description": "Управлявайте интервалите за проверка на цялост",
|
||||
"integrity_checks_untracked_files": "Непроследявани файлове",
|
||||
"integrity_checks_untracked_files_description": "Конфигурирайте честотата и активирайте или деактивирайте проверката за непроследявани файлове",
|
||||
"integrity_checks_untracked_files_enable_description": "Активиране на проверката за непроследявани файлове",
|
||||
"job_concurrency": "Паралелност на {job}",
|
||||
"job_created": "Задачата е създадена",
|
||||
"job_not_concurrency_safe": "Тази задача не е безопасна за паралелно изпълнение.",
|
||||
@@ -431,10 +416,6 @@
|
||||
"transcoding_realtime_description": "Позволява транскодиране на видео по време на възпроизвеждане. Разрешава превключване на качеството, но може да предизвика по-голямо забавяне или накъсване на възпроизвеждането според възможностите на сървъра.",
|
||||
"transcoding_realtime_enabled": "Включи транскодиране в реално време",
|
||||
"transcoding_realtime_enabled_description": "Ако е изключено, сървъра ще отказва нова сесия за транскодиране в реално време.",
|
||||
"transcoding_realtime_resolutions": "Резолюции",
|
||||
"transcoding_realtime_resolutions_description": "Възможните резолюции за транскодиране в реално време. Високите резолюции може да предизвикат проблеми при възпроизвеждане, ако сървъра не успява да транскодира достатъчно бързо.",
|
||||
"transcoding_realtime_video_codecs": "Видео кодеци",
|
||||
"transcoding_realtime_video_codecs_description": "Видео кодеци, налични за транскодиране в реално време. При възпроизвеждане клиентите ще изберат най-добрата поддържана опция. AV1 е по-производителна от HEVC, която пък е по-производителна от H.264. При употреба на хардуерно ускорение избирайте само тези, които ускорителя поддържа. При софтуерно транскодиране имайте предвид, че H.264 е по-бързо от AV1, което е по-бързо от HEVC.",
|
||||
"transcoding_reference_frames": "Референтни кадри",
|
||||
"transcoding_reference_frames_description": "Броят кадри за препратка при компресиране на даден кадър. По-високите стойности подобряват ефективността на компресията, но забавят кодирането. 0 задава тази стойност автоматично.",
|
||||
"transcoding_required_description": "Само видеа, които не са в приет формат",
|
||||
@@ -597,7 +578,6 @@
|
||||
"asset_viewer_settings_title": "Преглед на изображения",
|
||||
"assets": "Елементи",
|
||||
"assets_added_to_album_count": "Добавен(и) са {count, plural, one {# актив} other {# актива}} в албума",
|
||||
"assets_added_to_album_partial_count": "Добавени са {successCount} от общо {totalCount} {totalCount, plural, one {елемент} other {елемента}} към албума",
|
||||
"assets_added_to_albums_count": "{assetTotal, plural, one {# обект е добавен} other {# обекта са добавени}} в {albumTotal, plural, one {# албум} other {# албума}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Обекта не може да се добави} other {Обектите не може да се добавят}} в албума",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {обект не може да бъде добавен} other {обекта не могат да бъдат добавени}} в никой от албумите",
|
||||
@@ -814,6 +794,7 @@
|
||||
"custom_date": "Персонализирана дата",
|
||||
"custom_locale": "Персонализирани езикови настройки",
|
||||
"custom_locale_description": "Форматиране на дата, време и числа в зависимост от избрания език и регион",
|
||||
"custom_url": "Персонализиран URL адрес",
|
||||
"cutoff_date_description": "Запазване на снимки от последните…",
|
||||
"cutoff_day": "{count, plural, one {ден} other {дни}}",
|
||||
"cutoff_year": "{count, plural, one {година} other {години}}",
|
||||
@@ -1480,7 +1461,6 @@
|
||||
"never": "Никога",
|
||||
"new_album": "Нов Албум",
|
||||
"new_api_key": "Нов API ключ",
|
||||
"new_feature": "Нова функция",
|
||||
"new_password": "Нова парола",
|
||||
"new_person": "Нов човек",
|
||||
"new_pin_code": "Нов PIN код",
|
||||
@@ -1527,9 +1507,6 @@
|
||||
"notes": "Бележки",
|
||||
"nothing_here_yet": "Засега тук няма нищо",
|
||||
"notification_backup_reliability": "Позволете известията, за да подобрите надеждността на архивиране във фонов режим",
|
||||
"notification_enabled_list_tile_content": "Immich използва механизма за известия при архивиране във фонов режим. Управлявайте ги от менюто за настройки на вашето устройство.",
|
||||
"notification_enabled_list_tile_open_button": "Отвори настройки",
|
||||
"notification_enabled_list_tile_title": "Известията са активирани",
|
||||
"notification_permission_dialog_content": "За да включиш известията, отиди в Настройки и избери Разреши.",
|
||||
"notification_permission_list_tile_content": "Дай разрешение за активиране на известията.",
|
||||
"notification_permission_list_tile_enable_button": "Разреши известията",
|
||||
@@ -1541,8 +1518,6 @@
|
||||
"obtainium_configurator": "Конфигуратор за получаване",
|
||||
"obtainium_configurator_instructions": "Използвайте Obtainium за инсталация и обновяване на приложението за Android директно от GitHub на Immich. Създайте API ключ и изберете вариант за да създадете Obtainium конфигурационен линк",
|
||||
"ocr": "Оптично разпознаване на текст",
|
||||
"ocr_body": "Сега Immich разчита текст в снимките, така че може да търсите по това, което пише.",
|
||||
"ocr_title": "Търсене на текст в снимките",
|
||||
"official_immich_resources": "Официална информация за Immich",
|
||||
"offline": "Офлайн",
|
||||
"offset": "Отместване",
|
||||
@@ -1561,8 +1536,6 @@
|
||||
"open": "Отвори",
|
||||
"open_calendar": "Отвори календар",
|
||||
"open_in_browser": "Отвори в браузър",
|
||||
"open_in_immich_body": "Задайте Immich като галерия на Android, за да отваряте снимки директно от други приложения.",
|
||||
"open_in_immich_title": "Отваряне на снимки в Immich",
|
||||
"open_in_map_view": "Отвори изглед на карта",
|
||||
"open_in_openstreetmap": "Отвори в OpenStreetMap",
|
||||
"open_the_search_filters": "Отвари филтрите за търсене",
|
||||
@@ -1620,7 +1593,7 @@
|
||||
"person": "Човек",
|
||||
"person_age_months": "{months, plural, one {# месец} other {# месеца}}",
|
||||
"person_age_year_months": "1 година и {months, plural, one {# месец} other {# месеца}}",
|
||||
"person_age_years": "{years, plural, one {# година} other {# години}}",
|
||||
"person_age_years": "{years, plural, other {# години}}",
|
||||
"person_birthdate": "Дата на раждане {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (скрит)} other {}}",
|
||||
"person_recognized": "Разпознато e лице",
|
||||
@@ -1721,10 +1694,7 @@
|
||||
"recent": "Скорошни",
|
||||
"recent_searches": "Скорошни търсения",
|
||||
"recently_added": "Наскоро добавено",
|
||||
"recently_added_body": "Преминете директно към специална страница, където е всичко, което сте добавили напоследък.",
|
||||
"recently_added_description": "Разглеждане на файлове, подредени по реда на добавяне в Immich",
|
||||
"recently_added_page_title": "Наскоро добавено",
|
||||
"recently_added_title": "Добавени скоро",
|
||||
"recently_taken": "Наскоро снимано",
|
||||
"refresh": "Опресняване",
|
||||
"refresh_encoded_videos": "Опресни кодирани видеоклипове",
|
||||
@@ -1931,8 +1901,6 @@
|
||||
"share_link": "Връзка за споделяне",
|
||||
"share_original": "Използвай оригинала (голям размер)",
|
||||
"share_preview": "Използвай миниатюра (намален размер)",
|
||||
"share_quality_body": "Натиснете и задръжте бутона за споделяне, за да изберете качеството на изображението, преди да го споделите.",
|
||||
"share_quality_title": "Изберете качеството при споделяне",
|
||||
"shared": "Споделено",
|
||||
"shared_album_activities_input_disable": "Коментарите са изключени",
|
||||
"shared_album_activity_remove_content": "Искате ли да изтриете тази активност?",
|
||||
@@ -1947,9 +1915,7 @@
|
||||
"shared_link_app_bar_title": "Споделени връзки",
|
||||
"shared_link_clipboard_copied_massage": "Копирано в клипборда",
|
||||
"shared_link_create_error": "Грешка при създаване на споделена връзка",
|
||||
"shared_link_custom_url_description": "Споделете достъп чрез този персонализиран URL линк",
|
||||
"shared_link_custom_url_title": "Персонализиран URL адрес",
|
||||
"shared_link_custom_url_warning": "Предупреждение: Персонализирано URL име с наклонени напред може да не работи според очакванията.",
|
||||
"shared_link_custom_url_description": "Достъпете споделения линк с персонализиран URL адрес",
|
||||
"shared_link_edit_description_hint": "Въведи описание на споделеното",
|
||||
"shared_link_edit_expire_after_option_day": "1 ден",
|
||||
"shared_link_edit_expire_after_option_days": "{count} дни",
|
||||
@@ -2016,19 +1982,16 @@
|
||||
"sign_out": "Отписване",
|
||||
"sign_up": "Запиши се",
|
||||
"size": "Размер",
|
||||
"skip": "Пропусни",
|
||||
"skip_to_content": "Премини към съдържанието",
|
||||
"skip_to_folders": "Премини към папките",
|
||||
"skip_to_tags": "Премини към етикетите",
|
||||
"slideshow": "Слайдшоу",
|
||||
"slideshow_body": "Отпуснете се и гледайте снимките си, възпроизвеждани в слайдшоу на цял екран.",
|
||||
"slideshow_metadata_overlay_mode": "Съдържание на слоя с информация",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Само описание",
|
||||
"slideshow_metadata_overlay_mode_full": "Пълна",
|
||||
"slideshow_repeat": "Повтаряй слайдшоуто",
|
||||
"slideshow_repeat_description": "Започвай отново, когато слайдшоуто приключи",
|
||||
"slideshow_settings": "Настройки за слайдшоу",
|
||||
"slideshow_title": "Слайдшоу",
|
||||
"smart_album": "Умен албум",
|
||||
"some_assets_already_have_a_location_warning": "Някои от избраните файлове вече имат местоположение",
|
||||
"sort_albums_by": "Сортиране на албуми по...",
|
||||
@@ -2156,7 +2119,6 @@
|
||||
"unknown": "Неизвестно",
|
||||
"unknown_country": "Непозната Държава",
|
||||
"unknown_date": "Неизвестна дата",
|
||||
"unknown_schema": "Неизвестна схема",
|
||||
"unknown_year": "Неизвестна година",
|
||||
"unlimited": "Неограничено",
|
||||
"unlink_motion_video": "Премахни връзката с видео",
|
||||
@@ -2192,8 +2154,6 @@
|
||||
"upload_status_errors": "Грешки",
|
||||
"upload_status_uploaded": "Качено",
|
||||
"upload_success": "Качването е успешно, опреснете страницата, за да видите новите файлове.",
|
||||
"upload_to_album_body": "За потребители, които не използват функцията за ръчно качване, вече можете да изберете да добавяте локални снимки директно в албум, докато ги качвате, вече не е необходимо да качвате и след това да добавяте към албум.",
|
||||
"upload_to_album_title": "Качване директно в албум",
|
||||
"upload_to_immich": "Казване в Immich ({count})",
|
||||
"uploading": "Качваме",
|
||||
"uploading_media": "Качване на медийни файлове",
|
||||
@@ -2261,9 +2221,6 @@
|
||||
"week": "Седмица",
|
||||
"welcome": "Добре дошли",
|
||||
"welcome_to_immich": "Добре дошли в Immich",
|
||||
"whats_new": "Какво е новото",
|
||||
"whats_new_settings_subtitle": "Вижте какво ново има в Immich",
|
||||
"whats_new_version": "Версия {version}",
|
||||
"when": "Когато",
|
||||
"width": "Ширинa",
|
||||
"wifi_name": "Wi-Fi мрежа",
|
||||
|
||||
@@ -435,7 +435,7 @@
|
||||
"user_settings_description": "ব্যবহারকারী সেটিংস ম্যানেজ করুন",
|
||||
"user_successfully_removed": "সফলভাবে ইউজার {email}-কে সরিয়ে দেওয়া হয়েছে।",
|
||||
"version_check_enabled_description": "ভার্সন যাচাই চালু করুন",
|
||||
"version_check_implications": "ভার্সন চেক ফিচারটি {server}-এর সঙ্গে নিয়মিত সংযোগের ওপর নির্ভরশীল",
|
||||
"version_check_implications": "ভার্সন চেক ফিচারটি github.com-এর সঙ্গে নিয়মিত সংযোগের ওপর নির্ভরশীল",
|
||||
"version_check_settings": "ভার্সন যাচাই",
|
||||
"version_check_settings_description": "নতুন ভার্সনের নোটিফিকেশন চালু/বন্ধ করুন",
|
||||
"video_conversion_job": "ভিডিও ট্রান্সকোড করুন",
|
||||
|
||||
3280
i18n/ca.json
3280
i18n/ca.json
File diff suppressed because it is too large
Load Diff
53
i18n/cs.json
53
i18n/cs.json
@@ -108,21 +108,6 @@
|
||||
"image_thumbnail_quality_description": "Kvalita miniatur od 1 do 100. Vyšší je lepší, ale vytváří větší soubory a může snížit odezvu aplikace.",
|
||||
"image_thumbnail_title": "Miniatury",
|
||||
"import_config_from_json_description": "Importujte konfiguraci systému nahráním konfiguračního JSON souboru",
|
||||
"integrity_checks_checksum_files": "Kontrolní součty souborů",
|
||||
"integrity_checks_checksum_files_description": "Nastavení kontroly kontrolního součtu",
|
||||
"integrity_checks_checksum_files_enable_description": "Zapnout kontrolu kontrolního součtu",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Procentuální limit",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Nastavte maximální procentuální hodnotu v rozmezí 0.01 až 1, která určuje, jak často se má v daném intervalu provádět kontrola kontrolního součtu.",
|
||||
"integrity_checks_checksum_files_time_limit": "Časový limit",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Nastavte maximální dobu, po kterou by měla v každém intervalu probíhat kontrola kontrolního součtu. (ms)",
|
||||
"integrity_checks_missing_files": "Chybějící soubory",
|
||||
"integrity_checks_missing_files_description": "Nastavte frekvenci a zapněte nebo vypněte kontrolu chybějících souborů",
|
||||
"integrity_checks_missing_files_enable_description": "Zapnout kontrolu chybějících souborů",
|
||||
"integrity_checks_settings": "Kontroly integrity",
|
||||
"integrity_checks_settings_description": "Správa intervalů kontrol integrity",
|
||||
"integrity_checks_untracked_files": "Nesledované soubory",
|
||||
"integrity_checks_untracked_files_description": "Nastavte frekvenci a zapněte nebo vypněte kontrolu nesledovaných souborů",
|
||||
"integrity_checks_untracked_files_enable_description": "Zapnout kontrolu nesledovaných souborů",
|
||||
"job_concurrency": "Souběžnost úlohy {job}",
|
||||
"job_created": "Úloha vytvořena",
|
||||
"job_not_concurrency_safe": "Tato úloha není bezpečená pro souběh.",
|
||||
@@ -204,7 +189,7 @@
|
||||
"maintenance_delete_error": "Nepodařilo se smazat zálohu.",
|
||||
"maintenance_integrity_check": "Zkontrolovat",
|
||||
"maintenance_integrity_check_all": "Zkontrolovat vše",
|
||||
"maintenance_integrity_checksum_mismatch": "Neshoda kontrol. součtu",
|
||||
"maintenance_integrity_checksum_mismatch": "Neshoda kontrolního součtu",
|
||||
"maintenance_integrity_checksum_mismatch_description": "Soubory, u nichž se kontrolní součet na disku neshoduje s kontrolním součtem, který Immich uložil do své databáze.",
|
||||
"maintenance_integrity_checksum_mismatch_job": "Kontrola shod kontrolních součtů",
|
||||
"maintenance_integrity_checksum_mismatch_refresh_job": "Obnovit hlášení o neshodách kontrolních součtů",
|
||||
@@ -431,10 +416,6 @@
|
||||
"transcoding_realtime_description": "Umožňuje provádět překódování v reálném čase během přenosu videa. Zpřístupní přepínání kvality, ale v závislosti na výkonu serveru může docházet k delším zpožděním při přehrávání a k trhanému přehrávání.",
|
||||
"transcoding_realtime_enabled": "Povolit překódování v reálném čase",
|
||||
"transcoding_realtime_enabled_description": "Pokud je zakázáno, server odmítne spustit nové relace překódování v reálném čase.",
|
||||
"transcoding_realtime_resolutions": "Rozlišení",
|
||||
"transcoding_realtime_resolutions_description": "Nabízená rozlišení pro transkódování v reálném čase. Vyšší rozlišení mohou způsobit problémy s přehráváním, pokud je server nedokáže dostatečně rychle transkódovat.",
|
||||
"transcoding_realtime_video_codecs": "Videokodeky",
|
||||
"transcoding_realtime_video_codecs_description": "Videokodeky nabízené pro transkódování v reálném čase. Klienti si při přehrávání vyberou nejlepší variantu, kterou podporují. AV1 je efektivnější než HEVC, který je zase efektivnější než H.264. Při použití hardwarové akcelerace vyberte pouze ty kodeky, které akcelerátor dokáže kódovat. Při použití softwarového transkódování mějte na paměti, že H.264 je rychlejší než AV1, který je zase rychlejší než HEVC.",
|
||||
"transcoding_reference_frames": "Referenční snímky",
|
||||
"transcoding_reference_frames_description": "Počet referenčních snímků při kompresi daného snímku. Vyšší hodnoty zvyšují účinnost komprese, ale zpomalují kódování. Hodnota 0 toto nastavuje automaticky.",
|
||||
"transcoding_required_description": "Pouze videa, která nejsou v akceptovaném formátu",
|
||||
@@ -597,7 +578,6 @@
|
||||
"asset_viewer_settings_title": "Prohlížeč",
|
||||
"assets": "Položky",
|
||||
"assets_added_to_album_count": "Do alba {count, plural, one {byla přidána # položka} few {byly přidány # položky} other {bylo přidáno # položek}}",
|
||||
"assets_added_to_album_partial_count": "Do alba bylo přidáno {successCount} z {totalCount} {totalCount, plural, one {aktiv} other {aktiv}}",
|
||||
"assets_added_to_albums_count": "{assetTotal, plural, one {Přidána # položka} few{Přidány # položky} other {Přidáno # položek}} do {albumTotal, plural, one {# alba} other {# alb}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Položku} other {Položky}} nelze přidat do alba",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Položku} other {Položky}} nelze přidat do žádného z alb",
|
||||
@@ -814,6 +794,7 @@
|
||||
"custom_date": "Vlastní datum",
|
||||
"custom_locale": "Vlastní lokalizace",
|
||||
"custom_locale_description": "Formátovat datumy, časy a čísla podle vybraného jazyka a oblasti",
|
||||
"custom_url": "Vlastní URL",
|
||||
"cutoff_date_description": "Zanechat fotografie a videa z posledních…",
|
||||
"cutoff_day": "{count, plural, one {den} few {dny} other {dnů}}",
|
||||
"cutoff_year": "{count, plural, one {rok} few {roky} other {let}}",
|
||||
@@ -1480,7 +1461,6 @@
|
||||
"never": "Nikdy",
|
||||
"new_album": "Nové album",
|
||||
"new_api_key": "Nový API klíč",
|
||||
"new_feature": "Nová funkce",
|
||||
"new_password": "Nové heslo",
|
||||
"new_person": "Nová osoba",
|
||||
"new_pin_code": "Nový PIN kód",
|
||||
@@ -1524,7 +1504,6 @@
|
||||
"not_available": "Není k dispozici",
|
||||
"not_in_any_album": "Bez alba",
|
||||
"not_selected": "Není vybráno",
|
||||
"not_set": "Nenastaveno",
|
||||
"notes": "Poznámky",
|
||||
"nothing_here_yet": "Zatím zde nic není",
|
||||
"notification_backup_reliability": "Povolte oznámení pro zlepšení spolehlivosti zálohování na pozadí",
|
||||
@@ -1542,8 +1521,6 @@
|
||||
"obtainium_configurator": "Konfigurátor Obtainium",
|
||||
"obtainium_configurator_instructions": "Pomocí aplikace Obtainium nainstalujte a aktualizujte aplikaci pro Android přímo z vydání na GitHubu Immich. Vytvořte API klíč a vyberte variantu pro vytvoření konfiguračního odkazu pro Obtainium",
|
||||
"ocr": "OCR",
|
||||
"ocr_body": "Immich nyní rozpoznává text na vašich fotografiích, takže je můžete vyhledávat podle toho, co je na nich napsáno.",
|
||||
"ocr_title": "Vyhledávání textu ve vašich fotografiích",
|
||||
"official_immich_resources": "Oficiální zdroje Immich",
|
||||
"offline": "Offline",
|
||||
"offset": "Posun",
|
||||
@@ -1562,8 +1539,6 @@
|
||||
"open": "Otevřít",
|
||||
"open_calendar": "Otevřít kalendář",
|
||||
"open_in_browser": "Otevřít v prohlížeči",
|
||||
"open_in_immich_body": "Nastavte si v systému Android aplikaci Immich jako svou galerii, abyste mohli otevírat fotografie přímo z jiných aplikací.",
|
||||
"open_in_immich_title": "Otevřít fotografie v Immichi",
|
||||
"open_in_map_view": "Otevřít v zobrazení mapy",
|
||||
"open_in_openstreetmap": "Otevřít v OpenStreetMap",
|
||||
"open_the_search_filters": "Otevřít vyhledávací filtry",
|
||||
@@ -1621,7 +1596,7 @@
|
||||
"person": "Osoba",
|
||||
"person_age_months": "{months, plural, one {# měsíc} few {# měsíce} other {# měsíců}}",
|
||||
"person_age_year_months": "1 rok a {months, plural, one {# měsíc} few {# měsíce} other {# měsíců}}",
|
||||
"person_age_years": "{years, plural, one {# rok} other {# let}} starý/á",
|
||||
"person_age_years": "{years, plural, one {# rok} few {# roky} other {# let}}",
|
||||
"person_birthdate": "Narozen(a) {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (skryto)} other {}}",
|
||||
"person_recognized": "Osoba rozpoznána",
|
||||
@@ -1722,10 +1697,7 @@
|
||||
"recent": "Nedávné",
|
||||
"recent_searches": "Nedávná vyhledávání",
|
||||
"recently_added": "Nedávno přidané",
|
||||
"recently_added_body": "Přejděte přímo na speciální stránku, kde najdete vše, co jste v poslední době přidali.",
|
||||
"recently_added_description": "Prohlížejte si svá média seřazená podle data, kdy byla nahrána do Immiche",
|
||||
"recently_added_page_title": "Nedávno přidané",
|
||||
"recently_added_title": "Nedávno přidané",
|
||||
"recently_taken": "Nedávno pořízené",
|
||||
"refresh": "Obnovit",
|
||||
"refresh_encoded_videos": "Obnovit kódovaná videa",
|
||||
@@ -1907,7 +1879,7 @@
|
||||
"set_slideshow_to_fullscreen": "Nastavit prezentaci na celou obrazovku",
|
||||
"set_stack_primary_asset": "Nastavit jako hlavní položku",
|
||||
"setting_image_navigation_enable_subtitle": "Pokud je zapnuto, budete moci přejít na předchozí/další obrázek klepnutím do levé/pravé čtvrtiny obrazovky.",
|
||||
"setting_image_navigation_enable_title": "Klepnutí pro navigaci",
|
||||
"setting_image_navigation_enable_title": "Klepněte pro navigaci",
|
||||
"setting_image_navigation_title": "Navigace mezi obrázky",
|
||||
"setting_image_viewer_help": "V prohlížeči detailů se nejprve načte malá miniatura, poté se načte náhled střední velikosti (je-li povolen) a nakonec se načte originál (je-li povolen).",
|
||||
"setting_image_viewer_original_subtitle": "Umožňuje načíst původní obrázek v plném rozlišení (velký!). Zakažte pro snížení využití dat (v síti i v mezipaměti zařízení).",
|
||||
@@ -1932,8 +1904,6 @@
|
||||
"share_link": "Sdílet odkaz",
|
||||
"share_original": "Použít originál (velký)",
|
||||
"share_preview": "Použít miniaturu (malý)",
|
||||
"share_quality_body": "Při sdílení stiskněte a podržte tlačítko sdílení pro výběr kvality obrázku.",
|
||||
"share_quality_title": "Vyberte si kvalitu sdílení",
|
||||
"shared": "Sdílené",
|
||||
"shared_album_activities_input_disable": "Komentář je vypnutý",
|
||||
"shared_album_activity_remove_content": "Chcete odstranit tuto aktivitu?",
|
||||
@@ -1948,9 +1918,7 @@
|
||||
"shared_link_app_bar_title": "Sdílené odkazy",
|
||||
"shared_link_clipboard_copied_massage": "Zkopírováno do schránky",
|
||||
"shared_link_create_error": "Chyba při vytváření sdíleného odkazu",
|
||||
"shared_link_custom_url_description": "Otevřete tento sdílený odkaz pomocí vlastního názvu URL",
|
||||
"shared_link_custom_url_title": "Vlastní URL",
|
||||
"shared_link_custom_url_warning": "Upozornění: vlastní název URL obsahující lomítko se nemusí chovat tak, jak očekáváte.",
|
||||
"shared_link_custom_url_description": "Přístup k tomuto sdílenému odkazu pomocí vlastního URL",
|
||||
"shared_link_edit_description_hint": "Zadejte popis sdílení",
|
||||
"shared_link_edit_expire_after_option_day": "1 den",
|
||||
"shared_link_edit_expire_after_option_days": "{count} dní",
|
||||
@@ -2017,19 +1985,16 @@
|
||||
"sign_out": "Odhlásit se",
|
||||
"sign_up": "Zaregistrovat se",
|
||||
"size": "Velikost",
|
||||
"skip": "Přeskočit",
|
||||
"skip_to_content": "Přejít na obsah",
|
||||
"skip_to_folders": "Přeskočit na složky",
|
||||
"skip_to_tags": "Přeskočit na značky",
|
||||
"slideshow": "Prezentace",
|
||||
"slideshow_body": "Posaďte se a sledujte, jak se vaše fotografie promítají v prezentaci na celé obrazovce.",
|
||||
"slideshow_metadata_overlay_mode": "Obsah překryvného panelu",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Pouze popis",
|
||||
"slideshow_metadata_overlay_mode_full": "Úplný",
|
||||
"slideshow_repeat": "Opakovat prezentaci",
|
||||
"slideshow_repeat_description": "Po skončení prezentace se vrátit na začátek",
|
||||
"slideshow_settings": "Nastavení prezentace",
|
||||
"slideshow_title": "Prezentace",
|
||||
"smart_album": "Chytré album",
|
||||
"some_assets_already_have_a_location_warning": "Některé z vybraných položek již mají polohu",
|
||||
"sort_albums_by": "Seřadit alba podle...",
|
||||
@@ -2105,7 +2070,7 @@
|
||||
"theme_setting_primary_color_subtitle": "Zvolte barvu pro hlavní akce a zvýraznění.",
|
||||
"theme_setting_primary_color_title": "Hlavní barva",
|
||||
"theme_setting_system_primary_color_title": "Použít systémovou barvu",
|
||||
"theme_setting_system_theme_switch": "Automaticky (podle systému)",
|
||||
"theme_setting_system_theme_switch": "Automaticky (podle systemového nastavení)",
|
||||
"then": "Pak",
|
||||
"they_will_be_merged_together": "Budou sloučeny dohromady",
|
||||
"third_party_resources": "Zdroje třetích stran",
|
||||
@@ -2157,7 +2122,6 @@
|
||||
"unknown": "Neznámý",
|
||||
"unknown_country": "Neznámá země",
|
||||
"unknown_date": "Neznámé datum",
|
||||
"unknown_schema": "Neznámé schéma",
|
||||
"unknown_year": "Neznámý rok",
|
||||
"unlimited": "Neomezeně",
|
||||
"unlink_motion_video": "Odpojit pohyblivé video",
|
||||
@@ -2193,8 +2157,6 @@
|
||||
"upload_status_errors": "Chyby",
|
||||
"upload_status_uploaded": "Nahráno",
|
||||
"upload_success": "Nahrání proběhlo úspěšně, obnovením stránky se zobrazí nově nahrané položky.",
|
||||
"upload_to_album_body": "Uživatelé, kteří nevyužívají funkci ručního nahrávání, si nyní mohou zvolit, zda chtějí lokální fotografie přidávat přímo do alba již při jejich nahrávání, již není nutné je nejprve nahrát a teprve poté přidat do alba.",
|
||||
"upload_to_album_title": "Nahrát přímo do alba",
|
||||
"upload_to_immich": "Nahrát do Immich ({count})",
|
||||
"uploading": "Nahrávání",
|
||||
"uploading_media": "Nahrávání médií",
|
||||
@@ -2262,9 +2224,6 @@
|
||||
"week": "Týden",
|
||||
"welcome": "Vítejte",
|
||||
"welcome_to_immich": "Vítejte v Immichi",
|
||||
"whats_new": "Co je nového",
|
||||
"whats_new_settings_subtitle": "Podívejte se, co je nového v Immichi",
|
||||
"whats_new_version": "Verze {version}",
|
||||
"when": "Kdy",
|
||||
"width": "Šířka",
|
||||
"wifi_name": "Název Wi-Fi",
|
||||
|
||||
107
i18n/da.json
107
i18n/da.json
@@ -73,7 +73,6 @@
|
||||
"cron_expression_description": "Indstil skannings intervallet i cron format. For mere information se: <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "cron predefinerede indstillinger",
|
||||
"disable_login": "Deaktiver login",
|
||||
"download_csv": "Hent CSV",
|
||||
"duplicate_detection_job_description": "Kør maskinlæring på mediefiler for at opdage lignende billeder. Er afhængig af Smart Søgning",
|
||||
"exclusion_pattern_description": "Ekskluderingsmønstre lader dig ignorere filer og mapper, når du scanner dit bibliotek. Dette er nyttigt, hvis du har mapper, der indeholder filer, du ikke vil importere, såsom RAW-filer.",
|
||||
"export_config_as_json_description": "Download den aktuelle systemkonfiguration som en JSON-fil",
|
||||
@@ -108,21 +107,6 @@
|
||||
"image_thumbnail_quality_description": "Miniaturer kvaliteten indstilles fra 1 til 100. Nu højre, nu bedre kvalitet. Men giver større filer og påvirker programmets svartider.",
|
||||
"image_thumbnail_title": "Thumbnail-indstillinger",
|
||||
"import_config_from_json_description": "Importer systemkonfiguration ved at uploade en JSON-konfigurationsfil",
|
||||
"integrity_checks_checksum_files": "Checksum-filer",
|
||||
"integrity_checks_checksum_files_description": "Konfigurer checksum-filerne",
|
||||
"integrity_checks_checksum_files_enable_description": "Aktiver checksum tjek",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Procent grænse",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Konfigurer den maksimano procent mellem 0.001 og 1 for hvor meget checksum tjek skal kører hver omgang.",
|
||||
"integrity_checks_checksum_files_time_limit": "Tidsgrænse",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Konfigurer den maksimale periode for hvilken checksum tjekket skal nå på hvert interval. (ms)",
|
||||
"integrity_checks_missing_files": "Mangler filer",
|
||||
"integrity_checks_missing_files_description": "Konfigurer frekvensen og tædn eller sluk for manglende filer tjek",
|
||||
"integrity_checks_missing_files_enable_description": "Aktivér tjekket for manglende filer",
|
||||
"integrity_checks_settings": "Integritetstjek",
|
||||
"integrity_checks_settings_description": "Administrer integritetstjeks intervaller",
|
||||
"integrity_checks_untracked_files": "Ikke-registreret filer",
|
||||
"integrity_checks_untracked_files_description": "Konfigurer hyppigheden og aktiver eller deaktiver kontrollen af ikke-registreret filer",
|
||||
"integrity_checks_untracked_files_enable_description": "Aktivér kontrol af ikke-registreret filer",
|
||||
"job_concurrency": "{job} samtidighed",
|
||||
"job_created": "opgaven er skabt",
|
||||
"job_not_concurrency_safe": "Denne opgave er ikke sikker at køre samtidigt med andre.",
|
||||
@@ -198,25 +182,9 @@
|
||||
"machine_learning_smart_search_enabled": "Aktiver smart søgning",
|
||||
"machine_learning_smart_search_enabled_description": "Hvis deaktiveret, vil billeder ikke blive kodet til smart søgning.",
|
||||
"machine_learning_url_description": "URL’en for maskinlæringsserveren. Hvis mere end én URL angives, vil hver server blive forsøgt én ad gangen, indtil en svarer succesfuldt, i rækkefølge fra første til sidste. Servere, der ikke svarer, vil midlertidigt blive ignoreret, indtil de kommer online igen.",
|
||||
"maintenance_backup_management": "Backup administration",
|
||||
"maintenance_delete_backup": "Slet Backup",
|
||||
"maintenance_delete_backup_description": "Denne fil vil blive slettet permanent.",
|
||||
"maintenance_delete_error": "Sletning af backup fejlede.",
|
||||
"maintenance_integrity_check": "Kontroller",
|
||||
"maintenance_integrity_check_all": "Kontroller alle",
|
||||
"maintenance_integrity_checksum_mismatch": "Checksum uoverensstemmelse",
|
||||
"maintenance_integrity_checksum_mismatch_description": "Filer hvis checksum på disken ikke stemmer overens med den checksum, Immich har gemt i sin database.",
|
||||
"maintenance_integrity_checksum_mismatch_job": "Kontroller for uoverensstemmelser i checksum",
|
||||
"maintenance_integrity_checksum_mismatch_refresh_job": "Opdater rapporter om uoverensstemmelser i checksum",
|
||||
"maintenance_integrity_missing_file": "Manglende filer",
|
||||
"maintenance_integrity_missing_file_description": "Filer som Immich har i sin database, men som ikke findes i filsystemet.",
|
||||
"maintenance_integrity_missing_file_job": "Tjek for manglende filer",
|
||||
"maintenance_integrity_missing_file_refresh_job": "Opdater rapporter om manglende filer",
|
||||
"maintenance_integrity_report": "Integritetsrapport",
|
||||
"maintenance_integrity_untracked_file": "Ikke-registreret filer",
|
||||
"maintenance_integrity_untracked_file_description": "Filer i Immichs mapper, som Immich ikke har nogen registrering af.",
|
||||
"maintenance_integrity_untracked_file_job": "Tjek for ikke-registreret filer",
|
||||
"maintenance_integrity_untracked_file_refresh_job": "Opdater rapporter om ikke-registreret filer",
|
||||
"maintenance_restore_backup": "Genskab backup",
|
||||
"maintenance_restore_backup_description": "Immich bliver slettet og genskabt fra den valgte backup. Der vil blive taget en backup før du fortsætter.",
|
||||
"maintenance_restore_backup_different_version": "Denne backup blev lavet med en anden version af Immich!",
|
||||
@@ -431,10 +399,6 @@
|
||||
"transcoding_realtime_description": "Tillader transkodning i realtid, mens videoen streames. Muliggør kvalitetsskifte, men kan forårsage højere afspilningsforsinkelse og hakken afhængigt af serverens kapacitet.",
|
||||
"transcoding_realtime_enabled": "Aktiver real-time transkodning",
|
||||
"transcoding_realtime_enabled_description": "Hvis deaktiveret, kan serveren ikke starte nye realtids transkodningssessioner.",
|
||||
"transcoding_realtime_resolutions": "Opløsninger",
|
||||
"transcoding_realtime_resolutions_description": "Opløsninger tilgængelig for realtidstranskodning. Højere opløsninger kan forårsage afspilningsproblemer, hvis serveren ikke kan transkode dem hurtigt nok.",
|
||||
"transcoding_realtime_video_codecs": "Video codecs",
|
||||
"transcoding_realtime_video_codecs_description": "De video codecs, tilgængelig for realtidstranskodning. Klienter vælger den bedste mulighed, de understøtter under afspilning. AV1 er mere effektiv end HEVC, som er mere effektiv end H.264. Når du bruger hardwareacceleration, skal du kun vælge de codecs, som acceleratoren kan enkode. Når du bruger softwaretranskodning, skal du bemærke, at H.264 er hurtigere end AV1, som er hurtigere end HEVC.",
|
||||
"transcoding_reference_frames": "Referencerammer",
|
||||
"transcoding_reference_frames_description": "Antallet af frames, der skal refereres til, når en given frame komprimeres. Højere værdier forbedrer kompressionseffektiviteten, men gør indkodning langsommere. 0 sætter denne værdi automatisk.",
|
||||
"transcoding_required_description": "Kun videoer ikke i et godkendt format",
|
||||
@@ -597,7 +561,6 @@
|
||||
"asset_viewer_settings_title": "Billedviser",
|
||||
"assets": "Objekter",
|
||||
"assets_added_to_album_count": "{count, plural, one {# mediefil} other {# mediefiler}} tilføjet til albummet",
|
||||
"assets_added_to_album_partial_count": "Tilføjede {successCount} ud af {totalCount} {totalCount, plural, one {mediefil} other {mediefiler}} til albummet",
|
||||
"assets_added_to_albums_count": "Tilføjet {assetTotal, plural, one {# asset} other {# assets}} til {albumTotal, plural, one {# album} other {# albums}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Billed} other {Billeder}} kan ikke blive tilføjet til album",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Asset} other {Assets}} kan ikke føjes til i nogen af albummerne",
|
||||
@@ -814,6 +777,7 @@
|
||||
"custom_date": "Brugerdefineret dato",
|
||||
"custom_locale": "Brugerdefineret lokale",
|
||||
"custom_locale_description": "Formatér datoer, klokkeslæt og tal baseret på det valgte sprog og den valgte region",
|
||||
"custom_url": "Tilpasset URL",
|
||||
"cutoff_date_description": "Behold fotos fra den sidste…",
|
||||
"cutoff_day": "{count, plural, one {dag} other {dage}}",
|
||||
"cutoff_year": "{count, plural, one {år} other {år}}",
|
||||
@@ -830,8 +794,6 @@
|
||||
"day": "Dag",
|
||||
"days": "Dage",
|
||||
"deduplicate_all": "Dedubliker alle",
|
||||
"default_quality_subtitle": "Kvalitet brugt ved tryk på 'del'. Tryk længe på dele-knappen for at vælge hver gang.",
|
||||
"default_share_quality": "Standard delingskvalitet",
|
||||
"delete": "Slet",
|
||||
"delete_action_confirmation_message": "Er du sikker på, at du vil slette dette objekt? Denne handling vil flytte objektet til serverens papirkurv, og vil spørge dig, om du vil slette den lokalt",
|
||||
"delete_action_prompt": "{count} slettet",
|
||||
@@ -1114,7 +1076,6 @@
|
||||
"failed": "Fejlet",
|
||||
"failed_count": "Fejlede: {count}",
|
||||
"failed_to_authenticate": "Kunne ikke godkendes",
|
||||
"failed_to_delete_file": "Kunne ikke slette filen",
|
||||
"failed_to_load_assets": "Kunne ikke indlæse mediefiler",
|
||||
"failed_to_load_folder": "Kunne ikke indlæse mappe",
|
||||
"favorite": "Favorit",
|
||||
@@ -1195,16 +1156,16 @@
|
||||
"id": "ID",
|
||||
"idle": "Inaktiv",
|
||||
"image": "Billede",
|
||||
"image_alt_text_date": "{isVideo, select, true {Video} other {Billede}} taget den {date}",
|
||||
"image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Billede}} taget med {person1} den {date}",
|
||||
"image_alt_text_date_2_people": "{isVideo, select, true {Video} other {Billede}} taget med {person1} og {person2} den {date}",
|
||||
"image_alt_text_date_3_people": "{isVideo, select, true {Video} other {Billede}} taget med {person1}, {person2}, og {person3} den {date}",
|
||||
"image_alt_text_date_4_or_more_people": "{isVideo, select, true {Video} other {Billede}} taget med {person1}, {person2}, og {additionalCount, number} andre den {date}",
|
||||
"image_alt_text_date_place": "{isVideo, select, true {Video} other {Billede}} taget i {city}, {country} den {date}",
|
||||
"image_alt_text_date_place_1_person": "{isVideo, select, true {Video} other {Billede}} taget i {city}, {country} med {person1} den {date}",
|
||||
"image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Billede}} taget i {city}, {country} med {person1} og {person2} den {date}",
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Billede}} taget i {city}, {country} med {person1}, {person2}, og {person3} den {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Billede}} taget i {city}, {country} med {person1}, {person2}, og {additionalCount, number} andre den {date}",
|
||||
"image_alt_text_date": "{isVideo, select, true {Video} other {Image}} taget den {date}",
|
||||
"image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Image}} taget med {person1} den {date}",
|
||||
"image_alt_text_date_2_people": "{isVideo, select, true {Video} other {Image}} taget med {person1} og {person2} den {date}",
|
||||
"image_alt_text_date_3_people": "{isVideo, select, true {Video} other {Image}} taget med {person1}, {person2}, og {person3} den {date}",
|
||||
"image_alt_text_date_4_or_more_people": "{isVideo, select, true {Video} other {Image}} taget med {person1}, {person2}, og {additionalCount, number} andre den {date}",
|
||||
"image_alt_text_date_place": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} den {date}",
|
||||
"image_alt_text_date_place_1_person": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1} den {date}",
|
||||
"image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1} og {person2} den {date}",
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1}, {person2}, og {person3} den {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1}, {person2}, og {additionalCount, number} andre den {date}",
|
||||
"immich_logo": "Immich logo",
|
||||
"immich_web_interface": "Immich webinterface",
|
||||
"import_from_json": "Importér fra JSON",
|
||||
@@ -1219,7 +1180,6 @@
|
||||
"individual_share": "Individuel andel",
|
||||
"individual_shares": "Individuelle delinger",
|
||||
"info": "Info",
|
||||
"integrity_checks": "Integritetstjek",
|
||||
"interval": {
|
||||
"day_at_onepm": "Hver dag kl. 13",
|
||||
"hours": "Hver {hours, plural, one {time} other {{hours, number} timer}}",
|
||||
@@ -1281,7 +1241,6 @@
|
||||
"linked_oauth_account": "Tilsluttet OAuth-konto",
|
||||
"list": "Liste",
|
||||
"live": "Live",
|
||||
"load_more": "Indlæs flere",
|
||||
"loading": "Indlæser",
|
||||
"loading_search_results_failed": "Indlæsning af søgeresultater fejlede",
|
||||
"local": "Lokal",
|
||||
@@ -1322,9 +1281,9 @@
|
||||
"login_form_failed_login": "Der opstod en vejl ved at logge ind. Tjek server webadressen, e-mailen og kodeordet",
|
||||
"login_form_handshake_exception": "Der opstod en fejl med at oprette forbindelse til serveren. Aktiver selvsignerede certifikater i indstillingerne, hvis du bruger et selv signeret certifikat.",
|
||||
"login_form_password_hint": "kodeord",
|
||||
"login_form_server_empty": "Indtast server-URL",
|
||||
"login_form_server_error": "Kunne ikke forbinde til serveren",
|
||||
"login_has_been_disabled": "Login er blevet deaktiveret",
|
||||
"login_form_server_empty": "Indtast server-URL.",
|
||||
"login_form_server_error": "Kunne ikke forbinde til serveren.",
|
||||
"login_has_been_disabled": "Login er blevet deaktiveret.",
|
||||
"login_password_changed_error": "Der opstod en fejl i opdateringen af dit kodeord",
|
||||
"login_password_changed_success": "Kodeordet blev opdateret",
|
||||
"logout_all_device_confirmation": "Er du sikker på, at du vil logge ud af alle enheder?",
|
||||
@@ -1375,7 +1334,6 @@
|
||||
"map_location_picker_page_use_location": "Brug denne placering",
|
||||
"map_location_service_disabled_content": "Placeringstjenesten skal aktiveres for at vise elementer fra din nuværende placering. Vil du aktivere den nu?",
|
||||
"map_location_service_disabled_title": "Placeringstjenesten er deaktiveret",
|
||||
"map_marker_for_image": "Kortmarkør for billede taget i {city}, {country}",
|
||||
"map_marker_with_image": "Kortmarkør med billede",
|
||||
"map_no_location_permission_content": "Der kræves tilladelse til placeringen for at vise elementer fra din nuværende placering. Vil du give tilladelse?",
|
||||
"map_no_location_permission_title": "Placeringstilladelse blev afvist",
|
||||
@@ -1480,7 +1438,6 @@
|
||||
"never": "Aldrig",
|
||||
"new_album": "Nyt album",
|
||||
"new_api_key": "Ny API-nøgle",
|
||||
"new_feature": "Ny Feature",
|
||||
"new_password": "Ny adgangskode",
|
||||
"new_person": "Ny person",
|
||||
"new_pin_code": "Ny PIN kode",
|
||||
@@ -1524,13 +1481,9 @@
|
||||
"not_available": "ikke tilgængelig",
|
||||
"not_in_any_album": "Ikke i noget album",
|
||||
"not_selected": "Ikke valgt",
|
||||
"not_set": "Ikke angivet",
|
||||
"notes": "Noter",
|
||||
"nothing_here_yet": "Intet her endnu",
|
||||
"notification_backup_reliability": "Aktivér notifikationer for at forbedre pålideligheden af backup i baggrunden",
|
||||
"notification_enabled_list_tile_content": "Immich bruger notifikationer til baggrundsbackup. Administrer dem i dine enhedsindstillinger.",
|
||||
"notification_enabled_list_tile_open_button": "Åbn indstillinger",
|
||||
"notification_enabled_list_tile_title": "Notifikationer aktiveret",
|
||||
"notification_permission_dialog_content": "Gå til indstillinger for at slå notifikationer til.",
|
||||
"notification_permission_list_tile_content": "Tillad at bruge notifikationer.",
|
||||
"notification_permission_list_tile_enable_button": "Slå notifikationer til",
|
||||
@@ -1542,8 +1495,6 @@
|
||||
"obtainium_configurator": "Obtainium-konfigurator",
|
||||
"obtainium_configurator_instructions": "Brug Obtainium til at installere og opdatere Android-appen direkte fra Immich-udgivelsen på GitHub. Opret en API-nøgle, og vælg en variant for at generere dit Obtainium-konfigurationslink",
|
||||
"ocr": "OCR",
|
||||
"ocr_body": "Immich læser nu teksten i dine billeder, så du kan søge efter dem ud fra, hvad de siger.",
|
||||
"ocr_title": "Søg tekst i dine fotos",
|
||||
"official_immich_resources": "Officielle Immich-ressourcer",
|
||||
"offline": "Offline",
|
||||
"offset": "Forskydning",
|
||||
@@ -1562,8 +1513,6 @@
|
||||
"open": "Åben",
|
||||
"open_calendar": "Åbn kalender",
|
||||
"open_in_browser": "Åbn i browser",
|
||||
"open_in_immich_body": "Sæt Immich som dit galleri på Android for at åbne billeder direkte fra andre apps.",
|
||||
"open_in_immich_title": "Åbne billeder i Immich",
|
||||
"open_in_map_view": "Åben i kortvisning",
|
||||
"open_in_openstreetmap": "Åben i OpenStreetMap",
|
||||
"open_the_search_filters": "Åbn søgefiltre",
|
||||
@@ -1621,7 +1570,7 @@
|
||||
"person": "Person",
|
||||
"person_age_months": "{months, plural, one {# month} other {# months}} gammel",
|
||||
"person_age_year_months": "1 år, {months, plural, one {# month} other {# months}} gammel",
|
||||
"person_age_years": "{years, plural, other {# år}} gammel",
|
||||
"person_age_years": "{years, plural, other {# years}} gammel",
|
||||
"person_birthdate": "Født den {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (skjult)} other {}}",
|
||||
"person_recognized": "Person genkendt",
|
||||
@@ -1722,10 +1671,7 @@
|
||||
"recent": "For nylig",
|
||||
"recent_searches": "Seneste søgninger",
|
||||
"recently_added": "Senest tilføjet",
|
||||
"recently_added_body": "Gå direkte til alt, hvad du for nylig har tilføjet, på en dedikeret side.",
|
||||
"recently_added_description": "Gennemse dine mediefiler sorteret efter, hvornår de blev uploadet til Immich",
|
||||
"recently_added_page_title": "Nyligt tilføjet",
|
||||
"recently_added_title": "Senest tilføjet",
|
||||
"recently_taken": "Taget for nylig",
|
||||
"refresh": "Opdatér",
|
||||
"refresh_encoded_videos": "Opdater kodede videoer",
|
||||
@@ -1880,7 +1826,6 @@
|
||||
"select_person": "Vælg person",
|
||||
"select_person_to_tag": "Vælg en person at tagge",
|
||||
"select_photos": "Vælg billeder",
|
||||
"select_quality": "Vælg kvalitet",
|
||||
"select_trash_all": "Vælg smid alle ud",
|
||||
"selected": "Valgt",
|
||||
"selected_count": "{count, plural, one {# valgt} other {# valgte}}",
|
||||
@@ -1930,10 +1875,6 @@
|
||||
"share": "Del",
|
||||
"share_dialog_preparing": "Forbereder...",
|
||||
"share_link": "Del link",
|
||||
"share_original": "Brug original (stor)",
|
||||
"share_preview": "Brug miniaturebillede (lille)",
|
||||
"share_quality_body": "Tryk og hold delingsknappen nede for at vælge billedkvaliteten, før du deler.",
|
||||
"share_quality_title": "Vælg din delingskvalitet",
|
||||
"shared": "Delt",
|
||||
"shared_album_activities_input_disable": "Kommentarer er deaktiveret",
|
||||
"shared_album_activity_remove_content": "Vil du slette denne aktivitet?",
|
||||
@@ -1948,9 +1889,7 @@
|
||||
"shared_link_app_bar_title": "Delte links",
|
||||
"shared_link_clipboard_copied_massage": "Kopieret til udklipsholderen",
|
||||
"shared_link_create_error": "Der opstod en fejl i oprettelsen af et delt link",
|
||||
"shared_link_custom_url_description": "Få adgang til dette delte link med et brugerdefineret URL-navn",
|
||||
"shared_link_custom_url_title": "Tilpasset URL",
|
||||
"shared_link_custom_url_warning": "Advarsel: Et brugerdefineret URL-navn med en skråstreg fungerer muligvis ikke som forventet.",
|
||||
"shared_link_custom_url_description": "Adgang til dette delte link med en selvdefineret URL",
|
||||
"shared_link_edit_description_hint": "Indtast beskrivelse",
|
||||
"shared_link_edit_expire_after_option_day": "1 dag",
|
||||
"shared_link_edit_expire_after_option_days": "{count} dage",
|
||||
@@ -2017,21 +1956,17 @@
|
||||
"sign_out": "Log af",
|
||||
"sign_up": "Tilmeld",
|
||||
"size": "Størrelse",
|
||||
"skip": "Spring over",
|
||||
"skip_to_content": "Spring frem til indhold",
|
||||
"skip_to_folders": "Spring til mapper",
|
||||
"skip_to_tags": "Spring til tags",
|
||||
"slideshow": "Diasshow",
|
||||
"slideshow_body": "Læn dig tilbage, og se dine fotos afspilles i et slideshow i fuld skærm.",
|
||||
"slideshow_metadata_overlay_mode": "Overlay indhold",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Kun beskrivelse",
|
||||
"slideshow_metadata_overlay_mode_full": "Fuld",
|
||||
"slideshow_repeat": "Gentag diasshow",
|
||||
"slideshow_repeat_description": "Hop tilbage til begyndelsen når diasshow stopper",
|
||||
"slideshow_settings": "Diasshowindstillinger",
|
||||
"slideshow_title": "Slideshow",
|
||||
"smart_album": "Smart album",
|
||||
"some_assets_already_have_a_location_warning": "Nogle af de valgte aktiver har allerede en placering",
|
||||
"sort_albums_by": "Sortér albummer efter...",
|
||||
"sort_created": "Dato oprettet",
|
||||
"sort_items": "Antal genstande",
|
||||
@@ -2136,12 +2071,10 @@
|
||||
"trash_page_info": "Slettede elementer vil blive slettet permanent efter {days} dage",
|
||||
"trashed_items_will_be_permanently_deleted_after": "Mediefiler i papirkurven vil blive slettet permanent efter {days, plural, one {# dag} other {# dage}}.",
|
||||
"trigger": "Udløser",
|
||||
"trigger_asset_metadata_extraction": "Udtrækning af metadata for mediefil",
|
||||
"trigger_asset_metadata_extraction_description": "Udløses, når EXIF-metadataene for en mediefil udtrækkes",
|
||||
"trigger_asset_uploaded": "Mediefil upload",
|
||||
"trigger_asset_uploaded_description": "Udløses, når et nyt asset bliver uploaded",
|
||||
"trigger_person_recognized": "Peron genkendt",
|
||||
"trigger_person_recognized_description": "Udløses, når en person er genkendt",
|
||||
"trigger_person_recognized_description": "Udløses, når en person er detekteret",
|
||||
"troubleshoot": "Fejlfinding",
|
||||
"type": "Type",
|
||||
"unable_to_change_pin_code": "Kunne ikke ændre PIN kode",
|
||||
@@ -2157,7 +2090,6 @@
|
||||
"unknown": "Ukendt",
|
||||
"unknown_country": "Ukendt land",
|
||||
"unknown_date": "Ukendt dato",
|
||||
"unknown_schema": "Ukendt skema",
|
||||
"unknown_year": "Ukendt år",
|
||||
"unlimited": "Ubegrænset",
|
||||
"unlink_motion_video": "Fjern link til bevægelsesvideo",
|
||||
@@ -2193,8 +2125,6 @@
|
||||
"upload_status_errors": "Fejl",
|
||||
"upload_status_uploaded": "Uploadet",
|
||||
"upload_success": "Upload gennemført. Opdater siden for at se nye uploadaktiver.",
|
||||
"upload_to_album_body": "For brugere, der ikke bruger den manuelle uploadfunktion, kan du nu vælge at tilføje lokale fotos direkte til et album, når du uploader dem. Du behøver ikke længere at uploade og derefter føje dem til et album senere.",
|
||||
"upload_to_album_title": "Upload direkte til et album",
|
||||
"upload_to_immich": "Upload til Immich ({count})",
|
||||
"uploading": "Uploader",
|
||||
"uploading_media": "Uploader media",
|
||||
@@ -2262,9 +2192,6 @@
|
||||
"week": "Uge",
|
||||
"welcome": "Velkommen",
|
||||
"welcome_to_immich": "Velkommen til Immich",
|
||||
"whats_new": "Hvad er nyt",
|
||||
"whats_new_settings_subtitle": "Se, hvad der er nyt i Immich",
|
||||
"whats_new_version": "Version {version}",
|
||||
"when": "Hvornår",
|
||||
"width": "Bredde",
|
||||
"wifi_name": "Wi-Fi navn",
|
||||
|
||||
51
i18n/de.json
51
i18n/de.json
@@ -47,7 +47,7 @@
|
||||
"authentication_settings_disable_all": "Bist du sicher, dass du alle Anmeldemethoden deaktivieren willst? Die Anmeldung wird vollständig deaktiviert.",
|
||||
"authentication_settings_reenable": "Nutze einen <link>Server-Befehl</link> zur Reaktivierung.",
|
||||
"background_task_job": "Hintergrundaufgaben",
|
||||
"backup_database": "Datenbankexport erstellen",
|
||||
"backup_database": "Datenbanksicherung erstellen",
|
||||
"backup_database_enable_description": "Datenbank regelmäßig sichern",
|
||||
"backup_keep_last_amount": "Anzahl der zu speichernden vorherigen Sicherungen",
|
||||
"backup_onboarding_1_description": "Offsite-Kopie in der Cloud oder an einem anderen physischen Ort.",
|
||||
@@ -57,7 +57,7 @@
|
||||
"backup_onboarding_footer": "Weitere Informationen zum Sichern von Immich findest du in der <link>Dokumentation</link>.",
|
||||
"backup_onboarding_parts_title": "Eine 3-2-1-Sicherung umfasst:",
|
||||
"backup_onboarding_title": "Sicherungen",
|
||||
"backup_settings": "Einstellungen zum Datenbankexport",
|
||||
"backup_settings": "Einstellungen zur 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}",
|
||||
"config_set_by_file": "Ist derzeit in einer Konfigurationsdatei festgelegt",
|
||||
@@ -108,21 +108,6 @@
|
||||
"image_thumbnail_quality_description": "Qualität der Miniaturansicht von 1-100. Höher ist besser, erzeugt aber größere Dateien und kann die Reaktionsfähigkeit der App beeinträchtigen.",
|
||||
"image_thumbnail_title": "Miniaturansicht-Einstellungen",
|
||||
"import_config_from_json_description": "Importieren Sie die Systemkonfiguration, indem Sie eine JSON-Konfigurationsdatei hochladen",
|
||||
"integrity_checks_checksum_files": "Prüfsummendateien",
|
||||
"integrity_checks_checksum_files_description": "Anpassung der Prüfsummen Tests",
|
||||
"integrity_checks_checksum_files_enable_description": "Aktiviere den Prüfsummen Test",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Prozentuales Limit",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Setze die maximale Prozentzahl zwischen 0.01 und 1, um zu bestimmen wie viel der Prüfsummen Test jedes Intervall prüfen soll.",
|
||||
"integrity_checks_checksum_files_time_limit": "Zeitlimit",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Setze die maximale Dauer, für die der Prüfsummen Test jedes Intervall ausgeführt werden soll. (ms)",
|
||||
"integrity_checks_missing_files": "Fehlende Dateien",
|
||||
"integrity_checks_missing_files_description": "Setze die Frequenz und (de)aktiviere den Test für fehlende Dateien",
|
||||
"integrity_checks_missing_files_enable_description": "Aktiviere den Test für fehlende Dateien",
|
||||
"integrity_checks_settings": "Integritätstests",
|
||||
"integrity_checks_settings_description": "Verwalten der Intervalle für die Integritätstests",
|
||||
"integrity_checks_untracked_files": "Nicht getrackte Dateien",
|
||||
"integrity_checks_untracked_files_description": "Setze die Frequenz und (de)aktiviere den Test für ungetrackte Dateien",
|
||||
"integrity_checks_untracked_files_enable_description": "Aktiviere den Test für ungetrackte Dateien",
|
||||
"job_concurrency": "{job} (Anzahl gleichzeitiger Prozesse)",
|
||||
"job_created": "Aufgabe erstellt",
|
||||
"job_not_concurrency_safe": "Diese Aufgabe ist nicht parallelisierungssicher.",
|
||||
@@ -162,7 +147,7 @@
|
||||
"machine_learning_duplicate_detection": "Duplikaterkennung",
|
||||
"machine_learning_duplicate_detection_enabled": "Duplikaterkennung aktivieren",
|
||||
"machine_learning_duplicate_detection_enabled_description": "Falls diese Option deaktiviert ist, werden exakt identische Dateien dennoch de-dupliziert.",
|
||||
"machine_learning_duplicate_detection_setting_description": "Verwendung von CLIP-Einbettungen zum Erkennen möglicher Duplikate",
|
||||
"machine_learning_duplicate_detection_setting_description": "Verwendung von CLIP-Embeddings zum Erkennen möglicher Duplikate",
|
||||
"machine_learning_enabled": "Maschinelles Lernen aktivieren",
|
||||
"machine_learning_enabled_description": "Wenn diese Option deaktiviert ist, werden alle ML-Funktionen unabhängig von den unten aufgeführten Einstellungen deaktiviert.",
|
||||
"machine_learning_facial_recognition": "Gesichtserkennung",
|
||||
@@ -431,10 +416,6 @@
|
||||
"transcoding_realtime_description": "Ermöglicht die Transkodierung in Echtzeit während des Videostreams. Ermöglicht einen Qualitätswechsel, kann jedoch je nach Serverkapazität zu einer höheren Wiedergabelatenz und Rucklern führen.",
|
||||
"transcoding_realtime_enabled": "Echtzeit-Transkodierung aktivieren",
|
||||
"transcoding_realtime_enabled_description": "Wenn diese Option deaktiviert ist, lehnt der Server den Start neuer Echtzeit-Transkodierungssitzungen ab.",
|
||||
"transcoding_realtime_resolutions": "Auflösungen",
|
||||
"transcoding_realtime_resolutions_description": "Die für das Echtzeit-Transcoding angebotenen Auflösungen. Höhere Auflösungen können zu Wiedergabeproblemen führen, wenn der Server sie nicht schnell genug transcodieren kann.",
|
||||
"transcoding_realtime_video_codecs": "Video-Codecs",
|
||||
"transcoding_realtime_video_codecs_description": "Die für die Echtzeit-Transkodierung angebotenen Videocodecs. Clients wählen bei der Wiedergabe die beste von ihnen unterstützte Option aus. AV1 ist effizienter als HEVC und HEVC ist effizienter als H.264. Wählen Sie bei Verwendung von Hardwarebeschleunigung nur die Codecs aus, die der Beschleuniger kodieren kann. Beachten Sie bei der Software-Transkodierung, dass H.264 schneller ist als AV1 und AV1 schneller als HEVC.",
|
||||
"transcoding_reference_frames": "Referenz-Frames",
|
||||
"transcoding_reference_frames_description": "Die Anzahl der Bilder, auf die bei der Komprimierung eines bestimmten Bildes Bezug genommen wird. Höhere Werte verbessern die Komprimierungseffizienz, verlangsamen aber die Kodierung. 0 setzt diesen Wert automatisch.",
|
||||
"transcoding_required_description": "Nur Videos in einem nicht akzeptierten Format",
|
||||
@@ -597,7 +578,6 @@
|
||||
"asset_viewer_settings_title": "Fotoanzeige",
|
||||
"assets": "Dateien",
|
||||
"assets_added_to_album_count": "{count, plural, one {# Datei} other {# Dateien}} zum Album hinzugefügt",
|
||||
"assets_added_to_album_partial_count": "{successCount} von {totalCount} {totalCount, plural, one {Datei} other {Dateien}} zum Album hinzugefügt",
|
||||
"assets_added_to_albums_count": "{assetTotal, plural, one {# Datei} other {# Dateien}} zu {albumTotal, plural, one {# Album} other {# Alben}} hinzugefügt",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Datei kann}other {Dateien können}} nicht zum Album hinzugefügt werden",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Datei kann} other {Dateien können}} nicht zu den Alben hinzugefügt werden",
|
||||
@@ -814,6 +794,7 @@
|
||||
"custom_date": "Benutzerdefiniertes Datum",
|
||||
"custom_locale": "Benutzerdefiniertes Gebietsschema",
|
||||
"custom_locale_description": "Datumsangaben, Uhrzeiten und Zahlen je nach Sprache und Land formatieren",
|
||||
"custom_url": "Benutzerdefinierte URL",
|
||||
"cutoff_date_description": "Behalte Fotos der letzten…",
|
||||
"cutoff_day": "{count, plural, one {Tag} other {Tage}}",
|
||||
"cutoff_year": "{count, plural, one {Jahr} other {Jahre}}",
|
||||
@@ -924,7 +905,7 @@
|
||||
"edit_workflow": "Workflow bearbeiten",
|
||||
"editor": "Bearbeiten",
|
||||
"editor_discard_edits_confirm": "Änderungen verwerfen",
|
||||
"editor_discard_edits_prompt": "Es sind ungespeicherte Änderungen vorhanden. Sicher, dass diese verworfen werden sollen?",
|
||||
"editor_discard_edits_prompt": "Es liegen ungespeicherte Änderungen vorhanden. Sicher, dass diese verworfen werden sollen?",
|
||||
"editor_discard_edits_title": "Änderungen verwerfen?",
|
||||
"editor_edits_applied_error": "Änderungen konnten nicht angewendet werden",
|
||||
"editor_edits_applied_success": "Änderungen erfolgreich angewendet",
|
||||
@@ -1480,7 +1461,6 @@
|
||||
"never": "Niemals",
|
||||
"new_album": "Neues Album",
|
||||
"new_api_key": "Neuer API-Schlüssel",
|
||||
"new_feature": "Neue Funktion",
|
||||
"new_password": "Neues Passwort",
|
||||
"new_person": "Neue Person",
|
||||
"new_pin_code": "Neuer PIN-Code",
|
||||
@@ -1524,7 +1504,6 @@
|
||||
"not_available": "N/A",
|
||||
"not_in_any_album": "In keinem Album",
|
||||
"not_selected": "Nicht ausgewählt",
|
||||
"not_set": "Nicht gesetzt",
|
||||
"notes": "Hinweise",
|
||||
"nothing_here_yet": "Noch nichts hier",
|
||||
"notification_backup_reliability": "Benachrichtigungen aktivieren, um die Zuverlässigkeit der Sicherung im Hintergrund zu verbessern",
|
||||
@@ -1542,8 +1521,6 @@
|
||||
"obtainium_configurator": "Obtainium Konfigurator",
|
||||
"obtainium_configurator_instructions": "Du kannst Obtainium benutzen, um die App direkt aus den Github Releases zu installieren oder zu aktualisieren. Bitte erstelle dazu einen API-Schlüssel und wähle eine Variante aus um einen Obtainium-Konfigurationslink zu erstellen",
|
||||
"ocr": "OCR",
|
||||
"ocr_body": "Immich liest jetzt den Text in deinen Fotos, sodass du nach ihrem Inhalt suchen kannst.",
|
||||
"ocr_title": "Suche Text in deinen Fotos",
|
||||
"official_immich_resources": "Offizielle Immich Quellen",
|
||||
"offline": "Offline",
|
||||
"offset": "Verschiebung",
|
||||
@@ -1562,8 +1539,6 @@
|
||||
"open": "Öffnen",
|
||||
"open_calendar": "Kalender öffnen",
|
||||
"open_in_browser": "Im Browser öffnen",
|
||||
"open_in_immich_body": "Setze Immich als deine Galerie auf Android um auf Fotos von anderen Apps zugreifen zu können.",
|
||||
"open_in_immich_title": "Öffne Fotos in Immich",
|
||||
"open_in_map_view": "In Kartenansicht öffnen",
|
||||
"open_in_openstreetmap": "In OpenStreetMap öffnen",
|
||||
"open_the_search_filters": "Die Suchfilter öffnen",
|
||||
@@ -1722,10 +1697,7 @@
|
||||
"recent": "Neueste",
|
||||
"recent_searches": "Letzte Suchen",
|
||||
"recently_added": "Kürzlich hinzugefügt",
|
||||
"recently_added_body": "Öffne direkt deine neusten Änderungen direkt auf einer Seite.",
|
||||
"recently_added_description": "Durchsuche deine Medien nachdem Sie auf Immich hochgeladen wurden",
|
||||
"recently_added_page_title": "Zuletzt hinzugefügt",
|
||||
"recently_added_title": "Zuletzt hinzugefügt",
|
||||
"recently_taken": "Kürzlich aufgenommen",
|
||||
"refresh": "Aktualisieren",
|
||||
"refresh_encoded_videos": "Kodierte Videos aktualisieren",
|
||||
@@ -1932,8 +1904,6 @@
|
||||
"share_link": "Link teilen",
|
||||
"share_original": "Original verwenden (groß)",
|
||||
"share_preview": "Thumbnail verwenden (klein)",
|
||||
"share_quality_body": "Halte den Teilen Button gedrückt um die Bildqualität vor dem Teilen auszuwählen.",
|
||||
"share_quality_title": "Wähle deine Qualität zum Teilen aus",
|
||||
"shared": "Geteilt",
|
||||
"shared_album_activities_input_disable": "Kommentare sind deaktiviert",
|
||||
"shared_album_activity_remove_content": "Möchtest du diese Aktivität entfernen?",
|
||||
@@ -1949,8 +1919,6 @@
|
||||
"shared_link_clipboard_copied_massage": "Link kopiert",
|
||||
"shared_link_create_error": "Fehler beim Erstellen der Linkfreigabe",
|
||||
"shared_link_custom_url_description": "Greife über eine benutzerdefinierte URL auf diesen Freigabelink zu",
|
||||
"shared_link_custom_url_title": "Benutzerdefinierte URL",
|
||||
"shared_link_custom_url_warning": "Warnung: eine benutzerdefinierte URL mit einem Schrägstrich verhält sich möglicherweise nicht wie erwartet.",
|
||||
"shared_link_edit_description_hint": "Beschreibung eingeben",
|
||||
"shared_link_edit_expire_after_option_day": "1 Tag",
|
||||
"shared_link_edit_expire_after_option_days": "{count} Tagen",
|
||||
@@ -2017,19 +1985,16 @@
|
||||
"sign_out": "Abmelden",
|
||||
"sign_up": "Registrieren",
|
||||
"size": "Größe",
|
||||
"skip": "Überspringen",
|
||||
"skip_to_content": "Zum Inhalt springen",
|
||||
"skip_to_folders": "Springe zu Ordnern",
|
||||
"skip_to_tags": "Springe zu Tags",
|
||||
"slideshow": "Diashow",
|
||||
"slideshow_body": "Lehn' dich zurück und genieße deine Fotos in einer Vollbild Diashow.",
|
||||
"slideshow_metadata_overlay_mode": "Overlay Inhalt",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Nur Beschreibung",
|
||||
"slideshow_metadata_overlay_mode_full": "Alles",
|
||||
"slideshow_repeat": "Slideshow wiederholen",
|
||||
"slideshow_repeat_description": "Wenn Slideshow beendet, zum Anfang zurückkehren",
|
||||
"slideshow_settings": "Diashow-Einstellungen",
|
||||
"slideshow_title": "Diashow",
|
||||
"smart_album": "Smart Album",
|
||||
"some_assets_already_have_a_location_warning": "Einige der ausgewählten Dateien haben bereits einen Standort",
|
||||
"sort_albums_by": "Alben sortieren nach...",
|
||||
@@ -2157,7 +2122,6 @@
|
||||
"unknown": "Unbekannt",
|
||||
"unknown_country": "Unbekanntes Land",
|
||||
"unknown_date": "Unbekanntes Datum",
|
||||
"unknown_schema": "Unbekanntes Schema",
|
||||
"unknown_year": "Unbekanntes Jahr",
|
||||
"unlimited": "Unlimitiert",
|
||||
"unlink_motion_video": "Verknüpfung zum Bewegungsvideo aufheben",
|
||||
@@ -2193,8 +2157,6 @@
|
||||
"upload_status_errors": "Fehler",
|
||||
"upload_status_uploaded": "Hochgeladen",
|
||||
"upload_success": "Hochladen erfolgreich. Aktualisiere die Seite, um neue hochgeladene Dateien zu sehen.",
|
||||
"upload_to_album_body": "Für Nutzer*innen die nicht den manuellen Upload verwenden, du kannst auswählen neue lokale Fotos direkt in ein Album hinzufügen, sodass du sie nicht erst hochladen und dann zu einem Album hinzufügen musst.",
|
||||
"upload_to_album_title": "Direkt in ein Album hochladen",
|
||||
"upload_to_immich": "Auf Immich hochladen ({count})",
|
||||
"uploading": "Wird hochgeladen",
|
||||
"uploading_media": "Medien werden hochgeladen",
|
||||
@@ -2262,9 +2224,6 @@
|
||||
"week": "Woche",
|
||||
"welcome": "Willkommen",
|
||||
"welcome_to_immich": "Willkommen bei Immich",
|
||||
"whats_new": "Neuigkeiten",
|
||||
"whats_new_settings_subtitle": "Neues in Immich",
|
||||
"whats_new_version": "Version {version}",
|
||||
"when": "Wann",
|
||||
"width": "Breite",
|
||||
"wifi_name": "WLAN-Netzwerk",
|
||||
|
||||
@@ -113,8 +113,8 @@
|
||||
"job_not_concurrency_safe": "Diese Aufgabe kann nicht mehrmals parallel laufen gelassen werden.",
|
||||
"job_settings": "Aufgabeneinstellungen",
|
||||
"job_settings_description": "Gleichzeitige Ausführung von Aufgaben verwalten",
|
||||
"jobs_delayed": "{jobCount, plural, other {# verzögert}}",
|
||||
"jobs_failed": "{jobCount, plural, other {# fehlgeschlagen}}",
|
||||
"jobs_delayed": "Qualität",
|
||||
"jobs_failed": "{jobCount, plural, other {# failed}}",
|
||||
"jobs_over_time": "Jobs im Laufe der Zeit",
|
||||
"library_created": "Bibliothek erstellt: {library}",
|
||||
"library_deleted": "Bibliothek gelöscht",
|
||||
|
||||
188
i18n/el.json
188
i18n/el.json
@@ -23,7 +23,6 @@
|
||||
"add_location": "Προσθήκη τοποθεσίας",
|
||||
"add_partner": "Προσθήκη συνεργάτη",
|
||||
"add_photos": "Προσθήκη φωτογραφιών",
|
||||
"add_step": "Προσθήκη βήματος",
|
||||
"add_tag": "Προσθήκη ετικέτας",
|
||||
"add_to": "Προσθήκη σε…",
|
||||
"add_to_album": "Προσθήκη σε άλμπουμ",
|
||||
@@ -73,7 +72,6 @@
|
||||
"cron_expression_description": "Ορίστε το διάστημα σάρωσης χρησιμοποιώντας τη μορφή cron. Για περισσότερες πληροφορίες, ανατρέξτε π.χ. στο <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "Προκαθορισμένες εκφράσεις cron",
|
||||
"disable_login": "Απενεργοποίηση σύνδεσης",
|
||||
"download_csv": "Μεταφόρτωση CSV",
|
||||
"duplicate_detection_job_description": "Εκτελέστε μηχανική μάθηση σε στοιχεία για να εντοπίσετε παρόμοιες εικόνες. Βασίζεται στην Έξυπνη Αναζήτηση",
|
||||
"exclusion_pattern_description": "Τα μοτίβα αποκλεισμού σας επιτρέπουν να αγνοείται αρχεία και φακέλους κατά τη σάρωση της βιβλιοθήκης σας. Αυτό είναι χρήσιμο εάν εχετε φακέλους που περιέχουν αρχεία που δεν θέλετε να εισάγετε, όπως αρχεία RAW.",
|
||||
"export_config_as_json_description": "Κατέβασε την τρέχουσα διαμόρφωση συστήματος ως αρχείο JSON",
|
||||
@@ -108,21 +106,6 @@
|
||||
"image_thumbnail_quality_description": "Ποιότητα μικρογραφίας από 1 έως 100. Υψηλότερες τιμές είναι καλύτερες, αλλά παράγουν μεγαλύτερα αρχεία που μπορεί να μειώσουν την ταχύτητα απόκρισης της εφαρμογής.",
|
||||
"image_thumbnail_title": "Ρυθμίσεις Μικρογραφίας",
|
||||
"import_config_from_json_description": "Εισαγωγή διαμόρφωσης συστήματος με ανέβασμα αρχείου διαμόρφωσης JSON",
|
||||
"integrity_checks_checksum_files": "Αρχεία ελέγχου ακεραιότητας",
|
||||
"integrity_checks_checksum_files_description": "Ρύθμιση του ελέγχου ακεραιότητας",
|
||||
"integrity_checks_checksum_files_enable_description": "Ενεργοποίηση του ελέγχου ακεραιότητας",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Όριο ποσοστού",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Ρυθμίστε το μέγιστο ποσοστό μεταξύ 0,01 και 1 για το πόσο θα εκτελείται ο έλεγχος ακεραιότητας σε κάθε διάστημα.",
|
||||
"integrity_checks_checksum_files_time_limit": "Χρονικό όριο",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Ρυθμίστε τη μέγιστη διάρκεια για την οποία θα εκτελείται ο έλεγχος ακεραιότητας σε κάθε διάστημα. (ms)",
|
||||
"integrity_checks_missing_files": "Ελλείποντα αρχεία",
|
||||
"integrity_checks_missing_files_description": "Ρυθμίστε τη συχνότητα και ενεργοποιήστε ή απενεργοποιήστε τον έλεγχο για τα ελλείποντα αρχεία",
|
||||
"integrity_checks_missing_files_enable_description": "Ενεργοποίηση ελέγχου για τα ελλείποντα αρχεία",
|
||||
"integrity_checks_settings": "Έλεγχοι ακεραιότητας",
|
||||
"integrity_checks_settings_description": "Διαχείριση διαστημάτων ελέγχων ακεραιότητας",
|
||||
"integrity_checks_untracked_files": "Αρχεία χωρίς παρακολούθηση",
|
||||
"integrity_checks_untracked_files_description": "Ρυθμίστε τη συχνότητα και ενεργοποιήστε ή απενεργοποιήστε τον έλεγχο για τα μη παρακολουθούμενα αρχεία",
|
||||
"integrity_checks_untracked_files_enable_description": "Ενεργοποίηση του ελέγχου για τα μη παρακολουθούμενα αρχεία",
|
||||
"job_concurrency": "Ταυτόχρονη εκτέλεση {job}",
|
||||
"job_created": "Εργασία δημιουργήθηκε",
|
||||
"job_not_concurrency_safe": "Αυτή η εργασία δεν είναι ασφαλής για ταυτόχρονη εκτέλεση.",
|
||||
@@ -198,25 +181,9 @@
|
||||
"machine_learning_smart_search_enabled": "Ενεργοποίηση έξυπνης αναζήτησης",
|
||||
"machine_learning_smart_search_enabled_description": "Αν απενεργοποιηθεί, οι εικόνες δεν θα κωδικοποιούνται για έξυπνη αναζήτηση.",
|
||||
"machine_learning_url_description": "Η διεύθυνση URL του διακομιστή μηχανικής μάθησης. Αν δοθούν περισσότερες από μία διευθύνσεις URL, κάθε διακομιστής θα δοκιμάζεται διαδοχικά μέχρι να ανταποκριθεί ένας με επιτυχία, με τη σειρά από την πρώτη έως την τελευταία. Οι διακομιστές που δεν ανταποκρίνονται θα αγνοούνται προσωρινά μέχρι να επανέλθουν σε λειτουργία.",
|
||||
"maintenance_backup_management": "Διαχείριση αντιγράφων ασφαλείας",
|
||||
"maintenance_delete_backup": "Διαγραφή αντιγράφου ασφαλείας",
|
||||
"maintenance_delete_backup_description": "Αυτό το αρχείο θα διαγραφεί οριστικά και χωρίς δυνατότητα επαναφοράς.",
|
||||
"maintenance_delete_error": "Αποτυχία διαγραφής του αντιγράφου ασφαλείας.",
|
||||
"maintenance_integrity_check": "Έλεγχος",
|
||||
"maintenance_integrity_check_all": "Έλεγχος Όλων",
|
||||
"maintenance_integrity_checksum_mismatch": "Ασυμφωνία ελέγχου ακεραιότητας",
|
||||
"maintenance_integrity_checksum_mismatch_description": "Αρχεία των οποίων ο έλεγχος ακεραιότητας στο δίσκο δεν ταιριάζει με εκείνον που έχει αποθηκεύσει το Immich στη βάση δεδομένων του.",
|
||||
"maintenance_integrity_checksum_mismatch_job": "Έλεγχος για ασυμφωνίες ελέγχου ακεραιότητας",
|
||||
"maintenance_integrity_checksum_mismatch_refresh_job": "Ανανέωση αναφορών ασυμφωνιών ελέγχου ακεραιότητας",
|
||||
"maintenance_integrity_missing_file": "Ελλείποντα Αρχεία",
|
||||
"maintenance_integrity_missing_file_description": "Αρχεία που το Immich έχει καταχωρίσει στη βάση δεδομένων του αλλά δεν υπάρχουν στο σύστημα αρχείων.",
|
||||
"maintenance_integrity_missing_file_job": "Έλεγχος για ελλείποντα αρχεία",
|
||||
"maintenance_integrity_missing_file_refresh_job": "Ανανέωση αναφορών ελλειπόντων αρχείων",
|
||||
"maintenance_integrity_report": "Αναφορά ακεραιότητας",
|
||||
"maintenance_integrity_untracked_file": "Μη παρακολουθούμενα αρχεία",
|
||||
"maintenance_integrity_untracked_file_description": "Αρχεία στους φακέλους του Immich για τα οποία το Immich δεν έχει καμία καταχώριση.",
|
||||
"maintenance_integrity_untracked_file_job": "Έλεγχος για μη παρακολουθούμενα αρχεία",
|
||||
"maintenance_integrity_untracked_file_refresh_job": "Ανανέωση αναφορών για μη παρακολουθούμενα αρχεία",
|
||||
"maintenance_restore_backup": "Επαναφορά αντιγράφου ασφαλείας",
|
||||
"maintenance_restore_backup_description": "Το Immich θα διαγραφεί πλήρως και θα επαναφερθεί από το επιλεγμένο αντίγραφο ασφαλείας. Θα δημιουργηθεί αντίγραφο ασφαλείας πριν τη συνέχεια.",
|
||||
"maintenance_restore_backup_different_version": "Αυτό το αντίγραφο ασφαλείας δημιουργήθηκε με διαφορετική έκδοση του Immich!",
|
||||
@@ -331,8 +298,6 @@
|
||||
"refreshing_all_libraries": "Επαναφόρτωση όλων των βιβλιοθηκών",
|
||||
"registration": "Εγγραφή Διαχειριστή",
|
||||
"registration_description": "Δεδομένου ότι είστε ο πρώτος χρήστης στο σύστημα, θα ανατεθείτε ως Διαχειριστής και θα είστε υπεύθυνος για τις διαχειριστικές εργασίες, ενώ οι επιπλέον χρήστες θα δημιουργούνται από εσάς.",
|
||||
"release_channel_release_candidate": "Υποψήφια έκδοση",
|
||||
"release_channel_stable": "Σταθερή",
|
||||
"remove_failed_jobs": "Αφαίρεση αποτυχημένων εργασιών",
|
||||
"require_password_change_on_login": "Απαιτείται από τον χρήστη να αλλάξει τον κωδικό πρόσβασης κατά την πρώτη σύνδεση",
|
||||
"reset_settings_to_default": "Επαναφορά προεπιλεγμένων ρυθμίσεων",
|
||||
@@ -427,14 +392,6 @@
|
||||
"transcoding_preferred_hardware_device_description": "Ισχύει μόνο για VAAPI και QSV. Ορίζει τον κόμβο DRI που χρησιμοποιείται για την επιτάχυνση υλικού κατά την κωδικοποίηση.",
|
||||
"transcoding_preset_preset": "Προκαθορισμένη ρύθμιση (-preset)",
|
||||
"transcoding_preset_preset_description": "Ταχύτητα συμπίεσης. Οι πιο αργές προκαθορισμένες ρυθμίσεις παράγουν μικρότερα αρχεία και βελτιώνουν την ποιότητα όταν στοχεύουν σε έναν συγκεκριμένο ρυθμό μετάδοσης (bitrate). Ο VP9 αγνοεί τις ταχύτητες πάνω από την 'πιο γρήγορη' (faster).",
|
||||
"transcoding_realtime": "Μετατροπή σε πραγματικό χρόνο [ΠΕΙΡΑΜΑΤΙΚΟ]",
|
||||
"transcoding_realtime_description": "Επιτρέπει τη επανακωδικοποίηση να εκτελείται σε πραγματικό χρόνο καθώς γίνεται η ροή του βίντεο. Ενεργοποιεί την αλλαγή ποιότητας, αλλά μπορεί να προκαλέσει μεγαλύτερη καθυστέρηση αναπαραγωγής και κολλήματα, ανάλογα με τις δυνατότητες του διακομιστή.",
|
||||
"transcoding_realtime_enabled": "Ενεργοποίηση επανακωδικοποίησης σε πραγματικό χρόνο",
|
||||
"transcoding_realtime_enabled_description": "Αν είναι απενεργοποιημένο, ο διακομιστής θα αρνείται την εκκίνηση νέων συνεδριών επανακωδικοποίησης σε πραγματικό χρόνο.",
|
||||
"transcoding_realtime_resolutions": "Αναλύσεις",
|
||||
"transcoding_realtime_resolutions_description": "Οι αναλύσεις που προσφέρονται για επανακωδικοποίηση σε πραγματικό χρόνο. Οι υψηλότερες αναλύσεις μπορεί να προκαλέσουν προβλήματα αναπαραγωγής, εάν ο διακομιστής δεν μπορεί να τις επανακωδικοποιήσει αρκετά γρήγορα.",
|
||||
"transcoding_realtime_video_codecs": "Κωδικοποιητές βίντεο",
|
||||
"transcoding_realtime_video_codecs_description": "Οι κωδικοποιητές βίντεο που προσφέρονται για επανακωδικοποίηση σε πραγματικό χρόνο. Οι συσκευές-πελάτες θα επιλέγουν την καλύτερη επιλογή που υποστηρίζουν κατά την αναπαραγωγή. Το AV1 είναι πιο αποδοτικό από το HEVC, το οποίο είναι πιο αποδοτικό από το H.264. Όταν χρησιμοποιείτε επιτάχυνση υλικού, επιλέξτε μόνο τους κωδικοποιητές που μπορεί να κωδικοποιήσει ο επιταχυντής. Όταν χρησιμοποιείτε επανακωδικοποίηση μέσω λογισμικού, σημειώστε ότι το H.264 είναι ταχύτερο από το AV1, το οποίο είναι ταχύτερο από το HEVC.",
|
||||
"transcoding_reference_frames": "Καρέ αναφοράς",
|
||||
"transcoding_reference_frames_description": "Ο αριθμός των καρέ που χρησιμοποιούνται ως αναφορά κατά τη συμπίεση ενός δεδομένου καρέ. Υψηλότερες τιμές βελτιώνουν την αποδοτικότητα της συμπίεσης, αλλά επιβραδύνουν την κωδικοποίηση. Η τιμή 0 ρυθμίζει αυτό τον αριθμό, αυτόματα.",
|
||||
"transcoding_required_description": "Μόνο βίντεο που δεν είναι σε αποδεκτή μορφή",
|
||||
@@ -478,8 +435,6 @@
|
||||
"user_settings_description": "Διαχείριση ρυθμίσεων χρήστη",
|
||||
"user_successfully_removed": "Ο χρήστης {email} αφαιρέθηκε με επιτυχία.",
|
||||
"users_page_description": "Σελίδα χρηστών διαχειριστή",
|
||||
"version_check_channel": "Κανάλι έκδοσης",
|
||||
"version_check_channel_description": "Επιλέξτε το κανάλι έκδοσης για το οποίο θέλετε να λαμβάνετε ανακοινώσεις εκδόσεων",
|
||||
"version_check_enabled_description": "Ενεργοποίηση ελέγχου έκδοσης",
|
||||
"version_check_implications": "Η λειτουργία ελέγχου έκδοσης, εξαρτάται από την περιοδική επικοινωνία με το {server}",
|
||||
"version_check_settings": "Έλεγχος εκδοσης",
|
||||
@@ -574,7 +529,6 @@
|
||||
"asset_added_to_album": "Προστέθηκε στο άλμπουμ",
|
||||
"asset_adding_to_album": "Προστίθεται στο άλμπουμ…",
|
||||
"asset_created": "Το στοιχείο δημιουργήθηκε",
|
||||
"asset_day_count": "{date}: {count, plural, one {# στοιχείο} other {# στοιχεία}}",
|
||||
"asset_description_updated": "Η περιγραφή του αντικειμένου έχει ενημερωθεί",
|
||||
"asset_hashing": "Δημιουργία κατακερματισμού…",
|
||||
"asset_list_group_by_sub_title": "Ομαδοποίηση κατά",
|
||||
@@ -597,7 +551,6 @@
|
||||
"asset_viewer_settings_title": "Προβολή Στοιχείων",
|
||||
"assets": "Αντικείμενα",
|
||||
"assets_added_to_album_count": "Προστέθηκε {count, plural, one {# αρχείο} other {# αρχεία}} στο άλμπουμ",
|
||||
"assets_added_to_album_partial_count": "Προστέθηκαν {successCount} από τα {totalCount} {totalCount, plural, one {στοιχείο} other {στοιχεία}} στο άλμπουμ",
|
||||
"assets_added_to_albums_count": "Προστέθηκαν {assetTotal, plural, one {# αρχείο} other {# αρχεία}} σε {albumTotal, plural, one {# άλμπουμ} other {# άλμπουμ}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Στοιχείο} other {Στοιχεία}} δεν μπορούν να προστεθούν στο άλμπουμ",
|
||||
"assets_cannot_be_added_to_albums": "Δεν μπορεί να προστεθεί κανένα {count, plural, one {στοιχείο} other {στοιχεία}} σε κανένα από τα άλμπουμ",
|
||||
@@ -651,14 +604,12 @@
|
||||
"backup_options": "Επιλογές αντιγράφου ασφαλείας",
|
||||
"backup_settings_subtitle": "Διαχείριση των ρυθμίσεων μεταφόρτωσης",
|
||||
"backward": "Προς τα πίσω",
|
||||
"battery_optimization_backup_reliability": "Η απενεργοποίηση των βελτιστοποιήσεων μπαταρίας μπορεί να βελτιώσει την αξιοπιστία των αντιγράφων ασφαλείας στο παρασκήνιο",
|
||||
"biometric_auth_enabled": "Βιομετρική ταυτοποίηση ενεργοποιήθηκε",
|
||||
"biometric_locked_out": "Είστε κλειδωμένοι εκτός της βιομετρικής ταυτοποίησης",
|
||||
"biometric_no_options": "Δεν υπάρχουν διαθέσιμοι τρόποι βιομετρικής ταυτοποίησης",
|
||||
"biometric_not_available": "Δεν υπάρχει διαθέσιμη βιομετρική ταυτοποίηση σε αυτή τη συσκευή",
|
||||
"birthdate_set_description": "Η ημερομηνία γέννησης χρησιμοποιείται για τον υπολογισμό της ηλικίας αυτού του ατόμου, τη χρονική στιγμή μιας φωτογραφίας.",
|
||||
"blurred_background": "Θολό φόντο",
|
||||
"browse_templates": "Περιήγηση σε πρότυπα",
|
||||
"bugs_and_feature_requests": "Σφάλματα & Αιτήματα Λειτουργιών",
|
||||
"build": "Κατασκευή",
|
||||
"build_image": "Κατασκευή Εικόνας",
|
||||
@@ -678,7 +629,6 @@
|
||||
"cannot_update_the_description": "Αδύνατη η ενημέρωση της περιγραφής",
|
||||
"cast": "Προβολή",
|
||||
"cast_description": "Ρύθμιση των διαθέσιμων προορισμών casting",
|
||||
"change": "Αλλαγή",
|
||||
"change_date": "Αλλαγή ημερομηνίας",
|
||||
"change_description": "Αλλαγή περιγραφής",
|
||||
"change_display_order": "Αλλαγή σειράς εμφάνισης",
|
||||
@@ -701,7 +651,6 @@
|
||||
"charging_requirement_mobile_backup": "Η δημιουργία αντιγράφων ασφάλειας στο παρασκήνιο απαιτεί η συσκευή να φορτίζει",
|
||||
"check_logs": "Ελέγξτε τα αρχεία καταγραφής",
|
||||
"checksum": "Έλεγχος ακεραιότητας",
|
||||
"choose": "Επιλογή",
|
||||
"choose_matching_people_to_merge": "Επιλέξτε τα αντίστοιχα άτομα για συγχώνευση",
|
||||
"city": "Πόλη",
|
||||
"cleanup_confirm_description": "Το Immich εντόπισε {count} αρχεία (δημιουργήθηκαν πριν από {date}) που έχουν ασφαλώς αντιγραφεί στον διακομιστή. Να διαγραφούν τα τοπικά αντίγραφα από αυτή τη συσκευή;",
|
||||
@@ -719,7 +668,6 @@
|
||||
"clear": "Εκκαθάριση",
|
||||
"clear_all": "Εκκαθάριση όλων",
|
||||
"clear_all_recent_searches": "Εκκαθάριση όλων των πρόσφατων αναζητήσεων",
|
||||
"clear_failed_count": "Αποτυχία εκκαθάρισης ({count})",
|
||||
"clear_file_cache": "Εκκαθάριση της Προσωρινής Μνήμης Αρχείων",
|
||||
"clear_message": "Εκκαθάριση μηνύματος",
|
||||
"clear_value": "Εκκαθάριση τιμής",
|
||||
@@ -747,7 +695,6 @@
|
||||
"comments_are_disabled": "Τα σχόλια είναι απενεργοποιημένα",
|
||||
"common_create_new_album": "Δημιουργία νέου άλμπουμ",
|
||||
"completed": "Ολοκληρώθηκε",
|
||||
"configuration": "Ρύθμιση",
|
||||
"confirm": "Επιβεβαίωση",
|
||||
"confirm_admin_password": "Επιβεβαίωση κωδικού Διαχειριστή",
|
||||
"confirm_delete_face": "Είστε σίγουροι ότι θέλετε να διαγράψετε το πρόσωπο του/της {name} από το στοιχείο;",
|
||||
@@ -762,7 +709,6 @@
|
||||
"contain": "Περιέχει",
|
||||
"context": "Συμφραζόμενα",
|
||||
"continue": "Συνέχεια",
|
||||
"control_bottom_app_bar_add_tags": "Προσθήκη Ετικετών",
|
||||
"control_bottom_app_bar_delete_from_local": "Διαγραφή από τη συσκευή",
|
||||
"control_bottom_app_bar_edit_location": "Επεξεργασία Τοποθεσίας",
|
||||
"control_bottom_app_bar_edit_time": "Επεξεργασία Ημερομηνίας & Ώρας",
|
||||
@@ -771,7 +717,6 @@
|
||||
"copied_to_clipboard": "Αντιγράφηκε στο πρόχειρο!",
|
||||
"copy_error": "Σφάλμα αντιγραφής",
|
||||
"copy_image": "Αντιγραφή Εικόνας",
|
||||
"copy_json": "Αντιγραφή JSON",
|
||||
"copy_link": "Αντιγραφή συνδέσμου",
|
||||
"copy_link_to_clipboard": "Αντιγραφή συνδέσμου στο πρόχειρο",
|
||||
"copy_password": "Αντιγραφή κωδικού",
|
||||
@@ -814,6 +759,7 @@
|
||||
"custom_date": "Προσαρμοσμένη ημερομηνία",
|
||||
"custom_locale": "Προσαρμοσμένη τοπική ρύθμιση",
|
||||
"custom_locale_description": "Μορφοποιήστε τις ημερομηνίες, τους χρόνους και τους αριθμούς, σύμφωνα με την επιλεγμένη γλώσσα και περιοχή",
|
||||
"custom_url": "Προσαρμοσμένη διεύθυνση URL",
|
||||
"cutoff_date_description": "Διατήρηση φωτογραφιών από τις τελευταίες…",
|
||||
"cutoff_day": "{count, plural, one {ημέρα} other {ημέρες}}",
|
||||
"cutoff_year": "{count, plural, one {έτος} other {έτη}}",
|
||||
@@ -823,15 +769,11 @@
|
||||
"date_after": "Ημερομηνία μετά",
|
||||
"date_and_time": "Ημερομηνία και ώρα",
|
||||
"date_before": "Ημερομηνία πριν",
|
||||
"date_of_birth": "Ημερομηνία γέννησης",
|
||||
"date_of_birth_saved": "Η ημερομηνία γέννησης αποθηκεύτηκε επιτυχώς",
|
||||
"date_range": "Εύρος ημερομηνιών",
|
||||
"date_time_original": "Ημερομηνία/Ώρα λήψης",
|
||||
"day": "Ημέρα",
|
||||
"days": "Ημέρες",
|
||||
"deduplicate_all": "Αφαίρεση όλων των διπλότυπων",
|
||||
"default_quality_subtitle": "Η ποιότητα που χρησιμοποιείται όταν πατάτε κοινή χρήση. Κρατήστε πατημένο το κουμπί κοινής χρήσης για να επιλέγετε κάθε φορά.",
|
||||
"default_share_quality": "Προεπιλεγμένη ποιότητα διαμοιρασμού",
|
||||
"delete": "Διαγραφή",
|
||||
"delete_action_confirmation_message": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το αρχείο; Αυτή η ενέργεια θα το μετακινήσει στον κάδο απορριμμάτων του διακομιστή και θα εμφανιστεί μήνυμα για το αν θέλετε να το διαγράψετε και τοπικά",
|
||||
"delete_action_prompt": "{count} διαγράφηκαν",
|
||||
@@ -893,10 +835,7 @@
|
||||
"downloading_asset_filename": "Λήψη στοιχείου {filename}",
|
||||
"downloading_from_icloud": "Λήψη από το iCloud",
|
||||
"downloading_media": "Λήψη πολυμέσων",
|
||||
"drag_to_reorder": "Σύρετε για αναδιάταξη",
|
||||
"drop_files_to_upload": "Σύρετε αρχεία εδώ για να τα ανεβάσετε",
|
||||
"duplicate": "Διπλότυπο",
|
||||
"duplicate_workflow": "Διπλότυπη ροή εργασίας",
|
||||
"duplicates": "Διπλότυπα",
|
||||
"duplicates_description": "Επιλύστε κάθε ομάδα υποδεικνύοντας ποιες, εάν υπάρχουν, είναι διπλότυπες.",
|
||||
"duration": "Διάρκεια",
|
||||
@@ -991,7 +930,6 @@
|
||||
"failed_to_remove_product_key": "Αποτυχία αφαίρεσης κλειδιού προϊόντος",
|
||||
"failed_to_reset_pin_code": "Αποτυχία επαναφοράς του PIN",
|
||||
"failed_to_stack_assets": "Αποτυχία στην συμπίεση των στοιχείων",
|
||||
"failed_to_tag_assets": "Αποτυχία προσθήκης ετικετών στα στοιχεία",
|
||||
"failed_to_unstack_assets": "Αποτυχία στην αποσυμπίεση των στοιχείων",
|
||||
"failed_to_update_notification_status": "Αποτυχία ενημέρωσης της κατάστασης ειδοποίησης",
|
||||
"incorrect_email_or_password": "Λανθασμένο email ή κωδικός πρόσβασης",
|
||||
@@ -1103,18 +1041,15 @@
|
||||
"export_as_json": "Εξαγωγή ως JSON",
|
||||
"export_database": "Εξαγωγή βάσης δεδομένων",
|
||||
"export_database_description": "Εξαγωγή της SQLite βάσης δεδομένων",
|
||||
"exposure_time": "Χρόνος Έκθεσης",
|
||||
"extension": "Επέκταση",
|
||||
"external": "Εξωτερικός",
|
||||
"external_libraries": "Εξωτερικές βιβλιοθήκες",
|
||||
"external_network": "Εξωτερικό δίκτυο",
|
||||
"external_network_sheet_info": "Όταν δεν είστε συνδεδεμένοι στο προτιμώμενο δίκτυο Wi-Fi, η εφαρμογή θα συνδεθεί με τον διακομιστή μέσω του πρώτου από τα παρακάτω URLs που μπορεί να βρει διαθέσιμο, ξεκινώντας από το πάνω προς το κάτω",
|
||||
"f_number": "Διάφραγμα",
|
||||
"face_unassigned": "Μη ανατεθειμένο",
|
||||
"failed": "Απέτυχε",
|
||||
"failed_count": "Αποτυχημένα: {count}",
|
||||
"failed_to_authenticate": "Αποτυχία ταυτοποίησης",
|
||||
"failed_to_delete_file": "Αποτυχία διαγραφής αρχείου",
|
||||
"failed_to_load_assets": "Αποτυχία φόρτωσης στοιχείων",
|
||||
"failed_to_load_folder": "Αποτυχία φόρτωσης φακέλου",
|
||||
"favorite": "Αγαπημένο",
|
||||
@@ -1136,7 +1071,6 @@
|
||||
"filters": "Φίλτρα",
|
||||
"first": "Αρχικά",
|
||||
"fix_incorrect_match": "Διόρθωση λανθασμένης αντιστοίχισης",
|
||||
"focal_length": "Εστιακή Απόσταση",
|
||||
"folder": "Φάκελος",
|
||||
"folder_not_found": "Ο φάκελος δεν βρέθηκε",
|
||||
"folders": "Φάκελοι",
|
||||
@@ -1147,7 +1081,6 @@
|
||||
"free_up_space_description": "Μετακινήστε τις φωτογραφίες και τα βίντεο που έχουν αντιγραφεί στον κάδο της συσκευής σας για να απελευθερώσετε χώρο. Τα αντίγραφά σας στο διακομιστή, παραμένουν ασφαλή.",
|
||||
"free_up_space_settings_subtitle": "Απελευθέρωση χώρου στη συσκευή",
|
||||
"full_path": "Πλήρης διαδρομή: {path}",
|
||||
"full_path_or_folder": "Πλήρης διαδρομή ή φάκελος",
|
||||
"gcast_enabled": "Μετάδοση περιεχομένου Google Cast",
|
||||
"gcast_enabled_description": "Αυτό το χαρακτηριστικό φορτώνει εξωτερικούς πόρους από τη Google για να λειτουργήσει.",
|
||||
"general": "Γενικά",
|
||||
@@ -1219,7 +1152,6 @@
|
||||
"individual_share": "Μεμονωμένος διαμοιρασμός",
|
||||
"individual_shares": "Μεμονωμένες κοινοποιήσεις",
|
||||
"info": "Πληροφορίες",
|
||||
"integrity_checks": "Έλεγχοι Ακεραιότητας",
|
||||
"interval": {
|
||||
"day_at_onepm": "Κάθε μέρα στη 1μμ",
|
||||
"hours": "Κάθε {hours, plural, one {ώρα} other {{hours, number} ώρες}}",
|
||||
@@ -1230,7 +1162,6 @@
|
||||
"invalid_date_format": "Μη έγκυρη μορφή ημερομηνίας",
|
||||
"invite_people": "Πρόσκληση Ατόμων",
|
||||
"invite_to_album": "Πρόσκληση σε άλμπουμ",
|
||||
"iso": "ISO",
|
||||
"items_count": "{count, plural, one {# αντικείμενο} other {# αντικείμενα}}",
|
||||
"jobs": "Εργασίες",
|
||||
"keep": "Διατήρηση",
|
||||
@@ -1259,7 +1190,6 @@
|
||||
"leave": "Εγκατάλειψη",
|
||||
"leave_album": "Αποχώρηση από το άλμπουμ",
|
||||
"lens_model": "Μοντέλο φακού",
|
||||
"less": "Λιγότερα",
|
||||
"let_others_respond": "Επέτρεψε σε άλλους να απαντήσουν",
|
||||
"level": "Επίπεδο",
|
||||
"library": "Βιβλιοθήκη",
|
||||
@@ -1280,8 +1210,6 @@
|
||||
"link_to_oauth": "Σύνδεση στον OAuth",
|
||||
"linked_oauth_account": "Ο OAuth λογαριασμός συνδέθηκε",
|
||||
"list": "Λίστα",
|
||||
"live": "Ζωντανά",
|
||||
"load_more": "Φόρτωση Περισσότερων",
|
||||
"loading": "Φόρτωση",
|
||||
"loading_search_results_failed": "Η φόρτωση αποτελεσμάτων αναζήτησης απέτυχε",
|
||||
"local": "Τοπικά",
|
||||
@@ -1322,9 +1250,9 @@
|
||||
"login_form_failed_login": "Σφάλμα κατά τη σύνδεσή σας, ελέγξτε τη διεύθυνση URL του διακομιστή, το email και τον κωδικό πρόσβασης",
|
||||
"login_form_handshake_exception": "Υπήρξε σφάλμα χειραψίας με τον διακομιστή. Ενεργοποιήστε την υποστήριξη αυτο-υπογεγραμμένου πιστοποιητικού στις ρυθμίσεις εάν χρησιμοποιείτε αυτο-υπογεγραμμένο πιστοποιητικό.",
|
||||
"login_form_password_hint": "κωδικός πρόσβασης",
|
||||
"login_form_server_empty": "Εισαγάγετε μια διεύθυνση URL διακομιστή",
|
||||
"login_form_server_error": "Δεν ήταν δυνατή η σύνδεση με τον διακομιστή",
|
||||
"login_has_been_disabled": "Η σύνδεση έχει απενεργοποιηθεί",
|
||||
"login_form_server_empty": "Εισαγάγετε μια διεύθυνση URL διακομιστή.",
|
||||
"login_form_server_error": "Δεν ήταν δυνατή η σύνδεση με τον διακομιστή.",
|
||||
"login_has_been_disabled": "Η σύνδεση έχει απενεργοποιηθεί.",
|
||||
"login_password_changed_error": "Παρουσιάστηκε σφάλμα κατά την ενημέρωση του κωδικού πρόσβασής σας",
|
||||
"login_password_changed_success": "Ο κωδικός πρόσβασης ενημερώθηκε με επιτυχία",
|
||||
"logout_all_device_confirmation": "Είστε βέβαιοι ότι θέλετε να αποσυνδεθείτε από όλες τις συσκευές;",
|
||||
@@ -1375,7 +1303,6 @@
|
||||
"map_location_picker_page_use_location": "Χρησιμοποιήστε αυτήν την τοποθεσία",
|
||||
"map_location_service_disabled_content": "Η υπηρεσία τοποθεσίας πρέπει να είναι ενεργοποιημένη για την εμφάνιση στοιχείων από την τρέχουσα τοποθεσία σας. Θέλετε να το ενεργοποιήσετε τώρα;",
|
||||
"map_location_service_disabled_title": "Η υπηρεσία τοποθεσίας απενεργοποιήθηκε",
|
||||
"map_marker_for_image": "Σήμανση στον χάρτη για φωτογραφία που τραβήχτηκε στο {city}, {country}",
|
||||
"map_marker_with_image": "Χάρτης δείκτη με εικόνα",
|
||||
"map_no_location_permission_content": "Απαιτείται άδεια τοποθεσίας για την εμφάνιση στοιχείων από την τρέχουσα τοποθεσία σας. Θέλετε να το επιτρέψετε τώρα;",
|
||||
"map_no_location_permission_title": "Η άδεια τοποθεσίας απορρίφθηκε",
|
||||
@@ -1393,38 +1320,6 @@
|
||||
"marked_all_as_read": "Όλα επισημάνθηκαν ως αναγνωσμένα",
|
||||
"matches": "Αντιστοιχίες",
|
||||
"matching_assets": "Αντιστοιχία στοιχείων",
|
||||
"media_chrome": {
|
||||
"auto": "Αυτόματα",
|
||||
"captions": "Λεζάντες",
|
||||
"captions_off": "Κλειστό",
|
||||
"closed_captions": "υπότιτλοι για κωφούς/βαρήκοους",
|
||||
"decode_error": "Σφάλμα αποκωδικοποίησης",
|
||||
"disable_captions": "Απενεργοποίηση υπότιτλων",
|
||||
"enable_captions": "Ενεργοποίηση υπότιτλων",
|
||||
"enter_fullscreen_mode": "Είσοδος σε πλήρη οθόνη",
|
||||
"exit_fullscreen_mode": "Έξοδος από πλήρη οθόνη",
|
||||
"loop": "Επανάληψη",
|
||||
"media_error_description": "Ένα σφάλμα πολυμέσων προκάλεσε τη διακοπή της αναπαραγωγής. Το αρχείο πολυμέσων μπορεί να είναι κατεστραμμένο ή το πρόγραμμα περιήγησής σας δεν υποστηρίζει αυτήν τη μορφή.",
|
||||
"media_loading": "φόρτωση πολυμέσων",
|
||||
"mute": "Σίγαση",
|
||||
"network_error": "Σφάλμα δικτύου",
|
||||
"network_error_description": "Ένα σφάλμα δικτύου προκάλεσε την αποτυχία λήψης του αρχείου πολυμέσων.",
|
||||
"not_supported_error": "Η Πηγή Δεν Υποστηρίζεται",
|
||||
"playback_rate": "Ταχύτητα αναπαραγωγής",
|
||||
"playback_rate_current": "τρέχουσα ταχύτητα αναπαραγωγής",
|
||||
"playback_rate_value": "Ταχύτητα αναπαραγωγής {playbackRate}",
|
||||
"playback_time": "χρόνος αναπαραγωγής",
|
||||
"quality": "Ποιότητα",
|
||||
"second": "δευτερόλεπτο",
|
||||
"seconds": "δευτερόλεπτα",
|
||||
"time_value_of_total_time": "{currentTime} από {totalTime}",
|
||||
"time_value_remaining": "{time} υπολειπόμενος χρόνος",
|
||||
"unmute": "Ενεργοποίηση ήχου",
|
||||
"unsupported_error_description": "Παρουσιάστηκε ένα μη υποστηριζόμενο σφάλμα. Ο διακομιστής ή το δίκτυο απέτυχαν ή ο περιηγητής σας δεν υποστηρίζει αυτήν τη μορφή.",
|
||||
"video_not_loaded_unknown_time": "το βίντεο δεν φορτώθηκε, άγνωστη διάρκεια.",
|
||||
"video_player": "πρόγραμμα αναπαραγωγής βίντεο",
|
||||
"volume": "ένταση"
|
||||
},
|
||||
"media_type": "Τύπος πολυμέσου",
|
||||
"memories": "Αναμνήσεις",
|
||||
"memories_all_caught_up": "Συγχρονισμένα",
|
||||
@@ -1441,8 +1336,6 @@
|
||||
"merge_people_prompt": "Θέλετε να συγχωνεύσετε αυτά τα άτομα; Αυτή η ενέργεια είναι μη αναστρέψιμη.",
|
||||
"merge_people_successfully": "Τα άτομα συγχωνεύθηκαν με επιτυχία",
|
||||
"merged_people_count": "Έγινε συγχώνευση {count, plural, one {# ατόμου} other {# ατόμων}}",
|
||||
"minFaces": "Ελάχιστος αριθμός προσώπων",
|
||||
"minFaces_description": "Ο ελάχιστος αριθμός αναγνωρισμένων προσώπων για την εμφάνιση ενός ατόμου",
|
||||
"minimize": "Ελαχιστοποίηση",
|
||||
"minute": "Λεπτό",
|
||||
"minutes": "Λεπτά",
|
||||
@@ -1450,10 +1343,8 @@
|
||||
"mobile_app": "Εφαρμογή για κινητά",
|
||||
"mobile_app_download_onboarding_note": "Κατέβασε την συνοδευτική εφαρμογή για κινητά χρησιμοποιώντας τις παρακάτω επιλογές",
|
||||
"model": "Μοντέλο",
|
||||
"modify_date": "Ημερομηνία Τροποποίησης",
|
||||
"month": "Μήνας",
|
||||
"more": "Περισσότερα",
|
||||
"motion": "Κίνηση",
|
||||
"move": "Μετακίνηση",
|
||||
"move_off_locked_folder": "Μετακίνηση έξω από τον κλειδωμένο φάκελο",
|
||||
"move_to": "Μετακίνηση σε",
|
||||
@@ -1480,7 +1371,6 @@
|
||||
"never": "Ποτέ",
|
||||
"new_album": "Νέο Άλμπουμ",
|
||||
"new_api_key": "Νέο API Key",
|
||||
"new_feature": "Νέα λειτουργία",
|
||||
"new_password": "Νέος κωδικός πρόσβασης",
|
||||
"new_person": "Νέο άτομο",
|
||||
"new_pin_code": "Νέος κωδικός PIN",
|
||||
@@ -1518,7 +1408,6 @@
|
||||
"no_results": "Κανένα αποτέλεσμα",
|
||||
"no_results_description": "Δοκιμάστε ένα συνώνυμο ή πιο γενική λέξη-κλειδί",
|
||||
"no_shared_albums_message": "Δημιουργήστε ένα άλμπουμ για να μοιράζεστε φωτογραφίες και βίντεο με άτομα στο δίκτυό σας",
|
||||
"no_steps": "Δεν έχουν προστεθεί ακόμα βήματα",
|
||||
"none": "Κανένα",
|
||||
"not_allowed": "Δεν επιτρέπεται",
|
||||
"not_available": "Μ/Δ (Μη Διαθέσιμο)",
|
||||
@@ -1526,10 +1415,6 @@
|
||||
"not_selected": "Δεν επιλέχθηκε",
|
||||
"notes": "Σημειώσεις",
|
||||
"nothing_here_yet": "Τίποτα εδώ ακόμα",
|
||||
"notification_backup_reliability": "Ενεργοποιήστε τις ειδοποιήσεις για να βελτιώσετε την αξιοπιστία του αντιγράφου ασφαλείας στο παρασκήνιο",
|
||||
"notification_enabled_list_tile_content": "Το Immich χρησιμοποιεί ειδοποιήσεις για την αξιόπιστη λειτουργία των αντιγράφων ασφαλείας στο παρασκήνιο. Μπορείτε να τις διαχειριστείτε από τις ρυθμίσεις της συσκευής σας.",
|
||||
"notification_enabled_list_tile_open_button": "Άνοιγμα ρυθμίσεων",
|
||||
"notification_enabled_list_tile_title": "Ειδοποιήσεις ενεργοποιημένες",
|
||||
"notification_permission_dialog_content": "Για να ενεργοποιήσετε τις ειδοποιήσεις, μεταβείτε στις Ρυθμίσεις και επιλέξτε να επιτρέπεται.",
|
||||
"notification_permission_list_tile_content": "Παραχωρήστε άδεια για ενεργοποίηση ειδοποιήσεων.",
|
||||
"notification_permission_list_tile_enable_button": "Ενεργοποίηση Ειδοποιήσεων",
|
||||
@@ -1541,8 +1426,6 @@
|
||||
"obtainium_configurator": "Ρυθμιστής Obtainium",
|
||||
"obtainium_configurator_instructions": "Χρησιμοποίησε το Obtainium για να εγκαταστήσεις και να ενημερώσεις απευθείας την εφαρμογή Android από τα κυκλοφορίες του Immich στο GitHub. Δημιούργησε ένα API key και επέλεξε μια παραλλαγή για να δημιουργήσεις το σύνδεσμο ρύθμισης του Obtainium",
|
||||
"ocr": "OCR",
|
||||
"ocr_body": "Το Immich διαβάζει πλέον το κείμενο μέσα στις φωτογραφίες σας, ώστε να μπορείτε να τις αναζητάτε με βάση το περιεχόμενό τους.",
|
||||
"ocr_title": "Αναζήτηση κειμένου στις φωτογραφίες σας",
|
||||
"official_immich_resources": "Επίσημοι Πόροι του Immich",
|
||||
"offline": "Εκτός σύνδεσης",
|
||||
"offset": "Μετατόπιση",
|
||||
@@ -1561,8 +1444,6 @@
|
||||
"open": "Άνοιγμα",
|
||||
"open_calendar": "Άνοιγμα ημερολογίου",
|
||||
"open_in_browser": "Άνοιγμα στο πρόγραμμα περιήγησης",
|
||||
"open_in_immich_body": "Ορίστε το Immich ως εφαρμογή συλλογής στο Android, ώστε να ανοίγετε φωτογραφίες απευθείας από άλλες εφαρμογές.",
|
||||
"open_in_immich_title": "Άνοιγμα φωτογραφιών στο Immich",
|
||||
"open_in_map_view": "Άνοιγμα σε προβολή χάρτη",
|
||||
"open_in_openstreetmap": "Άνοιγμα στο OpenStreetMap",
|
||||
"open_the_search_filters": "Ανοίξτε τα φίλτρα αναζήτησης",
|
||||
@@ -1571,7 +1452,6 @@
|
||||
"organize_into_albums": "Οργάνωση σε άλμπουμ",
|
||||
"organize_into_albums_description": "Τοποθετείστε τις υπάρχουσες φωτογραφίες σε άλμπουμ χρησιμοποιώντας τις τρέχουσες ρυθμίσεις συγχρονισμού",
|
||||
"organize_your_library": "Οργανώστε τη βιβλιοθήκη σας",
|
||||
"orientation": "Προσανατολισμός",
|
||||
"original": "πρωτότυπο",
|
||||
"other": "Άλλες",
|
||||
"other_devices": "Άλλες συσκευές",
|
||||
@@ -1620,7 +1500,7 @@
|
||||
"person": "Άτομο",
|
||||
"person_age_months": "{months, plural, one {# μήνας} other {# μήνες}} παλιά",
|
||||
"person_age_year_months": "1 χρόνος, {months, plural, one {# μήνας} other {# μήνες}} παλιά",
|
||||
"person_age_years": "{years, plural, one {# έτους} other {# ετών}}",
|
||||
"person_age_years": "{years, plural, other {# χρόνια}} παλιά",
|
||||
"person_birthdate": "Γεννηθείς στις {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (κρυφό)} other {}}",
|
||||
"person_recognized": "Άτομο αναγνωρίστηκε",
|
||||
@@ -1646,8 +1526,6 @@
|
||||
"play_original_video_setting_description": "Προτίμησε την αναπαραγωγή των αρχικών βίντεο αντί των μετακωδικοποιημένων. Αν το αρχικό αρχείο δεν είναι συμβατό, ίσως να μην αναπαραχθεί σωστά.",
|
||||
"play_transcoded_video": "Αναπαραγωγή μετακωδικοποιημένου βίντεο",
|
||||
"please_auth_to_access": "Παρακαλώ πιστοποιηθείτε για να αποκτήσετε πρόσβαση",
|
||||
"plugin_method_filter_type": "Φίλτρο",
|
||||
"plugin_method_filter_type_description": "Αυτή η μέθοδος μπορεί να φιλτράρει συμβάντα και, ανάλογα με τις συνθήκες, να εμποδίζει την εκτέλεση των επόμενων βημάτων",
|
||||
"port": "Θύρα",
|
||||
"preferences_settings_subtitle": "Διαχειριστείτε τις προτιμήσεις της εφαρμογής",
|
||||
"preferences_settings_title": "Προτιμήσεις",
|
||||
@@ -1668,7 +1546,6 @@
|
||||
"profile_drawer_readonly_mode": "Η λειτουργία μόνο-για-ανάγνωση ενεργοποιήθηκε. Κρατήστε πατημένο το εικονίδιο του χρήστη για απενεργοποίηση.",
|
||||
"profile_image_of_user": "Εικόνα προφίλ του χρήστη {user}",
|
||||
"profile_picture_set": "Ορισμός εικόνας προφίλ.",
|
||||
"projection_type": "Τύπος Προβολής",
|
||||
"public_album": "Δημόσιο άλμπουμ",
|
||||
"public_share": "Δημόσια Κοινή Χρήση",
|
||||
"purchase_account_info": "Υποστηρικτής",
|
||||
@@ -1721,10 +1598,7 @@
|
||||
"recent": "Πρόσφατα",
|
||||
"recent_searches": "Πρόσφατες αναζητήσεις",
|
||||
"recently_added": "Προστέθηκαν πρόσφατα",
|
||||
"recently_added_body": "Μεταβείτε απευθείας σε όλα όσα έχετε προσθέσει πρόσφατα, σε μια αποκλειστική σελίδα.",
|
||||
"recently_added_description": "Περιηγηθείτε στα αρχεία σας, ταξινομημένα κατά ημερομηνία μεταφόρτωσής τους στο Immich",
|
||||
"recently_added_page_title": "Προστέθηκαν Πρόσφατα",
|
||||
"recently_added_title": "Προστέθηκαν πρόσφατα",
|
||||
"recently_taken": "Λήφθηκαν πρόσφατα",
|
||||
"refresh": "Ανανέωση",
|
||||
"refresh_encoded_videos": "Ανανέωση κωδικοποιημένων βίντεο",
|
||||
@@ -1744,7 +1618,6 @@
|
||||
"remove_assets_shared_link_confirmation": "Είστε σίγουροι ότι θέλετε να αφαιρέσετε {count, plural, one {# στοιχείο} other {# στοιχεία}} από αυτόν τον κοινόχρηστο σύνδεσμο;",
|
||||
"remove_assets_title": "Αφαίρεση στοιχείων;",
|
||||
"remove_custom_date_range": "Αφαίρεση προσαρμοσμένης χρονικής περιόδου",
|
||||
"remove_filter": "Αφαίρεση φίλτρου",
|
||||
"remove_from_album": "Αφαίρεση από το άλμπουμ",
|
||||
"remove_from_album_action_prompt": "{count} αφαιρέθηκαν από το άλμπουμ",
|
||||
"remove_from_favorites": "Αφαίρεση από τα αγαπημένα",
|
||||
@@ -1816,8 +1689,6 @@
|
||||
"search_by_description_example": "Ημερήσια πεζοπορία στο Πάπιγκο",
|
||||
"search_by_filename": "Αναζήτηση βάσει ονόματος αρχείου ή επέκτασης αρχείου",
|
||||
"search_by_filename_example": "π.χ. IMG_1234.JPG ή PNG",
|
||||
"search_by_full_path": "Αναζήτηση με βάση την πλήρη διαδρομή ή το φάκελο",
|
||||
"search_by_full_path_example": "/Γιάννης/Projects/3D_Printing/2026-07-01 — μπορείτε να κάνετε αναζήτηση για όρους όπως Projects, 3D, Printing, 2026 κ.λπ.",
|
||||
"search_by_ocr": "Αναζήτηση κατά OCR",
|
||||
"search_by_ocr_example": "Λάτε",
|
||||
"search_camera_lens_model": "Αναζήτηση μοντέλου φακού...",
|
||||
@@ -1861,7 +1732,7 @@
|
||||
"searching_locales": "Αναζήτηση τοποθεσιών...",
|
||||
"second": "Δευτερόλεπτο",
|
||||
"see_all_people": "Προβολή όλων των ατόμων",
|
||||
"select": "Επιλέξτε",
|
||||
"select": "Επιλογή",
|
||||
"select_album": "Επιλογή άλμπουμ",
|
||||
"select_album_cover": "Επιλέξτε εξώφυλλο άλμπουμ",
|
||||
"select_albums": "Επιλογή πολλών άλμπουμ",
|
||||
@@ -1879,7 +1750,6 @@
|
||||
"select_person": "Επίλεξε άτομο",
|
||||
"select_person_to_tag": "Επιλέξτε ένα άτομο για επισήμανση",
|
||||
"select_photos": "Επιλέξτε φωτογραφίες",
|
||||
"select_quality": "Επιλέξτε ποιότητα",
|
||||
"select_trash_all": "Επιλέξτε διαγραφή όλων",
|
||||
"selected": "Επιλεγμένοι",
|
||||
"selected_count": "{count, plural, other {# επιλεγμένοι}}",
|
||||
@@ -1929,10 +1799,6 @@
|
||||
"share": "Κοινοποίηση",
|
||||
"share_dialog_preparing": "Προετοιμασία...",
|
||||
"share_link": "Σύνδεσμος κοινοποίησης",
|
||||
"share_original": "Χρήση αρχικού (μεγάλο μέγεθος)",
|
||||
"share_preview": "Χρήση μικρογραφίας (μικρό μέγεθος)",
|
||||
"share_quality_body": "Κρατήστε πατημένο το κουμπί κοινοποίησης για να επιλέξετε την ποιότητα της εικόνας πριν την κοινοποιήσετε.",
|
||||
"share_quality_title": "Επιλέξτε την ποιότητα κοινοποίησης",
|
||||
"shared": "Σε κοινή χρήση",
|
||||
"shared_album_activities_input_disable": "Το σχόλιο είναι απενεργοποιημένο",
|
||||
"shared_album_activity_remove_content": "Θέλετε να διαγράψετε αυτήν τη δραστηριότητα;",
|
||||
@@ -1947,9 +1813,7 @@
|
||||
"shared_link_app_bar_title": "Κοινόχρηστοι Σύνδεσμοι",
|
||||
"shared_link_clipboard_copied_massage": "Αντιγράφηκε στο πρόχειρο",
|
||||
"shared_link_create_error": "Σφάλμα κατά τη δημιουργία κοινόχρηστου συνδέσμου",
|
||||
"shared_link_custom_url_description": "Αποκτήστε πρόσβαση σε αυτόν τον κοινόχρηστο σύνδεσμο με ένα προσαρμοσμένο URL",
|
||||
"shared_link_custom_url_title": "Προσαρμοσμένο URL",
|
||||
"shared_link_custom_url_warning": "Προειδοποίηση: η χρήση κάθετου χαρακτήρα (/) σε προσαρμοσμένο όνομα URL ενδέχεται να προκαλέσει απρόβλεπτη συμπεριφορά.",
|
||||
"shared_link_custom_url_description": "Αποκτήστε πρόσβαση σε αυτόν τον κοινόχρηστο σύνδεσμο με μια προσαρμοσμένη διεύθυνση URL",
|
||||
"shared_link_edit_description_hint": "Εισαγάγετε την περιγραφή της κοινής χρήσης",
|
||||
"shared_link_edit_expire_after_option_day": "1 ημέρα",
|
||||
"shared_link_edit_expire_after_option_days": "{count} ημέρες",
|
||||
@@ -1994,9 +1858,7 @@
|
||||
"show_in_timeline": "Εμφάνιση στο χρονολόγιο",
|
||||
"show_in_timeline_setting_description": "Εμφάνιση φωτογραφιών και βίντεο από αυτόν τον χρήστη στο χρονολόγιό σας",
|
||||
"show_keyboard_shortcuts": "Εμφάνιση συντομεύσεων πληκτρολογίου",
|
||||
"show_less": "Προβολή λιγότερων",
|
||||
"show_metadata": "Εμφάνιση μεταδεδομένων",
|
||||
"show_more_fields": "{count, plural, one {Εμφάνιση # επιπλέον πεδίου} other {Εμφάνιση # επιπλέον πεδίων}}",
|
||||
"show_or_hide_info": "Εμφάνιση ή απόκρυψη πληροφοριών",
|
||||
"show_password": "Εμφάνιση κωδικού",
|
||||
"show_person_options": "Εμφάνιση επιλογών ατόμου",
|
||||
@@ -2004,7 +1866,6 @@
|
||||
"show_schema": "Εμφάνιση σχήματος",
|
||||
"show_search_options": "Εμφάνιση επιλογών αναζήτησης",
|
||||
"show_shared_links": "Εμφάνιση κοινών συνδέσμων",
|
||||
"show_slideshow_metadata_overlay": "Εμφάνιση επικάλυψης πληροφοριών εικόνας",
|
||||
"show_slideshow_transition": "Εμφάνιση μετάβασης παρουσίασης",
|
||||
"show_supporter_badge": "Σήμα υποστηρικτή",
|
||||
"show_supporter_badge_description": "Εμφάνιση σήματος υποστηρικτή",
|
||||
@@ -2016,21 +1877,13 @@
|
||||
"sign_out": "Αποσύνδεση",
|
||||
"sign_up": "Εγγραφή",
|
||||
"size": "Μέγεθος",
|
||||
"skip": "Παράλειψη",
|
||||
"skip_to_content": "Μετάβαση στο περιεχόμενο",
|
||||
"skip_to_folders": "Παράκαμψη στους φακέλους",
|
||||
"skip_to_tags": "Παράκαμψη στις ετικέτες",
|
||||
"slideshow": "Παρουσίαση",
|
||||
"slideshow_body": "Καθίστε αναπαυτικά και απολαύστε τις φωτογραφίες σας να προβάλλονται σε μια παρουσίαση πλήρους οθόνης.",
|
||||
"slideshow_metadata_overlay_mode": "Περιεχόμενο επικάλυψης",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Μόνο περιγραφή",
|
||||
"slideshow_metadata_overlay_mode_full": "Πλήρης",
|
||||
"slideshow_repeat": "Επανάληψη παρουσίασης",
|
||||
"slideshow_repeat_description": "Εκκίνηση από την αρχή όταν τελειώσει η παρουσίαση",
|
||||
"slideshow_settings": "Ρυθμίσεις παρουσίασης",
|
||||
"slideshow_title": "Παρουσίαση φωτογραφιών",
|
||||
"smart_album": "Έξυπνο άλμπουμ",
|
||||
"some_assets_already_have_a_location_warning": "Ορισμένα από τα επιλεγμένα στοιχεία έχουν ήδη δεδομένα τοποθεσίας",
|
||||
"sort_albums_by": "Ταξινόμηση άλμπουμ κατά...",
|
||||
"sort_created": "Ημερομηνία Δημιουργίας",
|
||||
"sort_items": "Αριθμός αντικειμένων",
|
||||
@@ -2051,10 +1904,6 @@
|
||||
"start_date_before_end_date": "Η ημερομηνία έναρξης πρέπει να είναι πριν από την ημερομηνία λήξης",
|
||||
"state": "Νομός",
|
||||
"status": "Κατάσταση",
|
||||
"step_delete": "Διαγραφή βήματος",
|
||||
"step_delete_confirm": "Θέλετε σίγουρα να διαγράψετε αυτό το βήμα;",
|
||||
"step_details": "Λεπτομέρειες βήματος",
|
||||
"steps": "Βήματα",
|
||||
"stop_casting": "Διακοπή μετάδοσης",
|
||||
"stop_motion_photo": "Διέκοψε την Φωτογραφία Κίνησης",
|
||||
"stop_photo_sharing": "Διακοπή κοινής χρήσης των φωτογραφιών σας;",
|
||||
@@ -2135,12 +1984,10 @@
|
||||
"trash_page_info": "Τα στοιχεία που έχουν απορριφθεί θα διαγραφούν οριστικά μετά από {days} ημέρες",
|
||||
"trashed_items_will_be_permanently_deleted_after": "Τα στοιχεία που βρίσκονται στον κάδο απορριμμάτων θα διαγραφούν οριστικά μετά από {days, plural, one {# ημέρα} other {# ημέρες}}.",
|
||||
"trigger": "Ενεργοποιητής",
|
||||
"trigger_asset_metadata_extraction": "Εξαγωγή μεταδεδομένων στοιχείων",
|
||||
"trigger_asset_metadata_extraction_description": "Ενεργοποιείται αυτόματα όταν εξάγονται τα μεταδεδομένα EXIF ενός αρχείου",
|
||||
"trigger_asset_uploaded": "Μεταφόρτωση Στοιχείου",
|
||||
"trigger_asset_uploaded": "Το στοιχείο ανέβηκε",
|
||||
"trigger_asset_uploaded_description": "Ενεργοποιείται όταν ανεβαίνει ένα νέο στοιχείο",
|
||||
"trigger_person_recognized": "Άτομο Αναγνωρίστηκε",
|
||||
"trigger_person_recognized_description": "Ενεργοποιείται αυτόματα όταν ανιχνεύεται ένα άτομο",
|
||||
"trigger_person_recognized_description": "Ενεργοποιείται όταν ανιχνεύεται άτομο",
|
||||
"troubleshoot": "Επίλυση προβλημάτων",
|
||||
"type": "Τύπος",
|
||||
"unable_to_change_pin_code": "Αδυναμία αλλαγής κωδικού PIN",
|
||||
@@ -2156,7 +2003,6 @@
|
||||
"unknown": "Άγνωστο",
|
||||
"unknown_country": "Άγνωστη Χώρα",
|
||||
"unknown_date": "Άγνωστη ημερομηνία",
|
||||
"unknown_schema": "Άγνωστη δομή",
|
||||
"unknown_year": "Άγνωστο Έτος",
|
||||
"unlimited": "Απεριόριστο",
|
||||
"unlink_motion_video": "Αποσυνδέστε το βίντεο κίνησης",
|
||||
@@ -2181,7 +2027,6 @@
|
||||
"updated_password": "Ο κωδικός πρόσβασης ενημερώθηκε",
|
||||
"upload": "Μεταφόρτωση",
|
||||
"upload_concurrency": "Ταυτόχρονη μεταφόρτωση",
|
||||
"upload_day_count": "{date}: {count, plural, one {# μεταφόρτωση} other {# μεταφορτώσεις}}",
|
||||
"upload_details": "Λεπτομέρειες μεταφόρτωσης",
|
||||
"upload_error_with_count": "Σφάλμα μεταφόρτωσης για {count, plural, one {# αρχείο} other {# αρχεία}}",
|
||||
"upload_errors": "Η μεταφόρτωση ολοκληρώθηκε με {count, plural, one {# σφάλμα} other {# σφάλματα}}, ανανεώστε τη σελίδα για να δείτε νέα στοιχεία μεταφόρτωσης.",
|
||||
@@ -2192,13 +2037,9 @@
|
||||
"upload_status_errors": "Σφάλματα",
|
||||
"upload_status_uploaded": "Μεταφορτώθηκαν",
|
||||
"upload_success": "Η μεταφόρτωση ολοκληρώθηκε, ανανεώστε τη σελίδα για να δείτε τα νέα αντικείμενα.",
|
||||
"upload_to_album_body": "Για χρήστες που δεν χρησιμοποιούν τη χειροκίνητη μεταφόρτωση, μπορείτε πλέον να προσθέτετε απευθείας τοπικές φωτογραφίες σε ένα άλμπουμ κατά τη μεταφόρτωσή τους. Δεν χρειάζεται πια να τις ανεβάζετε πρώτα και να τις προσθέτετε σε άλμπουμ αργότερα.",
|
||||
"upload_to_album_title": "Μεταφόρτωση απευθείας σε άλμπουμ",
|
||||
"upload_to_immich": "Μεταφόρτωση στο Immich ({count})",
|
||||
"uploading": "Μεταφορτώνεται",
|
||||
"uploading_media": "Μεταφόρτωση πολυμέσων",
|
||||
"uploads": "Μεταφορτώσεις",
|
||||
"uploads_count": "{count, plural, one {# μεταφόρτωση} other {# μεταφορτώσεις}}",
|
||||
"url": "URL",
|
||||
"usage": "Χρήση",
|
||||
"use_biometric": "Χρήση βιομετρικών στοιχείων",
|
||||
@@ -2206,7 +2047,6 @@
|
||||
"use_browser_locale_description": "Μορφοποιήστε τις ημερομηνίες, τους χρόνους και τους αριθμούς σύμφωνα με τη γλώσσα του προγράμματος περιήγησής σας",
|
||||
"use_current_connection": "Χρήση τρέχουσας σύνδεσης",
|
||||
"use_custom_date_range": "Χρήση προσαρμοσμένου εύρους ημερομηνιών",
|
||||
"use_template": "Χρήση πρότυπου",
|
||||
"user": "Χρήστης",
|
||||
"user_has_been_deleted": "Αυτός ο χρήστης έχει διεγραφεί.",
|
||||
"user_id": "ID Χρήστη",
|
||||
@@ -2234,7 +2074,6 @@
|
||||
"video": "Βίντεο",
|
||||
"video_hover_setting": "Προεπισκόπηση βίντεο με το δείκτη του ποντικιού",
|
||||
"video_hover_setting_description": "Προεπισκόπηση βίντεο όταν το ποντίκι βρίσκεται πάνω από το στοιχείο. Ακόμη και όταν είναι απενεργοποιημένη, η αναπαραγωγή μπορεί να ξεκινήσει τοποθετώντας το δείκτη του ποντικιού πάνω από το εικονίδιο αναπαραγωγής.",
|
||||
"video_quality": "Ποιότητα βίντεο",
|
||||
"videos": "Βίντεο",
|
||||
"videos_count": "{count, plural, one {# Βίντεο} other {# Βίντεο}}",
|
||||
"view": "Προβολή",
|
||||
@@ -2261,14 +2100,9 @@
|
||||
"week": "Εβδομάδα",
|
||||
"welcome": "Καλωσορίσατε",
|
||||
"welcome_to_immich": "Καλωσορίσατε στο Ιmmich",
|
||||
"whats_new": "Τι νέο υπάρχει",
|
||||
"whats_new_settings_subtitle": "Δείτε τι νέο υπάρχει στο Immich",
|
||||
"whats_new_version": "Έκδοση {version}",
|
||||
"when": "Πότε",
|
||||
"width": "Πλάτος",
|
||||
"wifi_name": "Όνομα Wi-Fi",
|
||||
"workflow": "Ροή εργασίας",
|
||||
"workflow_delete_prompt": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτήω τη ροή εργασίας;",
|
||||
"workflow_delete_prompt": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή τη ροή εργασίας;",
|
||||
"workflow_deleted": "Η ροή εργασίας διαγράφηκε",
|
||||
"workflow_description": "Περιγραφή ροής εργασίας",
|
||||
"workflow_info": "Πληροφορίες ροής εργασίας",
|
||||
@@ -2277,12 +2111,10 @@
|
||||
"workflow_name": "Όνομα ροής εργασίας",
|
||||
"workflow_navigation_prompt": "Είστε σίγουροι ότι θέλετε να φύγετε χωρίς να αποθηκεύσετε τις αλλαγές σας;",
|
||||
"workflow_summary": "Σύνοψη ροής εργασίας",
|
||||
"workflow_templates": "Πρότυπα ροών εργασίας",
|
||||
"workflow_update_success": "Η ροή εργασίας ενημερώθηκε με επιτυχία",
|
||||
"workflows": "Ροές εργασίας",
|
||||
"workflows_help_text": "Οι ροές εργασίας αυτοματοποιούν ενέργειες στα στοιχεία σας με βάση ενεργοποιητές και φίλτρα",
|
||||
"wrong_pin_code": "Λάθος κωδικός PIN",
|
||||
"x_of_total": "{x}/{total}",
|
||||
"year": "Έτος",
|
||||
"years_ago": "πριν από {years, plural, one {# χρόνο} other {# χρόνια}}",
|
||||
"yes": "Ναι",
|
||||
|
||||
47
i18n/en.json
47
i18n/en.json
@@ -108,21 +108,6 @@
|
||||
"image_thumbnail_quality_description": "Thumbnail quality from 1-100. Higher is better, but produces larger files and can reduce app responsiveness.",
|
||||
"image_thumbnail_title": "Thumbnail Settings",
|
||||
"import_config_from_json_description": "Import system config by uploading a JSON config file",
|
||||
"integrity_checks_checksum_files": "Checksum files",
|
||||
"integrity_checks_checksum_files_description": "Configure the checksum check",
|
||||
"integrity_checks_checksum_files_enable_description": "Enable the checksum check",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Percentage limit",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Configure the maximum percentage between 0.01 and 1 for how much the checksum check should run each interval.",
|
||||
"integrity_checks_checksum_files_time_limit": "Time limit",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Configure the maximum duration for which the checksum check should run each interval. (ms)",
|
||||
"integrity_checks_missing_files": "Missing files",
|
||||
"integrity_checks_missing_files_description": "Configure the frequency and enable or disable the missing files check",
|
||||
"integrity_checks_missing_files_enable_description": "Enable the missing files check",
|
||||
"integrity_checks_settings": "Integrity checks",
|
||||
"integrity_checks_settings_description": "Manage integrity checks intervals",
|
||||
"integrity_checks_untracked_files": "Untracked files",
|
||||
"integrity_checks_untracked_files_description": "Configure the frequency and enable or disable the untracked files check",
|
||||
"integrity_checks_untracked_files_enable_description": "Enable the untracked files check",
|
||||
"job_concurrency": "{job} concurrency",
|
||||
"job_created": "Job created",
|
||||
"job_not_concurrency_safe": "This job is not concurrency-safe.",
|
||||
@@ -431,10 +416,6 @@
|
||||
"transcoding_realtime_description": "Allows transcoding to be performed in real-time as the video is being streamed. Enables quality switching, but may cause higher playback latency and stuttering depending on server capabilities.",
|
||||
"transcoding_realtime_enabled": "Enable real-time transcoding",
|
||||
"transcoding_realtime_enabled_description": "If disabled, the server will refuse to start new real-time transcoding sessions.",
|
||||
"transcoding_realtime_resolutions": "Resolutions",
|
||||
"transcoding_realtime_resolutions_description": "The resolutions offered for real-time transcoding. Higher resolutions may cause playback issues if the server cannot transcode them quickly enough.",
|
||||
"transcoding_realtime_video_codecs": "Video codecs",
|
||||
"transcoding_realtime_video_codecs_description": "The video codecs offered for real-time transcoding. Clients will choose the best option they support during playback. AV1 is more efficient than HEVC, which is more efficient than H.264. When using hardware acceleration, only select the codecs the accelerator can encode. When using software transcoding, note that H.264 is faster than AV1, which is faster than HEVC.",
|
||||
"transcoding_reference_frames": "Reference frames",
|
||||
"transcoding_reference_frames_description": "The number of frames to reference when compressing a given frame. Higher values improve compression efficiency, but slow down encoding. 0 sets this value automatically.",
|
||||
"transcoding_required_description": "Only videos not in an accepted format",
|
||||
@@ -597,7 +578,6 @@
|
||||
"asset_viewer_settings_title": "Asset Viewer",
|
||||
"assets": "Assets",
|
||||
"assets_added_to_album_count": "Added {count, plural, one {# asset} other {# assets}} to the album",
|
||||
"assets_added_to_album_partial_count": "Added {successCount} out of {totalCount} {totalCount, plural, one {asset} other {assets}} to the album",
|
||||
"assets_added_to_albums_count": "Added {assetTotal, plural, one {# asset} other {# assets}} to {albumTotal, plural, one {# album} other {# albums}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Asset} other {Assets}} cannot be added to the album",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Asset} other {Assets}} cannot be added to any of the albums",
|
||||
@@ -814,6 +794,7 @@
|
||||
"custom_date": "Custom date",
|
||||
"custom_locale": "Custom locale",
|
||||
"custom_locale_description": "Format dates, times, and numbers based on the selected language and region",
|
||||
"custom_url": "Custom URL",
|
||||
"cutoff_date_description": "Keep photos from the last…",
|
||||
"cutoff_day": "{count, plural, one {day} other {days}}",
|
||||
"cutoff_year": "{count, plural, one {year} other {years}}",
|
||||
@@ -1480,7 +1461,6 @@
|
||||
"never": "Never",
|
||||
"new_album": "New Album",
|
||||
"new_api_key": "New API Key",
|
||||
"new_feature": "New Feature",
|
||||
"new_password": "New password",
|
||||
"new_person": "New person",
|
||||
"new_pin_code": "New PIN code",
|
||||
@@ -1524,7 +1504,6 @@
|
||||
"not_available": "N/A",
|
||||
"not_in_any_album": "Not in any album",
|
||||
"not_selected": "Not selected",
|
||||
"not_set": "Not set",
|
||||
"notes": "Notes",
|
||||
"nothing_here_yet": "Nothing here yet",
|
||||
"notification_backup_reliability": "Enable notifications to improve background backup reliability",
|
||||
@@ -1542,8 +1521,6 @@
|
||||
"obtainium_configurator": "Obtainium Configurator",
|
||||
"obtainium_configurator_instructions": "Use Obtainium to install and update the Android app directly from Immich GitHub's release. Create an API key and select a variant to create your Obtainium configuration link",
|
||||
"ocr": "OCR",
|
||||
"ocr_body": "Immich now reads the text inside your photos, so you can search for them by what they say.",
|
||||
"ocr_title": "Search text in your photos",
|
||||
"official_immich_resources": "Official Immich Resources",
|
||||
"offline": "Offline",
|
||||
"offset": "Offset",
|
||||
@@ -1562,8 +1539,6 @@
|
||||
"open": "Open",
|
||||
"open_calendar": "Open calendar",
|
||||
"open_in_browser": "Open in browser",
|
||||
"open_in_immich_body": "Set Immich as your gallery on Android to open photos straight from other apps.",
|
||||
"open_in_immich_title": "Open photos in Immich",
|
||||
"open_in_map_view": "Open in map view",
|
||||
"open_in_openstreetmap": "Open in OpenStreetMap",
|
||||
"open_the_search_filters": "Open the search filters",
|
||||
@@ -1621,7 +1596,7 @@
|
||||
"person": "Person",
|
||||
"person_age_months": "{months, plural, one {# month} other {# months}} old",
|
||||
"person_age_year_months": "1 year, {months, plural, one {# month} other {# months}} old",
|
||||
"person_age_years": "{years, plural, one {# year} other {# years}} old",
|
||||
"person_age_years": "{years, plural, other {# years}} old",
|
||||
"person_birthdate": "Born on {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (hidden)} other {}}",
|
||||
"person_recognized": "Person recognized",
|
||||
@@ -1722,10 +1697,7 @@
|
||||
"recent": "Recent",
|
||||
"recent_searches": "Recent searches",
|
||||
"recently_added": "Recently added",
|
||||
"recently_added_body": "Jump straight to everything you've added lately on a dedicated page.",
|
||||
"recently_added_description": "Browse your assets sorted by when they were uploaded to Immich",
|
||||
"recently_added_page_title": "Recently Added",
|
||||
"recently_added_title": "Recently added",
|
||||
"recently_taken": "Recently taken",
|
||||
"refresh": "Refresh",
|
||||
"refresh_encoded_videos": "Refresh encoded videos",
|
||||
@@ -1932,8 +1904,6 @@
|
||||
"share_link": "Share Link",
|
||||
"share_original": "Use original (large)",
|
||||
"share_preview": "Use thumbnail (small)",
|
||||
"share_quality_body": "Press and hold the share button to choose the image quality before you share.",
|
||||
"share_quality_title": "Choose your share quality",
|
||||
"shared": "Shared",
|
||||
"shared_album_activities_input_disable": "Comment is disabled",
|
||||
"shared_album_activity_remove_content": "Do you want to delete this activity?",
|
||||
@@ -1948,9 +1918,7 @@
|
||||
"shared_link_app_bar_title": "Shared Links",
|
||||
"shared_link_clipboard_copied_massage": "Copied to clipboard",
|
||||
"shared_link_create_error": "Error while creating shared link",
|
||||
"shared_link_custom_url_description": "Access this shared link with a custom URL name",
|
||||
"shared_link_custom_url_title": "Custom URL",
|
||||
"shared_link_custom_url_warning": "Warning: a custom URL name with a forward slash may not behave as you expect.",
|
||||
"shared_link_custom_url_description": "Access this shared link with a custom URL",
|
||||
"shared_link_edit_description_hint": "Enter the share description",
|
||||
"shared_link_edit_expire_after_option_day": "1 day",
|
||||
"shared_link_edit_expire_after_option_days": "{count} days",
|
||||
@@ -2017,19 +1985,16 @@
|
||||
"sign_out": "Sign Out",
|
||||
"sign_up": "Sign up",
|
||||
"size": "Size",
|
||||
"skip": "Skip",
|
||||
"skip_to_content": "Skip to content",
|
||||
"skip_to_folders": "Skip to folders",
|
||||
"skip_to_tags": "Skip to tags",
|
||||
"slideshow": "Slideshow",
|
||||
"slideshow_body": "Sit back and watch your photos play in a full-screen slideshow.",
|
||||
"slideshow_metadata_overlay_mode": "Overlay content",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Description only",
|
||||
"slideshow_metadata_overlay_mode_full": "Full",
|
||||
"slideshow_repeat": "Repeat slideshow",
|
||||
"slideshow_repeat_description": "Loop back to beginning when slideshow ends",
|
||||
"slideshow_settings": "Slideshow settings",
|
||||
"slideshow_title": "Slideshow",
|
||||
"smart_album": "Smart album",
|
||||
"some_assets_already_have_a_location_warning": "Some of the selected assets already have a location",
|
||||
"sort_albums_by": "Sort albums by...",
|
||||
@@ -2157,7 +2122,6 @@
|
||||
"unknown": "Unknown",
|
||||
"unknown_country": "Unknown Country",
|
||||
"unknown_date": "Unknown date",
|
||||
"unknown_schema": "Unknown schema",
|
||||
"unknown_year": "Unknown Year",
|
||||
"unlimited": "Unlimited",
|
||||
"unlink_motion_video": "Unlink motion video",
|
||||
@@ -2193,8 +2157,6 @@
|
||||
"upload_status_errors": "Errors",
|
||||
"upload_status_uploaded": "Uploaded",
|
||||
"upload_success": "Upload success, refresh the page to see new upload assets.",
|
||||
"upload_to_album_body": "For users that don't utilize the manual upload feature, you can now choose to add local photos directly into an album as you upload them, no need to upload then add to an album later anymore.",
|
||||
"upload_to_album_title": "Upload straight to an album",
|
||||
"upload_to_immich": "Upload to Immich ({count})",
|
||||
"uploading": "Uploading",
|
||||
"uploading_media": "Uploading media",
|
||||
@@ -2262,9 +2224,6 @@
|
||||
"week": "Week",
|
||||
"welcome": "Welcome",
|
||||
"welcome_to_immich": "Welcome to Immich",
|
||||
"whats_new": "What's new",
|
||||
"whats_new_settings_subtitle": "See what's new in Immich",
|
||||
"whats_new_version": "Version {version}",
|
||||
"when": "When",
|
||||
"width": "Width",
|
||||
"wifi_name": "Wi-Fi Name",
|
||||
|
||||
@@ -108,21 +108,6 @@
|
||||
"image_thumbnail_quality_description": "Thumbnail quality from 1-100. Higher is better, but produces larger files and can reduce app responsiveness.",
|
||||
"image_thumbnail_title": "Thumbnail Settings",
|
||||
"import_config_from_json_description": "Import system config by uploading a JSON config file",
|
||||
"integrity_checks_checksum_files": "Checksum files",
|
||||
"integrity_checks_checksum_files_description": "Configure the checksum check",
|
||||
"integrity_checks_checksum_files_enable_description": "Enable the checksum check",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Percentage limit",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Configure the maximum percentage between 0.01 and 1 for how much the checksum check should run each interval.",
|
||||
"integrity_checks_checksum_files_time_limit": "Time limit",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Configure the maximum duration for which the checksum check should run each interval. (ms)",
|
||||
"integrity_checks_missing_files": "Missing files",
|
||||
"integrity_checks_missing_files_description": "Configure the frequency and enable or disable the missing files check",
|
||||
"integrity_checks_missing_files_enable_description": "Enable the missing files check",
|
||||
"integrity_checks_settings": "Integrity checks",
|
||||
"integrity_checks_settings_description": "Manage integrity checks intervals",
|
||||
"integrity_checks_untracked_files": "Untracked files",
|
||||
"integrity_checks_untracked_files_description": "Configure the frequency and enable or disable the untracked files check",
|
||||
"integrity_checks_untracked_files_enable_description": "Enable the untracked files check",
|
||||
"job_concurrency": "{job} concurrency",
|
||||
"job_created": "Job created",
|
||||
"job_not_concurrency_safe": "This job is not concurrency-safe.",
|
||||
@@ -431,10 +416,6 @@
|
||||
"transcoding_realtime_description": "Allows transcoding to be performed in real-time as the video is being streamed. Enables quality switching, but may cause higher playback latency and stuttering depending on server capabilities.",
|
||||
"transcoding_realtime_enabled": "Enable real-time transcoding",
|
||||
"transcoding_realtime_enabled_description": "If disabled, the server will refuse to start new real-time transcoding sessions.",
|
||||
"transcoding_realtime_resolutions": "Resolutions",
|
||||
"transcoding_realtime_resolutions_description": "The resolutions offered for real-time transcoding. Higher resolutions may cause playback issues if the server cannot transcode them quickly enough.",
|
||||
"transcoding_realtime_video_codecs": "Video codecs",
|
||||
"transcoding_realtime_video_codecs_description": "The video codecs offered for real-time transcoding. Clients will choose the best option they support during playback. AV1 is more efficient than HEVC, which is more efficient than H.264. When using hardware acceleration, only select the codecs the accelerator can encode. When using software transcoding, note that H.264 is faster than AV1, which is faster than HEVC.",
|
||||
"transcoding_reference_frames": "Reference frames",
|
||||
"transcoding_reference_frames_description": "The number of frames to reference when compressing a given frame. Higher values improve compression efficiency, but slow down encoding. 0 sets this value automatically.",
|
||||
"transcoding_required_description": "Only videos not in an accepted format",
|
||||
@@ -597,7 +578,6 @@
|
||||
"asset_viewer_settings_title": "Asset Viewer",
|
||||
"assets": "Assets",
|
||||
"assets_added_to_album_count": "Added {count, plural, one {# asset} other {# assets}} to the album",
|
||||
"assets_added_to_album_partial_count": "Added {successCount} out of {totalCount} {totalCount, plural, one {asset} other {assets}} to the album",
|
||||
"assets_added_to_albums_count": "Added {assetTotal, plural, one {# asset} other {# assets}} to {albumTotal, plural, one {# album} other {# albums}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Asset} other {Assets}} cannot be added to the album",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Asset} other {Assets}} cannot be added to any of the albums",
|
||||
@@ -814,6 +794,7 @@
|
||||
"custom_date": "Custom date",
|
||||
"custom_locale": "Custom locale",
|
||||
"custom_locale_description": "Format dates, times, and numbers based on the selected language and region",
|
||||
"custom_url": "Custom URL",
|
||||
"cutoff_date_description": "Keep photos from the last…",
|
||||
"cutoff_day": "{count, plural, one {day} other {days}}",
|
||||
"cutoff_year": "{count, plural, one {year} other {years}}",
|
||||
@@ -1480,7 +1461,6 @@
|
||||
"never": "Never",
|
||||
"new_album": "New Album",
|
||||
"new_api_key": "New API Key",
|
||||
"new_feature": "New Feature",
|
||||
"new_password": "New password",
|
||||
"new_person": "New person",
|
||||
"new_pin_code": "New PIN code",
|
||||
@@ -1541,8 +1521,6 @@
|
||||
"obtainium_configurator": "Obtainium Configurator",
|
||||
"obtainium_configurator_instructions": "Use Obtainium to install and update the Android app directly from Immich GitHub's release. Create an API key and select a variant to create your Obtainium configuration link",
|
||||
"ocr": "OCR",
|
||||
"ocr_body": "Immich now reads the text inside your photos, so you can search for them by what they say.",
|
||||
"ocr_title": "Search text in your photos",
|
||||
"official_immich_resources": "Official Immich Resources",
|
||||
"offline": "Offline",
|
||||
"offset": "Offset",
|
||||
@@ -1561,8 +1539,6 @@
|
||||
"open": "Open",
|
||||
"open_calendar": "Open calendar",
|
||||
"open_in_browser": "Open in browser",
|
||||
"open_in_immich_body": "Set Immich as your gallery on Android to open photos straight from other apps.",
|
||||
"open_in_immich_title": "Open photos in Immich",
|
||||
"open_in_map_view": "Open in map view",
|
||||
"open_in_openstreetmap": "Open in OpenStreetMap",
|
||||
"open_the_search_filters": "Open the search filters",
|
||||
@@ -1620,7 +1596,7 @@
|
||||
"person": "Person",
|
||||
"person_age_months": "{months, plural, one {# month} other {# months}} old",
|
||||
"person_age_year_months": "1 year, {months, plural, one {# month} other {# months}} old",
|
||||
"person_age_years": "{years, plural, one {# year} other {# years}} old",
|
||||
"person_age_years": "{years, plural, other {# years}} old",
|
||||
"person_birthdate": "Born on {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (hidden)} other {}}",
|
||||
"person_recognized": "Person recognised",
|
||||
@@ -1721,10 +1697,7 @@
|
||||
"recent": "Recent",
|
||||
"recent_searches": "Recent searches",
|
||||
"recently_added": "Recently added",
|
||||
"recently_added_body": "Jump straight to everything you've added lately on a dedicated page.",
|
||||
"recently_added_description": "Browse your assets sorted by when they were uploaded to Immich",
|
||||
"recently_added_page_title": "Recently Added",
|
||||
"recently_added_title": "Recently added",
|
||||
"recently_taken": "Recently taken",
|
||||
"refresh": "Refresh",
|
||||
"refresh_encoded_videos": "Refresh encoded videos",
|
||||
@@ -1931,8 +1904,6 @@
|
||||
"share_link": "Share Link",
|
||||
"share_original": "Use original (large)",
|
||||
"share_preview": "Use thumbnail (small)",
|
||||
"share_quality_body": "Press and hold the share button to choose the image quality before you share.",
|
||||
"share_quality_title": "Choose your share quality",
|
||||
"shared": "Shared",
|
||||
"shared_album_activities_input_disable": "Comment is disabled",
|
||||
"shared_album_activity_remove_content": "Do you want to delete this activity?",
|
||||
@@ -1947,9 +1918,7 @@
|
||||
"shared_link_app_bar_title": "Shared Links",
|
||||
"shared_link_clipboard_copied_massage": "Copied to clipboard",
|
||||
"shared_link_create_error": "Error while creating shared link",
|
||||
"shared_link_custom_url_description": "Access this shared link with a custom URL name",
|
||||
"shared_link_custom_url_title": "Custom URL",
|
||||
"shared_link_custom_url_warning": "Warning: a custom URL name with a forward slash may not behave as you expect.",
|
||||
"shared_link_custom_url_description": "Access this shared link with a custom URL",
|
||||
"shared_link_edit_description_hint": "Enter the share description",
|
||||
"shared_link_edit_expire_after_option_day": "1 day",
|
||||
"shared_link_edit_expire_after_option_days": "{count} days",
|
||||
@@ -2016,19 +1985,16 @@
|
||||
"sign_out": "Sign Out",
|
||||
"sign_up": "Sign up",
|
||||
"size": "Size",
|
||||
"skip": "Skip",
|
||||
"skip_to_content": "Skip to content",
|
||||
"skip_to_folders": "Skip to folders",
|
||||
"skip_to_tags": "Skip to tags",
|
||||
"slideshow": "Slideshow",
|
||||
"slideshow_body": "Sit back and watch your photos play in a full-screen slideshow.",
|
||||
"slideshow_metadata_overlay_mode": "Overlay content",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Description only",
|
||||
"slideshow_metadata_overlay_mode_full": "Full",
|
||||
"slideshow_repeat": "Repeat slideshow",
|
||||
"slideshow_repeat_description": "Loop back to beginning when slideshow ends",
|
||||
"slideshow_settings": "Slideshow settings",
|
||||
"slideshow_title": "Slideshow",
|
||||
"smart_album": "Smart album",
|
||||
"some_assets_already_have_a_location_warning": "Some of the selected assets already have a location",
|
||||
"sort_albums_by": "Sort albums by...",
|
||||
@@ -2156,7 +2122,6 @@
|
||||
"unknown": "Unknown",
|
||||
"unknown_country": "Unknown Country",
|
||||
"unknown_date": "Unknown date",
|
||||
"unknown_schema": "Unknown schema",
|
||||
"unknown_year": "Unknown Year",
|
||||
"unlimited": "Unlimited",
|
||||
"unlink_motion_video": "Unlink motion video",
|
||||
@@ -2192,8 +2157,6 @@
|
||||
"upload_status_errors": "Errors",
|
||||
"upload_status_uploaded": "Uploaded",
|
||||
"upload_success": "Upload success, refresh the page to see new upload assets.",
|
||||
"upload_to_album_body": "For users that don't use the manual upload feature, you can now choose to add local photos directly into an album as you upload them, no need to upload then add to an album later anymore.",
|
||||
"upload_to_album_title": "Upload straight to an album",
|
||||
"upload_to_immich": "Upload to Immich ({count})",
|
||||
"uploading": "Uploading",
|
||||
"uploading_media": "Uploading media",
|
||||
@@ -2261,9 +2224,6 @@
|
||||
"week": "Week",
|
||||
"welcome": "Welcome",
|
||||
"welcome_to_immich": "Welcome to Immich",
|
||||
"whats_new": "What's new",
|
||||
"whats_new_settings_subtitle": "See what's new in Immich",
|
||||
"whats_new_version": "Version {version}",
|
||||
"when": "When",
|
||||
"width": "Width",
|
||||
"wifi_name": "Wi-Fi Name",
|
||||
|
||||
168
i18n/eo.json
168
i18n/eo.json
@@ -108,21 +108,6 @@
|
||||
"image_thumbnail_quality_description": "Kvalito de bildeto, inter 1 kaj 100. Pli alta cifero indikas pli altkvalitan bildon, sed donas pli grandajn dosierojn kaj povas malrapidigi uzadon de la apo.",
|
||||
"image_thumbnail_title": "Agordoj pri bildetoj",
|
||||
"import_config_from_json_description": "Importi sistem-agordaĵaron de JSON-dosiero",
|
||||
"integrity_checks_checksum_files": "Kontrolsum-dosieroj",
|
||||
"integrity_checks_checksum_files_description": "Konfiguri la kontroladon per kontrolsumo",
|
||||
"integrity_checks_checksum_files_enable_description": "Ŝalti kontroladon per kontrolsumoj",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Elcenta limo",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Konfiguri la maksimuman elcentaĵon, inter 0.01 kaj 1, kiom estu kontrolata je ĉiu intervalo.",
|
||||
"integrity_checks_checksum_files_time_limit": "Tempolimo",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Konfiguri la maksimuman daŭron (milisekundoj) de kontrolado je ĉiu intervalo.",
|
||||
"integrity_checks_missing_files": "Mankantaj dosieroj",
|
||||
"integrity_checks_missing_files_description": "Konfiguri la oftecon kaj ŝalti/malŝalti kontrolon por mankantaj dosieroj",
|
||||
"integrity_checks_missing_files_enable_description": "Ŝalti kontroladon por mankantaj dosieroj",
|
||||
"integrity_checks_settings": "Kontrolo de integreco",
|
||||
"integrity_checks_settings_description": "Administri intervalojn inter kontroloj de integreco",
|
||||
"integrity_checks_untracked_files": "Senspuraj dosieroj",
|
||||
"integrity_checks_untracked_files_description": "Konfiguri la oftecon kaj ŝalti/malŝalti kontrolon por senspuraj dosieroj",
|
||||
"integrity_checks_untracked_files_enable_description": "Ŝalti kontroladon por senspuraj dosieroj",
|
||||
"job_concurrency": "{job}: nombro de samtempaj taskoj",
|
||||
"job_created": "Tasko kreita",
|
||||
"job_not_concurrency_safe": "Estas nesekure fari tiun ĉi taskon samtempe kun aliaj.",
|
||||
@@ -431,10 +416,6 @@
|
||||
"transcoding_realtime_description": "Ebligas transkodadon samtempe kun spektado per elsendfluo. Tio ebligas ŝanĝon de kvalito laŭvole, sed povas kaŭzi pli da atendotempo kaj interrompoj, depende de la kapacito de la servilo.",
|
||||
"transcoding_realtime_enabled": "Ŝalti realtempan transkodadon",
|
||||
"transcoding_realtime_enabled_description": "Se malŝaltita, la servilo rifuzas komenci novajn sesiojn de realtempa transkodado.",
|
||||
"transcoding_realtime_resolutions": "Distingivoj",
|
||||
"transcoding_realtime_resolutions_description": "La distingivoj proponitaj por realtempa transkodado. Pli altaj distingivoj povas okazigi problemojn sed la servilo ne povas sufiĉe rapide transkodigi ilin.",
|
||||
"transcoding_realtime_video_codecs": "Videokodekoj",
|
||||
"transcoding_realtime_video_codecs_description": "La video-kodekoj proponitaj por realtempa transkodado. Klientoj povos elekti sian plej bonan opcion dum ludado. AV1 estas pli efika ol HEVC, kiu estas pli efika ol H.264. Se vi uzas aparataran plirapidigon, uzu nur kodekojn, kiujn la akcelilo povas kodigi. Por softvara transkodado, notu ke H.264 estas pli rapida ol AV1, kiu estas pli rapida ol HEVC.",
|
||||
"transcoding_reference_frames": "Referencaj kadroj",
|
||||
"transcoding_reference_frames_description": "La nombro da apudaj kadroj uzataj dum densigo de iu kadro. Pli granda valoro rezultas je pli bona densigo, sed malpli rapida laboro. Valoro de 0 indikas aŭtomatan agordon.",
|
||||
"transcoding_required_description": "Nur videoj kun neakceptataj formatoj",
|
||||
@@ -597,7 +578,6 @@
|
||||
"asset_viewer_settings_title": "Montrilo de elemento",
|
||||
"assets": "Elementoj",
|
||||
"assets_added_to_album_count": "Sukcese aldonis {count, plural, one {# elementon} other {# elementojn}} al la albumo",
|
||||
"assets_added_to_album_partial_count": "Aldonis {successCount} el {totalCount} {totalCount, plural, one {elemento} other {elementoj}} al la albumo",
|
||||
"assets_added_to_albums_count": "Sukcese aldonis {assetTotal, plural, one {# elementon} other {# elementojn}} al {albumTotal, plural, one {# albumo} other {# albumoj}}",
|
||||
"assets_cannot_be_added_to_album_count": "Ne eblis aldoni {count, plural, one {tiun elementon} other {tiujn elementojn}} al la albumo",
|
||||
"assets_cannot_be_added_to_albums": "Ne eblis aldoni {count, plural, one {tiun elementon} other {tiujn elementojn}} al iu ajn el la albumoj",
|
||||
@@ -813,6 +793,7 @@
|
||||
"custom_date": "Elekti propran daton",
|
||||
"custom_locale": "Propra lokaĵaro",
|
||||
"custom_locale_description": "Prezenti datojn, horojn kaj numerojn laŭ la elektita lingvo kaj regiono",
|
||||
"custom_url": "Propra URL",
|
||||
"cutoff_date_description": "Konservi fotojn el la lastaj…",
|
||||
"cutoff_day": "{count, plural, one {tago} other {tagoj}}",
|
||||
"cutoff_year": "{count, plural, one {jaro} other {jaroj}}",
|
||||
@@ -1516,8 +1497,6 @@
|
||||
"notes": "Notoj",
|
||||
"nothing_here_yet": "Ankoraŭ nenio ĉi tie",
|
||||
"notification_backup_reliability": "Ŝalti atentigilojn por igi pli fidinda la fonan savkopiadon",
|
||||
"notification_enabled_list_tile_open_button": "Malfermi agordojn",
|
||||
"notification_enabled_list_tile_title": "Atentigoj ŝaltitaj",
|
||||
"notification_permission_dialog_content": "Por ŝalti sciigojn, iru al Agordoj kaj elektu 'permesi'.",
|
||||
"notification_permission_list_tile_content": "Donu permeson por ŝalti sciigojn.",
|
||||
"notification_permission_list_tile_enable_button": "Ŝalti sciigojn",
|
||||
@@ -1529,8 +1508,6 @@
|
||||
"obtainium_configurator": "Konfigurilo pri Obtainium",
|
||||
"obtainium_configurator_instructions": "Uzu Obtainium por instali kaj ĝisdatigi la apon por Android rekte el github. Kreu API-ŝlosilon kaj elektu variaĵon por krei ligilon por konfiguri Obtainium",
|
||||
"ocr": "Optika signo-rekono",
|
||||
"ocr_body": "Immich nun legas tekston en viaj fotoj, do vi povas serĉi kaj trovi fotojn laŭ tio.",
|
||||
"ocr_title": "Serĉi tekston en fotoj",
|
||||
"official_immich_resources": "Oficialaj rimedoj por Immich",
|
||||
"offline": "Nekonektita",
|
||||
"offset": "Deŝovo",
|
||||
@@ -1549,8 +1526,6 @@
|
||||
"open": "Malfermi",
|
||||
"open_calendar": "Malfermi kalendaron",
|
||||
"open_in_browser": "Malfermi en retumilo",
|
||||
"open_in_immich_body": "Agordi Immich kiel galerion en Android-aparato por ke fotoj malfermiĝu rekte de aliaj apoj en Immich.",
|
||||
"open_in_immich_title": "Malfermi fotojn en Immich",
|
||||
"open_in_map_view": "Montri sur mapo",
|
||||
"open_in_openstreetmap": "Malfermi en OpenStreetMap",
|
||||
"open_the_search_filters": "Malfermi la serĉ-filtrilojn",
|
||||
@@ -1705,10 +1680,7 @@
|
||||
"recent": "Lastatempa(j)",
|
||||
"recent_searches": "Lastatempaj serĉoj",
|
||||
"recently_added": "Lastatempe aldonita(j)",
|
||||
"recently_added_body": "Iri rekte al ĉio, kion vi aldonis lastatempe en unu paĝo.",
|
||||
"recently_added_description": "Foliumi elementojn ordigitajn laŭ dato de alŝuto al Immich",
|
||||
"recently_added_page_title": "Lastatempe aldonita(j)",
|
||||
"recently_added_title": "Aldonitaj lastatempe",
|
||||
"recently_taken": "Lastatempe fotita(j)",
|
||||
"refresh": "Denove",
|
||||
"refresh_encoded_videos": "Renovigi koditajn videojn",
|
||||
@@ -1842,79 +1814,10 @@
|
||||
"search_timezone": "Serĉi laŭ horzono...",
|
||||
"search_type": "Serĉi laŭ tipo",
|
||||
"search_your_photos": "Serĉi viajn fotojn",
|
||||
"searching_locales": "Serĉado de lokaj parametroj...",
|
||||
"second": "Sekundo",
|
||||
"see_all_people": "Vidi ĉiujn homojn",
|
||||
"select": "Elekti",
|
||||
"select_album": "Elekti albumon",
|
||||
"select_album_cover": "Elekti album-kovrilon",
|
||||
"select_albums": "Elekti albumojn",
|
||||
"select_all": "Elekti ĉiujn",
|
||||
"select_all_duplicates": "Elekti ĉiujn duoblaĵojn",
|
||||
"select_avatar_color": "Elekti koloron de profilbildo",
|
||||
"select_count": "{count, plural, one {Elekti #} other {Elekti #}}",
|
||||
"select_cutoff_date": "Elekti limdaton",
|
||||
"select_face": "Elekti vizaĝon",
|
||||
"select_featured_photo": "Elekti elstarigitan foton",
|
||||
"select_from_computer": "Elekti el komputilo",
|
||||
"select_keep_all": "Konservi ĉiujn",
|
||||
"select_new_face": "Elekti novan vizaĝon",
|
||||
"select_people": "Elekti homojn",
|
||||
"select_person": "Elekti homon",
|
||||
"select_person_to_tag": "Elekti homon por etikedi",
|
||||
"select_photos": "Elekti fotojn",
|
||||
"select_quality": "Elekti kvaliton",
|
||||
"select_trash_all": "Forigi ĉiujn",
|
||||
"selected": "Elektita",
|
||||
"selected_count": "{count, plural, one {# elektita} other {# elektitaj}}",
|
||||
"selected_gps_coordinates": "GPS-koordinatoj elektitaj",
|
||||
"send_message": "Sendi mesaĝon",
|
||||
"send_welcome_email": "Sendi bonvenan retmesaĝon",
|
||||
"server_endpoint": "Finpunkto ĉe servilo",
|
||||
"server_info_box_app_version": "Versio de apo",
|
||||
"server_info_box_server_url": "URL-o de servilo",
|
||||
"server_offline": "Servilo nedisponebla",
|
||||
"server_online": "Servilo disponebla",
|
||||
"server_privacy": "Privateco de servilo",
|
||||
"server_restarting_description": "La paĝo baldaŭ reŝargiĝos.",
|
||||
"server_restarting_title": "Servilo restartas",
|
||||
"server_stats": "Statistikoj de servilo",
|
||||
"server_update_available": "Ĝisdatigo disponeblas por la servilo",
|
||||
"server_version": "Versio de servilo",
|
||||
"set": "Agordi",
|
||||
"set_as_album_cover": "Agordi kiel album-kovrilo",
|
||||
"set_as_featured_photo": "Agordi kiel elstarigitan foton",
|
||||
"set_as_profile_picture": "Elekti kiel profilbildon",
|
||||
"set_date_of_birth": "Agordi naskiĝdaton",
|
||||
"set_profile_picture": "Elekti profilbildon",
|
||||
"set_slideshow_to_fullscreen": "Vidigi bildserion plenekrane",
|
||||
"set_stack_primary_asset": "Agordi kiel unuarangan elementon",
|
||||
"setting_image_navigation_enable_subtitle": "Se ŝaltita, vi povas salti al antaŭa/sekva bildo per tuŝeto en la maldekstra/dekstra kvarono de la ekrano.",
|
||||
"setting_image_navigation_enable_title": "Tuŝeti por navigi",
|
||||
"setting_image_navigation_title": "Navigado de bildoj",
|
||||
"setting_image_viewer_help": "La detala montrilo unue montras la malgrandan bildeton, poste ŝargas la mezgrandan antaŭvidon (se ŝaltita), kaj fine ŝargas la originalan (se ŝaltita).",
|
||||
"setting_image_viewer_original_subtitle": "Ŝalti por ŝargi la originalan bildon (povas esti tre granda!) Malŝalti por ŝpareme uzi datumojn (de retkonekto kaj memoro en via aparato).",
|
||||
"setting_image_viewer_original_title": "Ŝargi originalan bildon",
|
||||
"setting_image_viewer_preview_subtitle": "Ŝalti por ŝargi mez-distingivan bildon. Malŝalti por ŝargi aŭ la originalon aŭ la bildeton.",
|
||||
"setting_image_viewer_preview_title": "Ŝargi antaŭvidan bildon",
|
||||
"setting_languages_apply": "Validigi",
|
||||
"setting_languages_subtitle": "Ŝanĝi lingvon de la apo",
|
||||
"setting_notifications_notify_minutes": "{count} minutoj",
|
||||
"setting_notifications_notify_seconds": "{count} sekundoj",
|
||||
"setting_notifications_subtitle": "Redakti viajn preferojn pri sciigoj",
|
||||
"setting_video_viewer_auto_play_subtitle": "Aŭtomate ekludi videojn tuj je malfermo",
|
||||
"setting_video_viewer_auto_play_title": "Aŭtomate ludi videojn",
|
||||
"setting_video_viewer_looping_title": "Ripeti",
|
||||
"settings": "Agordoj",
|
||||
"settings_saved": "Agordoj konservitaj",
|
||||
"setup_pin_code": "Krei PIN-kodon",
|
||||
"share": "Dividi",
|
||||
"share_dialog_preparing": "Preparado...",
|
||||
"share_link": "Dividi ligilon",
|
||||
"share_original": "Uzi originalon (grandan)",
|
||||
"share_preview": "Uzi bildeton (malgrandan)",
|
||||
"share_quality_body": "Premteni la dividi-butonon por elekti la kvaliton de bildo dividota.",
|
||||
"share_quality_title": "Elekti kvaliton dividotan",
|
||||
"shared": "Dividitaj",
|
||||
"shared_album_activities_input_disable": "Komentado estas malŝaltita",
|
||||
"shared_album_activity_remove_content": "Ĉu vi volas forigi tiun ĉi agon?",
|
||||
@@ -1930,8 +1833,6 @@
|
||||
"shared_link_clipboard_copied_massage": "Kopiita al tondujo",
|
||||
"shared_link_create_error": "Okazis eraro dum kreo de dividita ligilo",
|
||||
"shared_link_custom_url_description": "Atingi la dividita ligilo per propra URL-o",
|
||||
"shared_link_custom_url_title": "Propra URL",
|
||||
"shared_link_custom_url_warning": "Atentu: propra URL, kiu inkluzivas suprenstrekon povus havi neatenditan rezulton.",
|
||||
"shared_link_edit_description_hint": "Tajpu priskribon de la dividaĵaro",
|
||||
"shared_link_edit_expire_after_option_day": "1 tago",
|
||||
"shared_link_edit_expire_after_option_days": "{count} tagoj",
|
||||
@@ -1953,7 +1854,6 @@
|
||||
"shared_link_expires_never": "Neniam eksvalidiĝos",
|
||||
"shared_link_expires_second": "Eksvalidiĝos post {count} sekundo",
|
||||
"shared_link_expires_seconds": "Eksvalidiĝos post {count} sekundoj",
|
||||
"shared_link_individual_shared": "Unuope dividita",
|
||||
"shared_link_info_chip_metadata": "EXIF",
|
||||
"shared_link_manage_links": "Administri dividitajn ligilojn",
|
||||
"shared_link_options": "Agordoj pri dividitaj ligiloj",
|
||||
@@ -1965,79 +1865,13 @@
|
||||
"shared_with_partner": "Dividitaj kun {partner}",
|
||||
"sharing": "Dividado",
|
||||
"sharing_enter_password": "Bonvolu tajpi la pasvorton por vidi tiun ĉi paĝon.",
|
||||
"shift_to_permanent_delete": "Tuŝu ⇧ por forigi porĉiame la elementon",
|
||||
"show_album_options": "Montri opciojn de albumo",
|
||||
"show_albums": "Montri albumojn",
|
||||
"show_all_people": "Montri ĉiujn homojn",
|
||||
"show_and_hide_people": "Montri kaj kaŝi homojn",
|
||||
"show_file_location": "Montri dosier-lokon",
|
||||
"show_gallery": "Montri galerion",
|
||||
"show_hidden_people": "Montri kaŝitajn homojn",
|
||||
"show_in_timeline": "Montri en tempolinio",
|
||||
"show_in_timeline_setting_description": "Montri fotojn kaj videojn de tiu uzanto en via tempolinio",
|
||||
"show_keyboard_shortcuts": "Montri fulmklavojn",
|
||||
"show_less": "Montri malpli",
|
||||
"show_metadata": "Montri metadatumojn",
|
||||
"show_more_fields": "{count, plural, one {Montri # plian kampon} other {Montri # pliajn kampojn}}",
|
||||
"show_or_hide_info": "Montri aŭ kaŝi informojn",
|
||||
"show_password": "Montri pasvorton",
|
||||
"show_person_options": "Montri opciojn pri homo",
|
||||
"show_progress_bar": "Montri plenumskalon",
|
||||
"show_schema": "Montri skemon",
|
||||
"show_search_options": "Montri opciojn pri serĉado",
|
||||
"show_shared_links": "Montri dividitajn ligilojn",
|
||||
"show_slideshow_metadata_overlay": "Montri pribildajn informojn super la bildo",
|
||||
"show_slideshow_transition": "Montri transpason dum bildserio",
|
||||
"show_supporter_badge": "Ŝildo de subtenanto",
|
||||
"show_supporter_badge_description": "Montri ŝildon de subtenanto",
|
||||
"show_text_recognition": "Montri rekonadon de teksto",
|
||||
"show_text_search_menu": "Montri menuon pri teksta serĉo",
|
||||
"shuffle": "Hazarda vicordo",
|
||||
"sidebar": "Flankpanelo",
|
||||
"sidebar_display_description": "Montri ligilon al la vido en la flankpanelo",
|
||||
"sign_out": "Elsaluti",
|
||||
"sign_up": "Registriĝi",
|
||||
"size": "Grandeco",
|
||||
"skip": "Preterlasi",
|
||||
"skip_to_content": "Salti rekte al enhavo",
|
||||
"skip_to_folders": "Salti rekte al dosierujoj",
|
||||
"skip_to_tags": "Salti rekte al etikedoj",
|
||||
"slideshow": "Bildserio",
|
||||
"slideshow_body": "Spekti viajn fotojn en plenekrana bildserio.",
|
||||
"slideshow_metadata_overlay_mode": "Supermeti elementojn",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Nur priskribo",
|
||||
"slideshow_metadata_overlay_mode_full": "Plena",
|
||||
"slideshow_repeat": "Ripeti bildserion",
|
||||
"slideshow_repeat_description": "Remontri ekde la komenco post fino de bildserio",
|
||||
"slideshow_settings": "Agordoj pri bildserioj",
|
||||
"slideshow_title": "Bildserio",
|
||||
"smart_album": "Aktiva albumo",
|
||||
"some_assets_already_have_a_location_warning": "Kelkaj el la elektitaj elementoj jam havas lokon",
|
||||
"sort_albums_by": "Ordigi albumojn laŭ...",
|
||||
"sort_created": "Dato de kreo",
|
||||
"sort_items": "Nombro da elementoj",
|
||||
"sort_modified": "Dato de lasta ŝanĝo",
|
||||
"sort_oldest": "Plej malnova foto",
|
||||
"sort_people_by_similarity": "Ordigi homojn laŭ simileco",
|
||||
"sort_recent": "Plej lasta foto",
|
||||
"sort_title": "Titolo",
|
||||
"source": "Fonto",
|
||||
"stack": "Staki",
|
||||
"stack_action_prompt": "{count} stakitaj",
|
||||
"stack_duplicates": "Staki duoblaĵojn",
|
||||
"stack_selected_photos": "Staki elektitajn fotojn",
|
||||
"stacked_assets_count": "Stakis {count, plural, one {# elementon} other {# elementojn}}",
|
||||
"stacktrace": "Stak-spuro",
|
||||
"start": "Komenci",
|
||||
"start_date": "Komenca dato",
|
||||
"start_date_before_end_date": "Komenca dato devas esti antaŭ fina dato",
|
||||
"state": "Ŝtato/Regiono",
|
||||
"status": "Stato",
|
||||
"step_delete": "Forigi paŝon",
|
||||
"step_delete_confirm": "Ĉu vi certas, ke vi volas forigi tiun paŝon?",
|
||||
"step_details": "Detaloj pri paŝo",
|
||||
"steps": "Paŝoj",
|
||||
"stop_casting": "Ĉesi elsendi",
|
||||
"stop_photo_sharing": "Ĉu ĉesi dividi viajn fotojn?",
|
||||
"stop_photo_sharing_description": "{partner} ne plu rajtos atingi viajn fotojn.",
|
||||
"stop_sharing_photos_with_user": "Ĉesi dividi fotojn kun tiu ĉi uzanto",
|
||||
|
||||
58
i18n/es.json
58
i18n/es.json
@@ -108,21 +108,6 @@
|
||||
"image_thumbnail_quality_description": "Calidad de miniatura de 1 a 100. Es mejor cuanto más alto es el valor pero genera archivos más grandes y puede reducir la capacidad de respuesta de la aplicación.",
|
||||
"image_thumbnail_title": "Ajustes de las miniaturas",
|
||||
"import_config_from_json_description": "Importar la configuración del sistema subiendo un archivo JSON de configuración",
|
||||
"integrity_checks_checksum_files": "Archivos de suma de comprobación",
|
||||
"integrity_checks_checksum_files_description": "Configurar la comprobación de la suma de comprobación",
|
||||
"integrity_checks_checksum_files_enable_description": "Activar la comprobación de la suma de comprobación",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Límite porcentual",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Configura el porcentaje máximo, entre 0,01 y 1, que indica la frecuencia con la que debe ejecutarse la comprobación de la suma de comprobación en cada intervalo.",
|
||||
"integrity_checks_checksum_files_time_limit": "Límite de tiempo",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Configura la duración máxima durante la cual debe ejecutarse la comprobación de la suma de comprobación en cada intervalo. (ms)",
|
||||
"integrity_checks_missing_files": "Archivos faltantes",
|
||||
"integrity_checks_missing_files_description": "Configura la frecuencia y activa o desactiva la comprobación de archivos faltantes",
|
||||
"integrity_checks_missing_files_enable_description": "Activar la comprobación de archivos faltantes",
|
||||
"integrity_checks_settings": "Comprobaciones de integridad",
|
||||
"integrity_checks_settings_description": "Gestionar los intervalos de las comprobaciones de integridad",
|
||||
"integrity_checks_untracked_files": "Archivos sin seguimiento",
|
||||
"integrity_checks_untracked_files_description": "Configure la frecuencia y active o desactive la comprobación de archivos sin seguimiento",
|
||||
"integrity_checks_untracked_files_enable_description": "Habilitar la comprobación de archivos sin seguimiento",
|
||||
"job_concurrency": "{job}: Procesos simultáneos",
|
||||
"job_created": "Tarea creada",
|
||||
"job_not_concurrency_safe": "Esta tarea no es segura para la simultaneidad.",
|
||||
@@ -431,10 +416,6 @@
|
||||
"transcoding_realtime_description": "Permite que la transcodificación se efectua en tiempo real al retransmitirse el video. Permite cambios de calidad, pero quizás causa mayor latencia de reproducción y entrecortamiento dependiendo de las capacidades del servidor.",
|
||||
"transcoding_realtime_enabled": "Activar transcodificación en tiempo real",
|
||||
"transcoding_realtime_enabled_description": "Si se desactiva, el servidor se niega a comenzar nuevas sesiones de transcodificación en tiempo real.",
|
||||
"transcoding_realtime_resolutions": "Resoluciones",
|
||||
"transcoding_realtime_resolutions_description": "Las resoluciones ofrecidas para el la transcodificación en tiempo real. Resoluciones altas pueden causar problemas al reproducir si el servidor no es capaz de transcodificarlas lo suficientemente rápido.",
|
||||
"transcoding_realtime_video_codecs": "Códecs de video",
|
||||
"transcoding_realtime_video_codecs_description": "Los códecs de video disponibles para la transcodificación en tiempo real. Durante la reproducción, los clientes elegirán la mejor opción que admitan. AV1 es más eficiente que HEVC, y HEVC es más eficiente que H.264. Al usar aceleración por hardware, selecciona únicamente los códecs que el acelerador pueda codificar. Al usar transcodificación por software, ten en cuenta que H.264 es más rápido que AV1, y AV1 es más rápido que HEVC.",
|
||||
"transcoding_reference_frames": "Frames de referencia",
|
||||
"transcoding_reference_frames_description": "El número de fotogramas a los que hacer referencia al comprimir un fotograma determinado. Los valores más altos mejoran la eficiencia de la compresión, pero ralentizan la codificación. 0 establece este valor automáticamente.",
|
||||
"transcoding_required_description": "Sólo vídeos que no estén en un formato soportado",
|
||||
@@ -597,7 +578,6 @@
|
||||
"asset_viewer_settings_title": "Visor de recursos",
|
||||
"assets": "Recursos",
|
||||
"assets_added_to_album_count": "{count, plural, one {# recurso añadido} other {# recurso añadidos}} al álbum",
|
||||
"assets_added_to_album_partial_count": "Agregados {successCount} de {totalCount} {totalCount, plural, one {asset} other {assets}} al album",
|
||||
"assets_added_to_albums_count": "{assetTotal, plural, one {# añadido} other {# añadidos}} {albumTotal, plural, one {# al álbum} other {# a los álbumes}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {El recurso no se puede añadir al álbum} other {Los recursos no se pueden añadir al álbum}}",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {El recurso} other {Los recursos}} no se {count, plural, one {puede} other {pueden}} añadir a ninguno de los álbumes",
|
||||
@@ -814,6 +794,7 @@
|
||||
"custom_date": "Fecha personalizada",
|
||||
"custom_locale": "Configuración regional personalizada",
|
||||
"custom_locale_description": "Dar formato a fechas, horas y números según el idioma y región seleccionados",
|
||||
"custom_url": "URL personalizada",
|
||||
"cutoff_date_description": "Conserva fotos del último…",
|
||||
"cutoff_day": "{count, plural, one {día} other {días}}",
|
||||
"cutoff_year": "{count, plural, one {año} other {años}}",
|
||||
@@ -1322,9 +1303,9 @@
|
||||
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
||||
"login_form_handshake_exception": "Hubo una excepción de handshake con el servidor. Activa la compatibilidad con certificados autofirmados en la configuración si estás utilizando un certificado autofirmado.",
|
||||
"login_form_password_hint": "contraseña",
|
||||
"login_form_server_empty": "Introduce la URL del servidor",
|
||||
"login_form_server_error": "No se pudo conectar al servidor",
|
||||
"login_has_been_disabled": "El inicio de sesión ha sido deshabilitado",
|
||||
"login_form_server_empty": "Introduce la URL del servidor.",
|
||||
"login_form_server_error": "No se pudo conectar al servidor.",
|
||||
"login_has_been_disabled": "El inicio de sesión ha sido deshabilitado.",
|
||||
"login_password_changed_error": "Hubo un error actualizando la contraseña",
|
||||
"login_password_changed_success": "Contraseña cambiado con éxito",
|
||||
"logout_all_device_confirmation": "¿Estás seguro de que quieres cerrar sesión en todos los dispositivos?",
|
||||
@@ -1480,7 +1461,6 @@
|
||||
"never": "Nunca",
|
||||
"new_album": "Nuevo álbum",
|
||||
"new_api_key": "Nueva clave API",
|
||||
"new_feature": "Nueva característica",
|
||||
"new_password": "Nueva contraseña",
|
||||
"new_person": "Nueva persona",
|
||||
"new_pin_code": "Nuevo PIN",
|
||||
@@ -1524,13 +1504,9 @@
|
||||
"not_available": "N/D",
|
||||
"not_in_any_album": "Sin álbum",
|
||||
"not_selected": "No seleccionado",
|
||||
"not_set": "No establecido",
|
||||
"notes": "Notas",
|
||||
"nothing_here_yet": "Sin nada aún",
|
||||
"notification_backup_reliability": "Activa las notificaciones para mejorar el funcionamiento de las copias de seguridad en segundo plano",
|
||||
"notification_enabled_list_tile_content": "Immich usa notificaciones para las copias de seguridad en segundo plano. Gestiónelas en los ajustes de su dispositivo.",
|
||||
"notification_enabled_list_tile_open_button": "Abrir ajustes",
|
||||
"notification_enabled_list_tile_title": "Notificaciones activadas",
|
||||
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
||||
"notification_permission_list_tile_content": "Concede permiso para habilitar las notificaciones.",
|
||||
"notification_permission_list_tile_enable_button": "Permitir notificaciones",
|
||||
@@ -1542,8 +1518,6 @@
|
||||
"obtainium_configurator": "Configurador de Obtainium",
|
||||
"obtainium_configurator_instructions": "Usa Obtainium para instalar y actualizar la aplicación de Android directamente desde las versiones publicadas en el GitHub de Immich. Crea una clave API y selecciona una variante para generar tu enlace de configuración de Obtainium",
|
||||
"ocr": "OCR",
|
||||
"ocr_body": "Ahora Immich lee el texto que hay dentro de tus fotos, así podrás buscarlas por lo que dicen.",
|
||||
"ocr_title": "Buscar texto en tus fotos",
|
||||
"official_immich_resources": "Recursos oficiales de Immich",
|
||||
"offline": "Desconectado",
|
||||
"offset": "Desviación",
|
||||
@@ -1562,8 +1536,6 @@
|
||||
"open": "Abierto",
|
||||
"open_calendar": "Abrir calendario",
|
||||
"open_in_browser": "Abrir en el navegador",
|
||||
"open_in_immich_body": "Establece Immich como tu galería en Android para abrir fotos directamente desde otras aplicaciones.",
|
||||
"open_in_immich_title": "Abrir fotos en Immich",
|
||||
"open_in_map_view": "Abrir en la vista del mapa",
|
||||
"open_in_openstreetmap": "Abrir en OpenStreetMap",
|
||||
"open_the_search_filters": "Abre los filtros de búsqueda",
|
||||
@@ -1621,7 +1593,7 @@
|
||||
"person": "Persona",
|
||||
"person_age_months": "hace {months, plural, one {# mes} other {# meses}}",
|
||||
"person_age_year_months": "1 año y {months, plural, one {# mes} other {# meses}}",
|
||||
"person_age_years": "{years, plural, one {# año} other {# años}}",
|
||||
"person_age_years": "{years, plural, other {# años}}",
|
||||
"person_birthdate": "Nacido el {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (oculto)} other {}}",
|
||||
"person_recognized": "Persona reconocida",
|
||||
@@ -1722,10 +1694,7 @@
|
||||
"recent": "Reciente",
|
||||
"recent_searches": "Búsquedas recientes",
|
||||
"recently_added": "Añadidos recientemente",
|
||||
"recently_added_body": "Acceda directamente a todo lo que ha añadido recientemente en una página dedicada.",
|
||||
"recently_added_description": "Explora tus archivos ordenados por fecha de subida a Immich",
|
||||
"recently_added_page_title": "Recién añadidos",
|
||||
"recently_added_title": "Añadido recientemente",
|
||||
"recently_taken": "Tomadas recientemente",
|
||||
"refresh": "Actualizar",
|
||||
"refresh_encoded_videos": "Recargar los vídeos codificados",
|
||||
@@ -1932,8 +1901,6 @@
|
||||
"share_link": "Compartir enlace",
|
||||
"share_original": "Usar original (grande)",
|
||||
"share_preview": "Usar vista previa (pequeño)",
|
||||
"share_quality_body": "Mantén pulsado el botón de compartir para elegir la calidad de la imagen antes de compartirla.",
|
||||
"share_quality_title": "Elige la calidad de compartición",
|
||||
"shared": "Compartidos",
|
||||
"shared_album_activities_input_disable": "Los comentarios están deshabilitados",
|
||||
"shared_album_activity_remove_content": "¿Deseas eliminar esta actividad?",
|
||||
@@ -1948,9 +1915,7 @@
|
||||
"shared_link_app_bar_title": "Enlaces compartidos",
|
||||
"shared_link_clipboard_copied_massage": "Copiado al portapapeles",
|
||||
"shared_link_create_error": "Error creando el enlace compartido",
|
||||
"shared_link_custom_url_description": "Accede a este enlace compartido mediante una URL personalizada",
|
||||
"shared_link_custom_url_title": "URL personalizada",
|
||||
"shared_link_custom_url_warning": "Advertencia: un nombre de URL personalizado con una barra inclinada puede no comportarse como esperas.",
|
||||
"shared_link_custom_url_description": "Acceder a este enlace compartido con una URL personalizada",
|
||||
"shared_link_edit_description_hint": "Introduce la descripción del enlace",
|
||||
"shared_link_edit_expire_after_option_day": "1 día",
|
||||
"shared_link_edit_expire_after_option_days": "{count} días",
|
||||
@@ -1997,7 +1962,7 @@
|
||||
"show_keyboard_shortcuts": "Mostrar atajos del teclado",
|
||||
"show_less": "Mostrar menos",
|
||||
"show_metadata": "Mostrar metadatos",
|
||||
"show_more_fields": "{count, plural, one {Muestra # campo más} other {Muestra # más campos}}",
|
||||
"show_more_fields": "{count, plural, one {Muestra # más campo} other {Muestra # más campos}}",
|
||||
"show_or_hide_info": "Mostrar u ocultar información",
|
||||
"show_password": "Mostrar contraseña",
|
||||
"show_person_options": "Mostrar opciones de la persona",
|
||||
@@ -2017,19 +1982,16 @@
|
||||
"sign_out": "Salir",
|
||||
"sign_up": "Registrarse",
|
||||
"size": "Tamaño",
|
||||
"skip": "Saltar",
|
||||
"skip_to_content": "Saltar al contenido",
|
||||
"skip_to_folders": "Ir a las carpetas",
|
||||
"skip_to_tags": "Ir a las etiquetas",
|
||||
"slideshow": "Pase de diapositivas",
|
||||
"slideshow_body": "Relájate y disfruta viendo tus fotos en una presentación de diapositivas a pantalla completa.",
|
||||
"slideshow_metadata_overlay_mode": "Contenido superpuesto",
|
||||
"slideshow_metadata_overlay_mode_description_only": "Solo descripción",
|
||||
"slideshow_metadata_overlay_mode_full": "Lleno",
|
||||
"slideshow_repeat": "Repetir presentación de diapositivas",
|
||||
"slideshow_repeat_description": "Volver al inicio cuando finaliza la presentación de diapositivas",
|
||||
"slideshow_settings": "Ajustes de diapositivas",
|
||||
"slideshow_title": "Presentación de diapositivas",
|
||||
"smart_album": "Álbum inteligente",
|
||||
"some_assets_already_have_a_location_warning": "Algunos de los elementos seleccionados ya tienen una ubicación",
|
||||
"sort_albums_by": "Ordenar álbumes por…",
|
||||
@@ -2157,7 +2119,6 @@
|
||||
"unknown": "Desconocido",
|
||||
"unknown_country": "País desconocido",
|
||||
"unknown_date": "Fecha desconocida",
|
||||
"unknown_schema": "Esquema desconocido",
|
||||
"unknown_year": "Año desconocido",
|
||||
"unlimited": "Sin límites",
|
||||
"unlink_motion_video": "Desvincular vídeo en movimiento",
|
||||
@@ -2193,8 +2154,6 @@
|
||||
"upload_status_errors": "Errores",
|
||||
"upload_status_uploaded": "Subido",
|
||||
"upload_success": "Subida realizada correctamente, actualice la página para ver los nuevos recursos de subida.",
|
||||
"upload_to_album_body": "Los usuarios que no utilicen la función de subida manual ya pueden añadir fotos locales directamente a un álbum a medida que las suben, sin necesidad de subirlas primero para luego añadirlas al álbum.",
|
||||
"upload_to_album_title": "Subir directamente a un álbum",
|
||||
"upload_to_immich": "Subir a Immich ({count})",
|
||||
"uploading": "Subiendo",
|
||||
"uploading_media": "Subiendo medios",
|
||||
@@ -2262,9 +2221,6 @@
|
||||
"week": "Semana",
|
||||
"welcome": "Bienvenido/a",
|
||||
"welcome_to_immich": "Bienvenido/a a Immich",
|
||||
"whats_new": "Novedades",
|
||||
"whats_new_settings_subtitle": "Descubre las novedades de Immich",
|
||||
"whats_new_version": "Versión {version}",
|
||||
"when": "Cuándo",
|
||||
"width": "Ancho",
|
||||
"wifi_name": "Nombre del Wi-Fi",
|
||||
|
||||
37
i18n/et.json
37
i18n/et.json
@@ -108,18 +108,6 @@
|
||||
"image_thumbnail_quality_description": "Pisipildi kvaliteet vahemikus 1-100. Kõrgem väärtus on parem, aga tekitab suuremaid faile ning võib mõjutada rakenduse töökiirust.",
|
||||
"image_thumbnail_title": "Pisipildi seaded",
|
||||
"import_config_from_json_description": "Impordi süsteemi seadistus JSON-faili üleslaadimise teel",
|
||||
"integrity_checks_checksum_files_description": "Seadista kontrollsumma kontroll",
|
||||
"integrity_checks_checksum_files_enable_description": "Luba kontrollsumma kontroll",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Protsendi piirang",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Seadista maksimaalne protsent 0.01 ja 1 vahel, kui palju peaks kontrollsumma kontroll iga intervalli jooksul käivituma.",
|
||||
"integrity_checks_checksum_files_time_limit": "Ajaline piirang",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Seadista maksimaalne kestus, kui kaua peaks kontrollsumma kontroll iga intervalli jooksul käivituma. (ms)",
|
||||
"integrity_checks_missing_files": "Puuduvad failid",
|
||||
"integrity_checks_missing_files_description": "Luba või keela puuduvate failide kontroll ning seadista selle sagedus",
|
||||
"integrity_checks_missing_files_enable_description": "Luba puuduvate failide kontroll",
|
||||
"integrity_checks_untracked_files": "Mittejälgitud failid",
|
||||
"integrity_checks_untracked_files_description": "Luba või keela mittejälgitud failide kontroll ning seadista selle sagedus",
|
||||
"integrity_checks_untracked_files_enable_description": "Luba mittejälgitud failide kontroll",
|
||||
"job_concurrency": "{job} samaaegsus",
|
||||
"job_created": "Tööde lisatud",
|
||||
"job_not_concurrency_safe": "Seda töödet pole ohutu samaaegselt käivitada.",
|
||||
@@ -426,10 +414,6 @@
|
||||
"transcoding_realtime_description": "Lubab video voogedastuse ajal reaalajas transkodeerimist. Võimaldab kvaliteedi vahetamist, aga võib põhjustada taasesituse kõrgemat latentsust ja katkestusi, sõltuvalt serveri võimekusest.",
|
||||
"transcoding_realtime_enabled": "Luba reaalajas transkodeerimine",
|
||||
"transcoding_realtime_enabled_description": "Kui keelatud, keeldub server uusi reaalajas transkodeerimise sessioone alustamast.",
|
||||
"transcoding_realtime_resolutions": "Resolutsioonid",
|
||||
"transcoding_realtime_resolutions_description": "Reaalajas transkodeerimiseks saadaval olevad resolutsioonid. Kõrgemad resolutsioonid võivad põhjustada taasesituse probleeme, kui server ei suuda piisavalt kiiresti transkodeerida.",
|
||||
"transcoding_realtime_video_codecs": "Videokoodekid",
|
||||
"transcoding_realtime_video_codecs_description": "Reaalajas transkodeerimiseks saadaval olevad videkoodekid. Kliendid valivad taasesituse ajal parima toetatud variandi. AV1 on efektiivsem kui HEVC, mis on omakorda efektiivsem kui H.264. Riistvaralise kiirenduse kasutamisel vali ainult koodekid, mida kiirendi suudab kodeerida. Tarkvaralise transkodeerimise puhul pane tähele, et H.264 on kiirem kui AV1, mis on omakorda kiirem kui HEVC.",
|
||||
"transcoding_reference_frames": "Viitekaadrid",
|
||||
"transcoding_reference_frames_description": "Kaadrite arv, millele viidata jooksva kaadri pakkimisel. Suuremad väärtused parandavad pakkimise tõhusust, aga muudavad kodeerimise aeglasemaks. 0 määrab väärtuse automaatselt.",
|
||||
"transcoding_required_description": "Ainult mittelubatud vormingus videod",
|
||||
@@ -592,7 +576,6 @@
|
||||
"asset_viewer_settings_title": "Üksuste vaatur",
|
||||
"assets": "Üksused",
|
||||
"assets_added_to_album_count": "{count, plural, one {# üksus} other {# üksust}} albumisse lisatud",
|
||||
"assets_added_to_album_partial_count": "{successCount}/{totalCount} {totalCount, plural, one {üksus} other {üksust}} lisatud albumisse",
|
||||
"assets_added_to_albums_count": "{assetTotal, plural, one {# üksus} other {# üksust}} lisatud {albumTotal, plural, one {# albumisse} other {# albumisse}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Üksust} other {Üksuseid}} ei saa albumisse lisada",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Üksust} other {Üksuseid}} ei saa lisada ühtegi albumisse",
|
||||
@@ -809,6 +792,7 @@
|
||||
"custom_date": "Muu kuupäev",
|
||||
"custom_locale": "Kohandatud lokaat",
|
||||
"custom_locale_description": "Vorminda kuupäevad, kellaajad ja arvud vastavalt valitud keelele ja regioonile",
|
||||
"custom_url": "Kohandatud URL",
|
||||
"cutoff_date_description": "Jäta alles fotod ja videod viimasest…",
|
||||
"cutoff_day": "{count, plural, one {päev} other {päeva}}",
|
||||
"cutoff_year": "{count, plural, one {aasta} other {aastat}}",
|
||||
@@ -1469,7 +1453,6 @@
|
||||
"never": "Mitte kunagi",
|
||||
"new_album": "Uus album",
|
||||
"new_api_key": "Uus API võti",
|
||||
"new_feature": "Uus funktsionaalsus",
|
||||
"new_password": "Uus parool",
|
||||
"new_person": "Uus isik",
|
||||
"new_pin_code": "Uus PIN-kood",
|
||||
@@ -1530,8 +1513,6 @@
|
||||
"obtainium_configurator": "Obtainiumi seadistamine",
|
||||
"obtainium_configurator_instructions": "Androidi rakenduse otse GitHub'ist paigaldamiseks ja uuendamiseks kasuta Obtainiumit. Seadistamise lingi loomiseks lisa API võti ja vali rakenduse variant",
|
||||
"ocr": "OCR",
|
||||
"ocr_body": "Immich loeb nüüd teksti sinu fotodel, nii et saad selle järgi neid otsida.",
|
||||
"ocr_title": "Otsi teksti oma fotodel",
|
||||
"official_immich_resources": "Ametlikud Immich'i ressursid",
|
||||
"offline": "Ühendus puudub",
|
||||
"offset": "Nihe",
|
||||
@@ -1550,8 +1531,6 @@
|
||||
"open": "Ava",
|
||||
"open_calendar": "Ava kalender",
|
||||
"open_in_browser": "Ava brauseris",
|
||||
"open_in_immich_body": "Sea Immich oma Androidi galeriirakenduseks, et fotosid otse teistest rakendustest avada.",
|
||||
"open_in_immich_title": "Ava fotod Immich'is",
|
||||
"open_in_map_view": "Ava kaardi vaates",
|
||||
"open_in_openstreetmap": "Ava OpenStreetMap",
|
||||
"open_the_search_filters": "Ava otsingufiltrid",
|
||||
@@ -1609,7 +1588,7 @@
|
||||
"person": "Isik",
|
||||
"person_age_months": "{months, plural, one {# kuu} other {# kuud}} vana",
|
||||
"person_age_year_months": "1 aasta {months, plural, one {# kuu} other {# kuud}} vana",
|
||||
"person_age_years": "{years, plural, one {# aasta} other {# aastat}} vana",
|
||||
"person_age_years": "{years, plural, other {# aastat}} vana",
|
||||
"person_birthdate": "Sündinud {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (peidetud)} other {}}",
|
||||
"person_recognized": "Isik tuvastatud",
|
||||
@@ -1709,9 +1688,7 @@
|
||||
"recent": "Hiljutine",
|
||||
"recent_searches": "Hiljutised otsingud",
|
||||
"recently_added": "Hiljuti lisatud",
|
||||
"recently_added_description": "Sirvi oma üksuseid sorteerituna Immich'isse üleslaadimise järgi",
|
||||
"recently_added_page_title": "Hiljuti lisatud",
|
||||
"recently_added_title": "Hiljuti lisatud",
|
||||
"recently_taken": "Hiljuti tehtud",
|
||||
"refresh": "Värskenda",
|
||||
"refresh_encoded_videos": "Värskenda kodeeritud videod",
|
||||
@@ -1918,8 +1895,6 @@
|
||||
"share_link": "Jaga linki",
|
||||
"share_original": "Kasuta algset (suur)",
|
||||
"share_preview": "Kasuta pisipilti (väike)",
|
||||
"share_quality_body": "Vajuta ja hoia jagamise nuppu, et valida enne jagamist pildifaili kvaliteet.",
|
||||
"share_quality_title": "Vali jagamise kvaliteet",
|
||||
"shared": "Jagatud",
|
||||
"shared_album_activities_input_disable": "Kommentaarid on keelatud",
|
||||
"shared_album_activity_remove_content": "Kas soovid selle tegevuse kustutada?",
|
||||
@@ -2001,7 +1976,6 @@
|
||||
"sign_out": "Logi välja",
|
||||
"sign_up": "Registreeru",
|
||||
"size": "Suurus",
|
||||
"skip": "Jäta vahele",
|
||||
"skip_to_content": "Sisu juurde",
|
||||
"skip_to_folders": "Kaustade juurde",
|
||||
"skip_to_tags": "Siltide juurde",
|
||||
@@ -2012,7 +1986,6 @@
|
||||
"slideshow_repeat": "Korda slaidiesitlust",
|
||||
"slideshow_repeat_description": "Mine slaidiesitluse lõppedes tagasi algusesse",
|
||||
"slideshow_settings": "Slaidiesitluse seaded",
|
||||
"slideshow_title": "Slaidiesitlus",
|
||||
"smart_album": "Nutikas album",
|
||||
"some_assets_already_have_a_location_warning": "Osadel valitud üksustest on juba asukoht määratud",
|
||||
"sort_albums_by": "Järjesta albumid...",
|
||||
@@ -2140,7 +2113,6 @@
|
||||
"unknown": "Teadmata",
|
||||
"unknown_country": "Tundmatu riik",
|
||||
"unknown_date": "Tundmatu kuupäev",
|
||||
"unknown_schema": "Tundmatu skeem",
|
||||
"unknown_year": "Teadmata aasta",
|
||||
"unlimited": "Piiramatu",
|
||||
"unlink_motion_video": "Tühista liikuva video linkimine",
|
||||
@@ -2176,8 +2148,6 @@
|
||||
"upload_status_errors": "Vead",
|
||||
"upload_status_uploaded": "Üleslaaditud",
|
||||
"upload_success": "Üleslaadimine õnnestus, uute üksuste nägemiseks värskenda lehte.",
|
||||
"upload_to_album_body": "Kui sa ei kasuta käsitsi üleslaadimise funktsionaalsust, saad nüüd fotode üleslaadimisel need otse albumisse lisada, pole vaja kõigepealt üles laadida ja seejärel albumisse lisada.",
|
||||
"upload_to_album_title": "Laadi üles otse albumisse",
|
||||
"upload_to_immich": "Laadi Immich'isse ({count})",
|
||||
"uploading": "Üleslaadimine",
|
||||
"uploading_media": "Üksuste üleslaadimine",
|
||||
@@ -2245,9 +2215,6 @@
|
||||
"week": "Nädal",
|
||||
"welcome": "Tere tulemast",
|
||||
"welcome_to_immich": "Tere tulemast Immich'isse",
|
||||
"whats_new": "Mis on uut",
|
||||
"whats_new_settings_subtitle": "Vaata, mis on Immich'is uut",
|
||||
"whats_new_version": "Versioon {version}",
|
||||
"width": "Laius",
|
||||
"wifi_name": "WiFi-võrgu nimi",
|
||||
"workflow": "Töövoog",
|
||||
|
||||
47
i18n/eu.json
47
i18n/eu.json
@@ -108,21 +108,6 @@
|
||||
"image_thumbnail_quality_description": "Miniaturaren kalitatea 1-100. Handia hobea da, baina fitxategi handiagoak sortzen ditu eta aplikazioen jariakortasuna murriztu dezake.",
|
||||
"image_thumbnail_title": "Argazki Txikien Konfigurazioa",
|
||||
"import_config_from_json_description": "Inportatu sistema konfigurazioa JSON konfigurazio fitxategia kargatuz",
|
||||
"integrity_checks_checksum_files": "Egiaztapeneko baturen fitxategiak",
|
||||
"integrity_checks_checksum_files_description": "Egiaztapeneko baturen egiaztapena kudeatu",
|
||||
"integrity_checks_checksum_files_enable_description": "Egiaztapeneko baturen egiaztapena gaitu",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Ehunekoaren muga",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Konfiguratu gehienezko ehunekoa 0,01 eta 1 arteko egiaztapeneko baturak tarte bakoitzean zenbateraino exekutatu behar duen.",
|
||||
"integrity_checks_checksum_files_time_limit": "Denbora muga",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Konfiguratu egiaztapeneko baturak tarte bakoitzean exekutatu behar duen gehienezko iraupena. (ms)",
|
||||
"integrity_checks_missing_files": "Falta diren fitxategiak",
|
||||
"integrity_checks_missing_files_description": "Konfiguratu maiztasuna eta gaitu edo desgaitu falta diren fitxategien egiaztapena",
|
||||
"integrity_checks_missing_files_enable_description": "Gaitu falta diren fitxategien egiaztapena",
|
||||
"integrity_checks_settings": "Osotasun egiaztapenak",
|
||||
"integrity_checks_settings_description": "Kudeatu osotasuna egiaztatzeko tarteak",
|
||||
"integrity_checks_untracked_files": "Jarraitu gabeko fitxategiak",
|
||||
"integrity_checks_untracked_files_description": "Konfiguratu maiztasuna eta gaitu edo desgaitu jarraitu gabeko fitxategien egiaztapena",
|
||||
"integrity_checks_untracked_files_enable_description": "Gaitu jarraitu gabeko fitxategien egiaztapena",
|
||||
"job_concurrency": "{job} konkurrentzia",
|
||||
"job_created": "Zeregina sortuta",
|
||||
"job_not_concurrency_safe": "Ataza hau ez da segurua aldiberekotasunerako.",
|
||||
@@ -431,10 +416,6 @@
|
||||
"transcoding_realtime_description": "Bideoa erreproduzitzen ari den heinean transkodetzea denbora errealean egiteko aukera ematen du. Kalitate aldaketa gaitzen du, baina zerbitzariaren gaitasunen arabera erreprodukzio-latentzia eta toteltze handiagoak sor ditzake.",
|
||||
"transcoding_realtime_enabled": "Gaitu denbora errealeko transkodeketa",
|
||||
"transcoding_realtime_enabled_description": "Desgaituta badago, zerbitzariak uko egingo dio denbora errealeko transkodetze saio berriei.",
|
||||
"transcoding_realtime_resolutions": "Bereizmenak",
|
||||
"transcoding_realtime_resolutions_description": "Denbora errealean transkodetzeko eskaintzen diren bereizmenak. Bereizmen handiagoek erreprodukzio-arazoak sor ditzakete zerbitzariak ezin baditu behar bezain azkar transkodetzen.",
|
||||
"transcoding_realtime_video_codecs": "Bideo kodetzaileak",
|
||||
"transcoding_realtime_video_codecs_description": "Denbora errealean transkodetzeko eskaintzen diren bideo-kodetzaileak. Erreprodukzioan onartzen duten aukerarik onena aukeratuko dute bezeroek. AV1 HEVC baino eraginkorragoa da, baita H.264 baino eraginkorragoa. Hardware-azelerazioa erabiltzean, hautatu azeleragailuak kode ditzakeen kodetzaileak soilik. Software transkodeketa erabiltzean, kontuan izan H.264 AV1 baino azkarragoa dela, baita HEVC baino azkarragoa.",
|
||||
"transcoding_reference_frames": "Erreferentzia fotogramak",
|
||||
"transcoding_reference_frames_description": "Forograma jakin bat konprimitzean erreferentzia beharreko fotograma kopurua. Balio altuagoek konpresioaren eraginkortasuna hobetzen dute, baina kodeketa moteltzen dute. 0-k balio hau automatikoki ezartzen du.",
|
||||
"transcoding_required_description": "Onartutako formatu batean ez dauden bideoak bakarrik",
|
||||
@@ -562,11 +543,11 @@
|
||||
"app_update_available": "Aplikazioaren eguneratzea eskuragarri dago",
|
||||
"appears_in": "Hemen agertzen da",
|
||||
"apply_count": "Ezarri ({count, number})",
|
||||
"archive": "Artxibategia",
|
||||
"archive": "Artxibo",
|
||||
"archive_action_prompt": "{count} artxibategira bidalita",
|
||||
"archive_or_unarchive_photo": "Argazkia artxibatu edo berrezarri",
|
||||
"archive_size": "Fitxategi konprimatuaren tamaina",
|
||||
"archive_size_description": "Konfiguratu konprimitatutako fitxategiaren tamaina deskargak egiteko (GiB-tan)",
|
||||
"archive_size": "Artxibo tamaina",
|
||||
"archive_size_description": "Konfiguratu artxiboaren tamaina deskargak egiteko (GiB-tan)",
|
||||
"archived": "Artxibatua",
|
||||
"archived_count": "{count, plural, one {artxibatu bat} other {# artxibatu}}",
|
||||
"are_these_the_same_person": "Pertsona bera al dira hauek?",
|
||||
@@ -597,7 +578,6 @@
|
||||
"asset_viewer_settings_title": "Baliabide ikuslea",
|
||||
"assets": "Baliabideak",
|
||||
"assets_added_to_album_count": "{count, plural, one {Baliabide bat} other {# baliabide}} albumera gehituta",
|
||||
"assets_added_to_album_partial_count": "{totalCount, number}-(e)tik baliabide {successCount, number, plural, one {bat gehitu da albumera} other {# gehitu dira albumera}}",
|
||||
"assets_added_to_albums_count": "Gehituta {assetTotal, plural, one {# asset} other {# assets}} to {albumTotal, plural, one {# album} other {# albums}}",
|
||||
"assets_cannot_be_added_to_album_count": "{count, plural, one {Baliabidea ezin izan da albumera gehitu} other {Baliabideak ezin izan dira albumera gehitu}}",
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {Asset} other {Assets}} ezin izan da albumetara gehitu",
|
||||
@@ -814,6 +794,7 @@
|
||||
"custom_date": "Data pertsonalizatua",
|
||||
"custom_locale": "Lokalizazio pertsonalizatua",
|
||||
"custom_locale_description": "Formateatu datak, orduak eta zenbakiak hautatutako hizkuntza eta eskualdearen arabera",
|
||||
"custom_url": "URL pertsonalizatua",
|
||||
"cutoff_date_description": "Mantendu epe honetan sartzen diren argazkiak…",
|
||||
"cutoff_day": "{count, plural, one {egun} other {egun}}",
|
||||
"cutoff_year": "{count, plural, one {urte} other {urte}}",
|
||||
@@ -1324,7 +1305,7 @@
|
||||
"login_form_password_hint": "pasahitza",
|
||||
"login_form_server_empty": "Zerbitzari URL bat sartu",
|
||||
"login_form_server_error": "Ezin izan da zerbitzarira konektatu",
|
||||
"login_has_been_disabled": "Saioa hastea desgaitu da",
|
||||
"login_has_been_disabled": "Saioa hastea desgaitu da.",
|
||||
"login_password_changed_error": "Errore bat gertatu da pasahitza eguneratzean",
|
||||
"login_password_changed_success": "Pasahitza arrakastaz eguneratu",
|
||||
"logout_all_device_confirmation": "Ziur zaude gailu guztietan saioa amaitu nahi duzula?",
|
||||
@@ -1480,7 +1461,6 @@
|
||||
"never": "Inoiz ez",
|
||||
"new_album": "Album berria",
|
||||
"new_api_key": "API gako berria",
|
||||
"new_feature": "Ezaugarri berria",
|
||||
"new_password": "Pasahitz berria",
|
||||
"new_person": "Pertsona berria",
|
||||
"new_pin_code": "PIN gako berria",
|
||||
@@ -1541,8 +1521,6 @@
|
||||
"obtainium_configurator": "Obtainium kudeatzailea",
|
||||
"obtainium_configurator_instructions": "Erabili Obtainium Immich GitHub-en bertsiotik zuzenean Android aplikazioa instalatzeko eta eguneratzeko. Sortu API gako bat eta hautatu aldaera bat zure Obtainium konfigurazio esteka sortzeko",
|
||||
"ocr": "OCR",
|
||||
"ocr_body": "Immichek orain zure argazkien barruan dagoen testua irakurtzen du, haiek esaten dutenaren arabera bilatu ahal izateko.",
|
||||
"ocr_title": "Bilatu testua zure argazkietan",
|
||||
"official_immich_resources": "Immich-en baliabide ofizialak",
|
||||
"offline": "Lineaz kanpo",
|
||||
"offset": "Desbiderapena",
|
||||
@@ -1561,8 +1539,6 @@
|
||||
"open": "Zabalik",
|
||||
"open_calendar": "Egutegia zabaldu",
|
||||
"open_in_browser": "Arakatzailean zabaldu",
|
||||
"open_in_immich_body": "Ezarri Immich zure galeria gisa Android-en argazkiak zuzenean irekitzeko beste aplikazioetatik.",
|
||||
"open_in_immich_title": "Ireki argazkiak Immich-en",
|
||||
"open_in_map_view": "Ireki maparen ikuspegian",
|
||||
"open_in_openstreetmap": "OpenStreetMap-en zabaldu",
|
||||
"open_the_search_filters": "Bilaketa-iragazkiak ireki",
|
||||
@@ -1618,9 +1594,9 @@
|
||||
"permission": "Baimena",
|
||||
"permission_empty": "Zure baimenak ez du hutsik egon behar",
|
||||
"person": "Pertsona",
|
||||
"person_age_months": "Duela {months, plural, one {hilabete bat} other {# hilabete}}",
|
||||
"person_age_months": "Orain dela {months, plural, one {hilabete bat} other {# hilabete}}",
|
||||
"person_age_year_months": "Urte bat eta {months, plural, one {hilabete bat} other {# hilabete}}",
|
||||
"person_age_years": "{years, plural, one{Urte bat} other {# urte}}",
|
||||
"person_age_years": "Adina: {years, plural, other {# urte}}",
|
||||
"person_birthdate": "{date} -(a)n jaiota",
|
||||
"person_hidden": "{name}{hidden, select, true { (ezkutatuta)} other {}}",
|
||||
"person_recognized": "Pertsona ezagutua",
|
||||
@@ -1721,10 +1697,7 @@
|
||||
"recent": "Berria",
|
||||
"recent_searches": "Duela gutxiko bilaketak",
|
||||
"recently_added": "Duela gutxi gehitutakoak",
|
||||
"recently_added_body": "Joan zuzenean azkenaldian gehitu duzun guztiari eskainitako orrialde batean.",
|
||||
"recently_added_description": "Arakatu zure fitxategiak Immich-en kargatzeko dataren arabera ordenatuta",
|
||||
"recently_added_page_title": "Duela gutxi gehitutakoak",
|
||||
"recently_added_title": "Duela gutxi gehituta",
|
||||
"recently_taken": "Duela gutxi ateratakoak",
|
||||
"refresh": "Freskatu",
|
||||
"refresh_encoded_videos": "Kodetutako bideoak freskatu",
|
||||
@@ -1931,8 +1904,6 @@
|
||||
"share_link": "Esteka partekatu",
|
||||
"share_original": "Jatorrizkoa erabili (handia)",
|
||||
"share_preview": "Miniatura erabili (txikia)",
|
||||
"share_quality_body": "Eduki sakatuta partekatzeko botoia partekatu aurretik irudiaren kalitatea aukeratzeko.",
|
||||
"share_quality_title": "Aukeratu zure partekatzeko kalitatea",
|
||||
"shared": "Partekatuta",
|
||||
"shared_album_activities_input_disable": "Iruzkinak desgaituta daude",
|
||||
"shared_album_activity_remove_content": "Jarduera hau ezabatu nahi duzu?",
|
||||
@@ -2142,7 +2113,7 @@
|
||||
"unable_to_check_version": "Ezin da egiaztatu aplikazioaren edo zerbitzariaren bertsioa",
|
||||
"unable_to_setup_pin_code": "Ezin izan da PIN kodea ezarri",
|
||||
"unarchive": "Desartxibatu",
|
||||
"unarchive_action_prompt": "{count, plural, one {Artxibotik kendu da} other {# artxibotik kendu dira}}",
|
||||
"unarchive_action_prompt": "{count} artxibotik kendu dira",
|
||||
"unarchived_count": "{count, plural, one {Artxibatu gabeko bat} other {# artxibatu gabeko}}",
|
||||
"undo": "Desegin",
|
||||
"unfavorite": "Gogokoetatik kendu",
|
||||
@@ -2273,7 +2244,7 @@
|
||||
"wrong_pin_code": "PIN kode okerra",
|
||||
"x_of_total": "{total}-(e)tik {x}",
|
||||
"year": "Urtea",
|
||||
"years_ago": "Duela {years, plural, one {urte bat} other {# urte}}",
|
||||
"years_ago": "Orain dela {years, plural, one {urte bat} other {# urte}}",
|
||||
"yes": "Bai",
|
||||
"you_dont_have_any_shared_links": "Ez duzu partekatutako estekarik",
|
||||
"your_wifi_name": "Zure Wi-Fi izena",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user