mirror of
https://github.com/immich-app/immich.git
synced 2025-02-03 01:22:44 +01:00
Merge branch 'main' into feat/favorite-people
This commit is contained in:
commit
46babca7f1
575 changed files with 28435 additions and 16989 deletions
.devcontainer
.github/workflows
README.mdcli
deployment/modules/cloudflare
docker
docs
.nvmrc
docs
package-lock.jsonpackage.jsonsrc
static
e2e
i18n
2
.devcontainer/.gitignore
vendored
Normal file
2
.devcontainer/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
.env
|
||||
library
|
|
@ -1,2 +1,16 @@
|
|||
ARG BASEIMAGE=mcr.microsoft.com/devcontainers/typescript-node:22@sha256:9791f4aa527774bc370c6bd2f6705ce5a686f1e6f204badd8dfaacce28c631ae
|
||||
FROM ${BASEIMAGE}
|
||||
|
||||
# Flutter SDK
|
||||
# https://flutter.dev/docs/development/tools/sdk/releases?tab=linux
|
||||
ENV FLUTTER_CHANNEL="stable"
|
||||
ENV FLUTTER_VERSION="3.24.5"
|
||||
ENV FLUTTER_HOME=/flutter
|
||||
ENV PATH=${PATH}:${FLUTTER_HOME}/bin
|
||||
|
||||
# Flutter SDK
|
||||
RUN mkdir -p ${FLUTTER_HOME} \
|
||||
&& curl -C - --output flutter.tar.xz https://storage.googleapis.com/flutter_infra_release/releases/${FLUTTER_CHANNEL}/linux/flutter_linux_${FLUTTER_VERSION}-${FLUTTER_CHANNEL}.tar.xz \
|
||||
&& tar -xf flutter.tar.xz --strip-components=1 -C ${FLUTTER_HOME} \
|
||||
&& rm flutter.tar.xz \
|
||||
&& chown -R 1000:1000 ${FLUTTER_HOME}
|
||||
|
|
|
@ -1,20 +1,26 @@
|
|||
{
|
||||
"name": "Immich devcontainers",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"args": {
|
||||
"BASEIMAGE": "mcr.microsoft.com/devcontainers/typescript-node:22"
|
||||
}
|
||||
},
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"svelte.svelte-vscode"
|
||||
]
|
||||
}
|
||||
},
|
||||
"forwardPorts": [],
|
||||
"postCreateCommand": "make install-all",
|
||||
"remoteUser": "node"
|
||||
"name": "Immich",
|
||||
"service": "immich-devcontainer",
|
||||
"dockerComposeFile": [
|
||||
"docker-compose.yml",
|
||||
"../docker/docker-compose.dev.yml"
|
||||
],
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"Dart-Code.dart-code",
|
||||
"Dart-Code.flutter",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"dcmdev.dcm-vscode-extension",
|
||||
"esbenp.prettier-vscode",
|
||||
"svelte.svelte-vscode"
|
||||
]
|
||||
}
|
||||
},
|
||||
"forwardPorts": [],
|
||||
"initializeCommand": "bash .devcontainer/scripts/initializeCommand.sh",
|
||||
"onCreateCommand": "bash .devcontainer/scripts/onCreateCommand.sh",
|
||||
"overrideCommand": true,
|
||||
"workspaceFolder": "/immich",
|
||||
"remoteUser": "node"
|
||||
}
|
||||
|
||||
|
|
8
.devcontainer/docker-compose.yml
Normal file
8
.devcontainer/docker-compose.yml
Normal file
|
@ -0,0 +1,8 @@
|
|||
services:
|
||||
immich-devcontainer:
|
||||
build:
|
||||
dockerfile: Dockerfile
|
||||
extra_hosts:
|
||||
- 'host.docker.internal:host-gateway'
|
||||
volumes:
|
||||
- ..:/immich:cached
|
6
.devcontainer/scripts/initializeCommand.sh
Normal file
6
.devcontainer/scripts/initializeCommand.sh
Normal file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
# If .env file does not exist, create it by copying example.env from the docker folder
|
||||
if [ ! -f ".devcontainer/.env" ]; then
|
||||
cp docker/example.env .devcontainer/.env
|
||||
fi
|
25
.devcontainer/scripts/onCreateCommand.sh
Normal file
25
.devcontainer/scripts/onCreateCommand.sh
Normal file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Enable multiarch for arm64 if necessary
|
||||
if [ "$(dpkg --print-architecture)" = "arm64" ]; then
|
||||
sudo dpkg --add-architecture amd64 && \
|
||||
sudo apt-get update && \
|
||||
sudo apt-get install -y --no-install-recommends \
|
||||
qemu-user-static \
|
||||
libc6:amd64 \
|
||||
libstdc++6:amd64 \
|
||||
libgcc1:amd64
|
||||
fi
|
||||
|
||||
# Install DCM
|
||||
wget -qO- https://dcm.dev/pgp-key.public | sudo gpg --dearmor -o /usr/share/keyrings/dcm.gpg
|
||||
sudo echo 'deb [signed-by=/usr/share/keyrings/dcm.gpg arch=amd64] https://dcm.dev/debian stable main' | sudo tee /etc/apt/sources.list.d/dart_stable.list
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install dcm
|
||||
|
||||
dart --disable-analytics
|
||||
|
||||
# Install immich
|
||||
cd /immich || exit
|
||||
make install-all
|
4
.github/workflows/cli.yml
vendored
4
.github/workflows/cli.yml
vendored
|
@ -56,7 +56,7 @@ jobs:
|
|||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.2.0
|
||||
uses: docker/setup-qemu-action@v3.3.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3.8.0
|
||||
|
@ -88,7 +88,7 @@ jobs:
|
|||
type=raw,value=latest,enable=${{ github.event_name == 'release' }}
|
||||
|
||||
- name: Build and push image
|
||||
uses: docker/build-push-action@v6.10.0
|
||||
uses: docker/build-push-action@v6.12.0
|
||||
with:
|
||||
file: cli/Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
|
|
8
.github/workflows/docker.yml
vendored
8
.github/workflows/docker.yml
vendored
|
@ -122,7 +122,7 @@ jobs:
|
|||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.2.0
|
||||
uses: docker/setup-qemu-action@v3.3.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3.8.0
|
||||
|
@ -174,7 +174,7 @@ jobs:
|
|||
fi
|
||||
|
||||
- name: Build and push image
|
||||
uses: docker/build-push-action@v6.10.0
|
||||
uses: docker/build-push-action@v6.12.0
|
||||
with:
|
||||
context: ${{ env.context }}
|
||||
file: ${{ env.file }}
|
||||
|
@ -213,7 +213,7 @@ jobs:
|
|||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.2.0
|
||||
uses: docker/setup-qemu-action@v3.3.0
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3.8.0
|
||||
|
@ -265,7 +265,7 @@ jobs:
|
|||
fi
|
||||
|
||||
- name: Build and push image
|
||||
uses: docker/build-push-action@v6.10.0
|
||||
uses: docker/build-push-action@v6.12.0
|
||||
with:
|
||||
context: ${{ env.context }}
|
||||
file: ${{ env.file }}
|
||||
|
|
9
.github/workflows/prepare-release.yml
vendored
9
.github/workflows/prepare-release.yml
vendored
|
@ -68,10 +68,17 @@ jobs:
|
|||
needs: build_mobile
|
||||
|
||||
steps:
|
||||
- name: Generate a token
|
||||
id: generate-token
|
||||
uses: actions/create-github-app-token@v1
|
||||
with:
|
||||
app-id: ${{ secrets.PUSH_O_MATIC_APP_ID }}
|
||||
private-key: ${{ secrets.PUSH_O_MATIC_APP_KEY }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.ORG_RELEASE_TOKEN }}
|
||||
token: ${{ steps.generate-token.outputs.token }}
|
||||
|
||||
- name: Download APK
|
||||
uses: actions/download-artifact@v4
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
<a href="readme_i18n/README_nl_NL.md">Nederlands</a>
|
||||
<a href="readme_i18n/README_tr_TR.md">Türkçe</a>
|
||||
<a href="readme_i18n/README_zh_CN.md">中文</a>
|
||||
<a href="readme_i18n/README_uk_UA.md">Українська</a>
|
||||
<a href="readme_i18n/README_ru_RU.md">Русский</a>
|
||||
<a href="readme_i18n/README_pt_BR.md">Português Brasileiro</a>
|
||||
<a href="readme_i18n/README_sv_SE.md">Svenska</a>
|
||||
|
|
|
@ -1 +1 @@
|
|||
22.12.0
|
||||
22.13.1
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
FROM node:22.12.0-alpine3.20@sha256:96cc8323e25c8cc6ddcb8b965e135cfd57846e8003ec0d7bcec16c5fd5f6d39f AS core
|
||||
FROM node:22.13.1-alpine3.20@sha256:c52e20859a92b3eccbd3a36c5e1a90adc20617d8d421d65e8a622e87b5dac963 AS core
|
||||
|
||||
WORKDIR /usr/src/open-api/typescript-sdk
|
||||
COPY open-api/typescript-sdk/package*.json open-api/typescript-sdk/tsconfig*.json ./
|
||||
|
|
1111
cli/package-lock.json
generated
1111
cli/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@immich/cli",
|
||||
"version": "2.2.37",
|
||||
"version": "2.2.47",
|
||||
"description": "Command Line Interface (CLI) for Immich",
|
||||
"type": "module",
|
||||
"exports": "./dist/index.js",
|
||||
|
@ -20,15 +20,15 @@
|
|||
"@types/cli-progress": "^3.11.0",
|
||||
"@types/lodash-es": "^4.17.12",
|
||||
"@types/mock-fs": "^4.13.1",
|
||||
"@types/node": "^22.10.2",
|
||||
"@types/node": "^22.10.9",
|
||||
"@typescript-eslint/eslint-plugin": "^8.15.0",
|
||||
"@typescript-eslint/parser": "^8.15.0",
|
||||
"@vitest/coverage-v8": "^2.0.5",
|
||||
"@vitest/coverage-v8": "^3.0.0",
|
||||
"byte-size": "^9.0.0",
|
||||
"cli-progress": "^3.12.0",
|
||||
"commander": "^12.0.0",
|
||||
"eslint": "^9.14.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-config-prettier": "^10.0.0",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"eslint-plugin-unicorn": "^56.0.1",
|
||||
"globals": "^15.9.0",
|
||||
|
@ -36,9 +36,9 @@
|
|||
"prettier": "^3.2.5",
|
||||
"prettier-plugin-organize-imports": "^4.0.0",
|
||||
"typescript": "^5.3.3",
|
||||
"vite": "^5.0.12",
|
||||
"vite": "^6.0.0",
|
||||
"vite-tsconfig-paths": "^5.0.0",
|
||||
"vitest": "^2.0.5",
|
||||
"vitest": "^3.0.0",
|
||||
"vitest-fetch-mock": "^0.4.0",
|
||||
"yaml": "^2.3.1"
|
||||
},
|
||||
|
@ -67,6 +67,6 @@
|
|||
"lodash-es": "^4.17.21"
|
||||
},
|
||||
"volta": {
|
||||
"node": "22.12.0"
|
||||
"node": "22.13.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ interface Test {
|
|||
test: string;
|
||||
options: Omit<CrawlOptions, 'extensions'>;
|
||||
files: Record<string, boolean>;
|
||||
skipOnWin32?: boolean;
|
||||
}
|
||||
|
||||
const cwd = process.cwd();
|
||||
|
@ -48,6 +49,18 @@ const tests: Test[] = [
|
|||
'/photos/image.jpg': true,
|
||||
},
|
||||
},
|
||||
{
|
||||
test: 'should crawl folders with quotes',
|
||||
options: {
|
||||
pathsToCrawl: ["/photo's/", '/photo"s/', '/photo`s/'],
|
||||
},
|
||||
files: {
|
||||
"/photo's/image1.jpg": true,
|
||||
'/photo"s/image2.jpg': true,
|
||||
'/photo`s/image3.jpg': true,
|
||||
},
|
||||
skipOnWin32: true, // single quote interferes with mockfs root on Windows
|
||||
},
|
||||
{
|
||||
test: 'should crawl a single file',
|
||||
options: {
|
||||
|
@ -270,8 +283,12 @@ describe('crawl', () => {
|
|||
});
|
||||
|
||||
describe('crawl', () => {
|
||||
for (const { test, options, files } of tests) {
|
||||
it(test, async () => {
|
||||
for (const { test: name, options, files, skipOnWin32 } of tests) {
|
||||
if (process.platform === 'win32' && skipOnWin32) {
|
||||
test.skip(name);
|
||||
continue;
|
||||
}
|
||||
it(name, async () => {
|
||||
// The file contents is the same as the path.
|
||||
mockfs(Object.fromEntries(Object.keys(files).map((file) => [file, file])));
|
||||
|
||||
|
|
|
@ -146,7 +146,7 @@ export const crawl = async (options: CrawlOptions): Promise<string[]> => {
|
|||
}
|
||||
|
||||
const searchPatterns = patterns.map((pattern) => {
|
||||
let escapedPattern = pattern;
|
||||
let escapedPattern = pattern.replaceAll("'", "[']").replaceAll('"', '["]').replaceAll('`', '[`]');
|
||||
if (recursive) {
|
||||
escapedPattern = escapedPattern + '/**';
|
||||
}
|
||||
|
|
|
@ -2,37 +2,37 @@
|
|||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.opentofu.org/cloudflare/cloudflare" {
|
||||
version = "4.48.0"
|
||||
constraints = "4.48.0"
|
||||
version = "4.50.0"
|
||||
constraints = "4.50.0"
|
||||
hashes = [
|
||||
"h1:0IKUOR32xEI1suS5QCOjfxjQ2mRd058btXk8hVnaOJ4=",
|
||||
"h1:3YG6vu/bFPcYOeLdSUZhiAWiWKaFlOAR34z2o8cbE9k=",
|
||||
"h1:FvGy06/i9AMtVkSIUnCrXNv5xF6jqBqMH8oPVLyeeAg=",
|
||||
"h1:GXH7nIF0ocMqebbA41+fSGIYfM+VAM/PvTe7fJr8UrQ=",
|
||||
"h1:H0ll0ph4404vFE868W3qJ3zhOyy4jbXrOMtdkViEZsU=",
|
||||
"h1:SX42e3k73IcFcrQlZ2e/Veqt2tvCMy6fwlo5yNUktCE=",
|
||||
"h1:Uu/gjBc99GefdPdSrlBwU75DWU0ZcwGcrd3ZFyTeL0s=",
|
||||
"h1:VZw0uN41PWRmNlhg7Ze0Eh7cdoklX1oZbfNAXNYnU1I=",
|
||||
"h1:cMdV7ql6PsFa4qtb0EoZSctvTaTqV7yplBSDwcLRCLc=",
|
||||
"h1:ePGvSurmlqOCkD761vkhRmz7bsK36/EnIvx2Xy8TdXo=",
|
||||
"h1:fOYufF+1bzw2N3aHLpkLB6E8VbZ4ysXDODYQOlwhwd4=",
|
||||
"h1:qe8RbnWq0T4xhqjn9QcbO6YW5YDx47P+eJ0NUMIfwCc=",
|
||||
"h1:tRD2av6PafHDP/b9jDQsG5/aX+lHeKxpbIEHYYLBVUc=",
|
||||
"h1:zyl6Gvx/CFpwYW8pFFDesfO8Lxv+a6CopyAsIMhp54s=",
|
||||
"zh:04c0a49c2b23140b2f21cfd0d52f9798d70d3bdae3831613e156aabe519bbc6c",
|
||||
"zh:185f21b4834ba63e8df1f84aa34639d8a7e126429a4007bb5f9ad82f2602a997",
|
||||
"zh:234724f52cb4c0c3f7313d3b2697caef26d921d134f26ae14801e7afac522f7b",
|
||||
"zh:38a56fcd1b3e40706af995611c977816543b53f1e55fe2720944aae2b6828fcb",
|
||||
"zh:419938f5430fc78eff933470aefbf94a460a478f867cf7761a3dea177b4eb153",
|
||||
"zh:4b46d92bfde1deab7de7ba1a6bbf4ba7c711e4fd925341ddf09d4cc28dae03d8",
|
||||
"zh:537acd4a31c752f1bae305ba7190f60b71ad1a459f22d464f3f914336c9e919f",
|
||||
"zh:5ff36b005aad07697dd0b30d4f0c35dbcdc30dc52b41722552060792fa87ce04",
|
||||
"zh:635c5ee419daea098060f794d9d7d999275301181e49562c4e4c08f043076937",
|
||||
"zh:859277c330d61f91abe9e799389467ca11b77131bf34bedbef52f8da68b2bb49",
|
||||
"h1:0qvD5ZKn2tMZ8cOjQrUSITIC9tKCZbrSaSswV9lOyiU=",
|
||||
"h1:4N0gplrZ0zOsJv3Kx1VfIx2FwrZHbYU0Un2yfiLZIGQ=",
|
||||
"h1:81AMQq4kNKU/35U8ElQegUxG4E6xB0erIjG5xVmjIyo=",
|
||||
"h1:EEQNADUmV3IL6x00yzy04i7OCSLeOMgM9XQkV3w71gA=",
|
||||
"h1:HD0KI7td6oiSSAnJNn8UPSGf+hKiTo4JVQYfAiU1SqM=",
|
||||
"h1:Hl+o5LtcvZg2f3l1hh9vaG/DFK6k+dTIZSeM0lXyfpo=",
|
||||
"h1:ZUO2oIJ6jtZdvl816h0cEIiIeZ/fFCF64+abGEVxZZM=",
|
||||
"h1:Zio80fnEeUKdlSOhTVskMEFSLUQ6TMsMKnXc+Dy2P2A=",
|
||||
"h1:aLLvg36evTyqjtXGV2MjAV8imktXFmry7p/xCu9GQC4=",
|
||||
"h1:azL05eWyy2V8SWkbZZImPWvv8ynG4eqmrbZhjXBDFug=",
|
||||
"h1:ckMysHY4fJmr7o58XMi+DdgOTB/U/Mf1u1JA9ly3g/I=",
|
||||
"h1:jxOwjDNjt5WCb4YjjiMsman91O8Y+MAPz6UwJ4a6F+0=",
|
||||
"h1:u4OfnjSLa4Wk1IUFAzrvMnGgr8MvRHEWVDHEScPK2E8=",
|
||||
"h1:wQkR1oeSkzlHn3rnVuLJRJLBHlg4EHt7Y64DeTjfkjQ=",
|
||||
"zh:0ef99ed39472a94e6a0d6fa733cf0a46bce3bf66eba2873efae8846efdddc237",
|
||||
"zh:2929cbbffcead171d45c88e4a7a59e9c013ea775dafa68b10da8db7cd04b6140",
|
||||
"zh:462601c87118088e1a718842e367af7d8e7620598d426980a6d6b33de759865e",
|
||||
"zh:56766eb62a74a9d88d9efb8486dd3a0c5c9db873d0a980ae9ef1e8af27d74231",
|
||||
"zh:6b4e8810d99498a5a20a5872982a0f1354e79cfc4a7dfe7cc656f1c7eaae47d8",
|
||||
"zh:6d65bdb4ec94b6eecc8abe26d94e2ca09262dc1e7a9934db829f418be0119920",
|
||||
"zh:71adeaf31e41a358ec6095004062e43f56ee7d4b2504e5613ab351d511695641",
|
||||
"zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f",
|
||||
"zh:927dfdb8d9aef37ead03fceaa29e87ba076a3dd24e19b6cefdbb0efe9987ff8c",
|
||||
"zh:bbf2226f07f6b1e721877328e69ded4b64f9c196634d2e2429e3cfabbe41e532",
|
||||
"zh:daeed873d6f38604232b46ee4a5830c85d195b967f8dbcafe2fcffa98daf9c5f",
|
||||
"zh:f8f2fc4646c1ba44085612fa7f4dbb7cbcead43b4e661f2b98ddfb4f68afc758",
|
||||
"zh:89761c15908ccc2cf9c50bb5cb3be45d3ad0c45fc7c608c6b95f48c0288b7160",
|
||||
"zh:8cc5d7c5939da89cfd01f3e51c84f3576564783acea9db86bd9e32049805ed96",
|
||||
"zh:987cff8225b1dd436cdcb4fc6228689ae7e4281de6896412a2a9a3325c49f05e",
|
||||
"zh:991e83ebb89867d71e01a1c215ed159efb425683b0a44707be8579eb0a337f06",
|
||||
"zh:ab8177ae2d8f5cfa90043a6f867435012cae115f6061b832a7e2462e0ae87a67",
|
||||
"zh:d1ca34df1398f201274a6a18102975148c10ca15aa43cfc56cc9897620929509",
|
||||
"zh:d34946f70201baf6dda03e3b294c6bbe40d95d0278e97b9f636ded94822b24ac",
|
||||
]
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ terraform {
|
|||
required_providers {
|
||||
cloudflare = {
|
||||
source = "cloudflare/cloudflare"
|
||||
version = "4.48.0"
|
||||
version = "4.50.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,37 +2,37 @@
|
|||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.opentofu.org/cloudflare/cloudflare" {
|
||||
version = "4.48.0"
|
||||
constraints = "4.48.0"
|
||||
version = "4.50.0"
|
||||
constraints = "4.50.0"
|
||||
hashes = [
|
||||
"h1:0IKUOR32xEI1suS5QCOjfxjQ2mRd058btXk8hVnaOJ4=",
|
||||
"h1:3YG6vu/bFPcYOeLdSUZhiAWiWKaFlOAR34z2o8cbE9k=",
|
||||
"h1:FvGy06/i9AMtVkSIUnCrXNv5xF6jqBqMH8oPVLyeeAg=",
|
||||
"h1:GXH7nIF0ocMqebbA41+fSGIYfM+VAM/PvTe7fJr8UrQ=",
|
||||
"h1:H0ll0ph4404vFE868W3qJ3zhOyy4jbXrOMtdkViEZsU=",
|
||||
"h1:SX42e3k73IcFcrQlZ2e/Veqt2tvCMy6fwlo5yNUktCE=",
|
||||
"h1:Uu/gjBc99GefdPdSrlBwU75DWU0ZcwGcrd3ZFyTeL0s=",
|
||||
"h1:VZw0uN41PWRmNlhg7Ze0Eh7cdoklX1oZbfNAXNYnU1I=",
|
||||
"h1:cMdV7ql6PsFa4qtb0EoZSctvTaTqV7yplBSDwcLRCLc=",
|
||||
"h1:ePGvSurmlqOCkD761vkhRmz7bsK36/EnIvx2Xy8TdXo=",
|
||||
"h1:fOYufF+1bzw2N3aHLpkLB6E8VbZ4ysXDODYQOlwhwd4=",
|
||||
"h1:qe8RbnWq0T4xhqjn9QcbO6YW5YDx47P+eJ0NUMIfwCc=",
|
||||
"h1:tRD2av6PafHDP/b9jDQsG5/aX+lHeKxpbIEHYYLBVUc=",
|
||||
"h1:zyl6Gvx/CFpwYW8pFFDesfO8Lxv+a6CopyAsIMhp54s=",
|
||||
"zh:04c0a49c2b23140b2f21cfd0d52f9798d70d3bdae3831613e156aabe519bbc6c",
|
||||
"zh:185f21b4834ba63e8df1f84aa34639d8a7e126429a4007bb5f9ad82f2602a997",
|
||||
"zh:234724f52cb4c0c3f7313d3b2697caef26d921d134f26ae14801e7afac522f7b",
|
||||
"zh:38a56fcd1b3e40706af995611c977816543b53f1e55fe2720944aae2b6828fcb",
|
||||
"zh:419938f5430fc78eff933470aefbf94a460a478f867cf7761a3dea177b4eb153",
|
||||
"zh:4b46d92bfde1deab7de7ba1a6bbf4ba7c711e4fd925341ddf09d4cc28dae03d8",
|
||||
"zh:537acd4a31c752f1bae305ba7190f60b71ad1a459f22d464f3f914336c9e919f",
|
||||
"zh:5ff36b005aad07697dd0b30d4f0c35dbcdc30dc52b41722552060792fa87ce04",
|
||||
"zh:635c5ee419daea098060f794d9d7d999275301181e49562c4e4c08f043076937",
|
||||
"zh:859277c330d61f91abe9e799389467ca11b77131bf34bedbef52f8da68b2bb49",
|
||||
"h1:0qvD5ZKn2tMZ8cOjQrUSITIC9tKCZbrSaSswV9lOyiU=",
|
||||
"h1:4N0gplrZ0zOsJv3Kx1VfIx2FwrZHbYU0Un2yfiLZIGQ=",
|
||||
"h1:81AMQq4kNKU/35U8ElQegUxG4E6xB0erIjG5xVmjIyo=",
|
||||
"h1:EEQNADUmV3IL6x00yzy04i7OCSLeOMgM9XQkV3w71gA=",
|
||||
"h1:HD0KI7td6oiSSAnJNn8UPSGf+hKiTo4JVQYfAiU1SqM=",
|
||||
"h1:Hl+o5LtcvZg2f3l1hh9vaG/DFK6k+dTIZSeM0lXyfpo=",
|
||||
"h1:ZUO2oIJ6jtZdvl816h0cEIiIeZ/fFCF64+abGEVxZZM=",
|
||||
"h1:Zio80fnEeUKdlSOhTVskMEFSLUQ6TMsMKnXc+Dy2P2A=",
|
||||
"h1:aLLvg36evTyqjtXGV2MjAV8imktXFmry7p/xCu9GQC4=",
|
||||
"h1:azL05eWyy2V8SWkbZZImPWvv8ynG4eqmrbZhjXBDFug=",
|
||||
"h1:ckMysHY4fJmr7o58XMi+DdgOTB/U/Mf1u1JA9ly3g/I=",
|
||||
"h1:jxOwjDNjt5WCb4YjjiMsman91O8Y+MAPz6UwJ4a6F+0=",
|
||||
"h1:u4OfnjSLa4Wk1IUFAzrvMnGgr8MvRHEWVDHEScPK2E8=",
|
||||
"h1:wQkR1oeSkzlHn3rnVuLJRJLBHlg4EHt7Y64DeTjfkjQ=",
|
||||
"zh:0ef99ed39472a94e6a0d6fa733cf0a46bce3bf66eba2873efae8846efdddc237",
|
||||
"zh:2929cbbffcead171d45c88e4a7a59e9c013ea775dafa68b10da8db7cd04b6140",
|
||||
"zh:462601c87118088e1a718842e367af7d8e7620598d426980a6d6b33de759865e",
|
||||
"zh:56766eb62a74a9d88d9efb8486dd3a0c5c9db873d0a980ae9ef1e8af27d74231",
|
||||
"zh:6b4e8810d99498a5a20a5872982a0f1354e79cfc4a7dfe7cc656f1c7eaae47d8",
|
||||
"zh:6d65bdb4ec94b6eecc8abe26d94e2ca09262dc1e7a9934db829f418be0119920",
|
||||
"zh:71adeaf31e41a358ec6095004062e43f56ee7d4b2504e5613ab351d511695641",
|
||||
"zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f",
|
||||
"zh:927dfdb8d9aef37ead03fceaa29e87ba076a3dd24e19b6cefdbb0efe9987ff8c",
|
||||
"zh:bbf2226f07f6b1e721877328e69ded4b64f9c196634d2e2429e3cfabbe41e532",
|
||||
"zh:daeed873d6f38604232b46ee4a5830c85d195b967f8dbcafe2fcffa98daf9c5f",
|
||||
"zh:f8f2fc4646c1ba44085612fa7f4dbb7cbcead43b4e661f2b98ddfb4f68afc758",
|
||||
"zh:89761c15908ccc2cf9c50bb5cb3be45d3ad0c45fc7c608c6b95f48c0288b7160",
|
||||
"zh:8cc5d7c5939da89cfd01f3e51c84f3576564783acea9db86bd9e32049805ed96",
|
||||
"zh:987cff8225b1dd436cdcb4fc6228689ae7e4281de6896412a2a9a3325c49f05e",
|
||||
"zh:991e83ebb89867d71e01a1c215ed159efb425683b0a44707be8579eb0a337f06",
|
||||
"zh:ab8177ae2d8f5cfa90043a6f867435012cae115f6061b832a7e2462e0ae87a67",
|
||||
"zh:d1ca34df1398f201274a6a18102975148c10ca15aa43cfc56cc9897620929509",
|
||||
"zh:d34946f70201baf6dda03e3b294c6bbe40d95d0278e97b9f636ded94822b24ac",
|
||||
]
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ terraform {
|
|||
required_providers {
|
||||
cloudflare = {
|
||||
source = "cloudflare/cloudflare"
|
||||
version = "4.48.0"
|
||||
version = "4.50.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -71,6 +71,7 @@ services:
|
|||
- ../web:/usr/src/app
|
||||
- ../i18n:/usr/src/i18n
|
||||
- ../open-api/:/usr/src/open-api/
|
||||
# - ../../ui:/usr/ui
|
||||
- /usr/src/app/node_modules
|
||||
ulimits:
|
||||
nofile:
|
||||
|
@ -106,7 +107,7 @@ services:
|
|||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: redis:6.2-alpine@sha256:eaba718fecd1196d88533de7ba49bf903ad33664a92debb24660a922ecd9cac8
|
||||
image: redis:6.2-alpine@sha256:905c4ee67b8e0aa955331960d2aa745781e6bd89afc44a8584bfd13bc890f0ae
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ services:
|
|||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: redis:6.2-alpine@sha256:eaba718fecd1196d88533de7ba49bf903ad33664a92debb24660a922ecd9cac8
|
||||
image: redis:6.2-alpine@sha256:905c4ee67b8e0aa955331960d2aa745781e6bd89afc44a8584bfd13bc890f0ae
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
|
@ -91,7 +91,7 @@ services:
|
|||
container_name: immich_prometheus
|
||||
ports:
|
||||
- 9090:9090
|
||||
image: prom/prometheus@sha256:565ee86501224ebbb98fc10b332fa54440b100469924003359edf49cbce374bd
|
||||
image: prom/prometheus@sha256:6559acbd5d770b15bb3c954629ce190ac3cbbdb2b7f1c30f0385c4e05104e218
|
||||
volumes:
|
||||
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
||||
- prometheus-data:/prometheus
|
||||
|
|
|
@ -48,7 +48,7 @@ services:
|
|||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/redis:6.2-alpine@sha256:eaba718fecd1196d88533de7ba49bf903ad33664a92debb24660a922ecd9cac8
|
||||
image: docker.io/redis:6.2-alpine@sha256:905c4ee67b8e0aa955331960d2aa745781e6bd89afc44a8584bfd13bc890f0ae
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
|
|
|
@ -1 +1 @@
|
|||
22.12.0
|
||||
22.13.1
|
||||
|
|
|
@ -53,10 +53,18 @@ On iOS (iPhone and iPad), the operating system determines if a particular app ca
|
|||
- Disable Background App Refresh for apps that don't need background tasks to run. This will reduce the competition for background task invocation for Immich.
|
||||
- Use the Immich app more often.
|
||||
|
||||
### Why are features not working with a self-signed cert or mTLS?
|
||||
### Why are features in the mobile app not working with a self-signed certificate, Basic Auth, custom headers, or mutual TLS?
|
||||
|
||||
Due to limitations in the upstream app/video library, using a self-signed TLS certificate or mutual TLS may break video playback or asset upload (both foreground and/or background).
|
||||
We recommend using a real SSL certificate from a free provider, for example [Let's Encrypt](https://letsencrypt.org/).
|
||||
These network features are experimental. They often do not work with video playback, asset upload or download, and other features.
|
||||
Many of these limitations are tracked in [#15230](https://github.com/immich-app/immich/issues/15230).
|
||||
Instead of these experimental features, we recommend using the URL switching feature, a VPN, or a [free trusted SSL certificate](https://letsencrypt.org/) for your domain.
|
||||
|
||||
We are not actively developing these features and will not be able to provide support, but welcome contributions to improve them.
|
||||
Please discuss any large PRs with our dev team to ensure your time is not wasted.
|
||||
|
||||
### Why isn't the mobile app updated yet?
|
||||
|
||||
The app stores can take a few days to approve new builds of the app. If you're impatient, android APKs can be downloaded from the GitHub releases.
|
||||
|
||||
---
|
||||
|
||||
|
@ -156,6 +164,35 @@ For example, say you have existing transcodes with the policy "Videos higher tha
|
|||
|
||||
No. Our design principle is that the original assets should always be untouched.
|
||||
|
||||
### How can I mount a CIFS/Samba volume within Docker?
|
||||
|
||||
If you aren't able to or prefer not to mount Samba on the host (such as Windows environment), you can mount the volume within Docker.
|
||||
Below is an example in the `docker-compose.yml`.
|
||||
|
||||
Change your username, password, local IP, and share name, and see below where the line `- originals:/usr/src/app/originals`,
|
||||
corrolates to the section where the volume `originals` was created. You can call this whatever you like, and map it to the docker container as you like.
|
||||
For example you could change `originals:` to `Photos:`, and change `- originals:/usr/src/app/originals` to `Photos:/usr/src/app/photos`.
|
||||
|
||||
```diff
|
||||
...
|
||||
services:
|
||||
immich-server:
|
||||
...
|
||||
volumes:
|
||||
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
|
||||
- ${UPLOAD_LOCATION}:/usr/src/app/upload
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
+ - originals:/usr/src/app/originals
|
||||
...
|
||||
volumes:
|
||||
model-cache:
|
||||
+ originals:
|
||||
+ driver_opts:
|
||||
+ type: cifs
|
||||
+ o: 'iocharset=utf8,username=USERNAMEHERE,password=PASSWORDHERE,rw' # change to `ro` if read only desired
|
||||
+ device: '//localipaddress/sharename'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Albums
|
||||
|
@ -278,7 +315,7 @@ The initial backup is the most intensive due to the number of jobs running. The
|
|||
- For facial recognition on new images to work properly, You must re-run the Face Detection job for all images after this.
|
||||
- At the container level, you can [set resource constraints](/docs/FAQ#can-i-limit-cpu-and-ram-usage) to lower usage further.
|
||||
- It's recommended to only apply these constraints _after_ taking some of the measures here for best performance.
|
||||
- If these changes are not enough, see [below](/docs/FAQ#how-can-i-disable-machine-learning) for instructions on how to disable machine learning.
|
||||
- If these changes are not enough, see [above](/docs/FAQ#how-can-i-disable-machine-learning) for instructions on how to disable machine learning.
|
||||
|
||||
### Can I limit CPU and RAM usage?
|
||||
|
||||
|
@ -421,7 +458,7 @@ A result of `on` means that checksums are enabled.
|
|||
<summary>Check if checksums are enabled</summary>
|
||||
|
||||
```bash
|
||||
docker exec -it immich_postgres psql --dbname=immich --username=<DB_USERNAME> --command="show data_checksums"
|
||||
docker exec -it immich_postgres psql --dbname=postgres --username=<DB_USERNAME> --command="show data_checksums"
|
||||
data_checksums
|
||||
----------------
|
||||
on
|
||||
|
@ -436,7 +473,7 @@ If checksums are enabled, you can check the status of the database with the foll
|
|||
<summary>Check for database corruption</summary>
|
||||
|
||||
```bash
|
||||
docker exec -it immich_postgres psql --dbname=immich --username=<DB_USERNAME> --command="SELECT datname, checksum_failures, checksum_last_failure FROM pg_stat_database WHERE datname IS NOT NULL"
|
||||
docker exec -it immich_postgres psql --dbname=postgres --username=<DB_USERNAME> --command="SELECT datname, checksum_failures, checksum_last_failure FROM pg_stat_database WHERE datname IS NOT NULL"
|
||||
datname | checksum_failures | checksum_last_failure
|
||||
-----------+-------------------+-----------------------
|
||||
postgres | 0 |
|
||||
|
|
|
@ -55,7 +55,7 @@ sleep 10 # Wait for Postgres server to start up
|
|||
# Check the database user if you deviated from the default
|
||||
gunzip < "/path/to/backup/dump.sql.gz" \
|
||||
| sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
|
||||
| docker exec -i immich_postgres psql --username=postgres # Restore Backup
|
||||
| docker exec -i immich_postgres psql --dbname=postgres --username=<DB_USERNAME> # Restore Backup
|
||||
docker compose up -d # Start remainder of Immich apps
|
||||
```
|
||||
|
||||
|
@ -70,18 +70,18 @@ docker compose up -d # Start remainder of Immich apps
|
|||
docker compose down -v # CAUTION! Deletes all Immich data to start from scratch
|
||||
## Uncomment the next line and replace DB_DATA_LOCATION with your Postgres path to permanently reset the Postgres database
|
||||
# Remove-Item -Recurse -Force DB_DATA_LOCATION # CAUTION! Deletes all Immich data to start from scratch
|
||||
## You should mount the backup (as a volume, example: - 'C:\path\to\backup\dump.sql':/dump.sql) into the immich_postgres container using the docker-compose.yml
|
||||
docker compose pull # Update to latest version of Immich (if desired)
|
||||
docker compose create # Create Docker containers for Immich apps without running them
|
||||
docker start immich_postgres # Start Postgres server
|
||||
sleep 10 # Wait for Postgres server to start up
|
||||
docker exec -it immich_postgres bash # Enter the Docker shell and run the following command
|
||||
# Check the database user if you deviated from the default
|
||||
cat "/dump.sql" \
|
||||
## You should mount the backup (as a volume, example: `- 'C:\path\to\backup\dump.sql:/dump.sql'`) into the immich_postgres container using the docker-compose.yml
|
||||
docker compose pull # Update to latest version of Immich (if desired)
|
||||
docker compose create # Create Docker containers for Immich apps without running them
|
||||
docker start immich_postgres # Start Postgres server
|
||||
sleep 10 # Wait for Postgres server to start up
|
||||
docker exec -it immich_postgres bash # Enter the Docker shell and run the following command
|
||||
# Check the database user if you deviated from the default. If your backup ends in `.gz`, replace `cat` with `gunzip`
|
||||
cat < "/dump.sql" \
|
||||
| sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
|
||||
| psql --username=postgres # Restore Backup
|
||||
exit # Exit the Docker shell
|
||||
docker compose up -d # Start remainder of Immich apps
|
||||
| psql --dbname=postgres --username=<DB_USERNAME> # Restore Backup
|
||||
exit # Exit the Docker shell
|
||||
docker compose up -d # Start remainder of Immich apps
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
|
@ -95,12 +95,14 @@ Some deployment methods make it difficult to start the database without also sta
|
|||
|
||||
## Filesystem
|
||||
|
||||
Immich stores two types of content in the filesystem: (1) original, unmodified assets (photos and videos), and (2) generated content. Only the original content needs to be backed-up, which is stored in the following folders:
|
||||
Immich stores two types of content in the filesystem: (a) original, unmodified assets (photos and videos), and (b) generated content. We recommend backing up the entire contents of `UPLOAD_LOCATION`, but only the original content is critical, which is stored in the following folders:
|
||||
|
||||
1. `UPLOAD_LOCATION/library`
|
||||
2. `UPLOAD_LOCATION/upload`
|
||||
3. `UPLOAD_LOCATION/profile`
|
||||
|
||||
If you choose to back up only those folders, you will need to rerun the transcoding and thumbnail generation jobs for all assets after you restore from a backup.
|
||||
|
||||
:::caution
|
||||
If you moved some of these folders onto a different storage device, such as `profile/`, make sure to adjust the backup path to match your setup
|
||||
:::
|
||||
|
|
|
@ -63,6 +63,17 @@ 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/ui`
|
||||
|
||||
To see local changes to `@immich/ui` in Immich, do the following:
|
||||
|
||||
1. Install `@immich/ui` as a sibling to `immich/`, for example `/home/user/immich` and `/home/user/ui`
|
||||
1. Build the `@immich/ui` project via `npm run build`
|
||||
1. Uncomment the corresponding volume in web service of the `docker/docker-compose.dev.yaml` file (`../../ui:/usr/ui`)
|
||||
1. Uncomment the corresponding alias in the `web/vite.config.js` file (`'@immich/ui': path.resolve(\_\_dirname, '../../ui')`)
|
||||
1. Start up the stack via `make dev`
|
||||
1. After making changes in `@immich/ui`, rebuild it (`npm run build`)
|
||||
|
||||
### Mobile app
|
||||
|
||||
The mobile app `(/mobile)` will required Flutter toolchain 3.13.x to be installed on your system.
|
||||
|
|
|
@ -36,11 +36,15 @@ You can enable automatic backup on supported devices. For more information see [
|
|||
If you have a large number of photos on the device, and you would prefer not to backup all the photos, then it might be prudent to only backup selected photos from device to the Immich server.
|
||||
|
||||
First, you need to enable the Storage Indicator in your app's settings. Navigate to **<ins>Settings -> Photo Grid</ins>** and enable **"Show Storage indicator on asset tiles"**; this makes it easy to distinguish local-only assets and synced assets.
|
||||
|
||||
:::note
|
||||
|
||||
This will enable a small cloud icon on the bottom right corner of the asset tile, indicating that the asset is synced to the server:
|
||||
|
||||
1. <Icon path={mdiCloudOffOutline} size={1} /> - Local-only asset; not synced to the server
|
||||
2. <Icon path={mdiCloudCheckOutline} size={1} /> - Asset is synced to the server :::
|
||||
2. <Icon path={mdiCloudCheckOutline} size={1} /> - Asset is synced to the server
|
||||
|
||||
:::
|
||||
|
||||
Now make sure that the local album is selected in the backup screen (steps 1-2 above). You can find these albums listed in **<ins>Library -> On this device</ins>**. To selectively upload photos from these albums, simply select the local-only photos and tap on "Upload" button in the dynamic bottom menu.
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ After bringing down the containers with `docker compose down` and back up with `
|
|||
:::note
|
||||
To see exactly what metrics are made available, you can additionally add `8081:8081` to the server container's ports and `8082:8082` to the microservices container's ports.
|
||||
Visiting the `/metrics` endpoint for these services will show the same raw data that Prometheus collects.
|
||||
To configure these ports see [`IMMICH_API_METRICS_PORT` & `IMMICH_MICROSERVICES_METRICS_PORT`](../install/environment-variables/#general).
|
||||
To configure these ports see [`IMMICH_API_METRICS_PORT` & `IMMICH_MICROSERVICES_METRICS_PORT`](/docs/install/environment-variables/#general).
|
||||
:::
|
||||
|
||||
### Usage
|
||||
|
|
|
@ -49,5 +49,3 @@ The `thumbs/` folder contains both the small thumbnails displayed in the timelin
|
|||
|
||||
The storage metrics of the Immich server will track available storage at `UPLOAD_LOCATION`, so the administrator must set up some sort of monitoring to ensure the storage does not run out of space. The `profile/` folder is much smaller, usually less than 1 MB.
|
||||
:::
|
||||
|
||||
Thanks to [Jrasm91](https://github.com/immich-app/immich/discussions/2110#discussioncomment-5477767) for writing the guide.
|
||||
|
|
|
@ -5,9 +5,9 @@ Keep in mind that mucking around in the database might set the moon on fire. Avo
|
|||
:::
|
||||
|
||||
:::tip
|
||||
Run `docker exec -it immich_postgres psql --dbname=immich --username=<DB_USERNAME>` to connect to the database via the container directly.
|
||||
Run `docker exec -it immich_postgres psql --dbname=<DB_DATABASE_NAME> --username=<DB_USERNAME>` to connect to the database via the container directly.
|
||||
|
||||
(Replace `<DB_USERNAME>` with the value from your [`.env` file](/docs/install/environment-variables#database)).
|
||||
(Replace `<DB_DATABASE_NAME>` and `<DB_USERNAME>` with the values from your [`.env` file](/docs/install/environment-variables#database)).
|
||||
:::
|
||||
|
||||
## Assets
|
||||
|
|
|
@ -148,24 +148,26 @@ Redis (Sentinel) URL example JSON before encoding:
|
|||
|
||||
## Machine Learning
|
||||
|
||||
| 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_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_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_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_HTTP_KEEPALIVE_TIMEOUT_S`<sup>\*3</sup> | HTTP Keep-alive time in seconds | `2` | 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_PRELOAD__CLIP` | Name of a CLIP model to be preloaded and kept in cache | | machine learning |
|
||||
| `MACHINE_LEARNING_PRELOAD__FACIAL_RECOGNITION` | Name of a facial recognition model to be preloaded and kept in cache | | machine learning |
|
||||
| `MACHINE_LEARNING_ANN` | Enable ARM-NN hardware acceleration if supported | `True` | 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_TUNING_LEVEL` | ARM-NN GPU tuning level (1: rapid, 2: normal, 3: exhaustive) | `2` | machine learning |
|
||||
| `MACHINE_LEARNING_DEVICE_IDS`<sup>\*4</sup> | Device IDs to use in multi-GPU environments | `0` | 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 |
|
||||
| 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_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_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_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_HTTP_KEEPALIVE_TIMEOUT_S`<sup>\*3</sup> | HTTP Keep-alive time in seconds | `2` | 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_PRELOAD__CLIP__TEXTUAL` | Comma-separated list of (textual) CLIP 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__RECOGNITION` | Comma-separated list of (recognition) facial recognition 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_ANN` | Enable ARM-NN hardware acceleration if supported | `True` | 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_TUNING_LEVEL` | ARM-NN GPU tuning level (1: rapid, 2: normal, 3: exhaustive) | `2` | machine learning |
|
||||
| `MACHINE_LEARNING_DEVICE_IDS`<sup>\*4</sup> | Device IDs to use in multi-GPU environments | `0` | 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 |
|
||||
|
||||
\*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.
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ The script will perform the following actions:
|
|||
1. Download [docker-compose.yml](https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml), and the [.env](https://github.com/immich-app/immich/releases/latest/download/example.env) file from the main branch of the [repository](https://github.com/immich-app/immich).
|
||||
2. Start the containers.
|
||||
|
||||
The web application will be available at `http://<machine-ip-address>:2283`, and the server URL for the mobile app will be `http://<machine-ip-address>:2283/api`
|
||||
The web application and mobile app will be available at `http://<machine-ip-address>:2283`
|
||||
|
||||
The directory which is used to store the library files is `./immich-app` relative to the current directory.
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@ alt="Go to Docker Tab and visit the address listed next to immich-web"
|
|||
|
||||
<details >
|
||||
<summary>Using the FolderView plugin for organizing your Docker containers? Click me! Otherwise you're complete!</summary>
|
||||
<p>If you are using the FolderView plugin go the Docker tab and select "<b>New Folder</b>".<br />Label it <i>"Immich"</i> and use this URL as the logo: https://raw.githubusercontent.com/immich-app/immich/main/design/immich-logo.webp<br/>Then simply select all the Immich related containers before clicking "<b>Submit</b>"</p>
|
||||
<p>If you are using the FolderView plugin go the Docker tab and select "<b>New Folder</b>".<br />Label it <i>"Immich"</i> and use this URL as the logo: https://raw.githubusercontent.com/immich-app/immich/main/design/immich-logo.png<br/>Then simply select all the Immich related containers before clicking "<b>Submit</b>"</p>
|
||||
<img
|
||||
src={require('./img/unraid07.webp').default}
|
||||
width="80%"
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Comparison
|
||||
|
||||
If you're new here and came from other asset self-hosting alternatives you might want to look at a comparison between Immich and your current solution.
|
||||
Here you can see a [comparison between the various OpenSource Photo Libraries](https://meichthys.github.io/foss_photo_libraries/) including Immich.
|
|
@ -1,8 +0,0 @@
|
|||
---
|
||||
sidebar_position: 2
|
||||
---
|
||||
|
||||
# Comparison
|
||||
|
||||
If you're new here and came from other asset self-hosting alternatives you might want to look at a comparison between Immich and your current solution.
|
||||
Here you can see a [comparison between the various OpenSource Photo Libraries](https://meichthys.github.io/foss_photo_libraries/) including Immich.
|
|
@ -1,3 +1,3 @@
|
|||
Login to the mobile app with the server endpoint URL at `http://<machine-ip-address>:2283/api`
|
||||
Login to the mobile app with the server endpoint URL at `http://<machine-ip-address>:2283`
|
||||
|
||||
<img src={require('./img/sign-in-phone.webp').default} width='50%' title='Mobile App Sign In' />
|
||||
|
|
6627
docs/package-lock.json
generated
6627
docs/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -16,8 +16,8 @@
|
|||
"write-heading-ids": "docusaurus write-heading-ids"
|
||||
},
|
||||
"dependencies": {
|
||||
"@docusaurus/core": "~3.5.2",
|
||||
"@docusaurus/preset-classic": "~3.5.2",
|
||||
"@docusaurus/core": "~3.7.0",
|
||||
"@docusaurus/preset-classic": "~3.7.0",
|
||||
"@mdi/js": "^7.3.67",
|
||||
"@mdi/react": "^1.6.1",
|
||||
"@mdx-js/react": "^3.0.0",
|
||||
|
@ -35,7 +35,7 @@
|
|||
"url": "^0.11.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@docusaurus/module-type-aliases": "~3.5.2",
|
||||
"@docusaurus/module-type-aliases": "~3.7.0",
|
||||
"prettier": "^3.2.4",
|
||||
"typescript": "^5.1.6"
|
||||
},
|
||||
|
@ -55,6 +55,6 @@
|
|||
"node": ">=20"
|
||||
},
|
||||
"volta": {
|
||||
"node": "22.12.0"
|
||||
"node": "22.13.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -99,6 +99,11 @@ const projects: CommunityProjectProps[] = [
|
|||
description: 'Downloads a configurable number of random photos based on people or album ID.',
|
||||
url: 'https://github.com/jon6fingrs/immich-dl',
|
||||
},
|
||||
{
|
||||
title: 'Immich Upload Optimizer',
|
||||
description: 'Automatically optimize files uploaded to Immich in order to save storage space',
|
||||
url: 'https://github.com/miguelangel-nubla/immich-upload-optimizer',
|
||||
},
|
||||
];
|
||||
|
||||
function CommunityProject({ title, description, url }: CommunityProjectProps): JSX.Element {
|
||||
|
|
|
@ -73,9 +73,9 @@ function HomepageHeader() {
|
|||
/>
|
||||
|
||||
<div>
|
||||
<p className="font-bold text-2xl md:text-5xl ">Download mobile app</p>
|
||||
<p className="font-bold text-2xl md:text-5xl ">Download the mobile app</p>
|
||||
<p className="text-lg">
|
||||
Download Immich app and start backing up your photos and videos securely to your own server
|
||||
Download the Immich app and start backing up your photos and videos securely to your own server
|
||||
</p>
|
||||
</div>
|
||||
<div className="flex flex-col sm:flex-row place-items-center place-content-center mt-4 gap-1">
|
||||
|
|
40
docs/static/archived-versions.json
vendored
40
docs/static/archived-versions.json
vendored
|
@ -1,4 +1,44 @@
|
|||
[
|
||||
{
|
||||
"label": "v1.125.6",
|
||||
"url": "https://v1.125.6.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.125.5",
|
||||
"url": "https://v1.125.5.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.125.4",
|
||||
"url": "https://v1.125.4.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.125.3",
|
||||
"url": "https://v1.125.3.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.125.2",
|
||||
"url": "https://v1.125.2.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.125.1",
|
||||
"url": "https://v1.125.1.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.125.0",
|
||||
"url": "https://v1.125.0.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.124.2",
|
||||
"url": "https://v1.124.2.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.124.1",
|
||||
"url": "https://v1.124.1.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.124.0",
|
||||
"url": "https://v1.124.0.archive.immich.app"
|
||||
},
|
||||
{
|
||||
"label": "v1.123.0",
|
||||
"url": "https://v1.123.0.archive.immich.app"
|
||||
|
|
|
@ -1 +1 @@
|
|||
22.12.0
|
||||
22.13.1
|
||||
|
|
|
@ -34,7 +34,7 @@ services:
|
|||
- 2285:2285
|
||||
|
||||
redis:
|
||||
image: redis:6.2-alpine@sha256:eaba718fecd1196d88533de7ba49bf903ad33664a92debb24660a922ecd9cac8
|
||||
image: redis:6.2-alpine@sha256:905c4ee67b8e0aa955331960d2aa745781e6bd89afc44a8584bfd13bc890f0ae
|
||||
|
||||
database:
|
||||
image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
|
||||
|
|
581
e2e/package-lock.json
generated
581
e2e/package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "immich-e2e",
|
||||
"version": "1.123.0",
|
||||
"version": "1.125.6",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"type": "module",
|
||||
|
@ -25,16 +25,16 @@
|
|||
"@immich/sdk": "file:../open-api/typescript-sdk",
|
||||
"@playwright/test": "^1.44.1",
|
||||
"@types/luxon": "^3.4.2",
|
||||
"@types/node": "^22.10.2",
|
||||
"@types/node": "^22.10.9",
|
||||
"@types/oidc-provider": "^8.5.1",
|
||||
"@types/pg": "^8.11.0",
|
||||
"@types/pngjs": "^6.0.4",
|
||||
"@types/supertest": "^6.0.2",
|
||||
"@typescript-eslint/eslint-plugin": "^8.15.0",
|
||||
"@typescript-eslint/parser": "^8.15.0",
|
||||
"@vitest/coverage-v8": "^2.0.5",
|
||||
"@vitest/coverage-v8": "^3.0.0",
|
||||
"eslint": "^9.14.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-config-prettier": "^10.0.0",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"eslint-plugin-unicorn": "^56.0.1",
|
||||
"exiftool-vendored": "^28.3.1",
|
||||
|
@ -50,9 +50,9 @@
|
|||
"supertest": "^7.0.0",
|
||||
"typescript": "^5.3.3",
|
||||
"utimes": "^5.2.1",
|
||||
"vitest": "^2.0.5"
|
||||
"vitest": "^3.0.0"
|
||||
},
|
||||
"volta": {
|
||||
"node": "22.12.0"
|
||||
"node": "22.13.1"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,79 +22,92 @@ const user1NotShared = 'user1NotShared';
|
|||
const user2SharedUser = 'user2SharedUser';
|
||||
const user2SharedLink = 'user2SharedLink';
|
||||
const user2NotShared = 'user2NotShared';
|
||||
const user4DeletedAsset = 'user4DeletedAsset';
|
||||
const user4Empty = 'user4Empty';
|
||||
|
||||
describe('/albums', () => {
|
||||
let admin: LoginResponseDto;
|
||||
let user1: LoginResponseDto;
|
||||
let user1Asset1: AssetMediaResponseDto;
|
||||
let user1Asset2: AssetMediaResponseDto;
|
||||
let user4Asset1: AssetMediaResponseDto;
|
||||
let user1Albums: AlbumResponseDto[];
|
||||
let user2: LoginResponseDto;
|
||||
let user2Albums: AlbumResponseDto[];
|
||||
let deletedAssetAlbum: AlbumResponseDto;
|
||||
let user3: LoginResponseDto; // deleted
|
||||
let user4: LoginResponseDto;
|
||||
|
||||
beforeAll(async () => {
|
||||
await utils.resetDatabase();
|
||||
|
||||
admin = await utils.adminSetup();
|
||||
|
||||
[user1, user2, user3] = await Promise.all([
|
||||
[user1, user2, user3, user4] = await Promise.all([
|
||||
utils.userSetup(admin.accessToken, createUserDto.user1),
|
||||
utils.userSetup(admin.accessToken, createUserDto.user2),
|
||||
utils.userSetup(admin.accessToken, createUserDto.user3),
|
||||
utils.userSetup(admin.accessToken, createUserDto.user4),
|
||||
]);
|
||||
|
||||
[user1Asset1, user1Asset2] = await Promise.all([
|
||||
[user1Asset1, user1Asset2, user4Asset1] = await Promise.all([
|
||||
utils.createAsset(user1.accessToken, { isFavorite: true }),
|
||||
utils.createAsset(user1.accessToken),
|
||||
utils.createAsset(user1.accessToken),
|
||||
]);
|
||||
|
||||
user1Albums = await Promise.all([
|
||||
utils.createAlbum(user1.accessToken, {
|
||||
albumName: user1SharedEditorUser,
|
||||
albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Editor }],
|
||||
assetIds: [user1Asset1.id],
|
||||
}),
|
||||
utils.createAlbum(user1.accessToken, {
|
||||
albumName: user1SharedLink,
|
||||
assetIds: [user1Asset1.id],
|
||||
}),
|
||||
utils.createAlbum(user1.accessToken, {
|
||||
albumName: user1NotShared,
|
||||
assetIds: [user1Asset1.id, user1Asset2.id],
|
||||
}),
|
||||
utils.createAlbum(user1.accessToken, {
|
||||
albumName: user1SharedViewerUser,
|
||||
albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Viewer }],
|
||||
assetIds: [user1Asset1.id],
|
||||
[user1Albums, user2Albums, deletedAssetAlbum] = await Promise.all([
|
||||
Promise.all([
|
||||
utils.createAlbum(user1.accessToken, {
|
||||
albumName: user1SharedEditorUser,
|
||||
albumUsers: [
|
||||
{ userId: admin.userId, role: AlbumUserRole.Editor },
|
||||
{ userId: user2.userId, role: AlbumUserRole.Editor },
|
||||
],
|
||||
assetIds: [user1Asset1.id],
|
||||
}),
|
||||
utils.createAlbum(user1.accessToken, {
|
||||
albumName: user1SharedLink,
|
||||
assetIds: [user1Asset1.id],
|
||||
}),
|
||||
utils.createAlbum(user1.accessToken, {
|
||||
albumName: user1NotShared,
|
||||
assetIds: [user1Asset1.id, user1Asset2.id],
|
||||
}),
|
||||
utils.createAlbum(user1.accessToken, {
|
||||
albumName: user1SharedViewerUser,
|
||||
albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Viewer }],
|
||||
assetIds: [user1Asset1.id],
|
||||
}),
|
||||
]),
|
||||
Promise.all([
|
||||
utils.createAlbum(user2.accessToken, {
|
||||
albumName: user2SharedUser,
|
||||
albumUsers: [
|
||||
{ userId: user1.userId, role: AlbumUserRole.Editor },
|
||||
{ userId: user3.userId, role: AlbumUserRole.Editor },
|
||||
],
|
||||
}),
|
||||
utils.createAlbum(user2.accessToken, { albumName: user2SharedLink }),
|
||||
utils.createAlbum(user2.accessToken, { albumName: user2NotShared }),
|
||||
]),
|
||||
utils.createAlbum(user4.accessToken, { albumName: user4DeletedAsset }),
|
||||
utils.createAlbum(user4.accessToken, { albumName: user4Empty }),
|
||||
utils.createAlbum(user3.accessToken, {
|
||||
albumName: 'Deleted',
|
||||
albumUsers: [{ userId: user1.userId, role: AlbumUserRole.Editor }],
|
||||
}),
|
||||
]);
|
||||
|
||||
user2Albums = await Promise.all([
|
||||
utils.createAlbum(user2.accessToken, {
|
||||
albumName: user2SharedUser,
|
||||
albumUsers: [
|
||||
{ userId: user1.userId, role: AlbumUserRole.Editor },
|
||||
{ userId: user3.userId, role: AlbumUserRole.Editor },
|
||||
],
|
||||
}),
|
||||
utils.createAlbum(user2.accessToken, { albumName: user2SharedLink }),
|
||||
utils.createAlbum(user2.accessToken, { albumName: user2NotShared }),
|
||||
]);
|
||||
|
||||
await utils.createAlbum(user3.accessToken, {
|
||||
albumName: 'Deleted',
|
||||
albumUsers: [{ userId: user1.userId, role: AlbumUserRole.Editor }],
|
||||
});
|
||||
|
||||
await addAssetsToAlbum(
|
||||
{ id: user2Albums[0].id, bulkIdsDto: { ids: [user1Asset1.id, user1Asset2.id] } },
|
||||
{ headers: asBearerAuth(user1.accessToken) },
|
||||
);
|
||||
|
||||
user2Albums[0] = await getAlbumInfo({ id: user2Albums[0].id }, { headers: asBearerAuth(user2.accessToken) });
|
||||
|
||||
await Promise.all([
|
||||
addAssetsToAlbum(
|
||||
{ id: user2Albums[0].id, bulkIdsDto: { ids: [user1Asset1.id, user1Asset2.id] } },
|
||||
{ headers: asBearerAuth(user1.accessToken) },
|
||||
),
|
||||
addAssetsToAlbum(
|
||||
{ id: deletedAssetAlbum.id, bulkIdsDto: { ids: [user4Asset1.id] } },
|
||||
{ headers: asBearerAuth(user4.accessToken) },
|
||||
),
|
||||
// add shared link to user1SharedLink album
|
||||
utils.createSharedLink(user1.accessToken, {
|
||||
type: SharedLinkType.Album,
|
||||
|
@ -107,7 +120,11 @@ describe('/albums', () => {
|
|||
}),
|
||||
]);
|
||||
|
||||
await deleteUserAdmin({ id: user3.userId, userAdminDeleteDto: {} }, { headers: asBearerAuth(admin.accessToken) });
|
||||
[user2Albums[0]] = await Promise.all([
|
||||
getAlbumInfo({ id: user2Albums[0].id }, { headers: asBearerAuth(user2.accessToken) }),
|
||||
deleteUserAdmin({ id: user3.userId, userAdminDeleteDto: {} }, { headers: asBearerAuth(admin.accessToken) }),
|
||||
utils.deleteAssets(user1.accessToken, [user4Asset1.id]),
|
||||
]);
|
||||
});
|
||||
|
||||
describe('GET /albums', () => {
|
||||
|
@ -142,6 +159,10 @@ describe('/albums', () => {
|
|||
...user1Albums[0],
|
||||
assets: [expect.objectContaining({ isFavorite: false })],
|
||||
lastModifiedAssetTimestamp: expect.any(String),
|
||||
startDate: expect.any(String),
|
||||
endDate: expect.any(String),
|
||||
shared: true,
|
||||
albumUsers: expect.any(Array),
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -280,6 +301,25 @@ describe('/albums', () => {
|
|||
expect(status).toBe(200);
|
||||
expect(body).toHaveLength(5);
|
||||
});
|
||||
|
||||
it('should return empty albums and albums where all assets are deleted', async () => {
|
||||
const { status, body } = await request(app).get('/albums').set('Authorization', `Bearer ${user4.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toEqual(
|
||||
expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
ownerId: user4.userId,
|
||||
albumName: user4DeletedAsset,
|
||||
shared: false,
|
||||
}),
|
||||
expect.objectContaining({
|
||||
ownerId: user4.userId,
|
||||
albumName: user4Empty,
|
||||
shared: false,
|
||||
}),
|
||||
]),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /albums/:id', () => {
|
||||
|
@ -299,6 +339,10 @@ describe('/albums', () => {
|
|||
...user1Albums[0],
|
||||
assets: [expect.objectContaining({ id: user1Albums[0].assets[0].id })],
|
||||
lastModifiedAssetTimestamp: expect.any(String),
|
||||
startDate: expect.any(String),
|
||||
endDate: expect.any(String),
|
||||
albumUsers: expect.any(Array),
|
||||
shared: true,
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -330,6 +374,10 @@ describe('/albums', () => {
|
|||
...user1Albums[0],
|
||||
assets: [expect.objectContaining({ id: user1Albums[0].assets[0].id })],
|
||||
lastModifiedAssetTimestamp: expect.any(String),
|
||||
startDate: expect.any(String),
|
||||
endDate: expect.any(String),
|
||||
albumUsers: expect.any(Array),
|
||||
shared: true,
|
||||
});
|
||||
});
|
||||
|
||||
|
@ -344,6 +392,30 @@ describe('/albums', () => {
|
|||
assets: [],
|
||||
assetCount: 1,
|
||||
lastModifiedAssetTimestamp: expect.any(String),
|
||||
endDate: expect.any(String),
|
||||
startDate: expect.any(String),
|
||||
albumUsers: expect.any(Array),
|
||||
shared: true,
|
||||
});
|
||||
});
|
||||
|
||||
it('should not count trashed assets', async () => {
|
||||
await utils.deleteAssets(user1.accessToken, [user1Asset2.id]);
|
||||
|
||||
const { status, body } = await request(app)
|
||||
.get(`/albums/${user2Albums[0].id}?withoutAssets=true`)
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
|
||||
expect(status).toBe(200);
|
||||
expect(body).toEqual({
|
||||
...user2Albums[0],
|
||||
assets: [],
|
||||
assetCount: 1,
|
||||
lastModifiedAssetTimestamp: expect.any(String),
|
||||
endDate: expect.any(String),
|
||||
startDate: expect.any(String),
|
||||
albumUsers: expect.any(Array),
|
||||
shared: true,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -3,11 +3,11 @@ import {
|
|||
AssetMediaStatus,
|
||||
AssetResponseDto,
|
||||
AssetTypeEnum,
|
||||
LoginResponseDto,
|
||||
SharedLinkType,
|
||||
getAssetInfo,
|
||||
getConfig,
|
||||
getMyUser,
|
||||
LoginResponseDto,
|
||||
SharedLinkType,
|
||||
updateConfig,
|
||||
} from '@immich/sdk';
|
||||
import { exiftool } from 'exiftool-vendored';
|
||||
|
@ -19,7 +19,7 @@ import { Socket } from 'socket.io-client';
|
|||
import { createUserDto, uuidDto } from 'src/fixtures';
|
||||
import { makeRandomImage } from 'src/generators';
|
||||
import { errorDto } from 'src/responses';
|
||||
import { app, asBearerAuth, tempDir, testAssetDir, utils } from 'src/utils';
|
||||
import { app, asBearerAuth, tempDir, TEN_TIMES, testAssetDir, utils } from 'src/utils';
|
||||
import request from 'supertest';
|
||||
import { afterAll, beforeAll, describe, expect, it } from 'vitest';
|
||||
|
||||
|
@ -41,8 +41,6 @@ const makeUploadDto = (options?: { omit: string }): Record<string, any> => {
|
|||
return dto;
|
||||
};
|
||||
|
||||
const TEN_TIMES = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||
|
||||
const locationAssetFilepath = `${testAssetDir}/metadata/gps-position/thompson-springs.jpg`;
|
||||
const ratingAssetFilepath = `${testAssetDir}/metadata/rating/mongolels.jpg`;
|
||||
const facesAssetFilepath = `${testAssetDir}/metadata/faces/portrait.jpg`;
|
||||
|
@ -538,7 +536,7 @@ describe('/asset', () => {
|
|||
expect(body).toMatchObject({
|
||||
id: user1Assets[0].id,
|
||||
exifInfo: expect.objectContaining({
|
||||
dateTimeOriginal: '2023-11-20T01:11:00.000Z',
|
||||
dateTimeOriginal: '2023-11-20T01:11:00+00:00',
|
||||
}),
|
||||
});
|
||||
expect(status).toEqual(200);
|
||||
|
@ -608,7 +606,7 @@ describe('/asset', () => {
|
|||
await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
|
||||
|
||||
const assetInfo = await utils.getAssetInfo(user1.accessToken, id);
|
||||
expect(assetInfo.exifInfo?.dateTimeOriginal).toBe('2024-07-11T10:32:52.000Z');
|
||||
expect(assetInfo.exifInfo?.dateTimeOriginal).toBe('2024-07-11T10:32:52+00:00');
|
||||
|
||||
const { status, body } = await request(app)
|
||||
.put(`/assets/${id}`)
|
||||
|
@ -618,7 +616,7 @@ describe('/asset', () => {
|
|||
expect(body).toMatchObject({
|
||||
id,
|
||||
exifInfo: expect.objectContaining({
|
||||
dateTimeOriginal: '2023-11-20T01:11:00.000Z',
|
||||
dateTimeOriginal: '2023-11-20T01:11:00+00:00',
|
||||
}),
|
||||
});
|
||||
expect(status).toEqual(200);
|
||||
|
@ -703,6 +701,20 @@ describe('/asset', () => {
|
|||
expect(status).toEqual(200);
|
||||
});
|
||||
|
||||
it('should set the negative rating', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.put(`/assets/${user1Assets[0].id}`)
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`)
|
||||
.send({ rating: -1 });
|
||||
expect(body).toMatchObject({
|
||||
id: user1Assets[0].id,
|
||||
exifInfo: expect.objectContaining({
|
||||
rating: -1,
|
||||
}),
|
||||
});
|
||||
expect(status).toEqual(200);
|
||||
});
|
||||
|
||||
it('should reject invalid rating', async () => {
|
||||
for (const test of [{ rating: 7 }, { rating: 3.5 }, { rating: null }]) {
|
||||
const { status, body } = await request(app)
|
||||
|
@ -766,7 +778,7 @@ describe('/asset', () => {
|
|||
expect(body).toEqual(errorDto.badRequest('Not found or no asset.delete access'));
|
||||
});
|
||||
|
||||
it('should move an asset to the trash', async () => {
|
||||
it('should move an asset to trash', async () => {
|
||||
const { id: assetId } = await utils.createAsset(admin.accessToken);
|
||||
|
||||
const before = await utils.getAssetInfo(admin.accessToken, assetId);
|
||||
|
@ -782,6 +794,38 @@ describe('/asset', () => {
|
|||
expect(after.isTrashed).toBe(true);
|
||||
});
|
||||
|
||||
it('should permanently delete an asset from trash', async () => {
|
||||
const { id: assetId } = await utils.createAsset(admin.accessToken);
|
||||
|
||||
{
|
||||
const { status } = await request(app)
|
||||
.delete('/assets')
|
||||
.send({ ids: [assetId] })
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||
expect(status).toBe(204);
|
||||
}
|
||||
|
||||
const trashed = await utils.getAssetInfo(admin.accessToken, assetId);
|
||||
expect(trashed.isTrashed).toBe(true);
|
||||
|
||||
{
|
||||
const { status } = await request(app)
|
||||
.delete('/assets')
|
||||
.send({ ids: [assetId], force: true })
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||
expect(status).toBe(204);
|
||||
}
|
||||
|
||||
await utils.waitForWebsocketEvent({ event: 'assetDelete', id: assetId });
|
||||
|
||||
{
|
||||
const { status } = await request(app)
|
||||
.get(`/assets/${assetId}`)
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||
expect(status).toBe(400);
|
||||
}
|
||||
});
|
||||
|
||||
it('should clean up live photos', async () => {
|
||||
const { id: motionId } = await utils.createAsset(admin.accessToken, {
|
||||
assetData: { filename: 'test.mp4', bytes: makeRandomImage() },
|
||||
|
@ -953,8 +997,6 @@ describe('/asset', () => {
|
|||
exifImageHeight: 1080,
|
||||
exifImageWidth: 1617,
|
||||
fileSizeInByte: 862_424,
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -964,11 +1006,9 @@ describe('/asset', () => {
|
|||
type: AssetTypeEnum.Image,
|
||||
originalFileName: 'el_torcal_rocks.jpg',
|
||||
exifInfo: {
|
||||
dateTimeOriginal: '2012-08-05T11:39:59.000Z',
|
||||
dateTimeOriginal: '2012-08-05T11:39:59+00:00',
|
||||
exifImageWidth: 512,
|
||||
exifImageHeight: 341,
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
focalLength: 75,
|
||||
iso: 200,
|
||||
fNumber: 11,
|
||||
|
@ -976,7 +1016,6 @@ describe('/asset', () => {
|
|||
fileSizeInByte: 53_493,
|
||||
make: 'SONY',
|
||||
model: 'DSLR-A550',
|
||||
orientation: null,
|
||||
description: 'SONY DSC',
|
||||
},
|
||||
},
|
||||
|
@ -991,8 +1030,6 @@ describe('/asset', () => {
|
|||
exifImageHeight: 1080,
|
||||
exifImageWidth: 1440,
|
||||
fileSizeInByte: 1_780_777,
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -1003,7 +1040,7 @@ describe('/asset', () => {
|
|||
originalFileName: 'IMG_2682.heic',
|
||||
fileCreatedAt: '2019-03-21T16:04:22.348Z',
|
||||
exifInfo: {
|
||||
dateTimeOriginal: '2019-03-21T16:04:22.348Z',
|
||||
dateTimeOriginal: '2019-03-21T16:04:22.348+00:00',
|
||||
exifImageWidth: 4032,
|
||||
exifImageHeight: 3024,
|
||||
latitude: 41.2203,
|
||||
|
@ -1028,8 +1065,6 @@ describe('/asset', () => {
|
|||
exifInfo: {
|
||||
exifImageWidth: 800,
|
||||
exifImageHeight: 800,
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
fileSizeInByte: 25_408,
|
||||
},
|
||||
},
|
||||
|
@ -1048,9 +1083,7 @@ describe('/asset', () => {
|
|||
focalLength: 18,
|
||||
iso: 100,
|
||||
fileSizeInByte: 9_057_784,
|
||||
dateTimeOriginal: '2010-07-20T17:27:12.000Z',
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
dateTimeOriginal: '2010-07-20T17:27:12+00:00',
|
||||
orientation: '1',
|
||||
},
|
||||
},
|
||||
|
@ -1069,9 +1102,7 @@ describe('/asset', () => {
|
|||
focalLength: 85,
|
||||
iso: 200,
|
||||
fileSizeInByte: 15_856_335,
|
||||
dateTimeOriginal: '2016-09-22T21:10:29.060Z',
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
dateTimeOriginal: '2016-09-22T21:10:29.06+00:00',
|
||||
orientation: '1',
|
||||
timeZone: 'UTC-4',
|
||||
},
|
||||
|
@ -1093,9 +1124,7 @@ describe('/asset', () => {
|
|||
focalLength: 35,
|
||||
iso: 400,
|
||||
fileSizeInByte: 19_587_072,
|
||||
dateTimeOriginal: '2018-05-10T08:42:37.842Z',
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
dateTimeOriginal: '2018-05-10T08:42:37.842+00:00',
|
||||
orientation: '1',
|
||||
},
|
||||
},
|
||||
|
@ -1117,9 +1146,7 @@ describe('/asset', () => {
|
|||
iso: 100,
|
||||
lensModel: 'E PZ 18-105mm F4 G OSS',
|
||||
fileSizeInByte: 25_001_984,
|
||||
dateTimeOriginal: '2016-09-27T10:51:44.000Z',
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
dateTimeOriginal: '2016-09-27T10:51:44+00:00',
|
||||
orientation: '1',
|
||||
},
|
||||
},
|
||||
|
@ -1141,9 +1168,7 @@ describe('/asset', () => {
|
|||
iso: 100,
|
||||
lensModel: 'E 25mm F2',
|
||||
fileSizeInByte: 49_512_448,
|
||||
dateTimeOriginal: '2016-01-08T14:08:01.000Z',
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
dateTimeOriginal: '2016-01-08T14:08:01+00:00',
|
||||
orientation: '1',
|
||||
},
|
||||
},
|
||||
|
@ -1165,7 +1190,7 @@ describe('/asset', () => {
|
|||
iso: 80,
|
||||
lensModel: null,
|
||||
fileSizeInByte: 11_113_617,
|
||||
dateTimeOriginal: '2015-12-27T09:55:40.000Z',
|
||||
dateTimeOriginal: '2015-12-27T09:55:40+00:00',
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
orientation: '1',
|
||||
|
@ -1189,7 +1214,7 @@ describe('/asset', () => {
|
|||
iso: 160,
|
||||
lensModel: null,
|
||||
fileSizeInByte: 13_551_312,
|
||||
dateTimeOriginal: '2024-10-12T21:01:01.000Z',
|
||||
dateTimeOriginal: '2024-10-12T21:01:01+00:00',
|
||||
latitude: null,
|
||||
longitude: null,
|
||||
orientation: '6',
|
||||
|
@ -1203,7 +1228,7 @@ describe('/asset', () => {
|
|||
originalFileName: 'Ricoh_GR3-450.DNG',
|
||||
fileCreatedAt: '2024-06-08T13:48:39.000Z',
|
||||
exifInfo: {
|
||||
dateTimeOriginal: '2024-06-08T13:48:39.000Z',
|
||||
dateTimeOriginal: '2024-06-08T13:48:39+00:00',
|
||||
exifImageHeight: 4064,
|
||||
exifImageWidth: 6112,
|
||||
exposureTime: '1/400',
|
||||
|
|
|
@ -301,10 +301,38 @@ describe('/libraries', () => {
|
|||
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, {
|
||||
originalPath: `${testAssetDirInternal}/temp/directoryA/assetA.png`,
|
||||
libraryId: library.id,
|
||||
});
|
||||
expect(assets.count).toBe(1);
|
||||
});
|
||||
|
||||
it('should process metadata and thumbnails for external asset', async () => {
|
||||
const library = await utils.createLibrary(admin.accessToken, {
|
||||
ownerId: admin.userId,
|
||||
importPaths: [`${testAssetDirInternal}/temp/directoryA`],
|
||||
});
|
||||
|
||||
const { status } = await request(app)
|
||||
.post(`/libraries/${library.id}/scan`)
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||
.send();
|
||||
expect(status).toBe(204);
|
||||
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'thumbnailGeneration');
|
||||
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, {
|
||||
originalPath: `${testAssetDirInternal}/temp/directoryA/assetA.png`,
|
||||
libraryId: library.id,
|
||||
});
|
||||
expect(assets.count).toBe(1);
|
||||
const asset = assets.items[0];
|
||||
expect(asset.exifInfo).not.toBe(null);
|
||||
expect(asset.exifInfo?.dateTimeOriginal).not.toBe(null);
|
||||
expect(asset.thumbhash).not.toBe(null);
|
||||
});
|
||||
|
||||
it('should scan external library with exclusion pattern', async () => {
|
||||
const library = await utils.createLibrary(admin.accessToken, {
|
||||
ownerId: admin.userId,
|
||||
|
@ -588,7 +616,7 @@ describe('/libraries', () => {
|
|||
expect(newAssets.items).toEqual([]);
|
||||
});
|
||||
|
||||
it('should set an asset offline its file is not in any import path', async () => {
|
||||
it('should set an asset offline if its file is not in any import path', async () => {
|
||||
utils.createImageFile(`${testAssetDir}/temp/offline/offline.png`);
|
||||
|
||||
const library = await utils.createLibrary(admin.accessToken, {
|
||||
|
@ -604,10 +632,9 @@ describe('/libraries', () => {
|
|||
|
||||
utils.createDirectory(`${testAssetDir}/temp/another-path/`);
|
||||
|
||||
await request(app)
|
||||
.put(`/libraries/${library.id}`)
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||
.send({ importPaths: [`${testAssetDirInternal}/temp/another-path/`] });
|
||||
await utils.updateLibrary(admin.accessToken, library.id, {
|
||||
importPaths: [`${testAssetDirInternal}/temp/another-path/`],
|
||||
});
|
||||
|
||||
const { status } = await request(app)
|
||||
.post(`/libraries/${library.id}/scan`)
|
||||
|
@ -644,10 +671,7 @@ describe('/libraries', () => {
|
|||
});
|
||||
expect(assets.count).toBe(1);
|
||||
|
||||
await request(app)
|
||||
.put(`/libraries/${library.id}`)
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||
.send({ exclusionPatterns: ['**/directoryB/**'] });
|
||||
await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: ['**/directoryB/**'] });
|
||||
|
||||
await scan(admin.accessToken, library.id);
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
@ -666,7 +690,7 @@ describe('/libraries', () => {
|
|||
]);
|
||||
});
|
||||
|
||||
it('should not trash an online asset', async () => {
|
||||
it('should not set an asset offline if its file exists, is in an import path, and not covered by an exclusion pattern', async () => {
|
||||
const library = await utils.createLibrary(admin.accessToken, {
|
||||
ownerId: admin.userId,
|
||||
importPaths: [`${testAssetDirInternal}/temp`],
|
||||
|
@ -982,6 +1006,195 @@ describe('/libraries', () => {
|
|||
rmSync(`${testAssetDir}/temp/xmp`, { recursive: true, force: true });
|
||||
});
|
||||
});
|
||||
|
||||
it('should set an offline asset to online if its file exists, is in an import path, and not covered by an exclusion pattern', async () => {
|
||||
utils.createImageFile(`${testAssetDir}/temp/offline/offline.png`);
|
||||
|
||||
const library = await utils.createLibrary(admin.accessToken, {
|
||||
ownerId: admin.userId,
|
||||
importPaths: [`${testAssetDirInternal}/temp/offline`],
|
||||
});
|
||||
|
||||
await scan(admin.accessToken, library.id);
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
||||
|
||||
utils.renameImageFile(`${testAssetDir}/temp/offline/offline.png`, `${testAssetDir}/temp/offline.png`);
|
||||
|
||||
{
|
||||
const { status } = await request(app)
|
||||
.post(`/libraries/${library.id}/scan`)
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||
.send();
|
||||
expect(status).toBe(204);
|
||||
}
|
||||
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
||||
const offlineAsset = await utils.getAssetInfo(admin.accessToken, assets.items[0].id);
|
||||
expect(offlineAsset.isTrashed).toBe(true);
|
||||
expect(offlineAsset.originalPath).toBe(`${testAssetDirInternal}/temp/offline/offline.png`);
|
||||
expect(offlineAsset.isOffline).toBe(true);
|
||||
|
||||
{
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id, withDeleted: true });
|
||||
expect(assets.count).toBe(1);
|
||||
}
|
||||
|
||||
utils.renameImageFile(`${testAssetDir}/temp/offline.png`, `${testAssetDir}/temp/offline/offline.png`);
|
||||
|
||||
{
|
||||
const { status } = await request(app)
|
||||
.post(`/libraries/${library.id}/scan`)
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||
.send();
|
||||
expect(status).toBe(204);
|
||||
}
|
||||
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
||||
const backOnlineAsset = await utils.getAssetInfo(admin.accessToken, assets.items[0].id);
|
||||
|
||||
expect(backOnlineAsset.isTrashed).toBe(false);
|
||||
expect(backOnlineAsset.originalPath).toBe(`${testAssetDirInternal}/temp/offline/offline.png`);
|
||||
expect(backOnlineAsset.isOffline).toBe(false);
|
||||
|
||||
{
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
||||
expect(assets.count).toBe(1);
|
||||
}
|
||||
});
|
||||
|
||||
it('should not set an offline asset to online if its file exists, is not covered by an exclusion pattern, but is outside of all import paths', async () => {
|
||||
utils.createImageFile(`${testAssetDir}/temp/offline/offline.png`);
|
||||
|
||||
const library = await utils.createLibrary(admin.accessToken, {
|
||||
ownerId: admin.userId,
|
||||
importPaths: [`${testAssetDirInternal}/temp/offline`],
|
||||
});
|
||||
|
||||
await scan(admin.accessToken, library.id);
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
||||
|
||||
utils.renameImageFile(`${testAssetDir}/temp/offline/offline.png`, `${testAssetDir}/temp/offline.png`);
|
||||
|
||||
{
|
||||
const { status } = await request(app)
|
||||
.post(`/libraries/${library.id}/scan`)
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||
.send();
|
||||
expect(status).toBe(204);
|
||||
}
|
||||
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
||||
{
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id, withDeleted: true });
|
||||
expect(assets.count).toBe(1);
|
||||
}
|
||||
|
||||
const offlineAsset = await utils.getAssetInfo(admin.accessToken, assets.items[0].id);
|
||||
|
||||
expect(offlineAsset.isTrashed).toBe(true);
|
||||
expect(offlineAsset.originalPath).toBe(`${testAssetDirInternal}/temp/offline/offline.png`);
|
||||
expect(offlineAsset.isOffline).toBe(true);
|
||||
|
||||
utils.renameImageFile(`${testAssetDir}/temp/offline.png`, `${testAssetDir}/temp/offline/offline.png`);
|
||||
|
||||
utils.createDirectory(`${testAssetDir}/temp/another-path/`);
|
||||
|
||||
await utils.updateLibrary(admin.accessToken, library.id, {
|
||||
importPaths: [`${testAssetDirInternal}/temp/another-path`],
|
||||
});
|
||||
|
||||
{
|
||||
const { status } = await request(app)
|
||||
.post(`/libraries/${library.id}/scan`)
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||
.send();
|
||||
expect(status).toBe(204);
|
||||
}
|
||||
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
||||
const stillOfflineAsset = await utils.getAssetInfo(admin.accessToken, assets.items[0].id);
|
||||
|
||||
expect(stillOfflineAsset.isTrashed).toBe(true);
|
||||
expect(stillOfflineAsset.originalPath).toBe(`${testAssetDirInternal}/temp/offline/offline.png`);
|
||||
expect(stillOfflineAsset.isOffline).toBe(true);
|
||||
|
||||
{
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id, withDeleted: true });
|
||||
expect(assets.count).toBe(1);
|
||||
}
|
||||
|
||||
utils.removeDirectory(`${testAssetDir}/temp/another-path/`);
|
||||
});
|
||||
|
||||
it('should not set an offline asset to online if its file exists, is in an import path, but is covered by an exclusion pattern', async () => {
|
||||
utils.createImageFile(`${testAssetDir}/temp/offline/offline.png`);
|
||||
|
||||
const library = await utils.createLibrary(admin.accessToken, {
|
||||
ownerId: admin.userId,
|
||||
importPaths: [`${testAssetDirInternal}/temp/offline`],
|
||||
});
|
||||
|
||||
await scan(admin.accessToken, library.id);
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
||||
|
||||
utils.renameImageFile(`${testAssetDir}/temp/offline/offline.png`, `${testAssetDir}/temp/offline.png`);
|
||||
|
||||
{
|
||||
const { status } = await request(app)
|
||||
.post(`/libraries/${library.id}/scan`)
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||
.send();
|
||||
expect(status).toBe(204);
|
||||
}
|
||||
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
||||
{
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id, withDeleted: true });
|
||||
expect(assets.count).toBe(1);
|
||||
}
|
||||
|
||||
const offlineAsset = await utils.getAssetInfo(admin.accessToken, assets.items[0].id);
|
||||
|
||||
expect(offlineAsset.isTrashed).toBe(true);
|
||||
expect(offlineAsset.originalPath).toBe(`${testAssetDirInternal}/temp/offline/offline.png`);
|
||||
expect(offlineAsset.isOffline).toBe(true);
|
||||
|
||||
utils.renameImageFile(`${testAssetDir}/temp/offline.png`, `${testAssetDir}/temp/offline/offline.png`);
|
||||
|
||||
await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: ['**/offline/**'] });
|
||||
|
||||
{
|
||||
const { status } = await request(app)
|
||||
.post(`/libraries/${library.id}/scan`)
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||
.send();
|
||||
expect(status).toBe(204);
|
||||
}
|
||||
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
||||
const stillOfflineAsset = await utils.getAssetInfo(admin.accessToken, assets.items[0].id);
|
||||
|
||||
expect(stillOfflineAsset.isTrashed).toBe(true);
|
||||
expect(stillOfflineAsset.originalPath).toBe(`${testAssetDirInternal}/temp/offline/offline.png`);
|
||||
expect(stillOfflineAsset.isOffline).toBe(true);
|
||||
|
||||
{
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id, withDeleted: true });
|
||||
expect(assets.count).toBe(1);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
describe('POST /libraries/:id/validate', () => {
|
||||
|
|
|
@ -93,8 +93,6 @@ describe('/memories', () => {
|
|||
data: { year: 2021 },
|
||||
createdAt: expect.any(String),
|
||||
updatedAt: expect.any(String),
|
||||
deletedAt: null,
|
||||
seenAt: null,
|
||||
isSaved: false,
|
||||
memoryAt: expect.any(String),
|
||||
ownerId: user.userId,
|
||||
|
|
|
@ -13,8 +13,8 @@ import request from 'supertest';
|
|||
import { beforeAll, describe, expect, it } from 'vitest';
|
||||
|
||||
const authServer = {
|
||||
internal: 'http://auth-server:3000',
|
||||
external: 'http://127.0.0.1:3000',
|
||||
internal: 'http://auth-server:2286',
|
||||
external: 'http://127.0.0.1:2286',
|
||||
};
|
||||
|
||||
const mobileOverrideRedirectUri = 'https://photos.immich.app/oauth/mobile-redirect';
|
||||
|
|
|
@ -200,7 +200,7 @@ describe('/people', () => {
|
|||
expect(body).toMatchObject({
|
||||
id: expect.any(String),
|
||||
name: 'New Person',
|
||||
birthDate: '1990-01-01',
|
||||
birthDate: '1990-01-01T00:00:00.000Z',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -244,7 +244,7 @@ describe('/people', () => {
|
|||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||
.send({ birthDate: '1990-01-01' });
|
||||
expect(status).toBe(200);
|
||||
expect(body).toMatchObject({ birthDate: '1990-01-01' });
|
||||
expect(body).toMatchObject({ birthDate: '1990-01-01T00:00:00.000Z' });
|
||||
});
|
||||
|
||||
it('should clear a date of birth', async () => {
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
import { AssetMediaResponseDto, LoginResponseDto, deleteAssets, updateAsset } from '@immich/sdk';
|
||||
import { AssetMediaResponseDto, AssetResponseDto, deleteAssets, LoginResponseDto, updateAsset } from '@immich/sdk';
|
||||
import { DateTime } from 'luxon';
|
||||
import { readFile } from 'node:fs/promises';
|
||||
import { join } from 'node:path';
|
||||
import { Socket } from 'socket.io-client';
|
||||
import { errorDto } from 'src/responses';
|
||||
import { app, asBearerAuth, testAssetDir, utils } from 'src/utils';
|
||||
import { app, asBearerAuth, TEN_TIMES, testAssetDir, utils } from 'src/utils';
|
||||
import request from 'supertest';
|
||||
import { afterAll, beforeAll, describe, expect, it } from 'vitest';
|
||||
const today = DateTime.now();
|
||||
|
@ -462,6 +462,55 @@ describe('/search', () => {
|
|||
});
|
||||
});
|
||||
|
||||
describe('POST /search/random', () => {
|
||||
beforeAll(async () => {
|
||||
await Promise.all([
|
||||
utils.createAsset(admin.accessToken),
|
||||
utils.createAsset(admin.accessToken),
|
||||
utils.createAsset(admin.accessToken),
|
||||
utils.createAsset(admin.accessToken),
|
||||
utils.createAsset(admin.accessToken),
|
||||
utils.createAsset(admin.accessToken),
|
||||
]);
|
||||
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'thumbnailGeneration');
|
||||
});
|
||||
|
||||
it('should require authentication', async () => {
|
||||
const { status, body } = await request(app).post('/search/random').send({ size: 1 });
|
||||
|
||||
expect(status).toBe(401);
|
||||
expect(body).toEqual(errorDto.unauthorized);
|
||||
});
|
||||
|
||||
it.each(TEN_TIMES)('should return 1 random assets', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.post('/search/random')
|
||||
.send({ size: 1 })
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||
|
||||
expect(status).toBe(200);
|
||||
|
||||
const assets: AssetResponseDto[] = body;
|
||||
expect(assets.length).toBe(1);
|
||||
expect(assets[0].ownerId).toBe(admin.userId);
|
||||
});
|
||||
|
||||
it.each(TEN_TIMES)('should return 2 random assets', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.post('/search/random')
|
||||
.send({ size: 2 })
|
||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||
|
||||
expect(status).toBe(200);
|
||||
|
||||
const assets: AssetResponseDto[] = body;
|
||||
expect(assets.length).toBe(2);
|
||||
expect(assets[0].ownerId).toBe(admin.userId);
|
||||
expect(assets[1].ownerId).toBe(admin.userId);
|
||||
});
|
||||
});
|
||||
|
||||
describe('GET /search/explore', () => {
|
||||
it('should require authentication', async () => {
|
||||
const { status, body } = await request(app).get('/search/explore');
|
||||
|
|
|
@ -170,7 +170,7 @@ describe('/shared-links', () => {
|
|||
expect(status).toBe(200);
|
||||
expect(body).toEqual(
|
||||
expect.objectContaining({
|
||||
album,
|
||||
album: expect.objectContaining({ id: album.id }),
|
||||
userId: user1.userId,
|
||||
type: SharedLinkType.Album,
|
||||
}),
|
||||
|
@ -208,7 +208,7 @@ describe('/shared-links', () => {
|
|||
expect(status).toBe(200);
|
||||
expect(body).toEqual(
|
||||
expect.objectContaining({
|
||||
album,
|
||||
album: expect.objectContaining({ id: album.id }),
|
||||
userId: user1.userId,
|
||||
type: SharedLinkType.Album,
|
||||
}),
|
||||
|
@ -262,7 +262,7 @@ describe('/shared-links', () => {
|
|||
expect(status).toBe(200);
|
||||
expect(body).toEqual(
|
||||
expect.objectContaining({
|
||||
album,
|
||||
album: expect.objectContaining({ id: album.id }),
|
||||
userId: user1.userId,
|
||||
type: SharedLinkType.Album,
|
||||
}),
|
||||
|
|
|
@ -119,93 +119,84 @@ describe('/stacks', () => {
|
|||
const stacksAfter = await searchStacks({}, { headers: asBearerAuth(user1.accessToken) });
|
||||
expect(stacksAfter.length).toBe(stacksBefore.length);
|
||||
});
|
||||
|
||||
// it('should require a valid parent id', async () => {
|
||||
// const { status, body } = await request(app)
|
||||
// .put('/assets')
|
||||
// .set('Authorization', `Bearer ${user1.accessToken}`)
|
||||
// .send({ stackParentId: uuidDto.invalid, ids: [stackAssets[0].id] });
|
||||
|
||||
// expect(status).toBe(400);
|
||||
// expect(body).toEqual(errorDto.badRequest(['stackParentId must be a UUID']));
|
||||
// });
|
||||
});
|
||||
|
||||
// it('should require access to the parent', async () => {
|
||||
// const { status, body } = await request(app)
|
||||
// .put('/assets')
|
||||
// .set('Authorization', `Bearer ${user1.accessToken}`)
|
||||
// .send({ stackParentId: stackAssets[3].id, ids: [user1Assets[0].id] });
|
||||
describe('GET /assets/:id', () => {
|
||||
it('should include stack details for the primary asset', async () => {
|
||||
const [asset1, asset2] = await Promise.all([
|
||||
utils.createAsset(user1.accessToken),
|
||||
utils.createAsset(user1.accessToken),
|
||||
]);
|
||||
|
||||
// expect(status).toBe(400);
|
||||
// expect(body).toEqual(errorDto.noPermission);
|
||||
// });
|
||||
await utils.createStack(user1.accessToken, [asset1.id, asset2.id]);
|
||||
|
||||
// it('should add stack children', async () => {
|
||||
// const { status } = await request(app)
|
||||
// .put('/assets')
|
||||
// .set('Authorization', `Bearer ${stackUser.accessToken}`)
|
||||
// .send({ stackParentId: stackAssets[0].id, ids: [stackAssets[3].id] });
|
||||
const { status, body } = await request(app)
|
||||
.get(`/assets/${asset1.id}`)
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
|
||||
// expect(status).toBe(204);
|
||||
expect(status).toBe(200);
|
||||
expect(body).toEqual(
|
||||
expect.objectContaining({
|
||||
id: asset1.id,
|
||||
stack: {
|
||||
id: expect.any(String),
|
||||
assetCount: 2,
|
||||
primaryAssetId: asset1.id,
|
||||
},
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
// const asset = await getAssetInfo({ id: stackAssets[0].id }, { headers: asBearerAuth(stackUser.accessToken) });
|
||||
// expect(asset.stack).not.toBeUndefined();
|
||||
// expect(asset.stack).toEqual(expect.arrayContaining([expect.objectContaining({ id: stackAssets[3].id })]));
|
||||
// });
|
||||
it('should include stack details for a non-primary asset', async () => {
|
||||
const [asset1, asset2] = await Promise.all([
|
||||
utils.createAsset(user1.accessToken),
|
||||
utils.createAsset(user1.accessToken),
|
||||
]);
|
||||
|
||||
// it('should remove stack children', async () => {
|
||||
// const { status } = await request(app)
|
||||
// .put('/assets')
|
||||
// .set('Authorization', `Bearer ${stackUser.accessToken}`)
|
||||
// .send({ removeParent: true, ids: [stackAssets[1].id] });
|
||||
await utils.createStack(user1.accessToken, [asset1.id, asset2.id]);
|
||||
|
||||
// expect(status).toBe(204);
|
||||
const { status, body } = await request(app)
|
||||
.get(`/assets/${asset2.id}`)
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
|
||||
// const asset = await getAssetInfo({ id: stackAssets[0].id }, { headers: asBearerAuth(stackUser.accessToken) });
|
||||
// expect(asset.stack).not.toBeUndefined();
|
||||
// expect(asset.stack).toEqual(
|
||||
// expect.arrayContaining([
|
||||
// expect.objectContaining({ id: stackAssets[2].id }),
|
||||
// expect.objectContaining({ id: stackAssets[3].id }),
|
||||
// ]),
|
||||
// );
|
||||
// });
|
||||
expect(status).toBe(200);
|
||||
expect(body).toEqual(
|
||||
expect.objectContaining({
|
||||
id: asset2.id,
|
||||
stack: {
|
||||
id: expect.any(String),
|
||||
assetCount: 2,
|
||||
primaryAssetId: asset1.id,
|
||||
},
|
||||
}),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
// it('should remove all stack children', async () => {
|
||||
// const { status } = await request(app)
|
||||
// .put('/assets')
|
||||
// .set('Authorization', `Bearer ${stackUser.accessToken}`)
|
||||
// .send({ removeParent: true, ids: [stackAssets[2].id, stackAssets[3].id] });
|
||||
describe('GET /stacks/:id', () => {
|
||||
it('should include exifInfo in stack assets', async () => {
|
||||
const [asset1, asset2] = await Promise.all([
|
||||
utils.createAsset(user1.accessToken),
|
||||
utils.createAsset(user1.accessToken),
|
||||
]);
|
||||
|
||||
// expect(status).toBe(204);
|
||||
const stack = await utils.createStack(user1.accessToken, [asset1.id, asset2.id]);
|
||||
|
||||
// const asset = await getAssetInfo({ id: stackAssets[0].id }, { headers: asBearerAuth(stackUser.accessToken) });
|
||||
// expect(asset.stack).toBeUndefined();
|
||||
// });
|
||||
const { status, body } = await request(app)
|
||||
.get(`/stacks/${stack.id}`)
|
||||
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||
|
||||
// it('should merge stack children', async () => {
|
||||
// // create stack after previous test removed stack children
|
||||
// await updateAssets(
|
||||
// { assetBulkUpdateDto: { stackParentId: stackAssets[0].id, ids: [stackAssets[1].id, stackAssets[2].id] } },
|
||||
// { headers: asBearerAuth(stackUser.accessToken) },
|
||||
// );
|
||||
|
||||
// const { status } = await request(app)
|
||||
// .put('/assets')
|
||||
// .set('Authorization', `Bearer ${stackUser.accessToken}`)
|
||||
// .send({ stackParentId: stackAssets[3].id, ids: [stackAssets[0].id] });
|
||||
|
||||
// expect(status).toBe(204);
|
||||
|
||||
// const asset = await getAssetInfo({ id: stackAssets[3].id }, { headers: asBearerAuth(stackUser.accessToken) });
|
||||
// expect(asset.stack).not.toBeUndefined();
|
||||
// expect(asset.stack).toEqual(
|
||||
// expect.arrayContaining([
|
||||
// expect.objectContaining({ id: stackAssets[0].id }),
|
||||
// expect.objectContaining({ id: stackAssets[1].id }),
|
||||
// expect.objectContaining({ id: stackAssets[2].id }),
|
||||
// ]),
|
||||
// );
|
||||
// });
|
||||
expect(status).toBe(200);
|
||||
expect(body).toEqual(
|
||||
expect.objectContaining({
|
||||
id: stack.id,
|
||||
primaryAssetId: asset1.id,
|
||||
assets: expect.arrayContaining([
|
||||
expect.objectContaining({ id: asset1.id, exifInfo: expect.any(Object) }),
|
||||
expect.objectContaining({ id: asset2.id, exifInfo: expect.any(Object) }),
|
||||
]),
|
||||
}),
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -151,7 +151,7 @@ describe('/timeline', () => {
|
|||
it('should require authentication', async () => {
|
||||
const { status, body } = await request(app).get('/timeline/bucket').query({
|
||||
size: TimeBucketSize.Month,
|
||||
timeBucket: '1900-01-01T00:00:00.000Z',
|
||||
timeBucket: '1900-01-01',
|
||||
});
|
||||
|
||||
expect(status).toBe(401);
|
||||
|
@ -161,7 +161,7 @@ describe('/timeline', () => {
|
|||
it('should handle 5 digit years', async () => {
|
||||
const { status, body } = await request(app)
|
||||
.get('/timeline/bucket')
|
||||
.query({ size: TimeBucketSize.Month, timeBucket: '+012345-01-01T00:00:00.000Z' })
|
||||
.query({ size: TimeBucketSize.Month, timeBucket: '012345-01-01' })
|
||||
.set('Authorization', `Bearer ${timeBucketUser.accessToken}`);
|
||||
|
||||
expect(status).toBe(200);
|
||||
|
@ -183,7 +183,7 @@ describe('/timeline', () => {
|
|||
const { status, body } = await request(app)
|
||||
.get('/timeline/bucket')
|
||||
.set('Authorization', `Bearer ${timeBucketUser.accessToken}`)
|
||||
.query({ size: TimeBucketSize.Month, timeBucket: '1970-02-10T00:00:00.000Z' });
|
||||
.query({ size: TimeBucketSize.Month, timeBucket: '1970-02-10' });
|
||||
|
||||
expect(status).toBe(200);
|
||||
expect(body).toEqual([]);
|
||||
|
|
|
@ -73,7 +73,7 @@ describe('/trash', () => {
|
|||
expect(existsSync(before.originalPath)).toBe(false);
|
||||
});
|
||||
|
||||
it('should not delete offline-trashed assets from disk', async () => {
|
||||
it('should remove offline assets', async () => {
|
||||
const library = await utils.createLibrary(admin.accessToken, {
|
||||
ownerId: admin.userId,
|
||||
importPaths: [`${testAssetDirInternal}/temp/offline`],
|
||||
|
@ -88,7 +88,7 @@ describe('/trash', () => {
|
|||
expect(assets.items.length).toBe(1);
|
||||
const asset = assets.items[0];
|
||||
|
||||
utils.removeImageFile(`${testAssetDir}/temp/offline/offline.png`);
|
||||
await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: ['**/offline/**'] });
|
||||
|
||||
await scan(admin.accessToken, library.id);
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
@ -105,6 +105,41 @@ describe('/trash', () => {
|
|||
|
||||
const assetAfter = await utils.getAssetInfo(admin.accessToken, asset.id);
|
||||
expect(assetAfter).toMatchObject({ isTrashed: true, isOffline: true });
|
||||
});
|
||||
|
||||
it.skip('should not delete offline assets from disk', async () => {
|
||||
// Can't be tested at the moment due to no mechanism to forward time
|
||||
const library = await utils.createLibrary(admin.accessToken, {
|
||||
ownerId: admin.userId,
|
||||
importPaths: [`${testAssetDirInternal}/temp/offline`],
|
||||
});
|
||||
|
||||
utils.createImageFile(`${testAssetDir}/temp/offline/offline.png`);
|
||||
|
||||
await scan(admin.accessToken, library.id);
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
||||
const { assets } = await utils.searchAssets(admin.accessToken, { libraryId: library.id });
|
||||
expect(assets.items.length).toBe(1);
|
||||
const asset = assets.items[0];
|
||||
|
||||
await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: ['**/offline/**'] });
|
||||
|
||||
await scan(admin.accessToken, library.id);
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
||||
const assetBefore = await utils.getAssetInfo(admin.accessToken, asset.id);
|
||||
expect(assetBefore).toMatchObject({ isTrashed: true, isOffline: true });
|
||||
|
||||
utils.createImageFile(`${testAssetDir}/temp/offline/offline.png`);
|
||||
|
||||
const { status } = await request(app).post('/trash/empty').set('Authorization', `Bearer ${admin.accessToken}`);
|
||||
expect(status).toBe(200);
|
||||
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'backgroundTask');
|
||||
|
||||
const after = await getAssetStatistics({ isTrashed: true }, { headers: asBearerAuth(admin.accessToken) });
|
||||
expect(after.total).toBe(0);
|
||||
|
||||
expect(existsSync(`${testAssetDir}/temp/offline/offline.png`)).toBe(true);
|
||||
|
||||
|
@ -137,7 +172,7 @@ describe('/trash', () => {
|
|||
expect(after).toStrictEqual(expect.objectContaining({ id: assetId, isTrashed: false }));
|
||||
});
|
||||
|
||||
it('should not restore offline-trashed assets', async () => {
|
||||
it('should not restore offline assets', async () => {
|
||||
const library = await utils.createLibrary(admin.accessToken, {
|
||||
ownerId: admin.userId,
|
||||
importPaths: [`${testAssetDirInternal}/temp/offline`],
|
||||
|
@ -152,7 +187,7 @@ describe('/trash', () => {
|
|||
expect(assets.count).toBe(1);
|
||||
const assetId = assets.items[0].id;
|
||||
|
||||
utils.removeImageFile(`${testAssetDir}/temp/offline/offline.png`);
|
||||
await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: ['**/offline/**'] });
|
||||
|
||||
await scan(admin.accessToken, library.id);
|
||||
|
||||
|
@ -195,7 +230,7 @@ describe('/trash', () => {
|
|||
expect(after.isTrashed).toBe(false);
|
||||
});
|
||||
|
||||
it('should not restore an offline-trashed asset', async () => {
|
||||
it('should not restore an offline asset', async () => {
|
||||
const library = await utils.createLibrary(admin.accessToken, {
|
||||
ownerId: admin.userId,
|
||||
importPaths: [`${testAssetDirInternal}/temp/offline`],
|
||||
|
@ -210,7 +245,7 @@ describe('/trash', () => {
|
|||
expect(assets.count).toBe(1);
|
||||
const assetId = assets.items[0].id;
|
||||
|
||||
utils.removeImageFile(`${testAssetDir}/temp/offline/offline.png`);
|
||||
await utils.updateLibrary(admin.accessToken, library.id, { exclusionPatterns: ['**/offline/**'] });
|
||||
|
||||
await scan(admin.accessToken, library.id);
|
||||
await utils.waitForQueueFinish(admin.accessToken, 'library');
|
||||
|
|
|
@ -129,6 +129,8 @@ describe('/users', () => {
|
|||
expect(body).toEqual({
|
||||
...before,
|
||||
updatedAt: expect.any(String),
|
||||
profileChangedAt: expect.any(String),
|
||||
createdAt: expect.any(String),
|
||||
name: 'Name',
|
||||
});
|
||||
});
|
||||
|
@ -177,6 +179,8 @@ describe('/users', () => {
|
|||
...before,
|
||||
email: 'non-admin@immich.cloud',
|
||||
updatedAt: expect.anything(),
|
||||
createdAt: expect.anything(),
|
||||
profileChangedAt: expect.anything(),
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -51,7 +51,7 @@ const setup = async () => {
|
|||
const { privateKey, publicKey } = await generateKeyPair('RS256');
|
||||
|
||||
const redirectUris = ['http://127.0.0.1:2285/auth/login', 'https://photos.immich.app/oauth/mobile-redirect'];
|
||||
const port = 3000;
|
||||
const port = 2286;
|
||||
const host = '0.0.0.0';
|
||||
const oidc = new Provider(`http://${host}:${port}`, {
|
||||
renderError: async (ctx, out, error) => {
|
||||
|
|
|
@ -10,6 +10,7 @@ import {
|
|||
Permission,
|
||||
PersonCreateDto,
|
||||
SharedLinkCreateDto,
|
||||
UpdateLibraryDto,
|
||||
UserAdminCreateDto,
|
||||
UserPreferencesUpdateDto,
|
||||
ValidateLibraryDto,
|
||||
|
@ -35,6 +36,7 @@ import {
|
|||
updateAlbumUser,
|
||||
updateAssets,
|
||||
updateConfig,
|
||||
updateLibrary,
|
||||
updateMyPreferences,
|
||||
upsertTags,
|
||||
validate,
|
||||
|
@ -42,7 +44,7 @@ import {
|
|||
import { BrowserContext } from '@playwright/test';
|
||||
import { exec, spawn } from 'node:child_process';
|
||||
import { createHash } from 'node:crypto';
|
||||
import { existsSync, mkdirSync, rmSync, writeFileSync } from 'node:fs';
|
||||
import { existsSync, mkdirSync, renameSync, rmSync, writeFileSync } from 'node:fs';
|
||||
import { tmpdir } from 'node:os';
|
||||
import path, { dirname } from 'node:path';
|
||||
import { setTimeout as setAsyncTimeout } from 'node:timers/promises';
|
||||
|
@ -74,6 +76,7 @@ export const immichCli = (args: string[]) =>
|
|||
export const immichAdmin = (args: string[]) =>
|
||||
executeCommand('docker', ['exec', '-i', 'immich-e2e-server', '/bin/bash', '-c', `immich-admin ${args.join(' ')}`]);
|
||||
export const specialCharStrings = ["'", '"', ',', '{', '}', '*'];
|
||||
export const TEN_TIMES = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||
|
||||
const executeCommand = (command: string, args: string[]) => {
|
||||
let _resolve: (value: CommandResponse) => void;
|
||||
|
@ -392,6 +395,14 @@ export const utils = {
|
|||
rmSync(path);
|
||||
},
|
||||
|
||||
renameImageFile: (oldPath: string, newPath: string) => {
|
||||
if (!existsSync(oldPath)) {
|
||||
return;
|
||||
}
|
||||
|
||||
renameSync(oldPath, newPath);
|
||||
},
|
||||
|
||||
removeDirectory: (path: string) => {
|
||||
if (!existsSync(path)) {
|
||||
return;
|
||||
|
@ -447,6 +458,9 @@ export const utils = {
|
|||
validateLibrary: (accessToken: string, id: string, dto: ValidateLibraryDto) =>
|
||||
validate({ id, validateLibraryDto: dto }, { headers: asBearerAuth(accessToken) }),
|
||||
|
||||
updateLibrary: (accessToken: string, id: string, dto: UpdateLibraryDto) =>
|
||||
updateLibrary({ id, updateLibraryDto: dto }, { headers: asBearerAuth(accessToken) }),
|
||||
|
||||
createPartner: (accessToken: string, id: string) => createPartner({ id }, { headers: asBearerAuth(accessToken) }),
|
||||
|
||||
updateMyPreferences: (accessToken: string, userPreferencesUpdateDto: UserPreferencesUpdateDto) =>
|
||||
|
|
|
@ -6,7 +6,7 @@ import {
|
|||
SharedLinkType,
|
||||
createAlbum,
|
||||
} from '@immich/sdk';
|
||||
import { test } from '@playwright/test';
|
||||
import { expect, test } from '@playwright/test';
|
||||
import { asBearerAuth, utils } from 'src/utils';
|
||||
|
||||
test.describe('Shared Links', () => {
|
||||
|
@ -65,6 +65,38 @@ test.describe('Shared Links', () => {
|
|||
await page.getByRole('heading', { name: 'Test Album' }).waitFor();
|
||||
});
|
||||
|
||||
test('show-password button visible', async ({ page }) => {
|
||||
await page.goto(`/share/${sharedLinkPassword.key}`);
|
||||
await page.getByPlaceholder('Password').fill('test-password');
|
||||
await page.getByRole('button', { name: 'Show password' }).waitFor();
|
||||
});
|
||||
|
||||
test('view password for shared link', async ({ page }) => {
|
||||
await page.goto(`/share/${sharedLinkPassword.key}`);
|
||||
const input = page.getByPlaceholder('Password');
|
||||
await input.fill('test-password');
|
||||
await page.getByRole('button', { name: 'Show password' }).click();
|
||||
// await page.getByText('test-password', { exact: true }).waitFor();
|
||||
await expect(input).toHaveAttribute('type', 'text');
|
||||
});
|
||||
|
||||
test('hide-password button visible', async ({ page }) => {
|
||||
await page.goto(`/share/${sharedLinkPassword.key}`);
|
||||
const input = page.getByPlaceholder('Password');
|
||||
await input.fill('test-password');
|
||||
await page.getByRole('button', { name: 'Show password' }).click();
|
||||
await page.getByRole('button', { name: 'Hide password' }).waitFor();
|
||||
});
|
||||
|
||||
test('hide password for shared link', async ({ page }) => {
|
||||
await page.goto(`/share/${sharedLinkPassword.key}`);
|
||||
const input = page.getByPlaceholder('Password');
|
||||
await input.fill('test-password');
|
||||
await page.getByRole('button', { name: 'Show password' }).click();
|
||||
await page.getByRole('button', { name: 'Hide password' }).click();
|
||||
await expect(input).toHaveAttribute('type', 'password');
|
||||
});
|
||||
|
||||
test('show error for invalid shared link', async ({ page }) => {
|
||||
await page.goto('/share/invalid');
|
||||
await page.getByRole('heading', { name: 'Invalid share key' }).waitFor();
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
"add_to": "Voeg na...",
|
||||
"add_to_album": "Voeg na album",
|
||||
"add_to_shared_album": "Voeg na gedeelde album",
|
||||
"add_url": "Voeg URL by",
|
||||
"added_to_archive": "By argief gevoeg",
|
||||
"added_to_favorites": "By gunstelinge gevoeg",
|
||||
"added_to_favorites_count": "Het {count, number} by gunstelinge gevoeg",
|
||||
|
@ -52,6 +53,10 @@
|
|||
"cron_expression_description": "Stel die skanderingsinterval in met die cron-formaat. Vir meer inligting verwys asseblief na bv. <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "Cron uitdrukking voorafinstellings",
|
||||
"disable_login": "Deaktiveer aanmelding",
|
||||
"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.",
|
||||
"external_library_created_at": "Eksterne biblioteek (geskep op {date})",
|
||||
"external_library_management": "Eksterne Biblioteek-opsies",
|
||||
"face_detection": "Gesigsopsporing"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"about": "تحديث",
|
||||
"about": "من نحن",
|
||||
"account": "الحساب",
|
||||
"account_settings": "إعدادات الحساب",
|
||||
"acknowledge": "أُدرك ذلك",
|
||||
|
@ -23,6 +23,7 @@
|
|||
"add_to": "إضافة إلى…",
|
||||
"add_to_album": "إضافة إلى ألبوم",
|
||||
"add_to_shared_album": "إضافة إلى ألبوم مشترك",
|
||||
"add_url": "إضافة رابط",
|
||||
"added_to_archive": "أُضيفت للأرشيف",
|
||||
"added_to_favorites": "أُضيفت للمفضلات",
|
||||
"added_to_favorites_count": "تم إضافة {count, number} إلى المفضلات",
|
||||
|
@ -130,7 +131,7 @@
|
|||
"machine_learning_smart_search_description": "البحث عن الصور بشكل دلالي باستخدام تضمينات CLIP",
|
||||
"machine_learning_smart_search_enabled": "تفعيل البحث الذكي",
|
||||
"machine_learning_smart_search_enabled_description": "إذا تم تعطيله، فلن يتم ترميز الصور للبحث الذكي.",
|
||||
"machine_learning_url_description": "عنوان URL لخادم التعلم الآلي",
|
||||
"machine_learning_url_description": "عنوان URL لخادم التعلم الآلي. إذا تم توفير أكثر من عنوان URL، فسيتم محاولة الوصول إلى كل خادم على حدة حتى يستجيب أحد الخوادم بنجاح، بالترتيب من الأول إلى الأخير.",
|
||||
"manage_concurrency": "إدارة التزامن",
|
||||
"manage_log_settings": "إدارة إعدادات السجلات",
|
||||
"map_dark_style": "النمط الداكن",
|
||||
|
@ -249,6 +250,8 @@
|
|||
"storage_template_user_label": "<code>{label}</code> هو تسمية التخزين الخاصة بالمستخدم",
|
||||
"system_settings": "إعدادات النظام",
|
||||
"tag_cleanup_job": "تنظيف العلامة",
|
||||
"template_email_preview": "عرض مسبق",
|
||||
"template_email_settings": "نماذج البريد الالكتروني",
|
||||
"theme_custom_css_settings": "CSS مخصص",
|
||||
"theme_custom_css_settings_description": "أوراق الأنماط المتتالية تسمح بتخصيص تصميم Immich.",
|
||||
"theme_settings": "إعدادات السمة",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"about": "Yenilə",
|
||||
"about": "Haqqinda",
|
||||
"account": "Hesab",
|
||||
"account_settings": "Hesab parametrləri",
|
||||
"acknowledge": "Təsdiq et",
|
||||
|
|
508
i18n/bg.json
508
i18n/bg.json
File diff suppressed because it is too large
Load diff
39
i18n/ca.json
39
i18n/ca.json
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"about": "Sobre",
|
||||
"about": "Quant a",
|
||||
"account": "Compte",
|
||||
"account_settings": "Configuració del compte",
|
||||
"acknowledge": "Confirmar",
|
||||
"acknowledge": "D'acord",
|
||||
"action": "Acció",
|
||||
"actions": "Accions",
|
||||
"active": "Actiu",
|
||||
|
@ -131,7 +131,7 @@
|
|||
"machine_learning_smart_search_description": "Cerca imatges semànticament emprant incrustacions CLIP",
|
||||
"machine_learning_smart_search_enabled": "Activa la cerca intel·ligent",
|
||||
"machine_learning_smart_search_enabled_description": "Si està deshabilitat les imatges no es codificaran per la cerca intel·ligent.",
|
||||
"machine_learning_url_description": "URL del servidor d'aprenentatge automàtic",
|
||||
"machine_learning_url_description": "La URL del servidor d'aprenentatge automàtic. Si es proporciona més d'una URL, s'intentarà accedir a cada servidor en ordre fins que un d'ells respongui correctament.",
|
||||
"manage_concurrency": "Gestiona la concurrència",
|
||||
"manage_log_settings": "Gestiona la configuració del registre",
|
||||
"map_dark_style": "Tema fosc",
|
||||
|
@ -223,6 +223,8 @@
|
|||
"send_welcome_email": "Enviar correu electrònic de benvinguda",
|
||||
"server_external_domain_settings": "Domini extern",
|
||||
"server_external_domain_settings_description": "Domini per enllaços públics compartits, incloent http(s)://",
|
||||
"server_public_users": "Usuaris públics",
|
||||
"server_public_users_description": "Tots els usuaris (nom i correu electrònic) apareixen a la llista a l'afegir un usuari als àlbums compartits. Si es desactiva, la llista només serà disponible pels usuaris administradors.",
|
||||
"server_settings": "Configuració del servidor",
|
||||
"server_settings_description": "Gestiona la configuració del servidor",
|
||||
"server_welcome_message": "Missatge de benvinguda",
|
||||
|
@ -248,6 +250,16 @@
|
|||
"storage_template_user_label": "<code>{label}</code> és l'etiqueta d'emmagatzematge de l'usuari",
|
||||
"system_settings": "Configuració del sistema",
|
||||
"tag_cleanup_job": "Neteja d'etiqueta",
|
||||
"template_email_available_tags": "Pots fer servir les següents variables a la teva plantilla: {tags}",
|
||||
"template_email_if_empty": "Si la plantilla està buida, es farà servir el correu electrònic predeterminat.",
|
||||
"template_email_invite_album": "Plantilla per l'àlbum d'invitacions",
|
||||
"template_email_preview": "Vista prèvia",
|
||||
"template_email_settings": "Plantilles de correu electrònic",
|
||||
"template_email_settings_description": "Gestionar les plantilles de notificació per correu electrònic personalitzades",
|
||||
"template_email_update_album": "Actualitzar la plantilla de l'àlbum",
|
||||
"template_email_welcome": "Plantilla del correu de benvinguda",
|
||||
"template_settings": "Plantilles de notificació",
|
||||
"template_settings_description": "Gestiona les plantilles personalitzades per les notificacions.",
|
||||
"theme_custom_css_settings": "CSS personalitzat",
|
||||
"theme_custom_css_settings_description": "Els Fulls d'Estil en Cascada permeten personalitzar el disseny d'Immich.",
|
||||
"theme_settings": "Configuració del tema",
|
||||
|
@ -277,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Factor de taxa constant (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Nivell de qualitat del vídeo. Els valors típics són 23 per a H.264, 28 per a HEVC, 31 per a VP9 i 35 per a AV1. Més baix és millor, però produeix fitxers més grans.",
|
||||
"transcoding_disabled_description": "No transcodifiqueu cap vídeo, pot interrompre la reproducció en alguns clients",
|
||||
"transcoding_encoding_options": "Opcions de codificació",
|
||||
"transcoding_encoding_options_description": "Establiu còdecs, resolució, qualitat i altres opcions per als vídeos codificats",
|
||||
"transcoding_hardware_acceleration": "Acceleració de maquinari",
|
||||
"transcoding_hardware_acceleration_description": "Experimental. Molt més ràpid, però tindrà una qualitat més baixa amb la mateixa taxa de bits",
|
||||
"transcoding_hardware_decoding": "Descodificació de maquinari",
|
||||
|
@ -289,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Interval màxim de fotogrames clau",
|
||||
"transcoding_max_keyframe_interval_description": "Estableix la distància màxima entre fotogrames clau. Els valors més baixos empitjoren l'eficiència de la compressió, però milloren els temps de cerca i poden millorar la qualitat en escenes amb moviment ràpid. 0 estableix aquest valor automàticament.",
|
||||
"transcoding_optimal_description": "Vídeos superiors a la resolució objectiu o que no tenen un format acceptat",
|
||||
"transcoding_policy": "Política de transcodificació",
|
||||
"transcoding_policy_description": "Estableix quan es transcodificarà un vídeo",
|
||||
"transcoding_preferred_hardware_device": "Dispositiu de maquinari preferit",
|
||||
"transcoding_preferred_hardware_device_description": "S'aplica només a VAAPI i QSV. Estableix el node dri utilitzat per a la transcodificació de maquinari.",
|
||||
"transcoding_preset_preset": "Preestablert (-preset)",
|
||||
|
@ -297,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "El nombre de fotogrames a fer referència en comprimir un fotograma determinat. Els valors més alts milloren l'eficiència de la compressió, però alenteixen la codificació. 0 estableix aquest valor automàticament.",
|
||||
"transcoding_required_description": "Només vídeos que no tenen un format acceptat",
|
||||
"transcoding_settings": "Configuració de transcodificació de vídeo",
|
||||
"transcoding_settings_description": "Gestiona la resolució i codificació dels fitxers de vídeo",
|
||||
"transcoding_settings_description": "Gestionar quins vídeos transcodificar i com processar-los",
|
||||
"transcoding_target_resolution": "Resolució objectiu",
|
||||
"transcoding_target_resolution_description": "Les resolucions més altes poden conservar més detalls, però triguen més temps a codificar-se, tenen mides de fitxer més grans i poden reduir la capacitat de resposta de l'aplicació.",
|
||||
"transcoding_temporal_aq": "AQ temporal",
|
||||
|
@ -507,6 +523,10 @@
|
|||
"date_range": "Interval de dates",
|
||||
"day": "Dia",
|
||||
"deduplicate_all": "Desduplica-ho tot",
|
||||
"deduplication_criteria_1": "Mida d'imatge en bytes",
|
||||
"deduplication_criteria_2": "Quantitat de dades EXIF",
|
||||
"deduplication_info": "Informació de deduplicació",
|
||||
"deduplication_info_description": "Per preseleccionar recursos automàticament i eliminar els duplicats de manera massiva, ens fixem en:",
|
||||
"default_locale": "Localització predeterminada",
|
||||
"default_locale_description": "Format de dates i números segons la configuració del navegador",
|
||||
"delete": "Esborra",
|
||||
|
@ -722,6 +742,7 @@
|
|||
"external": "Extern",
|
||||
"external_libraries": "Llibreries externes",
|
||||
"face_unassigned": "Sense assignar",
|
||||
"failed_to_load_assets": "Error carregant recursos",
|
||||
"favorite": "Preferit",
|
||||
"favorite_or_unfavorite_photo": "Foto preferida o no preferida",
|
||||
"favorites": "Preferits",
|
||||
|
@ -742,6 +763,7 @@
|
|||
"get_help": "Aconseguir ajuda",
|
||||
"getting_started": "Començant",
|
||||
"go_back": "Torna",
|
||||
"go_to_folder": "Anar al directori",
|
||||
"go_to_search": "Vés a cercar",
|
||||
"group_albums_by": "Agrupa àlbums per...",
|
||||
"group_no": "Cap agrupació",
|
||||
|
@ -1021,6 +1043,7 @@
|
|||
"reassigned_assets_to_new_person": "{count, plural, one {S'ha reassignat # recurs} other {S'han reassignat # recursos}} a una persona nova",
|
||||
"reassing_hint": "Assignar els elements seleccionats a una persona existent",
|
||||
"recent": "Recent",
|
||||
"recent-albums": "Àlbums recents",
|
||||
"recent_searches": "Cerques recents",
|
||||
"refresh": "Actualitzar",
|
||||
"refresh_encoded_videos": "Actualitza vídeos codificats",
|
||||
|
@ -1042,6 +1065,7 @@
|
|||
"remove_from_album": "Treu de l'àlbum",
|
||||
"remove_from_favorites": "Eliminar dels preferits",
|
||||
"remove_from_shared_link": "Eliminar de l'enllaç compartit",
|
||||
"remove_url": "Eliminar URL",
|
||||
"remove_user": "Eliminar l'usuari",
|
||||
"removed_api_key": "Eliminada la clau d'API: {name}",
|
||||
"removed_from_archive": "Eliminat de l'arxiu",
|
||||
|
@ -1126,6 +1150,7 @@
|
|||
"server_version": "Versió del servidor",
|
||||
"set": "Establir",
|
||||
"set_as_album_cover": "Establir com a portada de l'àlbum",
|
||||
"set_as_featured_photo": "Estableix com a foto destacada",
|
||||
"set_as_profile_picture": "Establir com a imatge de perfil",
|
||||
"set_date_of_birth": "Establir data de naixement",
|
||||
"set_profile_picture": "Establir imatge de perfil",
|
||||
|
@ -1181,11 +1206,12 @@
|
|||
"sort_items": "Nombre d'elements",
|
||||
"sort_modified": "Data de modificació",
|
||||
"sort_oldest": "Foto més antiga",
|
||||
"sort_people_by_similarity": "Ordenar personar per semblança",
|
||||
"sort_recent": "Foto més recent",
|
||||
"sort_title": "Títol",
|
||||
"source": "Font",
|
||||
"stack": "Apila",
|
||||
"stack_duplicates": "Aplicar duplicats",
|
||||
"stack_duplicates": "Aplica duplicats",
|
||||
"stack_select_one_photo": "Selecciona una imatge principal per la pila",
|
||||
"stack_selected_photos": "Apila les fotos seleccionades",
|
||||
"stacked_assets_count": "Apilats {count, plural, one {# element} other {# elements}}",
|
||||
|
@ -1224,6 +1250,7 @@
|
|||
"they_will_be_merged_together": "Es combinaran",
|
||||
"third_party_resources": "Recursos de tercers",
|
||||
"time_based_memories": "Records basats en el temps",
|
||||
"timeline": "Cronologia",
|
||||
"timezone": "Fus horari",
|
||||
"to_archive": "Arxivar",
|
||||
"to_change_password": "Canviar la contrasenya",
|
||||
|
@ -1233,6 +1260,7 @@
|
|||
"to_trash": "Paperera",
|
||||
"toggle_settings": "Canvia configuració",
|
||||
"toggle_theme": "Alternar tema",
|
||||
"total": "Total",
|
||||
"total_usage": "Ús total",
|
||||
"trash": "Paperera",
|
||||
"trash_all": "Envia-ho tot a la paperera",
|
||||
|
@ -1305,6 +1333,7 @@
|
|||
"view_all_users": "Mostra tot els usuaris",
|
||||
"view_in_timeline": "Mostrar a la línia de temps",
|
||||
"view_links": "Mostra enllaços",
|
||||
"view_name": "Veure",
|
||||
"view_next_asset": "Mostra el següent element",
|
||||
"view_previous_asset": "Mostra l'element anterior",
|
||||
"view_stack": "Veure la pila",
|
||||
|
|
17
i18n/cs.json
17
i18n/cs.json
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Faktor konstantní rychlosti (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Úroveň kvality videa. Typické hodnoty jsou 23 pro H.264, 28 pro HEVC, 31 pro VP9 a 35 pro AV1. Nižší je lepší, ale vytváří větší soubory.",
|
||||
"transcoding_disabled_description": "Nepřekódovávejte žádná videa, u některých klientů může dojít k znemožnění přehrávání",
|
||||
"transcoding_encoding_options": "Možnosti kódování",
|
||||
"transcoding_encoding_options_description": "Nastavte kodeky, rozlišení, kvalitu a další možnosti pro kódovaná videa",
|
||||
"transcoding_hardware_acceleration": "Hardwarová akcelerace",
|
||||
"transcoding_hardware_acceleration_description": "Experimentální; mnohem rychlejší, ale při stejném datovém toku bude mít nižší kvalitu",
|
||||
"transcoding_hardware_decoding": "Hardwarové dekódování",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Maximální interval klíčových snímků",
|
||||
"transcoding_max_keyframe_interval_description": "Nastavuje maximální vzdálenost mezi klíčovými snímky. Nižší hodnoty zhoršují účinnost komprese, ale zlepšují rychlost při přeskakování a mohou zlepšit kvalitu ve scénách s rychlým pohybem. Hodnota 0 nastavuje tuto hodnotu automaticky.",
|
||||
"transcoding_optimal_description": "Videa s vyšším než cílovým rozlišením nebo videa, která nejsou v akceptovaném formátu",
|
||||
"transcoding_policy": "Politika překódovávání",
|
||||
"transcoding_policy_description": "Nastavte po překódování videa",
|
||||
"transcoding_preferred_hardware_device": "Preferované hardwarové zařízení",
|
||||
"transcoding_preferred_hardware_device_description": "Platí pouze pro VAAPI a QSV. Nastaví dri uzel použitý pro hardwarové překódování.",
|
||||
"transcoding_preset_preset": "Preset (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Počet referenčních snímků při kompresi daného snímku. Vyšší hodnoty zvyšují účinnost komprese, ale zpomalují kódování. Hodnota 0 toto nastavuje automaticky.",
|
||||
"transcoding_required_description": "Pouze videa, která nejsou v akceptovaném formátu",
|
||||
"transcoding_settings": "Překódování videa",
|
||||
"transcoding_settings_description": "Správa informací o rozlišení a kódování videosouborů",
|
||||
"transcoding_settings_description": "Správa rozlišení a kódování videosouborů",
|
||||
"transcoding_target_resolution": "Cílové rozlišení",
|
||||
"transcoding_target_resolution_description": "Vyšší rozlišení mohou zachovat více detailů, ale jejich kódování trvá déle, mají větší velikost souboru a mohou snížit odezvu aplikace.",
|
||||
"transcoding_temporal_aq": "Temporal AQ",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Rozsah dat",
|
||||
"day": "Den",
|
||||
"deduplicate_all": "Odstranit všechny duplicity",
|
||||
"deduplication_criteria_1": "Velikost obrázku v bajtech",
|
||||
"deduplication_criteria_2": "Počet EXIF dat",
|
||||
"deduplication_info": "Informace o deduplikaci",
|
||||
"deduplication_info_description": "Pro automatický předvýběr položek a hromadné odstranění duplicit se zohledňuje:",
|
||||
"default_locale": "Výchozí jazyk",
|
||||
"default_locale_description": "Formátovat datumy a čísla podle místního prostředí prohlížeče",
|
||||
"delete": "Smazat",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Získat pomoc",
|
||||
"getting_started": "Začínáme",
|
||||
"go_back": "Přejít zpět",
|
||||
"go_to_folder": "Přejít do složky",
|
||||
"go_to_search": "Přejít na vyhledávání",
|
||||
"group_albums_by": "Seskupit alba podle...",
|
||||
"group_no": "Neseskupovat",
|
||||
|
@ -916,7 +925,7 @@
|
|||
"oldest_first": "Nejstarší první",
|
||||
"onboarding": "Zahájení",
|
||||
"onboarding_privacy_description": "Následující (volitelné) funkce jsou závislé na externích službách a lze je kdykoli zakázat v nastavení správy.",
|
||||
"onboarding_theme_description": "Zvolte si barevné téma pro svou instanci. Můžete to později změnit v nastavení.",
|
||||
"onboarding_theme_description": "Zvolte si barevný motiv pro svou instanci. Můžete to později změnit v nastavení.",
|
||||
"onboarding_welcome_description": "Nastavíme vaši instanci pomocí několika běžných nastavení.",
|
||||
"onboarding_welcome_user": "Vítej, {user}",
|
||||
"online": "Online",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Verze serveru",
|
||||
"set": "Nastavit",
|
||||
"set_as_album_cover": "Nastavit jako obal alba",
|
||||
"set_as_featured_photo": "Nastavit jako hlavní fotografii",
|
||||
"set_as_profile_picture": "Nastavit jako profilový obrázek",
|
||||
"set_date_of_birth": "Nastavit datum narození",
|
||||
"set_profile_picture": "Nastavit profilový obrázek",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Počet položek",
|
||||
"sort_modified": "Datum modifikace",
|
||||
"sort_oldest": "Nejstarší fotka",
|
||||
"sort_people_by_similarity": "Seřadit lidi podle podobnosti",
|
||||
"sort_recent": "Nejnovější fotka",
|
||||
"sort_title": "Název",
|
||||
"source": "Zdroj",
|
||||
|
@ -1275,7 +1286,7 @@
|
|||
"unselect_all": "Zrušit výběr všech",
|
||||
"unselect_all_duplicates": "Zrušit výběr všech duplicit",
|
||||
"unstack": "Zrušit seskupení",
|
||||
"unstacked_assets_count": "{count, plural, one {Rozložena # položka} few {Rozloženy # položky} other {Rozloženo # položek}}",
|
||||
"unstacked_assets_count": "{count, plural, one {Rozložená # položka} few {Rozložené # položky} other {Rozložených # položiek}}",
|
||||
"untracked_files": "Nesledované soubory",
|
||||
"untracked_files_decription": "Tyto soubory nejsou aplikaci známy. Mohou být výsledkem neúspěšných přesunů, přerušeného nahrávání nebo mohou zůstat pozadu kvůli chybě",
|
||||
"up_next": "To je prozatím vše",
|
||||
|
|
36
i18n/cv.json
36
i18n/cv.json
|
@ -45,8 +45,42 @@
|
|||
"image_preview_quality_description": "1-100 таран малтанхи пахалӑх. Ҫӳллӗреххи лайӑхрах, анчах та пысӑкрах файлсем туса кӑларать тата приложенисен хуравлӑхне чакарма пултарать. Пӗчӗк хак лартни машинӑллӑ вӗренӳ пахалӑхне витӗм кӳме пултарать.",
|
||||
"image_preview_title": "Малтанлӑха пӑхмалли ӗнерлевсем",
|
||||
"image_quality": "Пахалӑх",
|
||||
"image_resolution": "Виҫе"
|
||||
"image_resolution": "Виҫе",
|
||||
"map_gps_settings": "Карттӑ тата GPS ĕнерленĕвĕ",
|
||||
"map_gps_settings_description": "Карттӑпа GPS (каялла геоюмлани) ӗнерленисене йӗркелесе тӑрӑр",
|
||||
"map_settings": "Карттӑ"
|
||||
},
|
||||
"albums": "Албумсем",
|
||||
"albums_count": "{count, plural, one {{count, number} албум} other {{count, number} албумсем}}",
|
||||
"all": "Пурте",
|
||||
"all_albums": "Пурте албумсем",
|
||||
"explore": "Тишкер",
|
||||
"explorer": "Тишкерӳҫӗ",
|
||||
"favorite": "Юратнӑ",
|
||||
"favorite_or_unfavorite_photo": "Юратнӑ е юратман сӑнӳкерчӗк",
|
||||
"favorites": "Юратнисем",
|
||||
"feature_photo_updated": "Уйрӑм сӑнӳкерчӗк ҫӗнетнӗ",
|
||||
"manage_sharing_with_partners": "Партнерсемпе пайланассине йӗркелесе пырӑр",
|
||||
"map": "Карттӑ",
|
||||
"map_marker_for_images": "{city}, {country} ҫинче ӳкернӗ ӳкерчӗксем валли карттӑ маркерӗ",
|
||||
"map_marker_with_image": "Карттӑ маркерӗ ӳкерчӗкпе",
|
||||
"map_settings": "Карттӑ ĕнерленĕвĕ",
|
||||
"no_explore_results_message": "Хӑвӑр коллекципе киленмешкӗн сӑнӳкерчӗксем ытларах тийӗр.",
|
||||
"open_in_openstreetmap": "OpenStreetMap-па уҫ",
|
||||
"partner_sharing": "Партнер пайланӑвӗ",
|
||||
"people": "Ҫынсем",
|
||||
"photos": "Сӑнӳкерчӗксем",
|
||||
"photos_and_videos": "Сӑнӳкерчӗксем тете Видеосем",
|
||||
"photos_count": "{count, plural, one {{count, number} Сӑнӳкерчӗк} other {{count, number} Сӑнӳкерчӗксем}}",
|
||||
"photos_from_previous_years": "Иртнӗ ҫулсенчи сӑнӳкерчӗксем",
|
||||
"place": "Тӗл",
|
||||
"places": "Тӗлсем",
|
||||
"play": "Выля",
|
||||
"play_memories": "Асаилӳсем выля",
|
||||
"search_your_photos": "Сӑнӳкерчӗксене шырӑр",
|
||||
"select_photos": "Сӑнӳкерчӗксем суйлӑр",
|
||||
"sharing": "Пайлани",
|
||||
"sharing_enter_password": "Ку питне курма пароль кӗртӗр.",
|
||||
"user_usage_stats": "Шута ҫырни усӑ курмалли статистика",
|
||||
"user_usage_stats_description": "Шута ҫырни усӑ курмалли статистикӑна пӑхасси"
|
||||
}
|
||||
|
|
361
i18n/da.json
361
i18n/da.json
|
@ -7,7 +7,7 @@
|
|||
"actions": "Handlinger",
|
||||
"active": "Aktive",
|
||||
"activity": "Aktivitet",
|
||||
"activity_changed": "Aktivitet er {aktiveret, valg, sand {aktiveret} andet {deaktiveret}}",
|
||||
"activity_changed": "Aktivitet er {aktiveret, vælg, sandt {aktiveret} andet {deaktiveret}}",
|
||||
"add": "Tilføj",
|
||||
"add_a_description": "Tilføj en beskrivelse",
|
||||
"add_a_location": "Tilføj en placering",
|
||||
|
@ -51,6 +51,7 @@
|
|||
"create_job": "Opret job",
|
||||
"cron_expression": "Cron formel",
|
||||
"cron_expression_description": "Indstil skannings intervallet i cron format. For mere information se: <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "cron predefinerede indstillinger",
|
||||
"disable_login": "Deaktiver login",
|
||||
"duplicate_detection_job_description": "Kør maskinlæring på mediefiler for at opdage lignende billeder. Er afhængig af Smart Søgning",
|
||||
"exclusion_pattern_description": "Ekskluderingsmønstre lader dig ignorere filer og mapper, når du scanner dit bibliotek. Dette er nyttigt, hvis du har mapper, der indeholder filer, du ikke vil importere, såsom RAW-filer.",
|
||||
|
@ -69,14 +70,18 @@
|
|||
"image_prefer_wide_gamut": "Foretrækker bred farveskala",
|
||||
"image_prefer_wide_gamut_setting_description": "Brug Display P3 til miniaturebilleder. Dette bevarer billeder med brede farveskalaers dynamik bedre, men billeder kan komme til at se anderledes ud på gamle enheder med en gammel browserversion. sRGB-billeder bliver beholdt som sRGB for at undgå farveskift.",
|
||||
"image_preview_description": "Mellemstørrelse billede med fjernet metadata, der bruges, når du ser en enkelt mediefil og til machine learning",
|
||||
"image_preview_quality_description": "Kvalitet af forhåndsvisning fra 1-100. Højere er bedre, men producerer større filer og kan reducere apprespons. Valg af en lav værdi kan påvirke kvaliteten af machine learning.",
|
||||
"image_preview_quality_description": "Kvalitet af forhåndsvisning fra 1-100. Højere er bedre, men producerer større filer og kan reducere apprespons. Valg af en lav værdi kan påvirke kvaliteten af maskin læring.",
|
||||
"image_preview_title": "Indstillinger for forhåndsvisning",
|
||||
"image_quality": "Kvalitet",
|
||||
"image_resolution": "Opløsning",
|
||||
"image_resolution_description": "højere opløsning indeholder flere detaljer, men tager længere tid at processerer, giver større filer og sænker svartiderne i applikationen.",
|
||||
"image_settings": "Billedindstillinger",
|
||||
"image_settings_description": "Administrer kvaliteten og opløsningen af genererede billeder",
|
||||
"image_thumbnail_description": "Små miniaturer uden metadata, bruges når der ses samlinger eller den primære tidslinie",
|
||||
"image_thumbnail_quality_description": "Miniaturer kvaliteten indstilles fra 1 til 100. Nu højre, nu bedre kvalitet. Men giver større filer og påvirker programmets svartider.",
|
||||
"image_thumbnail_title": "Thumbnail-indstillinger",
|
||||
"job_concurrency": "{job} samtidighed",
|
||||
"job_created": "opgaven er skabt",
|
||||
"job_not_concurrency_safe": "Denne opgave er ikke sikker at køre samtidigt med andre.",
|
||||
"job_settings": "Jobindstillinger",
|
||||
"job_settings_description": "Administrér samtidige opgaver",
|
||||
|
@ -126,7 +131,7 @@
|
|||
"machine_learning_smart_search_description": "Søg semantisk efter billeder ved hjælp af CLIP-indlejringer",
|
||||
"machine_learning_smart_search_enabled": "Aktiver smart søgning",
|
||||
"machine_learning_smart_search_enabled_description": "Hvis deaktiveret, vil billeder ikke blive kodet til smart søgning.",
|
||||
"machine_learning_url_description": "URL på maskinlæringsserveren",
|
||||
"machine_learning_url_description": "URL på maskinlæringsserveren. Hvis der er angivet mere end én URL, hver server vil blive forsøgt en ad gangen, indtil en reagerer med succes, i rækkefølge fra første til sidste.",
|
||||
"manage_concurrency": "Administrer antallet af samtidige opgaver",
|
||||
"manage_log_settings": "Administrer logindstillinger",
|
||||
"map_dark_style": "Mørk tema",
|
||||
|
@ -214,9 +219,12 @@
|
|||
"reset_settings_to_default": "Nulstil indstillingerne til standard",
|
||||
"reset_settings_to_recent_saved": "Nulstil indstillinger til de senest gemte indstillinger",
|
||||
"scanning_library": "Scanner bibliotek",
|
||||
"search_jobs": "søg opgaver ..",
|
||||
"send_welcome_email": "Send velkomst-email",
|
||||
"server_external_domain_settings": "Eksternt domæne",
|
||||
"server_external_domain_settings_description": "Domæne til offentligt delte links, inklusiv http(s)://",
|
||||
"server_public_users": "Offentlige brugere",
|
||||
"server_public_users_description": "Alle brugere (navn og e-mail) vises, når en bruger tilføjes til delte album. Når den er deaktiveret, vil brugerlisten kun være tilgængelig for administratorbrugere.",
|
||||
"server_settings": "Serverindstillinger",
|
||||
"server_settings_description": "Administrér serverindstillinger",
|
||||
"server_welcome_message": "Velkomstbesked",
|
||||
|
@ -233,7 +241,7 @@
|
|||
"storage_template_migration": "Lagringsskabelonmigration",
|
||||
"storage_template_migration_description": "Anvend den nuværende <link>{template}</link> på tidligere uploadede mediefiler",
|
||||
"storage_template_migration_info": "Skabelonændringer vil kun gælde for nye mediefiler. For at anvende skabelonen retroaktivt på tidligere uploadede mediefiler skal du køre <link>{job}</link>.",
|
||||
"storage_template_migration_job": "Lager Skabelon Migrationsjob",
|
||||
"storage_template_migration_job": "Lager Skabelon Migreringsjob",
|
||||
"storage_template_more_details": "For flere detaljer om denne funktion, referer til <template-link>Lager Skabelonen</template-link> og dens <implications-link>implikationer</implications-link>",
|
||||
"storage_template_onboarding_description": "Når denne funktion er aktiveret, vil den automatisk organisere filer baseret på en brugerdefineret skabelon. På grund af stabilitetsproblemer er funktionen som standard slået fra. For mere information, se <link>dokumentation</link>.",
|
||||
"storage_template_path_length": "Anslået sti-længde begrænsning <b>{length, number}</b>/{limit, number}",
|
||||
|
@ -241,6 +249,17 @@
|
|||
"storage_template_settings_description": "Administrer mappestrukturen og filnavnet for den uploadede mediefil",
|
||||
"storage_template_user_label": "<code>{label}</code> er brugerens Lagringsmærkat",
|
||||
"system_settings": "Systemindstillinger",
|
||||
"tag_cleanup_job": "\"Tag\" cleanup",
|
||||
"template_email_available_tags": "Du kan bruge følgende variabler i din skabelon: {tags}",
|
||||
"template_email_if_empty": "Hvis skabelonen er tom, vil standard-e-mailen blive brugt.",
|
||||
"template_email_invite_album": "Inviterings albumskabelon",
|
||||
"template_email_preview": "Forhåndsvisning",
|
||||
"template_email_settings": "Email skabeloner",
|
||||
"template_email_settings_description": "Administrer tilpassede e-mailmeddelelsesskabeloner",
|
||||
"template_email_update_album": "Opdater albumskabelon",
|
||||
"template_email_welcome": "Velkomst e-mail skabelon",
|
||||
"template_settings": "Notifikations skabeloner",
|
||||
"template_settings_description": "Administrer tilpassede skabeloner for notifikationer.",
|
||||
"theme_custom_css_settings": "Brugerdefineret CSS",
|
||||
"theme_custom_css_settings_description": "Cascading Style Sheets tillader at give Immich et brugerdefineret look.",
|
||||
"theme_settings": "Temaindstillinger",
|
||||
|
@ -270,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Konstant ratefaktor (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Videokvalitetsniveau. Typiske værdier er 23 for H.264, 28 for HEVC, 31 for VP9 og 35 for AV1. Lavere er bedre, men producerer større filer.",
|
||||
"transcoding_disabled_description": "Lad være med at transkode nogen videoer, kan ødelægge playback hos nogle clients",
|
||||
"transcoding_encoding_options": "Kodningsmuligheder",
|
||||
"transcoding_encoding_options_description": "Indstil codecs, opløsning, kvalitet og andre muligheder for de kodede videoer",
|
||||
"transcoding_hardware_acceleration": "Hardwareacceleration",
|
||||
"transcoding_hardware_acceleration_description": "Eksperimentel; meget hurtigere, men vil have lavere kvalitet ved samme bitrate",
|
||||
"transcoding_hardware_decoding": "Hardware-afkodning",
|
||||
|
@ -282,15 +303,17 @@
|
|||
"transcoding_max_keyframe_interval": "Maksimal keyframe-interval",
|
||||
"transcoding_max_keyframe_interval_description": "Sætter den maksimale frameafstand mellem keyframes. Lavere værdier forringer kompressionseffektiviteten, men forbedrer søgetider og kan forbedre kvaliteten i scener med hurtig bevægelse. 0 sætter denne værdi automatisk.",
|
||||
"transcoding_optimal_description": "Videoer højere end målopløsningen eller ikke i et godkendt format",
|
||||
"transcoding_policy": "Omkodningspolitik",
|
||||
"transcoding_policy_description": "Indstil, hvornår en video skal omkodes",
|
||||
"transcoding_preferred_hardware_device": "Foretrukne hardwareenhed",
|
||||
"transcoding_preferred_hardware_device_description": "Gælder kun VAAPI og QSV. Sætter dri node'n som bruges til hardware-transkodning.",
|
||||
"transcoding_preset_preset": "Forudindstilling (-preset)",
|
||||
"transcoding_preset_preset_description": "Kompressionshastighed. Langsommere forudindstillinger producerer mindre filer, og øger kvalitet når der gås efter en specifik bitrate. VP9 ignorerer hastigheder hurtigere end \"hurtigere\".",
|
||||
"transcoding_reference_frames": "Referenceframes",
|
||||
"transcoding_reference_frames": "Referencerammer",
|
||||
"transcoding_reference_frames_description": "Antallet af frames, der skal refereres til, når en given frame komprimeres. Højere værdier forbedrer kompressionseffektiviteten, men gør indkodning langsommere. 0 sætter denne værdi automatisk.",
|
||||
"transcoding_required_description": "Kun videoer ikke i et godkendt format",
|
||||
"transcoding_settings": "Videotranskodningsindstillinger",
|
||||
"transcoding_settings_description": "Administrér videofilernes opløsning- og indkodningsinformation",
|
||||
"transcoding_settings_description": "Administrer, hvilke videoer der skal omkodes, og hvordan de behandles",
|
||||
"transcoding_target_resolution": "Målopløsning",
|
||||
"transcoding_target_resolution_description": "Højere opløsninger kan bevare flere detaljer, men tager længere tid at indkode, har større filstørrelser og kan gøre appen mere sløv.",
|
||||
"transcoding_temporal_aq": "Tidsmæssig AQ",
|
||||
|
@ -310,7 +333,7 @@
|
|||
"trash_number_of_days_description": "Antal dage aktiver i skraldespanden skal beholdes inden de fjernes permanent",
|
||||
"trash_settings": "Skraldeindstillinger",
|
||||
"trash_settings_description": "Administrér skraldeindstillinger",
|
||||
"untracked_files": "Utrackede filer",
|
||||
"untracked_files": "Usporede filer",
|
||||
"untracked_files_description": "Applikationen holder ikke styr på disse filer. De kan være resultatet af mislykkede flytninger, afbrudte uploads eller være efterladt på grund af en fejl",
|
||||
"user_cleanup_job": "Bruger-oprydning",
|
||||
"user_delete_delay": "<b>{user}</b>'s konto og mediefiler vil blive planlagt til permanent sletning om {delay, plural, one {# dag} other {# dage}}.",
|
||||
|
@ -328,8 +351,8 @@
|
|||
"user_successfully_removed": "Bruger {email} er blevet fjernet med succes.",
|
||||
"version_check_enabled_description": "Aktivér versionstjek",
|
||||
"version_check_implications": "Funktionen til versionstjek er afhængig af periodisk kommunikation med github.com",
|
||||
"version_check_settings": "Versiontjek",
|
||||
"version_check_settings_description": "Aktiver/deaktier notifikation for den nye version",
|
||||
"version_check_settings": "Versionstjek",
|
||||
"version_check_settings_description": "Aktiver/deaktiverer notifikation for den nye version",
|
||||
"video_conversion_job": "Transkod videoer",
|
||||
"video_conversion_job_description": "Transkod videoer for bredere kompatibilitet med browsere og enheder"
|
||||
},
|
||||
|
@ -338,8 +361,8 @@
|
|||
"administration": "Administration",
|
||||
"advanced": "Avanceret",
|
||||
"age_months": "Alder {months, plural, one {# month} other {# months}}",
|
||||
"age_year_months": "Alder 1 år, {months, plural, one {# måned} other {# måneder}}",
|
||||
"age_years": "{years, plural, other {Alder #}}",
|
||||
"age_year_months": "Alder 1 år, {måneder, flertal, en {# måned} flere {# months}}",
|
||||
"age_years": "{år, år, andre {Alder #}}",
|
||||
"album_added": "Album tilføjet",
|
||||
"album_added_notification_setting_description": "Modtag en emailnotifikation når du bliver tilføjet til en delt album",
|
||||
"album_cover_updated": "Albumcover opdateret",
|
||||
|
@ -379,27 +402,46 @@
|
|||
"archive_or_unarchive_photo": "Arkivér eller dearkivér billede",
|
||||
"archive_size": "Arkiv størelse",
|
||||
"archive_size_description": "Konfigurer arkivstørrelsen for downloads (i GiB)",
|
||||
"archived_count": "{antal, flertal, andet {Arkiveret #}}",
|
||||
"are_these_the_same_person": "Er disse den samme person?",
|
||||
"are_you_sure_to_do_this": "Er du sikker på, at du vil gøre det her?",
|
||||
"asset_added_to_album": "Tilføjet til album",
|
||||
"asset_adding_to_album": "Tilføjer til album...",
|
||||
"asset_description_updated": "Mediefilsbeskrivelse er blevet opdateret",
|
||||
"asset_filename_is_offline": "Mediefil {filename} er offline",
|
||||
"asset_has_unassigned_faces": "Aktivet har ikke-tildelte ansigter",
|
||||
"asset_hashing": "Hashing...",
|
||||
"asset_offline": "Mediefil offline",
|
||||
"asset_offline_description": "Denne eksterne mediefil kan ikke længere findes på drevet. Kontakt venligst din Immich-administrator for hjælp.",
|
||||
"asset_skipped": "Sprunget over",
|
||||
"asset_skipped_in_trash": "I skraldespand",
|
||||
"asset_uploaded": "Uploaded",
|
||||
"asset_uploading": "Uploader...",
|
||||
"assets": "elementer",
|
||||
"assets_added_count": "Tilføjet {count, plural, one {# mediefil} other {# mediefiler}}",
|
||||
"assets_added_to_album_count": "Tilføjet {count, plural, one {# mediefil} other {# mediefiler}} til albummet",
|
||||
"assets_added_to_name_count": "Tilføjet {count, plural, one {# mediefil} other {# mediefiler}} til {hasName, select, true {<b>{name}</b>} other {nyt album}}",
|
||||
"assets_count": "{count, plural, one {# mediefil} other {# mediefiler}}",
|
||||
"assets_moved_to_trash_count": "Flyttede {count, plural, one {# mediefil} other {# mediefiler}} til papirkurven",
|
||||
"assets_permanently_deleted_count": "Slettet permanent {count, plural, one {# mediefil} other {# mediefiler}}",
|
||||
"assets_removed_count": "Fjernede {count, plural, one {# mediefil} other {# mediefiler}}",
|
||||
"assets_restore_confirmation": "Er du sikker på, at du vil gendanne alle dine aktiver i papirkurven? Du kan ikke fortryde denne handling! Bemærk, at offline mediefiler ikke kan gendannes på denne måde.",
|
||||
"assets_restored_count": "Gendannet {count, plural, one {# mediefil} other {# mediefiler}}",
|
||||
"assets_trashed_count": "Smidt {count, plural, one {# mediefil} other {# mediefiler}} i papirkurven",
|
||||
"assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}} er allerede en del af albummet",
|
||||
"authorized_devices": "Tilladte enheder",
|
||||
"back": "Tilbage",
|
||||
"back_close_deselect": "Tilbage, luk eller fravælg",
|
||||
"backward": "Baglæns",
|
||||
"birthdate_saved": "Fødselsdatoen blev gemt",
|
||||
"birthdate_set_description": "Fødselsdato bruges til at beregne alderen på denne person på tidspunktet for et billede.",
|
||||
"blurred_background": "Sløret baggrund",
|
||||
"bugs_and_feature_requests": "Fejl & forbedringsønsker",
|
||||
"build": "Byg",
|
||||
"build_image": "Byggefil",
|
||||
"bulk_delete_duplicates_confirmation": "Er du sikker på, at du vil slette alle {count, plural, one {# duplicate asset} other {# duplicate assets}}? Dette vil beholde den største fil i hver gruppe og slette alle dubletter. Denne handling kan ikke fortrydes!",
|
||||
"bulk_keep_duplicates_confirmation": "Er du sikker på, at du vil beholde {count, plural, one {# duplicate asset} other {# duplicate assets}}? Dette vil løse alle dubletgrupper uden at slette noget.",
|
||||
"bulk_trash_duplicates_confirmation": "Er du sikker på, at du vil masseslette {count, plural, one {# duplicate asset} other {# duplicate assets}}? Dette vil beholde det største aktiv i hver gruppe og smide alle andre dubletter.",
|
||||
"buy": "Køb Immich",
|
||||
"camera": "Kamera",
|
||||
"camera_brand": "Kameramærke",
|
||||
|
@ -440,6 +482,7 @@
|
|||
"confirm": "Bekræft",
|
||||
"confirm_admin_password": "Bekræft administratoradgangskode",
|
||||
"confirm_delete_shared_link": "Er du sikker på, at du vil slette dette delte link?",
|
||||
"confirm_keep_this_delete_others": "Alle andre aktiver i stakken vil blive slettet undtagen dette aktiv. Er du sikker på, at du vil fortsætte?",
|
||||
"confirm_password": "Bekræft adgangskode",
|
||||
"contain": "Inddæm",
|
||||
"context": "Kontekst",
|
||||
|
@ -463,7 +506,10 @@
|
|||
"create_link_to_share": "Opret link for at dele",
|
||||
"create_link_to_share_description": "Lad alle med linket se de(t) valgte billede(r)",
|
||||
"create_new_person": "Opret ny person",
|
||||
"create_new_person_hint": "Tildel valgte aktiver til en ny person",
|
||||
"create_new_user": "Opret ny bruger",
|
||||
"create_tag": "Opret tag",
|
||||
"create_tag_description": "Opret et nyt tag. For indlejrede tags skal du indtaste den fulde sti til tagget inklusive skråstreger.",
|
||||
"create_user": "Opret bruger",
|
||||
"created": "Oprettet",
|
||||
"current_device": "Nuværende enhed",
|
||||
|
@ -473,19 +519,30 @@
|
|||
"date_after": "Dato efter",
|
||||
"date_and_time": "Dato og klokkeslæt",
|
||||
"date_before": "Dato før",
|
||||
"date_of_birth_saved": "Fødselsdatoen blev gemt",
|
||||
"date_range": "Datointerval",
|
||||
"day": "Dag",
|
||||
"default_locale": "Standardlokale",
|
||||
"deduplicate_all": "Dedupliker alle",
|
||||
"deduplication_criteria_1": "Billedstørrelse i bytes",
|
||||
"deduplication_criteria_2": "Antal EXIF-data",
|
||||
"deduplication_info": "Deduplikerings info",
|
||||
"deduplication_info_description": "For automatisk at forudvælge emner og fjerne dubletter i bulk ser vi på:",
|
||||
"default_locale": "Standardlokalitet",
|
||||
"default_locale_description": "Formatér datoer og tal",
|
||||
"delete": "Slet",
|
||||
"delete_album": "Slet album",
|
||||
"delete_api_key_prompt": "Er du sikker på, at du vil slette denne API-nøgle?",
|
||||
"delete_duplicates_confirmation": "Er du sikker på, at du vil slette disse dubletter permanent?",
|
||||
"delete_key": "Slet nøgle",
|
||||
"delete_library": "Slet bibliotek",
|
||||
"delete_link": "Slet link",
|
||||
"delete_others": "Slet andre",
|
||||
"delete_shared_link": "Slet delt link",
|
||||
"delete_tag": "Slet tag",
|
||||
"delete_tag_confirmation_prompt": "Er du sikker på, at du vil slette {tagName}-tagget?",
|
||||
"delete_user": "Slet bruger",
|
||||
"deleted_shared_link": "Slettede delt link",
|
||||
"deletes_missing_assets": "Sletter aktiver, der mangler fra disken",
|
||||
"description": "Beskrivelse",
|
||||
"details": "DETALJER",
|
||||
"direction": "Retning",
|
||||
|
@ -500,12 +557,18 @@
|
|||
"display_original_photos": "Vis originale billeder",
|
||||
"display_original_photos_setting_description": "Foretræk at vise det originale billede frem for miniaturebilleder når den originale fil er web-kompatibelt. Dette kan gøre billedvisning langsommere.",
|
||||
"do_not_show_again": "Vis ikke denne besked igen",
|
||||
"documentation": "Dokumentation",
|
||||
"done": "Færdig",
|
||||
"download": "Hent",
|
||||
"download_include_embedded_motion_videos": "Indlejrede videoer",
|
||||
"download_include_embedded_motion_videos_description": "Inkluder videoer indlejret i levende billeder som en separat fil",
|
||||
"download_settings": "Download",
|
||||
"download_settings_description": "Administrer indstillinger relateret til mediefil-downloads",
|
||||
"downloading": "Downloader",
|
||||
"downloading_asset_filename": "Downloader aktiv {filename}",
|
||||
"drop_files_to_upload": "Slip filer hvor som helst for at uploade dem",
|
||||
"duplicates": "Duplikater",
|
||||
"duplicates_description": "Løs hver gruppe ved at angive, hvilke, hvis nogen, er dubletter",
|
||||
"duration": "Varighed",
|
||||
"edit": "Rediger",
|
||||
"edit_album": "Redigér album",
|
||||
|
@ -521,15 +584,18 @@
|
|||
"edit_location": "Rediger placering",
|
||||
"edit_name": "Rediger navn",
|
||||
"edit_people": "Redigér personer",
|
||||
"edit_tag": "Rediger tag",
|
||||
"edit_title": "Redigér titel",
|
||||
"edit_user": "Redigér bruger",
|
||||
"edited": "Redigeret",
|
||||
"editor": "Redaktør",
|
||||
"editor_close_without_save_prompt": "Ændringerne vil ikke blive gemt",
|
||||
"editor_close_without_save_title": "Luk editor?",
|
||||
"editor_crop_tool_h2_aspect_ratios": "Størrelsesforhold",
|
||||
"editor_crop_tool_h2_rotation": "Rotation",
|
||||
"email": "E-mail",
|
||||
"empty_trash": "Tøm papirkurv",
|
||||
"empty_trash_confirmation": "Er du sikker på, at du vil tømme papirkurven? Dette vil fjerne alle aktiver i papirkurven permanent fra Immich.\nDu kan ikke fortryde denne handling!",
|
||||
"enable": "Aktivér",
|
||||
"enabled": "Aktiveret",
|
||||
"end_date": "Slutdato",
|
||||
|
@ -539,6 +605,14 @@
|
|||
"errors": {
|
||||
"cannot_navigate_next_asset": "Kan ikke navigere til næste mediefil",
|
||||
"cannot_navigate_previous_asset": "Kan ikke navigere til forrige mediefil",
|
||||
"cant_apply_changes": "Ændringerne kan ikke anvendes",
|
||||
"cant_change_activity": "Kan ikke {enabled, select, true {disable} other {enable}} aktivitet",
|
||||
"cant_change_asset_favorite": "Kan ikke ændre favorit til aktiv",
|
||||
"cant_change_metadata_assets_count": "Kan ikke ændre metadata for {count, plural, one {# asset} other {# assets}}",
|
||||
"cant_get_faces": "Kan ikke hente ansigter",
|
||||
"cant_get_number_of_comments": "Kan ikke få antallet af kommentarer",
|
||||
"cant_search_people": "Kan ikke søge efter folk",
|
||||
"cant_search_places": "Kan ikke søge efter steder",
|
||||
"cleared_jobs": "Ryddede opgaver for: {job}",
|
||||
"error_adding_assets_to_album": "Fejl i tilføjelse af mediefiler til album",
|
||||
"error_adding_users_to_album": "Fejl i tilføjelse af brugere til album",
|
||||
|
@ -546,15 +620,20 @@
|
|||
"error_downloading": "Fejl i download af {filename}",
|
||||
"error_hiding_buy_button": "Fejl i skjulning af køb-knap",
|
||||
"error_removing_assets_from_album": "Fejl i fjernelse af mediefiler fra album. Tjek konsol for flere detaljer",
|
||||
"error_selecting_all_assets": "Fejl ved valg af alle aktiver",
|
||||
"exclusion_pattern_already_exists": "Denne udelukkelsesmønster findes allerede.",
|
||||
"failed_job_command": "Kommando {command} slog fejl for opgave: {job}",
|
||||
"failed_to_create_album": "Oprettelse af album mislykkedes",
|
||||
"failed_to_create_shared_link": "Oprettelse af delt link mislykkedes",
|
||||
"failed_to_edit_shared_link": "Redigering af delt link mislykkedes",
|
||||
"failed_to_get_people": "Det lykkedes ikke at hente folk",
|
||||
"failed_to_keep_this_delete_others": "Kunne ikke beholde dette aktiv og slette de andre aktiver",
|
||||
"failed_to_load_asset": "Indlæsning af mediefil mislykkedes",
|
||||
"failed_to_load_assets": "Indlæsning af mediefiler mislykkedes",
|
||||
"failed_to_load_people": "Indlæsning af personer mislykkedes",
|
||||
"failed_to_remove_product_key": "Fjernelse af produktnøgle mislykkedes",
|
||||
"failed_to_stack_assets": "Det lykkedes ikke at stable aktiver",
|
||||
"failed_to_unstack_assets": "Det lykkedes ikke at fjerne stablen af aktiver",
|
||||
"import_path_already_exists": "Denne importsti findes allerede.",
|
||||
"incorrect_email_or_password": "Forkert email eller kodeord",
|
||||
"paths_validation_failed": "{paths, plural, one {# sti} other {# stier}} slog fejl ved validering",
|
||||
|
@ -562,16 +641,25 @@
|
|||
"quota_higher_than_disk_size": "Du har sat en kvote der er større end disken",
|
||||
"repair_unable_to_check_items": "Kunne ikke tjekke {count, select, one {element} other {elementer}}",
|
||||
"unable_to_add_album_users": "Ikke i stand til at tilføje brugere til album",
|
||||
"unable_to_add_assets_to_shared_link": "Kan ikke tilføje aktiver til delt link",
|
||||
"unable_to_add_comment": "Ikke i stand til at tilføje kommentar",
|
||||
"unable_to_add_exclusion_pattern": "Kunne ikke tilføje udelukkelsesmønster",
|
||||
"unable_to_add_import_path": "Kunne ikke tilføje importsti",
|
||||
"unable_to_add_partners": "Ikke i stand til at tilføje partnere",
|
||||
"unable_to_add_remove_archive": "Kan Ikke {archived, select, true {fjerne aktiv fra} other {tilføje aktiv til}} Arkiv",
|
||||
"unable_to_add_remove_favorites": "Kan ikke {favorite, select, true {tilføje aktiv til} other {fjerne aktiv fra}} favoritter",
|
||||
"unable_to_archive_unarchive": "Ude af stand til at {arkiveret, vælg, sand {arkiv} andet {arkiv}}",
|
||||
"unable_to_change_album_user_role": "Ikke i stand til at ændre albumbrugerens rolle",
|
||||
"unable_to_change_date": "Ikke i stand til at ændre dato",
|
||||
"unable_to_change_favorite": "Kan ikke ændre favorit for aktiv",
|
||||
"unable_to_change_location": "Ikke i stand til at ændre sted",
|
||||
"unable_to_change_password": "Kunne ikke ændre adgangskode",
|
||||
"unable_to_change_visibility": "Kan ikke ændre synligheden for {count, plural, one {# person} other {# personer}}",
|
||||
"unable_to_complete_oauth_login": "Kan ikke fuldføre OAuth-login",
|
||||
"unable_to_connect": "Kan ikke oprette forbindelse",
|
||||
"unable_to_connect_to_server": "Kan ikke oprette forbindelse til serveren",
|
||||
"unable_to_copy_to_clipboard": "Kan ikke kopiere til udklipsholder, sørg for at du tilgår siden gennem https",
|
||||
"unable_to_create_admin_account": "",
|
||||
"unable_to_create_admin_account": "Kan ikke oprette en administratorkonto",
|
||||
"unable_to_create_api_key": "Kunne ikke oprette ny API-nøgle",
|
||||
"unable_to_create_library": "Ikke i stand til at oprette bibliotek",
|
||||
"unable_to_create_user": "Ikke i stand til at oprette bruger",
|
||||
|
@ -582,21 +670,31 @@
|
|||
"unable_to_delete_import_path": "Kunne ikke slette importsti",
|
||||
"unable_to_delete_shared_link": "Kunne ikke slette delt link",
|
||||
"unable_to_delete_user": "Ikke i stand til at slette bruger",
|
||||
"unable_to_download_files": "Kan ikke downloade filer",
|
||||
"unable_to_edit_exclusion_pattern": "Kunne ikke redigere udelukkelsesmønster",
|
||||
"unable_to_edit_import_path": "Kunne ikke redigere importsti",
|
||||
"unable_to_empty_trash": "Ikke i stand til at tømme skraldespand",
|
||||
"unable_to_enter_fullscreen": "Kan ikke aktivere fuldskærmstilstand",
|
||||
"unable_to_exit_fullscreen": "Kan ikke forlade fuldskærmstilstand",
|
||||
"unable_to_get_comments_number": "Kan ikke få antallet af kommentarer",
|
||||
"unable_to_get_shared_link": "Kunne ikke hente delt link",
|
||||
"unable_to_hide_person": "Ikke i stand til at gemme person",
|
||||
"unable_to_link_motion_video": "Kan ikke linke bevægelsesvideo",
|
||||
"unable_to_link_oauth_account": "Kunne ikke tilkoble OAuth-konto",
|
||||
"unable_to_load_album": "Ikke i stand til hente album",
|
||||
"unable_to_load_asset_activity": "Kunne ikke hente aktivitet for mediet",
|
||||
"unable_to_load_items": "Ikke i stand til at hente ting",
|
||||
"unable_to_load_liked_status": "Ikke i stand til hente synes-om-status",
|
||||
"unable_to_log_out_all_devices": "Kan ikke logge af alle enheder",
|
||||
"unable_to_log_out_device": "Enheden kunne ikke logges af",
|
||||
"unable_to_login_with_oauth": "Kan ikke logge på med OAuth",
|
||||
"unable_to_play_video": "Ikke i stand til at afspille video",
|
||||
"unable_to_reassign_assets_existing_person": "Kan ikke gentildele aktiver til {navn, vælg, null {en eksisterende person} anden {{name}}}",
|
||||
"unable_to_reassign_assets_new_person": "Kan ikke omfordele aktiver til en ny person",
|
||||
"unable_to_refresh_user": "Ikke i stand til at genopfriske bruger",
|
||||
"unable_to_remove_album_users": "Ikke i stand til at fjerne brugere fra album",
|
||||
"unable_to_remove_api_key": "Kunne ikke fjerne API-nøgle",
|
||||
"unable_to_remove_assets_from_shared_link": "Kan ikke fjerne aktiver fra delt link",
|
||||
"unable_to_remove_deleted_assets": "Kunne ikke fjerne offlinefiler",
|
||||
"unable_to_remove_library": "Ikke i stand til at fjerne bibliotek",
|
||||
"unable_to_remove_partner": "Ikke i stand til at fjerne partner",
|
||||
|
@ -609,20 +707,26 @@
|
|||
"unable_to_restore_user": "Ikke i stand til at genoprette bruger",
|
||||
"unable_to_save_album": "Ikke i stand til at gemme album",
|
||||
"unable_to_save_api_key": "Kunne ikke gemme API-nøgle",
|
||||
"unable_to_save_date_of_birth": "Kan ikke gemme fødselsdatoen",
|
||||
"unable_to_save_name": "Ikke i stand til at gemme navn",
|
||||
"unable_to_save_profile": "Ikke i stand til at gemme profil",
|
||||
"unable_to_save_settings": "Ikke i stand til at gemme indstillinger",
|
||||
"unable_to_scan_libraries": "Ikke i stand til at skanne biblioteker",
|
||||
"unable_to_scan_library": "Ikke i stand til at skanne bibliotek",
|
||||
"unable_to_set_feature_photo": "Det var ikke muligt at indstille et fremhævet billede",
|
||||
"unable_to_set_profile_picture": "Ikke i stand til at sætte profilbillede",
|
||||
"unable_to_submit_job": "Ikke i stand til at indsende opgave",
|
||||
"unable_to_trash_asset": "Kunne ikke slette medie",
|
||||
"unable_to_unlink_account": "Ikke i stand til at frakoble konto",
|
||||
"unable_to_unlink_motion_video": "Kunne ikke fjerne linket til bevægelsesvideo",
|
||||
"unable_to_update_album_cover": "Albumomslaget kunne ikke opdateres",
|
||||
"unable_to_update_album_info": "Albumoplysningerne kunne ikke opdateres",
|
||||
"unable_to_update_library": "Ikke i stand til at opdatere bibliotek",
|
||||
"unable_to_update_location": "Ikke i stand til at opdatere sted",
|
||||
"unable_to_update_settings": "Ikke i stand til at opdatere indstillinger",
|
||||
"unable_to_update_timeline_display_status": "Kunne ikke opdate status for tidslinjevisning",
|
||||
"unable_to_update_user": "Ikke i stand til at opdatere bruger"
|
||||
"unable_to_update_user": "Ikke i stand til at opdatere bruger",
|
||||
"unable_to_upload_file": "Filen kunne ikke uploades"
|
||||
},
|
||||
"exif": "Exif",
|
||||
"exit_slideshow": "Forlad slideshow",
|
||||
|
@ -631,11 +735,14 @@
|
|||
"expired": "Udløbet",
|
||||
"expires_date": "Udløber {date}",
|
||||
"explore": "Udforsk",
|
||||
"explorer": "Udforske",
|
||||
"export": "Eksportér",
|
||||
"export_as_json": "Eksportér som JSON",
|
||||
"extension": "Udvidelse",
|
||||
"external": "Ekstern",
|
||||
"external_libraries": "Eksterne biblioteker",
|
||||
"face_unassigned": "Ikke tildelt",
|
||||
"failed_to_load_assets": "Kunne ikke indlæse aktiver",
|
||||
"favorite": "Favorit",
|
||||
"favorite_or_unfavorite_photo": "Tilføj eller fjern fra yndlingsbilleder",
|
||||
"favorites": "Favoritter",
|
||||
|
@ -650,14 +757,18 @@
|
|||
"find_them_fast": "Find dem hurtigt med søgning via navn",
|
||||
"fix_incorrect_match": "Fix forkert match",
|
||||
"folders": "Mapper",
|
||||
"folders_feature_description": "Gennemse mappevisningen efter fotos og videoer på filsystemet",
|
||||
"forward": "Fremad",
|
||||
"general": "Generel",
|
||||
"get_help": "Få hjælp",
|
||||
"getting_started": "Kom godt i gang",
|
||||
"go_back": "Gå tilbage",
|
||||
"go_to_folder": "Gå til mappe",
|
||||
"go_to_search": "Gå til søgning",
|
||||
"group_albums_by": "Gruppér albummer efter...",
|
||||
"group_no": "Ingen gruppering",
|
||||
"group_owner": "Grupper efter ejer",
|
||||
"group_year": "Grupper efter år",
|
||||
"has_quota": "Har kvote",
|
||||
"hi_user": "Hej {name} ({email})",
|
||||
"hide_all_people": "Skjul alle personer",
|
||||
|
@ -669,10 +780,21 @@
|
|||
"host": "Host",
|
||||
"hour": "Time",
|
||||
"image": "Billede",
|
||||
"image_alt_text_date": "{isVideo, select, true {Video} other {Image}} taget den {date}",
|
||||
"image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Image}} taget med {person1} den {date}",
|
||||
"image_alt_text_date_2_people": "{isVideo, select, true {Video} other {Image}} taget med {person1} og {person2} den {date}",
|
||||
"image_alt_text_date_3_people": "{isVideo, select, true {Video} other {Image}} taget med {person1}, {person2}, og {person3} den {date}",
|
||||
"image_alt_text_date_4_or_more_people": "{isVideo, select, true {Video} other {Image}} taget med {person1}, {person2}, og {additionalCount, number} andre den {date}",
|
||||
"image_alt_text_date_place": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} den {date}",
|
||||
"image_alt_text_date_place_1_person": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1} den {date}",
|
||||
"image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1} og {person2} den {date}",
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1}, {person2}, og {person3} den {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} taget i {city}, {country} med {person1}, {person2}, og {additionalCount, number} andre den {date}",
|
||||
"immich_logo": "Immich logo",
|
||||
"immich_web_interface": "Immich webinterface",
|
||||
"import_from_json": "Importér fra JSON",
|
||||
"import_path": "Import-sti",
|
||||
"in_albums": "I {count, plural, one {# album} other {# albummer}}",
|
||||
"in_archive": "I arkiv",
|
||||
"include_archived": "Inkluder arkiveret",
|
||||
"include_shared_albums": "Inkludér delte albummer",
|
||||
|
@ -687,20 +809,26 @@
|
|||
},
|
||||
"invite_people": "Inviter personer",
|
||||
"invite_to_album": "Inviter til album",
|
||||
"items_count": "{count, plural, one {# genstand} other {# genstande}}",
|
||||
"jobs": "Opgaver",
|
||||
"keep": "Behold",
|
||||
"keep_all": "Behold alle",
|
||||
"keep_this_delete_others": "Behold dette, slet andre",
|
||||
"kept_this_deleted_others": "Beholdt dette aktiv og slettede {count, plural, one {# aktiv} other {# aktiver}}",
|
||||
"keyboard_shortcuts": "Tastaturgenveje",
|
||||
"language": "Sprog",
|
||||
"language_setting_description": "Vælg dit foretrukne sprog",
|
||||
"last_seen": "Sidst set",
|
||||
"latest_version": "Seneste version",
|
||||
"latitude": "Breddegrad",
|
||||
"leave": "Forlad",
|
||||
"let_others_respond": "Lad andre svare",
|
||||
"level": "Niveau",
|
||||
"library": "Bibliotek",
|
||||
"library_options": "Biblioteksindstillinger",
|
||||
"light": "Lys",
|
||||
"like_deleted": "Ligesom slettet",
|
||||
"link_motion_video": "Link bevægelses video",
|
||||
"link_options": "Link-indstillinger",
|
||||
"link_to_oauth": "Link til OAuth",
|
||||
"linked_oauth_account": "Tilsluttet OAuth-konto",
|
||||
|
@ -715,9 +843,11 @@
|
|||
"login_has_been_disabled": "Login er blevet deaktiveret.",
|
||||
"logout_all_device_confirmation": "Er du sikker på, at du vil logge ud af alle enheder?",
|
||||
"logout_this_device_confirmation": "Er du sikker på, at du vil logge denne enhed ud?",
|
||||
"longitude": "Længde",
|
||||
"look": "Kig",
|
||||
"loop_videos": "Gentag videoer",
|
||||
"loop_videos_description": "Aktivér for at genafspille videoer automatisk i detaljeret visning.",
|
||||
"main_branch_warning": "Du bruger en udviklingsversion; vi anbefaler kraftigt at bruge en udgivelsesversion!",
|
||||
"make": "Producent",
|
||||
"manage_shared_links": "Håndter delte links",
|
||||
"manage_sharing_with_partners": "Administrér deling med partnere",
|
||||
|
@ -727,23 +857,29 @@
|
|||
"manage_your_devices": "Administrér dine enheder der er logget ind",
|
||||
"manage_your_oauth_connection": "Administrér din OAuth-tilslutning",
|
||||
"map": "Kort",
|
||||
"map_marker_for_images": "Kortmarkør for billeder taget i {city}, {country}",
|
||||
"map_marker_with_image": "Kortmarkør med billede",
|
||||
"map_settings": "Kortindstillinger",
|
||||
"matches": "Parringer",
|
||||
"media_type": "Medietype",
|
||||
"memories": "Minder",
|
||||
"memories_setting_description": "Administrér hvad du ser i dine minder",
|
||||
"memory": "Hukommelse",
|
||||
"memory_lane_title": "Minder {title}",
|
||||
"menu": "Menu",
|
||||
"merge": "Sammenflet",
|
||||
"merge_people": "Sammenflet personer",
|
||||
"merge_people_limit": "Du kan kun flette op til 5 ansigter ad gangen",
|
||||
"merge_people_prompt": "Vil du slå disse mennesker sammen? Denne handling er uigenkaldelig.",
|
||||
"merge_people_successfully": "Personer sammenflettet med succes",
|
||||
"merged_people_count": "Slået sammen {count, plural, one {# person} other {# people}}",
|
||||
"minimize": "Minimér",
|
||||
"minute": "Minut",
|
||||
"missing": "Mangler",
|
||||
"model": "Model",
|
||||
"month": "Måned",
|
||||
"more": "Mere",
|
||||
"moved_to_trash": "Flyttet til skrald",
|
||||
"moved_to_trash": "Flyttet til skraldespand",
|
||||
"my_albums": "Mine albummer",
|
||||
"name": "Navn",
|
||||
"name_or_nickname": "Navn eller kælenavn",
|
||||
|
@ -787,7 +923,10 @@
|
|||
"offline_paths_description": "Disse resultater kan være på grund af manuel sletning af filer, som ikke er en del af et eksternt bibliotek.",
|
||||
"ok": "Ok",
|
||||
"oldest_first": "Ældste først",
|
||||
"onboarding": "Onboarding",
|
||||
"onboarding_privacy_description": "Følgende (valgfrie) funktioner er afhængige af eksterne tjenester, og kan til enhver tid deaktiveres i administrationsindstillingerne.",
|
||||
"onboarding_theme_description": "Vælg et farvetema til din forekomst. Du kan ændre dette senere i dine indstillinger.",
|
||||
"onboarding_welcome_description": "Lad os få din instans sat op med nogle almindelige indstillinger.",
|
||||
"onboarding_welcome_user": "Velkommen, {user}",
|
||||
"online": "Online",
|
||||
"only_favorites": "Kun favoritter",
|
||||
|
@ -803,6 +942,7 @@
|
|||
"other_variables": "Andre variable",
|
||||
"owned": "Ejet",
|
||||
"owner": "Ejer",
|
||||
"partner": "Partner",
|
||||
"partner_can_access": "{partner} kan tilgå",
|
||||
"partner_can_access_assets": "Alle dine billeder og videoer, bortset fra dem i Arkiveret og Slettet",
|
||||
"partner_can_access_location": "Stedet, hvor dine billeder blev taget",
|
||||
|
@ -824,13 +964,21 @@
|
|||
"paused": "Sat på pause",
|
||||
"pending": "Afventer",
|
||||
"people": "Personer",
|
||||
"people_edits_count": "Redigeret {count, plural, one {# person} other {# people}}",
|
||||
"people_feature_description": "Gennemse billeder og videoer grupperet efter personer",
|
||||
"people_sidebar_description": "Vis et link til Personer i sidepanelet",
|
||||
"permanent_deletion_warning": "Advarsel om permanent sletning",
|
||||
"permanent_deletion_warning_setting_description": "Vis en advarsel, når medier slettes permanent",
|
||||
"permanently_delete": "Slet permanent",
|
||||
"permanently_delete_assets_count": "Slet permanent {count, plural, one {asset} other {assets}}",
|
||||
"permanently_delete_assets_prompt": "Er du sikker på, at du permanent vil slette {count, plural, one {dette aktiv?} other {disse <b>#</b> aktiver?}} Dette vil også fjerne {count, plural, one {det fra dets} other {dem fra deres}} album(er).",
|
||||
"permanently_deleted_asset": "Permanent slettet medie",
|
||||
"permanently_deleted_assets_count": "Slettet permanent {count, plural, one {# aktiv} other {# aktiver}}",
|
||||
"person": "Person",
|
||||
"person_hidden": "{name}{hidden, select, true { (skjult)} other {}}",
|
||||
"photo_shared_all_users": "Det ser ud til, at du har delt dine billeder med alle brugere, eller også har du ikke nogen bruger at dele med.",
|
||||
"photos": "Billeder",
|
||||
"photos_and_videos": "Billeder og videoer",
|
||||
"photos_count": "{count, plural, one {{count, number} Billede} other {{count, number} Billeder}}",
|
||||
"photos_from_previous_years": "Billeder fra tidligere år",
|
||||
"pick_a_location": "Vælg et sted",
|
||||
|
@ -847,78 +995,164 @@
|
|||
"previous_memory": "Forrige minde",
|
||||
"previous_or_next_photo": "Forrige eller næste billede",
|
||||
"primary": "Primære",
|
||||
"profile_picture_set": "Profilbillede sat.",
|
||||
"privacy": "Privatliv",
|
||||
"profile_image_of_user": "Profilbillede af {user}",
|
||||
"profile_picture_set": "Profilbillede indstillet.",
|
||||
"public_album": "Offentligt album",
|
||||
"public_share": "Offentlig deling",
|
||||
"purchase_account_info": "Supporter",
|
||||
"purchase_activated_subtitle": "Tak fordi du støtter Immich og open source-software",
|
||||
"purchase_activated_time": "Aktiveret den {date, date}",
|
||||
"purchase_activated_title": "Din nøgle er blevet aktiveret",
|
||||
"purchase_button_activate": "Aktiver",
|
||||
"purchase_button_buy": "Køb",
|
||||
"purchase_button_buy_immich": "Køb Immich",
|
||||
"purchase_button_never_show_again": "Vis aldrig igen",
|
||||
"purchase_button_reminder": "Påmind mig om 30 dage",
|
||||
"purchase_button_remove_key": "Fjern nøgle",
|
||||
"purchase_button_select": "Vælg",
|
||||
"purchase_failed_activation": "Kunne ikke aktiveres! Tjek venligst din e-mail for den korrekte produktnøgle!",
|
||||
"purchase_individual_description_1": "For en enkeltperson",
|
||||
"purchase_individual_description_2": "Supporterstatus",
|
||||
"purchase_individual_title": "Individuel",
|
||||
"purchase_input_suggestion": "Har du en produktnøgle? Indtast nøglen nedenfor",
|
||||
"purchase_license_subtitle": "Køb Immich for at understøtte den fortsatte udvikling af tjenesten",
|
||||
"purchase_lifetime_description": "Livsvarigt køb",
|
||||
"purchase_option_title": "KØBEMULIGHEDER",
|
||||
"purchase_panel_info_1": "At bygge Immich tager meget tid og kræfter, og vi har fuldtidsingeniører, der arbejder på det for at gøre det så godt, som vi overhovedet kan. Vores mission er, at open source-software og etisk forretningspraksis bliver en bæredygtig indtægtskilde for udviklere og at skabe et privatlivsrespekterende økosystem med reelle alternativer til udnyttende cloud-tjenester.",
|
||||
"purchase_panel_info_2": "Da vi er forpligtet til ikke at tilføje betalingsvægge, vil dette køb ikke give dig yderligere funktioner i Immich. Vi er afhængige af, at brugere som dig støtter Immichs løbende udvikling.",
|
||||
"purchase_panel_title": "Støt projektet",
|
||||
"purchase_per_server": "Per server",
|
||||
"purchase_per_user": "Per bruger",
|
||||
"purchase_remove_product_key": "Fjern produktnøgle",
|
||||
"purchase_remove_product_key_prompt": "Er du sikker på, at du vil fjerne produktnøglen?",
|
||||
"purchase_remove_server_product_key": "Fjern serverens produktnøgle",
|
||||
"purchase_remove_server_product_key_prompt": "Er du sikker på, at du vil fjerne serverproduktnøglen?",
|
||||
"purchase_server_description_1": "For hele serveren",
|
||||
"purchase_server_description_2": "Supporter status",
|
||||
"purchase_server_title": "Server",
|
||||
"purchase_settings_server_activated": "Serverens produktnøgle administreres af administratoren",
|
||||
"rating": "Stjernebedømmelse",
|
||||
"rating_clear": "Nulstil vurdering",
|
||||
"rating_count": "{count, plural, one {# stjerne} other {# stjerner}}",
|
||||
"rating_description": "Vis EXIF-klassificeringen i infopanelet",
|
||||
"reaction_options": "Reaktionsindstillinger",
|
||||
"read_changelog": "Læs ændringslog",
|
||||
"reassign": "Gentildel",
|
||||
"reassigned_assets_to_existing_person": "Gentildelt {count, plural, one {# aktiv} other {# aktiver}} til {name, select, null {en eksisterende person} other {{navne}}}",
|
||||
"reassigned_assets_to_new_person": "Gentildelt {count, plural, one {# aktiv} other {# aktiver}} til en ny person",
|
||||
"reassing_hint": "Tildel valgte aktiver til en eksisterende person",
|
||||
"recent": "For nylig",
|
||||
"recent-albums": "Seneste albums",
|
||||
"recent_searches": "Seneste søgninger",
|
||||
"refresh": "Opdatér",
|
||||
"refresh_encoded_videos": "Opdater kodede videoer",
|
||||
"refresh_faces": "Opdater ansigter",
|
||||
"refresh_metadata": "Opdater metadata",
|
||||
"refresh_thumbnails": "Opdater forhåndsvisning",
|
||||
"refreshed": "Opdateret",
|
||||
"refreshes_every_file": "Opdaterer alle filer",
|
||||
"refreshing_encoded_video": "Opdaterer kodet video",
|
||||
"refreshing_faces": "Opdaterer ansigter",
|
||||
"refreshing_metadata": "Opdaterer metadata",
|
||||
"regenerating_thumbnails": "Regenererer forhåndsvisninger",
|
||||
"remove": "Fjern",
|
||||
"remove_assets_album_confirmation": "Er du sikker på, at du vil fjerne {count, plural, one {# aktiv} other {# aktiver}} fra albummet?",
|
||||
"remove_assets_shared_link_confirmation": "Er du sikker på, at du vil fjerne {count, plural, one {# aktiv} other {# aktiver}} fra dette delte link?",
|
||||
"remove_assets_title": "Fjern aktiver?",
|
||||
"remove_custom_date_range": "Fjern tilpasset datointerval",
|
||||
"remove_deleted_assets": "Fjern fra offlinefiler",
|
||||
"remove_from_album": "Fjern fra album",
|
||||
"remove_from_favorites": "Fjern fra favoritter",
|
||||
"remove_from_shared_link": "Fjern fra delt link",
|
||||
"remove_url": "Fjern URL",
|
||||
"remove_user": "Fjern bruger",
|
||||
"removed_api_key": "Fjernede API-nøgle: {name}",
|
||||
"removed_from_archive": "Fjernet fra arkiv",
|
||||
"removed_from_favorites": "Fjernet fra favoritter",
|
||||
"removed_from_favorites_count": "{count, plural, other {Fjernede #}} fra favoritter",
|
||||
"removed_tagged_assets": "Fjernede tag fra {count, plural, one {# aktiv} other {# aktiver}}",
|
||||
"rename": "Omdøb",
|
||||
"repair": "Reparér",
|
||||
"repair_no_results_message": "Utrackede og manglende filer vil blive vist her",
|
||||
"replace_with_upload": "Erstat med upload",
|
||||
"repository": "Depot",
|
||||
"require_password": "Kræv adgangskode",
|
||||
"require_user_to_change_password_on_first_login": "Kræv at bruger skifter adgangskode ved første login",
|
||||
"reset": "Nulstil",
|
||||
"reset_password": "Nulstil adgangskode",
|
||||
"reset_people_visibility": "Nulstil personsynlighed",
|
||||
"reset_to_default": "Nulstil til standard",
|
||||
"resolve_duplicates": "Løs dubletter",
|
||||
"resolved_all_duplicates": "Løste alle dubletter",
|
||||
"restore": "Gendan",
|
||||
"restore_all": "Gendan alle",
|
||||
"restore_user": "Gendan bruger",
|
||||
"restored_asset": "Gendannet aktiv",
|
||||
"resume": "Genoptag",
|
||||
"retry_upload": "Forsøg upload igen",
|
||||
"review_duplicates": "Review duplikater",
|
||||
"review_duplicates": "Gennemgå dubletter",
|
||||
"role": "Rolle",
|
||||
"role_editor": "Editor",
|
||||
"role_viewer": "Seer",
|
||||
"save": "Gem",
|
||||
"saved_api_key": "Gemt API-nøgle",
|
||||
"saved_profile": "Gemte profil",
|
||||
"saved_settings": "Gemte indstillinger",
|
||||
"say_something": "Skriv noget",
|
||||
"scan_all_libraries": "Skan gennem alle biblioteker",
|
||||
"scan_library": "Skan",
|
||||
"scan_settings": "Skanningsindstillinger",
|
||||
"scanning_for_album": "Skanner efter albummer...",
|
||||
"search": "Søg",
|
||||
"search_albums": "Søg i albummer",
|
||||
"search_by_context": "Søg efter kontekst",
|
||||
"search_by_filename": "Søg efter filnavn eller filtypenavn",
|
||||
"search_by_filename_example": "dvs. IMG_1234.JPG eller PNG",
|
||||
"search_camera_make": "Søg efter kameraproducent...",
|
||||
"search_camera_model": "Søg efter kameramodel...",
|
||||
"search_city": "Søg efter by...",
|
||||
"search_country": "Søg efter land...",
|
||||
"search_for_existing_person": "Søg efter eksisterende person",
|
||||
"search_no_people": "Ingen personer",
|
||||
"search_no_people_named": "Ingen personer med navnet \"{name}\"",
|
||||
"search_options": "Søgemuligheder",
|
||||
"search_people": "Søg i personer",
|
||||
"search_places": "Søg i steder",
|
||||
"search_settings": "søgeindstillinger",
|
||||
"search_state": "Søg efter stat...",
|
||||
"search_tags": "Søg tags...",
|
||||
"search_timezone": "Søg i tidszone...",
|
||||
"search_type": "Søg efter type",
|
||||
"search_your_photos": "Søg i dine billeder",
|
||||
"searching_locales": "Søger lokaler...",
|
||||
"second": "Sekund",
|
||||
"see_all_people": "Se alle personer",
|
||||
"select_album_cover": "Vælg albumcover",
|
||||
"select_all": "Vælg alle",
|
||||
"select_all_duplicates": "Vælg alle dubletter",
|
||||
"select_avatar_color": "Vælg avatarfarve",
|
||||
"select_face": "Vælg ansigt",
|
||||
"select_featured_photo": "Vælg forsidebillede",
|
||||
"select_from_computer": "Vælg fra computer",
|
||||
"select_keep_all": "Vælg gem alle",
|
||||
"select_library_owner": "Vælg biblioteksejer",
|
||||
"select_new_face": "Vælg nyt ansigt",
|
||||
"select_photos": "Vælg billeder",
|
||||
"select_trash_all": "Vælg smid alle ud",
|
||||
"selected": "Valgt",
|
||||
"selected_count": "{count, plural, other {# valgt}}",
|
||||
"send_message": "Send besked",
|
||||
"send_welcome_email": "Send velkomstemail",
|
||||
"server_offline": "Server Offline",
|
||||
"server_online": "Server Online",
|
||||
"server_stats": "Serverstatus",
|
||||
"set": "Sæt",
|
||||
"set_as_album_cover": "Sæt som albumcover",
|
||||
"set_as_profile_picture": "Sæt som profilbillede",
|
||||
"set_date_of_birth": "Sæt fødselsdato",
|
||||
"server_version": "Server Version",
|
||||
"set": "Indstil",
|
||||
"set_as_album_cover": "Indstil som albumcover",
|
||||
"set_as_featured_photo": "Indstil som fremhævet billede",
|
||||
"set_as_profile_picture": "Indstil som profilbillede",
|
||||
"set_date_of_birth": "Indstil fødselsdato",
|
||||
"set_profile_picture": "Indstil profilbillede",
|
||||
"set_slideshow_to_fullscreen": "Sæt diasshow til fuldskærmsvisning",
|
||||
"settings": "Indstillinger",
|
||||
|
@ -926,14 +1160,20 @@
|
|||
"share": "Del",
|
||||
"shared": "Delt",
|
||||
"shared_by": "Delt af",
|
||||
"shared_by_user": "Delt af {user}",
|
||||
"shared_by_you": "Delt af dig",
|
||||
"shared_from_partner": "Billeder fra {partner}",
|
||||
"shared_link_options": "Muligheder for delt link",
|
||||
"shared_links": "Delte links",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# delte billeder & videoer.}}",
|
||||
"shared_with_partner": "Delt med {partner}",
|
||||
"sharing": "Delte",
|
||||
"sharing_enter_password": "Indtast venligst adgangskoden for at se denne side.",
|
||||
"sharing_sidebar_description": "Vis et link til deling i sidemenuen",
|
||||
"shift_to_permanent_delete": "tryk på ⇧ for at slette aktiv permanent",
|
||||
"show_album_options": "Vis albumindstillinger",
|
||||
"show_albums": "Vis albummer",
|
||||
"show_all_people": "Vis alle personer",
|
||||
"show_and_hide_people": "Vis & gem personer",
|
||||
"show_file_location": "Vis filplacering",
|
||||
"show_gallery": "Vis galleri",
|
||||
|
@ -947,17 +1187,35 @@
|
|||
"show_person_options": "Vis personindstillinger",
|
||||
"show_progress_bar": "Vis statuslinje",
|
||||
"show_search_options": "Vis søgeindstillinger",
|
||||
"show_slideshow_transition": "Vis overgang til diasshow",
|
||||
"show_supporter_badge": "Supportermærke",
|
||||
"show_supporter_badge_description": "Vis et supportermærke",
|
||||
"shuffle": "Bland",
|
||||
"sidebar": "Sidebjælke",
|
||||
"sidebar_display_description": "Vis et link til visningen i sidebjælken",
|
||||
"sign_out": "Log af",
|
||||
"sign_up": "Tilmeld",
|
||||
"size": "Størrelse",
|
||||
"skip_to_content": "Spring frem til indhold",
|
||||
"skip_to_folders": "Spring til mapper",
|
||||
"skip_to_tags": "Spring til tags",
|
||||
"slideshow": "Diasshow",
|
||||
"slideshow_settings": "Diasshowindstillinger",
|
||||
"sort_albums_by": "Sortér albummer efter...",
|
||||
"sort_created": "Dato oprettet",
|
||||
"sort_items": "Antal genstande",
|
||||
"sort_modified": "Ændret dato",
|
||||
"sort_oldest": "Ældste foto",
|
||||
"sort_people_by_similarity": "Sorter folk efter lighed",
|
||||
"sort_recent": "Seneste foto",
|
||||
"sort_title": "Titel",
|
||||
"source": "Kilde",
|
||||
"stack": "Stak",
|
||||
"stack_selected_photos": "Stabl valgte billeder",
|
||||
"stacktrace": "Stakspor",
|
||||
"stack_duplicates": "Stak dubletter",
|
||||
"stack_select_one_photo": "Vælg ét hovedbillede til stakken",
|
||||
"stack_selected_photos": "Stak valgte billeder",
|
||||
"stacked_assets_count": "Stablet {count, plural, one {# aktiv} other {# aktiver}}",
|
||||
"stacktrace": "Stacktrace",
|
||||
"start": "Start",
|
||||
"start_date": "Startdato",
|
||||
"state": "Stat",
|
||||
|
@ -972,44 +1230,85 @@
|
|||
"submit": "Indsend",
|
||||
"suggestions": "Anbefalinger",
|
||||
"sunrise_on_the_beach": "Solopgang på stranden",
|
||||
"support": "Support",
|
||||
"support_and_feedback": "Support & Feedback",
|
||||
"support_third_party_description": "Din Immich-installation blev pakket af en tredjepart. Problemer, du oplever, kan være forårsaget af denne pakke, så rejs venligst problemer med dem i første omgang ved at bruge nedenstående links.",
|
||||
"swap_merge_direction": "Byt retning for sammenfletning",
|
||||
"sync": "Synkronisér",
|
||||
"tag": "Tag",
|
||||
"tag_assets": "Tag aktiver",
|
||||
"tag_created": "Oprettet tag: {tag}",
|
||||
"tag_feature_description": "Gennemse billeder og videoer grupperet efter logiske tag-emner",
|
||||
"tag_not_found_question": "Kan du ikke finde et tag? <link>Opret et nyt tag.</link>",
|
||||
"tag_updated": "Opdateret tag: {tag}",
|
||||
"tagged_assets": "Tagget {count, plural, one {# aktiv} other {# aktiver}}",
|
||||
"tags": "Tags",
|
||||
"template": "Skabelon",
|
||||
"theme": "Tema",
|
||||
"theme_selection": "Temavalg",
|
||||
"theme_selection_description": "Indstil automatisk temaet til lyst eller mørkt baseret på din browsers systempræference",
|
||||
"they_will_be_merged_together": "De vil blive slået sammen",
|
||||
"third_party_resources": "Tredjepartsressourcer",
|
||||
"time_based_memories": "Tidsbaserede minder",
|
||||
"timeline": "Tidslinje",
|
||||
"timezone": "Tidszone",
|
||||
"to_archive": "Arkivér",
|
||||
"to_change_password": "Skift adgangskode",
|
||||
"to_favorite": "Gør til favorit",
|
||||
"to_login": "Login",
|
||||
"to_parent": "Gå op",
|
||||
"to_trash": "Papirkurv",
|
||||
"toggle_settings": "Slå indstillinger til eller fra",
|
||||
"toggle_theme": "Slå mørkt tema til eller fra",
|
||||
"total": "Total",
|
||||
"total_usage": "Samlet forbrug",
|
||||
"trash": "Papirkurv",
|
||||
"trash_all": "Smid alle ud",
|
||||
"trash_count": "Skrald {count, number}",
|
||||
"trash_delete_asset": "Papirkurv/slet aktiv",
|
||||
"trash_no_results_message": "Udsmidte billeder og videoer vil kunne findes her.",
|
||||
"trashed_items_will_be_permanently_deleted_after": "Mediefiler i skraldespanden vil blive slettet permanent efter {days, plural, one {# dag} other {# dage}}.",
|
||||
"type": "Type",
|
||||
"unarchive": "Afakivér",
|
||||
"unarchived_count": "{count, plural, other {Uarkiveret #}}",
|
||||
"unfavorite": "Fjern favorit",
|
||||
"unhide_person": "Hold op med at gemme person væk",
|
||||
"unknown": "Ukendt",
|
||||
"unknown_year": "Ukendt år",
|
||||
"unlimited": "Ubegrænset",
|
||||
"unlink_motion_video": "Fjern link til bevægelsesvideo",
|
||||
"unlink_oauth": "Frakobl OAuth",
|
||||
"unlinked_oauth_account": "Frakoblede OAuth-konto",
|
||||
"unnamed_album": "Unavngivet album",
|
||||
"unnamed_album_delete_confirmation": "Er du sikker på, at du vil slette dette album?",
|
||||
"unnamed_share": "Unavngivet deling",
|
||||
"unsaved_change": "Ændring, der ikke er gemt",
|
||||
"unselect_all": "Fravælg alle",
|
||||
"unselect_all_duplicates": "Fjern markeringen af alle dubletter",
|
||||
"unstack": "Fjern fra stak",
|
||||
"untracked_files": "Utrackede filer",
|
||||
"unstacked_assets_count": "Ikke-stablet {count, plural, one {# aktiv} other {# aktiver}}",
|
||||
"untracked_files": "Usporede filer",
|
||||
"untracked_files_decription": "Disse filer bliver ikke sporet af applikationen. De kan være resultatet af mislykkede flytninger, afbrudte uploads eller efterladt på grund af en fejl",
|
||||
"up_next": "Næste",
|
||||
"updated_password": "Opdaterede adgangskode",
|
||||
"upload": "Upload",
|
||||
"upload_concurrency": "Uploadsamtidighed",
|
||||
"upload_errors": "Upload afsluttet med {count, plural, one {# fejl} other {# fejl}}. Opdater siden for at se nye uploadaktiver.",
|
||||
"upload_progress": "Resterende {remaining, number} - Behandlet {processed, number}/{total, number}",
|
||||
"upload_skipped_duplicates": "Sprang over {count, plural, one {# duplet aktiv} other {# duplikerede aktiver}}",
|
||||
"upload_status_duplicates": "Dubletter",
|
||||
"upload_status_errors": "Fejl",
|
||||
"upload_status_uploaded": "Uploaded",
|
||||
"upload_success": "Upload gennemført. Opdater siden for at se nye uploadaktiver.",
|
||||
"url": "URL",
|
||||
"usage": "Forbrug",
|
||||
"use_custom_date_range": "Brug tilpasset datointerval i stedet",
|
||||
"user": "Bruger",
|
||||
"user_id": "Bruger-ID",
|
||||
"user_liked": "{user} kunne lide {type, select, photo {dette billede} video {denne video} asset {dette aktiv} other {det}}",
|
||||
"user_purchase_settings": "Køb",
|
||||
"user_purchase_settings_description": "Administrer dit køb",
|
||||
"user_role_set": "Indstil {user} som {role}",
|
||||
"user_usage_detail": "Detaljer om brugers forbrug",
|
||||
"user_usage_stats": "Konto anvendelsesstatistik",
|
||||
"user_usage_stats_description": "Vis konto anvendelsesstatistik",
|
||||
|
@ -1019,21 +1318,33 @@
|
|||
"validate": "Validér",
|
||||
"variables": "Variabler",
|
||||
"version": "Version",
|
||||
"version_announcement_closing": "Din ven, Alex",
|
||||
"version_announcement_message": "Hej! En ny version af Immich er tilgængelig. Brug venligst lidt tid på at læse <link>udgivelsesbemærkningerne</link> for at sikre, at din opsætning er opdateret for at forhindre fejlkonfigurationer, især hvis du bruger WatchTower eller en mekanisme, der håndterer automatisk opdatering af din Immich-instans.",
|
||||
"version_history": "Versionshistorik",
|
||||
"version_history_item": "Installerede {version} den {date}",
|
||||
"video": "Video",
|
||||
"video_hover_setting": "Afspil miniaturevisning af video når musemarkøren er over den",
|
||||
"video_hover_setting_description": "Afspil miniaturevisning for videoer når musemarkøren holdes over elementet. Selv når det er deaktiveret, kan afspilning startes ved at holde musen over afspilningsikonet.",
|
||||
"videos": "Videoer",
|
||||
"videos_count": "{count, plural, one {# Video} other {# Videoer}}",
|
||||
"view": "Se",
|
||||
"view_album": "Se album",
|
||||
"view_all": "Se alle",
|
||||
"view_all_users": "Se alle brugere",
|
||||
"view_in_timeline": "Se på tidslinjen",
|
||||
"view_links": "Vis links",
|
||||
"view_name": "Se",
|
||||
"view_next_asset": "Se næste medie",
|
||||
"view_previous_asset": "Se forrige medie",
|
||||
"view_stack": "Vis stak",
|
||||
"visibility_changed": "Synlighed ændret for {count, plural, one {# person} other {# personer}}",
|
||||
"waiting": "Venter",
|
||||
"warning": "Advarsel",
|
||||
"week": "Uge",
|
||||
"welcome": "Velkommen",
|
||||
"welcome_to_immich": "Velkommen til immich",
|
||||
"welcome_to_immich": "Velkommen til Immich",
|
||||
"year": "År",
|
||||
"years_ago": "{years, plural, one {# år} other {# år}} siden",
|
||||
"yes": "Ja",
|
||||
"you_dont_have_any_shared_links": "Du har ikke nogen delte links",
|
||||
"zoom_image": "Zoom billede"
|
||||
|
|
51
i18n/de.json
51
i18n/de.json
|
@ -34,7 +34,7 @@
|
|||
"authentication_settings_description": "Passwort-, OAuth- und sonstigen Authentifizierungseinstellungen verwalten",
|
||||
"authentication_settings_disable_all": "Bist du sicher, dass du alle Anmeldemethoden deaktivieren willst? Die Anmeldung wird vollständig deaktiviert.",
|
||||
"authentication_settings_reenable": "Nutze einen <link>Server-Befehl</link> zur Reaktivierung.",
|
||||
"background_task_job": "Hintergrund-Aufgaben",
|
||||
"background_task_job": "Hintergrundaufgaben",
|
||||
"backup_database": "Datenbank sichern",
|
||||
"backup_database_enable_description": "Sicherung der Datenbank aktivieren",
|
||||
"backup_keep_last_amount": "Anzahl der aufzubewahrenden früheren Sicherungen",
|
||||
|
@ -83,9 +83,9 @@
|
|||
"job_concurrency": "{job} (Anzahl gleichzeitiger Prozesse)",
|
||||
"job_created": "Aufgabe erstellt",
|
||||
"job_not_concurrency_safe": "Diese Aufgabe ist nicht parallelisierungssicher.",
|
||||
"job_settings": "Aufgaben-Einstellungen",
|
||||
"job_settings_description": "Gleichzeitige Aufgaben-Prozesse verwalten",
|
||||
"job_status": "Aufgaben-Status",
|
||||
"job_settings": "Aufgabeneinstellungen",
|
||||
"job_settings_description": "Die gleichzeitige Ausführung von Aufgaben verwalten",
|
||||
"job_status": "Aufgabenstatus",
|
||||
"jobs_delayed": "{jobCount, plural, other {# verzögert}}",
|
||||
"jobs_failed": "{jobCount, plural, other {# fehlgeschlagen}}",
|
||||
"library_created": "Bibliothek erstellt: {library}",
|
||||
|
@ -211,7 +211,7 @@
|
|||
"quota_size_gib": "Kontingent (GiB)",
|
||||
"refreshing_all_libraries": "Alle Bibliotheken aktualisieren",
|
||||
"registration": "Admin-Registrierung",
|
||||
"registration_description": "Da du der erste Benutzer im System bist, wirst du als Admin zugewiesen und bist für administrative Aufgaben zuständig. Weitere Benutzer werden von dir erstellt.",
|
||||
"registration_description": "Da du der erste Benutzer im System bist, wird dir die Rolle des Administrators zugewiesen, womit du für die Verwaltungsaufgaben verantwortlich bist. Weitere Benutzer werden von dir erstellt.",
|
||||
"repair_all": "Alle reparieren",
|
||||
"repair_matched_items": "{count, plural, one {# Eintrag} other {# Einträge}} gefunden",
|
||||
"repaired_items": "{count, plural, one {# Eintrag} other {# Einträge}} repariert",
|
||||
|
@ -254,12 +254,12 @@
|
|||
"template_email_if_empty": "Wenn die Vorlage leer ist, wird die Standard-E-Mail verwendet.",
|
||||
"template_email_invite_album": "E-Mail-Vorlage: Einladung zu Album",
|
||||
"template_email_preview": "Vorschau",
|
||||
"template_email_settings": "E-Mail Vorlagen",
|
||||
"template_email_settings_description": "Benutzerdefinierte E-Mail Benachrichtigungsvorlagen verwalten",
|
||||
"template_email_update_album": "Album Vorlage aktualisieren",
|
||||
"template_email_welcome": "Willkommen bei den E-Mail Vorlagen",
|
||||
"template_email_settings": "E-Mail-Vorlagen",
|
||||
"template_email_settings_description": "Benutzerdefinierte E-Mail-Benachrichtigungsvorlagen verwalten",
|
||||
"template_email_update_album": "Album-Vorlage aktualisieren",
|
||||
"template_email_welcome": "Willkommen bei den E-Mail-Vorlagen",
|
||||
"template_settings": "Benachrichtigungsvorlagen",
|
||||
"template_settings_description": "Benutzerdefinierte Vorlagen für Benachrichtigungen verwalten",
|
||||
"template_settings_description": "Benutzerdefinierte Vorlagen für Benachrichtigungen verwalten.",
|
||||
"theme_custom_css_settings": "Benutzerdefiniertes CSS",
|
||||
"theme_custom_css_settings_description": "Mit Cascading Style Sheets (CSS) kann das Design von Immich angepasst werden.",
|
||||
"theme_settings": "Theme-Einstellungen",
|
||||
|
@ -287,8 +287,10 @@
|
|||
"transcoding_constant_quality_mode": "Modus für konstante Qualität",
|
||||
"transcoding_constant_quality_mode_description": "ICQ ist besser als CQP, aber einige Hardware-Beschleunigungsgeräte unterstützen diesen Modus nicht. Wenn diese Option gesetzt wird, wird der angegebene Modus bevorzugt, sobald qualitätsbasierte Kodierung verwendet wird. Wird von NVENC ignoriert, da es ICQ nicht unterstützt.",
|
||||
"transcoding_constant_rate_factor": "Faktor der konstanten Rate (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Video-Qualitätsstufe. Typische Werte sind 23 für H.264, 28 für HEVC, 31 für VP9 und 35 für AV1. Ein niedrigerer Wert ist besser, erzeugt aber größere Dateien.",
|
||||
"transcoding_constant_rate_factor_description": "Videoqualitätsstufe. Typische Werte sind 23 für H.264, 28 für HEVC, 31 für VP9 und 35 für AV1. Ein niedrigerer Wert ist besser, erzeugt aber größere Dateien.",
|
||||
"transcoding_disabled_description": "Videos nicht transkodieren, dies kann die Wiedergabe auf manchen Geräten beeinträchtigen",
|
||||
"transcoding_encoding_options": "Kodierungsoptionen",
|
||||
"transcoding_encoding_options_description": "Setze Codec, Auflösung, Qualität und andere Optionen für kodierte Videos",
|
||||
"transcoding_hardware_acceleration": "Hardware-Beschleunigung",
|
||||
"transcoding_hardware_acceleration_description": "Experimentell; viel schneller, aber bei gleicher Bitrate mit geringerer Qualität",
|
||||
"transcoding_hardware_decoding": "Hardware-Dekodierung",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Maximales Keyframe-Intervall",
|
||||
"transcoding_max_keyframe_interval_description": "Legt den maximalen Frame-Abstand zwischen Keyframes fest. Niedrigere Werte verschlechtern die Komprimierungseffizienz, verbessern aber die Suchzeiten und können die Qualität in Szenen mit schnellen Bewegungen verbessern. Bei 0 wird dieser Wert automatisch eingestellt.",
|
||||
"transcoding_optimal_description": "Videos mit einer höheren Auflösung als der Zielauflösung oder in einem nicht akzeptierten Format",
|
||||
"transcoding_policy": "Transkodierungsrichtlinie",
|
||||
"transcoding_policy_description": "Bestimme, wann ein Video transkodiert wird",
|
||||
"transcoding_preferred_hardware_device": "Bevorzugtes Hardwaregerät",
|
||||
"transcoding_preferred_hardware_device_description": "Gilt nur für VAAPI und QSV. Legt den für die Hardware-Transkodierung verwendeten dri-Node fest.",
|
||||
"transcoding_preset_preset": "Voreinstellung (-preset)",
|
||||
|
@ -308,14 +312,14 @@
|
|||
"transcoding_reference_frames": "Referenz-Frames",
|
||||
"transcoding_reference_frames_description": "Die Anzahl der Bilder, auf die bei der Komprimierung eines bestimmten Bildes Bezug genommen wird. Höhere Werte verbessern die Komprimierungseffizienz, verlangsamen aber die Kodierung. 0 setzt diesen Wert automatisch.",
|
||||
"transcoding_required_description": "Nur Videos in einem nicht akzeptierten Format",
|
||||
"transcoding_settings": "Video-Transkodierungseinstellungen",
|
||||
"transcoding_settings_description": "Auflösungs- und Kodierungsinformationen von Videodateien verwalten",
|
||||
"transcoding_settings": "Einstellungen für die Videotranskodierung",
|
||||
"transcoding_settings_description": "Verwalten welche Videos transkodiert werden und wie diese verarbeitet werden",
|
||||
"transcoding_target_resolution": "Ziel-Auflösung",
|
||||
"transcoding_target_resolution_description": "Höhere Auflösungen können mehr Details erhalten, benötigen aber mehr Zeit für die Codierung, haben größere Dateigrößen und können die Reaktionszeit der Anwendung beeinträchtigen.",
|
||||
"transcoding_temporal_aq": "Temporäre AQ",
|
||||
"transcoding_temporal_aq_description": "Gilt nur für NVENC. Verbessert die Qualität von Szenen mit hohem Detailreichtum und geringen Bewegungen. Dies ist möglicherweise nicht mit älteren Geräten kompatibel.",
|
||||
"transcoding_threads": "Threads",
|
||||
"transcoding_threads_description": "Höhere Werte führen zu einer schnelleren Codierung, lassen dem Server aber weniger Spielraum für die Verarbeitung anderer Aufgaben, solange dies aktiv ist. Dieser Wert sollte nicht höher sein als die Anzahl der CPU-Kerne. Nutzt die maximale Auslastung, wenn der Wert auf 0 gesetzt ist.",
|
||||
"transcoding_threads_description": "Höhere Werte führen zu einer schnelleren Kodierung, lassen dem Server jedoch weniger Spielraum für die Verarbeitung anderer Aufgaben im aktiven Zustand. Dieser Wert sollte nicht höher sein als die Anzahl der CPU-Kerne. Maximiert die Auslastung, wenn der Wert auf 0 gesetzt wird.",
|
||||
"transcoding_tone_mapping": "Farbton-Mapping",
|
||||
"transcoding_tone_mapping_description": "Versucht, das Aussehen von HDR-Videos bei der Konvertierung in SDR beizubehalten. Jeder Algorithmus geht unterschiedliche Kompromisse bei Farbe, Details und Helligkeit ein. Hable bewahrt Details, Mobius bewahrt die Farbe und Reinhard bewahrt die Helligkeit.",
|
||||
"transcoding_transcode_policy": "Transcodierungsrichtlinie",
|
||||
|
@ -324,11 +328,11 @@
|
|||
"transcoding_two_pass_encoding_setting_description": "Führt eine Transkodierung in zwei Durchgängen durch, um besser kodierte Videos zu erzeugen. Wenn die maximale Bitrate aktiviert ist (erforderlich für die Verwendung mit H.264 und HEVC), verwendet dieser Modus einen Bitratenbereich, der auf der maximalen Bitrate basiert, und ignoriert CRF. Für VP9 kann CRF verwendet werden, wenn die maximale Bitrate deaktiviert ist.",
|
||||
"transcoding_video_codec": "Video-Codec",
|
||||
"transcoding_video_codec_description": "VP9 hat eine hohe Effizienz und Webkompatibilität, braucht aber länger für die Transkodierung. HEVC bietet eine ähnliche Leistung, ist aber weniger web-kompatibel. H.264 ist weitgehend kompatibel und lässt sich schnell transkodieren, erzeugt aber viel größere Dateien. AV1 ist der effizienteste Codec, wird aber von älteren Geräten nicht unterstützt.",
|
||||
"trash_enabled_description": "Papierkorb-Funktionen aktivieren",
|
||||
"trash_enabled_description": "Papierkorbfunktionen aktivieren",
|
||||
"trash_number_of_days": "Anzahl der Tage",
|
||||
"trash_number_of_days_description": "Anzahl der Tage, welche die Objekte im Papierkorb verbleiben, bevor sie endgültig entfernt werden",
|
||||
"trash_settings": "Papierkorb-Einstellungen",
|
||||
"trash_settings_description": "Papierkorb-Einstellungen verwalten",
|
||||
"trash_settings": "Papierkorbeinstellungen",
|
||||
"trash_settings_description": "Papierkorbeinstellungen verwalten",
|
||||
"untracked_files": "Unverfolgte Dateien",
|
||||
"untracked_files_description": "Diese Dateien werden nicht von der Anwendung getrackt. Sie können das Ergebnis fehlgeschlagener Verschiebungen, unterbrochener Uploads oder aufgrund eines Fehlers sein",
|
||||
"user_cleanup_job": "Benutzer aufräumen",
|
||||
|
@ -342,8 +346,8 @@
|
|||
"user_password_reset_description": "Bitte gib dem Benutzer das temporäre Passwort und informiere ihn, dass das Passwort beim nächsten Login geändert werden muss.",
|
||||
"user_restore_description": "Das Konto von <b>{user}</b> wird wiederhergestellt.",
|
||||
"user_restore_scheduled_removal": "Wiederherstellung des Benutzers - geplante Entfernung am {date, date, long}",
|
||||
"user_settings": "Benutzer-Einstellungen",
|
||||
"user_settings_description": "Benutzer-Einstellungen verwalten",
|
||||
"user_settings": "Benutzereinstellungen",
|
||||
"user_settings_description": "Benutzereinstellungen verwalten",
|
||||
"user_successfully_removed": "Benutzer {email} wurde erfolgreich entfernt.",
|
||||
"version_check_enabled_description": "Versionsprüfung aktivieren",
|
||||
"version_check_implications": "Die Funktion zur Versionsprüfung basiert auf regelmäßiger Kommunikation mit GitHub.com",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Datumsbereich",
|
||||
"day": "Tag",
|
||||
"deduplicate_all": "Alle Duplikate entfernen",
|
||||
"deduplication_criteria_1": "Bildgröße in Bytes",
|
||||
"deduplication_criteria_2": "Anzahl der EXIF-Daten",
|
||||
"deduplication_info": "Deduplizierungsinformationen",
|
||||
"deduplication_info_description": "Für die automatische Datei-Vorauswahl und das Deduplizieren aller Dateien berücksichtigen wir:",
|
||||
"default_locale": "Standard-Sprache",
|
||||
"default_locale_description": "Datumsangaben und Zahlen basierend auf dem Gebietsschema des Browsers formatieren",
|
||||
"delete": "Löschen",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Hilfe erhalten",
|
||||
"getting_started": "Erste Schritte",
|
||||
"go_back": "Zurück",
|
||||
"go_to_folder": "Gehe zu Ordner",
|
||||
"go_to_search": "Zur Suche gehen",
|
||||
"group_albums_by": "Alben gruppieren nach...",
|
||||
"group_no": "Keine Gruppierung",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Server-Version",
|
||||
"set": "Speichern",
|
||||
"set_as_album_cover": "Als Albumcover festlegen",
|
||||
"set_as_featured_photo": "Als Anzeigebild setzen",
|
||||
"set_as_profile_picture": "Als Profilbild festlegen",
|
||||
"set_date_of_birth": "Geburtsdatum festlegen",
|
||||
"set_profile_picture": "Profilbild einstellen",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Anzahl der Einträge",
|
||||
"sort_modified": "Änderungsdatum",
|
||||
"sort_oldest": "Ältestes Foto",
|
||||
"sort_people_by_similarity": "Personen nach Ähnlichkeit sortieren",
|
||||
"sort_recent": "Neustes Foto",
|
||||
"sort_title": "Titel",
|
||||
"source": "Quellcode",
|
||||
|
@ -1313,7 +1324,7 @@
|
|||
"version_history_item": "{version} am {date} installiert",
|
||||
"video": "Video",
|
||||
"video_hover_setting": "Videovorschau beim Hovern abspielen",
|
||||
"video_hover_setting_description": "Video-Miniaturansicht wiedergeben, wenn der Mauszeiger über dem Element verweilt. Auch wenn diese Funktion deaktiviert ist, kann die Wiedergabe gestartet werden, indem der Mauszeiger auf das Wiedergabesymbol bewegt wird.",
|
||||
"video_hover_setting_description": "Spiele die Miniaturansicht des Videos ab, wenn sich die Maus über dem Element befindet. Auch wenn die Funktion deaktiviert ist, kann die Wiedergabe gestartet werden, indem du mit der Maus über das Wiedergabesymbol fährst.",
|
||||
"videos": "Videos",
|
||||
"videos_count": "{count, plural, one {# Video} other {# Videos}}",
|
||||
"view": "Ansicht",
|
||||
|
|
17
i18n/el.json
17
i18n/el.json
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Σταθερός παράγοντας ρυθμού (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Επίπεδο ποιότητας βίντεο. Οι τυπικές τιμές είναι οι, 23 για το H.264, 28 για το HEVC, 31 για το VP9 και 35 για το AV1. Χαμηλότερες τιμές σημαίνουν καλύτερη ποιότητα, αλλά παράγουν μεγαλύτερα αρχεία.",
|
||||
"transcoding_disabled_description": "Να μην μετατραπεί κανένα βίντεο γιατί δύναται να προκαλέσει πρόβλημα αναπαραγωγής σε ορισμένες συσκευές/εφαρμογές",
|
||||
"transcoding_encoding_options": "Επιλογές κωδικοποίησης",
|
||||
"transcoding_encoding_options_description": "Ορίστε τους κωδικοποιητές, την ανάλυση, την ποιότητα και άλλες επιλογές για τα κωδικοποιημένα βίντεο",
|
||||
"transcoding_hardware_acceleration": "Επιτάχυνση υλικού",
|
||||
"transcoding_hardware_acceleration_description": "Πειραματικό· πολύ πιο γρήγορο, αλλά θα έχει χαμηλότερη ποιότητα με τον ίδιο ρυθμό μετάδοσης (bitrate)",
|
||||
"transcoding_hardware_decoding": "Αποκωδικοποίηση μέσω υλικού",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Μέγιστο χρονικό διάστημα μεταξύ των καρέ αναφοράς (keyframe)",
|
||||
"transcoding_max_keyframe_interval_description": "Ορίζει το μέγιστο διάστημα μεταξύ των καρέ αναφοράς. Χαμηλότερες τιμές μειώνουν την αποδοτικότητα συμπίεσης, αλλά βελτιώνουν τον χρόνο αναζήτησης και μπορεί να βελτιώσουν την ποιότητα σε σκηνές με γρήγορη κίνηση. Η τιμή 0 ρυθμίζει αυτό το διάστημα αυτόματα.",
|
||||
"transcoding_optimal_description": "Βίντεο με ανώτερη ανάλυση από την επιθυμητή ή σε μη αποδεκτή μορφή",
|
||||
"transcoding_policy": "Πολιτική Μετακωδικοποίησης",
|
||||
"transcoding_policy_description": "Ορίστε πότε θα γίνει η μετακωδικοποίηση ενός βίντεο",
|
||||
"transcoding_preferred_hardware_device": "Προτιμώμενη συσκευή",
|
||||
"transcoding_preferred_hardware_device_description": "Ισχύει μόνο για VAAPI και QSV. Ορίζει τον κόμβο DRI που χρησιμοποιείται για την επιτάχυνση υλικού κατά την κωδικοποίηση.",
|
||||
"transcoding_preset_preset": "Προκαθορισμένη ρύθμιση (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Ο αριθμός των καρέ που χρησιμοποιούνται ως αναφορά κατά τη συμπίεση ενός δεδομένου καρέ. Υψηλότερες τιμές βελτιώνουν την αποδοτικότητα της συμπίεσης, αλλά επιβραδύνουν την κωδικοποίηση. Η τιμή 0 ρυθμίζει αυτό τον αριθμό, αυτόματα.",
|
||||
"transcoding_required_description": "Μόνο βίντεο που δεν είναι σε αποδεκτή μορφή",
|
||||
"transcoding_settings": "Ρυθμίσεις μετατροπής βίντεο",
|
||||
"transcoding_settings_description": "Διαχείριση της ανάλυσης και των πληροφοριών κωδικοποίησης των αρχείων βίντεο",
|
||||
"transcoding_settings_description": "Διαχείριση των βίντεο που θα μετακωδικοποιηθούν και του τρόπου επεξεργασίας τους",
|
||||
"transcoding_target_resolution": "Επιθυμητή ανάλυση",
|
||||
"transcoding_target_resolution_description": "Οι υψηλότερες αναλύσεις μπορούν να διατηρήσουν περισσότερες λεπτομέρειες, αλλά απαιτούν περισσότερο χρόνο για κωδικοποίηση, παράγουν μεγαλύτερα αρχεία και μπορεί να μειώσουν την απόκριση της εφαρμογής.",
|
||||
"transcoding_temporal_aq": "Χρονική Προσαρμοστική Ποιότητα AQ(Adaptive Quantization)",
|
||||
|
@ -322,7 +326,7 @@
|
|||
"transcoding_transcode_policy_description": "Πολιτική για το πότε πρέπει να μετατραπεί ένα βίντεο. Τα βίντεο HDR θα μετατρέπονται πάντα (εκτός αν η μετατροπή είναι απενεργοποιημένη).",
|
||||
"transcoding_two_pass_encoding": "Κωδικοποίηση δύο περασμάτων",
|
||||
"transcoding_two_pass_encoding_setting_description": "Μετατροπή σε δύο περάσματα για την παραγωγή βίντεο με καλύτερη κωδικοποίηση. Όταν είναι ενεργοποιημένος ο μέγιστος ρυθμός μετάδοσης (απαραίτητος για λειτουργία με H.264 και HEVC), αυτή η λειτουργία χρησιμοποιεί ένα εύρος ρυθμού μετάδοσης βάσει του μέγιστου ρυθμού μετάδοσης και αγνοεί το CRF. Στον κωδικοποιητή VP9, το CRF μπορεί να χρησιμοποιηθεί εάν ο μέγιστος ρυθμός μετάδοσης είναι απενεργοποιημένος.",
|
||||
"transcoding_video_codec": "Κωδικοποιητής Βίντεο",
|
||||
"transcoding_video_codec": "Κωδικοποιητής βίντεο",
|
||||
"transcoding_video_codec_description": "Ο VP9 έχει υψηλή απόδοση και συμβατότητα με τον ιστότοπο, αλλά απαιτεί περισσότερο χρόνο για μετατροπή. Ο HEVC έχει παρόμοια απόδοση, αλλά χαμηλότερη συμβατότητα με τον ιστότοπο. Ο H.264 είναι ευρέως συμβατός και γρήγορος στη μετατροπή, αλλά παράγει πολύ μεγαλύτερα αρχεία. Ο AV1 είναι ο πιο αποδοτικός κωδικοποιητής, αλλά δεν υποστηρίζεται σε παλαιότερες συσκευές.",
|
||||
"trash_enabled_description": "Ενεργοποίηση λειτουργιών Κάδου Απορριμμάτων",
|
||||
"trash_number_of_days": "Αριθμός ημερών",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Εύρος ημερομηνιών",
|
||||
"day": "Ημέρα",
|
||||
"deduplicate_all": "Αφαίρεση όλων των διπλότυπων",
|
||||
"deduplication_criteria_1": "Μέγεθος εικόνας σε byte",
|
||||
"deduplication_criteria_2": "Αριθμός δεδομένων EXIF",
|
||||
"deduplication_info": "Πληροφορίες Αφαίρεσης Διπλοτύπων",
|
||||
"deduplication_info_description": "Για να προεπιλέξουμε αυτόματα τα αρχεία και να αφαιρέσουμε τα διπλότυπα σε μαζική επεξεργασία, εξετάζουμε σε:",
|
||||
"default_locale": "Προεπιλεγμένη Τοπική Ρύθμιση",
|
||||
"default_locale_description": "Μορφοποιήστε τις ημερομηνίες και τους αριθμούς με βάση την τοπική ρύθμιση του προγράμματος περιήγησής σας",
|
||||
"delete": "Διαγραφή",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Ζητήστε βοήθεια",
|
||||
"getting_started": "Ξεκινώντας",
|
||||
"go_back": "Πηγαίνετε πίσω",
|
||||
"go_to_folder": "Μετάβαση στο φάκελο",
|
||||
"go_to_search": "Πηγαίνετε στην αναζήτηση",
|
||||
"group_albums_by": "Ομαδοποίηση άλμπουμ κατά...",
|
||||
"group_no": "Καμία ομοδοποίηση",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Έκδοση Διακομιστή",
|
||||
"set": "Ορισμός",
|
||||
"set_as_album_cover": "Ορισμός ως εξώφυλλο άλμπουμ",
|
||||
"set_as_featured_photo": "Ορισμός ως χαρακτηριστική φωτογραφία",
|
||||
"set_as_profile_picture": "Ορισμός ως εικόνα προφίλ",
|
||||
"set_date_of_birth": "Ορισμός ημερομηνίας γέννησης",
|
||||
"set_profile_picture": "Ορισμός εικόνας προφίλ",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Αριθμός αντικειμένων",
|
||||
"sort_modified": "Ημερομηνία τροποποίησης",
|
||||
"sort_oldest": "Η πιο παλιά φωτογραφία",
|
||||
"sort_people_by_similarity": "Ταξινόμηση ατόμων κατά ομοιότητα",
|
||||
"sort_recent": "Η πιο πρόσφατη φωτογραφία",
|
||||
"sort_title": "Τίτλος",
|
||||
"source": "Πηγή",
|
||||
|
@ -1281,7 +1292,7 @@
|
|||
"up_next": "Ακολουθεί",
|
||||
"updated_password": "Ο κωδικός πρόσβασης ενημερώθηκε",
|
||||
"upload": "Μεταφόρτωση",
|
||||
"upload_concurrency": "Συγχρονισμός μεταφόρτωσης",
|
||||
"upload_concurrency": "Ταυτόχρονη μεταφόρτωση",
|
||||
"upload_errors": "Η μεταφόρτωση ολοκληρώθηκε με {count, plural, one {# σφάλμα} other {# σφάλματα}}, ανανεώστε τη σελίδα για να δείτε νέα στοιχεία μεταφόρτωσης.",
|
||||
"upload_progress": "Απομένουν {remaining, number} - Ολοκληρώθηκαν {processed, number}/{total, number}",
|
||||
"upload_skipped_duplicates": "Παραλείφθηκαν {count, plural, one {# διπλότυπο στοιχείο} other {# διπλότυπα στοιχεία}}",
|
||||
|
|
|
@ -523,6 +523,10 @@
|
|||
"date_range": "Date range",
|
||||
"day": "Day",
|
||||
"deduplicate_all": "Deduplicate All",
|
||||
"deduplication_info": "Deduplication Info",
|
||||
"deduplication_info_description": "To automatically preselect assets and remove duplicates in bulk, we look at:",
|
||||
"deduplication_criteria_1": "Image size in bytes",
|
||||
"deduplication_criteria_2": "Count of EXIF data",
|
||||
"default_locale": "Default Locale",
|
||||
"default_locale_description": "Format dates and numbers based on your browser locale",
|
||||
"delete": "Delete",
|
||||
|
@ -818,6 +822,7 @@
|
|||
"latest_version": "Latest Version",
|
||||
"latitude": "Latitude",
|
||||
"leave": "Leave",
|
||||
"lens_model": "Lens model",
|
||||
"let_others_respond": "Let others respond",
|
||||
"level": "Level",
|
||||
"library": "Library",
|
||||
|
@ -1109,6 +1114,7 @@
|
|||
"search_camera_model": "Search camera model...",
|
||||
"search_city": "Search city...",
|
||||
"search_country": "Search country...",
|
||||
"search_for": "Search for",
|
||||
"search_for_existing_person": "Search for existing person",
|
||||
"search_no_people": "No people",
|
||||
"search_no_people_named": "No people named \"{name}\"",
|
||||
|
|
15
i18n/es.json
15
i18n/es.json
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"about": "Acercade",
|
||||
"about": "Acerca de",
|
||||
"account": "Cuenta",
|
||||
"account_settings": "Ajustes de la cuenta",
|
||||
"acknowledge": "De acuerdo",
|
||||
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Factor de tasa constante (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Nivel de calidad del vídeo. Los valores típicos son 23 para H.264, 28 para HEVC, 31 para VP9 y 35 para AV1. Cuanto más bajo es mejor, pero produce archivos más grandes.",
|
||||
"transcoding_disabled_description": "No transcodifique ningún vídeo; puede interrumpir la reproducción en algunos clientes",
|
||||
"transcoding_encoding_options": "Opciones de codificación",
|
||||
"transcoding_encoding_options_description": "Establecer códecs, resolución, calidad y otras opciones para los vídeos codificados",
|
||||
"transcoding_hardware_acceleration": "Aceleración por Hardware",
|
||||
"transcoding_hardware_acceleration_description": "Experimental; mucho más rápido, pero tendrá menor calidad con la misma tasa de bits",
|
||||
"transcoding_hardware_decoding": "Decodificación por hardware",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Intervalo máximo de fotogramas clave",
|
||||
"transcoding_max_keyframe_interval_description": "Establece la distancia máxima de fotograma entre fotogramas clave. Los valores más bajos empeoran la eficiencia de la compresión, pero mejoran los tiempos de búsqueda y pueden mejorar la calidad en escenas con movimientos rápidos. 0 establece este valor automáticamente.",
|
||||
"transcoding_optimal_description": "Vídeos con una resolución superior a la fijada o que no están en un formato aceptado",
|
||||
"transcoding_policy": "Política de transcodificación",
|
||||
"transcoding_policy_description": "Establecer cuándo se transcodificará un vídeo",
|
||||
"transcoding_preferred_hardware_device": "Dispositivo de hardware preferido",
|
||||
"transcoding_preferred_hardware_device_description": "Se aplica únicamente a VAAPI y QSV. Establece el nodo dri utilizado para la transcodificación de hardware.",
|
||||
"transcoding_preset_preset": "Configuración predefinida (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "El número de fotogramas a los que hacer referencia al comprimir un fotograma determinado. Los valores más altos mejoran la eficiencia de la compresión, pero ralentizan la codificación. 0 establece este valor automáticamente.",
|
||||
"transcoding_required_description": "Sólo vídeos que no estén en un formato soportado",
|
||||
"transcoding_settings": "Configuración de Transcodificación de Vídeo",
|
||||
"transcoding_settings_description": "Administrar la resolución y la información de codificación de los archivos de video",
|
||||
"transcoding_settings_description": "Administrar qué vídeos transcodificar y cómo procesarlos",
|
||||
"transcoding_target_resolution": "Resolución deseada",
|
||||
"transcoding_target_resolution_description": "Las resoluciones más altas pueden conservar más detalles, pero la codificación tarda más, tienen tamaños de archivo más grandes y pueden reducir la capacidad de respuesta de la aplicación.",
|
||||
"transcoding_temporal_aq": "AQ temporal",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Rango de fechas",
|
||||
"day": "Día",
|
||||
"deduplicate_all": "Deduplicar todo",
|
||||
"deduplication_criteria_1": "Tamaño de imagen en bytes",
|
||||
"deduplication_criteria_2": "Conteo de datos EXIF",
|
||||
"deduplication_info": "Información de Deduplicación",
|
||||
"deduplication_info_description": "Para automáticamente preseleccionar recursos y eliminar duplicados en conjunto, nosotros consideramos lo siguiente:",
|
||||
"default_locale": "Configuración regional predeterminada",
|
||||
"default_locale_description": "Formatee fechas y números según la configuración regional de su navegador",
|
||||
"delete": "Eliminar",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Solicitar ayuda",
|
||||
"getting_started": "Comenzamos",
|
||||
"go_back": "Volver atrás",
|
||||
"go_to_folder": "Ir al directorio",
|
||||
"go_to_search": "Ir a búsqueda",
|
||||
"group_albums_by": "Agrupar albums por...",
|
||||
"group_no": "Sin agrupación",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Versión del servidor",
|
||||
"set": "Establecer",
|
||||
"set_as_album_cover": "Establecer portada del álbum",
|
||||
"set_as_featured_photo": "Establecer como foto destacada",
|
||||
"set_as_profile_picture": "Seleccionar como foto de perfil",
|
||||
"set_date_of_birth": "Establecer fecha de nacimiento",
|
||||
"set_profile_picture": "Establecer foto de perfil",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Número de archivos",
|
||||
"sort_modified": "Fecha de modificación",
|
||||
"sort_oldest": "Foto más antigua",
|
||||
"sort_people_by_similarity": "Ordenar personas por similitud",
|
||||
"sort_recent": "Foto más reciente",
|
||||
"sort_title": "Título",
|
||||
"source": "Origen",
|
||||
|
|
18
i18n/et.json
18
i18n/et.json
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"about": "Värskenda",
|
||||
"about": "Teave",
|
||||
"account": "Konto",
|
||||
"account_settings": "Konto seaded",
|
||||
"acknowledge": "Sain aru",
|
||||
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Püsiv kiirusefaktor (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Video kvaliteeditase. Tüüpilised väärtused on 23 (H.264), 28 (HEVC), 31 (VP9) ning 35 (AV1). Madal on parem, aga tulemuseks on suuremad failid.",
|
||||
"transcoding_disabled_description": "Ära transkodeeri videosid. Võib takistada taasesitamist mõnedes seadmetes",
|
||||
"transcoding_encoding_options": "Kodeerimise valikud",
|
||||
"transcoding_encoding_options_description": "Määra kodeeritud videote koodek, resolutsioon, kvaliteet ja muud valikud",
|
||||
"transcoding_hardware_acceleration": "Riistvaraline kiirendus",
|
||||
"transcoding_hardware_acceleration_description": "Eksperimentaalne; palju kiirem, aga sama bitisageduse juures madalam kvaliteet",
|
||||
"transcoding_hardware_decoding": "Riistvaraline dekodeerimine",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Maksimaalne võtmekaadri intervall",
|
||||
"transcoding_max_keyframe_interval_description": "Määrab maksimaalse kauguse võtmekaadrite vahel. Madalamad väärtused vähendavad pakkimise efektiivsust, aga parandavad otsimiskiirust ning võivad tõsta kiire liikumisega stseenide kvaliteeti. 0 määrab väärtuse automaatselt.",
|
||||
"transcoding_optimal_description": "Kõrgema kui lubatud resolutsiooniga või mittelubatud formaadis videod",
|
||||
"transcoding_policy": "Transkodeerimise reegel",
|
||||
"transcoding_policy_description": "Määra, millal video transkodeeritakse",
|
||||
"transcoding_preferred_hardware_device": "Eelistatud riistvaraseade",
|
||||
"transcoding_preferred_hardware_device_description": "Rakendub ainult VAAPI ja QSV puhul. Määrab dri seadme, mida kasutatakse riistvaraliseks transkodeerimiseks.",
|
||||
"transcoding_preset_preset": "Eelseadistus (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Kaadrite arv, millele viidata jooksva kaadri pakkimisel. Suuremad väärtused parandavad pakkimise tõhusust, aga muudavad kodeerimise aeglasemaks. 0 määrab väärtuse automaatselt.",
|
||||
"transcoding_required_description": "Ainult mittelubatud formaadis videod",
|
||||
"transcoding_settings": "Video transkodeerimise seaded",
|
||||
"transcoding_settings_description": "Halda videofailide resolutsiooni ja kodeerimist",
|
||||
"transcoding_settings_description": "Määra, millised videod transkodeerida ja kuidas neid töödelda",
|
||||
"transcoding_target_resolution": "Sihtresolutsioon",
|
||||
"transcoding_target_resolution_description": "Kõrgemad resolutsioonid säilitavad rohkem detaile, aga kodeerimine võtab kauem aega, tekitab suuremaid faile ning võib mõjutada rakenduse töökiirust.",
|
||||
"transcoding_temporal_aq": "Temporal AQ",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Kuupäevavahemik",
|
||||
"day": "Päev",
|
||||
"deduplicate_all": "Dedubleeri kõik",
|
||||
"deduplication_criteria_1": "Pildi suurus baitides",
|
||||
"deduplication_criteria_2": "EXIF andmete hulk",
|
||||
"deduplication_info": "Dedubleerimise info",
|
||||
"deduplication_info_description": "Üksuste automaatsel eelvalimisel ja duplikaatide eemaldamisel võetakse arvesse:",
|
||||
"default_locale": "Vaikimisi lokaat",
|
||||
"default_locale_description": "Vorminda kuupäevad ja numbrid vastavalt brauseri lokaadile",
|
||||
"delete": "Kustuta",
|
||||
|
@ -744,6 +752,7 @@
|
|||
"filetype": "Failitüüp",
|
||||
"filter_people": "Filtreeri isikuid",
|
||||
"find_them_fast": "Leia teda kiiresti nime järgi otsides",
|
||||
"fix_incorrect_match": "Paranda ebaõige vaste",
|
||||
"folders": "Kaustad",
|
||||
"folders_feature_description": "Kaustavaate abil failisüsteemis olevate fotode ja videote sirvimine",
|
||||
"forward": "Edasi",
|
||||
|
@ -751,6 +760,7 @@
|
|||
"get_help": "Küsi abi",
|
||||
"getting_started": "Alustamine",
|
||||
"go_back": "Tagasi",
|
||||
"go_to_folder": "Mine kausta",
|
||||
"go_to_search": "Otsingusse",
|
||||
"group_albums_by": "Grupeeri albumid...",
|
||||
"group_no": "Ära grupeeri",
|
||||
|
@ -1025,6 +1035,7 @@
|
|||
"reassigned_assets_to_existing_person": "{count, plural, one {# üksus} other {# üksust}} seostatud {name, select, null {olemasoleva isikuga} other {isikuga {name}}}",
|
||||
"reassigned_assets_to_new_person": "{count, plural, one {# üksus} other {# üksust}} seostatud uue isikuga",
|
||||
"reassing_hint": "Seosta valitud üksused olemasoleva isikuga",
|
||||
"recent": "Hiljutine",
|
||||
"recent-albums": "Hiljutised albumid",
|
||||
"recent_searches": "Hiljutised otsingud",
|
||||
"refresh": "Värskenda",
|
||||
|
@ -1129,6 +1140,7 @@
|
|||
"server_version": "Serveri versioon",
|
||||
"set": "Määra",
|
||||
"set_as_album_cover": "Sea albumi kaanepildiks",
|
||||
"set_as_featured_photo": "Sea esiletõstetud fotoks",
|
||||
"set_as_profile_picture": "Sea profiilipildiks",
|
||||
"set_date_of_birth": "Määra sünnikuupäev",
|
||||
"set_profile_picture": "Sea profiilipilt",
|
||||
|
@ -1184,6 +1196,7 @@
|
|||
"sort_items": "Üksuste arv",
|
||||
"sort_modified": "Muutmise aeg",
|
||||
"sort_oldest": "Vanim foto",
|
||||
"sort_people_by_similarity": "Sorteeri isikud sarnasuse järgi",
|
||||
"sort_recent": "Uusim foto",
|
||||
"sort_title": "Pealkiri",
|
||||
"source": "Lähtekood",
|
||||
|
@ -1304,6 +1317,7 @@
|
|||
"view_all_users": "Vaata kõiki kasutajaid",
|
||||
"view_in_timeline": "Vaata ajajoonel",
|
||||
"view_links": "Vaata linke",
|
||||
"view_name": "Vaade",
|
||||
"view_next_asset": "Vaata järgmist üksust",
|
||||
"view_previous_asset": "Vaata eelmist üksust",
|
||||
"view_stack": "Vaata virna",
|
||||
|
|
35
i18n/fi.json
35
i18n/fi.json
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"about": "Päivitä",
|
||||
"about": "Tietoja",
|
||||
"account": "Tili",
|
||||
"account_settings": "Tilin asetukset",
|
||||
"acknowledge": "Tiedostan",
|
||||
|
@ -131,7 +131,7 @@
|
|||
"machine_learning_smart_search_description": "Etsi kuvia merkityksellisemmin käyttäen CLIP-upotuksia",
|
||||
"machine_learning_smart_search_enabled": "Ota käyttöön älykäs haku",
|
||||
"machine_learning_smart_search_enabled_description": "Jos ei käytössä, kuvia ei koodata älykkäälle etsinnälle.",
|
||||
"machine_learning_url_description": "Koneoppimispalvelimen URL",
|
||||
"machine_learning_url_description": "Koneoppimispalvelimen URL. MIkäli URL:liä on useampi kuin yksi, järjestelmä yrittää ottaa yhteyden jokaiseen erikseen järjestyksessä ensimmäisestä viimeiseen, kunnes pyyntöön vastataan onnistuneesti.",
|
||||
"manage_concurrency": "Hallitse yhtäaikaisia toimintoja",
|
||||
"manage_log_settings": "Hallitse lokien asetuksia",
|
||||
"map_dark_style": "Tumma teema",
|
||||
|
@ -182,7 +182,7 @@
|
|||
"oauth_auto_register_description": "Rekisteröi uudet OAuth:lla kirjautuvat käyttäjät automaattisesti",
|
||||
"oauth_button_text": "Painikkeen teksti",
|
||||
"oauth_client_id": "Client ID",
|
||||
"oauth_client_secret": "Client Secret",
|
||||
"oauth_client_secret": "Asiakassalaisuusavain",
|
||||
"oauth_enable_description": "Kirjaudu käyttäen OAuthia",
|
||||
"oauth_issuer_url": "Toimitsijan URL",
|
||||
"oauth_mobile_redirect_uri": "Mobiilin uudellenohjaus-URI",
|
||||
|
@ -250,7 +250,16 @@
|
|||
"storage_template_user_label": "<code>{label}</code> on käyttäjän Tallennustilan Tunniste",
|
||||
"system_settings": "Järjestelmäasetukset",
|
||||
"tag_cleanup_job": "Merkintäpuhdistus",
|
||||
"template_email_available_tags": "Voit käyttää seuraavia muuttujia mallissasi: {tags}",
|
||||
"template_email_if_empty": "Jos malli on tyhjä, käytetään oletussähköpostia.",
|
||||
"template_email_invite_album": "Albumikutsun malli",
|
||||
"template_email_preview": "Esikatselu",
|
||||
"template_email_settings": "Sähköpostimalli",
|
||||
"template_email_settings_description": "Hallitse yksilöllisten sähköposti-ilmoitusten malleja",
|
||||
"template_email_update_album": "Albumipäivityksen malli",
|
||||
"template_email_welcome": "Tervetulosähköpostin malli",
|
||||
"template_settings": "Ilmoitusmallit",
|
||||
"template_settings_description": "Hallitse yksilöllisten ilmoitusten malleja.",
|
||||
"theme_custom_css_settings": "Mukautettu CSS",
|
||||
"theme_custom_css_settings_description": "Mukauta Immichin ulkoasua CSS:llä.",
|
||||
"theme_settings": "Teeman asetukset",
|
||||
|
@ -280,11 +289,13 @@
|
|||
"transcoding_constant_rate_factor": "Vakionopeustekijä",
|
||||
"transcoding_constant_rate_factor_description": "Videon laatu. Yleisimmät arvot ovat 23 H.264:lle, 28 HEVC:lle, 31 VP9:lle ja 35 AV1:lle. Matalampi arvo on parempi, mutta tekee isompia tiedostoja.",
|
||||
"transcoding_disabled_description": "Älä muunna videoita. Voi joissakin päätelaitteissa aiheuttaa videotoiston toimimattomuutta",
|
||||
"transcoding_encoding_options": "Enkoodausasetukset",
|
||||
"transcoding_encoding_options_description": "Aseta koodekit, tarkkuus, laatu ja muut asetukset enkoodatuille videoille",
|
||||
"transcoding_hardware_acceleration": "Laitteistokiihdytys",
|
||||
"transcoding_hardware_acceleration_description": "Kokeellinen. Paljon nopeampi, mutta huonompaa laatua samalla bittinopeudella",
|
||||
"transcoding_hardware_decoding": "Laitteiston dekoodaus",
|
||||
"transcoding_hardware_decoding_setting_description": "Ottaa käyttöön end-to-end kiihdytyksen pelkän muuntamisen sijasta. Ei välttämättä toimi kaikissa videoissa.",
|
||||
"transcoding_hevc_codec": "HEVC koodekki",
|
||||
"transcoding_hevc_codec": "HEVC-koodekki",
|
||||
"transcoding_max_b_frames": "B-kehysten enimmäismäärä",
|
||||
"transcoding_max_b_frames_description": "Korkeampi arvo parantaa pakkausta, mutta hidastaa enkoodausta. Ei välttämättä ole yhteensopiva vanhempien laitteiden kanssa. 0 poistaa B-kehykset käytöstä, -1 määrittää arvon automaattisesti.",
|
||||
"transcoding_max_bitrate": "Suurin bittinopeus",
|
||||
|
@ -292,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Suurin avainkehysten väli",
|
||||
"transcoding_max_keyframe_interval_description": "Asettaa avainkehysten välin maksimiarvon. Alempi arvo huonontaa pakkauksen tehoa, mutta parantaa hakuaikoja ja voi parantaa laatua nopealiikkeisissä kohtauksissa. 0 asettaa arvon automaattisesti.",
|
||||
"transcoding_optimal_description": "Videot, joiden resoluutio on korkeampi kuin kohteen, tai ei hyväksytyssä formaatissa",
|
||||
"transcoding_policy": "Transkoodauskäytäntö",
|
||||
"transcoding_policy_description": "Aseta milloin video transkoodataan",
|
||||
"transcoding_preferred_hardware_device": "Ensisijainen laite",
|
||||
"transcoding_preferred_hardware_device_description": "On voimassa vain VAAPI ja QSV -määritteille. Asettaa laitteistokoodauksessa käytetyn DRI noodin.",
|
||||
"transcoding_preset_preset": "Esiasetus (-asetus)",
|
||||
|
@ -300,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Viittaavien kehysten määrä kun tiettyä kehystä pakataan. Korkeampi arvo parantaa pakkausta mutta hidastaa enkoodausta. 0 määrittää arvon automaattisesti.",
|
||||
"transcoding_required_description": "Vain videoille, jotka eivät ole hyväksytyssä muodossa",
|
||||
"transcoding_settings": "Videoiden transkoodausasetukset",
|
||||
"transcoding_settings_description": "Hallitse videoiden resoluutiota ja koodaustietueita",
|
||||
"transcoding_settings_description": "Hallitse, mitkä videot transkoodataan ja miten niitä käsitellään",
|
||||
"transcoding_target_resolution": "Kohderesoluutio",
|
||||
"transcoding_target_resolution_description": "Korkeampi resoluutio on tarkempi, mutta kestää kauemmin enkoodata, vie enemmän tilaa ja voi hidastaa sovelluksen responsiivisuutta.",
|
||||
"transcoding_temporal_aq": "Temporal AQ",
|
||||
|
@ -510,6 +523,10 @@
|
|||
"date_range": "Päivämäärän rajaus",
|
||||
"day": "Päivä",
|
||||
"deduplicate_all": "Poista kaikkien kaksoiskappaleet",
|
||||
"deduplication_criteria_1": "Kuvan koko tavuina",
|
||||
"deduplication_criteria_2": "EXIF-datan määrä",
|
||||
"deduplication_info": "Deduplikaatiotieto",
|
||||
"deduplication_info_description": "Jotta voimme automaattisesti esivalita aineistot ja poistaa duplikaatit suurina erinä, tarkastelemme:",
|
||||
"default_locale": "Oletuskieliasetus",
|
||||
"default_locale_description": "Muotoile päivämäärät ja numerot selaimesi kielen mukaan",
|
||||
"delete": "Poista",
|
||||
|
@ -523,7 +540,7 @@
|
|||
"delete_shared_link": "Poista jaettu linkki",
|
||||
"delete_tag": "Poista tunniste",
|
||||
"delete_tag_confirmation_prompt": "Haluatko varmasti poistaa tunnisteen {tagName}?",
|
||||
"delete_user": "Poista käyttäjä",
|
||||
"delete_user": "Poista käyttäjä pysyvästi",
|
||||
"deleted_shared_link": "Jaettu linkki poistettu",
|
||||
"deletes_missing_assets": "Poistaa levyltä puuttuvat resurssit",
|
||||
"description": "Kuvaus",
|
||||
|
@ -725,6 +742,7 @@
|
|||
"external": "Ulkoisesta",
|
||||
"external_libraries": "Ulkoiset kirjastot",
|
||||
"face_unassigned": "Ei määritelty",
|
||||
"failed_to_load_assets": "Kohteiden lataus epäonnistui",
|
||||
"favorite": "Suosikki",
|
||||
"favorite_or_unfavorite_photo": "Suosikki- tai ei-suosikkikuva",
|
||||
"favorites": "Suosikit",
|
||||
|
@ -745,6 +763,7 @@
|
|||
"get_help": "Hae apua",
|
||||
"getting_started": "Aloittaminen",
|
||||
"go_back": "Palaa",
|
||||
"go_to_folder": "Mene kansioon",
|
||||
"go_to_search": "Siirry hakuun",
|
||||
"group_albums_by": "Ryhmitä albumi...",
|
||||
"group_no": "Ei ryhmitystä",
|
||||
|
@ -1024,6 +1043,7 @@
|
|||
"reassigned_assets_to_new_person": "Määritetty {count, plural, one {# media} other {# mediaa}} uudelle henkilölle",
|
||||
"reassing_hint": "Määritä valitut mediat käyttäjälle",
|
||||
"recent": "Viimeisin",
|
||||
"recent-albums": "Viimeisimmät albumit",
|
||||
"recent_searches": "Edelliset haut",
|
||||
"refresh": "Päivitä",
|
||||
"refresh_encoded_videos": "Päivitä enkoodatut videot",
|
||||
|
@ -1045,6 +1065,7 @@
|
|||
"remove_from_album": "Poista albumista",
|
||||
"remove_from_favorites": "Poista suosikeista",
|
||||
"remove_from_shared_link": "Poista jakolinkistä",
|
||||
"remove_url": "Poista URL",
|
||||
"remove_user": "Poista käyttäjä",
|
||||
"removed_api_key": "API-avain {name} poistettu",
|
||||
"removed_from_archive": "Poistettu arkistosta",
|
||||
|
@ -1129,6 +1150,7 @@
|
|||
"server_version": "Palvelimen versio",
|
||||
"set": "Aseta",
|
||||
"set_as_album_cover": "Aseta albumin kanneksi",
|
||||
"set_as_featured_photo": "Käytä esittelykuvana",
|
||||
"set_as_profile_picture": "Aseta profiilikuvaksi",
|
||||
"set_date_of_birth": "Aseta syntymäaika",
|
||||
"set_profile_picture": "Aseta profiilikuva",
|
||||
|
@ -1184,6 +1206,7 @@
|
|||
"sort_items": "Tietueiden määrä",
|
||||
"sort_modified": "Muokkauspäivä",
|
||||
"sort_oldest": "Vanhin kuva",
|
||||
"sort_people_by_similarity": "Lajittele ihmiset samankaltaisuuden mukaan",
|
||||
"sort_recent": "Tuorein kuva",
|
||||
"sort_title": "Otsikko",
|
||||
"source": "Lähdekoodi",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"about": "I-refresh",
|
||||
"about": "Tungkol sa app na ito",
|
||||
"account": "Account",
|
||||
"account_settings": "Mga Setting ng Account",
|
||||
"acknowledge": "Tanggapin",
|
||||
|
@ -21,5 +21,47 @@
|
|||
"add_to_shared_album": "Idagdag sa shared album",
|
||||
"added_to_archive": "Idinagdag sa archive",
|
||||
"added_to_favorites": "Idinagdag sa mga paborito",
|
||||
"added_to_favorites_count": "Idinagdag ang {count, number} sa mga paborito"
|
||||
"added_to_favorites_count": "Idinagdag ang {count, number} sa mga paborito",
|
||||
"admin": {
|
||||
"asset_offline_description": "Ang external library asset na ito ay hindi na makikita sa disk at nailipat na sa trash. Kung ang file ay nailipat sa loob ng library, tignan ang iyong timeline para sa kaukulang asset. Para maibalik ang asset na ito, siguraduhin na ang file path ay maa-access ng Immich para iscan ang library.",
|
||||
"authentication_settings_disable_all": "Sigurado ka bang gusto mo patayin lahat ng paraan ng pag-login? Ang pag-login ay ganap na idi-disable.",
|
||||
"authentication_settings_reenable": "Para i-enable ulit, gamitin ang <link>Server Command</link>.",
|
||||
"cleared_jobs": "Lahat nang mga trabaho para sa {job} ay tinanggal na",
|
||||
"confirm_delete_library": "Sigurado ka na gusto mo tanggalin ang {library} library?",
|
||||
"confirm_email_below": "Para isigurado, i-type ito sa baba: \"{email}\"",
|
||||
"confirm_user_password_reset": "Sigurado ka na gusto mo i-reset ang password ni {user}?",
|
||||
"disable_login": "I-disable ang login",
|
||||
"force_delete_user_warning": "BABALA: Tatanggalin itong user at lahat ng asset nila, Hindi ito mababawi at ang kanilang files ay hindi na mababalik",
|
||||
"image_format": "Format",
|
||||
"library_import_path_description": "Tukuyin ang folder na i-import. Ang folder na ito, kasama ang subfolders, ay mag sa-scan para sa mga imahe at mga videos.",
|
||||
"note_cannot_be_changed_later": "TANDAAN: Hindi na ito pwede baguhin sa susunod!",
|
||||
"repair_all": "Ayusin lahat",
|
||||
"server_welcome_message_description": "Mensahe na ipapakita sa login page.",
|
||||
"user_restore_description": "Ang account ni <b>{user}</b> ay maibabalik."
|
||||
},
|
||||
"album_user_left": "Umalis sa {album}",
|
||||
"all_albums": "Lahat ng albums",
|
||||
"anti_clockwise": "",
|
||||
"api_key_description": "Isang beses lamang na ipapakita itong value. Siguraduhin na ikopya itong value bago iclose ang window na ito.",
|
||||
"are_these_the_same_person": "Itong tao na ito ay parehas?",
|
||||
"asset_adding_to_album": "Dinadagdag sa album...",
|
||||
"asset_filename_is_offline": "Offline ang asset {filename}",
|
||||
"asset_uploading": "Ina-upload...",
|
||||
"discord": "Discord",
|
||||
"documentation": "Dokumentasyion",
|
||||
"done": "Tapos na",
|
||||
"download": "I-download",
|
||||
"edit": "I-edit",
|
||||
"edited": "Inedit",
|
||||
"editor_close_without_save_title": "Isara ang editor?",
|
||||
"email": "Email",
|
||||
"exif": "Exif",
|
||||
"explore": "I-explore",
|
||||
"export": "I-export",
|
||||
"has_quota": "May quota",
|
||||
"hour": "Oras",
|
||||
"jobs": "Mga trabaho",
|
||||
"language": "Wika",
|
||||
"leave": "Umalis",
|
||||
"no_results": "Walang resulta"
|
||||
}
|
||||
|
|
25
i18n/fr.json
25
i18n/fr.json
|
@ -58,8 +58,8 @@
|
|||
"external_library_created_at": "Bibliothèque externe (créée le {date})",
|
||||
"external_library_management": "Gestion de la bibliothèque externe",
|
||||
"face_detection": "Détection des visages",
|
||||
"face_detection_description": "Détection des visages dans les médias à l'aide de l'apprentissage automatique. Pour les vidéos, seule la miniature est prise en compte. « Actualiser » (re)traite tous les médias. « Réinitialiser » efface en plus toutes les données actuelles de visages. « Manquants » Les visages détectés seront mis en file d'attente pour la reconnaissance faciale. Une fois la détection des visages terminée, les regroupant en personnes existantes ou nouvelles.",
|
||||
"facial_recognition_job_description": "Regrouper les visages détectés en personnes. Cette étape est exécutée une fois la détection des visages terminée. « Rafraichir» (re)regroupe tous les visages. « Manquant» met en file d'attente les visages auxquels aucune personne n'a été attribuée.",
|
||||
"face_detection_description": "Détection des visages dans les médias à l'aide de l'apprentissage automatique. Pour les vidéos, seule la miniature est prise en compte. « Actualiser » (re)traite tous les médias. « Réinitialiser » retraite tous les médias en repartant de zéro. « Manquant » met en file d'attente les médias qui n'ont pas encore été pris en compte. Lorsque la détection est terminée, tous les visages détectés sont ensuite mis en file d'attente pour la reconnaissance faciale.",
|
||||
"facial_recognition_job_description": "Regrouper les visages détectés en personnes. Cette étape est exécutée une fois la détection des visages terminée. « Rafraichir » (re)regroupe tous les visages. « Manquant » met en file d'attente les visages auxquels aucune personne n'a été attribuée.",
|
||||
"failed_job_command": "La commande {command} a échoué pour la tâche : {job}",
|
||||
"force_delete_user_warning": "ATTENTION : Cette opération entraîne la suppression immédiate de l'utilisateur et de tous ses médias. Cette opération ne peut être annulée et les fichiers ne peuvent être récupérés.",
|
||||
"forcing_refresh_library_files": "Forcer le rafraîchissement de tous les fichiers de la bibliothèque",
|
||||
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Facteur de taux constant (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Niveau de qualité vidéo. Les valeurs typiques sont 23 pour H.264, 28 pour HEVC, 31 pour VP9 et 35 pour AV1. Plus la valeur est basse, meilleure est la qualité, mais les fichiers produits sont plus grands.",
|
||||
"transcoding_disabled_description": "Ne pas transcoder les vidéos. Cela peut perturber la lecture sur certains logiciels ou appareils",
|
||||
"transcoding_encoding_options": "Options d'encodage",
|
||||
"transcoding_encoding_options_description": "Configure codecs, résolution, qualité et autres options pour les vidéos encodées",
|
||||
"transcoding_hardware_acceleration": "Accélération matérielle",
|
||||
"transcoding_hardware_acceleration_description": "Expérimental ; beaucoup plus rapide, mais aura une qualité inférieure pour un même débit binaire",
|
||||
"transcoding_hardware_decoding": "Décodage matériel",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Intervalle maximal entre les images clés",
|
||||
"transcoding_max_keyframe_interval_description": "Définit la distance maximale de trames entre les images clés. Les valeurs plus basses diminuent l'efficacité de la compression, mais améliorent les temps de recherche et peuvent améliorer la qualité dans les scènes avec des mouvements rapides. Une valeur de 0 définit automatiquement ce paramètre.",
|
||||
"transcoding_optimal_description": "Les vidéos dont la résolution est supérieure à celle attendue ou celles qui ne sont pas dans un format accepté",
|
||||
"transcoding_policy": "Politique de transcodage",
|
||||
"transcoding_policy_description": "Configure quand une vidéo va être transcodée",
|
||||
"transcoding_preferred_hardware_device": "Matériel préféré",
|
||||
"transcoding_preferred_hardware_device_description": "S'applique uniquement à VAAPI et QSV. Définit le nœud DRI utilisé pour le transcodage matériel.",
|
||||
"transcoding_preset_preset": "Présélection (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Le nombre d'images à prendre en référence lors de la compression d'une image donnée. Des valeurs élevées améliorent l'efficacité de la compression, mais ralentissent l'encodage. 0 fixe cette valeur automatiquement.",
|
||||
"transcoding_required_description": "Seulement les vidéos dans un format non accepté",
|
||||
"transcoding_settings": "Paramètres de transcodage vidéo",
|
||||
"transcoding_settings_description": "Gérer les informations de résolution et d'encodage des fichiers vidéo",
|
||||
"transcoding_settings_description": "Gère quelles vidéos transcoder et comment les traiter",
|
||||
"transcoding_target_resolution": "Résolution cible",
|
||||
"transcoding_target_resolution_description": "Des résolutions plus élevées peuvent préserver plus de détails, mais prennent plus de temps à encoder, ont de plus grandes tailles de fichiers, et peuvent réduire la réactivité de l'application.",
|
||||
"transcoding_temporal_aq": "Quantification adaptative temporelle (temporal AQ)",
|
||||
|
@ -322,7 +326,7 @@
|
|||
"transcoding_transcode_policy_description": "Politique indiquant quand une vidéo doit être transcodée. Les vidéos HDR seront toujours transcodées (sauf si le transcodage est désactivé).",
|
||||
"transcoding_two_pass_encoding": "Encodage en deux passes",
|
||||
"transcoding_two_pass_encoding_setting_description": "Transcoder en deux passes pour produire des vidéos mieux encodées. Lorsque le débit binaire maximum est activé (obligatoire pour qu'il fonctionne avec H.264 et HEVC), ce mode utilise une plage de débit binaire basée sur le débit binaire maximum et ignore le CRF. Pour VP9, CRF peut être utilisé si le débit binaire maximum est désactivé.",
|
||||
"transcoding_video_codec": "Codec Vidéo",
|
||||
"transcoding_video_codec": "Codec vidéo",
|
||||
"transcoding_video_codec_description": "Le codec vidéo VP9 est très efficace et compatible avec le web, mais son transcodage est plus long. HEVC a des performances similaires, mais sa compatibilité web est plus faible. H.264 est largement compatible et rapide à transcoder, mais produit des fichiers beaucoup plus volumineux. AV1 est le codec le plus efficace, mais il n'est pas pris en charge par les anciens appareils.",
|
||||
"trash_enabled_description": "Activer la corbeille",
|
||||
"trash_number_of_days": "Nombre de jours",
|
||||
|
@ -429,7 +433,7 @@
|
|||
"back": "Retour",
|
||||
"back_close_deselect": "Retournez en arrière, fermez ou désélectionnez",
|
||||
"backward": "Arrière",
|
||||
"birthdate_saved": "Date de naissance sauvée avec succès",
|
||||
"birthdate_saved": "Date de naissance enregistrée avec succès",
|
||||
"birthdate_set_description": "La date de naissance est utilisée pour calculer l'âge de cette personne au moment où la photo a été prise.",
|
||||
"blurred_background": "Arrière-plan flouté",
|
||||
"bugs_and_feature_requests": "Bugs & demandes d'évolutions",
|
||||
|
@ -450,7 +454,7 @@
|
|||
"change_date": "Changer la date",
|
||||
"change_expiration_time": "Modifier le délai d'expiration",
|
||||
"change_location": "Changer la localisation",
|
||||
"change_name": "Modifier/Définir le nom",
|
||||
"change_name": "Changer le nom",
|
||||
"change_name_successfully": "Nouveau nom enregistré",
|
||||
"change_password": "Modifier le mot de passe",
|
||||
"change_password_description": "C'est la première fois que vous vous connectez ou une demande a été faite pour changer votre mot de passe. Veuillez entrer le nouveau mot de passe ci-dessous.",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Plage de dates",
|
||||
"day": "Jour",
|
||||
"deduplicate_all": "Dédupliquer tout",
|
||||
"deduplication_criteria_1": "Taille de l'image en octets",
|
||||
"deduplication_criteria_2": "Nombre de données EXIF",
|
||||
"deduplication_info": "Info de déduplication",
|
||||
"deduplication_info_description": "Pour présélectionner automatiquement les médias et supprimer les doublons en masse, nous examinons :",
|
||||
"default_locale": "Région par défaut",
|
||||
"default_locale_description": "Afficher les dates et nombres en fonction des paramètres de votre navigateur",
|
||||
"delete": "Supprimer",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Obtenir de l'aide",
|
||||
"getting_started": "Commencer",
|
||||
"go_back": "Retour",
|
||||
"go_to_folder": "Dossier",
|
||||
"go_to_search": "Faire une recherche",
|
||||
"group_albums_by": "Grouper les albums par...",
|
||||
"group_no": "Pas de groupe",
|
||||
|
@ -1141,8 +1150,9 @@
|
|||
"server_version": "Version du serveur",
|
||||
"set": "Définir",
|
||||
"set_as_album_cover": "Définir comme couverture d'album",
|
||||
"set_as_featured_photo": "Définir comme photo mise en avant",
|
||||
"set_as_profile_picture": "Définir comme photo de profil",
|
||||
"set_date_of_birth": "Définir la date de naissance",
|
||||
"set_date_of_birth": "Changer la date de naissance",
|
||||
"set_profile_picture": "Définir la photo de profil",
|
||||
"set_slideshow_to_fullscreen": "Afficher le diaporama en plein écran",
|
||||
"settings": "Paramètres",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Nombre d'éléments",
|
||||
"sort_modified": "Date de modification",
|
||||
"sort_oldest": "Photo la plus ancienne",
|
||||
"sort_people_by_similarity": "Trier les personnes par similitude",
|
||||
"sort_recent": "Photo la plus récente",
|
||||
"sort_title": "Titre",
|
||||
"source": "Source",
|
||||
|
|
39
i18n/he.json
39
i18n/he.json
|
@ -131,7 +131,7 @@
|
|||
"machine_learning_smart_search_description": "חפש תמונות באופן סמנטי באמצעות הטמעות של CLIP",
|
||||
"machine_learning_smart_search_enabled": "אפשר חיפוש חכם",
|
||||
"machine_learning_smart_search_enabled_description": "אם מושבת, תמונות לא יקודדו לחיפוש חכם.",
|
||||
"machine_learning_url_description": "כתובת האתר של שרת למידת המכונה. אם ניתן יותר מכתובת אחת, כל שרת ינסה בתורו עד אשר יענה בחיוב, בסדר התחלתי.",
|
||||
"machine_learning_url_description": "כתובת האתר של שרת למידת המכונה. אם ניתנת יותר מכתובת אחת, כל שרת ינסה בתורו עד אשר יענה בחיוב, בסדר התחלתי.",
|
||||
"manage_concurrency": "נהל בו-זמניות",
|
||||
"manage_log_settings": "נהל הגדרות רישום ביומן",
|
||||
"map_dark_style": "עיצוב כהה",
|
||||
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "גורם קצב קבוע (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "רמת איכות וידאו. ערכים אופייניים הם הערך 23 עבור H.264, הערך 28 עבור HEVC, הערך 31 עבור VP9, והערך 35 עבור AV1. נמוך יותר הוא טוב יותר, אבל מייצר קבצים גדולים יותר.",
|
||||
"transcoding_disabled_description": "אין להמיר את הקידוד של שום סרטון, עלול לגרום לכך שהניגון לא יפעל במכשירים מסוימים",
|
||||
"transcoding_encoding_options": "אפשרויות קידוד",
|
||||
"transcoding_encoding_options_description": "הגדר מקודדים, רזולוציה, איכות ואפשרויות אחרות עבור הסרטונים המקודדים",
|
||||
"transcoding_hardware_acceleration": "האצת חומרה",
|
||||
"transcoding_hardware_acceleration_description": "ניסיוני; המרה הרבה יותר מהירה, אבל תהיה באיכות נמוכה יותר באותו קצב סיביות",
|
||||
"transcoding_hardware_decoding": "פענוח חומרה",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "מרווח תמונת מפתח מרבי",
|
||||
"transcoding_max_keyframe_interval_description": "מגדיר את מרחק הפריימים המרבי בין תמונות מפתח. ערכים נמוכים גורעים את יעילות הדחיסה, אך משפרים את זמני החיפוש ועשויים לשפר את האיכות בסצנות עם תנועה מהירה. 0 מגדיר ערך זה באופן אוטומטי.",
|
||||
"transcoding_optimal_description": "סרטונים גבוהים מרזולוציית היעד או לא בפורמט מקובל",
|
||||
"transcoding_policy": "מדיניות המרה",
|
||||
"transcoding_policy_description": "הגדר מתי סרטון יעבור המרת קידוד",
|
||||
"transcoding_preferred_hardware_device": "מכשיר חומרה מועדף",
|
||||
"transcoding_preferred_hardware_device_description": "חל רק על VAAPI ו-QSV. מגדיר את צומת ה-dri המשמש להמרת קידוד של חומרה.",
|
||||
"transcoding_preset_preset": "הגדרות קבועות מראש (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "מספר הפריימים לייחוס בעת דחיסה של פריים נתון. ערכים גבוהים יותר משפרים את יעילות הדחיסה, אך מאטים את הקידוד. 0 מגדיר את הערך זה באופן אוטומטי.",
|
||||
"transcoding_required_description": "רק סרטונים שאינם בפורמט מקובל",
|
||||
"transcoding_settings": "הגדרות המרת קידוד סרטונים",
|
||||
"transcoding_settings_description": "נהל את הרזולוציה ומידע הקידוד של קבצי הסרטונים",
|
||||
"transcoding_settings_description": "נהל אילו סרטונים להמיר וכיצד לעבד אותם",
|
||||
"transcoding_target_resolution": "רזולוציה יעד",
|
||||
"transcoding_target_resolution_description": "רזולוציות גבוהות יותר יכולות לשמר פרטים רבים יותר אך לוקחות זמן רב יותר לקידוד, יש להן גדלי קבצים גדולים יותר, ויכולות להפחית את תגובתיות היישום.",
|
||||
"transcoding_temporal_aq": "Temporal AQ",
|
||||
|
@ -322,7 +326,7 @@
|
|||
"transcoding_transcode_policy_description": "מדיניות לגבי מתי יש להמיר קידוד של סרטון. תמיד יומר הקידוד של סרטוני HDR (למעט אם המרת קידוד מושבתת).",
|
||||
"transcoding_two_pass_encoding": "קידוד בשני מעברים",
|
||||
"transcoding_two_pass_encoding_setting_description": "המר קידוד בשני מעברים כדי לייצר סרטונים מקודדים טוב יותר. כאשר קצב סיביות מרבי מופעל (נדרש כדי שזה יעבוד עם H.264 ו-HEVC), מצב זה משתמש בטווח קצב סיביות המבוסס על קצב הסיביות המרבי ומתעלם מ-CRF. עבור VP9, ניתן להשתמש ב-CRF אם קצב סיביות מרבי מושבת.",
|
||||
"transcoding_video_codec": "קידוד סרטון",
|
||||
"transcoding_video_codec": "מקודד סרטון",
|
||||
"transcoding_video_codec_description": "ל-VP9 יש יעילות גבוהה ותאימות רשת, אבל לוקח יותר זמן להמיר את הקידוד עבורו. HEVC מתפקד באופן דומה, אך בעל תאימות רשת נמוכה יותר. H.264 תואם באופן נרחב ומהיר להמיר את קידודו, אבל הוא מייצר קבצים גדולים בהרבה. AV1 הוא הקידוד היעיל ביותר אך לוקה בתמיכה במכשירים ישנים יותר.",
|
||||
"trash_enabled_description": "הפעל את תכונות האשפה",
|
||||
"trash_number_of_days": "מספר הימים",
|
||||
|
@ -434,7 +438,7 @@
|
|||
"blurred_background": "רקע מטושטש",
|
||||
"bugs_and_feature_requests": "באגים & בקשות לתכונות",
|
||||
"build": "Build",
|
||||
"build_image": "Build Image",
|
||||
"build_image": "גרסת תוכנה",
|
||||
"bulk_delete_duplicates_confirmation": "האם את/ה בטוח/ה שברצונך למחוק בכמות גדולה {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה ישמור על הנכס הכי גדול של כל קבוצה וימחק לצמיתות את כל שאר הכפילויות. את/ה לא יכול/ה לבטל את הפעולה הזו!",
|
||||
"bulk_keep_duplicates_confirmation": "האם את/ה בטוח/ה שברצונך להשאיר {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה יפתור את כל הקבוצות הכפולות מבלי למחוק דבר.",
|
||||
"bulk_trash_duplicates_confirmation": "האם את/ה בטוח/ה שברצונך להעביר לאשפה בכמות גדולה {count, plural, one {נכס # כפול} other {# נכסים כפולים}}? זה ישמור על הנכס הגדול ביותר של כל קבוצה ויעביר לאשפה את כל שאר הכפילויות.",
|
||||
|
@ -518,12 +522,16 @@
|
|||
"date_of_birth_saved": "תאריך לידה נשמר בהצלחה",
|
||||
"date_range": "טווח תאריכים",
|
||||
"day": "יום",
|
||||
"deduplicate_all": "בטל כפילויות של הכל",
|
||||
"default_locale": "אזור שפה ברירת מחדל",
|
||||
"default_locale_description": "עצב תאריכים ומספרים על סמך אזור השפה של הדפדפן שלך",
|
||||
"deduplicate_all": "ביטול כל הכפילויות",
|
||||
"deduplication_criteria_1": "גודל תמונה בבתים",
|
||||
"deduplication_criteria_2": "ספירת נתוני EXIF",
|
||||
"deduplication_info": "מידע על ביטול כפילויות",
|
||||
"deduplication_info_description": "כדי לבחור מראש נכסים באופן אוטומטי ולהסיר כפילויות בכמות גדולה, אנו מסתכלים על:",
|
||||
"default_locale": "שפת ברירת מחדל",
|
||||
"default_locale_description": "פורמט תאריכים ומספרים מבוסס שפת הדפדפן שלך",
|
||||
"delete": "מחק",
|
||||
"delete_album": "מחק אלבום",
|
||||
"delete_api_key_prompt": "האם את/ה בטוח/ה שברצונך למחוק מפתח API זה?",
|
||||
"delete_api_key_prompt": "האם את/ה בטוח/ה שברצונך למחוק מפתח ה-API הזה?",
|
||||
"delete_duplicates_confirmation": "האם את/ה בטוח/ה שברצונך למחוק לצמיתות את הכפילויות האלה?",
|
||||
"delete_key": "מחק מפתח",
|
||||
"delete_library": "מחק ספרייה",
|
||||
|
@ -540,13 +548,13 @@
|
|||
"direction": "כיוון",
|
||||
"disabled": "מושבת",
|
||||
"disallow_edits": "אל תאפשר עריכות",
|
||||
"discord": "דיסקורד",
|
||||
"discover": "גלה",
|
||||
"dismiss_all_errors": "התעלם מכל השגיאות",
|
||||
"dismiss_error": "התעלם מהשגיאה",
|
||||
"display_options": "הצג אפשרויות",
|
||||
"discord": "Discord",
|
||||
"discover": "גילוי",
|
||||
"dismiss_all_errors": "התעלמות מכל השגיאות",
|
||||
"dismiss_error": "התעלמות מהשגיאה",
|
||||
"display_options": "הצגת אפשרויות",
|
||||
"display_order": "סדר תצוגה",
|
||||
"display_original_photos": "הצג תמונות מקוריות",
|
||||
"display_original_photos": "הצגת תמונות מקוריות",
|
||||
"display_original_photos_setting_description": "העדף להציג את התמונה המקורית בעת צפיית נכס במקום תמונות ממוזערות כאשר הנכס המקורי תומך בתצוגה בדפדפן. זה עלול לגרום לתמונות להיות מוצגות באיטיות.",
|
||||
"do_not_show_again": "אל תציג את ההודעה הזאת שוב",
|
||||
"documentation": "תיעוד",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "קבל עזרה",
|
||||
"getting_started": "תחילת העבודה",
|
||||
"go_back": "חזור",
|
||||
"go_to_folder": "עבור לתיקיה",
|
||||
"go_to_search": "עבור לחיפוש",
|
||||
"group_albums_by": "קבץ אלבומים לפי..",
|
||||
"group_no": "אין קיבוץ",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "גרסת שרת",
|
||||
"set": "הגדר",
|
||||
"set_as_album_cover": "הגדר כעטיפת האלבום",
|
||||
"set_as_featured_photo": "הגדר כתמונה מוצגת",
|
||||
"set_as_profile_picture": "הגדר כתמונת פרופיל",
|
||||
"set_date_of_birth": "הגדר תאריך לידה",
|
||||
"set_profile_picture": "הגדר תמונת פרופיל",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "מספר פריטים",
|
||||
"sort_modified": "תאריך שינוי",
|
||||
"sort_oldest": "תמונה הכי ישנה",
|
||||
"sort_people_by_similarity": "מיין אנשים לפי דמיון",
|
||||
"sort_recent": "תמונה אחרונה ביותר",
|
||||
"sort_title": "כותרת",
|
||||
"source": "מקור",
|
||||
|
|
|
@ -1076,6 +1076,7 @@
|
|||
"user_purchase_settings": "खरीदना",
|
||||
"user_purchase_settings_description": "अपनी खरीदारी प्रबंधित करें",
|
||||
"user_usage_detail": "उपयोगकर्ता उपयोग विवरण",
|
||||
"user_usage_stats_description": "खाता उपयोग सांख्यिकी देखें",
|
||||
"username": "उपयोगकर्ता नाम",
|
||||
"users": "उपयोगकर्ताओं",
|
||||
"utilities": "उपयोगिताओं",
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
"add_to": "Dodaj u...",
|
||||
"add_to_album": "Dodaj u album",
|
||||
"add_to_shared_album": "Dodaj u dijeljeni album",
|
||||
"add_url": "Dodaj URL",
|
||||
"added_to_archive": "Dodano u arhivu",
|
||||
"added_to_favorites": "Dodano u omiljeno",
|
||||
"added_to_favorites_count": "Dodano {count, number} u omiljeno",
|
||||
|
@ -130,7 +131,7 @@
|
|||
"machine_learning_smart_search_description": "Pretražujte slike semantički koristeći CLIP ugradnje",
|
||||
"machine_learning_smart_search_enabled": "Omogući pametno pretraživanje",
|
||||
"machine_learning_smart_search_enabled_description": "Ako je onemogućeno, slike neće biti kodirane za pametno pretraživanje.",
|
||||
"machine_learning_url_description": "URL poslužitelja strojnog učenja",
|
||||
"machine_learning_url_description": "URL poslužitelja strojnog učenja. Ako ste dodali više od jednog URLa, svaki server će biti kontaktiraj jedanput dok jedan ne odgovori uspješno, u redu od prvog do zadnjeg.",
|
||||
"manage_concurrency": "Upravljanje Istovremenošću",
|
||||
"manage_log_settings": "Upravljanje postavkama zapisivanje",
|
||||
"map_dark_style": "Tamni stil",
|
||||
|
@ -249,6 +250,7 @@
|
|||
"storage_template_user_label": "<code>{label}</code> je korisnička oznaka za pohranu",
|
||||
"system_settings": "Postavke Sustava",
|
||||
"tag_cleanup_job": "Čišćenje oznaka",
|
||||
"template_email_available_tags": "Možete koristiti sljedeće varijable u vašem predlošku:{tags}",
|
||||
"theme_custom_css_settings": "Prilagođeni CSS",
|
||||
"theme_custom_css_settings_description": "Kaskadni listovi stilova (CSS) omogućuju prilagođavanje dizajna Immicha.",
|
||||
"theme_settings": "Postavke tema",
|
||||
|
|
19
i18n/hu.json
19
i18n/hu.json
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"about": "Frissítés",
|
||||
"about": "Az Immich-ről",
|
||||
"account": "Fiók",
|
||||
"account_settings": "Fiók Beállítások",
|
||||
"acknowledge": "Megértettem",
|
||||
|
@ -29,7 +29,7 @@
|
|||
"added_to_favorites_count": "{count, number} hozzáadva a kedvencekhez",
|
||||
"admin": {
|
||||
"add_exclusion_pattern_description": "Kihagyási minták (pattern) megadása. A *, ** és ? helyettesítő karakterek engedélyezettek. Pl. a \"Raw\" könyvtárban tárolt összes fájl kihagyásához használható a \"**/Raw/**\". Minden \".tif\" fájl kihagyása az összes mappában: \"**/*.tif\". Abszolút elérési útvonal kihagyása: \"/kihagyni/kivant/mappa/**\".",
|
||||
"asset_offline_description": "Ez a külső képtárban lévő elem már nem található, ezért a lomtárba került. Ha a fájl a képtáron belül lett áthelyezve, akkor ellenőrizd, hogy továbbra is látható az idővonaladon. Az elem visszaállításához győződj meg róla, hogy az alábbi mappa az Immich számára elérhető, majd újra átfésültesd át a képtárat.",
|
||||
"asset_offline_description": "Ez a külső képtárban lévő elem már nem található, ezért a lomtárba került. Ha a fájl a képtáron belül lett áthelyezve, akkor ellenőrizd, hogy továbbra is látható az idővonaladon. Az elem visszaállításához győződj meg róla, hogy az alábbi mappa az Immich számára elérhető, majd újra fésüld át a képtárat.",
|
||||
"authentication_settings": "Hitelesítési beállítások",
|
||||
"authentication_settings_description": "Jelszó, OAuth és egyéb hitelesítési beállítások kezelése",
|
||||
"authentication_settings_disable_all": "Biztosan letiltod az összes bejelentkezési módot? A bejelentkezés teljesen le lesz tiltva.",
|
||||
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Állandó ráta tényező (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Videó minőségi szint. Tipikus értékek kodekenként: H.264: 23, HEVC: 28, VP9: 31, AV1: 35. Minél alacsonyabb, annál jobb minőséget eredményez, viszont nagyobb fájlmérettel is jár.",
|
||||
"transcoding_disabled_description": "Ne kódolja át a videókat. Néhány kliensnél nem lejátszható videókhoz vezethet",
|
||||
"transcoding_encoding_options": "Enkódolás beállítások",
|
||||
"transcoding_encoding_options_description": "Beállíthatod az enkódolt videók kódolási algoritmusát, felbontását, minőségét és egyéb beállításait",
|
||||
"transcoding_hardware_acceleration": "Hardveres Gyorsítás",
|
||||
"transcoding_hardware_acceleration_description": "Kísérleti funkció. Sokkal gyorsabb, viszont azonos bitrátán is alacsonyabb minőséghez vezet",
|
||||
"transcoding_hardware_decoding": "Hardveres dekódolás",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Maximum kulcskocka intervallum",
|
||||
"transcoding_max_keyframe_interval_description": "Beállítja a kulcskockák közötti legnagyobb lehetséges távolságot. Alacsony érték csökkenti a tömörítési hatékonyságot, de lejátszás közben az előre- és hátratekerés gyorsabb, valamint javíthatja a gyorsan mozgó jelenetek képminőségét. 0 esetén a szoftver magának állítja be az értéket.",
|
||||
"transcoding_optimal_description": "A célfelbontásnál nagyobb vagy a nem elfogadott formátumú videókat",
|
||||
"transcoding_policy": "Átkódolási irányelvek",
|
||||
"transcoding_policy_description": "Beállíthatod, hogy egy videó mikor legyen átkódolva",
|
||||
"transcoding_preferred_hardware_device": "Átkódoláshoz preferált hardver eszköz",
|
||||
"transcoding_preferred_hardware_device_description": "Csak VAAPI vagy QSV esetén. Beállítja a hardveres átkódoláshoz használt DRI node-ot.",
|
||||
"transcoding_preset_preset": "Előre Beállított (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "A hivatkozott képkockák száma egy képkocka tömörítéséhez. Magasabb értékek növelik a tömörítési hatékonyságot, de lelassítják a kódolási folyamatot. 0 esetén a szoftver magának állítja be az értéket.",
|
||||
"transcoding_required_description": "Csak az el nem fogadott formátumú videókat",
|
||||
"transcoding_settings": "Videó Átkódolási Beállítások",
|
||||
"transcoding_settings_description": "Videófájlok felbontásának és kódolásának kezelése",
|
||||
"transcoding_settings_description": "Beállíthatod, hogy mely videókat kell átkódolni és hogyan kell feldolgozni őket",
|
||||
"transcoding_target_resolution": "Célfelbontás",
|
||||
"transcoding_target_resolution_description": "A magasabb felbontás jobb minőségben őrzi meg a részleteket, de tovább tart létrehozni, nagyobb fájlmérethez vezet és belassíthatja az alkalmazást.",
|
||||
"transcoding_temporal_aq": "Időbeli (Temporal) AQ",
|
||||
|
@ -322,7 +326,7 @@
|
|||
"transcoding_transcode_policy_description": "Videó átkódolási szabályzat . HDR videók mindig átkódolásra kerülnek (kivéve, ha az átkódolás ki van kapcsolva).",
|
||||
"transcoding_two_pass_encoding": "Átkódolás két menetben",
|
||||
"transcoding_two_pass_encoding_setting_description": "A két menetben átkódolt videók jobb minőségűek lesznek. Ha engedélyezve van a bitráta maximalizálása (amely szükséges a H.264 és a HEVC használatakor), ez a funkció figyelmen kívül hagyja a CRF-et. VP9 használata esetén a CRF használható, ha a bitráta nincs maximalizálva (azaz ki van kapcsolva).",
|
||||
"transcoding_video_codec": "Videó Kodek",
|
||||
"transcoding_video_codec": "Videó kodek",
|
||||
"transcoding_video_codec_description": "VP9 hatékonyabb és kompatibilisebb webre, de tovább tart az átkódolás. HEVC hasonló teljesítményű, de több web kompatibilitási problémát okozhat. H.264 széles körben kompatibilis és gyors az átkódolása, de sokkal nagyobb fájlokat készít. AV1 a leghatékonyabb kodek, de régebbi eszközök nem támogatják.",
|
||||
"trash_enabled_description": "Lomtár engedélyezése",
|
||||
"trash_number_of_days": "Napok száma",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Dátum intervallum",
|
||||
"day": "Nap",
|
||||
"deduplicate_all": "Az Összes Deduplikálása",
|
||||
"deduplication_criteria_1": "Kép mérete bájtokban",
|
||||
"deduplication_criteria_2": "EXIF adatok mennyisége",
|
||||
"deduplication_info": "Deduplikációs Infó",
|
||||
"deduplication_info_description": "Az automatikus előválogatáshoz és a duplikátumok tömeges eltávolításához a következőket vizsgáljuk:",
|
||||
"default_locale": "Alapértelmezett Területi Beállítás",
|
||||
"default_locale_description": "Dátumok és számok formázása a böngésződ területi beállítása alapján",
|
||||
"delete": "Törlés",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Segítségkérés",
|
||||
"getting_started": "Kezdő Lépések",
|
||||
"go_back": "Visszalépés",
|
||||
"go_to_folder": "Ugrás a mappához",
|
||||
"go_to_search": "Ugrás a kereséshez",
|
||||
"group_albums_by": "Albumok csoportosítása...",
|
||||
"group_no": "Nincs csoportosítás",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Szerver Verzió",
|
||||
"set": "Beállít",
|
||||
"set_as_album_cover": "Beállítás albumborítóként",
|
||||
"set_as_featured_photo": "Beállítás kiemelt fotónak",
|
||||
"set_as_profile_picture": "Beállítás profilképként",
|
||||
"set_date_of_birth": "Születési dátum beállítása",
|
||||
"set_profile_picture": "Profilkép beállítása",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Elemek száma",
|
||||
"sort_modified": "Módosítás dátuma",
|
||||
"sort_oldest": "Legrégebbi fénykép",
|
||||
"sort_people_by_similarity": "Emberek hasonlóság szerinti rendezése",
|
||||
"sort_recent": "Legújabb fénykép",
|
||||
"sort_title": "Cím",
|
||||
"source": "Forrás",
|
||||
|
|
15
i18n/id.json
15
i18n/id.json
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Faktor kecepatan konstan (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Tingkat kualitas video. Nilai umum adalah 23 untuk H.264, 28 untuk HEVC, 31 untuk VP9, dan 35 untuk AV1. Lebih rendah lebih baik, tetapi menghasilkan berkas yang lebih besar.",
|
||||
"transcoding_disabled_description": "Jangan transkode video apa pun, dapat merusak pemutaran pada beberapa klien",
|
||||
"transcoding_encoding_options": "Opsi Pengodean",
|
||||
"transcoding_encoding_options_description": "Atur kodek, resolusi, kualitas dan opsi lainnya untuk video terenkode",
|
||||
"transcoding_hardware_acceleration": "Akselerasi Perangkat Keras",
|
||||
"transcoding_hardware_acceleration_description": "Uji coba; lebih cepat, tetapi akan memiliki kualitas lebih rendah pada kecepatan bit yang sama",
|
||||
"transcoding_hardware_decoding": "Dekode perangkat keras",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Interval bingkai kunci maksimum",
|
||||
"transcoding_max_keyframe_interval_description": "Menetapkan jarak bingkai maksimum antara bingkai kunci. Nilai yang lebih rendah membuat efisiensi kompresi lebih buruk, tetapi meningkatkan waktu pencarian dan dapat meningkatkan kualitas dalam adegan dengan gerakan cepat. 0 menetapkan nilai ini secara otomatis.",
|
||||
"transcoding_optimal_description": "Video lebih tinggi dari resolusi sasaran atau tidak dalam format yang diterima",
|
||||
"transcoding_policy": "Kebijakan Transkode",
|
||||
"transcoding_policy_description": "Atur kapan video ditranskode",
|
||||
"transcoding_preferred_hardware_device": "Perangkat keras yang lebih disukai",
|
||||
"transcoding_preferred_hardware_device_description": "Hanya diterapkan pada VAAPI dan QSV. Menetapkan node dri yang digunakan untuk transkode perangkat keras.",
|
||||
"transcoding_preset_preset": "Prasetel (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Jumlah bingkai untuk direferensikan ketika mengompres bingkai tertentu. Nilai lebih tinggi meningkatkan efisiensi kompresi, tetapi membuat pengodean lambat. 0 menetapkan nilai ini secara otomatis.",
|
||||
"transcoding_required_description": "Hanya video dalam format yang tidak diterima",
|
||||
"transcoding_settings": "Pengaturan Transkode Video",
|
||||
"transcoding_settings_description": "Kelola resolusi dan informasi pengodean dari berkas video",
|
||||
"transcoding_settings_description": "Kelola video mana saja untuk dienkode dan cara memprosesnya",
|
||||
"transcoding_target_resolution": "Resolusi sasaran",
|
||||
"transcoding_target_resolution_description": "Resolusi yang lebih tinggi dapat menjaga lebih banyak detail tetapi memerlukan waktu lebih lama untuk dienkode, memiliki ukuran berkas yang lebih besar, dan dapat mengurangi respons aplikasi.",
|
||||
"transcoding_temporal_aq": "AQ Temporal",
|
||||
|
@ -322,7 +326,7 @@
|
|||
"transcoding_transcode_policy_description": "Kebijakan untuk kapan sebuah video harus ditranskode. Video HDR akan selalu ditranskode (kecuali jika transkode dinonaktifkan).",
|
||||
"transcoding_two_pass_encoding": "Pengodean dua arah",
|
||||
"transcoding_two_pass_encoding_setting_description": "Transkode dalam dua arah untuk menghasilkan video yang ditranskode dengan lebih baik. Ketika kecepatan bit maksimum diaktifkan (diperlukan supaya bekerja dengan H.264 dan HEVC), mode ini menggunakan jangka kecepatan bit berdasarkan kecepatan bit maksimum dan mengabaikan CRF. Untuk VP9, CRF dapat digunakan jika kecepatan bit maksimum dinonaktifkan.",
|
||||
"transcoding_video_codec": "Kodek Video",
|
||||
"transcoding_video_codec": "Kodek video",
|
||||
"transcoding_video_codec_description": "VP9 memiliki efisiensi dan kompatibilitas web tinggi, tetapi memerlukan waktu yang lebih lama untuk ditranskode. HEVC berkinerja serupa, tetapi memiliki kompatibilitas web yang lebih rendah. H.264 sangat kompatibel dan cepat untuk ditranskode, tetapi menghasilkan berkas yang lebih besar. AV1 adalah kodek yang paling efisien tetapi tidak didukung pada perangkat lawas.",
|
||||
"trash_enabled_description": "Aktifkan fitur Sampah",
|
||||
"trash_number_of_days": "Jumlah hari",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Jangka tanggal",
|
||||
"day": "Hari",
|
||||
"deduplicate_all": "Deduplikat Semua",
|
||||
"deduplication_criteria_1": "Ukuran gambar dalam bita",
|
||||
"deduplication_criteria_2": "Hitungan data EXIF",
|
||||
"deduplication_info": "Info deduplikasi",
|
||||
"deduplication_info_description": "Untuk memilih aset secara otomatis dan menghapus duplikat secara massal, kami melihat:",
|
||||
"default_locale": "Lokal Bawaan",
|
||||
"default_locale_description": "Format tanggal dan angka berdasarkan lokal peramban Anda",
|
||||
"delete": "Hapus",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Dapatkan Bantuan",
|
||||
"getting_started": "Memulai",
|
||||
"go_back": "Kembali",
|
||||
"go_to_folder": "Pergi ke folder",
|
||||
"go_to_search": "Pergi ke pencarian",
|
||||
"group_albums_by": "Kelompokkan album berdasarkan...",
|
||||
"group_no": "Tidak ada pengelompokan",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Versi Server",
|
||||
"set": "Atur",
|
||||
"set_as_album_cover": "Atur sebagai kover album",
|
||||
"set_as_featured_photo": "Tetapkan sebagai foto unggulan",
|
||||
"set_as_profile_picture": "Atur sebagai foto profil",
|
||||
"set_date_of_birth": "Atur tanggal lahir",
|
||||
"set_profile_picture": "Tetapkan foto profil",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Jumlah item",
|
||||
"sort_modified": "Tanggal diubah",
|
||||
"sort_oldest": "Foto terlawas",
|
||||
"sort_people_by_similarity": "Urutkan orang berdasarkan kemiripan",
|
||||
"sort_recent": "Foto paling terkini",
|
||||
"sort_title": "Judul",
|
||||
"source": "Sumber",
|
||||
|
|
19
i18n/it.json
19
i18n/it.json
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Fattore di rateo costante (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Livello di qualità video. I valori tipici sono 23 per H.264, 28 per HEVC, 31 per VP9 e 35 per AV1. Un valore inferiore indica una qualità migliore, ma produce file di dimensioni maggiori.",
|
||||
"transcoding_disabled_description": "Non transcodificare alcun video, potrebbe rompere la riproduzione su alcuni client",
|
||||
"transcoding_encoding_options": "Opzioni di codifica",
|
||||
"transcoding_encoding_options_description": "Imposta codecs, risoluzione, qualità ed altre opzioni per i video codificati",
|
||||
"transcoding_hardware_acceleration": "Accelerazione Hardware",
|
||||
"transcoding_hardware_acceleration_description": "Sperimentale; molto più veloce, ma avrà una qualità inferiore allo stesso bitrate",
|
||||
"transcoding_hardware_decoding": "Decodifica hardware",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Intervallo massimo dei keyframe",
|
||||
"transcoding_max_keyframe_interval_description": "Imposta la distanza massima tra i keyframe. Valori più bassi peggiorano l'efficienza di compressione, però migliorano i tempi di ricerca e possono migliorare la qualità nelle scene con movimenti rapidi. 0 imposta questo valore automaticamente.",
|
||||
"transcoding_optimal_description": "Video con risoluzione più alta rispetto alla risoluzione desiderata o in formato non accettato",
|
||||
"transcoding_policy": "Politiche di transcodifica",
|
||||
"transcoding_policy_description": "Imposta quando un video sarà transcodificato",
|
||||
"transcoding_preferred_hardware_device": "Dispositivo hardware preferito",
|
||||
"transcoding_preferred_hardware_device_description": "Si applica solo a VAAPI e QSV. Imposta il nodo DRI utilizzato per la transcodifica hardware.",
|
||||
"transcoding_preset_preset": "Preset (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Il numero di frame da prendere in considerazione nel comprimere un determinato frame. Valori più alti migliorano l'efficienza di compressione, ma rallentano la codifica. 0 imposta questo valore automaticamente.",
|
||||
"transcoding_required_description": "Solo video che non sono in un formato accettato",
|
||||
"transcoding_settings": "Impostazioni Trascodifica Video",
|
||||
"transcoding_settings_description": "Gestisci le impostazioni di risoluzione e codifica dei file video",
|
||||
"transcoding_settings_description": "Gestisci quali video transcodificare e come processarli",
|
||||
"transcoding_target_resolution": "Risoluzione desiderata",
|
||||
"transcoding_target_resolution_description": "Risoluzioni più elevate possono preservare più dettagli ma richiedono più tempo per la codifica, producono file di dimensioni maggiori e possono ridurre la reattività dell'applicazione.",
|
||||
"transcoding_temporal_aq": "AQ temporale",
|
||||
|
@ -322,7 +326,7 @@
|
|||
"transcoding_transcode_policy_description": "Politica che determina quando un video deve essere trascodificato. I video HDR verranno sempre trascodificati (eccetto quando la trascodifica è disabilitata).",
|
||||
"transcoding_two_pass_encoding": "Codifica a due passaggi",
|
||||
"transcoding_two_pass_encoding_setting_description": "Trascodifica in due passaggi per produrre video codificati migliori. Quando il bitrate massimo è abilitato (necessario affinché funzioni con H.264 e HEVC), questa modalità utilizza un intervallo di bitrate basato sul bitrate massimo e ignora CRF. Per VP9, CRF può essere utilizzato se il bitrate massimo è disabilitato.",
|
||||
"transcoding_video_codec": "Codifica Video",
|
||||
"transcoding_video_codec": "Codec video",
|
||||
"transcoding_video_codec_description": "VP9 ha alta efficienza e compatibilità web, ma richiede più tempo per la trascodifica. HEVC ha prestazioni simili, ma una minore compatibilità web. H.264 è ampiamente compatibile e veloce da transcodificare, ma produce file molto più grandi. AV1 è il codec più efficiente, ma non è supportato sui dispositivi più vecchi.",
|
||||
"trash_enabled_description": "Abilita Funzionalità Cestino",
|
||||
"trash_number_of_days": "Numero di giorni",
|
||||
|
@ -519,14 +523,18 @@
|
|||
"date_range": "Intervallo di date",
|
||||
"day": "Giorno",
|
||||
"deduplicate_all": "De-duplica Tutti",
|
||||
"deduplication_criteria_1": "Dimensione immagine in byte",
|
||||
"deduplication_criteria_2": "Numero di dati EXIF",
|
||||
"deduplication_info": "Informazioni di deduplicazione",
|
||||
"deduplication_info_description": "Per preselezionare automaticamente gli asset e rimuovere i duplicati in massa, verifichiamo:",
|
||||
"default_locale": "Localizzazione preimpostata",
|
||||
"default_locale_description": "Formatta la data e i numeri in base al locale del tuo browser",
|
||||
"default_locale_description": "Formatta la data e i numeri in base alle impostazioni del tuo browser",
|
||||
"delete": "Elimina",
|
||||
"delete_album": "Elimina album",
|
||||
"delete_api_key_prompt": "Sei sicuro di voler eliminare questa chiave API?",
|
||||
"delete_duplicates_confirmation": "Sei sicuro di voler eliminare questi duplicati per sempre?",
|
||||
"delete_key": "Elimina chiave",
|
||||
"delete_library": "Elimina Libreria",
|
||||
"delete_library": "Elimina libreria",
|
||||
"delete_link": "Elimina link",
|
||||
"delete_others": "Elimina gli altri",
|
||||
"delete_shared_link": "Elimina link condiviso",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Chiedi Aiuto",
|
||||
"getting_started": "Iniziamo",
|
||||
"go_back": "Torna indietro",
|
||||
"go_to_folder": "Vai alla cartella",
|
||||
"go_to_search": "Vai alla ricerca",
|
||||
"group_albums_by": "Raggruppa album in base a...",
|
||||
"group_no": "Nessun raggruppamento",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Versione Server",
|
||||
"set": "Imposta",
|
||||
"set_as_album_cover": "Imposta come copertina album",
|
||||
"set_as_featured_photo": "Imposta come immagine in primo piano",
|
||||
"set_as_profile_picture": "Imposta come foto profilo",
|
||||
"set_date_of_birth": "Imposta data di nascita",
|
||||
"set_profile_picture": "Imposta foto profilo",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Numero di elementi",
|
||||
"sort_modified": "Data modifica",
|
||||
"sort_oldest": "Foto più vecchia",
|
||||
"sort_people_by_similarity": "Ordina persone per somiglianza",
|
||||
"sort_recent": "Foto più recente",
|
||||
"sort_title": "Titolo",
|
||||
"source": "Fonte",
|
||||
|
|
|
@ -1145,7 +1145,7 @@
|
|||
"stop_photo_sharing": "写真の共有を無効化しますか?",
|
||||
"stop_photo_sharing_description": "{partner} はあなたの写真にアクセスできなくなります。",
|
||||
"stop_sharing_photos_with_user": "このユーザーとの写真の共有をやめる",
|
||||
"storage": "ストレージの空き容量",
|
||||
"storage": "ストレージ使用量",
|
||||
"storage_label": "ストレージラベル",
|
||||
"storage_usage": "{available} 中 {used} 使用中",
|
||||
"submit": "送信",
|
||||
|
@ -1222,6 +1222,8 @@
|
|||
"user_purchase_settings_description": "購入を管理",
|
||||
"user_role_set": "{user} を{role}に設定しました",
|
||||
"user_usage_detail": "ユーザー使用状況の詳細",
|
||||
"user_usage_stats": "アカウント利用状況統計",
|
||||
"user_usage_stats_description": "アカウント利用状況統計を表示",
|
||||
"username": "ユーザー名",
|
||||
"users": "ユーザー",
|
||||
"utilities": "ユーティリティ",
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
"add_to": "앨범에 추가...",
|
||||
"add_to_album": "앨범에 추가",
|
||||
"add_to_shared_album": "공유 앨범에 추가",
|
||||
"add_url": "URL 추가",
|
||||
"added_to_archive": "보관함에 추가되었습니다.",
|
||||
"added_to_favorites": "즐겨찾기에 추가되었습니다.",
|
||||
"added_to_favorites_count": "즐겨찾기에 항목 {count, number}개 추가됨",
|
||||
|
@ -222,6 +223,8 @@
|
|||
"send_welcome_email": "환영 이메일 전송",
|
||||
"server_external_domain_settings": "외부 도메인",
|
||||
"server_external_domain_settings_description": "공개 공유 링크에 사용할 도메인 (http(s):// 포함)",
|
||||
"server_public_users": "공공 사용자",
|
||||
"server_public_users_description": "공유 앨범에 사용자를 추가할 경우 모든 사용자(이름, 이메일)가 나열됩니다. 비활성화 할 경우, 관리자만이 사용자 목록을 사용할 수 있습니다.",
|
||||
"server_settings": "서버 설정",
|
||||
"server_settings_description": "서버 설정 관리",
|
||||
"server_welcome_message": "환영 메시지",
|
||||
|
|
242
i18n/lt.json
242
i18n/lt.json
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"about": "Atnaujinti",
|
||||
"about": "Apie",
|
||||
"account": "Paskyra",
|
||||
"account_settings": "Paskyros nustatymai",
|
||||
"acknowledge": "Patvirtinti",
|
||||
|
@ -28,8 +28,9 @@
|
|||
"added_to_favorites": "Pridėta prie mėgstamiausių",
|
||||
"added_to_favorites_count": "{count, plural, one {# pridėtas} few {# pridėti} other {# pridėta}} prie mėgstamiausių",
|
||||
"admin": {
|
||||
"asset_offline_description": "Šis išorinės bibliotekos elementas nebepasiekiamas diske ir buvo perkeltas į šiukšliadėžę. Jei failas buvo perkeltas toje pačioje bibliotekoje, laiko skalėje rasite naują atitinkamą elementą. Jei norite šį elementą atkurti, įsitikinkite, kad Immich gali pasiekti failą žemiau nurodytu adresu, ir suvykdykite bibliotekos skanavimą.",
|
||||
"authentication_settings": "Autentifikavimo nustatymai",
|
||||
"authentication_settings_description": "Tvarkyti slaptažodžių, OAuth ir kitus autentifikavimo parametrus",
|
||||
"authentication_settings_description": "Tvarkyti slaptažodžių, OAuth ir kitus autentifikavimo nustatymus",
|
||||
"authentication_settings_disable_all": "Ar tikrai norite išjungti visus prisijungimo būdus? Prisijungimas bus visiškai išjungtas.",
|
||||
"authentication_settings_reenable": "Norėdami vėl įjungti, naudokite <link>Serverio komandą</link>.",
|
||||
"background_task_job": "Foninės užduotys",
|
||||
|
@ -37,14 +38,20 @@
|
|||
"backup_database_enable_description": "Įgalinti duomenų bazės atsarginė kopijas",
|
||||
"backup_keep_last_amount": "Išsaugomų ankstesnių atsarginių duomenų bazės kopijų skaičius",
|
||||
"backup_settings": "Atsarginės kopijos nustatymai",
|
||||
"backup_settings_description": "Tvarkyti duomenų bazės atsarginės kopijos nustatymus",
|
||||
"check_all": "Pažymėti viską",
|
||||
"config_set_by_file": "Konfigūracija dabar nustatyta konfigūracinio failo",
|
||||
"cleared_jobs": "Išvalyti darbai: {job}",
|
||||
"config_set_by_file": "Konfigūracija nustatyta pagal konfigūracinį failą",
|
||||
"confirm_delete_library": "Ar tikrai norite ištrinti {library} biblioteką?",
|
||||
"confirm_delete_library_assets": "Ar tikrai norite ištrinti šią biblioteką? Šis veiksmas ištrins {count, plural, one {# contained asset} other {all # contained assets}} iš Immich ir negali būti grąžintas. Failai liks diske.",
|
||||
"confirm_email_below": "Patvirtinimui įveskite \"{email}\" žemiau",
|
||||
"confirm_reprocess_all_faces": "Ar tikrai norite iš naujo apdoroti visus veidus? Tai taip pat ištrins įvardytus asmenis.",
|
||||
"confirm_user_password_reset": "Ar tikrai norite iš naujo nustatyti {user} slaptažodį?",
|
||||
"create_job": "Sukurti darbą",
|
||||
"cron_expression": "Cron išraiška",
|
||||
"cron_expression_description": "Nustatyti skanavimo intervalą naudojant cron formatą. Norėdami gauti daugiau informacijos žiūrėkite <link>Crontab Guru</link>",
|
||||
"disable_login": "Išjungti prisijungimą",
|
||||
"duplicate_detection_job_description": "Vykdykite mašininį mokymąsi tam, kad aptiktumėte panašius vaizdus. Nuo šios funkcijos priklauso išmanioji paieška",
|
||||
"duplicate_detection_job_description": "Vykdykite mašininį mokymąsi panašių vaizdų aptikimui. Priklauso nuo išmaniosios paieškos",
|
||||
"exclusion_pattern_description": "Išimčių šablonai leidžia nepaisyti failų ir aplankų skenuojant jūsų biblioteką. Tai yra naudinga, jei turite aplankų su failais, kurių nenorite importuoti, pavyzdžiui, RAW failai.",
|
||||
"external_library_created_at": "Išorinė biblioteka (sukurta {date})",
|
||||
"external_library_management": "Išorinių bibliotekų tvarkymas",
|
||||
|
@ -53,18 +60,26 @@
|
|||
"facial_recognition_job_description": "Aptiktų veidų atpažinimas ir priskyrimas žmonėms. Šis darbas vykdomas pasibaigus \"veidų aptikimo\" darbui. \"Atstatyti\" (per)grupuoja visus aptiktus veidus. \"Trūkstami\" apdoroja jokiam žmogui dar nepriskirtus aptiktus veidus.",
|
||||
"failed_job_command": "Darbo {job} komanda {command} nepavyko",
|
||||
"force_delete_user_warning": "ĮSPĖJIMAS: Šis veiksmas iš karto pašalins naudotoją ir visą jo informaciją. Šis žingsnis nesugrąžinamas ir failų nebus galima atkurti.",
|
||||
"forcing_refresh_library_files": "Priverstinai atnaujinami visi failai bilbiotekoje",
|
||||
"forcing_refresh_library_files": "Priverstinai atnaujinami visi failai bibliotekoje",
|
||||
"image_format": "Formatas",
|
||||
"image_format_description": "WebP sukuria mažesnius failus nei JPEG, bet lėčiau juos apdoroja.",
|
||||
"image_prefer_embedded_preview": "Pageidautinai rodyti įterptą peržiūrą",
|
||||
"image_prefer_embedded_preview_setting_description": "",
|
||||
"image_prefer_wide_gamut": "Teikti pirmenybę plačiai gamai",
|
||||
"image_prefer_wide_gamut_setting_description": "",
|
||||
"image_preview_description": "Vidutinio dydžio vaizdas su išvalytais metaduomenimis, naudojamas kai žiūrimas vienas objektas arba mašininiam mokymuisi",
|
||||
"image_preview_quality_description": "Peržiūros kokybė nuo 1-100. Aukštesnės reikšmės yra geriau, bet sukuriami didesni failai gali sumažinti programos reagavimo laiką. Mažos vertės nustatymas gali paveikti mašininio mokymo kokybę.",
|
||||
"image_preview_title": "Peržiūros nustatymai",
|
||||
"image_quality": "Kokybė",
|
||||
"image_resolution": "Rezoliucija",
|
||||
"image_resolution_description": "Didesnės rezoliucijos gali išsaugoti daugiau detalių, bet ilgiau užtrunka užkoduoti, failai yra didesni ir programos reagavimo laikas gali sumažėti.",
|
||||
"image_settings": "Nuotraukos nustatymai",
|
||||
"image_settings_description": "Keisti sugeneruotų nuotraukų kokybę ir rezoliuciją",
|
||||
"image_thumbnail_description": "Maža miniatiūra su išvalytais metaduomenimis, naudojama kai žiūrima nuotraukų grupės, kaip pagrindinėje laiko juostoje",
|
||||
"image_thumbnail_quality_description": "Miniatiūros kokybė nuo 1-100. Aukštesnės reikšmės yra geriau, bet pagaminami didesni failai ir gali būti sulėtintas programos reagavimo greitis.",
|
||||
"image_thumbnail_title": "Miniatiūros nustatymai",
|
||||
"job_concurrency": "{job} lygiagretumas",
|
||||
"job_created": "Darbas sukurtas",
|
||||
"job_not_concurrency_safe": "Šis darbas nėra saugus apdoroti lygiagrečiai.",
|
||||
"job_settings": "Darbų nustatymai",
|
||||
"job_settings_description": "Keisti darbų lygiagretumą",
|
||||
|
@ -78,17 +93,17 @@
|
|||
"library_settings": "Išorinė biblioteka",
|
||||
"library_settings_description": "Tvarkyti išorinės bibliotekos parametrus",
|
||||
"library_tasks_description": "Atlikit bibliotekos užduotis",
|
||||
"library_watching_enable_description": "",
|
||||
"library_watching_settings": "",
|
||||
"library_watching_settings_description": "",
|
||||
"logging_enable_description": "",
|
||||
"logging_level_description": "",
|
||||
"logging_settings": "",
|
||||
"library_watching_enable_description": "Stebėti išorines bibliotekas dėl failų pakeitimų",
|
||||
"library_watching_settings": "Bibliotekų stebėjimas (EKSPERIMENTINIS)",
|
||||
"library_watching_settings_description": "Automatiškai stebėti dėl pakeistų failų",
|
||||
"logging_enable_description": "Įjungti žurnalo vedimą",
|
||||
"logging_level_description": "Įjungus, kokį žurnalo vedimo lygį naudot.",
|
||||
"logging_settings": "Žurnalo vedimas",
|
||||
"machine_learning_clip_model": "CLIP modelis",
|
||||
"machine_learning_duplicate_detection": "Dublikatų aptikimas",
|
||||
"machine_learning_duplicate_detection_enabled": "Įjungti dublikatų aptikimą",
|
||||
"machine_learning_duplicate_detection_enabled_description": "",
|
||||
"machine_learning_duplicate_detection_setting_description": "",
|
||||
"machine_learning_duplicate_detection_setting_description": "Naudoti CLIP įterpimus, norint rasti galimus duplikatus",
|
||||
"machine_learning_enabled": "Įgalinti mašininį mokymąsi",
|
||||
"machine_learning_enabled_description": "Jei išjungta, visos „ML“ funkcijos bus išjungtos, nepaisant toliau pateiktų nustatymų.",
|
||||
"machine_learning_facial_recognition": "Veidų atpažinimas",
|
||||
|
@ -96,28 +111,29 @@
|
|||
"machine_learning_facial_recognition_model": "Veidų atpažinimo modelis",
|
||||
"machine_learning_facial_recognition_model_description": "",
|
||||
"machine_learning_facial_recognition_setting": "Įgalinti veidų atpažinimą",
|
||||
"machine_learning_facial_recognition_setting_description": "",
|
||||
"machine_learning_facial_recognition_setting_description": "Išjungus, vaizdai nebus užšifruoti veidų atpažinimui ir nebus naudojami Žmonių sekcijoje Naršymo puslapyje.",
|
||||
"machine_learning_max_detection_distance": "Maksimalus aptikimo atstumas",
|
||||
"machine_learning_max_detection_distance_description": "Didžiausias atstumas tarp dviejų vaizdų, kad jie būtų laikomi dublikatais, svyruoja nuo 0,001 iki 0,1. Didesnės vertės aptiks daugiau dublikatų, tačiau gali būti klaidingai teigiami.",
|
||||
"machine_learning_max_recognition_distance": "Maksimalus atpažinimo atstumas",
|
||||
"machine_learning_max_recognition_distance_description": "",
|
||||
"machine_learning_min_detection_score": "",
|
||||
"machine_learning_min_detection_score": "Minimalus aptikimo balas",
|
||||
"machine_learning_min_detection_score_description": "",
|
||||
"machine_learning_min_recognized_faces": "Mažiausias atpažintų veidų skaičius",
|
||||
"machine_learning_min_recognized_faces_description": "Mažiausias atpažintų veidų skaičius asmeniui, kurį reikia sukurti. Tai padidinus, veido atpažinimas tampa tikslesnis, bet padidėja tikimybė, kad veidas žmogui nepriskirtas.",
|
||||
"machine_learning_settings": "Mašininio mokymosi nustatymai",
|
||||
"machine_learning_settings_description": "Tvarkyti mašininio mokymosi funkcijas ir nustatymus",
|
||||
"machine_learning_smart_search": "Išmanioji paieška",
|
||||
"machine_learning_smart_search_description": "",
|
||||
"machine_learning_smart_search_description": "Semantiškai ieškoti vaizdų naudojant CLIP įtarpius",
|
||||
"machine_learning_smart_search_enabled": "Įjungti išmaniąją paiešką",
|
||||
"machine_learning_smart_search_enabled_description": "Jei išjungta, vaizdai nebus užkoduoti išmaniajai paieškai.",
|
||||
"machine_learning_url_description": "Mašininio mokymosi serverio URL",
|
||||
"machine_learning_url_description": "Mašininio mokymosi serverio URL. Jei pateikta daugiau nei vienas URL, serveriai bus bandomi eilės tvarka nuo pirmo iki paskutinio tol, kol bus rastas vienas veikiantis serveris.",
|
||||
"manage_concurrency": "Tvarkyti lygiagretumą",
|
||||
"manage_log_settings": "",
|
||||
"manage_log_settings": "Valdyti žurnalo nuostatas",
|
||||
"map_dark_style": "Tamsioji tema",
|
||||
"map_enable_description": "Įgalinti žemėlapio funkcijas",
|
||||
"map_gps_settings": "Žemėlapio ir GPS nustatymai",
|
||||
"map_gps_settings_description": "Tvarkyti žemėlapio ir GPS (atvirkštinio geokodavimo) nustatymus",
|
||||
"map_implications": "Žemėlapio funkcija naudojasi išoriniu plytelių servisu (tiles.immich.cloud)",
|
||||
"map_light_style": "Šviesioji tema",
|
||||
"map_manage_reverse_geocoding_settings": "Tvarkyti <link>atvirkštinio geokodavimo</link> nustatymus",
|
||||
"map_reverse_geocoding": "Atvirkštinis geokodavimas",
|
||||
|
@ -125,47 +141,54 @@
|
|||
"map_reverse_geocoding_settings": "Atvirkštinio geokodavimo nustatymai",
|
||||
"map_settings": "Žemėlapis",
|
||||
"map_settings_description": "Tvarkyti žemėlapio parametrus",
|
||||
"map_style_description": "",
|
||||
"map_style_description": "URL į style.json žemėlapio temą",
|
||||
"metadata_extraction_job": "Metaduomenų nuskaitymas",
|
||||
"metadata_extraction_job_description": "Kiekvieno bibliotekos elemento metaduomenų nuskaitymas, tokių kaip GPS koordinatės, veidai ar rezoliucija",
|
||||
"metadata_faces_import_setting": "Įjungti veidų importą",
|
||||
"metadata_faces_import_setting_description": "Importuoti veidus iš vaizdo EXIF duomenų ir papildomų failų",
|
||||
"metadata_settings": "Metaduomenų nustatymai",
|
||||
"metadata_settings_description": "Tvarkyti metaduomenų nustatymus",
|
||||
"migration_job": "Migracija",
|
||||
"migration_job_description": "",
|
||||
"no_paths_added": "Keliai nepridėti",
|
||||
"no_pattern_added": "Šablonas nepridėtas",
|
||||
"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!",
|
||||
"notification_email_from_address": "",
|
||||
"notification_email_from_address_description": "",
|
||||
"notification_email_host_description": "",
|
||||
"note_unlimited_quota": "Pastaba: įveskite 0 norint neribotos kvotos",
|
||||
"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_host_description": "Elektroninio pašto serverio savininkas (pvz. smtp.immich.app)",
|
||||
"notification_email_ignore_certificate_errors": "Nepaisyti sertifikatų klaidų",
|
||||
"notification_email_ignore_certificate_errors_description": "Nepaisyti TLS sertifikato patvirtinimo klaidų (nerekomenduojama)",
|
||||
"notification_email_password_description": "",
|
||||
"notification_email_password_description": "Slaptažodis, naudojant autentikacijai su elektroninio pašto serveriu",
|
||||
"notification_email_port_description": "El. pašto serverio prievadas (pvz. 25, 465 arba 587)",
|
||||
"notification_email_sent_test_email_button": "Siųsti bandomąjį el. laišką ir išsaugoti",
|
||||
"notification_email_setting_description": "El. pašto pranešimų siuntimo nustatymai",
|
||||
"notification_email_test_email": "Išsiųsti bandomąjį el. laišką",
|
||||
"notification_email_test_email_failed": "Nepavyko išsiųsti bandomojo el. laiško, patikrinkite savo nustatymus",
|
||||
"notification_email_test_email_sent": "Bandomasis el. laiškas buvo išsiųstas į {email}. Patikrinkite savo pašto dėžutę.",
|
||||
"notification_email_username_description": "",
|
||||
"notification_email_username_description": "Vartotojo vardas, naudojant autentikacijai su elektroninio pašto serveriu",
|
||||
"notification_enable_email_notifications": "Įgalinti el. pašto pranešimus",
|
||||
"notification_settings": "Pranešimų nustatymai",
|
||||
"notification_settings_description": "Tvarkyti pranešimų nustatymus, įskaitant el. pašto",
|
||||
"oauth_auto_launch": "Paleisti automatiškai",
|
||||
"oauth_auto_launch_description": "",
|
||||
"oauth_auto_register": "",
|
||||
"oauth_auto_register_description": "",
|
||||
"oauth_auto_launch_description": "Prisijungimo puslapyje automatiškai pradėti OAuth prisijungimo procesą",
|
||||
"oauth_auto_register": "Automatinis registravimas",
|
||||
"oauth_auto_register_description": "Automatiškai užregistruoti naujus naudotojus po prisijungimo per OAuth",
|
||||
"oauth_button_text": "Mygtuko tekstas",
|
||||
"oauth_client_id": "Kliento ID",
|
||||
"oauth_client_secret": "Kliento paslaptis",
|
||||
"oauth_enable_description": "Prisijungti su OAuth",
|
||||
"oauth_issuer_url": "",
|
||||
"oauth_mobile_redirect_uri": "",
|
||||
"oauth_mobile_redirect_uri_override": "",
|
||||
"oauth_mobile_redirect_uri_override_description": "",
|
||||
"oauth_scope": "",
|
||||
"oauth_settings": "",
|
||||
"oauth_issuer_url": "Teikėjo URL",
|
||||
"oauth_mobile_redirect_uri": "Mobiliojo peradresavimo URI",
|
||||
"oauth_mobile_redirect_uri_override": "Mobiliojo peradresavimo URI pakeitimas",
|
||||
"oauth_mobile_redirect_uri_override_description": "Įjunkite, kai OAuth teikėjas nepalaiko mobiliojo URI, tokio kaip '{callback}'",
|
||||
"oauth_profile_signing_algorithm": "Profilio registracijos algoritmas",
|
||||
"oauth_profile_signing_algorithm_description": "Algoritmas naudojamas vartotojo profilio registracijai.",
|
||||
"oauth_scope": "Apimtis",
|
||||
"oauth_settings": "OAuth",
|
||||
"oauth_settings_description": "Tvarkyti OAuth prisijungimo nustatymus",
|
||||
"oauth_settings_more_details": "Detaliau apie šią funkciją galite paskaityti <link>dokumentacijoje</link>.",
|
||||
"oauth_signing_algorithm": "",
|
||||
"oauth_storage_label_claim": "",
|
||||
"oauth_storage_label_claim_description": "",
|
||||
|
@ -173,6 +196,7 @@
|
|||
"oauth_storage_quota_claim_description": "",
|
||||
"oauth_storage_quota_default": "",
|
||||
"oauth_storage_quota_default_description": "",
|
||||
"offline_paths": "Nepasiekiami adresai",
|
||||
"offline_paths_description": "Šie rezultatai gali būti dėl rankinio failų ištrynimo, kurie nėra išorinės bibliotekos dalis.",
|
||||
"password_enable_description": "Prisijungti su el. paštu ir slaptažodžiu",
|
||||
"password_settings": "Prisijungimas slaptažodžiu",
|
||||
|
@ -187,13 +211,13 @@
|
|||
"reset_settings_to_recent_saved": "Nustatymų atstatymas į neseniai išsaugotus nustatymus",
|
||||
"send_welcome_email": "Siųsti sveikinimo el. laišką",
|
||||
"server_external_domain_settings": "Išorinis domenas",
|
||||
"server_external_domain_settings_description": "",
|
||||
"server_external_domain_settings_description": "Bendrinimo nuorodų domenas, įskaitant http(s)://",
|
||||
"server_settings": "Serverio nustatymai",
|
||||
"server_settings_description": "Tvarkyti serverio nustatymus",
|
||||
"server_welcome_message": "Sveikinimo pranešimas",
|
||||
"server_welcome_message_description": "Žinutė, rodoma prisijungimo puslapyje.",
|
||||
"sidecar_job_description": "",
|
||||
"slideshow_duration_description": "",
|
||||
"slideshow_duration_description": "Sekundžių skaičius, kiek viena nuotrauka rodoma",
|
||||
"smart_search_job_description": "Vykdykite mašininį mokymąsi bibliotekos elementų išmaniajai paieškai",
|
||||
"storage_template_enable_description": "",
|
||||
"storage_template_hash_verification_enabled": "",
|
||||
|
@ -269,6 +293,7 @@
|
|||
"trash_settings": "Šiukšliadėžės nustatymai",
|
||||
"trash_settings_description": "Tvarkyti šiukšliadėžės nustatymus",
|
||||
"untracked_files": "Nesekami failai",
|
||||
"untracked_files_description": "Šie failai aplikacijos nesekami. Jie galėjo atsirasti dėl nepavykusio perkėlimo, nutraukto įkėlimo ar palikti per klaidą",
|
||||
"user_delete_delay_settings": "Ištrynimo delsa",
|
||||
"user_delete_delay_settings_description": "",
|
||||
"user_management": "Naudotojų valdymas",
|
||||
|
@ -328,7 +353,9 @@
|
|||
"asset_added_to_album": "Pridėta į albumą",
|
||||
"asset_adding_to_album": "Pridedama į albumą...",
|
||||
"asset_description_updated": "Elemento aprašymas buvo atnaujintas",
|
||||
"asset_offline": "",
|
||||
"asset_filename_is_offline": "Elementas {filename} nepasiekiamas",
|
||||
"asset_offline": "Elementas nepasiekiamas",
|
||||
"asset_offline_description": "Šis išorinis elementas neberandamas diske. Dėl pagalbos susisiekite su savo Immich administratoriumi.",
|
||||
"asset_uploaded": "Įkelta",
|
||||
"asset_uploading": "Įkeliama...",
|
||||
"assets": "Elementai",
|
||||
|
@ -339,6 +366,7 @@
|
|||
"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_removed_count": "{count, plural, one {Pašalintas # elementas} few {Pašalinti # elementai} other {Pašalinta # elementų}}",
|
||||
"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_were_part_of_album_count": "{count, plural, one {# elementas} few {# elementai} other {# elementų}} jau prieš tai buvo albume",
|
||||
"authorized_devices": "Autorizuoti įrenginiai",
|
||||
|
@ -348,6 +376,9 @@
|
|||
"birthdate_saved": "Sėkmingai išsaugota gimimo data",
|
||||
"blurred_background": "Neryškus fonas",
|
||||
"bugs_and_feature_requests": "Klaidų ir funkcijų užklausos",
|
||||
"bulk_delete_duplicates_confirmation": "Ar tikrai norite ištrinti visus {count, plural, one {# besidubliuojantį elementą} few {# besidubliuojančius elementus} other {# besidubliuojančių elementų}}? Bus paliktas didžiausias kiekvienos grupės elementas ir negrįžtamai ištrinti kiti besidubliuojantys elementai. Šio veiksmo atšaukti negalėsite!",
|
||||
"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.",
|
||||
"buy": "Įsigyti Immich",
|
||||
"camera": "Fotoaparatas",
|
||||
"camera_brand": "Fotoaparato prekės ženklas",
|
||||
|
@ -382,7 +413,7 @@
|
|||
"comments_are_disabled": "Komentarai yra išjungti",
|
||||
"confirm": "Patvirtinti",
|
||||
"confirm_admin_password": "Patvirtinti administratoriaus slaptažodį",
|
||||
"confirm_delete_shared_link": "Ar tikrai norite ištrinti šią bendrinamą nuorodą?",
|
||||
"confirm_delete_shared_link": "Ar tikrai norite ištrinti šią bendrinimo nuorodą?",
|
||||
"confirm_password": "Patvirtinti slaptažodį",
|
||||
"contain": "",
|
||||
"context": "Kontekstas",
|
||||
|
@ -422,6 +453,11 @@
|
|||
"date_of_birth_saved": "Gimimo data sėkmingai išsaugota",
|
||||
"date_range": "",
|
||||
"day": "Diena",
|
||||
"deduplicate_all": "Šalinti visus dublikatus",
|
||||
"deduplication_criteria_1": "Failo dydis baitais",
|
||||
"deduplication_criteria_2": "EXIF metaduomenų įrašų skaičius",
|
||||
"deduplication_info": "Dublikatų šalinimo informacija",
|
||||
"deduplication_info_description": "Automatinis elementų parinkimas ir masinis dublikatų šalinimas atliekamas atsižvelgiant į:",
|
||||
"default_locale": "",
|
||||
"default_locale_description": "Formatuoti datas ir skaičius pagal jūsų naršyklės lokalę",
|
||||
"delete": "Ištrinti",
|
||||
|
@ -431,11 +467,11 @@
|
|||
"delete_key": "Ištrinti raktą",
|
||||
"delete_library": "Ištrinti biblioteką",
|
||||
"delete_link": "Ištrinti nuorodą",
|
||||
"delete_shared_link": "Ištrinti bendrinamą nuorodą",
|
||||
"delete_shared_link": "Ištrinti bendrinimo nuorodą",
|
||||
"delete_tag": "Ištrinti žymą",
|
||||
"delete_tag_confirmation_prompt": "Ar tikrai norite ištrinti žymą {tagName}?",
|
||||
"delete_user": "Ištrinti naudotoją",
|
||||
"deleted_shared_link": "Bendrinama nuoroda ištrinta",
|
||||
"deleted_shared_link": "Bendrinimo nuoroda ištrinta",
|
||||
"description": "Aprašymas",
|
||||
"details": "Detalės",
|
||||
"direction": "Kryptis",
|
||||
|
@ -455,6 +491,7 @@
|
|||
"download_settings": "Atsisiųsti",
|
||||
"downloading": "Siunčiama",
|
||||
"duplicates": "Dublikatai",
|
||||
"duplicates_description": "Sutvarkykite kiekvieną elementų grupę nurodydami elementus, kurie yra dublikatai (jei tokių yra)",
|
||||
"duration": "Trukmė",
|
||||
"edit": "Redaguoti",
|
||||
"edit_album": "Redaguoti albumą",
|
||||
|
@ -492,8 +529,8 @@
|
|||
"error_removing_assets_from_album": "Klaida šalinant elementus iš albumo, patikrinkite konsolę dėl išsamesnės informacijos",
|
||||
"exclusion_pattern_already_exists": "Šis išimčių šablonas jau egzistuoja.",
|
||||
"failed_to_create_album": "Nepavyko sukurti albumo",
|
||||
"failed_to_create_shared_link": "Nepavyko sukurti bendrinamos nuorodos",
|
||||
"failed_to_edit_shared_link": "Nepavyko redaguoti bendrinamos nuorodos",
|
||||
"failed_to_create_shared_link": "Nepavyko sukurti bendrinimo nuorodos",
|
||||
"failed_to_edit_shared_link": "Nepavyko redaguoti bendrinimo nuorodos",
|
||||
"failed_to_load_people": "Nepavyko užkrauti žmonių",
|
||||
"failed_to_remove_product_key": "Nepavyko pašalinti produkto rakto",
|
||||
"failed_to_stack_assets": "Nepavyko sugrupuoti elementų",
|
||||
|
@ -503,6 +540,7 @@
|
|||
"profile_picture_transparent_pixels": "Profilio nuotrauka negali turėti permatomų pikselių. Prašome priartinti ir/arba perkelkite nuotrauką.",
|
||||
"quota_higher_than_disk_size": "Nustatyta kvota, viršija disko dydį",
|
||||
"unable_to_add_album_users": "Nepavyksta pridėti naudotojų prie albumo",
|
||||
"unable_to_add_assets_to_shared_link": "Nepavyko į bendrinimo nuorodą pridėti elementų",
|
||||
"unable_to_add_comment": "Nepavyksta pridėti komentaro",
|
||||
"unable_to_add_exclusion_pattern": "Nepavyksta pridėti išimčių šablono",
|
||||
"unable_to_add_import_path": "Nepavyksta pridėti importavimo kelio",
|
||||
|
@ -511,6 +549,7 @@
|
|||
"unable_to_change_date": "Negalima pakeisti datos",
|
||||
"unable_to_change_location": "Negalima pakeisti vietos",
|
||||
"unable_to_change_password": "Negalima pakeisti slaptažodžio",
|
||||
"unable_to_complete_oauth_login": "Nepavyko prisijungti su OAuth",
|
||||
"unable_to_connect": "Nepavyko prisijungti",
|
||||
"unable_to_connect_to_server": "Nepavyko prisijungti prie serverio",
|
||||
"unable_to_copy_to_clipboard": "Negalima kopijuoti į iškarpinę, įsitikinkite, kad prie puslapio prieinate per https",
|
||||
|
@ -522,45 +561,48 @@
|
|||
"unable_to_delete_asset": "",
|
||||
"unable_to_delete_exclusion_pattern": "Nepavyksta ištrinti išimčių šablono",
|
||||
"unable_to_delete_import_path": "Nepavyksta ištrinti importavimo kelio",
|
||||
"unable_to_delete_shared_link": "Nepavyksta ištrinti bendrinimo nuorodos",
|
||||
"unable_to_delete_shared_link": "Nepavyko ištrinti bendrinimo nuorodos",
|
||||
"unable_to_delete_user": "Nepavyksta ištrinti naudotojo",
|
||||
"unable_to_edit_exclusion_pattern": "Nepavyksta redaguoti išimčių šablono",
|
||||
"unable_to_edit_import_path": "Nepavyksta redaguoti išimčių kelio",
|
||||
"unable_to_empty_trash": "",
|
||||
"unable_to_enter_fullscreen": "Nepavyksta pereiti į viso ekrano režimą",
|
||||
"unable_to_exit_fullscreen": "Nepavyksta išeiti iš viso ekrano režimo",
|
||||
"unable_to_get_shared_link": "Nepavyksta gauti bendrinamos nuorodos",
|
||||
"unable_to_get_shared_link": "Nepavyko gauti bendrinimo nuorodos",
|
||||
"unable_to_hide_person": "Nepavyksta paslėpti žmogaus",
|
||||
"unable_to_link_oauth_account": "Nepavyko susieti su OAuth paskyra",
|
||||
"unable_to_load_album": "Nepavyksta užkrauti albumo",
|
||||
"unable_to_load_asset_activity": "",
|
||||
"unable_to_load_items": "",
|
||||
"unable_to_load_liked_status": "",
|
||||
"unable_to_log_out_all_devices": "Nepavyksta atjungti visų įrenginių",
|
||||
"unable_to_log_out_device": "Nepavyksta atjungti įrenginio",
|
||||
"unable_to_login_with_oauth": "Nepavyksta prisijungti su OAuth",
|
||||
"unable_to_login_with_oauth": "Nepavyko prisijungti su OAuth",
|
||||
"unable_to_play_video": "Nepavyksta paleisti vaizdo įrašo",
|
||||
"unable_to_refresh_user": "Nepavyksta atnaujinti naudotojo",
|
||||
"unable_to_remove_album_users": "",
|
||||
"unable_to_remove_api_key": "Nepavyko pašalinti API rakto",
|
||||
"unable_to_remove_assets_from_shared_link": "Nepavyko iš bendrinimo nuorodos pašalinti elementų",
|
||||
"unable_to_remove_deleted_assets": "Nepavyko pašalinti nepasiekiamų elementų",
|
||||
"unable_to_remove_library": "Nepavyksta pašalinti bibliotekos",
|
||||
"unable_to_remove_partner": "Nepavyksta pašalinti partnerio",
|
||||
"unable_to_remove_reaction": "Nepavyksta pašalinti reakcijos",
|
||||
"unable_to_repair_items": "",
|
||||
"unable_to_reset_password": "",
|
||||
"unable_to_resolve_duplicate": "",
|
||||
"unable_to_resolve_duplicate": "Nepavyko sutvarkyti dublikatų",
|
||||
"unable_to_restore_assets": "",
|
||||
"unable_to_restore_trash": "",
|
||||
"unable_to_restore_user": "",
|
||||
"unable_to_save_album": "",
|
||||
"unable_to_save_name": "",
|
||||
"unable_to_save_profile": "",
|
||||
"unable_to_save_profile": "Nepavyko išsaugoti profilio",
|
||||
"unable_to_save_settings": "Nepavyksta išsaugoti nustatymų",
|
||||
"unable_to_scan_libraries": "Nepavyksta nuskaityti bibliotekų",
|
||||
"unable_to_scan_library": "Nepavyksta nuskaityti bibliotekos",
|
||||
"unable_to_set_feature_photo": "Nepavyksta nustatyti mėgstamiausios nuotraukos",
|
||||
"unable_to_set_profile_picture": "Nepavyksta nustatyti profilio nuotraukos",
|
||||
"unable_to_submit_job": "",
|
||||
"unable_to_trash_asset": "",
|
||||
"unable_to_trash_asset": "Nepavyko perkelti į šiukšliadėžę",
|
||||
"unable_to_unlink_account": "",
|
||||
"unable_to_update_library": "",
|
||||
"unable_to_update_location": "",
|
||||
|
@ -569,7 +611,7 @@
|
|||
"unable_to_upload_file": "Nepavyksta įkelti failo"
|
||||
},
|
||||
"exif": "Exif",
|
||||
"exit_slideshow": "",
|
||||
"exit_slideshow": "Išeiti iš skaidrių peržiūros",
|
||||
"expand_all": "Išskleisti viską",
|
||||
"expire_after": "",
|
||||
"expired": "Nebegalioja",
|
||||
|
@ -581,10 +623,12 @@
|
|||
"external": "Išorinis",
|
||||
"external_libraries": "Išorinės bibliotekos",
|
||||
"face_unassigned": "Nepriskirta",
|
||||
"favorite": "Mėgstamiausi",
|
||||
"favorite": "Mėgstamiausias",
|
||||
"favorite_or_unfavorite_photo": "Įtraukti prie arba pašalinti iš mėgstamiausių",
|
||||
"favorites": "Mėgstamiausi",
|
||||
"feature_photo_updated": "",
|
||||
"features": "Funkcijos",
|
||||
"features_setting_description": "Valdyti aplikacijos funkcijas",
|
||||
"file_name": "Failo pavadinimas",
|
||||
"file_name_or_extension": "Failo pavadinimas arba plėtinys",
|
||||
"filename": "",
|
||||
|
@ -592,6 +636,7 @@
|
|||
"filter_people": "Filtruoti žmones",
|
||||
"fix_incorrect_match": "",
|
||||
"folders": "Aplankai",
|
||||
"folders_feature_description": "Peržiūrėkite failų sistemoje esančias nuotraukas ir vaizdo įrašus aplankų rodinyje",
|
||||
"forward": "",
|
||||
"general": "",
|
||||
"get_help": "Gauti pagalbos",
|
||||
|
@ -619,7 +664,7 @@
|
|||
"in_archive": "Archyve",
|
||||
"include_archived": "Įtraukti archyvuotus",
|
||||
"include_shared_albums": "Įtraukti bendrinamus albumus",
|
||||
"include_shared_partner_assets": "",
|
||||
"include_shared_partner_assets": "Įtraukti partnerio pasidalintus elementus",
|
||||
"individual_share": "",
|
||||
"info": "Informacija",
|
||||
"interval": {
|
||||
|
@ -647,8 +692,8 @@
|
|||
"library_options": "Bibliotekos pasirinktys",
|
||||
"light": "",
|
||||
"link_options": "Nuorodų parinktys",
|
||||
"link_to_oauth": "",
|
||||
"linked_oauth_account": "",
|
||||
"link_to_oauth": "Susieti su OAuth",
|
||||
"linked_oauth_account": "Susieta OAuth paskyra",
|
||||
"list": "Sąrašas",
|
||||
"loading": "Kraunama",
|
||||
"loading_search_results_failed": "Nepavyko užkrauti paieškos rezultatų",
|
||||
|
@ -664,13 +709,13 @@
|
|||
"loop_videos": "Kartoti vaizdo įrašus",
|
||||
"loop_videos_description": "",
|
||||
"make": "Gamintojas",
|
||||
"manage_shared_links": "Bendrai naudojamų nuorodų tvarkymas",
|
||||
"manage_shared_links": "Bendrinimo nuorodų tvarkymas",
|
||||
"manage_sharing_with_partners": "Valdyti dalijimąsi su partneriais",
|
||||
"manage_the_app_settings": "Valdyti programos nustatymus",
|
||||
"manage_your_account": "Valdyti savo paskyrą",
|
||||
"manage_your_api_keys": "Valdyti savo API raktus",
|
||||
"manage_your_devices": "Valdyti prijungtus įrenginius",
|
||||
"manage_your_oauth_connection": "",
|
||||
"manage_your_oauth_connection": "Tvarkyti OAuth prisijungimą",
|
||||
"map": "Žemėlapis",
|
||||
"map_marker_with_image": "",
|
||||
"map_settings": "Žemėlapio nustatymai",
|
||||
|
@ -710,7 +755,7 @@
|
|||
"no_albums_message": "Sukurkite albumą nuotraukoms ir vaizdo įrašams tvarkyti",
|
||||
"no_albums_with_name_yet": "Atrodo, kad dar neturite albumų su šiuo pavadinimu.",
|
||||
"no_albums_yet": "Atrodo, kad dar neturite albumų.",
|
||||
"no_archived_assets_message": "",
|
||||
"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_duplicates_found": "Dublikatų nerasta.",
|
||||
"no_exif_info_available": "",
|
||||
|
@ -728,9 +773,10 @@
|
|||
"notification_toggle_setting_description": "Įjungti el. pašto pranešimus",
|
||||
"notifications": "Pranešimai",
|
||||
"notifications_setting_description": "Tvarkyti pranešimus",
|
||||
"oauth": "",
|
||||
"oauth": "OAuth",
|
||||
"official_immich_resources": "Oficialūs Immich ištekliai",
|
||||
"offline": "Neprisijungęs",
|
||||
"offline_paths": "Nepasiekiami adresai",
|
||||
"ok": "Ok",
|
||||
"oldest_first": "Seniausias pirmas",
|
||||
"onboarding_welcome_user": "Sveiki atvykę, {user}",
|
||||
|
@ -744,7 +790,7 @@
|
|||
"other": "",
|
||||
"other_devices": "Kiti įrenginiai",
|
||||
"other_variables": "Kiti kintamieji",
|
||||
"owned": "",
|
||||
"owned": "Nuosavi",
|
||||
"owner": "Savininkas",
|
||||
"partner": "Partneris",
|
||||
"partner_can_access": "{partner} gali naudotis",
|
||||
|
@ -764,12 +810,13 @@
|
|||
"path": "Kelias",
|
||||
"pattern": "",
|
||||
"pause": "Sustabdyti",
|
||||
"pause_memories": "",
|
||||
"pause_memories": "Pristabdyti atsiminimus",
|
||||
"paused": "Sustabdyta",
|
||||
"pending": "Laukiama",
|
||||
"people": "Asmenys",
|
||||
"people_edits_count": "{count, plural, one {Redaguotas # asmuo} few {Redaguoti # asmenys} other {Redaguota # asmenų}}",
|
||||
"people_sidebar_description": "",
|
||||
"people_feature_description": "Peržiūrėkite nuotraukas ir vaizdo įrašus sugrupuotus pagal asmenis",
|
||||
"people_sidebar_description": "Rodyti asmenų rodinio nuorodą šoninėje juostoje",
|
||||
"permanent_deletion_warning": "",
|
||||
"permanent_deletion_warning_setting_description": "",
|
||||
"permanently_delete": "Ištrinti visam laikui",
|
||||
|
@ -784,7 +831,7 @@
|
|||
"place": "Vieta",
|
||||
"places": "Vietos",
|
||||
"play": "",
|
||||
"play_memories": "",
|
||||
"play_memories": "Leisti atsiminimus",
|
||||
"play_motion_photo": "",
|
||||
"play_or_pause_video": "",
|
||||
"port": "",
|
||||
|
@ -794,6 +841,7 @@
|
|||
"previous_memory": "",
|
||||
"previous_or_next_photo": "",
|
||||
"primary": "",
|
||||
"profile_image_of_user": "{user} profilio nuotrauka",
|
||||
"profile_picture_set": "Profilio nuotrauka nustatyta.",
|
||||
"public_album": "Viešas albumas",
|
||||
"public_share": "",
|
||||
|
@ -830,18 +878,27 @@
|
|||
"purchase_settings_server_activated": "Serverio produkto raktas yra tvarkomas administratoriaus",
|
||||
"rating": "Įvertinimas žvaigždutėmis",
|
||||
"rating_count": "{count, plural, one {# įvertinimas} few {# įvertinimai} other {# įvertinimų}}",
|
||||
"rating_description": "Rodyti EXIF įvertinimus informacijos skydelyje",
|
||||
"reaction_options": "",
|
||||
"read_changelog": "",
|
||||
"recent": "",
|
||||
"recent_searches": "",
|
||||
"refresh": "Atnaujinti",
|
||||
"refresh_encoded_videos": "Perkrauti apdorotus vaizdo įrašus",
|
||||
"refresh_faces": "Perkrauti veidus",
|
||||
"refresh_metadata": "Perkrauti metaduomenis",
|
||||
"refresh_thumbnails": "Perkrauti miniatiūras",
|
||||
"refreshed": "Atnaujinta",
|
||||
"refreshes_every_file": "",
|
||||
"refreshes_every_file": "Iš naujo perskaito visus esamus ir naujai pridėtus failus",
|
||||
"refreshing_encoded_video": "Perkraunamas apdorotas vaizdo įrašas",
|
||||
"refreshing_faces": "Perkraunami veidai",
|
||||
"refreshing_metadata": "Perkraunami metaduomenys",
|
||||
"remove": "Pašalinti",
|
||||
"remove_assets_shared_link_confirmation": "Ar tikrai norite pašalinti {count, plural, one {# elementą} few {# elementus} other {# elementų}} iš šios bendrinimo nuorodos?",
|
||||
"remove_deleted_assets": "",
|
||||
"remove_from_album": "Pašalinti iš albumo",
|
||||
"remove_from_favorites": "Pašalinti iš mėgstamiausių",
|
||||
"remove_from_shared_link": "",
|
||||
"remove_from_shared_link": "Pašalinti iš bendrinimo nuorodos",
|
||||
"remove_user": "Pašalinti naudotoją",
|
||||
"removed_api_key": "Pašalintas API Raktas: {name}",
|
||||
"removed_from_archive": "Pašalinta iš archyvo",
|
||||
|
@ -850,18 +907,19 @@
|
|||
"removed_tagged_assets": "Žyma pašalinta iš {count, plural, one {# elemento} other {# elementų}}",
|
||||
"rename": "Pervadinti",
|
||||
"repair": "Pataisyti",
|
||||
"repair_no_results_message": "",
|
||||
"replace_with_upload": "",
|
||||
"repair_no_results_message": "Nesekami ir trūkstami failai bus rodomi čia",
|
||||
"replace_with_upload": "Pakeisti naujai įkeltu failu",
|
||||
"require_password": "Reikalauti slaptažodžio",
|
||||
"reset": "Atstatyti",
|
||||
"reset_password": "",
|
||||
"reset_people_visibility": "",
|
||||
"resolved_all_duplicates": "Išspręsti visi dublikatai",
|
||||
"resolve_duplicates": "Sutvarkyti dublikatus",
|
||||
"resolved_all_duplicates": "Sutvarkyti visi dublikatai",
|
||||
"restore": "Atkurti",
|
||||
"restore_all": "Atkurti visus",
|
||||
"restore_user": "Atkurti naudotoją",
|
||||
"retry_upload": "",
|
||||
"review_duplicates": "",
|
||||
"review_duplicates": "Peržiūrėti dublikatus",
|
||||
"role": "",
|
||||
"save": "Išsaugoti",
|
||||
"saved_api_key": "Išsaugotas API raktas",
|
||||
|
@ -898,9 +956,11 @@
|
|||
"select_avatar_color": "Pasirinkti avataro spalvą",
|
||||
"select_face": "Pasirinkti veidą",
|
||||
"select_featured_photo": "Pasirinkti rodomą nuotrauką",
|
||||
"select_keep_all": "Visus pažymėti \"Palikti\"",
|
||||
"select_library_owner": "Pasirinkti bibliotekos savininką",
|
||||
"select_new_face": "",
|
||||
"select_photos": "",
|
||||
"select_trash_all": "Visus pažymėti \"Išmesti\"",
|
||||
"selected": "Pasirinkta",
|
||||
"selected_count": "{count, plural, one {# pasirinktas} few {# pasirinkti} other {# pasirinktų}}",
|
||||
"send_message": "Siųsti žinutę",
|
||||
|
@ -911,28 +971,29 @@
|
|||
"server_version": "Serverio versija",
|
||||
"set": "Nustatyti",
|
||||
"set_as_album_cover": "",
|
||||
"set_as_profile_picture": "",
|
||||
"set_as_profile_picture": "Nustatyti kaip profilio nuotrauką",
|
||||
"set_date_of_birth": "Nustatyti gimimo datą",
|
||||
"set_profile_picture": "Nustatyti profilio nuotrauką",
|
||||
"set_slideshow_to_fullscreen": "",
|
||||
"set_slideshow_to_fullscreen": "Nustatyti skaidrių peržiūrą per visą ekraną",
|
||||
"settings": "Nustatymai",
|
||||
"settings_saved": "",
|
||||
"share": "Dalintis",
|
||||
"shared": "",
|
||||
"shared": "Bendrinami",
|
||||
"shared_by": "",
|
||||
"shared_by_you": "",
|
||||
"shared_links": "",
|
||||
"shared_link_options": "Bendrinimo nuorodos parametrai",
|
||||
"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_with_partner": "Pasidalinta su {partner}",
|
||||
"sharing": "Dalijimasis",
|
||||
"sharing_enter_password": "Norėdami peržiūrėti šį puslapį, įveskite slaptažodį.",
|
||||
"sharing_sidebar_description": "",
|
||||
"sharing_sidebar_description": "Rodyti bendrinimo rodinio nuorodą šoninėje juostoje",
|
||||
"show_album_options": "Rodyti albumo parinktis",
|
||||
"show_file_location": "Rodyti rinkmenos vietą",
|
||||
"show_gallery": "Rodyti galeriją",
|
||||
"show_hidden_people": "",
|
||||
"show_in_timeline": "",
|
||||
"show_in_timeline_setting_description": "",
|
||||
"show_in_timeline": "Rodyti laiko skalėje",
|
||||
"show_in_timeline_setting_description": "Rodyti šio naudotojo nuotraukas ir vaizdo įrašus mano laiko skalėje",
|
||||
"show_keyboard_shortcuts": "",
|
||||
"show_metadata": "Rodyti metaduomenis",
|
||||
"show_or_hide_info": "Rodyti arba slėpti informaciją",
|
||||
|
@ -940,15 +1001,18 @@
|
|||
"show_person_options": "",
|
||||
"show_progress_bar": "",
|
||||
"show_search_options": "Rodyti paieškos parinktis",
|
||||
"show_slideshow_transition": "Rodyti perėjimą tarp skaidrių",
|
||||
"show_supporter_badge": "Rėmėjo ženklelis",
|
||||
"show_supporter_badge_description": "Rodyti rėmėjo ženklelį",
|
||||
"shuffle": "",
|
||||
"sidebar": "Šoninė juosta",
|
||||
"sidebar_display_description": "Rodyti rodinio nuorodą šoninėje juostoje",
|
||||
"sign_out": "Atsijungti",
|
||||
"sign_up": "Užsiregistruoti",
|
||||
"size": "Dydis",
|
||||
"skip_to_content": "Pereiti prie turinio",
|
||||
"slideshow": "Skaidrės",
|
||||
"slideshow_settings": "",
|
||||
"slideshow": "Skaidrių peržiūra",
|
||||
"slideshow_settings": "Skaidrių peržiūros nustatymai",
|
||||
"sort_albums_by": "",
|
||||
"sort_created": "Sukūrimo data",
|
||||
"sort_modified": "Keitimo data",
|
||||
|
@ -978,6 +1042,7 @@
|
|||
"sync": "Sinchronizuoti",
|
||||
"tag": "Žyma",
|
||||
"tag_created": "Sukurta žyma: {tag}",
|
||||
"tag_feature_description": "Peržiūrėkite nuotraukas ir vaizdo įrašus sugrupuotus pagal sužymėtas temas",
|
||||
"tag_not_found_question": "Nerandate žymos? <link>Sukurti naują žymą.</link>",
|
||||
"tag_updated": "Atnaujinta žyma: {tag}",
|
||||
"tagged_assets": "Žyma pridėta prie {count, plural, one {# elemento} other {# elementų}}",
|
||||
|
@ -986,18 +1051,20 @@
|
|||
"theme": "Tema",
|
||||
"theme_selection": "",
|
||||
"theme_selection_description": "",
|
||||
"time_based_memories": "",
|
||||
"time_based_memories": "Atsiminimai pagal laiką",
|
||||
"timeline": "Laiko skalė",
|
||||
"timezone": "Laiko juosta",
|
||||
"to_archive": "Archyvuoti",
|
||||
"to_change_password": "Pakeisti slaptažodį",
|
||||
"to_favorite": "Įtraukti prie mėgstamiausių",
|
||||
"to_trash": "Išmesti",
|
||||
"toggle_settings": "",
|
||||
"toggle_theme": "",
|
||||
"total_usage": "",
|
||||
"trash": "Šiukšliadėžė",
|
||||
"trash_all": "Ištrinti visus",
|
||||
"trash_count": "Šiukšliadėžė {count, number}",
|
||||
"trash_no_results_message": "",
|
||||
"trash_all": "Perkelti visus į šiukšliadėžę",
|
||||
"trash_count": "Perkelti {count, number} į šiukšliadėžę",
|
||||
"trash_no_results_message": "Į šiukšliadėžę perkeltos nuotraukos ir vaizdo įrašai bus rodomi čia.",
|
||||
"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",
|
||||
"unarchive": "Išarchyvuoti",
|
||||
|
@ -1006,22 +1073,26 @@
|
|||
"unhide_person": "",
|
||||
"unknown": "",
|
||||
"unknown_year": "Nežinomi metai",
|
||||
"unlink_oauth": "",
|
||||
"unlinked_oauth_account": "",
|
||||
"unlink_oauth": "Atsieti OAuth",
|
||||
"unlinked_oauth_account": "Atsieta OAuth paskyra",
|
||||
"unnamed_album_delete_confirmation": "Ar tikrai norite ištrinti šį albumą?",
|
||||
"unsaved_change": "Neišsaugoti pakeitimai",
|
||||
"unselect_all": "",
|
||||
"unselect_all_duplicates": "Atžymėti visus dublikatus",
|
||||
"unstack": "Išgrupuoti",
|
||||
"unstacked_assets_count": "{count, plural, one {Išgrupuotas # elementas} few {Išgrupuoti # elementai} other {Išgrupuota # elementų}}",
|
||||
"untracked_files": "Nesekami failai",
|
||||
"untracked_files_decription": "Šie failai aplikacijos nesekami. Jie galėjo atsirasti dėl nepavykusio perkėlimo, nutraukto įkėlimo ar palikti per klaidą",
|
||||
"up_next": "",
|
||||
"updated_password": "Slaptažodis atnaujintas",
|
||||
"upload": "Įkelti",
|
||||
"upload_concurrency": "",
|
||||
"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_status_duplicates": "Dublikatai",
|
||||
"upload_status_errors": "Klaidos",
|
||||
"upload_status_uploaded": "Įkelta",
|
||||
"upload_success": "Įkėlimas pavyko, norėdami pamatyti naujai įkeltus elementus perkraukite puslapį.",
|
||||
"url": "URL",
|
||||
"usage": "",
|
||||
"user": "Naudotojas",
|
||||
|
@ -1031,7 +1102,7 @@
|
|||
"user_usage_stats_description": "Žiūrėti paskyros naudojimo statistiką",
|
||||
"username": "Naudotojo vardas",
|
||||
"users": "Naudotojai",
|
||||
"utilities": "Priemonės",
|
||||
"utilities": "Įrankiai",
|
||||
"validate": "Validuoti",
|
||||
"variables": "Kintamieji",
|
||||
"version": "Versija",
|
||||
|
@ -1042,11 +1113,12 @@
|
|||
"video_hover_setting_description": "Atkurti vaizdo įrašo miniatiūrą, kai pelė užvedama ant elemento. Net ir išjungus, atkūrimą galima pradėti užvedus pelės žymeklį ant atkūrimo piktogramos.",
|
||||
"videos": "Video",
|
||||
"videos_count": "{count, plural, one {# vaizdo įrašas} few {# vaizdo įrašai} other {# vaizdo įrašų}}",
|
||||
"view": "Rodyti",
|
||||
"view_album": "Rodyti albumą",
|
||||
"view": "Žiūrėti",
|
||||
"view_album": "Žiūrėti albumą",
|
||||
"view_all": "Peržiūrėti viską",
|
||||
"view_all_users": "Peržiūrėti visus naudotojus",
|
||||
"view_links": "Rodyti nuorodas",
|
||||
"view_in_timeline": "Žiūrėti laiko skalėje",
|
||||
"view_links": "Žiūrėti nuorodas",
|
||||
"view_next_asset": "",
|
||||
"view_previous_asset": "",
|
||||
"view_stack": "Peržiūrėti grupę",
|
||||
|
@ -1055,6 +1127,8 @@
|
|||
"week": "Savaitė",
|
||||
"welcome_to_immich": "Sveiki atvykę į Immich",
|
||||
"year": "Metai",
|
||||
"years_ago": "Prieš {years, plural, one {# metus} other {# metų}}",
|
||||
"yes": "Taip",
|
||||
"you_dont_have_any_shared_links": "Bendrinimo nuorodų neturite",
|
||||
"zoom_image": "Priartinti vaizdą"
|
||||
}
|
||||
|
|
17
i18n/lv.json
17
i18n/lv.json
|
@ -35,13 +35,13 @@
|
|||
"authentication_settings_reenable": "Lai atkārtoti iespējotu, izmantojiet <link>Servera Komandu</link>.",
|
||||
"background_task_job": "Fona Uzdevumi",
|
||||
"check_all": "Pārbaudīt Visu",
|
||||
"cleared_jobs": "Notīrīti darbi priekš: {job}",
|
||||
"cleared_jobs": "Notīrīti uzdevumi priekš: {job}",
|
||||
"config_set_by_file": "Konfigurāciju pašlaik iestata konfigurācijas fails",
|
||||
"confirm_delete_library": "Vai tiešām vēlaties dzēst {library} bibliotēku?",
|
||||
"confirm_email_below": "Lai apstiprinātu, zemāk ierakstiet “{email}”",
|
||||
"confirm_reprocess_all_faces": "Vai tiešām vēlaties atkārtoti apstrādāt visas sejas? Tas arī atiestatīs cilvēkus ar vārdiem.",
|
||||
"confirm_user_password_reset": "Vai tiešām vēlaties atiestatīt lietotāja {user} paroli?",
|
||||
"create_job": "Izveidot darbu",
|
||||
"create_job": "Izveidot uzdevumu",
|
||||
"cron_expression": "Cron izteiksme",
|
||||
"disable_login": "Atspējot pieteikšanos",
|
||||
"duplicate_detection_job_description": "Palaidiet mašīnmācīšanos uz līdzekļiem, lai noteiktu līdzīgus attēlus. Paļaujas uz Viedo Meklēšanu",
|
||||
|
@ -59,10 +59,10 @@
|
|||
"image_settings": "Attēla Iestatījumi",
|
||||
"image_settings_description": "Ģenerēto attēlu kvalitātes un izšķirtspējas pārvaldība",
|
||||
"image_thumbnail_title": "Sīktēlu iestatījumi",
|
||||
"job_created": "Darbs izveidots",
|
||||
"job_settings": "",
|
||||
"job_settings_description": "",
|
||||
"job_status": "Darbu statuss",
|
||||
"job_created": "Uzdevums izveidots",
|
||||
"job_settings": "Uzdevumu iestatījumi",
|
||||
"job_settings_description": "Pārvaldīt uzdevumu izpildes vienlaicīgumu",
|
||||
"job_status": "Uzdevumu statuss",
|
||||
"library_deleted": "Bibliotēka dzēsta",
|
||||
"library_scanning": "",
|
||||
"library_scanning_description": "",
|
||||
|
@ -167,6 +167,7 @@
|
|||
"repair_all": "Salabot visu",
|
||||
"require_password_change_on_login": "Pieprasīt lietotājam mainīt paroli pēc pirmās pieteikšanās",
|
||||
"scanning_library": "Skenē bibliotēku",
|
||||
"search_jobs": "Meklēt uzdevumus...",
|
||||
"server_external_domain_settings": "",
|
||||
"server_external_domain_settings_description": "",
|
||||
"server_settings": "Servera iestatījumi",
|
||||
|
@ -527,7 +528,7 @@
|
|||
},
|
||||
"invite_people": "Ielūgt cilvēkus",
|
||||
"invite_to_album": "Uzaicināt albumā",
|
||||
"jobs": "Darbi",
|
||||
"jobs": "Uzdevumi",
|
||||
"keep": "Paturēt",
|
||||
"keep_all": "Paturēt visus",
|
||||
"keyboard_shortcuts": "Tastatūras saīsnes",
|
||||
|
@ -873,6 +874,8 @@
|
|||
"validate": "",
|
||||
"variables": "",
|
||||
"version": "Versija",
|
||||
"version_announcement_message": "Sveiki! Ir pieejama jauna Immich versija. Lūdzu, veltiet laiku, lai izlasītu <link>laidiena piezīmes</link> un pārliecinātos, ka jūsu iestatījumi ir atjaunināti, lai novērstu jebkādu nepareizu konfigurāciju, jo īpaši, ja izmantojat WatchTower vai citu mehānismu, kas automātiski atjaunina jūsu Immich instanci.",
|
||||
"version_history": "Versiju vēsture",
|
||||
"video": "Videoklips",
|
||||
"video_hover_setting_description": "",
|
||||
"videos": "Videoklipi",
|
||||
|
|
105
i18n/ms.json
105
i18n/ms.json
|
@ -44,7 +44,7 @@
|
|||
"cleared_jobs": "Kerja telah dibersihkan untuk: {job}",
|
||||
"config_set_by_file": "Konfigurasi kini ditetapkan oleh fail konfigurasi",
|
||||
"confirm_delete_library": "Adakah anda pasti mahu memadamkan {library}?",
|
||||
"confirm_delete_library_assets": "Adakah anda pasti mahu memadamkan pustaka ini? Ini akan memadam {count, plural, one {# aset yang terkandung} other {semua # aset yang terkandung}} daripada Immich dan tidak boleh dibuat asal. Fail akan kekal pada disk.",
|
||||
"confirm_delete_library_assets": "Adakah anda pasti mahu memadamkan pustaka ini? Ini akan memadam {count, plural, one {# aset yang terkandung} other {semua # aset yang terkandung}} daripada Immich dan tidak boleh dibuat asal. Fail akan kekal pada cakera.",
|
||||
"confirm_email_below": "Untuk mengesahkan, sila taip \"{email}\" dibawah",
|
||||
"confirm_reprocess_all_faces": "Adakah anda pasti mahu memproses semula semua wajah? Ini juga akan membersihkan orang bernama.",
|
||||
"confirm_user_password_reset": "Adakah anda pasti mahu menetapkan semula kata laluan {user}?",
|
||||
|
@ -126,30 +126,45 @@
|
|||
"machine_learning_min_recognized_faces": "Minimum mengenali wajah",
|
||||
"machine_learning_min_recognized_faces_description": "Bilangan minima wajah yang dikenali untuk seseorang dicipta. Peningkatan ini menjadikan Pengecaman Wajah lebih tepat atas kos meningkatkan peluang wajah tidak diberikan kepada seseorang.",
|
||||
"machine_learning_settings": "Tetapan Pembelajaran Mesin",
|
||||
"machine_learning_settings_description": "Urus ciri dan tetapan pembelajaran mesin",
|
||||
"machine_learning_smart_search": "Carian Pintar",
|
||||
"machine_learning_smart_search_description": "Cari imej secara semantik menggunakan pembenaman CLIP",
|
||||
"machine_learning_smart_search_enabled": "Dayakan carian pintar",
|
||||
"machine_learning_smart_search_enabled_description": "Jika ditutup, gambar-gambar tidak akan dikodkan untuk carian pintar.",
|
||||
"machine_learning_url_description": "URL pelayan pembelajaran mesin. Jika lebih daripada satu URL disediakan, setiap pelayan akan dicuba satu demi satu sehingga satu menjawab dengan jayanya, mengikut urutan dari pertama hingga terakhir.",
|
||||
"manage_concurrency": "Urus Concurrency",
|
||||
"manage_log_settings": "Urus tetapan log",
|
||||
"map_dark_style": "Tema gelap",
|
||||
"map_enable_description": "Aktifkan ciri peta",
|
||||
"map_gps_settings": "Tetapan Peta & GPS",
|
||||
"map_gps_settings_description": "Urus Tetapan Peta & GPS (Geokod Terbalik)",
|
||||
"map_implications": "Ciri peta bergantung pada perkhidmatan jubin luaran (tiles.immich.cloud)",
|
||||
"map_light_style": "Tema terang",
|
||||
"map_manage_reverse_geocoding_settings": "Urus tetapan <link>Geocoding Songsang</link>",
|
||||
"map_reverse_geocoding": "Geokoding Sonsang",
|
||||
"map_reverse_geocoding_enable_description": "Dayakan pengekodan geo terbalik",
|
||||
"map_reverse_geocoding_settings": "Tetapan Pengekodan Geo Terbalik",
|
||||
"map_settings": "Peta",
|
||||
"map_settings_description": "Urus tetapan peta",
|
||||
"map_style_description": "URL ke tema peta style.json",
|
||||
"metadata_extraction_job": "Sari metadata",
|
||||
"metadata_extraction_job_description": "Sari maklumat metadata dari setiap aset, seperti GPS, muka-muka, dan pelaraian",
|
||||
"metadata_faces_import_setting": "Dayakan import muka",
|
||||
"metadata_faces_import_setting_description": "Import muka daripada data EXIF imej dan fail sidecar",
|
||||
"metadata_settings": "Tetapan Metadata",
|
||||
"metadata_settings_description": "Urus tetapan metadata",
|
||||
"migration_job": "Migrasi",
|
||||
"migration_job_description": "Pindahkan imej kecil untuk aset-aset dan muka-muka kepada struktur folder terkini",
|
||||
"no_paths_added": "Tiada laluan yang 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_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_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_ignore_certificate_errors": "Abaikan ralat-ralat sijil",
|
||||
"notification_email_ignore_certificate_errors_description": "Abaikan ralat pengesahan sijil TLS (tidak disyorkan)",
|
||||
"notification_email_password_description": "Kata laluan untuk digunakan semasa membuat pengesahan dengan pelayan e-mel",
|
||||
"notification_email_port_description": "Port pelayan e-mel (cth 25, 465 atau 587)",
|
||||
"notification_email_sent_test_email_button": "Hantar e-mel ujian dan simpan",
|
||||
|
@ -162,6 +177,7 @@
|
|||
"notification_settings": "Tetapan Pemberitahuan",
|
||||
"notification_settings_description": "Urus tetapan-tetapan notifikasi, termasuk e-mel",
|
||||
"oauth_auto_launch": "Pelancaran automatik",
|
||||
"oauth_auto_launch_description": "Mulakan aliran log masuk OAuth secara automatik apabila menavigasi ke halaman log masuk",
|
||||
"oauth_auto_register": "Daftar secara automatik",
|
||||
"oauth_auto_register_description": "Daftar secara automatik pengguna-pengguna baharu selepas mendaftar masuk dengan OAuth",
|
||||
"oauth_button_text": "Teks butang",
|
||||
|
@ -170,23 +186,106 @@
|
|||
"oauth_enable_description": "Log masuk dengan OAuth",
|
||||
"oauth_issuer_url": "URL Pengeluar",
|
||||
"oauth_mobile_redirect_uri": "URI ubah hala mudah alih",
|
||||
"oauth_mobile_redirect_uri_override": "Penggantian URI ubah hala mudah alih",
|
||||
"oauth_mobile_redirect_uri_override_description": "Aktifkan apabila pembekal OAuth tidak membenarkan URI mudah alih, seperti '{callback}'",
|
||||
"oauth_profile_signing_algorithm": "Algoritma tandatangan profil",
|
||||
"oauth_profile_signing_algorithm_description": "Algoritma digunakan untuk menandatangani profil pengguna.",
|
||||
"oauth_scope": "Skop",
|
||||
"oauth_settings": "OAuth",
|
||||
"oauth_settings_description": "Urus tetapan-tetapan log masuk OAuth",
|
||||
"oauth_settings_more_details": "Untuk maklumat lanjut tentang ciri ini, rujuk ke <link>dokumen</link>.",
|
||||
"oauth_signing_algorithm": "Tandatangan algoritma",
|
||||
"oauth_storage_label_claim": "Tuntutan label storan",
|
||||
"oauth_storage_label_claim_description": "Tetapkan label storan pengguna secara automatik kepada nilai tuntutan ini.",
|
||||
"oauth_storage_quota_claim": "Tuntutan kuota storan",
|
||||
"oauth_storage_quota_claim_description": "Tetapkan kuota storan pengguna secara automatik kepada nilai tuntutan ini.",
|
||||
"oauth_storage_quota_default": "Kuota storan lalai (GiB)",
|
||||
"oauth_storage_quota_default_description": "Kuota dalam GiB untuk digunakan apabila tiada tuntutan disediakan (Masukkan 0 untuk kuota tanpa had).",
|
||||
"offline_paths": "Laluan Luar Talian",
|
||||
"offline_paths_description": "Keputusan ini mungkin disebabkan oleh pemadaman manual fail yang bukan sebahagian daripada pustaka luaran.",
|
||||
"password_enable_description": "Log masuk dengan e-mel dan kata laluan",
|
||||
"password_settings": "Kata Laluan Log Masuk",
|
||||
"password_settings_description": "Urus tetapan-tetapan kata laluan log masuk",
|
||||
"paths_validated_successfully": "Semua laluan berjaya disahkan",
|
||||
"person_cleanup_job": "Pembersihan orang",
|
||||
"quota_size_gib": "Saiz Kuota (GiB)",
|
||||
"registration": "Pendaftaran Admin",
|
||||
"refreshing_all_libraries": "Menyegarkan semua perpustakaan",
|
||||
"registration": "Pendaftaran Pentadbir",
|
||||
"registration_description": "Memandangkan anda adalah pengguna pertama pada sistem, anda akan ditugaskan sebagai Admin dan bertanggungjawab untuk tugas pentadbiran, serta pengguna tambahan yang akan anda tambah.",
|
||||
"repair_all": "Baiki Semua",
|
||||
"repair_matched_items": "Memadankan {count, plural, one {# item} other {# items}}",
|
||||
"repaired_items": "Dibaiki {count, plural, one {# item} other {# items}}",
|
||||
"require_password_change_on_login": "Perlukan pengguna menukar kata laluan ketika log masuk pertama",
|
||||
"reset_settings_to_default": "Tetapkan semula tetapan kepada lalai",
|
||||
"reset_settings_to_recent_saved": "Tetapkan semula tetapan kepada tetapan yang disimpan baru-baru ini"
|
||||
"reset_settings_to_recent_saved": "Tetapkan semula tetapan kepada tetapan yang disimpan baru-baru ini",
|
||||
"scanning_library": "Mengimbas perpustakaan",
|
||||
"search_jobs": "Cari kerja...",
|
||||
"send_welcome_email": "Hantar e-mel alu-aluan",
|
||||
"server_external_domain_settings": "Domain luaran",
|
||||
"server_external_domain_settings_description": "Domain untuk pautan kongsi awam, termasuk http(s)://",
|
||||
"server_public_users": "Pengguna Awam",
|
||||
"server_public_users_description": "Semua pengguna (nama dan e-mel) disenaraikan apabila menambahkan pengguna pada album kongsi. Apabila dilumpuhkan, senarai pengguna hanya akan tersedia kepada pengguna pentadbir.",
|
||||
"server_settings": "Tetapan Pelayan",
|
||||
"server_settings_description": "Urus tetapan pelayan",
|
||||
"server_welcome_message": "Mesej alu-aluan",
|
||||
"server_welcome_message_description": "Mesej yang dipaparkan pada halaman log masuk.",
|
||||
"sidecar_job": "Metadata kereta sisi",
|
||||
"slideshow_duration_description": "Bilangan saat untuk memaparkan setiap imej",
|
||||
"smart_search_job_description": "Jalankan pembelajaran mesin pada aset-aset untuk menyokong carian pintar",
|
||||
"storage_template_date_time_description": "Cap masa penciptaan aset digunakan untuk maklumat masa dan tarikh",
|
||||
"storage_template_date_time_sample": "Contoh masa {date}",
|
||||
"storage_template_enable_description": "Dayakan enjin templat storan",
|
||||
"storage_template_hash_verification_enabled": "Pengesahan hac didayakan",
|
||||
"storage_template_hash_verification_enabled_description": "Mendayakan pengesahan hac, jangan lumpuhkan melainkan anda pasti akan implikasinya",
|
||||
"storage_template_migration": "Penghijrahan templat storan",
|
||||
"storage_template_migration_description": "Gunakan <link>{template}</link> semasa pada aset-aset yang dimuat naik sebelum ini",
|
||||
"storage_template_migration_info": "Perubahan templat hanya akan digunakan pada aset baharu. Untuk menggunakan templat secara retroaktif pada aset-aset yang dimuat naik sebelum ini, jalankan <link>{job}</link>.",
|
||||
"storage_template_migration_job": "Kerja Migrasi Templat Storan",
|
||||
"storage_template_more_details": "Untuk butiran lanjut tentang ciri ini, rujuk kepada <template-link>Templat Storan</template-link> dan <implications-link>implikasi</implications-link>",
|
||||
"storage_template_settings": "Templat Storan",
|
||||
"theme_settings_description": "Urus penyesuaian antara muka web Immich",
|
||||
"thumbnail_generation_job": "Jana Imej Kenit",
|
||||
"thumbnail_generation_job_description": "Janakan imej kenit yang besar, kecil, dan kabur untuk setiap aset, serta imej kenit untuk setiap orang"
|
||||
},
|
||||
"deduplication_criteria_1": "Saiz imej dalam bait",
|
||||
"deduplication_criteria_2": "Kiraan data EXIF",
|
||||
"deduplication_info": "Maklumat Pendeduplikasian",
|
||||
"deduplication_info_description": "Untuk prapilih aset secara automatik dan mengalih keluar pendua secara pukal, kami melihat pada:",
|
||||
"default_locale": "Tempatan Lalai",
|
||||
"delete": "Padam",
|
||||
"delete_album": "Padam album",
|
||||
"delete_api_key_prompt": "Adakah anda pasti mahu memadam kunci API ini?",
|
||||
"delete_duplicates_confirmation": "Adakah anda pasti mahu memadam pendua ini secara kekal?",
|
||||
"delete_key": "Padam kunci",
|
||||
"delete_library": "Padam Pustaka",
|
||||
"delete_link": "Padam pautan",
|
||||
"delete_others": "Padam yang lain",
|
||||
"delete_shared_link": "Padam pautan yang dikongsi",
|
||||
"delete_tag": "Padam tag",
|
||||
"delete_tag_confirmation_prompt": "Adakah anda pasti mahu memadam tag {tagName}?",
|
||||
"delete_user": "Padam pengguna",
|
||||
"deleted_shared_link": "Pautan kongsi yang dipadamkan",
|
||||
"deletes_missing_assets": "Memadamkan aset yang hilang daripada cakera",
|
||||
"description": "Penerangan",
|
||||
"details": "Butiran",
|
||||
"direction": "Arah",
|
||||
"disabled": "Dilumpuhkan",
|
||||
"disallow_edits": "Tolak pengeditan",
|
||||
"discord": "Perselisihan",
|
||||
"discover": "Terokai",
|
||||
"dismiss_all_errors": "Tolak semua ralat",
|
||||
"dismiss_error": "Tolak ralat",
|
||||
"display_options": "Pilihan paparan",
|
||||
"display_order": "Tertib paparan",
|
||||
"display_original_photos": "Paparkan foto asal",
|
||||
"display_original_photos_setting_description": "Mengutamakan pemaparan foto asal apabila melihat aset daripada imej kecil apabila aset asal serasi web. Ini boleh menyebabkan kelajuan paparan foto yang lebih perlahan.",
|
||||
"do_not_show_again": "Jangan tunjukkan mesej ini lagi",
|
||||
"documentation": "Dokumentasi",
|
||||
"done": "Selesai",
|
||||
"download": "Muat Turun",
|
||||
"download_settings": "Muat Turun",
|
||||
"download_settings_description": "Urus tetapan yang berkaitan dengan muat turun aset",
|
||||
"downloading": "Memuat turun",
|
||||
"timeline": "Garis masa",
|
||||
"total": "Jumlah",
|
||||
"user_usage_stats": "Statistik penggunaan akaun",
|
||||
|
|
403
i18n/nb_NO.json
403
i18n/nb_NO.json
|
@ -23,11 +23,13 @@
|
|||
"add_to": "Legg til...",
|
||||
"add_to_album": "Legg til album",
|
||||
"add_to_shared_album": "Legg til delt album",
|
||||
"add_url": "Legg til URL",
|
||||
"added_to_archive": "Lagt til i arkiv",
|
||||
"added_to_favorites": "Lagt til i favoritter",
|
||||
"added_to_favorites_count": "Lagt til {count, number} i favoritter",
|
||||
"admin": {
|
||||
"add_exclusion_pattern_description": "Legg til ekskluderingsmønstre. Globbing med *, ** og ? støttes. For å ignorere alle filer i en hvilken som helst mappe som heter \"Raw\", bruk \"**/Raw/**\". For å ignorere alle filer som slutter på \".tif\", bruk \"**/*.tif\". For å ignorere en absolutt filplassering, bruk \"/filbane/til/ignorer/**\".",
|
||||
"asset_offline_description": "Denne eksterne bibliotekressursen finnes ikke lenger på disk og har blitt flyttet til papirkurven. Hvis filen ble flyttet innad i biblioteket, sjekk tidslinjen din for den tilsvarende ressursen. For å gjenopprette ressursen, vennligst sørg for at filstien under er tilgjengelig for Immich og skan biblioteket.",
|
||||
"authentication_settings": "Autentiserings innstillinger",
|
||||
"authentication_settings_description": "Administrer passord, OAuth, og andre innstillinger for autentisering",
|
||||
"authentication_settings_disable_all": "Er du sikker på at du ønsker å deaktivere alle innloggingsmetoder? Innlogging vil bli fullstendig deaktivert.",
|
||||
|
@ -42,11 +44,14 @@
|
|||
"cleared_jobs": "Ryddet opp jobber for: {job}",
|
||||
"config_set_by_file": "Konfigurasjonen er for øyeblikket satt av en konfigurasjonsfil",
|
||||
"confirm_delete_library": "Er du sikker på at du vil slette biblioteket {library}?",
|
||||
"confirm_delete_library_assets": "Er du sikker på at du vil slette dette biblioteket? Dette vil slette alle {count} tilhørende eiendeler fra Immich og kan ikke angres. Filene vil forbli på disken.",
|
||||
"confirm_delete_library_assets": "Er du sikker på at du vil slette dette biblioteket? Dette vil slette alle {count, plural, one {# contained asset} other {all # contained assets}} tilhørende eiendeler fra Immich og kan ikke angres. Filene vil forbli på disken.",
|
||||
"confirm_email_below": "For å bekrefte, skriv inn \"{email}\" nedenfor",
|
||||
"confirm_reprocess_all_faces": "Er du sikker på at du vil behandle alle ansikter på nytt? Dette vil også fjerne navngitte personer.",
|
||||
"confirm_user_password_reset": "Er du sikker på at du vil tilbakestille passordet til {user}?",
|
||||
"create_job": "Lag jobb",
|
||||
"cron_expression": "Cron uttrykk",
|
||||
"cron_expression_description": "Still inn skanneintervallet med cron-formatet. For mer informasjon henvises til f.eks. <link>Crontab Guru</link>",
|
||||
"cron_expression_presets": "Forhåndsinnstillinger for Cron-uttrykk",
|
||||
"disable_login": "Deaktiver innlogging",
|
||||
"duplicate_detection_job_description": "Kjør maskinlæring på filer for å oppdage lignende bilder. Krever bruk av Smart Search",
|
||||
"exclusion_pattern_description": "Ekskluderingsmønstre lar deg ignorere filer og mapper når du skanner biblioteket ditt. Dette er nyttig hvis du har mapper som inneholder filer du ikke vil importere, for eksempel RAW-filer.",
|
||||
|
@ -64,12 +69,19 @@
|
|||
"image_prefer_embedded_preview_setting_description": "Bruk innebygd forhåndsvisning i RAW-bilder som inndata til bildebehandling når tilgjengelig. Dette kan gi mer nøyaktige farger for noen bilder, men kvaliteten er avhengig av kamera og bildet kan ha komprimeringsartefakter.",
|
||||
"image_prefer_wide_gamut": "Foretrekk bredt fargespekter",
|
||||
"image_prefer_wide_gamut_setting_description": "Bruk Display P3 for miniatyrbilder. Dette bevarer glød bedre i bilder med bredt fargerom, men det kan hende bilder ser annerledes ut på gamle enheter med en gammel nettleserversjon. sRBG bilder beholdes som sRGB for å unngå fargeforskyvninger.",
|
||||
"image_preview_description": "Mellomstort bilde med strippet metadata, brukt når du ser på en enkelt ressurs og for maskinlæring",
|
||||
"image_preview_quality_description": "Kvalitet på forhåndsvisning fra 1-100. Høyere er bedre, men genererer større filer og kan redusere hastigheten på systemet. Ved for lav verdi kan det påvirke kvaliteten på maskinlæringen.",
|
||||
"image_preview_title": "Forhåndsvisningsinnstillinger",
|
||||
"image_quality": "Kvalitet",
|
||||
"image_resolution": "Oppløsning",
|
||||
"image_resolution_description": "Høyere oppløsninger kan bevare flere detaljer, men det tar lengre tid å kode, har større filstørrelser og kan redusere appresponsen.",
|
||||
"image_settings": "Bildeinnstilliinger",
|
||||
"image_settings_description": "Administrer kvalitet og oppløsning på genererte bilder",
|
||||
"image_thumbnail_description": "Små miniatyrbilder med strippet metadata, brukt når du ser på grupper av bilder som hovedtidslinjen",
|
||||
"image_thumbnail_quality_description": "Miniatyrbildekvalitet fra 1-100. Høyere er bedre, men produserer større filer og kan redusere appens respons.",
|
||||
"image_thumbnail_title": "Miniatyrbilde oppsett",
|
||||
"job_concurrency": "{job} samtidighet",
|
||||
"job_created": "Oppgave laget",
|
||||
"job_not_concurrency_safe": "Denne jobben er ikke samtidlighet sikker.",
|
||||
"job_settings": "Jobbinnstillinger",
|
||||
"job_settings_description": "Administrer parallellkjøring for jobber",
|
||||
|
@ -126,7 +138,9 @@
|
|||
"map_enable_description": "Aktiver kartfunksjoner",
|
||||
"map_gps_settings": "Kart & GPS Innstillinger",
|
||||
"map_gps_settings_description": "Administrer innstillinger for kart og GPS (Reversert geokoding)",
|
||||
"map_implications": "Kartfunksjonen er avhengig av en ekstern bilde tjeneste (tiles.immich.cloud)",
|
||||
"map_light_style": "Lys stil",
|
||||
"map_manage_reverse_geocoding_settings": "Administrer instillinger for <link>Omvendt Geokoding</link>",
|
||||
"map_reverse_geocoding": "Omvendt geokoding",
|
||||
"map_reverse_geocoding_enable_description": "Aktiver omvendt geokoding",
|
||||
"map_reverse_geocoding_settings": "Innstillinger for omvendt geokoding",
|
||||
|
@ -135,6 +149,8 @@
|
|||
"map_style_description": "URL til et style.json-karttema",
|
||||
"metadata_extraction_job": "Hent metadata",
|
||||
"metadata_extraction_job_description": "Hent metadatainformasjon fra hver fil, for eksempel GPS-posisjon og oppløsning",
|
||||
"metadata_faces_import_setting": "Aktiver ansikts importering",
|
||||
"metadata_faces_import_setting_description": "Importer ansikt fra bilde EXIF data og tillegsfiler",
|
||||
"metadata_settings": "Metadatainnstillinger",
|
||||
"metadata_settings_description": "Administrer metadatainnstillinger",
|
||||
"migration_job": "Migrering",
|
||||
|
@ -171,7 +187,7 @@
|
|||
"oauth_issuer_url": "Utgiverens URL",
|
||||
"oauth_mobile_redirect_uri": "Mobil omdirigerings-URI",
|
||||
"oauth_mobile_redirect_uri_override": "Mobil omdirigerings-URI overstyring",
|
||||
"oauth_mobile_redirect_uri_override_description": "Aktiver når 'app.immich:/' er en ugyldig omdirigerings-URI.",
|
||||
"oauth_mobile_redirect_uri_override_description": "Aktiver når OAuth-leverandøren ikke tillater en mobil URI, som '{callback}'",
|
||||
"oauth_profile_signing_algorithm": "Profilsigneringsalgoritme",
|
||||
"oauth_profile_signing_algorithm_description": "Algoritme brukt for å signere brukerprofilen.",
|
||||
"oauth_scope": "Omfang",
|
||||
|
@ -191,6 +207,7 @@
|
|||
"password_settings": "Passordinnlogging",
|
||||
"password_settings_description": "Administrer innstillinger for passordinnlogging",
|
||||
"paths_validated_successfully": "Alle filbaner validert uten problemer",
|
||||
"person_cleanup_job": "Person opprydding",
|
||||
"quota_size_gib": "Kvotestørrelse (GiB)",
|
||||
"refreshing_all_libraries": "Oppdaterer alle biblioteker",
|
||||
"registration": "Administrator registrering",
|
||||
|
@ -201,9 +218,13 @@
|
|||
"require_password_change_on_login": "Krev at brukeren endrer passord ved første pålogging",
|
||||
"reset_settings_to_default": "Tilbakestill innstillinger til standard",
|
||||
"reset_settings_to_recent_saved": "Tilbakestill innstillingene til de nylig lagrede innstillingene",
|
||||
"scanning_library": "Søk biblioteket",
|
||||
"search_jobs": "Søk etter jobber...",
|
||||
"send_welcome_email": "Send velkomst-e-post",
|
||||
"server_external_domain_settings": "Eksternt domene",
|
||||
"server_external_domain_settings_description": "Domene for offentlige delingslenker, inkludert http(s)://",
|
||||
"server_public_users": "Offentlige brukere",
|
||||
"server_public_users_description": "Alle brukere (navn og epost) blir vist når en bruker blir lagt til et delt album. Når deaktivert, vil brukerne bare bli synlig for administratorer.",
|
||||
"server_settings": "Serverinstillinger",
|
||||
"server_settings_description": "Administrer serverinnstillinger",
|
||||
"server_welcome_message": "Velkomstmelding",
|
||||
|
@ -218,7 +239,7 @@
|
|||
"storage_template_hash_verification_enabled": "Hash verifisering aktivert",
|
||||
"storage_template_hash_verification_enabled_description": "Aktiver hasjverifisering. Ikke deaktiver dette med mindre du er sikker på konsekvensene",
|
||||
"storage_template_migration": "Lagringsmal migrering",
|
||||
"storage_template_migration_description": "Bruk gjeldende <link>{mal}</link> på tidligere opplastede bilder.",
|
||||
"storage_template_migration_description": "Bruk gjeldende <link>{template}</link> på tidligere opplastede bilder",
|
||||
"storage_template_migration_info": "Malendringer vil kun gjelde nye ressurser. For å anvende malen på tidligere opplastede ressurser, kjør <link>{job}</link>.",
|
||||
"storage_template_migration_job": "Migreringsjobb for lagringsmal",
|
||||
"storage_template_more_details": "For mer informasjon om denne funksjonen, se <template-link>lagringsmalen</template-link> og dens <implications-link>konsekvenser</implications-link>",
|
||||
|
@ -228,6 +249,17 @@
|
|||
"storage_template_settings_description": "Administrer mappestrukturen og filnavnet til opplastede fil",
|
||||
"storage_template_user_label": "<code>{label}</code> er brukerens Lagringsetikett",
|
||||
"system_settings": "Systeminstillinger",
|
||||
"tag_cleanup_job": "Tag opprydding",
|
||||
"template_email_available_tags": "Du kan bruke følgende variabler i din mal: {tags}",
|
||||
"template_email_if_empty": "Hvis malen er tom, vil standard epost bli brut.",
|
||||
"template_email_invite_album": "Inviter Album Mal",
|
||||
"template_email_preview": "Forhåndsvis",
|
||||
"template_email_settings": "Epost mal",
|
||||
"template_email_settings_description": "Administrer tilpasset mal for varslings maler",
|
||||
"template_email_update_album": "Oppdater Album Mal",
|
||||
"template_email_welcome": "Mal for velkomst epost",
|
||||
"template_settings": "Varslings Mal",
|
||||
"template_settings_description": "Administrer tilpassede maler for varsling.",
|
||||
"theme_custom_css_settings": "Egendefinert CSS",
|
||||
"theme_custom_css_settings_description": "Cascading Style Sheets gjør det mulig å tilpasse designet av Immich.",
|
||||
"theme_settings": "Tema innstillinger",
|
||||
|
@ -257,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Konstant ratefaktor (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Nivået på videokvaliteten. Typiske verdier er 23 for H.264, 28 for HEVC, 31 for VP9 og 35 for AV1. Lavere verdier gir bedre kvalitet, men større filstørrelser.",
|
||||
"transcoding_disabled_description": "Ikke transkoder noen videoer; dette kan føre til avspillingsproblemer på visse klienter",
|
||||
"transcoding_encoding_options": "Kodek Alternativer",
|
||||
"transcoding_encoding_options_description": "Sett kodeks, oppløsning, kvalitet og andre valg for koding av videoer",
|
||||
"transcoding_hardware_acceleration": "Maskinvareakselerasjon",
|
||||
"transcoding_hardware_acceleration_description": "Eksperimentell; mye raskere, men vil ha lavere kvalitet ved samme bithastighet",
|
||||
"transcoding_hardware_decoding": "Maskinvaredekoding",
|
||||
|
@ -269,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Maksimal referansebilde intervall",
|
||||
"transcoding_max_keyframe_interval_description": "Setter maksimalt antall bilder mellom referansebilder. Lavere verdier reduserer kompresjonseffektiviteten, men forbedrer søketider og kan forbedre kvaliteten i scener med rask bevegelse. 0 setter verdien automatisk.",
|
||||
"transcoding_optimal_description": "Videoer som har høyere oppløsning enn målopppløsningen eller som ikke er i et akseptert format",
|
||||
"transcoding_policy": "Retningslinjer for omkoding",
|
||||
"transcoding_policy_description": "Velg når en video vil blir omkodet",
|
||||
"transcoding_preferred_hardware_device": "Foretrukken maskinvareenhet",
|
||||
"transcoding_preferred_hardware_device_description": "Gjelder bare for VAAPI og QSV. Angir DRI-node brukt for maskinvaretranscoding.",
|
||||
"transcoding_preset_preset": "Forhåndsinnstilling (-preset)",
|
||||
|
@ -277,10 +313,10 @@
|
|||
"transcoding_reference_frames_description": "Antall bilder som skal refereres til når en gitt ramme komprimeres. Høyere verdier forbedrer komprimeringseffektiviteten, men senker ned kodingen. 0 setter denne verdien automatisk.",
|
||||
"transcoding_required_description": "Bare videoer som ikke er i et akseptert format",
|
||||
"transcoding_settings": "Innstillinger for videotranskoding",
|
||||
"transcoding_settings_description": "Administrer oppløsning og kodinginformasjon for videofiler",
|
||||
"transcoding_settings_description": "Administrer hvilke videoer å omkode og hvordan behandle dem",
|
||||
"transcoding_target_resolution": "Endelig oppløsning",
|
||||
"transcoding_target_resolution_description": "Høyere oppløsninger kan bevare mer detaljer, men tar lengre tid å kode, resulterer i større filstørrelser, og kan redusere appens responsivitet.",
|
||||
"transcoding_temporal_aq": "Temporal AQ",
|
||||
"transcoding_temporal_aq": "Midlertidig AQ",
|
||||
"transcoding_temporal_aq_description": "Gjelder kun for NVENC. Øker kvaliteten på scener med høy detaljgrad og lav bevegelse. Kan være inkompatibelt med eldre enheter.",
|
||||
"transcoding_threads": "Tråder",
|
||||
"transcoding_threads_description": "Høyere verdier fører til raskere koding, men gir mindre plass for serveren til å behandle andre oppgaver mens den er aktiv. Verdien bør ikke være mer enn antall CPU-kjerner. Maksimerer utnyttelsen hvis satt til 0.",
|
||||
|
@ -299,6 +335,7 @@
|
|||
"trash_settings_description": "Administrer papirkurv-innstillinger",
|
||||
"untracked_files": "Usporede filer",
|
||||
"untracked_files_description": "Disse filene er ikke sporet av applikasjonen. De kan være resultatet av mislykkede flyttinger, avbrutte opplastninger eller etterlatt på grunn av en feil",
|
||||
"user_cleanup_job": "Bruker opprydning",
|
||||
"user_delete_delay": "<b>{user}</b>s konto og elementer vil legges i kø for permanent sletting om {delay, plural, one {# dag} other {# dager}}.",
|
||||
"user_delete_delay_settings": "Sletteforsinkelse",
|
||||
"user_delete_delay_settings_description": "Antall dager etter fjerning før en brukerkonto og dens filer permanent slettes. Brukerfjerningsjobben kjører ved midnatt for å sjekke etter brukere som er klare for sletting. Endringer i denne innstillingen vil bli evaluert ved neste utførelse.",
|
||||
|
@ -325,10 +362,11 @@
|
|||
"advanced": "Avansert",
|
||||
"age_months": "Alder {months, plural, one {# måned} other {# måneder}}",
|
||||
"age_year_months": "Alder 1 år, {months, plural, one {# måned} other {# måneder}}",
|
||||
"age_years": "{years, plural, other {Age #}}",
|
||||
"album_added": "Album lagt til",
|
||||
"album_added_notification_setting_description": "Motta en e-postvarsling når du legges til i et delt album",
|
||||
"album_cover_updated": "Albumomslag oppdatert",
|
||||
"album_delete_confirmation": "Er du sikker på at du vil slette albumet {album}?\nHvis dette albumet er delt, vil ikke andre brukere ha tilgang til det lenger.",
|
||||
"album_delete_confirmation": "Er du sikker på at du vil slette albumet {album}?",
|
||||
"album_delete_confirmation_description": "Hvis dette albumet deles, vil andre brukere miste tilgangen til dette.",
|
||||
"album_info_updated": "Albuminformasjon oppdatert",
|
||||
"album_leave": "Forlate album?",
|
||||
|
@ -381,16 +419,30 @@
|
|||
"asset_uploading": "Laster opp...",
|
||||
"assets": "Filer",
|
||||
"assets_added_count": "Lagt til {count, plural, one {# element} other {# elementer}}",
|
||||
"assets_restore_confirmation": "Er du sikker på at du vil gjenopprette alle slettede eiendeler? Denne handlingen kan ikke angres!",
|
||||
"assets_added_to_album_count": "Lagt til {count, plural, one {# asset} other {# assets}} i album",
|
||||
"assets_added_to_name_count": "Lagt til {count, plural, one {# asset} other {# assets}} i {hasName, select, true {<b>{name}</b>} other {new album}}",
|
||||
"assets_count": "{count, plural, one {# asset} other {# assets}}",
|
||||
"assets_moved_to_trash_count": "Flyttet {count, plural, one {# asset} other {# assets}} til søppel",
|
||||
"assets_permanently_deleted_count": "Permanent slettet {count, plural, one {# asset} other {# assets}}",
|
||||
"assets_removed_count": "Slettet {count, plural, one {# asset} other {# assets}}",
|
||||
"assets_restore_confirmation": "Er du sikker på at du vil gjenopprette alle slettede eiendeler? Denne handlingen kan ikke angres! Vær oppmerksom på at frakoblede ressurser ikke kan gjenopprettes på denne måten.",
|
||||
"assets_restored_count": "Gjenopprettet {count, plural, one {# asset} other {# assets}}",
|
||||
"assets_trashed_count": "Kastet {count, plural, one {# asset} other {# assets}}",
|
||||
"assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}} er allerede lagt til i albumet",
|
||||
"authorized_devices": "Autoriserte enheter",
|
||||
"back": "Tilbake",
|
||||
"back_close_deselect": "Tilbake, lukk eller fjern merking",
|
||||
"backward": "Bakover",
|
||||
"birthdate_saved": "Fødselsdato er lagret vellykket.",
|
||||
"birthdate_saved": "Fødselsdato er vellykket lagret",
|
||||
"birthdate_set_description": "Fødelsdatoen er brukt for å beregne alderen til denne personen ved tidspunktet til bildet.",
|
||||
"blurred_background": "Uskarp bakgrunn",
|
||||
"bulk_delete_duplicates_confirmation": "Er du sikker på at du vil slette {count} dupliserte filer? Dette vil beholde største filen fra hver gruppe og vil permanent slette alle andre duplikater. Du kan ikke angre denne handlingen!",
|
||||
"bulk_keep_duplicates_confirmation": "Er du sikker på at du vil beholde {count} dupliserte filer? Dette vil løse alle dupliserte grupper uten å slette noe.",
|
||||
"bulk_trash_duplicates_confirmation": "Er du sikker på ønsker å slette {count} dupliserte filer? Dette vil beholde største filen fra hver gruppe, samt slette alle andre duplikater.",
|
||||
"bugs_and_feature_requests": "Feil og funksjonsforespørsler",
|
||||
"build": "Bygg",
|
||||
"build_image": "Lag Bilde",
|
||||
"bulk_delete_duplicates_confirmation": "Er du sikker på at du vil slette {count, plural, one {# duplicate asset} other {# duplicate assets}} dupliserte filer? Dette vil beholde største filen fra hver gruppe og vil permanent slette alle andre duplikater. Du kan ikke angre denne handlingen!",
|
||||
"bulk_keep_duplicates_confirmation": "Er du sikker på at du vil beholde {count, plural, one {# duplicate asset} other {# duplicate assets}} dupliserte filer? Dette vil løse alle dupliserte grupper uten å slette noe.",
|
||||
"bulk_trash_duplicates_confirmation": "Er du sikker på ønsker å slette {count, plural, one {# duplicate asset} other {# duplicate assets}} dupliserte filer? Dette vil beholde største filen fra hver gruppe, samt slette alle andre duplikater.",
|
||||
"buy": "Kjøp Immich",
|
||||
"camera": "Kamera",
|
||||
"camera_brand": "Kameramerke",
|
||||
"camera_model": "Kameramodell",
|
||||
|
@ -417,8 +469,11 @@
|
|||
"clear_all_recent_searches": "Fjern alle nylige søk",
|
||||
"clear_message": "Fjern melding",
|
||||
"clear_value": "Fjern verdi",
|
||||
"clockwise": "Med urviseren",
|
||||
"close": "Lukk",
|
||||
"collapse": "Trekk sammen",
|
||||
"collapse_all": "Kollaps alt",
|
||||
"color": "Farge",
|
||||
"color_theme": "Fargetema",
|
||||
"comment_deleted": "Kommentar slettet",
|
||||
"comment_options": "Kommentaralternativer",
|
||||
|
@ -427,6 +482,7 @@
|
|||
"confirm": "Bekreft",
|
||||
"confirm_admin_password": "Bekreft administratorpassord",
|
||||
"confirm_delete_shared_link": "Er du sikker på at du vil slette denne delte lenken?",
|
||||
"confirm_keep_this_delete_others": "Alle andre ressurser i denne stabelen vil bli slettet bortsett fra denne ressursen. Er du sikker på at du vil fortsette?",
|
||||
"confirm_password": "Bekreft passord",
|
||||
"contain": "Inneholder",
|
||||
"context": "Kontekst",
|
||||
|
@ -452,6 +508,8 @@
|
|||
"create_new_person": "Opprett ny person",
|
||||
"create_new_person_hint": "Tildel valgte eiendeler til en ny person",
|
||||
"create_new_user": "Opprett ny bruker",
|
||||
"create_tag": "Lag tag",
|
||||
"create_tag_description": "Lag en ny tag. For undertag, vennligst fullfør hele banen til taggen, inkludert forovervendt skråstrek.",
|
||||
"create_user": "Opprett Bruker",
|
||||
"created": "Opprettet",
|
||||
"current_device": "Nåværende enhet",
|
||||
|
@ -465,6 +523,10 @@
|
|||
"date_range": "Datoområde",
|
||||
"day": "Dag",
|
||||
"deduplicate_all": "De-dupliser alle",
|
||||
"deduplication_criteria_1": "Bilde størrelse i bytes",
|
||||
"deduplication_criteria_2": "Antall av EXIF data",
|
||||
"deduplication_info": "Dedupliseringsinformasjon",
|
||||
"deduplication_info_description": "For å automatisk forhåndsvelge eiendeler og fjerne duplikater samtidig, ser vi på:",
|
||||
"default_locale": "Standard språkinnstilling",
|
||||
"default_locale_description": "Formater datoer og tall basert på nettleserens språkinnstilling",
|
||||
"delete": "Slett",
|
||||
|
@ -474,14 +536,19 @@
|
|||
"delete_key": "Slett nøkkel",
|
||||
"delete_library": "Slett bibliotek",
|
||||
"delete_link": "Slett lenke",
|
||||
"delete_others": "Slett andre",
|
||||
"delete_shared_link": "Slett delt lenke",
|
||||
"delete_tag": "Slett tag",
|
||||
"delete_tag_confirmation_prompt": "Er du sikker på at du vil slette {tagName} tag?",
|
||||
"delete_user": "Slett bruker",
|
||||
"deleted_shared_link": "Slettet delt lenke",
|
||||
"deletes_missing_assets": "Slett eiendeler som mangler fra disk",
|
||||
"description": "Beskrivelse",
|
||||
"details": "Detaljer",
|
||||
"direction": "Retning",
|
||||
"disabled": "Deaktivert",
|
||||
"disallow_edits": "Forby redigering",
|
||||
"discord": "Discord",
|
||||
"discover": "Oppdag",
|
||||
"dismiss_all_errors": "Avvis alle feil",
|
||||
"dismiss_error": "Avvis feil",
|
||||
|
@ -490,14 +557,20 @@
|
|||
"display_original_photos": "Vis opprinnelige bilder",
|
||||
"display_original_photos_setting_description": "Foretrekk å vise det opprinnelige bildet når du ser på en fil i stedet for miniatyrbilder når den opprinnelige filen er kompatibel med nettet. Dette kan føre til tregere visning av bilder.",
|
||||
"do_not_show_again": "Ikke vis denne meldingen igjen",
|
||||
"documentation": "Dokumentasjon",
|
||||
"done": "Ferdig",
|
||||
"download": "Last ned",
|
||||
"download_include_embedded_motion_videos": "Innebygde videoer",
|
||||
"download_include_embedded_motion_videos_description": "Inkluder innebygde videoer i levende bilder som en egen fil",
|
||||
"download_settings": "Last ned",
|
||||
"download_settings_description": "Administrer innstillinger relatert til nedlasting av filer",
|
||||
"downloading": "Laster ned",
|
||||
"downloading_asset_filename": "Last ned {filename}",
|
||||
"drop_files_to_upload": "Slipp filer hvor som helst for å laste opp",
|
||||
"duplicates": "Duplikater",
|
||||
"duplicates_description": "Løs hver gruppe ved å angi hvilke, hvis noen, er duplikater",
|
||||
"duration": "Varighet",
|
||||
"edit": "Rediger",
|
||||
"edit_album": "Rediger album",
|
||||
"edit_avatar": "Rediger avatar",
|
||||
"edit_date": "Rediger dato",
|
||||
|
@ -509,62 +582,119 @@
|
|||
"edit_key": "Rediger nøkkel",
|
||||
"edit_link": "Endre lenke",
|
||||
"edit_location": "Endre lokasjon",
|
||||
"edit_name": "Endre navn",
|
||||
"edit_name": "Redigere navn",
|
||||
"edit_people": "Rediger personer",
|
||||
"edit_tag": "Rediger tag",
|
||||
"edit_title": "Rediger Tittel",
|
||||
"edit_user": "Rediger bruker",
|
||||
"edited": "Redigert",
|
||||
"editor": "Redaktør",
|
||||
"editor_close_without_save_prompt": "Endringene vil ikke bli lagret",
|
||||
"editor_close_without_save_title": "Lukk redigering?",
|
||||
"editor_crop_tool_h2_aspect_ratios": "Sideforhold",
|
||||
"editor_crop_tool_h2_rotation": "Rotasjon",
|
||||
"email": "E-postadresse",
|
||||
"empty_trash": "Tøm papirkurv",
|
||||
"enable": "",
|
||||
"enabled": "",
|
||||
"empty_trash_confirmation": "Er du sikker på at du vil tømme søppelbøtte ? Dette vil slette alle filene i søppelbøtta permanent fra Immich.\nDu kan ikke angre denne handlingen!",
|
||||
"enable": "Aktivere",
|
||||
"enabled": "Aktivert",
|
||||
"end_date": "Slutt dato",
|
||||
"error": "Feil",
|
||||
"error_loading_image": "Feil ved lasting av bilde",
|
||||
"error_title": "Feil - Noe gikk galt",
|
||||
"errors": {
|
||||
"cannot_navigate_next_asset": "Kan ikke navigere til neste fil",
|
||||
"cannot_navigate_previous_asset": "Kan ikke navigere til forrige fil",
|
||||
"cant_apply_changes": "Kan ikke legge til endringene",
|
||||
"cant_change_activity": "Kan ikke {enabled, select, true {disable} other {enable}} aktivitet",
|
||||
"cant_change_asset_favorite": "Kan ikke endre favoritt til filen",
|
||||
"cant_change_metadata_assets_count": "Kan ikke endre metadata for {count, plural, one {# asset} other {# assets}}",
|
||||
"cant_get_faces": "Kan ikke finne ansikter",
|
||||
"cant_get_number_of_comments": "Kan ikke hente antall kommentarer",
|
||||
"cant_search_people": "Kan ikke søke etter mennesker",
|
||||
"cant_search_places": "Kan ikke søke etter plasser",
|
||||
"cleared_jobs": "Fjernet jobber for: {job}",
|
||||
"error_adding_assets_to_album": "Feil med å legge til bilder til album",
|
||||
"error_adding_users_to_album": "Feil, kan ikke legge til brukere til album",
|
||||
"error_deleting_shared_user": "Feil med å slette delt bruker",
|
||||
"error_downloading": "Feil med å laste ned {filename}",
|
||||
"error_hiding_buy_button": "Feil med å skjule kjøp knapp",
|
||||
"error_removing_assets_from_album": "Feil med å fjerne bilder fra album, sjekk konsoll for mer detaljer",
|
||||
"error_selecting_all_assets": "Feil med å velge alle bilder",
|
||||
"exclusion_pattern_already_exists": "Dette eksklusjonsmønsteret eksisterer allerede.",
|
||||
"failed_job_command": "Kommandoen {command} mislyktes for jobben: {job}",
|
||||
"failed_to_create_album": "Feil med å lage album",
|
||||
"failed_to_create_shared_link": "Feil med å lage delt lenke",
|
||||
"failed_to_edit_shared_link": "Feilet med å redigere delt lenke",
|
||||
"failed_to_get_people": "Feilet med å finne mennesker",
|
||||
"failed_to_keep_this_delete_others": "Feilet med å beholde dette bilde og slette de andre",
|
||||
"failed_to_load_asset": "Feilet med å laste bilder",
|
||||
"failed_to_load_assets": "Feilet med å laste bilde",
|
||||
"failed_to_load_people": "Feilen med å laste mennesker",
|
||||
"failed_to_remove_product_key": "Feilet med å ta bort produkt nøkkel",
|
||||
"failed_to_stack_assets": "Feilet med å stable bilder",
|
||||
"failed_to_unstack_assets": "Feilet med å avstable bilder",
|
||||
"import_path_already_exists": "Denne importstien eksisterer allerede.",
|
||||
"incorrect_email_or_password": "Feil epost eller passord",
|
||||
"paths_validation_failed": "{paths, plural, one {# sti} other {# sti}} mislyktes validering",
|
||||
"profile_picture_transparent_pixels": "Profil bilde kan ikke ha gjennomsiktige piksler. Vennligst zoom inn og/eller flytt bilde.",
|
||||
"quota_higher_than_disk_size": "Du har satt en kvote høyere enn diskstørrelsen",
|
||||
"repair_unable_to_check_items": "Kan ikke sjekke {count, select, one {element} other {elementer}}",
|
||||
"unable_to_add_album_users": "Kan ikke legge til brukere i albumet",
|
||||
"unable_to_add_assets_to_shared_link": "Kan ikke legge til bilder til delt lenke",
|
||||
"unable_to_add_comment": "Kan ikke legge til kommentar",
|
||||
"unable_to_add_exclusion_pattern": "Kan ikke legge til eksklusjonsmønster",
|
||||
"unable_to_add_import_path": "Kan ikke legge til importsti",
|
||||
"unable_to_add_partners": "Kan ikke legge til partnere",
|
||||
"unable_to_add_remove_archive": "Kan ikke {archived, select, true {remove asset from} other {add asset to}} arkivet",
|
||||
"unable_to_add_remove_favorites": "Kan ikke {favorite, select, true {add asset to} other {remove asset from}} favoritter",
|
||||
"unable_to_archive_unarchive": "Kan ikke {archived, select, true {archive} other {unarchive}}",
|
||||
"unable_to_change_album_user_role": "Kan ikke endre brukerens rolle i albumet",
|
||||
"unable_to_change_date": "Kan ikke endre dato",
|
||||
"unable_to_change_favorite": "Kan ikke endre favoritt for bildet",
|
||||
"unable_to_change_location": "Kan ikke endre plassering",
|
||||
"unable_to_change_password": "Kan ikke endre passord",
|
||||
"unable_to_change_visibility": "Kan ikke endre synlighet for {count, plural, one {# person} other {# people}}",
|
||||
"unable_to_complete_oauth_login": "Kunne ikke fullføre OAuth innlogging",
|
||||
"unable_to_connect": "Kan ikke koble til",
|
||||
"unable_to_connect_to_server": "Kan ikke koble til server",
|
||||
"unable_to_copy_to_clipboard": "Kan ikke kopiere til utklippstavlen, sørg for at du får tilgang til siden via HTTPS",
|
||||
"unable_to_create_admin_account": "",
|
||||
"unable_to_create_admin_account": "Kan ikke opprette administrator bruker",
|
||||
"unable_to_create_api_key": "Kan ikke opprette en ny API-nøkkel",
|
||||
"unable_to_create_library": "Kan ikke opprette bibliotek",
|
||||
"unable_to_create_user": "Kan ikke opprette bruker",
|
||||
"unable_to_delete_album": "Kan ikke slette album",
|
||||
"unable_to_delete_asset": "Kan ikke slette filen",
|
||||
"unable_to_delete_assets": "Feil med å slette bilde",
|
||||
"unable_to_delete_exclusion_pattern": "Kan ikke slette eksklusjonsmønster",
|
||||
"unable_to_delete_import_path": "Kan ikke slette importsti",
|
||||
"unable_to_delete_shared_link": "Kan ikke slette delt lenke",
|
||||
"unable_to_delete_user": "Kan ikke slette bruker",
|
||||
"unable_to_download_files": "Kan ikke laste ned filer",
|
||||
"unable_to_edit_exclusion_pattern": "Kan ikke redigere eksklusjonsmønster",
|
||||
"unable_to_edit_import_path": "Kan ikke redigere importsti",
|
||||
"unable_to_empty_trash": "Kan ikke tømme papirkurven",
|
||||
"unable_to_enter_fullscreen": "Kan ikke gå inn i fullskjerm",
|
||||
"unable_to_exit_fullscreen": "Kan ikke gå ut fra fullskjerm",
|
||||
"unable_to_get_comments_number": "Kan ikke hente antall kommentarer",
|
||||
"unable_to_get_shared_link": "Kan ikke hente delt lenke",
|
||||
"unable_to_hide_person": "Kan ikke skjule person",
|
||||
"unable_to_link_motion_video": "Kan ikke lenke bevegelig video",
|
||||
"unable_to_link_oauth_account": "Kan ikke lenke til OAuth-konto",
|
||||
"unable_to_load_album": "Kan ikke laste inn album",
|
||||
"unable_to_load_asset_activity": "Kan ikke laste inn aktivitet for filen",
|
||||
"unable_to_load_items": "Kan ikke laste inn elementer",
|
||||
"unable_to_load_liked_status": "Kan ikke laste inn likt status",
|
||||
"unable_to_log_out_all_devices": "Kan ikke logge ut fra alle enheter",
|
||||
"unable_to_log_out_device": "Kan ikke logge ut av enhet",
|
||||
"unable_to_login_with_oauth": "Kan ikke logge inn med OAuth",
|
||||
"unable_to_play_video": "Kan ikke spille av video",
|
||||
"unable_to_reassign_assets_existing_person": "Kunne ikke endre bruker på bildene til {name, select, null {an existing person} other {{name}}}",
|
||||
"unable_to_reassign_assets_new_person": "Kunne ikke tildele bildene til en ny person",
|
||||
"unable_to_refresh_user": "Kan ikke oppdatere bruker",
|
||||
"unable_to_remove_album_users": "Kan ikke fjerne brukere fra album",
|
||||
"unable_to_remove_api_key": "Kan ikke fjerne API-nøkkel",
|
||||
"unable_to_remove_assets_from_shared_link": "Kunne ikke fjerne bilder fra delt lenke",
|
||||
"unable_to_remove_deleted_assets": "Kan ikke fjerne offlinefiler",
|
||||
"unable_to_remove_library": "Kan ikke fjerne bibliotek",
|
||||
"unable_to_remove_partner": "Kan ikke fjerne partner",
|
||||
|
@ -577,35 +707,48 @@
|
|||
"unable_to_restore_user": "Kan ikke gjenopprette bruker",
|
||||
"unable_to_save_album": "Kan ikke lagre album",
|
||||
"unable_to_save_api_key": "Kan ikke lagre API-nøkkel",
|
||||
"unable_to_save_date_of_birth": "Kunne ikke lagre bursdag",
|
||||
"unable_to_save_name": "Kan ikke lagre navn",
|
||||
"unable_to_save_profile": "Kan ikke lagre profil",
|
||||
"unable_to_save_settings": "Kan ikke lagre instillinger",
|
||||
"unable_to_scan_libraries": "Kan ikke skanne biblioteker",
|
||||
"unable_to_scan_library": "Kan ikke skanne bibliotek",
|
||||
"unable_to_set_feature_photo": "Kunne ikke sette funksjonsbilde",
|
||||
"unable_to_set_profile_picture": "Kan ikke sette profilbilde",
|
||||
"unable_to_submit_job": "Kan ikke sende inn jobb",
|
||||
"unable_to_trash_asset": "Kan ikke flytte filen til papirkurven",
|
||||
"unable_to_unlink_account": "Kan ikke fjerne kobling til konto",
|
||||
"unable_to_unlink_motion_video": "Kunne ikke ta på kobling på bevegelig video",
|
||||
"unable_to_update_album_cover": "Kunne ikke oppdatere album bilde",
|
||||
"unable_to_update_album_info": "Kunne ikke oppdatere informasjon i album",
|
||||
"unable_to_update_library": "Kan ikke oppdatere bibliotek",
|
||||
"unable_to_update_location": "Kan ikke oppdatere plassering",
|
||||
"unable_to_update_settings": "Kan ikke oppdatere innstillinger",
|
||||
"unable_to_update_timeline_display_status": "Kan ikke oppdatere visningsstatus for tidslinje",
|
||||
"unable_to_update_user": "Kan ikke oppdatere bruker"
|
||||
"unable_to_update_user": "Kan ikke oppdatere bruker",
|
||||
"unable_to_upload_file": "Kunne ikke laste opp fil"
|
||||
},
|
||||
"exif": "EXIF",
|
||||
"exit_slideshow": "Avslutt lysbildefremvisning",
|
||||
"expand_all": "Utvid alle",
|
||||
"expire_after": "Utgå etter",
|
||||
"expired": "Utgått",
|
||||
"expires_date": "Utløper {date}",
|
||||
"explore": "Utforsk",
|
||||
"explorer": "Utforsker",
|
||||
"export": "Eksporter",
|
||||
"export_as_json": "Eksporter som JSON",
|
||||
"extension": "Utvidelse",
|
||||
"external": "Ekstern",
|
||||
"external_libraries": "Eksterne Bibliotek",
|
||||
"face_unassigned": "Ikke tilordnet",
|
||||
"failed_to_load_assets": "Feilet med å laste fil",
|
||||
"favorite": "Favoritt",
|
||||
"favorite_or_unfavorite_photo": "Merk som favoritt eller fjern som favoritt",
|
||||
"favorites": "Favoritter",
|
||||
"feature_photo_updated": "Fremhevet bilde oppdatert",
|
||||
"features": "Funksjoner",
|
||||
"features_setting_description": "Administrerer funksjoner for appen",
|
||||
"file_name": "Filnavn",
|
||||
"file_name_or_extension": "Filnavn eller filtype",
|
||||
"filename": "Filnavn",
|
||||
|
@ -613,24 +756,45 @@
|
|||
"filter_people": "Filtrer personer",
|
||||
"find_them_fast": "Finn dem raskt ved søking av navn",
|
||||
"fix_incorrect_match": "Fiks feilaktig match",
|
||||
"folders": "Mapper",
|
||||
"folders_feature_description": "Utforsker mappe visning for bilder og videoer på fil systemet",
|
||||
"forward": "Fremover",
|
||||
"general": "Generelt",
|
||||
"get_help": "Få Hjelp",
|
||||
"getting_started": "Kom i gang",
|
||||
"go_back": "Gå tilbake",
|
||||
"go_to_folder": "Gå til mappe",
|
||||
"go_to_search": "Gå til søk",
|
||||
"group_albums_by": "Grupper album etter...",
|
||||
"group_no": "Ingen gruppering",
|
||||
"group_owner": "Grupper etter eiere",
|
||||
"group_year": "Grupper etter år",
|
||||
"has_quota": "Har kvote",
|
||||
"hi_user": "Hei {name} ({email})",
|
||||
"hide_all_people": "Skjul alle mennesker",
|
||||
"hide_gallery": "Skjul galleri",
|
||||
"hide_named_person": "Skjul {name}",
|
||||
"hide_password": "Skjul passord",
|
||||
"hide_person": "Skjul person",
|
||||
"hide_unnamed_people": "Skjul mennesker uten navn",
|
||||
"host": "Vert",
|
||||
"hour": "Time",
|
||||
"image": "Bilde",
|
||||
"image_alt_text_date": "{isVideo, select, true {Video} other {Image}} tatt på {date}",
|
||||
"image_alt_text_date_1_person": "{isVideo, select, true {Video} other {Image}} tatt med {person1} den {date}",
|
||||
"image_alt_text_date_2_people": "{isVideo, select, true {Video} other {Image}} tatt med {person1} og {person2} den {date}",
|
||||
"image_alt_text_date_3_people": "{isVideo, select, true {Video} other {Image}} tatt med {person1}, {person2}, og {person3} den {date}",
|
||||
"image_alt_text_date_4_or_more_people": "{isVideo, select, true {Video} other {Image}} tatt med {person1}, {person2}, og {additionalCount, number} andre den {date}",
|
||||
"image_alt_text_date_place": "{isVideo, select, true {Video} other {Image}} tatt i {city}, {country} den {date}",
|
||||
"image_alt_text_date_place_1_person": "{isVideo, select, true {Video} other {Image}} tatt i {city}, {country} med {person1} den {date}",
|
||||
"image_alt_text_date_place_2_people": "{isVideo, select, true {Video} other {Image}} tatt i {city}, {country} med {person1} og {person2} den {date}",
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} tatt i {city}, {country} med {person1}, {person2}, og {person3} den {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} tatt i {city}, {country} med {person1}, {person2}, ok {additionalCount, number} andre den {date}",
|
||||
"immich_logo": "Immich Logo",
|
||||
"immich_web_interface": "Immich webgrensesnitt",
|
||||
"import_from_json": "Importer fra JSON",
|
||||
"import_path": "Import-sti",
|
||||
"in_albums": "I {count, plural, one {# album} other {# albums}}",
|
||||
"in_archive": "I arkiv",
|
||||
"include_archived": "Inkluder arkiverte",
|
||||
"include_shared_albums": "Inkluder delte album",
|
||||
|
@ -645,19 +809,26 @@
|
|||
},
|
||||
"invite_people": "Inviter Personer",
|
||||
"invite_to_album": "Inviter til album",
|
||||
"items_count": "{count, plural, one {# item} other {# items}}",
|
||||
"jobs": "Oppgaver",
|
||||
"keep": "Behold",
|
||||
"keep_all": "Behold alle",
|
||||
"keep_this_delete_others": "Behold denne, slett de andre",
|
||||
"kept_this_deleted_others": "Behold denne filen og slett {count, plural, one {# asset} other {# assets}}",
|
||||
"keyboard_shortcuts": "Tastatursnarveier",
|
||||
"language": "Språk",
|
||||
"language_setting_description": "Velg ditt foretrukket språk",
|
||||
"last_seen": "Sist sett",
|
||||
"latest_version": "Siste versjon",
|
||||
"latitude": "Breddegrad",
|
||||
"leave": "Forlat",
|
||||
"let_others_respond": "La andre respondere",
|
||||
"level": "Nivå",
|
||||
"library": "Bibliotek",
|
||||
"library_options": "Bibliotekalternativer",
|
||||
"light": "Lys",
|
||||
"like_deleted": "Som slettede",
|
||||
"link_motion_video": "Koble bevegelsesvideo",
|
||||
"link_options": "Lenkealternativer",
|
||||
"link_to_oauth": "Lenke til OAuth",
|
||||
"linked_oauth_account": "Lenket til OAuth-konto",
|
||||
|
@ -666,10 +837,17 @@
|
|||
"loading_search_results_failed": "Klarte ikke å laste inn søkeresultater",
|
||||
"log_out": "Logg ut",
|
||||
"log_out_all_devices": "Logg ut fra alle enheter",
|
||||
"logged_out_all_devices": "Logg ut av alle enheter",
|
||||
"logged_out_device": "Logg ut enhet",
|
||||
"login": "Logg inn",
|
||||
"login_has_been_disabled": "Login har blitt deaktivert.",
|
||||
"logout_all_device_confirmation": "Er du sikker på at du vil logge ut av alle enheter?",
|
||||
"logout_this_device_confirmation": "Er du sikker på at du vil logge ut av denne enheten?",
|
||||
"longitude": "Lengdegrad",
|
||||
"look": "Se",
|
||||
"loop_videos": "Gjenta Videoer",
|
||||
"loop_videos_description": "Aktiver for å automatisk loope en video i detaljeviseren.",
|
||||
"main_branch_warning": "Du bruker en utviklingsversjon; vi anbefaler på det sterkeste og bruke en utgitt versjon!",
|
||||
"make": "Merke",
|
||||
"manage_shared_links": "Håndter delte linker",
|
||||
"manage_sharing_with_partners": "Administrer deling med partnere",
|
||||
|
@ -679,18 +857,22 @@
|
|||
"manage_your_devices": "Administrer dine innloggede enheter",
|
||||
"manage_your_oauth_connection": "Administrer tilkoblingen din med OAuth",
|
||||
"map": "Kart",
|
||||
"map_marker_for_images": "Kart makeringer for bilder tatt i {city}, {country}",
|
||||
"map_marker_with_image": "Kartmarkør med bilde",
|
||||
"map_settings": "Kartinnstillinger",
|
||||
"matches": "Samsvarende",
|
||||
"media_type": "Mediatype",
|
||||
"memories": "Minner",
|
||||
"memories_setting_description": "Administrer hva du ser i minnene dine",
|
||||
"memory": "Minne",
|
||||
"memory_lane_title": "Minnefelt {title}",
|
||||
"menu": "Meny",
|
||||
"merge": "Slå sammen",
|
||||
"merge_people": "Slå sammen personer",
|
||||
"merge_people_limit": "Du kan bare slå sammen opp til 5 fjes om gangen",
|
||||
"merge_people_prompt": "Vil du slå sammen disse personene? Denne handlingen kan ikke reverseres.",
|
||||
"merge_people_successfully": "Personene ble vellykket slått sammen",
|
||||
"merged_people_count": "Sammenslått {count, plural, one {# person} other {# people}}",
|
||||
"minimize": "Minimer",
|
||||
"minute": "Minutt",
|
||||
"missing": "Mangler",
|
||||
|
@ -702,15 +884,19 @@
|
|||
"name": "Navn",
|
||||
"name_or_nickname": "Navn eller kallenavn",
|
||||
"never": "aldri",
|
||||
"new_album": "Nytt Album",
|
||||
"new_api_key": "Ny API-nøkkel",
|
||||
"new_password": "Nytt passord",
|
||||
"new_person": "Ny person",
|
||||
"new_user_created": "Ny bruker opprettet",
|
||||
"new_version_available": "NY VERSJON TILGJENGELIG",
|
||||
"newest_first": "Nyeste først",
|
||||
"next": "Neste",
|
||||
"next_memory": "Neste minne",
|
||||
"no": "Nei",
|
||||
"no_albums_message": "Opprett et album for å organisere bildene og videoene dine",
|
||||
"no_albums_with_name_yet": "Det ser ut som om det ikke finnes noen album med dette navnet enda.",
|
||||
"no_albums_yet": "Det ser ut som om du ikke har noen album enda.",
|
||||
"no_archived_assets_message": "Arkiver bilder og videoer for å skjule dem fra visningen av bildene dine",
|
||||
"no_assets_message": "KLIKK FOR Å LASTE OPP DITT FØRSTE BILDE",
|
||||
"no_duplicates_found": "Ingen duplikater ble funnet.",
|
||||
|
@ -721,6 +907,7 @@
|
|||
"no_name": "Ingen navn",
|
||||
"no_places": "Ingen steder",
|
||||
"no_results": "Ingen resultater",
|
||||
"no_results_description": "Prøv et synonym eller mer generelt søkeord",
|
||||
"no_shared_albums_message": "Opprett et album for å dele bilder og videoer med personer i nettverket ditt",
|
||||
"not_in_any_album": "Ikke i noen album",
|
||||
"note_apply_storage_label_to_previously_uploaded assets": "Merk: For å bruke lagringsetiketten på tidligere opplastede filer, kjør",
|
||||
|
@ -730,21 +917,32 @@
|
|||
"notifications": "Notifikasjoner",
|
||||
"notifications_setting_description": "Administrer varsler",
|
||||
"oauth": "OAuth",
|
||||
"official_immich_resources": "Offisielle Immich Resurser",
|
||||
"offline": "Frakoblet",
|
||||
"offline_paths": "Frakoblede stier",
|
||||
"offline_paths_description": "Disse resultatene kan skyldes manuell sletting av filer som ikke er en del av et eksternt bibliotek.",
|
||||
"ok": "Ok",
|
||||
"oldest_first": "Eldste først",
|
||||
"onboarding": "Påmønstring",
|
||||
"onboarding_privacy_description": "Følgene (valgfrie) funksjoner er avhengige av eksterne tjeneste, og kan bli deaktivert når som helst under administrator instillinger.",
|
||||
"onboarding_theme_description": "Velg et fargetema for din bruker. Du kan endre denne senere under dine instillinger.",
|
||||
"onboarding_welcome_description": "La oss sette opp denne installasjonen med noen vanlige instillinger.",
|
||||
"onboarding_welcome_user": "Velkommen, {user}",
|
||||
"online": "Tilkoblet",
|
||||
"only_favorites": "Bare favoritter",
|
||||
"open_in_map_view": "Åpne i kartvisning",
|
||||
"open_in_openstreetmap": "Åpne i OpenStreetMap",
|
||||
"open_the_search_filters": "Åpne søkefiltrene",
|
||||
"options": "Valg",
|
||||
"or": "eller",
|
||||
"organize_your_library": "Organiser biblioteket ditt",
|
||||
"original": "original",
|
||||
"other": "Annet",
|
||||
"other_devices": "Andre enheter",
|
||||
"other_variables": "Andre variabler",
|
||||
"owned": "Ditt album",
|
||||
"owner": "Eier",
|
||||
"partner": "Partner",
|
||||
"partner_can_access": "{partner} har tilgang",
|
||||
"partner_can_access_assets": "Alle bildene og videoene dine unntatt de i arkivert og slettet tilstand",
|
||||
"partner_can_access_location": "Stedet der bildene dine ble tatt",
|
||||
|
@ -766,12 +964,21 @@
|
|||
"paused": "Satt på pause",
|
||||
"pending": "Avventer",
|
||||
"people": "Folk",
|
||||
"people_edits_count": "Endret {count, plural, one {# person} other {# people}}",
|
||||
"people_feature_description": "Utforsk bilder og videoer gruppert etter mennesker",
|
||||
"people_sidebar_description": "Vis en lenke til Personer i sidepanelet",
|
||||
"permanent_deletion_warning": "Advarsel om permanent sletting",
|
||||
"permanent_deletion_warning_setting_description": "Vis en advarsel ved permanent sletting av filer",
|
||||
"permanently_delete": "Slett permanent",
|
||||
"permanently_delete_assets_count": "Permanent slett {count, plural, one {asset} other {assets}}",
|
||||
"permanently_delete_assets_prompt": "Er du sikker på at du vil permanent slette {count, plural, one {this asset?} other {these <b>#</b> assets?}} Dette vil også slette {count, plural, one {it from its} other {them from their}} album.",
|
||||
"permanently_deleted_asset": "Filen har blitt permanent slettet",
|
||||
"permanently_deleted_assets_count": "Permanent slett {count, plural, one {# asset} other {# assets}}",
|
||||
"person": "Person",
|
||||
"person_hidden": "{name}{hidden, select, true { (hidden)} other {}}",
|
||||
"photo_shared_all_users": "Det ser ut som om du deler bildene med alle brukere eller det er ingen brukere å dele med.",
|
||||
"photos": "Bilder",
|
||||
"photos_and_videos": "Bilder & Videoer",
|
||||
"photos_count": "{count, plural, one {{count, number} Bilde} other {{count, number} Bilder}}",
|
||||
"photos_from_previous_years": "Bilder fra tidliger år",
|
||||
"pick_a_location": "Velg et sted",
|
||||
|
@ -788,77 +995,162 @@
|
|||
"previous_memory": "Forrige minne",
|
||||
"previous_or_next_photo": "Forrige eller neste bilde",
|
||||
"primary": "Primær",
|
||||
"privacy": "Privat",
|
||||
"profile_image_of_user": "Profil bilde av {user}",
|
||||
"profile_picture_set": "Profilbildet er satt.",
|
||||
"public_album": "Offentlige album",
|
||||
"public_share": "Offentlig deling",
|
||||
"purchase_account_info": "Støttespiller",
|
||||
"purchase_activated_subtitle": "Takk for at du støtter Immich og åpen kildekode programvare",
|
||||
"purchase_activated_time": "Aktiver den {date, date}",
|
||||
"purchase_activated_title": "Du produktnøkkel har vellyket blitt aktivert",
|
||||
"purchase_button_activate": "Aktiver",
|
||||
"purchase_button_buy": "Kjøp",
|
||||
"purchase_button_buy_immich": "Kjøp Immich",
|
||||
"purchase_button_never_show_again": "Aldri vis igjen",
|
||||
"purchase_button_reminder": "Påminn meg om 30 dager",
|
||||
"purchase_button_remove_key": "Ta bort produktnøkkel",
|
||||
"purchase_button_select": "Velg",
|
||||
"purchase_failed_activation": "Feilet med å aktivere! Vennligst sjekk eposten for riktig produktnøkkel!",
|
||||
"purchase_individual_description_1": "For en person",
|
||||
"purchase_individual_description_2": "Støttespiller status",
|
||||
"purchase_individual_title": "Individuell",
|
||||
"purchase_input_suggestion": "Har du en produktnøkkel? Legg til denne under",
|
||||
"purchase_license_subtitle": "Kjøp Immich for å støtte den videre utviklingen av systemet",
|
||||
"purchase_lifetime_description": "Kjøp for livstid",
|
||||
"purchase_option_title": "KJØPSVALG",
|
||||
"purchase_panel_info_1": "Å lage Immich tar mye tid og energi, og nå har vi en fulltidsansatt utvikler som jobber med å gjøre produktet så godt vi kan. Vårt oppdrag er for åpen-kildekode programvare og etisk virksomhets praktisk å kunne bli bærekraftig inntekt for utviklere og for å lage privat repekterte økesystem med mulighet for å tilby skytjeneste.",
|
||||
"purchase_panel_info_2": "Siden har forpliktet oss ikke å legge til betalingsmurer, vil dette kjøpet ikke gi deg noen tilleggsfunksjoner i Immich. Vi er avhengige av brukere som deg for å støtte Immichs pågående utvikling.",
|
||||
"purchase_panel_title": "Hjelp prosjektet",
|
||||
"purchase_per_server": "For hver server",
|
||||
"purchase_per_user": "For hver bruker",
|
||||
"purchase_remove_product_key": "Ta bor Produktnøkkel",
|
||||
"purchase_remove_product_key_prompt": "Er du sikker på at du vil ta bort produktnøkkelen?",
|
||||
"purchase_remove_server_product_key": "Ta bort Server Produktnøkkel",
|
||||
"purchase_remove_server_product_key_prompt": "Er du sikker på at du vil ta bort Server Produktnøkkelen?",
|
||||
"purchase_server_description_1": "For hele serveren",
|
||||
"purchase_server_description_2": "Støttespiller status",
|
||||
"purchase_server_title": "Server",
|
||||
"purchase_settings_server_activated": "Produktnøkkel for server er administrert av administratoren",
|
||||
"rating": "Stjernevurdering",
|
||||
"rating_clear": "Slett vurdering",
|
||||
"rating_count": "{count, plural, one {# star} other {# stars}}",
|
||||
"rating_description": "Hvis EXIF vurdering i informasjons panelet",
|
||||
"reaction_options": "Reaksjonsalternativer",
|
||||
"read_changelog": "Les endringslogg",
|
||||
"reassign": "Tilordne på nytt",
|
||||
"reassigned_assets_to_existing_person": "Tildelt på nytt {count, plural, one {# asset} other {# assets}} to {name, select, null {an existing person} other {{name}}}",
|
||||
"reassigned_assets_to_new_person": "Tildelt på nytt {count, plural, one {# asset} other {# assets}} til en ny person",
|
||||
"reassing_hint": "Tilordne valgte eiendeler til en eksisterende person",
|
||||
"recent": "Nylig",
|
||||
"recent-albums": "Nylige album",
|
||||
"recent_searches": "Nylige søk",
|
||||
"refresh": "Oppdater",
|
||||
"refresh_encoded_videos": "Oppdater kodete videoer",
|
||||
"refresh_faces": "Oppdater ansikter",
|
||||
"refresh_metadata": "Oppdater metadata",
|
||||
"refresh_thumbnails": "Oppdater miniatyrbilder",
|
||||
"refreshed": "Oppdatert",
|
||||
"refreshes_every_file": "Oppdaterer alle filer",
|
||||
"refreshing_encoded_video": "Oppdaterer kodete video",
|
||||
"refreshing_faces": "Oppdaterer ansikter",
|
||||
"refreshing_metadata": "Oppdaterer matadata",
|
||||
"regenerating_thumbnails": "Regenererer miniatyrbilder",
|
||||
"remove": "Fjern",
|
||||
"remove_assets_album_confirmation": "Er du sikker på at du fil slette {count, plural, one {# asset} other {# assets}} fra albumet?",
|
||||
"remove_assets_shared_link_confirmation": "Er du sikker på at du vil slette {count, plural, one {# asset} other {# assets}} fra den delte lenken?",
|
||||
"remove_assets_title": "Vil du fjerne eiendeler?",
|
||||
"remove_custom_date_range": "Fjern egendefinert datoperiode",
|
||||
"remove_deleted_assets": "Fjern fra frakoblede filer",
|
||||
"remove_from_album": "Fjern fra album",
|
||||
"remove_from_favorites": "Fjern fra favoritter",
|
||||
"remove_from_shared_link": "Fjern fra delt lenke",
|
||||
"remove_url": "Fjern URL",
|
||||
"remove_user": "Fjern bruker",
|
||||
"removed_api_key": "Fjernet API-nøkkel: {name}",
|
||||
"removed_from_archive": "Fjernet fra arkivet",
|
||||
"removed_from_favorites": "Fjernet fra favoritter",
|
||||
"removed_from_favorites_count": "{count, plural, other {Removed #}} fra favoritter",
|
||||
"removed_tagged_assets": "Fjern tag fra {count, plural, one {# asset} other {# assets}}",
|
||||
"rename": "Gi nytt navn",
|
||||
"repair": "Reparer",
|
||||
"repair_no_results_message": "Usporrede og savnede filer vil vises her",
|
||||
"replace_with_upload": "Erstatte med opplasting",
|
||||
"repository": "Depot",
|
||||
"require_password": "Krev passord",
|
||||
"require_user_to_change_password_on_first_login": "Krev at brukeren endrer passord ved første pålogging",
|
||||
"reset": "Tilbakestill",
|
||||
"reset_password": "Tilbakestill passord",
|
||||
"reset_people_visibility": "Tilbakestill personsynlighet",
|
||||
"reset_to_default": "Tilbakestill til standard",
|
||||
"resolve_duplicates": "Løs duplikater",
|
||||
"resolved_all_duplicates": "Løste alle duplikater",
|
||||
"restore": "Gjenopprett",
|
||||
"restore_all": "Gjenopprett alle",
|
||||
"restore_user": "Gjenopprett bruker",
|
||||
"restored_asset": "Gjenopprettet ressurs",
|
||||
"resume": "Fortsett",
|
||||
"retry_upload": "Prøv opplasting på nytt",
|
||||
"review_duplicates": "Gjennomgå duplikater",
|
||||
"role": "Rolle",
|
||||
"role_editor": "Editor",
|
||||
"role_viewer": "Visning",
|
||||
"save": "Lagre",
|
||||
"saved_api_key": "Lagret API-nøkkel",
|
||||
"saved_profile": "Lagret profil",
|
||||
"saved_settings": "Lagret instillinger",
|
||||
"say_something": "Si noe",
|
||||
"scan_all_libraries": "Skann alle biblioteker",
|
||||
"scan_library": "Skann",
|
||||
"scan_settings": "Skanneinnstillinger",
|
||||
"scanning_for_album": "Skanner etter album...",
|
||||
"search": "Søk",
|
||||
"search_albums": "Søk i album",
|
||||
"search_by_context": "Søk etter kontekst",
|
||||
"search_by_filename": "Søk etter filnavn og filtype",
|
||||
"search_by_filename_example": "f.eks. IMG_1234.JPG eller PNG",
|
||||
"search_camera_make": "Søk etter kameramerke...",
|
||||
"search_camera_model": "Søk etter kamera modell...",
|
||||
"search_city": "Søk etter by...",
|
||||
"search_country": "Søk etter land...",
|
||||
"search_for_existing_person": "Søk etter eksisterende person",
|
||||
"search_no_people": "Ingen personer",
|
||||
"search_no_people_named": "Ingen personer med navnet \"{name}\"",
|
||||
"search_options": "Søke alternativer",
|
||||
"search_people": "Søk personer",
|
||||
"search_places": "Søk steder",
|
||||
"search_settings": "Søke instillinger",
|
||||
"search_state": "Søk etter stat...",
|
||||
"search_tags": "Søk tags...",
|
||||
"search_timezone": "Søk etter tidssone....",
|
||||
"search_type": "Søk etter type",
|
||||
"search_your_photos": "Søk i dine bilder",
|
||||
"searching_locales": "Søker lokaler...",
|
||||
"second": "Sekund",
|
||||
"see_all_people": "Vis alle mennesker",
|
||||
"select_album_cover": "Velg albumomslag",
|
||||
"select_all": "Velg alle",
|
||||
"select_all_duplicates": "Velg alle duplikater",
|
||||
"select_avatar_color": "Velg avatarfarge",
|
||||
"select_face": "Velg ansikt",
|
||||
"select_featured_photo": "Velg fremhevet bilde",
|
||||
"select_from_computer": "Velg fra datamaskin",
|
||||
"select_keep_all": "Velg beholde alle",
|
||||
"select_library_owner": "Velg bibliotekseier",
|
||||
"select_new_face": "Velg nytt ansikt",
|
||||
"select_photos": "Velg bilder",
|
||||
"select_trash_all": "Velg å flytte alt til papirkurven",
|
||||
"selected": "Valgt",
|
||||
"selected_count": "{count, plural, other {# selected}}",
|
||||
"send_message": "Send melding",
|
||||
"send_welcome_email": "Send velkomstmelding",
|
||||
"server_offline": "Server frakoblet",
|
||||
"server_online": "Server tilkoblet",
|
||||
"server_stats": "Server Statistikk",
|
||||
"server_version": "Server Versjon",
|
||||
"set": "Sett",
|
||||
"set_as_album_cover": "Sett som albumomslag",
|
||||
"set_as_featured_photo": "Angi som fremhevet bilde",
|
||||
"set_as_profile_picture": "Sett som profilbilde",
|
||||
"set_date_of_birth": "Sett fødselsdato",
|
||||
"set_profile_picture": "Sett profilbilde",
|
||||
|
@ -868,14 +1160,20 @@
|
|||
"share": "Del",
|
||||
"shared": "Delt",
|
||||
"shared_by": "Delt av",
|
||||
"shared_by_user": "Delt av {user}",
|
||||
"shared_by_you": "Delt av deg",
|
||||
"shared_from_partner": "Bilder fra {partner}",
|
||||
"shared_link_options": "Alternativer for delte lenke",
|
||||
"shared_links": "Delte linker",
|
||||
"shared_photos_and_videos_count": "{assetCount} delte bilder og videoer.",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# delte bilder og videoer.}}",
|
||||
"shared_with_partner": "Delt med {partner}",
|
||||
"sharing": "Deling",
|
||||
"sharing_enter_password": "Vennligst skriv inn passordet for å se denne siden.",
|
||||
"sharing_sidebar_description": "Vis en lenke til Deling i sidepanelet",
|
||||
"shift_to_permanent_delete": "trykk ⇧ for å slette eiendeler permanent",
|
||||
"show_album_options": "Vis albumalternativer",
|
||||
"show_albums": "Vis album",
|
||||
"show_all_people": "Vis alle mennesker",
|
||||
"show_and_hide_people": "Vis og skjul personer",
|
||||
"show_file_location": "Vis filplassering",
|
||||
"show_gallery": "Vis galleri",
|
||||
|
@ -889,16 +1187,34 @@
|
|||
"show_person_options": "Vis personalternativer",
|
||||
"show_progress_bar": "Vis fremdriftslinje",
|
||||
"show_search_options": "Vis søkealternativer",
|
||||
"show_slideshow_transition": "Vis overgang til lysbildefremvisning",
|
||||
"show_supporter_badge": "Supportermerke",
|
||||
"show_supporter_badge_description": "Vis et supportermerke",
|
||||
"shuffle": "Bland",
|
||||
"sidebar": "Sidefelt",
|
||||
"sidebar_display_description": "Vis en lenke for visningen i sidefeltet",
|
||||
"sign_out": "Logg ut",
|
||||
"sign_up": "Registrer deg",
|
||||
"size": "Størrelse",
|
||||
"skip_to_content": "Gå til innhold",
|
||||
"skip_to_folders": "Hopp til mapper",
|
||||
"skip_to_tags": "Hopp til tagger",
|
||||
"slideshow": "Lysbildefremvisning",
|
||||
"slideshow_settings": "Lysbildefremvisning innstillinger",
|
||||
"sort_albums_by": "Sorter album etter...",
|
||||
"sort_created": "Dato opprettet",
|
||||
"sort_items": "Antall enheter",
|
||||
"sort_modified": "Dato modifisert",
|
||||
"sort_oldest": "Eldste bilde",
|
||||
"sort_people_by_similarity": "Sorter folk etter likhet",
|
||||
"sort_recent": "Nyeste bilde",
|
||||
"sort_title": "Tittel",
|
||||
"source": "Kilde",
|
||||
"stack": "Stable",
|
||||
"stack_duplicates": "Stable duplikater",
|
||||
"stack_select_one_photo": "Velg hovedbilde for bildestabbel",
|
||||
"stack_selected_photos": "Stable valgte bilder",
|
||||
"stacked_assets_count": "Stable {count, plural, one {# asset} other {# assets}}",
|
||||
"stacktrace": "Stakkspor",
|
||||
"start": "Start",
|
||||
"start_date": "Startdato",
|
||||
|
@ -914,68 +1230,121 @@
|
|||
"submit": "Send inn",
|
||||
"suggestions": "Forslag",
|
||||
"sunrise_on_the_beach": "Soloppgang på stranden",
|
||||
"support": "Støtte",
|
||||
"support_and_feedback": "Støtte og Tilbakemelding",
|
||||
"support_third_party_description": "Immich-installasjonen din ble pakket av en tredjepart. Problemer du opplever kan være forårsaket av den pakken, så vennligst ta opp problemer med dem i første omgang ved å bruke koblingene nedenfor.",
|
||||
"swap_merge_direction": "Bytt retning på sammenslåingen",
|
||||
"sync": "Synkroniser",
|
||||
"tag": "Tagg",
|
||||
"tag_assets": "Merk ressurser",
|
||||
"tag_created": "Lag merke: {tag}",
|
||||
"tag_feature_description": "Bla gjennom bilder og videoer gruppert etter logiske merke-emner",
|
||||
"tag_not_found_question": "Finner du ikke en merke? <link>Opprett en nytt merke.</link>",
|
||||
"tag_updated": "Oppdater merke: {tag}",
|
||||
"tagged_assets": "Merket {count, plural, one {# asset} other {# assets}}",
|
||||
"tags": "Merker",
|
||||
"template": "Mal",
|
||||
"theme": "Tema",
|
||||
"theme_selection": "Temavalg",
|
||||
"theme_selection_description": "Automatisk sett tema til lys eller mørk basert på nettleserens systeminnstilling",
|
||||
"they_will_be_merged_together": "De vil bli slått sammen",
|
||||
"third_party_resources": "Tredjeparts Ressurser",
|
||||
"time_based_memories": "Tidsbaserte minner",
|
||||
"timeline": "Tidslinje",
|
||||
"timezone": "Tidssone",
|
||||
"to_archive": "Arkiv",
|
||||
"to_change_password": "Endre passord",
|
||||
"to_favorite": "Favoritt",
|
||||
"to_login": "Logg inn",
|
||||
"to_parent": "Gå til overodnet",
|
||||
"to_trash": "Papirkurv",
|
||||
"toggle_settings": "Bytt innstillinger",
|
||||
"toggle_theme": "Bytt tema",
|
||||
"total": "Total",
|
||||
"total_usage": "Totalt brukt",
|
||||
"trash": "Papirkurv",
|
||||
"trash_all": "Slett alt",
|
||||
"trash_count": "Slett {count, number}",
|
||||
"trash_delete_asset": "Slett ressurs",
|
||||
"trash_no_results_message": "Her vises bilder og videoer som er flyttet til papirkurven.",
|
||||
"trashed_items_will_be_permanently_deleted_after": "Elementer i papirkurven vil bli permanent slettet etter {days, plural, one {# dag} other {# dager}}.",
|
||||
"type": "Type",
|
||||
"unarchive": "Fjern fra arkiv",
|
||||
"unarchived_count": "{count, plural, other {Unarchived #}}",
|
||||
"unfavorite": "Fjern favoritt",
|
||||
"unhide_person": "Vis person",
|
||||
"unknown": "Ukjent",
|
||||
"unknown_year": "Ukjent År",
|
||||
"unlimited": "Ubegrenset",
|
||||
"unlink_motion_video": "Koble fra bevegelsesvideo",
|
||||
"unlink_oauth": "Fjern kobling til OAuth",
|
||||
"unlinked_oauth_account": "Koblet fra OAuth-konto",
|
||||
"unnamed_album": "Navnløst album",
|
||||
"unnamed_album_delete_confirmation": "Er du sikker på at du vil slette dette albumet?",
|
||||
"unnamed_share": "Deling uten navn",
|
||||
"unsaved_change": "Ulagrede endringer",
|
||||
"unselect_all": "Fjern alle valg",
|
||||
"unselect_all_duplicates": "Fjern markeringen av alle duplikater",
|
||||
"unstack": "avstable",
|
||||
"unstacked_assets_count": "Ikke stablet {count, plural, one {# asset} other {# assets}}",
|
||||
"untracked_files": "Usporede Filer",
|
||||
"untracked_files_decription": "Disse filene er ikke sporet av applikasjonen. De kan være resultatet av mislykkede flyttinger, avbrutte opplastinger eller etterlatt på grunn av en feil",
|
||||
"up_next": "Neste",
|
||||
"updated_password": "Passord oppdatert",
|
||||
"upload": "Last opp",
|
||||
"upload_concurrency": "Samtidig opplastning",
|
||||
"upload_errors": "Opplasting fullført med {count, plural, one {# error} other {# errors}}, oppdater siden for å se nye opplastingsressurser.",
|
||||
"upload_progress": "Gjenstående {remaining, number} – behandlet {processed, number}/{total, number}",
|
||||
"upload_skipped_duplicates": "Hoppet over {count, plural, one {# duplicate asset} other {# duplicate assets}}",
|
||||
"upload_status_duplicates": "Duplikater",
|
||||
"upload_status_errors": "Feil",
|
||||
"upload_status_uploaded": "Opplastet",
|
||||
"upload_success": "Opplasting vellykket, oppdater siden for å se nye opplastninger.",
|
||||
"url": "URL",
|
||||
"usage": "Bruk",
|
||||
"use_custom_date_range": "Bruk egendefinert datoperiode i stedet",
|
||||
"user": "Bruker",
|
||||
"user_id": "Bruker ID",
|
||||
"user_liked": "{user} likte {type, select, photo {this photo} video {this video} asset {this asset} other {it}}",
|
||||
"user_purchase_settings": "Kjøpe",
|
||||
"user_purchase_settings_description": "Administrer dine kjøp",
|
||||
"user_role_set": "Sett {user} som {role}",
|
||||
"user_usage_detail": "Detaljer av brukers forbruk",
|
||||
"user_usage_stats": "Kontobruksstatistikk",
|
||||
"user_usage_stats_description": "Vis kontobruksstatistikk",
|
||||
"username": "Brukernavn",
|
||||
"users": "Brukere",
|
||||
"utilities": "Verktøy",
|
||||
"validate": "Valider",
|
||||
"variables": "Variabler",
|
||||
"version": "Versjon",
|
||||
"version_announcement_closing": "Din venn, Alex",
|
||||
"version_announcement_message": "Hei! En ny versjon av Immich er tilgjengelig. Vennligst ta deg tid til å lese <link>utgivelsesnotatene</link> for å sikre at oppsettet ditt er oppdatert for å forhindre feilkonfigurasjoner, spesielt hvis du bruker WatchTower eller en annen mekanisme som håndterer oppdatering av Immich-forekomsten din automatisk.",
|
||||
"version_history": "Verson Historie",
|
||||
"version_history_item": "Installert {version} den {date}",
|
||||
"video": "Video",
|
||||
"video_hover_setting": "Spill av forhåndsvisining mens du holder over musepekeren",
|
||||
"video_hover_setting_description": "Spill av forhåndsvisning mens en musepeker er over elementet. Selv når den er deaktivert, kan avspilling startes ved å holde musepekeren over avspillingsikonet.",
|
||||
"videos": "Videoer",
|
||||
"videos_count": "{count, plural, one {# Video} other {# Videoer}}",
|
||||
"view": "Vis",
|
||||
"view_album": "Vis Album",
|
||||
"view_all": "Vis alle",
|
||||
"view_all_users": "Vis alle brukere",
|
||||
"view_in_timeline": "Vis i tidslinje",
|
||||
"view_links": "Vis lenker",
|
||||
"view_name": "Vis",
|
||||
"view_next_asset": "Vis neste fil",
|
||||
"view_previous_asset": "Vis forrige fil",
|
||||
"view_stack": "Vis Stabbel",
|
||||
"visibility_changed": "Synlighet endret for {count, plural, one {# person} other {# people}}",
|
||||
"waiting": "Venter",
|
||||
"warning": "Advarsel",
|
||||
"week": "Uke",
|
||||
"welcome": "Velkommen",
|
||||
"welcome_to_immich": "Velkommen til Immich",
|
||||
"year": "År",
|
||||
"years_ago": "{years, plural, one {# year} other {# years}} siden",
|
||||
"yes": "Ja",
|
||||
"you_dont_have_any_shared_links": "Du har ingen delte lenker",
|
||||
"zoom_image": "Zoom Bilde"
|
||||
|
|
15
i18n/nl.json
15
i18n/nl.json
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Constant rate factor (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Niveau voor videokwaliteit. Typische waarden zijn 23 voor H.264, 28 voor HEVC, 31 voor VP9 en 35 voor AV1. Lager is beter, maar produceert grotere bestanden.",
|
||||
"transcoding_disabled_description": "Transcodeer geen video's. Het afspelen kan op sommige clients niet meer werken",
|
||||
"transcoding_encoding_options": "Coderings Opties",
|
||||
"transcoding_encoding_options_description": "Stel codecs, resolutie, kwaliteit en andere opties in voor de gecodeerde video's",
|
||||
"transcoding_hardware_acceleration": "Hardware acceleratie",
|
||||
"transcoding_hardware_acceleration_description": "Experimenteel; veel sneller, maar zal een lagere kwaliteit hebben bij dezelfde bitrate",
|
||||
"transcoding_hardware_decoding": "Hardware decodering",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Maximum keyframe interval",
|
||||
"transcoding_max_keyframe_interval_description": "Stelt de maximale frameafstand tussen keyframes in. Lagere waarden verslechteren de compressie efficiëntie, maar verbeteren de zoektijden en kunnen de kwaliteit verbeteren in scènes met snelle bewegingen. 0 stelt deze waarde automatisch in.",
|
||||
"transcoding_optimal_description": "Video's met een hogere resolutie dan de doelresolutie of niet in een geaccepteerd formaat",
|
||||
"transcoding_policy": "Transcode beleid",
|
||||
"transcoding_policy_description": "Stel in wanneer een video wordt getranscodeerd",
|
||||
"transcoding_preferred_hardware_device": "Voorkeur hardwareapparaat",
|
||||
"transcoding_preferred_hardware_device_description": "Geldt alleen voor VAAPI en QSV. Stelt de dri node in die wordt gebruikt voor hardwaretranscodering.",
|
||||
"transcoding_preset_preset": "Preset (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Het aantal frames om naar te verwijzen bij het comprimeren van een bepaald frame. Hogere waarden verbeteren de compressie-efficiëntie, maar vertragen de codering. Bij 0 wordt deze waarde automatisch ingesteld.",
|
||||
"transcoding_required_description": "Alleen video's die geen geaccepteerd formaat hebben",
|
||||
"transcoding_settings": "Instellingen voor videotranscodering",
|
||||
"transcoding_settings_description": "Beheer de resolutie en coderingsgegevens van de videobestanden",
|
||||
"transcoding_settings_description": "Beheer welke videos worden getranscodeerd en hoe ze worden verwerkt",
|
||||
"transcoding_target_resolution": "Target resolutie",
|
||||
"transcoding_target_resolution_description": "Hogere resoluties kunnen meer details behouden, maar het coderen ervan duurt langer, de bestandsgrootte is groter en de app reageert mogelijk minder snel.",
|
||||
"transcoding_temporal_aq": "Temporal AQ",
|
||||
|
@ -322,7 +326,7 @@
|
|||
"transcoding_transcode_policy_description": "Beleid voor wanneer een video getranscodeerd moet worden. HDR-video's worden altijd getranscodeerd (behalve als transcodering is uitgeschakeld).",
|
||||
"transcoding_two_pass_encoding": "Two-pass encodering",
|
||||
"transcoding_two_pass_encoding_setting_description": "Transcodeer in twee passes om beter gecodeerde video's te produceren. Wanneer de maximale bitrate is ingeschakeld (vereist om te werken met H.264 en HEVC), gebruikt deze modus een bitraterange op basis van de maximale bitrate en negeert CRF. Voor VP9 kan CRF worden gebruikt als de maximale bitrate is uitgeschakeld.",
|
||||
"transcoding_video_codec": "Video codec",
|
||||
"transcoding_video_codec": "Video Codec",
|
||||
"transcoding_video_codec_description": "VP9 heeft een hoge efficiëntie en webcompatibiliteit, maar duurt langer om te transcoderen. HEVC presteert vergelijkbaar, maar heeft een lagere webcompatibiliteit. H.264 is breed compatibel en snel om te transcoderen, maar produceert veel grotere bestanden. AV1 is de meest efficiënte codec, maar mist ondersteuning op oudere apparaten.",
|
||||
"trash_enabled_description": "Prullenbakfuncties inschakelen",
|
||||
"trash_number_of_days": "Aantal dagen",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Datumbereik",
|
||||
"day": "Dag",
|
||||
"deduplicate_all": "Alles dedupliceren",
|
||||
"deduplication_criteria_1": "Grootte van afbeelding in bytes",
|
||||
"deduplication_criteria_2": "Aantal EXIF data",
|
||||
"deduplication_info": "Deduplicatie-info",
|
||||
"deduplication_info_description": "Om automatisch bezittingen te preselecteren en duplicaten te verwijderen in bulk, kijken we naar:",
|
||||
"default_locale": "Standaard landinstelling",
|
||||
"default_locale_description": "Formatteer datums en getallen op basis van de landinstellingen van je browser",
|
||||
"delete": "Verwijderen",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Krijg hulp",
|
||||
"getting_started": "Aan de slag",
|
||||
"go_back": "Ga terug",
|
||||
"go_to_folder": "Ga naar map",
|
||||
"go_to_search": "Ga naar zoeken",
|
||||
"group_albums_by": "Groepeer albums op...",
|
||||
"group_no": "Niet groeperen",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Server versie",
|
||||
"set": "Instellen",
|
||||
"set_as_album_cover": "Stel in als album cover",
|
||||
"set_as_featured_photo": "Instellen als uitgelichte foto",
|
||||
"set_as_profile_picture": "Instellen als profielfoto",
|
||||
"set_date_of_birth": "Geboortedatum instellen",
|
||||
"set_profile_picture": "Profielfoto instellen",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Aantal items",
|
||||
"sort_modified": "Datum aangepast",
|
||||
"sort_oldest": "Oudste foto",
|
||||
"sort_people_by_similarity": "Sorteer personen op gelijkenis",
|
||||
"sort_recent": "Meest recente foto",
|
||||
"sort_title": "Titel",
|
||||
"source": "Bron",
|
||||
|
|
262
i18n/nn.json
262
i18n/nn.json
|
@ -28,6 +28,264 @@
|
|||
"added_to_favorites": "Lagt til favorittar",
|
||||
"added_to_favorites_count": "Lagt {count, number} til favorittar",
|
||||
"admin": {
|
||||
"confirm_delete_library": "Er du sikker på at du vil slette biblioteket {library}?"
|
||||
}
|
||||
"asset_offline_description": "Denne eksterne bibliotekressursen finst ikkje lenger på disk og har blitt flytta til papirkurven. Om fila blei flytta innad i biblioteket, sjekk tidslinja di for den tilsvarande ressursen. For å gjenopprette ressursen, vennligst sørg for at filstien under er tilgjengeleg for Immich og skann biblioteket.",
|
||||
"backup_settings": "Backupinnstillingar",
|
||||
"check_all": "Sjekk alle",
|
||||
"confirm_delete_library": "Er du sikker på at du vil slette biblioteket {library}?",
|
||||
"create_job": "Lag jobb",
|
||||
"disable_login": "Deaktiver innlogging",
|
||||
"face_detection": "Ansiktsdeteksjon",
|
||||
"image_format": "Format",
|
||||
"image_preview_title": "Forhandsvis innstillingar",
|
||||
"image_quality": "Kvalitet",
|
||||
"image_resolution": "Oppløysing",
|
||||
"image_thumbnail_description": "Lite miniatyrbilete med fjerna metadata, brukt når ein ser på grupper av bilete som hovudtidslinja",
|
||||
"job_created": "Jobb laga",
|
||||
"job_settings": "Jobbinnstillingar",
|
||||
"job_status": "Jobbstatus",
|
||||
"library_deleted": "Bibliotek sletta",
|
||||
"library_scanning": "Periodisk skanning",
|
||||
"library_settings": "Eksternt Bibliotek",
|
||||
"logging_settings": "Logging",
|
||||
"machine_learning_duplicate_detection": "Duplikatdeteksjon",
|
||||
"machine_learning_facial_recognition": "Ansiktsgjenkjenning",
|
||||
"machine_learning_smart_search": "Smart Søk",
|
||||
"map_dark_style": "Mørk modus",
|
||||
"map_light_style": "Lys modus",
|
||||
"map_settings": "Kart",
|
||||
"metadata_extraction_job": "Hent ut metadata",
|
||||
"metadata_settings": "Metadata Innstillinger",
|
||||
"migration_job": "Migrasjon",
|
||||
"notification_email_from_address": "Frå adresse",
|
||||
"notification_settings": "Varselinnstillingar",
|
||||
"oauth_auto_launch": "Autostart",
|
||||
"oauth_button_text": "Tekst på knapp",
|
||||
"password_settings": "Passord innlogging",
|
||||
"person_cleanup_job": "Personopprydding",
|
||||
"registration": "Administrator registrering",
|
||||
"registration_description": "Sidan du er den første brukaren på systemet, vil du bli utnevnt til administrator og ha ansvar for administrative oppgåver. Du vil òg opprette eventuelle nye brukarar.",
|
||||
"repair_all": "Reparer alle",
|
||||
"repair_matched_items": "Samsvarte med {count, plural, one {# element} other {# elementer}}",
|
||||
"repaired_items": "Reparerte {count, plural, one {# item} other {# items}}",
|
||||
"require_password_change_on_login": "Krev at brukaren endrar passord ved første pålogging",
|
||||
"reset_settings_to_default": "Tilbakestill innstillingar til standard",
|
||||
"reset_settings_to_recent_saved": "Tilbakestill innstillingane til de nyleg lagra innstillingane",
|
||||
"scanning_library": "Skann bibliotek",
|
||||
"search_jobs": "Søk etter jobbar",
|
||||
"send_welcome_email": "Send velkomst-e-post",
|
||||
"server_external_domain_settings": "Eksternt domene",
|
||||
"server_external_domain_settings_description": "Domene for offentlege delingslenkjer, inkludert http(s)://",
|
||||
"server_public_users": "Offentlege brukarar",
|
||||
"server_public_users_description": "Alle brukarar (namn og epost) blir vist når ein brukar blir lagt til eit delt album. Når deaktivert, vil brukarane berre bli synlege for administratorar.",
|
||||
"server_settings": "Serverinstillingar",
|
||||
"server_settings_description": "Administrer serverinnstillingar",
|
||||
"server_welcome_message": "Velkomstmelding",
|
||||
"server_welcome_message_description": "Ei melding som synast på innloggingssida.",
|
||||
"template_email_preview": "Førehandsvisning"
|
||||
},
|
||||
"administration": "Administrasjon",
|
||||
"advanced": "Avansert",
|
||||
"album_with_link_access": "Lat kven som helst med lenka sjå bilete og folk i dette albumet.",
|
||||
"albums": "Album",
|
||||
"all": "Alle",
|
||||
"anti_clockwise": "Mot klokka",
|
||||
"archive": "Arkiv",
|
||||
"asset_skipped": "Hoppa over",
|
||||
"asset_uploaded": "Opplasta",
|
||||
"asset_uploading": "Lastar opp...",
|
||||
"back": "Tilbake",
|
||||
"backward": "Bakover",
|
||||
"camera": "Kamera",
|
||||
"cancel": "Avbryt",
|
||||
"city": "By",
|
||||
"clear": "Fjern",
|
||||
"clockwise": "Med klokka",
|
||||
"close": "Lukk",
|
||||
"color": "Farge",
|
||||
"confirm": "Bekreft",
|
||||
"contain": "Inneheld",
|
||||
"continue": "Hald fram",
|
||||
"country": "Land",
|
||||
"cover": "Dekk",
|
||||
"covers": "Dekker",
|
||||
"create": "Opprett",
|
||||
"created": "Oppretta",
|
||||
"dark": "Mørk",
|
||||
"day": "Dag",
|
||||
"delete": "Slett",
|
||||
"description": "Beskrivelse",
|
||||
"details": "Detaljer",
|
||||
"direction": "Retning",
|
||||
"discover": "Oppdag",
|
||||
"display_original_photos": "Vis originale bilete",
|
||||
"display_original_photos_setting_description": "Føretrekk å vise det originale biletet når ein ser på eit aktivum i staden for miniatyrbilete når det originale aktivumet er nettkompatibelt. Dette kan føre til tregare biletvisingshastigheiter.",
|
||||
"documentation": "Dokumentasjon",
|
||||
"done": "Ferdig",
|
||||
"download": "Last ned",
|
||||
"download_include_embedded_motion_videos_description": "Inkluder videoar innebygd i rørslefoto som ein eigen fil",
|
||||
"download_settings": "Last ned",
|
||||
"downloading": "Laster ned",
|
||||
"duplicates": "Duplikat",
|
||||
"duration": "Lengde",
|
||||
"edit": "Rediger",
|
||||
"edited": "Redigert",
|
||||
"editor": "Redigeringsverktøy",
|
||||
"explore": "Utforsk",
|
||||
"explorer": "Utforsker",
|
||||
"folders_feature_description": "Bla gjennom mappe for bileta og videoane på filsystemet",
|
||||
"hour": "Time",
|
||||
"image": "Bilde",
|
||||
"info": "Info",
|
||||
"jobs": "Oppgåver",
|
||||
"keep": "Behald",
|
||||
"language": "Språk",
|
||||
"latitude": "Lengdegrad",
|
||||
"leave": "Forlat",
|
||||
"level": "Nivå",
|
||||
"library": "Bibliotek",
|
||||
"light": "Lys",
|
||||
"list": "Liste",
|
||||
"loading": "Lastar",
|
||||
"login": "Login",
|
||||
"longitude": "Lengdegrad",
|
||||
"look": "Utsjånad",
|
||||
"make": "Produsent",
|
||||
"map": "Kart",
|
||||
"matches": "Treff",
|
||||
"memories": "Minner",
|
||||
"memory": "Minne",
|
||||
"menu": "Meny",
|
||||
"merge": "Slå saman",
|
||||
"minimize": "Minimere",
|
||||
"minute": "Minutt",
|
||||
"missing": "Mangler",
|
||||
"model": "Modell",
|
||||
"month": "Månad",
|
||||
"more": "Meir",
|
||||
"name": "Namn",
|
||||
"never": "Aldri",
|
||||
"next": "Neste",
|
||||
"no": "Nei",
|
||||
"no_albums_message": "Lag eit album for å organisere bileta og videoane dine.",
|
||||
"no_archived_assets_message": "Arkiver bilder og videoar for å skjule dei frå bileta dine",
|
||||
"no_explore_results_message": "Last opp fleire bilete for å utforske samlinga di.",
|
||||
"no_libraries_message": "Lag eit eksternt bibliotek for å sjå bileta og videoane dine",
|
||||
"no_shared_albums_message": "Lag eit album for å dele bilete og videoar med folk i nettverket ditt",
|
||||
"notes": "Noter",
|
||||
"notifications": "Varsel",
|
||||
"ok": "Ok",
|
||||
"options": "Val",
|
||||
"or": "eller",
|
||||
"original": "original",
|
||||
"other": "Anna",
|
||||
"owner": "Eigar",
|
||||
"partner": "Partner",
|
||||
"partner_can_access_assets": "Alle bileta og videoane dine unntatt dei i Arkivert og Sletta",
|
||||
"partner_can_access_location": "Staden der bileta dine vart tekne",
|
||||
"password": "Passord",
|
||||
"path": "Sti",
|
||||
"pattern": "Mønster",
|
||||
"pause": "Pause",
|
||||
"paused": "Pausa",
|
||||
"pending": "Ventar",
|
||||
"people": "Folk",
|
||||
"people_feature_description": "Bla gjennom foto og videoar gruppert etter folk",
|
||||
"person": "Person",
|
||||
"photo_shared_all_users": "Ser ut som du delte bileta dine med alle brukarar eller at du ikkje har nokon brukar å dele med.",
|
||||
"photos": "Bilete",
|
||||
"photos_and_videos": "Foto og Video",
|
||||
"photos_from_previous_years": "Bilete frå tidlegare år",
|
||||
"place": "Stad",
|
||||
"places": "Stad",
|
||||
"play": "Spel av",
|
||||
"port": "Port",
|
||||
"preview": "Førehandsvisning",
|
||||
"previous": "Forrige",
|
||||
"primary": "Hoved",
|
||||
"privacy": "Personvern",
|
||||
"purchase_button_activate": "Aktiver",
|
||||
"purchase_button_buy": "Kjøp",
|
||||
"purchase_button_select": "Vel",
|
||||
"purchase_individual_title": "Induviduell",
|
||||
"purchase_server_title": "Server",
|
||||
"reassign": "Vel på nytt",
|
||||
"recent": "Nyleg",
|
||||
"refresh": "Oppdater",
|
||||
"refreshed": "Oppdatert",
|
||||
"remove": "Fjern",
|
||||
"rename": "Endre namn",
|
||||
"repair": "Reparasjon",
|
||||
"reset": "Tilbakestill",
|
||||
"restore": "Tilbakestill",
|
||||
"resume": "Fortsett",
|
||||
"role": "Rolle",
|
||||
"save": "Lagre",
|
||||
"scan_library": "Skann",
|
||||
"search": "Søk",
|
||||
"search_your_photos": "Søk i dine bilete",
|
||||
"second": "Sekund",
|
||||
"selected": "Valgt",
|
||||
"set": "Sett",
|
||||
"settings": "Innstillingar",
|
||||
"share": "Del",
|
||||
"shared": "Delt",
|
||||
"shared_from_partner": "Bilete frå {partner}",
|
||||
"sharing": "Deling",
|
||||
"show_in_timeline_setting_description": "Vis bilete og videoar frå denne brukaren i tidslinja di",
|
||||
"sidebar": "Sidebar",
|
||||
"size": "Størrelse",
|
||||
"slideshow": "Lysbildeframvisning",
|
||||
"sort_title": "Tittel",
|
||||
"source": "Kjelde",
|
||||
"stack": "Stabel",
|
||||
"start": "Start",
|
||||
"state": "Region",
|
||||
"status": "Status",
|
||||
"stop_photo_sharing": "Stopp å dele bileta dine?",
|
||||
"stop_photo_sharing_description": "{partner} vil ikkje lenger kunne få tilgang til bileta dine.",
|
||||
"stop_sharing_photos_with_user": "Stopp å dele bileta dine med denne brukaren",
|
||||
"storage": "Lagringsplass",
|
||||
"submit": "Send inn",
|
||||
"suggestions": "Forslag",
|
||||
"support": "Support",
|
||||
"sync": "Synk",
|
||||
"tag": "Tag",
|
||||
"tag_feature_description": "Bla gjennom bilete og videoar gruppert etter logiske tag-tema",
|
||||
"tags": "Tags",
|
||||
"theme": "Tema",
|
||||
"timeline": "Tidslinje",
|
||||
"timezone": "Tidssone",
|
||||
"to_archive": "Arkiv",
|
||||
"to_favorite": "Favoritt",
|
||||
"to_login": "Innlogging",
|
||||
"to_trash": "Søppel",
|
||||
"total": "Total",
|
||||
"trash": "Søppel",
|
||||
"trash_no_results_message": "Sletta foto og videoar vil dukke opp her.",
|
||||
"type": "Type",
|
||||
"unfavorite": "Fjern favoritt",
|
||||
"unknown": "Ukjent",
|
||||
"unlimited": "Ubegrensa",
|
||||
"upload": "Last opp",
|
||||
"upload_status_duplicates": "Duplikater",
|
||||
"upload_status_errors": "Feil",
|
||||
"upload_status_uploaded": "Opplasta",
|
||||
"url": "URL",
|
||||
"usage": "Bruk",
|
||||
"user": "Brukar",
|
||||
"user_purchase_settings": "Kjøp",
|
||||
"username": "Brukarnamn",
|
||||
"users": "Brukarar",
|
||||
"utilities": "Verktøy",
|
||||
"validate": "Validere",
|
||||
"variables": "Variablar",
|
||||
"version": "Versjon",
|
||||
"video": "Video",
|
||||
"videos": "Videoar",
|
||||
"waiting": "Ventar",
|
||||
"warning": "Advarsel",
|
||||
"week": "Veke",
|
||||
"welcome": "Velkomen",
|
||||
"year": "År",
|
||||
"yes": "Ja"
|
||||
}
|
||||
|
|
25
i18n/pl.json
25
i18n/pl.json
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Stały współczynnik szybkości (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Poziom jakości wideo. Typowe wartości to 23 dla H.264, 28 dla HEVC, 31 dla VP9 i 35 dla AV1. Niższa jakość jest lepsza, ale tworzy większe pliki.",
|
||||
"transcoding_disabled_description": "Nie transkoduj żadnych filmów, może to spowodować przerwanie odtwarzania na niektórych klientach",
|
||||
"transcoding_encoding_options": "Opcje kodowania",
|
||||
"transcoding_encoding_options_description": "Ustawia kodeki, rozdzielczość, jakość oraz inne opcje dla kodowanych filmów",
|
||||
"transcoding_hardware_acceleration": "Przyspieszenie Sprzętowe",
|
||||
"transcoding_hardware_acceleration_description": "Eksperymentalny; znacznie szybszy, ale będzie miał niższą jakość przy tej samej szybkości transmisji",
|
||||
"transcoding_hardware_decoding": "Dekodowanie sprzętowe",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Maksymalny interwał klatek kluczowych",
|
||||
"transcoding_max_keyframe_interval_description": "Ustawia maksymalny dystans między klatkami kluczowymi. Niższe wartości przyspieszają przeszukiwanie filmów i mogą poprawić jakość w scenach z dużą ilością ruchu, kosztem gorszej efektywności kompresji. 0 ustawia tą wartość automatycznie.",
|
||||
"transcoding_optimal_description": "Filmy w rozdzielczości wyższej niż docelowa lub w nieakceptowanym formacie",
|
||||
"transcoding_policy": "Polityka transkodowania",
|
||||
"transcoding_policy_description": "Ustaw kiedy film będzie transkodowany",
|
||||
"transcoding_preferred_hardware_device": "Preferowane urządzenie sprzętowe",
|
||||
"transcoding_preferred_hardware_device_description": "Dotyczy tylko VAAPI i QSV. Ustawia węzeł dri używany do transkodowania sprzętowego.",
|
||||
"transcoding_preset_preset": "Ustawienie wstępne (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Liczba klatek używana do odnoszenia się podczas kompresowania danej klatki. Wyższe wartości poprawiają efektywność kompresji, ale spowalniają kodowanie. 0 ustawia tą wartość automatycznie.",
|
||||
"transcoding_required_description": "Tylko filmy w nieakceptowanym formacie",
|
||||
"transcoding_settings": "Ustawienia Transkodowania Wideo",
|
||||
"transcoding_settings_description": "Zarządzaj rozdzielczością i kodowaniem plików wideo",
|
||||
"transcoding_settings_description": "Wybierz które filmy transkodować i jak je przetwarzać",
|
||||
"transcoding_target_resolution": "Docelowa rozdzielczość",
|
||||
"transcoding_target_resolution_description": "Wyższe rozdzielczości pozwalają zachować więcej szczegółów, ale kodowanie zajmuje więcej czasu, powoduje większe rozmiary plików i może zmniejszyć płynność aplikacji.",
|
||||
"transcoding_temporal_aq": "Tymczasowe (Temporal) AQ",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Zakres dat",
|
||||
"day": "Dzień",
|
||||
"deduplicate_all": "Usuń Zduplikowane",
|
||||
"deduplication_criteria_1": "Rozmiar obrazu w bajtach",
|
||||
"deduplication_criteria_2": "Ilość plików EXIF",
|
||||
"deduplication_info": "Stan duplikatów",
|
||||
"deduplication_info_description": "Aby zakwalifikować elementy jako duplikaty do masowego usunięcia, sprawdzane jest:",
|
||||
"default_locale": "Domyślny Region",
|
||||
"default_locale_description": "Formatuj daty i liczby na podstawie ustawień Twojej przeglądarki",
|
||||
"delete": "Usuń",
|
||||
|
@ -540,27 +548,27 @@
|
|||
"direction": "Kierunek",
|
||||
"disabled": "Wyłączone",
|
||||
"disallow_edits": "Nie pozwalaj edytować",
|
||||
"discord": "Discord",
|
||||
"discord": "Konflikt",
|
||||
"discover": "Odkryj",
|
||||
"dismiss_all_errors": "Odrzuć wszystkie błędy",
|
||||
"dismiss_error": "Odrzuć błąd",
|
||||
"display_options": "Opcje wyświetlania",
|
||||
"display_order": "Kolejność wyświetlania",
|
||||
"display_original_photos": "Wyświetlaj oryginalne zdjęcia",
|
||||
"display_original_photos_setting_description": "Wyświetlając zdjęcia i filmy, preferuj oryginalny plik zamiast miniatur jeżeli jest działa on w przeglądarce. Może to skutkować wolniejszym ładowaniem zdjęć i filmów.",
|
||||
"display_original_photos_setting_description": "Wyświetlając zdjęcia i filmy, prezentuj oryginalny plik zamiast miniatur jeżeli działa on w przeglądarce. Może to skutkować wolniejszym ładowaniem zdjęć i filmów.",
|
||||
"do_not_show_again": "Nie pokazuj więcej tej wiadomości",
|
||||
"documentation": "Dokumentacja",
|
||||
"done": "Gotowe",
|
||||
"download": "Pobierz",
|
||||
"download_include_embedded_motion_videos": "Osadzone filmy",
|
||||
"download_include_embedded_motion_videos": "Pobierz filmy ruchomych zdjęć",
|
||||
"download_include_embedded_motion_videos_description": "Dołącz filmy osadzone w ruchomych zdjęciach jako oddzielny plik",
|
||||
"download_settings": "Pobieranie",
|
||||
"download_settings_description": "Zarządzaj pobieraniem zasobów",
|
||||
"downloading": "Pobieranie",
|
||||
"downloading_asset_filename": "Pobieranie zasobu {filename}",
|
||||
"drop_files_to_upload": "Upuść pliki gdziekolwiek, żeby je załadować",
|
||||
"drop_files_to_upload": "Upuść pliki gdziekolwiek, aby je załadować",
|
||||
"duplicates": "Duplikaty",
|
||||
"duplicates_description": "Rozstrzygnij każdą grupę, określając, które zasoby, jeśli takie istnieją, są duplikatami",
|
||||
"duplicates_description": "Rozstrzygnij każdą grupę, określając, które zasoby są duplikatami, jeżeli są duplikatami",
|
||||
"duration": "Czas trwania",
|
||||
"edit": "Edytuj",
|
||||
"edit_album": "Edytuj album",
|
||||
|
@ -574,7 +582,7 @@
|
|||
"edit_key": "Edytuj klucz",
|
||||
"edit_link": "Edytuj link",
|
||||
"edit_location": "Edytuj lokalizację",
|
||||
"edit_name": "Edytuj imię",
|
||||
"edit_name": "Edytuj nazwę",
|
||||
"edit_people": "Edytuj osoby",
|
||||
"edit_tag": "Edytuj etykietę",
|
||||
"edit_title": "Edytuj Tytuł",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Pomoc",
|
||||
"getting_started": "Pierwsze kroki",
|
||||
"go_back": "Wstecz",
|
||||
"go_to_folder": "Idź do folderu",
|
||||
"go_to_search": "Przejdź do wyszukiwania",
|
||||
"group_albums_by": "Grupuj albumy...",
|
||||
"group_no": "Brak grupowania",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Wersja serwera",
|
||||
"set": "Ustaw",
|
||||
"set_as_album_cover": "Ustaw jako okładkę albumu",
|
||||
"set_as_featured_photo": "Ustaw jako wyróżnione zdjęcie",
|
||||
"set_as_profile_picture": "Ustaw jako zdjęcie profilowe",
|
||||
"set_date_of_birth": "Ustaw datę urodzenia",
|
||||
"set_profile_picture": "Ustaw zdjęcie profilowe",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Liczba rzeczy",
|
||||
"sort_modified": "Data modyfikacji",
|
||||
"sort_oldest": "Najstarsze zdjęcie",
|
||||
"sort_people_by_similarity": "Sortuj twarze według cech podobnych",
|
||||
"sort_recent": "Najnowsze zdjęcie",
|
||||
"sort_title": "Tytuł",
|
||||
"source": "Źródło",
|
||||
|
|
17
i18n/pt.json
17
i18n/pt.json
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Fator de taxa constante (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Nível de qualidade do vídeo. Os valores típicos são 23 para H.264, 28 para HEVC, 31 para VP9 e 35 para AV1. Menor é melhor, mas produz ficheiros maiores.",
|
||||
"transcoding_disabled_description": "Não transcodificar nenhum vídeo, no entanto pode causar erros de reprodução em alguns clientes",
|
||||
"transcoding_encoding_options": "Definições de codificação de vídeo",
|
||||
"transcoding_encoding_options_description": "Definir codecs, resolução, qualidade e outras opções para videos codificados",
|
||||
"transcoding_hardware_acceleration": "Aceleração de hardware",
|
||||
"transcoding_hardware_acceleration_description": "Experimental; muito mais rápido, mas terá qualidade inferior com a mesma taxa de bits",
|
||||
"transcoding_hardware_decoding": "Decodificação de hardware",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Intervalo máximo de quadro-chave",
|
||||
"transcoding_max_keyframe_interval_description": "Define a distância máxima do quadro entre os quadros-chave. Valores mais baixos pioram a eficiência da compressão, mas melhoram os tempos de procura e podem melhorar a qualidade em cenas com movimento rápido. 0 define esse valor automaticamente.",
|
||||
"transcoding_optimal_description": "Vídeos com resolução superior à desejada ou num formato não aceite",
|
||||
"transcoding_policy": "Política de Transcodificação",
|
||||
"transcoding_policy_description": "Definir quando um vídeo será transcodificado",
|
||||
"transcoding_preferred_hardware_device": "Dispositivo de hardware preferido",
|
||||
"transcoding_preferred_hardware_device_description": "Aplica-se apenas a VAAPI e QSV. Define o nó dri usado para transcodificação de hardware.",
|
||||
"transcoding_preset_preset": "Predefinição (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "O número de quadros a serem referenciados ao comprimir um determinado quadro. Valores mais altos melhoram a eficiência da compressão, mas tornam a codificação mais lenta. 0 define esse valor automaticamente.",
|
||||
"transcoding_required_description": "Apenas vídeos que não estejam num formato aceite",
|
||||
"transcoding_settings": "Definições de transcodificação de vídeo",
|
||||
"transcoding_settings_description": "Gerir as informações de resolução e codificação dos ficheiros de vídeo",
|
||||
"transcoding_settings_description": "Gerir quais os videos a transcodificar e como os processar",
|
||||
"transcoding_target_resolution": "Resolução desejada",
|
||||
"transcoding_target_resolution_description": "Resoluções mais altas podem preservar mais detalhes, mas demoram mais para codificar, têm tamanhos de ficheiro maiores e podem reduzir a capacidade de resposta da aplicação.",
|
||||
"transcoding_temporal_aq": "QA temporal",
|
||||
|
@ -322,7 +326,7 @@
|
|||
"transcoding_transcode_policy_description": "Política para quando um vídeo deve ser transcodificado. Os vídeos HDR serão sempre transcodificados (exceto se a transcodificação estiver desativada).",
|
||||
"transcoding_two_pass_encoding": "Codificação em duas passagens",
|
||||
"transcoding_two_pass_encoding_setting_description": "Transcodificar em duas passagens para produzir vídeos melhor codificados. Quando a taxa de bits máxima está ativada (necessário para funcionar com H.264 e HEVC), este modo usa um intervalo de taxa de bits baseado na taxa de bits máxima e ignora o CRF. Para VP9, o CRF pode ser usado se a taxa de bits máxima estiver desativada.",
|
||||
"transcoding_video_codec": "Codec de vídeo",
|
||||
"transcoding_video_codec": "Codificador de Vídeo",
|
||||
"transcoding_video_codec_description": "O VP9 tem alta eficiência e compatibilidade com a web, mas leva mais tempo para transcodificar. HEVC tem desempenho semelhante, mas tem menor compatibilidade com a web. H.264 é amplamente compatível e rápido de transcodificar, mas produz ficheiros muito maiores. AV1 é o codec mais eficiente, mas não possui suporte em dispositivos mais antigos.",
|
||||
"trash_enabled_description": "Ativar funcionalidade da Reciclagem",
|
||||
"trash_number_of_days": "Número de dias",
|
||||
|
@ -518,7 +522,11 @@
|
|||
"date_of_birth_saved": "Data de nascimento guardada com sucesso",
|
||||
"date_range": "Intervalo de datas",
|
||||
"day": "Dia",
|
||||
"deduplicate_all": "Limpar todos os itens duplicados",
|
||||
"deduplicate_all": "Remover todos os duplicados",
|
||||
"deduplication_criteria_1": "Tamanho da imagem em bytes",
|
||||
"deduplication_criteria_2": "Quantidade de dados EXIF",
|
||||
"deduplication_info": "Informações sobre remoção de duplicados",
|
||||
"deduplication_info_description": "Para selecionar automaticamente itens e remover duplicados em massa, vemos o seguinte:",
|
||||
"default_locale": "Localização Padrão",
|
||||
"default_locale_description": "Formatar datas e números baseados na linguagem do seu navegador",
|
||||
"delete": "Eliminar",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Obter Ajuda",
|
||||
"getting_started": "Primeiros Passos",
|
||||
"go_back": "Regressar",
|
||||
"go_to_folder": "Ir para a pasta",
|
||||
"go_to_search": "Ir para a pesquisa",
|
||||
"group_albums_by": "Agrupar álbuns por...",
|
||||
"group_no": "Sem agrupamento",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Versão do servidor",
|
||||
"set": "Definir",
|
||||
"set_as_album_cover": "Definir como capa do álbum",
|
||||
"set_as_featured_photo": "Definir como foto principal",
|
||||
"set_as_profile_picture": "Definir como foto de perfil",
|
||||
"set_date_of_birth": "Definir data de nascimento",
|
||||
"set_profile_picture": "Definir foto de perfil",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Número de itens",
|
||||
"sort_modified": "Data de modificação",
|
||||
"sort_oldest": "Foto mais antiga",
|
||||
"sort_people_by_similarity": "Ordenar pessoas por semelhança",
|
||||
"sort_recent": "Foto mais recente",
|
||||
"sort_title": "Título",
|
||||
"source": "Fonte",
|
||||
|
|
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Fator de taxa constante (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Nível de qualidade do vídeo. Os valores típicos são 23 para H.264, 28 para HEVC, 31 para VP9 e 35 para AV1. Menor é melhor, mas produz arquivos maiores.",
|
||||
"transcoding_disabled_description": "Não transcodifique nenhum vídeo, pois pode interromper a reprodução em alguns clientes",
|
||||
"transcoding_encoding_options": "Opções de codificação de vídeo",
|
||||
"transcoding_encoding_options_description": "Defina codecs, resolução, qualidade e outras opções para vídeos codificados",
|
||||
"transcoding_hardware_acceleration": "Aceleração de hardware",
|
||||
"transcoding_hardware_acceleration_description": "Experimental; muito mais rápido, mas terá qualidade inferior com a mesma taxa de bits",
|
||||
"transcoding_hardware_decoding": "Decodificação de hardware",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Intervalo máximo de quadro-chave",
|
||||
"transcoding_max_keyframe_interval_description": "Define a distância máxima do quadro entre os quadros-chave. Valores mais baixos pioram a eficiência da compressão, mas melhoram os tempos de busca e podem melhorar a qualidade em cenas com movimento rápido. 0 define esse valor automaticamente.",
|
||||
"transcoding_optimal_description": "Vídeos com resolução superior à desejada ou em formato não aceito",
|
||||
"transcoding_policy": "Política de Transcodificação",
|
||||
"transcoding_policy_description": "Defina quando um vídeo será transcodificado",
|
||||
"transcoding_preferred_hardware_device": "Dispositivo de hardware preferido",
|
||||
"transcoding_preferred_hardware_device_description": "Aplica-se apenas a VAAPI e QSV. Define o nó dri usado para transcodificação de hardware.",
|
||||
"transcoding_preset_preset": "Predefinido (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "O número de quadros a serem referenciados ao compactar um determinado quadro. Valores mais altos melhoram a eficiência da compactação, mas retardam a codificação. 0 define esse valor automaticamente.",
|
||||
"transcoding_required_description": "Somente vídeos que não estejam em um formato aceito",
|
||||
"transcoding_settings": "Configurações de transcodificação de vídeo",
|
||||
"transcoding_settings_description": "Gerencie as informações de resolução e codificação dos arquivos de vídeo",
|
||||
"transcoding_settings_description": "Defina quais vídeos transcodificar e como serão processados",
|
||||
"transcoding_target_resolution": "Resolução desejada",
|
||||
"transcoding_target_resolution_description": "Resoluções mais altas podem preservar mais detalhes, mas demoram mais para codificar, têm tamanhos de arquivo maiores e podem reduzir a capacidade de resposta do aplicativo.",
|
||||
"transcoding_temporal_aq": "QA temporal",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Intervalo de datas",
|
||||
"day": "Dia",
|
||||
"deduplicate_all": "Limpar todas Duplicidades",
|
||||
"deduplication_criteria_1": "Tamanho do arquivo em bytes",
|
||||
"deduplication_criteria_2": "Quantidade de dados EXIF",
|
||||
"deduplication_info": "Informações",
|
||||
"deduplication_info_description": "Ao selecionar os arquivos que serão marcados para remoção por duplicidade, será considerado os parâmetros:",
|
||||
"default_locale": "Localização Padrão",
|
||||
"default_locale_description": "Formatar datas e números baseados na linguagem do seu navegador",
|
||||
"delete": "Excluir",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Obter Ajuda",
|
||||
"getting_started": "Primeiros passos",
|
||||
"go_back": "Voltar",
|
||||
"go_to_folder": "Ir para a pasta",
|
||||
"go_to_search": "Ir para a pesquisa",
|
||||
"group_albums_by": "Agrupar álbuns por...",
|
||||
"group_no": "Sem agrupamento",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Versão do servidor",
|
||||
"set": "Definir",
|
||||
"set_as_album_cover": "Definir como capa do álbum",
|
||||
"set_as_featured_photo": "Definir como foto principal",
|
||||
"set_as_profile_picture": "Definir como foto de perfil",
|
||||
"set_date_of_birth": "Definir data de nascimento",
|
||||
"set_profile_picture": "Definir foto de perfil",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Número de itens",
|
||||
"sort_modified": "Data de modificação",
|
||||
"sort_oldest": "Foto mais antiga",
|
||||
"sort_people_by_similarity": "Ordenar pessoas por semelhança",
|
||||
"sort_recent": "Foto mais recente",
|
||||
"sort_title": "Título",
|
||||
"source": "Fonte",
|
||||
|
|
15
i18n/ro.json
15
i18n/ro.json
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Factor de rată constantă (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Nivelul de calitate al videoclipului. Valorile tipice sunt 23 pentru H.264, 28 pentru HEVC, 31 pentru VP9 și 35 pentru AV1. Cu cât valoarea este mai mică, cu atât calitatea este mai bună, dar se generează fișiere mai mari.",
|
||||
"transcoding_disabled_description": "Nu transcodifică niciun videoclip; acest lucru poate afecta redarea pe anumite dispozitive",
|
||||
"transcoding_encoding_options": "Opțiuni codificare",
|
||||
"transcoding_encoding_options_description": "Setează codecuri , calitatea, rezoluția și alte opțiuni pentru videoclipuri codificare",
|
||||
"transcoding_hardware_acceleration": "Accelerare Hardware",
|
||||
"transcoding_hardware_acceleration_description": "Experimental; mult mai rapid, dar va avea o calitate mai scăzută la același bitrate",
|
||||
"transcoding_hardware_decoding": "Decodare hardware",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Interval maxim între cadre cheie",
|
||||
"transcoding_max_keyframe_interval_description": "Setează distanța maximă între cadrele cheie. Valorile mai mici reduc eficiența compresiei, dar îmbunătățesc timpii de căutare și pot îmbunătăți calitatea în scenele cu mișcare rapidă. 0 setează această valoare automat.",
|
||||
"transcoding_optimal_description": "Videoclipuri cu rezoluție mai mare decât cea țintă sau care nu sunt într-un format acceptat",
|
||||
"transcoding_policy": "Politică de transcodare",
|
||||
"transcoding_policy_description": "Setează când un video va fi transcodat",
|
||||
"transcoding_preferred_hardware_device": "Dispozitiv hardware preferat",
|
||||
"transcoding_preferred_hardware_device_description": "Se aplică doar la VAAPI și QSV. Setează nodul DRI utilizat pentru transcodarea hardware.",
|
||||
"transcoding_preset_preset": "Presetare (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Numărul de cadre de referință atunci când se comprimă un cadru dat. Valorile mai mari îmbunătățesc eficiența compresiei, dar încetinesc codarea. 0 setează această valoare automat.",
|
||||
"transcoding_required_description": "Numai videoclipuri care nu sunt într-un format acceptat",
|
||||
"transcoding_settings": "Setări de Transcodare Video",
|
||||
"transcoding_settings_description": "Gestionează rezoluția și informațiile de codare ale fișierelor video",
|
||||
"transcoding_settings_description": "Gestionează care videoclipuri să transcodam și cum să le procesam",
|
||||
"transcoding_target_resolution": "Rezoluția țintă",
|
||||
"transcoding_target_resolution_description": "Rezoluțiile mai mari pot păstra mai multe detalii, dar necesită mai mult timp pentru codare, au dimensiuni mai mari ale fișierelor și pot reduce răspunsul aplicației.",
|
||||
"transcoding_temporal_aq": "AQ temporal",
|
||||
|
@ -322,7 +326,7 @@
|
|||
"transcoding_transcode_policy_description": "Politica pentru momentul când un videoclip ar trebui să fie transcodificat. Videoclipurile HDR vor fi întotdeauna transcodificate (cu excepția cazului în care transcodarea este dezactivată).",
|
||||
"transcoding_two_pass_encoding": "Codare în doi pași",
|
||||
"transcoding_two_pass_encoding_setting_description": "Transcodificare în două treceri pentru a produce videoclipuri codificate mai bine. Când rata maximă de biți este activată (necesară pentru a funcționa cu H.264 și HEVC), acest mod utilizează un interval de rată de biți bazat pe rata maximă de biți și ignoră CRF. Pentru VP9, CRF poate fi utilizat dacă rata maximă de biți este dezactivată.",
|
||||
"transcoding_video_codec": "Codec Video",
|
||||
"transcoding_video_codec": "Codec video",
|
||||
"transcoding_video_codec_description": "VP9 are eficiențǎ mare și compatibilitate web, însǎ transcodarea este de duratǎ mai mare. HEVC se comportǎ asemǎnǎtor, însǎ are compatibilitate web mai micǎ. H.264 este foarte compatibil și rapid în transcodare, însǎ genereazǎ fișiere mult mai mari. AV1 este cel mai eficient codec dar nu este compatibil cu dispozitivele mai vechi.",
|
||||
"trash_enabled_description": "Activează funcțiile Coșului de Gunoi",
|
||||
"trash_number_of_days": "Numǎr de zile",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Interval de date",
|
||||
"day": "Zi",
|
||||
"deduplicate_all": "Deduplicați Toate",
|
||||
"deduplication_criteria_1": "Marimea imagini în octeți",
|
||||
"deduplication_criteria_2": "Numărul de date EXIF",
|
||||
"deduplication_info": "Informați despre deduplicare",
|
||||
"deduplication_info_description": "Ca să preselecționăm activele și să scoatem duplicatele în vrac , ne uităm la:",
|
||||
"default_locale": "Setare Regională Implicită",
|
||||
"default_locale_description": "Formatați datele și numerele în funcție de regiunea browserului dvs",
|
||||
"delete": "Ștergere",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Obțineți Ajutor",
|
||||
"getting_started": "Noțiuni de Bază",
|
||||
"go_back": "Întoarcere",
|
||||
"go_to_folder": "Accesați folderul",
|
||||
"go_to_search": "Spre căutare",
|
||||
"group_albums_by": "Grupați albume de...",
|
||||
"group_no": "Fără grupare",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Versiune Server",
|
||||
"set": "Setați",
|
||||
"set_as_album_cover": "Setați ca și copertă a albumului",
|
||||
"set_as_featured_photo": "Setează că poză prezentată",
|
||||
"set_as_profile_picture": "Setați ca imagine de profil",
|
||||
"set_date_of_birth": "Setați data nașterii",
|
||||
"set_profile_picture": "Setați poza de profil",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Numărul de articole",
|
||||
"sort_modified": "Data modificării",
|
||||
"sort_oldest": "Cea mai veche fotografie",
|
||||
"sort_people_by_similarity": "Sortează oameni după asemanare",
|
||||
"sort_recent": "Cea mai recentă fotografie",
|
||||
"sort_title": "Titlu",
|
||||
"source": "Sursă",
|
||||
|
|
13
i18n/ru.json
13
i18n/ru.json
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Коэффициент постоянной скорости (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Уровень качества видео. Типичные значения: 23 для H.264, 28 для HEVC, 31 для VP9 и 35 для AV1. Чем ниже, тем лучше, но при этом создаются файлы большего размера.",
|
||||
"transcoding_disabled_description": "Не перекодировать видео, это может привести к сбою воспроизведения на некоторых клиентах",
|
||||
"transcoding_encoding_options": "Параметры кодирования",
|
||||
"transcoding_encoding_options_description": "Установите кодеки, разрешение, качество и другие параметры для кодированного видео",
|
||||
"transcoding_hardware_acceleration": "Аппаратное ускорение",
|
||||
"transcoding_hardware_acceleration_description": "Экспериментальный; намного быстрее, но будет иметь более низкое качество при том же битрейте",
|
||||
"transcoding_hardware_decoding": "Аппаратное декодирование",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Максимальный интервал ключевых кадров",
|
||||
"transcoding_max_keyframe_interval_description": "Устанавливает максимальное расстояние между ключевыми кадрами. Более низкие значения ухудшают эффективность сжатия, но сокращают время поиска и могут улучшить качество в сценах с быстрым движением. 0 устанавливает это значение автоматически.",
|
||||
"transcoding_optimal_description": "Видео с разрешением выше целевого или не в принятом формате",
|
||||
"transcoding_policy": "Политика перекодировки",
|
||||
"transcoding_policy_description": "Установите, когда видео будет перекодировано",
|
||||
"transcoding_preferred_hardware_device": "Предпочитаемое аппаратное устройство",
|
||||
"transcoding_preferred_hardware_device_description": "Применяется только к VAAPI и QSV. Устанавливает dri-узел, используемый для аппаратного перекодирования.",
|
||||
"transcoding_preset_preset": "Предустановка",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Количество кадров, на которые следует ссылаться при сжатии данного кадра. Более высокие значения повышают эффективность сжатия, но замедляют кодирование. 0 устанавливает это значение автоматически.",
|
||||
"transcoding_required_description": "Только видео в нестандартном формате",
|
||||
"transcoding_settings": "Настройки транскодирования видео",
|
||||
"transcoding_settings_description": "Управление разрешением и кодированием видеофайлов",
|
||||
"transcoding_settings_description": "Управляйте тем, какие видео нужно перекодировать и как их обрабатывать",
|
||||
"transcoding_target_resolution": "Целевое разрешение",
|
||||
"transcoding_target_resolution_description": "Более высокие разрешения позволяют сохранить больше деталей, но требуют больше времени для кодирования, имеют больший размер файлов и могут снизить скорость отклика приложения.",
|
||||
"transcoding_temporal_aq": "Временной AQ",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Диапазон дат",
|
||||
"day": "День",
|
||||
"deduplicate_all": "Убрать все дубликаты",
|
||||
"deduplication_criteria_1": "Размер изображения в байтах",
|
||||
"deduplication_criteria_2": "Подсчет данных EXIF",
|
||||
"deduplication_info": "Информация о дедупликации",
|
||||
"deduplication_info_description": "Для автоматического предварительного выбора объектов и массового удаления дубликатов мы рассмотрим:",
|
||||
"default_locale": "Дата и время по умолчанию",
|
||||
"default_locale_description": "Использовать формат даты и времени в соответствии с языковым стандартом вашего браузера",
|
||||
"delete": "Удалить",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Получить помощь",
|
||||
"getting_started": "Приступая к работе",
|
||||
"go_back": "Назад",
|
||||
"go_to_folder": "Перейти в папку",
|
||||
"go_to_search": "Перейти к поиску",
|
||||
"group_albums_by": "Группировать альбомы по...",
|
||||
"group_no": "Без группировки",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Версия Сервера",
|
||||
"set": "Установить",
|
||||
"set_as_album_cover": "Установить в качестве обложки альбома",
|
||||
"set_as_featured_photo": "Установить как основное фото",
|
||||
"set_as_profile_picture": "Установить как фото профиля",
|
||||
"set_date_of_birth": "Установить дату рождения",
|
||||
"set_profile_picture": "Установить изображение профиля",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Количество элементов",
|
||||
"sort_modified": "Дата изменения",
|
||||
"sort_oldest": "Старые фото",
|
||||
"sort_people_by_similarity": "Сортировать людей по сходству",
|
||||
"sort_recent": "Недавние фото",
|
||||
"sort_title": "Заголовок",
|
||||
"source": "Исходный код",
|
||||
|
|
998
i18n/sk.json
998
i18n/sk.json
File diff suppressed because it is too large
Load diff
13
i18n/sl.json
13
i18n/sl.json
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Faktor konstantne stopnje (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Raven kakovosti videa. Tipične vrednosti so 23 za H.264, 28 za HEVC, 31 za VP9 in 35 za AV1. Nižje je boljše, vendar ustvarja večje datoteke.",
|
||||
"transcoding_disabled_description": "Ne prekodirajte nobenih videoposnetkov, lahko prekine predvajanje na nekaterih odjemalcih",
|
||||
"transcoding_encoding_options": "Možnosti kodiranja",
|
||||
"transcoding_encoding_options_description": "Nastavite kodeke, ločljivost, kakovost in druge možnosti za kodirane videoposnetke",
|
||||
"transcoding_hardware_acceleration": "Strojno pospeševanje",
|
||||
"transcoding_hardware_acceleration_description": "Eksperimentalno; veliko hitreje, vendar bo imel slabšo kakovost pri isti bitni hitrosti",
|
||||
"transcoding_hardware_decoding": "Strojno dekodiranje",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Največji interval ključnih sličic",
|
||||
"transcoding_max_keyframe_interval_description": "Nastavi največjo razdaljo med ključnimi slikami. Nižje vrednosti poslabšajo učinkovitost stiskanja, vendar izboljšajo čas iskanja in lahko izboljšajo kakovost prizorov s hitrim gibanjem. 0 samodejno nastavi to vrednost.",
|
||||
"transcoding_optimal_description": "Videoposnetki, ki so višji od ciljne ločljivosti ali niso v sprejemljivem formatu",
|
||||
"transcoding_policy": "Politika prekodiranja",
|
||||
"transcoding_policy_description": "Nastavite kdaj bo videoposnetek prekodiran",
|
||||
"transcoding_preferred_hardware_device": "Prednostna strojna naprava",
|
||||
"transcoding_preferred_hardware_device_description": "Velja samo za VAAPI in QSV. Nastavi dri vozlišče, ki se uporablja za strojno prekodiranje.",
|
||||
"transcoding_preset_preset": "Prednastavitev (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Število okvirjev, na katere se sklicujete pri stiskanju danega okvira. Višje vrednosti izboljšajo učinkovitost stiskanja, vendar upočasnijo kodiranje. 0 samodejno nastavi to vrednost.",
|
||||
"transcoding_required_description": "Samo videoposnetki, ki niso v sprejemljivi obliki",
|
||||
"transcoding_settings": "Nastavitve video transkodiranja",
|
||||
"transcoding_settings_description": "Upravljajte podatke o ločljivosti in kodiranju video datotek",
|
||||
"transcoding_settings_description": "Upravljajte katere videoposnetke želite prekodirati in kako jih obdelati",
|
||||
"transcoding_target_resolution": "Ciljna ločljivost",
|
||||
"transcoding_target_resolution_description": "Višje ločljivosti lahko ohranijo več podrobnosti, vendar kodiranje traja dlje, imajo večje velikosti datotek in lahko zmanjšajo odzivnost aplikacije.",
|
||||
"transcoding_temporal_aq": "Časovni AQ",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Časovno obdobje",
|
||||
"day": "Dan",
|
||||
"deduplicate_all": "Odstrani vse podvojene",
|
||||
"deduplication_criteria_1": "Velikost slike v bajtih",
|
||||
"deduplication_criteria_2": "Število podatkov EXIF",
|
||||
"deduplication_info": "Informacije o deduplikaciji",
|
||||
"deduplication_info_description": "Za samodejno vnaprejšnjo izbiro sredstev in množično odstranjevanje dvojnikov si ogledamo:",
|
||||
"default_locale": "Privzeti jezik",
|
||||
"default_locale_description": "Oblikujte datume in številke glede na lokalne nastavitve brskalnika",
|
||||
"delete": "Izbriši",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Poiščite pomoč",
|
||||
"getting_started": "Začetek",
|
||||
"go_back": "Pojdi nazaj",
|
||||
"go_to_folder": "Pojdi na mapo",
|
||||
"go_to_search": "Pojdi na iskanje",
|
||||
"group_albums_by": "Združi albume po ...",
|
||||
"group_no": "Brez združevanja",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Različica strežnika",
|
||||
"set": "Nastavi",
|
||||
"set_as_album_cover": "Nastavi kot naslovnico albuma",
|
||||
"set_as_featured_photo": "Nastavi kot glavno fotografijo",
|
||||
"set_as_profile_picture": "Nastavi kot profilno sliko",
|
||||
"set_date_of_birth": "Nastavi datum rojstva",
|
||||
"set_profile_picture": "Nastavi profilno sliko",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Število predmetov",
|
||||
"sort_modified": "Datum spremembe",
|
||||
"sort_oldest": "Najstarejša fotografija",
|
||||
"sort_people_by_similarity": "Razvrsti ljudi po podobnosti",
|
||||
"sort_recent": "Najnovejša fotografija",
|
||||
"sort_title": "Naslov",
|
||||
"source": "Vir",
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
"add_a_location": "Додај Локацију",
|
||||
"add_a_name": "Додај име",
|
||||
"add_a_title": "Додај наслов",
|
||||
"add_exclusion_pattern": "Додајте образац изузимања",
|
||||
"add_exclusion_pattern": "Додај образац изузимања",
|
||||
"add_import_path": "Додај путању за преузимање",
|
||||
"add_location": "Додај локацију",
|
||||
"add_more_users": "Додај кориснике",
|
||||
|
@ -23,7 +23,7 @@
|
|||
"add_to": "Додај у...",
|
||||
"add_to_album": "Додај у албум",
|
||||
"add_to_shared_album": "Додај у дељен албум",
|
||||
"add_url": "Додајте URL",
|
||||
"add_url": "Додај URL",
|
||||
"added_to_archive": "Додато у архиву",
|
||||
"added_to_favorites": "Додато у фаворите",
|
||||
"added_to_favorites_count": "Додато {count, number} у фаворите",
|
||||
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Фактор константне стопе (-црф)",
|
||||
"transcoding_constant_rate_factor_description": "Ниво квалитета видеа. Типичне вредности су 23 за Х.264, 28 за ХЕВЦ, 31 за ВП9 и 35 за АВ1. Ниже је боље, али производи веће датотеке.",
|
||||
"transcoding_disabled_description": "Немојте транскодирати ниједан видео, може прекинути репродукцију на неким клијентима",
|
||||
"transcoding_encoding_options": "Опције Кодирања",
|
||||
"transcoding_encoding_options_description": "Подесите кодеке, резолуцију, квалитет и друге опције за кодиране видео записе",
|
||||
"transcoding_hardware_acceleration": "Хардверско убрзање",
|
||||
"transcoding_hardware_acceleration_description": "Екпериментално; много брже, али ће имати нижи квалитет при истој брзини преноса",
|
||||
"transcoding_hardware_decoding": "Хардверско декодирање",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Максимални интервал keyframe-a",
|
||||
"transcoding_max_keyframe_interval_description": "Поставља максималну удаљеност кадрова између кључних кадрова. Ниже вредности погоршавају ефикасност компресије, али побољшавају време тражења и могу побољшати квалитет сцена са брзим кретањем. 0 аутоматски поставља ову вредност.",
|
||||
"transcoding_optimal_description": "Видео снимци већи од циљне резолуције или нису у прихваћеном формату",
|
||||
"transcoding_policy": "Услови Транскодирања",
|
||||
"transcoding_policy_description": "Одреди кад да се транскодира видео",
|
||||
"transcoding_preferred_hardware_device": "Жељени хардверски уређај",
|
||||
"transcoding_preferred_hardware_device_description": "Односи се само на ВААПИ и QSV. Поставља дри ноде који се користи за хардверско транскодирање.",
|
||||
"transcoding_preset_preset": "Унапред подешена подешавања (-пресет)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Број оквира (фрамес) за референцу приликом компресије датог оквира. Више вредности побољшавају ефикасност компресије, али успоравају кодирање. 0 аутоматски поставља ову вредност.",
|
||||
"transcoding_required_description": "Само видео снимци који нису у прихваћеном формату",
|
||||
"transcoding_settings": "Подешавања видео транскодирања",
|
||||
"transcoding_settings_description": "Управљајте резолуцијом и информацијама о кодирању видео датотека",
|
||||
"transcoding_settings_description": "Управљајте које видео снимке желите да транскодујете и како их обрадити",
|
||||
"transcoding_target_resolution": "Циљана резолуција",
|
||||
"transcoding_target_resolution_description": "Веће резолуције могу да сачувају више детаља, али им је потребно више времена за кодирање, имају веће величине датотека и могу да смање брзину апликације.",
|
||||
"transcoding_temporal_aq": "Временски (Темпорал) AQ",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Распон датума",
|
||||
"day": "Дан",
|
||||
"deduplicate_all": "Де-дуплицирај све",
|
||||
"deduplication_criteria_1": "Величина слике у бајтовима",
|
||||
"deduplication_criteria_2": "Број EXIF података",
|
||||
"deduplication_info": "Информације о дедупликацији",
|
||||
"deduplication_info_description": "Да бисмо аутоматски унапред одабрали датотеке и уклонили дупликате групно, гледамо:",
|
||||
"default_locale": "Подразумевана локација (locale)",
|
||||
"default_locale_description": "Форматирајте датуме и бројеве на основу локализације вашег претраживача",
|
||||
"delete": "Обриши",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Нађи помоћ",
|
||||
"getting_started": "Почињем",
|
||||
"go_back": "Врати се",
|
||||
"go_to_folder": "Иди у фасциклу",
|
||||
"go_to_search": "Иди на претрагу",
|
||||
"group_albums_by": "Групни албуми по...",
|
||||
"group_no": "Без груписања",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Верзија сервера",
|
||||
"set": "Постави",
|
||||
"set_as_album_cover": "Постави као омот албума",
|
||||
"set_as_featured_photo": "Постави као истакнуту фотографију",
|
||||
"set_as_profile_picture": "Постави као профилну слику",
|
||||
"set_date_of_birth": "Подесите датум рођења",
|
||||
"set_profile_picture": "Постави профилну слику",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Број ставки",
|
||||
"sort_modified": "Датум измене",
|
||||
"sort_oldest": "Најстарија фотографија",
|
||||
"sort_people_by_similarity": "Сортирајте особе по сличности",
|
||||
"sort_recent": "Најновија фотографија",
|
||||
"sort_title": "Наслов",
|
||||
"source": "Извор",
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
"add_a_location": "Dodaj Lokaciju",
|
||||
"add_a_name": "Dodaj ime",
|
||||
"add_a_title": "Dodaj naslov",
|
||||
"add_exclusion_pattern": "Dodajte obrazac izuzimanja",
|
||||
"add_exclusion_pattern": "Dodaj obrazac izuzimanja",
|
||||
"add_import_path": "Dodaj putanju za preuzimanje",
|
||||
"add_location": "Dodaj lokaciju",
|
||||
"add_more_users": "Dodaj korisnike",
|
||||
|
@ -23,7 +23,7 @@
|
|||
"add_to": "Dodaj u...",
|
||||
"add_to_album": "Dodaj u album",
|
||||
"add_to_shared_album": "Dodaj u deljen album",
|
||||
"add_url": "Dodajte URL",
|
||||
"add_url": "Dodaj URL",
|
||||
"added_to_archive": "Dodato u arhivu",
|
||||
"added_to_favorites": "Dodato u favorite",
|
||||
"added_to_favorites_count": "Dodato {count, number} u favorite",
|
||||
|
@ -289,6 +289,8 @@
|
|||
"transcoding_constant_rate_factor": "Faktor konstantne stope (-crf)",
|
||||
"transcoding_constant_rate_factor_description": "Nivo kvaliteta videa. Tipične vrednosti su 23 za H.264, 28 za HEVC, 31 za VP9 i 35 za AV1. Niže je bolje, ali proizvodi veće datoteke.",
|
||||
"transcoding_disabled_description": "Nemojte transkodirati nijedan video, može prekinuti reprodukciju na nekim klijentima",
|
||||
"transcoding_encoding_options": "Opcije Kodiranja",
|
||||
"transcoding_encoding_options_description": "Podesite kodeke, rezoluciju, kvalitet i druge opcije za kodirane video zapise",
|
||||
"transcoding_hardware_acceleration": "Hardversko ubrzanje",
|
||||
"transcoding_hardware_acceleration_description": "Ekperimentalno; mnogo brže, ali će imati niži kvalitet pri istoj brzini prenosa",
|
||||
"transcoding_hardware_decoding": "Hardversko dekodiranje",
|
||||
|
@ -301,6 +303,8 @@
|
|||
"transcoding_max_keyframe_interval": "Maksimalni interval keyframe-a",
|
||||
"transcoding_max_keyframe_interval_description": "Postavlja maksimalnu udaljenost kadrova između ključnih kadrova. Niže vrednosti pogoršavaju efikasnost kompresije, ali poboljšavaju vreme traženja i mogu poboljšati kvalitet scena sa brzim kretanjem. 0 automatski postavlja ovu vrednost.",
|
||||
"transcoding_optimal_description": "Video snimci veći od ciljne rezolucije ili nisu u prihvaćenom formatu",
|
||||
"transcoding_policy": "Uslovi Transkodiranja",
|
||||
"transcoding_policy_description": "Odredi kad da se transkodira video",
|
||||
"transcoding_preferred_hardware_device": "Željeni hardverski uređaj",
|
||||
"transcoding_preferred_hardware_device_description": "Odnosi se samo na VAAPI i QSV. Postavlja dri node koji se koristi za hardversko transkodiranje.",
|
||||
"transcoding_preset_preset": "Unapred podešena podešavanja (-preset)",
|
||||
|
@ -309,7 +313,7 @@
|
|||
"transcoding_reference_frames_description": "Broj okvira (frames) za referencu prilikom kompresije datog okvira. Više vrednosti poboljšavaju efikasnost kompresije, ali usporavaju kodiranje. 0 automatski postavlja ovu vrednost.",
|
||||
"transcoding_required_description": "Samo video snimci koji nisu u prihvaćenom formatu",
|
||||
"transcoding_settings": "Podešavanja video transkodiranja",
|
||||
"transcoding_settings_description": "Upravljajte rezolucijom i informacijama o kodiranju video datoteka",
|
||||
"transcoding_settings_description": "Upravljajte koje video snimke želite da transkodujete i kako ih obraditi",
|
||||
"transcoding_target_resolution": "Ciljana rezolucija",
|
||||
"transcoding_target_resolution_description": "Veće rezolucije mogu da sačuvaju više detalja, ali im je potrebno više vremena za kodiranje, imaju veće veličine datoteka i mogu da smanje brzinu aplikacije.",
|
||||
"transcoding_temporal_aq": "Vremenski (Temporal) AQ",
|
||||
|
@ -519,6 +523,10 @@
|
|||
"date_range": "Raspon datuma",
|
||||
"day": "Dan",
|
||||
"deduplicate_all": "De-dupliciraj sve",
|
||||
"deduplication_criteria_1": "Veličina slike u bajtovima",
|
||||
"deduplication_criteria_2": "Broj EXIF podataka",
|
||||
"deduplication_info": "Informacije o deduplikaciji",
|
||||
"deduplication_info_description": "Da bismo automatski unapred odabrali datoteke i uklonili duplikate grupno, gledamo:",
|
||||
"default_locale": "Podrazumevana lokacija (locale)",
|
||||
"default_locale_description": "Formatirajte datume i brojeve na osnovu lokalizacije vašeg pretraživača",
|
||||
"delete": "Obriši",
|
||||
|
@ -755,6 +763,7 @@
|
|||
"get_help": "Nađi pomoć",
|
||||
"getting_started": "Počinjem",
|
||||
"go_back": "Vrati se",
|
||||
"go_to_folder": "Idi u fasciklu",
|
||||
"go_to_search": "Idi na pretragu",
|
||||
"group_albums_by": "Grupni albumi po...",
|
||||
"group_no": "Bez grupisanja",
|
||||
|
@ -1141,6 +1150,7 @@
|
|||
"server_version": "Verzija servera",
|
||||
"set": "Postavi",
|
||||
"set_as_album_cover": "Postavi kao omot albuma",
|
||||
"set_as_featured_photo": "Postavi kao istaknutu fotografiju",
|
||||
"set_as_profile_picture": "Postavi kao profilnu sliku",
|
||||
"set_date_of_birth": "Podesite datum rođenja",
|
||||
"set_profile_picture": "Postavi profilnu sliku",
|
||||
|
@ -1196,6 +1206,7 @@
|
|||
"sort_items": "Broj stavki",
|
||||
"sort_modified": "Datum izmene",
|
||||
"sort_oldest": "Najstarija fotografija",
|
||||
"sort_people_by_similarity": "Sortirajte osobe po sličnosti",
|
||||
"sort_recent": "Najnovija fotografija",
|
||||
"sort_title": "Naslov",
|
||||
"source": "Izvor",
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue