Compare commits
35 Commits
fix-mobile
...
fix/server
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2997d3128b | ||
|
|
3968d76a57 | ||
|
|
55b31d1ce2 | ||
|
|
37cc6fbf27 | ||
|
|
899b8a0ce7 | ||
|
|
d3a5490e71 | ||
|
|
3afb5b497f | ||
|
|
1f0f880ecb | ||
|
|
2c05ceaf50 | ||
|
|
01f8b7e458 | ||
|
|
b73f7fe16f | ||
|
|
281cfc95a4 | ||
|
|
3a3ea6135e | ||
|
|
c44271e9b2 | ||
|
|
86904a8382 | ||
|
|
cf54829b3b | ||
|
|
990627e00d | ||
|
|
41580696c7 | ||
|
|
2423bb36c4 | ||
|
|
82b899649d | ||
|
|
8ee8450d18 | ||
|
|
6d47d52b3c | ||
|
|
919fd7d41f | ||
|
|
c2fdb6aab8 | ||
|
|
b6c4da37fd | ||
|
|
17c3e8e8bf | ||
|
|
21d3f248da | ||
|
|
a29660aae3 | ||
|
|
6c81fa0f0a | ||
|
|
7156da502f | ||
|
|
13741410a7 | ||
|
|
3408e6b3cb | ||
|
|
434bcec5cc | ||
|
|
ebc71e428d | ||
|
|
a70cd368af |
2
.github/workflows/cli.yml
vendored
2
.github/workflows/cli.yml
vendored
@@ -59,7 +59,7 @@ jobs:
|
|||||||
uses: docker/setup-qemu-action@v3.2.0
|
uses: docker/setup-qemu-action@v3.2.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3.5.0
|
uses: docker/setup-buildx-action@v3.6.1
|
||||||
|
|
||||||
- name: Login to GitHub Container Registry
|
- name: Login to GitHub Container Registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
|
|||||||
4
.github/workflows/docker-cleanup.yml
vendored
4
.github/workflows/docker-cleanup.yml
vendored
@@ -35,7 +35,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Clean temporary images
|
- name: Clean temporary images
|
||||||
if: "${{ env.TOKEN != '' }}"
|
if: "${{ env.TOKEN != '' }}"
|
||||||
uses: stumpylog/image-cleaner-action/ephemeral@v0.7.0
|
uses: stumpylog/image-cleaner-action/ephemeral@v0.8.0
|
||||||
with:
|
with:
|
||||||
token: "${{ env.TOKEN }}"
|
token: "${{ env.TOKEN }}"
|
||||||
owner: "immich-app"
|
owner: "immich-app"
|
||||||
@@ -64,7 +64,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Clean untagged images
|
- name: Clean untagged images
|
||||||
if: "${{ env.TOKEN != '' }}"
|
if: "${{ env.TOKEN != '' }}"
|
||||||
uses: stumpylog/image-cleaner-action/untagged@v0.7.0
|
uses: stumpylog/image-cleaner-action/untagged@v0.8.0
|
||||||
with:
|
with:
|
||||||
token: "${{ env.TOKEN }}"
|
token: "${{ env.TOKEN }}"
|
||||||
owner: "immich-app"
|
owner: "immich-app"
|
||||||
|
|||||||
2
.github/workflows/docker.yml
vendored
2
.github/workflows/docker.yml
vendored
@@ -66,7 +66,7 @@ jobs:
|
|||||||
uses: docker/setup-qemu-action@v3.2.0
|
uses: docker/setup-qemu-action@v3.2.0
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3.5.0
|
uses: docker/setup-buildx-action@v3.6.1
|
||||||
|
|
||||||
- name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
# Only push to Docker Hub when making a release
|
# Only push to Docker Hub when making a release
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM node:20.16.0-alpine3.20@sha256:aada767bf3e4b4a1437642b81db7d8bb99a6dba27627088e4608772f1f02ebc0 as core
|
FROM node:20.16.0-alpine3.20@sha256:eb8101caae9ac02229bd64c024919fe3d4504ff7f329da79ca60a04db08cef52 as core
|
||||||
|
|
||||||
WORKDIR /usr/src/open-api/typescript-sdk
|
WORKDIR /usr/src/open-api/typescript-sdk
|
||||||
COPY open-api/typescript-sdk/package*.json open-api/typescript-sdk/tsconfig*.json ./
|
COPY open-api/typescript-sdk/package*.json open-api/typescript-sdk/tsconfig*.json ./
|
||||||
|
|||||||
1086
cli/package-lock.json
generated
1086
cli/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@immich/cli",
|
"name": "@immich/cli",
|
||||||
"version": "2.2.12",
|
"version": "2.2.13",
|
||||||
"description": "Command Line Interface (CLI) for Immich",
|
"description": "Command Line Interface (CLI) for Immich",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": "./dist/index.js",
|
"exports": "./dist/index.js",
|
||||||
@@ -21,22 +21,22 @@
|
|||||||
"@types/node": "^20.14.12",
|
"@types/node": "^20.14.12",
|
||||||
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
||||||
"@typescript-eslint/parser": "^7.0.0",
|
"@typescript-eslint/parser": "^7.0.0",
|
||||||
"@vitest/coverage-v8": "^1.2.2",
|
"@vitest/coverage-v8": "^2.0.5",
|
||||||
"byte-size": "^9.0.0",
|
"byte-size": "^9.0.0",
|
||||||
"cli-progress": "^3.12.0",
|
"cli-progress": "^3.12.0",
|
||||||
"commander": "^12.0.0",
|
"commander": "^12.0.0",
|
||||||
"eslint": "^8.56.0",
|
"eslint": "^8.56.0",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^9.1.0",
|
||||||
"eslint-plugin-prettier": "^5.1.3",
|
"eslint-plugin-prettier": "^5.1.3",
|
||||||
"eslint-plugin-unicorn": "^54.0.0",
|
"eslint-plugin-unicorn": "^55.0.0",
|
||||||
"mock-fs": "^5.2.0",
|
"mock-fs": "^5.2.0",
|
||||||
"prettier": "^3.2.5",
|
"prettier": "^3.2.5",
|
||||||
"prettier-plugin-organize-imports": "^4.0.0",
|
"prettier-plugin-organize-imports": "^4.0.0",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"vite": "^5.0.12",
|
"vite": "^5.0.12",
|
||||||
"vite-tsconfig-paths": "^4.3.2",
|
"vite-tsconfig-paths": "^4.3.2",
|
||||||
"vitest": "^1.2.2",
|
"vitest": "^2.0.5",
|
||||||
"vitest-fetch-mock": "^0.2.2",
|
"vitest-fetch-mock": "^0.3.0",
|
||||||
"yaml": "^2.3.1"
|
"yaml": "^2.3.1"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ services:
|
|||||||
command: ['./run.sh', '-disable-reporting']
|
command: ['./run.sh', '-disable-reporting']
|
||||||
ports:
|
ports:
|
||||||
- 3000:3000
|
- 3000:3000
|
||||||
image: grafana/grafana:11.1.0-ubuntu@sha256:c7fc29ec783d5e7fc1bdfaad6f92345a345cffbc5d21c388ca228175006fc107
|
image: grafana/grafana:11.1.3-ubuntu@sha256:e10453733015f31103cb530425f32c994816b50102886fa885dafea2c50a711c
|
||||||
volumes:
|
volumes:
|
||||||
- grafana-data:/var/lib/grafana
|
- grafana-data:/var/lib/grafana
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ services:
|
|||||||
# file: hwaccel.transcoding.yml
|
# file: hwaccel.transcoding.yml
|
||||||
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
|
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
|
||||||
volumes:
|
volumes:
|
||||||
|
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
|
||||||
- ${UPLOAD_LOCATION}:/usr/src/app/upload
|
- ${UPLOAD_LOCATION}:/usr/src/app/upload
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
env_file:
|
env_file:
|
||||||
@@ -57,6 +58,7 @@ services:
|
|||||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||||
POSTGRES_INITDB_ARGS: '--data-checksums'
|
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||||
volumes:
|
volumes:
|
||||||
|
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
|
||||||
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
|
test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
|
||||||
|
|||||||
24
docs/package-lock.json
generated
24
docs/package-lock.json
generated
@@ -12754,9 +12754,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.4.39",
|
"version": "8.4.40",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.40.tgz",
|
||||||
"integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==",
|
"integrity": "sha512-YF2kKIUzAofPMpfH6hOi2cGnv/HrUlfucspc7pDyvv7kGdqXrfj8SCl/t8owkEgKEuu8ZcRjSOxFxVLqwChZ2Q==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -13600,9 +13600,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prettier": {
|
"node_modules/prettier": {
|
||||||
"version": "3.3.2",
|
"version": "3.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz",
|
||||||
"integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==",
|
"integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -16014,9 +16014,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tailwindcss": {
|
"node_modules/tailwindcss": {
|
||||||
"version": "3.4.4",
|
"version": "3.4.7",
|
||||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.7.tgz",
|
||||||
"integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==",
|
"integrity": "sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@alloc/quick-lru": "^5.2.0",
|
"@alloc/quick-lru": "^5.2.0",
|
||||||
@@ -16376,9 +16376,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "5.5.3",
|
"version": "5.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
|
||||||
"integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
|
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
|
|||||||
4
docs/static/archived-versions.json
vendored
4
docs/static/archived-versions.json
vendored
@@ -1,4 +1,8 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"label": "v1.111.0",
|
||||||
|
"url": "https://v1.111.0.archive.immich.app"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"label": "v1.110.0",
|
"label": "v1.110.0",
|
||||||
"url": "https://v1.110.0.archive.immich.app"
|
"url": "https://v1.110.0.archive.immich.app"
|
||||||
|
|||||||
1452
e2e/package-lock.json
generated
1452
e2e/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "immich-e2e",
|
"name": "immich-e2e",
|
||||||
"version": "1.110.0",
|
"version": "1.111.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -30,12 +30,12 @@
|
|||||||
"@types/supertest": "^6.0.2",
|
"@types/supertest": "^6.0.2",
|
||||||
"@typescript-eslint/eslint-plugin": "^7.1.0",
|
"@typescript-eslint/eslint-plugin": "^7.1.0",
|
||||||
"@typescript-eslint/parser": "^7.1.0",
|
"@typescript-eslint/parser": "^7.1.0",
|
||||||
"@vitest/coverage-v8": "^1.3.0",
|
"@vitest/coverage-v8": "^2.0.5",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.0",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^9.1.0",
|
||||||
"eslint-plugin-prettier": "^5.1.3",
|
"eslint-plugin-prettier": "^5.1.3",
|
||||||
"eslint-plugin-unicorn": "^54.0.0",
|
"eslint-plugin-unicorn": "^55.0.0",
|
||||||
"exiftool-vendored": "^27.0.0",
|
"exiftool-vendored": "^28.0.0",
|
||||||
"jose": "^5.6.3",
|
"jose": "^5.6.3",
|
||||||
"luxon": "^3.4.4",
|
"luxon": "^3.4.4",
|
||||||
"oidc-provider": "^8.5.1",
|
"oidc-provider": "^8.5.1",
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"supertest": "^7.0.0",
|
"supertest": "^7.0.0",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"utimes": "^5.2.1",
|
"utimes": "^5.2.1",
|
||||||
"vitest": "^1.6.0"
|
"vitest": "^2.0.5"
|
||||||
},
|
},
|
||||||
"volta": {
|
"volta": {
|
||||||
"node": "20.16.0"
|
"node": "20.16.0"
|
||||||
|
|||||||
@@ -159,4 +159,75 @@ describe('/map', () => {
|
|||||||
expect(body).toEqual(expect.objectContaining({ id: 'immich-map-dark' }));
|
expect(body).toEqual(expect.objectContaining({ id: 'immich-map-dark' }));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('GET /map/reverse-geocode', () => {
|
||||||
|
it('should require authentication', async () => {
|
||||||
|
const { status, body } = await request(app).get('/map/reverse-geocode');
|
||||||
|
expect(status).toBe(401);
|
||||||
|
expect(body).toEqual(errorDto.unauthorized);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should throw an error if a lat is not provided', async () => {
|
||||||
|
const { status, body } = await request(app)
|
||||||
|
.get('/map/reverse-geocode?lon=123')
|
||||||
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
|
expect(status).toBe(400);
|
||||||
|
expect(body).toEqual(errorDto.badRequest(['lat must be a number between -90 and 90']));
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should throw an error if a lat is not a number', async () => {
|
||||||
|
const { status, body } = await request(app)
|
||||||
|
.get('/map/reverse-geocode?lat=abc&lon=123.456')
|
||||||
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
|
expect(status).toBe(400);
|
||||||
|
expect(body).toEqual(errorDto.badRequest(['lat must be a number between -90 and 90']));
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should throw an error if a lat is out of range', async () => {
|
||||||
|
const { status, body } = await request(app)
|
||||||
|
.get('/map/reverse-geocode?lat=91&lon=123.456')
|
||||||
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
|
expect(status).toBe(400);
|
||||||
|
expect(body).toEqual(errorDto.badRequest(['lat must be a number between -90 and 90']));
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should throw an error if a lon is not provided', async () => {
|
||||||
|
const { status, body } = await request(app)
|
||||||
|
.get('/map/reverse-geocode?lat=75')
|
||||||
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
|
expect(status).toBe(400);
|
||||||
|
expect(body).toEqual(errorDto.badRequest(['lon must be a number between -180 and 180']));
|
||||||
|
});
|
||||||
|
|
||||||
|
const reverseGeocodeTestCases = [
|
||||||
|
{
|
||||||
|
name: 'Vaucluse',
|
||||||
|
lat: -33.858_977_058_663_13,
|
||||||
|
lon: 151.278_490_730_270_48,
|
||||||
|
results: [{ city: 'Vaucluse', state: 'New South Wales', country: 'Australia' }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Ravenhall',
|
||||||
|
lat: -37.765_732_399_174_75,
|
||||||
|
lon: 144.752_453_164_883_3,
|
||||||
|
results: [{ city: 'Ravenhall', state: 'Victoria', country: 'Australia' }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Scarborough',
|
||||||
|
lat: -31.894_346_156_789_997,
|
||||||
|
lon: 115.757_617_103_904_64,
|
||||||
|
results: [{ city: 'Scarborough', state: 'Western Australia', country: 'Australia' }],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
it.each(reverseGeocodeTestCases)(`should resolve to $name`, async ({ lat, lon, results }) => {
|
||||||
|
const { status, body } = await request(app)
|
||||||
|
.get(`/map/reverse-geocode?lat=${lat}&lon=${lon}`)
|
||||||
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
|
expect(status).toBe(200);
|
||||||
|
expect(Array.isArray(body)).toBe(true);
|
||||||
|
expect(body.length).toBe(results.length);
|
||||||
|
expect(body).toEqual(results);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,10 +6,19 @@ import request from 'supertest';
|
|||||||
import { beforeAll, beforeEach, describe, expect, it } from 'vitest';
|
import { beforeAll, beforeEach, describe, expect, it } from 'vitest';
|
||||||
|
|
||||||
const invalidBirthday = [
|
const invalidBirthday = [
|
||||||
{ birthDate: 'false', response: 'birthDate must be a date string' },
|
{
|
||||||
{ birthDate: '123567', response: 'birthDate must be a date string' },
|
birthDate: 'false',
|
||||||
{ birthDate: 123_567, response: 'birthDate must be a date string' },
|
response: ['birthDate must be a string in the format yyyy-MM-dd', 'Birth date cannot be in the future'],
|
||||||
{ birthDate: new Date(9999, 0, 0).toISOString(), response: ['Birth date cannot be in the future'] },
|
},
|
||||||
|
{
|
||||||
|
birthDate: '123567',
|
||||||
|
response: ['birthDate must be a string in the format yyyy-MM-dd', 'Birth date cannot be in the future'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
birthDate: 123_567,
|
||||||
|
response: ['birthDate must be a string in the format yyyy-MM-dd', 'Birth date cannot be in the future'],
|
||||||
|
},
|
||||||
|
{ birthDate: '9999-01-01', response: ['Birth date cannot be in the future'] },
|
||||||
];
|
];
|
||||||
|
|
||||||
describe('/people', () => {
|
describe('/people', () => {
|
||||||
@@ -185,13 +194,13 @@ describe('/people', () => {
|
|||||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||||
.send({
|
.send({
|
||||||
name: 'New Person',
|
name: 'New Person',
|
||||||
birthDate: '1990-01-01T05:00:00.000Z',
|
birthDate: '1990-01-01',
|
||||||
});
|
});
|
||||||
expect(status).toBe(201);
|
expect(status).toBe(201);
|
||||||
expect(body).toMatchObject({
|
expect(body).toMatchObject({
|
||||||
id: expect.any(String),
|
id: expect.any(String),
|
||||||
name: 'New Person',
|
name: 'New Person',
|
||||||
birthDate: '1990-01-01T05:00:00.000Z',
|
birthDate: '1990-01-01',
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -233,7 +242,7 @@ describe('/people', () => {
|
|||||||
const { status, body } = await request(app)
|
const { status, body } = await request(app)
|
||||||
.put(`/people/${visiblePerson.id}`)
|
.put(`/people/${visiblePerson.id}`)
|
||||||
.set('Authorization', `Bearer ${admin.accessToken}`)
|
.set('Authorization', `Bearer ${admin.accessToken}`)
|
||||||
.send({ birthDate: '1990-01-01T05:00:00.000Z' });
|
.send({ birthDate: '1990-01-01' });
|
||||||
expect(status).toBe(200);
|
expect(status).toBe(200);
|
||||||
expect(body).toMatchObject({ birthDate: '1990-01-01' });
|
expect(body).toMatchObject({ birthDate: '1990-01-01' });
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { AssetMediaResponseDto, LoginResponseDto, deleteAssets, getMapMarkers, updateAsset } from '@immich/sdk';
|
import { AssetMediaResponseDto, LoginResponseDto, deleteAssets, updateAsset } from '@immich/sdk';
|
||||||
import { DateTime } from 'luxon';
|
import { DateTime } from 'luxon';
|
||||||
import { readFile } from 'node:fs/promises';
|
import { readFile } from 'node:fs/promises';
|
||||||
import { join } from 'node:path';
|
import { join } from 'node:path';
|
||||||
@@ -32,9 +32,6 @@ describe('/search', () => {
|
|||||||
let assetOneJpg5: AssetMediaResponseDto;
|
let assetOneJpg5: AssetMediaResponseDto;
|
||||||
let assetSprings: AssetMediaResponseDto;
|
let assetSprings: AssetMediaResponseDto;
|
||||||
let assetLast: AssetMediaResponseDto;
|
let assetLast: AssetMediaResponseDto;
|
||||||
let cities: string[];
|
|
||||||
let states: string[];
|
|
||||||
let countries: string[];
|
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await utils.resetDatabase();
|
await utils.resetDatabase();
|
||||||
@@ -85,7 +82,7 @@ describe('/search', () => {
|
|||||||
// note: the coordinates here are not the actual coordinates of the images and are random for most of them
|
// note: the coordinates here are not the actual coordinates of the images and are random for most of them
|
||||||
const coordinates = [
|
const coordinates = [
|
||||||
{ latitude: 48.853_41, longitude: 2.3488 }, // paris
|
{ latitude: 48.853_41, longitude: 2.3488 }, // paris
|
||||||
{ latitude: 63.0695, longitude: -151.0074 }, // denali
|
{ latitude: 35.6895, longitude: 139.691_71 }, // tokyo
|
||||||
{ latitude: 52.524_37, longitude: 13.410_53 }, // berlin
|
{ latitude: 52.524_37, longitude: 13.410_53 }, // berlin
|
||||||
{ latitude: 1.314_663_1, longitude: 103.845_409_3 }, // singapore
|
{ latitude: 1.314_663_1, longitude: 103.845_409_3 }, // singapore
|
||||||
{ latitude: 41.013_84, longitude: 28.949_66 }, // istanbul
|
{ latitude: 41.013_84, longitude: 28.949_66 }, // istanbul
|
||||||
@@ -101,16 +98,15 @@ describe('/search', () => {
|
|||||||
{ latitude: 31.634_16, longitude: -7.999_94 }, // marrakesh
|
{ latitude: 31.634_16, longitude: -7.999_94 }, // marrakesh
|
||||||
{ latitude: 38.523_735_4, longitude: -78.488_619_4 }, // tanners ridge
|
{ latitude: 38.523_735_4, longitude: -78.488_619_4 }, // tanners ridge
|
||||||
{ latitude: 59.938_63, longitude: 30.314_13 }, // st. petersburg
|
{ latitude: 59.938_63, longitude: 30.314_13 }, // st. petersburg
|
||||||
{ latitude: 35.6895, longitude: 139.691_71 }, // tokyo
|
|
||||||
];
|
];
|
||||||
|
|
||||||
const updates = assets.map((asset, i) =>
|
const updates = coordinates.map((dto, i) =>
|
||||||
updateAsset({ id: asset.id, updateAssetDto: coordinates[i] }, { headers: asBearerAuth(admin.accessToken) }),
|
updateAsset({ id: assets[i].id, updateAssetDto: dto }, { headers: asBearerAuth(admin.accessToken) }),
|
||||||
);
|
);
|
||||||
|
|
||||||
await Promise.all(updates);
|
await Promise.all(updates);
|
||||||
for (const asset of assets) {
|
for (const [i] of coordinates.entries()) {
|
||||||
await utils.waitForWebsocketEvent({ event: 'assetUpdate', id: asset.id });
|
await utils.waitForWebsocketEvent({ event: 'assetUpdate', id: assets[i].id });
|
||||||
}
|
}
|
||||||
|
|
||||||
[
|
[
|
||||||
@@ -137,12 +133,6 @@ describe('/search', () => {
|
|||||||
assetLast = assets.at(-1) as AssetMediaResponseDto;
|
assetLast = assets.at(-1) as AssetMediaResponseDto;
|
||||||
|
|
||||||
await deleteAssets({ assetBulkDeleteDto: { ids: [assetSilver.id] } }, { headers: asBearerAuth(admin.accessToken) });
|
await deleteAssets({ assetBulkDeleteDto: { ids: [assetSilver.id] } }, { headers: asBearerAuth(admin.accessToken) });
|
||||||
|
|
||||||
const mapMarkers = await getMapMarkers({}, { headers: asBearerAuth(admin.accessToken) });
|
|
||||||
const nonTrashed = mapMarkers.filter((mark) => mark.id !== assetSilver.id);
|
|
||||||
cities = [...new Set(nonTrashed.map((mark) => mark.city).filter((entry): entry is string => !!entry))].sort();
|
|
||||||
states = [...new Set(nonTrashed.map((mark) => mark.state).filter((entry): entry is string => !!entry))].sort();
|
|
||||||
countries = [...new Set(nonTrashed.map((mark) => mark.country).filter((entry): entry is string => !!entry))].sort();
|
|
||||||
}, 30_000);
|
}, 30_000);
|
||||||
|
|
||||||
afterAll(async () => {
|
afterAll(async () => {
|
||||||
@@ -321,23 +311,120 @@ describe('/search', () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
should: 'should search by city',
|
should: 'should search by city',
|
||||||
deferred: () => ({ dto: { city: 'Accra' }, assets: [assetHeic] }),
|
deferred: () => ({
|
||||||
|
dto: {
|
||||||
|
city: 'Accra',
|
||||||
|
includeNull: true,
|
||||||
|
},
|
||||||
|
assets: [assetHeic],
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
should: "should search city ('')",
|
||||||
|
deferred: () => ({
|
||||||
|
dto: {
|
||||||
|
city: '',
|
||||||
|
isVisible: true,
|
||||||
|
includeNull: true,
|
||||||
|
},
|
||||||
|
assets: [assetLast],
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
should: 'should search city (null)',
|
||||||
|
deferred: () => ({
|
||||||
|
dto: {
|
||||||
|
city: null,
|
||||||
|
isVisible: true,
|
||||||
|
includeNull: true,
|
||||||
|
},
|
||||||
|
assets: [assetLast],
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
should: 'should search by state',
|
should: 'should search by state',
|
||||||
deferred: () => ({ dto: { state: 'New York' }, assets: [assetDensity] }),
|
deferred: () => ({
|
||||||
|
dto: {
|
||||||
|
state: 'New York',
|
||||||
|
includeNull: true,
|
||||||
|
},
|
||||||
|
assets: [assetDensity],
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
should: "should search state ('')",
|
||||||
|
deferred: () => ({
|
||||||
|
dto: {
|
||||||
|
state: '',
|
||||||
|
isVisible: true,
|
||||||
|
withExif: true,
|
||||||
|
includeNull: true,
|
||||||
|
},
|
||||||
|
assets: [assetLast, assetNotocactus],
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
should: 'should search state (null)',
|
||||||
|
deferred: () => ({
|
||||||
|
dto: {
|
||||||
|
state: null,
|
||||||
|
isVisible: true,
|
||||||
|
includeNull: true,
|
||||||
|
},
|
||||||
|
assets: [assetLast, assetNotocactus],
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
should: 'should search by country',
|
should: 'should search by country',
|
||||||
deferred: () => ({ dto: { country: 'France' }, assets: [assetFalcon] }),
|
deferred: () => ({
|
||||||
|
dto: {
|
||||||
|
country: 'France',
|
||||||
|
includeNull: true,
|
||||||
|
},
|
||||||
|
assets: [assetFalcon],
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
should: "should search country ('')",
|
||||||
|
deferred: () => ({
|
||||||
|
dto: {
|
||||||
|
country: '',
|
||||||
|
isVisible: true,
|
||||||
|
includeNull: true,
|
||||||
|
},
|
||||||
|
assets: [assetLast],
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
should: 'should search country (null)',
|
||||||
|
deferred: () => ({
|
||||||
|
dto: {
|
||||||
|
country: null,
|
||||||
|
isVisible: true,
|
||||||
|
includeNull: true,
|
||||||
|
},
|
||||||
|
assets: [assetLast],
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
should: 'should search by make',
|
should: 'should search by make',
|
||||||
deferred: () => ({ dto: { make: 'Canon' }, assets: [assetFalcon, assetDenali] }),
|
deferred: () => ({
|
||||||
|
dto: {
|
||||||
|
make: 'Canon',
|
||||||
|
includeNull: true,
|
||||||
|
},
|
||||||
|
assets: [assetFalcon, assetDenali],
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
should: 'should search by model',
|
should: 'should search by model',
|
||||||
deferred: () => ({ dto: { model: 'Canon EOS 7D' }, assets: [assetDenali] }),
|
deferred: () => ({
|
||||||
|
dto: {
|
||||||
|
model: 'Canon EOS 7D',
|
||||||
|
includeNull: true,
|
||||||
|
},
|
||||||
|
assets: [assetDenali],
|
||||||
|
}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
should: 'should allow searching the upload library (libraryId: null)',
|
should: 'should allow searching the upload library (libraryId: null)',
|
||||||
@@ -450,32 +537,79 @@ describe('/search', () => {
|
|||||||
|
|
||||||
it('should get suggestions for country', async () => {
|
it('should get suggestions for country', async () => {
|
||||||
const { status, body } = await request(app)
|
const { status, body } = await request(app)
|
||||||
.get('/search/suggestions?type=country')
|
.get('/search/suggestions?type=country&includeNull=true')
|
||||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
expect(body).toEqual(countries);
|
expect(body).toEqual([
|
||||||
|
'Cuba',
|
||||||
|
'France',
|
||||||
|
'Georgia',
|
||||||
|
'Germany',
|
||||||
|
'Ghana',
|
||||||
|
'Japan',
|
||||||
|
'Morocco',
|
||||||
|
"People's Republic of China",
|
||||||
|
'Russian Federation',
|
||||||
|
'Singapore',
|
||||||
|
'Spain',
|
||||||
|
'Switzerland',
|
||||||
|
'United States of America',
|
||||||
|
null,
|
||||||
|
]);
|
||||||
expect(status).toBe(200);
|
expect(status).toBe(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should get suggestions for state', async () => {
|
it('should get suggestions for state', async () => {
|
||||||
const { status, body } = await request(app)
|
const { status, body } = await request(app)
|
||||||
.get('/search/suggestions?type=state')
|
.get('/search/suggestions?type=state&includeNull=true')
|
||||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
expect(body).toHaveLength(states.length);
|
expect(body).toEqual([
|
||||||
expect(body).toEqual(expect.arrayContaining(states));
|
'Andalusia',
|
||||||
|
'Berlin',
|
||||||
|
'Glarus',
|
||||||
|
'Greater Accra',
|
||||||
|
'Havana',
|
||||||
|
'Île-de-France',
|
||||||
|
'Marrakesh-Safi',
|
||||||
|
'Mississippi',
|
||||||
|
'New York',
|
||||||
|
'Shanghai',
|
||||||
|
'St.-Petersburg',
|
||||||
|
'Tbilisi',
|
||||||
|
'Tokyo',
|
||||||
|
'Virginia',
|
||||||
|
null,
|
||||||
|
]);
|
||||||
expect(status).toBe(200);
|
expect(status).toBe(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should get suggestions for city', async () => {
|
it('should get suggestions for city', async () => {
|
||||||
const { status, body } = await request(app)
|
const { status, body } = await request(app)
|
||||||
.get('/search/suggestions?type=city')
|
.get('/search/suggestions?type=city&includeNull=true')
|
||||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
expect(body).toEqual(cities);
|
expect(body).toEqual([
|
||||||
|
'Accra',
|
||||||
|
'Berlin',
|
||||||
|
'Glarus',
|
||||||
|
'Havana',
|
||||||
|
'Marrakesh',
|
||||||
|
'Montalbán de Córdoba',
|
||||||
|
'New York City',
|
||||||
|
'Novena',
|
||||||
|
'Paris',
|
||||||
|
'Philadelphia',
|
||||||
|
'Saint Petersburg',
|
||||||
|
'Shanghai',
|
||||||
|
'Stanley',
|
||||||
|
'Tbilisi',
|
||||||
|
'Tokyo',
|
||||||
|
null,
|
||||||
|
]);
|
||||||
expect(status).toBe(200);
|
expect(status).toBe(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should get suggestions for camera make', async () => {
|
it('should get suggestions for camera make', async () => {
|
||||||
const { status, body } = await request(app)
|
const { status, body } = await request(app)
|
||||||
.get('/search/suggestions?type=camera-make')
|
.get('/search/suggestions?type=camera-make&includeNull=true')
|
||||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
expect(body).toEqual([
|
expect(body).toEqual([
|
||||||
'Apple',
|
'Apple',
|
||||||
@@ -485,13 +619,14 @@ describe('/search', () => {
|
|||||||
'PENTAX Corporation',
|
'PENTAX Corporation',
|
||||||
'samsung',
|
'samsung',
|
||||||
'SONY',
|
'SONY',
|
||||||
|
null,
|
||||||
]);
|
]);
|
||||||
expect(status).toBe(200);
|
expect(status).toBe(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should get suggestions for camera model', async () => {
|
it('should get suggestions for camera model', async () => {
|
||||||
const { status, body } = await request(app)
|
const { status, body } = await request(app)
|
||||||
.get('/search/suggestions?type=camera-model')
|
.get('/search/suggestions?type=camera-model&includeNull=true')
|
||||||
.set('Authorization', `Bearer ${admin.accessToken}`);
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
expect(body).toEqual([
|
expect(body).toEqual([
|
||||||
'Canon EOS 7D',
|
'Canon EOS 7D',
|
||||||
@@ -506,6 +641,7 @@ describe('/search', () => {
|
|||||||
'SM-F711N',
|
'SM-F711N',
|
||||||
'SM-S906U',
|
'SM-S906U',
|
||||||
'SM-T970',
|
'SM-T970',
|
||||||
|
null,
|
||||||
]);
|
]);
|
||||||
expect(status).toBe(200);
|
expect(status).toBe(200);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -112,6 +112,13 @@ describe('/shared-links', () => {
|
|||||||
expect(resp.header['content-type']).toContain('text/html');
|
expect(resp.header['content-type']).toContain('text/html');
|
||||||
expect(resp.text).toContain(`<meta name="description" content="1 shared photos & videos" />`);
|
expect(resp.text).toContain(`<meta name="description" content="1 shared photos & videos" />`);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should have fqdn og:image meta tag for shared asset', async () => {
|
||||||
|
const resp = await request(shareUrl).get(`/${linkWithAssets.key}`);
|
||||||
|
expect(resp.status).toBe(200);
|
||||||
|
expect(resp.header['content-type']).toContain('text/html');
|
||||||
|
expect(resp.text).toContain(`<meta property="og:image" content="http://`);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('GET /shared-links', () => {
|
describe('GET /shared-links', () => {
|
||||||
|
|||||||
@@ -424,12 +424,12 @@ export const utils = {
|
|||||||
|
|
||||||
createPartner: (accessToken: string, id: string) => createPartner({ id }, { headers: asBearerAuth(accessToken) }),
|
createPartner: (accessToken: string, id: string) => createPartner({ id }, { headers: asBearerAuth(accessToken) }),
|
||||||
|
|
||||||
setAuthCookies: async (context: BrowserContext, accessToken: string) =>
|
setAuthCookies: async (context: BrowserContext, accessToken: string, domain = '127.0.0.1') =>
|
||||||
await context.addCookies([
|
await context.addCookies([
|
||||||
{
|
{
|
||||||
name: 'immich_access_token',
|
name: 'immich_access_token',
|
||||||
value: accessToken,
|
value: accessToken,
|
||||||
domain: '127.0.0.1',
|
domain,
|
||||||
path: '/',
|
path: '/',
|
||||||
expires: 1_742_402_728,
|
expires: 1_742_402_728,
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
@@ -439,7 +439,7 @@ export const utils = {
|
|||||||
{
|
{
|
||||||
name: 'immich_auth_type',
|
name: 'immich_auth_type',
|
||||||
value: 'password',
|
value: 'password',
|
||||||
domain: '127.0.0.1',
|
domain,
|
||||||
path: '/',
|
path: '/',
|
||||||
expires: 1_742_402_728,
|
expires: 1_742_402_728,
|
||||||
httpOnly: true,
|
httpOnly: true,
|
||||||
@@ -449,7 +449,7 @@ export const utils = {
|
|||||||
{
|
{
|
||||||
name: 'immich_is_authenticated',
|
name: 'immich_is_authenticated',
|
||||||
value: 'true',
|
value: 'true',
|
||||||
domain: '127.0.0.1',
|
domain,
|
||||||
path: '/',
|
path: '/',
|
||||||
expires: 1_742_402_728,
|
expires: 1_742_402_728,
|
||||||
httpOnly: false,
|
httpOnly: false,
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ test.describe('Asset Viewer Navbar', () => {
|
|||||||
utils.initSdk();
|
utils.initSdk();
|
||||||
await utils.resetDatabase();
|
await utils.resetDatabase();
|
||||||
admin = await utils.adminSetup();
|
admin = await utils.adminSetup();
|
||||||
|
});
|
||||||
|
|
||||||
|
test.beforeEach(async () => {
|
||||||
asset = await utils.createAsset(admin.accessToken);
|
asset = await utils.createAsset(admin.accessToken);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -49,4 +52,14 @@ test.describe('Asset Viewer Navbar', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test.describe('actions', () => {
|
||||||
|
test('favorite asset with shortcut', async ({ context, page }) => {
|
||||||
|
await utils.setAuthCookies(context, admin.accessToken);
|
||||||
|
await page.goto(`/photos/${asset.id}`);
|
||||||
|
await page.waitForSelector('#immich-asset-viewer');
|
||||||
|
await page.keyboard.press('f');
|
||||||
|
await expect(page.locator('#notification-list').getByTestId('message')).toHaveText('Added to favorites');
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
56
e2e/src/web/specs/asset-viewer/slideshow.e2e-spec.ts
Normal file
56
e2e/src/web/specs/asset-viewer/slideshow.e2e-spec.ts
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
import { AssetMediaResponseDto, LoginResponseDto } from '@immich/sdk';
|
||||||
|
import { expect, type Page, test } from '@playwright/test';
|
||||||
|
import { utils } from 'src/utils';
|
||||||
|
|
||||||
|
test.describe('Slideshow', () => {
|
||||||
|
let admin: LoginResponseDto;
|
||||||
|
let asset: AssetMediaResponseDto;
|
||||||
|
|
||||||
|
test.beforeAll(async () => {
|
||||||
|
utils.initSdk();
|
||||||
|
await utils.resetDatabase();
|
||||||
|
admin = await utils.adminSetup();
|
||||||
|
asset = await utils.createAsset(admin.accessToken);
|
||||||
|
});
|
||||||
|
|
||||||
|
const openSlideshow = async (page: Page) => {
|
||||||
|
await page.goto(`/photos/${asset.id}`);
|
||||||
|
await page.waitForSelector('#immich-asset-viewer');
|
||||||
|
await page.getByRole('button', { name: 'More' }).click();
|
||||||
|
await page.getByRole('menuitem', { name: 'Slideshow' }).click();
|
||||||
|
};
|
||||||
|
|
||||||
|
test('open slideshow', async ({ context, page }) => {
|
||||||
|
await utils.setAuthCookies(context, admin.accessToken);
|
||||||
|
await openSlideshow(page);
|
||||||
|
await expect(page.getByRole('button', { name: 'Exit Slideshow' })).toBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('exit slideshow with button', async ({ context, page }) => {
|
||||||
|
await utils.setAuthCookies(context, admin.accessToken);
|
||||||
|
await openSlideshow(page);
|
||||||
|
|
||||||
|
const exitButton = page.getByRole('button', { name: 'Exit Slideshow' });
|
||||||
|
await exitButton.click();
|
||||||
|
await expect(exitButton).not.toBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('exit slideshow with shortcut', async ({ context, page }) => {
|
||||||
|
await utils.setAuthCookies(context, admin.accessToken);
|
||||||
|
await openSlideshow(page);
|
||||||
|
|
||||||
|
const exitButton = page.getByRole('button', { name: 'Exit Slideshow' });
|
||||||
|
await expect(exitButton).toBeVisible();
|
||||||
|
await page.keyboard.press('Escape');
|
||||||
|
await expect(exitButton).not.toBeVisible();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('favorite shortcut is disabled', async ({ context, page }) => {
|
||||||
|
await utils.setAuthCookies(context, admin.accessToken);
|
||||||
|
await openSlideshow(page);
|
||||||
|
|
||||||
|
await expect(page.getByRole('button', { name: 'Exit Slideshow' })).toBeVisible();
|
||||||
|
await page.keyboard.press('f');
|
||||||
|
await expect(page.locator('#notification-list')).not.toBeVisible();
|
||||||
|
});
|
||||||
|
});
|
||||||
25
e2e/src/web/specs/websocket.e2e-spec.ts
Normal file
25
e2e/src/web/specs/websocket.e2e-spec.ts
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
import { LoginResponseDto } from '@immich/sdk';
|
||||||
|
import { expect, test } from '@playwright/test';
|
||||||
|
import { utils } from 'src/utils';
|
||||||
|
|
||||||
|
test.describe('Websocket', () => {
|
||||||
|
let admin: LoginResponseDto;
|
||||||
|
|
||||||
|
test.beforeAll(async () => {
|
||||||
|
utils.initSdk();
|
||||||
|
await utils.resetDatabase();
|
||||||
|
admin = await utils.adminSetup();
|
||||||
|
});
|
||||||
|
|
||||||
|
test('connects using ipv4', async ({ page, context }) => {
|
||||||
|
await utils.setAuthCookies(context, admin.accessToken);
|
||||||
|
await page.goto('http://127.0.0.1:2283/');
|
||||||
|
await expect(page.locator('#sidebar')).toContainText('Server Online');
|
||||||
|
});
|
||||||
|
|
||||||
|
test('connects using ipv6', async ({ page, context }) => {
|
||||||
|
await utils.setAuthCookies(context, admin.accessToken, '[::1]');
|
||||||
|
await page.goto('http://[::1]:2283/');
|
||||||
|
await expect(page.locator('#sidebar')).toContainText('Server Online');
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -13,6 +13,7 @@ export default defineConfig({
|
|||||||
include: ['src/{api,cli,immich-admin}/specs/*.e2e-spec.ts'],
|
include: ['src/{api,cli,immich-admin}/specs/*.e2e-spec.ts'],
|
||||||
globalSetup,
|
globalSetup,
|
||||||
testTimeout: 15_000,
|
testTimeout: 15_000,
|
||||||
|
pool: 'threads',
|
||||||
poolOptions: {
|
poolOptions: {
|
||||||
threads: {
|
threads: {
|
||||||
singleThread: true,
|
singleThread: true,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
ARG DEVICE=cpu
|
ARG DEVICE=cpu
|
||||||
|
|
||||||
FROM python:3.11-bookworm@sha256:ef4b550f029a76b94f8e6cc6e4a8ed0e870fc6c5af1c4e9d77faaea50f41f6cd as builder-cpu
|
FROM python:3.11-bookworm@sha256:f89d36dbb4728313572f88877b8be7d11fd03bea964cdf0a6b0f61edfcde3709 as builder-cpu
|
||||||
|
|
||||||
FROM builder-cpu as builder-openvino
|
FROM builder-cpu as builder-openvino
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ RUN python3 -m venv /opt/venv
|
|||||||
COPY poetry.lock pyproject.toml ./
|
COPY poetry.lock pyproject.toml ./
|
||||||
RUN poetry install --sync --no-interaction --no-ansi --no-root --with ${DEVICE} --without dev
|
RUN poetry install --sync --no-interaction --no-ansi --no-root --with ${DEVICE} --without dev
|
||||||
|
|
||||||
FROM python:3.11-slim-bookworm@sha256:ee317183d292ee6ed30e90bc325043ca3f7d2e8c79ac5019575490b5256ae244 as prod-cpu
|
FROM python:3.11-slim-bookworm@sha256:7f49f147e57a65a5ca731203ed350ac5c88fa54aeb942924dd7057fe34a18e79 as prod-cpu
|
||||||
|
|
||||||
FROM prod-cpu as prod-openvino
|
FROM prod-cpu as prod-openvino
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ class Ann(metaclass=_Singleton):
|
|||||||
self.input_shapes: dict[int, tuple[tuple[int], ...]] = {}
|
self.input_shapes: dict[int, tuple[tuple[int], ...]] = {}
|
||||||
self.ann: int | None = None
|
self.ann: int | None = None
|
||||||
self.new()
|
self.new()
|
||||||
|
|
||||||
if self.tuning_file is not None:
|
if self.tuning_file is not None:
|
||||||
# make sure tuning file exists (without clearing contents)
|
# make sure tuning file exists (without clearing contents)
|
||||||
# once filled, the tuning file reduces the cost/time of the first
|
# once filled, the tuning file reduces the cost/time of the first
|
||||||
@@ -105,7 +105,7 @@ class Ann(metaclass=_Singleton):
|
|||||||
raise ValueError("model_path must be a file with extension .armnn, .tflite or .onnx")
|
raise ValueError("model_path must be a file with extension .armnn, .tflite or .onnx")
|
||||||
if not exists(model_path):
|
if not exists(model_path):
|
||||||
raise ValueError("model_path must point to an existing file!")
|
raise ValueError("model_path must point to an existing file!")
|
||||||
|
|
||||||
save_cached_network = False
|
save_cached_network = False
|
||||||
if cached_network_path is not None and not exists(cached_network_path):
|
if cached_network_path is not None and not exists(cached_network_path):
|
||||||
save_cached_network = True
|
save_cached_network = True
|
||||||
|
|||||||
@@ -2,53 +2,64 @@ from app.config import clean_name
|
|||||||
from app.schemas import ModelSource
|
from app.schemas import ModelSource
|
||||||
|
|
||||||
_OPENCLIP_MODELS = {
|
_OPENCLIP_MODELS = {
|
||||||
"RN50__openai",
|
|
||||||
"RN50__yfcc15m",
|
|
||||||
"RN50__cc12m",
|
|
||||||
"RN101__openai",
|
"RN101__openai",
|
||||||
"RN101__yfcc15m",
|
"RN101__yfcc15m",
|
||||||
"RN50x4__openai",
|
"RN50__cc12m",
|
||||||
|
"RN50__openai",
|
||||||
|
"RN50__yfcc15m",
|
||||||
"RN50x16__openai",
|
"RN50x16__openai",
|
||||||
|
"RN50x4__openai",
|
||||||
"RN50x64__openai",
|
"RN50x64__openai",
|
||||||
"ViT-B-32__openai",
|
"ViT-B-16-SigLIP-256__webli",
|
||||||
|
"ViT-B-16-SigLIP-384__webli",
|
||||||
|
"ViT-B-16-SigLIP-512__webli",
|
||||||
|
"ViT-B-16-SigLIP-i18n-256__webli",
|
||||||
|
"ViT-B-16-SigLIP__webli",
|
||||||
|
"ViT-B-16-plus-240__laion400m_e31",
|
||||||
|
"ViT-B-16-plus-240__laion400m_e32",
|
||||||
|
"ViT-B-16__laion400m_e31",
|
||||||
|
"ViT-B-16__laion400m_e32",
|
||||||
|
"ViT-B-16__openai",
|
||||||
|
"ViT-B-32__laion2b-s34b-b79k",
|
||||||
"ViT-B-32__laion2b_e16",
|
"ViT-B-32__laion2b_e16",
|
||||||
"ViT-B-32__laion400m_e31",
|
"ViT-B-32__laion400m_e31",
|
||||||
"ViT-B-32__laion400m_e32",
|
"ViT-B-32__laion400m_e32",
|
||||||
"ViT-B-32__laion2b-s34b-b79k",
|
"ViT-B-32__openai",
|
||||||
"ViT-B-16__openai",
|
"ViT-H-14-378-quickgelu__dfn5b",
|
||||||
"ViT-B-16__laion400m_e31",
|
"ViT-H-14-quickgelu__dfn5b",
|
||||||
"ViT-B-16__laion400m_e32",
|
"ViT-H-14__laion2b-s32b-b79k",
|
||||||
"ViT-B-16-plus-240__laion400m_e31",
|
"ViT-L-14-336__openai",
|
||||||
"ViT-B-16-plus-240__laion400m_e32",
|
"ViT-L-14-quickgelu__dfn2b",
|
||||||
"ViT-L-14__openai",
|
"ViT-L-14__laion2b-s32b-b82k",
|
||||||
"ViT-L-14__laion400m_e31",
|
"ViT-L-14__laion400m_e31",
|
||||||
"ViT-L-14__laion400m_e32",
|
"ViT-L-14__laion400m_e32",
|
||||||
"ViT-L-14__laion2b-s32b-b82k",
|
"ViT-L-14__openai",
|
||||||
"ViT-L-14-336__openai",
|
"ViT-L-16-SigLIP-256__webli",
|
||||||
"ViT-H-14__laion2b-s32b-b79k",
|
"ViT-L-16-SigLIP-384__webli",
|
||||||
|
"ViT-SO400M-14-SigLIP-384__webli",
|
||||||
"ViT-g-14__laion2b-s12b-b42k",
|
"ViT-g-14__laion2b-s12b-b42k",
|
||||||
"ViT-L-14-quickgelu__dfn2b",
|
"XLM-Roberta-Base-ViT-B-32__laion5b_s13b_b90k",
|
||||||
"ViT-H-14-quickgelu__dfn5b",
|
|
||||||
"ViT-H-14-378-quickgelu__dfn5b",
|
|
||||||
"XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k",
|
"XLM-Roberta-Large-ViT-H-14__frozen_laion5b_s13b_b90k",
|
||||||
|
"nllb-clip-base-siglip__mrl",
|
||||||
"nllb-clip-base-siglip__v1",
|
"nllb-clip-base-siglip__v1",
|
||||||
|
"nllb-clip-large-siglip__mrl",
|
||||||
"nllb-clip-large-siglip__v1",
|
"nllb-clip-large-siglip__v1",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
_MCLIP_MODELS = {
|
_MCLIP_MODELS = {
|
||||||
"LABSE-Vit-L-14",
|
"LABSE-Vit-L-14",
|
||||||
"XLM-Roberta-Large-Vit-B-32",
|
|
||||||
"XLM-Roberta-Large-Vit-B-16Plus",
|
"XLM-Roberta-Large-Vit-B-16Plus",
|
||||||
|
"XLM-Roberta-Large-Vit-B-32",
|
||||||
"XLM-Roberta-Large-Vit-L-14",
|
"XLM-Roberta-Large-Vit-L-14",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
_INSIGHTFACE_MODELS = {
|
_INSIGHTFACE_MODELS = {
|
||||||
"antelopev2",
|
"antelopev2",
|
||||||
"buffalo_l",
|
|
||||||
"buffalo_m",
|
|
||||||
"buffalo_s",
|
"buffalo_s",
|
||||||
|
"buffalo_m",
|
||||||
|
"buffalo_l",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM mambaorg/micromamba:bookworm-slim@sha256:94d6837f023c0fc0bb68782dd2a984ff7fe0e21ea7e533056c9b8ca060e31de2 as builder
|
FROM mambaorg/micromamba:bookworm-slim@sha256:eb744eed8e9308edaea942ddd92ad8da8a9b904ca0796fa240b72de51ce0d353 as builder
|
||||||
|
|
||||||
ENV TRANSFORMERS_CACHE=/cache \
|
ENV TRANSFORMERS_CACHE=/cache \
|
||||||
PYTHONDONTWRITEBYTECODE=1 \
|
PYTHONDONTWRITEBYTECODE=1 \
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,7 @@ name: base
|
|||||||
channels:
|
channels:
|
||||||
- conda-forge
|
- conda-forge
|
||||||
- nvidia
|
- nvidia
|
||||||
- pytorch-nightly
|
- pytorch
|
||||||
platforms:
|
platforms:
|
||||||
- linux-64
|
- linux-64
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -13,7 +13,7 @@ dependencies:
|
|||||||
- orjson==3.*
|
- orjson==3.*
|
||||||
- pip
|
- pip
|
||||||
- python==3.11.*
|
- python==3.11.*
|
||||||
- pytorch
|
- pytorch>=2.3
|
||||||
- rich==13.*
|
- rich==13.*
|
||||||
- safetensors==0.*
|
- safetensors==0.*
|
||||||
- setuptools==68.*
|
- setuptools==68.*
|
||||||
@@ -21,5 +21,5 @@ dependencies:
|
|||||||
- transformers==4.*
|
- transformers==4.*
|
||||||
- pip:
|
- pip:
|
||||||
- multilingual-clip
|
- multilingual-clip
|
||||||
- onnx-simplifier
|
- onnxsim
|
||||||
category: main
|
category: main
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
import warnings
|
import warnings
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@@ -8,7 +9,6 @@ from transformers import AutoTokenizer
|
|||||||
|
|
||||||
from .openclip import OpenCLIPModelConfig
|
from .openclip import OpenCLIPModelConfig
|
||||||
from .openclip import to_onnx as openclip_to_onnx
|
from .openclip import to_onnx as openclip_to_onnx
|
||||||
from .optimize import optimize
|
|
||||||
from .util import get_model_path
|
from .util import get_model_path
|
||||||
|
|
||||||
_MCLIP_TO_OPENCLIP = {
|
_MCLIP_TO_OPENCLIP = {
|
||||||
@@ -23,18 +23,20 @@ def to_onnx(
|
|||||||
model_name: str,
|
model_name: str,
|
||||||
output_dir_visual: Path | str,
|
output_dir_visual: Path | str,
|
||||||
output_dir_textual: Path | str,
|
output_dir_textual: Path | str,
|
||||||
) -> None:
|
) -> tuple[Path, Path]:
|
||||||
textual_path = get_model_path(output_dir_textual)
|
textual_path = get_model_path(output_dir_textual)
|
||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
model = MultilingualCLIP.from_pretrained(model_name, cache_dir=tmpdir)
|
model = MultilingualCLIP.from_pretrained(model_name, cache_dir=os.environ.get("CACHE_DIR", tmpdir))
|
||||||
AutoTokenizer.from_pretrained(model_name).save_pretrained(output_dir_textual)
|
AutoTokenizer.from_pretrained(model_name).save_pretrained(output_dir_textual)
|
||||||
|
|
||||||
|
model.eval()
|
||||||
for param in model.parameters():
|
for param in model.parameters():
|
||||||
param.requires_grad_(False)
|
param.requires_grad_(False)
|
||||||
|
|
||||||
export_text_encoder(model, textual_path)
|
export_text_encoder(model, textual_path)
|
||||||
openclip_to_onnx(_MCLIP_TO_OPENCLIP[model_name], output_dir_visual)
|
visual_path, _ = openclip_to_onnx(_MCLIP_TO_OPENCLIP[model_name], output_dir_visual)
|
||||||
optimize(textual_path)
|
assert visual_path is not None, "Visual model export failed"
|
||||||
|
return visual_path, textual_path
|
||||||
|
|
||||||
|
|
||||||
def export_text_encoder(model: MultilingualCLIP, output_path: Path | str) -> None:
|
def export_text_encoder(model: MultilingualCLIP, output_path: Path | str) -> None:
|
||||||
@@ -58,10 +60,10 @@ def export_text_encoder(model: MultilingualCLIP, output_path: Path | str) -> Non
|
|||||||
args,
|
args,
|
||||||
output_path.as_posix(),
|
output_path.as_posix(),
|
||||||
input_names=["input_ids", "attention_mask"],
|
input_names=["input_ids", "attention_mask"],
|
||||||
output_names=["text_embedding"],
|
output_names=["embedding"],
|
||||||
opset_version=17,
|
opset_version=17,
|
||||||
dynamic_axes={
|
# dynamic_axes={
|
||||||
"input_ids": {0: "batch_size", 1: "sequence_length"},
|
# "input_ids": {0: "batch_size", 1: "sequence_length"},
|
||||||
"attention_mask": {0: "batch_size", 1: "sequence_length"},
|
# "attention_mask": {0: "batch_size", 1: "sequence_length"},
|
||||||
},
|
# },
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
import warnings
|
import warnings
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
@@ -7,7 +8,6 @@ import open_clip
|
|||||||
import torch
|
import torch
|
||||||
from transformers import AutoTokenizer
|
from transformers import AutoTokenizer
|
||||||
|
|
||||||
from .optimize import optimize
|
|
||||||
from .util import get_model_path, save_config
|
from .util import get_model_path, save_config
|
||||||
|
|
||||||
|
|
||||||
@@ -23,25 +23,28 @@ class OpenCLIPModelConfig:
|
|||||||
if open_clip_cfg is None:
|
if open_clip_cfg is None:
|
||||||
raise ValueError(f"Unknown model {self.name}")
|
raise ValueError(f"Unknown model {self.name}")
|
||||||
self.image_size = open_clip_cfg["vision_cfg"]["image_size"]
|
self.image_size = open_clip_cfg["vision_cfg"]["image_size"]
|
||||||
self.sequence_length = open_clip_cfg["text_cfg"]["context_length"]
|
self.sequence_length = open_clip_cfg["text_cfg"].get("context_length", 77)
|
||||||
|
|
||||||
|
|
||||||
def to_onnx(
|
def to_onnx(
|
||||||
model_cfg: OpenCLIPModelConfig,
|
model_cfg: OpenCLIPModelConfig,
|
||||||
output_dir_visual: Path | str | None = None,
|
output_dir_visual: Path | str | None = None,
|
||||||
output_dir_textual: Path | str | None = None,
|
output_dir_textual: Path | str | None = None,
|
||||||
) -> None:
|
) -> tuple[Path | None, Path | None]:
|
||||||
|
visual_path = None
|
||||||
|
textual_path = None
|
||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
model = open_clip.create_model(
|
model = open_clip.create_model(
|
||||||
model_cfg.name,
|
model_cfg.name,
|
||||||
pretrained=model_cfg.pretrained,
|
pretrained=model_cfg.pretrained,
|
||||||
jit=False,
|
jit=False,
|
||||||
cache_dir=tmpdir,
|
cache_dir=os.environ.get("CACHE_DIR", tmpdir),
|
||||||
require_pretrained=True,
|
require_pretrained=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
text_vision_cfg = open_clip.get_model_config(model_cfg.name)
|
text_vision_cfg = open_clip.get_model_config(model_cfg.name)
|
||||||
|
|
||||||
|
model.eval()
|
||||||
for param in model.parameters():
|
for param in model.parameters():
|
||||||
param.requires_grad_(False)
|
param.requires_grad_(False)
|
||||||
|
|
||||||
@@ -53,8 +56,6 @@ def to_onnx(
|
|||||||
save_config(text_vision_cfg, output_dir_visual.parent / "config.json")
|
save_config(text_vision_cfg, output_dir_visual.parent / "config.json")
|
||||||
export_image_encoder(model, model_cfg, visual_path)
|
export_image_encoder(model, model_cfg, visual_path)
|
||||||
|
|
||||||
optimize(visual_path)
|
|
||||||
|
|
||||||
if output_dir_textual is not None:
|
if output_dir_textual is not None:
|
||||||
output_dir_textual = Path(output_dir_textual)
|
output_dir_textual = Path(output_dir_textual)
|
||||||
textual_path = get_model_path(output_dir_textual)
|
textual_path = get_model_path(output_dir_textual)
|
||||||
@@ -62,7 +63,7 @@ def to_onnx(
|
|||||||
tokenizer_name = text_vision_cfg["text_cfg"].get("hf_tokenizer_name", "openai/clip-vit-base-patch32")
|
tokenizer_name = text_vision_cfg["text_cfg"].get("hf_tokenizer_name", "openai/clip-vit-base-patch32")
|
||||||
AutoTokenizer.from_pretrained(tokenizer_name).save_pretrained(output_dir_textual)
|
AutoTokenizer.from_pretrained(tokenizer_name).save_pretrained(output_dir_textual)
|
||||||
export_text_encoder(model, model_cfg, textual_path)
|
export_text_encoder(model, model_cfg, textual_path)
|
||||||
optimize(textual_path)
|
return visual_path, textual_path
|
||||||
|
|
||||||
|
|
||||||
def export_image_encoder(model: open_clip.CLIP, model_cfg: OpenCLIPModelConfig, output_path: Path | str) -> None:
|
def export_image_encoder(model: open_clip.CLIP, model_cfg: OpenCLIPModelConfig, output_path: Path | str) -> None:
|
||||||
@@ -83,9 +84,9 @@ def export_image_encoder(model: open_clip.CLIP, model_cfg: OpenCLIPModelConfig,
|
|||||||
args,
|
args,
|
||||||
output_path.as_posix(),
|
output_path.as_posix(),
|
||||||
input_names=["image"],
|
input_names=["image"],
|
||||||
output_names=["image_embedding"],
|
output_names=["embedding"],
|
||||||
opset_version=17,
|
opset_version=17,
|
||||||
dynamic_axes={"image": {0: "batch_size"}},
|
# dynamic_axes={"image": {0: "batch_size"}},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -107,7 +108,7 @@ def export_text_encoder(model: open_clip.CLIP, model_cfg: OpenCLIPModelConfig, o
|
|||||||
args,
|
args,
|
||||||
output_path.as_posix(),
|
output_path.as_posix(),
|
||||||
input_names=["text"],
|
input_names=["text"],
|
||||||
output_names=["text_embedding"],
|
output_names=["embedding"],
|
||||||
opset_version=17,
|
opset_version=17,
|
||||||
dynamic_axes={"text": {0: "batch_size"}},
|
# dynamic_axes={"text": {0: "batch_size"}},
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,13 +5,26 @@ import onnxruntime as ort
|
|||||||
import onnxsim
|
import onnxsim
|
||||||
|
|
||||||
|
|
||||||
|
def save_onnx(model: onnx.ModelProto, output_path: Path | str) -> None:
|
||||||
|
try:
|
||||||
|
onnx.save(model, output_path)
|
||||||
|
except ValueError as e:
|
||||||
|
if "The proto size is larger than the 2 GB limit." in str(e):
|
||||||
|
onnx.save(model, output_path, save_as_external_data=True, size_threshold=1_000_000)
|
||||||
|
else:
|
||||||
|
raise e
|
||||||
|
|
||||||
|
|
||||||
def optimize_onnxsim(model_path: Path | str, output_path: Path | str) -> None:
|
def optimize_onnxsim(model_path: Path | str, output_path: Path | str) -> None:
|
||||||
model_path = Path(model_path)
|
model_path = Path(model_path)
|
||||||
output_path = Path(output_path)
|
output_path = Path(output_path)
|
||||||
model = onnx.load(model_path.as_posix())
|
model = onnx.load(model_path.as_posix())
|
||||||
model, check = onnxsim.simplify(model, skip_shape_inference=True)
|
model, check = onnxsim.simplify(model)
|
||||||
assert check, "Simplified ONNX model could not be validated"
|
assert check, "Simplified ONNX model could not be validated"
|
||||||
onnx.save(model, output_path.as_posix())
|
for file in model_path.parent.iterdir():
|
||||||
|
if file.name.startswith("Constant") or "onnx" in file.name or file.suffix == ".weight":
|
||||||
|
file.unlink()
|
||||||
|
save_onnx(model, output_path)
|
||||||
|
|
||||||
|
|
||||||
def optimize_ort(
|
def optimize_ort(
|
||||||
@@ -33,6 +46,4 @@ def optimize(model_path: Path | str) -> None:
|
|||||||
model_path = Path(model_path)
|
model_path = Path(model_path)
|
||||||
|
|
||||||
optimize_ort(model_path, model_path)
|
optimize_ort(model_path, model_path)
|
||||||
# onnxsim serializes large models as a blob, which uses much more memory when loading the model at runtime
|
optimize_onnxsim(model_path, model_path)
|
||||||
if not any(file.name.startswith("Constant") for file in model_path.parent.iterdir()):
|
|
||||||
optimize_onnxsim(model_path, model_path)
|
|
||||||
|
|||||||
@@ -3,74 +3,111 @@ import os
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from tempfile import TemporaryDirectory
|
from tempfile import TemporaryDirectory
|
||||||
|
|
||||||
from huggingface_hub import create_repo, login, upload_folder
|
import torch
|
||||||
|
from huggingface_hub import create_repo, upload_folder
|
||||||
from models import mclip, openclip
|
from models import mclip, openclip
|
||||||
|
from models.optimize import optimize
|
||||||
from rich.progress import Progress
|
from rich.progress import Progress
|
||||||
|
|
||||||
models = [
|
models = [
|
||||||
"RN50::openai",
|
"M-CLIP/LABSE-Vit-L-14",
|
||||||
"RN50::yfcc15m",
|
"M-CLIP/XLM-Roberta-Large-Vit-B-16Plus",
|
||||||
"RN50::cc12m",
|
"M-CLIP/XLM-Roberta-Large-Vit-B-32",
|
||||||
|
"M-CLIP/XLM-Roberta-Large-Vit-L-14",
|
||||||
"RN101::openai",
|
"RN101::openai",
|
||||||
"RN101::yfcc15m",
|
"RN101::yfcc15m",
|
||||||
"RN50x4::openai",
|
"RN50::cc12m",
|
||||||
|
"RN50::openai",
|
||||||
|
"RN50::yfcc15m",
|
||||||
"RN50x16::openai",
|
"RN50x16::openai",
|
||||||
|
"RN50x4::openai",
|
||||||
"RN50x64::openai",
|
"RN50x64::openai",
|
||||||
"ViT-B-32::openai",
|
"ViT-B-16-SigLIP-256::webli",
|
||||||
|
"ViT-B-16-SigLIP-384::webli",
|
||||||
|
"ViT-B-16-SigLIP-512::webli",
|
||||||
|
"ViT-B-16-SigLIP-i18n-256::webli",
|
||||||
|
"ViT-B-16-SigLIP::webli",
|
||||||
|
"ViT-B-16-plus-240::laion400m_e31",
|
||||||
|
"ViT-B-16-plus-240::laion400m_e32",
|
||||||
|
"ViT-B-16::laion400m_e31",
|
||||||
|
"ViT-B-16::laion400m_e32",
|
||||||
|
"ViT-B-16::openai",
|
||||||
|
"ViT-B-32::laion2b-s34b-b79k",
|
||||||
"ViT-B-32::laion2b_e16",
|
"ViT-B-32::laion2b_e16",
|
||||||
"ViT-B-32::laion400m_e31",
|
"ViT-B-32::laion400m_e31",
|
||||||
"ViT-B-32::laion400m_e32",
|
"ViT-B-32::laion400m_e32",
|
||||||
"ViT-B-32::laion2b-s34b-b79k",
|
"ViT-B-32::openai",
|
||||||
"ViT-B-16::openai",
|
"ViT-H-14-378-quickgelu::dfn5b",
|
||||||
"ViT-B-16::laion400m_e31",
|
"ViT-H-14-quickgelu::dfn5b",
|
||||||
"ViT-B-16::laion400m_e32",
|
"ViT-H-14::laion2b-s32b-b79k",
|
||||||
"ViT-B-16-plus-240::laion400m_e31",
|
"ViT-L-14-336::openai",
|
||||||
"ViT-B-16-plus-240::laion400m_e32",
|
"ViT-L-14-quickgelu::dfn2b",
|
||||||
"ViT-L-14::openai",
|
"ViT-L-14::laion2b-s32b-b82k",
|
||||||
"ViT-L-14::laion400m_e31",
|
"ViT-L-14::laion400m_e31",
|
||||||
"ViT-L-14::laion400m_e32",
|
"ViT-L-14::laion400m_e32",
|
||||||
"ViT-L-14::laion2b-s32b-b82k",
|
"ViT-L-14::openai",
|
||||||
"ViT-L-14-336::openai",
|
"ViT-L-16-SigLIP-256::webli",
|
||||||
"ViT-H-14::laion2b-s32b-b79k",
|
"ViT-L-16-SigLIP-384::webli",
|
||||||
|
"ViT-SO400M-14-SigLIP-384::webli",
|
||||||
"ViT-g-14::laion2b-s12b-b42k",
|
"ViT-g-14::laion2b-s12b-b42k",
|
||||||
"M-CLIP/LABSE-Vit-L-14",
|
"nllb-clip-base-siglip::mrl",
|
||||||
"M-CLIP/XLM-Roberta-Large-Vit-B-32",
|
"nllb-clip-base-siglip::v1",
|
||||||
"M-CLIP/XLM-Roberta-Large-Vit-B-16Plus",
|
"nllb-clip-large-siglip::mrl",
|
||||||
"M-CLIP/XLM-Roberta-Large-Vit-L-14",
|
"nllb-clip-large-siglip::v1",
|
||||||
|
"xlm-roberta-base-ViT-B-32::laion5b_s13b_b90k",
|
||||||
|
"xlm-roberta-large-ViT-H-14::frozen_laion5b_s13b_b90k",
|
||||||
]
|
]
|
||||||
|
|
||||||
login(token=os.environ["HF_AUTH_TOKEN"])
|
# glob to delete old UUID blobs when reuploading models
|
||||||
|
uuid_char = "[a-fA-F0-9]"
|
||||||
|
uuid_glob = uuid_char * 8 + "-" + uuid_char * 4 + "-" + uuid_char * 4 + "-" + uuid_char * 4 + "-" + uuid_char * 12
|
||||||
|
|
||||||
|
# remote repo files to be deleted before uploading
|
||||||
|
# deletion is in the same commit as the upload, so it's atomic
|
||||||
|
delete_patterns = ["**/*onnx*", "**/Constant*", "**/*.weight", "**/*.bias", f"**/{uuid_glob}"]
|
||||||
|
|
||||||
with Progress() as progress:
|
with Progress() as progress:
|
||||||
task1 = progress.add_task("[green]Exporting models...", total=len(models))
|
task = progress.add_task("[green]Exporting models...", total=len(models))
|
||||||
task2 = progress.add_task("[yellow]Uploading models...", total=len(models))
|
token = os.environ.get("HF_AUTH_TOKEN")
|
||||||
|
torch.backends.mha.set_fastpath_enabled(False)
|
||||||
with TemporaryDirectory() as tmp:
|
with TemporaryDirectory() as tmp:
|
||||||
tmpdir = Path(tmp)
|
tmpdir = Path(tmp)
|
||||||
for model in models:
|
for model in models:
|
||||||
model_name = model.split("/")[-1].replace("::", "__")
|
model_name = model.split("/")[-1].replace("::", "__")
|
||||||
|
hf_model_name = model_name.replace("xlm-roberta-large", "XLM-Roberta-Large")
|
||||||
|
hf_model_name = model_name.replace("xlm-roberta-base", "XLM-Roberta-Base")
|
||||||
config_path = tmpdir / model_name / "config.json"
|
config_path = tmpdir / model_name / "config.json"
|
||||||
|
|
||||||
def upload() -> None:
|
|
||||||
progress.update(task2, description=f"[yellow]Uploading {model_name}")
|
|
||||||
repo_id = f"immich-app/{model_name}"
|
|
||||||
|
|
||||||
create_repo(repo_id, exist_ok=True)
|
|
||||||
upload_folder(repo_id=repo_id, folder_path=tmpdir / model_name)
|
|
||||||
progress.update(task2, advance=1)
|
|
||||||
|
|
||||||
def export() -> None:
|
def export() -> None:
|
||||||
progress.update(task1, description=f"[green]Exporting {model_name}")
|
progress.update(task, description=f"[green]Exporting {hf_model_name}")
|
||||||
visual_dir = tmpdir / model_name / "visual"
|
visual_dir = tmpdir / hf_model_name / "visual"
|
||||||
textual_dir = tmpdir / model_name / "textual"
|
textual_dir = tmpdir / hf_model_name / "textual"
|
||||||
if model.startswith("M-CLIP"):
|
if model.startswith("M-CLIP"):
|
||||||
mclip.to_onnx(model, visual_dir, textual_dir)
|
visual_path, textual_path = mclip.to_onnx(model, visual_dir, textual_dir)
|
||||||
else:
|
else:
|
||||||
name, _, pretrained = model_name.partition("__")
|
name, _, pretrained = model_name.partition("__")
|
||||||
openclip.to_onnx(openclip.OpenCLIPModelConfig(name, pretrained), visual_dir, textual_dir)
|
config = openclip.OpenCLIPModelConfig(name, pretrained)
|
||||||
|
visual_path, textual_path = openclip.to_onnx(config, visual_dir, textual_dir)
|
||||||
|
progress.update(task, description=f"[green]Optimizing {hf_model_name} (visual)")
|
||||||
|
optimize(visual_path)
|
||||||
|
progress.update(task, description=f"[green]Optimizing {hf_model_name} (textual)")
|
||||||
|
optimize(textual_path)
|
||||||
|
|
||||||
progress.update(task1, advance=1)
|
|
||||||
gc.collect()
|
gc.collect()
|
||||||
|
|
||||||
|
def upload() -> None:
|
||||||
|
progress.update(task, description=f"[yellow]Uploading {hf_model_name}")
|
||||||
|
repo_id = f"immich-app/{hf_model_name}"
|
||||||
|
|
||||||
|
create_repo(repo_id, exist_ok=True)
|
||||||
|
upload_folder(
|
||||||
|
repo_id=repo_id,
|
||||||
|
folder_path=tmpdir / hf_model_name,
|
||||||
|
delete_patterns=delete_patterns,
|
||||||
|
token=token,
|
||||||
|
)
|
||||||
|
|
||||||
export()
|
export()
|
||||||
upload()
|
if token is not None:
|
||||||
|
upload()
|
||||||
|
progress.update(task, advance=1)
|
||||||
|
|||||||
58
machine-learning/poetry.lock
generated
58
machine-learning/poetry.lock
generated
@@ -1236,13 +1236,13 @@ socks = ["socksio (==1.*)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "huggingface-hub"
|
name = "huggingface-hub"
|
||||||
version = "0.24.0"
|
version = "0.24.5"
|
||||||
description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub"
|
description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8.0"
|
python-versions = ">=3.8.0"
|
||||||
files = [
|
files = [
|
||||||
{file = "huggingface_hub-0.24.0-py3-none-any.whl", hash = "sha256:7ad92edefb93d8145c061f6df8d99df2ff85f8379ba5fac8a95aca0642afa5d7"},
|
{file = "huggingface_hub-0.24.5-py3-none-any.whl", hash = "sha256:d93fb63b1f1a919a22ce91a14518974e81fc4610bf344dfe7572343ce8d3aced"},
|
||||||
{file = "huggingface_hub-0.24.0.tar.gz", hash = "sha256:6c7092736b577d89d57b3cdfea026f1b0dc2234ae783fa0d59caf1bf7d52dfa7"},
|
{file = "huggingface_hub-0.24.5.tar.gz", hash = "sha256:7b45d6744dd53ce9cbf9880957de00e9d10a9ae837f1c9b7255fc8fa4e8264f3"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -2466,13 +2466,13 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pytest"
|
name = "pytest"
|
||||||
version = "8.2.2"
|
version = "8.3.2"
|
||||||
description = "pytest: simple powerful testing with Python"
|
description = "pytest: simple powerful testing with Python"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "pytest-8.2.2-py3-none-any.whl", hash = "sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343"},
|
{file = "pytest-8.3.2-py3-none-any.whl", hash = "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5"},
|
||||||
{file = "pytest-8.2.2.tar.gz", hash = "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977"},
|
{file = "pytest-8.3.2.tar.gz", hash = "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -2480,7 +2480,7 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""}
|
|||||||
exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""}
|
exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""}
|
||||||
iniconfig = "*"
|
iniconfig = "*"
|
||||||
packaging = "*"
|
packaging = "*"
|
||||||
pluggy = ">=1.5,<2.0"
|
pluggy = ">=1.5,<2"
|
||||||
tomli = {version = ">=1", markers = "python_version < \"3.11\""}
|
tomli = {version = ">=1", markers = "python_version < \"3.11\""}
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
@@ -2827,29 +2827,29 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruff"
|
name = "ruff"
|
||||||
version = "0.5.4"
|
version = "0.5.6"
|
||||||
description = "An extremely fast Python linter and code formatter, written in Rust."
|
description = "An extremely fast Python linter and code formatter, written in Rust."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.7"
|
||||||
files = [
|
files = [
|
||||||
{file = "ruff-0.5.4-py3-none-linux_armv6l.whl", hash = "sha256:82acef724fc639699b4d3177ed5cc14c2a5aacd92edd578a9e846d5b5ec18ddf"},
|
{file = "ruff-0.5.6-py3-none-linux_armv6l.whl", hash = "sha256:a0ef5930799a05522985b9cec8290b185952f3fcd86c1772c3bdbd732667fdcd"},
|
||||||
{file = "ruff-0.5.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:da62e87637c8838b325e65beee485f71eb36202ce8e3cdbc24b9fcb8b99a37be"},
|
{file = "ruff-0.5.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b652dc14f6ef5d1552821e006f747802cc32d98d5509349e168f6bf0ee9f8f42"},
|
||||||
{file = "ruff-0.5.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:e98ad088edfe2f3b85a925ee96da652028f093d6b9b56b76fc242d8abb8e2059"},
|
{file = "ruff-0.5.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:80521b88d26a45e871f31e4b88938fd87db7011bb961d8afd2664982dfc3641a"},
|
||||||
{file = "ruff-0.5.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c55efbecc3152d614cfe6c2247a3054cfe358cefbf794f8c79c8575456efe19"},
|
{file = "ruff-0.5.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9bc8f328a9f1309ae80e4d392836e7dbc77303b38ed4a7112699e63d3b066ab"},
|
||||||
{file = "ruff-0.5.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9b85eaa1f653abd0a70603b8b7008d9e00c9fa1bbd0bf40dad3f0c0bdd06793"},
|
{file = "ruff-0.5.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4d394940f61f7720ad371ddedf14722ee1d6250fd8d020f5ea5a86e7be217daf"},
|
||||||
{file = "ruff-0.5.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cf497a47751be8c883059c4613ba2f50dd06ec672692de2811f039432875278"},
|
{file = "ruff-0.5.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111a99cdb02f69ddb2571e2756e017a1496c2c3a2aeefe7b988ddab38b416d36"},
|
||||||
{file = "ruff-0.5.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:09c14ed6a72af9ccc8d2e313d7acf7037f0faff43cde4b507e66f14e812e37f7"},
|
{file = "ruff-0.5.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:e395daba77a79f6dc0d07311f94cc0560375ca20c06f354c7c99af3bf4560c5d"},
|
||||||
{file = "ruff-0.5.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:628f6b8f97b8bad2490240aa84f3e68f390e13fabc9af5c0d3b96b485921cd60"},
|
{file = "ruff-0.5.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c476acb43c3c51e3c614a2e878ee1589655fa02dab19fe2db0423a06d6a5b1b6"},
|
||||||
{file = "ruff-0.5.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3520a00c0563d7a7a7c324ad7e2cde2355733dafa9592c671fb2e9e3cd8194c1"},
|
{file = "ruff-0.5.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e2ff8003f5252fd68425fd53d27c1f08b201d7ed714bb31a55c9ac1d4c13e2eb"},
|
||||||
{file = "ruff-0.5.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93789f14ca2244fb91ed481456f6d0bb8af1f75a330e133b67d08f06ad85b516"},
|
{file = "ruff-0.5.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c94e084ba3eaa80c2172918c2ca2eb2230c3f15925f4ed8b6297260c6ef179ad"},
|
||||||
{file = "ruff-0.5.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:029454e2824eafa25b9df46882f7f7844d36fd8ce51c1b7f6d97e2615a57bbcc"},
|
{file = "ruff-0.5.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1f77c1c3aa0669fb230b06fb24ffa3e879391a3ba3f15e3d633a752da5a3e670"},
|
||||||
{file = "ruff-0.5.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:9492320eed573a13a0bc09a2957f17aa733fff9ce5bf00e66e6d4a88ec33813f"},
|
{file = "ruff-0.5.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f908148c93c02873210a52cad75a6eda856b2cbb72250370ce3afef6fb99b1ed"},
|
||||||
{file = "ruff-0.5.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:a6e1f62a92c645e2919b65c02e79d1f61e78a58eddaebca6c23659e7c7cb4ac7"},
|
{file = "ruff-0.5.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:563a7ae61ad284187d3071d9041c08019975693ff655438d8d4be26e492760bd"},
|
||||||
{file = "ruff-0.5.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:768fa9208df2bec4b2ce61dbc7c2ddd6b1be9fb48f1f8d3b78b3332c7d71c1ff"},
|
{file = "ruff-0.5.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:94fe60869bfbf0521e04fd62b74cbca21cbc5beb67cbb75ab33fe8c174f54414"},
|
||||||
{file = "ruff-0.5.4-py3-none-win32.whl", hash = "sha256:e1e7393e9c56128e870b233c82ceb42164966f25b30f68acbb24ed69ce9c3a4e"},
|
{file = "ruff-0.5.6-py3-none-win32.whl", hash = "sha256:e6a584c1de6f8591c2570e171cc7ce482bb983d49c70ddf014393cd39e9dfaed"},
|
||||||
{file = "ruff-0.5.4-py3-none-win_amd64.whl", hash = "sha256:58b54459221fd3f661a7329f177f091eb35cf7a603f01d9eb3eb11cc348d38c4"},
|
{file = "ruff-0.5.6-py3-none-win_amd64.whl", hash = "sha256:d7fe7dccb1a89dc66785d7aa0ac283b2269712d8ed19c63af908fdccca5ccc1a"},
|
||||||
{file = "ruff-0.5.4-py3-none-win_arm64.whl", hash = "sha256:bd53da65f1085fb5b307c38fd3c0829e76acf7b2a912d8d79cadcdb4875c1eb7"},
|
{file = "ruff-0.5.6-py3-none-win_arm64.whl", hash = "sha256:57c6c0dd997b31b536bff49b9eee5ed3194d60605a4427f735eeb1f9c1b8d264"},
|
||||||
{file = "ruff-0.5.4.tar.gz", hash = "sha256:2795726d5f71c4f4e70653273d1c23a8182f07dd8e48c12de5d867bfb7557eed"},
|
{file = "ruff-0.5.6.tar.gz", hash = "sha256:07c9e3c2a8e1fe377dd460371c3462671a728c981c3205a5217291422209f642"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -3263,13 +3263,13 @@ zstd = ["zstandard (>=0.18.0)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "uvicorn"
|
name = "uvicorn"
|
||||||
version = "0.30.1"
|
version = "0.30.5"
|
||||||
description = "The lightning-fast ASGI server."
|
description = "The lightning-fast ASGI server."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "uvicorn-0.30.1-py3-none-any.whl", hash = "sha256:cd17daa7f3b9d7a24de3617820e634d0933b69eed8e33a516071174427238c81"},
|
{file = "uvicorn-0.30.5-py3-none-any.whl", hash = "sha256:b2d86de274726e9878188fa07576c9ceeff90a839e2b6e25c917fe05f5a6c835"},
|
||||||
{file = "uvicorn-0.30.1.tar.gz", hash = "sha256:d46cd8e0fd80240baffbcd9ec1012a712938754afcf81bce56c024c1656aece8"},
|
{file = "uvicorn-0.30.5.tar.gz", hash = "sha256:ac6fdbd4425c5fd17a9fe39daf4d4d075da6fdc80f653e5894cdc2fd98752bee"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "machine-learning"
|
name = "machine-learning"
|
||||||
version = "1.110.0"
|
version = "1.111.0"
|
||||||
description = ""
|
description = ""
|
||||||
authors = ["Hau Tran <alex.tran1502@gmail.com>"]
|
authors = ["Hau Tran <alex.tran1502@gmail.com>"]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|||||||
2
mobile/.vscode/settings.json
vendored
2
mobile/.vscode/settings.json
vendored
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"dart.flutterSdkPath": ".fvm/versions/3.22.1",
|
"dart.flutterSdkPath": ".fvm/versions/3.22.3",
|
||||||
"search.exclude": {
|
"search.exclude": {
|
||||||
"**/.fvm": true
|
"**/.fvm": true
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ platform :android do
|
|||||||
task: 'bundle',
|
task: 'bundle',
|
||||||
build_type: 'Release',
|
build_type: 'Release',
|
||||||
properties: {
|
properties: {
|
||||||
"android.injected.version.code" => 151,
|
"android.injected.version.code" => 152,
|
||||||
"android.injected.version.name" => "1.110.0",
|
"android.injected.version.name" => "1.111.0",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
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')
|
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')
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "يلغي",
|
"action_common_cancel": "يلغي",
|
||||||
"action_common_clear": "مسح",
|
"action_common_clear": "مسح",
|
||||||
"action_common_confirm": "تأكيد",
|
"action_common_confirm": "تأكيد",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "تحديث",
|
"action_common_update": "تحديث",
|
||||||
"add_to_album_bottom_sheet_added": "تمت الاضافة{album}",
|
"add_to_album_bottom_sheet_added": "تمت الاضافة{album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "موجودة مسبقا {album}",
|
"add_to_album_bottom_sheet_already_exists": "موجودة مسبقا {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "كلمة المرور الجديدة",
|
"change_password_form_new_password": "كلمة المرور الجديدة",
|
||||||
"change_password_form_password_mismatch": "كلمة المرور غير مطابقة",
|
"change_password_form_password_mismatch": "كلمة المرور غير مطابقة",
|
||||||
"change_password_form_reenter_new_password": "أعد إدخال كلمة مرور جديدة",
|
"change_password_form_reenter_new_password": "أعد إدخال كلمة مرور جديدة",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "أضف إلى الألبوم",
|
"common_add_to_album": "أضف إلى الألبوم",
|
||||||
"common_change_password": "تغيير كلمة المرور",
|
"common_change_password": "تغيير كلمة المرور",
|
||||||
"common_create_new_album": "إنشاء ألبوم جديد",
|
"common_create_new_album": "إنشاء ألبوم جديد",
|
||||||
"common_server_error": "يرجى التحقق من اتصال الشبكة الخاص بك ، والتأكد من أن الجهاز قابل للوصول وإصدارات التطبيق/الجهاز متوافقة.",
|
"common_server_error": "يرجى التحقق من اتصال الشبكة الخاص بك ، والتأكد من أن الجهاز قابل للوصول وإصدارات التطبيق/الجهاز متوافقة.",
|
||||||
"common_shared": "مشترك",
|
"common_shared": "مشترك",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "أضف إلى الألبوم",
|
"control_bottom_app_bar_add_to_album": "أضف إلى الألبوم",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"control_bottom_app_bar_album_info": "{} items",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "يمسح",
|
"control_bottom_app_bar_delete": "يمسح",
|
||||||
"control_bottom_app_bar_delete_from_immich": " حذف منال تطبيق",
|
"control_bottom_app_bar_delete_from_immich": " حذف منال تطبيق",
|
||||||
"control_bottom_app_bar_delete_from_local": "حذف من الجهاز",
|
"control_bottom_app_bar_delete_from_local": "حذف من الجهاز",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "تحديد الوجهة",
|
"control_bottom_app_bar_edit_location": "تحديد الوجهة",
|
||||||
"control_bottom_app_bar_edit_time": "تحرير التاريخ والوقت",
|
"control_bottom_app_bar_edit_time": "تحرير التاريخ والوقت",
|
||||||
"control_bottom_app_bar_favorite": "مفضل",
|
"control_bottom_app_bar_favorite": "مفضل",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "تجريبي",
|
"experimental_settings_title": "تجريبي",
|
||||||
"favorites_page_no_favorites": "لم يتم العثور على الأصول المفضلة",
|
"favorites_page_no_favorites": "لم يتم العثور على الأصول المفضلة",
|
||||||
"favorites_page_title": "المفضلة",
|
"favorites_page_title": "المفضلة",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "تمكين ردود الفعل اللمسية",
|
"haptic_feedback_switch": "تمكين ردود الفعل اللمسية",
|
||||||
"haptic_feedback_title": "ردود فعل لمسية",
|
"haptic_feedback_title": "ردود فعل لمسية",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "بدأ التنزيل",
|
"image_viewer_page_state_provider_download_started": "بدأ التنزيل",
|
||||||
"image_viewer_page_state_provider_download_success": "تم التنزيل بنجاح",
|
"image_viewer_page_state_provider_download_success": "تم التنزيل بنجاح",
|
||||||
"image_viewer_page_state_provider_share_error": "خطأ في المشاركة",
|
"image_viewer_page_state_provider_share_error": "خطأ في المشاركة",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "ألبومات",
|
"library_page_albums": "ألبومات",
|
||||||
"library_page_archive": "أرشيف",
|
"library_page_archive": "أرشيف",
|
||||||
"library_page_device_albums": "ألبومات على الجهاز",
|
"library_page_device_albums": "ألبومات على الجهاز",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "لا يمكن تعديل تاريخ الأصول (المواد) للقراءة فقط، سوف يتخطى",
|
"multiselect_grid_edit_date_time_err_read_only": "لا يمكن تعديل تاريخ الأصول (المواد) للقراءة فقط، سوف يتخطى",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "لا يمكن تعديل موقع الأصول (المواد) للقراءة فقط، سوف يتخطى",
|
"multiselect_grid_edit_gps_err_read_only": "لا يمكن تعديل موقع الأصول (المواد) للقراءة فقط، سوف يتخطى",
|
||||||
"no_assets_to_show": "لا توجد أصول لعرضها",
|
"no_assets_to_show": "لا توجد أصول لعرضها",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "يلغي",
|
"notification_permission_dialog_cancel": "يلغي",
|
||||||
"notification_permission_dialog_content": "لتمكين الإخطارات ، انتقل إلى الإعدادات و اختار السماح.",
|
"notification_permission_dialog_content": "لتمكين الإخطارات ، انتقل إلى الإعدادات و اختار السماح.",
|
||||||
"notification_permission_dialog_settings": "إعدادات",
|
"notification_permission_dialog_settings": "إعدادات",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "حدث خطأ",
|
"scaffold_body_error_occurred": "حدث خطأ",
|
||||||
"search_bar_hint": "ابحث عن صورك",
|
"search_bar_hint": "ابحث عن صورك",
|
||||||
"search_filter_apply": "اختار الفلتر ",
|
"search_filter_apply": "اختار الفلتر ",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "صنع",
|
"search_filter_camera_make": "صنع",
|
||||||
"search_filter_camera_model": "نموذج",
|
"search_filter_camera_model": "نموذج",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "أرشيف",
|
"search_filter_display_option_archive": "أرشيف",
|
||||||
"search_filter_display_option_favorite": "مفضل",
|
"search_filter_display_option_favorite": "مفضل",
|
||||||
"search_filter_display_option_not_in_album": "ليس في الألبوم",
|
"search_filter_display_option_not_in_album": "ليس في الألبوم",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "مدينة",
|
"search_filter_location_city": "مدينة",
|
||||||
"search_filter_location_country": "دولة",
|
"search_filter_location_country": "دولة",
|
||||||
"search_filter_location_state": "ولاية",
|
"search_filter_location_state": "ولاية",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "الجميع",
|
"search_filter_media_type_all": "الجميع",
|
||||||
"search_filter_media_type_image": "صورة",
|
"search_filter_media_type_image": "صورة",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "شريط فيديو",
|
"search_filter_media_type_video": "شريط فيديو",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "فئات",
|
"search_page_categories": "فئات",
|
||||||
"search_page_favorites": "المفضلة",
|
"search_page_favorites": "المفضلة",
|
||||||
"search_page_motion_photos": "الصور المتحركه",
|
"search_page_motion_photos": "الصور المتحركه",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Zrušit",
|
"action_common_cancel": "Zrušit",
|
||||||
"action_common_clear": "Vyčistit",
|
"action_common_clear": "Vyčistit",
|
||||||
"action_common_confirm": "Potvrdit",
|
"action_common_confirm": "Potvrdit",
|
||||||
|
"action_common_save": "Uložit",
|
||||||
|
"action_common_select": "Vybrat",
|
||||||
"action_common_update": "Aktualizovat",
|
"action_common_update": "Aktualizovat",
|
||||||
"add_to_album_bottom_sheet_added": "Přidáno do {album}",
|
"add_to_album_bottom_sheet_added": "Přidáno do {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Je již v {album}",
|
"add_to_album_bottom_sheet_already_exists": "Je již v {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nové heslo",
|
"change_password_form_new_password": "Nové heslo",
|
||||||
"change_password_form_password_mismatch": "Hesla se neshodují",
|
"change_password_form_password_mismatch": "Hesla se neshodují",
|
||||||
"change_password_form_reenter_new_password": "Znovu zadejte nové heslo",
|
"change_password_form_reenter_new_password": "Znovu zadejte nové heslo",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Zadejte heslo",
|
||||||
|
"client_cert_import": "Importovat",
|
||||||
|
"client_cert_import_success_msg": "Klientský certifikát je importován",
|
||||||
|
"client_cert_invalid_msg": "Neplatný soubor certifikátu nebo špatné heslo",
|
||||||
|
"client_cert_remove": "Odstranit",
|
||||||
|
"client_cert_remove_msg": "Klientský certifikát je odstraněn",
|
||||||
|
"client_cert_subtitle": "Podpora pouze formátu PKCS12 (.p12, .pfx). Import/odstranění certifikátu je možné pouze před přihlášením",
|
||||||
|
"client_cert_title": "Klientský SSL certifikát",
|
||||||
"common_add_to_album": "Přidat do alba",
|
"common_add_to_album": "Přidat do alba",
|
||||||
"common_change_password": "Změnit heslo",
|
"common_change_password": "Změnit heslo",
|
||||||
"common_create_new_album": "Vytvořit nové album",
|
"common_create_new_album": "Vytvořit nové album",
|
||||||
"common_server_error": "Zkontrolujte připojení k internetu. Ujistěte se, že server je dostupný a aplikace/server jsou v kompatibilní verzi.",
|
"common_server_error": "Zkontrolujte připojení k internetu. Ujistěte se, že server je dostupný a aplikace/server jsou v kompatibilní verzi.",
|
||||||
"common_shared": "Sdílené",
|
"common_shared": "Sdílené",
|
||||||
|
"contextual_search": "Východ slunce na pláži",
|
||||||
"control_bottom_app_bar_add_to_album": "Přidat do alba",
|
"control_bottom_app_bar_add_to_album": "Přidat do alba",
|
||||||
"control_bottom_app_bar_album_info": "{} položek",
|
"control_bottom_app_bar_album_info": "{} položek",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} položky – sdílené",
|
"control_bottom_app_bar_album_info_shared": "{} položky – sdílené",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Smazat",
|
"control_bottom_app_bar_delete": "Smazat",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Smazat ze serveru Immich",
|
"control_bottom_app_bar_delete_from_immich": "Smazat ze serveru Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Smazat ze zařízení",
|
"control_bottom_app_bar_delete_from_local": "Smazat ze zařízení",
|
||||||
|
"control_bottom_app_bar_edit": "Upravit",
|
||||||
"control_bottom_app_bar_edit_location": "Upravit polohu",
|
"control_bottom_app_bar_edit_location": "Upravit polohu",
|
||||||
"control_bottom_app_bar_edit_time": "Upravit datum a čas",
|
"control_bottom_app_bar_edit_time": "Upravit datum a čas",
|
||||||
"control_bottom_app_bar_favorite": "Oblíbené",
|
"control_bottom_app_bar_favorite": "Oblíbené",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimentální",
|
"experimental_settings_title": "Experimentální",
|
||||||
"favorites_page_no_favorites": "Nebyla nalezena žádná oblíbená média",
|
"favorites_page_no_favorites": "Nebyla nalezena žádná oblíbená média",
|
||||||
"favorites_page_title": "Oblíbené",
|
"favorites_page_title": "Oblíbené",
|
||||||
|
"filename_search": "Název nebo přípona souboru",
|
||||||
"haptic_feedback_switch": "Povolit dotykovou zpětnou vazbu",
|
"haptic_feedback_switch": "Povolit dotykovou zpětnou vazbu",
|
||||||
"haptic_feedback_title": "Dotyková zpětná vazba",
|
"haptic_feedback_title": "Dotyková zpětná vazba",
|
||||||
"header_settings_add_header_tip": "Přidat hlavičku",
|
"header_settings_add_header_tip": "Přidat hlavičku",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Stahování zahájeno",
|
"image_viewer_page_state_provider_download_started": "Stahování zahájeno",
|
||||||
"image_viewer_page_state_provider_download_success": "Stahování bylo úspěšné",
|
"image_viewer_page_state_provider_download_success": "Stahování bylo úspěšné",
|
||||||
"image_viewer_page_state_provider_share_error": "Chyba sdílení",
|
"image_viewer_page_state_provider_share_error": "Chyba sdílení",
|
||||||
|
"invalid_date": "Chybné datum",
|
||||||
|
"invalid_date_format": "Chybný formát data",
|
||||||
"library_page_albums": "Alba",
|
"library_page_albums": "Alba",
|
||||||
"library_page_archive": "Archív",
|
"library_page_archive": "Archív",
|
||||||
"library_page_device_albums": "Alba v zařízení",
|
"library_page_device_albums": "Alba v zařízení",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Nelze upravit datum položek pouze pro čtení, přeskakuji",
|
"multiselect_grid_edit_date_time_err_read_only": "Nelze upravit datum položek pouze pro čtení, přeskakuji",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Nelze upravit polohu položek pouze pro čtení, přeskakuji",
|
"multiselect_grid_edit_gps_err_read_only": "Nelze upravit polohu položek pouze pro čtení, přeskakuji",
|
||||||
"no_assets_to_show": "Žádné položky k zobrazení",
|
"no_assets_to_show": "Žádné položky k zobrazení",
|
||||||
|
"no_name": "Bez jména",
|
||||||
"notification_permission_dialog_cancel": "Zrušit",
|
"notification_permission_dialog_cancel": "Zrušit",
|
||||||
"notification_permission_dialog_content": "Chcete-li povolit oznámení, přejděte do nastavení a vyberte možnost povolit.",
|
"notification_permission_dialog_content": "Chcete-li povolit oznámení, přejděte do nastavení a vyberte možnost povolit.",
|
||||||
"notification_permission_dialog_settings": "Nastavení",
|
"notification_permission_dialog_settings": "Nastavení",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Došlo k chybě",
|
"scaffold_body_error_occurred": "Došlo k chybě",
|
||||||
"search_bar_hint": "Prohledejte své fotky",
|
"search_bar_hint": "Prohledejte své fotky",
|
||||||
"search_filter_apply": "Použít filtr",
|
"search_filter_apply": "Použít filtr",
|
||||||
|
"search_filter_camera": "Fotoaparát",
|
||||||
"search_filter_camera_make": "Výrobce",
|
"search_filter_camera_make": "Výrobce",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Výběr typu fotoaparátu",
|
||||||
|
"search_filter_date": "Datum",
|
||||||
|
"search_filter_date_interval": "{start} až {end}",
|
||||||
|
"search_filter_date_title": "Výběr rozmezí dat",
|
||||||
"search_filter_display_option_archive": "Archiv",
|
"search_filter_display_option_archive": "Archiv",
|
||||||
"search_filter_display_option_favorite": "Oblíbené",
|
"search_filter_display_option_favorite": "Oblíbené",
|
||||||
"search_filter_display_option_not_in_album": "Není v albu",
|
"search_filter_display_option_not_in_album": "Není v albu",
|
||||||
|
"search_filter_display_options": "Možnost zobrazení",
|
||||||
|
"search_filter_display_options_title": "Možnosti zobrazení",
|
||||||
|
"search_filter_location": "Poloha",
|
||||||
"search_filter_location_city": "Město",
|
"search_filter_location_city": "Město",
|
||||||
"search_filter_location_country": "Země",
|
"search_filter_location_country": "Země",
|
||||||
"search_filter_location_state": "Stát",
|
"search_filter_location_state": "Stát",
|
||||||
|
"search_filter_location_title": "Výběr polohy",
|
||||||
|
"search_filter_media_type": "Typ média",
|
||||||
"search_filter_media_type_all": "Všechny",
|
"search_filter_media_type_all": "Všechny",
|
||||||
"search_filter_media_type_image": "Obrázek",
|
"search_filter_media_type_image": "Obrázek",
|
||||||
|
"search_filter_media_type_title": "Výběr typu média",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "Lidé",
|
||||||
|
"search_filter_people_title": "Výběr lidí",
|
||||||
"search_page_categories": "Kategorie",
|
"search_page_categories": "Kategorie",
|
||||||
"search_page_favorites": "Oblíbené",
|
"search_page_favorites": "Oblíbené",
|
||||||
"search_page_motion_photos": "Pohyblivé fotky",
|
"search_page_motion_photos": "Pohyblivé fotky",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Annuller",
|
"action_common_cancel": "Annuller",
|
||||||
"action_common_clear": "Ryd",
|
"action_common_clear": "Ryd",
|
||||||
"action_common_confirm": "Bekræft",
|
"action_common_confirm": "Bekræft",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Opdater",
|
"action_common_update": "Opdater",
|
||||||
"add_to_album_bottom_sheet_added": "Tilføjet til {album}",
|
"add_to_album_bottom_sheet_added": "Tilføjet til {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nyt kodeord",
|
"change_password_form_new_password": "Nyt kodeord",
|
||||||
"change_password_form_password_mismatch": "Kodeord er ikke ens",
|
"change_password_form_password_mismatch": "Kodeord er ikke ens",
|
||||||
"change_password_form_reenter_new_password": "Gentag nyt kodeord",
|
"change_password_form_reenter_new_password": "Gentag nyt kodeord",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Tilføj til album",
|
"common_add_to_album": "Tilføj til album",
|
||||||
"common_change_password": "Skift kodeord",
|
"common_change_password": "Skift kodeord",
|
||||||
"common_create_new_album": "Opret et nyt album",
|
"common_create_new_album": "Opret et nyt album",
|
||||||
"common_server_error": "Tjek din internetforbindelse, sørg for at serveren er tilgængelig og at app- og serversioner er kompatible.",
|
"common_server_error": "Tjek din internetforbindelse, sørg for at serveren er tilgængelig og at app- og serversioner er kompatible.",
|
||||||
"common_shared": "Delt",
|
"common_shared": "Delt",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Tilføj til album",
|
"control_bottom_app_bar_add_to_album": "Tilføj til album",
|
||||||
"control_bottom_app_bar_album_info": "{} genstande",
|
"control_bottom_app_bar_album_info": "{} genstande",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} genstande • Delt",
|
"control_bottom_app_bar_album_info_shared": "{} genstande • Delt",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Slet",
|
"control_bottom_app_bar_delete": "Slet",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Slet fra Immich",
|
"control_bottom_app_bar_delete_from_immich": "Slet fra Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Slet fra enhed",
|
"control_bottom_app_bar_delete_from_local": "Slet fra enhed",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Rediger placering",
|
"control_bottom_app_bar_edit_location": "Rediger placering",
|
||||||
"control_bottom_app_bar_edit_time": "Rediger tid og dato",
|
"control_bottom_app_bar_edit_time": "Rediger tid og dato",
|
||||||
"control_bottom_app_bar_favorite": "Favorit",
|
"control_bottom_app_bar_favorite": "Favorit",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Eksperimentelle",
|
"experimental_settings_title": "Eksperimentelle",
|
||||||
"favorites_page_no_favorites": "Ingen favoritter blev fundet",
|
"favorites_page_no_favorites": "Ingen favoritter blev fundet",
|
||||||
"favorites_page_title": "Favoritter",
|
"favorites_page_title": "Favoritter",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Slå haptisk feedback til",
|
"haptic_feedback_switch": "Slå haptisk feedback til",
|
||||||
"haptic_feedback_title": "Haptisk feedback",
|
"haptic_feedback_title": "Haptisk feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download startet",
|
"image_viewer_page_state_provider_download_started": "Download startet",
|
||||||
"image_viewer_page_state_provider_download_success": "Download succesfuld",
|
"image_viewer_page_state_provider_download_success": "Download succesfuld",
|
||||||
"image_viewer_page_state_provider_share_error": "Delingsfejl",
|
"image_viewer_page_state_provider_share_error": "Delingsfejl",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albummer",
|
"library_page_albums": "Albummer",
|
||||||
"library_page_archive": "Arkiv",
|
"library_page_archive": "Arkiv",
|
||||||
"library_page_device_albums": "Albummer på enhed",
|
"library_page_device_albums": "Albummer på enhed",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Kan ikke redigere datoen på kun læselige elementer. Springer over",
|
"multiselect_grid_edit_date_time_err_read_only": "Kan ikke redigere datoen på kun læselige elementer. Springer over",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Kan ikke redigere lokation af kun læselige elementer. Springer over",
|
"multiselect_grid_edit_gps_err_read_only": "Kan ikke redigere lokation af kun læselige elementer. Springer over",
|
||||||
"no_assets_to_show": "Ingen elementer at vise",
|
"no_assets_to_show": "Ingen elementer at vise",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Annuller",
|
"notification_permission_dialog_cancel": "Annuller",
|
||||||
"notification_permission_dialog_content": "Gå til indstillinger for at slå notifikationer til.",
|
"notification_permission_dialog_content": "Gå til indstillinger for at slå notifikationer til.",
|
||||||
"notification_permission_dialog_settings": "Indstillinger",
|
"notification_permission_dialog_settings": "Indstillinger",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Der opstod en fejl",
|
"scaffold_body_error_occurred": "Der opstod en fejl",
|
||||||
"search_bar_hint": "Søg i dine billeder",
|
"search_bar_hint": "Søg i dine billeder",
|
||||||
"search_filter_apply": "Tilføj filter",
|
"search_filter_apply": "Tilføj filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Producent",
|
"search_filter_camera_make": "Producent",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Arkiv",
|
"search_filter_display_option_archive": "Arkiv",
|
||||||
"search_filter_display_option_favorite": "Favorit",
|
"search_filter_display_option_favorite": "Favorit",
|
||||||
"search_filter_display_option_not_in_album": "Ikke i album",
|
"search_filter_display_option_not_in_album": "Ikke i album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "By",
|
"search_filter_location_city": "By",
|
||||||
"search_filter_location_country": "Land",
|
"search_filter_location_country": "Land",
|
||||||
"search_filter_location_state": "Stat",
|
"search_filter_location_state": "Stat",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Alle",
|
"search_filter_media_type_all": "Alle",
|
||||||
"search_filter_media_type_image": "Billede",
|
"search_filter_media_type_image": "Billede",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Kategorier",
|
"search_page_categories": "Kategorier",
|
||||||
"search_page_favorites": "Favoritter",
|
"search_page_favorites": "Favoritter",
|
||||||
"search_page_motion_photos": "Bevægelsesbilleder",
|
"search_page_motion_photos": "Bevægelsesbilleder",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Abbrechen",
|
"action_common_cancel": "Abbrechen",
|
||||||
"action_common_clear": "Leeren",
|
"action_common_clear": "Leeren",
|
||||||
"action_common_confirm": "Bestätigen",
|
"action_common_confirm": "Bestätigen",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Aktualisieren",
|
"action_common_update": "Aktualisieren",
|
||||||
"add_to_album_bottom_sheet_added": "Zu {album} hinzugefügt",
|
"add_to_album_bottom_sheet_added": "Zu {album} hinzugefügt",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Bereits in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Bereits in {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Neues Passwort",
|
"change_password_form_new_password": "Neues Passwort",
|
||||||
"change_password_form_password_mismatch": "Passwörter stimmen nicht überein",
|
"change_password_form_password_mismatch": "Passwörter stimmen nicht überein",
|
||||||
"change_password_form_reenter_new_password": "Passwort erneut eingeben",
|
"change_password_form_reenter_new_password": "Passwort erneut eingeben",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Zu Album hinzufügen",
|
"common_add_to_album": "Zu Album hinzufügen",
|
||||||
"common_change_password": "Passwort ändern",
|
"common_change_password": "Passwort ändern",
|
||||||
"common_create_new_album": "Neues Album erstellen",
|
"common_create_new_album": "Neues Album erstellen",
|
||||||
"common_server_error": "Bitte überprüfe Deine Netzwerkverbindung und stelle sicher, dass die App und Server Versionen kompatibel sind.",
|
"common_server_error": "Bitte überprüfe Deine Netzwerkverbindung und stelle sicher, dass die App und Server Versionen kompatibel sind.",
|
||||||
"common_shared": "Geteilt",
|
"common_shared": "Geteilt",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Zu Album hinzufügen",
|
"control_bottom_app_bar_add_to_album": "Zu Album hinzufügen",
|
||||||
"control_bottom_app_bar_album_info": "{} Elemente",
|
"control_bottom_app_bar_album_info": "{} Elemente",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} Elemente · Geteilt",
|
"control_bottom_app_bar_album_info_shared": "{} Elemente · Geteilt",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Löschen",
|
"control_bottom_app_bar_delete": "Löschen",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Aus Immich löschen",
|
"control_bottom_app_bar_delete_from_immich": "Aus Immich löschen",
|
||||||
"control_bottom_app_bar_delete_from_local": "Vom Gerät löschen",
|
"control_bottom_app_bar_delete_from_local": "Vom Gerät löschen",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Ort bearbeiten",
|
"control_bottom_app_bar_edit_location": "Ort bearbeiten",
|
||||||
"control_bottom_app_bar_edit_time": "Datum und Uhrzeit bearbeiten",
|
"control_bottom_app_bar_edit_time": "Datum und Uhrzeit bearbeiten",
|
||||||
"control_bottom_app_bar_favorite": "Favorit",
|
"control_bottom_app_bar_favorite": "Favorit",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimentell",
|
"experimental_settings_title": "Experimentell",
|
||||||
"favorites_page_no_favorites": "Keine favorisierten Inhalte gefunden",
|
"favorites_page_no_favorites": "Keine favorisierten Inhalte gefunden",
|
||||||
"favorites_page_title": "Favoriten",
|
"favorites_page_title": "Favoriten",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Haptisches Feedback aktivieren",
|
"haptic_feedback_switch": "Haptisches Feedback aktivieren",
|
||||||
"haptic_feedback_title": "Haptisches Feedback",
|
"haptic_feedback_title": "Haptisches Feedback",
|
||||||
"header_settings_add_header_tip": "Header hinzufügen",
|
"header_settings_add_header_tip": "Header hinzufügen",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download gestartet",
|
"image_viewer_page_state_provider_download_started": "Download gestartet",
|
||||||
"image_viewer_page_state_provider_download_success": "Erfolgreich heruntergeladen",
|
"image_viewer_page_state_provider_download_success": "Erfolgreich heruntergeladen",
|
||||||
"image_viewer_page_state_provider_share_error": "Fehler beim Teilen",
|
"image_viewer_page_state_provider_share_error": "Fehler beim Teilen",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Alben",
|
"library_page_albums": "Alben",
|
||||||
"library_page_archive": "Archiv",
|
"library_page_archive": "Archiv",
|
||||||
"library_page_device_albums": "Alben auf dem Gerät",
|
"library_page_device_albums": "Alben auf dem Gerät",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Das Datum und die Uhrzeit von schreibgeschützten Inhalten kann nicht verändert werden, überspringen...",
|
"multiselect_grid_edit_date_time_err_read_only": "Das Datum und die Uhrzeit von schreibgeschützten Inhalten kann nicht verändert werden, überspringen...",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Der Aufnahmeort von schreibgeschützten Inhalten kann nicht verändert werden, überspringen...",
|
"multiselect_grid_edit_gps_err_read_only": "Der Aufnahmeort von schreibgeschützten Inhalten kann nicht verändert werden, überspringen...",
|
||||||
"no_assets_to_show": "Keine Vorschau vorhanden",
|
"no_assets_to_show": "Keine Vorschau vorhanden",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Abbrechen",
|
"notification_permission_dialog_cancel": "Abbrechen",
|
||||||
"notification_permission_dialog_content": "Um Benachrichtigungen zu aktivieren, navigiere zu Einstellungen und klicke \"Erlauben\"",
|
"notification_permission_dialog_content": "Um Benachrichtigungen zu aktivieren, navigiere zu Einstellungen und klicke \"Erlauben\"",
|
||||||
"notification_permission_dialog_settings": "Einstellungen",
|
"notification_permission_dialog_settings": "Einstellungen",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Ein Fehler ist aufgetreten",
|
"scaffold_body_error_occurred": "Ein Fehler ist aufgetreten",
|
||||||
"search_bar_hint": "Durchsuche deine Fotos",
|
"search_bar_hint": "Durchsuche deine Fotos",
|
||||||
"search_filter_apply": "Filter anwenden",
|
"search_filter_apply": "Filter anwenden",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Marke",
|
"search_filter_camera_make": "Marke",
|
||||||
"search_filter_camera_model": "Modell",
|
"search_filter_camera_model": "Modell",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archiv",
|
"search_filter_display_option_archive": "Archiv",
|
||||||
"search_filter_display_option_favorite": "Favorit",
|
"search_filter_display_option_favorite": "Favorit",
|
||||||
"search_filter_display_option_not_in_album": "Nicht im Album",
|
"search_filter_display_option_not_in_album": "Nicht im Album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Stadt",
|
"search_filter_location_city": "Stadt",
|
||||||
"search_filter_location_country": "Land",
|
"search_filter_location_country": "Land",
|
||||||
"search_filter_location_state": "Bundesland",
|
"search_filter_location_state": "Bundesland",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Alle",
|
"search_filter_media_type_all": "Alle",
|
||||||
"search_filter_media_type_image": "Bild",
|
"search_filter_media_type_image": "Bild",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Kategorien",
|
"search_page_categories": "Kategorien",
|
||||||
"search_page_favorites": "Favoriten",
|
"search_page_favorites": "Favoriten",
|
||||||
"search_page_motion_photos": "Live-Fotos",
|
"search_page_motion_photos": "Live-Fotos",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Ακύρωση",
|
"action_common_cancel": "Ακύρωση",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Ενημέρωση",
|
"action_common_update": "Ενημέρωση",
|
||||||
"add_to_album_bottom_sheet_added": "Προστέθηκε στο {album}",
|
"add_to_album_bottom_sheet_added": "Προστέθηκε στο {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Ήδη στο {album}",
|
"add_to_album_bottom_sheet_already_exists": "Ήδη στο {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Νέος Κωδικός",
|
"change_password_form_new_password": "Νέος Κωδικός",
|
||||||
"change_password_form_password_mismatch": "Οι κωδικοί δεν ταιριάζουν",
|
"change_password_form_password_mismatch": "Οι κωδικοί δεν ταιριάζουν",
|
||||||
"change_password_form_reenter_new_password": "Επανεισαγωγή Νέου Κωδικού",
|
"change_password_form_reenter_new_password": "Επανεισαγωγή Νέου Κωδικού",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Προσθήκη στο άλμπουμ",
|
"common_add_to_album": "Προσθήκη στο άλμπουμ",
|
||||||
"common_change_password": "Αλλαγή Κωδικού",
|
"common_change_password": "Αλλαγή Κωδικού",
|
||||||
"common_create_new_album": "Δημιουργία νέου άλμπουμ",
|
"common_create_new_album": "Δημιουργία νέου άλμπουμ",
|
||||||
"common_server_error": "Ελέγξτε τη σύνδεσή σας, βεβαιωθείτε ότι ο διακομιστής είναι προσβάσιμος και ότι οι εκδόσεις της εφαρμογής/διακομιστή είναι συμβατές.",
|
"common_server_error": "Ελέγξτε τη σύνδεσή σας, βεβαιωθείτε ότι ο διακομιστής είναι προσβάσιμος και ότι οι εκδόσεις της εφαρμογής/διακομιστή είναι συμβατές.",
|
||||||
"common_shared": "Κοινόχρηστο",
|
"common_shared": "Κοινόχρηστο",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Προσθήκη στο άλμπουμ",
|
"control_bottom_app_bar_add_to_album": "Προσθήκη στο άλμπουμ",
|
||||||
"control_bottom_app_bar_album_info": "{} αντικείμενα",
|
"control_bottom_app_bar_album_info": "{} αντικείμενα",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} αντικείμενα · Κοινόχρηστα",
|
"control_bottom_app_bar_album_info_shared": "{} αντικείμενα · Κοινόχρηστα",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Διαγραφή",
|
"control_bottom_app_bar_delete": "Διαγραφή",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Διαγραφή από το Immich",
|
"control_bottom_app_bar_delete_from_immich": "Διαγραφή από το Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Διαγραφή από τη συσκευή",
|
"control_bottom_app_bar_delete_from_local": "Διαγραφή από τη συσκευή",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Επεξεργασία Τοποθεσίας",
|
"control_bottom_app_bar_edit_location": "Επεξεργασία Τοποθεσίας",
|
||||||
"control_bottom_app_bar_edit_time": "Επεξεργασία Ημερομηνίας & Ώρας",
|
"control_bottom_app_bar_edit_time": "Επεξεργασία Ημερομηνίας & Ώρας",
|
||||||
"control_bottom_app_bar_favorite": "Προσθήκη στα αγαπημένα",
|
"control_bottom_app_bar_favorite": "Προσθήκη στα αγαπημένα",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Πειραματικό",
|
"experimental_settings_title": "Πειραματικό",
|
||||||
"favorites_page_no_favorites": "Δεν βρέθηκαν αγαπημένα στοιχεία",
|
"favorites_page_no_favorites": "Δεν βρέθηκαν αγαπημένα στοιχεία",
|
||||||
"favorites_page_title": "Αγαπημένα",
|
"favorites_page_title": "Αγαπημένα",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"image_viewer_page_state_provider_share_error": "Share Error",
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
"notification_permission_dialog_settings": "Settings",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favorites",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Motion Photos",
|
||||||
|
|||||||
@@ -143,6 +143,15 @@
|
|||||||
"change_password_form_new_password": "New Password",
|
"change_password_form_new_password": "New Password",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Add to album",
|
"common_add_to_album": "Add to album",
|
||||||
"common_change_password": "Change Password",
|
"common_change_password": "Change Password",
|
||||||
"common_create_new_album": "Create new album",
|
"common_create_new_album": "Create new album",
|
||||||
@@ -157,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
@@ -438,18 +448,15 @@
|
|||||||
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
||||||
"setting_notifications_total_progress_title": "Show background backup total progress",
|
"setting_notifications_total_progress_title": "Show background backup total progress",
|
||||||
"setting_pages_app_bar_settings": "Settings",
|
"setting_pages_app_bar_settings": "Settings",
|
||||||
|
"settings_require_restart": "Please restart Immich to apply this setting",
|
||||||
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
|
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
|
||||||
"setting_video_viewer_looping_title": "Looping",
|
"setting_video_viewer_looping_title": "Looping",
|
||||||
"setting_video_viewer_title": "Videos",
|
"setting_video_viewer_title": "Videos",
|
||||||
"settings_require_restart": "Please restart Immich to apply this setting",
|
|
||||||
"share_add": "Add",
|
"share_add": "Add",
|
||||||
"share_add_photos": "Add photos",
|
"share_add_photos": "Add photos",
|
||||||
"share_add_title": "Add a title",
|
"share_add_title": "Add a title",
|
||||||
"share_assets_selected": "{} selected",
|
"share_assets_selected": "{} selected",
|
||||||
"share_create_album": "Create album",
|
"share_create_album": "Create album",
|
||||||
"share_dialog_preparing": "Preparing...",
|
|
||||||
"share_done": "Done",
|
|
||||||
"share_invite": "Invite to album",
|
|
||||||
"shared_album_activities_input_disable": "Comment is disabled",
|
"shared_album_activities_input_disable": "Comment is disabled",
|
||||||
"shared_album_activities_input_hint": "Say something",
|
"shared_album_activities_input_hint": "Say something",
|
||||||
"shared_album_activity_remove_content": "Do you want to delete this activity?",
|
"shared_album_activity_remove_content": "Do you want to delete this activity?",
|
||||||
@@ -461,6 +468,7 @@
|
|||||||
"shared_album_section_people_action_remove_user": "Remove user from album",
|
"shared_album_section_people_action_remove_user": "Remove user from album",
|
||||||
"shared_album_section_people_owner_label": "Owner",
|
"shared_album_section_people_owner_label": "Owner",
|
||||||
"shared_album_section_people_title": "PEOPLE",
|
"shared_album_section_people_title": "PEOPLE",
|
||||||
|
"share_dialog_preparing": "Preparing...",
|
||||||
"shared_link_app_bar_title": "Shared Links",
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
"shared_link_clipboard_copied_massage": "Copied to clipboard",
|
"shared_link_clipboard_copied_massage": "Copied to clipboard",
|
||||||
"shared_link_clipboard_text": "Link: {}\nPassword: {}",
|
"shared_link_clipboard_text": "Link: {}\nPassword: {}",
|
||||||
@@ -506,12 +514,14 @@
|
|||||||
"shared_link_info_chip_upload": "Upload",
|
"shared_link_info_chip_upload": "Upload",
|
||||||
"shared_link_manage_links": "Manage Shared links",
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
"shared_link_public_album": "Public album",
|
"shared_link_public_album": "Public album",
|
||||||
|
"share_done": "Done",
|
||||||
|
"share_invite": "Invite to album",
|
||||||
"sharing_page_album": "Shared albums",
|
"sharing_page_album": "Shared albums",
|
||||||
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
||||||
"sharing_page_empty_list": "EMPTY LIST",
|
"sharing_page_empty_list": "EMPTY LIST",
|
||||||
"sharing_silver_appbar_create_shared_album": "New shared album",
|
"sharing_silver_appbar_create_shared_album": "New shared album",
|
||||||
"sharing_silver_appbar_share_partner": "Share with partner",
|
|
||||||
"sharing_silver_appbar_shared_links": "Shared links",
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
|
"sharing_silver_appbar_share_partner": "Share with partner",
|
||||||
"tab_controller_nav_library": "Library",
|
"tab_controller_nav_library": "Library",
|
||||||
"tab_controller_nav_photos": "Photos",
|
"tab_controller_nav_photos": "Photos",
|
||||||
"tab_controller_nav_search": "Search",
|
"tab_controller_nav_search": "Search",
|
||||||
@@ -551,19 +561,5 @@
|
|||||||
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
||||||
"viewer_remove_from_stack": "Remove from Stack",
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
"viewer_unstack": "Un-Stack",
|
"viewer_unstack": "Un-Stack"
|
||||||
"header_settings_header_name_input": "Header name",
|
}
|
||||||
"header_settings_header_value_input": "Header value",
|
|
||||||
"header_settings_page_title": "Proxy Headers",
|
|
||||||
"header_settings_add_header_tip": "Add Header",
|
|
||||||
"header_settings_field_validator_msg": "Value cannot be empty",
|
|
||||||
"client_cert_title": "SSL Client Certificate",
|
|
||||||
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
|
||||||
"client_cert_import": "Import",
|
|
||||||
"client_cert_remove": "Remove",
|
|
||||||
"client_cert_remove_msg": "Client certificate is removed",
|
|
||||||
"client_cert_import_success_msg": "Client certificate is imported",
|
|
||||||
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
|
||||||
"client_cert_dialog_msg_confirm": "OK",
|
|
||||||
"client_cert_enter_password": "Enter Password"
|
|
||||||
}
|
|
||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancelar",
|
"action_common_cancel": "Cancelar",
|
||||||
"action_common_clear": "Limpiar",
|
"action_common_clear": "Limpiar",
|
||||||
"action_common_confirm": "Confirmar",
|
"action_common_confirm": "Confirmar",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Actualizar",
|
"action_common_update": "Actualizar",
|
||||||
"add_to_album_bottom_sheet_added": "Agregado a {album}",
|
"add_to_album_bottom_sheet_added": "Agregado a {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nueva Contraseña",
|
"change_password_form_new_password": "Nueva Contraseña",
|
||||||
"change_password_form_password_mismatch": "Las contraseñas no coinciden",
|
"change_password_form_password_mismatch": "Las contraseñas no coinciden",
|
||||||
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
|
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Agregar al álbum",
|
"common_add_to_album": "Agregar al álbum",
|
||||||
"common_change_password": "Cambiar Contraseña",
|
"common_change_password": "Cambiar Contraseña",
|
||||||
"common_create_new_album": "Crear nuevo álbum",
|
"common_create_new_album": "Crear nuevo álbum",
|
||||||
"common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
|
"common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
|
||||||
"common_shared": "Compartido",
|
"common_shared": "Compartido",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Agregar al álbum",
|
"control_bottom_app_bar_add_to_album": "Agregar al álbum",
|
||||||
"control_bottom_app_bar_album_info": "{} elementos",
|
"control_bottom_app_bar_album_info": "{} elementos",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartidos",
|
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartidos",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Eliminar",
|
"control_bottom_app_bar_delete": "Eliminar",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Borrar de Immich",
|
"control_bottom_app_bar_delete_from_immich": "Borrar de Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Borrar del dispositivo",
|
"control_bottom_app_bar_delete_from_local": "Borrar del dispositivo",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Editar ubicación",
|
"control_bottom_app_bar_edit_location": "Editar ubicación",
|
||||||
"control_bottom_app_bar_edit_time": "Editar fecha y hora",
|
"control_bottom_app_bar_edit_time": "Editar fecha y hora",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No se encontraron elementos marcados como favoritos",
|
"favorites_page_no_favorites": "No se encontraron elementos marcados como favoritos",
|
||||||
"favorites_page_title": "Favoritos",
|
"favorites_page_title": "Favoritos",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Activar respuesta háptica",
|
"haptic_feedback_switch": "Activar respuesta háptica",
|
||||||
"haptic_feedback_title": "Respuesta Háptica",
|
"haptic_feedback_title": "Respuesta Háptica",
|
||||||
"header_settings_add_header_tip": "Añadir cabecera",
|
"header_settings_add_header_tip": "Añadir cabecera",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Descarga Iniciada",
|
"image_viewer_page_state_provider_download_started": "Descarga Iniciada",
|
||||||
"image_viewer_page_state_provider_download_success": "Descarga exitosa",
|
"image_viewer_page_state_provider_download_success": "Descarga exitosa",
|
||||||
"image_viewer_page_state_provider_share_error": "Error al compartir",
|
"image_viewer_page_state_provider_share_error": "Error al compartir",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Álbumes",
|
"library_page_albums": "Álbumes",
|
||||||
"library_page_archive": "Archivo",
|
"library_page_archive": "Archivo",
|
||||||
"library_page_device_albums": "Álbumes en el dispositivo",
|
"library_page_device_albums": "Álbumes en el dispositivo",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "No se puede cambiar la fecha del archivo(s) de solo lectura, omitiendo",
|
"multiselect_grid_edit_date_time_err_read_only": "No se puede cambiar la fecha del archivo(s) de solo lectura, omitiendo",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "No se puede cambiar la localización de archivos de solo lectura. Saltando.",
|
"multiselect_grid_edit_gps_err_read_only": "No se puede cambiar la localización de archivos de solo lectura. Saltando.",
|
||||||
"no_assets_to_show": "No hay elementos a mostrar",
|
"no_assets_to_show": "No hay elementos a mostrar",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancelar",
|
"notification_permission_dialog_cancel": "Cancelar",
|
||||||
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
||||||
"notification_permission_dialog_settings": "Ajustes",
|
"notification_permission_dialog_settings": "Ajustes",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Ha ocurrido un error",
|
"scaffold_body_error_occurred": "Ha ocurrido un error",
|
||||||
"search_bar_hint": "Busca tus fotos",
|
"search_bar_hint": "Busca tus fotos",
|
||||||
"search_filter_apply": "Aplicar filtros",
|
"search_filter_apply": "Aplicar filtros",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Marca",
|
"search_filter_camera_make": "Marca",
|
||||||
"search_filter_camera_model": "Modelo",
|
"search_filter_camera_model": "Modelo",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archivado",
|
"search_filter_display_option_archive": "Archivado",
|
||||||
"search_filter_display_option_favorite": "Favorito",
|
"search_filter_display_option_favorite": "Favorito",
|
||||||
"search_filter_display_option_not_in_album": "No en álbum",
|
"search_filter_display_option_not_in_album": "No en álbum",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Ciudad",
|
"search_filter_location_city": "Ciudad",
|
||||||
"search_filter_location_country": "País",
|
"search_filter_location_country": "País",
|
||||||
"search_filter_location_state": "Estado",
|
"search_filter_location_state": "Estado",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Todos",
|
"search_filter_media_type_all": "Todos",
|
||||||
"search_filter_media_type_image": "Imagen",
|
"search_filter_media_type_image": "Imagen",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Vídeo",
|
"search_filter_media_type_video": "Vídeo",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categorías",
|
"search_page_categories": "Categorías",
|
||||||
"search_page_favorites": "Favoritos",
|
"search_page_favorites": "Favoritos",
|
||||||
"search_page_motion_photos": "Foto en Movimiento",
|
"search_page_motion_photos": "Foto en Movimiento",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancel",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_to_album_bottom_sheet_added": "Agregado a {album}",
|
"add_to_album_bottom_sheet_added": "Agregado a {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nueva Contraseña",
|
"change_password_form_new_password": "Nueva Contraseña",
|
||||||
"change_password_form_password_mismatch": "Las contraseñas no coinciden",
|
"change_password_form_password_mismatch": "Las contraseñas no coinciden",
|
||||||
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
|
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Agregar al álbum",
|
"common_add_to_album": "Agregar al álbum",
|
||||||
"common_change_password": "Cambiar Contraseña",
|
"common_change_password": "Cambiar Contraseña",
|
||||||
"common_create_new_album": "Crear nuevo álbum",
|
"common_create_new_album": "Crear nuevo álbum",
|
||||||
"common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
|
"common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
|
||||||
"common_shared": "Compartido",
|
"common_shared": "Compartido",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Agregar al álbum",
|
"control_bottom_app_bar_add_to_album": "Agregar al álbum",
|
||||||
"control_bottom_app_bar_album_info": "{} elementos",
|
"control_bottom_app_bar_album_info": "{} elementos",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartidos",
|
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartidos",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Eliminar",
|
"control_bottom_app_bar_delete": "Eliminar",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
||||||
"favorites_page_title": "Favoritos",
|
"favorites_page_title": "Favoritos",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Descarga exitosa",
|
"image_viewer_page_state_provider_download_success": "Descarga exitosa",
|
||||||
"image_viewer_page_state_provider_share_error": "Error al compartir",
|
"image_viewer_page_state_provider_share_error": "Error al compartir",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Álbumes",
|
"library_page_albums": "Álbumes",
|
||||||
"library_page_archive": "Archivo",
|
"library_page_archive": "Archivo",
|
||||||
"library_page_device_albums": "Álbumes en el dispositivo",
|
"library_page_device_albums": "Álbumes en el dispositivo",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancelar",
|
"notification_permission_dialog_cancel": "Cancelar",
|
||||||
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
||||||
"notification_permission_dialog_settings": "Ajustes",
|
"notification_permission_dialog_settings": "Ajustes",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Busca tus fotos",
|
"search_bar_hint": "Busca tus fotos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categorías",
|
"search_page_categories": "Categorías",
|
||||||
"search_page_favorites": "Favoritos",
|
"search_page_favorites": "Favoritos",
|
||||||
"search_page_motion_photos": "Foto en Movimiento",
|
"search_page_motion_photos": "Foto en Movimiento",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancel",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_to_album_bottom_sheet_added": "Agregado a {album}",
|
"add_to_album_bottom_sheet_added": "Agregado a {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nueva Contraseña",
|
"change_password_form_new_password": "Nueva Contraseña",
|
||||||
"change_password_form_password_mismatch": "Las contraseñas no coinciden",
|
"change_password_form_password_mismatch": "Las contraseñas no coinciden",
|
||||||
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
|
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Agregar al álbum",
|
"common_add_to_album": "Agregar al álbum",
|
||||||
"common_change_password": "Cambiar Contraseña",
|
"common_change_password": "Cambiar Contraseña",
|
||||||
"common_create_new_album": "Crear nuevo álbum",
|
"common_create_new_album": "Crear nuevo álbum",
|
||||||
"common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
|
"common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
|
||||||
"common_shared": "Compartido",
|
"common_shared": "Compartido",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Agregar al álbum",
|
"control_bottom_app_bar_add_to_album": "Agregar al álbum",
|
||||||
"control_bottom_app_bar_album_info": "{} elementos",
|
"control_bottom_app_bar_album_info": "{} elementos",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartidos",
|
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartidos",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Eliminar",
|
"control_bottom_app_bar_delete": "Eliminar",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
||||||
"favorites_page_title": "Favoritos",
|
"favorites_page_title": "Favoritos",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Descarga exitosa",
|
"image_viewer_page_state_provider_download_success": "Descarga exitosa",
|
||||||
"image_viewer_page_state_provider_share_error": "Error al compartir",
|
"image_viewer_page_state_provider_share_error": "Error al compartir",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Álbumes",
|
"library_page_albums": "Álbumes",
|
||||||
"library_page_archive": "Archivo",
|
"library_page_archive": "Archivo",
|
||||||
"library_page_device_albums": "Álbumes en el dispositivo",
|
"library_page_device_albums": "Álbumes en el dispositivo",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancelar",
|
"notification_permission_dialog_cancel": "Cancelar",
|
||||||
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
||||||
"notification_permission_dialog_settings": "Ajustes",
|
"notification_permission_dialog_settings": "Ajustes",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Busca tus fotos",
|
"search_bar_hint": "Busca tus fotos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categorías",
|
"search_page_categories": "Categorías",
|
||||||
"search_page_favorites": "Favoritos",
|
"search_page_favorites": "Favoritos",
|
||||||
"search_page_motion_photos": "Foto en Movimiento",
|
"search_page_motion_photos": "Foto en Movimiento",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancel",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_to_album_bottom_sheet_added": "Agregado a {album}",
|
"add_to_album_bottom_sheet_added": "Agregado a {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nueva Contraseña",
|
"change_password_form_new_password": "Nueva Contraseña",
|
||||||
"change_password_form_password_mismatch": "Las contraseñas no coinciden",
|
"change_password_form_password_mismatch": "Las contraseñas no coinciden",
|
||||||
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
|
"change_password_form_reenter_new_password": "Vuelve a ingresar la nueva contraseña",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Agregar al álbum",
|
"common_add_to_album": "Agregar al álbum",
|
||||||
"common_change_password": "Cambiar Contraseña",
|
"common_change_password": "Cambiar Contraseña",
|
||||||
"common_create_new_album": "Crear nuevo álbum",
|
"common_create_new_album": "Crear nuevo álbum",
|
||||||
"common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
|
"common_server_error": "Por favor, verifica tu conexión de red, asegúrate de que el servidor esté accesible y las versiones de la aplicación y del servidor sean compatibles.",
|
||||||
"common_shared": "Compartido",
|
"common_shared": "Compartido",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Agregar al álbum",
|
"control_bottom_app_bar_add_to_album": "Agregar al álbum",
|
||||||
"control_bottom_app_bar_album_info": "{} elementos",
|
"control_bottom_app_bar_album_info": "{} elementos",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartido",
|
"control_bottom_app_bar_album_info_shared": "{} elementos · Compartido",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Eliminar",
|
"control_bottom_app_bar_delete": "Eliminar",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
|
||||||
"favorites_page_title": "Favoritos",
|
"favorites_page_title": "Favoritos",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Descarga exitosa",
|
"image_viewer_page_state_provider_download_success": "Descarga exitosa",
|
||||||
"image_viewer_page_state_provider_share_error": "Error al compartir",
|
"image_viewer_page_state_provider_share_error": "Error al compartir",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Álbumes",
|
"library_page_albums": "Álbumes",
|
||||||
"library_page_archive": "Archivo",
|
"library_page_archive": "Archivo",
|
||||||
"library_page_device_albums": "Álbumes en el dispositivo",
|
"library_page_device_albums": "Álbumes en el dispositivo",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancelar",
|
"notification_permission_dialog_cancel": "Cancelar",
|
||||||
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
|
||||||
"notification_permission_dialog_settings": "Configuración",
|
"notification_permission_dialog_settings": "Configuración",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Busca tus fotos",
|
"search_bar_hint": "Busca tus fotos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categorías",
|
"search_page_categories": "Categorías",
|
||||||
"search_page_favorites": "Favoritos",
|
"search_page_favorites": "Favoritos",
|
||||||
"search_page_motion_photos": "Fotos en .ovimiento",
|
"search_page_motion_photos": "Fotos en .ovimiento",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Peruuta",
|
"action_common_cancel": "Peruuta",
|
||||||
"action_common_clear": "Tyhjennä",
|
"action_common_clear": "Tyhjennä",
|
||||||
"action_common_confirm": "Vahvista",
|
"action_common_confirm": "Vahvista",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Päivitä",
|
"action_common_update": "Päivitä",
|
||||||
"add_to_album_bottom_sheet_added": "Lisätty albumiin {album}",
|
"add_to_album_bottom_sheet_added": "Lisätty albumiin {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Kohde on jo albumissa {album}",
|
"add_to_album_bottom_sheet_already_exists": "Kohde on jo albumissa {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Uusi salasana",
|
"change_password_form_new_password": "Uusi salasana",
|
||||||
"change_password_form_password_mismatch": "Salasanat eivät täsmää",
|
"change_password_form_password_mismatch": "Salasanat eivät täsmää",
|
||||||
"change_password_form_reenter_new_password": "Uusi salasana uudelleen",
|
"change_password_form_reenter_new_password": "Uusi salasana uudelleen",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Lisää albumiin",
|
"common_add_to_album": "Lisää albumiin",
|
||||||
"common_change_password": "Vaihda salasana",
|
"common_change_password": "Vaihda salasana",
|
||||||
"common_create_new_album": "Luo uusi albumi",
|
"common_create_new_album": "Luo uusi albumi",
|
||||||
"common_server_error": "Tarkista internet-yhteytesi. Varmista että palvelin on saavutettavissa ja sovellus-/palvelinversiot ovat yhteensopivia.",
|
"common_server_error": "Tarkista internet-yhteytesi. Varmista että palvelin on saavutettavissa ja sovellus-/palvelinversiot ovat yhteensopivia.",
|
||||||
"common_shared": "Jaettu",
|
"common_shared": "Jaettu",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Lisää albumiin",
|
"control_bottom_app_bar_add_to_album": "Lisää albumiin",
|
||||||
"control_bottom_app_bar_album_info": "{} kohdetta",
|
"control_bottom_app_bar_album_info": "{} kohdetta",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} kohdetta · Jaettu",
|
"control_bottom_app_bar_album_info_shared": "{} kohdetta · Jaettu",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Poista",
|
"control_bottom_app_bar_delete": "Poista",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Poista Immichistä",
|
"control_bottom_app_bar_delete_from_immich": "Poista Immichistä",
|
||||||
"control_bottom_app_bar_delete_from_local": "Poista laitteelta",
|
"control_bottom_app_bar_delete_from_local": "Poista laitteelta",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Muokkaa sijaintia",
|
"control_bottom_app_bar_edit_location": "Muokkaa sijaintia",
|
||||||
"control_bottom_app_bar_edit_time": "Muokkaa aikaa",
|
"control_bottom_app_bar_edit_time": "Muokkaa aikaa",
|
||||||
"control_bottom_app_bar_favorite": "Suosikki",
|
"control_bottom_app_bar_favorite": "Suosikki",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Kokeellinen",
|
"experimental_settings_title": "Kokeellinen",
|
||||||
"favorites_page_no_favorites": "Suosikkikohteita ei löytynyt",
|
"favorites_page_no_favorites": "Suosikkikohteita ei löytynyt",
|
||||||
"favorites_page_title": "Suosikit",
|
"favorites_page_title": "Suosikit",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Ota haptinen palaute käyttöön",
|
"haptic_feedback_switch": "Ota haptinen palaute käyttöön",
|
||||||
"haptic_feedback_title": "Haptinen palaute",
|
"haptic_feedback_title": "Haptinen palaute",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Lataaminen aloitettu",
|
"image_viewer_page_state_provider_download_started": "Lataaminen aloitettu",
|
||||||
"image_viewer_page_state_provider_download_success": "Lataus onnistui",
|
"image_viewer_page_state_provider_download_success": "Lataus onnistui",
|
||||||
"image_viewer_page_state_provider_share_error": "Jakovirhe",
|
"image_viewer_page_state_provider_share_error": "Jakovirhe",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albumit",
|
"library_page_albums": "Albumit",
|
||||||
"library_page_archive": "Arkisto",
|
"library_page_archive": "Arkisto",
|
||||||
"library_page_device_albums": "Laitteen albumit",
|
"library_page_device_albums": "Laitteen albumit",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Vain luku -tilassa olevien kohteiden päivämäärää ei voitu muokata, ohitetaan",
|
"multiselect_grid_edit_date_time_err_read_only": "Vain luku -tilassa olevien kohteiden päivämäärää ei voitu muokata, ohitetaan",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Vain luku-tilassa olevien kohteiden sijantitietoja ei voitu muokata, ohitetaan",
|
"multiselect_grid_edit_gps_err_read_only": "Vain luku-tilassa olevien kohteiden sijantitietoja ei voitu muokata, ohitetaan",
|
||||||
"no_assets_to_show": "Ei näytettäviä kohteita",
|
"no_assets_to_show": "Ei näytettäviä kohteita",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Peruuta",
|
"notification_permission_dialog_cancel": "Peruuta",
|
||||||
"notification_permission_dialog_content": "Ottaaksesi ilmoitukset käyttöön, siirry asetuksiin ja valitse 'salli'.",
|
"notification_permission_dialog_content": "Ottaaksesi ilmoitukset käyttöön, siirry asetuksiin ja valitse 'salli'.",
|
||||||
"notification_permission_dialog_settings": "Asetukset",
|
"notification_permission_dialog_settings": "Asetukset",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Tapahtui virhe",
|
"scaffold_body_error_occurred": "Tapahtui virhe",
|
||||||
"search_bar_hint": "Etsi kuvia",
|
"search_bar_hint": "Etsi kuvia",
|
||||||
"search_filter_apply": "Käytä",
|
"search_filter_apply": "Käytä",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Valmistaja",
|
"search_filter_camera_make": "Valmistaja",
|
||||||
"search_filter_camera_model": "Malli",
|
"search_filter_camera_model": "Malli",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Arkisto",
|
"search_filter_display_option_archive": "Arkisto",
|
||||||
"search_filter_display_option_favorite": "Suosikki",
|
"search_filter_display_option_favorite": "Suosikki",
|
||||||
"search_filter_display_option_not_in_album": "Ei kuulu albumiin",
|
"search_filter_display_option_not_in_album": "Ei kuulu albumiin",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Kaupunki",
|
"search_filter_location_city": "Kaupunki",
|
||||||
"search_filter_location_country": "Maa",
|
"search_filter_location_country": "Maa",
|
||||||
"search_filter_location_state": "Maakunta/osavaltio",
|
"search_filter_location_state": "Maakunta/osavaltio",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Kaikki",
|
"search_filter_media_type_all": "Kaikki",
|
||||||
"search_filter_media_type_image": "Kuva",
|
"search_filter_media_type_image": "Kuva",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Kategoriat",
|
"search_page_categories": "Kategoriat",
|
||||||
"search_page_favorites": "Suosikit",
|
"search_page_favorites": "Suosikit",
|
||||||
"search_page_motion_photos": "Liikekuvat",
|
"search_page_motion_photos": "Liikekuvat",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancel",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_to_album_bottom_sheet_added": "Ajouté à {album}",
|
"add_to_album_bottom_sheet_added": "Ajouté à {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Déjà dans {album}",
|
"add_to_album_bottom_sheet_already_exists": "Déjà dans {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nouveau mot de passe",
|
"change_password_form_new_password": "Nouveau mot de passe",
|
||||||
"change_password_form_password_mismatch": "Les mots de passe ne correspondent pas",
|
"change_password_form_password_mismatch": "Les mots de passe ne correspondent pas",
|
||||||
"change_password_form_reenter_new_password": "Saisissez à nouveau le nouveau mot de passe",
|
"change_password_form_reenter_new_password": "Saisissez à nouveau le nouveau mot de passe",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Ajouter à l'album",
|
"common_add_to_album": "Ajouter à l'album",
|
||||||
"common_change_password": "Modifier le mot de passe",
|
"common_change_password": "Modifier le mot de passe",
|
||||||
"common_create_new_album": "Créer un nouvel album",
|
"common_create_new_album": "Créer un nouvel album",
|
||||||
"common_server_error": "Veuillez vérifier votre connexion réseau, vous assurer que le serveur est accessible et que les versions de l'application et du serveur sont compatibles.",
|
"common_server_error": "Veuillez vérifier votre connexion réseau, vous assurer que le serveur est accessible et que les versions de l'application et du serveur sont compatibles.",
|
||||||
"common_shared": "Partagé",
|
"common_shared": "Partagé",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Ajouter à l'album",
|
"control_bottom_app_bar_add_to_album": "Ajouter à l'album",
|
||||||
"control_bottom_app_bar_album_info": "{} éléments",
|
"control_bottom_app_bar_album_info": "{} éléments",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} éléments - Partagés",
|
"control_bottom_app_bar_album_info_shared": "{} éléments - Partagés",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Supprimer",
|
"control_bottom_app_bar_delete": "Supprimer",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favoris",
|
"control_bottom_app_bar_favorite": "Favoris",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Expérimental",
|
"experimental_settings_title": "Expérimental",
|
||||||
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
|
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
|
||||||
"favorites_page_title": "Favoris",
|
"favorites_page_title": "Favoris",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Téléchargement réussi",
|
"image_viewer_page_state_provider_download_success": "Téléchargement réussi",
|
||||||
"image_viewer_page_state_provider_share_error": "Erreur de partage",
|
"image_viewer_page_state_provider_share_error": "Erreur de partage",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums sur l'appareil",
|
"library_page_device_albums": "Albums sur l'appareil",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Annuler",
|
"notification_permission_dialog_cancel": "Annuler",
|
||||||
"notification_permission_dialog_content": "Pour activer les notifications, allez dans Paramètres et sélectionnez Autoriser.",
|
"notification_permission_dialog_content": "Pour activer les notifications, allez dans Paramètres et sélectionnez Autoriser.",
|
||||||
"notification_permission_dialog_settings": "Paramètres",
|
"notification_permission_dialog_settings": "Paramètres",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Rechercher vos photos",
|
"search_bar_hint": "Rechercher vos photos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Catégories",
|
"search_page_categories": "Catégories",
|
||||||
"search_page_favorites": "Favoris",
|
"search_page_favorites": "Favoris",
|
||||||
"search_page_motion_photos": "Photos avec mouvement",
|
"search_page_motion_photos": "Photos avec mouvement",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Annuler",
|
"action_common_cancel": "Annuler",
|
||||||
"action_common_clear": "Vider",
|
"action_common_clear": "Vider",
|
||||||
"action_common_confirm": "Confirmer",
|
"action_common_confirm": "Confirmer",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Mise à jour",
|
"action_common_update": "Mise à jour",
|
||||||
"add_to_album_bottom_sheet_added": "Ajouté à {album}",
|
"add_to_album_bottom_sheet_added": "Ajouté à {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Déjà dans {album}",
|
"add_to_album_bottom_sheet_already_exists": "Déjà dans {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nouveau mot de passe",
|
"change_password_form_new_password": "Nouveau mot de passe",
|
||||||
"change_password_form_password_mismatch": "Les mots de passe ne correspondent pas",
|
"change_password_form_password_mismatch": "Les mots de passe ne correspondent pas",
|
||||||
"change_password_form_reenter_new_password": "Saisissez à nouveau le nouveau mot de passe",
|
"change_password_form_reenter_new_password": "Saisissez à nouveau le nouveau mot de passe",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Ajouter à l'album",
|
"common_add_to_album": "Ajouter à l'album",
|
||||||
"common_change_password": "Modifier le mot de passe",
|
"common_change_password": "Modifier le mot de passe",
|
||||||
"common_create_new_album": "Créer un nouvel album",
|
"common_create_new_album": "Créer un nouvel album",
|
||||||
"common_server_error": "Veuillez vérifier votre connexion réseau, vous assurer que le serveur est accessible et que les versions de l'application et du serveur sont compatibles.",
|
"common_server_error": "Veuillez vérifier votre connexion réseau, vous assurer que le serveur est accessible et que les versions de l'application et du serveur sont compatibles.",
|
||||||
"common_shared": "Partagé",
|
"common_shared": "Partagé",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Ajouter à l'album",
|
"control_bottom_app_bar_add_to_album": "Ajouter à l'album",
|
||||||
"control_bottom_app_bar_album_info": "{} éléments",
|
"control_bottom_app_bar_album_info": "{} éléments",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} éléments - Partagés",
|
"control_bottom_app_bar_album_info_shared": "{} éléments - Partagés",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Supprimer",
|
"control_bottom_app_bar_delete": "Supprimer",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Supprimer de Immich",
|
"control_bottom_app_bar_delete_from_immich": "Supprimer de Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Supprimer de l'appareil",
|
"control_bottom_app_bar_delete_from_local": "Supprimer de l'appareil",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Modifier la localisation",
|
"control_bottom_app_bar_edit_location": "Modifier la localisation",
|
||||||
"control_bottom_app_bar_edit_time": "Modifier la date et l'heure",
|
"control_bottom_app_bar_edit_time": "Modifier la date et l'heure",
|
||||||
"control_bottom_app_bar_favorite": "Favoris",
|
"control_bottom_app_bar_favorite": "Favoris",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Expérimental",
|
"experimental_settings_title": "Expérimental",
|
||||||
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
|
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
|
||||||
"favorites_page_title": "Favoris",
|
"favorites_page_title": "Favoris",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Activer le retour haptique",
|
"haptic_feedback_switch": "Activer le retour haptique",
|
||||||
"haptic_feedback_title": "Retour haptique",
|
"haptic_feedback_title": "Retour haptique",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Téléchargement Démarré",
|
"image_viewer_page_state_provider_download_started": "Téléchargement Démarré",
|
||||||
"image_viewer_page_state_provider_download_success": "Téléchargement réussi",
|
"image_viewer_page_state_provider_download_success": "Téléchargement réussi",
|
||||||
"image_viewer_page_state_provider_share_error": "Erreur de partage",
|
"image_viewer_page_state_provider_share_error": "Erreur de partage",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums sur l'appareil",
|
"library_page_device_albums": "Albums sur l'appareil",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Impossible de modifier la date d'un élément d'actif en lecture seule.",
|
"multiselect_grid_edit_date_time_err_read_only": "Impossible de modifier la date d'un élément d'actif en lecture seule.",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Impossible de modifier l'emplacement d'un élément en lecture seule.",
|
"multiselect_grid_edit_gps_err_read_only": "Impossible de modifier l'emplacement d'un élément en lecture seule.",
|
||||||
"no_assets_to_show": "Aucuns éléments à afficher",
|
"no_assets_to_show": "Aucuns éléments à afficher",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Annuler",
|
"notification_permission_dialog_cancel": "Annuler",
|
||||||
"notification_permission_dialog_content": "Pour activer les notifications, allez dans Paramètres et sélectionnez Autoriser.",
|
"notification_permission_dialog_content": "Pour activer les notifications, allez dans Paramètres et sélectionnez Autoriser.",
|
||||||
"notification_permission_dialog_settings": "Paramètres",
|
"notification_permission_dialog_settings": "Paramètres",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Une erreur s'est produite",
|
"scaffold_body_error_occurred": "Une erreur s'est produite",
|
||||||
"search_bar_hint": "Rechercher vos photos",
|
"search_bar_hint": "Rechercher vos photos",
|
||||||
"search_filter_apply": "Appliquer le filtre",
|
"search_filter_apply": "Appliquer le filtre",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Fabricant",
|
"search_filter_camera_make": "Fabricant",
|
||||||
"search_filter_camera_model": "Modéle",
|
"search_filter_camera_model": "Modéle",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Achive",
|
"search_filter_display_option_archive": "Achive",
|
||||||
"search_filter_display_option_favorite": "Favoris",
|
"search_filter_display_option_favorite": "Favoris",
|
||||||
"search_filter_display_option_not_in_album": "Pas dans un album",
|
"search_filter_display_option_not_in_album": "Pas dans un album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Ville",
|
"search_filter_location_city": "Ville",
|
||||||
"search_filter_location_country": "Pays",
|
"search_filter_location_country": "Pays",
|
||||||
"search_filter_location_state": "Région",
|
"search_filter_location_state": "Région",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Tous",
|
"search_filter_media_type_all": "Tous",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Vidéo",
|
"search_filter_media_type_video": "Vidéo",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Catégories",
|
"search_page_categories": "Catégories",
|
||||||
"search_page_favorites": "Favoris",
|
"search_page_favorites": "Favoris",
|
||||||
"search_page_motion_photos": "Photos animées",
|
"search_page_motion_photos": "Photos animées",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "ביטול",
|
"action_common_cancel": "ביטול",
|
||||||
"action_common_clear": "נקה",
|
"action_common_clear": "נקה",
|
||||||
"action_common_confirm": "אישור",
|
"action_common_confirm": "אישור",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "עדכון",
|
"action_common_update": "עדכון",
|
||||||
"add_to_album_bottom_sheet_added": "נוסף ל {album}",
|
"add_to_album_bottom_sheet_added": "נוסף ל {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "כבר ב {album}",
|
"add_to_album_bottom_sheet_already_exists": "כבר ב {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "סיסמה חדשה",
|
"change_password_form_new_password": "סיסמה חדשה",
|
||||||
"change_password_form_password_mismatch": "סיסמאות לא תואמות",
|
"change_password_form_password_mismatch": "סיסמאות לא תואמות",
|
||||||
"change_password_form_reenter_new_password": "הכנס שוב סיסמה חדשה",
|
"change_password_form_reenter_new_password": "הכנס שוב סיסמה חדשה",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "הוסף לאלבום",
|
"common_add_to_album": "הוסף לאלבום",
|
||||||
"common_change_password": "שנה סיסמה",
|
"common_change_password": "שנה סיסמה",
|
||||||
"common_create_new_album": "צור אלבום חדש",
|
"common_create_new_album": "צור אלבום חדש",
|
||||||
"common_server_error": "נא לבדוק את חיבור הרשת שלך, תוודא/י שהשרת נגיש ושגרסאות אפליקציה/שרת תואמות",
|
"common_server_error": "נא לבדוק את חיבור הרשת שלך, תוודא/י שהשרת נגיש ושגרסאות אפליקציה/שרת תואמות",
|
||||||
"common_shared": "משותף",
|
"common_shared": "משותף",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "הוסף לאלבום",
|
"control_bottom_app_bar_add_to_album": "הוסף לאלבום",
|
||||||
"control_bottom_app_bar_album_info": "{} פריטים",
|
"control_bottom_app_bar_album_info": "{} פריטים",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} פריטים · משותפים",
|
"control_bottom_app_bar_album_info_shared": "{} פריטים · משותפים",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "מחק",
|
"control_bottom_app_bar_delete": "מחק",
|
||||||
"control_bottom_app_bar_delete_from_immich": "מחק מהשרת",
|
"control_bottom_app_bar_delete_from_immich": "מחק מהשרת",
|
||||||
"control_bottom_app_bar_delete_from_local": "מחק מהמכשיר",
|
"control_bottom_app_bar_delete_from_local": "מחק מהמכשיר",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "ערוך מיקום",
|
"control_bottom_app_bar_edit_location": "ערוך מיקום",
|
||||||
"control_bottom_app_bar_edit_time": "ערוך תאריך & זמן",
|
"control_bottom_app_bar_edit_time": "ערוך תאריך & זמן",
|
||||||
"control_bottom_app_bar_favorite": "הוסף למועדפים",
|
"control_bottom_app_bar_favorite": "הוסף למועדפים",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "נסיוני",
|
"experimental_settings_title": "נסיוני",
|
||||||
"favorites_page_no_favorites": "לא נמצאו נכסים מועדפים",
|
"favorites_page_no_favorites": "לא נמצאו נכסים מועדפים",
|
||||||
"favorites_page_title": "מועדפים",
|
"favorites_page_title": "מועדפים",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "אפשר משוב ברטט",
|
"haptic_feedback_switch": "אפשר משוב ברטט",
|
||||||
"haptic_feedback_title": "משוב ברטט",
|
"haptic_feedback_title": "משוב ברטט",
|
||||||
"header_settings_add_header_tip": "הוסף כותרת",
|
"header_settings_add_header_tip": "הוסף כותרת",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "ההורדה החלה",
|
"image_viewer_page_state_provider_download_started": "ההורדה החלה",
|
||||||
"image_viewer_page_state_provider_download_success": "הצלחת הורדה",
|
"image_viewer_page_state_provider_download_success": "הצלחת הורדה",
|
||||||
"image_viewer_page_state_provider_share_error": "שיתוף שגיאה",
|
"image_viewer_page_state_provider_share_error": "שיתוף שגיאה",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "אלבומים",
|
"library_page_albums": "אלבומים",
|
||||||
"library_page_archive": "ארכיון",
|
"library_page_archive": "ארכיון",
|
||||||
"library_page_device_albums": "אלבומים במכשיר",
|
"library_page_device_albums": "אלבומים במכשיר",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "לא ניתן לערוך תאריך של נכס(ים) לקריאה בלבד, מדלג",
|
"multiselect_grid_edit_date_time_err_read_only": "לא ניתן לערוך תאריך של נכס(ים) לקריאה בלבד, מדלג",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "לא ניתן לערוך מיקום של נכס(ים) לקריאה בלבד, מדלג",
|
"multiselect_grid_edit_gps_err_read_only": "לא ניתן לערוך מיקום של נכס(ים) לקריאה בלבד, מדלג",
|
||||||
"no_assets_to_show": "אין נכסים להציג",
|
"no_assets_to_show": "אין נכסים להציג",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "ביטול",
|
"notification_permission_dialog_cancel": "ביטול",
|
||||||
"notification_permission_dialog_content": "כדי לאפשר התראות, לך להגדרות ובחר התר",
|
"notification_permission_dialog_content": "כדי לאפשר התראות, לך להגדרות ובחר התר",
|
||||||
"notification_permission_dialog_settings": "הגדרות",
|
"notification_permission_dialog_settings": "הגדרות",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "אירעה שגיאה",
|
"scaffold_body_error_occurred": "אירעה שגיאה",
|
||||||
"search_bar_hint": "חפש/י בתמונות שלך",
|
"search_bar_hint": "חפש/י בתמונות שלך",
|
||||||
"search_filter_apply": "החל סינון",
|
"search_filter_apply": "החל סינון",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "תוצרת",
|
"search_filter_camera_make": "תוצרת",
|
||||||
"search_filter_camera_model": "דגם",
|
"search_filter_camera_model": "דגם",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "ארכיון",
|
"search_filter_display_option_archive": "ארכיון",
|
||||||
"search_filter_display_option_favorite": "מועדף",
|
"search_filter_display_option_favorite": "מועדף",
|
||||||
"search_filter_display_option_not_in_album": "לא באלבום",
|
"search_filter_display_option_not_in_album": "לא באלבום",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "עיר",
|
"search_filter_location_city": "עיר",
|
||||||
"search_filter_location_country": "ארץ",
|
"search_filter_location_country": "ארץ",
|
||||||
"search_filter_location_state": "מדינה",
|
"search_filter_location_state": "מדינה",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "הכל",
|
"search_filter_media_type_all": "הכל",
|
||||||
"search_filter_media_type_image": "תמונה",
|
"search_filter_media_type_image": "תמונה",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "סרטון",
|
"search_filter_media_type_video": "סרטון",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "קטגוריות",
|
"search_page_categories": "קטגוריות",
|
||||||
"search_page_favorites": "מועדפים",
|
"search_page_favorites": "מועדפים",
|
||||||
"search_page_motion_photos": "תמונות עם תנועה",
|
"search_page_motion_photos": "תמונות עם תנועה",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancel",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "New Password",
|
"change_password_form_new_password": "New Password",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Add to album",
|
"common_add_to_album": "Add to album",
|
||||||
"common_change_password": "Change Password",
|
"common_change_password": "Change Password",
|
||||||
"common_create_new_album": "Create new album",
|
"common_create_new_album": "Create new album",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
"common_shared": "Shared",
|
"common_shared": "Shared",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
"control_bottom_app_bar_add_to_album": "Add to album",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"control_bottom_app_bar_album_info": "{} items",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favorites",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"image_viewer_page_state_provider_share_error": "Share Error",
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
"notification_permission_dialog_settings": "Settings",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favorites",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Motion Photos",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Mégsem",
|
"action_common_cancel": "Mégsem",
|
||||||
"action_common_clear": "Kitöröl",
|
"action_common_clear": "Kitöröl",
|
||||||
"action_common_confirm": "Jóváhagy",
|
"action_common_confirm": "Jóváhagy",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Frissít",
|
"action_common_update": "Frissít",
|
||||||
"add_to_album_bottom_sheet_added": "Hozzáadva a(z) \"{album}\" albumhoz",
|
"add_to_album_bottom_sheet_added": "Hozzáadva a(z) \"{album}\" albumhoz",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Már benne van a(z) \"{album}\" albumban",
|
"add_to_album_bottom_sheet_already_exists": "Már benne van a(z) \"{album}\" albumban",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Új Jelszó",
|
"change_password_form_new_password": "Új Jelszó",
|
||||||
"change_password_form_password_mismatch": "A beírt jelszavak nem egyeznek",
|
"change_password_form_password_mismatch": "A beírt jelszavak nem egyeznek",
|
||||||
"change_password_form_reenter_new_password": "Jelszó (még egyszer)",
|
"change_password_form_reenter_new_password": "Jelszó (még egyszer)",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Albumhoz ad",
|
"common_add_to_album": "Albumhoz ad",
|
||||||
"common_change_password": "Jelszócsere",
|
"common_change_password": "Jelszócsere",
|
||||||
"common_create_new_album": "Új album létrehozása",
|
"common_create_new_album": "Új album létrehozása",
|
||||||
"common_server_error": "Kérjük, ellenőrizd a hálózati kapcsolatot, gondoskodj róla, hogy a szerver elérhető legyen, valamint az alkalmazás és a szerver kompatibilis verziójú legyen.",
|
"common_server_error": "Kérjük, ellenőrizd a hálózati kapcsolatot, gondoskodj róla, hogy a szerver elérhető legyen, valamint az alkalmazás és a szerver kompatibilis verziójú legyen.",
|
||||||
"common_shared": "Megosztva",
|
"common_shared": "Megosztva",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Albumhoz ad",
|
"control_bottom_app_bar_add_to_album": "Albumhoz ad",
|
||||||
"control_bottom_app_bar_album_info": "{} elem",
|
"control_bottom_app_bar_album_info": "{} elem",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} elemek · Megosztva",
|
"control_bottom_app_bar_album_info_shared": "{} elemek · Megosztva",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Törlés",
|
"control_bottom_app_bar_delete": "Törlés",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Törlés az Immich-ből",
|
"control_bottom_app_bar_delete_from_immich": "Törlés az Immich-ből",
|
||||||
"control_bottom_app_bar_delete_from_local": "Törlés az eszközről",
|
"control_bottom_app_bar_delete_from_local": "Törlés az eszközről",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Hely Módosítása",
|
"control_bottom_app_bar_edit_location": "Hely Módosítása",
|
||||||
"control_bottom_app_bar_edit_time": "Dátum és Idő Módosítása",
|
"control_bottom_app_bar_edit_time": "Dátum és Idő Módosítása",
|
||||||
"control_bottom_app_bar_favorite": "Kedvenc",
|
"control_bottom_app_bar_favorite": "Kedvenc",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Kísérleti",
|
"experimental_settings_title": "Kísérleti",
|
||||||
"favorites_page_no_favorites": "Nem található kedvencnek jelölt elem",
|
"favorites_page_no_favorites": "Nem található kedvencnek jelölt elem",
|
||||||
"favorites_page_title": "Kedvencek",
|
"favorites_page_title": "Kedvencek",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Rezgéses visszajelzés engedélyezése",
|
"haptic_feedback_switch": "Rezgéses visszajelzés engedélyezése",
|
||||||
"haptic_feedback_title": "Rezgéses Visszajelzés",
|
"haptic_feedback_title": "Rezgéses Visszajelzés",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Letöltés Megkezdődött",
|
"image_viewer_page_state_provider_download_started": "Letöltés Megkezdődött",
|
||||||
"image_viewer_page_state_provider_download_success": "Letöltés Sikeres",
|
"image_viewer_page_state_provider_download_success": "Letöltés Sikeres",
|
||||||
"image_viewer_page_state_provider_share_error": "Megosztási Hiba",
|
"image_viewer_page_state_provider_share_error": "Megosztási Hiba",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albumok",
|
"library_page_albums": "Albumok",
|
||||||
"library_page_archive": "Archívum",
|
"library_page_archive": "Archívum",
|
||||||
"library_page_device_albums": "Albumok az Eszközön",
|
"library_page_device_albums": "Albumok az Eszközön",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Csak-olvasható elem(ek) dátuma nem módosítható, ezért kihagyjuk",
|
"multiselect_grid_edit_date_time_err_read_only": "Csak-olvasható elem(ek) dátuma nem módosítható, ezért kihagyjuk",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Csak-olvasható elem(ek) helyszíne nem módosítható, ezért kihagyjuk",
|
"multiselect_grid_edit_gps_err_read_only": "Csak-olvasható elem(ek) helyszíne nem módosítható, ezért kihagyjuk",
|
||||||
"no_assets_to_show": "Nincs megjeleníthető elem",
|
"no_assets_to_show": "Nincs megjeleníthető elem",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Mégsem",
|
"notification_permission_dialog_cancel": "Mégsem",
|
||||||
"notification_permission_dialog_content": "Az értesítések bekapcsolásához a Beállítások menüben válaszd ki az Engedélyezés-t.",
|
"notification_permission_dialog_content": "Az értesítések bekapcsolásához a Beállítások menüben válaszd ki az Engedélyezés-t.",
|
||||||
"notification_permission_dialog_settings": "Beállítások",
|
"notification_permission_dialog_settings": "Beállítások",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Hiba történt",
|
"scaffold_body_error_occurred": "Hiba történt",
|
||||||
"search_bar_hint": "Fotók keresése",
|
"search_bar_hint": "Fotók keresése",
|
||||||
"search_filter_apply": "Szűrő alkalmazása",
|
"search_filter_apply": "Szűrő alkalmazása",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Gyártó",
|
"search_filter_camera_make": "Gyártó",
|
||||||
"search_filter_camera_model": "Modell",
|
"search_filter_camera_model": "Modell",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archivált",
|
"search_filter_display_option_archive": "Archivált",
|
||||||
"search_filter_display_option_favorite": "Kedvenc",
|
"search_filter_display_option_favorite": "Kedvenc",
|
||||||
"search_filter_display_option_not_in_album": "Nincs albumban",
|
"search_filter_display_option_not_in_album": "Nincs albumban",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Város",
|
"search_filter_location_city": "Város",
|
||||||
"search_filter_location_country": "Ország",
|
"search_filter_location_country": "Ország",
|
||||||
"search_filter_location_state": "Állam",
|
"search_filter_location_state": "Állam",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Összes",
|
"search_filter_media_type_all": "Összes",
|
||||||
"search_filter_media_type_image": "Kép",
|
"search_filter_media_type_image": "Kép",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Videó",
|
"search_filter_media_type_video": "Videó",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Kategóriák",
|
"search_page_categories": "Kategóriák",
|
||||||
"search_page_favorites": "Kedvencek",
|
"search_page_favorites": "Kedvencek",
|
||||||
"search_page_motion_photos": "Mozgó Fotók",
|
"search_page_motion_photos": "Mozgó Fotók",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Annulla",
|
"action_common_cancel": "Annulla",
|
||||||
"action_common_clear": "Pulisci",
|
"action_common_clear": "Pulisci",
|
||||||
"action_common_confirm": "Conferma",
|
"action_common_confirm": "Conferma",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Aggiorna",
|
"action_common_update": "Aggiorna",
|
||||||
"add_to_album_bottom_sheet_added": "Aggiunto in {album}",
|
"add_to_album_bottom_sheet_added": "Aggiunto in {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Già presente in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Già presente in {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nuova Password",
|
"change_password_form_new_password": "Nuova Password",
|
||||||
"change_password_form_password_mismatch": "Le password non coincidono",
|
"change_password_form_password_mismatch": "Le password non coincidono",
|
||||||
"change_password_form_reenter_new_password": "Inserisci ancora la nuova password ",
|
"change_password_form_reenter_new_password": "Inserisci ancora la nuova password ",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Aggiungi all'album",
|
"common_add_to_album": "Aggiungi all'album",
|
||||||
"common_change_password": "Cambia Password",
|
"common_change_password": "Cambia Password",
|
||||||
"common_create_new_album": "Crea nuovo Album",
|
"common_create_new_album": "Crea nuovo Album",
|
||||||
"common_server_error": "Si prega di controllare la connessione network, che il server sia raggiungibile e che le versione del server e app sono gli stessi",
|
"common_server_error": "Si prega di controllare la connessione network, che il server sia raggiungibile e che le versione del server e app sono gli stessi",
|
||||||
"common_shared": "Condivisi",
|
"common_shared": "Condivisi",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Aggiungi all'album",
|
"control_bottom_app_bar_add_to_album": "Aggiungi all'album",
|
||||||
"control_bottom_app_bar_album_info": "{} elementi",
|
"control_bottom_app_bar_album_info": "{} elementi",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} elementi · Condivisi",
|
"control_bottom_app_bar_album_info_shared": "{} elementi · Condivisi",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Elimina",
|
"control_bottom_app_bar_delete": "Elimina",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Elimina da Immich",
|
"control_bottom_app_bar_delete_from_immich": "Elimina da Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Elimina dal dispositivo",
|
"control_bottom_app_bar_delete_from_local": "Elimina dal dispositivo",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Modifica posizione",
|
"control_bottom_app_bar_edit_location": "Modifica posizione",
|
||||||
"control_bottom_app_bar_edit_time": "Modifica data e ora",
|
"control_bottom_app_bar_edit_time": "Modifica data e ora",
|
||||||
"control_bottom_app_bar_favorite": "Preferito",
|
"control_bottom_app_bar_favorite": "Preferito",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Sperimentale",
|
"experimental_settings_title": "Sperimentale",
|
||||||
"favorites_page_no_favorites": "Nessun preferito",
|
"favorites_page_no_favorites": "Nessun preferito",
|
||||||
"favorites_page_title": "Preferiti",
|
"favorites_page_title": "Preferiti",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Abilita feedback aptico",
|
"haptic_feedback_switch": "Abilita feedback aptico",
|
||||||
"haptic_feedback_title": "Feedback aptico",
|
"haptic_feedback_title": "Feedback aptico",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Download con successo",
|
"image_viewer_page_state_provider_download_success": "Download con successo",
|
||||||
"image_viewer_page_state_provider_share_error": "Errore di condivisione",
|
"image_viewer_page_state_provider_share_error": "Errore di condivisione",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Album",
|
"library_page_albums": "Album",
|
||||||
"library_page_archive": "Archivia",
|
"library_page_archive": "Archivia",
|
||||||
"library_page_device_albums": "Album sul dispositivo",
|
"library_page_device_albums": "Album sul dispositivo",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Non puoi modificare la data di risorse in sola lettura, azione ignorata",
|
"multiselect_grid_edit_date_time_err_read_only": "Non puoi modificare la data di risorse in sola lettura, azione ignorata",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Non puoi modificare la posizione di risorse in sola lettura, azione ignorata",
|
"multiselect_grid_edit_gps_err_read_only": "Non puoi modificare la posizione di risorse in sola lettura, azione ignorata",
|
||||||
"no_assets_to_show": "Nessuna risorsa da mostrare",
|
"no_assets_to_show": "Nessuna risorsa da mostrare",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Annulla",
|
"notification_permission_dialog_cancel": "Annulla",
|
||||||
"notification_permission_dialog_content": "Per attivare le notifiche, vai alle Impostazioni e seleziona concedi",
|
"notification_permission_dialog_content": "Per attivare le notifiche, vai alle Impostazioni e seleziona concedi",
|
||||||
"notification_permission_dialog_settings": "Impostazioni",
|
"notification_permission_dialog_settings": "Impostazioni",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Si è verificato un errore.",
|
"scaffold_body_error_occurred": "Si è verificato un errore.",
|
||||||
"search_bar_hint": "Cerca le tue foto",
|
"search_bar_hint": "Cerca le tue foto",
|
||||||
"search_filter_apply": "Applica filtro",
|
"search_filter_apply": "Applica filtro",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Produttore",
|
"search_filter_camera_make": "Produttore",
|
||||||
"search_filter_camera_model": "Modello",
|
"search_filter_camera_model": "Modello",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archivia",
|
"search_filter_display_option_archive": "Archivia",
|
||||||
"search_filter_display_option_favorite": "Preferito",
|
"search_filter_display_option_favorite": "Preferito",
|
||||||
"search_filter_display_option_not_in_album": "Non nell'album",
|
"search_filter_display_option_not_in_album": "Non nell'album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Città",
|
"search_filter_location_city": "Città",
|
||||||
"search_filter_location_country": "Nazione",
|
"search_filter_location_country": "Nazione",
|
||||||
"search_filter_location_state": "Provincia",
|
"search_filter_location_state": "Provincia",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Tutto",
|
"search_filter_media_type_all": "Tutto",
|
||||||
"search_filter_media_type_image": "Immagine",
|
"search_filter_media_type_image": "Immagine",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "VIdeo",
|
"search_filter_media_type_video": "VIdeo",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categoria",
|
"search_page_categories": "Categoria",
|
||||||
"search_page_favorites": "Preferiti",
|
"search_page_favorites": "Preferiti",
|
||||||
"search_page_motion_photos": "Foto in movimento",
|
"search_page_motion_photos": "Foto in movimento",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "キャンセル",
|
"action_common_cancel": "キャンセル",
|
||||||
"action_common_clear": "クリア",
|
"action_common_clear": "クリア",
|
||||||
"action_common_confirm": "了解",
|
"action_common_confirm": "了解",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "更新",
|
"action_common_update": "更新",
|
||||||
"add_to_album_bottom_sheet_added": "{album}に追加",
|
"add_to_album_bottom_sheet_added": "{album}に追加",
|
||||||
"add_to_album_bottom_sheet_already_exists": "{album}に追加済み",
|
"add_to_album_bottom_sheet_already_exists": "{album}に追加済み",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "新しいパスワード",
|
"change_password_form_new_password": "新しいパスワード",
|
||||||
"change_password_form_password_mismatch": "パスワードが一致しません",
|
"change_password_form_password_mismatch": "パスワードが一致しません",
|
||||||
"change_password_form_reenter_new_password": "再度パスワードを入力してください",
|
"change_password_form_reenter_new_password": "再度パスワードを入力してください",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "アルバムに追加",
|
"common_add_to_album": "アルバムに追加",
|
||||||
"common_change_password": "パスワードを変更",
|
"common_change_password": "パスワードを変更",
|
||||||
"common_create_new_album": "アルバムを作成",
|
"common_create_new_album": "アルバムを作成",
|
||||||
"common_server_error": "ネットワーク接続を確認し、サーバーが接続できる状態にあるか確認してください。アプリとサーバーのバージョンが一致しているかも確認してください。",
|
"common_server_error": "ネットワーク接続を確認し、サーバーが接続できる状態にあるか確認してください。アプリとサーバーのバージョンが一致しているかも確認してください。",
|
||||||
"common_shared": "共有済み",
|
"common_shared": "共有済み",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "アルバムに追加",
|
"control_bottom_app_bar_add_to_album": "アルバムに追加",
|
||||||
"control_bottom_app_bar_album_info": "{}枚",
|
"control_bottom_app_bar_album_info": "{}枚",
|
||||||
"control_bottom_app_bar_album_info_shared": "{}枚 · 共有済",
|
"control_bottom_app_bar_album_info_shared": "{}枚 · 共有済",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "削除",
|
"control_bottom_app_bar_delete": "削除",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Immichから削除",
|
"control_bottom_app_bar_delete_from_immich": "Immichから削除",
|
||||||
"control_bottom_app_bar_delete_from_local": "デバイスから削除",
|
"control_bottom_app_bar_delete_from_local": "デバイスから削除",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "位置情報を編集",
|
"control_bottom_app_bar_edit_location": "位置情報を編集",
|
||||||
"control_bottom_app_bar_edit_time": "日時を変更",
|
"control_bottom_app_bar_edit_time": "日時を変更",
|
||||||
"control_bottom_app_bar_favorite": "お気に入り",
|
"control_bottom_app_bar_favorite": "お気に入り",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "試験的機能",
|
"experimental_settings_title": "試験的機能",
|
||||||
"favorites_page_no_favorites": "お気に入り登録された写真またはビデオがありません",
|
"favorites_page_no_favorites": "お気に入り登録された写真またはビデオがありません",
|
||||||
"favorites_page_title": "お気に入り",
|
"favorites_page_title": "お気に入り",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "ハプティックフィードバック",
|
"haptic_feedback_switch": "ハプティックフィードバック",
|
||||||
"haptic_feedback_title": "ハプティックフィードバックを有効にする",
|
"haptic_feedback_title": "ハプティックフィードバックを有効にする",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "ダウンロードが始まります",
|
"image_viewer_page_state_provider_download_started": "ダウンロードが始まります",
|
||||||
"image_viewer_page_state_provider_download_success": "ダウンロード成功",
|
"image_viewer_page_state_provider_download_success": "ダウンロード成功",
|
||||||
"image_viewer_page_state_provider_share_error": "共有エラー",
|
"image_viewer_page_state_provider_share_error": "共有エラー",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "アルバム",
|
"library_page_albums": "アルバム",
|
||||||
"library_page_archive": "アーカイブ",
|
"library_page_archive": "アーカイブ",
|
||||||
"library_page_device_albums": "デバイス上のアルバム",
|
"library_page_device_albums": "デバイス上のアルバム",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "読み取り専用の項目の日付を変更できません",
|
"multiselect_grid_edit_date_time_err_read_only": "読み取り専用の項目の日付を変更できません",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "読み取り専用の項目の位置情報を変更できません",
|
"multiselect_grid_edit_gps_err_read_only": "読み取り専用の項目の位置情報を変更できません",
|
||||||
"no_assets_to_show": "表示する項目がありません",
|
"no_assets_to_show": "表示する項目がありません",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "キャンセル",
|
"notification_permission_dialog_cancel": "キャンセル",
|
||||||
"notification_permission_dialog_content": "通知を許可するには設定を開いてオンにしてください",
|
"notification_permission_dialog_content": "通知を許可するには設定を開いてオンにしてください",
|
||||||
"notification_permission_dialog_settings": "設定",
|
"notification_permission_dialog_settings": "設定",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "エラーが発生しました",
|
"scaffold_body_error_occurred": "エラーが発生しました",
|
||||||
"search_bar_hint": "写真を検索",
|
"search_bar_hint": "写真を検索",
|
||||||
"search_filter_apply": "フィルターを適用する",
|
"search_filter_apply": "フィルターを適用する",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "メーカー",
|
"search_filter_camera_make": "メーカー",
|
||||||
"search_filter_camera_model": "モデル",
|
"search_filter_camera_model": "モデル",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "アーカイブ",
|
"search_filter_display_option_archive": "アーカイブ",
|
||||||
"search_filter_display_option_favorite": "お気に入り",
|
"search_filter_display_option_favorite": "お気に入り",
|
||||||
"search_filter_display_option_not_in_album": "アルバムにありません",
|
"search_filter_display_option_not_in_album": "アルバムにありません",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "市町村",
|
"search_filter_location_city": "市町村",
|
||||||
"search_filter_location_country": "国",
|
"search_filter_location_country": "国",
|
||||||
"search_filter_location_state": "都道府県",
|
"search_filter_location_state": "都道府県",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "すべて",
|
"search_filter_media_type_all": "すべて",
|
||||||
"search_filter_media_type_image": "写真",
|
"search_filter_media_type_image": "写真",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "動画",
|
"search_filter_media_type_video": "動画",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "カテゴリ",
|
"search_page_categories": "カテゴリ",
|
||||||
"search_page_favorites": "お気に入り",
|
"search_page_favorites": "お気に入り",
|
||||||
"search_page_motion_photos": "モーションフォト",
|
"search_page_motion_photos": "モーションフォト",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "취소",
|
"action_common_cancel": "취소",
|
||||||
"action_common_clear": "지우기",
|
"action_common_clear": "지우기",
|
||||||
"action_common_confirm": "확인",
|
"action_common_confirm": "확인",
|
||||||
|
"action_common_save": "저장",
|
||||||
|
"action_common_select": "선택",
|
||||||
"action_common_update": "업데이트",
|
"action_common_update": "업데이트",
|
||||||
"add_to_album_bottom_sheet_added": "{album}에 추가되었습니다.",
|
"add_to_album_bottom_sheet_added": "{album}에 추가되었습니다.",
|
||||||
"add_to_album_bottom_sheet_already_exists": "{album}에 이미 존재하는 항목입니다.",
|
"add_to_album_bottom_sheet_already_exists": "{album}에 이미 존재하는 항목입니다.",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "새 비밀번호 입력",
|
"change_password_form_new_password": "새 비밀번호 입력",
|
||||||
"change_password_form_password_mismatch": "비밀번호가 일치하지 않습니다.",
|
"change_password_form_password_mismatch": "비밀번호가 일치하지 않습니다.",
|
||||||
"change_password_form_reenter_new_password": "새 비밀번호 확인",
|
"change_password_form_reenter_new_password": "새 비밀번호 확인",
|
||||||
|
"client_cert_dialog_msg_confirm": "확인",
|
||||||
|
"client_cert_enter_password": "비밀번호 입력",
|
||||||
|
"client_cert_import": "가져오기",
|
||||||
|
"client_cert_import_success_msg": "클라이언트 인증서를 가져왔습니다.",
|
||||||
|
"client_cert_invalid_msg": "올바르지 않은 인증서이거나 비밀번호가 일치하지 않습니다.",
|
||||||
|
"client_cert_remove": "제거",
|
||||||
|
"client_cert_remove_msg": "클라이언트 인증서가 제거되었습니다.",
|
||||||
|
"client_cert_subtitle": "인증서 가져오기/제거는 로그인 전에만 가능합니다. PKCS12 (.p12, .pfx) 형식을 지원합니다.",
|
||||||
|
"client_cert_title": "SSL 클라이언트 인증서",
|
||||||
"common_add_to_album": "앨범에 추가",
|
"common_add_to_album": "앨범에 추가",
|
||||||
"common_change_password": "비밀번호 변경",
|
"common_change_password": "비밀번호 변경",
|
||||||
"common_create_new_album": "앨범 생성",
|
"common_create_new_album": "앨범 생성",
|
||||||
"common_server_error": "네트워크 연결 상태를 확인하고, 서버에 접속할 수 있는지, 앱/서버 버전이 호환되는지 확인해주세요.",
|
"common_server_error": "네트워크 연결 상태를 확인하고, 서버에 접속할 수 있는지, 앱/서버 버전이 호환되는지 확인해주세요.",
|
||||||
"common_shared": "공유됨",
|
"common_shared": "공유됨",
|
||||||
|
"contextual_search": "동해안에서 맞이하는 새해 일출",
|
||||||
"control_bottom_app_bar_add_to_album": "앨범에 추가",
|
"control_bottom_app_bar_add_to_album": "앨범에 추가",
|
||||||
"control_bottom_app_bar_album_info": "{}개 항목",
|
"control_bottom_app_bar_album_info": "{}개 항목",
|
||||||
"control_bottom_app_bar_album_info_shared": "{}개 항목 · 공유됨",
|
"control_bottom_app_bar_album_info_shared": "{}개 항목 · 공유됨",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "삭제",
|
"control_bottom_app_bar_delete": "삭제",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Immich에서 삭제",
|
"control_bottom_app_bar_delete_from_immich": "Immich에서 삭제",
|
||||||
"control_bottom_app_bar_delete_from_local": "기기에서 삭제",
|
"control_bottom_app_bar_delete_from_local": "기기에서 삭제",
|
||||||
|
"control_bottom_app_bar_edit": "편집",
|
||||||
"control_bottom_app_bar_edit_location": "위치 편집",
|
"control_bottom_app_bar_edit_location": "위치 편집",
|
||||||
"control_bottom_app_bar_edit_time": "날짜 및 시간 변경",
|
"control_bottom_app_bar_edit_time": "날짜 및 시간 변경",
|
||||||
"control_bottom_app_bar_favorite": "즐겨찾기",
|
"control_bottom_app_bar_favorite": "즐겨찾기",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "실험적",
|
"experimental_settings_title": "실험적",
|
||||||
"favorites_page_no_favorites": "즐겨찾기된 항목 없음",
|
"favorites_page_no_favorites": "즐겨찾기된 항목 없음",
|
||||||
"favorites_page_title": "즐겨찾기",
|
"favorites_page_title": "즐겨찾기",
|
||||||
|
"filename_search": "파일 이름 또는 확장자",
|
||||||
"haptic_feedback_switch": "햅틱 피드백 활성화",
|
"haptic_feedback_switch": "햅틱 피드백 활성화",
|
||||||
"haptic_feedback_title": "햅틱 피드백",
|
"haptic_feedback_title": "햅틱 피드백",
|
||||||
"header_settings_add_header_tip": "헤더 추가",
|
"header_settings_add_header_tip": "헤더 추가",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "다운로드 시작됨",
|
"image_viewer_page_state_provider_download_started": "다운로드 시작됨",
|
||||||
"image_viewer_page_state_provider_download_success": "다운로드 완료",
|
"image_viewer_page_state_provider_download_success": "다운로드 완료",
|
||||||
"image_viewer_page_state_provider_share_error": "공유 오류",
|
"image_viewer_page_state_provider_share_error": "공유 오류",
|
||||||
|
"invalid_date": "올바르지 않은 날짜입니다.",
|
||||||
|
"invalid_date_format": "올바르지 않은 날짜 형식입니다.",
|
||||||
"library_page_albums": "앨범",
|
"library_page_albums": "앨범",
|
||||||
"library_page_archive": "보관함",
|
"library_page_archive": "보관함",
|
||||||
"library_page_device_albums": "기기의 앨범",
|
"library_page_device_albums": "기기의 앨범",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "읽기 전용 항목의 날짜는 변경할 수 없습니다. 건너뜁니다.",
|
"multiselect_grid_edit_date_time_err_read_only": "읽기 전용 항목의 날짜는 변경할 수 없습니다. 건너뜁니다.",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "읽기 전용 항목의 위치는 변경할 수 없습니다. 건너뜁니다.",
|
"multiselect_grid_edit_gps_err_read_only": "읽기 전용 항목의 위치는 변경할 수 없습니다. 건너뜁니다.",
|
||||||
"no_assets_to_show": "표시할 항목 없음",
|
"no_assets_to_show": "표시할 항목 없음",
|
||||||
|
"no_name": "이름 없음",
|
||||||
"notification_permission_dialog_cancel": "취소",
|
"notification_permission_dialog_cancel": "취소",
|
||||||
"notification_permission_dialog_content": "알림을 활성화하려면 설정에서 알림 권한을 허용하세요.",
|
"notification_permission_dialog_content": "알림을 활성화하려면 설정에서 알림 권한을 허용하세요.",
|
||||||
"notification_permission_dialog_settings": "설정",
|
"notification_permission_dialog_settings": "설정",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "문제가 발생했습니다.",
|
"scaffold_body_error_occurred": "문제가 발생했습니다.",
|
||||||
"search_bar_hint": "사진 검색",
|
"search_bar_hint": "사진 검색",
|
||||||
"search_filter_apply": "필터 적용",
|
"search_filter_apply": "필터 적용",
|
||||||
|
"search_filter_camera": "카메라",
|
||||||
"search_filter_camera_make": "제조사",
|
"search_filter_camera_make": "제조사",
|
||||||
"search_filter_camera_model": "모델명",
|
"search_filter_camera_model": "모델명",
|
||||||
|
"search_filter_camera_title": "카메라 종류 선택",
|
||||||
|
"search_filter_date": "날짜\n",
|
||||||
|
"search_filter_date_interval": "{start}에서 {end} 까지",
|
||||||
|
"search_filter_date_title": "날짜 범위 선택\n",
|
||||||
"search_filter_display_option_archive": "보관함",
|
"search_filter_display_option_archive": "보관함",
|
||||||
"search_filter_display_option_favorite": "즐겨찾기",
|
"search_filter_display_option_favorite": "즐겨찾기",
|
||||||
"search_filter_display_option_not_in_album": "앨범에 없음",
|
"search_filter_display_option_not_in_album": "앨범에 없음",
|
||||||
|
"search_filter_display_options": "표시 옵션",
|
||||||
|
"search_filter_display_options_title": "표시 옵션",
|
||||||
|
"search_filter_location": "위치",
|
||||||
"search_filter_location_city": "도시",
|
"search_filter_location_city": "도시",
|
||||||
"search_filter_location_country": "국가",
|
"search_filter_location_country": "국가",
|
||||||
"search_filter_location_state": "지역",
|
"search_filter_location_state": "지역",
|
||||||
|
"search_filter_location_title": "위치 선택",
|
||||||
|
"search_filter_media_type": "미디어 종류",
|
||||||
"search_filter_media_type_all": "모두",
|
"search_filter_media_type_all": "모두",
|
||||||
"search_filter_media_type_image": "이미지",
|
"search_filter_media_type_image": "이미지",
|
||||||
|
"search_filter_media_type_title": "미디어 종류 선택",
|
||||||
"search_filter_media_type_video": "동영상",
|
"search_filter_media_type_video": "동영상",
|
||||||
|
"search_filter_people": "인물",
|
||||||
|
"search_filter_people_title": "인물 선택",
|
||||||
"search_page_categories": "분류",
|
"search_page_categories": "분류",
|
||||||
"search_page_favorites": "즐겨찾기",
|
"search_page_favorites": "즐겨찾기",
|
||||||
"search_page_motion_photos": "모션 포토",
|
"search_page_motion_photos": "모션 포토",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancel",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "New Password",
|
"change_password_form_new_password": "New Password",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Add to album",
|
"common_add_to_album": "Add to album",
|
||||||
"common_change_password": "Change Password",
|
"common_change_password": "Change Password",
|
||||||
"common_create_new_album": "Create new album",
|
"common_create_new_album": "Create new album",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
"common_shared": "Shared",
|
"common_shared": "Shared",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
"control_bottom_app_bar_add_to_album": "Add to album",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"control_bottom_app_bar_album_info": "{} items",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favorites",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"image_viewer_page_state_provider_share_error": "Share Error",
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
"notification_permission_dialog_settings": "Settings",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favorites",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Motion Photos",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Atcelt",
|
"action_common_cancel": "Atcelt",
|
||||||
"action_common_clear": "Notīrīt",
|
"action_common_clear": "Notīrīt",
|
||||||
"action_common_confirm": "Apstiprināt",
|
"action_common_confirm": "Apstiprināt",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Atjaunināt",
|
"action_common_update": "Atjaunināt",
|
||||||
"add_to_album_bottom_sheet_added": "Pievienots {album}",
|
"add_to_album_bottom_sheet_added": "Pievienots {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Jau pievienots {album}",
|
"add_to_album_bottom_sheet_already_exists": "Jau pievienots {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Jauna Parole",
|
"change_password_form_new_password": "Jauna Parole",
|
||||||
"change_password_form_password_mismatch": "Paroles nesakrīt",
|
"change_password_form_password_mismatch": "Paroles nesakrīt",
|
||||||
"change_password_form_reenter_new_password": "Atkārtoti ievadīt jaunu paroli",
|
"change_password_form_reenter_new_password": "Atkārtoti ievadīt jaunu paroli",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Pievienot albumam",
|
"common_add_to_album": "Pievienot albumam",
|
||||||
"common_change_password": "Nomainīt Paroli",
|
"common_change_password": "Nomainīt Paroli",
|
||||||
"common_create_new_album": "Izveidot jaunu albumu",
|
"common_create_new_album": "Izveidot jaunu albumu",
|
||||||
"common_server_error": "Lūdzu, pārbaudiet tīkla savienojumu, pārliecinieties, vai serveris ir sasniedzams un aplikācijas/servera versijas ir saderīgas.",
|
"common_server_error": "Lūdzu, pārbaudiet tīkla savienojumu, pārliecinieties, vai serveris ir sasniedzams un aplikācijas/servera versijas ir saderīgas.",
|
||||||
"common_shared": "Kopīgots",
|
"common_shared": "Kopīgots",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Pievienot albumam",
|
"control_bottom_app_bar_add_to_album": "Pievienot albumam",
|
||||||
"control_bottom_app_bar_album_info": "{} vienumi",
|
"control_bottom_app_bar_album_info": "{} vienumi",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} vienumi · Koplietoti",
|
"control_bottom_app_bar_album_info_shared": "{} vienumi · Koplietoti",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Dzēst",
|
"control_bottom_app_bar_delete": "Dzēst",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Dzēst no Immich",
|
"control_bottom_app_bar_delete_from_immich": "Dzēst no Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Dzēst no ierīces",
|
"control_bottom_app_bar_delete_from_local": "Dzēst no ierīces",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Rediģēt Atrašanās Vietu",
|
"control_bottom_app_bar_edit_location": "Rediģēt Atrašanās Vietu",
|
||||||
"control_bottom_app_bar_edit_time": "Rediģēt Datumu un Laiku",
|
"control_bottom_app_bar_edit_time": "Rediģēt Datumu un Laiku",
|
||||||
"control_bottom_app_bar_favorite": "Izlase",
|
"control_bottom_app_bar_favorite": "Izlase",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Eksperimentāls",
|
"experimental_settings_title": "Eksperimentāls",
|
||||||
"favorites_page_no_favorites": "Nav atrasti iecienītākie aktīvi",
|
"favorites_page_no_favorites": "Nav atrasti iecienītākie aktīvi",
|
||||||
"favorites_page_title": "Izlase",
|
"favorites_page_title": "Izlase",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Iestatīt haptisku reakciju",
|
"haptic_feedback_switch": "Iestatīt haptisku reakciju",
|
||||||
"haptic_feedback_title": "Haptiska Reakcija",
|
"haptic_feedback_title": "Haptiska Reakcija",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Lejupielāde Uzsākta",
|
"image_viewer_page_state_provider_download_started": "Lejupielāde Uzsākta",
|
||||||
"image_viewer_page_state_provider_download_success": "Lejupielāde Izdevās",
|
"image_viewer_page_state_provider_download_success": "Lejupielāde Izdevās",
|
||||||
"image_viewer_page_state_provider_share_error": "Kopīgošanas Kļūda",
|
"image_viewer_page_state_provider_share_error": "Kopīgošanas Kļūda",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Arhīvs",
|
"library_page_archive": "Arhīvs",
|
||||||
"library_page_device_albums": "Albumi ierīcē",
|
"library_page_device_albums": "Albumi ierīcē",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Nevar rediģēt read only aktīva(-u) datumu, notiek izlaišana",
|
"multiselect_grid_edit_date_time_err_read_only": "Nevar rediģēt read only aktīva(-u) datumu, notiek izlaišana",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Nevar rediģēt atrašanās vietu read only aktīva(-u) datumu, notiek izlaišana",
|
"multiselect_grid_edit_gps_err_read_only": "Nevar rediģēt atrašanās vietu read only aktīva(-u) datumu, notiek izlaišana",
|
||||||
"no_assets_to_show": "Nav uzrādāmo aktīvu",
|
"no_assets_to_show": "Nav uzrādāmo aktīvu",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Atcelt",
|
"notification_permission_dialog_cancel": "Atcelt",
|
||||||
"notification_permission_dialog_content": "Lai iespējotu paziņojumus, atveriet Iestatījumi un atlasiet Atļaut.",
|
"notification_permission_dialog_content": "Lai iespējotu paziņojumus, atveriet Iestatījumi un atlasiet Atļaut.",
|
||||||
"notification_permission_dialog_settings": "Iestatījumi",
|
"notification_permission_dialog_settings": "Iestatījumi",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Radās kļūda",
|
"scaffold_body_error_occurred": "Radās kļūda",
|
||||||
"search_bar_hint": "Meklēt Jūsu fotoattēlus",
|
"search_bar_hint": "Meklēt Jūsu fotoattēlus",
|
||||||
"search_filter_apply": "Lietot filtru",
|
"search_filter_apply": "Lietot filtru",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Firma",
|
"search_filter_camera_make": "Firma",
|
||||||
"search_filter_camera_model": "Modelis",
|
"search_filter_camera_model": "Modelis",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Arhīvs",
|
"search_filter_display_option_archive": "Arhīvs",
|
||||||
"search_filter_display_option_favorite": "Izlase",
|
"search_filter_display_option_favorite": "Izlase",
|
||||||
"search_filter_display_option_not_in_album": "Nav albumā",
|
"search_filter_display_option_not_in_album": "Nav albumā",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Pilsēta",
|
"search_filter_location_city": "Pilsēta",
|
||||||
"search_filter_location_country": "Valsts",
|
"search_filter_location_country": "Valsts",
|
||||||
"search_filter_location_state": "Štats",
|
"search_filter_location_state": "Štats",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Viss",
|
"search_filter_media_type_all": "Viss",
|
||||||
"search_filter_media_type_image": "Attēls",
|
"search_filter_media_type_image": "Attēls",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Videoklips",
|
"search_filter_media_type_video": "Videoklips",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Kategorijas",
|
"search_page_categories": "Kategorijas",
|
||||||
"search_page_favorites": "Izlase",
|
"search_page_favorites": "Izlase",
|
||||||
"search_page_motion_photos": "Kustību Fotoattēli",
|
"search_page_motion_photos": "Kustību Fotoattēli",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancel",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "New Password",
|
"change_password_form_new_password": "New Password",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Add to album",
|
"common_add_to_album": "Add to album",
|
||||||
"common_change_password": "Change Password",
|
"common_change_password": "Change Password",
|
||||||
"common_create_new_album": "Create new album",
|
"common_create_new_album": "Create new album",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
"common_shared": "Shared",
|
"common_shared": "Shared",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
"control_bottom_app_bar_add_to_album": "Add to album",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"control_bottom_app_bar_album_info": "{} items",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favorites",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"image_viewer_page_state_provider_share_error": "Share Error",
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Цуцлах",
|
"notification_permission_dialog_cancel": "Цуцлах",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
"notification_permission_dialog_settings": "Тохиргоо",
|
"notification_permission_dialog_settings": "Тохиргоо",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favorites",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Motion Photos",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Avbryt",
|
"action_common_cancel": "Avbryt",
|
||||||
"action_common_clear": "Tøm",
|
"action_common_clear": "Tøm",
|
||||||
"action_common_confirm": "Bekreft",
|
"action_common_confirm": "Bekreft",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Oppdater",
|
"action_common_update": "Oppdater",
|
||||||
"add_to_album_bottom_sheet_added": "Lagt til i {album}",
|
"add_to_album_bottom_sheet_added": "Lagt til i {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nytt passord",
|
"change_password_form_new_password": "Nytt passord",
|
||||||
"change_password_form_password_mismatch": "Passordene stemmer ikke",
|
"change_password_form_password_mismatch": "Passordene stemmer ikke",
|
||||||
"change_password_form_reenter_new_password": "Skriv nytt passord igjen",
|
"change_password_form_reenter_new_password": "Skriv nytt passord igjen",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Legg til i album",
|
"common_add_to_album": "Legg til i album",
|
||||||
"common_change_password": "Endre passord",
|
"common_change_password": "Endre passord",
|
||||||
"common_create_new_album": "Lag nytt album",
|
"common_create_new_album": "Lag nytt album",
|
||||||
"common_server_error": "Sjekk nettverkstilkoblingen din, forsikre deg om at serveren er mulig å nå, og at app-/server-versjonene er kompatible.",
|
"common_server_error": "Sjekk nettverkstilkoblingen din, forsikre deg om at serveren er mulig å nå, og at app-/server-versjonene er kompatible.",
|
||||||
"common_shared": "Delt",
|
"common_shared": "Delt",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Legg til i album",
|
"control_bottom_app_bar_add_to_album": "Legg til i album",
|
||||||
"control_bottom_app_bar_album_info": "{} objekter",
|
"control_bottom_app_bar_album_info": "{} objekter",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} objekter · Delt",
|
"control_bottom_app_bar_album_info_shared": "{} objekter · Delt",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Slett",
|
"control_bottom_app_bar_delete": "Slett",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Slett fra Immich",
|
"control_bottom_app_bar_delete_from_immich": "Slett fra Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Slett fra enhet",
|
"control_bottom_app_bar_delete_from_local": "Slett fra enhet",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Endre lokasjon",
|
"control_bottom_app_bar_edit_location": "Endre lokasjon",
|
||||||
"control_bottom_app_bar_edit_time": "Endre Dato og tid",
|
"control_bottom_app_bar_edit_time": "Endre Dato og tid",
|
||||||
"control_bottom_app_bar_favorite": "Favoritt",
|
"control_bottom_app_bar_favorite": "Favoritt",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Eksperimentelt",
|
"experimental_settings_title": "Eksperimentelt",
|
||||||
"favorites_page_no_favorites": "Ingen favorittobjekter funnet",
|
"favorites_page_no_favorites": "Ingen favorittobjekter funnet",
|
||||||
"favorites_page_title": "Favoritter",
|
"favorites_page_title": "Favoritter",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Aktivert haptisk tilbakemelding",
|
"haptic_feedback_switch": "Aktivert haptisk tilbakemelding",
|
||||||
"haptic_feedback_title": "Haptisk tilbakemelding",
|
"haptic_feedback_title": "Haptisk tilbakemelding",
|
||||||
"header_settings_add_header_tip": "Legg til header",
|
"header_settings_add_header_tip": "Legg til header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Nedlasting startet",
|
"image_viewer_page_state_provider_download_started": "Nedlasting startet",
|
||||||
"image_viewer_page_state_provider_download_success": "Nedlasting vellykket",
|
"image_viewer_page_state_provider_download_success": "Nedlasting vellykket",
|
||||||
"image_viewer_page_state_provider_share_error": "Delingsfeil",
|
"image_viewer_page_state_provider_share_error": "Delingsfeil",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albumer",
|
"library_page_albums": "Albumer",
|
||||||
"library_page_archive": "Arkiv",
|
"library_page_archive": "Arkiv",
|
||||||
"library_page_device_albums": "Albumer på enheten",
|
"library_page_device_albums": "Albumer på enheten",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Kan ikke endre dato på objekt(er) med kun lese-rettigheter, hopper over",
|
"multiselect_grid_edit_date_time_err_read_only": "Kan ikke endre dato på objekt(er) med kun lese-rettigheter, hopper over",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Kan ikke endre lokasjon på objekt(er) med kun lese-rettigheter, hopper over",
|
"multiselect_grid_edit_gps_err_read_only": "Kan ikke endre lokasjon på objekt(er) med kun lese-rettigheter, hopper over",
|
||||||
"no_assets_to_show": "Ingen objekter å vise",
|
"no_assets_to_show": "Ingen objekter å vise",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Avbryt",
|
"notification_permission_dialog_cancel": "Avbryt",
|
||||||
"notification_permission_dialog_content": "For å aktivere notifikasjoner, gå til Innstillinger og velg tillat.",
|
"notification_permission_dialog_content": "For å aktivere notifikasjoner, gå til Innstillinger og velg tillat.",
|
||||||
"notification_permission_dialog_settings": "Innstillinger",
|
"notification_permission_dialog_settings": "Innstillinger",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Feil oppstått",
|
"scaffold_body_error_occurred": "Feil oppstått",
|
||||||
"search_bar_hint": "Søk i dine bilder",
|
"search_bar_hint": "Søk i dine bilder",
|
||||||
"search_filter_apply": "Aktiver filter",
|
"search_filter_apply": "Aktiver filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Merke",
|
"search_filter_camera_make": "Merke",
|
||||||
"search_filter_camera_model": "Modell",
|
"search_filter_camera_model": "Modell",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Arkiver",
|
"search_filter_display_option_archive": "Arkiver",
|
||||||
"search_filter_display_option_favorite": "Favoritt",
|
"search_filter_display_option_favorite": "Favoritt",
|
||||||
"search_filter_display_option_not_in_album": "Ikke i album",
|
"search_filter_display_option_not_in_album": "Ikke i album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "By",
|
"search_filter_location_city": "By",
|
||||||
"search_filter_location_country": "Land",
|
"search_filter_location_country": "Land",
|
||||||
"search_filter_location_state": "Fylke",
|
"search_filter_location_state": "Fylke",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Alle",
|
"search_filter_media_type_all": "Alle",
|
||||||
"search_filter_media_type_image": "Bilde",
|
"search_filter_media_type_image": "Bilde",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Kategorier",
|
"search_page_categories": "Kategorier",
|
||||||
"search_page_favorites": "Favoritter",
|
"search_page_favorites": "Favoritter",
|
||||||
"search_page_motion_photos": "Bevegelige bilder",
|
"search_page_motion_photos": "Bevegelige bilder",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Annuleren",
|
"action_common_cancel": "Annuleren",
|
||||||
"action_common_clear": "Resetten",
|
"action_common_clear": "Resetten",
|
||||||
"action_common_confirm": "Bevestigen",
|
"action_common_confirm": "Bevestigen",
|
||||||
|
"action_common_save": "Opslaan",
|
||||||
|
"action_common_select": "Selecteren",
|
||||||
"action_common_update": "Bijwerken",
|
"action_common_update": "Bijwerken",
|
||||||
"add_to_album_bottom_sheet_added": "Toegevoegd aan {album}",
|
"add_to_album_bottom_sheet_added": "Toegevoegd aan {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Staat al in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Staat al in {album}",
|
||||||
@@ -32,7 +34,7 @@
|
|||||||
"album_viewer_appbar_share_err_title": "Albumtitel wijzigen mislukt",
|
"album_viewer_appbar_share_err_title": "Albumtitel wijzigen mislukt",
|
||||||
"album_viewer_appbar_share_leave": "Verlaat album",
|
"album_viewer_appbar_share_leave": "Verlaat album",
|
||||||
"album_viewer_appbar_share_remove": "Verwijder uit album",
|
"album_viewer_appbar_share_remove": "Verwijder uit album",
|
||||||
"album_viewer_appbar_share_to": "Delen met",
|
"album_viewer_appbar_share_to": "Delen via",
|
||||||
"album_viewer_page_share_add_users": "Gebruikers toevoegen",
|
"album_viewer_page_share_add_users": "Gebruikers toevoegen",
|
||||||
"all_people_page_title": "Mensen",
|
"all_people_page_title": "Mensen",
|
||||||
"all_videos_page_title": "Video's",
|
"all_videos_page_title": "Video's",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nieuw wachtwoord",
|
"change_password_form_new_password": "Nieuw wachtwoord",
|
||||||
"change_password_form_password_mismatch": "Wachtwoorden komen niet overeen",
|
"change_password_form_password_mismatch": "Wachtwoorden komen niet overeen",
|
||||||
"change_password_form_reenter_new_password": "Vul het wachtwoord opnieuw in",
|
"change_password_form_reenter_new_password": "Vul het wachtwoord opnieuw in",
|
||||||
|
"client_cert_dialog_msg_confirm": "Ok",
|
||||||
|
"client_cert_enter_password": "Voer wachtwoord in",
|
||||||
|
"client_cert_import": "Importeren",
|
||||||
|
"client_cert_import_success_msg": "Clientcertificaat is geïmporteerd",
|
||||||
|
"client_cert_invalid_msg": "Ongeldig certificaatbestand of verkeerd wachtwoord",
|
||||||
|
"client_cert_remove": "Verwijderen",
|
||||||
|
"client_cert_remove_msg": "Clientcertificaat is verwijderd",
|
||||||
|
"client_cert_subtitle": "Ondersteunt alleen PKCS12 (.p12, .pfx) formaat. Certificaat importeren/verwijderen is alleen beschikbaar vóór het inloggen",
|
||||||
|
"client_cert_title": "SSL clientcertificaat",
|
||||||
"common_add_to_album": "Aan album toevoegen",
|
"common_add_to_album": "Aan album toevoegen",
|
||||||
"common_change_password": "Wachtwoord wijzigen",
|
"common_change_password": "Wachtwoord wijzigen",
|
||||||
"common_create_new_album": "Nieuw album maken",
|
"common_create_new_album": "Nieuw album maken",
|
||||||
"common_server_error": "Controleer je netwerkverbinding, zorg ervoor dat de server bereikbaar is en de app/server versies compatibel zijn.",
|
"common_server_error": "Controleer je netwerkverbinding, zorg ervoor dat de server bereikbaar is en de app/server versies compatibel zijn.",
|
||||||
"common_shared": "Gedeeld",
|
"common_shared": "Gedeeld",
|
||||||
|
"contextual_search": "Zonsopkomst op het strand",
|
||||||
"control_bottom_app_bar_add_to_album": "Aan album toevoegen",
|
"control_bottom_app_bar_add_to_album": "Aan album toevoegen",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"control_bottom_app_bar_album_info": "{} items",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Gedeeld",
|
"control_bottom_app_bar_album_info_shared": "{} items · Gedeeld",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Verwijderen",
|
"control_bottom_app_bar_delete": "Verwijderen",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Verwijderen van Immich",
|
"control_bottom_app_bar_delete_from_immich": "Verwijderen van Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Verwijderen van apparaat",
|
"control_bottom_app_bar_delete_from_local": "Verwijderen van apparaat",
|
||||||
|
"control_bottom_app_bar_edit": "Bewerken",
|
||||||
"control_bottom_app_bar_edit_location": "Locatie bewerken",
|
"control_bottom_app_bar_edit_location": "Locatie bewerken",
|
||||||
"control_bottom_app_bar_edit_time": "Datum & tijd bewerken",
|
"control_bottom_app_bar_edit_time": "Datum & tijd bewerken",
|
||||||
"control_bottom_app_bar_favorite": "Favoriet",
|
"control_bottom_app_bar_favorite": "Favoriet",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimenteel",
|
"experimental_settings_title": "Experimenteel",
|
||||||
"favorites_page_no_favorites": "Geen favoriete assets gevonden",
|
"favorites_page_no_favorites": "Geen favoriete assets gevonden",
|
||||||
"favorites_page_title": "Favorieten",
|
"favorites_page_title": "Favorieten",
|
||||||
|
"filename_search": "Bestandsnaam of extensie",
|
||||||
"haptic_feedback_switch": "Aanraaktrillingen inschakelen",
|
"haptic_feedback_switch": "Aanraaktrillingen inschakelen",
|
||||||
"haptic_feedback_title": "Aanraaktrillingen",
|
"haptic_feedback_title": "Aanraaktrillingen",
|
||||||
"header_settings_add_header_tip": "Header toevoegen",
|
"header_settings_add_header_tip": "Header toevoegen",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download gestart",
|
"image_viewer_page_state_provider_download_started": "Download gestart",
|
||||||
"image_viewer_page_state_provider_download_success": "Download succesvol",
|
"image_viewer_page_state_provider_download_success": "Download succesvol",
|
||||||
"image_viewer_page_state_provider_share_error": "Deel Error",
|
"image_viewer_page_state_provider_share_error": "Deel Error",
|
||||||
|
"invalid_date": "Ongeldige datum",
|
||||||
|
"invalid_date_format": "Ongeldig datumformaat",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archief",
|
"library_page_archive": "Archief",
|
||||||
"library_page_device_albums": "Albums op apparaat",
|
"library_page_device_albums": "Albums op apparaat",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Kan datum van alleen-lezen asset(s) niet wijzigen, overslaan",
|
"multiselect_grid_edit_date_time_err_read_only": "Kan datum van alleen-lezen asset(s) niet wijzigen, overslaan",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Kan locatie van alleen-lezen asset(s) niet wijzigen, overslaan",
|
"multiselect_grid_edit_gps_err_read_only": "Kan locatie van alleen-lezen asset(s) niet wijzigen, overslaan",
|
||||||
"no_assets_to_show": "Geen foto's om te laten zien",
|
"no_assets_to_show": "Geen foto's om te laten zien",
|
||||||
|
"no_name": "Geen naam",
|
||||||
"notification_permission_dialog_cancel": "Annuleren",
|
"notification_permission_dialog_cancel": "Annuleren",
|
||||||
"notification_permission_dialog_content": "Om meldingen in te schakelen, ga naar Instellingen en selecteer toestaan.",
|
"notification_permission_dialog_content": "Om meldingen in te schakelen, ga naar Instellingen en selecteer toestaan.",
|
||||||
"notification_permission_dialog_settings": "Instellingen",
|
"notification_permission_dialog_settings": "Instellingen",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Fout opgetreden",
|
"scaffold_body_error_occurred": "Fout opgetreden",
|
||||||
"search_bar_hint": "Foto's doorzoeken",
|
"search_bar_hint": "Foto's doorzoeken",
|
||||||
"search_filter_apply": "Filter toepassen",
|
"search_filter_apply": "Filter toepassen",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Merk",
|
"search_filter_camera_make": "Merk",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Selecteer cameratype",
|
||||||
|
"search_filter_date": "Datum",
|
||||||
|
"search_filter_date_interval": "{start} tot {end}",
|
||||||
|
"search_filter_date_title": "Selecteer datumbereik",
|
||||||
"search_filter_display_option_archive": "Archief",
|
"search_filter_display_option_archive": "Archief",
|
||||||
"search_filter_display_option_favorite": "Favoriet",
|
"search_filter_display_option_favorite": "Favoriet",
|
||||||
"search_filter_display_option_not_in_album": "Niet in album",
|
"search_filter_display_option_not_in_album": "Niet in album",
|
||||||
|
"search_filter_display_options": "Weergaveopties",
|
||||||
|
"search_filter_display_options_title": "Weergaveopties",
|
||||||
|
"search_filter_location": "Locatie",
|
||||||
"search_filter_location_city": "Stad",
|
"search_filter_location_city": "Stad",
|
||||||
"search_filter_location_country": "Land",
|
"search_filter_location_country": "Land",
|
||||||
"search_filter_location_state": "Status",
|
"search_filter_location_state": "Status",
|
||||||
|
"search_filter_location_title": "Selecteer locatie",
|
||||||
|
"search_filter_media_type": "Mediatype",
|
||||||
"search_filter_media_type_all": "Alle",
|
"search_filter_media_type_all": "Alle",
|
||||||
"search_filter_media_type_image": "Afbeelding",
|
"search_filter_media_type_image": "Afbeelding",
|
||||||
|
"search_filter_media_type_title": "Selecteer mediatype",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "Mensen",
|
||||||
|
"search_filter_people_title": "Selecteer mensen",
|
||||||
"search_page_categories": "Categorieën",
|
"search_page_categories": "Categorieën",
|
||||||
"search_page_favorites": "Favorieten",
|
"search_page_favorites": "Favorieten",
|
||||||
"search_page_motion_photos": "Bewegende foto's",
|
"search_page_motion_photos": "Bewegende foto's",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Anuluj",
|
"action_common_cancel": "Anuluj",
|
||||||
"action_common_clear": "Wyrzuść",
|
"action_common_clear": "Wyrzuść",
|
||||||
"action_common_confirm": "Potwierdzać",
|
"action_common_confirm": "Potwierdzać",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Aktualizuj",
|
"action_common_update": "Aktualizuj",
|
||||||
"add_to_album_bottom_sheet_added": "Dodano do {album}",
|
"add_to_album_bottom_sheet_added": "Dodano do {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Już w {album}",
|
"add_to_album_bottom_sheet_already_exists": "Już w {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nowe Hasło",
|
"change_password_form_new_password": "Nowe Hasło",
|
||||||
"change_password_form_password_mismatch": "Hasła nie są zgodne",
|
"change_password_form_password_mismatch": "Hasła nie są zgodne",
|
||||||
"change_password_form_reenter_new_password": "Wprowadź ponownie Nowe Hasło",
|
"change_password_form_reenter_new_password": "Wprowadź ponownie Nowe Hasło",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Dodaj do albumu",
|
"common_add_to_album": "Dodaj do albumu",
|
||||||
"common_change_password": "Zmień Hasło",
|
"common_change_password": "Zmień Hasło",
|
||||||
"common_create_new_album": "Utwórz nowy album",
|
"common_create_new_album": "Utwórz nowy album",
|
||||||
"common_server_error": "Sprawdź połączenie sieciowe, upewnij się, że serwer jest osiągalny i wersje aplikacji/serwera są kompatybilne.",
|
"common_server_error": "Sprawdź połączenie sieciowe, upewnij się, że serwer jest osiągalny i wersje aplikacji/serwera są kompatybilne.",
|
||||||
"common_shared": "Udostępnione",
|
"common_shared": "Udostępnione",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Dodaj do albumu",
|
"control_bottom_app_bar_add_to_album": "Dodaj do albumu",
|
||||||
"control_bottom_app_bar_album_info": "{} pozycji",
|
"control_bottom_app_bar_album_info": "{} pozycji",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} pozycji · Udostępnionych",
|
"control_bottom_app_bar_album_info_shared": "{} pozycji · Udostępnionych",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Usuń",
|
"control_bottom_app_bar_delete": "Usuń",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Usuń z Immicha",
|
"control_bottom_app_bar_delete_from_immich": "Usuń z Immicha",
|
||||||
"control_bottom_app_bar_delete_from_local": "Usuń z urządzenia",
|
"control_bottom_app_bar_delete_from_local": "Usuń z urządzenia",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edytuj lokalizację",
|
"control_bottom_app_bar_edit_location": "Edytuj lokalizację",
|
||||||
"control_bottom_app_bar_edit_time": "Edytuj datę i godzinę",
|
"control_bottom_app_bar_edit_time": "Edytuj datę i godzinę",
|
||||||
"control_bottom_app_bar_favorite": "Ulubione",
|
"control_bottom_app_bar_favorite": "Ulubione",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Eksperymentalny",
|
"experimental_settings_title": "Eksperymentalny",
|
||||||
"favorites_page_no_favorites": "Nie znaleziono ulubionych zasobów",
|
"favorites_page_no_favorites": "Nie znaleziono ulubionych zasobów",
|
||||||
"favorites_page_title": "Ulubione",
|
"favorites_page_title": "Ulubione",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Dodaj nagłówek",
|
"header_settings_add_header_tip": "Dodaj nagłówek",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Pobieranie rozpoczęte",
|
"image_viewer_page_state_provider_download_started": "Pobieranie rozpoczęte",
|
||||||
"image_viewer_page_state_provider_download_success": "Pobieranie zakończone",
|
"image_viewer_page_state_provider_download_success": "Pobieranie zakończone",
|
||||||
"image_viewer_page_state_provider_share_error": "Udostępnij błąd",
|
"image_viewer_page_state_provider_share_error": "Udostępnij błąd",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albumy",
|
"library_page_albums": "Albumy",
|
||||||
"library_page_archive": "Archiwum",
|
"library_page_archive": "Archiwum",
|
||||||
"library_page_device_albums": "Albumy na Urządzeniu",
|
"library_page_device_albums": "Albumy na Urządzeniu",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Nie można edytować daty zasobów tylko do odczytu, pomijanie",
|
"multiselect_grid_edit_date_time_err_read_only": "Nie można edytować daty zasobów tylko do odczytu, pomijanie",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Nie można edytować lokalizacji zasobów tylko do odczytu, pomijanie",
|
"multiselect_grid_edit_gps_err_read_only": "Nie można edytować lokalizacji zasobów tylko do odczytu, pomijanie",
|
||||||
"no_assets_to_show": "Brak zasobów do pokazania",
|
"no_assets_to_show": "Brak zasobów do pokazania",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Anuluj",
|
"notification_permission_dialog_cancel": "Anuluj",
|
||||||
"notification_permission_dialog_content": "Aby włączyć powiadomienia, przejdź do Ustawień i wybierz opcję Zezwalaj.",
|
"notification_permission_dialog_content": "Aby włączyć powiadomienia, przejdź do Ustawień i wybierz opcję Zezwalaj.",
|
||||||
"notification_permission_dialog_settings": "Ustawienia",
|
"notification_permission_dialog_settings": "Ustawienia",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Wystąpił błąd",
|
"scaffold_body_error_occurred": "Wystąpił błąd",
|
||||||
"search_bar_hint": "Szukaj swoich zdjęć",
|
"search_bar_hint": "Szukaj swoich zdjęć",
|
||||||
"search_filter_apply": "Zastosuj filtr",
|
"search_filter_apply": "Zastosuj filtr",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archiwum",
|
"search_filter_display_option_archive": "Archiwum",
|
||||||
"search_filter_display_option_favorite": "Ulubiony",
|
"search_filter_display_option_favorite": "Ulubiony",
|
||||||
"search_filter_display_option_not_in_album": "Nie w albumie",
|
"search_filter_display_option_not_in_album": "Nie w albumie",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Miasto",
|
"search_filter_location_city": "Miasto",
|
||||||
"search_filter_location_country": "Kraj",
|
"search_filter_location_country": "Kraj",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Wszystko",
|
"search_filter_media_type_all": "Wszystko",
|
||||||
"search_filter_media_type_image": "Obrazy",
|
"search_filter_media_type_image": "Obrazy",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Filmy",
|
"search_filter_media_type_video": "Filmy",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Kategorie",
|
"search_page_categories": "Kategorie",
|
||||||
"search_page_favorites": "Ulubione",
|
"search_page_favorites": "Ulubione",
|
||||||
"search_page_motion_photos": "Zdjęcia ruchome",
|
"search_page_motion_photos": "Zdjęcia ruchome",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancelar",
|
"action_common_cancel": "Cancelar",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Atualizar",
|
"action_common_update": "Atualizar",
|
||||||
"add_to_album_bottom_sheet_added": "Adicionar a {album}",
|
"add_to_album_bottom_sheet_added": "Adicionar a {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Já pertence a {album}",
|
"add_to_album_bottom_sheet_already_exists": "Já pertence a {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nova senha",
|
"change_password_form_new_password": "Nova senha",
|
||||||
"change_password_form_password_mismatch": "As senhas não coincidem",
|
"change_password_form_password_mismatch": "As senhas não coincidem",
|
||||||
"change_password_form_reenter_new_password": "Re-introduza a nova senha",
|
"change_password_form_reenter_new_password": "Re-introduza a nova senha",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Adicionar ao álbum",
|
"common_add_to_album": "Adicionar ao álbum",
|
||||||
"common_change_password": "Mudar a senha",
|
"common_change_password": "Mudar a senha",
|
||||||
"common_create_new_album": "Criar novo álbum",
|
"common_create_new_album": "Criar novo álbum",
|
||||||
"common_server_error": "Verifique a sua ligação de rede, certifique-se de que o servidor está acessível e de que as versões da aplicação/servidor são compatíveis.",
|
"common_server_error": "Verifique a sua ligação de rede, certifique-se de que o servidor está acessível e de que as versões da aplicação/servidor são compatíveis.",
|
||||||
"common_shared": "Partilhado",
|
"common_shared": "Partilhado",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Adicionar ao álbum",
|
"control_bottom_app_bar_add_to_album": "Adicionar ao álbum",
|
||||||
"control_bottom_app_bar_album_info": "{} itens",
|
"control_bottom_app_bar_album_info": "{} itens",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} itens · Partilhado",
|
"control_bottom_app_bar_album_info_shared": "{} itens · Partilhado",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Deletar",
|
"control_bottom_app_bar_delete": "Deletar",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Apagar do Immich",
|
"control_bottom_app_bar_delete_from_immich": "Apagar do Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Apagar do dispositivo",
|
"control_bottom_app_bar_delete_from_local": "Apagar do dispositivo",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Editar Localização",
|
"control_bottom_app_bar_edit_location": "Editar Localização",
|
||||||
"control_bottom_app_bar_edit_time": "Editar Data & Hora",
|
"control_bottom_app_bar_edit_time": "Editar Data & Hora",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "Nenhum recurso favorito encontrado",
|
"favorites_page_no_favorites": "Nenhum recurso favorito encontrado",
|
||||||
"favorites_page_title": "Favoritos",
|
"favorites_page_title": "Favoritos",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Descarregado",
|
"image_viewer_page_state_provider_download_success": "Descarregado",
|
||||||
"image_viewer_page_state_provider_share_error": "Erro ao partilhar",
|
"image_viewer_page_state_provider_share_error": "Erro ao partilhar",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Álbuns",
|
"library_page_albums": "Álbuns",
|
||||||
"library_page_archive": "Arquivo",
|
"library_page_archive": "Arquivo",
|
||||||
"library_page_device_albums": "Álbuns no dispositivo",
|
"library_page_device_albums": "Álbuns no dispositivo",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Não é possível editar a data de recurso(s) só de leitura, ignorando",
|
"multiselect_grid_edit_date_time_err_read_only": "Não é possível editar a data de recurso(s) só de leitura, ignorando",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Não é possível editar a localização de recurso(s) só de leitura, ignorando",
|
"multiselect_grid_edit_gps_err_read_only": "Não é possível editar a localização de recurso(s) só de leitura, ignorando",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancelar",
|
"notification_permission_dialog_cancel": "Cancelar",
|
||||||
"notification_permission_dialog_content": "Para ativar as notificações, vá a Definições e selecione permitir.",
|
"notification_permission_dialog_content": "Para ativar as notificações, vá a Definições e selecione permitir.",
|
||||||
"notification_permission_dialog_settings": "Definições",
|
"notification_permission_dialog_settings": "Definições",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Ocorreu um erro",
|
"scaffold_body_error_occurred": "Ocorreu um erro",
|
||||||
"search_bar_hint": "Busque suas fotos",
|
"search_bar_hint": "Busque suas fotos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categorias",
|
"search_page_categories": "Categorias",
|
||||||
"search_page_favorites": "Favoritos",
|
"search_page_favorites": "Favoritos",
|
||||||
"search_page_motion_photos": "Fotos com movimento",
|
"search_page_motion_photos": "Fotos com movimento",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Anulează",
|
"action_common_cancel": "Anulează",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Actualizează",
|
"action_common_update": "Actualizează",
|
||||||
"add_to_album_bottom_sheet_added": "Adăugat în {album}",
|
"add_to_album_bottom_sheet_added": "Adăugat în {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Deja în {album}",
|
"add_to_album_bottom_sheet_already_exists": "Deja în {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Parolă nouă",
|
"change_password_form_new_password": "Parolă nouă",
|
||||||
"change_password_form_password_mismatch": "Parolele nu se potrivesc",
|
"change_password_form_password_mismatch": "Parolele nu se potrivesc",
|
||||||
"change_password_form_reenter_new_password": "Reintrodu noua parolă",
|
"change_password_form_reenter_new_password": "Reintrodu noua parolă",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Adaugă în album",
|
"common_add_to_album": "Adaugă în album",
|
||||||
"common_change_password": "Schimbă parola",
|
"common_change_password": "Schimbă parola",
|
||||||
"common_create_new_album": "Creează album nou",
|
"common_create_new_album": "Creează album nou",
|
||||||
"common_server_error": "Te rugăm să verifici conexiunea la rețea, asigura-te că server-ul este accesibil și că versiunile aplicației/server-ului sunt compatibile.",
|
"common_server_error": "Te rugăm să verifici conexiunea la rețea, asigura-te că server-ul este accesibil și că versiunile aplicației/server-ului sunt compatibile.",
|
||||||
"common_shared": "Distribuit",
|
"common_shared": "Distribuit",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Adaugă în album",
|
"control_bottom_app_bar_add_to_album": "Adaugă în album",
|
||||||
"control_bottom_app_bar_album_info": "{} elemente",
|
"control_bottom_app_bar_album_info": "{} elemente",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} elemente · Distribuite",
|
"control_bottom_app_bar_album_info_shared": "{} elemente · Distribuite",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Șterge",
|
"control_bottom_app_bar_delete": "Șterge",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Șterge din Immich",
|
"control_bottom_app_bar_delete_from_immich": "Șterge din Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Șterge din dispozitiv",
|
"control_bottom_app_bar_delete_from_local": "Șterge din dispozitiv",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Editează locație",
|
"control_bottom_app_bar_edit_location": "Editează locație",
|
||||||
"control_bottom_app_bar_edit_time": "Editează Data și Ora",
|
"control_bottom_app_bar_edit_time": "Editează Data și Ora",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "Nu au fost găsite resurse favorite",
|
"favorites_page_no_favorites": "Nu au fost găsite resurse favorite",
|
||||||
"favorites_page_title": "Favorite",
|
"favorites_page_title": "Favorite",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Descărcare cu succes",
|
"image_viewer_page_state_provider_download_success": "Descărcare cu succes",
|
||||||
"image_viewer_page_state_provider_share_error": "Eroare distribuire",
|
"image_viewer_page_state_provider_share_error": "Eroare distribuire",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albume",
|
"library_page_albums": "Albume",
|
||||||
"library_page_archive": "Arhivă",
|
"library_page_archive": "Arhivă",
|
||||||
"library_page_device_albums": "Albume în dispozitiv",
|
"library_page_device_albums": "Albume în dispozitiv",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Nu se poate edita data fișierului(lor) cu permisiuni doar pentru citire, omitere",
|
"multiselect_grid_edit_date_time_err_read_only": "Nu se poate edita data fișierului(lor) cu permisiuni doar pentru citire, omitere",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Nu se poate edita locația fișierului(lor) cu permisiuni doar pentru citire, omitere",
|
"multiselect_grid_edit_gps_err_read_only": "Nu se poate edita locația fișierului(lor) cu permisiuni doar pentru citire, omitere",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Anulează",
|
"notification_permission_dialog_cancel": "Anulează",
|
||||||
"notification_permission_dialog_content": "Pentru a activa notificările, mergi în Setări > Immich și selectează permite.",
|
"notification_permission_dialog_content": "Pentru a activa notificările, mergi în Setări > Immich și selectează permite.",
|
||||||
"notification_permission_dialog_settings": "Setări",
|
"notification_permission_dialog_settings": "Setări",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "A apărut o eroare",
|
"scaffold_body_error_occurred": "A apărut o eroare",
|
||||||
"search_bar_hint": "Căutare fotografii",
|
"search_bar_hint": "Căutare fotografii",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categorii",
|
"search_page_categories": "Categorii",
|
||||||
"search_page_favorites": "Favorite",
|
"search_page_favorites": "Favorite",
|
||||||
"search_page_motion_photos": "Fotografii în mișcare",
|
"search_page_motion_photos": "Fotografii în mișcare",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Отмена",
|
"action_common_cancel": "Отмена",
|
||||||
"action_common_clear": "Очистить",
|
"action_common_clear": "Очистить",
|
||||||
"action_common_confirm": "Подтвердить",
|
"action_common_confirm": "Подтвердить",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Обновить",
|
"action_common_update": "Обновить",
|
||||||
"add_to_album_bottom_sheet_added": "Добавлено в {album}",
|
"add_to_album_bottom_sheet_added": "Добавлено в {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Уже в {album}",
|
"add_to_album_bottom_sheet_already_exists": "Уже в {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Новый пароль",
|
"change_password_form_new_password": "Новый пароль",
|
||||||
"change_password_form_password_mismatch": "Пароли не совпадают",
|
"change_password_form_password_mismatch": "Пароли не совпадают",
|
||||||
"change_password_form_reenter_new_password": "Повторно введите новый пароль",
|
"change_password_form_reenter_new_password": "Повторно введите новый пароль",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Добавить в альбом",
|
"common_add_to_album": "Добавить в альбом",
|
||||||
"common_change_password": "Изменить пароль",
|
"common_change_password": "Изменить пароль",
|
||||||
"common_create_new_album": "Создать новый альбом",
|
"common_create_new_album": "Создать новый альбом",
|
||||||
"common_server_error": "Пожалуйста, проверьте подключение к сети и убедитесь, что ваш сервер доступен, а версии приложения и сервера — совместимы.",
|
"common_server_error": "Пожалуйста, проверьте подключение к сети и убедитесь, что ваш сервер доступен, а версии приложения и сервера — совместимы.",
|
||||||
"common_shared": "Общие",
|
"common_shared": "Общие",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Добавить в альбом",
|
"control_bottom_app_bar_add_to_album": "Добавить в альбом",
|
||||||
"control_bottom_app_bar_album_info": "{} файлов",
|
"control_bottom_app_bar_album_info": "{} файлов",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} файлов · Общий",
|
"control_bottom_app_bar_album_info_shared": "{} файлов · Общий",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Удалить",
|
"control_bottom_app_bar_delete": "Удалить",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Удалить из Immich\n",
|
"control_bottom_app_bar_delete_from_immich": "Удалить из Immich\n",
|
||||||
"control_bottom_app_bar_delete_from_local": "Удалить с устройства",
|
"control_bottom_app_bar_delete_from_local": "Удалить с устройства",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Редактировать местоположение",
|
"control_bottom_app_bar_edit_location": "Редактировать местоположение",
|
||||||
"control_bottom_app_bar_edit_time": "Редактировать дату и время",
|
"control_bottom_app_bar_edit_time": "Редактировать дату и время",
|
||||||
"control_bottom_app_bar_favorite": "В избранное",
|
"control_bottom_app_bar_favorite": "В избранное",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Экспериментальные функции",
|
"experimental_settings_title": "Экспериментальные функции",
|
||||||
"favorites_page_no_favorites": "В избранном сейчас пусто",
|
"favorites_page_no_favorites": "В избранном сейчас пусто",
|
||||||
"favorites_page_title": "Избранное",
|
"favorites_page_title": "Избранное",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Включить тактильную отдачу",
|
"haptic_feedback_switch": "Включить тактильную отдачу",
|
||||||
"haptic_feedback_title": "Тактильная отдача",
|
"haptic_feedback_title": "Тактильная отдача",
|
||||||
"header_settings_add_header_tip": "Добавить заголовок",
|
"header_settings_add_header_tip": "Добавить заголовок",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Загрузка началась",
|
"image_viewer_page_state_provider_download_started": "Загрузка началась",
|
||||||
"image_viewer_page_state_provider_download_success": "Успешно загружено",
|
"image_viewer_page_state_provider_download_success": "Успешно загружено",
|
||||||
"image_viewer_page_state_provider_share_error": "Ошибка общего доступа",
|
"image_viewer_page_state_provider_share_error": "Ошибка общего доступа",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Альбомы",
|
"library_page_albums": "Альбомы",
|
||||||
"library_page_archive": "Архив",
|
"library_page_archive": "Архив",
|
||||||
"library_page_device_albums": "Альбомы на устройстве",
|
"library_page_device_albums": "Альбомы на устройстве",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Невозможно редактировать дату объектов только для чтения, пропуск...",
|
"multiselect_grid_edit_date_time_err_read_only": "Невозможно редактировать дату объектов только для чтения, пропуск...",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Невозможно редактировать местоположение объектов только для чтения, пропуск...",
|
"multiselect_grid_edit_gps_err_read_only": "Невозможно редактировать местоположение объектов только для чтения, пропуск...",
|
||||||
"no_assets_to_show": "Объекты отсутствуют",
|
"no_assets_to_show": "Объекты отсутствуют",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Отмена",
|
"notification_permission_dialog_cancel": "Отмена",
|
||||||
"notification_permission_dialog_content": "Чтобы включить уведомления, перейдите в «Настройки» и выберите «Разрешить».",
|
"notification_permission_dialog_content": "Чтобы включить уведомления, перейдите в «Настройки» и выберите «Разрешить».",
|
||||||
"notification_permission_dialog_settings": "Настройки",
|
"notification_permission_dialog_settings": "Настройки",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Возникла ошибка",
|
"scaffold_body_error_occurred": "Возникла ошибка",
|
||||||
"search_bar_hint": "Поиск фотографий",
|
"search_bar_hint": "Поиск фотографий",
|
||||||
"search_filter_apply": "Применить фильтр",
|
"search_filter_apply": "Применить фильтр",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Производитель",
|
"search_filter_camera_make": "Производитель",
|
||||||
"search_filter_camera_model": "Модель",
|
"search_filter_camera_model": "Модель",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Архив",
|
"search_filter_display_option_archive": "Архив",
|
||||||
"search_filter_display_option_favorite": "Избранное",
|
"search_filter_display_option_favorite": "Избранное",
|
||||||
"search_filter_display_option_not_in_album": "Не в альбоме",
|
"search_filter_display_option_not_in_album": "Не в альбоме",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Город",
|
"search_filter_location_city": "Город",
|
||||||
"search_filter_location_country": "Страна",
|
"search_filter_location_country": "Страна",
|
||||||
"search_filter_location_state": "Регион",
|
"search_filter_location_state": "Регион",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Все",
|
"search_filter_media_type_all": "Все",
|
||||||
"search_filter_media_type_image": "Изображения",
|
"search_filter_media_type_image": "Изображения",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Видео",
|
"search_filter_media_type_video": "Видео",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Категории",
|
"search_page_categories": "Категории",
|
||||||
"search_page_favorites": "Избранное",
|
"search_page_favorites": "Избранное",
|
||||||
"search_page_motion_photos": "Динамические фото",
|
"search_page_motion_photos": "Динамические фото",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Zrušiť",
|
"action_common_cancel": "Zrušiť",
|
||||||
"action_common_clear": "Vyčistiť",
|
"action_common_clear": "Vyčistiť",
|
||||||
"action_common_confirm": "Potvrdiť",
|
"action_common_confirm": "Potvrdiť",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Aktualizovať",
|
"action_common_update": "Aktualizovať",
|
||||||
"add_to_album_bottom_sheet_added": "Pridané do {album}",
|
"add_to_album_bottom_sheet_added": "Pridané do {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Už v {album}",
|
"add_to_album_bottom_sheet_already_exists": "Už v {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nové heslo",
|
"change_password_form_new_password": "Nové heslo",
|
||||||
"change_password_form_password_mismatch": "Heslá sa nezhodujú",
|
"change_password_form_password_mismatch": "Heslá sa nezhodujú",
|
||||||
"change_password_form_reenter_new_password": "Znova zadajte nové heslo",
|
"change_password_form_reenter_new_password": "Znova zadajte nové heslo",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Pridať do albumu",
|
"common_add_to_album": "Pridať do albumu",
|
||||||
"common_change_password": "Zmeniť heslo",
|
"common_change_password": "Zmeniť heslo",
|
||||||
"common_create_new_album": "Vytvoriť nový album",
|
"common_create_new_album": "Vytvoriť nový album",
|
||||||
"common_server_error": "Skontrolujte svoje sieťové pripojenie, uistite sa, že server je dostupný a verzie aplikácie/server sú kompatibilné.",
|
"common_server_error": "Skontrolujte svoje sieťové pripojenie, uistite sa, že server je dostupný a verzie aplikácie/server sú kompatibilné.",
|
||||||
"common_shared": "Zdieľané",
|
"common_shared": "Zdieľané",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Pridať do albumu",
|
"control_bottom_app_bar_add_to_album": "Pridať do albumu",
|
||||||
"control_bottom_app_bar_album_info": "{} položiek",
|
"control_bottom_app_bar_album_info": "{} položiek",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} položiek - zdieľané",
|
"control_bottom_app_bar_album_info_shared": "{} položiek - zdieľané",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Vymazať",
|
"control_bottom_app_bar_delete": "Vymazať",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Vymazať z Immichu",
|
"control_bottom_app_bar_delete_from_immich": "Vymazať z Immichu",
|
||||||
"control_bottom_app_bar_delete_from_local": "Vymazať zo zariadenia",
|
"control_bottom_app_bar_delete_from_local": "Vymazať zo zariadenia",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Upraviť polohu",
|
"control_bottom_app_bar_edit_location": "Upraviť polohu",
|
||||||
"control_bottom_app_bar_edit_time": "Upraviť dátum a čas",
|
"control_bottom_app_bar_edit_time": "Upraviť dátum a čas",
|
||||||
"control_bottom_app_bar_favorite": "Obľúbené",
|
"control_bottom_app_bar_favorite": "Obľúbené",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimentálne",
|
"experimental_settings_title": "Experimentálne",
|
||||||
"favorites_page_no_favorites": "Žiadne obľúbené médiá",
|
"favorites_page_no_favorites": "Žiadne obľúbené médiá",
|
||||||
"favorites_page_title": "Obľúbené",
|
"favorites_page_title": "Obľúbené",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Povoliť hmatovú odozvu",
|
"haptic_feedback_switch": "Povoliť hmatovú odozvu",
|
||||||
"haptic_feedback_title": "Hmatová odozva",
|
"haptic_feedback_title": "Hmatová odozva",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Sťahovanie sa začalo",
|
"image_viewer_page_state_provider_download_started": "Sťahovanie sa začalo",
|
||||||
"image_viewer_page_state_provider_download_success": "Sťahovanie bolo úspešné",
|
"image_viewer_page_state_provider_download_success": "Sťahovanie bolo úspešné",
|
||||||
"image_viewer_page_state_provider_share_error": "Chyba zdieľania",
|
"image_viewer_page_state_provider_share_error": "Chyba zdieľania",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albumy",
|
"library_page_albums": "Albumy",
|
||||||
"library_page_archive": "Archív",
|
"library_page_archive": "Archív",
|
||||||
"library_page_device_albums": "Albumy v zariadení",
|
"library_page_device_albums": "Albumy v zariadení",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Nemožno upraviť dátum položky len na čítanie, preskakujem",
|
"multiselect_grid_edit_date_time_err_read_only": "Nemožno upraviť dátum položky len na čítanie, preskakujem",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Nemožno upraviť polohu položky len na čítanie, preskakujem",
|
"multiselect_grid_edit_gps_err_read_only": "Nemožno upraviť polohu položky len na čítanie, preskakujem",
|
||||||
"no_assets_to_show": "Žiadne položky",
|
"no_assets_to_show": "Žiadne položky",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Zrušiť",
|
"notification_permission_dialog_cancel": "Zrušiť",
|
||||||
"notification_permission_dialog_content": "Ak chcete povoliť upozornenia, prejdite do Nastavenia a vyberte možnosť Povoliť.",
|
"notification_permission_dialog_content": "Ak chcete povoliť upozornenia, prejdite do Nastavenia a vyberte možnosť Povoliť.",
|
||||||
"notification_permission_dialog_settings": "Nastavenia",
|
"notification_permission_dialog_settings": "Nastavenia",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Vyskytla sa chyba",
|
"scaffold_body_error_occurred": "Vyskytla sa chyba",
|
||||||
"search_bar_hint": "Prehľadajte svoje obrázky",
|
"search_bar_hint": "Prehľadajte svoje obrázky",
|
||||||
"search_filter_apply": "Použiť filter",
|
"search_filter_apply": "Použiť filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Spraviť",
|
"search_filter_camera_make": "Spraviť",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archív",
|
"search_filter_display_option_archive": "Archív",
|
||||||
"search_filter_display_option_favorite": "Obľúbené",
|
"search_filter_display_option_favorite": "Obľúbené",
|
||||||
"search_filter_display_option_not_in_album": "Mimo albumu",
|
"search_filter_display_option_not_in_album": "Mimo albumu",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Mesto",
|
"search_filter_location_city": "Mesto",
|
||||||
"search_filter_location_country": "Oblasť",
|
"search_filter_location_country": "Oblasť",
|
||||||
"search_filter_location_state": "Štát",
|
"search_filter_location_state": "Štát",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Všetky",
|
"search_filter_media_type_all": "Všetky",
|
||||||
"search_filter_media_type_image": "Obrázok",
|
"search_filter_media_type_image": "Obrázok",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Kategórie",
|
"search_page_categories": "Kategórie",
|
||||||
"search_page_favorites": "Obľúbené",
|
"search_page_favorites": "Obľúbené",
|
||||||
"search_page_motion_photos": "Pohyblivé fotky",
|
"search_page_motion_photos": "Pohyblivé fotky",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Prekliči",
|
"action_common_cancel": "Prekliči",
|
||||||
"action_common_clear": "Počisti",
|
"action_common_clear": "Počisti",
|
||||||
"action_common_confirm": "Potrdi",
|
"action_common_confirm": "Potrdi",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Posodobi",
|
"action_common_update": "Posodobi",
|
||||||
"add_to_album_bottom_sheet_added": "Dodano v {album}",
|
"add_to_album_bottom_sheet_added": "Dodano v {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Že v {albumu}",
|
"add_to_album_bottom_sheet_already_exists": "Že v {albumu}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Novo geslo",
|
"change_password_form_new_password": "Novo geslo",
|
||||||
"change_password_form_password_mismatch": "Gesli se ne ujemata",
|
"change_password_form_password_mismatch": "Gesli se ne ujemata",
|
||||||
"change_password_form_reenter_new_password": "Znova vnesi novo geslo",
|
"change_password_form_reenter_new_password": "Znova vnesi novo geslo",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Dodaj v album",
|
"common_add_to_album": "Dodaj v album",
|
||||||
"common_change_password": "Zamenjaj geslo",
|
"common_change_password": "Zamenjaj geslo",
|
||||||
"common_create_new_album": "Ustvari nov album",
|
"common_create_new_album": "Ustvari nov album",
|
||||||
"common_server_error": "Preverite omrežno povezavo, preverite, ali je strežnik dosegljiv in ali sta različici aplikacije/strežnika združljivi.",
|
"common_server_error": "Preverite omrežno povezavo, preverite, ali je strežnik dosegljiv in ali sta različici aplikacije/strežnika združljivi.",
|
||||||
"common_shared": "V skupni rabi",
|
"common_shared": "V skupni rabi",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Dodaj v album",
|
"control_bottom_app_bar_add_to_album": "Dodaj v album",
|
||||||
"control_bottom_app_bar_album_info": "{} elementov",
|
"control_bottom_app_bar_album_info": "{} elementov",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} elementov · V skupni rabi",
|
"control_bottom_app_bar_album_info_shared": "{} elementov · V skupni rabi",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Izbriši",
|
"control_bottom_app_bar_delete": "Izbriši",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Izbriši iz Immicha",
|
"control_bottom_app_bar_delete_from_immich": "Izbriši iz Immicha",
|
||||||
"control_bottom_app_bar_delete_from_local": "Izbriši iz naprave",
|
"control_bottom_app_bar_delete_from_local": "Izbriši iz naprave",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Uredi lokacijo",
|
"control_bottom_app_bar_edit_location": "Uredi lokacijo",
|
||||||
"control_bottom_app_bar_edit_time": "Uredi datum in uro",
|
"control_bottom_app_bar_edit_time": "Uredi datum in uro",
|
||||||
"control_bottom_app_bar_favorite": "Priljubljen",
|
"control_bottom_app_bar_favorite": "Priljubljen",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Eksperimentalno",
|
"experimental_settings_title": "Eksperimentalno",
|
||||||
"favorites_page_no_favorites": "Ni priljubljenih sredstev",
|
"favorites_page_no_favorites": "Ni priljubljenih sredstev",
|
||||||
"favorites_page_title": "Priljubljene",
|
"favorites_page_title": "Priljubljene",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Uporabi haptičen odziv",
|
"haptic_feedback_switch": "Uporabi haptičen odziv",
|
||||||
"haptic_feedback_title": "Haptičen odziv",
|
"haptic_feedback_title": "Haptičen odziv",
|
||||||
"header_settings_add_header_tip": "Dodaj glavo",
|
"header_settings_add_header_tip": "Dodaj glavo",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Prenos se je začel",
|
"image_viewer_page_state_provider_download_started": "Prenos se je začel",
|
||||||
"image_viewer_page_state_provider_download_success": "Prenos je uspel",
|
"image_viewer_page_state_provider_download_success": "Prenos je uspel",
|
||||||
"image_viewer_page_state_provider_share_error": "Napaka skupne rabe",
|
"image_viewer_page_state_provider_share_error": "Napaka skupne rabe",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albumi",
|
"library_page_albums": "Albumi",
|
||||||
"library_page_archive": "Arhiv",
|
"library_page_archive": "Arhiv",
|
||||||
"library_page_device_albums": "Albumi v napravi",
|
"library_page_device_albums": "Albumi v napravi",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Ni mogoče urediti datuma sredstev samo za branje, preskočim",
|
"multiselect_grid_edit_date_time_err_read_only": "Ni mogoče urediti datuma sredstev samo za branje, preskočim",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Ni mogoče urediti lokacije sredstev samo za branje, preskočim",
|
"multiselect_grid_edit_gps_err_read_only": "Ni mogoče urediti lokacije sredstev samo za branje, preskočim",
|
||||||
"no_assets_to_show": "Ni sredstev za prikaz",
|
"no_assets_to_show": "Ni sredstev za prikaz",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Prekliči",
|
"notification_permission_dialog_cancel": "Prekliči",
|
||||||
"notification_permission_dialog_content": "Če želite omogočiti obvestila, pojdite v Nastavitve in izberite Dovoli.",
|
"notification_permission_dialog_content": "Če želite omogočiti obvestila, pojdite v Nastavitve in izberite Dovoli.",
|
||||||
"notification_permission_dialog_settings": "Nastavitve",
|
"notification_permission_dialog_settings": "Nastavitve",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Prišlo je do napake",
|
"scaffold_body_error_occurred": "Prišlo je do napake",
|
||||||
"search_bar_hint": "Poišči svoje fotografije",
|
"search_bar_hint": "Poišči svoje fotografije",
|
||||||
"search_filter_apply": "Uporabi filter",
|
"search_filter_apply": "Uporabi filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Izdelava",
|
"search_filter_camera_make": "Izdelava",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Arhiv",
|
"search_filter_display_option_archive": "Arhiv",
|
||||||
"search_filter_display_option_favorite": "Priljubljen",
|
"search_filter_display_option_favorite": "Priljubljen",
|
||||||
"search_filter_display_option_not_in_album": "Ni v albumu",
|
"search_filter_display_option_not_in_album": "Ni v albumu",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Mesto",
|
"search_filter_location_city": "Mesto",
|
||||||
"search_filter_location_country": "Država",
|
"search_filter_location_country": "Država",
|
||||||
"search_filter_location_state": "Dežela",
|
"search_filter_location_state": "Dežela",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Vse",
|
"search_filter_media_type_all": "Vse",
|
||||||
"search_filter_media_type_image": "Slika",
|
"search_filter_media_type_image": "Slika",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Kategorije",
|
"search_page_categories": "Kategorije",
|
||||||
"search_page_favorites": "Priljubljene",
|
"search_page_favorites": "Priljubljene",
|
||||||
"search_page_motion_photos": "Fotografije v gibanju",
|
"search_page_motion_photos": "Fotografije v gibanju",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancel",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "New Password",
|
"change_password_form_new_password": "New Password",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Add to album",
|
"common_add_to_album": "Add to album",
|
||||||
"common_change_password": "Change Password",
|
"common_change_password": "Change Password",
|
||||||
"common_create_new_album": "Create new album",
|
"common_create_new_album": "Create new album",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
"common_shared": "Shared",
|
"common_shared": "Shared",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
"control_bottom_app_bar_add_to_album": "Add to album",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"control_bottom_app_bar_album_info": "{} items",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favorites",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"image_viewer_page_state_provider_share_error": "Share Error",
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
"notification_permission_dialog_settings": "Settings",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favorites",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Motion Photos",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancel",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_to_album_bottom_sheet_added": "Dodato u {album}",
|
"add_to_album_bottom_sheet_added": "Dodato u {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Već u {album}",
|
"add_to_album_bottom_sheet_already_exists": "Već u {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nova šifra",
|
"change_password_form_new_password": "Nova šifra",
|
||||||
"change_password_form_password_mismatch": "Šifre se ne podudaraju",
|
"change_password_form_password_mismatch": "Šifre se ne podudaraju",
|
||||||
"change_password_form_reenter_new_password": "Ponovo unesite novu šifru",
|
"change_password_form_reenter_new_password": "Ponovo unesite novu šifru",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Dodaj u album",
|
"common_add_to_album": "Dodaj u album",
|
||||||
"common_change_password": "Promeni Šifru",
|
"common_change_password": "Promeni Šifru",
|
||||||
"common_create_new_album": "Kreiraj novi album",
|
"common_create_new_album": "Kreiraj novi album",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
"common_shared": "Deljeno",
|
"common_shared": "Deljeno",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Dodaj u album",
|
"control_bottom_app_bar_add_to_album": "Dodaj u album",
|
||||||
"control_bottom_app_bar_album_info": "{} stvari",
|
"control_bottom_app_bar_album_info": "{} stvari",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} stvari podeljeno",
|
"control_bottom_app_bar_album_info_shared": "{} stvari podeljeno",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Obriši",
|
"control_bottom_app_bar_delete": "Obriši",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Omliljeno",
|
"control_bottom_app_bar_favorite": "Omliljeno",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Eksperimentalno",
|
"experimental_settings_title": "Eksperimentalno",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Omiljeno",
|
"favorites_page_title": "Omiljeno",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Preuzimanje Uspešno",
|
"image_viewer_page_state_provider_download_success": "Preuzimanje Uspešno",
|
||||||
"image_viewer_page_state_provider_share_error": "Share Error",
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albumi",
|
"library_page_albums": "Albumi",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Odustani",
|
"notification_permission_dialog_cancel": "Odustani",
|
||||||
"notification_permission_dialog_content": "Da bi ukljucili notifikacije, idite u Opcije i odaberite Dozvoli",
|
"notification_permission_dialog_content": "Da bi ukljucili notifikacije, idite u Opcije i odaberite Dozvoli",
|
||||||
"notification_permission_dialog_settings": "Podešavanja",
|
"notification_permission_dialog_settings": "Podešavanja",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Pretražite Vaše fotografije",
|
"search_bar_hint": "Pretražite Vaše fotografije",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favorites",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Motion Photos",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancel",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "New Password",
|
"change_password_form_new_password": "New Password",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Add to album",
|
"common_add_to_album": "Add to album",
|
||||||
"common_change_password": "Change Password",
|
"common_change_password": "Change Password",
|
||||||
"common_create_new_album": "Create new album",
|
"common_create_new_album": "Create new album",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
"common_shared": "Shared",
|
"common_shared": "Shared",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
"control_bottom_app_bar_add_to_album": "Add to album",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"control_bottom_app_bar_album_info": "{} items",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favorites",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"image_viewer_page_state_provider_share_error": "Share Error",
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
"notification_permission_dialog_settings": "Settings",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favorites",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Motion Photos",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Avbryt",
|
"action_common_cancel": "Avbryt",
|
||||||
"action_common_clear": "Rensa",
|
"action_common_clear": "Rensa",
|
||||||
"action_common_confirm": "Bekräfta",
|
"action_common_confirm": "Bekräfta",
|
||||||
|
"action_common_save": "Spara",
|
||||||
|
"action_common_select": "Välj",
|
||||||
"action_common_update": "Uppdatera",
|
"action_common_update": "Uppdatera",
|
||||||
"add_to_album_bottom_sheet_added": "Tillagd till {album}",
|
"add_to_album_bottom_sheet_added": "Tillagd till {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Redan i {album}",
|
"add_to_album_bottom_sheet_already_exists": "Redan i {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Nytt lösenord",
|
"change_password_form_new_password": "Nytt lösenord",
|
||||||
"change_password_form_password_mismatch": "Lösenorden matchar inte",
|
"change_password_form_password_mismatch": "Lösenorden matchar inte",
|
||||||
"change_password_form_reenter_new_password": "Ange Nytt Lösenord Igen",
|
"change_password_form_reenter_new_password": "Ange Nytt Lösenord Igen",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Ange Lösenord",
|
||||||
|
"client_cert_import": "Importera",
|
||||||
|
"client_cert_import_success_msg": "Klientcertifikatet är importerat",
|
||||||
|
"client_cert_invalid_msg": "Felaktig certifikatfil eller fel lösenord",
|
||||||
|
"client_cert_remove": "Ta bort",
|
||||||
|
"client_cert_remove_msg": "Klientcertifikatet är borttaget",
|
||||||
|
"client_cert_subtitle": "Stödjer endast formatet PKCS12 (.p12, .pfx). Import/borttagning av certifikat är tillgängligt endast före inloggning",
|
||||||
|
"client_cert_title": "SSL-Klientcertifikat",
|
||||||
"common_add_to_album": "Lägg till, till album",
|
"common_add_to_album": "Lägg till, till album",
|
||||||
"common_change_password": "Ändra lösenord",
|
"common_change_password": "Ändra lösenord",
|
||||||
"common_create_new_album": "Skapa ett nytt album",
|
"common_create_new_album": "Skapa ett nytt album",
|
||||||
"common_server_error": "Kontrollera din nätverksanslutning, se till att servern går att nå och att app- och server-versioner är kompatibla.",
|
"common_server_error": "Kontrollera din nätverksanslutning, se till att servern går att nå och att app- och server-versioner är kompatibla.",
|
||||||
"common_shared": "Delad",
|
"common_shared": "Delad",
|
||||||
|
"contextual_search": "Soluppgång på stranden",
|
||||||
"control_bottom_app_bar_add_to_album": "Lägg till i album",
|
"control_bottom_app_bar_add_to_album": "Lägg till i album",
|
||||||
"control_bottom_app_bar_album_info": "{} objekt",
|
"control_bottom_app_bar_album_info": "{} objekt",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} objekt • Delat",
|
"control_bottom_app_bar_album_info_shared": "{} objekt • Delat",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Radera",
|
"control_bottom_app_bar_delete": "Radera",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Ta bort från Immich",
|
"control_bottom_app_bar_delete_from_immich": "Ta bort från Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Ta bort från enhet",
|
"control_bottom_app_bar_delete_from_local": "Ta bort från enhet",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Redigera plats",
|
"control_bottom_app_bar_edit_location": "Redigera plats",
|
||||||
"control_bottom_app_bar_edit_time": "Redigera Datum & Tid",
|
"control_bottom_app_bar_edit_time": "Redigera Datum & Tid",
|
||||||
"control_bottom_app_bar_favorite": "Favorit",
|
"control_bottom_app_bar_favorite": "Favorit",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimentellt",
|
"experimental_settings_title": "Experimentellt",
|
||||||
"favorites_page_no_favorites": "Inga favoritobjekt hittades",
|
"favorites_page_no_favorites": "Inga favoritobjekt hittades",
|
||||||
"favorites_page_title": "Favoriter",
|
"favorites_page_title": "Favoriter",
|
||||||
|
"filename_search": "Filnamn eller filändelse",
|
||||||
"haptic_feedback_switch": "Aktivera haptisk feedback",
|
"haptic_feedback_switch": "Aktivera haptisk feedback",
|
||||||
"haptic_feedback_title": "Haptisk Feedback",
|
"haptic_feedback_title": "Haptisk Feedback",
|
||||||
"header_settings_add_header_tip": "Lägg Till Header",
|
"header_settings_add_header_tip": "Lägg Till Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Nedladdning Påbörjad",
|
"image_viewer_page_state_provider_download_started": "Nedladdning Påbörjad",
|
||||||
"image_viewer_page_state_provider_download_success": "Nedladdningen Lyckades",
|
"image_viewer_page_state_provider_download_success": "Nedladdningen Lyckades",
|
||||||
"image_viewer_page_state_provider_share_error": "Delningsfel",
|
"image_viewer_page_state_provider_share_error": "Delningsfel",
|
||||||
|
"invalid_date": "Felaktigt datum",
|
||||||
|
"invalid_date_format": "Felaktigt datumformat",
|
||||||
"library_page_albums": "Album",
|
"library_page_albums": "Album",
|
||||||
"library_page_archive": "Arkiv",
|
"library_page_archive": "Arkiv",
|
||||||
"library_page_device_albums": "Album på Enheten",
|
"library_page_device_albums": "Album på Enheten",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Kan inte ändra datum på skrivskyddade objekt, hoppar över",
|
"multiselect_grid_edit_date_time_err_read_only": "Kan inte ändra datum på skrivskyddade objekt, hoppar över",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Kan inte ändra plats på skrivskyddade objekt, hoppar över",
|
"multiselect_grid_edit_gps_err_read_only": "Kan inte ändra plats på skrivskyddade objekt, hoppar över",
|
||||||
"no_assets_to_show": "Inga objekt att visa",
|
"no_assets_to_show": "Inga objekt att visa",
|
||||||
|
"no_name": "Inget namn",
|
||||||
"notification_permission_dialog_cancel": "Avbryt",
|
"notification_permission_dialog_cancel": "Avbryt",
|
||||||
"notification_permission_dialog_content": "För att aktivera notiser, gå till Inställningar och välj tillåt",
|
"notification_permission_dialog_content": "För att aktivera notiser, gå till Inställningar och välj tillåt",
|
||||||
"notification_permission_dialog_settings": "Inställningar",
|
"notification_permission_dialog_settings": "Inställningar",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Fel uppstod",
|
"scaffold_body_error_occurred": "Fel uppstod",
|
||||||
"search_bar_hint": "Sök bland dina foton",
|
"search_bar_hint": "Sök bland dina foton",
|
||||||
"search_filter_apply": "Aktivera filter",
|
"search_filter_apply": "Aktivera filter",
|
||||||
|
"search_filter_camera": "Kamera",
|
||||||
"search_filter_camera_make": "Tillverkare",
|
"search_filter_camera_make": "Tillverkare",
|
||||||
"search_filter_camera_model": "Modell",
|
"search_filter_camera_model": "Modell",
|
||||||
|
"search_filter_camera_title": "Välj kameratyp",
|
||||||
|
"search_filter_date": "Datum",
|
||||||
|
"search_filter_date_interval": "{start} till {end}",
|
||||||
|
"search_filter_date_title": "Välj datumintervall",
|
||||||
"search_filter_display_option_archive": "Arkiv",
|
"search_filter_display_option_archive": "Arkiv",
|
||||||
"search_filter_display_option_favorite": "Favorit",
|
"search_filter_display_option_favorite": "Favorit",
|
||||||
"search_filter_display_option_not_in_album": "Ej i album",
|
"search_filter_display_option_not_in_album": "Ej i album",
|
||||||
|
"search_filter_display_options": "Visningsalternativ",
|
||||||
|
"search_filter_display_options_title": "Visningsalternativ",
|
||||||
|
"search_filter_location": "Plats",
|
||||||
"search_filter_location_city": "Stad",
|
"search_filter_location_city": "Stad",
|
||||||
"search_filter_location_country": "Land",
|
"search_filter_location_country": "Land",
|
||||||
"search_filter_location_state": "Stat",
|
"search_filter_location_state": "Stat",
|
||||||
|
"search_filter_location_title": "Välj plats",
|
||||||
|
"search_filter_media_type": "Mediatyp",
|
||||||
"search_filter_media_type_all": "Alla",
|
"search_filter_media_type_all": "Alla",
|
||||||
"search_filter_media_type_image": "Bild",
|
"search_filter_media_type_image": "Bild",
|
||||||
|
"search_filter_media_type_title": "Välj mediatyp",
|
||||||
"search_filter_media_type_video": "Videor",
|
"search_filter_media_type_video": "Videor",
|
||||||
|
"search_filter_people": "Personer",
|
||||||
|
"search_filter_people_title": "Välj personer",
|
||||||
"search_page_categories": "Kategorier",
|
"search_page_categories": "Kategorier",
|
||||||
"search_page_favorites": "Favoriter",
|
"search_page_favorites": "Favoriter",
|
||||||
"search_page_motion_photos": "Rörelsefoton",
|
"search_page_motion_photos": "Rörelsefoton",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "ยกเลิก",
|
"action_common_cancel": "ยกเลิก",
|
||||||
"action_common_clear": "เคลียร์",
|
"action_common_clear": "เคลียร์",
|
||||||
"action_common_confirm": "ยืนยัน",
|
"action_common_confirm": "ยืนยัน",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "อัปเดต",
|
"action_common_update": "อัปเดต",
|
||||||
"add_to_album_bottom_sheet_added": "เพิ่มไปยัง {album}",
|
"add_to_album_bottom_sheet_added": "เพิ่มไปยัง {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "อยู่ใน {album} อยู่แล้ว",
|
"add_to_album_bottom_sheet_already_exists": "อยู่ใน {album} อยู่แล้ว",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "รหัสผ่านใหม่",
|
"change_password_form_new_password": "รหัสผ่านใหม่",
|
||||||
"change_password_form_password_mismatch": "รหัสผ่านไม่ตรงกัน",
|
"change_password_form_password_mismatch": "รหัสผ่านไม่ตรงกัน",
|
||||||
"change_password_form_reenter_new_password": "กรอกรหัสผ่านใหม่",
|
"change_password_form_reenter_new_password": "กรอกรหัสผ่านใหม่",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "เพิ่มเข้าอัลบั้ม",
|
"common_add_to_album": "เพิ่มเข้าอัลบั้ม",
|
||||||
"common_change_password": "เปลี่ยนรหัสผ่าน",
|
"common_change_password": "เปลี่ยนรหัสผ่าน",
|
||||||
"common_create_new_album": "สร้างอัลบั้มใหม่",
|
"common_create_new_album": "สร้างอัลบั้มใหม่",
|
||||||
"common_server_error": "กรุณาตรวจสอบการเชื่อมต่ออินเทอร์เน็ต ให้แน่ใจว่าเซิร์ฟเวอร์สามารถเข้าถึงได้ และเวอร์ชันแอพกับเซิร์ฟเวอร์เข้ากันได้",
|
"common_server_error": "กรุณาตรวจสอบการเชื่อมต่ออินเทอร์เน็ต ให้แน่ใจว่าเซิร์ฟเวอร์สามารถเข้าถึงได้ และเวอร์ชันแอพกับเซิร์ฟเวอร์เข้ากันได้",
|
||||||
"common_shared": "แชร์",
|
"common_shared": "แชร์",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "เพิ่มลงอัลบั้ม",
|
"control_bottom_app_bar_add_to_album": "เพิ่มลงอัลบั้ม",
|
||||||
"control_bottom_app_bar_album_info": "{} รายการ",
|
"control_bottom_app_bar_album_info": "{} รายการ",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} รายการ · ถูกแชร์",
|
"control_bottom_app_bar_album_info_shared": "{} รายการ · ถูกแชร์",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "ลบออก",
|
"control_bottom_app_bar_delete": "ลบออก",
|
||||||
"control_bottom_app_bar_delete_from_immich": "ลบจาก Immich",
|
"control_bottom_app_bar_delete_from_immich": "ลบจาก Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "ลบจากเรื่อง",
|
"control_bottom_app_bar_delete_from_local": "ลบจากเรื่อง",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "แก้ไขตำแหน่ง",
|
"control_bottom_app_bar_edit_location": "แก้ไขตำแหน่ง",
|
||||||
"control_bottom_app_bar_edit_time": "แก้ไขวันและเวลา",
|
"control_bottom_app_bar_edit_time": "แก้ไขวันและเวลา",
|
||||||
"control_bottom_app_bar_favorite": "รายการโปรด",
|
"control_bottom_app_bar_favorite": "รายการโปรด",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "ทดลอง",
|
"experimental_settings_title": "ทดลอง",
|
||||||
"favorites_page_no_favorites": "ไม่พบทรัพยากรในรายการโปรด",
|
"favorites_page_no_favorites": "ไม่พบทรัพยากรในรายการโปรด",
|
||||||
"favorites_page_title": "รายการโปรด",
|
"favorites_page_title": "รายการโปรด",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "เปิดการตอบสนองแบบสัมผัส",
|
"haptic_feedback_switch": "เปิดการตอบสนองแบบสัมผัส",
|
||||||
"haptic_feedback_title": "การตอบสนองแบบสัมผัส",
|
"haptic_feedback_title": "การตอบสนองแบบสัมผัส",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "ดาวน์โหลดเริ่มต้น",
|
"image_viewer_page_state_provider_download_started": "ดาวน์โหลดเริ่มต้น",
|
||||||
"image_viewer_page_state_provider_download_success": "ดาวน์โหลดสำเร็จ",
|
"image_viewer_page_state_provider_download_success": "ดาวน์โหลดสำเร็จ",
|
||||||
"image_viewer_page_state_provider_share_error": "แชร์ผิดพลาด",
|
"image_viewer_page_state_provider_share_error": "แชร์ผิดพลาด",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "อัลบั้ม",
|
"library_page_albums": "อัลบั้ม",
|
||||||
"library_page_archive": "เก็บถาวร",
|
"library_page_archive": "เก็บถาวร",
|
||||||
"library_page_device_albums": "อัลบั้มบนเครื่อง",
|
"library_page_device_albums": "อัลบั้มบนเครื่อง",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "ไม่สามารถแก้ไขวันที่ทรัพยากรแบบอ่านอย่างเดียว กำลังข้าม",
|
"multiselect_grid_edit_date_time_err_read_only": "ไม่สามารถแก้ไขวันที่ทรัพยากรแบบอ่านอย่างเดียว กำลังข้าม",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "ไม่สามารถแก้ตำแหน่งของทรัพยากรแบบอ่านอย่างเดียว กำลังข้าม",
|
"multiselect_grid_edit_gps_err_read_only": "ไม่สามารถแก้ตำแหน่งของทรัพยากรแบบอ่านอย่างเดียว กำลังข้าม",
|
||||||
"no_assets_to_show": "ไม่มีทรัพยากรให้แสดง",
|
"no_assets_to_show": "ไม่มีทรัพยากรให้แสดง",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "ยกเลิก",
|
"notification_permission_dialog_cancel": "ยกเลิก",
|
||||||
"notification_permission_dialog_content": "เพื่อเปิดการแจ้งเตือน เข้าตั้งค่าแล้วกดอนุญาต",
|
"notification_permission_dialog_content": "เพื่อเปิดการแจ้งเตือน เข้าตั้งค่าแล้วกดอนุญาต",
|
||||||
"notification_permission_dialog_settings": "ตั้งค่า",
|
"notification_permission_dialog_settings": "ตั้งค่า",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "เกิดข้อผิดพลาด",
|
"scaffold_body_error_occurred": "เกิดข้อผิดพลาด",
|
||||||
"search_bar_hint": "ค้นหารูปภาพของคุณ",
|
"search_bar_hint": "ค้นหารูปภาพของคุณ",
|
||||||
"search_filter_apply": "บันทึกตัวกรอง",
|
"search_filter_apply": "บันทึกตัวกรอง",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "ยี่ห้อ",
|
"search_filter_camera_make": "ยี่ห้อ",
|
||||||
"search_filter_camera_model": "รุ่น",
|
"search_filter_camera_model": "รุ่น",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "เก็บถาวร",
|
"search_filter_display_option_archive": "เก็บถาวร",
|
||||||
"search_filter_display_option_favorite": "รายการโปรด",
|
"search_filter_display_option_favorite": "รายการโปรด",
|
||||||
"search_filter_display_option_not_in_album": "ไม่อยู่ในอัลบั้ม",
|
"search_filter_display_option_not_in_album": "ไม่อยู่ในอัลบั้ม",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "เมือง",
|
"search_filter_location_city": "เมือง",
|
||||||
"search_filter_location_country": "ประเทศ",
|
"search_filter_location_country": "ประเทศ",
|
||||||
"search_filter_location_state": "รัฐ",
|
"search_filter_location_state": "รัฐ",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "ทั้งหมด",
|
"search_filter_media_type_all": "ทั้งหมด",
|
||||||
"search_filter_media_type_image": "รูปภาพ",
|
"search_filter_media_type_image": "รูปภาพ",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "วิดีโอ",
|
"search_filter_media_type_video": "วิดีโอ",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "หมวดหมู่",
|
"search_page_categories": "หมวดหมู่",
|
||||||
"search_page_favorites": "รายการโปรด",
|
"search_page_favorites": "รายการโปรด",
|
||||||
"search_page_motion_photos": "ภาพเคลื่อนไหว",
|
"search_page_motion_photos": "ภาพเคลื่อนไหว",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Скасувати",
|
"action_common_cancel": "Скасувати",
|
||||||
"action_common_clear": "Очистити",
|
"action_common_clear": "Очистити",
|
||||||
"action_common_confirm": "Підтвердити",
|
"action_common_confirm": "Підтвердити",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Оновити",
|
"action_common_update": "Оновити",
|
||||||
"add_to_album_bottom_sheet_added": "Додати до {album}",
|
"add_to_album_bottom_sheet_added": "Додати до {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Вже є в {album}",
|
"add_to_album_bottom_sheet_already_exists": "Вже є в {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Новий пароль",
|
"change_password_form_new_password": "Новий пароль",
|
||||||
"change_password_form_password_mismatch": "Паролі не співпадають",
|
"change_password_form_password_mismatch": "Паролі не співпадають",
|
||||||
"change_password_form_reenter_new_password": "Повторіть новий пароль",
|
"change_password_form_reenter_new_password": "Повторіть новий пароль",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Додати у альбом",
|
"common_add_to_album": "Додати у альбом",
|
||||||
"common_change_password": "Змінити пароль",
|
"common_change_password": "Змінити пароль",
|
||||||
"common_create_new_album": "Створити новий альбом",
|
"common_create_new_album": "Створити новий альбом",
|
||||||
"common_server_error": "Будь ласка, перевірте з'єднання, переконайтеся, що сервер доступний і версія програми/сервера сумісна.",
|
"common_server_error": "Будь ласка, перевірте з'єднання, переконайтеся, що сервер доступний і версія програми/сервера сумісна.",
|
||||||
"common_shared": "Спільні",
|
"common_shared": "Спільні",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Додати у альбом",
|
"control_bottom_app_bar_add_to_album": "Додати у альбом",
|
||||||
"control_bottom_app_bar_album_info": "{} елементи",
|
"control_bottom_app_bar_album_info": "{} елементи",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} елементи · Спільні",
|
"control_bottom_app_bar_album_info_shared": "{} елементи · Спільні",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Видалити",
|
"control_bottom_app_bar_delete": "Видалити",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Видалити з Immich",
|
"control_bottom_app_bar_delete_from_immich": "Видалити з Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Видалити з пристрою",
|
"control_bottom_app_bar_delete_from_local": "Видалити з пристрою",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Редагувати місцезнаходження",
|
"control_bottom_app_bar_edit_location": "Редагувати місцезнаходження",
|
||||||
"control_bottom_app_bar_edit_time": "Редагувати дату та час",
|
"control_bottom_app_bar_edit_time": "Редагувати дату та час",
|
||||||
"control_bottom_app_bar_favorite": "До улюблених",
|
"control_bottom_app_bar_favorite": "До улюблених",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Експериментальні",
|
"experimental_settings_title": "Експериментальні",
|
||||||
"favorites_page_no_favorites": "Немає улюблених елементів",
|
"favorites_page_no_favorites": "Немає улюблених елементів",
|
||||||
"favorites_page_title": "Улюблені",
|
"favorites_page_title": "Улюблені",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Увімкнути тактильну віддачу",
|
"haptic_feedback_switch": "Увімкнути тактильну віддачу",
|
||||||
"haptic_feedback_title": "Тактильна віддача",
|
"haptic_feedback_title": "Тактильна віддача",
|
||||||
"header_settings_add_header_tip": "Додати заголовок",
|
"header_settings_add_header_tip": "Додати заголовок",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Завантаження почалося",
|
"image_viewer_page_state_provider_download_started": "Завантаження почалося",
|
||||||
"image_viewer_page_state_provider_download_success": "Усіпшно завантажено",
|
"image_viewer_page_state_provider_download_success": "Усіпшно завантажено",
|
||||||
"image_viewer_page_state_provider_share_error": "Помилка спільного доступу",
|
"image_viewer_page_state_provider_share_error": "Помилка спільного доступу",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Альбоми",
|
"library_page_albums": "Альбоми",
|
||||||
"library_page_archive": "Архів",
|
"library_page_archive": "Архів",
|
||||||
"library_page_device_albums": "Альбоми на пристрої",
|
"library_page_device_albums": "Альбоми на пристрої",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Неможливо редагувати дату елементів лише для читання, пропущено",
|
"multiselect_grid_edit_date_time_err_read_only": "Неможливо редагувати дату елементів лише для читання, пропущено",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Неможливо редагувати місцезнаходження елементів лише для читання, пропущено",
|
"multiselect_grid_edit_gps_err_read_only": "Неможливо редагувати місцезнаходження елементів лише для читання, пропущено",
|
||||||
"no_assets_to_show": "Елементи відсутні",
|
"no_assets_to_show": "Елементи відсутні",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Скасувати",
|
"notification_permission_dialog_cancel": "Скасувати",
|
||||||
"notification_permission_dialog_content": "Щоб увімкнути сповіщення, перейдіть до Налаштувань і надайте дозвіл.",
|
"notification_permission_dialog_content": "Щоб увімкнути сповіщення, перейдіть до Налаштувань і надайте дозвіл.",
|
||||||
"notification_permission_dialog_settings": "Налаштування",
|
"notification_permission_dialog_settings": "Налаштування",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Виникла помилка",
|
"scaffold_body_error_occurred": "Виникла помилка",
|
||||||
"search_bar_hint": "Шукати ваші знімки",
|
"search_bar_hint": "Шукати ваші знімки",
|
||||||
"search_filter_apply": "Застосувати фільтр",
|
"search_filter_apply": "Застосувати фільтр",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Виробник",
|
"search_filter_camera_make": "Виробник",
|
||||||
"search_filter_camera_model": "Модель",
|
"search_filter_camera_model": "Модель",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Архів",
|
"search_filter_display_option_archive": "Архів",
|
||||||
"search_filter_display_option_favorite": "Улюблені",
|
"search_filter_display_option_favorite": "Улюблені",
|
||||||
"search_filter_display_option_not_in_album": "Не в альбомі",
|
"search_filter_display_option_not_in_album": "Не в альбомі",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Місто",
|
"search_filter_location_city": "Місто",
|
||||||
"search_filter_location_country": "Країна",
|
"search_filter_location_country": "Країна",
|
||||||
"search_filter_location_state": "Регіон",
|
"search_filter_location_state": "Регіон",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Усі",
|
"search_filter_media_type_all": "Усі",
|
||||||
"search_filter_media_type_image": "Зображення",
|
"search_filter_media_type_image": "Зображення",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Відео",
|
"search_filter_media_type_video": "Відео",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Категорії",
|
"search_page_categories": "Категорії",
|
||||||
"search_page_favorites": "Улюблені",
|
"search_page_favorites": "Улюблені",
|
||||||
"search_page_motion_photos": "Рухомі знімки",
|
"search_page_motion_photos": "Рухомі знімки",
|
||||||
|
|||||||
@@ -3,13 +3,15 @@
|
|||||||
"action_common_cancel": "Từ chối",
|
"action_common_cancel": "Từ chối",
|
||||||
"action_common_clear": "Xoá",
|
"action_common_clear": "Xoá",
|
||||||
"action_common_confirm": "Xác nhận",
|
"action_common_confirm": "Xác nhận",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Cập nhật",
|
"action_common_update": "Cập nhật",
|
||||||
"add_to_album_bottom_sheet_added": "Thêm vào {album}",
|
"add_to_album_bottom_sheet_added": "Thêm vào {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Đã có sẵn trong {album}",
|
"add_to_album_bottom_sheet_already_exists": "Đã có sẵn trong {album}",
|
||||||
"advanced_settings_log_level_title": "Phân loại nhật ký: {}",
|
"advanced_settings_log_level_title": "Phân loại nhật ký: {}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Trên một số thiết bị, việc tải hình thu nhỏ từ ảnh trên thiết bị diễn ra chậm. Kích hoạt cài đặt này để tải ảnh từ máy chủ.",
|
"advanced_settings_prefer_remote_subtitle": "Trên một số thiết bị, việc tải hình thu nhỏ từ ảnh trên thiết bị diễn ra chậm. Kích hoạt cài đặt này để tải ảnh từ máy chủ.",
|
||||||
"advanced_settings_prefer_remote_title": "Ưu tiên ảnh từ máy chủ",
|
"advanced_settings_prefer_remote_title": "Ưu tiên ảnh từ máy chủ",
|
||||||
"advanced_settings_proxy_headers_subtitle": "Xác định các header của proxy Immich sẽ gửi kèm theo mỗi yêu cầu mạng.",
|
"advanced_settings_proxy_headers_subtitle": "Xác định các header của proxy mà Immich sẽ gửi kèm theo mỗi yêu cầu mạng.",
|
||||||
"advanced_settings_proxy_headers_title": "Các header của proxy",
|
"advanced_settings_proxy_headers_title": "Các header của proxy",
|
||||||
"advanced_settings_self_signed_ssl_subtitle": "Bỏ qua xác minh chứng chỉ SSL cho máy chủ cuối. Yêu cầu cho chứng chỉ tự ký.",
|
"advanced_settings_self_signed_ssl_subtitle": "Bỏ qua xác minh chứng chỉ SSL cho máy chủ cuối. Yêu cầu cho chứng chỉ tự ký.",
|
||||||
"advanced_settings_self_signed_ssl_title": "Cho phép chứng chỉ SSL tự ký",
|
"advanced_settings_self_signed_ssl_title": "Cho phép chứng chỉ SSL tự ký",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "Mật khẩu mới",
|
"change_password_form_new_password": "Mật khẩu mới",
|
||||||
"change_password_form_password_mismatch": "Mật khẩu không giống nhau",
|
"change_password_form_password_mismatch": "Mật khẩu không giống nhau",
|
||||||
"change_password_form_reenter_new_password": "Nhập lại mật khẩu mới",
|
"change_password_form_reenter_new_password": "Nhập lại mật khẩu mới",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Thêm vào album",
|
"common_add_to_album": "Thêm vào album",
|
||||||
"common_change_password": "Thay đổi mật khẩu",
|
"common_change_password": "Thay đổi mật khẩu",
|
||||||
"common_create_new_album": "Tạo album mới",
|
"common_create_new_album": "Tạo album mới",
|
||||||
"common_server_error": "Vui lòng kiểm tra kết nối mạng của bạn, đảm bảo máy chủ có thể truy cập được và các phiên bản ứng dụng/máy chủ phải tương thích với nhau",
|
"common_server_error": "Vui lòng kiểm tra kết nối mạng của bạn, đảm bảo máy chủ có thể truy cập được và các phiên bản ứng dụng/máy chủ phải tương thích với nhau",
|
||||||
"common_shared": "Chia sẻ",
|
"common_shared": "Chia sẻ",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Thêm vào album",
|
"control_bottom_app_bar_add_to_album": "Thêm vào album",
|
||||||
"control_bottom_app_bar_album_info": "{} mục",
|
"control_bottom_app_bar_album_info": "{} mục",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} mục chia sẻ",
|
"control_bottom_app_bar_album_info_shared": "{} mục chia sẻ",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Xoá",
|
"control_bottom_app_bar_delete": "Xoá",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Xóa khỏi Immich",
|
"control_bottom_app_bar_delete_from_immich": "Xóa khỏi Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Xóa khỏi thiết bị\n",
|
"control_bottom_app_bar_delete_from_local": "Xóa khỏi thiết bị\n",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Chỉnh sửa vị trí",
|
"control_bottom_app_bar_edit_location": "Chỉnh sửa vị trí",
|
||||||
"control_bottom_app_bar_edit_time": "Chỉnh sửa Ngày và Giờ",
|
"control_bottom_app_bar_edit_time": "Chỉnh sửa Ngày và Giờ",
|
||||||
"control_bottom_app_bar_favorite": "Yêu thích",
|
"control_bottom_app_bar_favorite": "Yêu thích",
|
||||||
@@ -203,12 +216,13 @@
|
|||||||
"experimental_settings_title": "Chưa hoàn thiện",
|
"experimental_settings_title": "Chưa hoàn thiện",
|
||||||
"favorites_page_no_favorites": "Không tìm thấy ảnh yêu thích",
|
"favorites_page_no_favorites": "Không tìm thấy ảnh yêu thích",
|
||||||
"favorites_page_title": "Ảnh yêu thích",
|
"favorites_page_title": "Ảnh yêu thích",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Bật haptic feedback\n",
|
"haptic_feedback_switch": "Bật haptic feedback\n",
|
||||||
"haptic_feedback_title": "Haptic Feedback\n",
|
"haptic_feedback_title": "Haptic Feedback\n",
|
||||||
"header_settings_add_header_tip": "Thêm Header",
|
"header_settings_add_header_tip": "Thêm Header",
|
||||||
"header_settings_field_validator_msg": "Trường này không được để trống",
|
"header_settings_field_validator_msg": "Trường này không được để trống",
|
||||||
"header_settings_header_name_input": "Tên header",
|
"header_settings_header_name_input": "Tên Header",
|
||||||
"header_settings_header_value_input": "Giá trị header",
|
"header_settings_header_value_input": "Giá trị Header",
|
||||||
"header_settings_page_title": "Các header của proxy",
|
"header_settings_page_title": "Các header của proxy",
|
||||||
"headers_settings_tile_subtitle": "Xác định proxy header ứng dụng sẽ gửi kèm theo mỗi yêu cầu mạng.",
|
"headers_settings_tile_subtitle": "Xác định proxy header ứng dụng sẽ gửi kèm theo mỗi yêu cầu mạng.",
|
||||||
"headers_settings_tile_title": "Tuỳ chỉnh các header của proxy",
|
"headers_settings_tile_title": "Tuỳ chỉnh các header của proxy",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Đã bắt đầu tải xuống",
|
"image_viewer_page_state_provider_download_started": "Đã bắt đầu tải xuống",
|
||||||
"image_viewer_page_state_provider_download_success": "Tải xuống thành công",
|
"image_viewer_page_state_provider_download_success": "Tải xuống thành công",
|
||||||
"image_viewer_page_state_provider_share_error": "Chia sẻ không thành công",
|
"image_viewer_page_state_provider_share_error": "Chia sẻ không thành công",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Album",
|
"library_page_albums": "Album",
|
||||||
"library_page_archive": "Kho lưu trữ",
|
"library_page_archive": "Kho lưu trữ",
|
||||||
"library_page_device_albums": "Album trên thiết bị",
|
"library_page_device_albums": "Album trên thiết bị",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Không thể chỉnh sửa ngày của ảnh chỉ có quyền đọc, bỏ qua",
|
"multiselect_grid_edit_date_time_err_read_only": "Không thể chỉnh sửa ngày của ảnh chỉ có quyền đọc, bỏ qua",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Không thể chỉnh sửa vị trí của ảnh chỉ có quyền đọc, bỏ qua",
|
"multiselect_grid_edit_gps_err_read_only": "Không thể chỉnh sửa vị trí của ảnh chỉ có quyền đọc, bỏ qua",
|
||||||
"no_assets_to_show": "Không có mục nào để hiển thị",
|
"no_assets_to_show": "Không có mục nào để hiển thị",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Từ chối",
|
"notification_permission_dialog_cancel": "Từ chối",
|
||||||
"notification_permission_dialog_content": "Để bật thông báo, chuyển tới Cài đặt và chọn cho phép",
|
"notification_permission_dialog_content": "Để bật thông báo, chuyển tới Cài đặt và chọn cho phép",
|
||||||
"notification_permission_dialog_settings": "Cài đặt",
|
"notification_permission_dialog_settings": "Cài đặt",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Xảy ra lỗi",
|
"scaffold_body_error_occurred": "Xảy ra lỗi",
|
||||||
"search_bar_hint": "Tìm kiếm ảnh của bạn",
|
"search_bar_hint": "Tìm kiếm ảnh của bạn",
|
||||||
"search_filter_apply": "Áp dụng bộ lọc",
|
"search_filter_apply": "Áp dụng bộ lọc",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Chụp bởi",
|
"search_filter_camera_make": "Chụp bởi",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Kho lưu trữ",
|
"search_filter_display_option_archive": "Kho lưu trữ",
|
||||||
"search_filter_display_option_favorite": "Yêu thích",
|
"search_filter_display_option_favorite": "Yêu thích",
|
||||||
"search_filter_display_option_not_in_album": "Không nằm trong album",
|
"search_filter_display_option_not_in_album": "Không nằm trong album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "Thành phố",
|
"search_filter_location_city": "Thành phố",
|
||||||
"search_filter_location_country": "Quốc gia",
|
"search_filter_location_country": "Quốc gia",
|
||||||
"search_filter_location_state": "Tỉnh",
|
"search_filter_location_state": "Tỉnh",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "Tất cả",
|
"search_filter_media_type_all": "Tất cả",
|
||||||
"search_filter_media_type_image": "Ảnh",
|
"search_filter_media_type_image": "Ảnh",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Danh mục",
|
"search_page_categories": "Danh mục",
|
||||||
"search_page_favorites": "Ảnh yêu thích",
|
"search_page_favorites": "Ảnh yêu thích",
|
||||||
"search_page_motion_photos": "Ảnh động",
|
"search_page_motion_photos": "Ảnh động",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "取消",
|
"action_common_cancel": "取消",
|
||||||
"action_common_clear": "清空",
|
"action_common_clear": "清空",
|
||||||
"action_common_confirm": "确定",
|
"action_common_confirm": "确定",
|
||||||
|
"action_common_save": "保存",
|
||||||
|
"action_common_select": "选择",
|
||||||
"action_common_update": "更新",
|
"action_common_update": "更新",
|
||||||
"add_to_album_bottom_sheet_added": "添加到 {album}",
|
"add_to_album_bottom_sheet_added": "添加到 {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "已在 {album} 中",
|
"add_to_album_bottom_sheet_already_exists": "已在 {album} 中",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "新密码",
|
"change_password_form_new_password": "新密码",
|
||||||
"change_password_form_password_mismatch": "密码不匹配",
|
"change_password_form_password_mismatch": "密码不匹配",
|
||||||
"change_password_form_reenter_new_password": "再次输入新密码",
|
"change_password_form_reenter_new_password": "再次输入新密码",
|
||||||
|
"client_cert_dialog_msg_confirm": "确定",
|
||||||
|
"client_cert_enter_password": "输入密码",
|
||||||
|
"client_cert_import": "导入",
|
||||||
|
"client_cert_import_success_msg": "客户端证书已导入",
|
||||||
|
"client_cert_invalid_msg": "无效的证书文件或密码错误",
|
||||||
|
"client_cert_remove": "移除",
|
||||||
|
"client_cert_remove_msg": "客户端证书已移除",
|
||||||
|
"client_cert_subtitle": "仅支持PKCS12 (.p12, .pfx)格式。仅可在登录前进行证书的导入和移除",
|
||||||
|
"client_cert_title": "SSL客户端证书",
|
||||||
"common_add_to_album": "添加到相册",
|
"common_add_to_album": "添加到相册",
|
||||||
"common_change_password": "更改密码",
|
"common_change_password": "更改密码",
|
||||||
"common_create_new_album": "新建相册",
|
"common_create_new_album": "新建相册",
|
||||||
"common_server_error": "请检查您的网络连接,确保服务器可访问且该应用程序与服务器版本兼容。",
|
"common_server_error": "请检查您的网络连接,确保服务器可访问且该应用程序与服务器版本兼容。",
|
||||||
"common_shared": "共享",
|
"common_shared": "共享",
|
||||||
|
"contextual_search": "海滩上的日出",
|
||||||
"control_bottom_app_bar_add_to_album": "添加到相册",
|
"control_bottom_app_bar_add_to_album": "添加到相册",
|
||||||
"control_bottom_app_bar_album_info": "{} 项",
|
"control_bottom_app_bar_album_info": "{} 项",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} 项 · 已共享",
|
"control_bottom_app_bar_album_info_shared": "{} 项 · 已共享",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "删除",
|
"control_bottom_app_bar_delete": "删除",
|
||||||
"control_bottom_app_bar_delete_from_immich": "从Immich服务器中删除",
|
"control_bottom_app_bar_delete_from_immich": "从Immich服务器中删除",
|
||||||
"control_bottom_app_bar_delete_from_local": "从移动设备中删除",
|
"control_bottom_app_bar_delete_from_local": "从移动设备中删除",
|
||||||
|
"control_bottom_app_bar_edit": "编辑",
|
||||||
"control_bottom_app_bar_edit_location": "编辑位置信息",
|
"control_bottom_app_bar_edit_location": "编辑位置信息",
|
||||||
"control_bottom_app_bar_edit_time": "编辑日期和时间",
|
"control_bottom_app_bar_edit_time": "编辑日期和时间",
|
||||||
"control_bottom_app_bar_favorite": "收藏",
|
"control_bottom_app_bar_favorite": "收藏",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "实验性功能",
|
"experimental_settings_title": "实验性功能",
|
||||||
"favorites_page_no_favorites": "未找到收藏项目",
|
"favorites_page_no_favorites": "未找到收藏项目",
|
||||||
"favorites_page_title": "收藏",
|
"favorites_page_title": "收藏",
|
||||||
|
"filename_search": "文件名或扩展名",
|
||||||
"haptic_feedback_switch": "启用振动反馈",
|
"haptic_feedback_switch": "启用振动反馈",
|
||||||
"haptic_feedback_title": "振动反馈",
|
"haptic_feedback_title": "振动反馈",
|
||||||
"header_settings_add_header_tip": "添加标头",
|
"header_settings_add_header_tip": "添加标头",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "下载启动",
|
"image_viewer_page_state_provider_download_started": "下载启动",
|
||||||
"image_viewer_page_state_provider_download_success": "下载成功",
|
"image_viewer_page_state_provider_download_success": "下载成功",
|
||||||
"image_viewer_page_state_provider_share_error": "共享出错",
|
"image_viewer_page_state_provider_share_error": "共享出错",
|
||||||
|
"invalid_date": "无效的日期",
|
||||||
|
"invalid_date_format": "无效的日期格式",
|
||||||
"library_page_albums": "相册",
|
"library_page_albums": "相册",
|
||||||
"library_page_archive": "归档",
|
"library_page_archive": "归档",
|
||||||
"library_page_device_albums": "设备上的相册",
|
"library_page_device_albums": "设备上的相册",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "无法编辑只读项目的日期,跳过",
|
"multiselect_grid_edit_date_time_err_read_only": "无法编辑只读项目的日期,跳过",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "无法编辑只读项目的位置信息,跳过",
|
"multiselect_grid_edit_gps_err_read_only": "无法编辑只读项目的位置信息,跳过",
|
||||||
"no_assets_to_show": "无项目展示",
|
"no_assets_to_show": "无项目展示",
|
||||||
|
"no_name": "无姓名",
|
||||||
"notification_permission_dialog_cancel": "取消",
|
"notification_permission_dialog_cancel": "取消",
|
||||||
"notification_permission_dialog_content": "要启用通知,请转到“设置”,并选择“允许”。",
|
"notification_permission_dialog_content": "要启用通知,请转到“设置”,并选择“允许”。",
|
||||||
"notification_permission_dialog_settings": "设置",
|
"notification_permission_dialog_settings": "设置",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "发生错误",
|
"scaffold_body_error_occurred": "发生错误",
|
||||||
"search_bar_hint": "搜索照片",
|
"search_bar_hint": "搜索照片",
|
||||||
"search_filter_apply": "应用筛选",
|
"search_filter_apply": "应用筛选",
|
||||||
|
"search_filter_camera": "相机",
|
||||||
"search_filter_camera_make": "制造商",
|
"search_filter_camera_make": "制造商",
|
||||||
"search_filter_camera_model": "型号",
|
"search_filter_camera_model": "型号",
|
||||||
|
"search_filter_camera_title": "选择相机类型",
|
||||||
|
"search_filter_date": "日期",
|
||||||
|
"search_filter_date_interval": "从{start}到{end}",
|
||||||
|
"search_filter_date_title": "选择日期范围",
|
||||||
"search_filter_display_option_archive": "归档",
|
"search_filter_display_option_archive": "归档",
|
||||||
"search_filter_display_option_favorite": "收藏",
|
"search_filter_display_option_favorite": "收藏",
|
||||||
"search_filter_display_option_not_in_album": "不在相册中",
|
"search_filter_display_option_not_in_album": "不在相册中",
|
||||||
|
"search_filter_display_options": "显示选项",
|
||||||
|
"search_filter_display_options_title": "显示选项",
|
||||||
|
"search_filter_location": "位置",
|
||||||
"search_filter_location_city": "城市",
|
"search_filter_location_city": "城市",
|
||||||
"search_filter_location_country": "国家",
|
"search_filter_location_country": "国家",
|
||||||
"search_filter_location_state": "省",
|
"search_filter_location_state": "省",
|
||||||
|
"search_filter_location_title": "选择位置",
|
||||||
|
"search_filter_media_type": "媒体类型",
|
||||||
"search_filter_media_type_all": "所有",
|
"search_filter_media_type_all": "所有",
|
||||||
"search_filter_media_type_image": "照片",
|
"search_filter_media_type_image": "照片",
|
||||||
|
"search_filter_media_type_title": "选择媒体类型",
|
||||||
"search_filter_media_type_video": "视频",
|
"search_filter_media_type_video": "视频",
|
||||||
|
"search_filter_people": "人物",
|
||||||
|
"search_filter_people_title": "选择人物",
|
||||||
"search_page_categories": "类别",
|
"search_page_categories": "类别",
|
||||||
"search_page_favorites": "收藏",
|
"search_page_favorites": "收藏",
|
||||||
"search_page_motion_photos": "动图",
|
"search_page_motion_photos": "动图",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "取消",
|
"action_common_cancel": "取消",
|
||||||
"action_common_clear": "清空",
|
"action_common_clear": "清空",
|
||||||
"action_common_confirm": "确定",
|
"action_common_confirm": "确定",
|
||||||
|
"action_common_save": "保存",
|
||||||
|
"action_common_select": "选择",
|
||||||
"action_common_update": "更新",
|
"action_common_update": "更新",
|
||||||
"add_to_album_bottom_sheet_added": "添加到 {album}",
|
"add_to_album_bottom_sheet_added": "添加到 {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "已在 {album} 中",
|
"add_to_album_bottom_sheet_already_exists": "已在 {album} 中",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "新密码",
|
"change_password_form_new_password": "新密码",
|
||||||
"change_password_form_password_mismatch": "密码不匹配",
|
"change_password_form_password_mismatch": "密码不匹配",
|
||||||
"change_password_form_reenter_new_password": "再次输入新密码",
|
"change_password_form_reenter_new_password": "再次输入新密码",
|
||||||
|
"client_cert_dialog_msg_confirm": "确定",
|
||||||
|
"client_cert_enter_password": "输入密码",
|
||||||
|
"client_cert_import": "导入",
|
||||||
|
"client_cert_import_success_msg": "客户端证书已导入",
|
||||||
|
"client_cert_invalid_msg": "无效的证书文件或密码错误",
|
||||||
|
"client_cert_remove": "移除",
|
||||||
|
"client_cert_remove_msg": "客户端证书已移除",
|
||||||
|
"client_cert_subtitle": "仅支持PKCS12 (.p12, .pfx)格式。仅可在登录前进行证书的导入和移除",
|
||||||
|
"client_cert_title": "SSL客户端证书",
|
||||||
"common_add_to_album": "添加到相册",
|
"common_add_to_album": "添加到相册",
|
||||||
"common_change_password": "更改密码",
|
"common_change_password": "更改密码",
|
||||||
"common_create_new_album": "新建相册",
|
"common_create_new_album": "新建相册",
|
||||||
"common_server_error": "请检查您的网络连接,确保服务器可访问且该应用程序与服务器版本兼容。",
|
"common_server_error": "请检查您的网络连接,确保服务器可访问且该应用程序与服务器版本兼容。",
|
||||||
"common_shared": "共享",
|
"common_shared": "共享",
|
||||||
|
"contextual_search": "海滩上的日出",
|
||||||
"control_bottom_app_bar_add_to_album": "添加到相册",
|
"control_bottom_app_bar_add_to_album": "添加到相册",
|
||||||
"control_bottom_app_bar_album_info": "{} 项",
|
"control_bottom_app_bar_album_info": "{} 项",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} 项 · 已共享",
|
"control_bottom_app_bar_album_info_shared": "{} 项 · 已共享",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "删除",
|
"control_bottom_app_bar_delete": "删除",
|
||||||
"control_bottom_app_bar_delete_from_immich": "从Immich服务器中删除",
|
"control_bottom_app_bar_delete_from_immich": "从Immich服务器中删除",
|
||||||
"control_bottom_app_bar_delete_from_local": "从移动设备中删除",
|
"control_bottom_app_bar_delete_from_local": "从移动设备中删除",
|
||||||
|
"control_bottom_app_bar_edit": "编辑",
|
||||||
"control_bottom_app_bar_edit_location": "编辑位置信息",
|
"control_bottom_app_bar_edit_location": "编辑位置信息",
|
||||||
"control_bottom_app_bar_edit_time": "编辑日期和时间",
|
"control_bottom_app_bar_edit_time": "编辑日期和时间",
|
||||||
"control_bottom_app_bar_favorite": "收藏",
|
"control_bottom_app_bar_favorite": "收藏",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "实验性功能",
|
"experimental_settings_title": "实验性功能",
|
||||||
"favorites_page_no_favorites": "未找到收藏项目",
|
"favorites_page_no_favorites": "未找到收藏项目",
|
||||||
"favorites_page_title": "收藏",
|
"favorites_page_title": "收藏",
|
||||||
|
"filename_search": "文件名或扩展名",
|
||||||
"haptic_feedback_switch": "启用振动反馈",
|
"haptic_feedback_switch": "启用振动反馈",
|
||||||
"haptic_feedback_title": "振动反馈",
|
"haptic_feedback_title": "振动反馈",
|
||||||
"header_settings_add_header_tip": "添加标头",
|
"header_settings_add_header_tip": "添加标头",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "下载启动",
|
"image_viewer_page_state_provider_download_started": "下载启动",
|
||||||
"image_viewer_page_state_provider_download_success": "下载成功",
|
"image_viewer_page_state_provider_download_success": "下载成功",
|
||||||
"image_viewer_page_state_provider_share_error": "共享出错",
|
"image_viewer_page_state_provider_share_error": "共享出错",
|
||||||
|
"invalid_date": "无效的日期",
|
||||||
|
"invalid_date_format": "无效的日期格式",
|
||||||
"library_page_albums": "相册",
|
"library_page_albums": "相册",
|
||||||
"library_page_archive": "归档",
|
"library_page_archive": "归档",
|
||||||
"library_page_device_albums": "设备上的相册",
|
"library_page_device_albums": "设备上的相册",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "无法编辑只读项目的日期,跳过",
|
"multiselect_grid_edit_date_time_err_read_only": "无法编辑只读项目的日期,跳过",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "无法编辑只读项目的位置信息,跳过",
|
"multiselect_grid_edit_gps_err_read_only": "无法编辑只读项目的位置信息,跳过",
|
||||||
"no_assets_to_show": "无项目展示",
|
"no_assets_to_show": "无项目展示",
|
||||||
|
"no_name": "无姓名",
|
||||||
"notification_permission_dialog_cancel": "取消",
|
"notification_permission_dialog_cancel": "取消",
|
||||||
"notification_permission_dialog_content": "要启用通知,请转到“设置”,并选择“允许”。",
|
"notification_permission_dialog_content": "要启用通知,请转到“设置”,并选择“允许”。",
|
||||||
"notification_permission_dialog_settings": "设置",
|
"notification_permission_dialog_settings": "设置",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "发生错误",
|
"scaffold_body_error_occurred": "发生错误",
|
||||||
"search_bar_hint": "搜索照片",
|
"search_bar_hint": "搜索照片",
|
||||||
"search_filter_apply": "应用筛选",
|
"search_filter_apply": "应用筛选",
|
||||||
|
"search_filter_camera": "相机",
|
||||||
"search_filter_camera_make": "制造商",
|
"search_filter_camera_make": "制造商",
|
||||||
"search_filter_camera_model": "型号",
|
"search_filter_camera_model": "型号",
|
||||||
|
"search_filter_camera_title": "选择相机类型",
|
||||||
|
"search_filter_date": "日期",
|
||||||
|
"search_filter_date_interval": "从{start}到{end}",
|
||||||
|
"search_filter_date_title": "选择日期范围",
|
||||||
"search_filter_display_option_archive": "归档",
|
"search_filter_display_option_archive": "归档",
|
||||||
"search_filter_display_option_favorite": "收藏",
|
"search_filter_display_option_favorite": "收藏",
|
||||||
"search_filter_display_option_not_in_album": "不在相册中",
|
"search_filter_display_option_not_in_album": "不在相册中",
|
||||||
|
"search_filter_display_options": "显示选项",
|
||||||
|
"search_filter_display_options_title": "显示选项",
|
||||||
|
"search_filter_location": "位置",
|
||||||
"search_filter_location_city": "城市",
|
"search_filter_location_city": "城市",
|
||||||
"search_filter_location_country": "国家",
|
"search_filter_location_country": "国家",
|
||||||
"search_filter_location_state": "省",
|
"search_filter_location_state": "省",
|
||||||
|
"search_filter_location_title": "选择位置",
|
||||||
|
"search_filter_media_type": "媒体类型",
|
||||||
"search_filter_media_type_all": "所有",
|
"search_filter_media_type_all": "所有",
|
||||||
"search_filter_media_type_image": "照片",
|
"search_filter_media_type_image": "照片",
|
||||||
|
"search_filter_media_type_title": "选择媒体类型",
|
||||||
"search_filter_media_type_video": "视频",
|
"search_filter_media_type_video": "视频",
|
||||||
|
"search_filter_people": "人物",
|
||||||
|
"search_filter_people_title": "选择人物",
|
||||||
"search_page_categories": "类别",
|
"search_page_categories": "类别",
|
||||||
"search_page_favorites": "收藏",
|
"search_page_favorites": "收藏",
|
||||||
"search_page_motion_photos": "动图",
|
"search_page_motion_photos": "动图",
|
||||||
|
|||||||
@@ -3,6 +3,8 @@
|
|||||||
"action_common_cancel": "Cancel",
|
"action_common_cancel": "Cancel",
|
||||||
"action_common_clear": "Clear",
|
"action_common_clear": "Clear",
|
||||||
"action_common_confirm": "Confirm",
|
"action_common_confirm": "Confirm",
|
||||||
|
"action_common_save": "Save",
|
||||||
|
"action_common_select": "Select",
|
||||||
"action_common_update": "Update",
|
"action_common_update": "Update",
|
||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Added to {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
@@ -141,11 +143,21 @@
|
|||||||
"change_password_form_new_password": "New Password",
|
"change_password_form_new_password": "New Password",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"change_password_form_password_mismatch": "Passwords do not match",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"change_password_form_reenter_new_password": "Re-enter New Password",
|
||||||
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
|
"client_cert_enter_password": "Enter Password",
|
||||||
|
"client_cert_import": "Import",
|
||||||
|
"client_cert_import_success_msg": "Client certificate is imported",
|
||||||
|
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
||||||
|
"client_cert_remove": "Remove",
|
||||||
|
"client_cert_remove_msg": "Client certificate is removed",
|
||||||
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
|
"client_cert_title": "SSL Client Certificate",
|
||||||
"common_add_to_album": "Add to album",
|
"common_add_to_album": "Add to album",
|
||||||
"common_change_password": "Change Password",
|
"common_change_password": "Change Password",
|
||||||
"common_create_new_album": "Create new album",
|
"common_create_new_album": "Create new album",
|
||||||
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.",
|
||||||
"common_shared": "Shared",
|
"common_shared": "Shared",
|
||||||
|
"contextual_search": "Sunrise on the beach",
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
"control_bottom_app_bar_add_to_album": "Add to album",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"control_bottom_app_bar_album_info": "{} items",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
||||||
@@ -154,6 +166,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
"control_bottom_app_bar_delete_from_immich": "Delete from Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
"control_bottom_app_bar_delete_from_local": "Delete from device",
|
||||||
|
"control_bottom_app_bar_edit": "Edit",
|
||||||
"control_bottom_app_bar_edit_location": "Edit Location",
|
"control_bottom_app_bar_edit_location": "Edit Location",
|
||||||
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
"control_bottom_app_bar_edit_time": "Edit Date & Time",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
@@ -203,6 +216,7 @@
|
|||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_title": "Experimental",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"favorites_page_no_favorites": "No favorite assets found",
|
||||||
"favorites_page_title": "Favorites",
|
"favorites_page_title": "Favorites",
|
||||||
|
"filename_search": "File name or extension",
|
||||||
"haptic_feedback_switch": "Enable haptic feedback",
|
"haptic_feedback_switch": "Enable haptic feedback",
|
||||||
"haptic_feedback_title": "Haptic Feedback",
|
"haptic_feedback_title": "Haptic Feedback",
|
||||||
"header_settings_add_header_tip": "Add Header",
|
"header_settings_add_header_tip": "Add Header",
|
||||||
@@ -230,6 +244,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download Started",
|
"image_viewer_page_state_provider_download_started": "Download Started",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"image_viewer_page_state_provider_download_success": "Download Success",
|
||||||
"image_viewer_page_state_provider_share_error": "Share Error",
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
|
"invalid_date": "Invalid date",
|
||||||
|
"invalid_date_format": "Invalid date format",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
@@ -311,6 +327,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
|
||||||
"no_assets_to_show": "No assets to show",
|
"no_assets_to_show": "No assets to show",
|
||||||
|
"no_name": "No name",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
"notification_permission_dialog_settings": "Settings",
|
||||||
@@ -354,17 +371,30 @@
|
|||||||
"scaffold_body_error_occurred": "Error occurred",
|
"scaffold_body_error_occurred": "Error occurred",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_filter_apply": "Apply filter",
|
"search_filter_apply": "Apply filter",
|
||||||
|
"search_filter_camera": "Camera",
|
||||||
"search_filter_camera_make": "Make",
|
"search_filter_camera_make": "Make",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Model",
|
||||||
|
"search_filter_camera_title": "Select camera type",
|
||||||
|
"search_filter_date": "Date",
|
||||||
|
"search_filter_date_interval": "{start} to {end}",
|
||||||
|
"search_filter_date_title": "Select a date range",
|
||||||
"search_filter_display_option_archive": "Archive",
|
"search_filter_display_option_archive": "Archive",
|
||||||
"search_filter_display_option_favorite": "Favorite",
|
"search_filter_display_option_favorite": "Favorite",
|
||||||
"search_filter_display_option_not_in_album": "Not in album",
|
"search_filter_display_option_not_in_album": "Not in album",
|
||||||
|
"search_filter_display_options": "Display Options",
|
||||||
|
"search_filter_display_options_title": "Display options",
|
||||||
|
"search_filter_location": "Location",
|
||||||
"search_filter_location_city": "City",
|
"search_filter_location_city": "City",
|
||||||
"search_filter_location_country": "Country",
|
"search_filter_location_country": "Country",
|
||||||
"search_filter_location_state": "State",
|
"search_filter_location_state": "State",
|
||||||
|
"search_filter_location_title": "Select location",
|
||||||
|
"search_filter_media_type": "Media Type",
|
||||||
"search_filter_media_type_all": "All",
|
"search_filter_media_type_all": "All",
|
||||||
"search_filter_media_type_image": "Image",
|
"search_filter_media_type_image": "Image",
|
||||||
|
"search_filter_media_type_title": "Select media type",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
|
"search_filter_people": "People",
|
||||||
|
"search_filter_people_title": "Select people",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_favorites": "Favorites",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_motion_photos": "Motion Photos",
|
||||||
|
|||||||
@@ -383,7 +383,7 @@
|
|||||||
CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/RunnerProfile.entitlements;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 165;
|
CURRENT_PROJECT_VERSION = 167;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
@@ -525,7 +525,7 @@
|
|||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 165;
|
CURRENT_PROJECT_VERSION = 167;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
@@ -553,7 +553,7 @@
|
|||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 165;
|
CURRENT_PROJECT_VERSION = 167;
|
||||||
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
DEVELOPMENT_TEAM = 2F67MQ8R79;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
INFOPLIST_FILE = Runner/Info.plist;
|
INFOPLIST_FILE = Runner/Info.plist;
|
||||||
|
|||||||
@@ -58,11 +58,11 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>1.110.0</string>
|
<string>1.111.0</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>165</string>
|
<string>167</string>
|
||||||
<key>FLTEnableImpeller</key>
|
<key>FLTEnableImpeller</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>ITSAppUsesNonExemptEncryption</key>
|
<key>ITSAppUsesNonExemptEncryption</key>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ platform :ios do
|
|||||||
desc "iOS Release"
|
desc "iOS Release"
|
||||||
lane :release do
|
lane :release do
|
||||||
increment_version_number(
|
increment_version_number(
|
||||||
version_number: "1.110.0"
|
version_number: "1.111.0"
|
||||||
)
|
)
|
||||||
increment_build_number(
|
increment_build_number(
|
||||||
build_number: latest_testflight_build_number + 1,
|
build_number: latest_testflight_build_number + 1,
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class Activity {
|
|||||||
assetId = dto.assetId,
|
assetId = dto.assetId,
|
||||||
comment = dto.comment,
|
comment = dto.comment,
|
||||||
createdAt = dto.createdAt,
|
createdAt = dto.createdAt,
|
||||||
type = dto.type == ActivityResponseDtoTypeEnum.comment
|
type = dto.type == ReactionType.comment
|
||||||
? ActivityType.comment
|
? ActivityType.comment
|
||||||
: ActivityType.like,
|
: ActivityType.like,
|
||||||
user = User.fromSimpleUserDto(dto.user);
|
user = User.fromSimpleUserDto(dto.user);
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import 'package:immich_mobile/routing/router.dart';
|
|||||||
import 'package:immich_mobile/entities/store.entity.dart';
|
import 'package:immich_mobile/entities/store.entity.dart';
|
||||||
import 'package:immich_mobile/providers/api.provider.dart';
|
import 'package:immich_mobile/providers/api.provider.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:openapi/api.dart';
|
|
||||||
|
|
||||||
@RoutePage()
|
@RoutePage()
|
||||||
class SplashScreenPage extends HookConsumerWidget {
|
class SplashScreenPage extends HookConsumerWidget {
|
||||||
@@ -19,45 +18,22 @@ class SplashScreenPage extends HookConsumerWidget {
|
|||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
final apiService = ref.watch(apiServiceProvider);
|
final apiService = ref.watch(apiServiceProvider);
|
||||||
final serverUrl = Store.tryGet(StoreKey.serverUrl);
|
final serverUrl = Store.tryGet(StoreKey.serverUrl);
|
||||||
|
final endpoint = Store.tryGet(StoreKey.serverEndpoint);
|
||||||
final accessToken = Store.tryGet(StoreKey.accessToken);
|
final accessToken = Store.tryGet(StoreKey.accessToken);
|
||||||
final log = Logger("SplashScreenPage");
|
final log = Logger("SplashScreenPage");
|
||||||
|
|
||||||
void performLoggingIn() async {
|
void performLoggingIn() async {
|
||||||
bool isSuccess = false;
|
bool isAuthSuccess = false;
|
||||||
bool deviceIsOffline = false;
|
|
||||||
|
|
||||||
if (accessToken != null && serverUrl != null) {
|
if (accessToken != null && serverUrl != null && endpoint != null) {
|
||||||
try {
|
apiService.setEndpoint(endpoint);
|
||||||
// Resolve API server endpoint from user provided serverUrl
|
|
||||||
await apiService.resolveAndSetEndpoint(serverUrl);
|
|
||||||
} on ApiException catch (error, stackTrace) {
|
|
||||||
log.severe(
|
|
||||||
"Failed to resolve endpoint [ApiException]",
|
|
||||||
error,
|
|
||||||
stackTrace,
|
|
||||||
);
|
|
||||||
// okay, try to continue anyway if offline
|
|
||||||
if (error.code == 503) {
|
|
||||||
deviceIsOffline = true;
|
|
||||||
log.warning("Device seems to be offline upon launch");
|
|
||||||
} else {
|
|
||||||
log.severe("Failed to resolve endpoint", error);
|
|
||||||
}
|
|
||||||
} catch (error, stackTrace) {
|
|
||||||
log.severe(
|
|
||||||
"Failed to resolve endpoint [Catch All]",
|
|
||||||
error,
|
|
||||||
stackTrace,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
isSuccess = await ref
|
isAuthSuccess = await ref
|
||||||
.read(authenticationProvider.notifier)
|
.read(authenticationProvider.notifier)
|
||||||
.setSuccessLoginInfo(
|
.setSuccessLoginInfo(
|
||||||
accessToken: accessToken,
|
accessToken: accessToken,
|
||||||
serverUrl: serverUrl,
|
serverUrl: serverUrl,
|
||||||
offlineLogin: deviceIsOffline,
|
|
||||||
);
|
);
|
||||||
} catch (error, stackTrace) {
|
} catch (error, stackTrace) {
|
||||||
log.severe(
|
log.severe(
|
||||||
@@ -66,39 +42,35 @@ class SplashScreenPage extends HookConsumerWidget {
|
|||||||
stackTrace,
|
stackTrace,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
isAuthSuccess = false;
|
||||||
|
log.severe(
|
||||||
|
'Missing authentication, server, or endpoint info from the local store',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the device is offline and there is a currentUser stored locallly
|
if (!isAuthSuccess) {
|
||||||
// Proceed into the app
|
|
||||||
if (deviceIsOffline && Store.tryGet(StoreKey.currentUser) != null) {
|
|
||||||
context.replaceRoute(const TabControllerRoute());
|
|
||||||
} else if (isSuccess) {
|
|
||||||
// If device was able to login through the internet successfully
|
|
||||||
final hasPermission =
|
|
||||||
await ref.read(galleryPermissionNotifier.notifier).hasPermission;
|
|
||||||
if (hasPermission) {
|
|
||||||
// Resume backup (if enable) then navigate
|
|
||||||
ref.watch(backupProvider.notifier).resumeBackup();
|
|
||||||
}
|
|
||||||
context.replaceRoute(const TabControllerRoute());
|
|
||||||
} else {
|
|
||||||
log.severe(
|
log.severe(
|
||||||
'Unable to login through offline or online methods - logging out completely',
|
'Unable to login using offline or online methods - Logging out completely',
|
||||||
);
|
);
|
||||||
|
|
||||||
ref.read(authenticationProvider.notifier).logout();
|
ref.read(authenticationProvider.notifier).logout();
|
||||||
// User was unable to login through either offline or online methods
|
|
||||||
context.replaceRoute(const LoginRoute());
|
context.replaceRoute(const LoginRoute());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
context.replaceRoute(const TabControllerRoute());
|
||||||
|
|
||||||
|
final hasPermission =
|
||||||
|
await ref.read(galleryPermissionNotifier.notifier).hasPermission;
|
||||||
|
if (hasPermission) {
|
||||||
|
// Resume backup (if enable) then navigate
|
||||||
|
ref.watch(backupProvider.notifier).resumeBackup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(
|
useEffect(
|
||||||
() {
|
() {
|
||||||
if (serverUrl != null && accessToken != null) {
|
performLoggingIn();
|
||||||
performLoggingIn();
|
|
||||||
} else {
|
|
||||||
context.replaceRoute(const LoginRoute());
|
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
[],
|
[],
|
||||||
|
|||||||
@@ -192,6 +192,7 @@ class _AspectRatioButton extends StatelessWidget {
|
|||||||
: Theme.of(context).iconTheme.color,
|
: Theme.of(context).iconTheme.color,
|
||||||
),
|
),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
|
cropController.crop = const Rect.fromLTRB(0.1, 0.1, 0.9, 0.9);
|
||||||
aspectRatio.value = ratio;
|
aspectRatio.value = ratio;
|
||||||
cropController.aspectRatio = ratio;
|
cropController.aspectRatio = ratio;
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ class AuthenticationNotifier extends StateNotifier<AuthenticationState> {
|
|||||||
try {
|
try {
|
||||||
String? userEmail = Store.tryGet(StoreKey.currentUser)?.email;
|
String? userEmail = Store.tryGet(StoreKey.currentUser)?.email;
|
||||||
|
|
||||||
_apiService.authenticationApi
|
await _apiService.authenticationApi
|
||||||
.logout()
|
.logout()
|
||||||
.then((_) => log.info("Logout was successful for $userEmail"))
|
.then((_) => log.info("Logout was successful for $userEmail"))
|
||||||
.onError(
|
.onError(
|
||||||
@@ -156,7 +156,6 @@ class AuthenticationNotifier extends StateNotifier<AuthenticationState> {
|
|||||||
Future<bool> setSuccessLoginInfo({
|
Future<bool> setSuccessLoginInfo({
|
||||||
required String accessToken,
|
required String accessToken,
|
||||||
required String serverUrl,
|
required String serverUrl,
|
||||||
bool offlineLogin = false,
|
|
||||||
}) async {
|
}) async {
|
||||||
_apiService.setAccessToken(accessToken);
|
_apiService.setAccessToken(accessToken);
|
||||||
|
|
||||||
@@ -165,57 +164,56 @@ class AuthenticationNotifier extends StateNotifier<AuthenticationState> {
|
|||||||
Store.tryGet(StoreKey.deviceId) ?? await FlutterUdid.consistentUdid;
|
Store.tryGet(StoreKey.deviceId) ?? await FlutterUdid.consistentUdid;
|
||||||
|
|
||||||
bool shouldChangePassword = false;
|
bool shouldChangePassword = false;
|
||||||
User? user;
|
User? user = Store.tryGet(StoreKey.currentUser);
|
||||||
|
|
||||||
bool retResult = false;
|
UserAdminResponseDto? userResponse;
|
||||||
User? offlineUser = Store.tryGet(StoreKey.currentUser);
|
UserPreferencesResponseDto? userPreferences;
|
||||||
|
try {
|
||||||
// If the user is offline and there is a user saved on the device,
|
final responses = await Future.wait([
|
||||||
// if not try an online login
|
_apiService.usersApi.getMyUser(),
|
||||||
if (offlineLogin && offlineUser != null) {
|
_apiService.usersApi.getMyPreferences(),
|
||||||
user = offlineUser;
|
]);
|
||||||
retResult = false;
|
userResponse = responses[0] as UserAdminResponseDto;
|
||||||
} else {
|
userPreferences = responses[1] as UserPreferencesResponseDto;
|
||||||
UserAdminResponseDto? userResponseDto;
|
} on ApiException catch (error, stackTrace) {
|
||||||
UserPreferencesResponseDto? userPreferences;
|
if (error.code == 401) {
|
||||||
try {
|
_log.severe("Unauthorized access, token likely expired. Logging out.");
|
||||||
userResponseDto = await _apiService.usersApi.getMyUser();
|
|
||||||
userPreferences = await _apiService.usersApi.getMyPreferences();
|
|
||||||
} on ApiException catch (error, stackTrace) {
|
|
||||||
_log.severe(
|
|
||||||
"Error getting user information from the server [API EXCEPTION]",
|
|
||||||
error,
|
|
||||||
stackTrace,
|
|
||||||
);
|
|
||||||
if (error.innerException is SocketException) {
|
|
||||||
state = state.copyWith(isAuthenticated: true);
|
|
||||||
}
|
|
||||||
} catch (error, stackTrace) {
|
|
||||||
_log.severe(
|
|
||||||
"Error getting user information from the server [CATCH ALL]",
|
|
||||||
error,
|
|
||||||
stackTrace,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (userResponseDto != null) {
|
|
||||||
Store.put(StoreKey.deviceId, deviceId);
|
|
||||||
Store.put(StoreKey.deviceIdHash, fastHash(deviceId));
|
|
||||||
Store.put(
|
|
||||||
StoreKey.currentUser,
|
|
||||||
User.fromUserDto(userResponseDto, userPreferences),
|
|
||||||
);
|
|
||||||
Store.put(StoreKey.serverUrl, serverUrl);
|
|
||||||
Store.put(StoreKey.accessToken, accessToken);
|
|
||||||
|
|
||||||
shouldChangePassword = userResponseDto.shouldChangePassword;
|
|
||||||
user = User.fromUserDto(userResponseDto, userPreferences);
|
|
||||||
|
|
||||||
retResult = true;
|
|
||||||
} else {
|
|
||||||
_log.severe("Unable to get user information from the server.");
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
_log.severe(
|
||||||
|
"Error getting user information from the server [API EXCEPTION]",
|
||||||
|
stackTrace,
|
||||||
|
);
|
||||||
|
} catch (error, stackTrace) {
|
||||||
|
_log.severe(
|
||||||
|
"Error getting user information from the server [CATCH ALL]",
|
||||||
|
error,
|
||||||
|
stackTrace,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the user information is successfully retrieved, update the store
|
||||||
|
// Due to the flow of the code, this will always happen on first login
|
||||||
|
if (userResponse != null) {
|
||||||
|
Store.put(StoreKey.deviceId, deviceId);
|
||||||
|
Store.put(StoreKey.deviceIdHash, fastHash(deviceId));
|
||||||
|
Store.put(
|
||||||
|
StoreKey.currentUser,
|
||||||
|
User.fromUserDto(userResponse, userPreferences),
|
||||||
|
);
|
||||||
|
Store.put(StoreKey.serverUrl, serverUrl);
|
||||||
|
Store.put(StoreKey.accessToken, accessToken);
|
||||||
|
|
||||||
|
shouldChangePassword = userResponse.shouldChangePassword;
|
||||||
|
user = User.fromUserDto(userResponse, userPreferences);
|
||||||
|
} else {
|
||||||
|
_log.severe("Unable to get user information from the server.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the user is null, the login was not successful
|
||||||
|
// and we don't have a local copy of the user from a prior successful login
|
||||||
|
if (user == null) {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
state = state.copyWith(
|
state = state.copyWith(
|
||||||
@@ -229,7 +227,7 @@ class AuthenticationNotifier extends StateNotifier<AuthenticationState> {
|
|||||||
deviceId: deviceId,
|
deviceId: deviceId,
|
||||||
);
|
);
|
||||||
|
|
||||||
return retResult;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ class BottomGalleryBar extends ConsumerWidget {
|
|||||||
),
|
),
|
||||||
if (asset.isImage)
|
if (asset.isImage)
|
||||||
BottomNavigationBarItem(
|
BottomNavigationBarItem(
|
||||||
icon: const Icon(Icons.edit_outlined),
|
icon: const Icon(Icons.tune_outlined),
|
||||||
label: 'control_bottom_app_bar_edit'.tr(),
|
label: 'control_bottom_app_bar_edit'.tr(),
|
||||||
tooltip: 'control_bottom_app_bar_edit'.tr(),
|
tooltip: 'control_bottom_app_bar_edit'.tr(),
|
||||||
),
|
),
|
||||||
@@ -94,7 +94,7 @@ class BottomGalleryBar extends ConsumerWidget {
|
|||||||
label: 'control_bottom_app_bar_stack'.tr(),
|
label: 'control_bottom_app_bar_stack'.tr(),
|
||||||
tooltip: 'control_bottom_app_bar_stack'.tr(),
|
tooltip: 'control_bottom_app_bar_stack'.tr(),
|
||||||
),
|
),
|
||||||
if (isOwner)
|
if (isOwner && !isInAlbum)
|
||||||
BottomNavigationBarItem(
|
BottomNavigationBarItem(
|
||||||
icon: const Icon(Icons.delete_outline),
|
icon: const Icon(Icons.delete_outline),
|
||||||
label: 'control_bottom_app_bar_delete'.tr(),
|
label: 'control_bottom_app_bar_delete'.tr(),
|
||||||
@@ -391,10 +391,22 @@ class BottomGalleryBar extends ConsumerWidget {
|
|||||||
backgroundColor: Colors.black.withOpacity(0.4),
|
backgroundColor: Colors.black.withOpacity(0.4),
|
||||||
unselectedIconTheme: const IconThemeData(color: Colors.white),
|
unselectedIconTheme: const IconThemeData(color: Colors.white),
|
||||||
selectedIconTheme: const IconThemeData(color: Colors.white),
|
selectedIconTheme: const IconThemeData(color: Colors.white),
|
||||||
unselectedLabelStyle: const TextStyle(color: Colors.black),
|
unselectedLabelStyle: const TextStyle(
|
||||||
selectedLabelStyle: const TextStyle(color: Colors.black),
|
color: Colors.white,
|
||||||
showSelectedLabels: false,
|
fontWeight: FontWeight.w500,
|
||||||
showUnselectedLabels: false,
|
height: 2.3,
|
||||||
|
),
|
||||||
|
selectedLabelStyle: const TextStyle(
|
||||||
|
color: Colors.white,
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
height: 2.3,
|
||||||
|
),
|
||||||
|
unselectedFontSize: 14,
|
||||||
|
selectedFontSize: 14,
|
||||||
|
selectedItemColor: Colors.white,
|
||||||
|
unselectedItemColor: Colors.white,
|
||||||
|
showSelectedLabels: true,
|
||||||
|
showUnselectedLabels: true,
|
||||||
items: itemsList,
|
items: itemsList,
|
||||||
onTap: (index) {
|
onTap: (index) {
|
||||||
if (index < actionslist.length) {
|
if (index < actionslist.length) {
|
||||||
|
|||||||
4
mobile/openapi/README.md
generated
4
mobile/openapi/README.md
generated
@@ -3,7 +3,7 @@ Immich API
|
|||||||
|
|
||||||
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||||
|
|
||||||
- API version: 1.110.0
|
- API version: 1.111.0
|
||||||
- Generator version: 7.5.0
|
- Generator version: 7.5.0
|
||||||
- Build package: org.openapitools.codegen.languages.DartClientCodegen
|
- Build package: org.openapitools.codegen.languages.DartClientCodegen
|
||||||
|
|
||||||
@@ -146,6 +146,7 @@ Class | Method | HTTP request | Description
|
|||||||
*LibrariesApi* | [**validate**](doc//LibrariesApi.md#validate) | **POST** /libraries/{id}/validate |
|
*LibrariesApi* | [**validate**](doc//LibrariesApi.md#validate) | **POST** /libraries/{id}/validate |
|
||||||
*MapApi* | [**getMapMarkers**](doc//MapApi.md#getmapmarkers) | **GET** /map/markers |
|
*MapApi* | [**getMapMarkers**](doc//MapApi.md#getmapmarkers) | **GET** /map/markers |
|
||||||
*MapApi* | [**getMapStyle**](doc//MapApi.md#getmapstyle) | **GET** /map/style.json |
|
*MapApi* | [**getMapStyle**](doc//MapApi.md#getmapstyle) | **GET** /map/style.json |
|
||||||
|
*MapApi* | [**reverseGeocode**](doc//MapApi.md#reversegeocode) | **GET** /map/reverse-geocode |
|
||||||
*MemoriesApi* | [**addMemoryAssets**](doc//MemoriesApi.md#addmemoryassets) | **PUT** /memories/{id}/assets |
|
*MemoriesApi* | [**addMemoryAssets**](doc//MemoriesApi.md#addmemoryassets) | **PUT** /memories/{id}/assets |
|
||||||
*MemoriesApi* | [**createMemory**](doc//MemoriesApi.md#creatememory) | **POST** /memories |
|
*MemoriesApi* | [**createMemory**](doc//MemoriesApi.md#creatememory) | **POST** /memories |
|
||||||
*MemoriesApi* | [**deleteMemory**](doc//MemoriesApi.md#deletememory) | **DELETE** /memories/{id} |
|
*MemoriesApi* | [**deleteMemory**](doc//MemoriesApi.md#deletememory) | **DELETE** /memories/{id} |
|
||||||
@@ -339,6 +340,7 @@ Class | Method | HTTP request | Description
|
|||||||
- [LoginResponseDto](doc//LoginResponseDto.md)
|
- [LoginResponseDto](doc//LoginResponseDto.md)
|
||||||
- [LogoutResponseDto](doc//LogoutResponseDto.md)
|
- [LogoutResponseDto](doc//LogoutResponseDto.md)
|
||||||
- [MapMarkerResponseDto](doc//MapMarkerResponseDto.md)
|
- [MapMarkerResponseDto](doc//MapMarkerResponseDto.md)
|
||||||
|
- [MapReverseGeocodeResponseDto](doc//MapReverseGeocodeResponseDto.md)
|
||||||
- [MapTheme](doc//MapTheme.md)
|
- [MapTheme](doc//MapTheme.md)
|
||||||
- [MemoryCreateDto](doc//MemoryCreateDto.md)
|
- [MemoryCreateDto](doc//MemoryCreateDto.md)
|
||||||
- [MemoryLaneResponseDto](doc//MemoryLaneResponseDto.md)
|
- [MemoryLaneResponseDto](doc//MemoryLaneResponseDto.md)
|
||||||
|
|||||||
1
mobile/openapi/lib/api.dart
generated
1
mobile/openapi/lib/api.dart
generated
@@ -152,6 +152,7 @@ part 'model/login_credential_dto.dart';
|
|||||||
part 'model/login_response_dto.dart';
|
part 'model/login_response_dto.dart';
|
||||||
part 'model/logout_response_dto.dart';
|
part 'model/logout_response_dto.dart';
|
||||||
part 'model/map_marker_response_dto.dart';
|
part 'model/map_marker_response_dto.dart';
|
||||||
|
part 'model/map_reverse_geocode_response_dto.dart';
|
||||||
part 'model/map_theme.dart';
|
part 'model/map_theme.dart';
|
||||||
part 'model/memory_create_dto.dart';
|
part 'model/memory_create_dto.dart';
|
||||||
part 'model/memory_lane_response_dto.dart';
|
part 'model/memory_lane_response_dto.dart';
|
||||||
|
|||||||
57
mobile/openapi/lib/api/map_api.dart
generated
57
mobile/openapi/lib/api/map_api.dart
generated
@@ -160,4 +160,61 @@ class MapApi {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Performs an HTTP 'GET /map/reverse-geocode' operation and returns the [Response].
|
||||||
|
/// Parameters:
|
||||||
|
///
|
||||||
|
/// * [double] lat (required):
|
||||||
|
///
|
||||||
|
/// * [double] lon (required):
|
||||||
|
Future<Response> reverseGeocodeWithHttpInfo(double lat, double lon,) async {
|
||||||
|
// ignore: prefer_const_declarations
|
||||||
|
final path = r'/map/reverse-geocode';
|
||||||
|
|
||||||
|
// ignore: prefer_final_locals
|
||||||
|
Object? postBody;
|
||||||
|
|
||||||
|
final queryParams = <QueryParam>[];
|
||||||
|
final headerParams = <String, String>{};
|
||||||
|
final formParams = <String, String>{};
|
||||||
|
|
||||||
|
queryParams.addAll(_queryParams('', 'lat', lat));
|
||||||
|
queryParams.addAll(_queryParams('', 'lon', lon));
|
||||||
|
|
||||||
|
const contentTypes = <String>[];
|
||||||
|
|
||||||
|
|
||||||
|
return apiClient.invokeAPI(
|
||||||
|
path,
|
||||||
|
'GET',
|
||||||
|
queryParams,
|
||||||
|
postBody,
|
||||||
|
headerParams,
|
||||||
|
formParams,
|
||||||
|
contentTypes.isEmpty ? null : contentTypes.first,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Parameters:
|
||||||
|
///
|
||||||
|
/// * [double] lat (required):
|
||||||
|
///
|
||||||
|
/// * [double] lon (required):
|
||||||
|
Future<List<MapReverseGeocodeResponseDto>?> reverseGeocode(double lat, double lon,) async {
|
||||||
|
final response = await reverseGeocodeWithHttpInfo(lat, lon,);
|
||||||
|
if (response.statusCode >= HttpStatus.badRequest) {
|
||||||
|
throw ApiException(response.statusCode, await _decodeBodyBytes(response));
|
||||||
|
}
|
||||||
|
// When a remote server returns no body with a status of 204, we shall not decode it.
|
||||||
|
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
|
||||||
|
// FormatException when trying to decode an empty string.
|
||||||
|
if (response.body.isNotEmpty && response.statusCode != HttpStatus.noContent) {
|
||||||
|
final responseBody = await _decodeBodyBytes(response);
|
||||||
|
return (await apiClient.deserializeAsync(responseBody, 'List<MapReverseGeocodeResponseDto>') as List)
|
||||||
|
.cast<MapReverseGeocodeResponseDto>()
|
||||||
|
.toList(growable: false);
|
||||||
|
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
15
mobile/openapi/lib/api/search_api.dart
generated
15
mobile/openapi/lib/api/search_api.dart
generated
@@ -111,12 +111,15 @@ class SearchApi {
|
|||||||
///
|
///
|
||||||
/// * [String] country:
|
/// * [String] country:
|
||||||
///
|
///
|
||||||
|
/// * [bool] includeNull:
|
||||||
|
/// This property was added in v111.0.0
|
||||||
|
///
|
||||||
/// * [String] make:
|
/// * [String] make:
|
||||||
///
|
///
|
||||||
/// * [String] model:
|
/// * [String] model:
|
||||||
///
|
///
|
||||||
/// * [String] state:
|
/// * [String] state:
|
||||||
Future<Response> getSearchSuggestionsWithHttpInfo(SearchSuggestionType type, { String? country, String? make, String? model, String? state, }) async {
|
Future<Response> getSearchSuggestionsWithHttpInfo(SearchSuggestionType type, { String? country, bool? includeNull, String? make, String? model, String? state, }) async {
|
||||||
// ignore: prefer_const_declarations
|
// ignore: prefer_const_declarations
|
||||||
final path = r'/search/suggestions';
|
final path = r'/search/suggestions';
|
||||||
|
|
||||||
@@ -130,6 +133,9 @@ class SearchApi {
|
|||||||
if (country != null) {
|
if (country != null) {
|
||||||
queryParams.addAll(_queryParams('', 'country', country));
|
queryParams.addAll(_queryParams('', 'country', country));
|
||||||
}
|
}
|
||||||
|
if (includeNull != null) {
|
||||||
|
queryParams.addAll(_queryParams('', 'includeNull', includeNull));
|
||||||
|
}
|
||||||
if (make != null) {
|
if (make != null) {
|
||||||
queryParams.addAll(_queryParams('', 'make', make));
|
queryParams.addAll(_queryParams('', 'make', make));
|
||||||
}
|
}
|
||||||
@@ -161,13 +167,16 @@ class SearchApi {
|
|||||||
///
|
///
|
||||||
/// * [String] country:
|
/// * [String] country:
|
||||||
///
|
///
|
||||||
|
/// * [bool] includeNull:
|
||||||
|
/// This property was added in v111.0.0
|
||||||
|
///
|
||||||
/// * [String] make:
|
/// * [String] make:
|
||||||
///
|
///
|
||||||
/// * [String] model:
|
/// * [String] model:
|
||||||
///
|
///
|
||||||
/// * [String] state:
|
/// * [String] state:
|
||||||
Future<List<String>?> getSearchSuggestions(SearchSuggestionType type, { String? country, String? make, String? model, String? state, }) async {
|
Future<List<String>?> getSearchSuggestions(SearchSuggestionType type, { String? country, bool? includeNull, String? make, String? model, String? state, }) async {
|
||||||
final response = await getSearchSuggestionsWithHttpInfo(type, country: country, make: make, model: model, state: state, );
|
final response = await getSearchSuggestionsWithHttpInfo(type, country: country, includeNull: includeNull, make: make, model: model, state: state, );
|
||||||
if (response.statusCode >= HttpStatus.badRequest) {
|
if (response.statusCode >= HttpStatus.badRequest) {
|
||||||
throw ApiException(response.statusCode, await _decodeBodyBytes(response));
|
throw ApiException(response.statusCode, await _decodeBodyBytes(response));
|
||||||
}
|
}
|
||||||
|
|||||||
2
mobile/openapi/lib/api_client.dart
generated
2
mobile/openapi/lib/api_client.dart
generated
@@ -362,6 +362,8 @@ class ApiClient {
|
|||||||
return LogoutResponseDto.fromJson(value);
|
return LogoutResponseDto.fromJson(value);
|
||||||
case 'MapMarkerResponseDto':
|
case 'MapMarkerResponseDto':
|
||||||
return MapMarkerResponseDto.fromJson(value);
|
return MapMarkerResponseDto.fromJson(value);
|
||||||
|
case 'MapReverseGeocodeResponseDto':
|
||||||
|
return MapReverseGeocodeResponseDto.fromJson(value);
|
||||||
case 'MapTheme':
|
case 'MapTheme':
|
||||||
return MapThemeTypeTransformer().decode(value);
|
return MapThemeTypeTransformer().decode(value);
|
||||||
case 'MemoryCreateDto':
|
case 'MemoryCreateDto':
|
||||||
|
|||||||
78
mobile/openapi/lib/model/activity_response_dto.dart
generated
78
mobile/openapi/lib/model/activity_response_dto.dart
generated
@@ -29,7 +29,7 @@ class ActivityResponseDto {
|
|||||||
|
|
||||||
String id;
|
String id;
|
||||||
|
|
||||||
ActivityResponseDtoTypeEnum type;
|
ReactionType type;
|
||||||
|
|
||||||
UserResponseDto user;
|
UserResponseDto user;
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ class ActivityResponseDto {
|
|||||||
comment: mapValueOfType<String>(json, r'comment'),
|
comment: mapValueOfType<String>(json, r'comment'),
|
||||||
createdAt: mapDateTime(json, r'createdAt', r'')!,
|
createdAt: mapDateTime(json, r'createdAt', r'')!,
|
||||||
id: mapValueOfType<String>(json, r'id')!,
|
id: mapValueOfType<String>(json, r'id')!,
|
||||||
type: ActivityResponseDtoTypeEnum.fromJson(json[r'type'])!,
|
type: ReactionType.fromJson(json[r'type'])!,
|
||||||
user: UserResponseDto.fromJson(json[r'user'])!,
|
user: UserResponseDto.fromJson(json[r'user'])!,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -143,77 +143,3 @@ class ActivityResponseDto {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class ActivityResponseDtoTypeEnum {
|
|
||||||
/// Instantiate a new enum with the provided [value].
|
|
||||||
const ActivityResponseDtoTypeEnum._(this.value);
|
|
||||||
|
|
||||||
/// The underlying value of this enum member.
|
|
||||||
final String value;
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toString() => value;
|
|
||||||
|
|
||||||
String toJson() => value;
|
|
||||||
|
|
||||||
static const comment = ActivityResponseDtoTypeEnum._(r'comment');
|
|
||||||
static const like = ActivityResponseDtoTypeEnum._(r'like');
|
|
||||||
|
|
||||||
/// List of all possible values in this [enum][ActivityResponseDtoTypeEnum].
|
|
||||||
static const values = <ActivityResponseDtoTypeEnum>[
|
|
||||||
comment,
|
|
||||||
like,
|
|
||||||
];
|
|
||||||
|
|
||||||
static ActivityResponseDtoTypeEnum? fromJson(dynamic value) => ActivityResponseDtoTypeEnumTypeTransformer().decode(value);
|
|
||||||
|
|
||||||
static List<ActivityResponseDtoTypeEnum> listFromJson(dynamic json, {bool growable = false,}) {
|
|
||||||
final result = <ActivityResponseDtoTypeEnum>[];
|
|
||||||
if (json is List && json.isNotEmpty) {
|
|
||||||
for (final row in json) {
|
|
||||||
final value = ActivityResponseDtoTypeEnum.fromJson(row);
|
|
||||||
if (value != null) {
|
|
||||||
result.add(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result.toList(growable: growable);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Transformation class that can [encode] an instance of [ActivityResponseDtoTypeEnum] to String,
|
|
||||||
/// and [decode] dynamic data back to [ActivityResponseDtoTypeEnum].
|
|
||||||
class ActivityResponseDtoTypeEnumTypeTransformer {
|
|
||||||
factory ActivityResponseDtoTypeEnumTypeTransformer() => _instance ??= const ActivityResponseDtoTypeEnumTypeTransformer._();
|
|
||||||
|
|
||||||
const ActivityResponseDtoTypeEnumTypeTransformer._();
|
|
||||||
|
|
||||||
String encode(ActivityResponseDtoTypeEnum data) => data.value;
|
|
||||||
|
|
||||||
/// Decodes a [dynamic value][data] to a ActivityResponseDtoTypeEnum.
|
|
||||||
///
|
|
||||||
/// If [allowNull] is true and the [dynamic value][data] cannot be decoded successfully,
|
|
||||||
/// then null is returned. However, if [allowNull] is false and the [dynamic value][data]
|
|
||||||
/// cannot be decoded successfully, then an [UnimplementedError] is thrown.
|
|
||||||
///
|
|
||||||
/// The [allowNull] is very handy when an API changes and a new enum value is added or removed,
|
|
||||||
/// and users are still using an old app with the old code.
|
|
||||||
ActivityResponseDtoTypeEnum? decode(dynamic data, {bool allowNull = true}) {
|
|
||||||
if (data != null) {
|
|
||||||
switch (data) {
|
|
||||||
case r'comment': return ActivityResponseDtoTypeEnum.comment;
|
|
||||||
case r'like': return ActivityResponseDtoTypeEnum.like;
|
|
||||||
default:
|
|
||||||
if (!allowNull) {
|
|
||||||
throw ArgumentError('Unknown enum value to decode: $data');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Singleton [ActivityResponseDtoTypeEnumTypeTransformer] instance.
|
|
||||||
static ActivityResponseDtoTypeEnumTypeTransformer? _instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
126
mobile/openapi/lib/model/map_reverse_geocode_response_dto.dart
generated
Normal file
126
mobile/openapi/lib/model/map_reverse_geocode_response_dto.dart
generated
Normal file
@@ -0,0 +1,126 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class MapReverseGeocodeResponseDto {
|
||||||
|
/// Returns a new [MapReverseGeocodeResponseDto] instance.
|
||||||
|
MapReverseGeocodeResponseDto({
|
||||||
|
required this.city,
|
||||||
|
required this.country,
|
||||||
|
required this.state,
|
||||||
|
});
|
||||||
|
|
||||||
|
String? city;
|
||||||
|
|
||||||
|
String? country;
|
||||||
|
|
||||||
|
String? state;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) => identical(this, other) || other is MapReverseGeocodeResponseDto &&
|
||||||
|
other.city == city &&
|
||||||
|
other.country == country &&
|
||||||
|
other.state == state;
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode =>
|
||||||
|
// ignore: unnecessary_parenthesis
|
||||||
|
(city == null ? 0 : city!.hashCode) +
|
||||||
|
(country == null ? 0 : country!.hashCode) +
|
||||||
|
(state == null ? 0 : state!.hashCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() => 'MapReverseGeocodeResponseDto[city=$city, country=$country, state=$state]';
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final json = <String, dynamic>{};
|
||||||
|
if (this.city != null) {
|
||||||
|
json[r'city'] = this.city;
|
||||||
|
} else {
|
||||||
|
// json[r'city'] = null;
|
||||||
|
}
|
||||||
|
if (this.country != null) {
|
||||||
|
json[r'country'] = this.country;
|
||||||
|
} else {
|
||||||
|
// json[r'country'] = null;
|
||||||
|
}
|
||||||
|
if (this.state != null) {
|
||||||
|
json[r'state'] = this.state;
|
||||||
|
} else {
|
||||||
|
// json[r'state'] = null;
|
||||||
|
}
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a new [MapReverseGeocodeResponseDto] instance and imports its values from
|
||||||
|
/// [value] if it's a [Map], null otherwise.
|
||||||
|
// ignore: prefer_constructors_over_static_methods
|
||||||
|
static MapReverseGeocodeResponseDto? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
|
||||||
|
return MapReverseGeocodeResponseDto(
|
||||||
|
city: mapValueOfType<String>(json, r'city'),
|
||||||
|
country: mapValueOfType<String>(json, r'country'),
|
||||||
|
state: mapValueOfType<String>(json, r'state'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<MapReverseGeocodeResponseDto> listFromJson(dynamic json, {bool growable = false,}) {
|
||||||
|
final result = <MapReverseGeocodeResponseDto>[];
|
||||||
|
if (json is List && json.isNotEmpty) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = MapReverseGeocodeResponseDto.fromJson(row);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toList(growable: growable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Map<String, MapReverseGeocodeResponseDto> mapFromJson(dynamic json) {
|
||||||
|
final map = <String, MapReverseGeocodeResponseDto>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
final value = MapReverseGeocodeResponseDto.fromJson(entry.value);
|
||||||
|
if (value != null) {
|
||||||
|
map[entry.key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// maps a json object with a list of MapReverseGeocodeResponseDto-objects as value to a dart map
|
||||||
|
static Map<String, List<MapReverseGeocodeResponseDto>> mapListFromJson(dynamic json, {bool growable = false,}) {
|
||||||
|
final map = <String, List<MapReverseGeocodeResponseDto>>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
// ignore: parameter_assignments
|
||||||
|
json = json.cast<String, dynamic>();
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
map[entry.key] = MapReverseGeocodeResponseDto.listFromJson(entry.value, growable: growable,);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{
|
||||||
|
'city',
|
||||||
|
'country',
|
||||||
|
'state',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
75
mobile/openapi/lib/model/memory_response_dto.dart
generated
75
mobile/openapi/lib/model/memory_response_dto.dart
generated
@@ -56,7 +56,7 @@ class MemoryResponseDto {
|
|||||||
///
|
///
|
||||||
DateTime? seenAt;
|
DateTime? seenAt;
|
||||||
|
|
||||||
MemoryResponseDtoTypeEnum type;
|
MemoryType type;
|
||||||
|
|
||||||
DateTime updatedAt;
|
DateTime updatedAt;
|
||||||
|
|
||||||
@@ -133,7 +133,7 @@ class MemoryResponseDto {
|
|||||||
memoryAt: mapDateTime(json, r'memoryAt', r'')!,
|
memoryAt: mapDateTime(json, r'memoryAt', r'')!,
|
||||||
ownerId: mapValueOfType<String>(json, r'ownerId')!,
|
ownerId: mapValueOfType<String>(json, r'ownerId')!,
|
||||||
seenAt: mapDateTime(json, r'seenAt', r''),
|
seenAt: mapDateTime(json, r'seenAt', r''),
|
||||||
type: MemoryResponseDtoTypeEnum.fromJson(json[r'type'])!,
|
type: MemoryType.fromJson(json[r'type'])!,
|
||||||
updatedAt: mapDateTime(json, r'updatedAt', r'')!,
|
updatedAt: mapDateTime(json, r'updatedAt', r'')!,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -194,74 +194,3 @@ class MemoryResponseDto {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class MemoryResponseDtoTypeEnum {
|
|
||||||
/// Instantiate a new enum with the provided [value].
|
|
||||||
const MemoryResponseDtoTypeEnum._(this.value);
|
|
||||||
|
|
||||||
/// The underlying value of this enum member.
|
|
||||||
final String value;
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toString() => value;
|
|
||||||
|
|
||||||
String toJson() => value;
|
|
||||||
|
|
||||||
static const onThisDay = MemoryResponseDtoTypeEnum._(r'on_this_day');
|
|
||||||
|
|
||||||
/// List of all possible values in this [enum][MemoryResponseDtoTypeEnum].
|
|
||||||
static const values = <MemoryResponseDtoTypeEnum>[
|
|
||||||
onThisDay,
|
|
||||||
];
|
|
||||||
|
|
||||||
static MemoryResponseDtoTypeEnum? fromJson(dynamic value) => MemoryResponseDtoTypeEnumTypeTransformer().decode(value);
|
|
||||||
|
|
||||||
static List<MemoryResponseDtoTypeEnum> listFromJson(dynamic json, {bool growable = false,}) {
|
|
||||||
final result = <MemoryResponseDtoTypeEnum>[];
|
|
||||||
if (json is List && json.isNotEmpty) {
|
|
||||||
for (final row in json) {
|
|
||||||
final value = MemoryResponseDtoTypeEnum.fromJson(row);
|
|
||||||
if (value != null) {
|
|
||||||
result.add(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result.toList(growable: growable);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Transformation class that can [encode] an instance of [MemoryResponseDtoTypeEnum] to String,
|
|
||||||
/// and [decode] dynamic data back to [MemoryResponseDtoTypeEnum].
|
|
||||||
class MemoryResponseDtoTypeEnumTypeTransformer {
|
|
||||||
factory MemoryResponseDtoTypeEnumTypeTransformer() => _instance ??= const MemoryResponseDtoTypeEnumTypeTransformer._();
|
|
||||||
|
|
||||||
const MemoryResponseDtoTypeEnumTypeTransformer._();
|
|
||||||
|
|
||||||
String encode(MemoryResponseDtoTypeEnum data) => data.value;
|
|
||||||
|
|
||||||
/// Decodes a [dynamic value][data] to a MemoryResponseDtoTypeEnum.
|
|
||||||
///
|
|
||||||
/// If [allowNull] is true and the [dynamic value][data] cannot be decoded successfully,
|
|
||||||
/// then null is returned. However, if [allowNull] is false and the [dynamic value][data]
|
|
||||||
/// cannot be decoded successfully, then an [UnimplementedError] is thrown.
|
|
||||||
///
|
|
||||||
/// The [allowNull] is very handy when an API changes and a new enum value is added or removed,
|
|
||||||
/// and users are still using an old app with the old code.
|
|
||||||
MemoryResponseDtoTypeEnum? decode(dynamic data, {bool allowNull = true}) {
|
|
||||||
if (data != null) {
|
|
||||||
switch (data) {
|
|
||||||
case r'on_this_day': return MemoryResponseDtoTypeEnum.onThisDay;
|
|
||||||
default:
|
|
||||||
if (!allowNull) {
|
|
||||||
throw ArgumentError('Unknown enum value to decode: $data');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Singleton [MemoryResponseDtoTypeEnumTypeTransformer] instance.
|
|
||||||
static MemoryResponseDtoTypeEnumTypeTransformer? _instance;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
30
mobile/openapi/lib/model/metadata_search_dto.dart
generated
30
mobile/openapi/lib/model/metadata_search_dto.dart
generated
@@ -64,20 +64,8 @@ class MetadataSearchDto {
|
|||||||
///
|
///
|
||||||
String? checksum;
|
String? checksum;
|
||||||
|
|
||||||
///
|
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
|
||||||
/// source code must fall back to having a nullable type.
|
|
||||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
||||||
///
|
|
||||||
String? city;
|
String? city;
|
||||||
|
|
||||||
///
|
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
|
||||||
/// source code must fall back to having a nullable type.
|
|
||||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
||||||
///
|
|
||||||
String? country;
|
String? country;
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -184,12 +172,6 @@ class MetadataSearchDto {
|
|||||||
///
|
///
|
||||||
bool? isVisible;
|
bool? isVisible;
|
||||||
|
|
||||||
///
|
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
|
||||||
/// source code must fall back to having a nullable type.
|
|
||||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
||||||
///
|
|
||||||
String? lensModel;
|
String? lensModel;
|
||||||
|
|
||||||
String? libraryId;
|
String? libraryId;
|
||||||
@@ -202,12 +184,6 @@ class MetadataSearchDto {
|
|||||||
///
|
///
|
||||||
String? make;
|
String? make;
|
||||||
|
|
||||||
///
|
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
|
||||||
/// source code must fall back to having a nullable type.
|
|
||||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
||||||
///
|
|
||||||
String? model;
|
String? model;
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -263,12 +239,6 @@ class MetadataSearchDto {
|
|||||||
///
|
///
|
||||||
num? size;
|
num? size;
|
||||||
|
|
||||||
///
|
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
|
||||||
/// source code must fall back to having a nullable type.
|
|
||||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
||||||
///
|
|
||||||
String? state;
|
String? state;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
|||||||
30
mobile/openapi/lib/model/smart_search_dto.dart
generated
30
mobile/openapi/lib/model/smart_search_dto.dart
generated
@@ -46,20 +46,8 @@ class SmartSearchDto {
|
|||||||
this.withExif,
|
this.withExif,
|
||||||
});
|
});
|
||||||
|
|
||||||
///
|
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
|
||||||
/// source code must fall back to having a nullable type.
|
|
||||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
||||||
///
|
|
||||||
String? city;
|
String? city;
|
||||||
|
|
||||||
///
|
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
|
||||||
/// source code must fall back to having a nullable type.
|
|
||||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
||||||
///
|
|
||||||
String? country;
|
String? country;
|
||||||
|
|
||||||
///
|
///
|
||||||
@@ -142,12 +130,6 @@ class SmartSearchDto {
|
|||||||
///
|
///
|
||||||
bool? isVisible;
|
bool? isVisible;
|
||||||
|
|
||||||
///
|
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
|
||||||
/// source code must fall back to having a nullable type.
|
|
||||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
||||||
///
|
|
||||||
String? lensModel;
|
String? lensModel;
|
||||||
|
|
||||||
String? libraryId;
|
String? libraryId;
|
||||||
@@ -160,12 +142,6 @@ class SmartSearchDto {
|
|||||||
///
|
///
|
||||||
String? make;
|
String? make;
|
||||||
|
|
||||||
///
|
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
|
||||||
/// source code must fall back to having a nullable type.
|
|
||||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
||||||
///
|
|
||||||
String? model;
|
String? model;
|
||||||
|
|
||||||
/// Minimum value: 1
|
/// Minimum value: 1
|
||||||
@@ -191,12 +167,6 @@ class SmartSearchDto {
|
|||||||
///
|
///
|
||||||
num? size;
|
num? size;
|
||||||
|
|
||||||
///
|
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
|
||||||
/// source code must fall back to having a nullable type.
|
|
||||||
/// Consider adding a "default:" property in the specification file to hide this note.
|
|
||||||
///
|
|
||||||
String? state;
|
String? state;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ name: immich_mobile
|
|||||||
description: Immich - selfhosted backup media file on mobile phone
|
description: Immich - selfhosted backup media file on mobile phone
|
||||||
|
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
version: 1.110.0+151
|
version: 1.111.0+152
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.3.0 <4.0.0'
|
sdk: '>=3.3.0 <4.0.0'
|
||||||
|
|||||||
@@ -3109,6 +3109,60 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"/map/reverse-geocode": {
|
||||||
|
"get": {
|
||||||
|
"operationId": "reverseGeocode",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"name": "lat",
|
||||||
|
"required": true,
|
||||||
|
"in": "query",
|
||||||
|
"schema": {
|
||||||
|
"format": "double",
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "lon",
|
||||||
|
"required": true,
|
||||||
|
"in": "query",
|
||||||
|
"schema": {
|
||||||
|
"format": "double",
|
||||||
|
"type": "number"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"content": {
|
||||||
|
"application/json": {
|
||||||
|
"schema": {
|
||||||
|
"items": {
|
||||||
|
"$ref": "#/components/schemas/MapReverseGeocodeResponseDto"
|
||||||
|
},
|
||||||
|
"type": "array"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"description": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"security": [
|
||||||
|
{
|
||||||
|
"bearer": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cookie": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"api_key": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"Map"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
"/map/style.json": {
|
"/map/style.json": {
|
||||||
"get": {
|
"get": {
|
||||||
"operationId": "getMapStyle",
|
"operationId": "getMapStyle",
|
||||||
@@ -4673,6 +4727,15 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "includeNull",
|
||||||
|
"required": false,
|
||||||
|
"in": "query",
|
||||||
|
"description": "This property was added in v111.0.0",
|
||||||
|
"schema": {
|
||||||
|
"type": "boolean"
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "make",
|
"name": "make",
|
||||||
"required": false,
|
"required": false,
|
||||||
@@ -7033,7 +7096,7 @@
|
|||||||
"info": {
|
"info": {
|
||||||
"title": "Immich",
|
"title": "Immich",
|
||||||
"description": "Immich API",
|
"description": "Immich API",
|
||||||
"version": "1.110.0",
|
"version": "1.111.0",
|
||||||
"contact": {}
|
"contact": {}
|
||||||
},
|
},
|
||||||
"tags": [],
|
"tags": [],
|
||||||
@@ -7162,11 +7225,7 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"type": {
|
"type": {
|
||||||
"enum": [
|
"$ref": "#/components/schemas/ReactionType"
|
||||||
"comment",
|
|
||||||
"like"
|
|
||||||
],
|
|
||||||
"type": "string"
|
|
||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"$ref": "#/components/schemas/UserResponseDto"
|
"$ref": "#/components/schemas/UserResponseDto"
|
||||||
@@ -9128,6 +9187,28 @@
|
|||||||
],
|
],
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"MapReverseGeocodeResponseDto": {
|
||||||
|
"properties": {
|
||||||
|
"city": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"country": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"state": {
|
||||||
|
"nullable": true,
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"city",
|
||||||
|
"country",
|
||||||
|
"state"
|
||||||
|
],
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"MapTheme": {
|
"MapTheme": {
|
||||||
"enum": [
|
"enum": [
|
||||||
"light",
|
"light",
|
||||||
@@ -9235,10 +9316,7 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"type": {
|
"type": {
|
||||||
"enum": [
|
"$ref": "#/components/schemas/MemoryType"
|
||||||
"on_this_day"
|
|
||||||
],
|
|
||||||
"type": "string"
|
|
||||||
},
|
},
|
||||||
"updatedAt": {
|
"updatedAt": {
|
||||||
"format": "date-time",
|
"format": "date-time",
|
||||||
@@ -9309,9 +9387,11 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"city": {
|
"city": {
|
||||||
|
"nullable": true,
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"country": {
|
"country": {
|
||||||
|
"nullable": true,
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"createdAfter": {
|
"createdAfter": {
|
||||||
@@ -9357,6 +9437,7 @@
|
|||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"lensModel": {
|
"lensModel": {
|
||||||
|
"nullable": true,
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"libraryId": {
|
"libraryId": {
|
||||||
@@ -9368,6 +9449,7 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"model": {
|
"model": {
|
||||||
|
"nullable": true,
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"order": {
|
"order": {
|
||||||
@@ -9399,6 +9481,7 @@
|
|||||||
"type": "number"
|
"type": "number"
|
||||||
},
|
},
|
||||||
"state": {
|
"state": {
|
||||||
|
"nullable": true,
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"takenAfter": {
|
"takenAfter": {
|
||||||
@@ -10542,9 +10625,11 @@
|
|||||||
"SmartSearchDto": {
|
"SmartSearchDto": {
|
||||||
"properties": {
|
"properties": {
|
||||||
"city": {
|
"city": {
|
||||||
|
"nullable": true,
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"country": {
|
"country": {
|
||||||
|
"nullable": true,
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"createdAfter": {
|
"createdAfter": {
|
||||||
@@ -10580,6 +10665,7 @@
|
|||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"lensModel": {
|
"lensModel": {
|
||||||
|
"nullable": true,
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"libraryId": {
|
"libraryId": {
|
||||||
@@ -10591,6 +10677,7 @@
|
|||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"model": {
|
"model": {
|
||||||
|
"nullable": true,
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"page": {
|
"page": {
|
||||||
@@ -10613,6 +10700,7 @@
|
|||||||
"type": "number"
|
"type": "number"
|
||||||
},
|
},
|
||||||
"state": {
|
"state": {
|
||||||
|
"nullable": true,
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"takenAfter": {
|
"takenAfter": {
|
||||||
|
|||||||
10
open-api/typescript-sdk/package-lock.json
generated
10
open-api/typescript-sdk/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@immich/sdk",
|
"name": "@immich/sdk",
|
||||||
"version": "1.110.0",
|
"version": "1.111.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@immich/sdk",
|
"name": "@immich/sdk",
|
||||||
"version": "1.110.0",
|
"version": "1.111.0",
|
||||||
"license": "GNU Affero General Public License version 3",
|
"license": "GNU Affero General Public License version 3",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@oazapfts/runtime": "^1.0.2"
|
"@oazapfts/runtime": "^1.0.2"
|
||||||
@@ -32,9 +32,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "5.5.3",
|
"version": "5.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz",
|
||||||
"integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
|
"integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@immich/sdk",
|
"name": "@immich/sdk",
|
||||||
"version": "1.110.0",
|
"version": "1.111.0",
|
||||||
"description": "Auto-generated TypeScript SDK for the Immich API",
|
"description": "Auto-generated TypeScript SDK for the Immich API",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./build/index.js",
|
"main": "./build/index.js",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* Immich
|
* Immich
|
||||||
* 1.110.0
|
* 1.111.0
|
||||||
* DO NOT MODIFY - This file has been generated using oazapfts.
|
* DO NOT MODIFY - This file has been generated using oazapfts.
|
||||||
* See https://www.npmjs.com/package/oazapfts
|
* See https://www.npmjs.com/package/oazapfts
|
||||||
*/
|
*/
|
||||||
@@ -26,7 +26,7 @@ export type ActivityResponseDto = {
|
|||||||
comment?: string | null;
|
comment?: string | null;
|
||||||
createdAt: string;
|
createdAt: string;
|
||||||
id: string;
|
id: string;
|
||||||
"type": Type;
|
"type": ReactionType;
|
||||||
user: UserResponseDto;
|
user: UserResponseDto;
|
||||||
};
|
};
|
||||||
export type ActivityCreateDto = {
|
export type ActivityCreateDto = {
|
||||||
@@ -554,6 +554,11 @@ export type MapMarkerResponseDto = {
|
|||||||
lon: number;
|
lon: number;
|
||||||
state: string | null;
|
state: string | null;
|
||||||
};
|
};
|
||||||
|
export type MapReverseGeocodeResponseDto = {
|
||||||
|
city: string | null;
|
||||||
|
country: string | null;
|
||||||
|
state: string | null;
|
||||||
|
};
|
||||||
export type OnThisDayDto = {
|
export type OnThisDayDto = {
|
||||||
year: number;
|
year: number;
|
||||||
};
|
};
|
||||||
@@ -567,7 +572,7 @@ export type MemoryResponseDto = {
|
|||||||
memoryAt: string;
|
memoryAt: string;
|
||||||
ownerId: string;
|
ownerId: string;
|
||||||
seenAt?: string;
|
seenAt?: string;
|
||||||
"type": Type2;
|
"type": MemoryType;
|
||||||
updatedAt: string;
|
updatedAt: string;
|
||||||
};
|
};
|
||||||
export type MemoryCreateDto = {
|
export type MemoryCreateDto = {
|
||||||
@@ -703,8 +708,8 @@ export type SearchExploreResponseDto = {
|
|||||||
};
|
};
|
||||||
export type MetadataSearchDto = {
|
export type MetadataSearchDto = {
|
||||||
checksum?: string;
|
checksum?: string;
|
||||||
city?: string;
|
city?: string | null;
|
||||||
country?: string;
|
country?: string | null;
|
||||||
createdAfter?: string;
|
createdAfter?: string;
|
||||||
createdBefore?: string;
|
createdBefore?: string;
|
||||||
deviceAssetId?: string;
|
deviceAssetId?: string;
|
||||||
@@ -718,10 +723,10 @@ export type MetadataSearchDto = {
|
|||||||
isNotInAlbum?: boolean;
|
isNotInAlbum?: boolean;
|
||||||
isOffline?: boolean;
|
isOffline?: boolean;
|
||||||
isVisible?: boolean;
|
isVisible?: boolean;
|
||||||
lensModel?: string;
|
lensModel?: string | null;
|
||||||
libraryId?: string | null;
|
libraryId?: string | null;
|
||||||
make?: string;
|
make?: string;
|
||||||
model?: string;
|
model?: string | null;
|
||||||
order?: AssetOrder;
|
order?: AssetOrder;
|
||||||
originalFileName?: string;
|
originalFileName?: string;
|
||||||
originalPath?: string;
|
originalPath?: string;
|
||||||
@@ -729,7 +734,7 @@ export type MetadataSearchDto = {
|
|||||||
personIds?: string[];
|
personIds?: string[];
|
||||||
previewPath?: string;
|
previewPath?: string;
|
||||||
size?: number;
|
size?: number;
|
||||||
state?: string;
|
state?: string | null;
|
||||||
takenAfter?: string;
|
takenAfter?: string;
|
||||||
takenBefore?: string;
|
takenBefore?: string;
|
||||||
thumbnailPath?: string;
|
thumbnailPath?: string;
|
||||||
@@ -777,8 +782,8 @@ export type PlacesResponseDto = {
|
|||||||
name: string;
|
name: string;
|
||||||
};
|
};
|
||||||
export type SmartSearchDto = {
|
export type SmartSearchDto = {
|
||||||
city?: string;
|
city?: string | null;
|
||||||
country?: string;
|
country?: string | null;
|
||||||
createdAfter?: string;
|
createdAfter?: string;
|
||||||
createdBefore?: string;
|
createdBefore?: string;
|
||||||
deviceId?: string;
|
deviceId?: string;
|
||||||
@@ -789,15 +794,15 @@ export type SmartSearchDto = {
|
|||||||
isNotInAlbum?: boolean;
|
isNotInAlbum?: boolean;
|
||||||
isOffline?: boolean;
|
isOffline?: boolean;
|
||||||
isVisible?: boolean;
|
isVisible?: boolean;
|
||||||
lensModel?: string;
|
lensModel?: string | null;
|
||||||
libraryId?: string | null;
|
libraryId?: string | null;
|
||||||
make?: string;
|
make?: string;
|
||||||
model?: string;
|
model?: string | null;
|
||||||
page?: number;
|
page?: number;
|
||||||
personIds?: string[];
|
personIds?: string[];
|
||||||
query: string;
|
query: string;
|
||||||
size?: number;
|
size?: number;
|
||||||
state?: string;
|
state?: string | null;
|
||||||
takenAfter?: string;
|
takenAfter?: string;
|
||||||
takenBefore?: string;
|
takenBefore?: string;
|
||||||
trashedAfter?: string;
|
trashedAfter?: string;
|
||||||
@@ -1991,6 +1996,20 @@ export function getMapMarkers({ fileCreatedAfter, fileCreatedBefore, isArchived,
|
|||||||
...opts
|
...opts
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
export function reverseGeocode({ lat, lon }: {
|
||||||
|
lat: number;
|
||||||
|
lon: number;
|
||||||
|
}, opts?: Oazapfts.RequestOpts) {
|
||||||
|
return oazapfts.ok(oazapfts.fetchJson<{
|
||||||
|
status: 200;
|
||||||
|
data: MapReverseGeocodeResponseDto[];
|
||||||
|
}>(`/map/reverse-geocode${QS.query(QS.explode({
|
||||||
|
lat,
|
||||||
|
lon
|
||||||
|
}))}`, {
|
||||||
|
...opts
|
||||||
|
}));
|
||||||
|
}
|
||||||
export function getMapStyle({ key, theme }: {
|
export function getMapStyle({ key, theme }: {
|
||||||
key?: string;
|
key?: string;
|
||||||
theme: MapTheme;
|
theme: MapTheme;
|
||||||
@@ -2399,8 +2418,9 @@ export function searchSmart({ smartSearchDto }: {
|
|||||||
body: smartSearchDto
|
body: smartSearchDto
|
||||||
})));
|
})));
|
||||||
}
|
}
|
||||||
export function getSearchSuggestions({ country, make, model, state, $type }: {
|
export function getSearchSuggestions({ country, includeNull, make, model, state, $type }: {
|
||||||
country?: string;
|
country?: string;
|
||||||
|
includeNull?: boolean;
|
||||||
make?: string;
|
make?: string;
|
||||||
model?: string;
|
model?: string;
|
||||||
state?: string;
|
state?: string;
|
||||||
@@ -2411,6 +2431,7 @@ export function getSearchSuggestions({ country, make, model, state, $type }: {
|
|||||||
data: string[];
|
data: string[];
|
||||||
}>(`/search/suggestions${QS.query(QS.explode({
|
}>(`/search/suggestions${QS.query(QS.explode({
|
||||||
country,
|
country,
|
||||||
|
includeNull,
|
||||||
make,
|
make,
|
||||||
model,
|
model,
|
||||||
state,
|
state,
|
||||||
@@ -3046,10 +3067,6 @@ export enum ReactionType {
|
|||||||
Comment = "comment",
|
Comment = "comment",
|
||||||
Like = "like"
|
Like = "like"
|
||||||
}
|
}
|
||||||
export enum Type {
|
|
||||||
Comment = "comment",
|
|
||||||
Like = "like"
|
|
||||||
}
|
|
||||||
export enum UserAvatarColor {
|
export enum UserAvatarColor {
|
||||||
Primary = "primary",
|
Primary = "primary",
|
||||||
Pink = "pink",
|
Pink = "pink",
|
||||||
@@ -3145,9 +3162,6 @@ export enum MapTheme {
|
|||||||
Light = "light",
|
Light = "light",
|
||||||
Dark = "dark"
|
Dark = "dark"
|
||||||
}
|
}
|
||||||
export enum Type2 {
|
|
||||||
OnThisDay = "on_this_day"
|
|
||||||
}
|
|
||||||
export enum MemoryType {
|
export enum MemoryType {
|
||||||
OnThisDay = "on_this_day"
|
OnThisDay = "on_this_day"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# dev build
|
# dev build
|
||||||
FROM ghcr.io/immich-app/base-server-dev:20240723@sha256:78ecd6ffa8808fab3e4062840f814633c296cb0ec98c4cb8f98b302088f3ea64 as dev
|
FROM ghcr.io/immich-app/base-server-dev:20240730@sha256:3e03f236d7669d0b27fbd49bc617df69fbb719cec2310a1c7ed8291236648c22 as dev
|
||||||
|
|
||||||
RUN apt-get install --no-install-recommends -yqq tini
|
RUN apt-get install --no-install-recommends -yqq tini
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
@@ -25,7 +25,7 @@ COPY --from=dev /usr/src/app/node_modules/@img ./node_modules/@img
|
|||||||
COPY --from=dev /usr/src/app/node_modules/exiftool-vendored.pl ./node_modules/exiftool-vendored.pl
|
COPY --from=dev /usr/src/app/node_modules/exiftool-vendored.pl ./node_modules/exiftool-vendored.pl
|
||||||
|
|
||||||
# web build
|
# web build
|
||||||
FROM node:20.16.0-alpine3.20@sha256:aada767bf3e4b4a1437642b81db7d8bb99a6dba27627088e4608772f1f02ebc0 as web
|
FROM node:20.16.0-alpine3.20@sha256:eb8101caae9ac02229bd64c024919fe3d4504ff7f329da79ca60a04db08cef52 as web
|
||||||
|
|
||||||
WORKDIR /usr/src/open-api/typescript-sdk
|
WORKDIR /usr/src/open-api/typescript-sdk
|
||||||
COPY open-api/typescript-sdk/package*.json open-api/typescript-sdk/tsconfig*.json ./
|
COPY open-api/typescript-sdk/package*.json open-api/typescript-sdk/tsconfig*.json ./
|
||||||
@@ -41,7 +41,7 @@ RUN npm run build
|
|||||||
|
|
||||||
|
|
||||||
# prod build
|
# prod build
|
||||||
FROM ghcr.io/immich-app/base-server-prod:20240723@sha256:6f687ab6d8ba5ca4b134bdc3f1538dfe7de7d32bebb3939fbf46fa592609a554
|
FROM ghcr.io/immich-app/base-server-prod:20240730@sha256:40efde970c4dfb1ace5a10211b8ca1b5f04bff5da4b7537c9f76a0454a05f47d
|
||||||
|
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/app
|
||||||
ENV NODE_ENV=production \
|
ENV NODE_ENV=production \
|
||||||
|
|||||||
2835
server/package-lock.json
generated
2835
server/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user