Compare commits
26
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2800192c76 | ||
|
|
916718b558 | ||
|
|
8a5ef4c96e | ||
|
|
a3a52a43ca | ||
|
|
e15bdf9af3 | ||
|
|
b3fe177869 | ||
|
|
f5f154f2d8 | ||
|
|
abfb6c0a0e | ||
|
|
91e416b104 | ||
|
|
92cf23b642 | ||
|
|
e708a80474 | ||
|
|
276d5620fd | ||
|
|
11900d5a8c | ||
|
|
5dfa7214df | ||
|
|
6808ed3239 | ||
|
|
925aaed54c | ||
|
|
132af2fc74 | ||
|
|
9e5bdda89c | ||
|
|
79ea67f6be | ||
|
|
79b175465e | ||
|
|
c76bd08f73 | ||
|
|
f2e05e9d98 | ||
|
|
c8a957a116 | ||
|
|
f7697264ed | ||
|
|
648dea2072 | ||
|
|
895b755f53 |
@@ -154,8 +154,8 @@ jobs:
|
||||
previous=$(grep -A1 -xF "${TAG}" <<< "${tags}" | tail -1)
|
||||
echo "generating notes from ${previous}"
|
||||
|
||||
mise //:notes --tag "${TAG}" --previous "${previous}" > "${RUNNER_TEMP}/notes.md"
|
||||
cat "${RUNNER_TEMP}/notes.md"
|
||||
mise //:notes --tag "${TAG}" --previous "${previous}"
|
||||
cat misc/release/notes.md
|
||||
|
||||
- name: Create draft release
|
||||
env:
|
||||
@@ -171,7 +171,7 @@ jobs:
|
||||
--draft \
|
||||
--verify-tag \
|
||||
--prerelease="${PRERELEASE}" \
|
||||
--notes-file "${RUNNER_TEMP}/notes.md" \
|
||||
--notes-file misc/release/notes.md \
|
||||
docker/docker-compose.yml \
|
||||
docker/docker-compose.rootless.yml \
|
||||
docker/example.env \
|
||||
|
||||
@@ -28,3 +28,4 @@ vite.config.js.timestamp-*
|
||||
.devcontainer/.env*
|
||||
*.tsbuildinfo
|
||||
*.tsbuildInfo
|
||||
misc/release/notes.md
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# AGENTS.md
|
||||
|
||||
Immich monorepo: `server/` (NestJS API + job workers), `web/` (SvelteKit SPA), `mobile/` (Flutter), `native/` (Rust core for mobile), `machine-learning/` (FastAPI + ONNX), `e2e/` (API + Playwright tests), `packages/` (`@immich/sdk`, `@immich/cli`, plugin SDK/core, release scripts), `open-api/`, `i18n/`, `docs/`. Before changing code in `server/`, `web/`, `mobile/`, `native/`, `machine-learning/` or `e2e/`, read that folder's `AGENTS.md`.
|
||||
|
||||
## Rules
|
||||
|
||||
- No PRs of LLM-generated code; the human contributor must understand and be able to explain every change (see `CONTRIBUTING.md`).
|
||||
- Do not generate PR titles, descriptions, issue text, review comments or discussion answers. Translating human-written text is fine.
|
||||
- Never work on issues labelled `good first issue`; those PRs are closed automatically.
|
||||
- Run every build, lint, test and codegen task through mise: `mise //<dir>:<task>`, root tasks as `mise //:<task>`. `mise tasks ls --all` lists them.
|
||||
- Never hand-edit generated files: `open-api/immich-openapi-specs.json`, `packages/sdk/src/fetch-client.ts`, `mobile/generated/openapi/`, `server/src/queries/*.sql`, and Dart codegen (`*.g.dart`, `*.drift.dart`, `*.freezed.dart`, `router.gr.dart`, `lib/generated/`, `lib/platform/*.g.dart`).
|
||||
- Only edit `i18n/en.json`; the other locale files come from Weblate.
|
||||
- Do not add code comments. Make the code self-explanatory through naming and structure instead.
|
||||
- PR titles are conventional commits. Keep a PR to one focused change.
|
||||
- Sharing/asset ownership and external libraries are feature-frozen: bug fixes only.
|
||||
- Renaming or removing a docs page requires an entry in `docs/static/_redirects`.
|
||||
|
||||
## Skills
|
||||
|
||||
- **Regenerate the API clients**: after any change to a server controller or DTO, run `mise //:open-api`. It rebuilds the server, rewrites the OpenAPI spec, regenerates the TypeScript SDK and the Dart client. The CI job "OpenAPI Clients" fails if this is stale. If a response field became required, the Dart client also needs a backward-compatibility patch in `open-api/patch`, checked by `flutter test test/openapi_patches_coverage.dart` (job "check-mobile-patches").
|
||||
- **Add a translation string**: add the key to `i18n/en.json`, then run `mise //:i18n:format-fix` so the file stays key-sorted (CI job "Test i18n" fails otherwise). For the mobile app also run `mise //mobile:translation`. Web keys are typed against `en.json`, so the key must exist before `tsc` passes.
|
||||
@@ -34,7 +34,7 @@ The mobile app is written in [Dart](https://dart.dev/) using [Flutter](https://f
|
||||
<MobileArchitecture className="p-4 dark:bg-immich-dark-primary my-4" />
|
||||
|
||||
The diagrams shows the target architecture, the current state of the code-base is not always following the architecture yet. New code and contributions should follow this architecture.
|
||||
Currently, it uses [Isar Database](https://isar.dev/) for a local database and [Riverpod](https://riverpod.dev/) for state management (providers).
|
||||
Currently, it uses [Drift](https://drift.simonbinder.eu/) (SQLite) for a local database and [Riverpod](https://riverpod.dev/) for state management (providers).
|
||||
Entities and Models are the two types of data classes used. While entities are stored in the on-device database, models are ephemeral and only kept in memory.
|
||||
The Repositories should be the only place where other data classes are used internally (such as OpenAPI DTOs). However, their interfaces must not use foreign data classes!
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# e2e/AGENTS.md
|
||||
|
||||
End-to-end tests against a real Immich stack from `docker-compose.yml` (server on port 2285): API specs with vitest, browser specs with Playwright.
|
||||
|
||||
## Rules
|
||||
|
||||
- `test-assets/` is a git submodule; initialize it before running exif or upload specs.
|
||||
- Use the shared helpers in `src/utils.ts` (`utils.adminSetup`, `utils.userSetup`, `utils.resetDatabase`, `utils.createAsset`, `utils.waitForQueueFinish`, `asBearerAuth`, `asKeyAuth`, `immichCli`) instead of re-implementing login or fixtures.
|
||||
|
||||
## Skills
|
||||
|
||||
- **Run API specs**: `src/specs/server/**/*.e2e-spec.ts`, run with `mise //e2e:test` (it builds the SDK, CLI and Docker images first). If nothing answers at `127.0.0.1:2285`, the vitest `globalSetup` starts the Docker stack itself; set `VITEST_DISABLE_DOCKER_SETUP=true` to reuse a running one. One file: `pnpm exec vitest --run src/specs/server/api/album.e2e-spec.ts`. Maintenance-mode specs use `pnpm exec vitest --run --config vitest.maintenance.config.ts`.
|
||||
- **Run browser specs**: Playwright projects are `web` (`src/specs/web/`, real backend), `maintenance` (`src/specs/maintenance/web/`), and `ui` (`src/ui/specs/`, mocked network from `src/ui/mock-network/`). `mise //e2e:test-web` runs all projects and installs browsers first. One project or file: `pnpm exec playwright test --project=web src/specs/web/album.e2e-spec.ts`; add `--ui` for the Playwright UI. Set `PLAYWRIGHT_DISABLE_WEBSERVER=1` to reuse a running stack.
|
||||
- **Write an API spec**: in `beforeAll` call `await utils.resetDatabase()` and `admin = await utils.adminSetup()`, create users with `utils.userSetup(admin.accessToken, dto)`, and call the server through `@immich/sdk` functions with `asBearerAuth(token)` or through `supertest` on `app` for raw status-code and validation checks. After uploads, `await utils.waitForQueueFinish(admin.accessToken, 'thumbnailGeneration')` before asserting on derived data.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "immich-e2e",
|
||||
"version": "3.3.3",
|
||||
"version": "3.4.0-rc.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"type": "module",
|
||||
|
||||
@@ -0,0 +1,384 @@
|
||||
import * as sdk from '@immich/sdk';
|
||||
import { LoginResponseDto, StorageFolder } from '@immich/sdk';
|
||||
import { io, Socket } from 'socket.io-client';
|
||||
import { createUserDto } from 'src/fixtures';
|
||||
import { app, asBearerAuth, baseUrl, utils } from 'src/utils';
|
||||
import request from 'supertest';
|
||||
import { afterAll, beforeAll, describe, expect, it } from 'vitest';
|
||||
|
||||
describe('/futo-backups', () => {
|
||||
let admin: LoginResponseDto;
|
||||
let nonAdmin: LoginResponseDto;
|
||||
let requestOpts: any;
|
||||
let filename: string;
|
||||
|
||||
let socket: Socket;
|
||||
let libraryId: string;
|
||||
|
||||
beforeAll(async () => {
|
||||
utils.initSdk();
|
||||
|
||||
await utils.resetDatabase();
|
||||
admin = await utils.adminSetup();
|
||||
nonAdmin = await utils.userSetup(admin.accessToken, createUserDto.user1);
|
||||
|
||||
requestOpts = { headers: asBearerAuth(admin.accessToken) };
|
||||
|
||||
await utils.resetBackups(admin.accessToken);
|
||||
await sdk.futoBackupsResetOrchestrator(requestOpts);
|
||||
|
||||
socket = io(baseUrl, {
|
||||
path: '/api/futo-backups/socket.io',
|
||||
transports: ['websocket'],
|
||||
extraHeaders: asBearerAuth(admin.accessToken),
|
||||
});
|
||||
|
||||
socket.onAny(console.info);
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
socket.close();
|
||||
|
||||
// trigger update for orchestrator module config
|
||||
if (libraryId) {
|
||||
await utils.deleteLibrary(admin.accessToken, libraryId);
|
||||
}
|
||||
});
|
||||
|
||||
const finishedJobStatuses = new Set(['complete', 'warn', 'failed', 'cancelled', 'incomplete']);
|
||||
|
||||
const waitForMessage = (type: string, matches: (payload: any) => boolean = () => true) => {
|
||||
return new Promise((resolve) => {
|
||||
const listener = (msg: string) => {
|
||||
const payload = JSON.parse(msg);
|
||||
if (payload.type !== type || !matches(payload)) {
|
||||
return;
|
||||
}
|
||||
|
||||
resolve(payload);
|
||||
socket.offAny(listener);
|
||||
};
|
||||
|
||||
socket.onAny(listener);
|
||||
});
|
||||
};
|
||||
|
||||
describe('Orchestration Module', async () => {
|
||||
it('works', async () => {
|
||||
await expect(sdk.futoBackupsOnboardingStatus(requestOpts)).resolves.toEqual(
|
||||
expect.objectContaining({
|
||||
hasOnboardedKey: false,
|
||||
hasBackend: false,
|
||||
hasBackup: false,
|
||||
hasSchedule: false,
|
||||
hasSkippedExtraConfig: false,
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
it('is inaccessible without admin', async () => {
|
||||
await expect(sdk.futoBackupsOnboardingStatus({ headers: asBearerAuth(nonAdmin.accessToken) })).rejects.toEqual(
|
||||
expect.objectContaining({ data: { message: expect.any(String) } }),
|
||||
);
|
||||
});
|
||||
|
||||
it('is inaccessible without logging in', async () => {
|
||||
await expect(sdk.futoBackupsOnboardingStatus()).rejects.toEqual(
|
||||
expect.objectContaining({ data: { message: 'Authentication required' } }),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Local Backup', { concurrent: false }, async () => {
|
||||
beforeAll(async () => {
|
||||
await sdk.futoBackupsImportRecoveryKey(
|
||||
{
|
||||
importRecoveryKeyRequest: {
|
||||
recoveryKey: '0'.repeat(64),
|
||||
},
|
||||
},
|
||||
requestOpts,
|
||||
);
|
||||
});
|
||||
|
||||
it('configures a local backend', { concurrent: false }, async () => {
|
||||
await utils.mkFolder('/local-backend');
|
||||
|
||||
await sdk.futoBackupsCreateLocalBackend(
|
||||
{
|
||||
createLocalBackendRequestDto: {
|
||||
path: '/local-backend',
|
||||
},
|
||||
},
|
||||
requestOpts,
|
||||
);
|
||||
});
|
||||
|
||||
it('configures Immich backup', { concurrent: false }, async () => {
|
||||
const event = waitForMessage('IntegrationUpdate');
|
||||
|
||||
await sdk.futoBackupsConfigureImmichIntegration(
|
||||
{
|
||||
configureImmichIntegrationRequestDto: {
|
||||
name: 'Immich',
|
||||
worm: false,
|
||||
cron: '0 3 * * *',
|
||||
backupConfiguration: true,
|
||||
dataFolders: [StorageFolder.Backups, StorageFolder.Upload],
|
||||
libraries: ['all'],
|
||||
},
|
||||
},
|
||||
requestOpts,
|
||||
);
|
||||
|
||||
await event;
|
||||
|
||||
await expect(sdk.futoBackupsGetIntegrations(requestOpts)).resolves.toEqual(
|
||||
expect.objectContaining({
|
||||
immichIntegration: expect.objectContaining({
|
||||
configuration: {
|
||||
backupConfiguration: true,
|
||||
dataFolders: ['backups', 'upload'],
|
||||
libraries: ['all'],
|
||||
},
|
||||
}),
|
||||
immichState: {
|
||||
dataFolders: expect.arrayContaining(Object.values(StorageFolder)),
|
||||
dataPath: '/data',
|
||||
// may have stale libraries from other test runs
|
||||
libraries: expect.any(Array),
|
||||
},
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
it('updates configuration', { concurrent: false }, async () => {
|
||||
await utils.mkFolder('/test');
|
||||
|
||||
({ id: libraryId } = await utils.createLibrary(admin.accessToken, {
|
||||
ownerId: admin.userId,
|
||||
name: 'My Library',
|
||||
importPaths: ['/test'],
|
||||
}));
|
||||
|
||||
await expect(sdk.futoBackupsGetIntegrations(requestOpts)).resolves.toEqual(
|
||||
expect.objectContaining({
|
||||
immichIntegration: expect.any(Object),
|
||||
immichState: expect.objectContaining({
|
||||
libraries: expect.arrayContaining([
|
||||
expect.objectContaining({
|
||||
name: 'My Library',
|
||||
importPaths: ['/test'],
|
||||
}),
|
||||
]),
|
||||
}),
|
||||
}),
|
||||
);
|
||||
});
|
||||
|
||||
it('creates a snapshot', { concurrent: false }, async () => {
|
||||
const event = waitForMessage('JobUpdate', ({ job }) => finishedJobStatuses.has(job?.status));
|
||||
|
||||
const { repositories } = await sdk.futoBackupsGetRepositories(requestOpts);
|
||||
const { id } = repositories[0];
|
||||
|
||||
filename = await utils.createBackup(admin.accessToken);
|
||||
|
||||
await sdk.futoBackupsCreateBackup({ id }, requestOpts);
|
||||
await event;
|
||||
|
||||
const { snapshots } = await sdk.futoBackupsGetSnapshots({ id }, requestOpts);
|
||||
const { id: snapshotId } = snapshots[0];
|
||||
|
||||
await expect(sdk.futoBackupsGetSnapshotListing({ id, snapshot: snapshotId }, requestOpts)).resolves
|
||||
.toMatchInlineSnapshot(`
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"isDirectory": true,
|
||||
"path": "/data",
|
||||
},
|
||||
{
|
||||
"isDirectory": true,
|
||||
"path": "/test",
|
||||
},
|
||||
],
|
||||
"parent": "/",
|
||||
"path": "/",
|
||||
}
|
||||
`);
|
||||
|
||||
await expect(sdk.futoBackupsGetSnapshotListing({ id, snapshot: snapshotId, path: '/data' }, requestOpts)).resolves
|
||||
.toMatchInlineSnapshot(`
|
||||
{
|
||||
"items": [
|
||||
{
|
||||
"isDirectory": true,
|
||||
"path": "/data/backups",
|
||||
},
|
||||
{
|
||||
"isDirectory": true,
|
||||
"path": "/data/upload",
|
||||
},
|
||||
],
|
||||
"parent": "/",
|
||||
"path": "/data",
|
||||
}
|
||||
`);
|
||||
|
||||
await expect(
|
||||
sdk.futoBackupsGetSnapshotListing({ id, snapshot: snapshotId, path: '/data/backups' }, requestOpts),
|
||||
).resolves.toEqual(
|
||||
expect.objectContaining({
|
||||
items: expect.arrayContaining([
|
||||
{ isDirectory: false, path: '/data/backups/.immich' },
|
||||
{ isDirectory: false, path: `/data/backups/${filename}` },
|
||||
{ isDirectory: true, path: '/data/backups/yucca' },
|
||||
]),
|
||||
parent: '/data',
|
||||
path: '/data/backups',
|
||||
}),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Restore Local Backup', { concurrent: false }, async () => {
|
||||
let cookie: string;
|
||||
|
||||
beforeAll(async () => {
|
||||
await sdk.futoBackupsResetOrchestrator(requestOpts);
|
||||
await utils.resetDatabase();
|
||||
socket.disconnect();
|
||||
await utils.disconnectDatabase();
|
||||
});
|
||||
|
||||
afterAll(async () => {
|
||||
await utils.connectDatabase();
|
||||
});
|
||||
|
||||
it('restores backup', { timeout: 60_000, concurrent: false }, async () => {
|
||||
const { status, headers } = await request(app).post('/admin/database-backups/start-restore').send();
|
||||
expect(status).toBe(201);
|
||||
cookie = headers['set-cookie'][0].split(';', 1)[0];
|
||||
|
||||
await expect
|
||||
.poll(
|
||||
async () => {
|
||||
const { status, body } = await request(app).get('/server/config');
|
||||
expect(status).toBe(200);
|
||||
return body.maintenanceMode;
|
||||
},
|
||||
{
|
||||
interval: 500,
|
||||
timeout: 10_000,
|
||||
},
|
||||
)
|
||||
.toBeTruthy();
|
||||
|
||||
const maintenanceRequestOpts = {
|
||||
headers: {
|
||||
cookie,
|
||||
},
|
||||
};
|
||||
|
||||
await expect(sdk.futoBackupsGetSchedules(maintenanceRequestOpts)).resolves.toEqual({ schedules: [] });
|
||||
|
||||
await sdk.futoBackupsImportRecoveryKey(
|
||||
{
|
||||
importRecoveryKeyRequest: {
|
||||
recoveryKey: '0'.repeat(64),
|
||||
},
|
||||
},
|
||||
maintenanceRequestOpts,
|
||||
);
|
||||
|
||||
const {
|
||||
backend: { id: backendId },
|
||||
} = await sdk.futoBackupsCreateLocalBackend(
|
||||
{
|
||||
createLocalBackendRequestDto: {
|
||||
path: '/local-backend',
|
||||
},
|
||||
},
|
||||
maintenanceRequestOpts,
|
||||
);
|
||||
|
||||
const { repositories } = await sdk.futoBackupsInspectRepositories({}, maintenanceRequestOpts);
|
||||
const { id: repositoryId, snapshots } = repositories[0];
|
||||
const { id: snapshotId } = (snapshots ?? [])[0];
|
||||
|
||||
socket = io(baseUrl, {
|
||||
path: '/api/futo-backups/socket.io',
|
||||
transports: ['websocket'],
|
||||
extraHeaders: {
|
||||
cookie,
|
||||
},
|
||||
});
|
||||
|
||||
const event = waitForMessage('JobUpdate', ({ job }) => finishedJobStatuses.has(job?.status));
|
||||
await sdk.futoBackupsRestoreFromPoint(
|
||||
{
|
||||
id: repositoryId,
|
||||
snapshot: snapshotId,
|
||||
backend: backendId,
|
||||
repositorySnapshotRestoreFromPointRequestDto: {
|
||||
yuccaConfig: '/data/yucca',
|
||||
include: ['/data'],
|
||||
},
|
||||
},
|
||||
maintenanceRequestOpts,
|
||||
);
|
||||
|
||||
await event;
|
||||
socket.disconnect();
|
||||
|
||||
const { status: restoreStatus } = await request(app).post('/admin/maintenance').set('Cookie', cookie).send({
|
||||
action: 'restore_database',
|
||||
restoreBackupFilename: filename,
|
||||
});
|
||||
|
||||
expect(restoreStatus).toBe(201);
|
||||
|
||||
await expect
|
||||
.poll(
|
||||
async () => {
|
||||
const { status, body } = await request(app).get('/server/config');
|
||||
expect(status).toBe(200);
|
||||
return body.maintenanceMode;
|
||||
},
|
||||
{
|
||||
interval: 500,
|
||||
timeout: 10_000,
|
||||
},
|
||||
)
|
||||
.toBeTruthy();
|
||||
|
||||
const { status: status2, body } = await request(app).get('/admin/maintenance/status');
|
||||
expect(status2).toBe(200);
|
||||
expect(body).toEqual(
|
||||
expect.objectContaining({
|
||||
active: true,
|
||||
action: 'restore_database',
|
||||
}),
|
||||
);
|
||||
|
||||
await expect
|
||||
.poll(
|
||||
async () => {
|
||||
const { status, body } = await request(app).get('/server/config');
|
||||
expect(status).toBe(200);
|
||||
return body.maintenanceMode;
|
||||
},
|
||||
{
|
||||
interval: 500,
|
||||
timeout: 60_000,
|
||||
},
|
||||
)
|
||||
.toBeFalsy();
|
||||
|
||||
await expect(sdk.futoBackupsGetSchedules(requestOpts)).resolves.toEqual({
|
||||
schedules: expect.arrayContaining([expect.objectContaining({ id: expect.any(String) })]),
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -95,6 +95,7 @@ test.describe('Database Backups', () => {
|
||||
await page.waitForURL('/maintenance**');
|
||||
}
|
||||
|
||||
await page.getByRole('button', { name: 'Database Backup' }).click();
|
||||
await page.getByRole('button', { name: 'Next' }).click();
|
||||
await page.getByRole('button', { name: 'Restore', exact: true }).click();
|
||||
await page.getByRole('dialog').getByRole('button', { name: 'Restore' }).click();
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
import * as sdk from '@immich/sdk';
|
||||
import { LoginResponseDto, StorageFolder, getServerFeatures } from '@immich/sdk';
|
||||
import { expect, test } from '@playwright/test';
|
||||
import { io, type Socket } from 'socket.io-client';
|
||||
import { asBearerAuth, baseUrl, utils } from 'src/utils';
|
||||
|
||||
test.describe.configure({ mode: 'serial' });
|
||||
|
||||
test.describe('FUTO Backups', () => {
|
||||
let admin: LoginResponseDto;
|
||||
let socket: Socket;
|
||||
|
||||
const finishedJobStatuses = new Set(['complete', 'warn', 'failed', 'cancelled', 'incomplete']);
|
||||
|
||||
const waitForJobEnd = () =>
|
||||
new Promise<void>((resolve) => {
|
||||
const listener = (msg: string) => {
|
||||
try {
|
||||
const payload = JSON.parse(msg);
|
||||
if (payload.type === 'JobUpdate' && finishedJobStatuses.has(payload.job?.status)) {
|
||||
socket.offAny(listener);
|
||||
resolve();
|
||||
}
|
||||
} catch {
|
||||
// no-op
|
||||
}
|
||||
};
|
||||
socket.onAny(listener);
|
||||
});
|
||||
|
||||
test.beforeAll(async () => {
|
||||
utils.initSdk();
|
||||
await utils.resetDatabase();
|
||||
admin = await utils.adminSetup();
|
||||
|
||||
const headers = asBearerAuth(admin.accessToken);
|
||||
await sdk.futoBackupsResetOrchestrator({ headers });
|
||||
await sdk.futoBackupsImportRecoveryKey({ importRecoveryKeyRequest: { recoveryKey: '0'.repeat(64) } }, { headers });
|
||||
await sdk.futoBackupsConfirmRecoveryKey({ headers });
|
||||
await sdk.futoBackupsEnableTelemetry({ headers });
|
||||
await utils.mkFolder('/local-backend');
|
||||
|
||||
socket = io(baseUrl, {
|
||||
path: '/api/futo-backups/socket.io',
|
||||
transports: ['websocket'],
|
||||
extraHeaders: headers,
|
||||
forceNew: true,
|
||||
});
|
||||
await new Promise<void>((resolve) => socket.on('connect', () => resolve()));
|
||||
});
|
||||
|
||||
test.afterAll(async () => {
|
||||
socket?.close();
|
||||
});
|
||||
|
||||
test('the backups link opens the upsell before backups are configured', async ({ context, page }) => {
|
||||
const headers = asBearerAuth(admin.accessToken);
|
||||
await utils.setAuthCookies(context, admin.accessToken);
|
||||
|
||||
await expect(getServerFeatures({ headers })).resolves.toMatchObject({ backups: false });
|
||||
|
||||
await page.goto('/link?target=backups');
|
||||
await page.waitForURL('/admin/backups');
|
||||
|
||||
await expect(page.getByRole('heading', { name: 'FUTO Backups', exact: true })).toBeVisible();
|
||||
await expect(page.getByRole('button', { name: 'Get Started' })).toBeVisible();
|
||||
await expect(page.getByRole('link', { name: 'Set up Backups' })).toBeVisible();
|
||||
await expect(getServerFeatures({ headers })).resolves.toMatchObject({ backups: true });
|
||||
});
|
||||
|
||||
test('the backups link opens the dashboard once backups are configured', async ({ context, page }) => {
|
||||
test.setTimeout(60_000);
|
||||
const headers = asBearerAuth(admin.accessToken);
|
||||
await utils.setAuthCookies(context, admin.accessToken);
|
||||
|
||||
await sdk.futoBackupsCreateLocalBackend({ createLocalBackendRequestDto: { path: '/local-backend' } }, { headers });
|
||||
await sdk.futoBackupsConfigureImmichIntegration(
|
||||
{
|
||||
configureImmichIntegrationRequestDto: {
|
||||
name: 'Immich',
|
||||
worm: false,
|
||||
cron: '0 3 * * *',
|
||||
backupConfiguration: true,
|
||||
dataFolders: [StorageFolder.Backups, StorageFolder.Upload],
|
||||
libraries: ['all'],
|
||||
},
|
||||
},
|
||||
{ headers },
|
||||
);
|
||||
|
||||
const { repositories } = await sdk.futoBackupsGetRepositories({ headers });
|
||||
const backupEnd = waitForJobEnd();
|
||||
await sdk.futoBackupsCreateBackup({ id: repositories[0].id }, { headers });
|
||||
await backupEnd;
|
||||
|
||||
await page.goto('/link?target=backups');
|
||||
await page.waitForURL('/admin/backups');
|
||||
|
||||
await expect(page.getByText('Your library backup')).toBeVisible();
|
||||
await expect(page.getByText('Last backup successful')).toBeVisible();
|
||||
});
|
||||
|
||||
test('manually triggers a backup and waits for completion', async ({ context, page }) => {
|
||||
test.setTimeout(60_000);
|
||||
await utils.setAuthCookies(context, admin.accessToken);
|
||||
|
||||
await page.goto('/admin/backups');
|
||||
await page.getByRole('button', { name: 'Back up now', exact: true }).click();
|
||||
|
||||
const dialog = page.getByRole('dialog');
|
||||
await expect(dialog.getByRole('heading', { name: 'Backing up your library' })).toBeVisible();
|
||||
await expect(dialog.getByRole('heading', { name: 'Backup complete' })).toBeVisible({ timeout: 45_000 });
|
||||
});
|
||||
|
||||
test('resets immich and restores from the local FUTO Backups backup', async ({ context, page }) => {
|
||||
test.setTimeout(120_000);
|
||||
await utils.setAuthCookies(context, admin.accessToken);
|
||||
|
||||
await utils.resetBackups(admin.accessToken);
|
||||
await utils.createBackup(admin.accessToken);
|
||||
|
||||
await sdk.futoBackupsResetOrchestrator({ headers: asBearerAuth(admin.accessToken) });
|
||||
await utils.resetDatabase();
|
||||
|
||||
await page.goto('/');
|
||||
await page.getByRole('button', { name: 'Restore from backup' }).click();
|
||||
|
||||
try {
|
||||
await page.waitForURL('/maintenance**');
|
||||
} catch {
|
||||
await page.goto('/maintenance');
|
||||
await page.waitForURL('/maintenance**');
|
||||
}
|
||||
|
||||
await page.getByRole('button', { name: 'FUTO Backups' }).click();
|
||||
|
||||
const dialog = page.getByRole('dialog');
|
||||
await expect(dialog.filter({ hasText: 'Telemetry required for closed beta' })).toBeVisible();
|
||||
await dialog.getByRole('button', { name: 'Continue' }).click();
|
||||
|
||||
await expect(dialog.filter({ hasText: 'Import recovery key' })).toBeVisible();
|
||||
await dialog.getByLabel('Recovery Key').fill('0'.repeat(64));
|
||||
await dialog.getByRole('button', { name: 'Save' }).click();
|
||||
|
||||
await expect(dialog.filter({ hasText: 'Where would you like to restore from?' })).toBeVisible();
|
||||
await dialog.getByText('Local Storage').click();
|
||||
|
||||
await expect(dialog.filter({ hasText: 'Create local backend' })).toBeVisible();
|
||||
await dialog.getByLabel('Path').fill('/local-backend');
|
||||
await dialog.getByRole('button', { name: 'Save' }).click();
|
||||
|
||||
await expect(dialog.filter({ hasText: 'Select Backup' })).toBeVisible();
|
||||
await dialog
|
||||
.getByRole('button', { name: /Last backup/ })
|
||||
.first()
|
||||
.click();
|
||||
|
||||
await expect(dialog.filter({ hasText: /Restore from/ })).toBeVisible();
|
||||
await dialog.getByRole('button', { name: 'Restore' }).first().click();
|
||||
|
||||
await expect(dialog.filter({ hasText: 'Confirm restore from snapshot' })).toBeVisible();
|
||||
await dialog.getByRole('button', { name: 'Restore', exact: true }).click();
|
||||
|
||||
await expect(dialog.filter({ hasText: 'Restoring' })).toBeVisible();
|
||||
await expect(dialog.filter({ hasText: 'Restoring' })).toBeHidden({ timeout: 60_000 });
|
||||
|
||||
await page.getByRole('button', { name: 'Continue' }).click();
|
||||
await page.getByRole('dialog').getByRole('button', { name: 'Restore' }).click();
|
||||
|
||||
await page.waitForURL('/maintenance?**');
|
||||
await page.waitForURL('/photos', { timeout: 90_000 });
|
||||
});
|
||||
});
|
||||
@@ -98,6 +98,7 @@ describe('/server', () => {
|
||||
configFile: false,
|
||||
duplicateDetection: false,
|
||||
facialRecognition: false,
|
||||
backups: false,
|
||||
map: true,
|
||||
reverseGeocoding: true,
|
||||
importFaces: false,
|
||||
|
||||
@@ -143,6 +143,7 @@ export const setupBaseMockApiRoutes = async (context: BrowserContext, adminUserI
|
||||
smartSearch: false,
|
||||
facialRecognition: false,
|
||||
duplicateDetection: false,
|
||||
backups: false,
|
||||
map: true,
|
||||
reverseGeocoding: true,
|
||||
importFaces: false,
|
||||
|
||||
@@ -31,6 +31,7 @@ import {
|
||||
createUserAdmin,
|
||||
deleteAssets,
|
||||
deleteDatabaseBackup,
|
||||
deleteLibrary,
|
||||
getAssetInfo,
|
||||
getConfig,
|
||||
getConfigDefaults,
|
||||
@@ -466,6 +467,8 @@ export const utils = {
|
||||
updateLibrary: (accessToken: string, id: string, dto: UpdateLibraryDto) =>
|
||||
updateLibrary({ id, updateLibraryDto: dto }, { headers: asBearerAuth(accessToken) }),
|
||||
|
||||
deleteLibrary: (accessToken: string, id: string) => deleteLibrary({ id }, { headers: asBearerAuth(accessToken) }),
|
||||
|
||||
createPartner: (accessToken: string, id: string) =>
|
||||
createPartner({ partnerCreateDto: { sharedWithId: id } }, { headers: asBearerAuth(accessToken) }),
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"about": "Oor",
|
||||
"accept": "Aanvaar",
|
||||
"account": "Rekening",
|
||||
"account_settings": "Rekeninginstellings",
|
||||
"acknowledge": "Neem kennis",
|
||||
@@ -29,11 +30,13 @@
|
||||
"add_to_album_bottom_sheet_added": "Tot {album} toegevoeg",
|
||||
"add_to_album_bottom_sheet_already_exists": "Reeds in {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Sommige plaaslike bates kon nie toe gevoeg word tot die album nie",
|
||||
"add_to_album_item_count": "Voeg {count, plural, one {# item} other {# items}} tot album toe",
|
||||
"add_to_albums": "Voeg toe tot albums",
|
||||
"add_to_albums_count": "Voeg toe tot albums ({count})",
|
||||
"add_to_bottom_bar": "Voeg toe",
|
||||
"add_upload_to_stack": "Voeg oplaai by stapel",
|
||||
"add_url": "Voeg bronadres toe",
|
||||
"add_user": "Voeg gebruiker toe",
|
||||
"added_to_archive": "Tot argief toegevoeg",
|
||||
"added_to_favorites": "Tot gunstelinge toegevoeg",
|
||||
"added_to_favorites_count": "{count, number} tot gunstelinge toegevoeg",
|
||||
|
||||
@@ -1210,7 +1210,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} تم التقاطها في {city}، {country} مع {person1}، {person2}، و{person3} في {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} تم التقاطها في {city}, {country} with {person1}, {person2}, مع {additionalCount, number} آخرين في {date}",
|
||||
"immich_logo": "شعار immich",
|
||||
"immich_web_interface": "واجهة ويب immich",
|
||||
"import_from_json": "استيراد من JSON",
|
||||
"import_path": "مسار الاستيراد",
|
||||
"in_albums": "في {count, plural, one {# ألبوم } other {# ألبومات}}",
|
||||
@@ -1915,8 +1914,6 @@
|
||||
"setting_image_viewer_help": "يقوم عارض التفاصيل بتحميل الصورة المصغرة الصغيرة أولاً ، ثم يقوم بتحميل المعاينة متوسطة الحجم (إذا تم تمكينها) ، ويقوم أخيرًا بتحميل الأصل (إذا تم تمكينه).",
|
||||
"setting_image_viewer_original_subtitle": "تمكين تحميل الصورة الكاملة الدقة الأصلية (كبيرة!).تعطيل لتقليل استخدام البيانات (كل من الشبكة وعلى ذاكرة التخزين المؤقت للجهاز).",
|
||||
"setting_image_viewer_original_title": "تحميل الصورة الأصلية",
|
||||
"setting_image_viewer_preview_subtitle": "تمكين تحميل صورة متوسطة الدقة.تعطيل إما لتحميل مباشرة أو استخدام الصورة المصغرة مباشرة.",
|
||||
"setting_image_viewer_preview_title": "تحميل صورة معاينة",
|
||||
"setting_languages_apply": "تغيير الإعدادات",
|
||||
"setting_languages_subtitle": "تغيير لغة التطبيق",
|
||||
"setting_notifications_notify_minutes": "{count} دقائق",
|
||||
@@ -1982,7 +1979,6 @@
|
||||
"shared_link_password_description": "طلب كلمة مرور للوصول إلى هذا الرابط المشترك",
|
||||
"shared_links": "روابط مشتركة",
|
||||
"shared_links_description": "وصف الروابط المشتركة",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# الصور ومقاطع الفيديو المُشارَكة.}}",
|
||||
"shared_with_me": "تمت مشاركتها معي",
|
||||
"shared_with_partner": "تمت المشاركة مع {partner}",
|
||||
"sharing": "مشاركة",
|
||||
|
||||
@@ -1212,7 +1212,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Відэа} other {Фота}} зробленае ў {city}, {country} з {person1}, {person2} і {person3} {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Відэа} other {Фота}} зробленае ў {city}, {country} з {person1}, {person2} і яшчэ {additionalCount, number} інш. {date}",
|
||||
"immich_logo": "Лагатып Immich",
|
||||
"immich_web_interface": "Вэб-інтэрфейс Immich",
|
||||
"import_from_json": "Імпарт з JSON",
|
||||
"import_path": "Шлях імпарту",
|
||||
"in_albums": "У {count, plural, one {# альбоме} few {# альбомах} many {# альбомах} other {# альбома}}",
|
||||
@@ -1931,8 +1930,6 @@
|
||||
"setting_image_viewer_help": "Дэталёвы прагляд спачатку запампоўвае маленькую мініяцюру, потым папярэдні прагляд сярэдняга памеру (калі ўключана), і нарэшце арыгінал (калі ўключана).",
|
||||
"setting_image_viewer_original_subtitle": "Уключыце для загрузкі зыходнага відарыса ў поўнай раздзяляльнасці (вялікі!). Адключыце, каб зменшыць выкарыстанне трафіка (як сеткі, так і кэша прылады).",
|
||||
"setting_image_viewer_original_title": "Загружаць арыгінальны відарыс",
|
||||
"setting_image_viewer_preview_subtitle": "Уключыце для запампавання відарыса сярэдняй раздзяляльнасці. Адключыце, каб загружаць толькі арыгінал ці мініяцюру.",
|
||||
"setting_image_viewer_preview_title": "Загружаць відарыс перадпрагляду",
|
||||
"setting_languages_apply": "Ужыць",
|
||||
"setting_languages_subtitle": "Змяненне мовы праграмы",
|
||||
"setting_notifications_notify_minutes": "{count} хв",
|
||||
@@ -1998,7 +1995,6 @@
|
||||
"shared_link_password_description": "Патрабаваць пароль для доступу да гэтай абагуленай спасылкі",
|
||||
"shared_links": "Абагуленыя спасылкі",
|
||||
"shared_links_description": "Абагульвайце фота і відэа праз спасылку",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, one {# абагуленае фота і відэа.} few {# абагуленыя фота і відэа.} many {# абагуленых фота і відэа.} other {# абагуленага фота і відэа.}}",
|
||||
"shared_with_me": "Абагуленыя са мной",
|
||||
"shared_with_partner": "Абагулена з {partner}",
|
||||
"sharing": "Абагульванне",
|
||||
|
||||
+25
-6
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Време на изчакване при заявка",
|
||||
"oauth_timeout_description": "Време за изчакване на отговор на заявка, в милисекунди",
|
||||
"ocr_job_description": "Използване на машинно обучение за разпознаване на текст в изображенията",
|
||||
"passkey_additional_domains": "Допълнителни домейни",
|
||||
"passkey_additional_domains_description": "Допълнителни, доверени домейни (свързани заявки за произход). Те ще работят само ако домейнът с ключ за достъп също е достъпен.",
|
||||
"passkey_domain": "Домейн с ключ за достъп",
|
||||
"passkey_domain_description": "Домейн, използван за пароли (доверяваща се страна). Оставете празно, за да се прави извод от заглавията на оригинала. Промяната на тази стойност ще направи съществуващите пароли да не работят.",
|
||||
"passkey_enable_description": "Влизане с парола",
|
||||
"passkey_settings": "Вход с парола",
|
||||
"passkey_settings_description": "Управление на настройки за влизане с парола",
|
||||
"password_enable_description": "Влизане с имейл и парола",
|
||||
"password_settings": "Вписване с парола",
|
||||
"password_settings_description": "Управление на настройките за влизане с парола",
|
||||
@@ -671,6 +678,7 @@
|
||||
"birthdate_set_description": "Датата на раждане се използва за изчисляване на възрастта на този човек към момента на снимката.",
|
||||
"birthday_memory_age": "{age, selectordinal, one {#ви} two {#ри} few {#ти} other {#ти}} рожден ден",
|
||||
"birthday_memory_title": "Ражден ден на {name}",
|
||||
"birthday_memory_title_with_age": "Рожден ден на {name} · {age, plural, one {# година} other {# години}}",
|
||||
"blurred_background": "Замъглен заден фон",
|
||||
"browse_templates": "Разглеждане на шаблони",
|
||||
"bugs_and_feature_requests": "Бъгове и заявки за функции",
|
||||
@@ -872,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Изтрий локално само архивираните",
|
||||
"delete_local_dialog_ok_force": "Въпреки това изтрий",
|
||||
"delete_others": "Изтрий останалите",
|
||||
"delete_passkey": "Премахване на парола",
|
||||
"delete_passkey_prompt": "Наистина ли искате да премахнете паролата?",
|
||||
"delete_permanently": "Изтрий за постоянно",
|
||||
"delete_permanently_action_prompt": "{count} изтрити за постоянно",
|
||||
"delete_shared_link": "Изтриване на споделен линк",
|
||||
@@ -941,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} локации са редактирани",
|
||||
"edit_location_dialog_title": "Местоположение",
|
||||
"edit_name": "Редактиране на име",
|
||||
"edit_passkey": "Смяна на парола",
|
||||
"edit_people": "Редактиране на хора",
|
||||
"edit_person": "Редактиране на данни за човек",
|
||||
"edit_tag": "Редактиране на етикет",
|
||||
@@ -1238,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Видео} other {Снимка}} заснето с {city}, {country} и {person1}, {person2}, и {person3} на {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Видео} other {Снимка}} заснето в {city}, {country} с {person1}, {person2}, и {additionalCount, number} други на{date}",
|
||||
"immich_logo": "Immich лого",
|
||||
"immich_web_interface": "Уеб интерфейс на Immich",
|
||||
"import_from_json": "Импортиране от JSON",
|
||||
"import_path": "Път за импортиране",
|
||||
"in_albums": "В {count, plural, one {# албум} other {# албума}}",
|
||||
@@ -1286,6 +1296,7 @@
|
||||
"last": "Последен",
|
||||
"last_months": "{count, plural, one {Последния месец} other {Последните # месеца}}",
|
||||
"last_seen": "Последно видяно",
|
||||
"last_used": "Последно използвана",
|
||||
"latest_version": "Последна версия",
|
||||
"latitude": "Ширина",
|
||||
"leave": "Излез",
|
||||
@@ -1361,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Влизането е деактивирано",
|
||||
"login_password_changed_error": "Грешка при обновяване на паролата",
|
||||
"login_password_changed_success": "Успешно обновена парола",
|
||||
"login_with_passkey": "Влизане с паролa",
|
||||
"logout_all_device_confirmation": "Сигурни ли сте, че искате да излезете от всички устройства?",
|
||||
"logout_this_device_confirmation": "Сигурни ли сте, че искате да излезете от това устройство?",
|
||||
"logs": "Дневник",
|
||||
@@ -1400,6 +1412,7 @@
|
||||
"manage_media_access_title": "Управление на медийни файлове",
|
||||
"manage_oauth_account": "Управление на OAuth акаунт",
|
||||
"manage_people": "Управление на хора",
|
||||
"manage_people_access_description_v2": "Даване на достъп на други потребители до {count, plural, one {този човек} other {тези хора}}, като им разрешавате да виждат и управляват от ваше име. Това действие не споделя достъп до никакви ресурси.",
|
||||
"manage_person_access": "Управление на достъпа",
|
||||
"manage_sharing_with_other_users": "Управление на споделяне с други потребители",
|
||||
"manage_sharing_with_partners": "Управление на споделянето с партньори",
|
||||
@@ -1408,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Управление на вашите API ключове",
|
||||
"manage_your_devices": "Управление на влезлите в системата устройства",
|
||||
"manage_your_oauth_connection": "Управление на OAuth връзката",
|
||||
"manage_your_passkeys": "Управлявайте вашите пароли",
|
||||
"map": "Карта",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Няма снимки в тази зона} one {# снимка} other {# снимки}}",
|
||||
"map_cannot_get_user_location": "Не можах да получа местоположението",
|
||||
@@ -1527,6 +1541,7 @@
|
||||
"new_album": "Нов Албум",
|
||||
"new_api_key": "Нов API ключ",
|
||||
"new_feature": "Нова функция",
|
||||
"new_passkey": "Нова паролa",
|
||||
"new_password": "Нова парола",
|
||||
"new_person": "Нов човек",
|
||||
"new_pin_code": "Нов PIN код",
|
||||
@@ -1639,6 +1654,8 @@
|
||||
"partner_sharing": "Споделяне с партньори",
|
||||
"partners": "Партньори",
|
||||
"partners_description": "Споделете своите снимки и видео с други потребители",
|
||||
"passkeys": "{count, plural, one {Парола} other {Пароли}}",
|
||||
"passkeys_not_supported": "Този браузър не поддържа пароли",
|
||||
"password": "Парола",
|
||||
"password_does_not_match": "Паролата не съвпада",
|
||||
"password_required": "Изисква се парола",
|
||||
@@ -1823,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {Премахнати #}} от Любими",
|
||||
"removed_from_stack": "Активът е премахнат от групата",
|
||||
"removed_memory": "Премахнат спомен",
|
||||
"removed_passkey": "Премахната парола: {name}",
|
||||
"removed_tagged_assets": "Премахнат е етикетът от {count, plural, one {# елемент} other {# елемента}}",
|
||||
"rename": "Преименувай",
|
||||
"repository": "Хранилище",
|
||||
@@ -1984,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Ако е избрано, можете да навигирате към предишна/следваща снимка като натиснете върху лявата/дясната страна на екрана.",
|
||||
"setting_image_navigation_enable_title": "Натисни за навигиране",
|
||||
"setting_image_navigation_title": "Навигиране на снимка",
|
||||
"setting_image_viewer_help": "При показване на обект първо се зарежда миниатюра, после изображение със средно качество (ако е разрешено) и накрая оригинала (ако е разрешено).",
|
||||
"setting_image_viewer_help": "При показване на обект първо се зарежда миниатюра, после изображение със средно качество и накрая оригинала (ако е разрешено).",
|
||||
"setting_image_viewer_original_subtitle": "Разреши за да се зарежда оригиналното изображение в пълен размер (голям!). Забрани за да се намали обема на данните (по мрежата и в кеша на устройството).",
|
||||
"setting_image_viewer_original_title": "Зареждане на оригинално изображение",
|
||||
"setting_image_viewer_preview_subtitle": "Разреши за да се зарежда изображение със средно качество (и размер). Забрани за да се зарежда само оригинал и миниатюра.",
|
||||
"setting_image_viewer_preview_title": "Зареждане на миниатюра",
|
||||
"setting_languages_apply": "Приложи",
|
||||
"setting_languages_subtitle": "Смени езика на приложението",
|
||||
"setting_notifications_notify_minutes": "{count} минути",
|
||||
@@ -2008,8 +2024,9 @@
|
||||
"share_everyone": "Споделете с всеки",
|
||||
"share_everyone_description": "Дайте на {user} достъп до всички ваши хора.",
|
||||
"share_link": "Връзка за споделяне",
|
||||
"share_logs": "Споделяне на дневници",
|
||||
"share_original": "Използвай оригинала (голям размер)",
|
||||
"share_preview": "Използвай миниатюра (намален размер)",
|
||||
"share_preview": "Използвай миниатюра (умален размер)",
|
||||
"share_quality_body": "Натиснете и задръжте бутона за споделяне, за да изберете качеството на изображението, преди да го споделите.",
|
||||
"share_quality_title": "Изберете качеството при споделяне",
|
||||
"share_with": "Споделете достъп с",
|
||||
@@ -2059,7 +2076,6 @@
|
||||
"shared_link_password_description": "Изискване на парола за достъп до споделения линк",
|
||||
"shared_links": "Споделени връзки",
|
||||
"shared_links_description": "Сподели снимки и видеа с линк",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# споделени снимки и видеа.}}",
|
||||
"shared_with": "Споделено с",
|
||||
"shared_with_count": "Споделени ({count})",
|
||||
"shared_with_me": "Споделено с мен",
|
||||
@@ -2187,6 +2203,8 @@
|
||||
"theme": "Тема",
|
||||
"theme_selection": "Избор на тема",
|
||||
"theme_selection_description": "Автоматично задаване на светла или тъмна тема спрямо системните предпочитания на браузъра ви",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Превъртай непрекъснато при влачене по скролбара, вместо да скачаш по месеци",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Плавно превъртане на времевата линия",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Показвай индикатор за хранилището в заглавията на обектите",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Брой обекти на ред ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Нанеси основен цвят върху фоновите повърхности.",
|
||||
@@ -2338,6 +2356,7 @@
|
||||
"view_group": "Вижте група",
|
||||
"view_in_timeline": "Покажи във времева линия",
|
||||
"view_link": "Преглед на връзката",
|
||||
"view_more": "Вижте още",
|
||||
"view_name": "Прегледай",
|
||||
"view_next_asset": "Преглед на следващия файл",
|
||||
"view_previous_asset": "Преглед на предишния файл",
|
||||
|
||||
+6
-5
@@ -34,7 +34,7 @@
|
||||
"add_to_albums": "অ্যালবামে যোগ করুন",
|
||||
"add_to_albums_count": "অ্যালবামে যোগ করুন ({count})",
|
||||
"add_to_bottom_bar": "এ যোগ করুন",
|
||||
"add_upload_to_stack": "আপলোড স্ট্যাকে যোগ করুন",
|
||||
"add_upload_to_stack": "আপলোড করুন এবং {isStack, select, true {স্ট্যাকে যোগ করুন} other {স্ট্যাক তৈরি করুন}}",
|
||||
"add_url": "লিঙ্ক যোগ করুন",
|
||||
"add_user": "ব্যবহারকারী যোগ করুন",
|
||||
"added_to_archive": "আর্কাইভ এ যোগ করা হয়েছে",
|
||||
@@ -323,6 +323,11 @@
|
||||
"oauth_timeout": "রিকোয়েস্ট টাইম-আউট (Request Timeout)",
|
||||
"oauth_timeout_description": "মিলিসেকেন্ডে রিকোয়েস্টের টাইম-আউট (Timeout for requests in milliseconds)",
|
||||
"ocr_job_description": "ছবি থেকে টেক্সট শনাক্ত করতে মেশিন লার্নিং ব্যবহার করুন",
|
||||
"passkey_additional_domains": "অতিরিক্ত ডোমেইনসমূহ",
|
||||
"passkey_additional_domains_description": "অতিরিক্ত বিশ্বস্ত ডোমেইনসমূহ (সংশ্লিষ্ট উৎস থেকে আসা অনুরোধ)। পাসকি ডোমেইনটিও অ্যাক্সেসযোগ্য থাকলেই কেবল এগুলো কাজ করবে।",
|
||||
"passkey_domain": "পাসকি ডোমেইন",
|
||||
"passkey_domain_description": "পাসকির জন্য ব্যবহৃত ডোমেইন (রিলাইং পার্টি)। অরিজিন হেডার থেকে স্বয়ংক্রিয়ভাবে নির্ধারণ করতে চাইলে ফাঁকা রাখুন। এই মান পরিবর্তন করলে বিদ্যমান পাসকিগুলো আর কাজ করবে না।",
|
||||
"passkey_enable_description": "পাসকি দিয়ে লগইন করুন",
|
||||
"password_enable_description": "ইমেল এবং পাসওয়ার্ড দিয়ে লগইন করুন",
|
||||
"password_settings": "পাসওয়ার্ড লগইন (Password Login)",
|
||||
"password_settings_description": "পাসওয়ার্ড লগইন সেটিংস ম্যানেজ করুন",
|
||||
@@ -1220,7 +1225,6 @@
|
||||
"image_alt_text_date_place_3_people": "{city}, {country}-এ {person1}, {person2}, এবং {person3}-এর সাথে {date} তারিখে তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{city}, {country}-এ {person1}, {person2}, এবং আরও {additionalCount, number} জনের সাথে {date} তারিখে তোলা {isVideo, select, true {ভিডিও} other {ছবি}}",
|
||||
"immich_logo": "ইমিচ লোগো",
|
||||
"immich_web_interface": "ইমিচ ওয়েব ইন্টারফেস",
|
||||
"import_from_json": "জেএসওএন থেকে আমদানি করুন",
|
||||
"import_path": "আমদানি পথ",
|
||||
"in_albums": "{count, plural, one {#টি অ্যালবামে} other {#টি অ্যালবামে}}",
|
||||
@@ -1949,8 +1953,6 @@
|
||||
"setting_image_viewer_help": "ডিটেইল ভিউয়ার প্রথমে ছোট থাম্বনেইল লোড করে, তারপর মাঝারি আকারের প্রিভিউ লোড করে (চালু থাকলে), অবশেষে মূল ছবি লোড করে (চালু থাকলে)।",
|
||||
"setting_image_viewer_original_subtitle": "মূল পূর্ণ-রেজোলিউশন ছবি লোড করতে চালু করুন (বড়!)। ডেটা ব্যবহার কমাতে (নেটওয়ার্ক ও ডিভাইস ক্যাশ উভয়ই) নিষ্ক্রিয় করুন।",
|
||||
"setting_image_viewer_original_title": "মূল ছবি লোড করুন",
|
||||
"setting_image_viewer_preview_subtitle": "মাঝারি-রেজোলিউশন ছবি লোড করতে চালু করুন। সরাসরি মূল ছবি লোড করতে বা শুধুমাত্র থাম্বনেইল ব্যবহার করতে নিষ্ক্রিয় করুন।",
|
||||
"setting_image_viewer_preview_title": "প্রিভিউ ছবি লোড করুন",
|
||||
"setting_languages_apply": "প্রয়োগ করুন",
|
||||
"setting_languages_subtitle": "অ্যাপের ভাষা পরিবর্তন করুন",
|
||||
"setting_notifications_notify_minutes": "{count} মিনিট",
|
||||
@@ -2016,7 +2018,6 @@
|
||||
"shared_link_password_description": "এই শেয়ার লিংক অ্যাক্সেস করতে পাসওয়ার্ড আবশ্যক করুন",
|
||||
"shared_links": "শেয়ার করা লিংক",
|
||||
"shared_links_description": "একটি লিংক দিয়ে ছবি ও ভিডিও শেয়ার করুন",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {#টি শেয়ার করা ছবি ও ভিডিও।}}",
|
||||
"shared_with_me": "আমার সাথে শেয়ার করা হয়েছে",
|
||||
"shared_with_partner": "{partner}-এর সাথে শেয়ার করা হয়েছে",
|
||||
"sharing": "শেয়ারিং",
|
||||
|
||||
+36
-17
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "L’ordre {command} ha fallat a la tasca: {job}",
|
||||
"force_delete_user_warning": "ADVERTÈNCIA: Aquesta acció suprimirà immediatament l’usuari i tots els recursos. Aquesta acció no es pot desfer i els fitxers no es podran recuperar.",
|
||||
"image_format": "Format",
|
||||
"image_format_description": "WebP genera fitxers més petits que JPEG, però es codifica més lentament.",
|
||||
"image_format_description": "WebP genera fitxers més petits que JPEG, però es codifica més lentament. JPEG XL és la millor opció per a una compressió d’alta qualitat, però no tots els navegadors i aplicacions el poden mostrar.",
|
||||
"image_fullsize_description": "Imatge de mida completa amb les metadades eliminades. S’utilitza en ampliar",
|
||||
"image_fullsize_enabled": "Activa la generació d’imatges de mida completa",
|
||||
"image_fullsize_enabled_description": "Genera imatges de mida completa per a formats no aptes per al web. Quan s’activa «Prefereix la previsualització incrustada», s’utilitzen directament previsualitzacions incrustades sense conversió. No afecta els formats aptes per al web com JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Qualitat de la previsualització de l’1 al 100. Un valor més alt és millor, però produeix fitxers més grans i pot reduir la capacitat de resposta de l’aplicació. Establir-hi un valor baix pot afectar la qualitat de l’aprenentatge automàtic.",
|
||||
"image_preview_title": "Configuració de les previsualitzacions",
|
||||
"image_progressive": "Progressiu",
|
||||
"image_progressive_description": "Codifica les imatges JPEG en mode progressiu perquè es visualitzin amb una càrrega gradual. No té cap efecte sobre les imatges WebP.",
|
||||
"image_progressive_description": "Codifica les imatges JPEG en mode progressiu perquè es visualitzin amb una càrrega gradual. No té cap efecte sobre altres formats.",
|
||||
"image_quality": "Qualitat",
|
||||
"image_resolution": "Resolució",
|
||||
"image_resolution_description": "Les resolucions més altes poden conservar més detalls, però tarden més temps a codificar-se, tenen mides de fitxer més grans i poden reduir la capacitat de resposta de l’aplicació.",
|
||||
@@ -163,7 +163,7 @@
|
||||
"machine_learning_clip_model_description": "El nom d’un model CLIP que aparegui <link>aquí</link>. Tingueu en compte que si canvieu de model, cal que torneu a executar la tasca «Cerca intel·ligent» per a totes les imatges.",
|
||||
"machine_learning_duplicate_detection": "Detecció de duplicats",
|
||||
"machine_learning_duplicate_detection_enabled": "Activa la detecció de duplicats",
|
||||
"machine_learning_duplicate_detection_enabled_description": "Si està desactivada, els elements idèntics encara es desduplicaran.",
|
||||
"machine_learning_duplicate_detection_enabled_description": "Si està desactivada, els recursos idèntics encara es desduplicaran.",
|
||||
"machine_learning_duplicate_detection_setting_description": "Utilitza incrustacions CLIP per a trobar possibles duplicats",
|
||||
"machine_learning_enabled": "Activa l’aprenentatge automàtic",
|
||||
"machine_learning_enabled_description": "Si està desactivat, totes les funcions de ML es desactivaran, independentment de la configuració següent.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Temps d’espera de les sol·licituds",
|
||||
"oauth_timeout_description": "Temps d’espera de les sol·licituds en mil·lisegons",
|
||||
"ocr_job_description": "Utilitza aprenentatge automàtic per a reconèixer text a les imatges",
|
||||
"passkey_additional_domains": "Dominis addicionals",
|
||||
"passkey_additional_domains_description": "Dominis addicionals i de confiança (peticions d’origen relacionades). Només funcionen si el domini de la clau d’accés també és accessible.",
|
||||
"passkey_domain": "Domini de la clau d’accés",
|
||||
"passkey_domain_description": "Domini utilitzat per a les claus d’accés («relying party»). Deixeu-lo en blanc per a deduir-lo de la capçalera d’origen. Canviar aquest valor farà que les claus d’accés existents deixin de funcionar.",
|
||||
"passkey_enable_description": "Inicia la sessió amb una clau d’accés",
|
||||
"passkey_settings": "Inici de sessió amb clau d’accés",
|
||||
"passkey_settings_description": "Gestiona la configuració de l’inici de sessió amb claus d’accés",
|
||||
"password_enable_description": "Inicia la sessió amb adreça electrònica i contrasenya",
|
||||
"password_settings": "Inici de sessió amb contrasenya",
|
||||
"password_settings_description": "Gestioneu els paràmetres de l’inici de sessió amb contrasenya",
|
||||
@@ -395,7 +402,7 @@
|
||||
"theme_settings": "Configuració del tema",
|
||||
"theme_settings_description": "Gestioneu la personalització de la interfície web de l’Immich",
|
||||
"thumbnail_generation_job": "Genera les miniatures",
|
||||
"thumbnail_generation_job_description": "Genera les miniatures grans, petites i borroses per a cada element, així com miniatures per a cada persona",
|
||||
"thumbnail_generation_job_description": "Genera les miniatures grans, petites i borroses per a cada recurs, així com miniatures per a cada persona",
|
||||
"transcoding_acceleration_api": "API d’acceleració",
|
||||
"transcoding_acceleration_api_description": "L’API que interactuarà amb el vostre dispositiu per a accelerar la transcodificació. Aquesta configuració és de l’estil «millor esforç»: en cas d’error, tornarà a la transcodificació per programari. El VP9 pot funcionar o no depenent del vostre maquinari.",
|
||||
"transcoding_acceleration_nvenc": "NVENC (requereix GPU d’NVIDIA)",
|
||||
@@ -506,7 +513,7 @@
|
||||
"advanced_settings_clear_image_cache_error": "No s’ha pogut esborrar la memòria cau de les imatges",
|
||||
"advanced_settings_clear_image_cache_success": "S’han esborrat correctament {size}",
|
||||
"advanced_settings_log_level_title": "Nivell del registre: {level}",
|
||||
"advanced_settings_prefer_remote_subtitle": "Alguns dispositius són molt lents en carregar miniatures dels elements locals. Activeu aquest paràmetre per a carregar imatges remotes en el seu lloc.",
|
||||
"advanced_settings_prefer_remote_subtitle": "Alguns dispositius són molt lents en carregar miniatures dels recursos locals. Activeu aquest paràmetre per a carregar imatges remotes en el seu lloc.",
|
||||
"advanced_settings_prefer_remote_title": "Prefereix les imatges remotes",
|
||||
"advanced_settings_proxy_headers_subtitle": "Definiu les capçaleres de servidor intermediari que l’Immich ha d’enviar amb cada sol·licitud de xarxa",
|
||||
"advanced_settings_proxy_headers_title": "Capçaleres de servidor intermediari personalitzades [EXPERIMENTAL]",
|
||||
@@ -615,11 +622,11 @@
|
||||
"assets_cannot_be_added_to_albums": "{count, plural, one {El recurs} other {Els recursos}} no es poden afegir a cap dels àlbums",
|
||||
"assets_count": "{count, plural, one {# recurs} other {# recursos}}",
|
||||
"assets_moved_to_trash_count": "{count, plural, one {S’ha mogut # recurs} other {S’han mogut # recursos}} a la paperera",
|
||||
"assets_permanently_deleted_count": "{count, plural, one {S’ha suprimit # recurs} other {S’ha suprimit # recursos}} permanentment",
|
||||
"assets_permanently_deleted_count": "{count, plural, one {S’ha suprimit # recurs} other {S’han suprimit # recursos}} permanentment",
|
||||
"assets_removed_count": "{count, plural, one {S’ha eliminat # recurs} other {S’han eliminat # recursos}}",
|
||||
"assets_restore_confirmation": "Segur que voleu restaurar tots els recursos de la paperera? Aquesta acció no es pot desfer! Tingueu en compte que els recursos fora de línia no es poden restaurar d’aquesta manera.",
|
||||
"assets_restored_count": "{count, plural, one {S’ha restaurat # recurs} other {S’han restaurat # recursos}}",
|
||||
"assets_trashed": "{count, plural, one {S’ha enviat # element} other {S’ha enviat # elements}} a la paperera",
|
||||
"assets_trashed": "{count, plural, one {S’ha enviat # recurs} other {S’han enviat # recursos}} a la paperera",
|
||||
"assets_trashed_count": "{count, plural, one {S’ha enviat # recurs} other {S’han enviat # recursos}} a la paperera",
|
||||
"assets_were_part_of_album_count": "{count, plural, one {El recurs ja era} other {Els recursos ja eren}} part de l’àlbum",
|
||||
"assets_were_part_of_albums_count": "{count, plural, one {El recurs ja era} other {Els recursos ja eren}} part dels àlbums",
|
||||
@@ -726,7 +733,7 @@
|
||||
"cleanup_found_assets": "S’han trobat {count} recursos amb còpia al servidor",
|
||||
"cleanup_found_assets_with_size": "S’han trobat {count} recursos amb còpia al servidor ({size})",
|
||||
"cleanup_icloud_shared_albums_excluded": "Els àlbums compartits de l’iCloud s’exclouen de l’escaneig",
|
||||
"cleanup_no_assets_found": "No s’han trobat recursos que coincideixin amb els criteris anteriors. L’alliberament d’espai només pot esborrar elements dels quals s’hagi fet còpia al servidor",
|
||||
"cleanup_no_assets_found": "No s’han trobat recursos que coincideixin amb els criteris anteriors. L’alliberament d’espai només pot esborrar recursos dels quals s’hagi fet còpia al servidor",
|
||||
"cleanup_preview_title": "Recursos a eliminar ({count})",
|
||||
"cleanup_step3_description": "Escaneja cercant recursos que ja tinguin una còpia al servidor que encaixin amb la data de tall i la configuració de manteniment.",
|
||||
"cleanup_step4_summary": "S’esborraran {count} recursos (creats abans del {date}) del dispositiu local. Les fotos romandran accessibles a l’aplicació Immich.",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Suprimeix només els que tinguin còpia al servidor",
|
||||
"delete_local_dialog_ok_force": "Suprimeix igualment",
|
||||
"delete_others": "Suprimeix els altres",
|
||||
"delete_passkey": "Suprimeix la clau s’accés",
|
||||
"delete_passkey_prompt": "Segur que voleu suprimir aquesta clau d’accés?",
|
||||
"delete_permanently": "Suprimeix permanentment",
|
||||
"delete_permanently_action_prompt": "{count} suprimits permanentment",
|
||||
"delete_shared_link": "Suprimeix l’enllaç compartit",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} ubicacions editades",
|
||||
"edit_location_dialog_title": "Ubicació",
|
||||
"edit_name": "Edita el nom",
|
||||
"edit_passkey": "Edita la clau d’accés",
|
||||
"edit_people": "Edita les persones",
|
||||
"edit_person": "Edita la persona",
|
||||
"edit_tag": "Edita l’etiqueta",
|
||||
@@ -1032,8 +1042,8 @@
|
||||
"unable_to_add_comment": "No s’ha pogut afegir el comentari",
|
||||
"unable_to_add_exclusion_pattern": "No s’ha pogut afegir el patró d’exclusió",
|
||||
"unable_to_add_partners": "No s’han pogut afegir companys",
|
||||
"unable_to_add_remove_archive": "No s’ha pogut {archived, select, true {eliminar l’element de} other {afegir l’element a}} l’arxiu",
|
||||
"unable_to_add_remove_favorites": "No s’ha pogut {favorite, select, true {afegir l’element als} other {eliminar l’element dels}} preferits",
|
||||
"unable_to_add_remove_archive": "No s’ha pogut {archived, select, true {eliminar el recurs de} other {afegir el recurs a}} l’arxiu",
|
||||
"unable_to_add_remove_favorites": "No s’ha pogut {favorite, select, true {afegir el recurs als} other {eliminar el recurs dels}} preferits",
|
||||
"unable_to_archive_unarchive": "No s’ha pogut {archived, select, true {arxivar} other {desarxivar}}",
|
||||
"unable_to_change_album_user_role": "No s’ha pogut canviar el rol de l’usuari de l’àlbum",
|
||||
"unable_to_change_date": "No s’ha pogut canviar la data",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} a {city}, {country} amb {person1}, {person2} i {person3} el {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Vídeo enregistrat} other {Imatge capturada}} a {city}, {country} amb {person1}, {person2} i {additionalCount, number} més el {date}",
|
||||
"immich_logo": "Logo de l’Immich",
|
||||
"immich_web_interface": "Interfície web de l’Immich",
|
||||
"import_from_json": "Importa d’un JSON",
|
||||
"import_path": "Camí d’importació",
|
||||
"in_albums": "En {count, plural, one {# àlbum} other {# àlbums}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Darrer",
|
||||
"last_months": "{count, plural, one {Darrer mes} other {Darrers # mesos}}",
|
||||
"last_seen": "Vist per darrera vegada",
|
||||
"last_used": "Utilitzada per darrer cop",
|
||||
"latest_version": "Darrera versió",
|
||||
"latitude": "Latitud",
|
||||
"leave": "Surt",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "S’ha desactivat l’inici de sessió",
|
||||
"login_password_changed_error": "S’ha produït un error en actualitzar la contrasenya",
|
||||
"login_password_changed_success": "La contrasenya s’ha canviat correctament",
|
||||
"login_with_passkey": "Inicia la sessió amb una clau d’accés",
|
||||
"logout_all_device_confirmation": "Segur que voleu tancar la sessió en tots els dispositius?",
|
||||
"logout_this_device_confirmation": "Segur que voleu tancar la sessió d’aquest dispositiu?",
|
||||
"logs": "Registres",
|
||||
@@ -1410,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Gestioneu les vostres claus de l’API",
|
||||
"manage_your_devices": "Gestioneu els vostres dispositius connectats",
|
||||
"manage_your_oauth_connection": "Gestioneu la vostra connexió amb l’OAuth",
|
||||
"manage_your_passkeys": "Gestiona les meves claus d’accés",
|
||||
"map": "Mapa",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {No hi ha cap foto en aquesta zona} one {# foto} other {# fotos}}",
|
||||
"map_cannot_get_user_location": "No s’ha pogut obtenir la ubicació de l’usuari",
|
||||
@@ -1529,6 +1541,7 @@
|
||||
"new_album": "Àlbum nou",
|
||||
"new_api_key": "Clau de l’API nova",
|
||||
"new_feature": "Funcionalitat nova",
|
||||
"new_passkey": "Clau d’accés nova",
|
||||
"new_password": "Contrasenya nova",
|
||||
"new_person": "Persona nova",
|
||||
"new_pin_code": "Codi PIN nou",
|
||||
@@ -1641,6 +1654,8 @@
|
||||
"partner_sharing": "Compartició amb companys",
|
||||
"partners": "Companys",
|
||||
"partners_description": "Compartiu les vostres fotos i vídeos amb altres usuaris",
|
||||
"passkeys": "{count, plural, one {Clau d’accés} other {Claus d’accés}}",
|
||||
"passkeys_not_supported": "Aquest navegador no admet les claus d’accés",
|
||||
"password": "Contrasenya",
|
||||
"password_does_not_match": "La contrasenya no coincideix",
|
||||
"password_required": "La contrasenya és obligatòria",
|
||||
@@ -1825,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {# eliminats}} dels preferits",
|
||||
"removed_from_stack": "S’ha eliminat el recurs de la pila",
|
||||
"removed_memory": "S’ha eliminat el record",
|
||||
"removed_passkey": "S’ha suprimit la clau d’accés: {name}",
|
||||
"removed_tagged_assets": "S’ha eliminat l’etiqueta {count, plural, one {d’# recurs} other {de # recursos}}",
|
||||
"rename": "Canvia de nom",
|
||||
"repository": "Repositori",
|
||||
@@ -1986,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Si està activat, podeu navegar a la imatge anterior/següent tocant la quarta part més a l’esquerra/dreta de la pantalla.",
|
||||
"setting_image_navigation_enable_title": "Toqueu per a navegar",
|
||||
"setting_image_navigation_title": "Navegació per les imatges",
|
||||
"setting_image_viewer_help": "El visualitzador de detalls carrega primer la miniatura petita, després carrega la previsualització de mida mitjana (si està activada), i finalment carrega l’original (si està activat).",
|
||||
"setting_image_viewer_help": "El visualitzador de detalls carrega primer la miniatura petita, després carrega la previsualització de mida mitjana, i finalment carrega l’original (si està activat).",
|
||||
"setting_image_viewer_original_subtitle": "Activeu-ho per a carregar la imatge en resolució original (molt gran!). Desactiveu-ho per a reduir el consum de dades (tant de xarxa com de memòria cau del dispositiu).",
|
||||
"setting_image_viewer_original_title": "Carrega la imatge original",
|
||||
"setting_image_viewer_preview_subtitle": "Activeu-ho per a carregar una imatge de resolució mitjana. Desactiveu-ho per carregar directament la imatge original, o bé utilitzar només la miniatura.",
|
||||
"setting_image_viewer_preview_title": "Carrega la imatge de previsualització",
|
||||
"setting_languages_apply": "Aplica",
|
||||
"setting_languages_subtitle": "Canvia la llengua de l’aplicació",
|
||||
"setting_notifications_notify_minutes": "{count} minuts",
|
||||
@@ -2010,8 +2024,9 @@
|
||||
"share_everyone": "Comparteix tothom",
|
||||
"share_everyone_description": "Dóna accés a totes les vostres persones a {user}.",
|
||||
"share_link": "Comparteix l’enllaç",
|
||||
"share_logs": "Comparteix els registres",
|
||||
"share_original": "Utilitza l’original (gran)",
|
||||
"share_preview": "Utilitza la miniatura (petita)",
|
||||
"share_preview": "Utilitza la previsualització (petita)",
|
||||
"share_quality_body": "Mantingueu premut el botó de compartició per a triar la qualitat de la imatge abans de compartir-la.",
|
||||
"share_quality_title": "Trieu la qualitat de la compartició",
|
||||
"share_with": "Comparteix l’accés amb",
|
||||
@@ -2061,7 +2076,6 @@
|
||||
"shared_link_password_description": "Requereix una contrasenya per a accedir a aquest enllaç compartit",
|
||||
"shared_links": "Enllaços compartits",
|
||||
"shared_links_description": "Compartiu fotos i vídeos amb un enllaç",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# fotos i vídeos compartits.}}",
|
||||
"shared_with": "Compartida amb",
|
||||
"shared_with_count": "Compartit ({count})",
|
||||
"shared_with_me": "Compartit amb mi",
|
||||
@@ -2189,6 +2203,8 @@
|
||||
"theme": "Tema",
|
||||
"theme_selection": "Selecció del tema",
|
||||
"theme_selection_description": "Activa automàticament el tema fosc o clar en funció de les preferències del sistema del navegador",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Es desplaça de manera contínua en arrossegar la barra de desplaçament, en lloc de saltar d’un mes a l’altre",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Desplaçament suau per la cronologia",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Mostra l’indicador d’emmagatzematge a les tessel·les dels recursos",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Nombre de recursos per fila ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Aplica el color primari a les superfícies de fons.",
|
||||
@@ -2229,6 +2245,8 @@
|
||||
"trigger": "Disparador",
|
||||
"trigger_asset_metadata_extraction": "Extracció de metadades dels recursos",
|
||||
"trigger_asset_metadata_extraction_description": "Es dispara quan s’extreuen les metadades EXIF d’un recurs",
|
||||
"trigger_asset_ocr_extraction": "Extracció de text OCR dels recursos",
|
||||
"trigger_asset_ocr_extraction_description": "Es dispara quan s’extreu el text OCR d’un recurs",
|
||||
"trigger_asset_tagged": "Recurs etiquetat",
|
||||
"trigger_asset_tagged_description": "Es dispara quan s’afegeix una etiqueta a un recurs",
|
||||
"trigger_asset_uploaded": "Pujada de recursos",
|
||||
@@ -2304,7 +2322,7 @@
|
||||
"user": "Usuari",
|
||||
"user_has_been_deleted": "Aquest usuari s’ha eliminat.",
|
||||
"user_id": "Identificador d’usuari",
|
||||
"user_liked": "A {user} li ha agradat {type, select, photo {aquesta foto} video {aquest vídeo} asset {aquest recurs} other {això}}",
|
||||
"user_liked": "A {user} li ha agradat {type, select, image {aquesta foto} video {aquest vídeo} other {això}}",
|
||||
"user_pin_code_settings": "Codi PIN",
|
||||
"user_pin_code_settings_description": "Gestioneu el vostre codi PIN",
|
||||
"user_privacy": "Privacitat de l’usuari",
|
||||
@@ -2340,6 +2358,7 @@
|
||||
"view_group": "Mostra el grup",
|
||||
"view_in_timeline": "Mostra a la cronologia",
|
||||
"view_link": "Mostra l’enllaç",
|
||||
"view_more": "Mostra’n més",
|
||||
"view_name": "Visualització",
|
||||
"view_next_asset": "Mostra el recurs següent",
|
||||
"view_previous_asset": "Mostra el recurs anterior",
|
||||
|
||||
+28
-9
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "Příkaz {command} se nezdařil pro úlohu: {job}",
|
||||
"force_delete_user_warning": "UPOZORNĚNÍ: Tímto okamžitě odstraníte uživatele a všechny jeho položky. Tento krok nelze vrátit zpět a soubory nelze obnovit.",
|
||||
"image_format": "Formát",
|
||||
"image_format_description": "WebP vytváří menší soubory než JPEG, ale je pomalejší při kódování.",
|
||||
"image_format_description": "WebP vytváří menší soubory než JPEG, ale je pomalejší při kódování. JPEG XL je nejlepší volbou pro kompresi ve vysoké kvalitě, ale ne všechny prohlížeče a aplikace jej dokážou zobrazit.",
|
||||
"image_fullsize_description": "Obrázek v plné velikosti s odstraněnými metadaty, použito při přiblížení",
|
||||
"image_fullsize_enabled": "Povolit generování obrázků v plné velikosti",
|
||||
"image_fullsize_enabled_description": "Generovat obrázky v plné velikosti pro formáty, které nejsou vhodné pro web. Pokud je povolena možnost „Preferovat vložený náhled“, budou přímo použity vložené náhledy bez převodu. Neovlivňuje formáty vhodné pro web, jako je JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Kvalita náhledu od 1 do 100. Vyšší je lepší, ale vytváří větší soubory a může snížit responzivitu aplikace. Nastavení nízké hodnoty může ovlivnit kvalitu strojového učení.",
|
||||
"image_preview_title": "Náhledy",
|
||||
"image_progressive": "Progresivní",
|
||||
"image_progressive_description": "Kódujte JPEG obrázky progresivně pro postupné načítání zobrazení. Na WebP obrázky to nemá žádný vliv.",
|
||||
"image_progressive_description": "Kódujte JPEG obrázky progresivně pro postupné načítání zobrazení. Na ostatní formáty to nemá žádný vliv.",
|
||||
"image_quality": "Kvalita",
|
||||
"image_resolution": "Rozlišení",
|
||||
"image_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.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Časový limit požadavku",
|
||||
"oauth_timeout_description": "Časový limit pro požadavky v milisekundách",
|
||||
"ocr_job_description": "Použijte strojové učení k rozpoznávání textu v obrázcích",
|
||||
"passkey_additional_domains": "Další domény",
|
||||
"passkey_additional_domains_description": "Další důvěryhodné domény (související požadavky na origin). Tyto budou fungovat pouze v případě, že je přístupná i doména s přístupovým klíčem.",
|
||||
"passkey_domain": "Doména přístupového klíče",
|
||||
"passkey_domain_description": "Doména používaná pro přístupové klíče (ověřující strana). Nechte pole prázdné, aby se hodnota odvodila z origin hlavičky. Změna této hodnoty způsobí, že stávající přístupové klíče přestanou fungovat.",
|
||||
"passkey_enable_description": "Přihlášení pomocí přístupového klíče",
|
||||
"passkey_settings": "Přihlášení pomocí přístupového klíče",
|
||||
"passkey_settings_description": "Správa nastavení přihlášení pomocí přístupového klíče",
|
||||
"password_enable_description": "Přihlášení pomocí e-mailu a hesla",
|
||||
"password_settings": "Přihlášení heslem",
|
||||
"password_settings_description": "Správa nastavení přihlašování pomocí hesla",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Smazat pouze zálohované",
|
||||
"delete_local_dialog_ok_force": "Přesto smazat",
|
||||
"delete_others": "Smazat ostatní",
|
||||
"delete_passkey": "Odstranit přístupový klíč",
|
||||
"delete_passkey_prompt": "Opravdu chcete tento přístupový klíč smazat?",
|
||||
"delete_permanently": "Trvale smazat",
|
||||
"delete_permanently_action_prompt": "{count} trvale smazáno",
|
||||
"delete_shared_link": "Smazat sdílený odkaz",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} upravených poloh",
|
||||
"edit_location_dialog_title": "Poloha",
|
||||
"edit_name": "Upravit jméno",
|
||||
"edit_passkey": "Upravit přístupový klíč",
|
||||
"edit_people": "Upravit lidi",
|
||||
"edit_person": "Upravit osobu",
|
||||
"edit_tag": "Upravit značku",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video pořízeno} other {Obrázek požízen}} {date} v místě {city}, {country} uživateli {person1}, {person2} a {person3}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video pořízeno} other {Obrázek požízen}} {date} v místě {city}, {country} uživateli {person1}, {person2} a {additionalCount, plural, one {dalším # uživatelem} other {dalšími # uživateli}}",
|
||||
"immich_logo": "Immich Logo",
|
||||
"immich_web_interface": "Webové rozhraní Immich",
|
||||
"import_from_json": "Import z JSONu",
|
||||
"import_path": "Cesta importu",
|
||||
"in_albums": "{count, plural, one {V # albu} few {Ve # albech} other {V # albech}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Poslední",
|
||||
"last_months": "{count, plural, one {Poslední měsíc} few {Poslední # měsíce} other {Posledních # měsíců}}",
|
||||
"last_seen": "Naposledy viděno",
|
||||
"last_used": "Naposledy použito",
|
||||
"latest_version": "Nejnovější verze",
|
||||
"latitude": "Zeměpisná šířka",
|
||||
"leave": "Opustit",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Přihlášení bylo zakázáno",
|
||||
"login_password_changed_error": "Při aktualizaci vašeho hesla došlo k chybě",
|
||||
"login_password_changed_success": "Heslo bylo úspěšně aktualizováno",
|
||||
"login_with_passkey": "Přihlásit se pomocí přístupového klíče",
|
||||
"logout_all_device_confirmation": "Opravdu chcete odhlásit všechna zařízení?",
|
||||
"logout_this_device_confirmation": "Opravdu chcete odhlásit toto zařízení?",
|
||||
"logs": "Protokoly",
|
||||
@@ -1410,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Správa API klíčů",
|
||||
"manage_your_devices": "Správa přihlášených zařízení",
|
||||
"manage_your_oauth_connection": "Správa OAuth propojení",
|
||||
"manage_your_passkeys": "Správa přístupových klíčů",
|
||||
"map": "Mapa",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Žádné fotografie v této oblasti} one {# fotografie} few {# fotografie} other {# fotografií}}",
|
||||
"map_cannot_get_user_location": "Nelze zjistit polohu uživatele",
|
||||
@@ -1529,6 +1541,7 @@
|
||||
"new_album": "Nové album",
|
||||
"new_api_key": "Nový API klíč",
|
||||
"new_feature": "Nová funkce",
|
||||
"new_passkey": "Nový přístupový klíč",
|
||||
"new_password": "Nové heslo",
|
||||
"new_person": "Nová osoba",
|
||||
"new_pin_code": "Nový PIN kód",
|
||||
@@ -1641,6 +1654,8 @@
|
||||
"partner_sharing": "Sdílení mezi partnery",
|
||||
"partners": "Partneři",
|
||||
"partners_description": "Sdílejte své fotografie a videa s ostatními uživateli",
|
||||
"passkeys": "{count, plural, one {přístupový klíč} few {přístupové klíče} other {přístupových klíčů}}",
|
||||
"passkeys_not_supported": "Tento prohlížeč nepodporuje přístupové klíče",
|
||||
"password": "Heslo",
|
||||
"password_does_not_match": "Heslo se neshoduje",
|
||||
"password_required": "Vyžadováno heslo",
|
||||
@@ -1825,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, one {Odstraněn #} few {Odstraněny #} other {Odstraněno #}} z oblíbených",
|
||||
"removed_from_stack": "Položka byla odebrána ze seskupení",
|
||||
"removed_memory": "Vzpomínka odstraněna",
|
||||
"removed_passkey": "Odstraněný přístupový klíč: {name}",
|
||||
"removed_tagged_assets": "Odstraněná značka z {count, plural, one {# položky} other {# položek}}",
|
||||
"rename": "Přejmenovat",
|
||||
"repository": "Repozitář",
|
||||
@@ -1986,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Pokud je zapnuto, budete moci přejít na předchozí/další obrázek klepnutím do levé/pravé čtvrtiny obrazovky.",
|
||||
"setting_image_navigation_enable_title": "Klepnutí pro navigaci",
|
||||
"setting_image_navigation_title": "Navigace mezi obrázky",
|
||||
"setting_image_viewer_help": "V prohlížeči detailů se nejprve načte malá miniatura, poté se načte náhled střední velikosti (je-li povolen) a nakonec se načte originál (je-li povolen).",
|
||||
"setting_image_viewer_help": "V prohlížeči detailů se nejprve načte malá miniatura, poté se načte náhled střední velikosti a nakonec se načte originál (je-li povolen).",
|
||||
"setting_image_viewer_original_subtitle": "Umožňuje načíst původní obrázek v plném rozlišení (velký!). Zakažte pro snížení využití dat (v síti i v mezipaměti zařízení).",
|
||||
"setting_image_viewer_original_title": "Načíst původní obrázek",
|
||||
"setting_image_viewer_preview_subtitle": "Umožňuje načíst obrázek se středním rozlišením. Zakažte, pokud chcete přímo načíst originál nebo použít pouze miniaturu.",
|
||||
"setting_image_viewer_preview_title": "Načíst náhled obrázku",
|
||||
"setting_languages_apply": "Použít",
|
||||
"setting_languages_subtitle": "Změna jazyka aplikace",
|
||||
"setting_notifications_notify_minutes": "{count} minut",
|
||||
@@ -2010,8 +2024,9 @@
|
||||
"share_everyone": "Sdílet všechny",
|
||||
"share_everyone_description": "Poskytněte {user} přístup ke všem vašim uživatelům.",
|
||||
"share_link": "Sdílet odkaz",
|
||||
"share_logs": "Sdílet protokol",
|
||||
"share_original": "Použít originál (velký)",
|
||||
"share_preview": "Použít miniaturu (malý)",
|
||||
"share_preview": "Použít náhled (malý)",
|
||||
"share_quality_body": "Při sdílení stiskněte a podržte tlačítko sdílení pro výběr kvality obrázku.",
|
||||
"share_quality_title": "Vyberte si kvalitu sdílení",
|
||||
"share_with": "Sdílet přístup s",
|
||||
@@ -2061,7 +2076,6 @@
|
||||
"shared_link_password_description": "Vyžadovat heslo pro přístup k tomuto sdílenému odkazu",
|
||||
"shared_links": "Sdílené odkazy",
|
||||
"shared_links_description": "Sdílet fotky a videa pomocí odkazu",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, one {# sdílená fotografie a video.} few {# sdílené fotografie a videa.} other {# sdílených fotografií a videí.}}",
|
||||
"shared_with": "Sdíleno s",
|
||||
"shared_with_count": "Sdíleno ({count})",
|
||||
"shared_with_me": "Sdílené se mnou",
|
||||
@@ -2189,6 +2203,8 @@
|
||||
"theme": "Motiv",
|
||||
"theme_selection": "Výběr motivu",
|
||||
"theme_selection_description": "Automatické nastavení světlého nebo tmavého motivu podle systémových preferencí prohlížeče",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Při tažení posuvníku posouvat plynule, místo aby se posun zastavoval na jednotlivých měsících",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Plynulé posouvání časové osy",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Zobrazit indikátor úložiště na dlaždicích položek",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Počet položek na řádek ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Použít hlavní barvu na povrchy pozadí.",
|
||||
@@ -2229,6 +2245,8 @@
|
||||
"trigger": "Spouštěč",
|
||||
"trigger_asset_metadata_extraction": "Extrakce metadat položek",
|
||||
"trigger_asset_metadata_extraction_description": "Spustí se při extrakci EXIF metadat z mediálního souboru",
|
||||
"trigger_asset_ocr_extraction": "Extrakce dat pomocí OCR",
|
||||
"trigger_asset_ocr_extraction_description": "Spustí se, když je text OCR položky extrahováný",
|
||||
"trigger_asset_tagged": "Označená položka",
|
||||
"trigger_asset_tagged_description": "Spustí se, když je k položce přidána značka",
|
||||
"trigger_asset_uploaded": "Nahrání položky",
|
||||
@@ -2304,7 +2322,7 @@
|
||||
"user": "Uživatel",
|
||||
"user_has_been_deleted": "Tento uživatel byl smazán.",
|
||||
"user_id": "ID uživatele",
|
||||
"user_liked": "Uživateli {user} se {type, select, photo {líbila tato fotka} video {líbilo toto video} asset {líbila tato položka} other {to líbilo}}",
|
||||
"user_liked": "Uživateli {user} se {type, select, image {líbil tento obrázek} video {líbilo toto video} other {to líbilo}}",
|
||||
"user_pin_code_settings": "PIN kód",
|
||||
"user_pin_code_settings_description": "Správa vašeho PIN kódu",
|
||||
"user_privacy": "Ochrana soukromí uživatelů",
|
||||
@@ -2340,6 +2358,7 @@
|
||||
"view_group": "Zobrazit skupinu",
|
||||
"view_in_timeline": "Zobrazit na časové ose",
|
||||
"view_link": "Zobrazit odkaz",
|
||||
"view_more": "Zobrazit více",
|
||||
"view_name": "Zobrazit",
|
||||
"view_next_asset": "Zobrazit další položku",
|
||||
"view_previous_asset": "Zobrazit předchozí položku",
|
||||
|
||||
+17
-11
@@ -191,7 +191,7 @@
|
||||
"machine_learning_ocr_min_detection_score_description": "Minimums konfidensscore for tekst, der skal detekteres, fra 0-1. Lavere værdier vil detektere mere tekst, men kan resultere i falsk positiver.",
|
||||
"machine_learning_ocr_min_recognition_score": "Minimum genkendelsesscore",
|
||||
"machine_learning_ocr_min_score_recognition_description": "Minimum konfidensscore for genkendelse af registreret tekst er fra 0-1. Lavere værdier vil genkende mere tekst, men kan resultere i falsk positiver.",
|
||||
"machine_learning_ocr_model": "OCR model",
|
||||
"machine_learning_ocr_model": "OCR-model",
|
||||
"machine_learning_ocr_model_description": "Server modeller er mere præcise end mobil modeller, men tager længer tid at processere og bruger mere hukommelse.",
|
||||
"machine_learning_settings": "Maskinlæringsindstillinger",
|
||||
"machine_learning_settings_description": "Administrer maskinlæringsfunktioner og indstillinger",
|
||||
@@ -443,7 +443,7 @@
|
||||
"transcoding_realtime_enabled_description": "Hvis deaktiveret, kan serveren ikke starte nye realtids transkodningssessioner.",
|
||||
"transcoding_realtime_resolutions": "Opløsninger",
|
||||
"transcoding_realtime_resolutions_description": "Opløsninger tilgængelig for realtidstranskodning. Højere opløsninger kan forårsage afspilningsproblemer, hvis serveren ikke kan transkode dem hurtigt nok.",
|
||||
"transcoding_realtime_video_codecs": "Video codecs",
|
||||
"transcoding_realtime_video_codecs": "Video-codecs",
|
||||
"transcoding_realtime_video_codecs_description": "De video codecs, tilgængelig for realtidstranskodning. Klienter vælger den bedste mulighed, de understøtter under afspilning. AV1 er mere effektiv end HEVC, som er mere effektiv end H.264. Når du bruger hardwareacceleration, skal du kun vælge de codecs, som acceleratoren kan enkode. Når du bruger softwaretranskodning, skal du bemærke, at H.264 er hurtigere end AV1, som er hurtigere end HEVC.",
|
||||
"transcoding_reference_frames": "Referencerammer",
|
||||
"transcoding_reference_frames_description": "Antallet af frames, der skal refereres til, når en given frame komprimeres. Højere værdier forbedrer kompressionseffektiviteten, men gør indkodning langsommere. 0 sætter denne værdi automatisk.",
|
||||
@@ -669,8 +669,9 @@
|
||||
"biometric_no_options": "Ingen biometrisk adgangskontrol tilgængelig",
|
||||
"biometric_not_available": "Biometrisk adgangskontrol er ikke tilgængelig på denne enhed",
|
||||
"birthdate_set_description": "Fødselsdato bruges til at beregne denne persons alder på det tidspunkt, et billede er taget.",
|
||||
"birthday_memory_age": "{age}. fødselsdag",
|
||||
"birthday_memory_age": "{age, selectordinal, other {#}}-års fødselsdag",
|
||||
"birthday_memory_title": "{name}'s fødselsdag",
|
||||
"birthday_memory_title_with_age": "{name}s fødselsdag · {age, plural, one {# år} other {# år}}",
|
||||
"blurred_background": "Sløret baggrund",
|
||||
"browse_templates": "Gennemse skabeloner",
|
||||
"bugs_and_feature_requests": "Fejl & forbedringsønsker",
|
||||
@@ -914,7 +915,7 @@
|
||||
"downloading": "Downloader",
|
||||
"downloading_archive_filename_size": "Downloader arkiv {filename} (cirka {size})",
|
||||
"downloading_asset_filename": "Downloader mediefil {filename}",
|
||||
"downloading_filename": "Downloading {filename}",
|
||||
"downloading_filename": "Downloader {filename}",
|
||||
"downloading_from_icloud": "Downloading fra iCloud",
|
||||
"downloading_media": "Download medier",
|
||||
"drag_to_reorder": "Træk for at ændre rækkefølgen",
|
||||
@@ -1116,7 +1117,7 @@
|
||||
},
|
||||
"errors_text": "Fejl",
|
||||
"exclusion_pattern": "Udelukkelsesmønster",
|
||||
"exif": "Exif",
|
||||
"exif": "EXIF",
|
||||
"exif_bottom_sheet_description": "Tilføj beskrivelse...",
|
||||
"exif_bottom_sheet_description_error": "Fejl ved opdatering af beskrivelsen",
|
||||
"exif_bottom_sheet_no_description": "Ingen beskrivelse",
|
||||
@@ -1238,7 +1239,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Billede}} taget i {city}, {country} med {person1}, {person2}, og {person3} den {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Billede}} taget i {city}, {country} med {person1}, {person2}, og {additionalCount, number} andre den {date}",
|
||||
"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}}",
|
||||
@@ -1400,6 +1400,7 @@
|
||||
"manage_media_access_title": "Mediestyringsadgang",
|
||||
"manage_oauth_account": "Administrer OAuth-konto",
|
||||
"manage_people": "Administrér personer",
|
||||
"manage_people_access_description_v2": "Giv andre brugere adgang til {count, plural, one {denne person} other {dine personer}}, så de kan se eller administrere {count, plural, one {personen} other {dem}} på dine vegne. Denne handling deler ikke nogen elementer.",
|
||||
"manage_person_access": "Administrér adgang",
|
||||
"manage_sharing_with_other_users": "Administrer deling med andre brugere",
|
||||
"manage_sharing_with_partners": "Administrér deling med partnere",
|
||||
@@ -1655,6 +1656,7 @@
|
||||
"paused": "Sat på pause",
|
||||
"pending": "Afventer",
|
||||
"people": "Personer",
|
||||
"people_cluster_group": "Persongruppe",
|
||||
"people_count": "{count, plural, one {# person} other {# personer}}",
|
||||
"people_edits_count": "Redigeret {count, plural, one {# person} other {# people}}",
|
||||
"people_feature_description": "Gennemse billeder og videoer grupperet efter personer",
|
||||
@@ -1674,9 +1676,12 @@
|
||||
"person_age_years": "{years, plural, other {# år}} gammel",
|
||||
"person_birthdate": "Født den {date}",
|
||||
"person_edit_only_change_for_me": "Ændr kun for mig",
|
||||
"person_edit_only_change_for_me_description": "Markér for kun at anvende ændringerne på din egen bruger",
|
||||
"person_hidden": "{name}{hidden, select, true { (skjult)} other {}}",
|
||||
"person_recognized": "Person genkendt",
|
||||
"person_share_no_users": "Alle brugere i din persongruppe har allerede adgang til denne person.",
|
||||
"person_update_strategy": "Udfør ændringer på",
|
||||
"person_update_strategy_description": "Vælg, hvilke personer der skal opdateres, når du ændrer navn eller fødselsdato",
|
||||
"person_update_strategy_everyone": "Alle med delt adgang",
|
||||
"person_update_strategy_self": "Kun mig",
|
||||
"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.",
|
||||
@@ -1760,7 +1765,8 @@
|
||||
"purchase_settings_server_activated": "Serverens produktnøgle administreres af administratoren",
|
||||
"query_asset_id": "Forespørgsels Asset ID",
|
||||
"queue_status": "Kø {count}/{total}",
|
||||
"rate_asset": "Vurder filer",
|
||||
"rate_asset": "Bedøm mediefil",
|
||||
"rate_asset_description": "Brug tasterne 1 til 5 til hurtigt at bedømme en mediefil, og 0 til at fjerne bedømmelsen",
|
||||
"rating": "Stjernebedømmelse",
|
||||
"rating_clear": "Nulstil vurdering",
|
||||
"rating_count": "{count, plural, =0 {Unrated} one {# stjerne} other {# stjerner}}",
|
||||
@@ -1979,11 +1985,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Hvis aktiveret, kan du navigere til det forrige/næste billede ved at trykke på den yderste venstre/højre fjerdedel af skærmen.",
|
||||
"setting_image_navigation_enable_title": "Tryk for at navigere",
|
||||
"setting_image_navigation_title": "Billednavigation",
|
||||
"setting_image_viewer_help": "Detaljeret visning indlæser miniaturebilleder først. Herefter indlæses mediumstørrelse forhåndsvisning af billedet (hvis dette er slået til), for til sidst at vise originalen (hvis dette er slået til).",
|
||||
"setting_image_viewer_help": "Detaljevisningen indlæser først det lille miniaturebillede, derefter en mellemstor forhåndsvisning og til sidst originalfilen (hvis funktionen er aktiveret).",
|
||||
"setting_image_viewer_original_subtitle": "Slå indlæsning af originalbillede i fuld størrelse til (stort!). Deaktiver for at reducere dataforbruget (både på netværket og for enhedscache).",
|
||||
"setting_image_viewer_original_title": "Indlæs originalbillede",
|
||||
"setting_image_viewer_preview_subtitle": "Slå indlæsning af et mediumstørrelse billede til. Slå fra for enten direkte at indlæse originalen eller kun at bruge miniaturebilledet.",
|
||||
"setting_image_viewer_preview_title": "Indlæs forhåndsvisning af billedet",
|
||||
"setting_languages_apply": "Anvend",
|
||||
"setting_languages_subtitle": "Ændr app-sprog",
|
||||
"setting_notifications_notify_minutes": "{count} minutter",
|
||||
@@ -1998,6 +2002,7 @@
|
||||
"settings_saved": "Indstillinger er gemt",
|
||||
"setup_pin_code": "Indstil en PIN kode",
|
||||
"share": "Del",
|
||||
"share_back": "Del tilbage",
|
||||
"share_dialog_preparing": "Forbereder...",
|
||||
"share_everyone": "Del alle",
|
||||
"share_everyone_description": "Giv {user} adgang til alle dine personer.",
|
||||
@@ -2053,8 +2058,8 @@
|
||||
"shared_link_password_description": "Kodeord krævet for at få adgang til dette delte link",
|
||||
"shared_links": "Delte links",
|
||||
"shared_links_description": "Del billeder og videoer med et link",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# delte billeder & videoer.}}",
|
||||
"shared_with": "Delt med",
|
||||
"shared_with_count": "Delt ({count})",
|
||||
"shared_with_me": "Delt med mig",
|
||||
"shared_with_partner": "Delt med {partner}",
|
||||
"sharing": "Delte",
|
||||
@@ -2138,6 +2143,7 @@
|
||||
"stop_motion_photo": "Stopmotionbillede",
|
||||
"stop_photo_sharing": "Stop med at dele dine billeder?",
|
||||
"stop_photo_sharing_description": "{partner} vil ikke længere kunne tilgå dine billeder.",
|
||||
"stop_sharing_person_with_user": "Ophæv deling af denne person med denne bruger",
|
||||
"stop_sharing_photos_with_user": "Afslut deling af dine fotos med denne bruger",
|
||||
"storage": "Lagringsplads",
|
||||
"storage_label": "Lagringsmærkat",
|
||||
|
||||
+29
-10
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "Befehl {command} ist für Aufgabe {job} fehlgeschlagen",
|
||||
"force_delete_user_warning": "WARNUNG: Diese Aktion löscht sofort den Benutzer und all seine Dateien. Dies kann nicht rückgängig gemacht werden und die Dateien können nicht wiederhergestellt werden.",
|
||||
"image_format": "Format",
|
||||
"image_format_description": "WebP erzeugt kleinere Dateien als JPEG, ist aber etwas langsamer in der Erstellung.",
|
||||
"image_format_description": "WebP erzeugt kleinere Dateien als JPEG, die Kodierung dauert jedoch länger. JPEG XL ist die beste Option für eine hochwertige Komprimierung, wird jedoch nicht von allen Browsern und Apps unterstützt.",
|
||||
"image_fullsize_description": "Hochauflösendes Bild mit entfernten Metadaten, das beim Zoomen verwendet wird",
|
||||
"image_fullsize_enabled": "Hochauflösende Vorschaubilder aktivieren",
|
||||
"image_fullsize_enabled_description": "Generiere Hochauflösende Vorschaubilder in Originalauflösung für nicht web-kompatibel Formate. Wenn \"Eingebettete Vorschau bevorzugen\" aktiviert ist, werden eingebettete Vorschaubilder direkt verwendet. Hat keinen Einfluss auf web-kompatible Formate wie JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Vorschauqualität von 1-100. Ein höherer Wert ist besser, erzeugt dadurch aber größere Dateien und kann die Reaktionsfähigkeit der App beeinträchtigen. Die Einstellung eines niedrigen Wertes kann dafür aber die Qualität des maschinellen Lernens beeinträchtigen.",
|
||||
"image_preview_title": "Vorschaueinstellungen",
|
||||
"image_progressive": "Fortschrittlich",
|
||||
"image_progressive_description": "JPEG-Bilder werden schrittweise kodiert, um ein stufenweises Laden zu ermöglichen. Dies hat keine Auswirkungen auf WebP-Bilder.",
|
||||
"image_progressive_description": "JPEG-Bilder werden schrittweise kodiert, um ein stufenweises Laden zu ermöglichen. Dies hat keine Auswirkungen auf andere Dateiformate.",
|
||||
"image_quality": "Qualität",
|
||||
"image_resolution": "Auflösung",
|
||||
"image_resolution_description": "Höhere Auflösungen können mehr Details erhalten, benötigen aber mehr Zeit für die Kodierung, haben größere Dateigrößen und können die Reaktionsfähigkeit von Anwendungen beeinträchtigen.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Zeitüberschreitung bei Anfrage",
|
||||
"oauth_timeout_description": "Zeitüberschreitung für Anfragen in Millisekunden",
|
||||
"ocr_job_description": "Verwende Machine Learning zur Erkennung von Text in Bildern",
|
||||
"passkey_additional_domains": "Zusätzliche Domains",
|
||||
"passkey_additional_domains_description": "Zusätzliche, vertrauenswürdige Domänen(Related Origin Requests). Diese funktionieren nur, wenn auch die Passkey-Domäne erreichbar ist.",
|
||||
"passkey_domain": "Passkex Domäne",
|
||||
"passkey_domain_description": "Für Passkeys verwendete Domäne(Relying Party). Lassen Sie dieses Feld leer, damit der Wert aus dem Original-Header abgeleitet wird. Eine Änderung dieses Werts führt dazu, dass vorhandene Passkeys nicht mehr funktionieren.",
|
||||
"passkey_enable_description": "Mit einem Passkey anmelden",
|
||||
"passkey_settings": "Anmeldung per Passkey",
|
||||
"passkey_settings_description": "Einstellungen für die Anmeldung per Passkey verwalten",
|
||||
"password_enable_description": "Mit E-Mail und Passwort anmelden",
|
||||
"password_settings": "Passwort-Anmeldung",
|
||||
"password_settings_description": "Passwort-Anmeldeeinstellungen verwalten",
|
||||
@@ -670,8 +677,8 @@
|
||||
"biometric_not_available": "Die biometrische Authentifizierung ist auf diesem Gerät nicht verfügbar",
|
||||
"birthdate_set_description": "Das Geburtsdatum wird verwendet, um das Alter dieser Person zum Zeitpunkt eines Fotos zu berechnen.",
|
||||
"birthday_memory_age": "{age, selectordinal, one {#st} two {#nd} few {#rd} other {#th}} Geburtstag",
|
||||
"birthday_memory_title": "{name}'s Geburtstag",
|
||||
"birthday_memory_title_with_age": "{name}'s Geburtstag· {age, plural, one {# Jahr alt} other {# Jahre alt}}",
|
||||
"birthday_memory_title": "{name}s Geburtstag",
|
||||
"birthday_memory_title_with_age": "{name}s Geburtstag· {age, plural, one {# Jahr alt} other {# Jahre alt}}",
|
||||
"blurred_background": "Unscharfer Hintergrund",
|
||||
"browse_templates": "Vorlagen durchsuchen",
|
||||
"bugs_and_feature_requests": "Fehler & Verbesserungsvorschläge",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Nur gesicherte Inhalte löschen",
|
||||
"delete_local_dialog_ok_force": "Trotzdem löschen",
|
||||
"delete_others": "Andere löschen",
|
||||
"delete_passkey": "Passkey löschen",
|
||||
"delete_passkey_prompt": "Sind Sie sicher, dass Sie diesen Passkey löschen wollen?",
|
||||
"delete_permanently": "Endgültig löschen",
|
||||
"delete_permanently_action_prompt": "{count} endgültig gelöscht",
|
||||
"delete_shared_link": "geteilten Link löschen",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} Geolokationen angepasst",
|
||||
"edit_location_dialog_title": "Standort bearbeiten",
|
||||
"edit_name": "Name bearbeiten",
|
||||
"edit_passkey": "Passkey bearbeiten",
|
||||
"edit_people": "Personen bearbeiten",
|
||||
"edit_person": "Person bearbeiten",
|
||||
"edit_tag": "Tag bearbeiten",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Bild}} aufgenommen in {city}, {country} mit {person1}, {person2}, und {person3} am {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Bild}} aufgenommen in {city}, {country} mit {person1}, {person2}, und {additionalCount, number} anderen am {date}",
|
||||
"immich_logo": "Immich-Logo",
|
||||
"immich_web_interface": "Immich-Web-Oberfläche",
|
||||
"import_from_json": "Aus JSON importieren",
|
||||
"import_path": "Importpfad",
|
||||
"in_albums": "In {count, plural, one {# Album} other {# Alben}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Letzte",
|
||||
"last_months": "{count, plural, one {Letzter Monat} other {Letzte # Monate}}",
|
||||
"last_seen": "Zuletzt gesehen",
|
||||
"last_used": "Zuletzt verwendet",
|
||||
"latest_version": "Neuste Version",
|
||||
"latitude": "Breitengrad",
|
||||
"leave": "Verlassen",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Die Anmeldung wurde deaktiviert",
|
||||
"login_password_changed_error": "Fehler beim Ändern deines Passwortes",
|
||||
"login_password_changed_success": "Passwort erfolgreich geändert",
|
||||
"login_with_passkey": "Anmeldung mit Passkey",
|
||||
"logout_all_device_confirmation": "Bist du sicher, dass du alle Geräte abmelden willst?",
|
||||
"logout_this_device_confirmation": "Bist du sicher, dass du dieses Gerät abmelden willst?",
|
||||
"logs": "Protokolle",
|
||||
@@ -1410,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Deine API-Schlüssel verwalten",
|
||||
"manage_your_devices": "Deine eingeloggten Geräte verwalten",
|
||||
"manage_your_oauth_connection": "Deine OAuth-Verknüpfung verwalten",
|
||||
"manage_your_passkeys": "Verwalten Sie Ihre Passkeys",
|
||||
"map": "Karte",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Keine Fotos in diesem Bereich} one {# Foto} other {# Fotos}}",
|
||||
"map_cannot_get_user_location": "Standort konnte nicht ermittelt werden",
|
||||
@@ -1529,6 +1541,7 @@
|
||||
"new_album": "Neues Album",
|
||||
"new_api_key": "Neuer API-Schlüssel",
|
||||
"new_feature": "Neue Funktion",
|
||||
"new_passkey": "Neuer Passkey",
|
||||
"new_password": "Neues Passwort",
|
||||
"new_person": "Neue Person",
|
||||
"new_pin_code": "Neuer PIN-Code",
|
||||
@@ -1641,6 +1654,8 @@
|
||||
"partner_sharing": "Partner-Sharing",
|
||||
"partners": "Partner",
|
||||
"partners_description": "Teile deine Fotos und Videos mit anderen Benutzern",
|
||||
"passkeys": "{count, plural, one {Passkey} other {Passkeys}}",
|
||||
"passkeys_not_supported": "Passkeys werden von diesem Browser nicht unterstützt",
|
||||
"password": "Passwort",
|
||||
"password_does_not_match": "Passwort stimmt nicht überein",
|
||||
"password_required": "Passwort benötigt",
|
||||
@@ -1825,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {#}} aus den Favoriten entfernt",
|
||||
"removed_from_stack": "Datei aus Stapel entfernen",
|
||||
"removed_memory": "Erinnerung entfernt",
|
||||
"removed_passkey": "Passkey entfernt: {name}",
|
||||
"removed_tagged_assets": "Tag von {count, plural, one {# Datei} other {# Dateien}} entfernt",
|
||||
"rename": "Umbenennen",
|
||||
"repository": "Repository",
|
||||
@@ -1986,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Aktivieren, um durch Tippen auf den linksäußeren/rechtsäußeren Bildschirmrand zum vorherigen/nächsten Bild zu navigieren.",
|
||||
"setting_image_navigation_enable_title": "Tippen zum Navigieren",
|
||||
"setting_image_navigation_title": "Bild Navigation",
|
||||
"setting_image_viewer_help": "Der Detailbildbetrachter lädt zuerst ein (kleines) Vorschaubild, dann ein Vorschaubild in mittlerer Größe (falls aktiviert) und schließlich das Original (falls aktiviert).",
|
||||
"setting_image_viewer_help": "Der Detailbildbetrachter lädt zuerst ein Vorschaubild, dann ein Vorschaubild mittlerer Größe und schließlich das Original (falls aktiviert).",
|
||||
"setting_image_viewer_original_subtitle": "Aktivieren, um das Originalbild in voller Auflösung (groß!) zu laden. Deaktivieren, um den Datenverbrauch zu reduzieren (sowohl im Netzwerk als auch im Gerätespeicher).",
|
||||
"setting_image_viewer_original_title": "Original laden",
|
||||
"setting_image_viewer_preview_subtitle": "Aktivieren, um ein Bild mit mittlerer Auflösung zu laden. Deaktivieren, um entweder das Original direkt zu laden oder nur das Vorschaubild zu verwenden.",
|
||||
"setting_image_viewer_preview_title": "Vorschaubild laden",
|
||||
"setting_languages_apply": "Anwenden",
|
||||
"setting_languages_subtitle": "App-Sprache ändern",
|
||||
"setting_notifications_notify_minutes": "{count} Minuten",
|
||||
@@ -2010,8 +2024,9 @@
|
||||
"share_everyone": "Teilt es mit allen",
|
||||
"share_everyone_description": "Gewähren Sie {user} Zugriff auf alle Ihre Personen.",
|
||||
"share_link": "Link teilen",
|
||||
"share_logs": "Logbücher teilen",
|
||||
"share_original": "Original verwenden (groß)",
|
||||
"share_preview": "Thumbnail verwenden (klein)",
|
||||
"share_preview": "Vorschau anzeigen (klein)",
|
||||
"share_quality_body": "Halte den Teilen Button gedrückt um die Bildqualität vor dem Teilen auszuwählen.",
|
||||
"share_quality_title": "Wähle deine Qualität zum Teilen aus",
|
||||
"share_with": "Zugriff freigeben für",
|
||||
@@ -2061,7 +2076,6 @@
|
||||
"shared_link_password_description": "Für den Zugriff auf diesen freigegebenen Link ist ein Passwort erforderlich",
|
||||
"shared_links": "Geteilte Links",
|
||||
"shared_links_description": "Teile Fotos und Videos mit einem Link",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, one {# geteiltes Foto oder Video.} other {# geteilte Fotos & Videos.}}",
|
||||
"shared_with": "Geteilt mit",
|
||||
"shared_with_count": "Geteilt ({count})",
|
||||
"shared_with_me": "Mit mir geteilt",
|
||||
@@ -2189,6 +2203,8 @@
|
||||
"theme": "Theme",
|
||||
"theme_selection": "Themenauswahl",
|
||||
"theme_selection_description": "Automatische Einstellung des Themes auf Hell oder Dunkel, je nach Systemeinstellung des Browsers",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Beim Ziehen des Scrollbalkens kontinuierlich scrollen, ohne an den Monaten einzurasten",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Gleichmäßiges Verschieben auf der Zeitleiste",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Fortschrittsbalken der Sicherung auf dem Vorschaubild",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Anzahl der Elemente pro Reihe ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Primärfarbe auf App-Hintergrund anwenden.",
|
||||
@@ -2229,6 +2245,8 @@
|
||||
"trigger": "Auslöser",
|
||||
"trigger_asset_metadata_extraction": "Extraktion von Datei-Metadaten",
|
||||
"trigger_asset_metadata_extraction_description": "Wird ausgelöst, wenn die EXIF-Daten einer Datei extrahiert werden",
|
||||
"trigger_asset_ocr_extraction": "Auslesen von OCR-Text aus Dateien",
|
||||
"trigger_asset_ocr_extraction_description": "Wird ausgelöst, wenn der OCR-Text einer Datei extrahiert wird",
|
||||
"trigger_asset_tagged": "Datei getaggt",
|
||||
"trigger_asset_tagged_description": "Wird ausgelöst, wenn einer Datei ein Tag zugewiesen wird",
|
||||
"trigger_asset_uploaded": "Datei hochladen",
|
||||
@@ -2340,6 +2358,7 @@
|
||||
"view_group": "Gruppe ansehen",
|
||||
"view_in_timeline": "In Zeitleiste anzeigen",
|
||||
"view_link": "Link anzeigen",
|
||||
"view_more": "Mehr anzeigen",
|
||||
"view_name": "Ansicht",
|
||||
"view_next_asset": "Nächste Datei anzeigen",
|
||||
"view_previous_asset": "Vorherige Datei anzeigen",
|
||||
|
||||
+3
-2
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Vorschauqualität von 1-100. Ein höherer Wert ist besser, erzeugt dadurch aber grössere Dateien und kann die Reaktionsfähigkeit der App beeinträchtigen. Ein niedriger Wert kann dafür aber die Qualität des maschinellen Lernens beeinträchtigen.",
|
||||
"image_preview_title": "Vorschaueinstellungen",
|
||||
"image_progressive": "Fortlaufend",
|
||||
"image_progressive_description": "JPEG-Bilder schrittweise kodieren, um ein stufenweises Laden zu ermöglichen. Dies hat keine Auswirkungen auf WebP-Bilder.",
|
||||
"image_progressive_description": "JPEG-Bilder schrittweise kodieren, um ein stufenweises Laden zu ermöglichen. Dies hat keine Auswirkungen auf andere Dateiformate.",
|
||||
"image_quality": "Qualität",
|
||||
"image_resolution": "Uflösig",
|
||||
"image_resolution_description": "Höhere Auflösungen können mehr Details erhalten, benötigen aber mehr Zeit für die Kodierung, haben grössere Dateigrössen und können die Reaktionsfähigkeit der App beeinträchtigen.",
|
||||
@@ -248,7 +248,8 @@
|
||||
"map_settings_description": "Karten- und GPS-Einstellungen verwalten",
|
||||
"map_style_description": "URL zu einem style.json Karten-Theme",
|
||||
"memory_cleanup_job": "Erinnerungen aufräumen",
|
||||
"memory_generate_job": "Erinnerungen Generierung"
|
||||
"memory_generate_job": "Erinnerungen Generierung",
|
||||
"metadata_extraction_job": "Metadaten extrahieren"
|
||||
},
|
||||
"video_quality": "Videoqualität",
|
||||
"videos": "Videos",
|
||||
|
||||
+27
-4
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"about": "Σχετικά",
|
||||
"accept": "Αποδοχή",
|
||||
"account": "Λογαριασμός",
|
||||
"account_settings": "Ρυθμίσεις Λογαριασμού",
|
||||
"acknowledge": "Έλαβα γνώση",
|
||||
@@ -29,11 +30,13 @@
|
||||
"add_to_album_bottom_sheet_added": "Προστέθηκε στο {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Ήδη στο {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Ορισμένα τοπικά στοιχεία δεν μπόρεσαν να προστεθούν στο άλμπουμ",
|
||||
"add_to_album_item_count": "Προσθήκη {αριθμός, πληθυντικός, ένα {#αντικείμενο} άλλο {#αντικείμενα}} στο άλμπουμ",
|
||||
"add_to_albums": "Προσθήκη στα άλμπουμ",
|
||||
"add_to_albums_count": "Προσθήκη στα άλμπουμ ({count})",
|
||||
"add_to_bottom_bar": "Προσθήκη σε",
|
||||
"add_upload_to_stack": "Προσθήκη αρχείου στην ουρά",
|
||||
"add_url": "Προσθήκη Συνδέσμου",
|
||||
"add_user": "Προσθήκη χρήστη",
|
||||
"added_to_archive": "Προστέθηκε στο αρχείο",
|
||||
"added_to_favorites": "Προστέθηκε στα αγαπημένα",
|
||||
"added_to_favorites_count": "Προστέθηκαν {count, number} στα αγαπημένα",
|
||||
@@ -290,6 +293,8 @@
|
||||
"notification_enable_email_notifications": "Ενεργοποίηση ειδοποιήσεων μέσω email",
|
||||
"notification_settings": "Ρυθμίσεις ειδοποιήσεων",
|
||||
"notification_settings_description": "Διαχείρηση ρυθμίσεων ειδοποιήσεων, συμπεριλαμβανομένου του email",
|
||||
"oauth_account_management_url": "URL Διαχείρισης Λογαριασμού",
|
||||
"oauth_account_management_url_description": "Τοποθεσία στον πάροχο εξωτερικής ταυτοποίησης όπου ο χρήστης μπορεί να διαχειριστεί τις ρυθμίσεις ή το προφίλ του.",
|
||||
"oauth_allow_insecure_requests": "Να επιτρέπονται μη ασφαλή αιτήματα",
|
||||
"oauth_allow_insecure_requests_description": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό απενεργοποιεί την επαλήθευση πιστοποιητικών TLS για αιτήματα OAuth και μπορεί να σας εκθέσει σε επιθέσεις MITM.",
|
||||
"oauth_auto_launch": "Αυτόματη εκκίνηση",
|
||||
@@ -318,6 +323,13 @@
|
||||
"oauth_timeout": "Χρονικό όριο Αιτήματος",
|
||||
"oauth_timeout_description": "Χρονικό όριο Αιτήματος σε milliseconds",
|
||||
"ocr_job_description": "Χρήση μηχανικής μάθησης για αναγνώριση κειμένου σε εικόνες",
|
||||
"passkey_additional_domains": "Επιπλέον τομείς",
|
||||
"passkey_additional_domains_description": "Επιπλέον, έμπιστοι τομείς (αιτήματα από σχετική προέλευση). Αυτοί θα λειτουργήσουν μόνο εάν είναι προσβάσιμος και ο τομέας του κλειδιού πρόσβασης (passkey).",
|
||||
"passkey_domain": "Τομέας κλειδιού πρόσβασης (Passkey)",
|
||||
"passkey_domain_description": "Τομέας που χρησιμοποιείται για τα κλειδιά πρόσβασης (passkeys) (εμπιστευόμενο μέρος). Αφήστε το κενό για να προσδιοριστεί αυτόματα από την κεφαλίδα προέλευσης. Η αλλαγή αυτής της τιμής θα έχει ως αποτέλεσμα τα υπάρχοντα κλειδιά πρόσβασης να πάψουν να λειτουργούν.",
|
||||
"passkey_enable_description": "Σύνδεση με κλειδί πρόσβασης (passkey)",
|
||||
"passkey_settings": "Είσοδος με κλειδί πρόσβασης",
|
||||
"passkey_settings_description": "Διαχείριση ρυθμίσεων σύνδεσης με κλειδί πρόσβασης",
|
||||
"password_enable_description": "Σύνδεση με ηλεκτρονικό ταχυδρομείο",
|
||||
"password_settings": "Σύνδεση με κωδικό",
|
||||
"password_settings_description": "Διαχείριση ρυθμίσεων σύνδεσης μέσω κωδικού πρόσβασης",
|
||||
@@ -363,10 +375,17 @@
|
||||
"storage_template_migration_info": "Το πρότυπο αποθήκευσης θα μετατρέψει όλες τις επεκτάσεις σε πεζά γράμματα. Οι αλλαγές στο πρότυπο θα ισχύουν μόνο για νέα περιουσιακά στοιχεία. Για να εφαρμόσετε αναδρομικά το πρότυπο σε περιουσιακά στοιχεία που έχουν μεταφορτωθεί προηγουμένως, εκτελέστε το <link>{job}</link>.",
|
||||
"storage_template_migration_job": "Εργασία Μεταφοράς Προτύπων Αποθήκευσης",
|
||||
"storage_template_more_details": "Για περισσότερες λεπτομέρειες σχετικά με αυτήν τη δυνατότητα, ανατρέξτε στο <template-link>Πρότυπο Αποθήκευσης</template-link> και στις <implications-link>συνέπειές</implications-link> του",
|
||||
"storage_template_onboarding_description_v3": "Τα πρότυπα αποθήκευσης σας επιτρέπουν να ορίσετε έναν προσαρμοσμένο φάκελο στον δίσκο για τα αρχεία που ανεβάζετε. Αυτό μπορεί πάντα να αλλαχτεί ξανά αργότερα.",
|
||||
"storage_template_option_custom": "Προσαρμοσμένος",
|
||||
"storage_template_option_custom_description": "Δημιουργήστε την δική σας δομή φακέλων με τις πρότυπες μεταβλητές",
|
||||
"storage_template_option_date_description": "Ταξινομήστε τα αρχεία μέσα σε φακέλους ανά χρόνο, μήνα και ημέρα",
|
||||
"storage_template_option_none": "Κανένα πρότυπο",
|
||||
"storage_template_option_none_description": "Διατήρηση της δομής φακέλων όπως την χρησιμοποιεί το Immich εξ'ορισμού",
|
||||
"storage_template_path_length": "Όριο μήκους διαδρομής: <b>{length, number}</b>/{limit, number}, κατά προσέγγιση",
|
||||
"storage_template_settings": "Πρότυπο αποθήκευσης",
|
||||
"storage_template_settings_description": "Διαχείριση της δομής φακέλου και του ονόματος, του ανεβασμένου αρχείου",
|
||||
"storage_template_user_label": "<code>{label}</code> είναι η Ετικέτα Αποθήκευσης του χρήστη",
|
||||
"storage_template_variables": "Πρότυπες μεταβλητές",
|
||||
"system_settings": "Ρυθμίσεις Συστήματος",
|
||||
"tag_cleanup_job": "Καθαρισμός ετικετών",
|
||||
"template_email_available_tags": "Μπορείτε να χρησιμοποιήσετε τις εξής μεταβλητές στο πρότυπό σας: {tags}",
|
||||
@@ -489,6 +508,7 @@
|
||||
"admin_password": "Κωδικός πρόσβασης Διαχειριστή",
|
||||
"administration": "Διαχείριση",
|
||||
"advanced": "Για προχωρημένους",
|
||||
"advanced_filters": "Προηγμένα φίλτρα",
|
||||
"advanced_settings_clear_image_cache": "Καθαρισμός προσωρινής μνήμης εικόνων",
|
||||
"advanced_settings_clear_image_cache_error": "Αποτυχία καθαρισμού προσωρινής μνήμης εικόνων",
|
||||
"advanced_settings_clear_image_cache_success": "Επιτυχής εκκαθάριση {size}",
|
||||
@@ -543,6 +563,7 @@
|
||||
"allow_public_user_to_download": "Επιτρέψτε σε δημόσιο χρήστη να κατεβάσει",
|
||||
"allow_public_user_to_upload": "Επιτρέψτε στον δημόσιο χρήστη να ανεβάσει",
|
||||
"allowed": "Επιτρεπόμενο",
|
||||
"also_known_as": "γνωστό και ως",
|
||||
"alt_text_qr_code": "Εικόνα κωδικού QR",
|
||||
"always_keep": "Διατήρηση πάντα",
|
||||
"always_keep_photos_hint": "Η «Απελευθέρωση χώρου» θα κρατήσει όλες τις φωτογραφίες σε αυτήν τη συσκευή.",
|
||||
@@ -655,6 +676,7 @@
|
||||
"biometric_no_options": "Δεν υπάρχουν διαθέσιμοι τρόποι βιομετρικής ταυτοποίησης",
|
||||
"biometric_not_available": "Δεν υπάρχει διαθέσιμη βιομετρική ταυτοποίηση σε αυτή τη συσκευή",
|
||||
"birthdate_set_description": "Η ημερομηνία γέννησης χρησιμοποιείται για τον υπολογισμό της ηλικίας αυτού του ατόμου, τη χρονική στιγμή μιας φωτογραφίας.",
|
||||
"birthday_memory_title": "Του/Της {name} τα γενέθλια",
|
||||
"blurred_background": "Θολό φόντο",
|
||||
"browse_templates": "Περιήγηση σε πρότυπα",
|
||||
"bugs_and_feature_requests": "Σφάλματα & Αιτήματα Λειτουργιών",
|
||||
@@ -719,6 +741,8 @@
|
||||
"clear_all_recent_searches": "Εκκαθάριση όλων των πρόσφατων αναζητήσεων",
|
||||
"clear_failed_count": "Αποτυχία εκκαθάρισης ({count})",
|
||||
"clear_file_cache": "Εκκαθάριση της Προσωρινής Μνήμης Αρχείων",
|
||||
"clear_file_cache_error": "Αποτυχία διαγραφής προσωρινής μνήμης αρχείων",
|
||||
"clear_file_cache_success": "Έγινε εκκαθάριση της προσωρινής μνήμης αρχείων",
|
||||
"clear_message": "Εκκαθάριση μηνύματος",
|
||||
"clear_value": "Εκκαθάριση τιμής",
|
||||
"client_cert_import": "Εισαγωγή",
|
||||
@@ -730,6 +754,9 @@
|
||||
"client_cert_subtitle": "Υποστηρίζει μόνο τη μορφή PKCS12 (.p12, .pfx). Η εισαγωγή/αφαίρεση πιστοποιητικού είναι διαθέσιμη μόνο πριν από τη σύνδεση",
|
||||
"client_cert_title": "Πιστοποιητικό SSL πελάτη [ΠΕΙΡΑΜΑΤΙΚΟ]",
|
||||
"close": "Κλείσιμο",
|
||||
"cluster_group_description": "Τα άτομα αναγνωρίζονται στις φωτογραφίες όλων των μελών του γκρουπ",
|
||||
"cluster_group_facial_recognition": "Επαναφορά αναγνώρισης προσώπου",
|
||||
"cluster_group_facial_recognition_prompt": "Επαναφέροντας την αναγνώριση προσώπου θα διαγραφούν όλα τα άτομα για όλους τους χρήστες σε αυτό το γκρουπ. Θα χαθούν και τα ήδη ρυθμισμένα ονόματα και ημερομηνίες γέννησης. Είστε σίγουρος ότι θέλετε να συνεχίσετε?",
|
||||
"collapse": "Σύμπτυξη",
|
||||
"collapse_all": "Σύμπτυξη όλων",
|
||||
"color": "Χρώμα",
|
||||
@@ -1204,7 +1231,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Βίντεο} other {Εικόνα}} τραβηγμένο στην/στον {city}, {country} με τον/την {person1}, τον/την {person2} και τον/την {person3} στις {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Βίντεο} other {Εικόνα}} τραβηγμένο στον/στην {city}, {country} με τον/την {person1}, {person2}, και {additionalCount, number} άλλους στις {date}",
|
||||
"immich_logo": "Λογότυπο Immich",
|
||||
"immich_web_interface": "Ιστότοπος Immich",
|
||||
"import_from_json": "Εισαγωγή από αρχείο JSON",
|
||||
"import_path": "Εισαγωγή διαδρομής",
|
||||
"in_albums": "Μέσα σε {count, plural, one {# άλμπουμ} other {# άλμπουμ}}",
|
||||
@@ -1908,8 +1934,6 @@
|
||||
"setting_image_viewer_help": "Το πρόγραμμα προβολής λεπτομερειών φορτώνει πρώτα τη μικρογραφία, στη συνέχεια φορτώνει την προεπισκόπηση μεσαίου μεγέθους (αν είναι ενεργοποιημένη), τέλος φορτώνει το πρωτότυπο (αν είναι ενεργοποιημένο).",
|
||||
"setting_image_viewer_original_subtitle": "Ενεργοποιήστε τη φόρτωση της πρωτότυπης εικόνας πλήρους ανάλυσης (μεγάλη!). Απενεργοποιήστε για να μειώσετε τη χρήση δεδομένων (τόσο στο δίκτυο όσο και στην κρυφή μνήμη της συσκευής).",
|
||||
"setting_image_viewer_original_title": "Φόρτωση πρωτότυπης εικόνας",
|
||||
"setting_image_viewer_preview_subtitle": "Ενεργοποιήστε τη φόρτωση μιας εικόνας μέσης ανάλυσης. Απενεργοποιήστε είτε για να φορτώνεται απευθείας το πρωτότυπο είτε για να χρησιμοποιείται μόνο η μικρογραφία.",
|
||||
"setting_image_viewer_preview_title": "Φόρτωση εικόνας προεπισκόπησης",
|
||||
"setting_languages_apply": "Εφαρμογή",
|
||||
"setting_languages_subtitle": "Αλλάξτε τη γλώσσα της εφαρμογής",
|
||||
"setting_notifications_notify_minutes": "{count} λεπτά",
|
||||
@@ -1975,7 +1999,6 @@
|
||||
"shared_link_password_description": "Απαίτηση κωδικού για πρόσβαση στον κοινοποιημένο σύνδεσμο",
|
||||
"shared_links": "Κοινόχρηστοι σύνδεσμοι",
|
||||
"shared_links_description": "Μοιραστείτε φωτογραφίες και βίντεο με σύνδεσμο",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# κοινόχρηστες φωτογραφίες & βίντεο.}}",
|
||||
"shared_with_me": "Μοιρασμένα μαζί μου",
|
||||
"shared_with_partner": "Σε κοινή χρήση με {partner}",
|
||||
"sharing": "Κοινοποίηση",
|
||||
|
||||
@@ -62,6 +62,12 @@
|
||||
"backup_onboarding_title": "Backups",
|
||||
"backup_settings": "Database Dump Settings",
|
||||
"backup_settings_description": "Manage database dump settings.",
|
||||
"backups": "Backups",
|
||||
"backups_attempts": "Backup attempts",
|
||||
"backups_hide_reminder": "Hide backups reminder",
|
||||
"backups_hide_reminder_description": "If you already manage backups outside of Immich, you can hide the backup setup reminder.",
|
||||
"backups_settings": "Backup settings",
|
||||
"backups_snapshots": "Snapshots",
|
||||
"cleared_jobs": "Cleared jobs for: {job}",
|
||||
"config_set_by_file": "Config is currently set by a config file",
|
||||
"confirm_delete_library": "Are you sure you want to delete {library} library?",
|
||||
@@ -1023,6 +1029,7 @@
|
||||
"failed_to_keep_this_delete_others": "Failed to keep this asset and delete the other assets",
|
||||
"failed_to_load_asset": "Failed to load asset",
|
||||
"failed_to_load_assets": "Failed to load assets",
|
||||
"failed_to_load_database_backups": "Failed to load database backups",
|
||||
"failed_to_load_notifications": "Failed to load notifications",
|
||||
"failed_to_load_people": "Failed to load people",
|
||||
"failed_to_remove_product_key": "Failed to remove product key",
|
||||
@@ -1168,6 +1175,31 @@
|
||||
"file_name_or_extension": "File name or extension",
|
||||
"file_name_text": "File name",
|
||||
"file_size": "File size",
|
||||
"file_vault": {
|
||||
"conflict": "This name already exists. Rename the item or choose another folder.",
|
||||
"description": "Personal documents and work folders",
|
||||
"drop": "Drop files or folders here",
|
||||
"empty": "This folder is empty",
|
||||
"empty_trash": "Trash is empty",
|
||||
"error": "The action failed. Check your connection and try again.",
|
||||
"folder_name": "Folder name",
|
||||
"invalid": "Check the name and destination folder. Names cannot contain slash characters.",
|
||||
"limit": "Maximum file size",
|
||||
"move_to": "Move to folder",
|
||||
"new_folder": "New folder",
|
||||
"private": "Only you can access these files.",
|
||||
"purge_confirm": "Delete permanently? This item and its contents cannot be restored.",
|
||||
"quota": "Insufficient storage space or the maximum file size was exceeded.",
|
||||
"root": "My files",
|
||||
"selected": "Files selected",
|
||||
"title": "Files",
|
||||
"trash_confirm": "Move to trash? The folder and its contents will be moved together.",
|
||||
"unavailable": "This file or folder is unavailable. Refresh the list.",
|
||||
"upload_files": "Upload files",
|
||||
"upload_folder": "Upload folder",
|
||||
"uploading": "Uploading",
|
||||
"used": "Used"
|
||||
},
|
||||
"filename": "Filename",
|
||||
"filetype": "Filetype",
|
||||
"filter": "Filter",
|
||||
@@ -1401,10 +1433,12 @@
|
||||
"main_branch_warning": "You're using a development version; we strongly recommend using a release version!",
|
||||
"main_menu": "Main menu",
|
||||
"maintenance_action_restore": "Restoring Database",
|
||||
"maintenance_action_rollback": "Restoring from Backup",
|
||||
"maintenance_description": "Immich has been put into <link>maintenance mode</link>.",
|
||||
"maintenance_end": "End maintenance mode",
|
||||
"maintenance_logged_in_as": "Currently logged in as {user}",
|
||||
"maintenance_restore_from_backup": "Restore From Backup",
|
||||
"maintenance_restore_latest_backup_description": "We'll restore your database from the most recent backup. You can also pick a different one.",
|
||||
"maintenance_restore_library": "Restore Your Library",
|
||||
"maintenance_restore_library_confirm": "If this looks correct, continue to restoring a backup!",
|
||||
"maintenance_restore_library_description": "Restoring Database",
|
||||
@@ -1417,6 +1451,13 @@
|
||||
"maintenance_restore_library_hint_regenerate_later": "You can regenerate these later in settings",
|
||||
"maintenance_restore_library_hint_storage_template_missing_files": "Using storage template? You may be missing files",
|
||||
"maintenance_restore_library_loading": "Loading integrity checks and heuristics…",
|
||||
"maintenance_restore_loading_backups": "Loading backups…",
|
||||
"maintenance_restore_no_backups": "There are no database backups.",
|
||||
"maintenance_restore_select_another": "Select another backup",
|
||||
"maintenance_restore_source_database_backup": "Database Backup",
|
||||
"maintenance_restore_source_futo_backups": "FUTO Backups",
|
||||
"maintenance_restore_source_title": "Where would you like to restore from?",
|
||||
"maintenance_restore_upload_backup": "Upload a backup",
|
||||
"maintenance_task_backup": "Creating a backup of the existing database…",
|
||||
"maintenance_task_migrations": "Running database migrations…",
|
||||
"maintenance_task_restore": "Restoring the chosen backup…",
|
||||
@@ -1789,6 +1830,8 @@
|
||||
"purchase_panel_title": "Support the project",
|
||||
"purchase_per_server": "Per server",
|
||||
"purchase_per_user": "Per user",
|
||||
"purchase_product_key_description": "Product keys support Immich development and give you a supporter badge.",
|
||||
"purchase_product_key_excludes_backups": "Product keys do not include FUTO Backups.",
|
||||
"purchase_remove_product_key": "Remove Product Key",
|
||||
"purchase_remove_product_key_prompt": "Are you sure you want to remove the product key?",
|
||||
"purchase_remove_server_product_key": "Remove Server product key",
|
||||
|
||||
+6
-4
@@ -368,6 +368,12 @@
|
||||
"storage_template_migration_info": "The storage template will convert all extensions to lowercase. Template changes will only apply to new assets. To retroactively apply the template to previously uploaded assets, run the <link>{job}</link>.",
|
||||
"storage_template_migration_job": "Storage Template Migration Job",
|
||||
"storage_template_more_details": "For more details about this feature, refer to the <template-link>Storage Template</template-link> and its <implications-link>implications</implications-link>",
|
||||
"storage_template_onboarding_description_v3": "Storage templates allow you to define a custom folder structure on disk for your uploaded assets. This can always be changed later.",
|
||||
"storage_template_option_custom": "Custom",
|
||||
"storage_template_option_custom_description": "Build your own folder structure with template variables",
|
||||
"storage_template_option_date_description": "Sort files into year, month, and day folders",
|
||||
"storage_template_option_none": "No template",
|
||||
"storage_template_option_none_description": "Keep the folder structure Immich uses by default",
|
||||
"storage_template_path_length": "Approximate path length limit: <b>{length, number}</b>/{limit, number}",
|
||||
"storage_template_settings": "Storage Template",
|
||||
"storage_template_settings_description": "Manage the folder structure and file name of the upload asset",
|
||||
@@ -1224,7 +1230,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} taken in {city}, {country} with {person1}, {person2}, and {person3} on {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} taken in {city}, {country} with {person1}, {person2}, and {additionalCount, number} others on {date}",
|
||||
"immich_logo": "Immich Logo",
|
||||
"immich_web_interface": "Immich Web Interface",
|
||||
"import_from_json": "Import from JSON",
|
||||
"import_path": "Import path",
|
||||
"in_albums": "In {count, plural, one {# album} other {# albums}}",
|
||||
@@ -1958,8 +1963,6 @@
|
||||
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
|
||||
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
||||
"setting_image_viewer_original_title": "Load original image",
|
||||
"setting_image_viewer_preview_subtitle": "Enable to load a medium-resolution image. Disable to either directly load the original or only use the thumbnail.",
|
||||
"setting_image_viewer_preview_title": "Load preview image",
|
||||
"setting_languages_apply": "Apply",
|
||||
"setting_languages_subtitle": "Change the app's language",
|
||||
"setting_notifications_notify_minutes": "{count} minutes",
|
||||
@@ -2025,7 +2028,6 @@
|
||||
"shared_link_password_description": "Require a password to access this shared link",
|
||||
"shared_links": "Shared links",
|
||||
"shared_links_description": "Share photos and videos with a link",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# shared photos & videos.}}",
|
||||
"shared_with_me": "Shared with me",
|
||||
"shared_with_partner": "Shared with {partner}",
|
||||
"sharing": "Sharing",
|
||||
|
||||
+10
-5
@@ -1238,7 +1238,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} farita en {city}, {country} kun {person1}, {person2} kaj {person3} je {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} farita en {city}, {country} kun {person1}, {person2}, kaj {additionalCount, number} aliaj homoj je {date}",
|
||||
"immich_logo": "Bildsimbolo de Immich",
|
||||
"immich_web_interface": "Interfaco de Immich",
|
||||
"import_from_json": "Importi el JSON-dosiero",
|
||||
"import_path": "Vojo de importado",
|
||||
"in_albums": "En {count, plural, one {# albumo} other {# albumoj}}",
|
||||
@@ -1669,6 +1668,7 @@
|
||||
"person_birthdate": "Naskiĝis je {date}",
|
||||
"person_hidden": "{name}{hidden, select, true { (kaŝita)} other {}}",
|
||||
"person_recognized": "Homo rekonita",
|
||||
"person_update_strategy_self": "Nur mi",
|
||||
"photo_shared_all_users": "Ŝajne vi dividis viajn fotojn kun ĉiuj uzantoj, aŭ povus esti ke ne ekzistas aliaj uzantoj.",
|
||||
"photos": "Fotoj",
|
||||
"photos_and_videos": "Fotoj kaj videoj",
|
||||
@@ -1871,6 +1871,9 @@
|
||||
"search_filter_camera_title": "Elektu tipon de fotilo",
|
||||
"search_filter_date": "Dato",
|
||||
"search_filter_date_interval": "de {start} ĝis {end}",
|
||||
"search_filter_date_last_30_days": "Lastaj 30 tagoj",
|
||||
"search_filter_date_last_year": "Pasintjare",
|
||||
"search_filter_date_this_year": "Ĉi-jare",
|
||||
"search_filter_date_title": "Elektu intervalon de datoj",
|
||||
"search_filter_display_option_not_in_album": "Ne en albumo",
|
||||
"search_filter_display_options": "Opcioj pri aranĝo sur ekrano",
|
||||
@@ -1952,8 +1955,6 @@
|
||||
"setting_image_viewer_help": "La detala montrilo unue montras la malgrandan bildeton, poste ŝargas la mezgrandan antaŭvidon (se ŝaltita), kaj fine ŝargas la originalan (se ŝaltita).",
|
||||
"setting_image_viewer_original_subtitle": "Ŝalti por ŝargi la originalan bildon (povas esti tre granda!) Malŝalti por ŝpareme uzi datumojn (de retkonekto kaj memoro en via aparato).",
|
||||
"setting_image_viewer_original_title": "Ŝargi originalan bildon",
|
||||
"setting_image_viewer_preview_subtitle": "Ŝalti por ŝargi mez-distingivan bildon. Malŝalti por ŝargi aŭ la originalon aŭ la bildeton.",
|
||||
"setting_image_viewer_preview_title": "Ŝargi antaŭvidan bildon",
|
||||
"setting_languages_apply": "Validigi",
|
||||
"setting_languages_subtitle": "Ŝanĝi lingvon de la apo",
|
||||
"setting_notifications_notify_minutes": "{count} minutoj",
|
||||
@@ -2017,7 +2018,6 @@
|
||||
"shared_link_password_description": "Devigi uzon de pasvorto por uzi la ligilon",
|
||||
"shared_links": "Dividitaj ligiloj",
|
||||
"shared_links_description": "Dividi fotojn kaj videojn per ligilo",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# dividitaj fotoj kaj videoj.}}",
|
||||
"shared_with_me": "Dividitaj kun mi",
|
||||
"shared_with_partner": "Dividitaj kun {partner}",
|
||||
"sharing": "Dividado",
|
||||
@@ -2098,6 +2098,7 @@
|
||||
"stop_photo_sharing": "Ĉu ĉesi dividi viajn fotojn?",
|
||||
"stop_photo_sharing_description": "{partner} ne plu rajtos atingi viajn fotojn.",
|
||||
"stop_sharing_photos_with_user": "Ĉesi dividi fotojn kun tiu ĉi uzanto",
|
||||
"sync": "Sinkronigi",
|
||||
"to_favorite": "Aldoni al preferataĵoj",
|
||||
"unfavorite": "Forigi el preferataĵoj",
|
||||
"unfavorite_action_prompt": "{count} forigita(j) el Preferataĵoj",
|
||||
@@ -2110,6 +2111,9 @@
|
||||
"waiting": "En atendovico",
|
||||
"waiting_count": "En atendovico: {count}",
|
||||
"week": "Semajno",
|
||||
"welcome": "Bonvenon",
|
||||
"welcome_to_immich": "Bonvenon al Immich",
|
||||
"whats_new": "Kio estas nova",
|
||||
"wifi_name": "Nomo de Vifireto",
|
||||
"workflow_delete_prompt": "Ĉu vi certas, ke vi volas forigi tiun ĉi laborfluon?",
|
||||
"workflow_deleted": "Laborfluo forigita",
|
||||
@@ -2125,5 +2129,6 @@
|
||||
"workflows_help_text": "Laborfluo aŭtomatigas agojn pri elementoj, laŭ ekigiloj kaj filtriloj",
|
||||
"year": "Jaro",
|
||||
"yes": "Jes",
|
||||
"you_dont_have_any_shared_links": "Vi ne havas ajnan dividitan ligilon"
|
||||
"you_dont_have_any_shared_links": "Vi ne havas ajnan dividitan ligilon",
|
||||
"your_wifi_name": "Via Vifio-nomo"
|
||||
}
|
||||
|
||||
+29
-13
@@ -66,7 +66,7 @@
|
||||
"confirm_delete_library": "¿Estás seguro de que quieres eliminar la biblioteca {library}?",
|
||||
"confirm_delete_library_assets": "¿Estás seguro de que quieras eliminar esta biblioteca? Esto eliminará {count, plural, one {# recurso contenido} other {todos # recursos contenidos}} de Immich y no puede deshacerse. Los archivos permanecerán en disco.",
|
||||
"confirm_email_below": "Para confirmar, escribe \"{email}\" a continuación",
|
||||
"confirm_reprocess_all_faces": "¿Estás seguro de que deseas reprocesar todas las caras? Esto borrará a todas las personas que nombraste.",
|
||||
"confirm_reprocess_all_faces": "¿Estás seguro de que deseas volver a procesar todos los rostros? Esto borrará a todas las personas que etiquetaste.",
|
||||
"confirm_user_password_reset": "¿Estás seguro de que quieres restablecer la contraseña de {user}?",
|
||||
"confirm_user_pin_code_reset": "¿Seguro que quieres restablecer el PIN de {user}?",
|
||||
"copy_config_to_clipboard_description": "Copiar la configuración actual del sistema como un objeto JSON al",
|
||||
@@ -80,13 +80,13 @@
|
||||
"exclusion_pattern_description": "Los patrones de exclusión te permiten ignorar archivos y carpetas al escanear tu biblioteca. Es útil si tienes carpetas que contienen archivos que no deseas importar, por ejemplo archivos RAW.",
|
||||
"export_config_as_json_description": "Descargar la configuración actual del sistema como un archivo JSON",
|
||||
"external_libraries_page_description": "Página de biblioteca externa del administrador",
|
||||
"face_detection": "Detección de caras",
|
||||
"face_detection": "Detección de rostros",
|
||||
"face_detection_description": "Detecta las caras en los recursos mediante aprendizaje automático. En el caso de los vídeos, solo se tiene en cuenta la miniatura. \"Actualizar\" (re)procesará todos los recursos. \"Restablecer\" borra además todos los datos de caras actuales. \"Faltante\" pone en cola los recursos que aún no se han procesado. Las caras detectadas se pondrán en cola para el reconocimiento facial una vez finalizada la detección, agrupándolos en personas existentes o nuevas.",
|
||||
"facial_recognition_job_description": "Agrupa las caras detectadas en personas. Este paso se realiza después de completar la detección de caras. \"Restablecer\" (re)agrupa todas las caras. \"Faltante\" pone en cola las caras que no tienen una persona asignada.",
|
||||
"facial_recognition_job_description": "Agrupa los rostros detectados. Este paso se realiza después de completar la detección de rostros. \"Restablecer\" (re)agrupa todos los rostros. \"Faltante\" pone en cola los rostros que no tienen una persona asignada.",
|
||||
"failed_job_command": "El comando {command} ha fallado para la tarea: {job}",
|
||||
"force_delete_user_warning": "CUIDADO: Esta acción eliminará inmediatamente el usuario y todos los recursos. Esta acción no se puede deshacer y los archivos no pueden ser recuperados.",
|
||||
"image_format": "Formato",
|
||||
"image_format_description": "WebP genera archivos más pequeños que JPEG, pero es más lento al codificarlos.",
|
||||
"image_format_description": "WebP genera archivos más pequeños que JPEG, pero es más lento al codificarlos. JPEG XL es la mejor opción para obtener una compresión de alta calidad, pero no todos los navegadores y aplicaciones pueden mostrarlo.",
|
||||
"image_fullsize_description": "Imagen de tamaño completo con metadatos removidos, usado cuando se hace zoom",
|
||||
"image_fullsize_enabled": "Activar generación de imágenes a tamaño completo",
|
||||
"image_fullsize_enabled_description": "Generar imágenes a tamaño completo para formatos no aptos para web. Cuando \"Preferir vista previa incrustada\" está activada, las vistas previas incrustadas se utilizan directamente sin conversión. No afecta a los formatos aptos para la web, como JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Calidad de vista previa de 1 a 100. Es mejor cuanto más alta sea la calidad pero genera archivos más grandes y puede reducir la capacidad de respuesta de la aplicación. Establecer un valor bajo puede afectar la calidad del aprendizaje automático.",
|
||||
"image_preview_title": "Ajustes de las vistas previas",
|
||||
"image_progressive": "Progressivo",
|
||||
"image_progressive_description": "Codifica imágenes JPEG progresivamente para una visualización con carga gradual. Esto no afecta a las imágenes WebP.",
|
||||
"image_progressive_description": "Codifica imágenes JPEG progresivamente para una visualización con carga gradual. Esto no afecta a otros formatos.",
|
||||
"image_quality": "Calidad",
|
||||
"image_resolution": "Resolución",
|
||||
"image_resolution_description": "Las resoluciones más altas pueden conservar más detalles pero requieren más tiempo para codificar, tienen tamaños de archivo más grandes y pueden afectar la capacidad de respuesta de la aplicación.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Tiempo de espera de la solicitud agotado",
|
||||
"oauth_timeout_description": "Tiempo de espera de solicitudes en milisegundos",
|
||||
"ocr_job_description": "Usar aprendizaje automático para reconocer texto en imágenes",
|
||||
"passkey_additional_domains": "Dominios adicionales",
|
||||
"passkey_additional_domains_description": "Dominios de confianza adicionales (related origin requests). Estos solo servirán si el dominio de llaves de acceso tambien es accesible.",
|
||||
"passkey_domain": "Dominio de llaves de acceso",
|
||||
"passkey_domain_description": "Dominio usado para las llaves de acceso (relying party). Dejar en blanco para deducirlo en base al cabezal origin. Las llaves de acceso existentes dejaran de funcionar si se cambia este valor.",
|
||||
"passkey_enable_description": "Inicia sesión con una llave de acceso",
|
||||
"passkey_settings": "Login con llave de acceso",
|
||||
"passkey_settings_description": "Administrar configuración de inicio de sesión con llaves de acceso",
|
||||
"password_enable_description": "Iniciar sesión con correo electrónico y contraseña",
|
||||
"password_settings": "Contraseña de inicio de sesión",
|
||||
"password_settings_description": "Administrar la configuración de inicio de sesión con contraseña",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Borrar solo las que tengan copia de seguridad",
|
||||
"delete_local_dialog_ok_force": "Borrar de todos modos",
|
||||
"delete_others": "Eliminar otros",
|
||||
"delete_passkey": "Borrar llave de acceso",
|
||||
"delete_passkey_prompt": "¿Esta seguro que desea borrar esta llave de acceso?",
|
||||
"delete_permanently": "Eliminar permanentemente",
|
||||
"delete_permanently_action_prompt": "{count} eliminados permanentemente",
|
||||
"delete_shared_link": "Eliminar enlace compartido",
|
||||
@@ -942,7 +951,8 @@
|
||||
"edit_location_action_prompt": "{count} ubicaciones actualizadas",
|
||||
"edit_location_dialog_title": "Ubicación",
|
||||
"edit_name": "Cambiar nombre",
|
||||
"edit_people": "Editar persona",
|
||||
"edit_passkey": "Editar llave de acceso",
|
||||
"edit_people": "Editar personas",
|
||||
"edit_person": "Editar persona",
|
||||
"edit_tag": "Editar etiqueta",
|
||||
"edit_title": "Editar Titulo",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} tomada en {city}, {country} con {person1}, {person2}, y {person3} el {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} tomada en {city}, {country} con {person1}, {person2}, y {additionalCount, number} más el {date}",
|
||||
"immich_logo": "Logo de Immich",
|
||||
"immich_web_interface": "Interfaz web de Immich",
|
||||
"import_from_json": "Importar desde JSON",
|
||||
"import_path": "Importar ruta",
|
||||
"in_albums": "En {count, plural, one {# álbum} other {# álbumes}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Último",
|
||||
"last_months": "{count, plural, one {Último mes} other {Últimos # meses}}",
|
||||
"last_seen": "Ultima vez visto",
|
||||
"last_used": "Última vez usado",
|
||||
"latest_version": "Última versión",
|
||||
"latitude": "Latitud",
|
||||
"leave": "Abandonar",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "El inicio de sesión ha sido deshabilitado",
|
||||
"login_password_changed_error": "Hubo un error actualizando la contraseña",
|
||||
"login_password_changed_success": "Contraseña cambiado con éxito",
|
||||
"login_with_passkey": "Iniciar sesión con llave de acceso",
|
||||
"logout_all_device_confirmation": "¿Estás seguro de que quieres cerrar sesión en todos los dispositivos?",
|
||||
"logout_this_device_confirmation": "¿Estás seguro de que quieres cerrar sesión en este dispositivo?",
|
||||
"logs": "Registros",
|
||||
@@ -1410,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Administre sus claves API",
|
||||
"manage_your_devices": "Administre sus dispositivos conectados",
|
||||
"manage_your_oauth_connection": "Administra tu conexión OAuth",
|
||||
"manage_your_passkeys": "Administrar llaves de acceso",
|
||||
"map": "Mapa",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {No hay fotos en esta área} one {# foto} other {# fotos}}",
|
||||
"map_cannot_get_user_location": "No se pudo obtener la posición del usuario",
|
||||
@@ -1529,6 +1541,7 @@
|
||||
"new_album": "Nuevo álbum",
|
||||
"new_api_key": "Nueva clave API",
|
||||
"new_feature": "Nueva característica",
|
||||
"new_passkey": "Nueva llave de acceso",
|
||||
"new_password": "Nueva contraseña",
|
||||
"new_person": "Nueva persona",
|
||||
"new_pin_code": "Nuevo PIN",
|
||||
@@ -1641,6 +1654,7 @@
|
||||
"partner_sharing": "Compartir con compañeros",
|
||||
"partners": "Miembros",
|
||||
"partners_description": "Comparte tus fotos y vídeos con otros usuarios",
|
||||
"passkeys_not_supported": "Este navegador no admite llaves de acceso",
|
||||
"password": "Contraseña",
|
||||
"password_does_not_match": "Las contraseñas no coinciden",
|
||||
"password_required": "Contraseña requerida",
|
||||
@@ -1825,6 +1839,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {Eliminados #}} de favoritos",
|
||||
"removed_from_stack": "Recurso eliminado de la pila",
|
||||
"removed_memory": "Recuerdo eliminado",
|
||||
"removed_passkey": "Llave de acceso eliminada: {name}",
|
||||
"removed_tagged_assets": "Etiqueta eliminada de {count, plural, one {# recurso} other {# recursos}}",
|
||||
"rename": "Renombrar",
|
||||
"repository": "Repositorio",
|
||||
@@ -1986,11 +2001,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Si está habilitado, puedes navegar a la imagen anterior/siguiente tocando una cuarta parte más a la izquierda/derecha de la pantalla.",
|
||||
"setting_image_navigation_enable_title": "Toca para navegar",
|
||||
"setting_image_navigation_title": "Navegación de imágenes",
|
||||
"setting_image_viewer_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano (si está habilitada), finalmente carga la original (si está habilitada).",
|
||||
"setting_image_viewer_help": "El visor de detalles carga primero la miniatura pequeña, luego carga la vista previa de tamaño mediano, finalmente carga la original (si está habilitada).",
|
||||
"setting_image_viewer_original_subtitle": "Activar para cargar la imagen en resolución original (¡muy grande!). Deshabilitar para reducir el consumo de datos (de red y caché).",
|
||||
"setting_image_viewer_original_title": "Cargar imagen original",
|
||||
"setting_image_viewer_preview_subtitle": "Activar para cargar una imagen de resolución media. Deshabilitar para cargar directamente la imagen original o usar una miniatura.",
|
||||
"setting_image_viewer_preview_title": "Cargar imagen de previsualización",
|
||||
"setting_languages_apply": "Aplicar",
|
||||
"setting_languages_subtitle": "Cambia el idioma de la aplicación",
|
||||
"setting_notifications_notify_minutes": "{count} minutos",
|
||||
@@ -2010,6 +2023,7 @@
|
||||
"share_everyone": "Compartir con todos",
|
||||
"share_everyone_description": "Otorga a {user} acceso a todas tus personas.",
|
||||
"share_link": "Compartir enlace",
|
||||
"share_logs": "Compartir registros",
|
||||
"share_original": "Usar original (grande)",
|
||||
"share_preview": "Usar vista previa (pequeño)",
|
||||
"share_quality_body": "Mantén pulsado el botón de compartir para elegir la calidad de la imagen antes de compartirla.",
|
||||
@@ -2061,7 +2075,6 @@
|
||||
"shared_link_password_description": "Requerir una contraseña para acceder a este enlace compartido",
|
||||
"shared_links": "Enlaces compartidos",
|
||||
"shared_links_description": "Comparte fotos y vídeos con un enlace",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# fotos y vídeos compartidos.}}",
|
||||
"shared_with": "Compartido con",
|
||||
"shared_with_count": "Compartido ({count})",
|
||||
"shared_with_me": "Compartidos conmigo",
|
||||
@@ -2189,6 +2202,8 @@
|
||||
"theme": "Tema",
|
||||
"theme_selection": "Selección de tema",
|
||||
"theme_selection_description": "Establece el tema automáticamente como \"claro\" u \"oscuro\" según las preferencias del sistema/navegador",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Desplazar continuamente al mover la barra de desplazamiento en lugar de saltar de mes en mes",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Desplazamiento suave de la linea de tiempo",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los recursos",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Número de recursos por fila ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Aplicar el color primario a las superficies de fondo.",
|
||||
@@ -2207,7 +2222,7 @@
|
||||
"timezone": "Zona horaria",
|
||||
"to_archive": "Archivar",
|
||||
"to_change_password": "Cambiar contraseña",
|
||||
"to_favorite": "A los favoritos",
|
||||
"to_favorite": "Añadir a favoritos",
|
||||
"to_login": "Iniciar sesión",
|
||||
"to_multi_select": "para multi selección",
|
||||
"to_parent": "Ir a los padres",
|
||||
@@ -2304,7 +2319,7 @@
|
||||
"user": "Usuario",
|
||||
"user_has_been_deleted": "Este usuario ha sido eliminado.",
|
||||
"user_id": "Id. de usuario",
|
||||
"user_liked": "{user} le gustó {type, select, photo {esta foto} video {este vídeo} asset {este recurso} other {esto}}",
|
||||
"user_liked": "{user} le gustó {type, select, image {esta foto} video {este vídeo} other {esto}}",
|
||||
"user_pin_code_settings": "PIN",
|
||||
"user_pin_code_settings_description": "Gestione su PIN",
|
||||
"user_privacy": "Privacidad del usuario",
|
||||
@@ -2340,6 +2355,7 @@
|
||||
"view_group": "Ver grupo",
|
||||
"view_in_timeline": "Ver en la línea de tiempo",
|
||||
"view_link": "Ver enlace",
|
||||
"view_more": "Ver más",
|
||||
"view_name": "Ver",
|
||||
"view_next_asset": "Mostrar siguiente recurso",
|
||||
"view_previous_asset": "Mostrar recurso anterior",
|
||||
|
||||
+27
-9
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "Käsk {command} ebaõnnestus töötes: {job}",
|
||||
"force_delete_user_warning": "HOIATUS: See kustutab koheselt kasutaja ja kõik tema üksused. Tegevust ei saa tagasi võtta ja faile ei saa taastada.",
|
||||
"image_format": "Vorming",
|
||||
"image_format_description": "WebP failid on väiksemad kui JPEG, aga kodeerimine on aeglasem.",
|
||||
"image_format_description": "WebP failid on väiksemad kui JPEG, aga kodeerimine on aeglasem. JPEG XL on parim valik kõrge kvaliteedi jaoks, aga kõik brauserid ja rakendused ei suuda seda kuvada.",
|
||||
"image_fullsize_description": "Täismõõdus pilt ilma metaandmeteta, kasutatakse sisse suumimisel",
|
||||
"image_fullsize_enabled": "Luba täismõõdus piltide genereerimine",
|
||||
"image_fullsize_enabled_description": "Genereeri mitte-veebisõbralike vormingute jaoks täismõõdus pilt. Kui \"Eelista manustatud eelvaadet\" on lubatud, kasutatakse manustatud eelvaateid otse ilma teisendamiseta. Ei mõjuta veebisõbralikke vorminguid nagu JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Eelvaate kvaliteet vahemikus 1-100. Kõrgem väärtus on parem, aga tekitab suuremaid faile ning võib mõjutada rakenduse töökiirust. Madal väärtus võib mõjutada masinõppe kvaliteeti.",
|
||||
"image_preview_title": "Eelvaate seaded",
|
||||
"image_progressive": "Progressiivne",
|
||||
"image_progressive_description": "Kodeeri JPEG-pildid järk-järguliseks laadimiseks. See ei mõjuta WebP-pilte.",
|
||||
"image_progressive_description": "Kodeeri JPEG-pildid järk-järguliseks laadimiseks. See ei mõjuta teisi formaate.",
|
||||
"image_quality": "Kvaliteet",
|
||||
"image_resolution": "Resolutsioon",
|
||||
"image_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.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Päringu ajalõpp",
|
||||
"oauth_timeout_description": "Päringute ajalõpp millisekundites",
|
||||
"ocr_job_description": "Kasuta piltidelt teksti tuvastamiseks masinõpet",
|
||||
"passkey_additional_domains": "Täiendavad domeenid",
|
||||
"passkey_additional_domains_description": "Täiendavad usaldatud domeenid. Need toimivad ainult siis, kui pääsuvõtme domeen on ka ligipääsetav.",
|
||||
"passkey_domain": "Pääsuvõtme domeen",
|
||||
"passkey_domain_description": "Pääsuvõtmete jaoks kasutatav domeen. Jäta tühjaks, et tuletada \"origin\" päisest. Selle väärtuse muutmisel lakkavad olemasolevad pääsuvõtmed töötamast.",
|
||||
"passkey_enable_description": "Logi sisse pääsuvõtmega",
|
||||
"passkey_settings": "Pääsuvõtmega sisenemine",
|
||||
"passkey_settings_description": "Halda pääsuvõtmega sisenemise seadeid",
|
||||
"password_enable_description": "Logi sisse e-posti aadressi ja parooliga",
|
||||
"password_settings": "Parooliga sisselogimine",
|
||||
"password_settings_description": "Halda parooliga sisselogimise seadeid",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Kustuta ainult varundatud",
|
||||
"delete_local_dialog_ok_force": "Kustuta sellegipoolest",
|
||||
"delete_others": "Kustuta teised",
|
||||
"delete_passkey": "Kustuta pääsuvõti",
|
||||
"delete_passkey_prompt": "Kas oled kindel, et soovid selle pääsuvõtme kustutada?",
|
||||
"delete_permanently": "Kustuta jäädavalt",
|
||||
"delete_permanently_action_prompt": "{count} jäädavalt kustutatud",
|
||||
"delete_shared_link": "Kustuta jagatud link",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} asukoht muudetud",
|
||||
"edit_location_dialog_title": "Asukoht",
|
||||
"edit_name": "Muuda nime",
|
||||
"edit_passkey": "Muuda pääsuvõtit",
|
||||
"edit_people": "Muuda isikuid",
|
||||
"edit_person": "Muuda isikut",
|
||||
"edit_tag": "Muuda silti",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Pilt}} tehtud {date} kohas {city}, {country} koos isikutega {person1}, {person2} ja {person3}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Pilt}} tehtud {date} kohas {city}, {country} koos {person1}, {person2} ja veel {additionalCount, number} isikuga",
|
||||
"immich_logo": "Immich'i logo",
|
||||
"immich_web_interface": "Immich'i veebiliides",
|
||||
"import_from_json": "Impordi JSON-formaadist",
|
||||
"import_path": "Imporditee",
|
||||
"in_albums": "{count, plural, one {# albumis} other {# albumis}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Viimane",
|
||||
"last_months": "{count, plural, one {Eelmine kuu} other {Eelmised # kuud}}",
|
||||
"last_seen": "Viimati nähtud",
|
||||
"last_used": "Viimati kasutatud",
|
||||
"latest_version": "Uusim versioon",
|
||||
"latitude": "Laiuskraad",
|
||||
"leave": "Lahku",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Sisselogimine on keelatud",
|
||||
"login_password_changed_error": "Parooli muutmisel tekkis viga",
|
||||
"login_password_changed_success": "Parool edukalt uuendatud",
|
||||
"login_with_passkey": "Logi sisse pääsuvõtmega",
|
||||
"logout_all_device_confirmation": "Kas oled kindel, et soovid kõigist seadmetest välja logida?",
|
||||
"logout_this_device_confirmation": "Kas oled kindel, et soovid sellest seadmest välja logida?",
|
||||
"logs": "Logid",
|
||||
@@ -1401,6 +1412,7 @@
|
||||
"manage_media_access_title": "Üksuste haldamise ligipääs",
|
||||
"manage_oauth_account": "Halda OAuth kontot",
|
||||
"manage_people": "Halda isikuid",
|
||||
"manage_people_access_description_v2": "Anna teistele kasutajatele ligipääs {count, plural, one {sellele isikule} other {oma isikutele}}, lubades neil andmeid vaadata ja sinu nimel hallata. See tegevus ei jaga üksuseid.",
|
||||
"manage_person_access": "Halda ligipääsu",
|
||||
"manage_sharing_with_other_users": "Halda teiste kasutajatega jagamist",
|
||||
"manage_sharing_with_partners": "Halda partneritega jagamist",
|
||||
@@ -1409,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Halda oma API võtmeid",
|
||||
"manage_your_devices": "Halda oma autenditud seadmeid",
|
||||
"manage_your_oauth_connection": "Halda oma OAuth ühendust",
|
||||
"manage_your_passkeys": "Halda oma pääsuvõtmeid",
|
||||
"map": "Kaart",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Selles piirkonnas fotosid ei ole} one {# foto} other {# fotot}}",
|
||||
"map_cannot_get_user_location": "Ei saa kasutaja asukohta tuvastada",
|
||||
@@ -1528,6 +1541,7 @@
|
||||
"new_album": "Uus album",
|
||||
"new_api_key": "Uus API võti",
|
||||
"new_feature": "Uus funktsionaalsus",
|
||||
"new_passkey": "Uus pääsuvõti",
|
||||
"new_password": "Uus parool",
|
||||
"new_person": "Uus isik",
|
||||
"new_pin_code": "Uus PIN-kood",
|
||||
@@ -1640,6 +1654,8 @@
|
||||
"partner_sharing": "Partneriga jagamine",
|
||||
"partners": "Partnerid",
|
||||
"partners_description": "Jaga oma fotosid ja videosid teiste kasutajatega",
|
||||
"passkeys": "{count, plural, one {Pääsuvõti} other {Pääsuvõtmed}}",
|
||||
"passkeys_not_supported": "See veebilehitseja ei toeta pääsuvõtmeid",
|
||||
"password": "Parool",
|
||||
"password_does_not_match": "Parool ei klapi",
|
||||
"password_required": "Parool on nõutud",
|
||||
@@ -1824,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {# eemaldatud}} lemmikutest",
|
||||
"removed_from_stack": "Üksus virnast eemaldatud",
|
||||
"removed_memory": "Mäletus eemaldatud",
|
||||
"removed_passkey": "Eemaldatud pääsuvõti: {name}",
|
||||
"removed_tagged_assets": "Silt eemaldatud {count, plural, one {# üksuselt} other {# üksuselt}}",
|
||||
"rename": "Nimeta ümber",
|
||||
"repository": "Koodihoidla",
|
||||
@@ -1985,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Kui lubatud, saad liikuda eelmise/järgmise pildi juurde ekraani vasakut/paremat serva puudutades.",
|
||||
"setting_image_navigation_enable_title": "Puudutusega navigeerimine",
|
||||
"setting_image_navigation_title": "Piltide navigeerimine",
|
||||
"setting_image_viewer_help": "Detailivaatur laadib kõigepealt väikese pisipildi, seejärel keskmises mõõdus eelvaate (kui lubatud) ja lõpuks algse pildi (kui lubatud).",
|
||||
"setting_image_viewer_help": "Detailivaatur laadib kõigepealt väikese pisipildi, seejärel keskmises mõõdus eelvaate ning lõpuks algse pildi (kui lubatud).",
|
||||
"setting_image_viewer_original_subtitle": "Lülita sisse, et laadida algne täisresolutsiooniga pilt (suur!). Lülita välja, et vähendada andmekasutust (nii võrgu kui seadme puhvri).",
|
||||
"setting_image_viewer_original_title": "Laadi algne pilt",
|
||||
"setting_image_viewer_preview_subtitle": "Luba keskmise resolutsiooniga pildi laadimine. Keela, et laadida kohe algne pilt või kasutada ainult pisipilti.",
|
||||
"setting_image_viewer_preview_title": "Laadi pildi eelvaade",
|
||||
"setting_languages_apply": "Rakenda",
|
||||
"setting_languages_subtitle": "Muuda rakenduse keelt",
|
||||
"setting_notifications_notify_minutes": "{count} minutit",
|
||||
@@ -2009,8 +2024,9 @@
|
||||
"share_everyone": "Jaga kõik",
|
||||
"share_everyone_description": "Anna kasutajale {user} ligipääs kõigile oma isikutele.",
|
||||
"share_link": "Jaga linki",
|
||||
"share_logs": "Jaga logisid",
|
||||
"share_original": "Kasuta algset (suur)",
|
||||
"share_preview": "Kasuta pisipilti (väike)",
|
||||
"share_preview": "Kasuta eelvaadet (väike)",
|
||||
"share_quality_body": "Vajuta ja hoia jagamise nuppu, et valida enne jagamist pildifaili kvaliteet.",
|
||||
"share_quality_title": "Vali jagamise kvaliteet",
|
||||
"share_with": "Jaga ligipääsu",
|
||||
@@ -2060,7 +2076,6 @@
|
||||
"shared_link_password_description": "Nõua jagatud lingile ligi pääsemiseks parooli",
|
||||
"shared_links": "Jagatud lingid",
|
||||
"shared_links_description": "Jaga fotosid ja videosid lingiga",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# jagatud fotot ja videot.}}",
|
||||
"shared_with": "Jagatud",
|
||||
"shared_with_count": "Jagatud ({count})",
|
||||
"shared_with_me": "Minuga jagatud",
|
||||
@@ -2188,6 +2203,8 @@
|
||||
"theme": "Teema",
|
||||
"theme_selection": "Teema valik",
|
||||
"theme_selection_description": "Sea automaatselt hele või tume teema vastavalt veebilehitseja eelistustele",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Liigu kerimisriba lohistamisel sujuvalt, mitte kuude kaupa",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Sujuv ajajoone liigutamine",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Kuva üksuste ruutudel talletusindikaatorit",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Üksuste arv reas ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Rakenda taustapindadele põhivärv.",
|
||||
@@ -2303,7 +2320,7 @@
|
||||
"user": "Kasutaja",
|
||||
"user_has_been_deleted": "See kasutaja on kustutatud.",
|
||||
"user_id": "Kasutaja ID",
|
||||
"user_liked": "Kasutajale {user} meeldis {type, select, photo {see foto} video {see video} asset {see üksus} other {see}}",
|
||||
"user_liked": "Kasutajale {user} meeldis {type, select, image {see foto} video {see video} other {see}}",
|
||||
"user_pin_code_settings": "PIN-kood",
|
||||
"user_pin_code_settings_description": "Halda oma PIN-koodi",
|
||||
"user_privacy": "Kasutaja privaatsus",
|
||||
@@ -2339,6 +2356,7 @@
|
||||
"view_group": "Vaata gruppi",
|
||||
"view_in_timeline": "Vaata ajajoonel",
|
||||
"view_link": "Vaata linki",
|
||||
"view_more": "Vaata rohkem",
|
||||
"view_name": "Vaade",
|
||||
"view_next_asset": "Vaata järgmist üksust",
|
||||
"view_previous_asset": "Vaata eelmist üksust",
|
||||
|
||||
@@ -1206,7 +1206,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Bideoa} other {Irudia}} {city}-(e)n hartua, {country}-(e)n, {person1}, {person2} eta {person3}-(r)ekin {date}-(e)an",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Bideoa} other {Irudia}} {city}, {country}-(e)n hartua {person1}, {person2} eta beste {additionalCount, number}-(r)ekin hartua {date}-(e)an",
|
||||
"immich_logo": "Immich-en logoa",
|
||||
"immich_web_interface": "Immich Web interfazea",
|
||||
"import_from_json": "JSON-etik inportatu",
|
||||
"import_path": "Inportatzeko bidea",
|
||||
"in_albums": "{count, plural, one {Album batean} other {# albumetan}}",
|
||||
@@ -1910,8 +1909,6 @@
|
||||
"setting_image_viewer_help": "Xehetasun-ikusleak miniatura kargatzen du lehenik, gero tamaina ertaineko aurrebista kargatzen du (gaituta badago), azkenik jatorrizkoa kargatzen du (gaituta badago).",
|
||||
"setting_image_viewer_original_subtitle": "Gaitu bereizmen osoko jatorrizko irudia kargatzeko (handia!). Desgaitu datuen erabilera murrizteko (sarean eta gailuaren cachean).",
|
||||
"setting_image_viewer_original_title": "Jatorrizko irudia kargatu",
|
||||
"setting_image_viewer_preview_subtitle": "Gaitu bereizmen ertaineko irudiak kargatzeko. Desgaitu jatorrizkoa zuzenean kargatzeko edo miniatura soilik erabiltzeko.",
|
||||
"setting_image_viewer_preview_title": "Aurrebista irudia kargatu",
|
||||
"setting_languages_apply": "Ezarri",
|
||||
"setting_languages_subtitle": "Aplikazioaren hizkuntza aldatu",
|
||||
"setting_notifications_notify_minutes": "{count, plural, one {Minutu bat} other {# minutu}}",
|
||||
@@ -1975,7 +1972,6 @@
|
||||
"shared_link_password_description": "Eskatu pasahitz bat partekatutako esteka honetara sartzeko",
|
||||
"shared_links": "Partekatutako estekak",
|
||||
"shared_links_description": "Partekatu argazkiak eta bideoak esteka batekin",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, one {Partekatutako argazki eta bideo bat.} other {# partekatutako argazki eta bideo.}}",
|
||||
"shared_with_me": "Nirekin partekatutakoak",
|
||||
"shared_with_partner": "{partner}-(r)ekin partekatuta",
|
||||
"sharing": "Partekatzen",
|
||||
|
||||
+9
-4
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "مهلت درخواست",
|
||||
"oauth_timeout_description": "مهلت درخواست به میلیثانیه",
|
||||
"ocr_job_description": "استفاده از یادگیری ماشین برای تشخیص متن در تصاویر",
|
||||
"passkey_additional_domains": "دامنه های بیشتر",
|
||||
"passkey_additional_domains_description": "این دامنهها فقط زمانی کار میکنند که دامنه اصلیِ Passkey هم قابل دسترسی باشد.",
|
||||
"passkey_domain": "Passkey دامنه",
|
||||
"passkey_domain_description": "دامنهای که برای کلیدهای عبور (Passkey) استفاده میشود. اگر این قسمت را خالی بگذارید، دامنه بهصورت خودکار از اطلاعات درخواست تشخیص داده میشود.توجه: با تغییر این دامنه، کلیدهای عبوری که قبلاً ساختهاید دیگر کار نخواهند کرد.",
|
||||
"passkey_enable_description": "ورود با phasskey",
|
||||
"passkey_settings": "ورود با passkey",
|
||||
"passkey_settings_description": "تنظیمات مدیریت ورود با passkey",
|
||||
"password_enable_description": "ورود با ایمیل و گذرواژه",
|
||||
"password_settings": "ورود با گذرواژه",
|
||||
"password_settings_description": "مدیریت تنظیمات ورود با گذرواژه",
|
||||
@@ -368,6 +375,8 @@
|
||||
"storage_template_migration_info": "الگوی ذخیرهسازی همهٔ پسوندها را به حروف کوچک تبدیل میکند. تغییرات الگو فقط روی داراییهای جدید اعمال میشود. برای اعمال عطفبهماسبق الگو روی داراییهای قبلاً بارگذاریشده، <link>{job}</link> را اجرا کنید.",
|
||||
"storage_template_migration_job": "وظیفهٔ مهاجرت الگوی ذخیرهسازی",
|
||||
"storage_template_more_details": "برای جزئیات بیشتر دربارهٔ این ویژگی، به <template-link>الگوی ذخیرهسازی</template-link> و <implications-link>پیامدهای</implications-link> آن مراجعه کنید",
|
||||
"storage_template_onboarding_description_v3": "با استفاده از الگوهای ذخیرهسازی، میتوانید مشخص کنید فایلهای آپلودشده در چه پوشههایی و با چه ساختاری روی دیسک ذخیره شوند. این تنظیمات را هر زمان که بخواهید میتوانید تغییر دهید.",
|
||||
"storage_template_option_custom": "سفارشی",
|
||||
"storage_template_path_length": "حداکثر طول مسیر تقریبی: <b>{length, number}</b>/{limit, number}",
|
||||
"storage_template_settings": "الگوی ذخیرهسازی",
|
||||
"storage_template_settings_description": "مدیریت ساختار پوشه و نام فایل دارایی بارگذاریشده",
|
||||
@@ -1224,7 +1233,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {ویدیو} other {تصویر}} گرفتهشده در {city}، {country} با {person1}، {person2} و {person3} در {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {ویدیو} other {تصویر}} گرفتهشده در {city}، {country} با {person1}، {person2} و {additionalCount, number} نفر دیگر در {date}",
|
||||
"immich_logo": "لوگوی Immich",
|
||||
"immich_web_interface": "رابط وب Immich",
|
||||
"import_from_json": "واردات از JSON",
|
||||
"import_path": "مسیر واردات",
|
||||
"in_albums": "در {count, plural, one {# آلبوم} other {# آلبوم}}",
|
||||
@@ -1959,8 +1967,6 @@
|
||||
"setting_image_viewer_help": "نمایشگر جزئیات ابتدا تصویر بندانگشتی کوچک، سپس پیشنمایش با اندازهٔ متوسط (در صورت فعالبودن) و در نهایت تصویر اصلی (در صورت فعالبودن) را بارگذاری میکند.",
|
||||
"setting_image_viewer_original_subtitle": "فعالسازی برای بارگذاری تصویر اصلی با وضوح کامل (بسیار بزرگ!). غیرفعالسازی برای کاهش مصرف داده (هم شبکه و هم کش دستگاه).",
|
||||
"setting_image_viewer_original_title": "بارگذاری تصویر اصلی",
|
||||
"setting_image_viewer_preview_subtitle": "فعالسازی برای بارگذاری تصویر با وضوح متوسط. غیرفعالسازی برای بارگذاری مستقیم تصویر اصلی یا فقط استفاده از تصویر بندانگشتی.",
|
||||
"setting_image_viewer_preview_title": "بارگذاری تصویر پیشنمایش",
|
||||
"setting_languages_apply": "اعمال",
|
||||
"setting_languages_subtitle": "تغییر زبان برنامه",
|
||||
"setting_notifications_notify_minutes": "{count} دقیقه",
|
||||
@@ -2026,7 +2032,6 @@
|
||||
"shared_link_password_description": "برای دسترسی به این پیوند همرسانی، نیاز به گذرواژه است",
|
||||
"shared_links": "پیوندهای همرسانی",
|
||||
"shared_links_description": "همرسانی عکسها و ویدیوها با یک پیوند",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# عکس و ویدیوی مشترک.}}",
|
||||
"shared_with_me": "مشترک با من",
|
||||
"shared_with_partner": "مشترک با {partner}",
|
||||
"sharing": "همرسانی",
|
||||
|
||||
+12
-5
@@ -193,9 +193,11 @@
|
||||
"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-osoite. Jos lisätään useampi kuin yksi URL-osoite, kutakin osoitetta kohden yritetään kerran, kunnes yksi niistä vastaa. Yritykset tehdään järjestyksessä ensimmäisestä viimeiseen. Palvelimet, jotka eivät vastaa, ohitetaan tilapäisesti, kunnes ne ovat taas tavoitettavissa.",
|
||||
"maintenance_backup_management": "varmuuskopioiden hallinta",
|
||||
"maintenance_delete_backup": "Poista varmuuskopio",
|
||||
"maintenance_delete_backup_description": "Tämä tiedosto poistetaan pysyvästi.",
|
||||
"maintenance_delete_error": "Varmuuskopion poistaminen epäonnistui.",
|
||||
"maintenance_integrity_missing_file": "Puuttuvat tiedostot",
|
||||
"maintenance_restore_backup": "Palauta varmuuskopio",
|
||||
"maintenance_restore_backup_description": "Immich tyhjennetään ja palautetaan valitusta varmuuskopiosta. Ennen jatkamista luodaan varmuuskopio.",
|
||||
"maintenance_restore_backup_different_version": "Tämä varmuuskopio luotiin Immichin eri versiolla!",
|
||||
@@ -270,6 +272,7 @@
|
||||
"notification_enable_email_notifications": "Ota käyttöön sähköposti-ilmoitukset",
|
||||
"notification_settings": "Ilmoitusasetukset",
|
||||
"notification_settings_description": "Hallitse ilmoitusasetuksia, myös sähköpostin",
|
||||
"oauth_account_management_url": "Käyttäjien hallinnan URL-osoite",
|
||||
"oauth_allow_insecure_requests": "Salli turvattomat pyynnöt",
|
||||
"oauth_allow_insecure_requests_description": "VAROITUS: Tämä poistaa TLS-varmenteen tarkistuksen OAuth-pyynnöiltä ja voi altistaa sinut väliintulohyökkäyksille (MITM).",
|
||||
"oauth_auto_launch": "Automaattinen käynnistys",
|
||||
@@ -1071,6 +1074,7 @@
|
||||
"failed": "Epäonnistui",
|
||||
"failed_count": "Epäonnistuneita: {count}",
|
||||
"failed_to_authenticate": "Todennus epäonnistui",
|
||||
"failed_to_delete_file": "Tiedoston poistaminen epäonnistui",
|
||||
"failed_to_load_assets": "Kohteiden lataus epäonnistui",
|
||||
"failed_to_load_folder": "Kansion lataaminen epäonnistui",
|
||||
"favorite": "Suosikki",
|
||||
@@ -1102,6 +1106,7 @@
|
||||
"free_up_space_description": "Siirrä varmuuskopioidut valokuvat ja videot laitteen roskakoriin vapauttaaksesi tilaa. Palvelimella olevat kopiosi säilyvät turvassa.",
|
||||
"free_up_space_settings_subtitle": "Vapauta laitteen tilaa",
|
||||
"full_path": "Koko polku: {path}",
|
||||
"full_path_or_folder": "Koko tiedostopolku tai kansio",
|
||||
"gcast_enabled": "Google Cast",
|
||||
"gcast_enabled_description": "Ominaisuus lataa ulkoisia kohteita Googlelta toimiakseen.",
|
||||
"general": "Yleinen",
|
||||
@@ -1160,7 +1165,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Kuva}} otettu {city}ssä, {country}ssä {person1}n, {person2}n ja {person3}n kanssa {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Kuva}} otettu {city}ssä, {country}ssä {person1}n, {person2}n ja {additionalCount, number} muun kanssa {date}",
|
||||
"immich_logo": "Immich-logo",
|
||||
"immich_web_interface": "Immich-verkkokäyttöliittymä",
|
||||
"import_from_json": "Tuo JSON-tiedostosta",
|
||||
"import_path": "Tuontipolku",
|
||||
"in_albums": "{count, plural, one {# albumissa} other {# albumissa}}",
|
||||
@@ -1183,6 +1187,7 @@
|
||||
"invalid_date_format": "Virheellinen päivämäärämuoto",
|
||||
"invite_people": "Kutsu ihmisiä",
|
||||
"invite_to_album": "Kutsu albumiin",
|
||||
"iso": "ISO",
|
||||
"items_count": "{count, plural, one {# kpl} other {# kpl}}",
|
||||
"jobs": "Taustatehtävät",
|
||||
"keep": "Säilytä",
|
||||
@@ -1210,6 +1215,7 @@
|
||||
"latitude": "Leveysaste",
|
||||
"leave": "Poistu",
|
||||
"leave_album": "Poistu albumista",
|
||||
"leave_group": "Poistu ryhmästä",
|
||||
"lens_model": "Objektiivin malli",
|
||||
"let_others_respond": "Anna muiden vastata",
|
||||
"level": "Taso",
|
||||
@@ -1231,6 +1237,7 @@
|
||||
"link_to_oauth": "Linkki OAuth",
|
||||
"linked_oauth_account": "Linkitetty OAuth-tili",
|
||||
"list": "Lista",
|
||||
"load_more": "Lataa lisää",
|
||||
"loading": "Ladataan",
|
||||
"loading_search_results_failed": "Hakutulosten lataaminen epäonnistui",
|
||||
"local": "Paikallinen",
|
||||
@@ -1313,6 +1320,7 @@
|
||||
"manage_media_access_settings": "Avaa asetukset",
|
||||
"manage_media_access_subtitle": "Anna Immich-sovellukselle lupa hallinoida ja siirtää mediatiedostoja.",
|
||||
"manage_media_access_title": "Lupa median hallinnointiin",
|
||||
"manage_oauth_account": "Hallitse OAuth käyttäjää",
|
||||
"manage_sharing_with_partners": "Hallitse jakamista kumppaneille",
|
||||
"manage_the_app_settings": "Hallitse sovelluksen asetuksia",
|
||||
"manage_your_account": "Hallitse tiliäsi",
|
||||
@@ -1341,8 +1349,10 @@
|
||||
"marked_all_as_read": "Merkitty kaikki luetuiksi",
|
||||
"matches": "Osumia",
|
||||
"matching_assets": "Vastaava sisältö",
|
||||
"media": "Media",
|
||||
"media_chrome": {
|
||||
"captions": "Tekstitykset",
|
||||
"captions_off": "Pois",
|
||||
"disable_captions": "Poista tekstitykset käytöstä",
|
||||
"enable_captions": "Ota tekstitykset käyttöön",
|
||||
"enter_fullscreen_mode": "Siirry koko ruudun tilaan",
|
||||
@@ -1822,11 +1832,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Jos tämä toiminto on käytössä, voit siirtyä edelliseen/seuraavaan kuvaan napauttamalla näytön vasenta/oikeaa reunaa.",
|
||||
"setting_image_navigation_enable_title": "Napauta navigoidaksesi",
|
||||
"setting_image_navigation_title": "Kuvien selaus",
|
||||
"setting_image_viewer_help": "Kuvaa katseltaessa ensin ladataan pikkukuva, sitten keskilaatuinen pikkukuva (jos käytössä) ja lopuksi alkuperäinen (jos käytössä).",
|
||||
"setting_image_viewer_help": "Kuvaa katseltaessa ensin ladataan pikkukuva, sitten keskilaatuinen pikkukuva ja lopuksi alkuperäinen (jos käytössä).",
|
||||
"setting_image_viewer_original_subtitle": "Ota käyttöön ladataksesi alkuperäinen täysitarkkuuksinen kuva (suuri!). Poista käytöstä vähentääksesi datan käyttöä (sekä verkossa että laitteen välimuistissa).",
|
||||
"setting_image_viewer_original_title": "Lataa alkuperäinen kuva",
|
||||
"setting_image_viewer_preview_subtitle": "Ota käyttöön ladataksesi keskitarkkuuksinen kuva. Poista käytöstä ladataksesi alkuperäinen kuva tai käyttääksesi vain esikatselukuvaa.",
|
||||
"setting_image_viewer_preview_title": "Lataa esikatselukuva",
|
||||
"setting_languages_apply": "Käytä",
|
||||
"setting_languages_subtitle": "Vaihda sovelluksen kieli",
|
||||
"setting_notifications_notify_minutes": "{count} minuuttia",
|
||||
@@ -1886,7 +1894,6 @@
|
||||
"shared_link_password_description": "Vaadi salasana tämän jakolinkin käyttämiseksi",
|
||||
"shared_links": "Jaetut linkit",
|
||||
"shared_links_description": "Jaa kuvia ja videoita linkin avulla",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# jaettua kuvaa ja videota.}}",
|
||||
"shared_with_me": "Jaettu minulle",
|
||||
"shared_with_partner": "Jaa kumppanin {partner} kanssa",
|
||||
"sharing": "Jakaminen",
|
||||
|
||||
+28
-11
@@ -86,7 +86,7 @@
|
||||
"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.",
|
||||
"image_format": "Format",
|
||||
"image_format_description": "WebP produit des fichiers plus petits que JPEG, mais son encodage est plus lent.",
|
||||
"image_format_description": "WebP produit des fichiers plus petits que JPEG, mais son encodage est plus lent. JPEG XL est la meilleure option pour la compression de grande qualité, mais certains navigateurs ou applis ne savent pas l'afficher.",
|
||||
"image_fullsize_description": "Image en taille réelle, sans métadonnées, utilisée lors d'un zoom",
|
||||
"image_fullsize_enabled": "Activer la génération d'image en taille d'origine",
|
||||
"image_fullsize_enabled_description": "Générer une image en taille réelle pour les formats non compatibles avec le web. Lorsque l'option « Préférer l'aperçu intégré » est activée, les aperçus intégrés sont utilisés directement sans conversion. Cette option n'affecte pas les formats compatibles avec le web tels que JPEG.",
|
||||
@@ -98,9 +98,9 @@
|
||||
"image_prefer_wide_gamut_setting_description": "Utiliser Display P3 pour les miniatures. Cela préserve mieux la vivacité des images avec des espaces colorimétriques étendus, mais les images peuvent apparaître différemment sur les anciens appareils avec une ancienne version du navigateur. Conserver les images sRGB en sRGB pour éviter les décalages de couleur.",
|
||||
"image_preview_description": "Image de taille moyenne avec métadonnées retirées, utilisée lors de la visualisation d'un seul média et pour l'apprentissage automatique",
|
||||
"image_preview_quality_description": "Qualité de l'aperçu : de 1 à 100. Une valeur plus élevée produit de meilleurs résultats, mais elle produit des fichiers plus volumineux et peut réduire la réactivité de l'application. Une valeur trop basse peut affecter la qualité de l'apprentissage automatique.",
|
||||
"image_preview_title": "Paramètres de prévisualisation",
|
||||
"image_preview_title": "Paramètres de l'aperçu",
|
||||
"image_progressive": "Progressif",
|
||||
"image_progressive_description": "Encode les images JPEG de manière progressive pour un affichage graduel. Cela n'a pas d'effet sur les images en WebP.",
|
||||
"image_progressive_description": "Encode les images JPEG de manière progressive pour un affichage graduel. Cela n'a pas d'effet sur les autres formats.",
|
||||
"image_quality": "Qualité",
|
||||
"image_resolution": "Résolution",
|
||||
"image_resolution_description": "Les résolutions plus élevées permettent de préserver davantage de détails, mais l'encodage est plus long, les fichiers sont plus volumineux et la réactivité de l'application peut s'en trouver réduite.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Expiration de la durée de la requête",
|
||||
"oauth_timeout_description": "Délai d'expiration des requêtes en millisecondes",
|
||||
"ocr_job_description": "Utiliser un modèle d'apprentissage automatique pour reconnaitre le texte dans les images",
|
||||
"passkey_additional_domains": "Domaines additionnels",
|
||||
"passkey_additional_domains_description": "Domaines supplémentaires et de confiance (requêtes d'origine liées). Ces domaines ne fonctionneront que si le domaine à clé d'accès est également accessible.",
|
||||
"passkey_domain": "Domaine à clé d'accès",
|
||||
"passkey_domain_description": "Domaine utilisé pour les clés d'accès (partie dépendante). Laissez vide pour déduire à partir de l'en-tête d'origine. Changer cette valeur fera en sorte que les clés d'accès existantes ne fonctionnent plus.",
|
||||
"passkey_enable_description": "Se connecter avec une clé d'accès",
|
||||
"passkey_settings": "Connexion par clé d'accès",
|
||||
"passkey_settings_description": "Gérer les paramètres de connexion de la clé d'accès",
|
||||
"password_enable_description": "Connexion avec courriel et mot de passe",
|
||||
"password_settings": "Connexion par mot de passe",
|
||||
"password_settings_description": "Gérer les paramètres de connexion par mot de passe",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Suppression des données sauvegardées uniquement",
|
||||
"delete_local_dialog_ok_force": "Supprimer tout de même",
|
||||
"delete_others": "Supprimer les autres",
|
||||
"delete_passkey": "Supprimer la clé d'accès",
|
||||
"delete_passkey_prompt": "Êtes-vous sûr de vouloir supprimer cette clé d'accès?",
|
||||
"delete_permanently": "Supprimer définitivement",
|
||||
"delete_permanently_action_prompt": "{count} supprimé(s) définitivement",
|
||||
"delete_shared_link": "Supprimer le lien partagé",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} localisation(s) mise(s) à jour",
|
||||
"edit_location_dialog_title": "Localisation",
|
||||
"edit_name": "Modifier le nom",
|
||||
"edit_passkey": "Modifier la clé d'accès",
|
||||
"edit_people": "Modifier les personnes",
|
||||
"edit_person": "Modifier la personne",
|
||||
"edit_tag": "Modifier l'étiquette",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} prise à {city}, {country} avec {person1}, {person2}, et {person3} le {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} prise à {city}, {country} avec {person1}, {person2} et {additionalCount, number} autres personnes le {date}",
|
||||
"immich_logo": "Logo Immich",
|
||||
"immich_web_interface": "Interface Web Immich",
|
||||
"import_from_json": "Importer depuis un fichier JSON",
|
||||
"import_path": "Chemin d'importation",
|
||||
"in_albums": "Dans {count, plural, one {# album} other {# albums}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Dernier",
|
||||
"last_months": "{count, plural, one {Dernier mois} other {Derniers # mois}}",
|
||||
"last_seen": "Dernièrement utilisé",
|
||||
"last_used": "Dernière utilisation",
|
||||
"latest_version": "Dernière version",
|
||||
"latitude": "Latitude",
|
||||
"leave": "Quitter",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "La connexion a été désactivée",
|
||||
"login_password_changed_error": "Une erreur s'est produite lors de la mise à jour de votre mot de passe",
|
||||
"login_password_changed_success": "Mot de passe mis à jour avec succès",
|
||||
"login_with_passkey": "Se connecter avec la clé d'accès",
|
||||
"logout_all_device_confirmation": "Êtes-vous sûr de vouloir déconnecter tous les appareils ?",
|
||||
"logout_this_device_confirmation": "Êtes-vous sûr de vouloir déconnecter cet appareil ?",
|
||||
"logs": "Journaux",
|
||||
@@ -1410,10 +1421,11 @@
|
||||
"manage_your_api_keys": "Gérer vos clés API",
|
||||
"manage_your_devices": "Gérer vos appareils",
|
||||
"manage_your_oauth_connection": "Gérer votre connexion OAuth",
|
||||
"manage_your_passkeys": "Gérez vos clés d'accès",
|
||||
"map": "Carte",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Aucune photo dans cette zone} one {# photo} other {# photos}}",
|
||||
"map_cannot_get_user_location": "Impossible d'obtenir la localisation de l'utilisateur",
|
||||
"map_location_picker_page_use_location": "Utiliser ma position",
|
||||
"map_location_picker_page_use_location": "Utiliser cette position",
|
||||
"map_location_service_disabled_content": "Le service de localisation doit être activé pour afficher les médias de votre emplacement actuel. Souhaitez-vous l'activer maintenant ?",
|
||||
"map_location_service_disabled_title": "Service de localisation désactivé",
|
||||
"map_marker_for_image": "Marqueur de carte pour une image prise à {city}, {country}",
|
||||
@@ -1529,6 +1541,7 @@
|
||||
"new_album": "Nouvel Album",
|
||||
"new_api_key": "Nouvelle clé API",
|
||||
"new_feature": "Nouvelle fonctionnalité",
|
||||
"new_passkey": "Nouvelle clé d'accès",
|
||||
"new_password": "Nouveau mot de passe",
|
||||
"new_person": "Nouvelle personne",
|
||||
"new_pin_code": "Nouveau code PIN",
|
||||
@@ -1641,6 +1654,8 @@
|
||||
"partner_sharing": "Partage avec les partenaires",
|
||||
"partners": "Partenaires",
|
||||
"partners_description": "Partager vos photos et vos vidéos avec d'autres utilisateurs",
|
||||
"passkeys": "{count, plural, one {Clé d'accès} other {Clés d'accès}}",
|
||||
"passkeys_not_supported": "Les clés d'accès ne sont pas prises en charge par ce navigateur",
|
||||
"password": "Mot de passe",
|
||||
"password_does_not_match": "Les mots de passe ne correspondent pas",
|
||||
"password_required": "Mot de passe obligatoire",
|
||||
@@ -1825,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, one {# supprimé} other {# supprimés}} des favoris",
|
||||
"removed_from_stack": "Supprimer le média de la pile",
|
||||
"removed_memory": "Souvenir supprimé",
|
||||
"removed_passkey": "Clé d'accès supprimée : {name}",
|
||||
"removed_tagged_assets": "Étiquette supprimée de {count, plural, one {# média} other {# médias}}",
|
||||
"rename": "Renommer",
|
||||
"repository": "Dépôt",
|
||||
@@ -1986,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Si activé, vous pouvez naviguer vers l'image précédente / suivante en appuyant sur le quart le plus à gauche / à droite de l'écran.",
|
||||
"setting_image_navigation_enable_title": "Appuyer pour naviguer",
|
||||
"setting_image_navigation_title": "Navigation dans les images",
|
||||
"setting_image_viewer_help": "Le visualiseur de détails charge d'abord la petite miniature, puis l'aperçu de taille moyenne (s'il est activé), enfin l'original (s'il est activé).",
|
||||
"setting_image_viewer_help": "Le visualiseur de détails charge d'abord la petite miniature, puis l'aperçu de taille moyenne, enfin l'original (s'il est activé).",
|
||||
"setting_image_viewer_original_subtitle": "Activez cette option pour charger l'image en résolution originale (fichier volumineux !). Désactiver pour réduire l'utilisation des données (réseau et cache de l'appareil).",
|
||||
"setting_image_viewer_original_title": "Charger l'image originale",
|
||||
"setting_image_viewer_preview_subtitle": "Activer pour charger une image de résolution moyenne. Désactiver pour charger directement l'original ou utiliser uniquement la miniature.",
|
||||
"setting_image_viewer_preview_title": "Charger l'image d'aperçu",
|
||||
"setting_languages_apply": "Appliquer",
|
||||
"setting_languages_subtitle": "Changer la langue de l'application",
|
||||
"setting_notifications_notify_minutes": "{count} minutes",
|
||||
@@ -2010,8 +2024,9 @@
|
||||
"share_everyone": "Partager tout le monde",
|
||||
"share_everyone_description": "Donner à {user} accès à toutes vos personnes.",
|
||||
"share_link": "Partager le lien",
|
||||
"share_logs": "Partager les journaux",
|
||||
"share_original": "Utiliser l'originale (grand)",
|
||||
"share_preview": "Utiliser la miniature (petite)",
|
||||
"share_preview": "Utiliser l'aperçu (petit)",
|
||||
"share_quality_body": "Appuyez longtemps sur le bouton partager pour choisir la qualité d'image avant de partager.",
|
||||
"share_quality_title": "Choisissez votre qualité d'envoi",
|
||||
"share_with": "Partager l'accès avec",
|
||||
@@ -2061,7 +2076,6 @@
|
||||
"shared_link_password_description": "Demander un mot de passe pour accéder à ce lien partagé",
|
||||
"shared_links": "Liens partagés",
|
||||
"shared_links_description": "Partager les photos et vidéos via un lien",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# photos et vidéos partagées.}}",
|
||||
"shared_with": "Partagé avec",
|
||||
"shared_with_count": "Partagé ({count})",
|
||||
"shared_with_me": "Partagé avec moi",
|
||||
@@ -2189,6 +2203,8 @@
|
||||
"theme": "Thème",
|
||||
"theme_selection": "Sélection du thème",
|
||||
"theme_selection_description": "Ajuster automatiquement le thème clair ou sombre via les préférences système",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Faites défiler en continu en glissant la barre de défilement au lieu de passer à plusieurs mois",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Nettoyage fluide de la timeline",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Afficher l'indicateur de stockage sur les tuiles des éléments",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Nombre de médias par ligne ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Appliquer la couleur principale sur les surfaces d'arrière-plan.",
|
||||
@@ -2304,7 +2320,7 @@
|
||||
"user": "Utilisateur",
|
||||
"user_has_been_deleted": "Cet utilisateur à été supprimé.",
|
||||
"user_id": "ID Utilisateur",
|
||||
"user_liked": "{user} a aimé {type, select, photo {cette photo} video {cette vidéo} asset {ce média} other {ceci}}",
|
||||
"user_liked": "{user} a aimé {type, select, image {cette photo} video {cette vidéo} other {ceci}}",
|
||||
"user_pin_code_settings": "Code PIN",
|
||||
"user_pin_code_settings_description": "Gérer votre code PIN",
|
||||
"user_privacy": "Vie privée pour l'utilisateur",
|
||||
@@ -2340,6 +2356,7 @@
|
||||
"view_group": "Voir le groupe",
|
||||
"view_in_timeline": "Voir dans la vue chronologique",
|
||||
"view_link": "Voir le lien",
|
||||
"view_more": "Voir plus",
|
||||
"view_name": "Vue",
|
||||
"view_next_asset": "Voir le média suivant",
|
||||
"view_previous_asset": "Voir le média précédent",
|
||||
|
||||
+24
-6
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Iarratas Ama",
|
||||
"oauth_timeout_description": "Am críochnaithe d'iarratais i milleasoicindí",
|
||||
"ocr_job_description": "Úsáid foghlaim meaisín chun téacs in íomhánna a aithint",
|
||||
"passkey_additional_domains": "Fearainn bhreise",
|
||||
"passkey_additional_domains_description": "Fearainn bhreise iontaofa (iarratais ó bhunús gaolmhar). Ní oibreoidh siad seo ach amháin má tá rochtain ar fhearann an eochair phas (passkey) chomh maith.",
|
||||
"passkey_domain": "Fearann eochrach pas",
|
||||
"passkey_domain_description": "Fearann a úsáidtear le haghaidh eochracha rochtana (páirtí ag brath). Fág bán é chun é a dhíorthú ón gceanntásc tionscnaimh. Má athraítear an luach seo, ní bheidh na heochracha rochtana atá ann cheana inúsáidte a thuilleadh.",
|
||||
"passkey_enable_description": "Logáil isteach le heochair phas",
|
||||
"passkey_settings": "Logáil Isteach Eochair-Phas",
|
||||
"passkey_settings_description": "Bainistigh socruithe logála isteach le heochracha pas",
|
||||
"password_enable_description": "Logáil isteach le ríomhphost agus pasfhocal",
|
||||
"password_settings": "Pasfhocal Logáil Isteach",
|
||||
"password_settings_description": "Bainistigh socruithe logála isteach le pasfhocal",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Scrios Cúltaca Amháin",
|
||||
"delete_local_dialog_ok_force": "Scrios Ar Aon Slí",
|
||||
"delete_others": "Scrios cinn eile",
|
||||
"delete_passkey": "Scrios eochair phas",
|
||||
"delete_passkey_prompt": "An bhfuil tú cinnte gur mian leat an eochair phas seo a scriosadh?",
|
||||
"delete_permanently": "Scrios go buan",
|
||||
"delete_permanently_action_prompt": "{count} scriosta go buan",
|
||||
"delete_shared_link": "Scrios nasc comhroinnte",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "suíomh {count} curtha in eagar",
|
||||
"edit_location_dialog_title": "Suíomh",
|
||||
"edit_name": "Cuir ainm in eagar",
|
||||
"edit_passkey": "Cuir pas-eochair in eagar",
|
||||
"edit_people": "Cuir daoine in eagar",
|
||||
"edit_person": "Cuir duine in eagar",
|
||||
"edit_tag": "Cuir an clib in eagar",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Íomhá}} tógtha i {city}, {country} le {person1}, {person2}, agus {person3} ar {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} tógtha i {city}, {country} le {person1}, {person2}, agus {additionalCount, number} daoine eile ar {date}",
|
||||
"immich_logo": "Lógó Immich",
|
||||
"immich_web_interface": "Comhéadan Gréasáin Immich",
|
||||
"import_from_json": "Iompórtáil ó JSON",
|
||||
"import_path": "Cosán allmhairithe",
|
||||
"in_albums": "I {count, plural, one {# albam} other {# albaim}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Deireanach",
|
||||
"last_months": "{count, plural, one {An mhí seo caite} other {An # mhí seo caite}}",
|
||||
"last_seen": "Chonaic mé an uair dheireanach",
|
||||
"last_used": "Úsáideadh go deireanach",
|
||||
"latest_version": "Leagan is Déanaí",
|
||||
"latitude": "Domhanleithead",
|
||||
"leave": "Fág",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Tá logáil isteach díchumasaithe",
|
||||
"login_password_changed_error": "Tharla earráid agus do phasfhocal á nuashonrú",
|
||||
"login_password_changed_success": "Nuashonraíodh an focal faire go rathúil",
|
||||
"login_with_passkey": "Logáil isteach le heochair phas",
|
||||
"logout_all_device_confirmation": "An bhfuil tú cinnte gur mian leat logáil amach as gach gléas?",
|
||||
"logout_this_device_confirmation": "An bhfuil tú cinnte gur mian leat logáil amach as an ngléas seo?",
|
||||
"logs": "Logaí",
|
||||
@@ -1401,6 +1412,7 @@
|
||||
"manage_media_access_title": "Rochtain Bainistíochta Meán",
|
||||
"manage_oauth_account": "Bainistigh Cuntas OAuth",
|
||||
"manage_people": "Daoine a bhainistiú",
|
||||
"manage_people_access_description_v2": "Tabhair rochtain d’úsáideoirí eile ar {count, plural, one {an duine seo} other {do dhaoine}}, ionas gur féidir leo iad a fheiceáil nó a bhainistiú thar do cheann. Ní roinntear aon sócmhainní leis an ngníomh seo.",
|
||||
"manage_person_access": "Bainistigh rochtain",
|
||||
"manage_sharing_with_other_users": "Bainistigh comhroinnt le húsáideoirí eile",
|
||||
"manage_sharing_with_partners": "Bainistigh comhroinnt le comhpháirtithe",
|
||||
@@ -1409,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Bainistigh d’eochracha API",
|
||||
"manage_your_devices": "Bainistigh do ghléasanna logáilte isteach",
|
||||
"manage_your_oauth_connection": "Bainistigh do nasc OAuth",
|
||||
"manage_your_passkeys": "Bainistigh do chuid eochracha pas",
|
||||
"map": "Léarscáil",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Gan aon ghrianghraif sa cheantar seo} one {# grianghraf} other {# grianghraf}}",
|
||||
"map_cannot_get_user_location": "Ní féidir suíomh an úsáideora a fháil",
|
||||
@@ -1528,6 +1541,7 @@
|
||||
"new_album": "Albam Nua",
|
||||
"new_api_key": "Eochair API Nua",
|
||||
"new_feature": "Gné Nua",
|
||||
"new_passkey": "Eochair phas nua",
|
||||
"new_password": "Pasfhocal nua",
|
||||
"new_person": "Duine nua",
|
||||
"new_pin_code": "Cód PIN nua",
|
||||
@@ -1640,6 +1654,8 @@
|
||||
"partner_sharing": "Comhroinnt Chomhpháirtíochta",
|
||||
"partners": "Comhpháirtithe",
|
||||
"partners_description": "Comhroinn do chuid grianghraf agus físeán le húsáideoirí eile",
|
||||
"passkeys": "{count, plural, one {Eochair phas} other {Eochracha phas}}",
|
||||
"passkeys_not_supported": "Ní thacaíonn an brabhsálaí seo le pas-eochracha",
|
||||
"password": "Pasfhocal",
|
||||
"password_does_not_match": "Ní hionann an focal faire",
|
||||
"password_required": "Pasfhocal Riachtanach",
|
||||
@@ -1824,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {Baineadh #}} ó ceanáin",
|
||||
"removed_from_stack": "Bhain mé an sócmhainn den charn",
|
||||
"removed_memory": "Cuimhne bainte",
|
||||
"removed_passkey": "Eochair rochtana bainte: {name}",
|
||||
"removed_tagged_assets": "Baineadh an clib as {count, plural, one {# sócmhainn} other {# sócmhainní}}",
|
||||
"rename": "Athainmnigh",
|
||||
"repository": "Stór",
|
||||
@@ -1985,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Más cumasaithe é, is féidir leat nascleanúint a dhéanamh chuig an íomhá roimhe seo/chéad íomhá eile trí thapáil ar an gceathrú is faide ar chlé/ar dheis den scáileán.",
|
||||
"setting_image_navigation_enable_title": "Tapáil chun nascleanúint a dhéanamh",
|
||||
"setting_image_navigation_title": "Nascleanúint Íomhá",
|
||||
"setting_image_viewer_help": "Lódálann an breathnóir sonraí an mionsamhail bheag ar dtús, ansin luchtaíonn sé an réamhamharc meánmhéide (más cumasaithe), agus ar deireadh luchtaíonn sé an bunleagan (más cumasaithe).",
|
||||
"setting_image_viewer_help": "Lódálann an breathnóir mionsonraí an mioníomhá bheag ar dtús, ansin an réamhamharc meánmhéide, agus ar deireadh an bunleagan (má tá sé cumasaithe).",
|
||||
"setting_image_viewer_original_subtitle": "Cumasaigh chun an íomhá lántaifigh bhunaidh (mór!) a luchtú. Díchumasaigh chun úsáid sonraí a laghdú (ar an líonra agus ar an taisce ar an ngléas araon).",
|
||||
"setting_image_viewer_original_title": "Luchtaigh an íomhá bhunaidh",
|
||||
"setting_image_viewer_preview_subtitle": "Cumasaigh chun íomhá meántaifigh a luchtú. Díchumasaigh chun an bunleagan a luchtú go díreach nó chun an mionsamhail amháin a úsáid.",
|
||||
"setting_image_viewer_preview_title": "Luchtaigh íomhá réamhamhairc",
|
||||
"setting_languages_apply": "Cuir isteach",
|
||||
"setting_languages_subtitle": "Athraigh teanga an aip",
|
||||
"setting_notifications_notify_minutes": "{count} nóiméad",
|
||||
@@ -2009,8 +2024,9 @@
|
||||
"share_everyone": "Roinn le gach duine é",
|
||||
"share_everyone_description": "Tabhair rochtain do {user} ar do chuid daoine go léir.",
|
||||
"share_link": "Comhroinn an Nasc",
|
||||
"share_logs": "Comhroinn Logaí",
|
||||
"share_original": "Úsáid an bunleagan (mór)",
|
||||
"share_preview": "Úsáid mionsamhail (beag)",
|
||||
"share_preview": "Bain úsáid as an réamhamharc (beag)",
|
||||
"share_quality_body": "Brúigh agus coinnigh an cnaipe comhroinnte chun cáilíocht na híomhá a roghnú sula roinneann tú.",
|
||||
"share_quality_title": "Roghnaigh do cháilíocht roinnte",
|
||||
"share_with": "Roinn rochtain le",
|
||||
@@ -2060,7 +2076,6 @@
|
||||
"shared_link_password_description": "Éiligh pasfhocal chun rochtain a fháil ar an nasc comhroinnte seo",
|
||||
"shared_links": "Naisc chomhroinnte",
|
||||
"shared_links_description": "Roinn grianghraif agus físeáin le nasc",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# grianghraif & físeáin chomhroinnte.}}",
|
||||
"shared_with": "Roinnte le",
|
||||
"shared_with_count": "Roinnte ({count})",
|
||||
"shared_with_me": "Roinnte liom",
|
||||
@@ -2188,6 +2203,8 @@
|
||||
"theme": "Téama",
|
||||
"theme_selection": "Rogha téama",
|
||||
"theme_selection_description": "Socraigh an téama go huathoibríoch go geal nó dorcha bunaithe ar rogha chórais do bhrabhsálaí",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Scrollaigh go leanúnach agus an barra scrollaithe á tharraingt, in áit léim go míonna ar leith",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Scrobáil líne ama go réidh",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Taispeáin táscaire stórála ar thíleanna sócmhainní",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Líon na sócmhainní in aghaidh an ró ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Cuir an dath príomhúil i bhfeidhm ar dhromchlaí cúlra.",
|
||||
@@ -2339,6 +2356,7 @@
|
||||
"view_group": "Féach ar an ngrúpa",
|
||||
"view_in_timeline": "Féach san amlíne",
|
||||
"view_link": "Féach ar an nasc",
|
||||
"view_more": "Féach tuilleadh",
|
||||
"view_name": "Amharc",
|
||||
"view_next_asset": "Féach ar an gcéad tsócmhainn eile",
|
||||
"view_previous_asset": "Féach ar an tsócmhainn roimhe seo",
|
||||
|
||||
+30
-9
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "O comando {command} fallou para o traballo: {job}",
|
||||
"force_delete_user_warning": "AVISO: Isto eliminará inmediatamente o usuario e todos os seus activos. Esta acción non se pode desfacer e os ficheiros non se poderán recuperar.",
|
||||
"image_format": "Formato",
|
||||
"image_format_description": "WebP produce ficheiros máis pequenos que JPEG, pero é máis lento de codificar.",
|
||||
"image_format_description": "WebP produce ficheiros máis pequenos que JPEG, pero é máis lento de codificar. JPEG XL é a mellor opción para obter unha compresión de alta calidade, mais non todos os buscadores e aplicacións poden mostralo.",
|
||||
"image_fullsize_description": "Imaxe a tamaño completo con metadatos eliminados, usada ao facer zoom",
|
||||
"image_fullsize_enabled": "Activar a xeración de imaxes a tamaño completo",
|
||||
"image_fullsize_enabled_description": "Xerar imaxe a tamaño completo para formatos non compatibles coa web. Cando \"Preferir vista previa incrustada\" está activado, as vistas previas incrustadas utilízanse directamente sen conversión. Non afecta a formatos compatibles coa web como JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Calidade da vista previa de 1 a 100. Canto máis alto, mellor, pero produce ficheiros máis grandes e pode reducir a capacidade de resposta da aplicación. Establecer un valor baixo pode afectar á calidade da aprendizaxe automática.",
|
||||
"image_preview_title": "Configuración da vista previa",
|
||||
"image_progressive": "Progresivo",
|
||||
"image_progressive_description": "Codifica imaxes JPEG progresivamente para unha visualización con carga gradual. Isto non ten ningún efecto en imaxes WebP.",
|
||||
"image_progressive_description": "Codifica imaxes JPEG progresivamente para unha visualización con carga gradual. Isto non ten ningún efecto en outros formatos.",
|
||||
"image_quality": "Calidade",
|
||||
"image_resolution": "Resolución",
|
||||
"image_resolution_description": "Resolucións máis altas poden preservar máis detalles pero tardan máis en codificarse, teñen tamaños de ficheiro máis grandes e poden reducir a capacidade de resposta da aplicación.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Tempo máximo de espera da solicitude",
|
||||
"oauth_timeout_description": "Tempo máximo de espera para as solicitudes en milisegundos",
|
||||
"ocr_job_description": "Emprega aprendizaxe automática para recoñecer texto en imaxes",
|
||||
"passkey_additional_domains": "Dominios adicionais",
|
||||
"passkey_additional_domains_description": "Dominios adicionais de confianza (solicitudes de orixe relacionadas). Estes só funcionarán se o dominio da clave de acceso tamén é accesible.",
|
||||
"passkey_domain": "Dominio da clave de acceso",
|
||||
"passkey_domain_description": "Dominio empregado para as claves de acceso (parte de confianza). Déixeo en branco para deducilo da cabeceira da orixe. Cambiar este valor fará que as claves de acceso existentes deixen de funcionar.",
|
||||
"passkey_enable_description": "Iniciar sesión cunha contrasinal",
|
||||
"passkey_settings": "Acceso da chave de acceso",
|
||||
"passkey_settings_description": "Xestionar a configuración de inicio de sesión con contrasinal",
|
||||
"password_enable_description": "Iniciar sesión con correo electrónico e contrasinal",
|
||||
"password_settings": "Inicio de sesión con contrasinal",
|
||||
"password_settings_description": "Xestionar a configuración de inicio de sesión con contrasinal",
|
||||
@@ -671,6 +678,7 @@
|
||||
"birthdate_set_description": "A data de nacemento úsase para calcular a idade desta persoa no momento dunha foto.",
|
||||
"birthday_memory_age": "{age, selectordinal, one {#º} two {#º} few {#º} other {#º}} aniversario",
|
||||
"birthday_memory_title": "O aniversario de {name}",
|
||||
"birthday_memory_title_with_age": "Aniversario de {name} · {age, plural, one {# ano de idade} other {# anos de idade}}",
|
||||
"blurred_background": "Fondo borroso",
|
||||
"browse_templates": "Explorar modelos",
|
||||
"bugs_and_feature_requests": "Erros e Solicitudes de Funcións",
|
||||
@@ -872,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Eliminar Só con Copia de Seguridade",
|
||||
"delete_local_dialog_ok_force": "Eliminar Igualmente",
|
||||
"delete_others": "Eliminar outros",
|
||||
"delete_passkey": "Eliminar chave de acceso",
|
||||
"delete_passkey_prompt": "Estás seguro que queres eliminar esta chave de acceso?",
|
||||
"delete_permanently": "Eliminar permanentemente",
|
||||
"delete_permanently_action_prompt": "{count} eliminado(s) permanentemente",
|
||||
"delete_shared_link": "Eliminar ligazón compartida",
|
||||
@@ -941,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} localización(s) editada(s)",
|
||||
"edit_location_dialog_title": "Localización",
|
||||
"edit_name": "Editar nome",
|
||||
"edit_passkey": "Editar chave de acceso",
|
||||
"edit_people": "Editar persoas",
|
||||
"edit_person": "Editar persoa",
|
||||
"edit_tag": "Editar etiqueta",
|
||||
@@ -1238,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Vídeo} other {Imaxe}} tomado/a en {city}, {country} con {person1}, {person2} e {person3} o {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Vídeo} other {Imaxe}} tomado/a en {city}, {country} con {person1}, {person2} e {additionalCount, number} outros/as o {date}",
|
||||
"immich_logo": "Logo de Immich",
|
||||
"immich_web_interface": "Interface Web de Immich",
|
||||
"import_from_json": "Importar desde JSON",
|
||||
"import_path": "Ruta de importación",
|
||||
"in_albums": "En {count, plural, one {# álbum} other {# álbums}}",
|
||||
@@ -1286,6 +1296,7 @@
|
||||
"last": "Último/a",
|
||||
"last_months": "{count, plural, one {O mes pasado} other {Os últimos # meses}}",
|
||||
"last_seen": "Visto por última vez",
|
||||
"last_used": "Empregado por última vez",
|
||||
"latest_version": "Última Versión",
|
||||
"latitude": "Latitude",
|
||||
"leave": "Saír",
|
||||
@@ -1361,6 +1372,7 @@
|
||||
"login_has_been_disabled": "O inicio de sesión foi desactivado",
|
||||
"login_password_changed_error": "Houbo un erro ao actualizar o seu contrasinal",
|
||||
"login_password_changed_success": "Contrasinal actualizado correctamente",
|
||||
"login_with_passkey": "Iniciar sesión ca chave de acceso",
|
||||
"logout_all_device_confirmation": "Está seguro de que quere pechar sesión en todos os dispositivos?",
|
||||
"logout_this_device_confirmation": "Está seguro de que quere pechar sesión neste dispositivo?",
|
||||
"logs": "Rexistros",
|
||||
@@ -1400,6 +1412,7 @@
|
||||
"manage_media_access_title": "Acceso á xestión de medios",
|
||||
"manage_oauth_account": "Administrar conta OAuth",
|
||||
"manage_people": "Xestionar persoas",
|
||||
"manage_people_access_description_v2": "Conceder a outros usuarios o acesso {count, plural, one {a esta persoa} other {as túas persoas}}, permitindo que estes vexan ou fagan alteracións. Esta acción non comparte ningún ficheiro.",
|
||||
"manage_person_access": "Xestionar o acceso",
|
||||
"manage_sharing_with_other_users": "Administrar o uso compartido con outros usuarios",
|
||||
"manage_sharing_with_partners": "Xestionar compartición con compañeiros/as",
|
||||
@@ -1408,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Xestionar as súas claves API",
|
||||
"manage_your_devices": "Xestionar os seus dispositivos con sesión iniciada",
|
||||
"manage_your_oauth_connection": "Xestionar a súa conexión OAuth",
|
||||
"manage_your_passkeys": "Xestuniar as túas chaves de acceso",
|
||||
"map": "Mapa",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Non hai fotos nesta área} one {# foto} other {# fotos}}",
|
||||
"map_cannot_get_user_location": "Non se pode obter a localización do usuario",
|
||||
@@ -1527,6 +1541,7 @@
|
||||
"new_album": "Novo Álbum",
|
||||
"new_api_key": "Nova Chave API",
|
||||
"new_feature": "Nova función",
|
||||
"new_passkey": "Nova chave de acceso",
|
||||
"new_password": "Novo contrasinal",
|
||||
"new_person": "Nova persoa",
|
||||
"new_pin_code": "Novo código PIN",
|
||||
@@ -1639,6 +1654,8 @@
|
||||
"partner_sharing": "Compartición con Compañeiro/a",
|
||||
"partners": "Compañeiros/as",
|
||||
"partners_description": "Comparte as túas fotos e vídeos con outros usuarios",
|
||||
"passkeys": "{count, plural, one {Chave de acceso} other {Chaves de acceso}}",
|
||||
"passkeys_not_supported": "Este navegador non soporta chaves de acceso",
|
||||
"password": "Contrasinal",
|
||||
"password_does_not_match": "O contrasinal non coincide",
|
||||
"password_required": "Requírese Contrasinal",
|
||||
@@ -1823,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {Eliminados #}} de favoritos",
|
||||
"removed_from_stack": "Elemento eliminado da pila",
|
||||
"removed_memory": "Recordo eliminado",
|
||||
"removed_passkey": "Chave de acceso {name} borrada",
|
||||
"removed_tagged_assets": "Etiqueta eliminada de {count, plural, one {# activo} other {# activos}}",
|
||||
"rename": "Renomear",
|
||||
"repository": "Repositorio",
|
||||
@@ -1984,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Se está activado, podes navegar entre as imáxenes seguintes e anteriores ao tocar na parte esquerda e dereita da pantalla.",
|
||||
"setting_image_navigation_enable_title": "Toca para navegar",
|
||||
"setting_image_navigation_title": "Navegación de Imaxes",
|
||||
"setting_image_viewer_help": "O visor de detalles carga primeiro a miniatura pequena, despois carga a vista previa de tamaño medio (se está activada), e finalmente carga o orixinal (se está activado).",
|
||||
"setting_image_viewer_help": "O visor de detalles carga primeiro a miniatura pequena, despois carga a vista previa de tamaño medio, e finalmente carga o orixinal (se está activado).",
|
||||
"setting_image_viewer_original_subtitle": "Activar para cargar a imaxe orixinal a resolución completa (grande!). Desactivar para reducir o uso de datos (tanto na rede como na caché do dispositivo).",
|
||||
"setting_image_viewer_original_title": "Cargar imaxe orixinal",
|
||||
"setting_image_viewer_preview_subtitle": "Activar para cargar unha imaxe de resolución media. Desactivar para cargar directamente o orixinal ou usar só a miniatura.",
|
||||
"setting_image_viewer_preview_title": "Cargar imaxe de vista previa",
|
||||
"setting_languages_apply": "Aplicar",
|
||||
"setting_languages_subtitle": "Cambiar a lingua da aplicación",
|
||||
"setting_notifications_notify_minutes": "{count} minutos",
|
||||
@@ -2008,8 +2024,9 @@
|
||||
"share_everyone": "Compartir con todos",
|
||||
"share_everyone_description": "Dálle a {user} acceso a todas as túas persoas.",
|
||||
"share_link": "Ligazón para Compartir",
|
||||
"share_logs": "Compartir rexistros",
|
||||
"share_original": "Utilizar orixinal (grande)",
|
||||
"share_preview": "Utilizar miniatura (pequena)",
|
||||
"share_preview": "Usar vista previa (pequeña)",
|
||||
"share_quality_body": "Mantén premido o botón de compartir para escoller a calidade da imaxe antes de compartila.",
|
||||
"share_quality_title": "Escolle a calidade da compartición",
|
||||
"share_with": "Compartir o acceso con",
|
||||
@@ -2059,7 +2076,6 @@
|
||||
"shared_link_password_description": "Requirir un contrasinal para acceder a esta ligazón compartida",
|
||||
"shared_links": "Ligazóns compartidas",
|
||||
"shared_links_description": "Compartir fotos e vídeos cunha ligazón",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# fotos e vídeos compartidos.}}",
|
||||
"shared_with": "Compartido con",
|
||||
"shared_with_count": "Compartido ({count})",
|
||||
"shared_with_me": "Compartido comigo",
|
||||
@@ -2187,6 +2203,8 @@
|
||||
"theme": "Tema",
|
||||
"theme_selection": "Selección de tema",
|
||||
"theme_selection_description": "Establecer automaticamente o tema a claro ou escuro baseándose na preferencia do sistema do seu navegador",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Desprazamento continuo ao arrastrar a barra de desprazamento en lugar de axustarse aos meses",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Fregado suave da liña de tempo",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamento nas celas de activos",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Número de activos por fila ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Aplicar cor primaria ás superficies de fondo.",
|
||||
@@ -2227,6 +2245,8 @@
|
||||
"trigger": "Disparador",
|
||||
"trigger_asset_metadata_extraction": "Extracción de metadatos de activos",
|
||||
"trigger_asset_metadata_extraction_description": "Activado cando se extraen os metadatos EXIF dun recurso",
|
||||
"trigger_asset_ocr_extraction": "Extracción de activos empregando OCR",
|
||||
"trigger_asset_ocr_extraction_description": "Activado cando se extrae o texto OCR dun recurso",
|
||||
"trigger_asset_tagged": "Recurso etiquetado",
|
||||
"trigger_asset_tagged_description": "Actívase cando se engade unha etiqueta a un recurso",
|
||||
"trigger_asset_uploaded": "Carga de activos",
|
||||
@@ -2302,7 +2322,7 @@
|
||||
"user": "Usuario",
|
||||
"user_has_been_deleted": "Este usuario foi eliminado.",
|
||||
"user_id": "ID de Usuario",
|
||||
"user_liked": "A {user} gustoulle {type, select, photo {esta foto} video {este vídeo} asset {este activo} other {isto}}",
|
||||
"user_liked": "A {user} gustoulle {type, select, image {esta foto} video {este vídeo} other {isto}}",
|
||||
"user_pin_code_settings": "Código PIN",
|
||||
"user_pin_code_settings_description": "Xestionar seu código PIN",
|
||||
"user_privacy": "Privacidade do usuario",
|
||||
@@ -2338,6 +2358,7 @@
|
||||
"view_group": "Ver grupo",
|
||||
"view_in_timeline": "Ver na liña de tempo",
|
||||
"view_link": "Ver ligazón",
|
||||
"view_more": "Ver máis",
|
||||
"view_name": "Vista",
|
||||
"view_next_asset": "Ver seguinte activo",
|
||||
"view_previous_asset": "Ver activo anterior",
|
||||
|
||||
@@ -1077,7 +1077,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Bild}} ufgnoo in {city}, {country} mit {person1}, {person2} und {person3} am {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Bild}} ufgnoo in {city}, {country} mit {person1}, {person2} und {additionalCount, number} andere am {date}",
|
||||
"immich_logo": "Immich-Logo",
|
||||
"immich_web_interface": "Immich-Web-Oberflächi",
|
||||
"import_from_json": "Us JSON importierä",
|
||||
"import_path": "Importpfad",
|
||||
"in_albums": "In {count, plural, one {# Album} other {# Albe}}",
|
||||
|
||||
+26
-6
@@ -671,6 +671,7 @@
|
||||
"birthdate_set_description": "תאריך לידה משמש לחישוב הגיל של האדם הזה בזמן תצלום.",
|
||||
"birthday_memory_age": "{age, selectordinal, other {יום ההולדת ה־#}}",
|
||||
"birthday_memory_title": "יום ההולדת של {name}",
|
||||
"birthday_memory_title_with_age": "יום ההולדת של {name} · גיל {age, plural, one {#} other {#}}",
|
||||
"blurred_background": "רקע מטושטש",
|
||||
"browse_templates": "עיון בתבניות",
|
||||
"bugs_and_feature_requests": "באגים & בקשות לתכונות",
|
||||
@@ -1238,7 +1239,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {סרטון שצולם} other {תמונה שצולמה}} ב-{city}, {country} עם {person1}, {person2}, ו-{person3} ב-{date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {סרטון שצולם} other {תמונה שצולמה}} ב-{city}, {country} עם {person1}, {person2}, ו-{additionalCount, number} אחרים ב-{date}",
|
||||
"immich_logo": "הלוגו של Immich",
|
||||
"immich_web_interface": "ממשק האינטרנט של Immich",
|
||||
"import_from_json": "ייבוא מ-JSON",
|
||||
"import_path": "נתיב ייבוא",
|
||||
"in_albums": "ב{count, plural, one {אלבום #} other {# אלבומים}}",
|
||||
@@ -1399,6 +1399,9 @@
|
||||
"manage_media_access_subtitle": "אפשר לאפליקציית Immich לנהל ולהזיז קבצי מדיה.",
|
||||
"manage_media_access_title": "גישה לניהול מדיה",
|
||||
"manage_oauth_account": "ניהול חשבון OAuth",
|
||||
"manage_people": "ניהול אנשים",
|
||||
"manage_people_access_description_v2": "מתן גישה למשתמשים אחרים אל {count, plural, one {האדם הזה} other {האנשים שלך}}, כך שיוכלו להציג או לנהל אותם בשמך. פעולה זו אינה משתפת תמונות.",
|
||||
"manage_person_access": "ניהול גישה",
|
||||
"manage_sharing_with_other_users": "ניהול שיתוף עם משתמשים אחרים",
|
||||
"manage_sharing_with_partners": "ניהול שיתוף עם שותפים",
|
||||
"manage_the_app_settings": "ניהול הגדרות האפליקציה",
|
||||
@@ -1551,6 +1554,7 @@
|
||||
"no_exif_info_available": "אין מידע זמין על מטא-נתונים (exif)",
|
||||
"no_explore_results_message": "העלה תמונות נוספות כדי לחקור את האוסף שלך.",
|
||||
"no_favorites_message": "הוסף מועדפים כדי למצוא במהירות את התמונות והסרטונים הכי טובים שלך",
|
||||
"no_filter": "ללא סינון",
|
||||
"no_libraries_message": "צור ספרייה חיצונית כדי לראות את התמונות והסרטונים שלך",
|
||||
"no_local_assets_found": "לא נמצאו תמונות עם Checksum זהה",
|
||||
"no_locked_photos_message": "תמונות וסרטונים בתיקייה הנעולה מוסתרים ולא יופיעו בזמן הגלישה או החיפוש בספרייה שלך.",
|
||||
@@ -1635,6 +1639,7 @@
|
||||
"partner_page_stop_sharing_content": "{partner} לא יוכל יותר לגשת לתמונות שלך.",
|
||||
"partner_sharing": "שיתוף שותפים",
|
||||
"partners": "שותפים",
|
||||
"partners_description": "שיתוף התמונות והסרטונים שלך עם משתמשים אחרים",
|
||||
"password": "סיסמה",
|
||||
"password_does_not_match": "הסיסמה אינה תואמת",
|
||||
"password_required": "נדרשת סיסמה",
|
||||
@@ -1651,6 +1656,7 @@
|
||||
"paused": "מושהה",
|
||||
"pending": "ממתין",
|
||||
"people": "אנשים",
|
||||
"people_cluster_group": "קבוצת אשכול אנשים",
|
||||
"people_count": "{count, plural, one {אדם #} other {# אנשים}}",
|
||||
"people_edits_count": "{count, plural, one {אדם # נערך} other {# אנשים נערכו}}",
|
||||
"people_feature_description": "עיון בתמונות וסרטונים שקובצו על ידי אנשים",
|
||||
@@ -1669,8 +1675,15 @@
|
||||
"person_age_year_months": "בגיל שנה ו{months, plural, one {חודש #} other {# חודשים}}",
|
||||
"person_age_years": "בגיל {years, plural, one {שנה} other {# שנים}}",
|
||||
"person_birthdate": "נולד בתאריך {date}",
|
||||
"person_edit_only_change_for_me": "שינוי רק עבורי",
|
||||
"person_edit_only_change_for_me_description": "סמן כדי להחיל את השינויים רק על המשתמש שלך",
|
||||
"person_hidden": "{name}{hidden, select, true { (מוסתר)} other {}}",
|
||||
"person_recognized": "זוהה אדם",
|
||||
"person_share_no_users": "כל משתמש בקבוצת האשכול של האנשים שלך כבר יש לו גישה לאדם הזה.",
|
||||
"person_update_strategy": "החלת השינויים על",
|
||||
"person_update_strategy_description": "אילו אנשים לעדכן כאשר משנים שם או תאריך לידה",
|
||||
"person_update_strategy_everyone": "כל מי שיש לו גישה משותפת",
|
||||
"person_update_strategy_self": "רק אני",
|
||||
"photo_shared_all_users": "נראה ששיתפת את התמונות שלך עם כל המשתמשים או שאין לך אף משתמש לשתף איתו.",
|
||||
"photos": "תמונות",
|
||||
"photos_and_videos": "תמונות & סרטונים",
|
||||
@@ -1753,6 +1766,7 @@
|
||||
"query_asset_id": "שאילתה על מזהה הפריט",
|
||||
"queue_status": "{count} מתוך {total} עומדים בתור",
|
||||
"rate_asset": "דירוג תמונה",
|
||||
"rate_asset_description": "השתמש במקשים 1 עד 5 כדי לדרג תמונה במהירות, וב־0 כדי לנקות את הדירוג",
|
||||
"rating": "דירוג כוכב",
|
||||
"rating_clear": "נקה דירוג",
|
||||
"rating_count": "{count, plural, =0 {ללא דירוג} one {כוכב אחד} other {# כוכבים}}",
|
||||
@@ -1971,11 +1985,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "אם הגדרה זו מופעלת, ניתן לנווט לתמונה הקודמת/הבאה על ידי הקשה על הרבע הימני/השמאלי ביותר של המסך.",
|
||||
"setting_image_navigation_enable_title": "הקשה לניווט",
|
||||
"setting_image_navigation_title": "ניווט תמונה",
|
||||
"setting_image_viewer_help": "מציג הפרטים טוען את התמונה הממוזערת הקטנה קודם, לאחר מכן טוען את התצוגה המקדימה בגודל בינוני (אם מופעל), לבסוף טוען את המקורית (אם מופעל).",
|
||||
"setting_image_viewer_help": "מציג הפרטים טוען תחילה את התמונה הממוזערת הקטנה, לאחר מכן את התצוגה המקדימה בגודל בינוני, ולבסוף את המקור (אם מופעל).",
|
||||
"setting_image_viewer_original_subtitle": "אפשר לטעון את התמונה המקורית ברזלוציה מלאה (גדולה!). השבת כדי להקטין שימוש בנתונים (גם בשרת וגם בזיכרון המטמון שבמכשיר).",
|
||||
"setting_image_viewer_original_title": "טען תמונה מקורית",
|
||||
"setting_image_viewer_preview_subtitle": "אפשר לטעון תמונה ברזלוציה בינונית. השבת כדי או לטעון את המקורית או רק להשתמש בתמונה הממוזערת.",
|
||||
"setting_image_viewer_preview_title": "טען תמונת תצוגה מקדימה",
|
||||
"setting_languages_apply": "החל",
|
||||
"setting_languages_subtitle": "שינוי שפת היישום",
|
||||
"setting_notifications_notify_minutes": "{count} דקות",
|
||||
@@ -1990,12 +2002,16 @@
|
||||
"settings_saved": "ההגדרות נשמרו",
|
||||
"setup_pin_code": "הגדר קוד PIN",
|
||||
"share": "שתף",
|
||||
"share_back": "שיתוף חוזר",
|
||||
"share_dialog_preparing": "מכין...",
|
||||
"share_everyone": "שיתוף עם כולם",
|
||||
"share_everyone_description": "מתן גישה ל־{user} לכל האנשים שלך.",
|
||||
"share_link": "שתף קישור",
|
||||
"share_original": "השתמש במקור (גדול)",
|
||||
"share_preview": "השתמש בתמונה ממוזערת (קטנה)",
|
||||
"share_preview": "שימוש בתצוגה מקדימה (קטנה)",
|
||||
"share_quality_body": "לחץ לחיצה ארוכה על כפתור השיתוף כדי לבחור את איכות התמונה לפני השיתוף.",
|
||||
"share_quality_title": "בחר את איכות השיתוף שלך",
|
||||
"share_with": "שיתוף גישה עם",
|
||||
"shared": "משותף",
|
||||
"shared_album_activities_input_disable": "התגובה מושבתת",
|
||||
"shared_album_activity_remove_content": "האם ברצונך למחוק את הפעילות הזאת?",
|
||||
@@ -2003,6 +2019,7 @@
|
||||
"shared_album_section_people_action_error": "שגיאה בעזיבה/הסרה מאלבום",
|
||||
"shared_album_section_people_title": "אנשים",
|
||||
"shared_by": "משותף על ידי",
|
||||
"shared_by_me": "משותף על ידי",
|
||||
"shared_by_user": "משותף על ידי {user}",
|
||||
"shared_by_you": "משותף על ידך",
|
||||
"shared_from_partner": "תמונות מאת {partner}",
|
||||
@@ -2041,7 +2058,8 @@
|
||||
"shared_link_password_description": "דרוש סיסמה כדי לגשת לקישור המשותף הזה",
|
||||
"shared_links": "קישורים משותפים",
|
||||
"shared_links_description": "שתף תמונות וסרטונים עם קישור",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# תמונות וסרטונים משותפים.}}",
|
||||
"shared_with": "משותף עם",
|
||||
"shared_with_count": "משותף ({count})",
|
||||
"shared_with_me": "משותף איתי",
|
||||
"shared_with_partner": "משותף עם {partner}",
|
||||
"sharing": "שיתוף",
|
||||
@@ -2125,6 +2143,7 @@
|
||||
"stop_motion_photo": "עצור תמונה עם תנועה",
|
||||
"stop_photo_sharing": "להפסיק לשתף את התמונות שלך?",
|
||||
"stop_photo_sharing_description": "{partner} לא יוכל לגשת לתמונות שלך יותר.",
|
||||
"stop_sharing_person_with_user": "הפסקת השיתוף של האדם הזה עם המשתמש הזה",
|
||||
"stop_sharing_photos_with_user": "הפסק לשתף את התמונות שלך עם משתמש זה",
|
||||
"storage": "שטח אחסון",
|
||||
"storage_label": "תווית אחסון",
|
||||
@@ -2317,6 +2336,7 @@
|
||||
"view_group": "הצג קבוצה",
|
||||
"view_in_timeline": "ראה בציר הזמן",
|
||||
"view_link": "הצג קישור",
|
||||
"view_more": "הצגת עוד",
|
||||
"view_name": "הצג",
|
||||
"view_next_asset": "הצג את התמונה הבאה",
|
||||
"view_previous_asset": "הצג את התמונה הקודמת",
|
||||
|
||||
+15
-14
@@ -5,17 +5,17 @@
|
||||
"account_settings": "खाता सेटिंग्स",
|
||||
"acknowledge": "स्वीकार करें",
|
||||
"action": "कार्रवाई",
|
||||
"action_common_update": "अद्यतन",
|
||||
"actions": "कार्यवाहियां",
|
||||
"active": "सक्रिय",
|
||||
"active_count": "सक्रिय: {count}",
|
||||
"action_common_update": "अपडेट",
|
||||
"actions": "एक्शन्स",
|
||||
"active": "एक्टिव",
|
||||
"active_count": "एक्टिव: {count}",
|
||||
"activity": "गतिविधि",
|
||||
"add": "डालें",
|
||||
"add_a_description": "एक विवरण डालें",
|
||||
"add_a_location": "एक स्थान डालें",
|
||||
"add": "जोड़ें",
|
||||
"add_a_description": "विवरण डालें",
|
||||
"add_a_location": "स्थान डालें",
|
||||
"add_a_name": "नाम डालें",
|
||||
"add_a_title": "एक शीर्षक डालें",
|
||||
"add_action": "कार्रवाई डालें",
|
||||
"add_a_title": "शीर्षक डालें",
|
||||
"add_action": "ऐक्शन जोड़ें",
|
||||
"add_assets": "एसेट्स जोड़ें",
|
||||
"add_birthday": "अपने जन्मदिन का उल्लेख करें",
|
||||
"add_endpoint": "endpoint डालें",
|
||||
@@ -30,6 +30,7 @@
|
||||
"add_to_album_bottom_sheet_added": "{album} में डालें",
|
||||
"add_to_album_bottom_sheet_already_exists": "{album} में पहले से है",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "कुछ स्थानीय एसेट एल्बम में नहीं जोड़े जा सके",
|
||||
"add_to_album_item_count": "एल्बम में {count, plural, one {# आइटम} other {# आइटम्स}} जोड़ें",
|
||||
"add_to_albums": "एकाधिक एल्बम में डाले",
|
||||
"add_to_albums_count": "एल्बमों में डालें ({count})",
|
||||
"add_to_bottom_bar": "इसमें जोड़ें",
|
||||
@@ -63,7 +64,7 @@
|
||||
"cleared_jobs": "{job}: के लिए कार्य साफ़ कर दिए गए",
|
||||
"config_set_by_file": "Config वर्तमान में एक config फ़ाइल द्वारा सेट किया गया है",
|
||||
"confirm_delete_library": "क्या आप वाकई {library} लाइब्रेरी को हटाना चाहते हैं?",
|
||||
"confirm_delete_library_assets": "क्या आप वाकई इस लाइब्रेरी को हटाना चाहते हैं? यह इम्मीच से {count, plural, one {# contained asset} other {all # contained assets}} हटा दिया जाएगा और इसे पूर्ववत नहीं किया जा सकेगा। फ़ाइलें डिस्क पर रहेंगी।",
|
||||
"confirm_delete_library_assets": "क्या आप वाकई इस लाइब्रेरी को हटाना चाहते हैं? यह Immich से {count, plural, one {# contained asset} other {all # contained assets}} हटा दिया जाएगा और इसे पूर्ववत नहीं किया जा सकेगा। फ़ाइलें डिस्क पर रहेंगी।",
|
||||
"confirm_email_below": "पुष्टि करने के लिए नीचे \"{email}\" टाइप करें",
|
||||
"confirm_reprocess_all_faces": "क्या आप वाकई सभी चेहरों को दोबारा संसाधित करना चाहते हैं? इससे नामित लोग भी साफ हो जायेंगे।",
|
||||
"confirm_user_password_reset": "क्या आप वाकई {user} का पासवर्ड रीसेट करना चाहते हैं?",
|
||||
@@ -109,6 +110,10 @@
|
||||
"image_thumbnail_quality_description": "थंबनेल की गुणवत्ता 1-100 तक। उच्चतर बेहतर है, लेकिन बड़ी फ़ाइलें बनाता है और ऐप की प्रतिक्रियाशीलता को कम कर सकता है।",
|
||||
"image_thumbnail_title": "थंबनेल सेटिंग्स",
|
||||
"import_config_from_json_description": "JSON कॉन्फ़िगरेशन फ़ाइल अपलोड करके सिस्टम कॉन्फ़िगरेशन इंपोर्ट करें",
|
||||
"integrity_checks_checksum_files": "चेकसम फाइलें",
|
||||
"integrity_checks_checksum_files_description": "चेकसम जांच कॉन्फ़िगर करें",
|
||||
"integrity_checks_checksum_files_enable_description": "चेकसम जांच चालू करें",
|
||||
"integrity_checks_checksum_files_percentage_limit": "प्रतिशत सीमा",
|
||||
"integrity_checks_checksum_files_time_limit": "समय सीमा",
|
||||
"job_concurrency": "{job} समरूपता",
|
||||
"job_created": "नौकरी बनाई गई",
|
||||
@@ -1131,7 +1136,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} {city}, {country} में {person1}, {person2}, और {person3} के साथ {date} को लिया गया",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} {city}, {country} में {person1}, {person2}, और {additionalCount, number} अन्य लोगों के साथ {date} को लिया गया",
|
||||
"immich_logo": "Immich लोगो",
|
||||
"immich_web_interface": "इमिच वेब इंटरफ़ेस",
|
||||
"import_from_json": "JSON से आयात करें",
|
||||
"import_path": "आयात पथ",
|
||||
"in_albums": "{count, plural, one {# album} other {# albums}} में",
|
||||
@@ -1757,8 +1761,6 @@
|
||||
"setting_image_viewer_help": "डिटेल व्यूअर पहले छोटा थंबनेल लोड करता है, फिर मीडियम-साइज़ प्रीव्यू लोड करता है (अगर इनेबल है), और आखिर में ओरिजिनल लोड करता है (अगर इनेबल है)।",
|
||||
"setting_image_viewer_original_subtitle": "ओरिजिनल फुल-रिज़ॉल्यूशन इमेज (बड़ी!) लोड करने के लिए इनेबल करें। डेटा का इस्तेमाल कम करने के लिए डिसेबल करें (नेटवर्क और डिवाइस कैश दोनों)।",
|
||||
"setting_image_viewer_original_title": "मूल छवि लोड करें",
|
||||
"setting_image_viewer_preview_subtitle": "मीडियम-रिज़ॉल्यूशन इमेज लोड करने के लिए चालू करें। ओरिजिनल इमेज को सीधे लोड करने या सिर्फ़ थंबनेल इस्तेमाल करने के लिए बंद करें।",
|
||||
"setting_image_viewer_preview_title": "पूर्वावलोकन छवि लोड करें",
|
||||
"setting_languages_apply": "आवेदन करना",
|
||||
"setting_languages_subtitle": "ऐप की भाषा बदलें",
|
||||
"setting_notifications_notify_minutes": "{count} मिनट",
|
||||
@@ -1818,7 +1820,6 @@
|
||||
"shared_link_password_description": "इस शेयर किए गए लिंक को एक्सेस करने के लिए पासवर्ड ज़रूरी है",
|
||||
"shared_links": "साझा किए गए लिंक",
|
||||
"shared_links_description": "लिंक के साथ फ़ोटो और वीडियो शेयर करें",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# साझा फ़ोटो और वीडियो}}",
|
||||
"shared_with_me": "मेरे साथ साझा किया गया",
|
||||
"shared_with_partner": "{partner} के साथ शेयर किया गया",
|
||||
"sharing": "शेयरिंग",
|
||||
|
||||
@@ -1213,7 +1213,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} snimljeno u {city}, {country} s {person1}, {person2} i {person3} {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} snimljeno u {city}, {country} s {person1}, {person2} i {additionalCount, number} drugih {date}",
|
||||
"immich_logo": "Immich Logo",
|
||||
"immich_web_interface": "Immich Web Sučelje",
|
||||
"import_from_json": "Uvoz iz JSON-a",
|
||||
"import_path": "Putanja uvoza",
|
||||
"in_albums": "U {count, plural, one {# album} other {# albuma}}",
|
||||
@@ -1918,8 +1917,6 @@
|
||||
"setting_image_viewer_help": "Preglednik detalja prvo učitava malu sličicu, zatim učitava pregled srednje veličine (ako je omogućen), te na kraju učitava original (ako je omogućen).",
|
||||
"setting_image_viewer_original_subtitle": "Omogućite za učitavanje originalne slike pune rezolucije (velika!). Onemogućite za smanjenje potrošnje podataka (i mrežne i na predmemoriji uređaja).",
|
||||
"setting_image_viewer_original_title": "Učitaj originalnu sliku",
|
||||
"setting_image_viewer_preview_subtitle": "Omogućite za učitavanje slike srednje rezolucije. Onemogućite za izravno učitavanje originala ili korištenje samo sličice.",
|
||||
"setting_image_viewer_preview_title": "Učitaj sliku za pregled",
|
||||
"setting_languages_apply": "Primijeni",
|
||||
"setting_languages_subtitle": "Promijeni jezik aplikacije",
|
||||
"setting_notifications_notify_minutes": "{count} minuta",
|
||||
@@ -1985,7 +1982,6 @@
|
||||
"shared_link_password_description": "Zahtjevaj loziku za pristup ovom dijeljenom linku",
|
||||
"shared_links": "Dijeljene poveznice",
|
||||
"shared_links_description": "Podijelite fotografije i videozapise putem poveznice",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, one {# podijeljena fotografija ili videozapis.} few {# podijeljene fotografije i videozapisa.} other {# podijeljenih fotografija i videozapisa.}}",
|
||||
"shared_with_me": "Podijeljeno sa mnom",
|
||||
"shared_with_partner": "Podijeljeno s {partner}",
|
||||
"sharing": "Dijeljenje",
|
||||
|
||||
+29
-9
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "A(z) {command} parancs nem sikerült a következő feladathoz: {job}",
|
||||
"force_delete_user_warning": "FIGYELEM: Ez azonnal eltávolítja a felhasználót és az összes hozzá tartozó elemet. A művelet nem visszavonható és a fájlokat sem lehet később visszanyerni.",
|
||||
"image_format": "Formátum",
|
||||
"image_format_description": "WebP a JPEG-nél kisebb fájlokat készít, de lassabban.",
|
||||
"image_format_description": "WebP a JPEG-nél kisebb fájlokat készít, de lassabban. A JPEG XL a legjobb opció a magas minőségű tömörítéshez, de nem minden böngésző és app tudja megjeleníteni.",
|
||||
"image_fullsize_description": "Teljes méretű kép eltávolított metaadatokkal, nagyításkor használva",
|
||||
"image_fullsize_enabled": "Teljes méretű képgenerálás engedélyezése",
|
||||
"image_fullsize_enabled_description": "Teljes méretű kép generálása nem webbarát formátumokhoz. Ha a „Beágyazott előnézet preferálása” engedélyezve van, a beágyazott előnézetek közvetlenül, átalakítás nélkül kerülnek felhasználásra. Nem érinti a webbarát formátumokat, például a JPEG-et.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Előnézet minősége 1-100 között. A magasabb szám jobb minőséget, de nagyobb fájlokat eredményez és belassíthatja az alkalmazást. Túl alacsony érték befolyásolhatja a gépi tanulás pontosságát.",
|
||||
"image_preview_title": "Előnézet beállítások",
|
||||
"image_progressive": "Progresszív",
|
||||
"image_progressive_description": "JPEG képek progresszív kódolása a fokozatos megjelenítéshez betöltéskor. Nincs hatással a WebP képekre.",
|
||||
"image_progressive_description": "JPEG képek progresszív kódolása a fokozatos megjelenítéshez betöltéskor. Nincs hatással más formátumú képekre.",
|
||||
"image_quality": "Minőség",
|
||||
"image_resolution": "Felbontás",
|
||||
"image_resolution_description": "A nagyobb felbontás több részletet őriz meg, de lassabb létrehozni, nagyobb fájlt eredményez és belassíthatja az alkalmazást.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Kérés időkorlátja",
|
||||
"oauth_timeout_description": "Kérések időkorlátja milliszekundumban",
|
||||
"ocr_job_description": "Gépi tanulás használata a képeken lévő szövegek felismerésére",
|
||||
"passkey_additional_domains": "További domainek",
|
||||
"passkey_additional_domains_description": "További megbízható domainek (related origin kérések). Ezek csak akkor működnek, ha az azonosítókulcs domain is elérhető.",
|
||||
"passkey_domain": "Azonosítókulcs domain",
|
||||
"passkey_domain_description": "Azonosítókulcsok használatához használt domain (relying party). Hagyd üresen, ha az Origin fejlécből szeretnéd automatikusan meghatározni. Az érték módosítása után a meglévő azonosítókulcsok nem fognak működni.",
|
||||
"passkey_enable_description": "Belépés azonosítókulccsal",
|
||||
"passkey_settings": "Azonosítókulcsos belépés",
|
||||
"passkey_settings_description": "Azonosítókulcsos belépés kezelése",
|
||||
"password_enable_description": "Bejelentkezés e-maillel és jelszóval",
|
||||
"password_settings": "Jelszavas bejelentkezés",
|
||||
"password_settings_description": "Jelszavas bejelentkezés beállítások kezelése",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Csak a biztonsági mentés törlése",
|
||||
"delete_local_dialog_ok_force": "Törlés mindenképp",
|
||||
"delete_others": "Többi törlése",
|
||||
"delete_passkey": "Azonosítókulcs törlése",
|
||||
"delete_passkey_prompt": "Biztosan törölni szeretnéd ezt az azonosítókulcsot?",
|
||||
"delete_permanently": "Törlés véglegesen",
|
||||
"delete_permanently_action_prompt": "{count} törölve véglegesen",
|
||||
"delete_shared_link": "Megosztott link törlése",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} hely változtatva",
|
||||
"edit_location_dialog_title": "Hely",
|
||||
"edit_name": "Név módosítása",
|
||||
"edit_passkey": "Azonosítókulcs módosítása",
|
||||
"edit_people": "Személyek módosítása",
|
||||
"edit_person": "Személy szerkesztése",
|
||||
"edit_tag": "Címke módosítása",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Videó} other {Kép}} itt: {country}, {city}, velük: {person1}, {person2} és {person3} (készült: {date})",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Videó} other {Kép}} itt: {country}, {city}, velük: {person1}, {person2} és további {additionalCount, number} személy (készült: {date})",
|
||||
"immich_logo": "Immich logó",
|
||||
"immich_web_interface": "Immich webes felület",
|
||||
"import_from_json": "Importálás JSON-ből",
|
||||
"import_path": "Importálási útvonal",
|
||||
"in_albums": "{count, plural, other {# albumban}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Utolsó",
|
||||
"last_months": "{count, plural, one {Elmúlt hónap} other {Elmúlt # hónap}}",
|
||||
"last_seen": "Utoljára bejelentkezve",
|
||||
"last_used": "Utoljára használva",
|
||||
"latest_version": "Legfrissebb verzió",
|
||||
"latitude": "Szélesség",
|
||||
"leave": "Elhagyás",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "A bejelentkezés le van tiltva",
|
||||
"login_password_changed_error": "Nem sikerült módosítani a jelszót",
|
||||
"login_password_changed_success": "Jelszó sikeresen módosítva",
|
||||
"login_with_passkey": "Belépés azonosítókulccsal",
|
||||
"logout_all_device_confirmation": "Biztos, hogy minden eszközön ki szeretnél jelentkezni?",
|
||||
"logout_this_device_confirmation": "Biztos, hogy ki szeretnél jelentkezni ezen az eszközön?",
|
||||
"logs": "Naplók",
|
||||
@@ -1401,6 +1412,7 @@
|
||||
"manage_media_access_title": "Médiakezelés hozzáférés",
|
||||
"manage_oauth_account": "OAuth-fiók kezelése",
|
||||
"manage_people": "Személyek kezelése",
|
||||
"manage_people_access_description_v2": "Más felhasználók számára hozzáférés biztosítása {count, plural, one {ehhez a személyhez} other {a személyeidhez}}, lehetővé téve számukra, hogy a nevedben megtekintsék vagy kezeljék őket. Ez a művelet nem oszt meg semmilyen médiatartalmat.",
|
||||
"manage_person_access": "Hozzáférés kezelése",
|
||||
"manage_sharing_with_other_users": "Más felhasználókkal való megosztások kezelése",
|
||||
"manage_sharing_with_partners": "Partnerekkel való megosztás kezelése",
|
||||
@@ -1409,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Saját API-kulcsok kezelése",
|
||||
"manage_your_devices": "Bejelentkezett eszközök kezelése",
|
||||
"manage_your_oauth_connection": "OAuth kapcsolódás kezelése",
|
||||
"manage_your_passkeys": "Azonosítókulcsaid kezelése",
|
||||
"map": "Térkép",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Nincsenek fotók ezen a területen} one {# fotó} other {# fotó}}",
|
||||
"map_cannot_get_user_location": "A helymeghatározás nem sikerült",
|
||||
@@ -1528,6 +1541,7 @@
|
||||
"new_album": "Új album",
|
||||
"new_api_key": "Új API-kulcs",
|
||||
"new_feature": "Új funkció",
|
||||
"new_passkey": "Új azonosítókulcs",
|
||||
"new_password": "Új jelszó",
|
||||
"new_person": "Új személy",
|
||||
"new_pin_code": "Új PIN-kód",
|
||||
@@ -1640,6 +1654,8 @@
|
||||
"partner_sharing": "Partnerrel megosztás",
|
||||
"partners": "Partnerek",
|
||||
"partners_description": "Fotóid és videóid megosztása más felhasználókkal",
|
||||
"passkeys": "{count, plural, one {Azonosítókulcs} other {Azonosítókulcsok}}",
|
||||
"passkeys_not_supported": "Ez a böngésző nem támogatja az azonosítókulcsok használatát",
|
||||
"password": "Jelszó",
|
||||
"password_does_not_match": "A jelszavak nem egyeznek",
|
||||
"password_required": "Jelszó szükséges",
|
||||
@@ -1824,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "A kedvencekből {count, plural, other {# elem}} eltávolítva",
|
||||
"removed_from_stack": "Elem eltávolítva a kötegből",
|
||||
"removed_memory": "Emlék eltávolítva",
|
||||
"removed_passkey": "Eltávolított azonosítókulcs: {name}",
|
||||
"removed_tagged_assets": "Címke eltávolítva {count, plural, other {# elemről}}",
|
||||
"rename": "Átnevezés",
|
||||
"repository": "Tároló",
|
||||
@@ -1985,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Ha be van kapcsolva, a képernyő bal, illetve jobb szélének érintésével léphetsz az előző vagy a következő képre.",
|
||||
"setting_image_navigation_enable_title": "Koppints a navigációhoz",
|
||||
"setting_image_navigation_title": "Képnavigáció",
|
||||
"setting_image_viewer_help": "Az elemnézegető először a kis bélyegképet tölti be, majd a közepes méretű előnézetet (ha engedélyezett), végül az eredetit (ha engedélyezett).",
|
||||
"setting_image_viewer_help": "Az elemnézegető először a kis bélyegképet tölti be, majd a közepes méretű előnézetet, végül az eredetit (ha engedélyezett).",
|
||||
"setting_image_viewer_original_subtitle": "Engedélyezi az eredeti teljes felbontású kép betöltését (nagy!). Kikapcsolva csökkenti az adathasználatot (a neten és az eszköz gyorsítótárán is).",
|
||||
"setting_image_viewer_original_title": "Eredeti kép betöltése",
|
||||
"setting_image_viewer_preview_subtitle": "Engedélyezi a közepes felbontású kép betöltését. Kikapcsolva vagy az eredeti kép töltődik be, vagy csak a bélyegkép.",
|
||||
"setting_image_viewer_preview_title": "Előnézet betöltése",
|
||||
"setting_languages_apply": "Alkalmaz",
|
||||
"setting_languages_subtitle": "Az alkalmazás nyelvének megváltoztatása",
|
||||
"setting_notifications_notify_minutes": "{count} perc",
|
||||
@@ -2009,8 +2024,9 @@
|
||||
"share_everyone": "Minden személy megosztása",
|
||||
"share_everyone_description": "Hozzáférés biztosítása az összes személyedhez {user} számára.",
|
||||
"share_link": "Link megosztása",
|
||||
"share_logs": "Naplók megosztása",
|
||||
"share_original": "Használd az eredetit (nagy)",
|
||||
"share_preview": "Használd a miniatűrt (kicsi)",
|
||||
"share_preview": "Használd az előnèzetet (kicsi)",
|
||||
"share_quality_body": "A megosztás előtt tartsd lenyomva a megosztás gombot, hogy kiválaszd a képminőséget.",
|
||||
"share_quality_title": "Válaszd ki a megosztási minőséget",
|
||||
"share_with": "Hozzáférés megosztása velük",
|
||||
@@ -2060,7 +2076,6 @@
|
||||
"shared_link_password_description": "Jelszó megadása szükséges ehhez a megosztott linkhez",
|
||||
"shared_links": "Megosztott linkek",
|
||||
"shared_links_description": "Fotók és videók megosztása linkkel",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# megosztott kép és videó}}",
|
||||
"shared_with": "Megosztva velük",
|
||||
"shared_with_count": "Megosztva ({count})",
|
||||
"shared_with_me": "Velem megosztva",
|
||||
@@ -2188,6 +2203,8 @@
|
||||
"theme": "Téma",
|
||||
"theme_selection": "Témaválasztás",
|
||||
"theme_selection_description": "A téma automatikus beállítása világosra vagy sötétre a böngésző rendszerbeállítása alapján",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Görgetés folyamatosan a görgetősáv húzásakor, a hónapokra ugrás helyett",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Folyamatos, sima idővonal-görgetés",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Tárhelyjelző megjelenítése az elemeken",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Elemek száma soronként ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Elsődleges szín használata a háttérfelületeken.",
|
||||
@@ -2228,6 +2245,8 @@
|
||||
"trigger": "Eseményindító",
|
||||
"trigger_asset_metadata_extraction": "Elem metaadatainak kinyerése",
|
||||
"trigger_asset_metadata_extraction_description": "Az elem EXIF-adatainak kinyerésekor indul el",
|
||||
"trigger_asset_ocr_extraction": "Elem OCR-kinyerése",
|
||||
"trigger_asset_ocr_extraction_description": "Akkor lép működésbe, amikor egy médiatartalom OCR-szövege kinyerésre kerül",
|
||||
"trigger_asset_tagged": "Elem megcímkézve",
|
||||
"trigger_asset_tagged_description": "Akkor aktiválódik, amikor egy elemhez címke kerül hozzáadásra",
|
||||
"trigger_asset_uploaded": "Elem feltöltve",
|
||||
@@ -2303,7 +2322,7 @@
|
||||
"user": "Felhasználó",
|
||||
"user_has_been_deleted": "Ezt a felhasználót töröltük.",
|
||||
"user_id": "Felhasználó azonosítója",
|
||||
"user_liked": "{user} felhasználónak {type, select, photo {ez a fotó} video {ez a videó} asset {ez az elem} other {ez}} tetszik",
|
||||
"user_liked": "{user} kedvelte {type, select, image {ezt a fotót} video {ezt a videót} other {ezt}}",
|
||||
"user_pin_code_settings": "PIN-kód",
|
||||
"user_pin_code_settings_description": "PIN-kód kezelése",
|
||||
"user_privacy": "Felhasználói adatvédelem",
|
||||
@@ -2339,6 +2358,7 @@
|
||||
"view_group": "Csoport megtekintése",
|
||||
"view_in_timeline": "Megtekintés az idővonalon",
|
||||
"view_link": "Link megtekintése",
|
||||
"view_more": "Több megjelenítése",
|
||||
"view_name": "Megtekintés",
|
||||
"view_next_asset": "Következő elem megtekintése",
|
||||
"view_previous_asset": "Előző elem megtekintése",
|
||||
|
||||
@@ -97,7 +97,6 @@
|
||||
"search_no_people": "Ոչ մի անձ",
|
||||
"select_photos": "Ընտրե նկարներ",
|
||||
"setting_image_viewer_original_title": "Բեռնել բնագիր նկարը",
|
||||
"setting_image_viewer_preview_title": "Բեռնել նախադիտման նկարը",
|
||||
"setting_notifications_notify_seconds": "{count} վայրկյան",
|
||||
"setting_video_viewer_original_video_title": "Ստիպել բնագիր տեսահոլովակը",
|
||||
"shared_album_activities_input_disable": "Մեկնաբանություններն անջատված են",
|
||||
|
||||
@@ -1238,7 +1238,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Gambar}} diambil di {city}, {country} dengan {person1}, {person2}, dan {person3} pada {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Gambar}} diambil di {city}, {country} berisi {person1}, {person2}, dan {additionalCount, number} lainnya pada {date}",
|
||||
"immich_logo": "Logo Immich",
|
||||
"immich_web_interface": "Antarmuka Web Immich",
|
||||
"import_from_json": "Impor dari JSON",
|
||||
"import_path": "Jalur pengimporan",
|
||||
"in_albums": "Dalam {count, plural, one {# album} other {# album}}",
|
||||
@@ -1987,8 +1986,6 @@
|
||||
"setting_image_viewer_help": "Penampil detail akan terlebih dahulu memuat gambar mini berukuran kecil, kemudian memuat pratinjau berukuran sedang (jika diaktifkan), dan akhirnya memuat file asli (jika diaktifkan).",
|
||||
"setting_image_viewer_original_subtitle": "Aktifkan untuk memuat gambar asli dengan resolusi penuh (berukuran besar!). Nonaktifkan untuk mengurangi penggunaan data (baik jaringan maupun cache perangkat).",
|
||||
"setting_image_viewer_original_title": "Muat gambar kualitas asli",
|
||||
"setting_image_viewer_preview_subtitle": "Aktifkan untuk memuat gambar dengan resolusi sedang. Nonaktifkan jika ingin langsung memuat gambar asli atau hanya ingin memuat gambar kecil.",
|
||||
"setting_image_viewer_preview_title": "Muat gambar pratinjau",
|
||||
"setting_languages_apply": "Terapkan",
|
||||
"setting_languages_subtitle": "Mengubah bahasa pada aplikasi",
|
||||
"setting_notifications_notify_minutes": "{count} menit",
|
||||
@@ -2059,7 +2056,6 @@
|
||||
"shared_link_password_description": "Wajibkan sandi untuk mengakses tautan bersama ini",
|
||||
"shared_links": "Tautan bersama",
|
||||
"shared_links_description": "Bagikan foto dan video dengan tautan",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# foto & video bersama.}}",
|
||||
"shared_with": "Dibagikan kepada saya",
|
||||
"shared_with_count": "Dibagikan ({count})",
|
||||
"shared_with_me": "Dibagikan kepada saya",
|
||||
|
||||
@@ -1171,7 +1171,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Myndband} other {Mynd}} í {city}, {country} með {person1}, {person2}, og {person3} á {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} í {city}, {country} með {person1}, {person2}, og {additionalCount, number} öðrum á {date}",
|
||||
"immich_logo": "Immich merkið",
|
||||
"immich_web_interface": "Vefviðmót Immich",
|
||||
"import_from_json": "Flytja inn úr JSON",
|
||||
"import_path": "Slóð innflutnings",
|
||||
"in_albums": "Í {count, plural, one {# safni} other {# söfnum}}",
|
||||
|
||||
+27
-9
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "Esecuzione del comando {command} non riuscita per il processo: {job}",
|
||||
"force_delete_user_warning": "ATTENZIONE: Questo rimuoverà immediatamente l'utente e tutti le sue risorse. Non è possibile tornare indietro e i file non potranno essere recuperati.",
|
||||
"image_format": "Formato",
|
||||
"image_format_description": "WebP produce file più piccoli rispetto a JPEG, ma è più lento da codificare.",
|
||||
"image_format_description": "WebP produce file più piccoli rispetto a JPEG, ma è più lento da codificare. JPEG XL è la scelta migliore per una compressione di alta qualità, ma non tutti i browser possono visualizzarlo.",
|
||||
"image_fullsize_description": "Immagini a dimensioni reali senza metadati, sono utilizzate durante lo zoom",
|
||||
"image_fullsize_enabled": "Abilita la generazione delle immagini a dimensioni reali",
|
||||
"image_fullsize_enabled_description": "Genera immagini a dimensioni reali per i formati non web-friendly. Quando è abilitata l'opzione \"Preferisci l'anteprima integrata\", le anteprime integrate saranno utilizzate direttamente senza conversione. Non influisce sui formati web-friendly come JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Qualità dell'anteprima da 1 a 100. Più alto è meglio ma produce file più pesanti e può ridurre la reattività dell'app. Impostare un valore basso può influenzare negativamente la qualità del machine learning.",
|
||||
"image_preview_title": "Impostazioni anteprime",
|
||||
"image_progressive": "Progressiva",
|
||||
"image_progressive_description": "Codifica progressivamente le immagini JPEG per mostrarle con un caricamento graduale. Questo non ha effetto sulle immagini WebP.",
|
||||
"image_progressive_description": "Codifica progressivamente le immagini JPEG per mostrarle con un caricamento graduale. Questo non ha effetto sugli altri formati.",
|
||||
"image_quality": "Qualità",
|
||||
"image_resolution": "Risoluzione",
|
||||
"image_resolution_description": "Risoluzioni più elevate possono preservare più dettagli ma richiedere più tempo per la codifica, avere dimensioni di file più grandi e ridurre la reattività dell'app.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Timeout della richiesta",
|
||||
"oauth_timeout_description": "Timeout delle richieste in millisecondi",
|
||||
"ocr_job_description": "Utilizza il machine learning per riconoscere il testo nelle immagini",
|
||||
"passkey_additional_domains": "Domini aggiuntivi",
|
||||
"passkey_additional_domains_description": "Domini aggiuntivi e attendibili (richieste di origine correlate). Questi funzioneranno solo se anche il dominio della passkey è accessibile.",
|
||||
"passkey_domain": "Dominio passkey",
|
||||
"passkey_domain_description": "Dominio utilizzato per le passkey (parte affidabile). Lasciare vuoto per ricavarlo dall'intestazione “Origin”. La modifica di questo valore comporterà il mancato funzionamento delle passkey esistenti.",
|
||||
"passkey_enable_description": "Accedi con una passkey",
|
||||
"passkey_settings": "Accesso con passkey",
|
||||
"passkey_settings_description": "Gestisci le impostazioni di accesso con passkey",
|
||||
"password_enable_description": "Login con email e password",
|
||||
"password_settings": "Login con password",
|
||||
"password_settings_description": "Gestisci impostazioni del login con password",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Elimina solo con backup",
|
||||
"delete_local_dialog_ok_force": "Elimina comunque",
|
||||
"delete_others": "Elimina gli altri",
|
||||
"delete_passkey": "Elimina passkey",
|
||||
"delete_passkey_prompt": "Sei sicuro di voler eliminare questa chiave di accesso?",
|
||||
"delete_permanently": "Elimina definitivamente",
|
||||
"delete_permanently_action_prompt": "{count} eliminati definitivamente",
|
||||
"delete_shared_link": "Elimina link condiviso",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} luoghi modificati",
|
||||
"edit_location_dialog_title": "Posizione",
|
||||
"edit_name": "Modifica nome",
|
||||
"edit_passkey": "Modifica passkey",
|
||||
"edit_people": "Modifica persone",
|
||||
"edit_person": "Modifica persona",
|
||||
"edit_tag": "Modifica tag",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video girato} other {Foto scattata}} a {city}, {country} con {person1}, {person2}, e {person3} il giorno {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video girato} other {Foto scattata}} a {city}, {country} con {person1}, {person2} e {additionalCount, number} altre persone il {date}",
|
||||
"immich_logo": "Logo Immich",
|
||||
"immich_web_interface": "Interfaccia Web Immich",
|
||||
"import_from_json": "Importa da JSON",
|
||||
"import_path": "Importa percorso",
|
||||
"in_albums": "In {count, plural, one {# album} other {# album}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Ultimo",
|
||||
"last_months": "{count, plural, one {Ultimo mese} other {Ultimi # mesi}}",
|
||||
"last_seen": "Ultimo accesso",
|
||||
"last_used": "Ultimo utilizzo",
|
||||
"latest_version": "Ultima Versione",
|
||||
"latitude": "Latitudine",
|
||||
"leave": "Esci",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Il login è stato disabilitato",
|
||||
"login_password_changed_error": "C'è stato un errore durante l'aggiornamento della password",
|
||||
"login_password_changed_success": "Password aggiornata con successo",
|
||||
"login_with_passkey": "Accedi con passkey",
|
||||
"logout_all_device_confirmation": "Sei sicuro di volerti disconnettere da tutti i dispositivi?",
|
||||
"logout_this_device_confirmation": "Sei sicuro di volerti disconnettere da questo dispositivo?",
|
||||
"logs": "Registri",
|
||||
@@ -1401,6 +1412,7 @@
|
||||
"manage_media_access_title": "Accesso alla gestione di contenuti multimediali",
|
||||
"manage_oauth_account": "Gestisci account OAuth",
|
||||
"manage_people": "Gestisci persone",
|
||||
"manage_people_access_description_v2": "Concedi ad altri utenti l'accesso a {count, plural, one {questa persona} other {le tue persone}}, consentendo loro di visualizzarle o gestirle per tuo conto. Questa azione non comporta la condivisione di alcuna risorsa.",
|
||||
"manage_person_access": "Gestisci accesso",
|
||||
"manage_sharing_with_other_users": "Gestisci la condivisione con gli altri utenti",
|
||||
"manage_sharing_with_partners": "Gestisci la condivisione con i compagni",
|
||||
@@ -1409,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Gestisci le tue chiavi API",
|
||||
"manage_your_devices": "Gestisci i tuoi dispositivi collegati",
|
||||
"manage_your_oauth_connection": "Gestisci la tua connessione OAuth",
|
||||
"manage_your_passkeys": "Gestisci le tue passkeys",
|
||||
"map": "Mappa",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Nessuna foto in quest'area} one {# foto} other {# foto}}",
|
||||
"map_cannot_get_user_location": "Non è possibile ottenere la posizione dell'utente",
|
||||
@@ -1528,6 +1541,7 @@
|
||||
"new_album": "Nuovo Album",
|
||||
"new_api_key": "Nuova Chiave di API",
|
||||
"new_feature": "Nuova funzionalità",
|
||||
"new_passkey": "Nuova passkey",
|
||||
"new_password": "Nuova password",
|
||||
"new_person": "Nuova persona",
|
||||
"new_pin_code": "Nuovo codice PIN",
|
||||
@@ -1640,6 +1654,8 @@
|
||||
"partner_sharing": "Condivisione Compagno",
|
||||
"partners": "Compagni",
|
||||
"partners_description": "Condividi le tue foto e video con gli altri utenti",
|
||||
"passkeys": "{count, plural, one {Passkey} other {Passkey}}",
|
||||
"passkeys_not_supported": "Questo browser non supporta i passkey",
|
||||
"password": "Password",
|
||||
"password_does_not_match": "Le password non coincidono",
|
||||
"password_required": "Password Richiesta",
|
||||
@@ -1824,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, one {Rimosso } other {Rimossi #}} dai preferiti",
|
||||
"removed_from_stack": "Rimuovi risorsa dal gruppo",
|
||||
"removed_memory": "Memoria rimossa",
|
||||
"removed_passkey": "Rimuovi passkey: {name}",
|
||||
"removed_tagged_assets": "Rimossa etichetta {count, plural, one {# dalla risorsa} other {# dalle risorse}}",
|
||||
"rename": "Rinomina",
|
||||
"repository": "Repository",
|
||||
@@ -1985,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Se abilitata, puoi passare all'immagine precedente/successiva toccando il quarto di schermo più a sinistra/più a destra.",
|
||||
"setting_image_navigation_enable_title": "Clicca per navigare",
|
||||
"setting_image_navigation_title": "Navigazione delle immagini",
|
||||
"setting_image_viewer_help": "Il visualizzatore dei dettagli carica prima la miniatura piccola, poi quella di medie dimensioni (se abilitata) e infine l'originale (se abilitato).",
|
||||
"setting_image_viewer_help": "Il visualizzatore dei dettagli carica prima la miniatura piccola, poi quella di medie dimensioni e infine l'originale (se abilitato).",
|
||||
"setting_image_viewer_original_subtitle": "Abilita il caricamento dell’immagine originale in alta risoluzione (dimensioni elevate). Disattiva per ridurre il consumo di dati, sia di rete che in cache locale.",
|
||||
"setting_image_viewer_original_title": "Carica l'immagine originale",
|
||||
"setting_image_viewer_preview_subtitle": "Abilita per caricare un'immagine a risoluzione media. Disabilita per caricare direttamente l'immagine originale o usare la miniatura.",
|
||||
"setting_image_viewer_preview_title": "Carica immagine di anteprima",
|
||||
"setting_languages_apply": "Applica",
|
||||
"setting_languages_subtitle": "Cambia la lingua dell'app",
|
||||
"setting_notifications_notify_minutes": "{count} minuti",
|
||||
@@ -2009,8 +2024,9 @@
|
||||
"share_everyone": "Condividi tutte le persone",
|
||||
"share_everyone_description": "Dai a {user} accesso a tutte le tue persone.",
|
||||
"share_link": "Link di condivisione",
|
||||
"share_logs": "Condividi i log",
|
||||
"share_original": "Usa originale (grande)",
|
||||
"share_preview": "Usa miniatura (piccola)",
|
||||
"share_preview": "Usa anteprima (piccola)",
|
||||
"share_quality_body": "Tieni premuto il pulsante di condivisione per scegliere la qualità dell'immagine prima di condividerla.",
|
||||
"share_quality_title": "Seleziona la qualità di condivisione",
|
||||
"share_with": "Condividi accesso con",
|
||||
@@ -2060,7 +2076,6 @@
|
||||
"shared_link_password_description": "Imposta una password per questo link condiviso",
|
||||
"shared_links": "Link condivisi",
|
||||
"shared_links_description": "Condividi foto e video con un link",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# foto e video condivisi.}}",
|
||||
"shared_with": "Condiviso con",
|
||||
"shared_with_count": "Condiviso ({count})",
|
||||
"shared_with_me": "Condivisi con me",
|
||||
@@ -2188,6 +2203,8 @@
|
||||
"theme": "Tema",
|
||||
"theme_selection": "Selezione tema",
|
||||
"theme_selection_description": "Imposta automaticamente il tema chiaro o scuro in base all'impostazione del tuo browser",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Scorrere in modo continuo quando si trascina la barra di scorrimento, invece di passare automaticamente da un mese all'altro",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Scorrimento fluido della timeline",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Mostra indicatore dello storage nei titoli delle risorse",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Numero di risorse per riga ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Applica il colore primario alle superfici di sfondo.",
|
||||
@@ -2303,7 +2320,7 @@
|
||||
"user": "Utente",
|
||||
"user_has_been_deleted": "L'utente è stato rimosso.",
|
||||
"user_id": "ID utente",
|
||||
"user_liked": "A {user} piace {type, select, photo {questa foto} video {questo video} asset {questa risorsa} other {questo elemento}}",
|
||||
"user_liked": "A {user} piace {type, select, image {questa foto} video {questo video} other {questo elemento}}",
|
||||
"user_pin_code_settings": "Codice PIN",
|
||||
"user_pin_code_settings_description": "Gestisci il tuo codice PIN",
|
||||
"user_privacy": "Privacy dell'utente",
|
||||
@@ -2339,6 +2356,7 @@
|
||||
"view_group": "Visualizza gruppo",
|
||||
"view_in_timeline": "Visualizza nella timeline",
|
||||
"view_link": "Visualizza link",
|
||||
"view_more": "Scopri di più",
|
||||
"view_name": "Vista",
|
||||
"view_next_asset": "Visualizza risorsa successiva",
|
||||
"view_previous_asset": "Visualizza risorsa precedente",
|
||||
|
||||
+522
-502
File diff suppressed because it is too large
Load Diff
@@ -1308,8 +1308,6 @@
|
||||
"setting_image_navigation_enable_title": "ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ",
|
||||
"setting_image_viewer_help": "ವಿವರ ವೀಕ್ಷಕವು ಮೊದಲು ಸಣ್ಣ ಥಂಬ್ನೇಲ್ ಅನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ, ನಂತರ ಮಧ್ಯಮ ಗಾತ್ರದ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ (ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದರೆ), ಅಂತಿಮವಾಗಿ ಮೂಲವನ್ನು ಲೋಡ್ ಮಾಡುತ್ತದೆ (ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದರೆ).",
|
||||
"setting_image_viewer_original_subtitle": "ಮೂಲ ಪೂರ್ಣ-ರೆಸಲ್ಯೂಶನ್ ಚಿತ್ರವನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಕ್ರಿಯಗೊಳಿಸಿ (ದೊಡ್ಡದು!). ಡೇಟಾ ಬಳಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ (ನೆಟ್ವರ್ಕ್ ಮತ್ತು ಸಾಧನದ ಸಂಗ್ರಹ ಎರಡರಲ್ಲೂ).",
|
||||
"setting_image_viewer_preview_subtitle": "ಮಧ್ಯಮ ರೆಸಲ್ಯೂಶನ್ ಚಿತ್ರವನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಕ್ರಿಯಗೊಳಿಸಿ. ಮೂಲವನ್ನು ನೇರವಾಗಿ ಲೋಡ್ ಮಾಡಲು ಅಥವಾ ಥಂಬ್ನೇಲ್ ಅನ್ನು ಮಾತ್ರ ಬಳಸಲು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ.",
|
||||
"setting_image_viewer_preview_title": "ಪೂರ್ವವೀಕ್ಷಣೆ ಚಿತ್ರವನ್ನು ಲೋಡ್ ಮಾಡಿ",
|
||||
"setting_languages_subtitle": "ಅಪ್ಲಿಕೇಶನ್ನ ಭಾಷೆಯನ್ನು ಬದಲಾಯಿಸಿ",
|
||||
"setting_notifications_subtitle": "ನಿಮ್ಮ ಅಧಿಸೂಚನೆ ಆದ್ಯತೆಗಳನ್ನು ಹೊಂದಿಸಿ",
|
||||
"setting_video_viewer_auto_play_subtitle": "ವೀಡಿಯೊಗಳು ತೆರೆದಾಗ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪ್ಲೇ ಆಗಲು ಪ್ರಾರಂಭಿಸಿ",
|
||||
|
||||
+97
-52
@@ -45,7 +45,7 @@
|
||||
"admin_user": "관리자",
|
||||
"asset_offline_description": "해당 외부 라이브러리 항목은 디스크에서 더 이상 찾을 수 없으며 휴지통으로 이동되었습니다. 파일이 라이브러리 내에서 이동된 경우 타임라인에서 새로 인식된 항목이 있는지 확인하세요. 이 항목을 복원하려면 아래 경로에 Immich가 접근할 수 있는지 확인하고 라이브러리를 다시 스캔하세요.",
|
||||
"authentication_settings": "인증 설정",
|
||||
"authentication_settings_description": "비밀번호, OAuth 및 기타 인증 설정을 관리합니다.",
|
||||
"authentication_settings_description": "비밀번호, 외부인증 및 기타 인증 설정을 관리합니다.",
|
||||
"authentication_settings_disable_all": "모든 로그인 수단을 비활성화하시겠습니까? 더 이상 로그인할 수 없습니다.",
|
||||
"authentication_settings_reenable": "다시 활성화하려면 <link>서버 명령어</link>를 사용하세요.",
|
||||
"background_task_job": "백그라운드 작업",
|
||||
@@ -81,12 +81,12 @@
|
||||
"export_config_as_json_description": "현재 시스템 구성을 JSON 파일로 다운로드합니다.",
|
||||
"external_libraries_page_description": "외부 라이브러리 관리 페이지",
|
||||
"face_detection": "얼굴 감지",
|
||||
"face_detection_description": "기계 학습을 사용해 항목에서 얼굴을 감지합니다. 동영상은 섬네일만 사용합니다. \"새로고침\"은 모든 항목을 처리합니다. \"초기화\"는 모든 얼굴 데이터를 삭제합니다. \"누락\"은 아직 처리되지 않은 항목을 대기열에 추가합니다. 감지된 얼굴은 얼굴 인식 단계에서 처리되며, 기존 인물 또는 새 인물로 그룹화됩니다.",
|
||||
"face_detection_description": "기계 학습을 사용해 항목에서 얼굴을 감지합니다. 동영상은 썸네일만 사용합니다. \"새로고침\"은 모든 항목을 처리합니다. \"초기화\"는 모든 얼굴 데이터를 삭제합니다. \"누락\"은 아직 처리되지 않은 항목을 대기열에 추가합니다. 감지된 얼굴은 얼굴 인식 단계에서 처리되며, 기존 인물 또는 새 인물로 그룹화됩니다.",
|
||||
"facial_recognition_job_description": "감지된 얼굴을 인물별로 그룹화합니다. 이 작업은 얼굴 감지가 완료된 후 진행됩니다. \"초기화\"는 모든 얼굴을 그룹화합니다. \"누락\"은 그룹화되지 않은 얼굴을 대기열에 추가합니다.",
|
||||
"failed_job_command": "{job} 작업의 {command} 실패",
|
||||
"force_delete_user_warning": "경고: 이 작업은 해당 사용자의 계정과 모든 항목을 즉시 삭제합니다. 이 작업은 되돌릴 수 없으며 삭제된 파일은 복구할 수 없습니다.",
|
||||
"image_format": "형식",
|
||||
"image_format_description": "WebP는 JPEG보다 파일 크기는 작지만 인코딩 속도가 느립니다.",
|
||||
"image_format_description": "WebP는 JPEG보다 파일 크기는 작지만 인코딩 속도가 느립니다. JPEG XL은 고품질 압축을 위한 최상의 선택이지만, 모든 브라우저와 앱에서 이를 표시할 수 있는 것은 아닙니다.",
|
||||
"image_fullsize_description": "메타데이터가 제거된 전체 크기 이미지. 이미지를 확대할 때 사용됩니다.",
|
||||
"image_fullsize_enabled": "전체 크기 이미지 생성 활성화",
|
||||
"image_fullsize_enabled_description": "웹에서 지원되지 않는 형식에 대해 전체 크기 이미지를 생성합니다. \"포함된 미리보기 우선 사용\"을 활성화하면 미리보기를 그대로 사용합니다.",
|
||||
@@ -95,20 +95,20 @@
|
||||
"image_prefer_embedded_preview": "포함된 미리보기 우선 사용",
|
||||
"image_prefer_embedded_preview_setting_description": "RAW 사진에 포함된 미리보기가 있는 경우 이미지 처리에 사용합니다. 일부 이미지에서 더 정확한 색상을 얻을 수 있지만 압축 아티팩트가 있을 수 있습니다.",
|
||||
"image_prefer_wide_gamut": "광색역 우선 사용",
|
||||
"image_prefer_wide_gamut_setting_description": "섬네일에 Display P3를 사용합니다. 광색역 표현이 더 정확해지지만 구형 환경에서는 다르게 보일 수 있습니다. sRGB 이미지는 색역을 유지합니다.",
|
||||
"image_prefer_wide_gamut_setting_description": "썸네일에 Display P3를 사용합니다. 광색역 표현이 더 정확해지지만 구형 환경에서는 다르게 보일 수 있습니다. sRGB 이미지는 색역을 유지합니다.",
|
||||
"image_preview_description": "메타데이터가 제거된 중간 크기 이미지. 기계 학습 및 개별 항목을 표시할 때 사용됩니다.",
|
||||
"image_preview_quality_description": "미리보기 품질을 1~100 범위에서 설정합니다. 값이 클수록 좋지만 파일 크기가 커지고 앱 반응 속도가 느려질 수 있습니다. 너무 낮은 값은 기계 학습 품질에 영향을 줄 수 있습니다.",
|
||||
"image_preview_title": "미리보기 설정",
|
||||
"image_progressive": "점진적 로딩",
|
||||
"image_progressive_description": "JPEG 이미지를 점진적으로 표시할 수 있게 단계적으로 인코딩합니다. WebP 이미지에는 영향이 없습니다.",
|
||||
"image_progressive_description": "JPEG 이미지를 점진적으로 표시할 수 있도록 단계적으로 인코딩합니다. 다른 형식의 이미지에는 영향을 주지 않습니다.",
|
||||
"image_quality": "품질",
|
||||
"image_resolution": "해상도",
|
||||
"image_resolution_description": "해상도가 높을수록 더 많은 세부 정보를 보존할 수 있지만, 인코딩 시간이 길어지고 파일 크기가 커지며 앱 반응 속도가 느려질 수 있습니다.",
|
||||
"image_settings": "이미지 설정",
|
||||
"image_settings_description": "생성되는 이미지의 품질 및 해상도를 관리합니다.",
|
||||
"image_thumbnail_description": "메타데이터가 제거된 작은 섬네일. 메인 타임라인 등 사진 목록을 표시할 때 사용됩니다.",
|
||||
"image_thumbnail_quality_description": "섬네일 품질을 1~100 범위에서 설정합니다. 값이 클수록 좋지만 파일 크기가 커지고 앱 반응 속도가 느려질 수 있습니다.",
|
||||
"image_thumbnail_title": "섬네일 설정",
|
||||
"image_thumbnail_description": "메타데이터가 제거된 작은 썸네일. 메인 타임라인 등 사진 목록을 표시할 때 사용됩니다.",
|
||||
"image_thumbnail_quality_description": "썸네일 품질을 1~100 범위에서 설정합니다. 값이 클수록 좋지만 파일 크기가 커지고 앱 반응 속도가 느려질 수 있습니다.",
|
||||
"image_thumbnail_title": "썸네일 설정",
|
||||
"import_config_from_json_description": "JSON 파일을 업로드하여 시스템 구성을 가져옵니다.",
|
||||
"integrity_checks_checksum_files": "체크섬 파일",
|
||||
"integrity_checks_checksum_files_description": "체크섬 검사 설정",
|
||||
@@ -256,15 +256,15 @@
|
||||
"metadata_settings": "메타데이터 설정",
|
||||
"metadata_settings_description": "메타데이터 설정을 관리합니다.",
|
||||
"migration_job": "마이그레이션",
|
||||
"migration_job_description": "각 항목의 섬네일 및 인물의 얼굴을 최신 폴더 구조에 맞게 마이그레이션",
|
||||
"migration_job_description": "각 항목의 썸네일 및 인물의 얼굴을 최신 폴더 구조에 맞게 마이그레이션",
|
||||
"nightly_tasks_cluster_faces_setting_description": "새로 감지된 얼굴의 인식 작업을 실행합니다.",
|
||||
"nightly_tasks_cluster_new_faces_setting": "새 얼굴 그룹화",
|
||||
"nightly_tasks_database_cleanup_setting": "데이터베이스 정리",
|
||||
"nightly_tasks_database_cleanup_setting_description": "데이터베이스에서 오래되었거나 불필요한 데이터를 정리합니다.",
|
||||
"nightly_tasks_generate_memories_setting": "추억 생성",
|
||||
"nightly_tasks_generate_memories_setting_description": "사진 및 동영상에서 새로운 추억 모음을 생성합니다.",
|
||||
"nightly_tasks_missing_thumbnails_setting": "누락된 섬네일 생성",
|
||||
"nightly_tasks_missing_thumbnails_setting_description": "섬네일 생성 대기열에 누락된 항목을 추가합니다.",
|
||||
"nightly_tasks_missing_thumbnails_setting": "누락된 썸네일 생성",
|
||||
"nightly_tasks_missing_thumbnails_setting_description": "썸네일 생성 대기열에 누락된 항목을 추가합니다.",
|
||||
"nightly_tasks_settings": "정기 작업 설정",
|
||||
"nightly_tasks_settings_description": "특정 시간에 수행되는 작업을 관리합니다.",
|
||||
"nightly_tasks_start_time_setting": "시작 시간",
|
||||
@@ -294,25 +294,25 @@
|
||||
"notification_settings": "알림 설정",
|
||||
"notification_settings_description": "이메일을 포함한 알림 설정을 관리합니다.",
|
||||
"oauth_account_management_url": "계정 관리 URL",
|
||||
"oauth_account_management_url_description": "사용자가 자신의 설정이나 프로필을 관리할 수 있는 외부 ID 공급자의 위치입니다.",
|
||||
"oauth_account_management_url_description": "사용자가 자신의 설정이나 프로필을 관리할 수 있는 외부 인증 공급자의 위치입니다.",
|
||||
"oauth_allow_insecure_requests": "비보안 요청 허용",
|
||||
"oauth_allow_insecure_requests_description": "경고: OAuth 요청에 대한 TLS 인증서 검증을 비활성화하여 중간자 공격에 노출될 수 있습니다.",
|
||||
"oauth_allow_insecure_requests_description": "경고: 외부인증 요청에 대한 TLS 인증서 검증을 비활성화하여 중간자 공격에 노출될 수 있습니다.",
|
||||
"oauth_auto_launch": "자동 실행",
|
||||
"oauth_auto_launch_description": "로그인 페이지에 접근 시 OAuth 로그인 과정을 자동으로 진행",
|
||||
"oauth_auto_launch_description": "로그인 페이지에 접근 시 외부인증 로그인 과정을 자동으로 진행",
|
||||
"oauth_auto_register": "자동 등록",
|
||||
"oauth_auto_register_description": "OAuth 로그인 후 새 사용자를 자동으로 등록합니다.",
|
||||
"oauth_auto_register_description": "외부인증 로그인 후 새 사용자를 자동으로 등록합니다.",
|
||||
"oauth_button_text": "버튼 텍스트",
|
||||
"oauth_client_secret_description": "비공개 클라이언트 또는 공개 클라이언트가 PKCE(Proof Key for Code Exchange, 코드 교환용 검증 키)를 지원하지 않는 경우 필요합니다.",
|
||||
"oauth_enable_description": "OAuth 로그인",
|
||||
"oauth_enable_description": "외부인증 로그인",
|
||||
"oauth_end_session_url_description": "사용자가 로그아웃할 때 이 URI로 리다이렉트합니다.",
|
||||
"oauth_mobile_redirect_uri": "모바일 리다이렉트 URI",
|
||||
"oauth_mobile_redirect_uri_override": "모바일 리다이렉트 URI 오버라이드",
|
||||
"oauth_mobile_redirect_uri_override_description": "OAuth 공급자가 ''{callback}'' 등의 모바일 URI를 허용하지 않는 경우 활성화하세요.",
|
||||
"oauth_mobile_redirect_uri_override_description": "외부인증 공급자가 ''{callback}'' 등의 모바일 URI를 허용하지 않는 경우 활성화하세요.",
|
||||
"oauth_prompt_description": "프롬프트 파라미터 (예: select_account, login, consent)",
|
||||
"oauth_role_claim": "역할 클레임",
|
||||
"oauth_role_claim_description": "요청한 클레임을 사용자의 역할로 자동 설정합니다. 'user' 또는 'admin'을 선택할 수 있습니다.",
|
||||
"oauth_settings": "OAuth",
|
||||
"oauth_settings_description": "OAuth 로그인 설정을 관리합니다.",
|
||||
"oauth_settings": "외부인증",
|
||||
"oauth_settings_description": "외부인증 로그인 설정을 관리합니다.",
|
||||
"oauth_settings_more_details": "해당 기능에 대한 자세한 내용은 <link>문서</link>를 참조하세요.",
|
||||
"oauth_storage_label_claim": "스토리지 레이블 클레임",
|
||||
"oauth_storage_label_claim_description": "클레임의 값을 사용자 스토리지 레이블로 자동 설정합니다.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "요청 타임아웃",
|
||||
"oauth_timeout_description": "요청 타임아웃 (밀리초 단위)",
|
||||
"ocr_job_description": "기계 학습으로 이미지에서 텍스트를 인식합니다.",
|
||||
"passkey_additional_domains": "추가적인 도메인",
|
||||
"passkey_additional_domains_description": "추가적인 신뢰할 수 있는 도메인(원본 요청과 관련됨). 이러한 도메인은 패스키 도메인에 접근할 수 있는 경우에만 작동합니다.",
|
||||
"passkey_domain": "패스키 도메인",
|
||||
"passkey_domain_description": "패스키에 사용되는 도메인(신뢰 당사자). 빈칸으로 두면 Origin 헤더에서 자동으로 추론됩니다. 이 값을 변경하면 기존 패스키가 더 이상 작동하지 않게 됩니다.",
|
||||
"passkey_enable_description": "패스키로 로그인",
|
||||
"passkey_settings": "패스키 로그인",
|
||||
"passkey_settings_description": "패스키 로그인 설정 관리",
|
||||
"password_enable_description": "이메일과 비밀번호로 로그인",
|
||||
"password_settings": "비밀번호 로그인",
|
||||
"password_settings_description": "비밀번호 로그인 설정을 관리합니다.",
|
||||
@@ -394,8 +401,8 @@
|
||||
"theme_custom_css_settings_description": "CSS로 Immich의 디자인을 사용자 정의할 수 있습니다.",
|
||||
"theme_settings": "테마 설정",
|
||||
"theme_settings_description": "Immich 웹 인터페이스를 사용자 정의합니다.",
|
||||
"thumbnail_generation_job": "섬네일 생성",
|
||||
"thumbnail_generation_job_description": "각 항목 및 인물에 대해 크고 작은 썸네일, 흐릿한 섬네일 생성",
|
||||
"thumbnail_generation_job": "썸네일 생성",
|
||||
"thumbnail_generation_job_description": "각 항목 및 인물에 대해 크고 작은 썸네일, 흐릿한 썸네일 생성",
|
||||
"transcoding_acceleration_api": "가속 API",
|
||||
"transcoding_acceleration_api_description": "트랜스코딩 가속에 사용할 API를 지정합니다. 이 설정은 'best effort' 방식으로 동작하며, 실패 시 소프트웨어 트랜스코딩으로 전환됩니다. 하드웨어에 따라 VP9은 지원되지 않을 수 있습니다.",
|
||||
"transcoding_acceleration_nvenc": "NVENC (NVIDIA GPU 필요)",
|
||||
@@ -469,9 +476,9 @@
|
||||
"trash_number_of_days_description": "항목을 영구적으로 삭제하기 전까지 휴지통에 보관할 기간(일)",
|
||||
"trash_settings": "휴지통 설정",
|
||||
"trash_settings_description": "휴지통 기능을 설정합니다.",
|
||||
"unlink_all_oauth_accounts": "모든 OAuth 계정 연결 해제",
|
||||
"unlink_all_oauth_accounts_description": "새 공급자로 이전하려면 먼저 모든 OAuth 계정의 연결을 해제해야 합니다.",
|
||||
"unlink_all_oauth_accounts_prompt": "모든 OAuth 계정 연결을 해제하시겠습니까? 각 사용자의 OAuth ID를 초기화하며 되돌릴 수 없습니다.",
|
||||
"unlink_all_oauth_accounts": "모든 외부인증 계정 연결 해제",
|
||||
"unlink_all_oauth_accounts_description": "새 공급자로 이전하려면 먼저 모든 외부인증 계정의 연결을 해제해야 합니다.",
|
||||
"unlink_all_oauth_accounts_prompt": "모든 외부인증 계정 연결을 해제하시겠습니까? 각 사용자의 외부인증 ID를 초기화하며 되돌릴 수 없습니다.",
|
||||
"user_cleanup_job": "사용자 정리",
|
||||
"user_delete_delay": "<b>{user}</b>님의 계정과 항목이 {delay, plural, one {#일} other {#일}} 후 영구적으로 삭제됩니다.",
|
||||
"user_delete_delay_settings": "삭제 대기 기간",
|
||||
@@ -506,7 +513,7 @@
|
||||
"advanced_settings_clear_image_cache_error": "이미지 캐시 삭제 실패",
|
||||
"advanced_settings_clear_image_cache_success": "{size}가 성공적으로 정리됨",
|
||||
"advanced_settings_log_level_title": "로그 레벨: {level}",
|
||||
"advanced_settings_prefer_remote_subtitle": "일부 기기의 경우 로컬 항목에서 섬네일을 로드하는 속도가 매우 느립니다. 서버 이미지를 대신 로드하려면 이 설정을 활성화하세요.",
|
||||
"advanced_settings_prefer_remote_subtitle": "일부 기기의 경우 로컬 항목에서 썸네일을 로드하는 속도가 매우 느립니다. 서버 이미지를 대신 로드하려면 이 설정을 활성화하세요.",
|
||||
"advanced_settings_prefer_remote_title": "서버 이미지 선호",
|
||||
"advanced_settings_proxy_headers_subtitle": "Immich가 네트워크 요청 시 사용할 프록시 헤더를 정의합니다.",
|
||||
"advanced_settings_proxy_headers_title": "커스텀 프록시 헤더 (실험적)",
|
||||
@@ -556,6 +563,7 @@
|
||||
"allow_public_user_to_download": "모든 사용자의 다운로드 허용",
|
||||
"allow_public_user_to_upload": "모든 사용자의 업로드 허용",
|
||||
"allowed": "허용됨",
|
||||
"also_known_as": "별칭",
|
||||
"alt_text_qr_code": "QR 코드 이미지",
|
||||
"always_keep": "항상 유지",
|
||||
"always_keep_photos_hint": "이 기기에 모든 사진이 보관됩니다.",
|
||||
@@ -670,6 +678,7 @@
|
||||
"birthdate_set_description": "생년월일은 사진 촬영 당시 인물의 나이를 계산하는 데 사용됩니다.",
|
||||
"birthday_memory_age": "{age, selectordinal, other {#번째}} 생일",
|
||||
"birthday_memory_title": "{name}의 생일",
|
||||
"birthday_memory_title_with_age": "{name}의 생일 · {age, plural, other {# 살}}",
|
||||
"blurred_background": "흐린 배경",
|
||||
"browse_templates": "템플릿 둘러보기",
|
||||
"bugs_and_feature_requests": "버그 제보 & 기능 요청",
|
||||
@@ -750,7 +759,7 @@
|
||||
"cluster_group_description": "그룹에 속한 모든 사람의 사진에서 인물들이 식별됩니다.",
|
||||
"cluster_group_facial_recognition": "얼굴 인식 초기화",
|
||||
"cluster_group_facial_recognition_prompt": "얼굴 인식을 초기화하면 그룹에 속한 모든 사용자의 모든 사람 정보가 삭제됩니다. 이미 설정된 이름과 생년월일 또한 삭제됩니다. 계속하시겠습니까?",
|
||||
"cluster_group_invite_description": "이 클러스터 그룹에 참여하도록 초대를 받으셨습니다.",
|
||||
"cluster_group_invite_description": "이 묶음 그룹에 참여하도록 초대를 받으셨습니다.",
|
||||
"collapse": "접기",
|
||||
"collapse_all": "모두 접기",
|
||||
"color": "색상",
|
||||
@@ -871,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "백업된 항목만 삭제",
|
||||
"delete_local_dialog_ok_force": "무시하고 삭제",
|
||||
"delete_others": "다른 인물 삭제",
|
||||
"delete_passkey": "패스키 삭제",
|
||||
"delete_passkey_prompt": "정말로 이 패스키를 삭제하시겠습니까?",
|
||||
"delete_permanently": "영구 삭제",
|
||||
"delete_permanently_action_prompt": "{count}개 항목이 영구적으로 삭제됨",
|
||||
"delete_shared_link": "공유 링크 삭제",
|
||||
@@ -940,7 +951,9 @@
|
||||
"edit_location_action_prompt": "항목 {count}개의 위치가 변경됨",
|
||||
"edit_location_dialog_title": "위치",
|
||||
"edit_name": "이름 변경",
|
||||
"edit_passkey": "패스키 편집",
|
||||
"edit_people": "인물 수정",
|
||||
"edit_person": "인물 편집",
|
||||
"edit_tag": "태그 수정",
|
||||
"edit_title": "제목 변경",
|
||||
"edit_user": "사용자 수정",
|
||||
@@ -1039,7 +1052,7 @@
|
||||
"unable_to_change_location": "위치를 변경할 수 없습니다.",
|
||||
"unable_to_change_password": "비밀번호를 변경할 수 없습니다.",
|
||||
"unable_to_change_visibility": "인물 {count, plural, one {#명} other {#명}}의 표시 여부를 변경할 수 없음",
|
||||
"unable_to_complete_oauth_login": "OAuth 로그인을 완료할 수 없습니다.",
|
||||
"unable_to_complete_oauth_login": "외부인증 로그인을 완료할 수 없습니다.",
|
||||
"unable_to_connect": "연결할 수 없음",
|
||||
"unable_to_copy_to_clipboard": "클립보드에 복사할 수 없습니다. HTTPS로 접속 중인지 확인하세요.",
|
||||
"unable_to_create": "워크플로를 생성할 수 없습니다",
|
||||
@@ -1062,15 +1075,15 @@
|
||||
"unable_to_get_comments_number": "댓글 수를 불러올 수 없습니다.",
|
||||
"unable_to_get_shared_link": "공유 링크를 불러오지 못했습니다.",
|
||||
"unable_to_hide_person": "인물을 숨길 수 없습니다.",
|
||||
"unable_to_leave_cluster_group": "클러스터 그룹을 떠날 수 없습니다.",
|
||||
"unable_to_leave_cluster_group": "묶음 그룹을 떠날 수 없습니다.",
|
||||
"unable_to_link_motion_video": "모션 비디오를 연결할 수 없습니다",
|
||||
"unable_to_link_oauth_account": "OAuth 계정을 연결할 수 없습니다.",
|
||||
"unable_to_load_cluster_group": "클러스터 그룹을 불러올 수 없습니다.",
|
||||
"unable_to_link_oauth_account": "외부인증 계정을 연결할 수 없습니다.",
|
||||
"unable_to_load_cluster_group": "묶음 그룹을 불러올 수 없습니다.",
|
||||
"unable_to_load_map": "지도를 불러올 수 없습니다.",
|
||||
"unable_to_load_map_description": "지도를 올바르게 표시하기 위해 WebGL이 필요합니다.",
|
||||
"unable_to_log_out_all_devices": "모든 기기에서 로그아웃할 수 없습니다.",
|
||||
"unable_to_log_out_device": "기기에서 로그아웃할 수 없습니다.",
|
||||
"unable_to_login_with_oauth": "OAuth로 로그인할 수 없습니다.",
|
||||
"unable_to_login_with_oauth": "외부인증으로 로그인할 수 없습니다.",
|
||||
"unable_to_play_video": "동영상을 재생할 수 없습니다.",
|
||||
"unable_to_reassign_assets_existing_person": "{name, select, null {다른 인물} other {{name}}}에게 항목을 재할당할 수 없습니다.",
|
||||
"unable_to_reassign_assets_new_person": "새 인물에게 항목을 재할당할 수 없습니다.",
|
||||
@@ -1208,6 +1221,7 @@
|
||||
"headers_settings_tile_title": "사용자 지정 프록시 헤더",
|
||||
"height": "높이",
|
||||
"hi_user": "안녕하세요 {name}님, ({email})",
|
||||
"hidden": "숨겨짐",
|
||||
"hide_all_people": "모든 인물 숨기기",
|
||||
"hide_asset_owners": "항목 소유자 숨기기",
|
||||
"hide_gallery": "갤러리 숨기기",
|
||||
@@ -1235,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{date} {country}, {city}에서 {person1}, {person2}님 및 {person3}님과 함께한 {isVideo, select, true {동영상} other {사진}}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{date} {country}, {city}에서 {person1}, {person2}님 및 {additionalCount, number}명과 함께한 {isVideo, select, true {동영상} other {사진}}",
|
||||
"immich_logo": "Immich 로고",
|
||||
"immich_web_interface": "Immich 웹 인터페이스",
|
||||
"import_from_json": "JSON에서 가져오기",
|
||||
"import_path": "가져올 경로",
|
||||
"in_albums": "포함된 앨범 {count, plural, one {#개} other {#개}}",
|
||||
@@ -1283,6 +1296,7 @@
|
||||
"last": "마지막",
|
||||
"last_months": "{count, plural, one {지난 1개월} other {지난#개월}}",
|
||||
"last_seen": "최근 활동",
|
||||
"last_used": "마지막으로 사용됨",
|
||||
"latest_version": "최신 버전",
|
||||
"latitude": "위도",
|
||||
"leave": "나가기",
|
||||
@@ -1308,8 +1322,8 @@
|
||||
"link": "링크",
|
||||
"link_motion_video": "모션 비디오 링크",
|
||||
"link_to_docs": "자세한 내용은 <link>문서</link>를 참조하십시오.",
|
||||
"link_to_oauth": "OAuth에 연결",
|
||||
"linked_oauth_account": "OAuth 계정이 연결되었습니다.",
|
||||
"link_to_oauth": "외부인증에 연결",
|
||||
"linked_oauth_account": "외부인증 계정이 연결되었습니다.",
|
||||
"list": "목록",
|
||||
"live": "라이브",
|
||||
"load_more": "더 불러오기",
|
||||
@@ -1348,8 +1362,8 @@
|
||||
"login_form_err_invalid_url": "잘못된 URL입니다.",
|
||||
"login_form_err_leading_whitespace": "입력값 앞에 공백이 있습니다.",
|
||||
"login_form_err_trailing_whitespace": "입력값 끝에 공백이 있습니다.",
|
||||
"login_form_failed_get_oauth_server_config": "OAuth 로그인 중 오류가 발생했습니다. 서버 URL을 확인하세요.",
|
||||
"login_form_failed_get_oauth_server_disable": "이 서버는 OAuth 기능을 지원하지 않습니다.",
|
||||
"login_form_failed_get_oauth_server_config": "외부인증 로그인 중 오류가 발생했습니다. 서버 URL을 확인하세요.",
|
||||
"login_form_failed_get_oauth_server_disable": "이 서버는 외부인증 기능을 지원하지 않습니다.",
|
||||
"login_form_failed_login": "로그인 중 오류가 발생했습니다. 서버 URL, 이메일 및 비밀번호를 확인하세요.",
|
||||
"login_form_handshake_exception": "서버와 통신 중 인증서 예외가 발생했습니다. 자체 서명된 인증서를 사용 중이라면, 설정에서 자체 서명된 인증서 허용을 활성화하세요.",
|
||||
"login_form_password_hint": "비밀번호",
|
||||
@@ -1358,6 +1372,7 @@
|
||||
"login_has_been_disabled": "로그인이 비활성화됨",
|
||||
"login_password_changed_error": "비밀번호 변경 중 오류가 발생했습니다.",
|
||||
"login_password_changed_success": "비밀번호가 변경되었습니다.",
|
||||
"login_with_passkey": "패스키로 로그인",
|
||||
"logout_all_device_confirmation": "모든 기기에서 로그아웃하시겠습니까?",
|
||||
"logout_this_device_confirmation": "이 기기에서 로그아웃하시겠습니까?",
|
||||
"logs": "로그",
|
||||
@@ -1395,14 +1410,18 @@
|
||||
"manage_media_access_settings": "설정 열기",
|
||||
"manage_media_access_subtitle": "Immich 앱이 미디어 파일을 관리하고 이동할 수 있도록 허용하십시오.",
|
||||
"manage_media_access_title": "미디어 관리 액세스",
|
||||
"manage_oauth_account": "OAuth 계정 관리",
|
||||
"manage_oauth_account": "외부인증 계정 관리",
|
||||
"manage_people": "인물 관리",
|
||||
"manage_people_access_description_v2": "다른 사용자에게 {count, plural, one {이 인물} other {당신의 인물들}}에 대한 접근 권한을 부여하여, 해당 사용자가 귀하를 대신하여 이를 확인하거나 관리할 수 있도록 하세요. 이 작업으로 인해 어떤 자산도 공유되지는 않습니다.",
|
||||
"manage_person_access": "권한 관리",
|
||||
"manage_sharing_with_other_users": "다른 사용자와의 공유 관리",
|
||||
"manage_sharing_with_partners": "공유할 파트너를 초대하거나 제거합니다.",
|
||||
"manage_the_app_settings": "앱 동작 및 표시 환경을 사용자 정의합니다.",
|
||||
"manage_your_account": "사용자의 계정 정보를 확인하고 변경합니다.",
|
||||
"manage_your_api_keys": "API 키를 생성, 삭제하거나 권한을 관리합니다.",
|
||||
"manage_your_devices": "현재 로그인한 기기를 확인하고 로그아웃할 수 있습니다.",
|
||||
"manage_your_oauth_connection": "OAuth 연결을 관리합니다.",
|
||||
"manage_your_oauth_connection": "외부인증 연결을 관리합니다.",
|
||||
"manage_your_passkeys": "패스키 관리하기",
|
||||
"map": "지도",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {이 구역에 사진 없음} other {# 개}}",
|
||||
"map_cannot_get_user_location": "사용자의 위치를 가져올 수 없습니다.",
|
||||
@@ -1522,6 +1541,7 @@
|
||||
"new_album": "새 앨범",
|
||||
"new_api_key": "새 API 키",
|
||||
"new_feature": "새로운 기능",
|
||||
"new_passkey": "새 패스키",
|
||||
"new_password": "새 비밀번호",
|
||||
"new_person": "새 인물 생성",
|
||||
"new_pin_code": "새 PIN 코드",
|
||||
@@ -1548,6 +1568,7 @@
|
||||
"no_exif_info_available": "EXIF 정보 없음",
|
||||
"no_explore_results_message": "더 많은 사진을 업로드하여 탐색 기능을 사용하세요.",
|
||||
"no_favorites_message": "즐겨찾기에서 사진과 동영상을 빠르게 찾기",
|
||||
"no_filter": "분류 없음",
|
||||
"no_libraries_message": "외부 라이브러리로 다른 경로의 사진과 동영상을 확인하세요.",
|
||||
"no_local_assets_found": "체크섬과 일치하는 로컬 항목을 찾을 수 없습니다.",
|
||||
"no_locked_photos_message": "잠금 폴더의 사진 및 동영상은 숨겨지며 라이브러리를 탐색할 때 표시되지 않습니다.",
|
||||
@@ -1579,7 +1600,7 @@
|
||||
"notification_toggle_setting_description": "이메일 알림 활성화",
|
||||
"notifications": "알림",
|
||||
"notifications_setting_description": "알림 전송 설정을 관리합니다.",
|
||||
"oauth": "OAuth",
|
||||
"oauth": "외부인증",
|
||||
"obtainium_configurator": "Obtainium 구성",
|
||||
"obtainium_configurator_instructions": "Obtainium으로 Immich GitHub 릴리스에서 직접 안드로이드 앱을 설치하고 업데이트하세요. API 키를 생성하고 변형을 선택해 Obtanium 설정 링크를 생성하세요.",
|
||||
"ocr": "OCR",
|
||||
@@ -1632,6 +1653,9 @@
|
||||
"partner_page_stop_sharing_content": "더 이상 {partner}님이 사진에 접근할 수 없습니다.",
|
||||
"partner_sharing": "파트너와 공유",
|
||||
"partners": "파트너",
|
||||
"partners_description": "사진이나 동영상을 다른 사용자와 공유하세요",
|
||||
"passkeys": "{count, plural, one {패스키} other {패스키들}}",
|
||||
"passkeys_not_supported": "이 브라우저는 패스키를 지원하지 않습니다",
|
||||
"password": "비밀번호",
|
||||
"password_does_not_match": "비밀번호가 일치하지 않습니다.",
|
||||
"password_required": "비밀번호 필요",
|
||||
@@ -1648,6 +1672,7 @@
|
||||
"paused": "일시 정지됨",
|
||||
"pending": "진행 중",
|
||||
"people": "인물",
|
||||
"people_cluster_group": "인물 묶음 그룹",
|
||||
"people_count": "{count}명",
|
||||
"people_edits_count": "인물 {count, plural, one {#명} other {#명}}이 수정되었습니다.",
|
||||
"people_feature_description": "사진과 동영상을 인물 그룹별로 탐색",
|
||||
@@ -1666,8 +1691,15 @@
|
||||
"person_age_year_months": "1세, {months, plural, one {#개월} other {#개월}}",
|
||||
"person_age_years": "{years, plural, other {#}}살",
|
||||
"person_birthdate": "{date} 출생",
|
||||
"person_edit_only_change_for_me": "나에게만 변경",
|
||||
"person_edit_only_change_for_me_description": "변경 사항이 해당 사용자에게만 적용되도록 하려면 체크하세요",
|
||||
"person_hidden": "{name}{hidden, select, true { (숨김)} other {}}",
|
||||
"person_recognized": "신원이 확인된 사람",
|
||||
"person_share_no_users": "묶음 그룹에 속한 모든 사용자는 이미 이 사용자에 대한 접근 권한을 가지고 있습니다.",
|
||||
"person_update_strategy": "변경 사항을 다음 항목에 적용",
|
||||
"person_update_strategy_description": "이름이나 생년월일을 변경할 때 알릴 사람들",
|
||||
"person_update_strategy_everyone": "공유 액세스 권한이 있는 모든 사용자",
|
||||
"person_update_strategy_self": "나에게만",
|
||||
"photo_shared_all_users": "이미 모든 사용자와 사진을 공유 중이거나 다른 사용자가 없는 것 같습니다.",
|
||||
"photos": "사진",
|
||||
"photos_and_videos": "사진 및 동영상",
|
||||
@@ -1750,6 +1782,7 @@
|
||||
"query_asset_id": "쿼리 항목 ID",
|
||||
"queue_status": "전체 {total}, {count} 대기 중",
|
||||
"rate_asset": "항목 별점",
|
||||
"rate_asset_description": "1부터 5까지의 숫자키를 사용하여 자산에 빠르게 평점을 매기고, 0을 눌러 평점을 초기화하세요",
|
||||
"rating": "별점",
|
||||
"rating_clear": "별점 초기화",
|
||||
"rating_count": "{count, plural, =0 {별점 없음} one {#점} other {#점}}",
|
||||
@@ -1775,12 +1808,12 @@
|
||||
"refresh_encoded_videos": "동영상 재인코딩",
|
||||
"refresh_faces": "얼굴 새로고침",
|
||||
"refresh_metadata": "메타데이터 갱신",
|
||||
"refresh_thumbnails": "섬네일 다시 생성",
|
||||
"refresh_thumbnails": "썸네일 다시 생성",
|
||||
"refreshed": "새로고침이 완료되었습니다.",
|
||||
"refreshing_encoded_video": "동영상을 다시 인코딩합니다.",
|
||||
"refreshing_faces": "얼굴을 새로고침합니다.",
|
||||
"refreshing_metadata": "메타데이터를 새로고침합니다.",
|
||||
"regenerating_thumbnails": "섬네일을 다시 생성하는 중...",
|
||||
"regenerating_thumbnails": "썸네일을 다시 생성하는 중...",
|
||||
"remote": "원격",
|
||||
"remote_assets": "원격 항목",
|
||||
"remote_media_summary": "원격 미디어 요약",
|
||||
@@ -1807,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "즐겨찾기에서 항목 {count, plural, other {#개}} 제거됨",
|
||||
"removed_from_stack": "스택에서 자산을 제거했습니다.",
|
||||
"removed_memory": "추억이 제거되었습니다.",
|
||||
"removed_passkey": "패스키가 제거됨: {name}",
|
||||
"removed_tagged_assets": "항목 {count, plural, one {#개} other {#개}}에서 태그를 제거함",
|
||||
"rename": "이름 바꾸기",
|
||||
"repository": "리포지터리",
|
||||
@@ -1917,7 +1951,7 @@
|
||||
"search_tags": "태그 검색...",
|
||||
"search_timezone": "시간대 검색...",
|
||||
"search_type": "검색 유형",
|
||||
"search_type_description": "Immich가 검색어를 어떻게 해석할지 선택하세요: 시각적 항목, 파일 세부 정보 혹은 포함된 텍스트 중 하나",
|
||||
"search_type_description": "Immich가 검색 결과를 어떻게 해석할지 선택하세요: 시각적 내용, 파일 세부 정보 혹은 포함된 텍스트 중 하나를 선택할 수 있습니다.",
|
||||
"search_your_photos": "사진 검색",
|
||||
"searching_locales": "로케일 검색...",
|
||||
"second": "초",
|
||||
@@ -1968,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "활성화되면 화면의 왼쪽 또는 오른쪽 끄트머리를 탭하여 이미지를 전환합니다.",
|
||||
"setting_image_navigation_enable_title": "탭해서 전환",
|
||||
"setting_image_navigation_title": "이미지 전환",
|
||||
"setting_image_viewer_help": "상세 보기에서는 작은 섬네일, (활성화된 경우) 중간 섬네일, 원본 순으로 불러옵니다.",
|
||||
"setting_image_viewer_help": "상세 보기는 먼저 작은 썸네일을 불러온 다음, 중간 크기의 미리보기를 불러오고, 마지막으로 원본 이미지를 불러옵니다(활성화된 경우).",
|
||||
"setting_image_viewer_original_subtitle": "원본 고해상도 이미지를 불러옵니다. 데이터 사용량 및 캐시 크기를 줄이려면 비활성화하세요.",
|
||||
"setting_image_viewer_original_title": "원본 이미지 로드",
|
||||
"setting_image_viewer_preview_subtitle": "중간 해상도 이미지를 불러옵니다. 비활성화하는 경우 원본 또는 섬네일만 불러옵니다.",
|
||||
"setting_image_viewer_preview_title": "미리보기 이미지 로드",
|
||||
"setting_languages_apply": "적용",
|
||||
"setting_languages_subtitle": "앱 언어 변경",
|
||||
"setting_notifications_notify_minutes": "{count}분",
|
||||
@@ -1987,12 +2019,17 @@
|
||||
"settings_saved": "설정이 저장되었습니다.",
|
||||
"setup_pin_code": "PIN 코드 설정",
|
||||
"share": "공유",
|
||||
"share_back": "다시 공유하기",
|
||||
"share_dialog_preparing": "준비 중...",
|
||||
"share_everyone": "모두에게 공유",
|
||||
"share_everyone_description": "{user}님에게 귀하의 모든 인물들에 대한 접근 권한을 부여하세요.",
|
||||
"share_link": "공유 링크",
|
||||
"share_logs": "로그 공유하기",
|
||||
"share_original": "원본 사용 (고해상도)",
|
||||
"share_preview": "썸네일 사용 (저해상도)",
|
||||
"share_preview": "미리보기 사용 (저해상도)",
|
||||
"share_quality_body": "공유하기 전에 공유 버튼을 길게 눌러 이미지 품질을 선택하세요.",
|
||||
"share_quality_title": "공유할 때 사용할 이미지 품질 변경",
|
||||
"share_with": "다음 사용자와 액세스 권한 공유",
|
||||
"shared": "공유됨",
|
||||
"shared_album_activities_input_disable": "댓글이 비활성화되었습니다",
|
||||
"shared_album_activity_remove_content": "이 활동을 삭제하시겠습니까?",
|
||||
@@ -2000,6 +2037,7 @@
|
||||
"shared_album_section_people_action_error": "앨범에서 나가기/제거 중 문제가 발생했습니다.",
|
||||
"shared_album_section_people_title": "사용자",
|
||||
"shared_by": "다음 사용자가 공유",
|
||||
"shared_by_me": "나에 의해 공유됨",
|
||||
"shared_by_user": "{user}님이 공유함",
|
||||
"shared_by_you": "내가 공유함",
|
||||
"shared_from_partner": "{partner}님의 사진",
|
||||
@@ -2038,7 +2076,8 @@
|
||||
"shared_link_password_description": "이 페이지를 보려면 비밀번호를 입력하세요.",
|
||||
"shared_links": "공유 링크",
|
||||
"shared_links_description": "링크를 통해 사진 및 동영상 공유",
|
||||
"shared_photos_and_videos_count": "사진 및 동영상 {assetCount, plural, other {#개를 공유했습니다.}}",
|
||||
"shared_with": "다음과 공유됨",
|
||||
"shared_with_count": "({count})건 공유함",
|
||||
"shared_with_me": "나와 공유됨",
|
||||
"shared_with_partner": "{partner}님과 공유함",
|
||||
"sharing": "공유",
|
||||
@@ -2122,6 +2161,7 @@
|
||||
"stop_motion_photo": "모션 포토 정지",
|
||||
"stop_photo_sharing": "공유를 중단하시겠습니까?",
|
||||
"stop_photo_sharing_description": "더 이상 {partner}님이 사진에 접근할 수 없습니다.",
|
||||
"stop_sharing_person_with_user": "이 사용자와 이 사람 더 이상 공유 안 함",
|
||||
"stop_sharing_photos_with_user": "이 사용자와 사진 공유 중단",
|
||||
"storage": "저장 공간",
|
||||
"storage_label": "스토리지 레이블",
|
||||
@@ -2163,6 +2203,8 @@
|
||||
"theme": "테마",
|
||||
"theme_selection": "테마 선택",
|
||||
"theme_selection_description": "시스템의 다크 모드 설정에 따라 테마를 자동으로 적용합니다.",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "스크롤바를 드래그할 때 특정 달에 고정되지 않고 계속 스크롤되도록 합니다",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "부드러운 타임라인 훑기",
|
||||
"theme_setting_asset_list_storage_indicator_title": "타일에 서버 동기화 상태 표시",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "한 줄에 표시할 항목 수 ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "기본 색상을 배경에 적용",
|
||||
@@ -2203,6 +2245,8 @@
|
||||
"trigger": "트리거",
|
||||
"trigger_asset_metadata_extraction": "미디어 메타데이터 추출",
|
||||
"trigger_asset_metadata_extraction_description": "사진 또는 동영상의 EXIF 메타데이터가 추출될 때 발생합니다",
|
||||
"trigger_asset_ocr_extraction": "자산에서 OCR로 텍스트 추출",
|
||||
"trigger_asset_ocr_extraction_description": "자산의 OCR 텍스트가 추출되면 트리거됩니다.",
|
||||
"trigger_asset_tagged": "태그 적용됨",
|
||||
"trigger_asset_tagged_description": "항목에 태그가 적용되었을 때 실행됩니다",
|
||||
"trigger_asset_uploaded": "미디어 업로드 완료",
|
||||
@@ -2228,8 +2272,8 @@
|
||||
"unknown_year": "알 수 없는 연도",
|
||||
"unlimited": "무제한",
|
||||
"unlink_motion_video": "모션 비디오 링크 해제",
|
||||
"unlink_oauth": "OAuth 연결 해제",
|
||||
"unlinked_oauth_account": "OAuth 계정 연결이 해제되었습니다.",
|
||||
"unlink_oauth": "외부인증 연결 해제",
|
||||
"unlinked_oauth_account": "외부인증 계정 연결이 해제되었습니다.",
|
||||
"unmute_memories": "음소거 해제",
|
||||
"unnamed_album": "이름 없는 앨범",
|
||||
"unnamed_album_delete_confirmation": "선텍한 앨범을 삭제하시겠습니까?",
|
||||
@@ -2278,7 +2322,7 @@
|
||||
"user": "사용자",
|
||||
"user_has_been_deleted": "이 사용자는 삭제되었습니다.",
|
||||
"user_id": "사용자 ID",
|
||||
"user_liked": "{user}님이 {type, select, photo {이 사진} video {이 동영상} asset {이 항목} other {해당 항목}}을 좋아합니다.",
|
||||
"user_liked": "{user}님이 {type, select, image {이 사진} video {이 동영상} other {이 항목}}에 좋아요를 남겼습니다.",
|
||||
"user_pin_code_settings": "PIN 코드",
|
||||
"user_pin_code_settings_description": "PIN 코드를 변경하거나 잊어버린 경우 초기화합니다.",
|
||||
"user_privacy": "개인정보",
|
||||
@@ -2300,8 +2344,8 @@
|
||||
"version_history": "버전 기록",
|
||||
"version_history_item": "{date} {version} 설치",
|
||||
"video": "동영상",
|
||||
"video_hover_setting": "섬네일 영상 미리보기",
|
||||
"video_hover_setting_description": "섬네일 위에 마우스를 올리면 미리보기를 재생합니다. 비활성화해도 재생 아이콘에 마우스를 올려 미리볼 수 있습니다.",
|
||||
"video_hover_setting": "썸네일 영상 미리보기",
|
||||
"video_hover_setting_description": "썸네일 위에 마우스를 올리면 미리보기를 재생합니다. 비활성화해도 재생 아이콘에 마우스를 올려 미리볼 수 있습니다.",
|
||||
"video_quality": "동영상 화질",
|
||||
"videos": "동영상",
|
||||
"videos_count": "동영상 {count, plural, one {#개} other {#개}}",
|
||||
@@ -2314,6 +2358,7 @@
|
||||
"view_group": "그룹 보기",
|
||||
"view_in_timeline": "타임라인에서 보기",
|
||||
"view_link": "링크 보기",
|
||||
"view_more": "더보기",
|
||||
"view_name": "보기",
|
||||
"view_next_asset": "다음 항목 보기",
|
||||
"view_previous_asset": "이전 항목 보기",
|
||||
|
||||
+21
-25
@@ -17,9 +17,9 @@
|
||||
"add_a_title": "Pridėti pavadinimą",
|
||||
"add_action": "Pridėti veiksmą",
|
||||
"add_assets": "Pridėti",
|
||||
"add_birthday": "Pridėti gimimo diena",
|
||||
"add_endpoint": "Pridėti galutinį tašką",
|
||||
"add_exclusion_pattern": "Pridėti išimčių šabloną",
|
||||
"add_birthday": "Pridėti gimimo dieną",
|
||||
"add_endpoint": "Pridėti serverio adresą",
|
||||
"add_exclusion_pattern": "Pridėti išimties šabloną",
|
||||
"add_location": "Pridėti vietovę",
|
||||
"add_partner": "Pridėti partnerį",
|
||||
"add_photos": "Pridėti nuotraukų",
|
||||
@@ -29,42 +29,42 @@
|
||||
"add_to_album": "Pridėti į albumą",
|
||||
"add_to_album_bottom_sheet_added": "Pridėta į {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Jau yra {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Dalis vietinių elementų negalėjo būti pridėti į albumą",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Kai kurių vietinių išteklių nepavyko įtraukti į albumą",
|
||||
"add_to_albums": "Pridėti į albumus",
|
||||
"add_to_albums_count": "Pridėti į albumus ({count})",
|
||||
"add_to_bottom_bar": "Pridėti prie",
|
||||
"add_upload_to_stack": "Įkelti ir {isStack, select, true {pridėti į krūvą} other {sukurti krūvą}}",
|
||||
"add_upload_to_stack": "Įtraukti ir {isStack, select, true {pridėti į rinkinį} other {sukurti rinkinį}}",
|
||||
"add_url": "Pridėti URL",
|
||||
"add_user": "Pridėti naudotoją",
|
||||
"added_to_archive": "Pridėta į archyvą",
|
||||
"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ų",
|
||||
"added_to_favorites": "Įtraukta į mėgstamiausius",
|
||||
"added_to_favorites_count": "{count, plural, one {# įtrauktas} few {# įtraukti} other {# įtraukta}} prie mėgstamiausių",
|
||||
"admin": {
|
||||
"add_exclusion_pattern_description": "Pridėti išimčių taisykles. Palaikomi simboliai *,**, ir ?. Ignoruoti bet kokius failus bet kuriame aplanke pavadintame \"Raw\", naudokite \"**/Raw/**\". Ignoravimui failų su plėtiniu \".tif\", naudokite \"**/*.tiff\". Aplanko kelio nustatymams, naudokite \"/aplanko/kelias/ignoruoti/**\".",
|
||||
"add_exclusion_pattern_description": "Pridėti išimčių taisykles. Palaikomi simboliai *,**, ir ?. Norėdami ignoruoti visus failus bet kuriame aplanke, kurio pavadinimas yra „Raw“, naudokite „**/Raw/**“. Norėdami ignoruoti visus failus, kurių pavadinimai baigiasi „.tif“, naudokite „**/*.tiff“. Norėdami ignoruoti absoliutų kelią, naudokite „/aplanko/kelias/ignoruoti/**“.",
|
||||
"admin_user": "Administratorius",
|
||||
"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 skenavimą.",
|
||||
"asset_offline_description": "Šio išorinės bibliotekos elemento diske nebėra, todėl jis buvo perkeltas į šiukšlinę. Jei failas buvo perkeltas toje pačioje bibliotekoje, laiko skalėje rasite naują atitinkamą elementą. Norėdami atkurti šį elementą, įsitikinkite, kad „Immich“ turi prieigą prie jo kelio, ir nuskaitykite biblioteką.",
|
||||
"authentication_settings": "Autentifikavimo nustatymai",
|
||||
"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",
|
||||
"backup_database": "Sukurti duomenų bazės išklotinę",
|
||||
"backup_database_enable_description": "Įgalinti duomenų bazės išklotinės",
|
||||
"backup_database_enable_description": "Įgalinti duomenų bazės išklotines",
|
||||
"backup_keep_last_amount": "Išsaugomų ankstesnių duomenų bazės išklotinių skaičius",
|
||||
"backup_onboarding_1_description": "išorinė kopija debesyje arba kitoje fizinėje lokacijoje.",
|
||||
"backup_onboarding_2_description": "vietinės kopijos kituose prietaisuose. Tai apima pagrindinius failus ir jų vietines kopijas.",
|
||||
"backup_onboarding_3_description": "viso jūsų duomenų kopijų, įskaitant originalius failus. Tai apima 1 išorinę ir 2 vietines kopijas.",
|
||||
"backup_onboarding_description": "Jūsų duomenų apsaugojimui rekomenduojama <backblaze-link>3-2-1 atsarginės kopijos strategija</backblaze-link> . Jūs turėtumėte saugoti įkeltų nuotraukų/video bei Immich duomenų bazės kopijas išsamiam atsarginių kopijų sprendimui.",
|
||||
"backup_onboarding_1_description": "atsarginė kopija debesyje arba kitoje fizinėje vietoje.",
|
||||
"backup_onboarding_2_description": "vietinės kopijos skirtinguose įrenginiuose. Tai apima pagrindinius failus ir jų atsargines kopijas, saugomas lokaliai.",
|
||||
"backup_onboarding_3_description": "visos jūsų duomenų kopijos, įskaitant originalius failus. Tai yra 1 nuotolinė ir 2 vietinės kopijos.",
|
||||
"backup_onboarding_description": "Rekomenduojame laikytis <backblaze-link>„3-2-1“ atsarginių kopijų strategijos</backblaze-link>, norint apsaugoti asmeninius duomenis. Siekiant užtikrinti visapusišką apsaugą, turėtumėte papildomai saugoti įkeltų nuotraukų ir vaizdo įrašų kopijas, taip pat „Immich“ duomenų bazę.",
|
||||
"backup_onboarding_footer": "Daugiau informacijos apie „Immich“ atsarginių kopijų kūrimą rasite <link>dokumentacijoje</link>.",
|
||||
"backup_onboarding_parts_title": "3-2-1 atsarginė kopija apima:",
|
||||
"backup_onboarding_parts_title": "Atsarginių kopijų kūrimas taikant „3-2-1“ strategiją apima:",
|
||||
"backup_onboarding_title": "Atsarginės kopijos",
|
||||
"backup_settings": "Duomenų bazės išklotinių nustatymai",
|
||||
"backup_settings_description": "Tvarkyti duomenų bazės išklotinės nustatymus. Pastaba: šie darbai nėra stebimi ir jums nebus pranešta apie nesėkmę.",
|
||||
"cleared_jobs": "Išvalytos užduotys užduočiai: {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",
|
||||
"backup_settings_description": "Valdyti duomenų bazės išklotinės nustatymus.",
|
||||
"cleared_jobs": "Išvalytos užduotys: {job}",
|
||||
"config_set_by_file": "Konfigūracija nustatyta per konfigūracijos failą",
|
||||
"confirm_delete_library": "Ar tikrai norite pašalinti biblioteką „{library}“?",
|
||||
"confirm_delete_library_assets": "Ar tikrai norite pašalinti šią biblioteką? Tai negrįžtamai pašalins {count, plural, one {# esamą elementą} few {visus # esamus elementus} many {visus # esamus elementus} other {visus # esamus elementus}} iš „Immich“. Failai liks diske.",
|
||||
"confirm_email_below": "Norėdami patvirtinti, įveskite „{email}“",
|
||||
"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į?",
|
||||
"confirm_user_pin_code_reset": "Ar tikrai norite iš naujo nustatyti {user} PIN kodą?",
|
||||
@@ -1229,7 +1229,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Filmuota} other {Fotografuota}} su {person1}, {person2}, ir {person3} - {city}, {country} {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Filmuota} other {Fotografuota}} su {person1}, {person2}, ir {additionalCount, number} kitais - {city}, {country} {date}",
|
||||
"immich_logo": "Immich logotipas",
|
||||
"immich_web_interface": "Immich Web sąsaja",
|
||||
"import_from_json": "Importuoti iš JSON",
|
||||
"import_path": "Importavimo kelias",
|
||||
"in_albums": "{count, plural, one {# Albume} few {#Albumuose} other {# Albumų}}",
|
||||
@@ -1943,8 +1942,6 @@
|
||||
"setting_image_viewer_help": "Detali peržiūra pirmiausia įkelia mažą miniatiūrą, tada įkelia vidutinio dydžio versiją (jei įjungta) ir galiausiai įkelia originalą (jei įjungta).",
|
||||
"setting_image_viewer_original_subtitle": "Įjunkite, kad įkeltumėte originalų pilnos raiškos vaizdą (didelį!). Išjunkite, kad sumažintumėte duomenų naudojimą (tiek tinkle, tiek įrenginio talpykloje).",
|
||||
"setting_image_viewer_original_title": "Užkrauti originalią nuotrauką",
|
||||
"setting_image_viewer_preview_subtitle": "Įjunkite, jei norite įkelti vidutinės raiškos vaizdą. Išjunkite, jei norite tiesiogiai įkelti originalą ar naudoti tik miniatiūrą.",
|
||||
"setting_image_viewer_preview_title": "Užkrauti peržiūros nuotrauką",
|
||||
"setting_languages_apply": "Pritaikyti",
|
||||
"setting_languages_subtitle": "Pakeisti programos kalbą",
|
||||
"setting_notifications_notify_minutes": "{count} minučių",
|
||||
@@ -2010,7 +2007,6 @@
|
||||
"shared_link_password_description": "Bendrinimo nuorodos prieigai reikalingas slaptažodis",
|
||||
"shared_links": "Bendrinimo nuorodos",
|
||||
"shared_links_description": "Dalintis foto ir video su nuoroda",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, one {# bendrinama nuotrauka ir vaizdo įrašas} few {# bendrinamos nuotraukos ir vaizdo įrašai} other {# bendrinamų nuotraukų ir vaizdo įrašų}}",
|
||||
"shared_with_me": "Bendrinama su manimi",
|
||||
"shared_with_partner": "Pasidalinta su {partner}",
|
||||
"sharing": "Dalijimasis",
|
||||
|
||||
+7
-4
@@ -113,6 +113,10 @@
|
||||
"integrity_checks_checksum_files": "Kontrolsummas faili",
|
||||
"integrity_checks_checksum_files_description": "Konfigurēt kontrolsummas pārbaudi",
|
||||
"integrity_checks_checksum_files_enable_description": "Iespējot kontrolsummas pārbaudi",
|
||||
"integrity_checks_checksum_files_time_limit": "Laika ierobežojums",
|
||||
"integrity_checks_missing_files": "Trūkstošie faili",
|
||||
"integrity_checks_settings": "Integritātes pārbaudes",
|
||||
"integrity_checks_settings_description": "Integritātes pārbaužu intervālu pārvaldība",
|
||||
"job_concurrency": "{job} vienlaicīgi",
|
||||
"job_created": "Uzdevums izveidots",
|
||||
"job_not_concurrency_safe": "Šis uzdevums nav drošs vienlaicīgai izpildei.",
|
||||
@@ -191,6 +195,9 @@
|
||||
"maintenance_delete_backup": "Dzēst rezerves kopiju",
|
||||
"maintenance_delete_backup_description": "Šis fails tiks neatgriezeniski dzēsts.",
|
||||
"maintenance_delete_error": "Neizdevās dzēst rezerves kopiju.",
|
||||
"maintenance_integrity_check": "Pārbaudīt",
|
||||
"maintenance_integrity_check_all": "Pārbaudīt visus",
|
||||
"maintenance_integrity_checksum_mismatch": "Kontrolsummas neatbilstība",
|
||||
"maintenance_integrity_report": "Integritātes pārbaude",
|
||||
"maintenance_restore_backup": "Atjaunot no rezerves kopijas",
|
||||
"maintenance_restore_backup_description": "Immich dati tiks dzēsti un atjaunoti no izvēlētā dublējuma. Tiks izveidots dublējums pirms turpinājuma.",
|
||||
@@ -1152,7 +1159,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} uzņemts {city}, {country} ar {person1}, {person2} un {person3} {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} uzņemts {city}, {country} ar {person1}, {person2} un {additionalCount, number} citiem lietotājiem {date}",
|
||||
"immich_logo": "Immich logo",
|
||||
"immich_web_interface": "Immich tīmekļa saskarne",
|
||||
"import_from_json": "Importēt no JSON",
|
||||
"import_path": "Importa ceļš",
|
||||
"in_albums": "{count, plural, one {# albumā} other {# albumos}}",
|
||||
@@ -1806,8 +1812,6 @@
|
||||
"setting_image_viewer_help": "Detaļu skatītājs vispirms ielādē mazo sīktēlu, pēc tam ielādē vidēja lieluma priekšskatījumu (ja iespējots), visbeidzot ielādē oriģinālu (ja iespējots).",
|
||||
"setting_image_viewer_original_subtitle": "Iespējot sākotnējā pilnas izšķirtspējas attēla (liels!) ielādi. Atspējot, lai samazinātu datu lietojumu (gan tīklā, gan ierīces kešatmiņā).",
|
||||
"setting_image_viewer_original_title": "Ielādēt oriģinālo attēlu",
|
||||
"setting_image_viewer_preview_subtitle": "Iespējojiet vidējas izšķirtspējas attēla ielādēšanu. Atspējojiet vai nu tiešu oriģināla ielādi, vai izmantojiet tikai sīktēlu.",
|
||||
"setting_image_viewer_preview_title": "Ielādēt priekšskatījuma attēlu",
|
||||
"setting_languages_apply": "Lietot",
|
||||
"setting_languages_subtitle": "Mainīt lietotnes valodu",
|
||||
"setting_notifications_notify_minutes": "{count} minūtes",
|
||||
@@ -1867,7 +1871,6 @@
|
||||
"shared_link_password_description": "Lai piekļūtu šai koplietotajai saitei, nepieciešama parole",
|
||||
"shared_links": "Kopīgotās saites",
|
||||
"shared_links_description": "Kopīgot fotoattēlus un videoklipus, izmantojot saiti",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# koplietotie fotoattēli un videoklipi.}}",
|
||||
"shared_with_me": "Kopīgots ar mani",
|
||||
"shared_with_partner": "Kopīgots ar {partner}",
|
||||
"sharing": "Kopīgošana",
|
||||
|
||||
@@ -1202,7 +1202,6 @@
|
||||
"image_alt_text_date_place_3_people": "{date}-ന് {city}, {country} എന്നിവിടങ്ങളിൽ വെച്ച് {person1}, {person2}, {person3} എന്നിവർക്കൊപ്പം എടുത്ത {isVideo, select, true {വീഡിയോ} other {ചിത്രം}}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{date}-ന് {city}, {country} എന്നിവിടങ്ങളിൽ വെച്ച് {person1}, {person2}, കൂടാതെ മറ്റ് {additionalCount, number} പേർക്കുമൊപ്പം എടുത്ത {isVideo, select, true {വീഡിയോ} other {ചിത്രം}}",
|
||||
"immich_logo": "Immich ലോഗോ",
|
||||
"immich_web_interface": "Immich വെബ് ഇന്റർഫേസ്",
|
||||
"import_from_json": "JSON-ൽ നിന്ന് ഇമ്പോർട്ടുചെയ്യുക",
|
||||
"import_path": "ഇമ്പോർട്ട് പാത്ത്",
|
||||
"in_albums": "{count, plural, one {# ആൽബത്തിൽ} other {# ആൽബങ്ങളിൽ}}",
|
||||
@@ -1906,8 +1905,6 @@
|
||||
"setting_image_viewer_help": "വിശദാംശ വ്യൂവർ ആദ്യം ചെറിയ തംബ്നെയിൽ ലോഡുചെയ്യുന്നു, തുടർന്ന് ഇടത്തരം പ്രിവ്യൂ (പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ), ഒടുവിൽ യഥാർത്ഥ ചിത്രം (പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ) ലോഡുചെയ്യുന്നു.",
|
||||
"setting_image_viewer_original_subtitle": "യഥാർത്ഥ പൂർണ്ണ-റെസല്യൂഷൻ ചിത്രം (വലുത്!) ലോഡുചെയ്യാൻ പ്രവർത്തനക്ഷമമാക്കുക. ഡാറ്റ ഉപയോഗം (നെറ്റ്വർക്കും ഉപകരണ കാഷെയും) കുറയ്ക്കാൻ പ്രവർത്തനരഹിതമാക്കുക.",
|
||||
"setting_image_viewer_original_title": "യഥാർത്ഥ ചിത്രം ലോഡുചെയ്യുക",
|
||||
"setting_image_viewer_preview_subtitle": "ഇടത്തരം റെസല്യൂഷനുള്ള ചിത്രം ലോഡുചെയ്യാൻ പ്രവർത്തനക്ഷമമാക്കുക. ഒന്നുകിൽ യഥാർത്ഥ ചിത്രം നേരിട്ട് ലോഡുചെയ്യുന്നതിനോ അല്ലെങ്കിൽ തംബ്നെയിൽ മാത്രം ഉപയോഗിക്കുന്നതിനോ പ്രവർത്തനരഹിതമാക്കുക.",
|
||||
"setting_image_viewer_preview_title": "പ്രിവ്യൂ ചിത്രം ലോഡുചെയ്യുക",
|
||||
"setting_languages_apply": "പ്രയോഗിക്കുക",
|
||||
"setting_languages_subtitle": "ആപ്പിന്റെ ഭാഷ മാറ്റുക",
|
||||
"setting_notifications_notify_minutes": "{count} മിനിറ്റ്",
|
||||
@@ -1971,7 +1968,6 @@
|
||||
"shared_link_password_description": "ഈ പങ്കിട്ട ലിങ്ക് ആക്സസ് ചെയ്യാൻ ഒരു പാസ്വേഡ് ആവശ്യമാണ്",
|
||||
"shared_links": "പങ്കിട്ട ലിങ്കുകൾ",
|
||||
"shared_links_description": "ഒരു ലിങ്ക് ഉപയോഗിച്ച് ഫോട്ടോകളും വീഡിയോകളും പങ്കിടുക",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {പങ്കിട്ട # ഫോട്ടോകളും വീഡിയോകളും.}}",
|
||||
"shared_with_me": "എനിക്കായി പങ്കിട്ടത്",
|
||||
"shared_with_partner": "{partner}-മായി പങ്കിട്ടു",
|
||||
"sharing": "പങ്കിടൽ",
|
||||
|
||||
@@ -1136,7 +1136,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {व्हिडिओ} other {फोटो}} {city}, {country} येथे {person1}, {person2} आणि {person3} सोबत {date} रोजी घेतलेला",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {व्हिडिओ} other {फोटो}} {city}, {country} येथे {person1}, {person2} आणि इतर {additionalCount, number} जणांसोबत {date} रोजी घेतलेला",
|
||||
"immich_logo": "Immich लोगो",
|
||||
"immich_web_interface": "Immich वेब इंटरफेस",
|
||||
"import_from_json": "JSON मधून आयात करा",
|
||||
"import_path": "इम्पोर्ट पाथ",
|
||||
"in_albums": "{count, plural, one {# album} other {# albums}} मध्ये",
|
||||
@@ -1718,8 +1717,6 @@
|
||||
"setting_image_viewer_help": "डीटेल व्ह्यूअर आधी लहान थंबनेल लोड करतो, नंतर (सक्षम असल्यास) मध्यम आकाराचे प्रिव्ह्यू लोड करतो, आणि शेवटी (सक्षम असल्यास) मूळ प्रतिमा लोड करतो.",
|
||||
"setting_image_viewer_original_subtitle": "पूर्ण-रिझोल्यूशनची मूळ प्रतिमा लोड करण्यासाठी सक्षम करा (मोठी). डेटा वापर कमी करण्यासाठी (नेटवर्क व डिव्हाइस कॅश दोन्ही) अक्षम करा.",
|
||||
"setting_image_viewer_original_title": "मूळ प्रतिमा लोड करा",
|
||||
"setting_image_viewer_preview_subtitle": "मध्यम-रिझोल्यूशन प्रतिमा लोड करण्यासाठी सक्षम करा. अक्षम केल्यास थेट मूळ प्रतिमा लोड होईल किंवा फक्त थंबनेल वापरला जाईल.",
|
||||
"setting_image_viewer_preview_title": "प्रिव्ह्यू प्रतिमा लोड करा",
|
||||
"setting_languages_apply": "लागू करा",
|
||||
"setting_languages_subtitle": "अॅपची भाषा बदला",
|
||||
"setting_notifications_notify_minutes": "{count} मिनिटे",
|
||||
@@ -1779,7 +1776,6 @@
|
||||
"shared_link_password_description": "हा शेअर्ड दुवा पाहण्यासाठी पासवर्ड आवश्यक आहे",
|
||||
"shared_links": "शेअर्ड दुवे",
|
||||
"shared_links_description": "दुव्याद्वारे फोटो आणि व्हिडिओ शेअर करा",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# शेअर्ड फोटो आणि व्हिडिओ}}",
|
||||
"shared_with_me": "माझ्यासोबत शेअर केलेले",
|
||||
"shared_with_partner": "{partner} सोबत शेअर केले",
|
||||
"sharing": "शेअरिंग",
|
||||
|
||||
+77
-59
@@ -43,7 +43,7 @@
|
||||
"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 \"/filsti/til/ignorer/**\".",
|
||||
"admin_user": "Administrasjonsbruker",
|
||||
"asset_offline_description": "Dette eksterne bibliotekselementet finnes ikke lenger på disk og har blitt flyttet til papirkurven. Hvis filen ble flyttet innad i biblioteket, se etter det tilsvarende elementet i tidslinjen din. For å gjenopprette elementet, vennligst sørg for at filstien under er tilgjengelig for Immich og skann biblioteket.",
|
||||
"asset_offline_description": "Dette eksterne bibliotekselementet finnes ikke lenger på disk og har blitt flyttet til papirkurven. Hvis filen ble flyttet innad i biblioteket, se etter det tilsvarende elementet i tidslinjen din. For å gjenopprette elementet må du sørge for at filstien under er tilgjengelig for Immich og skann biblioteket.",
|
||||
"authentication_settings": "Autentiseringsinnstillinger",
|
||||
"authentication_settings_description": "Administrer passord, OAuth, og andre autentiseringsinnstillinger",
|
||||
"authentication_settings_disable_all": "Er du sikker på at du ønsker å deaktivere alle innloggingsmetoder? Innlogging vil bli fullstendig deaktivert.",
|
||||
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "Kommandoen {command} feilet for oppgave: {job}",
|
||||
"force_delete_user_warning": "ADVARSEL: Dette vil umiddelbart fjerne brukeren og alle data. Dette kan ikke angres, og filene kan ikke gjenopprettes.",
|
||||
"image_format": "Format",
|
||||
"image_format_description": "WebP produserer mindre filer enn JPEG, men kodes langsommere.",
|
||||
"image_format_description": "WebP produserer mindre filer enn JPEG, men kodes langsommere. JPEG XL er det beste alternatiet for høykvalitets komprimering, men ikke alle nettlesere eller apper kan vise det.",
|
||||
"image_fullsize_description": "Bilde i full størrelse med strippet metadata, brukt når du zoomer inn",
|
||||
"image_fullsize_enabled": "Aktiver generering av bilder i full størrelse",
|
||||
"image_fullsize_enabled_description": "Generer bilder i full størrelse for ikke-nettvennlige formater. Når \"Foretrekk innebygd forhåndsvisning\" er aktivert, brukes innebygde forhåndsvisninger direkte uten konvertering. Påvirker ikke nettvennlige formater som JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"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_progressive": "Progressiv",
|
||||
"image_progressive_description": "Kod JPEG-bilder progressivt for gradvis lasting av visning. Dette har ingen effekt på WebP-bilder.",
|
||||
"image_progressive_description": "Kod JPEG-bilder progressivt for gradvis lasting av visning. Dette har ingen effekt på andre formater.",
|
||||
"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.",
|
||||
@@ -108,7 +108,7 @@
|
||||
"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",
|
||||
"image_thumbnail_title": "Miniatyrbildeoppsett",
|
||||
"import_config_from_json_description": "Importer systemkonfigurasjon ved å laste opp en JSON konfigurasjonsfil",
|
||||
"integrity_checks_checksum_files": "Sjekksumfiler",
|
||||
"integrity_checks_checksum_files_description": "Konfigurer sjekksumkontrollen",
|
||||
@@ -236,8 +236,8 @@
|
||||
"manage_log_settings": "Administrer logginnstillinger",
|
||||
"map_dark_style": "Mørk stil",
|
||||
"map_enable_description": "Aktiver kartfunksjoner",
|
||||
"map_gps_settings": "Kart & GPS Innstillinger",
|
||||
"map_gps_settings_description": "Administrer innstillinger for kart og GPS (Reversert geokoding)",
|
||||
"map_gps_settings": "Kart- og 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>",
|
||||
@@ -276,7 +276,7 @@
|
||||
"note_apply_storage_label_previous_assets": "Merk: For å bruke lagringsetiketten på tidligere opplastede filer, kjør",
|
||||
"note_cannot_be_changed_later": "MERK: Dette kan ikke endres senere!",
|
||||
"notification_email_from_address": "Fra adresse",
|
||||
"notification_email_from_address_description": "Avsenderens e-postadresse, for eksempel: \"Immich Photo Server <noreply@example.com>\". Bruk en e-postadresse du har tillatelse til å sende epost fra.",
|
||||
"notification_email_from_address_description": "Avsenderens e-postadresse, for eksempel: \"Immich Photo Server <noreply@example.com>\". Bruk en e-postadresse du har tillatelse til å sende e-post fra.",
|
||||
"notification_email_host_description": "Verten til e-posts serveren (f.eks. smtp.immich.app)",
|
||||
"notification_email_ignore_certificate_errors": "Ignorer sertifikatfeil",
|
||||
"notification_email_ignore_certificate_errors_description": "Ignorer valideringsfeil for TLS-sertifikat (ikke anbefalt)",
|
||||
@@ -288,7 +288,7 @@
|
||||
"notification_email_setting_description": "Innstillinger for å sende e-postvarsler",
|
||||
"notification_email_test_email": "Send test e-post",
|
||||
"notification_email_test_email_failed": "Klarte ikke å sende test-e-post, sjekk instillingene",
|
||||
"notification_email_test_email_sent": "En test-e-post er sendt til {email}. Vennligst sjekk innboksen din.",
|
||||
"notification_email_test_email_sent": "En test-e-post er sendt til {email}. Sjekk innboksen din.",
|
||||
"notification_email_username_description": "Brukernavn som skal brukes ved autentisering med e-posts serveren",
|
||||
"notification_enable_email_notifications": "Aktiver e-postvarsler",
|
||||
"notification_settings": "Varselinnstillinger",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Forespørselen tok for lang tid",
|
||||
"oauth_timeout_description": "Tidsavbrudd for forespørsel i millisekunder",
|
||||
"ocr_job_description": "Bruk maskinlæring for å gjenkjenne tekst i bilder",
|
||||
"passkey_additional_domains": "Flere domener",
|
||||
"passkey_additional_domains_description": "Flere klarerte domener (relaterte opprinnelsesforespørsler). Disse fungerer kun dersom passnøkkeldomenet også er tilgjengelig.",
|
||||
"passkey_domain": "Domene for passnøkler",
|
||||
"passkey_domain_description": "Domenet som brukes til passnøkler (den mottakende tjenesten). La feltet stå tomt for å hente fra opprinnelsesoverskriften (origin header). Hvis du endrer denne verdien, vil eksisterende passnøkler slutte å fungere.",
|
||||
"passkey_enable_description": "Logg inn med en passnøkkel",
|
||||
"passkey_settings": "Innstillinger for passnøkkel",
|
||||
"passkey_settings_description": "Administrer innstillinger for innlogging med passnøkkel",
|
||||
"password_enable_description": "Logg inn med e-post og passord",
|
||||
"password_settings": "Passordinnlogging",
|
||||
"password_settings_description": "Administrer innstillinger for passordinnlogging",
|
||||
@@ -347,7 +354,7 @@
|
||||
"server_external_domain_settings": "Eksternt domene",
|
||||
"server_external_domain_settings_description": "Domene brukt for eksterne lenker",
|
||||
"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_public_users_description": "Alle brukere (navn og e-post) 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_stats_page_description": "Administrer serverstatistikk",
|
||||
@@ -361,8 +368,8 @@
|
||||
"storage_template_date_time_description": "Elementets opprettelsestidspunkt brukes for datotid-informasjonen",
|
||||
"storage_template_date_time_sample": "Eksempeltid {date}",
|
||||
"storage_template_enable_description": "Aktiver lagringsmal-motoren",
|
||||
"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_hash_verification_enabled": "Hash-verifisering aktivert",
|
||||
"storage_template_hash_verification_enabled_description": "Aktiver hash-verifisering. Ikke deaktiver dette med mindre du er sikker på konsekvensene",
|
||||
"storage_template_migration": "Implementer lagringsmal",
|
||||
"storage_template_migration_description": "Bruk gjeldende <link>{template}</link> på tidligere opplastede bilder",
|
||||
"storage_template_migration_info": "Lagringsmalen vil endre filtypen til små bokstaver. Malendringer vil kun gjelde nye elementer. For å anvende malen på tidligere opplastede elementer, kjør <link>{job}</link>.",
|
||||
@@ -382,11 +389,11 @@
|
||||
"system_settings": "Systeminstillinger",
|
||||
"tag_cleanup_job": "Oprydding i etiketter",
|
||||
"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_if_empty": "Hvis malen er tom, vil standard e-post bli brukt.",
|
||||
"template_email_invite_album": "Inviter album-mal",
|
||||
"template_email_preview": "Forhåndsvis",
|
||||
"template_email_settings": "E-postmaler",
|
||||
"template_email_update_album": "Oppdater Album Mal",
|
||||
"template_email_update_album": "Oppdater album-mal",
|
||||
"template_email_welcome": "Mal for velkomst-e-post",
|
||||
"template_settings": "Varslings Mal",
|
||||
"template_settings_description": "Administrer tilpassede maler for varsling",
|
||||
@@ -481,7 +488,7 @@
|
||||
"user_details": "Brukerdetaljer",
|
||||
"user_management": "Brukeradministrasjon",
|
||||
"user_password_has_been_reset": "Passordet til brukeren har blitt tilbakestilt:",
|
||||
"user_password_reset_description": "Vennligst oppgi det midlertidige passordet til brukeren og informer dem om at de må endre passordet ved neste pålogging.",
|
||||
"user_password_reset_description": "Oppgi det midlertidige passordet til brukeren og informer dem om at de må endre passordet ved neste pålogging.",
|
||||
"user_restore_description": "<b>{user}</b>'s konto vil bli gjenopprettet.",
|
||||
"user_restore_scheduled_removal": "Gjenopprett bruker - planlagt sletting den {date, date, long}",
|
||||
"user_settings": "Brukerinnstillinger",
|
||||
@@ -599,7 +606,7 @@
|
||||
"asset_not_found_on_device_ios": "Elementet ble ikke funnet på enheten. Hvis du bruker iCloud, kan elementet være utilgjengelig på grunn av en feilaktig fil er lagret i iCloud",
|
||||
"asset_not_found_on_icloud": "Elementet ble ikke funnet på iCloud. Elementet kan være utilgjengelig fordi det ligger en feilaktig fil i iCloud",
|
||||
"asset_offline": "Fil utilgjengelig",
|
||||
"asset_offline_description": "Dette eksterne elementet finnes ikke lenger på disken. Vennligst kontakt din Immich-administrator for hjelp.",
|
||||
"asset_offline_description": "Dette eksterne elementet finnes ikke lenger på disken. Kontakt din Immich-administrator for hjelp.",
|
||||
"asset_skipped": "Hoppet over",
|
||||
"asset_skipped_in_trash": "I papirkurven",
|
||||
"asset_troubleshoot": "Feilsøk element",
|
||||
@@ -701,9 +708,9 @@
|
||||
"change_name": "Endre navn",
|
||||
"change_name_successfully": "Navneendring vellykket",
|
||||
"change_password": "Endre passord",
|
||||
"change_password_description": "Dette er enten første gang du logger inn i systemet, eller det har blitt gjort en forespørsel om å endre passordet ditt. Vennligst skriv inn det nye passordet nedenfor.",
|
||||
"change_password_description": "Dette er enten første gang du logger inn i systemet, eller det har blitt gjort en forespørsel om å endre passordet ditt. Skriv inn det nye passordet nedenfor.",
|
||||
"change_password_form_confirm_password": "Bekreft passord",
|
||||
"change_password_form_description": "Hei {name}!\n\nDette er enten første gang du logger på systemet, eller det er sendt en forespørsel om å endre passordet ditt. Vennligst skriv inn det nye passordet nedenfor.",
|
||||
"change_password_form_description": "Hei {name}!\n\nDette er enten første gang du logger på systemet, eller det er sendt en forespørsel om å endre passordet ditt. Skriv inn det nye passordet nedenfor.",
|
||||
"change_password_form_log_out": "Logg ut av alle andre enheter",
|
||||
"change_password_form_log_out_description": "Det er anbefalt å logge ut av alle andre enheter",
|
||||
"change_password_form_new_password": "Nytt passord",
|
||||
@@ -774,7 +781,7 @@
|
||||
"confirm_delete_face": "Vil du virkelig slette {name} sitt ansikt fra ativia?",
|
||||
"confirm_delete_shared_link": "Vil du virkelig 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_new_pin_code": "Bekreft ny PIN kode",
|
||||
"confirm_new_pin_code": "Bekreft ny PIN-kode",
|
||||
"confirm_password": "Bekreft passord",
|
||||
"confirm_tag_face": "Vil du merke dette ansiktet som {name}?",
|
||||
"confirm_tag_face_unnamed": "Vil du merke dette ansiktet?",
|
||||
@@ -820,7 +827,7 @@
|
||||
"create_shared_link": "Opprett delt lenke",
|
||||
"create_tag": "Lag etikett",
|
||||
"create_tag_description": "Lag en ny etikett. For nøstede etiketter vises hele banen til den nye etiketten nedenfor.",
|
||||
"create_user": "Opprett Bruker",
|
||||
"create_user": "Opprett bruker",
|
||||
"create_workflow": "Opprett arbeidsflyt",
|
||||
"created": "Opprettet",
|
||||
"created_at": "Laget",
|
||||
@@ -830,7 +837,7 @@
|
||||
"crop_aspect_ratio_original": "Original",
|
||||
"crop_aspect_ratio_square": "Firkant",
|
||||
"current_device": "Nåværende enhet",
|
||||
"current_pin_code": "Nåværende PIN kode",
|
||||
"current_pin_code": "Nåværende PIN-kode",
|
||||
"current_server_address": "Nåværende serveradresse",
|
||||
"custom_date": "Egendefinert dato",
|
||||
"custom_locale": "Tilpasset lokalisering",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Slett kun sikkerhetskopierte elementer",
|
||||
"delete_local_dialog_ok_force": "Slett uansett",
|
||||
"delete_others": "Slett andre",
|
||||
"delete_passkey": "Slett passnøkkel",
|
||||
"delete_passkey_prompt": "Er du sikker på at du vil slette denne passnøkkelen?",
|
||||
"delete_permanently": "Slett permanent",
|
||||
"delete_permanently_action_prompt": "{count} slettet permanent",
|
||||
"delete_shared_link": "Slett delt lenke",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} plassering endret",
|
||||
"edit_location_dialog_title": "Plassering",
|
||||
"edit_name": "Rediger navn",
|
||||
"edit_passkey": "Rediger passnøkkel",
|
||||
"edit_people": "Rediger personer",
|
||||
"edit_person": "Rediger person",
|
||||
"edit_tag": "Rediger etikett",
|
||||
@@ -963,7 +973,7 @@
|
||||
"editor_rotate_left": "Roter 90° mot klokken",
|
||||
"editor_rotate_right": "Roter 90° med klokken",
|
||||
"email": "E-postadresse",
|
||||
"email_notifications": "Epostvarsler",
|
||||
"email_notifications": "E-postvarsler",
|
||||
"empty_folder": "Denne mappen er tom",
|
||||
"empty_trash": "Tøm papirkurv",
|
||||
"empty_trash_confirmation": "Vil du virkelig Tømme søppelbøtta? Dette vil slette alle filene i søppelbøtta permanent fra Immich.\nDu kan ikke angre denne handlingen!",
|
||||
@@ -1020,11 +1030,11 @@
|
||||
"failed_to_tag_assets": "Feil ved merking av ressurser",
|
||||
"failed_to_unstack_assets": "Mislyktes med å avstable bilder",
|
||||
"failed_to_update_notification_status": "Kunne ikke oppdatere varslingsstatusen",
|
||||
"incorrect_email_or_password": "Feil epost eller passord",
|
||||
"incorrect_email_or_password": "Feil e-post eller passord",
|
||||
"library_folder_already_exists": "Importstien eksisterer allerede.",
|
||||
"page_not_found": "Siden ble ikke funnet",
|
||||
"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.",
|
||||
"profile_picture_transparent_pixels": "Profilbildet kan ikke ha gjennomsiktige piksler. Forstørr/forminsk og/eller flytt bilde.",
|
||||
"quota_higher_than_disk_size": "Du har satt kvoten større enn diskstørrelsen",
|
||||
"something_went_wrong": "Noe gikk galt",
|
||||
"unable_to_add_album_users": "Kunne ikke legge til brukere i albumet",
|
||||
@@ -1046,7 +1056,7 @@
|
||||
"unable_to_connect": "Kunne ikke koble til",
|
||||
"unable_to_copy_to_clipboard": "Kunne ikke kopiere til utklippstavlen, sørg for at du får tilgang til siden via https",
|
||||
"unable_to_create": "Klarte ikke å opprette arbeidsflyt",
|
||||
"unable_to_create_admin_account": "Kunne ikke opprette administrator bruker",
|
||||
"unable_to_create_admin_account": "Kunne ikke opprette administratorbruker",
|
||||
"unable_to_create_api_key": "Kunne ikke opprette en ny API-nøkkel",
|
||||
"unable_to_create_library": "Kunne ikke opprette bibliotek",
|
||||
"unable_to_create_user": "Kunne ikke opprette bruker",
|
||||
@@ -1105,7 +1115,7 @@
|
||||
"unable_to_trash_asset": "Kunne ikke flytte filen til papirkurven",
|
||||
"unable_to_unlink_account": "Kunne 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_cover": "Kunne ikke oppdatere albumbilde",
|
||||
"unable_to_update_album_info": "Kunne ikke oppdatere informasjon i album",
|
||||
"unable_to_update_library": "Kunne ikke oppdatere bibliotek",
|
||||
"unable_to_update_location": "Kunne ikke oppdatere plassering",
|
||||
@@ -1136,7 +1146,7 @@
|
||||
"exposure_time": "Eksponeringstid",
|
||||
"extension": "Utvidelse",
|
||||
"external": "Ekstern",
|
||||
"external_libraries": "Eksterne Bibliotek",
|
||||
"external_libraries": "Eksterne bibliotek",
|
||||
"external_network": "Eksternt nettverk",
|
||||
"external_network_sheet_info": "Når du ikke er på det foretrukne Wi-Fi-nettverket, vil appen koble seg til serveren via den første av URL-ene nedenfor den kan nå, fra topp til bunn",
|
||||
"f_number": "Blendertall",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"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}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Siste",
|
||||
"last_months": "{count, plural, one {Sist måned} other {Siste # måneder}}",
|
||||
"last_seen": "Sist sett",
|
||||
"last_used": "Sist brukt",
|
||||
"latest_version": "Siste versjon",
|
||||
"latitude": "Breddegrad",
|
||||
"leave": "Forlat",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Innlogging har blitt deaktivert",
|
||||
"login_password_changed_error": "Det skjedde en feil ved oppdatering av passordet",
|
||||
"login_password_changed_success": "Passord oppdatert",
|
||||
"login_with_passkey": "Logg inn med passnøkkel",
|
||||
"logout_all_device_confirmation": "Vil du virkelig logge ut av alle enheter?",
|
||||
"logout_this_device_confirmation": "Vil du virkelig logge ut av denne enheten?",
|
||||
"logs": "Logger",
|
||||
@@ -1401,6 +1412,7 @@
|
||||
"manage_media_access_title": "Media håndteringstilgang",
|
||||
"manage_oauth_account": "Administrer OAuth-konto",
|
||||
"manage_people": "Administrer personer",
|
||||
"manage_people_access_description_v2": "Gi andre brukere tilgang til {count, plural, one {denne personen} other {personene dine}}, slik at de kan se eller administrere dem på dine vegne. Denne handlingen deler ingen mediefiler.",
|
||||
"manage_person_access": "Administrer tilgang",
|
||||
"manage_sharing_with_other_users": "Administrer deling med andre brukere",
|
||||
"manage_sharing_with_partners": "Administrer deling med partnere",
|
||||
@@ -1409,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Administrer API-nøklene dine",
|
||||
"manage_your_devices": "Administrer dine innloggede enheter",
|
||||
"manage_your_oauth_connection": "Administrer tilkoblingen din med OAuth",
|
||||
"manage_your_passkeys": "Administrer sine passnøkler",
|
||||
"map": "Kart",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Ingen bilder i dette området} one {# bilde} other {# bilder}}",
|
||||
"map_cannot_get_user_location": "Kan ikke hente brukerens plassering",
|
||||
@@ -1528,6 +1541,7 @@
|
||||
"new_album": "Nytt Album",
|
||||
"new_api_key": "Ny API-nøkkel",
|
||||
"new_feature": "Ny funksjon",
|
||||
"new_passkey": "Ny passnøkkel",
|
||||
"new_password": "Nytt passord",
|
||||
"new_person": "Ny person",
|
||||
"new_pin_code": "Ny PIN-kode",
|
||||
@@ -1575,16 +1589,16 @@
|
||||
"not_set": "Ikke angitt",
|
||||
"notes": "Notater",
|
||||
"nothing_here_yet": "Ingenting her enda",
|
||||
"notification_backup_reliability": "Slå på notifikasjoner for mer stabil sikkerhetskopiering i bakgrunnen",
|
||||
"notification_backup_reliability": "Slå på varsler for mer stabil sikkerhetskopiering i bakgrunnen",
|
||||
"notification_enabled_list_tile_content": "Immich bruker varsler for sikkerhetskopiering i bakgrunnen. Du kan administrere disse i enhetsinnstillingene dine.",
|
||||
"notification_enabled_list_tile_open_button": "Åpne innstillinger",
|
||||
"notification_enabled_list_tile_title": "Varsler aktivert",
|
||||
"notification_permission_dialog_content": "For å aktivere notifikasjoner, gå til Innstillinger og velg tillat.",
|
||||
"notification_permission_list_tile_content": "Gi tilgang for å aktivere notifikasjoner.",
|
||||
"notification_permission_list_tile_enable_button": "Aktiver notifikasjoner",
|
||||
"notification_permission_list_tile_title": "Notifikasjonstilgang",
|
||||
"notification_permission_dialog_content": "For å aktivere varsler, gå til Innstillinger og velg tillat.",
|
||||
"notification_permission_list_tile_content": "Gi tilgang for å aktivere varsler.",
|
||||
"notification_permission_list_tile_enable_button": "Aktiver varsler",
|
||||
"notification_permission_list_tile_title": "Varseltilgang",
|
||||
"notification_toggle_setting_description": "Aktiver e-postvarsler",
|
||||
"notifications": "Notifikasjoner",
|
||||
"notifications": "Varsler",
|
||||
"notifications_setting_description": "Administrer varsler",
|
||||
"oauth": "OAuth",
|
||||
"obtainium_configurator": "Obtainium konfigurator",
|
||||
@@ -1640,6 +1654,8 @@
|
||||
"partner_sharing": "Partnerdeling",
|
||||
"partners": "Partnere",
|
||||
"partners_description": "Del dine bilder og videoer med andre brukere",
|
||||
"passkeys": "{count, plural, one {Passnøkkel} other {Passnøkler}}",
|
||||
"passkeys_not_supported": "Passnøkler er ikke støttet av denne nettleseren",
|
||||
"password": "Passord",
|
||||
"password_does_not_match": "Passordet stemmer ikke",
|
||||
"password_required": "Passord påkrevd",
|
||||
@@ -1691,10 +1707,10 @@
|
||||
"pick_a_location": "Velg et sted",
|
||||
"pick_custom_range": "Tilpasset område",
|
||||
"pick_date_range": "Velg ett datoområde",
|
||||
"pin_code_changed_successfully": "Endring av PIN kode vellykket",
|
||||
"pin_code_reset_successfully": "Vellykket resatt PIN kode",
|
||||
"pin_code_setup_successfully": "Vellykket oppsett av PIN kode",
|
||||
"pin_verification": "PINkode verifikasjon",
|
||||
"pin_code_changed_successfully": "Endring av PIN-kode vellykket",
|
||||
"pin_code_reset_successfully": "Vellykket resatt PIN-kode",
|
||||
"pin_code_setup_successfully": "Vellykket oppsett av PIN-kode",
|
||||
"pin_verification": "PIN-kodeverifisering",
|
||||
"place": "Sted",
|
||||
"places": "Steder",
|
||||
"places_count": "{count, plural, one {{count, number} Sted} other {{count, number} Steder}}",
|
||||
@@ -1705,7 +1721,7 @@
|
||||
"play_original_video": "Spill av originalvideo",
|
||||
"play_original_video_setting_description": "Foretrekk avspilling av originalvideoer istedenfor omkodede videoer. Hvis originalvideo ikke er kompatibel kan avspillingsproblemer oppstå.",
|
||||
"play_transcoded_video": "Spill av omkodet video",
|
||||
"please_auth_to_access": "Vennligst autentiser for å fortsette",
|
||||
"please_auth_to_access": "Autentiser for å fortsette",
|
||||
"plugin_method_filter_type": "Filter",
|
||||
"plugin_method_filter_type_description": "Denne metoden kan filtrere hendelser og stoppe påfølgende steg basert på betingelser",
|
||||
"port": "Port",
|
||||
@@ -1743,7 +1759,7 @@
|
||||
"purchase_button_reminder": "Påminn meg om 30 dager",
|
||||
"purchase_button_remove_key": "Ta bort produktnøkkel",
|
||||
"purchase_button_select": "Velg",
|
||||
"purchase_failed_activation": "Mislyktes med å aktivere! Vennligst sjekk eposten for riktig produktnøkkel!",
|
||||
"purchase_failed_activation": "Mislyktes med å aktivere! Sjekk e-posten for riktig produktnøkkel!",
|
||||
"purchase_individual_description_1": "For en person",
|
||||
"purchase_individual_description_2": "Støttespiller status",
|
||||
"purchase_individual_title": "Individuell",
|
||||
@@ -1824,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {Removed #}} fra favoritter",
|
||||
"removed_from_stack": "Fjern fil fra stabel",
|
||||
"removed_memory": "Slettet minne",
|
||||
"removed_passkey": "Slettet passnøkkel: {name}",
|
||||
"removed_tagged_assets": "Fjern etiketten fra {count, plural, one {# fil} other {# filer}}",
|
||||
"rename": "Gi nytt navn",
|
||||
"repository": "Depot",
|
||||
@@ -1833,14 +1850,14 @@
|
||||
"reset": "Tilbakestill",
|
||||
"reset_password": "Tilbakestill passord",
|
||||
"reset_people_visibility": "Tilbakestill personsynlighet",
|
||||
"reset_pin_code": "Resett PINkode",
|
||||
"reset_pin_code": "Resett PIN-kode",
|
||||
"reset_pin_code_description": "Hvis du har glemt PIN-koden din, kan du kontakte serveradministratoren for å få den tilbakestilt",
|
||||
"reset_pin_code_with_password": "Du kan alltid tilbakestiller PIN-koden med passordet ditt",
|
||||
"reset_pin_code_with_password": "Du kan alltid tilbakestille PIN-koden med passordet ditt",
|
||||
"reset_sqlite": "Reset SQLite Databasen",
|
||||
"reset_sqlite_clear_app_data": "Slett data",
|
||||
"reset_sqlite_confirmation": "Vil du virkelig tømme appens data? Dette vil fjerne alle innstillingene dine og logge deg ut.",
|
||||
"reset_sqlite_confirmation_note": "Notis: Du må restarte appen etter tømming.",
|
||||
"reset_sqlite_done": "App data har blitt tømt. Vennligst restart Immich og logg inn igjen.",
|
||||
"reset_sqlite_done": "Appdata har blitt tømt. Restart Immich og logg inn igjen.",
|
||||
"reset_sqlite_error_hint": "Noe gikk galt, tilbakestill den lokale databasen med knappen nedenfor",
|
||||
"reset_sqlite_success": "Vellykket resetting av SQLite databasen",
|
||||
"reset_to_default": "Tilbakestill til standard",
|
||||
@@ -1870,7 +1887,7 @@
|
||||
"saved_settings": "Lagret instillinger",
|
||||
"say_something": "Si noe",
|
||||
"scaffold_body_error_occurred": "Feil oppstått",
|
||||
"scaffold_body_error_unrecoverable": "Det har oppstått en uopprettelig feil. Vennligst del feilmeldingen og \"stack trace\" på Discord eller GitHub slik at vi kan hjelpe deg. Hvis du får beskjed om det, kan du slette app-dataene nedenfor.",
|
||||
"scaffold_body_error_unrecoverable": "Det har oppstått en uopprettelig feil. Del feilmeldingen og \"stack trace\" på Discord eller GitHub slik at vi kan hjelpe deg. Hvis du får beskjed om det, kan du slette app-dataene nedenfor.",
|
||||
"scan": "Skann",
|
||||
"scan_all_libraries": "Skann alle biblioteker",
|
||||
"scan_library": "Skann",
|
||||
@@ -1985,16 +2002,14 @@
|
||||
"setting_image_navigation_enable_subtitle": "Hvis aktivert, kan du navigere til forrige/neste bilde ved å trykke på den venstre eller høyre fjerdedelen av skjermen.",
|
||||
"setting_image_navigation_enable_title": "Trykk for å navigere",
|
||||
"setting_image_navigation_title": "Bildenavigering",
|
||||
"setting_image_viewer_help": "Detaljvisningen laster først miniatyrbildet, deretter forhåndsvisningsbildet (hvis aktivert), og til slutt originalen (hvis aktivert).",
|
||||
"setting_image_viewer_help": "Detaljvisningen laster først miniatyrbildet, deretter forhåndsvisningsbildet, og til slutt originalen (hvis aktivert).",
|
||||
"setting_image_viewer_original_subtitle": "Aktiver for å laste originalbildet i full oppløsning (stort!). Deaktiver for å spare databruk (både nettverksbruk og bufferdata på enheten).",
|
||||
"setting_image_viewer_original_title": "Last originalbildet",
|
||||
"setting_image_viewer_preview_subtitle": "Aktiver for å laste et bilde av medium oppløsning. Deaktiver for å enten direkte laste inn originalen eller kun benytte miniatyrbilde.",
|
||||
"setting_image_viewer_preview_title": "Last forhåndsvisningsbilde",
|
||||
"setting_languages_apply": "Bekreft",
|
||||
"setting_languages_subtitle": "Endre app-språk",
|
||||
"setting_notifications_notify_minutes": "{count} minutter",
|
||||
"setting_notifications_notify_seconds": "{count} sekunder",
|
||||
"setting_notifications_subtitle": "Juster notifikasjonsinnstillinger",
|
||||
"setting_notifications_subtitle": "Juster varslingsinnstillinger",
|
||||
"setting_video_viewer_auto_play_subtitle": "Automatisk avspilling av videoer når de åpnes",
|
||||
"setting_video_viewer_auto_play_title": "Automatisk avspilling av videoer",
|
||||
"setting_video_viewer_looping_title": "Gjentagelse",
|
||||
@@ -2002,15 +2017,16 @@
|
||||
"setting_video_viewer_original_video_title": "Tving original video",
|
||||
"settings": "Innstillinger",
|
||||
"settings_saved": "Innstillinger lagret",
|
||||
"setup_pin_code": "Sett opp en PINkode",
|
||||
"setup_pin_code": "Sett opp en PIN-kode",
|
||||
"share": "Del",
|
||||
"share_back": "Del tilbake",
|
||||
"share_dialog_preparing": "Forbereder ...",
|
||||
"share_everyone": "Del alle",
|
||||
"share_everyone_description": "Gi {user} tilgang til alle dine personer.",
|
||||
"share_link": "Del link",
|
||||
"share_logs": "Del logger",
|
||||
"share_original": "Bruk original (stor)",
|
||||
"share_preview": "Bruk miniatyrbilde (lite)",
|
||||
"share_preview": "Bruk forhåndsvisning (liten)",
|
||||
"share_quality_body": "Trykk og hold på deleknappen for å velge bildekvalitet før du deler.",
|
||||
"share_quality_title": "Velg kvalitet for deling",
|
||||
"share_with": "Del tilgang med",
|
||||
@@ -2060,13 +2076,12 @@
|
||||
"shared_link_password_description": "Krev et passord for å få tilgang til denne delte lenken",
|
||||
"shared_links": "Delte linker",
|
||||
"shared_links_description": "Del bilder og videoer med lenke",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# delte bilder og videoer.}}",
|
||||
"shared_with": "Delt med",
|
||||
"shared_with_count": "Delt ({count})",
|
||||
"shared_with_me": "Delt med meg",
|
||||
"shared_with_partner": "Delt med {partner}",
|
||||
"sharing": "Deling",
|
||||
"sharing_enter_password": "Vennligst skriv inn passordet for å se denne siden.",
|
||||
"sharing_enter_password": "Skriv inn passordet for å se denne siden.",
|
||||
"shift_to_permanent_delete": "trykk ⇧ for å slette eiendeler permanent",
|
||||
"show_album_options": "Vis albumalternativer",
|
||||
"show_albums": "Vis album",
|
||||
@@ -2158,7 +2173,7 @@
|
||||
"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.",
|
||||
"support_third_party_description": "Immich-installasjonen din ble pakket av en tredjepart. Problemer du opplever kan være forårsaket av den pakken, så ta opp problemer med dem i første omgang ved å bruke koblingene nedenfor.",
|
||||
"supporter": "Støtter",
|
||||
"swap_merge_direction": "Bytt retning på sammenslåingen",
|
||||
"sync": "Synkroniser",
|
||||
@@ -2188,6 +2203,8 @@
|
||||
"theme": "Tema",
|
||||
"theme_selection": "Temavalg",
|
||||
"theme_selection_description": "Sett tema automatisk til lyst eller mørkt basert på nettleserens systeminnstilling",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Rull kontinuerlig når du drar i rullelinjen, i stedet for å hoppe måned for måned",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Jevn tidslinjenavigasjon",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Vis lagringsindiaktor på elementer i fotorutenettet",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Antall elementer per rad ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Angi primærfarge til bakgrunner.",
|
||||
@@ -2227,7 +2244,7 @@
|
||||
"trashed_items_will_be_permanently_deleted_after": "Elementer i papirkurven vil bli permanent slettet etter {days, plural, one {# dag} other {# dager}}.",
|
||||
"trigger": "Utløser",
|
||||
"trigger_asset_metadata_extraction": "Hent ut metadata fra objekter",
|
||||
"trigger_asset_metadata_extraction_description": "Trigges når EXIF metadata fra ett objekt blir uthentet",
|
||||
"trigger_asset_metadata_extraction_description": "Trigges når EXIF-metadata fra et objekt blir uthentet",
|
||||
"trigger_asset_tagged": "Merket fil",
|
||||
"trigger_asset_tagged_description": "Utløses når en etikett legges til en fil",
|
||||
"trigger_asset_uploaded": "Last opp objekt",
|
||||
@@ -2238,7 +2255,7 @@
|
||||
"type": "Type",
|
||||
"unable_to_change_pin_code": "Klarte ikke å endre PIN-kode",
|
||||
"unable_to_check_version": "Kunne ikke sjekke app eller serverversjon",
|
||||
"unable_to_setup_pin_code": "Klarte ikke å sette opp PINkode",
|
||||
"unable_to_setup_pin_code": "Klarte ikke å sette opp PIN-kode",
|
||||
"unarchive": "Fjern fra arkiv",
|
||||
"unarchive_action_prompt": "{count} slettet fra Arkiv",
|
||||
"unarchived_count": "{count, plural, other {uarkivert #}}",
|
||||
@@ -2303,9 +2320,9 @@
|
||||
"user": "Bruker",
|
||||
"user_has_been_deleted": "Denne brukeren har blitt slettet.",
|
||||
"user_id": "Bruker ID",
|
||||
"user_liked": "{user} likte {type, select, photo {dette bildet} video {denne videoen} asset {dette elementet} other {dette}}",
|
||||
"user_pin_code_settings": "PINkode",
|
||||
"user_pin_code_settings_description": "Håndter din PINkode",
|
||||
"user_liked": "{user} likte {type, select, image {dette bildet} video {denne videoen} other {dette}}",
|
||||
"user_pin_code_settings": "PIN-kode",
|
||||
"user_pin_code_settings_description": "Håndter din PIN-kode",
|
||||
"user_privacy": "Personverninnstillinger",
|
||||
"user_purchase_settings": "Kjøpe",
|
||||
"user_purchase_settings_description": "Administrer dine kjøp",
|
||||
@@ -2321,7 +2338,7 @@
|
||||
"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_announcement_message": "Hei! En ny versjon av Immich er tilgjengelig. 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": "Versjonshistorikk",
|
||||
"version_history_item": "Installerte {version} den {date}",
|
||||
"video": "Video",
|
||||
@@ -2339,6 +2356,7 @@
|
||||
"view_group": "Se gruppe",
|
||||
"view_in_timeline": "Vis i tidslinje",
|
||||
"view_link": "Vis lenke",
|
||||
"view_more": "Vis mer",
|
||||
"view_name": "Vis",
|
||||
"view_next_asset": "Vis neste fil",
|
||||
"view_previous_asset": "Vis forrige fil",
|
||||
|
||||
+24
-6
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Aanvraag timeout",
|
||||
"oauth_timeout_description": "Time-out voor aanvragen in milliseconden",
|
||||
"ocr_job_description": "Gebruik machine learning om tekst in afbeeldingen te herkennen",
|
||||
"passkey_additional_domains": "Bijkomende domeinen",
|
||||
"passkey_additional_domains_description": "Bijkomende vertrouwde domeinen (gerelateerde origin-verzoeken). Deze werken alleen als het passkey-domein ook toegankelijk is.",
|
||||
"passkey_domain": "Passkey-domein",
|
||||
"passkey_domain_description": "Domein dat gebruikt wordt voor passkeys (relying party). Laat dit veld leeg om het af te leiden van de origin-header. Als je deze waarde wijzigt, zullen bestaande passkeys niet meer werken.",
|
||||
"passkey_enable_description": "Inloggen met een passkey",
|
||||
"passkey_settings": "Passkey-login",
|
||||
"passkey_settings_description": "Beheer de instellingen voor aanmelden met passkeys",
|
||||
"password_enable_description": "Inloggen met e-mailadres en wachtwoord",
|
||||
"password_settings": "Inloggen met wachtwoord",
|
||||
"password_settings_description": "Beheer instellingen voor inloggen met wachtwoord",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Verwijder alleen met back-up",
|
||||
"delete_local_dialog_ok_force": "Toch verwijderen",
|
||||
"delete_others": "Andere verwijderen",
|
||||
"delete_passkey": "Passkey verwijderen",
|
||||
"delete_passkey_prompt": "Ben je zeker dat je deze passkey wilt verwijderen?",
|
||||
"delete_permanently": "Permanent verwijderen",
|
||||
"delete_permanently_action_prompt": "{count} permanent verwijderd",
|
||||
"delete_shared_link": "Verwijder gedeelde link",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "Locatie bijgewerkt van {count, plural, one {# item} other {# items}}",
|
||||
"edit_location_dialog_title": "Locatie",
|
||||
"edit_name": "Naam bewerken",
|
||||
"edit_passkey": "Passkey bewerken",
|
||||
"edit_people": "Mensen bewerken",
|
||||
"edit_person": "Persoon bewerken",
|
||||
"edit_tag": "Tag bewerken",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Afbeelding}} genomen in {city}, {country} met {person1}, {person2}, en {person3} op {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Afbeelding}} genomen in {city}, {country} met {person1}, {person2}, en {additionalCount, number} anderen op {date}",
|
||||
"immich_logo": "Immich-logo",
|
||||
"immich_web_interface": "Immich Web Interface",
|
||||
"import_from_json": "Importeren vanuit JSON",
|
||||
"import_path": "Import-pad",
|
||||
"in_albums": "In {count, plural, one {# album} other {# albums}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Laatste",
|
||||
"last_months": "{count, plural, one {Vorige maand} other {Laatste # maanden}}",
|
||||
"last_seen": "Laatst gezien",
|
||||
"last_used": "Laatst gebruikt",
|
||||
"latest_version": "Nieuwste versie",
|
||||
"latitude": "Breedtegraad",
|
||||
"leave": "Verlaten",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Inloggen is uitgeschakeld",
|
||||
"login_password_changed_error": "Er is een fout opgetreden bij het bijwerken van je wachtwoord",
|
||||
"login_password_changed_success": "Wachtwoord succesvol bijgewerkt",
|
||||
"login_with_passkey": "Inloggen met passkey",
|
||||
"logout_all_device_confirmation": "Weet je zeker dat je wilt uitloggen op alle apparaten?",
|
||||
"logout_this_device_confirmation": "Weet je zeker dat je wilt uitloggen op dit apparaat?",
|
||||
"logs": "Logs",
|
||||
@@ -1401,6 +1412,7 @@
|
||||
"manage_media_access_title": "Toegang tot mediabeheer",
|
||||
"manage_oauth_account": "OAuth account beheren",
|
||||
"manage_people": "Mensen beheren",
|
||||
"manage_people_access_description_v2": "Geef andere gebruikers toegang tot {count, plural, one {deze persoon} other {jouw mensen}}, zodat ze deze namens jou kunnen bekijken of aanpassen. Met deze actie worden er geen items gedeeld.",
|
||||
"manage_person_access": "Toegang beheren",
|
||||
"manage_sharing_with_other_users": "Delen met andere gebruikers beheren",
|
||||
"manage_sharing_with_partners": "Beheer delen met partners",
|
||||
@@ -1409,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Beheer je API-sleutels",
|
||||
"manage_your_devices": "Beheer je ingelogde apparaten",
|
||||
"manage_your_oauth_connection": "Beheer je OAuth-koppeling",
|
||||
"manage_your_passkeys": "Je passkeys beheren",
|
||||
"map": "Kaart",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Geen foto's in dit gebied} one {# foto} other {# foto's}}",
|
||||
"map_cannot_get_user_location": "Kan locatie van de gebruiker niet ophalen",
|
||||
@@ -1528,6 +1541,7 @@
|
||||
"new_album": "Nieuw album",
|
||||
"new_api_key": "Nieuwe API-sleutel",
|
||||
"new_feature": "Nieuwe functie",
|
||||
"new_passkey": "Nieuwe passkey",
|
||||
"new_password": "Nieuw wachtwoord",
|
||||
"new_person": "Nieuw persoon",
|
||||
"new_pin_code": "Nieuwe pincode",
|
||||
@@ -1640,6 +1654,8 @@
|
||||
"partner_sharing": "Delen met partner",
|
||||
"partners": "Partners",
|
||||
"partners_description": "Deel je foto’s en video’s met andere gebruikers",
|
||||
"passkeys": "{count, plural, one {Passkey} other {Passkeys}}",
|
||||
"passkeys_not_supported": "Passkeys worden niet ondersteund door deze browser",
|
||||
"password": "Wachtwoord",
|
||||
"password_does_not_match": "Wachtwoord komt niet overeen",
|
||||
"password_required": "Wachtwoord vereist",
|
||||
@@ -1824,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {# verwijderd}} uit favorieten",
|
||||
"removed_from_stack": "Item van stack verwijderd",
|
||||
"removed_memory": "Herinnering verwijderd",
|
||||
"removed_passkey": "Passkey verwijderd: {name}",
|
||||
"removed_tagged_assets": "Tag verwijderd van {count, plural, one {# item} other {# items}}",
|
||||
"rename": "Hernoemen",
|
||||
"repository": "Repository",
|
||||
@@ -1934,7 +1951,7 @@
|
||||
"search_tags": "Tags zoeken...",
|
||||
"search_timezone": "Zoek tijdzone...",
|
||||
"search_type": "Type zoekopdracht",
|
||||
"search_type_description": "Kies hoe Immich je zoekopdracht interpreteerd: door visuele inhoud, bestandsgegevens of ingebedde tekst.",
|
||||
"search_type_description": "Kies hoe Immich je zoekopdracht interpreteert: door visuele inhoud, bestandsgegevens of ingebedde tekst.",
|
||||
"search_your_photos": "Foto's doorzoeken",
|
||||
"searching_locales": "Zoeken naar landinstellingen...",
|
||||
"second": "Seconde",
|
||||
@@ -1985,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Indien ingeschakeld kun je naar de vorige/volgende afbeelding gaan door op het meest linkse of meest rechtse kwart van het scherm te tikken.",
|
||||
"setting_image_navigation_enable_title": "Tik om te navigeren",
|
||||
"setting_image_navigation_title": "Afbeelding Navigatie",
|
||||
"setting_image_viewer_help": "De gedetailleerde weergave laadt eerst de kleine thumbnail, vervolgens het middelgrote voorbeeld (indien ingeschakeld) en ten slotte het origineel (indien ingeschakeld).",
|
||||
"setting_image_viewer_help": "De gedetailleerde weergave laadt eerst de kleine thumbnail, vervolgens het middelgrote voorbeeld, en tenslotte het origineel (indien ingeschakeld).",
|
||||
"setting_image_viewer_original_subtitle": "Schakel in om de originele afbeelding met volledige resolutie (groot!) te laden. Schakel uit om datagebruik te verminderen (zowel netwerk als apparaatcache).",
|
||||
"setting_image_viewer_original_title": "Originele afbeelding laden",
|
||||
"setting_image_viewer_preview_subtitle": "Schakel in om een afbeelding met middelgrote resolutie te laden. Schakel uit om alleen het origineel direct te laden of alleen de thumbnail te gebruiken.",
|
||||
"setting_image_viewer_preview_title": "Voorbeeldafbeelding laden",
|
||||
"setting_languages_apply": "Toepassen",
|
||||
"setting_languages_subtitle": "Wijzig de taal van de app",
|
||||
"setting_notifications_notify_minutes": "{count} minuten",
|
||||
@@ -2009,6 +2024,7 @@
|
||||
"share_everyone": "Iedereen delen",
|
||||
"share_everyone_description": "Geef {user} toegang tot al jouw mensen.",
|
||||
"share_link": "Link delen",
|
||||
"share_logs": "Logs delen",
|
||||
"share_original": "Origineel gebruiken (groot)",
|
||||
"share_preview": "Voorbeeldafbeelding gebruiken (klein)",
|
||||
"share_quality_body": "Houd de deelknop ingedrukt om de beeldkwaliteit te kiezen voordat je deelt.",
|
||||
@@ -2060,7 +2076,6 @@
|
||||
"shared_link_password_description": "Vraag een wachtwoord om toegang te krijgen tot deze gedeelde link",
|
||||
"shared_links": "Gedeelde links",
|
||||
"shared_links_description": "Deel foto's en video's via een link",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# gedeelde foto's & video's.}}",
|
||||
"shared_with": "Gedeeld met",
|
||||
"shared_with_count": "Gedeeld ({count})",
|
||||
"shared_with_me": "Gedeeld met mij",
|
||||
@@ -2188,6 +2203,8 @@
|
||||
"theme": "Thema",
|
||||
"theme_selection": "Thema selectie",
|
||||
"theme_selection_description": "Stel het thema automatisch in op licht of donker op basis van de systeemvoorkeuren van je browser",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Blijf doorlopend scrollen wanneer je de schuifbalk versleept, in plaats van telkens naar een maand te verspringen",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Vloeiend door de tijdlijn scrollen",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Toon opslag indicator bij de item tegels",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Aantal items per rij ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Pas primaire kleuren toe op achtergronden.",
|
||||
@@ -2339,6 +2356,7 @@
|
||||
"view_group": "Groep bekijken",
|
||||
"view_in_timeline": "Bekijk in tijdlijn",
|
||||
"view_link": "Bekijk link",
|
||||
"view_more": "Meer bekijken",
|
||||
"view_name": "Bekijken",
|
||||
"view_next_asset": "Bekijk volgend item",
|
||||
"view_previous_asset": "Bekijk vorig item",
|
||||
|
||||
+56
-3
@@ -30,9 +30,11 @@
|
||||
"add_to_album_bottom_sheet_added": "Lagt til i {album}",
|
||||
"add_to_album_bottom_sheet_already_exists": "Allereie i {album}",
|
||||
"add_to_album_bottom_sheet_some_local_assets": "Somme lokale eigedelar kunne ikkje leggjast til i album",
|
||||
"add_to_album_item_count": "Legg til {count, plural, one {# element} other {# element}} i albumet",
|
||||
"add_to_albums": "Legg til i album",
|
||||
"add_to_albums_count": "Legg til i album ({count})",
|
||||
"add_to_bottom_bar": "Legg til i",
|
||||
"add_upload_to_stack": "Last opp og {isStack, select, true {legg til stabel} other {opprett stabel}}",
|
||||
"add_url": "Legg til URL",
|
||||
"add_user": "Legg til brukar",
|
||||
"added_to_archive": "Lagt til i arkiv",
|
||||
@@ -108,6 +110,21 @@
|
||||
"image_thumbnail_quality_description": "Kvalitet på miniatyrbilete frå 1-100. Høgare er betre, men gjev større filstorleik, og kan senkje appresposen.",
|
||||
"image_thumbnail_title": "Innstillingar for miniatyrbilete",
|
||||
"import_config_from_json_description": "Importer systemkonfigurasjon ved å laste opp ei JSON konfigurasjonsfil",
|
||||
"integrity_checks_checksum_files": "Kontrollsumfiler",
|
||||
"integrity_checks_checksum_files_description": "Konfigurer kontrollsumsjekken",
|
||||
"integrity_checks_checksum_files_enable_description": "Aktiver kontrollsumsjekken",
|
||||
"integrity_checks_checksum_files_percentage_limit": "Prosentgrense",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "Konfigurer maks prosentandel mellom 0,01 og 1 for kor mykje kontrollsumsjekken skal køyre per intervall.",
|
||||
"integrity_checks_checksum_files_time_limit": "Tidsgrense",
|
||||
"integrity_checks_checksum_files_time_limit_description": "Konfigurer maks varigheit for kor lenge kontrollsumsjekken skal køyre per intervall. (ms)",
|
||||
"integrity_checks_missing_files": "Manglande filer",
|
||||
"integrity_checks_missing_files_description": "Konfigurer frekvensen og aktiver eller deaktiver sjekken for manglande filer",
|
||||
"integrity_checks_missing_files_enable_description": "Aktiver sjekken for manglande filer",
|
||||
"integrity_checks_settings": "Integritetssjekkar",
|
||||
"integrity_checks_settings_description": "Administrer intervalla for integritetssjekkar",
|
||||
"integrity_checks_untracked_files": "Uspora filer",
|
||||
"integrity_checks_untracked_files_description": "Konfigurer frekvensen og aktiver eller deaktiver sjekken for uspora filer",
|
||||
"integrity_checks_untracked_files_enable_description": "Aktiver sjekken for uspora filer",
|
||||
"job_concurrency": "{job} samstundes utføring",
|
||||
"job_created": "Jobb laga",
|
||||
"job_not_concurrency_safe": "Kan ikke trygt utføre jobben samstundes.",
|
||||
@@ -121,15 +138,16 @@
|
||||
"library_details": "Bibliotekdetaljar",
|
||||
"library_folder_description": "Vel ei mappe å importere. Denne mappa, inkludert undermappar, vil bli skanna for biletar og videoar.",
|
||||
"library_remove_exclusion_pattern_prompt": "Er du sikker på at du vil fjerne dette unntaksmønsteret?",
|
||||
"library_remove_folder_prompt": "Er du sikker på at du vil fjerne denne importmappa?",
|
||||
"library_scanning": "Regelbunden skanning",
|
||||
"library_scanning_description": "Sett opp regelbunden skanning av biblioteket",
|
||||
"library_scanning_enable_description": "Aktiver regelbunden skanning av biblioteket",
|
||||
"library_settings": "Eksternt Bibliotek",
|
||||
"library_settings_description": "Handsam eksterne biblioteksinnstillingar",
|
||||
"library_tasks_description": "Utfør bibliotekstoppgåver",
|
||||
"library_tasks_description": "Skann eksterne bibliotek etter nye og/eller endra element",
|
||||
"library_updated": "Oppdatert bibliotek",
|
||||
"library_watching_enable_description": "Sjekk eksterne bibliotek for forandringar",
|
||||
"library_watching_settings": "Biblioteksovervåking (EKSPERIMENTELL)",
|
||||
"library_watching_settings": "Biblioteksovervåking [EKSPERIMENTELL]",
|
||||
"library_watching_settings_description": "Sjekk automatisk for forandringar",
|
||||
"logging_enable_description": "Aktiver loggføring",
|
||||
"logging_level_description": "Når aktivert, kva loggnivå å bruke.",
|
||||
@@ -138,6 +156,7 @@
|
||||
"machine_learning_availability_checks_description": "Automatiser oppdaging og prioritet av tilgjengelege maskinlærings-serverar",
|
||||
"machine_learning_availability_checks_enabled": "Slå på tilgjengelegheitssjekkar",
|
||||
"machine_learning_availability_checks_interval": "Sjekk intervall",
|
||||
"machine_learning_availability_checks_interval_description": "Intervall i millisekund mellom tilgjengelegheitssjekkar",
|
||||
"machine_learning_availability_checks_timeout": "Tidsavbrot på forespørsel",
|
||||
"machine_learning_availability_checks_timeout_description": "Utløpstid i millisekund for tilgjengelegheitssjekk",
|
||||
"machine_learning_clip_model": "CLIP modell",
|
||||
@@ -165,13 +184,26 @@
|
||||
"machine_learning_ocr": "OCR",
|
||||
"machine_learning_ocr_description": "Bruk maskinlæring for å gjenkjenne tekst i bilete",
|
||||
"machine_learning_ocr_enabled": "Slå på OCR",
|
||||
"machine_learning_ocr_enabled_description": "Hvis deaktivert, vil det ikkje bli køyrt tekstgjenkjenning på bilete.",
|
||||
"machine_learning_ocr_max_resolution": "Maksimal oppløysing",
|
||||
"machine_learning_ocr_max_resolution_description": "Førehandsvisingar over denne oppløysinga vil bli skalerte ned med uendra sideforhold. Høgare verdiar er meir nøyaktige, men tek lengre tid å behandle og brukar meir minne.",
|
||||
"machine_learning_ocr_min_detection_score": "Minste gjenkjenningsscore",
|
||||
"machine_learning_ocr_min_detection_score_description": "Minste konfidensverdi frå 0–1 for at tekst skal bli oppdaga. Lågare verdiar oppdagar meir tekst, men kan gi falske positive.",
|
||||
"machine_learning_ocr_min_recognition_score": "Minste attkjenningsverdi",
|
||||
"machine_learning_ocr_min_score_recognition_description": "Minste konfidensverdi frå 0–1 for at oppdaga tekst skal bli kjend att. Lågare verdiar kjenner att meir tekst, men kan gi falske positive.",
|
||||
"machine_learning_ocr_model": "OCR-modell",
|
||||
"machine_learning_settings": "Innstillingar for maskinlæring",
|
||||
"machine_learning_settings_description": "Administrer maskinlæringsfunksjonar og innstillingar",
|
||||
"machine_learning_smart_search": "Smart Søk",
|
||||
"machine_learning_smart_search_enabled": "Aktiver smart søk",
|
||||
"machine_learning_smart_search_enabled_description": "Hvis deaktivert, vil bilete ikkje bli enkoda for smart søk.",
|
||||
"maintenance_integrity_check": "Kontroll",
|
||||
"maintenance_integrity_check_all": "Velg alle",
|
||||
"maintenance_integrity_checksum_mismatch": "Kontrollsummen stemmer ikkje",
|
||||
"maintenance_integrity_checksum_mismatch_description": "Filer der kontrollsummen på disken ikkje stemmer med kontrollsummen Immich har lagra i databasen.",
|
||||
"maintenance_integrity_checksum_mismatch_job": "Sjekk etter avvik i kontrollsum",
|
||||
"maintenance_integrity_checksum_mismatch_refresh_job": "Oppdater rapportar om avvik i kontrollsum",
|
||||
"maintenance_integrity_missing_file": "Manglande filer",
|
||||
"manage_concurrency": "Administrer samtidigheit",
|
||||
"manage_log_settings": "Administrer logginnstillingar",
|
||||
"map_dark_style": "Mørk modus",
|
||||
@@ -212,7 +244,7 @@
|
||||
"oauth_auto_launch_description": "Start OAuth-innloggingsprosessen automatisk når innloggingssida vert opna",
|
||||
"oauth_auto_register_description": "Registrer nye brukarar automatisk etter innlogging med OAuth",
|
||||
"oauth_button_text": "Tekst på knapp",
|
||||
"oauth_client_secret_description": "Krevjast dersom PKCE (Proof Key for Code Exchange) ikkje støttast av OAuth-tilbydaren",
|
||||
"oauth_client_secret_description": "Påkravd for konfidensiell klient, eller dersom PKCE (Proof Key for Code Exchange) ikkje er støtta av OAuth-tilbydaren.",
|
||||
"oauth_enable_description": "Logg inn med OAuth",
|
||||
"oauth_settings": "OAuth",
|
||||
"oauth_settings_description": "Innstillingar for innlogging med OAuth",
|
||||
@@ -348,6 +380,7 @@
|
||||
"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",
|
||||
@@ -358,6 +391,7 @@
|
||||
"light": "Lys",
|
||||
"list": "Liste",
|
||||
"loading": "Lastar",
|
||||
"login": "Logg inn",
|
||||
"longitude": "Lengdegrad",
|
||||
"look": "Utsjånad",
|
||||
"make": "Produsent",
|
||||
@@ -384,19 +418,24 @@
|
||||
"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": "orginal",
|
||||
"other": "Anna",
|
||||
"owner": "Eigar",
|
||||
"partner": "Partnar",
|
||||
"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",
|
||||
@@ -404,6 +443,7 @@
|
||||
"place": "Stad",
|
||||
"places": "Stad",
|
||||
"play": "Spel av",
|
||||
"port": "Port",
|
||||
"preview": "Førehandsvisning",
|
||||
"previous": "Forrige",
|
||||
"primary": "Hoved",
|
||||
@@ -412,6 +452,7 @@
|
||||
"purchase_button_buy": "Kjøp",
|
||||
"purchase_button_select": "Vel",
|
||||
"purchase_individual_title": "Induviduell",
|
||||
"purchase_server_title": "Tenar",
|
||||
"reassign": "Vel på nytt",
|
||||
"recent": "Nyleg",
|
||||
"refresh": "Last inn på nytt",
|
||||
@@ -550,15 +591,20 @@
|
||||
"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": "Støtte",
|
||||
"sync": "Synk",
|
||||
"tag": "Merke",
|
||||
"tag_feature_description": "Bla gjennom bilete og videoar gruppert etter logiske tag-tema",
|
||||
"tags": "Merkelappar",
|
||||
"theme": "Tema",
|
||||
"timeline": "Tidslinje",
|
||||
"timezone": "Tidssone",
|
||||
@@ -566,8 +612,10 @@
|
||||
"to_favorite": "Favoritt",
|
||||
"to_login": "Innlogging",
|
||||
"to_trash": "Søppel",
|
||||
"total": "Totalt",
|
||||
"trash": "Søppel",
|
||||
"trash_no_results_message": "Sletta foto og videoar vil dukke opp her.",
|
||||
"type": "Type",
|
||||
"unfavorite": "Fjern favoritt",
|
||||
"unknown": "Ukjent",
|
||||
"unlimited": "Ubegrensa",
|
||||
@@ -575,6 +623,7 @@
|
||||
"upload_status_duplicates": "Duplikater",
|
||||
"upload_status_errors": "Feil",
|
||||
"upload_status_uploaded": "Opplasta",
|
||||
"url": "URL",
|
||||
"usage": "Bruk",
|
||||
"user": "Brukar",
|
||||
"user_purchase_settings": "Kjøp",
|
||||
@@ -590,6 +639,7 @@
|
||||
"version_announcement_closing": "Din ven, Alex",
|
||||
"version_history": "Versjonshistorie",
|
||||
"version_history_item": "Installert {version} den {date}",
|
||||
"video": "Video",
|
||||
"video_hover_setting": "Spel av førehandsvisining medan du held over musepeikaren",
|
||||
"videos": "Videoar",
|
||||
"videos_count": "{count, plural, one {# Video} other {# Videoar}}",
|
||||
@@ -608,8 +658,11 @@
|
||||
"week": "Veke",
|
||||
"welcome": "Velkomen",
|
||||
"welcome_to_immich": "Velkomen til Immich",
|
||||
"wrong_pin_code": "Feil PIN kode",
|
||||
"x_of_total": "{x} av {total}",
|
||||
"year": "År",
|
||||
"years_ago": "{years, plural, one {# År} other {# År}} sidan",
|
||||
"yes": "Ja",
|
||||
"you": "Du",
|
||||
"zoom_image": "Forstørr bilete"
|
||||
}
|
||||
|
||||
+29
-9
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "Polecenie {command} nie powiodło się dla zadania: {job}",
|
||||
"force_delete_user_warning": "UWAGA: Użytkownik i wszystkie zasoby użytkownika zostaną natychmiast trwale usunięte. Nie można tego cofnąć, a plików nie będzie można przywrócić.",
|
||||
"image_format": "Format",
|
||||
"image_format_description": "Format WebP generuje mniejsze pliki niż JPEG, ale ich kodowanie trwa dłużej.",
|
||||
"image_format_description": "Format WebP generuje mniejsze pliki niż JPEG, ale ich kodowanie trwa dłużej. Format JPEG XL to najlepsze rozwiązanie, jeśli chodzi o kompresję zapewniającą wysoką jakość, jednak nie wszystkie przeglądarki i aplikacje obsługują ten format.",
|
||||
"image_fullsize_description": "Pełnowymiarowy obraz z usuniętymi metadanymi, używany przy powiększeniu",
|
||||
"image_fullsize_enabled": "Włącz generowanie obrazów o pełnym wymiarze",
|
||||
"image_fullsize_enabled_description": "Generuje pełnowymiarowe obrazy dla formatów nieprzyjaznych stronom internetowym. Gdy opcja „Preferuj osadzony podgląd” jest włączona, osadzone podglądy są używane bezpośrednio bez konwersji. Nie wpływa na formaty przyjazne stronom internetowym, takie jak JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Jakość podglądu od 1 do 100. Wyższa jest lepsza, ale tworzy większe pliki i może spowolnić reakcję aplikacji. Ustawienie niskiej wartości może wpłynąć na jakość uczenia maszynowego.",
|
||||
"image_preview_title": "Ustawienia podglądu",
|
||||
"image_progressive": "Progresywny",
|
||||
"image_progressive_description": "Koduj obrazy JPEG progresywnie, aby umożliwić stopniowe ładowanie i wyświetlanie. Nie ma to wpływu na obrazy WebP.",
|
||||
"image_progressive_description": "Koduj obrazy JPEG progresywnie, aby umożliwić stopniowe ładowanie i wyświetlanie. Nie ma to wpływu na inne formaty.",
|
||||
"image_quality": "Jakość",
|
||||
"image_resolution": "Rozdzielczość",
|
||||
"image_resolution_description": "Wyższe rozdzielczości pozwalają zachować więcej szczegółów, ale wymagają dłuższego kodowania, mają większy rozmiar pliku i mogą spowalniać reakcję aplikacji.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Upłynął czas żądania",
|
||||
"oauth_timeout_description": "Limit czasu żądania w milisekundach",
|
||||
"ocr_job_description": "Wykorzystaj uczenie maszynowe do rozpoznawania tekstu na zdjęciach",
|
||||
"passkey_additional_domains": "Dodatkowe domeny",
|
||||
"passkey_additional_domains_description": "Dodatkowe zaufane domeny (żądania z powiązanych domen). Będą one działać tylko wtedy, gdy domena klucza dostępu będzie również dostępna.",
|
||||
"passkey_domain": "Domena klucza dostępu",
|
||||
"passkey_domain_description": "Domena używana dla kluczy dostępu (strona polegająca) . Pozostaw puste, aby wartość została wywnioskowana z nagłówka „Origin”. Zmiana tej wartości spowoduje, że istniejące klucze dostępu przestaną działać.",
|
||||
"passkey_enable_description": "Zaloguj się za pomocą klucza dostępu",
|
||||
"passkey_settings": "Logowanie za pomocą klucza dostępu",
|
||||
"passkey_settings_description": "Zarządzaj ustawieniami logowania za pomocą klucza dostępu",
|
||||
"password_enable_description": "Zaloguj używając e-mail i hasła",
|
||||
"password_settings": "Logowanie Hasłem",
|
||||
"password_settings_description": "Zarządzaj ustawieniami logowania hasłem",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Usuń tylko kopię zapasową",
|
||||
"delete_local_dialog_ok_force": "Usuń mimo to",
|
||||
"delete_others": "Usuń pozostałe",
|
||||
"delete_passkey": "Usuń klucz dostępu",
|
||||
"delete_passkey_prompt": "Czy na pewno chcesz usunąć ten klucz dostępu?",
|
||||
"delete_permanently": "Usuń trwale",
|
||||
"delete_permanently_action_prompt": "{count} trwale usuniętych",
|
||||
"delete_shared_link": "Usuń udostępniony link",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} edytowana lokalizacja",
|
||||
"edit_location_dialog_title": "Lokalizacja",
|
||||
"edit_name": "Edytuj nazwę",
|
||||
"edit_passkey": "Edytuj klucz dostępu",
|
||||
"edit_people": "Edytuj osoby",
|
||||
"edit_person": "Edytuj osobę",
|
||||
"edit_tag": "Edytuj etykietę",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Wideo} other {Zdjęcie}} zrobione w {city}, {country} z {person1}, {person2} i {person3} dnia {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Wideo} other {Zdjęcie}} zrobione w {city}, {country} z {person1}, {person2} i {additionalCount, number} innymi dnia {date}",
|
||||
"immich_logo": "Logo Immich",
|
||||
"immich_web_interface": "Interfejs internetowy Immich",
|
||||
"import_from_json": "Wczytaj z JSON",
|
||||
"import_path": "Ścieżka importu",
|
||||
"in_albums": "W {count, plural, one {# albumie} other {# albumach}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Ostatni",
|
||||
"last_months": "{count, plural, one {Zeszły miesiąc} few {# zeszłe miesiące} other {# zeszłych miesięcy}}",
|
||||
"last_seen": "Ostatnio widziane",
|
||||
"last_used": "Ostatnio użyty",
|
||||
"latest_version": "Najnowsza wersja",
|
||||
"latitude": "Szerokość geograficzna",
|
||||
"leave": "Opuść",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Logowanie zostało wyłączone",
|
||||
"login_password_changed_error": "Wystąpił błąd podczas aktualizacji hasła",
|
||||
"login_password_changed_success": "Hasło zostało zmienione",
|
||||
"login_with_passkey": "Zaloguj się przy pomocy klucza dostępu",
|
||||
"logout_all_device_confirmation": "Czy na pewno chcesz wylogować się ze wszystkich urządzeń?",
|
||||
"logout_this_device_confirmation": "Czy na pewno chcesz wylogować to urządzenie?",
|
||||
"logs": "Logi",
|
||||
@@ -1401,6 +1412,7 @@
|
||||
"manage_media_access_title": "Dostęp do zarządzania mediami",
|
||||
"manage_oauth_account": "Zarządzaj kontem OAuth",
|
||||
"manage_people": "Zarządzaj osobami",
|
||||
"manage_people_access_description_v2": "Przyznaj innym użytkownikom dostęp do {count, plural, one {tej osoby} other {twoich osób}}, umożliwiając im przeglądanie lub zarządzanie {count, plural, one {nią} other {nimi}} w Twoim imieniu. Ta czynność nie powoduje udostępnienia żadnych zasobów.",
|
||||
"manage_person_access": "Zarządzaj dostępem",
|
||||
"manage_sharing_with_other_users": "Zarządzaj udostępnianiem innym użytkownikom",
|
||||
"manage_sharing_with_partners": "Zarządzaj dzieleniem z partnerami",
|
||||
@@ -1409,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Zarządzaj swoimi kluczami API",
|
||||
"manage_your_devices": "Zarządzaj swoimi zalogowanymi urządzeniami",
|
||||
"manage_your_oauth_connection": "Zarządzaj swoim połączeniem OAuth",
|
||||
"manage_your_passkeys": "Zarządzaj swoimi kluczami dostępu",
|
||||
"map": "Mapa",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {W tej okolicy nie ma żadnych zdjęć} one {# zdjęcie} few {# zdjęcia} other {# zdjęć}}",
|
||||
"map_cannot_get_user_location": "Nie można uzyskać lokalizacji użytkownika",
|
||||
@@ -1528,6 +1541,7 @@
|
||||
"new_album": "Nowy album",
|
||||
"new_api_key": "Nowy Klucz API",
|
||||
"new_feature": "Nowa funkcjonalność",
|
||||
"new_passkey": "Nowy klucz dostępu",
|
||||
"new_password": "Nowe hasło",
|
||||
"new_person": "Nowa osoba",
|
||||
"new_pin_code": "Nowy kod PIN",
|
||||
@@ -1640,6 +1654,8 @@
|
||||
"partner_sharing": "Dzielenie z partnerami",
|
||||
"partners": "Partnerzy",
|
||||
"partners_description": "Udostępniaj swoje zdjęcia i filmy innym użytkownikom",
|
||||
"passkeys": "{count, plural, one {klucz} other {klucze}} dostępu",
|
||||
"passkeys_not_supported": "Ta przeglądarka nie obsługuje kluczy dostępu",
|
||||
"password": "Hasło",
|
||||
"password_does_not_match": "Hasła nie są takie same",
|
||||
"password_required": "Hasło Wymagane",
|
||||
@@ -1824,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {Usunięto #}} z ulubionych",
|
||||
"removed_from_stack": "Usunięto zasób ze stosu",
|
||||
"removed_memory": "Wspomnienie usunięte",
|
||||
"removed_passkey": "Usunięto klucz dostępu: {name}",
|
||||
"removed_tagged_assets": "Usunięto etykietę z {count, plural, one {# zasobu} other {# zasobów}}",
|
||||
"rename": "Zmień nazwę",
|
||||
"repository": "Repozytorium",
|
||||
@@ -1985,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Po włączeniu, możesz przejść do poprzedniego/następnego obrazu, dotykając lewej/prawej zewnętrznej ćwiartki ekranu.",
|
||||
"setting_image_navigation_enable_title": "Dotknij, aby przejść",
|
||||
"setting_image_navigation_title": "Nawigacja obrazów",
|
||||
"setting_image_viewer_help": "Przeglądarka szczegółów najpierw ładuje małą miniaturę, następnie ładuje podgląd obrazu średniej wielkości (jeśli jest włączony), a na koniec ładuje oryginał (jeśli jest włączony).",
|
||||
"setting_image_viewer_help": "Przeglądarka szczegółów najpierw ładuje małą miniaturę, następnie ładuje podgląd obrazu średniej wielkości, a na koniec ładuje oryginał (jeśli jest włączony).",
|
||||
"setting_image_viewer_original_subtitle": "Włącz, aby załadować oryginalny obraz w pełnej rozdzielczości (duży!). Wyłącz, aby zmniejszyć zużycie danych (zarówno w sieci, jak i w pamięci podręcznej urządzenia).",
|
||||
"setting_image_viewer_original_title": "Załaduj oryginalny obraz",
|
||||
"setting_image_viewer_preview_subtitle": "Włącz, aby załadować obraz w średniej rozdzielczości. Wyłącz, aby załadować bezpośrednio oryginał lub używać tylko miniatury.",
|
||||
"setting_image_viewer_preview_title": "Załaduj podgląd obrazu",
|
||||
"setting_languages_apply": "Zastosuj",
|
||||
"setting_languages_subtitle": "Zmień język aplikacji",
|
||||
"setting_notifications_notify_minutes": "{count} minut",
|
||||
@@ -2009,8 +2024,9 @@
|
||||
"share_everyone": "Udostępnij wszystkich",
|
||||
"share_everyone_description": "Przyznaj {user} dostęp do wszystkich swoich osób.",
|
||||
"share_link": "Udostępnij link",
|
||||
"share_logs": "Udostępnij logi",
|
||||
"share_original": "Użyj orginału (duży)",
|
||||
"share_preview": "Użyj miniatury (mała)",
|
||||
"share_preview": "Użyj podglądu (mały)",
|
||||
"share_quality_body": "Naciśnij i przytrzymaj przycisk udostępniania, aby wybrać jakość obrazu przed udostępnieniem.",
|
||||
"share_quality_title": "Wybierz jakość udostępnianych zasobów",
|
||||
"share_with": "Udostępniają mi dostęp",
|
||||
@@ -2060,7 +2076,6 @@
|
||||
"shared_link_password_description": "Wymagaj hasła dostępu dla udostępnionego linku",
|
||||
"shared_links": "Udostępnione linki",
|
||||
"shared_links_description": "Udostępnij zdjęcia oraz filmy przez link",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, one {# udostępnione zdjęcie lub film.} other {# udostępnione zdjęcia i filmy.}}",
|
||||
"shared_with": "Udostępniono z",
|
||||
"shared_with_count": "Udostępniono ({count})",
|
||||
"shared_with_me": "Udostępniono mi",
|
||||
@@ -2188,6 +2203,8 @@
|
||||
"theme": "Motyw",
|
||||
"theme_selection": "Wybór motywu",
|
||||
"theme_selection_description": "Automatycznie zmień motyw na jasny lub ciemny zależnie od ustawień systemu",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Podczas przeciągania paska przewijania przewijaj płynnie, zamiast przeskakiwać co miesiąc",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Płynne przewijanie osi czasu",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Pokaż wskaźnik przechowywania na kafelkach zasobów",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Liczba zasobów w wierszu ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Zastosuj kolor podstawowy do powierzchni tła.",
|
||||
@@ -2228,6 +2245,8 @@
|
||||
"trigger": "Wyzwalacz",
|
||||
"trigger_asset_metadata_extraction": "Ekstrakcja metadanych zasobów",
|
||||
"trigger_asset_metadata_extraction_description": "Wyzwalane po wyodrębnieniu metadanych EXIF z zasobu",
|
||||
"trigger_asset_ocr_extraction": "Ekstrakcja OCR z zasobu",
|
||||
"trigger_asset_ocr_extraction_description": "Wyzwalane po wyodrębnieniu tekstu OCR z zasobu",
|
||||
"trigger_asset_tagged": "Zasób z etykietą",
|
||||
"trigger_asset_tagged_description": "Wyzwalane po dodaniu etykiety do zasobu",
|
||||
"trigger_asset_uploaded": "Przesyłanie zasobu",
|
||||
@@ -2303,7 +2322,7 @@
|
||||
"user": "Użytkownik",
|
||||
"user_has_been_deleted": "Ten użytkownik został usunięty.",
|
||||
"user_id": "ID użytkownika",
|
||||
"user_liked": "{user} polubił {type, select, photo {to zdjęcie} video {to wideo} asset {ten zasób} other {to}}",
|
||||
"user_liked": "{user} polubił {type, select, image {to zdjęcie} video {to wideo} other {to}}",
|
||||
"user_pin_code_settings": "Kod PIN",
|
||||
"user_pin_code_settings_description": "Zarządzaj swoim kodem PIN",
|
||||
"user_privacy": "Ochrona prywatności użytkownika",
|
||||
@@ -2339,6 +2358,7 @@
|
||||
"view_group": "Wyświetl grupę",
|
||||
"view_in_timeline": "Pokaż na osi czasu",
|
||||
"view_link": "Zobacz link",
|
||||
"view_more": "Zobacz więcej",
|
||||
"view_name": "Widok",
|
||||
"view_next_asset": "Wyświetl następny zasób",
|
||||
"view_previous_asset": "Wyświetl poprzedni zasób",
|
||||
|
||||
+22
-6
@@ -323,6 +323,12 @@
|
||||
"oauth_timeout": "Tempo Limite de Requisição",
|
||||
"oauth_timeout_description": "Tempo limite para requisições, em milissegundos",
|
||||
"ocr_job_description": "Utiliza a aprendizagem de máquina para reconhecer texto em imagens",
|
||||
"passkey_additional_domains": "Domínios adicionais",
|
||||
"passkey_additional_domains_description": "Domínios adicionais e de confiança (pedidos de origem relacionados). Estes apenas irão funcionar se o domínio passkey também estiver disponível.",
|
||||
"passkey_domain": "Domínio passkey",
|
||||
"passkey_enable_description": "Iniciar sessão com uma chave de acesso",
|
||||
"passkey_settings": "Início de Sessão com Chave de Acesso",
|
||||
"passkey_settings_description": "Gerir as definições de início de sessão com chave de acesso",
|
||||
"password_enable_description": "Iniciar sessão com e-mail e palavra-passe",
|
||||
"password_settings": "Palavra-passe de acesso",
|
||||
"password_settings_description": "Gerir definições de inicio de sessão e palavra-passe",
|
||||
@@ -873,6 +879,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Eliminar apenas ficheiros com cópia de segurança",
|
||||
"delete_local_dialog_ok_force": "Eliminar na mesma",
|
||||
"delete_others": "Eliminar outros",
|
||||
"delete_passkey": "Eliminar chave de acesso",
|
||||
"delete_passkey_prompt": "Tem a certeza de que quer eliminar esta chave de acesso?",
|
||||
"delete_permanently": "Eliminar permanentemente",
|
||||
"delete_permanently_action_prompt": "{count} eliminados permanentemente",
|
||||
"delete_shared_link": "Eliminar link de partilha",
|
||||
@@ -942,6 +950,7 @@
|
||||
"edit_location_action_prompt": "{count} locais alterados",
|
||||
"edit_location_dialog_title": "Localização",
|
||||
"edit_name": "Editar nome",
|
||||
"edit_passkey": "Editar chave de acesso",
|
||||
"edit_people": "Editar pessoas",
|
||||
"edit_person": "Editar pessoa",
|
||||
"edit_tag": "Editar etiqueta",
|
||||
@@ -1239,7 +1248,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Vídeo gravado} other {Foto tirada}} em {city}, {country} com {person1}, {person2}, e {person3} em {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Vídeo gravado} other {Foto tirada}} em {city}, {country} com {person1}, {person2}, e outras {additionalCount, number} pessoas em {date}",
|
||||
"immich_logo": "Logotipo do Immich",
|
||||
"immich_web_interface": "Interface Web do Immich",
|
||||
"import_from_json": "Importar a partir de JSON",
|
||||
"import_path": "Caminho de importação",
|
||||
"in_albums": "Em {count, plural, one {# álbum} other {# álbuns}}",
|
||||
@@ -1287,6 +1295,7 @@
|
||||
"last": "Último",
|
||||
"last_months": "{count, plural, one {No último mês} other {Nos últimos # meses}}",
|
||||
"last_seen": "Visto pela ultima vez",
|
||||
"last_used": "Utilizado pela última vez",
|
||||
"latest_version": "Versão mais recente",
|
||||
"latitude": "Latitude",
|
||||
"leave": "Sair",
|
||||
@@ -1362,6 +1371,7 @@
|
||||
"login_has_been_disabled": "O início de sessão foi desativado",
|
||||
"login_password_changed_error": "Ocorreu um erro ao atualizar a sua palavra-passe",
|
||||
"login_password_changed_success": "Palavra-passe atualizada com sucesso",
|
||||
"login_with_passkey": "Iniciar sessão com chave de acesso",
|
||||
"logout_all_device_confirmation": "Tem a certeza de que deseja terminar a sessão em todos os dispositivos?",
|
||||
"logout_this_device_confirmation": "Tem a certeza de que deseja terminar a sessão deste dispositivo?",
|
||||
"logs": "Logs",
|
||||
@@ -1410,6 +1420,7 @@
|
||||
"manage_your_api_keys": "Gerir as suas Chaves de API",
|
||||
"manage_your_devices": "Gerir os seus dispositivos com sessão iniciada",
|
||||
"manage_your_oauth_connection": "Gerir a sua ligação ao OAuth",
|
||||
"manage_your_passkeys": "Gerir as suas chaves de acesso",
|
||||
"map": "Mapa",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Não há fotos nesta área} one {# foto} other {# fotos}}",
|
||||
"map_cannot_get_user_location": "Impossível obter a sua localização",
|
||||
@@ -1529,6 +1540,7 @@
|
||||
"new_album": "Novo Álbum",
|
||||
"new_api_key": "Nova Chave de API",
|
||||
"new_feature": "Nova Funcionalidade",
|
||||
"new_passkey": "Nova chave de acesso",
|
||||
"new_password": "Nova palavra-passe",
|
||||
"new_person": "Nova Pessoa",
|
||||
"new_pin_code": "Novo código PIN",
|
||||
@@ -1641,6 +1653,8 @@
|
||||
"partner_sharing": "Partilha com Parceiro",
|
||||
"partners": "Parceiros",
|
||||
"partners_description": "Partilhar as suas fotos e vídeos com outros utilizadores",
|
||||
"passkeys": "{count, plural, one {Chave} other {Chaves}} de acesso",
|
||||
"passkeys_not_supported": "Chaves de acesso não são suportadas neste navegador",
|
||||
"password": "Palavra-passe",
|
||||
"password_does_not_match": "A palavra-passe não condiz",
|
||||
"password_required": "A palavra-passe é obrigatória",
|
||||
@@ -1825,6 +1839,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {Removidos #}} dos favoritos",
|
||||
"removed_from_stack": "Ficheiro foi removido do empilhamento",
|
||||
"removed_memory": "Memória removida",
|
||||
"removed_passkey": "Chave de acesso removida: {name}",
|
||||
"removed_tagged_assets": "Removida a etiqueta de {count, plural, one {# ficheiro} other {# ficheiros}}",
|
||||
"rename": "Mudar o nome",
|
||||
"repository": "Repositório",
|
||||
@@ -1986,11 +2001,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Se ativado, pode navegar entre as imagens seguintes e anteriores ao tocar nas partes esquerda e direita do ecrã.",
|
||||
"setting_image_navigation_enable_title": "Tocar para Navegar",
|
||||
"setting_image_navigation_title": "Navegação de Imagens",
|
||||
"setting_image_viewer_help": "O visualizador carrega primeiro a miniatura pequena, depois carrega a visualização de tamanho médio (se ativado) e, finalmente, carrega o original (se ativado).",
|
||||
"setting_image_viewer_help": "O visualizador carrega primeiro a miniatura pequena, depois carrega a visualização de tamanho médio e, por fim, carrega o original (se ativado).",
|
||||
"setting_image_viewer_original_subtitle": "Ative para carregar a imagem original em resolução total (grande!). Desative para reduzir o uso de dados (na rede e no cache do dispositivo).",
|
||||
"setting_image_viewer_original_title": "Carregar imagem original",
|
||||
"setting_image_viewer_preview_subtitle": "Ative para carregar uma imagem de resolução média. Desative para carregar diretamente o original ou usar apenas a miniatura.",
|
||||
"setting_image_viewer_preview_title": "Carregar imagem de pré-visualização",
|
||||
"setting_languages_apply": "Aplicar",
|
||||
"setting_languages_subtitle": "Alterar o idioma da aplicação",
|
||||
"setting_notifications_notify_minutes": "{count} minutos",
|
||||
@@ -2010,8 +2023,9 @@
|
||||
"share_everyone": "Partilhar todos",
|
||||
"share_everyone_description": "Conceder a {user} acesso a todas as suas pessoas.",
|
||||
"share_link": "Partilhar ligação",
|
||||
"share_logs": "Partilhar Registos",
|
||||
"share_original": "Utilizar original (grande)",
|
||||
"share_preview": "Utilizar miniatura (pequeno)",
|
||||
"share_preview": "Utilizar pré-visualização (pequeno)",
|
||||
"share_quality_body": "Toque e segure no botão de partilha para escolher a qualidade da imagem antes de a partilhar.",
|
||||
"share_quality_title": "Escolha a qualidade de partilha",
|
||||
"share_with": "Partilhar acesso com",
|
||||
@@ -2061,7 +2075,6 @@
|
||||
"shared_link_password_description": "Exigir uma palavra-passe para aceder a este link partilhado",
|
||||
"shared_links": "Links partilhados",
|
||||
"shared_links_description": "Partilhar fotos e videos com um link",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# Fotos & videos partilhados.}}",
|
||||
"shared_with": "Partilhado com",
|
||||
"shared_with_count": "Partilhado ({count})",
|
||||
"shared_with_me": "Partilhado comigo",
|
||||
@@ -2189,6 +2202,8 @@
|
||||
"theme": "Tema",
|
||||
"theme_selection": "Selecionar tema",
|
||||
"theme_selection_description": "Definir automaticamente o tema como claro ou escuro com base na preferência do sistema do seu navegador",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Deslocar a página de forma contínua ao arrastar a barra lateral em vez de prender aos meses",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Deslocamento suave pela linha do tempo",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de armazenamento na grade de fotos",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Quantidade de ficheiros por linha ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Aplica a cor primária ao fundo.",
|
||||
@@ -2340,6 +2355,7 @@
|
||||
"view_group": "Ver grupo",
|
||||
"view_in_timeline": "Ver na linha do tempo",
|
||||
"view_link": "Ver link",
|
||||
"view_more": "Ver mais",
|
||||
"view_name": "Ver",
|
||||
"view_next_asset": "Ver próximo ficheiro",
|
||||
"view_previous_asset": "Ver ficheiro anterior",
|
||||
|
||||
+6
-4
@@ -323,6 +323,12 @@
|
||||
"oauth_timeout": "Tempo Limite de Requisição",
|
||||
"oauth_timeout_description": "Tempo limite para requisições, em milissegundos",
|
||||
"ocr_job_description": "Usa aprendizado de máquina para reconhecer texto em imagens",
|
||||
"passkey_additional_domains": "Dominios adicionais",
|
||||
"passkey_additional_domains_description": "Domínios adicionais e confiáveis (solicitações de origem relacionada). Eles só funcionarão se o domínio da chave de acesso (passkey) também estiver acessível.",
|
||||
"passkey_domain": "Chave de acesso (passkey) do domínio.",
|
||||
"passkey_enable_description": "Login com chave de acesso",
|
||||
"passkey_settings": "chave de acesso de login",
|
||||
"passkey_settings_description": "Gerenciar configurações de login com chave de acesso",
|
||||
"password_enable_description": "Login com e-mail e senha",
|
||||
"password_settings": "Senha de acesso",
|
||||
"password_settings_description": "Gerenciar configurações de login e senha",
|
||||
@@ -1233,7 +1239,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Vídeo gravado} other {Foto tirada}} em {city}, {country} com {person1}, {person2}, e {person3} em {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Vídeo gravado} other {Foto tirada}} em {city}, {country} com {person1}, {person2}, e {additionalCount, number} outros em {date}",
|
||||
"immich_logo": "Logo do Immich",
|
||||
"immich_web_interface": "Interface Web do Immich",
|
||||
"import_from_json": "Importar do JSON",
|
||||
"import_path": "Caminho de importação",
|
||||
"in_albums": "Em {count, plural, one {# álbum} other {# álbuns}}",
|
||||
@@ -1967,8 +1972,6 @@
|
||||
"setting_image_viewer_help": "O visualizador de imagens carrega primeiro a miniatura pequena, depois carrega a imagem de tamanho médio (se ativado) e, por fim, carrega o original (se ativado).",
|
||||
"setting_image_viewer_original_subtitle": "Ative para carregar a imagem original em resolução máxima (grande!). Desative para reduzir o uso de dados (tanto na rede quanto no cache do dispositivo).",
|
||||
"setting_image_viewer_original_title": "Carregar imagem original",
|
||||
"setting_image_viewer_preview_subtitle": "Ative para carregar uma imagem de resolução média. Desative para carregar diretamente o original ou usar apenas a miniatura.",
|
||||
"setting_image_viewer_preview_title": "Carregar imagem de pré-visualização",
|
||||
"setting_languages_apply": "Aplicar",
|
||||
"setting_languages_subtitle": "Alterar o idioma do aplicativo",
|
||||
"setting_notifications_notify_minutes": "{count} minutos",
|
||||
@@ -2034,7 +2037,6 @@
|
||||
"shared_link_password_description": "Exija uma senha para acessar este link compartilhado",
|
||||
"shared_links": "Links",
|
||||
"shared_links_description": "Compartilhar fotos e vídeos com um link",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, one {# Foto & vídeo compartilhado.} other {# Fotos & vídeos compartilhados.}}",
|
||||
"shared_with_me": "Compartilhado comigo",
|
||||
"shared_with_partner": "Compartilhado com {partner}",
|
||||
"sharing": "Compartilhamento",
|
||||
|
||||
+18
-9
@@ -34,7 +34,7 @@
|
||||
"add_to_albums": "Adaugă la albume",
|
||||
"add_to_albums_count": "Adaugă la albume ({count})",
|
||||
"add_to_bottom_bar": "Adaugă la",
|
||||
"add_upload_to_stack": "Încarcă și adaugă la stivă",
|
||||
"add_upload_to_stack": "Încarcă și {isStack, select, true {adaugă la stivă} other {creează o stivă}}",
|
||||
"add_url": "Adaugă adresa URL",
|
||||
"add_user": "Adaugă utilizator",
|
||||
"added_to_archive": "Adăugat la arhivă",
|
||||
@@ -55,7 +55,7 @@
|
||||
"backup_onboarding_1_description": "copie externă în cloud sau într-o altă locație fizică.",
|
||||
"backup_onboarding_2_description": "copii locale pe diferite dispozitive. Include fișierele principale și o copie de rezervă a acestor fișiere la nivel local.",
|
||||
"backup_onboarding_3_description": "numărul total de copii ale datelor dvs., inclusiv fișierele originale. Aceasta include 1 copie externă și 2 copii locale.",
|
||||
"backup_onboarding_description": "Pentru a vă proteja datele, vă recomandăm să utilizați o <backblaze-link>strategie de backup 3-2-1</backblaze-link>. Pentru o soluție completă de backup, ar trebui să păstrați copii ale fotografiilor/videoclipurilor încărcate, precum și ale bazei de date Immich.",
|
||||
"backup_onboarding_description": "Pentru a vă proteja datele, o strategie de backup <backblaze-link>3-2-1 este recomandată</backblaze-link>. Ar trebui să păstrați copii ale fotografiilor/videoclipurilor încărcate, precum și ale bazei de date Immich, pentru o soluție completă de backup.",
|
||||
"backup_onboarding_footer": "Pentru mai multe informații despre copierea de rezervă a Immich, consultați <link>documentația</link>.",
|
||||
"backup_onboarding_parts_title": "O copie de rezervă 3-2-1 include:",
|
||||
"backup_onboarding_title": "Copii de rezervă",
|
||||
@@ -293,7 +293,7 @@
|
||||
"notification_enable_email_notifications": "Activare notificări pe email",
|
||||
"notification_settings": "Setări notificare",
|
||||
"notification_settings_description": "Gestionează setările pentru notificări, inclusiv adresa de email",
|
||||
"oauth_account_management_url": "URL pentru management cont",
|
||||
"oauth_account_management_url": "URL gestionare cont",
|
||||
"oauth_account_management_url_description": "Locație în furnizorul de identitate extern unde un utilizator își poate gestiona setările sau profilul.",
|
||||
"oauth_allow_insecure_requests": "Permite cereri nesigure",
|
||||
"oauth_allow_insecure_requests_description": "AVERTISMENT: Acest lucru dezactivează validarea certificatelor TLS pentru cererile OAuth și te poate expune la atacuri MITM.",
|
||||
@@ -369,6 +369,7 @@
|
||||
"storage_template_migration_job": "Sarcină Migrare Șablon Stocare",
|
||||
"storage_template_more_details": "Pentru mai multe detalii despre aceasta caracteristică, accesați <template-link>Șablon stocare</template-link> si <implications-link>implicațiile</implications-link>",
|
||||
"storage_template_onboarding_description_v3": "Șabloanele de stocare îți permit să definești o structură personalizată de directoare pe disc pentru fișierele încărcate. Aceasta poate fi modificată oricând ulterior.",
|
||||
"storage_template_option_custom": "Personalizat",
|
||||
"storage_template_option_custom_description": "Creează-ți propria structură de directoare folosind variabile de șablon",
|
||||
"storage_template_option_date_description": "Sortează fișierele în directoare pentru an, lună și zi",
|
||||
"storage_template_option_none": "Farǎ șablon",
|
||||
@@ -555,6 +556,7 @@
|
||||
"allow_public_user_to_download": "Permite utilizatorului public să descarce",
|
||||
"allow_public_user_to_upload": "Permite utilizatorului public să încarce",
|
||||
"allowed": "Permis",
|
||||
"also_known_as": "alias",
|
||||
"alt_text_qr_code": "Cod QR",
|
||||
"always_keep": "Păstrează întotdeauna",
|
||||
"always_keep_photos_hint": "Eliberează Spațiu va păstra toate fotografiile de pe acest dispozitiv.",
|
||||
@@ -667,7 +669,9 @@
|
||||
"biometric_no_options": "Nu sunt disponibile opțiuni biometrice",
|
||||
"biometric_not_available": "Autentificarea biometrică nu este disponibilă pe acest dispozitiv",
|
||||
"birthdate_set_description": "Data nașterii este utilizată pentru a calcula vârsta acestei persoane la momentul realizării fotografiei.",
|
||||
"birthday_memory_age": "{age, selectordinal, one {Prima} other {A #-a}} zi de naștere",
|
||||
"birthday_memory_title": "Zi naştere {name}",
|
||||
"birthday_memory_title_with_age": "Ziua de naștere a lui {name} · {age, plural, one {# an} few {# ani} other {# de ani}}",
|
||||
"blurred_background": "Fundal neclar",
|
||||
"browse_templates": "Răsfoiește șabloanele",
|
||||
"bugs_and_feature_requests": "Erori și solicitări de caracteristici",
|
||||
@@ -815,7 +819,7 @@
|
||||
"create_shared_album_page_share_select_photos": "Selectează fotografii",
|
||||
"create_shared_link": "Creați un link partajat",
|
||||
"create_tag": "Creează etichetă",
|
||||
"create_tag_description": "Creează o etichetă nouă. Pentru etichete imbricate, te rog să introduci calea completă a etichetei, inclusiv bare oblice (/).",
|
||||
"create_tag_description": "Creează o nouă etichetă. Pentru etichetele imbricate, calea completă unde va fi plasată noua etichetă este afișată mai jos.",
|
||||
"create_user": "Creează utilizator",
|
||||
"create_workflow": "Creați un flux de lucru",
|
||||
"created": "Creat",
|
||||
@@ -1235,7 +1239,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {imagine}} preluată în {city}, {country} cu {person1}, {person2}, și {person3} în {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {imagine}} preluată în {city}, {country} cu {person1}, {person2}, și {additionalCount, number} alții în {date}",
|
||||
"immich_logo": "Logo Immich",
|
||||
"immich_web_interface": "Interfața Web Immich",
|
||||
"import_from_json": "Importă din JSON",
|
||||
"import_path": "Calea de import",
|
||||
"in_albums": "În {count, plural, one {# album} other {# albume}}",
|
||||
@@ -1397,6 +1400,7 @@
|
||||
"manage_media_access_title": "Acces la gestionarea mediilor",
|
||||
"manage_oauth_account": "Gestionează contul OAuth",
|
||||
"manage_people": "Gestionează persoanele",
|
||||
"manage_people_access_description_v2": "Oferă altor utilizatori acces la {count, plural, one {această persoană} few {persoanele tale} other {persoanele tale}}, permițându-le să le vizualizeze sau să le gestioneze în numele tău. Această acțiune nu distribuie niciun fișier media.",
|
||||
"manage_person_access": "Gestionează accesul",
|
||||
"manage_sharing_with_other_users": "Gestionează sharing cu alți utilizatori",
|
||||
"manage_sharing_with_partners": "Gestionați partajarea cu partenerii",
|
||||
@@ -1406,7 +1410,7 @@
|
||||
"manage_your_devices": "Gestionați-vă dispozitivele conectate",
|
||||
"manage_your_oauth_connection": "Gestionați-vă conexiunea OAuth",
|
||||
"map": "Hartă",
|
||||
"map_assets_in_bounds": "{număr, plural, =0 {Nu există fotografii în această zonă} una {# fotografie} alta {# fotografii}}",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Nicio fotografie în această zonă} one {# fotografie} few {# fotografii} other {# de fotografii}}",
|
||||
"map_cannot_get_user_location": "Nu se poate obține locația utilizatorului",
|
||||
"map_location_picker_page_use_location": "Folosește această locație",
|
||||
"map_location_service_disabled_content": "Serviciul de localizare trebuie să fie activat pentru a afișa resursele din locația actuală. Dorești să o activezi acum?",
|
||||
@@ -1467,6 +1471,7 @@
|
||||
"memories": "Amintiri",
|
||||
"memories_all_caught_up": "Sunteți la zi",
|
||||
"memories_check_back_tomorrow": "Reveniți mâine pentru mai multe amintiri",
|
||||
"memories_current": "Actuale",
|
||||
"memories_setting_description": "Administrați ce vedeți în amintiri",
|
||||
"memories_show_upcoming": "Afișează amintirile viitoare",
|
||||
"memories_start_over": "Începeți de la început",
|
||||
@@ -1509,6 +1514,7 @@
|
||||
"my_immich_title": "Linkul meu Immich",
|
||||
"name": "Nume",
|
||||
"name_or_nickname": "Nume sau poreclǎ",
|
||||
"name_plus_more_people": "{name} + {count, plural, one {# persoană} few {# persoane} other {# de persoane}}",
|
||||
"name_required": "Numele este obligatoriu",
|
||||
"navigate": "Navighează",
|
||||
"navigate_to_time": "Navigheaza la Timp",
|
||||
@@ -1651,6 +1657,7 @@
|
||||
"pending": "În așteptare",
|
||||
"people": "Persoane",
|
||||
"people_cluster_group": "Grup de persoane similare",
|
||||
"people_count": "{count, plural, one {# persoană} few {# persoane} other {# de persoane}}",
|
||||
"people_edits_count": "Editat {count, plural, one {# persoană} other {# persoane}}",
|
||||
"people_feature_description": "Răsfoiți fotografii și videoclipuri grupate după persoane",
|
||||
"people_search_description": "Selectează una sau mai multe persoane pentru a găsi fotografiile în care apar.",
|
||||
@@ -1672,6 +1679,7 @@
|
||||
"person_edit_only_change_for_me_description": "Bifează pentru a aplica modificările doar pentru utilizatorul tău",
|
||||
"person_hidden": "{name}{hidden, select, true { (ascuns)} other {}}",
|
||||
"person_recognized": "Persoană recunoscută",
|
||||
"person_share_no_users": "Fiecare utilizator din cluster-ul tău are deja acces la această persoană.",
|
||||
"person_update_strategy": "Aplică modificările la",
|
||||
"person_update_strategy_description": "Ce persoane să notifici atunci când modifici numele sau data nașterii",
|
||||
"person_update_strategy_everyone": "Toți cei cu acces partajat",
|
||||
@@ -1890,6 +1898,7 @@
|
||||
"search_filter_apply": "Aplicați filtrul",
|
||||
"search_filter_camera_title": "Selectați tipul de cameră",
|
||||
"search_filter_date": "Dată",
|
||||
"search_filter_date_custom": "Personalizat",
|
||||
"search_filter_date_description": "Filtrează în funcție de momentul în care au fost făcute fotografiile, folosind un interval prestabilit sau un interval de date personalizat.",
|
||||
"search_filter_date_interval": "{start} la {end}",
|
||||
"search_filter_date_last_30_days": "Ultimele 30 de zile",
|
||||
@@ -1979,8 +1988,6 @@
|
||||
"setting_image_viewer_help": "Vizualizatorul detaliilor încarcă mai întâi miniatura mică, apoi încarcă previzualizarea de dimensiune medie (dacă este activată), în cele din urmă încarcă originalul (dacă este activat).",
|
||||
"setting_image_viewer_original_subtitle": "Activează pentru a încărca imaginea originală în rezoluție completă (mare!). Dezactivează pentru a reduce consumul de date (atat pe rețea, cât și în memoria cache a dispozitivului).",
|
||||
"setting_image_viewer_original_title": "Încarcă fotografia originală",
|
||||
"setting_image_viewer_preview_subtitle": "Activează pentru a încărca o imagine în rezoluție medie. Dezactivează pentru a încărca direct imaginea originală sau doar a utiliza miniatura.",
|
||||
"setting_image_viewer_preview_title": "Încarcă imaginea de previzualizare",
|
||||
"setting_languages_apply": "Aplică",
|
||||
"setting_languages_subtitle": "Schimbați limba aplicației",
|
||||
"setting_notifications_notify_minutes": "{count} minute",
|
||||
@@ -1997,6 +2004,7 @@
|
||||
"share": "Distribuiți",
|
||||
"share_back": "Partajează înapoi",
|
||||
"share_dialog_preparing": "Se pregătește...",
|
||||
"share_everyone": "Distribuie toate persoanele",
|
||||
"share_everyone_description": "Oferă utilizatorului {user} acces la toate persoanele tale.",
|
||||
"share_link": "Partajați linkul",
|
||||
"share_original": "Folosește varianta originală (mare)",
|
||||
@@ -2050,7 +2058,6 @@
|
||||
"shared_link_password_description": "Solicită o parolă pentru a accesa acest link partajat",
|
||||
"shared_links": "Link-uri distribuite",
|
||||
"shared_links_description": "Partajare imagini și clipuri printr-un link",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# fotografii și videoclipuri partajate.}}",
|
||||
"shared_with": "Partajat cu",
|
||||
"shared_with_count": "Partajate ({count})",
|
||||
"shared_with_me": "Distribuit cu mine",
|
||||
@@ -2165,8 +2172,10 @@
|
||||
"tag_created": "Etichetă creată: {tag}",
|
||||
"tag_face": "Etichetează fața",
|
||||
"tag_feature_description": "Răsfoirea fotografiilor și videoclipurilor grupate după subiecte de etichete logice",
|
||||
"tag_full_path": "Calea completă: {tag}",
|
||||
"tag_not_found_question": "Nu găsești eticheta? <link>Creează o etichetă nouă.</link>",
|
||||
"tag_people": "Etichetează Persoane",
|
||||
"tag_plus_more_tags": "{tag} + {count, plural, one {# tag} few {# tag-uri} other {# de tag-uri}}",
|
||||
"tag_updated": "Etichetă actualizată: {tag}",
|
||||
"tagged_assets": "Etichetat {count, plural, one {# resursă} other {# resurse}}",
|
||||
"tags": "Etichete",
|
||||
|
||||
+17
-19
@@ -52,10 +52,10 @@
|
||||
"backup_database": "Создать резервную копию базы данных",
|
||||
"backup_database_enable_description": "Включить создание дампов базы данных",
|
||||
"backup_keep_last_amount": "Количество хранимых резервных копий базы данных",
|
||||
"backup_onboarding_1_description": "хранение дополнительной внешней копии в облаке или другом физическом месте.",
|
||||
"backup_onboarding_2_description": "хранение основных файлов и их локальной копии на двух разных типах носителей.",
|
||||
"backup_onboarding_3_description": "создание трёх копий данных, включая исходные файлы: 2 локальных копии и 1 внешнюю.",
|
||||
"backup_onboarding_description": "Для надёжной защиты рекомендуется использовать стратегию резервирования данных <backblaze-link>3-2-1</backblaze-link>. Создавайте копии как загруженных фото и видео, так и базы данных Immich.",
|
||||
"backup_onboarding_1_description": "дополнительная внешняя копия в облаке или другом физическом месте.",
|
||||
"backup_onboarding_2_description": "локальных копии на двух разных устройствах (основное хранилище и резервная копия данных).",
|
||||
"backup_onboarding_3_description": "копии ваших данных, включая исходные файлы: 2 локальных копии и 1 внешнюю.",
|
||||
"backup_onboarding_description": "Для надёжной защиты данных рекомендуется использовать стратегию резервирования <backblaze-link>3-2-1</backblaze-link>. Создавайте копии не только ваших фото и видео, но и базы данных Immich.",
|
||||
"backup_onboarding_footer": "Дополнительная информация по резервному копированию Immich доступна в <link>документации</link>.",
|
||||
"backup_onboarding_parts_title": "Стратегия 3-2-1 подразумевает:",
|
||||
"backup_onboarding_title": "Резервное копирование",
|
||||
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "Команда {command} не выполнена для задачи: {job}",
|
||||
"force_delete_user_warning": "ПРЕДУПРЕЖДЕНИЕ: Это приведет к немедленному удалению пользователя и всех его объектов. Это действие невозможно отменить, файлы не смогут быть восстановлены.",
|
||||
"image_format": "Формат",
|
||||
"image_format_description": "WebP создает файлы меньшего размера, чем JPEG, но кодирует медленнее.",
|
||||
"image_format_description": "WebP создает файлы меньшего размера, чем JPEG, но кодирует медленнее. JPEG XL - лучший вариант для высококачественного сжатия, но не все браузеры и приложения его поддерживают.",
|
||||
"image_fullsize_description": "Полноразмерное изображение без метаданных, используется при увеличении",
|
||||
"image_fullsize_enabled": "Включить создание полноразмерного изображения",
|
||||
"image_fullsize_enabled_description": "Создавать полноразмерное изображение для форматов, не предназначенных для веба. Когда включен параметр «Предпочитать встроенное превью», встроенные превью используются напрямую без конверсии. Не влияет на веб-совместимые форматы, такие как JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Качество предварительного просмотра от 1 до 100. Чем выше, тем лучше, но создаются файлы большего размера, и может снизиться скорость отклика приложения. Установка низкого значения может повлиять на качество машинного обучения.",
|
||||
"image_preview_title": "Настройки предварительного просмотра",
|
||||
"image_progressive": "Прогрессивный JPEG",
|
||||
"image_progressive_description": "Изображения с прогрессивным кодированием загружаются быстрее, постепенно улучшая качество. Настройка не влияет на изображения в формате WebP.",
|
||||
"image_progressive_description": "Изображения JPEG с прогрессивным кодированием загружаются с постепенным улучшением качества. Настройка не влияет на другие форматы.",
|
||||
"image_quality": "Качество",
|
||||
"image_resolution": "Разрешение",
|
||||
"image_resolution_description": "Более высокое разрешение позволяет сохранить больше деталей, но требует больше времени для кодирования, приводит к увеличению размера файлов и может снизить скорость отклика приложения.",
|
||||
@@ -380,7 +380,7 @@
|
||||
"storage_template_option_custom_description": "Задать свою структуру папок с помощью доступных переменных",
|
||||
"storage_template_option_date_description": "Распределять файлы по годам, месяцам и дням",
|
||||
"storage_template_option_none": "Не задавать шаблон",
|
||||
"storage_template_option_none_description": "Доверить Immich использовать свою структуру папок",
|
||||
"storage_template_option_none_description": "Cтруктура папок Immich по умолчанию",
|
||||
"storage_template_path_length": "Примерный предел длины пути: <b>{length, number}</b>/{limit, number}",
|
||||
"storage_template_settings": "Шаблон хранилища",
|
||||
"storage_template_settings_description": "Управление структурой папок и именами загруженных файлов",
|
||||
@@ -640,7 +640,7 @@
|
||||
"background_location_permission_content": "Чтобы считывать имя Wi-Fi сети в фоне, приложению *всегда* необходим доступ к точному местоположению устройства",
|
||||
"background_options": "Выполнение фоновых задач",
|
||||
"backup": "Резервное копирование",
|
||||
"backup_album_selection_page_albums_tap": "Нажмите, чтобы включить, дважды, чтобы исключить",
|
||||
"backup_album_selection_page_albums_tap": "Нажмите один раз, чтобы включить, дважды - чтобы исключить",
|
||||
"backup_album_selection_page_assets_scatter": "Ваши фото и видео могут находиться в разных альбомах/папках на устройстве. Вы можете выбрать, какие альбомы включить, а какие исключить из резервного копирования.",
|
||||
"backup_album_selection_page_select_albums": "Выбор альбомов",
|
||||
"backup_album_selection_page_selection_info": "Выбранные альбомы",
|
||||
@@ -1249,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} снятое в {city}, {country} с {person1}, {person2}, и {person3} {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} снятое в {city}, {country} с {person1}, {person2}, и еще с {additionalCount, number} людьми {date}",
|
||||
"immich_logo": "Лого Immich",
|
||||
"immich_web_interface": "Веб интерфейс Immich",
|
||||
"import_from_json": "Импорт из JSON",
|
||||
"import_path": "Путь импорта",
|
||||
"in_albums": "В {count, plural, one {# альбоме} other {# альбомах}}",
|
||||
@@ -1430,20 +1429,20 @@
|
||||
"manage_media_access_title": "Доступ к управлению медиафайлами",
|
||||
"manage_oauth_account": "Управление учетной записью OAuth",
|
||||
"manage_people": "Управлять людьми",
|
||||
"manage_people_access_description_v2": "Предоставить другим пользователям доступ к {count, plural, one {этому человеку} other {этим людям}}, разрешив им просматривать и/или управлять ими от вашего имени. Это действие не предполагает передачи доступа к каким-либо объектам.",
|
||||
"manage_people_access_description_v2": "Предоставить другим пользователям доступ к {count, plural, one {этому человеку} other {этим людям}}, разрешив им просматривать и/или управлять ими от вашего имени. Это действие не дает доступ к каким-либо объектам.",
|
||||
"manage_person_access": "Управлять доступом",
|
||||
"manage_sharing_with_other_users": "Управление доступом к контенту для других пользователей",
|
||||
"manage_sharing_with_partners": "Функция совместного доступа к фото и видео, позволяющая видеть объекты партнёров, а также предоставлять доступ к своим",
|
||||
"manage_sharing_with_partners": "Управление доступом для партнеров",
|
||||
"manage_the_app_settings": "Управление настройками приложения",
|
||||
"manage_your_account": "Управление учётной записью",
|
||||
"manage_your_api_keys": "Управление API ключами для взаимодействия с другими программами",
|
||||
"manage_your_api_keys": "Управление API ключами",
|
||||
"manage_your_devices": "Управление устройствами, на которых вы входили в свой аккаунт",
|
||||
"manage_your_oauth_connection": "Настройки подключённого OAuth",
|
||||
"manage_your_passkeys": "Управление ключами доступа",
|
||||
"map": "Карта",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Нет фото в этой области} other {# фото}}",
|
||||
"map_cannot_get_user_location": "Невозможно получить местоположение пользователя",
|
||||
"map_location_picker_page_use_location": "Это местоположение",
|
||||
"map_location_picker_page_use_location": "Использовать это местоположение",
|
||||
"map_location_service_disabled_content": "Для отображения объектов в текущем месте необходимо включить службу определения местоположения. Включить?",
|
||||
"map_location_service_disabled_title": "Служба определения местоположения отключена",
|
||||
"map_marker_for_image": "Маркер на карте для объекта, сделанного в {city}, {country}",
|
||||
@@ -1905,7 +1904,7 @@
|
||||
"saved_settings": "Настройки сохранены",
|
||||
"say_something": "Напишите что-нибудь",
|
||||
"scaffold_body_error_occurred": "Возникла ошибка",
|
||||
"scaffold_body_error_unrecoverable": "Произошла неустранимая ошибка. Пожалуйста, сообщите об этой ошибке разработчикам в Discord или на GitHub. В качестве решения можно попробовать очистить данные приложения.",
|
||||
"scaffold_body_error_unrecoverable": "Произошла неустранимая ошибка. Пожалуйста отправьте ошибку и логи разработчикам в Discord или GitHub, чтобы они могли помочь. В качестве решения можно попробовать очистить данные приложения.",
|
||||
"scan": "Поиск",
|
||||
"scan_all_libraries": "Сканировать все библиотеки",
|
||||
"scan_library": "Сканировать",
|
||||
@@ -2020,11 +2019,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Возможность перехода к предыдущему/следующему фото, касаясь левой/правой четверти экрана.",
|
||||
"setting_image_navigation_enable_title": "Навигация касанием",
|
||||
"setting_image_navigation_title": "Навигация по изображениям",
|
||||
"setting_image_viewer_help": "При просмотре изображения сперва загружается миниатюра, затем уменьшенное изображение среднего качества (если включено), а затем оригинал (если включено).",
|
||||
"setting_image_viewer_help": "При просмотре изображения сперва загружается миниатюра, затем уменьшенное изображение среднего качества, а затем оригинал (если включено).",
|
||||
"setting_image_viewer_original_subtitle": "Включите для загрузки исходного изображения в полном разрешении (большое!). Отключите для уменьшения объёма данных (как сети, так и кэша устройства).",
|
||||
"setting_image_viewer_original_title": "Загружать исходное изображение",
|
||||
"setting_image_viewer_preview_subtitle": "Включите для загрузки изображения среднего разрешения. Отключите, чтобы загружать только оригинал или миниатюру.",
|
||||
"setting_image_viewer_preview_title": "Загружать уменьшенное изображение",
|
||||
"setting_languages_apply": "Применить",
|
||||
"setting_languages_subtitle": "Изменение языка приложения",
|
||||
"setting_notifications_notify_minutes": "{count} мин.",
|
||||
@@ -2096,7 +2093,6 @@
|
||||
"shared_link_password_description": "Требовать пароль для доступа к объектам",
|
||||
"shared_links": "Публичные ссылки",
|
||||
"shared_links_description": "Делитесь фотографиями и видео по ссылке",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# фото и видео.}}",
|
||||
"shared_with": "Доступно для",
|
||||
"shared_with_count": "Общие ({count})",
|
||||
"shared_with_me": "Доступные мне",
|
||||
@@ -2266,6 +2262,8 @@
|
||||
"trigger": "Триггер",
|
||||
"trigger_asset_metadata_extraction": "Извлечение метаданных объекта",
|
||||
"trigger_asset_metadata_extraction_description": "Срабатывает при извлечении EXIF метаданных объекта",
|
||||
"trigger_asset_ocr_extraction": "Извлечение текста (OCR)",
|
||||
"trigger_asset_ocr_extraction_description": "Срабатывает при распознавании текста с помощью OCR",
|
||||
"trigger_asset_tagged": "Добавление тега",
|
||||
"trigger_asset_tagged_description": "Срабатывает при добавлении тега к объекту",
|
||||
"trigger_asset_uploaded": "Загрузка объекта",
|
||||
@@ -2341,7 +2339,7 @@
|
||||
"user": "Пользователь",
|
||||
"user_has_been_deleted": "Этот пользователь был удалён.",
|
||||
"user_id": "ID пользователя",
|
||||
"user_liked": "Пользователю {user} нравится {type, select, photo {это фото} video {это видео} asset {этот объект} other {этот альбом}}",
|
||||
"user_liked": "Пользователю {user} нравится {type, select, image {это фото} video {это видео} other {это}}",
|
||||
"user_pin_code_settings": "PIN-код",
|
||||
"user_pin_code_settings_description": "Настройка PIN-кода для доступа к личной папке",
|
||||
"user_privacy": "Конфиденциальность пользователя",
|
||||
|
||||
+29
-9
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "Príkaz {command} zlyhal pre úlohu: {job}",
|
||||
"force_delete_user_warning": "VAROVANIE: Toto okamžite odstráni používateľa a všetky položky. Tento krok nie je možné vrátiť späť a súbory nebude možné obnoviť.",
|
||||
"image_format": "Formát",
|
||||
"image_format_description": "WebP vytvára menšie súbory ako JPEG, ale kódovanie je pomalšie.",
|
||||
"image_format_description": "WebP vytvára menšie súbory ako JPEG, ale jeho kódovanie trvá dlhšie. Formát JPEG XL je najlepšou voľbou pre kompresiu vo vysokej kvalite, avšak nie všetky prehliadače a aplikácie ho dokážu zobraziť.",
|
||||
"image_fullsize_description": "Obrázok v plnom rozlíšení s odstránenými metadátami, používané pri priblížení",
|
||||
"image_fullsize_enabled": "Povolenie generovania obrázkov v plnej veľkosti",
|
||||
"image_fullsize_enabled_description": "Generovať obrázok v plnej veľkosti pre formáty, ktoré nie sú vhodné pre web. Ak je zapnutá možnosť „Uprednostniť vložený náhľad“, vložené náhľady sa použijú priamo bez konverzie. Nemá vplyv na formáty vhodné pre web, ako je JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Kvalita náhľadu v stupnici od 1 do 100. Vyššia hodnota znamená lepšiu kvalitu, ale produkuje väčšie súbory a môže znížiť odozvu aplikácie. Nastavenie nižšej hodnoty môže ovplyvniť kvalitu strojového učenia.",
|
||||
"image_preview_title": "Náhľady",
|
||||
"image_progressive": "Progresívne",
|
||||
"image_progressive_description": "Progresívne kódovať JPEG obrázky pre postupné načítanie zobrazenia. Toto nemá žiadny vplyv na WebP obrázky.",
|
||||
"image_progressive_description": "Progresívne kódovať JPEG obrázky pre postupné načítanie zobrazenia. Na ostatné formáty to nemá žiadny vplyv.",
|
||||
"image_quality": "Kvalita",
|
||||
"image_resolution": "Rozlíšenie",
|
||||
"image_resolution_description": "Vyššie rozlíšenie môže zachovať viac detailov, ale kódovanie trvá dlhšie, súbory sú väčšie a môže to znížiť rýchlosť odozvy aplikácie.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Časový limit požiadavky",
|
||||
"oauth_timeout_description": "Časový limit pre požiadavky v milisekundách",
|
||||
"ocr_job_description": "Použiť strojové učenie na rozpoznávanie textu na obrázkoch",
|
||||
"passkey_additional_domains": "Ďalšie domény",
|
||||
"passkey_additional_domains_description": "Ďalšie dôveryhodné domény (požiadavky súvisiace s pôvodom). Tieto budú fungovať len vtedy, ak je dostupná aj doména s prístupovým kľúčom.",
|
||||
"passkey_domain": "Doména s prístupovým kľúčom",
|
||||
"passkey_domain_description": "Doména používaná pre prístupové kľúče (dôverujúca strana). Nechajte pole prázdne, aby sa hodnota odvodila z hlavičky pôvodu. Zmena tejto hodnoty spôsobí, že existujúce prístupové kľúče prestanú fungovať.",
|
||||
"passkey_enable_description": "Prihláste sa pomocou prístupového kľúča",
|
||||
"passkey_settings": "Prihlásenie pomocou prístupového kľúča",
|
||||
"passkey_settings_description": "Spravovať nastavenia prihlásenia pomocou prístupového kľúča",
|
||||
"password_enable_description": "Prihlásiť sa pomocou emailu a hesla",
|
||||
"password_settings": "Prihlásenie cez heslo",
|
||||
"password_settings_description": "Spravovať nastavenia prihlásenia cez heslo",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Vymazať len zálohované",
|
||||
"delete_local_dialog_ok_force": "Napriek tomu vymazať",
|
||||
"delete_others": "Vymazať ostatné",
|
||||
"delete_passkey": "Vymazať prístupový kľúč",
|
||||
"delete_passkey_prompt": "Naozaj chcete tento prístupový kľúč vymazať?",
|
||||
"delete_permanently": "Natrvalo odstrániť",
|
||||
"delete_permanently_action_prompt": "{count} natrvalo odstránených",
|
||||
"delete_shared_link": "Odstrániť zdieľaný odkaz",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "{count} poloha upravená",
|
||||
"edit_location_dialog_title": "Poloha",
|
||||
"edit_name": "Upraviť meno",
|
||||
"edit_passkey": "Upraviť prístupový kľúč",
|
||||
"edit_people": "Upraviť osoby",
|
||||
"edit_person": "Upraviť osobu",
|
||||
"edit_tag": "Upraviť štítok",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video nasnímané} other {Obrázok odfotený}} dňa {date} v {city}, {country} s {person1}, {person2} a {person3}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video nasnímané} other {Obrázok odfotený}} v {city}, {country} s {person1}, {person2} a {additionalCount, number} inými dňa {date}",
|
||||
"immich_logo": "Logo Immich",
|
||||
"immich_web_interface": "Webové rozhranie Immich",
|
||||
"import_from_json": "Importovať z JSON",
|
||||
"import_path": "Cesta na import",
|
||||
"in_albums": "V {count, plural, one {# albume} other {# albumoch}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Posledné",
|
||||
"last_months": "{count, plural, one {Minulý mesiac} few {Posledné # mesiace} other {Posledných # mesiacov}}",
|
||||
"last_seen": "Naposledy videné",
|
||||
"last_used": "Naposledy použitý",
|
||||
"latest_version": "Najnovšia verzia",
|
||||
"latitude": "Zemepisná šírka",
|
||||
"leave": "Opustiť",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Prihlásenie bolo deaktivované",
|
||||
"login_password_changed_error": "Nastala chyba pri aktualizovaní hesla",
|
||||
"login_password_changed_success": "Aktualizácia hesla prebehla úspešne",
|
||||
"login_with_passkey": "Prihlásiť sa pomocou prístupového kľúča",
|
||||
"logout_all_device_confirmation": "Ste si istý, že sa chcete odhlásiť zo všetkých zariadení?",
|
||||
"logout_this_device_confirmation": "Ste si istý, že sa chcete odhlásiť z tohoto zariadenia?",
|
||||
"logs": "Záznamy",
|
||||
@@ -1401,6 +1412,7 @@
|
||||
"manage_media_access_title": "Prístup k správe médií",
|
||||
"manage_oauth_account": "Spravovať OAuth účet",
|
||||
"manage_people": "Spravovať ľudí",
|
||||
"manage_people_access_description_v2": "Udeľte ostatným používateľom prístup k {count, plural, one {tejto osobe} other {vašim ľuďom}}, čím im umožníte, aby ich mohli zobraziť alebo spravovať vo vašom mene. Táto akcia nespôsobuje zdieľanie žiadnych položiek.",
|
||||
"manage_person_access": "Spravovať prístup",
|
||||
"manage_sharing_with_other_users": "Spravovať zdieľania s ostatnými používateľmi",
|
||||
"manage_sharing_with_partners": "Spravovať zdieľanie s partnermi",
|
||||
@@ -1409,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Spravovať vaše API kľúče",
|
||||
"manage_your_devices": "Spravovať vaše prihlásené zariadenia",
|
||||
"manage_your_oauth_connection": "Spravovať vaše OAuth spojenia",
|
||||
"manage_your_passkeys": "Spravujte svoje prístupové kľúče",
|
||||
"map": "Mapa",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {V tejto oblasti nie sú žiadne fotky} one {# fotka} few {# fotky} other {# fotiek}}",
|
||||
"map_cannot_get_user_location": "Nie je možné získať polohu používateľa",
|
||||
@@ -1528,6 +1541,7 @@
|
||||
"new_album": "Nový album",
|
||||
"new_api_key": "Nový API kľúč",
|
||||
"new_feature": "Nová funkcia",
|
||||
"new_passkey": "Nový prístupový kľúč",
|
||||
"new_password": "Nové heslo",
|
||||
"new_person": "Nová osoba",
|
||||
"new_pin_code": "Nový PIN kód",
|
||||
@@ -1640,6 +1654,8 @@
|
||||
"partner_sharing": "Zdieľanie s partnerom",
|
||||
"partners": "Partneri",
|
||||
"partners_description": "Zdieľajte svoje fotografie a videá s ostatnými používateľmi",
|
||||
"passkeys": "{count, plural, one {prístupový kľúč} few {prístupové kľúče} other {prístupových kľúčov}}",
|
||||
"passkeys_not_supported": "Tento prehliadač nepodporuje prístupové kľúče",
|
||||
"password": "Heslo",
|
||||
"password_does_not_match": "Heslá sa nezhodujú",
|
||||
"password_required": "Heslo je povinné",
|
||||
@@ -1824,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {Odstránených #}} z obľúbených",
|
||||
"removed_from_stack": "Položka bola odstránená zo zoskupenia",
|
||||
"removed_memory": "Spomienka bola odstránená",
|
||||
"removed_passkey": "Odstránený prístupový kľúč: {name}",
|
||||
"removed_tagged_assets": "Odstránený štítok z {count, plural, one {# položky} other {# položiek}}",
|
||||
"rename": "Premenovať",
|
||||
"repository": "Repozitár",
|
||||
@@ -1985,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Ak je táto funkcia povolená, môžete prejsť na predchádzajúci/nasledujúci obrázok ťuknutím na ľavú/pravú štvrtinu obrazovky.",
|
||||
"setting_image_navigation_enable_title": "Ťuknutím prechádzajte obrázkami",
|
||||
"setting_image_navigation_title": "Prechádzanie obrázkov",
|
||||
"setting_image_viewer_help": "V detailnom prehliadači sa najprv načíta malá miniatúra, potom sa načíta stredne veľký náhľad (ak je povolený) a nakoniec sa načíta originál (ak je povolený).",
|
||||
"setting_image_viewer_help": "Prehliadač obrázkov najskôr načíta malú miniatúru, potom stredne veľký náhľad a nakoniec originál (ak je táto funkcia povolená).",
|
||||
"setting_image_viewer_original_subtitle": "Povolením umožníte načítať pôvodný obrázok v plnom rozlíšení (veľký!). Zakázaním znížite používania dát (v sieti, aj v dočasnej pamäte zariadenia).",
|
||||
"setting_image_viewer_original_title": "Načítať pôvodný obrázok",
|
||||
"setting_image_viewer_preview_subtitle": "Povolením umožníte načítať obrázok so stredným rozlíšením. Zakážte, ak chcete priamo načítať originál alebo použiť iba miniatúru.",
|
||||
"setting_image_viewer_preview_title": "Načítať náhľad obrázka",
|
||||
"setting_languages_apply": "Použiť",
|
||||
"setting_languages_subtitle": "Zmeniť jazyk aplikácie",
|
||||
"setting_notifications_notify_minutes": "{count} minút",
|
||||
@@ -2009,8 +2024,9 @@
|
||||
"share_everyone": "Zdieľať všetkých",
|
||||
"share_everyone_description": "Umožniť používateľovi {user} prístup ku všetkým vašim ľuďom.",
|
||||
"share_link": "Zdieľať odkaz",
|
||||
"share_logs": "Zdieľať záznamy",
|
||||
"share_original": "Použiť originál (veľký)",
|
||||
"share_preview": "Použiť miniatúru (malý)",
|
||||
"share_preview": "Použiť náhľad (malý)",
|
||||
"share_quality_body": "Stlačte a podržte tlačidlo zdieľať pre výber kvality obrázka.",
|
||||
"share_quality_title": "Vyberte kvalitu obrázka na zdieľanie",
|
||||
"share_with": "Zdieľať prístup s",
|
||||
@@ -2060,7 +2076,6 @@
|
||||
"shared_link_password_description": "Vyžadovať heslo pre prístup k tomuto zdieľanému odkazu",
|
||||
"shared_links": "Zdieľané odkazy",
|
||||
"shared_links_description": "Zdieľajte fotografie a videá pomocou odkazu",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, few {# zdieľané fotky a videá.} other {# zdieľaných fotiek a videí.}}",
|
||||
"shared_with": "Zdieľané s",
|
||||
"shared_with_count": "Zdieľaných ({count})",
|
||||
"shared_with_me": "Zdieľané so mnou",
|
||||
@@ -2188,6 +2203,8 @@
|
||||
"theme": "Téma",
|
||||
"theme_selection": "Výber témy",
|
||||
"theme_selection_description": "Automaticky nastaví tému na svetlú alebo tmavú podľa systémových predvolieb v prehliadači",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Pri ťahaní posuvníka sa má obrazovka posúvať plynule, namiesto toho, aby sa zastavovala na jednotlivých mesiacoch",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Plynulé posúvanie časovej osi",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Zobraziť indikátor úložiska na dlaždiciach médií",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Počet položiek na riadok ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Použiť základnú farbu na plochy na pozadí.",
|
||||
@@ -2228,6 +2245,8 @@
|
||||
"trigger": "Spúšťač",
|
||||
"trigger_asset_metadata_extraction": "Extrakcia metadát položky",
|
||||
"trigger_asset_metadata_extraction_description": "Spustí sa pri extrakcii EXIF metadát z mediálneho súboru",
|
||||
"trigger_asset_ocr_extraction": "Extrakcia textu z položiek pomocou OCR",
|
||||
"trigger_asset_ocr_extraction_description": "Spustí sa pri extrakcii textu z položiek pomocou OCR",
|
||||
"trigger_asset_tagged": "Položka označená štítkom",
|
||||
"trigger_asset_tagged_description": "Spustí sa, keď sa k položke pridá štítok",
|
||||
"trigger_asset_uploaded": "Nahranie položiek",
|
||||
@@ -2303,7 +2322,7 @@
|
||||
"user": "Používateľ",
|
||||
"user_has_been_deleted": "Tento používateľ bol vymazaný.",
|
||||
"user_id": "ID používateľa",
|
||||
"user_liked": "Používateľovi {user} sa páči {type, select, photo {táto fotka} video {toto video} asset {táto položka} other {toto}}",
|
||||
"user_liked": "Používateľovi {user} sa páči {type, select, image {táto fotka} video {toto video} other {toto}}",
|
||||
"user_pin_code_settings": "PIN kód",
|
||||
"user_pin_code_settings_description": "Spravujte svoj PIN kód",
|
||||
"user_privacy": "Ochrana osobných údajov používateľa",
|
||||
@@ -2339,6 +2358,7 @@
|
||||
"view_group": "Zobraziť skupinu",
|
||||
"view_in_timeline": "Zobraziť v časovej osi",
|
||||
"view_link": "Zobraziť odkaz",
|
||||
"view_more": "Zobraziť viac",
|
||||
"view_name": "Zobraziť",
|
||||
"view_next_asset": "Zobraziť nasledujúci súbor",
|
||||
"view_previous_asset": "Zobraziť predchádzajúci súbor",
|
||||
|
||||
+27
-9
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "Za opravilo {job} ukaz {command} ni uspel",
|
||||
"force_delete_user_warning": "OPOZORILO: S tem boste takoj odstranili uporabnika in vsa sredstva. Tega ni mogoče razveljaviti in datotek ni mogoče obnoviti.",
|
||||
"image_format": "Format",
|
||||
"image_format_description": "WebP ustvari manjše datoteke kot JPEG, vendar je počasnejši za kodiranje.",
|
||||
"image_format_description": "WebP ustvarja manjše datoteke kot JPEG, vendar je kodiranje počasnejše. JPEG XL je najboljša izbira za visokokakovostno stiskanje, vendar ga ne morejo prikazati vsi brskalniki in aplikacije.",
|
||||
"image_fullsize_description": "Slika v polni velikosti brez metapodatkov, uporabljena pri povečavi",
|
||||
"image_fullsize_enabled": "Omogoči ustvarjanje slik v polni velikosti",
|
||||
"image_fullsize_enabled_description": "Ustvari sliko v polni velikosti za formate, ki niso prijazni spletu. Ko je omogočena možnost »Prednostno vdelani predogled«, se vdelani predogledi uporabljajo neposredno brez pretvorbe. Ne vpliva na spletu prijazne formate, kot je JPEG.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Kakovost predogleda od 1-100. Višje je boljše, vendar ustvarja večje datoteke in lahko zmanjša odzivnost aplikacije. Nastavitev nizke vrednosti lahko vpliva na kakovost strojnega učenja.",
|
||||
"image_preview_title": "Nastavitve predogleda",
|
||||
"image_progressive": "Napredno",
|
||||
"image_progressive_description": "Za postopno nalaganje slik JPEG kodirajte postopoma. To ne vpliva na slike WebP.",
|
||||
"image_progressive_description": "Slike JPEG kodirajte progresivno, da se med nalaganjem postopoma izrišejo. Na druge formate to nima vpliva.",
|
||||
"image_quality": "Kvaliteta",
|
||||
"image_resolution": "Resolucija",
|
||||
"image_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.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Časovna omejitev zahteve",
|
||||
"oauth_timeout_description": "Časovna omejitev za zahteve v milisekundah",
|
||||
"ocr_job_description": "Uporaba strojnega učenja za prepoznavanje besedila na slikah",
|
||||
"passkey_additional_domains": "Dodatne domene",
|
||||
"passkey_additional_domains_description": "Dodatne, zaupanja vredne domene (zahteve, povezane z izvorom). Te bodo delovale le, če je dostopna tudi domena ključa za dostop (passkey).",
|
||||
"passkey_domain": "Domena za ključ za dostop",
|
||||
"passkey_domain_description": "Domena, uporabljena za ključe za dostop (stranka, ki se zanaša). Pustite prazno, da se vrednost določi iz glave \"origin\". Sprememba te vrednosti bo povzročila, da obstoječi ključi za dostop ne bodo več delovali.",
|
||||
"passkey_enable_description": "Prijava s ključem za dostop",
|
||||
"passkey_settings": "Prijava s ključem za dostop",
|
||||
"passkey_settings_description": "Upravljajte nastavitve prijave s ključi za dostop",
|
||||
"password_enable_description": "Prijava z e-pošto in geslom",
|
||||
"password_settings": "Prijava z geslom",
|
||||
"password_settings_description": "Upravljajte nastavitve prijave z geslom",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Izbriši samo kar je varnostno kopirano",
|
||||
"delete_local_dialog_ok_force": "Vseeno izbriši",
|
||||
"delete_others": "Izbriši ostale",
|
||||
"delete_passkey": "Izbriši ključ za dostop",
|
||||
"delete_passkey_prompt": "Ali ste prepričani, da želite izbrisati ta ključ za dostop?",
|
||||
"delete_permanently": "Izbriši trajno",
|
||||
"delete_permanently_action_prompt": "{count} trajno izbrisano",
|
||||
"delete_shared_link": "Izbriši povezavo skupne rabe",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "urejenih {count} lokacij",
|
||||
"edit_location_dialog_title": "Lokacija",
|
||||
"edit_name": "Uredi ime",
|
||||
"edit_passkey": "Uredi ključ za dostop",
|
||||
"edit_people": "Uredi osebe",
|
||||
"edit_person": "Uredi osebo",
|
||||
"edit_tag": "Uredi oznako",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} zajet/a/e/i v/na {city}, {country} s/z {person1}, {person2} in {person3} dne {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} zajet/a/e/i v/na {city}, {country} s/z {person1}, {person2} on ostalimi {additionalCount, number} osebami dne {date}",
|
||||
"immich_logo": "Immich logo",
|
||||
"immich_web_interface": "Immich spletni vmesnik",
|
||||
"import_from_json": "Uvoz iz JSON",
|
||||
"import_path": "Pot uvoza",
|
||||
"in_albums": "V {count, plural, one {# album} two {# albuma} few {# albume} other {# albumov}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Zadnji",
|
||||
"last_months": "{count, plural, one {Zadnji mesec} two {Zadnja # meseca} few {Zadnje # mesece} other {Zadnjih # mesecev}}",
|
||||
"last_seen": "Nazadnje viden",
|
||||
"last_used": "Nazadnje uporabljeno",
|
||||
"latest_version": "Najnovejša različica",
|
||||
"latitude": "Zemljepisna širina",
|
||||
"leave": "Zapusti",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Prijava je bila onemogočena",
|
||||
"login_password_changed_error": "Pri posodabljanju gesla je prišlo do napake",
|
||||
"login_password_changed_success": "Geslo je bilo uspešno posodobljeno",
|
||||
"login_with_passkey": "Prijava s ključem za dostop",
|
||||
"logout_all_device_confirmation": "Ali ste prepričani, da želite odjaviti vse naprave?",
|
||||
"logout_this_device_confirmation": "Ali ste prepričani, da se želite odjaviti iz te naprave?",
|
||||
"logs": "Dnevniki",
|
||||
@@ -1401,6 +1412,7 @@
|
||||
"manage_media_access_title": "Dostop do upravljanja medijev",
|
||||
"manage_oauth_account": "Upravljanje računa OAuth",
|
||||
"manage_people": "Upravljanje ljudi",
|
||||
"manage_people_access_description_v2": "Omogočite drugim uporabnikom dostop do {count, plural, one {te osebe} other {vaših oseb}}, kar jim omogoča ogled ali upravljanje teh podatkov v vašem imenu. To dejanje ne deli nobenih sredstev.",
|
||||
"manage_person_access": "Upravljanje dostopa",
|
||||
"manage_sharing_with_other_users": "Upravljanje deljenja z drugimi uporabniki",
|
||||
"manage_sharing_with_partners": "Upravljajte skupno rabo s partnerji",
|
||||
@@ -1409,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Upravljajte svoje API ključe",
|
||||
"manage_your_devices": "Upravljajte svoje prijavljene naprave",
|
||||
"manage_your_oauth_connection": "Upravljajte svojo OAuth povezavo",
|
||||
"manage_your_passkeys": "Upravljajte svoje ključe za dostop",
|
||||
"map": "Zemljevid",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Na tem območju ni fotografij} one {# fotografija} two {# fotografiji} few{# fotografije} other {# fotografij}}",
|
||||
"map_cannot_get_user_location": "Lokacije uporabnika ni mogoče dobiti",
|
||||
@@ -1528,6 +1541,7 @@
|
||||
"new_album": "Nov album",
|
||||
"new_api_key": "Nov API ključ",
|
||||
"new_feature": "Nova funkcija",
|
||||
"new_passkey": "Nov ključ za dostop",
|
||||
"new_password": "Novo geslo",
|
||||
"new_person": "Nova oseba",
|
||||
"new_pin_code": "Nova PIN koda",
|
||||
@@ -1640,6 +1654,8 @@
|
||||
"partner_sharing": "Skupna raba s partnerjem",
|
||||
"partners": "Partnerji",
|
||||
"partners_description": "Delite svoje fotografije in videoposnetke z drugimi uporabniki",
|
||||
"passkeys": "{count, plural, one {Ključ za dostop} two {Ključa za dostop} few {Ključi za dostop} other {Ključev za dostop}}",
|
||||
"passkeys_not_supported": "Ta brskalnik ne podpira ključev za dostop",
|
||||
"password": "Geslo",
|
||||
"password_does_not_match": "Geslo se ne ujema",
|
||||
"password_required": "Zahtevano je geslo",
|
||||
@@ -1824,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {odstranen/ih #}} iz priljubljenih",
|
||||
"removed_from_stack": "Sredstvo je bilo odstranjeno iz sklada",
|
||||
"removed_memory": "Odstranjen spomin",
|
||||
"removed_passkey": "Odstranjen ključ za dostop: {name}",
|
||||
"removed_tagged_assets": "Odstranjena oznaka iz {count, plural, one {# sredstva} other {# sredstev}}",
|
||||
"rename": "Preimenuj",
|
||||
"repository": "Repozitorij",
|
||||
@@ -1985,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Če je omogočeno, se lahko na prejšnjo/naslednjo sliko premaknete tako, da se dotaknete skrajne leve/desne četrtine zaslona.",
|
||||
"setting_image_navigation_enable_title": "Dotaknite se za usmerjanje",
|
||||
"setting_image_navigation_title": "Usmerjanje slik",
|
||||
"setting_image_viewer_help": "Pregledovalnik podrobnosti najprej naloži majhno sličico, nato naloži predogled srednje velikosti (če je omogočen), na koncu naloži izvirnik (če je omogočen).",
|
||||
"setting_image_viewer_help": "Pregledovalnik podrobnosti najprej naloži majhno sličico, nato predogled srednje velikosti in na koncu naloži izvirnik (če je omogočen).",
|
||||
"setting_image_viewer_original_subtitle": "Omogoči nalaganje originalne slike polne ločljivosti (velike!). Onemogočite, da zmanjšate porabo podatkov (tako v omrežju kot v predpomnilniku naprave).",
|
||||
"setting_image_viewer_original_title": "Naloži originalno sliko",
|
||||
"setting_image_viewer_preview_subtitle": "Omogoči nalaganje slike srednje ločljivosti. Onemogočite neposredno nalaganje izvirnika ali uporabo samo sličice.",
|
||||
"setting_image_viewer_preview_title": "Naloži predogled slike",
|
||||
"setting_languages_apply": "Uporabi",
|
||||
"setting_languages_subtitle": "Spremeni jezik aplikacije",
|
||||
"setting_notifications_notify_minutes": "{count} minut",
|
||||
@@ -2009,8 +2024,9 @@
|
||||
"share_everyone": "Deli z vsemi",
|
||||
"share_everyone_description": "Omogočite uporabniku {user} dostop do vseh svojih oseb.",
|
||||
"share_link": "Deli povezavo",
|
||||
"share_logs": "Deli dnevnike",
|
||||
"share_original": "Uporabi izvirno (veliko)",
|
||||
"share_preview": "Uporabi sličico (majhno)",
|
||||
"share_preview": "Uporabi predogled (majhen)",
|
||||
"share_quality_body": "Pritisnite in držite gumb za deljenje, da izberete kakovost slike, preden jo delite.",
|
||||
"share_quality_title": "Izberite kakovost delitve",
|
||||
"share_with": "Deli dostop s/z",
|
||||
@@ -2060,7 +2076,6 @@
|
||||
"shared_link_password_description": "Za dostop do te deljene povezave je potrebno geslo",
|
||||
"shared_links": "Povezave v skupni rabi",
|
||||
"shared_links_description": "Deli fotografije in videoposnetke s povezavo",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# deljenih fotografij & videoposnetkov.}}",
|
||||
"shared_with": "Deljeno z/s",
|
||||
"shared_with_count": "Deljeno ({count})",
|
||||
"shared_with_me": "Deljeno z mano",
|
||||
@@ -2188,6 +2203,8 @@
|
||||
"theme": "Tema",
|
||||
"theme_selection": "Izbira teme",
|
||||
"theme_selection_description": "Samodejno nastavi temo na svetlo ali temno glede na sistemske nastavitve brskalnika",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Med vlečenjem drsnega traku se pomikajte neprekinjeno, namesto da bi se zaskočili na mesece",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Tekoče pomikanje po časovnici",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Pokaži indikator shrambe na ploščicah sredstev",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Število sredstev na vrstico ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Nanesi primarno barvo na površine ozadja.",
|
||||
@@ -2303,7 +2320,7 @@
|
||||
"user": "Uporabnik",
|
||||
"user_has_been_deleted": "Ta uporabnik je bil izbrisan.",
|
||||
"user_id": "ID uporabnika",
|
||||
"user_liked": "{user} je všeč {type, select, photo {ta fotografija} video {ta video} asset {to sredstvo} other {to}}",
|
||||
"user_liked": "{user} je všeč {type, select, image {ta fotografija} video {ta videoposnetek} other {to}}",
|
||||
"user_pin_code_settings": "PIN koda",
|
||||
"user_pin_code_settings_description": "Upravljaj svojo PIN kodo",
|
||||
"user_privacy": "Zasebnost uporabnika",
|
||||
@@ -2339,6 +2356,7 @@
|
||||
"view_group": "Ogled skupine",
|
||||
"view_in_timeline": "Ogled na časovnici",
|
||||
"view_link": "Odpri povezavo",
|
||||
"view_more": "Oglejte si več",
|
||||
"view_name": "Pogled",
|
||||
"view_next_asset": "Ogled naslednjega sredstva",
|
||||
"view_previous_asset": "Ogled prejšnjega sredstva",
|
||||
|
||||
@@ -1224,7 +1224,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Imazh}} i realizuar në {city}, {country} me {person1}, {person2} dhe {person3} më {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Imazh}} i realizuar në {city}, {country} me {person1}, {person2} dhe {additionalCount, number} të tjerë më {date}",
|
||||
"immich_logo": "Logoja e Immich",
|
||||
"immich_web_interface": "Ndërfaqja Web e Immich",
|
||||
"import_from_json": "Importo nga JSON",
|
||||
"import_path": "Shtegu i importimit",
|
||||
"in_albums": "Në {count, plural, one {# album} other {# albume}}",
|
||||
|
||||
@@ -913,7 +913,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Видео} other {Image}} снимљеноу {city}, {country} са {person1}, {person2} и {person3} {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Видео} other {Image}} снимљено у {city}, {country} са {person1}, {person2} и још {additionalCount, number} других {date}",
|
||||
"immich_logo": "Лого Immich-a",
|
||||
"immich_web_interface": "Wеб интерфејс Immich-a",
|
||||
"import_from_json": "Увези из ЈСОН-а",
|
||||
"import_path": "Путања увоза",
|
||||
"in_albums": "У {count, plural, one {# албуму} few {# албума} other {# албума}}",
|
||||
@@ -1398,8 +1397,6 @@
|
||||
"setting_image_viewer_help": "Прегледач детаља прво учитава малу сличицу, затим преглед средње величине (ако је омогућен), и на крају оригинал (ако је омогућен).",
|
||||
"setting_image_viewer_original_subtitle": "Активирај учитавање слика у пуној резолуцији (Велика!). Деактивацијом ове ставке можеш да смањиш потрошњу интернета и заузетог простора на уређају.",
|
||||
"setting_image_viewer_original_title": "Учитај оригиналну слику",
|
||||
"setting_image_viewer_preview_subtitle": "Активирај учитавање слика у средњој резолуцији. Деактивирај да се директно учитава оригинал, или да се само користи минијатура.",
|
||||
"setting_image_viewer_preview_title": "Прегледај слику",
|
||||
"setting_languages_apply": "Примени",
|
||||
"setting_languages_subtitle": "Промените језик апликације",
|
||||
"setting_notifications_notify_minutes": "{count} минута",
|
||||
@@ -1455,7 +1452,6 @@
|
||||
"shared_link_options": "Опције дељене везе",
|
||||
"shared_links": "Дељене везе",
|
||||
"shared_links_description": "Делите фотографије и видео записе помоћу linkа",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# дељене фотографије и видео записе.}}",
|
||||
"shared_with_me": "Дељено са мном",
|
||||
"shared_with_partner": "Дели се са {partner}",
|
||||
"sharing": "Дељење",
|
||||
|
||||
@@ -1226,7 +1226,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} snimljenou {city}, {country} sa {person1}, {person2} i {person3} {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} snimljeno u {city}, {country} sa {person1}, {person2} i još {additionalCount, number} drugih {date}",
|
||||
"immich_logo": "Logo Immich-a",
|
||||
"immich_web_interface": "Web interfejs Immich-a",
|
||||
"import_from_json": "Uvezi iz JSON-a",
|
||||
"import_path": "Putanja uvoza",
|
||||
"in_albums": "U {count, plural, one {# albumu} few {# albuma} other {# albuma}}",
|
||||
@@ -1743,8 +1742,6 @@
|
||||
"setting_image_viewer_help": "Pregledač detalja prvo učitava malu sličicu, zatim pregled srednje veličine (ako je omogućen), i na kraju original (ako je omogućen).",
|
||||
"setting_image_viewer_original_subtitle": "Aktiviraj učitavanje slika u punoj rezoluciji (Velika!). Deaktivacijom ove stavke možeš da smanjiš potrošnju interneta i zauzetog prostora na uređaju.",
|
||||
"setting_image_viewer_original_title": "Učitaj originalnu sliku",
|
||||
"setting_image_viewer_preview_subtitle": "Aktiviraj učitavanje slika u srednjoj rezoluciji. Deaktiviraj da se direktno učitava original, ili da se samo koristi minijatura.",
|
||||
"setting_image_viewer_preview_title": "Pregledaj sliku",
|
||||
"setting_languages_apply": "Primeni",
|
||||
"setting_languages_subtitle": "Promenite jezik aplikacije",
|
||||
"setting_notifications_notify_minutes": "{count} minuta",
|
||||
@@ -1794,7 +1791,6 @@
|
||||
"shared_link_options": "Opcije deljene veze",
|
||||
"shared_links": "Deljene veze",
|
||||
"shared_links_description": "Delite fotografije i video zapise pomoću linka",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# deljene fotografije i video zapise.}}",
|
||||
"shared_with_me": "Deljeno sa mnom",
|
||||
"shared_with_partner": "Deli se sa {partner}",
|
||||
"sharing": "Deljenje",
|
||||
|
||||
+27
-9
@@ -86,7 +86,7 @@
|
||||
"failed_job_command": "Kommandot {command} misslyckades för jobbet {job}",
|
||||
"force_delete_user_warning": "VARNING: Användaren och alla objekt tas bort omedelbart. Åtgärden kan inte ångras och filerna kan inte återställas.",
|
||||
"image_format": "Format",
|
||||
"image_format_description": "WebP producerar mindre filer än JPEG, men kodas långsammare.",
|
||||
"image_format_description": "WebP producerar mindre filer än JPEG, men kodas långsammare. JPEG XL är det bästa alternativet för högkvalitativ komprimering, men alla webbläsare och appar kan inte visa formatet.",
|
||||
"image_fullsize_description": "Fullstor bild utan metadata, används vid inzoomning",
|
||||
"image_fullsize_enabled": "Aktivera generering av fullstora bilder",
|
||||
"image_fullsize_enabled_description": "Generera fullstora bilder för format som inte är webbvänliga. När ”Föredra inbäddad förhandsvisning” är aktiverat används inbäddade förhandsvisningar direkt utan konvertering. Webbvänliga format som JPEG påverkas inte.",
|
||||
@@ -100,7 +100,7 @@
|
||||
"image_preview_quality_description": "Kvalitet för förhandsvisningar, från 1 till 100. Högre värden ger bättre kvalitet men större filer och kan göra appen mindre responsiv. Ett lågt värde kan påverka maskininlärningens kvalitet.",
|
||||
"image_preview_title": "Inställningar för förhandsvisningar",
|
||||
"image_progressive": "Progressiv",
|
||||
"image_progressive_description": "Koda JPEG-bilder progressivt för gradvis laddning. Detta påverkar inte WebP-bilder.",
|
||||
"image_progressive_description": "Koda JPEG-bilder progressivt för gradvis laddning. Detta påverkar inte andra format.",
|
||||
"image_quality": "Kvalitet",
|
||||
"image_resolution": "Upplösning",
|
||||
"image_resolution_description": "Högre upplösningar kan bevara fler detaljer men tar längre tid att koda, ger större filer och kan göra appen mindre responsiv.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Tidsgräns för begäran",
|
||||
"oauth_timeout_description": "Tidsgräns för begäranden i millisekunder",
|
||||
"ocr_job_description": "Använd maskininlärning för att känna igen text i bilder",
|
||||
"passkey_additional_domains": "Ytterligare domäner",
|
||||
"passkey_additional_domains_description": "Ytterligare, betrodda domäner (förfrågningar från relaterat ursprung). Dessa fungerar endast om även domänen för lösenordsnyckeln (passkey) är tillgänglig.",
|
||||
"passkey_domain": "Passkey domän",
|
||||
"passkey_domain_description": "Domän som används för passkeys (förlitande part). Lämna tom för att hämta värdet från origin rubrik. Om detta värde ändras kommer befintliga passkeys inte längre att fungera.",
|
||||
"passkey_enable_description": "Logga in med en passkey",
|
||||
"passkey_settings": "Passkey inloggning",
|
||||
"passkey_settings_description": "Hantera passkey inloggningsinställningar",
|
||||
"password_enable_description": "Logga in med e-postadress och lösenord",
|
||||
"password_settings": "Lösenordsinloggning",
|
||||
"password_settings_description": "Hantera inställningar för lösenordsinloggning",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Ta Bara Bort Säkerhetskopierade",
|
||||
"delete_local_dialog_ok_force": "Ta Bort Ändå",
|
||||
"delete_others": "Radera fler",
|
||||
"delete_passkey": "Ta bort passkey",
|
||||
"delete_passkey_prompt": "Är du säker på att du vill radera den här passkey?",
|
||||
"delete_permanently": "Ta bort permanent",
|
||||
"delete_permanently_action_prompt": "{count} raderade permanent",
|
||||
"delete_shared_link": "Ta bort delad länk",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "Platsen har ändrats för {count} objekt",
|
||||
"edit_location_dialog_title": "Plats",
|
||||
"edit_name": "Redigera namn",
|
||||
"edit_passkey": "Redigera passkey",
|
||||
"edit_people": "Redigera personer",
|
||||
"edit_person": "Redigera person",
|
||||
"edit_tag": "Redigera tagg",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Bild}} tagen i {city}, {country} med {person1}, {person2} och {person3} den {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Bild}} tagen i {city}, {country} med {person1}, {person2} och {additionalCount, number} andra den {date}",
|
||||
"immich_logo": "Immich-logga",
|
||||
"immich_web_interface": "Immich Web gränssnitt",
|
||||
"import_from_json": "Importera från JSON",
|
||||
"import_path": "Importsökväg",
|
||||
"in_albums": "I {count, plural, one {# album} other {# album}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Sista",
|
||||
"last_months": "{count, plural, one {Senaste månaden} other {Senaste # månaderna}}",
|
||||
"last_seen": "Senast sedd",
|
||||
"last_used": "Senast använd",
|
||||
"latest_version": "Senaste versionen",
|
||||
"latitude": "Latitud",
|
||||
"leave": "Lämna",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Inloggning har blivit inaktiverat",
|
||||
"login_password_changed_error": "Ett fel uppstod vid uppdatering av ditt lösenord",
|
||||
"login_password_changed_success": "Uppdatering av lösenord lyckades",
|
||||
"login_with_passkey": "Logga in med passkey",
|
||||
"logout_all_device_confirmation": "Är du säker på att du vill logga ut från alla enheter?",
|
||||
"logout_this_device_confirmation": "Är du säker på att du vill logga ut från denna enhet?",
|
||||
"logs": "Loggar",
|
||||
@@ -1401,6 +1412,7 @@
|
||||
"manage_media_access_title": "Åtkomst till mediehantering",
|
||||
"manage_oauth_account": "Hantera OAuth-konto",
|
||||
"manage_people": "Hantera personer",
|
||||
"manage_people_access_description_v2": "Ge andra användare åtkomst till {count, plural, one {denna person} other {dina personer}} så att de kan visa eller hantera dem å dina vägnar. Denna åtgärd innebär inte att några tillgångar delas.",
|
||||
"manage_person_access": "Hantera access",
|
||||
"manage_sharing_with_other_users": "Hantera delning med andra användare",
|
||||
"manage_sharing_with_partners": "Hantera delning med partner",
|
||||
@@ -1409,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Hantera dina API-nycklar",
|
||||
"manage_your_devices": "Hantera dina inloggade enheter",
|
||||
"manage_your_oauth_connection": "Hantera din OAuth-anslutning",
|
||||
"manage_your_passkeys": "Hantera dina passkeys",
|
||||
"map": "Karta",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Inga foton i det här området} one {# foto} other {# foton}}",
|
||||
"map_cannot_get_user_location": "Kan inte hämta användarens plats",
|
||||
@@ -1528,6 +1541,7 @@
|
||||
"new_album": "Nytt album",
|
||||
"new_api_key": "Ny API-nyckel",
|
||||
"new_feature": "Ny funktion",
|
||||
"new_passkey": "Ny passkey",
|
||||
"new_password": "Nytt lösenord",
|
||||
"new_person": "Ny person",
|
||||
"new_pin_code": "Ny PIN-kod",
|
||||
@@ -1640,6 +1654,8 @@
|
||||
"partner_sharing": "Partnerdelning",
|
||||
"partners": "Partners",
|
||||
"partners_description": "Dela dina foton och videor med andra användare",
|
||||
"passkeys": "{count, plural, one {Passkey} other {Passkeys}}",
|
||||
"passkeys_not_supported": "Passkeys stöds inte av den här webbläsaren",
|
||||
"password": "Lösenord",
|
||||
"password_does_not_match": "Lösenorden stämmer inte överens",
|
||||
"password_required": "Lösenord krävs",
|
||||
@@ -1824,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {Tog bort #}} från favoriter",
|
||||
"removed_from_stack": "Tog bort objekt från stack",
|
||||
"removed_memory": "Tog bort minne",
|
||||
"removed_passkey": "Tog bort passkey: {name}",
|
||||
"removed_tagged_assets": "Tog bort tagg från {count, plural, one {# objekt} other {# objekt}}",
|
||||
"rename": "Döp om",
|
||||
"repository": "Förvar",
|
||||
@@ -1985,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Om det är aktiverat kan du navigera till föregående/nästa bild genom att trycka på den vänstra/högra fjärdedelen av skärmen.",
|
||||
"setting_image_navigation_enable_title": "Tryck för att navigera",
|
||||
"setting_image_navigation_title": "Bildnavigation",
|
||||
"setting_image_viewer_help": "Detaljerad vy laddar miniatyrer först. Efter detta laddas den medelstora förhandsgranskningen av bilden (om detta är aktiverat), och visar slutligen originalet (om detta är aktiverat).",
|
||||
"setting_image_viewer_help": "Detaljerad vy laddar miniatyrer först. Efter detta laddas den medelstora förhandsgranskningen av bilden, och visar slutligen originalet (om detta är aktiverat).",
|
||||
"setting_image_viewer_original_subtitle": "Aktivera detta för att läsa in den fullstora originalbilden. Inaktivera det för att minska dataanvändningen i både nätverket och enhetens cacheminne.",
|
||||
"setting_image_viewer_original_title": "Ladda originalbilden",
|
||||
"setting_image_viewer_preview_subtitle": "Aktivera för att ladda en mellanstor bild. Stäng av för att antingen ladda originalet direkt eller bara använda miniatyrbilden.",
|
||||
"setting_image_viewer_preview_title": "Ladda förhandsgranskning av bild",
|
||||
"setting_languages_apply": "Verkställ",
|
||||
"setting_languages_subtitle": "Ändra appens språk",
|
||||
"setting_notifications_notify_minutes": "{count} minuter",
|
||||
@@ -2009,8 +2024,9 @@
|
||||
"share_everyone": "Dela alla",
|
||||
"share_everyone_description": "Ge {user} tillgång till alla dina personer.",
|
||||
"share_link": "Dela Länk",
|
||||
"share_logs": "Dela loggar",
|
||||
"share_original": "Använd original (stor)",
|
||||
"share_preview": "Använd miniatyrbild (liten)",
|
||||
"share_preview": "Använd förhandsgranskning (liten)",
|
||||
"share_quality_body": "Tryck och håll ned delningsknappen för att välja bildkvalitet innan du delar.",
|
||||
"share_quality_title": "Välj din delningskvalitet",
|
||||
"share_with": "Dela access med",
|
||||
@@ -2060,7 +2076,6 @@
|
||||
"shared_link_password_description": "Kräv ett lösenord för att komma åt den här delade länken",
|
||||
"shared_links": "Delade Länkar",
|
||||
"shared_links_description": "Dela foton och videor med en länk",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# delade foton och videor.}}",
|
||||
"shared_with": "Delad med",
|
||||
"shared_with_count": "Delade ({count})",
|
||||
"shared_with_me": "Delade med mig",
|
||||
@@ -2188,6 +2203,8 @@
|
||||
"theme": "Tema",
|
||||
"theme_selection": "Val av tema",
|
||||
"theme_selection_description": "Ställ in temat automatiskt till ljust eller mörkt baserat på din webbläsares inställningar",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Skrolla kontinuerligt när du drar rullningslisten istället för att fästa till månader",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Smidig tidslinjeskrubbning",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Visa lagringsindikator på filer",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Antal bilder och videor per rad ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Tillämpa primärfärgen på bakgrundsytor.",
|
||||
@@ -2303,7 +2320,7 @@
|
||||
"user": "Användare",
|
||||
"user_has_been_deleted": "Den här användaren har raderats.",
|
||||
"user_id": "Användar-ID",
|
||||
"user_liked": "{user} gillade {type, select, photo {det här fotot} video {den här videon} asset {det här objektet} other {det}}",
|
||||
"user_liked": "{user} gillade {type, select, image {det här fotot} video {den här videon} other {det}}",
|
||||
"user_pin_code_settings": "PIN-kod",
|
||||
"user_pin_code_settings_description": "Hantera PIN-kod",
|
||||
"user_privacy": "Användarsekretess",
|
||||
@@ -2339,6 +2356,7 @@
|
||||
"view_group": "Visa grupp",
|
||||
"view_in_timeline": "Visa i tidslinjen",
|
||||
"view_link": "Visa länk",
|
||||
"view_more": "Visa mer",
|
||||
"view_name": "Visa",
|
||||
"view_next_asset": "Visa nästa objekt",
|
||||
"view_previous_asset": "Visa föregående objekt",
|
||||
|
||||
+1
-4
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"about": "விபரம்",
|
||||
"accept": "ஏற்றுக்கொள்",
|
||||
"account": "கணக்கு",
|
||||
"account_settings": "கணக்கு அமைவுகள்",
|
||||
"acknowledge": "ஒப்புக்கொள்கிறேன்",
|
||||
@@ -1141,7 +1142,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {காணொளி} other {படம்}} {city}, {country} இல் {person1}, {person2}, மற்றும் {person3} உடன் {date} அன்று எடுக்கப்பட்டது",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {காணொளி} other {படம்}} {city}, {country} இல் {person1}, {person2}, மற்றும் {additionalCount, number} பிறருடன் {date} அன்று எடுக்கப்பட்டது",
|
||||
"immich_logo": "இம்மிச் லோகோ",
|
||||
"immich_web_interface": "இம்ரிச் வலை இடைமுகம்",
|
||||
"import_from_json": "சாதொபொகு இலிருந்து இறக்குமதி",
|
||||
"import_path": "இறக்குமதி பாதை",
|
||||
"in_albums": "{count, plural, one {# செருகேடு} other {# செருகேடுகள்}} இல்",
|
||||
@@ -1775,8 +1775,6 @@
|
||||
"setting_image_viewer_help": "விவரம் பார்வையாளர் முதலில் சிறிய சிறு உருவத்தை ஏற்றுகிறார், பின்னர் நடுத்தர அளவிலான முன்னோட்டத்தை ஏற்றுகிறார் (இயக்கப்பட்டால்), இறுதியாக அசலை ஏற்றுகிறது (இயக்கப்பட்டால்).",
|
||||
"setting_image_viewer_original_subtitle": "அசல் முழு தெளிவுத்திறன் படத்தை ஏற்றவும் (பெரியது!). தரவு பயன்பாட்டைக் குறைக்க முடக்கு (பிணையம் மற்றும் சாதன தற்காலிக சேமிப்பு இரண்டும்).",
|
||||
"setting_image_viewer_original_title": "அசல் படத்தை ஏற்றவும்",
|
||||
"setting_image_viewer_preview_subtitle": "நடுத்தர-தெளிவுத்திறன் படத்தை ஏற்றவும். அசலை நேரடியாக ஏற்ற முடக்கவும் அல்லது சிறுபடத்தை மட்டுமே பயன்படுத்தவும்.",
|
||||
"setting_image_viewer_preview_title": "முன்னோட்டம் படத்தை ஏற்றவும்",
|
||||
"setting_languages_apply": "இடு",
|
||||
"setting_languages_subtitle": "பயன்பாட்டின் மொழியை மாற்றவும்",
|
||||
"setting_notifications_notify_minutes": "{count} நிமிடங்கள்",
|
||||
@@ -1836,7 +1834,6 @@
|
||||
"shared_link_password_description": "இந்த பகிரப்பட்ட இணைப்பை அணுக கடவுச்சொல் தேவை",
|
||||
"shared_links": "பகிரப்பட்ட இணைப்புகள்",
|
||||
"shared_links_description": "புகைப்படங்கள் மற்றும் வீடியோக்களை இணைப்புடன் பகிரவும்",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# பகிரப்பட்ட புகைப்படங்கள் & காணொளிகள்.}}",
|
||||
"shared_with_me": "என்னுடன் பகிரப்பட்டது",
|
||||
"shared_with_partner": "{partner} உடன் பகிரப்பட்டது",
|
||||
"sharing": "பகிர்வு",
|
||||
|
||||
@@ -755,7 +755,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Image}} {city}, {country} లో {person1}, {person2}, మరియు {person3} లతో {date}న తీయబడింది",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Image}} {city}, {country} లో {person1}, {person2}, మరియు {additionalCount, number} others తో {date}న తీయబడింది",
|
||||
"immich_logo": "ఇమ్మిచ్ లోగో",
|
||||
"immich_web_interface": "ఇమ్మిచ్ వెబ్ ఇంటర్ఫేస్",
|
||||
"import_from_json": "JSON నుండి దిగుమతి చేయండి",
|
||||
"import_path": "దిగుమతి మార్గం",
|
||||
"in_albums": "{count, plural, one {# album} other {# album}} లో",
|
||||
|
||||
+12
-7
@@ -663,6 +663,7 @@
|
||||
"birthdate_set_description": "วันเกิดจะใช้เพื่อคำนวณอายุของบุคคลนี้ในขณะที่ถ่ายรูป",
|
||||
"birthday_memory_age": "วันเกิดครบรอบ {age, selectordinal, one {#} two {#} few {#} other {#}} ปี",
|
||||
"birthday_memory_title": "วันเกิดของ {name}",
|
||||
"birthday_memory_title_with_age": "วันเกิดของ {name} · อายุ {age, plural, one {#} other {#}} ปี",
|
||||
"blurred_background": "พื้นหลังแบบเบลอ",
|
||||
"browse_templates": "ค้นหาเท็มเพลต",
|
||||
"bugs_and_feature_requests": "รายงานข้อผิดพลาดและข้อเสนอแนะ",
|
||||
@@ -1230,7 +1231,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {วิดีโอ} other {รูปภาพ}}ที่ถ่ายใน {city}, {country} กับ {person1}, {person2}, และ {person3} เมื่อวันที่ {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {วิดีโอ} other {รูปภาพ}}ที่ถ่ายใน {city}, {country} กับ {person1}, {person2}, และ {additionalCount, number} เมื่อวันที่ {date}",
|
||||
"immich_logo": "โลโก้ Immich",
|
||||
"immich_web_interface": "หน้าตาเว็บไซต์ Immich",
|
||||
"import_from_json": "นำเข้าจาก JSON",
|
||||
"import_path": "นำเข้าเส้นทาง",
|
||||
"in_albums": "ใน {count, plural, one {# album} other {# albums}}",
|
||||
@@ -1278,6 +1278,7 @@
|
||||
"last": "สุดท้าย",
|
||||
"last_months": "{count, plural, one {เดือนที่ผ่านมา} other {# เดือนที่ผ่านมา}}",
|
||||
"last_seen": "เห็นล่าสุด",
|
||||
"last_used": "ใช้ล่าสุด",
|
||||
"latest_version": "เวอร์ชันล่าสุด",
|
||||
"latitude": "ละติจูด",
|
||||
"leave": "ทิ้ง",
|
||||
@@ -1353,6 +1354,7 @@
|
||||
"login_has_been_disabled": "ปิดใช้งานการเข้าสู่ระบบแล้ว",
|
||||
"login_password_changed_error": "เกิดข้อผิดพลาดขณะเปลี่ยนรหัสผ่าน",
|
||||
"login_password_changed_success": "เปลี่ยนรหัสผ่านสำเร็จ",
|
||||
"login_with_passkey": "เข้าสู่ระบบด้วยพาสคีย์",
|
||||
"logout_all_device_confirmation": "คุณต้องการออกจากระบบทุกอุปกรณ์ ใช่หรือไม่ ?",
|
||||
"logout_this_device_confirmation": "คุณต้องการออกจากระบบบนอุปกรณ์นี้หรือไม่?",
|
||||
"logs": "ล็อก",
|
||||
@@ -1519,6 +1521,7 @@
|
||||
"new_album": "อัลบั้มใหม่",
|
||||
"new_api_key": "สร้างคีย์ API ใหม่",
|
||||
"new_feature": "คุณสมบัติใหม่",
|
||||
"new_passkey": "พาสคีย์ใหม่",
|
||||
"new_password": "รหัสผ่านใหม่",
|
||||
"new_person": "คนใหม่",
|
||||
"new_pin_code": "รหัส PIN ใหม่",
|
||||
@@ -1631,6 +1634,8 @@
|
||||
"partner_sharing": "แชร์สำหรับคู่หู",
|
||||
"partners": "คู่หู",
|
||||
"partners_description": "แชร์รูปภาพและวิดีโอของคุณให้กับผู้ใช้อื่น",
|
||||
"passkeys": "{count, plural, one {พาสคีย์} other {พาสคีย์}}",
|
||||
"passkeys_not_supported": "เบราว์เซอร์นี้ไม่รองรับพาสคีย์",
|
||||
"password": "รหัสผ่าน",
|
||||
"password_does_not_match": "รหัสผ่านไม่ตรงกัน",
|
||||
"password_required": "จำเป็นต้องมีรหัสผ่าน",
|
||||
@@ -1823,6 +1828,7 @@
|
||||
"reset_sqlite_confirmation": "คุณแน่ใจว่าต้องการล้างข้อมูลแอปหรือไม่? การกระทำนี้จะลบการตั้งค่าทั้งหมดและนำคุณออกจากระบบ",
|
||||
"reset_sqlite_confirmation_note": "หมายเหตุ: คุณจะต้องปิดและเปิดแอปใหม่หลังจากล้างข้อมูลแล้ว",
|
||||
"reset_sqlite_done": "ล้างข้อมูลแอปแล้ว โปรดปิดและเปิด Immich ใหม่ และเข้าสู่ระบบอีกครั้ง",
|
||||
"reset_sqlite_error_hint": "มีบางอย่างผิดพลาด กรุณากดปุ่มด้านล่างเพื่อรีเซ็ตฐานข้อมูลที่อยู่ในเครื่องนี้",
|
||||
"reset_sqlite_success": "รีเซ็ตฐานข้อมูล SQLite สำเร็จ",
|
||||
"reset_to_default": "กลับไปค่าเริ่มต้น",
|
||||
"resolution": "ความละเอียด",
|
||||
@@ -1964,11 +1970,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "ถ้าเปิด คุณสามารถไปยังภาพก่อนหน้าหรือภาพถัดไปได้ด้วยการแตะฝั่งซ้ายสุด/ขวาสุดของจอ",
|
||||
"setting_image_navigation_enable_title": "แตะเพื่อนำทาง",
|
||||
"setting_image_navigation_title": "การนำทางรูปภาพ",
|
||||
"setting_image_viewer_help": "ตัวดูรายละเอียดโหลดรูปย่อก่อน แล้วจะโหลดพรีวิวขนาดกลาง (ถ้าเปิด) แล้วค่อยโหลดรูปต้นฉบับ (ถ้าเปิด)",
|
||||
"setting_image_viewer_help": "ตัวดูรายละเอียดจะโหลดภาพขนาดย่อก่อน แล้วจะโหลดภาพตัวอย่างขนาดกลาง แล้วค่อยโหลดรูปต้นฉบับ (ถ้าเปิดอยู่)",
|
||||
"setting_image_viewer_original_subtitle": "เปิดเพื่อโหลดรูปต้นฉบับความละเอียดเต็ม (ใหญ่!) ปิดเพื่อลดการใช้ข้อมูล (ทั้งบนเครือข่ายและแคชบนเครื่อง)",
|
||||
"setting_image_viewer_original_title": "โหลดรูปต้นฉบับ",
|
||||
"setting_image_viewer_preview_subtitle": "เปิดเพื่อโหลดรูปภาพความละเอียดปานกลาง เปิดเพื่อโหลดรูปต้นฉบับโดยตรงหรือใช้แค่รูปย่อ",
|
||||
"setting_image_viewer_preview_title": "โหลดรูปภาพตัวอย่าง",
|
||||
"setting_languages_apply": "บันทึก",
|
||||
"setting_languages_subtitle": "เปลี่ยนภาษาของแอป",
|
||||
"setting_notifications_notify_minutes": "{count} นาที",
|
||||
@@ -1983,10 +1987,12 @@
|
||||
"settings_saved": "บันทึกการตั้งค่าแล้ว",
|
||||
"setup_pin_code": "ตั้งรหัส PIN",
|
||||
"share": "แชร์",
|
||||
"share_back": "แชร์กลับ",
|
||||
"share_dialog_preparing": "กำลังเตรียม...",
|
||||
"share_everyone": "แชร์ทุกคน",
|
||||
"share_link": "แชร์ลิงก์",
|
||||
"share_original": "ใช้ต้นฉบับ (ใหญ่)",
|
||||
"share_preview": "ใช้ภาพขนาดย่อ (เล็ก)",
|
||||
"share_preview": "ใช้ภาพตัวอย่าง (เล็ก)",
|
||||
"share_quality_body": "กดที่ปุ่มแชร์ค้างไว้เพื่อเลือกคุณภาพของภาพก่อนที่จะแชร์",
|
||||
"share_quality_title": "เลือกคุณภาพการแชร์",
|
||||
"shared": "แชร์",
|
||||
@@ -2034,7 +2040,6 @@
|
||||
"shared_link_password_description": "ต้องใช้รหัสผ่านเพื่อเข้าถึงลิงก์ที่แชร์นี้",
|
||||
"shared_links": "ลิงก์ที่แชร์",
|
||||
"shared_links_description": "แบ่งปันรูปภาพและวีดีโอด้วยลิงก์",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# รูปภาพและวิดีโอที่ถูกแชร์}}",
|
||||
"shared_with_me": "แชร์กับฉัน",
|
||||
"shared_with_partner": "แชร์กับ {partner}",
|
||||
"sharing": "การแชร์",
|
||||
@@ -2271,7 +2276,7 @@
|
||||
"user": "ผู้ใช้",
|
||||
"user_has_been_deleted": "ผู้ใช้รายนี้ถูกลบไปแล้ว",
|
||||
"user_id": "ไอดีผู้ใช้",
|
||||
"user_liked": "{user} ได้ถูกใจ{type, select, photo {รูปภาพนี้} video {วิดีโอนี้} asset {สื่อนี้} other {สิ่งนี้}}",
|
||||
"user_liked": "{user} ได้ถูกใจ{type, select, image {รูปภาพนี้} video {วิดีโอนี้} other {สิ่งนี้}}",
|
||||
"user_pin_code_settings": "รหัส PIN",
|
||||
"user_pin_code_settings_description": "จัดการรหัส PIN ของคุณ",
|
||||
"user_privacy": "ความเป็นส่วนตัวผู้ใช้",
|
||||
|
||||
+6
-6
@@ -1239,7 +1239,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Fotoğraf}} {city}, {country} şehrinde {person1}, {person2} ve {person3} ile {date} tarihinde çekildi",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Fotoğraf}} {city}, {country} şehrinde {person1}, {person2} ve diğer {additionalCount, number} kişi ile {date} tarihinde çekildi",
|
||||
"immich_logo": "Immich Logosu",
|
||||
"immich_web_interface": "Immich Web Arayüzü",
|
||||
"import_from_json": "JSON'dan İçe Aktar",
|
||||
"import_path": "İçe aktarma yolu",
|
||||
"in_albums": "{count, plural, one {# Albüm} other {# Albümde}}",
|
||||
@@ -1986,11 +1985,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Etkinleştirilirse, ekranın en sol ve en sağdaki çeyreğine dokunarak önceki ve sonraki görüntüye geçebilirsiniz.",
|
||||
"setting_image_navigation_enable_title": "Gezinmek için dokun",
|
||||
"setting_image_navigation_title": "Görüntü gezinmesi",
|
||||
"setting_image_viewer_help": "Görüntüleyici önce küçük resmi gösterir, ardından orta boy önizlemeyi (etkinleştirilmişse) ve son olarak orijinali (etkinleştirilmişse) gösterir.",
|
||||
"setting_image_viewer_help": "Görüntüleyici önce küçük resmi gösterir, ardından orta boy önizlemeyi ve son olarak orijinali (etkinleştirilmişse) gösterir.",
|
||||
"setting_image_viewer_original_subtitle": "Orijinal tam çözünürlüklü görüntüyü (büyük!) yüklemek için etkinleştirin. Veri kullanımını azaltmak için devre dışı bırakın (hem ağ hem de cihaz önbelleği).",
|
||||
"setting_image_viewer_original_title": "Orijinal görüntüyü yükle",
|
||||
"setting_image_viewer_preview_subtitle": "Orta çözünürlüklü bir görüntü göstermek için etkinleştirin. Orijinali doğrudan göstermek veya yalnızca küçük resmi kullanmak için devre dışı bırakın.",
|
||||
"setting_image_viewer_preview_title": "Önizleme görüntüsünü yükle",
|
||||
"setting_languages_apply": "Uygula",
|
||||
"setting_languages_subtitle": "Uygulama dilini değiştir",
|
||||
"setting_notifications_notify_minutes": "{count} dakika",
|
||||
@@ -2010,8 +2007,9 @@
|
||||
"share_everyone": "Herkesi paylaş",
|
||||
"share_everyone_description": "{user} kullanıcısına tüm kişilerinize erişim izni verin.",
|
||||
"share_link": "Bağlantıyı Paylaş",
|
||||
"share_logs": "Logları paylaş",
|
||||
"share_original": "Orijinal (büyük) olanı kullanın",
|
||||
"share_preview": "Küçük resmi kullan",
|
||||
"share_preview": "Ön izlemeyi kullan (küçük)",
|
||||
"share_quality_body": "Paylaşmadan önce görüntü kalitesini seçmek için paylaş düğmesine basılı tutun.",
|
||||
"share_quality_title": "Paylaşma kalitesini seçin",
|
||||
"share_with": "Erişimi şunlarla paylaş",
|
||||
@@ -2061,7 +2059,6 @@
|
||||
"shared_link_password_description": "Bu paylaşılan bağlantıya erişmek için şifre gereklidir",
|
||||
"shared_links": "Paylaşılan bağlantılar",
|
||||
"shared_links_description": "Fotoğraf ve videoları bir bağlantı ile paylaş",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# paylaşılan fotoğraflar ve videolar.}}",
|
||||
"shared_with": "Şununla paylaşıldı",
|
||||
"shared_with_count": "Paylaşıldı ({count})",
|
||||
"shared_with_me": "Benimle paylaşılanlar",
|
||||
@@ -2189,6 +2186,8 @@
|
||||
"theme": "Tema",
|
||||
"theme_selection": "Tema seçimi",
|
||||
"theme_selection_description": "Temayı otomatik olarak tarayıcınızın sistem tercihine göre açık veya koyu ayarlayın",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Kaydırma çubuğunu sürüklerken aylara sabitlenmek yerine sürekli kaydır",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Zaman çizelgesinde kesintisiz kaydır",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Öğe kutucuklarında depolama göstergesini göster",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Satır başına öğe sayısı ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Birincil rengi arka plan yüzeylerine uygulayın.",
|
||||
@@ -2340,6 +2339,7 @@
|
||||
"view_group": "Grubu görüntüle",
|
||||
"view_in_timeline": "Zaman çizelgesinde görüntüle",
|
||||
"view_link": "Bağlantıyı göster",
|
||||
"view_more": "Daha fazlasını görüntüle",
|
||||
"view_name": "Görünüm",
|
||||
"view_next_asset": "Sonraki öğeyi görüntüle",
|
||||
"view_previous_asset": "Önceki öğeyi görüntüle",
|
||||
|
||||
@@ -1224,7 +1224,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Відео} other {Зображення}} знято в {city}, {country} з {person1}, {person2} та {person3} {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Відео} other {Зображення}} знято в {city}, {country} з {person1}, {person2} та ще {additionalCount, number} людьми {date}",
|
||||
"immich_logo": "Логотип Immich",
|
||||
"immich_web_interface": "Веб-інтерфейс Immich",
|
||||
"import_from_json": "Імпорт із JSON",
|
||||
"import_path": "Шлях імпорту",
|
||||
"in_albums": "У {count, plural, one {# альбомі} few {# альбомах} many {# альбомах} other {# альбомах}}",
|
||||
@@ -1958,8 +1957,6 @@
|
||||
"setting_image_viewer_help": "Переглядач спочатку завантажує малу мініатюру, потім попередній перегляд середньої роздільної здатності (якщо увімкнено) і зрештою оригінал (якщо увімкнено).",
|
||||
"setting_image_viewer_original_subtitle": "Увімкніть, щоб завантажити оригінальне зображення з повною роздільною здатністю (велике!). Вимкніть, щоб зменшити використання даних (як через мережу, так і в кеші пристрою).",
|
||||
"setting_image_viewer_original_title": "Завантажувати оригінальне зображення",
|
||||
"setting_image_viewer_preview_subtitle": "Увімкніть, щоб завантажити зображення середньої роздільної здатності. Вимкніть, щоб завантажувати оригінал або використовувати лише мініатюру.",
|
||||
"setting_image_viewer_preview_title": "Завантажувати мініатюри",
|
||||
"setting_languages_apply": "Застосувати",
|
||||
"setting_languages_subtitle": "Змінити мову застосунку",
|
||||
"setting_notifications_notify_minutes": "{count, plural, one {# хвилина} few {# хвилини} many {# хвилин} other {# хвилин}}",
|
||||
@@ -2025,7 +2022,6 @@
|
||||
"shared_link_password_description": "Запитувати пароль, щоб отримати доступ до цього спільного посилання",
|
||||
"shared_links": "Спільні посилання",
|
||||
"shared_links_description": "Діліться фото та відео за посиланням",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, one {# спільне фото та відео} few {# спільні фото та відео} many {# спільних фото та відео} other {# спільних фото та відео}}",
|
||||
"shared_with_me": "Спільні зі мною",
|
||||
"shared_with_partner": "Спільно з {partner}",
|
||||
"sharing": "Спільний доступ",
|
||||
|
||||
+31
-13
@@ -86,21 +86,21 @@
|
||||
"failed_job_command": "Lệnh {command} không thực hiện được tác vụ: {job}",
|
||||
"force_delete_user_warning": "CẢNH BÁO: Thao tác này sẽ ngay lập tức xóa người dùng và toàn bộ tài nguyên. Điều không thể hoàn tác và các tệp không thể khôi phục.",
|
||||
"image_format": "Định dạng",
|
||||
"image_format_description": "Định dạng WebP dung lượng nhỏ hơn JPEG, nhưng mã hóa chậm hơn.",
|
||||
"image_format_description": "WebP dung lượng nhỏ hơn JPEG, nhưng mã hóa chậm hơn. JPEG XL là lựa chọn nén chất lượng cao tốt nhất, nhưng không phải tất cả trình duyệt và ứng dụng đều có thể có thể hiển thị nó.",
|
||||
"image_fullsize_description": "Ảnh kích thước đẩy đủ với thông tin metadata bị loại bỏ, được dùng khi phóng to",
|
||||
"image_fullsize_enabled": "Cho phép sinh ảnh đầy đủ kích thước",
|
||||
"image_fullsize_enabled_description": "Sinh ảnh đầy đủ kích thước cho các định dạng không thân thiện với web. Khi tùy chọn \"Ưu tiên xem trước dạng nhúng\" được bật, việc xem trước dạng nhúng dược sử dụng trực tiếp mà không thông việc chuyển đổi định dạng. Không ảnh hưởng đến các định dạng thân thiện với web như JPEG.",
|
||||
"image_fullsize_enabled_description": "Sinh ảnh kích thước đầy đủ cho các định dạng không thân thiện với web. Khi tùy chọn bật, bản xem trước dạng nhúng được sử dụng trực tiếp mà không thông việc chuyển đổi định dạng. Không ảnh hưởng đến các định dạng thân thiện với web như JPEG.",
|
||||
"image_fullsize_quality_description": "Chất lượng ảnh kích thước đầy đủ từ 1-100. Số lớn hơn là ảnh chất lượng tốt hơn, nhưng sinh ra tệp có kích thước lớn hơn.",
|
||||
"image_fullsize_title": "Cài đặt ảnh kích thước đầy đủ",
|
||||
"image_prefer_embedded_preview": "Ưu tiên ảnh xem trước dạng nhúng",
|
||||
"image_prefer_embedded_preview_setting_description": "Dùng ảnh xem trước trong ảnh RAW khi có sẵn để xử lý hình ảnh. Điều này có thể giúp tái tạo màu sắc chính xác hơn cho một số ảnh, nhưng chất lượng của ảnh xem trước phụ thuộc vào máy ảnh và có thể bị nhiễu do nén.",
|
||||
"image_prefer_embedded_preview": "Ưu tiên bản xem trước dạng nhúng",
|
||||
"image_prefer_embedded_preview_setting_description": "Dùng bản xem trước trong ảnh RAW để xử lý hình ảnh khi có sẵn. Điều này có thể giúp tái tạo màu sắc chính xác hơn cho một số ảnh, nhưng chất lượng của ảnh xem trước phụ thuộc vào máy ảnh và có thể bị nhiễu do nén.",
|
||||
"image_prefer_wide_gamut": "Ưu tiên gam màu mở rộng",
|
||||
"image_prefer_wide_gamut_setting_description": "Dùng gam màu Display P3 để hiển thị ảnh thu nhỏ. Điều này giúp giữ màu sắc rực rỡ của những hình ảnh có gam màu rộng, nhưng ảnh có thể trông khác trên các thiết bị và trình duyệt cũ. Ảnh sRGB được giữ nguyên để tránh thay đổi màu sắc.",
|
||||
"image_preview_description": "Ảnh kích thước trung bình đã loại bỏ metadata, được sử dụng khi xem một tài nguyên duy nhất và cho học máy",
|
||||
"image_preview_quality_description": "Chất lượng xem trước từ 1-100. Càng cao càng tốt, nhưng sẽ tạo ra các tệp lớn có thể làm giảm khả năng phản hồi của app. Sử dụng giá trị thấp có thể ảnh hưởng đến chất lượng tác vụ học máy.",
|
||||
"image_preview_title": "Cài đặt Xem trước",
|
||||
"image_preview_title": "Cài đặt Bản xem trước",
|
||||
"image_progressive": "Mang tính tịnh tiến",
|
||||
"image_progressive_description": "Mã hoá JPEG một cách tịnh tiến để ảnh hiển thị dần trong quá trình tải. Không áp dụng cho WebP.",
|
||||
"image_progressive_description": "Mã hóa JPEG tịnh tiến để ảnh hiển thị dần trong quá trình tải. Không áp dụng cho các định dạng khác.",
|
||||
"image_quality": "Chất lượng",
|
||||
"image_resolution": "Độ phân giải",
|
||||
"image_resolution_description": "Độ phân giải cao hơn sẽ rõ nét hơn nhưng tốn nhiều thời gian để mã hóa, kích cỡ tệp lớn hơn và có thể làm giảm khả năng phản hồi của app.",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "Thời gian chờ phản hồi",
|
||||
"oauth_timeout_description": "Đặt thời gian chờ phản hồi bằng mili giây",
|
||||
"ocr_job_description": "Sử dụng học máy để nhận dạng chữ viết trong ảnh",
|
||||
"passkey_additional_domains": "Tên miền bổ sung",
|
||||
"passkey_additional_domains_description": "Các tên miền đáng tin cậy bổ sung (yêu cầu nguồn gốc liên quan). Chúng chỉ hoạt động nếu tên miền passkey cũng có thể truy cập được.",
|
||||
"passkey_domain": "Tên miền passkey",
|
||||
"passkey_domain_description": "Tên miền được sử dụng cho passkey (bên phụ thuộc). Để trống để lấy từ tiêu đề nguồn gốc. Việc thay đổi giá trị này sẽ khiến các passkey hiện có không còn hoạt động.",
|
||||
"passkey_enable_description": "Đăng nhập với passkey",
|
||||
"passkey_settings": "Đăng nhập Passkey",
|
||||
"passkey_settings_description": "Quản lý cài đặt đăng nhập passkey",
|
||||
"password_enable_description": "Đăng nhập với email và mật khẩu",
|
||||
"password_settings": "Mật khẩu đăng nhập",
|
||||
"password_settings_description": "Quản lý cài đặt mật khẩu đăng nhập",
|
||||
@@ -873,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "Xóa ảnh đã sao lưu",
|
||||
"delete_local_dialog_ok_force": "Vẫn xóa",
|
||||
"delete_others": "Xóa ảnh còn lại",
|
||||
"delete_passkey": "Xóa passkey",
|
||||
"delete_passkey_prompt": "Bạn có chắc muốn xóa passkey này?",
|
||||
"delete_permanently": "Xóa vĩnh viễn",
|
||||
"delete_permanently_action_prompt": "Đã xóa vĩnh viễn ({count})",
|
||||
"delete_shared_link": "Xóa link đã chia sẻ",
|
||||
@@ -942,6 +951,7 @@
|
||||
"edit_location_action_prompt": "Đã sửa địa điểm ({count})",
|
||||
"edit_location_dialog_title": "Vị trí",
|
||||
"edit_name": "Chỉnh sửa tên",
|
||||
"edit_passkey": "Sửa passkey",
|
||||
"edit_people": "Chỉnh sửa người",
|
||||
"edit_person": "Chỉnh sửa người",
|
||||
"edit_tag": "Chỉnh sửa thẻ",
|
||||
@@ -1239,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {Video} other {Ảnh}} được chụp tại {city}, {country} với {person1}, {person2}, và {person3} vào {date}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {Video} other {Ảnh}} được chụp tại {city}, {country} với {person1}, {person2}, và {additionalCount, number} người khác vào {date}",
|
||||
"immich_logo": "Logo Immich",
|
||||
"immich_web_interface": "Giao diện web Immich",
|
||||
"import_from_json": "Nhập từ JSON",
|
||||
"import_path": "Đường dẫn nhập",
|
||||
"in_albums": "Trong {count, plural, one {# album} other {# album}}",
|
||||
@@ -1287,6 +1296,7 @@
|
||||
"last": "Cuối cùng",
|
||||
"last_months": "{count, plural, one {Tháng trước} other {# tháng}} trước",
|
||||
"last_seen": "Lần cuối nhìn thấy",
|
||||
"last_used": "Lần cuối dùng",
|
||||
"latest_version": "Phiên bản mới nhất",
|
||||
"latitude": "Vĩ độ",
|
||||
"leave": "Rời khỏi",
|
||||
@@ -1362,6 +1372,7 @@
|
||||
"login_has_been_disabled": "Đăng nhập đã bị vô hiệu hóa",
|
||||
"login_password_changed_error": "Thay đổi mật khẩu không thành công",
|
||||
"login_password_changed_success": "Cập nhật mật khẩu thành công",
|
||||
"login_with_passkey": "Đăng nhập bằng passkey",
|
||||
"logout_all_device_confirmation": "Bạn có chắc muốn đăng xuất tất cả thiết bị?",
|
||||
"logout_this_device_confirmation": "Bạn có chắc muốn đăng xuất thiết bị này?",
|
||||
"logs": "Log",
|
||||
@@ -1401,6 +1412,7 @@
|
||||
"manage_media_access_title": "Quản lý media",
|
||||
"manage_oauth_account": "Quản lý tài khoản OAuth",
|
||||
"manage_people": "Quản lý người",
|
||||
"manage_people_access_description_v2": "Cho phép người dùng khác truy cập {count, plural, one {người này} other {người khác của bạn}}, cho phép họ xem hoặc quản lý người thay mặt bạn. Hành động này không chia sẻ bất kỳ tài nguyên nào.",
|
||||
"manage_person_access": "Quản lý truy cập",
|
||||
"manage_sharing_with_other_users": "Quản lý chia sẻ với người dùng khác",
|
||||
"manage_sharing_with_partners": "Quản lý chia sẻ với người thân",
|
||||
@@ -1409,6 +1421,7 @@
|
||||
"manage_your_api_keys": "Quản lý các khóa API của bạn",
|
||||
"manage_your_devices": "Quản lý các thiết bị đã đăng nhập của bạn",
|
||||
"manage_your_oauth_connection": "Quản lý kết nối OAuth của bạn",
|
||||
"manage_your_passkeys": "Quản lý passkey của bạn",
|
||||
"map": "Bản đồ",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {Không có ảnh ở nơi này} one {# ảnh} other {# ảnh}}",
|
||||
"map_cannot_get_user_location": "Không thể xác định vị trí của bạn",
|
||||
@@ -1528,6 +1541,7 @@
|
||||
"new_album": "Album mới",
|
||||
"new_api_key": "Khóa API mới",
|
||||
"new_feature": "Tính năng mới",
|
||||
"new_passkey": "Passkey mới",
|
||||
"new_password": "Mật khẩu mới",
|
||||
"new_person": "Người mới",
|
||||
"new_pin_code": "Mã PIN mới",
|
||||
@@ -1640,6 +1654,8 @@
|
||||
"partner_sharing": "Người thân",
|
||||
"partners": "Người thân",
|
||||
"partners_description": "Chia sẻ ảnh và video của bạn với những người dùng khác",
|
||||
"passkeys": "{count, plural, one {Passkey} other {Passkey}}",
|
||||
"passkeys_not_supported": "Passkey không được hỗ trợ trên trình duyệt này",
|
||||
"password": "Mật khẩu",
|
||||
"password_does_not_match": "Mật khẩu không khớp",
|
||||
"password_required": "Yêu cầu mật khẩu",
|
||||
@@ -1824,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "{count, plural, other {Đã xóa #}} khỏi mục Yêu thích",
|
||||
"removed_from_stack": "Đã xóa tài nguyên khỏi ngăn xếp",
|
||||
"removed_memory": "Đã xóa kỷ niệm",
|
||||
"removed_passkey": "Đã xóa passkey: {name}",
|
||||
"removed_tagged_assets": "Đã xóa thẻ khỏi {count, plural, one {# tài nguyên} other {# tài nguyên}}",
|
||||
"rename": "Đổi tên",
|
||||
"repository": "Kho mã nguồn",
|
||||
@@ -1985,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "Bật để chuyển sang ảnh trước/ảnh sau bằng cách nhấn mép trái/phải màn hình.",
|
||||
"setting_image_navigation_enable_title": "Chạm để điều hướng",
|
||||
"setting_image_navigation_title": "Điều hướng hình ảnh",
|
||||
"setting_image_viewer_help": "Khi xem chi tiết, thứ tự nạp sẽ là: ảnh thu nhỏ (cỡ nhỏ) → ảnh xem trước (cỡ trung bình) (nếu bật) → ảnh gốc (nếu bật).",
|
||||
"setting_image_viewer_help": "Thứ tự tải khi nhấn xem chi tiết: ảnh thu nhỏ (cỡ nhỏ) → bản xem trước (cỡ trung bình) → ảnh gốc (nếu bật).",
|
||||
"setting_image_viewer_original_subtitle": "Bật để tải ảnh gốc ở độ phân giải đầy đủ (dung lượng lớn). Tắt để giảm mức sử dụng dữ liệu (mức sử dụng mạng và bộ nhớ đệm trên thiết bị).",
|
||||
"setting_image_viewer_original_title": "Ưu tiên chất lượng gốc",
|
||||
"setting_image_viewer_preview_subtitle": "Bật để nạp ảnh chất lượng trung bình. Tắt để nạp thẳng ảnh gốc hoặc chỉ xem ảnh thu nhỏ.",
|
||||
"setting_image_viewer_preview_title": "Nạp ảnh xem trước",
|
||||
"setting_languages_apply": "Áp dụng",
|
||||
"setting_languages_subtitle": "Thay đổi ngôn ngữ ứng dụng",
|
||||
"setting_notifications_notify_minutes": "{count} phút",
|
||||
@@ -2009,8 +2024,9 @@
|
||||
"share_everyone": "Chia sẻ với mọi người",
|
||||
"share_everyone_description": "Cấp quyền truy cập cho {user} vào tất cả mọi người của bạn.",
|
||||
"share_link": "Chia sẻ link",
|
||||
"share_logs": "Chia sẻ nhật ký",
|
||||
"share_original": "Chất lượng gốc (lớn)",
|
||||
"share_preview": "Dùng ảnh thu nhỏ (nhỏ)",
|
||||
"share_preview": "Dùng bản xem trước (nhỏ)",
|
||||
"share_quality_body": "Nhấn giữ nút chia sẻ để chọn chất lượng hình ảnh trước khi chia sẻ.",
|
||||
"share_quality_title": "Chọn chất lượng chia sẻ",
|
||||
"share_with": "Chia sẻ truy cập với",
|
||||
@@ -2060,7 +2076,6 @@
|
||||
"shared_link_password_description": "Bắt buộc để truy cập link chia sẻ này",
|
||||
"shared_links": "Đã chia sẻ",
|
||||
"shared_links_description": "Chia sẻ ảnh và video bằng link",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {# ảnh & video đã chia sẻ.}}",
|
||||
"shared_with": "Đã chia sẻ với",
|
||||
"shared_with_count": "Đã chia sẻ ({count})",
|
||||
"shared_with_me": "Chia sẻ với tôi",
|
||||
@@ -2188,6 +2203,8 @@
|
||||
"theme": "Chủ đề",
|
||||
"theme_selection": "Chủ đề",
|
||||
"theme_selection_description": "Dựa theo trình duyệt của bạn",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "Cuộn liên tục khi kéo thanh cuộn thay vì nhấn vào các tháng",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "Cuộn dòng thời gian mượt mà",
|
||||
"theme_setting_asset_list_storage_indicator_title": "Hiện trạng thái sao lưu trên ảnh thu nhỏ",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "Số lượng tài nguyên trên mỗi hàng ({count})",
|
||||
"theme_setting_colorful_interface_subtitle": "Áp dụng màu chủ đề cho nền app.",
|
||||
@@ -2303,7 +2320,7 @@
|
||||
"user": "Người dùng",
|
||||
"user_has_been_deleted": "Người dùng này đã bị xóa.",
|
||||
"user_id": "ID người dùng",
|
||||
"user_liked": "{user} đã thích {type, select, photo {ảnh này} video {video này} asset {tài nguyên này} other {nó}}",
|
||||
"user_liked": "{user} đã thích {type, select, image {ảnh này} video {video này} other {mục này}}",
|
||||
"user_pin_code_settings": "Mã PIN",
|
||||
"user_pin_code_settings_description": "Quản lý mã PIN của bạn",
|
||||
"user_privacy": "Quyền riêng tư người dùng",
|
||||
@@ -2339,6 +2356,7 @@
|
||||
"view_group": "Xem nhóm",
|
||||
"view_in_timeline": "Xem trên dòng thời gian",
|
||||
"view_link": "Xem liên kết",
|
||||
"view_more": "Xem nhiều hơn",
|
||||
"view_name": "Giao diện",
|
||||
"view_next_asset": "Xem tài nguyên tiếp theo",
|
||||
"view_previous_asset": "Xem tài nguyên trước đó",
|
||||
|
||||
+151
-5
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "請求超時",
|
||||
"oauth_timeout_description": "請求超時(毫秒)",
|
||||
"ocr_job_description": "用機械學習辨識影像中嘅文字",
|
||||
"passkey_additional_domains": "追加域名",
|
||||
"passkey_additional_domains_description": "新增受信任域名(關聯來源請求)。只有當通行密鑰域名都可以存取時,呢啲域名先會生效。",
|
||||
"passkey_domain": "通行密鑰域名",
|
||||
"passkey_domain_description": "用於通行密鑰嘅域名(依賴方)。留空就會從 Origin 請求頭推斷。更改呢個值會導致現有通行密鑰失效。",
|
||||
"passkey_enable_description": "用通行密鑰登入",
|
||||
"passkey_settings": "通行密鑰登入",
|
||||
"passkey_settings_description": "管理通行密鑰登入設定",
|
||||
"password_enable_description": "用電子郵件同埋密碼登入",
|
||||
"password_settings": "密碼登入",
|
||||
"password_settings_description": "管理密碼登入設定",
|
||||
@@ -861,6 +868,7 @@
|
||||
"delete_api_key_prompt": "你係唔係確定要移除呢個 API 密匙?",
|
||||
"delete_dialog_alert": "呢啲項目會喺 Immich 伺服器同埋你嘅裝置上面永久刪除",
|
||||
"delete_dialog_alert_local": "呢啲項目將會喺你嘅裝置上面永久咁刪除,但係依然會保留喺 Immich 伺服器上面",
|
||||
"delete_dialog_alert_local_ios": "呢啲項目會由相片庫度移除,但係仍然會保留喺 Immich 伺服器上面。佢哋會喺「最近刪除」度保留 30 日。",
|
||||
"delete_dialog_alert_local_non_backed_up": "部分嘅項目仲未備份到 Immich 嗰度,喺裝置上面刪除後將會永久消失",
|
||||
"delete_dialog_title": "永久刪除",
|
||||
"delete_duplicates_confirmation": "你係唔係確定要永久刪除呢啲重複嘅項目?",
|
||||
@@ -872,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "刪除淨係備份咗嘅項目",
|
||||
"delete_local_dialog_ok_force": "確認刪除",
|
||||
"delete_others": "刪除其他",
|
||||
"delete_passkey": "刪除通行密鑰",
|
||||
"delete_passkey_prompt": "確定要刪除呢個通行密鑰嗎?",
|
||||
"delete_permanently": "永久刪除",
|
||||
"delete_permanently_action_prompt": "永久刪除咗 {count} 個項目",
|
||||
"delete_shared_link": "刪除分享連結",
|
||||
@@ -941,7 +951,9 @@
|
||||
"edit_location_action_prompt": "已編輯 {count} 個位置",
|
||||
"edit_location_dialog_title": "位置",
|
||||
"edit_name": "編輯名",
|
||||
"edit_passkey": "編輯通行密鑰",
|
||||
"edit_people": "編輯人物",
|
||||
"edit_person": "人物編輯",
|
||||
"edit_tag": "編輯標籤",
|
||||
"edit_title": "編輯標題",
|
||||
"edit_user": "編輯用戶",
|
||||
@@ -1227,9 +1239,16 @@
|
||||
"idle": "閒置",
|
||||
"image": "影像",
|
||||
"image_alt_text_date": "喺 {date} 嗰陣影嘅 {isVideo, select, true {影片} other {相}}",
|
||||
"image_alt_text_date_1_person": "{date}影嘅、包含 {person1} 嘅{isVideo, select, true {影片} other {相片}}",
|
||||
"image_alt_text_date_2_people": "{date}拍攝嘅包含{person1}同{person2}嘅{isVideo, select, true {视频} other {相片}}",
|
||||
"image_alt_text_date_3_people": "{date}拍攝嘅包含{person1}、{person2}同{person3}嘅{isVideo, select, true {視頻} other {照片}}",
|
||||
"image_alt_text_date_4_or_more_people": "{date}影嘅,包含{person1}、{person2}同另外{additionalCount, number}個人嘅{isVideo, select, true {视频} other {照片}}",
|
||||
"image_alt_text_date_place": "{date}喺{country}{city}影嘅{isVideo, select, true {视频} other {照片}}",
|
||||
"image_alt_text_date_place_1_person": "{date}喺{country}{city}影嘅,包含{person1}嘅{isVideo, select, true {视频} other {照片}}",
|
||||
"image_alt_text_date_place_2_people": "{date}喺{country}{city}影嘅,包含{person1}同{person2}嘅{isVideo, select, true {视频} other {照片}}",
|
||||
"image_alt_text_date_place_3_people": "{date}喺{country}{city}影嘅,包含{person1}、{person2}同{person3}嘅{isVideo, select, true {视频} other {照片}}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{date}嗰陣喺{country}{city}嗰度同{person1}、{person2}同埋其他{additionalCount, number}個人影嘅{isVideo, select, true {影片} other {相}}",
|
||||
"immich_logo": "Immich Logo",
|
||||
"immich_web_interface": "Immich 網頁介面",
|
||||
"import_from_json": "喺 JSON 嗰度導入",
|
||||
"import_path": "導入路徑",
|
||||
"in_albums": "喺 {count} 本相簿入面",
|
||||
@@ -1266,6 +1285,7 @@
|
||||
"keep_on_device_hint": "選擇要保留在此裝置上的項目",
|
||||
"keep_this_delete_others": "保留呢個,其他掉晒",
|
||||
"keeping": "保留:{items}",
|
||||
"kept_this_deleted_others": "保留呢张相/呢条片,并删除{count, plural, one {# 个项目} other {# 个项目}}",
|
||||
"keyboard_shortcuts": "鍵盤嘅快捷鍵",
|
||||
"language": "語言",
|
||||
"language_no_results_subtitle": "調整下你個搜尋詞彙",
|
||||
@@ -1276,11 +1296,13 @@
|
||||
"last": "最後一個",
|
||||
"last_months": "最近 {count} 個月",
|
||||
"last_seen": "最後在線",
|
||||
"last_used": "上次使用",
|
||||
"latest_version": "最新版本",
|
||||
"latitude": "緯度",
|
||||
"leave": "離開",
|
||||
"leave_album": "離開相簿",
|
||||
"leave_group": "離開群組",
|
||||
"leave_group_description": "系統將唔會再對呢個群組入面所有成員嘅相片進行交叉識別。確定要繼續嗎?",
|
||||
"lens_model": "鏡頭型號",
|
||||
"less": "收埋",
|
||||
"let_others_respond": "允許其他人答覆",
|
||||
@@ -1308,12 +1330,15 @@
|
||||
"loading": "載入緊",
|
||||
"loading_search_results_failed": "載入唔到搜尋結果",
|
||||
"local": "本機",
|
||||
"local_asset_cast_failed": "未能處理仲未上傳到伺服器嘅相片/影片",
|
||||
"local_assets": "本機項目",
|
||||
"local_id": "本地 ID",
|
||||
"local_media_summary": "本地媒體概括",
|
||||
"local_network": "本機網絡",
|
||||
"local_network_sheet_info": "使用指定嘅 Wi-Fi 網絡時,應用程式會透過呢個 URL 連接到伺服器",
|
||||
"location": "位置",
|
||||
"location_permission": "位置權限",
|
||||
"location_permission_content": "為咗使用自動切換功能,Immich 需要取得精確位置權限,用嚟讀取而家 Wi-Fi 網絡嘅名稱",
|
||||
"location_picker_choose_on_map": "喺地圖揀",
|
||||
"location_picker_latitude_error": "輸入有效嘅緯度",
|
||||
"location_picker_latitude_hint": "唔該喺呢度輸入緯度",
|
||||
@@ -1329,6 +1354,7 @@
|
||||
"logged_out_device": "登出咗",
|
||||
"login": "登入",
|
||||
"login_disabled": "停用咗登入",
|
||||
"login_form_api_exception": "API 異常。請檢查伺服器 URL 再試過。",
|
||||
"login_form_email_hint": "電郵地址",
|
||||
"login_form_endpoint_hint": "http://你嘅伺服器地址:連接埠",
|
||||
"login_form_endpoint_url": "伺服器終端 URL",
|
||||
@@ -1338,16 +1364,23 @@
|
||||
"login_form_err_trailing_whitespace": "結尾唔可以有空格",
|
||||
"login_form_failed_get_oauth_server_config": "使用 OAuth 登入嗰陣時發生錯誤,請檢查你嘅伺服器網址",
|
||||
"login_form_failed_get_oauth_server_disable": "呢個伺服器唔支援 OAuth",
|
||||
"login_form_failed_login": "登入失敗,請檢查伺服器地址、電郵同密碼",
|
||||
"login_form_handshake_exception": "同伺服器嘅握手異常。如果你用緊自簽名證書,請喺設定入面開啟對自簽名證書嘅支援。",
|
||||
"login_form_password_hint": "密碼",
|
||||
"login_form_server_empty": "唔該輸入伺服器網址",
|
||||
"login_form_server_error": "同伺服器連唔到線",
|
||||
"login_has_been_disabled": "已經停用登入功能",
|
||||
"login_password_changed_error": "密碼更新錯誤",
|
||||
"login_password_changed_success": "成功更新密碼",
|
||||
"login_with_passkey": "用通行密鑰登入",
|
||||
"logout_all_device_confirmation": "確定要登出所有裝置嘅登入嗎?",
|
||||
"logout_this_device_confirmation": "確定要登出呢部裝置嘅登入嗎?",
|
||||
"logs": "紀錄",
|
||||
"longitude": "經度",
|
||||
"look": "樣貌",
|
||||
"loop_videos": "循環播放條片",
|
||||
"loop_videos_description": "啟用喺詳情檢視器中自動循環播放影片。",
|
||||
"main_branch_warning": "你而家用緊開發版本;我哋強烈建議你用正式發佈版本!",
|
||||
"main_menu": "主選單",
|
||||
"maintenance_action_restore": "還原緊數據庫",
|
||||
"maintenance_description": "Immich 已經進入 <link>維護模式</link>。",
|
||||
@@ -1355,6 +1388,7 @@
|
||||
"maintenance_logged_in_as": "而家係以 {user} 身份登入嘅",
|
||||
"maintenance_restore_from_backup": "還原備份",
|
||||
"maintenance_restore_library": "還原你個媒體庫",
|
||||
"maintenance_restore_library_confirm": "如果確認冇錯,請繼續進行備份還原!",
|
||||
"maintenance_restore_library_description": "還原緊資料庫",
|
||||
"maintenance_restore_library_folder_has_files": "{folder} 有 {count} 個文件夾",
|
||||
"maintenance_restore_library_folder_no_files": "{folder} 缺少緊檔案!",
|
||||
@@ -1372,10 +1406,14 @@
|
||||
"maintenance_title": "暫時用唔到",
|
||||
"make": "牌子",
|
||||
"manage_geolocation": "管理位置",
|
||||
"manage_media_access_rationale": "需要呢個權限先可以正確處理將檔案移入回收站同埋由回收站還原嘅操作。",
|
||||
"manage_media_access_settings": "打開設定",
|
||||
"manage_media_access_subtitle": "允許 Immich 應用程式管理同埋移動媒體檔案。",
|
||||
"manage_media_access_title": "媒體管理存取權限",
|
||||
"manage_oauth_account": "管理 OAuth 戶口",
|
||||
"manage_people": "管理人物",
|
||||
"manage_people_access_description_v2": "授予其他用戶存取權限,等佢哋可以查看或者管理你所擁有嘅{count, plural, one {人物} other {人物}}。呢個操作唔會分享任何資產資訊。",
|
||||
"manage_person_access": "管理存取權",
|
||||
"manage_sharing_with_other_users": "管理同其他用戶嘅共享",
|
||||
"manage_sharing_with_partners": "管理親友共享設定",
|
||||
"manage_the_app_settings": "管理應用程式嘅設定",
|
||||
@@ -1383,13 +1421,16 @@
|
||||
"manage_your_api_keys": "管理你啲 API 密匙",
|
||||
"manage_your_devices": "管理你登入咗嘅裝置",
|
||||
"manage_your_oauth_connection": "管理你嘅 OAuth 連結",
|
||||
"manage_your_passkeys": "管理你嘅通行密鑰",
|
||||
"map": "地圖",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {呢個區域冇相片} one {# 張相片} other {# 張相片}}",
|
||||
"map_cannot_get_user_location": "搵唔到用戶個位置",
|
||||
"map_location_picker_page_use_location": "用呢個位置",
|
||||
"map_location_service_disabled_content": "需要啟用定位服務先至可以顯示有關你目前位置嘅項目。你想唔想而家啟用定位?",
|
||||
"map_location_service_disabled_title": "停用咗定位",
|
||||
"map_marker_for_image": "喺 {city},{country} 影嘅地圖標記",
|
||||
"map_marker_with_image": "帶有影像嘅地圖標記",
|
||||
"map_no_location_permission_content": "需要位置權限先可以顯示你而家位置嘅相片/影片。而家要允許嗎?",
|
||||
"map_no_location_permission_title": "冇位置權限",
|
||||
"map_settings": "地圖設定",
|
||||
"map_settings_dark_mode": "深色模式",
|
||||
@@ -1417,6 +1458,7 @@
|
||||
"enter_fullscreen_mode": "睇全螢幕",
|
||||
"exit_fullscreen_mode": "退出全螢幕",
|
||||
"loop": "重複播放",
|
||||
"media_error_description": "媒體錯誤導致播放中止。媒體檔案可能已經損壞,或者你嘅瀏覽器唔支援呢種格式。",
|
||||
"media_loading": "媒體載入緊",
|
||||
"mute": "靜音",
|
||||
"network_error": "網絡錯誤",
|
||||
@@ -1432,6 +1474,7 @@
|
||||
"time_value_of_total_time": "{currentTime} / {totalTime}",
|
||||
"time_value_remaining": "剩返 {time}",
|
||||
"unmute": "開返聲",
|
||||
"unsupported_error_description": "發生咗唔支援嘅錯誤。伺服器或者網絡出咗故障,又或者你嘅瀏覽器唔支援呢種格式。",
|
||||
"video_not_loaded_unknown_time": "影片未加載,未知時間。",
|
||||
"video_player": "影片播放器",
|
||||
"volume": "音量"
|
||||
@@ -1452,9 +1495,12 @@
|
||||
"menu": "選單",
|
||||
"merge": "合併",
|
||||
"merge_people": "合併人物",
|
||||
"merge_people_limit": "每次最多只可以合併 5 個样貌",
|
||||
"merge_people_prompt": "係咪合併呢啲人選?呢個操作唔可以撤銷。",
|
||||
"merge_people_successfully": "成功合併人物",
|
||||
"merged_people_count": "合併咗 {count} 個人",
|
||||
"minFaces": "最少人面數量",
|
||||
"minFaces_description": "一個人要顯示出嚟,最少需要識別到幾多張人臉",
|
||||
"minimize": "縮細",
|
||||
"minute": "分鐘",
|
||||
"minutes": "分鐘",
|
||||
@@ -1471,7 +1517,9 @@
|
||||
"move_to": "搬去",
|
||||
"move_to_device_trash": "搬到裝置個垃圾桶",
|
||||
"move_to_lock_folder_action_prompt": "加咗 {count} 個項目入去鎖咗嘅資料夾",
|
||||
"move_to_lock_folder_partial_prompt": "已經將 {count} 個項目加入鎖定資料夾,部分本地副本已保留",
|
||||
"move_to_locked_folder": "移到上咗鎖嘅資料夾",
|
||||
"move_to_locked_folder_confirmation": "呢啲相片同影片會從所有相簿移除,只可以喺鎖定資料夾入面睇",
|
||||
"moved_to_trash": "掉咗落垃圾桶",
|
||||
"mute_memories": "回憶靜音",
|
||||
"my_albums": "我嘅相簿",
|
||||
@@ -1479,6 +1527,7 @@
|
||||
"my_immich_title": "My Immich 連結",
|
||||
"name": "名",
|
||||
"name_or_nickname": "名",
|
||||
"name_plus_more_people": "{name} 同 {count, plural, one {# 人} other {# 人}}",
|
||||
"name_required": "名喺必填嘅",
|
||||
"navigate": "導航",
|
||||
"navigate_to_time": "跳到時間",
|
||||
@@ -1492,9 +1541,11 @@
|
||||
"new_album": "新相簿",
|
||||
"new_api_key": "新嘅 API 密匙",
|
||||
"new_feature": "新功能",
|
||||
"new_passkey": "新增通行密鑰",
|
||||
"new_password": "新密碼",
|
||||
"new_person": "新嘅人物",
|
||||
"new_pin_code": "新嘅 PIN 碼",
|
||||
"new_pin_code_subtitle": "呢個係你第一次入呢個鎖定資料夾。請建立一個 PIN 碼,用嚟安全咁存取呢個頁面",
|
||||
"new_update": "新更新",
|
||||
"new_user_created": "建立咗新用戶",
|
||||
"new_version_available": "有新版本啦",
|
||||
@@ -1504,6 +1555,9 @@
|
||||
"no": "否",
|
||||
"no_albums_found": "搵唔到相簿",
|
||||
"no_albums_message": "建立相簿嚟整理相同埋影片",
|
||||
"no_albums_with_name_yet": "冇同名嘅相簿。",
|
||||
"no_albums_yet": "你仲未建立任何相簿。",
|
||||
"no_archived_assets_message": "歸檔相片同影片,將佢哋從「相片」檢視度隱藏",
|
||||
"no_assets_message": "撳呢度上傳你第一張相",
|
||||
"no_assets_to_show": "冇嘢好睇",
|
||||
"no_cast_devices_found": "搵唔到投影裝置",
|
||||
@@ -1513,7 +1567,9 @@
|
||||
"no_duplicates_found": "冇重複嘅項目。",
|
||||
"no_exif_info_available": "冇用到嘅 Exif 資料",
|
||||
"no_explore_results_message": "上傳更多嘅相嚟探索你嘅收藏。",
|
||||
"no_favorites_message": "加入收藏,方便你快速搵到最精彩嘅相片同影片",
|
||||
"no_filter": "冇過濾",
|
||||
"no_libraries_message": "建立外部圖庫,用嚟瀏覽你嘅相片同影片",
|
||||
"no_local_assets_found": "搵唔到有呢個校驗碼嘅本地項目",
|
||||
"no_locked_photos_message": "上咗鎖嘅文件夾入面啲相同埋影片會比隱藏,亦都唔會喺你搜尋或者瀏覽嗰陣時出現。",
|
||||
"no_name": "冇名",
|
||||
@@ -1523,6 +1579,7 @@
|
||||
"no_remote_assets_found": "搵唔到有呢個校驗碼嘅雲端項目",
|
||||
"no_results": "冇結果",
|
||||
"no_results_description": "試吓同義詞或者更加通用嘅關鍵詞",
|
||||
"no_shared_albums_message": "建立相簿,同社交圈入面嘅好友分享相片同影片",
|
||||
"no_steps": "無加步驟喎",
|
||||
"none": "冇",
|
||||
"not_allowed": "唔得",
|
||||
@@ -1533,6 +1590,7 @@
|
||||
"notes": "提示",
|
||||
"nothing_here_yet": "呢度未有嘢",
|
||||
"notification_backup_reliability": "啟動通知嚟提升後台備份嘅可靠性",
|
||||
"notification_enabled_list_tile_content": "Immich 使用通知功能進行後台備份。你可以喺裝置設定入面管理呢啲通知。",
|
||||
"notification_enabled_list_tile_open_button": "打開設定",
|
||||
"notification_enabled_list_tile_title": "啟用咗通知",
|
||||
"notification_permission_dialog_content": "如果你要開啓通知嘅話,請前往設定揀番允許通知。",
|
||||
@@ -1544,6 +1602,7 @@
|
||||
"notifications_setting_description": "管理通知",
|
||||
"oauth": "OAuth",
|
||||
"obtainium_configurator": "Obtainium 設定工具",
|
||||
"obtainium_configurator_instructions": "用 Obtainium 直接喺 Immich 嘅 GitHub 发布页安装同更新 Android 应用。请建立一个 API 密钥并揀一个版本,用嚟生成你嘅 Obtainium 配置链接",
|
||||
"ocr": "OCR",
|
||||
"ocr_body": "Immich 可以分辨你啲相入面啲文字,所以你可以用相入面啲字嘅內容嚟搵相。",
|
||||
"ocr_title": "喺你啲相入面搵文字",
|
||||
@@ -1554,6 +1613,10 @@
|
||||
"oldest_first": "由舊至新",
|
||||
"on_this_device": "喺呢部裝置度",
|
||||
"onboarding": "新手指南",
|
||||
"onboarding_locale_description": "揀你偏好嘅語言。你可以喺設定入面隨時更改呢個選項。",
|
||||
"onboarding_privacy_description": "以下(可選)功能依賴外部服務,你可以隨時喺設定入面停用佢哋。",
|
||||
"onboarding_server_welcome_description": "等我哋透過一啲常用設定嚟配置你嘅實例。",
|
||||
"onboarding_theme_description": "為你嘅實例揀一個顏色主題。你稍後可以喺設定入面更改呢個選項。",
|
||||
"onboarding_user_welcome_description": "我哋而家開始喇!",
|
||||
"onboarding_welcome_user": "歡迎,{user}",
|
||||
"online": "已上線",
|
||||
@@ -1561,6 +1624,7 @@
|
||||
"open": "開",
|
||||
"open_calendar": "打開日曆",
|
||||
"open_in_browser": "喺瀏覽器度開啟",
|
||||
"open_in_immich_body": "喺 Android 將 Immich 設做圖庫應用程式,就可以直接從其他應用程式打開相片。",
|
||||
"open_in_immich_title": "喺 Immich 入面開張相",
|
||||
"open_in_map_view": "用地圖開",
|
||||
"open_in_openstreetmap": "用 OpenStreetMap 開",
|
||||
@@ -1580,13 +1644,18 @@
|
||||
"page": "頁",
|
||||
"partner": "親友",
|
||||
"partner_can_access": "{partner} 可以存取",
|
||||
"partner_can_access_assets": "所有相片同影片,除咗已歸檔同已刪除嘅之外",
|
||||
"partner_can_access_location": "張相喺邊度影嘅",
|
||||
"partner_list_user_photos": "{user} 啲相",
|
||||
"partner_page_empty_message": "你啲相未同任何親友分享。",
|
||||
"partner_page_no_more_users": "冇可以加嘅使用者",
|
||||
"partner_page_select_partner": "選擇親友",
|
||||
"partner_page_stop_sharing_content": "{partner}將唔可以再存取你嘅相片。",
|
||||
"partner_sharing": "親友共享",
|
||||
"partners": "親友",
|
||||
"partners_description": "同其他用戶分享你啲相片同埋影片",
|
||||
"passkeys": "{count, plural, one {通行密鑰} other {通行密鑰}}",
|
||||
"passkeys_not_supported": "而家嘅瀏覽器唔支援使用通行密鑰",
|
||||
"password": "密碼",
|
||||
"password_does_not_match": "密碼唔啱",
|
||||
"password_required": "要密碼",
|
||||
@@ -1607,21 +1676,31 @@
|
||||
"people_count": "{count} 個人",
|
||||
"people_edits_count": "編輯咗 {count} 個人",
|
||||
"people_feature_description": "以人物分類瀏覽相片同埋影片",
|
||||
"people_search_description": "揀一個或者多個人物,搵包含佢哋嘅相片。",
|
||||
"permanent_deletion_warning": "永久刪除警告",
|
||||
"permanent_deletion_warning_setting_description": "喺永久刪除項目嘅時候顯示警告",
|
||||
"permanently_delete": "永久刪除",
|
||||
"permanently_delete_assets_count": "永久刪除 {count} 個項目",
|
||||
"permanently_delete_assets_prompt": "確定要永久刪除 {count, plural, one {呢個項目嗎?} other {呢 <b>#</b> 個項目嗎?}}咁樣亦會將{count, plural, one {佢} other {佢哋}}從所屬相簿中移除。",
|
||||
"permanently_deleted_asset": "永久刪除嘅項目",
|
||||
"permanently_deleted_assets_count": "已經永久刪除{count, plural, one {#個項目} other {#個項目}}",
|
||||
"permission": "權限",
|
||||
"permission_empty": "權限唔可以係空白",
|
||||
"person": "人物",
|
||||
"person_age_months": "{months, number} 個月大",
|
||||
"person_age_year_months": "1 歲{months, plural, one {# 個月} other {# 個月}}大",
|
||||
"person_age_years": "{years, number} 歲",
|
||||
"person_birthdate": "喺 {date} 出世",
|
||||
"person_edit_only_change_for_me": "淨係幫我更改",
|
||||
"person_edit_only_change_for_me_description": "淨係喺你嘅帳戶套用變更",
|
||||
"person_hidden": "{name}{hidden, select, true {(隱藏)} other {}}",
|
||||
"person_recognized": "識別到人物",
|
||||
"person_share_no_users": "你聚類分組入面所有用戶已經有呢個人物嘅存取權限。",
|
||||
"person_update_strategy": "喺呢度用返更改咗嘅設定",
|
||||
"person_update_strategy_description": "更改姓名或者出生日期嗰陣,要更新邊啲人物",
|
||||
"person_update_strategy_everyone": "所有擁有訪問權限嘅人",
|
||||
"person_update_strategy_self": "淨係我",
|
||||
"photo_shared_all_users": "睇嚟你已經同所有用戶分享咗你嘅相片,或者你根本冇任何可以分享嘅用戶。",
|
||||
"photos": "相",
|
||||
"photos_and_videos": "相同埋片",
|
||||
"photos_from_previous_years": "之前幾年啲相",
|
||||
@@ -1634,14 +1713,17 @@
|
||||
"pin_verification": "PIN 碼驗證",
|
||||
"place": "地點",
|
||||
"places": "地點",
|
||||
"places_count": "{count, plural, one {{count, number}個地點} other {{count, number}個地點}}",
|
||||
"play": "播放",
|
||||
"play_memories": "播放回憶",
|
||||
"play_motion_photo": "播放動態相片",
|
||||
"play_or_pause_video": "播放或者停咗條片佢",
|
||||
"play_original_video": "播放原本嘅影片",
|
||||
"play_original_video_setting_description": "優先播放原始影片,而唔係轉碼影片。如果原始影片唔兼容,可能無法正常播放。",
|
||||
"play_transcoded_video": "播放轉碼影片",
|
||||
"please_auth_to_access": "要身份認證先睇到喎",
|
||||
"plugin_method_filter_type": "篩選",
|
||||
"plugin_method_filter_type_description": "呢個方法可以篩選事件,並有條件咁阻止後續步驟運行",
|
||||
"port": "連接埠",
|
||||
"preferences_settings_subtitle": "管理應用程式嘅偏好",
|
||||
"preferences_settings_title": "偏好",
|
||||
@@ -1660,6 +1742,7 @@
|
||||
"profile": "用戶詳情",
|
||||
"profile_drawer_app_logs": "紀錄",
|
||||
"profile_drawer_github": "GitHub",
|
||||
"profile_drawer_readonly_mode": "只讀模式已啟用。長按用戶頭像圖示退出。",
|
||||
"profile_image_of_user": "{user} 個頭像",
|
||||
"profile_picture_set": "定咗個人頭像啦。",
|
||||
"projection_type": "投影類型",
|
||||
@@ -1676,6 +1759,7 @@
|
||||
"purchase_button_reminder": "30 日後先再提下我",
|
||||
"purchase_button_remove_key": "移除密匙",
|
||||
"purchase_button_select": "揀",
|
||||
"purchase_failed_activation": "啟用失敗!請檢查你嘅電郵,攞返正確嘅產品密鑰!",
|
||||
"purchase_individual_description_1": "為咗個人",
|
||||
"purchase_individual_description_2": "支持者狀態",
|
||||
"purchase_individual_title": "個人",
|
||||
@@ -1683,11 +1767,14 @@
|
||||
"purchase_lifetime_description": "終身授權",
|
||||
"purchase_option_title": "購買選項",
|
||||
"purchase_panel_info_1": "Immich 嘅持續開發需要好多嘅時間同埋精力,背後亦都有全職工程師精益求精嘅改善同發展。我哋嘅使命喺推動開源軟件同良心企業實踐,為開發者提供可持續嘅收入,建立一個尊重私隱嘅生態環境,提供可以真正代替剝削性雲端服務嘅選擇。",
|
||||
"purchase_panel_info_2": "由於我哋承諾唔會加入收費功能,呢次購買唔會為你提供 Immich 任何額外功能。我哋靠好似你咁嘅用戶嚟支持 Immich 持續開發。",
|
||||
"purchase_panel_title": "支持呢個大工程",
|
||||
"purchase_per_server": "每部伺服器",
|
||||
"purchase_per_user": "每個用戶",
|
||||
"purchase_remove_product_key": "移除產品密匙",
|
||||
"purchase_remove_product_key_prompt": "你確定要刪除產品密鑰嗎?",
|
||||
"purchase_remove_server_product_key": "移除伺服器產品密匙",
|
||||
"purchase_remove_server_product_key_prompt": "你確定要刪除伺服器產品密鑰嗎?",
|
||||
"purchase_server_description_1": "用於成個伺服器",
|
||||
"purchase_server_description_2": "支持者狀態",
|
||||
"purchase_server_title": "伺服器",
|
||||
@@ -1695,8 +1782,10 @@
|
||||
"query_asset_id": "查詢項目 ID",
|
||||
"queue_status": "處理緊 {count}/{total}",
|
||||
"rate_asset": "項目評分",
|
||||
"rate_asset_description": "用數字鍵 1 到 5 快速為資源評分,撳 0 清除評分",
|
||||
"rating": "星級",
|
||||
"rating_clear": "清除評分",
|
||||
"rating_count": "{count, plural, =0 {未評級} one {# 星} other {# 星}}",
|
||||
"rating_description": "喺資料面板入面顯示 EXIF 評分",
|
||||
"reaction_options": "反映選項",
|
||||
"read_changelog": "睇更新紀錄",
|
||||
@@ -1704,10 +1793,14 @@
|
||||
"readonly_mode_enabled": "開啓咗只讀模式",
|
||||
"ready_for_upload": "準備好上傳",
|
||||
"reassign": "重新編配",
|
||||
"reassigned_assets_to_existing_person": "重新指派{count, plural, one {#個項目} other {#個項目}}去{name, select, null {已存在嘅人物} other {{name}}}",
|
||||
"reassigned_assets_to_new_person": "重新指派{count, plural, one {#個項目} other {#個項目}}去新嘅人物",
|
||||
"reassing_hint": "將揀咗嘅項目指派到現有嘅人物",
|
||||
"recent": "最近",
|
||||
"recent_searches": "最近搵緊嘅項目",
|
||||
"recently_added": "近期加入嘅",
|
||||
"recently_added_body": "喺專屬頁面度,直接睇你近期加嘅所有內容。",
|
||||
"recently_added_description": "瀏覽按上傳到 Immich 嘅時間排序嘅資源",
|
||||
"recently_added_page_title": "近期加入嘅",
|
||||
"recently_added_title": "最近新加嘅",
|
||||
"recently_taken": "近期影嘅",
|
||||
@@ -1735,6 +1828,7 @@
|
||||
"remove_from_favorites": "從收藏入面移除",
|
||||
"remove_from_lock_folder_action_prompt": "喺鎖咗個資料夾入面移除咗 {count} 個項目",
|
||||
"remove_from_locked_folder": "喺上左鎖嘅資料夾入面移走",
|
||||
"remove_from_locked_folder_confirmation": "你確定要將呢啲相片同影片移出鎖定資料夾嗎?移出之後佢哋會喺你嘅圖庫度顯示。",
|
||||
"remove_from_shared_link": "喺共享連結入面移除",
|
||||
"remove_memory": "移除記憶",
|
||||
"remove_photo_from_memory": "喺呢個回憶入面移除呢張相",
|
||||
@@ -1746,6 +1840,8 @@
|
||||
"removed_from_favorites_count": "已移除收藏嘅 {count} 個項目",
|
||||
"removed_from_stack": "喺堆疊入面移除咗項目",
|
||||
"removed_memory": "移除咗記憶",
|
||||
"removed_passkey": "已經移除通行密鑰:{name}",
|
||||
"removed_tagged_assets": "喺 {count, plural, one {#個項目} other {#個項目}} 入面刪除標籤",
|
||||
"rename": "重新命名",
|
||||
"repository": "儲存庫",
|
||||
"request_received_description": "你已經被邀請加入另一個群組",
|
||||
@@ -1755,9 +1851,14 @@
|
||||
"reset_password": "重設密碼",
|
||||
"reset_people_visibility": "重設人物嘅可見性",
|
||||
"reset_pin_code": "重設 PIN 碼",
|
||||
"reset_pin_code_description": "如果你唔記得咗你嘅 PIN 碼,你可以聯絡伺服器管理員幫你重置",
|
||||
"reset_pin_code_with_password": "你隨時可以用你嘅密碼嚟重置你嘅 PIN 碼",
|
||||
"reset_sqlite": "重設 SQLite 資料庫",
|
||||
"reset_sqlite_clear_app_data": "清除資料",
|
||||
"reset_sqlite_confirmation": "你係唔係確定要重設所有資料?你所有設定會被重置,而且你會被登出戶口。",
|
||||
"reset_sqlite_confirmation_note": "注意:清除資料之後,你需要重新啟動程式。",
|
||||
"reset_sqlite_done": "資料已清除。請重新啟動 Immich 並重新登入。",
|
||||
"reset_sqlite_error_hint": "出錯咗,用下面嘅按鈕重置本地資料庫",
|
||||
"reset_sqlite_success": "成功重設咗 SQLite 資料庫",
|
||||
"reset_to_default": "重設為預設值",
|
||||
"resolution": "解像度",
|
||||
@@ -1769,12 +1870,14 @@
|
||||
"restored_asset": "還原咗檔案",
|
||||
"result": "結果",
|
||||
"resume": "繼續",
|
||||
"resume_paused_jobs": "繼續 {count, plural, one {# 已暫停嘅任務} other {# 已暫停嘅任務}}",
|
||||
"retry": "試多次",
|
||||
"review_duplicates": "檢查重複項目",
|
||||
"review_large_files": "檢查大型檔案",
|
||||
"role": "角色",
|
||||
"role_editor": "編輯",
|
||||
"role_viewer": "齋睇",
|
||||
"rotate_api_key_prompt": "確定要重置呢個 API 密鑰嗎?現有嘅密鑰會即刻失效。",
|
||||
"rotate_key": "輪流更換密匙",
|
||||
"running": "運行緊",
|
||||
"save": "儲存",
|
||||
@@ -1784,6 +1887,7 @@
|
||||
"saved_settings": "保存曬設定",
|
||||
"say_something": "講下嘢",
|
||||
"scaffold_body_error_occurred": "發生錯誤",
|
||||
"scaffold_body_error_unrecoverable": "發生咗無法恢復嘅錯誤。請喺 Discord 或 GitHub 上面分享錯誤信息同堆棧跟蹤,等我哋可以幫到你。如有需要,你可以嘗試清除應用數據(如下操作)。",
|
||||
"scan": "掃描",
|
||||
"scan_all_libraries": "掃描所有相簿",
|
||||
"scan_library": "掃描",
|
||||
@@ -1794,11 +1898,13 @@
|
||||
"search": "搜尋",
|
||||
"search_albums": "搵相簿",
|
||||
"search_by_context": "情境搜尋",
|
||||
"search_by_context_example": "描述你想搵嘅相片,例如:「喺彈床度跳緊嘅小朋友」",
|
||||
"search_by_description": "描述搜尋",
|
||||
"search_by_description_example": "喺沙巴行山嗰日",
|
||||
"search_by_filename": "搜尋檔案名稱或者副檔名",
|
||||
"search_by_filename_example": "好似 IMG_1234.JPG 或者 PNG 咁樣囉",
|
||||
"search_by_full_path": "根據完整路徑𤷇者資料夾搜尋",
|
||||
"search_by_full_path_example": "/John/Projects/3D_Printing/2026-07-01 - 你可以搜尋 Projects、3D、Printing、2026 等關鍵詞。",
|
||||
"search_by_ocr": "文字識別搜尋",
|
||||
"search_by_ocr_example": "咖啡",
|
||||
"search_camera_lens_model": "搵鏡頭...",
|
||||
@@ -1810,6 +1916,7 @@
|
||||
"search_filter_camera_title": "揀番邊類相機",
|
||||
"search_filter_date": "日期",
|
||||
"search_filter_date_custom": "自定",
|
||||
"search_filter_date_description": "透過預設範圍或者自訂日期區間,按照片拍攝時間嚟篩選。",
|
||||
"search_filter_date_interval": "從 {start} 到 {end}",
|
||||
"search_filter_date_last_30_days": "近30日",
|
||||
"search_filter_date_last_year": "上年",
|
||||
@@ -1819,6 +1926,7 @@
|
||||
"search_filter_display_options": "顯示選項",
|
||||
"search_filter_filename": "根據檔案名稱搜尋",
|
||||
"search_filter_location": "位置",
|
||||
"search_filter_location_description": "搜尋喺特定城市、國家或者地點影嘅相片。",
|
||||
"search_filter_location_title": "選擇位置",
|
||||
"search_filter_media_type": "媒體類型",
|
||||
"search_filter_media_type_title": "揀媒體類型",
|
||||
@@ -1831,6 +1939,7 @@
|
||||
"search_no_more_result": "無更多結果",
|
||||
"search_no_people": "搵唔到人",
|
||||
"search_no_people_named": "冇 {name} 呢個人",
|
||||
"search_no_result": "未搵到結果,請試下唔同嘅搜尋詞或者搜尋組合",
|
||||
"search_options": "搜尋選項",
|
||||
"search_page_search_photos_videos": "搵吓你啲相同埋片",
|
||||
"search_page_view_all_button": "睇曬",
|
||||
@@ -1842,6 +1951,7 @@
|
||||
"search_tags": "搵標籤...",
|
||||
"search_timezone": "搵時區...",
|
||||
"search_type": "搵類型",
|
||||
"search_type_description": "揀 Immich 嘅搜尋方式:按視覺內容、檔案詳情或者圖片內嵌文字嚟搜尋。",
|
||||
"search_your_photos": "搵你嘅相",
|
||||
"searching_locales": "搵地區...",
|
||||
"second": "秒",
|
||||
@@ -1889,12 +1999,12 @@
|
||||
"set_profile_picture": "揀個人頭像",
|
||||
"set_slideshow_to_fullscreen": "全螢幕投放幻燈片",
|
||||
"set_stack_primary_asset": "設定為堆疊個主要項目",
|
||||
"setting_image_navigation_enable_subtitle": "啟用之後,輕觸螢幕左右邊緣區域就可以切換上一張或者下一張。",
|
||||
"setting_image_navigation_enable_title": "點擊切換",
|
||||
"setting_image_navigation_title": "圖片引導",
|
||||
"setting_image_viewer_help": "詳細資訊檢視器會先載入細縮圖,然後載入中等尺寸嘅預覽圖,最後先載入原始圖像。",
|
||||
"setting_image_viewer_original_subtitle": "啟用以載入原本全解像度嘅相片。停用嘅話可以減少數據流量(喺網絡傳輸同埋裝置快取嘅網絡使用量)。",
|
||||
"setting_image_viewer_original_title": "載入原圖",
|
||||
"setting_image_viewer_preview_subtitle": "啟用後會載入中等解像度嘅相。停用嘅話就會直接載入原圖或者淨係載入縮圖。",
|
||||
"setting_image_viewer_preview_title": "載入預覽",
|
||||
"setting_languages_apply": "套用",
|
||||
"setting_languages_subtitle": "改個應用程式個語言",
|
||||
"setting_notifications_notify_minutes": "{count} 分鐘",
|
||||
@@ -1903,6 +2013,7 @@
|
||||
"setting_video_viewer_auto_play_subtitle": "開啓影片時自動播放",
|
||||
"setting_video_viewer_auto_play_title": "自動播放影片",
|
||||
"setting_video_viewer_looping_title": "重複播放",
|
||||
"setting_video_viewer_original_video_subtitle": "當從伺服器串流影片時,即使有轉碼,都會播放原始影片。可能會導致緩衝。本地影片則以原始畫質播放,同呢個設定無關。",
|
||||
"setting_video_viewer_original_video_title": "一律播放原片",
|
||||
"settings": "設定",
|
||||
"settings_saved": "保存曬設定",
|
||||
@@ -1911,9 +2022,12 @@
|
||||
"share_back": "分享翻去",
|
||||
"share_dialog_preparing": "準備緊...",
|
||||
"share_everyone": "分享比所有人",
|
||||
"share_everyone_description": "比 {user} 訪問你所有人物嘅權限。",
|
||||
"share_link": "分享連結",
|
||||
"share_logs": "分享日誌",
|
||||
"share_original": "使用原圖(大)",
|
||||
"share_preview": "使用縮圖(細)",
|
||||
"share_preview": "使用預覽(細)",
|
||||
"share_quality_body": "喺分享之前,長按分享按鈕嚟揀圖像質素。",
|
||||
"share_quality_title": "揀番你分享個畫質",
|
||||
"share_with": "分享權限比",
|
||||
"shared": "共享",
|
||||
@@ -1923,6 +2037,7 @@
|
||||
"shared_album_section_people_action_error": "退出/刪除唔到相簿",
|
||||
"shared_album_section_people_title": "人物",
|
||||
"shared_by": "共享自",
|
||||
"shared_by_me": "我分享嘅",
|
||||
"shared_by_user": "由 {user} 共享",
|
||||
"shared_by_you": "你共享嘅",
|
||||
"shared_from_partner": "嚟自 {partner} 嘅相",
|
||||
@@ -1932,6 +2047,7 @@
|
||||
"shared_link_create_error": "喺建立分享連結嗰陣時發生錯誤",
|
||||
"shared_link_custom_url_description": "使用自定 URL 嚟設定呢個共享連結",
|
||||
"shared_link_custom_url_title": "自定 URL",
|
||||
"shared_link_custom_url_warning": "警告:自訂 URL 名稱入面嘅正斜杠 / 可能會導致一啲意外行為。",
|
||||
"shared_link_edit_description_hint": "輸入共享描述",
|
||||
"shared_link_edit_expire_after_option_day": "1日",
|
||||
"shared_link_edit_expire_after_option_days": "{count}日",
|
||||
@@ -1960,7 +2076,6 @@
|
||||
"shared_link_password_description": "提供共享連結嘅密碼",
|
||||
"shared_links": "分享連結",
|
||||
"shared_links_description": "用連結分享相片同埋影片",
|
||||
"shared_photos_and_videos_count": "已分享 {assetCount, number} 個相片同埋影片",
|
||||
"shared_with": "同我分享咗嘅",
|
||||
"shared_with_count": "分享咗 {count}",
|
||||
"shared_with_me": "同我分享",
|
||||
@@ -1977,9 +2092,11 @@
|
||||
"show_gallery": "顯示媒體庫",
|
||||
"show_hidden_people": "顯示隱藏嘅人物",
|
||||
"show_in_timeline": "喺時間線度顯示",
|
||||
"show_in_timeline_setting_description": "喺時間軸入面顯示呢個用戶嘅相片同影片",
|
||||
"show_keyboard_shortcuts": "顯示快捷鍵",
|
||||
"show_less": "收埋",
|
||||
"show_metadata": "顯示元數據",
|
||||
"show_more_fields": "{count, plural, one {顯示 # 個更多欄位} other {顯示 # 個更多欄位}}",
|
||||
"show_or_hide_info": "顯示或者隱藏資料",
|
||||
"show_password": "顯示密碼",
|
||||
"show_person_options": "顯示人物選項",
|
||||
@@ -2005,6 +2122,7 @@
|
||||
"skip_to_folders": "跳到資料夾",
|
||||
"skip_to_tags": "跳到標籤",
|
||||
"slideshow": "幻燈片",
|
||||
"slideshow_body": "坐低,用全螢幕幻燈片形式欣賞你嘅相片。",
|
||||
"slideshow_metadata_overlay_mode": "覆蓋內容",
|
||||
"slideshow_metadata_overlay_mode_description_only": "淨係描述",
|
||||
"slideshow_metadata_overlay_mode_full": "完整",
|
||||
@@ -2013,6 +2131,7 @@
|
||||
"slideshow_settings": "幻燈片設定",
|
||||
"slideshow_title": "幻燈片",
|
||||
"smart_album": "智能相簿",
|
||||
"some_assets_already_have_a_location_warning": "部分已揀選嘅項目已經有位置資訊",
|
||||
"sort_albums_by": "相簿排序...",
|
||||
"sort_created": "建立日期",
|
||||
"sort_items": "項目數量",
|
||||
@@ -2041,6 +2160,8 @@
|
||||
"stop_casting": "停止投放",
|
||||
"stop_motion_photo": "將幅動態相定格",
|
||||
"stop_photo_sharing": "係唔係要停止分享你啲相?",
|
||||
"stop_photo_sharing_description": "{partner}將唔可以存取你嘅相片。",
|
||||
"stop_sharing_person_with_user": "停止同嗰個用戶分享呢個人物",
|
||||
"stop_sharing_photos_with_user": "停止同呢個用戶分享相片",
|
||||
"storage": "儲存空間",
|
||||
"storage_label": "儲存標籤",
|
||||
@@ -2052,6 +2173,7 @@
|
||||
"sunrise_on_the_beach": "海灘日出",
|
||||
"support": "支持",
|
||||
"support_and_feedback": "支援同意見",
|
||||
"support_third_party_description": "你嘅 Immich 安裝程式由第三方打包。目前問題可能係由呢個軟件包引起,所以請優先透過下方連結向對應作者提交 Issue。",
|
||||
"supporter": "支持者",
|
||||
"swap_merge_direction": "交換合併方向",
|
||||
"sync": "同步",
|
||||
@@ -2060,6 +2182,7 @@
|
||||
"sync_remote": "同步遠端",
|
||||
"sync_status": "同步狀態",
|
||||
"sync_status_subtitle": "檢視同埋管理同步系統",
|
||||
"sync_upload_album_setting_subtitle": "建立相片同影片,並上傳到 Immich 上面揀好嘅相簿",
|
||||
"system_theme": "系統主題",
|
||||
"system_theme_command_description": "用返 {value} 呢個系統主題",
|
||||
"tag": "標籤",
|
||||
@@ -2070,6 +2193,7 @@
|
||||
"tag_full_path": "完整路徑:{tag}",
|
||||
"tag_not_found_question": "搵唔到啱嘅標籤? <link>整返個新嘅標籤。</link>",
|
||||
"tag_people": "標籤人物",
|
||||
"tag_plus_more_tags": "{tag} + {count, plural, one {# 個標籤} other {# 個標籤}}",
|
||||
"tag_updated": "更新咗 {tag} 標籤",
|
||||
"tagged_assets": "標籤咗 {count} 個項目",
|
||||
"tags": "標籤",
|
||||
@@ -2078,6 +2202,9 @@
|
||||
"text_recognition": "文字識別",
|
||||
"theme": "主題",
|
||||
"theme_selection": "主題選項",
|
||||
"theme_selection_description": "跟隨瀏覽器自動設定主題顏色",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "拖動滾動條時連續滾動,而唔係自動吸附到月份",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "順滑時間軸拖動",
|
||||
"theme_setting_asset_list_storage_indicator_title": "喺項目嘅標題顯示用左嘅儲存空間",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "每行展示 {count} 項",
|
||||
"theme_setting_colorful_interface_subtitle": "用主色喺背景度。",
|
||||
@@ -2114,9 +2241,12 @@
|
||||
"trash_no_results_message": "呢度會顯示垃圾桶入面嘅相同埋影片。",
|
||||
"trash_page_delete_all": "刪除曬",
|
||||
"trash_page_info": "垃圾桶入面嘅項目將會喺 {days} 日後永久刪除",
|
||||
"trashed_items_will_be_permanently_deleted_after": "回收站入面嘅項目會喺{days, plural, one {#日} other {#日}}後被永久刪除。",
|
||||
"trigger": "觸發條件",
|
||||
"trigger_asset_metadata_extraction": "提取項目元數據",
|
||||
"trigger_asset_metadata_extraction_description": "當資源嘅 EXIF 元數據被提取時觸發",
|
||||
"trigger_asset_tagged": "標記咗項目",
|
||||
"trigger_asset_tagged_description": "當資源被加標籤時觸發",
|
||||
"trigger_asset_uploaded": "上傳項目",
|
||||
"trigger_asset_uploaded_description": "喺上傳新項目嗰陣時觸發",
|
||||
"trigger_person_recognized": "辨識到人物",
|
||||
@@ -2153,6 +2283,7 @@
|
||||
"unstack_action_prompt": "{count} 個取消堆疊",
|
||||
"unstacked_assets_count": "已解除 {count} 個項目嘅堆疊",
|
||||
"unsupported_field_type": "唔支援嘅字段類型",
|
||||
"unsupported_file_type": "唔支援上傳檔案 {file},目前唔支援 {type} 類型嘅檔案。",
|
||||
"untagged": "未標籤",
|
||||
"up_next": "下個",
|
||||
"update_location_action_prompt": "更新 {count} 個揀選咗個項目嘅位置:",
|
||||
@@ -2160,12 +2291,18 @@
|
||||
"updated_password": "更新咗密碼",
|
||||
"upload": "上傳",
|
||||
"upload_concurrency": "同時間嘅上傳數",
|
||||
"upload_day_count": "{date}:{count, plural, one {# 個上傳} other {# 個上傳}}",
|
||||
"upload_details": "上傳詳細資訊",
|
||||
"upload_error_with_count": "{count, plural, one {# 個項目} other {# 個項目}}上傳錯誤",
|
||||
"upload_errors": "上傳完成,出現咗{count, plural, one {#個錯誤} other {#個錯誤}}。",
|
||||
"upload_finished": "上傳咗",
|
||||
"upload_progress": "剩返 {remaining, number} - 處理咗 {processed, number}/{total, number}",
|
||||
"upload_skipped_duplicates": "已跳過{count, plural, one {#個重複項} other {#個重複項}}",
|
||||
"upload_status_duplicates": "重複項目",
|
||||
"upload_status_errors": "錯誤",
|
||||
"upload_status_uploaded": "上傳咗",
|
||||
"upload_success": "上傳成功,刷新頁面睇下新上傳嘅項目。",
|
||||
"upload_to_album_body": "對於唔用上手動上傳功能嘅用戶,而家你可以選擇喺上傳本地相片嘅同時直接將佢哋加入相簿,唔使再先上傳後添加。",
|
||||
"upload_to_album_title": "直接上傳到相簿入面",
|
||||
"upload_to_immich": "上傳到 Immich {count}",
|
||||
"uploading": "上傳緊",
|
||||
@@ -2176,12 +2313,14 @@
|
||||
"usage": "用量",
|
||||
"use_biometric": "使用生物識別",
|
||||
"use_browser_locale": "使用瀏覽器語言",
|
||||
"use_browser_locale_description": "根據你嘅瀏覽器語言同地區設定嚟格式化日期、時間同數字",
|
||||
"use_current_connection": "使用而家嘅連線",
|
||||
"use_custom_date_range": "改用指定日期嘅範圍",
|
||||
"use_template": "使用模板",
|
||||
"user": "用戶",
|
||||
"user_has_been_deleted": "呢個用戶刪除咗啦。",
|
||||
"user_id": "用戶 ID",
|
||||
"user_liked": "{user}讚好咗{type, select, photo {呢張相} video {呢條片} asset {呢個項目} other {佢}}",
|
||||
"user_pin_code_settings": "PIN",
|
||||
"user_pin_code_settings_description": "管理你個 PIN 碼",
|
||||
"user_privacy": "用戶私隱",
|
||||
@@ -2192,6 +2331,7 @@
|
||||
"user_usage_stats_description": "睇下帳戶個用量",
|
||||
"username": "用戶名稱",
|
||||
"users": "用戶",
|
||||
"users_added_to_album_count": "已經將 {count, plural, one {# 個用戶} other {# 個用戶}} 加入相簿",
|
||||
"utilities": "工具",
|
||||
"validate": "驗證",
|
||||
"validate_endpoint_error": "請輸入有效嘅 URL",
|
||||
@@ -2203,6 +2343,7 @@
|
||||
"version_history_item": "喺 {date} 裝咗 {version} 嘅版本",
|
||||
"video": "影片",
|
||||
"video_hover_setting": "滑鼠懸停嘅時候播放影片預覽",
|
||||
"video_hover_setting_description": "當滑鼠懸停喺項目上面時播放影片縮略圖。即使停用咗呢個功能,亦可以將滑鼠懸停喺播放圖示上面嚟開始播放。",
|
||||
"video_quality": "影片畫質",
|
||||
"videos": "影片",
|
||||
"videos_count": "{count} 條影片",
|
||||
@@ -2215,6 +2356,7 @@
|
||||
"view_group": "睇下群組",
|
||||
"view_in_timeline": "喺時間線入面睇",
|
||||
"view_link": "檢視連結",
|
||||
"view_more": "睇下更多",
|
||||
"view_name": "睇",
|
||||
"view_next_asset": "睇下個",
|
||||
"view_previous_asset": "睇上個",
|
||||
@@ -2223,6 +2365,7 @@
|
||||
"view_stack": "睇下堆疊",
|
||||
"viewer_remove_from_stack": "喺堆疊入面移走",
|
||||
"visibility": "能見度",
|
||||
"visibility_changed": "{count, plural, one {#個人物} other {#個人物}}嘅可見性已修改",
|
||||
"visual": "視覺化",
|
||||
"waiting": "等緊處理",
|
||||
"waiting_count": "等緊 {count}",
|
||||
@@ -2242,6 +2385,7 @@
|
||||
"workflow_description": "工作流程說明",
|
||||
"workflow_info": "工作流程詳細資訊",
|
||||
"workflow_json": "工作流程 JSON",
|
||||
"workflow_json_help": "以 JSON 格式編輯工作流配置。改動會同步到可視化生成器。",
|
||||
"workflow_logging_completed": "搞掂",
|
||||
"workflow_logging_disable": "停用記錄",
|
||||
"workflow_logging_disabled_description": "而家停用緊呢個工作流程嘅紀錄。",
|
||||
@@ -2250,10 +2394,12 @@
|
||||
"workflow_logging_halted": "停咗",
|
||||
"workflow_logging_halted_step": "喺第{step}報停咗",
|
||||
"workflow_name": "工作流程名",
|
||||
"workflow_navigation_prompt": "你確定唔儲存就退出?",
|
||||
"workflow_summary": "工作流程簡要",
|
||||
"workflow_templates": "工作流程範本",
|
||||
"workflow_update_success": "成功更新工作流程",
|
||||
"workflows": "工作流程",
|
||||
"workflows_help_text": "工作流可以根據觸發同篩選條件自動執行項目操作",
|
||||
"wrong_pin_code": "PIN 碼唔啱",
|
||||
"x_of_total": "{x} / {total}",
|
||||
"year": "年",
|
||||
|
||||
+27
-8
@@ -116,7 +116,7 @@
|
||||
"integrity_checks_checksum_files_percentage_limit": "百分比限制",
|
||||
"integrity_checks_checksum_files_percentage_limit_description": "设置每个检查周期执行校验和检查的最大比例(0.01–1)。",
|
||||
"integrity_checks_checksum_files_time_limit": "时间限制",
|
||||
"integrity_checks_checksum_files_time_limit_description": "设置每个检查周期内,校验和(Checksum)检查允许运行的最长时间(毫秒)。",
|
||||
"integrity_checks_checksum_files_time_limit_description": "设置每个检查周期内,校验和(Checksum)检查允许运行的最长时间(毫秒)",
|
||||
"integrity_checks_missing_files": "缺失文件",
|
||||
"integrity_checks_missing_files_description": "设置执行频率并启用或禁用缺失文件检查",
|
||||
"integrity_checks_missing_files_enable_description": "启用缺失文件检查",
|
||||
@@ -323,6 +323,13 @@
|
||||
"oauth_timeout": "请求超时",
|
||||
"oauth_timeout_description": "请求超时时间(毫秒)",
|
||||
"ocr_job_description": "利用机器学习技术识别图像中的文本",
|
||||
"passkey_additional_domains": "追加域名",
|
||||
"passkey_additional_domains_description": "追加受信任域名(关联来源请求)。仅当通行密钥域名也可访问时,这些域名才会生效。",
|
||||
"passkey_domain": "通行密钥域名",
|
||||
"passkey_domain_description": "用于通行密钥的域名(依赖方)。留空则从 Origin 请求头推断。更改此值将导致现有通行密钥失效。",
|
||||
"passkey_enable_description": "用通行密钥登录",
|
||||
"passkey_settings": "通行密钥登录",
|
||||
"passkey_settings_description": "管理通行密钥登录设置",
|
||||
"password_enable_description": "使用邮箱和密码登录",
|
||||
"password_settings": "密码登录",
|
||||
"password_settings_description": "管理密码登录设置",
|
||||
@@ -671,6 +678,7 @@
|
||||
"birthdate_set_description": "出生日期用于计算拍摄此照片时此人的年龄。",
|
||||
"birthday_memory_age": "{age, selectordinal, one {#岁} two {#岁} few {#岁} other {#岁}} 生日",
|
||||
"birthday_memory_title": "{name}的生日",
|
||||
"birthday_memory_title_with_age": "{name}的生日 · {age, plural, one {# 岁} other {# 岁}}",
|
||||
"blurred_background": "背景虚化",
|
||||
"browse_templates": "浏览模板",
|
||||
"bugs_and_feature_requests": "问题与功能建议",
|
||||
@@ -872,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "仅删除已备份的项目",
|
||||
"delete_local_dialog_ok_force": "强制删除",
|
||||
"delete_others": "删除其他",
|
||||
"delete_passkey": "删除通行密钥",
|
||||
"delete_passkey_prompt": "确定要删除此通行密钥吗?",
|
||||
"delete_permanently": "永久删除",
|
||||
"delete_permanently_action_prompt": "{count}项已永久删除",
|
||||
"delete_shared_link": "删除共享链接",
|
||||
@@ -941,6 +951,7 @@
|
||||
"edit_location_action_prompt": "已编辑 {count} 个位置",
|
||||
"edit_location_dialog_title": "位置",
|
||||
"edit_name": "编辑名称",
|
||||
"edit_passkey": "编辑通行密钥",
|
||||
"edit_people": "编辑人物",
|
||||
"edit_person": "编辑人物",
|
||||
"edit_tag": "编辑标签",
|
||||
@@ -1238,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{date}在{country}{city}拍摄的包含{person1}、{person2}和{person3}的{isVideo, select, true {视频} other {照片}}",
|
||||
"image_alt_text_date_place_4_or_more_people": "{date}在{country}{city}拍摄的包含{person1}、{person2}及其他{additionalCount, number}个人物的{isVideo, select, true {视频} other {照片}}",
|
||||
"immich_logo": "Immich Logo",
|
||||
"immich_web_interface": "Immich网页界面",
|
||||
"import_from_json": "从JSON导入",
|
||||
"import_path": "导入路径",
|
||||
"in_albums": "在{count, plural, one {# 个相册} other {# 个相册}}中",
|
||||
@@ -1286,6 +1296,7 @@
|
||||
"last": "最后一个",
|
||||
"last_months": "{count, plural, one {上个月} other {最近#个月}}",
|
||||
"last_seen": "最后上线于",
|
||||
"last_used": "上次使用",
|
||||
"latest_version": "最新版本",
|
||||
"latitude": "纬度",
|
||||
"leave": "离开",
|
||||
@@ -1361,6 +1372,7 @@
|
||||
"login_has_been_disabled": "登录功能已禁用",
|
||||
"login_password_changed_error": "更新密码时出错",
|
||||
"login_password_changed_success": "密码更新成功",
|
||||
"login_with_passkey": "使用通行密钥登录",
|
||||
"logout_all_device_confirmation": "确定要退出所有设备的登录吗?",
|
||||
"logout_this_device_confirmation": "确定要退出此设备的登录吗?",
|
||||
"logs": "日志",
|
||||
@@ -1400,6 +1412,7 @@
|
||||
"manage_media_access_title": "媒体管理访问权限",
|
||||
"manage_oauth_account": "管理 OAuth 账号",
|
||||
"manage_people": "人物管理",
|
||||
"manage_people_access_description_v2": "授予其他用户访问权限,让他们能够查看或管理您所拥有的{count, plural, one {人物} other {人物}}。此操作并不会分享任何资产信息。",
|
||||
"manage_person_access": "管理访问权限",
|
||||
"manage_sharing_with_other_users": "管理与其他用户的共享",
|
||||
"manage_sharing_with_partners": "管理与协作者的共享设置",
|
||||
@@ -1408,6 +1421,7 @@
|
||||
"manage_your_api_keys": "管理您的 API 密钥",
|
||||
"manage_your_devices": "管理您已登录的设备",
|
||||
"manage_your_oauth_connection": "管理您的 OAuth 连接",
|
||||
"manage_your_passkeys": "管理你的通行密钥",
|
||||
"map": "地图",
|
||||
"map_assets_in_bounds": "{count, plural, =0 {此区域无照片} one {# 张照片} other {# 张照片}}",
|
||||
"map_cannot_get_user_location": "无法获取用户位置",
|
||||
@@ -1511,7 +1525,7 @@
|
||||
"my_albums": "我的相册",
|
||||
"my_immich_description": "将当前页面复制为我的Immich链接",
|
||||
"my_immich_title": "我的Immich链接",
|
||||
"name": "名字",
|
||||
"name": "用户名",
|
||||
"name_or_nickname": "名称或昵称",
|
||||
"name_plus_more_people": "{name} 及 {count, plural, one {# 人} other {# 人}}",
|
||||
"name_required": "名称是必填项",
|
||||
@@ -1527,6 +1541,7 @@
|
||||
"new_album": "新建相册",
|
||||
"new_api_key": "新增 API 密钥",
|
||||
"new_feature": "新功能",
|
||||
"new_passkey": "新增通行密钥",
|
||||
"new_password": "新密码",
|
||||
"new_person": "新人物",
|
||||
"new_pin_code": "新的PIN码",
|
||||
@@ -1639,6 +1654,8 @@
|
||||
"partner_sharing": "好友共享",
|
||||
"partners": "好友",
|
||||
"partners_description": "与其他用户共享你的照片和视频",
|
||||
"passkeys": "{count, plural, one {通行密钥} other {通行密钥}}",
|
||||
"passkeys_not_supported": "当前浏览器不支持使用通行密钥",
|
||||
"password": "密码",
|
||||
"password_does_not_match": "密码不正确",
|
||||
"password_required": "需要密码",
|
||||
@@ -1823,6 +1840,7 @@
|
||||
"removed_from_favorites_count": "从收藏中移除{count, plural, other {#项}}",
|
||||
"removed_from_stack": "已将资源从堆叠中移除",
|
||||
"removed_memory": "已删除的回忆",
|
||||
"removed_passkey": "已移除通行密钥:{name}",
|
||||
"removed_tagged_assets": "从 {count, plural, one {#个项目} other {#个项目}}中删除标签",
|
||||
"rename": "重命名",
|
||||
"repository": "库",
|
||||
@@ -1984,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "启用后,轻触屏幕左右边缘区域即可切换上一张或下一张。",
|
||||
"setting_image_navigation_enable_title": "点击切换",
|
||||
"setting_image_navigation_title": "图片切换",
|
||||
"setting_image_viewer_help": "详细信息查看器首先加载小缩略图,然后加载中等大小的预览图(若启用),最后加载原始图像。",
|
||||
"setting_image_viewer_help": "详细信息查看器首先加载小缩略图,然后加载中等大小的预览图,最后加载原始图像。",
|
||||
"setting_image_viewer_original_subtitle": "启用以加载原图,禁用以减少数据使用量(网络和设备缓存)。",
|
||||
"setting_image_viewer_original_title": "加载原图",
|
||||
"setting_image_viewer_preview_subtitle": "启用以加载中等质量的图像,禁用以加载原图或缩略图。",
|
||||
"setting_image_viewer_preview_title": "加载预览图",
|
||||
"setting_languages_apply": "应用",
|
||||
"setting_languages_subtitle": "更改应用语言",
|
||||
"setting_notifications_notify_minutes": "{count}分钟",
|
||||
@@ -2008,8 +2024,9 @@
|
||||
"share_everyone": "共享给所有人",
|
||||
"share_everyone_description": "授予 {user} 访问你所有人物的权限。",
|
||||
"share_link": "分享链接",
|
||||
"share_logs": "分享日志",
|
||||
"share_original": "使用原图(大)",
|
||||
"share_preview": "使用缩略图(小)",
|
||||
"share_preview": "使用预览图(小)",
|
||||
"share_quality_body": "在分享之前,长按分享按钮以选择图像质量。",
|
||||
"share_quality_title": "选择分享画质",
|
||||
"share_with": "共享访问权限给",
|
||||
@@ -2059,7 +2076,6 @@
|
||||
"shared_link_password_description": "需要密码才能访问此共享链接",
|
||||
"shared_links": "共享链接",
|
||||
"shared_links_description": "通过链接分享照片和视频",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {#个已共享照片/视频。}}",
|
||||
"shared_with": "共享给我的",
|
||||
"shared_with_count": "已共享 ({count})",
|
||||
"shared_with_me": "共享给我",
|
||||
@@ -2187,6 +2203,8 @@
|
||||
"theme": "主题",
|
||||
"theme_selection": "主题选项",
|
||||
"theme_selection_description": "跟随浏览器自动设置主题颜色",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "拖动滚动条时连续滚动,而不是自动吸附到月份",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "平滑时间轴拖动",
|
||||
"theme_setting_asset_list_storage_indicator_title": "在项目标题上显示存储占用",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "每行展示 {count} 项",
|
||||
"theme_setting_colorful_interface_subtitle": "应用主色调到背景。",
|
||||
@@ -2338,6 +2356,7 @@
|
||||
"view_group": "查看群组",
|
||||
"view_in_timeline": "在时间轴中查看",
|
||||
"view_link": "查看链接",
|
||||
"view_more": "查看更多",
|
||||
"view_name": "查看",
|
||||
"view_next_asset": "查看下一项",
|
||||
"view_previous_asset": "查看上一项",
|
||||
|
||||
+98
-10
@@ -34,7 +34,7 @@
|
||||
"add_to_albums": "加入相簿",
|
||||
"add_to_albums_count": "將 ({count}) 個項目加入相簿",
|
||||
"add_to_bottom_bar": "新增到",
|
||||
"add_upload_to_stack": "新增上傳到堆疊",
|
||||
"add_upload_to_stack": "上傳到{isStack, select, true {現有堆疊} other {新的堆疊}}",
|
||||
"add_url": "新增 URL",
|
||||
"add_user": "新增使用者",
|
||||
"added_to_archive": "移至封存",
|
||||
@@ -294,6 +294,7 @@
|
||||
"notification_settings": "通知設定",
|
||||
"notification_settings_description": "管理通知設定,包括電子郵件",
|
||||
"oauth_account_management_url": "帳號管理連結",
|
||||
"oauth_account_management_url_description": "使用者可管理自身設定或個人檔案之外部身分提供者位置。",
|
||||
"oauth_allow_insecure_requests": "允許不可靠的請求",
|
||||
"oauth_allow_insecure_requests_description": "警告:這個選項會停用 OAuth 的 TLS 憑證驗證請求,可能會使你暴露於 MITM 攻擊。",
|
||||
"oauth_auto_launch": "自動啟動",
|
||||
@@ -322,6 +323,13 @@
|
||||
"oauth_timeout": "請求逾時",
|
||||
"oauth_timeout_description": "請求逾時(毫秒)",
|
||||
"ocr_job_description": "使用機器學習辨識影像中的文字",
|
||||
"passkey_additional_domains": "其他網域",
|
||||
"passkey_additional_domains_description": "其他受信任的網域(允許跨網域驗證)。",
|
||||
"passkey_domain": "通行金鑰網域",
|
||||
"passkey_domain_description": "設定通行金鑰使用的網域。留空時,系統會自動偵測目前網站的網域。注意: 修改此設定後,原本的通行金鑰將無法使用,需要重新設定。",
|
||||
"passkey_enable_description": "使用通行金鑰登入",
|
||||
"passkey_settings": "通行金鑰登入",
|
||||
"passkey_settings_description": "管理通行金鑰登入設定",
|
||||
"password_enable_description": "使用電子郵件和密碼登入",
|
||||
"password_settings": "密碼登入",
|
||||
"password_settings_description": "管理密碼登入設定",
|
||||
@@ -329,7 +337,7 @@
|
||||
"person_cleanup_job": "清理人物",
|
||||
"queue_details": "佇列資訊",
|
||||
"queues": "任務佇列",
|
||||
"queues_page_description": "管理員任務序列頁面",
|
||||
"queues_page_description": "排程管理界面",
|
||||
"quota_size_gib": "配額大小(GiB)",
|
||||
"refreshing_all_libraries": "正在重新整理所有媒體庫",
|
||||
"registration": "管理者註冊",
|
||||
@@ -367,10 +375,17 @@
|
||||
"storage_template_migration_info": "儲存範本會將所有副檔名轉換為小寫。範本變更僅會套用至新項目。若要追溯套用範本至先前上傳的項目,請執行 <link>{job}</link>。",
|
||||
"storage_template_migration_job": "儲存範本遷移作業",
|
||||
"storage_template_more_details": "關於此功能的更多詳細資訊,請參閱 <template-link>儲存範本</template-link> 及其 <implications-link>影響</implications-link>",
|
||||
"storage_template_onboarding_description_v3": "儲存範本可讓你為上傳的資產在磁碟上定義自訂資料夾結構。此設定日後隨時可以修改。",
|
||||
"storage_template_option_custom": "自訂",
|
||||
"storage_template_option_custom_description": "使用範本變數建立專屬的資料夾結構",
|
||||
"storage_template_option_date_description": "將檔案分類至年、月、日資料夾",
|
||||
"storage_template_option_none": "沒有範本",
|
||||
"storage_template_option_none_description": "保留 Immich 預設使用的資料夾結構",
|
||||
"storage_template_path_length": "預估路徑長度上限:<b>{length, number}</b>/{limit, number}",
|
||||
"storage_template_settings": "儲存範本",
|
||||
"storage_template_settings_description": "管理上傳項目的資料夾結構與檔名",
|
||||
"storage_template_user_label": "<code>{label}</code> 是使用者的儲存標籤",
|
||||
"storage_template_variables": "範本變數",
|
||||
"system_settings": "系統設定",
|
||||
"tag_cleanup_job": "清理標籤",
|
||||
"template_email_available_tags": "您可以在範本中使用下列變數:{tags}",
|
||||
@@ -480,8 +495,8 @@
|
||||
"user_settings_description": "管理使用者設定",
|
||||
"user_successfully_removed": "已成功刪除使用者 {email}。",
|
||||
"users_page_description": "管理使用者頁面",
|
||||
"version_check_channel": "發佈渠道",
|
||||
"version_check_channel_description": "選擇您想要接收版本更新公告的發布渠道",
|
||||
"version_check_channel": "發佈管道",
|
||||
"version_check_channel_description": "選擇您想要接收版本更新公告的發布管道",
|
||||
"version_check_enabled_description": "啟用版本檢查",
|
||||
"version_check_implications": "版本檢查功能仰賴與 {server} 的定期通訊",
|
||||
"version_check_settings": "版本檢查",
|
||||
@@ -493,6 +508,7 @@
|
||||
"admin_password": "管理員密碼",
|
||||
"administration": "系統管理",
|
||||
"advanced": "進階",
|
||||
"advanced_filters": "進階過濾器",
|
||||
"advanced_settings_clear_image_cache": "清除圖片快取",
|
||||
"advanced_settings_clear_image_cache_error": "清除圖片快取失敗",
|
||||
"advanced_settings_clear_image_cache_success": "成功清除 {size}",
|
||||
@@ -547,6 +563,7 @@
|
||||
"allow_public_user_to_download": "允許公開使用者下載",
|
||||
"allow_public_user_to_upload": "允許公開使用者上傳",
|
||||
"allowed": "允許",
|
||||
"also_known_as": "又稱為",
|
||||
"alt_text_qr_code": "QR code 圖片",
|
||||
"always_keep": "一律保留",
|
||||
"always_keep_photos_hint": "「釋放空間」功能會將所有相片保留在此裝置上。",
|
||||
@@ -659,6 +676,9 @@
|
||||
"biometric_no_options": "沒有生物辨識選項可用",
|
||||
"biometric_not_available": "此裝置不支援生物辨識驗證",
|
||||
"birthdate_set_description": "出生日期用於計算此人在相片拍攝時的年齡。",
|
||||
"birthday_memory_age": "{age, number}歲生日",
|
||||
"birthday_memory_title": "{name} 的生日",
|
||||
"birthday_memory_title_with_age": "{name} 的 {age, number} 歲生日",
|
||||
"blurred_background": "背景模糊",
|
||||
"browse_templates": "瀏覽範本",
|
||||
"bugs_and_feature_requests": "錯誤及功能請求",
|
||||
@@ -723,6 +743,8 @@
|
||||
"clear_all_recent_searches": "清除所有最近的搜尋",
|
||||
"clear_failed_count": "清除失敗 ({count})",
|
||||
"clear_file_cache": "清除檔案快取",
|
||||
"clear_file_cache_error": "無法清除檔案快取",
|
||||
"clear_file_cache_success": "檔案快取已清除",
|
||||
"clear_message": "清除訊息",
|
||||
"clear_value": "清除值",
|
||||
"client_cert_import": "匯入",
|
||||
@@ -734,6 +756,9 @@
|
||||
"client_cert_subtitle": "僅支援 PKCS12 (.p12, .pfx) 格式。憑證匯入與移除僅可在登入前進行",
|
||||
"client_cert_title": "SSL 用戶端憑證 [實驗性]",
|
||||
"close": "關閉",
|
||||
"cluster_group_description": "人們能辨識出群體內每一個人的照片",
|
||||
"cluster_group_facial_recognition": "重設人臉辨識",
|
||||
"cluster_group_facial_recognition_prompt": "重設人臉辨識將刪除此群組內所有使用者的所有人員資料。已設定的姓名與生日將會遺失。確定要繼續嗎?",
|
||||
"cluster_group_invite_description": "您已被邀請加入此集群。",
|
||||
"collapse": "折疊",
|
||||
"collapse_all": "全部折疊",
|
||||
@@ -855,6 +880,8 @@
|
||||
"delete_local_dialog_ok_backed_up_only": "僅刪除已備份的項目",
|
||||
"delete_local_dialog_ok_force": "確認刪除",
|
||||
"delete_others": "刪除其他",
|
||||
"delete_passkey": "刪除通行密鑰",
|
||||
"delete_passkey_prompt": "確定要刪除此通行密鑰嗎?",
|
||||
"delete_permanently": "永久刪除",
|
||||
"delete_permanently_action_prompt": "已永久刪除 {count} 個項目",
|
||||
"delete_shared_link": "刪除分享連結",
|
||||
@@ -924,7 +951,9 @@
|
||||
"edit_location_action_prompt": "{count} 個位置已編輯",
|
||||
"edit_location_dialog_title": "位置",
|
||||
"edit_name": "編輯名稱",
|
||||
"edit_passkey": "編輯通行密鑰",
|
||||
"edit_people": "編輯人物",
|
||||
"edit_person": "編輯人員",
|
||||
"edit_tag": "編輯標籤",
|
||||
"edit_title": "編輯標題",
|
||||
"edit_user": "編輯使用者",
|
||||
@@ -1192,7 +1221,9 @@
|
||||
"headers_settings_tile_title": "自訂代理標頭",
|
||||
"height": "高度",
|
||||
"hi_user": "嗨!{name}({email})",
|
||||
"hidden": "隱藏",
|
||||
"hide_all_people": "隱藏所有人物",
|
||||
"hide_asset_owners": "隱藏資產擁有者",
|
||||
"hide_gallery": "隱藏媒體庫",
|
||||
"hide_named_person": "隱藏 {name}",
|
||||
"hide_password": "隱藏密碼",
|
||||
@@ -1218,7 +1249,6 @@
|
||||
"image_alt_text_date_place_3_people": "{isVideo, select, true {影片} other {相片}}:於 {date} 在 {country}{city} 與 {person1}、{person2} 及 {person3} 一同拍攝",
|
||||
"image_alt_text_date_place_4_or_more_people": "{isVideo, select, true {影片} other {相片}}:於 {date} 在 {country}{city} 與 {person1}、{person2} 及其他 {additionalCount, number} 人一同拍攝",
|
||||
"immich_logo": "Immich Logo",
|
||||
"immich_web_interface": "Immich 網頁介面",
|
||||
"import_from_json": "從 JSON 匯入",
|
||||
"import_path": "匯入路徑",
|
||||
"in_albums": "在 {count, plural, one {# 本相簿} other {# 本相簿}}中",
|
||||
@@ -1266,11 +1296,13 @@
|
||||
"last": "最後一個",
|
||||
"last_months": "{count, plural, one {上個月} other {最近 # 個月}}",
|
||||
"last_seen": "最後上線",
|
||||
"last_used": "上次使用",
|
||||
"latest_version": "最新版本",
|
||||
"latitude": "緯度",
|
||||
"leave": "離開",
|
||||
"leave_album": "離開相簿",
|
||||
"leave_group": "離開群組",
|
||||
"leave_group_description": "群組內所有人的照片將不再辨識人物。你確定要繼續嗎?",
|
||||
"lens_model": "鏡頭型號",
|
||||
"less": "收起",
|
||||
"let_others_respond": "允許他人回覆",
|
||||
@@ -1340,6 +1372,7 @@
|
||||
"login_has_been_disabled": "已停用登入功能",
|
||||
"login_password_changed_error": "密碼更新失敗",
|
||||
"login_password_changed_success": "密碼更新成功",
|
||||
"login_with_passkey": "使用通行密鑰登入",
|
||||
"logout_all_device_confirmation": "您確定要登出所有裝置嗎?",
|
||||
"logout_this_device_confirmation": "要登出這臺裝置嗎?",
|
||||
"logs": "紀錄",
|
||||
@@ -1378,6 +1411,9 @@
|
||||
"manage_media_access_subtitle": "允許 Immich App 管理與移動媒體檔案。",
|
||||
"manage_media_access_title": "媒體管理存取權限",
|
||||
"manage_oauth_account": "管理OAuth帳號",
|
||||
"manage_people": "管理人員",
|
||||
"manage_people_access_description_v2": "授予其他使用者存取{count, plural, one {this person} other {your people}}的權限,讓他們可代表你檢視或管理。此操作不會共用任何資產。",
|
||||
"manage_person_access": "管理存取權",
|
||||
"manage_sharing_with_other_users": "管理與其他使用者的共享",
|
||||
"manage_sharing_with_partners": "管理親友共享設定",
|
||||
"manage_the_app_settings": "管理應用程式設定",
|
||||
@@ -1385,7 +1421,9 @@
|
||||
"manage_your_api_keys": "管理您的 API 金鑰",
|
||||
"manage_your_devices": "管理已登入的裝置",
|
||||
"manage_your_oauth_connection": "管理您的 OAuth 連結",
|
||||
"manage_your_passkeys": "管理你的通行密鑰",
|
||||
"map": "地圖",
|
||||
"map_assets_in_bounds": "{count, number, =0}這個區域裡面沒有照片",
|
||||
"map_cannot_get_user_location": "無法取得使用者位置",
|
||||
"map_location_picker_page_use_location": "使用此位置",
|
||||
"map_location_service_disabled_content": "需要啟用定位服務才能顯示您目前位置相關的項目。要現在啟用嗎?",
|
||||
@@ -1446,9 +1484,12 @@
|
||||
"memories": "回憶",
|
||||
"memories_all_caught_up": "已全部看完",
|
||||
"memories_check_back_tomorrow": "明天再看",
|
||||
"memories_current": "目前",
|
||||
"memories_setting_description": "管理您的回憶中顯示的內容",
|
||||
"memories_show_upcoming": "顯示即將到來的回憶",
|
||||
"memories_start_over": "再看一次",
|
||||
"memories_swipe_to_close": "上滑關閉",
|
||||
"memories_upcoming": "即將推出",
|
||||
"memory": "回憶",
|
||||
"memory_lane_title": "回憶長廊{title}",
|
||||
"menu": "選單",
|
||||
@@ -1486,6 +1527,7 @@
|
||||
"my_immich_title": "My Immich 連結",
|
||||
"name": "名稱",
|
||||
"name_or_nickname": "名稱或暱稱",
|
||||
"name_plus_more_people": "{name} 和 {count} 個人",
|
||||
"name_required": "名稱是必填項",
|
||||
"navigate": "導覽",
|
||||
"navigate_to_time": "跳轉至指定時間",
|
||||
@@ -1499,6 +1541,7 @@
|
||||
"new_album": "新相簿",
|
||||
"new_api_key": "新的 API 金鑰",
|
||||
"new_feature": "新功能",
|
||||
"new_passkey": "新增通行密鑰",
|
||||
"new_password": "新密碼",
|
||||
"new_person": "新的人物",
|
||||
"new_pin_code": "新 PIN 碼",
|
||||
@@ -1525,6 +1568,7 @@
|
||||
"no_exif_info_available": "沒有可用的 Exif 資訊",
|
||||
"no_explore_results_message": "上傳更多相片來探索您的珍藏。",
|
||||
"no_favorites_message": "加入最愛,更快找到您最棒的相片與影片",
|
||||
"no_filter": "無過濾器",
|
||||
"no_libraries_message": "建立外部媒體庫以檢視您的相片和影片",
|
||||
"no_local_assets_found": "找不到具有此校驗碼的本機項目",
|
||||
"no_locked_photos_message": "「已上鎖的資料夾」中的相片與影片會被隱藏,且不會出現在瀏覽或搜尋結果中。",
|
||||
@@ -1609,6 +1653,9 @@
|
||||
"partner_page_stop_sharing_content": "{partner} 將無法再存取您的相片。",
|
||||
"partner_sharing": "親友共享",
|
||||
"partners": "親友",
|
||||
"partners_description": "與其他使用者分享你的照片和影片",
|
||||
"passkeys": "{count, plural, one {通行密鑰} other {通行密鑰}}",
|
||||
"passkeys_not_supported": "當前瀏覽器不支援使用通行密鑰",
|
||||
"password": "密碼",
|
||||
"password_does_not_match": "密碼不相符",
|
||||
"password_required": "需要密碼",
|
||||
@@ -1625,6 +1672,8 @@
|
||||
"paused": "已暫停",
|
||||
"pending": "待處理",
|
||||
"people": "人物",
|
||||
"people_cluster_group": "人群叢集群組",
|
||||
"people_count": "{count} 人",
|
||||
"people_edits_count": "已編輯 {count, plural, one {# 位人物} other {# 位人物}}",
|
||||
"people_feature_description": "以人物分類瀏覽相片和影片",
|
||||
"people_search_description": "選擇一個或多個人物以尋找他們存在的照片。",
|
||||
@@ -1642,8 +1691,15 @@
|
||||
"person_age_year_months": "1 年 {months, plural, one {# 個月} other {# 個月}}",
|
||||
"person_age_years": "{years, plural, one {# 歲} other {# 歲}}",
|
||||
"person_birthdate": "出生於 {date}",
|
||||
"person_edit_only_change_for_me": "只為我變更",
|
||||
"person_edit_only_change_for_me_description": "僅套用變更至您的使用者進行檢查",
|
||||
"person_hidden": "{name}{hidden, select, true {(隱藏)} other {}}",
|
||||
"person_recognized": "已辨識人物",
|
||||
"person_share_no_users": "叢集群組內的每位使用者皆已擁有存取此人資訊的權限。",
|
||||
"person_update_strategy": "套用變更至",
|
||||
"person_update_strategy_description": "變更姓名或出生日期時,需要通知哪些人",
|
||||
"person_update_strategy_everyone": "擁有共用存取權限的所有人",
|
||||
"person_update_strategy_self": "只有我",
|
||||
"photo_shared_all_users": "看來您與所有使用者分享了相片,或沒有其他使用者可供分享。",
|
||||
"photos": "相片",
|
||||
"photos_and_videos": "相片及影片",
|
||||
@@ -1671,6 +1727,7 @@
|
||||
"port": "連接埠",
|
||||
"preferences_settings_subtitle": "管理應用程式偏好設定",
|
||||
"preferences_settings_title": "偏好設定",
|
||||
"prepared_archives": "已備存封存檔案",
|
||||
"preparing": "準備",
|
||||
"preset": "預設",
|
||||
"preview": "預覽",
|
||||
@@ -1725,6 +1782,7 @@
|
||||
"query_asset_id": "查詢項目 ID",
|
||||
"queue_status": "處理中 {count}/{total}",
|
||||
"rate_asset": "項目評分",
|
||||
"rate_asset_description": "使用1到5的按鍵快速為資產評分,按0清除評分",
|
||||
"rating": "評星",
|
||||
"rating_clear": "清除評等",
|
||||
"rating_count": "{count, plural, =0 {未評分} one {# 星} other {# 星}}",
|
||||
@@ -1780,7 +1838,9 @@
|
||||
"removed_from_archive": "從封存中移除",
|
||||
"removed_from_favorites": "已從收藏中移除",
|
||||
"removed_from_favorites_count": "已移除收藏的 {count, plural, other {# 個項目}}",
|
||||
"removed_from_stack": "從堆疊中移除資產",
|
||||
"removed_memory": "已移除記憶",
|
||||
"removed_passkey": "已移除通行密鑰:{name}",
|
||||
"removed_tagged_assets": "已移除 {count, plural, one {# 個檔案} other {# 個檔案}}的標籤",
|
||||
"rename": "重新命名",
|
||||
"repository": "儲存庫",
|
||||
@@ -1817,6 +1877,8 @@
|
||||
"role": "角色",
|
||||
"role_editor": "編輯者",
|
||||
"role_viewer": "檢視者",
|
||||
"rotate_api_key_prompt": "您確定要輪換此API金鑰嗎?目前的金鑰將會立即失效。",
|
||||
"rotate_key": "旋轉金鑰",
|
||||
"running": "執行中",
|
||||
"save": "儲存",
|
||||
"saved": "已儲存",
|
||||
@@ -1836,6 +1898,7 @@
|
||||
"search": "搜尋",
|
||||
"search_albums": "搜尋相簿",
|
||||
"search_by_context": "以情境搜尋",
|
||||
"search_by_context_example": "描述你想要尋找的照片,例如「兒童在彈簧床上跳躍」",
|
||||
"search_by_description": "以描述搜尋",
|
||||
"search_by_description_example": "在沙壩的健行之日",
|
||||
"search_by_filename": "依檔名或副檔名搜尋",
|
||||
@@ -1852,7 +1915,10 @@
|
||||
"search_filter_apply": "套用篩選",
|
||||
"search_filter_camera_title": "選擇相機類型",
|
||||
"search_filter_date": "日期",
|
||||
"search_filter_date_custom": "自訂",
|
||||
"search_filter_date_description": "使用預設範圍或自訂日期區間,依照片拍攝時間進行篩選。",
|
||||
"search_filter_date_interval": "從 {start} 到 {end}",
|
||||
"search_filter_date_last_30_days": "過去30天",
|
||||
"search_filter_date_last_year": "前一年",
|
||||
"search_filter_date_this_year": "今年",
|
||||
"search_filter_date_title": "選擇日期範圍",
|
||||
@@ -1866,6 +1932,7 @@
|
||||
"search_filter_media_type_title": "選擇媒體類型",
|
||||
"search_filter_people_title": "選擇人物",
|
||||
"search_filter_star_rating": "評分",
|
||||
"search_filter_tags_description": "透過你新增的標籤進行篩選,整理你的媒體庫。",
|
||||
"search_filter_tags_title": "選擇標籤",
|
||||
"search_for": "搜尋",
|
||||
"search_for_existing_person": "搜尋現有人物",
|
||||
@@ -1884,6 +1951,7 @@
|
||||
"search_tags": "搜尋標籤...",
|
||||
"search_timezone": "搜尋時區…",
|
||||
"search_type": "搜尋類型",
|
||||
"search_type_description": "選擇 Immich 解讀搜尋的方式:依視覺內容、檔案詳細資訊,或是內嵌文字。",
|
||||
"search_your_photos": "搜尋相片",
|
||||
"searching_locales": "搜尋區域…",
|
||||
"second": "秒",
|
||||
@@ -1934,11 +2002,9 @@
|
||||
"setting_image_navigation_enable_subtitle": "開啟後以觸碰螢幕左/右邊緣區域的方式切換上/下圖片。",
|
||||
"setting_image_navigation_enable_title": "點擊切換",
|
||||
"setting_image_navigation_title": "圖片導引",
|
||||
"setting_image_viewer_help": "詳細資訊檢視器會依序載入小型縮圖、中等尺寸預覽圖(若啟用),最後載入原始相片。",
|
||||
"setting_image_viewer_help": "詳細資訊檢視器會依序載入小型縮圖、中等尺寸預覽圖,最後載入原始相片。",
|
||||
"setting_image_viewer_original_subtitle": "啟用以載入原始全解析度圖片(檔案較大!)。停用以減少流量使用(包括網路傳輸與裝置快取)。",
|
||||
"setting_image_viewer_original_title": "載入原圖",
|
||||
"setting_image_viewer_preview_subtitle": "啟用以載入中等解析度圖片。停用則直接載入原圖或僅使用縮圖。",
|
||||
"setting_image_viewer_preview_title": "載入預覽圖",
|
||||
"setting_languages_apply": "套用",
|
||||
"setting_languages_subtitle": "變更應用程式的語言",
|
||||
"setting_notifications_notify_minutes": "{count} 分鐘",
|
||||
@@ -1953,12 +2019,17 @@
|
||||
"settings_saved": "設定已儲存",
|
||||
"setup_pin_code": "設定 PIN 碼",
|
||||
"share": "分享",
|
||||
"share_back": "回傳分享",
|
||||
"share_dialog_preparing": "正在準備...",
|
||||
"share_everyone": "分享給大家",
|
||||
"share_everyone_description": "授予{user}存取你所有人員的權限。",
|
||||
"share_link": "分享連結",
|
||||
"share_logs": "分享日誌",
|
||||
"share_original": "使用原圖(大)",
|
||||
"share_preview": "使用縮圖(小)",
|
||||
"share_preview": "使用預覽(小)",
|
||||
"share_quality_body": "長按分享按鈕即可在分享之前選擇圖片品質。",
|
||||
"share_quality_title": "選擇您的分享品質",
|
||||
"share_with": "共用存取權限給",
|
||||
"shared": "共享",
|
||||
"shared_album_activities_input_disable": "留言功能已停用",
|
||||
"shared_album_activity_remove_content": "您確定要刪除此活動嗎?",
|
||||
@@ -1966,6 +2037,7 @@
|
||||
"shared_album_section_people_action_error": "結束/刪除相簿失敗",
|
||||
"shared_album_section_people_title": "人物",
|
||||
"shared_by": "共享自",
|
||||
"shared_by_me": "由我分享",
|
||||
"shared_by_user": "由 {user} 共享",
|
||||
"shared_by_you": "由您共享",
|
||||
"shared_from_partner": "來自 {partner} 的相片",
|
||||
@@ -2004,7 +2076,8 @@
|
||||
"shared_link_password_description": "存取此分享連結時要求密碼",
|
||||
"shared_links": "分享連結",
|
||||
"shared_links_description": "以連結分享相片和影片",
|
||||
"shared_photos_and_videos_count": "{assetCount, plural, other {已分享 # 張相片及影片。}}",
|
||||
"shared_with": "共用對象",
|
||||
"shared_with_count": "已分享 ({count})",
|
||||
"shared_with_me": "與我共享",
|
||||
"shared_with_partner": "與 {partner} 共享",
|
||||
"sharing": "共享",
|
||||
@@ -2014,6 +2087,7 @@
|
||||
"show_albums": "顯示相簿",
|
||||
"show_all_people": "顯示所有人物",
|
||||
"show_and_hide_people": "顯示與隱藏人物",
|
||||
"show_asset_panel_on_map": "預設顯示資產面板",
|
||||
"show_file_location": "顯示檔案位置",
|
||||
"show_gallery": "顯示媒體庫",
|
||||
"show_hidden_people": "顯示隱藏的人物",
|
||||
@@ -2026,6 +2100,7 @@
|
||||
"show_or_hide_info": "顯示或隱藏資訊",
|
||||
"show_password": "顯示密碼",
|
||||
"show_person_options": "顯示人物選項",
|
||||
"show_photos_in_area": "顯示此地區的照片",
|
||||
"show_progress_bar": "顯示進度條",
|
||||
"show_schema": "顯示架構",
|
||||
"show_search_options": "顯示搜尋選項",
|
||||
@@ -2068,6 +2143,7 @@
|
||||
"source": "來源",
|
||||
"stack": "堆疊",
|
||||
"stack_action_prompt": "已堆疊了{count} 個項目",
|
||||
"stack_created": "堆疊已建立",
|
||||
"stack_duplicates": "堆疊重複項目",
|
||||
"stack_selected_photos": "堆疊選取的相片",
|
||||
"stacked_assets_count": "已堆疊 {count, plural, one {# 個檔案} other {# 個檔案}}",
|
||||
@@ -2085,6 +2161,7 @@
|
||||
"stop_motion_photo": "停止動態相片",
|
||||
"stop_photo_sharing": "要停止分享您的相片嗎?",
|
||||
"stop_photo_sharing_description": "{partner} 將無法再存取您的相片。",
|
||||
"stop_sharing_person_with_user": "停止向該使用者分享這個人",
|
||||
"stop_sharing_photos_with_user": "停止與此使用者共享您的相片",
|
||||
"storage": "儲存空間",
|
||||
"storage_label": "儲存標籤",
|
||||
@@ -2113,7 +2190,10 @@
|
||||
"tag_created": "已建立標籤:{tag}",
|
||||
"tag_face": "標記臉孔",
|
||||
"tag_feature_description": "以邏輯標記要旨分類瀏覽相片和影片",
|
||||
"tag_full_path": "完整路徑: {tag}",
|
||||
"tag_not_found_question": "找不到標籤?<link>建立新標籤。</link>",
|
||||
"tag_people": "標籤人物",
|
||||
"tag_plus_more_tags": "{tag} + {count} 個標籤",
|
||||
"tag_updated": "已更新標籤:{tag}",
|
||||
"tagged_assets": "已標籤 {count, plural, one {# 個檔案} other {# 個檔案}}",
|
||||
"tags": "標籤",
|
||||
@@ -2123,6 +2203,8 @@
|
||||
"theme": "主題",
|
||||
"theme_selection": "主題選項",
|
||||
"theme_selection_description": "隨瀏覽器或系統設定,自動切換深色與淺色模式",
|
||||
"theme_setting_asset_list_smooth_scrubbing_subtitle": "拖動捲軸時連續捲動,而不是自動吸附到月份",
|
||||
"theme_setting_asset_list_smooth_scrubbing_title": "平滑時間軸拖動",
|
||||
"theme_setting_asset_list_storage_indicator_title": "在項目標題上顯示使用之儲存空間",
|
||||
"theme_setting_asset_list_tiles_per_row_title": "每行展示 {count} 項",
|
||||
"theme_setting_colorful_interface_subtitle": "套用主色調到背景。",
|
||||
@@ -2274,6 +2356,7 @@
|
||||
"view_group": "檢視群組",
|
||||
"view_in_timeline": "在時間軸中檢視",
|
||||
"view_link": "檢視連結",
|
||||
"view_more": "查看更多",
|
||||
"view_name": "檢視分類",
|
||||
"view_next_asset": "檢視下一項",
|
||||
"view_previous_asset": "檢視上一項",
|
||||
@@ -2305,6 +2388,11 @@
|
||||
"workflow_json_help": "以 JSON 格式編輯工作流程設定。變更將同步至視覺化編輯器。",
|
||||
"workflow_logging_completed": "已完成",
|
||||
"workflow_logging_disable": "關閉日誌記錄",
|
||||
"workflow_logging_disabled_description": "此工作流程目前已停用記錄功能。",
|
||||
"workflow_logging_enable": "啟用記錄功能",
|
||||
"workflow_logging_error_step": "步驟 #{step} 發生錯誤",
|
||||
"workflow_logging_halted": "已暫停",
|
||||
"workflow_logging_halted_step": "已在步驟 #{step} 暫停",
|
||||
"workflow_name": "工作流程名稱",
|
||||
"workflow_navigation_prompt": "您確定要不儲存變更就離開嗎?",
|
||||
"workflow_summary": "工作流程摘要",
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
# machine-learning/AGENTS.md
|
||||
|
||||
Python 3.12 FastAPI service running ONNX models for CLIP, facial recognition and OCR, managed with uv.
|
||||
|
||||
## Rules
|
||||
|
||||
- Install with `uv sync --extra cpu`; run tools through `uv run` or the mise tasks.
|
||||
- `mise //machine-learning:check` is `mypy --strict`, and ruff enforces line length 120. Code must pass both.
|
||||
- `immich_ml/main.py` is the app (`/predict`, `/ping`); `pipeline.py` composes the Clip, FacialRecognition and Ocr pipelines.
|
||||
|
||||
## Skills
|
||||
|
||||
- **Add or change a model**: models live in `immich_ml/models/{clip,facial_recognition,ocr}/` and extend `InferenceModel` in `models/base.py`, which downloads weights with Hugging Face `snapshot_download` into the cache folder. Loaded models are kept in `models/cache.py` `ModelCache`, keyed by class, name and graph, with TTL eviction. Execution backends (ONNX Runtime, RKNN, Arm NN) are in `immich_ml/sessions/`.
|
||||
- **Run tests**: everything is in `test_main.py`. One class with `uv run pytest test_main.py -k TestCache`, one test with `test_main.py::TestCLIP::test_name`. `mise //machine-learning:test-full` downloads real models and runs the prediction endpoint tests.
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "immich-ml"
|
||||
version = "3.3.3"
|
||||
version = "3.4.0rc0"
|
||||
description = ""
|
||||
authors = [{ name = "Hau Tran", email = "alex.tran1502@gmail.com" }]
|
||||
requires-python = ">=3.12,<4.0"
|
||||
|
||||
Generated
+1
-1
@@ -830,7 +830,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "immich-ml"
|
||||
version = "3.3.3"
|
||||
version = "3.4.0rc0"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "fastapi" },
|
||||
|
||||
@@ -88,7 +88,6 @@ url_api = "https://api.github.com/repos/jellyfin/jellyfin-ffmpeg/releases/assets
|
||||
[[tools."github:jellyfin/jellyfin-ffmpeg"]]
|
||||
version = "7.1.3-6"
|
||||
backend = "github:jellyfin/jellyfin-ffmpeg"
|
||||
specifiers = ["7.1.3-6"]
|
||||
|
||||
[tools."github:jellyfin/jellyfin-ffmpeg".options]
|
||||
asset_pattern = "jellyfin-ffmpeg_*_portable_linuxarm64-gpl.tar.xz"
|
||||
@@ -101,7 +100,6 @@ url_api = "https://api.github.com/repos/jellyfin/jellyfin-ffmpeg/releases/assets
|
||||
[[tools."github:jellyfin/jellyfin-ffmpeg"]]
|
||||
version = "7.1.3-6"
|
||||
backend = "github:jellyfin/jellyfin-ffmpeg"
|
||||
specifiers = ["7.1.3-6"]
|
||||
|
||||
[tools."github:jellyfin/jellyfin-ffmpeg".options]
|
||||
asset_pattern = "jellyfin-ffmpeg_*_portable_mac64-gpl.tar.xz"
|
||||
@@ -114,7 +112,6 @@ url_api = "https://api.github.com/repos/jellyfin/jellyfin-ffmpeg/releases/assets
|
||||
[[tools."github:jellyfin/jellyfin-ffmpeg"]]
|
||||
version = "7.1.3-6"
|
||||
backend = "github:jellyfin/jellyfin-ffmpeg"
|
||||
specifiers = ["7.1.3-6"]
|
||||
|
||||
[tools."github:jellyfin/jellyfin-ffmpeg".options]
|
||||
asset_pattern = "jellyfin-ffmpeg_*_portable_macarm64-gpl.tar.xz"
|
||||
@@ -234,31 +231,26 @@ specifiers = ["1.13.2"]
|
||||
|
||||
[tools.opentofu."platforms.linux-arm64"]
|
||||
checksum = "sha256:88e2d9e3f94f97b76ab2faf55ade87578f56aed19c5e45fa139d70e994366d1f"
|
||||
checksum_source = "mise-versions"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.13.2/tofu_1.13.2_linux_arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/662742799"
|
||||
|
||||
[tools.opentofu."platforms.linux-x64"]
|
||||
checksum = "sha256:ac05d9952662c7db28dd57e93f0a68018837bfdf9342384ec0987977c16a9645"
|
||||
checksum_source = "mise-versions"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.13.2/tofu_1.13.2_linux_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/662742636"
|
||||
|
||||
[tools.opentofu."platforms.macos-arm64"]
|
||||
checksum = "sha256:0d1cdc85f38992055b48e7fb161304a2ddfe2e5ee0ff68ffec9d0349c8bd1b59"
|
||||
checksum_source = "mise-versions"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.13.2/tofu_1.13.2_darwin_arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/662742637"
|
||||
|
||||
[tools.opentofu."platforms.macos-x64"]
|
||||
checksum = "sha256:dc6e4eb1d3ed6550c2ef052596f933dbcd8c806957665ea83ae7537147cb3074"
|
||||
checksum_source = "mise-versions"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.13.2/tofu_1.13.2_darwin_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/662742982"
|
||||
|
||||
[tools.opentofu."platforms.windows-x64"]
|
||||
checksum = "sha256:e74fc2bda0c81ce696b6b7016a4d5c1f557638161239e4101e9ee7d8e0faba59"
|
||||
checksum_source = "mise-versions"
|
||||
url = "https://github.com/opentofu/opentofu/releases/download/v1.13.2/tofu_1.13.2_windows_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/opentofu/opentofu/releases/assets/662742635"
|
||||
|
||||
@@ -297,6 +289,46 @@ url = "https://github.com/pnpm/pnpm/releases/download/v12.15.0/pnpm-win32-x64.zi
|
||||
url_api = "https://api.github.com/repos/pnpm/pnpm/releases/assets/662173351"
|
||||
provenance = "github-attestations"
|
||||
|
||||
[[tools.restic]]
|
||||
version = "0.19.0"
|
||||
backend = "aqua:restic/restic"
|
||||
specifiers = ["0.19.0"]
|
||||
|
||||
[tools.restic."platforms.linux-arm64"]
|
||||
checksum = "sha256:e522ce6bf748d753fee8093e8ec59359972cf5b6bc65fc7c7cf38ae952351d91"
|
||||
url = "https://github.com/restic/restic/releases/download/v0.19.0/restic_0.19.0_linux_arm64.bz2"
|
||||
url_api = "https://api.github.com/repos/restic/restic/releases/assets/442897888"
|
||||
|
||||
[tools.restic."platforms.linux-arm64-musl"]
|
||||
checksum = "sha256:e522ce6bf748d753fee8093e8ec59359972cf5b6bc65fc7c7cf38ae952351d91"
|
||||
url = "https://github.com/restic/restic/releases/download/v0.19.0/restic_0.19.0_linux_arm64.bz2"
|
||||
url_api = "https://api.github.com/repos/restic/restic/releases/assets/442897888"
|
||||
|
||||
[tools.restic."platforms.linux-x64"]
|
||||
checksum = "sha256:13176fe6d89d4357947a2cd107218ab2873a5f9d8e1ac2d4cd1c8e07e6839c21"
|
||||
url = "https://github.com/restic/restic/releases/download/v0.19.0/restic_0.19.0_linux_amd64.bz2"
|
||||
url_api = "https://api.github.com/repos/restic/restic/releases/assets/442897993"
|
||||
|
||||
[tools.restic."platforms.linux-x64-musl"]
|
||||
checksum = "sha256:13176fe6d89d4357947a2cd107218ab2873a5f9d8e1ac2d4cd1c8e07e6839c21"
|
||||
url = "https://github.com/restic/restic/releases/download/v0.19.0/restic_0.19.0_linux_amd64.bz2"
|
||||
url_api = "https://api.github.com/repos/restic/restic/releases/assets/442897993"
|
||||
|
||||
[tools.restic."platforms.macos-arm64"]
|
||||
checksum = "sha256:1475397bf759ef4be16a77b19dec650bdbfec00d2cacd82005553411cdd37997"
|
||||
url = "https://github.com/restic/restic/releases/download/v0.19.0/restic_0.19.0_darwin_arm64.bz2"
|
||||
url_api = "https://api.github.com/repos/restic/restic/releases/assets/442898395"
|
||||
|
||||
[tools.restic."platforms.macos-x64"]
|
||||
checksum = "sha256:c9d9a71234bc0955fdba6da93cc9375f8793ec1e1cbce77a91014d536a969148"
|
||||
url = "https://github.com/restic/restic/releases/download/v0.19.0/restic_0.19.0_darwin_amd64.bz2"
|
||||
url_api = "https://api.github.com/repos/restic/restic/releases/assets/442898462"
|
||||
|
||||
[tools.restic."platforms.windows-x64"]
|
||||
checksum = "sha256:6fa4219a70b1b5d1c429bb106a7f97f3d2a5aab74494db2e490b625edc486d8f"
|
||||
url = "https://github.com/restic/restic/releases/download/v0.19.0/restic_0.19.0_windows_amd64.zip"
|
||||
url_api = "https://api.github.com/repos/restic/restic/releases/assets/442897166"
|
||||
|
||||
[[tools.terragrunt]]
|
||||
version = "1.2.0"
|
||||
backend = "aqua:gruntwork-io/terragrunt"
|
||||
@@ -304,30 +336,25 @@ specifiers = ["1.2.0"]
|
||||
|
||||
[tools.terragrunt."platforms.linux-arm64"]
|
||||
checksum = "sha256:1e13b7f0646fa7962bc6c5bfba14a30d6a589325b82561e21b66be5981d86395"
|
||||
checksum_source = "mise-versions"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.2.0/terragrunt_linux_arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/662437526"
|
||||
|
||||
[tools.terragrunt."platforms.linux-x64"]
|
||||
checksum = "sha256:23b5f2f9203d34919f7fd270a4b635b721b4903beca9762a1e4853b159bc9be8"
|
||||
checksum_source = "mise-versions"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.2.0/terragrunt_linux_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/662437263"
|
||||
|
||||
[tools.terragrunt."platforms.macos-arm64"]
|
||||
checksum = "sha256:79790d841ce71fe94c689fb6f5034afd31ad53d5904937c7a10934cca9d9734b"
|
||||
checksum_source = "mise-versions"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.2.0/terragrunt_darwin_arm64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/662436516"
|
||||
|
||||
[tools.terragrunt."platforms.macos-x64"]
|
||||
checksum = "sha256:0b0e63e80509eb1ffb4f89b892bc6fbf7728f27f0a73974400f1bd82a80b8627"
|
||||
checksum_source = "mise-versions"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.2.0/terragrunt_darwin_amd64.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/662436142"
|
||||
|
||||
[tools.terragrunt."platforms.windows-x64"]
|
||||
checksum = "sha256:c9a146b9aad456a289614023ad5778123d819af3cf9efd1c6130f196cfcb1999"
|
||||
checksum_source = "mise-versions"
|
||||
url = "https://github.com/gruntwork-io/terragrunt/releases/download/v1.2.0/terragrunt_windows_amd64.exe.tar.gz"
|
||||
url_api = "https://api.github.com/repos/gruntwork-io/terragrunt/releases/assets/662438255"
|
||||
|
||||
@@ -7,6 +7,7 @@ config_roots = [
|
||||
"packages/cli",
|
||||
"deployment",
|
||||
"mobile",
|
||||
"native",
|
||||
"e2e",
|
||||
"web",
|
||||
"docs",
|
||||
@@ -24,6 +25,7 @@ opentofu = "1.13.2"
|
||||
"github:extism/cli" = "1.6.3"
|
||||
"github:webassembly/binaryen" = "version_124"
|
||||
"github:extism/js-pdk" = "v1.7.0"
|
||||
restic = "0.19.0"
|
||||
java = "21.0.2"
|
||||
|
||||
[tools."github:jellyfin/jellyfin-ffmpeg"]
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# mobile/AGENTS.md
|
||||
|
||||
Flutter app with Riverpod, Drift (SQLite), auto_route, pigeon and a Rust core in `../native/`.
|
||||
|
||||
## Rules
|
||||
|
||||
- Run `mise //mobile:checkout` after switching branches. All generated Dart is git-ignored; never edit it.
|
||||
- New code follows `lib/domain/` (models, services, utils; no dependency on presentation or infrastructure) → `lib/infrastructure/repositories/` → `lib/presentation/`, wired by providers in `lib/providers/`. New data access goes in `lib/data/` (`lib/data/db/main/` holds the Drift database, `dao/`, `query/`, `table/`; `lib/data/server/` the API base).
|
||||
- Top-level `lib/pages`, `lib/widgets`, `lib/services`, `lib/repositories`, `lib/entities` are legacy; do not add to them.
|
||||
- Shared design-system widgets live in `packages/ui/` (`immich_ui`), with a preview per component in `lib/src/previews/`.
|
||||
|
||||
## Skills
|
||||
|
||||
- **Run codegen**: `mise //mobile:codegen` runs the Dart OpenAPI client, build_runner (`*.g.dart`, `*.freezed.dart`, `router.gr.dart`), Drift migrations and schema, ffigen, pigeon and translations. Run it after changing Drift tables, routes, pigeon definitions or freezed classes; `mise //mobile:codegen:watch` keeps build_runner running. CI job "Unit Test Mobile" regenerates and fails if the code does not compile.
|
||||
- **Change the local database**: edit tables in `lib/data/db/main/table/` and the `@DriftDatabase` in `lib/data/db/main/database.dart`, bump the schema version, then `mise //mobile:codegen:drift:migration` writes `database.steps.dart` and a snapshot in `drift_schemas/main/`. Add a step migration and a test in `test/drift/main/`.
|
||||
- **Add a platform channel**: define the API in `pigeon/<name>.dart`, run `mise //mobile:codegen:pigeon` to generate `lib/platform/<name>.g.dart` plus the Swift and Kotlin interfaces, then implement them in `ios/` and `android/`.
|
||||
- **Tests and lint**: `mise //mobile:test`; one file with `flutter test test/path/foo_test.dart`. Tests live under `test/{unit,medium,domain,infrastructure,drift,presentation}/`; `test/medium/` has `repository_context.dart` and `service_context.dart` for tests against a real Drift database. `mise //mobile:lint` runs the analyzer and DCM; `mise //mobile:lint-fix` fixes what it can.
|
||||
- **Preview a UI component**: `cd packages/ui && flutter widget-preview start` shows components from `lib/src/previews/` with a light/dark toggle.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# Immich Mobile Application - Flutter
|
||||
|
||||
The Immich mobile app is a Flutter-based solution leveraging the Isar Database for local storage and Riverpod for state management. This structure optimizes functionality and maintainability, allowing for efficient development and robust performance.
|
||||
The Immich mobile app is a Flutter-based solution leveraging the Drift (SQLite) database for local storage and Riverpod for state management. This structure optimizes functionality and maintainability, allowing for efficient development and robust performance.
|
||||
|
||||
## Setup
|
||||
|
||||
|
||||
@@ -31,6 +31,11 @@
|
||||
android:largeHeap="true" android:enableOnBackInvokedCallback="false" android:allowBackup="false"
|
||||
android:networkSecurityConfig="@xml/network_security_config">
|
||||
|
||||
<provider android:name=".files.FileVaultProvider"
|
||||
android:authorities="${applicationId}.files" android:exported="false" android:grantUriPermissions="true">
|
||||
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_vault_paths" />
|
||||
</provider>
|
||||
|
||||
<profileable android:shell="true" />
|
||||
<provider android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.updates" android:exported="false"
|
||||
@@ -95,6 +100,17 @@
|
||||
<data android:mimeType="video/*" />
|
||||
</intent-filter>
|
||||
|
||||
<intent-filter android:label="Immich">
|
||||
<action android:name="android.intent.action.SEND" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<data android:mimeType="*/*" />
|
||||
</intent-filter>
|
||||
<intent-filter android:label="Immich">
|
||||
<action android:name="android.intent.action.SEND_MULTIPLE" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<data android:mimeType="*/*" />
|
||||
</intent-filter>
|
||||
|
||||
<!-- Allow Immich to act as an image viewer -->
|
||||
<intent-filter android:label="View in Immich">
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
|
||||
@@ -1,81 +1,82 @@
|
||||
package app.alextran.immich
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.ext.SdkExtensions
|
||||
import app.alextran.immich.background.BackgroundEngineLock
|
||||
import app.alextran.immich.background.BackgroundWorkerApiImpl
|
||||
import app.alextran.immich.background.BackgroundWorkerFgHostApi
|
||||
import app.alextran.immich.background.BackgroundWorkerLockApi
|
||||
import app.alextran.immich.connectivity.ConnectivityApi
|
||||
import app.alextran.immich.connectivity.ConnectivityApiImpl
|
||||
import app.alextran.immich.core.HttpClientManager
|
||||
import app.alextran.immich.core.ImmichPlugin
|
||||
import app.alextran.immich.core.NetworkApiPlugin
|
||||
import me.albemala.native_video_player.NativeVideoPlayerPlugin
|
||||
import app.alextran.immich.images.LocalImageApi
|
||||
import app.alextran.immich.images.LocalImagesImpl
|
||||
import app.alextran.immich.images.RemoteImageApi
|
||||
import app.alextran.immich.images.RemoteImagesImpl
|
||||
import app.alextran.immich.permission.PermissionApi
|
||||
import app.alextran.immich.permission.PermissionApiImpl
|
||||
import app.alextran.immich.sync.NativeSyncApi
|
||||
import app.alextran.immich.sync.NativeSyncApiImpl26
|
||||
import app.alextran.immich.sync.NativeSyncApiImpl30
|
||||
import app.alextran.immich.viewintent.ViewIntentPlugin
|
||||
import io.flutter.embedding.android.FlutterFragmentActivity
|
||||
import io.flutter.embedding.engine.FlutterEngine
|
||||
|
||||
class MainActivity : FlutterFragmentActivity() {
|
||||
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
||||
super.configureFlutterEngine(flutterEngine)
|
||||
AppUpdateInstaller(this, flutterEngine.dartExecutor.binaryMessenger)
|
||||
registerPlugins(this, flutterEngine)
|
||||
}
|
||||
|
||||
override fun onNewIntent(intent: Intent) {
|
||||
super.onNewIntent(intent)
|
||||
setIntent(intent)
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun registerPlugins(ctx: Context, flutterEngine: FlutterEngine) {
|
||||
HttpClientManager.initialize(ctx)
|
||||
NativeVideoPlayerPlugin.dataSourceFactory = HttpClientManager::createDataSourceFactory
|
||||
flutterEngine.plugins.add(NetworkApiPlugin())
|
||||
|
||||
val messenger = flutterEngine.dartExecutor.binaryMessenger
|
||||
val backgroundEngineLockImpl = BackgroundEngineLock(ctx)
|
||||
BackgroundWorkerLockApi.setUp(messenger, backgroundEngineLockImpl)
|
||||
val nativeSyncApiImpl =
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R || SdkExtensions.getExtensionVersion(Build.VERSION_CODES.R) < 1) {
|
||||
NativeSyncApiImpl26(ctx)
|
||||
} else {
|
||||
NativeSyncApiImpl30(ctx)
|
||||
}
|
||||
val permissionApiImpl = PermissionApiImpl(ctx)
|
||||
NativeSyncApi.setUp(messenger, nativeSyncApiImpl)
|
||||
PermissionApi.setUp(messenger, permissionApiImpl)
|
||||
LocalImageApi.setUp(messenger, LocalImagesImpl(ctx))
|
||||
RemoteImageApi.setUp(messenger, RemoteImagesImpl(ctx))
|
||||
|
||||
BackgroundWorkerFgHostApi.setUp(messenger, BackgroundWorkerApiImpl(ctx))
|
||||
ConnectivityApi.setUp(messenger, ConnectivityApiImpl(ctx))
|
||||
|
||||
flutterEngine.plugins.add(ViewIntentPlugin())
|
||||
flutterEngine.plugins.add(backgroundEngineLockImpl)
|
||||
flutterEngine.plugins.add(nativeSyncApiImpl)
|
||||
flutterEngine.plugins.add(permissionApiImpl)
|
||||
}
|
||||
|
||||
fun cancelPlugins(flutterEngine: FlutterEngine) {
|
||||
val nativeApi =
|
||||
flutterEngine.plugins.get(NativeSyncApiImpl26::class.java) as ImmichPlugin?
|
||||
?: flutterEngine.plugins.get(NativeSyncApiImpl30::class.java) as ImmichPlugin?
|
||||
nativeApi?.detachFromEngine()
|
||||
val permissionApi = flutterEngine.plugins.get(PermissionApiImpl::class.java) as ImmichPlugin?
|
||||
permissionApi?.detachFromEngine()
|
||||
}
|
||||
}
|
||||
}
|
||||
package app.alextran.immich
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.ext.SdkExtensions
|
||||
import app.alextran.immich.background.BackgroundEngineLock
|
||||
import app.alextran.immich.background.BackgroundWorkerApiImpl
|
||||
import app.alextran.immich.background.BackgroundWorkerFgHostApi
|
||||
import app.alextran.immich.background.BackgroundWorkerLockApi
|
||||
import app.alextran.immich.connectivity.ConnectivityApi
|
||||
import app.alextran.immich.connectivity.ConnectivityApiImpl
|
||||
import app.alextran.immich.core.HttpClientManager
|
||||
import app.alextran.immich.core.ImmichPlugin
|
||||
import app.alextran.immich.core.NetworkApiPlugin
|
||||
import me.albemala.native_video_player.NativeVideoPlayerPlugin
|
||||
import app.alextran.immich.images.LocalImageApi
|
||||
import app.alextran.immich.images.LocalImagesImpl
|
||||
import app.alextran.immich.images.RemoteImageApi
|
||||
import app.alextran.immich.images.RemoteImagesImpl
|
||||
import app.alextran.immich.permission.PermissionApi
|
||||
import app.alextran.immich.permission.PermissionApiImpl
|
||||
import app.alextran.immich.sync.NativeSyncApi
|
||||
import app.alextran.immich.sync.NativeSyncApiImpl26
|
||||
import app.alextran.immich.sync.NativeSyncApiImpl30
|
||||
import app.alextran.immich.viewintent.ViewIntentPlugin
|
||||
import io.flutter.embedding.android.FlutterFragmentActivity
|
||||
import io.flutter.embedding.engine.FlutterEngine
|
||||
|
||||
class MainActivity : FlutterFragmentActivity() {
|
||||
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
|
||||
super.configureFlutterEngine(flutterEngine)
|
||||
AppUpdateInstaller(this, flutterEngine.dartExecutor.binaryMessenger)
|
||||
flutterEngine.plugins.add(app.alextran.immich.files.FileVaultPlugin())
|
||||
registerPlugins(this, flutterEngine)
|
||||
}
|
||||
|
||||
override fun onNewIntent(intent: Intent) {
|
||||
super.onNewIntent(intent)
|
||||
setIntent(intent)
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun registerPlugins(ctx: Context, flutterEngine: FlutterEngine) {
|
||||
HttpClientManager.initialize(ctx)
|
||||
NativeVideoPlayerPlugin.dataSourceFactory = HttpClientManager::createDataSourceFactory
|
||||
flutterEngine.plugins.add(NetworkApiPlugin())
|
||||
|
||||
val messenger = flutterEngine.dartExecutor.binaryMessenger
|
||||
val backgroundEngineLockImpl = BackgroundEngineLock(ctx)
|
||||
BackgroundWorkerLockApi.setUp(messenger, backgroundEngineLockImpl)
|
||||
val nativeSyncApiImpl =
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R || SdkExtensions.getExtensionVersion(Build.VERSION_CODES.R) < 1) {
|
||||
NativeSyncApiImpl26(ctx)
|
||||
} else {
|
||||
NativeSyncApiImpl30(ctx)
|
||||
}
|
||||
val permissionApiImpl = PermissionApiImpl(ctx)
|
||||
NativeSyncApi.setUp(messenger, nativeSyncApiImpl)
|
||||
PermissionApi.setUp(messenger, permissionApiImpl)
|
||||
LocalImageApi.setUp(messenger, LocalImagesImpl(ctx))
|
||||
RemoteImageApi.setUp(messenger, RemoteImagesImpl(ctx))
|
||||
|
||||
BackgroundWorkerFgHostApi.setUp(messenger, BackgroundWorkerApiImpl(ctx))
|
||||
ConnectivityApi.setUp(messenger, ConnectivityApiImpl(ctx))
|
||||
|
||||
flutterEngine.plugins.add(ViewIntentPlugin())
|
||||
flutterEngine.plugins.add(backgroundEngineLockImpl)
|
||||
flutterEngine.plugins.add(nativeSyncApiImpl)
|
||||
flutterEngine.plugins.add(permissionApiImpl)
|
||||
}
|
||||
|
||||
fun cancelPlugins(flutterEngine: FlutterEngine) {
|
||||
val nativeApi =
|
||||
flutterEngine.plugins.get(NativeSyncApiImpl26::class.java) as ImmichPlugin?
|
||||
?: flutterEngine.plugins.get(NativeSyncApiImpl30::class.java) as ImmichPlugin?
|
||||
nativeApi?.detachFromEngine()
|
||||
val permissionApi = flutterEngine.plugins.get(PermissionApiImpl::class.java) as ImmichPlugin?
|
||||
permissionApi?.detachFromEngine()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,158 @@
|
||||
package app.alextran.immich.files
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.provider.OpenableColumns
|
||||
import android.webkit.MimeTypeMap
|
||||
import androidx.core.content.FileProvider
|
||||
import io.flutter.embedding.engine.plugins.FlutterPlugin
|
||||
import io.flutter.embedding.engine.plugins.activity.ActivityAware
|
||||
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding
|
||||
import io.flutter.plugin.common.PluginRegistry.ActivityResultListener
|
||||
import java.io.File
|
||||
import java.util.UUID
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
class FileVaultPlugin : FlutterPlugin, ActivityAware, ActivityResultListener, FileVaultPlatform {
|
||||
private lateinit var context: Context
|
||||
private lateinit var scope: CoroutineScope
|
||||
private var activityBinding: ActivityPluginBinding? = null
|
||||
private var pendingPick: ((Result<List<VaultPickedFile>>) -> Unit)? = null
|
||||
private var pendingSave: ((Result<Boolean>) -> Unit)? = null
|
||||
private var sourceToSave: File? = null
|
||||
|
||||
override fun onAttachedToEngine(binding: FlutterPlugin.FlutterPluginBinding) {
|
||||
context = binding.applicationContext
|
||||
scope = CoroutineScope(SupervisorJob() + Dispatchers.Main.immediate)
|
||||
FileVaultPlatform.setUp(binding.binaryMessenger, this)
|
||||
}
|
||||
|
||||
override fun onDetachedFromEngine(binding: FlutterPlugin.FlutterPluginBinding) {
|
||||
finishPending()
|
||||
scope.cancel()
|
||||
FileVaultPlatform.setUp(binding.binaryMessenger, null)
|
||||
}
|
||||
|
||||
override fun onAttachedToActivity(binding: ActivityPluginBinding) {
|
||||
activityBinding = binding
|
||||
binding.addActivityResultListener(this)
|
||||
}
|
||||
|
||||
override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) = onAttachedToActivity(binding)
|
||||
|
||||
override fun onDetachedFromActivityForConfigChanges() {
|
||||
activityBinding?.removeActivityResultListener(this)
|
||||
activityBinding = null
|
||||
}
|
||||
|
||||
override fun onDetachedFromActivity() {
|
||||
onDetachedFromActivityForConfigChanges()
|
||||
finishPending()
|
||||
}
|
||||
|
||||
private fun finishPending() {
|
||||
pendingPick?.invoke(Result.success(emptyList()))
|
||||
pendingSave?.invoke(Result.success(false))
|
||||
pendingPick = null
|
||||
pendingSave = null
|
||||
sourceToSave = null
|
||||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?): Boolean {
|
||||
when (requestCode) {
|
||||
PICK_FILES -> {
|
||||
val callback = pendingPick ?: return true
|
||||
pendingPick = null
|
||||
if (resultCode != Activity.RESULT_OK) { callback(Result.success(emptyList())); return true }
|
||||
val uris = data?.clipData?.let { clip -> (0 until clip.itemCount).map { clip.getItemAt(it).uri } }
|
||||
?: listOfNotNull(data?.data)
|
||||
scope.launch {
|
||||
val result = withContext(Dispatchers.IO) {
|
||||
val created = mutableListOf<File>()
|
||||
runCatching {
|
||||
uris.map { uri ->
|
||||
val name = context.contentResolver.query(uri, arrayOf(OpenableColumns.DISPLAY_NAME), null, null, null)?.use { cursor ->
|
||||
if (cursor.moveToFirst()) cursor.getString(0) else null
|
||||
} ?: "file"
|
||||
val directory = File(context.cacheDir, "file-vault-upload/${UUID.randomUUID()}").apply { mkdirs() }
|
||||
created.add(directory)
|
||||
val target = File(directory, File(name).name)
|
||||
context.contentResolver.openInputStream(uri)?.use { input -> target.outputStream().use { output -> input.copyTo(output) } }
|
||||
?: throw IllegalStateException("Cannot read the selected file")
|
||||
VaultPickedFile(target.absolutePath, name)
|
||||
}
|
||||
}.onFailure { created.forEach { it.deleteRecursively() } }
|
||||
}
|
||||
callback(result)
|
||||
}
|
||||
return true
|
||||
}
|
||||
SAVE_FILE -> {
|
||||
val callback = pendingSave ?: return true
|
||||
val source = sourceToSave
|
||||
pendingSave = null
|
||||
sourceToSave = null
|
||||
val uri = data?.data
|
||||
if (resultCode != Activity.RESULT_OK || uri == null || source == null) { callback(Result.success(false)); return true }
|
||||
scope.launch {
|
||||
val result = withContext(Dispatchers.IO) {
|
||||
runCatching {
|
||||
context.contentResolver.openOutputStream(uri, "wt")?.use { output -> source.inputStream().use { input -> input.copyTo(output) } }
|
||||
?: throw IllegalStateException("Cannot write the selected file")
|
||||
true
|
||||
}
|
||||
}
|
||||
callback(result)
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
override fun pickFiles(callback: (Result<List<VaultPickedFile>>) -> Unit) {
|
||||
if (pendingPick != null) { callback(Result.failure(IllegalStateException("File picker is already open"))); return }
|
||||
try {
|
||||
val activity = activityBinding?.activity ?: throw IllegalStateException("No active activity")
|
||||
pendingPick = callback
|
||||
activity.startActivityForResult(Intent(Intent.ACTION_OPEN_DOCUMENT).apply { addCategory(Intent.CATEGORY_OPENABLE); type = "*/*"; putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true) }, PICK_FILES)
|
||||
} catch (error: Exception) { pendingPick = null; callback(Result.failure(error)) }
|
||||
}
|
||||
|
||||
private fun downloadedFile(path: String): File {
|
||||
val root = File(context.cacheDir, "file-vault-downloads").canonicalFile
|
||||
val file = File(path).canonicalFile
|
||||
require(file.path.startsWith(root.path + File.separator) && file.isFile) { "Invalid download path" }
|
||||
return file
|
||||
}
|
||||
|
||||
override fun saveFile(sourcePath: String, suggestedName: String, callback: (Result<Boolean>) -> Unit) {
|
||||
if (pendingSave != null) { callback(Result.failure(IllegalStateException("Save dialog is already open"))); return }
|
||||
try {
|
||||
val activity = activityBinding?.activity ?: throw IllegalStateException("No active activity")
|
||||
sourceToSave = downloadedFile(sourcePath)
|
||||
pendingSave = callback
|
||||
activity.startActivityForResult(Intent(Intent.ACTION_CREATE_DOCUMENT).apply { addCategory(Intent.CATEGORY_OPENABLE); type = "application/octet-stream"; putExtra(Intent.EXTRA_TITLE, suggestedName) }, SAVE_FILE)
|
||||
} catch (error: Exception) { pendingSave = null; sourceToSave = null; callback(Result.failure(error)) }
|
||||
}
|
||||
|
||||
override fun openFile(sourcePath: String, suggestedName: String) {
|
||||
val activity = activityBinding?.activity ?: throw IllegalStateException("No active activity")
|
||||
val file = downloadedFile(sourcePath)
|
||||
val uri = FileProvider.getUriForFile(context, context.packageName + ".files", file)
|
||||
val mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(suggestedName.substringAfterLast('.', "").lowercase()) ?: "application/octet-stream"
|
||||
val intent = Intent(Intent.ACTION_VIEW).apply { setDataAndType(uri, mime); addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) }
|
||||
activity.startActivity(Intent.createChooser(intent, suggestedName))
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val PICK_FILES = 62465
|
||||
private const val SAVE_FILE = 62466
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package app.alextran.immich.files
|
||||
|
||||
import androidx.core.content.FileProvider
|
||||
|
||||
class FileVaultProvider : FileProvider()
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<paths xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<cache-path name="file_vault_downloads" path="file-vault-downloads/" />
|
||||
</paths>
|
||||
@@ -22,8 +22,8 @@ platform :android do
|
||||
task: 'bundle',
|
||||
build_type: 'Release',
|
||||
properties: {
|
||||
"android.injected.version.code" => 3030399,
|
||||
"android.injected.version.name" => "3.3.3",
|
||||
"android.injected.version.code" => 3040001,
|
||||
"android.injected.version.name" => "3.4.0-local.1",
|
||||
}
|
||||
)
|
||||
upload_to_play_store(skip_upload_apk: true, skip_upload_images: true, skip_upload_screenshots: true, aab: '../build/app/outputs/bundle/release/app-release.aab', track: 'beta')
|
||||
@@ -35,8 +35,8 @@ platform :android do
|
||||
task: 'bundle',
|
||||
build_type: 'Release',
|
||||
properties: {
|
||||
"android.injected.version.code" => 3030399,
|
||||
"android.injected.version.name" => "3.3.3",
|
||||
"android.injected.version.code" => 3040001,
|
||||
"android.injected.version.name" => "3.4.0-local.1",
|
||||
}
|
||||
)
|
||||
upload_to_play_store(skip_upload_apk: true, skip_upload_images: true, skip_upload_screenshots: true, aab: '../build/app/outputs/bundle/release/app-release.aab')
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import Accelerate
|
||||
import Foundation
|
||||
|
||||
enum ImageProcessing {
|
||||
@@ -11,4 +12,22 @@ enum ImageProcessing {
|
||||
static let cancelledResult = Result<[String: Int64]?, any Error>.success(nil)
|
||||
// Impeller shrinks each side to the GPU texture limit on its own, which squishes long images.
|
||||
static let maxPixelSize = 16384
|
||||
|
||||
static func rgbaBuffer(_ image: CGImage, format: vImage_CGImageFormat) throws -> vImage_Buffer {
|
||||
guard image.bitsPerComponent == 10 else {
|
||||
return try vImage_Buffer(cgImage: image, format: format)
|
||||
}
|
||||
|
||||
// vImage can't convert packed 10-bit images.
|
||||
let buffer = try vImage_Buffer(width: image.width, height: image.height, bitsPerPixel: format.bitsPerPixel)
|
||||
guard let context = CGContext(data: buffer.data, width: image.width, height: image.height, bitsPerComponent: Int(format.bitsPerComponent), bytesPerRow: buffer.rowBytes, space: format.colorSpace.takeUnretainedValue(), bitmapInfo: format.bitmapInfo.rawValue) else {
|
||||
buffer.free()
|
||||
throw vImage.Error.invalidImageFormat
|
||||
}
|
||||
|
||||
context.setRenderingIntent(format.renderingIntent)
|
||||
context.setBlendMode(.copy)
|
||||
context.draw(image, in: CGRect(x: 0, y: 0, width: image.width, height: image.height))
|
||||
return buffer
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ class LocalImageApiImpl: LocalImageApi {
|
||||
}
|
||||
|
||||
do {
|
||||
let buffer = try vImage_Buffer(cgImage: cgImage, format: Self.rgbaFormat)
|
||||
let buffer = try ImageProcessing.rgbaBuffer(cgImage, format: Self.rgbaFormat)
|
||||
|
||||
if request.isCancelled {
|
||||
buffer.free()
|
||||
|
||||
@@ -148,7 +148,7 @@ class RemoteImageApiImpl: NSObject, RemoteImageApi {
|
||||
}
|
||||
|
||||
do {
|
||||
let buffer = try vImage_Buffer(cgImage: cgImage, format: rgbaFormat)
|
||||
let buffer = try ImageProcessing.rgbaBuffer(cgImage, format: rgbaFormat)
|
||||
|
||||
if request.isCancelled {
|
||||
buffer.free()
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.3.3</string>
|
||||
<string>3.4.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:crypto/crypto.dart';
|
||||
import 'package:http/http.dart' as http;
|
||||
import 'package:immich_mobile/domain/models/file_vault.model.dart';
|
||||
import 'package:immich_mobile/platform/file_vault_api.g.dart';
|
||||
import 'package:immich_mobile/services/api.service.dart';
|
||||
import 'package:openapi/api.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
|
||||
class FileVaultApiData {
|
||||
FileVaultApiData(this._apiService, this.platform, {Future<Directory> Function()? temporaryDirectory, this.onChanged})
|
||||
: _temporaryDirectory = temporaryDirectory ?? getTemporaryDirectory;
|
||||
|
||||
final ApiService _apiService;
|
||||
final FileVaultPlatform platform;
|
||||
final Future<Directory> Function() _temporaryDirectory;
|
||||
final void Function()? onChanged;
|
||||
FileVaultApi get _api => FileVaultApi(_apiService.apiClient);
|
||||
|
||||
VaultEntry _entry(FileVaultEntryDto dto) => VaultEntry(
|
||||
id: dto.id,
|
||||
name: dto.name,
|
||||
parentId: dto.parentId,
|
||||
isFolder: dto.isFolder,
|
||||
size: dto.size,
|
||||
checksum: dto.checksum,
|
||||
);
|
||||
VaultFolder _folder(FileVaultFolderDto dto) => VaultFolder(id: dto.id, name: dto.name, parentId: dto.parentId);
|
||||
|
||||
Future<VaultListing> list({String? parentId, bool trash = false, int offset = 0}) async {
|
||||
final dto = await _api.listFiles(parentId: parentId, trash: trash ? 'true' : 'false', offset: offset);
|
||||
if (dto == null) {
|
||||
throw const FormatException('Empty file listing');
|
||||
}
|
||||
return VaultListing(
|
||||
entries: dto.entries.map(_entry).toList(),
|
||||
breadcrumbs: dto.breadcrumbs.map(_folder).toList(),
|
||||
hasMore: dto.hasMore,
|
||||
usedBytes: dto.usedBytes,
|
||||
maxFileBytes: dto.maxFileBytes,
|
||||
);
|
||||
}
|
||||
|
||||
Future<List<VaultFolder>> folders() async => (await _api.listFileFolders() ?? []).map(_folder).toList();
|
||||
Future<void> createFolder(String name, String? parentId) async {
|
||||
await _api.createFileFolder(FileVaultCreateFolderDto(name: name, parentId: Optional.present(parentId)));
|
||||
onChanged?.call();
|
||||
}
|
||||
|
||||
Future<void> rename(String id, String name) async {
|
||||
await _api.updateFile(id, FileVaultUpdateDto(name: Optional.present(name)));
|
||||
onChanged?.call();
|
||||
}
|
||||
|
||||
Future<void> move(String id, String? parentId) async {
|
||||
await _api.updateFile(id, FileVaultUpdateDto(parentId: Optional.present(parentId)));
|
||||
onChanged?.call();
|
||||
}
|
||||
|
||||
Future<void> trash(String id) async {
|
||||
await _api.trashFile(id);
|
||||
onChanged?.call();
|
||||
}
|
||||
|
||||
Future<void> restore(String id) async {
|
||||
await _api.restoreFile(id);
|
||||
onChanged?.call();
|
||||
}
|
||||
|
||||
Future<void> purge(String id) async {
|
||||
await _api.permanentlyDeleteFile(id);
|
||||
onChanged?.call();
|
||||
}
|
||||
|
||||
Future<void> upload(String path, String name, String? parentId, void Function(int, int) onProgress) async {
|
||||
final file = File(path);
|
||||
final length = await file.length();
|
||||
var sent = 0;
|
||||
final body = http.MultipartFile(
|
||||
'file',
|
||||
file.openRead().map((chunk) {
|
||||
sent += chunk.length;
|
||||
onProgress(sent, length);
|
||||
return chunk;
|
||||
}),
|
||||
length,
|
||||
filename: name,
|
||||
);
|
||||
final response = await _apiService.apiClient.invokeAPI(
|
||||
'/file-vault/upload',
|
||||
'POST',
|
||||
[QueryParam('name', name), if (parentId != null) QueryParam('parentId', parentId)],
|
||||
body,
|
||||
{},
|
||||
{},
|
||||
'application/octet-stream',
|
||||
);
|
||||
if (response.statusCode < 200 || response.statusCode >= 300) {
|
||||
throw ApiException(response.statusCode, utf8.decode(response.bodyBytes));
|
||||
}
|
||||
final dto = FileVaultEntryDto.fromJson(jsonDecode(utf8.decode(response.bodyBytes)));
|
||||
if (dto == null) {
|
||||
throw const FormatException('Missing upload response');
|
||||
}
|
||||
onChanged?.call();
|
||||
final hash = await sha256.bind(file.openRead()).first;
|
||||
if (dto.checksum != hash.toString()) {
|
||||
throw const FormatException('File integrity verification failed');
|
||||
}
|
||||
}
|
||||
|
||||
Future<File> download(VaultEntry entry, void Function(int, int) onProgress) async {
|
||||
if (!RegExp(r'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$').hasMatch(entry.id) ||
|
||||
entry.size < 0) {
|
||||
throw const FormatException('Invalid file metadata');
|
||||
}
|
||||
final temporary = await _temporaryDirectory();
|
||||
final directory = Directory(p.join(temporary.path, 'file-vault-downloads', entry.id));
|
||||
await directory.create(recursive: true);
|
||||
final target = File(p.join(directory.path, p.basename(entry.name) + (entry.isFolder ? '.zip' : '')));
|
||||
final partial = File('${target.path}.part');
|
||||
final request = http.Request('GET', Uri.parse('${_apiService.apiClient.basePath}/file-vault/${entry.id}/download'));
|
||||
request.headers.addAll(_apiService.apiClient.defaultHeaderMap);
|
||||
final response = await _apiService.apiClient.client.send(request);
|
||||
if (response.statusCode != 200) {
|
||||
await response.stream.drain<void>();
|
||||
throw ApiException(response.statusCode, 'Download failed');
|
||||
}
|
||||
var received = 0;
|
||||
final output = partial.openWrite();
|
||||
try {
|
||||
await output.addStream(
|
||||
response.stream.map((chunk) {
|
||||
received += chunk.length;
|
||||
if (!entry.isFolder && received > entry.size) {
|
||||
throw const FormatException('Download exceeds the expected size');
|
||||
}
|
||||
onProgress(received, entry.size);
|
||||
return chunk;
|
||||
}),
|
||||
);
|
||||
await output.flush();
|
||||
await output.close();
|
||||
final hash = await sha256.bind(partial.openRead()).first;
|
||||
if (entry.isFolder ? received == 0 : received != entry.size || hash.toString() != entry.checksum) {
|
||||
throw const FormatException('File integrity verification failed');
|
||||
}
|
||||
return await partial.rename(target.path);
|
||||
} catch (_) {
|
||||
await output.close();
|
||||
if (partial.existsSync()) {
|
||||
await partial.delete();
|
||||
}
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
class VaultEntry {
|
||||
const VaultEntry({
|
||||
required this.id,
|
||||
required this.name,
|
||||
required this.parentId,
|
||||
required this.isFolder,
|
||||
required this.size,
|
||||
required this.checksum,
|
||||
});
|
||||
|
||||
final String id;
|
||||
final String name;
|
||||
final String? parentId;
|
||||
final bool isFolder;
|
||||
final int size;
|
||||
final String? checksum;
|
||||
}
|
||||
|
||||
class VaultFolder {
|
||||
const VaultFolder({required this.id, required this.name, required this.parentId});
|
||||
|
||||
final String id;
|
||||
final String name;
|
||||
final String? parentId;
|
||||
}
|
||||
|
||||
class VaultListing {
|
||||
const VaultListing({
|
||||
required this.entries,
|
||||
required this.breadcrumbs,
|
||||
required this.hasMore,
|
||||
required this.usedBytes,
|
||||
required this.maxFileBytes,
|
||||
});
|
||||
|
||||
final List<VaultEntry> entries;
|
||||
final List<VaultFolder> breadcrumbs;
|
||||
final bool hasMore;
|
||||
final int usedBytes;
|
||||
final int maxFileBytes;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:immich_mobile/data/server/file_vault_api.dart';
|
||||
import 'package:immich_mobile/platform/file_vault_api.g.dart';
|
||||
import 'package:immich_mobile/providers/api.provider.dart';
|
||||
|
||||
final fileVaultRevisionProvider = StateProvider<int>((_) => 0);
|
||||
final fileVaultRepositoryProvider = Provider(
|
||||
(ref) => FileVaultApiData(
|
||||
ref.watch(apiServiceProvider),
|
||||
FileVaultPlatform(),
|
||||
onChanged: () => ref.read(fileVaultRevisionProvider.notifier).state++,
|
||||
),
|
||||
);
|
||||
@@ -923,7 +923,7 @@ class SyncStreamRepository extends DatabaseAccessor<Drift> with $SyncStreamRepos
|
||||
try {
|
||||
await _db.batch((batch) {
|
||||
for (final assetOcr in data) {
|
||||
batch.deleteWhere(_db.assetOcrEntity, (row) => row.id.equals(assetOcr.id));
|
||||
batch.deleteWhere(_db.assetOcrEntity, (row) => row.assetId.equals(assetOcr.assetId));
|
||||
}
|
||||
});
|
||||
} catch (error, stack) {
|
||||
|
||||
@@ -6,7 +6,7 @@ import 'package:path/path.dart';
|
||||
|
||||
part 'share_intent_attachment.model.freezed.dart';
|
||||
|
||||
enum ShareIntentAttachmentType { image, video }
|
||||
enum ShareIntentAttachmentType { image, video, file }
|
||||
|
||||
enum UploadStatus { enqueued, running, complete, failed }
|
||||
|
||||
|
||||
@@ -299,7 +299,7 @@ class SplashScreenPageState extends ConsumerState<SplashScreenPage> {
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
unawaited(ref.read(authProvider.notifier).setOpenApiServiceEndpoint().whenComplete(() => resumeSession()));
|
||||
unawaited(resumeSession());
|
||||
}
|
||||
|
||||
Future<void> resumeSession() async {
|
||||
@@ -314,13 +314,28 @@ class SplashScreenPageState extends ConsumerState<SplashScreenPage> {
|
||||
final backupNotifier = ref.read(backupProvider.notifier);
|
||||
final lifeCycle = ref.read(appStateProvider.notifier);
|
||||
final viewIntentHandler = ref.read(viewIntentHandlerProvider);
|
||||
final authNotifier = ref.read(authProvider.notifier);
|
||||
|
||||
unawaited(
|
||||
ref
|
||||
.read(authProvider.notifier)
|
||||
.saveAuthInfo(accessToken: accessToken)
|
||||
authNotifier
|
||||
.setOpenApiServiceEndpoint()
|
||||
.catchError((Object error, StackTrace stackTrace) {
|
||||
log.warning('Failed to resolve server endpoint', error, stackTrace);
|
||||
return null;
|
||||
})
|
||||
.then((_) async {
|
||||
if (Store.tryGet(StoreKey.accessToken) != accessToken) {
|
||||
return false;
|
||||
}
|
||||
await authNotifier.saveAuthInfo(accessToken: accessToken);
|
||||
return true;
|
||||
})
|
||||
.then(
|
||||
(_) async {
|
||||
(sessionResumed) async {
|
||||
if (!sessionResumed) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
wsProvider.connect();
|
||||
unawaited(infoProvider.getServerInfo());
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
@@ -9,6 +10,7 @@ import 'package:immich_mobile/domain/utils/event_stream.dart';
|
||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||
import 'package:immich_mobile/generated/translations.g.dart';
|
||||
import 'package:immich_mobile/presentation/pages/search/paginated_search.provider.dart';
|
||||
import 'package:immich_mobile/presentation/utils/file_vault_labels.dart';
|
||||
import 'package:immich_mobile/providers/haptic_feedback.provider.dart';
|
||||
import 'package:immich_mobile/providers/infrastructure/album.provider.dart';
|
||||
import 'package:immich_mobile/providers/infrastructure/memory.provider.dart';
|
||||
@@ -55,6 +57,13 @@ class _TabShellPageState extends ConsumerState<TabShellPage> {
|
||||
selectedIcon: Icon(Icons.space_dashboard_rounded, color: context.primaryColor),
|
||||
enabled: !isReadonlyModeEnabled,
|
||||
),
|
||||
if (Platform.isAndroid)
|
||||
NavigationDestination(
|
||||
label: FileVaultLabels(Localizations.localeOf(context).languageCode).text('title'),
|
||||
icon: const Icon(Icons.folder_outlined),
|
||||
selectedIcon: Icon(Icons.folder, color: context.primaryColor),
|
||||
enabled: !isReadonlyModeEnabled,
|
||||
),
|
||||
];
|
||||
|
||||
Widget navigationRail(TabsRouter tabsRouter) {
|
||||
@@ -77,7 +86,13 @@ class _TabShellPageState extends ConsumerState<TabShellPage> {
|
||||
}
|
||||
|
||||
return AutoTabsRouter(
|
||||
routes: const [MainTimelineRoute(), SearchRoute(), AlbumsRoute(), LibraryRoute()],
|
||||
routes: [
|
||||
const MainTimelineRoute(),
|
||||
const SearchRoute(),
|
||||
const AlbumsRoute(),
|
||||
const LibraryRoute(),
|
||||
if (Platform.isAndroid) FileVaultRoute(),
|
||||
],
|
||||
duration: const Duration(milliseconds: 600),
|
||||
transitionBuilder: (context, child, animation) => FadeTransition(opacity: animation, child: child),
|
||||
builder: (context, child) {
|
||||
|
||||
@@ -0,0 +1,535 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:auto_route/auto_route.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||
import 'package:immich_mobile/domain/models/file_vault.model.dart';
|
||||
import 'package:immich_mobile/infrastructure/repositories/file_vault.repository.dart';
|
||||
import 'package:immich_mobile/presentation/utils/file_vault_labels.dart';
|
||||
import 'package:openapi/api.dart';
|
||||
import 'package:path/path.dart' as p;
|
||||
|
||||
@RoutePage()
|
||||
class FileVaultPage extends ConsumerStatefulWidget {
|
||||
const FileVaultPage({super.key, this.incomingPaths = const []});
|
||||
|
||||
final List<String> incomingPaths;
|
||||
|
||||
@override
|
||||
ConsumerState<FileVaultPage> createState() => _FileVaultPageState();
|
||||
}
|
||||
|
||||
class _FileVaultPageState extends ConsumerState<FileVaultPage> {
|
||||
VaultListing? _listing;
|
||||
String? _folderId;
|
||||
bool _trash = false;
|
||||
bool _busy = false;
|
||||
int _offset = 0;
|
||||
int _generation = 0;
|
||||
String? _error;
|
||||
String? _progress;
|
||||
late List<String> _incoming;
|
||||
FileVaultLabels get _labels => FileVaultLabels(Localizations.localeOf(context).languageCode);
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_incoming = [...widget.incomingPaths];
|
||||
ref.listenManual(fileVaultRevisionProvider, (_, _) => unawaited(_load()));
|
||||
unawaited(Future.microtask(_load));
|
||||
}
|
||||
|
||||
Future<void> _load() async {
|
||||
final generation = ++_generation;
|
||||
try {
|
||||
final listing = await ref
|
||||
.read(fileVaultRepositoryProvider)
|
||||
.list(parentId: _folderId, trash: _trash, offset: _offset);
|
||||
if (mounted && generation == _generation) {
|
||||
setState(() {
|
||||
_listing = listing;
|
||||
_error = null;
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
if (mounted && generation == _generation) {
|
||||
_showError(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void _showError(Object error) {
|
||||
final status = error is ApiException ? error.code : 0;
|
||||
setState(
|
||||
() => _error = _labels.text(
|
||||
status == 409
|
||||
? 'conflict'
|
||||
: status == 404
|
||||
? 'unavailable'
|
||||
: status == 413 || status == 507
|
||||
? 'quota'
|
||||
: status == 400
|
||||
? 'invalid'
|
||||
: 'error',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<void> _run(Future<void> Function() action) async {
|
||||
if (_busy) {
|
||||
return;
|
||||
}
|
||||
setState(() {
|
||||
_busy = true;
|
||||
_error = null;
|
||||
});
|
||||
try {
|
||||
await action();
|
||||
if (mounted) {
|
||||
await _load();
|
||||
}
|
||||
} catch (error) {
|
||||
if (mounted) {
|
||||
_showError(error);
|
||||
}
|
||||
} finally {
|
||||
if (mounted) {
|
||||
setState(() {
|
||||
_busy = false;
|
||||
_progress = null;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void _navigate(String? folderId, {bool trash = false, int offset = 0}) {
|
||||
if (_busy) {
|
||||
return;
|
||||
}
|
||||
setState(() {
|
||||
_folderId = folderId;
|
||||
_trash = trash;
|
||||
_offset = offset;
|
||||
_listing = null;
|
||||
});
|
||||
unawaited(_load());
|
||||
}
|
||||
|
||||
String _size(int bytes) {
|
||||
if (bytes < 1024) {
|
||||
return '$bytes ${_labels.text('byte_unit')}';
|
||||
}
|
||||
final unit = bytes >= 1024 * 1024 * 1024
|
||||
? 'GiB'
|
||||
: bytes >= 1024 * 1024
|
||||
? 'MiB'
|
||||
: 'KiB';
|
||||
final divisor = unit == 'GiB'
|
||||
? 1024 * 1024 * 1024
|
||||
: unit == 'MiB'
|
||||
? 1024 * 1024
|
||||
: 1024;
|
||||
return '${(bytes / divisor).toStringAsFixed(1)} $unit';
|
||||
}
|
||||
|
||||
Future<String?> _askName(String title, {String initial = ''}) async {
|
||||
final controller = TextEditingController(text: initial);
|
||||
try {
|
||||
return await showDialog<String>(
|
||||
context: context,
|
||||
builder: (dialogContext) => AlertDialog(
|
||||
title: Text(title),
|
||||
content: TextField(
|
||||
controller: controller,
|
||||
autofocus: true,
|
||||
maxLength: 240,
|
||||
decoration: InputDecoration(labelText: _labels.text('name')),
|
||||
onSubmitted: (value) {
|
||||
if (value.trim().isNotEmpty) {
|
||||
Navigator.pop(dialogContext, value.trim());
|
||||
}
|
||||
},
|
||||
),
|
||||
actions: [
|
||||
TextButton(onPressed: () => Navigator.pop(dialogContext), child: Text(_labels.text('cancel'))),
|
||||
FilledButton(
|
||||
onPressed: () {
|
||||
if (controller.text.trim().isNotEmpty) {
|
||||
Navigator.pop(dialogContext, controller.text.trim());
|
||||
}
|
||||
},
|
||||
child: Text(_labels.text('confirm')),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
} finally {
|
||||
controller.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
Future<bool> _confirm(VaultEntry entry, bool permanent) async =>
|
||||
await showDialog<bool>(
|
||||
context: context,
|
||||
builder: (dialogContext) => AlertDialog(
|
||||
title: Text(_labels.text(permanent ? 'purge' : 'trash')),
|
||||
content: Text('${entry.name}\n\n${_labels.text(permanent ? 'purge_confirm' : 'trash_confirm')}'),
|
||||
actions: [
|
||||
TextButton(onPressed: () => Navigator.pop(dialogContext, false), child: Text(_labels.text('cancel'))),
|
||||
FilledButton(onPressed: () => Navigator.pop(dialogContext, true), child: Text(_labels.text('confirm'))),
|
||||
],
|
||||
),
|
||||
) ??
|
||||
false;
|
||||
|
||||
Future<void> _createFolder() async {
|
||||
final name = await _askName(_labels.text('new_folder'));
|
||||
if (name != null && mounted) {
|
||||
await _run(() => ref.read(fileVaultRepositoryProvider).createFolder(name, _folderId));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _pickFiles() async {
|
||||
await _run(() async {
|
||||
final repository = ref.read(fileVaultRepositoryProvider);
|
||||
final files = await repository.platform.pickFiles();
|
||||
try {
|
||||
for (var index = 0; index < files.length; index++) {
|
||||
final file = files[index];
|
||||
if (!mounted) {
|
||||
break;
|
||||
}
|
||||
await repository.upload(file.path, file.name, _folderId, (bytes, total) {
|
||||
if (mounted) {
|
||||
setState(
|
||||
() => _progress =
|
||||
'${index + 1}/${files.length} · ${file.name} · ${total > 0 ? bytes * 100 ~/ total : 0}%',
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
} finally {
|
||||
for (final file in files) {
|
||||
final temporary = File(file.path);
|
||||
if (temporary.existsSync()) {
|
||||
await temporary.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _uploadIncoming() async {
|
||||
await _run(() async {
|
||||
final repository = ref.read(fileVaultRepositoryProvider);
|
||||
while (_incoming.isNotEmpty) {
|
||||
final path = _incoming.first;
|
||||
final name = p.basename(path);
|
||||
await repository.upload(path, name, _folderId, (bytes, total) {
|
||||
if (mounted) {
|
||||
setState(() => _progress = '$name · ${total > 0 ? bytes * 100 ~/ total : 0}%');
|
||||
}
|
||||
});
|
||||
if (!mounted) {
|
||||
return;
|
||||
}
|
||||
setState(() => _incoming.removeAt(0));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _move(VaultEntry entry) async {
|
||||
await _run(() async {
|
||||
final repository = ref.read(fileVaultRepositoryProvider);
|
||||
final folders = await repository.folders();
|
||||
if (!mounted) {
|
||||
return;
|
||||
}
|
||||
bool allowed(VaultFolder folder) {
|
||||
final seen = <String>{};
|
||||
VaultFolder? current = folder;
|
||||
while (current != null && seen.add(current.id)) {
|
||||
if (current.id == entry.id) {
|
||||
return false;
|
||||
}
|
||||
final parentId = current.parentId;
|
||||
current = folders.where((item) => item.id == parentId).firstOrNull;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
String path(VaultFolder folder) {
|
||||
final parts = [folder.name];
|
||||
final seen = {folder.id};
|
||||
var parentId = folder.parentId;
|
||||
while (parentId != null && seen.add(parentId)) {
|
||||
final parent = folders.where((item) => item.id == parentId).firstOrNull;
|
||||
if (parent == null) {
|
||||
break;
|
||||
}
|
||||
parts.insert(0, parent.name);
|
||||
parentId = parent.parentId;
|
||||
}
|
||||
return parts.join(' / ');
|
||||
}
|
||||
|
||||
final destination = await showDialog<String>(
|
||||
context: context,
|
||||
builder: (dialogContext) => AlertDialog(
|
||||
title: Text(_labels.text('move_to')),
|
||||
content: SizedBox(
|
||||
width: double.maxFinite,
|
||||
child: ListView(
|
||||
shrinkWrap: true,
|
||||
children: [
|
||||
ListTile(
|
||||
leading: const Icon(Icons.home_outlined),
|
||||
title: Text(_labels.text('root')),
|
||||
onTap: () => Navigator.pop(dialogContext, 'root'),
|
||||
),
|
||||
for (final folder in folders.where(allowed))
|
||||
ListTile(
|
||||
leading: const Icon(Icons.folder_outlined),
|
||||
title: Text(path(folder)),
|
||||
onTap: () => Navigator.pop(dialogContext, folder.id),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
actions: [TextButton(onPressed: () => Navigator.pop(dialogContext), child: Text(_labels.text('cancel')))],
|
||||
),
|
||||
);
|
||||
if (destination != null) {
|
||||
await repository.move(entry.id, destination == 'root' ? null : destination);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _download(VaultEntry entry, {bool open = false}) async {
|
||||
await _run(() async {
|
||||
final repository = ref.read(fileVaultRepositoryProvider);
|
||||
final file = await repository.download(entry, (bytes, total) {
|
||||
if (mounted) {
|
||||
setState(() => _progress = '${entry.name} · ${total > 0 ? bytes * 100 ~/ total : 0}%');
|
||||
}
|
||||
});
|
||||
if (!mounted) {
|
||||
if (file.existsSync()) {
|
||||
await file.delete();
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (open) {
|
||||
await repository.platform.openFile(file.path, p.basename(file.path));
|
||||
} else {
|
||||
try {
|
||||
await repository.platform.saveFile(file.path, p.basename(file.path));
|
||||
} finally {
|
||||
if (file.existsSync()) {
|
||||
await file.delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _action(String action, VaultEntry entry) async {
|
||||
if (action == 'move') {
|
||||
await _move(entry);
|
||||
return;
|
||||
}
|
||||
if (action == 'download' || action == 'open') {
|
||||
await _download(entry, open: action == 'open');
|
||||
return;
|
||||
}
|
||||
if (action == 'rename') {
|
||||
final name = await _askName(_labels.text('rename'), initial: entry.name);
|
||||
if (name != null && mounted) {
|
||||
await _run(() => ref.read(fileVaultRepositoryProvider).rename(entry.id, name));
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (action == 'trash' || action == 'purge') {
|
||||
if (!await _confirm(entry, action == 'purge') || !mounted) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
await _run(() async {
|
||||
final repository = ref.read(fileVaultRepositoryProvider);
|
||||
if (action == 'trash') {
|
||||
await repository.trash(entry.id);
|
||||
}
|
||||
if (action == 'purge') {
|
||||
await repository.purge(entry.id);
|
||||
}
|
||||
if (action == 'restore') {
|
||||
await repository.restore(entry.id);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final listing = _listing;
|
||||
final labels = _labels;
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
title: Text(labels.text(_trash ? 'trash' : 'title')),
|
||||
actions: [
|
||||
IconButton(tooltip: labels.text('refresh'), onPressed: _busy ? null : _load, icon: const Icon(Icons.refresh)),
|
||||
if (!_trash)
|
||||
IconButton(
|
||||
tooltip: labels.text('new_folder'),
|
||||
onPressed: _busy ? null : _createFolder,
|
||||
icon: const Icon(Icons.create_new_folder_outlined),
|
||||
),
|
||||
IconButton(
|
||||
tooltip: labels.text(_trash ? 'root' : 'trash'),
|
||||
onPressed: _busy ? null : () => _navigate(null, trash: !_trash),
|
||||
icon: Icon(_trash ? Icons.folder_outlined : Icons.delete_outline),
|
||||
),
|
||||
],
|
||||
),
|
||||
floatingActionButton: _trash
|
||||
? null
|
||||
: FloatingActionButton.extended(
|
||||
onPressed: _busy ? null : _pickFiles,
|
||||
icon: const Icon(Icons.upload_file),
|
||||
label: Text(labels.text('upload_files')),
|
||||
),
|
||||
body: Column(
|
||||
children: [
|
||||
if (!_trash)
|
||||
SingleChildScrollView(
|
||||
scrollDirection: Axis.horizontal,
|
||||
padding: const EdgeInsets.symmetric(horizontal: 12),
|
||||
child: Row(
|
||||
children: [
|
||||
TextButton(onPressed: _busy ? null : () => _navigate(null), child: Text(labels.text('root'))),
|
||||
for (final folder in listing?.breadcrumbs ?? <VaultFolder>[])
|
||||
Row(
|
||||
children: [
|
||||
const Icon(Icons.chevron_right, size: 16),
|
||||
TextButton(onPressed: _busy ? null : () => _navigate(folder.id), child: Text(folder.name)),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
if (listing != null)
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
child: Align(
|
||||
alignment: Alignment.centerLeft,
|
||||
child: Text(
|
||||
'${labels.text('used')}: ${_size(listing.usedBytes)} · ${labels.text('limit')}: ${_size(listing.maxFileBytes)}',
|
||||
style: Theme.of(context).textTheme.bodySmall,
|
||||
),
|
||||
),
|
||||
),
|
||||
if (_error != null)
|
||||
MaterialBanner(
|
||||
content: Text(_error!),
|
||||
actions: [TextButton(onPressed: () => setState(() => _error = null), child: Text(labels.text('close')))],
|
||||
),
|
||||
if (_busy) const LinearProgressIndicator(),
|
||||
if (_progress != null)
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: Text(_progress!, maxLines: 2, overflow: TextOverflow.ellipsis),
|
||||
),
|
||||
if (_incoming.isNotEmpty && !_trash)
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: Card(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(12),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
Text('${labels.text('incoming')}: ${_incoming.length}'),
|
||||
Text(_incoming.map(p.basename).join(', '), maxLines: 3, overflow: TextOverflow.ellipsis),
|
||||
const SizedBox(height: 8),
|
||||
FilledButton(onPressed: _busy ? null : _uploadIncoming, child: Text(labels.text('upload_here'))),
|
||||
TextButton(
|
||||
onPressed: _busy ? null : () => setState(() => _incoming.clear()),
|
||||
child: Text(labels.text('cancel')),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: listing == null
|
||||
? Center(
|
||||
child: _error != null
|
||||
? FilledButton(onPressed: _load, child: Text(labels.text('refresh')))
|
||||
: const CircularProgressIndicator(),
|
||||
)
|
||||
: RefreshIndicator(
|
||||
onRefresh: _load,
|
||||
child: ListView(
|
||||
children: [
|
||||
if (listing.entries.isEmpty)
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(40),
|
||||
child: Center(child: Text(labels.text(_trash ? 'empty_trash' : 'empty'))),
|
||||
),
|
||||
for (final entry in listing.entries)
|
||||
ListTile(
|
||||
leading: Icon(entry.isFolder ? Icons.folder_outlined : Icons.description_outlined),
|
||||
title: Text(entry.name),
|
||||
subtitle: entry.isFolder ? null : Text(_size(entry.size)),
|
||||
onTap: _busy
|
||||
? null
|
||||
: entry.isFolder && !_trash
|
||||
? () => _navigate(entry.id)
|
||||
: entry.isFolder || _trash
|
||||
? null
|
||||
: () => _download(entry, open: true),
|
||||
trailing: PopupMenuButton<String>(
|
||||
enabled: !_busy,
|
||||
onSelected: (action) => _action(action, entry),
|
||||
itemBuilder: (_) => [
|
||||
if (!_trash && !entry.isFolder)
|
||||
PopupMenuItem(value: 'open', child: Text(labels.text('open'))),
|
||||
if (!_trash) PopupMenuItem(value: 'download', child: Text(labels.text('download'))),
|
||||
PopupMenuItem(value: 'rename', child: Text(labels.text('rename'))),
|
||||
if (!_trash) PopupMenuItem(value: 'move', child: Text(labels.text('move'))),
|
||||
if (!_trash) PopupMenuItem(value: 'trash', child: Text(labels.text('trash'))),
|
||||
if (_trash) PopupMenuItem(value: 'restore', child: Text(labels.text('restore'))),
|
||||
if (_trash) PopupMenuItem(value: 'purge', child: Text(labels.text('purge'))),
|
||||
],
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
if (_offset > 0)
|
||||
TextButton(
|
||||
onPressed: _busy
|
||||
? null
|
||||
: () => _navigate(_folderId, trash: _trash, offset: _offset - 100),
|
||||
child: Text(labels.text('previous')),
|
||||
),
|
||||
if (listing.hasMore)
|
||||
TextButton(
|
||||
onPressed: _busy
|
||||
? null
|
||||
: () => _navigate(_folderId, trash: _trash, offset: _offset + 100),
|
||||
child: Text(labels.text('next')),
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 96),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -42,12 +42,16 @@ class SearchPage extends HookConsumerWidget {
|
||||
@override
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final serverFeatures = ref.watch(serverInfoProvider.select((v) => v.serverFeatures));
|
||||
final textSearchType = useState<TextSearchType>(
|
||||
serverFeatures.smartSearch ? TextSearchType.context : TextSearchType.filename,
|
||||
);
|
||||
final searchHintText = useState<String>(
|
||||
serverFeatures.smartSearch ? context.t.sunrise_on_the_beach : context.t.file_name_or_extension,
|
||||
);
|
||||
// Stays null until the user picks a type, so the default follows the server features once they are loaded
|
||||
final selectedTextSearchType = useState<TextSearchType?>(null);
|
||||
final textSearchType =
|
||||
selectedTextSearchType.value ?? (serverFeatures.smartSearch ? TextSearchType.context : TextSearchType.filename);
|
||||
final searchHintText = switch (textSearchType) {
|
||||
TextSearchType.context => context.t.sunrise_on_the_beach,
|
||||
TextSearchType.filename => context.t.file_name_or_extension,
|
||||
TextSearchType.description => context.t.search_by_description_example,
|
||||
TextSearchType.ocr => context.t.search_by_ocr_example,
|
||||
};
|
||||
final textSearchController = useTextEditingController();
|
||||
final filter = useState<SearchFilter>(
|
||||
SearchFilter(
|
||||
@@ -491,14 +495,14 @@ class SearchPage extends HookConsumerWidget {
|
||||
);
|
||||
}
|
||||
|
||||
void handleTextSubmitted(String value) => search(switch (textSearchType.value) {
|
||||
void handleTextSubmitted(String value) => search(switch (textSearchType) {
|
||||
TextSearchType.context => filter.value.copyWith(filename: '', context: value, description: '', ocr: ''),
|
||||
TextSearchType.filename => filter.value.copyWith(filename: value, context: '', description: '', ocr: ''),
|
||||
TextSearchType.description => filter.value.copyWith(filename: '', context: '', description: value, ocr: ''),
|
||||
TextSearchType.ocr => filter.value.copyWith(filename: '', context: '', description: '', ocr: value),
|
||||
});
|
||||
|
||||
IconData getSearchPrefixIcon() => switch (textSearchType.value) {
|
||||
IconData getSearchPrefixIcon() => switch (textSearchType) {
|
||||
TextSearchType.context => Icons.image_search_rounded,
|
||||
TextSearchType.filename => Icons.abc_rounded,
|
||||
TextSearchType.description => Icons.text_snippet_outlined,
|
||||
@@ -543,15 +547,14 @@ class SearchPage extends HookConsumerWidget {
|
||||
context.t.search_by_context,
|
||||
style: context.textTheme.bodyLarge?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
color: textSearchType.value == TextSearchType.context ? context.colorScheme.primary : null,
|
||||
color: textSearchType == TextSearchType.context ? context.colorScheme.primary : null,
|
||||
),
|
||||
),
|
||||
selectedColor: context.colorScheme.primary,
|
||||
selected: textSearchType.value == TextSearchType.context,
|
||||
selected: textSearchType == TextSearchType.context,
|
||||
),
|
||||
onPressed: () {
|
||||
textSearchType.value = TextSearchType.context;
|
||||
searchHintText.value = context.t.sunrise_on_the_beach;
|
||||
selectedTextSearchType.value = TextSearchType.context;
|
||||
},
|
||||
),
|
||||
),
|
||||
@@ -562,15 +565,14 @@ class SearchPage extends HookConsumerWidget {
|
||||
context.t.search_filter_filename,
|
||||
style: context.textTheme.bodyLarge?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
color: textSearchType.value == TextSearchType.filename ? context.colorScheme.primary : null,
|
||||
color: textSearchType == TextSearchType.filename ? context.colorScheme.primary : null,
|
||||
),
|
||||
),
|
||||
selectedColor: context.colorScheme.primary,
|
||||
selected: textSearchType.value == TextSearchType.filename,
|
||||
selected: textSearchType == TextSearchType.filename,
|
||||
),
|
||||
onPressed: () {
|
||||
textSearchType.value = TextSearchType.filename;
|
||||
searchHintText.value = context.t.file_name_or_extension;
|
||||
selectedTextSearchType.value = TextSearchType.filename;
|
||||
},
|
||||
),
|
||||
MenuItemButton(
|
||||
@@ -580,15 +582,14 @@ class SearchPage extends HookConsumerWidget {
|
||||
context.t.search_by_description,
|
||||
style: context.textTheme.bodyLarge?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
color: textSearchType.value == TextSearchType.description ? context.colorScheme.primary : null,
|
||||
color: textSearchType == TextSearchType.description ? context.colorScheme.primary : null,
|
||||
),
|
||||
),
|
||||
selectedColor: context.colorScheme.primary,
|
||||
selected: textSearchType.value == TextSearchType.description,
|
||||
selected: textSearchType == TextSearchType.description,
|
||||
),
|
||||
onPressed: () {
|
||||
textSearchType.value = TextSearchType.description;
|
||||
searchHintText.value = context.t.search_by_description_example;
|
||||
selectedTextSearchType.value = TextSearchType.description;
|
||||
},
|
||||
),
|
||||
FeatureCheck(
|
||||
@@ -600,15 +601,14 @@ class SearchPage extends HookConsumerWidget {
|
||||
context.t.search_by_ocr,
|
||||
style: context.textTheme.bodyLarge?.copyWith(
|
||||
fontWeight: FontWeight.w500,
|
||||
color: textSearchType.value == TextSearchType.ocr ? context.colorScheme.primary : null,
|
||||
color: textSearchType == TextSearchType.ocr ? context.colorScheme.primary : null,
|
||||
),
|
||||
),
|
||||
selectedColor: context.colorScheme.primary,
|
||||
selected: textSearchType.value == TextSearchType.ocr,
|
||||
selected: textSearchType == TextSearchType.ocr,
|
||||
),
|
||||
onPressed: () {
|
||||
textSearchType.value = TextSearchType.ocr;
|
||||
searchHintText.value = context.t.search_by_ocr_example;
|
||||
selectedTextSearchType.value = TextSearchType.ocr;
|
||||
},
|
||||
),
|
||||
),
|
||||
@@ -631,7 +631,7 @@ class SearchPage extends HookConsumerWidget {
|
||||
),
|
||||
),
|
||||
child: SearchField(
|
||||
hintText: searchHintText.value,
|
||||
hintText: searchHintText,
|
||||
key: const Key('search_text_field'),
|
||||
controller: textSearchController,
|
||||
contentPadding: filter.value.assetId != null ? const EdgeInsets.only(left: 24) : const EdgeInsets.all(8),
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
class FileVaultLabels {
|
||||
const FileVaultLabels(this.language);
|
||||
final String language;
|
||||
|
||||
String text(String key) => (language == 'ru' ? _russian[key] : _english[key]) ?? _english[key] ?? key;
|
||||
|
||||
static const _russian = {
|
||||
'byte_unit': 'Б',
|
||||
'title': 'Файлы',
|
||||
'root': 'Мои файлы',
|
||||
'new_folder': 'Новая папка',
|
||||
'name': 'Название',
|
||||
'upload_files': 'Загрузить файлы',
|
||||
'empty': 'В этой папке пока нет файлов',
|
||||
'empty_trash': 'Корзина пуста',
|
||||
'move_to': 'Переместить в папку',
|
||||
'used': 'Занято',
|
||||
'error': 'Не удалось выполнить действие. Проверьте соединение и повторите попытку.',
|
||||
'conflict': 'Такое имя уже существует. Переименуйте файл или выберите другую папку.',
|
||||
'unavailable': 'Файл или папка недоступны. Обновите список.',
|
||||
'quota': 'Недостаточно места или превышен допустимый размер файла.',
|
||||
'invalid': 'Проверьте название и выбранную папку. Название не должно содержать / или \\.',
|
||||
'purge_confirm': 'Удалить навсегда? Восстановить этот файл или папку с содержимым будет невозможно.',
|
||||
'trash_confirm': 'Папка будет перемещена в корзину вместе с содержимым.',
|
||||
'limit': 'Максимум на файл',
|
||||
'cancel': 'Отмена',
|
||||
'confirm': 'Подтвердить',
|
||||
'rename': 'Переименовать',
|
||||
'trash': 'Корзина',
|
||||
'purge': 'Удалить навсегда',
|
||||
'restore': 'Восстановить',
|
||||
'move': 'Переместить',
|
||||
'open': 'Открыть',
|
||||
'download': 'Скачать',
|
||||
'refresh': 'Обновить',
|
||||
'close': 'Закрыть',
|
||||
'incoming': 'Получено файлов',
|
||||
'upload_here': 'Загрузить в эту папку',
|
||||
'previous': 'Назад',
|
||||
'next': 'Далее',
|
||||
};
|
||||
|
||||
static const _english = {
|
||||
'byte_unit': 'B',
|
||||
'title': 'Files',
|
||||
'root': 'My files',
|
||||
'new_folder': 'New folder',
|
||||
'name': 'Name',
|
||||
'upload_files': 'Upload files',
|
||||
'empty': 'This folder is empty',
|
||||
'empty_trash': 'Trash is empty',
|
||||
'move_to': 'Move to folder',
|
||||
'used': 'Used',
|
||||
'error': 'The action failed. Check your connection and try again.',
|
||||
'conflict': 'This name already exists. Rename the item or choose another folder.',
|
||||
'unavailable': 'This file or folder is unavailable. Refresh the list.',
|
||||
'quota': 'Insufficient space or maximum file size exceeded.',
|
||||
'invalid': 'Check the name and destination folder. Names cannot contain / or \\.',
|
||||
'purge_confirm': 'Delete permanently? This item and its contents cannot be restored.',
|
||||
'trash_confirm': 'The folder and its contents will be moved to trash.',
|
||||
'limit': 'Maximum file size',
|
||||
'cancel': 'Cancel',
|
||||
'confirm': 'Confirm',
|
||||
'rename': 'Rename',
|
||||
'trash': 'Trash',
|
||||
'purge': 'Delete permanently',
|
||||
'restore': 'Restore',
|
||||
'move': 'Move',
|
||||
'open': 'Open',
|
||||
'download': 'Download',
|
||||
'refresh': 'Refresh',
|
||||
'close': 'Close',
|
||||
'incoming': 'Files received',
|
||||
'upload_here': 'Upload to this folder',
|
||||
'previous': 'Previous',
|
||||
'next': 'Next',
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user