Compare commits
239 Commits
v1.130.0
...
feat/corem
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57933af9b0 | ||
|
|
1c4a8c3968 | ||
|
|
e2d80755c6 | ||
|
|
5a3b11d603 | ||
|
|
543bc72ae3 | ||
|
|
dd1fcd5be5 | ||
|
|
52ae06c119 | ||
|
|
854ea13d6a | ||
|
|
504930947d | ||
|
|
0e6ac87645 | ||
|
|
bd2deda50c | ||
|
|
160bb492a2 | ||
|
|
6474a78b8b | ||
|
|
e275f2d8b3 | ||
|
|
81ed54aa61 | ||
|
|
067338b0ed | ||
|
|
5e68f8c519 | ||
|
|
242a559e0f | ||
|
|
ed2b54527c | ||
|
|
8b38f8a58d | ||
|
|
29b30570bf | ||
|
|
586a7a173b | ||
|
|
1bbfacfc09 | ||
|
|
85c2d36d99 | ||
|
|
8cefa0b84b | ||
|
|
f50e5d006c | ||
|
|
8f8ff3adc0 | ||
|
|
c4c35ed140 | ||
|
|
be2f670d35 | ||
|
|
7efcba2b12 | ||
|
|
459c815086 | ||
|
|
36fa61c013 | ||
|
|
8da5f21fcf | ||
|
|
76db8cf604 | ||
|
|
21becbf1b0 | ||
|
|
26f0ea4cb5 | ||
|
|
19e5a6f68f | ||
|
|
78f8e23834 | ||
|
|
5bceefce75 | ||
|
|
b710ad36f3 | ||
|
|
270d178a2e | ||
|
|
309528c807 | ||
|
|
7c422363fb | ||
|
|
3eb316abea | ||
|
|
b3371e16f2 | ||
|
|
b2c903c000 | ||
|
|
17e720440d | ||
|
|
a522130122 | ||
|
|
cecd9c24a4 | ||
|
|
f189c7b101 | ||
|
|
c5f087a3ca | ||
|
|
72f6d7791e | ||
|
|
f73fce1046 | ||
|
|
f2edcde1b2 | ||
|
|
9d0dd9dff8 | ||
|
|
c3d10c5be2 | ||
|
|
bd92748ddd | ||
|
|
aad5c3bada | ||
|
|
b2753103c6 | ||
|
|
e3f3baadb0 | ||
|
|
0b69d1c147 | ||
|
|
5a51ad3622 | ||
|
|
664c99278a | ||
|
|
184e142d87 | ||
|
|
8b00578c7b | ||
|
|
7562088fac | ||
|
|
79d4ce2d6d | ||
|
|
983f656a6b | ||
|
|
ab2a7006f9 | ||
|
|
1f18fe31f0 | ||
|
|
a373034629 | ||
|
|
5dac315af7 | ||
|
|
8309b73a02 | ||
|
|
e440cbe353 | ||
|
|
5548eb0dad | ||
|
|
3bec8dc337 | ||
|
|
5bcb58c3e7 | ||
|
|
c62fc155c8 | ||
|
|
40e3322b25 | ||
|
|
25f2b9602f | ||
|
|
ae6653392e | ||
|
|
d7a782da34 | ||
|
|
08b5952c87 | ||
|
|
584e5894bf | ||
|
|
52d4b2fe57 | ||
|
|
92f0973a46 | ||
|
|
75c83cb704 | ||
|
|
0b22d3348e | ||
|
|
abde0fbe60 | ||
|
|
eaa0e07329 | ||
|
|
9fd2c5220d | ||
|
|
7fcab4b251 | ||
|
|
e3995fb5f4 | ||
|
|
6d3f3d8616 | ||
|
|
4412680679 | ||
|
|
7df2c9c905 | ||
|
|
7a1e8ce6d8 | ||
|
|
8aea07b750 | ||
|
|
94dba29298 | ||
|
|
9e49783e49 | ||
|
|
43e3075f93 | ||
|
|
d03647904b | ||
|
|
206545356d | ||
|
|
3e372500b0 | ||
|
|
8943ec23ba | ||
|
|
04b03f2924 | ||
|
|
cf2c0260a6 | ||
|
|
ae8af84101 | ||
|
|
4794eeca88 | ||
|
|
ac65d46ec6 | ||
|
|
e5ca79dd44 | ||
|
|
49be6d7fd8 | ||
|
|
15c6506aee | ||
|
|
2c31a11e41 | ||
|
|
b6c5a03533 | ||
|
|
75bc32b47b | ||
|
|
fdbe6d649f | ||
|
|
2b131fe935 | ||
|
|
6ae24fbbd4 | ||
|
|
7f116d8e98 | ||
|
|
bd0840c411 | ||
|
|
a5123dec1a | ||
|
|
ffd18c5459 | ||
|
|
8242ff9bab | ||
|
|
8203b6c450 | ||
|
|
b352cf3336 | ||
|
|
96ed9a8c4a | ||
|
|
e7a5b96ed0 | ||
|
|
51c2c60231 | ||
|
|
43d585ce55 | ||
|
|
042da669d1 | ||
|
|
a724f147fe | ||
|
|
1e4b9ae5b7 | ||
|
|
99cddf1fd6 | ||
|
|
30d33f968f | ||
|
|
31ee19181a | ||
|
|
b58a450152 | ||
|
|
b87ba6865b | ||
|
|
565cceb323 | ||
|
|
f096dd0cc0 | ||
|
|
a3c3f9cfcb | ||
|
|
7b6a4be30c | ||
|
|
720189e2c2 | ||
|
|
dfab32c8f2 | ||
|
|
60174d662d | ||
|
|
8b6a765e12 | ||
|
|
2248a38567 | ||
|
|
97e52c5156 | ||
|
|
e8b4ac0522 | ||
|
|
548298b0c7 | ||
|
|
40cff2893c | ||
|
|
b621281351 | ||
|
|
4336afd6bf | ||
|
|
5a456ef277 | ||
|
|
5cb5fcbf62 | ||
|
|
95e3b15776 | ||
|
|
50335dc363 | ||
|
|
6e62c09d84 | ||
|
|
00d3b8d83a | ||
|
|
d911b76c08 | ||
|
|
502854cee1 | ||
|
|
59e5c82569 | ||
|
|
e4b0c00885 | ||
|
|
946507231d | ||
|
|
20ba800a50 | ||
|
|
f434e858ed | ||
|
|
3e03c47fbf | ||
|
|
9aa3850769 | ||
|
|
628dcdeebf | ||
|
|
11bfde2aa8 | ||
|
|
69b1ac47ea | ||
|
|
4f81265694 | ||
|
|
3428a876c7 | ||
|
|
bd822657d3 | ||
|
|
9e7744a9ab | ||
|
|
7729fe80fa | ||
|
|
68e24ad168 | ||
|
|
186c573565 | ||
|
|
5b63b9fc8b | ||
|
|
5c80e8734b | ||
|
|
a5093a9434 | ||
|
|
637ad1fdcb | ||
|
|
6789c2ac19 | ||
|
|
838a8dd9a6 | ||
|
|
d71c5602c3 | ||
|
|
8c50e3e80e | ||
|
|
efcb1129ce | ||
|
|
faabda4446 | ||
|
|
b8b2898c87 | ||
|
|
b25914c2a5 | ||
|
|
d613f15606 | ||
|
|
a831876fdc | ||
|
|
09f4476f97 | ||
|
|
238c151ac3 | ||
|
|
e4f83680d9 | ||
|
|
74f7fd4b53 | ||
|
|
f4dbfd856e | ||
|
|
55a3c30664 | ||
|
|
6fa0cb534a | ||
|
|
9f0dbfc150 | ||
|
|
6419ac74af | ||
|
|
d2bcf5d716 | ||
|
|
c8331f111f | ||
|
|
4b4bcd23f4 | ||
|
|
3fde5a8328 | ||
|
|
cc3ea32cd2 | ||
|
|
431cf281da | ||
|
|
8f786fd7dd | ||
|
|
3e73765375 | ||
|
|
411521b21d | ||
|
|
e163808348 | ||
|
|
411772123f | ||
|
|
84c35e35d6 | ||
|
|
f7d730eb05 | ||
|
|
16e0166d22 | ||
|
|
43f8f473e9 | ||
|
|
cc393b2b7b | ||
|
|
6341962de4 | ||
|
|
c26b28f6a4 | ||
|
|
c72c82c401 | ||
|
|
fecf3809a6 | ||
|
|
619bd72de9 | ||
|
|
fd4a5f71b5 | ||
|
|
2f8725c66f | ||
|
|
9fbd6369b9 | ||
|
|
c547d849d9 | ||
|
|
6ba94ac2f2 | ||
|
|
dfb0626c91 | ||
|
|
392ce7deb2 | ||
|
|
75df8fc10e | ||
|
|
4cf7c55680 | ||
|
|
b8ff93a3c9 | ||
|
|
37eb70c1eb | ||
|
|
aa4d6405f4 | ||
|
|
ae447542a4 | ||
|
|
90f21d9047 | ||
|
|
567a92fe77 | ||
|
|
8d6f5a2da9 | ||
|
|
69662e1ab4 |
@@ -1,4 +1,4 @@
|
|||||||
ARG BASEIMAGE=mcr.microsoft.com/devcontainers/typescript-node:22@sha256:2ef23730ec68d8511ec8e6e0b82550ca728b256805d81f60ed890f3bfb21cfb9
|
ARG BASEIMAGE=mcr.microsoft.com/devcontainers/typescript-node:22@sha256:a20b8a3538313487ac9266875bbf733e544c1aa2091df2bb99ab592a6d4f7399
|
||||||
FROM ${BASEIMAGE}
|
FROM ${BASEIMAGE}
|
||||||
|
|
||||||
# Flutter SDK
|
# Flutter SDK
|
||||||
|
|||||||
3
.gitattributes
vendored
3
.gitattributes
vendored
@@ -6,6 +6,9 @@ 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
|
||||||
|
|
||||||
|
|||||||
37
.github/workflows/build-mobile.yml
vendored
37
.github/workflows/build-mobile.yml
vendored
@@ -7,6 +7,15 @@ on:
|
|||||||
ref:
|
ref:
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
secrets:
|
||||||
|
KEY_JKS:
|
||||||
|
required: true
|
||||||
|
ALIAS:
|
||||||
|
required: true
|
||||||
|
ANDROID_KEY_PASSWORD:
|
||||||
|
required: true
|
||||||
|
ANDROID_STORE_PASSWORD:
|
||||||
|
required: true
|
||||||
pull_request:
|
pull_request:
|
||||||
push:
|
push:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
@@ -15,14 +24,21 @@ concurrency:
|
|||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pre-job:
|
pre-job:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
outputs:
|
outputs:
|
||||||
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
||||||
with:
|
with:
|
||||||
@@ -38,31 +54,26 @@ jobs:
|
|||||||
build-sign-android:
|
build-sign-android:
|
||||||
name: Build and sign Android
|
name: Build and sign Android
|
||||||
needs: pre-job
|
needs: pre-job
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
# Skip when PR from a fork
|
# Skip when PR from a fork
|
||||||
if: ${{ !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' && needs.pre-job.outputs.should_run == 'true' }}
|
if: ${{ !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' && needs.pre-job.outputs.should_run == 'true' }}
|
||||||
runs-on: macos-14
|
runs-on: macos-14
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Determine ref
|
|
||||||
id: get-ref
|
|
||||||
run: |
|
|
||||||
input_ref="${{ inputs.ref }}"
|
|
||||||
github_ref="${{ github.sha }}"
|
|
||||||
ref="${input_ref:-$github_ref}"
|
|
||||||
echo "ref=$ref" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
with:
|
with:
|
||||||
ref: ${{ steps.get-ref.outputs.ref }}
|
ref: ${{ inputs.ref || github.sha }}
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 # v4
|
- uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4
|
||||||
with:
|
with:
|
||||||
distribution: 'zulu'
|
distribution: 'zulu'
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
cache: 'gradle'
|
cache: 'gradle'
|
||||||
|
|
||||||
- name: Setup Flutter SDK
|
- name: Setup Flutter SDK
|
||||||
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # v2
|
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2
|
||||||
with:
|
with:
|
||||||
channel: 'stable'
|
channel: 'stable'
|
||||||
flutter-version-file: ./mobile/pubspec.yaml
|
flutter-version-file: ./mobile/pubspec.yaml
|
||||||
@@ -78,6 +89,10 @@ jobs:
|
|||||||
working-directory: ./mobile
|
working-directory: ./mobile
|
||||||
run: flutter pub get
|
run: flutter pub get
|
||||||
|
|
||||||
|
- name: Generate translation file
|
||||||
|
run: make translation
|
||||||
|
working-directory: ./mobile
|
||||||
|
|
||||||
- name: Build Android App Bundle
|
- name: Build Android App Bundle
|
||||||
working-directory: ./mobile
|
working-directory: ./mobile
|
||||||
env:
|
env:
|
||||||
|
|||||||
17
.github/workflows/cache-cleanup.yml
vendored
17
.github/workflows/cache-cleanup.yml
vendored
@@ -8,31 +8,38 @@ concurrency:
|
|||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
cleanup:
|
cleanup:
|
||||||
name: Cleanup
|
name: Cleanup
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
actions: write
|
||||||
steps:
|
steps:
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Cleanup
|
- name: Cleanup
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
REF: ${{ github.ref }}
|
||||||
run: |
|
run: |
|
||||||
gh extension install actions/gh-actions-cache
|
gh extension install actions/gh-actions-cache
|
||||||
|
|
||||||
REPO=${{ github.repository }}
|
REPO=${{ github.repository }}
|
||||||
BRANCH=${{ github.ref }}
|
|
||||||
|
|
||||||
echo "Fetching list of cache keys"
|
echo "Fetching list of cache keys"
|
||||||
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH -L 100 | cut -f 1 )
|
cacheKeysForPR=$(gh actions-cache list -R $REPO -B ${REF} -L 100 | cut -f 1 )
|
||||||
|
|
||||||
## Setting this to not fail the workflow while deleting cache keys.
|
## Setting this to not fail the workflow while deleting cache keys.
|
||||||
set +e
|
set +e
|
||||||
echo "Deleting caches..."
|
echo "Deleting caches..."
|
||||||
for cacheKey in $cacheKeysForPR
|
for cacheKey in $cacheKeysForPR
|
||||||
do
|
do
|
||||||
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
|
gh actions-cache delete $cacheKey -R "$REPO" -B "${REF}" --confirm
|
||||||
done
|
done
|
||||||
echo "Done"
|
echo "Done"
|
||||||
env:
|
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|||||||
15
.github/workflows/cli.yml
vendored
15
.github/workflows/cli.yml
vendored
@@ -16,21 +16,25 @@ concurrency:
|
|||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
permissions:
|
permissions: {}
|
||||||
packages: write
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
name: CLI Publish
|
name: CLI Publish
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./cli
|
working-directory: ./cli
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
# Setup .npmrc file to publish to npm
|
# Setup .npmrc file to publish to npm
|
||||||
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './cli/.nvmrc'
|
node-version-file: './cli/.nvmrc'
|
||||||
registry-url: 'https://registry.npmjs.org'
|
registry-url: 'https://registry.npmjs.org'
|
||||||
@@ -48,11 +52,16 @@ jobs:
|
|||||||
docker:
|
docker:
|
||||||
name: Docker
|
name: Docker
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
needs: publish
|
needs: publish
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
|
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
|
||||||
|
|||||||
10
.github/workflows/codeql-analysis.yml
vendored
10
.github/workflows/codeql-analysis.yml
vendored
@@ -24,6 +24,8 @@ concurrency:
|
|||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
analyze:
|
analyze:
|
||||||
name: Analyze
|
name: Analyze
|
||||||
@@ -43,10 +45,12 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
# Initializes the CodeQL tools for scanning.
|
||||||
- name: Initialize CodeQL
|
- name: Initialize CodeQL
|
||||||
uses: github/codeql-action/init@5f8171a638ada777af81d42b55959a643bb29017 # v3
|
uses: github/codeql-action/init@45775bd8235c68ba998cffa5171334d58593da47 # 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.
|
||||||
@@ -59,7 +63,7 @@ jobs:
|
|||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
# If this step fails, then you should remove it and run the build manually (see below)
|
||||||
- name: Autobuild
|
- name: Autobuild
|
||||||
uses: github/codeql-action/autobuild@5f8171a638ada777af81d42b55959a643bb29017 # v3
|
uses: github/codeql-action/autobuild@45775bd8235c68ba998cffa5171334d58593da47 # v3
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||||
@@ -72,6 +76,6 @@ jobs:
|
|||||||
# ./location_of_script_within_repo/buildscript.sh
|
# ./location_of_script_within_repo/buildscript.sh
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
- name: Perform CodeQL Analysis
|
||||||
uses: github/codeql-action/analyze@5f8171a638ada777af81d42b55959a643bb29017 # v3
|
uses: github/codeql-action/analyze@45775bd8235c68ba998cffa5171334d58593da47 # v3
|
||||||
with:
|
with:
|
||||||
category: '/language:${{matrix.language}}'
|
category: '/language:${{matrix.language}}'
|
||||||
|
|||||||
133
.github/workflows/docker.yml
vendored
133
.github/workflows/docker.yml
vendored
@@ -12,18 +12,21 @@ concurrency:
|
|||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
permissions:
|
permissions: {}
|
||||||
packages: write
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pre-job:
|
pre-job:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
outputs:
|
outputs:
|
||||||
should_run_server: ${{ steps.found_paths.outputs.server == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run_server: ${{ steps.found_paths.outputs.server == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
should_run_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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
||||||
with:
|
with:
|
||||||
@@ -45,6 +48,9 @@ jobs:
|
|||||||
retag_ml:
|
retag_ml:
|
||||||
name: Re-Tag ML
|
name: Re-Tag ML
|
||||||
needs: pre-job
|
needs: pre-job
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
if: ${{ needs.pre-job.outputs.should_run_ml == 'false' && !github.event.pull_request.head.repo.fork }}
|
if: ${{ needs.pre-job.outputs.should_run_ml == 'false' && !github.event.pull_request.head.repo.fork }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
@@ -58,18 +64,22 @@ jobs:
|
|||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Re-tag image
|
- name: Re-tag image
|
||||||
|
env:
|
||||||
|
REGISTRY_NAME: 'ghcr.io'
|
||||||
|
REPOSITORY: ${{ github.repository_owner }}/immich-machine-learning
|
||||||
|
TAG_OLD: main${{ 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 }}
|
||||||
run: |
|
run: |
|
||||||
REGISTRY_NAME="ghcr.io"
|
docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_PR}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}"
|
||||||
REPOSITORY=${{ github.repository_owner }}/immich-machine-learning
|
docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_COMMIT}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}"
|
||||||
TAG_OLD=main${{ 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 }}
|
|
||||||
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
|
|
||||||
|
|
||||||
retag_server:
|
retag_server:
|
||||||
name: Re-Tag Server
|
name: Re-Tag Server
|
||||||
needs: pre-job
|
needs: pre-job
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
if: ${{ needs.pre-job.outputs.should_run_server == 'false' && !github.event.pull_request.head.repo.fork }}
|
if: ${{ needs.pre-job.outputs.should_run_server == 'false' && !github.event.pull_request.head.repo.fork }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
@@ -83,18 +93,22 @@ jobs:
|
|||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
- name: Re-tag image
|
- name: Re-tag image
|
||||||
|
env:
|
||||||
|
REGISTRY_NAME: 'ghcr.io'
|
||||||
|
REPOSITORY: ${{ github.repository_owner }}/immich-server
|
||||||
|
TAG_OLD: main${{ 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 }}
|
||||||
run: |
|
run: |
|
||||||
REGISTRY_NAME="ghcr.io"
|
docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_PR}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}"
|
||||||
REPOSITORY=${{ github.repository_owner }}/immich-server
|
docker buildx imagetools create -t "${REGISTRY_NAME}/${REPOSITORY}:${TAG_COMMIT}" "${REGISTRY_NAME}/${REPOSITORY}:${TAG_OLD}"
|
||||||
TAG_OLD=main${{ 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 }}
|
|
||||||
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
|
|
||||||
|
|
||||||
build_and_push_ml:
|
build_and_push_ml:
|
||||||
name: Build and Push ML
|
name: Build and Push ML
|
||||||
needs: pre-job
|
needs: pre-job
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
if: ${{ needs.pre-job.outputs.should_run_ml == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_ml == 'true' }}
|
||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
env:
|
env:
|
||||||
@@ -148,6 +162,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||||
@@ -161,11 +177,14 @@ jobs:
|
|||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Generate cache key suffix
|
- name: Generate cache key suffix
|
||||||
|
env:
|
||||||
|
REF: ${{ github.ref_name }}
|
||||||
run: |
|
run: |
|
||||||
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
|
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
|
||||||
echo "CACHE_KEY_SUFFIX=pr-${{ github.event.number }}" >> $GITHUB_ENV
|
echo "CACHE_KEY_SUFFIX=pr-${{ github.event.number }}" >> $GITHUB_ENV
|
||||||
else
|
else
|
||||||
echo "CACHE_KEY_SUFFIX=$(echo ${{ github.ref_name }} | sed 's/[^a-zA-Z0-9]/-/g')" >> $GITHUB_ENV
|
SUFFIX=$(echo "${REF}" | sed 's/[^a-zA-Z0-9]/-/g')
|
||||||
|
echo "CACHE_KEY_SUFFIX=${SUFFIX}" >> $GITHUB_ENV
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Generate cache target
|
- name: Generate cache target
|
||||||
@@ -175,9 +194,15 @@ jobs:
|
|||||||
# Essentially just ignore the cache output (forks can't write to registry cache)
|
# Essentially just ignore the cache output (forks can't write to registry cache)
|
||||||
echo "cache-to=type=local,dest=/tmp/discard,ignore-error=true" >> $GITHUB_OUTPUT
|
echo "cache-to=type=local,dest=/tmp/discard,ignore-error=true" >> $GITHUB_OUTPUT
|
||||||
else
|
else
|
||||||
echo "cache-to=type=registry,ref=${{ env.GHCR_REPO }}-build-cache:${{ env.PLATFORM_PAIR }}-${{ matrix.device }}-${{ env.CACHE_KEY_SUFFIX }},mode=max,compression=zstd" >> $GITHUB_OUTPUT
|
echo "cache-to=type=registry,ref=${GHCR_REPO}-build-cache:${PLATFORM_PAIR}-${{ matrix.device }}-${CACHE_KEY_SUFFIX},mode=max,compression=zstd" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
- name: Generate docker image tags
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
|
||||||
|
env:
|
||||||
|
DOCKER_METADATA_PR_HEAD_SHA: 'true'
|
||||||
|
|
||||||
- name: Build and push image
|
- name: Build and push image
|
||||||
id: build
|
id: build
|
||||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
||||||
@@ -185,7 +210,7 @@ jobs:
|
|||||||
context: ${{ env.context }}
|
context: ${{ env.context }}
|
||||||
file: ${{ env.file }}
|
file: ${{ env.file }}
|
||||||
platforms: ${{ matrix.platforms }}
|
platforms: ${{ matrix.platforms }}
|
||||||
labels: ${{ steps.metadata.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
cache-to: ${{ steps.cache-target.outputs.cache-to }}
|
cache-to: ${{ steps.cache-target.outputs.cache-to }}
|
||||||
cache-from: |
|
cache-from: |
|
||||||
type=registry,ref=${{ env.GHCR_REPO }}-build-cache:${{ env.PLATFORM_PAIR }}-${{ matrix.device }}-${{ env.CACHE_KEY_SUFFIX }}
|
type=registry,ref=${{ env.GHCR_REPO }}-build-cache:${{ env.PLATFORM_PAIR }}-${{ matrix.device }}-${{ env.CACHE_KEY_SUFFIX }}
|
||||||
@@ -215,6 +240,10 @@ jobs:
|
|||||||
merge_ml:
|
merge_ml:
|
||||||
name: Merge & Push ML
|
name: Merge & Push ML
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
actions: read
|
||||||
|
packages: write
|
||||||
if: ${{ needs.pre-job.outputs.should_run_ml == 'true' && !github.event.pull_request.head.repo.fork }}
|
if: ${{ needs.pre-job.outputs.should_run_ml == 'true' && !github.event.pull_request.head.repo.fork }}
|
||||||
env:
|
env:
|
||||||
GHCR_REPO: ghcr.io/${{ github.repository_owner }}/immich-machine-learning
|
GHCR_REPO: ghcr.io/${{ github.repository_owner }}/immich-machine-learning
|
||||||
@@ -287,12 +316,31 @@ jobs:
|
|||||||
- name: Create manifest list and push
|
- name: Create manifest list and push
|
||||||
working-directory: ${{ runner.temp }}/digests
|
working-directory: ${{ runner.temp }}/digests
|
||||||
run: |
|
run: |
|
||||||
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
|
# Process annotations
|
||||||
$(printf '${{ env.GHCR_REPO }}@sha256:%s ' *)
|
declare -a ANNOTATIONS=()
|
||||||
|
if [[ -n "$DOCKER_METADATA_OUTPUT_JSON" ]]; then
|
||||||
|
while IFS= read -r annotation; do
|
||||||
|
# Extract key and value by removing the manifest: prefix
|
||||||
|
if [[ "$annotation" =~ ^manifest:(.+)=(.+)$ ]]; then
|
||||||
|
key="${BASH_REMATCH[1]}"
|
||||||
|
value="${BASH_REMATCH[2]}"
|
||||||
|
# Use array to properly handle arguments with spaces
|
||||||
|
ANNOTATIONS+=(--annotation "index:$key=$value")
|
||||||
|
fi
|
||||||
|
done < <(jq -r '.annotations[]' <<< "$DOCKER_METADATA_OUTPUT_JSON")
|
||||||
|
fi
|
||||||
|
|
||||||
|
TAGS=$(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
|
||||||
|
SOURCE_ARGS=$(printf "${GHCR_REPO}@sha256:%s " *)
|
||||||
|
|
||||||
|
docker buildx imagetools create $TAGS "${ANNOTATIONS[@]}" $SOURCE_ARGS
|
||||||
|
|
||||||
build_and_push_server:
|
build_and_push_server:
|
||||||
name: Build and Push Server
|
name: Build and Push Server
|
||||||
runs-on: ${{ matrix.runner }}
|
runs-on: ${{ matrix.runner }}
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs.should_run_server == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_server == 'true' }}
|
||||||
env:
|
env:
|
||||||
@@ -316,6 +364,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
|
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
|
||||||
@@ -329,11 +379,14 @@ jobs:
|
|||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Generate cache key suffix
|
- name: Generate cache key suffix
|
||||||
|
env:
|
||||||
|
REF: ${{ github.ref_name }}
|
||||||
run: |
|
run: |
|
||||||
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
|
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
|
||||||
echo "CACHE_KEY_SUFFIX=pr-${{ github.event.number }}" >> $GITHUB_ENV
|
echo "CACHE_KEY_SUFFIX=pr-${{ github.event.number }}" >> $GITHUB_ENV
|
||||||
else
|
else
|
||||||
echo "CACHE_KEY_SUFFIX=$(echo ${{ github.ref_name }} | sed 's/[^a-zA-Z0-9]/-/g')" >> $GITHUB_ENV
|
SUFFIX=$(echo "${REF}" | sed 's/[^a-zA-Z0-9]/-/g')
|
||||||
|
echo "CACHE_KEY_SUFFIX=${SUFFIX}" >> $GITHUB_ENV
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Generate cache target
|
- name: Generate cache target
|
||||||
@@ -343,9 +396,15 @@ jobs:
|
|||||||
# Essentially just ignore the cache output (forks can't write to registry cache)
|
# Essentially just ignore the cache output (forks can't write to registry cache)
|
||||||
echo "cache-to=type=local,dest=/tmp/discard,ignore-error=true" >> $GITHUB_OUTPUT
|
echo "cache-to=type=local,dest=/tmp/discard,ignore-error=true" >> $GITHUB_OUTPUT
|
||||||
else
|
else
|
||||||
echo "cache-to=type=registry,ref=${{ env.GHCR_REPO }}-build-cache:${{ env.PLATFORM_PAIR }}-${{ matrix.device }}-${{ env.CACHE_KEY_SUFFIX }},mode=max,compression=zstd" >> $GITHUB_OUTPUT
|
echo "cache-to=type=registry,ref=${GHCR_REPO}-build-cache:${PLATFORM_PAIR}-${CACHE_KEY_SUFFIX},mode=max,compression=zstd" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
- name: Generate docker image tags
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5
|
||||||
|
env:
|
||||||
|
DOCKER_METADATA_PR_HEAD_SHA: 'true'
|
||||||
|
|
||||||
- name: Build and push image
|
- name: Build and push image
|
||||||
id: build
|
id: build
|
||||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
||||||
@@ -353,7 +412,7 @@ jobs:
|
|||||||
context: ${{ env.context }}
|
context: ${{ env.context }}
|
||||||
file: ${{ env.file }}
|
file: ${{ env.file }}
|
||||||
platforms: ${{ matrix.platform }}
|
platforms: ${{ matrix.platform }}
|
||||||
labels: ${{ steps.metadata.outputs.labels }}
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
cache-to: ${{ steps.cache-target.outputs.cache-to }}
|
cache-to: ${{ steps.cache-target.outputs.cache-to }}
|
||||||
cache-from: |
|
cache-from: |
|
||||||
type=registry,ref=${{ env.GHCR_REPO }}-build-cache:${{ env.PLATFORM_PAIR }}-${{ env.CACHE_KEY_SUFFIX }}
|
type=registry,ref=${{ env.GHCR_REPO }}-build-cache:${{ env.PLATFORM_PAIR }}-${{ env.CACHE_KEY_SUFFIX }}
|
||||||
@@ -383,6 +442,10 @@ jobs:
|
|||||||
merge_server:
|
merge_server:
|
||||||
name: Merge & Push Server
|
name: Merge & Push Server
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
actions: read
|
||||||
|
packages: write
|
||||||
if: ${{ needs.pre-job.outputs.should_run_server == 'true' && !github.event.pull_request.head.repo.fork }}
|
if: ${{ needs.pre-job.outputs.should_run_server == 'true' && !github.event.pull_request.head.repo.fork }}
|
||||||
env:
|
env:
|
||||||
GHCR_REPO: ghcr.io/${{ github.repository_owner }}/immich-server
|
GHCR_REPO: ghcr.io/${{ github.repository_owner }}/immich-server
|
||||||
@@ -441,12 +504,29 @@ jobs:
|
|||||||
- name: Create manifest list and push
|
- name: Create manifest list and push
|
||||||
working-directory: ${{ runner.temp }}/digests
|
working-directory: ${{ runner.temp }}/digests
|
||||||
run: |
|
run: |
|
||||||
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
|
# Process annotations
|
||||||
$(printf '${{ env.GHCR_REPO }}@sha256:%s ' *)
|
declare -a ANNOTATIONS=()
|
||||||
|
if [[ -n "$DOCKER_METADATA_OUTPUT_JSON" ]]; then
|
||||||
|
while IFS= read -r annotation; do
|
||||||
|
# Extract key and value by removing the manifest: prefix
|
||||||
|
if [[ "$annotation" =~ ^manifest:(.+)=(.+)$ ]]; then
|
||||||
|
key="${BASH_REMATCH[1]}"
|
||||||
|
value="${BASH_REMATCH[2]}"
|
||||||
|
# Use array to properly handle arguments with spaces
|
||||||
|
ANNOTATIONS+=(--annotation "index:$key=$value")
|
||||||
|
fi
|
||||||
|
done < <(jq -r '.annotations[]' <<< "$DOCKER_METADATA_OUTPUT_JSON")
|
||||||
|
fi
|
||||||
|
|
||||||
|
TAGS=$(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
|
||||||
|
SOURCE_ARGS=$(printf "${GHCR_REPO}@sha256:%s " *)
|
||||||
|
|
||||||
|
docker buildx imagetools create $TAGS "${ANNOTATIONS[@]}" $SOURCE_ARGS
|
||||||
|
|
||||||
success-check-server:
|
success-check-server:
|
||||||
name: Docker Build & Push Server Success
|
name: Docker Build & Push Server Success
|
||||||
needs: [merge_server, retag_server]
|
needs: [merge_server, retag_server]
|
||||||
|
permissions: {}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: always()
|
if: always()
|
||||||
steps:
|
steps:
|
||||||
@@ -460,6 +540,7 @@ jobs:
|
|||||||
success-check-ml:
|
success-check-ml:
|
||||||
name: Docker Build & Push ML Success
|
name: Docker Build & Push ML Success
|
||||||
needs: [merge_ml, retag_ml]
|
needs: [merge_ml, retag_ml]
|
||||||
|
permissions: {}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: always()
|
if: always()
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
12
.github/workflows/docs-build.yml
vendored
12
.github/workflows/docs-build.yml
vendored
@@ -10,14 +10,20 @@ concurrency:
|
|||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pre-job:
|
pre-job:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
outputs:
|
outputs:
|
||||||
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
||||||
with:
|
with:
|
||||||
@@ -33,6 +39,8 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
name: Docs Build
|
name: Docs Build
|
||||||
needs: pre-job
|
needs: pre-job
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
if: ${{ needs.pre-job.outputs.should_run == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
defaults:
|
defaults:
|
||||||
@@ -42,9 +50,11 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './docs/.nvmrc'
|
node-version-file: './docs/.nvmrc'
|
||||||
|
|
||||||
|
|||||||
20
.github/workflows/docs-deploy.yml
vendored
20
.github/workflows/docs-deploy.yml
vendored
@@ -9,6 +9,9 @@ jobs:
|
|||||||
checks:
|
checks:
|
||||||
name: Docs Deploy Checks
|
name: Docs Deploy Checks
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
actions: read
|
||||||
|
pull-requests: read
|
||||||
outputs:
|
outputs:
|
||||||
parameters: ${{ steps.parameters.outputs.result }}
|
parameters: ${{ steps.parameters.outputs.result }}
|
||||||
artifact: ${{ steps.get-artifact.outputs.result }}
|
artifact: ${{ steps.get-artifact.outputs.result }}
|
||||||
@@ -36,6 +39,8 @@ jobs:
|
|||||||
- name: Determine deploy parameters
|
- name: Determine deploy parameters
|
||||||
id: parameters
|
id: parameters
|
||||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
||||||
|
env:
|
||||||
|
HEAD_SHA: ${{ github.event.workflow_run.head_sha }}
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
const eventType = context.payload.workflow_run.event;
|
const eventType = context.payload.workflow_run.event;
|
||||||
@@ -57,7 +62,8 @@ jobs:
|
|||||||
} else if (eventType == "pull_request") {
|
} else if (eventType == "pull_request") {
|
||||||
let pull_number = context.payload.workflow_run.pull_requests[0]?.number;
|
let pull_number = context.payload.workflow_run.pull_requests[0]?.number;
|
||||||
if(!pull_number) {
|
if(!pull_number) {
|
||||||
const response = await github.rest.search.issuesAndPullRequests({q: 'repo:${{ github.repository }} is:pr sha:${{ github.event.workflow_run.head_sha }}',per_page: 1,})
|
const {HEAD_SHA} = process.env;
|
||||||
|
const response = await github.rest.search.issuesAndPullRequests({q: `repo:${{ github.repository }} is:pr sha:${HEAD_SHA}`,per_page: 1,})
|
||||||
const items = response.data.items
|
const items = response.data.items
|
||||||
if (items.length < 1) {
|
if (items.length < 1) {
|
||||||
throw new Error("No pull request found for the commit")
|
throw new Error("No pull request found for the commit")
|
||||||
@@ -95,10 +101,16 @@ jobs:
|
|||||||
name: Docs Deploy
|
name: Docs Deploy
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: checks
|
needs: checks
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
actions: read
|
||||||
|
pull-requests: write
|
||||||
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Load parameters
|
- name: Load parameters
|
||||||
id: parameters
|
id: parameters
|
||||||
@@ -162,9 +174,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Output Cleaning
|
- name: Output Cleaning
|
||||||
id: clean
|
id: clean
|
||||||
|
env:
|
||||||
|
TG_OUTPUT: ${{ steps.docs-output.outputs.tg_action_output }}
|
||||||
run: |
|
run: |
|
||||||
TG_OUT=$(echo '${{ steps.docs-output.outputs.tg_action_output }}' | sed 's|%0A|\n|g ; s|%3C|<|g' | jq -c .)
|
CLEANED=$(echo "$TG_OUTPUT" | sed 's|%0A|\n|g ; s|%3C|<|g' | jq -c .)
|
||||||
echo "output=$TG_OUT" >> $GITHUB_OUTPUT
|
echo "output=$CLEANED" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Publish to Cloudflare Pages
|
- name: Publish to Cloudflare Pages
|
||||||
uses: cloudflare/pages-action@f0a1cd58cd66095dee69bfa18fa5efd1dde93bca # v1
|
uses: cloudflare/pages-action@f0a1cd58cd66095dee69bfa18fa5efd1dde93bca # v1
|
||||||
|
|||||||
7
.github/workflows/docs-destroy.yml
vendored
7
.github/workflows/docs-destroy.yml
vendored
@@ -3,13 +3,20 @@ on:
|
|||||||
pull_request_target:
|
pull_request_target:
|
||||||
types: [closed]
|
types: [closed]
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy:
|
deploy:
|
||||||
name: Docs Destroy
|
name: Docs Destroy
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Destroy Docs Subdomain
|
- name: Destroy Docs Subdomain
|
||||||
env:
|
env:
|
||||||
|
|||||||
8
.github/workflows/fix-format.yml
vendored
8
.github/workflows/fix-format.yml
vendored
@@ -4,16 +4,19 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
types: [labeled]
|
types: [labeled]
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
fix-formatting:
|
fix-formatting:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: ${{ github.event.label.name == 'fix:formatting' }}
|
if: ${{ github.event.label.name == 'fix:formatting' }}
|
||||||
permissions:
|
permissions:
|
||||||
|
contents: write
|
||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- name: Generate a token
|
- name: Generate a token
|
||||||
id: generate-token
|
id: generate-token
|
||||||
uses: actions/create-github-app-token@af35edadc00be37caa72ed9f3e6d5f7801bfdf09 # v1
|
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
||||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||||
@@ -23,9 +26,10 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
ref: ${{ github.event.pull_request.head.ref }}
|
ref: ${{ github.event.pull_request.head.ref }}
|
||||||
token: ${{ steps.generate-token.outputs.token }}
|
token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
persist-credentials: true
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
|
|||||||
2
.github/workflows/pr-label-validation.yml
vendored
2
.github/workflows/pr-label-validation.yml
vendored
@@ -4,6 +4,8 @@ on:
|
|||||||
pull_request_target:
|
pull_request_target:
|
||||||
types: [opened, labeled, unlabeled, synchronize]
|
types: [opened, labeled, unlabeled, synchronize]
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
validate-release-label:
|
validate-release-label:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
2
.github/workflows/pr-labeler.yml
vendored
2
.github/workflows/pr-labeler.yml
vendored
@@ -2,6 +2,8 @@ name: 'Pull Request Labeler'
|
|||||||
on:
|
on:
|
||||||
- pull_request_target
|
- pull_request_target
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
labeler:
|
labeler:
|
||||||
permissions:
|
permissions:
|
||||||
|
|||||||
@@ -4,12 +4,16 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
types: [opened, synchronize, reopened, edited]
|
types: [opened, synchronize, reopened, edited]
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
validate-pr-title:
|
validate-pr-title:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- name: PR Conventional Commit Validation
|
- name: PR Conventional Commit Validation
|
||||||
uses: ytanikin/PRConventionalCommits@1.3.0
|
uses: ytanikin/PRConventionalCommits@b628c5a234cc32513014b7bfdd1e47b532124d98 # 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'
|
||||||
|
|||||||
24
.github/workflows/prepare-release.yml
vendored
24
.github/workflows/prepare-release.yml
vendored
@@ -21,17 +21,18 @@ concurrency:
|
|||||||
group: ${{ github.workflow }}-${{ github.ref }}-root
|
group: ${{ github.workflow }}-${{ github.ref }}-root
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
bump_version:
|
bump_version:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
outputs:
|
outputs:
|
||||||
ref: ${{ steps.push-tag.outputs.commit_long_sha }}
|
ref: ${{ steps.push-tag.outputs.commit_long_sha }}
|
||||||
|
permissions: {} # No job-level permissions are needed because it uses the app-token
|
||||||
steps:
|
steps:
|
||||||
- name: Generate a token
|
- name: Generate a token
|
||||||
id: generate-token
|
id: generate-token
|
||||||
uses: actions/create-github-app-token@af35edadc00be37caa72ed9f3e6d5f7801bfdf09 # v1
|
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
||||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||||
@@ -40,9 +41,10 @@ jobs:
|
|||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
with:
|
with:
|
||||||
token: ${{ steps.generate-token.outputs.token }}
|
token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
persist-credentials: true
|
||||||
|
|
||||||
- name: Install uv
|
- name: Install uv
|
||||||
uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5
|
uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # 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 }}"
|
||||||
@@ -59,18 +61,24 @@ jobs:
|
|||||||
build_mobile:
|
build_mobile:
|
||||||
uses: ./.github/workflows/build-mobile.yml
|
uses: ./.github/workflows/build-mobile.yml
|
||||||
needs: bump_version
|
needs: bump_version
|
||||||
secrets: inherit
|
secrets:
|
||||||
|
KEY_JKS: ${{ secrets.KEY_JKS }}
|
||||||
|
ALIAS: ${{ secrets.ALIAS }}
|
||||||
|
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
|
||||||
|
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
|
||||||
with:
|
with:
|
||||||
ref: ${{ needs.bump_version.outputs.ref }}
|
ref: ${{ needs.bump_version.outputs.ref }}
|
||||||
|
|
||||||
prepare_release:
|
prepare_release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: build_mobile
|
needs: build_mobile
|
||||||
|
permissions:
|
||||||
|
actions: read # To download the app artifact
|
||||||
|
# No content permissions are needed because it uses the app-token
|
||||||
steps:
|
steps:
|
||||||
- name: Generate a token
|
- name: Generate a token
|
||||||
id: generate-token
|
id: generate-token
|
||||||
uses: actions/create-github-app-token@af35edadc00be37caa72ed9f3e6d5f7801bfdf09 # v1
|
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2
|
||||||
with:
|
with:
|
||||||
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
||||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||||
@@ -79,6 +87,7 @@ jobs:
|
|||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
with:
|
with:
|
||||||
token: ${{ steps.generate-token.outputs.token }}
|
token: ${{ steps.generate-token.outputs.token }}
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Download APK
|
- name: Download APK
|
||||||
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
|
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4
|
||||||
@@ -90,6 +99,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
draft: true
|
draft: true
|
||||||
tag_name: ${{ env.IMMICH_VERSION }}
|
tag_name: ${{ env.IMMICH_VERSION }}
|
||||||
|
token: ${{ steps.generate-token.outputs.token }}
|
||||||
generate_release_notes: true
|
generate_release_notes: true
|
||||||
body_path: misc/release/notes.tmpl
|
body_path: misc/release/notes.tmpl
|
||||||
files: |
|
files: |
|
||||||
|
|||||||
2
.github/workflows/preview-label.yaml
vendored
2
.github/workflows/preview-label.yaml
vendored
@@ -4,6 +4,8 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
types: [labeled, closed]
|
types: [labeled, closed]
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
comment-status:
|
comment-status:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
10
.github/workflows/sdk.yml
vendored
10
.github/workflows/sdk.yml
vendored
@@ -4,20 +4,24 @@ on:
|
|||||||
release:
|
release:
|
||||||
types: [published]
|
types: [published]
|
||||||
|
|
||||||
permissions:
|
permissions: {}
|
||||||
packages: write
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
publish:
|
publish:
|
||||||
name: Publish `@immich/sdk`
|
name: Publish `@immich/sdk`
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./open-api/typescript-sdk
|
working-directory: ./open-api/typescript-sdk
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
# Setup .npmrc file to publish to npm
|
# Setup .npmrc file to publish to npm
|
||||||
- uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './open-api/typescript-sdk/.nvmrc'
|
node-version-file: './open-api/typescript-sdk/.nvmrc'
|
||||||
registry-url: 'https://registry.npmjs.org'
|
registry-url: 'https://registry.npmjs.org'
|
||||||
|
|||||||
24
.github/workflows/static_analysis.yml
vendored
24
.github/workflows/static_analysis.yml
vendored
@@ -9,14 +9,20 @@ concurrency:
|
|||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pre-job:
|
pre-job:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
outputs:
|
outputs:
|
||||||
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
||||||
with:
|
with:
|
||||||
@@ -33,15 +39,17 @@ jobs:
|
|||||||
name: Run Dart Code Analysis
|
name: Run Dart Code Analysis
|
||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs.should_run == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run == 'true' }}
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Flutter SDK
|
- name: Setup Flutter SDK
|
||||||
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # v2
|
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2
|
||||||
with:
|
with:
|
||||||
channel: 'stable'
|
channel: 'stable'
|
||||||
flutter-version-file: ./mobile/pubspec.yaml
|
flutter-version-file: ./mobile/pubspec.yaml
|
||||||
@@ -50,12 +58,16 @@ jobs:
|
|||||||
run: dart pub get
|
run: dart pub get
|
||||||
working-directory: ./mobile
|
working-directory: ./mobile
|
||||||
|
|
||||||
|
- name: Generate translation file
|
||||||
|
run: make translation; dart format lib/generated/codegen_loader.g.dart
|
||||||
|
working-directory: ./mobile
|
||||||
|
|
||||||
- name: Run Build Runner
|
- name: Run Build Runner
|
||||||
run: make build
|
run: make build
|
||||||
working-directory: ./mobile
|
working-directory: ./mobile
|
||||||
|
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@6ed7632824d235029086612d4330d659005af687 # v20
|
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
|
||||||
id: verify-changed-files
|
id: verify-changed-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
@@ -65,9 +77,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Verify files have not changed
|
- name: Verify files have not changed
|
||||||
if: steps.verify-changed-files.outputs.files_changed == 'true'
|
if: steps.verify-changed-files.outputs.files_changed == 'true'
|
||||||
|
env:
|
||||||
|
CHANGED_FILES: ${{ steps.verify-changed-files.outputs.changed_files }}
|
||||||
run: |
|
run: |
|
||||||
echo "ERROR: Generated files not up to date! Run make_build inside the mobile directory"
|
echo "ERROR: Generated files not up to date! Run make_build inside the mobile directory"
|
||||||
echo "Changed files: ${{ steps.verify-changed-files.outputs.changed_files }}"
|
echo "Changed files: ${CHANGED_FILES}"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
- name: Run dart analyze
|
- name: Run dart analyze
|
||||||
|
|||||||
132
.github/workflows/test.yml
vendored
132
.github/workflows/test.yml
vendored
@@ -9,9 +9,13 @@ concurrency:
|
|||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pre-job:
|
pre-job:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
outputs:
|
outputs:
|
||||||
should_run_web: ${{ steps.found_paths.outputs.web == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run_web: ${{ steps.found_paths.outputs.web == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
should_run_server: ${{ steps.found_paths.outputs.server == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
should_run_server: ${{ steps.found_paths.outputs.server == 'true' || steps.should_force.outputs.should_force == 'true' }}
|
||||||
@@ -25,6 +29,9 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
||||||
with:
|
with:
|
||||||
@@ -58,6 +65,8 @@ jobs:
|
|||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs.should_run_server == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_server == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./server
|
working-directory: ./server
|
||||||
@@ -65,9 +74,11 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -95,6 +106,8 @@ jobs:
|
|||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs.should_run_cli == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_cli == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./cli
|
working-directory: ./cli
|
||||||
@@ -102,9 +115,11 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './cli/.nvmrc'
|
node-version-file: './cli/.nvmrc'
|
||||||
|
|
||||||
@@ -136,6 +151,8 @@ jobs:
|
|||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs.should_run_cli == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_cli == 'true' }}
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./cli
|
working-directory: ./cli
|
||||||
@@ -143,9 +160,11 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './cli/.nvmrc'
|
node-version-file: './cli/.nvmrc'
|
||||||
|
|
||||||
@@ -170,6 +189,8 @@ jobs:
|
|||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs.should_run_web == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_web == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./web
|
working-directory: ./web
|
||||||
@@ -177,9 +198,11 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './web/.nvmrc'
|
node-version-file: './web/.nvmrc'
|
||||||
|
|
||||||
@@ -215,6 +238,8 @@ jobs:
|
|||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs.should_run_e2e == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_e2e == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./e2e
|
working-directory: ./e2e
|
||||||
@@ -222,9 +247,11 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './e2e/.nvmrc'
|
node-version-file: './e2e/.nvmrc'
|
||||||
|
|
||||||
@@ -254,6 +281,8 @@ jobs:
|
|||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs.should_run_server == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_server == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./server
|
working-directory: ./server
|
||||||
@@ -261,9 +290,11 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -279,6 +310,8 @@ jobs:
|
|||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs.should_run_e2e_server_cli == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_e2e_server_cli == 'true' }}
|
||||||
runs-on: mich
|
runs-on: mich
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./e2e
|
working-directory: ./e2e
|
||||||
@@ -287,10 +320,11 @@ jobs:
|
|||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
with:
|
with:
|
||||||
|
persist-credentials: false
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './e2e/.nvmrc'
|
node-version-file: './e2e/.nvmrc'
|
||||||
|
|
||||||
@@ -321,6 +355,8 @@ jobs:
|
|||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs.should_run_e2e_web == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_e2e_web == 'true' }}
|
||||||
runs-on: mich
|
runs-on: mich
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./e2e
|
working-directory: ./e2e
|
||||||
@@ -329,10 +365,11 @@ jobs:
|
|||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
with:
|
with:
|
||||||
|
persist-credentials: false
|
||||||
submodules: 'recursive'
|
submodules: 'recursive'
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './e2e/.nvmrc'
|
node-version-file: './e2e/.nvmrc'
|
||||||
|
|
||||||
@@ -362,10 +399,15 @@ jobs:
|
|||||||
needs: pre-job
|
needs: pre-job
|
||||||
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
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Flutter SDK
|
- name: Setup Flutter SDK
|
||||||
uses: subosito/flutter-action@44ac965b96f18d999802d4b807e3256d5a3f9fa1 # v2
|
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2
|
||||||
with:
|
with:
|
||||||
channel: 'stable'
|
channel: 'stable'
|
||||||
flutter-version-file: ./mobile/pubspec.yaml
|
flutter-version-file: ./mobile/pubspec.yaml
|
||||||
@@ -378,14 +420,19 @@ jobs:
|
|||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs.should_run_ml == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run_ml == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./machine-learning
|
working-directory: ./machine-learning
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Install uv
|
- name: Install uv
|
||||||
uses: astral-sh/setup-uv@f94ec6bedd8674c4426838e6b50417d36b6ab231 # v5
|
uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5
|
||||||
- uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5
|
- uses: actions/setup-python@8d9ed9ac5c53483de85588cdf95a591a75ab9f55 # 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,32 +442,36 @@ 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 app export
|
uv run ruff check --output-format=github immich_ml
|
||||||
- name: Check black formatting
|
- name: Check black formatting
|
||||||
run: |
|
run: |
|
||||||
uv run black --check app export
|
uv run black --check immich_ml
|
||||||
- name: Run mypy type checking
|
- name: Run mypy type checking
|
||||||
run: |
|
run: |
|
||||||
uv run mypy --strict app/
|
uv run mypy --strict immich_ml/
|
||||||
- name: Run tests and coverage
|
- name: Run tests and coverage
|
||||||
run: |
|
run: |
|
||||||
uv run pytest app --cov=app --cov-report term-missing
|
uv run pytest --cov=immich_ml --cov-report term-missing
|
||||||
|
|
||||||
github-files-formatting:
|
github-files-formatting:
|
||||||
name: .github Files Formatting
|
name: .github Files Formatting
|
||||||
needs: pre-job
|
needs: pre-job
|
||||||
if: ${{ needs.pre-job.outputs['should_run_.github'] == 'true' }}
|
if: ${{ needs.pre-job.outputs['should_run_.github'] == 'true' }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
working-directory: ./.github
|
working-directory: ./.github
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './.github/.nvmrc'
|
node-version-file: './.github/.nvmrc'
|
||||||
|
|
||||||
@@ -434,25 +485,34 @@ jobs:
|
|||||||
shellcheck:
|
shellcheck:
|
||||||
name: ShellCheck
|
name: ShellCheck
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Run ShellCheck
|
- name: Run ShellCheck
|
||||||
uses: ludeeus/action-shellcheck@master
|
uses: ludeeus/action-shellcheck@master
|
||||||
with:
|
with:
|
||||||
ignore_paths: >-
|
ignore_paths: >-
|
||||||
**/open-api/**
|
**/open-api/**
|
||||||
**/openapi/**
|
**/openapi**
|
||||||
**/node_modules/**
|
**/node_modules/**
|
||||||
|
|
||||||
generated-api-up-to-date:
|
generated-api-up-to-date:
|
||||||
name: OpenAPI Clients
|
name: OpenAPI Clients
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -466,7 +526,7 @@ jobs:
|
|||||||
run: make open-api
|
run: make open-api
|
||||||
|
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@6ed7632824d235029086612d4330d659005af687 # v20
|
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
|
||||||
id: verify-changed-files
|
id: verify-changed-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
@@ -476,14 +536,18 @@ jobs:
|
|||||||
|
|
||||||
- name: Verify files have not changed
|
- name: Verify files have not changed
|
||||||
if: steps.verify-changed-files.outputs.files_changed == 'true'
|
if: steps.verify-changed-files.outputs.files_changed == 'true'
|
||||||
|
env:
|
||||||
|
CHANGED_FILES: ${{ steps.verify-changed-files.outputs.changed_files }}
|
||||||
run: |
|
run: |
|
||||||
echo "ERROR: Generated files not up to date!"
|
echo "ERROR: Generated files not up to date!"
|
||||||
echo "Changed files: ${{ steps.verify-changed-files.outputs.changed_files }}"
|
echo "Changed files: ${CHANGED_FILES}"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
generated-typeorm-migrations-up-to-date:
|
generated-typeorm-migrations-up-to-date:
|
||||||
name: TypeORM Checks
|
name: TypeORM Checks
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52
|
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:739cdd626151ff1f796dc95a6591b55a714f341c737e27f045019ceabf8e8c52
|
||||||
@@ -505,9 +569,11 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Setup Node
|
- name: Setup Node
|
||||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4
|
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
|
||||||
with:
|
with:
|
||||||
node-version-file: './server/.nvmrc'
|
node-version-file: './server/.nvmrc'
|
||||||
|
|
||||||
@@ -518,27 +584,29 @@ jobs:
|
|||||||
run: npm run build
|
run: npm run build
|
||||||
|
|
||||||
- name: Run existing migrations
|
- name: Run existing migrations
|
||||||
run: npm run typeorm:migrations:run
|
run: npm run 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 schema:reset
|
||||||
|
|
||||||
- name: Generate new migrations
|
- name: Generate new migrations
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: npm run typeorm:migrations:generate ./src/migrations/TestMigration
|
run: npm run migrations:generate TestMigration
|
||||||
|
|
||||||
- name: Find file changes
|
- name: Find file changes
|
||||||
uses: tj-actions/verify-changed-files@6ed7632824d235029086612d4330d659005af687 # v20
|
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
|
||||||
id: verify-changed-files
|
id: verify-changed-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
server/src/migrations/
|
server/src
|
||||||
- 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'
|
||||||
|
env:
|
||||||
|
CHANGED_FILES: ${{ steps.verify-changed-files.outputs.changed_files }}
|
||||||
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: ${CHANGED_FILES}"
|
||||||
cat ./src/migrations/*-TestMigration.ts
|
cat ./src/*-TestMigration.ts
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
- name: Run SQL generation
|
- name: Run SQL generation
|
||||||
@@ -547,7 +615,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@6ed7632824d235029086612d4330d659005af687 # v20
|
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20
|
||||||
id: verify-changed-sql-files
|
id: verify-changed-sql-files
|
||||||
with:
|
with:
|
||||||
files: |
|
files: |
|
||||||
@@ -555,9 +623,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Verify SQL files have not changed
|
- name: Verify SQL files have not changed
|
||||||
if: steps.verify-changed-sql-files.outputs.files_changed == 'true'
|
if: steps.verify-changed-sql-files.outputs.files_changed == 'true'
|
||||||
|
env:
|
||||||
|
CHANGED_FILES: ${{ steps.verify-changed-sql-files.outputs.changed_files }}
|
||||||
run: |
|
run: |
|
||||||
echo "ERROR: Generated SQL files not up to date!"
|
echo "ERROR: Generated SQL files not up to date!"
|
||||||
echo "Changed files: ${{ steps.verify-changed-sql-files.outputs.changed_files }}"
|
echo "Changed files: ${CHANGED_FILES}"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
||||||
# mobile-integration-tests:
|
# mobile-integration-tests:
|
||||||
|
|||||||
13
.github/workflows/weblate-lock.yml
vendored
13
.github/workflows/weblate-lock.yml
vendored
@@ -4,30 +4,32 @@ on:
|
|||||||
pull_request:
|
pull_request:
|
||||||
branches: [main]
|
branches: [main]
|
||||||
|
|
||||||
|
permissions: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
pre-job:
|
pre-job:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
outputs:
|
outputs:
|
||||||
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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||||
|
with:
|
||||||
|
persist-credentials: false
|
||||||
- id: found_paths
|
- id: found_paths
|
||||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3
|
||||||
with:
|
with:
|
||||||
filters: |
|
filters: |
|
||||||
i18n:
|
i18n:
|
||||||
- 'i18n/!(en)**\.json'
|
- 'i18n/!(en)**\.json'
|
||||||
- name: Debug
|
|
||||||
run: |
|
|
||||||
echo "Should run: ${{ steps.found_paths.outputs.i18n == 'true' && github.head_ref != 'chore/translations'}}"
|
|
||||||
echo "Found i18n paths: ${{ steps.found_paths.outputs.i18n }}"
|
|
||||||
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
|
||||||
|
permissions: {}
|
||||||
if: ${{ needs.pre-job.outputs.should_run == 'true' }}
|
if: ${{ needs.pre-job.outputs.should_run == 'true' }}
|
||||||
steps:
|
steps:
|
||||||
- name: Check weblate lock
|
- name: Check weblate lock
|
||||||
@@ -47,6 +49,7 @@ jobs:
|
|||||||
name: Weblate Lock Check Success
|
name: Weblate Lock Check Success
|
||||||
needs: [enforce-lock]
|
needs: [enforce-lock]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
permissions: {}
|
||||||
if: always()
|
if: always()
|
||||||
steps:
|
steps:
|
||||||
- name: Any jobs failed?
|
- name: Any jobs failed?
|
||||||
|
|||||||
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -39,6 +39,7 @@
|
|||||||
],
|
],
|
||||||
"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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -61,9 +61,7 @@
|
|||||||
|
|
||||||
## Demo
|
## Demo
|
||||||
|
|
||||||
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.
|
Access the demo [here](https://demo.immich.app). For the mobile app, you can use `https://demo.immich.app` for the `Server Endpoint URL`.
|
||||||
|
|
||||||
For the mobile app, you can use `https://demo.immich.app` for the `Server Endpoint URL`
|
|
||||||
|
|
||||||
### Login credentials
|
### Login credentials
|
||||||
|
|
||||||
@@ -104,7 +102,7 @@ For the mobile app, you can use `https://demo.immich.app` for the `Server Endpoi
|
|||||||
| 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 | No | Yes |
|
| Folder View | Yes | Yes |
|
||||||
|
|
||||||
## Translations
|
## Translations
|
||||||
|
|
||||||
|
|||||||
@@ -1,39 +1,29 @@
|
|||||||
import { FlatCompat } from '@eslint/eslintrc';
|
|
||||||
import js from '@eslint/js';
|
import js from '@eslint/js';
|
||||||
import typescriptEslint from '@typescript-eslint/eslint-plugin';
|
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
|
||||||
import tsParser from '@typescript-eslint/parser';
|
import eslintPluginUnicorn from 'eslint-plugin-unicorn';
|
||||||
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 [
|
export default typescriptEslint.config([
|
||||||
|
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: tsParser,
|
parser: typescriptEslint.parser,
|
||||||
ecmaVersion: 5,
|
ecmaVersion: 5,
|
||||||
sourceType: 'module',
|
sourceType: 'module',
|
||||||
|
|
||||||
@@ -58,4 +48,4 @@ export default [
|
|||||||
'object-shorthand': ['error', 'always'],
|
'object-shorthand': ['error', 'always'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
]);
|
||||||
|
|||||||
1983
cli/package-lock.json
generated
1983
cli/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@immich/cli",
|
"name": "@immich/cli",
|
||||||
"version": "2.2.54",
|
"version": "2.2.61",
|
||||||
"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,9 +21,7 @@
|
|||||||
"@types/lodash-es": "^4.17.12",
|
"@types/lodash-es": "^4.17.12",
|
||||||
"@types/micromatch": "^4.0.9",
|
"@types/micromatch": "^4.0.9",
|
||||||
"@types/mock-fs": "^4.13.1",
|
"@types/mock-fs": "^4.13.1",
|
||||||
"@types/node": "^22.13.10",
|
"@types/node": "^22.14.0",
|
||||||
"@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",
|
||||||
@@ -31,12 +29,13 @@
|
|||||||
"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": "^56.0.1",
|
"eslint-plugin-unicorn": "^57.0.0",
|
||||||
"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",
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ services:
|
|||||||
|
|
||||||
redis:
|
redis:
|
||||||
container_name: immich_redis
|
container_name: immich_redis
|
||||||
image: redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8
|
image: docker.io/valkey/valkey:8-bookworm@sha256:42cba146593a5ea9a622002c1b7cba5da7be248650cbb64ecb9c6c33d29794b1
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: redis-cli ping || exit 1
|
test: redis-cli ping || exit 1
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ services:
|
|||||||
|
|
||||||
redis:
|
redis:
|
||||||
container_name: immich_redis
|
container_name: immich_redis
|
||||||
image: redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8
|
image: docker.io/valkey/valkey:8-bookworm@sha256:42cba146593a5ea9a622002c1b7cba5da7be248650cbb64ecb9c6c33d29794b1
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: redis-cli ping || exit 1
|
test: redis-cli ping || exit 1
|
||||||
restart: always
|
restart: always
|
||||||
@@ -102,7 +102,7 @@ services:
|
|||||||
command: [ './run.sh', '-disable-reporting' ]
|
command: [ './run.sh', '-disable-reporting' ]
|
||||||
ports:
|
ports:
|
||||||
- 3000:3000
|
- 3000:3000
|
||||||
image: grafana/grafana:11.5.2-ubuntu@sha256:8b5858c447e06fd7a89006b562ba7bba7c4d5813600c7982374c41852adefaeb
|
image: grafana/grafana:11.6.0-ubuntu@sha256:fd8fa48213c624e1a95122f1d93abbf1cf1cbe85fc73212c1e599dbd76c63ff8
|
||||||
volumes:
|
volumes:
|
||||||
- grafana-data:/var/lib/grafana
|
- grafana-data:/var/lib/grafana
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ services:
|
|||||||
|
|
||||||
redis:
|
redis:
|
||||||
container_name: immich_redis
|
container_name: immich_redis
|
||||||
image: docker.io/redis:6.2-alpine@sha256:148bb5411c184abd288d9aaed139c98123eeb8824c5d3fce03cf721db58066d8
|
image: docker.io/valkey/valkey:8-bookworm@sha256:42cba146593a5ea9a622002c1b7cba5da7be248650cbb64ecb9c6c33d29794b1
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: redis-cli ping || exit 1
|
test: redis-cli ping || exit 1
|
||||||
restart: always
|
restart: always
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
# 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
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 16 KiB |
@@ -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 using the value 0 (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 by leaving it empty (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.
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
# Database Migrations
|
# Database Migrations
|
||||||
|
|
||||||
After making any changes in the `server/src/entities`, a database migration need to run in order to register the changes in the database. Follow the steps below to create a new migration.
|
After making any changes in the `server/src/schema`, a database migration need to run in order to register the changes in the database. Follow the steps below to create a new migration.
|
||||||
|
|
||||||
1. Run the command
|
1. Run the command
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm run typeorm:migrations:generate <migration-name>
|
npm run migrations:generate <migration-name>
|
||||||
```
|
```
|
||||||
|
|
||||||
2. Check if the migration file makes sense.
|
2. Check if the migration file makes sense.
|
||||||
3. Move the migration file to folder `./server/src/migrations` in your code editor.
|
3. Move the migration file to folder `./server/src/schema/migrations` in your code editor.
|
||||||
|
|
||||||
The server will automatically detect `*.ts` file changes and restart. Part of the server start-up process includes running any new migrations, so it will be applied immediately.
|
The server will automatically detect `*.ts` file changes and restart. Part of the server start-up process includes running any new migrations, so it will be applied immediately.
|
||||||
|
|||||||
@@ -63,6 +63,13 @@ 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:
|
||||||
@@ -76,9 +83,20 @@ To see local changes to `@immich/ui` in Immich, do the following:
|
|||||||
|
|
||||||
### Mobile app
|
### Mobile app
|
||||||
|
|
||||||
The mobile app `(/mobile)` will required Flutter toolchain 3.13.x and FVM to be installed on your system.
|
#### Setup
|
||||||
|
|
||||||
Please refer to the [Flutter's official documentation](https://flutter.dev/docs/get-started/install) for more information on setting up the toolchain on your machine.
|
1. Setup Flutter toolchain using FVM.
|
||||||
|
2. Run `flutter pub get` to install the dependencies.
|
||||||
|
3. Run `make translation` to generate the translation file.
|
||||||
|
4. Run `fvm flutter run` to start the app.
|
||||||
|
|
||||||
|
#### Translation
|
||||||
|
|
||||||
|
To add a new translation text, enter the key-value pair in the `i18n/en.json` in the root of the immich project. Then, from the `mobile/` directory, run
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make translation
|
||||||
|
```
|
||||||
|
|
||||||
The mobile app asks you what backend to connect to. You can utilize the demo backend (https://demo.immich.app/) if you don't need to change server code or upload photos. Alternatively, you can run the server yourself per the instructions above.
|
The mobile app asks you what backend to connect to. You can utilize the demo backend (https://demo.immich.app/) if you don't need to change server code or upload photos. Alternatively, you can run the server yourself per the instructions above.
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,12 @@ docker run -it -v "$(pwd)":/import:ro -e IMMICH_INSTANCE_URL=https://your-immich
|
|||||||
|
|
||||||
Please modify the `IMMICH_INSTANCE_URL` and `IMMICH_API_KEY` environment variables as suitable. You can also use a Docker env file to store your sensitive API key.
|
Please modify the `IMMICH_INSTANCE_URL` and `IMMICH_API_KEY` environment variables as suitable. You can also use a Docker env file to store your sensitive API key.
|
||||||
|
|
||||||
|
This `docker run` command will directly run the command `immich` inside the container. You can directly append the desired parameters (see under "usage") to the commandline like this:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -it -v "$(pwd)":/import:ro -e IMMICH_INSTANCE_URL=https://your-immich-instance/api -e IMMICH_API_KEY=your-api-key ghcr.io/immich-app/immich-cli:latest upload -a -c 5 --recursive directory/
|
||||||
|
```
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@@ -112,7 +118,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/`. 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/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.
|
||||||
|
|
||||||
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 |
@@ -71,7 +71,7 @@ You do not need to redo any machine learning jobs after enabling hardware accele
|
|||||||
|
|
||||||
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] to the `image` section's tag at the end of the line.
|
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.
|
||||||
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
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ Some search examples:
|
|||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem value="Mobile" label="Mobile">
|
<TabItem value="Mobile" label="Mobile">
|
||||||
|
|
||||||
<img src={require('./img/moblie-smart-serach.webp').default} width="30%" title='Smart search on mobile' />
|
<img src={require('./img/mobile-smart-search.webp').default} width="30%" title='Smart search on mobile' />
|
||||||
|
|
||||||
</TabItem>
|
</TabItem>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
@@ -56,7 +56,20 @@ Navigating to `Administration > Settings > Machine Learning Settings > Smart Sea
|
|||||||
|
|
||||||
### CLIP models
|
### CLIP models
|
||||||
|
|
||||||
More powerful models can be used for more accurate search results, but are slower and can require more server resources. Check the dropdowns below to see how they compare in memory usage, speed and quality by language.
|
The default search model is fast, but there are many other options that can provide better search results. The tradeoff of using these models is that they're slower and/or use more memory (both when indexing images with background Smart Search jobs and when searching).
|
||||||
|
|
||||||
|
The first step of choosing the right model for you is to know which languages your users will search in.
|
||||||
|
|
||||||
|
If your users will only search in English, then the [CLIP][huggingface-clip] section is the first place to look. This is a curated list of the models that generally perform the best for their size class. The models here are ordered from higher to lower quality. This means that the top models will generally rank the most relevant results higher and have a higher capacity to understand descriptive, detailed, and/or niche queries. The models are also generally ordered from larger to smaller, so consider the impact on memory usage, job processing and search speed when deciding on one. The smaller models in this list are not too different in quality and many times faster.
|
||||||
|
|
||||||
|
[Multilingual models][huggingface-multilingual-clip] are also available so users can search in their native language. Use these models if you expect non-English searches to be common. They can be separated into two search patterns:
|
||||||
|
|
||||||
|
- `nllb` models expect the search query to be in the language specified in the user settings
|
||||||
|
- `xlm` and `siglip2` models understand search text regardless of the current language setting
|
||||||
|
|
||||||
|
`nllb` models tend to perform the best and are recommended when users primarily searches in their native, non-English language. `xlm` and `siglip2` models are more flexible and are recommended for mixed language search, where the same user might search in different languages at different times.
|
||||||
|
|
||||||
|
For more details, check the tables below to see how they compare in memory usage, speed and quality by language.
|
||||||
|
|
||||||
Once you've chosen a model, follow these steps:
|
Once you've chosen a model, follow these steps:
|
||||||
|
|
||||||
@@ -81,7 +94,7 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
|
|
||||||
**Memory (MiB)**: The peak RSS usage of the process afer performing the above timing benchmark. Does not include image decoding, concurrent processing, the web server, etc., which are relatively constant factors.
|
**Memory (MiB)**: The peak RSS usage of the process afer performing the above timing benchmark. Does not include image decoding, concurrent processing, the web server, etc., which are relatively constant factors.
|
||||||
|
|
||||||
**Recall (%)**: Evaluated on Crossmodal-3600, the average of the recall@1, recall@5 and recall@10 results for zeroshot image retrieval.
|
**Recall (%)**: Evaluated on Crossmodal-3600, the average of the recall@1, recall@5 and recall@10 results for zeroshot image retrieval. Chinese (Simplified), English, French, German, Italian, Japanese, Korean, Polish, Russian, Spanish and Turkish are additionally tested on XTD-10. Chinese (Simplified) and English are additionally tested on Flickr30k. The recall metrics are the average across all tested datasets.
|
||||||
|
|
||||||
**Pareto Optimal**: Whether the model is not completely outclassed by another model. Try to use models that are optimal for the languages relevant to you. Specifically, for a given model and language, if there's another model that's better for that language in at least one respect (memory usage, execution time, recall) while being at least as good for that language in every other way, then the model is not optimal for that language.
|
**Pareto Optimal**: Whether the model is not completely outclassed by another model. Try to use models that are optimal for the languages relevant to you. Specifically, for a given model and language, if there's another model that's better for that language in at least one respect (memory usage, execution time, recall) while being at least as good for that language in every other way, then the model is not optimal for that language.
|
||||||
|
|
||||||
@@ -93,59 +106,59 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
<summary>English</summary>
|
<summary>English</summary>
|
||||||
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 75.73 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 85.99 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 75.44 | ✅ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 85.96 | ❌ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 75.19 | ✅ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 85.96 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 75.09 | ❌ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 85.93 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 75.07 | ❌ |
|
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 85.78 | ❌ |
|
||||||
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 75.01 | ❌ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 85.75 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 74.92 | ❌ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 85.62 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 74.9 | ❌ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 85.53 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 74.87 | ❌ |
|
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 85.48 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 74.87 | ❌ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 85.47 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 74.77 | ❌ |
|
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 85.09 | ❌ |
|
||||||
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 74.28 | ❌ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 85.03 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 74.26 | ✅ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 84.86 | ✅ |
|
||||||
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 73.15 | ✅ |
|
| ViT-SO400M-14-SigLIP-384__webli | 4417 | 72.19 | 84.61 | ❌ |
|
||||||
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 72.78 | ✅ |
|
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 84.17 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP-384__webli | 4417 | 72.19 | 72.58 | ❌ |
|
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 83.51 | ❌ |
|
||||||
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 72.57 | ❌ |
|
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 83.28 | ✅ |
|
||||||
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 72.47 | ✅ |
|
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 83.24 | ❌ |
|
||||||
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 72.45 | ✅ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 83.23 | ❌ |
|
||||||
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 72.44 | ❌ |
|
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 83.19 | ✅ |
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 72.37 | ❌ |
|
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 82.54 | ❌ |
|
||||||
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 71.64 | ✅ |
|
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 82.43 | ❌ |
|
||||||
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 71.63 | ❌ |
|
| ViT-H-14__laion2b-s32b-b79k | 4676 | 39.06 | 82.36 | ❌ |
|
||||||
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 71.45 | ❌ |
|
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 82.28 | ✅ |
|
||||||
| ViT-H-14__laion2b-s32b-b79k | 4676 | 39.06 | 71.33 | ❌ |
|
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 81.9 | ✅ |
|
||||||
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 71.19 | ❌ |
|
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 81.9 | ❌ |
|
||||||
| ViT-L-14__laion2b-s32b-b82k | 2233 | 20.56 | 69.86 | ❌ |
|
| ViT-L-14__laion2b-s32b-b82k | 2233 | 20.56 | 80.82 | ❌ |
|
||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 69.66 | ❌ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 80.65 | ❌ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 69.38 | ❌ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 80.16 | ❌ |
|
||||||
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 68.78 | ✅ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 79.78 | ❌ |
|
||||||
| ViT-L-14__laion400m_e31 | 2183 | 19.87 | 68.53 | ❌ |
|
| ViT-L-14__laion400m_e31 | 2183 | 19.87 | 78.64 | ❌ |
|
||||||
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 68.53 | ❌ |
|
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 78.6 | ❌ |
|
||||||
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 68.53 | ❌ |
|
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 78.06 | ❌ |
|
||||||
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 68.51 | ❌ |
|
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 78.06 | ❌ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 68.41 | ❌ |
|
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 77.62 | ✅ |
|
||||||
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 68.41 | ❌ |
|
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 77.47 | ❌ |
|
||||||
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 68.33 | ❌ |
|
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 76.91 | ❌ |
|
||||||
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 66.96 | ✅ |
|
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 76.43 | ✅ |
|
||||||
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 66.95 | ✅ |
|
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 76.35 | ❌ |
|
||||||
| ViT-B-32__laion400m_e31 | 999 | 2.28 | 65.65 | ✅ |
|
| ViT-B-32__laion400m_e31 | 999 | 2.28 | 73.83 | ✅ |
|
||||||
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 65.49 | ❌ |
|
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 73.62 | ❌ |
|
||||||
| ViT-L-14__openai | 2212 | 19.91 | 60.12 | ❌ |
|
| RN50x64__openai | 5079 | 48.79 | 73.34 | ❌ |
|
||||||
| ViT-B-32__openai | 1004 | 2.26 | 59.37 | ✅ |
|
| ViT-L-14__openai | 2212 | 19.91 | 72.99 | ❌ |
|
||||||
| RN50x64__openai | 5079 | 48.79 | 59.36 | ❌ |
|
| ViT-L-14-336__openai | 2616 | 43.45 | 72.76 | ❌ |
|
||||||
| RN50x16__openai | 2221 | 15.87 | 59.17 | ❌ |
|
| RN50x16__openai | 2221 | 15.87 | 72.59 | ❌ |
|
||||||
| ViT-L-14-336__openai | 2616 | 43.45 | 59.09 | ❌ |
|
| RN50x4__openai | 1416 | 5.85 | 70.8 | ❌ |
|
||||||
| RN50__openai | 913 | 2.39 | 58.32 | ✅ |
|
| ViT-B-16__openai | 985 | 5.03 | 70.01 | ❌ |
|
||||||
| ViT-B-16__openai | 985 | 5.03 | 58.27 | ❌ |
|
| ViT-B-32__openai | 1004 | 2.26 | 69.9 | ✅ |
|
||||||
| RN50x4__openai | 1416 | 5.85 | 57.88 | ❌ |
|
| RN101__openai | 1111 | 3.21 | 69.3 | ❌ |
|
||||||
| RN50__cc12m | 914 | 2.37 | 57.75 | ✅ |
|
| RN50__openai | 913 | 2.39 | 69.02 | ✅ |
|
||||||
| RN101__openai | 1111 | 3.21 | 57.7 | ❌ |
|
| RN50__cc12m | 914 | 2.37 | 64.59 | ✅ |
|
||||||
| RN101__yfcc15m | 1111 | 3.22 | 50.11 | ❌ |
|
| RN101__yfcc15m | 1111 | 3.22 | 55.21 | ❌ |
|
||||||
| RN50__yfcc15m | 908 | 2.34 | 48.28 | ✅ |
|
| RN50__yfcc15m | 908 | 2.34 | 53.63 | ✅ |
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>Arabic</summary>
|
<summary>Arabic</summary>
|
||||||
@@ -156,8 +169,8 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 74.03 | ✅ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 74.03 | ✅ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 73.19 | ✅ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 73.19 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 69.31 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 69.31 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 69.29 | ❌ |
|
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 69.29 | ❌ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 69.29 | ❌ |
|
||||||
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 69.29 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 68.64 | ✅ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 68.64 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 68.35 | ✅ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 68.35 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 68.25 | ✅ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 68.25 | ✅ |
|
||||||
@@ -195,25 +208,25 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
<summary>Chinese (Simplified)</summary>
|
<summary>Chinese (Simplified)</summary>
|
||||||
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 77.49 | ✅ |
|
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 79.7 | ✅ |
|
||||||
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 77.19 | ✅ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 78.94 | ❌ |
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 76.98 | ❌ |
|
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 75.22 | ✅ |
|
||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 72.89 | ✅ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 74.8 | ✅ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 72.65 | ✅ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 73.91 | ❌ |
|
||||||
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 72.52 | ✅ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 72.8 | ❌ |
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 67.83 | ❌ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 72.77 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 67.81 | ❌ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 72.41 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 67.51 | ❌ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 72.36 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 67.39 | ❌ |
|
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 71.59 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 67.33 | ❌ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 71.37 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 67.23 | ❌ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 71.3 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 67.05 | ❌ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 71.11 | ✅ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 66.87 | ✅ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 70.95 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 66.24 | ❌ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 70.51 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 66.1 | ✅ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 67.48 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 65.56 | ❌ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 66.84 | ✅ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 64.39 | ❌ |
|
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 65.7 | ✅ |
|
||||||
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 62.56 | ❌ |
|
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 63.38 | ❌ |
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>Croatian</summary>
|
<summary>Croatian</summary>
|
||||||
@@ -324,8 +337,8 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 80.05 | ✅ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 80.05 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 79.81 | ❌ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 79.81 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 79.72 | ❌ |
|
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 79.72 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 79.72 | ✅ |
|
||||||
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 79.72 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 79.64 | ✅ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 79.64 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 79.49 | ✅ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 79.49 | ✅ |
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 79.41 | ❌ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 79.41 | ❌ |
|
||||||
@@ -357,8 +370,8 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 29.56 | ❌ |
|
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 29.56 | ❌ |
|
||||||
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 29.54 | ✅ |
|
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 29.54 | ✅ |
|
||||||
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 29.36 | ❌ |
|
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 29.36 | ❌ |
|
||||||
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 27.76 | ❌ |
|
|
||||||
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 27.76 | ❌ |
|
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 27.76 | ❌ |
|
||||||
|
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 27.76 | ❌ |
|
||||||
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 25.67 | ✅ |
|
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 25.67 | ✅ |
|
||||||
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 25.59 | ❌ |
|
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 25.59 | ❌ |
|
||||||
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 25.53 | ❌ |
|
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 25.53 | ❌ |
|
||||||
@@ -384,8 +397,8 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 34.27 | ❌ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 34.27 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 34.14 | ❌ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 34.14 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 33.98 | ❌ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 33.98 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 30.57 | ❌ |
|
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 30.57 | ❌ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 30.57 | ❌ |
|
||||||
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 30.57 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 30.05 | ✅ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 30.05 | ✅ |
|
||||||
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 24.92 | ❌ |
|
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 24.92 | ❌ |
|
||||||
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 24.02 | ❌ |
|
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 24.02 | ❌ |
|
||||||
@@ -422,110 +435,111 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
<summary>French</summary>
|
<summary>French</summary>
|
||||||
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 88.01 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 86.5 | ✅ |
|
||||||
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 87.74 | ❌ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 86.5 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 87.69 | ✅ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 86.39 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 87.6 | ✅ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 86.15 | ❌ |
|
||||||
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 87.58 | ✅ |
|
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 86.1 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 87.51 | ✅ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 86.07 | ❌ |
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 87.23 | ❌ |
|
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 86.06 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 86.9 | ✅ |
|
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 85.89 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 86.9 | ✅ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 85.67 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 86.44 | ✅ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 85.67 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 86.44 | ❌ |
|
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 85.63 | ❌ |
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 86.28 | ❌ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 85.39 | ✅ |
|
||||||
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 86.11 | ❌ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 85.35 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 86.08 | ✅ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 84.97 | ✅ |
|
||||||
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 84.49 | ❌ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 83.8 | ✅ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 84.3 | ✅ |
|
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 82.96 | ❌ |
|
||||||
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 83.03 | ✅ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 82.91 | ✅ |
|
||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 82.93 | ❌ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 82.52 | ❌ |
|
||||||
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 82.27 | ✅ |
|
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 81.21 | ✅ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 82.14 | ❌ |
|
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 80.23 | ✅ |
|
||||||
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 80.96 | ❌ |
|
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 79.85 | ❌ |
|
||||||
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 80.64 | ❌ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 79.47 | ✅ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 80.28 | ✅ |
|
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 79.3 | ❌ |
|
||||||
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 79.65 | ✅ |
|
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 77.49 | ✅ |
|
||||||
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 77.4 | ✅ |
|
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 76.82 | ✅ |
|
||||||
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 76.88 | ✅ |
|
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 75.94 | ✅ |
|
||||||
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 76.3 | ✅ |
|
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 75.3 | ✅ |
|
||||||
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 75.68 | ❌ |
|
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 75.24 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP-384__webli | 4417 | 72.19 | 69.59 | ❌ |
|
| ViT-H-14__laion2b-s32b-b79k | 4676 | 39.06 | 69.33 | ❌ |
|
||||||
| ViT-H-14__laion2b-s32b-b79k | 4676 | 39.06 | 68.36 | ❌ |
|
| ViT-SO400M-14-SigLIP-384__webli | 4417 | 72.19 | 64.41 | ❌ |
|
||||||
| ViT-L-14__laion2b-s32b-b82k | 2233 | 20.56 | 61.78 | ❌ |
|
| ViT-L-14__laion2b-s32b-b82k | 2233 | 20.56 | 62.86 | ❌ |
|
||||||
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 58.4 | ❌ |
|
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 59.27 | ❌ |
|
||||||
| ViT-L-14__laion400m_e31 | 2183 | 19.87 | 58.35 | ❌ |
|
| ViT-L-14__laion400m_e31 | 2183 | 19.87 | 59.09 | ❌ |
|
||||||
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 57.17 | ❌ |
|
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 58.25 | ❌ |
|
||||||
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 57.17 | ❌ |
|
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 58.25 | ❌ |
|
||||||
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 57.05 | ✅ |
|
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 56.97 | ✅ |
|
||||||
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 56.08 | ✅ |
|
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 56.21 | ✅ |
|
||||||
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 52.96 | ✅ |
|
| ViT-B-32__laion400m_e31 | 999 | 2.28 | 53.36 | ✅ |
|
||||||
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 52.83 | ✅ |
|
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 53.33 | ✅ |
|
||||||
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 51.88 | ❌ |
|
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 53.26 | ❌ |
|
||||||
| ViT-B-32__laion400m_e31 | 999 | 2.28 | 51.82 | ✅ |
|
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 53.22 | ❌ |
|
||||||
| RN50x64__openai | 5079 | 48.79 | 42.86 | ❌ |
|
| ViT-L-14__openai | 2212 | 19.91 | 46.34 | ❌ |
|
||||||
| ViT-L-14-336__openai | 2616 | 43.45 | 42.81 | ❌ |
|
| RN50x64__openai | 5079 | 48.79 | 46.3 | ❌ |
|
||||||
| ViT-L-14__openai | 2212 | 19.91 | 42.54 | ❌ |
|
| ViT-L-14-336__openai | 2616 | 43.45 | 45.95 | ❌ |
|
||||||
| RN50x16__openai | 2221 | 15.87 | 41.72 | ❌ |
|
| RN50x16__openai | 2221 | 15.87 | 45.69 | ❌ |
|
||||||
| RN50x4__openai | 1416 | 5.85 | 38.85 | ❌ |
|
| RN50x4__openai | 1416 | 5.85 | 42.48 | ❌ |
|
||||||
| RN101__openai | 1111 | 3.21 | 36.79 | ❌ |
|
| RN101__openai | 1111 | 3.21 | 40.16 | ❌ |
|
||||||
| ViT-B-16__openai | 985 | 5.03 | 36.47 | ❌ |
|
| ViT-B-16__openai | 985 | 5.03 | 40.1 | ❌ |
|
||||||
| ViT-B-32__openai | 1004 | 2.26 | 35.17 | ✅ |
|
| ViT-B-32__openai | 1004 | 2.26 | 38.27 | ✅ |
|
||||||
| RN50__openai | 913 | 2.39 | 34.44 | ✅ |
|
| RN50__openai | 913 | 2.39 | 37.8 | ✅ |
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>German</summary>
|
<summary>German</summary>
|
||||||
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 90.04 | ✅ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 87.32 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 89.97 | ✅ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 87.29 | ❌ |
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 89.85 | ❌ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 87.29 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 89.81 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 87.21 | ✅ |
|
||||||
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 89.77 | ❌ |
|
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 87.18 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 89.69 | ✅ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 87.14 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 89.45 | ✅ |
|
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 87.07 | ❌ |
|
||||||
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 89.44 | ❌ |
|
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 86.83 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 89.39 | ✅ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 86.81 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 89.35 | ✅ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 86.75 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 89.03 | ❌ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 86.74 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 88.82 | ✅ |
|
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 86.68 | ❌ |
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 88.55 | ❌ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 86.56 | ✅ |
|
||||||
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 88.42 | ❌ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 86.16 | ✅ |
|
||||||
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 87.19 | ❌ |
|
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 84.54 | ❌ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 86.44 | ✅ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 84.41 | ✅ |
|
||||||
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 84.81 | ✅ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 84.25 | ✅ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 84.81 | ❌ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 83.8 | ❌ |
|
||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 84.58 | ❌ |
|
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 82.59 | ✅ |
|
||||||
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 84.44 | ✅ |
|
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 81.53 | ✅ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 83.33 | ✅ |
|
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 81.34 | ❌ |
|
||||||
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 82.75 | ❌ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 81.15 | ✅ |
|
||||||
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 82.32 | ❌ |
|
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 81.05 | ❌ |
|
||||||
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 81.63 | ✅ |
|
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 78.35 | ✅ |
|
||||||
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 76.76 | ✅ |
|
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 76.56 | ✅ |
|
||||||
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 76.33 | ✅ |
|
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 76.0 | ✅ |
|
||||||
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 75.19 | ✅ |
|
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 75.21 | ✅ |
|
||||||
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 75.07 | ❌ |
|
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 75.14 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP-384__webli | 4417 | 72.19 | 64.61 | ❌ |
|
| ViT-SO400M-14-SigLIP-384__webli | 4417 | 72.19 | 65.86 | ❌ |
|
||||||
| ViT-H-14__laion2b-s32b-b79k | 4676 | 39.06 | 52.81 | ❌ |
|
| ViT-H-14__laion2b-s32b-b79k | 4676 | 39.06 | 56.87 | ❌ |
|
||||||
| ViT-L-14__laion2b-s32b-b82k | 2233 | 20.56 | 42.88 | ❌ |
|
| ViT-L-14__laion2b-s32b-b82k | 2233 | 20.56 | 47.19 | ❌ |
|
||||||
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 38.65 | ❌ |
|
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 43.36 | ❌ |
|
||||||
| ViT-L-14__laion400m_e31 | 2183 | 19.87 | 38.37 | ❌ |
|
| ViT-L-14__laion400m_e31 | 2183 | 19.87 | 43.0 | ❌ |
|
||||||
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 37.65 | ✅ |
|
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 41.81 | ✅ |
|
||||||
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 36.6 | ✅ |
|
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 40.43 | ✅ |
|
||||||
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 35.44 | ❌ |
|
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 40.41 | ❌ |
|
||||||
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 35.44 | ❌ |
|
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 40.41 | ❌ |
|
||||||
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 32.46 | ✅ |
|
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 37.71 | ✅ |
|
||||||
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 32.31 | ✅ |
|
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 37.64 | ✅ |
|
||||||
| ViT-B-32__laion400m_e31 | 999 | 2.28 | 31.85 | ✅ |
|
| ViT-B-32__laion400m_e31 | 999 | 2.28 | 36.04 | ✅ |
|
||||||
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 31.81 | ❌ |
|
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 35.9 | ❌ |
|
||||||
| RN50x64__openai | 5079 | 48.79 | 28.41 | ❌ |
|
| RN50x64__openai | 5079 | 48.79 | 34.19 | ❌ |
|
||||||
| ViT-L-14__openai | 2212 | 19.91 | 27.63 | ❌ |
|
| ViT-L-14__openai | 2212 | 19.91 | 33.1 | ❌ |
|
||||||
| ViT-L-14-336__openai | 2616 | 43.45 | 27.09 | ❌ |
|
| ViT-L-14-336__openai | 2616 | 43.45 | 32.25 | ❌ |
|
||||||
| RN50x16__openai | 2221 | 15.87 | 24.48 | ❌ |
|
| RN50x16__openai | 2221 | 15.87 | 30.56 | ❌ |
|
||||||
| RN50x4__openai | 1416 | 5.85 | 23.49 | ❌ |
|
| RN50x4__openai | 1416 | 5.85 | 29.2 | ❌ |
|
||||||
| RN50__openai | 913 | 2.39 | 20.91 | ✅ |
|
| ViT-B-16__openai | 985 | 5.03 | 25.77 | ❌ |
|
||||||
| ViT-B-16__openai | 985 | 5.03 | 20.83 | ❌ |
|
| RN101__openai | 1111 | 3.21 | 25.46 | ❌ |
|
||||||
| RN101__openai | 1111 | 3.21 | 20.39 | ❌ |
|
| RN50__openai | 913 | 2.39 | 24.92 | ✅ |
|
||||||
|
| ViT-B-32__openai | 1004 | 2.26 | 24.13 | ✅ |
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>Greek</summary>
|
<summary>Greek</summary>
|
||||||
@@ -542,10 +556,10 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 60.63 | ❌ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 60.63 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 60.41 | ❌ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 60.41 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 60.1 | ❌ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 60.1 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 60.06 | ❌ |
|
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 60.06 | ❌ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 60.06 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 59.44 | ❌ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 60.06 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 59.44 | ❌ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 59.44 | ❌ |
|
||||||
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 59.44 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 59.43 | ✅ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 59.43 | ✅ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 58.78 | ✅ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 58.78 | ✅ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 53.42 | ❌ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 53.42 | ❌ |
|
||||||
@@ -670,99 +684,104 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
<summary>Italian</summary>
|
<summary>Italian</summary>
|
||||||
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 88.6 | ✅ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 87.17 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 88.25 | ✅ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 86.91 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 88.12 | ✅ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 86.83 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 88.04 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 86.77 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 87.97 | ❌ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 86.67 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 87.69 | ❌ |
|
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 86.42 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 87.29 | ✅ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 86.35 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 87.06 | ❌ |
|
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 86.34 | ❌ |
|
||||||
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 86.91 | ❌ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 86.18 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 86.88 | ✅ |
|
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 86.17 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 86.68 | ✅ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 85.84 | ✅ |
|
||||||
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 86.61 | ❌ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 85.8 | ❌ |
|
||||||
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 85.55 | ❌ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 85.7 | ✅ |
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 85.37 | ❌ |
|
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 85.67 | ❌ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 83.78 | ✅ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 83.32 | ✅ |
|
||||||
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 83.0 | ❌ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 82.95 | ❌ |
|
||||||
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 81.81 | ✅ |
|
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 82.73 | ❌ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 81.77 | ❌ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 82.72 | ❌ |
|
||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 81.32 | ❌ |
|
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 81.07 | ❌ |
|
||||||
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 80.97 | ❌ |
|
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 80.8 | ✅ |
|
||||||
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 80.53 | ✅ |
|
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 80.6 | ✅ |
|
||||||
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 80.1 | ❌ |
|
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 80.35 | ❌ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 79.71 | ✅ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 78.79 | ✅ |
|
||||||
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 77.31 | ✅ |
|
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 76.62 | ✅ |
|
||||||
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 75.19 | ✅ |
|
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 76.51 | ✅ |
|
||||||
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 74.49 | ✅ |
|
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 76.08 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP-384__webli | 4417 | 72.19 | 74.04 | ❌ |
|
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 75.29 | ✅ |
|
||||||
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 73.68 | ✅ |
|
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 75.29 | ❌ |
|
||||||
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 73.57 | ✅ |
|
| ViT-SO400M-14-SigLIP-384__webli | 4417 | 72.19 | 74.84 | ❌ |
|
||||||
| ViT-H-14__laion2b-s32b-b79k | 4676 | 39.06 | 51.04 | ❌ |
|
| ViT-H-14__laion2b-s32b-b79k | 4676 | 39.06 | 56.32 | ❌ |
|
||||||
| ViT-L-14__laion2b-s32b-b82k | 2233 | 20.56 | 41.73 | ❌ |
|
| ViT-L-14__laion2b-s32b-b82k | 2233 | 20.56 | 47.25 | ❌ |
|
||||||
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 36.87 | ❌ |
|
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 43.09 | ❌ |
|
||||||
| ViT-L-14__laion400m_e31 | 2183 | 19.87 | 36.84 | ❌ |
|
| ViT-L-14__laion400m_e31 | 2183 | 19.87 | 42.99 | ❌ |
|
||||||
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 34.68 | ❌ |
|
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 40.29 | ❌ |
|
||||||
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 34.68 | ❌ |
|
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 40.29 | ❌ |
|
||||||
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 34.64 | ✅ |
|
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 39.67 | ✅ |
|
||||||
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 33.8 | ✅ |
|
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 39.03 | ✅ |
|
||||||
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 30.11 | ✅ |
|
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 36.14 | ✅ |
|
||||||
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 30.04 | ❌ |
|
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 35.89 | ❌ |
|
||||||
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 29.89 | ❌ |
|
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 35.59 | ❌ |
|
||||||
| ViT-B-32__laion400m_e31 | 999 | 2.28 | 29.88 | ✅ |
|
| ViT-B-32__laion400m_e31 | 999 | 2.28 | 35.56 | ✅ |
|
||||||
| RN50x64__openai | 5079 | 48.79 | 26.67 | ❌ |
|
| RN50x64__openai | 5079 | 48.79 | 33.53 | ❌ |
|
||||||
| ViT-L-14__openai | 2212 | 19.91 | 25.51 | ❌ |
|
| ViT-L-14__openai | 2212 | 19.91 | 32.19 | ❌ |
|
||||||
| ViT-L-14-336__openai | 2616 | 43.45 | 25.3 | ❌ |
|
| ViT-L-14-336__openai | 2616 | 43.45 | 30.95 | ❌ |
|
||||||
| RN50x16__openai | 2221 | 15.87 | 21.37 | ❌ |
|
| RN50x16__openai | 2221 | 15.87 | 28.85 | ❌ |
|
||||||
|
| RN50x4__openai | 1416 | 5.85 | 25.75 | ❌ |
|
||||||
|
| ViT-B-16__openai | 985 | 5.03 | 25.18 | ❌ |
|
||||||
|
| RN101__openai | 1111 | 3.21 | 24.48 | ❌ |
|
||||||
|
| RN50__openai | 913 | 2.39 | 23.89 | ✅ |
|
||||||
|
| ViT-B-32__openai | 1004 | 2.26 | 23.39 | ✅ |
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>Japanese</summary>
|
<summary>Japanese</summary>
|
||||||
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 86.97 | ✅ |
|
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 83.95 | ✅ |
|
||||||
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 85.15 | ❌ |
|
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 82.21 | ❌ |
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 84.69 | ❌ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 81.55 | ❌ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 81.77 | ✅ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 78.72 | ✅ |
|
||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 81.26 | ❌ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 78.53 | ❌ |
|
||||||
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 81.19 | ✅ |
|
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 75.93 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 69.99 | ❌ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 66.86 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 68.58 | ❌ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 65.59 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 68.35 | ❌ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 65.48 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 68.29 | ❌ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 65.36 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 67.99 | ❌ |
|
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 64.47 | ❌ |
|
||||||
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 67.68 | ❌ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 64.17 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 67.67 | ❌ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 64.08 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 66.85 | ✅ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 63.69 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 66.54 | ❌ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 63.33 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 65.77 | ❌ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 63.02 | ❌ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 61.48 | ✅ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 58.39 | ✅ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 58.1 | ❌ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 56.38 | ❌ |
|
||||||
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 55.31 | ❌ |
|
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 53.16 | ❌ |
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>Korean</summary>
|
<summary>Korean</summary>
|
||||||
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 77.21 | ✅ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 80.56 | ✅ |
|
||||||
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 76.89 | ✅ |
|
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 80.53 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 75.72 | ✅ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 77.09 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 75.06 | ✅ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 77.08 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 74.94 | ❌ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 76.97 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 74.36 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 76.92 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 74.09 | ✅ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 76.58 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 73.61 | ❌ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 76.2 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 73.55 | ✅ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 75.95 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 73.41 | ✅ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 75.86 | ✅ |
|
||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 73.18 | ✅ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 75.67 | ✅ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 72.79 | ✅ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 75.49 | ❌ |
|
||||||
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 72.27 | ❌ |
|
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 74.6 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 71.73 | ✅ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 74.52 | ✅ |
|
||||||
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 71.12 | ❌ |
|
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 73.88 | ❌ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 70.25 | ✅ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 71.09 | ✅ |
|
||||||
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 67.54 | ✅ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 68.87 | ✅ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 67.37 | ✅ |
|
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 67.94 | ✅ |
|
||||||
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 65.44 | ✅ |
|
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 66.39 | ✅ |
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>Maori</summary>
|
<summary>Maori</summary>
|
||||||
@@ -834,34 +853,34 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
<summary>Polish</summary>
|
<summary>Polish</summary>
|
||||||
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 80.6 | ✅ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 83.49 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 80.17 | ✅ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 83.45 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 80.06 | ❌ |
|
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 83.11 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 80.04 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 82.99 | ✅ |
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 79.98 | ❌ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 82.96 | ❌ |
|
||||||
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 79.8 | ✅ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 82.93 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 79.72 | ✅ |
|
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 82.61 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 79.66 | ❌ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 82.26 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 79.45 | ✅ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 82.24 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 79.26 | ❌ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 82.03 | ✅ |
|
||||||
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 79.21 | ❌ |
|
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 82.03 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 79.14 | ✅ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 81.92 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 78.23 | ✅ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 81.27 | ✅ |
|
||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 75.33 | ✅ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 80.0 | ✅ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 74.7 | ✅ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 79.65 | ✅ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 74.63 | ❌ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 76.75 | ✅ |
|
||||||
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 73.69 | ✅ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 76.52 | ✅ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 73.44 | ❌ |
|
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 75.1 | ✅ |
|
||||||
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 70.34 | ❌ |
|
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 73.9 | ❌ |
|
||||||
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 59.4 | ❌ |
|
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 65.03 | ❌ |
|
||||||
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 59.14 | ❌ |
|
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 64.89 | ❌ |
|
||||||
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 48.74 | ❌ |
|
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 51.6 | ❌ |
|
||||||
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 48.35 | ❌ |
|
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 51.29 | ❌ |
|
||||||
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 40.76 | ✅ |
|
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 46.15 | ✅ |
|
||||||
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 39.13 | ✅ |
|
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 41.55 | ✅ |
|
||||||
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 39.09 | ❌ |
|
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 41.17 | ✅ |
|
||||||
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 38.55 | ❌ |
|
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 40.9 | ✅ |
|
||||||
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 38.46 | ❌ |
|
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 40.76 | ✅ |
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>Portuguese</summary>
|
<summary>Portuguese</summary>
|
||||||
@@ -955,84 +974,87 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
<summary>Russian</summary>
|
<summary>Russian</summary>
|
||||||
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 87.65 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 84.54 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 87.62 | ❌ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 84.41 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 87.4 | ✅ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 84.36 | ❌ |
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 87.39 | ❌ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 84.31 | ❌ |
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 86.88 | ❌ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 84.22 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 86.87 | ✅ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 83.9 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 86.74 | ✅ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 83.69 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 86.26 | ✅ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 83.5 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 85.98 | ✅ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 83.31 | ❌ |
|
||||||
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 85.66 | ❌ |
|
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 83.21 | ❌ |
|
||||||
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 85.54 | ❌ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 83.11 | ✅ |
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 84.69 | ❌ |
|
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 82.7 | ❌ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 84.29 | ✅ |
|
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 82.69 | ❌ |
|
||||||
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 84.24 | ❌ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 80.91 | ✅ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 82.86 | ✅ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 79.75 | ❌ |
|
||||||
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 81.59 | ✅ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 79.35 | ✅ |
|
||||||
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 80.56 | ✅ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 78.91 | ❌ |
|
||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 80.44 | ❌ |
|
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 78.06 | ✅ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 79.99 | ❌ |
|
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 76.44 | ✅ |
|
||||||
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 39.51 | ❌ |
|
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 42.81 | ❌ |
|
||||||
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 39.16 | ❌ |
|
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 42.1 | ❌ |
|
||||||
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 23.33 | ❌ |
|
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 24.95 | ❌ |
|
||||||
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 22.4 | ❌ |
|
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 24.25 | ❌ |
|
||||||
|
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 20.85 | ✅ |
|
||||||
|
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 20.44 | ✅ |
|
||||||
|
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 20.41 | ❌ |
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>Spanish</summary>
|
<summary>Spanish</summary>
|
||||||
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 84.24 | ✅ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 85.47 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 83.94 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 85.44 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 83.91 | ❌ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 85.32 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 83.78 | ✅ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 85.22 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 83.71 | ✅ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 85.15 | ❌ |
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 83.59 | ❌ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 84.81 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 83.2 | ✅ |
|
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 84.68 | ❌ |
|
||||||
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 83.0 | ❌ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 84.6 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 82.91 | ✅ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 84.55 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 82.58 | ❌ |
|
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 84.27 | ❌ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 82.5 | ✅ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 84.15 | ✅ |
|
||||||
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 82.48 | ❌ |
|
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 83.87 | ❌ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 82.22 | ✅ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 83.74 | ❌ |
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 81.34 | ❌ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 83.61 | ✅ |
|
||||||
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 80.18 | ❌ |
|
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 83.15 | ❌ |
|
||||||
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 80.14 | ❌ |
|
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 81.7 | ❌ |
|
||||||
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 78.99 | ✅ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 80.91 | ❌ |
|
||||||
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 78.19 | ✅ |
|
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 80.73 | ✅ |
|
||||||
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 78.15 | ❌ |
|
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 80.69 | ❌ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 77.93 | ✅ |
|
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 80.3 | ❌ |
|
||||||
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 77.64 | ❌ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 79.8 | ❌ |
|
||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 77.21 | ❌ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 79.71 | ✅ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 76.36 | ❌ |
|
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 79.64 | ✅ |
|
||||||
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 75.73 | ✅ |
|
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 78.0 | ✅ |
|
||||||
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 75.56 | ✅ |
|
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 77.83 | ❌ |
|
||||||
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 75.01 | ✅ |
|
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 76.87 | ✅ |
|
||||||
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 74.62 | ✅ |
|
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 76.66 | ❌ |
|
||||||
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 74.6 | ✅ |
|
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 75.99 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP-384__webli | 4417 | 72.19 | 70.31 | ❌ |
|
| ViT-SO400M-14-SigLIP-384__webli | 4417 | 72.19 | 71.96 | ❌ |
|
||||||
| ViT-H-14__laion2b-s32b-b79k | 4676 | 39.06 | 58.31 | ❌ |
|
| ViT-H-14__laion2b-s32b-b79k | 4676 | 39.06 | 62.06 | ❌ |
|
||||||
| ViT-L-14__laion2b-s32b-b82k | 2233 | 20.56 | 49.56 | ❌ |
|
| ViT-L-14__laion2b-s32b-b82k | 2233 | 20.56 | 53.78 | ❌ |
|
||||||
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 46.69 | ❌ |
|
| ViT-L-14__laion400m_e32 | 2218 | 19.73 | 50.13 | ❌ |
|
||||||
| ViT-L-14__laion400m_e31 | 2183 | 19.87 | 46.53 | ❌ |
|
| ViT-L-14__laion400m_e31 | 2183 | 19.87 | 50.0 | ❌ |
|
||||||
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 44.05 | ❌ |
|
| ViT-B-16-plus-240__laion400m_e32 | 1246 | 6.95 | 47.39 | ❌ |
|
||||||
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 44.05 | ❌ |
|
| ViT-B-16-plus-240__laion400m_e31 | 1263 | 6.94 | 47.39 | ❌ |
|
||||||
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 43.67 | ✅ |
|
| ViT-B-32__laion2b_e16 | 1004 | 2.38 | 46.47 | ✅ |
|
||||||
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 42.5 | ✅ |
|
| ViT-B-32__laion2b-s34b-b79k | 1001 | 2.29 | 45.68 | ✅ |
|
||||||
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 41.03 | ✅ |
|
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 44.0 | ✅ |
|
||||||
| ViT-B-16__laion400m_e31 | 991 | 5.04 | 40.91 | ❌ |
|
| ViT-B-16__laion400m_e32 | 975 | 4.98 | 43.98 | ✅ |
|
||||||
| ViT-B-32__laion400m_e31 | 999 | 2.28 | 40.3 | ✅ |
|
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 43.8 | ❌ |
|
||||||
| ViT-B-32__laion400m_e32 | 1003 | 2.35 | 40.3 | ❌ |
|
| ViT-B-32__laion400m_e31 | 999 | 2.28 | 43.73 | ✅ |
|
||||||
| RN50x64__openai | 5079 | 48.79 | 37.92 | ❌ |
|
| RN50x64__openai | 5079 | 48.79 | 43.01 | ❌ |
|
||||||
| ViT-L-14-336__openai | 2616 | 43.45 | 37.7 | ❌ |
|
| ViT-L-14__openai | 2212 | 19.91 | 42.96 | ❌ |
|
||||||
| ViT-L-14__openai | 2212 | 19.91 | 37.59 | ❌ |
|
| ViT-L-14-336__openai | 2616 | 43.45 | 41.67 | ❌ |
|
||||||
| RN50x16__openai | 2221 | 15.87 | 34.75 | ❌ |
|
| RN50x16__openai | 2221 | 15.87 | 40.21 | ❌ |
|
||||||
| ViT-B-16__openai | 985 | 5.03 | 32.1 | ❌ |
|
| RN50x4__openai | 1416 | 5.85 | 36.06 | ❌ |
|
||||||
| RN50x4__openai | 1416 | 5.85 | 32.08 | ❌ |
|
| ViT-B-16__openai | 985 | 5.03 | 35.67 | ❌ |
|
||||||
| RN101__openai | 1111 | 3.21 | 30.77 | ❌ |
|
| RN101__openai | 1111 | 3.21 | 34.62 | ❌ |
|
||||||
| RN50__openai | 913 | 2.39 | 30.2 | ✅ |
|
| ViT-B-32__openai | 1004 | 2.26 | 32.6 | ✅ |
|
||||||
| ViT-B-32__openai | 1004 | 2.26 | 29.84 | ✅ |
|
| RN50__openai | 913 | 2.39 | 31.79 | ✅ |
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>Swahili</summary>
|
<summary>Swahili</summary>
|
||||||
@@ -1057,8 +1079,8 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 72.1 | ✅ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 72.1 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 72.06 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 72.06 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 71.84 | ✅ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 71.84 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 71.7 | ✅ |
|
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 71.7 | ✅ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 71.7 | ✅ |
|
||||||
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 71.7 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 71.61 | ❌ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 71.61 | ❌ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 71.51 | ✅ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 71.51 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 71.45 | ✅ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 71.45 | ✅ |
|
||||||
@@ -1115,31 +1137,34 @@ Memory and execution time estimates were obtained without acceleration on a 7800
|
|||||||
<summary>Turkish</summary>
|
<summary>Turkish</summary>
|
||||||
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
| Model | Memory (MiB) | Execution Time (ms) | Recall (%) | Pareto Optimal |
|
||||||
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
|------------------------------------------------------|--------------|---------------------|------------|----------------|
|
||||||
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 81.15 | ✅ |
|
| nllb-clip-large-siglip__mrl | 4248 | 75.44 | 83.91 | ✅ |
|
||||||
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 80.89 | ✅ |
|
| nllb-clip-large-siglip__v1 | 4226 | 75.05 | 83.74 | ✅ |
|
||||||
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 78.11 | ✅ |
|
| nllb-clip-base-siglip__mrl | 4696 | 16.95 | 81.26 | ✅ |
|
||||||
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 77.51 | ✅ |
|
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 80.21 | ✅ |
|
||||||
| nllb-clip-base-siglip__v1 | 4675 | 15.17 | 77.36 | ✅ |
|
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 79.34 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-512__webli | 4050 | 107.67 | 77.28 | ❌ |
|
| ViT-SO400M-14-SigLIP2-378__webli | 3940 | 72.25 | 79.22 | ✅ |
|
||||||
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 77.24 | ✅ |
|
| XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k | 4014 | 39.14 | 78.9 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 77.01 | ✅ |
|
| ViT-SO400M-16-SigLIP2-384__webli | 3854 | 56.57 | 78.85 | ✅ |
|
||||||
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 76.37 | ❌ |
|
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 78.29 | ✅ |
|
||||||
| ViT-SO400M-16-SigLIP2-256__webli | 3611 | 27.84 | 75.92 | ✅ |
|
| ViT-gopt-16-SigLIP2-384__webli | 6585 | 146.84 | 78.27 | ❌ |
|
||||||
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 75.69 | ✅ |
|
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 78.0 | ❌ |
|
||||||
| ViT-gopt-16-SigLIP2-256__webli | 6475 | 64.51 | 75.68 | ❌ |
|
| ViT-SO400M-14-SigLIP2__webli | 3622 | 27.63 | 77.81 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 75.54 | ✅ |
|
| ViT-L-16-SigLIP2-512__webli | 3358 | 92.59 | 77.67 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 75.16 | ✅ |
|
| ViT-L-16-SigLIP2-384__webli | 3057 | 51.7 | 77.33 | ✅ |
|
||||||
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 73.83 | ✅ |
|
| ViT-L-16-SigLIP2-256__webli | 2830 | 23.77 | 76.42 | ✅ |
|
||||||
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 70.15 | ✅ |
|
| ViT-B-16-SigLIP-i18n-256__webli | 3029 | 6.87 | 72.44 | ✅ |
|
||||||
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 69.19 | ✅ |
|
| XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k | 3030 | 3.2 | 69.84 | ✅ |
|
||||||
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 66.72 | ❌ |
|
| ViT-B-16-SigLIP2__webli | 3038 | 5.81 | 69.83 | ❌ |
|
||||||
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 64.76 | ❌ |
|
| ViT-B-32-SigLIP2-256__webli | 3061 | 3.31 | 67.13 | ❌ |
|
||||||
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 38.8 | ❌ |
|
| ViT-H-14-378-quickgelu__dfn5b | 5049 | 108.4 | 44.43 | ❌ |
|
||||||
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 38.48 | ❌ |
|
| ViT-H-14-quickgelu__dfn5b | 4701 | 38.74 | 43.87 | ❌ |
|
||||||
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 30.83 | ❌ |
|
| ViT-L-16-SigLIP-384__webli | 3396 | 47.6 | 35.1 | ❌ |
|
||||||
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 30.28 | ❌ |
|
| ViT-L-16-SigLIP-256__webli | 3160 | 23.84 | 34.92 | ❌ |
|
||||||
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 21.31 | ✅ |
|
| ViT-L-14-quickgelu__dfn2b | 2212 | 20.49 | 25.2 | ✅ |
|
||||||
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 20.08 | ✅ |
|
| ViT-B-16-SigLIP-512__webli | 1828 | 26.17 | 24.55 | ✅ |
|
||||||
|
| ViT-B-16-SigLIP__webli | 1081 | 5.77 | 24.13 | ✅ |
|
||||||
|
| ViT-B-16-SigLIP-384__webli | 1128 | 13.53 | 24.08 | ❌ |
|
||||||
|
| ViT-B-16-SigLIP-256__webli | 1102 | 7.11 | 23.95 | ❌ |
|
||||||
</details>
|
</details>
|
||||||
<details>
|
<details>
|
||||||
<summary>Ukrainian</summary>
|
<summary>Ukrainian</summary>
|
||||||
|
|||||||
@@ -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] to the image tag.
|
# For hardware acceleration, add one of -[armnn, cuda, rocm, openvino, rknn] 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] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
# service: # set to one of [armnn, cuda, rocm, openvino, openvino-wsl, rknn] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||||
volumes:
|
volumes:
|
||||||
- model-cache:/cache
|
- model-cache:/cache
|
||||||
restart: always
|
restart: always
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
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,39 +69,7 @@ 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 or setup optional features below.
|
Read the [Post Installation](/docs/install/post-install.mdx) steps and [upgrade instructions](/docs/install/upgrading.md).
|
||||||
|
|
||||||
### 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
|
|
||||||
|
|||||||
@@ -148,30 +148,31 @@ Redis (Sentinel) URL example JSON before encoding:
|
|||||||
|
|
||||||
## Machine Learning
|
## Machine Learning
|
||||||
|
|
||||||
| Variable | Description | Default | Containers |
|
| Variable | Description | Default | Containers |
|
||||||
| :---------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- | :-----------------------------: | :--------------- |
|
| :---------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- | :--------------------------: | :--------------- |
|
||||||
| `MACHINE_LEARNING_MODEL_TTL` | Inactivity time (s) before a model is unloaded (disabled if \<= 0) | `300` | machine learning |
|
| `MACHINE_LEARNING_MODEL_TTL` | Inactivity time (s) before a model is unloaded (disabled if \<= 0) | `300` | machine learning |
|
||||||
| `MACHINE_LEARNING_MODEL_TTL_POLL_S` | Interval (s) between checks for the model TTL (disabled if \<= 0) | `10` | machine learning |
|
| `MACHINE_LEARNING_MODEL_TTL_POLL_S` | Interval (s) between checks for the model TTL (disabled if \<= 0) | `10` | machine learning |
|
||||||
| `MACHINE_LEARNING_CACHE_FOLDER` | Directory where models are downloaded | `/cache` | machine learning |
|
| `MACHINE_LEARNING_CACHE_FOLDER` | Directory where models are downloaded | `/cache` | machine learning |
|
||||||
| `MACHINE_LEARNING_REQUEST_THREADS`<sup>\*1</sup> | Thread count of the request thread pool (disabled if \<= 0) | number of CPU cores | machine learning |
|
| `MACHINE_LEARNING_REQUEST_THREADS`<sup>\*1</sup> | Thread count of the request thread pool (disabled if \<= 0) | number of CPU cores | machine learning |
|
||||||
| `MACHINE_LEARNING_MODEL_INTER_OP_THREADS` | Number of parallel model operations | `1` | machine learning |
|
| `MACHINE_LEARNING_MODEL_INTER_OP_THREADS` | Number of parallel model operations | `1` | machine learning |
|
||||||
| `MACHINE_LEARNING_MODEL_INTRA_OP_THREADS` | Number of threads for each model operation | `2` | machine learning |
|
| `MACHINE_LEARNING_MODEL_INTRA_OP_THREADS` | Number of threads for each model operation | `2` | machine learning |
|
||||||
| `MACHINE_LEARNING_WORKERS`<sup>\*2</sup> | Number of worker processes to spawn | `1` | machine learning |
|
| `MACHINE_LEARNING_MODEL_ARENA` | Pre-allocates CPU memory to avoid memory fragmentation | true | machine learning |
|
||||||
| `MACHINE_LEARNING_HTTP_KEEPALIVE_TIMEOUT_S`<sup>\*3</sup> | HTTP Keep-alive time in seconds | `2` | machine learning |
|
| `MACHINE_LEARNING_WORKERS`<sup>\*2</sup> | Number of worker processes to spawn | `1` | machine learning |
|
||||||
| `MACHINE_LEARNING_WORKER_TIMEOUT` | Maximum time (s) of unresponsiveness before a worker is killed | `120` (`300` if using OpenVINO) | machine learning |
|
| `MACHINE_LEARNING_HTTP_KEEPALIVE_TIMEOUT_S`<sup>\*3</sup> | HTTP Keep-alive time in seconds | `2` | machine learning |
|
||||||
| `MACHINE_LEARNING_PRELOAD__CLIP__TEXTUAL` | Comma-separated list of (textual) CLIP model(s) to preload and cache | | machine learning |
|
| `MACHINE_LEARNING_WORKER_TIMEOUT` | Maximum time (s) of unresponsiveness before a worker is killed | `300` | machine learning |
|
||||||
| `MACHINE_LEARNING_PRELOAD__CLIP__VISUAL` | Comma-separated list of (visual) CLIP model(s) to preload and cache | | machine learning |
|
| `MACHINE_LEARNING_PRELOAD__CLIP__TEXTUAL` | Comma-separated list of (textual) CLIP model(s) to preload and cache | | machine learning |
|
||||||
| `MACHINE_LEARNING_PRELOAD__FACIAL_RECOGNITION__RECOGNITION` | Comma-separated list of (recognition) facial recognition model(s) to preload and cache | | machine learning |
|
| `MACHINE_LEARNING_PRELOAD__CLIP__VISUAL` | Comma-separated list of (visual) CLIP model(s) to preload and cache | | machine learning |
|
||||||
| `MACHINE_LEARNING_PRELOAD__FACIAL_RECOGNITION__DETECTION` | Comma-separated list of (detection) facial recognition model(s) to preload and cache | | machine learning |
|
| `MACHINE_LEARNING_PRELOAD__FACIAL_RECOGNITION__RECOGNITION` | Comma-separated list of (recognition) facial recognition model(s) to preload and cache | | machine learning |
|
||||||
| `MACHINE_LEARNING_ANN` | Enable ARM-NN hardware acceleration if supported | `True` | machine learning |
|
| `MACHINE_LEARNING_PRELOAD__FACIAL_RECOGNITION__DETECTION` | Comma-separated list of (detection) facial recognition model(s) to preload and cache | | machine learning |
|
||||||
| `MACHINE_LEARNING_ANN_FP16_TURBO` | Execute operations in FP16 precision: increasing speed, reducing precision (applies only to ARM-NN) | `False` | machine learning |
|
| `MACHINE_LEARNING_ANN` | Enable ARM-NN hardware acceleration if supported | `True` | machine learning |
|
||||||
| `MACHINE_LEARNING_ANN_TUNING_LEVEL` | ARM-NN GPU tuning level (1: rapid, 2: normal, 3: exhaustive) | `2` | machine learning |
|
| `MACHINE_LEARNING_ANN_FP16_TURBO` | Execute operations in FP16 precision: increasing speed, reducing precision (applies only to ARM-NN) | `False` | machine learning |
|
||||||
| `MACHINE_LEARNING_DEVICE_IDS`<sup>\*4</sup> | Device IDs to use in multi-GPU environments | `0` | machine learning |
|
| `MACHINE_LEARNING_ANN_TUNING_LEVEL` | ARM-NN GPU tuning level (1: rapid, 2: normal, 3: exhaustive) | `2` | 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_DEVICE_IDS`<sup>\*4</sup> | Device IDs to use in multi-GPU environments | `0` | 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_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_AVAILABILITY_BACKOFF_TIME` | How long to ignore ML servers that are offline before trying again | `30000` | 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_RKNN` | Enable RKNN hardware acceleration if supported | `True` | machine learning |
|
| `MACHINE_LEARNING_AVAILABILITY_BACKOFF_TIME` | How long to ignore ML servers that are offline before trying again | `30000` | server |
|
||||||
| `MACHINE_LEARNING_RKNN_THREADS` | How many threads of RKNN runtime should be spinned up while inferencing. | `1` | machine learning |
|
| `MACHINE_LEARNING_RKNN` | Enable RKNN hardware acceleration if supported | `True` | machine learning |
|
||||||
|
| `MACHINE_LEARNING_RKNN_THREADS` | How many threads of RKNN runtime should be spinned up while inferencing. | `1` | machine learning |
|
||||||
|
|
||||||
\*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,3 +41,9 @@ 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,10 +67,4 @@ Click "**Edit Rules**" and add the following firewall rules:
|
|||||||
|
|
||||||
## Next Steps
|
## Next Steps
|
||||||
|
|
||||||
Read the [Post Installation](/docs/install/post-install.mdx) steps or setup optional features below.
|
Read the [Post Installation](/docs/install/post-install.mdx) steps and [upgrade instructions](/docs/install/upgrading.md).
|
||||||
|
|
||||||
### 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,6 +247,10 @@ 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,6 +131,10 @@ 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
|
||||||
|
|||||||
29
docs/docs/install/upgrading.md
Normal file
29
docs/docs/install/upgrading.md
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
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,2 +1,7 @@
|
|||||||
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.
|
||||||
|
:::
|
||||||
|
|||||||
5324
docs/package-lock.json
generated
5324
docs/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
5
docs/src/pages/errors.md
Normal file
5
docs/src/pages/errors.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Errors
|
||||||
|
|
||||||
|
## TypeORM Upgrade
|
||||||
|
|
||||||
|
The upgrade to Immich `v2.x.x` has a required upgrade path to `v1.132.0+`. This means it is required to start up the application at least once on version `1.132.0` (or later). Doing so will complete database schema upgrades that are required for `v2.0.0`. After Immich has successfully booted on this version, shut the system down and try the `v2.x.x` upgrade again.
|
||||||
28
docs/static/archived-versions.json
vendored
28
docs/static/archived-versions.json
vendored
@@ -1,4 +1,32 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"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",
|
"label": "v1.130.0",
|
||||||
"url": "https://v1.130.0.archive.immich.app"
|
"url": "https://v1.130.0.archive.immich.app"
|
||||||
|
|||||||
@@ -1,39 +1,29 @@
|
|||||||
import { FlatCompat } from '@eslint/eslintrc';
|
|
||||||
import js from '@eslint/js';
|
import js from '@eslint/js';
|
||||||
import typescriptEslint from '@typescript-eslint/eslint-plugin';
|
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
|
||||||
import tsParser from '@typescript-eslint/parser';
|
import eslintPluginUnicorn from 'eslint-plugin-unicorn';
|
||||||
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 [
|
export default typescriptEslint.config([
|
||||||
|
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: tsParser,
|
parser: typescriptEslint.parser,
|
||||||
ecmaVersion: 5,
|
ecmaVersion: 5,
|
||||||
sourceType: 'module',
|
sourceType: 'module',
|
||||||
|
|
||||||
@@ -62,4 +52,4 @@ export default [
|
|||||||
'object-shorthand': ['error', 'always'],
|
'object-shorthand': ['error', 'always'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
]);
|
||||||
|
|||||||
3343
e2e/package-lock.json
generated
3343
e2e/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "immich-e2e",
|
"name": "immich-e2e",
|
||||||
"version": "1.130.0",
|
"version": "1.131.3",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -25,18 +25,16 @@
|
|||||||
"@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.13.10",
|
"@types/node": "^22.14.0",
|
||||||
"@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": "^56.0.1",
|
"eslint-plugin-unicorn": "^57.0.0",
|
||||||
"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",
|
||||||
@@ -49,6 +47,7 @@
|
|||||||
"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: 'E PZ 18-105mm F4 G OSS',
|
lensModel: 'Sony 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: 'E 25mm F2',
|
lensModel: 'Zeiss Batis 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: 'GR LENS 18.3mm F2.8',
|
lensModel: '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,6 +1257,7 @@ 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 });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import { app, utils } from 'src/utils';
|
|||||||
import request from 'supertest';
|
import request from 'supertest';
|
||||||
import { beforeEach, describe, expect, it } from 'vitest';
|
import { beforeEach, describe, expect, it } from 'vitest';
|
||||||
|
|
||||||
const { name, email, password } = signupDto.admin;
|
const { email, password } = signupDto.admin;
|
||||||
|
|
||||||
describe(`/auth/admin-sign-up`, () => {
|
describe(`/auth/admin-sign-up`, () => {
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
@@ -13,33 +13,6 @@ describe(`/auth/admin-sign-up`, () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('POST /auth/admin-sign-up', () => {
|
describe('POST /auth/admin-sign-up', () => {
|
||||||
const invalid = [
|
|
||||||
{
|
|
||||||
should: 'require an email address',
|
|
||||||
data: { name, password },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
should: 'require a password',
|
|
||||||
data: { name, email },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
should: 'require a name',
|
|
||||||
data: { email, password },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
should: 'require a valid email',
|
|
||||||
data: { name, email: 'immich', password },
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
for (const { should, data } of invalid) {
|
|
||||||
it(`should ${should}`, async () => {
|
|
||||||
const { status, body } = await request(app).post('/auth/admin-sign-up').send(data);
|
|
||||||
expect(status).toEqual(400);
|
|
||||||
expect(body).toEqual(errorDto.badRequest());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
it(`should sign up the admin`, async () => {
|
it(`should sign up the admin`, async () => {
|
||||||
const { status, body } = await request(app).post('/auth/admin-sign-up').send(signupDto.admin);
|
const { status, body } = await request(app).post('/auth/admin-sign-up').send(signupDto.admin);
|
||||||
expect(status).toBe(201);
|
expect(status).toBe(201);
|
||||||
@@ -57,14 +30,6 @@ describe(`/auth/admin-sign-up`, () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should transform email to lower case', async () => {
|
|
||||||
const { status, body } = await request(app)
|
|
||||||
.post('/auth/admin-sign-up')
|
|
||||||
.send({ ...signupDto.admin, email: 'aDmIn@IMMICH.cloud' });
|
|
||||||
expect(status).toEqual(201);
|
|
||||||
expect(body).toEqual(signupResponseDto.admin);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should not allow a second admin to sign up', async () => {
|
it('should not allow a second admin to sign up', async () => {
|
||||||
await signUpAdmin({ signUpDto: signupDto.admin });
|
await signUpAdmin({ signUpDto: signupDto.admin });
|
||||||
|
|
||||||
|
|||||||
@@ -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,7 +337,82 @@ 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 () => {
|
||||||
@@ -454,6 +529,133 @@ 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,7 +633,6 @@ 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',
|
||||||
@@ -642,6 +641,7 @@ describe('/search', () => {
|
|||||||
'Mississippi',
|
'Mississippi',
|
||||||
'New York',
|
'New York',
|
||||||
'Shanghai',
|
'Shanghai',
|
||||||
|
'State of Berlin',
|
||||||
'St.-Petersburg',
|
'St.-Petersburg',
|
||||||
'Tbilisi',
|
'Tbilisi',
|
||||||
'Tokyo',
|
'Tokyo',
|
||||||
@@ -657,7 +657,6 @@ 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',
|
||||||
@@ -666,6 +665,7 @@ 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="http://`);
|
expect(resp.text).toContain(`<meta property="og:image" content="https://my.immich.app`);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -246,15 +246,7 @@ 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(1);
|
expect(body.assets).toHaveLength(0);
|
||||||
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();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -31,33 +31,7 @@ describe('/users', () => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('GET /users', () => {
|
|
||||||
it('should require authentication', async () => {
|
|
||||||
const { status, body } = await request(app).get('/users');
|
|
||||||
expect(status).toBe(401);
|
|
||||||
expect(body).toEqual(errorDto.unauthorized);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should get users', async () => {
|
|
||||||
const { status, body } = await request(app).get('/users').set('Authorization', `Bearer ${admin.accessToken}`);
|
|
||||||
expect(status).toEqual(200);
|
|
||||||
expect(body).toHaveLength(2);
|
|
||||||
expect(body).toEqual(
|
|
||||||
expect.arrayContaining([
|
|
||||||
expect.objectContaining({ email: 'admin@immich.cloud' }),
|
|
||||||
expect.objectContaining({ email: 'user2@immich.cloud' }),
|
|
||||||
]),
|
|
||||||
);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('GET /users/me', () => {
|
describe('GET /users/me', () => {
|
||||||
it('should require authentication', async () => {
|
|
||||||
const { status, body } = await request(app).get(`/users/me`);
|
|
||||||
expect(status).toBe(401);
|
|
||||||
expect(body).toEqual(errorDto.unauthorized);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should not work for shared links', async () => {
|
it('should not work for shared links', async () => {
|
||||||
const album = await utils.createAlbum(admin.accessToken, { albumName: 'Album' });
|
const album = await utils.createAlbum(admin.accessToken, { albumName: 'Album' });
|
||||||
const sharedLink = await utils.createSharedLink(admin.accessToken, {
|
const sharedLink = await utils.createSharedLink(admin.accessToken, {
|
||||||
@@ -99,24 +73,6 @@ describe('/users', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('PUT /users/me', () => {
|
describe('PUT /users/me', () => {
|
||||||
it('should require authentication', async () => {
|
|
||||||
const { status, body } = await request(app).put(`/users/me`);
|
|
||||||
expect(status).toBe(401);
|
|
||||||
expect(body).toEqual(errorDto.unauthorized);
|
|
||||||
});
|
|
||||||
|
|
||||||
for (const key of ['email', 'name']) {
|
|
||||||
it(`should not allow null ${key}`, async () => {
|
|
||||||
const dto = { [key]: null };
|
|
||||||
const { status, body } = await request(app)
|
|
||||||
.put(`/users/me`)
|
|
||||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
|
||||||
.send(dto);
|
|
||||||
expect(status).toBe(400);
|
|
||||||
expect(body).toEqual(errorDto.badRequest());
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
it('should update first and last name', async () => {
|
it('should update first and last name', async () => {
|
||||||
const before = await getMyUser({ headers: asBearerAuth(admin.accessToken) });
|
const before = await getMyUser({ headers: asBearerAuth(admin.accessToken) });
|
||||||
|
|
||||||
@@ -269,11 +225,6 @@ describe('/users', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('GET /users/:id', () => {
|
describe('GET /users/:id', () => {
|
||||||
it('should require authentication', async () => {
|
|
||||||
const { status } = await request(app).get(`/users/${admin.userId}`);
|
|
||||||
expect(status).toEqual(401);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should get the user', async () => {
|
it('should get the user', async () => {
|
||||||
const { status, body } = await request(app)
|
const { status, body } = await request(app)
|
||||||
.get(`/users/${admin.userId}`)
|
.get(`/users/${admin.userId}`)
|
||||||
@@ -292,12 +243,6 @@ describe('/users', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('GET /server/license', () => {
|
describe('GET /server/license', () => {
|
||||||
it('should require authentication', async () => {
|
|
||||||
const { status, body } = await request(app).get('/users/me/license');
|
|
||||||
expect(status).toBe(401);
|
|
||||||
expect(body).toEqual(errorDto.unauthorized);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should return the user license', async () => {
|
it('should return the user license', async () => {
|
||||||
await request(app)
|
await request(app)
|
||||||
.put('/users/me/license')
|
.put('/users/me/license')
|
||||||
@@ -315,11 +260,6 @@ describe('/users', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('PUT /users/me/license', () => {
|
describe('PUT /users/me/license', () => {
|
||||||
it('should require authentication', async () => {
|
|
||||||
const { status } = await request(app).put(`/users/me/license`);
|
|
||||||
expect(status).toEqual(401);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should set the user license', async () => {
|
it('should set the user license', async () => {
|
||||||
const { status, body } = await request(app)
|
const { status, body } = await request(app)
|
||||||
.put(`/users/me/license`)
|
.put(`/users/me/license`)
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -537,6 +537,7 @@ 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,12 +8,14 @@ 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 }) => {
|
||||||
@@ -36,7 +38,7 @@ test.describe('Photo Viewer', () => {
|
|||||||
await expect(page.getByTestId('loading-spinner')).toBeVisible();
|
await expect(page.getByTestId('loading-spinner')).toBeVisible();
|
||||||
});
|
});
|
||||||
|
|
||||||
test('loads high resolution photo when zoomed', async ({ page }) => {
|
test('loads original 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();
|
||||||
@@ -47,6 +49,17 @@ 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');
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ test.describe('Shared Links', () => {
|
|||||||
await page.waitForSelector('[data-group] svg');
|
await page.waitForSelector('[data-group] 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.getByText('DOWNLOADING', { exact: true }).waitFor();
|
await page.waitForEvent('download');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('download all from shared link', async ({ page }) => {
|
test('download all from shared link', async ({ page }) => {
|
||||||
@@ -56,6 +56,7 @@ 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 }) => {
|
||||||
|
|||||||
16
i18n/af.json
16
i18n/af.json
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"about": "Verfris",
|
"about": "Oor",
|
||||||
"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 Biblioteek-opsies",
|
"external_library_management": "Eksterne Biblioteekbestuur",
|
||||||
"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,7 +64,8 @@
|
|||||||
"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 wye spektrum",
|
"image_prefer_wide_gamut": "Verkies wide gamut",
|
||||||
|
"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",
|
||||||
@@ -72,7 +73,14 @@
|
|||||||
"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"
|
||||||
|
|||||||
513
i18n/ar.json
513
i18n/ar.json
File diff suppressed because it is too large
Load Diff
@@ -162,7 +162,6 @@
|
|||||||
"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)",
|
||||||
@@ -923,7 +922,6 @@
|
|||||||
"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": "Известия",
|
||||||
@@ -1374,4 +1372,4 @@
|
|||||||
"yes": "Да",
|
"yes": "Да",
|
||||||
"you_dont_have_any_shared_links": "Нямате споделени връзки",
|
"you_dont_have_any_shared_links": "Нямате споделени връзки",
|
||||||
"zoom_image": "Увеличаване на изображението"
|
"zoom_image": "Увеличаване на изображението"
|
||||||
}
|
}
|
||||||
|
|||||||
32
i18n/bi.json
32
i18n/bi.json
@@ -1,20 +1,22 @@
|
|||||||
{
|
{
|
||||||
"account": "",
|
"about": "abaot",
|
||||||
"account_settings": "",
|
"account": "Akaont",
|
||||||
"acknowledge": "",
|
"account_settings": "Seting blo Akaont",
|
||||||
|
"acknowledge": "Akcept",
|
||||||
"action": "",
|
"action": "",
|
||||||
"actions": "",
|
"actions": "",
|
||||||
"active": "",
|
"active": "Stap Mekem",
|
||||||
"activity": "",
|
"activity": "Wanem hemi Mekem",
|
||||||
"add": "",
|
"activity_changed": "WAnem hemi Mekem hemi",
|
||||||
"add_a_description": "",
|
"add": "Ad",
|
||||||
"add_a_location": "",
|
"add_a_description": "Putem Description blo hem",
|
||||||
"add_a_name": "",
|
"add_a_location": "Putem place blo hem",
|
||||||
"add_a_title": "",
|
"add_a_name": "Putem nam blo hem",
|
||||||
"add_exclusion_pattern": "",
|
"add_a_title": "Putem wan name blo hem",
|
||||||
"add_import_path": "",
|
"add_exclusion_pattern": "Putem wan paten wae hemi karem aot",
|
||||||
"add_location": "",
|
"add_import_path": "Putem wan pat blo import",
|
||||||
"add_more_users": "",
|
"add_location": "Putem wan place blo hem",
|
||||||
|
"add_more_users": "Putem mor man",
|
||||||
"add_partner": "",
|
"add_partner": "",
|
||||||
"add_path": "",
|
"add_path": "",
|
||||||
"add_photos": "",
|
"add_photos": "",
|
||||||
@@ -116,7 +118,6 @@
|
|||||||
"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": "",
|
||||||
@@ -612,7 +613,6 @@
|
|||||||
"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": "",
|
||||||
|
|||||||
534
i18n/ca.json
534
i18n/ca.json
File diff suppressed because it is too large
Load Diff
531
i18n/cs.json
531
i18n/cs.json
File diff suppressed because it is too large
Load Diff
525
i18n/da.json
525
i18n/da.json
File diff suppressed because it is too large
Load Diff
521
i18n/de.json
521
i18n/de.json
File diff suppressed because it is too large
Load Diff
538
i18n/el.json
538
i18n/el.json
File diff suppressed because it is too large
Load Diff
548
i18n/en.json
548
i18n/en.json
File diff suppressed because it is too large
Load Diff
535
i18n/es.json
535
i18n/es.json
File diff suppressed because it is too large
Load Diff
14
i18n/et.json
14
i18n/et.json
@@ -66,6 +66,11 @@
|
|||||||
"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",
|
||||||
@@ -162,7 +167,6 @@
|
|||||||
"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)",
|
||||||
@@ -859,6 +863,7 @@
|
|||||||
"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",
|
||||||
@@ -923,7 +928,6 @@
|
|||||||
"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",
|
||||||
@@ -1079,6 +1083,8 @@
|
|||||||
"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}",
|
||||||
@@ -1149,6 +1155,7 @@
|
|||||||
"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",
|
||||||
@@ -1363,6 +1370,7 @@
|
|||||||
"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",
|
||||||
@@ -1375,4 +1383,4 @@
|
|||||||
"yes": "Jah",
|
"yes": "Jah",
|
||||||
"you_dont_have_any_shared_links": "Sul pole ühtegi jagatud linki",
|
"you_dont_have_any_shared_links": "Sul pole ühtegi jagatud linki",
|
||||||
"zoom_image": "Suumi pilti"
|
"zoom_image": "Suumi pilti"
|
||||||
}
|
}
|
||||||
|
|||||||
1
i18n/eu.json
Normal file
1
i18n/eu.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@@ -132,7 +132,6 @@
|
|||||||
"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)",
|
||||||
@@ -664,7 +663,6 @@
|
|||||||
"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": "اعلانها",
|
||||||
@@ -926,4 +924,4 @@
|
|||||||
"yes": "بله",
|
"yes": "بله",
|
||||||
"you_dont_have_any_shared_links": "",
|
"you_dont_have_any_shared_links": "",
|
||||||
"zoom_image": "بزرگنمایی تصویر"
|
"zoom_image": "بزرگنمایی تصویر"
|
||||||
}
|
}
|
||||||
|
|||||||
517
i18n/fi.json
517
i18n/fi.json
@@ -4,6 +4,7 @@
|
|||||||
"account_settings": "Tilin asetukset",
|
"account_settings": "Tilin asetukset",
|
||||||
"acknowledge": "Tiedostan",
|
"acknowledge": "Tiedostan",
|
||||||
"action": "Toiminta",
|
"action": "Toiminta",
|
||||||
|
"action_common_update": "Päivitä",
|
||||||
"actions": "Toimintoja",
|
"actions": "Toimintoja",
|
||||||
"active": "Aktiivinen",
|
"active": "Aktiivinen",
|
||||||
"activity": "Aktiviteetti",
|
"activity": "Aktiviteetti",
|
||||||
@@ -13,6 +14,7 @@
|
|||||||
"add_a_location": "Lisää sijainti",
|
"add_a_location": "Lisää sijainti",
|
||||||
"add_a_name": "Lisää nimi",
|
"add_a_name": "Lisää nimi",
|
||||||
"add_a_title": "Lisää otsikko",
|
"add_a_title": "Lisää otsikko",
|
||||||
|
"add_endpoint": "Add endpoint",
|
||||||
"add_exclusion_pattern": "Lisää poissulkemismalli",
|
"add_exclusion_pattern": "Lisää poissulkemismalli",
|
||||||
"add_import_path": "Lisää tuontipolku",
|
"add_import_path": "Lisää tuontipolku",
|
||||||
"add_location": "Lisää sijainti",
|
"add_location": "Lisää sijainti",
|
||||||
@@ -22,6 +24,8 @@
|
|||||||
"add_photos": "Lisää kuvia",
|
"add_photos": "Lisää kuvia",
|
||||||
"add_to": "Lisää…",
|
"add_to": "Lisää…",
|
||||||
"add_to_album": "Lisää albumiin",
|
"add_to_album": "Lisää albumiin",
|
||||||
|
"add_to_album_bottom_sheet_added": "Lisätty albumiin {album}",
|
||||||
|
"add_to_album_bottom_sheet_already_exists": "Kohde on jo albumissa {album}",
|
||||||
"add_to_shared_album": "Lisää jaettuun albumiin",
|
"add_to_shared_album": "Lisää jaettuun albumiin",
|
||||||
"add_url": "Lisää URL",
|
"add_url": "Lisää URL",
|
||||||
"added_to_archive": "Arkistoitu",
|
"added_to_archive": "Arkistoitu",
|
||||||
@@ -159,7 +163,6 @@
|
|||||||
"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)",
|
||||||
@@ -219,7 +222,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",
|
||||||
@@ -360,6 +363,16 @@
|
|||||||
"admin_password": "Ylläpitäjän salasana",
|
"admin_password": "Ylläpitäjän salasana",
|
||||||
"administration": "Ylläpito",
|
"administration": "Ylläpito",
|
||||||
"advanced": "Edistyneet",
|
"advanced": "Edistyneet",
|
||||||
|
"advanced_settings_log_level_title": "Lokitaso: {}",
|
||||||
|
"advanced_settings_prefer_remote_subtitle": "Jotkut laitteet ovat erittäin hitaita lataamaan esikatselukuvia laitteen kohteista. Aktivoi tämä asetus käyttääksesi etäkuvia.",
|
||||||
|
"advanced_settings_prefer_remote_title": "Suosi etäkuvia",
|
||||||
|
"advanced_settings_proxy_headers_subtitle": "Define proxy headers Immich should send with each network request",
|
||||||
|
"advanced_settings_proxy_headers_title": "Proxy Headers",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Ohita SSL sertifikaattivarmennus palvelimen päätepisteellä. Vaaditaan self-signed -sertifikaateissa.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Salli self-signed SSL -sertifikaatit",
|
||||||
|
"advanced_settings_tile_subtitle": "Edistyneen käyttäjän asetukset",
|
||||||
|
"advanced_settings_troubleshooting_subtitle": "Ota vianetsinnän lisäominaisuudet käyttöön",
|
||||||
|
"advanced_settings_troubleshooting_title": "Vianetsintä",
|
||||||
"age_months": "Ikä {months, plural, one {# kuukausi} other {# kuukautta}}",
|
"age_months": "Ikä {months, plural, one {# kuukausi} other {# kuukautta}}",
|
||||||
"age_year_months": "Ikä 1 vuosi, {months, plural, one {# kuukausi} other {# kuukautta}}",
|
"age_year_months": "Ikä 1 vuosi, {months, plural, one {# kuukausi} other {# kuukautta}}",
|
||||||
"age_years": "{years, plural, other {Ikä #v}}",
|
"age_years": "{years, plural, other {Ikä #v}}",
|
||||||
@@ -368,6 +381,8 @@
|
|||||||
"album_cover_updated": "Albumin kansikuva päivitetty",
|
"album_cover_updated": "Albumin kansikuva päivitetty",
|
||||||
"album_delete_confirmation": "Haluatko varmasti poistaa albumin {album}?",
|
"album_delete_confirmation": "Haluatko varmasti poistaa albumin {album}?",
|
||||||
"album_delete_confirmation_description": "Jos albumi on jaettu, muut eivät pääse siihen enää.",
|
"album_delete_confirmation_description": "Jos albumi on jaettu, muut eivät pääse siihen enää.",
|
||||||
|
"album_info_card_backup_album_excluded": "JÄTETTY POIS",
|
||||||
|
"album_info_card_backup_album_included": "SISÄLLYTETTY",
|
||||||
"album_info_updated": "Albumin tiedot päivitetty",
|
"album_info_updated": "Albumin tiedot päivitetty",
|
||||||
"album_leave": "Poistu albumista?",
|
"album_leave": "Poistu albumista?",
|
||||||
"album_leave_confirmation": "Haluatko varmasti poistua albumista {album}?",
|
"album_leave_confirmation": "Haluatko varmasti poistua albumista {album}?",
|
||||||
@@ -376,10 +391,22 @@
|
|||||||
"album_remove_user": "Poista käyttäjä?",
|
"album_remove_user": "Poista käyttäjä?",
|
||||||
"album_remove_user_confirmation": "Oletko varma että haluat poistaa {user}?",
|
"album_remove_user_confirmation": "Oletko varma että haluat poistaa {user}?",
|
||||||
"album_share_no_users": "Näyttää että olet jakanut tämän albumin kaikkien kanssa, tai sinulla ei ole käyttäjiä joille jakaa.",
|
"album_share_no_users": "Näyttää että olet jakanut tämän albumin kaikkien kanssa, tai sinulla ei ole käyttäjiä joille jakaa.",
|
||||||
|
"album_thumbnail_card_item": "1 kohde",
|
||||||
|
"album_thumbnail_card_items": "{} kohdetta",
|
||||||
|
"album_thumbnail_card_shared": "Jaettu",
|
||||||
|
"album_thumbnail_shared_by": "Jakanut {}",
|
||||||
"album_updated": "Albumi päivitetty",
|
"album_updated": "Albumi päivitetty",
|
||||||
"album_updated_setting_description": "Saa sähköpostia kun jaetussa albumissa on uutta sisältöä",
|
"album_updated_setting_description": "Saa sähköpostia kun jaetussa albumissa on uutta sisältöä",
|
||||||
"album_user_left": "Poistuttiin albumista {album}",
|
"album_user_left": "Poistuttiin albumista {album}",
|
||||||
"album_user_removed": "{user} poistettu",
|
"album_user_removed": "{user} poistettu",
|
||||||
|
"album_viewer_appbar_delete_confirm": "Haluatko varmast poistaa tämän albumin tililtäsi?",
|
||||||
|
"album_viewer_appbar_share_err_delete": "Albumin poistaminen epäonnistui",
|
||||||
|
"album_viewer_appbar_share_err_leave": "Albumista poistuminen epäonnistui",
|
||||||
|
"album_viewer_appbar_share_err_remove": "Ongelmia kohteiden poistamisessa albumista",
|
||||||
|
"album_viewer_appbar_share_err_title": "Albumin nimen muuttaminen epäonnistui",
|
||||||
|
"album_viewer_appbar_share_leave": "Poistu albumista",
|
||||||
|
"album_viewer_appbar_share_to": "Jaa",
|
||||||
|
"album_viewer_page_share_add_users": "Lisää käyttäjiä",
|
||||||
"album_with_link_access": "Anna kenen tahansa nähdä linkin kautta tämän albumin valokuvat ja henkilöt.",
|
"album_with_link_access": "Anna kenen tahansa nähdä linkin kautta tämän albumin valokuvat ja henkilöt.",
|
||||||
"albums": "Albumit",
|
"albums": "Albumit",
|
||||||
"albums_count": "{count, plural, one {{count, number} albumi} other {{count, number} albumia}}",
|
"albums_count": "{count, plural, one {{count, number} albumi} other {{count, number} albumia}}",
|
||||||
@@ -396,42 +423,133 @@
|
|||||||
"api_key_description": "Tämä arvo näytetään vain kerran. Varmista, että olet kopioinut sen ennen kuin suljet ikkunan.",
|
"api_key_description": "Tämä arvo näytetään vain kerran. Varmista, että olet kopioinut sen ennen kuin suljet ikkunan.",
|
||||||
"api_key_empty": "API-avaimesi ei pitäisi olla tyhjä",
|
"api_key_empty": "API-avaimesi ei pitäisi olla tyhjä",
|
||||||
"api_keys": "API-avaimet",
|
"api_keys": "API-avaimet",
|
||||||
|
"app_bar_signout_dialog_content": "Haluatko varmasti kirjautua ulos?",
|
||||||
|
"app_bar_signout_dialog_ok": "Kyllä",
|
||||||
|
"app_bar_signout_dialog_title": "Kirjaudu ulos",
|
||||||
"app_settings": "Sovellusasetukset",
|
"app_settings": "Sovellusasetukset",
|
||||||
"appears_in": "Esiintyy albumeissa",
|
"appears_in": "Esiintyy albumeissa",
|
||||||
"archive": "Arkisto",
|
"archive": "Arkisto",
|
||||||
"archive_or_unarchive_photo": "Arkistoi kuva tai palauta arkistosta",
|
"archive_or_unarchive_photo": "Arkistoi kuva tai palauta arkistosta",
|
||||||
|
"archive_page_no_archived_assets": "Arkistoituja kohteita ei löytynyt",
|
||||||
|
"archive_page_title": "Arkisto ({})",
|
||||||
"archive_size": "Arkiston koko",
|
"archive_size": "Arkiston koko",
|
||||||
"archive_size_description": "Määritä arkiston koko latauksissa (Gt)",
|
"archive_size_description": "Määritä arkiston koko latauksissa (Gt)",
|
||||||
|
"archived": "Archived",
|
||||||
"archived_count": "{count, plural, other {Arkistoitu #}}",
|
"archived_count": "{count, plural, other {Arkistoitu #}}",
|
||||||
"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_action_delete_err_read_only": "Vain luku-tilassa olevia kohteita ei voitu poistaa, ohitetaan",
|
||||||
|
"asset_action_share_err_offline": "Verkottomassa tilassa olevia kohteita ei voitu noutaa, ohitetaan",
|
||||||
"asset_added_to_album": "Lisätty albumiin",
|
"asset_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_list_group_by_sub_title": "Ryhmittele",
|
||||||
|
"asset_list_layout_settings_dynamic_layout_title": "Dynaaminen asetelma",
|
||||||
|
"asset_list_layout_settings_group_automatically": "Automaattisesti",
|
||||||
|
"asset_list_layout_settings_group_by": "Ryhmittele",
|
||||||
|
"asset_list_layout_settings_group_by_month_day": "Kuukauden ja päivän mukaan",
|
||||||
|
"asset_list_layout_sub_title": "Asettelu",
|
||||||
|
"asset_list_settings_subtitle": "Kuvaruudukon asettelu",
|
||||||
|
"asset_list_settings_title": "Kuvaruudukko",
|
||||||
"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_restored_successfully": "Asset restored successfully",
|
||||||
"asset_skipped": "Ohitettu",
|
"asset_skipped": "Ohitettu",
|
||||||
"asset_skipped_in_trash": "Roskakorissa",
|
"asset_skipped_in_trash": "Roskakorissa",
|
||||||
"asset_uploaded": "Lähetetty",
|
"asset_uploaded": "Lähetetty",
|
||||||
"asset_uploading": "Lähetetään…",
|
"asset_uploading": "Lähetetään…",
|
||||||
|
"asset_viewer_settings_subtitle": "Manage your gallery viewer settings",
|
||||||
|
"asset_viewer_settings_title": "Katselin",
|
||||||
"assets": "kohdetta",
|
"assets": "kohdetta",
|
||||||
"assets_added_count": "Lisätty {count, plural, one {# kohde} other {# kohdetta}}",
|
"assets_added_count": "Lisätty {count, plural, one {# kohde} other {# kohdetta}}",
|
||||||
"assets_added_to_album_count": "Albumiin lisätty {count, plural, one {# kohde} other {# kohdetta}}",
|
"assets_added_to_album_count": "Albumiin lisätty {count, plural, one {# kohde} other {# kohdetta}}",
|
||||||
"assets_added_to_name_count": "Lisätty {count, plural, one {# kohde} other {# kohdetta}} {hasName, select, true {<b>{name}</b>} other {uuteen albumiin}}",
|
"assets_added_to_name_count": "Lisätty {count, plural, one {# kohde} other {# kohdetta}} {hasName, select, true {<b>{name}</b>} other {uuteen albumiin}}",
|
||||||
"assets_count": "{count, plural, one {# media} other {# mediaa}}",
|
"assets_count": "{count, plural, one {# media} other {# mediaa}}",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
"assets_moved_to_trash_count": "Siirretty {count, plural, one {# media} other {# mediaa}} roskakoriin",
|
"assets_moved_to_trash_count": "Siirretty {count, plural, one {# media} other {# mediaa}} roskakoriin",
|
||||||
"assets_permanently_deleted_count": "{count, plural, one {# media} other {# mediaa}} poistettu pysyvästi",
|
"assets_permanently_deleted_count": "{count, plural, one {# media} other {# mediaa}} poistettu pysyvästi",
|
||||||
"assets_removed_count": "{count, plural, one {# media} other {# mediaa}} poistettu",
|
"assets_removed_count": "{count, plural, one {# media} other {# mediaa}} poistettu",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
"assets_restore_confirmation": "Haluatko varmasti palauttaa kaikki roskakoriisi siirretyt resurssit? Tätä toimintoa ei voi peruuttaa! Huomaa, että offline-resursseja ei voida palauttaa tällä tavalla.",
|
"assets_restore_confirmation": "Haluatko varmasti palauttaa kaikki roskakoriisi siirretyt resurssit? Tätä toimintoa ei voi peruuttaa! Huomaa, että offline-resursseja ei voida palauttaa tällä tavalla.",
|
||||||
"assets_restored_count": "{count, plural, one {# media} other {# mediaa}} palautettu",
|
"assets_restored_count": "{count, plural, one {# media} other {# mediaa}} palautettu",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
"assets_trashed_count": "{count, plural, one {# media} other {# mediaa}} siirretty roskakoriin",
|
"assets_trashed_count": "{count, plural, one {# media} other {# mediaa}} siirretty roskakoriin",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"assets_were_part_of_album_count": "{count, plural, one {Media oli} other {Mediat olivat}} jo albumissa",
|
"assets_were_part_of_album_count": "{count, plural, one {Media oli} other {Mediat olivat}} jo albumissa",
|
||||||
"authorized_devices": "Valtuutetut laitteet",
|
"authorized_devices": "Valtuutetut laitteet",
|
||||||
|
"automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
|
||||||
|
"automatic_endpoint_switching_title": "Automatic URL switching",
|
||||||
"back": "Takaisin",
|
"back": "Takaisin",
|
||||||
"back_close_deselect": "Palaa, sulje tai poista valinnat",
|
"back_close_deselect": "Palaa, sulje tai poista valinnat",
|
||||||
|
"background_location_permission": "Background location permission",
|
||||||
|
"background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name",
|
||||||
|
"backup_album_selection_page_albums_device": "Laitteen albumit ({})",
|
||||||
|
"backup_album_selection_page_albums_tap": "Napauta sisällyttääksesi, kaksoisnapauta jättääksesi pois",
|
||||||
|
"backup_album_selection_page_assets_scatter": "Kohteet voivat olla hajaantuneina useisiin albumeihin. Albumeita voidaan sisällyttää varmuuskopiointiin tai jättää siitä pois.",
|
||||||
|
"backup_album_selection_page_select_albums": "Valitse albumit",
|
||||||
|
"backup_album_selection_page_selection_info": "Valintatiedot",
|
||||||
|
"backup_album_selection_page_total_assets": "Uniikkeja kohteita yhteensä",
|
||||||
|
"backup_all": "Kaikki",
|
||||||
|
"backup_background_service_backup_failed_message": "Kohteiden varmuuskopiointi epäonnistui. Yritetään uudelleen...",
|
||||||
|
"backup_background_service_connection_failed_message": "Palvelimeen ei saatu yhteyttä. Yritetään uudelleen...",
|
||||||
|
"backup_background_service_current_upload_notification": "Lähetetään {}",
|
||||||
|
"backup_background_service_default_notification": "Tarkistetaan uusia kohteita...",
|
||||||
|
"backup_background_service_error_title": "Virhe varmuuskopioinnissa",
|
||||||
|
"backup_background_service_in_progress_notification": "Varmuuskopioidaan kohteita...",
|
||||||
|
"backup_background_service_upload_failure_notification": "Lähetys palvelimelle epäonnistui {}",
|
||||||
|
"backup_controller_page_albums": "Varmuuskopioi albumit",
|
||||||
|
"backup_controller_page_background_app_refresh_disabled_content": "Salli sovelluksen päivittäminen taustalla suorittaaksesi varmuuskopiointia taustalla: Asetukset > Yleiset > Appien päivitys taustalla",
|
||||||
|
"backup_controller_page_background_app_refresh_disabled_title": "Sovelluksen päivittäminen taustalla on pois päältä",
|
||||||
|
"backup_controller_page_background_app_refresh_enable_button_text": "Siirry asetuksiin",
|
||||||
|
"backup_controller_page_background_battery_info_link": "Näytä minulle miten",
|
||||||
|
"backup_controller_page_background_battery_info_message": "Kytke pois päältä kaikki Immichin taustatyöskentelyyn liittyvät akun optimoinnit, jotta varmistat taustavarmuuskopioinnin parhaan mahdollisen toiminnan.\n\nKoska tämä on laitekohtaista, tarkista tarvittavat toimet laitevalmistajan ohjeista.",
|
||||||
|
"backup_controller_page_background_battery_info_ok": "OK",
|
||||||
|
"backup_controller_page_background_battery_info_title": "Akun optimointi",
|
||||||
|
"backup_controller_page_background_charging": "Vain laitteen ollessa kytkettynä laturiin",
|
||||||
|
"backup_controller_page_background_configure_error": "Taustapalvelun asettaminen epäonnistui",
|
||||||
|
"backup_controller_page_background_delay": "Viivästytä uusien kohteiden varmuuskopiointia: {}",
|
||||||
|
"backup_controller_page_background_description": "Kytke taustapalvelu päälle varmuuskopioidaksesi uudet kohteet automaattisesti, ilman sovelluksen avaamista",
|
||||||
|
"backup_controller_page_background_is_off": "Automaattinen varmuuskopiointi taustalla on pois päältä",
|
||||||
|
"backup_controller_page_background_is_on": "Automaattinen varmuuskopiointi taustalla on päällä",
|
||||||
|
"backup_controller_page_background_turn_off": "Kytke taustapalvelu pois päältä",
|
||||||
|
"backup_controller_page_background_turn_on": "Kytke taustapalvelu päälle",
|
||||||
|
"backup_controller_page_background_wifi": "Vain WiFi-verkossa",
|
||||||
|
"backup_controller_page_backup": "Varmuuskopiointi",
|
||||||
|
"backup_controller_page_backup_selected": "Valittu:",
|
||||||
|
"backup_controller_page_backup_sub": "Varmuuskopioidut kuvat ja videot",
|
||||||
|
"backup_controller_page_created": "Luotu: {}",
|
||||||
|
"backup_controller_page_desc_backup": "Kytke varmuuskopiointi päälle lähettääksesi uudet kohteet palvelimelle automaattisesti.",
|
||||||
|
"backup_controller_page_excluded": "Jätetty pois:",
|
||||||
|
"backup_controller_page_failed": "Epäonnistui ({})",
|
||||||
|
"backup_controller_page_filename": "Tiedoston nimi: {} [{}]",
|
||||||
|
"backup_controller_page_id": "ID: {}",
|
||||||
|
"backup_controller_page_info": "Varmuuskopioinnin tiedot",
|
||||||
|
"backup_controller_page_none_selected": "Ei mitään",
|
||||||
|
"backup_controller_page_remainder": "Jäljellä",
|
||||||
|
"backup_controller_page_remainder_sub": "Varmuuskopiointia odottavat kuvat ja videot",
|
||||||
|
"backup_controller_page_server_storage": "Palvelimen tallennustila",
|
||||||
|
"backup_controller_page_start_backup": "Aloita varmuuskopiointi",
|
||||||
|
"backup_controller_page_status_off": "Varmuuskopiointi on pois päältä",
|
||||||
|
"backup_controller_page_status_on": "Varmuuskopiointi on päällä",
|
||||||
|
"backup_controller_page_storage_format": "{} / {} käytetty",
|
||||||
|
"backup_controller_page_to_backup": "Varmuuskopioitavat albumit",
|
||||||
|
"backup_controller_page_total_sub": "Kaikki uniikit kuvat ja videot valituista albumeista",
|
||||||
|
"backup_controller_page_turn_off": "Varmuuskopiointi pois päältä",
|
||||||
|
"backup_controller_page_turn_on": "Varmuuskopiointi päälle",
|
||||||
|
"backup_controller_page_uploading_file_info": "Tiedostojen lähetystiedot",
|
||||||
|
"backup_err_only_album": "Vähintään yhden albumin tulee olla valittuna",
|
||||||
|
"backup_info_card_assets": "kohdetta",
|
||||||
|
"backup_manual_cancelled": "Peruutettu",
|
||||||
|
"backup_manual_in_progress": "Lähetys palvelimelle on jo käynnissä. Kokeile uudelleen hetken kuluttua.",
|
||||||
|
"backup_manual_success": "Onnistui",
|
||||||
|
"backup_manual_title": "Lähetyksen tila",
|
||||||
|
"backup_options_page_title": "Varmuuskopioinnin asetukset",
|
||||||
|
"backup_setting_subtitle": "Manage background and foreground upload settings",
|
||||||
"backward": "Taaksepäin",
|
"backward": "Taaksepäin",
|
||||||
"birthdate_saved": "Syntymäaika tallennettu",
|
"birthdate_saved": "Syntymäaika tallennettu",
|
||||||
"birthdate_set_description": "Syntymäaikaa käytetään laskemaan henkilön ikä kuvanottohetkellä.",
|
"birthdate_set_description": "Syntymäaikaa käytetään laskemaan henkilön ikä kuvanottohetkellä.",
|
||||||
@@ -443,24 +561,52 @@
|
|||||||
"bulk_keep_duplicates_confirmation": "Haluatko varmasti säilyttää {count, plural, one {# kaksoiskappaleen} other {# kaksoiskappaleet}}? Tämä merkitsee kaikki kaksoiskappaleet ratkaistuiksi, eikä poista mitään.",
|
"bulk_keep_duplicates_confirmation": "Haluatko varmasti säilyttää {count, plural, one {# kaksoiskappaleen} other {# kaksoiskappaleet}}? Tämä merkitsee kaikki kaksoiskappaleet ratkaistuiksi, eikä poista mitään.",
|
||||||
"bulk_trash_duplicates_confirmation": "Haluatko varmasti siirtää {count, plural, one {# kaksoiskappaleen} other {# kaksoiskappaleet}} roskakoriin? Tämä säilyttää kustakin mediasta kookkaimman ja siirtää loput roskakoriin.",
|
"bulk_trash_duplicates_confirmation": "Haluatko varmasti siirtää {count, plural, one {# kaksoiskappaleen} other {# kaksoiskappaleet}} roskakoriin? Tämä säilyttää kustakin mediasta kookkaimman ja siirtää loput roskakoriin.",
|
||||||
"buy": "Osta lisenssi Immich:iin",
|
"buy": "Osta lisenssi Immich:iin",
|
||||||
|
"cache_settings_album_thumbnails": "Kirjastosivun esikatselukuvat ({} kohdetta)",
|
||||||
|
"cache_settings_clear_cache_button": "Tyhjennä välimuisti",
|
||||||
|
"cache_settings_clear_cache_button_title": "Tyhjennä sovelluksen välimuisti. Tämä vaikuttaa merkittävästi sovelluksen suorituskykyyn, kunnes välimuisti on rakennettu uudelleen.",
|
||||||
|
"cache_settings_duplicated_assets_clear_button": "Tyhjennä",
|
||||||
|
"cache_settings_duplicated_assets_subtitle": "Sovelluksen mustalle listalle merkitsemät valokuvat ja videot",
|
||||||
|
"cache_settings_duplicated_assets_title": "Kaksoiskappaleet ({})",
|
||||||
|
"cache_settings_image_cache_size": "Kuvien välimuistin koko ({} kohdetta)",
|
||||||
|
"cache_settings_statistics_album": "Kirjaston esikatselukuvat",
|
||||||
|
"cache_settings_statistics_assets": "{} kohdetta ({})",
|
||||||
|
"cache_settings_statistics_full": "Täysikokoiset kuvat",
|
||||||
|
"cache_settings_statistics_shared": "Jaettujen albumien esikatselukuvat",
|
||||||
|
"cache_settings_statistics_thumbnail": "Esikatselukuvat",
|
||||||
|
"cache_settings_statistics_title": "Välimuistin käyttö",
|
||||||
|
"cache_settings_subtitle": "Hallitse Immich-mobiilisovelluksen välimuistin käyttöä",
|
||||||
|
"cache_settings_thumbnail_size": "Esikatselukuvien välimuistin koko ({} kohdetta)",
|
||||||
|
"cache_settings_tile_subtitle": "Hallitse paikallista tallenustilaa",
|
||||||
|
"cache_settings_tile_title": "Paikallinen tallennustila",
|
||||||
|
"cache_settings_title": "Välimuistin asetukset",
|
||||||
"camera": "Kamera",
|
"camera": "Kamera",
|
||||||
"camera_brand": "Kameran merkki",
|
"camera_brand": "Kameran merkki",
|
||||||
"camera_model": "Kameran malli",
|
"camera_model": "Kameran malli",
|
||||||
"cancel": "Peruuta",
|
"cancel": "Peruuta",
|
||||||
"cancel_search": "Peru haku",
|
"cancel_search": "Peru haku",
|
||||||
|
"canceled": "Canceled",
|
||||||
"cannot_merge_people": "Ihmisiä ei voitu yhdistää",
|
"cannot_merge_people": "Ihmisiä ei voitu yhdistää",
|
||||||
"cannot_undo_this_action": "Et voi perua tätä toimintoa!",
|
"cannot_undo_this_action": "Et voi perua tätä toimintoa!",
|
||||||
"cannot_update_the_description": "Kuvausta ei voi päivittää",
|
"cannot_update_the_description": "Kuvausta ei voi päivittää",
|
||||||
"change_date": "Vaihda päiväys",
|
"change_date": "Vaihda päiväys",
|
||||||
|
"change_display_order": "Change display order",
|
||||||
"change_expiration_time": "Muuta erääntymisaikaa",
|
"change_expiration_time": "Muuta erääntymisaikaa",
|
||||||
"change_location": "Vaihda sijainti",
|
"change_location": "Vaihda sijainti",
|
||||||
"change_name": "Vaihda nimi",
|
"change_name": "Vaihda nimi",
|
||||||
"change_name_successfully": "Nimi vaihdettu",
|
"change_name_successfully": "Nimi vaihdettu",
|
||||||
"change_password": "Vaihda Salasana",
|
"change_password": "Vaihda Salasana",
|
||||||
"change_password_description": "Tämä on joko ensimmäinen kertasi kun kirjaudut järjestelmään, tai salasanasi on pyydetty vaihtamaan. Määritä uusi salasana alle.",
|
"change_password_description": "Tämä on joko ensimmäinen kertasi kun kirjaudut järjestelmään, tai salasanasi on pyydetty vaihtamaan. Määritä uusi salasana alle.",
|
||||||
|
"change_password_form_confirm_password": "Vahvista salasana",
|
||||||
|
"change_password_form_description": "Hei {name},\n\nTämä on joko ensimmäinen kirjautumisesi järjestelmään tai salasanan vaihtaminen vaihtaminen on pakotettu. Ole hyvä ja syötä uusi salasana alle.",
|
||||||
|
"change_password_form_new_password": "Uusi salasana",
|
||||||
|
"change_password_form_password_mismatch": "Salasanat eivät täsmää",
|
||||||
|
"change_password_form_reenter_new_password": "Uusi salasana uudelleen",
|
||||||
"change_your_password": "Vaihda salasanasi",
|
"change_your_password": "Vaihda salasanasi",
|
||||||
"changed_visibility_successfully": "Näkyvyys vaihdettu",
|
"changed_visibility_successfully": "Näkyvyys vaihdettu",
|
||||||
"check_all": "Valitse kaikki",
|
"check_all": "Valitse kaikki",
|
||||||
|
"check_corrupt_asset_backup": "Check for corrupt asset backups",
|
||||||
|
"check_corrupt_asset_backup_button": "Perform check",
|
||||||
|
"check_corrupt_asset_backup_description": "Run this check only over Wi-Fi and once all assets have been backed-up. The procedure might take a few minutes.",
|
||||||
"check_logs": "Katso lokeja",
|
"check_logs": "Katso lokeja",
|
||||||
"choose_matching_people_to_merge": "Valitse henkilöt joka yhdistetään",
|
"choose_matching_people_to_merge": "Valitse henkilöt joka yhdistetään",
|
||||||
"city": "Kaupunki",
|
"city": "Kaupunki",
|
||||||
@@ -469,6 +615,14 @@
|
|||||||
"clear_all_recent_searches": "Tyhjennä viimeisimmät haut",
|
"clear_all_recent_searches": "Tyhjennä viimeisimmät haut",
|
||||||
"clear_message": "Tyhjennä viesti",
|
"clear_message": "Tyhjennä viesti",
|
||||||
"clear_value": "Tyhjää arvo",
|
"clear_value": "Tyhjää arvo",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"clockwise": "Myötäpäivään",
|
"clockwise": "Myötäpäivään",
|
||||||
"close": "Sulje",
|
"close": "Sulje",
|
||||||
"collapse": "Supista",
|
"collapse": "Supista",
|
||||||
@@ -479,6 +633,9 @@
|
|||||||
"comment_options": "Kommentin valinnat",
|
"comment_options": "Kommentin valinnat",
|
||||||
"comments_and_likes": "Kommentit ja tykkäykset",
|
"comments_and_likes": "Kommentit ja tykkäykset",
|
||||||
"comments_are_disabled": "Kommentointi ei käytössä",
|
"comments_are_disabled": "Kommentointi ei käytössä",
|
||||||
|
"common_create_new_album": "Luo uusi albumi",
|
||||||
|
"common_server_error": "Tarkista internet-yhteytesi. Varmista että palvelin on saavutettavissa ja sovellus-/palvelinversiot ovat yhteensopivia.",
|
||||||
|
"completed": "Completed",
|
||||||
"confirm": "Vahvista",
|
"confirm": "Vahvista",
|
||||||
"confirm_admin_password": "Vahvista ylläpitäjän salasana",
|
"confirm_admin_password": "Vahvista ylläpitäjän salasana",
|
||||||
"confirm_delete_shared_link": "Haluatko varmasti poistaa tämän jaetun linkin?",
|
"confirm_delete_shared_link": "Haluatko varmasti poistaa tämän jaetun linkin?",
|
||||||
@@ -487,6 +644,15 @@
|
|||||||
"contain": "Mahduta",
|
"contain": "Mahduta",
|
||||||
"context": "Konteksti",
|
"context": "Konteksti",
|
||||||
"continue": "Jatka",
|
"continue": "Jatka",
|
||||||
|
"control_bottom_app_bar_album_info_shared": "{} kohdetta · Jaettu",
|
||||||
|
"control_bottom_app_bar_create_new_album": "Luo uusi albumi",
|
||||||
|
"control_bottom_app_bar_delete_from_immich": "Poista Immichistä",
|
||||||
|
"control_bottom_app_bar_delete_from_local": "Poista laitteelta",
|
||||||
|
"control_bottom_app_bar_edit_location": "Muokkaa sijaintia",
|
||||||
|
"control_bottom_app_bar_edit_time": "Muokkaa aikaa",
|
||||||
|
"control_bottom_app_bar_share_link": "Share Link",
|
||||||
|
"control_bottom_app_bar_share_to": "Jaa",
|
||||||
|
"control_bottom_app_bar_trash_from_immich": "Siirrä roskakoriin",
|
||||||
"copied_image_to_clipboard": "Kuva kopioitu leikepöydälle.",
|
"copied_image_to_clipboard": "Kuva kopioitu leikepöydälle.",
|
||||||
"copied_to_clipboard": "Kopioitu leikepöydälle!",
|
"copied_to_clipboard": "Kopioitu leikepöydälle!",
|
||||||
"copy_error": "Kopiointivirhe",
|
"copy_error": "Kopiointivirhe",
|
||||||
@@ -501,24 +667,34 @@
|
|||||||
"covers": "Kannet",
|
"covers": "Kannet",
|
||||||
"create": "Luo",
|
"create": "Luo",
|
||||||
"create_album": "Luo albumi",
|
"create_album": "Luo albumi",
|
||||||
|
"create_album_page_untitled": "Nimetön",
|
||||||
"create_library": "Luo uusi kirjasto",
|
"create_library": "Luo uusi kirjasto",
|
||||||
"create_link": "Luo linkki",
|
"create_link": "Luo linkki",
|
||||||
"create_link_to_share": "Luo linkki jaettavaksi",
|
"create_link_to_share": "Luo linkki jaettavaksi",
|
||||||
"create_link_to_share_description": "Salli kaikkien linkin saaneiden nähdä valitut kuvat",
|
"create_link_to_share_description": "Salli kaikkien linkin saaneiden nähdä valitut kuvat",
|
||||||
|
"create_new": "CREATE NEW",
|
||||||
"create_new_person": "Luo uusi henkilö",
|
"create_new_person": "Luo uusi henkilö",
|
||||||
"create_new_person_hint": "Määritä valitut mediat uudelle henkilölle",
|
"create_new_person_hint": "Määritä valitut mediat uudelle henkilölle",
|
||||||
"create_new_user": "Luo uusi käyttäjä",
|
"create_new_user": "Luo uusi käyttäjä",
|
||||||
|
"create_shared_album_page_share_add_assets": "LISÄÄ KOHTEITA",
|
||||||
|
"create_shared_album_page_share_select_photos": "Valitse kuvat",
|
||||||
"create_tag": "Luo tunniste",
|
"create_tag": "Luo tunniste",
|
||||||
"create_tag_description": "Luo uusi tunniste. Sisäkkäisiä tunnisteita varten syötä tunnisteen täydellinen polku kauttaviivat mukaan luettuna.",
|
"create_tag_description": "Luo uusi tunniste. Sisäkkäisiä tunnisteita varten syötä tunnisteen täydellinen polku kauttaviivat mukaan luettuna.",
|
||||||
"create_user": "Luo käyttäjä",
|
"create_user": "Luo käyttäjä",
|
||||||
"created": "Luotu",
|
"created": "Luotu",
|
||||||
|
"crop": "Crop",
|
||||||
|
"curated_object_page_title": "Asiat",
|
||||||
"current_device": "Nykyinen laite",
|
"current_device": "Nykyinen laite",
|
||||||
|
"current_server_address": "Current server address",
|
||||||
"custom_locale": "Muokatut maa-asetukset",
|
"custom_locale": "Muokatut maa-asetukset",
|
||||||
"custom_locale_description": "Muotoile päivämäärät ja numerot perustuen alueen kieleen",
|
"custom_locale_description": "Muotoile päivämäärät ja numerot perustuen alueen kieleen",
|
||||||
|
"daily_title_text_date": "E, MMM dd",
|
||||||
|
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||||
"dark": "Tumma",
|
"dark": "Tumma",
|
||||||
"date_after": "Päivämäärän jälkeen",
|
"date_after": "Päivämäärän jälkeen",
|
||||||
"date_and_time": "Päivämäärä ja aika",
|
"date_and_time": "Päivämäärä ja aika",
|
||||||
"date_before": "Päivä ennen",
|
"date_before": "Päivä ennen",
|
||||||
|
"date_format": "E, LLL d, y • h:mm a",
|
||||||
"date_of_birth_saved": "Syntymäaika tallennettu",
|
"date_of_birth_saved": "Syntymäaika tallennettu",
|
||||||
"date_range": "Päivämäärän rajaus",
|
"date_range": "Päivämäärän rajaus",
|
||||||
"day": "Päivä",
|
"day": "Päivä",
|
||||||
@@ -532,18 +708,29 @@
|
|||||||
"delete": "Poista",
|
"delete": "Poista",
|
||||||
"delete_album": "Poista albumi",
|
"delete_album": "Poista albumi",
|
||||||
"delete_api_key_prompt": "Haluatko varmasti poistaa tämän API-avaimen?",
|
"delete_api_key_prompt": "Haluatko varmasti poistaa tämän API-avaimen?",
|
||||||
|
"delete_dialog_alert": "Nämä kohteet poistetaan pysyvästi Immich:stä ja laitteeltasi",
|
||||||
|
"delete_dialog_alert_local": "Kohteet poistetaan pysyvästi laitteelta, mutta ovat saatavilla Immich-palvelimella",
|
||||||
|
"delete_dialog_alert_local_non_backed_up": "Joitain kohteista ei ole varmuuskopioitu Immichiin ja ne poistetaan laitteelta pysyvästi",
|
||||||
|
"delete_dialog_alert_remote": "Kohteet poistetaan pysyvästi Immich-palvelimelta",
|
||||||
|
"delete_dialog_ok_force": "Poista kuitenkin",
|
||||||
|
"delete_dialog_title": "Poista pysyvästi",
|
||||||
"delete_duplicates_confirmation": "Haluatko varmasti poistaa nämä kaksoiskappaleet pysyvästi?",
|
"delete_duplicates_confirmation": "Haluatko varmasti poistaa nämä kaksoiskappaleet pysyvästi?",
|
||||||
"delete_key": "Poista avain",
|
"delete_key": "Poista avain",
|
||||||
"delete_library": "Poista kirjasto",
|
"delete_library": "Poista kirjasto",
|
||||||
"delete_link": "Poista linkki",
|
"delete_link": "Poista linkki",
|
||||||
|
"delete_local_dialog_ok_backed_up_only": "Poista vain varmuuskopioidut",
|
||||||
|
"delete_local_dialog_ok_force": "Poista kuitenkin",
|
||||||
"delete_others": "Poista muut",
|
"delete_others": "Poista muut",
|
||||||
"delete_shared_link": "Poista jaettu linkki",
|
"delete_shared_link": "Poista jaettu linkki",
|
||||||
|
"delete_shared_link_dialog_title": "Poista jaettu linkki",
|
||||||
"delete_tag": "Poista tunniste",
|
"delete_tag": "Poista tunniste",
|
||||||
"delete_tag_confirmation_prompt": "Haluatko varmasti poistaa tunnisteen {tagName}?",
|
"delete_tag_confirmation_prompt": "Haluatko varmasti poistaa tunnisteen {tagName}?",
|
||||||
"delete_user": "Poista käyttäjä",
|
"delete_user": "Poista käyttäjä",
|
||||||
"deleted_shared_link": "Jaettu linkki poistettu",
|
"deleted_shared_link": "Jaettu linkki poistettu",
|
||||||
"deletes_missing_assets": "Poistaa levyltä puuttuvat resurssit",
|
"deletes_missing_assets": "Poistaa levyltä puuttuvat resurssit",
|
||||||
"description": "Kuvaus",
|
"description": "Kuvaus",
|
||||||
|
"description_input_hint_text": "Lisää kuvaus...",
|
||||||
|
"description_input_submit_error": "Virhe kuvauksen päivittämisessä, tarkista lisätiedot lokista",
|
||||||
"details": "TIEDOT",
|
"details": "TIEDOT",
|
||||||
"direction": "Suunta",
|
"direction": "Suunta",
|
||||||
"disabled": "Poistettu käytöstä",
|
"disabled": "Poistettu käytöstä",
|
||||||
@@ -560,12 +747,26 @@
|
|||||||
"documentation": "Dokumentaatio",
|
"documentation": "Dokumentaatio",
|
||||||
"done": "Valmis",
|
"done": "Valmis",
|
||||||
"download": "Lataa",
|
"download": "Lataa",
|
||||||
|
"download_canceled": "Download canceled",
|
||||||
|
"download_complete": "Download complete",
|
||||||
|
"download_enqueue": "Download enqueued",
|
||||||
|
"download_error": "Download Error",
|
||||||
|
"download_failed": "Download failed",
|
||||||
|
"download_filename": "file: {}",
|
||||||
|
"download_finished": "Download finished",
|
||||||
"download_include_embedded_motion_videos": "Upotetut videot",
|
"download_include_embedded_motion_videos": "Upotetut videot",
|
||||||
"download_include_embedded_motion_videos_description": "Sisällytä liikekuviin upotetut videot erillisinä tiedostoina",
|
"download_include_embedded_motion_videos_description": "Sisällytä liikekuviin upotetut videot erillisinä tiedostoina",
|
||||||
|
"download_notfound": "Download not found",
|
||||||
|
"download_paused": "Download paused",
|
||||||
"download_settings": "Lataukset",
|
"download_settings": "Lataukset",
|
||||||
"download_settings_description": "Hallitse aineiston lataukseen liittyviä asetuksia",
|
"download_settings_description": "Hallitse aineiston lataukseen liittyviä asetuksia",
|
||||||
|
"download_started": "Download started",
|
||||||
|
"download_sucess": "Download success",
|
||||||
|
"download_sucess_android": "The media has been downloaded to DCIM/Immich",
|
||||||
|
"download_waiting_to_retry": "Waiting to retry",
|
||||||
"downloading": "Ladataan",
|
"downloading": "Ladataan",
|
||||||
"downloading_asset_filename": "Ladataan mediaa {filename}",
|
"downloading_asset_filename": "Ladataan mediaa {filename}",
|
||||||
|
"downloading_media": "Downloading media",
|
||||||
"drop_files_to_upload": "Pudota tiedostot mihin tahansa ladataksesi ne",
|
"drop_files_to_upload": "Pudota tiedostot mihin tahansa ladataksesi ne",
|
||||||
"duplicates": "Kaksoiskappaleet",
|
"duplicates": "Kaksoiskappaleet",
|
||||||
"duplicates_description": "Selvitä jokaisen kohdalla mitkä (jos yksikään) ovat kaksoiskappaleita",
|
"duplicates_description": "Selvitä jokaisen kohdalla mitkä (jos yksikään) ovat kaksoiskappaleita",
|
||||||
@@ -582,6 +783,7 @@
|
|||||||
"edit_key": "Muokkaa avainta",
|
"edit_key": "Muokkaa avainta",
|
||||||
"edit_link": "Muokkaa linkkiä",
|
"edit_link": "Muokkaa linkkiä",
|
||||||
"edit_location": "Muokkaa sijaintia",
|
"edit_location": "Muokkaa sijaintia",
|
||||||
|
"edit_location_dialog_title": "Sijainti",
|
||||||
"edit_name": "Muokkaa nimeä",
|
"edit_name": "Muokkaa nimeä",
|
||||||
"edit_people": "Muokkaa henkilöitä",
|
"edit_people": "Muokkaa henkilöitä",
|
||||||
"edit_tag": "Muokkaa tunnistetta",
|
"edit_tag": "Muokkaa tunnistetta",
|
||||||
@@ -594,13 +796,18 @@
|
|||||||
"editor_crop_tool_h2_aspect_ratios": "Kuvasuhteet",
|
"editor_crop_tool_h2_aspect_ratios": "Kuvasuhteet",
|
||||||
"editor_crop_tool_h2_rotation": "Rotaatio",
|
"editor_crop_tool_h2_rotation": "Rotaatio",
|
||||||
"email": "Sähköposti",
|
"email": "Sähköposti",
|
||||||
|
"empty_folder": "This folder is empty",
|
||||||
"empty_trash": "Tyhjennä roskakori",
|
"empty_trash": "Tyhjennä roskakori",
|
||||||
"empty_trash_confirmation": "Haluatko varmasti tyhjentää roskakorin? Tämä poistaa pysyvästi kaikki tiedostot Immich:stä.\nToimintoa ei voi perua!",
|
"empty_trash_confirmation": "Haluatko varmasti tyhjentää roskakorin? Tämä poistaa pysyvästi kaikki tiedostot Immich:stä.\nToimintoa ei voi perua!",
|
||||||
"enable": "Ota käyttöön",
|
"enable": "Ota käyttöön",
|
||||||
"enabled": "Käytössä",
|
"enabled": "Käytössä",
|
||||||
"end_date": "Päättymispäivä",
|
"end_date": "Päättymispäivä",
|
||||||
|
"enqueued": "Enqueued",
|
||||||
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
"error": "Virhe",
|
"error": "Virhe",
|
||||||
|
"error_change_sort_album": "Failed to change album sort order",
|
||||||
"error_loading_image": "Kuvan lataus ei onnistunut",
|
"error_loading_image": "Kuvan lataus ei onnistunut",
|
||||||
|
"error_saving_image": "Error: {}",
|
||||||
"error_title": "Virhe - Jotain meni pieleen",
|
"error_title": "Virhe - Jotain meni pieleen",
|
||||||
"errors": {
|
"errors": {
|
||||||
"cannot_navigate_next_asset": "Seuraavaan mediaan ei voi siirtyä",
|
"cannot_navigate_next_asset": "Seuraavaan mediaan ei voi siirtyä",
|
||||||
@@ -729,8 +936,21 @@
|
|||||||
"unable_to_upload_file": "Tiedostoa ei voitu ladata"
|
"unable_to_upload_file": "Tiedostoa ei voitu ladata"
|
||||||
},
|
},
|
||||||
"exif": "Exif",
|
"exif": "Exif",
|
||||||
|
"exif_bottom_sheet_description": "Lisää kuvaus…",
|
||||||
|
"exif_bottom_sheet_details": "TIEDOT",
|
||||||
|
"exif_bottom_sheet_location": "SIJAINTI",
|
||||||
|
"exif_bottom_sheet_people": "IHMISET",
|
||||||
|
"exif_bottom_sheet_person_add_person": "Lisää nimi",
|
||||||
|
"exif_bottom_sheet_person_age": "Age {}",
|
||||||
|
"exif_bottom_sheet_person_age_months": "Age {} months",
|
||||||
|
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
||||||
|
"exif_bottom_sheet_person_age_years": "Age {}",
|
||||||
"exit_slideshow": "Poistu diaesityksestä",
|
"exit_slideshow": "Poistu diaesityksestä",
|
||||||
"expand_all": "Laajenna kaikki",
|
"expand_all": "Laajenna kaikki",
|
||||||
|
"experimental_settings_new_asset_list_subtitle": "Työn alla",
|
||||||
|
"experimental_settings_new_asset_list_title": "Ota käyttöön kokeellinen kuvaruudukko",
|
||||||
|
"experimental_settings_subtitle": "Käyttö omalla vastuulla!",
|
||||||
|
"experimental_settings_title": "Kokeellinen",
|
||||||
"expire_after": "Umpeutuu",
|
"expire_after": "Umpeutuu",
|
||||||
"expired": "Voimassaolo päättynyt",
|
"expired": "Voimassaolo päättynyt",
|
||||||
"expires_date": "Vanhenee {date}",
|
"expires_date": "Vanhenee {date}",
|
||||||
@@ -741,11 +961,16 @@
|
|||||||
"extension": "Tiedostopääte",
|
"extension": "Tiedostopääte",
|
||||||
"external": "Ulkoisesta",
|
"external": "Ulkoisesta",
|
||||||
"external_libraries": "Ulkoiset kirjastot",
|
"external_libraries": "Ulkoiset kirjastot",
|
||||||
|
"external_network": "External network",
|
||||||
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"face_unassigned": "Ei määritelty",
|
"face_unassigned": "Ei määritelty",
|
||||||
|
"failed": "Failed",
|
||||||
"failed_to_load_assets": "Kohteiden lataus epäonnistui",
|
"failed_to_load_assets": "Kohteiden lataus epäonnistui",
|
||||||
|
"failed_to_load_folder": "Failed to load folder",
|
||||||
"favorite": "Suosikki",
|
"favorite": "Suosikki",
|
||||||
"favorite_or_unfavorite_photo": "Suosikki- tai ei-suosikkikuva",
|
"favorite_or_unfavorite_photo": "Suosikki- tai ei-suosikkikuva",
|
||||||
"favorites": "Suosikit",
|
"favorites": "Suosikit",
|
||||||
|
"favorites_page_no_favorites": "Suosikkikohteita ei löytynyt",
|
||||||
"feature_photo_updated": "Kansikuva ladattu",
|
"feature_photo_updated": "Kansikuva ladattu",
|
||||||
"features": "Ominaisuudet",
|
"features": "Ominaisuudet",
|
||||||
"features_setting_description": "Hallitse sovelluksen ominaisuuksia",
|
"features_setting_description": "Hallitse sovelluksen ominaisuuksia",
|
||||||
@@ -753,25 +978,38 @@
|
|||||||
"file_name_or_extension": "Tiedostonimi tai tiedostopääte",
|
"file_name_or_extension": "Tiedostonimi tai tiedostopääte",
|
||||||
"filename": "Tiedostonimi",
|
"filename": "Tiedostonimi",
|
||||||
"filetype": "Tiedostotyyppi",
|
"filetype": "Tiedostotyyppi",
|
||||||
|
"filter": "Filter",
|
||||||
"filter_people": "Suodata henkilöt",
|
"filter_people": "Suodata henkilöt",
|
||||||
"find_them_fast": "Löydä nopeasti hakemalla nimellä",
|
"find_them_fast": "Löydä nopeasti hakemalla nimellä",
|
||||||
"fix_incorrect_match": "Korjaa virheellinen osuma",
|
"fix_incorrect_match": "Korjaa virheellinen osuma",
|
||||||
|
"folder": "Folder",
|
||||||
|
"folder_not_found": "Folder not found",
|
||||||
"folders": "Kansiot",
|
"folders": "Kansiot",
|
||||||
"folders_feature_description": "Käytetään kansionäkymää valokuvien ja videoiden selaamiseen järjestelmässä",
|
"folders_feature_description": "Käytetään kansionäkymää valokuvien ja videoiden selaamiseen järjestelmässä",
|
||||||
"forward": "Eteenpäin",
|
"forward": "Eteenpäin",
|
||||||
"general": "Yleinen",
|
"general": "Yleinen",
|
||||||
"get_help": "Hae apua",
|
"get_help": "Hae apua",
|
||||||
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"getting_started": "Aloittaminen",
|
"getting_started": "Aloittaminen",
|
||||||
"go_back": "Palaa",
|
"go_back": "Palaa",
|
||||||
"go_to_folder": "Mene kansioon",
|
"go_to_folder": "Mene kansioon",
|
||||||
"go_to_search": "Siirry hakuun",
|
"go_to_search": "Siirry hakuun",
|
||||||
|
"grant_permission": "Grant permission",
|
||||||
"group_albums_by": "Ryhmitä albumi...",
|
"group_albums_by": "Ryhmitä albumi...",
|
||||||
"group_country": "Ryhmitä maan mukaan",
|
"group_country": "Ryhmitä maan mukaan",
|
||||||
"group_no": "Ei ryhmitystä",
|
"group_no": "Ei ryhmitystä",
|
||||||
"group_owner": "Ryhmitä omistajan mukaan",
|
"group_owner": "Ryhmitä omistajan mukaan",
|
||||||
"group_places_by": "Ryhmitä paikat...",
|
"group_places_by": "Ryhmitä paikat...",
|
||||||
"group_year": "Ryhmitä vuoden mukaan",
|
"group_year": "Ryhmitä vuoden mukaan",
|
||||||
|
"haptic_feedback_switch": "Ota haptinen palaute käyttöön",
|
||||||
|
"haptic_feedback_title": "Haptinen palaute",
|
||||||
"has_quota": "On kiintiö",
|
"has_quota": "On kiintiö",
|
||||||
|
"header_settings_add_header_tip": "Add Header",
|
||||||
|
"header_settings_field_validator_msg": "Value cannot be empty",
|
||||||
|
"header_settings_header_name_input": "Header name",
|
||||||
|
"header_settings_header_value_input": "Header value",
|
||||||
|
"headers_settings_tile_subtitle": "Define proxy headers the app should send with each network request",
|
||||||
|
"headers_settings_tile_title": "Custom proxy headers",
|
||||||
"hi_user": "Hei {name} ({email})",
|
"hi_user": "Hei {name} ({email})",
|
||||||
"hide_all_people": "Piilota kaikki henkilöt",
|
"hide_all_people": "Piilota kaikki henkilöt",
|
||||||
"hide_gallery": "Piilota galleria",
|
"hide_gallery": "Piilota galleria",
|
||||||
@@ -779,8 +1017,24 @@
|
|||||||
"hide_password": "Piilota salasana",
|
"hide_password": "Piilota salasana",
|
||||||
"hide_person": "Piilota henkilö",
|
"hide_person": "Piilota henkilö",
|
||||||
"hide_unnamed_people": "Piilota nimeämättömät henkilöt",
|
"hide_unnamed_people": "Piilota nimeämättömät henkilöt",
|
||||||
|
"home_page_add_to_album_conflicts": "Lisätty {added} kohdetta albumiin {album}. {failed} kohdetta on jo albumissa.",
|
||||||
|
"home_page_add_to_album_err_local": "Paikallisten kohteiden lisääminen albumeihin ei ole mahdollista, ohitetaan",
|
||||||
|
"home_page_add_to_album_success": "Lisätty {added} kohdetta albumiin {album}.",
|
||||||
|
"home_page_album_err_partner": "Kumppanin kohteita ei voi vielä lisätä albumiin. Hypätään yli",
|
||||||
|
"home_page_archive_err_local": "Paikallisten kohteiden arkistointi ei ole mahdollista, ohitetaan",
|
||||||
|
"home_page_archive_err_partner": "Kumppanin kohteita ei voi arkistoida. Hypätään yli",
|
||||||
|
"home_page_building_timeline": "Rakennetaan aikajanaa",
|
||||||
|
"home_page_delete_err_partner": "Kumppanin kohteita ei voi poistaa.Hypätään yli",
|
||||||
|
"home_page_delete_remote_err_local": "Paikallisia kohteita etäkohdevalintojen joukossa, ohitetaan",
|
||||||
|
"home_page_favorite_err_local": "Paikallisten kohteiden lisääminen suosikkeihin ei ole mahdollista, ohitetaan",
|
||||||
|
"home_page_favorite_err_partner": "Kumppanin kohteita ei voi vielä merkitä suosikiksi. Hypätään yli",
|
||||||
|
"home_page_first_time_notice": "Jos käytät sovellusta ensimmäistä kertaa, muista valita varmuuskopioitavat albumi(t), jotta aikajanalla voi olla kuvia ja videoita.",
|
||||||
|
"home_page_share_err_local": "Paikallisia kohteita ei voitu jakaa linkkien avulla. Hypätään yli",
|
||||||
|
"home_page_upload_err_limit": "Voit lähettää palvelimelle enintään 30 kohdetta kerrallaan, ohitetaan",
|
||||||
"host": "Isäntä",
|
"host": "Isäntä",
|
||||||
"hour": "Tunti",
|
"hour": "Tunti",
|
||||||
|
"ignore_icloud_photos": "Ignore iCloud photos",
|
||||||
|
"ignore_icloud_photos_description": "Photos that are stored on iCloud will not be uploaded to the Immich server",
|
||||||
"image": "Kuva",
|
"image": "Kuva",
|
||||||
"image_alt_text_date": "{isVideo, select, true {Video} other {Kuva}} otettu {date}",
|
"image_alt_text_date": "{isVideo, select, true {Video} other {Kuva}} otettu {date}",
|
||||||
"image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Kuva}} otettu {person1} kanssa {date}",
|
"image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Kuva}} otettu {person1} kanssa {date}",
|
||||||
@@ -792,6 +1046,10 @@
|
|||||||
"image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Kuva}} otettu {city}ssä, {country}ssä {person1}n ja {person2}n kanssa {date}",
|
"image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Kuva}} otettu {city}ssä, {country}ssä {person1}n ja {person2}n kanssa {date}",
|
||||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Kuva}} otettu {city}ssä, {country}ssä {person1}n, {person2}n ja {person3}n kanssa {date}",
|
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Kuva}} otettu {city}ssä, {country}ssä {person1}n, {person2}n ja {person3}n kanssa {date}",
|
||||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Kuva}} otettu {city}ssä, {country}ssä {person1}n, {person2}n ja {additionalCount, number} muun kanssa {date}",
|
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Kuva}} otettu {city}ssä, {country}ssä {person1}n, {person2}n ja {additionalCount, number} muun kanssa {date}",
|
||||||
|
"image_saved_successfully": "Image saved",
|
||||||
|
"image_viewer_page_state_provider_download_started": "Lataaminen aloitettu",
|
||||||
|
"image_viewer_page_state_provider_download_success": "Lataus onnistui",
|
||||||
|
"image_viewer_page_state_provider_share_error": "Jakovirhe",
|
||||||
"immich_logo": "Immich-logo",
|
"immich_logo": "Immich-logo",
|
||||||
"immich_web_interface": "Immich-verkkokäyttöliittymä",
|
"immich_web_interface": "Immich-verkkokäyttöliittymä",
|
||||||
"import_from_json": "Tuo JSON-tiedostosta",
|
"import_from_json": "Tuo JSON-tiedostosta",
|
||||||
@@ -810,6 +1068,8 @@
|
|||||||
"night_at_midnight": "Joka yö keskiyöllä",
|
"night_at_midnight": "Joka yö keskiyöllä",
|
||||||
"night_at_twoam": "Joka yö klo 02:00"
|
"night_at_twoam": "Joka yö klo 02:00"
|
||||||
},
|
},
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"invite_people": "Kutsu ihmisiä",
|
"invite_people": "Kutsu ihmisiä",
|
||||||
"invite_to_album": "Kutsu albumiin",
|
"invite_to_album": "Kutsu albumiin",
|
||||||
"items_count": "{count, plural, one {# kpl} other {# kpl}}",
|
"items_count": "{count, plural, one {# kpl} other {# kpl}}",
|
||||||
@@ -829,6 +1089,12 @@
|
|||||||
"level": "Taso",
|
"level": "Taso",
|
||||||
"library": "Kirjasto",
|
"library": "Kirjasto",
|
||||||
"library_options": "Kirjastovaihtoehdot",
|
"library_options": "Kirjastovaihtoehdot",
|
||||||
|
"library_page_device_albums": "Laitteen albumit",
|
||||||
|
"library_page_new_album": "Uusi albumi",
|
||||||
|
"library_page_sort_asset_count": "Kohteiden lukumäärä",
|
||||||
|
"library_page_sort_created": "Viimeisin luotu",
|
||||||
|
"library_page_sort_last_modified": "Viimeksi muokattu",
|
||||||
|
"library_page_sort_title": "Albumin otsikko",
|
||||||
"light": "Vaalea",
|
"light": "Vaalea",
|
||||||
"like_deleted": "Tykkäys poistettu",
|
"like_deleted": "Tykkäys poistettu",
|
||||||
"link_motion_video": "Linkitä liikevideo",
|
"link_motion_video": "Linkitä liikevideo",
|
||||||
@@ -838,12 +1104,42 @@
|
|||||||
"list": "Lista",
|
"list": "Lista",
|
||||||
"loading": "Ladataan",
|
"loading": "Ladataan",
|
||||||
"loading_search_results_failed": "Hakutulosten lataaminen epäonnistui",
|
"loading_search_results_failed": "Hakutulosten lataaminen epäonnistui",
|
||||||
|
"local_network": "Local network",
|
||||||
|
"local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
|
||||||
|
"location_permission": "Location permission",
|
||||||
|
"location_permission_content": "In order to use the auto-switching feature, Immich needs precise location permission so it can read the current WiFi network's name",
|
||||||
|
"location_picker_choose_on_map": "Valitse kartalta",
|
||||||
|
"location_picker_latitude_error": "Lisää kelvollinen leveysaste",
|
||||||
|
"location_picker_latitude_hint": "Syötä leveysaste",
|
||||||
|
"location_picker_longitude_error": "Lisää kelvollinen pituusaste",
|
||||||
|
"location_picker_longitude_hint": "Syötä pituusaste",
|
||||||
"log_out": "Kirjaudu ulos",
|
"log_out": "Kirjaudu ulos",
|
||||||
"log_out_all_devices": "Kirjaudu ulos kaikilta laitteilta",
|
"log_out_all_devices": "Kirjaudu ulos kaikilta laitteilta",
|
||||||
"logged_out_all_devices": "Kaikki laitteet kirjattu ulos",
|
"logged_out_all_devices": "Kaikki laitteet kirjattu ulos",
|
||||||
"logged_out_device": "Laite kirjattu ulos",
|
"logged_out_device": "Laite kirjattu ulos",
|
||||||
"login": "Kirjaudu",
|
"login": "Kirjaudu",
|
||||||
|
"login_disabled": "Kirjautuminen on poistettu käytöstä",
|
||||||
|
"login_form_api_exception": "API-virhe. Tarkista palvelimen URL-osoite ja yritä uudelleen.",
|
||||||
|
"login_form_back_button_text": "Takaisin",
|
||||||
|
"login_form_email_hint": "sahkopostisi@esimerkki.fi",
|
||||||
|
"login_form_endpoint_hint": "http://palvelimesi-osoite:portti",
|
||||||
|
"login_form_endpoint_url": "Palvelimen URL",
|
||||||
|
"login_form_err_http": "Lisää http:// tai https://",
|
||||||
|
"login_form_err_invalid_email": "Virheellinen sähköpostiosoite",
|
||||||
|
"login_form_err_invalid_url": "Virheellinen URL",
|
||||||
|
"login_form_err_leading_whitespace": "Alussa välilyönti",
|
||||||
|
"login_form_err_trailing_whitespace": "Lopussa välilyönti",
|
||||||
|
"login_form_failed_get_oauth_server_config": "Virhe kirjauduttaessa OAuth:lla, tarkista palvelimen URL",
|
||||||
|
"login_form_failed_get_oauth_server_disable": "OAuth-ominaisuus ei ole käytössä tällä palvelimella",
|
||||||
|
"login_form_failed_login": "Virhe kirjautumisessa. Tarkista palvelimen URL, sähköpostiosoite ja salasana.",
|
||||||
|
"login_form_handshake_exception": "Tapahtui poikkeus kättelyssä palvelimen kanssa. Kytke päälle self-signed -sertifikaattituki asetuksista, mikäli käytät self-signed -sertifikaatteja.",
|
||||||
|
"login_form_password_hint": "salasana",
|
||||||
|
"login_form_save_login": "Pysy kirjautuneena",
|
||||||
|
"login_form_server_empty": "Syötä palvelimen URL-osoite.",
|
||||||
|
"login_form_server_error": "Palvelimeen ei saatu yhteyttä.",
|
||||||
"login_has_been_disabled": "Kirjautuminen on otettu pois käytöstä.",
|
"login_has_been_disabled": "Kirjautuminen on otettu pois käytöstä.",
|
||||||
|
"login_password_changed_error": "Salasanan päivityksessä tapahtui virhe",
|
||||||
|
"login_password_changed_success": "Salasan päivitetty onnistuneesti",
|
||||||
"logout_all_device_confirmation": "Haluatko varmasti kirjautua ulos kaikilta laitteilta?",
|
"logout_all_device_confirmation": "Haluatko varmasti kirjautua ulos kaikilta laitteilta?",
|
||||||
"logout_this_device_confirmation": "Haluatko varmasti kirjautua ulos näiltä laitteilta?",
|
"logout_this_device_confirmation": "Haluatko varmasti kirjautua ulos näiltä laitteilta?",
|
||||||
"longitude": "Pituusaste",
|
"longitude": "Pituusaste",
|
||||||
@@ -860,13 +1156,40 @@
|
|||||||
"manage_your_devices": "Hallitse sisäänkirjautuneita laitteitasi",
|
"manage_your_devices": "Hallitse sisäänkirjautuneita laitteitasi",
|
||||||
"manage_your_oauth_connection": "Hallitse OAuth-yhteyttäsi",
|
"manage_your_oauth_connection": "Hallitse OAuth-yhteyttäsi",
|
||||||
"map": "Kartta",
|
"map": "Kartta",
|
||||||
|
"map_assets_in_bound": "{} kuva",
|
||||||
|
"map_assets_in_bounds": "{} kuvaa",
|
||||||
|
"map_cannot_get_user_location": "Käyttäjän sijaintia ei voitu määrittää",
|
||||||
|
"map_location_dialog_yes": "Kyllä",
|
||||||
|
"map_location_picker_page_use_location": "Käytä tätä sijaintia",
|
||||||
|
"map_location_service_disabled_content": "Paikannuspalvelun pitää olla kytkettynä päälle, jotta nykyisen sijaintisi kohteita voidaan näyttää. Haluatko kytkeä sen päälle nyt?",
|
||||||
|
"map_location_service_disabled_title": "Paikannuspalvelu pois päältä",
|
||||||
"map_marker_for_images": "Karttamarkerointi kuville, jotka on otettu kaupungissa {city}, maassa {country}",
|
"map_marker_for_images": "Karttamarkerointi kuville, jotka on otettu kaupungissa {city}, maassa {country}",
|
||||||
"map_marker_with_image": "Karttamarkerointi kuvalla",
|
"map_marker_with_image": "Karttamarkerointi kuvalla",
|
||||||
|
"map_no_assets_in_bounds": "Ei kuvia tällä alueella",
|
||||||
|
"map_no_location_permission_content": "Paikannuslupa tarvitaan, jotta nykyisen sijainnin kohteita voidaan näyttää. Haluatko sallia pääsyn sijaintiin?",
|
||||||
|
"map_no_location_permission_title": "Paikannuslupa estetty",
|
||||||
"map_settings": "Kartta-asetukset",
|
"map_settings": "Kartta-asetukset",
|
||||||
|
"map_settings_dark_mode": "Tumma tila",
|
||||||
|
"map_settings_date_range_option_day": "Viimeiset 24 tuntia",
|
||||||
|
"map_settings_date_range_option_days": "Viimeiset {} päivää",
|
||||||
|
"map_settings_date_range_option_year": "Viimeisin vuosi",
|
||||||
|
"map_settings_date_range_option_years": "Viimeiset {} vuotta",
|
||||||
|
"map_settings_dialog_title": "Kartta-asetukset",
|
||||||
|
"map_settings_include_show_archived": "Sisällytä arkistoidut",
|
||||||
|
"map_settings_include_show_partners": "Sisällytä kumppanit",
|
||||||
|
"map_settings_only_show_favorites": "Näytä vain suosikit",
|
||||||
|
"map_settings_theme_settings": "Kartan teema",
|
||||||
|
"map_zoom_to_see_photos": "Tarkenna nähdäksesi kuvat",
|
||||||
"matches": "Osumia",
|
"matches": "Osumia",
|
||||||
"media_type": "Median tyyppi",
|
"media_type": "Median tyyppi",
|
||||||
"memories": "Muistoja",
|
"memories": "Muistoja",
|
||||||
|
"memories_all_caught_up": "Kaikki ajan tasalla",
|
||||||
|
"memories_check_back_tomorrow": "Palaa huomenna nähdäskesi lisää muistoja",
|
||||||
"memories_setting_description": "Hallitse mitä näet muistoissasi",
|
"memories_setting_description": "Hallitse mitä näet muistoissasi",
|
||||||
|
"memories_start_over": "Aloita alusta",
|
||||||
|
"memories_swipe_to_close": "Pyyhkäise ylös sulkeaksesi",
|
||||||
|
"memories_year_ago": "A year ago",
|
||||||
|
"memories_years_ago": "{} years ago",
|
||||||
"memory": "Muisto",
|
"memory": "Muisto",
|
||||||
"memory_lane_title": "Muistojen polku {title}",
|
"memory_lane_title": "Muistojen polku {title}",
|
||||||
"menu": "Valikko",
|
"menu": "Valikko",
|
||||||
@@ -881,11 +1204,16 @@
|
|||||||
"missing": "Puuttuu",
|
"missing": "Puuttuu",
|
||||||
"model": "Malli",
|
"model": "Malli",
|
||||||
"month": "Kuukauden mukaan",
|
"month": "Kuukauden mukaan",
|
||||||
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"more": "Enemmän",
|
"more": "Enemmän",
|
||||||
"moved_to_trash": "Siirretty roskakoriin",
|
"moved_to_trash": "Siirretty roskakoriin",
|
||||||
|
"multiselect_grid_edit_date_time_err_read_only": "Vain luku -tilassa olevien kohteiden päivämäärää ei voitu muokata, ohitetaan",
|
||||||
|
"multiselect_grid_edit_gps_err_read_only": "Vain luku-tilassa olevien kohteiden sijantitietoja ei voitu muokata, ohitetaan",
|
||||||
"my_albums": "Albumini",
|
"my_albums": "Albumini",
|
||||||
"name": "Nimi",
|
"name": "Nimi",
|
||||||
"name_or_nickname": "Nimi tai lempinimi",
|
"name_or_nickname": "Nimi tai lempinimi",
|
||||||
|
"networking_settings": "Networking",
|
||||||
|
"networking_subtitle": "Manage the server endpoint settings",
|
||||||
"never": "ei koskaan",
|
"never": "ei koskaan",
|
||||||
"new_album": "Uusi Albumi",
|
"new_album": "Uusi Albumi",
|
||||||
"new_api_key": "Uusi API-avain",
|
"new_api_key": "Uusi API-avain",
|
||||||
@@ -902,6 +1230,7 @@
|
|||||||
"no_albums_yet": "Näyttää siltä, ettei sinulla ole vielä yhtään albumia.",
|
"no_albums_yet": "Näyttää siltä, ettei sinulla ole vielä yhtään albumia.",
|
||||||
"no_archived_assets_message": "Arkistoi kuvia ja videoita piilottaaksesi ne kuvat näkymästä",
|
"no_archived_assets_message": "Arkistoi kuvia ja videoita piilottaaksesi ne kuvat näkymästä",
|
||||||
"no_assets_message": "NAPAUTA LATAAKSESI ENSIMMÄISEN KUVASI",
|
"no_assets_message": "NAPAUTA LATAAKSESI ENSIMMÄISEN KUVASI",
|
||||||
|
"no_assets_to_show": "Ei näytettäviä kohteita",
|
||||||
"no_duplicates_found": "Kaksoiskappaleita ei löytynyt.",
|
"no_duplicates_found": "Kaksoiskappaleita ei löytynyt.",
|
||||||
"no_exif_info_available": "EXIF-tietoa ei saatavilla",
|
"no_exif_info_available": "EXIF-tietoa ei saatavilla",
|
||||||
"no_explore_results_message": "Lataa lisää kuvia tutkiaksesi kokoelmaasi.",
|
"no_explore_results_message": "Lataa lisää kuvia tutkiaksesi kokoelmaasi.",
|
||||||
@@ -913,9 +1242,13 @@
|
|||||||
"no_results_description": "Kokeile synonyymiä tai yleisempää avainsanaa",
|
"no_results_description": "Kokeile synonyymiä tai yleisempää avainsanaa",
|
||||||
"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",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"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_permission_dialog_content": "Ottaaksesi ilmoitukset käyttöön, siirry asetuksiin ja valitse 'salli'.",
|
||||||
|
"notification_permission_list_tile_content": "Myönnä käyttöoikeus ottaaksesi ilmoitukset käyttöön.",
|
||||||
|
"notification_permission_list_tile_enable_button": "Ota ilmoitukset käyttöön",
|
||||||
|
"notification_permission_list_tile_title": "Ilmoitusten käyttöoikeus",
|
||||||
"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",
|
||||||
"notifications_setting_description": "Hallitse ilmoituksia",
|
"notifications_setting_description": "Hallitse ilmoituksia",
|
||||||
@@ -926,6 +1259,7 @@
|
|||||||
"offline_paths_description": "Nämä tulokset voivat johtua tiedostojen manuaalisesta poistamisesta, jotka eivät ole osa ulkoista kirjastoa.",
|
"offline_paths_description": "Nämä tulokset voivat johtua tiedostojen manuaalisesta poistamisesta, jotka eivät ole osa ulkoista kirjastoa.",
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"oldest_first": "Vanhin ensin",
|
"oldest_first": "Vanhin ensin",
|
||||||
|
"on_this_device": "On this device",
|
||||||
"onboarding": "Käyttöönotto",
|
"onboarding": "Käyttöönotto",
|
||||||
"onboarding_privacy_description": "Seuraavat (valinnaiset) ominaisuudet perustuvat ulkoisiin palveluihin, ja ne voidaan poistaa käytöstä milloin tahansa hallinta asetuksista.",
|
"onboarding_privacy_description": "Seuraavat (valinnaiset) ominaisuudet perustuvat ulkoisiin palveluihin, ja ne voidaan poistaa käytöstä milloin tahansa hallinta asetuksista.",
|
||||||
"onboarding_theme_description": "Valitse väriteema istunnollesi. Voit muuttaa tämän myöhemmin asetuksistasi.",
|
"onboarding_theme_description": "Valitse väriteema istunnollesi. Voit muuttaa tämän myöhemmin asetuksistasi.",
|
||||||
@@ -949,6 +1283,14 @@
|
|||||||
"partner_can_access": "{partner} voi päästä",
|
"partner_can_access": "{partner} voi päästä",
|
||||||
"partner_can_access_assets": "Kaikki valokuvasi ja videosi, lukuun ottamatta arkistoituja ja poistettuja",
|
"partner_can_access_assets": "Kaikki valokuvasi ja videosi, lukuun ottamatta arkistoituja ja poistettuja",
|
||||||
"partner_can_access_location": "Sijainti, jossa kuvasi on otettu",
|
"partner_can_access_location": "Sijainti, jossa kuvasi on otettu",
|
||||||
|
"partner_list_user_photos": "Käyttäjän {user} kuvat",
|
||||||
|
"partner_list_view_all": "Näytä kaikki",
|
||||||
|
"partner_page_empty_message": "Kuviasi ei ole vielä jaettu kenenkään kumppanin kanssa.",
|
||||||
|
"partner_page_no_more_users": "Ei enempää käyttäjiä lisättäväksi",
|
||||||
|
"partner_page_partner_add_failed": "Kumppanin lisääminen epäonnistui",
|
||||||
|
"partner_page_select_partner": "Valitse kumppani",
|
||||||
|
"partner_page_shared_to_title": "Jaettu henkilöille",
|
||||||
|
"partner_page_stop_sharing_content": "{} ei voi enää käyttää kuviasi.",
|
||||||
"partner_sharing": "Kumppanijako",
|
"partner_sharing": "Kumppanijako",
|
||||||
"partners": "Kumppanit",
|
"partners": "Kumppanit",
|
||||||
"password": "Salasana",
|
"password": "Salasana",
|
||||||
@@ -977,6 +1319,14 @@
|
|||||||
"permanently_delete_assets_prompt": "Oletko varma, että haluat poistaa pysyvästi {count, plural, one {tämän kohteen?} other {nämä <b>#</b> kohteet?}} Tämä poistaa myös {count, plural, one {sen sen} other {ne niiden}} albumista.",
|
"permanently_delete_assets_prompt": "Oletko varma, että haluat poistaa pysyvästi {count, plural, one {tämän kohteen?} other {nämä <b>#</b> kohteet?}} Tämä poistaa myös {count, plural, one {sen sen} other {ne niiden}} albumista.",
|
||||||
"permanently_deleted_asset": "Media poistettu pysyvästi",
|
"permanently_deleted_asset": "Media poistettu pysyvästi",
|
||||||
"permanently_deleted_assets_count": "{count, plural, one {# media} other {# mediaa}} poistettu pysyvästi",
|
"permanently_deleted_assets_count": "{count, plural, one {# media} other {# mediaa}} poistettu pysyvästi",
|
||||||
|
"permission_onboarding_back": "Takaisin",
|
||||||
|
"permission_onboarding_continue_anyway": "Jatka silti",
|
||||||
|
"permission_onboarding_get_started": "Aloittaminen",
|
||||||
|
"permission_onboarding_go_to_settings": "Siirry asetuksiin",
|
||||||
|
"permission_onboarding_permission_denied": "Kielletty käyttöoikeus. Käyttääksesi Immichiä, myönnä oikeus kuviin ja videoihin asetuksista.",
|
||||||
|
"permission_onboarding_permission_granted": "Käyttöoikeus myönnetty! Kaikki valmista.",
|
||||||
|
"permission_onboarding_permission_limited": "Rajoitettu käyttöoikeus. Salliaksesi Immichin varmuuskopioida ja hallita koko kuvakirjastoasi, myönnä oikeus kuviin ja videoihin asetuksista.",
|
||||||
|
"permission_onboarding_request": "Immich vaatii käyttöoikeuden kuvien ja videoiden käyttämiseen.",
|
||||||
"person": "Henkilö",
|
"person": "Henkilö",
|
||||||
"person_hidden": "{name}{hidden, select, true { (piilotettu)} other {}}",
|
"person_hidden": "{name}{hidden, select, true { (piilotettu)} other {}}",
|
||||||
"photo_shared_all_users": "Näyttää että olet jakanut kuvasi kaikkien käyttäjien kanssa, tai sinulla ei ole käyttäjää kenelle jakaa.",
|
"photo_shared_all_users": "Näyttää että olet jakanut kuvasi kaikkien käyttäjien kanssa, tai sinulla ei ole käyttäjää kenelle jakaa.",
|
||||||
@@ -992,6 +1342,8 @@
|
|||||||
"play_motion_photo": "Toista Liikekuva",
|
"play_motion_photo": "Toista Liikekuva",
|
||||||
"play_or_pause_video": "Toista tai keskeytä video",
|
"play_or_pause_video": "Toista tai keskeytä video",
|
||||||
"port": "Portti",
|
"port": "Portti",
|
||||||
|
"preferences_settings_subtitle": "Manage the app's preferences",
|
||||||
|
"preferences_settings_title": "Asetukset",
|
||||||
"preset": "Asetus",
|
"preset": "Asetus",
|
||||||
"preview": "Esikatselu",
|
"preview": "Esikatselu",
|
||||||
"previous": "Edellinen",
|
"previous": "Edellinen",
|
||||||
@@ -999,6 +1351,13 @@
|
|||||||
"previous_or_next_photo": "Edellinen tai seuraava kuva",
|
"previous_or_next_photo": "Edellinen tai seuraava kuva",
|
||||||
"primary": "Ensisijainen",
|
"primary": "Ensisijainen",
|
||||||
"privacy": "Yksityisyys",
|
"privacy": "Yksityisyys",
|
||||||
|
"profile_drawer_app_logs": "Lokit",
|
||||||
|
"profile_drawer_client_out_of_date_major": "Sovelluksen mobiiliversio on vanhentunut. Päivitä viimeisimpään merkittävään versioon.",
|
||||||
|
"profile_drawer_client_out_of_date_minor": "Sovelluksen mobiiliversio on vanhentunut. Päivitä viimeisimpään versioon.",
|
||||||
|
"profile_drawer_client_server_up_to_date": "Asiakassovellus ja palvelin ovat ajan tasalla",
|
||||||
|
"profile_drawer_github": "GitHub",
|
||||||
|
"profile_drawer_server_out_of_date_major": "Palvelimen ohjelmistoversio on vanhentunut. Päivitä viimeisimpään merkittävään versioon.",
|
||||||
|
"profile_drawer_server_out_of_date_minor": "Palvelimen ohjelmistoversio on vanhentunut. Päivitä viimeisimpään versioon.",
|
||||||
"profile_image_of_user": "Käyttäjän {user} profiilikuva",
|
"profile_image_of_user": "Käyttäjän {user} profiilikuva",
|
||||||
"profile_picture_set": "Profiilikuva asetettu.",
|
"profile_picture_set": "Profiilikuva asetettu.",
|
||||||
"public_album": "Julkinen albumi",
|
"public_album": "Julkinen albumi",
|
||||||
@@ -1048,6 +1407,8 @@
|
|||||||
"recent": "Viimeisin",
|
"recent": "Viimeisin",
|
||||||
"recent-albums": "Viimeisimmät albumit",
|
"recent-albums": "Viimeisimmät albumit",
|
||||||
"recent_searches": "Edelliset haut",
|
"recent_searches": "Edelliset haut",
|
||||||
|
"recently_added": "Recently added",
|
||||||
|
"recently_added_page_title": "Viimeksi lisätyt",
|
||||||
"refresh": "Päivitä",
|
"refresh": "Päivitä",
|
||||||
"refresh_encoded_videos": "Päivitä enkoodatut videot",
|
"refresh_encoded_videos": "Päivitä enkoodatut videot",
|
||||||
"refresh_faces": "Päivitä kasvot",
|
"refresh_faces": "Päivitä kasvot",
|
||||||
@@ -1099,10 +1460,12 @@
|
|||||||
"role_editor": "Editori",
|
"role_editor": "Editori",
|
||||||
"role_viewer": "Toistin",
|
"role_viewer": "Toistin",
|
||||||
"save": "Tallenna",
|
"save": "Tallenna",
|
||||||
|
"save_to_gallery": "Save to gallery",
|
||||||
"saved_api_key": "API-avain tallennettu",
|
"saved_api_key": "API-avain tallennettu",
|
||||||
"saved_profile": "Profiili tallennettu",
|
"saved_profile": "Profiili tallennettu",
|
||||||
"saved_settings": "Asetukset tallennettu",
|
"saved_settings": "Asetukset tallennettu",
|
||||||
"say_something": "Sano jotain",
|
"say_something": "Sano jotain",
|
||||||
|
"scaffold_body_error_occurred": "Tapahtui virhe",
|
||||||
"scan_all_libraries": "Skannaa kaikki kirjastot",
|
"scan_all_libraries": "Skannaa kaikki kirjastot",
|
||||||
"scan_library": "Skannaa",
|
"scan_library": "Skannaa",
|
||||||
"scan_settings": "Skannausasetukset",
|
"scan_settings": "Skannausasetukset",
|
||||||
@@ -1117,14 +1480,43 @@
|
|||||||
"search_camera_model": "Etsi kameramallia...",
|
"search_camera_model": "Etsi kameramallia...",
|
||||||
"search_city": "Etsi kaupunkia...",
|
"search_city": "Etsi kaupunkia...",
|
||||||
"search_country": "Etsi maata...",
|
"search_country": "Etsi maata...",
|
||||||
|
"search_filter_apply": "Käytä",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
|
"search_filter_display_option_not_in_album": "Ei kuulu albumiin",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_filename": "Search by file name",
|
||||||
|
"search_filter_location": "Location",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_for_existing_person": "Etsi olemassa olevaa henkilöä",
|
"search_for_existing_person": "Etsi olemassa olevaa henkilöä",
|
||||||
|
"search_no_more_result": "No more results",
|
||||||
"search_no_people": "Ei henkilöitä",
|
"search_no_people": "Ei henkilöitä",
|
||||||
"search_no_people_named": "Ei \"{name}\" nimisiä henkilöitä",
|
"search_no_people_named": "Ei \"{name}\" nimisiä henkilöitä",
|
||||||
|
"search_no_result": "No results found, try a different search term or combination",
|
||||||
"search_options": "Hakuvaihtoehdot",
|
"search_options": "Hakuvaihtoehdot",
|
||||||
|
"search_page_categories": "Kategoriat",
|
||||||
|
"search_page_motion_photos": "Liikekuvat",
|
||||||
|
"search_page_no_objects": "Objektitietoja ei ole saatavilla",
|
||||||
|
"search_page_no_places": "Paikkatietoja ei ole saatavilla",
|
||||||
|
"search_page_screenshots": "Näyttökuvat",
|
||||||
|
"search_page_search_photos_videos": "Search for your photos and videos",
|
||||||
|
"search_page_selfies": "Selfiet",
|
||||||
|
"search_page_things": "Asiat",
|
||||||
|
"search_page_view_all_button": "Näytä kaikki",
|
||||||
|
"search_page_your_activity": "Toimintasi",
|
||||||
|
"search_page_your_map": "Sinun karttasi",
|
||||||
"search_people": "Etsi ihmisiä",
|
"search_people": "Etsi ihmisiä",
|
||||||
"search_places": "Etsi paikkoja",
|
"search_places": "Etsi paikkoja",
|
||||||
|
"search_result_page_new_search_hint": "Uusi haku",
|
||||||
"search_settings": "Hakuasetukset",
|
"search_settings": "Hakuasetukset",
|
||||||
"search_state": "Etsi tilaa...",
|
"search_state": "Etsi tilaa...",
|
||||||
|
"search_suggestion_list_smart_search_hint_1": "Älykäs haku on oletuksena käytössä. Käytä metatietojen etsimiseen syntaksia",
|
||||||
|
"search_suggestion_list_smart_search_hint_2": "m:hakusana",
|
||||||
"search_tags": "Etsi tunnisteita...",
|
"search_tags": "Etsi tunnisteita...",
|
||||||
"search_timezone": "Etsi aikavyöhyke...",
|
"search_timezone": "Etsi aikavyöhyke...",
|
||||||
"search_type": "Etsinnän tyyppi",
|
"search_type": "Etsinnän tyyppi",
|
||||||
@@ -1144,10 +1536,14 @@
|
|||||||
"select_new_face": "Valitse uudet kasvot",
|
"select_new_face": "Valitse uudet kasvot",
|
||||||
"select_photos": "Valitse kuvat",
|
"select_photos": "Valitse kuvat",
|
||||||
"select_trash_all": "Valitse kaikki roskakoriin",
|
"select_trash_all": "Valitse kaikki roskakoriin",
|
||||||
|
"select_user_for_sharing_page_err_album": "Albumin luonti epäonnistui",
|
||||||
"selected": "Valittu",
|
"selected": "Valittu",
|
||||||
"selected_count": "{count, plural, other {# valittu}}",
|
"selected_count": "{count, plural, other {# valittu}}",
|
||||||
"send_message": "Lähetä viesti",
|
"send_message": "Lähetä viesti",
|
||||||
"send_welcome_email": "Lähetä tervetuloviesti",
|
"send_welcome_email": "Lähetä tervetuloviesti",
|
||||||
|
"server_endpoint": "Server Endpoint",
|
||||||
|
"server_info_box_app_version": "Sovelluksen versio",
|
||||||
|
"server_info_box_server_url": "Palvelimen URL-osoite",
|
||||||
"server_offline": "Palvelin Offline-tilassa",
|
"server_offline": "Palvelin Offline-tilassa",
|
||||||
"server_online": "Palvelin Online-tilassa",
|
"server_online": "Palvelin Online-tilassa",
|
||||||
"server_stats": "Palvelimen tilastot",
|
"server_stats": "Palvelimen tilastot",
|
||||||
@@ -1159,21 +1555,90 @@
|
|||||||
"set_date_of_birth": "Aseta syntymäaika",
|
"set_date_of_birth": "Aseta syntymäaika",
|
||||||
"set_profile_picture": "Aseta profiilikuva",
|
"set_profile_picture": "Aseta profiilikuva",
|
||||||
"set_slideshow_to_fullscreen": "Näytä diaesitys koko ruudulla",
|
"set_slideshow_to_fullscreen": "Näytä diaesitys koko ruudulla",
|
||||||
|
"setting_image_viewer_help": "Sovellus lataa ensin pienen esikatselukuvan, toisena keskitarkkuuksisen kuvan (jos käytössä) ja kolmantena alkuperäisen täysitarkkuuksisen kuvan (jos käytössä)",
|
||||||
|
"setting_image_viewer_original_subtitle": "Ota käyttöön ladataksesi alkuperäinen täysitarkkuuksinen kuva (suuri!). Poista käytöstä vähentääksesi datan käyttöä (sekä verkossa että laitteen välimuistissa).",
|
||||||
|
"setting_image_viewer_original_title": "Lataa alkuperäinen kuva",
|
||||||
|
"setting_image_viewer_preview_subtitle": "Ota käyttöön ladataksesi keskitarkkuuksinen kuva. Poista käytöstä ladataksesi alkuperäinen kuva tai käyttääksesi vain esikatselukuvaa.",
|
||||||
|
"setting_image_viewer_preview_title": "Lataa esikatselukuva",
|
||||||
|
"setting_image_viewer_title": "Kuvat",
|
||||||
|
"setting_languages_apply": "Käytä",
|
||||||
|
"setting_languages_subtitle": "Change the app's language",
|
||||||
|
"setting_languages_title": "Kieli",
|
||||||
|
"setting_notifications_notify_failures_grace_period": "Ilmoita taustavarmuuskopioinnin epäonnistumisista: {}",
|
||||||
|
"setting_notifications_notify_hours": "{} tunnin välein",
|
||||||
|
"setting_notifications_notify_immediately": "heti",
|
||||||
|
"setting_notifications_notify_minutes": "{} minuutin välein",
|
||||||
|
"setting_notifications_notify_never": "ei koskaan",
|
||||||
|
"setting_notifications_notify_seconds": "{} sekuntia",
|
||||||
|
"setting_notifications_single_progress_subtitle": "Yksityiskohtainen tieto palvelimelle lähettämisen edistymisestä kohteittain",
|
||||||
|
"setting_notifications_single_progress_title": "Näytä taustavarmuuskopioinnin eidstminen",
|
||||||
|
"setting_notifications_subtitle": "Ilmoitusasetusten määrittely",
|
||||||
|
"setting_notifications_total_progress_subtitle": "Lähetyksen yleinen edistyminen (kohteita lähetetty/yhteensä)",
|
||||||
|
"setting_notifications_total_progress_title": "Näytä taustavarmuuskopioinnin kokonaisedistyminen",
|
||||||
|
"setting_video_viewer_looping_title": "Looping",
|
||||||
|
"setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
|
||||||
|
"setting_video_viewer_original_video_title": "Force original video",
|
||||||
"settings": "Asetukset",
|
"settings": "Asetukset",
|
||||||
|
"settings_require_restart": "Käynnistä Immich uudelleen ottaaksesti tämän asetuksen käyttöön",
|
||||||
"settings_saved": "Asetukset tallennettu",
|
"settings_saved": "Asetukset tallennettu",
|
||||||
"share": "Jaa",
|
"share": "Jaa",
|
||||||
|
"share_add_photos": "Lisää kuvia",
|
||||||
|
"share_assets_selected": "{} valittu",
|
||||||
|
"share_dialog_preparing": "Valmistellaan...",
|
||||||
"shared": "Jaettu",
|
"shared": "Jaettu",
|
||||||
|
"shared_album_activities_input_disable": "Kommentointi on kytketty pois päältä",
|
||||||
|
"shared_album_activity_remove_content": "Haluatko poistaa tämän aktiviteetin?",
|
||||||
|
"shared_album_activity_remove_title": "Poista aktiviteetti",
|
||||||
|
"shared_album_section_people_action_error": "Virhe poistuttaessa/poistaessa kohdetta albumista",
|
||||||
|
"shared_album_section_people_action_leave": "Poista käyttäjä albumista",
|
||||||
|
"shared_album_section_people_action_remove_user": "Poista käyttäjä albumista",
|
||||||
|
"shared_album_section_people_title": "HENKILÖT",
|
||||||
"shared_by": "Jakanut",
|
"shared_by": "Jakanut",
|
||||||
"shared_by_user": "Käyttäjän {user} jakama",
|
"shared_by_user": "Käyttäjän {user} jakama",
|
||||||
"shared_by_you": "Sinun jakamasi",
|
"shared_by_you": "Sinun jakamasi",
|
||||||
"shared_from_partner": "Kumppanin {partner} kuvia",
|
"shared_from_partner": "Kumppanin {partner} kuvia",
|
||||||
|
"shared_intent_upload_button_progress_text": "{} / {} Uploaded",
|
||||||
|
"shared_link_app_bar_title": "Jaetut linkit",
|
||||||
|
"shared_link_clipboard_copied_massage": "Kopioitu leikepöydältä",
|
||||||
|
"shared_link_clipboard_text": "Linkki: {}\nSalasana: {}",
|
||||||
|
"shared_link_create_error": "Jaetun linkin luomisessa tapahtui virhe",
|
||||||
|
"shared_link_edit_description_hint": "Lisää jaon kuvaus",
|
||||||
|
"shared_link_edit_expire_after_option_day": "1 päivä",
|
||||||
|
"shared_link_edit_expire_after_option_days": "{} päivää",
|
||||||
|
"shared_link_edit_expire_after_option_hour": "1 tunti",
|
||||||
|
"shared_link_edit_expire_after_option_hours": "{} tuntia",
|
||||||
|
"shared_link_edit_expire_after_option_minute": "1 minuutti",
|
||||||
|
"shared_link_edit_expire_after_option_minutes": "{} minuuttia",
|
||||||
|
"shared_link_edit_expire_after_option_months": "{} kuukautta",
|
||||||
|
"shared_link_edit_expire_after_option_year": "{} vuosi",
|
||||||
|
"shared_link_edit_password_hint": "Syötä jaon salasana",
|
||||||
|
"shared_link_edit_submit_button": "Päivitä linkki",
|
||||||
|
"shared_link_error_server_url_fetch": "Palvelimen URL-osoitetta ei voitu hakea",
|
||||||
|
"shared_link_expires_day": "Voimassaolo päättyy {} päivän kuluttua",
|
||||||
|
"shared_link_expires_days": "Voimassaolo päättyy {} päivän kuluttua",
|
||||||
|
"shared_link_expires_hour": "Voimassaolo päättyy {} tunnin kuluttua",
|
||||||
|
"shared_link_expires_hours": "Voimassaolo päättyy {} tunnin kuluttua",
|
||||||
|
"shared_link_expires_minute": "Voimassaolo päättyy {} minuutin kuluttua",
|
||||||
|
"shared_link_expires_minutes": "Voimassaolo päättyy {} minuutin kuluttua",
|
||||||
|
"shared_link_expires_never": "Voimassaolo päättyy ∞",
|
||||||
|
"shared_link_expires_second": "Voimassaolo päättyy {} sekunnin kuluttua",
|
||||||
|
"shared_link_expires_seconds": "Voimassaolo päättyy {} sekunnin kuluttua",
|
||||||
|
"shared_link_individual_shared": "Individual shared",
|
||||||
|
"shared_link_info_chip_metadata": "EXIF",
|
||||||
|
"shared_link_manage_links": "Hallitse jaettuja linkkejä",
|
||||||
"shared_link_options": "Jaetun linkin vaihtoehdot",
|
"shared_link_options": "Jaetun linkin vaihtoehdot",
|
||||||
"shared_links": "Jaetut linkit",
|
"shared_links": "Jaetut linkit",
|
||||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# jaettua kuvaa ja videota.}}",
|
"shared_photos_and_videos_count": "{assetCount, plural, other {# jaettua kuvaa ja videota.}}",
|
||||||
|
"shared_with_me": "Shared with me",
|
||||||
"shared_with_partner": "Jaa kumppanin {partner} kanssa",
|
"shared_with_partner": "Jaa kumppanin {partner} kanssa",
|
||||||
"sharing": "Jakaminen",
|
"sharing": "Jakaminen",
|
||||||
"sharing_enter_password": "Nähdäksesi sivun sinun tulee antaa salasana.",
|
"sharing_enter_password": "Nähdäksesi sivun sinun tulee antaa salasana.",
|
||||||
|
"sharing_page_album": "Jaetut albumit",
|
||||||
|
"sharing_page_description": "Luo jaettuja albumeja jakaaksesi kuvia ja videoita läheisillesi.",
|
||||||
|
"sharing_page_empty_list": "TYHJÄ LISTA",
|
||||||
"sharing_sidebar_description": "Näytä jakamislinkki sivupalkissa",
|
"sharing_sidebar_description": "Näytä jakamislinkki sivupalkissa",
|
||||||
|
"sharing_silver_appbar_create_shared_album": "Luo jaettu albumi",
|
||||||
|
"sharing_silver_appbar_share_partner": "Jaa kumppanille",
|
||||||
"shift_to_permanent_delete": "Paina ⇧ poistaaksesi median pysyvästi",
|
"shift_to_permanent_delete": "Paina ⇧ poistaaksesi median pysyvästi",
|
||||||
"show_album_options": "Näytä albumin asetukset",
|
"show_album_options": "Näytä albumin asetukset",
|
||||||
"show_albums": "Näytä albumit",
|
"show_albums": "Näytä albumit",
|
||||||
@@ -1239,6 +1704,9 @@
|
|||||||
"support_third_party_description": "Immich-asennuksesi on pakattu kolmannen osapuolen toimesta. Kohtaamasi ongelmat saattavat johtua tästä paketista, joten ilmoita niistä ensisijaisesti heille alla olevien linkkien kautta.",
|
"support_third_party_description": "Immich-asennuksesi on pakattu kolmannen osapuolen toimesta. Kohtaamasi ongelmat saattavat johtua tästä paketista, joten ilmoita niistä ensisijaisesti heille alla olevien linkkien kautta.",
|
||||||
"swap_merge_direction": "Käännä yhdistämissuunta",
|
"swap_merge_direction": "Käännä yhdistämissuunta",
|
||||||
"sync": "Synkronoi",
|
"sync": "Synkronoi",
|
||||||
|
"sync_albums": "Sync albums",
|
||||||
|
"sync_albums_manual_subtitle": "Sync all uploaded videos and photos to the selected backup albums",
|
||||||
|
"sync_upload_album_setting_subtitle": "Create and upload your photos and videos to the selected albums on Immich",
|
||||||
"tag": "Lisää tunniste",
|
"tag": "Lisää tunniste",
|
||||||
"tag_assets": "Lisää tunnisteita",
|
"tag_assets": "Lisää tunnisteita",
|
||||||
"tag_created": "Luotu tunniste: {tag}",
|
"tag_created": "Luotu tunniste: {tag}",
|
||||||
@@ -1251,6 +1719,19 @@
|
|||||||
"theme": "Teema",
|
"theme": "Teema",
|
||||||
"theme_selection": "Teeman valinta",
|
"theme_selection": "Teeman valinta",
|
||||||
"theme_selection_description": "Aseta vaalea tai tumma tila automaattisesti perustuen selaimesi asetuksiin",
|
"theme_selection_description": "Aseta vaalea tai tumma tila automaattisesti perustuen selaimesi asetuksiin",
|
||||||
|
"theme_setting_asset_list_storage_indicator_title": "Näytä tallennustilan ilmaisin kohteiden kuvakkeissa",
|
||||||
|
"theme_setting_asset_list_tiles_per_row_title": "Kohteiden määrä rivillä ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
|
"theme_setting_image_viewer_quality_subtitle": "Säädä kuvien katselun laatua",
|
||||||
|
"theme_setting_image_viewer_quality_title": "Kuvien katseluohjelman laatu",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
|
"theme_setting_system_theme_switch": "Automaattinen (seuraa järjestelmän asetusta)",
|
||||||
|
"theme_setting_theme_subtitle": "Valitse sovelluksen teema-asetukset",
|
||||||
|
"theme_setting_three_stage_loading_subtitle": "Kolmivaiheinen lataaminen saattaa parantaa latauksen suorituskykyä, mutta lisää kaistankäyttöä huomattavasti.",
|
||||||
|
"theme_setting_three_stage_loading_title": "Ota kolmivaiheinen lataus käyttöön",
|
||||||
"they_will_be_merged_together": "Nämä tullaan yhdistämään",
|
"they_will_be_merged_together": "Nämä tullaan yhdistämään",
|
||||||
"third_party_resources": "Kolmannen osapuolen resurssit",
|
"third_party_resources": "Kolmannen osapuolen resurssit",
|
||||||
"time_based_memories": "Aikaan perustuvat muistot",
|
"time_based_memories": "Aikaan perustuvat muistot",
|
||||||
@@ -1270,7 +1751,15 @@
|
|||||||
"trash_all": "Vie kaikki roskakoriin",
|
"trash_all": "Vie kaikki roskakoriin",
|
||||||
"trash_count": "Roskakori {count, number}",
|
"trash_count": "Roskakori {count, number}",
|
||||||
"trash_delete_asset": "Poista / vie roskakoriin",
|
"trash_delete_asset": "Poista / vie roskakoriin",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_no_results_message": "Roskakorissa olevat kuvat ja videot näytetään täällä.",
|
"trash_no_results_message": "Roskakorissa olevat kuvat ja videot näytetään täällä.",
|
||||||
|
"trash_page_delete_all": "Poista kaikki",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Haluatko poistaa roskakoriin siirretyt kohteet? Kohteet poistetaan lopullisesti Immich:sta.",
|
||||||
|
"trash_page_info": "Roskakoriin siirretyt kohteet poistetaan lopullisesti {} päivän kuluttua",
|
||||||
|
"trash_page_no_assets": "Ei poistettuja kohteita",
|
||||||
|
"trash_page_restore_all": "Palauta kaikki",
|
||||||
|
"trash_page_select_assets_btn": "Valitse kohteet",
|
||||||
|
"trash_page_title": "Roskakori",
|
||||||
"trashed_items_will_be_permanently_deleted_after": "Roskakorin kohteet poistetaan pysyvästi {days, plural, one {# päivän} other {# päivän}} päästä.",
|
"trashed_items_will_be_permanently_deleted_after": "Roskakorin kohteet poistetaan pysyvästi {days, plural, one {# päivän} other {# päivän}} päästä.",
|
||||||
"type": "Tyyppi",
|
"type": "Tyyppi",
|
||||||
"unarchive": "Palauta arkistosta",
|
"unarchive": "Palauta arkistosta",
|
||||||
@@ -1297,6 +1786,8 @@
|
|||||||
"updated_password": "Salasana päivitetty",
|
"updated_password": "Salasana päivitetty",
|
||||||
"upload": "Siirrä palvelimelle",
|
"upload": "Siirrä palvelimelle",
|
||||||
"upload_concurrency": "Latausten samanaikaisuus",
|
"upload_concurrency": "Latausten samanaikaisuus",
|
||||||
|
"upload_dialog_info": "Haluatko varmuuskopioida valitut kohteet palvelimelle?",
|
||||||
|
"upload_dialog_title": "Lähetä kohde",
|
||||||
"upload_errors": "Lataus valmistui {count, plural, one {# virheen} other {# virheen}} kanssa. Päivitä sivu nähdäksesi ladatut tiedot.",
|
"upload_errors": "Lataus valmistui {count, plural, one {# virheen} other {# virheen}} kanssa. Päivitä sivu nähdäksesi ladatut tiedot.",
|
||||||
"upload_progress": "Jäljellä {remaining, number} - Käsitelty {processed, number}/{total, number}",
|
"upload_progress": "Jäljellä {remaining, number} - Käsitelty {processed, number}/{total, number}",
|
||||||
"upload_skipped_duplicates": "Ohitettiin {count, plural, one {# kaksoiskappale} other {# kaksoiskappaletta}}",
|
"upload_skipped_duplicates": "Ohitettiin {count, plural, one {# kaksoiskappale} other {# kaksoiskappaletta}}",
|
||||||
@@ -1304,8 +1795,11 @@
|
|||||||
"upload_status_errors": "Virheet",
|
"upload_status_errors": "Virheet",
|
||||||
"upload_status_uploaded": "Ladattu",
|
"upload_status_uploaded": "Ladattu",
|
||||||
"upload_success": "Lataus onnistui. Päivitä sivu jotta näet latauksesi.",
|
"upload_success": "Lataus onnistui. Päivitä sivu jotta näet latauksesi.",
|
||||||
|
"upload_to_immich": "Upload to Immich ({})",
|
||||||
|
"uploading": "Uploading",
|
||||||
"url": "URL",
|
"url": "URL",
|
||||||
"usage": "Käyttö",
|
"usage": "Käyttö",
|
||||||
|
"use_current_connection": "use current connection",
|
||||||
"use_custom_date_range": "Käytä omaa aikaväliä",
|
"use_custom_date_range": "Käytä omaa aikaväliä",
|
||||||
"user": "Käyttäjä",
|
"user": "Käyttäjä",
|
||||||
"user_id": "Käyttäjän ID",
|
"user_id": "Käyttäjän ID",
|
||||||
@@ -1320,10 +1814,16 @@
|
|||||||
"users": "Käyttäjät",
|
"users": "Käyttäjät",
|
||||||
"utilities": "Apuohjelmat",
|
"utilities": "Apuohjelmat",
|
||||||
"validate": "Validoi",
|
"validate": "Validoi",
|
||||||
|
"validate_endpoint_error": "Please enter a valid URL",
|
||||||
"variables": "Muuttujat",
|
"variables": "Muuttujat",
|
||||||
"version": "Versio",
|
"version": "Versio",
|
||||||
"version_announcement_closing": "Ystäväsi Alex",
|
"version_announcement_closing": "Ystäväsi Alex",
|
||||||
"version_announcement_message": "Hei! Sovelluksen uusi versio on saatavilla. Käythän vilkaisemassa <link>julkaisun tiedot</link> ja varmistathan, että ohjelman määritykset ovat ajan tasalla. Erityisesti, jos käytössä on Watchtower tai jokin muu mekanismi Immich-sovelluksen automaattista päivitystä varten.",
|
"version_announcement_message": "Hei! Sovelluksen uusi versio on saatavilla. Käythän vilkaisemassa <link>julkaisun tiedot</link> ja varmistathan, että ohjelman määritykset ovat ajan tasalla. Erityisesti, jos käytössä on Watchtower tai jokin muu mekanismi Immich-sovelluksen automaattista päivitystä varten.",
|
||||||
|
"version_announcement_overlay_release_notes": "julkaisutiedoissa",
|
||||||
|
"version_announcement_overlay_text_1": "Hei, kaveri! Uusi palvelinversio on saatavilla sovelluksesta",
|
||||||
|
"version_announcement_overlay_text_2": "Ota hetki aikaa vieraillaksesi",
|
||||||
|
"version_announcement_overlay_text_3": "ja varmista, että käyttämäsi docker-compose ja .env-asetukset ovat ajantasalla välttyäksesi asetusongelmilta. Varsinkin jos käytät WatchToweria tai jotain muuta mekanismia päivittääksesi palvelinsovellusta automaattisesti.",
|
||||||
|
"version_announcement_overlay_title": "Uusi palvelinversio saatavilla 🎉",
|
||||||
"version_history": "Versiohistoria",
|
"version_history": "Versiohistoria",
|
||||||
"version_history_item": "Asennettu {version} päivänä {date}",
|
"version_history_item": "Asennettu {version} päivänä {date}",
|
||||||
"video": "Video",
|
"video": "Video",
|
||||||
@@ -1341,15 +1841,20 @@
|
|||||||
"view_next_asset": "Näytä seuraava",
|
"view_next_asset": "Näytä seuraava",
|
||||||
"view_previous_asset": "Näytä edellinen",
|
"view_previous_asset": "Näytä edellinen",
|
||||||
"view_stack": "Näytä pinona",
|
"view_stack": "Näytä pinona",
|
||||||
|
"viewer_remove_from_stack": "Poista pinosta",
|
||||||
|
"viewer_stack_use_as_main_asset": "Käytä pääkohteena",
|
||||||
|
"viewer_unstack": "Pura pino",
|
||||||
"visibility_changed": "{count, plural, one {# henkilön} other {# henkilöiden}} näkyvyys vaihdettu",
|
"visibility_changed": "{count, plural, one {# henkilön} other {# henkilöiden}} näkyvyys vaihdettu",
|
||||||
"waiting": "Odottaa",
|
"waiting": "Odottaa",
|
||||||
"warning": "Varoitus",
|
"warning": "Varoitus",
|
||||||
"week": "Viikko",
|
"week": "Viikko",
|
||||||
"welcome": "Tervetuloa",
|
"welcome": "Tervetuloa",
|
||||||
"welcome_to_immich": "Tervetuloa Immichiin",
|
"welcome_to_immich": "Tervetuloa Immichiin",
|
||||||
|
"wifi_name": "WiFi Name",
|
||||||
"year": "Vuosi",
|
"year": "Vuosi",
|
||||||
"years_ago": "{years, plural, one {# vuosi} other {# vuotta}} sitten",
|
"years_ago": "{years, plural, one {# vuosi} other {# vuotta}} sitten",
|
||||||
"yes": "Kyllä",
|
"yes": "Kyllä",
|
||||||
"you_dont_have_any_shared_links": "Sinulla ei ole jaettuja linkkejä",
|
"you_dont_have_any_shared_links": "Sinulla ei ole jaettuja linkkejä",
|
||||||
|
"your_wifi_name": "Your WiFi name",
|
||||||
"zoom_image": "Zoomaa kuvaa"
|
"zoom_image": "Zoomaa kuvaa"
|
||||||
}
|
}
|
||||||
|
|||||||
522
i18n/fr.json
522
i18n/fr.json
File diff suppressed because it is too large
Load Diff
@@ -1,15 +1,65 @@
|
|||||||
{
|
{
|
||||||
"action_common_back": "Back",
|
"about": "Acerca de",
|
||||||
"action_common_cancel": "Cancel",
|
"account": "Conta",
|
||||||
"action_common_clear": "Clear",
|
"account_settings": "Configuración da conta",
|
||||||
"action_common_confirm": "Confirm",
|
"acknowledge": "De acordo",
|
||||||
"action_common_save": "Save",
|
"action": "Acción",
|
||||||
"action_common_select": "Select",
|
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_a_name": "Add a name",
|
"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_endpoint": "Add endpoint",
|
"add_endpoint": "Add endpoint",
|
||||||
|
"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_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
|
"add_to_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"
|
||||||
|
},
|
||||||
"advanced_settings_log_level_title": "Log level: {}",
|
"advanced_settings_log_level_title": "Log level: {}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
@@ -18,56 +68,49 @@
|
|||||||
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates (EXPERIMENTAL)",
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates (EXPERIMENTAL)",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
||||||
"album_info_card_backup_album_excluded": "EXCLUDED",
|
"album_info_card_backup_album_excluded": "EXCLUDED",
|
||||||
"album_info_card_backup_album_included": "INCLUDED",
|
"album_info_card_backup_album_included": "INCLUDED",
|
||||||
"albums": "Albums",
|
|
||||||
"album_thumbnail_card_item": "1 item",
|
"album_thumbnail_card_item": "1 item",
|
||||||
"album_thumbnail_card_items": "{} items",
|
"album_thumbnail_card_items": "{} items",
|
||||||
"album_thumbnail_card_shared": " · Shared",
|
"album_thumbnail_card_shared": " · Shared",
|
||||||
"album_thumbnail_owned": "Owned",
|
|
||||||
"album_thumbnail_shared_by": "Shared by {}",
|
"album_thumbnail_shared_by": "Shared by {}",
|
||||||
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?",
|
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?",
|
||||||
"album_viewer_appbar_share_delete": "Delete album",
|
|
||||||
"album_viewer_appbar_share_err_delete": "Failed to delete album",
|
"album_viewer_appbar_share_err_delete": "Failed to delete album",
|
||||||
"album_viewer_appbar_share_err_leave": "Failed to leave album",
|
"album_viewer_appbar_share_err_leave": "Failed to leave album",
|
||||||
"album_viewer_appbar_share_err_remove": "There are problems in removing assets from album",
|
"album_viewer_appbar_share_err_remove": "There are problems in removing assets from album",
|
||||||
"album_viewer_appbar_share_err_title": "Failed to change album title",
|
"album_viewer_appbar_share_err_title": "Failed to change album title",
|
||||||
"album_viewer_appbar_share_leave": "Leave album",
|
"album_viewer_appbar_share_leave": "Leave album",
|
||||||
"album_viewer_appbar_share_remove": "Remove from album",
|
|
||||||
"album_viewer_appbar_share_to": "Share To",
|
"album_viewer_appbar_share_to": "Share To",
|
||||||
"album_viewer_page_share_add_users": "Add users",
|
"album_viewer_page_share_add_users": "Add users",
|
||||||
|
"albums": "Albums",
|
||||||
"all": "All",
|
"all": "All",
|
||||||
"all_people_page_title": "People",
|
|
||||||
"all_videos_page_title": "Videos",
|
|
||||||
"app_bar_signout_dialog_content": "Are you sure you want to sign out?",
|
"app_bar_signout_dialog_content": "Are you sure you want to sign out?",
|
||||||
"app_bar_signout_dialog_ok": "Yes",
|
"app_bar_signout_dialog_ok": "Yes",
|
||||||
"app_bar_signout_dialog_title": "Sign out",
|
"app_bar_signout_dialog_title": "Sign out",
|
||||||
"archived": "Archived",
|
|
||||||
"archive_page_no_archived_assets": "No archived assets found",
|
"archive_page_no_archived_assets": "No archived assets found",
|
||||||
"archive_page_title": "Archive ({})",
|
"archive_page_title": "Archive ({})",
|
||||||
|
"archived": "Archived",
|
||||||
"asset_action_delete_err_read_only": "Cannot delete read only asset(s), skipping",
|
"asset_action_delete_err_read_only": "Cannot delete read only asset(s), skipping",
|
||||||
"asset_action_share_err_offline": "Cannot fetch offline asset(s), skipping",
|
"asset_action_share_err_offline": "Cannot fetch offline asset(s), skipping",
|
||||||
"asset_list_group_by_sub_title": "Group by",
|
"asset_list_group_by_sub_title": "Group by",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
||||||
"asset_list_layout_settings_group_automatically": "Automatic",
|
"asset_list_layout_settings_group_automatically": "Automatic",
|
||||||
"asset_list_layout_settings_group_by": "Group assets by",
|
"asset_list_layout_settings_group_by": "Group assets by",
|
||||||
"asset_list_layout_settings_group_by_month": "Month",
|
|
||||||
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Photo Grid",
|
||||||
"asset_restored_successfully": "Asset restored successfully",
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"asset_viewer_settings_subtitle": "Manage your gallery viewer settings",
|
||||||
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
"assets_restored_successfully": "{} asset(s) restored successfully",
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
"assets_trashed": "{} asset(s) trashed",
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_subtitle": "Manage your gallery viewer settings",
|
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
|
||||||
"automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
|
"automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
|
||||||
"automatic_endpoint_switching_title": "Automatic URL switching",
|
"automatic_endpoint_switching_title": "Automatic URL switching",
|
||||||
"background_location_permission": "Background location permission",
|
"background_location_permission": "Background location permission",
|
||||||
@@ -106,7 +149,6 @@
|
|||||||
"backup_controller_page_backup": "Backup",
|
"backup_controller_page_backup": "Backup",
|
||||||
"backup_controller_page_backup_selected": "Selected: ",
|
"backup_controller_page_backup_selected": "Selected: ",
|
||||||
"backup_controller_page_backup_sub": "Backed up photos and videos",
|
"backup_controller_page_backup_sub": "Backed up photos and videos",
|
||||||
"backup_controller_page_cancel": "Cancel",
|
|
||||||
"backup_controller_page_created": "Created on: {}",
|
"backup_controller_page_created": "Created on: {}",
|
||||||
"backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
|
"backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
|
||||||
"backup_controller_page_excluded": "Excluded: ",
|
"backup_controller_page_excluded": "Excluded: ",
|
||||||
@@ -117,14 +159,12 @@
|
|||||||
"backup_controller_page_none_selected": "None selected",
|
"backup_controller_page_none_selected": "None selected",
|
||||||
"backup_controller_page_remainder": "Remainder",
|
"backup_controller_page_remainder": "Remainder",
|
||||||
"backup_controller_page_remainder_sub": "Remaining photos and videos to back up from selection",
|
"backup_controller_page_remainder_sub": "Remaining photos and videos to back up from selection",
|
||||||
"backup_controller_page_select": "Select",
|
|
||||||
"backup_controller_page_server_storage": "Server Storage",
|
"backup_controller_page_server_storage": "Server Storage",
|
||||||
"backup_controller_page_start_backup": "Start Backup",
|
"backup_controller_page_start_backup": "Start Backup",
|
||||||
"backup_controller_page_status_off": "Automatic foreground backup is off",
|
"backup_controller_page_status_off": "Automatic foreground backup is off",
|
||||||
"backup_controller_page_status_on": "Automatic foreground backup is on",
|
"backup_controller_page_status_on": "Automatic foreground backup is on",
|
||||||
"backup_controller_page_storage_format": "{} of {} used",
|
"backup_controller_page_storage_format": "{} of {} used",
|
||||||
"backup_controller_page_to_backup": "Albums to be backed up",
|
"backup_controller_page_to_backup": "Albums to be backed up",
|
||||||
"backup_controller_page_total": "Total",
|
|
||||||
"backup_controller_page_total_sub": "All unique photos and videos from selected albums",
|
"backup_controller_page_total_sub": "All unique photos and videos from selected albums",
|
||||||
"backup_controller_page_turn_off": "Turn off foreground backup",
|
"backup_controller_page_turn_off": "Turn off foreground backup",
|
||||||
"backup_controller_page_turn_on": "Turn on foreground backup",
|
"backup_controller_page_turn_on": "Turn on foreground backup",
|
||||||
@@ -132,7 +172,6 @@
|
|||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "assets",
|
||||||
"backup_manual_cancelled": "Cancelled",
|
"backup_manual_cancelled": "Cancelled",
|
||||||
"backup_manual_failed": "Failed",
|
|
||||||
"backup_manual_in_progress": "Upload already in progress. Try after some time",
|
"backup_manual_in_progress": "Upload already in progress. Try after some time",
|
||||||
"backup_manual_success": "Success",
|
"backup_manual_success": "Success",
|
||||||
"backup_manual_title": "Upload status",
|
"backup_manual_title": "Upload status",
|
||||||
@@ -172,46 +211,26 @@
|
|||||||
"client_cert_import": "Import",
|
"client_cert_import": "Import",
|
||||||
"client_cert_import_success_msg": "Client certificate is imported",
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
"client_cert_remove": "Remove",
|
|
||||||
"client_cert_remove_msg": "Client certificate is removed",
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
"client_cert_title": "SSL Client Certificate (EXPERIMENTAL)",
|
"client_cert_title": "SSL Client Certificate (EXPERIMENTAL)",
|
||||||
"common_add_to_album": "Add to album",
|
|
||||||
"common_change_password": "Change Password",
|
|
||||||
"common_create_new_album": "Create new album",
|
"common_create_new_album": "Create new album",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
"common_shared": "Shared",
|
|
||||||
"completed": "Completed",
|
"completed": "Completed",
|
||||||
"contextual_search": "Sunrise on the beach",
|
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
||||||
"control_bottom_app_bar_archive": "Archive",
|
|
||||||
"control_bottom_app_bar_create_new_album": "Create new album",
|
"control_bottom_app_bar_create_new_album": "Create new album",
|
||||||
"control_bottom_app_bar_delete": "Delete",
|
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
"control_bottom_app_bar_download": "Download",
|
|
||||||
"control_bottom_app_bar_edit": "Edit",
|
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
|
||||||
"control_bottom_app_bar_share": "Share",
|
|
||||||
"control_bottom_app_bar_share_to": "Share To",
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
"control_bottom_app_bar_stack": "Stack",
|
|
||||||
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
|
||||||
"control_bottom_app_bar_unfavorite": "Unfavorite",
|
|
||||||
"control_bottom_app_bar_upload": "Upload",
|
|
||||||
"create_album": "Create album",
|
"create_album": "Create album",
|
||||||
"create_album_page_untitled": "Untitled",
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_new": "CREATE NEW",
|
"create_new": "CREATE NEW",
|
||||||
"create_shared_album_page_create": "Create",
|
|
||||||
"create_shared_album_page_share": "Share",
|
|
||||||
"create_shared_album_page_share_add_assets": "ADD ASSETS",
|
"create_shared_album_page_share_add_assets": "ADD ASSETS",
|
||||||
"create_shared_album_page_share_select_photos": "Select Photos",
|
"create_shared_album_page_share_select_photos": "Select Photos",
|
||||||
"crop": "Crop",
|
"crop": "Crop",
|
||||||
"curated_location_page_title": "Places",
|
|
||||||
"curated_object_page_title": "Things",
|
"curated_object_page_title": "Things",
|
||||||
"current_server_address": "Current server address",
|
"current_server_address": "Current server address",
|
||||||
"daily_title_text_date": "E, MMM dd",
|
"daily_title_text_date": "E, MMM dd",
|
||||||
@@ -221,13 +240,10 @@
|
|||||||
"delete_dialog_alert_local": "These items will be permanently removed from your device but still be available on the Immich server",
|
"delete_dialog_alert_local": "These items will be permanently removed from your device but still be available on the Immich server",
|
||||||
"delete_dialog_alert_local_non_backed_up": "Some of the items aren't backed up to Immich and will be permanently removed from your device",
|
"delete_dialog_alert_local_non_backed_up": "Some of the items aren't backed up to Immich and will be permanently removed from your device",
|
||||||
"delete_dialog_alert_remote": "These items will be permanently deleted from the Immich server",
|
"delete_dialog_alert_remote": "These items will be permanently deleted from the Immich server",
|
||||||
"delete_dialog_cancel": "Cancel",
|
|
||||||
"delete_dialog_ok": "Delete",
|
|
||||||
"delete_dialog_ok_force": "Delete Anyway",
|
"delete_dialog_ok_force": "Delete Anyway",
|
||||||
"delete_dialog_title": "Delete Permanently",
|
"delete_dialog_title": "Delete Permanently",
|
||||||
"delete_local_dialog_ok_backed_up_only": "Delete Backed Up Only",
|
"delete_local_dialog_ok_backed_up_only": "Delete Backed Up Only",
|
||||||
"delete_local_dialog_ok_force": "Delete Anyway",
|
"delete_local_dialog_ok_force": "Delete Anyway",
|
||||||
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
|
||||||
"delete_shared_link_dialog_title": "Delete Shared Link",
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Add description...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
@@ -238,17 +254,14 @@
|
|||||||
"download_failed": "Download failed",
|
"download_failed": "Download failed",
|
||||||
"download_filename": "file: {}",
|
"download_filename": "file: {}",
|
||||||
"download_finished": "Download finished",
|
"download_finished": "Download finished",
|
||||||
"downloading": "Downloading...",
|
|
||||||
"downloading_media": "Downloading media",
|
|
||||||
"download_notfound": "Download not found",
|
"download_notfound": "Download not found",
|
||||||
"download_paused": "Download paused",
|
"download_paused": "Download paused",
|
||||||
"download_started": "Download started",
|
"download_started": "Download started",
|
||||||
"download_sucess": "Download success",
|
"download_sucess": "Download success",
|
||||||
"download_sucess_android": "The media has been downloaded to DCIM/Immich",
|
"download_sucess_android": "The media has been downloaded to DCIM/Immich",
|
||||||
"download_waiting_to_retry": "Waiting to retry",
|
"download_waiting_to_retry": "Waiting to retry",
|
||||||
"edit_date_time_dialog_date_time": "Date and Time",
|
"downloading": "Downloading...",
|
||||||
"edit_date_time_dialog_timezone": "Timezone",
|
"downloading_media": "Downloading media",
|
||||||
"edit_image_title": "Edit",
|
|
||||||
"edit_location_dialog_title": "Location",
|
"edit_location_dialog_title": "Location",
|
||||||
"end_date": "End date",
|
"end_date": "End date",
|
||||||
"enqueued": "Enqueued",
|
"enqueued": "Enqueued",
|
||||||
@@ -258,7 +271,6 @@
|
|||||||
"exif_bottom_sheet_description": "Add Description...",
|
"exif_bottom_sheet_description": "Add Description...",
|
||||||
"exif_bottom_sheet_details": "DETAILS",
|
"exif_bottom_sheet_details": "DETAILS",
|
||||||
"exif_bottom_sheet_location": "LOCATION",
|
"exif_bottom_sheet_location": "LOCATION",
|
||||||
"exif_bottom_sheet_location_add": "Add a location",
|
|
||||||
"exif_bottom_sheet_people": "PEOPLE",
|
"exif_bottom_sheet_people": "PEOPLE",
|
||||||
"exif_bottom_sheet_person_add_person": "Add name",
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
||||||
@@ -270,8 +282,6 @@
|
|||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"favorites": "Favorites",
|
"favorites": "Favorites",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
|
||||||
"filename_search": "File name or extension",
|
|
||||||
"filter": "Filter",
|
"filter": "Filter",
|
||||||
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"grant_permission": "Grant permission",
|
"grant_permission": "Grant permission",
|
||||||
@@ -281,7 +291,6 @@
|
|||||||
"header_settings_field_validator_msg": "Value cannot be empty",
|
"header_settings_field_validator_msg": "Value cannot be empty",
|
||||||
"header_settings_header_name_input": "Header name",
|
"header_settings_header_name_input": "Header name",
|
||||||
"header_settings_header_value_input": "Header value",
|
"header_settings_header_value_input": "Header value",
|
||||||
"header_settings_page_title": "Proxy Headers (EXPERIMENTAL)",
|
|
||||||
"headers_settings_tile_subtitle": "Define proxy headers the app should send with each network request",
|
"headers_settings_tile_subtitle": "Define proxy headers the app should send with each network request",
|
||||||
"headers_settings_tile_title": "Custom proxy headers",
|
"headers_settings_tile_title": "Custom proxy headers",
|
||||||
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
|
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
|
||||||
@@ -301,40 +310,30 @@
|
|||||||
"ignore_icloud_photos": "Ignore iCloud photos",
|
"ignore_icloud_photos": "Ignore iCloud photos",
|
||||||
"ignore_icloud_photos_description": "Photos that are stored on iCloud will not be uploaded to the Immich server",
|
"ignore_icloud_photos_description": "Photos that are stored on iCloud will not be uploaded to the Immich server",
|
||||||
"image_saved_successfully": "Image saved",
|
"image_saved_successfully": "Image saved",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
|
||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"image_viewer_page_state_provider_share_error": "Share Error",
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"invalid_date": "Invalid date",
|
"invalid_date": "Invalid date",
|
||||||
"invalid_date_format": "Invalid date format",
|
"invalid_date_format": "Invalid date format",
|
||||||
"library": "Library",
|
"library": "Library",
|
||||||
"library_page_albums": "Albums",
|
|
||||||
"library_page_archive": "Archive",
|
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
"library_page_favorites": "Favorites",
|
|
||||||
"library_page_new_album": "New album",
|
"library_page_new_album": "New album",
|
||||||
"library_page_sharing": "Sharing",
|
|
||||||
"library_page_sort_asset_count": "Number of assets",
|
"library_page_sort_asset_count": "Number of assets",
|
||||||
"library_page_sort_created": "Created date",
|
"library_page_sort_created": "Created date",
|
||||||
"library_page_sort_last_modified": "Last modified",
|
"library_page_sort_last_modified": "Last modified",
|
||||||
"library_page_sort_most_oldest_photo": "Oldest photo",
|
|
||||||
"library_page_sort_most_recent_photo": "Most recent photo",
|
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
"local_network": "Local network",
|
"local_network": "Local network",
|
||||||
"local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
|
"local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
|
||||||
"location_permission": "Location permission",
|
"location_permission": "Location permission",
|
||||||
"location_permission_content": "In order to use the auto-switching feature, Immich needs precise location permission so it can read the current WiFi network's name",
|
"location_permission_content": "In order to use the auto-switching feature, Immich needs precise location permission so it can read the current WiFi network's name",
|
||||||
"location_picker_choose_on_map": "Choose on map",
|
"location_picker_choose_on_map": "Choose on map",
|
||||||
"location_picker_latitude": "Latitude",
|
|
||||||
"location_picker_latitude_error": "Enter a valid latitude",
|
"location_picker_latitude_error": "Enter a valid latitude",
|
||||||
"location_picker_latitude_hint": "Enter your latitude here",
|
"location_picker_latitude_hint": "Enter your latitude here",
|
||||||
"location_picker_longitude": "Longitude",
|
|
||||||
"location_picker_longitude_error": "Enter a valid longitude",
|
"location_picker_longitude_error": "Enter a valid longitude",
|
||||||
"location_picker_longitude_hint": "Enter your longitude here",
|
"location_picker_longitude_hint": "Enter your longitude here",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_back_button_text": "Back",
|
"login_form_back_button_text": "Back",
|
||||||
"login_form_button_text": "Login",
|
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
"login_form_endpoint_hint": "http://your-server-ip:port",
|
"login_form_endpoint_hint": "http://your-server-ip:port",
|
||||||
"login_form_endpoint_url": "Server Endpoint URL",
|
"login_form_endpoint_url": "Server Endpoint URL",
|
||||||
@@ -347,9 +346,6 @@
|
|||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Email",
|
|
||||||
"login_form_label_password": "Password",
|
|
||||||
"login_form_next_button": "Next",
|
|
||||||
"login_form_password_hint": "password",
|
"login_form_password_hint": "password",
|
||||||
"login_form_save_login": "Stay logged in",
|
"login_form_save_login": "Stay logged in",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
@@ -359,7 +355,6 @@
|
|||||||
"map_assets_in_bound": "{} photo",
|
"map_assets_in_bound": "{} photo",
|
||||||
"map_assets_in_bounds": "{} photos",
|
"map_assets_in_bounds": "{} photos",
|
||||||
"map_cannot_get_user_location": "Cannot get user's location",
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
"map_location_dialog_cancel": "Cancel",
|
|
||||||
"map_location_dialog_yes": "Yes",
|
"map_location_dialog_yes": "Yes",
|
||||||
"map_location_picker_page_use_location": "Use this location",
|
"map_location_picker_page_use_location": "Use this location",
|
||||||
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
@@ -368,17 +363,13 @@
|
|||||||
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
"map_no_location_permission_title": "Location Permission denied",
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
"map_settings_dark_mode": "Dark mode",
|
"map_settings_dark_mode": "Dark mode",
|
||||||
"map_settings_date_range_option_all": "All",
|
|
||||||
"map_settings_date_range_option_day": "Past 24 hours",
|
"map_settings_date_range_option_day": "Past 24 hours",
|
||||||
"map_settings_date_range_option_days": "Past {} days",
|
"map_settings_date_range_option_days": "Past {} days",
|
||||||
"map_settings_date_range_option_year": "Past year",
|
"map_settings_date_range_option_year": "Past year",
|
||||||
"map_settings_date_range_option_years": "Past {} years",
|
"map_settings_date_range_option_years": "Past {} years",
|
||||||
"map_settings_dialog_cancel": "Cancel",
|
|
||||||
"map_settings_dialog_save": "Save",
|
|
||||||
"map_settings_dialog_title": "Map Settings",
|
"map_settings_dialog_title": "Map Settings",
|
||||||
"map_settings_include_show_archived": "Include Archived",
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
"map_settings_include_show_partners": "Include Partners",
|
"map_settings_include_show_partners": "Include Partners",
|
||||||
"map_settings_only_relative_range": "Date range",
|
|
||||||
"map_settings_only_show_favorites": "Show Favorite Only",
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
"map_settings_theme_settings": "Map Theme",
|
"map_settings_theme_settings": "Map Theme",
|
||||||
"map_zoom_to_see_photos": "Zoom out to see photos",
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
@@ -389,7 +380,6 @@
|
|||||||
"memories_year_ago": "A year ago",
|
"memories_year_ago": "A year ago",
|
||||||
"memories_years_ago": "{} years ago",
|
"memories_years_ago": "{} years ago",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
|
||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"my_albums": "My albums",
|
"my_albums": "My albums",
|
||||||
@@ -397,25 +387,20 @@
|
|||||||
"networking_subtitle": "Manage the server endpoint settings",
|
"networking_subtitle": "Manage the server endpoint settings",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
"no_name": "No name",
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"not_selected": "Not selected",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
|
||||||
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
||||||
"notification_permission_list_tile_enable_button": "Enable Notifications",
|
"notification_permission_list_tile_enable_button": "Enable Notifications",
|
||||||
"notification_permission_list_tile_title": "Notification Permission",
|
"notification_permission_list_tile_title": "Notification Permission",
|
||||||
"not_selected": "Not selected",
|
|
||||||
"on_this_device": "On this device",
|
"on_this_device": "On this device",
|
||||||
"partner_list_user_photos": "{user}'s photos",
|
"partner_list_user_photos": "{user}'s photos",
|
||||||
"partner_list_view_all": "View all",
|
"partner_list_view_all": "View all",
|
||||||
"partner_page_add_partner": "Add partner",
|
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "No more users to add",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Failed to add partner",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Select partner",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Shared to",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
|
||||||
"partner_page_title": "Partner",
|
|
||||||
"partners": "Partners",
|
"partners": "Partners",
|
||||||
"paused": "Paused",
|
"paused": "Paused",
|
||||||
"people": "People",
|
"people": "People",
|
||||||
@@ -423,8 +408,6 @@
|
|||||||
"permission_onboarding_continue_anyway": "Continue anyway",
|
"permission_onboarding_continue_anyway": "Continue anyway",
|
||||||
"permission_onboarding_get_started": "Get started",
|
"permission_onboarding_get_started": "Get started",
|
||||||
"permission_onboarding_go_to_settings": "Go to settings",
|
"permission_onboarding_go_to_settings": "Go to settings",
|
||||||
"permission_onboarding_grant_permission": "Grant permission",
|
|
||||||
"permission_onboarding_log_out": "Log out",
|
|
||||||
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
||||||
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
||||||
"permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
|
"permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
|
||||||
@@ -436,79 +419,45 @@
|
|||||||
"profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.",
|
"profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.",
|
||||||
"profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.",
|
"profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.",
|
||||||
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
"profile_drawer_documentation": "Documentation",
|
|
||||||
"profile_drawer_github": "GitHub",
|
"profile_drawer_github": "GitHub",
|
||||||
"profile_drawer_server_out_of_date_major": "Server is out of date. Please update to the latest major version.",
|
"profile_drawer_server_out_of_date_major": "Server is out of date. Please update to the latest major version.",
|
||||||
"profile_drawer_server_out_of_date_minor": "Server is out of date. Please update to the latest minor version.",
|
"profile_drawer_server_out_of_date_minor": "Server is out of date. Please update to the latest minor version.",
|
||||||
"profile_drawer_settings": "Settings",
|
|
||||||
"profile_drawer_sign_out": "Sign Out",
|
|
||||||
"profile_drawer_trash": "Trash",
|
|
||||||
"recently_added": "Recently added",
|
"recently_added": "Recently added",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recently Added",
|
||||||
"save": "Save",
|
"save": "Save",
|
||||||
"save_to_gallery": "Save to gallery",
|
"save_to_gallery": "Save to gallery",
|
||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_albums": "Search albums",
|
"search_albums": "Search albums",
|
||||||
"search_bar_hint": "Search your photos",
|
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
"search_filter_camera": "Camera",
|
|
||||||
"search_filter_camera_make": "Make",
|
|
||||||
"search_filter_camera_model": "Model",
|
|
||||||
"search_filter_camera_title": "Select camera type",
|
"search_filter_camera_title": "Select camera type",
|
||||||
"search_filter_date": "Date",
|
"search_filter_date": "Date",
|
||||||
"search_filter_date_interval": "{start} to {end}",
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
"search_filter_date_title": "Select a date range",
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
"search_filter_display_options": "Display Options",
|
"search_filter_display_options": "Display Options",
|
||||||
"search_filter_display_options_title": "Display options",
|
|
||||||
"search_filter_location": "Location",
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
|
||||||
"search_filter_location_country": "Country",
|
|
||||||
"search_filter_location_state": "State",
|
|
||||||
"search_filter_location_title": "Select location",
|
"search_filter_location_title": "Select location",
|
||||||
"search_filter_media_type": "Media Type",
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
|
||||||
"search_filter_media_type_image": "Image",
|
|
||||||
"search_filter_media_type_title": "Select media type",
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
|
||||||
"search_filter_people": "People",
|
|
||||||
"search_filter_people_title": "Select people",
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
"search_page_favorites": "Favorites",
|
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Motion Photos",
|
||||||
"search_page_no_objects": "No Objects Info Available",
|
"search_page_no_objects": "No Objects Info Available",
|
||||||
"search_page_no_places": "No Places Info Available",
|
"search_page_no_places": "No Places Info Available",
|
||||||
"search_page_people": "People",
|
|
||||||
"search_page_person_add_name_dialog_cancel": "Cancel",
|
|
||||||
"search_page_person_add_name_dialog_hint": "Name",
|
|
||||||
"search_page_person_add_name_dialog_save": "Save",
|
|
||||||
"search_page_person_add_name_dialog_title": "Add a name",
|
|
||||||
"search_page_person_add_name_subtitle": "Find them fast by name with search",
|
|
||||||
"search_page_person_add_name_title": "Add a name",
|
|
||||||
"search_page_person_edit_name": "Edit name",
|
|
||||||
"search_page_places": "Places",
|
|
||||||
"search_page_recently_added": "Recently added",
|
|
||||||
"search_page_screenshots": "Screenshots",
|
"search_page_screenshots": "Screenshots",
|
||||||
"search_page_search_photos_videos": "Search for your photos and videos",
|
"search_page_search_photos_videos": "Search for your photos and videos",
|
||||||
"search_page_selfies": "Selfies",
|
"search_page_selfies": "Selfies",
|
||||||
"search_page_things": "Things",
|
"search_page_things": "Things",
|
||||||
"search_page_videos": "Videos",
|
|
||||||
"search_page_view_all_button": "View all",
|
"search_page_view_all_button": "View all",
|
||||||
"search_page_your_activity": "Your activity",
|
"search_page_your_activity": "Your activity",
|
||||||
"search_page_your_map": "Your Map",
|
"search_page_your_map": "Your Map",
|
||||||
"search_result_page_new_search_hint": "New Search",
|
"search_result_page_new_search_hint": "New Search",
|
||||||
"search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ",
|
"search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ",
|
||||||
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
||||||
"select_additional_user_for_sharing_page_suggestions": "Suggestions",
|
|
||||||
"select_user_for_sharing_page_err_album": "Failed to create album",
|
"select_user_for_sharing_page_err_album": "Failed to create album",
|
||||||
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
|
||||||
"server_endpoint": "Server Endpoint",
|
"server_endpoint": "Server Endpoint",
|
||||||
"server_info_box_app_version": "App Version",
|
"server_info_box_app_version": "App Version",
|
||||||
"server_info_box_latest_release": "Latest Version",
|
|
||||||
"server_info_box_server_url": "Server URL",
|
"server_info_box_server_url": "Server URL",
|
||||||
"server_info_box_server_version": "Server Version",
|
|
||||||
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
|
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
|
||||||
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
||||||
"setting_image_viewer_original_title": "Load original image",
|
"setting_image_viewer_original_title": "Load original image",
|
||||||
@@ -527,48 +476,28 @@
|
|||||||
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
||||||
"setting_notifications_single_progress_title": "Show background backup detail progress",
|
"setting_notifications_single_progress_title": "Show background backup detail progress",
|
||||||
"setting_notifications_subtitle": "Adjust your notification preferences",
|
"setting_notifications_subtitle": "Adjust your notification preferences",
|
||||||
"setting_notifications_title": "Notifications",
|
|
||||||
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
||||||
"setting_notifications_total_progress_title": "Show background backup total progress",
|
"setting_notifications_total_progress_title": "Show background backup total progress",
|
||||||
"setting_pages_app_bar_settings": "Settings",
|
|
||||||
"settings_require_restart": "Please restart Immich to apply this setting",
|
|
||||||
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
|
|
||||||
"setting_video_viewer_looping_title": "Looping",
|
"setting_video_viewer_looping_title": "Looping",
|
||||||
"setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
|
"setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
|
||||||
"setting_video_viewer_original_video_title": "Force original video",
|
"setting_video_viewer_original_video_title": "Force original video",
|
||||||
"setting_video_viewer_title": "Videos",
|
"settings_require_restart": "Please restart Immich to apply this setting",
|
||||||
"share_add": "Add",
|
|
||||||
"share_add_photos": "Add photos",
|
"share_add_photos": "Add photos",
|
||||||
"share_add_title": "Add a title",
|
|
||||||
"share_assets_selected": "{} selected",
|
"share_assets_selected": "{} selected",
|
||||||
"share_create_album": "Create album",
|
"share_dialog_preparing": "Preparing...",
|
||||||
"shared_album_activities_input_disable": "Comment is disabled",
|
"shared_album_activities_input_disable": "Comment is disabled",
|
||||||
"shared_album_activities_input_hint": "Say something",
|
|
||||||
"shared_album_activity_remove_content": "Do you want to delete this activity?",
|
"shared_album_activity_remove_content": "Do you want to delete this activity?",
|
||||||
"shared_album_activity_remove_title": "Delete Activity",
|
"shared_album_activity_remove_title": "Delete Activity",
|
||||||
"shared_album_activity_setting_subtitle": "Let others respond",
|
|
||||||
"shared_album_activity_setting_title": "Comments & likes",
|
|
||||||
"shared_album_section_people_action_error": "Error leaving/removing from album",
|
"shared_album_section_people_action_error": "Error leaving/removing from album",
|
||||||
"shared_album_section_people_action_leave": "Remove user from album",
|
"shared_album_section_people_action_leave": "Remove user from album",
|
||||||
"shared_album_section_people_action_remove_user": "Remove user from album",
|
"shared_album_section_people_action_remove_user": "Remove user from album",
|
||||||
"shared_album_section_people_owner_label": "Owner",
|
|
||||||
"shared_album_section_people_title": "PEOPLE",
|
"shared_album_section_people_title": "PEOPLE",
|
||||||
"share_dialog_preparing": "Preparing...",
|
|
||||||
"shared_intent_upload_button_progress_text": "{} / {} Uploaded",
|
"shared_intent_upload_button_progress_text": "{} / {} Uploaded",
|
||||||
"shared_link_app_bar_title": "Shared Links",
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
"shared_link_clipboard_copied_massage": "Copied to clipboard",
|
"shared_link_clipboard_copied_massage": "Copied to clipboard",
|
||||||
"shared_link_clipboard_text": "Link: {}\nPassword: {}",
|
"shared_link_clipboard_text": "Link: {}\nPassword: {}",
|
||||||
"shared_link_create_app_bar_title": "Create link to share",
|
|
||||||
"shared_link_create_error": "Error while creating shared link",
|
"shared_link_create_error": "Error while creating shared link",
|
||||||
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
|
||||||
"shared_link_create_submit_button": "Create link",
|
|
||||||
"shared_link_edit_allow_download": "Allow public user to download",
|
|
||||||
"shared_link_edit_allow_upload": "Allow public user to upload",
|
|
||||||
"shared_link_edit_app_bar_title": "Edit link",
|
|
||||||
"shared_link_edit_change_expiry": "Change expiration time",
|
|
||||||
"shared_link_edit_description": "Description",
|
|
||||||
"shared_link_edit_description_hint": "Enter the share description",
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
"shared_link_edit_expire_after": "Expire after",
|
|
||||||
"shared_link_edit_expire_after_option_day": "1 day",
|
"shared_link_edit_expire_after_option_day": "1 day",
|
||||||
"shared_link_edit_expire_after_option_days": "{} days",
|
"shared_link_edit_expire_after_option_days": "{} days",
|
||||||
"shared_link_edit_expire_after_option_hour": "1 hour",
|
"shared_link_edit_expire_after_option_hour": "1 hour",
|
||||||
@@ -576,15 +505,10 @@
|
|||||||
"shared_link_edit_expire_after_option_minute": "1 minute",
|
"shared_link_edit_expire_after_option_minute": "1 minute",
|
||||||
"shared_link_edit_expire_after_option_minutes": "{} minutes",
|
"shared_link_edit_expire_after_option_minutes": "{} minutes",
|
||||||
"shared_link_edit_expire_after_option_months": "{} months",
|
"shared_link_edit_expire_after_option_months": "{} months",
|
||||||
"shared_link_edit_expire_after_option_never": "Never",
|
|
||||||
"shared_link_edit_expire_after_option_year": "{} year",
|
"shared_link_edit_expire_after_option_year": "{} year",
|
||||||
"shared_link_edit_password": "Password",
|
|
||||||
"shared_link_edit_password_hint": "Enter the share password",
|
"shared_link_edit_password_hint": "Enter the share password",
|
||||||
"shared_link_edit_show_meta": "Show metadata",
|
|
||||||
"shared_link_edit_submit_button": "Update link",
|
"shared_link_edit_submit_button": "Update link",
|
||||||
"shared_link_empty": "You don't have any shared links",
|
|
||||||
"shared_link_error_server_url_fetch": "Cannot fetch the server url",
|
"shared_link_error_server_url_fetch": "Cannot fetch the server url",
|
||||||
"shared_link_expired": "Expired",
|
|
||||||
"shared_link_expires_day": "Expires in {} day",
|
"shared_link_expires_day": "Expires in {} day",
|
||||||
"shared_link_expires_days": "Expires in {} days",
|
"shared_link_expires_days": "Expires in {} days",
|
||||||
"shared_link_expires_hour": "Expires in {} hour",
|
"shared_link_expires_hour": "Expires in {} hour",
|
||||||
@@ -595,35 +519,24 @@
|
|||||||
"shared_link_expires_second": "Expires in {} second",
|
"shared_link_expires_second": "Expires in {} second",
|
||||||
"shared_link_expires_seconds": "Expires in {} seconds",
|
"shared_link_expires_seconds": "Expires in {} seconds",
|
||||||
"shared_link_individual_shared": "Individual shared",
|
"shared_link_individual_shared": "Individual shared",
|
||||||
"shared_link_info_chip_download": "Download",
|
|
||||||
"shared_link_info_chip_metadata": "EXIF",
|
"shared_link_info_chip_metadata": "EXIF",
|
||||||
"shared_link_info_chip_upload": "Upload",
|
|
||||||
"shared_link_manage_links": "Manage Shared links",
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
"shared_link_public_album": "Public album",
|
|
||||||
"shared_links": "Shared links",
|
"shared_links": "Shared links",
|
||||||
"share_done": "Done",
|
|
||||||
"shared_with_me": "Shared with me",
|
"shared_with_me": "Shared with me",
|
||||||
"share_invite": "Invite to album",
|
|
||||||
"sharing_page_album": "Shared albums",
|
"sharing_page_album": "Shared albums",
|
||||||
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
||||||
"sharing_page_empty_list": "EMPTY LIST",
|
"sharing_page_empty_list": "EMPTY LIST",
|
||||||
"sharing_silver_appbar_create_shared_album": "New shared album",
|
"sharing_silver_appbar_create_shared_album": "New shared album",
|
||||||
"sharing_silver_appbar_shared_links": "Shared links",
|
|
||||||
"sharing_silver_appbar_share_partner": "Share with partner",
|
"sharing_silver_appbar_share_partner": "Share with partner",
|
||||||
"start_date": "Start date",
|
"start_date": "Start date",
|
||||||
"sync": "Sync",
|
"sync": "Sync",
|
||||||
"sync_albums": "Sync albums",
|
"sync_albums": "Sync albums",
|
||||||
"sync_albums_manual_subtitle": "Sync all uploaded videos and photos to the selected backup albums",
|
"sync_albums_manual_subtitle": "Sync all uploaded videos and photos to the selected backup albums",
|
||||||
"sync_upload_album_setting_subtitle": "Create and upload your photos and videos to the selected albums on Immich",
|
"sync_upload_album_setting_subtitle": "Create and upload your photos and videos to the selected albums on Immich",
|
||||||
"tab_controller_nav_library": "Library",
|
|
||||||
"tab_controller_nav_photos": "Photos",
|
|
||||||
"tab_controller_nav_search": "Search",
|
|
||||||
"tab_controller_nav_sharing": "Sharing",
|
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
"theme_setting_colorful_interface_title": "Colorful interface",
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
@@ -631,43 +544,36 @@
|
|||||||
"theme_setting_system_primary_color_title": "Use system color",
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
"theme_setting_theme_title": "Theme",
|
|
||||||
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
"translated_text_options": "Options",
|
|
||||||
"trash": "Trash",
|
"trash": "Trash",
|
||||||
"trash_emptied": "Emptied trash",
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Delete",
|
|
||||||
"trash_page_delete_all": "Delete All",
|
"trash_page_delete_all": "Delete All",
|
||||||
"trash_page_empty_trash_btn": "Empty trash",
|
|
||||||
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
"trash_page_empty_trash_dialog_ok": "Ok",
|
|
||||||
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
"trash_page_no_assets": "No trashed assets",
|
"trash_page_no_assets": "No trashed assets",
|
||||||
"trash_page_restore": "Restore",
|
|
||||||
"trash_page_restore_all": "Restore All",
|
"trash_page_restore_all": "Restore All",
|
||||||
"trash_page_select_assets_btn": "Select assets",
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
"trash_page_select_btn": "Select",
|
|
||||||
"trash_page_title": "Trash ({})",
|
"trash_page_title": "Trash ({})",
|
||||||
"upload": "Upload",
|
"upload": "Upload",
|
||||||
"upload_dialog_cancel": "Cancel",
|
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
|
||||||
"upload_dialog_title": "Upload Asset",
|
"upload_dialog_title": "Upload Asset",
|
||||||
"uploading": "Uploading",
|
|
||||||
"upload_to_immich": "Upload to Immich ({})",
|
"upload_to_immich": "Upload to Immich ({})",
|
||||||
|
"uploading": "Uploading",
|
||||||
"use_current_connection": "use current connection",
|
"use_current_connection": "use current connection",
|
||||||
"validate_endpoint_error": "Please enter a valid URL",
|
"validate_endpoint_error": "Please enter a valid URL",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
"version_announcement_overlay_title": "New Server Version Available 🎉",
|
||||||
"videos": "Videos",
|
"videos": "Videos",
|
||||||
"viewer_remove_from_stack": "Remove from Stack",
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
"viewer_unstack": "Un-Stack",
|
"viewer_unstack": "Un-Stack",
|
||||||
"wifi_name": "WiFi Name",
|
"wifi_name": "WiFi Name",
|
||||||
"your_wifi_name": "Your WiFi name"
|
"year": "Ano",
|
||||||
|
"yes": "Si",
|
||||||
|
"your_wifi_name": "Your WiFi name",
|
||||||
|
"zoom_image": "Acercar imaxe"
|
||||||
}
|
}
|
||||||
615
i18n/he.json
615
i18n/he.json
File diff suppressed because it is too large
Load Diff
524
i18n/hi.json
524
i18n/hi.json
@@ -4,6 +4,7 @@
|
|||||||
"account_settings": "अभिलेख व्यवस्था",
|
"account_settings": "अभिलेख व्यवस्था",
|
||||||
"acknowledge": "स्वीकार करें",
|
"acknowledge": "स्वीकार करें",
|
||||||
"action": "कार्रवाई",
|
"action": "कार्रवाई",
|
||||||
|
"action_common_update": "Update",
|
||||||
"actions": "कार्यवाहियां",
|
"actions": "कार्यवाहियां",
|
||||||
"active": "सक्रिय",
|
"active": "सक्रिय",
|
||||||
"activity": "गतिविधि",
|
"activity": "गतिविधि",
|
||||||
@@ -13,6 +14,7 @@
|
|||||||
"add_a_location": "एक स्थान जोड़ें",
|
"add_a_location": "एक स्थान जोड़ें",
|
||||||
"add_a_name": "नाम जोड़ें",
|
"add_a_name": "नाम जोड़ें",
|
||||||
"add_a_title": "एक शीर्षक जोड़ें",
|
"add_a_title": "एक शीर्षक जोड़ें",
|
||||||
|
"add_endpoint": "Add endpoint",
|
||||||
"add_exclusion_pattern": "अपवाद उदाहरण जोड़ें",
|
"add_exclusion_pattern": "अपवाद उदाहरण जोड़ें",
|
||||||
"add_import_path": "आयात पथ जोड़ें",
|
"add_import_path": "आयात पथ जोड़ें",
|
||||||
"add_location": "स्थान जोड़ें",
|
"add_location": "स्थान जोड़ें",
|
||||||
@@ -22,6 +24,8 @@
|
|||||||
"add_photos": "फ़ोटो जोड़ें",
|
"add_photos": "फ़ोटो जोड़ें",
|
||||||
"add_to": "इसमें जोड़ें…",
|
"add_to": "इसमें जोड़ें…",
|
||||||
"add_to_album": "एल्बम में जोड़ें",
|
"add_to_album": "एल्बम में जोड़ें",
|
||||||
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"add_to_shared_album": "साझा एल्बम में जोड़ें",
|
"add_to_shared_album": "साझा एल्बम में जोड़ें",
|
||||||
"add_url": "URL जोड़ें",
|
"add_url": "URL जोड़ें",
|
||||||
"added_to_archive": "संग्रहीत कर दिया गया है",
|
"added_to_archive": "संग्रहीत कर दिया गया है",
|
||||||
@@ -29,11 +33,17 @@
|
|||||||
"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 फ़ाइल द्वारा सेट किया गया है",
|
||||||
@@ -42,6 +52,9 @@
|
|||||||
"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 फ़ाइलें।",
|
||||||
@@ -53,11 +66,14 @@
|
|||||||
"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": "उत्पन्न छवियों की गुणवत्ता और रिज़ॉल्यूशन प्रबंधित करें",
|
||||||
@@ -134,7 +150,6 @@
|
|||||||
"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)",
|
||||||
@@ -301,17 +316,41 @@
|
|||||||
"admin_password": "व्यवस्थापक पासवर्ड",
|
"admin_password": "व्यवस्थापक पासवर्ड",
|
||||||
"administration": "प्रशासन",
|
"administration": "प्रशासन",
|
||||||
"advanced": "विकसित",
|
"advanced": "विकसित",
|
||||||
|
"advanced_settings_log_level_title": "Log level: {}",
|
||||||
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_proxy_headers_subtitle": "Define proxy headers Immich should send with each network request",
|
||||||
|
"advanced_settings_proxy_headers_title": "Proxy Headers",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
||||||
"album_added": "एल्बम जोड़ा गया",
|
"album_added": "एल्बम जोड़ा गया",
|
||||||
"album_added_notification_setting_description": "जब आपको किसी साझा एल्बम में जोड़ा जाए तो एक ईमेल सूचना प्राप्त करें",
|
"album_added_notification_setting_description": "जब आपको किसी साझा एल्बम में जोड़ा जाए तो एक ईमेल सूचना प्राप्त करें",
|
||||||
"album_cover_updated": "एल्बम कवर अपडेट किया गया",
|
"album_cover_updated": "एल्बम कवर अपडेट किया गया",
|
||||||
|
"album_info_card_backup_album_excluded": "EXCLUDED",
|
||||||
|
"album_info_card_backup_album_included": "INCLUDED",
|
||||||
"album_info_updated": "एल्बम की जानकारी अपडेट की गई",
|
"album_info_updated": "एल्बम की जानकारी अपडेट की गई",
|
||||||
"album_leave": "एल्बम छोड़ें?",
|
"album_leave": "एल्बम छोड़ें?",
|
||||||
"album_name": "एल्बम का नाम",
|
"album_name": "एल्बम का नाम",
|
||||||
"album_options": "एल्बम विकल्प",
|
"album_options": "एल्बम विकल्प",
|
||||||
"album_remove_user": "उपयोगकर्ता हटाएं?",
|
"album_remove_user": "उपयोगकर्ता हटाएं?",
|
||||||
"album_share_no_users": "ऐसा लगता है कि आपने यह एल्बम सभी उपयोगकर्ताओं के साथ साझा कर दिया है या आपके पास साझा करने के लिए कोई उपयोगकर्ता नहीं है।",
|
"album_share_no_users": "ऐसा लगता है कि आपने यह एल्बम सभी उपयोगकर्ताओं के साथ साझा कर दिया है या आपके पास साझा करने के लिए कोई उपयोगकर्ता नहीं है।",
|
||||||
|
"album_thumbnail_card_item": "1 item",
|
||||||
|
"album_thumbnail_card_items": "{} items",
|
||||||
|
"album_thumbnail_card_shared": " · Shared",
|
||||||
|
"album_thumbnail_shared_by": "Shared by {}",
|
||||||
"album_updated": "एल्बम अपडेट किया गया",
|
"album_updated": "एल्बम अपडेट किया गया",
|
||||||
"album_updated_setting_description": "जब किसी साझा एल्बम में नई संपत्तियाँ हों तो एक ईमेल सूचना प्राप्त करें",
|
"album_updated_setting_description": "जब किसी साझा एल्बम में नई संपत्तियाँ हों तो एक ईमेल सूचना प्राप्त करें",
|
||||||
|
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?",
|
||||||
|
"album_viewer_appbar_share_err_delete": "Failed to delete album",
|
||||||
|
"album_viewer_appbar_share_err_leave": "Failed to leave album",
|
||||||
|
"album_viewer_appbar_share_err_remove": "There are problems in removing assets from album",
|
||||||
|
"album_viewer_appbar_share_err_title": "Failed to change album title",
|
||||||
|
"album_viewer_appbar_share_leave": "Leave album",
|
||||||
|
"album_viewer_appbar_share_to": "साझा करें",
|
||||||
|
"album_viewer_page_share_add_users": "Add users",
|
||||||
"album_with_link_access": "लिंक वाले किसी भी व्यक्ति को इस एल्बम में फ़ोटो और लोगों को देखने दें।",
|
"album_with_link_access": "लिंक वाले किसी भी व्यक्ति को इस एल्बम में फ़ोटो और लोगों को देखने दें।",
|
||||||
"albums": "एलबम",
|
"albums": "एलबम",
|
||||||
"all": "सभी",
|
"all": "सभी",
|
||||||
@@ -326,29 +365,120 @@
|
|||||||
"api_key_description": "यह की केवल एक बार दिखाई जाएगी। विंडो बंद करने से पहले कृपया इसे कॉपी करना सुनिश्चित करें।।",
|
"api_key_description": "यह की केवल एक बार दिखाई जाएगी। विंडो बंद करने से पहले कृपया इसे कॉपी करना सुनिश्चित करें।।",
|
||||||
"api_key_empty": "आपका एपीआई कुंजी नाम खाली नहीं होना चाहिए",
|
"api_key_empty": "आपका एपीआई कुंजी नाम खाली नहीं होना चाहिए",
|
||||||
"api_keys": "एपीआई कीज",
|
"api_keys": "एपीआई कीज",
|
||||||
|
"app_bar_signout_dialog_content": "क्या आप सुनिश्चित हैं कि आप लॉग आउट करना चाहते हैं?",
|
||||||
|
"app_bar_signout_dialog_ok": "हाँ",
|
||||||
|
"app_bar_signout_dialog_title": "लॉग आउट",
|
||||||
"app_settings": "एप्लिकेशन सेटिंग",
|
"app_settings": "एप्लिकेशन सेटिंग",
|
||||||
"appears_in": "प्रकट होता है",
|
"appears_in": "प्रकट होता है",
|
||||||
"archive": "संग्रहालय",
|
"archive": "संग्रहालय",
|
||||||
"archive_or_unarchive_photo": "फ़ोटो को संग्रहीत या असंग्रहीत करें",
|
"archive_or_unarchive_photo": "फ़ोटो को संग्रहीत या असंग्रहीत करें",
|
||||||
|
"archive_page_no_archived_assets": "No archived assets found",
|
||||||
|
"archive_page_title": "Archive ({})",
|
||||||
"archive_size": "पुरालेख आकार",
|
"archive_size": "पुरालेख आकार",
|
||||||
"archive_size_description": "डाउनलोड के लिए संग्रह आकार कॉन्फ़िगर करें (GiB में)",
|
"archive_size_description": "डाउनलोड के लिए संग्रह आकार कॉन्फ़िगर करें (GiB में)",
|
||||||
|
"archived": "संग्रहित",
|
||||||
"are_these_the_same_person": "क्या ये वही व्यक्ति हैं?",
|
"are_these_the_same_person": "क्या ये वही व्यक्ति हैं?",
|
||||||
"are_you_sure_to_do_this": "क्या आप वास्तव में इसे करना चाहते हैं?",
|
"are_you_sure_to_do_this": "क्या आप वास्तव में इसे करना चाहते हैं?",
|
||||||
|
"asset_action_delete_err_read_only": "Cannot delete read only asset(s), skipping",
|
||||||
|
"asset_action_share_err_offline": "Cannot fetch offline asset(s), skipping",
|
||||||
"asset_added_to_album": "एल्बम में जोड़ा गया",
|
"asset_added_to_album": "एल्बम में जोड़ा गया",
|
||||||
"asset_adding_to_album": "एल्बम में जोड़ा जा रहा है..।",
|
"asset_adding_to_album": "एल्बम में जोड़ा जा रहा है..।",
|
||||||
"asset_description_updated": "संपत्ति विवरण अद्यतन कर दिया गया है",
|
"asset_description_updated": "संपत्ति विवरण अद्यतन कर दिया गया है",
|
||||||
"asset_has_unassigned_faces": "एसेट में अनिर्धारित चेहरे हैं",
|
"asset_has_unassigned_faces": "एसेट में अनिर्धारित चेहरे हैं",
|
||||||
"asset_hashing": "हैशिंग..।",
|
"asset_hashing": "हैशिंग..।",
|
||||||
|
"asset_list_group_by_sub_title": "Group by",
|
||||||
|
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
||||||
|
"asset_list_layout_settings_group_automatically": "Automatic",
|
||||||
|
"asset_list_layout_settings_group_by": "Group assets by",
|
||||||
|
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
||||||
|
"asset_list_layout_sub_title": "Layout",
|
||||||
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
|
"asset_list_settings_title": "Photo Grid",
|
||||||
"asset_offline": "संपत्ति ऑफ़लाइन",
|
"asset_offline": "संपत्ति ऑफ़लाइन",
|
||||||
"asset_offline_description": "यह संपत्ति ऑफ़लाइन है।",
|
"asset_offline_description": "यह संपत्ति ऑफ़लाइन है।",
|
||||||
|
"asset_restored_successfully": "संपत्ति(याँ) सफलतापूर्वक पुनर्स्थापित की गईं",
|
||||||
"asset_skipped": "छोड़ा गया",
|
"asset_skipped": "छोड़ा गया",
|
||||||
"asset_uploaded": "अपलोड किए गए",
|
"asset_uploaded": "अपलोड किए गए",
|
||||||
"asset_uploading": "अपलोड हो रहा है..।",
|
"asset_uploading": "अपलोड हो रहा है..।",
|
||||||
|
"asset_viewer_settings_subtitle": "Manage your gallery viewer settings",
|
||||||
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"assets": "संपत्तियां",
|
"assets": "संपत्तियां",
|
||||||
|
"assets_deleted_permanently": "{} संपत्ति(याँ) स्थायी रूप से हटा दी गईं",
|
||||||
|
"assets_deleted_permanently_from_server": "{} संपत्ति(याँ) इमिच सर्वर से स्थायी रूप से हटा दी गईं",
|
||||||
|
"assets_removed_permanently_from_device": "{} संपत्ति(याँ) आपके डिवाइस से स्थायी रूप से हटा दी गईं",
|
||||||
"assets_restore_confirmation": "क्या आप वाकई अपनी सभी नष्ट की गई संपत्तियों को पुनर्स्थापित करना चाहते हैं? आप इस क्रिया को पूर्ववत नहीं कर सकते!",
|
"assets_restore_confirmation": "क्या आप वाकई अपनी सभी नष्ट की गई संपत्तियों को पुनर्स्थापित करना चाहते हैं? आप इस क्रिया को पूर्ववत नहीं कर सकते!",
|
||||||
|
"assets_restored_successfully": "{} संपत्ति(याँ) सफलतापूर्वक पुनर्स्थापित की गईं",
|
||||||
|
"assets_trashed": "{} संपत्ति(याँ) कचरे में डाली गईं",
|
||||||
|
"assets_trashed_from_server": "{} संपत्ति(याँ) इमिच सर्वर से कचरे में डाली गईं",
|
||||||
"authorized_devices": "अधिकृत उपकरण",
|
"authorized_devices": "अधिकृत उपकरण",
|
||||||
|
"automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
|
||||||
|
"automatic_endpoint_switching_title": "Automatic URL switching",
|
||||||
"back": "वापस",
|
"back": "वापस",
|
||||||
"back_close_deselect": "वापस जाएँ, बंद करें, या अचयनित करें",
|
"back_close_deselect": "वापस जाएँ, बंद करें, या अचयनित करें",
|
||||||
|
"background_location_permission": "Background location permission",
|
||||||
|
"background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name",
|
||||||
|
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
||||||
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
|
"backup_album_selection_page_assets_scatter": "Assets can scatter across multiple albums. Thus, albums can be included or excluded during the backup process.",
|
||||||
|
"backup_album_selection_page_select_albums": "Select albums",
|
||||||
|
"backup_album_selection_page_selection_info": "Selection Info",
|
||||||
|
"backup_album_selection_page_total_assets": "Total unique assets",
|
||||||
|
"backup_all": "All",
|
||||||
|
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
|
||||||
|
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
|
||||||
|
"backup_background_service_current_upload_notification": "Uploading {}",
|
||||||
|
"backup_background_service_default_notification": "Checking for new assets…",
|
||||||
|
"backup_background_service_error_title": "Backup error",
|
||||||
|
"backup_background_service_in_progress_notification": "Backing up your assets…",
|
||||||
|
"backup_background_service_upload_failure_notification": "Failed to upload {}",
|
||||||
|
"backup_controller_page_albums": "Backup Albums",
|
||||||
|
"backup_controller_page_background_app_refresh_disabled_content": "Enable background app refresh in Settings > General > Background App Refresh in order to use background backup.",
|
||||||
|
"backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
|
||||||
|
"backup_controller_page_background_app_refresh_enable_button_text": "Go to settings",
|
||||||
|
"backup_controller_page_background_battery_info_link": "Show me how",
|
||||||
|
"backup_controller_page_background_battery_info_message": "For the best background backup experience, please disable any battery optimizations restricting background activity for Immich.\n\nSince this is device-specific, please lookup the required information for your device manufacturer.",
|
||||||
|
"backup_controller_page_background_battery_info_ok": "OK",
|
||||||
|
"backup_controller_page_background_battery_info_title": "Battery optimizations",
|
||||||
|
"backup_controller_page_background_charging": "Only while charging",
|
||||||
|
"backup_controller_page_background_configure_error": "Failed to configure the background service",
|
||||||
|
"backup_controller_page_background_delay": "Delay new assets backup: {}",
|
||||||
|
"backup_controller_page_background_description": "Turn on the background service to automatically backup any new assets without needing to open the app",
|
||||||
|
"backup_controller_page_background_is_off": "Automatic background backup is off",
|
||||||
|
"backup_controller_page_background_is_on": "Automatic background backup is on",
|
||||||
|
"backup_controller_page_background_turn_off": "Turn off background service",
|
||||||
|
"backup_controller_page_background_turn_on": "Turn on background service",
|
||||||
|
"backup_controller_page_background_wifi": "Only on WiFi",
|
||||||
|
"backup_controller_page_backup": "Backup",
|
||||||
|
"backup_controller_page_backup_selected": "Selected: ",
|
||||||
|
"backup_controller_page_backup_sub": "Backed up photos and videos",
|
||||||
|
"backup_controller_page_created": "Created on: {}",
|
||||||
|
"backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
|
||||||
|
"backup_controller_page_excluded": "Excluded: ",
|
||||||
|
"backup_controller_page_failed": "Failed ({})",
|
||||||
|
"backup_controller_page_filename": "File name: {} [{}]",
|
||||||
|
"backup_controller_page_id": "ID: {}",
|
||||||
|
"backup_controller_page_info": "Backup Information",
|
||||||
|
"backup_controller_page_none_selected": "None selected",
|
||||||
|
"backup_controller_page_remainder": "Remainder",
|
||||||
|
"backup_controller_page_remainder_sub": "Remaining photos and videos to back up from selection",
|
||||||
|
"backup_controller_page_server_storage": "Server Storage",
|
||||||
|
"backup_controller_page_start_backup": "Start Backup",
|
||||||
|
"backup_controller_page_status_off": "Automatic foreground backup is off",
|
||||||
|
"backup_controller_page_status_on": "Automatic foreground backup is on",
|
||||||
|
"backup_controller_page_storage_format": "{} of {} used",
|
||||||
|
"backup_controller_page_to_backup": "Albums to be backed up",
|
||||||
|
"backup_controller_page_total_sub": "All unique photos and videos from selected albums",
|
||||||
|
"backup_controller_page_turn_off": "Turn off foreground backup",
|
||||||
|
"backup_controller_page_turn_on": "Turn on foreground backup",
|
||||||
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
|
"backup_info_card_assets": "assets",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
|
"backup_options_page_title": "Backup options",
|
||||||
|
"backup_setting_subtitle": "Manage background and foreground upload settings",
|
||||||
"backward": "पिछला",
|
"backward": "पिछला",
|
||||||
"birthdate_saved": "जन्मतिथि सफलतापूर्वक सहेजी गई",
|
"birthdate_saved": "जन्मतिथि सफलतापूर्वक सहेजी गई",
|
||||||
"birthdate_set_description": "जन्मतिथि का उपयोग फोटो के समय इस व्यक्ति की आयु की गणना करने के लिए किया जाता है।",
|
"birthdate_set_description": "जन्मतिथि का उपयोग फोटो के समय इस व्यक्ति की आयु की गणना करने के लिए किया जाता है।",
|
||||||
@@ -356,24 +486,52 @@
|
|||||||
"build": "निर्माण",
|
"build": "निर्माण",
|
||||||
"build_image": "छवि बनाएँ",
|
"build_image": "छवि बनाएँ",
|
||||||
"buy": "इम्मीच खरीदो",
|
"buy": "इम्मीच खरीदो",
|
||||||
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
|
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
|
"cache_settings_duplicated_assets_clear_button": "CLEAR",
|
||||||
|
"cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app",
|
||||||
|
"cache_settings_duplicated_assets_title": "Duplicated Assets ({})",
|
||||||
|
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
||||||
|
"cache_settings_statistics_album": "Library thumbnails",
|
||||||
|
"cache_settings_statistics_assets": "{} assets ({})",
|
||||||
|
"cache_settings_statistics_full": "Full images",
|
||||||
|
"cache_settings_statistics_shared": "Shared album thumbnails",
|
||||||
|
"cache_settings_statistics_thumbnail": "Thumbnails",
|
||||||
|
"cache_settings_statistics_title": "Cache usage",
|
||||||
|
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
|
||||||
|
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
|
||||||
|
"cache_settings_tile_subtitle": "स्थानीय संग्रहण के व्यवहार को नियंत्रित करें",
|
||||||
|
"cache_settings_tile_title": "स्थानीय संग्रहण",
|
||||||
|
"cache_settings_title": "Caching Settings",
|
||||||
"camera": "कैमरा",
|
"camera": "कैमरा",
|
||||||
"camera_brand": "कैमरा ब्रांड",
|
"camera_brand": "कैमरा ब्रांड",
|
||||||
"camera_model": "कैमरा मॉडल",
|
"camera_model": "कैमरा मॉडल",
|
||||||
"cancel": "रद्द करना",
|
"cancel": "रद्द करना",
|
||||||
"cancel_search": "खोज रद्द करें",
|
"cancel_search": "खोज रद्द करें",
|
||||||
|
"canceled": "Canceled",
|
||||||
"cannot_merge_people": "लोगों का विलय नहीं हो सकता",
|
"cannot_merge_people": "लोगों का विलय नहीं हो सकता",
|
||||||
"cannot_undo_this_action": "आप इस क्रिया को पूर्ववत नहीं कर सकते!",
|
"cannot_undo_this_action": "आप इस क्रिया को पूर्ववत नहीं कर सकते!",
|
||||||
"cannot_update_the_description": "विवरण अद्यतन नहीं किया जा सकता",
|
"cannot_update_the_description": "विवरण अद्यतन नहीं किया जा सकता",
|
||||||
"change_date": "बदलाव दिनांक",
|
"change_date": "बदलाव दिनांक",
|
||||||
|
"change_display_order": "Change display order",
|
||||||
"change_expiration_time": "समाप्ति समय बदलें",
|
"change_expiration_time": "समाप्ति समय बदलें",
|
||||||
"change_location": "स्थान बदलें",
|
"change_location": "स्थान बदलें",
|
||||||
"change_name": "नाम परिवर्तन करें",
|
"change_name": "नाम परिवर्तन करें",
|
||||||
"change_name_successfully": "नाम सफलतापूर्वक बदलें",
|
"change_name_successfully": "नाम सफलतापूर्वक बदलें",
|
||||||
"change_password": "पासवर्ड बदलें",
|
"change_password": "पासवर्ड बदलें",
|
||||||
"change_password_description": "यह या तो पहली बार है जब आप सिस्टम में साइन इन कर रहे हैं या आपका पासवर्ड बदलने का अनुरोध किया गया है।",
|
"change_password_description": "यह या तो पहली बार है जब आप सिस्टम में साइन इन कर रहे हैं या आपका पासवर्ड बदलने का अनुरोध किया गया है।",
|
||||||
|
"change_password_form_confirm_password": "Confirm Password",
|
||||||
|
"change_password_form_description": "Hi {name},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
|
||||||
|
"change_password_form_new_password": "New Password",
|
||||||
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
"change_your_password": "अपना पासवर्ड बदलें",
|
"change_your_password": "अपना पासवर्ड बदलें",
|
||||||
"changed_visibility_successfully": "दृश्यता सफलतापूर्वक परिवर्तित",
|
"changed_visibility_successfully": "दृश्यता सफलतापूर्वक परिवर्तित",
|
||||||
"check_all": "सभी चेक करें",
|
"check_all": "सभी चेक करें",
|
||||||
|
"check_corrupt_asset_backup": "Check for corrupt asset backups",
|
||||||
|
"check_corrupt_asset_backup_button": "Perform check",
|
||||||
|
"check_corrupt_asset_backup_description": "Run this check only over Wi-Fi and once all assets have been backed-up. The procedure might take a few minutes.",
|
||||||
"check_logs": "लॉग जांचें",
|
"check_logs": "लॉग जांचें",
|
||||||
"choose_matching_people_to_merge": "मर्ज करने के लिए मिलते-जुलते लोगों को चुनें",
|
"choose_matching_people_to_merge": "मर्ज करने के लिए मिलते-जुलते लोगों को चुनें",
|
||||||
"city": "शहर",
|
"city": "शहर",
|
||||||
@@ -382,6 +540,14 @@
|
|||||||
"clear_all_recent_searches": "सभी हालिया खोजें साफ़ करें",
|
"clear_all_recent_searches": "सभी हालिया खोजें साफ़ करें",
|
||||||
"clear_message": "स्पष्ट संदेश",
|
"clear_message": "स्पष्ट संदेश",
|
||||||
"clear_value": "स्पष्ट मूल्य",
|
"clear_value": "स्पष्ट मूल्य",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"close": "बंद",
|
"close": "बंद",
|
||||||
"collapse": "गिर जाना",
|
"collapse": "गिर जाना",
|
||||||
"collapse_all": "सभी को संकुचित करें",
|
"collapse_all": "सभी को संकुचित करें",
|
||||||
@@ -390,6 +556,9 @@
|
|||||||
"comment_options": "टिप्पणी विकल्प",
|
"comment_options": "टिप्पणी विकल्प",
|
||||||
"comments_and_likes": "टिप्पणियाँ और पसंद",
|
"comments_and_likes": "टिप्पणियाँ और पसंद",
|
||||||
"comments_are_disabled": "टिप्पणियाँ अक्षम हैं",
|
"comments_are_disabled": "टिप्पणियाँ अक्षम हैं",
|
||||||
|
"common_create_new_album": "Create new album",
|
||||||
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
|
"completed": "Completed",
|
||||||
"confirm": "पुष्टि",
|
"confirm": "पुष्टि",
|
||||||
"confirm_admin_password": "एडमिन पासवर्ड की पुष्टि करें",
|
"confirm_admin_password": "एडमिन पासवर्ड की पुष्टि करें",
|
||||||
"confirm_delete_shared_link": "क्या आप वाकई इस साझा लिंक को हटाना चाहते हैं?",
|
"confirm_delete_shared_link": "क्या आप वाकई इस साझा लिंक को हटाना चाहते हैं?",
|
||||||
@@ -397,6 +566,15 @@
|
|||||||
"contain": "समाहित",
|
"contain": "समाहित",
|
||||||
"context": "संदर्भ",
|
"context": "संदर्भ",
|
||||||
"continue": "जारी",
|
"continue": "जारी",
|
||||||
|
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
||||||
|
"control_bottom_app_bar_create_new_album": "Create new album",
|
||||||
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
|
"control_bottom_app_bar_share_link": "Share Link",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
"copied_image_to_clipboard": "छवि को क्लिपबोर्ड पर कॉपी किया गया।",
|
"copied_image_to_clipboard": "छवि को क्लिपबोर्ड पर कॉपी किया गया।",
|
||||||
"copied_to_clipboard": "क्लिपबोर्ड पर नकल!",
|
"copied_to_clipboard": "क्लिपबोर्ड पर नकल!",
|
||||||
"copy_error": "प्रतिलिपि त्रुटि",
|
"copy_error": "प्रतिलिपि त्रुटि",
|
||||||
@@ -411,22 +589,32 @@
|
|||||||
"covers": "आवरण",
|
"covers": "आवरण",
|
||||||
"create": "तैयार करें",
|
"create": "तैयार करें",
|
||||||
"create_album": "एल्बम बनाओ",
|
"create_album": "एल्बम बनाओ",
|
||||||
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_library": "लाइब्रेरी बनाएं",
|
"create_library": "लाइब्रेरी बनाएं",
|
||||||
"create_link": "लिंक बनाएं",
|
"create_link": "लिंक बनाएं",
|
||||||
"create_link_to_share": "शेयर करने के लिए लिंक बनाएं",
|
"create_link_to_share": "शेयर करने के लिए लिंक बनाएं",
|
||||||
"create_link_to_share_description": "लिंक वाले किसी भी व्यक्ति को चयनित फ़ोटो देखने दें",
|
"create_link_to_share_description": "लिंक वाले किसी भी व्यक्ति को चयनित फ़ोटो देखने दें",
|
||||||
|
"create_new": "नया बनाएं",
|
||||||
"create_new_person": "नया व्यक्ति बनाएं",
|
"create_new_person": "नया व्यक्ति बनाएं",
|
||||||
"create_new_person_hint": "चयनित संपत्तियों को एक नए व्यक्ति को सौंपें",
|
"create_new_person_hint": "चयनित संपत्तियों को एक नए व्यक्ति को सौंपें",
|
||||||
"create_new_user": "नया उपयोगकर्ता बनाएं",
|
"create_new_user": "नया उपयोगकर्ता बनाएं",
|
||||||
|
"create_shared_album_page_share_add_assets": "ADD ASSETS",
|
||||||
|
"create_shared_album_page_share_select_photos": "Select Photos",
|
||||||
"create_user": "उपयोगकर्ता बनाइये",
|
"create_user": "उपयोगकर्ता बनाइये",
|
||||||
"created": "बनाया",
|
"created": "बनाया",
|
||||||
|
"crop": "छाँटें",
|
||||||
|
"curated_object_page_title": "Things",
|
||||||
"current_device": "वर्तमान उपकरण",
|
"current_device": "वर्तमान उपकरण",
|
||||||
|
"current_server_address": "Current server address",
|
||||||
"custom_locale": "कस्टम लोकेल",
|
"custom_locale": "कस्टम लोकेल",
|
||||||
"custom_locale_description": "भाषा और क्षेत्र के आधार पर दिनांक और संख्याएँ प्रारूपित करें",
|
"custom_locale_description": "भाषा और क्षेत्र के आधार पर दिनांक और संख्याएँ प्रारूपित करें",
|
||||||
|
"daily_title_text_date": "E, MMM dd",
|
||||||
|
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||||
"dark": "डार्क",
|
"dark": "डार्क",
|
||||||
"date_after": "इसके बाद की तारीख",
|
"date_after": "इसके बाद की तारीख",
|
||||||
"date_and_time": "तिथि और समय",
|
"date_and_time": "तिथि और समय",
|
||||||
"date_before": "पहले की तारीख",
|
"date_before": "पहले की तारीख",
|
||||||
|
"date_format": "E, LLL d, y • h:mm a",
|
||||||
"date_of_birth_saved": "जन्मतिथि सफलतापूर्वक सहेजी गई",
|
"date_of_birth_saved": "जन्मतिथि सफलतापूर्वक सहेजी गई",
|
||||||
"date_range": "तिथि सीमा",
|
"date_range": "तिथि सीमा",
|
||||||
"day": "दिन",
|
"day": "दिन",
|
||||||
@@ -436,14 +624,25 @@
|
|||||||
"delete": "हटाएँ",
|
"delete": "हटाएँ",
|
||||||
"delete_album": "एल्बम हटाएँ",
|
"delete_album": "एल्बम हटाएँ",
|
||||||
"delete_api_key_prompt": "क्या आप वाकई इस एपीआई कुंजी को हटाना चाहते हैं?",
|
"delete_api_key_prompt": "क्या आप वाकई इस एपीआई कुंजी को हटाना चाहते हैं?",
|
||||||
|
"delete_dialog_alert": "These items will be permanently deleted from Immich and from your device",
|
||||||
|
"delete_dialog_alert_local": "These items will be permanently removed from your device but still be available on the Immich server",
|
||||||
|
"delete_dialog_alert_local_non_backed_up": "Some of the items aren't backed up to Immich and will be permanently removed from your device",
|
||||||
|
"delete_dialog_alert_remote": "These items will be permanently deleted from the Immich server",
|
||||||
|
"delete_dialog_ok_force": "Delete Anyway",
|
||||||
|
"delete_dialog_title": "Delete Permanently",
|
||||||
"delete_duplicates_confirmation": "क्या आप वाकई इन डुप्लिकेट को स्थायी रूप से हटाना चाहते हैं?",
|
"delete_duplicates_confirmation": "क्या आप वाकई इन डुप्लिकेट को स्थायी रूप से हटाना चाहते हैं?",
|
||||||
"delete_key": "कुंजी हटाएँ",
|
"delete_key": "कुंजी हटाएँ",
|
||||||
"delete_library": "लाइब्रेरी हटाएँ",
|
"delete_library": "लाइब्रेरी हटाएँ",
|
||||||
"delete_link": "लिंक हटाएँ",
|
"delete_link": "लिंक हटाएँ",
|
||||||
|
"delete_local_dialog_ok_backed_up_only": "Delete Backed Up Only",
|
||||||
|
"delete_local_dialog_ok_force": "Delete Anyway",
|
||||||
"delete_shared_link": "साझा किए गए लिंक को हटाएं",
|
"delete_shared_link": "साझा किए गए लिंक को हटाएं",
|
||||||
|
"delete_shared_link_dialog_title": "साझा किए गए लिंक को हटाएं",
|
||||||
"delete_user": "उपभोक्ता मिटायें",
|
"delete_user": "उपभोक्ता मिटायें",
|
||||||
"deleted_shared_link": "साझा किया गया लिंक हटा दिया गया",
|
"deleted_shared_link": "साझा किया गया लिंक हटा दिया गया",
|
||||||
"description": "वर्णन",
|
"description": "वर्णन",
|
||||||
|
"description_input_hint_text": "Add description...",
|
||||||
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"details": "विवरण",
|
"details": "विवरण",
|
||||||
"direction": "दिशा",
|
"direction": "दिशा",
|
||||||
"disabled": "अक्षम",
|
"disabled": "अक्षम",
|
||||||
@@ -458,9 +657,23 @@
|
|||||||
"do_not_show_again": "इस संदेश को दुबारा मत दिखाना",
|
"do_not_show_again": "इस संदेश को दुबारा मत दिखाना",
|
||||||
"done": "ठीक है",
|
"done": "ठीक है",
|
||||||
"download": "डाउनलोड करें",
|
"download": "डाउनलोड करें",
|
||||||
|
"download_canceled": "डाउनलोड रद्द कर दिया गया",
|
||||||
|
"download_complete": "डाउनलोड पूरा",
|
||||||
|
"download_enqueue": "डाउनलोड कतार में है",
|
||||||
|
"download_error": "डाउनलोड त्रुटि",
|
||||||
|
"download_failed": "डाउनलोड विफल",
|
||||||
|
"download_filename": "फ़ाइल: {}",
|
||||||
|
"download_finished": "डाउनलोड समाप्त",
|
||||||
|
"download_notfound": "डाउनलोड नहीं मिला",
|
||||||
|
"download_paused": "डाउनलोड स्थगित",
|
||||||
"download_settings": "डाउनलोड करना",
|
"download_settings": "डाउनलोड करना",
|
||||||
"download_settings_description": "संपत्ति डाउनलोड से संबंधित सेटिंग्स प्रबंधित करें",
|
"download_settings_description": "संपत्ति डाउनलोड से संबंधित सेटिंग्स प्रबंधित करें",
|
||||||
|
"download_started": "डाउनलोड प्रारंभ हुआ",
|
||||||
|
"download_sucess": "डाउनलोड सफल",
|
||||||
|
"download_sucess_android": "मीडिया DCIM/Immich में डाउनलोड हो गया है",
|
||||||
|
"download_waiting_to_retry": "पुनः प्रयास करने का इंतजार कर रहा है",
|
||||||
"downloading": "डाउनलोड",
|
"downloading": "डाउनलोड",
|
||||||
|
"downloading_media": "मीडिया डाउनलोड हो रहा है",
|
||||||
"drop_files_to_upload": "अपलोड करने के लिए फ़ाइलें कहीं भी छोड़ें",
|
"drop_files_to_upload": "अपलोड करने के लिए फ़ाइलें कहीं भी छोड़ें",
|
||||||
"duplicates": "डुप्लिकेट",
|
"duplicates": "डुप्लिकेट",
|
||||||
"duplicates_description": "प्रत्येक समूह को यह इंगित करके हल करें कि कौन सा, यदि कोई है, डुप्लिकेट है",
|
"duplicates_description": "प्रत्येक समूह को यह इंगित करके हल करें कि कौन सा, यदि कोई है, डुप्लिकेट है",
|
||||||
@@ -477,6 +690,7 @@
|
|||||||
"edit_key": "कुंजी संपादित करें",
|
"edit_key": "कुंजी संपादित करें",
|
||||||
"edit_link": "लिंक संपादित करें",
|
"edit_link": "लिंक संपादित करें",
|
||||||
"edit_location": "स्थान संपादित करें",
|
"edit_location": "स्थान संपादित करें",
|
||||||
|
"edit_location_dialog_title": "Location",
|
||||||
"edit_name": "नाम संपादित करें",
|
"edit_name": "नाम संपादित करें",
|
||||||
"edit_people": "लोगों को संपादित करें",
|
"edit_people": "लोगों को संपादित करें",
|
||||||
"edit_title": "शीर्षक संपादित करें",
|
"edit_title": "शीर्षक संपादित करें",
|
||||||
@@ -484,13 +698,18 @@
|
|||||||
"edited": "संपादित",
|
"edited": "संपादित",
|
||||||
"editor": "",
|
"editor": "",
|
||||||
"email": "ईमेल",
|
"email": "ईमेल",
|
||||||
|
"empty_folder": "This folder is empty",
|
||||||
"empty_trash": "कूड़ेदान खाली करें",
|
"empty_trash": "कूड़ेदान खाली करें",
|
||||||
"empty_trash_confirmation": "क्या आपको यकीन है कि आप कचरा खाली करना चाहते हैं? यह इमिच से स्थायी रूप से कचरा में सभी संपत्तियों को हटा देगा।\nआप इस कार्रवाई को नहीं रोक सकते!",
|
"empty_trash_confirmation": "क्या आपको यकीन है कि आप कचरा खाली करना चाहते हैं? यह इमिच से स्थायी रूप से कचरा में सभी संपत्तियों को हटा देगा।\nआप इस कार्रवाई को नहीं रोक सकते!",
|
||||||
"enable": "सक्षम",
|
"enable": "सक्षम",
|
||||||
"enabled": "सक्रिय",
|
"enabled": "सक्रिय",
|
||||||
"end_date": "अंतिम तिथि",
|
"end_date": "अंतिम तिथि",
|
||||||
|
"enqueued": "Enqueued",
|
||||||
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
"error": "गलती",
|
"error": "गलती",
|
||||||
|
"error_change_sort_album": "Failed to change album sort order",
|
||||||
"error_loading_image": "छवि लोड करने में त्रुटि",
|
"error_loading_image": "छवि लोड करने में त्रुटि",
|
||||||
|
"error_saving_image": "त्रुटि: {}",
|
||||||
"error_title": "त्रुटि - कुछ गलत हो गया",
|
"error_title": "त्रुटि - कुछ गलत हो गया",
|
||||||
"errors": {
|
"errors": {
|
||||||
"cannot_navigate_next_asset": "अगली संपत्ति पर नेविगेट नहीं किया जा सकता",
|
"cannot_navigate_next_asset": "अगली संपत्ति पर नेविगेट नहीं किया जा सकता",
|
||||||
@@ -604,8 +823,21 @@
|
|||||||
"unable_to_upload_file": "फाइल अपलोड करने में असमर्थ"
|
"unable_to_upload_file": "फाइल अपलोड करने में असमर्थ"
|
||||||
},
|
},
|
||||||
"exif": "एक्सिफ",
|
"exif": "एक्सिफ",
|
||||||
|
"exif_bottom_sheet_description": "Add Description...",
|
||||||
|
"exif_bottom_sheet_details": "DETAILS",
|
||||||
|
"exif_bottom_sheet_location": "LOCATION",
|
||||||
|
"exif_bottom_sheet_people": "PEOPLE",
|
||||||
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
|
"exif_bottom_sheet_person_age": "Age {}",
|
||||||
|
"exif_bottom_sheet_person_age_months": "Age {} months",
|
||||||
|
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
||||||
|
"exif_bottom_sheet_person_age_years": "Age {}",
|
||||||
"exit_slideshow": "स्लाइड शो से बाहर निकलें",
|
"exit_slideshow": "स्लाइड शो से बाहर निकलें",
|
||||||
"expand_all": "सभी का विस्तार",
|
"expand_all": "सभी का विस्तार",
|
||||||
|
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
||||||
|
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
||||||
|
"experimental_settings_subtitle": "Use at your own risk!",
|
||||||
|
"experimental_settings_title": "Experimental",
|
||||||
"expire_after": "एक्सपायर आफ्टर",
|
"expire_after": "एक्सपायर आफ्टर",
|
||||||
"expired": "खत्म हो चुका",
|
"expired": "खत्म हो चुका",
|
||||||
"explore": "अन्वेषण करना",
|
"explore": "अन्वेषण करना",
|
||||||
@@ -614,37 +846,77 @@
|
|||||||
"extension": "विस्तार",
|
"extension": "विस्तार",
|
||||||
"external": "बाहरी",
|
"external": "बाहरी",
|
||||||
"external_libraries": "बाहरी पुस्तकालय",
|
"external_libraries": "बाहरी पुस्तकालय",
|
||||||
|
"external_network": "External network",
|
||||||
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"face_unassigned": "सौंपे नहीं गए",
|
"face_unassigned": "सौंपे नहीं गए",
|
||||||
|
"failed": "Failed",
|
||||||
|
"failed_to_load_assets": "Failed to load assets",
|
||||||
|
"failed_to_load_folder": "Failed to load folder",
|
||||||
"favorite": "पसंदीदा",
|
"favorite": "पसंदीदा",
|
||||||
"favorite_or_unfavorite_photo": "पसंदीदा या नापसंद फोटो",
|
"favorite_or_unfavorite_photo": "पसंदीदा या नापसंद फोटो",
|
||||||
"favorites": "पसंदीदा",
|
"favorites": "पसंदीदा",
|
||||||
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"feature_photo_updated": "फ़ीचर फ़ोटो अपडेट किया गया",
|
"feature_photo_updated": "फ़ीचर फ़ोटो अपडेट किया गया",
|
||||||
"file_name": "फ़ाइल का नाम",
|
"file_name": "फ़ाइल का नाम",
|
||||||
"file_name_or_extension": "फ़ाइल का नाम या एक्सटेंशन",
|
"file_name_or_extension": "फ़ाइल का नाम या एक्सटेंशन",
|
||||||
"filename": "फ़ाइल का नाम",
|
"filename": "फ़ाइल का नाम",
|
||||||
"filetype": "फाइल का प्रकार",
|
"filetype": "फाइल का प्रकार",
|
||||||
|
"filter": "फ़िल्टर",
|
||||||
"filter_people": "लोगों को फ़िल्टर करें",
|
"filter_people": "लोगों को फ़िल्टर करें",
|
||||||
"find_them_fast": "खोज के साथ नाम से उन्हें तेजी से ढूंढें",
|
"find_them_fast": "खोज के साथ नाम से उन्हें तेजी से ढूंढें",
|
||||||
"fix_incorrect_match": "ग़लत मिलान ठीक करें",
|
"fix_incorrect_match": "ग़लत मिलान ठीक करें",
|
||||||
|
"folder": "Folder",
|
||||||
|
"folder_not_found": "Folder not found",
|
||||||
|
"folders": "Folders",
|
||||||
"forward": "आगे",
|
"forward": "आगे",
|
||||||
"general": "सामान्य",
|
"general": "सामान्य",
|
||||||
"get_help": "मदद लें",
|
"get_help": "मदद लें",
|
||||||
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"getting_started": "शुरू करना",
|
"getting_started": "शुरू करना",
|
||||||
"go_back": "वापस जाओ",
|
"go_back": "वापस जाओ",
|
||||||
"go_to_search": "खोज पर जाएँ",
|
"go_to_search": "खोज पर जाएँ",
|
||||||
|
"grant_permission": "Grant permission",
|
||||||
"group_albums_by": "इनके द्वारा समूह एल्बम..।",
|
"group_albums_by": "इनके द्वारा समूह एल्बम..।",
|
||||||
"group_no": "कोई समूहीकरण नहीं",
|
"group_no": "कोई समूहीकरण नहीं",
|
||||||
"group_owner": "स्वामी द्वारा समूह",
|
"group_owner": "स्वामी द्वारा समूह",
|
||||||
"group_year": "वर्ष के अनुसार समूह",
|
"group_year": "वर्ष के अनुसार समूह",
|
||||||
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"has_quota": "कोटा है",
|
"has_quota": "कोटा है",
|
||||||
|
"header_settings_add_header_tip": "Add Header",
|
||||||
|
"header_settings_field_validator_msg": "Value cannot be empty",
|
||||||
|
"header_settings_header_name_input": "Header name",
|
||||||
|
"header_settings_header_value_input": "Header value",
|
||||||
|
"headers_settings_tile_subtitle": "Define proxy headers the app should send with each network request",
|
||||||
|
"headers_settings_tile_title": "Custom proxy headers",
|
||||||
"hide_all_people": "सभी लोगों को छुपाएं",
|
"hide_all_people": "सभी लोगों को छुपाएं",
|
||||||
"hide_gallery": "गैलरी छिपाएँ",
|
"hide_gallery": "गैलरी छिपाएँ",
|
||||||
"hide_password": "पासवर्ड छिपाएं",
|
"hide_password": "पासवर्ड छिपाएं",
|
||||||
"hide_person": "व्यक्ति छिपाएँ",
|
"hide_person": "व्यक्ति छिपाएँ",
|
||||||
"hide_unnamed_people": "अनाम लोगों को छुपाएं",
|
"hide_unnamed_people": "अनाम लोगों को छुपाएं",
|
||||||
|
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
|
||||||
|
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
|
||||||
|
"home_page_add_to_album_success": "Added {added} assets to album {album}.",
|
||||||
|
"home_page_album_err_partner": "अब तक पार्टनर एसेट्स को एल्बम में जोड़ा नहीं कर सकते, स्किप कर रहे हैं",
|
||||||
|
"home_page_archive_err_local": "Can not archive local assets yet, skipping",
|
||||||
|
"home_page_archive_err_partner": "पार्टनर एसेट्स को आर्काइव नहीं कर सकते, स्किप कर रहे हैं",
|
||||||
|
"home_page_building_timeline": "Building the timeline",
|
||||||
|
"home_page_delete_err_partner": "पार्टनर एसेट्स को डिलीट नहीं कर सकते, स्किप कर रहे हैं",
|
||||||
|
"home_page_delete_remote_err_local": "Local assets in delete remote selection, skipping",
|
||||||
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
|
"home_page_favorite_err_partner": "अब तक पार्टनर एसेट्स को फेवरेट नहीं कर सकते, स्किप कर रहे हैं",
|
||||||
|
"home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
|
||||||
|
"home_page_share_err_local": "लोकल एसेट्स को लिंक के जरिए शेयर नहीं कर सकते, स्किप कर रहे हैं",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"host": "मेज़बान",
|
"host": "मेज़बान",
|
||||||
"hour": "घंटा",
|
"hour": "घंटा",
|
||||||
|
"ignore_icloud_photos": "आइक्लाउड फ़ोटो को अनदेखा करें",
|
||||||
|
"ignore_icloud_photos_description": "आइक्लाउड पर स्टोर की गई फ़ोटोज़ इमिच सर्वर पर अपलोड नहीं की जाएंगी",
|
||||||
"image": "छवि",
|
"image": "छवि",
|
||||||
|
"image_saved_successfully": "इमेज सहेज दी गई",
|
||||||
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"immich_logo": "Immich लोगो",
|
"immich_logo": "Immich लोगो",
|
||||||
"immich_web_interface": "इमिच वेब इंटरफ़ेस",
|
"immich_web_interface": "इमिच वेब इंटरफ़ेस",
|
||||||
"import_from_json": "JSON से आयात करें",
|
"import_from_json": "JSON से आयात करें",
|
||||||
@@ -661,6 +933,8 @@
|
|||||||
"night_at_midnight": "हर रात आधी रात को",
|
"night_at_midnight": "हर रात आधी रात को",
|
||||||
"night_at_twoam": "हर रात 2 बजे"
|
"night_at_twoam": "हर रात 2 बजे"
|
||||||
},
|
},
|
||||||
|
"invalid_date": "अमान्य तारीख़",
|
||||||
|
"invalid_date_format": "अमान्य तारीख़ प्रारूप",
|
||||||
"invite_people": "लोगो को निमंत्रण भेजो",
|
"invite_people": "लोगो को निमंत्रण भेजो",
|
||||||
"invite_to_album": "एल्बम के लिए आमंत्रित करें",
|
"invite_to_album": "एल्बम के लिए आमंत्रित करें",
|
||||||
"jobs": "नौकरियां",
|
"jobs": "नौकरियां",
|
||||||
@@ -677,6 +951,12 @@
|
|||||||
"level": "स्तर",
|
"level": "स्तर",
|
||||||
"library": "पुस्तकालय",
|
"library": "पुस्तकालय",
|
||||||
"library_options": "पुस्तकालय विकल्प",
|
"library_options": "पुस्तकालय विकल्प",
|
||||||
|
"library_page_device_albums": "Albums on Device",
|
||||||
|
"library_page_new_album": "New album",
|
||||||
|
"library_page_sort_asset_count": "Number of assets",
|
||||||
|
"library_page_sort_created": "Created date",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_title": "Album title",
|
||||||
"light": "रोशनी",
|
"light": "रोशनी",
|
||||||
"like_deleted": "जैसे हटा दिया गया",
|
"like_deleted": "जैसे हटा दिया गया",
|
||||||
"link_options": "लिंक विकल्प",
|
"link_options": "लिंक विकल्प",
|
||||||
@@ -685,12 +965,42 @@
|
|||||||
"list": "सूची",
|
"list": "सूची",
|
||||||
"loading": "लोड हो रहा है",
|
"loading": "लोड हो रहा है",
|
||||||
"loading_search_results_failed": "खोज परिणाम लोड करना विफल रहा",
|
"loading_search_results_failed": "खोज परिणाम लोड करना विफल रहा",
|
||||||
|
"local_network": "Local network",
|
||||||
|
"local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
|
||||||
|
"location_permission": "Location permission",
|
||||||
|
"location_permission_content": "In order to use the auto-switching feature, Immich needs precise location permission so it can read the current WiFi network's name",
|
||||||
|
"location_picker_choose_on_map": "Choose on map",
|
||||||
|
"location_picker_latitude_error": "Enter a valid latitude",
|
||||||
|
"location_picker_latitude_hint": "Enter your latitude here",
|
||||||
|
"location_picker_longitude_error": "Enter a valid longitude",
|
||||||
|
"location_picker_longitude_hint": "Enter your longitude here",
|
||||||
"log_out": "लॉग आउट",
|
"log_out": "लॉग आउट",
|
||||||
"log_out_all_devices": "सभी डिवाइस लॉग आउट करें",
|
"log_out_all_devices": "सभी डिवाइस लॉग आउट करें",
|
||||||
"logged_out_all_devices": "सभी डिवाइस लॉग आउट कर दिए गए",
|
"logged_out_all_devices": "सभी डिवाइस लॉग आउट कर दिए गए",
|
||||||
"logged_out_device": "लॉग आउट डिवाइस",
|
"logged_out_device": "लॉग आउट डिवाइस",
|
||||||
"login": "लॉग इन करें",
|
"login": "लॉग इन करें",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
"login_form_back_button_text": "Back",
|
||||||
|
"login_form_email_hint": "youremail@email.com",
|
||||||
|
"login_form_endpoint_hint": "http://your-server-ip:port",
|
||||||
|
"login_form_endpoint_url": "Server Endpoint URL",
|
||||||
|
"login_form_err_http": "Please specify http:// or https://",
|
||||||
|
"login_form_err_invalid_email": "Invalid Email",
|
||||||
|
"login_form_err_invalid_url": "Invalid URL",
|
||||||
|
"login_form_err_leading_whitespace": "Leading whitespace",
|
||||||
|
"login_form_err_trailing_whitespace": "Trailing whitespace",
|
||||||
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
|
"login_form_password_hint": "password",
|
||||||
|
"login_form_save_login": "Stay logged in",
|
||||||
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
|
"login_form_server_error": "Could not connect to server.",
|
||||||
"login_has_been_disabled": "लॉगिन अक्षम कर दिया गया है।",
|
"login_has_been_disabled": "लॉगिन अक्षम कर दिया गया है।",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
"logout_all_device_confirmation": "क्या आप वाकई सभी डिवाइस से लॉग आउट करना चाहते हैं?",
|
"logout_all_device_confirmation": "क्या आप वाकई सभी डिवाइस से लॉग आउट करना चाहते हैं?",
|
||||||
"logout_this_device_confirmation": "क्या आप वाकई इस डिवाइस को लॉग आउट करना चाहते हैं?",
|
"logout_this_device_confirmation": "क्या आप वाकई इस डिवाइस को लॉग आउट करना चाहते हैं?",
|
||||||
"longitude": "देशान्तर",
|
"longitude": "देशान्तर",
|
||||||
@@ -706,12 +1016,39 @@
|
|||||||
"manage_your_devices": "अपने लॉग-इन डिवाइस प्रबंधित करें",
|
"manage_your_devices": "अपने लॉग-इन डिवाइस प्रबंधित करें",
|
||||||
"manage_your_oauth_connection": "अपना OAuth कनेक्शन प्रबंधित करें",
|
"manage_your_oauth_connection": "अपना OAuth कनेक्शन प्रबंधित करें",
|
||||||
"map": "नक्शा",
|
"map": "नक्शा",
|
||||||
|
"map_assets_in_bound": "{} photo",
|
||||||
|
"map_assets_in_bounds": "{} photos",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_picker_page_use_location": "Use this location",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
"map_marker_with_image": "छवि के साथ मानचित्र मार्कर",
|
"map_marker_with_image": "छवि के साथ मानचित्र मार्कर",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
"map_settings": "मानचित्र सेटिंग",
|
"map_settings": "मानचित्र सेटिंग",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_date_range_option_day": "Past 24 hours",
|
||||||
|
"map_settings_date_range_option_days": "Past {} days",
|
||||||
|
"map_settings_date_range_option_year": "Past year",
|
||||||
|
"map_settings_date_range_option_years": "Past {} years",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_include_show_partners": "Include Partners",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_settings_theme_settings": "Map Theme",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"matches": "माचिस",
|
"matches": "माचिस",
|
||||||
"media_type": "मीडिया प्रकार",
|
"media_type": "मीडिया प्रकार",
|
||||||
"memories": "यादें",
|
"memories": "यादें",
|
||||||
|
"memories_all_caught_up": "All caught up",
|
||||||
|
"memories_check_back_tomorrow": "Check back tomorrow for more memories",
|
||||||
"memories_setting_description": "आप अपनी यादों में जो देखते हैं उसे प्रबंधित करें",
|
"memories_setting_description": "आप अपनी यादों में जो देखते हैं उसे प्रबंधित करें",
|
||||||
|
"memories_start_over": "Start Over",
|
||||||
|
"memories_swipe_to_close": "Swipe up to close",
|
||||||
|
"memories_year_ago": "A year ago",
|
||||||
|
"memories_years_ago": "{} years ago",
|
||||||
"memory": "याद",
|
"memory": "याद",
|
||||||
"menu": "मेन्यू",
|
"menu": "मेन्यू",
|
||||||
"merge": "मर्ज",
|
"merge": "मर्ज",
|
||||||
@@ -724,11 +1061,16 @@
|
|||||||
"missing": "गुम",
|
"missing": "गुम",
|
||||||
"model": "मॉडल",
|
"model": "मॉडल",
|
||||||
"month": "महीना",
|
"month": "महीना",
|
||||||
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"more": "अधिक",
|
"more": "अधिक",
|
||||||
"moved_to_trash": "कूड़ेदान में ले जाया गया",
|
"moved_to_trash": "कूड़ेदान में ले जाया गया",
|
||||||
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"my_albums": "मेरे एल्बम",
|
"my_albums": "मेरे एल्बम",
|
||||||
"name": "नाम",
|
"name": "नाम",
|
||||||
"name_or_nickname": "नाम या उपनाम",
|
"name_or_nickname": "नाम या उपनाम",
|
||||||
|
"networking_settings": "Networking",
|
||||||
|
"networking_subtitle": "Manage the server endpoint settings",
|
||||||
"never": "कभी नहीं",
|
"never": "कभी नहीं",
|
||||||
"new_album": "नयी एल्बम",
|
"new_album": "नयी एल्बम",
|
||||||
"new_api_key": "नई एपीआई कुंजी",
|
"new_api_key": "नई एपीआई कुंजी",
|
||||||
@@ -745,6 +1087,7 @@
|
|||||||
"no_albums_yet": "ऐसा लगता है कि आपके पास अभी तक कोई एल्बम नहीं है।",
|
"no_albums_yet": "ऐसा लगता है कि आपके पास अभी तक कोई एल्बम नहीं है।",
|
||||||
"no_archived_assets_message": "फ़ोटो और वीडियो को अपने फ़ोटो दृश्य से छिपाने के लिए उन्हें संग्रहीत करें",
|
"no_archived_assets_message": "फ़ोटो और वीडियो को अपने फ़ोटो दृश्य से छिपाने के लिए उन्हें संग्रहीत करें",
|
||||||
"no_assets_message": "अपना पहला फोटो अपलोड करने के लिए क्लिक करें",
|
"no_assets_message": "अपना पहला फोटो अपलोड करने के लिए क्लिक करें",
|
||||||
|
"no_assets_to_show": "No assets to show",
|
||||||
"no_duplicates_found": "कोई नकलची नहीं मिला।",
|
"no_duplicates_found": "कोई नकलची नहीं मिला।",
|
||||||
"no_exif_info_available": "कोई एक्सिफ़ जानकारी उपलब्ध नहीं है",
|
"no_exif_info_available": "कोई एक्सिफ़ जानकारी उपलब्ध नहीं है",
|
||||||
"no_explore_results_message": "अपने संग्रह का पता लगाने के लिए और फ़ोटो अपलोड करें।",
|
"no_explore_results_message": "अपने संग्रह का पता लगाने के लिए और फ़ोटो अपलोड करें।",
|
||||||
@@ -756,9 +1099,13 @@
|
|||||||
"no_results_description": "कोई पर्यायवाची या अधिक सामान्य कीवर्ड आज़माएँ",
|
"no_results_description": "कोई पर्यायवाची या अधिक सामान्य कीवर्ड आज़माएँ",
|
||||||
"no_shared_albums_message": "अपने नेटवर्क में लोगों के साथ फ़ोटो और वीडियो साझा करने के लिए एक एल्बम बनाएं",
|
"no_shared_albums_message": "अपने नेटवर्क में लोगों के साथ फ़ोटो और वीडियो साझा करने के लिए एक एल्बम बनाएं",
|
||||||
"not_in_any_album": "किसी एलबम में नहीं",
|
"not_in_any_album": "किसी एलबम में नहीं",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"note_apply_storage_label_to_previously_uploaded assets": "नोट: पहले अपलोड की गई संपत्तियों पर स्टोरेज लेबल लागू करने के लिए, चलाएँ",
|
"note_apply_storage_label_to_previously_uploaded assets": "नोट: पहले अपलोड की गई संपत्तियों पर स्टोरेज लेबल लागू करने के लिए, चलाएँ",
|
||||||
"note_unlimited_quota": "नोट: असीमित कोटा के लिए 0 दर्ज करें",
|
|
||||||
"notes": "टिप्पणियाँ",
|
"notes": "टिप्पणियाँ",
|
||||||
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
|
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
||||||
|
"notification_permission_list_tile_enable_button": "Enable Notifications",
|
||||||
|
"notification_permission_list_tile_title": "Notification Permission",
|
||||||
"notification_toggle_setting_description": "ईमेल सूचनाएं सक्षम करें",
|
"notification_toggle_setting_description": "ईमेल सूचनाएं सक्षम करें",
|
||||||
"notifications": "सूचनाएं",
|
"notifications": "सूचनाएं",
|
||||||
"notifications_setting_description": "सूचनाएं प्रबंधित करें",
|
"notifications_setting_description": "सूचनाएं प्रबंधित करें",
|
||||||
@@ -768,6 +1115,7 @@
|
|||||||
"offline_paths_description": "ये परिणाम उन फ़ाइलों को मैन्युअल रूप से हटाने के कारण हो सकते हैं जो बाहरी लाइब्रेरी का हिस्सा नहीं हैं।",
|
"offline_paths_description": "ये परिणाम उन फ़ाइलों को मैन्युअल रूप से हटाने के कारण हो सकते हैं जो बाहरी लाइब्रेरी का हिस्सा नहीं हैं।",
|
||||||
"ok": "ठीक है",
|
"ok": "ठीक है",
|
||||||
"oldest_first": "सबसे पुराना पहले",
|
"oldest_first": "सबसे पुराना पहले",
|
||||||
|
"on_this_device": "इस डिवाइस पर",
|
||||||
"onboarding": "ज्ञानप्राप्ति",
|
"onboarding": "ज्ञानप्राप्ति",
|
||||||
"onboarding_theme_description": "अपने उदाहरण के लिए एक रंग थीम चुनें।",
|
"onboarding_theme_description": "अपने उदाहरण के लिए एक रंग थीम चुनें।",
|
||||||
"onboarding_welcome_description": "आइए कुछ सामान्य सेटिंग्स के साथ अपना इंस्टेंस सेट अप करें।",
|
"onboarding_welcome_description": "आइए कुछ सामान्य सेटिंग्स के साथ अपना इंस्टेंस सेट अप करें।",
|
||||||
@@ -787,6 +1135,14 @@
|
|||||||
"partner": "साथी",
|
"partner": "साथी",
|
||||||
"partner_can_access_assets": "संग्रहीत और हटाए गए को छोड़कर आपके सभी फ़ोटो और वीडियो",
|
"partner_can_access_assets": "संग्रहीत और हटाए गए को छोड़कर आपके सभी फ़ोटो और वीडियो",
|
||||||
"partner_can_access_location": "वह स्थान जहां आपकी तस्वीरें ली गईं थीं",
|
"partner_can_access_location": "वह स्थान जहां आपकी तस्वीरें ली गईं थीं",
|
||||||
|
"partner_list_user_photos": "{user}'s photos",
|
||||||
|
"partner_list_view_all": "View all",
|
||||||
|
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
||||||
|
"partner_page_no_more_users": "No more users to add",
|
||||||
|
"partner_page_partner_add_failed": "Failed to add partner",
|
||||||
|
"partner_page_select_partner": "Select partner",
|
||||||
|
"partner_page_shared_to_title": "Shared to",
|
||||||
|
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
||||||
"partner_sharing": "पार्टनर शेयरिंग",
|
"partner_sharing": "पार्टनर शेयरिंग",
|
||||||
"partners": "भागीदारों",
|
"partners": "भागीदारों",
|
||||||
"password": "पासवर्ड",
|
"password": "पासवर्ड",
|
||||||
@@ -810,6 +1166,14 @@
|
|||||||
"permanent_deletion_warning_setting_description": "संपत्तियों को स्थायी रूप से हटाते समय एक चेतावनी दिखाएं",
|
"permanent_deletion_warning_setting_description": "संपत्तियों को स्थायी रूप से हटाते समय एक चेतावनी दिखाएं",
|
||||||
"permanently_delete": "स्थायी रूप से हटाना",
|
"permanently_delete": "स्थायी रूप से हटाना",
|
||||||
"permanently_deleted_asset": "स्थायी रूप से हटाई गई संपत्ति",
|
"permanently_deleted_asset": "स्थायी रूप से हटाई गई संपत्ति",
|
||||||
|
"permission_onboarding_back": "वापस",
|
||||||
|
"permission_onboarding_continue_anyway": "Continue anyway",
|
||||||
|
"permission_onboarding_get_started": "Get started",
|
||||||
|
"permission_onboarding_go_to_settings": "Go to settings",
|
||||||
|
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
||||||
|
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
||||||
|
"permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
|
||||||
|
"permission_onboarding_request": "Immich requires permission to view your photos and videos.",
|
||||||
"person": "व्यक्ति",
|
"person": "व्यक्ति",
|
||||||
"photo_shared_all_users": "ऐसा लगता है कि आपने अपनी तस्वीरें सभी उपयोगकर्ताओं के साथ साझा कीं या आपके पास साझा करने के लिए कोई उपयोगकर्ता नहीं है।",
|
"photo_shared_all_users": "ऐसा लगता है कि आपने अपनी तस्वीरें सभी उपयोगकर्ताओं के साथ साझा कीं या आपके पास साझा करने के लिए कोई उपयोगकर्ता नहीं है।",
|
||||||
"photos": "तस्वीरें",
|
"photos": "तस्वीरें",
|
||||||
@@ -823,12 +1187,21 @@
|
|||||||
"play_motion_photo": "मोशन फ़ोटो चलाएं",
|
"play_motion_photo": "मोशन फ़ोटो चलाएं",
|
||||||
"play_or_pause_video": "वीडियो चलाएं या रोकें",
|
"play_or_pause_video": "वीडियो चलाएं या रोकें",
|
||||||
"port": "पत्तन",
|
"port": "पत्तन",
|
||||||
|
"preferences_settings_subtitle": "Manage the app's preferences",
|
||||||
|
"preferences_settings_title": "Preferences",
|
||||||
"preset": "प्रीसेट",
|
"preset": "प्रीसेट",
|
||||||
"preview": "पूर्व दर्शन",
|
"preview": "पूर्व दर्शन",
|
||||||
"previous": "पहले का",
|
"previous": "पहले का",
|
||||||
"previous_memory": "पिछली स्मृति",
|
"previous_memory": "पिछली स्मृति",
|
||||||
"previous_or_next_photo": "पिछला या अगला फ़ोटो",
|
"previous_or_next_photo": "पिछला या अगला फ़ोटो",
|
||||||
"primary": "प्राथमिक",
|
"primary": "प्राथमिक",
|
||||||
|
"profile_drawer_app_logs": "Logs",
|
||||||
|
"profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.",
|
||||||
|
"profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.",
|
||||||
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
|
"profile_drawer_github": "गिटहब",
|
||||||
|
"profile_drawer_server_out_of_date_major": "Server is out of date. Please update to the latest major version.",
|
||||||
|
"profile_drawer_server_out_of_date_minor": "Server is out of date. Please update to the latest minor version.",
|
||||||
"profile_picture_set": "प्रोफ़ाइल चित्र सेट।",
|
"profile_picture_set": "प्रोफ़ाइल चित्र सेट।",
|
||||||
"public_album": "सार्वजनिक एल्बम",
|
"public_album": "सार्वजनिक एल्बम",
|
||||||
"public_share": "सार्वजनिक शेयर",
|
"public_share": "सार्वजनिक शेयर",
|
||||||
@@ -869,6 +1242,8 @@
|
|||||||
"reassing_hint": "चयनित संपत्तियों को किसी मौजूदा व्यक्ति को सौंपें",
|
"reassing_hint": "चयनित संपत्तियों को किसी मौजूदा व्यक्ति को सौंपें",
|
||||||
"recent": "हाल ही का",
|
"recent": "हाल ही का",
|
||||||
"recent_searches": "हाल की खोजें",
|
"recent_searches": "हाल की खोजें",
|
||||||
|
"recently_added": "हाल ही में जोड़ा गया",
|
||||||
|
"recently_added_page_title": "Recently Added",
|
||||||
"refresh": "ताज़ा करना",
|
"refresh": "ताज़ा करना",
|
||||||
"refresh_encoded_videos": "एन्कोडेड वीडियो ताज़ा करें",
|
"refresh_encoded_videos": "एन्कोडेड वीडियो ताज़ा करें",
|
||||||
"refresh_metadata": "मेटाडेटा ताज़ा करें",
|
"refresh_metadata": "मेटाडेटा ताज़ा करें",
|
||||||
@@ -912,10 +1287,12 @@
|
|||||||
"role_editor": "संपादक",
|
"role_editor": "संपादक",
|
||||||
"role_viewer": "दर्शक",
|
"role_viewer": "दर्शक",
|
||||||
"save": "बचाना",
|
"save": "बचाना",
|
||||||
|
"save_to_gallery": "गैलरी में सहेजें",
|
||||||
"saved_api_key": "सहेजी गई एपीआई कुंजी",
|
"saved_api_key": "सहेजी गई एपीआई कुंजी",
|
||||||
"saved_profile": "प्रोफ़ाइल सहेजी गई",
|
"saved_profile": "प्रोफ़ाइल सहेजी गई",
|
||||||
"saved_settings": "सहेजी गई सेटिंग्स",
|
"saved_settings": "सहेजी गई सेटिंग्स",
|
||||||
"say_something": "कुछ कहें",
|
"say_something": "कुछ कहें",
|
||||||
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"scan_all_libraries": "सभी पुस्तकालयों को स्कैन करें",
|
"scan_all_libraries": "सभी पुस्तकालयों को स्कैन करें",
|
||||||
"scan_settings": "सेटिंग्स स्कैन करें",
|
"scan_settings": "सेटिंग्स स्कैन करें",
|
||||||
"scanning_for_album": "एल्बम के लिए स्कैन किया जा रहा है..।",
|
"scanning_for_album": "एल्बम के लिए स्कैन किया जा रहा है..।",
|
||||||
@@ -928,11 +1305,40 @@
|
|||||||
"search_camera_model": "कैमरा मॉडल खोजें..।",
|
"search_camera_model": "कैमरा मॉडल खोजें..।",
|
||||||
"search_city": "शहर खोजें..।",
|
"search_city": "शहर खोजें..।",
|
||||||
"search_country": "देश खोजें..।",
|
"search_country": "देश खोजें..।",
|
||||||
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera_title": "कैमरा प्रकार चुनें",
|
||||||
|
"search_filter_date": "तारीख़",
|
||||||
|
"search_filter_date_interval": "{start} से {end} तक",
|
||||||
|
"search_filter_date_title": "तारीख़ की सीमा चुनें",
|
||||||
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "प्रदर्शन विकल्प",
|
||||||
|
"search_filter_filename": "Search by file name",
|
||||||
|
"search_filter_location": "स्थान",
|
||||||
|
"search_filter_location_title": "स्थान चुनें",
|
||||||
|
"search_filter_media_type": "मीडिया प्रकार",
|
||||||
|
"search_filter_media_type_title": "मीडिया प्रकार चुनें",
|
||||||
|
"search_filter_people_title": "लोगों का चयन करें",
|
||||||
"search_for_existing_person": "मौजूदा व्यक्ति को खोजें",
|
"search_for_existing_person": "मौजूदा व्यक्ति को खोजें",
|
||||||
|
"search_no_more_result": "No more results",
|
||||||
"search_no_people": "कोई लोग नहीं",
|
"search_no_people": "कोई लोग नहीं",
|
||||||
|
"search_no_result": "No results found, try a different search term or combination",
|
||||||
|
"search_page_categories": "Categories",
|
||||||
|
"search_page_motion_photos": "Motion Photos",
|
||||||
|
"search_page_no_objects": "No Objects Info Available",
|
||||||
|
"search_page_no_places": "No Places Info Available",
|
||||||
|
"search_page_screenshots": "Screenshots",
|
||||||
|
"search_page_search_photos_videos": "Search for your photos and videos",
|
||||||
|
"search_page_selfies": "Selfies",
|
||||||
|
"search_page_things": "Things",
|
||||||
|
"search_page_view_all_button": "View all",
|
||||||
|
"search_page_your_activity": "Your activity",
|
||||||
|
"search_page_your_map": "Your Map",
|
||||||
"search_people": "लोगों को खोजें",
|
"search_people": "लोगों को खोजें",
|
||||||
"search_places": "स्थान खोजें",
|
"search_places": "स्थान खोजें",
|
||||||
|
"search_result_page_new_search_hint": "New Search",
|
||||||
"search_state": "स्थिति खोजें..।",
|
"search_state": "स्थिति खोजें..।",
|
||||||
|
"search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ",
|
||||||
|
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
||||||
"search_timezone": "समयक्षेत्र खोजें..।",
|
"search_timezone": "समयक्षेत्र खोजें..।",
|
||||||
"search_type": "तलाश की विधि",
|
"search_type": "तलाश की विधि",
|
||||||
"search_your_photos": "अपनी फ़ोटो खोजें",
|
"search_your_photos": "अपनी फ़ोटो खोजें",
|
||||||
@@ -951,9 +1357,13 @@
|
|||||||
"select_new_face": "नया चेहरा चुनें",
|
"select_new_face": "नया चेहरा चुनें",
|
||||||
"select_photos": "फ़ोटो चुनें",
|
"select_photos": "फ़ोटो चुनें",
|
||||||
"select_trash_all": "ट्रैश ऑल का चयन करें",
|
"select_trash_all": "ट्रैश ऑल का चयन करें",
|
||||||
|
"select_user_for_sharing_page_err_album": "Failed to create album",
|
||||||
"selected": "चयनित",
|
"selected": "चयनित",
|
||||||
"send_message": "मेसेज भेजें",
|
"send_message": "मेसेज भेजें",
|
||||||
"send_welcome_email": "स्वागत ईमेल भेजें",
|
"send_welcome_email": "स्वागत ईमेल भेजें",
|
||||||
|
"server_endpoint": "Server Endpoint",
|
||||||
|
"server_info_box_app_version": "App Version",
|
||||||
|
"server_info_box_server_url": "सर्वर URL",
|
||||||
"server_offline": "सर्वर ऑफ़लाइन",
|
"server_offline": "सर्वर ऑफ़लाइन",
|
||||||
"server_online": "सर्वर ऑनलाइन",
|
"server_online": "सर्वर ऑनलाइन",
|
||||||
"server_stats": "सर्वर आँकड़े",
|
"server_stats": "सर्वर आँकड़े",
|
||||||
@@ -964,16 +1374,85 @@
|
|||||||
"set_date_of_birth": "जन्मतिथि निर्धारित करें",
|
"set_date_of_birth": "जन्मतिथि निर्धारित करें",
|
||||||
"set_profile_picture": "प्रोफ़ाइल चित्र सेट करें",
|
"set_profile_picture": "प्रोफ़ाइल चित्र सेट करें",
|
||||||
"set_slideshow_to_fullscreen": "स्लाइड शो को फ़ुलस्क्रीन पर सेट करें",
|
"set_slideshow_to_fullscreen": "स्लाइड शो को फ़ुलस्क्रीन पर सेट करें",
|
||||||
|
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
|
||||||
|
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
||||||
|
"setting_image_viewer_original_title": "Load original image",
|
||||||
|
"setting_image_viewer_preview_subtitle": "Enable to load a medium-resolution image. Disable to either directly load the original or only use the thumbnail.",
|
||||||
|
"setting_image_viewer_preview_title": "Load preview image",
|
||||||
|
"setting_image_viewer_title": "Images",
|
||||||
|
"setting_languages_apply": "Apply",
|
||||||
|
"setting_languages_subtitle": "Change the app's language",
|
||||||
|
"setting_languages_title": "Languages",
|
||||||
|
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
|
||||||
|
"setting_notifications_notify_hours": "{} hours",
|
||||||
|
"setting_notifications_notify_immediately": "immediately",
|
||||||
|
"setting_notifications_notify_minutes": "{} minutes",
|
||||||
|
"setting_notifications_notify_never": "never",
|
||||||
|
"setting_notifications_notify_seconds": "{} seconds",
|
||||||
|
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
||||||
|
"setting_notifications_single_progress_title": "Show background backup detail progress",
|
||||||
|
"setting_notifications_subtitle": "Adjust your notification preferences",
|
||||||
|
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
||||||
|
"setting_notifications_total_progress_title": "Show background backup total progress",
|
||||||
|
"setting_video_viewer_looping_title": "Looping",
|
||||||
|
"setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
|
||||||
|
"setting_video_viewer_original_video_title": "Force original video",
|
||||||
"settings": "समायोजन",
|
"settings": "समायोजन",
|
||||||
|
"settings_require_restart": "Please restart Immich to apply this setting",
|
||||||
"settings_saved": "सेटिंग्स को सहेजा गया",
|
"settings_saved": "सेटिंग्स को सहेजा गया",
|
||||||
"share": "शेयर करना",
|
"share": "शेयर करना",
|
||||||
|
"share_add_photos": "Add photos",
|
||||||
|
"share_assets_selected": "{} selected",
|
||||||
|
"share_dialog_preparing": "Preparing...",
|
||||||
"shared": "साझा",
|
"shared": "साझा",
|
||||||
|
"shared_album_activities_input_disable": "कॉमेंट डिजेबल्ड है",
|
||||||
|
"shared_album_activity_remove_content": "क्या आप इस गतिविधि को हटाना चाहते हैं?",
|
||||||
|
"shared_album_activity_remove_title": "गतिविधि हटाएं",
|
||||||
|
"shared_album_section_people_action_error": "Error leaving/removing from album",
|
||||||
|
"shared_album_section_people_action_leave": "Remove user from album",
|
||||||
|
"shared_album_section_people_action_remove_user": "Remove user from album",
|
||||||
|
"shared_album_section_people_title": "PEOPLE",
|
||||||
"shared_by": "द्वारा साझा",
|
"shared_by": "द्वारा साझा",
|
||||||
"shared_by_you": "आपके द्वारा साझा किया गया",
|
"shared_by_you": "आपके द्वारा साझा किया गया",
|
||||||
|
"shared_intent_upload_button_progress_text": "{} / {} Uploaded",
|
||||||
|
"shared_link_app_bar_title": "साझा किए गए लिंक",
|
||||||
|
"shared_link_clipboard_copied_massage": "Copied to clipboard",
|
||||||
|
"shared_link_clipboard_text": "Link: {}\nPassword: {}",
|
||||||
|
"shared_link_create_error": "Error while creating shared link",
|
||||||
|
"shared_link_edit_description_hint": "शेयर विवरण दर्ज करें",
|
||||||
|
"shared_link_edit_expire_after_option_day": "1 day",
|
||||||
|
"shared_link_edit_expire_after_option_days": "{} days",
|
||||||
|
"shared_link_edit_expire_after_option_hour": "1 hour",
|
||||||
|
"shared_link_edit_expire_after_option_hours": "{} hours",
|
||||||
|
"shared_link_edit_expire_after_option_minute": "1 minute",
|
||||||
|
"shared_link_edit_expire_after_option_minutes": "{} minutes",
|
||||||
|
"shared_link_edit_expire_after_option_months": "{} months",
|
||||||
|
"shared_link_edit_expire_after_option_year": "{} year",
|
||||||
|
"shared_link_edit_password_hint": "शेयर पासवर्ड दर्ज करें",
|
||||||
|
"shared_link_edit_submit_button": "अपडेट लिंक",
|
||||||
|
"shared_link_error_server_url_fetch": "Cannot fetch the server url",
|
||||||
|
"shared_link_expires_day": "Expires in {} day",
|
||||||
|
"shared_link_expires_days": "Expires in {} days",
|
||||||
|
"shared_link_expires_hour": "Expires in {} hour",
|
||||||
|
"shared_link_expires_hours": "Expires in {} hours",
|
||||||
|
"shared_link_expires_minute": "Expires in {} minute",
|
||||||
|
"shared_link_expires_minutes": "Expires in {} minutes",
|
||||||
|
"shared_link_expires_never": "Expires ∞",
|
||||||
|
"shared_link_expires_second": "Expires in {} second",
|
||||||
|
"shared_link_expires_seconds": "Expires in {} seconds",
|
||||||
|
"shared_link_individual_shared": "Individual shared",
|
||||||
|
"shared_link_info_chip_metadata": "EXIF",
|
||||||
|
"shared_link_manage_links": "साझा किए गए लिंक का प्रबंधन करें",
|
||||||
"shared_links": "साझा किए गए लिंक",
|
"shared_links": "साझा किए गए लिंक",
|
||||||
|
"shared_with_me": "मेरे साथ साझा किया गया",
|
||||||
"sharing": "शेयरिंग",
|
"sharing": "शेयरिंग",
|
||||||
"sharing_enter_password": "कृपया इस पृष्ठ को देखने के लिए पासवर्ड दर्ज करें।",
|
"sharing_enter_password": "कृपया इस पृष्ठ को देखने के लिए पासवर्ड दर्ज करें।",
|
||||||
|
"sharing_page_album": "Shared albums",
|
||||||
|
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
||||||
|
"sharing_page_empty_list": "EMPTY LIST",
|
||||||
"sharing_sidebar_description": "साइडबार में शेयरिंग के लिए एक लिंक प्रदर्शित करें",
|
"sharing_sidebar_description": "साइडबार में शेयरिंग के लिए एक लिंक प्रदर्शित करें",
|
||||||
|
"sharing_silver_appbar_create_shared_album": "New shared album",
|
||||||
|
"sharing_silver_appbar_share_partner": "Share with partner",
|
||||||
"shift_to_permanent_delete": "संपत्ति को स्थायी रूप से हटाने के लिए ⇧ दबाएँ",
|
"shift_to_permanent_delete": "संपत्ति को स्थायी रूप से हटाने के लिए ⇧ दबाएँ",
|
||||||
"show_album_options": "एल्बम विकल्प दिखाएँ",
|
"show_album_options": "एल्बम विकल्प दिखाएँ",
|
||||||
"show_all_people": "सभी लोगों को दिखाओ",
|
"show_all_people": "सभी लोगों को दिखाओ",
|
||||||
@@ -1024,10 +1503,26 @@
|
|||||||
"sunrise_on_the_beach": "समुद्र तट पर सूर्योदय",
|
"sunrise_on_the_beach": "समुद्र तट पर सूर्योदय",
|
||||||
"swap_merge_direction": "मर्ज दिशा स्वैप करें",
|
"swap_merge_direction": "मर्ज दिशा स्वैप करें",
|
||||||
"sync": "साथ-साथ करना",
|
"sync": "साथ-साथ करना",
|
||||||
|
"sync_albums": "एल्बम्स सिंक करें",
|
||||||
|
"sync_albums_manual_subtitle": "चुने हुए बैकअप एल्बम्स में सभी अपलोड की गई वीडियो और फ़ोटो सिंक करें",
|
||||||
|
"sync_upload_album_setting_subtitle": "अपनी फ़ोटो और वीडियो बनाएँ और उन्हें इमिच पर चुने हुए एल्बम्स में अपलोड करें",
|
||||||
"template": "खाका",
|
"template": "खाका",
|
||||||
"theme": "विषय",
|
"theme": "विषय",
|
||||||
"theme_selection": "थीम चयन",
|
"theme_selection": "थीम चयन",
|
||||||
"theme_selection_description": "आपके ब्राउज़र की सिस्टम प्राथमिकता के आधार पर थीम को स्वचालित रूप से प्रकाश या अंधेरे पर सेट करें",
|
"theme_selection_description": "आपके ब्राउज़र की सिस्टम प्राथमिकता के आधार पर थीम को स्वचालित रूप से प्रकाश या अंधेरे पर सेट करें",
|
||||||
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "प्राथमिक रंग को पृष्ठभूमि सतहों पर लागू करें",
|
||||||
|
"theme_setting_colorful_interface_title": "रंगीन इंटरफ़ेस",
|
||||||
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
|
"theme_setting_primary_color_subtitle": "प्राथमिक क्रियाओं और उच्चारणों के लिए एक रंग चुनें",
|
||||||
|
"theme_setting_primary_color_title": "प्राथमिक रंग",
|
||||||
|
"theme_setting_system_primary_color_title": "सिस्टम रंग का उपयोग करें",
|
||||||
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
"they_will_be_merged_together": "इन्हें एक साथ मिला दिया जाएगा",
|
"they_will_be_merged_together": "इन्हें एक साथ मिला दिया जाएगा",
|
||||||
"time_based_memories": "समय आधारित यादें",
|
"time_based_memories": "समय आधारित यादें",
|
||||||
"timezone": "समय क्षेत्र",
|
"timezone": "समय क्षेत्र",
|
||||||
@@ -1042,7 +1537,15 @@
|
|||||||
"trash": "कचरा",
|
"trash": "कचरा",
|
||||||
"trash_all": "सब कचरा",
|
"trash_all": "सब कचरा",
|
||||||
"trash_delete_asset": "संपत्ति को ट्रैश/डिलीट करें",
|
"trash_delete_asset": "संपत्ति को ट्रैश/डिलीट करें",
|
||||||
|
"trash_emptied": "कचरा खाली कर दिया",
|
||||||
"trash_no_results_message": "ट्रैश की गई फ़ोटो और वीडियो यहां दिखाई देंगे।",
|
"trash_no_results_message": "ट्रैश की गई फ़ोटो और वीडियो यहां दिखाई देंगे।",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_dialog_content": "क्या आप अपनी कूड़ेदान संपत्तियों को खाली करना चाहते हैं? इन आइटमों को Immich से स्थायी रूप से हटा दिया जाएगा",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore_all": "सभी को पुनः स्थानांतरित करें",
|
||||||
|
"trash_page_select_assets_btn": "संपत्तियों को चयन करें",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"type": "प्रकार",
|
"type": "प्रकार",
|
||||||
"unarchive": "संग्रह से निकालें",
|
"unarchive": "संग्रह से निकालें",
|
||||||
"unfavorite": "नापसंद करें",
|
"unfavorite": "नापसंद करें",
|
||||||
@@ -1064,12 +1567,17 @@
|
|||||||
"updated_password": "अद्यतन पासवर्ड",
|
"updated_password": "अद्यतन पासवर्ड",
|
||||||
"upload": "डालना",
|
"upload": "डालना",
|
||||||
"upload_concurrency": "समवर्ती अपलोड करें",
|
"upload_concurrency": "समवर्ती अपलोड करें",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"upload_status_duplicates": "डुप्लिकेट",
|
"upload_status_duplicates": "डुप्लिकेट",
|
||||||
"upload_status_errors": "त्रुटियाँ",
|
"upload_status_errors": "त्रुटियाँ",
|
||||||
"upload_status_uploaded": "अपलोड किए गए",
|
"upload_status_uploaded": "अपलोड किए गए",
|
||||||
"upload_success": "अपलोड सफल रहा, नई अपलोड संपत्तियां देखने के लिए पेज को रीफ्रेश करें।",
|
"upload_success": "अपलोड सफल रहा, नई अपलोड संपत्तियां देखने के लिए पेज को रीफ्रेश करें।",
|
||||||
|
"upload_to_immich": "Upload to Immich ({})",
|
||||||
|
"uploading": "Uploading",
|
||||||
"url": "यूआरएल",
|
"url": "यूआरएल",
|
||||||
"usage": "प्रयोग",
|
"usage": "प्रयोग",
|
||||||
|
"use_current_connection": "use current connection",
|
||||||
"use_custom_date_range": "इसके बजाय कस्टम दिनांक सीमा का उपयोग करें",
|
"use_custom_date_range": "इसके बजाय कस्टम दिनांक सीमा का उपयोग करें",
|
||||||
"user": "उपयोगकर्ता",
|
"user": "उपयोगकर्ता",
|
||||||
"user_id": "उपयोगकर्ता पहचान",
|
"user_id": "उपयोगकर्ता पहचान",
|
||||||
@@ -1081,10 +1589,16 @@
|
|||||||
"users": "उपयोगकर्ताओं",
|
"users": "उपयोगकर्ताओं",
|
||||||
"utilities": "उपयोगिताओं",
|
"utilities": "उपयोगिताओं",
|
||||||
"validate": "मान्य",
|
"validate": "मान्य",
|
||||||
|
"validate_endpoint_error": "Please enter a valid URL",
|
||||||
"variables": "चर",
|
"variables": "चर",
|
||||||
"version": "संस्करण",
|
"version": "संस्करण",
|
||||||
"version_announcement_closing": "आपका मित्र, एलेक्स",
|
"version_announcement_closing": "आपका मित्र, एलेक्स",
|
||||||
"version_announcement_message": "नमस्कार मित्र, एप्लिकेशन का एक नया संस्करण है, कृपया अपना समय निकालकर इसे देखें <link>रिलीज नोट्स</link> और अपना सुनिश्चित करें <code>docker-compose.yml</code>, और <code>.env</code> किसी भी गलत कॉन्फ़िगरेशन को रोकने के लिए सेटअप अद्यतित है, खासकर यदि आप वॉचटावर या किसी भी तंत्र का उपयोग करते हैं जो आपके एप्लिकेशन को स्वचालित रूप से अपडेट करने का प्रबंधन करता है।",
|
"version_announcement_message": "नमस्कार मित्र, एप्लिकेशन का एक नया संस्करण है, कृपया अपना समय निकालकर इसे देखें <link>रिलीज नोट्स</link> और अपना सुनिश्चित करें <code>docker-compose.yml</code>, और <code>.env</code> किसी भी गलत कॉन्फ़िगरेशन को रोकने के लिए सेटअप अद्यतित है, खासकर यदि आप वॉचटावर या किसी भी तंत्र का उपयोग करते हैं जो आपके एप्लिकेशन को स्वचालित रूप से अपडेट करने का प्रबंधन करता है।",
|
||||||
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
|
"version_announcement_overlay_title": "New Server Version Available 🎉",
|
||||||
"video": "वीडियो",
|
"video": "वीडियो",
|
||||||
"video_hover_setting": "होवर पर वीडियो थंबनेल चलाएं",
|
"video_hover_setting": "होवर पर वीडियो थंबनेल चलाएं",
|
||||||
"video_hover_setting_description": "जब माउस आइटम पर घूम रहा हो तो वीडियो थंबनेल चलाएं।",
|
"video_hover_setting_description": "जब माउस आइटम पर घूम रहा हो तो वीडियो थंबनेल चलाएं।",
|
||||||
@@ -1093,17 +1607,23 @@
|
|||||||
"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": "पिछली संपत्ति देखें",
|
||||||
"view_stack": "ढेर देखें",
|
"view_stack": "ढेर देखें",
|
||||||
|
"viewer_remove_from_stack": "स्टैक से हटाएं",
|
||||||
|
"viewer_stack_use_as_main_asset": "मुख्य संपत्ति के रूप में उपयोग करें",
|
||||||
|
"viewer_unstack": "स्टैक रद्द करें",
|
||||||
"waiting": "इंतज़ार में",
|
"waiting": "इंतज़ार में",
|
||||||
"warning": "चेतावनी",
|
"warning": "चेतावनी",
|
||||||
"week": "सप्ताह",
|
"week": "सप्ताह",
|
||||||
"welcome": "स्वागत",
|
"welcome": "स्वागत",
|
||||||
"welcome_to_immich": "इमिच में आपका स्वागत है",
|
"welcome_to_immich": "इमिच में आपका स्वागत है",
|
||||||
|
"wifi_name": "WiFi Name",
|
||||||
"year": "वर्ष",
|
"year": "वर्ष",
|
||||||
"yes": "हाँ",
|
"yes": "हाँ",
|
||||||
"you_dont_have_any_shared_links": "आपके पास कोई साझा लिंक नहीं है",
|
"you_dont_have_any_shared_links": "आपके पास कोई साझा लिंक नहीं है",
|
||||||
|
"your_wifi_name": "Your WiFi name",
|
||||||
"zoom_image": "छवि ज़ूम करें"
|
"zoom_image": "छवि ज़ूम करें"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,7 +159,6 @@
|
|||||||
"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)",
|
||||||
@@ -893,7 +892,6 @@
|
|||||||
"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",
|
||||||
@@ -1253,4 +1251,4 @@
|
|||||||
"yes": "",
|
"yes": "",
|
||||||
"you_dont_have_any_shared_links": "",
|
"you_dont_have_any_shared_links": "",
|
||||||
"zoom_image": ""
|
"zoom_image": ""
|
||||||
}
|
}
|
||||||
|
|||||||
527
i18n/hu.json
527
i18n/hu.json
File diff suppressed because it is too large
Load Diff
@@ -116,7 +116,6 @@
|
|||||||
"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": "",
|
||||||
@@ -614,7 +613,6 @@
|
|||||||
"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": "",
|
||||||
|
|||||||
515
i18n/id.json
515
i18n/id.json
File diff suppressed because it is too large
Load Diff
532
i18n/it.json
532
i18n/it.json
File diff suppressed because it is too large
Load Diff
660
i18n/ja.json
660
i18n/ja.json
File diff suppressed because it is too large
Load Diff
165
i18n/ka.json
Normal file
165
i18n/ka.json
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
{
|
||||||
|
"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
i18n/kk.json
Normal file
1
i18n/kk.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
@@ -121,7 +121,6 @@
|
|||||||
"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": "",
|
||||||
@@ -621,7 +620,6 @@
|
|||||||
"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
i18n/kn.json
Normal file
1
i18n/kn.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
589
i18n/ko.json
589
i18n/ko.json
File diff suppressed because it is too large
Load Diff
510
i18n/lt.json
510
i18n/lt.json
@@ -4,6 +4,7 @@
|
|||||||
"account_settings": "Paskyros nustatymai",
|
"account_settings": "Paskyros nustatymai",
|
||||||
"acknowledge": "Patvirtinti",
|
"acknowledge": "Patvirtinti",
|
||||||
"action": "Veiksmas",
|
"action": "Veiksmas",
|
||||||
|
"action_common_update": "Update",
|
||||||
"actions": "Veiksmai",
|
"actions": "Veiksmai",
|
||||||
"active": "Vykdoma",
|
"active": "Vykdoma",
|
||||||
"activity": "Veikla",
|
"activity": "Veikla",
|
||||||
@@ -13,6 +14,7 @@
|
|||||||
"add_a_location": "Pridėti vietovę",
|
"add_a_location": "Pridėti vietovę",
|
||||||
"add_a_name": "Pridėti vardą",
|
"add_a_name": "Pridėti vardą",
|
||||||
"add_a_title": "Pridėti pavadinimą",
|
"add_a_title": "Pridėti pavadinimą",
|
||||||
|
"add_endpoint": "Add endpoint",
|
||||||
"add_exclusion_pattern": "Pridėti išimčių šabloną",
|
"add_exclusion_pattern": "Pridėti išimčių šabloną",
|
||||||
"add_import_path": "Pridėti importavimo kelią",
|
"add_import_path": "Pridėti importavimo kelią",
|
||||||
"add_location": "Pridėti vietovę",
|
"add_location": "Pridėti vietovę",
|
||||||
@@ -22,6 +24,8 @@
|
|||||||
"add_photos": "Pridėti nuotraukų",
|
"add_photos": "Pridėti nuotraukų",
|
||||||
"add_to": "Pridėti į…",
|
"add_to": "Pridėti į…",
|
||||||
"add_to_album": "Pridėti į albumą",
|
"add_to_album": "Pridėti į albumą",
|
||||||
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"add_to_shared_album": "Pridėti į bendrinamą albumą",
|
"add_to_shared_album": "Pridėti į bendrinamą albumą",
|
||||||
"add_url": "Pridėti URL",
|
"add_url": "Pridėti URL",
|
||||||
"added_to_archive": "Pridėta į archyvą",
|
"added_to_archive": "Pridėta į archyvą",
|
||||||
@@ -157,7 +161,6 @@
|
|||||||
"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)",
|
||||||
@@ -315,10 +318,22 @@
|
|||||||
"admin_password": "Administratoriaus slaptažodis",
|
"admin_password": "Administratoriaus slaptažodis",
|
||||||
"administration": "Administravimas",
|
"administration": "Administravimas",
|
||||||
"advanced": "",
|
"advanced": "",
|
||||||
|
"advanced_settings_log_level_title": "Log level: {}",
|
||||||
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_proxy_headers_subtitle": "Define proxy headers Immich should send with each network request",
|
||||||
|
"advanced_settings_proxy_headers_title": "Proxy Headers",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
||||||
"album_added": "Albumas pridėtas",
|
"album_added": "Albumas pridėtas",
|
||||||
"album_added_notification_setting_description": "Gauti el. pašto pranešimą, kai būsite pridėtas prie bendrinamo albumo",
|
"album_added_notification_setting_description": "Gauti el. pašto pranešimą, kai būsite pridėtas prie bendrinamo albumo",
|
||||||
"album_cover_updated": "Albumo viršelis atnaujintas",
|
"album_cover_updated": "Albumo viršelis atnaujintas",
|
||||||
"album_delete_confirmation": "Ar tikrai norite ištrinti albumą {album}?",
|
"album_delete_confirmation": "Ar tikrai norite ištrinti albumą {album}?",
|
||||||
|
"album_info_card_backup_album_excluded": "EXCLUDED",
|
||||||
|
"album_info_card_backup_album_included": "INCLUDED",
|
||||||
"album_info_updated": "Albumo informacija atnaujinta",
|
"album_info_updated": "Albumo informacija atnaujinta",
|
||||||
"album_leave": "Palikti albumą?",
|
"album_leave": "Palikti albumą?",
|
||||||
"album_leave_confirmation": "Ar tikrai norite palikti albumą {album}?",
|
"album_leave_confirmation": "Ar tikrai norite palikti albumą {album}?",
|
||||||
@@ -327,9 +342,21 @@
|
|||||||
"album_remove_user": "Pašalinti naudotoją?",
|
"album_remove_user": "Pašalinti naudotoją?",
|
||||||
"album_remove_user_confirmation": "Ar tikrai norite pašalinti naudotoją {user}?",
|
"album_remove_user_confirmation": "Ar tikrai norite pašalinti naudotoją {user}?",
|
||||||
"album_share_no_users": "Atrodo, kad bendrinate šį albumą su visais naudotojais, arba neturite naudotojų, su kuriais galėtumėte bendrinti.",
|
"album_share_no_users": "Atrodo, kad bendrinate šį albumą su visais naudotojais, arba neturite naudotojų, su kuriais galėtumėte bendrinti.",
|
||||||
|
"album_thumbnail_card_item": "1 item",
|
||||||
|
"album_thumbnail_card_items": "{} items",
|
||||||
|
"album_thumbnail_card_shared": " · Shared",
|
||||||
|
"album_thumbnail_shared_by": "Shared by {}",
|
||||||
"album_updated": "Albumas atnaujintas",
|
"album_updated": "Albumas atnaujintas",
|
||||||
"album_updated_setting_description": "Gauti pranešimą el. paštu, kai bendrinamas albumas turi naujų elementų",
|
"album_updated_setting_description": "Gauti pranešimą el. paštu, kai bendrinamas albumas turi naujų elementų",
|
||||||
"album_user_removed": "Pašalintas {user}",
|
"album_user_removed": "Pašalintas {user}",
|
||||||
|
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?",
|
||||||
|
"album_viewer_appbar_share_err_delete": "Failed to delete album",
|
||||||
|
"album_viewer_appbar_share_err_leave": "Failed to leave album",
|
||||||
|
"album_viewer_appbar_share_err_remove": "There are problems in removing assets from album",
|
||||||
|
"album_viewer_appbar_share_err_title": "Failed to change album title",
|
||||||
|
"album_viewer_appbar_share_leave": "Leave album",
|
||||||
|
"album_viewer_appbar_share_to": "Share To",
|
||||||
|
"album_viewer_page_share_add_users": "Add users",
|
||||||
"album_with_link_access": "Tegul visi, turintys nuorodą, mato šio albumo nuotraukas ir žmones.",
|
"album_with_link_access": "Tegul visi, turintys nuorodą, mato šio albumo nuotraukas ir žmones.",
|
||||||
"albums": "Albumai",
|
"albums": "Albumai",
|
||||||
"albums_count": "{count, plural, one {# albumas} few {# albumai} other {# albumų}}",
|
"albums_count": "{count, plural, one {# albumas} few {# albumai} other {# albumų}}",
|
||||||
@@ -344,37 +371,128 @@
|
|||||||
"api_key": "API raktas",
|
"api_key": "API raktas",
|
||||||
"api_key_empty": "Jūsų API rakto pavadinimas netūrėtų būti tuščias",
|
"api_key_empty": "Jūsų API rakto pavadinimas netūrėtų būti tuščias",
|
||||||
"api_keys": "API raktai",
|
"api_keys": "API raktai",
|
||||||
|
"app_bar_signout_dialog_content": "Are you sure you want to sign out?",
|
||||||
|
"app_bar_signout_dialog_ok": "Yes",
|
||||||
|
"app_bar_signout_dialog_title": "Sign out",
|
||||||
"app_settings": "Programos nustatymai",
|
"app_settings": "Programos nustatymai",
|
||||||
"appears_in": "",
|
"appears_in": "",
|
||||||
"archive": "Archyvas",
|
"archive": "Archyvas",
|
||||||
"archive_or_unarchive_photo": "Archyvuoti arba išarchyvuoti nuotrauką",
|
"archive_or_unarchive_photo": "Archyvuoti arba išarchyvuoti nuotrauką",
|
||||||
|
"archive_page_no_archived_assets": "No archived assets found",
|
||||||
|
"archive_page_title": "Archive ({})",
|
||||||
"archive_size": "Archyvo dydis",
|
"archive_size": "Archyvo dydis",
|
||||||
"archive_size_description": "Konfigūruoti archyvo dydį atsisiuntimams (GiB)",
|
"archive_size_description": "Konfigūruoti archyvo dydį atsisiuntimams (GiB)",
|
||||||
|
"archived": "Archived",
|
||||||
"archived_count": "{count, plural, other {# suarchyvuota}}",
|
"archived_count": "{count, plural, other {# suarchyvuota}}",
|
||||||
"are_these_the_same_person": "Ar tai tas pats asmuo?",
|
"are_these_the_same_person": "Ar tai tas pats asmuo?",
|
||||||
"are_you_sure_to_do_this": "Ar tikrai norite tai daryti?",
|
"are_you_sure_to_do_this": "Ar tikrai norite tai daryti?",
|
||||||
|
"asset_action_delete_err_read_only": "Cannot delete read only asset(s), skipping",
|
||||||
|
"asset_action_share_err_offline": "Cannot fetch offline asset(s), skipping",
|
||||||
"asset_added_to_album": "Pridėta į albumą",
|
"asset_added_to_album": "Pridėta į albumą",
|
||||||
"asset_adding_to_album": "Pridedama į albumą...",
|
"asset_adding_to_album": "Pridedama į albumą...",
|
||||||
"asset_description_updated": "Elemento aprašymas buvo atnaujintas",
|
"asset_description_updated": "Elemento aprašymas buvo atnaujintas",
|
||||||
"asset_filename_is_offline": "Elementas {filename} nepasiekiamas",
|
"asset_filename_is_offline": "Elementas {filename} nepasiekiamas",
|
||||||
|
"asset_list_group_by_sub_title": "Group by",
|
||||||
|
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
||||||
|
"asset_list_layout_settings_group_automatically": "Automatic",
|
||||||
|
"asset_list_layout_settings_group_by": "Group assets by",
|
||||||
|
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
||||||
|
"asset_list_layout_sub_title": "Layout",
|
||||||
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
|
"asset_list_settings_title": "Photo Grid",
|
||||||
"asset_offline": "Elementas nepasiekiamas",
|
"asset_offline": "Elementas nepasiekiamas",
|
||||||
"asset_offline_description": "Šis išorinis elementas neberandamas diske. Dėl pagalbos susisiekite su savo Immich administratoriumi.",
|
"asset_offline_description": "Šis išorinis elementas neberandamas diske. Dėl pagalbos susisiekite su savo Immich administratoriumi.",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
"asset_uploaded": "Įkelta",
|
"asset_uploaded": "Įkelta",
|
||||||
"asset_uploading": "Įkeliama...",
|
"asset_uploading": "Įkeliama...",
|
||||||
|
"asset_viewer_settings_subtitle": "Manage your gallery viewer settings",
|
||||||
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"assets": "Elementai",
|
"assets": "Elementai",
|
||||||
"assets_added_count": "{count, plural, one {Pridėtas # elementas} few {Pridėti # elementai} other {Pridėta # elementų}}",
|
"assets_added_count": "{count, plural, one {Pridėtas # elementas} few {Pridėti # elementai} other {Pridėta # elementų}}",
|
||||||
"assets_added_to_album_count": "Į albumą {count, plural, one {įtrauktas # elementas} few {įtraukti # elementai} other {įtraukta # elementų}}",
|
"assets_added_to_album_count": "Į albumą {count, plural, one {įtrauktas # elementas} few {įtraukti # elementai} other {įtraukta # elementų}}",
|
||||||
"assets_added_to_name_count": "Į {hasName, select, true {<b>{name}</b>} other {naują}} albumą {count, plural, one {įtrauktas # elementas} few {įtraukti # elementai} other {įtraukta # elementų}}",
|
"assets_added_to_name_count": "Į {hasName, select, true {<b>{name}</b>} other {naują}} albumą {count, plural, one {įtrauktas # elementas} few {įtraukti # elementai} other {įtraukta # elementų}}",
|
||||||
"assets_count": "{count, plural, one {# elementas} few {# elementai} other {# elementų}}",
|
"assets_count": "{count, plural, one {# elementas} few {# elementai} other {# elementų}}",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
"assets_moved_to_trash_count": "{count, plural, one {# elementas perkeltas} few {# elementai perkelti} other {# elementų perkelta}} į šiukšliadėžę",
|
"assets_moved_to_trash_count": "{count, plural, one {# elementas perkeltas} few {# elementai perkelti} other {# elementų perkelta}} į šiukšliadėžę",
|
||||||
"assets_permanently_deleted_count": "{count, plural, one {# elementas ištrintas} few {# elementai ištrinti} other {# elementų ištrinta}} visam laikui",
|
"assets_permanently_deleted_count": "{count, plural, one {# elementas ištrintas} few {# elementai ištrinti} other {# elementų ištrinta}} visam laikui",
|
||||||
"assets_removed_count": "{count, plural, one {Pašalintas # elementas} few {Pašalinti # elementai} other {Pašalinta # elementų}}",
|
"assets_removed_count": "{count, plural, one {Pašalintas # elementas} few {Pašalinti # elementai} other {Pašalinta # elementų}}",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
"assets_restore_confirmation": "Ar tikrai norite atkurti visus šiukšliadėžėje esančius perkeltus elementus? Šio veiksmo atšaukti negalėsite! Pastaba: nepasiekiami elementai tokiu būdu atkurti nebus.",
|
"assets_restore_confirmation": "Ar tikrai norite atkurti visus šiukšliadėžėje esančius perkeltus elementus? Šio veiksmo atšaukti negalėsite! Pastaba: nepasiekiami elementai tokiu būdu atkurti nebus.",
|
||||||
"assets_restored_count": "{count, plural, one {Atkurtas # elementas} few {Atkurti # elementai} other {Atkurta # elementų}}",
|
"assets_restored_count": "{count, plural, one {Atkurtas # elementas} few {Atkurti # elementai} other {Atkurta # elementų}}",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"assets_were_part_of_album_count": "{count, plural, one {# elementas} few {# elementai} other {# elementų}} jau prieš tai buvo albume",
|
"assets_were_part_of_album_count": "{count, plural, one {# elementas} few {# elementai} other {# elementų}} jau prieš tai buvo albume",
|
||||||
"authorized_devices": "Autorizuoti įrenginiai",
|
"authorized_devices": "Autorizuoti įrenginiai",
|
||||||
|
"automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
|
||||||
|
"automatic_endpoint_switching_title": "Automatic URL switching",
|
||||||
"back": "Atgal",
|
"back": "Atgal",
|
||||||
"back_close_deselect": "Atgal, uždaryti arba atžymėti",
|
"back_close_deselect": "Atgal, uždaryti arba atžymėti",
|
||||||
|
"background_location_permission": "Background location permission",
|
||||||
|
"background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name",
|
||||||
|
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
||||||
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
|
"backup_album_selection_page_assets_scatter": "Assets can scatter across multiple albums. Thus, albums can be included or excluded during the backup process.",
|
||||||
|
"backup_album_selection_page_select_albums": "Select albums",
|
||||||
|
"backup_album_selection_page_selection_info": "Selection Info",
|
||||||
|
"backup_album_selection_page_total_assets": "Total unique assets",
|
||||||
|
"backup_all": "All",
|
||||||
|
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
|
||||||
|
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
|
||||||
|
"backup_background_service_current_upload_notification": "Uploading {}",
|
||||||
|
"backup_background_service_default_notification": "Checking for new assets…",
|
||||||
|
"backup_background_service_error_title": "Backup error",
|
||||||
|
"backup_background_service_in_progress_notification": "Backing up your assets…",
|
||||||
|
"backup_background_service_upload_failure_notification": "Failed to upload {}",
|
||||||
|
"backup_controller_page_albums": "Backup Albums",
|
||||||
|
"backup_controller_page_background_app_refresh_disabled_content": "Enable background app refresh in Settings > General > Background App Refresh in order to use background backup.",
|
||||||
|
"backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
|
||||||
|
"backup_controller_page_background_app_refresh_enable_button_text": "Go to settings",
|
||||||
|
"backup_controller_page_background_battery_info_link": "Show me how",
|
||||||
|
"backup_controller_page_background_battery_info_message": "For the best background backup experience, please disable any battery optimizations restricting background activity for Immich.\n\nSince this is device-specific, please lookup the required information for your device manufacturer.",
|
||||||
|
"backup_controller_page_background_battery_info_ok": "OK",
|
||||||
|
"backup_controller_page_background_battery_info_title": "Battery optimizations",
|
||||||
|
"backup_controller_page_background_charging": "Only while charging",
|
||||||
|
"backup_controller_page_background_configure_error": "Failed to configure the background service",
|
||||||
|
"backup_controller_page_background_delay": "Delay new assets backup: {}",
|
||||||
|
"backup_controller_page_background_description": "Turn on the background service to automatically backup any new assets without needing to open the app",
|
||||||
|
"backup_controller_page_background_is_off": "Automatic background backup is off",
|
||||||
|
"backup_controller_page_background_is_on": "Automatic background backup is on",
|
||||||
|
"backup_controller_page_background_turn_off": "Turn off background service",
|
||||||
|
"backup_controller_page_background_turn_on": "Turn on background service",
|
||||||
|
"backup_controller_page_background_wifi": "Only on WiFi",
|
||||||
|
"backup_controller_page_backup": "Backup",
|
||||||
|
"backup_controller_page_backup_selected": "Selected: ",
|
||||||
|
"backup_controller_page_backup_sub": "Backed up photos and videos",
|
||||||
|
"backup_controller_page_created": "Created on: {}",
|
||||||
|
"backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
|
||||||
|
"backup_controller_page_excluded": "Excluded: ",
|
||||||
|
"backup_controller_page_failed": "Failed ({})",
|
||||||
|
"backup_controller_page_filename": "File name: {} [{}]",
|
||||||
|
"backup_controller_page_id": "ID: {}",
|
||||||
|
"backup_controller_page_info": "Backup Information",
|
||||||
|
"backup_controller_page_none_selected": "None selected",
|
||||||
|
"backup_controller_page_remainder": "Remainder",
|
||||||
|
"backup_controller_page_remainder_sub": "Remaining photos and videos to back up from selection",
|
||||||
|
"backup_controller_page_server_storage": "Server Storage",
|
||||||
|
"backup_controller_page_start_backup": "Start Backup",
|
||||||
|
"backup_controller_page_status_off": "Automatic foreground backup is off",
|
||||||
|
"backup_controller_page_status_on": "Automatic foreground backup is on",
|
||||||
|
"backup_controller_page_storage_format": "{} of {} used",
|
||||||
|
"backup_controller_page_to_backup": "Albums to be backed up",
|
||||||
|
"backup_controller_page_total_sub": "All unique photos and videos from selected albums",
|
||||||
|
"backup_controller_page_turn_off": "Turn off foreground backup",
|
||||||
|
"backup_controller_page_turn_on": "Turn on foreground backup",
|
||||||
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
|
"backup_info_card_assets": "assets",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
|
"backup_options_page_title": "Backup options",
|
||||||
|
"backup_setting_subtitle": "Manage background and foreground upload settings",
|
||||||
"backward": "",
|
"backward": "",
|
||||||
"birthdate_saved": "Sėkmingai išsaugota gimimo data",
|
"birthdate_saved": "Sėkmingai išsaugota gimimo data",
|
||||||
"blurred_background": "Neryškus fonas",
|
"blurred_background": "Neryškus fonas",
|
||||||
@@ -383,29 +501,65 @@
|
|||||||
"bulk_keep_duplicates_confirmation": "Ar tikrai norite palikti visus {count, plural, one {# besidubliuojantį elementą} few {# besidubliuojančius elementus} other {# besidubliuojančių elementų}}? Tokiu būdu nieko netrinant bus sutvarkytos visos dublikatų grupės.",
|
"bulk_keep_duplicates_confirmation": "Ar tikrai norite palikti visus {count, plural, one {# besidubliuojantį elementą} few {# besidubliuojančius elementus} other {# besidubliuojančių elementų}}? Tokiu būdu nieko netrinant bus sutvarkytos visos dublikatų grupės.",
|
||||||
"bulk_trash_duplicates_confirmation": "Ar tikrai norite perkelti į šiukšliadėžę visus {count, plural, one {# besidubliuojantį elementą} few {# besidubliuojančius elementus} other {# besidubliuojančių elementų}}? Bus paliktas didžiausias kiekvienos grupės elementas ir į šiukšliadėžę perkelti kiti besidubliuojantys elementai.",
|
"bulk_trash_duplicates_confirmation": "Ar tikrai norite perkelti į šiukšliadėžę visus {count, plural, one {# besidubliuojantį elementą} few {# besidubliuojančius elementus} other {# besidubliuojančių elementų}}? Bus paliktas didžiausias kiekvienos grupės elementas ir į šiukšliadėžę perkelti kiti besidubliuojantys elementai.",
|
||||||
"buy": "Įsigyti Immich",
|
"buy": "Įsigyti Immich",
|
||||||
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
|
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
|
"cache_settings_duplicated_assets_clear_button": "CLEAR",
|
||||||
|
"cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app",
|
||||||
|
"cache_settings_duplicated_assets_title": "Duplicated Assets ({})",
|
||||||
|
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
||||||
|
"cache_settings_statistics_album": "Library thumbnails",
|
||||||
|
"cache_settings_statistics_assets": "{} assets ({})",
|
||||||
|
"cache_settings_statistics_full": "Full images",
|
||||||
|
"cache_settings_statistics_shared": "Shared album thumbnails",
|
||||||
|
"cache_settings_statistics_thumbnail": "Thumbnails",
|
||||||
|
"cache_settings_statistics_title": "Cache usage",
|
||||||
|
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
|
||||||
|
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
|
||||||
|
"cache_settings_tile_subtitle": "Control the local storage behaviour",
|
||||||
|
"cache_settings_tile_title": "Local Storage",
|
||||||
|
"cache_settings_title": "Caching Settings",
|
||||||
"camera": "Fotoaparatas",
|
"camera": "Fotoaparatas",
|
||||||
"camera_brand": "Fotoaparato prekės ženklas",
|
"camera_brand": "Fotoaparato prekės ženklas",
|
||||||
"camera_model": "Fotoaparato modelis",
|
"camera_model": "Fotoaparato modelis",
|
||||||
"cancel": "Atšaukti",
|
"cancel": "Atšaukti",
|
||||||
"cancel_search": "Atšaukti paiešką",
|
"cancel_search": "Atšaukti paiešką",
|
||||||
|
"canceled": "Canceled",
|
||||||
"cannot_merge_people": "Negalima sujungti asmenų",
|
"cannot_merge_people": "Negalima sujungti asmenų",
|
||||||
"cannot_update_the_description": "Negalima atnaujinti aprašymo",
|
"cannot_update_the_description": "Negalima atnaujinti aprašymo",
|
||||||
"change_date": "Pakeisti datą",
|
"change_date": "Pakeisti datą",
|
||||||
|
"change_display_order": "Change display order",
|
||||||
"change_expiration_time": "Pakeisti galiojimo trukmę",
|
"change_expiration_time": "Pakeisti galiojimo trukmę",
|
||||||
"change_location": "Pakeisti vietovę",
|
"change_location": "Pakeisti vietovę",
|
||||||
"change_name": "Pakeisti vardą",
|
"change_name": "Pakeisti vardą",
|
||||||
"change_name_successfully": "",
|
"change_name_successfully": "",
|
||||||
"change_password": "Pakeisti slaptažodį",
|
"change_password": "Pakeisti slaptažodį",
|
||||||
"change_password_description": "Tai arba pirmas kartas, kai jungiatės prie sistemos, arba buvo pateikta užklausa pakeisti jūsų slaptažodį. Prašome įvesti naują slaptažodį žemiau.",
|
"change_password_description": "Tai arba pirmas kartas, kai jungiatės prie sistemos, arba buvo pateikta užklausa pakeisti jūsų slaptažodį. Prašome įvesti naują slaptažodį žemiau.",
|
||||||
|
"change_password_form_confirm_password": "Confirm Password",
|
||||||
|
"change_password_form_description": "Hi {name},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
|
||||||
|
"change_password_form_new_password": "New Password",
|
||||||
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
"change_your_password": "Pakeisti slaptažodį",
|
"change_your_password": "Pakeisti slaptažodį",
|
||||||
"changed_visibility_successfully": "Matomumas pakeistas sėkmingai",
|
"changed_visibility_successfully": "Matomumas pakeistas sėkmingai",
|
||||||
"check_all": "Žymėti viską",
|
"check_all": "Žymėti viską",
|
||||||
|
"check_corrupt_asset_backup": "Check for corrupt asset backups",
|
||||||
|
"check_corrupt_asset_backup_button": "Perform check",
|
||||||
|
"check_corrupt_asset_backup_description": "Run this check only over Wi-Fi and once all assets have been backed-up. The procedure might take a few minutes.",
|
||||||
"check_logs": "Tikrinti žurnalus",
|
"check_logs": "Tikrinti žurnalus",
|
||||||
"city": "Miestas",
|
"city": "Miestas",
|
||||||
"clear": "Išvalyti",
|
"clear": "Išvalyti",
|
||||||
"clear_all": "Išvalyti viską",
|
"clear_all": "Išvalyti viską",
|
||||||
"clear_message": "Išvalyti pranešimą",
|
"clear_message": "Išvalyti pranešimą",
|
||||||
"clear_value": "Išvalyti reikšmę",
|
"clear_value": "Išvalyti reikšmę",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"close": "Uždaryti",
|
"close": "Uždaryti",
|
||||||
"collapse": "Suskleisti",
|
"collapse": "Suskleisti",
|
||||||
"collapse_all": "Suskleisti viską",
|
"collapse_all": "Suskleisti viską",
|
||||||
@@ -414,6 +568,9 @@
|
|||||||
"comment_options": "Komentarų parinktys",
|
"comment_options": "Komentarų parinktys",
|
||||||
"comments_and_likes": "Komentarai ir patiktukai",
|
"comments_and_likes": "Komentarai ir patiktukai",
|
||||||
"comments_are_disabled": "Komentarai yra išjungti",
|
"comments_are_disabled": "Komentarai yra išjungti",
|
||||||
|
"common_create_new_album": "Create new album",
|
||||||
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
|
"completed": "Completed",
|
||||||
"confirm": "Patvirtinti",
|
"confirm": "Patvirtinti",
|
||||||
"confirm_admin_password": "Patvirtinti administratoriaus slaptažodį",
|
"confirm_admin_password": "Patvirtinti administratoriaus slaptažodį",
|
||||||
"confirm_delete_shared_link": "Ar tikrai norite ištrinti šią bendrinimo nuorodą?",
|
"confirm_delete_shared_link": "Ar tikrai norite ištrinti šią bendrinimo nuorodą?",
|
||||||
@@ -421,6 +578,15 @@
|
|||||||
"contain": "",
|
"contain": "",
|
||||||
"context": "Kontekstas",
|
"context": "Kontekstas",
|
||||||
"continue": "Tęsti",
|
"continue": "Tęsti",
|
||||||
|
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
||||||
|
"control_bottom_app_bar_create_new_album": "Create new album",
|
||||||
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
|
"control_bottom_app_bar_share_link": "Share Link",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
"copied_image_to_clipboard": "Nuotrauka nukopijuota į iškarpinę.",
|
"copied_image_to_clipboard": "Nuotrauka nukopijuota į iškarpinę.",
|
||||||
"copied_to_clipboard": "Nukopijuota į iškapinę!",
|
"copied_to_clipboard": "Nukopijuota į iškapinę!",
|
||||||
"copy_error": "Kopijavimo klaida",
|
"copy_error": "Kopijavimo klaida",
|
||||||
@@ -435,24 +601,34 @@
|
|||||||
"covers": "",
|
"covers": "",
|
||||||
"create": "Sukurti",
|
"create": "Sukurti",
|
||||||
"create_album": "Sukurti albumą",
|
"create_album": "Sukurti albumą",
|
||||||
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_library": "Sukurti biblioteką",
|
"create_library": "Sukurti biblioteką",
|
||||||
"create_link": "Sukurti nuorodą",
|
"create_link": "Sukurti nuorodą",
|
||||||
"create_link_to_share": "Sukurti bendrinimo nuorodą",
|
"create_link_to_share": "Sukurti bendrinimo nuorodą",
|
||||||
"create_link_to_share_description": "Leisti bet kam su nuoroda matyti pažymėtą(-as) nuotrauką(-as)",
|
"create_link_to_share_description": "Leisti bet kam su nuoroda matyti pažymėtą(-as) nuotrauką(-as)",
|
||||||
|
"create_new": "CREATE NEW",
|
||||||
"create_new_person": "Sukurti naują žmogų",
|
"create_new_person": "Sukurti naują žmogų",
|
||||||
"create_new_person_hint": "Priskirti pasirinktus elementus naujam žmogui",
|
"create_new_person_hint": "Priskirti pasirinktus elementus naujam žmogui",
|
||||||
"create_new_user": "Sukurti naują varotoją",
|
"create_new_user": "Sukurti naują varotoją",
|
||||||
|
"create_shared_album_page_share_add_assets": "ADD ASSETS",
|
||||||
|
"create_shared_album_page_share_select_photos": "Select Photos",
|
||||||
"create_tag": "Sukurti žymą",
|
"create_tag": "Sukurti žymą",
|
||||||
"create_tag_description": "Sukurti naują žymą. Įdėtinėms žymoms įveskite pilną kelią, įskaitant pasviruosius brūkšnius.",
|
"create_tag_description": "Sukurti naują žymą. Įdėtinėms žymoms įveskite pilną kelią, įskaitant pasviruosius brūkšnius.",
|
||||||
"create_user": "Sukurti naudotoją",
|
"create_user": "Sukurti naudotoją",
|
||||||
"created": "Sukurta",
|
"created": "Sukurta",
|
||||||
|
"crop": "Crop",
|
||||||
|
"curated_object_page_title": "Things",
|
||||||
"current_device": "Dabartinis įrenginys",
|
"current_device": "Dabartinis įrenginys",
|
||||||
|
"current_server_address": "Current server address",
|
||||||
"custom_locale": "",
|
"custom_locale": "",
|
||||||
"custom_locale_description": "Formatuoti datas ir skaičius pagal kalbą ir regioną",
|
"custom_locale_description": "Formatuoti datas ir skaičius pagal kalbą ir regioną",
|
||||||
|
"daily_title_text_date": "E, MMM dd",
|
||||||
|
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||||
"dark": "",
|
"dark": "",
|
||||||
"date_after": "Data po",
|
"date_after": "Data po",
|
||||||
"date_and_time": "Data ir laikas",
|
"date_and_time": "Data ir laikas",
|
||||||
"date_before": "Data prieš",
|
"date_before": "Data prieš",
|
||||||
|
"date_format": "E, LLL d, y • h:mm a",
|
||||||
"date_of_birth_saved": "Gimimo data sėkmingai išsaugota",
|
"date_of_birth_saved": "Gimimo data sėkmingai išsaugota",
|
||||||
"date_range": "",
|
"date_range": "",
|
||||||
"day": "Diena",
|
"day": "Diena",
|
||||||
@@ -466,16 +642,27 @@
|
|||||||
"delete": "Ištrinti",
|
"delete": "Ištrinti",
|
||||||
"delete_album": "Ištrinti albumą",
|
"delete_album": "Ištrinti albumą",
|
||||||
"delete_api_key_prompt": "Ar tikrai norite ištrinti šį API raktą?",
|
"delete_api_key_prompt": "Ar tikrai norite ištrinti šį API raktą?",
|
||||||
|
"delete_dialog_alert": "These items will be permanently deleted from Immich and from your device",
|
||||||
|
"delete_dialog_alert_local": "These items will be permanently removed from your device but still be available on the Immich server",
|
||||||
|
"delete_dialog_alert_local_non_backed_up": "Some of the items aren't backed up to Immich and will be permanently removed from your device",
|
||||||
|
"delete_dialog_alert_remote": "These items will be permanently deleted from the Immich server",
|
||||||
|
"delete_dialog_ok_force": "Delete Anyway",
|
||||||
|
"delete_dialog_title": "Delete Permanently",
|
||||||
"delete_duplicates_confirmation": "Ar tikrai norite visam laikui ištrinti šiuos dublikatus?",
|
"delete_duplicates_confirmation": "Ar tikrai norite visam laikui ištrinti šiuos dublikatus?",
|
||||||
"delete_key": "Ištrinti raktą",
|
"delete_key": "Ištrinti raktą",
|
||||||
"delete_library": "Ištrinti biblioteką",
|
"delete_library": "Ištrinti biblioteką",
|
||||||
"delete_link": "Ištrinti nuorodą",
|
"delete_link": "Ištrinti nuorodą",
|
||||||
|
"delete_local_dialog_ok_backed_up_only": "Delete Backed Up Only",
|
||||||
|
"delete_local_dialog_ok_force": "Delete Anyway",
|
||||||
"delete_shared_link": "Ištrinti bendrinimo nuorodą",
|
"delete_shared_link": "Ištrinti bendrinimo nuorodą",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"delete_tag": "Ištrinti žymą",
|
"delete_tag": "Ištrinti žymą",
|
||||||
"delete_tag_confirmation_prompt": "Ar tikrai norite ištrinti žymą {tagName}?",
|
"delete_tag_confirmation_prompt": "Ar tikrai norite ištrinti žymą {tagName}?",
|
||||||
"delete_user": "Ištrinti naudotoją",
|
"delete_user": "Ištrinti naudotoją",
|
||||||
"deleted_shared_link": "Bendrinimo nuoroda ištrinta",
|
"deleted_shared_link": "Bendrinimo nuoroda ištrinta",
|
||||||
"description": "Aprašymas",
|
"description": "Aprašymas",
|
||||||
|
"description_input_hint_text": "Add description...",
|
||||||
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"details": "Detalės",
|
"details": "Detalės",
|
||||||
"direction": "Kryptis",
|
"direction": "Kryptis",
|
||||||
"disabled": "Išjungta",
|
"disabled": "Išjungta",
|
||||||
@@ -491,8 +678,22 @@
|
|||||||
"documentation": "Dokumentacija",
|
"documentation": "Dokumentacija",
|
||||||
"done": "",
|
"done": "",
|
||||||
"download": "Atsisiųsti",
|
"download": "Atsisiųsti",
|
||||||
|
"download_canceled": "Download canceled",
|
||||||
|
"download_complete": "Download complete",
|
||||||
|
"download_enqueue": "Download enqueued",
|
||||||
|
"download_error": "Download Error",
|
||||||
|
"download_failed": "Download failed",
|
||||||
|
"download_filename": "file: {}",
|
||||||
|
"download_finished": "Download finished",
|
||||||
|
"download_notfound": "Download not found",
|
||||||
|
"download_paused": "Download paused",
|
||||||
"download_settings": "Atsisiųsti",
|
"download_settings": "Atsisiųsti",
|
||||||
|
"download_started": "Download started",
|
||||||
|
"download_sucess": "Download success",
|
||||||
|
"download_sucess_android": "The media has been downloaded to DCIM/Immich",
|
||||||
|
"download_waiting_to_retry": "Waiting to retry",
|
||||||
"downloading": "Siunčiama",
|
"downloading": "Siunčiama",
|
||||||
|
"downloading_media": "Downloading media",
|
||||||
"duplicates": "Dublikatai",
|
"duplicates": "Dublikatai",
|
||||||
"duplicates_description": "Sutvarkykite kiekvieną elementų grupę nurodydami elementus, kurie yra dublikatai (jei tokių yra)",
|
"duplicates_description": "Sutvarkykite kiekvieną elementų grupę nurodydami elementus, kurie yra dublikatai (jei tokių yra)",
|
||||||
"duration": "Trukmė",
|
"duration": "Trukmė",
|
||||||
@@ -508,6 +709,7 @@
|
|||||||
"edit_key": "Redaguoti raktą",
|
"edit_key": "Redaguoti raktą",
|
||||||
"edit_link": "Redaguoti nuorodą",
|
"edit_link": "Redaguoti nuorodą",
|
||||||
"edit_location": "Redaguoti vietovę",
|
"edit_location": "Redaguoti vietovę",
|
||||||
|
"edit_location_dialog_title": "Location",
|
||||||
"edit_name": "Redaguoti vardą",
|
"edit_name": "Redaguoti vardą",
|
||||||
"edit_people": "Redaguoti žmones",
|
"edit_people": "Redaguoti žmones",
|
||||||
"edit_tag": "Redaguoti žymą",
|
"edit_tag": "Redaguoti žymą",
|
||||||
@@ -516,12 +718,17 @@
|
|||||||
"edited": "Redaguota",
|
"edited": "Redaguota",
|
||||||
"editor": "",
|
"editor": "",
|
||||||
"email": "El. paštas",
|
"email": "El. paštas",
|
||||||
|
"empty_folder": "This folder is empty",
|
||||||
"empty_trash": "Ištuštinti šiukšliadėžę",
|
"empty_trash": "Ištuštinti šiukšliadėžę",
|
||||||
"enable": "Įgalinti",
|
"enable": "Įgalinti",
|
||||||
"enabled": "Įgalintas",
|
"enabled": "Įgalintas",
|
||||||
"end_date": "Pabaigos data",
|
"end_date": "Pabaigos data",
|
||||||
|
"enqueued": "Enqueued",
|
||||||
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
"error": "Klaida",
|
"error": "Klaida",
|
||||||
|
"error_change_sort_album": "Failed to change album sort order",
|
||||||
"error_loading_image": "Klaida įkeliant vaizdą",
|
"error_loading_image": "Klaida įkeliant vaizdą",
|
||||||
|
"error_saving_image": "Error: {}",
|
||||||
"error_title": "Klaida - Kažkas nutiko ne taip",
|
"error_title": "Klaida - Kažkas nutiko ne taip",
|
||||||
"errors": {
|
"errors": {
|
||||||
"cant_apply_changes": "Negalima taikyti pakeitimų",
|
"cant_apply_changes": "Negalima taikyti pakeitimų",
|
||||||
@@ -614,8 +821,21 @@
|
|||||||
"unable_to_upload_file": "Nepavyksta įkelti failo"
|
"unable_to_upload_file": "Nepavyksta įkelti failo"
|
||||||
},
|
},
|
||||||
"exif": "Exif",
|
"exif": "Exif",
|
||||||
|
"exif_bottom_sheet_description": "Add Description...",
|
||||||
|
"exif_bottom_sheet_details": "DETAILS",
|
||||||
|
"exif_bottom_sheet_location": "LOCATION",
|
||||||
|
"exif_bottom_sheet_people": "PEOPLE",
|
||||||
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
|
"exif_bottom_sheet_person_age": "Age {}",
|
||||||
|
"exif_bottom_sheet_person_age_months": "Age {} months",
|
||||||
|
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
||||||
|
"exif_bottom_sheet_person_age_years": "Age {}",
|
||||||
"exit_slideshow": "Išeiti iš skaidrių peržiūros",
|
"exit_slideshow": "Išeiti iš skaidrių peržiūros",
|
||||||
"expand_all": "Išskleisti viską",
|
"expand_all": "Išskleisti viską",
|
||||||
|
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
||||||
|
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
||||||
|
"experimental_settings_subtitle": "Use at your own risk!",
|
||||||
|
"experimental_settings_title": "Experimental",
|
||||||
"expire_after": "",
|
"expire_after": "",
|
||||||
"expired": "Nebegalioja",
|
"expired": "Nebegalioja",
|
||||||
"expires_date": "Nebegalios už {date}",
|
"expires_date": "Nebegalios už {date}",
|
||||||
@@ -625,10 +845,16 @@
|
|||||||
"extension": "Plėtinys",
|
"extension": "Plėtinys",
|
||||||
"external": "Išorinis",
|
"external": "Išorinis",
|
||||||
"external_libraries": "Išorinės bibliotekos",
|
"external_libraries": "Išorinės bibliotekos",
|
||||||
|
"external_network": "External network",
|
||||||
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
"face_unassigned": "Nepriskirta",
|
"face_unassigned": "Nepriskirta",
|
||||||
|
"failed": "Failed",
|
||||||
|
"failed_to_load_assets": "Failed to load assets",
|
||||||
|
"failed_to_load_folder": "Failed to load folder",
|
||||||
"favorite": "Mėgstamiausias",
|
"favorite": "Mėgstamiausias",
|
||||||
"favorite_or_unfavorite_photo": "Įtraukti prie arba pašalinti iš mėgstamiausių",
|
"favorite_or_unfavorite_photo": "Įtraukti prie arba pašalinti iš mėgstamiausių",
|
||||||
"favorites": "Mėgstamiausi",
|
"favorites": "Mėgstamiausi",
|
||||||
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"feature_photo_updated": "",
|
"feature_photo_updated": "",
|
||||||
"features": "Funkcijos",
|
"features": "Funkcijos",
|
||||||
"features_setting_description": "Valdyti aplikacijos funkcijas",
|
"features_setting_description": "Valdyti aplikacijos funkcijas",
|
||||||
@@ -636,21 +862,34 @@
|
|||||||
"file_name_or_extension": "Failo pavadinimas arba plėtinys",
|
"file_name_or_extension": "Failo pavadinimas arba plėtinys",
|
||||||
"filename": "",
|
"filename": "",
|
||||||
"filetype": "Failo tipas",
|
"filetype": "Failo tipas",
|
||||||
|
"filter": "Filter",
|
||||||
"filter_people": "Filtruoti žmones",
|
"filter_people": "Filtruoti žmones",
|
||||||
"fix_incorrect_match": "",
|
"fix_incorrect_match": "",
|
||||||
|
"folder": "Folder",
|
||||||
|
"folder_not_found": "Folder not found",
|
||||||
"folders": "Aplankai",
|
"folders": "Aplankai",
|
||||||
"folders_feature_description": "Peržiūrėkite failų sistemoje esančias nuotraukas ir vaizdo įrašus aplankų rodinyje",
|
"folders_feature_description": "Peržiūrėkite failų sistemoje esančias nuotraukas ir vaizdo įrašus aplankų rodinyje",
|
||||||
"forward": "",
|
"forward": "",
|
||||||
"general": "",
|
"general": "",
|
||||||
"get_help": "Gauti pagalbos",
|
"get_help": "Gauti pagalbos",
|
||||||
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"getting_started": "",
|
"getting_started": "",
|
||||||
"go_back": "",
|
"go_back": "",
|
||||||
"go_to_search": "",
|
"go_to_search": "",
|
||||||
|
"grant_permission": "Grant permission",
|
||||||
"group_albums_by": "Grupuoti albumus pagal...",
|
"group_albums_by": "Grupuoti albumus pagal...",
|
||||||
"group_no": "Negrupuoti",
|
"group_no": "Negrupuoti",
|
||||||
"group_owner": "Grupuoti pagal savininką",
|
"group_owner": "Grupuoti pagal savininką",
|
||||||
"group_year": "Grupuoti pagal metus",
|
"group_year": "Grupuoti pagal metus",
|
||||||
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"has_quota": "Turi kvotą",
|
"has_quota": "Turi kvotą",
|
||||||
|
"header_settings_add_header_tip": "Add Header",
|
||||||
|
"header_settings_field_validator_msg": "Value cannot be empty",
|
||||||
|
"header_settings_header_name_input": "Header name",
|
||||||
|
"header_settings_header_value_input": "Header value",
|
||||||
|
"headers_settings_tile_subtitle": "Define proxy headers the app should send with each network request",
|
||||||
|
"headers_settings_tile_title": "Custom proxy headers",
|
||||||
"hi_user": "Labas {name} ({email})",
|
"hi_user": "Labas {name} ({email})",
|
||||||
"hide_all_people": "Slėpti visus asmenis",
|
"hide_all_people": "Slėpti visus asmenis",
|
||||||
"hide_gallery": "Slėpti galeriją",
|
"hide_gallery": "Slėpti galeriją",
|
||||||
@@ -658,9 +897,29 @@
|
|||||||
"hide_password": "Slėpti slaptažodį",
|
"hide_password": "Slėpti slaptažodį",
|
||||||
"hide_person": "Slėpti asmenį",
|
"hide_person": "Slėpti asmenį",
|
||||||
"hide_unnamed_people": "Slėpti neįvardintus asmenis",
|
"hide_unnamed_people": "Slėpti neįvardintus asmenis",
|
||||||
|
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
|
||||||
|
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
|
||||||
|
"home_page_add_to_album_success": "Added {added} assets to album {album}.",
|
||||||
|
"home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
|
||||||
|
"home_page_archive_err_local": "Can not archive local assets yet, skipping",
|
||||||
|
"home_page_archive_err_partner": "Can not archive partner assets, skipping",
|
||||||
|
"home_page_building_timeline": "Building the timeline",
|
||||||
|
"home_page_delete_err_partner": "Can not delete partner assets, skipping",
|
||||||
|
"home_page_delete_remote_err_local": "Local assets in delete remote selection, skipping",
|
||||||
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
|
"home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
|
||||||
|
"home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
|
||||||
|
"home_page_share_err_local": "Can not share local assets via link, skipping",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"host": "",
|
"host": "",
|
||||||
"hour": "Valanda",
|
"hour": "Valanda",
|
||||||
|
"ignore_icloud_photos": "Ignore iCloud photos",
|
||||||
|
"ignore_icloud_photos_description": "Photos that are stored on iCloud will not be uploaded to the Immich server",
|
||||||
"image": "Nuotrauka",
|
"image": "Nuotrauka",
|
||||||
|
"image_saved_successfully": "Image saved",
|
||||||
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"immich_logo": "Immich logotipas",
|
"immich_logo": "Immich logotipas",
|
||||||
"import_from_json": "Importuoti iš JSON",
|
"import_from_json": "Importuoti iš JSON",
|
||||||
"import_path": "Importavimo kelias",
|
"import_path": "Importavimo kelias",
|
||||||
@@ -676,6 +935,8 @@
|
|||||||
"night_at_midnight": "Kiekvieną vidurnaktį",
|
"night_at_midnight": "Kiekvieną vidurnaktį",
|
||||||
"night_at_twoam": "Kiekvieną naktį 02:00"
|
"night_at_twoam": "Kiekvieną naktį 02:00"
|
||||||
},
|
},
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"invite_people": "Kviesti žmones",
|
"invite_people": "Kviesti žmones",
|
||||||
"invite_to_album": "Pakviesti į albumą",
|
"invite_to_album": "Pakviesti į albumą",
|
||||||
"items_count": "{count, plural, one {# elementas} few {# elementai} other {# elementų}}",
|
"items_count": "{count, plural, one {# elementas} few {# elementai} other {# elementų}}",
|
||||||
@@ -693,6 +954,12 @@
|
|||||||
"level": "Lygis",
|
"level": "Lygis",
|
||||||
"library": "Biblioteka",
|
"library": "Biblioteka",
|
||||||
"library_options": "Bibliotekos pasirinktys",
|
"library_options": "Bibliotekos pasirinktys",
|
||||||
|
"library_page_device_albums": "Albums on Device",
|
||||||
|
"library_page_new_album": "New album",
|
||||||
|
"library_page_sort_asset_count": "Number of assets",
|
||||||
|
"library_page_sort_created": "Created date",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_title": "Album title",
|
||||||
"light": "",
|
"light": "",
|
||||||
"link_options": "Nuorodų parinktys",
|
"link_options": "Nuorodų parinktys",
|
||||||
"link_to_oauth": "Susieti su OAuth",
|
"link_to_oauth": "Susieti su OAuth",
|
||||||
@@ -700,11 +967,41 @@
|
|||||||
"list": "Sąrašas",
|
"list": "Sąrašas",
|
||||||
"loading": "Kraunama",
|
"loading": "Kraunama",
|
||||||
"loading_search_results_failed": "Nepavyko užkrauti paieškos rezultatų",
|
"loading_search_results_failed": "Nepavyko užkrauti paieškos rezultatų",
|
||||||
|
"local_network": "Local network",
|
||||||
|
"local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
|
||||||
|
"location_permission": "Location permission",
|
||||||
|
"location_permission_content": "In order to use the auto-switching feature, Immich needs precise location permission so it can read the current WiFi network's name",
|
||||||
|
"location_picker_choose_on_map": "Choose on map",
|
||||||
|
"location_picker_latitude_error": "Enter a valid latitude",
|
||||||
|
"location_picker_latitude_hint": "Enter your latitude here",
|
||||||
|
"location_picker_longitude_error": "Enter a valid longitude",
|
||||||
|
"location_picker_longitude_hint": "Enter your longitude here",
|
||||||
"log_out": "Atsijungti",
|
"log_out": "Atsijungti",
|
||||||
"log_out_all_devices": "Atsijungti iš visų įrenginių",
|
"log_out_all_devices": "Atsijungti iš visų įrenginių",
|
||||||
"logged_out_all_devices": "Atsijungta iš visų įrenginių",
|
"logged_out_all_devices": "Atsijungta iš visų įrenginių",
|
||||||
"login": "Prisijungti",
|
"login": "Prisijungti",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
"login_form_back_button_text": "Back",
|
||||||
|
"login_form_email_hint": "youremail@email.com",
|
||||||
|
"login_form_endpoint_hint": "http://your-server-ip:port",
|
||||||
|
"login_form_endpoint_url": "Server Endpoint URL",
|
||||||
|
"login_form_err_http": "Please specify http:// or https://",
|
||||||
|
"login_form_err_invalid_email": "Invalid Email",
|
||||||
|
"login_form_err_invalid_url": "Invalid URL",
|
||||||
|
"login_form_err_leading_whitespace": "Leading whitespace",
|
||||||
|
"login_form_err_trailing_whitespace": "Trailing whitespace",
|
||||||
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
|
"login_form_password_hint": "password",
|
||||||
|
"login_form_save_login": "Stay logged in",
|
||||||
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
|
"login_form_server_error": "Could not connect to server.",
|
||||||
"login_has_been_disabled": "Prisijungimas išjungtas.",
|
"login_has_been_disabled": "Prisijungimas išjungtas.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
"logout_all_device_confirmation": "Ar tikrai norite atsijungti iš visų įrenginių?",
|
"logout_all_device_confirmation": "Ar tikrai norite atsijungti iš visų įrenginių?",
|
||||||
"logout_this_device_confirmation": "Ar tikrai norite atsijungti iš šio prietaiso?",
|
"logout_this_device_confirmation": "Ar tikrai norite atsijungti iš šio prietaiso?",
|
||||||
"longitude": "Ilguma",
|
"longitude": "Ilguma",
|
||||||
@@ -720,12 +1017,39 @@
|
|||||||
"manage_your_devices": "Valdyti prijungtus įrenginius",
|
"manage_your_devices": "Valdyti prijungtus įrenginius",
|
||||||
"manage_your_oauth_connection": "Tvarkyti OAuth prisijungimą",
|
"manage_your_oauth_connection": "Tvarkyti OAuth prisijungimą",
|
||||||
"map": "Žemėlapis",
|
"map": "Žemėlapis",
|
||||||
|
"map_assets_in_bound": "{} photo",
|
||||||
|
"map_assets_in_bounds": "{} photos",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_picker_page_use_location": "Use this location",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
"map_marker_with_image": "",
|
"map_marker_with_image": "",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
"map_settings": "Žemėlapio nustatymai",
|
"map_settings": "Žemėlapio nustatymai",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_date_range_option_day": "Past 24 hours",
|
||||||
|
"map_settings_date_range_option_days": "Past {} days",
|
||||||
|
"map_settings_date_range_option_year": "Past year",
|
||||||
|
"map_settings_date_range_option_years": "Past {} years",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_include_show_partners": "Include Partners",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_settings_theme_settings": "Map Theme",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"matches": "Atitikmenys",
|
"matches": "Atitikmenys",
|
||||||
"media_type": "Laikmenos tipas",
|
"media_type": "Laikmenos tipas",
|
||||||
"memories": "Atsiminimai",
|
"memories": "Atsiminimai",
|
||||||
|
"memories_all_caught_up": "All caught up",
|
||||||
|
"memories_check_back_tomorrow": "Check back tomorrow for more memories",
|
||||||
"memories_setting_description": "Valdyti tai, ką matote savo prisiminimuose",
|
"memories_setting_description": "Valdyti tai, ką matote savo prisiminimuose",
|
||||||
|
"memories_start_over": "Start Over",
|
||||||
|
"memories_swipe_to_close": "Swipe up to close",
|
||||||
|
"memories_year_ago": "A year ago",
|
||||||
|
"memories_years_ago": "{} years ago",
|
||||||
"memory": "Atmintis",
|
"memory": "Atmintis",
|
||||||
"menu": "Meniu",
|
"menu": "Meniu",
|
||||||
"merge": "Sujungti",
|
"merge": "Sujungti",
|
||||||
@@ -739,11 +1063,16 @@
|
|||||||
"missing": "Trūkstami",
|
"missing": "Trūkstami",
|
||||||
"model": "Modelis",
|
"model": "Modelis",
|
||||||
"month": "Mėnesis",
|
"month": "Mėnesis",
|
||||||
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"more": "Daugiau",
|
"more": "Daugiau",
|
||||||
"moved_to_trash": "Perkelta į šiukšliadėžę",
|
"moved_to_trash": "Perkelta į šiukšliadėžę",
|
||||||
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"my_albums": "Mano albumai",
|
"my_albums": "Mano albumai",
|
||||||
"name": "Vardas",
|
"name": "Vardas",
|
||||||
"name_or_nickname": "Vardas arba slapyvardis",
|
"name_or_nickname": "Vardas arba slapyvardis",
|
||||||
|
"networking_settings": "Networking",
|
||||||
|
"networking_subtitle": "Manage the server endpoint settings",
|
||||||
"never": "Niekada",
|
"never": "Niekada",
|
||||||
"new_album": "Naujas albumas",
|
"new_album": "Naujas albumas",
|
||||||
"new_api_key": "Naujas API raktas",
|
"new_api_key": "Naujas API raktas",
|
||||||
@@ -760,6 +1089,7 @@
|
|||||||
"no_albums_yet": "Atrodo, kad dar neturite albumų.",
|
"no_albums_yet": "Atrodo, kad dar neturite albumų.",
|
||||||
"no_archived_assets_message": "Suarchyvuokite nuotraukas ir vaizdo įrašus, kad jie nebūtų rodomi nuotraukų rodinyje",
|
"no_archived_assets_message": "Suarchyvuokite nuotraukas ir vaizdo įrašus, kad jie nebūtų rodomi nuotraukų rodinyje",
|
||||||
"no_assets_message": "SPUSTELĖKITE NORĖDAMI ĮKELTI PIRMĄJĄ NUOTRAUKĄ",
|
"no_assets_message": "SPUSTELĖKITE NORĖDAMI ĮKELTI PIRMĄJĄ NUOTRAUKĄ",
|
||||||
|
"no_assets_to_show": "No assets to show",
|
||||||
"no_duplicates_found": "Dublikatų nerasta.",
|
"no_duplicates_found": "Dublikatų nerasta.",
|
||||||
"no_exif_info_available": "",
|
"no_exif_info_available": "",
|
||||||
"no_explore_results_message": "Įkelkite daugiau nuotraukų ir tyrinėkite savo kolekciją.",
|
"no_explore_results_message": "Įkelkite daugiau nuotraukų ir tyrinėkite savo kolekciją.",
|
||||||
@@ -771,8 +1101,12 @@
|
|||||||
"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",
|
"not_selected": "Not selected",
|
||||||
"notes": "Pastabos",
|
"notes": "Pastabos",
|
||||||
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
|
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
||||||
|
"notification_permission_list_tile_enable_button": "Enable Notifications",
|
||||||
|
"notification_permission_list_tile_title": "Notification Permission",
|
||||||
"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",
|
||||||
"notifications_setting_description": "Tvarkyti pranešimus",
|
"notifications_setting_description": "Tvarkyti pranešimus",
|
||||||
@@ -782,6 +1116,7 @@
|
|||||||
"offline_paths": "Nepasiekiami adresai",
|
"offline_paths": "Nepasiekiami adresai",
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"oldest_first": "Seniausias pirmas",
|
"oldest_first": "Seniausias pirmas",
|
||||||
|
"on_this_device": "On this device",
|
||||||
"onboarding_welcome_user": "Sveiki atvykę, {user}",
|
"onboarding_welcome_user": "Sveiki atvykę, {user}",
|
||||||
"online": "Prisijungęs",
|
"online": "Prisijungęs",
|
||||||
"only_favorites": "Tik mėgstamiausi",
|
"only_favorites": "Tik mėgstamiausi",
|
||||||
@@ -799,6 +1134,14 @@
|
|||||||
"partner_can_access": "{partner} gali naudotis",
|
"partner_can_access": "{partner} gali naudotis",
|
||||||
"partner_can_access_assets": "Visos jūsų nuotraukos ir vaizdo įrašai, išskyrus archyvuotus ir ištrintus",
|
"partner_can_access_assets": "Visos jūsų nuotraukos ir vaizdo įrašai, išskyrus archyvuotus ir ištrintus",
|
||||||
"partner_can_access_location": "Vieta, kurioje darytos nuotraukos",
|
"partner_can_access_location": "Vieta, kurioje darytos nuotraukos",
|
||||||
|
"partner_list_user_photos": "{user}'s photos",
|
||||||
|
"partner_list_view_all": "View all",
|
||||||
|
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
||||||
|
"partner_page_no_more_users": "No more users to add",
|
||||||
|
"partner_page_partner_add_failed": "Failed to add partner",
|
||||||
|
"partner_page_select_partner": "Select partner",
|
||||||
|
"partner_page_shared_to_title": "Shared to",
|
||||||
|
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
||||||
"partner_sharing": "",
|
"partner_sharing": "",
|
||||||
"partners": "Partneriai",
|
"partners": "Partneriai",
|
||||||
"password": "Slaptažodis",
|
"password": "Slaptažodis",
|
||||||
@@ -826,6 +1169,14 @@
|
|||||||
"permanently_delete_assets_count": "Visam laikui ištrinti {count, plural, one {# elementą} few {# elementus} other {# elementų}}",
|
"permanently_delete_assets_count": "Visam laikui ištrinti {count, plural, one {# elementą} few {# elementus} other {# elementų}}",
|
||||||
"permanently_deleted_asset": "",
|
"permanently_deleted_asset": "",
|
||||||
"permanently_deleted_assets_count": "Visam laikui {count, plural, one {ištrintas # elementas} few {ištrinti # elementai} other {ištrinta # elementų}}",
|
"permanently_deleted_assets_count": "Visam laikui {count, plural, one {ištrintas # elementas} few {ištrinti # elementai} other {ištrinta # elementų}}",
|
||||||
|
"permission_onboarding_back": "Back",
|
||||||
|
"permission_onboarding_continue_anyway": "Continue anyway",
|
||||||
|
"permission_onboarding_get_started": "Get started",
|
||||||
|
"permission_onboarding_go_to_settings": "Go to settings",
|
||||||
|
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
||||||
|
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
||||||
|
"permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
|
||||||
|
"permission_onboarding_request": "Immich requires permission to view your photos and videos.",
|
||||||
"photos": "Nuotraukos",
|
"photos": "Nuotraukos",
|
||||||
"photos_and_videos": "Nuotraukos ir vaizdo įrašai",
|
"photos_and_videos": "Nuotraukos ir vaizdo įrašai",
|
||||||
"photos_count": "{count, plural, one {{count, number} nuotrauka} few {{count, number} nuotraukos} other {{count, number} nuotraukų}}",
|
"photos_count": "{count, plural, one {{count, number} nuotrauka} few {{count, number} nuotraukos} other {{count, number} nuotraukų}}",
|
||||||
@@ -838,12 +1189,21 @@
|
|||||||
"play_motion_photo": "",
|
"play_motion_photo": "",
|
||||||
"play_or_pause_video": "",
|
"play_or_pause_video": "",
|
||||||
"port": "",
|
"port": "",
|
||||||
|
"preferences_settings_subtitle": "Manage the app's preferences",
|
||||||
|
"preferences_settings_title": "Preferences",
|
||||||
"preset": "",
|
"preset": "",
|
||||||
"preview": "",
|
"preview": "",
|
||||||
"previous": "",
|
"previous": "",
|
||||||
"previous_memory": "",
|
"previous_memory": "",
|
||||||
"previous_or_next_photo": "",
|
"previous_or_next_photo": "",
|
||||||
"primary": "",
|
"primary": "",
|
||||||
|
"profile_drawer_app_logs": "Logs",
|
||||||
|
"profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.",
|
||||||
|
"profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.",
|
||||||
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
|
"profile_drawer_github": "GitHub",
|
||||||
|
"profile_drawer_server_out_of_date_major": "Server is out of date. Please update to the latest major version.",
|
||||||
|
"profile_drawer_server_out_of_date_minor": "Server is out of date. Please update to the latest minor version.",
|
||||||
"profile_image_of_user": "{user} profilio nuotrauka",
|
"profile_image_of_user": "{user} profilio nuotrauka",
|
||||||
"profile_picture_set": "Profilio nuotrauka nustatyta.",
|
"profile_picture_set": "Profilio nuotrauka nustatyta.",
|
||||||
"public_album": "Viešas albumas",
|
"public_album": "Viešas albumas",
|
||||||
@@ -886,6 +1246,8 @@
|
|||||||
"read_changelog": "",
|
"read_changelog": "",
|
||||||
"recent": "",
|
"recent": "",
|
||||||
"recent_searches": "",
|
"recent_searches": "",
|
||||||
|
"recently_added": "Recently added",
|
||||||
|
"recently_added_page_title": "Recently Added",
|
||||||
"refresh": "Atnaujinti",
|
"refresh": "Atnaujinti",
|
||||||
"refresh_encoded_videos": "Perkrauti apdorotus vaizdo įrašus",
|
"refresh_encoded_videos": "Perkrauti apdorotus vaizdo įrašus",
|
||||||
"refresh_faces": "Perkrauti veidus",
|
"refresh_faces": "Perkrauti veidus",
|
||||||
@@ -927,10 +1289,12 @@
|
|||||||
"review_duplicates": "Peržiūrėti dublikatus",
|
"review_duplicates": "Peržiūrėti dublikatus",
|
||||||
"role": "",
|
"role": "",
|
||||||
"save": "Išsaugoti",
|
"save": "Išsaugoti",
|
||||||
|
"save_to_gallery": "Save to gallery",
|
||||||
"saved_api_key": "Išsaugotas API raktas",
|
"saved_api_key": "Išsaugotas API raktas",
|
||||||
"saved_profile": "Išsaugotas profilis",
|
"saved_profile": "Išsaugotas profilis",
|
||||||
"saved_settings": "Išsaugoti nustatymai",
|
"saved_settings": "Išsaugoti nustatymai",
|
||||||
"say_something": "Ką nors pasakykite",
|
"say_something": "Ką nors pasakykite",
|
||||||
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"scan_all_libraries": "Skenuoti visas bibliotekas",
|
"scan_all_libraries": "Skenuoti visas bibliotekas",
|
||||||
"scan_library": "Skenuoti",
|
"scan_library": "Skenuoti",
|
||||||
"scan_settings": "Skenavimo nustatymai",
|
"scan_settings": "Skenavimo nustatymai",
|
||||||
@@ -944,12 +1308,41 @@
|
|||||||
"search_camera_model": "",
|
"search_camera_model": "",
|
||||||
"search_city": "",
|
"search_city": "",
|
||||||
"search_country": "Ieškoti šalies...",
|
"search_country": "Ieškoti šalies...",
|
||||||
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_filename": "Search by file name",
|
||||||
|
"search_filter_location": "Location",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_for_existing_person": "",
|
"search_for_existing_person": "",
|
||||||
|
"search_no_more_result": "No more results",
|
||||||
"search_no_people_named": "Nėra žmonių vardu „{name}“",
|
"search_no_people_named": "Nėra žmonių vardu „{name}“",
|
||||||
|
"search_no_result": "No results found, try a different search term or combination",
|
||||||
|
"search_page_categories": "Categories",
|
||||||
|
"search_page_motion_photos": "Motion Photos",
|
||||||
|
"search_page_no_objects": "No Objects Info Available",
|
||||||
|
"search_page_no_places": "No Places Info Available",
|
||||||
|
"search_page_screenshots": "Screenshots",
|
||||||
|
"search_page_search_photos_videos": "Search for your photos and videos",
|
||||||
|
"search_page_selfies": "Selfies",
|
||||||
|
"search_page_things": "Things",
|
||||||
|
"search_page_view_all_button": "View all",
|
||||||
|
"search_page_your_activity": "Your activity",
|
||||||
|
"search_page_your_map": "Your Map",
|
||||||
"search_people": "Ieškoti žmonių",
|
"search_people": "Ieškoti žmonių",
|
||||||
"search_places": "Ieškoti vietų",
|
"search_places": "Ieškoti vietų",
|
||||||
|
"search_result_page_new_search_hint": "New Search",
|
||||||
"search_settings": "Ieškoti nustatymų",
|
"search_settings": "Ieškoti nustatymų",
|
||||||
"search_state": "",
|
"search_state": "",
|
||||||
|
"search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ",
|
||||||
|
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
||||||
"search_tags": "Ieškoti žymų...",
|
"search_tags": "Ieškoti žymų...",
|
||||||
"search_timezone": "",
|
"search_timezone": "",
|
||||||
"search_type": "Paieškos tipas",
|
"search_type": "Paieškos tipas",
|
||||||
@@ -967,10 +1360,14 @@
|
|||||||
"select_new_face": "",
|
"select_new_face": "",
|
||||||
"select_photos": "",
|
"select_photos": "",
|
||||||
"select_trash_all": "Visus pažymėti \"Išmesti\"",
|
"select_trash_all": "Visus pažymėti \"Išmesti\"",
|
||||||
|
"select_user_for_sharing_page_err_album": "Failed to create album",
|
||||||
"selected": "Pasirinkta",
|
"selected": "Pasirinkta",
|
||||||
"selected_count": "{count, plural, one {# pasirinktas} few {# pasirinkti} other {# pasirinktų}}",
|
"selected_count": "{count, plural, one {# pasirinktas} few {# pasirinkti} other {# pasirinktų}}",
|
||||||
"send_message": "Siųsti žinutę",
|
"send_message": "Siųsti žinutę",
|
||||||
"send_welcome_email": "Siųsti sveikinimo el. laišką",
|
"send_welcome_email": "Siųsti sveikinimo el. laišką",
|
||||||
|
"server_endpoint": "Server Endpoint",
|
||||||
|
"server_info_box_app_version": "App Version",
|
||||||
|
"server_info_box_server_url": "Server URL",
|
||||||
"server_offline": "Serveris nepasiekiamas",
|
"server_offline": "Serveris nepasiekiamas",
|
||||||
"server_online": "Serveris pasiekiamas",
|
"server_online": "Serveris pasiekiamas",
|
||||||
"server_stats": "Serverio statistika",
|
"server_stats": "Serverio statistika",
|
||||||
@@ -981,19 +1378,88 @@
|
|||||||
"set_date_of_birth": "Nustatyti gimimo datą",
|
"set_date_of_birth": "Nustatyti gimimo datą",
|
||||||
"set_profile_picture": "Nustatyti profilio nuotrauką",
|
"set_profile_picture": "Nustatyti profilio nuotrauką",
|
||||||
"set_slideshow_to_fullscreen": "Nustatyti skaidrių peržiūrą per visą ekraną",
|
"set_slideshow_to_fullscreen": "Nustatyti skaidrių peržiūrą per visą ekraną",
|
||||||
|
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
|
||||||
|
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
||||||
|
"setting_image_viewer_original_title": "Load original image",
|
||||||
|
"setting_image_viewer_preview_subtitle": "Enable to load a medium-resolution image. Disable to either directly load the original or only use the thumbnail.",
|
||||||
|
"setting_image_viewer_preview_title": "Load preview image",
|
||||||
|
"setting_image_viewer_title": "Images",
|
||||||
|
"setting_languages_apply": "Apply",
|
||||||
|
"setting_languages_subtitle": "Change the app's language",
|
||||||
|
"setting_languages_title": "Languages",
|
||||||
|
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
|
||||||
|
"setting_notifications_notify_hours": "{} hours",
|
||||||
|
"setting_notifications_notify_immediately": "immediately",
|
||||||
|
"setting_notifications_notify_minutes": "{} minutes",
|
||||||
|
"setting_notifications_notify_never": "never",
|
||||||
|
"setting_notifications_notify_seconds": "{} seconds",
|
||||||
|
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
||||||
|
"setting_notifications_single_progress_title": "Show background backup detail progress",
|
||||||
|
"setting_notifications_subtitle": "Adjust your notification preferences",
|
||||||
|
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
||||||
|
"setting_notifications_total_progress_title": "Show background backup total progress",
|
||||||
|
"setting_video_viewer_looping_title": "Looping",
|
||||||
|
"setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
|
||||||
|
"setting_video_viewer_original_video_title": "Force original video",
|
||||||
"settings": "Nustatymai",
|
"settings": "Nustatymai",
|
||||||
|
"settings_require_restart": "Please restart Immich to apply this setting",
|
||||||
"settings_saved": "",
|
"settings_saved": "",
|
||||||
"share": "Dalintis",
|
"share": "Dalintis",
|
||||||
|
"share_add_photos": "Add photos",
|
||||||
|
"share_assets_selected": "{} selected",
|
||||||
|
"share_dialog_preparing": "Preparing...",
|
||||||
"shared": "Bendrinami",
|
"shared": "Bendrinami",
|
||||||
|
"shared_album_activities_input_disable": "Comment is disabled",
|
||||||
|
"shared_album_activity_remove_content": "Do you want to delete this activity?",
|
||||||
|
"shared_album_activity_remove_title": "Delete Activity",
|
||||||
|
"shared_album_section_people_action_error": "Error leaving/removing from album",
|
||||||
|
"shared_album_section_people_action_leave": "Remove user from album",
|
||||||
|
"shared_album_section_people_action_remove_user": "Remove user from album",
|
||||||
|
"shared_album_section_people_title": "PEOPLE",
|
||||||
"shared_by": "",
|
"shared_by": "",
|
||||||
"shared_by_you": "",
|
"shared_by_you": "",
|
||||||
|
"shared_intent_upload_button_progress_text": "{} / {} Uploaded",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_clipboard_copied_massage": "Copied to clipboard",
|
||||||
|
"shared_link_clipboard_text": "Link: {}\nPassword: {}",
|
||||||
|
"shared_link_create_error": "Error while creating shared link",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_expire_after_option_day": "1 day",
|
||||||
|
"shared_link_edit_expire_after_option_days": "{} days",
|
||||||
|
"shared_link_edit_expire_after_option_hour": "1 hour",
|
||||||
|
"shared_link_edit_expire_after_option_hours": "{} hours",
|
||||||
|
"shared_link_edit_expire_after_option_minute": "1 minute",
|
||||||
|
"shared_link_edit_expire_after_option_minutes": "{} minutes",
|
||||||
|
"shared_link_edit_expire_after_option_months": "{} months",
|
||||||
|
"shared_link_edit_expire_after_option_year": "{} year",
|
||||||
|
"shared_link_edit_password_hint": "Enter the share password",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_error_server_url_fetch": "Cannot fetch the server url",
|
||||||
|
"shared_link_expires_day": "Expires in {} day",
|
||||||
|
"shared_link_expires_days": "Expires in {} days",
|
||||||
|
"shared_link_expires_hour": "Expires in {} hour",
|
||||||
|
"shared_link_expires_hours": "Expires in {} hours",
|
||||||
|
"shared_link_expires_minute": "Expires in {} minute",
|
||||||
|
"shared_link_expires_minutes": "Expires in {} minutes",
|
||||||
|
"shared_link_expires_never": "Expires ∞",
|
||||||
|
"shared_link_expires_second": "Expires in {} second",
|
||||||
|
"shared_link_expires_seconds": "Expires in {} seconds",
|
||||||
|
"shared_link_individual_shared": "Individual shared",
|
||||||
|
"shared_link_info_chip_metadata": "EXIF",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
"shared_link_options": "Bendrinimo nuorodos parametrai",
|
"shared_link_options": "Bendrinimo nuorodos parametrai",
|
||||||
"shared_links": "Bendrinimo nuorodos",
|
"shared_links": "Bendrinimo nuorodos",
|
||||||
"shared_photos_and_videos_count": "{assetCount, plural, one {# bendrinama nuotrauka ir vaizdo įrašas} few {# bendrinamos nuotraukos ir vaizdo įrašai} other {# bendrinamų nuotraukų ir vaizdo įrašų}}",
|
"shared_photos_and_videos_count": "{assetCount, plural, one {# bendrinama nuotrauka ir vaizdo įrašas} few {# bendrinamos nuotraukos ir vaizdo įrašai} other {# bendrinamų nuotraukų ir vaizdo įrašų}}",
|
||||||
|
"shared_with_me": "Shared with me",
|
||||||
"shared_with_partner": "Pasidalinta su {partner}",
|
"shared_with_partner": "Pasidalinta su {partner}",
|
||||||
"sharing": "Dalijimasis",
|
"sharing": "Dalijimasis",
|
||||||
"sharing_enter_password": "Norėdami peržiūrėti šį puslapį, įveskite slaptažodį.",
|
"sharing_enter_password": "Norėdami peržiūrėti šį puslapį, įveskite slaptažodį.",
|
||||||
|
"sharing_page_album": "Shared albums",
|
||||||
|
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
||||||
|
"sharing_page_empty_list": "EMPTY LIST",
|
||||||
"sharing_sidebar_description": "Rodyti bendrinimo rodinio nuorodą šoninėje juostoje",
|
"sharing_sidebar_description": "Rodyti bendrinimo rodinio nuorodą šoninėje juostoje",
|
||||||
|
"sharing_silver_appbar_create_shared_album": "New shared album",
|
||||||
|
"sharing_silver_appbar_share_partner": "Share with partner",
|
||||||
"show_album_options": "Rodyti albumo parinktis",
|
"show_album_options": "Rodyti albumo parinktis",
|
||||||
"show_file_location": "Rodyti rinkmenos vietą",
|
"show_file_location": "Rodyti rinkmenos vietą",
|
||||||
"show_gallery": "Rodyti galeriją",
|
"show_gallery": "Rodyti galeriją",
|
||||||
@@ -1046,6 +1512,9 @@
|
|||||||
"support_and_feedback": "Palaikymas ir atsiliepimai",
|
"support_and_feedback": "Palaikymas ir atsiliepimai",
|
||||||
"swap_merge_direction": "",
|
"swap_merge_direction": "",
|
||||||
"sync": "Sinchronizuoti",
|
"sync": "Sinchronizuoti",
|
||||||
|
"sync_albums": "Sync albums",
|
||||||
|
"sync_albums_manual_subtitle": "Sync all uploaded videos and photos to the selected backup albums",
|
||||||
|
"sync_upload_album_setting_subtitle": "Create and upload your photos and videos to the selected albums on Immich",
|
||||||
"tag": "Žyma",
|
"tag": "Žyma",
|
||||||
"tag_created": "Sukurta žyma: {tag}",
|
"tag_created": "Sukurta žyma: {tag}",
|
||||||
"tag_feature_description": "Peržiūrėkite nuotraukas ir vaizdo įrašus sugrupuotus pagal sužymėtas temas",
|
"tag_feature_description": "Peržiūrėkite nuotraukas ir vaizdo įrašus sugrupuotus pagal sužymėtas temas",
|
||||||
@@ -1057,6 +1526,19 @@
|
|||||||
"theme": "Tema",
|
"theme": "Tema",
|
||||||
"theme_selection": "",
|
"theme_selection": "",
|
||||||
"theme_selection_description": "",
|
"theme_selection_description": "",
|
||||||
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
"time_based_memories": "Atsiminimai pagal laiką",
|
"time_based_memories": "Atsiminimai pagal laiką",
|
||||||
"timeline": "Laiko skalė",
|
"timeline": "Laiko skalė",
|
||||||
"timezone": "Laiko juosta",
|
"timezone": "Laiko juosta",
|
||||||
@@ -1070,7 +1552,15 @@
|
|||||||
"trash": "Šiukšliadėžė",
|
"trash": "Šiukšliadėžė",
|
||||||
"trash_all": "Perkelti visus į šiukšliadėžę",
|
"trash_all": "Perkelti visus į šiukšliadėžę",
|
||||||
"trash_count": "Perkelti {count, number} į šiukšliadėžę",
|
"trash_count": "Perkelti {count, number} į šiukšliadėžę",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_no_results_message": "Į šiukšliadėžę perkeltos nuotraukos ir vaizdo įrašai bus rodomi čia.",
|
"trash_no_results_message": "Į šiukšliadėžę perkeltos nuotraukos ir vaizdo įrašai bus rodomi čia.",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"trashed_items_will_be_permanently_deleted_after": "Į šiukšliadėžę perkelti elementai bus visam laikui ištrinti po {days, plural, one {# dienos} other {# dienų}}.",
|
"trashed_items_will_be_permanently_deleted_after": "Į šiukšliadėžę perkelti elementai bus visam laikui ištrinti po {days, plural, one {# dienos} other {# dienų}}.",
|
||||||
"type": "Tipas",
|
"type": "Tipas",
|
||||||
"unarchive": "Išarchyvuoti",
|
"unarchive": "Išarchyvuoti",
|
||||||
@@ -1093,14 +1583,19 @@
|
|||||||
"updated_password": "Slaptažodis atnaujintas",
|
"updated_password": "Slaptažodis atnaujintas",
|
||||||
"upload": "Įkelti",
|
"upload": "Įkelti",
|
||||||
"upload_concurrency": "",
|
"upload_concurrency": "",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
"upload_errors": "Įkėlimas įvyko su {count, plural, one {# klaida} few {# klaidomis} other {# klaidų}}, norėdami pamatyti naujai įkeltus elementus perkraukite puslapį.",
|
"upload_errors": "Įkėlimas įvyko su {count, plural, one {# klaida} few {# klaidomis} other {# klaidų}}, norėdami pamatyti naujai įkeltus elementus perkraukite puslapį.",
|
||||||
"upload_progress": "Liko {remaining, number} - Apdorota {processed, number}/{total, number}",
|
"upload_progress": "Liko {remaining, number} - Apdorota {processed, number}/{total, number}",
|
||||||
"upload_status_duplicates": "Dublikatai",
|
"upload_status_duplicates": "Dublikatai",
|
||||||
"upload_status_errors": "Klaidos",
|
"upload_status_errors": "Klaidos",
|
||||||
"upload_status_uploaded": "Įkelta",
|
"upload_status_uploaded": "Įkelta",
|
||||||
"upload_success": "Įkėlimas pavyko, norėdami pamatyti naujai įkeltus elementus perkraukite puslapį.",
|
"upload_success": "Įkėlimas pavyko, norėdami pamatyti naujai įkeltus elementus perkraukite puslapį.",
|
||||||
|
"upload_to_immich": "Upload to Immich ({})",
|
||||||
|
"uploading": "Uploading",
|
||||||
"url": "URL",
|
"url": "URL",
|
||||||
"usage": "",
|
"usage": "",
|
||||||
|
"use_current_connection": "use current connection",
|
||||||
"user": "Naudotojas",
|
"user": "Naudotojas",
|
||||||
"user_id": "Naudotojo ID",
|
"user_id": "Naudotojo ID",
|
||||||
"user_usage_detail": "",
|
"user_usage_detail": "",
|
||||||
@@ -1110,9 +1605,15 @@
|
|||||||
"users": "Naudotojai",
|
"users": "Naudotojai",
|
||||||
"utilities": "Įrankiai",
|
"utilities": "Įrankiai",
|
||||||
"validate": "Validuoti",
|
"validate": "Validuoti",
|
||||||
|
"validate_endpoint_error": "Please enter a valid URL",
|
||||||
"variables": "Kintamieji",
|
"variables": "Kintamieji",
|
||||||
"version": "Versija",
|
"version": "Versija",
|
||||||
"version_announcement_closing": "Tavo draugas, Alex",
|
"version_announcement_closing": "Tavo draugas, Alex",
|
||||||
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
|
"version_announcement_overlay_title": "New Server Version Available 🎉",
|
||||||
"version_history": "Versijų istorija",
|
"version_history": "Versijų istorija",
|
||||||
"version_history_item": "Versija {version} įdiegta {date}",
|
"version_history_item": "Versija {version} įdiegta {date}",
|
||||||
"video": "Vaizdo įrašas",
|
"video": "Vaizdo įrašas",
|
||||||
@@ -1128,13 +1629,18 @@
|
|||||||
"view_next_asset": "",
|
"view_next_asset": "",
|
||||||
"view_previous_asset": "",
|
"view_previous_asset": "",
|
||||||
"view_stack": "Peržiūrėti grupę",
|
"view_stack": "Peržiūrėti grupę",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack",
|
||||||
"waiting": "Laukiama",
|
"waiting": "Laukiama",
|
||||||
"warning": "Įspėjimas",
|
"warning": "Įspėjimas",
|
||||||
"week": "Savaitė",
|
"week": "Savaitė",
|
||||||
"welcome_to_immich": "Sveiki atvykę į Immich",
|
"welcome_to_immich": "Sveiki atvykę į Immich",
|
||||||
|
"wifi_name": "WiFi Name",
|
||||||
"year": "Metai",
|
"year": "Metai",
|
||||||
"years_ago": "Prieš {years, plural, one {# metus} other {# metų}}",
|
"years_ago": "Prieš {years, plural, one {# metus} other {# metų}}",
|
||||||
"yes": "Taip",
|
"yes": "Taip",
|
||||||
"you_dont_have_any_shared_links": "Bendrinimo nuorodų neturite",
|
"you_dont_have_any_shared_links": "Bendrinimo nuorodų neturite",
|
||||||
|
"your_wifi_name": "Your WiFi name",
|
||||||
"zoom_image": "Priartinti vaizdą"
|
"zoom_image": "Priartinti vaizdą"
|
||||||
}
|
}
|
||||||
|
|||||||
590
i18n/lv.json
590
i18n/lv.json
File diff suppressed because it is too large
Load Diff
509
i18n/mn.json
509
i18n/mn.json
@@ -4,6 +4,7 @@
|
|||||||
"account_settings": "Бүртгэлийн тохиргоо",
|
"account_settings": "Бүртгэлийн тохиргоо",
|
||||||
"acknowledge": "Ойлголоо",
|
"acknowledge": "Ойлголоо",
|
||||||
"action": "Үйлдэл",
|
"action": "Үйлдэл",
|
||||||
|
"action_common_update": "Update",
|
||||||
"actions": "Үйлдлүүд",
|
"actions": "Үйлдлүүд",
|
||||||
"active": "Идэвхтэй",
|
"active": "Идэвхтэй",
|
||||||
"activity": "Үйлдлийн бүртгэл",
|
"activity": "Үйлдлийн бүртгэл",
|
||||||
@@ -13,6 +14,7 @@
|
|||||||
"add_a_location": "Байршил нэмэх",
|
"add_a_location": "Байршил нэмэх",
|
||||||
"add_a_name": "Нэр өгөх",
|
"add_a_name": "Нэр өгөх",
|
||||||
"add_a_title": "Гарчиг оруулах",
|
"add_a_title": "Гарчиг оруулах",
|
||||||
|
"add_endpoint": "Add endpoint",
|
||||||
"add_exclusion_pattern": "",
|
"add_exclusion_pattern": "",
|
||||||
"add_import_path": "",
|
"add_import_path": "",
|
||||||
"add_location": "Байршил оруулах",
|
"add_location": "Байршил оруулах",
|
||||||
@@ -22,6 +24,8 @@
|
|||||||
"add_photos": "Зураг нэмэх",
|
"add_photos": "Зураг нэмэх",
|
||||||
"add_to": "",
|
"add_to": "",
|
||||||
"add_to_album": "Цомогт оруулах",
|
"add_to_album": "Цомогт оруулах",
|
||||||
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"add_to_shared_album": "Нээлттэй албумд оруулах",
|
"add_to_shared_album": "Нээлттэй албумд оруулах",
|
||||||
"added_to_archive": "Архивд оруулах",
|
"added_to_archive": "Архивд оруулах",
|
||||||
"added_to_favorites": "Дуртай зурганд нэмэх",
|
"added_to_favorites": "Дуртай зурганд нэмэх",
|
||||||
@@ -229,9 +233,21 @@
|
|||||||
"admin_password": "",
|
"admin_password": "",
|
||||||
"administration": "Админ",
|
"administration": "Админ",
|
||||||
"advanced": "",
|
"advanced": "",
|
||||||
|
"advanced_settings_log_level_title": "Log level: {}",
|
||||||
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_proxy_headers_subtitle": "Define proxy headers Immich should send with each network request",
|
||||||
|
"advanced_settings_proxy_headers_title": "Proxy Headers",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
||||||
"album_added": "Цомог нэмэгдлээ",
|
"album_added": "Цомог нэмэгдлээ",
|
||||||
"album_added_notification_setting_description": "",
|
"album_added_notification_setting_description": "",
|
||||||
"album_cover_updated": "",
|
"album_cover_updated": "",
|
||||||
|
"album_info_card_backup_album_excluded": "EXCLUDED",
|
||||||
|
"album_info_card_backup_album_included": "INCLUDED",
|
||||||
"album_info_updated": "Цомгийн мэлээлэл шинэчлэгдлээ",
|
"album_info_updated": "Цомгийн мэлээлэл шинэчлэгдлээ",
|
||||||
"album_leave": "Цомгоос гарах уу?",
|
"album_leave": "Цомгоос гарах уу?",
|
||||||
"album_leave_confirmation": "Та {album} цомгоос гарахдаа итгэлтэй байна уу?",
|
"album_leave_confirmation": "Та {album} цомгоос гарахдаа итгэлтэй байна уу?",
|
||||||
@@ -239,8 +255,20 @@
|
|||||||
"album_options": "Цомгийн тохиргоо",
|
"album_options": "Цомгийн тохиргоо",
|
||||||
"album_remove_user": "Хэрэглэгч хасах уу?",
|
"album_remove_user": "Хэрэглэгч хасах уу?",
|
||||||
"album_remove_user_confirmation": "{user} хэрэглэгчийг хасахдаа итгэлтэй байна уу?",
|
"album_remove_user_confirmation": "{user} хэрэглэгчийг хасахдаа итгэлтэй байна уу?",
|
||||||
|
"album_thumbnail_card_item": "1 item",
|
||||||
|
"album_thumbnail_card_items": "{} items",
|
||||||
|
"album_thumbnail_card_shared": " · Shared",
|
||||||
|
"album_thumbnail_shared_by": "Shared by {}",
|
||||||
"album_updated": "",
|
"album_updated": "",
|
||||||
"album_updated_setting_description": "",
|
"album_updated_setting_description": "",
|
||||||
|
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?",
|
||||||
|
"album_viewer_appbar_share_err_delete": "Failed to delete album",
|
||||||
|
"album_viewer_appbar_share_err_leave": "Failed to leave album",
|
||||||
|
"album_viewer_appbar_share_err_remove": "There are problems in removing assets from album",
|
||||||
|
"album_viewer_appbar_share_err_title": "Failed to change album title",
|
||||||
|
"album_viewer_appbar_share_leave": "Leave album",
|
||||||
|
"album_viewer_appbar_share_to": "Share To",
|
||||||
|
"album_viewer_page_share_add_users": "Add users",
|
||||||
"albums": "Цомгууд",
|
"albums": "Цомгууд",
|
||||||
"all": "Бүгд",
|
"all": "Бүгд",
|
||||||
"all_albums": "Бүх цомог",
|
"all_albums": "Бүх цомог",
|
||||||
@@ -252,53 +280,192 @@
|
|||||||
"api_key_description": "Энэ утга зөвхөн ганц л удаа харагдана. Цонхоо хаахаас өмнө хуулж аваарай.",
|
"api_key_description": "Энэ утга зөвхөн ганц л удаа харагдана. Цонхоо хаахаас өмнө хуулж аваарай.",
|
||||||
"api_key_empty": "Таны API түлхүүрийн нэр хоосон байж болохгүй",
|
"api_key_empty": "Таны API түлхүүрийн нэр хоосон байж болохгүй",
|
||||||
"api_keys": "API түлхүүрүүд",
|
"api_keys": "API түлхүүрүүд",
|
||||||
|
"app_bar_signout_dialog_content": "Are you sure you want to sign out?",
|
||||||
|
"app_bar_signout_dialog_ok": "Yes",
|
||||||
|
"app_bar_signout_dialog_title": "Sign out",
|
||||||
"app_settings": "Апп-н тохиргоо",
|
"app_settings": "Апп-н тохиргоо",
|
||||||
"appears_in": "",
|
"appears_in": "",
|
||||||
"archive": "Архив",
|
"archive": "Архив",
|
||||||
"archive_or_unarchive_photo": "Зургийг архивт хийх эсвэл гаргах",
|
"archive_or_unarchive_photo": "Зургийг архивт хийх эсвэл гаргах",
|
||||||
|
"archive_page_no_archived_assets": "No archived assets found",
|
||||||
|
"archive_page_title": "Archive ({})",
|
||||||
"archive_size": "Архивын хэмжээ",
|
"archive_size": "Архивын хэмжээ",
|
||||||
"archive_size_description": "Татах үеийн архивын хэмжээг тохируулах (GiB-р)",
|
"archive_size_description": "Татах үеийн архивын хэмжээг тохируулах (GiB-р)",
|
||||||
|
"archived": "Archived",
|
||||||
|
"asset_action_delete_err_read_only": "Cannot delete read only asset(s), skipping",
|
||||||
|
"asset_action_share_err_offline": "Cannot fetch offline asset(s), skipping",
|
||||||
"asset_added_to_album": "Цомогт нэмсэн",
|
"asset_added_to_album": "Цомогт нэмсэн",
|
||||||
"asset_adding_to_album": "Цомогт нэмж байна...",
|
"asset_adding_to_album": "Цомогт нэмж байна...",
|
||||||
|
"asset_list_group_by_sub_title": "Group by",
|
||||||
|
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
||||||
|
"asset_list_layout_settings_group_automatically": "Automatic",
|
||||||
|
"asset_list_layout_settings_group_by": "Group assets by",
|
||||||
|
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
||||||
|
"asset_list_layout_sub_title": "Layout",
|
||||||
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
|
"asset_list_settings_title": "Photo Grid",
|
||||||
"asset_offline": "",
|
"asset_offline": "",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"asset_viewer_settings_subtitle": "Manage your gallery viewer settings",
|
||||||
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"assets": "",
|
"assets": "",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"authorized_devices": "",
|
"authorized_devices": "",
|
||||||
|
"automatic_endpoint_switching_subtitle": "Connect locally over designated Wi-Fi when available and use alternative connections elsewhere",
|
||||||
|
"automatic_endpoint_switching_title": "Automatic URL switching",
|
||||||
"back": "",
|
"back": "",
|
||||||
|
"background_location_permission": "Background location permission",
|
||||||
|
"background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name",
|
||||||
|
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
||||||
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
|
"backup_album_selection_page_assets_scatter": "Assets can scatter across multiple albums. Thus, albums can be included or excluded during the backup process.",
|
||||||
|
"backup_album_selection_page_select_albums": "Select albums",
|
||||||
|
"backup_album_selection_page_selection_info": "Selection Info",
|
||||||
|
"backup_album_selection_page_total_assets": "Total unique assets",
|
||||||
|
"backup_all": "All",
|
||||||
|
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
|
||||||
|
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
|
||||||
|
"backup_background_service_current_upload_notification": "Uploading {}",
|
||||||
|
"backup_background_service_default_notification": "Checking for new assets…",
|
||||||
|
"backup_background_service_error_title": "Backup error",
|
||||||
|
"backup_background_service_in_progress_notification": "Backing up your assets…",
|
||||||
|
"backup_background_service_upload_failure_notification": "Failed to upload {}",
|
||||||
|
"backup_controller_page_albums": "Backup Albums",
|
||||||
|
"backup_controller_page_background_app_refresh_disabled_content": "Апп нээгээгүй байх үед нөөцлөлт хийх бол Settings > General > Background App Refresh хандаж идэвхижүүлнэ үү.",
|
||||||
|
"backup_controller_page_background_app_refresh_disabled_title": "Апп нээгээгүй байх үед нөөцлөлт идэвхигүй.",
|
||||||
|
"backup_controller_page_background_app_refresh_enable_button_text": "Тохиргоо хэсэгт очих",
|
||||||
|
"backup_controller_page_background_battery_info_link": "Show me how",
|
||||||
|
"backup_controller_page_background_battery_info_message": "For the best background backup experience, please disable any battery optimizations restricting background activity for Immich.\n\nSince this is device-specific, please lookup the required information for your device manufacturer.",
|
||||||
|
"backup_controller_page_background_battery_info_ok": "OK",
|
||||||
|
"backup_controller_page_background_battery_info_title": "Battery optimizations",
|
||||||
|
"backup_controller_page_background_charging": "Only while charging",
|
||||||
|
"backup_controller_page_background_configure_error": "Failed to configure the background service",
|
||||||
|
"backup_controller_page_background_delay": "Delay new assets backup: {}",
|
||||||
|
"backup_controller_page_background_description": "Turn on the background service to automatically backup any new assets without needing to open the app",
|
||||||
|
"backup_controller_page_background_is_off": "Automatic background backup is off",
|
||||||
|
"backup_controller_page_background_is_on": "Automatic background backup is on",
|
||||||
|
"backup_controller_page_background_turn_off": "Turn off background service",
|
||||||
|
"backup_controller_page_background_turn_on": "Turn on background service",
|
||||||
|
"backup_controller_page_background_wifi": "Only on WiFi",
|
||||||
|
"backup_controller_page_backup": "Backup",
|
||||||
|
"backup_controller_page_backup_selected": "Selected: ",
|
||||||
|
"backup_controller_page_backup_sub": "Backed up photos and videos",
|
||||||
|
"backup_controller_page_created": "Created on: {}",
|
||||||
|
"backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
|
||||||
|
"backup_controller_page_excluded": "Excluded: ",
|
||||||
|
"backup_controller_page_failed": "Failed ({})",
|
||||||
|
"backup_controller_page_filename": "File name: {} [{}]",
|
||||||
|
"backup_controller_page_id": "ID: {}",
|
||||||
|
"backup_controller_page_info": "Backup Information",
|
||||||
|
"backup_controller_page_none_selected": "None selected",
|
||||||
|
"backup_controller_page_remainder": "Remainder",
|
||||||
|
"backup_controller_page_remainder_sub": "Remaining photos and videos to back up from selection",
|
||||||
|
"backup_controller_page_server_storage": "Server Storage",
|
||||||
|
"backup_controller_page_start_backup": "Start Backup",
|
||||||
|
"backup_controller_page_status_off": "Automatic foreground backup is off",
|
||||||
|
"backup_controller_page_status_on": "Automatic foreground backup is on",
|
||||||
|
"backup_controller_page_storage_format": "{} of {} used",
|
||||||
|
"backup_controller_page_to_backup": "Albums to be backed up",
|
||||||
|
"backup_controller_page_total_sub": "All unique photos and videos from selected albums",
|
||||||
|
"backup_controller_page_turn_off": "Turn off foreground backup",
|
||||||
|
"backup_controller_page_turn_on": "Turn on foreground backup",
|
||||||
|
"backup_controller_page_uploading_file_info": "Uploading file info",
|
||||||
|
"backup_err_only_album": "Cannot remove the only album",
|
||||||
|
"backup_info_card_assets": "assets",
|
||||||
|
"backup_manual_cancelled": "Cancelled",
|
||||||
|
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
||||||
|
"backup_manual_success": "Success",
|
||||||
|
"backup_manual_title": "Upload status",
|
||||||
|
"backup_options_page_title": "Backup options",
|
||||||
|
"backup_setting_subtitle": "Manage background and foreground upload settings",
|
||||||
"backward": "",
|
"backward": "",
|
||||||
"blurred_background": "",
|
"blurred_background": "",
|
||||||
"buy": "Immich худалдаж авах",
|
"buy": "Immich худалдаж авах",
|
||||||
|
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
||||||
|
"cache_settings_clear_cache_button": "Clear cache",
|
||||||
|
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
||||||
|
"cache_settings_duplicated_assets_clear_button": "CLEAR",
|
||||||
|
"cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app",
|
||||||
|
"cache_settings_duplicated_assets_title": "Duplicated Assets ({})",
|
||||||
|
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
||||||
|
"cache_settings_statistics_album": "Library thumbnails",
|
||||||
|
"cache_settings_statistics_assets": "{} assets ({})",
|
||||||
|
"cache_settings_statistics_full": "Full images",
|
||||||
|
"cache_settings_statistics_shared": "Shared album thumbnails",
|
||||||
|
"cache_settings_statistics_thumbnail": "Thumbnails",
|
||||||
|
"cache_settings_statistics_title": "Cache usage",
|
||||||
|
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
|
||||||
|
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
|
||||||
|
"cache_settings_tile_subtitle": "Control the local storage behaviour",
|
||||||
|
"cache_settings_tile_title": "Local Storage",
|
||||||
|
"cache_settings_title": "Caching Settings",
|
||||||
"camera": "Камер",
|
"camera": "Камер",
|
||||||
"camera_brand": "Камерын үйлдвэр",
|
"camera_brand": "Камерын үйлдвэр",
|
||||||
"camera_model": "Камерын загвар",
|
"camera_model": "Камерын загвар",
|
||||||
"cancel": "Цуцлах",
|
"cancel": "Цуцлах",
|
||||||
"cancel_search": "Хайлт цуцлах",
|
"cancel_search": "Хайлт цуцлах",
|
||||||
|
"canceled": "Canceled",
|
||||||
"cannot_merge_people": "",
|
"cannot_merge_people": "",
|
||||||
"cannot_update_the_description": "",
|
"cannot_update_the_description": "",
|
||||||
"change_date": "Огноо өөрчлөх",
|
"change_date": "Огноо өөрчлөх",
|
||||||
|
"change_display_order": "Change display order",
|
||||||
"change_expiration_time": "",
|
"change_expiration_time": "",
|
||||||
"change_location": "Байршил өөрчлөх",
|
"change_location": "Байршил өөрчлөх",
|
||||||
"change_name": "Нэр өөрчлөх",
|
"change_name": "Нэр өөрчлөх",
|
||||||
"change_name_successfully": "Нэр амжилттай өөрчлөгдлөө",
|
"change_name_successfully": "Нэр амжилттай өөрчлөгдлөө",
|
||||||
"change_password": "Нууц үг өөрчлөх",
|
"change_password": "Нууц үг өөрчлөх",
|
||||||
|
"change_password_form_confirm_password": "Confirm Password",
|
||||||
|
"change_password_form_description": "Hi {name},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
|
||||||
|
"change_password_form_new_password": "New Password",
|
||||||
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
"change_your_password": "",
|
"change_your_password": "",
|
||||||
"changed_visibility_successfully": "",
|
"changed_visibility_successfully": "",
|
||||||
|
"check_corrupt_asset_backup": "Check for corrupt asset backups",
|
||||||
|
"check_corrupt_asset_backup_button": "Perform check",
|
||||||
|
"check_corrupt_asset_backup_description": "Run this check only over Wi-Fi and once all assets have been backed-up. The procedure might take a few minutes.",
|
||||||
"check_logs": "",
|
"check_logs": "",
|
||||||
"city": "Хот",
|
"city": "Хот",
|
||||||
"clear": "Цэвэрлэх",
|
"clear": "Цэвэрлэх",
|
||||||
"clear_all": "Бүгдийг цэвэрлэх",
|
"clear_all": "Бүгдийг цэвэрлэх",
|
||||||
"clear_message": "",
|
"clear_message": "",
|
||||||
"clear_value": "",
|
"clear_value": "",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"close": "",
|
"close": "",
|
||||||
"collapse_all": "",
|
"collapse_all": "",
|
||||||
"color_theme": "",
|
"color_theme": "",
|
||||||
"comment_options": "",
|
"comment_options": "",
|
||||||
"comments_are_disabled": "",
|
"comments_are_disabled": "",
|
||||||
|
"common_create_new_album": "Create new album",
|
||||||
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
|
"completed": "Completed",
|
||||||
"confirm": "",
|
"confirm": "",
|
||||||
"confirm_admin_password": "",
|
"confirm_admin_password": "",
|
||||||
"confirm_password": "",
|
"confirm_password": "",
|
||||||
"contain": "",
|
"contain": "",
|
||||||
"context": "",
|
"context": "",
|
||||||
"continue": "",
|
"continue": "",
|
||||||
|
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
||||||
|
"control_bottom_app_bar_create_new_album": "Create new album",
|
||||||
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
|
"control_bottom_app_bar_share_link": "Share Link",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_trash_from_immich": "Move to Trash",
|
||||||
"copied_image_to_clipboard": "",
|
"copied_image_to_clipboard": "",
|
||||||
"copy_error": "",
|
"copy_error": "",
|
||||||
"copy_file_path": "",
|
"copy_file_path": "",
|
||||||
@@ -312,33 +479,54 @@
|
|||||||
"covers": "",
|
"covers": "",
|
||||||
"create": "",
|
"create": "",
|
||||||
"create_album": "",
|
"create_album": "",
|
||||||
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_library": "",
|
"create_library": "",
|
||||||
"create_link": "",
|
"create_link": "",
|
||||||
"create_link_to_share": "",
|
"create_link_to_share": "",
|
||||||
|
"create_new": "CREATE NEW",
|
||||||
"create_new_person": "",
|
"create_new_person": "",
|
||||||
"create_new_user": "",
|
"create_new_user": "",
|
||||||
|
"create_shared_album_page_share_add_assets": "ADD ASSETS",
|
||||||
|
"create_shared_album_page_share_select_photos": "Select Photos",
|
||||||
"create_user": "",
|
"create_user": "",
|
||||||
"created": "",
|
"created": "",
|
||||||
|
"crop": "Crop",
|
||||||
|
"curated_object_page_title": "Things",
|
||||||
"current_device": "",
|
"current_device": "",
|
||||||
|
"current_server_address": "Current server address",
|
||||||
"custom_locale": "",
|
"custom_locale": "",
|
||||||
"custom_locale_description": "",
|
"custom_locale_description": "",
|
||||||
|
"daily_title_text_date": "E, MMM dd",
|
||||||
|
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||||
"dark": "",
|
"dark": "",
|
||||||
"date_after": "",
|
"date_after": "",
|
||||||
"date_and_time": "",
|
"date_and_time": "",
|
||||||
"date_before": "",
|
"date_before": "",
|
||||||
|
"date_format": "E, LLL d, y • h:mm a",
|
||||||
"date_range": "",
|
"date_range": "",
|
||||||
"day": "",
|
"day": "",
|
||||||
"default_locale": "",
|
"default_locale": "",
|
||||||
"default_locale_description": "",
|
"default_locale_description": "",
|
||||||
"delete": "",
|
"delete": "",
|
||||||
"delete_album": "",
|
"delete_album": "",
|
||||||
|
"delete_dialog_alert": "These items will be permanently deleted from Immich and from your device",
|
||||||
|
"delete_dialog_alert_local": "These items will be permanently removed from your device but still be available on the Immich server",
|
||||||
|
"delete_dialog_alert_local_non_backed_up": "Some of the items aren't backed up to Immich and will be permanently removed from your device",
|
||||||
|
"delete_dialog_alert_remote": "These items will be permanently deleted from the Immich server",
|
||||||
|
"delete_dialog_ok_force": "Delete Anyway",
|
||||||
|
"delete_dialog_title": "Delete Permanently",
|
||||||
"delete_key": "",
|
"delete_key": "",
|
||||||
"delete_library": "",
|
"delete_library": "",
|
||||||
"delete_link": "",
|
"delete_link": "",
|
||||||
|
"delete_local_dialog_ok_backed_up_only": "Delete Backed Up Only",
|
||||||
|
"delete_local_dialog_ok_force": "Delete Anyway",
|
||||||
"delete_shared_link": "",
|
"delete_shared_link": "",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"delete_user": "",
|
"delete_user": "",
|
||||||
"deleted_shared_link": "",
|
"deleted_shared_link": "",
|
||||||
"description": "",
|
"description": "",
|
||||||
|
"description_input_hint_text": "Add description...",
|
||||||
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"details": "",
|
"details": "",
|
||||||
"direction": "",
|
"direction": "",
|
||||||
"disallow_edits": "",
|
"disallow_edits": "",
|
||||||
@@ -351,7 +539,21 @@
|
|||||||
"display_original_photos_setting_description": "",
|
"display_original_photos_setting_description": "",
|
||||||
"done": "",
|
"done": "",
|
||||||
"download": "",
|
"download": "",
|
||||||
|
"download_canceled": "Download canceled",
|
||||||
|
"download_complete": "Download complete",
|
||||||
|
"download_enqueue": "Download enqueued",
|
||||||
|
"download_error": "Download Error",
|
||||||
|
"download_failed": "Download failed",
|
||||||
|
"download_filename": "file: {}",
|
||||||
|
"download_finished": "Download finished",
|
||||||
|
"download_notfound": "Download not found",
|
||||||
|
"download_paused": "Download paused",
|
||||||
|
"download_started": "Download started",
|
||||||
|
"download_sucess": "Download success",
|
||||||
|
"download_sucess_android": "The media has been downloaded to DCIM/Immich",
|
||||||
|
"download_waiting_to_retry": "Waiting to retry",
|
||||||
"downloading": "",
|
"downloading": "",
|
||||||
|
"downloading_media": "Downloading media",
|
||||||
"duration": "",
|
"duration": "",
|
||||||
"edit_album": "",
|
"edit_album": "",
|
||||||
"edit_avatar": "",
|
"edit_avatar": "",
|
||||||
@@ -364,6 +566,7 @@
|
|||||||
"edit_key": "",
|
"edit_key": "",
|
||||||
"edit_link": "",
|
"edit_link": "",
|
||||||
"edit_location": "",
|
"edit_location": "",
|
||||||
|
"edit_location_dialog_title": "Location",
|
||||||
"edit_name": "",
|
"edit_name": "",
|
||||||
"edit_people": "",
|
"edit_people": "",
|
||||||
"edit_title": "",
|
"edit_title": "",
|
||||||
@@ -371,12 +574,17 @@
|
|||||||
"edited": "",
|
"edited": "",
|
||||||
"editor": "",
|
"editor": "",
|
||||||
"email": "",
|
"email": "",
|
||||||
|
"empty_folder": "This folder is empty",
|
||||||
"empty_trash": "Хогийн сав хоослох",
|
"empty_trash": "Хогийн сав хоослох",
|
||||||
"enable": "",
|
"enable": "",
|
||||||
"enabled": "",
|
"enabled": "",
|
||||||
"end_date": "",
|
"end_date": "",
|
||||||
|
"enqueued": "Enqueued",
|
||||||
|
"enter_wifi_name": "Enter WiFi name",
|
||||||
"error": "",
|
"error": "",
|
||||||
|
"error_change_sort_album": "Failed to change album sort order",
|
||||||
"error_loading_image": "",
|
"error_loading_image": "",
|
||||||
|
"error_saving_image": "Error: {}",
|
||||||
"errors": {
|
"errors": {
|
||||||
"unable_to_add_album_users": "",
|
"unable_to_add_album_users": "",
|
||||||
"unable_to_add_comment": "",
|
"unable_to_add_comment": "",
|
||||||
@@ -425,37 +633,90 @@
|
|||||||
"unable_to_update_settings": "",
|
"unable_to_update_settings": "",
|
||||||
"unable_to_update_user": ""
|
"unable_to_update_user": ""
|
||||||
},
|
},
|
||||||
|
"exif_bottom_sheet_description": "Add Description...",
|
||||||
|
"exif_bottom_sheet_details": "DETAILS",
|
||||||
|
"exif_bottom_sheet_location": "LOCATION",
|
||||||
|
"exif_bottom_sheet_people": "PEOPLE",
|
||||||
|
"exif_bottom_sheet_person_add_person": "Add name",
|
||||||
|
"exif_bottom_sheet_person_age": "Age {}",
|
||||||
|
"exif_bottom_sheet_person_age_months": "Age {} months",
|
||||||
|
"exif_bottom_sheet_person_age_year_months": "Age 1 year, {} months",
|
||||||
|
"exif_bottom_sheet_person_age_years": "Age {}",
|
||||||
"exit_slideshow": "",
|
"exit_slideshow": "",
|
||||||
"expand_all": "",
|
"expand_all": "",
|
||||||
|
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
||||||
|
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
||||||
|
"experimental_settings_subtitle": "Use at your own risk!",
|
||||||
|
"experimental_settings_title": "Experimental",
|
||||||
"expire_after": "",
|
"expire_after": "",
|
||||||
"expired": "",
|
"expired": "",
|
||||||
"explore": "Эрж олох",
|
"explore": "Эрж олох",
|
||||||
"extension": "",
|
"extension": "",
|
||||||
"external_libraries": "",
|
"external_libraries": "",
|
||||||
|
"external_network": "External network",
|
||||||
|
"external_network_sheet_info": "When not on the preferred WiFi network, the app will connect to the server through the first of the below URLs it can reach, starting from top to bottom",
|
||||||
|
"failed": "Failed",
|
||||||
|
"failed_to_load_assets": "Failed to load assets",
|
||||||
|
"failed_to_load_folder": "Failed to load folder",
|
||||||
"favorite": "",
|
"favorite": "",
|
||||||
"favorite_or_unfavorite_photo": "",
|
"favorite_or_unfavorite_photo": "",
|
||||||
"favorites": "Дуртай",
|
"favorites": "Дуртай",
|
||||||
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"feature_photo_updated": "",
|
"feature_photo_updated": "",
|
||||||
"file_name": "",
|
"file_name": "",
|
||||||
"file_name_or_extension": "",
|
"file_name_or_extension": "",
|
||||||
"filename": "",
|
"filename": "",
|
||||||
"filetype": "",
|
"filetype": "",
|
||||||
|
"filter": "Filter",
|
||||||
"filter_people": "",
|
"filter_people": "",
|
||||||
"fix_incorrect_match": "",
|
"fix_incorrect_match": "",
|
||||||
|
"folder": "Folder",
|
||||||
|
"folder_not_found": "Folder not found",
|
||||||
|
"folders": "Folders",
|
||||||
"forward": "",
|
"forward": "",
|
||||||
"general": "",
|
"general": "",
|
||||||
"get_help": "",
|
"get_help": "",
|
||||||
|
"get_wifiname_error": "Could not get Wi-Fi name. Make sure you have granted the necessary permissions and are connected to a Wi-Fi network",
|
||||||
"getting_started": "",
|
"getting_started": "",
|
||||||
"go_back": "",
|
"go_back": "",
|
||||||
"go_to_search": "",
|
"go_to_search": "",
|
||||||
|
"grant_permission": "Grant permission",
|
||||||
"group_albums_by": "",
|
"group_albums_by": "",
|
||||||
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"has_quota": "",
|
"has_quota": "",
|
||||||
|
"header_settings_add_header_tip": "Add Header",
|
||||||
|
"header_settings_field_validator_msg": "Value cannot be empty",
|
||||||
|
"header_settings_header_name_input": "Header name",
|
||||||
|
"header_settings_header_value_input": "Header value",
|
||||||
|
"headers_settings_tile_subtitle": "Define proxy headers the app should send with each network request",
|
||||||
|
"headers_settings_tile_title": "Custom proxy headers",
|
||||||
"hide_gallery": "",
|
"hide_gallery": "",
|
||||||
"hide_password": "",
|
"hide_password": "",
|
||||||
"hide_person": "",
|
"hide_person": "",
|
||||||
|
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
|
||||||
|
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
|
||||||
|
"home_page_add_to_album_success": "Added {added} assets to album {album}.",
|
||||||
|
"home_page_album_err_partner": "Can not add partner assets to an album yet, skipping",
|
||||||
|
"home_page_archive_err_local": "Can not archive local assets yet, skipping",
|
||||||
|
"home_page_archive_err_partner": "Can not archive partner assets, skipping",
|
||||||
|
"home_page_building_timeline": "Building the timeline",
|
||||||
|
"home_page_delete_err_partner": "Can not delete partner assets, skipping",
|
||||||
|
"home_page_delete_remote_err_local": "Local assets in delete remote selection, skipping",
|
||||||
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
|
"home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping",
|
||||||
|
"home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
|
||||||
|
"home_page_share_err_local": "Can not share local assets via link, skipping",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"host": "",
|
"host": "",
|
||||||
"hour": "",
|
"hour": "",
|
||||||
|
"ignore_icloud_photos": "Ignore iCloud photos",
|
||||||
|
"ignore_icloud_photos_description": "Photos that are stored on iCloud will not be uploaded to the Immich server",
|
||||||
"image": "",
|
"image": "",
|
||||||
|
"image_saved_successfully": "Image saved",
|
||||||
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"immich_logo": "",
|
"immich_logo": "",
|
||||||
"import_path": "",
|
"import_path": "",
|
||||||
"in_archive": "",
|
"in_archive": "",
|
||||||
@@ -470,6 +731,8 @@
|
|||||||
"night_at_midnight": "",
|
"night_at_midnight": "",
|
||||||
"night_at_twoam": ""
|
"night_at_twoam": ""
|
||||||
},
|
},
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"invite_people": "Хүмүүс урих",
|
"invite_people": "Хүмүүс урих",
|
||||||
"invite_to_album": "",
|
"invite_to_album": "",
|
||||||
"jobs": "",
|
"jobs": "",
|
||||||
@@ -483,6 +746,12 @@
|
|||||||
"level": "",
|
"level": "",
|
||||||
"library": "Зургийн сан",
|
"library": "Зургийн сан",
|
||||||
"library_options": "",
|
"library_options": "",
|
||||||
|
"library_page_device_albums": "Albums on Device",
|
||||||
|
"library_page_new_album": "New album",
|
||||||
|
"library_page_sort_asset_count": "Number of assets",
|
||||||
|
"library_page_sort_created": "Created date",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_title": "Album title",
|
||||||
"light": "",
|
"light": "",
|
||||||
"link_options": "",
|
"link_options": "",
|
||||||
"link_to_oauth": "",
|
"link_to_oauth": "",
|
||||||
@@ -490,9 +759,39 @@
|
|||||||
"list": "",
|
"list": "",
|
||||||
"loading": "",
|
"loading": "",
|
||||||
"loading_search_results_failed": "",
|
"loading_search_results_failed": "",
|
||||||
|
"local_network": "Local network",
|
||||||
|
"local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
|
||||||
|
"location_permission": "Location permission",
|
||||||
|
"location_permission_content": "In order to use the auto-switching feature, Immich needs precise location permission so it can read the current WiFi network's name",
|
||||||
|
"location_picker_choose_on_map": "Choose on map",
|
||||||
|
"location_picker_latitude_error": "Enter a valid latitude",
|
||||||
|
"location_picker_latitude_hint": "Enter your latitude here",
|
||||||
|
"location_picker_longitude_error": "Enter a valid longitude",
|
||||||
|
"location_picker_longitude_hint": "Enter your longitude here",
|
||||||
"log_out": "",
|
"log_out": "",
|
||||||
"log_out_all_devices": "",
|
"log_out_all_devices": "",
|
||||||
|
"login_disabled": "Login has been disabled",
|
||||||
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
"login_form_back_button_text": "Back",
|
||||||
|
"login_form_email_hint": "youremail@email.com",
|
||||||
|
"login_form_endpoint_hint": "http://your-server-ip:port",
|
||||||
|
"login_form_endpoint_url": "Server Endpoint URL",
|
||||||
|
"login_form_err_http": "Please specify http:// or https://",
|
||||||
|
"login_form_err_invalid_email": "Invalid Email",
|
||||||
|
"login_form_err_invalid_url": "Invalid URL",
|
||||||
|
"login_form_err_leading_whitespace": "Leading whitespace",
|
||||||
|
"login_form_err_trailing_whitespace": "Trailing whitespace",
|
||||||
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
|
"login_form_password_hint": "password",
|
||||||
|
"login_form_save_login": "Stay logged in",
|
||||||
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
|
"login_form_server_error": "Could not connect to server.",
|
||||||
"login_has_been_disabled": "",
|
"login_has_been_disabled": "",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
"look": "",
|
"look": "",
|
||||||
"loop_videos": "",
|
"loop_videos": "",
|
||||||
"loop_videos_description": "",
|
"loop_videos_description": "",
|
||||||
@@ -505,11 +804,38 @@
|
|||||||
"manage_your_devices": "",
|
"manage_your_devices": "",
|
||||||
"manage_your_oauth_connection": "",
|
"manage_your_oauth_connection": "",
|
||||||
"map": "",
|
"map": "",
|
||||||
|
"map_assets_in_bound": "{} photo",
|
||||||
|
"map_assets_in_bounds": "{} photos",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_picker_page_use_location": "Use this location",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
"map_marker_with_image": "",
|
"map_marker_with_image": "",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
"map_settings": "",
|
"map_settings": "",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_date_range_option_day": "Past 24 hours",
|
||||||
|
"map_settings_date_range_option_days": "Past {} days",
|
||||||
|
"map_settings_date_range_option_year": "Past year",
|
||||||
|
"map_settings_date_range_option_years": "Past {} years",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_include_show_partners": "Include Partners",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_settings_theme_settings": "Map Theme",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"media_type": "",
|
"media_type": "",
|
||||||
"memories": "",
|
"memories": "",
|
||||||
|
"memories_all_caught_up": "All caught up",
|
||||||
|
"memories_check_back_tomorrow": "Check back tomorrow for more memories",
|
||||||
"memories_setting_description": "",
|
"memories_setting_description": "",
|
||||||
|
"memories_start_over": "Start Over",
|
||||||
|
"memories_swipe_to_close": "Swipe up to close",
|
||||||
|
"memories_year_ago": "A year ago",
|
||||||
|
"memories_years_ago": "{} years ago",
|
||||||
"menu": "",
|
"menu": "",
|
||||||
"merge": "",
|
"merge": "",
|
||||||
"merge_people": "",
|
"merge_people": "",
|
||||||
@@ -519,11 +845,16 @@
|
|||||||
"missing": "",
|
"missing": "",
|
||||||
"model": "",
|
"model": "",
|
||||||
"month": "",
|
"month": "",
|
||||||
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"more": "",
|
"more": "",
|
||||||
"moved_to_trash": "",
|
"moved_to_trash": "",
|
||||||
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"my_albums": "",
|
"my_albums": "",
|
||||||
"name": "",
|
"name": "",
|
||||||
"name_or_nickname": "",
|
"name_or_nickname": "",
|
||||||
|
"networking_settings": "Networking",
|
||||||
|
"networking_subtitle": "Manage the server endpoint settings",
|
||||||
"never": "",
|
"never": "",
|
||||||
"new_api_key": "",
|
"new_api_key": "",
|
||||||
"new_password": "",
|
"new_password": "",
|
||||||
@@ -536,6 +867,7 @@
|
|||||||
"no_albums_message": "",
|
"no_albums_message": "",
|
||||||
"no_archived_assets_message": "",
|
"no_archived_assets_message": "",
|
||||||
"no_assets_message": "Энд дарж та эхний зургаа хуулж үзэх үү",
|
"no_assets_message": "Энд дарж та эхний зургаа хуулж үзэх үү",
|
||||||
|
"no_assets_to_show": "No assets to show",
|
||||||
"no_exif_info_available": "",
|
"no_exif_info_available": "",
|
||||||
"no_explore_results_message": "Зураг хуулж оруулсаны дараа ашиглах боломжтой болно.",
|
"no_explore_results_message": "Зураг хуулж оруулсаны дараа ашиглах боломжтой болно.",
|
||||||
"no_favorites_message": "",
|
"no_favorites_message": "",
|
||||||
@@ -545,7 +877,12 @@
|
|||||||
"no_results": "",
|
"no_results": "",
|
||||||
"no_shared_albums_message": "",
|
"no_shared_albums_message": "",
|
||||||
"not_in_any_album": "",
|
"not_in_any_album": "",
|
||||||
|
"not_selected": "Not selected",
|
||||||
"notes": "",
|
"notes": "",
|
||||||
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
|
"notification_permission_list_tile_content": "Мэдэгдэл нээх эрх өгнө үү.\n",
|
||||||
|
"notification_permission_list_tile_enable_button": "Мэдэгдэл нээх",
|
||||||
|
"notification_permission_list_tile_title": "Мэдэгдлийн эрх",
|
||||||
"notification_toggle_setting_description": "",
|
"notification_toggle_setting_description": "",
|
||||||
"notifications": "",
|
"notifications": "",
|
||||||
"notifications_setting_description": "",
|
"notifications_setting_description": "",
|
||||||
@@ -553,6 +890,7 @@
|
|||||||
"offline": "",
|
"offline": "",
|
||||||
"ok": "",
|
"ok": "",
|
||||||
"oldest_first": "",
|
"oldest_first": "",
|
||||||
|
"on_this_device": "On this device",
|
||||||
"online": "",
|
"online": "",
|
||||||
"only_favorites": "Зөвхөн дуртай зурагнууд",
|
"only_favorites": "Зөвхөн дуртай зурагнууд",
|
||||||
"open_the_search_filters": "",
|
"open_the_search_filters": "",
|
||||||
@@ -563,6 +901,14 @@
|
|||||||
"other_variables": "",
|
"other_variables": "",
|
||||||
"owned": "",
|
"owned": "",
|
||||||
"owner": "",
|
"owner": "",
|
||||||
|
"partner_list_user_photos": "{user}'s photos",
|
||||||
|
"partner_list_view_all": "View all",
|
||||||
|
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
||||||
|
"partner_page_no_more_users": "No more users to add",
|
||||||
|
"partner_page_partner_add_failed": "Failed to add partner",
|
||||||
|
"partner_page_select_partner": "Select partner",
|
||||||
|
"partner_page_shared_to_title": "Shared to",
|
||||||
|
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
||||||
"partner_sharing": "",
|
"partner_sharing": "",
|
||||||
"partners": "",
|
"partners": "",
|
||||||
"password": "",
|
"password": "",
|
||||||
@@ -586,6 +932,14 @@
|
|||||||
"permanent_deletion_warning_setting_description": "",
|
"permanent_deletion_warning_setting_description": "",
|
||||||
"permanently_delete": "",
|
"permanently_delete": "",
|
||||||
"permanently_deleted_asset": "",
|
"permanently_deleted_asset": "",
|
||||||
|
"permission_onboarding_back": "Back",
|
||||||
|
"permission_onboarding_continue_anyway": "Continue anyway",
|
||||||
|
"permission_onboarding_get_started": "Get started",
|
||||||
|
"permission_onboarding_go_to_settings": "Go to settings",
|
||||||
|
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
||||||
|
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
||||||
|
"permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
|
||||||
|
"permission_onboarding_request": "Immich requires permission to view your photos and videos.",
|
||||||
"photos": "",
|
"photos": "",
|
||||||
"photos_from_previous_years": "",
|
"photos_from_previous_years": "",
|
||||||
"pick_a_location": "",
|
"pick_a_location": "",
|
||||||
@@ -596,18 +950,29 @@
|
|||||||
"play_motion_photo": "",
|
"play_motion_photo": "",
|
||||||
"play_or_pause_video": "",
|
"play_or_pause_video": "",
|
||||||
"port": "",
|
"port": "",
|
||||||
|
"preferences_settings_subtitle": "Manage the app's preferences",
|
||||||
|
"preferences_settings_title": "Preferences",
|
||||||
"preset": "",
|
"preset": "",
|
||||||
"preview": "",
|
"preview": "",
|
||||||
"previous": "",
|
"previous": "",
|
||||||
"previous_memory": "",
|
"previous_memory": "",
|
||||||
"previous_or_next_photo": "",
|
"previous_or_next_photo": "",
|
||||||
"primary": "",
|
"primary": "",
|
||||||
|
"profile_drawer_app_logs": "Logs",
|
||||||
|
"profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.",
|
||||||
|
"profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.",
|
||||||
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
|
"profile_drawer_github": "GitHub",
|
||||||
|
"profile_drawer_server_out_of_date_major": "Server is out of date. Please update to the latest major version.",
|
||||||
|
"profile_drawer_server_out_of_date_minor": "Server is out of date. Please update to the latest minor version.",
|
||||||
"profile_picture_set": "",
|
"profile_picture_set": "",
|
||||||
"public_share": "",
|
"public_share": "",
|
||||||
"reaction_options": "",
|
"reaction_options": "",
|
||||||
"read_changelog": "",
|
"read_changelog": "",
|
||||||
"recent": "",
|
"recent": "",
|
||||||
"recent_searches": "",
|
"recent_searches": "",
|
||||||
|
"recently_added": "Recently added",
|
||||||
|
"recently_added_page_title": "Recently Added",
|
||||||
"refresh": "",
|
"refresh": "",
|
||||||
"refreshed": "",
|
"refreshed": "",
|
||||||
"refreshes_every_file": "",
|
"refreshes_every_file": "",
|
||||||
@@ -631,9 +996,11 @@
|
|||||||
"review_duplicates": "",
|
"review_duplicates": "",
|
||||||
"role": "",
|
"role": "",
|
||||||
"save": "",
|
"save": "",
|
||||||
|
"save_to_gallery": "Save to gallery",
|
||||||
"saved_profile": "",
|
"saved_profile": "",
|
||||||
"saved_settings": "",
|
"saved_settings": "",
|
||||||
"say_something": "",
|
"say_something": "",
|
||||||
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"scan_all_libraries": "",
|
"scan_all_libraries": "",
|
||||||
"scan_settings": "",
|
"scan_settings": "",
|
||||||
"search": "",
|
"search": "",
|
||||||
@@ -643,10 +1010,39 @@
|
|||||||
"search_camera_model": "",
|
"search_camera_model": "",
|
||||||
"search_city": "",
|
"search_city": "",
|
||||||
"search_country": "",
|
"search_country": "",
|
||||||
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_filename": "Search by file name",
|
||||||
|
"search_filter_location": "Location",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_for_existing_person": "",
|
"search_for_existing_person": "",
|
||||||
|
"search_no_more_result": "No more results",
|
||||||
|
"search_no_result": "No results found, try a different search term or combination",
|
||||||
|
"search_page_categories": "Categories",
|
||||||
|
"search_page_motion_photos": "Motion Photos",
|
||||||
|
"search_page_no_objects": "No Objects Info Available",
|
||||||
|
"search_page_no_places": "No Places Info Available",
|
||||||
|
"search_page_screenshots": "Screenshots",
|
||||||
|
"search_page_search_photos_videos": "Search for your photos and videos",
|
||||||
|
"search_page_selfies": "Selfies",
|
||||||
|
"search_page_things": "Things",
|
||||||
|
"search_page_view_all_button": "View all",
|
||||||
|
"search_page_your_activity": "Your activity",
|
||||||
|
"search_page_your_map": "Your Map",
|
||||||
"search_people": "",
|
"search_people": "",
|
||||||
"search_places": "Байршил хайх",
|
"search_places": "Байршил хайх",
|
||||||
|
"search_result_page_new_search_hint": "New Search",
|
||||||
"search_state": "",
|
"search_state": "",
|
||||||
|
"search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ",
|
||||||
|
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
||||||
"search_timezone": "",
|
"search_timezone": "",
|
||||||
"search_type": "",
|
"search_type": "",
|
||||||
"search_your_photos": "Зурагнуудаасаа хайлт хийх",
|
"search_your_photos": "Зурагнуудаасаа хайлт хийх",
|
||||||
@@ -660,8 +1056,12 @@
|
|||||||
"select_library_owner": "",
|
"select_library_owner": "",
|
||||||
"select_new_face": "",
|
"select_new_face": "",
|
||||||
"select_photos": "",
|
"select_photos": "",
|
||||||
|
"select_user_for_sharing_page_err_album": "Failed to create album",
|
||||||
"selected": "",
|
"selected": "",
|
||||||
"send_message": "",
|
"send_message": "",
|
||||||
|
"server_endpoint": "Server Endpoint",
|
||||||
|
"server_info_box_app_version": "App Version",
|
||||||
|
"server_info_box_server_url": "Server URL",
|
||||||
"server_online": "Сервер Онлайн",
|
"server_online": "Сервер Онлайн",
|
||||||
"server_stats": "",
|
"server_stats": "",
|
||||||
"set": "",
|
"set": "",
|
||||||
@@ -670,15 +1070,84 @@
|
|||||||
"set_date_of_birth": "",
|
"set_date_of_birth": "",
|
||||||
"set_profile_picture": "",
|
"set_profile_picture": "",
|
||||||
"set_slideshow_to_fullscreen": "",
|
"set_slideshow_to_fullscreen": "",
|
||||||
|
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
|
||||||
|
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
||||||
|
"setting_image_viewer_original_title": "Load original image",
|
||||||
|
"setting_image_viewer_preview_subtitle": "Enable to load a medium-resolution image. Disable to either directly load the original or only use the thumbnail.",
|
||||||
|
"setting_image_viewer_preview_title": "Load preview image",
|
||||||
|
"setting_image_viewer_title": "Images",
|
||||||
|
"setting_languages_apply": "Apply",
|
||||||
|
"setting_languages_subtitle": "Change the app's language",
|
||||||
|
"setting_languages_title": "Languages",
|
||||||
|
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
|
||||||
|
"setting_notifications_notify_hours": "{} hours",
|
||||||
|
"setting_notifications_notify_immediately": "immediately",
|
||||||
|
"setting_notifications_notify_minutes": "{} minutes",
|
||||||
|
"setting_notifications_notify_never": "never",
|
||||||
|
"setting_notifications_notify_seconds": "{} seconds",
|
||||||
|
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
||||||
|
"setting_notifications_single_progress_title": "Show background backup detail progress",
|
||||||
|
"setting_notifications_subtitle": "Adjust your notification preferences",
|
||||||
|
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
||||||
|
"setting_notifications_total_progress_title": "Show background backup total progress",
|
||||||
|
"setting_video_viewer_looping_title": "Looping",
|
||||||
|
"setting_video_viewer_original_video_subtitle": "When streaming a video from the server, play the original even when a transcode is available. May lead to buffering. Videos available locally are played in original quality regardless of this setting.",
|
||||||
|
"setting_video_viewer_original_video_title": "Force original video",
|
||||||
"settings": "Тохиргоо",
|
"settings": "Тохиргоо",
|
||||||
|
"settings_require_restart": "Please restart Immich to apply this setting",
|
||||||
"settings_saved": "",
|
"settings_saved": "",
|
||||||
"share": "",
|
"share": "",
|
||||||
|
"share_add_photos": "Add photos",
|
||||||
|
"share_assets_selected": "{} selected",
|
||||||
|
"share_dialog_preparing": "Preparing...",
|
||||||
"shared": "",
|
"shared": "",
|
||||||
|
"shared_album_activities_input_disable": "Comment is disabled",
|
||||||
|
"shared_album_activity_remove_content": "Do you want to delete this activity?",
|
||||||
|
"shared_album_activity_remove_title": "Delete Activity",
|
||||||
|
"shared_album_section_people_action_error": "Error leaving/removing from album",
|
||||||
|
"shared_album_section_people_action_leave": "Remove user from album",
|
||||||
|
"shared_album_section_people_action_remove_user": "Remove user from album",
|
||||||
|
"shared_album_section_people_title": "PEOPLE",
|
||||||
"shared_by": "",
|
"shared_by": "",
|
||||||
"shared_by_you": "",
|
"shared_by_you": "",
|
||||||
|
"shared_intent_upload_button_progress_text": "{} / {} Uploaded",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_clipboard_copied_massage": "Copied to clipboard",
|
||||||
|
"shared_link_clipboard_text": "Link: {}\nPassword: {}",
|
||||||
|
"shared_link_create_error": "Error while creating shared link",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_expire_after_option_day": "1 day",
|
||||||
|
"shared_link_edit_expire_after_option_days": "{} days",
|
||||||
|
"shared_link_edit_expire_after_option_hour": "1 hour",
|
||||||
|
"shared_link_edit_expire_after_option_hours": "{} hours",
|
||||||
|
"shared_link_edit_expire_after_option_minute": "1 minute",
|
||||||
|
"shared_link_edit_expire_after_option_minutes": "{} minutes",
|
||||||
|
"shared_link_edit_expire_after_option_months": "{} months",
|
||||||
|
"shared_link_edit_expire_after_option_year": "{} year",
|
||||||
|
"shared_link_edit_password_hint": "Enter the share password",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_error_server_url_fetch": "Cannot fetch the server url",
|
||||||
|
"shared_link_expires_day": "Expires in {} day",
|
||||||
|
"shared_link_expires_days": "Expires in {} days",
|
||||||
|
"shared_link_expires_hour": "Expires in {} hour",
|
||||||
|
"shared_link_expires_hours": "Expires in {} hours",
|
||||||
|
"shared_link_expires_minute": "Expires in {} minute",
|
||||||
|
"shared_link_expires_minutes": "Expires in {} minutes",
|
||||||
|
"shared_link_expires_never": "Expires ∞",
|
||||||
|
"shared_link_expires_second": "Expires in {} second",
|
||||||
|
"shared_link_expires_seconds": "Expires in {} seconds",
|
||||||
|
"shared_link_individual_shared": "Individual shared",
|
||||||
|
"shared_link_info_chip_metadata": "EXIF",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
"shared_links": "",
|
"shared_links": "",
|
||||||
|
"shared_with_me": "Shared with me",
|
||||||
"sharing": "Хуваалцах",
|
"sharing": "Хуваалцах",
|
||||||
|
"sharing_page_album": "Shared albums",
|
||||||
|
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
||||||
|
"sharing_page_empty_list": "EMPTY LIST",
|
||||||
"sharing_sidebar_description": "",
|
"sharing_sidebar_description": "",
|
||||||
|
"sharing_silver_appbar_create_shared_album": "New shared album",
|
||||||
|
"sharing_silver_appbar_share_partner": "Share with partner",
|
||||||
"show_album_options": "",
|
"show_album_options": "",
|
||||||
"show_file_location": "",
|
"show_file_location": "",
|
||||||
"show_gallery": "",
|
"show_gallery": "",
|
||||||
@@ -715,10 +1184,26 @@
|
|||||||
"sunrise_on_the_beach": "",
|
"sunrise_on_the_beach": "",
|
||||||
"swap_merge_direction": "",
|
"swap_merge_direction": "",
|
||||||
"sync": "",
|
"sync": "",
|
||||||
|
"sync_albums": "Sync albums",
|
||||||
|
"sync_albums_manual_subtitle": "Sync all uploaded videos and photos to the selected backup albums",
|
||||||
|
"sync_upload_album_setting_subtitle": "Create and upload your photos and videos to the selected albums on Immich",
|
||||||
"template": "",
|
"template": "",
|
||||||
"theme": "",
|
"theme": "",
|
||||||
"theme_selection": "",
|
"theme_selection": "",
|
||||||
"theme_selection_description": "",
|
"theme_selection_description": "",
|
||||||
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
"time_based_memories": "",
|
"time_based_memories": "",
|
||||||
"timezone": "",
|
"timezone": "",
|
||||||
"toggle_settings": "",
|
"toggle_settings": "",
|
||||||
@@ -726,7 +1211,15 @@
|
|||||||
"total_usage": "",
|
"total_usage": "",
|
||||||
"trash": "Хогийн сав",
|
"trash": "Хогийн сав",
|
||||||
"trash_all": "",
|
"trash_all": "",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_no_results_message": "",
|
"trash_no_results_message": "",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"type": "",
|
"type": "",
|
||||||
"unarchive": "",
|
"unarchive": "",
|
||||||
"unfavorite": "",
|
"unfavorite": "",
|
||||||
@@ -741,8 +1234,13 @@
|
|||||||
"updated_password": "",
|
"updated_password": "",
|
||||||
"upload": "Зураг хуулах",
|
"upload": "Зураг хуулах",
|
||||||
"upload_concurrency": "",
|
"upload_concurrency": "",
|
||||||
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
|
"upload_dialog_title": "Upload Asset",
|
||||||
|
"upload_to_immich": "Upload to Immich ({})",
|
||||||
|
"uploading": "Uploading",
|
||||||
"url": "",
|
"url": "",
|
||||||
"usage": "",
|
"usage": "",
|
||||||
|
"use_current_connection": "use current connection",
|
||||||
"user": "",
|
"user": "",
|
||||||
"user_id": "",
|
"user_id": "",
|
||||||
"user_usage_detail": "",
|
"user_usage_detail": "",
|
||||||
@@ -750,8 +1248,14 @@
|
|||||||
"users": "",
|
"users": "",
|
||||||
"utilities": "Багаж хэрэгсэл",
|
"utilities": "Багаж хэрэгсэл",
|
||||||
"validate": "",
|
"validate": "",
|
||||||
|
"validate_endpoint_error": "Please enter a valid URL",
|
||||||
"variables": "",
|
"variables": "",
|
||||||
"version": "",
|
"version": "",
|
||||||
|
"version_announcement_overlay_release_notes": "release notes",
|
||||||
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
|
"version_announcement_overlay_title": "New Server Version Available 🎉",
|
||||||
"video": "",
|
"video": "",
|
||||||
"video_hover_setting_description": "",
|
"video_hover_setting_description": "",
|
||||||
"videos": "",
|
"videos": "",
|
||||||
@@ -760,14 +1264,19 @@
|
|||||||
"view_links": "",
|
"view_links": "",
|
||||||
"view_next_asset": "",
|
"view_next_asset": "",
|
||||||
"view_previous_asset": "",
|
"view_previous_asset": "",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack",
|
||||||
"waiting": "Хүлээж байна",
|
"waiting": "Хүлээж байна",
|
||||||
"warning": "Анхааруулга",
|
"warning": "Анхааруулга",
|
||||||
"week": "Долоо хоног",
|
"week": "Долоо хоног",
|
||||||
"welcome": "Тавтай морил",
|
"welcome": "Тавтай морил",
|
||||||
"welcome_to_immich": "Тавтай морилно уу",
|
"welcome_to_immich": "Тавтай морилно уу",
|
||||||
|
"wifi_name": "WiFi Name",
|
||||||
"year": "Он",
|
"year": "Он",
|
||||||
"years_ago": "{years, plural, one {# year} other {# years}} өмнө",
|
"years_ago": "{years, plural, one {# year} other {# years}} өмнө",
|
||||||
"yes": "Тийм",
|
"yes": "Тийм",
|
||||||
"you_dont_have_any_shared_links": "Танд хуваалцсан холбоос алга",
|
"you_dont_have_any_shared_links": "Танд хуваалцсан холбоос алга",
|
||||||
|
"your_wifi_name": "Your WiFi name",
|
||||||
"zoom_image": "Зургийг томруулж харах"
|
"zoom_image": "Зургийг томруулж харах"
|
||||||
}
|
}
|
||||||
|
|||||||
11
i18n/ms.json
11
i18n/ms.json
@@ -65,6 +65,11 @@
|
|||||||
"forcing_refresh_library_files": "Memaksa muat semula semua fail perpustakaan",
|
"forcing_refresh_library_files": "Memaksa muat semula semua fail perpustakaan",
|
||||||
"image_format": "Format",
|
"image_format": "Format",
|
||||||
"image_format_description": "WebP menghasilkan fail yang lebih kecil daripada JPEG, tetapi lebih perlahan untuk mengekod.",
|
"image_format_description": "WebP menghasilkan fail yang lebih kecil daripada JPEG, tetapi lebih perlahan untuk mengekod.",
|
||||||
|
"image_fullsize_description": "Imej bersaiz penuh dengan metadata yang dilucutkan, digunakan apabila dizum masuk",
|
||||||
|
"image_fullsize_enabled": "Dayakan penjanaan imej bersaiz penuh",
|
||||||
|
"image_fullsize_enabled_description": "Hasilkan imej bersaiz penuh untuk format tidak mesra web. Apabila \"Lebih suka pratonton terbenam\" didayakan, pratonton terbenam digunakan secara langsung tanpa penukaran. Tidak menjejaskan format mesra web seperti JPEG.",
|
||||||
|
"image_fullsize_quality_description": "Kualiti imej bersaiz penuh dari 1-100. Lebih tinggi adalah lebih baik, tetapi menghasilkan fail yang lebih besar.",
|
||||||
|
"image_fullsize_title": "Tetapan Imej bersaiz penuh",
|
||||||
"image_prefer_embedded_preview": "Cadangkan pratonton terbenam",
|
"image_prefer_embedded_preview": "Cadangkan pratonton terbenam",
|
||||||
"image_prefer_embedded_preview_setting_description": "Gunakan pratonton terbenam dalam foto RAW sebagai input kepada pemprosesan imej apabila tersedia. Cara ini boleh menghasilkan warna yang lebih tepat untuk sesetengah imej, tetapi kualiti pratonton bergantung pada kamera dan imej mungkin mempunyai lebih banyak artifak mampatan.",
|
"image_prefer_embedded_preview_setting_description": "Gunakan pratonton terbenam dalam foto RAW sebagai input kepada pemprosesan imej apabila tersedia. Cara ini boleh menghasilkan warna yang lebih tepat untuk sesetengah imej, tetapi kualiti pratonton bergantung pada kamera dan imej mungkin mempunyai lebih banyak artifak mampatan.",
|
||||||
"image_prefer_wide_gamut": "Cadangkan warna gamut yang luas",
|
"image_prefer_wide_gamut": "Cadangkan warna gamut yang luas",
|
||||||
@@ -159,7 +164,6 @@
|
|||||||
"no_pattern_added": "Tiada corak ditambah",
|
"no_pattern_added": "Tiada corak ditambah",
|
||||||
"note_apply_storage_label_previous_assets": "Nota: Untuk menggunakan Label Storan pada aset yang dimuat naik sebelum ini, jalankan",
|
"note_apply_storage_label_previous_assets": "Nota: Untuk menggunakan Label Storan pada aset yang dimuat naik sebelum ini, jalankan",
|
||||||
"note_cannot_be_changed_later": "NOTA: Ini tidak boleh diubah kemudian!",
|
"note_cannot_be_changed_later": "NOTA: Ini tidak boleh diubah kemudian!",
|
||||||
"note_unlimited_quota": "Nota: Masukkan 0 untuk kuota tanpa had",
|
|
||||||
"notification_email_from_address": "Dari alamat",
|
"notification_email_from_address": "Dari alamat",
|
||||||
"notification_email_from_address_description": "Alamat e-mel penghantar, sebagai contoh: \"Immich Photo Server <noreply@example.com>\"",
|
"notification_email_from_address_description": "Alamat e-mel penghantar, sebagai contoh: \"Immich Photo Server <noreply@example.com>\"",
|
||||||
"notification_email_host_description": "Hos e-mel pelayan (cth. smtp.immich.app)",
|
"notification_email_host_description": "Hos e-mel pelayan (cth. smtp.immich.app)",
|
||||||
@@ -321,7 +325,8 @@
|
|||||||
"transcoding_threads": "Benang",
|
"transcoding_threads": "Benang",
|
||||||
"transcoding_threads_description": "Nilai yang lebih tinggi membawa kepada pengekodan yang lebih pantas, tetapi meninggalkan lebih sedikit ruang untuk pemproses tugas lain semasa aktif. Nilai ini tidak boleh lebih daripada bilangan teras CPU. Memaksimumkan penggunaan jika ditetapkan kepada 0.",
|
"transcoding_threads_description": "Nilai yang lebih tinggi membawa kepada pengekodan yang lebih pantas, tetapi meninggalkan lebih sedikit ruang untuk pemproses tugas lain semasa aktif. Nilai ini tidak boleh lebih daripada bilangan teras CPU. Memaksimumkan penggunaan jika ditetapkan kepada 0.",
|
||||||
"transcoding_tone_mapping": "Pemetaan nada",
|
"transcoding_tone_mapping": "Pemetaan nada",
|
||||||
"transcoding_tone_mapping_description": "Percubaan untuk mengekalkan penampilan video HDR apabila ditukar kepada SDR. Setiap algoritma membuat pertukaran yang berbeza untuk warna, perincian dan kecerahan. Hable mengekalkan perincian, Mobius mengekalkan warna, dan Reinhard mengekalkan kecerahan."
|
"transcoding_tone_mapping_description": "Percubaan untuk mengekalkan penampilan video HDR apabila ditukar kepada SDR. Setiap algoritma membuat pertukaran yang berbeza untuk warna, perincian dan kecerahan. Hable mengekalkan perincian, Mobius mengekalkan warna, dan Reinhard mengekalkan kecerahan.",
|
||||||
|
"transcoding_transcode_policy": "Dasar transkod"
|
||||||
},
|
},
|
||||||
"deduplication_criteria_1": "Saiz imej dalam bait",
|
"deduplication_criteria_1": "Saiz imej dalam bait",
|
||||||
"deduplication_criteria_2": "Kiraan data EXIF",
|
"deduplication_criteria_2": "Kiraan data EXIF",
|
||||||
@@ -372,4 +377,4 @@
|
|||||||
"yes": "Ya",
|
"yes": "Ya",
|
||||||
"you_dont_have_any_shared_links": "Anda tidak mempunyai apa-apa pautan yang dikongsi",
|
"you_dont_have_any_shared_links": "Anda tidak mempunyai apa-apa pautan yang dikongsi",
|
||||||
"zoom_image": "Zum Gambar"
|
"zoom_image": "Zum Gambar"
|
||||||
}
|
}
|
||||||
|
|||||||
526
i18n/nb_NO.json
526
i18n/nb_NO.json
File diff suppressed because it is too large
Load Diff
527
i18n/nl.json
527
i18n/nl.json
File diff suppressed because it is too large
Load Diff
1
i18n/pa.json
Normal file
1
i18n/pa.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user