Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 04ce6b3bcb | |||
| fc921fbe9f | |||
| f588a609d9 | |||
| 1496627551 |
@@ -1,4 +1,4 @@
|
|||||||
ARG BASEIMAGE=mcr.microsoft.com/devcontainers/typescript-node:22@sha256:a20b8a3538313487ac9266875bbf733e544c1aa2091df2bb99ab592a6d4f7399
|
ARG BASEIMAGE=mcr.microsoft.com/devcontainers/typescript-node:22@sha256:9791f4aa527774bc370c6bd2f6705ce5a686f1e6f204badd8dfaacce28c631ae
|
||||||
FROM ${BASEIMAGE}
|
FROM ${BASEIMAGE}
|
||||||
|
|
||||||
# Flutter SDK
|
# Flutter SDK
|
||||||
|
|||||||
@@ -6,9 +6,6 @@ mobile/openapi/**/*.dart linguist-generated=true
|
|||||||
mobile/lib/**/*.g.dart -diff -merge
|
mobile/lib/**/*.g.dart -diff -merge
|
||||||
mobile/lib/**/*.g.dart linguist-generated=true
|
mobile/lib/**/*.g.dart linguist-generated=true
|
||||||
|
|
||||||
mobile/lib/**/*.drift.dart -diff -merge
|
|
||||||
mobile/lib/**/*.drift.dart linguist-generated=true
|
|
||||||
|
|
||||||
open-api/typescript-sdk/fetch-client.ts -diff -merge
|
open-api/typescript-sdk/fetch-client.ts -diff -merge
|
||||||
open-api/typescript-sdk/fetch-client.ts linguist-generated=true
|
open-api/typescript-sdk/fetch-client.ts linguist-generated=true
|
||||||
|
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
22.14.0
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
title: '[Feature] feature-name-goes-here'
|
title: "[Feature] feature-name-goes-here"
|
||||||
labels: ['feature']
|
labels: ["feature"]
|
||||||
|
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
@@ -13,7 +13,7 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
label: I have searched the existing feature requests, both open and closed, to make sure this is not a duplicate request.
|
label: I have searched the existing feature requests, both open and closed, to make sure this is not a duplicate request.
|
||||||
options:
|
options:
|
||||||
- label: 'Yes'
|
- label: "Yes"
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ body:
|
|||||||
attributes:
|
attributes:
|
||||||
label: I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.
|
label: I have searched the existing issues, both open and closed, to make sure this is not a duplicate report.
|
||||||
options:
|
options:
|
||||||
- label: 'Yes'
|
- label: "Yes"
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
- type: markdown
|
- type: markdown
|
||||||
@@ -84,7 +84,7 @@ body:
|
|||||||
id: repro
|
id: repro
|
||||||
attributes:
|
attributes:
|
||||||
label: Reproduction steps
|
label: Reproduction steps
|
||||||
description: 'How do you trigger this bug? Please walk us through it step by step.'
|
description: "How do you trigger this bug? Please walk us through it step by step."
|
||||||
value: |
|
value: |
|
||||||
1.
|
1.
|
||||||
2.
|
2.
|
||||||
@@ -97,8 +97,7 @@ body:
|
|||||||
id: logs
|
id: logs
|
||||||
attributes:
|
attributes:
|
||||||
label: Relevant log output
|
label: Relevant log output
|
||||||
description:
|
description: Please copy and paste any relevant logs below. (code formatting is
|
||||||
Please copy and paste any relevant logs below. (code formatting is
|
|
||||||
enabled, no need for backticks)
|
enabled, no need for backticks)
|
||||||
render: shell
|
render: shell
|
||||||
validations:
|
validations:
|
||||||
|
|||||||
Generated
-28
@@ -1,28 +0,0 @@
|
|||||||
{
|
|
||||||
"name": ".github",
|
|
||||||
"lockfileVersion": 3,
|
|
||||||
"requires": true,
|
|
||||||
"packages": {
|
|
||||||
"": {
|
|
||||||
"devDependencies": {
|
|
||||||
"prettier": "^3.5.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/prettier": {
|
|
||||||
"version": "3.5.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
|
|
||||||
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
|
||||||
"prettier": "bin/prettier.cjs"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=14"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"scripts": {
|
|
||||||
"format": "prettier --check .",
|
|
||||||
"format:fix": "prettier --write ."
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"prettier": "^3.5.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -22,9 +22,9 @@ jobs:
|
|||||||
should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
mobile:
|
mobile:
|
||||||
@@ -51,18 +51,18 @@ jobs:
|
|||||||
ref="${input_ref:-$github_ref}"
|
ref="${input_ref:-$github_ref}"
|
||||||
echo "ref=$ref" >> $GITHUB_OUTPUT
|
echo "ref=$ref" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ steps.get-ref.outputs.ref }}
|
ref: ${{ steps.get-ref.outputs.ref }}
|
||||||
|
|
||||||
- uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4
|
- uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
cache: 'gradle'
|
cache: 'gradle'
|
||||||
|
|
||||||
- name: Setup Flutter SDK
|
- name: Setup Flutter SDK
|
||||||
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2
|
uses: subosito/flutter-action@v2
|
||||||
with:
|
with:
|
||||||
channel: 'stable'
|
channel: 'stable'
|
||||||
flutter-version-file: ./mobile/pubspec.yaml
|
flutter-version-file: ./mobile/pubspec.yaml
|
||||||
@@ -89,7 +89,7 @@ jobs:
|
|||||||
flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64,android-x64
|
flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64,android-x64
|
||||||
|
|
||||||
- name: Publish Android Artifact
|
- name: Publish Android Artifact
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: release-apk-signed
|
name: release-apk-signed
|
||||||
path: mobile/build/app/outputs/flutter-apk/*.apk
|
path: mobile/build/app/outputs/flutter-apk/*.apk
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ on:
|
|||||||
- 'cli/**'
|
- 'cli/**'
|
||||||
- '.github/workflows/cli.yml'
|
- '.github/workflows/cli.yml'
|
||||||
pull_request:
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
paths:
|
paths:
|
||||||
- 'cli/**'
|
- 'cli/**'
|
||||||
- '.github/workflows/cli.yml'
|
- '.github/workflows/cli.yml'
|
||||||
@@ -28,9 +29,9 @@ jobs:
|
|||||||
working-directory: ./cli
|
working-directory: ./cli
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
# Setup .npmrc file to publish to npm
|
# Setup .npmrc file to publish to npm
|
||||||
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './cli/.nvmrc'
|
node-version-file: './cli/.nvmrc'
|
||||||
registry-url: 'https://registry.npmjs.org'
|
registry-url: 'https://registry.npmjs.org'
|
||||||
@@ -52,16 +53,16 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
|
uses: docker/setup-qemu-action@v3.6.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
uses: docker/setup-buildx-action@v3.10.0
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
if: ${{ !github.event.pull_request.head.repo.fork }}
|
if: ${{ !github.event.pull_request.head.repo.fork }}
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
@@ -76,7 +77,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Generate docker image tags
|
- name: Generate docker image tags
|
||||||
id: metadata
|
id: metadata
|
||||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
|
uses: docker/metadata-action@v5
|
||||||
with:
|
with:
|
||||||
flavor: |
|
flavor: |
|
||||||
latest=false
|
latest=false
|
||||||
@@ -87,7 +88,7 @@ jobs:
|
|||||||
type=raw,value=latest,enable=${{ github.event_name == 'release' }}
|
type=raw,value=latest,enable=${{ github.event_name == 'release' }}
|
||||||
|
|
||||||
- name: Build and push image
|
- name: Build and push image
|
||||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
uses: docker/build-push-action@v6.15.0
|
||||||
with:
|
with:
|
||||||
file: cli/Dockerfile
|
file: cli/Dockerfile
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
|
|||||||
@@ -9,14 +9,14 @@
|
|||||||
# the `language` matrix defined below to confirm you have the correct set of
|
# the `language` matrix defined below to confirm you have the correct set of
|
||||||
# supported CodeQL languages.
|
# supported CodeQL languages.
|
||||||
#
|
#
|
||||||
name: 'CodeQL'
|
name: "CodeQL"
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: ['main']
|
branches: [ "main" ]
|
||||||
pull_request:
|
pull_request:
|
||||||
# The branches below must be a subset of the branches above
|
# The branches below must be a subset of the branches above
|
||||||
branches: ['main']
|
branches: [ "main" ]
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '20 13 * * 1'
|
- cron: '20 13 * * 1'
|
||||||
|
|
||||||
@@ -36,42 +36,43 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
language: ['javascript', 'python']
|
language: [ 'javascript', 'python' ]
|
||||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@45775bd8235c68ba998cffa5171334d58593da47 # v3
|
uses: github/codeql-action/init@v3
|
||||||
with:
|
with:
|
||||||
languages: ${{ matrix.language }}
|
languages: ${{ matrix.language }}
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
# By default, queries listed here will override any specified in a config file.
|
# By default, queries listed here will override any specified in a config file.
|
||||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||||
|
|
||||||
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||||
# queries: security-extended,security-and-quality
|
# queries: security-extended,security-and-quality
|
||||||
|
|
||||||
# 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@45775bd8235c68ba998cffa5171334d58593da47 # v3
|
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v3
|
||||||
|
|
||||||
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||||
|
|
||||||
# - run: |
|
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
||||||
# echo "Run, Build Application using script"
|
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
||||||
# ./location_of_script_within_repo/buildscript.sh
|
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
# - run: |
|
||||||
uses: github/codeql-action/analyze@45775bd8235c68ba998cffa5171334d58593da47 # v3
|
# echo "Run, Build Application using script"
|
||||||
with:
|
# ./location_of_script_within_repo/buildscript.sh
|
||||||
category: '/language:${{matrix.language}}'
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v3
|
||||||
|
with:
|
||||||
|
category: "/language:${{matrix.language}}"
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ jobs:
|
|||||||
should_run_ml: ${{ steps.found_paths.outputs.machine-learning == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run_ml: ${{ steps.found_paths.outputs.machine-learning == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
server:
|
server:
|
||||||
@@ -49,23 +49,23 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
suffix: ['', '-cuda', '-rocm', '-openvino', '-armnn', '-rknn']
|
suffix: ["", "-cuda", "-openvino", "-armnn"]
|
||||||
steps:
|
steps:
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Re-tag image
|
- name: Re-tag image
|
||||||
run: |
|
run: |
|
||||||
REGISTRY_NAME="ghcr.io"
|
REGISTRY_NAME="ghcr.io"
|
||||||
REPOSITORY=${{ github.repository_owner }}/immich-machine-learning
|
REPOSITORY=${{ github.repository_owner }}/immich-machine-learning
|
||||||
TAG_OLD=main${{ matrix.suffix }}
|
TAG_OLD=main${{ matrix.suffix }}
|
||||||
TAG_PR=${{ github.event.number == 0 && github.ref_name || format('pr-{0}', github.event.number) }}${{ matrix.suffix }}
|
TAG_PR=${{ github.event.number == 0 && github.ref_name || format('pr-{0}', github.event.number) }}${{ matrix.suffix }}
|
||||||
TAG_COMMIT=commit-${{ github.event_name != 'pull_request' && github.sha || github.event.pull_request.head.sha }}${{ matrix.suffix }}
|
TAG_COMMIT=commit-${{ github.event_name != 'pull_request' && github.sha || github.event.pull_request.head.sha }}${{ matrix.suffix }}
|
||||||
docker buildx imagetools create -t $REGISTRY_NAME/$REPOSITORY:$TAG_PR $REGISTRY_NAME/$REPOSITORY:$TAG_OLD
|
docker buildx imagetools create -t $REGISTRY_NAME/$REPOSITORY:$TAG_PR $REGISTRY_NAME/$REPOSITORY:$TAG_OLD
|
||||||
docker buildx imagetools create -t $REGISTRY_NAME/$REPOSITORY:$TAG_COMMIT $REGISTRY_NAME/$REPOSITORY:$TAG_OLD
|
docker buildx imagetools create -t $REGISTRY_NAME/$REPOSITORY:$TAG_COMMIT $REGISTRY_NAME/$REPOSITORY:$TAG_OLD
|
||||||
|
|
||||||
retag_server:
|
retag_server:
|
||||||
name: Re-Tag Server
|
name: Re-Tag Server
|
||||||
@@ -74,10 +74,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
suffix: ['']
|
suffix: [""]
|
||||||
steps:
|
steps:
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
@@ -120,11 +120,6 @@ jobs:
|
|||||||
device: cuda
|
device: cuda
|
||||||
suffix: -cuda
|
suffix: -cuda
|
||||||
|
|
||||||
- platform: linux/amd64
|
|
||||||
runner: mich
|
|
||||||
device: rocm
|
|
||||||
suffix: -rocm
|
|
||||||
|
|
||||||
- platform: linux/amd64
|
- platform: linux/amd64
|
||||||
runner: ubuntu-latest
|
runner: ubuntu-latest
|
||||||
device: openvino
|
device: openvino
|
||||||
@@ -135,11 +130,6 @@ jobs:
|
|||||||
device: armnn
|
device: armnn
|
||||||
suffix: -armnn
|
suffix: -armnn
|
||||||
|
|
||||||
- platform: linux/arm64
|
|
||||||
runner: ubuntu-24.04-arm
|
|
||||||
device: rknn
|
|
||||||
suffix: -rknn
|
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Prepare
|
- name: Prepare
|
||||||
run: |
|
run: |
|
||||||
@@ -147,13 +137,13 @@ jobs:
|
|||||||
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
uses: docker/setup-buildx-action@v3.10.0
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
if: ${{ !github.event.pull_request.head.repo.fork }}
|
if: ${{ !github.event.pull_request.head.repo.fork }}
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
@@ -180,7 +170,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push image
|
- name: Build and push image
|
||||||
id: build
|
id: build
|
||||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
uses: docker/build-push-action@v6.15.0
|
||||||
with:
|
with:
|
||||||
context: ${{ env.context }}
|
context: ${{ env.context }}
|
||||||
file: ${{ env.file }}
|
file: ${{ env.file }}
|
||||||
@@ -205,7 +195,7 @@ jobs:
|
|||||||
touch "${{ runner.temp }}/digests/${digest#sha256:}"
|
touch "${{ runner.temp }}/digests/${digest#sha256:}"
|
||||||
|
|
||||||
- name: Upload digest
|
- name: Upload digest
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ml-digests-${{ matrix.device }}-${{ env.PLATFORM_PAIR }}
|
name: ml-digests-${{ matrix.device }}-${{ env.PLATFORM_PAIR }}
|
||||||
path: ${{ runner.temp }}/digests/*
|
path: ${{ runner.temp }}/digests/*
|
||||||
@@ -225,19 +215,15 @@ jobs:
|
|||||||
- device: cpu
|
- device: cpu
|
||||||
- device: cuda
|
- device: cuda
|
||||||
suffix: -cuda
|
suffix: -cuda
|
||||||
- device: rocm
|
|
||||||
suffix: -rocm
|
|
||||||
- device: openvino
|
- device: openvino
|
||||||
suffix: -openvino
|
suffix: -openvino
|
||||||
- device: armnn
|
- device: armnn
|
||||||
suffix: -armnn
|
suffix: -armnn
|
||||||
- device: rknn
|
|
||||||
suffix: -rknn
|
|
||||||
needs:
|
needs:
|
||||||
- build_and_push_ml
|
- build_and_push_ml
|
||||||
steps:
|
steps:
|
||||||
- name: Download digests
|
- name: Download digests
|
||||||
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
path: ${{ runner.temp }}/digests
|
path: ${{ runner.temp }}/digests
|
||||||
pattern: ml-digests-${{ matrix.device }}-*
|
pattern: ml-digests-${{ matrix.device }}-*
|
||||||
@@ -245,26 +231,26 @@ jobs:
|
|||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
if: ${{ github.event_name == 'release' }}
|
if: ${{ github.event_name == 'release' }}
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Login to GHCR
|
- name: Login to GHCR
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: Generate docker image tags
|
- name: Generate docker image tags
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
|
uses: docker/metadata-action@v5
|
||||||
env:
|
env:
|
||||||
DOCKER_METADATA_PR_HEAD_SHA: 'true'
|
DOCKER_METADATA_PR_HEAD_SHA: "true"
|
||||||
with:
|
with:
|
||||||
flavor: |
|
flavor: |
|
||||||
# Disable latest tag
|
# Disable latest tag
|
||||||
@@ -315,13 +301,13 @@ jobs:
|
|||||||
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
if: ${{ !github.event.pull_request.head.repo.fork }}
|
if: ${{ !github.event.pull_request.head.repo.fork }}
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
@@ -348,7 +334,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Build and push image
|
- name: Build and push image
|
||||||
id: build
|
id: build
|
||||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
uses: docker/build-push-action@v6.15.0
|
||||||
with:
|
with:
|
||||||
context: ${{ env.context }}
|
context: ${{ env.context }}
|
||||||
file: ${{ env.file }}
|
file: ${{ env.file }}
|
||||||
@@ -373,7 +359,7 @@ jobs:
|
|||||||
touch "${{ runner.temp }}/digests/${digest#sha256:}"
|
touch "${{ runner.temp }}/digests/${digest#sha256:}"
|
||||||
|
|
||||||
- name: Upload digest
|
- name: Upload digest
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: server-digests-${{ env.PLATFORM_PAIR }}
|
name: server-digests-${{ env.PLATFORM_PAIR }}
|
||||||
path: ${{ runner.temp }}/digests/*
|
path: ${{ runner.temp }}/digests/*
|
||||||
@@ -391,7 +377,7 @@ jobs:
|
|||||||
- build_and_push_server
|
- build_and_push_server
|
||||||
steps:
|
steps:
|
||||||
- name: Download digests
|
- name: Download digests
|
||||||
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
path: ${{ runner.temp }}/digests
|
path: ${{ runner.temp }}/digests
|
||||||
pattern: server-digests-*
|
pattern: server-digests-*
|
||||||
@@ -399,26 +385,26 @@ jobs:
|
|||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
if: ${{ github.event_name == 'release' }}
|
if: ${{ github.event_name == 'release' }}
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Login to GHCR
|
- name: Login to GHCR
|
||||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
uses: docker/login-action@v3
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
- name: Generate docker image tags
|
- name: Generate docker image tags
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
|
uses: docker/metadata-action@v5
|
||||||
env:
|
env:
|
||||||
DOCKER_METADATA_PR_HEAD_SHA: 'true'
|
DOCKER_METADATA_PR_HEAD_SHA: "true"
|
||||||
with:
|
with:
|
||||||
flavor: |
|
flavor: |
|
||||||
# Disable latest tag
|
# Disable latest tag
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
pull_request:
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
release:
|
release:
|
||||||
types: [published]
|
types: [published]
|
||||||
|
|
||||||
@@ -17,9 +18,9 @@ jobs:
|
|||||||
should_run: ${{ steps.found_paths.outputs.docs == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run: ${{ steps.found_paths.outputs.docs == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
docs:
|
docs:
|
||||||
@@ -41,10 +42,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './docs/.nvmrc'
|
node-version-file: './docs/.nvmrc'
|
||||||
|
|
||||||
@@ -58,7 +59,7 @@ jobs:
|
|||||||
run: npm run build
|
run: npm run build
|
||||||
|
|
||||||
- name: Upload build output
|
- name: Upload build output
|
||||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docs-build-output
|
name: docs-build-output
|
||||||
path: docs/build/
|
path: docs/build/
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: Docs deploy
|
name: Docs deploy
|
||||||
on:
|
on:
|
||||||
workflow_run:
|
workflow_run:
|
||||||
workflows: ['Docs build']
|
workflows: ["Docs build"]
|
||||||
types:
|
types:
|
||||||
- completed
|
- completed
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ jobs:
|
|||||||
run: echo 'The triggering workflow did not succeed' && exit 1
|
run: echo 'The triggering workflow did not succeed' && exit 1
|
||||||
- name: Get artifact
|
- name: Get artifact
|
||||||
id: get-artifact
|
id: get-artifact
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
||||||
@@ -35,7 +35,7 @@ jobs:
|
|||||||
return { found: true, id: matchArtifact.id };
|
return { found: true, id: matchArtifact.id };
|
||||||
- name: Determine deploy parameters
|
- name: Determine deploy parameters
|
||||||
id: parameters
|
id: parameters
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const eventType = context.payload.workflow_run.event;
|
const eventType = context.payload.workflow_run.event;
|
||||||
@@ -98,11 +98,11 @@ jobs:
|
|||||||
if: ${{ fromJson(needs.checks.outputs.artifact).found && fromJson(needs.checks.outputs.parameters).shouldDeploy }}
|
if: ${{ fromJson(needs.checks.outputs.artifact).found && fromJson(needs.checks.outputs.parameters).shouldDeploy }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Load parameters
|
- name: Load parameters
|
||||||
id: parameters
|
id: parameters
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const json = `${{ needs.checks.outputs.parameters }}`;
|
const json = `${{ needs.checks.outputs.parameters }}`;
|
||||||
@@ -115,7 +115,7 @@ jobs:
|
|||||||
echo "Starting docs deployment for ${{ steps.parameters.outputs.event }} ${{ steps.parameters.outputs.name }}"
|
echo "Starting docs deployment for ${{ steps.parameters.outputs.event }} ${{ steps.parameters.outputs.name }}"
|
||||||
|
|
||||||
- name: Download artifact
|
- name: Download artifact
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
let artifact = ${{ needs.checks.outputs.artifact }};
|
let artifact = ${{ needs.checks.outputs.artifact }};
|
||||||
@@ -138,12 +138,12 @@ jobs:
|
|||||||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
||||||
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
|
uses: gruntwork-io/terragrunt-action@v2
|
||||||
with:
|
with:
|
||||||
tg_version: '0.58.12'
|
tg_version: "0.58.12"
|
||||||
tofu_version: '1.7.1'
|
tofu_version: "1.7.1"
|
||||||
tg_dir: 'deployment/modules/cloudflare/docs'
|
tg_dir: "deployment/modules/cloudflare/docs"
|
||||||
tg_command: 'apply'
|
tg_command: "apply"
|
||||||
|
|
||||||
- name: Deploy Docs Subdomain Output
|
- name: Deploy Docs Subdomain Output
|
||||||
id: docs-output
|
id: docs-output
|
||||||
@@ -153,12 +153,12 @@ jobs:
|
|||||||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
||||||
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
|
uses: gruntwork-io/terragrunt-action@v2
|
||||||
with:
|
with:
|
||||||
tg_version: '0.58.12'
|
tg_version: "0.58.12"
|
||||||
tofu_version: '1.7.1'
|
tofu_version: "1.7.1"
|
||||||
tg_dir: 'deployment/modules/cloudflare/docs'
|
tg_dir: "deployment/modules/cloudflare/docs"
|
||||||
tg_command: 'output -json'
|
tg_command: "output -json"
|
||||||
|
|
||||||
- name: Output Cleaning
|
- name: Output Cleaning
|
||||||
id: clean
|
id: clean
|
||||||
@@ -167,13 +167,13 @@ jobs:
|
|||||||
echo "output=$TG_OUT" >> $GITHUB_OUTPUT
|
echo "output=$TG_OUT" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Publish to Cloudflare Pages
|
- name: Publish to Cloudflare Pages
|
||||||
uses: cloudflare/pages-action@f0a1cd58cd66095dee69bfa18fa5efd1dde93bca # v1
|
uses: cloudflare/pages-action@v1
|
||||||
with:
|
with:
|
||||||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN_PAGES_UPLOAD }}
|
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN_PAGES_UPLOAD }}
|
||||||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
projectName: ${{ fromJson(steps.clean.outputs.output).pages_project_name.value }}
|
projectName: ${{ fromJson(steps.clean.outputs.output).pages_project_name.value }}
|
||||||
workingDirectory: 'docs'
|
workingDirectory: "docs"
|
||||||
directory: 'build'
|
directory: "build"
|
||||||
branch: ${{ steps.parameters.outputs.name }}
|
branch: ${{ steps.parameters.outputs.name }}
|
||||||
wranglerVersion: '3'
|
wranglerVersion: '3'
|
||||||
|
|
||||||
@@ -184,7 +184,7 @@ jobs:
|
|||||||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
||||||
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
|
uses: gruntwork-io/terragrunt-action@v2
|
||||||
with:
|
with:
|
||||||
tg_version: '0.58.12'
|
tg_version: '0.58.12'
|
||||||
tofu_version: '1.7.1'
|
tofu_version: '1.7.1'
|
||||||
@@ -192,7 +192,7 @@ jobs:
|
|||||||
tg_command: 'apply'
|
tg_command: 'apply'
|
||||||
|
|
||||||
- name: Comment
|
- name: Comment
|
||||||
uses: actions-cool/maintain-one-comment@4b2dbf086015f892dcb5e8c1106f5fccd6c1476b # v3
|
uses: actions-cool/maintain-one-comment@v3
|
||||||
if: ${{ steps.parameters.outputs.event == 'pr' }}
|
if: ${{ steps.parameters.outputs.event == 'pr' }}
|
||||||
with:
|
with:
|
||||||
number: ${{ fromJson(needs.checks.outputs.parameters).pr_number }}
|
number: ${{ fromJson(needs.checks.outputs.parameters).pr_number }}
|
||||||
|
|||||||
@@ -9,24 +9,24 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Destroy Docs Subdomain
|
- name: Destroy Docs Subdomain
|
||||||
env:
|
env:
|
||||||
TF_VAR_prefix_name: 'pr-${{ github.event.number }}'
|
TF_VAR_prefix_name: "pr-${{ github.event.number }}"
|
||||||
TF_VAR_prefix_event_type: 'pr'
|
TF_VAR_prefix_event_type: "pr"
|
||||||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
||||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
||||||
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
TF_STATE_POSTGRES_CONN_STR: ${{ secrets.TF_STATE_POSTGRES_CONN_STR }}
|
||||||
uses: gruntwork-io/terragrunt-action@9559e51d05873b0ea467c42bbabcb5c067642ccc # v2
|
uses: gruntwork-io/terragrunt-action@v2
|
||||||
with:
|
with:
|
||||||
tg_version: '0.58.12'
|
tg_version: "0.58.12"
|
||||||
tofu_version: '1.7.1'
|
tofu_version: "1.7.1"
|
||||||
tg_dir: 'deployment/modules/cloudflare/docs'
|
tg_dir: "deployment/modules/cloudflare/docs"
|
||||||
tg_command: 'destroy -refresh=false'
|
tg_command: "destroy -refresh=false"
|
||||||
|
|
||||||
- name: Comment
|
- name: Comment
|
||||||
uses: actions-cool/maintain-one-comment@4b2dbf086015f892dcb5e8c1106f5fccd6c1476b # v3
|
uses: actions-cool/maintain-one-comment@v3
|
||||||
with:
|
with:
|
||||||
number: ${{ github.event.number }}
|
number: ${{ github.event.number }}
|
||||||
delete: true
|
delete: true
|
||||||
|
|||||||
@@ -13,19 +13,19 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Generate a token
|
- name: Generate a token
|
||||||
id: generate-token
|
id: generate-token
|
||||||
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2
|
uses: actions/create-github-app-token@v1
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
||||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||||
|
|
||||||
- name: 'Checkout'
|
- name: 'Checkout'
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ github.event.pull_request.head.ref }}
|
ref: ${{ github.event.pull_request.head.ref }}
|
||||||
token: ${{ steps.generate-token.outputs.token }}
|
token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -33,13 +33,13 @@ jobs:
|
|||||||
run: make install-all && make format-all
|
run: make install-all && make format-all
|
||||||
|
|
||||||
- name: Commit and push
|
- name: Commit and push
|
||||||
uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9
|
uses: EndBug/add-and-commit@v9
|
||||||
with:
|
with:
|
||||||
default_author: github_actions
|
default_author: github_actions
|
||||||
message: 'chore: fix formatting'
|
message: 'chore: fix formatting'
|
||||||
|
|
||||||
- name: Remove label
|
- name: Remove label
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
uses: actions/github-script@v7
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
@@ -49,3 +49,4 @@ jobs:
|
|||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
name: 'fix:formatting'
|
name: 'fix:formatting'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- name: Require PR to have a changelog label
|
- name: Require PR to have a changelog label
|
||||||
uses: mheap/github-action-required-labels@388fd6af37b34cdfe5a23b37060e763217e58b03 # v5
|
uses: mheap/github-action-required-labels@v5
|
||||||
with:
|
with:
|
||||||
mode: exactly
|
mode: exactly
|
||||||
count: 1
|
count: 1
|
||||||
use_regex: true
|
use_regex: true
|
||||||
labels: 'changelog:.*'
|
labels: "changelog:.*"
|
||||||
add_comment: true
|
add_comment: true
|
||||||
message: 'Label error. Requires {{errorString}} {{count}} of: {{ provided }}. Found: {{ applied }}. A maintainer will add the required label.'
|
message: "Label error. Requires {{errorString}} {{count}} of: {{ provided }}. Found: {{ applied }}. A maintainer will add the required label."
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
name: 'Pull Request Labeler'
|
name: "Pull Request Labeler"
|
||||||
on:
|
on:
|
||||||
- pull_request_target
|
- pull_request_target
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
labeler:
|
labeler:
|
||||||
@@ -9,4 +9,4 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5
|
- uses: actions/labeler@v5
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: PR Conventional Commit Validation
|
- name: PR Conventional Commit Validation
|
||||||
uses: ytanikin/PRConventionalCommits@b628c5a234cc32513014b7bfdd1e47b532124d98 # 1.3.0
|
uses: ytanikin/PRConventionalCommits@1.3.0
|
||||||
with:
|
with:
|
||||||
task_types: '["feat","fix","docs","test","ci","refactor","perf","chore","revert"]'
|
task_types: '["feat","fix","docs","test","ci","refactor","perf","chore","revert"]'
|
||||||
add_label: 'false'
|
add_label: 'false'
|
||||||
|
|||||||
@@ -31,25 +31,25 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Generate a token
|
- name: Generate a token
|
||||||
id: generate-token
|
id: generate-token
|
||||||
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2
|
uses: actions/create-github-app-token@v1
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
||||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
token: ${{ steps.generate-token.outputs.token }}
|
token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
|
||||||
- name: Install uv
|
- name: Install uv
|
||||||
uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5
|
uses: astral-sh/setup-uv@v5
|
||||||
|
|
||||||
- name: Bump version
|
- name: Bump version
|
||||||
run: misc/release/pump-version.sh -s "${{ inputs.serverBump }}" -m "${{ inputs.mobileBump }}"
|
run: misc/release/pump-version.sh -s "${{ inputs.serverBump }}" -m "${{ inputs.mobileBump }}"
|
||||||
|
|
||||||
- name: Commit and tag
|
- name: Commit and tag
|
||||||
id: push-tag
|
id: push-tag
|
||||||
uses: EndBug/add-and-commit@a94899bca583c204427a224a7af87c02f9b325d5 # v9
|
uses: EndBug/add-and-commit@v9
|
||||||
with:
|
with:
|
||||||
default_author: github_actions
|
default_author: github_actions
|
||||||
message: 'chore: version ${{ env.IMMICH_VERSION }}'
|
message: 'chore: version ${{ env.IMMICH_VERSION }}'
|
||||||
@@ -70,23 +70,23 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Generate a token
|
- name: Generate a token
|
||||||
id: generate-token
|
id: generate-token
|
||||||
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2
|
uses: actions/create-github-app-token@v1
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
||||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
token: ${{ steps.generate-token.outputs.token }}
|
token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
|
||||||
- name: Download APK
|
- name: Download APK
|
||||||
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: release-apk-signed
|
name: release-apk-signed
|
||||||
|
|
||||||
- name: Create draft release
|
- name: Create draft release
|
||||||
uses: softprops/action-gh-release@c95fe1489396fe8a9eb87c0abf8aa5b2ef267fda # v2
|
uses: softprops/action-gh-release@v2
|
||||||
with:
|
with:
|
||||||
draft: true
|
draft: true
|
||||||
tag_name: ${{ env.IMMICH_VERSION }}
|
tag_name: ${{ env.IMMICH_VERSION }}
|
||||||
|
|||||||
@@ -11,10 +11,10 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2
|
- uses: mshick/add-pr-comment@v2
|
||||||
with:
|
with:
|
||||||
message-id: 'preview-status'
|
message-id: "preview-status"
|
||||||
message: 'Deploying preview environment to https://pr-${{ github.event.pull_request.number }}.preview.internal.immich.cloud/'
|
message: "Deploying preview environment to https://pr-${{ github.event.pull_request.number }}.preview.internal.immich.cloud/"
|
||||||
|
|
||||||
remove-label:
|
remove-label:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -22,7 +22,7 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
- uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
github.rest.issues.removeLabel({
|
github.rest.issues.removeLabel({
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ jobs:
|
|||||||
run:
|
run:
|
||||||
working-directory: ./open-api/typescript-sdk
|
working-directory: ./open-api/typescript-sdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
# Setup .npmrc file to publish to npm
|
# Setup .npmrc file to publish to npm
|
||||||
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './open-api/typescript-sdk/.nvmrc'
|
node-version-file: './open-api/typescript-sdk/.nvmrc'
|
||||||
registry-url: 'https://registry.npmjs.org'
|
registry-url: 'https://registry.npmjs.org'
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ jobs:
|
|||||||
should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run: ${{ steps.found_paths.outputs.mobile == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
mobile:
|
mobile:
|
||||||
@@ -38,10 +38,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Flutter SDK
|
- name: Setup Flutter SDK
|
||||||
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2
|
uses: subosito/flutter-action@v2
|
||||||
with:
|
with:
|
||||||
channel: 'stable'
|
channel: 'stable'
|
||||||
flutter-version-file: ./mobile/pubspec.yaml
|
flutter-version-file: ./mobile/pubspec.yaml
|
||||||
@@ -55,7 +55,7 @@ jobs:
|
|||||||
working-directory: ./mobile
|
working-directory: ./mobile
|
||||||
|
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
|
uses: tj-actions/verify-changed-files@v20
|
||||||
id: verify-changed-files
|
id: verify-changed-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
|
|||||||
+39
-67
@@ -21,12 +21,11 @@ jobs:
|
|||||||
should_run_ml: ${{ steps.found_paths.outputs.machine-learning == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run_ml: ${{ steps.found_paths.outputs.machine-learning == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
should_run_e2e_web: ${{ steps.found_paths.outputs.e2e == 'true' || steps.found_paths.outputs.web == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run_e2e_web: ${{ steps.found_paths.outputs.e2e == 'true' || steps.found_paths.outputs.web == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
should_run_e2e_server_cli: ${{ steps.found_paths.outputs.e2e == 'true' || steps.found_paths.outputs.server == 'true' || steps.found_paths.outputs.cli == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run_e2e_server_cli: ${{ steps.found_paths.outputs.e2e == 'true' || steps.found_paths.outputs.server == 'true' || steps.found_paths.outputs.cli == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
should_run_.github: ${{ steps.found_paths.outputs['.github'] == 'true' || steps.should_force.outputs.should_force == 'true' }} # redundant to have should_force but if someone changes the trigger then this won't have to be changed
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
web:
|
web:
|
||||||
@@ -46,8 +45,6 @@ jobs:
|
|||||||
- 'machine-learning/**'
|
- 'machine-learning/**'
|
||||||
workflow:
|
workflow:
|
||||||
- '.github/workflows/test.yml'
|
- '.github/workflows/test.yml'
|
||||||
.github:
|
|
||||||
- '.github/**'
|
|
||||||
|
|
||||||
- name: Check if we should force jobs to run
|
- name: Check if we should force jobs to run
|
||||||
id: should_force
|
id: should_force
|
||||||
@@ -64,10 +61,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -101,10 +98,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './cli/.nvmrc'
|
node-version-file: './cli/.nvmrc'
|
||||||
|
|
||||||
@@ -142,10 +139,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './cli/.nvmrc'
|
node-version-file: './cli/.nvmrc'
|
||||||
|
|
||||||
@@ -176,10 +173,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './web/.nvmrc'
|
node-version-file: './web/.nvmrc'
|
||||||
|
|
||||||
@@ -221,10 +218,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './e2e/.nvmrc'
|
node-version-file: './e2e/.nvmrc'
|
||||||
|
|
||||||
@@ -260,10 +257,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -285,12 +282,12 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './e2e/.nvmrc'
|
node-version-file: './e2e/.nvmrc'
|
||||||
|
|
||||||
@@ -327,12 +324,12 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './e2e/.nvmrc'
|
node-version-file: './e2e/.nvmrc'
|
||||||
|
|
||||||
@@ -363,9 +360,9 @@ jobs:
|
|||||||
if: ${{ needs.pre-job.outputs.should_run_mobile == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_mobile == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
- name: Setup Flutter SDK
|
- name: Setup Flutter SDK
|
||||||
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2
|
uses: subosito/flutter-action@v2
|
||||||
with:
|
with:
|
||||||
channel: 'stable'
|
channel: 'stable'
|
||||||
flutter-version-file: ./mobile/pubspec.yaml
|
flutter-version-file: ./mobile/pubspec.yaml
|
||||||
@@ -382,10 +379,10 @@ jobs:
|
|||||||
run:
|
run:
|
||||||
working-directory: ./machine-learning
|
working-directory: ./machine-learning
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
- name: Install uv
|
- name: Install uv
|
||||||
uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5
|
uses: astral-sh/setup-uv@v5
|
||||||
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # v5
|
- uses: actions/setup-python@v5
|
||||||
# TODO: add caching when supported (https://github.com/actions/setup-python/pull/818)
|
# TODO: add caching when supported (https://github.com/actions/setup-python/pull/818)
|
||||||
# with:
|
# with:
|
||||||
# python-version: 3.11
|
# python-version: 3.11
|
||||||
@@ -395,47 +392,22 @@ jobs:
|
|||||||
uv sync --extra cpu
|
uv sync --extra cpu
|
||||||
- name: Lint with ruff
|
- name: Lint with ruff
|
||||||
run: |
|
run: |
|
||||||
uv run ruff check --output-format=github immich_ml
|
uv run ruff check --output-format=github app export
|
||||||
- name: Check black formatting
|
- name: Check black formatting
|
||||||
run: |
|
run: |
|
||||||
uv run black --check immich_ml
|
uv run black --check app export
|
||||||
- name: Run mypy type checking
|
- name: Run mypy type checking
|
||||||
run: |
|
run: |
|
||||||
uv run mypy --strict immich_ml/
|
uv run mypy --strict app/
|
||||||
- name: Run tests and coverage
|
- name: Run tests and coverage
|
||||||
run: |
|
run: |
|
||||||
uv run pytest --cov=immich_ml --cov-report term-missing
|
uv run pytest app --cov=app --cov-report term-missing
|
||||||
|
|
||||||
github-files-formatting:
|
|
||||||
name: .github Files Formatting
|
|
||||||
needs: pre-job
|
|
||||||
if: ${{ needs.pre-job.outputs['should_run_.github'] == 'true' }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
working-directory: ./.github
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
|
||||||
|
|
||||||
- name: Setup Node
|
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
|
||||||
with:
|
|
||||||
node-version-file: './.github/.nvmrc'
|
|
||||||
|
|
||||||
- name: Run npm install
|
|
||||||
run: npm ci
|
|
||||||
|
|
||||||
- name: Run formatter
|
|
||||||
run: npm run format
|
|
||||||
if: ${{ !cancelled() }}
|
|
||||||
|
|
||||||
shellcheck:
|
shellcheck:
|
||||||
name: ShellCheck
|
name: ShellCheck
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@v4
|
||||||
- name: Run ShellCheck
|
- name: Run ShellCheck
|
||||||
uses: ludeeus/action-shellcheck@master
|
uses: ludeeus/action-shellcheck@master
|
||||||
with:
|
with:
|
||||||
@@ -449,10 +421,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -466,7 +438,7 @@ jobs:
|
|||||||
run: make open-api
|
run: make open-api
|
||||||
|
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
|
uses: tj-actions/verify-changed-files@v20
|
||||||
id: verify-changed-files
|
id: verify-changed-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
@@ -504,10 +476,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -518,27 +490,27 @@ jobs:
|
|||||||
run: npm run build
|
run: npm run build
|
||||||
|
|
||||||
- name: Run existing migrations
|
- name: Run existing migrations
|
||||||
run: npm run migrations:run
|
run: npm run typeorm:migrations:run
|
||||||
|
|
||||||
- name: Test npm run schema:reset command works
|
- name: Test npm run schema:reset command works
|
||||||
run: npm run typeorm:schema:reset
|
run: npm run typeorm:schema:reset
|
||||||
|
|
||||||
- name: Generate new migrations
|
- name: Generate new migrations
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: npm run migrations:generate TestMigration
|
run: npm run typeorm:migrations:generate ./src/migrations/TestMigration
|
||||||
|
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
|
uses: tj-actions/verify-changed-files@v20
|
||||||
id: verify-changed-files
|
id: verify-changed-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
server/src
|
server/src/migrations/
|
||||||
- name: Verify migration files have not changed
|
- name: Verify migration files have not changed
|
||||||
if: steps.verify-changed-files.outputs.files_changed == 'true'
|
if: steps.verify-changed-files.outputs.files_changed == 'true'
|
||||||
run: |
|
run: |
|
||||||
echo "ERROR: Generated migration files not up to date!"
|
echo "ERROR: Generated migration files not up to date!"
|
||||||
echo "Changed files: ${{ steps.verify-changed-files.outputs.changed_files }}"
|
echo "Changed files: ${{ steps.verify-changed-files.outputs.changed_files }}"
|
||||||
cat ./src/*-TestMigration.ts
|
cat ./src/migrations/*-TestMigration.ts
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
- name: Run SQL generation
|
- name: Run SQL generation
|
||||||
@@ -547,7 +519,7 @@ jobs:
|
|||||||
DB_URL: postgres://postgres:postgres@localhost:5432/immich
|
DB_URL: postgres://postgres:postgres@localhost:5432/immich
|
||||||
|
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
|
uses: tj-actions/verify-changed-files@v20
|
||||||
id: verify-changed-sql-files
|
id: verify-changed-sql-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
|
|||||||
@@ -11,22 +11,22 @@ jobs:
|
|||||||
should_run: ${{ steps.found_paths.outputs.i18n == 'true' && github.head_ref != 'chore/translations'}}
|
should_run: ${{ steps.found_paths.outputs.i18n == 'true' && github.head_ref != 'chore/translations'}}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@v4
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
i18n:
|
i18n:
|
||||||
- 'i18n/!(en)**\.json'
|
- 'i18n/!(en)**\.json'
|
||||||
- name: Debug
|
- name: Debug
|
||||||
run: |
|
run: |
|
||||||
echo "Should run: ${{ steps.found_paths.outputs.i18n == 'true' && github.head_ref != 'chore/translations'}}"
|
echo "Should run: ${{ steps.found_paths.outputs.i18n == 'true' && github.head_ref != 'chore/translations'}}"
|
||||||
echo "Found i18n paths: ${{ steps.found_paths.outputs.i18n }}"
|
echo "Found i18n paths: ${{ steps.found_paths.outputs.i18n }}"
|
||||||
echo "Head ref: ${{ github.head_ref }}"
|
echo "Head ref: ${{ github.head_ref }}"
|
||||||
|
|
||||||
enforce-lock:
|
enforce-lock:
|
||||||
name: Check Weblate Lock
|
name: Check Weblate Lock
|
||||||
needs: [pre-job]
|
needs: [ pre-job ]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: ${{ needs.pre-job.outputs.should_run == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
@@ -36,7 +36,7 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
- name: Find Pull Request
|
- name: Find Pull Request
|
||||||
uses: juliangruber/find-pull-request-action@48b6133aa6c826f267ebd33aa2d29470f9d9e7d0 # v1
|
uses: juliangruber/find-pull-request-action@v1
|
||||||
id: find-pr
|
id: find-pr
|
||||||
with:
|
with:
|
||||||
branch: chore/translations
|
branch: chore/translations
|
||||||
@@ -45,7 +45,7 @@ jobs:
|
|||||||
run: exit 1
|
run: exit 1
|
||||||
success-check-lock:
|
success-check-lock:
|
||||||
name: Weblate Lock Check Success
|
name: Weblate Lock Check Success
|
||||||
needs: [enforce-lock]
|
needs: [ enforce-lock ]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: always()
|
if: always()
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
Vendored
+1
-2
@@ -39,7 +39,6 @@
|
|||||||
],
|
],
|
||||||
"explorer.fileNesting.enabled": true,
|
"explorer.fileNesting.enabled": true,
|
||||||
"explorer.fileNesting.patterns": {
|
"explorer.fileNesting.patterns": {
|
||||||
"*.ts": "${capture}.spec.ts,${capture}.mock.ts",
|
"*.ts": "${capture}.spec.ts,${capture}.mock.ts"
|
||||||
"*.dart": "${capture}.g.dart,${capture}.gr.dart,${capture}.drift.dart"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -39,7 +39,7 @@ attach-server:
|
|||||||
renovate:
|
renovate:
|
||||||
LOG_LEVEL=debug npx renovate --platform=local --repository-cache=reset
|
LOG_LEVEL=debug npx renovate --platform=local --repository-cache=reset
|
||||||
|
|
||||||
MODULES = e2e server web cli sdk docs .github
|
MODULES = e2e server web cli sdk docs
|
||||||
|
|
||||||
audit-%:
|
audit-%:
|
||||||
npm --prefix $(subst sdk,open-api/typescript-sdk,$*) audit fix
|
npm --prefix $(subst sdk,open-api/typescript-sdk,$*) audit fix
|
||||||
@@ -77,14 +77,14 @@ test-medium:
|
|||||||
test-medium-dev:
|
test-medium-dev:
|
||||||
docker exec -it immich_server /bin/sh -c "npm run test:medium"
|
docker exec -it immich_server /bin/sh -c "npm run test:medium"
|
||||||
|
|
||||||
build-all: $(foreach M,$(filter-out e2e .github,$(MODULES)),build-$M) ;
|
build-all: $(foreach M,$(filter-out e2e,$(MODULES)),build-$M) ;
|
||||||
install-all: $(foreach M,$(MODULES),install-$M) ;
|
install-all: $(foreach M,$(MODULES),install-$M) ;
|
||||||
check-all: $(foreach M,$(filter-out sdk cli docs .github,$(MODULES)),check-$M) ;
|
check-all: $(foreach M,$(filter-out sdk cli docs,$(MODULES)),check-$M) ;
|
||||||
lint-all: $(foreach M,$(filter-out sdk docs .github,$(MODULES)),lint-$M) ;
|
lint-all: $(foreach M,$(filter-out sdk docs,$(MODULES)),lint-$M) ;
|
||||||
format-all: $(foreach M,$(filter-out sdk,$(MODULES)),format-$M) ;
|
format-all: $(foreach M,$(filter-out sdk,$(MODULES)),format-$M) ;
|
||||||
audit-all: $(foreach M,$(MODULES),audit-$M) ;
|
audit-all: $(foreach M,$(MODULES),audit-$M) ;
|
||||||
hygiene-all: lint-all format-all check-all sql audit-all;
|
hygiene-all: lint-all format-all check-all sql audit-all;
|
||||||
test-all: $(foreach M,$(filter-out sdk docs .github,$(MODULES)),test-$M) ;
|
test-all: $(foreach M,$(filter-out sdk docs,$(MODULES)),test-$M) ;
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
|
find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
|
||||||
|
|||||||
@@ -61,7 +61,9 @@
|
|||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
|
||||||
Access the demo [here](https://demo.immich.app). For the mobile app, you can use `https://demo.immich.app` for the `Server Endpoint URL`.
|
Access the demo [here](https://demo.immich.app). The demo is running on a Free-tier Oracle VM in Amsterdam with a 2.4Ghz quad-core ARM64 CPU and 24GB RAM.
|
||||||
|
|
||||||
|
For the mobile app, you can use `https://demo.immich.app` for the `Server Endpoint URL`
|
||||||
|
|
||||||
### Login credentials
|
### Login credentials
|
||||||
|
|
||||||
@@ -102,7 +104,7 @@ Access the demo [here](https://demo.immich.app). For the mobile app, you can use
|
|||||||
| Read-only gallery | Yes | Yes |
|
| Read-only gallery | Yes | Yes |
|
||||||
| Stacked Photos | Yes | Yes |
|
| Stacked Photos | Yes | Yes |
|
||||||
| Tags | No | Yes |
|
| Tags | No | Yes |
|
||||||
| Folder View | Yes | Yes |
|
| Folder View | No | Yes |
|
||||||
|
|
||||||
## Translations
|
## Translations
|
||||||
|
|
||||||
|
|||||||
+20
-10
@@ -1,29 +1,39 @@
|
|||||||
|
import { FlatCompat } from '@eslint/eslintrc';
|
||||||
import js from '@eslint/js';
|
import js from '@eslint/js';
|
||||||
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
|
import typescriptEslint from '@typescript-eslint/eslint-plugin';
|
||||||
import eslintPluginUnicorn from 'eslint-plugin-unicorn';
|
import tsParser from '@typescript-eslint/parser';
|
||||||
import globals from 'globals';
|
import globals from 'globals';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import { fileURLToPath } from 'node:url';
|
import { fileURLToPath } from 'node:url';
|
||||||
import typescriptEslint from 'typescript-eslint';
|
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = path.dirname(__filename);
|
const __dirname = path.dirname(__filename);
|
||||||
|
const compat = new FlatCompat({
|
||||||
|
baseDirectory: __dirname,
|
||||||
|
recommendedConfig: js.configs.recommended,
|
||||||
|
allConfig: js.configs.all,
|
||||||
|
});
|
||||||
|
|
||||||
export default typescriptEslint.config([
|
export default [
|
||||||
eslintPluginUnicorn.configs.recommended,
|
|
||||||
eslintPluginPrettierRecommended,
|
|
||||||
js.configs.recommended,
|
|
||||||
typescriptEslint.configs.recommended,
|
|
||||||
{
|
{
|
||||||
ignores: ['eslint.config.mjs', 'dist'],
|
ignores: ['eslint.config.mjs', 'dist'],
|
||||||
},
|
},
|
||||||
|
...compat.extends(
|
||||||
|
'plugin:@typescript-eslint/recommended',
|
||||||
|
'plugin:prettier/recommended',
|
||||||
|
'plugin:unicorn/recommended',
|
||||||
|
),
|
||||||
{
|
{
|
||||||
|
plugins: {
|
||||||
|
'@typescript-eslint': typescriptEslint,
|
||||||
|
},
|
||||||
|
|
||||||
languageOptions: {
|
languageOptions: {
|
||||||
globals: {
|
globals: {
|
||||||
...globals.node,
|
...globals.node,
|
||||||
},
|
},
|
||||||
|
|
||||||
parser: typescriptEslint.parser,
|
parser: tsParser,
|
||||||
ecmaVersion: 5,
|
ecmaVersion: 5,
|
||||||
sourceType: 'module',
|
sourceType: 'module',
|
||||||
|
|
||||||
@@ -48,4 +58,4 @@ export default typescriptEslint.config([
|
|||||||
'object-shorthand': ['error', 'always'],
|
'object-shorthand': ['error', 'always'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]);
|
];
|
||||||
|
|||||||
Generated
+602
-397
File diff suppressed because it is too large
Load Diff
+5
-4
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@immich/cli",
|
"name": "@immich/cli",
|
||||||
"version": "2.2.61",
|
"version": "2.2.53",
|
||||||
"description": "Command Line Interface (CLI) for Immich",
|
"description": "Command Line Interface (CLI) for Immich",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": "./dist/index.js",
|
"exports": "./dist/index.js",
|
||||||
@@ -21,7 +21,9 @@
|
|||||||
"@types/lodash-es": "^4.17.12",
|
"@types/lodash-es": "^4.17.12",
|
||||||
"@types/micromatch": "^4.0.9",
|
"@types/micromatch": "^4.0.9",
|
||||||
"@types/mock-fs": "^4.13.1",
|
"@types/mock-fs": "^4.13.1",
|
||||||
"@types/node": "^22.14.0",
|
"@types/node": "^22.13.9",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^8.15.0",
|
||||||
|
"@typescript-eslint/parser": "^8.15.0",
|
||||||
"@vitest/coverage-v8": "^3.0.0",
|
"@vitest/coverage-v8": "^3.0.0",
|
||||||
"byte-size": "^9.0.0",
|
"byte-size": "^9.0.0",
|
||||||
"cli-progress": "^3.12.0",
|
"cli-progress": "^3.12.0",
|
||||||
@@ -29,13 +31,12 @@
|
|||||||
"eslint": "^9.14.0",
|
"eslint": "^9.14.0",
|
||||||
"eslint-config-prettier": "^10.0.0",
|
"eslint-config-prettier": "^10.0.0",
|
||||||
"eslint-plugin-prettier": "^5.1.3",
|
"eslint-plugin-prettier": "^5.1.3",
|
||||||
"eslint-plugin-unicorn": "^57.0.0",
|
"eslint-plugin-unicorn": "^56.0.1",
|
||||||
"globals": "^16.0.0",
|
"globals": "^16.0.0",
|
||||||
"mock-fs": "^5.2.0",
|
"mock-fs": "^5.2.0",
|
||||||
"prettier": "^3.2.5",
|
"prettier": "^3.2.5",
|
||||||
"prettier-plugin-organize-imports": "^4.0.0",
|
"prettier-plugin-organize-imports": "^4.0.0",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"typescript-eslint": "^8.28.0",
|
|
||||||
"vite": "^6.0.0",
|
"vite": "^6.0.0",
|
||||||
"vite-tsconfig-paths": "^5.0.0",
|
"vite-tsconfig-paths": "^5.0.0",
|
||||||
"vitest": "^3.0.0",
|
"vitest": "^3.0.0",
|
||||||
|
|||||||
@@ -95,12 +95,12 @@ services:
|
|||||||
image: immich-machine-learning-dev:latest
|
image: immich-machine-learning-dev:latest
|
||||||
# extends:
|
# extends:
|
||||||
# file: hwaccel.ml.yml
|
# file: hwaccel.ml.yml
|
||||||
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference
|
# service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference
|
||||||
build:
|
build:
|
||||||
context: ../machine-learning
|
context: ../machine-learning
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
args:
|
args:
|
||||||
- DEVICE=cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference
|
- DEVICE=cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference
|
||||||
ports:
|
ports:
|
||||||
- 3003:3003
|
- 3003:3003
|
||||||
volumes:
|
volumes:
|
||||||
@@ -116,7 +116,7 @@ services:
|
|||||||
|
|
||||||
redis:
|
redis:
|
||||||
container_name: immich_redis
|
container_name: immich_redis
|
||||||
image: docker.io/valkey/valkey:8-bookworm@sha256:42cba146593a5ea9a622002c1b7cba5da7be248650cbb64ecb9c6c33d29794b1
|
image: redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: redis-cli ping || exit 1
|
test: redis-cli ping || exit 1
|
||||||
|
|
||||||
|
|||||||
@@ -38,12 +38,12 @@ services:
|
|||||||
image: immich-machine-learning:latest
|
image: immich-machine-learning:latest
|
||||||
# extends:
|
# extends:
|
||||||
# file: hwaccel.ml.yml
|
# file: hwaccel.ml.yml
|
||||||
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference
|
# service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference
|
||||||
build:
|
build:
|
||||||
context: ../machine-learning
|
context: ../machine-learning
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
args:
|
args:
|
||||||
- DEVICE=cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference
|
- DEVICE=cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference
|
||||||
ports:
|
ports:
|
||||||
- 3003:3003
|
- 3003:3003
|
||||||
volumes:
|
volumes:
|
||||||
@@ -56,7 +56,7 @@ services:
|
|||||||
|
|
||||||
redis:
|
redis:
|
||||||
container_name: immich_redis
|
container_name: immich_redis
|
||||||
image: docker.io/valkey/valkey:8-bookworm@sha256:42cba146593a5ea9a622002c1b7cba5da7be248650cbb64ecb9c6c33d29794b1
|
image: redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: redis-cli ping || exit 1
|
test: redis-cli ping || exit 1
|
||||||
restart: always
|
restart: always
|
||||||
@@ -77,12 +77,22 @@ services:
|
|||||||
- 5432:5432
|
- 5432:5432
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: >-
|
test: >-
|
||||||
pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
|
pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1;
|
||||||
|
Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align
|
||||||
|
--command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')";
|
||||||
|
echo "checksum failure count is $$Chksum";
|
||||||
|
[ "$$Chksum" = '0' ] || exit 1
|
||||||
interval: 5m
|
interval: 5m
|
||||||
start_interval: 30s
|
start_interval: 30s
|
||||||
start_period: 5m
|
start_period: 5m
|
||||||
command: >-
|
command: >-
|
||||||
postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on
|
postgres
|
||||||
|
-c shared_preload_libraries=vectors.so
|
||||||
|
-c 'search_path="$$user", public, vectors'
|
||||||
|
-c logging_collector=on
|
||||||
|
-c max_wal_size=2GB
|
||||||
|
-c shared_buffers=512MB
|
||||||
|
-c wal_compression=on
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
# set IMMICH_TELEMETRY_INCLUDE=all in .env to enable metrics
|
# set IMMICH_TELEMETRY_INCLUDE=all in .env to enable metrics
|
||||||
@@ -90,7 +100,7 @@ services:
|
|||||||
container_name: immich_prometheus
|
container_name: immich_prometheus
|
||||||
ports:
|
ports:
|
||||||
- 9090:9090
|
- 9090:9090
|
||||||
image: prom/prometheus@sha256:502ad90314c7485892ce696cb14a99fceab9fc27af29f4b427f41bd39701a199
|
image: prom/prometheus@sha256:6927e0919a144aa7616fd0137d4816816d42f6b816de3af269ab065250859a62
|
||||||
volumes:
|
volumes:
|
||||||
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
||||||
- prometheus-data:/prometheus
|
- prometheus-data:/prometheus
|
||||||
@@ -99,10 +109,10 @@ services:
|
|||||||
# add data source for http://immich-prometheus:9090 to get started
|
# add data source for http://immich-prometheus:9090 to get started
|
||||||
immich-grafana:
|
immich-grafana:
|
||||||
container_name: immich_grafana
|
container_name: immich_grafana
|
||||||
command: [ './run.sh', '-disable-reporting' ]
|
command: ['./run.sh', '-disable-reporting']
|
||||||
ports:
|
ports:
|
||||||
- 3000:3000
|
- 3000:3000
|
||||||
image: grafana/grafana:11.6.0-ubuntu@sha256:fd8fa48213c624e1a95122f1d93abbf1cf1cbe85fc73212c1e599dbd76c63ff8
|
image: grafana/grafana:11.5.2-ubuntu@sha256:8b5858c447e06fd7a89006b562ba7bba7c4d5813600c7982374c41852adefaeb
|
||||||
volumes:
|
volumes:
|
||||||
- grafana-data:/var/lib/grafana
|
- grafana-data:/var/lib/grafana
|
||||||
|
|
||||||
|
|||||||
@@ -33,12 +33,12 @@ services:
|
|||||||
|
|
||||||
immich-machine-learning:
|
immich-machine-learning:
|
||||||
container_name: immich_machine_learning
|
container_name: immich_machine_learning
|
||||||
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
|
# For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
|
||||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||||
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
|
# extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
|
||||||
# file: hwaccel.ml.yml
|
# file: hwaccel.ml.yml
|
||||||
# service: cpu # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
# service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||||
volumes:
|
volumes:
|
||||||
- model-cache:/cache
|
- model-cache:/cache
|
||||||
env_file:
|
env_file:
|
||||||
@@ -49,7 +49,7 @@ services:
|
|||||||
|
|
||||||
redis:
|
redis:
|
||||||
container_name: immich_redis
|
container_name: immich_redis
|
||||||
image: docker.io/valkey/valkey:8-bookworm@sha256:42cba146593a5ea9a622002c1b7cba5da7be248650cbb64ecb9c6c33d29794b1
|
image: docker.io/redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: redis-cli ping || exit 1
|
test: redis-cli ping || exit 1
|
||||||
restart: always
|
restart: always
|
||||||
@@ -67,12 +67,22 @@ services:
|
|||||||
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: >-
|
test: >-
|
||||||
pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1; Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
|
pg_isready --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" || exit 1;
|
||||||
|
Chksum="$$(psql --dbname="$${POSTGRES_DB}" --username="$${POSTGRES_USER}" --tuples-only --no-align
|
||||||
|
--command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')";
|
||||||
|
echo "checksum failure count is $$Chksum";
|
||||||
|
[ "$$Chksum" = '0' ] || exit 1
|
||||||
interval: 5m
|
interval: 5m
|
||||||
start_interval: 30s
|
start_interval: 30s
|
||||||
start_period: 5m
|
start_period: 5m
|
||||||
command: >-
|
command: >-
|
||||||
postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on
|
postgres
|
||||||
|
-c shared_preload_libraries=vectors.so
|
||||||
|
-c 'search_path="$$user", public, vectors'
|
||||||
|
-c logging_collector=on
|
||||||
|
-c max_wal_size=2GB
|
||||||
|
-c shared_buffers=512MB
|
||||||
|
-c wal_compression=on
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
+1
-2
@@ -2,8 +2,7 @@
|
|||||||
|
|
||||||
# The location where your uploaded files are stored
|
# The location where your uploaded files are stored
|
||||||
UPLOAD_LOCATION=./library
|
UPLOAD_LOCATION=./library
|
||||||
|
# The location where your database files are stored
|
||||||
# The location where your database files are stored. Network shares are not supported for the database
|
|
||||||
DB_DATA_LOCATION=./postgres
|
DB_DATA_LOCATION=./postgres
|
||||||
|
|
||||||
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
||||||
|
|||||||
@@ -14,13 +14,6 @@ services:
|
|||||||
- /lib/firmware/mali_csffw.bin:/lib/firmware/mali_csffw.bin:ro # Mali firmware for your chipset (not always required depending on the driver)
|
- /lib/firmware/mali_csffw.bin:/lib/firmware/mali_csffw.bin:ro # Mali firmware for your chipset (not always required depending on the driver)
|
||||||
- /usr/lib/libmali.so:/usr/lib/libmali.so:ro # Mali driver for your chipset (always required)
|
- /usr/lib/libmali.so:/usr/lib/libmali.so:ro # Mali driver for your chipset (always required)
|
||||||
|
|
||||||
rknn:
|
|
||||||
security_opt:
|
|
||||||
- systempaths=unconfined
|
|
||||||
- apparmor=unconfined
|
|
||||||
devices:
|
|
||||||
- /dev/dri:/dev/dri
|
|
||||||
|
|
||||||
cpu: {}
|
cpu: {}
|
||||||
|
|
||||||
cuda:
|
cuda:
|
||||||
@@ -33,13 +26,6 @@ services:
|
|||||||
capabilities:
|
capabilities:
|
||||||
- gpu
|
- gpu
|
||||||
|
|
||||||
rocm:
|
|
||||||
group_add:
|
|
||||||
- video
|
|
||||||
devices:
|
|
||||||
- /dev/dri:/dev/dri
|
|
||||||
- /dev/kfd:/dev/kfd
|
|
||||||
|
|
||||||
openvino:
|
openvino:
|
||||||
device_cgroup_rules:
|
device_cgroup_rules:
|
||||||
- 'c 189:* rmw'
|
- 'c 189:* rmw'
|
||||||
|
|||||||
+1
-1
@@ -262,7 +262,7 @@ No, this is not supported. Only models listed in the [Hugging Face][huggingface]
|
|||||||
|
|
||||||
### I want to be able to search in other languages besides English. How can I do that?
|
### I want to be able to search in other languages besides English. How can I do that?
|
||||||
|
|
||||||
You can change to a multilingual CLIP model. See [here](/docs/features/searching#clip-models) for instructions.
|
You can change to a multilingual CLIP model. See [here](/docs/features/searching#clip-model) for instructions.
|
||||||
|
|
||||||
### Does Immich support Facial Recognition for videos?
|
### Does Immich support Facial Recognition for videos?
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 12 KiB |
@@ -11,7 +11,6 @@ The `immich-server` docker image comes preinstalled with an administrative CLI (
|
|||||||
| `enable-oauth-login` | Enable OAuth login |
|
| `enable-oauth-login` | Enable OAuth login |
|
||||||
| `disable-oauth-login` | Disable OAuth login |
|
| `disable-oauth-login` | Disable OAuth login |
|
||||||
| `list-users` | List Immich users |
|
| `list-users` | List Immich users |
|
||||||
| `version` | Print Immich version |
|
|
||||||
|
|
||||||
## How to run a command
|
## How to run a command
|
||||||
|
|
||||||
@@ -81,10 +80,3 @@ immich-admin list-users
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
Print Immich Version
|
|
||||||
|
|
||||||
```
|
|
||||||
immich-admin version
|
|
||||||
v1.129.0
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ Admin can send a welcome email if the Email option is set, you can learn here ho
|
|||||||
|
|
||||||
Admin can specify the storage quota for the user as the instance's admin; once the limit is reached, the user won't be able to upload to the instance anymore.
|
Admin can specify the storage quota for the user as the instance's admin; once the limit is reached, the user won't be able to upload to the instance anymore.
|
||||||
|
|
||||||
In order to select a storage quota, click on the pencil icon and enter the storage quota in GiB. You can choose an unlimited quota by leaving it empty (default).
|
In order to select a storage quota, click on the pencil icon and enter the storage quota in GiB. You can choose an unlimited quota using the value 0 (default).
|
||||||
|
|
||||||
:::tip
|
:::tip
|
||||||
The system administrator can see the usage quota percentage of all users in Server Stats page.
|
The system administrator can see the usage quota percentage of all users in Server Stats page.
|
||||||
|
|||||||
@@ -63,13 +63,6 @@ If you only want to do web development connected to an existing, remote backend,
|
|||||||
IMMICH_SERVER_URL=https://demo.immich.app/ npm run dev
|
IMMICH_SERVER_URL=https://demo.immich.app/ npm run dev
|
||||||
```
|
```
|
||||||
|
|
||||||
If you're using PowerShell on Windows you may need to set the env var separately like so:
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
$env:IMMICH_SERVER_URL = "https://demo.immich.app/"
|
|
||||||
npm run dev
|
|
||||||
```
|
|
||||||
|
|
||||||
#### `@immich/ui`
|
#### `@immich/ui`
|
||||||
|
|
||||||
To see local changes to `@immich/ui` in Immich, do the following:
|
To see local changes to `@immich/ui` in Immich, do the following:
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ You begin by authenticating to your Immich server. For instance:
|
|||||||
immich login http://192.168.1.216:2283/api HFEJ38DNSDUEG
|
immich login http://192.168.1.216:2283/api HFEJ38DNSDUEG
|
||||||
```
|
```
|
||||||
|
|
||||||
This will store your credentials in a `auth.yml` file in the configuration directory which defaults to `~/.config/immich/`. The directory can be set with the `-d` option or the environment variable `IMMICH_CONFIG_DIR`. Please keep the file secure, either by performing the logout command after you are done, or deleting it manually.
|
This will store your credentials in a `auth.yml` file in the configuration directory which defaults to `~/.config/`. The directory can be set with the `-d` option or the environment variable `IMMICH_CONFIG_DIR`. Please keep the file secure, either by performing the logout command after you are done, or deleting it manually.
|
||||||
|
|
||||||
Once you are authenticated, you can upload assets to your Immich server.
|
Once you are authenticated, you can upload assets to your Immich server.
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 4.9 MiB After Width: | Height: | Size: 4.9 MiB |
@@ -95,7 +95,7 @@ The `immich-server` container will need access to the gallery. Modify your docke
|
|||||||
+ - /mnt/nas/christmas-trip:/mnt/media/christmas-trip:ro
|
+ - /mnt/nas/christmas-trip:/mnt/media/christmas-trip:ro
|
||||||
+ - /home/user/old-pics:/mnt/media/old-pics:ro
|
+ - /home/user/old-pics:/mnt/media/old-pics:ro
|
||||||
+ - /mnt/media/videos:/mnt/media/videos:ro
|
+ - /mnt/media/videos:/mnt/media/videos:ro
|
||||||
+ - /mnt/media/videos2:/mnt/media/videos2 # WARNING: Immich will be able to delete the files in this folder, as it does not end with :ro
|
+ - /mnt/media/videos2:/mnt/media/videos2 # the files in this folder can be deleted, as it does not end with :ro
|
||||||
+ - "C:/Users/user_name/Desktop/my media:/mnt/media/my-media:ro" # import path in Windows system.
|
+ - "C:/Users/user_name/Desktop/my media:/mnt/media/my-media:ro" # import path in Windows system.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -11,9 +11,7 @@ You do not need to redo any machine learning jobs after enabling hardware accele
|
|||||||
|
|
||||||
- ARM NN (Mali)
|
- ARM NN (Mali)
|
||||||
- CUDA (NVIDIA GPUs with [compute capability](https://developer.nvidia.com/cuda-gpus) 5.2 or higher)
|
- CUDA (NVIDIA GPUs with [compute capability](https://developer.nvidia.com/cuda-gpus) 5.2 or higher)
|
||||||
- ROCm (AMD GPUs)
|
|
||||||
- OpenVINO (Intel GPUs such as Iris Xe and Arc)
|
- OpenVINO (Intel GPUs such as Iris Xe and Arc)
|
||||||
- RKNN (Rockchip)
|
|
||||||
|
|
||||||
## Limitations
|
## Limitations
|
||||||
|
|
||||||
@@ -21,7 +19,6 @@ You do not need to redo any machine learning jobs after enabling hardware accele
|
|||||||
- Only Linux and Windows (through WSL2) servers are supported.
|
- Only Linux and Windows (through WSL2) servers are supported.
|
||||||
- ARM NN is only supported on devices with Mali GPUs. Other Arm devices are not supported.
|
- ARM NN is only supported on devices with Mali GPUs. Other Arm devices are not supported.
|
||||||
- Some models may not be compatible with certain backends. CUDA is the most reliable.
|
- Some models may not be compatible with certain backends. CUDA is the most reliable.
|
||||||
- Search latency isn't improved by ARM NN due to model compatibility issues preventing its use. However, smart search jobs do make use of ARM NN.
|
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
@@ -36,7 +33,6 @@ You do not need to redo any machine learning jobs after enabling hardware accele
|
|||||||
- The `hwaccel.ml.yml` file assumes the path to it is `/usr/lib/libmali.so`, so update accordingly if it is elsewhere
|
- The `hwaccel.ml.yml` file assumes the path to it is `/usr/lib/libmali.so`, so update accordingly if it is elsewhere
|
||||||
- The `hwaccel.ml.yml` file assumes an additional file `/lib/firmware/mali_csffw.bin`, so update accordingly if your device's driver does not require this file
|
- The `hwaccel.ml.yml` file assumes an additional file `/lib/firmware/mali_csffw.bin`, so update accordingly if your device's driver does not require this file
|
||||||
- Optional: Configure your `.env` file, see [environment variables](/docs/install/environment-variables) for ARM NN specific settings
|
- Optional: Configure your `.env` file, see [environment variables](/docs/install/environment-variables) for ARM NN specific settings
|
||||||
- In particular, the `MACHINE_LEARNING_ANN_FP16_TURBO` can significantly improve performance at the cost of very slightly lower accuracy
|
|
||||||
|
|
||||||
#### CUDA
|
#### CUDA
|
||||||
|
|
||||||
@@ -45,38 +41,22 @@ You do not need to redo any machine learning jobs after enabling hardware accele
|
|||||||
- The installed driver must be >= 535 (it must support CUDA 12.2).
|
- The installed driver must be >= 535 (it must support CUDA 12.2).
|
||||||
- On Linux (except for WSL2), you also need to have [NVIDIA Container Toolkit][nvct] installed.
|
- On Linux (except for WSL2), you also need to have [NVIDIA Container Toolkit][nvct] installed.
|
||||||
|
|
||||||
#### ROCm
|
|
||||||
|
|
||||||
- The GPU must be supported by ROCm. If it isn't officially supported, you can attempt to use the `HSA_OVERRIDE_GFX_VERSION` environmental variable: `HSA_OVERRIDE_GFX_VERSION=<a supported version, e.g. 10.3.0>`. If this doesn't work, you might need to also set `HSA_USE_SVM=0`.
|
|
||||||
- The ROCm image is quite large and requires at least 35GiB of free disk space. However, pulling later updates to the service through Docker will generally only amount to a few hundred megabytes as the rest will be cached.
|
|
||||||
- This backend is new and may experience some issues. For example, GPU power consumption can be higher than usual after running inference, even if the machine learning service is idle. In this case, it will only go back to normal after being idle for 5 minutes (configurable with the [MACHINE_LEARNING_MODEL_TTL](/docs/install/environment-variables) setting).
|
|
||||||
|
|
||||||
#### OpenVINO
|
#### OpenVINO
|
||||||
|
|
||||||
- Integrated GPUs are more likely to experience issues than discrete GPUs, especially for older processors or servers with low RAM.
|
- Integrated GPUs are more likely to experience issues than discrete GPUs, especially for older processors or servers with low RAM.
|
||||||
- Ensure the server's kernel version is new enough to use the device for hardware accceleration.
|
- Ensure the server's kernel version is new enough to use the device for hardware accceleration.
|
||||||
- Expect higher RAM usage when using OpenVINO compared to CPU processing.
|
- Expect higher RAM usage when using OpenVINO compared to CPU processing.
|
||||||
|
|
||||||
#### RKNN
|
|
||||||
|
|
||||||
- You must have a supported Rockchip SoC: only RK3566, RK3568, RK3576 and RK3588 are supported at this moment.
|
|
||||||
- Make sure you have the appropriate linux kernel driver installed
|
|
||||||
- This is usually pre-installed on the device vendor's Linux images
|
|
||||||
- RKNPU driver V0.9.8 or later must be available in the host server
|
|
||||||
- You may confirm this by running `cat /sys/kernel/debug/rknpu/version` to check the version
|
|
||||||
- Optional: Configure your `.env` file, see [environment variables](/docs/install/environment-variables) for RKNN specific settings
|
|
||||||
- In particular, setting `MACHINE_LEARNING_RKNN_THREADS` to 2 or 3 can _dramatically_ improve performance for RK3576 and RK3588 compared to the default of 1, at the expense of multiplying the amount of RAM each model uses by that amount.
|
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
1. If you do not already have it, download the latest [`hwaccel.ml.yml`][hw-file] file and ensure it's in the same folder as the `docker-compose.yml`.
|
1. If you do not already have it, download the latest [`hwaccel.ml.yml`][hw-file] file and ensure it's in the same folder as the `docker-compose.yml`.
|
||||||
2. In the `docker-compose.yml` under `immich-machine-learning`, uncomment the `extends` section and change `cpu` to the appropriate backend.
|
2. In the `docker-compose.yml` under `immich-machine-learning`, uncomment the `extends` section and change `cpu` to the appropriate backend.
|
||||||
3. Still in `immich-machine-learning`, add one of -[armnn, cuda, rocm, openvino, rknn] to the `image` section's tag at the end of the line.
|
3. Still in `immich-machine-learning`, add one of -[armnn, cuda, openvino] to the `image` section's tag at the end of the line.
|
||||||
4. Redeploy the `immich-machine-learning` container with these updated settings.
|
4. Redeploy the `immich-machine-learning` container with these updated settings.
|
||||||
|
|
||||||
### Confirming Device Usage
|
### Confirming Device Usage
|
||||||
|
|
||||||
You can confirm the device is being recognized and used by checking its utilization. There are many tools to display this, such as `nvtop` for NVIDIA or Intel, `intel_gpu_top` for Intel, and `radeontop` for AMD.
|
You can confirm the device is being recognized and used by checking its utilization. There are many tools to display this, such as `nvtop` for NVIDIA or Intel and `intel_gpu_top` for Intel.
|
||||||
|
|
||||||
You can also check the logs of the `immich-machine-learning` container. When a Smart Search or Face Detection job begins, or when you search with text in Immich, you should either see a log for `Available ORT providers` containing the relevant provider (e.g. `CUDAExecutionProvider` in the case of CUDA), or a `Loaded ANN model` log entry without errors in the case of ARM NN.
|
You can also check the logs of the `immich-machine-learning` container. When a Smart Search or Face Detection job begins, or when you search with text in Immich, you should either see a log for `Available ORT providers` containing the relevant provider (e.g. `CUDAExecutionProvider` in the case of CUDA), or a `Loaded ANN model` log entry without errors in the case of ARM NN.
|
||||||
|
|
||||||
@@ -147,12 +127,3 @@ Note that you should increase job concurrencies to increase overall utilization
|
|||||||
- If you encounter an error when a model is running, try a different model to see if the issue is model-specific.
|
- If you encounter an error when a model is running, try a different model to see if the issue is model-specific.
|
||||||
- You may want to increase concurrency past the default for higher utilization. However, keep in mind that this will also increase VRAM consumption.
|
- You may want to increase concurrency past the default for higher utilization. However, keep in mind that this will also increase VRAM consumption.
|
||||||
- Larger models benefit more from hardware acceleration, if you have the VRAM for them.
|
- Larger models benefit more from hardware acceleration, if you have the VRAM for them.
|
||||||
- Compared to ARM NN, RKNPU has:
|
|
||||||
- Wider model support (including for search, which ARM NN does not accelerate)
|
|
||||||
- Less heat generation
|
|
||||||
- Very slightly lower accuracy (RKNPU always uses FP16, while ARM NN by default uses higher precision FP32 unless `MACHINE_LEARNING_ANN_FP16_TURBO` is enabled)
|
|
||||||
- Varying speed (tested on RK3588):
|
|
||||||
- If `MACHINE_LEARNING_RKNN_THREADS` is at the default of 1, RKNPU will have substantially lower throughput for ML jobs than ARM NN in most cases, but similar latency (such as when searching)
|
|
||||||
- If `MACHINE_LEARNING_RKNN_THREADS` is set to 3, it will be somewhat faster than ARM NN at FP32, but somewhat slower than ARM NN if `MACHINE_LEARNING_ANN_FP16_TURBO` is enabled
|
|
||||||
- When other tasks also use the GPU (like transcoding), RKNPU has a significant advantage over ARM NN as it uses the otherwise idle NPU instead of competing for GPU usage
|
|
||||||
- Lower RAM usage if `MACHINE_LEARNING_RKNN_THREADS` is at the default of 1, but significantly higher if greater than 1 (which is necessary for it to fully utilize the NPU and hence be comparable in speed to ARM NN)
|
|
||||||
|
|||||||
+9
-1159
File diff suppressed because it is too large
Load Diff
@@ -23,12 +23,12 @@ name: immich_remote_ml
|
|||||||
services:
|
services:
|
||||||
immich-machine-learning:
|
immich-machine-learning:
|
||||||
container_name: immich_machine_learning
|
container_name: immich_machine_learning
|
||||||
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] to the image tag.
|
# For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
|
||||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
|
||||||
# extends:
|
# extends:
|
||||||
# file: hwaccel.ml.yml
|
# file: hwaccel.ml.yml
|
||||||
# service: # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
# service: # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||||
volumes:
|
volumes:
|
||||||
- model-cache:/cache
|
- model-cache:/cache
|
||||||
restart: always
|
restart: always
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
---
|
|
||||||
sidebar_position: 100
|
|
||||||
---
|
|
||||||
|
|
||||||
# Config File
|
# Config File
|
||||||
|
|
||||||
A config file can be provided as an alternative to the UI configuration.
|
A config file can be provided as an alternative to the UI configuration.
|
||||||
|
|||||||
@@ -69,7 +69,39 @@ If you get an error `can't set healthcheck.start_interval as feature require Doc
|
|||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
Read the [Post Installation](/docs/install/post-install.mdx) steps and [upgrade instructions](/docs/install/upgrading.md).
|
Read the [Post Installation](/docs/install/post-install.mdx) steps or setup optional features below.
|
||||||
|
|
||||||
|
### Setting up optional features
|
||||||
|
|
||||||
|
- [External Libraries](/docs/features/libraries.md): Adding your existing photo library to Immich
|
||||||
|
- [Hardware Transcoding](/docs/features/hardware-transcoding.md): Speeding up video transcoding
|
||||||
|
- [Hardware-Accelerated Machine Learning](/docs/features/ml-hardware-acceleration.md): Speeding up various machine learning tasks in Immich
|
||||||
|
|
||||||
|
### Upgrading
|
||||||
|
|
||||||
|
:::danger Read the release notes
|
||||||
|
Immich is currently under heavy development, which means you can expect [breaking changes][breaking] and bugs. Therefore, we recommend reading the release notes prior to updating and to take special care when using automated tools like [Watchtower][watchtower].
|
||||||
|
|
||||||
|
You can see versions that had breaking changes [here][breaking].
|
||||||
|
:::
|
||||||
|
|
||||||
|
If `IMMICH_VERSION` is set, it will need to be updated to the latest or desired version.
|
||||||
|
|
||||||
|
When a new version of Immich is [released][releases], the application can be upgraded and restarted with the following commands, run in the directory with the `docker-compose.yml` file:
|
||||||
|
|
||||||
|
```bash title="Upgrade and restart Immich"
|
||||||
|
docker compose pull && docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
To clean up disk space, the old version's obsolete container images can be deleted with the following command:
|
||||||
|
|
||||||
|
```bash title="Clean up unused Docker images"
|
||||||
|
docker image prune
|
||||||
|
```
|
||||||
|
|
||||||
[compose-file]: https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
|
[compose-file]: https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
|
||||||
[env-file]: https://github.com/immich-app/immich/releases/latest/download/example.env
|
[env-file]: https://github.com/immich-app/immich/releases/latest/download/example.env
|
||||||
|
[watchtower]: https://containrrr.dev/watchtower/
|
||||||
|
[breaking]: https://github.com/immich-app/immich/discussions?discussions_q=label%3Achangelog%3Abreaking-change+sort%3Adate_created
|
||||||
|
[container-auth]: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry#authenticating-to-the-container-registry
|
||||||
|
[releases]: https://github.com/immich-app/immich/releases
|
||||||
|
|||||||
@@ -170,8 +170,6 @@ Redis (Sentinel) URL example JSON before encoding:
|
|||||||
| `MACHINE_LEARNING_MAX_BATCH_SIZE__FACIAL_RECOGNITION` | Set the maximum number of faces that will be processed at once by the facial recognition model | None (`1` if using OpenVINO) | machine learning |
|
| `MACHINE_LEARNING_MAX_BATCH_SIZE__FACIAL_RECOGNITION` | Set the maximum number of faces that will be processed at once by the facial recognition model | None (`1` if using OpenVINO) | machine learning |
|
||||||
| `MACHINE_LEARNING_PING_TIMEOUT` | How long (ms) to wait for a PING response when checking if an ML server is available | `2000` | server |
|
| `MACHINE_LEARNING_PING_TIMEOUT` | How long (ms) to wait for a PING response when checking if an ML server is available | `2000` | server |
|
||||||
| `MACHINE_LEARNING_AVAILABILITY_BACKOFF_TIME` | How long to ignore ML servers that are offline before trying again | `30000` | server |
|
| `MACHINE_LEARNING_AVAILABILITY_BACKOFF_TIME` | How long to ignore ML servers that are offline before trying again | `30000` | server |
|
||||||
| `MACHINE_LEARNING_RKNN` | Enable RKNN hardware acceleration if supported | `True` | machine learning |
|
|
||||||
| `MACHINE_LEARNING_RKNN_THREADS` | How many threads of RKNN runtime should be spinned up while inferencing. | `1` | machine learning |
|
|
||||||
|
|
||||||
\*1: It is recommended to begin with this parameter when changing the concurrency levels of the machine learning service and then tune the other ones.
|
\*1: It is recommended to begin with this parameter when changing the concurrency levels of the machine learning service and then tune the other ones.
|
||||||
|
|
||||||
|
|||||||
@@ -41,9 +41,3 @@ A list of common steps to take after installing Immich include:
|
|||||||
## Step 7 - Setup Server Backups
|
## Step 7 - Setup Server Backups
|
||||||
|
|
||||||
<ServerBackup />
|
<ServerBackup />
|
||||||
|
|
||||||
## Setting up optional features
|
|
||||||
|
|
||||||
- [External Libraries](/docs/features/libraries.md): Adding your existing photo library to Immich
|
|
||||||
- [Hardware Transcoding](/docs/features/hardware-transcoding.md): Speeding up video transcoding
|
|
||||||
- [Hardware-Accelerated Machine Learning](/docs/features/ml-hardware-acceleration.md): Speeding up various machine learning tasks in Immich
|
|
||||||
|
|||||||
@@ -67,4 +67,10 @@ Click "**Edit Rules**" and add the following firewall rules:
|
|||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
Read the [Post Installation](/docs/install/post-install.mdx) steps and [upgrade instructions](/docs/install/upgrading.md).
|
Read the [Post Installation](/docs/install/post-install.mdx) steps or setup optional features below.
|
||||||
|
|
||||||
|
### Setting up optional features
|
||||||
|
|
||||||
|
- [External Libraries](/docs/features/libraries.md): Adding your existing photo library to Immich
|
||||||
|
- [Hardware Transcoding](/docs/features/hardware-transcoding.md): Speeding up video transcoding
|
||||||
|
- [Hardware-Accelerated Machine Learning](/docs/features/ml-hardware-acceleration.md): Speeding up various machine learning tasks in Immich
|
||||||
|
|||||||
@@ -247,10 +247,6 @@ Some examples are: `IMMICH_VERSION`, `UPLOAD_LOCATION`, `DB_DATA_LOCATION`, `TZ`
|
|||||||
|
|
||||||
## Updating the App
|
## Updating the App
|
||||||
|
|
||||||
:::danger
|
|
||||||
Make sure to read the general [upgrade instructions](/docs/install/upgrading.md).
|
|
||||||
:::
|
|
||||||
|
|
||||||
When updates become available, SCALE alerts and provides easy updates.
|
When updates become available, SCALE alerts and provides easy updates.
|
||||||
To update the app to the latest version:
|
To update the app to the latest version:
|
||||||
|
|
||||||
|
|||||||
@@ -131,10 +131,6 @@ For more information on how to use the application once installed, please refer
|
|||||||
|
|
||||||
## Updating Steps
|
## Updating Steps
|
||||||
|
|
||||||
:::danger
|
|
||||||
Make sure to read the general [upgrade instructions](/docs/install/upgrading.md).
|
|
||||||
:::
|
|
||||||
|
|
||||||
Updating is extremely easy however it's important to be aware that containers managed via the Docker Compose Manager plugin do not integrate with Unraid's native dockerman UI, the label "_update ready_" will always be present on containers installed via the Docker Compose Manager.
|
Updating is extremely easy however it's important to be aware that containers managed via the Docker Compose Manager plugin do not integrate with Unraid's native dockerman UI, the label "_update ready_" will always be present on containers installed via the Docker Compose Manager.
|
||||||
|
|
||||||
<img
|
<img
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
---
|
|
||||||
sidebar_position: 95
|
|
||||||
---
|
|
||||||
|
|
||||||
# Upgrading
|
|
||||||
|
|
||||||
:::danger Read the release notes
|
|
||||||
Immich is currently under heavy development, which means you can expect [breaking changes][breaking] and bugs. You should read the release notes prior to updating and take special care when using automated tools like [Watchtower][watchtower].
|
|
||||||
|
|
||||||
You can see versions that had breaking changes [here][breaking].
|
|
||||||
:::
|
|
||||||
|
|
||||||
When a new version of Immich is [released][releases], you should read the release notes and account for any breaking changes noted (as mentioned above).
|
|
||||||
If you use `IMMICH_VERSION` in your `.env` file, it will need to be updated to the latest or desired version.
|
|
||||||
After that, the application can be upgraded and restarted with the following commands, run in the directory with the `docker-compose.yml` file:
|
|
||||||
|
|
||||||
```bash title="Upgrade and restart Immich"
|
|
||||||
docker compose pull && docker compose up -d
|
|
||||||
```
|
|
||||||
|
|
||||||
To clean up disk space, the old version's obsolete container images can be deleted with the following command:
|
|
||||||
|
|
||||||
```bash title="Clean up unused Docker images"
|
|
||||||
docker image prune
|
|
||||||
```
|
|
||||||
|
|
||||||
[watchtower]: https://containrrr.dev/watchtower/
|
|
||||||
[breaking]: https://github.com/immich-app/immich/discussions?discussions_q=label%3Achangelog%3Abreaking-change+sort%3Adate_created
|
|
||||||
[releases]: https://github.com/immich-app/immich/releases
|
|
||||||
@@ -1,7 +1,2 @@
|
|||||||
Now that you have imported some pictures, you should setup server backups to preserve your memories.
|
Now that you have imported some pictures, you should setup server backups to preserve your memories.
|
||||||
You can do so by following our [backup guide](/docs/administration/backup-and-restore.md).
|
You can do so by following our [backup guide](/docs/administration/backup-and-restore.md).
|
||||||
|
|
||||||
:::danger
|
|
||||||
Immich is still under heavy development _and_ handles very important data.
|
|
||||||
It is essential that you set up good backups, and test them.
|
|
||||||
:::
|
|
||||||
|
|||||||
Generated
+9
-9
@@ -5308,9 +5308,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/autoprefixer": {
|
"node_modules/autoprefixer": {
|
||||||
"version": "10.4.21",
|
"version": "10.4.20",
|
||||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
|
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
|
||||||
"integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
|
"integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -5327,11 +5327,11 @@
|
|||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"browserslist": "^4.24.4",
|
"browserslist": "^4.23.3",
|
||||||
"caniuse-lite": "^1.0.30001702",
|
"caniuse-lite": "^1.0.30001646",
|
||||||
"fraction.js": "^4.3.7",
|
"fraction.js": "^4.3.7",
|
||||||
"normalize-range": "^0.1.2",
|
"normalize-range": "^0.1.2",
|
||||||
"picocolors": "^1.1.1",
|
"picocolors": "^1.0.1",
|
||||||
"postcss-value-parser": "^4.2.0"
|
"postcss-value-parser": "^4.2.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -5781,9 +5781,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001706",
|
"version": "1.0.30001695",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001695.tgz",
|
||||||
"integrity": "sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==",
|
"integrity": "sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
|||||||
Vendored
-32
@@ -1,36 +1,4 @@
|
|||||||
[
|
[
|
||||||
{
|
|
||||||
"label": "v1.131.3",
|
|
||||||
"url": "https://v1.131.3.archive.immich.app"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "v1.131.2",
|
|
||||||
"url": "https://v1.131.2.archive.immich.app"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "v1.131.1",
|
|
||||||
"url": "https://v1.131.1.archive.immich.app"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "v1.131.0",
|
|
||||||
"url": "https://v1.131.0.archive.immich.app"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "v1.130.3",
|
|
||||||
"url": "https://v1.130.3.archive.immich.app"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "v1.130.2",
|
|
||||||
"url": "https://v1.130.2.archive.immich.app"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "v1.130.1",
|
|
||||||
"url": "https://v1.130.1.archive.immich.app"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "v1.130.0",
|
|
||||||
"url": "https://v1.130.0.archive.immich.app"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"label": "v1.129.0",
|
"label": "v1.129.0",
|
||||||
"url": "https://v1.129.0.archive.immich.app"
|
"url": "https://v1.129.0.archive.immich.app"
|
||||||
|
|||||||
+20
-10
@@ -1,29 +1,39 @@
|
|||||||
|
import { FlatCompat } from '@eslint/eslintrc';
|
||||||
import js from '@eslint/js';
|
import js from '@eslint/js';
|
||||||
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
|
import typescriptEslint from '@typescript-eslint/eslint-plugin';
|
||||||
import eslintPluginUnicorn from 'eslint-plugin-unicorn';
|
import tsParser from '@typescript-eslint/parser';
|
||||||
import globals from 'globals';
|
import globals from 'globals';
|
||||||
import path from 'node:path';
|
import path from 'node:path';
|
||||||
import { fileURLToPath } from 'node:url';
|
import { fileURLToPath } from 'node:url';
|
||||||
import typescriptEslint from 'typescript-eslint';
|
|
||||||
|
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = path.dirname(__filename);
|
const __dirname = path.dirname(__filename);
|
||||||
|
const compat = new FlatCompat({
|
||||||
|
baseDirectory: __dirname,
|
||||||
|
recommendedConfig: js.configs.recommended,
|
||||||
|
allConfig: js.configs.all,
|
||||||
|
});
|
||||||
|
|
||||||
export default typescriptEslint.config([
|
export default [
|
||||||
eslintPluginUnicorn.configs.recommended,
|
|
||||||
eslintPluginPrettierRecommended,
|
|
||||||
js.configs.recommended,
|
|
||||||
typescriptEslint.configs.recommended,
|
|
||||||
{
|
{
|
||||||
ignores: ['eslint.config.mjs'],
|
ignores: ['eslint.config.mjs'],
|
||||||
},
|
},
|
||||||
|
...compat.extends(
|
||||||
|
'plugin:@typescript-eslint/recommended',
|
||||||
|
'plugin:prettier/recommended',
|
||||||
|
'plugin:unicorn/recommended',
|
||||||
|
),
|
||||||
{
|
{
|
||||||
|
plugins: {
|
||||||
|
'@typescript-eslint': typescriptEslint,
|
||||||
|
},
|
||||||
|
|
||||||
languageOptions: {
|
languageOptions: {
|
||||||
globals: {
|
globals: {
|
||||||
...globals.node,
|
...globals.node,
|
||||||
},
|
},
|
||||||
|
|
||||||
parser: typescriptEslint.parser,
|
parser: tsParser,
|
||||||
ecmaVersion: 5,
|
ecmaVersion: 5,
|
||||||
sourceType: 'module',
|
sourceType: 'module',
|
||||||
|
|
||||||
@@ -52,4 +62,4 @@ export default typescriptEslint.config([
|
|||||||
'object-shorthand': ['error', 'always'],
|
'object-shorthand': ['error', 'always'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
]);
|
];
|
||||||
|
|||||||
Generated
+817
-649
File diff suppressed because it is too large
Load Diff
+5
-4
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "immich-e2e",
|
"name": "immich-e2e",
|
||||||
"version": "1.131.3",
|
"version": "1.129.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -25,16 +25,18 @@
|
|||||||
"@immich/sdk": "file:../open-api/typescript-sdk",
|
"@immich/sdk": "file:../open-api/typescript-sdk",
|
||||||
"@playwright/test": "^1.44.1",
|
"@playwright/test": "^1.44.1",
|
||||||
"@types/luxon": "^3.4.2",
|
"@types/luxon": "^3.4.2",
|
||||||
"@types/node": "^22.14.0",
|
"@types/node": "^22.13.9",
|
||||||
"@types/oidc-provider": "^8.5.1",
|
"@types/oidc-provider": "^8.5.1",
|
||||||
"@types/pg": "^8.11.0",
|
"@types/pg": "^8.11.0",
|
||||||
"@types/pngjs": "^6.0.4",
|
"@types/pngjs": "^6.0.4",
|
||||||
"@types/supertest": "^6.0.2",
|
"@types/supertest": "^6.0.2",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^8.15.0",
|
||||||
|
"@typescript-eslint/parser": "^8.15.0",
|
||||||
"@vitest/coverage-v8": "^3.0.0",
|
"@vitest/coverage-v8": "^3.0.0",
|
||||||
"eslint": "^9.14.0",
|
"eslint": "^9.14.0",
|
||||||
"eslint-config-prettier": "^10.0.0",
|
"eslint-config-prettier": "^10.0.0",
|
||||||
"eslint-plugin-prettier": "^5.1.3",
|
"eslint-plugin-prettier": "^5.1.3",
|
||||||
"eslint-plugin-unicorn": "^57.0.0",
|
"eslint-plugin-unicorn": "^56.0.1",
|
||||||
"exiftool-vendored": "^28.3.1",
|
"exiftool-vendored": "^28.3.1",
|
||||||
"globals": "^16.0.0",
|
"globals": "^16.0.0",
|
||||||
"jose": "^5.6.3",
|
"jose": "^5.6.3",
|
||||||
@@ -47,7 +49,6 @@
|
|||||||
"socket.io-client": "^4.7.4",
|
"socket.io-client": "^4.7.4",
|
||||||
"supertest": "^7.0.0",
|
"supertest": "^7.0.0",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"typescript-eslint": "^8.28.0",
|
|
||||||
"utimes": "^5.2.1",
|
"utimes": "^5.2.1",
|
||||||
"vitest": "^3.0.0"
|
"vitest": "^3.0.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1141,7 +1141,7 @@ describe('/asset', () => {
|
|||||||
fNumber: 8,
|
fNumber: 8,
|
||||||
focalLength: 97,
|
focalLength: 97,
|
||||||
iso: 100,
|
iso: 100,
|
||||||
lensModel: 'Sony E PZ 18-105mm F4 G OSS',
|
lensModel: 'E PZ 18-105mm F4 G OSS',
|
||||||
fileSizeInByte: 25_001_984,
|
fileSizeInByte: 25_001_984,
|
||||||
dateTimeOriginal: '2016-09-27T10:51:44+00:00',
|
dateTimeOriginal: '2016-09-27T10:51:44+00:00',
|
||||||
orientation: '1',
|
orientation: '1',
|
||||||
@@ -1163,7 +1163,7 @@ describe('/asset', () => {
|
|||||||
fNumber: 22,
|
fNumber: 22,
|
||||||
focalLength: 25,
|
focalLength: 25,
|
||||||
iso: 100,
|
iso: 100,
|
||||||
lensModel: 'Zeiss Batis 25mm F2',
|
lensModel: 'E 25mm F2',
|
||||||
fileSizeInByte: 49_512_448,
|
fileSizeInByte: 49_512_448,
|
||||||
dateTimeOriginal: '2016-01-08T14:08:01+00:00',
|
dateTimeOriginal: '2016-01-08T14:08:01+00:00',
|
||||||
orientation: '1',
|
orientation: '1',
|
||||||
@@ -1234,7 +1234,7 @@ describe('/asset', () => {
|
|||||||
focalLength: 18.3,
|
focalLength: 18.3,
|
||||||
iso: 100,
|
iso: 100,
|
||||||
latitude: 36.613_24,
|
latitude: 36.613_24,
|
||||||
lensModel: '18.3mm F2.8',
|
lensModel: 'GR LENS 18.3mm F2.8',
|
||||||
longitude: -121.897_85,
|
longitude: -121.897_85,
|
||||||
make: 'RICOH IMAGING COMPANY, LTD.',
|
make: 'RICOH IMAGING COMPANY, LTD.',
|
||||||
model: 'RICOH GR III',
|
model: 'RICOH GR III',
|
||||||
@@ -1257,7 +1257,6 @@ describe('/asset', () => {
|
|||||||
|
|
||||||
for (const { id, status } of assets) {
|
for (const { id, status } of assets) {
|
||||||
expect(status).toBe(AssetMediaStatus.Created);
|
expect(status).toBe(AssetMediaStatus.Created);
|
||||||
// longer timeout as the thumbnail generation from full-size raw files can take a while
|
|
||||||
await utils.waitForWebsocketEvent({ event: 'assetUpload', id });
|
await utils.waitForWebsocketEvent({ event: 'assetUpload', id });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -329,7 +329,7 @@ describe('/libraries', () => {
|
|||||||
const library = await utils.createLibrary(admin.accessToken, {
|
const library = await utils.createLibrary(admin.accessToken, {
|
||||||
ownerId: admin.userId,
|
ownerId: admin.userId,
|
||||||
importPaths: [`${testAssetDirInternal}/temp`],
|
importPaths: [`${testAssetDirInternal}/temp`],
|
||||||
exclusionPatterns: ['**/directoryA/**'],
|
exclusionPatterns: ['**/directoryA'],
|
||||||
});
|
});
|
||||||
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
await utils.scan(admin.accessToken, library.id);
|
||||||
@@ -337,82 +337,7 @@ describe('/libraries', () => {
|
|||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
||||||
|
|
||||||
expect(assets.count).toBe(1);
|
expect(assets.count).toBe(1);
|
||||||
|
expect(assets.items[0].originalPath.includes('directoryB'));
|
||||||
expect(assets.items).toEqual(
|
|
||||||
expect.arrayContaining([
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining('directoryB/assetB.png') }),
|
|
||||||
]),
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should scan external library with multiple exclusion patterns', async () => {
|
|
||||||
const library = await utils.createLibrary(admin.accessToken, {
|
|
||||||
ownerId: admin.userId,
|
|
||||||
importPaths: [`${testAssetDirInternal}/temp`],
|
|
||||||
exclusionPatterns: ['**/directoryA/**', '**/directoryB/**'],
|
|
||||||
});
|
|
||||||
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.count).toBe(0);
|
|
||||||
|
|
||||||
expect(assets.items).toEqual([]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should remove assets covered by a new exclusion pattern', async () => {
|
|
||||||
const library = await utils.createLibrary(admin.accessToken, {
|
|
||||||
ownerId: admin.userId,
|
|
||||||
importPaths: [`${testAssetDirInternal}/temp`],
|
|
||||||
});
|
|
||||||
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
{
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.count).toBe(2);
|
|
||||||
|
|
||||||
expect(assets.items).toEqual(
|
|
||||||
expect.arrayContaining([
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining('directoryA/assetA.png') }),
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining('directoryB/assetB.png') }),
|
|
||||||
]),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
await utils.updateLibrary(admin.accessToken, library.id, {
|
|
||||||
exclusionPatterns: ['**/directoryA/**'],
|
|
||||||
});
|
|
||||||
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
{
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.count).toBe(1);
|
|
||||||
|
|
||||||
expect(assets.items).toEqual(
|
|
||||||
expect.arrayContaining([
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining('directoryB/assetB.png') }),
|
|
||||||
]),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
await utils.updateLibrary(admin.accessToken, library.id, {
|
|
||||||
exclusionPatterns: ['**/directoryA/**', '**/directoryB/**'],
|
|
||||||
});
|
|
||||||
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
{
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.count).toBe(0);
|
|
||||||
|
|
||||||
expect(assets.items).toEqual([]);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should scan multiple import paths', async () => {
|
it('should scan multiple import paths', async () => {
|
||||||
@@ -529,133 +454,6 @@ describe('/libraries', () => {
|
|||||||
utils.removeImageFile(`${testAssetDir}/temp/folder${char}2/asset2.png`);
|
utils.removeImageFile(`${testAssetDir}/temp/folder${char}2/asset2.png`);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should respect exclusion patterns when using multiple import paths', async () => {
|
|
||||||
// https://github.com/immich-app/immich/issues/17121
|
|
||||||
const library = await utils.createLibrary(admin.accessToken, {
|
|
||||||
ownerId: admin.userId,
|
|
||||||
importPaths: [`${testAssetDirInternal}/temp/exclusion/`, `${testAssetDirInternal}/temp/exclusion2/`],
|
|
||||||
});
|
|
||||||
|
|
||||||
const excludedFolder = `Raw`;
|
|
||||||
|
|
||||||
utils.createImageFile(`${testAssetDir}/temp/exclusion/asset1.png`);
|
|
||||||
utils.createImageFile(`${testAssetDir}/temp/exclusion/${excludedFolder}/asset2.png`);
|
|
||||||
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
{
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.items).toEqual(
|
|
||||||
expect.arrayContaining([
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`/asset1.png`) }),
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`${excludedFolder}/asset2.png`) }),
|
|
||||||
]),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
{
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.items).toEqual(
|
|
||||||
expect.arrayContaining([
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`/asset1.png`) }),
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`${excludedFolder}/asset2.png`) }),
|
|
||||||
]),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: [`**/${excludedFolder}/**`] });
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
{
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.items).toEqual([
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`/asset1.png`) }),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
{
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.items).toEqual([
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`/asset1.png`) }),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
utils.removeImageFile(`${testAssetDir}/temp/exclusion/asset1.png`);
|
|
||||||
utils.removeImageFile(`${testAssetDir}/temp/exclusion/${excludedFolder}/asset2.png`);
|
|
||||||
});
|
|
||||||
|
|
||||||
const annoyingExclusionPatterns = ['@', '#', '$', '%', '^', '&', '='];
|
|
||||||
|
|
||||||
it.each(annoyingExclusionPatterns)('should support exclusion patterns with %s', async (char) => {
|
|
||||||
const library = await utils.createLibrary(admin.accessToken, {
|
|
||||||
ownerId: admin.userId,
|
|
||||||
importPaths: [`${testAssetDirInternal}/temp/exclusion/`],
|
|
||||||
});
|
|
||||||
|
|
||||||
const excludedFolder = `${char}folder`;
|
|
||||||
|
|
||||||
utils.createImageFile(`${testAssetDir}/temp/exclusion/asset1.png`);
|
|
||||||
utils.createImageFile(`${testAssetDir}/temp/exclusion/${excludedFolder}/asset2.png`);
|
|
||||||
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
{
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.items).toEqual(
|
|
||||||
expect.arrayContaining([
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`/asset1.png`) }),
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`${excludedFolder}/asset2.png`) }),
|
|
||||||
]),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
{
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.items).toEqual(
|
|
||||||
expect.arrayContaining([
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`/asset1.png`) }),
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`${excludedFolder}/asset2.png`) }),
|
|
||||||
]),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: [`**/${excludedFolder}/**`] });
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
{
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.items).toEqual([
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`/asset1.png`) }),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
await utils.scan(admin.accessToken, library.id);
|
|
||||||
|
|
||||||
{
|
|
||||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
|
||||||
|
|
||||||
expect(assets.items).toEqual([
|
|
||||||
expect.objectContaining({ originalPath: expect.stringContaining(`/asset1.png`) }),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
utils.removeImageFile(`${testAssetDir}/temp/exclusion/asset1.png`);
|
|
||||||
utils.removeImageFile(`${testAssetDir}/temp/exclusion/${excludedFolder}/asset2.png`);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should reimport a modified file', async () => {
|
it('should reimport a modified file', async () => {
|
||||||
const library = await utils.createLibrary(admin.accessToken, {
|
const library = await utils.createLibrary(admin.accessToken, {
|
||||||
ownerId: admin.userId,
|
ownerId: admin.userId,
|
||||||
|
|||||||
@@ -633,6 +633,7 @@ describe('/search', () => {
|
|||||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
expect(body).toEqual([
|
expect(body).toEqual([
|
||||||
'Andalusia',
|
'Andalusia',
|
||||||
|
'Berlin',
|
||||||
'Glarus',
|
'Glarus',
|
||||||
'Greater Accra',
|
'Greater Accra',
|
||||||
'Havana',
|
'Havana',
|
||||||
@@ -641,7 +642,6 @@ describe('/search', () => {
|
|||||||
'Mississippi',
|
'Mississippi',
|
||||||
'New York',
|
'New York',
|
||||||
'Shanghai',
|
'Shanghai',
|
||||||
'State of Berlin',
|
|
||||||
'St.-Petersburg',
|
'St.-Petersburg',
|
||||||
'Tbilisi',
|
'Tbilisi',
|
||||||
'Tokyo',
|
'Tokyo',
|
||||||
@@ -657,6 +657,7 @@ describe('/search', () => {
|
|||||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
expect(body).toEqual([
|
expect(body).toEqual([
|
||||||
'Andalusia',
|
'Andalusia',
|
||||||
|
'Berlin',
|
||||||
'Glarus',
|
'Glarus',
|
||||||
'Greater Accra',
|
'Greater Accra',
|
||||||
'Havana',
|
'Havana',
|
||||||
@@ -665,7 +666,6 @@ describe('/search', () => {
|
|||||||
'Mississippi',
|
'Mississippi',
|
||||||
'New York',
|
'New York',
|
||||||
'Shanghai',
|
'Shanghai',
|
||||||
'State of Berlin',
|
|
||||||
'St.-Petersburg',
|
'St.-Petersburg',
|
||||||
'Tbilisi',
|
'Tbilisi',
|
||||||
'Tokyo',
|
'Tokyo',
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ describe('/shared-links', () => {
|
|||||||
const resp = await request(shareUrl).get(`/${linkWithAssets.key}`);
|
const resp = await request(shareUrl).get(`/${linkWithAssets.key}`);
|
||||||
expect(resp.status).toBe(200);
|
expect(resp.status).toBe(200);
|
||||||
expect(resp.header['content-type']).toContain('text/html');
|
expect(resp.header['content-type']).toContain('text/html');
|
||||||
expect(resp.text).toContain(`<meta property="og:image" content="https://my.immich.app`);
|
expect(resp.text).toContain(`<meta property="og:image" content="http://`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -246,7 +246,15 @@ describe('/shared-links', () => {
|
|||||||
const { status, body } = await request(app).get('/shared-links/me').query({ key: linkWithMetadata.key });
|
const { status, body } = await request(app).get('/shared-links/me').query({ key: linkWithMetadata.key });
|
||||||
|
|
||||||
expect(status).toBe(200);
|
expect(status).toBe(200);
|
||||||
expect(body.assets).toHaveLength(0);
|
expect(body.assets).toHaveLength(1);
|
||||||
|
expect(body.assets[0]).toEqual(
|
||||||
|
expect.objectContaining({
|
||||||
|
originalFileName: 'example.png',
|
||||||
|
localDateTime: expect.any(String),
|
||||||
|
fileCreatedAt: expect.any(String),
|
||||||
|
exifInfo: expect.any(Object),
|
||||||
|
}),
|
||||||
|
);
|
||||||
expect(body.album).toBeDefined();
|
expect(body.album).toBeDefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ const tests: Test[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: 'should support paths with an asterisk',
|
test: 'should support paths with an asterisk',
|
||||||
paths: [`/photos*/image1.jpg`],
|
paths: [`/photos\*/image1.jpg`],
|
||||||
files: {
|
files: {
|
||||||
'/photos*/image1.jpg': true,
|
'/photos*/image1.jpg': true,
|
||||||
'/photos*/image2.jpg': false,
|
'/photos*/image2.jpg': false,
|
||||||
@@ -40,7 +40,7 @@ const tests: Test[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: 'should support paths with a single quote',
|
test: 'should support paths with a single quote',
|
||||||
paths: [`/photos'/image1.jpg`],
|
paths: [`/photos\'/image1.jpg`],
|
||||||
files: {
|
files: {
|
||||||
"/photos'/image1.jpg": true,
|
"/photos'/image1.jpg": true,
|
||||||
"/photos'/image2.jpg": false,
|
"/photos'/image2.jpg": false,
|
||||||
@@ -49,7 +49,7 @@ const tests: Test[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: 'should support paths with a double quote',
|
test: 'should support paths with a double quote',
|
||||||
paths: [`/photos"/image1.jpg`],
|
paths: [`/photos\"/image1.jpg`],
|
||||||
files: {
|
files: {
|
||||||
'/photos"/image1.jpg': true,
|
'/photos"/image1.jpg': true,
|
||||||
'/photos"/image2.jpg': false,
|
'/photos"/image2.jpg': false,
|
||||||
@@ -67,7 +67,7 @@ const tests: Test[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: 'should support paths with an opening brace',
|
test: 'should support paths with an opening brace',
|
||||||
paths: [`/photos{/image1.jpg`],
|
paths: [`/photos\{/image1.jpg`],
|
||||||
files: {
|
files: {
|
||||||
'/photos{/image1.jpg': true,
|
'/photos{/image1.jpg': true,
|
||||||
'/photos{/image2.jpg': false,
|
'/photos{/image2.jpg': false,
|
||||||
@@ -76,7 +76,7 @@ const tests: Test[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
test: 'should support paths with a closing brace',
|
test: 'should support paths with a closing brace',
|
||||||
paths: [`/photos}/image1.jpg`],
|
paths: [`/photos\}/image1.jpg`],
|
||||||
files: {
|
files: {
|
||||||
'/photos}/image1.jpg': true,
|
'/photos}/image1.jpg': true,
|
||||||
'/photos}/image2.jpg': false,
|
'/photos}/image2.jpg': false,
|
||||||
|
|||||||
+3
-4
@@ -493,7 +493,7 @@ export const utils = {
|
|||||||
value: accessToken,
|
value: accessToken,
|
||||||
domain,
|
domain,
|
||||||
path: '/',
|
path: '/',
|
||||||
expires: 2_058_028_213,
|
expires: 1_742_402_728,
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
secure: false,
|
secure: false,
|
||||||
sameSite: 'Lax',
|
sameSite: 'Lax',
|
||||||
@@ -503,7 +503,7 @@ export const utils = {
|
|||||||
value: 'password',
|
value: 'password',
|
||||||
domain,
|
domain,
|
||||||
path: '/',
|
path: '/',
|
||||||
expires: 2_058_028_213,
|
expires: 1_742_402_728,
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
secure: false,
|
secure: false,
|
||||||
sameSite: 'Lax',
|
sameSite: 'Lax',
|
||||||
@@ -513,7 +513,7 @@ export const utils = {
|
|||||||
value: 'true',
|
value: 'true',
|
||||||
domain,
|
domain,
|
||||||
path: '/',
|
path: '/',
|
||||||
expires: 2_058_028_213,
|
expires: 1_742_402_728,
|
||||||
httpOnly: false,
|
httpOnly: false,
|
||||||
secure: false,
|
secure: false,
|
||||||
sameSite: 'Lax',
|
sameSite: 'Lax',
|
||||||
@@ -537,7 +537,6 @@ export const utils = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
waitForQueueFinish: (accessToken: string, queue: keyof AllJobStatusResponseDto, ms?: number) => {
|
waitForQueueFinish: (accessToken: string, queue: keyof AllJobStatusResponseDto, ms?: number) => {
|
||||||
// eslint-disable-next-line no-async-promise-executor
|
|
||||||
return new Promise<void>(async (resolve, reject) => {
|
return new Promise<void>(async (resolve, reject) => {
|
||||||
const timeout = setTimeout(() => reject(new Error('Timed out waiting for queue to empty')), ms || 10_000);
|
const timeout = setTimeout(() => reject(new Error('Timed out waiting for queue to empty')), ms || 10_000);
|
||||||
|
|
||||||
|
|||||||
@@ -8,14 +8,12 @@ function imageLocator(page: Page) {
|
|||||||
test.describe('Photo Viewer', () => {
|
test.describe('Photo Viewer', () => {
|
||||||
let admin: LoginResponseDto;
|
let admin: LoginResponseDto;
|
||||||
let asset: AssetMediaResponseDto;
|
let asset: AssetMediaResponseDto;
|
||||||
let rawAsset: AssetMediaResponseDto;
|
|
||||||
|
|
||||||
test.beforeAll(async () => {
|
test.beforeAll(async () => {
|
||||||
utils.initSdk();
|
utils.initSdk();
|
||||||
await utils.resetDatabase();
|
await utils.resetDatabase();
|
||||||
admin = await utils.adminSetup();
|
admin = await utils.adminSetup();
|
||||||
asset = await utils.createAsset(admin.accessToken);
|
asset = await utils.createAsset(admin.accessToken);
|
||||||
rawAsset = await utils.createAsset(admin.accessToken, { assetData: { filename: 'test.arw' } });
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test.beforeEach(async ({ context, page }) => {
|
test.beforeEach(async ({ context, page }) => {
|
||||||
@@ -38,7 +36,7 @@ test.describe('Photo Viewer', () => {
|
|||||||
await expect(page.getByTestId('loading-spinner')).toBeVisible();
|
await expect(page.getByTestId('loading-spinner')).toBeVisible();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('loads original photo when zoomed', async ({ page }) => {
|
test('loads high resolution photo when zoomed', async ({ page }) => {
|
||||||
await page.goto(`/photos/${asset.id}`);
|
await page.goto(`/photos/${asset.id}`);
|
||||||
await expect.poll(async () => await imageLocator(page).getAttribute('src')).toContain('thumbnail');
|
await expect.poll(async () => await imageLocator(page).getAttribute('src')).toContain('thumbnail');
|
||||||
const box = await imageLocator(page).boundingBox();
|
const box = await imageLocator(page).boundingBox();
|
||||||
@@ -49,17 +47,6 @@ test.describe('Photo Viewer', () => {
|
|||||||
await expect.poll(async () => await imageLocator(page).getAttribute('src')).toContain('original');
|
await expect.poll(async () => await imageLocator(page).getAttribute('src')).toContain('original');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('loads fullsize image when zoomed and original is web-incompatible', async ({ page }) => {
|
|
||||||
await page.goto(`/photos/${rawAsset.id}`);
|
|
||||||
await expect.poll(async () => await imageLocator(page).getAttribute('src')).toContain('thumbnail');
|
|
||||||
const box = await imageLocator(page).boundingBox();
|
|
||||||
expect(box).toBeTruthy();
|
|
||||||
const { x, y, width, height } = box!;
|
|
||||||
await page.mouse.move(x + width / 2, y + height / 2);
|
|
||||||
await page.mouse.wheel(0, -1);
|
|
||||||
await expect.poll(async () => await imageLocator(page).getAttribute('src')).toContain('fullsize');
|
|
||||||
});
|
|
||||||
|
|
||||||
test('reloads photo when checksum changes', async ({ page }) => {
|
test('reloads photo when checksum changes', async ({ page }) => {
|
||||||
await page.goto(`/photos/${asset.id}`);
|
await page.goto(`/photos/${asset.id}`);
|
||||||
await expect.poll(async () => await imageLocator(page).getAttribute('src')).toContain('thumbnail');
|
await expect.poll(async () => await imageLocator(page).getAttribute('src')).toContain('thumbnail');
|
||||||
|
|||||||
@@ -45,10 +45,10 @@ test.describe('Shared Links', () => {
|
|||||||
await page.goto(`/share/${sharedLink.key}`);
|
await page.goto(`/share/${sharedLink.key}`);
|
||||||
await page.getByRole('heading', { name: 'Test Album' }).waitFor();
|
await page.getByRole('heading', { name: 'Test Album' }).waitFor();
|
||||||
await page.locator(`[data-asset-id="${asset.id}"]`).hover();
|
await page.locator(`[data-asset-id="${asset.id}"]`).hover();
|
||||||
await page.waitForSelector('[data-group] svg');
|
await page.waitForSelector('#asset-group-by-date svg');
|
||||||
await page.getByRole('checkbox').click();
|
await page.getByRole('checkbox').click();
|
||||||
await page.getByRole('button', { name: 'Download' }).click();
|
await page.getByRole('button', { name: 'Download' }).click();
|
||||||
await page.waitForEvent('download');
|
await page.getByText('DOWNLOADING', { exact: true }).waitFor();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('download all from shared link', async ({ page }) => {
|
test('download all from shared link', async ({ page }) => {
|
||||||
@@ -56,7 +56,6 @@ test.describe('Shared Links', () => {
|
|||||||
await page.getByRole('heading', { name: 'Test Album' }).waitFor();
|
await page.getByRole('heading', { name: 'Test Album' }).waitFor();
|
||||||
await page.getByRole('button', { name: 'Download' }).click();
|
await page.getByRole('button', { name: 'Download' }).click();
|
||||||
await page.getByText('DOWNLOADING', { exact: true }).waitFor();
|
await page.getByText('DOWNLOADING', { exact: true }).waitFor();
|
||||||
await page.waitForEvent('download');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('enter password for a shared link', async ({ page }) => {
|
test('enter password for a shared link', async ({ page }) => {
|
||||||
|
|||||||
+4
-12
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"about": "Oor",
|
"about": "Verfris",
|
||||||
"account": "Rekening",
|
"account": "Rekening",
|
||||||
"account_settings": "Rekeninginstellings",
|
"account_settings": "Rekeninginstellings",
|
||||||
"acknowledge": "Erken",
|
"acknowledge": "Erken",
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
"duplicate_detection_job_description": "Begin masjienleer op bates om soortgelyke beelde op te spoor. Maak staat op Smart Search",
|
"duplicate_detection_job_description": "Begin masjienleer op bates om soortgelyke beelde op te spoor. Maak staat op Smart Search",
|
||||||
"exclusion_pattern_description": "Met uitsluitingspatrone kan jy lêers en vouers ignoreer wanneer jy jou biblioteek skandeer. Dit is nuttig as jy vouers het wat lêers bevat wat jy nie wil invoer nie, soos RAW-lêers.",
|
"exclusion_pattern_description": "Met uitsluitingspatrone kan jy lêers en vouers ignoreer wanneer jy jou biblioteek skandeer. Dit is nuttig as jy vouers het wat lêers bevat wat jy nie wil invoer nie, soos RAW-lêers.",
|
||||||
"external_library_created_at": "Eksterne biblioteek (geskep op {date})",
|
"external_library_created_at": "Eksterne biblioteek (geskep op {date})",
|
||||||
"external_library_management": "Eksterne Biblioteekbestuur",
|
"external_library_management": "Eksterne Biblioteek-opsies",
|
||||||
"face_detection": "Gesig deteksie",
|
"face_detection": "Gesig deteksie",
|
||||||
"failed_job_command": "Opdrag {command} het misluk vir werk: {job}",
|
"failed_job_command": "Opdrag {command} het misluk vir werk: {job}",
|
||||||
"force_delete_user_warning": "WAARSKUWING: Dit sal onmiddellik die gebruiker en alle bates verwyder. Dit kan nie ontdoen word nie en die lêers kan nie herstel word nie.",
|
"force_delete_user_warning": "WAARSKUWING: Dit sal onmiddellik die gebruiker en alle bates verwyder. Dit kan nie ontdoen word nie en die lêers kan nie herstel word nie.",
|
||||||
@@ -64,8 +64,7 @@
|
|||||||
"image_format": "Formaat",
|
"image_format": "Formaat",
|
||||||
"image_format_description": "WebP produseer kleiner lêers as JPEG, maar is stadiger om te enkodeer.",
|
"image_format_description": "WebP produseer kleiner lêers as JPEG, maar is stadiger om te enkodeer.",
|
||||||
"image_prefer_embedded_preview": "Verkies ingebedde voorskou",
|
"image_prefer_embedded_preview": "Verkies ingebedde voorskou",
|
||||||
"image_prefer_wide_gamut": "Verkies wide gamut",
|
"image_prefer_wide_gamut": "Verkies wye spektrum",
|
||||||
"image_prefer_wide_gamut_setting_description": "Gebruik Display P3 vir kleinkiekies. Dit behou die lewendheid van beelde met wye kleurruimtes beter, maar beelde kan anders verskyn op ou apparate 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 bate bekyk word en vir masjienleer",
|
"image_preview_description": "Mediumgrootte prent met gestroopte metadata, wat gebruik word wanneer 'n enkele bate bekyk word en vir masjienleer",
|
||||||
"image_preview_quality_description": "Voorskou kwaliteit van 1-100. Hoër is beter, maar produseer groter lêers en kan app-reaksie verminder. Die stel van 'n lae waarde kan masjienleerkwaliteit beïnvloed.",
|
"image_preview_quality_description": "Voorskou kwaliteit van 1-100. Hoër is beter, maar produseer groter lêers en kan app-reaksie verminder. Die stel van 'n lae waarde kan masjienleerkwaliteit beïnvloed.",
|
||||||
"image_preview_title": "Voorskou Instellings",
|
"image_preview_title": "Voorskou Instellings",
|
||||||
@@ -73,14 +72,7 @@
|
|||||||
"image_resolution": "Resolusie",
|
"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 app-reaksie verminder.",
|
"image_resolution_description": "Hoër resolusies kan meer detail bewaar, maar neem langer om te enkodeer, het groter lêergroottes en kan app-reaksie verminder.",
|
||||||
"image_settings": "Prent Instellings",
|
"image_settings": "Prent Instellings",
|
||||||
"image_settings_description": "Bestuur die kwaliteit en resolusie van gegenereerde beelde",
|
"image_settings_description": "Bestuur die kwaliteit en resolusie van gegenereerde beelde"
|
||||||
"image_thumbnail_description": "Klein kleinkiekies sonder metadata, gebruik om groepe foto's soos die tydlyn te bekyk",
|
|
||||||
"image_thumbnail_quality_description": "Kleinkiekiekwaliteit van 1-100. Hoër is beter, maar produseer groter lêers en kan die toepassing vertraag.",
|
|
||||||
"image_thumbnail_title": "Kleinkiekie-instellings",
|
|
||||||
"job_concurrency": "{job} gelyktydigheid",
|
|
||||||
"job_created": "Taak gemaak",
|
|
||||||
"job_not_concurrency_safe": "Hierdie taak kan nie gelyktydig uitgevoer word nie.",
|
|
||||||
"job_settings": "Agtergrondtaakinstellings"
|
|
||||||
},
|
},
|
||||||
"search_by_description": "Soek by beskrywing",
|
"search_by_description": "Soek by beskrywing",
|
||||||
"search_by_description_example": "Stapdag in Sapa"
|
"search_by_description_example": "Stapdag in Sapa"
|
||||||
|
|||||||
+2
-4
@@ -162,6 +162,7 @@
|
|||||||
"no_pattern_added": "لم يتم إضافة أي أنماط",
|
"no_pattern_added": "لم يتم إضافة أي أنماط",
|
||||||
"note_apply_storage_label_previous_assets": "ملاحظة: لتطبيق تسمية التخزين على المحتويات التي تم رفعها سابقًا، قم بتشغيل",
|
"note_apply_storage_label_previous_assets": "ملاحظة: لتطبيق تسمية التخزين على المحتويات التي تم رفعها سابقًا، قم بتشغيل",
|
||||||
"note_cannot_be_changed_later": "ملاحظة: لا يمكن تغيير هذا لاحقًا!",
|
"note_cannot_be_changed_later": "ملاحظة: لا يمكن تغيير هذا لاحقًا!",
|
||||||
|
"note_unlimited_quota": "ملاحظة: أدخل 0 للحصول على حصة غير محدودة",
|
||||||
"notification_email_from_address": "عنوان المرسل",
|
"notification_email_from_address": "عنوان المرسل",
|
||||||
"notification_email_from_address_description": "عنوان البريد الإلكتروني للمرسل، على سبيل المثال: \"Immich Photo Server noreply@example.com\"",
|
"notification_email_from_address_description": "عنوان البريد الإلكتروني للمرسل، على سبيل المثال: \"Immich Photo Server noreply@example.com\"",
|
||||||
"notification_email_host_description": "مضيف خادم البريد الإلكتروني (مثلًا: smtp.immich.app)",
|
"notification_email_host_description": "مضيف خادم البريد الإلكتروني (مثلًا: smtp.immich.app)",
|
||||||
@@ -922,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "قم بإنشاء ألبوم لمشاركة الصور ومقاطع الفيديو مع الأشخاص في شبكتك",
|
"no_shared_albums_message": "قم بإنشاء ألبوم لمشاركة الصور ومقاطع الفيديو مع الأشخاص في شبكتك",
|
||||||
"not_in_any_album": "ليست في أي ألبوم",
|
"not_in_any_album": "ليست في أي ألبوم",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "ملاحظة: لتطبيق تسمية التخزين على المحتويات التي تم رفعها مسبقًا، قم بتشغيل",
|
"note_apply_storage_label_to_previously_uploaded assets": "ملاحظة: لتطبيق تسمية التخزين على المحتويات التي تم رفعها مسبقًا، قم بتشغيل",
|
||||||
|
"note_unlimited_quota": "ملاحظة: أدخل 0 للحصة غير المحدودة",
|
||||||
"notes": "ملاحظات",
|
"notes": "ملاحظات",
|
||||||
"notification_toggle_setting_description": "تفعيل إشعارات البريد الإلكتروني",
|
"notification_toggle_setting_description": "تفعيل إشعارات البريد الإلكتروني",
|
||||||
"notifications": "إشعارات",
|
"notifications": "إشعارات",
|
||||||
@@ -985,7 +987,6 @@
|
|||||||
"permanently_deleted_asset": "تم حذف الأصل بشكل نهائي",
|
"permanently_deleted_asset": "تم حذف الأصل بشكل نهائي",
|
||||||
"permanently_deleted_assets_count": "تم حذف {count, plural, one {# محتوى} other {# المحتويات}} نهائيًا",
|
"permanently_deleted_assets_count": "تم حذف {count, plural, one {# محتوى} other {# المحتويات}} نهائيًا",
|
||||||
"person": "شخص",
|
"person": "شخص",
|
||||||
"person_birthdate": "تاريخ الميلاد {التاريخ}",
|
|
||||||
"person_hidden": "{name}{hidden, select, true { (مخفي)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (مخفي)} other {}}",
|
||||||
"photo_shared_all_users": "يبدو أنك شاركت صورك مع جميع المستخدمين أو ليس لديك أي مستخدم للمشاركة معه.",
|
"photo_shared_all_users": "يبدو أنك شاركت صورك مع جميع المستخدمين أو ليس لديك أي مستخدم للمشاركة معه.",
|
||||||
"photos": "الصور",
|
"photos": "الصور",
|
||||||
@@ -1077,8 +1078,6 @@
|
|||||||
"remove_from_album": "إزالة من الألبوم",
|
"remove_from_album": "إزالة من الألبوم",
|
||||||
"remove_from_favorites": "إزالة من المفضلة",
|
"remove_from_favorites": "إزالة من المفضلة",
|
||||||
"remove_from_shared_link": "إزالة من الرابط المشترك",
|
"remove_from_shared_link": "إزالة من الرابط المشترك",
|
||||||
"remove_memory": "إزالة الذاكرة",
|
|
||||||
"remove_photo_from_memory": "إزالة الصورة من هذه الذكرى",
|
|
||||||
"remove_url": "إزالة عنوان URL",
|
"remove_url": "إزالة عنوان URL",
|
||||||
"remove_user": "إزالة المستخدم",
|
"remove_user": "إزالة المستخدم",
|
||||||
"removed_api_key": "تم إزالة مفتاح API: {name}",
|
"removed_api_key": "تم إزالة مفتاح API: {name}",
|
||||||
@@ -1149,7 +1148,6 @@
|
|||||||
"searching_locales": "جارٍ البحث في اللغات...",
|
"searching_locales": "جارٍ البحث في اللغات...",
|
||||||
"second": "ثانية",
|
"second": "ثانية",
|
||||||
"see_all_people": "عرض جميع الأشخاص",
|
"see_all_people": "عرض جميع الأشخاص",
|
||||||
"select": "إختر",
|
|
||||||
"select_album_cover": "تحديد غلاف الألبوم",
|
"select_album_cover": "تحديد غلاف الألبوم",
|
||||||
"select_all": "تحديد الكل",
|
"select_all": "تحديد الكل",
|
||||||
"select_all_duplicates": "تحديد جميع النسخ المكررة",
|
"select_all_duplicates": "تحديد جميع النسخ المكررة",
|
||||||
|
|||||||
@@ -162,6 +162,7 @@
|
|||||||
"no_pattern_added": "Няма добавен модел",
|
"no_pattern_added": "Няма добавен модел",
|
||||||
"note_apply_storage_label_previous_assets": "Забележка: За да приложите етикета за съхранение към предварително качени файлове, стартирайте",
|
"note_apply_storage_label_previous_assets": "Забележка: За да приложите етикета за съхранение към предварително качени файлове, стартирайте",
|
||||||
"note_cannot_be_changed_later": "ВНИМАНИЕ: Това не може да бъде променено по-късно!",
|
"note_cannot_be_changed_later": "ВНИМАНИЕ: Това не може да бъде променено по-късно!",
|
||||||
|
"note_unlimited_quota": "Бележка: Въведете 0 за да нямате лимит на квотата",
|
||||||
"notification_email_from_address": "От адрес",
|
"notification_email_from_address": "От адрес",
|
||||||
"notification_email_from_address_description": "Електронна поща на изпращача, например: \"Immich Photo Server <noreply@example.com>\"",
|
"notification_email_from_address_description": "Електронна поща на изпращача, например: \"Immich Photo Server <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Хост на сървъра за електронна поща (например: smtp.immich.app)",
|
"notification_email_host_description": "Хост на сървъра за електронна поща (например: smtp.immich.app)",
|
||||||
@@ -922,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "Създайте албум, за да споделяте снимки и видеоклипове с хората в мрежата си",
|
"no_shared_albums_message": "Създайте албум, за да споделяте снимки и видеоклипове с хората в мрежата си",
|
||||||
"not_in_any_album": "Не е в никой албум",
|
"not_in_any_album": "Не е в никой албум",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Забележка: За да приложите етикета за съхранение към предварително качени активи, стартирайте",
|
"note_apply_storage_label_to_previously_uploaded assets": "Забележка: За да приложите етикета за съхранение към предварително качени активи, стартирайте",
|
||||||
|
"note_unlimited_quota": "Забележка: Въведете 0 за неограничена квота",
|
||||||
"notes": "Бележки",
|
"notes": "Бележки",
|
||||||
"notification_toggle_setting_description": "Активиране на имейл известия",
|
"notification_toggle_setting_description": "Активиране на имейл известия",
|
||||||
"notifications": "Известия",
|
"notifications": "Известия",
|
||||||
|
|||||||
+16
-16
@@ -1,22 +1,20 @@
|
|||||||
{
|
{
|
||||||
"about": "abaot",
|
"account": "",
|
||||||
"account": "Akaont",
|
"account_settings": "",
|
||||||
"account_settings": "Seting blo Akaont",
|
"acknowledge": "",
|
||||||
"acknowledge": "Akcept",
|
|
||||||
"action": "",
|
"action": "",
|
||||||
"actions": "",
|
"actions": "",
|
||||||
"active": "Stap Mekem",
|
"active": "",
|
||||||
"activity": "Wanem hemi Mekem",
|
"activity": "",
|
||||||
"activity_changed": "WAnem hemi Mekem hemi",
|
"add": "",
|
||||||
"add": "Ad",
|
"add_a_description": "",
|
||||||
"add_a_description": "Putem Description blo hem",
|
"add_a_location": "",
|
||||||
"add_a_location": "Putem place blo hem",
|
"add_a_name": "",
|
||||||
"add_a_name": "Putem nam blo hem",
|
"add_a_title": "",
|
||||||
"add_a_title": "Putem wan name blo hem",
|
"add_exclusion_pattern": "",
|
||||||
"add_exclusion_pattern": "Putem wan paten wae hemi karem aot",
|
"add_import_path": "",
|
||||||
"add_import_path": "Putem wan pat blo import",
|
"add_location": "",
|
||||||
"add_location": "Putem wan place blo hem",
|
"add_more_users": "",
|
||||||
"add_more_users": "Putem mor man",
|
|
||||||
"add_partner": "",
|
"add_partner": "",
|
||||||
"add_path": "",
|
"add_path": "",
|
||||||
"add_photos": "",
|
"add_photos": "",
|
||||||
@@ -118,6 +116,7 @@
|
|||||||
"no_pattern_added": "",
|
"no_pattern_added": "",
|
||||||
"note_apply_storage_label_previous_assets": "",
|
"note_apply_storage_label_previous_assets": "",
|
||||||
"note_cannot_be_changed_later": "",
|
"note_cannot_be_changed_later": "",
|
||||||
|
"note_unlimited_quota": "",
|
||||||
"notification_email_from_address": "",
|
"notification_email_from_address": "",
|
||||||
"notification_email_from_address_description": "",
|
"notification_email_from_address_description": "",
|
||||||
"notification_email_host_description": "",
|
"notification_email_host_description": "",
|
||||||
@@ -613,6 +612,7 @@
|
|||||||
"no_shared_albums_message": "",
|
"no_shared_albums_message": "",
|
||||||
"not_in_any_album": "",
|
"not_in_any_album": "",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "",
|
"note_apply_storage_label_to_previously_uploaded assets": "",
|
||||||
|
"note_unlimited_quota": "",
|
||||||
"notes": "",
|
"notes": "",
|
||||||
"notification_toggle_setting_description": "",
|
"notification_toggle_setting_description": "",
|
||||||
"notifications": "",
|
"notifications": "",
|
||||||
|
|||||||
+8
-17
@@ -66,11 +66,6 @@
|
|||||||
"forcing_refresh_library_files": "Força l'actualització de tots els fitxers de les biblioteques",
|
"forcing_refresh_library_files": "Força l'actualització de tots els fitxers de les biblioteques",
|
||||||
"image_format": "Format",
|
"image_format": "Format",
|
||||||
"image_format_description": "WebP genera fitxers més petits que JPEG, però codifica més lentament.",
|
"image_format_description": "WebP genera fitxers més petits que JPEG, però codifica més lentament.",
|
||||||
"image_fullsize_description": "Imatges a tamany complet sense metadades, utilitzades quan es fa zoom",
|
|
||||||
"image_fullsize_enabled": "Activa la generació d'imatges a tamany complet",
|
|
||||||
"image_fullsize_enabled_description": "Genera imatges a tamany complet per formats no compatibles amb la web. Quan \"Prefereix vista prèvia incrustada\" està activat, les vistes prèvies incrustades s'utilitzen directament sense conversió. No afecta els formats compatibles amb la web com JPEG.",
|
|
||||||
"image_fullsize_quality_description": "De 1 a 100, qualitat de l'imatge a tamany complet. Un valor més alt és millor, però resulta en fitxers de major tamany.",
|
|
||||||
"image_fullsize_title": "Configuració d'imatges a tamany complet",
|
|
||||||
"image_prefer_embedded_preview": "Prefereix vista prèvia incrustada",
|
"image_prefer_embedded_preview": "Prefereix vista prèvia incrustada",
|
||||||
"image_prefer_embedded_preview_setting_description": "Empra vista prèvia incrustada en les fotografies RAW com a entrada per al processament d'imatge, quan sigui possible. Aquesta acció pot produir colors més acurats en algunes imatges, però la qualitat de la vista prèvia depèn de la càmera i la imatge pot tenir més artefactes de compressió.",
|
"image_prefer_embedded_preview_setting_description": "Empra vista prèvia incrustada en les fotografies RAW com a entrada per al processament d'imatge, quan sigui possible. Aquesta acció pot produir colors més acurats en algunes imatges, però la qualitat de la vista prèvia depèn de la càmera i la imatge pot tenir més artefactes de compressió.",
|
||||||
"image_prefer_wide_gamut": "Prefereix àmplia gamma",
|
"image_prefer_wide_gamut": "Prefereix àmplia gamma",
|
||||||
@@ -167,6 +162,7 @@
|
|||||||
"no_pattern_added": "Cap patró aplicat",
|
"no_pattern_added": "Cap patró aplicat",
|
||||||
"note_apply_storage_label_previous_assets": "Nota: Per aplicar l'etiquetatge d'emmagatzematge a elements pujats prèviament, executeu la",
|
"note_apply_storage_label_previous_assets": "Nota: Per aplicar l'etiquetatge d'emmagatzematge a elements pujats prèviament, executeu la",
|
||||||
"note_cannot_be_changed_later": "NOTA: Això és irreversible!",
|
"note_cannot_be_changed_later": "NOTA: Això és irreversible!",
|
||||||
|
"note_unlimited_quota": "Nota: Intruduïu 0 per a quota il·limitada",
|
||||||
"notification_email_from_address": "Des de l'adreça",
|
"notification_email_from_address": "Des de l'adreça",
|
||||||
"notification_email_from_address_description": "Adreça de correu electrònic del remitent, per exemple: \"Immich Photo Server <noreply@example.com>\"",
|
"notification_email_from_address_description": "Adreça de correu electrònic del remitent, per exemple: \"Immich Photo Server <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Amfitrió del servidor de correu electrònic (p.ex. smtp.immich.app)",
|
"notification_email_host_description": "Amfitrió del servidor de correu electrònic (p.ex. smtp.immich.app)",
|
||||||
@@ -863,7 +859,6 @@
|
|||||||
"loop_videos": "Vídeos en bucle",
|
"loop_videos": "Vídeos en bucle",
|
||||||
"loop_videos_description": "Habilita la reproducció en bucle del vídeo en els detalls.",
|
"loop_videos_description": "Habilita la reproducció en bucle del vídeo en els detalls.",
|
||||||
"main_branch_warning": "Esteu usant una versió de desenvolupaent. Recomanem fer servir una versió publicada!",
|
"main_branch_warning": "Esteu usant una versió de desenvolupaent. Recomanem fer servir una versió publicada!",
|
||||||
"main_menu": "Menú principal",
|
|
||||||
"make": "Fabricant",
|
"make": "Fabricant",
|
||||||
"manage_shared_links": "Administrar enllaços compartits",
|
"manage_shared_links": "Administrar enllaços compartits",
|
||||||
"manage_sharing_with_partners": "Gestiona la compartició amb els companys",
|
"manage_sharing_with_partners": "Gestiona la compartició amb els companys",
|
||||||
@@ -928,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "Creeu un àlbum per compartir fotos i vídeos amb persones a la vostra xarxa",
|
"no_shared_albums_message": "Creeu un àlbum per compartir fotos i vídeos amb persones a la vostra xarxa",
|
||||||
"not_in_any_album": "En cap àlbum",
|
"not_in_any_album": "En cap àlbum",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Nota: per aplicar l'etiqueta d'emmagatzematge als actius penjats anteriorment, executeu el",
|
"note_apply_storage_label_to_previously_uploaded assets": "Nota: per aplicar l'etiqueta d'emmagatzematge als actius penjats anteriorment, executeu el",
|
||||||
|
"note_unlimited_quota": "Nota: Intruduïu 0 per a quota il·limitada",
|
||||||
"notes": "Notes",
|
"notes": "Notes",
|
||||||
"notification_toggle_setting_description": "Activa les notificacions per correu electrònic",
|
"notification_toggle_setting_description": "Activa les notificacions per correu electrònic",
|
||||||
"notifications": "Notificacions",
|
"notifications": "Notificacions",
|
||||||
@@ -991,7 +987,6 @@
|
|||||||
"permanently_deleted_asset": "Element eliminat permanentment",
|
"permanently_deleted_asset": "Element eliminat permanentment",
|
||||||
"permanently_deleted_assets_count": "{count, plural, one {S'ha eliminat # element} other {S'han eliminat # elements}} permanentment",
|
"permanently_deleted_assets_count": "{count, plural, one {S'ha eliminat # element} other {S'han eliminat # elements}} permanentment",
|
||||||
"person": "Persona",
|
"person": "Persona",
|
||||||
"person_birthdate": "Nascut a {date}",
|
|
||||||
"person_hidden": "{name}{hidden, select, true { (ocultat)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (ocultat)} other {}}",
|
||||||
"photo_shared_all_users": "Sembla que has compartit les teves fotos amb tots els usuaris o no tens cap usuari amb qui compartir-les.",
|
"photo_shared_all_users": "Sembla que has compartit les teves fotos amb tots els usuaris o no tens cap usuari amb qui compartir-les.",
|
||||||
"photos": "Fotos",
|
"photos": "Fotos",
|
||||||
@@ -1083,24 +1078,22 @@
|
|||||||
"remove_from_album": "Treu de l'àlbum",
|
"remove_from_album": "Treu de l'àlbum",
|
||||||
"remove_from_favorites": "Eliminar dels preferits",
|
"remove_from_favorites": "Eliminar dels preferits",
|
||||||
"remove_from_shared_link": "Eliminar de l'enllaç compartit",
|
"remove_from_shared_link": "Eliminar de l'enllaç compartit",
|
||||||
"remove_memory": "Eliminar memòria",
|
|
||||||
"remove_photo_from_memory": "Traieu la foto d'aquesta memòria",
|
|
||||||
"remove_url": "Eliminar URL",
|
"remove_url": "Eliminar URL",
|
||||||
"remove_user": "Eliminar l'usuari",
|
"remove_user": "Eliminar l'usuari",
|
||||||
"removed_api_key": "Eliminada la clau d'API: {name}",
|
"removed_api_key": "Eliminada la clau d'API: {name}",
|
||||||
"removed_from_archive": "Eliminat de l'arxiu",
|
"removed_from_archive": "Eliminat de l'arxiu",
|
||||||
"removed_from_favorites": "Eliminat dels preferits",
|
"removed_from_favorites": "Eliminat dels preferits",
|
||||||
"removed_from_favorites_count": "{count, plural, other {# eliminats}} dels preferits",
|
"removed_from_favorites_count": "{count, plural, other {# eliminats}} dels preferits",
|
||||||
"removed_memory": "Memòria esborrada",
|
"removed_memory": "Eliminat memòria",
|
||||||
"removed_photo_from_memory": "Eliminat foto de la memòria",
|
"removed_photo_from_memory": "Eliminat foto de memòria",
|
||||||
"removed_tagged_assets": "Etiqueta eliminada de {count, plural, one {# actiu} other {# actius}}",
|
"removed_tagged_assets": "Etiqueta eliminada de {count, plural, one {# actiu} other {# actius}}",
|
||||||
"rename": "Canviar nom",
|
"rename": "Canviar nom",
|
||||||
"repair": "Reparació",
|
"repair": "Reparació",
|
||||||
"repair_no_results_message": "Els fitxers sense seguiment o que falten es mostraran aquí",
|
"repair_no_results_message": "Els fitxers sense seguiment i que falten es mostraran aquí",
|
||||||
"replace_with_upload": "Substitueix amb una pujada",
|
"replace_with_upload": "Substituir amb una pujada",
|
||||||
"repository": "Repositori",
|
"repository": "Repositori",
|
||||||
"require_password": "Requereix contrasenya",
|
"require_password": "Requereix contrasenya",
|
||||||
"require_user_to_change_password_on_first_login": "Demanar que l'usuari canviï la contrasenya en el primer inici de sessió",
|
"require_user_to_change_password_on_first_login": "Requerir que l'usuari canviï la contrasenya en el primer inici de sessió",
|
||||||
"rescan": "Tornar a escanejar",
|
"rescan": "Tornar a escanejar",
|
||||||
"reset": "Restablir",
|
"reset": "Restablir",
|
||||||
"reset_password": "Restablir contrasenya",
|
"reset_password": "Restablir contrasenya",
|
||||||
@@ -1117,7 +1110,7 @@
|
|||||||
"review_duplicates": "Revisar duplicats",
|
"review_duplicates": "Revisar duplicats",
|
||||||
"role": "Rol",
|
"role": "Rol",
|
||||||
"role_editor": "Editor",
|
"role_editor": "Editor",
|
||||||
"role_viewer": "Visor",
|
"role_viewer": "Visualitzador",
|
||||||
"save": "Desa",
|
"save": "Desa",
|
||||||
"saved_api_key": "Clau d'API guardada",
|
"saved_api_key": "Clau d'API guardada",
|
||||||
"saved_profile": "Perfil guardat",
|
"saved_profile": "Perfil guardat",
|
||||||
@@ -1155,7 +1148,6 @@
|
|||||||
"searching_locales": "S'estan cercant localitzacions...",
|
"searching_locales": "S'estan cercant localitzacions...",
|
||||||
"second": "Segon",
|
"second": "Segon",
|
||||||
"see_all_people": "Veure totes les persones",
|
"see_all_people": "Veure totes les persones",
|
||||||
"select": "Selecciona",
|
|
||||||
"select_album_cover": "Seleccionar la portada de l'àlbum",
|
"select_album_cover": "Seleccionar la portada de l'àlbum",
|
||||||
"select_all": "Selecciona-ho tot",
|
"select_all": "Selecciona-ho tot",
|
||||||
"select_all_duplicates": "Seleccioneu tots els duplicats",
|
"select_all_duplicates": "Seleccioneu tots els duplicats",
|
||||||
@@ -1370,7 +1362,6 @@
|
|||||||
"view_name": "Veure",
|
"view_name": "Veure",
|
||||||
"view_next_asset": "Mostra el següent element",
|
"view_next_asset": "Mostra el següent element",
|
||||||
"view_previous_asset": "Mostra l'element anterior",
|
"view_previous_asset": "Mostra l'element anterior",
|
||||||
"view_qr_code": "Veure codi QR",
|
|
||||||
"view_stack": "Veure la pila",
|
"view_stack": "Veure la pila",
|
||||||
"visibility_changed": "La visibilitat ha canviat per {count, plural, one {# persona} other {# persones}}",
|
"visibility_changed": "La visibilitat ha canviat per {count, plural, one {# persona} other {# persones}}",
|
||||||
"waiting": "Esperant",
|
"waiting": "Esperant",
|
||||||
|
|||||||
+7
-15
@@ -66,13 +66,8 @@
|
|||||||
"forcing_refresh_library_files": "Vynucení obnovy všech souborů knihovny",
|
"forcing_refresh_library_files": "Vynucení obnovy všech souborů knihovny",
|
||||||
"image_format": "Formát",
|
"image_format": "Formát",
|
||||||
"image_format_description": "WebP vytváří menší soubory než JPEG, ale je pomalejší při kódování.",
|
"image_format_description": "WebP vytváří menší soubory než JPEG, ale je pomalejší při kódování.",
|
||||||
"image_fullsize_description": "Obrázek v plné velikosti s odstraněnými metadaty, použito při přiblížení",
|
|
||||||
"image_fullsize_enabled": "Povolit generování obrázků v plné velikosti",
|
|
||||||
"image_fullsize_enabled_description": "Generovat obrázky v plné velikosti pro formáty, které nejsou vhodné pro web. Pokud je povolena možnost „Preferovat vložený náhled“, budou přímo použity vložené náhledy bez převodu. Neovlivňuje formáty vhodné pro web, jako je JPEG.",
|
|
||||||
"image_fullsize_quality_description": "Kvalita obrázku v plné velikosti od 1 do 100. Vyšší je lepší, ale vytváří větší soubory.",
|
|
||||||
"image_fullsize_title": "Nastavení obrázků v plné velikosti",
|
|
||||||
"image_prefer_embedded_preview": "Preferovat vložený náhled",
|
"image_prefer_embedded_preview": "Preferovat vložený náhled",
|
||||||
"image_prefer_embedded_preview_setting_description": "Použít vložené náhledy z RAW fotografií jako vstup pro zpracování snímků a pokud jsou k dispozici. U některých snímků tak lze dosáhnout přesnějších barev, ale kvalita náhledu závisí na fotoaparátu a snímek může obsahovat více kompresních artefaktů.",
|
"image_prefer_embedded_preview_setting_description": "Použít vložené náhledy z RAW fotografií jako vstup pro zpracování snímků, pokud jsou k dispozici. U některých snímků tak lze dosáhnout přesnějších barev, ale kvalita náhledu závisí na fotoaparátu a snímek může obsahovat více kompresních artefaktů.",
|
||||||
"image_prefer_wide_gamut": "Preferovat široký gamut",
|
"image_prefer_wide_gamut": "Preferovat široký gamut",
|
||||||
"image_prefer_wide_gamut_setting_description": "Použít Display P3 pro miniatury. To lépe zachovává živost obrázků s širokým barevným prostorem, ale obrázky se mohou na starých zařízeních se starou verzí prohlížeče zobrazovat jinak. sRGB obrázky jsou ponechány jako sRGB, aby se zabránilo posunům barev.",
|
"image_prefer_wide_gamut_setting_description": "Použít Display P3 pro miniatury. To lépe zachovává živost obrázků s širokým barevným prostorem, ale obrázky se mohou na starých zařízeních se starou verzí prohlížeče zobrazovat jinak. sRGB obrázky jsou ponechány jako sRGB, aby se zabránilo posunům barev.",
|
||||||
"image_preview_description": "Středně velký obrázek se zbavenými metadaty, který se používá při prohlížení jedné položky a pro strojové učení",
|
"image_preview_description": "Středně velký obrázek se zbavenými metadaty, který se používá při prohlížení jedné položky a pro strojové učení",
|
||||||
@@ -167,6 +162,7 @@
|
|||||||
"no_pattern_added": "Nebyl přidán žádný vzor",
|
"no_pattern_added": "Nebyl přidán žádný vzor",
|
||||||
"note_apply_storage_label_previous_assets": "Upozornění: Pro uplatnění Štítku úložiště na dříve nahrané položky spusťte",
|
"note_apply_storage_label_previous_assets": "Upozornění: Pro uplatnění Štítku úložiště na dříve nahrané položky spusťte",
|
||||||
"note_cannot_be_changed_later": "UPOZORNĚNÍ: Toto nelze později změnit!",
|
"note_cannot_be_changed_later": "UPOZORNĚNÍ: Toto nelze později změnit!",
|
||||||
|
"note_unlimited_quota": "Upozornění: Pro neomezenou kvótu zadejte 0",
|
||||||
"notification_email_from_address": "Adresa Od",
|
"notification_email_from_address": "Adresa Od",
|
||||||
"notification_email_from_address_description": "E-mailová adresa odesílatele, např.: „Immich Photo Server <noreply@example.com>“",
|
"notification_email_from_address_description": "E-mailová adresa odesílatele, např.: „Immich Photo Server <noreply@example.com>“",
|
||||||
"notification_email_host_description": "Adresa e-mailového serveru (např. smtp.immich.app)",
|
"notification_email_host_description": "Adresa e-mailového serveru (např. smtp.immich.app)",
|
||||||
@@ -863,7 +859,6 @@
|
|||||||
"loop_videos": "Videa ve smyčce",
|
"loop_videos": "Videa ve smyčce",
|
||||||
"loop_videos_description": "Povolit automatickou smyčku videa v prohlížeči.",
|
"loop_videos_description": "Povolit automatickou smyčku videa v prohlížeči.",
|
||||||
"main_branch_warning": "Používáte vývojovou verzi; důrazně doporučujeme používat verzi z vydání!",
|
"main_branch_warning": "Používáte vývojovou verzi; důrazně doporučujeme používat verzi z vydání!",
|
||||||
"main_menu": "Hlavní nabídka",
|
|
||||||
"make": "Výrobce",
|
"make": "Výrobce",
|
||||||
"manage_shared_links": "Spravovat sdílené odkazy",
|
"manage_shared_links": "Spravovat sdílené odkazy",
|
||||||
"manage_sharing_with_partners": "Správa sdílení s partnery",
|
"manage_sharing_with_partners": "Správa sdílení s partnery",
|
||||||
@@ -928,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "Vytvořte si album a sdílejte fotografie a videa s lidmi ve své síti",
|
"no_shared_albums_message": "Vytvořte si album a sdílejte fotografie a videa s lidmi ve své síti",
|
||||||
"not_in_any_album": "Bez alba",
|
"not_in_any_album": "Bez alba",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Upozornění: Chcete-li použít štítek úložiště na dříve nahrané položky, spusťte příkaz",
|
"note_apply_storage_label_to_previously_uploaded assets": "Upozornění: Chcete-li použít štítek úložiště na dříve nahrané položky, spusťte příkaz",
|
||||||
|
"note_unlimited_quota": "Poznámka: Chcete-li použít štítek úložiště na dříve nahrané položky, spusťte příkaz",
|
||||||
"notes": "Poznámky",
|
"notes": "Poznámky",
|
||||||
"notification_toggle_setting_description": "Povolení e-mailových oznámení",
|
"notification_toggle_setting_description": "Povolení e-mailových oznámení",
|
||||||
"notifications": "Oznámení",
|
"notifications": "Oznámení",
|
||||||
@@ -969,9 +965,9 @@
|
|||||||
"password_required": "Vyžadováno heslo",
|
"password_required": "Vyžadováno heslo",
|
||||||
"password_reset_success": "Úspěšné obnovení hesla",
|
"password_reset_success": "Úspěšné obnovení hesla",
|
||||||
"past_durations": {
|
"past_durations": {
|
||||||
"days": "{days, plural, one {Včera} few {Poslední # dny} other {Posledních # dní}}",
|
"days": "{days, plural, one {Včera} few {Minulé # dny} other {Minulých # dní}}",
|
||||||
"hours": "{hours, plural, one {Poslední hodinu} few {Poslední # hodiny} other {Posledních # hodin}}",
|
"hours": "{hours, plural, one {Minulou hodinu} few {Minulé # hodiny} other {Minulých # hodin}}",
|
||||||
"years": "{years, plural, one {Poslední rok} few {Poslední # roky} other {Posledních # let}}"
|
"years": "{years, plural, one {Minulý rok} few {Minulé # roky} other {Minulých # let}}"
|
||||||
},
|
},
|
||||||
"path": "Cesta",
|
"path": "Cesta",
|
||||||
"pattern": "Vzor",
|
"pattern": "Vzor",
|
||||||
@@ -1083,8 +1079,6 @@
|
|||||||
"remove_from_album": "Odstranit z alba",
|
"remove_from_album": "Odstranit z alba",
|
||||||
"remove_from_favorites": "Odstranit z oblíbených",
|
"remove_from_favorites": "Odstranit z oblíbených",
|
||||||
"remove_from_shared_link": "Odstranit ze sdíleného odkazu",
|
"remove_from_shared_link": "Odstranit ze sdíleného odkazu",
|
||||||
"remove_memory": "Odstranit vzpomínku",
|
|
||||||
"remove_photo_from_memory": "Odstranit fotografii z této vzpomínky",
|
|
||||||
"remove_url": "Odstranit URL",
|
"remove_url": "Odstranit URL",
|
||||||
"remove_user": "Odebrat uživatele",
|
"remove_user": "Odebrat uživatele",
|
||||||
"removed_api_key": "Odstraněn API klíč: {name}",
|
"removed_api_key": "Odstraněn API klíč: {name}",
|
||||||
@@ -1155,7 +1149,6 @@
|
|||||||
"searching_locales": "Vyhledávání jazyků...",
|
"searching_locales": "Vyhledávání jazyků...",
|
||||||
"second": "Sekunda",
|
"second": "Sekunda",
|
||||||
"see_all_people": "Zobrazit všechny lidi",
|
"see_all_people": "Zobrazit všechny lidi",
|
||||||
"select": "Vybrat",
|
|
||||||
"select_album_cover": "Vybrat obal alba",
|
"select_album_cover": "Vybrat obal alba",
|
||||||
"select_all": "Vybrat vše",
|
"select_all": "Vybrat vše",
|
||||||
"select_all_duplicates": "Vybrat všechny duplicity",
|
"select_all_duplicates": "Vybrat všechny duplicity",
|
||||||
@@ -1238,7 +1231,7 @@
|
|||||||
"sort_oldest": "Nejstarší fotka",
|
"sort_oldest": "Nejstarší fotka",
|
||||||
"sort_people_by_similarity": "Seřadit lidi podle podobnosti",
|
"sort_people_by_similarity": "Seřadit lidi podle podobnosti",
|
||||||
"sort_recent": "Nejnovější fotka",
|
"sort_recent": "Nejnovější fotka",
|
||||||
"sort_title": "Název alba",
|
"sort_title": "Název",
|
||||||
"source": "Zdroj",
|
"source": "Zdroj",
|
||||||
"stack": "Seskupit",
|
"stack": "Seskupit",
|
||||||
"stack_duplicates": "Seskupit duplicity",
|
"stack_duplicates": "Seskupit duplicity",
|
||||||
@@ -1370,7 +1363,6 @@
|
|||||||
"view_name": "Zobrazit",
|
"view_name": "Zobrazit",
|
||||||
"view_next_asset": "Zobrazit další položku",
|
"view_next_asset": "Zobrazit další položku",
|
||||||
"view_previous_asset": "Zobrazit předchozí položku",
|
"view_previous_asset": "Zobrazit předchozí položku",
|
||||||
"view_qr_code": "Zobrazit QR kód",
|
|
||||||
"view_stack": "Zobrazit seskupení",
|
"view_stack": "Zobrazit seskupení",
|
||||||
"visibility_changed": "Viditelnost změněna u {count, plural, one {# osoby} few {# osob} other {# lidí}}",
|
"visibility_changed": "Viditelnost změněna u {count, plural, one {# osoby} few {# osob} other {# lidí}}",
|
||||||
"waiting": "Čekající",
|
"waiting": "Čekající",
|
||||||
|
|||||||
+5
-11
@@ -41,7 +41,6 @@
|
|||||||
"backup_settings": "Backup-indstillinger",
|
"backup_settings": "Backup-indstillinger",
|
||||||
"backup_settings_description": "Administrer backupindstillinger for database",
|
"backup_settings_description": "Administrer backupindstillinger for database",
|
||||||
"check_all": "Tjek Alle",
|
"check_all": "Tjek Alle",
|
||||||
"cleanup": "Ryd op",
|
|
||||||
"cleared_jobs": "Ryddet jobs til: {job}",
|
"cleared_jobs": "Ryddet jobs til: {job}",
|
||||||
"config_set_by_file": "konfigurationen er i øjeblikket indstillet af en konfigurations fil",
|
"config_set_by_file": "konfigurationen er i øjeblikket indstillet af en konfigurations fil",
|
||||||
"confirm_delete_library": "Er du sikker på, at du vil slette {library} bibliotek?",
|
"confirm_delete_library": "Er du sikker på, at du vil slette {library} bibliotek?",
|
||||||
@@ -97,7 +96,7 @@
|
|||||||
"library_scanning_enable_description": "Aktiver periodisk biblioteksscanning",
|
"library_scanning_enable_description": "Aktiver periodisk biblioteksscanning",
|
||||||
"library_settings": "Eksternt bibliotek",
|
"library_settings": "Eksternt bibliotek",
|
||||||
"library_settings_description": "Administrer eksterne biblioteksindstillinger",
|
"library_settings_description": "Administrer eksterne biblioteksindstillinger",
|
||||||
"library_tasks_description": "Scan eksterne biblioteker for nye og/eller ændrede mediefiler",
|
"library_tasks_description": "Udfør biblioteksopgaver",
|
||||||
"library_watching_enable_description": "Overvåg eksterne biblioteker for filændringer",
|
"library_watching_enable_description": "Overvåg eksterne biblioteker for filændringer",
|
||||||
"library_watching_settings": "Biblioteks overvågning (EKSPERIMENTEL)",
|
"library_watching_settings": "Biblioteks overvågning (EKSPERIMENTEL)",
|
||||||
"library_watching_settings_description": "Tjek automatisk for ændrede filer",
|
"library_watching_settings_description": "Tjek automatisk for ændrede filer",
|
||||||
@@ -132,7 +131,7 @@
|
|||||||
"machine_learning_smart_search_description": "Søg semantisk efter billeder ved hjælp af CLIP-indlejringer",
|
"machine_learning_smart_search_description": "Søg semantisk efter billeder ved hjælp af CLIP-indlejringer",
|
||||||
"machine_learning_smart_search_enabled": "Aktiver smart søgning",
|
"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_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.",
|
"machine_learning_url_description": "URL på maskinlæringsserveren. Hvis der er angivet mere end én URL, hver server vil blive forsøgt en ad gangen, indtil en reagerer med succes, i rækkefølge fra første til sidste.",
|
||||||
"manage_concurrency": "Administrer antallet af samtidige opgaver",
|
"manage_concurrency": "Administrer antallet af samtidige opgaver",
|
||||||
"manage_log_settings": "Administrer logindstillinger",
|
"manage_log_settings": "Administrer logindstillinger",
|
||||||
"map_dark_style": "Mørk tema",
|
"map_dark_style": "Mørk tema",
|
||||||
@@ -162,6 +161,7 @@
|
|||||||
"no_pattern_added": "Intet mønster tilføjet",
|
"no_pattern_added": "Intet mønster tilføjet",
|
||||||
"note_apply_storage_label_previous_assets": "Bemærk: For at anvende Lagringsmærkatet på tidligere uploadede mediefiler, kør",
|
"note_apply_storage_label_previous_assets": "Bemærk: For at anvende Lagringsmærkatet på tidligere uploadede mediefiler, kør",
|
||||||
"note_cannot_be_changed_later": "BEMÆRK: Dette kan ikke ændres senere!",
|
"note_cannot_be_changed_later": "BEMÆRK: Dette kan ikke ændres senere!",
|
||||||
|
"note_unlimited_quota": "Bemærk: Indsæt 0 for uendelig kvote",
|
||||||
"notification_email_from_address": "Fra adressse",
|
"notification_email_from_address": "Fra adressse",
|
||||||
"notification_email_from_address_description": "Afsenderemailadresse, for eksempel: \"Immich Billedserver <noreply@example.com>\"",
|
"notification_email_from_address_description": "Afsenderemailadresse, for eksempel: \"Immich Billedserver <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Host af emailserver (fx smtp.immich.app)",
|
"notification_email_host_description": "Host af emailserver (fx smtp.immich.app)",
|
||||||
@@ -242,7 +242,7 @@
|
|||||||
"storage_template_hash_verification_enabled_description": "Slår hash-verifikation til, slå ikke dette fra med mindre du er sikker på dets konsekvenser",
|
"storage_template_hash_verification_enabled_description": "Slår hash-verifikation til, slå ikke dette fra med mindre du er sikker på dets konsekvenser",
|
||||||
"storage_template_migration": "Lagringsskabelonmigration",
|
"storage_template_migration": "Lagringsskabelonmigration",
|
||||||
"storage_template_migration_description": "Anvend den nuværende <link>{template}</link> på tidligere uploadede mediefiler",
|
"storage_template_migration_description": "Anvend den nuværende <link>{template}</link> på tidligere uploadede mediefiler",
|
||||||
"storage_template_migration_info": "Lager-skabelonen vil konvertere alle filendelser til små bogstaver. Skabelonændringer vil kun gælde for nye mediefiler. For at anvende skabelonen retroaktivt på tidligere uploadede mediefiler skal du køre <link>{job}</link>.",
|
"storage_template_migration_info": "Skabelonændringer vil kun gælde for nye mediefiler. For at anvende skabelonen retroaktivt på tidligere uploadede mediefiler skal du køre <link>{job}</link>.",
|
||||||
"storage_template_migration_job": "Lager Skabelon Migreringsjob",
|
"storage_template_migration_job": "Lager Skabelon Migreringsjob",
|
||||||
"storage_template_more_details": "For flere detaljer om denne funktion, referer til <template-link>Lager Skabelonen</template-link> og dens <implications-link>implikationer</implications-link>",
|
"storage_template_more_details": "For flere detaljer om denne funktion, referer til <template-link>Lager Skabelonen</template-link> og dens <implications-link>implikationer</implications-link>",
|
||||||
"storage_template_onboarding_description": "Når denne funktion er aktiveret, vil den automatisk organisere filer baseret på en brugerdefineret skabelon. På grund af stabilitetsproblemer er funktionen som standard slået fra. For mere information, se <link>dokumentation</link>.",
|
"storage_template_onboarding_description": "Når denne funktion er aktiveret, vil den automatisk organisere filer baseret på en brugerdefineret skabelon. På grund af stabilitetsproblemer er funktionen som standard slået fra. For mere information, se <link>dokumentation</link>.",
|
||||||
@@ -393,7 +393,6 @@
|
|||||||
"allow_edits": "Tillad redigeringer",
|
"allow_edits": "Tillad redigeringer",
|
||||||
"allow_public_user_to_download": "Tillad offentlige brugere til at hente",
|
"allow_public_user_to_download": "Tillad offentlige brugere til at hente",
|
||||||
"allow_public_user_to_upload": "Tillad offentlige brugere til at uploade",
|
"allow_public_user_to_upload": "Tillad offentlige brugere til at uploade",
|
||||||
"alt_text_qr_code": "QR-kode billede",
|
|
||||||
"anti_clockwise": "Mod uret",
|
"anti_clockwise": "Mod uret",
|
||||||
"api_key": "API-nøgle",
|
"api_key": "API-nøgle",
|
||||||
"api_key_description": "Denne værdi vises kun én gang. Venligst kopiér den før du lukker vinduet.",
|
"api_key_description": "Denne værdi vises kun én gang. Venligst kopiér den før du lukker vinduet.",
|
||||||
@@ -890,7 +889,6 @@
|
|||||||
"month": "Måned",
|
"month": "Måned",
|
||||||
"more": "Mere",
|
"more": "Mere",
|
||||||
"moved_to_trash": "Flyttet til skraldespand",
|
"moved_to_trash": "Flyttet til skraldespand",
|
||||||
"mute_memories": "Dæmp minder",
|
|
||||||
"my_albums": "Mine albummer",
|
"my_albums": "Mine albummer",
|
||||||
"name": "Navn",
|
"name": "Navn",
|
||||||
"name_or_nickname": "Navn eller kælenavn",
|
"name_or_nickname": "Navn eller kælenavn",
|
||||||
@@ -922,6 +920,7 @@
|
|||||||
"no_shared_albums_message": "Opret et album for at dele billeder og videoer med personer i dit netværk",
|
"no_shared_albums_message": "Opret et album for at dele billeder og videoer med personer i dit netværk",
|
||||||
"not_in_any_album": "Ikke i noget album",
|
"not_in_any_album": "Ikke i noget album",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Bemærk: For at anvende Lagringsmærkat på tidligere uploadede medier, kør",
|
"note_apply_storage_label_to_previously_uploaded assets": "Bemærk: For at anvende Lagringsmærkat på tidligere uploadede medier, kør",
|
||||||
|
"note_unlimited_quota": "Bemærk: Indsæt 0 for ubegrænset kvote",
|
||||||
"notes": "Noter",
|
"notes": "Noter",
|
||||||
"notification_toggle_setting_description": "Aktivér emailnotifikationer",
|
"notification_toggle_setting_description": "Aktivér emailnotifikationer",
|
||||||
"notifications": "Notifikationer",
|
"notifications": "Notifikationer",
|
||||||
@@ -985,7 +984,6 @@
|
|||||||
"permanently_deleted_asset": "Permanent slettet medie",
|
"permanently_deleted_asset": "Permanent slettet medie",
|
||||||
"permanently_deleted_assets_count": "{count, plural, one {# aktiv} other {# aktiver}} permanent slettet",
|
"permanently_deleted_assets_count": "{count, plural, one {# aktiv} other {# aktiver}} permanent slettet",
|
||||||
"person": "Person",
|
"person": "Person",
|
||||||
"person_birthdate": "Født den {date}",
|
|
||||||
"person_hidden": "{name}{hidden, select, true { (skjult)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (skjult)} other {}}",
|
||||||
"photo_shared_all_users": "Det ser ud til, at du har delt dine billeder med alle brugere, eller også har du ikke nogen bruger at dele med.",
|
"photo_shared_all_users": "Det ser ud til, at du har delt dine billeder med alle brugere, eller også har du ikke nogen bruger at dele med.",
|
||||||
"photos": "Billeder",
|
"photos": "Billeder",
|
||||||
@@ -1077,8 +1075,6 @@
|
|||||||
"remove_from_album": "Fjern fra album",
|
"remove_from_album": "Fjern fra album",
|
||||||
"remove_from_favorites": "Fjern fra favoritter",
|
"remove_from_favorites": "Fjern fra favoritter",
|
||||||
"remove_from_shared_link": "Fjern fra delt link",
|
"remove_from_shared_link": "Fjern fra delt link",
|
||||||
"remove_memory": "Fjern minde",
|
|
||||||
"remove_photo_from_memory": "Fjern foto fra dette minde",
|
|
||||||
"remove_url": "Fjern URL",
|
"remove_url": "Fjern URL",
|
||||||
"remove_user": "Fjern bruger",
|
"remove_user": "Fjern bruger",
|
||||||
"removed_api_key": "Fjernede API-nøgle: {name}",
|
"removed_api_key": "Fjernede API-nøgle: {name}",
|
||||||
@@ -1149,7 +1145,6 @@
|
|||||||
"searching_locales": "Søger lokaler...",
|
"searching_locales": "Søger lokaler...",
|
||||||
"second": "Sekund",
|
"second": "Sekund",
|
||||||
"see_all_people": "Se alle personer",
|
"see_all_people": "Se alle personer",
|
||||||
"select": "Vælg",
|
|
||||||
"select_album_cover": "Vælg albumcover",
|
"select_album_cover": "Vælg albumcover",
|
||||||
"select_all": "Vælg alle",
|
"select_all": "Vælg alle",
|
||||||
"select_all_duplicates": "Vælg alle dubletter",
|
"select_all_duplicates": "Vælg alle dubletter",
|
||||||
@@ -1305,7 +1300,6 @@
|
|||||||
"unlink_motion_video": "Fjern link til bevægelsesvideo",
|
"unlink_motion_video": "Fjern link til bevægelsesvideo",
|
||||||
"unlink_oauth": "Frakobl OAuth",
|
"unlink_oauth": "Frakobl OAuth",
|
||||||
"unlinked_oauth_account": "Frakoblede OAuth-konto",
|
"unlinked_oauth_account": "Frakoblede OAuth-konto",
|
||||||
"unmute_memories": "Ophæv dæmpning af minder",
|
|
||||||
"unnamed_album": "Unavngivet album",
|
"unnamed_album": "Unavngivet album",
|
||||||
"unnamed_album_delete_confirmation": "Er du sikker på, at du vil slette dette album?",
|
"unnamed_album_delete_confirmation": "Er du sikker på, at du vil slette dette album?",
|
||||||
"unnamed_share": "Unavngivet deling",
|
"unnamed_share": "Unavngivet deling",
|
||||||
|
|||||||
+2
-10
@@ -66,11 +66,6 @@
|
|||||||
"forcing_refresh_library_files": "Erneutes Laden aller Bibliotheksdateien erzwingen",
|
"forcing_refresh_library_files": "Erneutes Laden aller Bibliotheksdateien erzwingen",
|
||||||
"image_format": "Format",
|
"image_format": "Format",
|
||||||
"image_format_description": "WebP erzeugt kleinere Dateien als JPEG, ist aber etwas langsamer in der Erstellung.",
|
"image_format_description": "WebP erzeugt kleinere Dateien als JPEG, ist aber etwas langsamer in der Erstellung.",
|
||||||
"image_fullsize_description": "Hochauflösendes Bild mit entfernten Metadaten, das beim Zoomen verwendet wird",
|
|
||||||
"image_fullsize_enabled": "Hochauflösende Vorschaubilder aktivieren",
|
|
||||||
"image_fullsize_enabled_description": "Generiere Hochauflösende Vorschaubilder in Originalauflösung für nicht web-kompatibel Formate. Wenn \"Eingebettete Vorschau bevorzugen\" aktiviert ist, werden eingebettete Vorschaubilder direkt verwendet. Hat keinen Einfluss auf web-kompatible Formate wie JPEG.",
|
|
||||||
"image_fullsize_quality_description": "Qualität der Hochauflösenden Vorschaubilder von 1-100. Höher ist besser, erzeugt aber größere Dateien.",
|
|
||||||
"image_fullsize_title": "Hochauflösende Vorschaueinstellungen",
|
|
||||||
"image_prefer_embedded_preview": "Eingebettete Vorschau bevorzugen",
|
"image_prefer_embedded_preview": "Eingebettete Vorschau bevorzugen",
|
||||||
"image_prefer_embedded_preview_setting_description": "Verwende eingebettete Vorschaubilder in RAW-Fotos als Grundlage für die Bildverarbeitung, sofern diese zur Verfügung stehen. Dies kann bei einigen Bildern genauere Farben erzeugen, allerdings ist die Qualität der Vorschau kameraabhängig und das Bild kann mehr Kompressionsartefakte aufweisen.",
|
"image_prefer_embedded_preview_setting_description": "Verwende eingebettete Vorschaubilder in RAW-Fotos als Grundlage für die Bildverarbeitung, sofern diese zur Verfügung stehen. Dies kann bei einigen Bildern genauere Farben erzeugen, allerdings ist die Qualität der Vorschau kameraabhängig und das Bild kann mehr Kompressionsartefakte aufweisen.",
|
||||||
"image_prefer_wide_gamut": "Breites Spektrum bevorzugen",
|
"image_prefer_wide_gamut": "Breites Spektrum bevorzugen",
|
||||||
@@ -167,6 +162,7 @@
|
|||||||
"no_pattern_added": "Kein Ausschlussmuster hinzugefügt",
|
"no_pattern_added": "Kein Ausschlussmuster hinzugefügt",
|
||||||
"note_apply_storage_label_previous_assets": "Hinweis: Um den Speicherpfad auf die vorher hochgeladenen Dateien anzuwenden, starte den",
|
"note_apply_storage_label_previous_assets": "Hinweis: Um den Speicherpfad auf die vorher hochgeladenen Dateien anzuwenden, starte den",
|
||||||
"note_cannot_be_changed_later": "HINWEIS: Dies kann später nicht mehr geändert werden!",
|
"note_cannot_be_changed_later": "HINWEIS: Dies kann später nicht mehr geändert werden!",
|
||||||
|
"note_unlimited_quota": "Hinweis: 0 eingeben für unlimitiertes Kontingent",
|
||||||
"notification_email_from_address": "Absenderadresse",
|
"notification_email_from_address": "Absenderadresse",
|
||||||
"notification_email_from_address_description": "E-Mail-Adresse des Senders, zum Beispiel: \"Immich Photo Server <noreply@example.com>\"",
|
"notification_email_from_address_description": "E-Mail-Adresse des Senders, zum Beispiel: \"Immich Photo Server <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Host des E-Mail-Servers (z.B. smtp.immich.app)",
|
"notification_email_host_description": "Host des E-Mail-Servers (z.B. smtp.immich.app)",
|
||||||
@@ -863,7 +859,6 @@
|
|||||||
"loop_videos": "Loop-Videos",
|
"loop_videos": "Loop-Videos",
|
||||||
"loop_videos_description": "Aktiviere diese Option, um eine automatische Videoschleife in der Detailansicht zu erstellen.",
|
"loop_videos_description": "Aktiviere diese Option, um eine automatische Videoschleife in der Detailansicht zu erstellen.",
|
||||||
"main_branch_warning": "Du benutzt eine Entwicklungsversion. Wir empfehlen dringend, eine Release-Version zu verwenden!",
|
"main_branch_warning": "Du benutzt eine Entwicklungsversion. Wir empfehlen dringend, eine Release-Version zu verwenden!",
|
||||||
"main_menu": "Hauptmenü",
|
|
||||||
"make": "Marke",
|
"make": "Marke",
|
||||||
"manage_shared_links": "Freigegebene Links verwalten",
|
"manage_shared_links": "Freigegebene Links verwalten",
|
||||||
"manage_sharing_with_partners": "Gemeinsame Nutzung mit Partnern verwalten",
|
"manage_sharing_with_partners": "Gemeinsame Nutzung mit Partnern verwalten",
|
||||||
@@ -928,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "Erstelle ein Album, um Fotos und Videos mit Personen in deinem Netzwerk zu teilen",
|
"no_shared_albums_message": "Erstelle ein Album, um Fotos und Videos mit Personen in deinem Netzwerk zu teilen",
|
||||||
"not_in_any_album": "In keinem Album",
|
"not_in_any_album": "In keinem Album",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Hinweis: Um eine Speicherpfadbezeichnung anzuwenden, starte den",
|
"note_apply_storage_label_to_previously_uploaded assets": "Hinweis: Um eine Speicherpfadbezeichnung anzuwenden, starte den",
|
||||||
|
"note_unlimited_quota": "Hinweis: Verwende 0 für ein unlimitiertes Kontingent",
|
||||||
"notes": "Notizen",
|
"notes": "Notizen",
|
||||||
"notification_toggle_setting_description": "E-Mail-Benachrichtigungen aktivieren",
|
"notification_toggle_setting_description": "E-Mail-Benachrichtigungen aktivieren",
|
||||||
"notifications": "Benachrichtigungen",
|
"notifications": "Benachrichtigungen",
|
||||||
@@ -1083,8 +1079,6 @@
|
|||||||
"remove_from_album": "Aus Album entfernen",
|
"remove_from_album": "Aus Album entfernen",
|
||||||
"remove_from_favorites": "Aus Favoriten entfernen",
|
"remove_from_favorites": "Aus Favoriten entfernen",
|
||||||
"remove_from_shared_link": "Aus geteiltem Link entfernen",
|
"remove_from_shared_link": "Aus geteiltem Link entfernen",
|
||||||
"remove_memory": "Erinnerung entfernen",
|
|
||||||
"remove_photo_from_memory": "Foto aus dieser Erinnerung entfernen",
|
|
||||||
"remove_url": "URL entfernen",
|
"remove_url": "URL entfernen",
|
||||||
"remove_user": "Nutzer entfernen",
|
"remove_user": "Nutzer entfernen",
|
||||||
"removed_api_key": "API-Schlüssel {name} wurde entfernt",
|
"removed_api_key": "API-Schlüssel {name} wurde entfernt",
|
||||||
@@ -1155,7 +1149,6 @@
|
|||||||
"searching_locales": "Suche nach Orten...",
|
"searching_locales": "Suche nach Orten...",
|
||||||
"second": "Sekunde",
|
"second": "Sekunde",
|
||||||
"see_all_people": "Alle Personen anzeigen",
|
"see_all_people": "Alle Personen anzeigen",
|
||||||
"select": "Auswählen",
|
|
||||||
"select_album_cover": "Album-Cover auswählen",
|
"select_album_cover": "Album-Cover auswählen",
|
||||||
"select_all": "Alles auswählen",
|
"select_all": "Alles auswählen",
|
||||||
"select_all_duplicates": "Alle Duplikate auswählen",
|
"select_all_duplicates": "Alle Duplikate auswählen",
|
||||||
@@ -1370,7 +1363,6 @@
|
|||||||
"view_name": "Ansicht",
|
"view_name": "Ansicht",
|
||||||
"view_next_asset": "Nächste Datei anzeigen",
|
"view_next_asset": "Nächste Datei anzeigen",
|
||||||
"view_previous_asset": "Vorherige Datei anzeigen",
|
"view_previous_asset": "Vorherige Datei anzeigen",
|
||||||
"view_qr_code": "QR code anzeigen",
|
|
||||||
"view_stack": "Stapel anzeigen",
|
"view_stack": "Stapel anzeigen",
|
||||||
"visibility_changed": "Sichtbarkeit für {count, plural, one {# Person} other {# Personen}} geändert",
|
"visibility_changed": "Sichtbarkeit für {count, plural, one {# Person} other {# Personen}} geändert",
|
||||||
"waiting": "Wartend",
|
"waiting": "Wartend",
|
||||||
|
|||||||
+7
-22
@@ -41,7 +41,6 @@
|
|||||||
"backup_settings": "Ρυθμίσεις Αντιγράφων Ασφαλείας",
|
"backup_settings": "Ρυθμίσεις Αντιγράφων Ασφαλείας",
|
||||||
"backup_settings_description": "Διαχείρηση ρυθμίσεων των αντιγράφων ασφαλείας της βάσης δεδομένων",
|
"backup_settings_description": "Διαχείρηση ρυθμίσεων των αντιγράφων ασφαλείας της βάσης δεδομένων",
|
||||||
"check_all": "Έλεγχος Όλων",
|
"check_all": "Έλεγχος Όλων",
|
||||||
"cleanup": "Εκκαθάριση",
|
|
||||||
"cleared_jobs": "Εκκαθαρίστηκαν οι εργασίες για: {job}",
|
"cleared_jobs": "Εκκαθαρίστηκαν οι εργασίες για: {job}",
|
||||||
"config_set_by_file": "Η παραμετροποίηση γίνεται, προς το παρόν, μέσω ενός αρχείου παραμέτρων",
|
"config_set_by_file": "Η παραμετροποίηση γίνεται, προς το παρόν, μέσω ενός αρχείου παραμέτρων",
|
||||||
"confirm_delete_library": "Είστε βέβαιοι ότι θέλετε να διαγράψετε τη βιβλιοθήκη {library};",
|
"confirm_delete_library": "Είστε βέβαιοι ότι θέλετε να διαγράψετε τη βιβλιοθήκη {library};",
|
||||||
@@ -66,11 +65,6 @@
|
|||||||
"forcing_refresh_library_files": "Εξαναγκαστική ανανέωση όλων των αρχείων της βιβλιοθήκης",
|
"forcing_refresh_library_files": "Εξαναγκαστική ανανέωση όλων των αρχείων της βιβλιοθήκης",
|
||||||
"image_format": "Μορφή",
|
"image_format": "Μορφή",
|
||||||
"image_format_description": "Η μορφή WebP παράγει μικρότερα αρχεία από τη μορφή JPEG, αλλά είναι πιο αργή στην κωδικοποίηση.",
|
"image_format_description": "Η μορφή WebP παράγει μικρότερα αρχεία από τη μορφή JPEG, αλλά είναι πιο αργή στην κωδικοποίηση.",
|
||||||
"image_fullsize_description": "Εικόνα πλήρους μεγέθους με απογυμνωμένα μεταδεδομένα, που χρησιμοποιείται κατά τη μεγέθυνση",
|
|
||||||
"image_fullsize_enabled": "Ενεργοποίηση δημιουργίας εικόνας πλήρους μεγέθους",
|
|
||||||
"image_fullsize_enabled_description": "Δημιουργία εικόνας πλήρους μεγέθους για μορφές που δεν είναι φιλικές προς το διαδίκτυο. Όταν είναι ενεργοποιημένη η επιλογή «Προτίμηση ενσωματωμένης προεπισκόπησης», οι ενσωματωμένες προεπισκοπήσεις χρησιμοποιούνται απευθείας χωρίς μετατροπή. Δεν επηρεάζει τις φιλικές προς το διαδίκτυο μορφές όπως το JPEG.",
|
|
||||||
"image_fullsize_quality_description": "Ποιότητα εικόνας πλήρους μεγέθους από 1-100. Η υψηλότερη είναι καλύτερη, αλλά παράγει μεγαλύτερα αρχεία.",
|
|
||||||
"image_fullsize_title": "Ρυθμίσεις εικόνας πλήρους μεγέθους",
|
|
||||||
"image_prefer_embedded_preview": "Προτίμηση ενσωματωμένης προεπισκόπησης",
|
"image_prefer_embedded_preview": "Προτίμηση ενσωματωμένης προεπισκόπησης",
|
||||||
"image_prefer_embedded_preview_setting_description": "Χρήση ενσωματωμένων προεπισκοπίσεων σε RAW εικόνες ως είσοδο για την επεξεργασία εικόνας εφόσον είναι διαθέσιμες. Αυτό μπορεί να δημιουργήσει πιο ακριβή χρώματα για κάποιες εικόνες, αλλά η ποιότητα των προεπισκοπίσεων εξαρτάται από την κάμερα και ενδέχεται να υπάρχουν περισσότερες αλλοιώσεις στην εικόνα λόγω συμπίεσης.",
|
"image_prefer_embedded_preview_setting_description": "Χρήση ενσωματωμένων προεπισκοπίσεων σε RAW εικόνες ως είσοδο για την επεξεργασία εικόνας εφόσον είναι διαθέσιμες. Αυτό μπορεί να δημιουργήσει πιο ακριβή χρώματα για κάποιες εικόνες, αλλά η ποιότητα των προεπισκοπίσεων εξαρτάται από την κάμερα και ενδέχεται να υπάρχουν περισσότερες αλλοιώσεις στην εικόνα λόγω συμπίεσης.",
|
||||||
"image_prefer_wide_gamut": "Προτίμηση ευρέος φάσματος",
|
"image_prefer_wide_gamut": "Προτίμηση ευρέος φάσματος",
|
||||||
@@ -102,7 +96,7 @@
|
|||||||
"library_scanning_enable_description": "Ενεργοποίηση περιοδικής σάρωσης βιβλιοθήκης",
|
"library_scanning_enable_description": "Ενεργοποίηση περιοδικής σάρωσης βιβλιοθήκης",
|
||||||
"library_settings": "Εξωτερική Βιβλιοθήκη",
|
"library_settings": "Εξωτερική Βιβλιοθήκη",
|
||||||
"library_settings_description": "Διαχείριση ρυθμίσεων εξωτερικής βιβλιοθήκης",
|
"library_settings_description": "Διαχείριση ρυθμίσεων εξωτερικής βιβλιοθήκης",
|
||||||
"library_tasks_description": "Σάρωση εξωτερικών βιβλιοθηκών για νέα ή/και αλλαγμένα στοιχεία",
|
"library_tasks_description": "Εκτελούν εργασίες της βιβλιοθήκης",
|
||||||
"library_watching_enable_description": "Παρακολούθηση εξωτερικών βιβλιοθηκών για τροποποιήσεις αρχείων",
|
"library_watching_enable_description": "Παρακολούθηση εξωτερικών βιβλιοθηκών για τροποποιήσεις αρχείων",
|
||||||
"library_watching_settings": "Παρακολούθηση βιβλιοθήκης (ΠΕΙΡΑΜΑΤΙΚΟ)",
|
"library_watching_settings": "Παρακολούθηση βιβλιοθήκης (ΠΕΙΡΑΜΑΤΙΚΟ)",
|
||||||
"library_watching_settings_description": "Αυτόματη παρακολούθηση για τροποποιημένα αρχεία",
|
"library_watching_settings_description": "Αυτόματη παρακολούθηση για τροποποιημένα αρχεία",
|
||||||
@@ -167,6 +161,7 @@
|
|||||||
"no_pattern_added": "Δεν προστέθηκε μοτίβο",
|
"no_pattern_added": "Δεν προστέθηκε μοτίβο",
|
||||||
"note_apply_storage_label_previous_assets": "Σημείωση: Για να εφαρμοστεί η Ετικέτα Αποθήκευσης σε στοιχεία που είχαν αναρτηθεί παλαιότερα, εκτέλεσε το",
|
"note_apply_storage_label_previous_assets": "Σημείωση: Για να εφαρμοστεί η Ετικέτα Αποθήκευσης σε στοιχεία που είχαν αναρτηθεί παλαιότερα, εκτέλεσε το",
|
||||||
"note_cannot_be_changed_later": "ΣΗΜΕΊΩΣΗ: Αυτό δεν μπορεί να τροποποιηθεί αργότερα!",
|
"note_cannot_be_changed_later": "ΣΗΜΕΊΩΣΗ: Αυτό δεν μπορεί να τροποποιηθεί αργότερα!",
|
||||||
|
"note_unlimited_quota": "Σημείωση: Εισαγάγετε 0 για απεριόριστο όριο",
|
||||||
"notification_email_from_address": "Διεύθυνση αποστολέα",
|
"notification_email_from_address": "Διεύθυνση αποστολέα",
|
||||||
"notification_email_from_address_description": "Διεύθυνση αποστολέα, πχ: \"Immich Photo Server <noreply@example.com>\"",
|
"notification_email_from_address_description": "Διεύθυνση αποστολέα, πχ: \"Immich Photo Server <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Πάροχος του email server (πχ smtp.immich.app)",
|
"notification_email_host_description": "Πάροχος του email server (πχ smtp.immich.app)",
|
||||||
@@ -247,7 +242,7 @@
|
|||||||
"storage_template_hash_verification_enabled_description": "Ενεργοποιεί την επαλήθευση hash. Μην το απενεργοποιήσεις εκτός αν είσαι βέβαιος/α για τις συνέπειες",
|
"storage_template_hash_verification_enabled_description": "Ενεργοποιεί την επαλήθευση hash. Μην το απενεργοποιήσεις εκτός αν είσαι βέβαιος/α για τις συνέπειες",
|
||||||
"storage_template_migration": "Μεταφορά προτύπων αποθήκευσης",
|
"storage_template_migration": "Μεταφορά προτύπων αποθήκευσης",
|
||||||
"storage_template_migration_description": "Εφαρμογή του τρέχοντος <link>{template}</link> στα αρχεία που έχουν ανέβει προηγουμένως",
|
"storage_template_migration_description": "Εφαρμογή του τρέχοντος <link>{template}</link> στα αρχεία που έχουν ανέβει προηγουμένως",
|
||||||
"storage_template_migration_info": "Το πρότυπο αποθήκευσης θα μετατρέψει όλες τις επεκτάσεις σε πεζά γράμματα. Οι αλλαγές στο πρότυπο θα ισχύουν μόνο για νέα περιουσιακά στοιχεία. Για να εφαρμόσετε αναδρομικά το πρότυπο σε περιουσιακά στοιχεία που έχουν μεταφορτωθεί προηγουμένως, εκτελέστε το <link>{job}</link>.",
|
"storage_template_migration_info": "Οι αλλαγές στο πρότυπο θα ισχύσουν μόνο για τα νέα αρχεία. Για να εφαρμόσετε αναδρομικά το πρότυπο, σε αρχεία που έχουν ανέβει προηγουμένως, εκτελέστε το <link>{job}</link>.",
|
||||||
"storage_template_migration_job": "Εργασία Μεταφοράς Προτύπων Αποθήκευσης",
|
"storage_template_migration_job": "Εργασία Μεταφοράς Προτύπων Αποθήκευσης",
|
||||||
"storage_template_more_details": "Για περισσότερες λεπτομέρειες σχετικά με αυτήν τη δυνατότητα, ανατρέξτε στο <template-link>Πρότυπο Αποθήκευσης</template-link> και στις <implications-link>συνέπειές</implications-link> του",
|
"storage_template_more_details": "Για περισσότερες λεπτομέρειες σχετικά με αυτήν τη δυνατότητα, ανατρέξτε στο <template-link>Πρότυπο Αποθήκευσης</template-link> και στις <implications-link>συνέπειές</implications-link> του",
|
||||||
"storage_template_onboarding_description": "Όταν ενεργοποιηθεί, αυτή η δυνατότητα θα οργανώνει αυτόματα τα αρχεία με βάση ένα πρότυπο που καθορίζεται από τον χρήστη. Λόγω θεμάτων σταθερότητας, η δυνατότητα είναι απενεργοποιημένη από προεπιλογή. Για περισσότερες πληροφορίες, παρακαλώ δείτε την <link>τεκμηρίωση</link>.",
|
"storage_template_onboarding_description": "Όταν ενεργοποιηθεί, αυτή η δυνατότητα θα οργανώνει αυτόματα τα αρχεία με βάση ένα πρότυπο που καθορίζεται από τον χρήστη. Λόγω θεμάτων σταθερότητας, η δυνατότητα είναι απενεργοποιημένη από προεπιλογή. Για περισσότερες πληροφορίες, παρακαλώ δείτε την <link>τεκμηρίωση</link>.",
|
||||||
@@ -392,13 +387,12 @@
|
|||||||
"albums_count": "{count, plural, one {{count, number} Άλμπουμ} other {{count, number} Άλμπουμ}}",
|
"albums_count": "{count, plural, one {{count, number} Άλμπουμ} other {{count, number} Άλμπουμ}}",
|
||||||
"all": "Όλα",
|
"all": "Όλα",
|
||||||
"all_albums": "Όλα τα άλμπουμ",
|
"all_albums": "Όλα τα άλμπουμ",
|
||||||
"all_people": "Όλα τα άτομα",
|
"all_people": "Όλοι οι άνθρωποι",
|
||||||
"all_videos": "Όλα τα βίντεο",
|
"all_videos": "Όλα τα βίντεο",
|
||||||
"allow_dark_mode": "Επιτρέψτε τη σκοτεινή λειτουργία",
|
"allow_dark_mode": "Επιτρέψτε τη σκοτεινή λειτουργία",
|
||||||
"allow_edits": "Επιτρέψτε τις τροποποιήσεις",
|
"allow_edits": "Επιτρέψτε τις τροποποιήσεις",
|
||||||
"allow_public_user_to_download": "Επιτρέψτε σε δημόσιο χρήστη να κατεβάσει",
|
"allow_public_user_to_download": "Επιτρέψτε σε δημόσιο χρήστη να κατεβάσει",
|
||||||
"allow_public_user_to_upload": "Επιτρέψτε στον δημόσιο χρήστη να ανεβάσει",
|
"allow_public_user_to_upload": "Επιτρέψτε στον δημόσιο χρήστη να ανεβάσει",
|
||||||
"alt_text_qr_code": "Εικόνα κωδικού QR",
|
|
||||||
"anti_clockwise": "Αντίθετα με τη φορά του ρολογιού",
|
"anti_clockwise": "Αντίθετα με τη φορά του ρολογιού",
|
||||||
"api_key": "Κλειδί API",
|
"api_key": "Κλειδί API",
|
||||||
"api_key_description": "Αυτή η τιμή θα εμφανιστεί μόνο μία φορά. Παρακαλώ βεβαιωθείτε ότι την έχετε αντιγράψει πριν κλείσετε το παράθυρο.",
|
"api_key_description": "Αυτή η τιμή θα εμφανιστεί μόνο μία φορά. Παρακαλώ βεβαιωθείτε ότι την έχετε αντιγράψει πριν κλείσετε το παράθυρο.",
|
||||||
@@ -456,7 +450,7 @@
|
|||||||
"camera_model": "Μοντέλο κάμερας",
|
"camera_model": "Μοντέλο κάμερας",
|
||||||
"cancel": "Ακύρωση",
|
"cancel": "Ακύρωση",
|
||||||
"cancel_search": "Ακύρωση αναζήτησης",
|
"cancel_search": "Ακύρωση αναζήτησης",
|
||||||
"cannot_merge_people": "Αδύνατη η συγχώνευση ατόμων",
|
"cannot_merge_people": "Αδύνατη η συγχώνευση προσώπων",
|
||||||
"cannot_undo_this_action": "Δεν μπορείτε να αναιρέσετε αυτήν την ενέργεια!",
|
"cannot_undo_this_action": "Δεν μπορείτε να αναιρέσετε αυτήν την ενέργεια!",
|
||||||
"cannot_update_the_description": "Αδύνατη η ενημέρωση της περιγραφής",
|
"cannot_update_the_description": "Αδύνατη η ενημέρωση της περιγραφής",
|
||||||
"change_date": "Αλλαγή ημερομηνίας",
|
"change_date": "Αλλαγή ημερομηνίας",
|
||||||
@@ -622,7 +616,7 @@
|
|||||||
"cant_change_metadata_assets_count": "Δεν μπορείτε να αλλάξετε τα μεταδεδομένα του {count, plural, one {# αρχείου} other {# αρχείων}}",
|
"cant_change_metadata_assets_count": "Δεν μπορείτε να αλλάξετε τα μεταδεδομένα του {count, plural, one {# αρχείου} other {# αρχείων}}",
|
||||||
"cant_get_faces": "Δεν είναι δυνατή η ανάκτηση προσώπων",
|
"cant_get_faces": "Δεν είναι δυνατή η ανάκτηση προσώπων",
|
||||||
"cant_get_number_of_comments": "Δεν είναι δυνατή η ανάκτηση του αριθμού των σχολίων",
|
"cant_get_number_of_comments": "Δεν είναι δυνατή η ανάκτηση του αριθμού των σχολίων",
|
||||||
"cant_search_people": "Αδύνατη η αναζήτηση ατόμων",
|
"cant_search_people": "Δεν μπορείτε να αναζητήσετε άτομα",
|
||||||
"cant_search_places": "Δεν μπορείτε να αναζητήσετε τοποθεσίες",
|
"cant_search_places": "Δεν μπορείτε να αναζητήσετε τοποθεσίες",
|
||||||
"cleared_jobs": "Εκκαθαρισμένες εργασίες για: {job}",
|
"cleared_jobs": "Εκκαθαρισμένες εργασίες για: {job}",
|
||||||
"error_adding_assets_to_album": "Σφάλμα κατά την προσθήκη στοιχείων στο άλμπουμ",
|
"error_adding_assets_to_album": "Σφάλμα κατά την προσθήκη στοιχείων στο άλμπουμ",
|
||||||
@@ -863,7 +857,6 @@
|
|||||||
"loop_videos": "Επανάληψη βίντεο",
|
"loop_videos": "Επανάληψη βίντεο",
|
||||||
"loop_videos_description": "Ενεργοποιήστε την αυτόματη επανάληψη ενός βίντεο στο πρόγραμμα προβολής λεπτομερειών.",
|
"loop_videos_description": "Ενεργοποιήστε την αυτόματη επανάληψη ενός βίντεο στο πρόγραμμα προβολής λεπτομερειών.",
|
||||||
"main_branch_warning": "Χρησιμοποιείτε μια έκδοση σε ανάπτυξη· συνιστούμε ανεπιφύλακτα τη χρήση μιας επίσημης έκδοσης!",
|
"main_branch_warning": "Χρησιμοποιείτε μια έκδοση σε ανάπτυξη· συνιστούμε ανεπιφύλακτα τη χρήση μιας επίσημης έκδοσης!",
|
||||||
"main_menu": "Κύριο μενού",
|
|
||||||
"make": "Κατασκευαστής",
|
"make": "Κατασκευαστής",
|
||||||
"manage_shared_links": "Διαχείριση κοινόχρηστων συνδέσμων",
|
"manage_shared_links": "Διαχείριση κοινόχρηστων συνδέσμων",
|
||||||
"manage_sharing_with_partners": "Διαχειριστείτε την κοινή χρήση με συνεργάτες",
|
"manage_sharing_with_partners": "Διαχειριστείτε την κοινή χρήση με συνεργάτες",
|
||||||
@@ -896,7 +889,6 @@
|
|||||||
"month": "Μήνας",
|
"month": "Μήνας",
|
||||||
"more": "Περισσότερα",
|
"more": "Περισσότερα",
|
||||||
"moved_to_trash": "Μετακινήθηκε στον κάδο απορριμμάτων",
|
"moved_to_trash": "Μετακινήθηκε στον κάδο απορριμμάτων",
|
||||||
"mute_memories": "Σίγαση Αναμνήσεων",
|
|
||||||
"my_albums": "Τα άλμπουμ μου",
|
"my_albums": "Τα άλμπουμ μου",
|
||||||
"name": "Όνομα",
|
"name": "Όνομα",
|
||||||
"name_or_nickname": "Όνομα ή ψευδώνυμο",
|
"name_or_nickname": "Όνομα ή ψευδώνυμο",
|
||||||
@@ -928,6 +920,7 @@
|
|||||||
"no_shared_albums_message": "Δημιουργήστε ένα άλμπουμ για να μοιράζεστε φωτογραφίες και βίντεο με άτομα στο δίκτυό σας",
|
"no_shared_albums_message": "Δημιουργήστε ένα άλμπουμ για να μοιράζεστε φωτογραφίες και βίντεο με άτομα στο δίκτυό σας",
|
||||||
"not_in_any_album": "Σε κανένα άλμπουμ",
|
"not_in_any_album": "Σε κανένα άλμπουμ",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Σημείωση: Για να εφαρμόσετε την Ετικέτα Αποθήκευσης σε στοιχεία που έχουν μεταφορτωθεί προηγουμένως, εκτελέστε το",
|
"note_apply_storage_label_to_previously_uploaded assets": "Σημείωση: Για να εφαρμόσετε την Ετικέτα Αποθήκευσης σε στοιχεία που έχουν μεταφορτωθεί προηγουμένως, εκτελέστε το",
|
||||||
|
"note_unlimited_quota": "Σημείωση: Εισαγάγετε 0 για απεριόριστο όριο",
|
||||||
"notes": "Σημειώσεις",
|
"notes": "Σημειώσεις",
|
||||||
"notification_toggle_setting_description": "Ενεργοποίηση ειδοποιήσεων μέσω email",
|
"notification_toggle_setting_description": "Ενεργοποίηση ειδοποιήσεων μέσω email",
|
||||||
"notifications": "Ειδοποιήσεις",
|
"notifications": "Ειδοποιήσεις",
|
||||||
@@ -991,7 +984,6 @@
|
|||||||
"permanently_deleted_asset": "Οριστικά διαγραμμένο στοιχείο",
|
"permanently_deleted_asset": "Οριστικά διαγραμμένο στοιχείο",
|
||||||
"permanently_deleted_assets_count": "Οριστική διαγραφή {count, plural, one {# στοιχείου} other {# στοιχείων}}",
|
"permanently_deleted_assets_count": "Οριστική διαγραφή {count, plural, one {# στοιχείου} other {# στοιχείων}}",
|
||||||
"person": "Άτομο",
|
"person": "Άτομο",
|
||||||
"person_birthdate": "Γεννηθείς στις {date}",
|
|
||||||
"person_hidden": "{name}{hidden, select, true { (κρυφό)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (κρυφό)} other {}}",
|
||||||
"photo_shared_all_users": "Φαίνεται ότι μοιραστήκατε τις φωτογραφίες σας με όλους τους χρήστες ή δεν έχετε κανέναν χρήστη για κοινή χρήση.",
|
"photo_shared_all_users": "Φαίνεται ότι μοιραστήκατε τις φωτογραφίες σας με όλους τους χρήστες ή δεν έχετε κανέναν χρήστη για κοινή χρήση.",
|
||||||
"photos": "Φωτογραφίες",
|
"photos": "Φωτογραφίες",
|
||||||
@@ -1083,8 +1075,6 @@
|
|||||||
"remove_from_album": "Αφαίρεση από το άλμπουμ",
|
"remove_from_album": "Αφαίρεση από το άλμπουμ",
|
||||||
"remove_from_favorites": "Αφαίρεση από τα αγαπημένα",
|
"remove_from_favorites": "Αφαίρεση από τα αγαπημένα",
|
||||||
"remove_from_shared_link": "Αφαίρεση από τον κοινόχρηστο σύνδεσμο",
|
"remove_from_shared_link": "Αφαίρεση από τον κοινόχρηστο σύνδεσμο",
|
||||||
"remove_memory": "Αφαίρεση ανάμνησης",
|
|
||||||
"remove_photo_from_memory": "Αφαίρεση φωτογραφίας από την ανάμνηση",
|
|
||||||
"remove_url": "Αφαίρεση Συνδέσμου",
|
"remove_url": "Αφαίρεση Συνδέσμου",
|
||||||
"remove_user": "Αφαίρεση χρήστη",
|
"remove_user": "Αφαίρεση χρήστη",
|
||||||
"removed_api_key": "Αφαιρέθηκε το API Key: {name}",
|
"removed_api_key": "Αφαιρέθηκε το API Key: {name}",
|
||||||
@@ -1101,7 +1091,6 @@
|
|||||||
"repository": "Αποθετήριο",
|
"repository": "Αποθετήριο",
|
||||||
"require_password": "Απαιτείται κωδικός πρόσβασης",
|
"require_password": "Απαιτείται κωδικός πρόσβασης",
|
||||||
"require_user_to_change_password_on_first_login": "Ο χρήστης απαιτείται να αλλάξει τον κωδικό πρόσβασής του κατά την πρώτη σύνδεση",
|
"require_user_to_change_password_on_first_login": "Ο χρήστης απαιτείται να αλλάξει τον κωδικό πρόσβασής του κατά την πρώτη σύνδεση",
|
||||||
"rescan": "Εκ νέου σάρωση",
|
|
||||||
"reset": "Επαναφορά",
|
"reset": "Επαναφορά",
|
||||||
"reset_password": "Επαναφορά κωδικού πρόσβασης",
|
"reset_password": "Επαναφορά κωδικού πρόσβασης",
|
||||||
"reset_people_visibility": "Επαναφορά προβολής ατόμων",
|
"reset_people_visibility": "Επαναφορά προβολής ατόμων",
|
||||||
@@ -1155,7 +1144,6 @@
|
|||||||
"searching_locales": "Αναζήτηση τοποθεσιών...",
|
"searching_locales": "Αναζήτηση τοποθεσιών...",
|
||||||
"second": "Δευτερόλεπτο",
|
"second": "Δευτερόλεπτο",
|
||||||
"see_all_people": "Προβολή όλων των ατόμων",
|
"see_all_people": "Προβολή όλων των ατόμων",
|
||||||
"select": "Επιλογή",
|
|
||||||
"select_album_cover": "Επιλέξτε εξώφυλλο άλμπουμ",
|
"select_album_cover": "Επιλέξτε εξώφυλλο άλμπουμ",
|
||||||
"select_all": "Επιλογή όλων",
|
"select_all": "Επιλογή όλων",
|
||||||
"select_all_duplicates": "Επιλογή όλων των διπλότυπων",
|
"select_all_duplicates": "Επιλογή όλων των διπλότυπων",
|
||||||
@@ -1311,7 +1299,6 @@
|
|||||||
"unlink_motion_video": "Αποσυνδέστε το βίντεο κίνησης",
|
"unlink_motion_video": "Αποσυνδέστε το βίντεο κίνησης",
|
||||||
"unlink_oauth": "Αποσύνδεση OAuth",
|
"unlink_oauth": "Αποσύνδεση OAuth",
|
||||||
"unlinked_oauth_account": "Ο λογαριασμός OAuth αποσυνδέθηκε",
|
"unlinked_oauth_account": "Ο λογαριασμός OAuth αποσυνδέθηκε",
|
||||||
"unmute_memories": "Αποσυνδέστε τις αναμνήσεις",
|
|
||||||
"unnamed_album": "Ανώνυμο Άλμπουμ",
|
"unnamed_album": "Ανώνυμο Άλμπουμ",
|
||||||
"unnamed_album_delete_confirmation": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το άλμπουμ;",
|
"unnamed_album_delete_confirmation": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το άλμπουμ;",
|
||||||
"unnamed_share": "Ανώνυμη Κοινή Χρήση",
|
"unnamed_share": "Ανώνυμη Κοινή Χρήση",
|
||||||
@@ -1365,12 +1352,10 @@
|
|||||||
"view_all": "Προβολή Όλων",
|
"view_all": "Προβολή Όλων",
|
||||||
"view_all_users": "Προβολή όλων των χρηστών",
|
"view_all_users": "Προβολή όλων των χρηστών",
|
||||||
"view_in_timeline": "Προβολή στο χρονοδιάγραμμα",
|
"view_in_timeline": "Προβολή στο χρονοδιάγραμμα",
|
||||||
"view_link": "Προβολή σύνδεσμου",
|
|
||||||
"view_links": "Προβολή συνδέσμων",
|
"view_links": "Προβολή συνδέσμων",
|
||||||
"view_name": "Προβολή",
|
"view_name": "Προβολή",
|
||||||
"view_next_asset": "Προβολή επόμενου στοιχείου",
|
"view_next_asset": "Προβολή επόμενου στοιχείου",
|
||||||
"view_previous_asset": "Προβολή προηγούμενου στοιχείου",
|
"view_previous_asset": "Προβολή προηγούμενου στοιχείου",
|
||||||
"view_qr_code": "Προβολή κωδικού QR",
|
|
||||||
"view_stack": "Προβολή της στοίβας",
|
"view_stack": "Προβολή της στοίβας",
|
||||||
"visibility_changed": "Η ορατότητα άλλαξε για {count, plural, one {# άτομο} other {# άτομα}}",
|
"visibility_changed": "Η ορατότητα άλλαξε για {count, plural, one {# άτομο} other {# άτομα}}",
|
||||||
"waiting": "Στοιχεία σε αναμονή",
|
"waiting": "Στοιχεία σε αναμονή",
|
||||||
|
|||||||
+3
-10
@@ -65,13 +65,8 @@
|
|||||||
"forcing_refresh_library_files": "Forcing refresh of all library files",
|
"forcing_refresh_library_files": "Forcing refresh of all library files",
|
||||||
"image_format": "Format",
|
"image_format": "Format",
|
||||||
"image_format_description": "WebP produces smaller files than JPEG, but is slower to encode.",
|
"image_format_description": "WebP produces smaller files than JPEG, but is slower to encode.",
|
||||||
"image_fullsize_enabled": "Enable full-size image generation",
|
|
||||||
"image_fullsize_enabled_description": "Generate full-size image for non-web-friendly formats. When \"Prefer embedded preview\" is enabled, embedded previews are used directly without conversion. Does not affect web-friendly formats like JPEG.",
|
|
||||||
"image_fullsize_quality_description": "Full-size image quality from 1-100. Higher is better, but produces larger files.",
|
|
||||||
"image_fullsize_title": "Full-size Image Settings",
|
|
||||||
"image_fullsize_description": "Full-size image with stripped metadata, used when zoomed in",
|
|
||||||
"image_prefer_embedded_preview": "Prefer embedded preview",
|
"image_prefer_embedded_preview": "Prefer embedded preview",
|
||||||
"image_prefer_embedded_preview_setting_description": "Use embedded previews in RAW photos as the input to image processing and when available. This can produce more accurate colors for some images, but the quality of the preview is camera-dependent and the image may have more compression artifacts.",
|
"image_prefer_embedded_preview_setting_description": "Use embedded previews in RAW photos as the input to image processing when available. This can produce more accurate colors for some images, but the quality of the preview is camera-dependent and the image may have more compression artifacts.",
|
||||||
"image_prefer_wide_gamut": "Prefer wide gamut",
|
"image_prefer_wide_gamut": "Prefer wide gamut",
|
||||||
"image_prefer_wide_gamut_setting_description": "Use Display P3 for thumbnails. This better preserves the vibrance of images with wide colorspaces, but images may appear differently on old devices with an old browser version. sRGB images are kept as sRGB to avoid color shifts.",
|
"image_prefer_wide_gamut_setting_description": "Use Display P3 for thumbnails. This better preserves the vibrance of images with wide colorspaces, but images may appear differently on old devices with an old browser version. sRGB images are kept as sRGB to avoid color shifts.",
|
||||||
"image_preview_description": "Medium-size image with stripped metadata, used when viewing a single asset and for machine learning",
|
"image_preview_description": "Medium-size image with stripped metadata, used when viewing a single asset and for machine learning",
|
||||||
@@ -164,6 +159,7 @@
|
|||||||
"no_pattern_added": "No pattern added",
|
"no_pattern_added": "No pattern added",
|
||||||
"note_apply_storage_label_previous_assets": "Note: To apply the Storage Label to previously uploaded assets, run the",
|
"note_apply_storage_label_previous_assets": "Note: To apply the Storage Label to previously uploaded assets, run the",
|
||||||
"note_cannot_be_changed_later": "NOTE: This cannot be changed later!",
|
"note_cannot_be_changed_later": "NOTE: This cannot be changed later!",
|
||||||
|
"note_unlimited_quota": "Note: Enter 0 for unlimited quota",
|
||||||
"notification_email_from_address": "From address",
|
"notification_email_from_address": "From address",
|
||||||
"notification_email_from_address_description": "Sender email address, for example: \"Immich Photo Server <noreply@example.com>\"",
|
"notification_email_from_address_description": "Sender email address, for example: \"Immich Photo Server <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Host of the email server (e.g. smtp.immich.app)",
|
"notification_email_host_description": "Host of the email server (e.g. smtp.immich.app)",
|
||||||
@@ -863,7 +859,6 @@
|
|||||||
"loop_videos": "Loop videos",
|
"loop_videos": "Loop videos",
|
||||||
"loop_videos_description": "Enable to automatically loop a video in the detail viewer.",
|
"loop_videos_description": "Enable to automatically loop a video in the detail viewer.",
|
||||||
"main_branch_warning": "You’re using a development version; we strongly recommend using a release version!",
|
"main_branch_warning": "You’re using a development version; we strongly recommend using a release version!",
|
||||||
"main_menu": "Main menu",
|
|
||||||
"make": "Make",
|
"make": "Make",
|
||||||
"manage_shared_links": "Manage shared links",
|
"manage_shared_links": "Manage shared links",
|
||||||
"manage_sharing_with_partners": "Manage sharing with partners",
|
"manage_sharing_with_partners": "Manage sharing with partners",
|
||||||
@@ -928,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "Create an album to share photos and videos with people in your network",
|
"no_shared_albums_message": "Create an album to share photos and videos with people in your network",
|
||||||
"not_in_any_album": "Not in any album",
|
"not_in_any_album": "Not in any album",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Note: To apply the Storage Label to previously uploaded assets, run the",
|
"note_apply_storage_label_to_previously_uploaded assets": "Note: To apply the Storage Label to previously uploaded assets, run the",
|
||||||
|
"note_unlimited_quota": "Note: Enter 0 for unlimited quota",
|
||||||
"notes": "Notes",
|
"notes": "Notes",
|
||||||
"notification_toggle_setting_description": "Enable email notifications",
|
"notification_toggle_setting_description": "Enable email notifications",
|
||||||
"notifications": "Notifications",
|
"notifications": "Notifications",
|
||||||
@@ -1086,9 +1082,7 @@
|
|||||||
"remove_url": "Remove URL",
|
"remove_url": "Remove URL",
|
||||||
"remove_user": "Remove user",
|
"remove_user": "Remove user",
|
||||||
"removed_api_key": "Removed API Key: {name}",
|
"removed_api_key": "Removed API Key: {name}",
|
||||||
"remove_memory": "Remove memory",
|
|
||||||
"removed_memory": "Removed memory",
|
"removed_memory": "Removed memory",
|
||||||
"remove_photo_from_memory": "Remove photo from this memory",
|
|
||||||
"removed_photo_from_memory": "Removed photo from memory",
|
"removed_photo_from_memory": "Removed photo from memory",
|
||||||
"removed_from_archive": "Removed from archive",
|
"removed_from_archive": "Removed from archive",
|
||||||
"removed_from_favorites": "Removed from favorites",
|
"removed_from_favorites": "Removed from favorites",
|
||||||
@@ -1371,7 +1365,6 @@
|
|||||||
"view_next_asset": "View next asset",
|
"view_next_asset": "View next asset",
|
||||||
"view_previous_asset": "View previous asset",
|
"view_previous_asset": "View previous asset",
|
||||||
"view_stack": "View Stack",
|
"view_stack": "View Stack",
|
||||||
"view_qr_code": "View QR code",
|
|
||||||
"visibility_changed": "Visibility changed for {count, plural, one {# person} other {# people}}",
|
"visibility_changed": "Visibility changed for {count, plural, one {# person} other {# people}}",
|
||||||
"waiting": "Waiting",
|
"waiting": "Waiting",
|
||||||
"warning": "Warning",
|
"warning": "Warning",
|
||||||
|
|||||||
+9
-17
@@ -66,13 +66,8 @@
|
|||||||
"forcing_refresh_library_files": "Forzando la recarga de todos los elementos en la biblioteca",
|
"forcing_refresh_library_files": "Forzando la recarga de todos los elementos en la biblioteca",
|
||||||
"image_format": "Formato",
|
"image_format": "Formato",
|
||||||
"image_format_description": "WebP genera archivos más pequeños que JPEG, pero es más lento al codificarlos.",
|
"image_format_description": "WebP genera archivos más pequeños que JPEG, pero es más lento al codificarlos.",
|
||||||
"image_fullsize_description": "Imagen de tamaño completo con metadatos removidos, usado cuando se hace zoom",
|
|
||||||
"image_fullsize_enabled": "Activar generación de imágenes a tamaño completo",
|
|
||||||
"image_fullsize_enabled_description": "Generar imágenes a tamaño completo para formatos no aptos para web. Cuando \"Preferir vista previa incrustada\" está activada, las vistas previas incrustadas se utilizan directamente sin conversión. No afecta a los formatos aptos para la web, como JPEG.",
|
|
||||||
"image_fullsize_quality_description": "De 1 a 100, calidad de imágenes de tamaño completo. Mientras más alto es mejor, pero genera archivos de mayor tamaño.",
|
|
||||||
"image_fullsize_title": "Configuraciones de imágenes de tamaño completo",
|
|
||||||
"image_prefer_embedded_preview": "Preferir vista previa embebida",
|
"image_prefer_embedded_preview": "Preferir vista previa embebida",
|
||||||
"image_prefer_embedded_preview_setting_description": "Usar vistas previas embebidas en fotos RAW como entrada para el procesamiento de imágenes y cuando estén disponibles. Esto puede producir colores más precisos en algunas imágenes, pero la calidad de la vista previa depende de la cámara y la imagen puede tener más artefactos de compresión.",
|
"image_prefer_embedded_preview_setting_description": "Usar vistas previas embebidas en fotos RAW como entrada para el procesamiento de imágenes cuando estén disponibles. Esto puede producir colores más precisos en algunas imágenes, pero la calidad de la vista previa depende de la cámara y la imagen puede tener más artefactos de compresión.",
|
||||||
"image_prefer_wide_gamut": "Preferir 'gamut' amplio",
|
"image_prefer_wide_gamut": "Preferir 'gamut' amplio",
|
||||||
"image_prefer_wide_gamut_setting_description": "Usar \"Display P3\" para las miniaturas. Preserva mejor la vivacidad de las imágenes con espacios de color amplios pero las imágenes pueden aparecer de manera diferente en dispositivos antiguos con una versión antigua del navegador. Las imágenes sRGB se mantienen como sRGB para evitar cambios de color.",
|
"image_prefer_wide_gamut_setting_description": "Usar \"Display P3\" para las miniaturas. Preserva mejor la vivacidad de las imágenes con espacios de color amplios pero las imágenes pueden aparecer de manera diferente en dispositivos antiguos con una versión antigua del navegador. Las imágenes sRGB se mantienen como sRGB para evitar cambios de color.",
|
||||||
"image_preview_description": "Imagen de tamaño mediano con metadatos eliminados. Es utilizado al visualizar un solo activo y para el aprendizaje automático",
|
"image_preview_description": "Imagen de tamaño mediano con metadatos eliminados. Es utilizado al visualizar un solo activo y para el aprendizaje automático",
|
||||||
@@ -166,7 +161,8 @@
|
|||||||
"no_paths_added": "No se han añadido carpetas",
|
"no_paths_added": "No se han añadido carpetas",
|
||||||
"no_pattern_added": "No se han añadido patrones",
|
"no_pattern_added": "No se han añadido patrones",
|
||||||
"note_apply_storage_label_previous_assets": "Nota: para aplicar una Etiqueta de Almacenamient a un elemento anteriormente cargado, lanza el",
|
"note_apply_storage_label_previous_assets": "Nota: para aplicar una Etiqueta de Almacenamient a un elemento anteriormente cargado, lanza el",
|
||||||
"note_cannot_be_changed_later": "NOTA: ¡No se puede cambiar posteriormente!",
|
"note_cannot_be_changed_later": "NOTA: No se puede cambiar posteriormente!",
|
||||||
|
"note_unlimited_quota": "Nota: usa 0 para espacio sin límites",
|
||||||
"notification_email_from_address": "Desde",
|
"notification_email_from_address": "Desde",
|
||||||
"notification_email_from_address_description": "Dirección de correo electrónico del remitente, por ejemplo: \"Immich Photo Server <noreply@example.com>\"",
|
"notification_email_from_address_description": "Dirección de correo electrónico del remitente, por ejemplo: \"Immich Photo Server <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Host del servidor de correo electrónico (por ejemplo: smtp.immich.app)",
|
"notification_email_host_description": "Host del servidor de correo electrónico (por ejemplo: smtp.immich.app)",
|
||||||
@@ -418,7 +414,7 @@
|
|||||||
"asset_description_updated": "La descripción del elemento ha sido actualizada",
|
"asset_description_updated": "La descripción del elemento ha sido actualizada",
|
||||||
"asset_filename_is_offline": "El archivo {filename} está offline",
|
"asset_filename_is_offline": "El archivo {filename} está offline",
|
||||||
"asset_has_unassigned_faces": "El archivo no tiene rostros asignados",
|
"asset_has_unassigned_faces": "El archivo no tiene rostros asignados",
|
||||||
"asset_hashing": "Calculando hash…",
|
"asset_hashing": "Hashing…",
|
||||||
"asset_offline": "Archivos sin conexión",
|
"asset_offline": "Archivos sin conexión",
|
||||||
"asset_offline_description": "Este activo externo ya no se encuentra en el disco. Por favor, póngase en contacto con su administrador de Immich para obtener ayuda.",
|
"asset_offline_description": "Este activo externo ya no se encuentra en el disco. Por favor, póngase en contacto con su administrador de Immich para obtener ayuda.",
|
||||||
"asset_skipped": "Omitido",
|
"asset_skipped": "Omitido",
|
||||||
@@ -446,7 +442,7 @@
|
|||||||
"blurred_background": "Fondo borroso",
|
"blurred_background": "Fondo borroso",
|
||||||
"bugs_and_feature_requests": "Errores y solicitudes de funciones",
|
"bugs_and_feature_requests": "Errores y solicitudes de funciones",
|
||||||
"build": "Compilación",
|
"build": "Compilación",
|
||||||
"build_image": "Imagen de compilación",
|
"build_image": "Crear imagen",
|
||||||
"bulk_delete_duplicates_confirmation": "¿Estás seguro de que deseas eliminar de forma masiva {count, plural, one {# elemento duplicado} other {# elementos duplicados}}? Esto mantendrá el activo más grande de cada grupo y eliminará permanentemente todos los demás duplicados. ¡Esta acción no se puede deshacer!",
|
"bulk_delete_duplicates_confirmation": "¿Estás seguro de que deseas eliminar de forma masiva {count, plural, one {# elemento duplicado} other {# elementos duplicados}}? Esto mantendrá el activo más grande de cada grupo y eliminará permanentemente todos los demás duplicados. ¡Esta acción no se puede deshacer!",
|
||||||
"bulk_keep_duplicates_confirmation": "¿Estas seguro de que desea mantener {count, plural, one {# duplicate asset} other {# duplicate assets}} archivos duplicados? Esto resolverá todos los grupos duplicados sin borrar nada.",
|
"bulk_keep_duplicates_confirmation": "¿Estas seguro de que desea mantener {count, plural, one {# duplicate asset} other {# duplicate assets}} archivos duplicados? Esto resolverá todos los grupos duplicados sin borrar nada.",
|
||||||
"bulk_trash_duplicates_confirmation": "¿Estas seguro de que desea eliminar masivamente {count, plural, one {# duplicate asset} other {# duplicate assets}} archivos duplicados? Esto mantendrá el archivo más grande de cada grupo y eliminará todos los demás duplicados.",
|
"bulk_trash_duplicates_confirmation": "¿Estas seguro de que desea eliminar masivamente {count, plural, one {# duplicate asset} other {# duplicate assets}} archivos duplicados? Esto mantendrá el archivo más grande de cada grupo y eliminará todos los demás duplicados.",
|
||||||
@@ -558,7 +554,7 @@
|
|||||||
"direction": "Dirección",
|
"direction": "Dirección",
|
||||||
"disabled": "Deshabilitado",
|
"disabled": "Deshabilitado",
|
||||||
"disallow_edits": "Bloquear edición",
|
"disallow_edits": "Bloquear edición",
|
||||||
"discord": "",
|
"discord": "Discord",
|
||||||
"discover": "Descubrir",
|
"discover": "Descubrir",
|
||||||
"dismiss_all_errors": "Descartar todos los errores",
|
"dismiss_all_errors": "Descartar todos los errores",
|
||||||
"dismiss_error": "Descartar error",
|
"dismiss_error": "Descartar error",
|
||||||
@@ -863,7 +859,6 @@
|
|||||||
"loop_videos": "Vídeos en bucle",
|
"loop_videos": "Vídeos en bucle",
|
||||||
"loop_videos_description": "Habilite la reproducción automática de un video en el visor de detalles.",
|
"loop_videos_description": "Habilite la reproducción automática de un video en el visor de detalles.",
|
||||||
"main_branch_warning": "Estás ejecutando una compilación desde la rama principal. ¡Recomendamos encarecidamente usar una versión de lanzamiento!",
|
"main_branch_warning": "Estás ejecutando una compilación desde la rama principal. ¡Recomendamos encarecidamente usar una versión de lanzamiento!",
|
||||||
"main_menu": "Menú principal",
|
|
||||||
"make": "Marca",
|
"make": "Marca",
|
||||||
"manage_shared_links": "Administrar enlaces compartidos",
|
"manage_shared_links": "Administrar enlaces compartidos",
|
||||||
"manage_sharing_with_partners": "Administrar el uso compartido con invitados",
|
"manage_sharing_with_partners": "Administrar el uso compartido con invitados",
|
||||||
@@ -928,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "Crea un álbum para compartir fotos y vídeos con personas de tu red",
|
"no_shared_albums_message": "Crea un álbum para compartir fotos y vídeos con personas de tu red",
|
||||||
"not_in_any_album": "Sin álbum",
|
"not_in_any_album": "Sin álbum",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Nota: Para aplicar la etiqueta de almacenamiento a los archivos cargados previamente, ejecute el",
|
"note_apply_storage_label_to_previously_uploaded assets": "Nota: Para aplicar la etiqueta de almacenamiento a los archivos cargados previamente, ejecute el",
|
||||||
|
"note_unlimited_quota": "Nota: Ingrese 0 para cuota ilimitada",
|
||||||
"notes": "Notas",
|
"notes": "Notas",
|
||||||
"notification_toggle_setting_description": "Habilitar notificaciones de correo electrónico",
|
"notification_toggle_setting_description": "Habilitar notificaciones de correo electrónico",
|
||||||
"notifications": "Notificaciones",
|
"notifications": "Notificaciones",
|
||||||
@@ -1083,8 +1079,6 @@
|
|||||||
"remove_from_album": "Eliminar del álbum",
|
"remove_from_album": "Eliminar del álbum",
|
||||||
"remove_from_favorites": "Quitar de favoritos",
|
"remove_from_favorites": "Quitar de favoritos",
|
||||||
"remove_from_shared_link": "Eliminar desde enlace compartido",
|
"remove_from_shared_link": "Eliminar desde enlace compartido",
|
||||||
"remove_memory": "Quitar memoria",
|
|
||||||
"remove_photo_from_memory": "Quitar foto de esta memoria",
|
|
||||||
"remove_url": "Eliminar URL",
|
"remove_url": "Eliminar URL",
|
||||||
"remove_user": "Eliminar usuario",
|
"remove_user": "Eliminar usuario",
|
||||||
"removed_api_key": "Clave API eliminada: {name}",
|
"removed_api_key": "Clave API eliminada: {name}",
|
||||||
@@ -1155,7 +1149,6 @@
|
|||||||
"searching_locales": "Buscando sitios...",
|
"searching_locales": "Buscando sitios...",
|
||||||
"second": "Segundo",
|
"second": "Segundo",
|
||||||
"see_all_people": "Ver todas las personas",
|
"see_all_people": "Ver todas las personas",
|
||||||
"select": "Selecciona",
|
|
||||||
"select_album_cover": "Seleccionar portada del álbum",
|
"select_album_cover": "Seleccionar portada del álbum",
|
||||||
"select_all": "Seleccionar todo",
|
"select_all": "Seleccionar todo",
|
||||||
"select_all_duplicates": "Seleccionar todos los duplicados",
|
"select_all_duplicates": "Seleccionar todos los duplicados",
|
||||||
@@ -1245,7 +1238,7 @@
|
|||||||
"stack_select_one_photo": "Selecciona una imagen principal para la pila",
|
"stack_select_one_photo": "Selecciona una imagen principal para la pila",
|
||||||
"stack_selected_photos": "Apilar fotos seleccionadas",
|
"stack_selected_photos": "Apilar fotos seleccionadas",
|
||||||
"stacked_assets_count": "Apilado(s) {count, plural, one {# activo} other {# activos}}",
|
"stacked_assets_count": "Apilado(s) {count, plural, one {# activo} other {# activos}}",
|
||||||
"stacktrace": "Seguimiento de pila",
|
"stacktrace": "Stacktrace",
|
||||||
"start": "Inicio",
|
"start": "Inicio",
|
||||||
"start_date": "Fecha de inicio",
|
"start_date": "Fecha de inicio",
|
||||||
"state": "Estado",
|
"state": "Estado",
|
||||||
@@ -1354,7 +1347,7 @@
|
|||||||
"version_announcement_closing": "Tu amigo, Alex",
|
"version_announcement_closing": "Tu amigo, Alex",
|
||||||
"version_announcement_message": "¡Hola! Hay una nueva versión de Immich disponible. Tómese un tiempo para leer las <link> notas de la versión </link> para asegurarse de que su configuración esté actualizada y evitar errores de configuración, especialmente si utiliza WatchTower o cualquier mecanismo que se encargue de actualizar su instancia de Immich automáticamente.",
|
"version_announcement_message": "¡Hola! Hay una nueva versión de Immich disponible. Tómese un tiempo para leer las <link> notas de la versión </link> para asegurarse de que su configuración esté actualizada y evitar errores de configuración, especialmente si utiliza WatchTower o cualquier mecanismo que se encargue de actualizar su instancia de Immich automáticamente.",
|
||||||
"version_history": "Historial de versiones",
|
"version_history": "Historial de versiones",
|
||||||
"version_history_item": "Instalada {version} el {date}",
|
"version_history_item": "Instalada la {version} el {date}",
|
||||||
"video": "Vídeo",
|
"video": "Vídeo",
|
||||||
"video_hover_setting": "Iniciar vídeo al pasar por encima",
|
"video_hover_setting": "Iniciar vídeo al pasar por encima",
|
||||||
"video_hover_setting_description": "Reproducir el vídeo cuando el ratón está encima de un vídeo. Aunque esté desactivado, se iniciará cuando el cursor del ratón esté sobre el icono de \"reproducir\".",
|
"video_hover_setting_description": "Reproducir el vídeo cuando el ratón está encima de un vídeo. Aunque esté desactivado, se iniciará cuando el cursor del ratón esté sobre el icono de \"reproducir\".",
|
||||||
@@ -1370,7 +1363,6 @@
|
|||||||
"view_name": "Ver",
|
"view_name": "Ver",
|
||||||
"view_next_asset": "Mostrar siguiente elemento",
|
"view_next_asset": "Mostrar siguiente elemento",
|
||||||
"view_previous_asset": "Mostrar elemento anterior",
|
"view_previous_asset": "Mostrar elemento anterior",
|
||||||
"view_qr_code": "Ver código QR",
|
|
||||||
"view_stack": "Ver Pila",
|
"view_stack": "Ver Pila",
|
||||||
"visibility_changed": "Visibilidad cambiada para {count, plural, one {# persona} other {# personas}}",
|
"visibility_changed": "Visibilidad cambiada para {count, plural, one {# persona} other {# personas}}",
|
||||||
"waiting": "Esperando",
|
"waiting": "Esperando",
|
||||||
|
|||||||
+2
-10
@@ -66,11 +66,6 @@
|
|||||||
"forcing_refresh_library_files": "Kogu kõigi failide sundvärskendamine",
|
"forcing_refresh_library_files": "Kogu kõigi failide sundvärskendamine",
|
||||||
"image_format": "Formaat",
|
"image_format": "Formaat",
|
||||||
"image_format_description": "WebP failid on väiksemad kui JPEG, aga kodeerimine on aeglasem.",
|
"image_format_description": "WebP failid on väiksemad kui JPEG, aga kodeerimine on aeglasem.",
|
||||||
"image_fullsize_description": "Täismõõdus pilt ilma metaandmeteta, kasutatakse sisse suumimisel",
|
|
||||||
"image_fullsize_enabled": "Luba täismõõdus piltide genereerimine",
|
|
||||||
"image_fullsize_enabled_description": "Genereeri mitte-veebisõbralike formaatide jaoks täismõõdus pilt. Kui \"Eelista manustatud eelvaadet\" on lubatud, kasutatakse manustatud eelvaateid otse ilma teisendamiseta. Ei mõjuta veebisõbralikke formaate nagu JPEG.",
|
|
||||||
"image_fullsize_quality_description": "Täismõõdus pildi kvaliteet vahemikus 1-100. Kõrgem väärtus on parem, aga tulemuseks on suuremad failid.",
|
|
||||||
"image_fullsize_title": "Täismõõdus pildi seaded",
|
|
||||||
"image_prefer_embedded_preview": "Eelista manustatud eelvaadet",
|
"image_prefer_embedded_preview": "Eelista manustatud eelvaadet",
|
||||||
"image_prefer_embedded_preview_setting_description": "Kasuta pilditöötluse sisendina võimalusel RAW fotodesse manustatud eelvaateid. See võib mõnede piltide puhul anda tulemuseks täpsemad värvid, aga eelvaate kvaliteet sõltub konkreetsest kaamerast ning pildis võib olla rohkem tihendusmüra.",
|
"image_prefer_embedded_preview_setting_description": "Kasuta pilditöötluse sisendina võimalusel RAW fotodesse manustatud eelvaateid. See võib mõnede piltide puhul anda tulemuseks täpsemad värvid, aga eelvaate kvaliteet sõltub konkreetsest kaamerast ning pildis võib olla rohkem tihendusmüra.",
|
||||||
"image_prefer_wide_gamut": "Eelista laia värvigammat",
|
"image_prefer_wide_gamut": "Eelista laia värvigammat",
|
||||||
@@ -167,6 +162,7 @@
|
|||||||
"no_pattern_added": "Mustreid ei ole",
|
"no_pattern_added": "Mustreid ei ole",
|
||||||
"note_apply_storage_label_previous_assets": "Märkus: Et rakendada talletussilt varem üleslaaditud üksustele, käivita",
|
"note_apply_storage_label_previous_assets": "Märkus: Et rakendada talletussilt varem üleslaaditud üksustele, käivita",
|
||||||
"note_cannot_be_changed_later": "MÄRKUS: Seda ei saa hiljem muuta!",
|
"note_cannot_be_changed_later": "MÄRKUS: Seda ei saa hiljem muuta!",
|
||||||
|
"note_unlimited_quota": "Märkus: Piiramatu kvoodi jaoks sisesta 0",
|
||||||
"notification_email_from_address": "Saatja aadress",
|
"notification_email_from_address": "Saatja aadress",
|
||||||
"notification_email_from_address_description": "Saatja e-posti aadress, näiteks: \"Immich Photo Server <noreply@example.com>\"",
|
"notification_email_from_address_description": "Saatja e-posti aadress, näiteks: \"Immich Photo Server <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "E-posti serveri host (nt. smtp.immich.app)",
|
"notification_email_host_description": "E-posti serveri host (nt. smtp.immich.app)",
|
||||||
@@ -863,7 +859,6 @@
|
|||||||
"loop_videos": "Taasesita videod",
|
"loop_videos": "Taasesita videod",
|
||||||
"loop_videos_description": "Lülita sisse, et detailvaates videot automaatselt taasesitada.",
|
"loop_videos_description": "Lülita sisse, et detailvaates videot automaatselt taasesitada.",
|
||||||
"main_branch_warning": "Sa kasutad arendusversiooni; soovitame tungivalt kasutada väljalaskeversiooni!",
|
"main_branch_warning": "Sa kasutad arendusversiooni; soovitame tungivalt kasutada väljalaskeversiooni!",
|
||||||
"main_menu": "Peamenüü",
|
|
||||||
"make": "Mark",
|
"make": "Mark",
|
||||||
"manage_shared_links": "Halda jagatud linke",
|
"manage_shared_links": "Halda jagatud linke",
|
||||||
"manage_sharing_with_partners": "Halda partneritega jagamist",
|
"manage_sharing_with_partners": "Halda partneritega jagamist",
|
||||||
@@ -928,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "Lisa album, et fotosid ja videosid teistega jagada",
|
"no_shared_albums_message": "Lisa album, et fotosid ja videosid teistega jagada",
|
||||||
"not_in_any_album": "Pole üheski albumis",
|
"not_in_any_album": "Pole üheski albumis",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Märkus: Et rakendada talletussilt varem üleslaaditud üksustele, käivita",
|
"note_apply_storage_label_to_previously_uploaded assets": "Märkus: Et rakendada talletussilt varem üleslaaditud üksustele, käivita",
|
||||||
|
"note_unlimited_quota": "Märkus: Piiramatu kvoodi jaoks sisesta 0",
|
||||||
"notes": "Märkused",
|
"notes": "Märkused",
|
||||||
"notification_toggle_setting_description": "Luba e-posti teel teavitused",
|
"notification_toggle_setting_description": "Luba e-posti teel teavitused",
|
||||||
"notifications": "Teavitused",
|
"notifications": "Teavitused",
|
||||||
@@ -1083,8 +1079,6 @@
|
|||||||
"remove_from_album": "Eemalda albumist",
|
"remove_from_album": "Eemalda albumist",
|
||||||
"remove_from_favorites": "Eemalda lemmikutest",
|
"remove_from_favorites": "Eemalda lemmikutest",
|
||||||
"remove_from_shared_link": "Eemalda jagatud lingist",
|
"remove_from_shared_link": "Eemalda jagatud lingist",
|
||||||
"remove_memory": "Eemalda mälestus",
|
|
||||||
"remove_photo_from_memory": "Eemalda foto sellest mälestusest",
|
|
||||||
"remove_url": "Eemalda URL",
|
"remove_url": "Eemalda URL",
|
||||||
"remove_user": "Eemalda kasutaja",
|
"remove_user": "Eemalda kasutaja",
|
||||||
"removed_api_key": "API võti eemaldatud: {name}",
|
"removed_api_key": "API võti eemaldatud: {name}",
|
||||||
@@ -1155,7 +1149,6 @@
|
|||||||
"searching_locales": "Lokaatide otsimine...",
|
"searching_locales": "Lokaatide otsimine...",
|
||||||
"second": "Sekund",
|
"second": "Sekund",
|
||||||
"see_all_people": "Vaata kõiki isikuid",
|
"see_all_people": "Vaata kõiki isikuid",
|
||||||
"select": "Vali",
|
|
||||||
"select_album_cover": "Vali albumi kaanepilt",
|
"select_album_cover": "Vali albumi kaanepilt",
|
||||||
"select_all": "Vali kõik",
|
"select_all": "Vali kõik",
|
||||||
"select_all_duplicates": "Vali kõik duplikaadid",
|
"select_all_duplicates": "Vali kõik duplikaadid",
|
||||||
@@ -1370,7 +1363,6 @@
|
|||||||
"view_name": "Vaade",
|
"view_name": "Vaade",
|
||||||
"view_next_asset": "Vaata järgmist üksust",
|
"view_next_asset": "Vaata järgmist üksust",
|
||||||
"view_previous_asset": "Vaata eelmist üksust",
|
"view_previous_asset": "Vaata eelmist üksust",
|
||||||
"view_qr_code": "Vaata QR-koodi",
|
|
||||||
"view_stack": "Vaata virna",
|
"view_stack": "Vaata virna",
|
||||||
"visibility_changed": "{count, plural, one {# isiku} other {# isiku}} nähtavus muudetud",
|
"visibility_changed": "{count, plural, one {# isiku} other {# isiku}} nähtavus muudetud",
|
||||||
"waiting": "Ootel",
|
"waiting": "Ootel",
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
{}
|
|
||||||
@@ -132,6 +132,7 @@
|
|||||||
"no_pattern_added": "هیچ الگوی اضافه نشده",
|
"no_pattern_added": "هیچ الگوی اضافه نشده",
|
||||||
"note_apply_storage_label_previous_assets": "توجه: برای اعمال برچسب ذخیره سازی به دارایی هایی که قبلاً بارگذاری شده اند، دستور زیر را اجرا کنید",
|
"note_apply_storage_label_previous_assets": "توجه: برای اعمال برچسب ذخیره سازی به دارایی هایی که قبلاً بارگذاری شده اند، دستور زیر را اجرا کنید",
|
||||||
"note_cannot_be_changed_later": "توجه: این را نمی توان بعداً تغییر داد!",
|
"note_cannot_be_changed_later": "توجه: این را نمی توان بعداً تغییر داد!",
|
||||||
|
"note_unlimited_quota": "توجه: برای سهمیه نامحدود، عدد 0 را وارد کنید",
|
||||||
"notification_email_from_address": "آدرس فرستنده",
|
"notification_email_from_address": "آدرس فرستنده",
|
||||||
"notification_email_from_address_description": "آدرس ایمیل فرستنده، به عنوان مثال:\"Immich سرور عکس <noreply@example.com>\"",
|
"notification_email_from_address_description": "آدرس ایمیل فرستنده، به عنوان مثال:\"Immich سرور عکس <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "میزبان سرور ایمیل (مثلاً smtp.immich.app)",
|
"notification_email_host_description": "میزبان سرور ایمیل (مثلاً smtp.immich.app)",
|
||||||
@@ -663,6 +664,7 @@
|
|||||||
"no_shared_albums_message": "",
|
"no_shared_albums_message": "",
|
||||||
"not_in_any_album": "در هیچ آلبومی نیست",
|
"not_in_any_album": "در هیچ آلبومی نیست",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "",
|
"note_apply_storage_label_to_previously_uploaded assets": "",
|
||||||
|
"note_unlimited_quota": "",
|
||||||
"notes": "یادداشتها",
|
"notes": "یادداشتها",
|
||||||
"notification_toggle_setting_description": "اعلانهای ایمیلی را فعال کنید",
|
"notification_toggle_setting_description": "اعلانهای ایمیلی را فعال کنید",
|
||||||
"notifications": "اعلانها",
|
"notifications": "اعلانها",
|
||||||
|
|||||||
+5
-3
@@ -159,6 +159,7 @@
|
|||||||
"no_pattern_added": "Kaavoja ei lisättynä",
|
"no_pattern_added": "Kaavoja ei lisättynä",
|
||||||
"note_apply_storage_label_previous_assets": "Huom: Asettaaksesi nimikkeen aiemmin ladatulle aineistolle, aja",
|
"note_apply_storage_label_previous_assets": "Huom: Asettaaksesi nimikkeen aiemmin ladatulle aineistolle, aja",
|
||||||
"note_cannot_be_changed_later": "Huom: Tätä ei voi enää myöhemmin vaihtaa!",
|
"note_cannot_be_changed_later": "Huom: Tätä ei voi enää myöhemmin vaihtaa!",
|
||||||
|
"note_unlimited_quota": "Huom: Määritä 0 rajoittamattomaksi kiintiöksi",
|
||||||
"notification_email_from_address": "Lähettäjän osoite",
|
"notification_email_from_address": "Lähettäjän osoite",
|
||||||
"notification_email_from_address_description": "Lähettäjän sähköpostiosoite. Esimerkiksi \"Immich-kuvapalvelin <noreply@example.com>\"",
|
"notification_email_from_address_description": "Lähettäjän sähköpostiosoite. Esimerkiksi \"Immich-kuvapalvelin <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Sähköpostipalvelin (esim. smtp.immich.app)",
|
"notification_email_host_description": "Sähköpostipalvelin (esim. smtp.immich.app)",
|
||||||
@@ -218,7 +219,7 @@
|
|||||||
"reset_settings_to_default": "Nollaa asetukset oletuksille",
|
"reset_settings_to_default": "Nollaa asetukset oletuksille",
|
||||||
"reset_settings_to_recent_saved": "Palauta aiemmin tallennetut asetukset",
|
"reset_settings_to_recent_saved": "Palauta aiemmin tallennetut asetukset",
|
||||||
"scanning_library": "Kirjastoa skannataan",
|
"scanning_library": "Kirjastoa skannataan",
|
||||||
"search_jobs": "Etsi tehtäviä…",
|
"search_jobs": "Etsi tehtäviä...",
|
||||||
"send_welcome_email": "Lähetä tervetuloviesti",
|
"send_welcome_email": "Lähetä tervetuloviesti",
|
||||||
"server_external_domain_settings": "Ulkoinen osoite",
|
"server_external_domain_settings": "Ulkoinen osoite",
|
||||||
"server_external_domain_settings_description": "Osoite julkisille linkeille, http(s):// mukaan lukien",
|
"server_external_domain_settings_description": "Osoite julkisille linkeille, http(s):// mukaan lukien",
|
||||||
@@ -405,11 +406,11 @@
|
|||||||
"are_these_the_same_person": "Ovatko he sama henkilö?",
|
"are_these_the_same_person": "Ovatko he sama henkilö?",
|
||||||
"are_you_sure_to_do_this": "Haluatko varmasti tehdä tämän?",
|
"are_you_sure_to_do_this": "Haluatko varmasti tehdä tämän?",
|
||||||
"asset_added_to_album": "Lisätty albumiin",
|
"asset_added_to_album": "Lisätty albumiin",
|
||||||
"asset_adding_to_album": "Lisätään albumiin…",
|
"asset_adding_to_album": "Lisätään albumiin...",
|
||||||
"asset_description_updated": "Kohteen kuvaus on päivitetty",
|
"asset_description_updated": "Kohteen kuvaus on päivitetty",
|
||||||
"asset_filename_is_offline": "Kohde {filename} on offline-tilassa",
|
"asset_filename_is_offline": "Kohde {filename} on offline-tilassa",
|
||||||
"asset_has_unassigned_faces": "Kohteella on määrittämättömiä kasvoja",
|
"asset_has_unassigned_faces": "Kohteella on määrittämättömiä kasvoja",
|
||||||
"asset_hashing": "Hajautetaan…",
|
"asset_hashing": "Hajautetaan...",
|
||||||
"asset_offline": "Aineisto offline-tilassa",
|
"asset_offline": "Aineisto offline-tilassa",
|
||||||
"asset_offline_description": "Tätä ulkoista resurssia ei enää löydy levyltä. Ole hyvä ja ota yhteyttä Immich-järjestelmänvalvojaan saadaksesi apua.",
|
"asset_offline_description": "Tätä ulkoista resurssia ei enää löydy levyltä. Ole hyvä ja ota yhteyttä Immich-järjestelmänvalvojaan saadaksesi apua.",
|
||||||
"asset_skipped": "Ohitettu",
|
"asset_skipped": "Ohitettu",
|
||||||
@@ -913,6 +914,7 @@
|
|||||||
"no_shared_albums_message": "Luo albumi, jotta voit jakaa kuvia ja videoita toisille",
|
"no_shared_albums_message": "Luo albumi, jotta voit jakaa kuvia ja videoita toisille",
|
||||||
"not_in_any_album": "Ei yhdessäkään albumissa",
|
"not_in_any_album": "Ei yhdessäkään albumissa",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Huom: Jotta voit soveltaa tallennustunnistetta aiemmin ladattuihin kohteisiin, suorita",
|
"note_apply_storage_label_to_previously_uploaded assets": "Huom: Jotta voit soveltaa tallennustunnistetta aiemmin ladattuihin kohteisiin, suorita",
|
||||||
|
"note_unlimited_quota": "Huomio: Syötä 0 rajoittamatonta kiintiötä varten",
|
||||||
"notes": "Muistiinpanot",
|
"notes": "Muistiinpanot",
|
||||||
"notification_toggle_setting_description": "Ota sähköposti-ilmoitukset käyttöön",
|
"notification_toggle_setting_description": "Ota sähköposti-ilmoitukset käyttöön",
|
||||||
"notifications": "Ilmoitukset",
|
"notifications": "Ilmoitukset",
|
||||||
|
|||||||
+2
-11
@@ -66,11 +66,6 @@
|
|||||||
"forcing_refresh_library_files": "Forcer le rafraîchissement de tous les fichiers de la bibliothèque",
|
"forcing_refresh_library_files": "Forcer le rafraîchissement de tous les fichiers de la bibliothèque",
|
||||||
"image_format": "Format",
|
"image_format": "Format",
|
||||||
"image_format_description": "WebP produit des fichiers plus petits que JPEG, mais son encodage est plus lent.",
|
"image_format_description": "WebP produit des fichiers plus petits que JPEG, mais son encodage est plus lent.",
|
||||||
"image_fullsize_description": "Image en taille réelle, sans métadonnées, utilisée lors d'un zoom",
|
|
||||||
"image_fullsize_enabled": "Activer la génération d'image en taille d'origine",
|
|
||||||
"image_fullsize_enabled_description": "Générer une image en taille réelle pour les formats non compatibles avec le web. Lorsque l'option « Préférer l'aperçu intégré » est activée, les aperçus intégrés sont utilisés directement sans conversion. Cette option n'affecte pas les formats compatibles avec le web tels que JPEG.",
|
|
||||||
"image_fullsize_quality_description": "Qualité de l'image en taille réelle de 1 à 100. Une valeur plus élevée est meilleure, mais produit des fichiers plus volumineux.",
|
|
||||||
"image_fullsize_title": "Paramètres des images en taille réelle",
|
|
||||||
"image_prefer_embedded_preview": "Préférer l'aperçu intégré",
|
"image_prefer_embedded_preview": "Préférer l'aperçu intégré",
|
||||||
"image_prefer_embedded_preview_setting_description": "Utiliser les miniatures intégrées dans les photos au format RAW comme entrées pour le traitement d'image quand elles sont disponibles. Cela peut donner des couleurs plus justes pour certaines images, mais la qualité des miniatures est dépendant de l'appareil photo et l'image peut avoir des artéfacts de compression.",
|
"image_prefer_embedded_preview_setting_description": "Utiliser les miniatures intégrées dans les photos au format RAW comme entrées pour le traitement d'image quand elles sont disponibles. Cela peut donner des couleurs plus justes pour certaines images, mais la qualité des miniatures est dépendant de l'appareil photo et l'image peut avoir des artéfacts de compression.",
|
||||||
"image_prefer_wide_gamut": "Préférer une gamme de couleurs étendue",
|
"image_prefer_wide_gamut": "Préférer une gamme de couleurs étendue",
|
||||||
@@ -167,6 +162,7 @@
|
|||||||
"no_pattern_added": "Aucun schéma d'exclusion n'a été ajouté",
|
"no_pattern_added": "Aucun schéma d'exclusion n'a été ajouté",
|
||||||
"note_apply_storage_label_previous_assets": "Remarque : pour appliquer l'étiquette de stockage à des médias précédemment envoyés, exécutez la commande",
|
"note_apply_storage_label_previous_assets": "Remarque : pour appliquer l'étiquette de stockage à des médias précédemment envoyés, exécutez la commande",
|
||||||
"note_cannot_be_changed_later": "REMARQUE : Il n'est pas possible de modifier ce paramètre ultérieurement !",
|
"note_cannot_be_changed_later": "REMARQUE : Il n'est pas possible de modifier ce paramètre ultérieurement !",
|
||||||
|
"note_unlimited_quota": "Note : saisir 0 pour un quota illimité",
|
||||||
"notification_email_from_address": "Depuis l'adresse",
|
"notification_email_from_address": "Depuis l'adresse",
|
||||||
"notification_email_from_address_description": "Adresse courriel de l'expéditeur, par exemple : « Serveur de photos Immich <nepasrepondre@exemple.org> »",
|
"notification_email_from_address_description": "Adresse courriel de l'expéditeur, par exemple : « Serveur de photos Immich <nepasrepondre@exemple.org> »",
|
||||||
"notification_email_host_description": "Hôte du serveur de messagerie électronique (par exemple, smtp.immich.app)",
|
"notification_email_host_description": "Hôte du serveur de messagerie électronique (par exemple, smtp.immich.app)",
|
||||||
@@ -863,7 +859,6 @@
|
|||||||
"loop_videos": "Vidéos en boucle",
|
"loop_videos": "Vidéos en boucle",
|
||||||
"loop_videos_description": "Activer pour voir la vidéo en boucle dans le lecteur détaillé.",
|
"loop_videos_description": "Activer pour voir la vidéo en boucle dans le lecteur détaillé.",
|
||||||
"main_branch_warning": "Vous utilisez une version de développement. Nous vous recommandons fortement d'utiliser une version stable !",
|
"main_branch_warning": "Vous utilisez une version de développement. Nous vous recommandons fortement d'utiliser une version stable !",
|
||||||
"main_menu": "Menu principal",
|
|
||||||
"make": "Marque",
|
"make": "Marque",
|
||||||
"manage_shared_links": "Gérer les liens partagés",
|
"manage_shared_links": "Gérer les liens partagés",
|
||||||
"manage_sharing_with_partners": "Gérer le partage avec les partenaires",
|
"manage_sharing_with_partners": "Gérer le partage avec les partenaires",
|
||||||
@@ -928,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "Créer un album pour partager vos photos et vidéos avec les personnes de votre réseau",
|
"no_shared_albums_message": "Créer un album pour partager vos photos et vidéos avec les personnes de votre réseau",
|
||||||
"not_in_any_album": "Dans aucun album",
|
"not_in_any_album": "Dans aucun album",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Note : Pour appliquer l'étiquette de stockage aux médias déjà envoyés, lancer la",
|
"note_apply_storage_label_to_previously_uploaded assets": "Note : Pour appliquer l'étiquette de stockage aux médias déjà envoyés, lancer la",
|
||||||
|
"note_unlimited_quota": "Note : Saisir 0 pour définir un quota illimité",
|
||||||
"notes": "Notes",
|
"notes": "Notes",
|
||||||
"notification_toggle_setting_description": "Activer les notifications par courriel",
|
"notification_toggle_setting_description": "Activer les notifications par courriel",
|
||||||
"notifications": "Notifications",
|
"notifications": "Notifications",
|
||||||
@@ -991,7 +987,6 @@
|
|||||||
"permanently_deleted_asset": "Média supprimé définitivement",
|
"permanently_deleted_asset": "Média supprimé définitivement",
|
||||||
"permanently_deleted_assets_count": "{count, plural, one {# média définitivement supprimé} other {# médias définitivement supprimés}}",
|
"permanently_deleted_assets_count": "{count, plural, one {# média définitivement supprimé} other {# médias définitivement supprimés}}",
|
||||||
"person": "Personne",
|
"person": "Personne",
|
||||||
"person_birthdate": "Né(e) le {date}",
|
|
||||||
"person_hidden": "{name}{hidden, select, true { (caché)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (caché)} other {}}",
|
||||||
"photo_shared_all_users": "Il semble que vous ayez partagé vos photos avec tous les utilisateurs ou que vous n'ayez aucun utilisateur avec qui les partager.",
|
"photo_shared_all_users": "Il semble que vous ayez partagé vos photos avec tous les utilisateurs ou que vous n'ayez aucun utilisateur avec qui les partager.",
|
||||||
"photos": "Photos",
|
"photos": "Photos",
|
||||||
@@ -1083,8 +1078,6 @@
|
|||||||
"remove_from_album": "Supprimer de l'album",
|
"remove_from_album": "Supprimer de l'album",
|
||||||
"remove_from_favorites": "Supprimer des favoris",
|
"remove_from_favorites": "Supprimer des favoris",
|
||||||
"remove_from_shared_link": "Supprimer des liens partagés",
|
"remove_from_shared_link": "Supprimer des liens partagés",
|
||||||
"remove_memory": "Supprimer le souvenir",
|
|
||||||
"remove_photo_from_memory": "Supprimer la photo de ce souvenir",
|
|
||||||
"remove_url": "Supprimer l'URL",
|
"remove_url": "Supprimer l'URL",
|
||||||
"remove_user": "Supprimer l'utilisateur",
|
"remove_user": "Supprimer l'utilisateur",
|
||||||
"removed_api_key": "Clé API supprimée : {name}",
|
"removed_api_key": "Clé API supprimée : {name}",
|
||||||
@@ -1155,7 +1148,6 @@
|
|||||||
"searching_locales": "Recherche des paramètres régionaux...",
|
"searching_locales": "Recherche des paramètres régionaux...",
|
||||||
"second": "Seconde",
|
"second": "Seconde",
|
||||||
"see_all_people": "Voir toutes les personnes",
|
"see_all_people": "Voir toutes les personnes",
|
||||||
"select": "Sélectionner",
|
|
||||||
"select_album_cover": "Sélectionner la couverture d'album",
|
"select_album_cover": "Sélectionner la couverture d'album",
|
||||||
"select_all": "Tout sélectionner",
|
"select_all": "Tout sélectionner",
|
||||||
"select_all_duplicates": "Sélectionner tous les doublons",
|
"select_all_duplicates": "Sélectionner tous les doublons",
|
||||||
@@ -1370,7 +1362,6 @@
|
|||||||
"view_name": "Vue",
|
"view_name": "Vue",
|
||||||
"view_next_asset": "Voir le média suivant",
|
"view_next_asset": "Voir le média suivant",
|
||||||
"view_previous_asset": "Voir le média précédent",
|
"view_previous_asset": "Voir le média précédent",
|
||||||
"view_qr_code": "Voir le QR code",
|
|
||||||
"view_stack": "Afficher la pile",
|
"view_stack": "Afficher la pile",
|
||||||
"visibility_changed": "Visibilité changée pour {count, plural, one {# personne} other {# personnes}}",
|
"visibility_changed": "Visibilité changée pour {count, plural, one {# personne} other {# personnes}}",
|
||||||
"waiting": "En attente",
|
"waiting": "En attente",
|
||||||
|
|||||||
@@ -1,62 +0,0 @@
|
|||||||
{
|
|
||||||
"about": "Acerca de",
|
|
||||||
"account": "Conta",
|
|
||||||
"account_settings": "Configuración da conta",
|
|
||||||
"acknowledge": "De acordo",
|
|
||||||
"action": "Acción",
|
|
||||||
"actions": "Accións",
|
|
||||||
"active": "Activo",
|
|
||||||
"activity": "Actividade",
|
|
||||||
"activity_changed": "A actividade está {enabled, select, true {habilitada} other {deshabilitada}}",
|
|
||||||
"add": "Engadir",
|
|
||||||
"add_a_description": "Engadir unha descrición",
|
|
||||||
"add_a_location": "Engadir unha localización",
|
|
||||||
"add_a_name": "Engadir un nome",
|
|
||||||
"add_a_title": "Engadir un título",
|
|
||||||
"add_exclusion_pattern": "Engadir patrón de exclusión",
|
|
||||||
"add_import_path": "Engadir ruta de importación",
|
|
||||||
"add_location": "Engadir localización",
|
|
||||||
"add_more_users": "Engadir máis usuarios",
|
|
||||||
"add_partner": "Engadir compañeiro",
|
|
||||||
"add_path": "Engadir ruta",
|
|
||||||
"add_photos": "Engadir fotos",
|
|
||||||
"add_to": "Engadir a…",
|
|
||||||
"add_to_album": "Engadir ao álbum",
|
|
||||||
"add_to_shared_album": "Engadir ao álbum compartido",
|
|
||||||
"add_url": "Engadir URL",
|
|
||||||
"added_to_archive": "Engadido ao arquivo",
|
|
||||||
"added_to_favorites": "Engadido a favoritos",
|
|
||||||
"added_to_favorites_count": "Engadidos {count, number} a favoritos",
|
|
||||||
"admin": {
|
|
||||||
"authentication_settings": "Configuración de autenticación",
|
|
||||||
"authentication_settings_description": "Xestionar contrasinal, OAuth e outros parámetros de autenticación",
|
|
||||||
"authentication_settings_disable_all": "Estás seguro de deshabilitar todos os métodos de inicio de sesión? Iniciar a sesión quedará completamente deshabilitado.",
|
|
||||||
"authentication_settings_reenable": "Para rehabilitala, usa un <link>Comando do servidor</link>.",
|
|
||||||
"background_task_job": "Tarefas en segundo plano",
|
|
||||||
"backup_database": "Respaldo da base de datos",
|
|
||||||
"backup_database_enable_description": "Habilitar as copias de seguridade da base de datos",
|
|
||||||
"backup_keep_last_amount": "Cantidade de copias de seguridade previas a manter",
|
|
||||||
"backup_settings": "Configuración de copias de seguridade",
|
|
||||||
"backup_settings_description": "Xestionar a configuración das copias de seguridade da base de datos",
|
|
||||||
"check_all": "Comprobar todo",
|
|
||||||
"cleared_jobs": "Traballos borrados para: {job}",
|
|
||||||
"config_set_by_file": "As configuracións están actualmente seleccionadas por un ficheiro de configuracións",
|
|
||||||
"confirm_delete_library": "Estás seguro de que queres eliminar a biblioteca {library}?",
|
|
||||||
"exclusion_pattern_description": "Os patróns de exclusión permítenche ignorar ficheiros e cartafoles ao escanear a túa biblioteca. Isto é útil se tes cartafoles que conteñen ficheiros que non queres importar, coma ficheiros RAW.",
|
|
||||||
"external_library_created_at": "Biblioteca externa (creada o {date})",
|
|
||||||
"external_library_management": "Xestión de bibliotecas externas",
|
|
||||||
"face_detection": "Detección de caras",
|
|
||||||
"job_settings": "Configuración de tarefas",
|
|
||||||
"job_settings_description": "Administrar tarefas simultáneas",
|
|
||||||
"job_status": "Estado da tarefa",
|
|
||||||
"jobs_failed": "{jobCount, one {# errado}, plural, other {# errados}}",
|
|
||||||
"note_cannot_be_changed_later": "NOTA: Non editable posteriormente!",
|
|
||||||
"notification_email_host_description": "Host do servidor de correo electrónico (p. ex.: smtp.immich.app)",
|
|
||||||
"notification_email_ignore_certificate_errors": "Ignorar erros de certificado",
|
|
||||||
"notification_email_ignore_certificate_errors_description": "Ignorar erros de validación de certificados TLS (non recomendado)",
|
|
||||||
"notification_settings": "Configuración de notificacións"
|
|
||||||
},
|
|
||||||
"year": "Ano",
|
|
||||||
"yes": "Si",
|
|
||||||
"zoom_image": "Acercar imaxe"
|
|
||||||
}
|
|
||||||
+49
-57
@@ -44,11 +44,11 @@
|
|||||||
"cleanup": "ניקוי",
|
"cleanup": "ניקוי",
|
||||||
"cleared_jobs": "נוקו משימות עבור: {job}",
|
"cleared_jobs": "נוקו משימות עבור: {job}",
|
||||||
"config_set_by_file": "התצורה מוגדרת כעת על ידי קובץ תצורה",
|
"config_set_by_file": "התצורה מוגדרת כעת על ידי קובץ תצורה",
|
||||||
"confirm_delete_library": "האם באמת ברצונך למחוק את הספרייה {library}?",
|
"confirm_delete_library": "האם את/ה בטוח/ה שברצונך למחוק את הספרייה {library}?",
|
||||||
"confirm_delete_library_assets": "האם באמת ברצונך למחוק את הספרייה הזו? זה ימחק את {count, plural, one {נכס # המוכל} other {כל # הנכסים המוכלים}} בה מ-Immich ואינו ניתן לביטול. קבצים יישארו בדיסק.",
|
"confirm_delete_library_assets": "האם את/ה בטוח/ה שברצונך למחוק את הספרייה הזו? זה ימחק את {count, plural, one {נכס # המוכל} other {כל # הנכסים המוכלים}} בה מ-Immich ואינו ניתן לביטול. קבצים יישארו בדיסק.",
|
||||||
"confirm_email_below": "כדי לאשר, יש להקליד \"{email}\" למטה",
|
"confirm_email_below": "כדי לאשר, יש להקליד \"{email}\" למטה",
|
||||||
"confirm_reprocess_all_faces": "האם באמת ברצונך לעבד מחדש את כל הפנים? זה גם ינקה אנשים בעלי שם.",
|
"confirm_reprocess_all_faces": "האם את/ה בטוח/ה שברצונך לעבד מחדש את כל הפנים? זה גם ינקה אנשים בעלי שם.",
|
||||||
"confirm_user_password_reset": "האם באמת ברצונך לאפס את הסיסמה של המשתמש {user}?",
|
"confirm_user_password_reset": "האם את/ה בטוח/ה שברצונך לאפס את הסיסמה של המשתמש {user}?",
|
||||||
"create_job": "צור עבודה",
|
"create_job": "צור עבודה",
|
||||||
"cron_expression": "ביטוי cron",
|
"cron_expression": "ביטוי cron",
|
||||||
"cron_expression_description": "הגדר את מרווח הסריקה באמצעות תבנית ה- cron. למידע נוסף נא לפנות למשל אל <link>Crontab Guru</link>",
|
"cron_expression_description": "הגדר את מרווח הסריקה באמצעות תבנית ה- cron. למידע נוסף נא לפנות למשל אל <link>Crontab Guru</link>",
|
||||||
@@ -66,17 +66,12 @@
|
|||||||
"forcing_refresh_library_files": "כפיית רענון של כל קבצי הספרייה",
|
"forcing_refresh_library_files": "כפיית רענון של כל קבצי הספרייה",
|
||||||
"image_format": "פורמט",
|
"image_format": "פורמט",
|
||||||
"image_format_description": "WebP מפיק קבצים קטנים יותר מ JPEG, אך הוא איטי יותר לקידוד.",
|
"image_format_description": "WebP מפיק קבצים קטנים יותר מ JPEG, אך הוא איטי יותר לקידוד.",
|
||||||
"image_fullsize_description": "תמונה בגודל מלא עם מטא-נתונים שהוסרו, משמשת כאשר התמונה מוצגת מקרוב",
|
|
||||||
"image_fullsize_enabled": "אפשר יצירה של תמונות בגודל מלא",
|
|
||||||
"image_fullsize_enabled_description": "צור תמונה בגודל מלא עבור פורמטים לא ידידותיים לרשת. כאשר האפשרות \"העדף תצוגה מקדימה מוטמעת\" מופעלת, תצוגות מקדימות מוטמעות משמשות ישירות ללא המרה. אין השפעה על פורמטים ידידותיים לרשת כמו JPEG.",
|
|
||||||
"image_fullsize_quality_description": "איכות תמונה בגודל מלא מ-1 עד 100. איכות גבוהה יותר היא טובה יותר, אבל מייצרת קבצים גדולים יותר.",
|
|
||||||
"image_fullsize_title": "הגדרות תמונה בגודל מלא",
|
|
||||||
"image_prefer_embedded_preview": "העדף תצוגה מקדימה מוטמעת",
|
"image_prefer_embedded_preview": "העדף תצוגה מקדימה מוטמעת",
|
||||||
"image_prefer_embedded_preview_setting_description": "השתמש בתצוגות מקדימות מוטמעות בתמונות RAW כקלט לעיבוד תמונה וכאשר זמינות. זה יכול להפיק צבעים מדויקים יותר עבור תמונות מסוימות, אבל האיכות של התצוגה המקדימה היא תלוית מצלמה ולתמונה עשויים להיות יותר פגמי דחיסה.",
|
"image_prefer_embedded_preview_setting_description": "השתמש בתצוגות מקדימות מוטמעות בתמונות RAW כקלט לעיבוד תמונה כאשר זמינות. זה יכול להפיק צבעים מדויקים יותר עבור תמונות מסוימות, אבל האיכות של התצוגה המקדימה היא תלוית מצלמה ולתמונה עשויים להיות יותר פגמי דחיסה.",
|
||||||
"image_prefer_wide_gamut": "העדף סולם צבעים רחב",
|
"image_prefer_wide_gamut": "העדף סולם צבעים רחב",
|
||||||
"image_prefer_wide_gamut_setting_description": "השתמש ב-Display P3 לתמונות ממוזערות. זה משמר טוב יותר את החיוניות של תמונות עם מרחבי צבע רחבים, אבל תמונות עשויות להופיע אחרת במכשירים ישנים עם גרסת דפדפן ישנה. תמונות sRGB נשמרות כ-sRGB כדי למנוע שינויי צבע.",
|
"image_prefer_wide_gamut_setting_description": "השתמש ב-Display P3 לתמונות ממוזערות. זה משמר טוב יותר את החיוניות של תמונות עם מרחבי צבע רחבים, אבל תמונות עשויות להופיע אחרת במכשירים ישנים עם גרסת דפדפן ישנה. תמונות sRGB נשמרות כ-sRGB כדי למנוע שינויי צבע.",
|
||||||
"image_preview_description": "תמונה בגודל בינוני עם מטא-נתונים שהוסרו, משמשת בעת צפייה בנכס בודד ועבור למידת מכונה",
|
"image_preview_description": "תמונה בגודל בינוני עם מטא-נתונים שהוסרו, משמשת בעת צפייה בנכס בודד ועבור למידת מכונה",
|
||||||
"image_preview_quality_description": "איכות תצוגה מקדימה מ-1 עד 100. איכות גבוהה יותר היא טובה יותר, אבל מייצרת קבצים גדולים יותר ויכולה להפחית את תגובתיות היישום. הגדרת ערך נמוך עשויה להשפיע על איכות תוצאות של למידת מכונה.",
|
"image_preview_quality_description": "איכות תצוגה מקדימה בין 1-100. גבוה יותר הוא טוב יותר, אבל מייצר קבצים גדולים יותר ויכול להפחית את תגובתיות היישום. הגדרת ערך נמוך עשויה להשפיע על איכות תוצאות של למידת מכונה.",
|
||||||
"image_preview_title": "הגדרות תצוגה מקדימה",
|
"image_preview_title": "הגדרות תצוגה מקדימה",
|
||||||
"image_quality": "איכות",
|
"image_quality": "איכות",
|
||||||
"image_resolution": "רזולוציה",
|
"image_resolution": "רזולוציה",
|
||||||
@@ -84,7 +79,7 @@
|
|||||||
"image_settings": "הגדרות תמונה",
|
"image_settings": "הגדרות תמונה",
|
||||||
"image_settings_description": "ניהול האיכות והרזולוציה של תמונות שנוצרו",
|
"image_settings_description": "ניהול האיכות והרזולוציה של תמונות שנוצרו",
|
||||||
"image_thumbnail_description": "תמונה ממוזערת קטנה עם מטא-נתונים שהוסרו, משמשת בעת צפייה בקבוצות של תמונות כמו ציר הזמן הראשי",
|
"image_thumbnail_description": "תמונה ממוזערת קטנה עם מטא-נתונים שהוסרו, משמשת בעת צפייה בקבוצות של תמונות כמו ציר הזמן הראשי",
|
||||||
"image_thumbnail_quality_description": "איכות תמונה ממוזערת מ-1 עד 100. איכות גבוהה יותר היא טובה יותר, אבל מייצרת קבצים גדולים יותר ויכולה להפחית את תגובתיות היישום.",
|
"image_thumbnail_quality_description": "איכות תמונה ממוזערת בין 1-100. גבוה יותר הוא טוב יותר, אבל מייצר קבצים גדולים יותר ויכול להפחית את תגובתיות היישום.",
|
||||||
"image_thumbnail_title": "הגדרות תמונה ממוזערת",
|
"image_thumbnail_title": "הגדרות תמונה ממוזערת",
|
||||||
"job_concurrency": "בו-זמניות של {job}",
|
"job_concurrency": "בו-זמניות של {job}",
|
||||||
"job_created": "עבודה נוצרה",
|
"job_created": "עבודה נוצרה",
|
||||||
@@ -167,6 +162,7 @@
|
|||||||
"no_pattern_added": "לא נוספה תבנית",
|
"no_pattern_added": "לא נוספה תבנית",
|
||||||
"note_apply_storage_label_previous_assets": "הערה: כדי להחיל את תווית האחסון על נכסים שהועלו בעבר, הפעל את",
|
"note_apply_storage_label_previous_assets": "הערה: כדי להחיל את תווית האחסון על נכסים שהועלו בעבר, הפעל את",
|
||||||
"note_cannot_be_changed_later": "הערה: אי אפשר לשנות זאת מאוחר יותר!",
|
"note_cannot_be_changed_later": "הערה: אי אפשר לשנות זאת מאוחר יותר!",
|
||||||
|
"note_unlimited_quota": "הערה: הזן 0 עבור מכסת אחסון בלתי מוגבלת",
|
||||||
"notification_email_from_address": "מכתובת",
|
"notification_email_from_address": "מכתובת",
|
||||||
"notification_email_from_address_description": "כתובת דוא\"ל של השולח, לדוגמה: \"Immich שרת תמונות <noreply@example.com>\"",
|
"notification_email_from_address_description": "כתובת דוא\"ל של השולח, לדוגמה: \"Immich שרת תמונות <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "מארח שרת הדוא\"ל (למשל smtp.immich.app)",
|
"notification_email_host_description": "מארח שרת הדוא\"ל (למשל smtp.immich.app)",
|
||||||
@@ -229,7 +225,7 @@
|
|||||||
"search_jobs": "חיפוש עבודות…",
|
"search_jobs": "חיפוש עבודות…",
|
||||||
"send_welcome_email": "שלח דוא\"ל ברוכים הבאים",
|
"send_welcome_email": "שלח דוא\"ל ברוכים הבאים",
|
||||||
"server_external_domain_settings": "דומיין חיצוני",
|
"server_external_domain_settings": "דומיין חיצוני",
|
||||||
"server_external_domain_settings_description": "דומיין עבור קישורים משותפים ציבוריים, כולל //:http(s)",
|
"server_external_domain_settings_description": "דומיין עבור קישורים משותפים ציבוריים, כולל http(s)://",
|
||||||
"server_public_users": "משתמשים ציבוריים",
|
"server_public_users": "משתמשים ציבוריים",
|
||||||
"server_public_users_description": "כל המשתמשים (שם ודוא\"ל) מופיעים בעת הוספת משתמש לאלבומים משותפים. כאשר התכונה מושבתת, רשימת המשתמשים תהיה זמינה רק למשתמשים בעלי הרשאות ניהול.",
|
"server_public_users_description": "כל המשתמשים (שם ודוא\"ל) מופיעים בעת הוספת משתמש לאלבומים משותפים. כאשר התכונה מושבתת, רשימת המשתמשים תהיה זמינה רק למשתמשים בעלי הרשאות ניהול.",
|
||||||
"server_settings": "הגדרות שרת",
|
"server_settings": "הגדרות שרת",
|
||||||
@@ -244,7 +240,7 @@
|
|||||||
"storage_template_date_time_sample": "זמן לדוגמא {date}",
|
"storage_template_date_time_sample": "זמן לדוגמא {date}",
|
||||||
"storage_template_enable_description": "הפעל מנוע תבנית אחסון",
|
"storage_template_enable_description": "הפעל מנוע תבנית אחסון",
|
||||||
"storage_template_hash_verification_enabled": "אימות גיבוב מופעל",
|
"storage_template_hash_verification_enabled": "אימות גיבוב מופעל",
|
||||||
"storage_template_hash_verification_enabled_description": "מאפשר אימות גיבוב, אין להשבית זאת אלא אם יש לך ודאות לגבי ההשלכות",
|
"storage_template_hash_verification_enabled_description": "מאפשר אימות גיבוב, אל תשבית/י זאת אלא אם כן את/ה בטוח/ה בהשלכות",
|
||||||
"storage_template_migration": "העברת תבנית אחסון",
|
"storage_template_migration": "העברת תבנית אחסון",
|
||||||
"storage_template_migration_description": "החל את ה<link>{template}</link> הנוכחית על נכסים שהועלו בעבר",
|
"storage_template_migration_description": "החל את ה<link>{template}</link> הנוכחית על נכסים שהועלו בעבר",
|
||||||
"storage_template_migration_info": "תבנית האחסון תמיר את כל ההרחבות לאותיות קטנות. שינויים בתבנית יחולו רק על נכסים חדשים. כדי להחיל באופן רטרואקטיבי את התבנית על נכסים שהועלו בעבר, הפעל את <link>{job}</link>.",
|
"storage_template_migration_info": "תבנית האחסון תמיר את כל ההרחבות לאותיות קטנות. שינויים בתבנית יחולו רק על נכסים חדשים. כדי להחיל באופן רטרואקטיבי את התבנית על נכסים שהועלו בעבר, הפעל את <link>{job}</link>.",
|
||||||
@@ -373,16 +369,16 @@
|
|||||||
"album_added": "אלבום נוסף",
|
"album_added": "אלבום נוסף",
|
||||||
"album_added_notification_setting_description": "קבלת הודעת דוא\"ל כאשר מוסיפים אותך לאלבום משותף",
|
"album_added_notification_setting_description": "קבלת הודעת דוא\"ל כאשר מוסיפים אותך לאלבום משותף",
|
||||||
"album_cover_updated": "עטיפת האלבום עודכנה",
|
"album_cover_updated": "עטיפת האלבום עודכנה",
|
||||||
"album_delete_confirmation": "האם באמת ברצונך למחוק את האלבום {album}?",
|
"album_delete_confirmation": "את/ה בטוח/ה שברצונך למחוק את האלבום {album}?",
|
||||||
"album_delete_confirmation_description": "אם האלבום הזה משותף, משתמשים אחרים לא יוכלו לגשת אליו יותר.",
|
"album_delete_confirmation_description": "אם האלבום הזה משותף, משתמשים אחרים לא יוכלו לגשת אליו יותר.",
|
||||||
"album_info_updated": "מידע האלבום עודכן",
|
"album_info_updated": "מידע האלבום עודכן",
|
||||||
"album_leave": "לעזוב אלבום?",
|
"album_leave": "לעזוב אלבום?",
|
||||||
"album_leave_confirmation": "האם באמת ברצונך לעזוב את {album}?",
|
"album_leave_confirmation": "האם את/ה בטוח/ה שברצונך לעזוב את {album}?",
|
||||||
"album_name": "שם האלבום",
|
"album_name": "שם האלבום",
|
||||||
"album_options": "אפשרויות האלבום",
|
"album_options": "אפשרויות האלבום",
|
||||||
"album_remove_user": "להסיר משתמש?",
|
"album_remove_user": "להסיר משתמש?",
|
||||||
"album_remove_user_confirmation": "האם באמת ברצונך להסיר את {user}?",
|
"album_remove_user_confirmation": "האם את/ה בטוחה שברצונך להסיר את {user}?",
|
||||||
"album_share_no_users": "נראה ששיתפת את האלבום הזה עם כל המשתמשים או שאין לך אף משתמש לשתף איתו.",
|
"album_share_no_users": "נראה שאת/ה שיתפת את האלבום הזה עם כל המשתמשים או שאין לך אף משתמש לשתף איתו.",
|
||||||
"album_updated": "אלבום עודכן",
|
"album_updated": "אלבום עודכן",
|
||||||
"album_updated_setting_description": "קבל הודעת דוא\"ל כאשר לאלבום משותף יש נכסים חדשים",
|
"album_updated_setting_description": "קבל הודעת דוא\"ל כאשר לאלבום משותף יש נכסים חדשים",
|
||||||
"album_user_left": "עזב את {album}",
|
"album_user_left": "עזב את {album}",
|
||||||
@@ -412,7 +408,7 @@
|
|||||||
"archive_size_description": "הגדר את גודל הארכיון להורדות (ב-GiB)",
|
"archive_size_description": "הגדר את גודל הארכיון להורדות (ב-GiB)",
|
||||||
"archived_count": "{count, plural, other {# הועברו לארכיון}}",
|
"archived_count": "{count, plural, other {# הועברו לארכיון}}",
|
||||||
"are_these_the_same_person": "האם אלה אותו האדם?",
|
"are_these_the_same_person": "האם אלה אותו האדם?",
|
||||||
"are_you_sure_to_do_this": "האם באמת ברצונך לעשות את זה?",
|
"are_you_sure_to_do_this": "האם את/ה בטוח/ה שברצונך לעשות את זה?",
|
||||||
"asset_added_to_album": "נוסף לאלבום",
|
"asset_added_to_album": "נוסף לאלבום",
|
||||||
"asset_adding_to_album": "מוסיף לאלבום…",
|
"asset_adding_to_album": "מוסיף לאלבום…",
|
||||||
"asset_description_updated": "תיאור הנכס עודכן",
|
"asset_description_updated": "תיאור הנכס עודכן",
|
||||||
@@ -433,7 +429,7 @@
|
|||||||
"assets_moved_to_trash_count": "{count, plural, one {נכס # הועבר} other {# נכסים הועברו}} לאשפה",
|
"assets_moved_to_trash_count": "{count, plural, one {נכס # הועבר} other {# נכסים הועברו}} לאשפה",
|
||||||
"assets_permanently_deleted_count": "{count, plural, one {נכס # נמחק} other {# נכסים נמחקו}} לצמיתות",
|
"assets_permanently_deleted_count": "{count, plural, one {נכס # נמחק} other {# נכסים נמחקו}} לצמיתות",
|
||||||
"assets_removed_count": "{count, plural, one {נכס # הוסר} other {# נכסים הוסרו}}",
|
"assets_removed_count": "{count, plural, one {נכס # הוסר} other {# נכסים הוסרו}}",
|
||||||
"assets_restore_confirmation": "האם באמת ברצונך לשחזר את כל הנכסים שבאשפה? אין באפשרותך לבטל את הפעולה הזו! יש לשים לב שלא ניתן לשחזר נכסים לא מקוונים בדרך זו.",
|
"assets_restore_confirmation": "האם את/ה בטוח/ה שברצונך לשחזר את כל הנכסים שבאשפה? את/ה לא יכול/ה לבטל את הפעולה הזו! שים לב שלא ניתן לשחזר נכסים לא מקוונים בדרך זו.",
|
||||||
"assets_restored_count": "{count, plural, one {נכס # שוחזר} other {# נכסים שוחזרו}}",
|
"assets_restored_count": "{count, plural, one {נכס # שוחזר} other {# נכסים שוחזרו}}",
|
||||||
"assets_trashed_count": "{count, plural, one {נכס # הושלך} other {# נכסים הושלכו}} לאשפה",
|
"assets_trashed_count": "{count, plural, one {נכס # הושלך} other {# נכסים הושלכו}} לאשפה",
|
||||||
"assets_were_part_of_album_count": "{count, plural, one {נכס היה} other {נכסים היו}} כבר חלק מהאלבום",
|
"assets_were_part_of_album_count": "{count, plural, one {נכס היה} other {נכסים היו}} כבר חלק מהאלבום",
|
||||||
@@ -447,9 +443,9 @@
|
|||||||
"bugs_and_feature_requests": "באגים & בקשות לתכונות",
|
"bugs_and_feature_requests": "באגים & בקשות לתכונות",
|
||||||
"build": "גרסת בנייה",
|
"build": "גרסת בנייה",
|
||||||
"build_image": "גרסת תוכנה",
|
"build_image": "גרסת תוכנה",
|
||||||
"bulk_delete_duplicates_confirmation": "האם באמת ברצונך למחוק בכמות גדולה {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה ישמור על הנכס הכי גדול של כל קבוצה וימחק לצמיתות את כל שאר הכפילויות. אין באפשרותך לבטל את הפעולה הזו!",
|
"bulk_delete_duplicates_confirmation": "האם את/ה בטוח/ה שברצונך למחוק בכמות גדולה {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה ישמור על הנכס הכי גדול של כל קבוצה וימחק לצמיתות את כל שאר הכפילויות. את/ה לא יכול/ה לבטל את הפעולה הזו!",
|
||||||
"bulk_keep_duplicates_confirmation": "האם באמת ברצונך להשאיר {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה יפתור את כל הקבוצות הכפולות מבלי למחוק דבר.",
|
"bulk_keep_duplicates_confirmation": "האם את/ה בטוח/ה שברצונך להשאיר {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה יפתור את כל הקבוצות הכפולות מבלי למחוק דבר.",
|
||||||
"bulk_trash_duplicates_confirmation": "האם באמת ברצונך להעביר לאשפה בכמות גדולה {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה ישמור על הנכס הגדול ביותר של כל קבוצה ויעביר לאשפה את כל שאר הכפילויות.",
|
"bulk_trash_duplicates_confirmation": "האם את/ה בטוח/ה שברצונך להעביר לאשפה בכמות גדולה {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה ישמור על הנכס הגדול ביותר של כל קבוצה ויעביר לאשפה את כל שאר הכפילויות.",
|
||||||
"buy": "רכוש את Immich",
|
"buy": "רכוש את Immich",
|
||||||
"camera": "מצלמה",
|
"camera": "מצלמה",
|
||||||
"camera_brand": "מותג המצלמה",
|
"camera_brand": "מותג המצלמה",
|
||||||
@@ -457,7 +453,7 @@
|
|||||||
"cancel": "ביטול",
|
"cancel": "ביטול",
|
||||||
"cancel_search": "ביטול חיפוש",
|
"cancel_search": "ביטול חיפוש",
|
||||||
"cannot_merge_people": "לא ניתן למזג אנשים",
|
"cannot_merge_people": "לא ניתן למזג אנשים",
|
||||||
"cannot_undo_this_action": "אין באפשרותך לבטל את הפעולה הזו!",
|
"cannot_undo_this_action": "את/ה לא יכול/ה לבטל את הפעולה הזו!",
|
||||||
"cannot_update_the_description": "לא ניתן לעדכן את התיאור",
|
"cannot_update_the_description": "לא ניתן לעדכן את התיאור",
|
||||||
"change_date": "שנה תאריך",
|
"change_date": "שנה תאריך",
|
||||||
"change_expiration_time": "שנה את זמן התפוגה",
|
"change_expiration_time": "שנה את זמן התפוגה",
|
||||||
@@ -465,7 +461,7 @@
|
|||||||
"change_name": "שנה שם",
|
"change_name": "שנה שם",
|
||||||
"change_name_successfully": "השם שונה בהצלחה",
|
"change_name_successfully": "השם שונה בהצלחה",
|
||||||
"change_password": "שינוי סיסמה",
|
"change_password": "שינוי סיסמה",
|
||||||
"change_password_description": "זאת או הפעם הראשונה שהתחברת למערכת או שנעשתה בקשה לשינוי הסיסמה שלך. נא להזין את הסיסמה החדשה למטה.",
|
"change_password_description": "זאת או הפעם הראשונה שאת/ה מתחבר/ת למערכת או שנעשתה בקשה לשינוי הסיסמה שלך. נא להזין את הסיסמה החדשה למטה.",
|
||||||
"change_your_password": "החלף את הסיסמה שלך",
|
"change_your_password": "החלף את הסיסמה שלך",
|
||||||
"changed_visibility_successfully": "הנראות שונתה בהצלחה",
|
"changed_visibility_successfully": "הנראות שונתה בהצלחה",
|
||||||
"check_all": "לסמן הכל",
|
"check_all": "לסמן הכל",
|
||||||
@@ -489,9 +485,9 @@
|
|||||||
"comments_are_disabled": "תגובות מושבתות",
|
"comments_are_disabled": "תגובות מושבתות",
|
||||||
"confirm": "אישור",
|
"confirm": "אישור",
|
||||||
"confirm_admin_password": "אישור סיסמת מנהל",
|
"confirm_admin_password": "אישור סיסמת מנהל",
|
||||||
"confirm_delete_face": "האם באמת ברצונך למחוק את הפנים של {name} מהנכס?",
|
"confirm_delete_face": "האם את/ה בטוח/ה שברצונך למחוק את הפנים של {name} מהנכס?",
|
||||||
"confirm_delete_shared_link": "האם באמת ברצונך למחוק את הקישור המשותף הזה?",
|
"confirm_delete_shared_link": "האם את/ה בטוח/ה שברצונך למחוק את הקישור המשותף הזה?",
|
||||||
"confirm_keep_this_delete_others": "כל שאר הנכסים בערימה יימחקו למעט נכס זה. האם באמת ברצונך להמשיך?",
|
"confirm_keep_this_delete_others": "כל שאר הנכסים בערימה יימחקו למעט נכס זה. האם את/ה בטוח/ה שברצונך להמשיך?",
|
||||||
"confirm_password": "אשר סיסמה",
|
"confirm_password": "אשר סיסמה",
|
||||||
"contain": "מכיל",
|
"contain": "מכיל",
|
||||||
"context": "הקשר",
|
"context": "הקשר",
|
||||||
@@ -540,8 +536,8 @@
|
|||||||
"default_locale_description": "פורמט תאריכים ומספרים מבוסס שפת הדפדפן שלך",
|
"default_locale_description": "פורמט תאריכים ומספרים מבוסס שפת הדפדפן שלך",
|
||||||
"delete": "מחק",
|
"delete": "מחק",
|
||||||
"delete_album": "מחק אלבום",
|
"delete_album": "מחק אלבום",
|
||||||
"delete_api_key_prompt": "האם באמת ברצונך למחוק מפתח ה-API הזה?",
|
"delete_api_key_prompt": "האם את/ה בטוח/ה שברצונך למחוק מפתח ה-API הזה?",
|
||||||
"delete_duplicates_confirmation": "האם באמת ברצונך למחוק לצמיתות את הכפילויות האלה?",
|
"delete_duplicates_confirmation": "האם את/ה בטוח/ה שברצונך למחוק לצמיתות את הכפילויות האלה?",
|
||||||
"delete_face": "מחק פנים",
|
"delete_face": "מחק פנים",
|
||||||
"delete_key": "מחק מפתח",
|
"delete_key": "מחק מפתח",
|
||||||
"delete_library": "מחק ספרייה",
|
"delete_library": "מחק ספרייה",
|
||||||
@@ -549,7 +545,7 @@
|
|||||||
"delete_others": "מחק אחרים",
|
"delete_others": "מחק אחרים",
|
||||||
"delete_shared_link": "מחק קישור משותף",
|
"delete_shared_link": "מחק קישור משותף",
|
||||||
"delete_tag": "מחק תג",
|
"delete_tag": "מחק תג",
|
||||||
"delete_tag_confirmation_prompt": "האם באמת ברצונך למחוק תג {tagName}?",
|
"delete_tag_confirmation_prompt": "האם את/ה בטוח/ה שברצונך למחוק תג {tagName}?",
|
||||||
"delete_user": "מחק משתמש",
|
"delete_user": "מחק משתמש",
|
||||||
"deleted_shared_link": "קישור משותף נמחק",
|
"deleted_shared_link": "קישור משותף נמחק",
|
||||||
"deletes_missing_assets": "מוחק נכסים שחסרים בדיסק",
|
"deletes_missing_assets": "מוחק נכסים שחסרים בדיסק",
|
||||||
@@ -605,7 +601,7 @@
|
|||||||
"editor_crop_tool_h2_rotation": "סיבוב",
|
"editor_crop_tool_h2_rotation": "סיבוב",
|
||||||
"email": "דוא\"ל",
|
"email": "דוא\"ל",
|
||||||
"empty_trash": "רוקן אשפה",
|
"empty_trash": "רוקן אשפה",
|
||||||
"empty_trash_confirmation": "האם באמת ברצונך לרוקן את האשפה? זה יסיר לצמיתות את כל הנכסים באשפה מImmich.\nאין באפשרותך לבטל פעולה זו!",
|
"empty_trash_confirmation": "האם את/ה בטוח/ה שברצונך לרוקן את האשפה? זה יסיר לצמיתות את כל הנכסים באשפה מImmich.\nאת/ה לא יכול/ה לבטל פעולה זו!",
|
||||||
"enable": "אפשר",
|
"enable": "אפשר",
|
||||||
"enabled": "מופעל",
|
"enabled": "מופעל",
|
||||||
"end_date": "תאריך סיום",
|
"end_date": "תאריך סיום",
|
||||||
@@ -649,7 +645,7 @@
|
|||||||
"incorrect_email_or_password": "דוא\"ל או סיסמה שגויים",
|
"incorrect_email_or_password": "דוא\"ל או סיסמה שגויים",
|
||||||
"paths_validation_failed": "{paths, plural, one {נתיב # נכשל} other {# נתיבים נכשלו}} אימות",
|
"paths_validation_failed": "{paths, plural, one {נתיב # נכשל} other {# נתיבים נכשלו}} אימות",
|
||||||
"profile_picture_transparent_pixels": "תמונות פרופיל אינן יכולות לכלול פיקסלים שקופים. נא להגדיל ו/או להזיז את התמונה.",
|
"profile_picture_transparent_pixels": "תמונות פרופיל אינן יכולות לכלול פיקסלים שקופים. נא להגדיל ו/או להזיז את התמונה.",
|
||||||
"quota_higher_than_disk_size": "הגדרת מכסה גבוהה יותר מגודל הדיסק",
|
"quota_higher_than_disk_size": "את/ה מגדיר/ה מכסה גבוהה יותר מגודל הדיסק",
|
||||||
"repair_unable_to_check_items": "לא ניתן לסמן {count, select, one {פריט} other {פריטים}}",
|
"repair_unable_to_check_items": "לא ניתן לסמן {count, select, one {פריט} other {פריטים}}",
|
||||||
"unable_to_add_album_users": "לא ניתן להוסיף משתמשים לאלבום",
|
"unable_to_add_album_users": "לא ניתן להוסיף משתמשים לאלבום",
|
||||||
"unable_to_add_assets_to_shared_link": "לא ניתן להוסיף נכסים לקישור משותף",
|
"unable_to_add_assets_to_shared_link": "לא ניתן להוסיף נכסים לקישור משותף",
|
||||||
@@ -669,7 +665,7 @@
|
|||||||
"unable_to_complete_oauth_login": "לא ניתן להשלים התחברות OAuth",
|
"unable_to_complete_oauth_login": "לא ניתן להשלים התחברות OAuth",
|
||||||
"unable_to_connect": "לא ניתן להתחבר",
|
"unable_to_connect": "לא ניתן להתחבר",
|
||||||
"unable_to_connect_to_server": "לא ניתן להתחבר לשרת",
|
"unable_to_connect_to_server": "לא ניתן להתחבר לשרת",
|
||||||
"unable_to_copy_to_clipboard": "לא ניתן להעתיק ללוח, יש לודא שניגשת לדף דרך https",
|
"unable_to_copy_to_clipboard": "לא ניתן להעתיק ללוח, ודא שאת/ה ניגש/ת לדף דרך https",
|
||||||
"unable_to_create_admin_account": "לא ניתן ליצור חשבון מנהל",
|
"unable_to_create_admin_account": "לא ניתן ליצור חשבון מנהל",
|
||||||
"unable_to_create_api_key": "לא ניתן ליצור מפתח API חדש",
|
"unable_to_create_api_key": "לא ניתן ליצור מפתח API חדש",
|
||||||
"unable_to_create_library": "לא ניתן ליצור ספרייה",
|
"unable_to_create_library": "לא ניתן ליצור ספרייה",
|
||||||
@@ -831,7 +827,7 @@
|
|||||||
"kept_this_deleted_others": "נכס זה נשמר ונמחקו {count, plural, one {נכס #} other {# נכסים}}",
|
"kept_this_deleted_others": "נכס זה נשמר ונמחקו {count, plural, one {נכס #} other {# נכסים}}",
|
||||||
"keyboard_shortcuts": "קיצורי מקלדת",
|
"keyboard_shortcuts": "קיצורי מקלדת",
|
||||||
"language": "שפה",
|
"language": "שפה",
|
||||||
"language_setting_description": "בחר את השפה המועדפת עליך",
|
"language_setting_description": "בחר/י את השפה המועדפת עליך",
|
||||||
"last_seen": "נראה לאחרונה",
|
"last_seen": "נראה לאחרונה",
|
||||||
"latest_version": "גרסה עדכנית ביותר",
|
"latest_version": "גרסה עדכנית ביותר",
|
||||||
"latitude": "קו רוחב",
|
"latitude": "קו רוחב",
|
||||||
@@ -856,14 +852,13 @@
|
|||||||
"logged_out_device": "מכשיר מנותק",
|
"logged_out_device": "מכשיר מנותק",
|
||||||
"login": "כניסה",
|
"login": "כניסה",
|
||||||
"login_has_been_disabled": "הכניסה הושבתה.",
|
"login_has_been_disabled": "הכניסה הושבתה.",
|
||||||
"logout_all_device_confirmation": "האם באמת ברצונך להתנתק מכל המכשירים?",
|
"logout_all_device_confirmation": "את/ה בטוח/ה שברצונך להתנתק מכל המכשירים?",
|
||||||
"logout_this_device_confirmation": "האם באמת ברצונך להתנתק מהמכשיר הזה?",
|
"logout_this_device_confirmation": "את/ה בטוח/ה שברצונך להתנתק מהמכשיר הזה?",
|
||||||
"longitude": "קו אורך",
|
"longitude": "קו אורך",
|
||||||
"look": "מראה",
|
"look": "מראה",
|
||||||
"loop_videos": "הפעלה חוזרת של סרטונים",
|
"loop_videos": "הפעלה חוזרת של סרטונים",
|
||||||
"loop_videos_description": "אפשר הפעלה חוזרת אוטומטית של סרטון במציג הפרטים.",
|
"loop_videos_description": "אפשר הפעלה חוזרת אוטומטית של סרטון במציג הפרטים.",
|
||||||
"main_branch_warning": "הגרסה המותקנת היא גרסת פיתוח; אנחנו ממליצים בחום להשתמש בגרסה יציבה!",
|
"main_branch_warning": "את/ה משתמש/ת בגרסת פיתוח; אנחנו ממליצים בחום להשתמש בגרסה יציבה!",
|
||||||
"main_menu": "תפריט ראשי",
|
|
||||||
"make": "תוצרת",
|
"make": "תוצרת",
|
||||||
"manage_shared_links": "ניהול קישורים משותפים",
|
"manage_shared_links": "ניהול קישורים משותפים",
|
||||||
"manage_sharing_with_partners": "ניהול שיתוף עם שותפים",
|
"manage_sharing_with_partners": "ניהול שיתוף עם שותפים",
|
||||||
@@ -879,14 +874,14 @@
|
|||||||
"matches": "התאמות",
|
"matches": "התאמות",
|
||||||
"media_type": "סוג מדיה",
|
"media_type": "סוג מדיה",
|
||||||
"memories": "זכרונות",
|
"memories": "זכרונות",
|
||||||
"memories_setting_description": "נהל את מה שרואים בזכרונות שלך",
|
"memories_setting_description": "ניהול מה שאת/ה רואה בזכרונות שלך",
|
||||||
"memory": "זיכרון",
|
"memory": "זיכרון",
|
||||||
"memory_lane_title": "משעול הזיכרונות {title}",
|
"memory_lane_title": "משעול הזיכרונות {title}",
|
||||||
"menu": "תפריט",
|
"menu": "תפריט",
|
||||||
"merge": "מזג",
|
"merge": "מזג",
|
||||||
"merge_people": "מזג אנשים",
|
"merge_people": "מזג אנשים",
|
||||||
"merge_people_limit": "באפשרותך למזג רק עד 5 פנים בכל פעם",
|
"merge_people_limit": "את/ה יכול/ה למזג רק עד 5 פנים בכל פעם",
|
||||||
"merge_people_prompt": "האם ברצונך למזג את האנשים האלה? פעולה זו היא בלתי הפיכה.",
|
"merge_people_prompt": "האם את/ה רוצה למזג את האנשים האלה? פעולה זו היא בלתי הפיכה.",
|
||||||
"merge_people_successfully": "מיזוג אנשים בוצע בהצלחה",
|
"merge_people_successfully": "מיזוג אנשים בוצע בהצלחה",
|
||||||
"merged_people_count": "{count, plural, one {אדם # מוזג} other {# אנשים מוזגו}}",
|
"merged_people_count": "{count, plural, one {אדם # מוזג} other {# אנשים מוזגו}}",
|
||||||
"minimize": "מזער",
|
"minimize": "מזער",
|
||||||
@@ -928,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "צור אלבום כדי לשתף תמונות וסרטונים עם אנשים ברשת שלך",
|
"no_shared_albums_message": "צור אלבום כדי לשתף תמונות וסרטונים עם אנשים ברשת שלך",
|
||||||
"not_in_any_album": "לא בשום אלבום",
|
"not_in_any_album": "לא בשום אלבום",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "הערה: כדי להחיל את תווית האחסון על נכסים שהועלו בעבר, הפעל את",
|
"note_apply_storage_label_to_previously_uploaded assets": "הערה: כדי להחיל את תווית האחסון על נכסים שהועלו בעבר, הפעל את",
|
||||||
|
"note_unlimited_quota": "הערה: הזן 0 עבור מכסה בלתי מוגבלת",
|
||||||
"notes": "הערות",
|
"notes": "הערות",
|
||||||
"notification_toggle_setting_description": "אפשר התראות דוא\"ל",
|
"notification_toggle_setting_description": "אפשר התראות דוא\"ל",
|
||||||
"notifications": "התראות",
|
"notifications": "התראות",
|
||||||
@@ -941,9 +937,9 @@
|
|||||||
"oldest_first": "הישן ביותר ראשון",
|
"oldest_first": "הישן ביותר ראשון",
|
||||||
"onboarding": "היכרות",
|
"onboarding": "היכרות",
|
||||||
"onboarding_privacy_description": "התכונות (האופציונליות) הבאות מסתמכות על שירותים חיצוניים, וניתנות לביטול בכל עת בהגדרות הניהול.",
|
"onboarding_privacy_description": "התכונות (האופציונליות) הבאות מסתמכות על שירותים חיצוניים, וניתנות לביטול בכל עת בהגדרות הניהול.",
|
||||||
"onboarding_theme_description": "יש לבחור את צבע ערכת הנושא עבור ההתקנה שלך. באפשרותך לשנות את זה מאוחר יותר בהגדרות שלך.",
|
"onboarding_theme_description": "בחר/י את צבע ערכת הנושא עבור ההתקנה שלך. את/ה יכול/ה לשנות את זה מאוחר יותר בהגדרות שלך.",
|
||||||
"onboarding_welcome_description": "בואו נכין את ההתקנה שלכם עם כמה הגדרות נפוצות.",
|
"onboarding_welcome_description": "בואו נכין את ההתקנה שלכם עם כמה הגדרות נפוצות.",
|
||||||
"onboarding_welcome_user": "ברוך בואך, {user}",
|
"onboarding_welcome_user": "ברוכ/ה הבא/ה, {user}",
|
||||||
"online": "מקוון",
|
"online": "מקוון",
|
||||||
"only_favorites": "רק מועדפים",
|
"only_favorites": "רק מועדפים",
|
||||||
"open_in_map_view": "פתח בתצוגת מפה",
|
"open_in_map_view": "פתח בתצוגת מפה",
|
||||||
@@ -987,13 +983,12 @@
|
|||||||
"permanent_deletion_warning_setting_description": "הצג אזהרה בעת מחיקת נכסים לצמיתות",
|
"permanent_deletion_warning_setting_description": "הצג אזהרה בעת מחיקת נכסים לצמיתות",
|
||||||
"permanently_delete": "מחק לצמיתות",
|
"permanently_delete": "מחק לצמיתות",
|
||||||
"permanently_delete_assets_count": "מחק לצמיתות {count, plural, one {נכס} other {נכסים}}",
|
"permanently_delete_assets_count": "מחק לצמיתות {count, plural, one {נכס} other {נכסים}}",
|
||||||
"permanently_delete_assets_prompt": "האם באמת ברצונך למחוק לצמיתות {count, plural, one {נכס זה?} other {<b>#</b> נכסים אלה?}}זה גם יסיר {count, plural, one {אותו מאלבומו} other {אותם מאלבומם}}.",
|
"permanently_delete_assets_prompt": "האם את/ה בטוח/ה שברצונך למחוק לצמיתות {count, plural, one {נכס זה?} other {<b>#</b> נכסים אלה?}}זה גם יסיר {count, plural, one {אותו מאלבומו} other {אותם מאלבומם}}.",
|
||||||
"permanently_deleted_asset": "נכס נמחק לצמיתות",
|
"permanently_deleted_asset": "נכס נמחק לצמיתות",
|
||||||
"permanently_deleted_assets_count": "{count, plural, one {נכס # נמחק} other {# נכסים נמחקו}} לצמיתות",
|
"permanently_deleted_assets_count": "{count, plural, one {נכס # נמחק} other {# נכסים נמחקו}} לצמיתות",
|
||||||
"person": "אדם",
|
"person": "אדם",
|
||||||
"person_birthdate": "נולד בתאריך {date}",
|
|
||||||
"person_hidden": "{name}{hidden, select, true { (מוסתר)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (מוסתר)} other {}}",
|
||||||
"photo_shared_all_users": "נראה ששיתפת את התמונות שלך עם כל המשתמשים או שאין לך אף משתמש לשתף איתו.",
|
"photo_shared_all_users": "נראה שאת/ה שיתפת את התמונות שלך עם כל המשתמשים או שאין לך אף משתמש לשתף איתו.",
|
||||||
"photos": "תמונות",
|
"photos": "תמונות",
|
||||||
"photos_and_videos": "תמונות & סרטונים",
|
"photos_and_videos": "תמונות & סרטונים",
|
||||||
"photos_count": "{count, plural, one {תמונה {count, number}} other {{count, number} תמונות}}",
|
"photos_count": "{count, plural, one {תמונה {count, number}} other {{count, number} תמונות}}",
|
||||||
@@ -1043,9 +1038,9 @@
|
|||||||
"purchase_per_server": "עבור שרת",
|
"purchase_per_server": "עבור שרת",
|
||||||
"purchase_per_user": "עבור משתמש",
|
"purchase_per_user": "עבור משתמש",
|
||||||
"purchase_remove_product_key": "הסר מפתח מוצר",
|
"purchase_remove_product_key": "הסר מפתח מוצר",
|
||||||
"purchase_remove_product_key_prompt": "האם באמת ברצונך להסיר את מפתח המוצר?",
|
"purchase_remove_product_key_prompt": "האם את/ה בטוח/ה שאת/ה רוצה להסיר את מפתח המוצר?",
|
||||||
"purchase_remove_server_product_key": "הסר מפתח מוצר של שרת",
|
"purchase_remove_server_product_key": "הסר מפתח מוצר של שרת",
|
||||||
"purchase_remove_server_product_key_prompt": "האם באמת ברצונך להסיר את מפתח המוצר של השרת?",
|
"purchase_remove_server_product_key_prompt": "האם את/ה בטוח/ה שאת/ה רוצה להסיר את מפתח המוצר של השרת?",
|
||||||
"purchase_server_description_1": "עבור כל השרת",
|
"purchase_server_description_1": "עבור כל השרת",
|
||||||
"purchase_server_description_2": "מעמד תומך",
|
"purchase_server_description_2": "מעמד תומך",
|
||||||
"purchase_server_title": "שרת",
|
"purchase_server_title": "שרת",
|
||||||
@@ -1075,16 +1070,14 @@
|
|||||||
"refreshing_metadata": "מרענן מטא-נתונים",
|
"refreshing_metadata": "מרענן מטא-נתונים",
|
||||||
"regenerating_thumbnails": "מחדש תמונות ממוזערות",
|
"regenerating_thumbnails": "מחדש תמונות ממוזערות",
|
||||||
"remove": "הסר",
|
"remove": "הסר",
|
||||||
"remove_assets_album_confirmation": "האם באמת ברצונך להסיר {count, plural, one {נכס #} other {# נכסים}} מהאלבום?",
|
"remove_assets_album_confirmation": "האם את/ה בטוח/ה שברצונך להסיר {count, plural, one {נכס #} other {# נכסים}} מהאלבום?",
|
||||||
"remove_assets_shared_link_confirmation": "האם באמת ברצונך להסיר {count, plural, one {נכס #} other {# נכסים}} מהקישור המשותף הזה?",
|
"remove_assets_shared_link_confirmation": "האם את/ה בטוח/ה שברצונך להסיר {count, plural, one {נכס #} other {# נכסים}} מהקישור המשותף הזה?",
|
||||||
"remove_assets_title": "הסר נכסים?",
|
"remove_assets_title": "הסר נכסים?",
|
||||||
"remove_custom_date_range": "הסר טווח תאריכים מותאם",
|
"remove_custom_date_range": "הסר טווח תאריכים מותאם",
|
||||||
"remove_deleted_assets": "הסר קבצים לא מקוונים",
|
"remove_deleted_assets": "הסר קבצים לא מקוונים",
|
||||||
"remove_from_album": "הסר מאלבום",
|
"remove_from_album": "הסר מאלבום",
|
||||||
"remove_from_favorites": "הסר מהמועדפים",
|
"remove_from_favorites": "הסר מהמועדפים",
|
||||||
"remove_from_shared_link": "הסר מקישור משותף",
|
"remove_from_shared_link": "הסר מקישור משותף",
|
||||||
"remove_memory": "הסר זיכרון",
|
|
||||||
"remove_photo_from_memory": "הסר תמונה מזיכרון זה",
|
|
||||||
"remove_url": "הסר URL",
|
"remove_url": "הסר URL",
|
||||||
"remove_user": "הסר משתמש",
|
"remove_user": "הסר משתמש",
|
||||||
"removed_api_key": "מפתח API הוסר: {name}",
|
"removed_api_key": "מפתח API הוסר: {name}",
|
||||||
@@ -1122,7 +1115,7 @@
|
|||||||
"saved_api_key": "מפתח API שמור",
|
"saved_api_key": "מפתח API שמור",
|
||||||
"saved_profile": "פרופיל שמור",
|
"saved_profile": "פרופיל שמור",
|
||||||
"saved_settings": "הגדרות שמורות",
|
"saved_settings": "הגדרות שמורות",
|
||||||
"say_something": "להגיד משהו",
|
"say_something": "תגיד/י משהו",
|
||||||
"scan_all_libraries": "סרוק את כל הספריות",
|
"scan_all_libraries": "סרוק את כל הספריות",
|
||||||
"scan_library": "סרוק",
|
"scan_library": "סרוק",
|
||||||
"scan_settings": "הגדרות סריקה",
|
"scan_settings": "הגדרות סריקה",
|
||||||
@@ -1155,7 +1148,6 @@
|
|||||||
"searching_locales": "מחפש אזורי שפה...",
|
"searching_locales": "מחפש אזורי שפה...",
|
||||||
"second": "שנייה",
|
"second": "שנייה",
|
||||||
"see_all_people": "ראה את כל האנשים",
|
"see_all_people": "ראה את כל האנשים",
|
||||||
"select": "בחר",
|
|
||||||
"select_album_cover": "בחר עטיפת אלבום",
|
"select_album_cover": "בחר עטיפת אלבום",
|
||||||
"select_all": "בחר הכל",
|
"select_all": "בחר הכל",
|
||||||
"select_all_duplicates": "בחר את כל הכפילויות",
|
"select_all_duplicates": "בחר את כל הכפילויות",
|
||||||
@@ -1313,7 +1305,7 @@
|
|||||||
"unlinked_oauth_account": "בוטל קישור חשבון OAuth",
|
"unlinked_oauth_account": "בוטל קישור חשבון OAuth",
|
||||||
"unmute_memories": "בטל השתקת זיכרונות",
|
"unmute_memories": "בטל השתקת זיכרונות",
|
||||||
"unnamed_album": "אלבום ללא שם",
|
"unnamed_album": "אלבום ללא שם",
|
||||||
"unnamed_album_delete_confirmation": "האם באמת ברצונך למחוק את האלבום הזה?",
|
"unnamed_album_delete_confirmation": "את/ה בטוח/ה שברצונך למחוק את האלבום הזה?",
|
||||||
"unnamed_share": "שיתוף ללא שם",
|
"unnamed_share": "שיתוף ללא שם",
|
||||||
"unsaved_change": "שינוי לא נשמר",
|
"unsaved_change": "שינוי לא נשמר",
|
||||||
"unselect_all": "בטל בחירה בהכל",
|
"unselect_all": "בטל בחירה בהכל",
|
||||||
@@ -1352,7 +1344,7 @@
|
|||||||
"variables": "משתנים",
|
"variables": "משתנים",
|
||||||
"version": "גרסה",
|
"version": "גרסה",
|
||||||
"version_announcement_closing": "החבר שלך, אלכס",
|
"version_announcement_closing": "החבר שלך, אלכס",
|
||||||
"version_announcement_message": "שלום לך! זמינה גרסה חדשה של Immich. נא לקחת זמן מה לקרוא את <link>הערות הפרסום</link> כדי לוודא שההתקנה שלך עדכנית על מנת למנוע תצורות שגויות, במיוחד אם נעשה שימוש ב-WatchTower או בכל מנגנון שמטפל בעדכון מופע ה-Immich שלך באופן אוטומטי.",
|
"version_announcement_message": "שלום לך! זמינה גרסה חדשה של Immich. אנא קח/י זמן מה לקרוא את <link>הערות הפרסום</link> כדי לוודא שההתקנה שלך עדכנית על מנת למנוע תצורות שגויות, במיוחד אם את/ה משתמש/ת ב-WatchTower או בכל מנגנון שמטפל בעדכון מופע ה-Immich שלך באופן אוטומטי.",
|
||||||
"version_history": "היסטוריית גרסאות",
|
"version_history": "היסטוריית גרסאות",
|
||||||
"version_history_item": "{version} הותקנה ב-{date}",
|
"version_history_item": "{version} הותקנה ב-{date}",
|
||||||
"video": "סרטון",
|
"video": "סרטון",
|
||||||
|
|||||||
+2
-13
@@ -29,17 +29,11 @@
|
|||||||
"added_to_favorites_count": "पसंदीदा में {count, number} जोड़ा गया",
|
"added_to_favorites_count": "पसंदीदा में {count, number} जोड़ा गया",
|
||||||
"admin": {
|
"admin": {
|
||||||
"add_exclusion_pattern_description": "बहिष्करण पैटर्न जोड़ें. *, **, और ? का उपयोग करके ग्लोबिंग करना समर्थित है। \"Raw\" नामक किसी भी निर्देशिका की सभी फ़ाइलों को अनदेखा करने के लिए, \"**/Raw/**\" का उपयोग करें। \".tif\" से समाप्त होने वाली सभी फ़ाइलों को अनदेखा करने के लिए, \"**/*.tif\" का उपयोग करें। किसी पूर्ण पथ को अनदेखा करने के लिए, \"/path/to/ignore/**\" का उपयोग करें।",
|
"add_exclusion_pattern_description": "बहिष्करण पैटर्न जोड़ें. *, **, और ? का उपयोग करके ग्लोबिंग करना समर्थित है। \"Raw\" नामक किसी भी निर्देशिका की सभी फ़ाइलों को अनदेखा करने के लिए, \"**/Raw/**\" का उपयोग करें। \".tif\" से समाप्त होने वाली सभी फ़ाइलों को अनदेखा करने के लिए, \"**/*.tif\" का उपयोग करें। किसी पूर्ण पथ को अनदेखा करने के लिए, \"/path/to/ignore/**\" का उपयोग करें।",
|
||||||
"asset_offline_description": "यह बाहरी लाइब्रेरी एसेट अब डिस्क पर मौजूद नहीं है और इसे ट्रैश में डाल दिया गया है। यदि फ़ाइल को लाइब्रेरी के भीतर कहीं ले जाया गया था, तो नई संबंधित एसेट के लिए अपनी टाइमलाइन देखें। इस एसेट को वापस पाने के लिए, कृपया सुनिश्चित करें कि नीचे दिए गए फ़ाइल पथ को इम्मिच द्वारा एक्सेस किया जा सकता है और फिर लाइब्रेरी को स्कैन करें।",
|
|
||||||
"authentication_settings": "प्रमाणीकरण सेटिंग्स",
|
"authentication_settings": "प्रमाणीकरण सेटिंग्स",
|
||||||
"authentication_settings_description": "पासवर्ड, OAuth और अन्य प्रमाणीकरण सेटिंग्स प्रबंधित करें",
|
"authentication_settings_description": "पासवर्ड, OAuth और अन्य प्रमाणीकरण सेटिंग्स प्रबंधित करें",
|
||||||
"authentication_settings_disable_all": "क्या आप वाकई सभी लॉगिन विधियों को अक्षम करना चाहते हैं? लॉगिन पूरी तरह से अक्षम कर दिया जाएगा।",
|
"authentication_settings_disable_all": "क्या आप वाकई सभी लॉगिन विधियों को अक्षम करना चाहते हैं? लॉगिन पूरी तरह से अक्षम कर दिया जाएगा।",
|
||||||
"authentication_settings_reenable": "पुनः सक्षम करने के लिए, <link>Server Command</link> का प्रयोग करे।",
|
"authentication_settings_reenable": "पुनः सक्षम करने के लिए, <link>Server Command</link> का प्रयोग करे।",
|
||||||
"background_task_job": "पृष्ठभूमि कार्य",
|
"background_task_job": "पृष्ठभूमि कार्य",
|
||||||
"backup_database": "बैकअप डाटाबेस",
|
|
||||||
"backup_database_enable_description": "बैकअप डेटाबेस सक्रिय करें",
|
|
||||||
"backup_keep_last_amount": "पूर्व बैकअप क्षमता",
|
|
||||||
"backup_settings": "बैकअप सेटिंग्स",
|
|
||||||
"backup_settings_description": "डेटाबेस बैकअप सेटिंग्स प्रबंधन",
|
|
||||||
"check_all": "सभी चेक करें",
|
"check_all": "सभी चेक करें",
|
||||||
"cleared_jobs": "{job}: के लिए कार्य साफ़ कर दिए गए",
|
"cleared_jobs": "{job}: के लिए कार्य साफ़ कर दिए गए",
|
||||||
"config_set_by_file": "Config वर्तमान में एक config फ़ाइल द्वारा सेट किया गया है",
|
"config_set_by_file": "Config वर्तमान में एक config फ़ाइल द्वारा सेट किया गया है",
|
||||||
@@ -48,9 +42,6 @@
|
|||||||
"confirm_email_below": "पुष्टि करने के लिए नीचे \"{email}\" टाइप करें",
|
"confirm_email_below": "पुष्टि करने के लिए नीचे \"{email}\" टाइप करें",
|
||||||
"confirm_reprocess_all_faces": "क्या आप वाकई सभी चेहरों को दोबारा संसाधित करना चाहते हैं? इससे नामित लोग भी साफ हो जायेंगे।",
|
"confirm_reprocess_all_faces": "क्या आप वाकई सभी चेहरों को दोबारा संसाधित करना चाहते हैं? इससे नामित लोग भी साफ हो जायेंगे।",
|
||||||
"confirm_user_password_reset": "क्या आप वाकई {user} का पासवर्ड रीसेट करना चाहते हैं?",
|
"confirm_user_password_reset": "क्या आप वाकई {user} का पासवर्ड रीसेट करना चाहते हैं?",
|
||||||
"create_job": "जॉब बनाएँ",
|
|
||||||
"cron_expression": "क्रॉन अभिव्यक्ति",
|
|
||||||
"cron_expression_description": "क्रॉन प्रारूप का उपयोग करके स्कैनिंग अंतराल सेट करें। अधिक जानकारी के लिए कृपया <link>क्रोनटैब गुरु</link> देखें",
|
|
||||||
"disable_login": "लॉगिन अक्षम करें",
|
"disable_login": "लॉगिन अक्षम करें",
|
||||||
"duplicate_detection_job_description": "समान छवियों का पता लगाने के लिए संपत्तियों पर मशीन लर्निंग चलाएं। यह कार्यक्षमता स्मार्ट खोज पर निर्भर करती है",
|
"duplicate_detection_job_description": "समान छवियों का पता लगाने के लिए संपत्तियों पर मशीन लर्निंग चलाएं। यह कार्यक्षमता स्मार्ट खोज पर निर्भर करती है",
|
||||||
"exclusion_pattern_description": "Exclusion पैटर्न आपको अपनी लाइब्रेरी को स्कैन करते समय फ़ाइलों और फ़ोल्डरों को अनदेखा करने देता है। यह उपयोगी है यदि आपके पास ऐसे फ़ोल्डर हैं जिनमें ऐसी फ़ाइलें हैं जिन्हें आप आयात नहीं करना चाहते हैं, जैसे RAW फ़ाइलें।",
|
"exclusion_pattern_description": "Exclusion पैटर्न आपको अपनी लाइब्रेरी को स्कैन करते समय फ़ाइलों और फ़ोल्डरों को अनदेखा करने देता है। यह उपयोगी है यदि आपके पास ऐसे फ़ोल्डर हैं जिनमें ऐसी फ़ाइलें हैं जिन्हें आप आयात नहीं करना चाहते हैं, जैसे RAW फ़ाइलें।",
|
||||||
@@ -62,14 +53,11 @@
|
|||||||
"failed_job_command": "कार्य {job} के लिए आदेश {command} विफल",
|
"failed_job_command": "कार्य {job} के लिए आदेश {command} विफल",
|
||||||
"force_delete_user_warning": "चेतावनी: इससे उपयोगकर्ता और सारा डेटा तुरंत हट जाएगा। इसे पूर्ववत नहीं किया जा सकता और फ़ाइलें पुनर्प्राप्त नहीं की जा सकतीं।",
|
"force_delete_user_warning": "चेतावनी: इससे उपयोगकर्ता और सारा डेटा तुरंत हट जाएगा। इसे पूर्ववत नहीं किया जा सकता और फ़ाइलें पुनर्प्राप्त नहीं की जा सकतीं।",
|
||||||
"forcing_refresh_library_files": "सभी लाइब्रेरी फ़ाइलों को जबरन सामयिक करें",
|
"forcing_refresh_library_files": "सभी लाइब्रेरी फ़ाइलों को जबरन सामयिक करें",
|
||||||
"image_format": "प्रारूप",
|
|
||||||
"image_format_description": "वेबपी, जेपीईजी की तुलना में छोटी फ़ाइलें बनाता है, लेकिन एनकोड करने में धीमा है।",
|
"image_format_description": "वेबपी, जेपीईजी की तुलना में छोटी फ़ाइलें बनाता है, लेकिन एनकोड करने में धीमा है।",
|
||||||
"image_prefer_embedded_preview": "एम्बेडेड पूर्वावलोकन को प्राथमिकता दें",
|
"image_prefer_embedded_preview": "एम्बेडेड पूर्वावलोकन को प्राथमिकता दें",
|
||||||
"image_prefer_embedded_preview_setting_description": "जब उपलब्ध हो तो RAW फ़ोटो में एम्बेडेड पूर्वावलोकन का उपयोग इमेज प्रोसेसिंग के इनपुट के रूप में करें। यह कुछ छवियों के लिए अधिक सटीक रंग उत्पन्न कर सकता है, लेकिन पूर्वावलोकन की गुणवत्ता कैमरे पर निर्भर करती है और छवि में अधिक संपीड़न कलाकृतियाँ हो सकती हैं।",
|
"image_prefer_embedded_preview_setting_description": "जब उपलब्ध हो तो RAW फ़ोटो में एम्बेडेड पूर्वावलोकन का उपयोग इमेज प्रोसेसिंग के इनपुट के रूप में करें। यह कुछ छवियों के लिए अधिक सटीक रंग उत्पन्न कर सकता है, लेकिन पूर्वावलोकन की गुणवत्ता कैमरे पर निर्भर करती है और छवि में अधिक संपीड़न कलाकृतियाँ हो सकती हैं।",
|
||||||
"image_prefer_wide_gamut": "विस्तृत सरगम को प्राथमिकता दें",
|
"image_prefer_wide_gamut": "विस्तृत सरगम को प्राथमिकता दें",
|
||||||
"image_prefer_wide_gamut_setting_description": "थंबनेल के लिए डिस्प्ले P3 का उपयोग करें। यह विस्तृत कलरस्पेस वाली छवियों की जीवंतता को बेहतर ढंग से संरक्षित करता है, लेकिन पुराने ब्राउज़र संस्करण वाले पुराने डिवाइस पर छवियां अलग-अलग दिखाई दे सकती हैं। रंग परिवर्तन से बचने के लिए sRGB छवियों को sRGB के रूप में रखा जाता है।",
|
"image_prefer_wide_gamut_setting_description": "थंबनेल के लिए डिस्प्ले P3 का उपयोग करें। यह विस्तृत कलरस्पेस वाली छवियों की जीवंतता को बेहतर ढंग से संरक्षित करता है, लेकिन पुराने ब्राउज़र संस्करण वाले पुराने डिवाइस पर छवियां अलग-अलग दिखाई दे सकती हैं। रंग परिवर्तन से बचने के लिए sRGB छवियों को sRGB के रूप में रखा जाता है।",
|
||||||
"image_preview_description": "मेटाडेटा रहित मध्यम आकार की छवि, जिसका उपयोग एकल संपत्ति देखने और मशीन लर्निंग के लिए होता है",
|
|
||||||
"image_preview_title": "पूर्वदर्शन सेटिंग्स",
|
|
||||||
"image_quality": "गुणवत्ता",
|
"image_quality": "गुणवत्ता",
|
||||||
"image_settings": "छवि सेटिंग्स",
|
"image_settings": "छवि सेटिंग्स",
|
||||||
"image_settings_description": "उत्पन्न छवियों की गुणवत्ता और रिज़ॉल्यूशन प्रबंधित करें",
|
"image_settings_description": "उत्पन्न छवियों की गुणवत्ता और रिज़ॉल्यूशन प्रबंधित करें",
|
||||||
@@ -146,6 +134,7 @@
|
|||||||
"no_pattern_added": "कोई पैटर्न नहीं जोड़ा गया",
|
"no_pattern_added": "कोई पैटर्न नहीं जोड़ा गया",
|
||||||
"note_apply_storage_label_previous_assets": "नोट: पहले अपलोड की गई संपत्तियों पर स्टोरेज लेबल लागू करने के लिए, चलाएँ",
|
"note_apply_storage_label_previous_assets": "नोट: पहले अपलोड की गई संपत्तियों पर स्टोरेज लेबल लागू करने के लिए, चलाएँ",
|
||||||
"note_cannot_be_changed_later": "नोट: इसे बाद में बदला नहीं जा सकता!",
|
"note_cannot_be_changed_later": "नोट: इसे बाद में बदला नहीं जा सकता!",
|
||||||
|
"note_unlimited_quota": "नोट: असीमित कोटा के लिए 0 दर्ज करें",
|
||||||
"notification_email_from_address": "इस पते से",
|
"notification_email_from_address": "इस पते से",
|
||||||
"notification_email_from_address_description": "प्रेषक का ईमेल पता, उदाहरण के लिए: \"इमिच फोटो सर्वर <noreply@example.com>\"",
|
"notification_email_from_address_description": "प्रेषक का ईमेल पता, उदाहरण के लिए: \"इमिच फोटो सर्वर <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "ईमेल सर्वर का होस्ट (उदा. smtp.immitch.app)",
|
"notification_email_host_description": "ईमेल सर्वर का होस्ट (उदा. smtp.immitch.app)",
|
||||||
@@ -768,6 +757,7 @@
|
|||||||
"no_shared_albums_message": "अपने नेटवर्क में लोगों के साथ फ़ोटो और वीडियो साझा करने के लिए एक एल्बम बनाएं",
|
"no_shared_albums_message": "अपने नेटवर्क में लोगों के साथ फ़ोटो और वीडियो साझा करने के लिए एक एल्बम बनाएं",
|
||||||
"not_in_any_album": "किसी एलबम में नहीं",
|
"not_in_any_album": "किसी एलबम में नहीं",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "नोट: पहले अपलोड की गई संपत्तियों पर स्टोरेज लेबल लागू करने के लिए, चलाएँ",
|
"note_apply_storage_label_to_previously_uploaded assets": "नोट: पहले अपलोड की गई संपत्तियों पर स्टोरेज लेबल लागू करने के लिए, चलाएँ",
|
||||||
|
"note_unlimited_quota": "नोट: असीमित कोटा के लिए 0 दर्ज करें",
|
||||||
"notes": "टिप्पणियाँ",
|
"notes": "टिप्पणियाँ",
|
||||||
"notification_toggle_setting_description": "ईमेल सूचनाएं सक्षम करें",
|
"notification_toggle_setting_description": "ईमेल सूचनाएं सक्षम करें",
|
||||||
"notifications": "सूचनाएं",
|
"notifications": "सूचनाएं",
|
||||||
@@ -1103,7 +1093,6 @@
|
|||||||
"view_album": "एल्बम देखें",
|
"view_album": "एल्बम देखें",
|
||||||
"view_all": "सभी को देखें",
|
"view_all": "सभी को देखें",
|
||||||
"view_all_users": "सभी उपयोगकर्ताओं को देखें",
|
"view_all_users": "सभी उपयोगकर्ताओं को देखें",
|
||||||
"view_in_timeline": "टाइमलाइन में देखें",
|
|
||||||
"view_links": "लिंक देखें",
|
"view_links": "लिंक देखें",
|
||||||
"view_next_asset": "अगली संपत्ति देखें",
|
"view_next_asset": "अगली संपत्ति देखें",
|
||||||
"view_previous_asset": "पिछली संपत्ति देखें",
|
"view_previous_asset": "पिछली संपत्ति देखें",
|
||||||
|
|||||||
@@ -159,6 +159,7 @@
|
|||||||
"no_pattern_added": "Nije dodan uzorak",
|
"no_pattern_added": "Nije dodan uzorak",
|
||||||
"note_apply_storage_label_previous_assets": "Napomena: da biste primijenili Oznaku Pohrane na prethodno prenesena sredstva, pokrenite",
|
"note_apply_storage_label_previous_assets": "Napomena: da biste primijenili Oznaku Pohrane na prethodno prenesena sredstva, pokrenite",
|
||||||
"note_cannot_be_changed_later": "NAPOMENA: Ovo se ne može promijeniti kasnije!",
|
"note_cannot_be_changed_later": "NAPOMENA: Ovo se ne može promijeniti kasnije!",
|
||||||
|
"note_unlimited_quota": "Napomena: Unesite 0 za neograničenu kvotu",
|
||||||
"notification_email_from_address": "Od adrese",
|
"notification_email_from_address": "Od adrese",
|
||||||
"notification_email_from_address_description": "E-mail adresa pošiljatelja, na primjer: \"Immich Photo Server <noreply@example.com>\"",
|
"notification_email_from_address_description": "E-mail adresa pošiljatelja, na primjer: \"Immich Photo Server <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Poslužitelja e-pošte (npr. smtp.immich.app)",
|
"notification_email_host_description": "Poslužitelja e-pošte (npr. smtp.immich.app)",
|
||||||
@@ -892,6 +893,7 @@
|
|||||||
"no_shared_albums_message": "Stvorite album za dijeljenje fotografija i videozapisa s osobama u svojoj mreži",
|
"no_shared_albums_message": "Stvorite album za dijeljenje fotografija i videozapisa s osobama u svojoj mreži",
|
||||||
"not_in_any_album": "Ni u jednom albumu",
|
"not_in_any_album": "Ni u jednom albumu",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Napomena: Da biste primijenili Oznaku za skladištenje na prethodno prenesena sredstva, pokrenite",
|
"note_apply_storage_label_to_previously_uploaded assets": "Napomena: Da biste primijenili Oznaku za skladištenje na prethodno prenesena sredstva, pokrenite",
|
||||||
|
"note_unlimited_quota": "napomena: Unesite 0 za neograni%C4%8Denu kvotu",
|
||||||
"notes": "Bilješke",
|
"notes": "Bilješke",
|
||||||
"notification_toggle_setting_description": "Omogući obavijesti putem e-pošte",
|
"notification_toggle_setting_description": "Omogući obavijesti putem e-pošte",
|
||||||
"notifications": "Obavijesti",
|
"notifications": "Obavijesti",
|
||||||
|
|||||||
+5
-13
@@ -35,7 +35,7 @@
|
|||||||
"authentication_settings_disable_all": "Biztosan letiltod az összes bejelentkezési módot? A bejelentkezés teljesen le lesz tiltva.",
|
"authentication_settings_disable_all": "Biztosan letiltod az összes bejelentkezési módot? A bejelentkezés teljesen le lesz tiltva.",
|
||||||
"authentication_settings_reenable": "Az újbóli engedélyezéshez használj egy<link>Szerver Parancsot</link>.",
|
"authentication_settings_reenable": "Az újbóli engedélyezéshez használj egy<link>Szerver Parancsot</link>.",
|
||||||
"background_task_job": "Háttérfeladatok",
|
"background_task_job": "Háttérfeladatok",
|
||||||
"backup_database": "Adatbázis Biztonsági Mentése",
|
"backup_database": "Tartalék Adatbázis",
|
||||||
"backup_database_enable_description": "Adatbázis biztonsági mentések engedélyezése",
|
"backup_database_enable_description": "Adatbázis biztonsági mentések engedélyezése",
|
||||||
"backup_keep_last_amount": "Megőrizendő korábbi biztonsági mentések száma",
|
"backup_keep_last_amount": "Megőrizendő korábbi biztonsági mentések száma",
|
||||||
"backup_settings": "Biztonsági mentés beállításai",
|
"backup_settings": "Biztonsági mentés beállításai",
|
||||||
@@ -66,11 +66,6 @@
|
|||||||
"forcing_refresh_library_files": "A képtár összes fájljának frissítése",
|
"forcing_refresh_library_files": "A képtár összes fájljának frissítése",
|
||||||
"image_format": "Formátum",
|
"image_format": "Formátum",
|
||||||
"image_format_description": "WebP a JPEG-nél kisebb fájlokat készít, de lassabban.",
|
"image_format_description": "WebP a JPEG-nél kisebb fájlokat készít, de lassabban.",
|
||||||
"image_fullsize_description": "Teljes méretű kép eltávolított metaadatokkal, nagyításkor használva",
|
|
||||||
"image_fullsize_enabled": "Teljes méretű képgenerálás engedélyezése",
|
|
||||||
"image_fullsize_enabled_description": "Teljes méretű kép generálása nem webbarát formátumokhoz. Ha a „Beágyazott előnézet preferálása” engedélyezve van, a beágyazott előnézetek közvetlenül, átalakítás nélkül kerülnek felhasználásra. Nem érinti a webbarát formátumokat, például a JPEG-et.",
|
|
||||||
"image_fullsize_quality_description": "Teljes méretű képminőség 1-100 között. A magasabb érték jobb minőséget eredményez, de nagyobb fájlméretet is.",
|
|
||||||
"image_fullsize_title": "Teljes méretű képbeállítások",
|
|
||||||
"image_prefer_embedded_preview": "Beágyazott előnézeti kép előnyben részesítése",
|
"image_prefer_embedded_preview": "Beágyazott előnézeti kép előnyben részesítése",
|
||||||
"image_prefer_embedded_preview_setting_description": "Nyers (RAW) fotók esetén használja a beépített előnézeti képet (ha van) a képek feldogozásához. Ez néhány kép esetében pontosabb színeket eredményezhet, de az előnézeti kép minősége erősen fényképezőgép függő, és a képen előfordulhatnak tömörítési hibák.",
|
"image_prefer_embedded_preview_setting_description": "Nyers (RAW) fotók esetén használja a beépített előnézeti képet (ha van) a képek feldogozásához. Ez néhány kép esetében pontosabb színeket eredményezhet, de az előnézeti kép minősége erősen fényképezőgép függő, és a képen előfordulhatnak tömörítési hibák.",
|
||||||
"image_prefer_wide_gamut": "Széles színtér preferálása",
|
"image_prefer_wide_gamut": "Széles színtér preferálása",
|
||||||
@@ -154,7 +149,7 @@
|
|||||||
"map_settings_description": "Térkép beállítások kezelése",
|
"map_settings_description": "Térkép beállítások kezelése",
|
||||||
"map_style_description": "Egy style.json térképtémára mutató URL cím",
|
"map_style_description": "Egy style.json térképtémára mutató URL cím",
|
||||||
"memory_cleanup_job": "Memória takarítás",
|
"memory_cleanup_job": "Memória takarítás",
|
||||||
"memory_generate_job": "Emlék generálálsa",
|
"memory_generate_job": "Emlék létrehozása",
|
||||||
"metadata_extraction_job": "Metaadatok kinyerése",
|
"metadata_extraction_job": "Metaadatok kinyerése",
|
||||||
"metadata_extraction_job_description": "Metaadat információk (pl. GPS, arcok és felbontás) kinyerése minden elemből",
|
"metadata_extraction_job_description": "Metaadat információk (pl. GPS, arcok és felbontás) kinyerése minden elemből",
|
||||||
"metadata_faces_import_setting": "Arc importálás engedélyezése",
|
"metadata_faces_import_setting": "Arc importálás engedélyezése",
|
||||||
@@ -167,6 +162,7 @@
|
|||||||
"no_pattern_added": "Nincs megadva minta (pattern)",
|
"no_pattern_added": "Nincs megadva minta (pattern)",
|
||||||
"note_apply_storage_label_previous_assets": "Megjegyzés: Ha a korábban feltöltött elemekhez is szeretne Tárhely Címkéket társítani, akkor futtassa ezt",
|
"note_apply_storage_label_previous_assets": "Megjegyzés: Ha a korábban feltöltött elemekhez is szeretne Tárhely Címkéket társítani, akkor futtassa ezt",
|
||||||
"note_cannot_be_changed_later": "FIGYELEM: ezt később nem lehet megváltoztatni!",
|
"note_cannot_be_changed_later": "FIGYELEM: ezt később nem lehet megváltoztatni!",
|
||||||
|
"note_unlimited_quota": "Megjegyzés: 0 = korlátlan kvóta",
|
||||||
"notification_email_from_address": "Feladó cím",
|
"notification_email_from_address": "Feladó cím",
|
||||||
"notification_email_from_address_description": "Küldő email címe, például: \"Immich Fotószerver <noreply@example.com>\"",
|
"notification_email_from_address_description": "Küldő email címe, például: \"Immich Fotószerver <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Email szerver kiszolgálója (pl. smtp.immich.app)",
|
"notification_email_host_description": "Email szerver kiszolgálója (pl. smtp.immich.app)",
|
||||||
@@ -247,7 +243,7 @@
|
|||||||
"storage_template_hash_verification_enabled_description": "Engedélyezi a hash-érték ellenőrzést - csak akkor kapcsold ki, ha tisztában vagy a következményekkel",
|
"storage_template_hash_verification_enabled_description": "Engedélyezi a hash-érték ellenőrzést - csak akkor kapcsold ki, ha tisztában vagy a következményekkel",
|
||||||
"storage_template_migration": "Tárhely sablon migrálása",
|
"storage_template_migration": "Tárhely sablon migrálása",
|
||||||
"storage_template_migration_description": "A jelenlegi <link>{template}</link> alkalmazása a már feltöltött elemekre",
|
"storage_template_migration_description": "A jelenlegi <link>{template}</link> alkalmazása a már feltöltött elemekre",
|
||||||
"storage_template_migration_info": "A sablon az összes kiterjesztést kisbetűssé alakítja át. A megváltozott sablon csak az újonnan feltöltött elemekre vonatkozik. A korábbi elemek visszamenőleges áthelyezéséhez ezt futtasd: <link>{job}</link>.",
|
"storage_template_migration_info": "A megváltozott sablon csak az újonnan feltöltött elemekre vonatkozik. A korábbi elemek visszamenőleges áthelyezéséhez ezt futtasd: <link>{job}</link>.",
|
||||||
"storage_template_migration_job": "Tárhely Sablon Migrációja",
|
"storage_template_migration_job": "Tárhely Sablon Migrációja",
|
||||||
"storage_template_more_details": "További részletekért erről a funkcióról lásd a <template-link>Tárhely Sablon</template-link> és annak <implications-link>következményeit</implications-link> a dokumentációban",
|
"storage_template_more_details": "További részletekért erről a funkcióról lásd a <template-link>Tárhely Sablon</template-link> és annak <implications-link>következményeit</implications-link> a dokumentációban",
|
||||||
"storage_template_onboarding_description": "Ha ez a funkció engedélyezve van, akkor a fájlokat automatikusan az egyéni sablon alapján rendszerezi el. Stabilitási problémák miatt a funkció alapértelmezés szerint ki van kapcsolva. További információkért lásd a <link>dokumentációt</link>.",
|
"storage_template_onboarding_description": "Ha ez a funkció engedélyezve van, akkor a fájlokat automatikusan az egyéni sablon alapján rendszerezi el. Stabilitási problémák miatt a funkció alapértelmezés szerint ki van kapcsolva. További információkért lásd a <link>dokumentációt</link>.",
|
||||||
@@ -863,7 +859,6 @@
|
|||||||
"loop_videos": "Videók ismétlése",
|
"loop_videos": "Videók ismétlése",
|
||||||
"loop_videos_description": "Engedélyezi a videók folyamatosan ismételt lejátszását.",
|
"loop_videos_description": "Engedélyezi a videók folyamatosan ismételt lejátszását.",
|
||||||
"main_branch_warning": "Fejlesztői verziót használsz. Javasoljuk a stabil verzió használatát!",
|
"main_branch_warning": "Fejlesztői verziót használsz. Javasoljuk a stabil verzió használatát!",
|
||||||
"main_menu": "Főmenü",
|
|
||||||
"make": "Gyártó",
|
"make": "Gyártó",
|
||||||
"manage_shared_links": "Megosztási linkek kezelése",
|
"manage_shared_links": "Megosztási linkek kezelése",
|
||||||
"manage_sharing_with_partners": "Partnerekkel való megosztás kezelése",
|
"manage_sharing_with_partners": "Partnerekkel való megosztás kezelése",
|
||||||
@@ -928,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "Hozz létre egy új albumot, hogy megoszthasd fényképeid és videóid másokkal",
|
"no_shared_albums_message": "Hozz létre egy új albumot, hogy megoszthasd fényképeid és videóid másokkal",
|
||||||
"not_in_any_album": "Nincs albumban",
|
"not_in_any_album": "Nincs albumban",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Megjegyzés: a korábban feltöltött elemek Tárhely Címkézéséhez futtasd a(z)",
|
"note_apply_storage_label_to_previously_uploaded assets": "Megjegyzés: a korábban feltöltött elemek Tárhely Címkézéséhez futtasd a(z)",
|
||||||
|
"note_unlimited_quota": "Megjegyzés: korlátlan kvótához írj 0-t",
|
||||||
"notes": "Megjegyzések",
|
"notes": "Megjegyzések",
|
||||||
"notification_toggle_setting_description": "Email értesítések engedélyezése",
|
"notification_toggle_setting_description": "Email értesítések engedélyezése",
|
||||||
"notifications": "Értesítések",
|
"notifications": "Értesítések",
|
||||||
@@ -991,7 +987,6 @@
|
|||||||
"permanently_deleted_asset": "Elem véglegesen törölve",
|
"permanently_deleted_asset": "Elem véglegesen törölve",
|
||||||
"permanently_deleted_assets_count": "{count, plural, other {# elem}} véglegesen törölve",
|
"permanently_deleted_assets_count": "{count, plural, other {# elem}} véglegesen törölve",
|
||||||
"person": "Személy",
|
"person": "Személy",
|
||||||
"person_birthdate": "Született: {date}",
|
|
||||||
"person_hidden": "{name}{hidden, select, true { (rejtett)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (rejtett)} other {}}",
|
||||||
"photo_shared_all_users": "Úgy tűnik, hogy már mindenkivel megosztottad a fényképeidet, vagy nincs senki, akivel meg tudnád osztani.",
|
"photo_shared_all_users": "Úgy tűnik, hogy már mindenkivel megosztottad a fényképeidet, vagy nincs senki, akivel meg tudnád osztani.",
|
||||||
"photos": "Fényképek",
|
"photos": "Fényképek",
|
||||||
@@ -1083,8 +1078,6 @@
|
|||||||
"remove_from_album": "Eltávolítás az albumból",
|
"remove_from_album": "Eltávolítás az albumból",
|
||||||
"remove_from_favorites": "Eltávolítás a kedvencekből",
|
"remove_from_favorites": "Eltávolítás a kedvencekből",
|
||||||
"remove_from_shared_link": "Eltávolítás a megosztott linkből",
|
"remove_from_shared_link": "Eltávolítás a megosztott linkből",
|
||||||
"remove_memory": "Emlék eltávolítása",
|
|
||||||
"remove_photo_from_memory": "Kép eltávolítása az emlékből",
|
|
||||||
"remove_url": "URL eltávolítása",
|
"remove_url": "URL eltávolítása",
|
||||||
"remove_user": "Felhasználó eltávolítása",
|
"remove_user": "Felhasználó eltávolítása",
|
||||||
"removed_api_key": "API Kulcs eltávolítva: {name}",
|
"removed_api_key": "API Kulcs eltávolítva: {name}",
|
||||||
@@ -1155,7 +1148,6 @@
|
|||||||
"searching_locales": "Helyszín keresése...",
|
"searching_locales": "Helyszín keresése...",
|
||||||
"second": "Másodperc",
|
"second": "Másodperc",
|
||||||
"see_all_people": "Minden személy megtekintése",
|
"see_all_people": "Minden személy megtekintése",
|
||||||
"select": "Kiválsztás",
|
|
||||||
"select_album_cover": "Albumborító kiválasztása",
|
"select_album_cover": "Albumborító kiválasztása",
|
||||||
"select_all": "Összes kijelölése",
|
"select_all": "Összes kijelölése",
|
||||||
"select_all_duplicates": "Minden duplikátum kijelölése",
|
"select_all_duplicates": "Minden duplikátum kijelölése",
|
||||||
|
|||||||
@@ -116,6 +116,7 @@
|
|||||||
"no_pattern_added": "",
|
"no_pattern_added": "",
|
||||||
"note_apply_storage_label_previous_assets": "",
|
"note_apply_storage_label_previous_assets": "",
|
||||||
"note_cannot_be_changed_later": "",
|
"note_cannot_be_changed_later": "",
|
||||||
|
"note_unlimited_quota": "",
|
||||||
"notification_email_from_address": "",
|
"notification_email_from_address": "",
|
||||||
"notification_email_from_address_description": "",
|
"notification_email_from_address_description": "",
|
||||||
"notification_email_host_description": "",
|
"notification_email_host_description": "",
|
||||||
@@ -613,6 +614,7 @@
|
|||||||
"no_shared_albums_message": "",
|
"no_shared_albums_message": "",
|
||||||
"not_in_any_album": "",
|
"not_in_any_album": "",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "",
|
"note_apply_storage_label_to_previously_uploaded assets": "",
|
||||||
|
"note_unlimited_quota": "",
|
||||||
"notes": "",
|
"notes": "",
|
||||||
"notification_toggle_setting_description": "",
|
"notification_toggle_setting_description": "",
|
||||||
"notifications": "",
|
"notifications": "",
|
||||||
|
|||||||
+2
-4
@@ -162,6 +162,7 @@
|
|||||||
"no_pattern_added": "Tidak ada pola yang ditambahkan",
|
"no_pattern_added": "Tidak ada pola yang ditambahkan",
|
||||||
"note_apply_storage_label_previous_assets": "Catatan: Untuk menerapkan Label Penyimpanan untuk aset yang telah diunggah sebelumnya, jalankan",
|
"note_apply_storage_label_previous_assets": "Catatan: Untuk menerapkan Label Penyimpanan untuk aset yang telah diunggah sebelumnya, jalankan",
|
||||||
"note_cannot_be_changed_later": "CATATAN: Ini tidak akan dapat diubah lagi!",
|
"note_cannot_be_changed_later": "CATATAN: Ini tidak akan dapat diubah lagi!",
|
||||||
|
"note_unlimited_quota": "Catatan: Masukkan 0 untuk kuota tidak terbatas",
|
||||||
"notification_email_from_address": "Dari alamat",
|
"notification_email_from_address": "Dari alamat",
|
||||||
"notification_email_from_address_description": "Alamat surel pengirim, misalnya: \"Server Foto Immich <noreply@example.com>\"",
|
"notification_email_from_address_description": "Alamat surel pengirim, misalnya: \"Server Foto Immich <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Hos server surel (mis. smtp.immich.app)",
|
"notification_email_host_description": "Hos server surel (mis. smtp.immich.app)",
|
||||||
@@ -922,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "Buat sebuah album untuk membagikan foto dan video dengan orang-orang dalam jaringan Anda",
|
"no_shared_albums_message": "Buat sebuah album untuk membagikan foto dan video dengan orang-orang dalam jaringan Anda",
|
||||||
"not_in_any_album": "Tidak ada dalam album apa pun",
|
"not_in_any_album": "Tidak ada dalam album apa pun",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Catatan: Untuk menerapkan Label Penyimpanan pada aset yang sebelumnya telah diunggah, jalankan",
|
"note_apply_storage_label_to_previously_uploaded assets": "Catatan: Untuk menerapkan Label Penyimpanan pada aset yang sebelumnya telah diunggah, jalankan",
|
||||||
|
"note_unlimited_quota": "Catatan: Masukkan 0 untuk kuota tidak terbatas",
|
||||||
"notes": "Catatan",
|
"notes": "Catatan",
|
||||||
"notification_toggle_setting_description": "Aktifkan notifikasi surel",
|
"notification_toggle_setting_description": "Aktifkan notifikasi surel",
|
||||||
"notifications": "Notifikasi",
|
"notifications": "Notifikasi",
|
||||||
@@ -985,7 +987,6 @@
|
|||||||
"permanently_deleted_asset": "Aset dihapus secara permanen",
|
"permanently_deleted_asset": "Aset dihapus secara permanen",
|
||||||
"permanently_deleted_assets_count": "{count, plural, one {# aset} other {# aset}} dihapus secara permanen",
|
"permanently_deleted_assets_count": "{count, plural, one {# aset} other {# aset}} dihapus secara permanen",
|
||||||
"person": "Orang",
|
"person": "Orang",
|
||||||
"person_birthdate": "Lahir pada {date}",
|
|
||||||
"person_hidden": "{name}{hidden, select, true { (tersembunyi)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (tersembunyi)} other {}}",
|
||||||
"photo_shared_all_users": "Sepertinya Anda membagikan foto Anda dengan semua pengguna atau Anda tidak memiliki pengguna siapa pun untuk dibagikan.",
|
"photo_shared_all_users": "Sepertinya Anda membagikan foto Anda dengan semua pengguna atau Anda tidak memiliki pengguna siapa pun untuk dibagikan.",
|
||||||
"photos": "Foto",
|
"photos": "Foto",
|
||||||
@@ -1077,8 +1078,6 @@
|
|||||||
"remove_from_album": "Hapus dari album",
|
"remove_from_album": "Hapus dari album",
|
||||||
"remove_from_favorites": "Hapus dari favorit",
|
"remove_from_favorites": "Hapus dari favorit",
|
||||||
"remove_from_shared_link": "Hapus dari tautan terbagi",
|
"remove_from_shared_link": "Hapus dari tautan terbagi",
|
||||||
"remove_memory": "Hapus kenangan",
|
|
||||||
"remove_photo_from_memory": "Hapus foto dari kenangan ini",
|
|
||||||
"remove_url": "Hapus URL",
|
"remove_url": "Hapus URL",
|
||||||
"remove_user": "Keluarkan pengguna",
|
"remove_user": "Keluarkan pengguna",
|
||||||
"removed_api_key": "Kunci API Dihapus: {name}",
|
"removed_api_key": "Kunci API Dihapus: {name}",
|
||||||
@@ -1149,7 +1148,6 @@
|
|||||||
"searching_locales": "Mencari lokal...",
|
"searching_locales": "Mencari lokal...",
|
||||||
"second": "Detik",
|
"second": "Detik",
|
||||||
"see_all_people": "Lihat semua orang",
|
"see_all_people": "Lihat semua orang",
|
||||||
"select": "Pilih",
|
|
||||||
"select_album_cover": "Pilih kover album",
|
"select_album_cover": "Pilih kover album",
|
||||||
"select_all": "Pilih semua",
|
"select_all": "Pilih semua",
|
||||||
"select_all_duplicates": "Pilih semua duplikat",
|
"select_all_duplicates": "Pilih semua duplikat",
|
||||||
|
|||||||
+7
-16
@@ -49,7 +49,7 @@
|
|||||||
"confirm_email_below": "Per confermare, scrivi \"{email}\" qui sotto",
|
"confirm_email_below": "Per confermare, scrivi \"{email}\" qui sotto",
|
||||||
"confirm_reprocess_all_faces": "Sei sicuro di voler riprocessare tutti i volti? Questo cancellerà tutte le persone nominate.",
|
"confirm_reprocess_all_faces": "Sei sicuro di voler riprocessare tutti i volti? Questo cancellerà tutte le persone nominate.",
|
||||||
"confirm_user_password_reset": "Sei sicuro di voler resettare la password di {user}?",
|
"confirm_user_password_reset": "Sei sicuro di voler resettare la password di {user}?",
|
||||||
"create_job": "Crea Processo",
|
"create_job": "Crea un lavoro",
|
||||||
"cron_expression": "Espressione Cron",
|
"cron_expression": "Espressione Cron",
|
||||||
"cron_expression_description": "Imposta il tempo di scansione utilizzando il formato Cron. Per ulteriori informazioni fare riferimento a <link>Crontab Guru</link>",
|
"cron_expression_description": "Imposta il tempo di scansione utilizzando il formato Cron. Per ulteriori informazioni fare riferimento a <link>Crontab Guru</link>",
|
||||||
"cron_expression_presets": "Espressione Cron preimpostata",
|
"cron_expression_presets": "Espressione Cron preimpostata",
|
||||||
@@ -66,11 +66,6 @@
|
|||||||
"forcing_refresh_library_files": "Forzando l'aggiornamento completo della libreria",
|
"forcing_refresh_library_files": "Forzando l'aggiornamento completo della libreria",
|
||||||
"image_format": "Formato",
|
"image_format": "Formato",
|
||||||
"image_format_description": "WebP produce file più piccoli rispetto a JPEG, ma l'encoding è più lento.",
|
"image_format_description": "WebP produce file più piccoli rispetto a JPEG, ma l'encoding è più lento.",
|
||||||
"image_fullsize_description": "Le immagini con dimensioni reali senza metadati sono utilizzate durante lo zoom",
|
|
||||||
"image_fullsize_enabled": "Abilita la generazione delle immagini con dimensioni reali",
|
|
||||||
"image_fullsize_enabled_description": "Genera immagini con dimensioni reali per i formati non web-friendly. Quando \"Preferisci l'anteprima integrata\" è abilitata, le anteprime integrate saranno usate senza conversione. Non riguarda le immagini web-friendly come il JPEG.",
|
|
||||||
"image_fullsize_quality_description": "Qualità delle immagini con dimensioni reali da 1 a 100. Più è alto il valore più la qualità sarà alta come anche la grandezza dei file.",
|
|
||||||
"image_fullsize_title": "Impostazioni Immagini con dimensioni reali",
|
|
||||||
"image_prefer_embedded_preview": "Preferisci l'anteprima integrata",
|
"image_prefer_embedded_preview": "Preferisci l'anteprima integrata",
|
||||||
"image_prefer_embedded_preview_setting_description": "Usa l'anteprima integrata nelle foto RAW come input per l'elaborazione delle immagini, se disponibile. Questo permette un miglioramento dei colori per alcune immagini, ma la qualità delle anteprime dipende dalla macchina fotografica. Inoltre le immagini potrebbero presentare artefatti di compressione.",
|
"image_prefer_embedded_preview_setting_description": "Usa l'anteprima integrata nelle foto RAW come input per l'elaborazione delle immagini, se disponibile. Questo permette un miglioramento dei colori per alcune immagini, ma la qualità delle anteprime dipende dalla macchina fotografica. Inoltre le immagini potrebbero presentare artefatti di compressione.",
|
||||||
"image_prefer_wide_gamut": "Preferisci gamut più ampio",
|
"image_prefer_wide_gamut": "Preferisci gamut più ampio",
|
||||||
@@ -87,7 +82,7 @@
|
|||||||
"image_thumbnail_quality_description": "Qualità delle miniature da 1 a 100. Un valore più alto è migliore, ma produce file più grandi e può ridurre la reattività dell'app.",
|
"image_thumbnail_quality_description": "Qualità delle miniature da 1 a 100. Un valore più alto è migliore, ma produce file più grandi e può ridurre la reattività dell'app.",
|
||||||
"image_thumbnail_title": "Impostazioni della copertina",
|
"image_thumbnail_title": "Impostazioni della copertina",
|
||||||
"job_concurrency": "Concorrenza {job}",
|
"job_concurrency": "Concorrenza {job}",
|
||||||
"job_created": "Processo creato",
|
"job_created": "Lavoro creato",
|
||||||
"job_not_concurrency_safe": "Questo processo non è eseguibile in maniera concorrente.",
|
"job_not_concurrency_safe": "Questo processo non è eseguibile in maniera concorrente.",
|
||||||
"job_settings": "Impostazioni dei processi",
|
"job_settings": "Impostazioni dei processi",
|
||||||
"job_settings_description": "Gestisci la concorrenza dei processi",
|
"job_settings_description": "Gestisci la concorrenza dei processi",
|
||||||
@@ -167,6 +162,7 @@
|
|||||||
"no_pattern_added": "Nessun pattern aggiunto",
|
"no_pattern_added": "Nessun pattern aggiunto",
|
||||||
"note_apply_storage_label_previous_assets": "Nota: Per assegnare l'etichetta storage ad asset precedentemente caricati, esegui",
|
"note_apply_storage_label_previous_assets": "Nota: Per assegnare l'etichetta storage ad asset precedentemente caricati, esegui",
|
||||||
"note_cannot_be_changed_later": "NOTA: Non potrà essere modificato in futuro!",
|
"note_cannot_be_changed_later": "NOTA: Non potrà essere modificato in futuro!",
|
||||||
|
"note_unlimited_quota": "Nota: Inserisci 0 per una quota illimitata",
|
||||||
"notification_email_from_address": "Indirizzo mittente",
|
"notification_email_from_address": "Indirizzo mittente",
|
||||||
"notification_email_from_address_description": "Indirizzo email mittente, ad esempio: \"Server Foto Immich <noreply@example.com>\"",
|
"notification_email_from_address_description": "Indirizzo email mittente, ad esempio: \"Server Foto Immich <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Host del server email (es. smtp.immich.app)",
|
"notification_email_host_description": "Host del server email (es. smtp.immich.app)",
|
||||||
@@ -863,7 +859,6 @@
|
|||||||
"loop_videos": "Riproduci video in loop",
|
"loop_videos": "Riproduci video in loop",
|
||||||
"loop_videos_description": "Abilita per riprodurre automaticamente un video in loop nella vista dettagli.",
|
"loop_videos_description": "Abilita per riprodurre automaticamente un video in loop nella vista dettagli.",
|
||||||
"main_branch_warning": "Stai usando una versione di sviluppo. Consigliamo vivamente di utilizzare una versione di rilascio!",
|
"main_branch_warning": "Stai usando una versione di sviluppo. Consigliamo vivamente di utilizzare una versione di rilascio!",
|
||||||
"main_menu": "Menu Principale",
|
|
||||||
"make": "Produttore",
|
"make": "Produttore",
|
||||||
"manage_shared_links": "Gestisci link condivisi",
|
"manage_shared_links": "Gestisci link condivisi",
|
||||||
"manage_sharing_with_partners": "Gestisci la condivisione con i compagni",
|
"manage_sharing_with_partners": "Gestisci la condivisione con i compagni",
|
||||||
@@ -891,7 +886,7 @@
|
|||||||
"merged_people_count": "{count, plural, one {Unita # persona} other {Unite # persone}}",
|
"merged_people_count": "{count, plural, one {Unita # persona} other {Unite # persone}}",
|
||||||
"minimize": "Minimizza",
|
"minimize": "Minimizza",
|
||||||
"minute": "Minuto",
|
"minute": "Minuto",
|
||||||
"missing": "Mancanti",
|
"missing": "Mancante",
|
||||||
"model": "Modello",
|
"model": "Modello",
|
||||||
"month": "Mese",
|
"month": "Mese",
|
||||||
"more": "Di più",
|
"more": "Di più",
|
||||||
@@ -928,6 +923,7 @@
|
|||||||
"no_shared_albums_message": "Crea un album per condividere foto e video con le persone nella tua rete",
|
"no_shared_albums_message": "Crea un album per condividere foto e video con le persone nella tua rete",
|
||||||
"not_in_any_album": "In nessun album",
|
"not_in_any_album": "In nessun album",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "Nota: Per aggiungere l'etichetta dell'archiviazione agli asset caricati in precedenza, esegui",
|
"note_apply_storage_label_to_previously_uploaded assets": "Nota: Per aggiungere l'etichetta dell'archiviazione agli asset caricati in precedenza, esegui",
|
||||||
|
"note_unlimited_quota": "Nota: Inserisci 0 per archiviazione illimitata",
|
||||||
"notes": "Note",
|
"notes": "Note",
|
||||||
"notification_toggle_setting_description": "Attiva le notifiche via email",
|
"notification_toggle_setting_description": "Attiva le notifiche via email",
|
||||||
"notifications": "Notifiche",
|
"notifications": "Notifiche",
|
||||||
@@ -991,7 +987,6 @@
|
|||||||
"permanently_deleted_asset": "Asset eliminato definitivamente",
|
"permanently_deleted_asset": "Asset eliminato definitivamente",
|
||||||
"permanently_deleted_assets_count": "Cancellati {count, plural, one {# asset} other {# assets}} definitivamente",
|
"permanently_deleted_assets_count": "Cancellati {count, plural, one {# asset} other {# assets}} definitivamente",
|
||||||
"person": "Persona",
|
"person": "Persona",
|
||||||
"person_birthdate": "Nato il {date}",
|
|
||||||
"person_hidden": "{name}{hidden, select, true { (nascosto)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (nascosto)} other {}}",
|
||||||
"photo_shared_all_users": "Sembra che tu abbia condiviso le foto con tutti gli utenti, oppure che non ci siano utenti con i quali condividerle.",
|
"photo_shared_all_users": "Sembra che tu abbia condiviso le foto con tutti gli utenti, oppure che non ci siano utenti con i quali condividerle.",
|
||||||
"photos": "Foto",
|
"photos": "Foto",
|
||||||
@@ -1002,7 +997,7 @@
|
|||||||
"place": "Posizione",
|
"place": "Posizione",
|
||||||
"places": "Luoghi",
|
"places": "Luoghi",
|
||||||
"places_count": "{count, plural, one {{count, number} Luogo} other {{count, number} Places}}",
|
"places_count": "{count, plural, one {{count, number} Luogo} other {{count, number} Places}}",
|
||||||
"play": "Riproduci",
|
"play": "Avvia",
|
||||||
"play_memories": "Avvia ricordi",
|
"play_memories": "Avvia ricordi",
|
||||||
"play_motion_photo": "Avvia Foto in movimento",
|
"play_motion_photo": "Avvia Foto in movimento",
|
||||||
"play_or_pause_video": "Avvia o metti in pausa il video",
|
"play_or_pause_video": "Avvia o metti in pausa il video",
|
||||||
@@ -1083,8 +1078,6 @@
|
|||||||
"remove_from_album": "Rimuovere dall'album",
|
"remove_from_album": "Rimuovere dall'album",
|
||||||
"remove_from_favorites": "Rimuovi dai preferiti",
|
"remove_from_favorites": "Rimuovi dai preferiti",
|
||||||
"remove_from_shared_link": "Rimuovi dal link condiviso",
|
"remove_from_shared_link": "Rimuovi dal link condiviso",
|
||||||
"remove_memory": "Rimuovi ricordo",
|
|
||||||
"remove_photo_from_memory": "Rimuovi foto da questo ricordo",
|
|
||||||
"remove_url": "Rimuovi URL",
|
"remove_url": "Rimuovi URL",
|
||||||
"remove_user": "Rimuovi utente",
|
"remove_user": "Rimuovi utente",
|
||||||
"removed_api_key": "Rimossa chiave API: {name}",
|
"removed_api_key": "Rimossa chiave API: {name}",
|
||||||
@@ -1155,7 +1148,6 @@
|
|||||||
"searching_locales": "Cerca localizzazioni...",
|
"searching_locales": "Cerca localizzazioni...",
|
||||||
"second": "Secondo",
|
"second": "Secondo",
|
||||||
"see_all_people": "Vedi tutte le persone",
|
"see_all_people": "Vedi tutte le persone",
|
||||||
"select": "Seleziona",
|
|
||||||
"select_album_cover": "Seleziona copertina album",
|
"select_album_cover": "Seleziona copertina album",
|
||||||
"select_all": "Seleziona tutto",
|
"select_all": "Seleziona tutto",
|
||||||
"select_all_duplicates": "Seleziona tutti i duplicati",
|
"select_all_duplicates": "Seleziona tutti i duplicati",
|
||||||
@@ -1246,7 +1238,7 @@
|
|||||||
"stack_selected_photos": "Impila foto selezionate",
|
"stack_selected_photos": "Impila foto selezionate",
|
||||||
"stacked_assets_count": "{count, plural, one {Raggruppato # asset} other {Raggruppati # asset}}",
|
"stacked_assets_count": "{count, plural, one {Raggruppato # asset} other {Raggruppati # asset}}",
|
||||||
"stacktrace": "Traccia dell'errore",
|
"stacktrace": "Traccia dell'errore",
|
||||||
"start": "Avvia",
|
"start": "Inizio",
|
||||||
"start_date": "Data di inizio",
|
"start_date": "Data di inizio",
|
||||||
"state": "Provincia",
|
"state": "Provincia",
|
||||||
"status": "Stato",
|
"status": "Stato",
|
||||||
@@ -1370,7 +1362,6 @@
|
|||||||
"view_name": "Visualizza",
|
"view_name": "Visualizza",
|
||||||
"view_next_asset": "Visualizza risorsa successiva",
|
"view_next_asset": "Visualizza risorsa successiva",
|
||||||
"view_previous_asset": "Visualizza risorsa precedente",
|
"view_previous_asset": "Visualizza risorsa precedente",
|
||||||
"view_qr_code": "Visualizza Codice QR",
|
|
||||||
"view_stack": "Visualizza Raggruppamento",
|
"view_stack": "Visualizza Raggruppamento",
|
||||||
"visibility_changed": "Visibilità modificata per {count, plural, one {# persona} other {# persone}}",
|
"visibility_changed": "Visibilità modificata per {count, plural, one {# persona} other {# persone}}",
|
||||||
"waiting": "In Attesa",
|
"waiting": "In Attesa",
|
||||||
|
|||||||
+13
-138
@@ -7,7 +7,7 @@
|
|||||||
"actions": "アクション",
|
"actions": "アクション",
|
||||||
"active": "アクティブ",
|
"active": "アクティブ",
|
||||||
"activity": "アクティビティ",
|
"activity": "アクティビティ",
|
||||||
"activity_changed": "アクティビティは{enabled, select, true {有効} other {無効}}になりました",
|
"activity_changed": "アクティビティは{enabled, select, true {有効化} other {無効化}}されました",
|
||||||
"add": "追加",
|
"add": "追加",
|
||||||
"add_a_description": "説明を追加",
|
"add_a_description": "説明を追加",
|
||||||
"add_a_location": "場所を追加",
|
"add_a_location": "場所を追加",
|
||||||
@@ -20,28 +20,20 @@
|
|||||||
"add_partner": "パートナーを追加",
|
"add_partner": "パートナーを追加",
|
||||||
"add_path": "パスを追加",
|
"add_path": "パスを追加",
|
||||||
"add_photos": "写真を追加",
|
"add_photos": "写真を追加",
|
||||||
"add_to": "追加先…",
|
"add_to": "追加先...",
|
||||||
"add_to_album": "アルバムに追加",
|
"add_to_album": "アルバムに追加",
|
||||||
"add_to_shared_album": "共有アルバムに追加",
|
"add_to_shared_album": "共有アルバムに追加",
|
||||||
"add_url": "URLを追加",
|
|
||||||
"added_to_archive": "アーカイブに追加済",
|
"added_to_archive": "アーカイブに追加済",
|
||||||
"added_to_favorites": "お気に入りに追加済",
|
"added_to_favorites": "お気に入りに追加済",
|
||||||
"added_to_favorites_count": "{count, number} 枚の画像をお気に入りに追加済",
|
"added_to_favorites_count": "{count, number} 枚の画像をお気に入りに追加済",
|
||||||
"admin": {
|
"admin": {
|
||||||
"add_exclusion_pattern_description": "除外パターンを追加します。ワイルドカード「*」「**」「?」を使用できます。すべてのディレクトリで「Raw」と名前が付いたファイルを無視するには、「**/Raw/**」を使用します。また、「.tif」で終わるファイルをすべて無視するには、「**/*.tif」を使用します。さらに、絶対パスを無視するには「/path/to/ignore/**」を使用します。",
|
"add_exclusion_pattern_description": "除外パターンを追加します。ワイルドカード「*」「**」「?」を使用できます。すべてのディレクトリで「Raw」と名前が付いたファイルを無視するには、「**/Raw/**」を使用します。また、「.tif」で終わるファイルをすべて無視するには、「**/*.tif」を使用します。さらに、絶対パスを無視するには「/path/to/ignore/**」を使用します。",
|
||||||
"asset_offline_description": "この外部ライブラリのアセットはディスク上に見つからなくなってゴミ箱に移動されました。ファイルがライブラリの中で移動された場合はタイムラインで新しい対応するアセットを確認してください。このアセットを復元するには以下のファイルパスがImmichからアクセスできるか確認してライブラリをスキャンしてください。",
|
|
||||||
"authentication_settings": "認証設定",
|
"authentication_settings": "認証設定",
|
||||||
"authentication_settings_description": "認証設定の管理(パスワード、OAuth、その他)",
|
"authentication_settings_description": "認証設定の管理(パスワード、OAuth、その他)",
|
||||||
"authentication_settings_disable_all": "本当に全てのログイン方法を無効にしますか? ログインは完全に無効になります。",
|
"authentication_settings_disable_all": "本当に全てのログイン方法を無効にしますか? ログインは完全に無効になります。",
|
||||||
"authentication_settings_reenable": "再び有効にするには、<link>サーバーコマンド</link>を使用してください。",
|
"authentication_settings_reenable": "再び有効にするには、<link>サーバーコマンド</link>を使用してください。",
|
||||||
"background_task_job": "バックグラウンドタスク",
|
"background_task_job": "バックグラウンドタスク",
|
||||||
"backup_database": "データベースのバックアップ",
|
|
||||||
"backup_database_enable_description": "データベースのバックアップを有効にする",
|
|
||||||
"backup_keep_last_amount": "過去のバックアップの保持数",
|
|
||||||
"backup_settings": "バックアップ設定",
|
|
||||||
"backup_settings_description": "データベースのバックアップ設定の管理",
|
|
||||||
"check_all": "すべてを選択",
|
"check_all": "すべてを選択",
|
||||||
"cleanup": "クリーンアップ",
|
|
||||||
"cleared_jobs": "{job}のジョブをクリアしました",
|
"cleared_jobs": "{job}のジョブをクリアしました",
|
||||||
"config_set_by_file": "設定は現在 Config File で設定されている",
|
"config_set_by_file": "設定は現在 Config File で設定されている",
|
||||||
"confirm_delete_library": "本当に {library} を削除しますか?",
|
"confirm_delete_library": "本当に {library} を削除しますか?",
|
||||||
@@ -49,10 +41,6 @@
|
|||||||
"confirm_email_below": "確認のため、以下に \"{email}\" と入力してください",
|
"confirm_email_below": "確認のため、以下に \"{email}\" と入力してください",
|
||||||
"confirm_reprocess_all_faces": "本当にすべての顔を再処理しますか? これにより名前が付けられた人物も消去されます。",
|
"confirm_reprocess_all_faces": "本当にすべての顔を再処理しますか? これにより名前が付けられた人物も消去されます。",
|
||||||
"confirm_user_password_reset": "本当に {user} のパスワードをリセットしますか?",
|
"confirm_user_password_reset": "本当に {user} のパスワードをリセットしますか?",
|
||||||
"create_job": "ジョブの作成",
|
|
||||||
"cron_expression": "Cron式",
|
|
||||||
"cron_expression_description": "cronのフォーマットを使ってスキャン間隔を設定します。詳しくは<link>Crontab Guru</link>などを参照してください",
|
|
||||||
"cron_expression_presets": "Cron式のプリセット",
|
|
||||||
"disable_login": "ログインを無効にする",
|
"disable_login": "ログインを無効にする",
|
||||||
"duplicate_detection_job_description": "機械学習を用いて類似画像の検出を行います。(スマートサーチに依存)",
|
"duplicate_detection_job_description": "機械学習を用いて類似画像の検出を行います。(スマートサーチに依存)",
|
||||||
"exclusion_pattern_description": "除外パターンを使用すると、ライブラリをスキャンする際にファイルやフォルダを無視することができます。RAWファイルなど、インポートしたくないファイルを含むフォルダがある場合に便利です。",
|
"exclusion_pattern_description": "除外パターンを使用すると、ライブラリをスキャンする際にファイルやフォルダを無視することができます。RAWファイルなど、インポートしたくないファイルを含むフォルダがある場合に便利です。",
|
||||||
@@ -64,29 +52,15 @@
|
|||||||
"failed_job_command": "ジョブ {job}のコマンド {command}が失敗しました",
|
"failed_job_command": "ジョブ {job}のコマンド {command}が失敗しました",
|
||||||
"force_delete_user_warning": "警告:この操作を行うと、ユーザーとすべてのアセットが直ちに削除されます。これは元に戻せず、ファイルも復元できません。",
|
"force_delete_user_warning": "警告:この操作を行うと、ユーザーとすべてのアセットが直ちに削除されます。これは元に戻せず、ファイルも復元できません。",
|
||||||
"forcing_refresh_library_files": "すべてのライブラリファイルを強制更新",
|
"forcing_refresh_library_files": "すべてのライブラリファイルを強制更新",
|
||||||
"image_format": "フォーマット",
|
|
||||||
"image_format_description": "WebPはJPEGよりもファイルサイズが小さいですが、エンコードに時間がかかります。",
|
"image_format_description": "WebPはJPEGよりもファイルサイズが小さいですが、エンコードに時間がかかります。",
|
||||||
"image_fullsize_description": "画像を拡大する時に使われるメタデータを取り除いた原寸大画像",
|
|
||||||
"image_fullsize_enabled": "原寸大画像生成を有効にする",
|
|
||||||
"image_fullsize_quality_description": "1から100まで原寸大画像の質です。高いほうがいいがファイルが大きくなります。",
|
|
||||||
"image_fullsize_title": "原寸大画像設定",
|
|
||||||
"image_prefer_embedded_preview": "埋め込みプレビューを優先",
|
"image_prefer_embedded_preview": "埋め込みプレビューを優先",
|
||||||
"image_prefer_embedded_preview_setting_description": "RAW写真の埋め込みプレビューが利用可能な場合に画像処理の入力として使用します。これにより、いくつかの画像でより正確な色を得ることができますが、プレビューの品質はカメラによって異なり、画像により多くの圧縮アーティファクトが含まれる場合があります。",
|
"image_prefer_embedded_preview_setting_description": "RAW写真の埋め込みプレビューが利用可能な場合に画像処理の入力として使用します。これにより、いくつかの画像でより正確な色を得ることができますが、プレビューの品質はカメラによって異なり、画像により多くの圧縮アーティファクトが含まれる場合があります。",
|
||||||
"image_prefer_wide_gamut": "広色域に対応させる",
|
"image_prefer_wide_gamut": "広色域に対応させる",
|
||||||
"image_prefer_wide_gamut_setting_description": "サムネイルにはDisplay P3を使用します。これにより、広色域の画像の鮮やかさをよりよく保つことができますが、古いデバイスや古いブラウザバージョンでは画像が異なって見える場合があります。sRGBの画像は、色の変化を避けるためにsRGBのままにします。",
|
"image_prefer_wide_gamut_setting_description": "サムネイルにはDisplay P3を使用します。これにより、広色域の画像の鮮やかさをよりよく保つことができますが、古いデバイスや古いブラウザバージョンでは画像が異なって見える場合があります。sRGBの画像は、色の変化を避けるためにsRGBのままにします。",
|
||||||
"image_preview_description": "単一のアセットを表示する時や機械学習に使われるメタデータを取り除いた中サイズの画像",
|
|
||||||
"image_preview_quality_description": "プレビューの画質は1〜100で設定できます。値が高いほど品質は良くなりますがファイルサイズが大きくなってアプリの応答性が低下するおそれがあります。低い値を設定すると機械学習の品質に影響を与えるおそれがあります。",
|
|
||||||
"image_preview_title": "プレビュー設定",
|
|
||||||
"image_quality": "品質",
|
"image_quality": "品質",
|
||||||
"image_resolution": "解像度",
|
|
||||||
"image_resolution_description": "解像度を上げるとより精細に保存できますが、エンコードに時間がかかりファイルサイズが大きくなってアプリの応答性が低下するおそれがあります。",
|
|
||||||
"image_settings": "画像設定",
|
"image_settings": "画像設定",
|
||||||
"image_settings_description": "生成される画像の品質と解像度の設定",
|
"image_settings_description": "生成される画像の品質と解像度の設定",
|
||||||
"image_thumbnail_description": "メインのタイムラインのような写真グループで表示する際に使われるメタデータを取り除いた小さなサムネイル",
|
|
||||||
"image_thumbnail_quality_description": "サムネイルの画質を1〜100の間で設定できます。値が大きいほど良い品質ですがファイルサイズが大きくなりアプリの応答性が低下します。",
|
|
||||||
"image_thumbnail_title": "サムネイル設定",
|
|
||||||
"job_concurrency": "{job} の同時実行数",
|
"job_concurrency": "{job} の同時実行数",
|
||||||
"job_created": "ジョブを作成しました",
|
|
||||||
"job_not_concurrency_safe": "このジョブは安全に同時実行できません。",
|
"job_not_concurrency_safe": "このジョブは安全に同時実行できません。",
|
||||||
"job_settings": "ジョブ設定",
|
"job_settings": "ジョブ設定",
|
||||||
"job_settings_description": "ジョブの同時実行を管理します",
|
"job_settings_description": "ジョブの同時実行を管理します",
|
||||||
@@ -101,7 +75,7 @@
|
|||||||
"library_scanning_enable_description": "ライブラリ定期スキャンの有効化",
|
"library_scanning_enable_description": "ライブラリ定期スキャンの有効化",
|
||||||
"library_settings": "外部ライブラリ",
|
"library_settings": "外部ライブラリ",
|
||||||
"library_settings_description": "外部ライブラリ設定を管理します",
|
"library_settings_description": "外部ライブラリ設定を管理します",
|
||||||
"library_tasks_description": "アセットが追加または変更された外部ライブラリをスキャンする",
|
"library_tasks_description": "ライブラリのタスクを実行する",
|
||||||
"library_watching_enable_description": "外部ライブラリのファイル変更を監視",
|
"library_watching_enable_description": "外部ライブラリのファイル変更を監視",
|
||||||
"library_watching_settings": "ライブラリ監視(実験的)",
|
"library_watching_settings": "ライブラリ監視(実験的)",
|
||||||
"library_watching_settings_description": "変更されたファイルを自動的に監視",
|
"library_watching_settings_description": "変更されたファイルを自動的に監視",
|
||||||
@@ -136,7 +110,7 @@
|
|||||||
"machine_learning_smart_search_description": "CLIP埋め込みを使用して画像を意味的に検索します",
|
"machine_learning_smart_search_description": "CLIP埋め込みを使用して画像を意味的に検索します",
|
||||||
"machine_learning_smart_search_enabled": "スマートサーチを有効にします",
|
"machine_learning_smart_search_enabled": "スマートサーチを有効にします",
|
||||||
"machine_learning_smart_search_enabled_description": "無効にすると、画像はスマートサーチ用にエンコードされません。",
|
"machine_learning_smart_search_enabled_description": "無効にすると、画像はスマートサーチ用にエンコードされません。",
|
||||||
"machine_learning_url_description": "機械学習サーバーのURL。複数のURLが設定された場合は1つずつサーバーが正常に応答するまで接続を試みます。応答のないサーバーはオンラインになるまで一時的に無視されます。",
|
"machine_learning_url_description": "機械学習サーバーのURL",
|
||||||
"manage_concurrency": "同時実行数の管理",
|
"manage_concurrency": "同時実行数の管理",
|
||||||
"manage_log_settings": "ログ設定を管理します",
|
"manage_log_settings": "ログ設定を管理します",
|
||||||
"map_dark_style": "ダークモード",
|
"map_dark_style": "ダークモード",
|
||||||
@@ -152,20 +126,15 @@
|
|||||||
"map_settings": "地図",
|
"map_settings": "地図",
|
||||||
"map_settings_description": "地図設定",
|
"map_settings_description": "地図設定",
|
||||||
"map_style_description": "マップテーマ(style.json)の参照先URL",
|
"map_style_description": "マップテーマ(style.json)の参照先URL",
|
||||||
"memory_cleanup_job": "メモリーのクリーンアップ",
|
|
||||||
"memory_generate_job": "メモリーの生成",
|
|
||||||
"metadata_extraction_job": "メタデータの展開",
|
"metadata_extraction_job": "メタデータの展開",
|
||||||
"metadata_extraction_job_description": "GPSや解像度などのメタデータを各アセットから抽出",
|
"metadata_extraction_job_description": "GPSや解像度などのメタデータを各アセットから抽出",
|
||||||
"metadata_faces_import_setting": "顔のインポートを有効にする",
|
|
||||||
"metadata_faces_import_setting_description": "画像のEXIFデータとサイドカーファイルから顔をインポート",
|
|
||||||
"metadata_settings": "メタデータ設定",
|
|
||||||
"metadata_settings_description": "メタデータの設定を管理します",
|
|
||||||
"migration_job": "マイグレーション",
|
"migration_job": "マイグレーション",
|
||||||
"migration_job_description": "アセットおよび顔のサムネイルを最新のフォルダ構造に移行します",
|
"migration_job_description": "アセットおよび顔のサムネイルを最新のフォルダ構造に移行します",
|
||||||
"no_paths_added": "パスが追加されていません",
|
"no_paths_added": "パスが追加されていません",
|
||||||
"no_pattern_added": "パターンが追加されていません",
|
"no_pattern_added": "パターンが追加されていません",
|
||||||
"note_apply_storage_label_previous_assets": "注意: 以前にアップロードされたアセットにストレージラベルを適用するには、以下を実行してください",
|
"note_apply_storage_label_previous_assets": "注意: 以前にアップロードされたアセットにストレージラベルを適用するには、以下を実行してください",
|
||||||
"note_cannot_be_changed_later": "注意: 後から変更できません!",
|
"note_cannot_be_changed_later": "注意: 後から変更できません!",
|
||||||
|
"note_unlimited_quota": "注意: 無制限にする場合は0を入力してください",
|
||||||
"notification_email_from_address": "送信メールアドレス",
|
"notification_email_from_address": "送信メールアドレス",
|
||||||
"notification_email_from_address_description": "送信メールアドレスを設定します(例: \"Immich Photo Server <noreply@example.com>\" )",
|
"notification_email_from_address_description": "送信メールアドレスを設定します(例: \"Immich Photo Server <noreply@example.com>\" )",
|
||||||
"notification_email_host_description": "送信メールサーバーを設定します(例:smtp.immich.app)",
|
"notification_email_host_description": "送信メールサーバーを設定します(例:smtp.immich.app)",
|
||||||
@@ -213,7 +182,6 @@
|
|||||||
"password_settings": "パスワード ログイン",
|
"password_settings": "パスワード ログイン",
|
||||||
"password_settings_description": "パスワード ログイン設定を管理します",
|
"password_settings_description": "パスワード ログイン設定を管理します",
|
||||||
"paths_validated_successfully": "すべてのパスが正常に検証されました",
|
"paths_validated_successfully": "すべてのパスが正常に検証されました",
|
||||||
"person_cleanup_job": "人物のクリーンアップ",
|
|
||||||
"quota_size_gib": "割り当て容量 (GiB)",
|
"quota_size_gib": "割り当て容量 (GiB)",
|
||||||
"refreshing_all_libraries": "すべてのライブラリを更新",
|
"refreshing_all_libraries": "すべてのライブラリを更新",
|
||||||
"registration": "管理者登録",
|
"registration": "管理者登録",
|
||||||
@@ -224,13 +192,9 @@
|
|||||||
"require_password_change_on_login": "初回ログイン時にパスワード変更を要求する",
|
"require_password_change_on_login": "初回ログイン時にパスワード変更を要求する",
|
||||||
"reset_settings_to_default": "設定をデフォルトにリセットします",
|
"reset_settings_to_default": "設定をデフォルトにリセットします",
|
||||||
"reset_settings_to_recent_saved": "前回の設定値に戻す",
|
"reset_settings_to_recent_saved": "前回の設定値に戻す",
|
||||||
"scanning_library": "ライブラリのスキャン",
|
|
||||||
"search_jobs": "ジョブを検索…",
|
|
||||||
"send_welcome_email": "ウェルカム メール を送信します",
|
"send_welcome_email": "ウェルカム メール を送信します",
|
||||||
"server_external_domain_settings": "外部ドメイン",
|
"server_external_domain_settings": "外部ドメイン",
|
||||||
"server_external_domain_settings_description": "公開共有リンク用のドメイン( http(s):// を含める)",
|
"server_external_domain_settings_description": "公開共有リンク用のドメイン( http(s):// を含める)",
|
||||||
"server_public_users": "公開ユーザー",
|
|
||||||
"server_public_users_description": "共有アルバムにユーザーを追加するとすべてのユーザー (名前とメールアドレス) がリスト化されます。無効にするとユーザーリストは管理者のみ利用可能になります。",
|
|
||||||
"server_settings": "サーバー設定",
|
"server_settings": "サーバー設定",
|
||||||
"server_settings_description": "サーバー設定を管理します",
|
"server_settings_description": "サーバー設定を管理します",
|
||||||
"server_welcome_message": "ウェルカム メッセージ",
|
"server_welcome_message": "ウェルカム メッセージ",
|
||||||
@@ -246,7 +210,7 @@
|
|||||||
"storage_template_hash_verification_enabled_description": "ハッシュ検証の有効化(よくわからなければ、有効にしてください)",
|
"storage_template_hash_verification_enabled_description": "ハッシュ検証の有効化(よくわからなければ、有効にしてください)",
|
||||||
"storage_template_migration": "ストレージ テンプレート の移行",
|
"storage_template_migration": "ストレージ テンプレート の移行",
|
||||||
"storage_template_migration_description": "現在の<link>{template}</link>を以前にアップロードされたアセットに適用",
|
"storage_template_migration_description": "現在の<link>{template}</link>を以前にアップロードされたアセットに適用",
|
||||||
"storage_template_migration_info": "ストレージテンプレートは全ての拡張子を小文字に変換します。テンプレートの変更は新しいアセットにのみ適用されます。 以前にアップロードしたアセットにテンプレートを遡って適用するには、<link>{job}</link> を実行してください。",
|
"storage_template_migration_info": "テンプレートの変更は新しいアセットにのみ適用されます。 以前にアップロードしたアセットにテンプレートを遡って適用するには、<link>{job}</link> を実行してください。",
|
||||||
"storage_template_migration_job": "ストレージテンプレート移行ジョブ",
|
"storage_template_migration_job": "ストレージテンプレート移行ジョブ",
|
||||||
"storage_template_more_details": "この機能の詳細については、<template-link>ストレージテンプレート</template-link>とその<implications-link>影響</implications-link>を参照してください",
|
"storage_template_more_details": "この機能の詳細については、<template-link>ストレージテンプレート</template-link>とその<implications-link>影響</implications-link>を参照してください",
|
||||||
"storage_template_onboarding_description": "この機能を有効にすると、ユーザー定義のテンプレートに基づいてファイルが自動で整理されます。 安定性の問題のため、この機能はデフォルトでオフになっています。 詳細については、<link>ドキュメント</link>を参照してください。",
|
"storage_template_onboarding_description": "この機能を有効にすると、ユーザー定義のテンプレートに基づいてファイルが自動で整理されます。 安定性の問題のため、この機能はデフォルトでオフになっています。 詳細については、<link>ドキュメント</link>を参照してください。",
|
||||||
@@ -255,17 +219,6 @@
|
|||||||
"storage_template_settings_description": "アップロードしたアセットのフォルダ構造とファイル名を管理します",
|
"storage_template_settings_description": "アップロードしたアセットのフォルダ構造とファイル名を管理します",
|
||||||
"storage_template_user_label": "<code>{label}</code>はユーザーのストレージラベルです",
|
"storage_template_user_label": "<code>{label}</code>はユーザーのストレージラベルです",
|
||||||
"system_settings": "システム設定",
|
"system_settings": "システム設定",
|
||||||
"tag_cleanup_job": "タグのクリーンアップ",
|
|
||||||
"template_email_available_tags": "テンプレートで次の変数を使えます: {tags}",
|
|
||||||
"template_email_if_empty": "テンプレートが空の場合はデフォルトのメールが使われます。",
|
|
||||||
"template_email_invite_album": "アルバム招待のテンプレート",
|
|
||||||
"template_email_preview": "プレビュー",
|
|
||||||
"template_email_settings": "メールテンプレート",
|
|
||||||
"template_email_settings_description": "通知のメールテンプレートのカスタムを管理します",
|
|
||||||
"template_email_update_album": "アルバム更新のテンプレート",
|
|
||||||
"template_email_welcome": "ウェルカムメールのテンプレート",
|
|
||||||
"template_settings": "通知テンプレート",
|
|
||||||
"template_settings_description": "通知のためのカスタムテンプレートを管理します。",
|
|
||||||
"theme_custom_css_settings": "カスタムCSS",
|
"theme_custom_css_settings": "カスタムCSS",
|
||||||
"theme_custom_css_settings_description": "CSS を使って Immich のデザインをカスタマイズできます。",
|
"theme_custom_css_settings_description": "CSS を使って Immich のデザインをカスタマイズできます。",
|
||||||
"theme_settings": "テーマ設定",
|
"theme_settings": "テーマ設定",
|
||||||
@@ -295,8 +248,6 @@
|
|||||||
"transcoding_constant_rate_factor": "CRF値 (-crf)",
|
"transcoding_constant_rate_factor": "CRF値 (-crf)",
|
||||||
"transcoding_constant_rate_factor_description": "出力動画の品質レベル。H.264の場合は23、HEVCの場合は28、VP9の場合は31、AV1の場合は35が一般的な値です。値が低いほど品質が良くなりますが、ファイルサイズが大きくなります。",
|
"transcoding_constant_rate_factor_description": "出力動画の品質レベル。H.264の場合は23、HEVCの場合は28、VP9の場合は31、AV1の場合は35が一般的な値です。値が低いほど品質が良くなりますが、ファイルサイズが大きくなります。",
|
||||||
"transcoding_disabled_description": "動画をトランスコードしない設定にしますが、これにより一部のクライアントで再生ができなくなる可能性があります",
|
"transcoding_disabled_description": "動画をトランスコードしない設定にしますが、これにより一部のクライアントで再生ができなくなる可能性があります",
|
||||||
"transcoding_encoding_options": "エンコードオプション",
|
|
||||||
"transcoding_encoding_options_description": "エンコードされた動画のコーデック、解像度、画質、その他オプションの設定します",
|
|
||||||
"transcoding_hardware_acceleration": "ハードウェアアクセラレーション",
|
"transcoding_hardware_acceleration": "ハードウェアアクセラレーション",
|
||||||
"transcoding_hardware_acceleration_description": "より高速ですが、同じビットレートではより低品質になります(実験的)",
|
"transcoding_hardware_acceleration_description": "より高速ですが、同じビットレートではより低品質になります(実験的)",
|
||||||
"transcoding_hardware_decoding": "ハードウェアデコード",
|
"transcoding_hardware_decoding": "ハードウェアデコード",
|
||||||
@@ -309,8 +260,6 @@
|
|||||||
"transcoding_max_keyframe_interval": "最大キーフレーム間隔",
|
"transcoding_max_keyframe_interval": "最大キーフレーム間隔",
|
||||||
"transcoding_max_keyframe_interval_description": "キーフレーム間の最大フレーム間隔を設定します。値を低くすると圧縮効率が悪化しますが、シーク時間が改善され、動きの速いシーンの品質が向上する場合があります。\"0\" に設定すると、この値が自動的に設定されます。",
|
"transcoding_max_keyframe_interval_description": "キーフレーム間の最大フレーム間隔を設定します。値を低くすると圧縮効率が悪化しますが、シーク時間が改善され、動きの速いシーンの品質が向上する場合があります。\"0\" に設定すると、この値が自動的に設定されます。",
|
||||||
"transcoding_optimal_description": "設定解像度を超える動画、または容認されていない形式の動画",
|
"transcoding_optimal_description": "設定解像度を超える動画、または容認されていない形式の動画",
|
||||||
"transcoding_policy": "トランスコードポリシー",
|
|
||||||
"transcoding_policy_description": "動画がいつトランスコードされるかを設定します",
|
|
||||||
"transcoding_preferred_hardware_device": "推奨ハードウェアデバイス",
|
"transcoding_preferred_hardware_device": "推奨ハードウェアデバイス",
|
||||||
"transcoding_preferred_hardware_device_description": "VAAPI と QSV のみに適用されます。 ハードウェアトランスコードに使用されるdriノードを設定します。",
|
"transcoding_preferred_hardware_device_description": "VAAPI と QSV のみに適用されます。 ハードウェアトランスコードに使用されるdriノードを設定します。",
|
||||||
"transcoding_preset_preset": "プリセット (-preset)",
|
"transcoding_preset_preset": "プリセット (-preset)",
|
||||||
@@ -319,7 +268,7 @@
|
|||||||
"transcoding_reference_frames_description": "特定のフレームを圧縮するときに参照するフレームの数。より高い値は圧縮効率を改善しますが、エンコードが遅くなります。\"0\" に設定すると、この値が自動的に設定されます。",
|
"transcoding_reference_frames_description": "特定のフレームを圧縮するときに参照するフレームの数。より高い値は圧縮効率を改善しますが、エンコードが遅くなります。\"0\" に設定すると、この値が自動的に設定されます。",
|
||||||
"transcoding_required_description": "許容されていない動画形式のみ",
|
"transcoding_required_description": "許容されていない動画形式のみ",
|
||||||
"transcoding_settings": "動画トランスコード設定",
|
"transcoding_settings": "動画トランスコード設定",
|
||||||
"transcoding_settings_description": "トランスコードする動画とその処理方法を管理します",
|
"transcoding_settings_description": "動画ファイルの解像度とエンコード情報を管理します",
|
||||||
"transcoding_target_resolution": "解像度",
|
"transcoding_target_resolution": "解像度",
|
||||||
"transcoding_target_resolution_description": "解像度を高くすると細かなディテールを保持できますが、エンコードに時間がかかり、ファイルサイズが大きくなり、アプリの応答性が低下する可能性があります。",
|
"transcoding_target_resolution_description": "解像度を高くすると細かなディテールを保持できますが、エンコードに時間がかかり、ファイルサイズが大きくなり、アプリの応答性が低下する可能性があります。",
|
||||||
"transcoding_temporal_aq": "適応的量子化(Temporal AQ)",
|
"transcoding_temporal_aq": "適応的量子化(Temporal AQ)",
|
||||||
@@ -341,7 +290,6 @@
|
|||||||
"trash_settings_description": "ごみ箱の設定を管理します",
|
"trash_settings_description": "ごみ箱の設定を管理します",
|
||||||
"untracked_files": "追跡されていないファイル",
|
"untracked_files": "追跡されていないファイル",
|
||||||
"untracked_files_description": "これらのファイルはアプリケーションによって追跡されていません。これらは移動の失敗、アップロードの中断、またはバグにより取り残されたものである可能性があります",
|
"untracked_files_description": "これらのファイルはアプリケーションによって追跡されていません。これらは移動の失敗、アップロードの中断、またはバグにより取り残されたものである可能性があります",
|
||||||
"user_cleanup_job": "ユーザーのクリーンアップ",
|
|
||||||
"user_delete_delay": "<b>{user}</b>のアカウントとアセットは{delay, plural, one {#日} other {#日}}後に完全に削除されるように予定されます。",
|
"user_delete_delay": "<b>{user}</b>のアカウントとアセットは{delay, plural, one {#日} other {#日}}後に完全に削除されるように予定されます。",
|
||||||
"user_delete_delay_settings": "遅延削除",
|
"user_delete_delay_settings": "遅延削除",
|
||||||
"user_delete_delay_settings_description": "削除実行後、ユーザーのアカウントとアセットが完全に削除されるまでの日数。 ユーザー削除ジョブは深夜に実行され、削除の準備ができているユーザーを確認します。 この設定への変更は、次回の実行時に反映されます。",
|
"user_delete_delay_settings_description": "削除実行後、ユーザーのアカウントとアセットが完全に削除されるまでの日数。 ユーザー削除ジョブは深夜に実行され、削除の準備ができているユーザーを確認します。 この設定への変更は、次回の実行時に反映されます。",
|
||||||
@@ -397,7 +345,6 @@
|
|||||||
"allow_edits": "編集を許可",
|
"allow_edits": "編集を許可",
|
||||||
"allow_public_user_to_download": "一般ユーザーによるダウンロードを許可",
|
"allow_public_user_to_download": "一般ユーザーによるダウンロードを許可",
|
||||||
"allow_public_user_to_upload": "一般ユーザーによるアップロードを許可",
|
"allow_public_user_to_upload": "一般ユーザーによるアップロードを許可",
|
||||||
"alt_text_qr_code": "QRコード画像",
|
|
||||||
"anti_clockwise": "反時計回り",
|
"anti_clockwise": "反時計回り",
|
||||||
"api_key": "APIキー",
|
"api_key": "APIキー",
|
||||||
"api_key_description": "この値は一回のみ表示されます。 ウィンドウを閉じる前に必ずコピーしてください。",
|
"api_key_description": "この値は一回のみ表示されます。 ウィンドウを閉じる前に必ずコピーしてください。",
|
||||||
@@ -421,9 +368,8 @@
|
|||||||
"asset_offline": "アセットはオフラインです",
|
"asset_offline": "アセットはオフラインです",
|
||||||
"asset_offline_description": "このアセットはオフラインです。 Immichはファイルの場所にアクセスできません。 アセットが利用可能であることを確認しライブラリを再スキャンしてください。",
|
"asset_offline_description": "このアセットはオフラインです。 Immichはファイルの場所にアクセスできません。 アセットが利用可能であることを確認しライブラリを再スキャンしてください。",
|
||||||
"asset_skipped": "スキップ済",
|
"asset_skipped": "スキップ済",
|
||||||
"asset_skipped_in_trash": "ゴミ箱の中",
|
|
||||||
"asset_uploaded": "アップロード済",
|
"asset_uploaded": "アップロード済",
|
||||||
"asset_uploading": "アップロード中…",
|
"asset_uploading": "アップロード中...",
|
||||||
"assets": "アセット",
|
"assets": "アセット",
|
||||||
"assets_added_count": "{count, plural, one {#個} other {#個}}のアセットを追加しました",
|
"assets_added_count": "{count, plural, one {#個} other {#個}}のアセットを追加しました",
|
||||||
"assets_added_to_album_count": "{count, plural, one {#個} other {#個}}のアセットをアルバムに追加しました",
|
"assets_added_to_album_count": "{count, plural, one {#個} other {#個}}のアセットをアルバムに追加しました",
|
||||||
@@ -432,7 +378,7 @@
|
|||||||
"assets_moved_to_trash_count": "{count, plural, one {#個} other {#個}}のアセットをごみ箱に移動しました",
|
"assets_moved_to_trash_count": "{count, plural, one {#個} other {#個}}のアセットをごみ箱に移動しました",
|
||||||
"assets_permanently_deleted_count": "{count, plural, one {#個} other {#個}}のアセットを完全に削除しました",
|
"assets_permanently_deleted_count": "{count, plural, one {#個} other {#個}}のアセットを完全に削除しました",
|
||||||
"assets_removed_count": "{count, plural, one {#個} other {#個}}のアセットを削除しました",
|
"assets_removed_count": "{count, plural, one {#個} other {#個}}のアセットを削除しました",
|
||||||
"assets_restore_confirmation": "ごみ箱のアセットをすべて復元してもよろしいですか? この操作を元に戻すことはできません! オフラインのアセットはこの方法では復元できません。",
|
"assets_restore_confirmation": "ごみ箱のアセットをすべて復元してもよろしいですか? この操作を元に戻すことはできません!",
|
||||||
"assets_restored_count": "{count, plural, one {#個} other {#個}}のアセットを復元しました",
|
"assets_restored_count": "{count, plural, one {#個} other {#個}}のアセットを復元しました",
|
||||||
"assets_trashed_count": "{count, plural, one {#個} other {#個}}のアセットをごみ箱に移動しました",
|
"assets_trashed_count": "{count, plural, one {#個} other {#個}}のアセットをごみ箱に移動しました",
|
||||||
"assets_were_part_of_album_count": "{count, plural, one {個} other {個}}のアセットは既にアルバムの一部です",
|
"assets_were_part_of_album_count": "{count, plural, one {個} other {個}}のアセットは既にアルバムの一部です",
|
||||||
@@ -443,7 +389,6 @@
|
|||||||
"birthdate_saved": "生年月日が正常に保存されました",
|
"birthdate_saved": "生年月日が正常に保存されました",
|
||||||
"birthdate_set_description": "生年月日は、写真撮影時のこの人物の年齢を計算するために使用されます。",
|
"birthdate_set_description": "生年月日は、写真撮影時のこの人物の年齢を計算するために使用されます。",
|
||||||
"blurred_background": "ぼやけた背景",
|
"blurred_background": "ぼやけた背景",
|
||||||
"bugs_and_feature_requests": "バグと機能のリクエスト",
|
|
||||||
"build": "ビルド",
|
"build": "ビルド",
|
||||||
"build_image": "ビルドイメージ",
|
"build_image": "ビルドイメージ",
|
||||||
"bulk_delete_duplicates_confirmation": "本当に {count, plural, one {#個} other {#個}}の重複したアセットを一括削除しますか?これにより各重複中の最大のアセットが保持され、他の全ての重複が削除されます。この操作を元に戻すことはできません!",
|
"bulk_delete_duplicates_confirmation": "本当に {count, plural, one {#個} other {#個}}の重複したアセットを一括削除しますか?これにより各重複中の最大のアセットが保持され、他の全ての重複が削除されます。この操作を元に戻すことはできません!",
|
||||||
@@ -488,9 +433,7 @@
|
|||||||
"comments_are_disabled": "コメントは無効化されています",
|
"comments_are_disabled": "コメントは無効化されています",
|
||||||
"confirm": "確認",
|
"confirm": "確認",
|
||||||
"confirm_admin_password": "管理者パスワードを確認",
|
"confirm_admin_password": "管理者パスワードを確認",
|
||||||
"confirm_delete_face": "本当に『{name}』の顔をアセットから削除しますか?",
|
|
||||||
"confirm_delete_shared_link": "本当にこの共有リンクを削除しますか?",
|
"confirm_delete_shared_link": "本当にこの共有リンクを削除しますか?",
|
||||||
"confirm_keep_this_delete_others": "このアセット以外のアセットがスタックから削除されます。本当に削除しますか?",
|
|
||||||
"confirm_password": "確認",
|
"confirm_password": "確認",
|
||||||
"contain": "収める",
|
"contain": "収める",
|
||||||
"context": "状況",
|
"context": "状況",
|
||||||
@@ -531,33 +474,25 @@
|
|||||||
"date_range": "日付",
|
"date_range": "日付",
|
||||||
"day": "ライトモード",
|
"day": "ライトモード",
|
||||||
"deduplicate_all": "全て重複排除",
|
"deduplicate_all": "全て重複排除",
|
||||||
"deduplication_criteria_1": "バイト単位の画像サイズ",
|
|
||||||
"deduplication_criteria_2": "EXIFデータ数",
|
|
||||||
"deduplication_info": "重複排除情報",
|
|
||||||
"deduplication_info_description": "アセットを自動的に選択して重複を一括で削除するには次のようにします:",
|
|
||||||
"default_locale": "デフォルトのロケール",
|
"default_locale": "デフォルトのロケール",
|
||||||
"default_locale_description": "ブラウザのロケールに基づいて日付と数値をフォーマットします",
|
"default_locale_description": "ブラウザのロケールに基づいて日付と数値をフォーマットします",
|
||||||
"delete": "削除",
|
"delete": "削除",
|
||||||
"delete_album": "アルバムを削除",
|
"delete_album": "アルバムを削除",
|
||||||
"delete_api_key_prompt": "本当にこのAPI キーを削除しますか?",
|
"delete_api_key_prompt": "本当にこのAPI キーを削除しますか?",
|
||||||
"delete_duplicates_confirmation": "本当にこれらの重複を完全に削除しますか?",
|
"delete_duplicates_confirmation": "本当にこれらの重複を完全に削除しますか?",
|
||||||
"delete_face": "顔の削除",
|
|
||||||
"delete_key": "キーを削除",
|
"delete_key": "キーを削除",
|
||||||
"delete_library": "ライブラリを削除",
|
"delete_library": "ライブラリを削除",
|
||||||
"delete_link": "リンクを削除",
|
"delete_link": "リンクを削除",
|
||||||
"delete_others": "ほかを削除",
|
|
||||||
"delete_shared_link": "共有リンクを消す",
|
"delete_shared_link": "共有リンクを消す",
|
||||||
"delete_tag": "タグを削除する",
|
"delete_tag": "タグを削除する",
|
||||||
"delete_tag_confirmation_prompt": "本当に{tagName}タグを削除しますか?",
|
"delete_tag_confirmation_prompt": "本当に{tagName}タグを削除しますか?",
|
||||||
"delete_user": "ユーザーを削除",
|
"delete_user": "ユーザーを削除",
|
||||||
"deleted_shared_link": "共有リンクを削除",
|
"deleted_shared_link": "共有リンクを削除",
|
||||||
"deletes_missing_assets": "ディスクからなくなったアセットを削除する",
|
|
||||||
"description": "概要欄",
|
"description": "概要欄",
|
||||||
"details": "詳細",
|
"details": "詳細",
|
||||||
"direction": "方向",
|
"direction": "方向",
|
||||||
"disabled": "無効",
|
"disabled": "無効",
|
||||||
"disallow_edits": "編集を許可しない",
|
"disallow_edits": "編集を許可しない",
|
||||||
"discord": "Discord",
|
|
||||||
"discover": "探索",
|
"discover": "探索",
|
||||||
"dismiss_all_errors": "全てのエラーを無視",
|
"dismiss_all_errors": "全てのエラーを無視",
|
||||||
"dismiss_error": "エラーを無視",
|
"dismiss_error": "エラーを無視",
|
||||||
@@ -566,7 +501,6 @@
|
|||||||
"display_original_photos": "オリジナルの写真を表示",
|
"display_original_photos": "オリジナルの写真を表示",
|
||||||
"display_original_photos_setting_description": "オリジナルのアセットが Web 互換である場合は、アセットを表示するときにサムネイルではなく元の写真を優先して表示します。これにより写真の表示速度が遅くなる可能性があります。",
|
"display_original_photos_setting_description": "オリジナルのアセットが Web 互換である場合は、アセットを表示するときにサムネイルではなく元の写真を優先して表示します。これにより写真の表示速度が遅くなる可能性があります。",
|
||||||
"do_not_show_again": "このメッセージを再び表示しない",
|
"do_not_show_again": "このメッセージを再び表示しない",
|
||||||
"documentation": "ドキュメント",
|
|
||||||
"done": "完了",
|
"done": "完了",
|
||||||
"download": "ダウンロード",
|
"download": "ダウンロード",
|
||||||
"download_include_embedded_motion_videos": "埋め込まれた動画",
|
"download_include_embedded_motion_videos": "埋め込まれた動画",
|
||||||
@@ -609,7 +543,6 @@
|
|||||||
"enabled": "有効",
|
"enabled": "有効",
|
||||||
"end_date": "終了日",
|
"end_date": "終了日",
|
||||||
"error": "エラー",
|
"error": "エラー",
|
||||||
"error_delete_face": "アセットから顔の削除ができませんでした",
|
|
||||||
"error_loading_image": "画像の読み込みエラー",
|
"error_loading_image": "画像の読み込みエラー",
|
||||||
"error_title": "エラー - 問題が発生しました",
|
"error_title": "エラー - 問題が発生しました",
|
||||||
"errors": {
|
"errors": {
|
||||||
@@ -637,7 +570,6 @@
|
|||||||
"failed_to_create_shared_link": "共有リンクを作成できませんでした",
|
"failed_to_create_shared_link": "共有リンクを作成できませんでした",
|
||||||
"failed_to_edit_shared_link": "共有リンクを編集できませんでした",
|
"failed_to_edit_shared_link": "共有リンクを編集できませんでした",
|
||||||
"failed_to_get_people": "人物を取得できませんでした",
|
"failed_to_get_people": "人物を取得できませんでした",
|
||||||
"failed_to_keep_this_delete_others": "ほかのアセットを削除できませんでした",
|
|
||||||
"failed_to_load_asset": "アセットを読み込めませんでした",
|
"failed_to_load_asset": "アセットを読み込めませんでした",
|
||||||
"failed_to_load_assets": "アセットを読み込めませんでした",
|
"failed_to_load_assets": "アセットを読み込めませんでした",
|
||||||
"failed_to_load_people": "人物を読み込めませんでした",
|
"failed_to_load_people": "人物を読み込めませんでした",
|
||||||
@@ -689,7 +621,6 @@
|
|||||||
"unable_to_get_comments_number": "コメント数を取得できません",
|
"unable_to_get_comments_number": "コメント数を取得できません",
|
||||||
"unable_to_get_shared_link": "共有リンクの取得に失敗しました",
|
"unable_to_get_shared_link": "共有リンクの取得に失敗しました",
|
||||||
"unable_to_hide_person": "人物を非表示にできません",
|
"unable_to_hide_person": "人物を非表示にできません",
|
||||||
"unable_to_link_motion_video": "モーションビデオをリンクできません",
|
|
||||||
"unable_to_link_oauth_account": "OAuth アカウントをリンクできません",
|
"unable_to_link_oauth_account": "OAuth アカウントをリンクできません",
|
||||||
"unable_to_load_album": "アルバムを読み込めません",
|
"unable_to_load_album": "アルバムを読み込めません",
|
||||||
"unable_to_load_asset_activity": "アセットのアクティビティを読み込めません",
|
"unable_to_load_asset_activity": "アセットのアクティビティを読み込めません",
|
||||||
@@ -728,7 +659,6 @@
|
|||||||
"unable_to_submit_job": "ジョブを送信できません",
|
"unable_to_submit_job": "ジョブを送信できません",
|
||||||
"unable_to_trash_asset": "アセットをゴミ箱に移動できません",
|
"unable_to_trash_asset": "アセットをゴミ箱に移動できません",
|
||||||
"unable_to_unlink_account": "アカウントのリンクを解除できません",
|
"unable_to_unlink_account": "アカウントのリンクを解除できません",
|
||||||
"unable_to_unlink_motion_video": "モーションビデオのリンクを解除できません",
|
|
||||||
"unable_to_update_album_cover": "アルバムカバーを更新できません",
|
"unable_to_update_album_cover": "アルバムカバーを更新できません",
|
||||||
"unable_to_update_album_info": "アルバム情報を更新できません",
|
"unable_to_update_album_info": "アルバム情報を更新できません",
|
||||||
"unable_to_update_library": "ライブラリを更新できません",
|
"unable_to_update_library": "ライブラリを更新できません",
|
||||||
@@ -752,7 +682,6 @@
|
|||||||
"external": "外部",
|
"external": "外部",
|
||||||
"external_libraries": "外部ライブラリ",
|
"external_libraries": "外部ライブラリ",
|
||||||
"face_unassigned": "未割り当て",
|
"face_unassigned": "未割り当て",
|
||||||
"failed_to_load_assets": "アセットのロードに失敗しました",
|
|
||||||
"favorite": "お気に入り",
|
"favorite": "お気に入り",
|
||||||
"favorite_or_unfavorite_photo": "写真をお気に入りまたはお気に入り解除",
|
"favorite_or_unfavorite_photo": "写真をお気に入りまたはお気に入り解除",
|
||||||
"favorites": "お気に入り",
|
"favorites": "お気に入り",
|
||||||
@@ -773,13 +702,10 @@
|
|||||||
"get_help": "助けを求める",
|
"get_help": "助けを求める",
|
||||||
"getting_started": "はじめる",
|
"getting_started": "はじめる",
|
||||||
"go_back": "戻る",
|
"go_back": "戻る",
|
||||||
"go_to_folder": "フォルダへ",
|
|
||||||
"go_to_search": "検索へ",
|
"go_to_search": "検索へ",
|
||||||
"group_albums_by": "これでアルバムをグループ化…",
|
"group_albums_by": "これでアルバムをグループ化…",
|
||||||
"group_country": "国でグループ化",
|
|
||||||
"group_no": "グループ化なし",
|
"group_no": "グループ化なし",
|
||||||
"group_owner": "所有者でグループ化",
|
"group_owner": "所有者でグループ化",
|
||||||
"group_places_by": "グループ分け...",
|
|
||||||
"group_year": "年でグループ化",
|
"group_year": "年でグループ化",
|
||||||
"has_quota": "クォータ有り",
|
"has_quota": "クォータ有り",
|
||||||
"hi_user": "こんにちは、{name}( {email})さん",
|
"hi_user": "こんにちは、{name}( {email})さん",
|
||||||
@@ -812,7 +738,6 @@
|
|||||||
"include_shared_albums": "共有アルバムを含める",
|
"include_shared_albums": "共有アルバムを含める",
|
||||||
"include_shared_partner_assets": "パートナーがシェアしたアセットを含める",
|
"include_shared_partner_assets": "パートナーがシェアしたアセットを含める",
|
||||||
"individual_share": "1枚の共有",
|
"individual_share": "1枚の共有",
|
||||||
"individual_shares": "個人の共有",
|
|
||||||
"info": "情報",
|
"info": "情報",
|
||||||
"interval": {
|
"interval": {
|
||||||
"day_at_onepm": "毎日午後1時",
|
"day_at_onepm": "毎日午後1時",
|
||||||
@@ -826,8 +751,6 @@
|
|||||||
"jobs": "ジョブ",
|
"jobs": "ジョブ",
|
||||||
"keep": "保持",
|
"keep": "保持",
|
||||||
"keep_all": "全て保持",
|
"keep_all": "全て保持",
|
||||||
"keep_this_delete_others": "これを残してほかを削除する",
|
|
||||||
"kept_this_deleted_others": "このアセットを残して{count, plural, other {#件のアセット}}を削除する",
|
|
||||||
"keyboard_shortcuts": "キーボードショートカット",
|
"keyboard_shortcuts": "キーボードショートカット",
|
||||||
"language": "言語",
|
"language": "言語",
|
||||||
"language_setting_description": "優先言語を選択してください",
|
"language_setting_description": "優先言語を選択してください",
|
||||||
@@ -835,14 +758,12 @@
|
|||||||
"latest_version": "最新バージョン",
|
"latest_version": "最新バージョン",
|
||||||
"latitude": "緯度",
|
"latitude": "緯度",
|
||||||
"leave": "標高",
|
"leave": "標高",
|
||||||
"lens_model": "レンズモデル",
|
|
||||||
"let_others_respond": "他のユーザーの返信を許可する",
|
"let_others_respond": "他のユーザーの返信を許可する",
|
||||||
"level": "レベル",
|
"level": "レベル",
|
||||||
"library": "ライブラリ",
|
"library": "ライブラリ",
|
||||||
"library_options": "ライブラリ設定",
|
"library_options": "ライブラリ設定",
|
||||||
"light": "ライトモード",
|
"light": "ライトモード",
|
||||||
"like_deleted": "いいねが削除されました",
|
"like_deleted": "いいねが削除されました",
|
||||||
"link_motion_video": "モーションビデオのリンク",
|
|
||||||
"link_options": "リンクのオプション",
|
"link_options": "リンクのオプション",
|
||||||
"link_to_oauth": "OAuthへリンクする",
|
"link_to_oauth": "OAuthへリンクする",
|
||||||
"linked_oauth_account": "リンクされたOAuthアカウント",
|
"linked_oauth_account": "リンクされたOAuthアカウント",
|
||||||
@@ -861,8 +782,6 @@
|
|||||||
"look": "見た目",
|
"look": "見た目",
|
||||||
"loop_videos": "動画をループ",
|
"loop_videos": "動画をループ",
|
||||||
"loop_videos_description": "有効にすると詳細表示で自動的に動画がループします。",
|
"loop_videos_description": "有効にすると詳細表示で自動的に動画がループします。",
|
||||||
"main_branch_warning": "開発版を使っているようです。リリース版の使用を強く推奨します!",
|
|
||||||
"main_menu": "メインメニュー",
|
|
||||||
"make": "メーカー",
|
"make": "メーカー",
|
||||||
"manage_shared_links": "共有済みのリンクを管理",
|
"manage_shared_links": "共有済みのリンクを管理",
|
||||||
"manage_sharing_with_partners": "パートナーとの共有を管理します",
|
"manage_sharing_with_partners": "パートナーとの共有を管理します",
|
||||||
@@ -895,7 +814,6 @@
|
|||||||
"month": "月",
|
"month": "月",
|
||||||
"more": "もっと表示",
|
"more": "もっと表示",
|
||||||
"moved_to_trash": "ゴミ箱に移動しました",
|
"moved_to_trash": "ゴミ箱に移動しました",
|
||||||
"mute_memories": "メモリーのミュート",
|
|
||||||
"my_albums": "私のアルバム",
|
"my_albums": "私のアルバム",
|
||||||
"name": "名前",
|
"name": "名前",
|
||||||
"name_or_nickname": "名前またはニックネーム",
|
"name_or_nickname": "名前またはニックネーム",
|
||||||
@@ -925,14 +843,14 @@
|
|||||||
"no_results": "結果がありません",
|
"no_results": "結果がありません",
|
||||||
"no_results_description": "同義語やより一般的なキーワードを試してください",
|
"no_results_description": "同義語やより一般的なキーワードを試してください",
|
||||||
"no_shared_albums_message": "アルバムを作成して写真や動画を共有しましょう",
|
"no_shared_albums_message": "アルバムを作成して写真や動画を共有しましょう",
|
||||||
"not_in_any_album": "どのアルバムにも入っていない",
|
"not_in_any_album": "どのアルバムにも入っていません",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "注意: 以前にアップロードしたアセットにストレージラベルを適用するには以下を実行してください",
|
"note_apply_storage_label_to_previously_uploaded assets": "注意: 以前にアップロードしたアセットにストレージラベルを適用するには以下を実行してください",
|
||||||
|
"note_unlimited_quota": "注: 容量を無制限にするには0を入力してください",
|
||||||
"notes": "注意",
|
"notes": "注意",
|
||||||
"notification_toggle_setting_description": "メール通知を有効化",
|
"notification_toggle_setting_description": "メール通知を有効化",
|
||||||
"notifications": "通知",
|
"notifications": "通知",
|
||||||
"notifications_setting_description": "通知を管理します",
|
"notifications_setting_description": "通知を管理します",
|
||||||
"oauth": "OAuth",
|
"oauth": "OAuth",
|
||||||
"official_immich_resources": "公式Immichリソース",
|
|
||||||
"offline": "オフライン",
|
"offline": "オフライン",
|
||||||
"offline_paths": "オフラインのパス",
|
"offline_paths": "オフラインのパス",
|
||||||
"offline_paths_description": "これらの結果は、外部ライブラリの一部ではないファイルを手動で削除したことが原因である可能性があります。",
|
"offline_paths_description": "これらの結果は、外部ライブラリの一部ではないファイルを手動で削除したことが原因である可能性があります。",
|
||||||
@@ -990,7 +908,6 @@
|
|||||||
"permanently_deleted_asset": "アセットを完全に削除しました",
|
"permanently_deleted_asset": "アセットを完全に削除しました",
|
||||||
"permanently_deleted_assets_count": "{count, plural, one {#個} other {#個}}のアセットを完全に削除しました",
|
"permanently_deleted_assets_count": "{count, plural, one {#個} other {#個}}のアセットを完全に削除しました",
|
||||||
"person": "人物",
|
"person": "人物",
|
||||||
"person_birthdate": "{date}生まれ",
|
|
||||||
"person_hidden": "{name}{hidden, select, true { (非表示)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (非表示)} other {}}",
|
||||||
"photo_shared_all_users": "写真をすべてのユーザーと共有したか、共有するユーザーがいないようです。",
|
"photo_shared_all_users": "写真をすべてのユーザーと共有したか、共有するユーザーがいないようです。",
|
||||||
"photos": "写真",
|
"photos": "写真",
|
||||||
@@ -1000,7 +917,6 @@
|
|||||||
"pick_a_location": "場所を選択",
|
"pick_a_location": "場所を選択",
|
||||||
"place": "場所",
|
"place": "場所",
|
||||||
"places": "撮影場所",
|
"places": "撮影場所",
|
||||||
"places_count": "{count, plural, other {{count, number}箇所}}",
|
|
||||||
"play": "再生",
|
"play": "再生",
|
||||||
"play_memories": "メモリーを再生",
|
"play_memories": "メモリーを再生",
|
||||||
"play_motion_photo": "モーションビデオを再生",
|
"play_motion_photo": "モーションビデオを再生",
|
||||||
@@ -1060,17 +976,14 @@
|
|||||||
"reassigned_assets_to_new_person": "{count, plural, one {#個} other {#個}}のアセットを新しい人物に割り当てました",
|
"reassigned_assets_to_new_person": "{count, plural, one {#個} other {#個}}のアセットを新しい人物に割り当てました",
|
||||||
"reassing_hint": "選択されたアセットを既存の人物に割り当て",
|
"reassing_hint": "選択されたアセットを既存の人物に割り当て",
|
||||||
"recent": "最近",
|
"recent": "最近",
|
||||||
"recent-albums": "最近のアルバム",
|
|
||||||
"recent_searches": "最近の検索",
|
"recent_searches": "最近の検索",
|
||||||
"refresh": "更新",
|
"refresh": "更新",
|
||||||
"refresh_encoded_videos": "エンコードされた動画を更新",
|
"refresh_encoded_videos": "エンコードされた動画を更新",
|
||||||
"refresh_faces": "顔認識を更新",
|
|
||||||
"refresh_metadata": "メタデータを更新",
|
"refresh_metadata": "メタデータを更新",
|
||||||
"refresh_thumbnails": "サムネイルを更新",
|
"refresh_thumbnails": "サムネイルを更新",
|
||||||
"refreshed": "更新済",
|
"refreshed": "更新済",
|
||||||
"refreshes_every_file": "すべてのファイルを更新",
|
"refreshes_every_file": "すべてのファイルを更新",
|
||||||
"refreshing_encoded_video": "エンコードされた動画を更新中",
|
"refreshing_encoded_video": "エンコードされた動画を更新中",
|
||||||
"refreshing_faces": "顔認識を更新中",
|
|
||||||
"refreshing_metadata": "メタデータを更新中",
|
"refreshing_metadata": "メタデータを更新中",
|
||||||
"regenerating_thumbnails": "サムネイルを再生成中",
|
"regenerating_thumbnails": "サムネイルを再生成中",
|
||||||
"remove": "削除",
|
"remove": "削除",
|
||||||
@@ -1082,16 +995,11 @@
|
|||||||
"remove_from_album": "アルバムから削除",
|
"remove_from_album": "アルバムから削除",
|
||||||
"remove_from_favorites": "お気に入りから削除",
|
"remove_from_favorites": "お気に入りから削除",
|
||||||
"remove_from_shared_link": "共有リンクから削除",
|
"remove_from_shared_link": "共有リンクから削除",
|
||||||
"remove_memory": "メモリーの削除",
|
|
||||||
"remove_photo_from_memory": "メモリーから写真を削除",
|
|
||||||
"remove_url": "URLの削除",
|
|
||||||
"remove_user": "ユーザーを削除",
|
"remove_user": "ユーザーを削除",
|
||||||
"removed_api_key": "削除されたAPI キー: {name}",
|
"removed_api_key": "削除されたAPI キー: {name}",
|
||||||
"removed_from_archive": "アーカイブから削除されました",
|
"removed_from_archive": "アーカイブから削除されました",
|
||||||
"removed_from_favorites": "お気に入りから削除しました",
|
"removed_from_favorites": "お気に入りから削除しました",
|
||||||
"removed_from_favorites_count": "{count, plural, other {#項目}}お気に入りから削除しました",
|
"removed_from_favorites_count": "{count, plural, other {#項目}}お気に入りから削除しました",
|
||||||
"removed_memory": "削除されたメモリー",
|
|
||||||
"removed_photo_from_memory": "メモリーから削除された写真",
|
|
||||||
"removed_tagged_assets": "{count, plural, one {#個のアセット} other {#個のアセット}}からタグを削除しました",
|
"removed_tagged_assets": "{count, plural, one {#個のアセット} other {#個のアセット}}からタグを削除しました",
|
||||||
"rename": "リネーム",
|
"rename": "リネーム",
|
||||||
"repair": "修復",
|
"repair": "修復",
|
||||||
@@ -1100,7 +1008,6 @@
|
|||||||
"repository": "リポジトリ",
|
"repository": "リポジトリ",
|
||||||
"require_password": "パスワードを要求",
|
"require_password": "パスワードを要求",
|
||||||
"require_user_to_change_password_on_first_login": "ユーザーに初回ログイン時にパスワードの変更を要求する",
|
"require_user_to_change_password_on_first_login": "ユーザーに初回ログイン時にパスワードの変更を要求する",
|
||||||
"rescan": "再スキャン",
|
|
||||||
"reset": "リセット",
|
"reset": "リセット",
|
||||||
"reset_password": "パスワードをリセット",
|
"reset_password": "パスワードをリセット",
|
||||||
"reset_people_visibility": "人物の非表示設定をリセット",
|
"reset_people_visibility": "人物の非表示設定をリセット",
|
||||||
@@ -1123,29 +1030,22 @@
|
|||||||
"saved_settings": "設定を保存しました",
|
"saved_settings": "設定を保存しました",
|
||||||
"say_something": "何か書き込みましょう",
|
"say_something": "何か書き込みましょう",
|
||||||
"scan_all_libraries": "全てのライブラリをスキャン",
|
"scan_all_libraries": "全てのライブラリをスキャン",
|
||||||
"scan_library": "スキャン",
|
|
||||||
"scan_settings": "スキャン設定",
|
"scan_settings": "スキャン設定",
|
||||||
"scanning_for_album": "アルバムをスキャン中…",
|
"scanning_for_album": "アルバムをスキャン中…",
|
||||||
"search": "検索",
|
"search": "検索",
|
||||||
"search_albums": "アルバムを検索",
|
"search_albums": "アルバムを検索",
|
||||||
"search_by_context": "状況で検索",
|
"search_by_context": "状況で検索",
|
||||||
"search_by_description": "概要で検索",
|
|
||||||
"search_by_description_example": "サパでハイキングした日",
|
|
||||||
"search_by_filename": "ファイル名もしくは拡張子で検索",
|
"search_by_filename": "ファイル名もしくは拡張子で検索",
|
||||||
"search_by_filename_example": "例: IMG_1234.JPG もしくは PNG",
|
"search_by_filename_example": "例: IMG_1234.JPG もしくは PNG",
|
||||||
"search_camera_make": "カメラメーカーを検索…",
|
"search_camera_make": "カメラメーカーを検索…",
|
||||||
"search_camera_model": "カメラのモデルを検索…",
|
"search_camera_model": "カメラのモデルを検索…",
|
||||||
"search_city": "市町村を検索…",
|
"search_city": "市町村を検索…",
|
||||||
"search_country": "国を検索…",
|
"search_country": "国を検索…",
|
||||||
"search_for": "検索",
|
|
||||||
"search_for_existing_person": "既存の人物を検索",
|
"search_for_existing_person": "既存の人物を検索",
|
||||||
"search_no_people": "人物がいません",
|
"search_no_people": "人物がいません",
|
||||||
"search_no_people_named": "「{name}」という名前の人物がいません",
|
"search_no_people_named": "「{name}」という名前の人物がいません",
|
||||||
"search_options": "検索オプション",
|
|
||||||
"search_people": "人物を検索",
|
"search_people": "人物を検索",
|
||||||
"search_places": "場所を検索",
|
"search_places": "場所を検索",
|
||||||
"search_rating": "レートで検索...",
|
|
||||||
"search_settings": "検索設定",
|
|
||||||
"search_state": "都道府県を検索…",
|
"search_state": "都道府県を検索…",
|
||||||
"search_tags": "タグを検索...",
|
"search_tags": "タグを検索...",
|
||||||
"search_timezone": "タイムゾーンを検索…",
|
"search_timezone": "タイムゾーンを検索…",
|
||||||
@@ -1154,7 +1054,6 @@
|
|||||||
"searching_locales": "ロケールを検索…",
|
"searching_locales": "ロケールを検索…",
|
||||||
"second": "秒",
|
"second": "秒",
|
||||||
"see_all_people": "全ての人物を見る",
|
"see_all_people": "全ての人物を見る",
|
||||||
"select": "選択",
|
|
||||||
"select_album_cover": "アルバムカバーを選択",
|
"select_album_cover": "アルバムカバーを選択",
|
||||||
"select_all": "全て選択",
|
"select_all": "全て選択",
|
||||||
"select_all_duplicates": "全ての重複を選択",
|
"select_all_duplicates": "全ての重複を選択",
|
||||||
@@ -1177,7 +1076,6 @@
|
|||||||
"server_version": "サーバーバージョン",
|
"server_version": "サーバーバージョン",
|
||||||
"set": "設定",
|
"set": "設定",
|
||||||
"set_as_album_cover": "アルバムカバーとして設定",
|
"set_as_album_cover": "アルバムカバーとして設定",
|
||||||
"set_as_featured_photo": "人物写真に設定",
|
|
||||||
"set_as_profile_picture": "プロフィール画像として設定",
|
"set_as_profile_picture": "プロフィール画像として設定",
|
||||||
"set_date_of_birth": "生年月日を設定",
|
"set_date_of_birth": "生年月日を設定",
|
||||||
"set_profile_picture": "プロフィール画像を設定",
|
"set_profile_picture": "プロフィール画像を設定",
|
||||||
@@ -1192,7 +1090,6 @@
|
|||||||
"shared_from_partner": "{partner} による写真",
|
"shared_from_partner": "{partner} による写真",
|
||||||
"shared_link_options": "共有リンクのオプション",
|
"shared_link_options": "共有リンクのオプション",
|
||||||
"shared_links": "共有リンク",
|
"shared_links": "共有リンク",
|
||||||
"shared_links_description": "写真や動画をリンクで共有",
|
|
||||||
"shared_photos_and_videos_count": "{assetCount, plural, other {#個の共有された写真と動画}}",
|
"shared_photos_and_videos_count": "{assetCount, plural, other {#個の共有された写真と動画}}",
|
||||||
"shared_with_partner": "{partner} と共有しました",
|
"shared_with_partner": "{partner} と共有しました",
|
||||||
"sharing": "共有",
|
"sharing": "共有",
|
||||||
@@ -1215,8 +1112,6 @@
|
|||||||
"show_person_options": "人物設定を表示",
|
"show_person_options": "人物設定を表示",
|
||||||
"show_progress_bar": "プログレスバーを表示",
|
"show_progress_bar": "プログレスバーを表示",
|
||||||
"show_search_options": "検索オプションを表示",
|
"show_search_options": "検索オプションを表示",
|
||||||
"show_shared_links": "共有リンクを表示",
|
|
||||||
"show_slideshow_transition": "スライドショーのトランジションを表示",
|
|
||||||
"show_supporter_badge": "サポーターバッジ",
|
"show_supporter_badge": "サポーターバッジ",
|
||||||
"show_supporter_badge_description": "サポーターバッジを表示",
|
"show_supporter_badge_description": "サポーターバッジを表示",
|
||||||
"shuffle": "ランダム",
|
"shuffle": "ランダム",
|
||||||
@@ -1226,8 +1121,6 @@
|
|||||||
"sign_up": "登録",
|
"sign_up": "登録",
|
||||||
"size": "サイズ",
|
"size": "サイズ",
|
||||||
"skip_to_content": "コンテンツへスキップ",
|
"skip_to_content": "コンテンツへスキップ",
|
||||||
"skip_to_folders": "フォルダへスキップ",
|
|
||||||
"skip_to_tags": "タグへスキップ",
|
|
||||||
"slideshow": "スライドショー",
|
"slideshow": "スライドショー",
|
||||||
"slideshow_settings": "スライドショー設定",
|
"slideshow_settings": "スライドショー設定",
|
||||||
"sort_albums_by": "この順序でアルバムをソート…",
|
"sort_albums_by": "この順序でアルバムをソート…",
|
||||||
@@ -1235,7 +1128,6 @@
|
|||||||
"sort_items": "アイテムの数",
|
"sort_items": "アイテムの数",
|
||||||
"sort_modified": "変更日",
|
"sort_modified": "変更日",
|
||||||
"sort_oldest": "古い写真",
|
"sort_oldest": "古い写真",
|
||||||
"sort_people_by_similarity": "似ている順に人物を並び替える",
|
|
||||||
"sort_recent": "最新の写真",
|
"sort_recent": "最新の写真",
|
||||||
"sort_title": "タイトル",
|
"sort_title": "タイトル",
|
||||||
"source": "ソース",
|
"source": "ソース",
|
||||||
@@ -1259,17 +1151,12 @@
|
|||||||
"submit": "送信",
|
"submit": "送信",
|
||||||
"suggestions": "ユーザーリスト",
|
"suggestions": "ユーザーリスト",
|
||||||
"sunrise_on_the_beach": "海岸の日の出",
|
"sunrise_on_the_beach": "海岸の日の出",
|
||||||
"support": "サポート",
|
|
||||||
"support_and_feedback": "サポートとフィードバック",
|
|
||||||
"support_third_party_description": "Immichのインストールはサードパーティーによってパッケージ化されています。遭遇した問題はそのパッケージに起因している可能性があるので以下のリンクを使って最初にそのパッケージに問題を提起してください。",
|
|
||||||
"swap_merge_direction": "統合する方向を入れ替え",
|
"swap_merge_direction": "統合する方向を入れ替え",
|
||||||
"sync": "同期",
|
"sync": "同期",
|
||||||
"tag": "タグ付けする",
|
"tag": "タグ付けする",
|
||||||
"tag_assets": "アセットにタグ付けする",
|
"tag_assets": "アセットにタグ付けする",
|
||||||
"tag_created": "タグ: {tag} を作成しました",
|
"tag_created": "タグ: {tag} を作成しました",
|
||||||
"tag_feature_description": "意味を持たせたタグトでグループ化して写真と動画を閲覧する",
|
|
||||||
"tag_not_found_question": "タグが見つかりませんか? <link>こちら</link>からタグを作成できます",
|
"tag_not_found_question": "タグが見つかりませんか? <link>こちら</link>からタグを作成できます",
|
||||||
"tag_people": "人物タグ",
|
|
||||||
"tag_updated": "タグ: {tag} を更新しました",
|
"tag_updated": "タグ: {tag} を更新しました",
|
||||||
"tagged_assets": "{count, plural, one {#個のアセット} other {#個のアセット}}をタグ付けしました",
|
"tagged_assets": "{count, plural, one {#個のアセット} other {#個のアセット}}をタグ付けしました",
|
||||||
"tags": "タグ",
|
"tags": "タグ",
|
||||||
@@ -1278,19 +1165,15 @@
|
|||||||
"theme_selection": "テーマ選択",
|
"theme_selection": "テーマ選択",
|
||||||
"theme_selection_description": "ブラウザのシステム設定に基づいてテーマを明色または暗色に自動的に設定します",
|
"theme_selection_description": "ブラウザのシステム設定に基づいてテーマを明色または暗色に自動的に設定します",
|
||||||
"they_will_be_merged_together": "これらは一緒に統合されます",
|
"they_will_be_merged_together": "これらは一緒に統合されます",
|
||||||
"third_party_resources": "サードパーティーリソース",
|
|
||||||
"time_based_memories": "時間によるメモリー",
|
"time_based_memories": "時間によるメモリー",
|
||||||
"timeline": "タイムライン",
|
|
||||||
"timezone": "タイムゾーン",
|
"timezone": "タイムゾーン",
|
||||||
"to_archive": "アーカイブ",
|
"to_archive": "アーカイブ",
|
||||||
"to_change_password": "パスワードを変更",
|
"to_change_password": "パスワードを変更",
|
||||||
"to_favorite": "お気に入り",
|
"to_favorite": "お気に入り",
|
||||||
"to_login": "ログイン",
|
"to_login": "ログイン",
|
||||||
"to_parent": "上位の階層へ",
|
|
||||||
"to_trash": "ゴミ箱",
|
"to_trash": "ゴミ箱",
|
||||||
"toggle_settings": "設定をトグル",
|
"toggle_settings": "設定をトグル",
|
||||||
"toggle_theme": "ダークテーマを切り替え",
|
"toggle_theme": "ダークテーマを切り替え",
|
||||||
"total": "合計",
|
|
||||||
"total_usage": "総使用量",
|
"total_usage": "総使用量",
|
||||||
"trash": "ゴミ箱",
|
"trash": "ゴミ箱",
|
||||||
"trash_all": "全て削除",
|
"trash_all": "全て削除",
|
||||||
@@ -1304,13 +1187,10 @@
|
|||||||
"unfavorite": "お気に入りから外す",
|
"unfavorite": "お気に入りから外す",
|
||||||
"unhide_person": "人物の非表示を解除",
|
"unhide_person": "人物の非表示を解除",
|
||||||
"unknown": "不明",
|
"unknown": "不明",
|
||||||
"unknown_country": "不明な国",
|
|
||||||
"unknown_year": "不明な年",
|
"unknown_year": "不明な年",
|
||||||
"unlimited": "無制限",
|
"unlimited": "無制限",
|
||||||
"unlink_motion_video": "モーションビデオのリンクを解除",
|
|
||||||
"unlink_oauth": "OAuthのリンクを解除",
|
"unlink_oauth": "OAuthのリンクを解除",
|
||||||
"unlinked_oauth_account": "リンクが解除されたOAuthアカウント",
|
"unlinked_oauth_account": "リンクが解除されたOAuthアカウント",
|
||||||
"unmute_memories": "メモリーのミュートを解除",
|
|
||||||
"unnamed_album": "無名のアルバム",
|
"unnamed_album": "無名のアルバム",
|
||||||
"unnamed_album_delete_confirmation": "本当にこのアルバムを削除しますか?",
|
"unnamed_album_delete_confirmation": "本当にこのアルバムを削除しますか?",
|
||||||
"unnamed_share": "無名の共有",
|
"unnamed_share": "無名の共有",
|
||||||
@@ -1351,9 +1231,7 @@
|
|||||||
"variables": "変数",
|
"variables": "変数",
|
||||||
"version": "バージョン",
|
"version": "バージョン",
|
||||||
"version_announcement_closing": "あなたの友人、Alex",
|
"version_announcement_closing": "あなたの友人、Alex",
|
||||||
"version_announcement_message": "こんにちは! 新しいバージョンのImmichがリリースされました。特にWatchTowerやImmichインスタンスを自動的に更新する仕組みを設けている場合は<link>リリースノート</link>をよく読んで設定が最新のものになっているか確認してください。",
|
"version_announcement_message": "こんにちは、親愛なる皆様へ。アプリの新しいバージョンがありますので、構成の不整合を防ぐために<link>リリースノート</link>にアクセスし、<code>docker-compose.yml</code>、及び<code>.cnv</code>の設定が最新か確認してください。特に自動的にアプリの更新を制御するWatchTowerやその他システムを利用している場合に当てはまります。",
|
||||||
"version_history": "バージョン履歴",
|
|
||||||
"version_history_item": "{date}に{version}をインストール",
|
|
||||||
"video": "動画",
|
"video": "動画",
|
||||||
"video_hover_setting": "ホバー時にサムネイルで動画を再生",
|
"video_hover_setting": "ホバー時にサムネイルで動画を再生",
|
||||||
"video_hover_setting_description": "マウスが項目の上にあるときに動画のサムネイルを再生します。無効時でも再生アイコンにカーソルを合わせると再生を開始できます。",
|
"video_hover_setting_description": "マウスが項目の上にあるときに動画のサムネイルを再生します。無効時でも再生アイコンにカーソルを合わせると再生を開始できます。",
|
||||||
@@ -1364,19 +1242,16 @@
|
|||||||
"view_all": "すべて見る",
|
"view_all": "すべて見る",
|
||||||
"view_all_users": "全てのユーザーを確認する",
|
"view_all_users": "全てのユーザーを確認する",
|
||||||
"view_in_timeline": "タイムラインで見る",
|
"view_in_timeline": "タイムラインで見る",
|
||||||
"view_link": "リンクを見る",
|
|
||||||
"view_links": "リンクを確認する",
|
"view_links": "リンクを確認する",
|
||||||
"view_name": "分類",
|
|
||||||
"view_next_asset": "次のアセットを見る",
|
"view_next_asset": "次のアセットを見る",
|
||||||
"view_previous_asset": "前のアセットを見る",
|
"view_previous_asset": "前のアセットを見る",
|
||||||
"view_qr_code": "QRコードを見る",
|
|
||||||
"view_stack": "ビュースタック",
|
"view_stack": "ビュースタック",
|
||||||
"visibility_changed": "{count, plural, one {#人} other {#人}}の人物の非表示設定が変更されました",
|
"visibility_changed": "{count, plural, one {#人} other {#人}}の人物の非表示設定が変更されました",
|
||||||
"waiting": "待機中",
|
"waiting": "待機中",
|
||||||
"warning": "警告",
|
"warning": "警告",
|
||||||
"week": "週",
|
"week": "週",
|
||||||
"welcome": "ようこそ",
|
"welcome": "ようこそ",
|
||||||
"welcome_to_immich": "Immichにようこそ",
|
"welcome_to_immich": "immichにようこそ",
|
||||||
"year": "年",
|
"year": "年",
|
||||||
"years_ago": "{years, plural, one {#年} other {#年}}前",
|
"years_ago": "{years, plural, one {#年} other {#年}}前",
|
||||||
"yes": "はい",
|
"yes": "はい",
|
||||||
|
|||||||
-165
@@ -1,165 +0,0 @@
|
|||||||
{
|
|
||||||
"about": "შესახებ",
|
|
||||||
"account": "ანგარიში",
|
|
||||||
"account_settings": "ანგარიშის პარამეტრები",
|
|
||||||
"acknowledge": "მიღება",
|
|
||||||
"action": "ქმედება",
|
|
||||||
"actions": "ქმედებები",
|
|
||||||
"active": "აქტიური",
|
|
||||||
"activity": "აქტივობა",
|
|
||||||
"add": "დამატება",
|
|
||||||
"add_a_description": "დაამატე აღწერა",
|
|
||||||
"add_a_location": "დაამატე ადგილი",
|
|
||||||
"add_a_name": "დაამატე სახელი",
|
|
||||||
"add_a_title": "დაასათაურე",
|
|
||||||
"add_import_path": "დაამატე საიმპორტო მისამართი",
|
|
||||||
"add_location": "დაამატე ადგილი",
|
|
||||||
"add_more_users": "დაამატე მომხმარებლები",
|
|
||||||
"add_partner": "დაამატე პარტნიორი",
|
|
||||||
"add_path": "დაამატე მისამართი",
|
|
||||||
"add_photos": "დაამატე ფოტოები",
|
|
||||||
"add_to_album": "დაამატე ალბომში",
|
|
||||||
"add_to_shared_album": "დაამატე საზიარო ალბომში",
|
|
||||||
"add_url": "დაამატე URL",
|
|
||||||
"added_to_archive": "დაარქივდა",
|
|
||||||
"added_to_favorites": "დაამატე რჩეულებში",
|
|
||||||
"added_to_favorites_count": "{count, number} დაემატა რჩეულებში",
|
|
||||||
"admin": {
|
|
||||||
"authentication_settings": "ავთენტიკაციის პარამეტრები",
|
|
||||||
"authentication_settings_description": "პაროლის, OAuth-ის და სხვა ავტენთიფიკაციის პარამეტრების მართვა",
|
|
||||||
"authentication_settings_disable_all": "ნამდვილად გინდა ავტორიზაციის ყველა მეთოდის გამორთვა? ავტორიზაციას ვეღარანაირად შეძლებ.",
|
|
||||||
"authentication_settings_reenable": "რეაქტივაციისთვის, გამოიყენე <link>სერვერის ბრძანება</link>.",
|
|
||||||
"background_task_job": "ფონური დავალებები",
|
|
||||||
"backup_database": "შექმენი სარეზერვო ასლი",
|
|
||||||
"backup_database_enable_description": "ჩართე სარეზერვო ასლების ფუნქცია",
|
|
||||||
"backup_keep_last_amount": "შესანახი სარეზერვო ასლების რაოდენობა",
|
|
||||||
"backup_settings": "სარეზერვო ასლების პარამეტრები",
|
|
||||||
"backup_settings_description": "მონაცემთა ბაზის სარეზერვო ასლების პარამეტრების მართვა",
|
|
||||||
"check_all": "შეამოწმე ყველა",
|
|
||||||
"cleanup": "გასუფთავება",
|
|
||||||
"confirm_delete_library": "ნამდვილად გინდა {library} ბიბლიოთეკის წაშლა?",
|
|
||||||
"confirm_email_below": "დასადასტურებლად, ქვემოთ აკრიფე \"{email}\"",
|
|
||||||
"confirm_user_password_reset": "ნამდვილად გინდა {user}-(ი)ს პაროლის დარესეტება?",
|
|
||||||
"disable_login": "გამორთე ავტორიზაცია",
|
|
||||||
"external_library_management": "გარე ბიბლიოთეკების მართვა",
|
|
||||||
"face_detection": "სახის ამოცნობა",
|
|
||||||
"image_format": "ფორმატი",
|
|
||||||
"image_fullsize_title": "სრული ზომის გამოსახულების პარამეტრები",
|
|
||||||
"image_quality": "ხარისხი",
|
|
||||||
"image_resolution": "გაფართოება",
|
|
||||||
"image_settings": "გამოსახულების პარამეტრები",
|
|
||||||
"image_settings_description": "გენერირებული ფოტოების ხარისხისა და რეზოლუციის მართვა",
|
|
||||||
"image_thumbnail_description": "მინიატურა მეტაინფორმაციის გარეშე, რომელიც ფოტოები ჯგუფურად თვალიერებისას გამოიყენება(მაგ. მთავარ თაიმლაინზე)",
|
|
||||||
"image_thumbnail_quality_description": "მინიატურის ხარისხი 1-დან 100-მდე. დიდი რიცხვი შეესაბამება უკეთეს ხარისხს, თუმცა, უფრო დიდ ფაილებს და აპლიკაციის შესაძლო შენელებას.",
|
|
||||||
"image_thumbnail_title": "მინიატურის პარამეტრები",
|
|
||||||
"library_created": "შეიქმნა ბიბლიოთეკა: {library}",
|
|
||||||
"library_deleted": "ბიბლიოთეკა წაიშალა",
|
|
||||||
"library_import_path_description": "აირჩიე დასაიმპორტებელი საქაღალდე. ფოტოები და ვიდეოები მოიძებნება ამ საქაღალდესა და მასში არსებულ საქაღალდეებში.",
|
|
||||||
"library_settings_description": "გარე ბიბლიოთეკების პარამეტრების მართვა",
|
|
||||||
"logging_settings": "ჟურნალი",
|
|
||||||
"map_settings": "რუკა",
|
|
||||||
"migration_job": "მიგრაცია",
|
|
||||||
"oauth_scope": "დიაპაზონი",
|
|
||||||
"oauth_settings": "OAuth",
|
|
||||||
"template_email_preview": "მინიატურა",
|
|
||||||
"transcoding_acceleration_vaapi": "VAAPI",
|
|
||||||
"transcoding_threads": "ნაკადები",
|
|
||||||
"transcoding_tone_mapping": "ტონების ასახვა"
|
|
||||||
},
|
|
||||||
"administration": "ადმინისტრაცია",
|
|
||||||
"advanced": "დამატებით",
|
|
||||||
"albums": "ალბომები",
|
|
||||||
"all": "ყველა",
|
|
||||||
"anti_clockwise": "საათის ისრის საწინააღმდეგო",
|
|
||||||
"archive": "არქივი",
|
|
||||||
"asset_hashing": "დაჰეშვა.…",
|
|
||||||
"asset_skipped": "გამოტოვებულია",
|
|
||||||
"asset_uploaded": "ატვირთულია",
|
|
||||||
"asset_uploading": "მიმდინარეობს ატვირთვა…",
|
|
||||||
"assets": "ობიექტები",
|
|
||||||
"back": "უკან",
|
|
||||||
"backward": "უკან გადასვლა",
|
|
||||||
"build": "აგება",
|
|
||||||
"camera": "კამერა",
|
|
||||||
"cancel": "გაუქმება",
|
|
||||||
"city": "ქალაქი",
|
|
||||||
"clear": "გასუფთავება",
|
|
||||||
"clockwise": "საათის ისრის მიმართულებით",
|
|
||||||
"close": "დახურვა",
|
|
||||||
"collapse": "აკეცვა",
|
|
||||||
"color": "ფერი",
|
|
||||||
"confirm": "დასტური",
|
|
||||||
"contain": "შეიცავს",
|
|
||||||
"context": "კონტექსტი",
|
|
||||||
"continue": "გაგრძელება",
|
|
||||||
"country": "ქვეყანა",
|
|
||||||
"cover": "ყდა",
|
|
||||||
"covers": "ყდები",
|
|
||||||
"create": "შექმნა",
|
|
||||||
"created": "შექმნილია",
|
|
||||||
"dark": "მუქი",
|
|
||||||
"day": "დღე",
|
|
||||||
"delete": "წაშლა",
|
|
||||||
"description": "აღწერა",
|
|
||||||
"details": "დეტალები",
|
|
||||||
"direction": "მიმართულება",
|
|
||||||
"disabled": "გათიშულია",
|
|
||||||
"discord": "Discord",
|
|
||||||
"discover": "აღმოჩენა",
|
|
||||||
"documentation": "დოკუმენტაცია",
|
|
||||||
"done": "მზადაა",
|
|
||||||
"download": "გადმოწერა",
|
|
||||||
"download_settings": "გადმოწერა",
|
|
||||||
"downloading": "მიმდინარეობს გადმოწერა",
|
|
||||||
"duplicates": "დუბლიკატები",
|
|
||||||
"duration": "ხანგრძლივობა",
|
|
||||||
"edit": "ჩასწორება",
|
|
||||||
"edited": "ჩასწორებულია",
|
|
||||||
"editor": "რედაქტორი",
|
|
||||||
"editor_crop_tool_h2_rotation": "ტრიალი",
|
|
||||||
"email": "ელფოსტა",
|
|
||||||
"enable": "ჩართვა",
|
|
||||||
"enabled": "ჩართულია",
|
|
||||||
"error": "შეცდომა",
|
|
||||||
"exif": "Exif",
|
|
||||||
"expired": "ვადაამოწურულია",
|
|
||||||
"explore": "დათვალიერება",
|
|
||||||
"explorer": "გამცილებელი",
|
|
||||||
"export": "გატანა",
|
|
||||||
"extension": "გაფართოება",
|
|
||||||
"external": "გარე",
|
|
||||||
"face_unassigned": "მიუნიჭებელი",
|
|
||||||
"favorite": "რჩეული",
|
|
||||||
"favorites": "რჩეულები",
|
|
||||||
"features": "თვისებები",
|
|
||||||
"filename": "ფაილის სახელი",
|
|
||||||
"filetype": "ფაილის ტიპი",
|
|
||||||
"folders": "საქაღალდეები",
|
|
||||||
"forward": "წინ",
|
|
||||||
"general": "ზოგადი",
|
|
||||||
"host": "ჰოსტი",
|
|
||||||
"hour": "საათი",
|
|
||||||
"image": "გამოსახულება",
|
|
||||||
"info": "ინფორმაცია",
|
|
||||||
"jobs": "დავალებები",
|
|
||||||
"keep": "შენარჩუნება",
|
|
||||||
"language": "ენა",
|
|
||||||
"latitude": "განედი",
|
|
||||||
"leave": "გასვლა",
|
|
||||||
"level": "დონე",
|
|
||||||
"library": "ბიბლიოთეკა",
|
|
||||||
"light": "ღია",
|
|
||||||
"list": "სია",
|
|
||||||
"loading": "ჩატვირთვა",
|
|
||||||
"login": "შესვლა",
|
|
||||||
"longitude": "გრძედი",
|
|
||||||
"look": "შეხედვა",
|
|
||||||
"make": "მწარმოებელი",
|
|
||||||
"map": "რუკა",
|
|
||||||
"matches": "დამთხვევები",
|
|
||||||
"memories": "მოგონებები",
|
|
||||||
"memory": "მეხსიერება",
|
|
||||||
"menu": "მენიუ",
|
|
||||||
"merge": "შერწყმა",
|
|
||||||
"minimize": "დაპატარავება"
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
{}
|
|
||||||
@@ -121,6 +121,7 @@
|
|||||||
"no_pattern_added": "",
|
"no_pattern_added": "",
|
||||||
"note_apply_storage_label_previous_assets": "",
|
"note_apply_storage_label_previous_assets": "",
|
||||||
"note_cannot_be_changed_later": "",
|
"note_cannot_be_changed_later": "",
|
||||||
|
"note_unlimited_quota": "",
|
||||||
"notification_email_from_address": "",
|
"notification_email_from_address": "",
|
||||||
"notification_email_from_address_description": "",
|
"notification_email_from_address_description": "",
|
||||||
"notification_email_host_description": "",
|
"notification_email_host_description": "",
|
||||||
@@ -620,6 +621,7 @@
|
|||||||
"no_shared_albums_message": "",
|
"no_shared_albums_message": "",
|
||||||
"not_in_any_album": "",
|
"not_in_any_album": "",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "",
|
"note_apply_storage_label_to_previously_uploaded assets": "",
|
||||||
|
"note_unlimited_quota": "",
|
||||||
"notes": "",
|
"notes": "",
|
||||||
"notification_toggle_setting_description": "",
|
"notification_toggle_setting_description": "",
|
||||||
"notifications": "",
|
"notifications": "",
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
{}
|
|
||||||
+10
-70
@@ -41,7 +41,6 @@
|
|||||||
"backup_settings": "백업 설정",
|
"backup_settings": "백업 설정",
|
||||||
"backup_settings_description": "데이터베이스 백업 설정 관리",
|
"backup_settings_description": "데이터베이스 백업 설정 관리",
|
||||||
"check_all": "모두 확인",
|
"check_all": "모두 확인",
|
||||||
"cleanup": "정리",
|
|
||||||
"cleared_jobs": "작업 중단: {job}",
|
"cleared_jobs": "작업 중단: {job}",
|
||||||
"config_set_by_file": "현재 설정은 구성 파일에 의해 관리됩니다.",
|
"config_set_by_file": "현재 설정은 구성 파일에 의해 관리됩니다.",
|
||||||
"confirm_delete_library": "{library} 라이브러리를 삭제하시겠습니까?",
|
"confirm_delete_library": "{library} 라이브러리를 삭제하시겠습니까?",
|
||||||
@@ -66,11 +65,6 @@
|
|||||||
"forcing_refresh_library_files": "라이브러리의 모든 파일을 다시 스캔하는 중...",
|
"forcing_refresh_library_files": "라이브러리의 모든 파일을 다시 스캔하는 중...",
|
||||||
"image_format": "형식",
|
"image_format": "형식",
|
||||||
"image_format_description": "WebP는 JPEG보다 파일 크기가 작지만 변환에 더 많은 시간이 소요됩니다.",
|
"image_format_description": "WebP는 JPEG보다 파일 크기가 작지만 변환에 더 많은 시간이 소요됩니다.",
|
||||||
"image_fullsize_description": "메타데이터가 제거된 풀사이즈 이미지 (확대 시 사용)",
|
|
||||||
"image_fullsize_enabled": "풀사이즈 이미지 생성 활성화",
|
|
||||||
"image_fullsize_enabled_description": "웹 친화적이지 않은 형식의 경우 풀사이즈 이미지를 생성합니다. '임베드된 미리보기 선호'를 활성화하면 변환 없이 임베드된 미리보기가 바로 사용됩니다. JPEG와 같은 웹 친화적인 형식에는 영향을 미치지 않습니다.",
|
|
||||||
"image_fullsize_quality_description": "풀사이즈 이미지 품질은 1~100입니다. 높을수록 좋지만 파일이 커집니다.",
|
|
||||||
"image_fullsize_title": "풀사이즈 이미지 설정",
|
|
||||||
"image_prefer_embedded_preview": "포함된 미리 보기 선호",
|
"image_prefer_embedded_preview": "포함된 미리 보기 선호",
|
||||||
"image_prefer_embedded_preview_setting_description": "가능한 경우 이미지 처리 시 RAW 사진에 포함된 미리 보기를 사용합니다. 포함된 미리 보기는 카메라에서 생성된 것으로 카메라마다 품질이 다릅니다. 일부 이미지의 경우 더 정확한 색상이 표현될 수 있지만 반대로 더 많은 아티팩트가 있을 수도 있습니다.",
|
"image_prefer_embedded_preview_setting_description": "가능한 경우 이미지 처리 시 RAW 사진에 포함된 미리 보기를 사용합니다. 포함된 미리 보기는 카메라에서 생성된 것으로 카메라마다 품질이 다릅니다. 일부 이미지의 경우 더 정확한 색상이 표현될 수 있지만 반대로 더 많은 아티팩트가 있을 수도 있습니다.",
|
||||||
"image_prefer_wide_gamut": "넓은 색 영역 선호",
|
"image_prefer_wide_gamut": "넓은 색 영역 선호",
|
||||||
@@ -102,7 +96,7 @@
|
|||||||
"library_scanning_enable_description": "주기적인 라이브러리 스캔 활성화",
|
"library_scanning_enable_description": "주기적인 라이브러리 스캔 활성화",
|
||||||
"library_settings": "외부 라이브러리",
|
"library_settings": "외부 라이브러리",
|
||||||
"library_settings_description": "외부 라이브러리 설정 관리",
|
"library_settings_description": "외부 라이브러리 설정 관리",
|
||||||
"library_tasks_description": "외부 라이브러리에서 새 자산 및/또는 변경된 자산을 검색합니다",
|
"library_tasks_description": "라이브러리 구성 및 확인 작업 수행",
|
||||||
"library_watching_enable_description": "외부 라이브러리의 파일 변경 감시",
|
"library_watching_enable_description": "외부 라이브러리의 파일 변경 감시",
|
||||||
"library_watching_settings": "라이브러리 감시 (실험 기능)",
|
"library_watching_settings": "라이브러리 감시 (실험 기능)",
|
||||||
"library_watching_settings_description": "파일 변겅을 자동으로 감지",
|
"library_watching_settings_description": "파일 변겅을 자동으로 감지",
|
||||||
@@ -153,8 +147,6 @@
|
|||||||
"map_settings": "지도",
|
"map_settings": "지도",
|
||||||
"map_settings_description": "지도 설정 관리",
|
"map_settings_description": "지도 설정 관리",
|
||||||
"map_style_description": "지도 테마 style.json URL",
|
"map_style_description": "지도 테마 style.json URL",
|
||||||
"memory_cleanup_job": "메모리 정리",
|
|
||||||
"memory_generate_job": "메모리 생성",
|
|
||||||
"metadata_extraction_job": "메타데이터 추출",
|
"metadata_extraction_job": "메타데이터 추출",
|
||||||
"metadata_extraction_job_description": "각 항목에서 GPS, 인물 및 해상도 등의 메타데이터 정보 추출",
|
"metadata_extraction_job_description": "각 항목에서 GPS, 인물 및 해상도 등의 메타데이터 정보 추출",
|
||||||
"metadata_faces_import_setting": "얼굴 가져오기 활성화",
|
"metadata_faces_import_setting": "얼굴 가져오기 활성화",
|
||||||
@@ -167,6 +159,7 @@
|
|||||||
"no_pattern_added": "추가된 규칙 없음",
|
"no_pattern_added": "추가된 규칙 없음",
|
||||||
"note_apply_storage_label_previous_assets": "참고: 이전에 업로드한 항목에도 스토리지 레이블을 적용하려면 다음을 실행합니다,",
|
"note_apply_storage_label_previous_assets": "참고: 이전에 업로드한 항목에도 스토리지 레이블을 적용하려면 다음을 실행합니다,",
|
||||||
"note_cannot_be_changed_later": "주의: 추후 변경할 수 없습니다!",
|
"note_cannot_be_changed_later": "주의: 추후 변경할 수 없습니다!",
|
||||||
|
"note_unlimited_quota": "참고: 무제한 할당량의 경우 0을 입력하세요.",
|
||||||
"notification_email_from_address": "보낸 사람 이메일",
|
"notification_email_from_address": "보낸 사람 이메일",
|
||||||
"notification_email_from_address_description": "보낸 사람의 이메일 주소, 예: \"Immich Photo Server <noreply@example.com>\"",
|
"notification_email_from_address_description": "보낸 사람의 이메일 주소, 예: \"Immich Photo Server <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "이메일 서버의 호스트 (예: smtp.immich.app)",
|
"notification_email_host_description": "이메일 서버의 호스트 (예: smtp.immich.app)",
|
||||||
@@ -247,7 +240,7 @@
|
|||||||
"storage_template_hash_verification_enabled_description": "해시 검증을 활성화합니다. 이 설정의 결과를 확실히 이해하지 않는 한 비활성화하지 마세요.",
|
"storage_template_hash_verification_enabled_description": "해시 검증을 활성화합니다. 이 설정의 결과를 확실히 이해하지 않는 한 비활성화하지 마세요.",
|
||||||
"storage_template_migration": "스토리지 템플릿 마이그레이션",
|
"storage_template_migration": "스토리지 템플릿 마이그레이션",
|
||||||
"storage_template_migration_description": "이전에 업로드된 항목에 현재 <link>{template}</link> 적용",
|
"storage_template_migration_description": "이전에 업로드된 항목에 현재 <link>{template}</link> 적용",
|
||||||
"storage_template_migration_info": "저장소 템플릿은 모든 확장자를 소문자로 변환합니다. 템플릿 변경 사항은 새 자산에만 적용됩니다. 이전에 업로드한 자산에 템플릿을 적용하려면 <link>{job}</link>를 실행하세요.",
|
"storage_template_migration_info": "템플릿 변경 사항은 새 업로드 항목부터 적용됩니다. 기존 항목에도 적용하려면 <link>{job}</link>을 실행하세요.",
|
||||||
"storage_template_migration_job": "스토리지 템플릿 마이그레이션 작업",
|
"storage_template_migration_job": "스토리지 템플릿 마이그레이션 작업",
|
||||||
"storage_template_more_details": "이 기능에 대한 자세한 내용은 <template-link>스토리지 템플릿</template-link> 및 <implications-link>설명</implications-link>을 참조하세요.",
|
"storage_template_more_details": "이 기능에 대한 자세한 내용은 <template-link>스토리지 템플릿</template-link> 및 <implications-link>설명</implications-link>을 참조하세요.",
|
||||||
"storage_template_onboarding_description": "이 기능을 활성화하면 사용자 정의 템플릿을 사용하여 파일을 자동으로 정리할 수 있습니다. 안정성 문제로 인해 해당 기능은 기본적으로 비활성화되어 있습니다. 자세한 내용은 <link>문서</link>를 참조하세요.",
|
"storage_template_onboarding_description": "이 기능을 활성화하면 사용자 정의 템플릿을 사용하여 파일을 자동으로 정리할 수 있습니다. 안정성 문제로 인해 해당 기능은 기본적으로 비활성화되어 있습니다. 자세한 내용은 <link>문서</link>를 참조하세요.",
|
||||||
@@ -257,16 +250,10 @@
|
|||||||
"storage_template_user_label": "사용자의 스토리지 레이블: <code>{label}</code>",
|
"storage_template_user_label": "사용자의 스토리지 레이블: <code>{label}</code>",
|
||||||
"system_settings": "시스템 설정",
|
"system_settings": "시스템 설정",
|
||||||
"tag_cleanup_job": "태그 정리",
|
"tag_cleanup_job": "태그 정리",
|
||||||
"template_email_available_tags": "템플릿에서 다음 변수를 사용할 수 있습니다: {tags}",
|
|
||||||
"template_email_if_empty": "비어 있는 경우 기본 템플릿이 사용됩니다.",
|
"template_email_if_empty": "비어 있는 경우 기본 템플릿이 사용됩니다.",
|
||||||
"template_email_invite_album": "앨범 템플릿 초대",
|
|
||||||
"template_email_preview": "미리보기",
|
"template_email_preview": "미리보기",
|
||||||
"template_email_settings": "이메일 템플릿",
|
"template_email_settings": "이메일 템플릿",
|
||||||
"template_email_settings_description": "사용자 정의 이메일 템플릿 관리",
|
"template_email_settings_description": "사용자 정의 이메일 템플릿 관리",
|
||||||
"template_email_update_album": "앨범 템플릿 업데이트",
|
|
||||||
"template_email_welcome": "이메일 템플릿에 오신것을 환영합니다",
|
|
||||||
"template_settings": "알림 템플릿",
|
|
||||||
"template_settings_description": "알림을 위한 사용자 지정 템플릿을 관리합니다.",
|
|
||||||
"theme_custom_css_settings": "사용자 정의 CSS",
|
"theme_custom_css_settings": "사용자 정의 CSS",
|
||||||
"theme_custom_css_settings_description": "Immich에 적용할 사용자 정의 CSS(Cascading Style Sheets) 설정",
|
"theme_custom_css_settings_description": "Immich에 적용할 사용자 정의 CSS(Cascading Style Sheets) 설정",
|
||||||
"theme_settings": "테마 설정",
|
"theme_settings": "테마 설정",
|
||||||
@@ -291,13 +278,11 @@
|
|||||||
"transcoding_audio_codec_description": "Opus는 가장 좋은 품질의 옵션이지만 기기 및 소프트웨어가 오래된 경우 호환되지 않을 수 있습니다.",
|
"transcoding_audio_codec_description": "Opus는 가장 좋은 품질의 옵션이지만 기기 및 소프트웨어가 오래된 경우 호환되지 않을 수 있습니다.",
|
||||||
"transcoding_bitrate_description": "최대 비트레이트를 초과하는 동영상 또는 허용되지 않는 형식의 동영상",
|
"transcoding_bitrate_description": "최대 비트레이트를 초과하는 동영상 또는 허용되지 않는 형식의 동영상",
|
||||||
"transcoding_codecs_learn_more": "여기에서 사용되는 용어에 대한 자세한 내용은 FFmpeg 문서의 <h264-link>H.264 코덱</h264-link>, <hevc-link>HEVC 코덱</hevc-link> 및 <vp9-link>VP9 코덱</vp9-link> 항목을 참조하세요.",
|
"transcoding_codecs_learn_more": "여기에서 사용되는 용어에 대한 자세한 내용은 FFmpeg 문서의 <h264-link>H.264 코덱</h264-link>, <hevc-link>HEVC 코덱</hevc-link> 및 <vp9-link>VP9 코덱</vp9-link> 항목을 참조하세요.",
|
||||||
"transcoding_constant_quality_mode": "고정 품질 모드",
|
"transcoding_constant_quality_mode": "Constant quality mode",
|
||||||
"transcoding_constant_quality_mode_description": "ICQ는 CQP보다 나은 성능을 보이나 일부 기기의 하드웨어 가속에서 지원되지 않을 수 있습니다. 이 옵션을 설정하면 품질 기반 인코딩 시 지정된 모드를 우선적으로 사용합니다. NVENC에서는 ICQ를 지원하지 않아 이 설정이 적용되지 않습니다.",
|
"transcoding_constant_quality_mode_description": "ICQ는 CQP보다 나은 성능을 보이나 일부 기기의 하드웨어 가속에서 지원되지 않을 수 있습니다. 이 옵션을 설정하면 품질 기반 인코딩 시 지정된 모드를 우선적으로 사용합니다. NVENC에서는 ICQ를 지원하지 않아 이 설정이 적용되지 않습니다.",
|
||||||
"transcoding_constant_rate_factor": "상수 비율 계수(-CRF)",
|
"transcoding_constant_rate_factor": "Constant rate factor (-crf)",
|
||||||
"transcoding_constant_rate_factor_description": "일반적으로 H.264는 23, HEVC는 28, VP9는 31, AV1는 35를 사용합니다. 값이 낮으면 품질이 향상되지만 파일 크기가 증가합니다.",
|
"transcoding_constant_rate_factor_description": "일반적으로 H.264는 23, HEVC는 28, VP9는 31, AV1는 35를 사용합니다. 값이 낮으면 품질이 향상되지만 파일 크기가 증가합니다.",
|
||||||
"transcoding_disabled_description": "동영상을 트랜스코딩하지 않음. 일부 기기에서 재생이 불가능할 수 있습니다.",
|
"transcoding_disabled_description": "동영상을 트랜스코딩하지 않음. 일부 기기에서 재생이 불가능할 수 있습니다.",
|
||||||
"transcoding_encoding_options": "인코딩 옵션",
|
|
||||||
"transcoding_encoding_options_description": "인코딩된 동영상의 코덱, 해상도, 품질 및 기타 옵션을 설정합니다",
|
|
||||||
"transcoding_hardware_acceleration": "하드웨어 가속",
|
"transcoding_hardware_acceleration": "하드웨어 가속",
|
||||||
"transcoding_hardware_acceleration_description": "실험적인 기능입니다. 속도가 향상되지만 동일 비트레이트에서 품질이 상대적으로 낮을 수 있습니다.",
|
"transcoding_hardware_acceleration_description": "실험적인 기능입니다. 속도가 향상되지만 동일 비트레이트에서 품질이 상대적으로 낮을 수 있습니다.",
|
||||||
"transcoding_hardware_decoding": "하드웨어 디코딩",
|
"transcoding_hardware_decoding": "하드웨어 디코딩",
|
||||||
@@ -310,8 +295,6 @@
|
|||||||
"transcoding_max_keyframe_interval": "최대 키프레임 간격",
|
"transcoding_max_keyframe_interval": "최대 키프레임 간격",
|
||||||
"transcoding_max_keyframe_interval_description": "키프레임 사이 최대 프레임 거리를 설정합니다. 값이 낮으면 압축 효율이 저하되지만 검색 시간이 개선되고 빠른 움직임이 있는 장면에서 품질이 향상됩니다. 0을 입력한 경우 자동으로 설정합니다.",
|
"transcoding_max_keyframe_interval_description": "키프레임 사이 최대 프레임 거리를 설정합니다. 값이 낮으면 압축 효율이 저하되지만 검색 시간이 개선되고 빠른 움직임이 있는 장면에서 품질이 향상됩니다. 0을 입력한 경우 자동으로 설정합니다.",
|
||||||
"transcoding_optimal_description": "목표 해상도보다 높은 동영상 또는 허용되지 않는 형식의 동영상",
|
"transcoding_optimal_description": "목표 해상도보다 높은 동영상 또는 허용되지 않는 형식의 동영상",
|
||||||
"transcoding_policy": "트랜스코드 정책",
|
|
||||||
"transcoding_policy_description": "동영상 트랜스코딩 시기 설정하기",
|
|
||||||
"transcoding_preferred_hardware_device": "선호하는 하드웨어 기기",
|
"transcoding_preferred_hardware_device": "선호하는 하드웨어 기기",
|
||||||
"transcoding_preferred_hardware_device_description": "하드웨어 트랜스코딩에 사용할 dri 노드를 설정합니다. (VAAPI와 QSV만 해당)",
|
"transcoding_preferred_hardware_device_description": "하드웨어 트랜스코딩에 사용할 dri 노드를 설정합니다. (VAAPI와 QSV만 해당)",
|
||||||
"transcoding_preset_preset": "프리셋 (-preset)",
|
"transcoding_preset_preset": "프리셋 (-preset)",
|
||||||
@@ -320,10 +303,10 @@
|
|||||||
"transcoding_reference_frames_description": "특정 프레임을 압축할 때 참조하는 프레임 수를 설정합니다. 값이 높으면 압축 효율이 향상되나 인코딩 속도가 저하됩니다. 0을 입력한 경우 자동으로 설정합니다.",
|
"transcoding_reference_frames_description": "특정 프레임을 압축할 때 참조하는 프레임 수를 설정합니다. 값이 높으면 압축 효율이 향상되나 인코딩 속도가 저하됩니다. 0을 입력한 경우 자동으로 설정합니다.",
|
||||||
"transcoding_required_description": "허용된 형식이 아닌 동영상만",
|
"transcoding_required_description": "허용된 형식이 아닌 동영상만",
|
||||||
"transcoding_settings": "동영상 트랜스코딩 설정",
|
"transcoding_settings": "동영상 트랜스코딩 설정",
|
||||||
"transcoding_settings_description": "트랜스코딩할 동영상과 처리 방법 관리하기",
|
"transcoding_settings_description": "동영상 파일의 해상도 및 인코딩 정보 관리",
|
||||||
"transcoding_target_resolution": "목표 해상도",
|
"transcoding_target_resolution": "목표 해상도",
|
||||||
"transcoding_target_resolution_description": "높은 해상도를 선택한 경우 세부 묘사의 손실을 최소화할 수 있지만, 인코딩 시간과 파일 크기가 증가하여 앱의 반응 속도가 느려질 수 있습니다.",
|
"transcoding_target_resolution_description": "높은 해상도를 선택한 경우 세부 묘사의 손실을 최소화할 수 있지만, 인코딩 시간과 파일 크기가 증가하여 앱의 반응 속도가 느려질 수 있습니다.",
|
||||||
"transcoding_temporal_aq": "일시적 AQ",
|
"transcoding_temporal_aq": "Temporal AQ",
|
||||||
"transcoding_temporal_aq_description": "세부 묘사가 많고 움직임이 적은 장면의 품질이 향상됩니다. 오래된 기기와 호환되지 않을 수 있습니다. (NVENC만 해당)",
|
"transcoding_temporal_aq_description": "세부 묘사가 많고 움직임이 적은 장면의 품질이 향상됩니다. 오래된 기기와 호환되지 않을 수 있습니다. (NVENC만 해당)",
|
||||||
"transcoding_threads": "스레드",
|
"transcoding_threads": "스레드",
|
||||||
"transcoding_threads_description": "값이 높으면 인코딩 속도가 향상되지만 리소스 사용량이 증가합니다. 값은 CPU 코어 수보다 작아야 하며, 설정하지 않으려면 0을 입력합니다.",
|
"transcoding_threads_description": "값이 높으면 인코딩 속도가 향상되지만 리소스 사용량이 증가합니다. 값은 CPU 코어 수보다 작아야 하며, 설정하지 않으려면 0을 입력합니다.",
|
||||||
@@ -398,7 +381,6 @@
|
|||||||
"allow_edits": "편집자로 설정",
|
"allow_edits": "편집자로 설정",
|
||||||
"allow_public_user_to_download": "모든 사용자의 다운로드 허용",
|
"allow_public_user_to_download": "모든 사용자의 다운로드 허용",
|
||||||
"allow_public_user_to_upload": "모든 사용자의 업로드 허용",
|
"allow_public_user_to_upload": "모든 사용자의 업로드 허용",
|
||||||
"alt_text_qr_code": "QR코드 이미지",
|
|
||||||
"anti_clockwise": "반시계 방향",
|
"anti_clockwise": "반시계 방향",
|
||||||
"api_key": "API 키",
|
"api_key": "API 키",
|
||||||
"api_key_description": "이 값은 한 번만 표시됩니다. 창을 닫기 전 반드시 복사해주세요.",
|
"api_key_description": "이 값은 한 번만 표시됩니다. 창을 닫기 전 반드시 복사해주세요.",
|
||||||
@@ -489,9 +471,7 @@
|
|||||||
"comments_are_disabled": "댓글이 비활성화되었습니다.",
|
"comments_are_disabled": "댓글이 비활성화되었습니다.",
|
||||||
"confirm": "확인",
|
"confirm": "확인",
|
||||||
"confirm_admin_password": "관리자 비밀번호 확인",
|
"confirm_admin_password": "관리자 비밀번호 확인",
|
||||||
"confirm_delete_face": "에셋에서 {name} 얼굴을 삭제하시겠습니까?",
|
|
||||||
"confirm_delete_shared_link": "이 공유 링크를 삭제하시겠습니까?",
|
"confirm_delete_shared_link": "이 공유 링크를 삭제하시겠습니까?",
|
||||||
"confirm_keep_this_delete_others": "이 에셋을 제외한 스택의 다른 모든 에셋이 삭제됩니다. 계속하시겠습니까?",
|
|
||||||
"confirm_password": "비밀번호 확인",
|
"confirm_password": "비밀번호 확인",
|
||||||
"contain": "맞춤",
|
"contain": "맞춤",
|
||||||
"context": "내용",
|
"context": "내용",
|
||||||
@@ -532,21 +512,15 @@
|
|||||||
"date_range": "날짜 범위",
|
"date_range": "날짜 범위",
|
||||||
"day": "일",
|
"day": "일",
|
||||||
"deduplicate_all": "모두 삭제",
|
"deduplicate_all": "모두 삭제",
|
||||||
"deduplication_criteria_1": "이미지 크기(바이트)",
|
|
||||||
"deduplication_criteria_2": "EXIF 데이터 개수",
|
|
||||||
"deduplication_info": "중복 제거 정보",
|
|
||||||
"deduplication_info_description": "자산을 자동으로 미리 선택하고 일괄적으로 중복을 제거하려면 다음을 살펴보세요:",
|
|
||||||
"default_locale": "기본 로케일",
|
"default_locale": "기본 로케일",
|
||||||
"default_locale_description": "브라우저 로케일에 따른 날짜 및 숫자 형식 지정",
|
"default_locale_description": "브라우저 로케일에 따른 날짜 및 숫자 형식 지정",
|
||||||
"delete": "삭제",
|
"delete": "삭제",
|
||||||
"delete_album": "앨범 삭제",
|
"delete_album": "앨범 삭제",
|
||||||
"delete_api_key_prompt": "API 키를 삭제하시겠습니까?",
|
"delete_api_key_prompt": "API 키를 삭제하시겠습니까?",
|
||||||
"delete_duplicates_confirmation": "비슷한 항목들을 영구적으로 삭제하시겠습니까?",
|
"delete_duplicates_confirmation": "비슷한 항목들을 영구적으로 삭제하시겠습니까?",
|
||||||
"delete_face": "얼굴 삭제",
|
|
||||||
"delete_key": "키 삭제",
|
"delete_key": "키 삭제",
|
||||||
"delete_library": "라이브러리 삭제",
|
"delete_library": "라이브러리 삭제",
|
||||||
"delete_link": "링크 삭제",
|
"delete_link": "링크 삭제",
|
||||||
"delete_others": "다른 사람 삭제",
|
|
||||||
"delete_shared_link": "공유 링크 삭제",
|
"delete_shared_link": "공유 링크 삭제",
|
||||||
"delete_tag": "태그 삭제",
|
"delete_tag": "태그 삭제",
|
||||||
"delete_tag_confirmation_prompt": "{tagName} 태그를 삭제하시겠습니까?",
|
"delete_tag_confirmation_prompt": "{tagName} 태그를 삭제하시겠습니까?",
|
||||||
@@ -558,7 +532,7 @@
|
|||||||
"direction": "방향",
|
"direction": "방향",
|
||||||
"disabled": "비활성화됨",
|
"disabled": "비활성화됨",
|
||||||
"disallow_edits": "뷰어로 설정",
|
"disallow_edits": "뷰어로 설정",
|
||||||
"discord": "디스코드",
|
"discord": "Discord",
|
||||||
"discover": "탐색",
|
"discover": "탐색",
|
||||||
"dismiss_all_errors": "모든 오류 무시",
|
"dismiss_all_errors": "모든 오류 무시",
|
||||||
"dismiss_error": "오류 무시",
|
"dismiss_error": "오류 무시",
|
||||||
@@ -605,12 +579,11 @@
|
|||||||
"editor_crop_tool_h2_rotation": "회전",
|
"editor_crop_tool_h2_rotation": "회전",
|
||||||
"email": "이메일",
|
"email": "이메일",
|
||||||
"empty_trash": "휴지통 비우기",
|
"empty_trash": "휴지통 비우기",
|
||||||
"empty_trash_confirmation": "휴지통을 비우시겠습니까? 휴지통에 있는 모든 항목이 Immich에서 영구적으로 삭제됩니다.\n이 작업은 되돌릴 수 없습니다!",
|
"empty_trash_confirmation": "휴지통을 비우시겠습니까? 휴지통에 있는 모든 항목이 Immich에서 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다!",
|
||||||
"enable": "활성화",
|
"enable": "활성화",
|
||||||
"enabled": "활성화됨",
|
"enabled": "활성화됨",
|
||||||
"end_date": "종료일",
|
"end_date": "종료일",
|
||||||
"error": "오류",
|
"error": "오류",
|
||||||
"error_delete_face": "에셋에서 얼굴 삭제 오류",
|
|
||||||
"error_loading_image": "이미지 로드 오류",
|
"error_loading_image": "이미지 로드 오류",
|
||||||
"error_title": "오류 - 문제가 발생했습니다",
|
"error_title": "오류 - 문제가 발생했습니다",
|
||||||
"errors": {
|
"errors": {
|
||||||
@@ -638,7 +611,6 @@
|
|||||||
"failed_to_create_shared_link": "공유 링크를 생성하지 못했습니다.",
|
"failed_to_create_shared_link": "공유 링크를 생성하지 못했습니다.",
|
||||||
"failed_to_edit_shared_link": "공유 링크를 수정하지 못했습니다.",
|
"failed_to_edit_shared_link": "공유 링크를 수정하지 못했습니다.",
|
||||||
"failed_to_get_people": "인물 로드 실패",
|
"failed_to_get_people": "인물 로드 실패",
|
||||||
"failed_to_keep_this_delete_others": "이 자산을 유지하고 다른 자산을 삭제하지 못했습니다",
|
|
||||||
"failed_to_load_asset": "항목 로드 실패",
|
"failed_to_load_asset": "항목 로드 실패",
|
||||||
"failed_to_load_assets": "항목 로드 실패",
|
"failed_to_load_assets": "항목 로드 실패",
|
||||||
"failed_to_load_people": "인물 로드 실패",
|
"failed_to_load_people": "인물 로드 실패",
|
||||||
@@ -753,7 +725,6 @@
|
|||||||
"external": "외부",
|
"external": "외부",
|
||||||
"external_libraries": "외부 라이브러리",
|
"external_libraries": "외부 라이브러리",
|
||||||
"face_unassigned": "알 수 없음",
|
"face_unassigned": "알 수 없음",
|
||||||
"failed_to_load_assets": "에셋 로드에 실패했습니다",
|
|
||||||
"favorite": "즐겨찾기",
|
"favorite": "즐겨찾기",
|
||||||
"favorite_or_unfavorite_photo": "즐겨찾기 추가/제거",
|
"favorite_or_unfavorite_photo": "즐겨찾기 추가/제거",
|
||||||
"favorites": "즐겨찾기",
|
"favorites": "즐겨찾기",
|
||||||
@@ -774,13 +745,10 @@
|
|||||||
"get_help": "도움 요청",
|
"get_help": "도움 요청",
|
||||||
"getting_started": "시작하기",
|
"getting_started": "시작하기",
|
||||||
"go_back": "뒤로",
|
"go_back": "뒤로",
|
||||||
"go_to_folder": "폴더로 이동",
|
|
||||||
"go_to_search": "검색으로 이동",
|
"go_to_search": "검색으로 이동",
|
||||||
"group_albums_by": "다음으로 앨범 그룹화...",
|
"group_albums_by": "다음으로 앨범 그룹화...",
|
||||||
"group_country": "국가별 그룹화",
|
|
||||||
"group_no": "그룹화 없음",
|
"group_no": "그룹화 없음",
|
||||||
"group_owner": "소유자로 그룹화",
|
"group_owner": "소유자로 그룹화",
|
||||||
"group_places_by": "장소 그룹화 기준...",
|
|
||||||
"group_year": "연도로 그룹화",
|
"group_year": "연도로 그룹화",
|
||||||
"has_quota": "할당량",
|
"has_quota": "할당량",
|
||||||
"hi_user": "안녕하세요 {name}님, ({email})",
|
"hi_user": "안녕하세요 {name}님, ({email})",
|
||||||
@@ -813,7 +781,6 @@
|
|||||||
"include_shared_albums": "공유 앨범 포함",
|
"include_shared_albums": "공유 앨범 포함",
|
||||||
"include_shared_partner_assets": "파트너가 공유한 항목 포함",
|
"include_shared_partner_assets": "파트너가 공유한 항목 포함",
|
||||||
"individual_share": "개인 공유",
|
"individual_share": "개인 공유",
|
||||||
"individual_shares": "개별 공유",
|
|
||||||
"info": "정보",
|
"info": "정보",
|
||||||
"interval": {
|
"interval": {
|
||||||
"day_at_onepm": "매일 오후 1시",
|
"day_at_onepm": "매일 오후 1시",
|
||||||
@@ -827,8 +794,6 @@
|
|||||||
"jobs": "작업",
|
"jobs": "작업",
|
||||||
"keep": "유지",
|
"keep": "유지",
|
||||||
"keep_all": "모두 유지",
|
"keep_all": "모두 유지",
|
||||||
"keep_this_delete_others": "이 항목은 보관하고 다른 항목은 삭제",
|
|
||||||
"kept_this_deleted_others": "이 자산을 유지하고 {count, plural, one {# asset} other {# assets}}을 삭제했습니다",
|
|
||||||
"keyboard_shortcuts": "키보드 단축키",
|
"keyboard_shortcuts": "키보드 단축키",
|
||||||
"language": "언어",
|
"language": "언어",
|
||||||
"language_setting_description": "선호하는 언어 선택",
|
"language_setting_description": "선호하는 언어 선택",
|
||||||
@@ -836,7 +801,6 @@
|
|||||||
"latest_version": "최신 버전",
|
"latest_version": "최신 버전",
|
||||||
"latitude": "위도",
|
"latitude": "위도",
|
||||||
"leave": "나가기",
|
"leave": "나가기",
|
||||||
"lens_model": "카메라 렌즈 모델",
|
|
||||||
"let_others_respond": "다른 사용자의 반응 허용",
|
"let_others_respond": "다른 사용자의 반응 허용",
|
||||||
"level": "레벨",
|
"level": "레벨",
|
||||||
"library": "라이브러리",
|
"library": "라이브러리",
|
||||||
@@ -863,7 +827,6 @@
|
|||||||
"loop_videos": "동영상 반복",
|
"loop_videos": "동영상 반복",
|
||||||
"loop_videos_description": "상세 보기에서 자동으로 동영상을 반복 재생합니다.",
|
"loop_videos_description": "상세 보기에서 자동으로 동영상을 반복 재생합니다.",
|
||||||
"main_branch_warning": "현재 개발 버전을 사용 중입니다. 정식 버전을 사용하는 것을 강력히 권장합니다!",
|
"main_branch_warning": "현재 개발 버전을 사용 중입니다. 정식 버전을 사용하는 것을 강력히 권장합니다!",
|
||||||
"main_menu": "메인 메뉴",
|
|
||||||
"make": "제조사",
|
"make": "제조사",
|
||||||
"manage_shared_links": "공유 링크 관리",
|
"manage_shared_links": "공유 링크 관리",
|
||||||
"manage_sharing_with_partners": "파트너와 공유 관리",
|
"manage_sharing_with_partners": "파트너와 공유 관리",
|
||||||
@@ -896,7 +859,6 @@
|
|||||||
"month": "월",
|
"month": "월",
|
||||||
"more": "더보기",
|
"more": "더보기",
|
||||||
"moved_to_trash": "휴지통으로 이동되었습니다.",
|
"moved_to_trash": "휴지통으로 이동되었습니다.",
|
||||||
"mute_memories": "추억 음소거",
|
|
||||||
"my_albums": "내 앨범",
|
"my_albums": "내 앨범",
|
||||||
"name": "이름",
|
"name": "이름",
|
||||||
"name_or_nickname": "이름 또는 닉네임",
|
"name_or_nickname": "이름 또는 닉네임",
|
||||||
@@ -928,6 +890,7 @@
|
|||||||
"no_shared_albums_message": "공유 앨범을 만들어 주변 사람들과 사진 및 동영상 공유",
|
"no_shared_albums_message": "공유 앨범을 만들어 주변 사람들과 사진 및 동영상 공유",
|
||||||
"not_in_any_album": "앨범에 없음",
|
"not_in_any_album": "앨범에 없음",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "참고: 이전에 업로드한 항목에도 스토리지 레이블을 적용하려면 다음을 실행합니다,",
|
"note_apply_storage_label_to_previously_uploaded assets": "참고: 이전에 업로드한 항목에도 스토리지 레이블을 적용하려면 다음을 실행합니다,",
|
||||||
|
"note_unlimited_quota": "참고: 할당량을 설정하지 않으려면 0을 입력하세요.",
|
||||||
"notes": "참고",
|
"notes": "참고",
|
||||||
"notification_toggle_setting_description": "이메일 알림 활성화",
|
"notification_toggle_setting_description": "이메일 알림 활성화",
|
||||||
"notifications": "알림",
|
"notifications": "알림",
|
||||||
@@ -991,7 +954,6 @@
|
|||||||
"permanently_deleted_asset": "항목이 영구적으로 삭제되었습니다.",
|
"permanently_deleted_asset": "항목이 영구적으로 삭제되었습니다.",
|
||||||
"permanently_deleted_assets_count": "항목 {count, plural, one {#개} other {#개}}가 영구적으로 삭제되었습니다.",
|
"permanently_deleted_assets_count": "항목 {count, plural, one {#개} other {#개}}가 영구적으로 삭제되었습니다.",
|
||||||
"person": "인물",
|
"person": "인물",
|
||||||
"person_birthdate": "{date} 출생",
|
|
||||||
"person_hidden": "{name}{hidden, select, true { (숨김)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (숨김)} other {}}",
|
||||||
"photo_shared_all_users": "이미 모든 사용자와 사진을 공유 중이거나 다른 사용자가 없는 것 같습니다.",
|
"photo_shared_all_users": "이미 모든 사용자와 사진을 공유 중이거나 다른 사용자가 없는 것 같습니다.",
|
||||||
"photos": "사진",
|
"photos": "사진",
|
||||||
@@ -1001,7 +963,6 @@
|
|||||||
"pick_a_location": "위치 선택",
|
"pick_a_location": "위치 선택",
|
||||||
"place": "장소",
|
"place": "장소",
|
||||||
"places": "장소",
|
"places": "장소",
|
||||||
"places_count": "{count, plural, one {{count, number} 장소} other {{count, number} 장소}}",
|
|
||||||
"play": "재생",
|
"play": "재생",
|
||||||
"play_memories": "추억 재생",
|
"play_memories": "추억 재생",
|
||||||
"play_motion_photo": "모션 포토 재생",
|
"play_motion_photo": "모션 포토 재생",
|
||||||
@@ -1061,7 +1022,6 @@
|
|||||||
"reassigned_assets_to_new_person": "항목 {count, plural, one {#개} other {#개}}가 새 인물에 할당되었습니다.",
|
"reassigned_assets_to_new_person": "항목 {count, plural, one {#개} other {#개}}가 새 인물에 할당되었습니다.",
|
||||||
"reassing_hint": "기존 인물에 선택한 항목 할당",
|
"reassing_hint": "기존 인물에 선택한 항목 할당",
|
||||||
"recent": "최근",
|
"recent": "최근",
|
||||||
"recent-albums": "최근 앨범",
|
|
||||||
"recent_searches": "최근 검색",
|
"recent_searches": "최근 검색",
|
||||||
"refresh": "새로고침",
|
"refresh": "새로고침",
|
||||||
"refresh_encoded_videos": "동영상 재인코딩",
|
"refresh_encoded_videos": "동영상 재인코딩",
|
||||||
@@ -1083,16 +1043,11 @@
|
|||||||
"remove_from_album": "앨범에서 제거",
|
"remove_from_album": "앨범에서 제거",
|
||||||
"remove_from_favorites": "즐겨찾기에서 제거",
|
"remove_from_favorites": "즐겨찾기에서 제거",
|
||||||
"remove_from_shared_link": "공유 링크에서 제거",
|
"remove_from_shared_link": "공유 링크에서 제거",
|
||||||
"remove_memory": "추억 제거",
|
|
||||||
"remove_photo_from_memory": "이 추억에서 사진 제거",
|
|
||||||
"remove_url": "URL 제거",
|
|
||||||
"remove_user": "사용자 삭제",
|
"remove_user": "사용자 삭제",
|
||||||
"removed_api_key": "API 키 삭제: {name}",
|
"removed_api_key": "API 키 삭제: {name}",
|
||||||
"removed_from_archive": "보관함에서 제거되었습니다.",
|
"removed_from_archive": "보관함에서 제거되었습니다.",
|
||||||
"removed_from_favorites": "즐겨찾기에서 제거되었습니다.",
|
"removed_from_favorites": "즐겨찾기에서 제거되었습니다.",
|
||||||
"removed_from_favorites_count": "즐겨찾기에서 항목 {count, plural, other {#개}} 제거됨",
|
"removed_from_favorites_count": "즐겨찾기에서 항목 {count, plural, other {#개}} 제거됨",
|
||||||
"removed_memory": "추억 제거",
|
|
||||||
"removed_photo_from_memory": "이 추억에서 사진 제거",
|
|
||||||
"removed_tagged_assets": "항목 {count, plural, one {#개} other {#개}}에서 태그를 제거함",
|
"removed_tagged_assets": "항목 {count, plural, one {#개} other {#개}}에서 태그를 제거함",
|
||||||
"rename": "이름 바꾸기",
|
"rename": "이름 바꾸기",
|
||||||
"repair": "수리",
|
"repair": "수리",
|
||||||
@@ -1101,7 +1056,6 @@
|
|||||||
"repository": "리포지터리",
|
"repository": "리포지터리",
|
||||||
"require_password": "비밀번호 필요",
|
"require_password": "비밀번호 필요",
|
||||||
"require_user_to_change_password_on_first_login": "사용자가 처음 로그인할 때 비밀번호를 변경하도록 요구",
|
"require_user_to_change_password_on_first_login": "사용자가 처음 로그인할 때 비밀번호를 변경하도록 요구",
|
||||||
"rescan": "재검색",
|
|
||||||
"reset": "초기화",
|
"reset": "초기화",
|
||||||
"reset_password": "비밀번호 재설정",
|
"reset_password": "비밀번호 재설정",
|
||||||
"reset_people_visibility": "인물 표시 여부 초기화",
|
"reset_people_visibility": "인물 표시 여부 초기화",
|
||||||
@@ -1138,14 +1092,12 @@
|
|||||||
"search_camera_model": "카메라 모델명 검색...",
|
"search_camera_model": "카메라 모델명 검색...",
|
||||||
"search_city": "도시 검색...",
|
"search_city": "도시 검색...",
|
||||||
"search_country": "국가 검색...",
|
"search_country": "국가 검색...",
|
||||||
"search_for": "검색",
|
|
||||||
"search_for_existing_person": "존재하는 인물 검색",
|
"search_for_existing_person": "존재하는 인물 검색",
|
||||||
"search_no_people": "인물이 없습니다.",
|
"search_no_people": "인물이 없습니다.",
|
||||||
"search_no_people_named": "\"{name}\" 인물을 찾을 수 없음",
|
"search_no_people_named": "\"{name}\" 인물을 찾을 수 없음",
|
||||||
"search_options": "검색 옵션",
|
"search_options": "검색 옵션",
|
||||||
"search_people": "인물 검색",
|
"search_people": "인물 검색",
|
||||||
"search_places": "장소 검색",
|
"search_places": "장소 검색",
|
||||||
"search_rating": "등급으로 검색...",
|
|
||||||
"search_settings": "설정 검색",
|
"search_settings": "설정 검색",
|
||||||
"search_state": "지역 검색...",
|
"search_state": "지역 검색...",
|
||||||
"search_tags": "태그로 검색...",
|
"search_tags": "태그로 검색...",
|
||||||
@@ -1155,7 +1107,6 @@
|
|||||||
"searching_locales": "로케일 검색...",
|
"searching_locales": "로케일 검색...",
|
||||||
"second": "초",
|
"second": "초",
|
||||||
"see_all_people": "모든 인물 보기",
|
"see_all_people": "모든 인물 보기",
|
||||||
"select": "선택",
|
|
||||||
"select_album_cover": "앨범 커버 변경",
|
"select_album_cover": "앨범 커버 변경",
|
||||||
"select_all": "모두 선택",
|
"select_all": "모두 선택",
|
||||||
"select_all_duplicates": "모두 선택",
|
"select_all_duplicates": "모두 선택",
|
||||||
@@ -1178,7 +1129,6 @@
|
|||||||
"server_version": "서버 버전",
|
"server_version": "서버 버전",
|
||||||
"set": "설정",
|
"set": "설정",
|
||||||
"set_as_album_cover": "앨범 커버로 설정",
|
"set_as_album_cover": "앨범 커버로 설정",
|
||||||
"set_as_featured_photo": "추천 사진으로 설정",
|
|
||||||
"set_as_profile_picture": "프로필 사진으로 설정",
|
"set_as_profile_picture": "프로필 사진으로 설정",
|
||||||
"set_date_of_birth": "생년월일 설정",
|
"set_date_of_birth": "생년월일 설정",
|
||||||
"set_profile_picture": "프로필 사진으로 설정",
|
"set_profile_picture": "프로필 사진으로 설정",
|
||||||
@@ -1193,7 +1143,6 @@
|
|||||||
"shared_from_partner": "{partner}님의 사진",
|
"shared_from_partner": "{partner}님의 사진",
|
||||||
"shared_link_options": "공유 링크 옵션",
|
"shared_link_options": "공유 링크 옵션",
|
||||||
"shared_links": "공유 링크",
|
"shared_links": "공유 링크",
|
||||||
"shared_links_description": "링크를 통해 사진 및 동영상 공유",
|
|
||||||
"shared_photos_and_videos_count": "사진 및 동영상 {assetCount, plural, other {#개를 공유했습니다.}}",
|
"shared_photos_and_videos_count": "사진 및 동영상 {assetCount, plural, other {#개를 공유했습니다.}}",
|
||||||
"shared_with_partner": "{partner}님과 공유함",
|
"shared_with_partner": "{partner}님과 공유함",
|
||||||
"sharing": "공유",
|
"sharing": "공유",
|
||||||
@@ -1216,7 +1165,6 @@
|
|||||||
"show_person_options": "인물 옵션 표시",
|
"show_person_options": "인물 옵션 표시",
|
||||||
"show_progress_bar": "진행 표시줄 표시",
|
"show_progress_bar": "진행 표시줄 표시",
|
||||||
"show_search_options": "검색 옵션 표시",
|
"show_search_options": "검색 옵션 표시",
|
||||||
"show_shared_links": "공유 링크 표시",
|
|
||||||
"show_slideshow_transition": "슬라이드 전환 표시",
|
"show_slideshow_transition": "슬라이드 전환 표시",
|
||||||
"show_supporter_badge": "서포터 배지",
|
"show_supporter_badge": "서포터 배지",
|
||||||
"show_supporter_badge_description": "서포터 배지 표시",
|
"show_supporter_badge_description": "서포터 배지 표시",
|
||||||
@@ -1236,7 +1184,6 @@
|
|||||||
"sort_items": "항목 수",
|
"sort_items": "항목 수",
|
||||||
"sort_modified": "수정된 날짜",
|
"sort_modified": "수정된 날짜",
|
||||||
"sort_oldest": "오래된 사진",
|
"sort_oldest": "오래된 사진",
|
||||||
"sort_people_by_similarity": "유사성을 기준으로 사람 정렬",
|
|
||||||
"sort_recent": "최근 사진",
|
"sort_recent": "최근 사진",
|
||||||
"sort_title": "제목",
|
"sort_title": "제목",
|
||||||
"source": "소스",
|
"source": "소스",
|
||||||
@@ -1270,7 +1217,6 @@
|
|||||||
"tag_created": "태그 생성됨: {tag}",
|
"tag_created": "태그 생성됨: {tag}",
|
||||||
"tag_feature_description": "사진 및 동영상을 주제별 그룹화된 태그로 탐색",
|
"tag_feature_description": "사진 및 동영상을 주제별 그룹화된 태그로 탐색",
|
||||||
"tag_not_found_question": "태그를 찾을 수 없나요? <link>새 태그를 생성하세요.</link>",
|
"tag_not_found_question": "태그를 찾을 수 없나요? <link>새 태그를 생성하세요.</link>",
|
||||||
"tag_people": "사람 태그",
|
|
||||||
"tag_updated": "태그 업데이트됨: {tag}",
|
"tag_updated": "태그 업데이트됨: {tag}",
|
||||||
"tagged_assets": "항목 {count, plural, one {#개} other {#개}}에 태그를 적용함",
|
"tagged_assets": "항목 {count, plural, one {#개} other {#개}}에 태그를 적용함",
|
||||||
"tags": "태그",
|
"tags": "태그",
|
||||||
@@ -1291,7 +1237,6 @@
|
|||||||
"to_trash": "삭제",
|
"to_trash": "삭제",
|
||||||
"toggle_settings": "설정 변경",
|
"toggle_settings": "설정 변경",
|
||||||
"toggle_theme": "다크 모드 사용",
|
"toggle_theme": "다크 모드 사용",
|
||||||
"total": "합계",
|
|
||||||
"total_usage": "총 사용량",
|
"total_usage": "총 사용량",
|
||||||
"trash": "휴지통",
|
"trash": "휴지통",
|
||||||
"trash_all": "모두 삭제",
|
"trash_all": "모두 삭제",
|
||||||
@@ -1311,7 +1256,6 @@
|
|||||||
"unlink_motion_video": "모션 비디오 링크 해제",
|
"unlink_motion_video": "모션 비디오 링크 해제",
|
||||||
"unlink_oauth": "OAuth 연결 해제",
|
"unlink_oauth": "OAuth 연결 해제",
|
||||||
"unlinked_oauth_account": "OAuth 계정 연결이 해제되었습니다.",
|
"unlinked_oauth_account": "OAuth 계정 연결이 해제되었습니다.",
|
||||||
"unmute_memories": "추억 음소거 해제",
|
|
||||||
"unnamed_album": "이름 없는 앨범",
|
"unnamed_album": "이름 없는 앨범",
|
||||||
"unnamed_album_delete_confirmation": "선텍한 앨범을 삭제하시겠습니까?",
|
"unnamed_album_delete_confirmation": "선텍한 앨범을 삭제하시겠습니까?",
|
||||||
"unnamed_share": "이름 없는 공유",
|
"unnamed_share": "이름 없는 공유",
|
||||||
@@ -1343,7 +1287,6 @@
|
|||||||
"user_purchase_settings_description": "구매 및 제품 키 관리",
|
"user_purchase_settings_description": "구매 및 제품 키 관리",
|
||||||
"user_role_set": "{user}님에게 {role} 역할을 설정했습니다.",
|
"user_role_set": "{user}님에게 {role} 역할을 설정했습니다.",
|
||||||
"user_usage_detail": "사용자 사용량 상세",
|
"user_usage_detail": "사용자 사용량 상세",
|
||||||
"user_usage_stats": "계정 사용량 통계",
|
|
||||||
"user_usage_stats_description": "계정 사용량 통계 보기",
|
"user_usage_stats_description": "계정 사용량 통계 보기",
|
||||||
"username": "계정명",
|
"username": "계정명",
|
||||||
"users": "사용자",
|
"users": "사용자",
|
||||||
@@ -1365,12 +1308,9 @@
|
|||||||
"view_all": "모두 보기",
|
"view_all": "모두 보기",
|
||||||
"view_all_users": "모든 사용자 보기",
|
"view_all_users": "모든 사용자 보기",
|
||||||
"view_in_timeline": "타임라인에서 보기",
|
"view_in_timeline": "타임라인에서 보기",
|
||||||
"view_link": "링크 보기",
|
|
||||||
"view_links": "링크 확인",
|
"view_links": "링크 확인",
|
||||||
"view_name": "보기",
|
|
||||||
"view_next_asset": "다음 항목 보기",
|
"view_next_asset": "다음 항목 보기",
|
||||||
"view_previous_asset": "이전 항목 보기",
|
"view_previous_asset": "이전 항목 보기",
|
||||||
"view_qr_code": "QR코드 보기",
|
|
||||||
"view_stack": "스택 보기",
|
"view_stack": "스택 보기",
|
||||||
"visibility_changed": "인물 {count, plural, one {#명} other {#명}}의 표시 여부가 변경됨",
|
"visibility_changed": "인물 {count, plural, one {#명} other {#명}}의 표시 여부가 변경됨",
|
||||||
"waiting": "대기",
|
"waiting": "대기",
|
||||||
|
|||||||
@@ -157,6 +157,7 @@
|
|||||||
"no_pattern_added": "Šablonas nepridėtas",
|
"no_pattern_added": "Šablonas nepridėtas",
|
||||||
"note_apply_storage_label_previous_assets": "Pastaba: norėdami pritaikyti saugyklos etiketę seniau įkeltiems ištekliams, paleiskite",
|
"note_apply_storage_label_previous_assets": "Pastaba: norėdami pritaikyti saugyklos etiketę seniau įkeltiems ištekliams, paleiskite",
|
||||||
"note_cannot_be_changed_later": "PASTABA: Vėliau to pakeisti negalima!",
|
"note_cannot_be_changed_later": "PASTABA: Vėliau to pakeisti negalima!",
|
||||||
|
"note_unlimited_quota": "Pastaba: įveskite 0 norint neribotos kvotos",
|
||||||
"notification_email_from_address": "Iš adreso",
|
"notification_email_from_address": "Iš adreso",
|
||||||
"notification_email_from_address_description": "Siuntėjo elektroninis adresas, pavyzdžiui: \"Immich Photo Server <noreply@example.com>\"",
|
"notification_email_from_address_description": "Siuntėjo elektroninis adresas, pavyzdžiui: \"Immich Photo Server <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Elektroninio pašto serverio savininkas (pvz. smtp.immich.app)",
|
"notification_email_host_description": "Elektroninio pašto serverio savininkas (pvz. smtp.immich.app)",
|
||||||
@@ -770,6 +771,7 @@
|
|||||||
"no_results_description": "Pabandykite sinonimą arba bendresnį raktažodį",
|
"no_results_description": "Pabandykite sinonimą arba bendresnį raktažodį",
|
||||||
"no_shared_albums_message": "",
|
"no_shared_albums_message": "",
|
||||||
"not_in_any_album": "Nė viename albume",
|
"not_in_any_album": "Nė viename albume",
|
||||||
|
"note_unlimited_quota": "Pastaba: Įveskite 0, jei norite neribotos kvotos",
|
||||||
"notes": "Pastabos",
|
"notes": "Pastabos",
|
||||||
"notification_toggle_setting_description": "Įjungti el. pašto pranešimus",
|
"notification_toggle_setting_description": "Įjungti el. pašto pranešimus",
|
||||||
"notifications": "Pranešimai",
|
"notifications": "Pranešimai",
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user