Merge branch 'main' of github.com:immich-app/immich into feat/mobile-delete-local-only
1
.github/workflows/test.yml
vendored
|
@ -166,7 +166,6 @@ jobs:
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
poetry install --with dev
|
poetry install --with dev
|
||||||
poetry run pip install --no-deps -r requirements.txt
|
|
||||||
- name: Lint with ruff
|
- name: Lint with ruff
|
||||||
run: |
|
run: |
|
||||||
poetry run ruff check --format=github app
|
poetry run ruff check --format=github app
|
||||||
|
|
2
Makefile
|
@ -2,7 +2,7 @@ dev:
|
||||||
docker-compose -f ./docker/docker-compose.dev.yml up --remove-orphans
|
docker-compose -f ./docker/docker-compose.dev.yml up --remove-orphans
|
||||||
|
|
||||||
dev-new:
|
dev-new:
|
||||||
docker compose -f ./docker/docker-compose.dev.yml up --remove-orphans
|
docker compose -f ./docker/docker-compose.dev.yml up --remove-orphans || make dev-down
|
||||||
|
|
||||||
dev-down:
|
dev-down:
|
||||||
docker compose -f ./docker/docker-compose.dev.yml down --remove-orphans
|
docker compose -f ./docker/docker-compose.dev.yml down --remove-orphans
|
||||||
|
|
11
README.md
|
@ -66,7 +66,7 @@ password: demo
|
||||||
Spec: Free-tier Oracle VM - Amsterdam - 2.4Ghz quad-core ARM64 CPU, 24GB RAM
|
Spec: Free-tier Oracle VM - Amsterdam - 2.4Ghz quad-core ARM64 CPU, 24GB RAM
|
||||||
```
|
```
|
||||||
|
|
||||||
# Features
|
## Features
|
||||||
|
|
||||||
| Features | Mobile | Web |
|
| Features | Mobile | Web |
|
||||||
| -------------------------------------------- | ------ | --- |
|
| -------------------------------------------- | ------ | --- |
|
||||||
|
@ -96,7 +96,7 @@ Spec: Free-tier Oracle VM - Amsterdam - 2.4Ghz quad-core ARM64 CPU, 24GB RAM
|
||||||
| Offline support | Yes | No |
|
| Offline support | Yes | No |
|
||||||
| Read-only gallery | Yes | Yes |
|
| Read-only gallery | Yes | Yes |
|
||||||
|
|
||||||
# Support the project
|
## Support the project
|
||||||
|
|
||||||
I've committed to this project, and I will not stop. I will keep updating the docs, adding new features, and fixing bugs. But I can't do it alone. So I need your help to give me additional motivation to keep going.
|
I've committed to this project, and I will not stop. I will keep updating the docs, adding new features, and fixing bugs. But I can't do it alone. So I need your help to give me additional motivation to keep going.
|
||||||
|
|
||||||
|
@ -104,10 +104,15 @@ As our hosts in the [selfhosted.show - In the episode 'The-organization-must-not
|
||||||
|
|
||||||
If you feel like this is the right cause and the app is something you are seeing yourself using for a long time, please consider supporting the project with the option below.
|
If you feel like this is the right cause and the app is something you are seeing yourself using for a long time, please consider supporting the project with the option below.
|
||||||
|
|
||||||
## Donation
|
### Donation
|
||||||
|
|
||||||
- [Monthly donation](https://github.com/sponsors/alextran1502) via GitHub Sponsors
|
- [Monthly donation](https://github.com/sponsors/alextran1502) via GitHub Sponsors
|
||||||
- [One-time donation](https://github.com/sponsors/alextran1502?frequency=one-time&sponsor=alextran1502) via GitHub Sponsors
|
- [One-time donation](https://github.com/sponsors/alextran1502?frequency=one-time&sponsor=alextran1502) via GitHub Sponsors
|
||||||
- [Librepay](https://liberapay.com/alex.tran1502/)
|
- [Librepay](https://liberapay.com/alex.tran1502/)
|
||||||
- [buymeacoffee](https://www.buymeacoffee.com/altran1502)
|
- [buymeacoffee](https://www.buymeacoffee.com/altran1502)
|
||||||
- Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
|
- Bitcoin: 1FvEp6P6NM8EZEkpGUFAN2LqJ1gxusNxZX
|
||||||
|
|
||||||
|
## Contributors
|
||||||
|
<a href="https://github.com/alextran1502/immich/graphs/contributors">
|
||||||
|
<img src="https://contrib.rocks/image?repo=immich-app/immich" width="100%"/>
|
||||||
|
</a>
|
||||||
|
|
579
cli/src/api/open-api/api.ts
generated
|
@ -4,7 +4,7 @@
|
||||||
* Immich
|
* Immich
|
||||||
* Immich API
|
* Immich API
|
||||||
*
|
*
|
||||||
* The version of the OpenAPI document: 1.82.1
|
* The version of the OpenAPI document: 1.83.0
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
@ -771,7 +771,7 @@ export interface AssetResponseDto {
|
||||||
* @type {number}
|
* @type {number}
|
||||||
* @memberof AssetResponseDto
|
* @memberof AssetResponseDto
|
||||||
*/
|
*/
|
||||||
'stackCount': number;
|
'stackCount': number | null;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {string}
|
* @type {string}
|
||||||
|
@ -1052,44 +1052,6 @@ export interface ChangePasswordDto {
|
||||||
*/
|
*/
|
||||||
'password': string;
|
'password': string;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @export
|
|
||||||
* @interface CheckDuplicateAssetDto
|
|
||||||
*/
|
|
||||||
export interface CheckDuplicateAssetDto {
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {string}
|
|
||||||
* @memberof CheckDuplicateAssetDto
|
|
||||||
*/
|
|
||||||
'deviceAssetId': string;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {string}
|
|
||||||
* @memberof CheckDuplicateAssetDto
|
|
||||||
*/
|
|
||||||
'deviceId': string;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @export
|
|
||||||
* @interface CheckDuplicateAssetResponseDto
|
|
||||||
*/
|
|
||||||
export interface CheckDuplicateAssetResponseDto {
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {string}
|
|
||||||
* @memberof CheckDuplicateAssetResponseDto
|
|
||||||
*/
|
|
||||||
'id'?: string;
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {boolean}
|
|
||||||
* @memberof CheckDuplicateAssetResponseDto
|
|
||||||
*/
|
|
||||||
'isExist': boolean;
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @export
|
* @export
|
||||||
|
@ -2465,6 +2427,19 @@ export interface PersonResponseDto {
|
||||||
*/
|
*/
|
||||||
'thumbnailPath': string;
|
'thumbnailPath': string;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @export
|
||||||
|
* @interface PersonStatisticsResponseDto
|
||||||
|
*/
|
||||||
|
export interface PersonStatisticsResponseDto {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {number}
|
||||||
|
* @memberof PersonStatisticsResponseDto
|
||||||
|
*/
|
||||||
|
'assets': number;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @export
|
* @export
|
||||||
|
@ -2983,6 +2958,19 @@ export interface ServerStatsResponseDto {
|
||||||
*/
|
*/
|
||||||
'videos': number;
|
'videos': number;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @export
|
||||||
|
* @interface ServerThemeDto
|
||||||
|
*/
|
||||||
|
export interface ServerThemeDto {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {string}
|
||||||
|
* @memberof ServerThemeDto
|
||||||
|
*/
|
||||||
|
'customCss': string;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @export
|
* @export
|
||||||
|
@ -3050,6 +3038,12 @@ export interface SharedLinkCreateDto {
|
||||||
* @memberof SharedLinkCreateDto
|
* @memberof SharedLinkCreateDto
|
||||||
*/
|
*/
|
||||||
'expiresAt'?: string | null;
|
'expiresAt'?: string | null;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {string}
|
||||||
|
* @memberof SharedLinkCreateDto
|
||||||
|
*/
|
||||||
|
'password'?: string;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
|
@ -3101,6 +3095,12 @@ export interface SharedLinkEditDto {
|
||||||
* @memberof SharedLinkEditDto
|
* @memberof SharedLinkEditDto
|
||||||
*/
|
*/
|
||||||
'expiresAt'?: string | null;
|
'expiresAt'?: string | null;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {string}
|
||||||
|
* @memberof SharedLinkEditDto
|
||||||
|
*/
|
||||||
|
'password'?: string;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
|
@ -3168,12 +3168,24 @@ export interface SharedLinkResponseDto {
|
||||||
* @memberof SharedLinkResponseDto
|
* @memberof SharedLinkResponseDto
|
||||||
*/
|
*/
|
||||||
'key': string;
|
'key': string;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {string}
|
||||||
|
* @memberof SharedLinkResponseDto
|
||||||
|
*/
|
||||||
|
'password': string | null;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
* @memberof SharedLinkResponseDto
|
* @memberof SharedLinkResponseDto
|
||||||
*/
|
*/
|
||||||
'showMetadata': boolean;
|
'showMetadata': boolean;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {string}
|
||||||
|
* @memberof SharedLinkResponseDto
|
||||||
|
*/
|
||||||
|
'token'?: string | null;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {SharedLinkType}
|
* @type {SharedLinkType}
|
||||||
|
@ -3283,6 +3295,12 @@ export interface SystemConfigDto {
|
||||||
* @memberof SystemConfigDto
|
* @memberof SystemConfigDto
|
||||||
*/
|
*/
|
||||||
'map': SystemConfigMapDto;
|
'map': SystemConfigMapDto;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {SystemConfigNewVersionCheckDto}
|
||||||
|
* @memberof SystemConfigDto
|
||||||
|
*/
|
||||||
|
'newVersionCheck': SystemConfigNewVersionCheckDto;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {SystemConfigOAuthDto}
|
* @type {SystemConfigOAuthDto}
|
||||||
|
@ -3307,6 +3325,12 @@ export interface SystemConfigDto {
|
||||||
* @memberof SystemConfigDto
|
* @memberof SystemConfigDto
|
||||||
*/
|
*/
|
||||||
'storageTemplate': SystemConfigStorageTemplateDto;
|
'storageTemplate': SystemConfigStorageTemplateDto;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {SystemConfigThemeDto}
|
||||||
|
* @memberof SystemConfigDto
|
||||||
|
*/
|
||||||
|
'theme': SystemConfigThemeDto;
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {SystemConfigThumbnailDto}
|
* @type {SystemConfigThumbnailDto}
|
||||||
|
@ -3566,6 +3590,19 @@ export interface SystemConfigMapDto {
|
||||||
*/
|
*/
|
||||||
'tileUrl': string;
|
'tileUrl': string;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @export
|
||||||
|
* @interface SystemConfigNewVersionCheckDto
|
||||||
|
*/
|
||||||
|
export interface SystemConfigNewVersionCheckDto {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {boolean}
|
||||||
|
* @memberof SystemConfigNewVersionCheckDto
|
||||||
|
*/
|
||||||
|
'enabled': boolean;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @export
|
* @export
|
||||||
|
@ -3741,6 +3778,19 @@ export interface SystemConfigTemplateStorageOptionDto {
|
||||||
*/
|
*/
|
||||||
'yearOptions': Array<string>;
|
'yearOptions': Array<string>;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @export
|
||||||
|
* @interface SystemConfigThemeDto
|
||||||
|
*/
|
||||||
|
export interface SystemConfigThemeDto {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {string}
|
||||||
|
* @memberof SystemConfigThemeDto
|
||||||
|
*/
|
||||||
|
'customCss': string;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @export
|
* @export
|
||||||
|
@ -3914,6 +3964,7 @@ export const TranscodeHWAccel = {
|
||||||
Nvenc: 'nvenc',
|
Nvenc: 'nvenc',
|
||||||
Qsv: 'qsv',
|
Qsv: 'qsv',
|
||||||
Vaapi: 'vaapi',
|
Vaapi: 'vaapi',
|
||||||
|
Rkmpp: 'rkmpp',
|
||||||
Disabled: 'disabled'
|
Disabled: 'disabled'
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
|
@ -4159,19 +4210,6 @@ export interface UsageByUserDto {
|
||||||
*/
|
*/
|
||||||
'videos': number;
|
'videos': number;
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @export
|
|
||||||
* @interface UserCountResponseDto
|
|
||||||
*/
|
|
||||||
export interface UserCountResponseDto {
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {number}
|
|
||||||
* @memberof UserCountResponseDto
|
|
||||||
*/
|
|
||||||
'userCount': number;
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @export
|
* @export
|
||||||
|
@ -5805,55 +5843,6 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration
|
||||||
options: localVarRequestOptions,
|
options: localVarRequestOptions,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* Check duplicated asset before uploading - for Web upload used
|
|
||||||
* @param {CheckDuplicateAssetDto} checkDuplicateAssetDto
|
|
||||||
* @param {string} [key]
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
checkDuplicateAsset: async (checkDuplicateAssetDto: CheckDuplicateAssetDto, key?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
||||||
// verify required parameter 'checkDuplicateAssetDto' is not null or undefined
|
|
||||||
assertParamExists('checkDuplicateAsset', 'checkDuplicateAssetDto', checkDuplicateAssetDto)
|
|
||||||
const localVarPath = `/asset/check`;
|
|
||||||
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
||||||
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
||||||
let baseOptions;
|
|
||||||
if (configuration) {
|
|
||||||
baseOptions = configuration.baseOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
|
|
||||||
const localVarHeaderParameter = {} as any;
|
|
||||||
const localVarQueryParameter = {} as any;
|
|
||||||
|
|
||||||
// authentication cookie required
|
|
||||||
|
|
||||||
// authentication api_key required
|
|
||||||
await setApiKeyToObject(localVarHeaderParameter, "x-api-key", configuration)
|
|
||||||
|
|
||||||
// authentication bearer required
|
|
||||||
// http bearer authentication required
|
|
||||||
await setBearerAuthToObject(localVarHeaderParameter, configuration)
|
|
||||||
|
|
||||||
if (key !== undefined) {
|
|
||||||
localVarQueryParameter['key'] = key;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
localVarHeaderParameter['Content-Type'] = 'application/json';
|
|
||||||
|
|
||||||
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
||||||
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
||||||
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
||||||
localVarRequestOptions.data = serializeDataIfNeeded(checkDuplicateAssetDto, localVarRequestOptions, configuration)
|
|
||||||
|
|
||||||
return {
|
|
||||||
url: toPathString(localVarUrlObj),
|
|
||||||
options: localVarRequestOptions,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* Checks if multiple assets exist on the server and returns all existing - used by background backup
|
* Checks if multiple assets exist on the server and returns all existing - used by background backup
|
||||||
* @param {CheckExistingAssetsDto} checkExistingAssetsDto
|
* @param {CheckExistingAssetsDto} checkExistingAssetsDto
|
||||||
|
@ -6346,11 +6335,12 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration
|
||||||
* @param {boolean} [isArchived]
|
* @param {boolean} [isArchived]
|
||||||
* @param {boolean} [isFavorite]
|
* @param {boolean} [isFavorite]
|
||||||
* @param {boolean} [isTrashed]
|
* @param {boolean} [isTrashed]
|
||||||
|
* @param {boolean} [withStacked]
|
||||||
* @param {string} [key]
|
* @param {string} [key]
|
||||||
* @param {*} [options] Override http request option.
|
* @param {*} [options] Override http request option.
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
getByTimeBucket: async (size: TimeBucketSize, timeBucket: string, userId?: string, albumId?: string, personId?: string, isArchived?: boolean, isFavorite?: boolean, isTrashed?: boolean, key?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
getByTimeBucket: async (size: TimeBucketSize, timeBucket: string, userId?: string, albumId?: string, personId?: string, isArchived?: boolean, isFavorite?: boolean, isTrashed?: boolean, withStacked?: boolean, key?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||||
// verify required parameter 'size' is not null or undefined
|
// verify required parameter 'size' is not null or undefined
|
||||||
assertParamExists('getByTimeBucket', 'size', size)
|
assertParamExists('getByTimeBucket', 'size', size)
|
||||||
// verify required parameter 'timeBucket' is not null or undefined
|
// verify required parameter 'timeBucket' is not null or undefined
|
||||||
|
@ -6404,6 +6394,10 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration
|
||||||
localVarQueryParameter['isTrashed'] = isTrashed;
|
localVarQueryParameter['isTrashed'] = isTrashed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (withStacked !== undefined) {
|
||||||
|
localVarQueryParameter['withStacked'] = withStacked;
|
||||||
|
}
|
||||||
|
|
||||||
if (timeBucket !== undefined) {
|
if (timeBucket !== undefined) {
|
||||||
localVarQueryParameter['timeBucket'] = timeBucket;
|
localVarQueryParameter['timeBucket'] = timeBucket;
|
||||||
}
|
}
|
||||||
|
@ -6714,11 +6708,12 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration
|
||||||
* @param {boolean} [isArchived]
|
* @param {boolean} [isArchived]
|
||||||
* @param {boolean} [isFavorite]
|
* @param {boolean} [isFavorite]
|
||||||
* @param {boolean} [isTrashed]
|
* @param {boolean} [isTrashed]
|
||||||
|
* @param {boolean} [withStacked]
|
||||||
* @param {string} [key]
|
* @param {string} [key]
|
||||||
* @param {*} [options] Override http request option.
|
* @param {*} [options] Override http request option.
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
getTimeBuckets: async (size: TimeBucketSize, userId?: string, albumId?: string, personId?: string, isArchived?: boolean, isFavorite?: boolean, isTrashed?: boolean, key?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
getTimeBuckets: async (size: TimeBucketSize, userId?: string, albumId?: string, personId?: string, isArchived?: boolean, isFavorite?: boolean, isTrashed?: boolean, withStacked?: boolean, key?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||||
// verify required parameter 'size' is not null or undefined
|
// verify required parameter 'size' is not null or undefined
|
||||||
assertParamExists('getTimeBuckets', 'size', size)
|
assertParamExists('getTimeBuckets', 'size', size)
|
||||||
const localVarPath = `/asset/time-buckets`;
|
const localVarPath = `/asset/time-buckets`;
|
||||||
|
@ -6770,6 +6765,10 @@ export const AssetApiAxiosParamCreator = function (configuration?: Configuration
|
||||||
localVarQueryParameter['isTrashed'] = isTrashed;
|
localVarQueryParameter['isTrashed'] = isTrashed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (withStacked !== undefined) {
|
||||||
|
localVarQueryParameter['withStacked'] = withStacked;
|
||||||
|
}
|
||||||
|
|
||||||
if (key !== undefined) {
|
if (key !== undefined) {
|
||||||
localVarQueryParameter['key'] = key;
|
localVarQueryParameter['key'] = key;
|
||||||
}
|
}
|
||||||
|
@ -7388,17 +7387,6 @@ export const AssetApiFp = function(configuration?: Configuration) {
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.bulkUploadCheck(assetBulkUploadCheckDto, options);
|
const localVarAxiosArgs = await localVarAxiosParamCreator.bulkUploadCheck(assetBulkUploadCheckDto, options);
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* Check duplicated asset before uploading - for Web upload used
|
|
||||||
* @param {CheckDuplicateAssetDto} checkDuplicateAssetDto
|
|
||||||
* @param {string} [key]
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
async checkDuplicateAsset(checkDuplicateAssetDto: CheckDuplicateAssetDto, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CheckDuplicateAssetResponseDto>> {
|
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.checkDuplicateAsset(checkDuplicateAssetDto, key, options);
|
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* Checks if multiple assets exist on the server and returns all existing - used by background backup
|
* Checks if multiple assets exist on the server and returns all existing - used by background backup
|
||||||
* @param {CheckExistingAssetsDto} checkExistingAssetsDto
|
* @param {CheckExistingAssetsDto} checkExistingAssetsDto
|
||||||
|
@ -7519,12 +7507,13 @@ export const AssetApiFp = function(configuration?: Configuration) {
|
||||||
* @param {boolean} [isArchived]
|
* @param {boolean} [isArchived]
|
||||||
* @param {boolean} [isFavorite]
|
* @param {boolean} [isFavorite]
|
||||||
* @param {boolean} [isTrashed]
|
* @param {boolean} [isTrashed]
|
||||||
|
* @param {boolean} [withStacked]
|
||||||
* @param {string} [key]
|
* @param {string} [key]
|
||||||
* @param {*} [options] Override http request option.
|
* @param {*} [options] Override http request option.
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
async getByTimeBucket(size: TimeBucketSize, timeBucket: string, userId?: string, albumId?: string, personId?: string, isArchived?: boolean, isFavorite?: boolean, isTrashed?: boolean, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AssetResponseDto>>> {
|
async getByTimeBucket(size: TimeBucketSize, timeBucket: string, userId?: string, albumId?: string, personId?: string, isArchived?: boolean, isFavorite?: boolean, isTrashed?: boolean, withStacked?: boolean, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<AssetResponseDto>>> {
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.getByTimeBucket(size, timeBucket, userId, albumId, personId, isArchived, isFavorite, isTrashed, key, options);
|
const localVarAxiosArgs = await localVarAxiosParamCreator.getByTimeBucket(size, timeBucket, userId, albumId, personId, isArchived, isFavorite, isTrashed, withStacked, key, options);
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
@ -7599,12 +7588,13 @@ export const AssetApiFp = function(configuration?: Configuration) {
|
||||||
* @param {boolean} [isArchived]
|
* @param {boolean} [isArchived]
|
||||||
* @param {boolean} [isFavorite]
|
* @param {boolean} [isFavorite]
|
||||||
* @param {boolean} [isTrashed]
|
* @param {boolean} [isTrashed]
|
||||||
|
* @param {boolean} [withStacked]
|
||||||
* @param {string} [key]
|
* @param {string} [key]
|
||||||
* @param {*} [options] Override http request option.
|
* @param {*} [options] Override http request option.
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
async getTimeBuckets(size: TimeBucketSize, userId?: string, albumId?: string, personId?: string, isArchived?: boolean, isFavorite?: boolean, isTrashed?: boolean, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<TimeBucketResponseDto>>> {
|
async getTimeBuckets(size: TimeBucketSize, userId?: string, albumId?: string, personId?: string, isArchived?: boolean, isFavorite?: boolean, isTrashed?: boolean, withStacked?: boolean, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<TimeBucketResponseDto>>> {
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeBuckets(size, userId, albumId, personId, isArchived, isFavorite, isTrashed, key, options);
|
const localVarAxiosArgs = await localVarAxiosParamCreator.getTimeBuckets(size, userId, albumId, personId, isArchived, isFavorite, isTrashed, withStacked, key, options);
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
@ -7754,15 +7744,6 @@ export const AssetApiFactory = function (configuration?: Configuration, basePath
|
||||||
bulkUploadCheck(requestParameters: AssetApiBulkUploadCheckRequest, options?: AxiosRequestConfig): AxiosPromise<AssetBulkUploadCheckResponseDto> {
|
bulkUploadCheck(requestParameters: AssetApiBulkUploadCheckRequest, options?: AxiosRequestConfig): AxiosPromise<AssetBulkUploadCheckResponseDto> {
|
||||||
return localVarFp.bulkUploadCheck(requestParameters.assetBulkUploadCheckDto, options).then((request) => request(axios, basePath));
|
return localVarFp.bulkUploadCheck(requestParameters.assetBulkUploadCheckDto, options).then((request) => request(axios, basePath));
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
* Check duplicated asset before uploading - for Web upload used
|
|
||||||
* @param {AssetApiCheckDuplicateAssetRequest} requestParameters Request parameters.
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
checkDuplicateAsset(requestParameters: AssetApiCheckDuplicateAssetRequest, options?: AxiosRequestConfig): AxiosPromise<CheckDuplicateAssetResponseDto> {
|
|
||||||
return localVarFp.checkDuplicateAsset(requestParameters.checkDuplicateAssetDto, requestParameters.key, options).then((request) => request(axios, basePath));
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
* Checks if multiple assets exist on the server and returns all existing - used by background backup
|
* Checks if multiple assets exist on the server and returns all existing - used by background backup
|
||||||
* @param {AssetApiCheckExistingAssetsRequest} requestParameters Request parameters.
|
* @param {AssetApiCheckExistingAssetsRequest} requestParameters Request parameters.
|
||||||
|
@ -7858,7 +7839,7 @@ export const AssetApiFactory = function (configuration?: Configuration, basePath
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
getByTimeBucket(requestParameters: AssetApiGetByTimeBucketRequest, options?: AxiosRequestConfig): AxiosPromise<Array<AssetResponseDto>> {
|
getByTimeBucket(requestParameters: AssetApiGetByTimeBucketRequest, options?: AxiosRequestConfig): AxiosPromise<Array<AssetResponseDto>> {
|
||||||
return localVarFp.getByTimeBucket(requestParameters.size, requestParameters.timeBucket, requestParameters.userId, requestParameters.albumId, requestParameters.personId, requestParameters.isArchived, requestParameters.isFavorite, requestParameters.isTrashed, requestParameters.key, options).then((request) => request(axios, basePath));
|
return localVarFp.getByTimeBucket(requestParameters.size, requestParameters.timeBucket, requestParameters.userId, requestParameters.albumId, requestParameters.personId, requestParameters.isArchived, requestParameters.isFavorite, requestParameters.isTrashed, requestParameters.withStacked, requestParameters.key, options).then((request) => request(axios, basePath));
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -7919,7 +7900,7 @@ export const AssetApiFactory = function (configuration?: Configuration, basePath
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
getTimeBuckets(requestParameters: AssetApiGetTimeBucketsRequest, options?: AxiosRequestConfig): AxiosPromise<Array<TimeBucketResponseDto>> {
|
getTimeBuckets(requestParameters: AssetApiGetTimeBucketsRequest, options?: AxiosRequestConfig): AxiosPromise<Array<TimeBucketResponseDto>> {
|
||||||
return localVarFp.getTimeBuckets(requestParameters.size, requestParameters.userId, requestParameters.albumId, requestParameters.personId, requestParameters.isArchived, requestParameters.isFavorite, requestParameters.isTrashed, requestParameters.key, options).then((request) => request(axios, basePath));
|
return localVarFp.getTimeBuckets(requestParameters.size, requestParameters.userId, requestParameters.albumId, requestParameters.personId, requestParameters.isArchived, requestParameters.isFavorite, requestParameters.isTrashed, requestParameters.withStacked, requestParameters.key, options).then((request) => request(axios, basePath));
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* Get all asset of a device that are in the database, ID only.
|
* Get all asset of a device that are in the database, ID only.
|
||||||
|
@ -8036,27 +8017,6 @@ export interface AssetApiBulkUploadCheckRequest {
|
||||||
readonly assetBulkUploadCheckDto: AssetBulkUploadCheckDto
|
readonly assetBulkUploadCheckDto: AssetBulkUploadCheckDto
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Request parameters for checkDuplicateAsset operation in AssetApi.
|
|
||||||
* @export
|
|
||||||
* @interface AssetApiCheckDuplicateAssetRequest
|
|
||||||
*/
|
|
||||||
export interface AssetApiCheckDuplicateAssetRequest {
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {CheckDuplicateAssetDto}
|
|
||||||
* @memberof AssetApiCheckDuplicateAsset
|
|
||||||
*/
|
|
||||||
readonly checkDuplicateAssetDto: CheckDuplicateAssetDto
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {string}
|
|
||||||
* @memberof AssetApiCheckDuplicateAsset
|
|
||||||
*/
|
|
||||||
readonly key?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request parameters for checkExistingAssets operation in AssetApi.
|
* Request parameters for checkExistingAssets operation in AssetApi.
|
||||||
* @export
|
* @export
|
||||||
|
@ -8315,6 +8275,13 @@ export interface AssetApiGetByTimeBucketRequest {
|
||||||
*/
|
*/
|
||||||
readonly isTrashed?: boolean
|
readonly isTrashed?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {boolean}
|
||||||
|
* @memberof AssetApiGetByTimeBucket
|
||||||
|
*/
|
||||||
|
readonly withStacked?: boolean
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {string}
|
* @type {string}
|
||||||
|
@ -8469,6 +8436,13 @@ export interface AssetApiGetTimeBucketsRequest {
|
||||||
*/
|
*/
|
||||||
readonly isTrashed?: boolean
|
readonly isTrashed?: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {boolean}
|
||||||
|
* @memberof AssetApiGetTimeBuckets
|
||||||
|
*/
|
||||||
|
readonly withStacked?: boolean
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {string}
|
* @type {string}
|
||||||
|
@ -8768,17 +8742,6 @@ export class AssetApi extends BaseAPI {
|
||||||
return AssetApiFp(this.configuration).bulkUploadCheck(requestParameters.assetBulkUploadCheckDto, options).then((request) => request(this.axios, this.basePath));
|
return AssetApiFp(this.configuration).bulkUploadCheck(requestParameters.assetBulkUploadCheckDto, options).then((request) => request(this.axios, this.basePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Check duplicated asset before uploading - for Web upload used
|
|
||||||
* @param {AssetApiCheckDuplicateAssetRequest} requestParameters Request parameters.
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
* @memberof AssetApi
|
|
||||||
*/
|
|
||||||
public checkDuplicateAsset(requestParameters: AssetApiCheckDuplicateAssetRequest, options?: AxiosRequestConfig) {
|
|
||||||
return AssetApiFp(this.configuration).checkDuplicateAsset(requestParameters.checkDuplicateAssetDto, requestParameters.key, options).then((request) => request(this.axios, this.basePath));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if multiple assets exist on the server and returns all existing - used by background backup
|
* Checks if multiple assets exist on the server and returns all existing - used by background backup
|
||||||
* @param {AssetApiCheckExistingAssetsRequest} requestParameters Request parameters.
|
* @param {AssetApiCheckExistingAssetsRequest} requestParameters Request parameters.
|
||||||
|
@ -8895,7 +8858,7 @@ export class AssetApi extends BaseAPI {
|
||||||
* @memberof AssetApi
|
* @memberof AssetApi
|
||||||
*/
|
*/
|
||||||
public getByTimeBucket(requestParameters: AssetApiGetByTimeBucketRequest, options?: AxiosRequestConfig) {
|
public getByTimeBucket(requestParameters: AssetApiGetByTimeBucketRequest, options?: AxiosRequestConfig) {
|
||||||
return AssetApiFp(this.configuration).getByTimeBucket(requestParameters.size, requestParameters.timeBucket, requestParameters.userId, requestParameters.albumId, requestParameters.personId, requestParameters.isArchived, requestParameters.isFavorite, requestParameters.isTrashed, requestParameters.key, options).then((request) => request(this.axios, this.basePath));
|
return AssetApiFp(this.configuration).getByTimeBucket(requestParameters.size, requestParameters.timeBucket, requestParameters.userId, requestParameters.albumId, requestParameters.personId, requestParameters.isArchived, requestParameters.isFavorite, requestParameters.isTrashed, requestParameters.withStacked, requestParameters.key, options).then((request) => request(this.axios, this.basePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -8970,7 +8933,7 @@ export class AssetApi extends BaseAPI {
|
||||||
* @memberof AssetApi
|
* @memberof AssetApi
|
||||||
*/
|
*/
|
||||||
public getTimeBuckets(requestParameters: AssetApiGetTimeBucketsRequest, options?: AxiosRequestConfig) {
|
public getTimeBuckets(requestParameters: AssetApiGetTimeBucketsRequest, options?: AxiosRequestConfig) {
|
||||||
return AssetApiFp(this.configuration).getTimeBuckets(requestParameters.size, requestParameters.userId, requestParameters.albumId, requestParameters.personId, requestParameters.isArchived, requestParameters.isFavorite, requestParameters.isTrashed, requestParameters.key, options).then((request) => request(this.axios, this.basePath));
|
return AssetApiFp(this.configuration).getTimeBuckets(requestParameters.size, requestParameters.userId, requestParameters.albumId, requestParameters.personId, requestParameters.isArchived, requestParameters.isFavorite, requestParameters.isTrashed, requestParameters.withStacked, requestParameters.key, options).then((request) => request(this.axios, this.basePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11972,6 +11935,48 @@ export const PersonApiAxiosParamCreator = function (configuration?: Configuratio
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
||||||
|
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
||||||
|
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
||||||
|
|
||||||
|
return {
|
||||||
|
url: toPathString(localVarUrlObj),
|
||||||
|
options: localVarRequestOptions,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {string} id
|
||||||
|
* @param {*} [options] Override http request option.
|
||||||
|
* @throws {RequiredError}
|
||||||
|
*/
|
||||||
|
getPersonStatistics: async (id: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||||
|
// verify required parameter 'id' is not null or undefined
|
||||||
|
assertParamExists('getPersonStatistics', 'id', id)
|
||||||
|
const localVarPath = `/person/{id}/statistics`
|
||||||
|
.replace(`{${"id"}}`, encodeURIComponent(String(id)));
|
||||||
|
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
||||||
|
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
||||||
|
let baseOptions;
|
||||||
|
if (configuration) {
|
||||||
|
baseOptions = configuration.baseOptions;
|
||||||
|
}
|
||||||
|
|
||||||
|
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
|
||||||
|
const localVarHeaderParameter = {} as any;
|
||||||
|
const localVarQueryParameter = {} as any;
|
||||||
|
|
||||||
|
// authentication cookie required
|
||||||
|
|
||||||
|
// authentication api_key required
|
||||||
|
await setApiKeyToObject(localVarHeaderParameter, "x-api-key", configuration)
|
||||||
|
|
||||||
|
// authentication bearer required
|
||||||
|
// http bearer authentication required
|
||||||
|
await setBearerAuthToObject(localVarHeaderParameter, configuration)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
||||||
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
||||||
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
||||||
|
@ -12203,6 +12208,16 @@ export const PersonApiFp = function(configuration?: Configuration) {
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonAssets(id, options);
|
const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonAssets(id, options);
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {string} id
|
||||||
|
* @param {*} [options] Override http request option.
|
||||||
|
* @throws {RequiredError}
|
||||||
|
*/
|
||||||
|
async getPersonStatistics(id: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<PersonStatisticsResponseDto>> {
|
||||||
|
const localVarAxiosArgs = await localVarAxiosParamCreator.getPersonStatistics(id, options);
|
||||||
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {string} id
|
* @param {string} id
|
||||||
|
@ -12282,6 +12297,15 @@ export const PersonApiFactory = function (configuration?: Configuration, basePat
|
||||||
getPersonAssets(requestParameters: PersonApiGetPersonAssetsRequest, options?: AxiosRequestConfig): AxiosPromise<Array<AssetResponseDto>> {
|
getPersonAssets(requestParameters: PersonApiGetPersonAssetsRequest, options?: AxiosRequestConfig): AxiosPromise<Array<AssetResponseDto>> {
|
||||||
return localVarFp.getPersonAssets(requestParameters.id, options).then((request) => request(axios, basePath));
|
return localVarFp.getPersonAssets(requestParameters.id, options).then((request) => request(axios, basePath));
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {PersonApiGetPersonStatisticsRequest} requestParameters Request parameters.
|
||||||
|
* @param {*} [options] Override http request option.
|
||||||
|
* @throws {RequiredError}
|
||||||
|
*/
|
||||||
|
getPersonStatistics(requestParameters: PersonApiGetPersonStatisticsRequest, options?: AxiosRequestConfig): AxiosPromise<PersonStatisticsResponseDto> {
|
||||||
|
return localVarFp.getPersonStatistics(requestParameters.id, options).then((request) => request(axios, basePath));
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {PersonApiGetPersonThumbnailRequest} requestParameters Request parameters.
|
* @param {PersonApiGetPersonThumbnailRequest} requestParameters Request parameters.
|
||||||
|
@ -12363,6 +12387,20 @@ export interface PersonApiGetPersonAssetsRequest {
|
||||||
readonly id: string
|
readonly id: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Request parameters for getPersonStatistics operation in PersonApi.
|
||||||
|
* @export
|
||||||
|
* @interface PersonApiGetPersonStatisticsRequest
|
||||||
|
*/
|
||||||
|
export interface PersonApiGetPersonStatisticsRequest {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {string}
|
||||||
|
* @memberof PersonApiGetPersonStatistics
|
||||||
|
*/
|
||||||
|
readonly id: string
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request parameters for getPersonThumbnail operation in PersonApi.
|
* Request parameters for getPersonThumbnail operation in PersonApi.
|
||||||
* @export
|
* @export
|
||||||
|
@ -12473,6 +12511,17 @@ export class PersonApi extends BaseAPI {
|
||||||
return PersonApiFp(this.configuration).getPersonAssets(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
|
return PersonApiFp(this.configuration).getPersonAssets(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {PersonApiGetPersonStatisticsRequest} requestParameters Request parameters.
|
||||||
|
* @param {*} [options] Override http request option.
|
||||||
|
* @throws {RequiredError}
|
||||||
|
* @memberof PersonApi
|
||||||
|
*/
|
||||||
|
public getPersonStatistics(requestParameters: PersonApiGetPersonStatisticsRequest, options?: AxiosRequestConfig) {
|
||||||
|
return PersonApiFp(this.configuration).getPersonStatistics(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {PersonApiGetPersonThumbnailRequest} requestParameters Request parameters.
|
* @param {PersonApiGetPersonThumbnailRequest} requestParameters Request parameters.
|
||||||
|
@ -12684,10 +12733,11 @@ export const SearchApiAxiosParamCreator = function (configuration?: Configuratio
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {string} name
|
* @param {string} name
|
||||||
|
* @param {boolean} [withHidden]
|
||||||
* @param {*} [options] Override http request option.
|
* @param {*} [options] Override http request option.
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
searchPerson: async (name: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
searchPerson: async (name: string, withHidden?: boolean, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||||
// verify required parameter 'name' is not null or undefined
|
// verify required parameter 'name' is not null or undefined
|
||||||
assertParamExists('searchPerson', 'name', name)
|
assertParamExists('searchPerson', 'name', name)
|
||||||
const localVarPath = `/search/person`;
|
const localVarPath = `/search/person`;
|
||||||
|
@ -12715,6 +12765,10 @@ export const SearchApiAxiosParamCreator = function (configuration?: Configuratio
|
||||||
localVarQueryParameter['name'] = name;
|
localVarQueryParameter['name'] = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (withHidden !== undefined) {
|
||||||
|
localVarQueryParameter['withHidden'] = withHidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
||||||
|
@ -12773,11 +12827,12 @@ export const SearchApiFp = function(configuration?: Configuration) {
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {string} name
|
* @param {string} name
|
||||||
|
* @param {boolean} [withHidden]
|
||||||
* @param {*} [options] Override http request option.
|
* @param {*} [options] Override http request option.
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
async searchPerson(name: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<PersonResponseDto>>> {
|
async searchPerson(name: string, withHidden?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<Array<PersonResponseDto>>> {
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.searchPerson(name, options);
|
const localVarAxiosArgs = await localVarAxiosParamCreator.searchPerson(name, withHidden, options);
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -12814,7 +12869,7 @@ export const SearchApiFactory = function (configuration?: Configuration, basePat
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
searchPerson(requestParameters: SearchApiSearchPersonRequest, options?: AxiosRequestConfig): AxiosPromise<Array<PersonResponseDto>> {
|
searchPerson(requestParameters: SearchApiSearchPersonRequest, options?: AxiosRequestConfig): AxiosPromise<Array<PersonResponseDto>> {
|
||||||
return localVarFp.searchPerson(requestParameters.name, options).then((request) => request(axios, basePath));
|
return localVarFp.searchPerson(requestParameters.name, requestParameters.withHidden, options).then((request) => request(axios, basePath));
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -12950,6 +13005,13 @@ export interface SearchApiSearchPersonRequest {
|
||||||
* @memberof SearchApiSearchPerson
|
* @memberof SearchApiSearchPerson
|
||||||
*/
|
*/
|
||||||
readonly name: string
|
readonly name: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {boolean}
|
||||||
|
* @memberof SearchApiSearchPerson
|
||||||
|
*/
|
||||||
|
readonly withHidden?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12988,7 +13050,7 @@ export class SearchApi extends BaseAPI {
|
||||||
* @memberof SearchApi
|
* @memberof SearchApi
|
||||||
*/
|
*/
|
||||||
public searchPerson(requestParameters: SearchApiSearchPersonRequest, options?: AxiosRequestConfig) {
|
public searchPerson(requestParameters: SearchApiSearchPersonRequest, options?: AxiosRequestConfig) {
|
||||||
return SearchApiFp(this.configuration).searchPerson(requestParameters.name, options).then((request) => request(this.axios, this.basePath));
|
return SearchApiFp(this.configuration).searchPerson(requestParameters.name, requestParameters.withHidden, options).then((request) => request(this.axios, this.basePath));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13182,6 +13244,35 @@ export const ServerInfoApiAxiosParamCreator = function (configuration?: Configur
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
||||||
|
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
||||||
|
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
||||||
|
|
||||||
|
return {
|
||||||
|
url: toPathString(localVarUrlObj),
|
||||||
|
options: localVarRequestOptions,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {*} [options] Override http request option.
|
||||||
|
* @throws {RequiredError}
|
||||||
|
*/
|
||||||
|
getTheme: async (options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||||
|
const localVarPath = `/server-info/theme`;
|
||||||
|
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
||||||
|
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
||||||
|
let baseOptions;
|
||||||
|
if (configuration) {
|
||||||
|
baseOptions = configuration.baseOptions;
|
||||||
|
}
|
||||||
|
|
||||||
|
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
|
||||||
|
const localVarHeaderParameter = {} as any;
|
||||||
|
const localVarQueryParameter = {} as any;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
||||||
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
||||||
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
||||||
|
@ -13284,6 +13375,15 @@ export const ServerInfoApiFp = function(configuration?: Configuration) {
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.getSupportedMediaTypes(options);
|
const localVarAxiosArgs = await localVarAxiosParamCreator.getSupportedMediaTypes(options);
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {*} [options] Override http request option.
|
||||||
|
* @throws {RequiredError}
|
||||||
|
*/
|
||||||
|
async getTheme(options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ServerThemeDto>> {
|
||||||
|
const localVarAxiosArgs = await localVarAxiosParamCreator.getTheme(options);
|
||||||
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {*} [options] Override http request option.
|
* @param {*} [options] Override http request option.
|
||||||
|
@ -13351,6 +13451,14 @@ export const ServerInfoApiFactory = function (configuration?: Configuration, bas
|
||||||
getSupportedMediaTypes(options?: AxiosRequestConfig): AxiosPromise<ServerMediaTypesResponseDto> {
|
getSupportedMediaTypes(options?: AxiosRequestConfig): AxiosPromise<ServerMediaTypesResponseDto> {
|
||||||
return localVarFp.getSupportedMediaTypes(options).then((request) => request(axios, basePath));
|
return localVarFp.getSupportedMediaTypes(options).then((request) => request(axios, basePath));
|
||||||
},
|
},
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {*} [options] Override http request option.
|
||||||
|
* @throws {RequiredError}
|
||||||
|
*/
|
||||||
|
getTheme(options?: AxiosRequestConfig): AxiosPromise<ServerThemeDto> {
|
||||||
|
return localVarFp.getTheme(options).then((request) => request(axios, basePath));
|
||||||
|
},
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {*} [options] Override http request option.
|
* @param {*} [options] Override http request option.
|
||||||
|
@ -13429,6 +13537,16 @@ export class ServerInfoApi extends BaseAPI {
|
||||||
return ServerInfoApiFp(this.configuration).getSupportedMediaTypes(options).then((request) => request(this.axios, this.basePath));
|
return ServerInfoApiFp(this.configuration).getSupportedMediaTypes(options).then((request) => request(this.axios, this.basePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param {*} [options] Override http request option.
|
||||||
|
* @throws {RequiredError}
|
||||||
|
* @memberof ServerInfoApi
|
||||||
|
*/
|
||||||
|
public getTheme(options?: AxiosRequestConfig) {
|
||||||
|
return ServerInfoApiFp(this.configuration).getTheme(options).then((request) => request(this.axios, this.basePath));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {*} [options] Override http request option.
|
* @param {*} [options] Override http request option.
|
||||||
|
@ -13584,11 +13702,13 @@ export const SharedLinkApiAxiosParamCreator = function (configuration?: Configur
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
* @param {string} [password]
|
||||||
|
* @param {string} [token]
|
||||||
* @param {string} [key]
|
* @param {string} [key]
|
||||||
* @param {*} [options] Override http request option.
|
* @param {*} [options] Override http request option.
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
getMySharedLink: async (key?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
getMySharedLink: async (password?: string, token?: string, key?: string, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
||||||
const localVarPath = `/shared-link/me`;
|
const localVarPath = `/shared-link/me`;
|
||||||
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
||||||
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
||||||
|
@ -13610,6 +13730,14 @@ export const SharedLinkApiAxiosParamCreator = function (configuration?: Configur
|
||||||
// http bearer authentication required
|
// http bearer authentication required
|
||||||
await setBearerAuthToObject(localVarHeaderParameter, configuration)
|
await setBearerAuthToObject(localVarHeaderParameter, configuration)
|
||||||
|
|
||||||
|
if (password !== undefined) {
|
||||||
|
localVarQueryParameter['password'] = password;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (token !== undefined) {
|
||||||
|
localVarQueryParameter['token'] = token;
|
||||||
|
}
|
||||||
|
|
||||||
if (key !== undefined) {
|
if (key !== undefined) {
|
||||||
localVarQueryParameter['key'] = key;
|
localVarQueryParameter['key'] = key;
|
||||||
}
|
}
|
||||||
|
@ -13853,12 +13981,14 @@ export const SharedLinkApiFp = function(configuration?: Configuration) {
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
* @param {string} [password]
|
||||||
|
* @param {string} [token]
|
||||||
* @param {string} [key]
|
* @param {string} [key]
|
||||||
* @param {*} [options] Override http request option.
|
* @param {*} [options] Override http request option.
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
async getMySharedLink(key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SharedLinkResponseDto>> {
|
async getMySharedLink(password?: string, token?: string, key?: string, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SharedLinkResponseDto>> {
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.getMySharedLink(key, options);
|
const localVarAxiosArgs = await localVarAxiosParamCreator.getMySharedLink(password, token, key, options);
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
|
@ -13947,7 +14077,7 @@ export const SharedLinkApiFactory = function (configuration?: Configuration, bas
|
||||||
* @throws {RequiredError}
|
* @throws {RequiredError}
|
||||||
*/
|
*/
|
||||||
getMySharedLink(requestParameters: SharedLinkApiGetMySharedLinkRequest = {}, options?: AxiosRequestConfig): AxiosPromise<SharedLinkResponseDto> {
|
getMySharedLink(requestParameters: SharedLinkApiGetMySharedLinkRequest = {}, options?: AxiosRequestConfig): AxiosPromise<SharedLinkResponseDto> {
|
||||||
return localVarFp.getMySharedLink(requestParameters.key, options).then((request) => request(axios, basePath));
|
return localVarFp.getMySharedLink(requestParameters.password, requestParameters.token, requestParameters.key, options).then((request) => request(axios, basePath));
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -14036,6 +14166,20 @@ export interface SharedLinkApiCreateSharedLinkRequest {
|
||||||
* @interface SharedLinkApiGetMySharedLinkRequest
|
* @interface SharedLinkApiGetMySharedLinkRequest
|
||||||
*/
|
*/
|
||||||
export interface SharedLinkApiGetMySharedLinkRequest {
|
export interface SharedLinkApiGetMySharedLinkRequest {
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {string}
|
||||||
|
* @memberof SharedLinkApiGetMySharedLink
|
||||||
|
*/
|
||||||
|
readonly password?: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {string}
|
||||||
|
* @memberof SharedLinkApiGetMySharedLink
|
||||||
|
*/
|
||||||
|
readonly token?: string
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @type {string}
|
* @type {string}
|
||||||
|
@ -14168,7 +14312,7 @@ export class SharedLinkApi extends BaseAPI {
|
||||||
* @memberof SharedLinkApi
|
* @memberof SharedLinkApi
|
||||||
*/
|
*/
|
||||||
public getMySharedLink(requestParameters: SharedLinkApiGetMySharedLinkRequest = {}, options?: AxiosRequestConfig) {
|
public getMySharedLink(requestParameters: SharedLinkApiGetMySharedLinkRequest = {}, options?: AxiosRequestConfig) {
|
||||||
return SharedLinkApiFp(this.configuration).getMySharedLink(requestParameters.key, options).then((request) => request(this.axios, this.basePath));
|
return SharedLinkApiFp(this.configuration).getMySharedLink(requestParameters.password, requestParameters.token, requestParameters.key, options).then((request) => request(this.axios, this.basePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -15586,49 +15730,6 @@ export const UserApiAxiosParamCreator = function (configuration?: Configuration)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
|
||||||
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
|
||||||
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
|
||||||
|
|
||||||
return {
|
|
||||||
url: toPathString(localVarUrlObj),
|
|
||||||
options: localVarRequestOptions,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {boolean} [admin]
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
getUserCount: async (admin?: boolean, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
|
|
||||||
const localVarPath = `/user/count`;
|
|
||||||
// use dummy base URL string because the URL constructor only accepts absolute URLs.
|
|
||||||
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
|
|
||||||
let baseOptions;
|
|
||||||
if (configuration) {
|
|
||||||
baseOptions = configuration.baseOptions;
|
|
||||||
}
|
|
||||||
|
|
||||||
const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
|
|
||||||
const localVarHeaderParameter = {} as any;
|
|
||||||
const localVarQueryParameter = {} as any;
|
|
||||||
|
|
||||||
// authentication cookie required
|
|
||||||
|
|
||||||
// authentication api_key required
|
|
||||||
await setApiKeyToObject(localVarHeaderParameter, "x-api-key", configuration)
|
|
||||||
|
|
||||||
// authentication bearer required
|
|
||||||
// http bearer authentication required
|
|
||||||
await setBearerAuthToObject(localVarHeaderParameter, configuration)
|
|
||||||
|
|
||||||
if (admin !== undefined) {
|
|
||||||
localVarQueryParameter['admin'] = admin;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
setSearchParams(localVarUrlObj, localVarQueryParameter);
|
||||||
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
|
||||||
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
|
||||||
|
@ -15803,16 +15904,6 @@ export const UserApiFp = function(configuration?: Configuration) {
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.getUserById(id, options);
|
const localVarAxiosArgs = await localVarAxiosParamCreator.getUserById(id, options);
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {boolean} [admin]
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
async getUserCount(admin?: boolean, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UserCountResponseDto>> {
|
|
||||||
const localVarAxiosArgs = await localVarAxiosParamCreator.getUserCount(admin, options);
|
|
||||||
return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration);
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {string} id
|
* @param {string} id
|
||||||
|
@ -15905,15 +15996,6 @@ export const UserApiFactory = function (configuration?: Configuration, basePath?
|
||||||
getUserById(requestParameters: UserApiGetUserByIdRequest, options?: AxiosRequestConfig): AxiosPromise<UserResponseDto> {
|
getUserById(requestParameters: UserApiGetUserByIdRequest, options?: AxiosRequestConfig): AxiosPromise<UserResponseDto> {
|
||||||
return localVarFp.getUserById(requestParameters.id, options).then((request) => request(axios, basePath));
|
return localVarFp.getUserById(requestParameters.id, options).then((request) => request(axios, basePath));
|
||||||
},
|
},
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {UserApiGetUserCountRequest} requestParameters Request parameters.
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
*/
|
|
||||||
getUserCount(requestParameters: UserApiGetUserCountRequest = {}, options?: AxiosRequestConfig): AxiosPromise<UserCountResponseDto> {
|
|
||||||
return localVarFp.getUserCount(requestParameters.admin, options).then((request) => request(axios, basePath));
|
|
||||||
},
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {UserApiRestoreUserRequest} requestParameters Request parameters.
|
* @param {UserApiRestoreUserRequest} requestParameters Request parameters.
|
||||||
|
@ -16019,20 +16101,6 @@ export interface UserApiGetUserByIdRequest {
|
||||||
readonly id: string
|
readonly id: string
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Request parameters for getUserCount operation in UserApi.
|
|
||||||
* @export
|
|
||||||
* @interface UserApiGetUserCountRequest
|
|
||||||
*/
|
|
||||||
export interface UserApiGetUserCountRequest {
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @type {boolean}
|
|
||||||
* @memberof UserApiGetUserCount
|
|
||||||
*/
|
|
||||||
readonly admin?: boolean
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request parameters for restoreUser operation in UserApi.
|
* Request parameters for restoreUser operation in UserApi.
|
||||||
* @export
|
* @export
|
||||||
|
@ -16144,17 +16212,6 @@ export class UserApi extends BaseAPI {
|
||||||
return UserApiFp(this.configuration).getUserById(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
|
return UserApiFp(this.configuration).getUserById(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param {UserApiGetUserCountRequest} requestParameters Request parameters.
|
|
||||||
* @param {*} [options] Override http request option.
|
|
||||||
* @throws {RequiredError}
|
|
||||||
* @memberof UserApi
|
|
||||||
*/
|
|
||||||
public getUserCount(requestParameters: UserApiGetUserCountRequest = {}, options?: AxiosRequestConfig) {
|
|
||||||
return UserApiFp(this.configuration).getUserCount(requestParameters.admin, options).then((request) => request(this.axios, this.basePath));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {UserApiRestoreUserRequest} requestParameters Request parameters.
|
* @param {UserApiRestoreUserRequest} requestParameters Request parameters.
|
||||||
|
|
2
cli/src/api/open-api/base.ts
generated
|
@ -4,7 +4,7 @@
|
||||||
* Immich
|
* Immich
|
||||||
* Immich API
|
* Immich API
|
||||||
*
|
*
|
||||||
* The version of the OpenAPI document: 1.82.1
|
* The version of the OpenAPI document: 1.83.0
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
|
2
cli/src/api/open-api/common.ts
generated
|
@ -4,7 +4,7 @@
|
||||||
* Immich
|
* Immich
|
||||||
* Immich API
|
* Immich API
|
||||||
*
|
*
|
||||||
* The version of the OpenAPI document: 1.82.1
|
* The version of the OpenAPI document: 1.83.0
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
|
2
cli/src/api/open-api/configuration.ts
generated
|
@ -4,7 +4,7 @@
|
||||||
* Immich
|
* Immich
|
||||||
* Immich API
|
* Immich API
|
||||||
*
|
*
|
||||||
* The version of the OpenAPI document: 1.82.1
|
* The version of the OpenAPI document: 1.83.0
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
|
2
cli/src/api/open-api/index.ts
generated
|
@ -4,7 +4,7 @@
|
||||||
* Immich
|
* Immich
|
||||||
* Immich API
|
* Immich API
|
||||||
*
|
*
|
||||||
* The version of the OpenAPI document: 1.82.1
|
* The version of the OpenAPI document: 1.83.0
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||||
|
|
|
@ -83,10 +83,6 @@ services:
|
||||||
immich-proxy:
|
immich-proxy:
|
||||||
container_name: immich_proxy
|
container_name: immich_proxy
|
||||||
image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release}
|
image: ghcr.io/immich-app/immich-proxy:${IMMICH_VERSION:-release}
|
||||||
environment:
|
|
||||||
# Make sure these values get passed through from the env file
|
|
||||||
- IMMICH_SERVER_URL
|
|
||||||
- IMMICH_WEB_URL
|
|
||||||
ports:
|
ports:
|
||||||
- 2283:8080
|
- 2283:8080
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
24
docker/hwaccel-rkmpp.yml
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
version: "3.8"
|
||||||
|
|
||||||
|
# Hardware acceleration for transcoding using RKMPP for Rockchip SOCs
|
||||||
|
# This is only needed if you want to use hardware acceleration for transcoding.
|
||||||
|
# Supported host OS is Ubuntu Jammy 22.04 with custom ffmpeg from ppa:liujianfeng1994/rockchip-multimedia
|
||||||
|
|
||||||
|
services:
|
||||||
|
hwaccel:
|
||||||
|
security_opt: # enables full access to /sys and /proc, still far better than privileged: true
|
||||||
|
- systempaths=unconfined
|
||||||
|
- apparmor=unconfined
|
||||||
|
group_add:
|
||||||
|
- video
|
||||||
|
devices:
|
||||||
|
- /dev/rga:/dev/rga
|
||||||
|
- /dev/dri:/dev/dri
|
||||||
|
- /dev/dma_heap:/dev/dma_heap
|
||||||
|
- /dev/mpp_service:/dev/mpp_service
|
||||||
|
volumes:
|
||||||
|
- /usr/bin/ffmpeg:/usr/bin/ffmpeg_mpp:ro
|
||||||
|
- /lib/aarch64-linux-gnu:/lib/ffmpeg-mpp:ro
|
||||||
|
- /lib/aarch64-linux-gnu/libblas.so.3:/lib/ffmpeg-mpp/libblas.so.3:ro # symlink is resolved by mounting
|
||||||
|
- /lib/aarch64-linux-gnu/liblapack.so.3:/lib/ffmpeg-mpp/liblapack.so.3:ro # symlink is resolved by mounting
|
||||||
|
- /lib/aarch64-linux-gnu/pulseaudio/libpulsecommon-15.99.so:/lib/ffmpeg-mpp/libpulsecommon-15.99.so:ro
|
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 501 KiB |
|
@ -4,7 +4,7 @@ Immich uses the [OpenAPI](https://swagger.io/specification/) standard to generat
|
||||||
|
|
||||||
## Generator
|
## Generator
|
||||||
|
|
||||||
OpenAPI is used to generate the client (Typescript, Dart) SDK. `openapi-generator-cli` can be installed [here](https://openapi-generator.tech/docs/installation/). The generated SDK is based on the `immich-openapi-specs.json` file, which is autogenerated by the server when running in development mode. The `immich-openapi-specs.json` file can be modified with `@nestjs/swagger` decorators used or referenced by controller endpoints. See the [NestJS OpenAPI docs](https://docs.nestjs.com/openapi/types-and-parameters) for more info. When you add a new endpoint or modify an existing one, you must run the command below to update the client SDK.
|
OpenAPI is used to generate the client (Typescript, Dart) SDK. `openapi-generator-cli` can be installed [here](https://openapi-generator.tech/docs/installation/). The generated SDK is based on the `immich-openapi-specs.json` file, which is autogenerated by the server **when running in development mode**. The `immich-openapi-specs.json` file can be modified with `@nestjs/swagger` decorators used or referenced by controller endpoints. See the [NestJS OpenAPI docs](https://docs.nestjs.com/openapi/types-and-parameters) for more info. When you add a new endpoint or modify an existing one, you must run the server in development mode and run the command below to update the client SDK.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm run api:generate # Run from the `server/` directory
|
npm run api:generate # Run from the `server/` directory
|
||||||
|
|
|
@ -12,6 +12,6 @@ The backend has an end-to-end test suite that can be called with `npm run test:e
|
||||||
|
|
||||||
Note that there is a bug in nodejs <20.8 that causes segmentation faults when running these tests. If you run into segfaults, ensure you are using at least version 20.8.
|
Note that there is a bug in nodejs <20.8 that causes segmentation faults when running these tests. If you run into segfaults, ensure you are using at least version 20.8.
|
||||||
|
|
||||||
To perform a full e2e test, you need to run e2e tests inside docker. The easiest way to do that is to run `make test-e2e` in the root directory. This will build and start a docker-compose consisting of the server, microservices, and a postgres database. It will then perfom the tests and exit.
|
To perform a full e2e test, you need to run e2e tests inside docker. The easiest way to do that is to run `make test-e2e` in the root directory. This will build and start a docker-compose consisting of the server, microservices, and a postgres database. It will then perform the tests and exit.
|
||||||
|
|
||||||
If you manually install the dependencies (see the DOCKERFILE) on your development machine, you can also run the full e2e tests manually by setting the `IMMICH_RUN_ALL_TESTS` environment value to true, i.e. `IMMICH_RUN_ALL_TESTS=true npm run test:e2e`.
|
If you manually install the dependencies (see the DOCKERFILE) on your development machine, you can also run the full e2e tests manually by setting the `IMMICH_RUN_ALL_TESTS` environment value to true, i.e. `IMMICH_RUN_ALL_TESTS=true npm run test:e2e`.
|
||||||
|
|
|
@ -85,7 +85,7 @@ There is an automatic job that's run once a day and refreshes all modified files
|
||||||
|
|
||||||
Let's show a concrete example where we add an existing gallery to Immich. Here, we have the following folders we want to add:
|
Let's show a concrete example where we add an existing gallery to Immich. Here, we have the following folders we want to add:
|
||||||
|
|
||||||
- `/home/user/old-pics`: a folder contining childhood photos.
|
- `/home/user/old-pics`: a folder containing childhood photos.
|
||||||
- `/mnt/nas/christmas-trip`: photos from a christmas trip. The subfolder `/mnt/nas/christmas-trip/Raw` contains the raw files directly from the DSLR. We don't want to import the raw files to Immich
|
- `/mnt/nas/christmas-trip`: photos from a christmas trip. The subfolder `/mnt/nas/christmas-trip/Raw` contains the raw files directly from the DSLR. We don't want to import the raw files to Immich
|
||||||
- `/mnt/media/videos`: Videos from the same christmas trip.
|
- `/mnt/media/videos`: Videos from the same christmas trip.
|
||||||
|
|
||||||
|
|
BIN
docs/docs/install/img/truenas01.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
docs/docs/install/img/truenas02.png
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
docs/docs/install/img/truenas03.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
docs/docs/install/img/truenas04.png
Normal file
After Width: | Height: | Size: 79 KiB |
BIN
docs/docs/install/img/truenas05.png
Normal file
After Width: | Height: | Size: 6 KiB |
BIN
docs/docs/install/img/truenas06.png
Normal file
After Width: | Height: | Size: 4 KiB |
BIN
docs/docs/install/img/truenas07.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
docs/docs/install/img/truenas08.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
docs/docs/install/img/truenas09.png
Normal file
After Width: | Height: | Size: 9.9 KiB |
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
sidebar_position: 80
|
sidebar_position: 90
|
||||||
---
|
---
|
||||||
|
|
||||||
import RegisterAdminUser from '../partials/_register-admin.md';
|
import RegisterAdminUser from '../partials/_register-admin.md';
|
||||||
|
|
192
docs/docs/install/truenas.md
Normal file
|
@ -0,0 +1,192 @@
|
||||||
|
---
|
||||||
|
sidebar_position: 80
|
||||||
|
---
|
||||||
|
|
||||||
|
# TrueNAS SCALE [Community]
|
||||||
|
|
||||||
|
:::note
|
||||||
|
This is a community contribution and not officially supported by the Immich team, but included here for convenience.
|
||||||
|
|
||||||
|
**Please report issues to the corresponding [Github Repository](https://github.com/truenas/charts/tree/master/community/immich).**
|
||||||
|
:::
|
||||||
|
|
||||||
|
Immich can easily be installed on TrueNAS SCALE via the **Community** train application.
|
||||||
|
Consider reviewing the TrueNAS [Apps tutorial](https://www.truenas.com/docs/scale/scaletutorials/apps/) if you have not previously configured applications on your system.
|
||||||
|
|
||||||
|
TrueNAS SCALE makes installing and updating Immich easy, but you must use the Immich web portal and mobile app to configure accounts and access libraries.
|
||||||
|
|
||||||
|
## First Steps
|
||||||
|
|
||||||
|
The Immich app in TrueNAS SCALE installs, completes the initial configuration, then starts the Immich web portal.
|
||||||
|
When updates become available, SCALE alerts and provides easy updates.
|
||||||
|
|
||||||
|
Before installing the Immich app in SCALE, review the [Environment Variables](/docs/install/environment-variables.md) documentation to see if you want to configure any during installation.
|
||||||
|
You can configure environment variables at any time after deploying the application.
|
||||||
|
|
||||||
|
You can allow SCALE to create the datasets Immich requires automatically during app installation.
|
||||||
|
Or before beginning app installation, [create the datasets](https://www.truenas.com/docs/scale/scaletutorials/storage/datasets/datasetsscale/) to use in the **Storage Configuration** section during installation.
|
||||||
|
Immich requires seven datasets: **library**, **pgBackup**, **pgData**, **profile**, **thumbs**, **uploads**, and **video**.
|
||||||
|
You can organize these as one parent with seven child datasets, for example `mnt/tank/immich/library`, `mnt/tank/immich/pgBackup`, and so on.
|
||||||
|
|
||||||
|
## Installing the Immich Application
|
||||||
|
|
||||||
|
To install the **Immich** application, go to **Apps**, click **Discover Apps**, either begin typing Immich into the search field or scroll down to locate the **Immich** application widget.
|
||||||
|
|
||||||
|
<img
|
||||||
|
src={require('./img/truenas01.png').default}
|
||||||
|
width="50%"
|
||||||
|
alt="Immich App Widget"
|
||||||
|
className="border rounded-xl"
|
||||||
|
/>
|
||||||
|
|
||||||
|
Click on the widget to open the **Immich** application details screen.
|
||||||
|
|
||||||
|
<img
|
||||||
|
src={require('./img/truenas02.png').default}
|
||||||
|
width="100%"
|
||||||
|
alt="Immich App Details Screen"
|
||||||
|
className="border rounded-xl"
|
||||||
|
/>
|
||||||
|
|
||||||
|
Click **Install** to open the Immich application configuration screen.
|
||||||
|
|
||||||
|
Application configuration settings are presented in several sections, each explained below.
|
||||||
|
To find specific fields click in the **Search Input Fields** search field, scroll down to a particular section or click on the section heading on the navigation area in the upper-right corner.
|
||||||
|
|
||||||
|
<img
|
||||||
|
src={require('./img/truenas03.png').default}
|
||||||
|
width="100%"
|
||||||
|
alt="Install Immich Screen"
|
||||||
|
className="border rounded-xl"
|
||||||
|
/>
|
||||||
|
|
||||||
|
Accept the default values in **Application Name** and **Version**.
|
||||||
|
|
||||||
|
Accept the default value in **Timezone** or change to match your local timezone.
|
||||||
|
**Timezone** is only used by the Immich `exiftool` microservice if it cannot be determined from the image metadata.
|
||||||
|
|
||||||
|
Accept the default port in **Web Port**.
|
||||||
|
|
||||||
|
Immich requires seven storage datasets.
|
||||||
|
You can allow SCALE to create them for you, or use the dataset(s) created in [First Steps](#first-steps).
|
||||||
|
Select the storage options you want to use for **Immich Uploads Storage**, **Immich Library Storage**, **Immich Thumbs Storage**, **Immich Profile Storage**, **Immich Video Storage**, **Immich Postgres Data Storage**, **Immich Postgres Backup Storage**.
|
||||||
|
Select **ixVolume (dataset created automatically by the system)** in **Type** to let SCALE create the dataset or select **Host Path** to use the existing datasets created on the system.
|
||||||
|
|
||||||
|
Accept the defaults in Resources or change the CPU and memory limits to suit your use case.
|
||||||
|
|
||||||
|
Click **Install**.
|
||||||
|
The system opens the **Installed Applications** screen with the Immich app in the **Deploying** state.
|
||||||
|
When the installation completes it changes to **Running**.
|
||||||
|
|
||||||
|
<img
|
||||||
|
src={require('./img/truenas04.png').default}
|
||||||
|
width="100%"
|
||||||
|
alt="Immich Installed"
|
||||||
|
className="border rounded-xl"
|
||||||
|
/>
|
||||||
|
|
||||||
|
Click **Web Portal** on the **Application Info** widget to open the Immich web interface to set up your account and begin uploading photos.
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
For more information on how to use the application once installed, please refer to the [Post Install](/docs/install/post-install.mdx) guide.
|
||||||
|
:::
|
||||||
|
|
||||||
|
## Editing Environment Variables
|
||||||
|
|
||||||
|
Go to the **Installed Applications** screen and select Immich from the list of installed applications.
|
||||||
|
Click **Edit** on the **Application Info** widget to open the **Edit Immich** screen.
|
||||||
|
The settings on the edit screen are the same as on the install screen.
|
||||||
|
You cannot edit **Storage Configuration** paths after the initial app install.
|
||||||
|
|
||||||
|
Click **Update** to save changes.
|
||||||
|
TrueNAS automatically updates, recreates, and redeploys the Immich container with the updated environment variables.
|
||||||
|
|
||||||
|
## Updating the App
|
||||||
|
|
||||||
|
When updates become available, SCALE alerts and provides easy updates.
|
||||||
|
To update the app to the latest version, click **Update** on the **Application Info** widget from the **Installed Applications** screen.
|
||||||
|
|
||||||
|
Update opens an update window for the application that includes two selectable options, Images (to be updated) and Changelog. Click on the down arrow to see the options available for each.
|
||||||
|
|
||||||
|
Click **Upgrade** to begin the process and open a counter dialog that shows the upgrade progress. When complete, the update badge and buttons disappear and the application Update state on the Installed screen changes from Update Available to Up to date.
|
||||||
|
|
||||||
|
## Understanding Immich Settings in TrueNAS SCALE
|
||||||
|
|
||||||
|
Accept the default value or enter a name in **Application Name** field.
|
||||||
|
In most cases use the default name, but if adding a second deployment of the application you must change this name.
|
||||||
|
|
||||||
|
Accept the default version number in **Version**.
|
||||||
|
When a new version becomes available, the application has an update badge.
|
||||||
|
The **Installed Applications** screen shows the option to update applications.
|
||||||
|
|
||||||
|
### Immich Configuration Settings
|
||||||
|
|
||||||
|
You can accept the defaults in the **Immich Configuration** settings, or enter the settings you want to use.
|
||||||
|
|
||||||
|
<img
|
||||||
|
src={require('./img/truenas05.png').default}
|
||||||
|
width="100%"
|
||||||
|
alt="Configuration Settings"
|
||||||
|
className="border rounded-xl"
|
||||||
|
/>
|
||||||
|
|
||||||
|
Accept the default setting in **Timezone** or change to match your local timezone.
|
||||||
|
**Timezone** is only used by the Immich `exiftool` microservice if it cannot be determined from the image metadata.
|
||||||
|
|
||||||
|
You can enter a **Public Login Message** to display on the login page, or leave it blank.
|
||||||
|
|
||||||
|
### Networking Settings
|
||||||
|
|
||||||
|
Accept the default port numbers in **Web Port**.
|
||||||
|
The SCALE Immich app listens on port **30041**.
|
||||||
|
|
||||||
|
Refer to the TrueNAS [default port list](https://www.truenas.com/docs/references/defaultports/) for a list of assigned port numbers.
|
||||||
|
To change the port numbers, enter a number within the range 9000-65535.
|
||||||
|
|
||||||
|
<img
|
||||||
|
src={require('./img/truenas06.png').default}
|
||||||
|
width="100%"
|
||||||
|
alt="Networking Settings"
|
||||||
|
className="border rounded-xl"
|
||||||
|
/>
|
||||||
|
|
||||||
|
### Storage Settings
|
||||||
|
|
||||||
|
You can install Immich using the default setting **ixVolume (dataset created automatically by the system)** or use the host path option with datasets [created before installing the app](#first-steps).
|
||||||
|
|
||||||
|
<img
|
||||||
|
src={require('./img/truenas07.png').default}
|
||||||
|
width="100%"
|
||||||
|
alt="Configure Storage ixVolumes"
|
||||||
|
className="border rounded-xl"
|
||||||
|
/>
|
||||||
|
|
||||||
|
Select **Host Path (Path that already exists on the system)** to browse to and select the datasets.
|
||||||
|
|
||||||
|
<img
|
||||||
|
src={require('./img/truenas08.png').default}
|
||||||
|
width="100%"
|
||||||
|
alt="Configure Storage Host Paths"
|
||||||
|
className="border rounded-xl"
|
||||||
|
/>
|
||||||
|
|
||||||
|
### Resource Configuration Settings
|
||||||
|
|
||||||
|
Accept the default values in **Resources Configuration** or enter new CPU and memory values
|
||||||
|
By default, this application is limited to use no more than 4 CPU cores and 8 Gigabytes available memory. The application might use considerably less system resources.
|
||||||
|
|
||||||
|
<img
|
||||||
|
src={require('./img/truenas09.png').default}
|
||||||
|
width="100%"
|
||||||
|
alt="Resource Limits"
|
||||||
|
className="border rounded-xl"
|
||||||
|
/>
|
||||||
|
|
||||||
|
To customize the CPU and memory allocated to the container Immich uses, enter new CPU values as a plain integer value followed by the suffix m (milli).
|
||||||
|
Default is 4000m.
|
||||||
|
|
||||||
|
Accept the default value 8Gi allocated memory or enter a new limit in bytes.
|
||||||
|
Enter a plain integer followed by the measurement suffix, for example 129M or 123Mi.
|
||||||
|
|
||||||
|
Systems with compatible GPU(s) display devices in **GPU Configuration**.
|
||||||
|
See [Managing GPUs](https://www.truenas.com/docs/scale/scaletutorials/systemsettings/advanced/managegpuscale/) for more information about allocating isolated GPU devices in TrueNAS SCALE.
|
|
@ -101,6 +101,11 @@ const config = {
|
||||||
position: 'right',
|
position: 'right',
|
||||||
label: 'Docs',
|
label: 'Docs',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
to: '/milestones',
|
||||||
|
position: 'right',
|
||||||
|
label: 'Milestones',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
to: '/docs/api',
|
to: '/docs/api',
|
||||||
position: 'right',
|
position: 'right',
|
||||||
|
|
28
docs/package-lock.json
generated
|
@ -10,6 +10,8 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/core": "^2.4.3",
|
"@docusaurus/core": "^2.4.3",
|
||||||
"@docusaurus/preset-classic": "^2.4.3",
|
"@docusaurus/preset-classic": "^2.4.3",
|
||||||
|
"@mdi/js": "^7.3.67",
|
||||||
|
"@mdi/react": "^1.6.1",
|
||||||
"@mdx-js/react": "^1.6.22",
|
"@mdx-js/react": "^1.6.22",
|
||||||
"autoprefixer": "^10.4.13",
|
"autoprefixer": "^10.4.13",
|
||||||
"classnames": "^2.3.2",
|
"classnames": "^2.3.2",
|
||||||
|
@ -2862,6 +2864,19 @@
|
||||||
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
|
||||||
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
|
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
|
||||||
},
|
},
|
||||||
|
"node_modules/@mdi/js": {
|
||||||
|
"version": "7.3.67",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mdi/js/-/js-7.3.67.tgz",
|
||||||
|
"integrity": "sha512-MnRjknFqpTC6FifhGHjZ0+QYq2bAkZFQqIj8JA2AdPZbBxUvr8QSgB2yPAJ8/ob/XkR41xlg5majDR3c1JP1hw=="
|
||||||
|
},
|
||||||
|
"node_modules/@mdi/react": {
|
||||||
|
"version": "1.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mdi/react/-/react-1.6.1.tgz",
|
||||||
|
"integrity": "sha512-4qZeDcluDFGFTWkHs86VOlHkm6gnKaMql13/gpIcUQ8kzxHgpj31NuCkD8abECVfbULJ3shc7Yt4HJ6Wu6SN4w==",
|
||||||
|
"dependencies": {
|
||||||
|
"prop-types": "^15.7.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@mdx-js/mdx": {
|
"node_modules/@mdx-js/mdx": {
|
||||||
"version": "1.6.22",
|
"version": "1.6.22",
|
||||||
"resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz",
|
"resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz",
|
||||||
|
@ -16932,6 +16947,19 @@
|
||||||
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
|
||||||
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
|
"integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
|
||||||
},
|
},
|
||||||
|
"@mdi/js": {
|
||||||
|
"version": "7.3.67",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mdi/js/-/js-7.3.67.tgz",
|
||||||
|
"integrity": "sha512-MnRjknFqpTC6FifhGHjZ0+QYq2bAkZFQqIj8JA2AdPZbBxUvr8QSgB2yPAJ8/ob/XkR41xlg5majDR3c1JP1hw=="
|
||||||
|
},
|
||||||
|
"@mdi/react": {
|
||||||
|
"version": "1.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mdi/react/-/react-1.6.1.tgz",
|
||||||
|
"integrity": "sha512-4qZeDcluDFGFTWkHs86VOlHkm6gnKaMql13/gpIcUQ8kzxHgpj31NuCkD8abECVfbULJ3shc7Yt4HJ6Wu6SN4w==",
|
||||||
|
"requires": {
|
||||||
|
"prop-types": "^15.7.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@mdx-js/mdx": {
|
"@mdx-js/mdx": {
|
||||||
"version": "1.6.22",
|
"version": "1.6.22",
|
||||||
"resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz",
|
"resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz",
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/core": "^2.4.3",
|
"@docusaurus/core": "^2.4.3",
|
||||||
"@docusaurus/preset-classic": "^2.4.3",
|
"@docusaurus/preset-classic": "^2.4.3",
|
||||||
|
"@mdi/js": "^7.3.67",
|
||||||
|
"@mdi/react": "^1.6.1",
|
||||||
"@mdx-js/react": "^1.6.22",
|
"@mdx-js/react": "^1.6.22",
|
||||||
"autoprefixer": "^10.4.13",
|
"autoprefixer": "^10.4.13",
|
||||||
"classnames": "^2.3.2",
|
"classnames": "^2.3.2",
|
||||||
|
|
90
docs/src/components/timeline.tsx
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
import React from 'react';
|
||||||
|
import Icon from '@mdi/react';
|
||||||
|
import { mdiCheckboxMarkedCircleOutline } from '@mdi/js';
|
||||||
|
import useIsBrowser from '@docusaurus/useIsBrowser';
|
||||||
|
|
||||||
|
export interface Item {
|
||||||
|
icon: string;
|
||||||
|
title: string;
|
||||||
|
description?: string;
|
||||||
|
release: string;
|
||||||
|
tag?: string;
|
||||||
|
date: Date;
|
||||||
|
dateType: DateType;
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum DateType {
|
||||||
|
RELEASE = 'Release Date',
|
||||||
|
DATE = 'Date',
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
items: Item[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function Timeline({ items }: Props): JSX.Element {
|
||||||
|
const isBrowser = useIsBrowser();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ul className="flex flex-col pl-4">
|
||||||
|
{items.map((item, index) => {
|
||||||
|
const isFirst = index === 0;
|
||||||
|
const isLast = index === items.length - 1;
|
||||||
|
|
||||||
|
const classNames: string[] = [];
|
||||||
|
|
||||||
|
if (isFirst) {
|
||||||
|
classNames.push('');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isLast) {
|
||||||
|
classNames.push('rounded rounded-b-full');
|
||||||
|
}
|
||||||
|
|
||||||
|
return (
|
||||||
|
<li key={index} className="flex min-h-24 w-[700px] max-w-[90vw]">
|
||||||
|
<div className="md:flex justify-start w-36 mr-8 items-center dark:text-immich-dark-primary text-immich-primary hidden">
|
||||||
|
{isBrowser ? item.date.toLocaleDateString(navigator.language) : ''}
|
||||||
|
</div>
|
||||||
|
<div className={`${isFirst && 'relative top-[50%]'} ${isLast && 'relative bottom-[50%]'}`}>
|
||||||
|
<div
|
||||||
|
className={`h-full border-solid border-4 border-immich-primary dark:border-immich-dark-primary ${
|
||||||
|
isFirst && 'rounded rounded-t-full'
|
||||||
|
} ${isLast && 'rounded rounded-b-full'}`}
|
||||||
|
></div>
|
||||||
|
</div>
|
||||||
|
<div className="z-10 flex items-center bg-immich-primary dark:bg-immich-dark-primary border-2 border-solid rounded-full dark:text-black text-white relative top-[50%] left-[-3px] translate-y-[-50%] translate-x-[-50%] w-8 h-8 shadow-lg ">
|
||||||
|
<Icon path={mdiCheckboxMarkedCircleOutline} size={1.25} />
|
||||||
|
</div>
|
||||||
|
<section className=" dark:bg-immich-dark-gray bg-immich-gray dark:border-0 border-gray-200 border border-solid rounded-2xl flex flex-col w-full gap-2 p-4 md:ml-4 my-2 hover:bg-immich-primary/10 dark:hover:bg-immich-dark-primary/10 transition-all">
|
||||||
|
<div className="m-0 text-lg flex w-full items-center justify-between gap-2">
|
||||||
|
<p className="m-0 items-start flex gap-2">
|
||||||
|
<Icon path={item.icon} size={1} />
|
||||||
|
<span>{item.title}</span>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<span className="dark:text-immich-dark-primary text-immich-primary">
|
||||||
|
{item.tag ? (
|
||||||
|
<a
|
||||||
|
href={`https://github.com/immich-app/immich/releases/tag/${item.tag}`}
|
||||||
|
target="_blank"
|
||||||
|
rel="noopener"
|
||||||
|
>
|
||||||
|
[{item.release}]{' '}
|
||||||
|
</a>
|
||||||
|
) : (
|
||||||
|
<span>[{item.release}]</span>
|
||||||
|
)}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div className="md:hidden text-xs">
|
||||||
|
{`${item.dateType} - ${isBrowser ? item.date.toLocaleDateString(navigator.language) : ''}`}
|
||||||
|
</div>
|
||||||
|
<p className="m-0 text-sm text-gray-600 dark:text-gray-300">{item.description}</p>
|
||||||
|
</section>
|
||||||
|
</li>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</ul>
|
||||||
|
);
|
||||||
|
}
|
|
@ -1,7 +0,0 @@
|
||||||
---
|
|
||||||
title: Markdown page example
|
|
||||||
---
|
|
||||||
|
|
||||||
# Markdown page example
|
|
||||||
|
|
||||||
You don't need React to write simple standalone pages.
|
|
592
docs/src/pages/milestones.tsx
Normal file
|
@ -0,0 +1,592 @@
|
||||||
|
import {
|
||||||
|
mdiAccountGroup,
|
||||||
|
mdiAndroid,
|
||||||
|
mdiAppleIos,
|
||||||
|
mdiArchiveOutline,
|
||||||
|
mdiBookSearchOutline,
|
||||||
|
mdiCakeVariant,
|
||||||
|
mdiCheckAll,
|
||||||
|
mdiCheckboxMarked,
|
||||||
|
mdiCollage,
|
||||||
|
mdiContentCopy,
|
||||||
|
mdiDevices,
|
||||||
|
mdiFaceMan,
|
||||||
|
mdiFaceManOutline,
|
||||||
|
mdiFile,
|
||||||
|
mdiFileSearch,
|
||||||
|
mdiFolder,
|
||||||
|
mdiHeart,
|
||||||
|
mdiImage,
|
||||||
|
mdiImageAlbum,
|
||||||
|
mdiImageMultipleOutline,
|
||||||
|
mdiImageSearch,
|
||||||
|
mdiKeyboardSettingsOutline,
|
||||||
|
mdiMagnify,
|
||||||
|
mdiMap,
|
||||||
|
mdiMaterialDesign,
|
||||||
|
mdiMerge,
|
||||||
|
mdiMonitor,
|
||||||
|
mdiMotionPlayOutline,
|
||||||
|
mdiPalette,
|
||||||
|
mdiPanVertical,
|
||||||
|
mdiPartyPopper,
|
||||||
|
mdiRaw,
|
||||||
|
mdiRotate360,
|
||||||
|
mdiSecurity,
|
||||||
|
mdiServer,
|
||||||
|
mdiShareAll,
|
||||||
|
mdiShareCircle,
|
||||||
|
mdiStar,
|
||||||
|
mdiTag,
|
||||||
|
mdiText,
|
||||||
|
mdiThemeLightDark,
|
||||||
|
mdiTrashCanOutline,
|
||||||
|
mdiVideo,
|
||||||
|
mdiWeb,
|
||||||
|
} from '@mdi/js';
|
||||||
|
import Layout from '@theme/Layout';
|
||||||
|
import React from 'react';
|
||||||
|
import Timeline, { DateType, Item } from '../components/timeline';
|
||||||
|
|
||||||
|
const items: Item[] = [
|
||||||
|
{
|
||||||
|
icon: mdiStar,
|
||||||
|
description: 'Reach 20K Stars on GitHub!',
|
||||||
|
title: '20,000 Stars',
|
||||||
|
release: 'v1.83.0',
|
||||||
|
tag: 'v1.83.0',
|
||||||
|
date: new Date(2023, 9, 28),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiContentCopy,
|
||||||
|
title: 'Stack assets',
|
||||||
|
description: 'Manual asset stacking for grouping and hiding related assets in the main timeline.',
|
||||||
|
release: 'v1.83.0',
|
||||||
|
tag: 'v1.83.0',
|
||||||
|
date: new Date(2023, 9, 28),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiPalette,
|
||||||
|
title: 'Custom theme',
|
||||||
|
description: 'Apply your custom CSS for modifying fonts, colors, and styles in the web application.',
|
||||||
|
release: 'v1.83.0',
|
||||||
|
tag: 'v1.83.0',
|
||||||
|
date: new Date(2023, 9, 28),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiTrashCanOutline,
|
||||||
|
title: 'Trash Feature',
|
||||||
|
description: 'Trash, restore from trash, and automatically empty the recycle bin after 30 days.',
|
||||||
|
release: 'v1.82.0',
|
||||||
|
tag: 'v1.82.0',
|
||||||
|
date: new Date(2023, 9, 17),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiBookSearchOutline,
|
||||||
|
title: 'External Libraries',
|
||||||
|
description: 'Automatically import media into Immich based on imports paths and ignore patterns.',
|
||||||
|
release: 'v1.79.0',
|
||||||
|
tag: 'v1.79.0',
|
||||||
|
date: new Date(2023, 8, 21),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiMap,
|
||||||
|
title: 'Map View (Mobile)',
|
||||||
|
description: 'Heat map implementation in the mobile app.',
|
||||||
|
release: 'v1.76.0',
|
||||||
|
tag: 'v1.76.0',
|
||||||
|
date: new Date(2023, 7, 29),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiFile,
|
||||||
|
title: 'Configuration File',
|
||||||
|
description: 'Auto-configure an Immich installation via a configuration file.',
|
||||||
|
release: 'v1.75.0',
|
||||||
|
tag: 'v1.75.0',
|
||||||
|
date: new Date(2023, 7, 26),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiMonitor,
|
||||||
|
title: 'Slideshow Mode (Web)',
|
||||||
|
description: 'Start a full-screen slideshow from an Album on the web.',
|
||||||
|
release: 'v1.75.0',
|
||||||
|
tag: 'v1.75.0',
|
||||||
|
date: new Date(2023, 7, 26),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiServer,
|
||||||
|
title: 'Hardware Transcoding',
|
||||||
|
description: 'Support hardware acceleration (QuickSync, VAAPI, and Nvidia) for video transcoding.',
|
||||||
|
release: 'v1.72.0',
|
||||||
|
tag: 'v1.72.0',
|
||||||
|
date: new Date(2023, 7, 6),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiImageAlbum,
|
||||||
|
title: 'View Albums via Time Buckets',
|
||||||
|
description: 'Upgrade albums to use time buckets, an optimized virtual viewport.',
|
||||||
|
release: 'v1.72.0',
|
||||||
|
tag: 'v1.72.0',
|
||||||
|
date: new Date(2023, 7, 6),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiImageAlbum,
|
||||||
|
title: 'Album Description',
|
||||||
|
description: 'Save an album description.',
|
||||||
|
release: 'v1.72.0',
|
||||||
|
tag: 'v1.72.0',
|
||||||
|
date: new Date(2023, 7, 6),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiRotate360,
|
||||||
|
title: '360° Photos (Web)',
|
||||||
|
description: 'View 360° Photos on the web.',
|
||||||
|
release: 'v1.71.0',
|
||||||
|
tag: 'v1.71.0',
|
||||||
|
date: new Date(2023, 6, 29),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiMotionPlayOutline,
|
||||||
|
title: 'Android Motion Photos',
|
||||||
|
description: 'Add support for Android Motion Photos.',
|
||||||
|
release: 'v1.69.0',
|
||||||
|
tag: 'v1.69.0',
|
||||||
|
date: new Date(2023, 6, 23),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiFaceManOutline,
|
||||||
|
title: 'Show/Hide Faces',
|
||||||
|
description: 'Add the options to show or hide faces.',
|
||||||
|
release: 'v1.68.0',
|
||||||
|
tag: 'v1.68.0',
|
||||||
|
date: new Date(2023, 6, 20),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiMerge,
|
||||||
|
title: 'Merge Faces',
|
||||||
|
description: 'Add the ability to merge multiple faces together.',
|
||||||
|
release: 'v1.67.0',
|
||||||
|
tag: 'v1.67.0',
|
||||||
|
date: new Date(2023, 6, 14),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiImage,
|
||||||
|
title: 'Feature Photo',
|
||||||
|
description: 'Add the option to change the feature photo for a person.',
|
||||||
|
release: 'v1.66.0',
|
||||||
|
tag: 'v1.66.0',
|
||||||
|
date: new Date(2023, 6, 4),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiKeyboardSettingsOutline,
|
||||||
|
title: 'Multi-Select via SHIFT',
|
||||||
|
description: 'Add the option to multi-select while holding SHIFT.',
|
||||||
|
release: 'v1.66.0',
|
||||||
|
tag: 'v1.66.0',
|
||||||
|
date: new Date(2023, 6, 4),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiImageMultipleOutline,
|
||||||
|
title: 'Memories (Mobile)',
|
||||||
|
description: 'View "On this day..." memories in the mobile app.',
|
||||||
|
release: 'v1.65.0',
|
||||||
|
tag: 'v1.65.0',
|
||||||
|
date: new Date(2023, 5, 30),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiFaceMan,
|
||||||
|
title: 'Facial Recognition (Mobile)',
|
||||||
|
description: 'View detected faces in the mobile app.',
|
||||||
|
release: 'v1.63.0',
|
||||||
|
tag: 'v1.63.0',
|
||||||
|
date: new Date(2023, 5, 24),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiImageMultipleOutline,
|
||||||
|
title: 'Memories (Web)',
|
||||||
|
description: 'View pictures taken in past years on this day on the web.',
|
||||||
|
release: 'v1.61.0',
|
||||||
|
tag: 'v1.61.0',
|
||||||
|
date: new Date(2023, 5, 16),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiCollage,
|
||||||
|
title: 'Justified Layout (Web)',
|
||||||
|
description: 'Implement justified layout (collage) on the web.',
|
||||||
|
release: 'v1.61.0',
|
||||||
|
tag: 'v1.61.0',
|
||||||
|
date: new Date(2023, 5, 16),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiRaw,
|
||||||
|
title: 'RAW File Formats',
|
||||||
|
description: 'Support for RAW file formats.',
|
||||||
|
release: 'v1.61.0',
|
||||||
|
tag: 'v1.61.0',
|
||||||
|
date: new Date(2023, 5, 16),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiShareAll,
|
||||||
|
title: 'Partner Sharing (Mobile)',
|
||||||
|
description: 'View shared partner photos in the mobile app.',
|
||||||
|
release: 'v1.58.0',
|
||||||
|
tag: 'v1.58.0',
|
||||||
|
date: new Date(2023, 4, 28),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiFile,
|
||||||
|
title: 'XMP Sidecar',
|
||||||
|
description: 'Attach XMP Sidecar files to assets.',
|
||||||
|
release: 'v1.58.0',
|
||||||
|
tag: 'v1.58.0',
|
||||||
|
date: new Date(2023, 4, 28),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiFolder,
|
||||||
|
title: 'Custom Storage Label',
|
||||||
|
description: 'Replace the user UUID in the storage template with a custom label.',
|
||||||
|
release: 'v1.57.0',
|
||||||
|
tag: 'v1.57.0',
|
||||||
|
date: new Date(2023, 4, 23),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiShareCircle,
|
||||||
|
title: 'Partner Sharing',
|
||||||
|
description: 'Share your entire collection with another user.',
|
||||||
|
release: 'v1.56.0',
|
||||||
|
tag: 'v1.56.0',
|
||||||
|
date: new Date(2023, 4, 18),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiFaceMan,
|
||||||
|
title: 'Facial Recognition',
|
||||||
|
description: 'Detect faces in pictures and cluster them together as people, which can be named.',
|
||||||
|
release: 'v1.56.0',
|
||||||
|
tag: 'v1.56.0',
|
||||||
|
date: new Date(2023, 4, 18),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiMap,
|
||||||
|
title: 'Map View (Web)',
|
||||||
|
description: 'View a global map, with clusters of photos based on corresponding GPS data.',
|
||||||
|
release: 'v1.55.0',
|
||||||
|
tag: 'v1.55.0',
|
||||||
|
date: new Date(2023, 4, 9),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiDevices,
|
||||||
|
title: 'Manage Auth Devices',
|
||||||
|
description: 'Manage logged-in devices and revoke access from User Settings.',
|
||||||
|
release: 'v1.55.0',
|
||||||
|
tag: 'v1.55.0',
|
||||||
|
date: new Date(2023, 4, 9),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiStar,
|
||||||
|
description: 'Reach 10K Stars on GitHub!',
|
||||||
|
title: '10,000 Stars',
|
||||||
|
release: 'v1.54.0',
|
||||||
|
tag: 'v1.54.0',
|
||||||
|
date: new Date(2023, 3, 18),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiText,
|
||||||
|
title: 'Asset Descriptions',
|
||||||
|
description: 'Save an asset description',
|
||||||
|
release: 'v1.54.0',
|
||||||
|
tag: 'v1.54.0',
|
||||||
|
date: new Date(2023, 3, 18),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiArchiveOutline,
|
||||||
|
title: 'Archiving',
|
||||||
|
description: 'Remove assets from the main timeline by archiving them.',
|
||||||
|
release: 'v1.54.0',
|
||||||
|
tag: 'v1.54.0',
|
||||||
|
date: new Date(2023, 3, 18),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiDevices,
|
||||||
|
title: 'Responsive Web App',
|
||||||
|
description: 'Optimize the web app for small screen.',
|
||||||
|
release: 'v1.54.0',
|
||||||
|
tag: 'v1.54.0',
|
||||||
|
date: new Date(2023, 3, 18),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiFileSearch,
|
||||||
|
title: 'Search By Metadata',
|
||||||
|
description: 'Search images by filename, description, tagged people, make, model, and other metadata.',
|
||||||
|
release: 'v1.52.0',
|
||||||
|
tag: 'v1.52.0',
|
||||||
|
date: new Date(2023, 2, 29),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiImageSearch,
|
||||||
|
title: 'CLIP Search',
|
||||||
|
description: 'Search images with free-form text like "Sunset at the beach".',
|
||||||
|
release: 'v1.51.0',
|
||||||
|
tag: 'v1.51.0',
|
||||||
|
date: new Date(2023, 2, 20),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiMagnify,
|
||||||
|
title: 'Explore Page',
|
||||||
|
description: 'View tagged places, object, and people.',
|
||||||
|
release: 'v1.51.0',
|
||||||
|
tag: 'v1.51.0',
|
||||||
|
date: new Date(2023, 2, 20),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiAppleIos,
|
||||||
|
title: 'iOS Background Uploads',
|
||||||
|
description: 'Automatically backup pictures in the background on iOS.',
|
||||||
|
release: 'v1.48.0',
|
||||||
|
tag: 'v1.48.0',
|
||||||
|
date: new Date(2023, 1, 21),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiMotionPlayOutline,
|
||||||
|
title: 'Auto-Link Live Photos',
|
||||||
|
description: 'Automatically link live photos, even when uploaded as separate files.',
|
||||||
|
release: 'v1.48.0',
|
||||||
|
tag: 'v1.48.0',
|
||||||
|
date: new Date(2023, 2, 21),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiMaterialDesign,
|
||||||
|
title: 'Material Design 3 (Mobile)',
|
||||||
|
description: 'Upgrade the mobile app to Material Design 3.',
|
||||||
|
release: 'v1.47.0',
|
||||||
|
tag: 'v1.47.0',
|
||||||
|
date: new Date(2023, 1, 13),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiHeart,
|
||||||
|
title: 'Favorites (Mobile)',
|
||||||
|
description: 'Show favorites on the mobile app.',
|
||||||
|
release: 'v1.46.0',
|
||||||
|
tag: 'v1.46.0',
|
||||||
|
date: new Date(2023, 1, 9),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiCakeVariant,
|
||||||
|
title: 'Immich Turns 1',
|
||||||
|
description: 'Immich is officially one year old.',
|
||||||
|
release: 'v1.43.0',
|
||||||
|
tag: 'v1.43.0',
|
||||||
|
date: new Date(2023, 1, 3),
|
||||||
|
dateType: DateType.DATE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiHeart,
|
||||||
|
title: 'Favorites Page (Web)',
|
||||||
|
description: 'Favorite and view favorites on the web.',
|
||||||
|
release: 'v1.43.0',
|
||||||
|
tag: 'v1.43.0',
|
||||||
|
date: new Date(2023, 0, 27),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiShareCircle,
|
||||||
|
title: 'Public Share Links',
|
||||||
|
description: 'Share photos and albums publicly via a shared link.',
|
||||||
|
release: 'v1.41.0',
|
||||||
|
tag: 'v1.41.1_64-dev',
|
||||||
|
date: new Date(2023, 0, 10),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiFolder,
|
||||||
|
title: 'User-Defined Storage Structure',
|
||||||
|
description: 'Support custom storage structures.',
|
||||||
|
release: 'v1.39.0',
|
||||||
|
tag: 'v1.39.0_61-dev',
|
||||||
|
date: new Date(2022, 11, 19),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiMotionPlayOutline,
|
||||||
|
title: 'iOS Live Photos',
|
||||||
|
description: 'Backup and display iOS Live Photos.',
|
||||||
|
release: 'v1.36.0',
|
||||||
|
tag: 'v1.36.0_55-dev',
|
||||||
|
date: new Date(2022, 10, 20),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiSecurity,
|
||||||
|
title: 'OAuth Integration',
|
||||||
|
description: 'Support OAuth2 and OIDC capable identity providers.',
|
||||||
|
release: 'v1.36.0',
|
||||||
|
tag: 'v1.36.0_55-dev',
|
||||||
|
date: new Date(2022, 10, 20),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiWeb,
|
||||||
|
title: 'Documentation Site',
|
||||||
|
description: 'Release an official documentation website.',
|
||||||
|
release: 'v1.33.1',
|
||||||
|
tag: 'v1.33.0_52-dev',
|
||||||
|
date: new Date(2022, 9, 26),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiThemeLightDark,
|
||||||
|
title: 'Dark Mode (Web)',
|
||||||
|
description: 'Dark mode on the web.',
|
||||||
|
release: 'v1.32.0',
|
||||||
|
tag: ' v1.32.0_50-dev',
|
||||||
|
date: new Date(2022, 9, 14),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiPanVertical,
|
||||||
|
title: 'Virtual Scrollbar (Web)',
|
||||||
|
description: 'View the main timeline with a virtual scrollbar, allowing to jump to any point in time, instantly.',
|
||||||
|
release: 'v1.27.0',
|
||||||
|
tag: 'v1.27.0_37-dev',
|
||||||
|
date: new Date(2022, 8, 6),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiCheckAll,
|
||||||
|
title: 'Checksum Duplication Check',
|
||||||
|
description: 'Enforce per user sha1 checksum uniqueness.',
|
||||||
|
release: 'v1.27.0',
|
||||||
|
tag: 'v1.27.0_37-dev',
|
||||||
|
date: new Date(2022, 8, 6),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiAndroid,
|
||||||
|
title: 'Android Background Backup',
|
||||||
|
description: 'Automatic backup in the background on Android.',
|
||||||
|
release: 'v1.24.0',
|
||||||
|
tag: 'v1.24.0_34-dev',
|
||||||
|
date: new Date(2022, 7, 19),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiAccountGroup,
|
||||||
|
title: 'Admin Portal',
|
||||||
|
description: 'Manage users and admin settings from the web.',
|
||||||
|
release: 'v1.10.0',
|
||||||
|
tag: 'v1.10.0_15-dev',
|
||||||
|
date: new Date(2022, 4, 29),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiShareCircle,
|
||||||
|
title: 'Album Sharing',
|
||||||
|
description: 'Share albums with other users.',
|
||||||
|
release: 'v1.7.0',
|
||||||
|
tag: 'v1.7.0_11-dev ',
|
||||||
|
date: new Date(2022, 3, 24),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiTag,
|
||||||
|
title: 'Image Tagging',
|
||||||
|
description: 'Tag images with custom values.',
|
||||||
|
release: 'v1.7.0',
|
||||||
|
tag: 'v1.7.0_11-dev ',
|
||||||
|
date: new Date(2022, 3, 24),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiImage,
|
||||||
|
title: 'View Exif',
|
||||||
|
description: 'View metadata about assets.',
|
||||||
|
release: 'v1.3.0',
|
||||||
|
tag: 'V1.3.0-dev ',
|
||||||
|
date: new Date(2022, 2, 22),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiCheckboxMarked,
|
||||||
|
title: 'Multi Select',
|
||||||
|
description: 'Select and execute actions on multiple assets at the same time.',
|
||||||
|
release: 'v1.2.0',
|
||||||
|
tag: 'V0.2-dev ',
|
||||||
|
date: new Date(2022, 1, 8),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiVideo,
|
||||||
|
title: 'Video Player',
|
||||||
|
description: 'Play videos in the web and on mobile.',
|
||||||
|
release: 'v1.2.0',
|
||||||
|
tag: 'v0.2-dev ',
|
||||||
|
date: new Date(2022, 1, 8),
|
||||||
|
dateType: DateType.RELEASE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: mdiPartyPopper,
|
||||||
|
title: 'First Commit',
|
||||||
|
description: 'First commit on GitHub, Immich is born.',
|
||||||
|
release: 'v1.0.0',
|
||||||
|
date: new Date(2022, 1, 3),
|
||||||
|
dateType: DateType.DATE,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function MilestonePage(): JSX.Element {
|
||||||
|
return (
|
||||||
|
<Layout title="Milestones" description="History of Immich">
|
||||||
|
<section className="my-8">
|
||||||
|
<h1 className="md:text-6xl text-center mb-10 text-immich-primary dark:text-immich-dark-primary px-2">
|
||||||
|
Major Milestones
|
||||||
|
</h1>
|
||||||
|
<p className="text-center text-xl px-2">
|
||||||
|
A list of project achievements and milestones, <br />
|
||||||
|
by release date.
|
||||||
|
</p>
|
||||||
|
<div className="flex justify-around mt-8 w-full max-w-full">
|
||||||
|
<Timeline items={items} />
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</Layout>
|
||||||
|
);
|
||||||
|
}
|
|
@ -10,9 +10,8 @@ RUN poetry config installer.max-workers 10 && \
|
||||||
RUN python -m venv /opt/venv
|
RUN python -m venv /opt/venv
|
||||||
ENV VIRTUAL_ENV="/opt/venv" PATH="/opt/venv/bin:${PATH}"
|
ENV VIRTUAL_ENV="/opt/venv" PATH="/opt/venv/bin:${PATH}"
|
||||||
|
|
||||||
COPY poetry.lock pyproject.toml requirements.txt ./
|
COPY poetry.lock pyproject.toml ./
|
||||||
RUN poetry install --sync --no-interaction --no-ansi --no-root --only main
|
RUN poetry install --sync --no-interaction --no-ansi --no-root --only main
|
||||||
RUN pip install --no-deps -r requirements.txt
|
|
||||||
|
|
||||||
FROM python:3.11-slim-bookworm
|
FROM python:3.11-slim-bookworm
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import json
|
import json
|
||||||
from typing import Any, Iterator, TypeAlias
|
from pathlib import Path
|
||||||
|
from typing import Any, Iterator
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
@ -8,8 +9,7 @@ from fastapi.testclient import TestClient
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
from .main import app, init_state
|
from .main import app, init_state
|
||||||
|
from .schemas import ndarray_f32
|
||||||
ndarray: TypeAlias = np.ndarray[int, np.dtype[np.float32]]
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
@ -18,13 +18,13 @@ def pil_image() -> Image.Image:
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def cv_image(pil_image: Image.Image) -> ndarray:
|
def cv_image(pil_image: Image.Image) -> ndarray_f32:
|
||||||
return np.asarray(pil_image)[:, :, ::-1] # PIL uses RGB while cv2 uses BGR
|
return np.asarray(pil_image)[:, :, ::-1] # PIL uses RGB while cv2 uses BGR
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def mock_get_model() -> Iterator[mock.Mock]:
|
def mock_get_model() -> Iterator[mock.Mock]:
|
||||||
with mock.patch("app.models.cache.InferenceModel.from_model_type", autospec=True) as mocked:
|
with mock.patch("app.models.cache.from_model_type", autospec=True) as mocked:
|
||||||
yield mocked
|
yield mocked
|
||||||
|
|
||||||
|
|
||||||
|
@ -37,3 +37,25 @@ def deployed_app() -> TestClient:
|
||||||
@pytest.fixture(scope="session")
|
@pytest.fixture(scope="session")
|
||||||
def responses() -> dict[str, Any]:
|
def responses() -> dict[str, Any]:
|
||||||
return json.load(open("responses.json", "r"))
|
return json.load(open("responses.json", "r"))
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="session")
|
||||||
|
def clip_model_cfg() -> dict[str, Any]:
|
||||||
|
return {
|
||||||
|
"embed_dim": 512,
|
||||||
|
"vision_cfg": {"image_size": 224, "layers": 12, "width": 768, "patch_size": 32},
|
||||||
|
"text_cfg": {"context_length": 77, "vocab_size": 49408, "width": 512, "heads": 8, "layers": 12},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="session")
|
||||||
|
def clip_preprocess_cfg() -> dict[str, Any]:
|
||||||
|
return {
|
||||||
|
"size": [224, 224],
|
||||||
|
"mode": "RGB",
|
||||||
|
"mean": [0.48145466, 0.4578275, 0.40821073],
|
||||||
|
"std": [0.26862954, 0.26130258, 0.27577711],
|
||||||
|
"interpolation": "bicubic",
|
||||||
|
"resize_mode": "shortest",
|
||||||
|
"fill_color": 0,
|
||||||
|
}
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
from .clip import CLIPEncoder
|
from typing import Any
|
||||||
|
|
||||||
|
from app.schemas import ModelType
|
||||||
|
|
||||||
|
from .base import InferenceModel
|
||||||
|
from .clip import MCLIPEncoder, OpenCLIPEncoder, is_mclip, is_openclip
|
||||||
from .facial_recognition import FaceRecognizer
|
from .facial_recognition import FaceRecognizer
|
||||||
from .image_classification import ImageClassifier
|
from .image_classification import ImageClassifier
|
||||||
|
|
||||||
|
|
||||||
|
def from_model_type(model_type: ModelType, model_name: str, **model_kwargs: Any) -> InferenceModel:
|
||||||
|
match model_type:
|
||||||
|
case ModelType.CLIP:
|
||||||
|
if is_openclip(model_name):
|
||||||
|
return OpenCLIPEncoder(model_name, **model_kwargs)
|
||||||
|
elif is_mclip(model_name):
|
||||||
|
return MCLIPEncoder(model_name, **model_kwargs)
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Unknown CLIP model {model_name}")
|
||||||
|
case ModelType.FACIAL_RECOGNITION:
|
||||||
|
return FaceRecognizer(model_name, **model_kwargs)
|
||||||
|
case ModelType.IMAGE_CLASSIFICATION:
|
||||||
|
return ImageClassifier(model_name, **model_kwargs)
|
||||||
|
case _:
|
||||||
|
raise ValueError(f"Unknown model type {model_type}")
|
||||||
|
|
|
@ -25,7 +25,7 @@ class InferenceModel(ABC):
|
||||||
) -> None:
|
) -> None:
|
||||||
self.model_name = model_name
|
self.model_name = model_name
|
||||||
self.loaded = False
|
self.loaded = False
|
||||||
self._cache_dir = Path(cache_dir) if cache_dir is not None else get_cache_dir(model_name, self.model_type)
|
self._cache_dir = Path(cache_dir) if cache_dir is not None else None
|
||||||
self.providers = model_kwargs.pop("providers", ["CPUExecutionProvider"])
|
self.providers = model_kwargs.pop("providers", ["CPUExecutionProvider"])
|
||||||
# don't pre-allocate more memory than needed
|
# don't pre-allocate more memory than needed
|
||||||
self.provider_options = model_kwargs.pop(
|
self.provider_options = model_kwargs.pop(
|
||||||
|
@ -92,7 +92,7 @@ class InferenceModel(ABC):
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def cache_dir(self) -> Path:
|
def cache_dir(self) -> Path:
|
||||||
return self._cache_dir
|
return self._cache_dir if self._cache_dir is not None else get_cache_dir(self.model_name, self.model_type)
|
||||||
|
|
||||||
@cache_dir.setter
|
@cache_dir.setter
|
||||||
def cache_dir(self, cache_dir: Path) -> None:
|
def cache_dir(self, cache_dir: Path) -> None:
|
||||||
|
|
|
@ -4,6 +4,8 @@ from aiocache.backends.memory import SimpleMemoryCache
|
||||||
from aiocache.lock import OptimisticLock
|
from aiocache.lock import OptimisticLock
|
||||||
from aiocache.plugins import BasePlugin, TimingPlugin
|
from aiocache.plugins import BasePlugin, TimingPlugin
|
||||||
|
|
||||||
|
from app.models import from_model_type
|
||||||
|
|
||||||
from ..schemas import ModelType
|
from ..schemas import ModelType
|
||||||
from .base import InferenceModel
|
from .base import InferenceModel
|
||||||
|
|
||||||
|
@ -50,7 +52,7 @@ class ModelCache:
|
||||||
async with OptimisticLock(self.cache, key) as lock:
|
async with OptimisticLock(self.cache, key) as lock:
|
||||||
model = await self.cache.get(key)
|
model = await self.cache.get(key)
|
||||||
if model is None:
|
if model is None:
|
||||||
model = InferenceModel.from_model_type(model_type, model_name, **model_kwargs)
|
model = from_model_type(model_type, model_name, **model_kwargs)
|
||||||
await lock.cas(model, ttl=self.ttl)
|
await lock.cas(model, ttl=self.ttl)
|
||||||
return model
|
return model
|
||||||
|
|
||||||
|
|
|
@ -1,23 +1,24 @@
|
||||||
import os
|
import json
|
||||||
import zipfile
|
from abc import abstractmethod
|
||||||
|
from functools import cached_property
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
|
from pathlib import Path
|
||||||
from typing import Any, Literal
|
from typing import Any, Literal
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
import onnxruntime as ort
|
import onnxruntime as ort
|
||||||
import torch
|
from huggingface_hub import snapshot_download
|
||||||
from clip_server.model.clip import BICUBIC, _convert_image_to_rgb
|
|
||||||
from clip_server.model.clip_onnx import _MODELS, _S3_BUCKET_V2, CLIPOnnxModel, download_model
|
|
||||||
from clip_server.model.pretrained_models import _VISUAL_MODEL_IMAGE_SIZE
|
|
||||||
from clip_server.model.tokenization import Tokenizer
|
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
from torchvision.transforms import CenterCrop, Compose, Normalize, Resize, ToTensor
|
from transformers import AutoTokenizer
|
||||||
|
|
||||||
|
from app.config import log
|
||||||
|
from app.models.transforms import crop, get_pil_resampling, normalize, resize, to_numpy
|
||||||
|
from app.schemas import ModelType, ndarray_f32, ndarray_i32, ndarray_i64
|
||||||
|
|
||||||
from ..config import log
|
|
||||||
from ..schemas import ModelType
|
|
||||||
from .base import InferenceModel
|
from .base import InferenceModel
|
||||||
|
|
||||||
|
|
||||||
class CLIPEncoder(InferenceModel):
|
class BaseCLIPEncoder(InferenceModel):
|
||||||
_model_type = ModelType.CLIP
|
_model_type = ModelType.CLIP
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
|
@ -27,48 +28,29 @@ class CLIPEncoder(InferenceModel):
|
||||||
mode: Literal["text", "vision"] | None = None,
|
mode: Literal["text", "vision"] | None = None,
|
||||||
**model_kwargs: Any,
|
**model_kwargs: Any,
|
||||||
) -> None:
|
) -> None:
|
||||||
if mode is not None and mode not in ("text", "vision"):
|
|
||||||
raise ValueError(f"Mode must be 'text', 'vision', or omitted; got '{mode}'")
|
|
||||||
if model_name not in _MODELS:
|
|
||||||
raise ValueError(f"Unknown model name {model_name}.")
|
|
||||||
self.mode = mode
|
self.mode = mode
|
||||||
super().__init__(model_name, cache_dir, **model_kwargs)
|
super().__init__(model_name, cache_dir, **model_kwargs)
|
||||||
|
|
||||||
def _download(self) -> None:
|
|
||||||
models: tuple[tuple[str, str], tuple[str, str]] = _MODELS[self.model_name]
|
|
||||||
text_onnx_path = self.cache_dir / "textual.onnx"
|
|
||||||
vision_onnx_path = self.cache_dir / "visual.onnx"
|
|
||||||
|
|
||||||
if not text_onnx_path.is_file():
|
|
||||||
self._download_model(*models[0])
|
|
||||||
|
|
||||||
if not vision_onnx_path.is_file():
|
|
||||||
self._download_model(*models[1])
|
|
||||||
|
|
||||||
def _load(self) -> None:
|
def _load(self) -> None:
|
||||||
if self.mode == "text" or self.mode is None:
|
if self.mode == "text" or self.mode is None:
|
||||||
log.debug(f"Loading clip text model '{self.model_name}'")
|
log.debug(f"Loading clip text model '{self.model_name}'")
|
||||||
|
|
||||||
self.text_model = ort.InferenceSession(
|
self.text_model = ort.InferenceSession(
|
||||||
self.cache_dir / "textual.onnx",
|
self.textual_path.as_posix(),
|
||||||
sess_options=self.sess_options,
|
sess_options=self.sess_options,
|
||||||
providers=self.providers,
|
providers=self.providers,
|
||||||
provider_options=self.provider_options,
|
provider_options=self.provider_options,
|
||||||
)
|
)
|
||||||
self.text_outputs = [output.name for output in self.text_model.get_outputs()]
|
|
||||||
self.tokenizer = Tokenizer(self.model_name)
|
|
||||||
|
|
||||||
if self.mode == "vision" or self.mode is None:
|
if self.mode == "vision" or self.mode is None:
|
||||||
log.debug(f"Loading clip vision model '{self.model_name}'")
|
log.debug(f"Loading clip vision model '{self.model_name}'")
|
||||||
|
|
||||||
self.vision_model = ort.InferenceSession(
|
self.vision_model = ort.InferenceSession(
|
||||||
self.cache_dir / "visual.onnx",
|
self.visual_path.as_posix(),
|
||||||
sess_options=self.sess_options,
|
sess_options=self.sess_options,
|
||||||
providers=self.providers,
|
providers=self.providers,
|
||||||
provider_options=self.provider_options,
|
provider_options=self.provider_options,
|
||||||
)
|
)
|
||||||
self.vision_outputs = [output.name for output in self.vision_model.get_outputs()]
|
|
||||||
|
|
||||||
image_size = _VISUAL_MODEL_IMAGE_SIZE[CLIPOnnxModel.get_model_name(self.model_name)]
|
|
||||||
self.transform = _transform_pil_image(image_size)
|
|
||||||
|
|
||||||
def _predict(self, image_or_text: Image.Image | str) -> list[float]:
|
def _predict(self, image_or_text: Image.Image | str) -> list[float]:
|
||||||
if isinstance(image_or_text, bytes):
|
if isinstance(image_or_text, bytes):
|
||||||
|
@ -78,55 +60,163 @@ class CLIPEncoder(InferenceModel):
|
||||||
case Image.Image():
|
case Image.Image():
|
||||||
if self.mode == "text":
|
if self.mode == "text":
|
||||||
raise TypeError("Cannot encode image as text-only model")
|
raise TypeError("Cannot encode image as text-only model")
|
||||||
pixel_values = self.transform(image_or_text)
|
|
||||||
assert isinstance(pixel_values, torch.Tensor)
|
outputs = self.vision_model.run(None, self.transform(image_or_text))
|
||||||
pixel_values = torch.unsqueeze(pixel_values, 0).numpy()
|
|
||||||
outputs = self.vision_model.run(self.vision_outputs, {"pixel_values": pixel_values})
|
|
||||||
case str():
|
case str():
|
||||||
if self.mode == "vision":
|
if self.mode == "vision":
|
||||||
raise TypeError("Cannot encode text as vision-only model")
|
raise TypeError("Cannot encode text as vision-only model")
|
||||||
text_inputs: dict[str, torch.Tensor] = self.tokenizer(image_or_text)
|
|
||||||
inputs = {
|
outputs = self.text_model.run(None, self.tokenize(image_or_text))
|
||||||
"input_ids": text_inputs["input_ids"].int().numpy(),
|
|
||||||
"attention_mask": text_inputs["attention_mask"].int().numpy(),
|
|
||||||
}
|
|
||||||
outputs = self.text_model.run(self.text_outputs, inputs)
|
|
||||||
case _:
|
case _:
|
||||||
raise TypeError(f"Expected Image or str, but got: {type(image_or_text)}")
|
raise TypeError(f"Expected Image or str, but got: {type(image_or_text)}")
|
||||||
|
|
||||||
return outputs[0][0].tolist()
|
return outputs[0][0].tolist()
|
||||||
|
|
||||||
def _download_model(self, model_name: str, model_md5: str) -> bool:
|
@abstractmethod
|
||||||
# downloading logic is adapted from clip-server's CLIPOnnxModel class
|
def tokenize(self, text: str) -> dict[str, ndarray_i32]:
|
||||||
download_model(
|
pass
|
||||||
url=_S3_BUCKET_V2 + model_name,
|
|
||||||
target_folder=self.cache_dir.as_posix(),
|
@abstractmethod
|
||||||
md5sum=model_md5,
|
def transform(self, image: Image.Image) -> dict[str, ndarray_f32]:
|
||||||
with_resume=True,
|
pass
|
||||||
)
|
|
||||||
file = self.cache_dir / model_name.split("/")[1]
|
@property
|
||||||
if file.suffix == ".zip":
|
def textual_dir(self) -> Path:
|
||||||
with zipfile.ZipFile(file, "r") as zip_ref:
|
return self.cache_dir / "textual"
|
||||||
zip_ref.extractall(self.cache_dir)
|
|
||||||
os.remove(file)
|
@property
|
||||||
return True
|
def visual_dir(self) -> Path:
|
||||||
|
return self.cache_dir / "visual"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def model_cfg_path(self) -> Path:
|
||||||
|
return self.cache_dir / "config.json"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def textual_path(self) -> Path:
|
||||||
|
return self.textual_dir / "model.onnx"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def visual_path(self) -> Path:
|
||||||
|
return self.visual_dir / "model.onnx"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def preprocess_cfg_path(self) -> Path:
|
||||||
|
return self.visual_dir / "preprocess_cfg.json"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def cached(self) -> bool:
|
def cached(self) -> bool:
|
||||||
return (self.cache_dir / "textual.onnx").is_file() and (self.cache_dir / "visual.onnx").is_file()
|
return self.textual_path.is_file() and self.visual_path.is_file()
|
||||||
|
|
||||||
|
|
||||||
# same as `_transform_blob` without `_blob2image`
|
class OpenCLIPEncoder(BaseCLIPEncoder):
|
||||||
def _transform_pil_image(n_px: int) -> Compose:
|
def __init__(
|
||||||
return Compose(
|
self,
|
||||||
[
|
model_name: str,
|
||||||
Resize(n_px, interpolation=BICUBIC),
|
cache_dir: str | None = None,
|
||||||
CenterCrop(n_px),
|
mode: Literal["text", "vision"] | None = None,
|
||||||
_convert_image_to_rgb,
|
**model_kwargs: Any,
|
||||||
ToTensor(),
|
) -> None:
|
||||||
Normalize(
|
super().__init__(_clean_model_name(model_name), cache_dir, mode, **model_kwargs)
|
||||||
(0.48145466, 0.4578275, 0.40821073),
|
|
||||||
(0.26862954, 0.26130258, 0.27577711),
|
def _download(self) -> None:
|
||||||
),
|
snapshot_download(
|
||||||
]
|
f"immich-app/{self.model_name}",
|
||||||
|
cache_dir=self.cache_dir,
|
||||||
|
local_dir=self.cache_dir,
|
||||||
|
local_dir_use_symlinks=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def _load(self) -> None:
|
||||||
|
super()._load()
|
||||||
|
|
||||||
|
self.tokenizer = AutoTokenizer.from_pretrained(self.textual_dir)
|
||||||
|
self.sequence_length = self.model_cfg["text_cfg"]["context_length"]
|
||||||
|
|
||||||
|
self.size = (
|
||||||
|
self.preprocess_cfg["size"][0] if type(self.preprocess_cfg["size"]) == list else self.preprocess_cfg["size"]
|
||||||
|
)
|
||||||
|
self.resampling = get_pil_resampling(self.preprocess_cfg["interpolation"])
|
||||||
|
self.mean = np.array(self.preprocess_cfg["mean"], dtype=np.float32)
|
||||||
|
self.std = np.array(self.preprocess_cfg["std"], dtype=np.float32)
|
||||||
|
|
||||||
|
def tokenize(self, text: str) -> dict[str, ndarray_i32]:
|
||||||
|
input_ids: ndarray_i64 = self.tokenizer(
|
||||||
|
text,
|
||||||
|
max_length=self.sequence_length,
|
||||||
|
return_tensors="np",
|
||||||
|
return_attention_mask=False,
|
||||||
|
padding="max_length",
|
||||||
|
truncation=True,
|
||||||
|
).input_ids
|
||||||
|
return {"text": input_ids.astype(np.int32)}
|
||||||
|
|
||||||
|
def transform(self, image: Image.Image) -> dict[str, ndarray_f32]:
|
||||||
|
image = resize(image, self.size)
|
||||||
|
image = crop(image, self.size)
|
||||||
|
image_np = to_numpy(image)
|
||||||
|
image_np = normalize(image_np, self.mean, self.std)
|
||||||
|
return {"image": np.expand_dims(image_np.transpose(2, 0, 1), 0)}
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
def model_cfg(self) -> dict[str, Any]:
|
||||||
|
return json.load(self.model_cfg_path.open())
|
||||||
|
|
||||||
|
@cached_property
|
||||||
|
def preprocess_cfg(self) -> dict[str, Any]:
|
||||||
|
return json.load(self.preprocess_cfg_path.open())
|
||||||
|
|
||||||
|
|
||||||
|
class MCLIPEncoder(OpenCLIPEncoder):
|
||||||
|
def tokenize(self, text: str) -> dict[str, ndarray_i32]:
|
||||||
|
tokens: dict[str, ndarray_i64] = self.tokenizer(text, return_tensors="np")
|
||||||
|
return {k: v.astype(np.int32) for k, v in tokens.items()}
|
||||||
|
|
||||||
|
|
||||||
|
_OPENCLIP_MODELS = {
|
||||||
|
"RN50__openai",
|
||||||
|
"RN50__yfcc15m",
|
||||||
|
"RN50__cc12m",
|
||||||
|
"RN101__openai",
|
||||||
|
"RN101__yfcc15m",
|
||||||
|
"RN50x4__openai",
|
||||||
|
"RN50x16__openai",
|
||||||
|
"RN50x64__openai",
|
||||||
|
"ViT-B-32__openai",
|
||||||
|
"ViT-B-32__laion2b_e16",
|
||||||
|
"ViT-B-32__laion400m_e31",
|
||||||
|
"ViT-B-32__laion400m_e32",
|
||||||
|
"ViT-B-32__laion2b-s34b-b79k",
|
||||||
|
"ViT-B-16__openai",
|
||||||
|
"ViT-B-16__laion400m_e31",
|
||||||
|
"ViT-B-16__laion400m_e32",
|
||||||
|
"ViT-B-16-plus-240__laion400m_e31",
|
||||||
|
"ViT-B-16-plus-240__laion400m_e32",
|
||||||
|
"ViT-L-14__openai",
|
||||||
|
"ViT-L-14__laion400m_e31",
|
||||||
|
"ViT-L-14__laion400m_e32",
|
||||||
|
"ViT-L-14__laion2b-s32b-b82k",
|
||||||
|
"ViT-L-14-336__openai",
|
||||||
|
"ViT-H-14__laion2b-s32b-b79k",
|
||||||
|
"ViT-g-14__laion2b-s12b-b42k",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_MCLIP_MODELS = {
|
||||||
|
"LABSE-Vit-L-14",
|
||||||
|
"XLM-Roberta-Large-Vit-B-32",
|
||||||
|
"XLM-Roberta-Large-Vit-B-16Plus",
|
||||||
|
"XLM-Roberta-Large-Vit-L-14",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def _clean_model_name(model_name: str) -> str:
|
||||||
|
return model_name.split("/")[-1].replace("::", "__")
|
||||||
|
|
||||||
|
|
||||||
|
def is_openclip(model_name: str) -> bool:
|
||||||
|
return _clean_model_name(model_name) in _OPENCLIP_MODELS
|
||||||
|
|
||||||
|
|
||||||
|
def is_mclip(model_name: str) -> bool:
|
||||||
|
return _clean_model_name(model_name) in _MCLIP_MODELS
|
||||||
|
|
|
@ -9,7 +9,8 @@ from insightface.model_zoo import ArcFaceONNX, RetinaFace
|
||||||
from insightface.utils.face_align import norm_crop
|
from insightface.utils.face_align import norm_crop
|
||||||
from insightface.utils.storage import BASE_REPO_URL, download_file
|
from insightface.utils.storage import BASE_REPO_URL, download_file
|
||||||
|
|
||||||
from ..schemas import ModelType
|
from app.schemas import ModelType, ndarray_f32
|
||||||
|
|
||||||
from .base import InferenceModel
|
from .base import InferenceModel
|
||||||
|
|
||||||
|
|
||||||
|
@ -68,7 +69,7 @@ class FaceRecognizer(InferenceModel):
|
||||||
)
|
)
|
||||||
self.rec_model.prepare(ctx_id=0)
|
self.rec_model.prepare(ctx_id=0)
|
||||||
|
|
||||||
def _predict(self, image: np.ndarray[int, np.dtype[Any]] | bytes) -> list[dict[str, Any]]:
|
def _predict(self, image: ndarray_f32 | bytes) -> list[dict[str, Any]]:
|
||||||
if isinstance(image, bytes):
|
if isinstance(image, bytes):
|
||||||
image = cv2.imdecode(np.frombuffer(image, np.uint8), cv2.IMREAD_COLOR)
|
image = cv2.imdecode(np.frombuffer(image, np.uint8), cv2.IMREAD_COLOR)
|
||||||
bboxes, kpss = self.det_model.detect(image)
|
bboxes, kpss = self.det_model.detect(image)
|
||||||
|
|
35
machine-learning/app/models/transforms.py
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
import numpy as np
|
||||||
|
from PIL import Image
|
||||||
|
|
||||||
|
from app.schemas import ndarray_f32
|
||||||
|
|
||||||
|
_PIL_RESAMPLING_METHODS = {resampling.name.lower(): resampling for resampling in Image.Resampling}
|
||||||
|
|
||||||
|
|
||||||
|
def resize(img: Image.Image, size: int) -> Image.Image:
|
||||||
|
if img.width < img.height:
|
||||||
|
return img.resize((size, int((img.height / img.width) * size)), resample=Image.BICUBIC)
|
||||||
|
else:
|
||||||
|
return img.resize((int((img.width / img.height) * size), size), resample=Image.BICUBIC)
|
||||||
|
|
||||||
|
|
||||||
|
# https://stackoverflow.com/a/60883103
|
||||||
|
def crop(img: Image.Image, size: int) -> Image.Image:
|
||||||
|
left = int((img.size[0] / 2) - (size / 2))
|
||||||
|
upper = int((img.size[1] / 2) - (size / 2))
|
||||||
|
right = left + size
|
||||||
|
lower = upper + size
|
||||||
|
|
||||||
|
return img.crop((left, upper, right, lower))
|
||||||
|
|
||||||
|
|
||||||
|
def to_numpy(img: Image.Image) -> ndarray_f32:
|
||||||
|
return np.asarray(img.convert("RGB")).astype(np.float32) / 255.0
|
||||||
|
|
||||||
|
|
||||||
|
def normalize(img: ndarray_f32, mean: float | ndarray_f32, std: float | ndarray_f32) -> ndarray_f32:
|
||||||
|
return (img - mean) / std
|
||||||
|
|
||||||
|
|
||||||
|
def get_pil_resampling(resample: str) -> Image.Resampling:
|
||||||
|
return _PIL_RESAMPLING_METHODS[resample.lower()]
|
|
@ -1,5 +1,7 @@
|
||||||
from enum import StrEnum
|
from enum import StrEnum
|
||||||
|
from typing import TypeAlias
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,3 +33,8 @@ class ModelType(StrEnum):
|
||||||
IMAGE_CLASSIFICATION = "image-classification"
|
IMAGE_CLASSIFICATION = "image-classification"
|
||||||
CLIP = "clip"
|
CLIP = "clip"
|
||||||
FACIAL_RECOGNITION = "facial-recognition"
|
FACIAL_RECOGNITION = "facial-recognition"
|
||||||
|
|
||||||
|
|
||||||
|
ndarray_f32: TypeAlias = np.ndarray[int, np.dtype[np.float32]]
|
||||||
|
ndarray_i64: TypeAlias = np.ndarray[int, np.dtype[np.int64]]
|
||||||
|
ndarray_i32: TypeAlias = np.ndarray[int, np.dtype[np.int32]]
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import json
|
import json
|
||||||
import pickle
|
import pickle
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from typing import Any, TypeAlias
|
from pathlib import Path
|
||||||
|
from typing import Any, Callable
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
import cv2
|
import cv2
|
||||||
|
@ -14,13 +15,11 @@ from pytest_mock import MockerFixture
|
||||||
from .config import settings
|
from .config import settings
|
||||||
from .models.base import PicklableSessionOptions
|
from .models.base import PicklableSessionOptions
|
||||||
from .models.cache import ModelCache
|
from .models.cache import ModelCache
|
||||||
from .models.clip import CLIPEncoder
|
from .models.clip import OpenCLIPEncoder
|
||||||
from .models.facial_recognition import FaceRecognizer
|
from .models.facial_recognition import FaceRecognizer
|
||||||
from .models.image_classification import ImageClassifier
|
from .models.image_classification import ImageClassifier
|
||||||
from .schemas import ModelType
|
from .schemas import ModelType
|
||||||
|
|
||||||
ndarray: TypeAlias = np.ndarray[int, np.dtype[np.float32]]
|
|
||||||
|
|
||||||
|
|
||||||
class TestImageClassifier:
|
class TestImageClassifier:
|
||||||
classifier_preds = [
|
classifier_preds = [
|
||||||
|
@ -56,30 +55,50 @@ class TestImageClassifier:
|
||||||
|
|
||||||
class TestCLIP:
|
class TestCLIP:
|
||||||
embedding = np.random.rand(512).astype(np.float32)
|
embedding = np.random.rand(512).astype(np.float32)
|
||||||
|
cache_dir = Path("test_cache")
|
||||||
|
|
||||||
def test_basic_image(self, pil_image: Image.Image, mocker: MockerFixture) -> None:
|
def test_basic_image(
|
||||||
mocker.patch.object(CLIPEncoder, "download")
|
self,
|
||||||
|
pil_image: Image.Image,
|
||||||
|
mocker: MockerFixture,
|
||||||
|
clip_model_cfg: dict[str, Any],
|
||||||
|
clip_preprocess_cfg: Callable[[Path], dict[str, Any]],
|
||||||
|
) -> None:
|
||||||
|
mocker.patch.object(OpenCLIPEncoder, "download")
|
||||||
|
mocker.patch.object(OpenCLIPEncoder, "model_cfg", clip_model_cfg)
|
||||||
|
mocker.patch.object(OpenCLIPEncoder, "preprocess_cfg", clip_preprocess_cfg)
|
||||||
|
mocker.patch("app.models.clip.AutoTokenizer.from_pretrained", autospec=True)
|
||||||
mocked = mocker.patch("app.models.clip.ort.InferenceSession", autospec=True)
|
mocked = mocker.patch("app.models.clip.ort.InferenceSession", autospec=True)
|
||||||
mocked.return_value.run.return_value = [[self.embedding]]
|
mocked.return_value.run.return_value = [[self.embedding]]
|
||||||
clip_encoder = CLIPEncoder("ViT-B-32::openai", cache_dir="test_cache", mode="vision")
|
|
||||||
assert clip_encoder.mode == "vision"
|
clip_encoder = OpenCLIPEncoder("ViT-B-32::openai", cache_dir="test_cache", mode="vision")
|
||||||
embedding = clip_encoder.predict(pil_image)
|
embedding = clip_encoder.predict(pil_image)
|
||||||
|
|
||||||
|
assert clip_encoder.mode == "vision"
|
||||||
assert isinstance(embedding, list)
|
assert isinstance(embedding, list)
|
||||||
assert len(embedding) == 512
|
assert len(embedding) == clip_model_cfg["embed_dim"]
|
||||||
assert all([isinstance(num, float) for num in embedding])
|
assert all([isinstance(num, float) for num in embedding])
|
||||||
clip_encoder.vision_model.run.assert_called_once()
|
clip_encoder.vision_model.run.assert_called_once()
|
||||||
|
|
||||||
def test_basic_text(self, mocker: MockerFixture) -> None:
|
def test_basic_text(
|
||||||
mocker.patch.object(CLIPEncoder, "download")
|
self,
|
||||||
|
mocker: MockerFixture,
|
||||||
|
clip_model_cfg: dict[str, Any],
|
||||||
|
clip_preprocess_cfg: Callable[[Path], dict[str, Any]],
|
||||||
|
) -> None:
|
||||||
|
mocker.patch.object(OpenCLIPEncoder, "download")
|
||||||
|
mocker.patch.object(OpenCLIPEncoder, "model_cfg", clip_model_cfg)
|
||||||
|
mocker.patch.object(OpenCLIPEncoder, "preprocess_cfg", clip_preprocess_cfg)
|
||||||
|
mocker.patch("app.models.clip.AutoTokenizer.from_pretrained", autospec=True)
|
||||||
mocked = mocker.patch("app.models.clip.ort.InferenceSession", autospec=True)
|
mocked = mocker.patch("app.models.clip.ort.InferenceSession", autospec=True)
|
||||||
mocked.return_value.run.return_value = [[self.embedding]]
|
mocked.return_value.run.return_value = [[self.embedding]]
|
||||||
clip_encoder = CLIPEncoder("ViT-B-32::openai", cache_dir="test_cache", mode="text")
|
|
||||||
assert clip_encoder.mode == "text"
|
clip_encoder = OpenCLIPEncoder("ViT-B-32::openai", cache_dir="test_cache", mode="text")
|
||||||
embedding = clip_encoder.predict("test search query")
|
embedding = clip_encoder.predict("test search query")
|
||||||
|
|
||||||
|
assert clip_encoder.mode == "text"
|
||||||
assert isinstance(embedding, list)
|
assert isinstance(embedding, list)
|
||||||
assert len(embedding) == 512
|
assert len(embedding) == clip_model_cfg["embed_dim"]
|
||||||
assert all([isinstance(num, float) for num in embedding])
|
assert all([isinstance(num, float) for num in embedding])
|
||||||
clip_encoder.text_model.run.assert_called_once()
|
clip_encoder.text_model.run.assert_called_once()
|
||||||
|
|
||||||
|
|
21
machine-learning/export/Dockerfile
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
FROM mambaorg/micromamba:bookworm-slim as builder
|
||||||
|
|
||||||
|
ENV NODE_ENV=production \
|
||||||
|
TRANSFORMERS_CACHE=/cache \
|
||||||
|
PYTHONDONTWRITEBYTECODE=1 \
|
||||||
|
PYTHONUNBUFFERED=1 \
|
||||||
|
PATH="/opt/venv/bin:$PATH" \
|
||||||
|
PYTHONPATH=/usr/src
|
||||||
|
|
||||||
|
COPY --chown=$MAMBA_USER:$MAMBA_USER conda-lock.yml /tmp/conda-lock.yml
|
||||||
|
RUN micromamba install -y -n base -f /tmp/conda-lock.yml && \
|
||||||
|
micromamba remove -y -n base cxx-compiler && \
|
||||||
|
micromamba clean --all --yes
|
||||||
|
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
COPY --chown=$MAMBA_USER:$MAMBA_USER start.sh .
|
||||||
|
COPY --chown=$MAMBA_USER:$MAMBA_USER app .
|
||||||
|
|
||||||
|
ENTRYPOINT ["/usr/local/bin/_entrypoint.sh"]
|
||||||
|
CMD ["./start.sh"]
|
3520
machine-learning/export/conda-lock.yml
Normal file
15
machine-learning/export/env.dev.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
name: base
|
||||||
|
channels:
|
||||||
|
- conda-forge
|
||||||
|
platforms:
|
||||||
|
- linux-64
|
||||||
|
- linux-aarch64
|
||||||
|
dependencies:
|
||||||
|
- black
|
||||||
|
- conda-lock
|
||||||
|
- mypy
|
||||||
|
- pytest
|
||||||
|
- pytest-cov
|
||||||
|
- pytest-mock
|
||||||
|
- ruff
|
||||||
|
category: dev
|
25
machine-learning/export/env.yaml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
name: base
|
||||||
|
channels:
|
||||||
|
- conda-forge
|
||||||
|
- nvidia
|
||||||
|
- pytorch-nightly
|
||||||
|
platforms:
|
||||||
|
- linux-64
|
||||||
|
dependencies:
|
||||||
|
- cxx-compiler
|
||||||
|
- onnx==1.*
|
||||||
|
- onnxruntime==1.*
|
||||||
|
- open-clip-torch==2.*
|
||||||
|
- orjson==3.*
|
||||||
|
- pip
|
||||||
|
- python==3.11.*
|
||||||
|
- pytorch
|
||||||
|
- rich==13.*
|
||||||
|
- safetensors==0.*
|
||||||
|
- setuptools==68.*
|
||||||
|
- torchvision
|
||||||
|
- transformers==4.*
|
||||||
|
- pip:
|
||||||
|
- multilingual-clip
|
||||||
|
- onnx-simplifier
|
||||||
|
category: main
|
0
machine-learning/export/models/__init__.py
Normal file
67
machine-learning/export/models/mclip.py
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
import tempfile
|
||||||
|
import warnings
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import torch
|
||||||
|
from multilingual_clip.pt_multilingual_clip import MultilingualCLIP
|
||||||
|
from transformers import AutoTokenizer
|
||||||
|
|
||||||
|
from .openclip import OpenCLIPModelConfig
|
||||||
|
from .openclip import to_onnx as openclip_to_onnx
|
||||||
|
from .optimize import optimize
|
||||||
|
from .util import get_model_path
|
||||||
|
|
||||||
|
_MCLIP_TO_OPENCLIP = {
|
||||||
|
"M-CLIP/XLM-Roberta-Large-Vit-B-32": OpenCLIPModelConfig("ViT-B-32", "openai"),
|
||||||
|
"M-CLIP/XLM-Roberta-Large-Vit-B-16Plus": OpenCLIPModelConfig("ViT-B-16-plus-240", "laion400m_e32"),
|
||||||
|
"M-CLIP/LABSE-Vit-L-14": OpenCLIPModelConfig("ViT-L-14", "openai"),
|
||||||
|
"M-CLIP/XLM-Roberta-Large-Vit-L-14": OpenCLIPModelConfig("ViT-L-14", "openai"),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def to_onnx(
|
||||||
|
model_name: str,
|
||||||
|
output_dir_visual: Path | str,
|
||||||
|
output_dir_textual: Path | str,
|
||||||
|
) -> None:
|
||||||
|
textual_path = get_model_path(output_dir_textual)
|
||||||
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
|
model = MultilingualCLIP.from_pretrained(model_name, cache_dir=tmpdir)
|
||||||
|
AutoTokenizer.from_pretrained(model_name).save_pretrained(output_dir_textual)
|
||||||
|
|
||||||
|
for param in model.parameters():
|
||||||
|
param.requires_grad_(False)
|
||||||
|
|
||||||
|
export_text_encoder(model, textual_path)
|
||||||
|
openclip_to_onnx(_MCLIP_TO_OPENCLIP[model_name], output_dir_visual)
|
||||||
|
optimize(textual_path)
|
||||||
|
|
||||||
|
|
||||||
|
def export_text_encoder(model: MultilingualCLIP, output_path: Path | str) -> None:
|
||||||
|
output_path = Path(output_path)
|
||||||
|
|
||||||
|
def forward(self: MultilingualCLIP, input_ids: torch.Tensor, attention_mask: torch.Tensor) -> torch.Tensor:
|
||||||
|
embs = self.transformer(input_ids, attention_mask)[0]
|
||||||
|
embs = (embs * attention_mask.unsqueeze(2)).sum(dim=1) / attention_mask.sum(dim=1)[:, None]
|
||||||
|
embs = self.LinearTransformation(embs)
|
||||||
|
return torch.nn.functional.normalize(embs, dim=-1)
|
||||||
|
|
||||||
|
# unfortunately need to monkeypatch for tracing to work here
|
||||||
|
# otherwise it hits the 2GiB protobuf serialization limit
|
||||||
|
MultilingualCLIP.forward = forward
|
||||||
|
|
||||||
|
args = (torch.ones(1, 77, dtype=torch.int32), torch.ones(1, 77, dtype=torch.int32))
|
||||||
|
with warnings.catch_warnings():
|
||||||
|
warnings.simplefilter("ignore", UserWarning)
|
||||||
|
torch.onnx.export(
|
||||||
|
model,
|
||||||
|
args,
|
||||||
|
output_path.as_posix(),
|
||||||
|
input_names=["input_ids", "attention_mask"],
|
||||||
|
output_names=["text_embedding"],
|
||||||
|
opset_version=17,
|
||||||
|
dynamic_axes={
|
||||||
|
"input_ids": {0: "batch_size", 1: "sequence_length"},
|
||||||
|
"attention_mask": {0: "batch_size", 1: "sequence_length"},
|
||||||
|
},
|
||||||
|
)
|
109
machine-learning/export/models/openclip.py
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
import tempfile
|
||||||
|
import warnings
|
||||||
|
from dataclasses import dataclass, field
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import open_clip
|
||||||
|
import torch
|
||||||
|
from transformers import AutoTokenizer
|
||||||
|
|
||||||
|
from .optimize import optimize
|
||||||
|
from .util import get_model_path, save_config
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class OpenCLIPModelConfig:
|
||||||
|
name: str
|
||||||
|
pretrained: str
|
||||||
|
image_size: int = field(init=False)
|
||||||
|
sequence_length: int = field(init=False)
|
||||||
|
|
||||||
|
def __post_init__(self) -> None:
|
||||||
|
open_clip_cfg = open_clip.get_model_config(self.name)
|
||||||
|
if open_clip_cfg is None:
|
||||||
|
raise ValueError(f"Unknown model {self.name}")
|
||||||
|
self.image_size = open_clip_cfg["vision_cfg"]["image_size"]
|
||||||
|
self.sequence_length = open_clip_cfg["text_cfg"]["context_length"]
|
||||||
|
|
||||||
|
|
||||||
|
def to_onnx(
|
||||||
|
model_cfg: OpenCLIPModelConfig,
|
||||||
|
output_dir_visual: Path | str | None = None,
|
||||||
|
output_dir_textual: Path | str | None = None,
|
||||||
|
) -> None:
|
||||||
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
|
model = open_clip.create_model(
|
||||||
|
model_cfg.name,
|
||||||
|
pretrained=model_cfg.pretrained,
|
||||||
|
jit=False,
|
||||||
|
cache_dir=tmpdir,
|
||||||
|
require_pretrained=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
text_vision_cfg = open_clip.get_model_config(model_cfg.name)
|
||||||
|
|
||||||
|
for param in model.parameters():
|
||||||
|
param.requires_grad_(False)
|
||||||
|
|
||||||
|
if output_dir_visual is not None:
|
||||||
|
output_dir_visual = Path(output_dir_visual)
|
||||||
|
visual_path = get_model_path(output_dir_visual)
|
||||||
|
|
||||||
|
save_config(open_clip.get_model_preprocess_cfg(model), output_dir_visual / "preprocess_cfg.json")
|
||||||
|
save_config(text_vision_cfg, output_dir_visual.parent / "config.json")
|
||||||
|
export_image_encoder(model, model_cfg, visual_path)
|
||||||
|
|
||||||
|
optimize(visual_path)
|
||||||
|
|
||||||
|
if output_dir_textual is not None:
|
||||||
|
output_dir_textual = Path(output_dir_textual)
|
||||||
|
textual_path = get_model_path(output_dir_textual)
|
||||||
|
|
||||||
|
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)
|
||||||
|
export_text_encoder(model, model_cfg, textual_path)
|
||||||
|
optimize(textual_path)
|
||||||
|
|
||||||
|
|
||||||
|
def export_image_encoder(model: open_clip.CLIP, model_cfg: OpenCLIPModelConfig, output_path: Path | str) -> None:
|
||||||
|
output_path = Path(output_path)
|
||||||
|
|
||||||
|
def encode_image(image: torch.Tensor) -> torch.Tensor:
|
||||||
|
return model.encode_image(image, normalize=True)
|
||||||
|
|
||||||
|
args = (torch.randn(1, 3, model_cfg.image_size, model_cfg.image_size),)
|
||||||
|
traced = torch.jit.trace(encode_image, args)
|
||||||
|
|
||||||
|
with warnings.catch_warnings():
|
||||||
|
warnings.simplefilter("ignore", UserWarning)
|
||||||
|
torch.onnx.export(
|
||||||
|
traced,
|
||||||
|
args,
|
||||||
|
output_path.as_posix(),
|
||||||
|
input_names=["image"],
|
||||||
|
output_names=["image_embedding"],
|
||||||
|
opset_version=17,
|
||||||
|
dynamic_axes={"image": {0: "batch_size"}},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def export_text_encoder(model: open_clip.CLIP, model_cfg: OpenCLIPModelConfig, output_path: Path | str) -> None:
|
||||||
|
output_path = Path(output_path)
|
||||||
|
|
||||||
|
def encode_text(text: torch.Tensor) -> torch.Tensor:
|
||||||
|
return model.encode_text(text, normalize=True)
|
||||||
|
|
||||||
|
args = (torch.ones(1, model_cfg.sequence_length, dtype=torch.int32),)
|
||||||
|
traced = torch.jit.trace(encode_text, args)
|
||||||
|
|
||||||
|
with warnings.catch_warnings():
|
||||||
|
warnings.simplefilter("ignore", UserWarning)
|
||||||
|
torch.onnx.export(
|
||||||
|
traced,
|
||||||
|
args,
|
||||||
|
output_path.as_posix(),
|
||||||
|
input_names=["text"],
|
||||||
|
output_names=["text_embedding"],
|
||||||
|
opset_version=17,
|
||||||
|
dynamic_axes={"text": {0: "batch_size"}},
|
||||||
|
)
|
38
machine-learning/export/models/optimize.py
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import onnx
|
||||||
|
import onnxruntime as ort
|
||||||
|
import onnxsim
|
||||||
|
|
||||||
|
|
||||||
|
def optimize_onnxsim(model_path: Path | str, output_path: Path | str) -> None:
|
||||||
|
model_path = Path(model_path)
|
||||||
|
output_path = Path(output_path)
|
||||||
|
model = onnx.load(model_path.as_posix())
|
||||||
|
model, check = onnxsim.simplify(model, skip_shape_inference=True)
|
||||||
|
assert check, "Simplified ONNX model could not be validated"
|
||||||
|
onnx.save(model, output_path.as_posix())
|
||||||
|
|
||||||
|
|
||||||
|
def optimize_ort(
|
||||||
|
model_path: Path | str,
|
||||||
|
output_path: Path | str,
|
||||||
|
level: ort.GraphOptimizationLevel = ort.GraphOptimizationLevel.ORT_ENABLE_BASIC,
|
||||||
|
) -> None:
|
||||||
|
model_path = Path(model_path)
|
||||||
|
output_path = Path(output_path)
|
||||||
|
|
||||||
|
sess_options = ort.SessionOptions()
|
||||||
|
sess_options.graph_optimization_level = level
|
||||||
|
sess_options.optimized_model_filepath = output_path.as_posix()
|
||||||
|
|
||||||
|
ort.InferenceSession(model_path.as_posix(), providers=["CPUExecutionProvider"], sess_options=sess_options)
|
||||||
|
|
||||||
|
|
||||||
|
def optimize(model_path: Path | str) -> None:
|
||||||
|
model_path = 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
|
||||||
|
if not any(file.name.startswith("Constant") for file in model_path.parent.iterdir()):
|
||||||
|
optimize_onnxsim(model_path, model_path)
|
15
machine-learning/export/models/util.py
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
import json
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
|
def get_model_path(output_dir: Path | str) -> Path:
|
||||||
|
output_dir = Path(output_dir)
|
||||||
|
output_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
return output_dir / "model.onnx"
|
||||||
|
|
||||||
|
|
||||||
|
def save_config(config: Any, output_path: Path | str) -> None:
|
||||||
|
output_path = Path(output_path)
|
||||||
|
output_path.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
json.dump(config, output_path.open("w"))
|
76
machine-learning/export/run.py
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
import gc
|
||||||
|
import os
|
||||||
|
from pathlib import Path
|
||||||
|
from tempfile import TemporaryDirectory
|
||||||
|
|
||||||
|
from huggingface_hub import create_repo, login, upload_folder
|
||||||
|
from models import mclip, openclip
|
||||||
|
from rich.progress import Progress
|
||||||
|
|
||||||
|
models = [
|
||||||
|
"RN50::openai",
|
||||||
|
"RN50::yfcc15m",
|
||||||
|
"RN50::cc12m",
|
||||||
|
"RN101::openai",
|
||||||
|
"RN101::yfcc15m",
|
||||||
|
"RN50x4::openai",
|
||||||
|
"RN50x16::openai",
|
||||||
|
"RN50x64::openai",
|
||||||
|
"ViT-B-32::openai",
|
||||||
|
"ViT-B-32::laion2b_e16",
|
||||||
|
"ViT-B-32::laion400m_e31",
|
||||||
|
"ViT-B-32::laion400m_e32",
|
||||||
|
"ViT-B-32::laion2b-s34b-b79k",
|
||||||
|
"ViT-B-16::openai",
|
||||||
|
"ViT-B-16::laion400m_e31",
|
||||||
|
"ViT-B-16::laion400m_e32",
|
||||||
|
"ViT-B-16-plus-240::laion400m_e31",
|
||||||
|
"ViT-B-16-plus-240::laion400m_e32",
|
||||||
|
"ViT-L-14::openai",
|
||||||
|
"ViT-L-14::laion400m_e31",
|
||||||
|
"ViT-L-14::laion400m_e32",
|
||||||
|
"ViT-L-14::laion2b-s32b-b82k",
|
||||||
|
"ViT-L-14-336::openai",
|
||||||
|
"ViT-H-14::laion2b-s32b-b79k",
|
||||||
|
"ViT-g-14::laion2b-s12b-b42k",
|
||||||
|
"M-CLIP/LABSE-Vit-L-14",
|
||||||
|
"M-CLIP/XLM-Roberta-Large-Vit-B-32",
|
||||||
|
"M-CLIP/XLM-Roberta-Large-Vit-B-16Plus",
|
||||||
|
"M-CLIP/XLM-Roberta-Large-Vit-L-14",
|
||||||
|
]
|
||||||
|
|
||||||
|
login(token=os.environ["HF_AUTH_TOKEN"])
|
||||||
|
|
||||||
|
with Progress() as progress:
|
||||||
|
task1 = progress.add_task("[green]Exporting models...", total=len(models))
|
||||||
|
task2 = progress.add_task("[yellow]Uploading models...", total=len(models))
|
||||||
|
|
||||||
|
with TemporaryDirectory() as tmp:
|
||||||
|
tmpdir = Path(tmp)
|
||||||
|
for model in models:
|
||||||
|
model_name = model.split("/")[-1].replace("::", "__")
|
||||||
|
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:
|
||||||
|
progress.update(task1, description=f"[green]Exporting {model_name}")
|
||||||
|
visual_dir = tmpdir / model_name / "visual"
|
||||||
|
textual_dir = tmpdir / model_name / "textual"
|
||||||
|
if model.startswith("M-CLIP"):
|
||||||
|
mclip.to_onnx(model, visual_dir, textual_dir)
|
||||||
|
else:
|
||||||
|
name, _, pretrained = model_name.partition("__")
|
||||||
|
openclip.to_onnx(openclip.OpenCLIPModelConfig(name, pretrained), visual_dir, textual_dir)
|
||||||
|
|
||||||
|
progress.update(task1, advance=1)
|
||||||
|
gc.collect()
|
||||||
|
|
||||||
|
export()
|
||||||
|
upload()
|
|
@ -1,11 +1,12 @@
|
||||||
from io import BytesIO
|
|
||||||
import json
|
import json
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
from io import BytesIO
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from locust import HttpUser, events, task
|
from locust import HttpUser, events, task
|
||||||
from locust.env import Environment
|
from locust.env import Environment
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
from argparse import ArgumentParser
|
|
||||||
byte_image = BytesIO()
|
byte_image = BytesIO()
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,11 +15,21 @@ def _(parser: ArgumentParser) -> None:
|
||||||
parser.add_argument("--tag-model", type=str, default="microsoft/resnet-50")
|
parser.add_argument("--tag-model", type=str, default="microsoft/resnet-50")
|
||||||
parser.add_argument("--clip-model", type=str, default="ViT-B-32::openai")
|
parser.add_argument("--clip-model", type=str, default="ViT-B-32::openai")
|
||||||
parser.add_argument("--face-model", type=str, default="buffalo_l")
|
parser.add_argument("--face-model", type=str, default="buffalo_l")
|
||||||
parser.add_argument("--tag-min-score", type=int, default=0.0,
|
parser.add_argument(
|
||||||
help="Returns all tags at or above this score. The default returns all tags.")
|
"--tag-min-score",
|
||||||
parser.add_argument("--face-min-score", type=int, default=0.034,
|
type=int,
|
||||||
help=("Returns all faces at or above this score. The default returns 1 face per request; "
|
default=0.0,
|
||||||
"setting this to 0 blows up the number of faces to the thousands."))
|
help="Returns all tags at or above this score. The default returns all tags.",
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--face-min-score",
|
||||||
|
type=int,
|
||||||
|
default=0.034,
|
||||||
|
help=(
|
||||||
|
"Returns all faces at or above this score. The default returns 1 face per request; "
|
||||||
|
"setting this to 0 blows up the number of faces to the thousands."
|
||||||
|
),
|
||||||
|
)
|
||||||
parser.add_argument("--image-size", type=int, default=1000)
|
parser.add_argument("--image-size", type=int, default=1000)
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,7 +73,7 @@ class CLIPTextFormDataLoadTest(InferenceLoadTest):
|
||||||
("modelName", self.environment.parsed_options.clip_model),
|
("modelName", self.environment.parsed_options.clip_model),
|
||||||
("modelType", "clip"),
|
("modelType", "clip"),
|
||||||
("options", json.dumps({"mode": "text"})),
|
("options", json.dumps({"mode": "text"})),
|
||||||
("text", "test search query")
|
("text", "test search query"),
|
||||||
]
|
]
|
||||||
self.client.post("/predict", data=data)
|
self.client.post("/predict", data=data)
|
||||||
|
|
||||||
|
|
3875
machine-learning/poetry.lock
generated
|
@ -1,6 +1,6 @@
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "machine-learning"
|
name = "machine-learning"
|
||||||
version = "1.82.1"
|
version = "1.83.0"
|
||||||
description = ""
|
description = ""
|
||||||
authors = ["Hau Tran <alex.tran1502@gmail.com>"]
|
authors = ["Hau Tran <alex.tran1502@gmail.com>"]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
@ -9,8 +9,8 @@ packages = [{include = "app"}]
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = "^3.11"
|
python = "^3.11"
|
||||||
torch = [
|
torch = [
|
||||||
{markers = "platform_machine == 'arm64' or platform_machine == 'aarch64'", version = "=2.0.1", source = "pypi"},
|
{markers = "platform_machine == 'arm64' or platform_machine == 'aarch64'", version = "=2.1.0", source = "pypi"},
|
||||||
{markers = "platform_machine == 'amd64' or platform_machine == 'x86_64'", version = "=2.0.1", source = "pytorch-cpu"}
|
{markers = "platform_machine == 'amd64' or platform_machine == 'x86_64'", version = "=2.1.0", source = "pytorch-cpu"}
|
||||||
]
|
]
|
||||||
transformers = "^4.29.2"
|
transformers = "^4.29.2"
|
||||||
onnxruntime = "^1.15.0"
|
onnxruntime = "^1.15.0"
|
||||||
|
@ -22,14 +22,9 @@ uvicorn = {extras = ["standard"], version = "^0.22.0"}
|
||||||
pydantic = "^1.10.8"
|
pydantic = "^1.10.8"
|
||||||
aiocache = "^0.12.1"
|
aiocache = "^0.12.1"
|
||||||
optimum = "^1.9.1"
|
optimum = "^1.9.1"
|
||||||
torchvision = [
|
|
||||||
{markers = "platform_machine == 'arm64' or platform_machine == 'aarch64'", version = "=0.15.2", source = "pypi"},
|
|
||||||
{markers = "platform_machine == 'amd64' or platform_machine == 'x86_64'", version = "=0.15.2", source = "pytorch-cpu"}
|
|
||||||
]
|
|
||||||
rich = "^13.4.2"
|
rich = "^13.4.2"
|
||||||
ftfy = "^6.1.1"
|
ftfy = "^6.1.1"
|
||||||
setuptools = "^68.0.0"
|
setuptools = "^68.0.0"
|
||||||
open-clip-torch = "^2.20.0"
|
|
||||||
python-multipart = "^0.0.6"
|
python-multipart = "^0.0.6"
|
||||||
orjson = "^3.9.5"
|
orjson = "^3.9.5"
|
||||||
safetensors = "0.3.2"
|
safetensors = "0.3.2"
|
||||||
|
@ -63,6 +58,7 @@ warn_redundant_casts = true
|
||||||
disallow_any_generics = true
|
disallow_any_generics = true
|
||||||
check_untyped_defs = true
|
check_untyped_defs = true
|
||||||
disallow_untyped_defs = true
|
disallow_untyped_defs = true
|
||||||
|
ignore_missing_imports = true
|
||||||
|
|
||||||
[tool.pydantic-mypy]
|
[tool.pydantic-mypy]
|
||||||
init_forbid_extra = true
|
init_forbid_extra = true
|
||||||
|
@ -70,30 +66,6 @@ init_typed = true
|
||||||
warn_required_dynamic_aliases = true
|
warn_required_dynamic_aliases = true
|
||||||
warn_untyped_fields = true
|
warn_untyped_fields = true
|
||||||
|
|
||||||
[[tool.mypy.overrides]]
|
|
||||||
module = [
|
|
||||||
"huggingface_hub",
|
|
||||||
"transformers",
|
|
||||||
"gunicorn",
|
|
||||||
"cv2",
|
|
||||||
"insightface.model_zoo",
|
|
||||||
"insightface.utils.face_align",
|
|
||||||
"insightface.utils.storage",
|
|
||||||
"onnxruntime",
|
|
||||||
"optimum",
|
|
||||||
"optimum.pipelines",
|
|
||||||
"optimum.onnxruntime",
|
|
||||||
"clip_server.model.clip",
|
|
||||||
"clip_server.model.clip_onnx",
|
|
||||||
"clip_server.model.pretrained_models",
|
|
||||||
"clip_server.model.tokenization",
|
|
||||||
"torchvision.transforms",
|
|
||||||
"aiocache.backends.memory",
|
|
||||||
"aiocache.lock",
|
|
||||||
"aiocache.plugins"
|
|
||||||
]
|
|
||||||
ignore_missing_imports = true
|
|
||||||
|
|
||||||
[tool.ruff]
|
[tool.ruff]
|
||||||
line-length = 120
|
line-length = 120
|
||||||
target-version = "py311"
|
target-version = "py311"
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
# requirements to be installed with `--no-deps` flag
|
|
||||||
clip-server==0.8.*
|
|
|
@ -35,8 +35,8 @@ platform :android do
|
||||||
task: 'bundle',
|
task: 'bundle',
|
||||||
build_type: 'Release',
|
build_type: 'Release',
|
||||||
properties: {
|
properties: {
|
||||||
"android.injected.version.code" => 106,
|
"android.injected.version.code" => 107,
|
||||||
"android.injected.version.name" => "1.82.1",
|
"android.injected.version.name" => "1.83.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')
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
* User can now download assets to local device
|
* User can now download assets to local device
|
||||||
* Increased the font size for curated image thumbnail information on the seach page
|
* Increased the font size for curated image thumbnail information on the search page
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefereix imatges remotes",
|
"advanced_settings_prefer_remote_title": "Prefereix imatges remotes",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Avançat",
|
"advanced_settings_tile_title": "Avançat",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Esborra",
|
"control_bottom_app_bar_delete": "Esborra",
|
||||||
"control_bottom_app_bar_favorite": "Preferit",
|
"control_bottom_app_bar_favorite": "Preferit",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Desarxiva",
|
"control_bottom_app_bar_unarchive": "Desarxiva",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Untitled",
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_shared_album_page_create": "Create",
|
"create_shared_album_page_create": "Create",
|
||||||
"create_shared_album_page_share": "Comparteix",
|
"create_shared_album_page_share": "Comparteix",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Cancel·la",
|
"delete_dialog_cancel": "Cancel·la",
|
||||||
"delete_dialog_ok": "Esborra",
|
"delete_dialog_ok": "Esborra",
|
||||||
"delete_dialog_title": "Esborra permanentment",
|
"delete_dialog_title": "Esborra permanentment",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Afegeix descripció...",
|
"description_input_hint_text": "Afegeix descripció...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "Afegeix descripció",
|
"exif_bottom_sheet_description": "Afegeix descripció",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"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",
|
||||||
"library_page_albums": "Àlbums",
|
"library_page_albums": "Àlbums",
|
||||||
"library_page_archive": "Arxiu",
|
"library_page_archive": "Arxiu",
|
||||||
"library_page_device_albums": "Àlbums al Dispositiu",
|
"library_page_device_albums": "Àlbums al Dispositiu",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "New album",
|
"library_page_new_album": "New album",
|
||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Correu electrònic",
|
"login_form_label_email": "Correu electrònic",
|
||||||
"login_form_label_password": "Contrasenya",
|
"login_form_label_password": "Contrasenya",
|
||||||
"login_form_next_button": "Següent",
|
"login_form_next_button": "Següent",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Mantingues identificat",
|
"login_form_save_login": "Mantingues identificat",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"notification_permission_dialog_cancel": "Cancel·la",
|
"notification_permission_dialog_cancel": "Cancel·la",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Settings",
|
||||||
"profile_drawer_sign_out": "Tanca la sessió",
|
"profile_drawer_sign_out": "Tanca la sessió",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recently Added",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Afegeix un títol",
|
"share_add_title": "Afegeix un títol",
|
||||||
"share_create_album": "Crea un àlbum",
|
"share_create_album": "Crea un àlbum",
|
||||||
"share_dialog_preparing": "Preparing...",
|
"share_dialog_preparing": "Preparing...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Convida a l'àlbum",
|
"share_invite": "Convida a l'àlbum",
|
||||||
"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": "Crea àlbum compartit",
|
"sharing_silver_appbar_create_shared_album": "Crea àlbum compartit",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Comparteix amb un company",
|
"sharing_silver_appbar_share_partner": "Comparteix amb un company",
|
||||||
"tab_controller_nav_library": "Library",
|
"tab_controller_nav_library": "Library",
|
||||||
"tab_controller_nav_photos": "Fotografies",
|
"tab_controller_nav_photos": "Fotografies",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89"
|
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Je již v {album}",
|
"add_to_album_bottom_sheet_already_exists": "Je již v {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "U některých zařízení je načítání miniatur z prostředků v zařízení velmi pomalé. Aktivujte toto nastavení, aby se místo toho načítaly vzdálené obrázky.",
|
"advanced_settings_prefer_remote_subtitle": "U některých zařízení je načítání miniatur z prostředků v zařízení velmi pomalé. Aktivujte toto nastavení, aby se místo toho načítaly vzdálené obrázky.",
|
||||||
"advanced_settings_prefer_remote_title": "Preferovat vzdálené obrázky",
|
"advanced_settings_prefer_remote_title": "Preferovat vzdálené obrázky",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Vynechá ověření SSL certifikátu serveru. Vyžadováno pro self-signed certifikáty.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Povolit self-signed SSL certifikáty",
|
||||||
"advanced_settings_tile_subtitle": "Pokročilé uživatelské nastavení",
|
"advanced_settings_tile_subtitle": "Pokročilé uživatelské nastavení",
|
||||||
"advanced_settings_tile_title": "Pokročilé",
|
"advanced_settings_tile_title": "Pokročilé",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Zobrazit dodatečné vlastnosti pro řešení problémů",
|
"advanced_settings_troubleshooting_subtitle": "Zobrazit dodatečné vlastnosti pro řešení problémů",
|
||||||
|
@ -12,8 +14,8 @@
|
||||||
"album_thumbnail_card_item": "1 položka",
|
"album_thumbnail_card_item": "1 položka",
|
||||||
"album_thumbnail_card_items": "{} položek",
|
"album_thumbnail_card_items": "{} položek",
|
||||||
"album_thumbnail_card_shared": "Sdíleno",
|
"album_thumbnail_card_shared": "Sdíleno",
|
||||||
"album_thumbnail_owned": "Vlastněno",
|
"album_thumbnail_owned": "Vlastní",
|
||||||
"album_thumbnail_shared_by": "Sdílené od {}",
|
"album_thumbnail_shared_by": "Sdílel(a) {}",
|
||||||
"album_viewer_appbar_share_delete": "Odstranit album",
|
"album_viewer_appbar_share_delete": "Odstranit album",
|
||||||
"album_viewer_appbar_share_err_delete": "Nepodařilo se odstranit album",
|
"album_viewer_appbar_share_err_delete": "Nepodařilo se odstranit album",
|
||||||
"album_viewer_appbar_share_err_leave": "Nepodařilo se opustit album",
|
"album_viewer_appbar_share_err_leave": "Nepodařilo se opustit album",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Vymazat",
|
"control_bottom_app_bar_delete": "Vymazat",
|
||||||
"control_bottom_app_bar_favorite": "Oblíbené",
|
"control_bottom_app_bar_favorite": "Oblíbené",
|
||||||
"control_bottom_app_bar_share": "Sdílet",
|
"control_bottom_app_bar_share": "Sdílet",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Odarchivovat",
|
"control_bottom_app_bar_unarchive": "Odarchivovat",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Bez názvu",
|
"create_album_page_untitled": "Bez názvu",
|
||||||
"create_shared_album_page_create": "Vytvořit",
|
"create_shared_album_page_create": "Vytvořit",
|
||||||
"create_shared_album_page_share": "Sdílet",
|
"create_shared_album_page_share": "Sdílet",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Zrušit",
|
"delete_dialog_cancel": "Zrušit",
|
||||||
"delete_dialog_ok": "Vymazat",
|
"delete_dialog_ok": "Vymazat",
|
||||||
"delete_dialog_title": "Vymazat trvale",
|
"delete_dialog_title": "Vymazat trvale",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Přidat popis...",
|
"description_input_hint_text": "Přidat popis...",
|
||||||
"description_input_submit_error": "Chyba aktualizace popisu, další podrobnosti najdete v logu",
|
"description_input_submit_error": "Chyba aktualizace popisu, další podrobnosti najdete v logu",
|
||||||
"exif_bottom_sheet_description": "Přidat popis...",
|
"exif_bottom_sheet_description": "Přidat popis...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Lze zálohovat nejvýše 30 položek najednou, přeskakuji",
|
"home_page_upload_err_limit": "Lze zálohovat nejvýše 30 položek najednou, přeskakuji",
|
||||||
"image_viewer_page_state_provider_download_error": "Chyba stahování",
|
"image_viewer_page_state_provider_download_error": "Chyba stahování",
|
||||||
"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": "Share Error",
|
||||||
"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í",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Nové album",
|
"library_page_new_album": "Nové album",
|
||||||
"library_page_sharing": "Sdílení",
|
"library_page_sharing": "Sdílení",
|
||||||
"library_page_sort_created": "Naposledy vytvořené",
|
"library_page_sort_created": "Naposledy vytvořené",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Podle názvu alba",
|
"library_page_sort_title": "Podle názvu alba",
|
||||||
"login_disabled": "Přihlášení bylo zakázáno",
|
"login_disabled": "Přihlášení bylo zakázáno",
|
||||||
"login_form_api_exception": "Výjimka API. Zkontrolujte URL serveru a zkuste to znovu.",
|
"login_form_api_exception": "Výjimka API. Zkontrolujte URL serveru a zkuste to znovu.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Chyba přihlášení pomocí OAuth, zkontrolujte adresu URL serveru",
|
"login_form_failed_get_oauth_server_config": "Chyba přihlášení pomocí OAuth, zkontrolujte adresu URL serveru",
|
||||||
"login_form_failed_get_oauth_server_disable": "Funkce OAuth není na tomto serveru dostupná",
|
"login_form_failed_get_oauth_server_disable": "Funkce OAuth není na tomto serveru dostupná",
|
||||||
"login_form_failed_login": "Chyba přihlášení, zkontrolujte URL adresu serveru, e-mail a heslo.",
|
"login_form_failed_login": "Chyba přihlášení, zkontrolujte URL adresu serveru, e-mail a heslo.",
|
||||||
|
"login_form_handshake_exception": "Došlo k výjimce Handshake se serverem. Pokud používáte self-signed certifikát, povolte v nastavení podporu self-signed certifikátu.",
|
||||||
"login_form_label_email": "E-mail",
|
"login_form_label_email": "E-mail",
|
||||||
"login_form_label_password": "Heslo",
|
"login_form_label_password": "Heslo",
|
||||||
"login_form_next_button": "Další",
|
"login_form_next_button": "Další",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Zůstat přihlášen",
|
"login_form_save_login": "Zůstat přihlášen",
|
||||||
"login_form_server_empty": "Zadejte URL serveru.",
|
"login_form_server_empty": "Zadejte URL serveru.",
|
||||||
"login_form_server_error": "Není možné se připojit k serveru.",
|
"login_form_server_error": "Není možné se připojit k serveru.",
|
||||||
|
"login_password_changed_error": "Při aktualizaci vašeho hesla došlo k chybě",
|
||||||
|
"login_password_changed_success": "Heslo bylo úspěšně aktualizováno",
|
||||||
|
"map_cannot_get_user_location": "Nelze zjistit polohu uživatele",
|
||||||
|
"map_location_dialog_cancel": "Zrušit",
|
||||||
|
"map_location_dialog_yes": "Ano",
|
||||||
|
"map_location_service_disabled_content": "Pro zobrazení fotek z vaší aktuální polohy musí být povolena služba určování polohy. Chcete ji nyní povolit?",
|
||||||
|
"map_location_service_disabled_title": "Služba určování polohy je zakázána",
|
||||||
|
"map_no_assets_in_bounds": "Žádné fotografie v této oblasti",
|
||||||
|
"map_no_location_permission_content": "Oprávnění polohy je nutné pro zobrazení fotek z vaší aktuální polohy. Chcete oprávnění nyní povolit?",
|
||||||
|
"map_no_location_permission_title": "Oprávnění polohy zamítnuto",
|
||||||
|
"map_settings_dark_mode": "Tmavý režim",
|
||||||
|
"map_settings_dialog_cancel": "Zrušit",
|
||||||
|
"map_settings_dialog_save": "Uložit",
|
||||||
|
"map_settings_dialog_title": "Nastavení map",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Rozsah data",
|
||||||
|
"map_settings_only_show_favorites": "Zobrazit pouze oblíbené",
|
||||||
|
"map_zoom_to_see_photos": "Oddálit pro zobrazení fotografií",
|
||||||
"monthly_title_text_date_format": "LLLL y",
|
"monthly_title_text_date_format": "LLLL y",
|
||||||
"motion_photos_page_title": "Pohyblivé fotky",
|
"motion_photos_page_title": "Pohyblivé fotky",
|
||||||
"notification_permission_dialog_cancel": "Zrušit",
|
"notification_permission_dialog_cancel": "Zrušit",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Klient a server jsou aktuální",
|
"profile_drawer_client_server_up_to_date": "Klient a server jsou aktuální",
|
||||||
"profile_drawer_settings": "Nastavení",
|
"profile_drawer_settings": "Nastavení",
|
||||||
"profile_drawer_sign_out": "Odhlásit se",
|
"profile_drawer_sign_out": "Odhlásit se",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Nedávno přidané",
|
"recently_added_page_title": "Nedávno přidané",
|
||||||
"search_bar_hint": "Prohledejte své fotky",
|
"search_bar_hint": "Prohledejte své fotky",
|
||||||
"search_page_categories": "Kategorie",
|
"search_page_categories": "Kategorie",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Přidat název",
|
"share_add_title": "Přidat název",
|
||||||
"share_create_album": "Vytvořit album",
|
"share_create_album": "Vytvořit album",
|
||||||
"share_dialog_preparing": "Připravuji...",
|
"share_dialog_preparing": "Připravuji...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Pozvat do alba",
|
"share_invite": "Pozvat do alba",
|
||||||
"sharing_page_album": "Sdílená alba",
|
"sharing_page_album": "Sdílená alba",
|
||||||
"sharing_page_description": "Vytvářejte sdílená alba a sdílejte fotografie a videa s lidmi ve vaší síti.",
|
"sharing_page_description": "Vytvářejte sdílená alba a sdílejte fotografie a videa s lidmi ve vaší síti.",
|
||||||
"sharing_page_empty_list": "PRÁZDNÝ SEZNAM",
|
"sharing_page_empty_list": "PRÁZDNÝ SEZNAM",
|
||||||
"sharing_silver_appbar_create_shared_album": "Vytvořit sdílené album",
|
"sharing_silver_appbar_create_shared_album": "Vytvořit sdílené album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Sdílet s partnerem",
|
"sharing_silver_appbar_share_partner": "Sdílet s partnerem",
|
||||||
"tab_controller_nav_library": "Knihovna",
|
"tab_controller_nav_library": "Knihovna",
|
||||||
"tab_controller_nav_photos": "Fotografie",
|
"tab_controller_nav_photos": "Fotografie",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Téma",
|
"theme_setting_theme_title": "Téma",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Třístupňové načítání může zvýšit výkonnost načítání, ale vede k výrazně vyššímu zatížení sítě.",
|
"theme_setting_three_stage_loading_subtitle": "Třístupňové načítání může zvýšit výkonnost načítání, ale vede k výrazně vyššímu zatížení sítě.",
|
||||||
"theme_setting_three_stage_loading_title": "Povolení třístupňového načítání",
|
"theme_setting_three_stage_loading_title": "Povolení třístupňového načítání",
|
||||||
|
"translated_text_options": "Možnosti",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Zrušit",
|
"upload_dialog_cancel": "Zrušit",
|
||||||
"upload_dialog_info": "Chcete zálohovat vybrané položky na server?",
|
"upload_dialog_info": "Chcete zálohovat vybrané položky na server?",
|
||||||
"upload_dialog_ok": "Zálohovat",
|
"upload_dialog_ok": "Zálohovat",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Ahoj, k dispozici je nová verze",
|
"version_announcement_overlay_text_1": "Ahoj, k dispozici je nová verze",
|
||||||
"version_announcement_overlay_text_2": "najděte si čas na návštěvu ",
|
"version_announcement_overlay_text_2": "najděte si čas na návštěvu ",
|
||||||
"version_announcement_overlay_text_3": " a ujistěte se, že vaše konfigurace docker-compose a .env je aktuální, abyste předešli nesprávné konfiguraci, zvláště pokud používáte WatchTower nebo jakýkoli mechanismus, který podporuje automatické aktualizace serverových aplikací.",
|
"version_announcement_overlay_text_3": " a ujistěte se, že vaše konfigurace docker-compose a .env je aktuální, abyste předešli nesprávné konfiguraci, zvláště pokud používáte WatchTower nebo jakýkoli mechanismus, který podporuje automatické aktualizace serverových aplikací.",
|
||||||
"version_announcement_overlay_title": "K dispozici je nová verze serveru \uD83C\uDF89"
|
"version_announcement_overlay_title": "K dispozici je nová verze serveru \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Nogle enheder tager meget lang tid om at indlæse miniaturebilleder af elementer på enheden. Aktiver denne indstilling for i stedetat indlæse elementer fra serveren.",
|
"advanced_settings_prefer_remote_subtitle": "Nogle enheder tager meget lang tid om at indlæse miniaturebilleder af elementer på enheden. Aktiver denne indstilling for i stedetat indlæse elementer fra serveren.",
|
||||||
"advanced_settings_prefer_remote_title": "Foretræk elementer på serveren",
|
"advanced_settings_prefer_remote_title": "Foretræk elementer på serveren",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Spring verificering af SSL-certifikat over for serverens endelokation. Kræves for selvsignerede certifikater.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Tillad selvsignerede certifikater",
|
||||||
"advanced_settings_tile_subtitle": "Avancerede brugerindstillinger",
|
"advanced_settings_tile_subtitle": "Avancerede brugerindstillinger",
|
||||||
"advanced_settings_tile_title": "Arkivér",
|
"advanced_settings_tile_title": "Arkivér",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Slå ekstra funktioner for fejlsøgning til",
|
"advanced_settings_troubleshooting_subtitle": "Slå ekstra funktioner for fejlsøgning til",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Slet",
|
"control_bottom_app_bar_delete": "Slet",
|
||||||
"control_bottom_app_bar_favorite": "Favorit",
|
"control_bottom_app_bar_favorite": "Favorit",
|
||||||
"control_bottom_app_bar_share": "Del",
|
"control_bottom_app_bar_share": "Del",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Afakivér",
|
"control_bottom_app_bar_unarchive": "Afakivér",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Uden titel",
|
"create_album_page_untitled": "Uden titel",
|
||||||
"create_shared_album_page_create": "Opret",
|
"create_shared_album_page_create": "Opret",
|
||||||
"create_shared_album_page_share": "Del",
|
"create_shared_album_page_share": "Del",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Annuller",
|
"delete_dialog_cancel": "Annuller",
|
||||||
"delete_dialog_ok": "Slet",
|
"delete_dialog_ok": "Slet",
|
||||||
"delete_dialog_title": "Slet permanent",
|
"delete_dialog_title": "Slet permanent",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Tilføj en beskrivelse...",
|
"description_input_hint_text": "Tilføj en beskrivelse...",
|
||||||
"description_input_submit_error": "Fejl med at opdatere beskrivelsen. Tjek loggen for flere detaljer",
|
"description_input_submit_error": "Fejl med at opdatere beskrivelsen. Tjek loggen for flere detaljer",
|
||||||
"exif_bottom_sheet_description": "Tilføj beskrivelse...",
|
"exif_bottom_sheet_description": "Tilføj beskrivelse...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Det er kun muligt at lave sikkerhedskopi af 30 elementer ad gangen. Springer over",
|
"home_page_upload_err_limit": "Det er kun muligt at lave sikkerhedskopi af 30 elementer ad gangen. Springer over",
|
||||||
"image_viewer_page_state_provider_download_error": "Fejl ved download",
|
"image_viewer_page_state_provider_download_error": "Fejl ved download",
|
||||||
"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": "Share Error",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Nyt album",
|
"library_page_new_album": "Nyt album",
|
||||||
"library_page_sharing": "Delte",
|
"library_page_sharing": "Delte",
|
||||||
"library_page_sort_created": "Senest oprettet",
|
"library_page_sort_created": "Senest oprettet",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Albumtitel",
|
"library_page_sort_title": "Albumtitel",
|
||||||
"login_disabled": "Login er blevet deaktiveret",
|
"login_disabled": "Login er blevet deaktiveret",
|
||||||
"login_form_api_exception": "API-undtagelse. Tjek serverens URL og prøv igen. ",
|
"login_form_api_exception": "API-undtagelse. Tjek serverens URL og prøv igen. ",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Fejl med at logge på med OAuth. Tjek serveres webadresse",
|
"login_form_failed_get_oauth_server_config": "Fejl med at logge på med OAuth. Tjek serveres webadresse",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth er ikke tilgængelig på denne server",
|
"login_form_failed_get_oauth_server_disable": "OAuth er ikke tilgængelig på denne server",
|
||||||
"login_form_failed_login": "Der opstod en vejl ved at logge ind. Tjek server webadressen, e-mailen og kodeordet",
|
"login_form_failed_login": "Der opstod en vejl ved at logge ind. Tjek server webadressen, e-mailen og kodeordet",
|
||||||
|
"login_form_handshake_exception": "Der opstod en fejl med at oprette forbindelse til serveren. Aktiver selvsignerede certifikater i indstillingerne, hvis du bruger et selv signeret certifikat.",
|
||||||
"login_form_label_email": "E-mail",
|
"login_form_label_email": "E-mail",
|
||||||
"login_form_label_password": "Kodeord",
|
"login_form_label_password": "Kodeord",
|
||||||
"login_form_next_button": "Næste",
|
"login_form_next_button": "Næste",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Forbliv logget ind",
|
"login_form_save_login": "Forbliv logget ind",
|
||||||
"login_form_server_empty": "Indtast server-URL.",
|
"login_form_server_empty": "Indtast server-URL.",
|
||||||
"login_form_server_error": "Kunne ikke forbinde til serveren.",
|
"login_form_server_error": "Kunne ikke forbinde til serveren.",
|
||||||
|
"login_password_changed_error": "Der opstod en fejl i opdateringen af dit kodeord",
|
||||||
|
"login_password_changed_success": "Kodeordet blev opdateret",
|
||||||
|
"map_cannot_get_user_location": "Kan ikke finde brugerens placering",
|
||||||
|
"map_location_dialog_cancel": "Annuller",
|
||||||
|
"map_location_dialog_yes": "Ja",
|
||||||
|
"map_location_service_disabled_content": "Placeringstjenesten skal aktiveres for at vise elementer fra din nuværende placering. Vil du aktivere den nu?",
|
||||||
|
"map_location_service_disabled_title": "Placeringstjenesten er deaktiveret",
|
||||||
|
"map_no_assets_in_bounds": "Der er ingen billeder i dette område",
|
||||||
|
"map_no_location_permission_content": "Der kræves tilladelse til placeringen for at vise elementer fra din nuværende placering. Vil du give tilladelse?",
|
||||||
|
"map_no_location_permission_title": "Placeringstilladelse blev afvist",
|
||||||
|
"map_settings_dark_mode": "Mørk tilstand",
|
||||||
|
"map_settings_dialog_cancel": "Annuller",
|
||||||
|
"map_settings_dialog_save": "Gem",
|
||||||
|
"map_settings_dialog_title": "Kortindstillinger",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Datointerval",
|
||||||
|
"map_settings_only_show_favorites": "Vis kun favoritter",
|
||||||
|
"map_zoom_to_see_photos": "Zoom ud for at vise billeder",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Bevægelsesbilleder",
|
"motion_photos_page_title": "Bevægelsesbilleder",
|
||||||
"notification_permission_dialog_cancel": "Annuller",
|
"notification_permission_dialog_cancel": "Annuller",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Klient og server er ajour",
|
"profile_drawer_client_server_up_to_date": "Klient og server er ajour",
|
||||||
"profile_drawer_settings": "Indstillinger",
|
"profile_drawer_settings": "Indstillinger",
|
||||||
"profile_drawer_sign_out": "Log ud",
|
"profile_drawer_sign_out": "Log ud",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Nyligt tilføjet",
|
"recently_added_page_title": "Nyligt tilføjet",
|
||||||
"search_bar_hint": "Søg i dine billeder",
|
"search_bar_hint": "Søg i dine billeder",
|
||||||
"search_page_categories": "Kategorier",
|
"search_page_categories": "Kategorier",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Tilføj en titel",
|
"share_add_title": "Tilføj en titel",
|
||||||
"share_create_album": "Opret album",
|
"share_create_album": "Opret album",
|
||||||
"share_dialog_preparing": "Forbereder...",
|
"share_dialog_preparing": "Forbereder...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Inviter til album",
|
"share_invite": "Inviter til album",
|
||||||
"sharing_page_album": "Delt albums",
|
"sharing_page_album": "Delt albums",
|
||||||
"sharing_page_description": "Opret delte albummer for at dele billeder og video med personer på dit netværk.",
|
"sharing_page_description": "Opret delte albummer for at dele billeder og video med personer på dit netværk.",
|
||||||
"sharing_page_empty_list": "TOM LISTE",
|
"sharing_page_empty_list": "TOM LISTE",
|
||||||
"sharing_silver_appbar_create_shared_album": "Opret delt album",
|
"sharing_silver_appbar_create_shared_album": "Opret delt album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Del med partner",
|
"sharing_silver_appbar_share_partner": "Del med partner",
|
||||||
"tab_controller_nav_library": "Bibliotek",
|
"tab_controller_nav_library": "Bibliotek",
|
||||||
"tab_controller_nav_photos": "Billeder",
|
"tab_controller_nav_photos": "Billeder",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Tre-trins indlæsning kan øge ydeevnen, men kan ligeledes føre til højere netværksbelastning",
|
"theme_setting_three_stage_loading_subtitle": "Tre-trins indlæsning kan øge ydeevnen, men kan ligeledes føre til højere netværksbelastning",
|
||||||
"theme_setting_three_stage_loading_title": "Slå tre-trins indlæsning til",
|
"theme_setting_three_stage_loading_title": "Slå tre-trins indlæsning til",
|
||||||
|
"translated_text_options": "Handlinger",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Annuller",
|
"upload_dialog_cancel": "Annuller",
|
||||||
"upload_dialog_info": "Vil du sikkerhedskopiere de(t) valgte element(er) til serveren?",
|
"upload_dialog_info": "Vil du sikkerhedskopiere de(t) valgte element(er) til serveren?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hej ven, der er en ny version af",
|
"version_announcement_overlay_text_1": "Hej ven, der er en ny version af",
|
||||||
"version_announcement_overlay_text_2": ". Besøg venligst ",
|
"version_announcement_overlay_text_2": ". Besøg venligst ",
|
||||||
"version_announcement_overlay_text_3": " for at sikre dig, at din dockercompose- og .env-fil er opdateret, så der undgås fejlkonfiguration, specielt hvis du bruger WatchTower eller lignede.",
|
"version_announcement_overlay_text_3": " for at sikre dig, at din dockercompose- og .env-fil er opdateret, så der undgås fejlkonfiguration, specielt hvis du bruger WatchTower eller lignede.",
|
||||||
"version_announcement_overlay_title": "Ny serverversion er tilgængelig \uD83C\uDF89"
|
"version_announcement_overlay_title": "Ny serverversion er tilgængelig \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Bereits in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Bereits in {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Manche Endgeräte laden Vorschaubilder lokaler Bilder sehr langsam. Durch diese Einstellung werden diese stattdessen direkt vom Server geladen.",
|
"advanced_settings_prefer_remote_subtitle": "Manche Endgeräte laden Vorschaubilder lokaler Bilder sehr langsam. Durch diese Einstellung werden diese stattdessen direkt vom Server geladen.",
|
||||||
"advanced_settings_prefer_remote_title": "Server-Bilder bevorzugen",
|
"advanced_settings_prefer_remote_title": "Server-Bilder bevorzugen",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Erweiterte Benutzereinstellungen",
|
"advanced_settings_tile_subtitle": "Erweiterte Benutzereinstellungen",
|
||||||
"advanced_settings_tile_title": "Sonstige",
|
"advanced_settings_tile_title": "Sonstige",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Aktiviere erweiterte Funktionen zur Fehlersuche",
|
"advanced_settings_troubleshooting_subtitle": "Aktiviere erweiterte Funktionen zur Fehlersuche",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Löschen",
|
"control_bottom_app_bar_delete": "Löschen",
|
||||||
"control_bottom_app_bar_favorite": "Favorit",
|
"control_bottom_app_bar_favorite": "Favorit",
|
||||||
"control_bottom_app_bar_share": "Teilen",
|
"control_bottom_app_bar_share": "Teilen",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Dearchivieren",
|
"control_bottom_app_bar_unarchive": "Dearchivieren",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Unbenannt",
|
"create_album_page_untitled": "Unbenannt",
|
||||||
"create_shared_album_page_create": "Erstellen",
|
"create_shared_album_page_create": "Erstellen",
|
||||||
"create_shared_album_page_share": "Teilen",
|
"create_shared_album_page_share": "Teilen",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Abbrechen",
|
"delete_dialog_cancel": "Abbrechen",
|
||||||
"delete_dialog_ok": "Löschen",
|
"delete_dialog_ok": "Löschen",
|
||||||
"delete_dialog_title": "Für immer löschen",
|
"delete_dialog_title": "Für immer löschen",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Beschreibung hinzufügen...",
|
"description_input_hint_text": "Beschreibung hinzufügen...",
|
||||||
"description_input_submit_error": "Beschreibung konnte nicht geändert werden, bitte im Log für mehr Details nachsehen.",
|
"description_input_submit_error": "Beschreibung konnte nicht geändert werden, bitte im Log für mehr Details nachsehen.",
|
||||||
"exif_bottom_sheet_description": "Beschreibung hinzufügen...",
|
"exif_bottom_sheet_description": "Beschreibung hinzufügen...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Fehler beim Herunterladen",
|
"image_viewer_page_state_provider_download_error": "Fehler beim Herunterladen",
|
||||||
"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": "Share Error",
|
||||||
"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.",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Neues Album",
|
"library_page_new_album": "Neues Album",
|
||||||
"library_page_sharing": "Teilen",
|
"library_page_sharing": "Teilen",
|
||||||
"library_page_sort_created": "Zuletzt erstellt",
|
"library_page_sort_created": "Zuletzt erstellt",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Albumtitel",
|
"library_page_sort_title": "Albumtitel",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API Fehler. Bitte die Serveradresse überprüfen und erneut versuchen.",
|
"login_form_api_exception": "API Fehler. Bitte die Serveradresse überprüfen und erneut versuchen.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Fehler beim Login per OAuth, Server-URL überprüfen",
|
"login_form_failed_get_oauth_server_config": "Fehler beim Login per OAuth, Server-URL überprüfen",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth-Funktion nicht verfügbar auf diesem Server.",
|
"login_form_failed_get_oauth_server_disable": "OAuth-Funktion nicht verfügbar auf diesem Server.",
|
||||||
"login_form_failed_login": "Error logging you in, check server url, email and password",
|
"login_form_failed_login": "Error logging you in, check server url, email and password",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "E-Mail",
|
"login_form_label_email": "E-Mail",
|
||||||
"login_form_label_password": "Passwort",
|
"login_form_label_password": "Passwort",
|
||||||
"login_form_next_button": "Weiter",
|
"login_form_next_button": "Weiter",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Angemeldet bleiben",
|
"login_form_save_login": "Angemeldet bleiben",
|
||||||
"login_form_server_empty": "Serveradresse eingeben.",
|
"login_form_server_empty": "Serveradresse eingeben.",
|
||||||
"login_form_server_error": "Konnte nicht mit Server verbinden.",
|
"login_form_server_error": "Konnte nicht mit Server verbinden.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Live Photos",
|
"motion_photos_page_title": "Live Photos",
|
||||||
"notification_permission_dialog_cancel": "Abbrechen",
|
"notification_permission_dialog_cancel": "Abbrechen",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "App und Server sind aktuell",
|
"profile_drawer_client_server_up_to_date": "App und Server sind aktuell",
|
||||||
"profile_drawer_settings": "Einstellungen",
|
"profile_drawer_settings": "Einstellungen",
|
||||||
"profile_drawer_sign_out": "Abmelden",
|
"profile_drawer_sign_out": "Abmelden",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Zuletzt hinzugefügt",
|
"recently_added_page_title": "Zuletzt hinzugefügt",
|
||||||
"search_bar_hint": "Durchsuche deine Fotos",
|
"search_bar_hint": "Durchsuche deine Fotos",
|
||||||
"search_page_categories": "Kategorien",
|
"search_page_categories": "Kategorien",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Titel hinzufügen",
|
"share_add_title": "Titel hinzufügen",
|
||||||
"share_create_album": "Album erstellen",
|
"share_create_album": "Album erstellen",
|
||||||
"share_dialog_preparing": "Vorbereiten...",
|
"share_dialog_preparing": "Vorbereiten...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Zum Album einladen",
|
"share_invite": "Zum Album einladen",
|
||||||
"sharing_page_album": "Geteilte Alben",
|
"sharing_page_album": "Geteilte Alben",
|
||||||
"sharing_page_description": "Erstelle ein geteiltes Album um Fotos und Videos mit Personen in deinem Netzwerk zu teilen.",
|
"sharing_page_description": "Erstelle ein geteiltes Album um Fotos und Videos mit Personen in deinem Netzwerk zu teilen.",
|
||||||
"sharing_page_empty_list": "LEERE LISTE",
|
"sharing_page_empty_list": "LEERE LISTE",
|
||||||
"sharing_silver_appbar_create_shared_album": "Neues geteiltes Album",
|
"sharing_silver_appbar_create_shared_album": "Neues geteiltes Album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Teile mit Partner",
|
"sharing_silver_appbar_share_partner": "Teile mit Partner",
|
||||||
"tab_controller_nav_library": "Bibliothek",
|
"tab_controller_nav_library": "Bibliothek",
|
||||||
"tab_controller_nav_photos": "Fotos",
|
"tab_controller_nav_photos": "Fotos",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Das dreistufige Ladeverfahren kann die Performance beim Laden verbessern, erhöht allerdings den Datenverbrauch deutlich",
|
"theme_setting_three_stage_loading_subtitle": "Das dreistufige Ladeverfahren kann die Performance beim Laden verbessern, erhöht allerdings den Datenverbrauch deutlich",
|
||||||
"theme_setting_three_stage_loading_title": "Dreistufiges Laden aktivieren",
|
"theme_setting_three_stage_loading_title": "Dreistufiges Laden aktivieren",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hallo mein Freund! Es gibt eine neue Version von",
|
"version_announcement_overlay_text_1": "Hallo mein Freund! Es gibt eine neue Version von",
|
||||||
"version_announcement_overlay_text_2": "Bitte nehm dir die Zeit und lese das ",
|
"version_announcement_overlay_text_2": "Bitte nehm dir die Zeit und lese das ",
|
||||||
"version_announcement_overlay_text_3": " und achte darauf, dass deine docker-compose und .env Dateien aktuell sind, vor allem wenn du ein System für automatische Updates benutzt (z.B. Watchtower).",
|
"version_announcement_overlay_text_3": " und achte darauf, dass deine docker-compose und .env Dateien aktuell sind, vor allem wenn du ein System für automatische Updates benutzt (z.B. Watchtower).",
|
||||||
"version_announcement_overlay_title": "Neue Server-Version verfügbar \uD83C\uDF89"
|
"version_announcement_overlay_title": "Neue Server-Version verfügbar \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,12 +3,12 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Advanced",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
||||||
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
|
||||||
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
|
||||||
"album_info_card_backup_album_excluded": "EXCLUDED",
|
"album_info_card_backup_album_excluded": "EXCLUDED",
|
||||||
"album_info_card_backup_album_included": "INCLUDED",
|
"album_info_card_backup_album_included": "INCLUDED",
|
||||||
"album_thumbnail_card_item": "1 item",
|
"album_thumbnail_card_item": "1 item",
|
||||||
|
@ -151,6 +151,8 @@
|
||||||
"delete_dialog_cancel": "Cancel",
|
"delete_dialog_cancel": "Cancel",
|
||||||
"delete_dialog_ok": "Delete",
|
"delete_dialog_ok": "Delete",
|
||||||
"delete_dialog_title": "Delete Permanently",
|
"delete_dialog_title": "Delete Permanently",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Add description...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "Add Description...",
|
"exif_bottom_sheet_description": "Add Description...",
|
||||||
|
@ -169,9 +171,10 @@
|
||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_building_timeline": "Building the timeline",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
||||||
"home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
|
"home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
|
||||||
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"image_viewer_page_state_provider_share_error": "Share Error",
|
|
||||||
"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",
|
||||||
"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",
|
||||||
|
@ -179,12 +182,11 @@
|
||||||
"library_page_new_album": "New album",
|
"library_page_new_album": "New album",
|
||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
"library_page_sort_title": "Album title",
|
|
||||||
"library_page_sort_most_recent_photo": "Most recent photo",
|
|
||||||
"library_page_sort_last_modified": "Last modified",
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
|
"library_page_sort_title": "Album title",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
|
||||||
"login_form_button_text": "Login",
|
"login_form_button_text": "Login",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
"login_form_endpoint_hint": "http://your-server-ip:port/api",
|
"login_form_endpoint_hint": "http://your-server-ip:port/api",
|
||||||
|
@ -197,6 +199,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Password",
|
"login_form_label_password": "Password",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Next",
|
||||||
|
@ -204,8 +207,24 @@
|
||||||
"login_form_save_login": "Stay logged in",
|
"login_form_save_login": "Stay logged in",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
"login_password_changed_success": "Password updated successfully",
|
|
||||||
"login_password_changed_error": "There was an error updating your password",
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
|
@ -233,10 +252,12 @@
|
||||||
"permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
|
"permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
|
||||||
"permission_onboarding_request": "Immich requires permission to view your photos and videos.",
|
"permission_onboarding_request": "Immich requires permission to view your photos and videos.",
|
||||||
"profile_drawer_app_logs": "Logs",
|
"profile_drawer_app_logs": "Logs",
|
||||||
"profile_drawer_trash": "Trash",
|
|
||||||
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Settings",
|
||||||
"profile_drawer_sign_out": "Sign Out",
|
"profile_drawer_sign_out": "Sign Out",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
|
"profile_drawer_documentation": "Documentation",
|
||||||
|
"profile_drawer_github": "GitHub",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recently Added",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
|
@ -261,6 +282,7 @@
|
||||||
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
||||||
"server_info_box_app_version": "App Version",
|
"server_info_box_app_version": "App Version",
|
||||||
"server_info_box_server_version": "Server Version",
|
"server_info_box_server_version": "Server Version",
|
||||||
|
"server_info_box_server_url": "Server URL",
|
||||||
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
|
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
|
||||||
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
||||||
"setting_image_viewer_original_title": "Load original image",
|
"setting_image_viewer_original_title": "Load original image",
|
||||||
|
@ -281,11 +303,27 @@
|
||||||
"setting_pages_app_bar_settings": "Settings",
|
"setting_pages_app_bar_settings": "Settings",
|
||||||
"settings_require_restart": "Please restart Immich to apply this setting",
|
"settings_require_restart": "Please restart Immich to apply this setting",
|
||||||
"share_add": "Add",
|
"share_add": "Add",
|
||||||
"share_done": "Done",
|
|
||||||
"share_add_photos": "Add photos",
|
"share_add_photos": "Add photos",
|
||||||
"share_add_title": "Add a title",
|
"share_add_title": "Add a title",
|
||||||
"share_create_album": "Create album",
|
"share_create_album": "Create album",
|
||||||
"share_dialog_preparing": "Preparing...",
|
"share_dialog_preparing": "Preparing...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_password": "Password",
|
||||||
|
"shared_link_edit_password_hint": "Enter the share password",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Invite to album",
|
"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.",
|
||||||
|
@ -307,6 +345,19 @@
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -317,52 +368,12 @@
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
||||||
"translated_text_options": "Options",
|
|
||||||
"map_no_assets_in_bounds": "No photos in this area",
|
|
||||||
"map_zoom_to_see_photos": "Zoom out to see photos",
|
|
||||||
"map_settings_dialog_title": "Map Settings",
|
|
||||||
"map_settings_dark_mode": "Dark mode",
|
|
||||||
"map_settings_only_show_favorites": "Show Favorite Only",
|
|
||||||
"map_settings_include_show_archived": "Include Archived",
|
|
||||||
"map_settings_only_relative_range": "Date range",
|
|
||||||
"map_settings_dialog_cancel": "Cancel",
|
|
||||||
"map_settings_dialog_save": "Save",
|
|
||||||
"map_cannot_get_user_location": "Cannot get user's location",
|
|
||||||
"map_location_service_disabled_title": "Location Service disabled",
|
|
||||||
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
|
||||||
"map_no_location_permission_title": "Location Permission denied",
|
|
||||||
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
|
||||||
"map_location_dialog_cancel": "Cancel",
|
|
||||||
"map_location_dialog_yes": "Yes",
|
|
||||||
"trash_page_title": "Trash ({})",
|
|
||||||
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
|
||||||
"trash_page_no_assets": "No trashed assets",
|
|
||||||
"trash_page_delete": "Delete",
|
|
||||||
"trash_page_delete_all": "Delete All",
|
|
||||||
"trash_page_restore": "Restore",
|
|
||||||
"trash_page_restore_all": "Restore All",
|
|
||||||
"trash_page_select_btn": "Select",
|
|
||||||
"trash_page_select_assets_btn": "Select assets",
|
|
||||||
"trash_page_empty_trash_btn": "Empty trash",
|
|
||||||
"trash_page_empty_trash_dialog_ok": "Ok",
|
|
||||||
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
|
||||||
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
|
||||||
"viewer_remove_from_stack": "Remove from Stack",
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
"viewer_unstack": "Un-Stack",
|
"viewer_unstack": "Un-Stack",
|
||||||
"delete_shared_link_dialog_title": "Delete Shared Link",
|
"cache_settings_tile_title": "Local Storage",
|
||||||
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
"cache_settings_tile_subtitle": "Control the local storage behaviour",
|
||||||
"shared_link_create_app_bar_title": "Create link to share",
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
"shared_link_edit_app_bar_title": "Edit link",
|
"app_bar_signout_dialog_title": "Sign out",
|
||||||
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
"app_bar_signout_dialog_content": "Are you sure you wanna sign out?",
|
||||||
"shared_link_edit_description": "Description",
|
"app_bar_signout_dialog_ok": "Yes"
|
||||||
"shared_link_edit_description_hint": "Enter the share description",
|
|
||||||
"shared_link_edit_show_meta": "Show metadata",
|
|
||||||
"shared_link_edit_allow_download": "Allow public user to download",
|
|
||||||
"shared_link_edit_allow_upload": "Allow public user to upload",
|
|
||||||
"shared_link_edit_change_expiry": "Change expiration time",
|
|
||||||
"shared_link_edit_submit_button": "Update link",
|
|
||||||
"shared_link_create_submit_button": "Create link",
|
|
||||||
"shared_link_app_bar_title": "Shared Links",
|
|
||||||
"shared_link_manage_links": "Manage Shared links",
|
|
||||||
"shared_link_empty": "You don't have any shared links"
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
|
"advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
|
||||||
"advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
|
"advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
|
"advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
|
||||||
"advanced_settings_tile_title": "Avanzado",
|
"advanced_settings_tile_title": "Avanzado",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
|
"advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Eliminar",
|
"control_bottom_app_bar_delete": "Eliminar",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
"control_bottom_app_bar_share": "Compartir",
|
"control_bottom_app_bar_share": "Compartir",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Desarchivar",
|
"control_bottom_app_bar_unarchive": "Desarchivar",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Sin título",
|
"create_album_page_untitled": "Sin título",
|
||||||
"create_shared_album_page_create": "Crear",
|
"create_shared_album_page_create": "Crear",
|
||||||
"create_shared_album_page_share": "Compartir",
|
"create_shared_album_page_share": "Compartir",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Cancelar",
|
"delete_dialog_cancel": "Cancelar",
|
||||||
"delete_dialog_ok": "Eliminar",
|
"delete_dialog_ok": "Eliminar",
|
||||||
"delete_dialog_title": "Eliminar Permanentemente",
|
"delete_dialog_title": "Eliminar Permanentemente",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Agregar descripción...",
|
"description_input_hint_text": "Agregar descripción...",
|
||||||
"description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
|
"description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
|
||||||
"exif_bottom_sheet_description": "Agregar Descripción...",
|
"exif_bottom_sheet_description": "Agregar Descripción...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Error de descarga",
|
"image_viewer_page_state_provider_download_error": "Error de descarga",
|
||||||
"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": "Share Error",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Nuevo álbum",
|
"library_page_new_album": "Nuevo álbum",
|
||||||
"library_page_sharing": "Compartiendo",
|
"library_page_sharing": "Compartiendo",
|
||||||
"library_page_sort_created": "Creado más recientemente",
|
"library_page_sort_created": "Creado más recientemente",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Título del álbum",
|
"library_page_sort_title": "Título del álbum",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
|
"login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
|
"login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
|
||||||
"login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
|
"login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
|
||||||
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Correo",
|
"login_form_label_email": "Correo",
|
||||||
"login_form_label_password": "Contraseña",
|
"login_form_label_password": "Contraseña",
|
||||||
"login_form_next_button": "Siguiente",
|
"login_form_next_button": "Siguiente",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Mantener la sesión iniciada",
|
"login_form_save_login": "Mantener la sesión iniciada",
|
||||||
"login_form_server_empty": "Agrega la URL del servidor.",
|
"login_form_server_empty": "Agrega la URL del servidor.",
|
||||||
"login_form_server_error": "No se pudo conectar al servidor.",
|
"login_form_server_error": "No se pudo conectar al servidor.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Foto en Movimiento",
|
"motion_photos_page_title": "Foto en Movimiento",
|
||||||
"notification_permission_dialog_cancel": "Cancelar",
|
"notification_permission_dialog_cancel": "Cancelar",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "El Cliente y el Servidor están actualizados",
|
"profile_drawer_client_server_up_to_date": "El Cliente y el Servidor están actualizados",
|
||||||
"profile_drawer_settings": "Configuración",
|
"profile_drawer_settings": "Configuración",
|
||||||
"profile_drawer_sign_out": "Cerrar Sesión",
|
"profile_drawer_sign_out": "Cerrar Sesión",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recién Agregadas",
|
"recently_added_page_title": "Recién Agregadas",
|
||||||
"search_bar_hint": "Busca tus fotos",
|
"search_bar_hint": "Busca tus fotos",
|
||||||
"search_page_categories": "Categorías",
|
"search_page_categories": "Categorías",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Agregar un título",
|
"share_add_title": "Agregar un título",
|
||||||
"share_create_album": "Crear álbum",
|
"share_create_album": "Crear álbum",
|
||||||
"share_dialog_preparing": "Preparando...",
|
"share_dialog_preparing": "Preparando...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Invitar al álbum",
|
"share_invite": "Invitar al álbum",
|
||||||
"sharing_page_album": "Álbumes compartidos",
|
"sharing_page_album": "Álbumes compartidos",
|
||||||
"sharing_page_description": "Crea álbumes compartidos para compartir fotos y vídeos con las personas de tu red.",
|
"sharing_page_description": "Crea álbumes compartidos para compartir fotos y vídeos con las personas de tu red.",
|
||||||
"sharing_page_empty_list": "LISTA VACIA",
|
"sharing_page_empty_list": "LISTA VACIA",
|
||||||
"sharing_silver_appbar_create_shared_album": "Crear un álbum compartido",
|
"sharing_silver_appbar_create_shared_album": "Crear un álbum compartido",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Compartir con el compañero",
|
"sharing_silver_appbar_share_partner": "Compartir con el compañero",
|
||||||
"tab_controller_nav_library": "Biblioteca",
|
"tab_controller_nav_library": "Biblioteca",
|
||||||
"tab_controller_nav_photos": "Fotos",
|
"tab_controller_nav_photos": "Fotos",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
|
"theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
|
||||||
"theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
|
"theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hola amigo, hay una nueva versión de",
|
"version_announcement_overlay_text_1": "Hola amigo, hay una nueva versión de",
|
||||||
"version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
|
"version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
|
||||||
"version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
|
"version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
|
||||||
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89"
|
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
|
"advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
|
||||||
"advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
|
"advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
|
"advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
|
||||||
"advanced_settings_tile_title": "Avanzado",
|
"advanced_settings_tile_title": "Avanzado",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
|
"advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Eliminar",
|
"control_bottom_app_bar_delete": "Eliminar",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
"control_bottom_app_bar_share": "Compartir",
|
"control_bottom_app_bar_share": "Compartir",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Desarchivar",
|
"control_bottom_app_bar_unarchive": "Desarchivar",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Sin título",
|
"create_album_page_untitled": "Sin título",
|
||||||
"create_shared_album_page_create": "Crear",
|
"create_shared_album_page_create": "Crear",
|
||||||
"create_shared_album_page_share": "Compartir",
|
"create_shared_album_page_share": "Compartir",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Cancelar",
|
"delete_dialog_cancel": "Cancelar",
|
||||||
"delete_dialog_ok": "Eliminar",
|
"delete_dialog_ok": "Eliminar",
|
||||||
"delete_dialog_title": "Eliminar permanentemente",
|
"delete_dialog_title": "Eliminar permanentemente",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Agregar descripción...",
|
"description_input_hint_text": "Agregar descripción...",
|
||||||
"description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
|
"description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
|
||||||
"exif_bottom_sheet_description": "Agregar Descripción...",
|
"exif_bottom_sheet_description": "Agregar Descripción...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Error de descarga",
|
"image_viewer_page_state_provider_download_error": "Error de descarga",
|
||||||
"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": "Share Error",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Nuevo álbum",
|
"library_page_new_album": "Nuevo álbum",
|
||||||
"library_page_sharing": "Compartiendo",
|
"library_page_sharing": "Compartiendo",
|
||||||
"library_page_sort_created": "Creado más recientemente",
|
"library_page_sort_created": "Creado más recientemente",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Título del álbum",
|
"library_page_sort_title": "Título del álbum",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
|
"login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
|
"login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
|
||||||
"login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
|
"login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
|
||||||
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Correo electrónico",
|
"login_form_label_email": "Correo electrónico",
|
||||||
"login_form_label_password": "Contraseña",
|
"login_form_label_password": "Contraseña",
|
||||||
"login_form_next_button": "Siguiente",
|
"login_form_next_button": "Siguiente",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Permanecer conectado",
|
"login_form_save_login": "Permanecer conectado",
|
||||||
"login_form_server_empty": "Agrega la URL del servidor.",
|
"login_form_server_empty": "Agrega la URL del servidor.",
|
||||||
"login_form_server_error": "No se pudo conectar al servidor.",
|
"login_form_server_error": "No se pudo conectar al servidor.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Foto en Movimiento",
|
"motion_photos_page_title": "Foto en Movimiento",
|
||||||
"notification_permission_dialog_cancel": "Cancelar",
|
"notification_permission_dialog_cancel": "Cancelar",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
|
"profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
|
||||||
"profile_drawer_settings": "Configuración",
|
"profile_drawer_settings": "Configuración",
|
||||||
"profile_drawer_sign_out": "Cerrar sesión",
|
"profile_drawer_sign_out": "Cerrar sesión",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recién Agregadas",
|
"recently_added_page_title": "Recién Agregadas",
|
||||||
"search_bar_hint": "Busca tus fotos",
|
"search_bar_hint": "Busca tus fotos",
|
||||||
"search_page_categories": "Categorías",
|
"search_page_categories": "Categorías",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Agregar un título",
|
"share_add_title": "Agregar un título",
|
||||||
"share_create_album": "Crear álbum",
|
"share_create_album": "Crear álbum",
|
||||||
"share_dialog_preparing": "Preparando...",
|
"share_dialog_preparing": "Preparando...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Invitar al álbum",
|
"share_invite": "Invitar al álbum",
|
||||||
"sharing_page_album": "Álbumes compartidos",
|
"sharing_page_album": "Álbumes compartidos",
|
||||||
"sharing_page_description": "Crea álbumes compartidos para compartir fotos y videos con personas de tu red.",
|
"sharing_page_description": "Crea álbumes compartidos para compartir fotos y videos con personas de tu red.",
|
||||||
"sharing_page_empty_list": "LISTA VACIA",
|
"sharing_page_empty_list": "LISTA VACIA",
|
||||||
"sharing_silver_appbar_create_shared_album": "Crear álbum compartido",
|
"sharing_silver_appbar_create_shared_album": "Crear álbum compartido",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Compartir con compañero",
|
"sharing_silver_appbar_share_partner": "Compartir con compañero",
|
||||||
"tab_controller_nav_library": "Biblioteca",
|
"tab_controller_nav_library": "Biblioteca",
|
||||||
"tab_controller_nav_photos": "Fotos",
|
"tab_controller_nav_photos": "Fotos",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
|
"theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
|
||||||
"theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
|
"theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
|
"version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
|
||||||
"version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
|
"version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
|
||||||
"version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
|
"version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
|
||||||
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89"
|
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
|
"advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
|
||||||
"advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
|
"advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
|
"advanced_settings_tile_subtitle": "Configuraciones avanzadas del usuario",
|
||||||
"advanced_settings_tile_title": "Avanzado",
|
"advanced_settings_tile_title": "Avanzado",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
|
"advanced_settings_troubleshooting_subtitle": "Habilitar funciones adicionales para solución de problemas",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Eliminar",
|
"control_bottom_app_bar_delete": "Eliminar",
|
||||||
"control_bottom_app_bar_favorite": "Favorito",
|
"control_bottom_app_bar_favorite": "Favorito",
|
||||||
"control_bottom_app_bar_share": "Compartir",
|
"control_bottom_app_bar_share": "Compartir",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Desarchivar",
|
"control_bottom_app_bar_unarchive": "Desarchivar",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Sin título",
|
"create_album_page_untitled": "Sin título",
|
||||||
"create_shared_album_page_create": "Crear",
|
"create_shared_album_page_create": "Crear",
|
||||||
"create_shared_album_page_share": "Compartir",
|
"create_shared_album_page_share": "Compartir",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Cancelar",
|
"delete_dialog_cancel": "Cancelar",
|
||||||
"delete_dialog_ok": "Eliminar",
|
"delete_dialog_ok": "Eliminar",
|
||||||
"delete_dialog_title": "Eliminar permanentemente",
|
"delete_dialog_title": "Eliminar permanentemente",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Agregar descripción...",
|
"description_input_hint_text": "Agregar descripción...",
|
||||||
"description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
|
"description_input_submit_error": "Error al actualizar la descripción, verifica el registro para obtener más detalles",
|
||||||
"exif_bottom_sheet_description": "Agregar Descripción...",
|
"exif_bottom_sheet_description": "Agregar Descripción...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Error de descarga",
|
"image_viewer_page_state_provider_download_error": "Error de descarga",
|
||||||
"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": "Share Error",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Nuevo álbum",
|
"library_page_new_album": "Nuevo álbum",
|
||||||
"library_page_sharing": "Compartiendo",
|
"library_page_sharing": "Compartiendo",
|
||||||
"library_page_sort_created": "Creado más recientemente",
|
"library_page_sort_created": "Creado más recientemente",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Título del álbum",
|
"library_page_sort_title": "Título del álbum",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
|
"login_form_api_exception": "Excepción producida por API. Por favor, verifica el URL del servidor e inténtalo de nuevo.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
|
"login_form_failed_get_oauth_server_config": "Error al iniciar sesión con OAuth, verifica la URL del servidor",
|
||||||
"login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
|
"login_form_failed_get_oauth_server_disable": "La función de OAuth no está disponible en este servidor",
|
||||||
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
"login_form_failed_login": "Error al iniciar sesión, comprueba la URL del servidor, el correo electrónico y la contraseña",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Correo electrónico",
|
"login_form_label_email": "Correo electrónico",
|
||||||
"login_form_label_password": "Contraseña",
|
"login_form_label_password": "Contraseña",
|
||||||
"login_form_next_button": "Siguiente",
|
"login_form_next_button": "Siguiente",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Permanecer conectado",
|
"login_form_save_login": "Permanecer conectado",
|
||||||
"login_form_server_empty": "Agrega la URL del servidor.",
|
"login_form_server_empty": "Agrega la URL del servidor.",
|
||||||
"login_form_server_error": "No se pudo conectar al servidor.",
|
"login_form_server_error": "No se pudo conectar al servidor.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Foto en Movimiento",
|
"motion_photos_page_title": "Foto en Movimiento",
|
||||||
"notification_permission_dialog_cancel": "Cancelar",
|
"notification_permission_dialog_cancel": "Cancelar",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
|
"profile_drawer_client_server_up_to_date": "El cliente y el servidor están actualizados",
|
||||||
"profile_drawer_settings": "Configuración",
|
"profile_drawer_settings": "Configuración",
|
||||||
"profile_drawer_sign_out": "Cerrar sesión",
|
"profile_drawer_sign_out": "Cerrar sesión",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recién Agregadas",
|
"recently_added_page_title": "Recién Agregadas",
|
||||||
"search_bar_hint": "Busca tus fotos",
|
"search_bar_hint": "Busca tus fotos",
|
||||||
"search_page_categories": "Categorías",
|
"search_page_categories": "Categorías",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Agregar un título",
|
"share_add_title": "Agregar un título",
|
||||||
"share_create_album": "Crear álbum",
|
"share_create_album": "Crear álbum",
|
||||||
"share_dialog_preparing": "Preparando...",
|
"share_dialog_preparing": "Preparando...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Invitar al álbum",
|
"share_invite": "Invitar al álbum",
|
||||||
"sharing_page_album": "Álbumes compartidos",
|
"sharing_page_album": "Álbumes compartidos",
|
||||||
"sharing_page_description": "Crea álbumes compartidos para compartir fotos y videos con personas de tu red.",
|
"sharing_page_description": "Crea álbumes compartidos para compartir fotos y videos con personas de tu red.",
|
||||||
"sharing_page_empty_list": "LISTA VACIA",
|
"sharing_page_empty_list": "LISTA VACIA",
|
||||||
"sharing_silver_appbar_create_shared_album": "Crear álbum compartido",
|
"sharing_silver_appbar_create_shared_album": "Crear álbum compartido",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Compartir con compañero",
|
"sharing_silver_appbar_share_partner": "Compartir con compañero",
|
||||||
"tab_controller_nav_library": "Biblioteca",
|
"tab_controller_nav_library": "Biblioteca",
|
||||||
"tab_controller_nav_photos": "Fotos",
|
"tab_controller_nav_photos": "Fotos",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
|
"theme_setting_three_stage_loading_subtitle": "La carga en tres etapas puede aumentar el rendimiento de carga pero provoca un consumo de red significativamente mayor",
|
||||||
"theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
|
"theme_setting_three_stage_loading_title": "Activar carga en tres etapas",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
|
"version_announcement_overlay_text_1": "Hola, amigo, hay una nueva versión de",
|
||||||
"version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
|
"version_announcement_overlay_text_2": "por favor, tómate tu tiempo para visitar las ",
|
||||||
"version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
|
"version_announcement_overlay_text_3": " y asegúrate de que la configuración de docker-compose y .env estén actualizadas para evitar cualquier error de configuración, especialmente si utilizas WatchTower o cualquier mecanismo que actualice automáticamente la aplicación del servidor.",
|
||||||
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89"
|
"version_announcement_overlay_title": "Nueva versión del servidor disponible \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Kohde on jo albumissa {album}",
|
"add_to_album_bottom_sheet_already_exists": "Kohde on jo albumissa {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Jotkut laitteet ovat erittäin hitaita lataamaan esikatselukuvia laitteen kohteista. Aktivoi tämä asetus käyttääksesi etäkuvia.",
|
"advanced_settings_prefer_remote_subtitle": "Jotkut laitteet ovat erittäin hitaita lataamaan esikatselukuvia laitteen kohteista. Aktivoi tämä asetus käyttääksesi etäkuvia.",
|
||||||
"advanced_settings_prefer_remote_title": "Suosi etäkuvia",
|
"advanced_settings_prefer_remote_title": "Suosi etäkuvia",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Edistyneen käyttäjän asetukset",
|
"advanced_settings_tile_subtitle": "Edistyneen käyttäjän asetukset",
|
||||||
"advanced_settings_tile_title": "Edistyneet",
|
"advanced_settings_tile_title": "Edistyneet",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Kytke vianetsinnän lisäominaisuudet päälle",
|
"advanced_settings_troubleshooting_subtitle": "Kytke vianetsinnän lisäominaisuudet päälle",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Poista",
|
"control_bottom_app_bar_delete": "Poista",
|
||||||
"control_bottom_app_bar_favorite": "Suosikki",
|
"control_bottom_app_bar_favorite": "Suosikki",
|
||||||
"control_bottom_app_bar_share": "Jaa",
|
"control_bottom_app_bar_share": "Jaa",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Palauta arkistosta",
|
"control_bottom_app_bar_unarchive": "Palauta arkistosta",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Nimetön",
|
"create_album_page_untitled": "Nimetön",
|
||||||
"create_shared_album_page_create": "Luo",
|
"create_shared_album_page_create": "Luo",
|
||||||
"create_shared_album_page_share": "Jaa",
|
"create_shared_album_page_share": "Jaa",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Peruuta",
|
"delete_dialog_cancel": "Peruuta",
|
||||||
"delete_dialog_ok": "Poista",
|
"delete_dialog_ok": "Poista",
|
||||||
"delete_dialog_title": "Poista pysyvästi",
|
"delete_dialog_title": "Poista pysyvästi",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Lisää kuvaus...",
|
"description_input_hint_text": "Lisää kuvaus...",
|
||||||
"description_input_submit_error": "Virhe kuvauksen päivittämisessä, tarkista lisätiedot lokista",
|
"description_input_submit_error": "Virhe kuvauksen päivittämisessä, tarkista lisätiedot lokista",
|
||||||
"exif_bottom_sheet_description": "Lisää kuvaus…",
|
"exif_bottom_sheet_description": "Lisää kuvaus…",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Voit lähettää palvelimelle enintään 30 kohdetta kerrallaan, ohitetaan",
|
"home_page_upload_err_limit": "Voit lähettää palvelimelle enintään 30 kohdetta kerrallaan, ohitetaan",
|
||||||
"image_viewer_page_state_provider_download_error": "Lataus epäonnistui",
|
"image_viewer_page_state_provider_download_error": "Lataus epäonnistui",
|
||||||
"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": "Share Error",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Uusi albumi",
|
"library_page_new_album": "Uusi albumi",
|
||||||
"library_page_sharing": "Jakaminen",
|
"library_page_sharing": "Jakaminen",
|
||||||
"library_page_sort_created": "Viimeisin luotu",
|
"library_page_sort_created": "Viimeisin luotu",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Albumin otsikko",
|
"library_page_sort_title": "Albumin otsikko",
|
||||||
"login_disabled": "Kirjautuminen on poistettu käytöstä",
|
"login_disabled": "Kirjautuminen on poistettu käytöstä",
|
||||||
"login_form_api_exception": "API-virhe. Tarkista palvelimen URL-osoite ja yritä uudelleen.",
|
"login_form_api_exception": "API-virhe. Tarkista palvelimen URL-osoite ja yritä uudelleen.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Virhe kirjauduttaessa OAuth:lla, tarkista palvelimen URL",
|
"login_form_failed_get_oauth_server_config": "Virhe kirjauduttaessa OAuth:lla, tarkista palvelimen URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth-ominaisuus ei ole käytössä tällä palvelimella",
|
"login_form_failed_get_oauth_server_disable": "OAuth-ominaisuus ei ole käytössä tällä palvelimella",
|
||||||
"login_form_failed_login": "Virhe kirjautumisessa. Tarkista palvelimen URL, sähköpostiosoite ja salasana.",
|
"login_form_failed_login": "Virhe kirjautumisessa. Tarkista palvelimen URL, sähköpostiosoite ja salasana.",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Sähköposti",
|
"login_form_label_email": "Sähköposti",
|
||||||
"login_form_label_password": "Salasana",
|
"login_form_label_password": "Salasana",
|
||||||
"login_form_next_button": "Seuraava",
|
"login_form_next_button": "Seuraava",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Pysy kirjautuneena",
|
"login_form_save_login": "Pysy kirjautuneena",
|
||||||
"login_form_server_empty": "Syötä palvelimen URL-osoite.",
|
"login_form_server_empty": "Syötä palvelimen URL-osoite.",
|
||||||
"login_form_server_error": "Palvelimeen ei saatu yhteyttä.",
|
"login_form_server_error": "Palvelimeen ei saatu yhteyttä.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Liikekuvat",
|
"motion_photos_page_title": "Liikekuvat",
|
||||||
"notification_permission_dialog_cancel": "Peruuta",
|
"notification_permission_dialog_cancel": "Peruuta",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Asiakassovellus ja palvelin ovat ajan tasalla",
|
"profile_drawer_client_server_up_to_date": "Asiakassovellus ja palvelin ovat ajan tasalla",
|
||||||
"profile_drawer_settings": "Asetukset",
|
"profile_drawer_settings": "Asetukset",
|
||||||
"profile_drawer_sign_out": "Kirjaudu ulos",
|
"profile_drawer_sign_out": "Kirjaudu ulos",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Viimeksi lisätyt",
|
"recently_added_page_title": "Viimeksi lisätyt",
|
||||||
"search_bar_hint": "Etsi kuvia",
|
"search_bar_hint": "Etsi kuvia",
|
||||||
"search_page_categories": "Kategoriat",
|
"search_page_categories": "Kategoriat",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Lisää nimi",
|
"share_add_title": "Lisää nimi",
|
||||||
"share_create_album": "Luo albumi",
|
"share_create_album": "Luo albumi",
|
||||||
"share_dialog_preparing": "Valmistellaan...",
|
"share_dialog_preparing": "Valmistellaan...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Kutsu albumiin",
|
"share_invite": "Kutsu albumiin",
|
||||||
"sharing_page_album": "Jaetut albumit",
|
"sharing_page_album": "Jaetut albumit",
|
||||||
"sharing_page_description": "Luo jaettuja albumeja jakaaksesi kuvia ja videoita läheisillesi.",
|
"sharing_page_description": "Luo jaettuja albumeja jakaaksesi kuvia ja videoita läheisillesi.",
|
||||||
"sharing_page_empty_list": "TYHJÄ LISTA",
|
"sharing_page_empty_list": "TYHJÄ LISTA",
|
||||||
"sharing_silver_appbar_create_shared_album": "Luo jaettu albumi",
|
"sharing_silver_appbar_create_shared_album": "Luo jaettu albumi",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Jaa kumppanille",
|
"sharing_silver_appbar_share_partner": "Jaa kumppanille",
|
||||||
"tab_controller_nav_library": "Kirjasto",
|
"tab_controller_nav_library": "Kirjasto",
|
||||||
"tab_controller_nav_photos": "Kuvat",
|
"tab_controller_nav_photos": "Kuvat",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Teema",
|
"theme_setting_theme_title": "Teema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Kolmivaiheinen lataaminen saattaa parantaa latauksen suorituskykyä, mutta lisää kaistankäyttöä huomattavasti.",
|
"theme_setting_three_stage_loading_subtitle": "Kolmivaiheinen lataaminen saattaa parantaa latauksen suorituskykyä, mutta lisää kaistankäyttöä huomattavasti.",
|
||||||
"theme_setting_three_stage_loading_title": "Ota kolmivaiheinen lataus käyttöön",
|
"theme_setting_three_stage_loading_title": "Ota kolmivaiheinen lataus käyttöön",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Peruuta",
|
"upload_dialog_cancel": "Peruuta",
|
||||||
"upload_dialog_info": "Haluatko varmuuskopioida valitut kohteet palvelimelle?",
|
"upload_dialog_info": "Haluatko varmuuskopioida valitut kohteet palvelimelle?",
|
||||||
"upload_dialog_ok": "Lähetä",
|
"upload_dialog_ok": "Lähetä",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hei, kaveri! Uusi palvelinversio on saatavilla sovelluksesta",
|
"version_announcement_overlay_text_1": "Hei, kaveri! Uusi palvelinversio on saatavilla sovelluksesta",
|
||||||
"version_announcement_overlay_text_2": "Ota hetki aikaa vieraillaksesi",
|
"version_announcement_overlay_text_2": "Ota hetki aikaa vieraillaksesi",
|
||||||
"version_announcement_overlay_text_3": "ja varmista, että käyttämäsi docker-compose ja .env-asetukset ovat ajantasalla välttyäksesi asetusongelmilta. Varsinkin jos käytät WatchToweria tai jotain muuta mekanismia päivittääksesi palvelinsovellusta automaattisesti.",
|
"version_announcement_overlay_text_3": "ja varmista, että käyttämäsi docker-compose ja .env-asetukset ovat ajantasalla välttyäksesi asetusongelmilta. Varsinkin jos käytät WatchToweria tai jotain muuta mekanismia päivittääksesi palvelinsovellusta automaattisesti.",
|
||||||
"version_announcement_overlay_title": "Uusi palvelinversio saatavilla \uD83C\uDF89"
|
"version_announcement_overlay_title": "Uusi palvelinversio saatavilla \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Déjà dans {album}",
|
"add_to_album_bottom_sheet_already_exists": "Déjà dans {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Certains appareils sont terriblement lents à charger des miniatures à partir de ressources présentes sur l'appareil. Activez ce paramètre pour charger des images distantes à la place.",
|
"advanced_settings_prefer_remote_subtitle": "Certains appareils sont terriblement lents à charger des miniatures à partir de ressources présentes sur l'appareil. Activez ce paramètre pour charger des images distantes à la place.",
|
||||||
"advanced_settings_prefer_remote_title": "Préférer les images distantes",
|
"advanced_settings_prefer_remote_title": "Préférer les images distantes",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Permet d'ignorer la vérification du certificat SSL pour le point d'extrémité du serveur. Requis pour les certificats auto-signés.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Autoriser les certificats SSL auto-signés",
|
||||||
"advanced_settings_tile_subtitle": "Paramètres d'utilisateur avancés",
|
"advanced_settings_tile_subtitle": "Paramètres d'utilisateur avancés",
|
||||||
"advanced_settings_tile_title": "Avancé",
|
"advanced_settings_tile_title": "Avancé",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Activer des fonctions supplémentaires pour le dépannage",
|
"advanced_settings_troubleshooting_subtitle": "Activer des fonctions supplémentaires pour le dépannage",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Supprimer",
|
"control_bottom_app_bar_delete": "Supprimer",
|
||||||
"control_bottom_app_bar_favorite": "Favoris",
|
"control_bottom_app_bar_favorite": "Favoris",
|
||||||
"control_bottom_app_bar_share": "Partager",
|
"control_bottom_app_bar_share": "Partager",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Désarchiver",
|
"control_bottom_app_bar_unarchive": "Désarchiver",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Sans titre",
|
"create_album_page_untitled": "Sans titre",
|
||||||
"create_shared_album_page_create": "Créer",
|
"create_shared_album_page_create": "Créer",
|
||||||
"create_shared_album_page_share": "Partager",
|
"create_shared_album_page_share": "Partager",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Annuler",
|
"delete_dialog_cancel": "Annuler",
|
||||||
"delete_dialog_ok": "Supprimer",
|
"delete_dialog_ok": "Supprimer",
|
||||||
"delete_dialog_title": "Supprimer définitivement",
|
"delete_dialog_title": "Supprimer définitivement",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Ajouter une description...",
|
"description_input_hint_text": "Ajouter une description...",
|
||||||
"description_input_submit_error": "Erreur de mise à jour de la description, vérifier le journal pour plus de détails",
|
"description_input_submit_error": "Erreur de mise à jour de la description, vérifier le journal pour plus de détails",
|
||||||
"exif_bottom_sheet_description": "Ajouter une description...",
|
"exif_bottom_sheet_description": "Ajouter une description...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée",
|
"home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée",
|
||||||
"image_viewer_page_state_provider_download_error": "Erreur de téléchargement",
|
"image_viewer_page_state_provider_download_error": "Erreur de téléchargement",
|
||||||
"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": "Share Error",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Nouvel album",
|
"library_page_new_album": "Nouvel album",
|
||||||
"library_page_sharing": "Partage",
|
"library_page_sharing": "Partage",
|
||||||
"library_page_sort_created": "Créations les plus récentes",
|
"library_page_sort_created": "Créations les plus récentes",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Titre de l'album",
|
"library_page_sort_title": "Titre de l'album",
|
||||||
"login_disabled": "La connexion a été désactivée ",
|
"login_disabled": "La connexion a été désactivée ",
|
||||||
"login_form_api_exception": "Erreur de l'API. Veuillez vérifier l'URL du serveur et et réessayer.",
|
"login_form_api_exception": "Erreur de l'API. Veuillez vérifier l'URL du serveur et et réessayer.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Erreur de connexion par OAuth, vérifiez l\"URL du serveur",
|
"login_form_failed_get_oauth_server_config": "Erreur de connexion par OAuth, vérifiez l\"URL du serveur",
|
||||||
"login_form_failed_get_oauth_server_disable": "La fonctionnalité OAuth n'est pas disponible sur ce serveur",
|
"login_form_failed_get_oauth_server_disable": "La fonctionnalité OAuth n'est pas disponible sur ce serveur",
|
||||||
"login_form_failed_login": "Erreur de connexion, vérifiez l'url du serveur, l'email et le mot de passe",
|
"login_form_failed_login": "Erreur de connexion, vérifiez l'url du serveur, l'email et le mot de passe",
|
||||||
|
"login_form_handshake_exception": "Il y a eu une exception de liaison avec le serveur. Activez la prise en charge des certificats auto-signés dans les paramètres si vous utilisez un certificat auto-signé.",
|
||||||
"login_form_label_email": "E-mail",
|
"login_form_label_email": "E-mail",
|
||||||
"login_form_label_password": "Mot de passe",
|
"login_form_label_password": "Mot de passe",
|
||||||
"login_form_next_button": "Suivant",
|
"login_form_next_button": "Suivant",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Rester connecté",
|
"login_form_save_login": "Rester connecté",
|
||||||
"login_form_server_empty": "Saisissez l'URL du serveur.",
|
"login_form_server_empty": "Saisissez l'URL du serveur.",
|
||||||
"login_form_server_error": "Impossible de se connecter au serveur.",
|
"login_form_server_error": "Impossible de se connecter au serveur.",
|
||||||
|
"login_password_changed_error": "Une erreur s'est produite lors de la mise à jour de votre mot de passe",
|
||||||
|
"login_password_changed_success": "Mot de passe mis à jour avec succès",
|
||||||
|
"map_cannot_get_user_location": "Impossible d'obtenir la localisation de l'utilisateur",
|
||||||
|
"map_location_dialog_cancel": "Annuler",
|
||||||
|
"map_location_dialog_yes": "Oui",
|
||||||
|
"map_location_service_disabled_content": "Le service de localisation doit être activé pour afficher les éléments de votre emplacement actuel. Souhaitez-vous l'activer maintenant ?",
|
||||||
|
"map_location_service_disabled_title": "Service de localisation désactivé",
|
||||||
|
"map_no_assets_in_bounds": "Pas de photos dans cette zone",
|
||||||
|
"map_no_location_permission_content": "L'autorisation de localisation est nécessaire pour afficher les éléments de votre emplacement actuel. Souhaitez-vous l'autoriser maintenant ?",
|
||||||
|
"map_no_location_permission_title": "Permission de localisation refusée",
|
||||||
|
"map_settings_dark_mode": "Mode sombre",
|
||||||
|
"map_settings_dialog_cancel": "Annuler",
|
||||||
|
"map_settings_dialog_save": "Sauvegarder",
|
||||||
|
"map_settings_dialog_title": "Paramètres de la carte",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Plage de dates",
|
||||||
|
"map_settings_only_show_favorites": "Afficher uniquement les favoris",
|
||||||
|
"map_zoom_to_see_photos": "Dézoomer pour voir les photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Photos avec mouvement",
|
"motion_photos_page_title": "Photos avec mouvement",
|
||||||
"notification_permission_dialog_cancel": "Annuler",
|
"notification_permission_dialog_cancel": "Annuler",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Le client et le serveur sont à jour",
|
"profile_drawer_client_server_up_to_date": "Le client et le serveur sont à jour",
|
||||||
"profile_drawer_settings": "Paramètres",
|
"profile_drawer_settings": "Paramètres",
|
||||||
"profile_drawer_sign_out": "Se déconnecter",
|
"profile_drawer_sign_out": "Se déconnecter",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Récemment ajouté",
|
"recently_added_page_title": "Récemment ajouté",
|
||||||
"search_bar_hint": "Rechercher vos photos",
|
"search_bar_hint": "Rechercher vos photos",
|
||||||
"search_page_categories": "Catégories",
|
"search_page_categories": "Catégories",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Ajouter un titre",
|
"share_add_title": "Ajouter un titre",
|
||||||
"share_create_album": "Créer un album",
|
"share_create_album": "Créer un album",
|
||||||
"share_dialog_preparing": "Préparation...",
|
"share_dialog_preparing": "Préparation...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Inviter à l'album",
|
"share_invite": "Inviter à l'album",
|
||||||
"sharing_page_album": "Albums partagés",
|
"sharing_page_album": "Albums partagés",
|
||||||
"sharing_page_description": "Créez des albums partagés pour partager des photos et des vidéos avec les personnes de votre réseau.",
|
"sharing_page_description": "Créez des albums partagés pour partager des photos et des vidéos avec les personnes de votre réseau.",
|
||||||
"sharing_page_empty_list": "LISTE VIDE",
|
"sharing_page_empty_list": "LISTE VIDE",
|
||||||
"sharing_silver_appbar_create_shared_album": "Créer un album partagé",
|
"sharing_silver_appbar_create_shared_album": "Créer un album partagé",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Partager avec un partenaire",
|
"sharing_silver_appbar_share_partner": "Partager avec un partenaire",
|
||||||
"tab_controller_nav_library": "Bibliothèque",
|
"tab_controller_nav_library": "Bibliothèque",
|
||||||
"tab_controller_nav_photos": "Photos",
|
"tab_controller_nav_photos": "Photos",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Thème",
|
"theme_setting_theme_title": "Thème",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Le chargement en trois étapes peut améliorer les performances de chargement, mais entraîne une augmentation significative de la charge du réseau.",
|
"theme_setting_three_stage_loading_subtitle": "Le chargement en trois étapes peut améliorer les performances de chargement, mais entraîne une augmentation significative de la charge du réseau.",
|
||||||
"theme_setting_three_stage_loading_title": "Activer le chargement en trois étapes",
|
"theme_setting_three_stage_loading_title": "Activer le chargement en trois étapes",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Annuler",
|
"upload_dialog_cancel": "Annuler",
|
||||||
"upload_dialog_info": "Voulez-vous sauvegarder la sélection vers le serveur ?",
|
"upload_dialog_info": "Voulez-vous sauvegarder la sélection vers le serveur ?",
|
||||||
"upload_dialog_ok": "Télécharger ",
|
"upload_dialog_ok": "Télécharger ",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Bonjour, une nouvelle version de",
|
"version_announcement_overlay_text_1": "Bonjour, une nouvelle version de",
|
||||||
"version_announcement_overlay_text_2": "veuillez prendre le temps de visiter le ",
|
"version_announcement_overlay_text_2": "veuillez prendre le temps de visiter le ",
|
||||||
"version_announcement_overlay_text_3": " et assurez-vous que votre configuration docker-compose et .env est à jour pour éviter toute erreur de configuration, en particulier si vous utilisez WatchTower ou tout autre mécanisme qui gère la mise à jour automatique de votre application serveur.",
|
"version_announcement_overlay_text_3": " et assurez-vous que votre configuration docker-compose et .env est à jour pour éviter toute erreur de configuration, en particulier si vous utilisez WatchTower ou tout autre mécanisme qui gère la mise à jour automatique de votre application serveur.",
|
||||||
"version_announcement_overlay_title": "Nouvelle version serveur disponible \uD83C\uDF89"
|
"version_announcement_overlay_title": "Nouvelle version serveur disponible \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Advanced",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Unarchive",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Untitled",
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_shared_album_page_create": "Create",
|
"create_shared_album_page_create": "Create",
|
||||||
"create_shared_album_page_share": "Share",
|
"create_shared_album_page_share": "Share",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Cancel",
|
"delete_dialog_cancel": "Cancel",
|
||||||
"delete_dialog_ok": "Delete",
|
"delete_dialog_ok": "Delete",
|
||||||
"delete_dialog_title": "Delete Permanently",
|
"delete_dialog_title": "Delete Permanently",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Add description...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "Add Description...",
|
"exif_bottom_sheet_description": "Add Description...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"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",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "New album",
|
"library_page_new_album": "New album",
|
||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Password",
|
"login_form_label_password": "Password",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Next",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Stay logged in",
|
"login_form_save_login": "Stay logged in",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Settings",
|
||||||
"profile_drawer_sign_out": "Sign Out",
|
"profile_drawer_sign_out": "Sign Out",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recently Added",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Add a title",
|
"share_add_title": "Add a title",
|
||||||
"share_create_album": "Create album",
|
"share_create_album": "Create album",
|
||||||
"share_dialog_preparing": "Preparing...",
|
"share_dialog_preparing": "Preparing...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Invite to album",
|
"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": "Create shared album",
|
"sharing_silver_appbar_create_shared_album": "Create shared album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Share with partner",
|
"sharing_silver_appbar_share_partner": "Share with partner",
|
||||||
"tab_controller_nav_library": "Library",
|
"tab_controller_nav_library": "Library",
|
||||||
"tab_controller_nav_photos": "Photos",
|
"tab_controller_nav_photos": "Photos",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89"
|
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Már eleme a(z) {album} nevű albumnak",
|
"add_to_album_bottom_sheet_already_exists": "Már eleme a(z) {album} nevű albumnak",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Haladó felhasználói beállítások",
|
"advanced_settings_tile_subtitle": "Haladó felhasználói beállítások",
|
||||||
"advanced_settings_tile_title": "Haladó",
|
"advanced_settings_tile_title": "Haladó",
|
||||||
"advanced_settings_troubleshooting_subtitle": "További funkciók engedélyezése hibaelhárítás céljából",
|
"advanced_settings_troubleshooting_subtitle": "További funkciók engedélyezése hibaelhárítás céljából",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Törlés",
|
"control_bottom_app_bar_delete": "Törlés",
|
||||||
"control_bottom_app_bar_favorite": "Kedvenc",
|
"control_bottom_app_bar_favorite": "Kedvenc",
|
||||||
"control_bottom_app_bar_share": "Megosztás",
|
"control_bottom_app_bar_share": "Megosztás",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Archiválás megszüntetése",
|
"control_bottom_app_bar_unarchive": "Archiválás megszüntetése",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Névtelen",
|
"create_album_page_untitled": "Névtelen",
|
||||||
"create_shared_album_page_create": "Létrehoz",
|
"create_shared_album_page_create": "Létrehoz",
|
||||||
"create_shared_album_page_share": "Megosztás",
|
"create_shared_album_page_share": "Megosztás",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Mégse",
|
"delete_dialog_cancel": "Mégse",
|
||||||
"delete_dialog_ok": "Törlés",
|
"delete_dialog_ok": "Törlés",
|
||||||
"delete_dialog_title": "Törlés véglegesen",
|
"delete_dialog_title": "Törlés véglegesen",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Leírás hozzáadása...",
|
"description_input_hint_text": "Leírás hozzáadása...",
|
||||||
"description_input_submit_error": "Nem sikerült frissíteni a leírást. További információért kérjük, nézd meg az eseménynaplót",
|
"description_input_submit_error": "Nem sikerült frissíteni a leírást. További információért kérjük, nézd meg az eseménynaplót",
|
||||||
"exif_bottom_sheet_description": "Leírás hozzáadása...",
|
"exif_bottom_sheet_description": "Leírás hozzáadása...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Csak 30 elemet tudsz egyszerre feltölteni, átugrás",
|
"home_page_upload_err_limit": "Csak 30 elemet tudsz egyszerre feltölteni, átugrás",
|
||||||
"image_viewer_page_state_provider_download_error": "Letöltési Hiba",
|
"image_viewer_page_state_provider_download_error": "Letöltési Hiba",
|
||||||
"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": "Share Error",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Új album",
|
"library_page_new_album": "Új album",
|
||||||
"library_page_sharing": "Megosztás\n",
|
"library_page_sharing": "Megosztás\n",
|
||||||
"library_page_sort_created": "Legutoljára létrehozott",
|
"library_page_sort_created": "Legutoljára létrehozott",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Album címe",
|
"library_page_sort_title": "Album címe",
|
||||||
"login_disabled": "A bejelentkezés letiltva",
|
"login_disabled": "A bejelentkezés letiltva",
|
||||||
"login_form_api_exception": "API hiba. Kérljük, ellenőrid a szerver címét, majd próbáld újra.",
|
"login_form_api_exception": "API hiba. Kérljük, ellenőrid a szerver címét, majd próbáld újra.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
"login_form_failed_login": "Hiba bejelentkezés közben, ellenőrizd a címet, email-t és a jelszót",
|
"login_form_failed_login": "Hiba bejelentkezés közben, ellenőrizd a címet, email-t és a jelszót",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Jelszó",
|
"login_form_label_password": "Jelszó",
|
||||||
"login_form_next_button": "Következő",
|
"login_form_next_button": "Következő",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Maradjon bejelentkezve",
|
"login_form_save_login": "Maradjon bejelentkezve",
|
||||||
"login_form_server_empty": "Add meg a szerver címét.",
|
"login_form_server_empty": "Add meg a szerver címét.",
|
||||||
"login_form_server_error": "Nem sikerült kapcsolódni a szerverhez.",
|
"login_form_server_error": "Nem sikerült kapcsolódni a szerverhez.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Mozgó Fotók",
|
"motion_photos_page_title": "Mozgó Fotók",
|
||||||
"notification_permission_dialog_cancel": "Mégsem",
|
"notification_permission_dialog_cancel": "Mégsem",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Kliens és a szerver is naprakész",
|
"profile_drawer_client_server_up_to_date": "Kliens és a szerver is naprakész",
|
||||||
"profile_drawer_settings": "Beállítások",
|
"profile_drawer_settings": "Beállítások",
|
||||||
"profile_drawer_sign_out": "Kijelentkezés",
|
"profile_drawer_sign_out": "Kijelentkezés",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Nemrég Hozzáadott",
|
"recently_added_page_title": "Nemrég Hozzáadott",
|
||||||
"search_bar_hint": "Keress a fotóid között",
|
"search_bar_hint": "Keress a fotóid között",
|
||||||
"search_page_categories": "Kategóriák",
|
"search_page_categories": "Kategóriák",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Cím hozzáadása",
|
"share_add_title": "Cím hozzáadása",
|
||||||
"share_create_album": "Album létrehozása",
|
"share_create_album": "Album létrehozása",
|
||||||
"share_dialog_preparing": "Előkészítés...",
|
"share_dialog_preparing": "Előkészítés...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Meghívás az albumba",
|
"share_invite": "Meghívás az albumba",
|
||||||
"sharing_page_album": "Megosztott albumok",
|
"sharing_page_album": "Megosztott albumok",
|
||||||
"sharing_page_description": "Hozzon létre megosztott albumokat, hogy megoszthasson fényképeket és videókat a hálózatában lévő emberekkel.",
|
"sharing_page_description": "Hozzon létre megosztott albumokat, hogy megoszthasson fényképeket és videókat a hálózatában lévő emberekkel.",
|
||||||
"sharing_page_empty_list": "ÜRES LISTA",
|
"sharing_page_empty_list": "ÜRES LISTA",
|
||||||
"sharing_silver_appbar_create_shared_album": "Megosztott album létrehozása",
|
"sharing_silver_appbar_create_shared_album": "Megosztott album létrehozása",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Megosztás másokkal",
|
"sharing_silver_appbar_share_partner": "Megosztás másokkal",
|
||||||
"tab_controller_nav_library": "Könyvtár",
|
"tab_controller_nav_library": "Könyvtár",
|
||||||
"tab_controller_nav_photos": "Képek",
|
"tab_controller_nav_photos": "Képek",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Téma",
|
"theme_setting_theme_title": "Téma",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Mégse",
|
"upload_dialog_cancel": "Mégse",
|
||||||
"upload_dialog_info": "Akarod menteni a kiválasztott eleme(ke)t a szerverre?",
|
"upload_dialog_info": "Akarod menteni a kiválasztott eleme(ke)t a szerverre?",
|
||||||
"upload_dialog_ok": "Feltöltés",
|
"upload_dialog_ok": "Feltöltés",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Szia, egy új verzió érhető el",
|
"version_announcement_overlay_text_1": "Szia, egy új verzió érhető el",
|
||||||
"version_announcement_overlay_text_2": "kérlek szánj időt arra, hogy ",
|
"version_announcement_overlay_text_2": "kérlek szánj időt arra, hogy ",
|
||||||
"version_announcement_overlay_text_3": "és gyöződj meg róla, hogy a docker-compose és .env beállításai naprakészek és pontosak, különösen akkor, ha használsz watchtower-t vagy bármi olyan megoldást ami automatikusan frissíti a szervert.",
|
"version_announcement_overlay_text_3": "és gyöződj meg róla, hogy a docker-compose és .env beállításai naprakészek és pontosak, különösen akkor, ha használsz watchtower-t vagy bármi olyan megoldást ami automatikusan frissíti a szervert.",
|
||||||
"version_announcement_overlay_title": "Új szerververzió érhető el \uD83C\uDF89"
|
"version_announcement_overlay_title": "Új szerververzió érhető el \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Già presente in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Già presente in {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Alcuni dispositivi sono molto lenti a caricare le anteprime delle immagini dal dispositivo. Attivare questa impostazione per caricare invece le immagini remote.",
|
"advanced_settings_prefer_remote_subtitle": "Alcuni dispositivi sono molto lenti a caricare le anteprime delle immagini dal dispositivo. Attivare questa impostazione per caricare invece le immagini remote.",
|
||||||
"advanced_settings_prefer_remote_title": "Preferisci immagini remote.",
|
"advanced_settings_prefer_remote_title": "Preferisci immagini remote.",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Impostazioni aggiuntive utenti",
|
"advanced_settings_tile_subtitle": "Impostazioni aggiuntive utenti",
|
||||||
"advanced_settings_tile_title": "Avanzato",
|
"advanced_settings_tile_title": "Avanzato",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Attiva funzioni addizionali per la risoluzione dei problemi",
|
"advanced_settings_troubleshooting_subtitle": "Attiva funzioni addizionali per la risoluzione dei problemi",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Elimina",
|
"control_bottom_app_bar_delete": "Elimina",
|
||||||
"control_bottom_app_bar_favorite": "Preferiti",
|
"control_bottom_app_bar_favorite": "Preferiti",
|
||||||
"control_bottom_app_bar_share": "Condividi",
|
"control_bottom_app_bar_share": "Condividi",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Rimuovi dagli archivi",
|
"control_bottom_app_bar_unarchive": "Rimuovi dagli archivi",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Senza titolo",
|
"create_album_page_untitled": "Senza titolo",
|
||||||
"create_shared_album_page_create": "Crea",
|
"create_shared_album_page_create": "Crea",
|
||||||
"create_shared_album_page_share": "Condividi",
|
"create_shared_album_page_share": "Condividi",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Annulla",
|
"delete_dialog_cancel": "Annulla",
|
||||||
"delete_dialog_ok": "Elimina",
|
"delete_dialog_ok": "Elimina",
|
||||||
"delete_dialog_title": "Cancella definitivamente",
|
"delete_dialog_title": "Cancella definitivamente",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Aggiungi descrizione...",
|
"description_input_hint_text": "Aggiungi descrizione...",
|
||||||
"description_input_submit_error": "Errore modificare descrizione, controlli I log per maggiori dettagli",
|
"description_input_submit_error": "Errore modificare descrizione, controlli I log per maggiori dettagli",
|
||||||
"exif_bottom_sheet_description": "Aggiungi una descrizione...",
|
"exif_bottom_sheet_description": "Aggiungi una descrizione...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Puoi caricare al massimo 30 file per volta, ignora quelli in eccesso",
|
"home_page_upload_err_limit": "Puoi caricare al massimo 30 file per volta, ignora quelli in eccesso",
|
||||||
"image_viewer_page_state_provider_download_error": "Errore nel Download",
|
"image_viewer_page_state_provider_download_error": "Errore nel Download",
|
||||||
"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": "Share Error",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Nuovo Album",
|
"library_page_new_album": "Nuovo Album",
|
||||||
"library_page_sharing": "Condividendo",
|
"library_page_sharing": "Condividendo",
|
||||||
"library_page_sort_created": "Creato il più recente",
|
"library_page_sort_created": "Creato il più recente",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Titolo album",
|
"library_page_sort_title": "Titolo album",
|
||||||
"login_disabled": "L'accesso è stato disattivato",
|
"login_disabled": "L'accesso è stato disattivato",
|
||||||
"login_form_api_exception": "API error, per favore ricontrolli URL del server e riprovi",
|
"login_form_api_exception": "API error, per favore ricontrolli URL del server e riprovi",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Errore di login usando OAuth, controlla l'URL del server",
|
"login_form_failed_get_oauth_server_config": "Errore di login usando OAuth, controlla l'URL del server",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth non è disponibile su questo server",
|
"login_form_failed_get_oauth_server_disable": "OAuth non è disponibile su questo server",
|
||||||
"login_form_failed_login": "Errore nel login, controlla URL del server e le credenziali (email e password)",
|
"login_form_failed_login": "Errore nel login, controlla URL del server e le credenziali (email e password)",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Password",
|
"login_form_label_password": "Password",
|
||||||
"login_form_next_button": "Prossimo",
|
"login_form_next_button": "Prossimo",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Rimani connesso ",
|
"login_form_save_login": "Rimani connesso ",
|
||||||
"login_form_server_empty": "Inserisci URL del server",
|
"login_form_server_empty": "Inserisci URL del server",
|
||||||
"login_form_server_error": "Non è possibile connettersi al server",
|
"login_form_server_error": "Non è possibile connettersi al server",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Foto",
|
"motion_photos_page_title": "Motion Foto",
|
||||||
"notification_permission_dialog_cancel": "Annulla",
|
"notification_permission_dialog_cancel": "Annulla",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Client e server sono aggiornati",
|
"profile_drawer_client_server_up_to_date": "Client e server sono aggiornati",
|
||||||
"profile_drawer_settings": "Impostazioni ",
|
"profile_drawer_settings": "Impostazioni ",
|
||||||
"profile_drawer_sign_out": "Logout",
|
"profile_drawer_sign_out": "Logout",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Aggiunti di recente",
|
"recently_added_page_title": "Aggiunti di recente",
|
||||||
"search_bar_hint": "Cerca le tue foto",
|
"search_bar_hint": "Cerca le tue foto",
|
||||||
"search_page_categories": "Categoria",
|
"search_page_categories": "Categoria",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Aggiungi un titolo ",
|
"share_add_title": "Aggiungi un titolo ",
|
||||||
"share_create_album": "Crea album",
|
"share_create_album": "Crea album",
|
||||||
"share_dialog_preparing": "Preparo…",
|
"share_dialog_preparing": "Preparo…",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Invita nell'album ",
|
"share_invite": "Invita nell'album ",
|
||||||
"sharing_page_album": "Album condivisi",
|
"sharing_page_album": "Album condivisi",
|
||||||
"sharing_page_description": "Crea un album condiviso per condividere foto e video con persone sul tuo network",
|
"sharing_page_description": "Crea un album condiviso per condividere foto e video con persone sul tuo network",
|
||||||
"sharing_page_empty_list": "LISTA VUOTA",
|
"sharing_page_empty_list": "LISTA VUOTA",
|
||||||
"sharing_silver_appbar_create_shared_album": "Crea album condiviso",
|
"sharing_silver_appbar_create_shared_album": "Crea album condiviso",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Condividi con il partner",
|
"sharing_silver_appbar_share_partner": "Condividi con il partner",
|
||||||
"tab_controller_nav_library": "Libreria",
|
"tab_controller_nav_library": "Libreria",
|
||||||
"tab_controller_nav_photos": "Foto",
|
"tab_controller_nav_photos": "Foto",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Il caricamento a tre stage aumenterà le performance di caricamento ma anche il consumo di banda",
|
"theme_setting_three_stage_loading_subtitle": "Il caricamento a tre stage aumenterà le performance di caricamento ma anche il consumo di banda",
|
||||||
"theme_setting_three_stage_loading_title": "Abilita il caricamento a tre stage",
|
"theme_setting_three_stage_loading_title": "Abilita il caricamento a tre stage",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancella",
|
"upload_dialog_cancel": "Cancella",
|
||||||
"upload_dialog_info": "Vuoi fare il backup sul server di ciò che hai selezionato?",
|
"upload_dialog_info": "Vuoi fare il backup sul server di ciò che hai selezionato?",
|
||||||
"upload_dialog_ok": "Carica",
|
"upload_dialog_ok": "Carica",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Ciao, c'è una nuova versione di",
|
"version_announcement_overlay_text_1": "Ciao, c'è una nuova versione di",
|
||||||
"version_announcement_overlay_text_2": "per favore prenditi il tuo tempo per visitare il",
|
"version_announcement_overlay_text_2": "per favore prenditi il tuo tempo per visitare il",
|
||||||
"version_announcement_overlay_text_3": "e verifica che il tuo docker-compose e il file .env siano aggiornati per impedire qualsiasi errore di configurazione, specialmente se utilizzate WatchTower o altri strumenti per l'aggiornamento automatico dell'applicativo",
|
"version_announcement_overlay_text_3": "e verifica che il tuo docker-compose e il file .env siano aggiornati per impedire qualsiasi errore di configurazione, specialmente se utilizzate WatchTower o altri strumenti per l'aggiornamento automatico dell'applicativo",
|
||||||
"version_announcement_overlay_title": "Nuova versione del server disponibile \uD83C\uDF89"
|
"version_announcement_overlay_title": "Nuova versione del server disponibile \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "{album}に追加済み",
|
"add_to_album_bottom_sheet_already_exists": "{album}に追加済み",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "追加ユーザー設定",
|
"advanced_settings_tile_subtitle": "追加ユーザー設定",
|
||||||
"advanced_settings_tile_title": "詳細設定",
|
"advanced_settings_tile_title": "詳細設定",
|
||||||
"advanced_settings_troubleshooting_subtitle": "トラブルシューティング用の詳細設定をオンにする",
|
"advanced_settings_troubleshooting_subtitle": "トラブルシューティング用の詳細設定をオンにする",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "削除",
|
"control_bottom_app_bar_delete": "削除",
|
||||||
"control_bottom_app_bar_favorite": "お気に入り",
|
"control_bottom_app_bar_favorite": "お気に入り",
|
||||||
"control_bottom_app_bar_share": "共有",
|
"control_bottom_app_bar_share": "共有",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "アーカイブを解除",
|
"control_bottom_app_bar_unarchive": "アーカイブを解除",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "タイトルなし",
|
"create_album_page_untitled": "タイトルなし",
|
||||||
"create_shared_album_page_create": "作成",
|
"create_shared_album_page_create": "作成",
|
||||||
"create_shared_album_page_share": "共有",
|
"create_shared_album_page_share": "共有",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "キャンセル",
|
"delete_dialog_cancel": "キャンセル",
|
||||||
"delete_dialog_ok": "削除",
|
"delete_dialog_ok": "削除",
|
||||||
"delete_dialog_title": "永久的に削除",
|
"delete_dialog_title": "永久的に削除",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "説明を追加",
|
"description_input_hint_text": "説明を追加",
|
||||||
"description_input_submit_error": "説明の編集に失敗、詳細の確認はログで行ってください",
|
"description_input_submit_error": "説明の編集に失敗、詳細の確認はログで行ってください",
|
||||||
"exif_bottom_sheet_description": "説明を追加",
|
"exif_bottom_sheet_description": "説明を追加",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "ダウンロード失敗",
|
"image_viewer_page_state_provider_download_error": "ダウンロード失敗",
|
||||||
"image_viewer_page_state_provider_download_success": "ダウンロード成功",
|
"image_viewer_page_state_provider_download_success": "ダウンロード成功",
|
||||||
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"library_page_albums": "アルバム",
|
"library_page_albums": "アルバム",
|
||||||
"library_page_archive": "アーカイブ",
|
"library_page_archive": "アーカイブ",
|
||||||
"library_page_device_albums": "デバイス上のアルバム",
|
"library_page_device_albums": "デバイス上のアルバム",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "新しいアルバム",
|
"library_page_new_album": "新しいアルバム",
|
||||||
"library_page_sharing": "共有中",
|
"library_page_sharing": "共有中",
|
||||||
"library_page_sort_created": "作成日時",
|
"library_page_sort_created": "作成日時",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "アルバム名",
|
"library_page_sort_title": "アルバム名",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "APIエラー。URLをチェックしてもう一度試してください",
|
"login_form_api_exception": "APIエラー。URLをチェックしてもう一度試してください",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "OAuthログインに失敗しました。サーバーのURLを確認してください。",
|
"login_form_failed_get_oauth_server_config": "OAuthログインに失敗しました。サーバーのURLを確認してください。",
|
||||||
"login_form_failed_get_oauth_server_disable": "このサーバーではOAuthが使えません",
|
"login_form_failed_get_oauth_server_disable": "このサーバーではOAuthが使えません",
|
||||||
"login_form_failed_login": "ログインエラー。サーバーのURL・メールアドレス・パスワードを再確認してください。",
|
"login_form_failed_login": "ログインエラー。サーバーのURL・メールアドレス・パスワードを再確認してください。",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "メールアドレス",
|
"login_form_label_email": "メールアドレス",
|
||||||
"login_form_label_password": "パスワード",
|
"login_form_label_password": "パスワード",
|
||||||
"login_form_next_button": "次",
|
"login_form_next_button": "次",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "ログインを保持",
|
"login_form_save_login": "ログインを保持",
|
||||||
"login_form_server_empty": "URLを入力",
|
"login_form_server_empty": "URLを入力",
|
||||||
"login_form_server_error": "サーバーに接続できません",
|
"login_form_server_error": "サーバーに接続できません",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "yyyy年 MM月",
|
"monthly_title_text_date_format": "yyyy年 MM月",
|
||||||
"motion_photos_page_title": "モーションフォト",
|
"motion_photos_page_title": "モーションフォト",
|
||||||
"notification_permission_dialog_cancel": "キャンセル",
|
"notification_permission_dialog_cancel": "キャンセル",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "すべて最新です",
|
"profile_drawer_client_server_up_to_date": "すべて最新です",
|
||||||
"profile_drawer_settings": "設定",
|
"profile_drawer_settings": "設定",
|
||||||
"profile_drawer_sign_out": "サインアウト",
|
"profile_drawer_sign_out": "サインアウト",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "最近",
|
"recently_added_page_title": "最近",
|
||||||
"search_bar_hint": "写真を検索",
|
"search_bar_hint": "写真を検索",
|
||||||
"search_page_categories": "カテゴリ",
|
"search_page_categories": "カテゴリ",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "タイトルを追加",
|
"share_add_title": "タイトルを追加",
|
||||||
"share_create_album": "アルバムを作成",
|
"share_create_album": "アルバムを作成",
|
||||||
"share_dialog_preparing": "準備中",
|
"share_dialog_preparing": "準備中",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "アルバムに招待",
|
"share_invite": "アルバムに招待",
|
||||||
"sharing_page_album": "共有アルバム",
|
"sharing_page_album": "共有アルバム",
|
||||||
"sharing_page_description": "共有アルバムを作成して同じネットワークにいる人たちに写真を共有",
|
"sharing_page_description": "共有アルバムを作成して同じネットワークにいる人たちに写真を共有",
|
||||||
"sharing_page_empty_list": "共有アルバムなし",
|
"sharing_page_empty_list": "共有アルバムなし",
|
||||||
"sharing_silver_appbar_create_shared_album": "共有アルバムを作成",
|
"sharing_silver_appbar_create_shared_album": "共有アルバムを作成",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "パートナーと共有",
|
"sharing_silver_appbar_share_partner": "パートナーと共有",
|
||||||
"tab_controller_nav_library": "ライブラリ",
|
"tab_controller_nav_library": "ライブラリ",
|
||||||
"tab_controller_nav_photos": "写真",
|
"tab_controller_nav_photos": "写真",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "テーマ",
|
"theme_setting_theme_title": "テーマ",
|
||||||
"theme_setting_three_stage_loading_subtitle": "三段階読み込みを有効にするとパフォーマンスが改善する可能性がありますが、ネットワーク負荷が著しく増加します",
|
"theme_setting_three_stage_loading_subtitle": "三段階読み込みを有効にするとパフォーマンスが改善する可能性がありますが、ネットワーク負荷が著しく増加します",
|
||||||
"theme_setting_three_stage_loading_title": "三段階読み込みをオンにする",
|
"theme_setting_three_stage_loading_title": "三段階読み込みをオンにする",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "こんにちは、またはこんばんは!新しい",
|
"version_announcement_overlay_text_1": "こんにちは、またはこんばんは!新しい",
|
||||||
"version_announcement_overlay_text_2": "のバージョンが公開中です。",
|
"version_announcement_overlay_text_2": "のバージョンが公開中です。",
|
||||||
"version_announcement_overlay_text_3": "を確認してみてください。docker-composeや.envファイルが最新の状態に更新されているか、特にWatchTowerなどのツールを使ってDockerイメージを自動アップデートしてる人は確認してください。",
|
"version_announcement_overlay_text_3": "を確認してみてください。docker-composeや.envファイルが最新の状態に更新されているか、特にWatchTowerなどのツールを使ってDockerイメージを自動アップデートしてる人は確認してください。",
|
||||||
"version_announcement_overlay_title": "サーバーの新バージョンリリース\uD83C\uDF89"
|
"version_announcement_overlay_title": "サーバーの新バージョンリリース\uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "{album}에 이미 포함되어 있습니다",
|
"add_to_album_bottom_sheet_already_exists": "{album}에 이미 포함되어 있습니다",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Advanced",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "삭제",
|
"control_bottom_app_bar_delete": "삭제",
|
||||||
"control_bottom_app_bar_favorite": "즐겨찾기",
|
"control_bottom_app_bar_favorite": "즐겨찾기",
|
||||||
"control_bottom_app_bar_share": "공유",
|
"control_bottom_app_bar_share": "공유",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Unarchive",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "제목없음",
|
"create_album_page_untitled": "제목없음",
|
||||||
"create_shared_album_page_create": "만들기",
|
"create_shared_album_page_create": "만들기",
|
||||||
"create_shared_album_page_share": "공유",
|
"create_shared_album_page_share": "공유",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "취소",
|
"delete_dialog_cancel": "취소",
|
||||||
"delete_dialog_ok": "삭제",
|
"delete_dialog_ok": "삭제",
|
||||||
"delete_dialog_title": "영구적으로 삭제",
|
"delete_dialog_title": "영구적으로 삭제",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Add description...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "설명 추가...",
|
"exif_bottom_sheet_description": "설명 추가...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "다운로드 에러",
|
"image_viewer_page_state_provider_download_error": "다운로드 에러",
|
||||||
"image_viewer_page_state_provider_download_success": "다운로드 완료",
|
"image_viewer_page_state_provider_download_success": "다운로드 완료",
|
||||||
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"library_page_albums": "앨범",
|
"library_page_albums": "앨범",
|
||||||
"library_page_archive": "Archive",
|
"library_page_archive": "Archive",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "새 앨범",
|
"library_page_new_album": "새 앨범",
|
||||||
"library_page_sharing": "공유",
|
"library_page_sharing": "공유",
|
||||||
"library_page_sort_created": "최근생성일",
|
"library_page_sort_created": "최근생성일",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "앨범 제목",
|
"library_page_sort_title": "앨범 제목",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "OAuth 로그인 오류, 서버 URL을 확인해주세요",
|
"login_form_failed_get_oauth_server_config": "OAuth 로그인 오류, 서버 URL을 확인해주세요",
|
||||||
"login_form_failed_get_oauth_server_disable": "이 서버에서는 OAuth 기능을 사용할 수 없습니다.",
|
"login_form_failed_get_oauth_server_disable": "이 서버에서는 OAuth 기능을 사용할 수 없습니다.",
|
||||||
"login_form_failed_login": "로그인 오류, 서버 URL, 이메일 및 비밀번호를 확인하세요",
|
"login_form_failed_login": "로그인 오류, 서버 URL, 이메일 및 비밀번호를 확인하세요",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "이메일",
|
"login_form_label_email": "이메일",
|
||||||
"login_form_label_password": "비밀번호",
|
"login_form_label_password": "비밀번호",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Next",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "로그인상태 유지",
|
"login_form_save_login": "로그인상태 유지",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "y년 M월",
|
"monthly_title_text_date_format": "y년 M월",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"notification_permission_dialog_cancel": "취소",
|
"notification_permission_dialog_cancel": "취소",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "클라이언트와 서버가 최신 상태입니다",
|
"profile_drawer_client_server_up_to_date": "클라이언트와 서버가 최신 상태입니다",
|
||||||
"profile_drawer_settings": "설정",
|
"profile_drawer_settings": "설정",
|
||||||
"profile_drawer_sign_out": "로그아웃",
|
"profile_drawer_sign_out": "로그아웃",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recently Added",
|
||||||
"search_bar_hint": "사진 검색",
|
"search_bar_hint": "사진 검색",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "새 앨범제목",
|
"share_add_title": "새 앨범제목",
|
||||||
"share_create_album": "앨범 만들기",
|
"share_create_album": "앨범 만들기",
|
||||||
"share_dialog_preparing": "준비중...",
|
"share_dialog_preparing": "준비중...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "앨범에 초대",
|
"share_invite": "앨범에 초대",
|
||||||
"sharing_page_album": "공유앨범",
|
"sharing_page_album": "공유앨범",
|
||||||
"sharing_page_description": "공유앨범을 만들어 다른 사용자들과 사진 및 비디오를 공유합니다.",
|
"sharing_page_description": "공유앨범을 만들어 다른 사용자들과 사진 및 비디오를 공유합니다.",
|
||||||
"sharing_page_empty_list": "공유앨범 없음",
|
"sharing_page_empty_list": "공유앨범 없음",
|
||||||
"sharing_silver_appbar_create_shared_album": "공유앨범 만들기",
|
"sharing_silver_appbar_create_shared_album": "공유앨범 만들기",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "파트너와 공유",
|
"sharing_silver_appbar_share_partner": "파트너와 공유",
|
||||||
"tab_controller_nav_library": "라이브러리",
|
"tab_controller_nav_library": "라이브러리",
|
||||||
"tab_controller_nav_photos": "사진",
|
"tab_controller_nav_photos": "사진",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "테마",
|
"theme_setting_theme_title": "테마",
|
||||||
"theme_setting_three_stage_loading_subtitle": "이 기능은 로딩 성능을 향상시킬 수 있지만 훨씬 더 많은 데이터를 사용합니다.",
|
"theme_setting_three_stage_loading_subtitle": "이 기능은 로딩 성능을 향상시킬 수 있지만 훨씬 더 많은 데이터를 사용합니다.",
|
||||||
"theme_setting_three_stage_loading_title": "3단계 로딩 활성화",
|
"theme_setting_three_stage_loading_title": "3단계 로딩 활성화",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "안녕하세요!",
|
"version_announcement_overlay_text_1": "안녕하세요!",
|
||||||
"version_announcement_overlay_text_2": "앱에 새로운 업데이트가 있습니다!",
|
"version_announcement_overlay_text_2": "앱에 새로운 업데이트가 있습니다!",
|
||||||
"version_announcement_overlay_text_3": "특히 WatchTower 또는 서버 응용 프로그램 자동 업데이트를 처리하는 메커니즘을 사용하는 경우 잘못된 구성을 방지하기 위해 docker-compose 및 .env 설정이 최신 상태인지 확인하세요.",
|
"version_announcement_overlay_text_3": "특히 WatchTower 또는 서버 응용 프로그램 자동 업데이트를 처리하는 메커니즘을 사용하는 경우 잘못된 구성을 방지하기 위해 docker-compose 및 .env 설정이 최신 상태인지 확인하세요.",
|
||||||
"version_announcement_overlay_title": "새 서버 버전 사용 가능 \uD83C\uDF89"
|
"version_announcement_overlay_title": "새 서버 버전 사용 가능 \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Jau pievienots {album}",
|
"add_to_album_bottom_sheet_already_exists": "Jau pievienots {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Dažās ierīcēs sīktēli no ierīcē esošajiem resursiem tiek ielādēti ļoti lēni. Aktivizējiet šo iestatījumu, lai tā vietā ielādētu attālus attēlus.",
|
"advanced_settings_prefer_remote_subtitle": "Dažās ierīcēs sīktēli no ierīcē esošajiem resursiem tiek ielādēti ļoti lēni. Aktivizējiet šo iestatījumu, lai tā vietā ielādētu attālus attēlus.",
|
||||||
"advanced_settings_prefer_remote_title": "Dot priekšroku attāliem attēliem",
|
"advanced_settings_prefer_remote_title": "Dot priekšroku attāliem attēliem",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Lietotāja papildu iestatījumi",
|
"advanced_settings_tile_subtitle": "Lietotāja papildu iestatījumi",
|
||||||
"advanced_settings_tile_title": "Papildu",
|
"advanced_settings_tile_title": "Papildu",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Iespējot papildu aktīvus problēmu novēršanai",
|
"advanced_settings_troubleshooting_subtitle": "Iespējot papildu aktīvus problēmu novēršanai",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Dzēst",
|
"control_bottom_app_bar_delete": "Dzēst",
|
||||||
"control_bottom_app_bar_favorite": "Izlase",
|
"control_bottom_app_bar_favorite": "Izlase",
|
||||||
"control_bottom_app_bar_share": "Kopīgot",
|
"control_bottom_app_bar_share": "Kopīgot",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Atarhivēt",
|
"control_bottom_app_bar_unarchive": "Atarhivēt",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Bez nosaukuma",
|
"create_album_page_untitled": "Bez nosaukuma",
|
||||||
"create_shared_album_page_create": "Izveidot",
|
"create_shared_album_page_create": "Izveidot",
|
||||||
"create_shared_album_page_share": "Kopīgot",
|
"create_shared_album_page_share": "Kopīgot",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Atcelt",
|
"delete_dialog_cancel": "Atcelt",
|
||||||
"delete_dialog_ok": "Dzēst",
|
"delete_dialog_ok": "Dzēst",
|
||||||
"delete_dialog_title": "Neatgriezeniski Dzēst",
|
"delete_dialog_title": "Neatgriezeniski Dzēst",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Pievienot aprakstu...",
|
"description_input_hint_text": "Pievienot aprakstu...",
|
||||||
"description_input_submit_error": "Atjauninot aprakstu, radās kļūda; papildinformāciju skatiet žurnālā",
|
"description_input_submit_error": "Atjauninot aprakstu, radās kļūda; papildinformāciju skatiet žurnālā",
|
||||||
"exif_bottom_sheet_description": "Pievienot Aprakstu...",
|
"exif_bottom_sheet_description": "Pievienot Aprakstu...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Lejupielādes Kļūda",
|
"image_viewer_page_state_provider_download_error": "Lejupielādes Kļūda",
|
||||||
"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": "Share Error",
|
||||||
"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ē",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Jauns albums",
|
"library_page_new_album": "Jauns albums",
|
||||||
"library_page_sharing": "Kopīgošana",
|
"library_page_sharing": "Kopīgošana",
|
||||||
"library_page_sort_created": "Jaunākais izveidotais",
|
"library_page_sort_created": "Jaunākais izveidotais",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Albuma virsraksts",
|
"library_page_sort_title": "Albuma virsraksts",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API izņēmums. Lūdzu, pārbaudiet servera URL un mēģiniet vēlreiz.",
|
"login_form_api_exception": "API izņēmums. Lūdzu, pārbaudiet servera URL un mēģiniet vēlreiz.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Pieslēdzoties, izmantojot OAuth, radās kļūda; pārbaudiet servera URL",
|
"login_form_failed_get_oauth_server_config": "Pieslēdzoties, izmantojot OAuth, radās kļūda; pārbaudiet servera URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth līdzeklis šajā serverī nav pieejams",
|
"login_form_failed_get_oauth_server_disable": "OAuth līdzeklis šajā serverī nav pieejams",
|
||||||
"login_form_failed_login": "Radās kļūda, piesakoties, pārbaudiet servera URL, e-pastu un paroli",
|
"login_form_failed_login": "Radās kļūda, piesakoties, pārbaudiet servera URL, e-pastu un paroli",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "E-pasts",
|
"login_form_label_email": "E-pasts",
|
||||||
"login_form_label_password": "Parole",
|
"login_form_label_password": "Parole",
|
||||||
"login_form_next_button": "Nākošais",
|
"login_form_next_button": "Nākošais",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Palikt pieteiktam",
|
"login_form_save_login": "Palikt pieteiktam",
|
||||||
"login_form_server_empty": "Ieraksties servera URL.",
|
"login_form_server_empty": "Ieraksties servera URL.",
|
||||||
"login_form_server_error": "Nevarēja izveidot savienojumu ar serveri.",
|
"login_form_server_error": "Nevarēja izveidot savienojumu ar serveri.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM g",
|
"monthly_title_text_date_format": "MMMM g",
|
||||||
"motion_photos_page_title": "Kustību Fotoattēli",
|
"motion_photos_page_title": "Kustību Fotoattēli",
|
||||||
"notification_permission_dialog_cancel": "Atcelt",
|
"notification_permission_dialog_cancel": "Atcelt",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Klients un serveris ir atjaunināti",
|
"profile_drawer_client_server_up_to_date": "Klients un serveris ir atjaunināti",
|
||||||
"profile_drawer_settings": "Iestatījumi",
|
"profile_drawer_settings": "Iestatījumi",
|
||||||
"profile_drawer_sign_out": "Izrakstīties",
|
"profile_drawer_sign_out": "Izrakstīties",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Nesen Pievienotais",
|
"recently_added_page_title": "Nesen Pievienotais",
|
||||||
"search_bar_hint": "Meklēt Jūsu fotoattēlus",
|
"search_bar_hint": "Meklēt Jūsu fotoattēlus",
|
||||||
"search_page_categories": "Kategorijas",
|
"search_page_categories": "Kategorijas",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Pievienot virsrakstu",
|
"share_add_title": "Pievienot virsrakstu",
|
||||||
"share_create_album": "Izveidot albumu",
|
"share_create_album": "Izveidot albumu",
|
||||||
"share_dialog_preparing": "Notiek sagatavošana...",
|
"share_dialog_preparing": "Notiek sagatavošana...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Uzaicināt albumā",
|
"share_invite": "Uzaicināt albumā",
|
||||||
"sharing_page_album": "Kopīgotie albumi",
|
"sharing_page_album": "Kopīgotie albumi",
|
||||||
"sharing_page_description": "Izveidojiet koplietojamus albumus, lai kopīgotu fotoattēlus un videoklipus ar Jūsu tīkla lietotājiem.",
|
"sharing_page_description": "Izveidojiet koplietojamus albumus, lai kopīgotu fotoattēlus un videoklipus ar Jūsu tīkla lietotājiem.",
|
||||||
"sharing_page_empty_list": "TUKŠS SARAKSTS",
|
"sharing_page_empty_list": "TUKŠS SARAKSTS",
|
||||||
"sharing_silver_appbar_create_shared_album": "Izveidot kopīgotu albumu",
|
"sharing_silver_appbar_create_shared_album": "Izveidot kopīgotu albumu",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Dalīties ar partneri",
|
"sharing_silver_appbar_share_partner": "Dalīties ar partneri",
|
||||||
"tab_controller_nav_library": "Bibliotēka",
|
"tab_controller_nav_library": "Bibliotēka",
|
||||||
"tab_controller_nav_photos": "Fotoattēli",
|
"tab_controller_nav_photos": "Fotoattēli",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Dizains",
|
"theme_setting_theme_title": "Dizains",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Trīspakāpju ielāde var palielināt ielādēšanas veiktspēju, bet izraisa ievērojami lielāku tīkla noslodzi",
|
"theme_setting_three_stage_loading_subtitle": "Trīspakāpju ielāde var palielināt ielādēšanas veiktspēju, bet izraisa ievērojami lielāku tīkla noslodzi",
|
||||||
"theme_setting_three_stage_loading_title": "Iespējot trīspakāpju ielādi",
|
"theme_setting_three_stage_loading_title": "Iespējot trīspakāpju ielādi",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Sveiks draugs, ir jauns izlaidums no",
|
"version_announcement_overlay_text_1": "Sveiks draugs, ir jauns izlaidums no",
|
||||||
"version_announcement_overlay_text_2": "lūdzu, veltiet laiku, lai apmeklētu",
|
"version_announcement_overlay_text_2": "lūdzu, veltiet laiku, lai apmeklētu",
|
||||||
"version_announcement_overlay_text_3": " un pārliecinieties, vai docker-compose un .env iestatījumi ir atjaunināti, lai novērstu jebkādas nepareizas konfigurācijas, īpaši, ja izmantojat WatchTower vai mehānismu, kas automātiski veic servera lietojumprogrammas atjaunināšanu.",
|
"version_announcement_overlay_text_3": " un pārliecinieties, vai docker-compose un .env iestatījumi ir atjaunināti, lai novērstu jebkādas nepareizas konfigurācijas, īpaši, ja izmantojat WatchTower vai mehānismu, kas automātiski veic servera lietojumprogrammas atjaunināšanu.",
|
||||||
"version_announcement_overlay_title": "Pieejama jauna servera versija \uD83C\uDF89"
|
"version_announcement_overlay_title": "Pieejama jauna servera versija \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Advanced",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Unarchive",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Untitled",
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_shared_album_page_create": "Create",
|
"create_shared_album_page_create": "Create",
|
||||||
"create_shared_album_page_share": "Share",
|
"create_shared_album_page_share": "Share",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Cancel",
|
"delete_dialog_cancel": "Cancel",
|
||||||
"delete_dialog_ok": "Delete",
|
"delete_dialog_ok": "Delete",
|
||||||
"delete_dialog_title": "Delete Permanently",
|
"delete_dialog_title": "Delete Permanently",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Add description...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "Add Description...",
|
"exif_bottom_sheet_description": "Add Description...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"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",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "New album",
|
"library_page_new_album": "New album",
|
||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Password",
|
"login_form_label_password": "Password",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Next",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Stay logged in",
|
"login_form_save_login": "Stay logged in",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"notification_permission_dialog_cancel": "Цуцлах",
|
"notification_permission_dialog_cancel": "Цуцлах",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Settings",
|
||||||
"profile_drawer_sign_out": "Sign Out",
|
"profile_drawer_sign_out": "Sign Out",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recently Added",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Add a title",
|
"share_add_title": "Add a title",
|
||||||
"share_create_album": "Create album",
|
"share_create_album": "Create album",
|
||||||
"share_dialog_preparing": "Preparing...",
|
"share_dialog_preparing": "Preparing...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Invite to album",
|
"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": "Create shared album",
|
"sharing_silver_appbar_create_shared_album": "Create shared album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Share with partner",
|
"sharing_silver_appbar_share_partner": "Share with partner",
|
||||||
"tab_controller_nav_library": "Library",
|
"tab_controller_nav_library": "Library",
|
||||||
"tab_controller_nav_photos": "Photos",
|
"tab_controller_nav_photos": "Photos",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89"
|
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Noen enheter er veldige trege til å hente mikrobilder fra enheten. Aktiver denne innstillingen for å hente de eksternt istedenfor.",
|
"advanced_settings_prefer_remote_subtitle": "Noen enheter er veldige trege til å hente mikrobilder fra enheten. Aktiver denne innstillingen for å hente de eksternt istedenfor.",
|
||||||
"advanced_settings_prefer_remote_title": "Foretrekk eksterne bilder",
|
"advanced_settings_prefer_remote_title": "Foretrekk eksterne bilder",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Hopper over SSL sertifikatverifikasjon for server-endepunkt. Påkrevet for selvsignerte sertifikater.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Tillat selvsignerte SSL sertifikater",
|
||||||
"advanced_settings_tile_subtitle": "Avanserte brukerinnstillinger",
|
"advanced_settings_tile_subtitle": "Avanserte brukerinnstillinger",
|
||||||
"advanced_settings_tile_title": "Avansert",
|
"advanced_settings_tile_title": "Avansert",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Aktiver ekstra funksjoner for feilsøking",
|
"advanced_settings_troubleshooting_subtitle": "Aktiver ekstra funksjoner for feilsøking",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Slett",
|
"control_bottom_app_bar_delete": "Slett",
|
||||||
"control_bottom_app_bar_favorite": "Favoritt",
|
"control_bottom_app_bar_favorite": "Favoritt",
|
||||||
"control_bottom_app_bar_share": "Del",
|
"control_bottom_app_bar_share": "Del",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Fjern fra arkiv",
|
"control_bottom_app_bar_unarchive": "Fjern fra arkiv",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Uten navn",
|
"create_album_page_untitled": "Uten navn",
|
||||||
"create_shared_album_page_create": "Opprett",
|
"create_shared_album_page_create": "Opprett",
|
||||||
"create_shared_album_page_share": "Del",
|
"create_shared_album_page_share": "Del",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Avbryt",
|
"delete_dialog_cancel": "Avbryt",
|
||||||
"delete_dialog_ok": "Slett",
|
"delete_dialog_ok": "Slett",
|
||||||
"delete_dialog_title": "Slett permanent",
|
"delete_dialog_title": "Slett permanent",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Legg til beskrivelse ...",
|
"description_input_hint_text": "Legg til beskrivelse ...",
|
||||||
"description_input_submit_error": "Feil ved oppdatering av beskrivelse, sjekk loggen for flere detaljer",
|
"description_input_submit_error": "Feil ved oppdatering av beskrivelse, sjekk loggen for flere detaljer",
|
||||||
"exif_bottom_sheet_description": "Legg til beskrivelse ...",
|
"exif_bottom_sheet_description": "Legg til beskrivelse ...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Maksimalt 30 objekter kan lastes opp om gangen, hopper over",
|
"home_page_upload_err_limit": "Maksimalt 30 objekter kan lastes opp om gangen, hopper over",
|
||||||
"image_viewer_page_state_provider_download_error": "Nedlasting feilet",
|
"image_viewer_page_state_provider_download_error": "Nedlasting feilet",
|
||||||
"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": "Share Error",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Nytt album",
|
"library_page_new_album": "Nytt album",
|
||||||
"library_page_sharing": "Deling",
|
"library_page_sharing": "Deling",
|
||||||
"library_page_sort_created": "Nylig opplastet",
|
"library_page_sort_created": "Nylig opplastet",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Albumtittel",
|
"library_page_sort_title": "Albumtittel",
|
||||||
"login_disabled": "Innlogging har blitt deaktivert",
|
"login_disabled": "Innlogging har blitt deaktivert",
|
||||||
"login_form_api_exception": "API-feil. Sjekk URL-en til serveren og prøv igjen.",
|
"login_form_api_exception": "API-feil. Sjekk URL-en til serveren og prøv igjen.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Feil innlogging ved bruk av OAuth, sjekk serverens URL",
|
"login_form_failed_get_oauth_server_config": "Feil innlogging ved bruk av OAuth, sjekk serverens URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth-innlogging er ikke tilgjengelig på denne serveren",
|
"login_form_failed_get_oauth_server_disable": "OAuth-innlogging er ikke tilgjengelig på denne serveren",
|
||||||
"login_form_failed_login": "Feil ved innlogging, sjekk serverens URL, e-post og passord",
|
"login_form_failed_login": "Feil ved innlogging, sjekk serverens URL, e-post og passord",
|
||||||
|
"login_form_handshake_exception": "Det var et unntak for handshake med serveren. Aktiver støtte for selvsignerte sertifikater i innstillingene hvis du bruker et selvsignert sertifikat.",
|
||||||
"login_form_label_email": "E-postadresse",
|
"login_form_label_email": "E-postadresse",
|
||||||
"login_form_label_password": "Passord",
|
"login_form_label_password": "Passord",
|
||||||
"login_form_next_button": "Neste",
|
"login_form_next_button": "Neste",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Forbli innlogget",
|
"login_form_save_login": "Forbli innlogget",
|
||||||
"login_form_server_empty": "Skriv inn en server-URL.",
|
"login_form_server_empty": "Skriv inn en server-URL.",
|
||||||
"login_form_server_error": "Kan ikke koble til server.",
|
"login_form_server_error": "Kan ikke koble til server.",
|
||||||
|
"login_password_changed_error": "Det skjedde en feil ved oppdatering av passordet",
|
||||||
|
"login_password_changed_success": "Passord oppdatert",
|
||||||
|
"map_cannot_get_user_location": "Kan ikke hente brukerlokasjon",
|
||||||
|
"map_location_dialog_cancel": "Avbryt",
|
||||||
|
"map_location_dialog_yes": "Ja",
|
||||||
|
"map_location_service_disabled_content": "Lokasjonstjeneste må være aktivert for å vise objekter fra din nåværende lokasjon. Vil du aktivere det nå?",
|
||||||
|
"map_location_service_disabled_title": "Lokasjonstjeneste deaktivert",
|
||||||
|
"map_no_assets_in_bounds": "Ingen bilder i dette området",
|
||||||
|
"map_no_location_permission_content": "Lokasjonstilgang er påkrevet for å vise objekter fra din nåværende lokasjon. Vil du tillate det nå?",
|
||||||
|
"map_no_location_permission_title": "Lokasjonstilgang avvist",
|
||||||
|
"map_settings_dark_mode": "Mørk modus",
|
||||||
|
"map_settings_dialog_cancel": "Avbryt",
|
||||||
|
"map_settings_dialog_save": "Lagre",
|
||||||
|
"map_settings_dialog_title": "Kartinnstillinger",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Datoområde",
|
||||||
|
"map_settings_only_show_favorites": "Vis kun favoritter",
|
||||||
|
"map_zoom_to_see_photos": "Zoom ut for å se bilder",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Bevegelige bilder",
|
"motion_photos_page_title": "Bevegelige bilder",
|
||||||
"notification_permission_dialog_cancel": "Avbryt",
|
"notification_permission_dialog_cancel": "Avbryt",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Klient og server er oppdatert",
|
"profile_drawer_client_server_up_to_date": "Klient og server er oppdatert",
|
||||||
"profile_drawer_settings": "Innstillinger",
|
"profile_drawer_settings": "Innstillinger",
|
||||||
"profile_drawer_sign_out": "Logg ut",
|
"profile_drawer_sign_out": "Logg ut",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Nylig lagt til",
|
"recently_added_page_title": "Nylig lagt til",
|
||||||
"search_bar_hint": "Søk i dine bilder",
|
"search_bar_hint": "Søk i dine bilder",
|
||||||
"search_page_categories": "Kategorier",
|
"search_page_categories": "Kategorier",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Legg til tittel",
|
"share_add_title": "Legg til tittel",
|
||||||
"share_create_album": "Opprett album",
|
"share_create_album": "Opprett album",
|
||||||
"share_dialog_preparing": "Forbereder ...",
|
"share_dialog_preparing": "Forbereder ...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Inviter til album",
|
"share_invite": "Inviter til album",
|
||||||
"sharing_page_album": "Delte album",
|
"sharing_page_album": "Delte album",
|
||||||
"sharing_page_description": "Lag delte albumer for å dele bilder og videoer med folk i nettverket ditt.",
|
"sharing_page_description": "Lag delte albumer for å dele bilder og videoer med folk i nettverket ditt.",
|
||||||
"sharing_page_empty_list": "TOM LISTE",
|
"sharing_page_empty_list": "TOM LISTE",
|
||||||
"sharing_silver_appbar_create_shared_album": "Lag delt album",
|
"sharing_silver_appbar_create_shared_album": "Lag delt album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Del med partner",
|
"sharing_silver_appbar_share_partner": "Del med partner",
|
||||||
"tab_controller_nav_library": "Bibliotek",
|
"tab_controller_nav_library": "Bibliotek",
|
||||||
"tab_controller_nav_photos": "Bilder",
|
"tab_controller_nav_photos": "Bilder",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Tre-trinns innlasting kan øke lasteytelsen, men forårsaker betydelig høyere nettverksbelastning",
|
"theme_setting_three_stage_loading_subtitle": "Tre-trinns innlasting kan øke lasteytelsen, men forårsaker betydelig høyere nettverksbelastning",
|
||||||
"theme_setting_three_stage_loading_title": "Aktiver tre-trinns innlasting",
|
"theme_setting_three_stage_loading_title": "Aktiver tre-trinns innlasting",
|
||||||
|
"translated_text_options": "Valg",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Avbryt",
|
"upload_dialog_cancel": "Avbryt",
|
||||||
"upload_dialog_info": "Vil du utføre backup av valgte objekt(er) til serveren?",
|
"upload_dialog_info": "Vil du utføre backup av valgte objekt(er) til serveren?",
|
||||||
"upload_dialog_ok": "Last opp",
|
"upload_dialog_ok": "Last opp",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hei, det er en ny versjon av",
|
"version_announcement_overlay_text_1": "Hei, det er en ny versjon av",
|
||||||
"version_announcement_overlay_text_2": "vennligst ta deg tid til å besøke ",
|
"version_announcement_overlay_text_2": "vennligst ta deg tid til å besøke ",
|
||||||
"version_announcement_overlay_text_3": " og verifiser at docker-compose og .env-oppsettet ditt er oppdatert for å forhindre en eventuell feilkonfigurasjon, spesielt hvis du benytter WatchTower eller en annen tjeneste som håndterer oppdatering av server-applikasjonen automatisk.",
|
"version_announcement_overlay_text_3": " og verifiser at docker-compose og .env-oppsettet ditt er oppdatert for å forhindre en eventuell feilkonfigurasjon, spesielt hvis du benytter WatchTower eller en annen tjeneste som håndterer oppdatering av server-applikasjonen automatisk.",
|
||||||
"version_announcement_overlay_title": "Ny serverversjon tilgjengelig"
|
"version_announcement_overlay_title": "Ny serverversjon tilgjengelig",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Staat al in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Staat al in {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Sommige apparaten zijn traag met het laden van afbeeldingen die zijn opgeslagen op het apparaat. Activeer deze instelling om in plaats daarvan externe afbeeldingen te laden.",
|
"advanced_settings_prefer_remote_subtitle": "Sommige apparaten zijn traag met het laden van afbeeldingen die zijn opgeslagen op het apparaat. Activeer deze instelling om in plaats daarvan externe afbeeldingen te laden.",
|
||||||
"advanced_settings_prefer_remote_title": "Externe afbeeldingen laden",
|
"advanced_settings_prefer_remote_title": "Externe afbeeldingen laden",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Geavanceerde gebruikersinstellingen",
|
"advanced_settings_tile_subtitle": "Geavanceerde gebruikersinstellingen",
|
||||||
"advanced_settings_tile_title": "Geavanceerd",
|
"advanced_settings_tile_title": "Geavanceerd",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Schakel extra functies voor probleemoplossing in ",
|
"advanced_settings_troubleshooting_subtitle": "Schakel extra functies voor probleemoplossing in ",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Verwijderen",
|
"control_bottom_app_bar_delete": "Verwijderen",
|
||||||
"control_bottom_app_bar_favorite": "Favoriet",
|
"control_bottom_app_bar_favorite": "Favoriet",
|
||||||
"control_bottom_app_bar_share": "Delen",
|
"control_bottom_app_bar_share": "Delen",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Herstellen",
|
"control_bottom_app_bar_unarchive": "Herstellen",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Naamloos",
|
"create_album_page_untitled": "Naamloos",
|
||||||
"create_shared_album_page_create": "Aanmaken",
|
"create_shared_album_page_create": "Aanmaken",
|
||||||
"create_shared_album_page_share": "Delen",
|
"create_shared_album_page_share": "Delen",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Annuleren",
|
"delete_dialog_cancel": "Annuleren",
|
||||||
"delete_dialog_ok": "Verwijderen",
|
"delete_dialog_ok": "Verwijderen",
|
||||||
"delete_dialog_title": "Permanent verwijderen",
|
"delete_dialog_title": "Permanent verwijderen",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Beschrijving toevoegen...",
|
"description_input_hint_text": "Beschrijving toevoegen...",
|
||||||
"description_input_submit_error": "Beschrijving bijwerken mislukt, controleer het logboek voor meer details",
|
"description_input_submit_error": "Beschrijving bijwerken mislukt, controleer het logboek voor meer details",
|
||||||
"exif_bottom_sheet_description": "Beschrijving toevoegen...",
|
"exif_bottom_sheet_description": "Beschrijving toevoegen...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Kan maximaal 30 assets tegelijk uploaden, overslaan",
|
"home_page_upload_err_limit": "Kan maximaal 30 assets tegelijk uploaden, overslaan",
|
||||||
"image_viewer_page_state_provider_download_error": "Download mislukt",
|
"image_viewer_page_state_provider_download_error": "Download mislukt",
|
||||||
"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": "Share Error",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Nieuw album",
|
"library_page_new_album": "Nieuw album",
|
||||||
"library_page_sharing": "Gedeeld",
|
"library_page_sharing": "Gedeeld",
|
||||||
"library_page_sort_created": "Meest recent gemaakt",
|
"library_page_sort_created": "Meest recent gemaakt",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Albumtitel",
|
"library_page_sort_title": "Albumtitel",
|
||||||
"login_disabled": "Aanmelding uitgeschakeld",
|
"login_disabled": "Aanmelding uitgeschakeld",
|
||||||
"login_form_api_exception": "API fout. Controleer de server URL en probeer opnieuw.",
|
"login_form_api_exception": "API fout. Controleer de server URL en probeer opnieuw.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Fout bij inloggen met OAuth, controleer server-URL",
|
"login_form_failed_get_oauth_server_config": "Fout bij inloggen met OAuth, controleer server-URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth-functie is niet beschikbaar op deze server",
|
"login_form_failed_get_oauth_server_disable": "OAuth-functie is niet beschikbaar op deze server",
|
||||||
"login_form_failed_login": "Fout bij inloggen; controleer server-URL, e-mailadres en wachtwoord",
|
"login_form_failed_login": "Fout bij inloggen; controleer server-URL, e-mailadres en wachtwoord",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "E-mailadres",
|
"login_form_label_email": "E-mailadres",
|
||||||
"login_form_label_password": "Wachtwoord",
|
"login_form_label_password": "Wachtwoord",
|
||||||
"login_form_next_button": "Volgende",
|
"login_form_next_button": "Volgende",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Ingelogd blijven",
|
"login_form_save_login": "Ingelogd blijven",
|
||||||
"login_form_server_empty": "Voer een server-URL in.",
|
"login_form_server_empty": "Voer een server-URL in.",
|
||||||
"login_form_server_error": "Kan geen verbinding maken met de server.",
|
"login_form_server_error": "Kan geen verbinding maken met de server.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Bewegende foto's",
|
"motion_photos_page_title": "Bewegende foto's",
|
||||||
"notification_permission_dialog_cancel": "Annuleren",
|
"notification_permission_dialog_cancel": "Annuleren",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "App en server zijn up-to-date",
|
"profile_drawer_client_server_up_to_date": "App en server zijn up-to-date",
|
||||||
"profile_drawer_settings": "Instellingen",
|
"profile_drawer_settings": "Instellingen",
|
||||||
"profile_drawer_sign_out": "Uitloggen",
|
"profile_drawer_sign_out": "Uitloggen",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recent toegevoegd",
|
"recently_added_page_title": "Recent toegevoegd",
|
||||||
"search_bar_hint": "Foto's doorzoeken",
|
"search_bar_hint": "Foto's doorzoeken",
|
||||||
"search_page_categories": "Categorieën",
|
"search_page_categories": "Categorieën",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Titel toevoegen",
|
"share_add_title": "Titel toevoegen",
|
||||||
"share_create_album": "Album aanmaken",
|
"share_create_album": "Album aanmaken",
|
||||||
"share_dialog_preparing": "Voorbereiden...",
|
"share_dialog_preparing": "Voorbereiden...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Uitnodigen voor album",
|
"share_invite": "Uitnodigen voor album",
|
||||||
"sharing_page_album": "Gedeelde albums",
|
"sharing_page_album": "Gedeelde albums",
|
||||||
"sharing_page_description": "Maak gedeelde albums om foto's en video's te delen met mensen in je netwerk.",
|
"sharing_page_description": "Maak gedeelde albums om foto's en video's te delen met mensen in je netwerk.",
|
||||||
"sharing_page_empty_list": "LEGE LIJST",
|
"sharing_page_empty_list": "LEGE LIJST",
|
||||||
"sharing_silver_appbar_create_shared_album": "Gedeeld album maken",
|
"sharing_silver_appbar_create_shared_album": "Gedeeld album maken",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Delen met partner",
|
"sharing_silver_appbar_share_partner": "Delen met partner",
|
||||||
"tab_controller_nav_library": "Bibliotheek",
|
"tab_controller_nav_library": "Bibliotheek",
|
||||||
"tab_controller_nav_photos": "Foto's",
|
"tab_controller_nav_photos": "Foto's",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Thema",
|
"theme_setting_theme_title": "Thema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Laden in drie fasen kan de laadprestaties verbeteren, maar veroorzaakt een aanzienlijk hogere netwerkbelasting",
|
"theme_setting_three_stage_loading_subtitle": "Laden in drie fasen kan de laadprestaties verbeteren, maar veroorzaakt een aanzienlijk hogere netwerkbelasting",
|
||||||
"theme_setting_three_stage_loading_title": "Laden in drie fasen inschakelen",
|
"theme_setting_three_stage_loading_title": "Laden in drie fasen inschakelen",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Annuleren",
|
"upload_dialog_cancel": "Annuleren",
|
||||||
"upload_dialog_info": "Wilt u een backup maken van de geselecteerde Asset(s) op de server?",
|
"upload_dialog_info": "Wilt u een backup maken van de geselecteerde Asset(s) op de server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hoi, er is een nieuwe versie beschikbaar van",
|
"version_announcement_overlay_text_1": "Hoi, er is een nieuwe versie beschikbaar van",
|
||||||
"version_announcement_overlay_text_2": "neem je tijd en bezoek de ",
|
"version_announcement_overlay_text_2": "neem je tijd en bezoek de ",
|
||||||
"version_announcement_overlay_text_3": " en controleer of je docker-compose en .env up-to-date zijn, om misconfiguraties te voorkomen, in het bijzonder als je gebruik maakt van WatchTower of een ander mechanisme dat je serverapplicatie automatisch bijwerkt.",
|
"version_announcement_overlay_text_3": " en controleer of je docker-compose en .env up-to-date zijn, om misconfiguraties te voorkomen, in het bijzonder als je gebruik maakt van WatchTower of een ander mechanisme dat je serverapplicatie automatisch bijwerkt.",
|
||||||
"version_announcement_overlay_title": "Nieuwe serverversie beschikbaar \uD83C\uDF89"
|
"version_announcement_overlay_title": "Nieuwe serverversie beschikbaar \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Już w {album}",
|
"add_to_album_bottom_sheet_already_exists": "Już w {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Niektóre urządzenia bardzo wolno ładują miniatury z zasobów na urządzeniu. Aktywuj to ustawienie, aby ładować zdalne obrazy.",
|
"advanced_settings_prefer_remote_subtitle": "Niektóre urządzenia bardzo wolno ładują miniatury z zasobów na urządzeniu. Aktywuj to ustawienie, aby ładować zdalne obrazy.",
|
||||||
"advanced_settings_prefer_remote_title": "Preferuj obrazy zdalne",
|
"advanced_settings_prefer_remote_title": "Preferuj obrazy zdalne",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Pomija weryfikację certyfikatu SSL dla punktu końcowego serwera. Wymagane w przypadku certyfikatów z podpisem własnym.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Zezwalaj na certyfikaty SSL z podpisem własnym",
|
||||||
"advanced_settings_tile_subtitle": "Zaawansowane ustawienia użytkownika",
|
"advanced_settings_tile_subtitle": "Zaawansowane ustawienia użytkownika",
|
||||||
"advanced_settings_tile_title": "Zaawansowane",
|
"advanced_settings_tile_title": "Zaawansowane",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Włącz dodatkowe funkcje rozwiązywania problemów",
|
"advanced_settings_troubleshooting_subtitle": "Włącz dodatkowe funkcje rozwiązywania problemów",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Usuń",
|
"control_bottom_app_bar_delete": "Usuń",
|
||||||
"control_bottom_app_bar_favorite": "Ulubione",
|
"control_bottom_app_bar_favorite": "Ulubione",
|
||||||
"control_bottom_app_bar_share": "Udostępnij",
|
"control_bottom_app_bar_share": "Udostępnij",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Cofnij archiwizację",
|
"control_bottom_app_bar_unarchive": "Cofnij archiwizację",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Bez tytułu",
|
"create_album_page_untitled": "Bez tytułu",
|
||||||
"create_shared_album_page_create": "Utwórz",
|
"create_shared_album_page_create": "Utwórz",
|
||||||
"create_shared_album_page_share": "Udostępnij",
|
"create_shared_album_page_share": "Udostępnij",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Anuluj",
|
"delete_dialog_cancel": "Anuluj",
|
||||||
"delete_dialog_ok": "Usuń",
|
"delete_dialog_ok": "Usuń",
|
||||||
"delete_dialog_title": "Usuń trwale",
|
"delete_dialog_title": "Usuń trwale",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Dodaj opis...",
|
"description_input_hint_text": "Dodaj opis...",
|
||||||
"description_input_submit_error": "Błąd aktualizacji opisu, sprawdź dziennik, aby uzyskać więcej szczegółów",
|
"description_input_submit_error": "Błąd aktualizacji opisu, sprawdź dziennik, aby uzyskać więcej szczegółów",
|
||||||
"exif_bottom_sheet_description": "Dodaj Opis...",
|
"exif_bottom_sheet_description": "Dodaj Opis...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Można przesłać maksymalnie 30 zasobów jednocześnie, pomijanie",
|
"home_page_upload_err_limit": "Można przesłać maksymalnie 30 zasobów jednocześnie, pomijanie",
|
||||||
"image_viewer_page_state_provider_download_error": "Błąd pobierania",
|
"image_viewer_page_state_provider_download_error": "Błąd pobierania",
|
||||||
"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": "Share Error",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Nowy album",
|
"library_page_new_album": "Nowy album",
|
||||||
"library_page_sharing": "Udostępnianie",
|
"library_page_sharing": "Udostępnianie",
|
||||||
"library_page_sort_created": "Ostatnio utworzone",
|
"library_page_sort_created": "Ostatnio utworzone",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Tytuł albumu",
|
"library_page_sort_title": "Tytuł albumu",
|
||||||
"login_disabled": "Logowanie zostało wyłączone",
|
"login_disabled": "Logowanie zostało wyłączone",
|
||||||
"login_form_api_exception": "Wyjątek API. Sprawdź adres URL serwera i spróbuj ponownie.",
|
"login_form_api_exception": "Wyjątek API. Sprawdź adres URL serwera i spróbuj ponownie.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Błąd logowania przy użyciu OAuth. Sprawdź adres URL serwera",
|
"login_form_failed_get_oauth_server_config": "Błąd logowania przy użyciu OAuth. Sprawdź adres URL serwera",
|
||||||
"login_form_failed_get_oauth_server_disable": "Funkcja OAuth nie jest dostępna na tym serwerze",
|
"login_form_failed_get_oauth_server_disable": "Funkcja OAuth nie jest dostępna na tym serwerze",
|
||||||
"login_form_failed_login": "Błąd logowania, sprawdź adres url serwera, email i hasło.",
|
"login_form_failed_login": "Błąd logowania, sprawdź adres url serwera, email i hasło.",
|
||||||
|
"login_form_handshake_exception": "Wystąpił wyjątek uzgadniania z serwerem. Włącz obsługę certyfikatów z podpisem własnym w ustawieniach, jeśli używasz certyfikatu z podpisem własnym.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Hasło",
|
"login_form_label_password": "Hasło",
|
||||||
"login_form_next_button": "Dalej",
|
"login_form_next_button": "Dalej",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Pozostań zalogowany",
|
"login_form_save_login": "Pozostań zalogowany",
|
||||||
"login_form_server_empty": "Wprowadź adres URL serwera.",
|
"login_form_server_empty": "Wprowadź adres URL serwera.",
|
||||||
"login_form_server_error": "Nie można połączyć się z serwerem.",
|
"login_form_server_error": "Nie można połączyć się z serwerem.",
|
||||||
|
"login_password_changed_error": "Wystąpił błąd podczas aktualizacji hasła",
|
||||||
|
"login_password_changed_success": "Hasło zostało zmienione",
|
||||||
|
"map_cannot_get_user_location": "Nie można uzyskać lokalizacji użytkownika",
|
||||||
|
"map_location_dialog_cancel": "Anuluj",
|
||||||
|
"map_location_dialog_yes": "Tak",
|
||||||
|
"map_location_service_disabled_content": "Aby wyświetlić zasoby z Twojej bieżącej lokalizacji, należy włączyć usługę lokalizacyjną. Czy chcesz to teraz włączyć?",
|
||||||
|
"map_location_service_disabled_title": "Usługa lokalizacji wyłączona",
|
||||||
|
"map_no_assets_in_bounds": "Brak zdjęć w tym obszarze",
|
||||||
|
"map_no_location_permission_content": "Aby wyświetlić zasoby z Twojej bieżącej lokalizacji, potrzebne jest pozwolenie na lokalizację. Czy chcesz teraz na to pozwolić?",
|
||||||
|
"map_no_location_permission_title": "Odmowa pozwolenia na lokalizację",
|
||||||
|
"map_settings_dark_mode": "Tryb ciemny",
|
||||||
|
"map_settings_dialog_cancel": "Anuluj",
|
||||||
|
"map_settings_dialog_save": "Zapisz",
|
||||||
|
"map_settings_dialog_title": "Ustawienia mapy",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Zakres dat",
|
||||||
|
"map_settings_only_show_favorites": "Pokaż tylko ulubione",
|
||||||
|
"map_zoom_to_see_photos": "Pomniejsz, aby zobaczyć zdjęcia",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Zdjęcia ruchome",
|
"motion_photos_page_title": "Zdjęcia ruchome",
|
||||||
"notification_permission_dialog_cancel": "Anuluj",
|
"notification_permission_dialog_cancel": "Anuluj",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Klient i serwer są aktualne",
|
"profile_drawer_client_server_up_to_date": "Klient i serwer są aktualne",
|
||||||
"profile_drawer_settings": "Ustawienia",
|
"profile_drawer_settings": "Ustawienia",
|
||||||
"profile_drawer_sign_out": "Wyloguj się",
|
"profile_drawer_sign_out": "Wyloguj się",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Ostatnio Dodane",
|
"recently_added_page_title": "Ostatnio Dodane",
|
||||||
"search_bar_hint": "Szukaj swoich zdjęć",
|
"search_bar_hint": "Szukaj swoich zdjęć",
|
||||||
"search_page_categories": "Kategorie",
|
"search_page_categories": "Kategorie",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Dodaj tytuł",
|
"share_add_title": "Dodaj tytuł",
|
||||||
"share_create_album": "Utwórz album",
|
"share_create_album": "Utwórz album",
|
||||||
"share_dialog_preparing": "Przygotowywanie...",
|
"share_dialog_preparing": "Przygotowywanie...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Zaproś do albumu",
|
"share_invite": "Zaproś do albumu",
|
||||||
"sharing_page_album": "Udostępnione albumy",
|
"sharing_page_album": "Udostępnione albumy",
|
||||||
"sharing_page_description": "Twórz wspóldzielone albumy, aby udostępniać zdjęcia i filmy osobom w sieci.",
|
"sharing_page_description": "Twórz wspóldzielone albumy, aby udostępniać zdjęcia i filmy osobom w sieci.",
|
||||||
"sharing_page_empty_list": "PUSTA LISTA",
|
"sharing_page_empty_list": "PUSTA LISTA",
|
||||||
"sharing_silver_appbar_create_shared_album": "Utwórz współdzielony album",
|
"sharing_silver_appbar_create_shared_album": "Utwórz współdzielony album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Udostępnij partnerce/partnerowi",
|
"sharing_silver_appbar_share_partner": "Udostępnij partnerce/partnerowi",
|
||||||
"tab_controller_nav_library": "Biblioteka",
|
"tab_controller_nav_library": "Biblioteka",
|
||||||
"tab_controller_nav_photos": "Zdjęcia",
|
"tab_controller_nav_photos": "Zdjęcia",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Motyw",
|
"theme_setting_theme_title": "Motyw",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Trójstopniowe ładowanie może zwiększyć wydajność ładowania, ale powoduje znacznie większe obciążenie sieci",
|
"theme_setting_three_stage_loading_subtitle": "Trójstopniowe ładowanie może zwiększyć wydajność ładowania, ale powoduje znacznie większe obciążenie sieci",
|
||||||
"theme_setting_three_stage_loading_title": "Włączenie trójstopniowego ładowania",
|
"theme_setting_three_stage_loading_title": "Włączenie trójstopniowego ładowania",
|
||||||
|
"translated_text_options": "Opcje",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Anuluj",
|
"upload_dialog_cancel": "Anuluj",
|
||||||
"upload_dialog_info": "Czy chcesz wykonać kopię zapasową wybranych zasobów na serwerze?",
|
"upload_dialog_info": "Czy chcesz wykonać kopię zapasową wybranych zasobów na serwerze?",
|
||||||
"upload_dialog_ok": "Prześlij",
|
"upload_dialog_ok": "Prześlij",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Cześć przyjacielu, jest nowe wydanie",
|
"version_announcement_overlay_text_1": "Cześć przyjacielu, jest nowe wydanie",
|
||||||
"version_announcement_overlay_text_2": "prosimy o poświęcenie czasu na odwiedzenie ",
|
"version_announcement_overlay_text_2": "prosimy o poświęcenie czasu na odwiedzenie ",
|
||||||
"version_announcement_overlay_text_3": " i upewnij się, że twoja konfiguracja docker-compose i .env jest aktualna, aby zapobiec błędnym konfiguracjom, zwłaszcza jeśli używasz WatchTower lub dowolnego mechanizmu, który obsługuje automatyczną aktualizację aplikacji serwera.",
|
"version_announcement_overlay_text_3": " i upewnij się, że twoja konfiguracja docker-compose i .env jest aktualna, aby zapobiec błędnym konfiguracjom, zwłaszcza jeśli używasz WatchTower lub dowolnego mechanizmu, który obsługuje automatyczną aktualizację aplikacji serwera.",
|
||||||
"version_announcement_overlay_title": "Nowa wersja serwera dostępna \uD83C\uDF89"
|
"version_announcement_overlay_title": "Nowa wersja serwera dostępna \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Уже в {album}",
|
"add_to_album_bottom_sheet_already_exists": "Уже в {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Некоторые устройства очень медленно загружают предпросмотр объектов, находящихся на устройстве. Активируйте эту настройку, чтобы вместо них загружались изображени с сервера.",
|
"advanced_settings_prefer_remote_subtitle": "Некоторые устройства очень медленно загружают предпросмотр объектов, находящихся на устройстве. Активируйте эту настройку, чтобы вместо них загружались изображени с сервера.",
|
||||||
"advanced_settings_prefer_remote_title": "Предпочитать фото на сервере",
|
"advanced_settings_prefer_remote_title": "Предпочитать фото на сервере",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Пропускает проверку сертификата SSL для конечной точки сервера. Требуется для самоподписанных сертификатов.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Разрешить самоподписанные SSL-сертификаты",
|
||||||
"advanced_settings_tile_subtitle": "Расширенные настройки пользователя",
|
"advanced_settings_tile_subtitle": "Расширенные настройки пользователя",
|
||||||
"advanced_settings_tile_title": "Расширенные",
|
"advanced_settings_tile_title": "Расширенные",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Включить расширенные возможности для решения проблем",
|
"advanced_settings_troubleshooting_subtitle": "Включить расширенные возможности для решения проблем",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Удалить",
|
"control_bottom_app_bar_delete": "Удалить",
|
||||||
"control_bottom_app_bar_favorite": "Избранное",
|
"control_bottom_app_bar_favorite": "Избранное",
|
||||||
"control_bottom_app_bar_share": "Поделиться",
|
"control_bottom_app_bar_share": "Поделиться",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Восстановить",
|
"control_bottom_app_bar_unarchive": "Восстановить",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Без названия",
|
"create_album_page_untitled": "Без названия",
|
||||||
"create_shared_album_page_create": "Создать",
|
"create_shared_album_page_create": "Создать",
|
||||||
"create_shared_album_page_share": "Поделиться",
|
"create_shared_album_page_share": "Поделиться",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Отменить",
|
"delete_dialog_cancel": "Отменить",
|
||||||
"delete_dialog_ok": "Удалить",
|
"delete_dialog_ok": "Удалить",
|
||||||
"delete_dialog_title": "Удалить навсегда",
|
"delete_dialog_title": "Удалить навсегда",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Добавить описание...",
|
"description_input_hint_text": "Добавить описание...",
|
||||||
"description_input_submit_error": "Не удалось обновить описание, проверьте логи, чтобы узнать причину",
|
"description_input_submit_error": "Не удалось обновить описание, проверьте логи, чтобы узнать причину",
|
||||||
"exif_bottom_sheet_description": "Добавить описание...",
|
"exif_bottom_sheet_description": "Добавить описание...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Вы можете выгрузить максимум 30 файлов за раз",
|
"home_page_upload_err_limit": "Вы можете выгрузить максимум 30 файлов за раз",
|
||||||
"image_viewer_page_state_provider_download_error": "Ошибка загрузки",
|
"image_viewer_page_state_provider_download_error": "Ошибка загрузки",
|
||||||
"image_viewer_page_state_provider_download_success": "Успешно загружено",
|
"image_viewer_page_state_provider_download_success": "Успешно загружено",
|
||||||
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"library_page_albums": "Альбомы",
|
"library_page_albums": "Альбомы",
|
||||||
"library_page_archive": "Архив",
|
"library_page_archive": "Архив",
|
||||||
"library_page_device_albums": "Альбомы на устройстве",
|
"library_page_device_albums": "Альбомы на устройстве",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Новый альбом",
|
"library_page_new_album": "Новый альбом",
|
||||||
"library_page_sharing": "Общие",
|
"library_page_sharing": "Общие",
|
||||||
"library_page_sort_created": "По новизне",
|
"library_page_sort_created": "По новизне",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "По названию альбома",
|
"library_page_sort_title": "По названию альбома",
|
||||||
"login_disabled": "Вход отключен",
|
"login_disabled": "Вход отключен",
|
||||||
"login_form_api_exception": "Ошибка при попытке взаимодействия с сервером. Проверьте URL-адрес до него и попробуйте еще раз.",
|
"login_form_api_exception": "Ошибка при попытке взаимодействия с сервером. Проверьте URL-адрес до него и попробуйте еще раз.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Ошибка авторизации с использованием OAuth, проверьте URL-адрес сервера",
|
"login_form_failed_get_oauth_server_config": "Ошибка авторизации с использованием OAuth, проверьте URL-адрес сервера",
|
||||||
"login_form_failed_get_oauth_server_disable": "Функция OAuth недоступна на этом сервере.",
|
"login_form_failed_get_oauth_server_disable": "Функция OAuth недоступна на этом сервере.",
|
||||||
"login_form_failed_login": "Ошибка при входе в систему, проверьте URL-адрес сервера, адрес электронной почты и пароль",
|
"login_form_failed_login": "Ошибка при входе в систему, проверьте URL-адрес сервера, адрес электронной почты и пароль",
|
||||||
|
"login_form_handshake_exception": "Произошло нарушение рукопожатия с сервером. Включите в настройках поддержку самоподписанных сертификатов, если вы используете самоподписанный сертификат.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Пароль",
|
"login_form_label_password": "Пароль",
|
||||||
"login_form_next_button": "Далее",
|
"login_form_next_button": "Далее",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Оставаться в системе",
|
"login_form_save_login": "Оставаться в системе",
|
||||||
"login_form_server_empty": "Введите URL-адрес вашего сервера.",
|
"login_form_server_empty": "Введите URL-адрес вашего сервера.",
|
||||||
"login_form_server_error": "Нет соединения с сервером.",
|
"login_form_server_error": "Нет соединения с сервером.",
|
||||||
|
"login_password_changed_error": "Произошла ошибка при обновлении пароля",
|
||||||
|
"login_password_changed_success": "Пароль успешно обновлен",
|
||||||
|
"map_cannot_get_user_location": "Невозможно получить местоположение пользователя",
|
||||||
|
"map_location_dialog_cancel": "Отмена",
|
||||||
|
"map_location_dialog_yes": "Да",
|
||||||
|
"map_location_service_disabled_content": "Для отображения объектов в данном месте необходимо включить службу определения местоположения. Хотите включить ее сейчас?",
|
||||||
|
"map_location_service_disabled_title": "Служба определения местоположения отключена",
|
||||||
|
"map_no_assets_in_bounds": "Нет фотографий в этой области",
|
||||||
|
"map_no_location_permission_content": "Для отображения объектов из текущего местоположения необходимо разрешение на определение местоположения. Хотите ли вы разрешить его сейчас?",
|
||||||
|
"map_no_location_permission_title": "Доступ к местоположению отклонен",
|
||||||
|
"map_settings_dark_mode": "Темный режим",
|
||||||
|
"map_settings_dialog_cancel": "Отмена",
|
||||||
|
"map_settings_dialog_save": "Сохранить",
|
||||||
|
"map_settings_dialog_title": "Настройки карты",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Период времени",
|
||||||
|
"map_settings_only_show_favorites": "Показать только избранное",
|
||||||
|
"map_zoom_to_see_photos": "Уменьшение масштаба для просмотра фотографий",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Динамические фото",
|
"motion_photos_page_title": "Динамические фото",
|
||||||
"notification_permission_dialog_cancel": "Отмена",
|
"notification_permission_dialog_cancel": "Отмена",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Клиент и сервер обновлены",
|
"profile_drawer_client_server_up_to_date": "Клиент и сервер обновлены",
|
||||||
"profile_drawer_settings": "Настройки",
|
"profile_drawer_settings": "Настройки",
|
||||||
"profile_drawer_sign_out": "Выйти",
|
"profile_drawer_sign_out": "Выйти",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Недавно добавленные",
|
"recently_added_page_title": "Недавно добавленные",
|
||||||
"search_bar_hint": "Поиск фотографий",
|
"search_bar_hint": "Поиск фотографий",
|
||||||
"search_page_categories": "Категории",
|
"search_page_categories": "Категории",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Добавить название",
|
"share_add_title": "Добавить название",
|
||||||
"share_create_album": "Создать альбом",
|
"share_create_album": "Создать альбом",
|
||||||
"share_dialog_preparing": "Подготовка...",
|
"share_dialog_preparing": "Подготовка...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "\nПригласить в альбом",
|
"share_invite": "\nПригласить в альбом",
|
||||||
"sharing_page_album": "Общие альбомы",
|
"sharing_page_album": "Общие альбомы",
|
||||||
"sharing_page_description": "Создавайте общие альбомы, чтобы делиться фотографиями и видео с людьми в вашей сети.",
|
"sharing_page_description": "Создавайте общие альбомы, чтобы делиться фотографиями и видео с людьми в вашей сети.",
|
||||||
"sharing_page_empty_list": "ПУСТОЙ СПИСОК",
|
"sharing_page_empty_list": "ПУСТОЙ СПИСОК",
|
||||||
"sharing_silver_appbar_create_shared_album": "Создать общий альбом",
|
"sharing_silver_appbar_create_shared_album": "Создать общий альбом",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Поделиться с партнёром",
|
"sharing_silver_appbar_share_partner": "Поделиться с партнёром",
|
||||||
"tab_controller_nav_library": "Библиотека",
|
"tab_controller_nav_library": "Библиотека",
|
||||||
"tab_controller_nav_photos": "Фото",
|
"tab_controller_nav_photos": "Фото",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Тема",
|
"theme_setting_theme_title": "Тема",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Трехэтапная загрузка может повысить производительность загрузки, но вызывает значительно более высокую нагрузку на сеть",
|
"theme_setting_three_stage_loading_subtitle": "Трехэтапная загрузка может повысить производительность загрузки, но вызывает значительно более высокую нагрузку на сеть",
|
||||||
"theme_setting_three_stage_loading_title": "Включить трехэтапную загрузку",
|
"theme_setting_three_stage_loading_title": "Включить трехэтапную загрузку",
|
||||||
|
"translated_text_options": "Опции",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Отмена",
|
"upload_dialog_cancel": "Отмена",
|
||||||
"upload_dialog_info": "Вы хотите загрузить выбранный объект(ы) на ваш сервер?",
|
"upload_dialog_info": "Вы хотите загрузить выбранный объект(ы) на ваш сервер?",
|
||||||
"upload_dialog_ok": "Загрузить",
|
"upload_dialog_ok": "Загрузить",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Привет друг, вышел новый релиз",
|
"version_announcement_overlay_text_1": "Привет друг, вышел новый релиз",
|
||||||
"version_announcement_overlay_text_2": "пожалуйста, найдите время, чтобы посетить",
|
"version_announcement_overlay_text_2": "пожалуйста, найдите время, чтобы посетить",
|
||||||
"version_announcement_overlay_text_3": " и убедитесь, что ваши настройки docker-compose и .env обновлены, чтобы предотвратить любые неправильные настройки, особенно если вы используете WatchTower или любой другой механизм, который обрабатывает обновление вашего серверного приложения автоматически.",
|
"version_announcement_overlay_text_3": " и убедитесь, что ваши настройки docker-compose и .env обновлены, чтобы предотвратить любые неправильные настройки, особенно если вы используете WatchTower или любой другой механизм, который обрабатывает обновление вашего серверного приложения автоматически.",
|
||||||
"version_announcement_overlay_title": "Доступна новая версия сервера \uD83C\uDF89"
|
"version_announcement_overlay_title": "Доступна новая версия сервера \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Už v {album}",
|
"add_to_album_bottom_sheet_already_exists": "Už v {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Niektoré zariadenia sú extrémne pomalé pre načítavanie miniatúr z fotiek na zariadení. Povoľte toto nastavenie aby sa namiesto toho načítavali obrázky zo servera.",
|
"advanced_settings_prefer_remote_subtitle": "Niektoré zariadenia sú extrémne pomalé pre načítavanie miniatúr z fotiek na zariadení. Povoľte toto nastavenie aby sa namiesto toho načítavali obrázky zo servera.",
|
||||||
"advanced_settings_prefer_remote_title": "Preferovať vzdialené obrázky",
|
"advanced_settings_prefer_remote_title": "Preferovať vzdialené obrázky",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Preskakuje overovanie SSL certifikátom zo strany servera. Vyžaduje sa pre samo-podpísané certifikáty.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Povoliť samo-podpísané SSL certifikáty",
|
||||||
"advanced_settings_tile_subtitle": "Pokročilé nastavenia používateľa",
|
"advanced_settings_tile_subtitle": "Pokročilé nastavenia používateľa",
|
||||||
"advanced_settings_tile_title": "Pokročilé",
|
"advanced_settings_tile_title": "Pokročilé",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Povoliť ďalšie funkcie pre opravu chýb",
|
"advanced_settings_troubleshooting_subtitle": "Povoliť ďalšie funkcie pre opravu chýb",
|
||||||
|
@ -92,11 +94,11 @@
|
||||||
"backup_controller_page_uploading_file_info": "Nahrávaný súbor",
|
"backup_controller_page_uploading_file_info": "Nahrávaný súbor",
|
||||||
"backup_err_only_album": "Nie je možné odstrániť jediný vybraný album",
|
"backup_err_only_album": "Nie je možné odstrániť jediný vybraný album",
|
||||||
"backup_info_card_assets": "položiek",
|
"backup_info_card_assets": "položiek",
|
||||||
"backup_manual_cancelled": "Cancelled",
|
"backup_manual_cancelled": "Zrušené",
|
||||||
"backup_manual_failed": "Failed",
|
"backup_manual_failed": "Zlyhanie",
|
||||||
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
"backup_manual_in_progress": "Nahrávanie už prebieha. Vyskúšajte neskôr",
|
||||||
"backup_manual_success": "Success",
|
"backup_manual_success": "Úspech",
|
||||||
"backup_manual_title": "Upload status",
|
"backup_manual_title": "Stav nahrávania",
|
||||||
"cache_settings_album_thumbnails": "Náhľady stránok knižnice (položiek {})",
|
"cache_settings_album_thumbnails": "Náhľady stránok knižnice (položiek {})",
|
||||||
"cache_settings_clear_cache_button": "Vymazať vyrovnávaciu pamäť",
|
"cache_settings_clear_cache_button": "Vymazať vyrovnávaciu pamäť",
|
||||||
"cache_settings_clear_cache_button_title": "Vymaže vyrovnávaciu pamäť aplikácie. To výrazne ovplyvní výkon aplikácie, kým sa vyrovnávacia pamäť neobnoví.",
|
"cache_settings_clear_cache_button_title": "Vymaže vyrovnávaciu pamäť aplikácie. To výrazne ovplyvní výkon aplikácie, kým sa vyrovnávacia pamäť neobnoví.",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Vymazať",
|
"control_bottom_app_bar_delete": "Vymazať",
|
||||||
"control_bottom_app_bar_favorite": "Obľúbené",
|
"control_bottom_app_bar_favorite": "Obľúbené",
|
||||||
"control_bottom_app_bar_share": "Zdieľať",
|
"control_bottom_app_bar_share": "Zdieľať",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Odarchivovať",
|
"control_bottom_app_bar_unarchive": "Odarchivovať",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Bez názvu",
|
"create_album_page_untitled": "Bez názvu",
|
||||||
"create_shared_album_page_create": "Vytvoriť",
|
"create_shared_album_page_create": "Vytvoriť",
|
||||||
"create_shared_album_page_share": "Zdieľať",
|
"create_shared_album_page_share": "Zdieľať",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Zrušiť",
|
"delete_dialog_cancel": "Zrušiť",
|
||||||
"delete_dialog_ok": "Vymazať",
|
"delete_dialog_ok": "Vymazať",
|
||||||
"delete_dialog_title": "Vymazať natrvalo",
|
"delete_dialog_title": "Vymazať natrvalo",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Pridať popis...",
|
"description_input_hint_text": "Pridať popis...",
|
||||||
"description_input_submit_error": "Chyba pri aktualizovaní popisu, zobrazte log pre viac detailov",
|
"description_input_submit_error": "Chyba pri aktualizovaní popisu, zobrazte log pre viac detailov",
|
||||||
"exif_bottom_sheet_description": "Pridať popis...",
|
"exif_bottom_sheet_description": "Pridať popis...",
|
||||||
|
@ -161,9 +168,10 @@
|
||||||
"home_page_building_timeline": "Vytváranie časovej osi",
|
"home_page_building_timeline": "Vytváranie časovej osi",
|
||||||
"home_page_favorite_err_local": "Zatiaľ nie je možné zaradiť lokálne média medzi obľúbené, preskakuje sa",
|
"home_page_favorite_err_local": "Zatiaľ nie je možné zaradiť lokálne média medzi obľúbené, preskakuje sa",
|
||||||
"home_page_first_time_notice": "Ak aplikáciu používate prvý krát, nezabudnite si vybrať zálohované albumy, aby sa na časovej osi mohli nachádzať fotografie a videá z vybraných albumoch.",
|
"home_page_first_time_notice": "Ak aplikáciu používate prvý krát, nezabudnite si vybrať zálohované albumy, aby sa na časovej osi mohli nachádzať fotografie a videá z vybraných albumoch.",
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Naraz môžete nahrať len 30 médií, preskakujem...",
|
||||||
"image_viewer_page_state_provider_download_error": "Chyba sťahovania",
|
"image_viewer_page_state_provider_download_error": "Chyba sťahovania",
|
||||||
"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": "Share Error",
|
||||||
"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í",
|
||||||
|
@ -171,8 +179,10 @@
|
||||||
"library_page_new_album": "Nový album",
|
"library_page_new_album": "Nový album",
|
||||||
"library_page_sharing": "Zdieľanie",
|
"library_page_sharing": "Zdieľanie",
|
||||||
"library_page_sort_created": "Najnovšie vytvorené",
|
"library_page_sort_created": "Najnovšie vytvorené",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Podľa názvu albumu",
|
"library_page_sort_title": "Podľa názvu albumu",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Prihlasovanie bolo vypnuté",
|
||||||
"login_form_api_exception": "Chyba API. Skontrolujte adresu URL servera a skúste to znova.",
|
"login_form_api_exception": "Chyba API. Skontrolujte adresu URL servera a skúste to znova.",
|
||||||
"login_form_button_text": "Prihlásiť sa",
|
"login_form_button_text": "Prihlásiť sa",
|
||||||
"login_form_email_hint": "tvojmail@email.com",
|
"login_form_email_hint": "tvojmail@email.com",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Chyba prihlásenia pomocou OAuth, skontrolujte adresu URL servera",
|
"login_form_failed_get_oauth_server_config": "Chyba prihlásenia pomocou OAuth, skontrolujte adresu URL servera",
|
||||||
"login_form_failed_get_oauth_server_disable": "Funkcia OAuth nie je na tomto serveri dostupná",
|
"login_form_failed_get_oauth_server_disable": "Funkcia OAuth nie je na tomto serveri dostupná",
|
||||||
"login_form_failed_login": "Chyba prihlásenia, skontrolujte url adresu servera, e-mail a heslo.",
|
"login_form_failed_login": "Chyba prihlásenia, skontrolujte url adresu servera, e-mail a heslo.",
|
||||||
|
"login_form_handshake_exception": "Nastala chyba handshake. Zapnite podoporu samo-podpísaných certifikátov v nastaveniach ak používate samo-podpísané certifikáty.",
|
||||||
"login_form_label_email": "E-mail",
|
"login_form_label_email": "E-mail",
|
||||||
"login_form_label_password": "Heslo",
|
"login_form_label_password": "Heslo",
|
||||||
"login_form_next_button": "Ďalej",
|
"login_form_next_button": "Ďalej",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Zostať prihlásený",
|
"login_form_save_login": "Zostať prihlásený",
|
||||||
"login_form_server_empty": "Zadajte URL servera",
|
"login_form_server_empty": "Zadajte URL servera",
|
||||||
"login_form_server_error": "Nemožno pripojiť na server.",
|
"login_form_server_error": "Nemožno pripojiť na server.",
|
||||||
|
"login_password_changed_error": "Nastala chyba pri aktualizovaní hesla",
|
||||||
|
"login_password_changed_success": "Aktualizácia hesla prebehla úspešne",
|
||||||
|
"map_cannot_get_user_location": "Nemožno získať polohu používateľa",
|
||||||
|
"map_location_dialog_cancel": "Zrušiť",
|
||||||
|
"map_location_dialog_yes": "Áno",
|
||||||
|
"map_location_service_disabled_content": "Služba polohovania musí byť zapnutá aby médiá zobrazovali vašu aktuálnu polohu. Chcete ju zapnúť?",
|
||||||
|
"map_location_service_disabled_title": "Služba polohovania vypnutá",
|
||||||
|
"map_no_assets_in_bounds": "Nič tu nie je",
|
||||||
|
"map_no_location_permission_content": "Povolenie polohy je potrebné aby sa zobrazovali médiá z vašej aktuálnej polohy. Chcete udeliť toto povolenie?",
|
||||||
|
"map_no_location_permission_title": "Udelenie polohy zamietnuté",
|
||||||
|
"map_settings_dark_mode": "Tmavý režim",
|
||||||
|
"map_settings_dialog_cancel": "Zrušiť",
|
||||||
|
"map_settings_dialog_save": "Uložiť",
|
||||||
|
"map_settings_dialog_title": "Nastavenia máp",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Rozsah dátumu",
|
||||||
|
"map_settings_only_show_favorites": "Zobraziť iba obľúbené",
|
||||||
|
"map_zoom_to_see_photos": "Oddiaľte priblíženie aby ste videli fotky",
|
||||||
"monthly_title_text_date_format": "LLLL y",
|
"monthly_title_text_date_format": "LLLL y",
|
||||||
"motion_photos_page_title": "Pohyblivé fotky",
|
"motion_photos_page_title": "Pohyblivé fotky",
|
||||||
"notification_permission_dialog_cancel": "Zrušiť",
|
"notification_permission_dialog_cancel": "Zrušiť",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Klient a server sú aktuálne",
|
"profile_drawer_client_server_up_to_date": "Klient a server sú aktuálne",
|
||||||
"profile_drawer_settings": "Nastavenia",
|
"profile_drawer_settings": "Nastavenia",
|
||||||
"profile_drawer_sign_out": "Odhlásiť sa",
|
"profile_drawer_sign_out": "Odhlásiť sa",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Nedávno pridané",
|
"recently_added_page_title": "Nedávno pridané",
|
||||||
"search_bar_hint": "Prehľadajte svoje obrázky",
|
"search_bar_hint": "Prehľadajte svoje obrázky",
|
||||||
"search_page_categories": "Kategórie",
|
"search_page_categories": "Kategórie",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Pridať názov",
|
"share_add_title": "Pridať názov",
|
||||||
"share_create_album": "Vytvoriť album",
|
"share_create_album": "Vytvoriť album",
|
||||||
"share_dialog_preparing": "Pripravujem...",
|
"share_dialog_preparing": "Pripravujem...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Pozvať do albumu",
|
"share_invite": "Pozvať do albumu",
|
||||||
"sharing_page_album": "Zdieľané albumy",
|
"sharing_page_album": "Zdieľané albumy",
|
||||||
"sharing_page_description": "Vytvárajte zdieľané albumy a zdieľajte fotografie a videá s ľuďmi vo vašej sieti.",
|
"sharing_page_description": "Vytvárajte zdieľané albumy a zdieľajte fotografie a videá s ľuďmi vo vašej sieti.",
|
||||||
"sharing_page_empty_list": "Prázdny list",
|
"sharing_page_empty_list": "Prázdny list",
|
||||||
"sharing_silver_appbar_create_shared_album": "Vytvoriť zdieľaný album",
|
"sharing_silver_appbar_create_shared_album": "Vytvoriť zdieľaný album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Zdieľať s partnerom",
|
"sharing_silver_appbar_share_partner": "Zdieľať s partnerom",
|
||||||
"tab_controller_nav_library": "Knižnica",
|
"tab_controller_nav_library": "Knižnica",
|
||||||
"tab_controller_nav_photos": "Fotografie",
|
"tab_controller_nav_photos": "Fotografie",
|
||||||
|
@ -291,14 +337,30 @@
|
||||||
"theme_setting_theme_title": "Téma",
|
"theme_setting_theme_title": "Téma",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Trojstupňové načítanie môže zvýšiť výkonnosť načítania, ale vedie k výrazne vyššiemu zaťaženiu siete.",
|
"theme_setting_three_stage_loading_subtitle": "Trojstupňové načítanie môže zvýšiť výkonnosť načítania, ale vedie k výrazne vyššiemu zaťaženiu siete.",
|
||||||
"theme_setting_three_stage_loading_title": "Povolenie trojstupňového načítavania",
|
"theme_setting_three_stage_loading_title": "Povolenie trojstupňového načítavania",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"translated_text_options": "Nastavenia",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"trash_page_delete": "Delete",
|
||||||
"upload_dialog_ok": "Upload",
|
"trash_page_delete_all": "Delete All",
|
||||||
"upload_dialog_title": "Upload Asset",
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
|
"upload_dialog_cancel": "Zrušiť",
|
||||||
|
"upload_dialog_info": "Chcete zálohovať zvolené médiá na server?",
|
||||||
|
"upload_dialog_ok": "Nahrať",
|
||||||
|
"upload_dialog_title": "Nahrať médiá",
|
||||||
"version_announcement_overlay_ack": "Potvrdiť",
|
"version_announcement_overlay_ack": "Potvrdiť",
|
||||||
"version_announcement_overlay_release_notes": "poznámky k vydaniu",
|
"version_announcement_overlay_release_notes": "poznámky k vydaniu",
|
||||||
"version_announcement_overlay_text_1": "Ahoj, je tu nová verzia",
|
"version_announcement_overlay_text_1": "Ahoj, je tu nová verzia",
|
||||||
"version_announcement_overlay_text_2": "nájdite si čas na návštevu ",
|
"version_announcement_overlay_text_2": "nájdite si čas na návštevu ",
|
||||||
"version_announcement_overlay_text_3": " a uistite sa, že vaša konfigurácia docker-compose a .env je aktuálna, aby ste predišli nesprávnej konfigurácii, najmä ak používate WatchTower alebo akýkoľvek mechanizmus, ktorý podporuje automatické aktualizácie serverových aplikácií.",
|
"version_announcement_overlay_text_3": " a uistite sa, že vaša konfigurácia docker-compose a .env je aktuálna, aby ste predišli nesprávnej konfigurácii, najmä ak používate WatchTower alebo akýkoľvek mechanizmus, ktorý podporuje automatické aktualizácie serverových aplikácií.",
|
||||||
"version_announcement_overlay_title": "K dispozícii je nová verzia servera \uD83C\uDF89"
|
"version_announcement_overlay_title": "K dispozícii je nová verzia servera \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Advanced",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Unarchive",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Untitled",
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_shared_album_page_create": "Create",
|
"create_shared_album_page_create": "Create",
|
||||||
"create_shared_album_page_share": "Share",
|
"create_shared_album_page_share": "Share",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Cancel",
|
"delete_dialog_cancel": "Cancel",
|
||||||
"delete_dialog_ok": "Delete",
|
"delete_dialog_ok": "Delete",
|
||||||
"delete_dialog_title": "Delete Permanently",
|
"delete_dialog_title": "Delete Permanently",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Add description...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "Add Description...",
|
"exif_bottom_sheet_description": "Add Description...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"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",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "New album",
|
"library_page_new_album": "New album",
|
||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Password",
|
"login_form_label_password": "Password",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Next",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Stay logged in",
|
"login_form_save_login": "Stay logged in",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Settings",
|
||||||
"profile_drawer_sign_out": "Sign Out",
|
"profile_drawer_sign_out": "Sign Out",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recently Added",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Add a title",
|
"share_add_title": "Add a title",
|
||||||
"share_create_album": "Create album",
|
"share_create_album": "Create album",
|
||||||
"share_dialog_preparing": "Preparing...",
|
"share_dialog_preparing": "Preparing...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Invite to album",
|
"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": "Create shared album",
|
"sharing_silver_appbar_create_shared_album": "Create shared album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Share with partner",
|
"sharing_silver_appbar_share_partner": "Share with partner",
|
||||||
"tab_controller_nav_library": "Library",
|
"tab_controller_nav_library": "Library",
|
||||||
"tab_controller_nav_photos": "Photos",
|
"tab_controller_nav_photos": "Photos",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89"
|
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Već u {album}",
|
"add_to_album_bottom_sheet_already_exists": "Već u {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Advanced",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Obriši",
|
"control_bottom_app_bar_delete": "Obriši",
|
||||||
"control_bottom_app_bar_favorite": "Omliljeno",
|
"control_bottom_app_bar_favorite": "Omliljeno",
|
||||||
"control_bottom_app_bar_share": "Podeli",
|
"control_bottom_app_bar_share": "Podeli",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Unarchive",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Bez naslova",
|
"create_album_page_untitled": "Bez naslova",
|
||||||
"create_shared_album_page_create": "Napravi",
|
"create_shared_album_page_create": "Napravi",
|
||||||
"create_shared_album_page_share": "Podeli",
|
"create_shared_album_page_share": "Podeli",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Odustani",
|
"delete_dialog_cancel": "Odustani",
|
||||||
"delete_dialog_ok": "Obriši",
|
"delete_dialog_ok": "Obriši",
|
||||||
"delete_dialog_title": "Obriši permanentno",
|
"delete_dialog_title": "Obriši permanentno",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Add description...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "Dodaj opis...",
|
"exif_bottom_sheet_description": "Dodaj opis...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Preuzimanje Neuspešno",
|
"image_viewer_page_state_provider_download_error": "Preuzimanje Neuspešno",
|
||||||
"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",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Novi album",
|
"library_page_new_album": "Novi album",
|
||||||
"library_page_sharing": "Deljenje",
|
"library_page_sharing": "Deljenje",
|
||||||
"library_page_sort_created": "Najnovije kreirano",
|
"library_page_sort_created": "Najnovije kreirano",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Naziv albuma",
|
"library_page_sort_title": "Naziv albuma",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Evidencija grešaka koristeći OAuth, proveriti serverski link (URL)",
|
"login_form_failed_get_oauth_server_config": "Evidencija grešaka koristeći OAuth, proveriti serverski link (URL)",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth opcija nije dostupna na ovom serveru",
|
"login_form_failed_get_oauth_server_disable": "OAuth opcija nije dostupna na ovom serveru",
|
||||||
"login_form_failed_login": "Neuspešna prijava, proveri URL servera, email i šifru",
|
"login_form_failed_login": "Neuspešna prijava, proveri URL servera, email i šifru",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Šifra",
|
"login_form_label_password": "Šifra",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Next",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Ostani prijavljen",
|
"login_form_save_login": "Ostani prijavljen",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"notification_permission_dialog_cancel": "Odustani",
|
"notification_permission_dialog_cancel": "Odustani",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Klijent i server su najnovije verzije",
|
"profile_drawer_client_server_up_to_date": "Klijent i server su najnovije verzije",
|
||||||
"profile_drawer_settings": "Opcije",
|
"profile_drawer_settings": "Opcije",
|
||||||
"profile_drawer_sign_out": "Odjavi se",
|
"profile_drawer_sign_out": "Odjavi se",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recently Added",
|
||||||
"search_bar_hint": "Pretražite Vaše fotografije",
|
"search_bar_hint": "Pretražite Vaše fotografije",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Dodaj naslov",
|
"share_add_title": "Dodaj naslov",
|
||||||
"share_create_album": "Napravi album",
|
"share_create_album": "Napravi album",
|
||||||
"share_dialog_preparing": "Pripremanje...",
|
"share_dialog_preparing": "Pripremanje...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Pozivnica za album",
|
"share_invite": "Pozivnica za album",
|
||||||
"sharing_page_album": "Deljeni albumi",
|
"sharing_page_album": "Deljeni albumi",
|
||||||
"sharing_page_description": "Napravi deljene albume da deliš fotografije i video zapise sa ljudima na tvojoj mreži",
|
"sharing_page_description": "Napravi deljene albume da deliš fotografije i video zapise sa ljudima na tvojoj mreži",
|
||||||
"sharing_page_empty_list": "PRAZNA LISTA",
|
"sharing_page_empty_list": "PRAZNA LISTA",
|
||||||
"sharing_silver_appbar_create_shared_album": "Napravi deljeni album",
|
"sharing_silver_appbar_create_shared_album": "Napravi deljeni album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Podeli sa partnerom",
|
"sharing_silver_appbar_share_partner": "Podeli sa partnerom",
|
||||||
"tab_controller_nav_library": "Biblioteka",
|
"tab_controller_nav_library": "Biblioteka",
|
||||||
"tab_controller_nav_photos": "Slike",
|
"tab_controller_nav_photos": "Slike",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Teme",
|
"theme_setting_theme_title": "Teme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Trostepeno učitavanje možda ubrza učitavanje, po cenu potrošnje podataka",
|
"theme_setting_three_stage_loading_subtitle": "Trostepeno učitavanje možda ubrza učitavanje, po cenu potrošnje podataka",
|
||||||
"theme_setting_three_stage_loading_title": "Aktiviraj trostepeno učitavanje",
|
"theme_setting_three_stage_loading_title": "Aktiviraj trostepeno učitavanje",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Ćao, nova verzija",
|
"version_announcement_overlay_text_1": "Ćao, nova verzija",
|
||||||
"version_announcement_overlay_text_2": "molimo Vas izdvojite vremena da pogledate",
|
"version_announcement_overlay_text_2": "molimo Vas izdvojite vremena da pogledate",
|
||||||
"version_announcement_overlay_text_3": "i proverite da su Vaš docker-compose i .env najnovije verzije da bi izbegli greške u radu. Pogotovu ako koristite WatchTower ili bilo koji drugi mehanizam koji automatski instalira nove verzije vaše serverske aplikacije.",
|
"version_announcement_overlay_text_3": "i proverite da su Vaš docker-compose i .env najnovije verzije da bi izbegli greške u radu. Pogotovu ako koristite WatchTower ili bilo koji drugi mehanizam koji automatski instalira nove verzije vaše serverske aplikacije.",
|
||||||
"version_announcement_overlay_title": "Nova verzija servera je dostupna \uD83C\uDF89"
|
"version_announcement_overlay_title": "Nova verzija servera je dostupna \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Advanced",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Unarchive",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Untitled",
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_shared_album_page_create": "Create",
|
"create_shared_album_page_create": "Create",
|
||||||
"create_shared_album_page_share": "Share",
|
"create_shared_album_page_share": "Share",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Cancel",
|
"delete_dialog_cancel": "Cancel",
|
||||||
"delete_dialog_ok": "Delete",
|
"delete_dialog_ok": "Delete",
|
||||||
"delete_dialog_title": "Delete Permanently",
|
"delete_dialog_title": "Delete Permanently",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Add description...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "Add Description...",
|
"exif_bottom_sheet_description": "Add Description...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"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",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "New album",
|
"library_page_new_album": "New album",
|
||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Password",
|
"login_form_label_password": "Password",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Next",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Stay logged in",
|
"login_form_save_login": "Stay logged in",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Settings",
|
||||||
"profile_drawer_sign_out": "Sign Out",
|
"profile_drawer_sign_out": "Sign Out",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recently Added",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Add a title",
|
"share_add_title": "Add a title",
|
||||||
"share_create_album": "Create album",
|
"share_create_album": "Create album",
|
||||||
"share_dialog_preparing": "Preparing...",
|
"share_dialog_preparing": "Preparing...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Invite to album",
|
"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": "Create shared album",
|
"sharing_silver_appbar_create_shared_album": "Create shared album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Share with partner",
|
"sharing_silver_appbar_share_partner": "Share with partner",
|
||||||
"tab_controller_nav_library": "Library",
|
"tab_controller_nav_library": "Library",
|
||||||
"tab_controller_nav_photos": "Photos",
|
"tab_controller_nav_photos": "Photos",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89"
|
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Avancerad",
|
"advanced_settings_tile_title": "Avancerad",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Radera",
|
"control_bottom_app_bar_delete": "Radera",
|
||||||
"control_bottom_app_bar_favorite": "Favorit",
|
"control_bottom_app_bar_favorite": "Favorit",
|
||||||
"control_bottom_app_bar_share": "Dela",
|
"control_bottom_app_bar_share": "Dela",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Unarchive",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Namnlös",
|
"create_album_page_untitled": "Namnlös",
|
||||||
"create_shared_album_page_create": "Skapa",
|
"create_shared_album_page_create": "Skapa",
|
||||||
"create_shared_album_page_share": "Dela",
|
"create_shared_album_page_share": "Dela",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Avbryt",
|
"delete_dialog_cancel": "Avbryt",
|
||||||
"delete_dialog_ok": "Radera",
|
"delete_dialog_ok": "Radera",
|
||||||
"delete_dialog_title": "Radera permanent",
|
"delete_dialog_title": "Radera permanent",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Lägg till beskrivning...",
|
"description_input_hint_text": "Lägg till beskrivning...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "Lägg till beskrivning...",
|
"exif_bottom_sheet_description": "Lägg till beskrivning...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"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",
|
||||||
"library_page_albums": "Album",
|
"library_page_albums": "Album",
|
||||||
"library_page_archive": "Arkiv",
|
"library_page_archive": "Arkiv",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"library_page_device_albums": "Albums on Device",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "Nytt album",
|
"library_page_new_album": "Nytt album",
|
||||||
"library_page_sharing": "Delas",
|
"library_page_sharing": "Delas",
|
||||||
"library_page_sort_created": "Senast skapad",
|
"library_page_sort_created": "Senast skapad",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Albumtitel",
|
"library_page_sort_title": "Albumtitel",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Kunde inte logga in med OAuth. Kontrollera serverns webbadress",
|
"login_form_failed_get_oauth_server_config": "Kunde inte logga in med OAuth. Kontrollera serverns webbadress",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth är inte tillgänglig på den här servern",
|
"login_form_failed_get_oauth_server_disable": "OAuth är inte tillgänglig på den här servern",
|
||||||
"login_form_failed_login": "Kunde inte logga in. Kontrollera serverns webbadress, email och lösenord.",
|
"login_form_failed_login": "Kunde inte logga in. Kontrollera serverns webbadress, email och lösenord.",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Lösenord",
|
"login_form_label_password": "Lösenord",
|
||||||
"login_form_next_button": "Nästa",
|
"login_form_next_button": "Nästa",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Håll mig inloggad",
|
"login_form_save_login": "Håll mig inloggad",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Kunde inte ansluta till servern",
|
"login_form_server_error": "Kunde inte ansluta till servern",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"notification_permission_dialog_cancel": "Avbryt",
|
"notification_permission_dialog_cancel": "Avbryt",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Klient och server är uppdaterade",
|
"profile_drawer_client_server_up_to_date": "Klient och server är uppdaterade",
|
||||||
"profile_drawer_settings": "Inställningar",
|
"profile_drawer_settings": "Inställningar",
|
||||||
"profile_drawer_sign_out": "Logga ut",
|
"profile_drawer_sign_out": "Logga ut",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Nyligen tillagda",
|
"recently_added_page_title": "Nyligen tillagda",
|
||||||
"search_bar_hint": "Sök bland dina foton",
|
"search_bar_hint": "Sök bland dina foton",
|
||||||
"search_page_categories": "Kategorier",
|
"search_page_categories": "Kategorier",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Lägg till en titel",
|
"share_add_title": "Lägg till en titel",
|
||||||
"share_create_album": "Skapa album",
|
"share_create_album": "Skapa album",
|
||||||
"share_dialog_preparing": "Förbereder...",
|
"share_dialog_preparing": "Förbereder...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Bjuder in till album",
|
"share_invite": "Bjuder in till album",
|
||||||
"sharing_page_album": "Delade album",
|
"sharing_page_album": "Delade album",
|
||||||
"sharing_page_description": "Skapa delade album för att dela foton och video med personer i ditt nätverk.",
|
"sharing_page_description": "Skapa delade album för att dela foton och video med personer i ditt nätverk.",
|
||||||
"sharing_page_empty_list": "TOM LISTA",
|
"sharing_page_empty_list": "TOM LISTA",
|
||||||
"sharing_silver_appbar_create_shared_album": "Skapa delat album",
|
"sharing_silver_appbar_create_shared_album": "Skapa delat album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Dela med partner",
|
"sharing_silver_appbar_share_partner": "Dela med partner",
|
||||||
"tab_controller_nav_library": "Bibliotek",
|
"tab_controller_nav_library": "Bibliotek",
|
||||||
"tab_controller_nav_photos": "Bilder",
|
"tab_controller_nav_photos": "Bilder",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Trestegsladdning kan öka prestandan, men kan också leda till signifikant högre nätverksbelastning",
|
"theme_setting_three_stage_loading_subtitle": "Trestegsladdning kan öka prestandan, men kan också leda till signifikant högre nätverksbelastning",
|
||||||
"theme_setting_three_stage_loading_title": "Aktivera trestegsladdning",
|
"theme_setting_three_stage_loading_title": "Aktivera trestegsladdning",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hej vännen, det finns en ny version av",
|
"version_announcement_overlay_text_1": "Hej vännen, det finns en ny version av",
|
||||||
"version_announcement_overlay_text_2": ". Ta gärna din tid att besöka ",
|
"version_announcement_overlay_text_2": ". Ta gärna din tid att besöka ",
|
||||||
"version_announcement_overlay_text_3": " för att se till att din docker-compose och .env-fil är uppdaterad för att undvika felkonfiguration, speciellt om du använder WatchTower eller liknande mekanism som automatiskt uppdaterar din container",
|
"version_announcement_overlay_text_3": " för att se till att din docker-compose och .env-fil är uppdaterad för att undvika felkonfiguration, speciellt om du använder WatchTower eller liknande mekanism som automatiskt uppdaterar din container",
|
||||||
"version_announcement_overlay_title": "Ny serverversion är tillgänglig \uD83C\uDF89"
|
"version_announcement_overlay_title": "Ny serverversion är tillgänglig \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "อยู่ใน {album} อยู่แล้ว",
|
"add_to_album_bottom_sheet_already_exists": "อยู่ใน {album} อยู่แล้ว",
|
||||||
"advanced_settings_prefer_remote_subtitle": "อุปกรณ์บางเครื่องโหลดภาพขนาดย่อช้ามาก เปิดการตั้งค่านี้เพื่อโหลดรูปภาพจากรีโมทแทน",
|
"advanced_settings_prefer_remote_subtitle": "อุปกรณ์บางเครื่องโหลดภาพขนาดย่อช้ามาก เปิดการตั้งค่านี้เพื่อโหลดรูปภาพจากรีโมทแทน",
|
||||||
"advanced_settings_prefer_remote_title": "ให้ความสำคัญกับรูปภาพรีโมท",
|
"advanced_settings_prefer_remote_title": "ให้ความสำคัญกับรูปภาพรีโมท",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "ข้ามการตรวจสอบใบรับรอง SSL จำเป็นสำหรับใบรับรองแบบ self-signed",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "อนุญาตใบรับรอง SSL แบบ self-signed ",
|
||||||
"advanced_settings_tile_subtitle": "ตั้งค่าผู้ใช้งานขั้นสูง",
|
"advanced_settings_tile_subtitle": "ตั้งค่าผู้ใช้งานขั้นสูง",
|
||||||
"advanced_settings_tile_title": "ขั้นสูง",
|
"advanced_settings_tile_title": "ขั้นสูง",
|
||||||
"advanced_settings_troubleshooting_subtitle": "เปิดฟีเจอร์เพิ่มเติมเพื่อแก้ไขปัญหา",
|
"advanced_settings_troubleshooting_subtitle": "เปิดฟีเจอร์เพิ่มเติมเพื่อแก้ไขปัญหา",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "ลบออก",
|
"control_bottom_app_bar_delete": "ลบออก",
|
||||||
"control_bottom_app_bar_favorite": "รายการโปรด",
|
"control_bottom_app_bar_favorite": "รายการโปรด",
|
||||||
"control_bottom_app_bar_share": "แชร์",
|
"control_bottom_app_bar_share": "แชร์",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "นำออกจากที่เก็บถาวร",
|
"control_bottom_app_bar_unarchive": "นำออกจากที่เก็บถาวร",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "ไม่มีชื่อ",
|
"create_album_page_untitled": "ไม่มีชื่อ",
|
||||||
"create_shared_album_page_create": "Create",
|
"create_shared_album_page_create": "Create",
|
||||||
"create_shared_album_page_share": "แชร์",
|
"create_shared_album_page_share": "แชร์",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "ยกเลิก",
|
"delete_dialog_cancel": "ยกเลิก",
|
||||||
"delete_dialog_ok": "ลบออก",
|
"delete_dialog_ok": "ลบออก",
|
||||||
"delete_dialog_title": "ลบถาวร",
|
"delete_dialog_title": "ลบถาวร",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "เพื่มรายละเอียด...",
|
"description_input_hint_text": "เพื่มรายละเอียด...",
|
||||||
"description_input_submit_error": "อัพเดตรายละเอียดผิดพลาด ตรวจสอบ log เพื่อรายละเอียดเพิ่มเติม",
|
"description_input_submit_error": "อัพเดตรายละเอียดผิดพลาด ตรวจสอบ log เพื่อรายละเอียดเพิ่มเติม",
|
||||||
"exif_bottom_sheet_description": "เพิ่มคำอธิบาย",
|
"exif_bottom_sheet_description": "เพิ่มคำอธิบาย",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "สามารถอัพโหลดได้มากสุดครั้งละ 30 ทรัพยากร กำลังข้าม",
|
"home_page_upload_err_limit": "สามารถอัพโหลดได้มากสุดครั้งละ 30 ทรัพยากร กำลังข้าม",
|
||||||
"image_viewer_page_state_provider_download_error": "ดาวน์โหลดผิดพลาด",
|
"image_viewer_page_state_provider_download_error": "ดาวน์โหลดผิดพลาด",
|
||||||
"image_viewer_page_state_provider_download_success": "ดาวน์โหลดสำเร็จ",
|
"image_viewer_page_state_provider_download_success": "ดาวน์โหลดสำเร็จ",
|
||||||
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"library_page_albums": "Albums",
|
"library_page_albums": "Albums",
|
||||||
"library_page_archive": "เก็บถาวร",
|
"library_page_archive": "เก็บถาวร",
|
||||||
"library_page_device_albums": "อัลบั้มบนเครื่อง",
|
"library_page_device_albums": "อัลบั้มบนเครื่อง",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "อัลบั้มใหม่",
|
"library_page_new_album": "อัลบั้มใหม่",
|
||||||
"library_page_sharing": "การแชร์",
|
"library_page_sharing": "การแชร์",
|
||||||
"library_page_sort_created": "สร้างล่าสุด",
|
"library_page_sort_created": "สร้างล่าสุด",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "ชื่ออัลบั้ม",
|
"library_page_sort_title": "ชื่ออัลบั้ม",
|
||||||
"login_disabled": "ล็อกอินถูกปิด",
|
"login_disabled": "ล็อกอินถูกปิด",
|
||||||
"login_form_api_exception": "ข้อผิดพลาด API กรุณาตรวจสอบ URL แล้วลองใหม่",
|
"login_form_api_exception": "ข้อผิดพลาด API กรุณาตรวจสอบ URL แล้วลองใหม่",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "เกิดข้อผิดพลาดในการล็อกอินผ่าน OAuth ตรวจสอบ URL เซิร์ฟเวอร์",
|
"login_form_failed_get_oauth_server_config": "เกิดข้อผิดพลาดในการล็อกอินผ่าน OAuth ตรวจสอบ URL เซิร์ฟเวอร์",
|
||||||
"login_form_failed_get_oauth_server_disable": "ฟีเจอร์ OAuth ไม่สามารถใช้งานบนเซิร์ฟเวอร์นี้",
|
"login_form_failed_get_oauth_server_disable": "ฟีเจอร์ OAuth ไม่สามารถใช้งานบนเซิร์ฟเวอร์นี้",
|
||||||
"login_form_failed_login": "เกิดข้อผิดพลาดในการล็อกอิน โปรดตรวจสอบ URL ของเซิร์ฟเวอร์ อีเมล และรหัสผ่าน",
|
"login_form_failed_login": "เกิดข้อผิดพลาดในการล็อกอิน โปรดตรวจสอบ URL ของเซิร์ฟเวอร์ อีเมล และรหัสผ่าน",
|
||||||
|
"login_form_handshake_exception": "เกิดข้อผิดพลาดกระบวนการ Handshake กับเซิร์ฟเวอร์ ถ้ากำลังใช้ใบรับบรองแบบ self-signed กรุณาตั้งค่าอนุญาตใบรับรองแบบ self-signed",
|
||||||
"login_form_label_email": "อีเมล",
|
"login_form_label_email": "อีเมล",
|
||||||
"login_form_label_password": "รหัสผ่าน",
|
"login_form_label_password": "รหัสผ่าน",
|
||||||
"login_form_next_button": "ต่อไป",
|
"login_form_next_button": "ต่อไป",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "อยู่ในระบบต่อไป",
|
"login_form_save_login": "อยู่ในระบบต่อไป",
|
||||||
"login_form_server_empty": "กรอก URL เซิร์ฟเวอร์",
|
"login_form_server_empty": "กรอก URL เซิร์ฟเวอร์",
|
||||||
"login_form_server_error": "ไม่สามารถติดต่อกับเซิร์ฟเวอร์",
|
"login_form_server_error": "ไม่สามารถติดต่อกับเซิร์ฟเวอร์",
|
||||||
|
"login_password_changed_error": "เกิดข้อผิดพลาดขณะเปลี่ยนรหัสผ่าน",
|
||||||
|
"login_password_changed_success": "เปลี่ยนรหัสผ่านสำเร็จ",
|
||||||
|
"map_cannot_get_user_location": "ไม่สามารถหาตำแหน่งผู้ใช้งานได้",
|
||||||
|
"map_location_dialog_cancel": "ยกเลิก",
|
||||||
|
"map_location_dialog_yes": "ใช่",
|
||||||
|
"map_location_service_disabled_content": "ต้องเปิดตำแหน่งเพื่อแสดงทรัพยากรจากตำแหน่งปัจจุบัน เปิดตอนนี้?",
|
||||||
|
"map_location_service_disabled_title": "บริการตำแหน่งถูกปิด",
|
||||||
|
"map_no_assets_in_bounds": "ไม่มีรูปในบริเวณนี้",
|
||||||
|
"map_no_location_permission_content": "จำเป็นต้องมีสิทธิ์เข้าถึงตำแหน่งเพื่อแสดงทรัพยากรจากตำแหน่งปัจจุบัน อนุญาตตอนนี้?",
|
||||||
|
"map_no_location_permission_title": "สิทธิ์เข้าถึงตำแหน่งถูกปฏิเสธ",
|
||||||
|
"map_settings_dark_mode": "โหมดมืด",
|
||||||
|
"map_settings_dialog_cancel": "ยกเลิก",
|
||||||
|
"map_settings_dialog_save": "บันทึก",
|
||||||
|
"map_settings_dialog_title": "ตั้งค่าแผนที่",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "ช่วงวันที่",
|
||||||
|
"map_settings_only_show_favorites": "แสดงรายการโปรดเท่านั้น",
|
||||||
|
"map_zoom_to_see_photos": "ซูมออกเพื่อดูรูป",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "ภาพเคลื่อนไหว",
|
"motion_photos_page_title": "ภาพเคลื่อนไหว",
|
||||||
"notification_permission_dialog_cancel": "ยกเลิก",
|
"notification_permission_dialog_cancel": "ยกเลิก",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "ไคลเอนต์และเซิร์ฟเวอร์เป็นปัจจุบัน",
|
"profile_drawer_client_server_up_to_date": "ไคลเอนต์และเซิร์ฟเวอร์เป็นปัจจุบัน",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Settings",
|
||||||
"profile_drawer_sign_out": "ออกจากระบบ",
|
"profile_drawer_sign_out": "ออกจากระบบ",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "เพิ่มล่าสุด",
|
"recently_added_page_title": "เพิ่มล่าสุด",
|
||||||
"search_bar_hint": "ค้นหารูปภาพของคุณ",
|
"search_bar_hint": "ค้นหารูปภาพของคุณ",
|
||||||
"search_page_categories": "หมวดหมู่",
|
"search_page_categories": "หมวดหมู่",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "เพิ่มชื่อ",
|
"share_add_title": "เพิ่มชื่อ",
|
||||||
"share_create_album": "สร้างอัลบั้ม",
|
"share_create_album": "สร้างอัลบั้ม",
|
||||||
"share_dialog_preparing": "กำลังเตรียม...",
|
"share_dialog_preparing": "กำลังเตรียม...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "เชิญเข้าอัลบั้ม",
|
"share_invite": "เชิญเข้าอัลบั้ม",
|
||||||
"sharing_page_album": "อัลบั้มที่แชร์",
|
"sharing_page_album": "อัลบั้มที่แชร์",
|
||||||
"sharing_page_description": "สร้างอัลบั้มที่แชร์เพื่อแชร์รูปภาพและวิดีโอให้กับคนบนเครื่อข่ายคุณ",
|
"sharing_page_description": "สร้างอัลบั้มที่แชร์เพื่อแชร์รูปภาพและวิดีโอให้กับคนบนเครื่อข่ายคุณ",
|
||||||
"sharing_page_empty_list": "รายการว่างเปล่า",
|
"sharing_page_empty_list": "รายการว่างเปล่า",
|
||||||
"sharing_silver_appbar_create_shared_album": "สร้างอัลบั้มแชร์",
|
"sharing_silver_appbar_create_shared_album": "สร้างอัลบั้มแชร์",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "แชร์กับพันธมิตร",
|
"sharing_silver_appbar_share_partner": "แชร์กับพันธมิตร",
|
||||||
"tab_controller_nav_library": "Library",
|
"tab_controller_nav_library": "Library",
|
||||||
"tab_controller_nav_photos": "รูปภาพ",
|
"tab_controller_nav_photos": "รูปภาพ",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"translated_text_options": "ตัวเลือก",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "ยกเลิก",
|
"upload_dialog_cancel": "ยกเลิก",
|
||||||
"upload_dialog_info": "คุณต้องการอัพโหลดทรัพยากรดังกล่าวบนเซิร์ฟเวอร์หรือไม่?",
|
"upload_dialog_info": "คุณต้องการอัพโหลดทรัพยากรดังกล่าวบนเซิร์ฟเวอร์หรือไม่?",
|
||||||
"upload_dialog_ok": "อัปโหลด",
|
"upload_dialog_ok": "อัปโหลด",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
"version_announcement_overlay_title": "มีเวอร์ชั่นใหม่สำหรับเซิร์ฟเวอร์ \uD83C\uDF89"
|
"version_announcement_overlay_title": "มีเวอร์ชั่นใหม่สำหรับเซิร์ฟเวอร์ \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -1,234 +1,264 @@
|
||||||
{
|
{
|
||||||
"add_to_album_bottom_sheet_added": "Added to {album}",
|
"add_to_album_bottom_sheet_added": "Додати до {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Вже є в {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Деякі пристрої вельми повільно завантажують мініатюри із елементів на пристрої. Активуйте для завантаження віддалених мініатюр натомість.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Перевага віддаленим зображенням",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_self_signed_ssl_subtitle": "Пропускає SSL-сертифікат для точки доступу сервера. Потрібне для власноруч підписаних сертифікатів.",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_self_signed_ssl_title": "Дозволити власноруч підписані SSL-сертифікати",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_tile_subtitle": "Розширені користувацькі налаштування",
|
||||||
"advanced_settings_troubleshooting_title": "Troubleshooting",
|
"advanced_settings_tile_title": "Розширені",
|
||||||
"album_info_card_backup_album_excluded": "EXCLUDED",
|
"advanced_settings_troubleshooting_subtitle": "Увімкніть додаткові функції для усунення несправностей",
|
||||||
"album_info_card_backup_album_included": "INCLUDED",
|
"advanced_settings_troubleshooting_title": "Усунення несправностей",
|
||||||
"album_thumbnail_card_item": "1 item",
|
"album_info_card_backup_album_excluded": "ВИЛУЧЕНИЙ",
|
||||||
"album_thumbnail_card_items": "{} items",
|
"album_info_card_backup_album_included": "ВКЛЮЧЕНИЙ",
|
||||||
"album_thumbnail_card_shared": " · Shared",
|
"album_thumbnail_card_item": "1 елемент",
|
||||||
"album_thumbnail_owned": "Owned",
|
"album_thumbnail_card_items": "{} елементів",
|
||||||
"album_thumbnail_shared_by": "Shared by {}",
|
"album_thumbnail_card_shared": " · Спільний",
|
||||||
"album_viewer_appbar_share_delete": "Delete album",
|
"album_thumbnail_owned": "У власності",
|
||||||
"album_viewer_appbar_share_err_delete": "Failed to delete album",
|
"album_thumbnail_shared_by": "Опублікований {}",
|
||||||
"album_viewer_appbar_share_err_leave": "Failed to leave album",
|
"album_viewer_appbar_share_delete": "Видалити альбом",
|
||||||
"album_viewer_appbar_share_err_remove": "There are problems in removing assets from album",
|
"album_viewer_appbar_share_err_delete": "Не вдалося видалити альбом",
|
||||||
"album_viewer_appbar_share_err_title": "Failed to change album title",
|
"album_viewer_appbar_share_err_leave": "Не вдалося вийти з альбому",
|
||||||
"album_viewer_appbar_share_leave": "Leave album",
|
"album_viewer_appbar_share_err_remove": "Виникли проблеми з видаленням елементів з альбому",
|
||||||
"album_viewer_appbar_share_remove": "Remove from album",
|
"album_viewer_appbar_share_err_title": "Не вдалося змінити назву альбому",
|
||||||
"album_viewer_page_share_add_users": "Add users",
|
"album_viewer_appbar_share_leave": "Вийти з альбому",
|
||||||
"all_people_page_title": "People",
|
"album_viewer_appbar_share_remove": "Видалити з альбому",
|
||||||
"all_videos_page_title": "Videos",
|
"album_viewer_page_share_add_users": "Додати користувачів",
|
||||||
"archive_page_no_archived_assets": "No archived assets found",
|
"all_people_page_title": "Люди",
|
||||||
"archive_page_title": "Archive ({})",
|
"all_videos_page_title": "Відео",
|
||||||
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout",
|
"archive_page_no_archived_assets": "Немає архівних елементів",
|
||||||
"asset_list_layout_settings_group_automatically": "Automatic",
|
"archive_page_title": "Архів ({})",
|
||||||
"asset_list_layout_settings_group_by": "Group assets by",
|
"asset_list_layout_settings_dynamic_layout_title": "Динамічне компонування",
|
||||||
"asset_list_layout_settings_group_by_month": "Month",
|
"asset_list_layout_settings_group_automatically": "Автоматично",
|
||||||
"asset_list_layout_settings_group_by_month_day": "Month + day",
|
"asset_list_layout_settings_group_by": "Групувати елементи по",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_layout_settings_group_by_month": "Місяць",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_layout_settings_group_by_month_day": "Місяць + день",
|
||||||
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
"asset_list_settings_subtitle": "Налаштування компонування знімків",
|
||||||
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
"asset_list_settings_title": "Фото-сітка",
|
||||||
"backup_album_selection_page_assets_scatter": "Assets can scatter across multiple albums. Thus, albums can be included or excluded during the backup process.",
|
"backup_album_selection_page_albums_device": "Альбоми на пристрої ({})",
|
||||||
"backup_album_selection_page_select_albums": "Select albums",
|
"backup_album_selection_page_albums_tap": "Доторк — для включення, подвійний доторк — для вилучення ",
|
||||||
"backup_album_selection_page_selection_info": "Selection Info",
|
"backup_album_selection_page_assets_scatter": "Елементи можуть належати до кількох альбомів водночас. Таким чином, альбоми можуть бути включені або вилучені під час резервного копіювання.",
|
||||||
"backup_album_selection_page_total_assets": "Total unique assets",
|
"backup_album_selection_page_select_albums": "Оберіть альбоми",
|
||||||
"backup_all": "All",
|
"backup_album_selection_page_selection_info": "Інформація про обране",
|
||||||
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…",
|
"backup_album_selection_page_total_assets": "Загальна кількість унікальних елементів",
|
||||||
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…",
|
"backup_all": "Все",
|
||||||
"backup_background_service_current_upload_notification": "Uploading {}",
|
"backup_background_service_backup_failed_message": "Не вдалося зробити резервну копію елементів. Повторюю...",
|
||||||
"backup_background_service_default_notification": "Checking for new assets…",
|
"backup_background_service_connection_failed_message": "Не вдалося зв'язатися із сервером. Повторюю...",
|
||||||
"backup_background_service_error_title": "Backup error",
|
"backup_background_service_current_upload_notification": "Завантажується {}",
|
||||||
"backup_background_service_in_progress_notification": "Backing up your assets…",
|
"backup_background_service_default_notification": "Перевіряю наявність нових елементів…",
|
||||||
"backup_background_service_upload_failure_notification": "Failed to upload {}",
|
"backup_background_service_error_title": "Помилка резервного копіювання",
|
||||||
"backup_controller_page_albums": "Backup Albums",
|
"backup_background_service_in_progress_notification": "Резервне копіювання ваших елементів...",
|
||||||
"backup_controller_page_background_app_refresh_disabled_content": "Enable background app refresh in Settings > General > Background App Refresh in order to use background backup.",
|
"backup_background_service_upload_failure_notification": "Не вдалося завантажити {}",
|
||||||
"backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled",
|
"backup_controller_page_albums": "Резервне копіювання альбомів",
|
||||||
"backup_controller_page_background_app_refresh_enable_button_text": "Go to settings",
|
"backup_controller_page_background_app_refresh_disabled_content": "Для фонового резервного копіювання увімкніть фонове оновлення в меню \"Налаштування > Загальні > Фонове оновлення програми\".",
|
||||||
"backup_controller_page_background_battery_info_link": "Show me how",
|
"backup_controller_page_background_app_refresh_disabled_title": "Фонове оновлення програми вимкнене",
|
||||||
"backup_controller_page_background_battery_info_message": "For the best background backup experience, please disable any battery optimizations restricting background activity for Immich.\n\nSince this is device-specific, please lookup the required information for your device manufacturer.",
|
"backup_controller_page_background_app_refresh_enable_button_text": "Перейдіть до налаштувань",
|
||||||
"backup_controller_page_background_battery_info_ok": "OK",
|
"backup_controller_page_background_battery_info_link": "Покажіть мені як",
|
||||||
"backup_controller_page_background_battery_info_title": "Battery optimizations",
|
"backup_controller_page_background_battery_info_message": "Для найкращого фонового резервного копіювання вимкніть будь-яку оптимізацію акумулятора, яка обмежує фонову активність для Immich.\n\nСпосіб залежить від конкретного пристрою, тому шукайте необхідну інформацію у виробника вашого пристрою.",
|
||||||
"backup_controller_page_background_charging": "Only while charging",
|
"backup_controller_page_background_battery_info_ok": "ОК",
|
||||||
"backup_controller_page_background_configure_error": "Failed to configure the background service",
|
"backup_controller_page_background_battery_info_title": "Оптимізації акамулятора",
|
||||||
"backup_controller_page_background_delay": "Delay new assets backup: {}",
|
"backup_controller_page_background_charging": "Лише під час заряджання",
|
||||||
"backup_controller_page_background_description": "Turn on the background service to automatically backup any new assets without needing to open the app",
|
"backup_controller_page_background_configure_error": "Не вдалося налаштувати фоновий сервіс",
|
||||||
"backup_controller_page_background_is_off": "Automatic background backup is off",
|
"backup_controller_page_background_delay": "Затримка перед резервним копіюванням нових елементів: {}",
|
||||||
"backup_controller_page_background_is_on": "Automatic background backup is on",
|
"backup_controller_page_background_description": "Увімкніть фонову службу, щоб автоматично створювати резервні копії будь-яких нових елементів без необхідності відкривати програму",
|
||||||
"backup_controller_page_background_turn_off": "Turn off background service",
|
"backup_controller_page_background_is_off": "Автоматичне фонове резервне копіювання вимкнено",
|
||||||
"backup_controller_page_background_turn_on": "Turn on background service",
|
"backup_controller_page_background_is_on": "Автоматичне фонове резервне копіювання ввімкнено",
|
||||||
"backup_controller_page_background_wifi": "Only on WiFi",
|
"backup_controller_page_background_turn_off": "Вимкнути фоновий сервіс",
|
||||||
"backup_controller_page_backup": "Backup",
|
"backup_controller_page_background_turn_on": "Увімкнути фоновий сервіс",
|
||||||
"backup_controller_page_backup_selected": "Selected: ",
|
"backup_controller_page_background_wifi": "Лише на WiFi",
|
||||||
"backup_controller_page_backup_sub": "Backed up photos and videos",
|
"backup_controller_page_backup": "Резервне копіювання",
|
||||||
"backup_controller_page_cancel": "Cancel",
|
"backup_controller_page_backup_selected": "Обрано:",
|
||||||
"backup_controller_page_created": "Created on: {}",
|
"backup_controller_page_backup_sub": "Резервні копії знімків та відео",
|
||||||
"backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.",
|
"backup_controller_page_cancel": "Скасувати",
|
||||||
"backup_controller_page_excluded": "Excluded: ",
|
"backup_controller_page_created": "Створено: {}",
|
||||||
"backup_controller_page_failed": "Failed ({})",
|
"backup_controller_page_desc_backup": "Увімкніть резервне копіювання на передньому плані, щоб автоматично завантажувати нові елементи на сервер під час відкриття програми.",
|
||||||
"backup_controller_page_filename": "File name: {} [{}]",
|
"backup_controller_page_excluded": "Вилучено:",
|
||||||
|
"backup_controller_page_failed": "Невдалі ({})",
|
||||||
|
"backup_controller_page_filename": "Назва файлу: {} [{}]",
|
||||||
"backup_controller_page_id": "ID: {}",
|
"backup_controller_page_id": "ID: {}",
|
||||||
"backup_controller_page_info": "Backup Information",
|
"backup_controller_page_info": "Інформація про резервну копію",
|
||||||
"backup_controller_page_none_selected": "None selected",
|
"backup_controller_page_none_selected": "Нічого не обрано",
|
||||||
"backup_controller_page_remainder": "Remainder",
|
"backup_controller_page_remainder": "Залишок",
|
||||||
"backup_controller_page_remainder_sub": "Remaining photos and videos to back up from selection",
|
"backup_controller_page_remainder_sub": "Решта знімків та відео для резервного копіювання з вибраних",
|
||||||
"backup_controller_page_select": "Select",
|
"backup_controller_page_select": "Вибрати",
|
||||||
"backup_controller_page_server_storage": "Server Storage",
|
"backup_controller_page_server_storage": "Сховище сервера",
|
||||||
"backup_controller_page_start_backup": "Start Backup",
|
"backup_controller_page_start_backup": "Почати Резервне Копіювання",
|
||||||
"backup_controller_page_status_off": "Automatic foreground backup is off",
|
"backup_controller_page_status_off": "Автоматичне резервне копіювання в активному режимі вимкнено",
|
||||||
"backup_controller_page_status_on": "Automatic foreground backup is on",
|
"backup_controller_page_status_on": "Автоматичне резервне копіювання в активному режимі ввімкнено",
|
||||||
"backup_controller_page_storage_format": "{} of {} used",
|
"backup_controller_page_storage_format": "{} із {} спожито",
|
||||||
"backup_controller_page_to_backup": "Albums to be backup",
|
"backup_controller_page_to_backup": "Альбоми до резервного копіювання",
|
||||||
"backup_controller_page_total": "Total",
|
"backup_controller_page_total": "Загалом",
|
||||||
"backup_controller_page_total_sub": "All unique photos and videos from selected albums",
|
"backup_controller_page_total_sub": "Усі унікальні знімки та відео з вибраних альбомів",
|
||||||
"backup_controller_page_turn_off": "Turn off foreground backup",
|
"backup_controller_page_turn_off": "Вимкнути резервне копіювання в активному режимі",
|
||||||
"backup_controller_page_turn_on": "Turn on foreground backup",
|
"backup_controller_page_turn_on": "Увімкнути резервне копіювання в активному режимі",
|
||||||
"backup_controller_page_uploading_file_info": "Uploading file info",
|
"backup_controller_page_uploading_file_info": "Завантажую інформацію про файл",
|
||||||
"backup_err_only_album": "Cannot remove the only album",
|
"backup_err_only_album": "Не можу видалити єдиний альбом",
|
||||||
"backup_info_card_assets": "assets",
|
"backup_info_card_assets": "елементи",
|
||||||
"backup_manual_cancelled": "Cancelled",
|
"backup_manual_cancelled": "Скасовано",
|
||||||
"backup_manual_failed": "Failed",
|
"backup_manual_failed": "Невдача",
|
||||||
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
|
"backup_manual_in_progress": "Завантаження вже відбувається. Спробуйте згодом",
|
||||||
"backup_manual_success": "Success",
|
"backup_manual_success": "Успіх",
|
||||||
"backup_manual_title": "Upload status",
|
"backup_manual_title": "Стан завантаження",
|
||||||
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)",
|
"cache_settings_album_thumbnails": "Мініатюри сторінок бібліотеки ({} елементи)",
|
||||||
"cache_settings_clear_cache_button": "Clear cache",
|
"cache_settings_clear_cache_button": "Очистити кеш",
|
||||||
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
|
"cache_settings_clear_cache_button_title": "Очищає кеш програми. Це суттєво знизить продуктивність програми, доки кеш не буде перебудовано.",
|
||||||
"cache_settings_image_cache_size": "Image cache size ({} assets)",
|
"cache_settings_image_cache_size": "Розмір кешованих зображень ({} елементи)",
|
||||||
"cache_settings_statistics_album": "Library thumbnails",
|
"cache_settings_statistics_album": "Бібліотечні мініатюри",
|
||||||
"cache_settings_statistics_assets": "{} assets ({})",
|
"cache_settings_statistics_assets": "{} елементи ({})",
|
||||||
"cache_settings_statistics_full": "Full images",
|
"cache_settings_statistics_full": "Повнорзомірні зображення",
|
||||||
"cache_settings_statistics_shared": "Shared album thumbnails",
|
"cache_settings_statistics_shared": "Мініатюри спільних альбомів",
|
||||||
"cache_settings_statistics_thumbnail": "Thumbnails",
|
"cache_settings_statistics_thumbnail": "Мініатюри",
|
||||||
"cache_settings_statistics_title": "Cache usage",
|
"cache_settings_statistics_title": "Використання кешу",
|
||||||
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application",
|
"cache_settings_subtitle": "Контролює кешування у мобільному застосунку",
|
||||||
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)",
|
"cache_settings_thumbnail_size": "Розмір кешованих мініатюр ({} елементи)",
|
||||||
"cache_settings_title": "Caching Settings",
|
"cache_settings_title": "Налаштування Кешування",
|
||||||
"change_password_form_confirm_password": "Confirm Password",
|
"change_password_form_confirm_password": "Підтвердити пароль",
|
||||||
"change_password_form_description": "Hi {firstName} {lastName},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.",
|
"change_password_form_description": "Привіт {firstName} {lastName},\n\nВи або або вперше входите у систему, або було зроблено запит на зміну вашого пароля. \nВведіть ваш новий пароль.",
|
||||||
"change_password_form_new_password": "New Password",
|
"change_password_form_new_password": "Новий Пароль",
|
||||||
"change_password_form_password_mismatch": "Passwords do not match",
|
"change_password_form_password_mismatch": "Паролі не співпадають",
|
||||||
"change_password_form_reenter_new_password": "Re-enter New Password",
|
"change_password_form_reenter_new_password": "Повторіть Новий Пароль",
|
||||||
"common_add_to_album": "Add to album",
|
"common_add_to_album": "Додати в альбом",
|
||||||
"common_change_password": "Change Password",
|
"common_change_password": "Змінити Пароль",
|
||||||
"common_create_new_album": "Create new album",
|
"common_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": "Будь ласка, перевірте з'єднання, переконайтеся, що сервер доступний і версія програми/сервера сумісна.",
|
||||||
"common_shared": "Shared",
|
"common_shared": "Спільні",
|
||||||
"control_bottom_app_bar_add_to_album": "Add to album",
|
"control_bottom_app_bar_add_to_album": "Додати у альбом",
|
||||||
"control_bottom_app_bar_album_info": "{} items",
|
"control_bottom_app_bar_album_info": "{} елементи",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} items · Shared",
|
"control_bottom_app_bar_album_info_shared": "{} елементи · Спільні",
|
||||||
"control_bottom_app_bar_archive": "Archive",
|
"control_bottom_app_bar_archive": "Архівувати",
|
||||||
"control_bottom_app_bar_create_new_album": "Create new album",
|
"control_bottom_app_bar_create_new_album": "Створити новий альбом",
|
||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Видалити",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Уподобати",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Поділитися",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
"create_album_page_untitled": "Untitled",
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"create_shared_album_page_create": "Create",
|
"control_bottom_app_bar_unarchive": "Розархівувати",
|
||||||
"create_shared_album_page_share": "Share",
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_shared_album_page_share_add_assets": "ADD ASSETS",
|
"create_album_page_untitled": "Без назви",
|
||||||
"create_shared_album_page_share_select_photos": "Select Photos",
|
"create_shared_album_page_create": "Створити",
|
||||||
"curated_location_page_title": "Places",
|
"create_shared_album_page_share": "Поділитися",
|
||||||
"curated_object_page_title": "Things",
|
"create_shared_album_page_share_add_assets": "ДОДАТИ ЕЛЕМЕНТИ",
|
||||||
|
"create_shared_album_page_share_select_photos": "Вибрати Знімки",
|
||||||
|
"curated_location_page_title": "Місця",
|
||||||
|
"curated_object_page_title": "Речі",
|
||||||
"daily_title_text_date": "E, MMM dd",
|
"daily_title_text_date": "E, MMM dd",
|
||||||
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
"daily_title_text_date_year": "E, MMM dd, yyyy",
|
||||||
"date_format": "E, LLL d, y • h:mm a",
|
"date_format": "E, LLL d, y • h:mm a",
|
||||||
"delete_dialog_alert": "These items will be permanently deleted from Immich and from your device",
|
"delete_dialog_alert": "Ці елементи будуть остаточно видалені з Immich та вашого пристрою",
|
||||||
"delete_dialog_cancel": "Cancel",
|
"delete_dialog_cancel": "Скасувати",
|
||||||
"delete_dialog_ok": "Delete",
|
"delete_dialog_ok": "Видалити",
|
||||||
"delete_dialog_title": "Delete Permanently",
|
"delete_dialog_title": "Видалити остаточно",
|
||||||
"description_input_hint_text": "Add description...",
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"exif_bottom_sheet_description": "Add Description...",
|
"description_input_hint_text": "Додати опис...",
|
||||||
"exif_bottom_sheet_details": "DETAILS",
|
"description_input_submit_error": "Помилка оновлення опису, перевірте логи для подробиць",
|
||||||
"exif_bottom_sheet_location": "LOCATION",
|
"exif_bottom_sheet_description": "Додати опис...",
|
||||||
"experimental_settings_new_asset_list_subtitle": "Work in progress",
|
"exif_bottom_sheet_details": "ПОДРОБИЦІ",
|
||||||
"experimental_settings_new_asset_list_title": "Enable experimental photo grid",
|
"exif_bottom_sheet_location": "МІСЦЕ",
|
||||||
"experimental_settings_subtitle": "Use at your own risk!",
|
"experimental_settings_new_asset_list_subtitle": "В розробці",
|
||||||
"experimental_settings_title": "Experimental",
|
"experimental_settings_new_asset_list_title": "Експериментальний макет знімків",
|
||||||
"favorites_page_no_favorites": "No favorite assets found",
|
"experimental_settings_subtitle": "На власний ризик!",
|
||||||
"favorites_page_title": "Favorites",
|
"experimental_settings_title": "Експериментальні",
|
||||||
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
|
"favorites_page_no_favorites": "Немає улюблених елементів",
|
||||||
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
|
"favorites_page_title": "Улюблені",
|
||||||
"home_page_add_to_album_success": "Added {added} assets to album {album}.",
|
"home_page_add_to_album_conflicts": "Додано {added} елементів у альбом {album}. {failed} елементів вже було в альбомі.",
|
||||||
"home_page_archive_err_local": "Can not archive local assets yet, skipping",
|
"home_page_add_to_album_err_local": "Неможливо додати локальні елементи до альбомів, пропущено",
|
||||||
"home_page_building_timeline": "Building the timeline",
|
"home_page_add_to_album_success": "Додано {added} елементів у альбом {album}.",
|
||||||
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping",
|
"home_page_archive_err_local": "Поки що неможливо заархівувати локальні елементи, пропущено",
|
||||||
"home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).",
|
"home_page_building_timeline": "Побудова хронології",
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_favorite_err_local": "Неможливо отримати улюблені локальні елементи, пропущено",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"home_page_first_time_notice": "Якщо ви вперше користуєтеся програмою, переконайтеся, що ви вибрали альбоми для резервування, щоб могти заповнювати хронологію знімків та відео в альбомах.",
|
||||||
"image_viewer_page_state_provider_download_success": "Download Success",
|
"home_page_upload_err_limit": "Можна вантажити не більше 30 елементів водночас, пропущено",
|
||||||
"library_page_albums": "Albums",
|
"image_viewer_page_state_provider_download_error": "Помилка завантаження",
|
||||||
"library_page_archive": "Archive",
|
"image_viewer_page_state_provider_download_success": "Усіпшно завантажено",
|
||||||
"library_page_device_albums": "Albums on Device",
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"library_page_favorites": "Favorites",
|
"library_page_albums": "Альбоми",
|
||||||
"library_page_new_album": "New album",
|
"library_page_archive": "Архів",
|
||||||
"library_page_sharing": "Sharing",
|
"library_page_device_albums": "Альбоми на Пристрої",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_favorites": "Улюблені",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_new_album": "Новий альбом",
|
||||||
"login_disabled": "Login has been disabled",
|
"library_page_sharing": "Спільні",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"library_page_sort_created": "Нещодавно створені",
|
||||||
"login_form_button_text": "Login",
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
|
"library_page_sort_title": "Назва альбому",
|
||||||
|
"login_disabled": "Авторизація була відключена",
|
||||||
|
"login_form_api_exception": "Помилка API. Перевірте адресу сервера і спробуйте знову",
|
||||||
|
"login_form_button_text": "Увійти",
|
||||||
"login_form_email_hint": "youremail@email.com",
|
"login_form_email_hint": "youremail@email.com",
|
||||||
"login_form_endpoint_hint": "http://your-server-ip:port/api",
|
"login_form_endpoint_hint": "http://your-server-ip:port/api",
|
||||||
"login_form_endpoint_url": "Server Endpoint URL",
|
"login_form_endpoint_url": "Адреса точки досупу на сервері",
|
||||||
"login_form_err_http": "Please specify http:// or https://",
|
"login_form_err_http": "Вкажіть http:// або https://",
|
||||||
"login_form_err_invalid_email": "Invalid Email",
|
"login_form_err_invalid_email": "Хибний імейл",
|
||||||
"login_form_err_invalid_url": "Invalid URL",
|
"login_form_err_invalid_url": "Хибний URL",
|
||||||
"login_form_err_leading_whitespace": "Leading whitespace",
|
"login_form_err_leading_whitespace": "Пробіл на початку",
|
||||||
"login_form_err_trailing_whitespace": "Trailing whitespace",
|
"login_form_err_trailing_whitespace": "Пробіл в кінці",
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Помилка входу через OAuth, перевірте адресу сервера\n",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "OAuth недоступний на цьому сервері\n",
|
||||||
"login_form_failed_login": "Error logging you in, check server URL, email and password",
|
"login_form_failed_login": "Помилка входу, перевірте URL-адресу сервера, електронну пошту та пароль",
|
||||||
"login_form_label_email": "Email",
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_password": "Password",
|
"login_form_label_email": "Електронна пошта",
|
||||||
"login_form_next_button": "Next",
|
"login_form_label_password": "Пароль",
|
||||||
"login_form_password_hint": "password",
|
"login_form_next_button": "Далі",
|
||||||
"login_form_save_login": "Stay logged in",
|
"login_form_password_hint": "пароль",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_save_login": "Запам'ятати вхід",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_empty": "Введіть URL-адресу сервера.",
|
||||||
|
"login_form_server_error": "Неможливо з'єднатися із сервером",
|
||||||
|
"login_password_changed_error": "Помилка у оновлені вашого пароля",
|
||||||
|
"login_password_changed_success": "Пароль оновлено успішно",
|
||||||
|
"map_cannot_get_user_location": "Не можу отримати місцеперебування",
|
||||||
|
"map_location_dialog_cancel": "Скасувати",
|
||||||
|
"map_location_dialog_yes": "Так",
|
||||||
|
"map_location_service_disabled_content": "Служба локації має бути ввімкненою, щоб відображати елементи з вашого поточного місцеперебування. Увімкнути її зараз?",
|
||||||
|
"map_location_service_disabled_title": "Служба місцеперебування вимкнена",
|
||||||
|
"map_no_assets_in_bounds": "Немає знімків із цього місця",
|
||||||
|
"map_no_location_permission_content": "Потрібен дозвіл, аби показувати елементи із поточного місцеперебування. Надати його зараз?",
|
||||||
|
"map_no_location_permission_title": "Помилка доступу до місцеперебування",
|
||||||
|
"map_settings_dark_mode": "Темний режим",
|
||||||
|
"map_settings_dialog_cancel": "Скасувати",
|
||||||
|
"map_settings_dialog_save": "Зберегти",
|
||||||
|
"map_settings_dialog_title": "Налаштування мапи",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Діапазон дат",
|
||||||
|
"map_settings_only_show_favorites": "Лише улюбені",
|
||||||
|
"map_zoom_to_see_photos": "Зменшіть, аби переглянути знімки",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Рухомі Знімки",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Скасувати",
|
||||||
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
|
"notification_permission_dialog_content": "Щоб увімкнути сповіщення, перейдіть до Налаштувань і надайте дозвіл.",
|
||||||
"notification_permission_dialog_settings": "Settings",
|
"notification_permission_dialog_settings": "Налаштування",
|
||||||
"notification_permission_list_tile_content": "Grant permission to enable notifications.",
|
"notification_permission_list_tile_content": "Надати дозвіл для сповіщень.",
|
||||||
"notification_permission_list_tile_enable_button": "Enable Notifications",
|
"notification_permission_list_tile_enable_button": "Увімкнути Сповіщення",
|
||||||
"notification_permission_list_tile_title": "Notification Permission",
|
"notification_permission_list_tile_title": "Дозвіл на Сповіщення",
|
||||||
"partner_page_add_partner": "Add partner",
|
"partner_page_add_partner": "Додати партнера",
|
||||||
"partner_page_empty_message": "Your photos are not yet shared with any partner.",
|
"partner_page_empty_message": "Ваші знімки поки що не доступні жодному партнеру.",
|
||||||
"partner_page_no_more_users": "No more users to add",
|
"partner_page_no_more_users": "Більше немає кого додати",
|
||||||
"partner_page_partner_add_failed": "Failed to add partner",
|
"partner_page_partner_add_failed": "Не вдалося додати партнера",
|
||||||
"partner_page_select_partner": "Select partner",
|
"partner_page_select_partner": "Обрати партнера",
|
||||||
"partner_page_shared_to_title": "Shared to",
|
"partner_page_shared_to_title": "Спільне із ",
|
||||||
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.",
|
"partner_page_stop_sharing_content": "{} втратить доступ до ваших знімків.",
|
||||||
"partner_page_stop_sharing_title": "Stop sharing your photos?",
|
"partner_page_stop_sharing_title": "Припинити надання ваших знімків?",
|
||||||
"partner_page_title": "Partner",
|
"partner_page_title": "Партнер",
|
||||||
"permission_onboarding_continue_anyway": "Continue anyway",
|
"permission_onboarding_continue_anyway": "Все одно продовжити",
|
||||||
"permission_onboarding_get_started": "Get started",
|
"permission_onboarding_get_started": "Розпочати",
|
||||||
"permission_onboarding_go_to_settings": "Go to settings",
|
"permission_onboarding_go_to_settings": "Перейти до налаштувань",
|
||||||
"permission_onboarding_grant_permission": "Grant permission",
|
"permission_onboarding_grant_permission": "Надати дозвіл",
|
||||||
"permission_onboarding_log_out": "Log out",
|
"permission_onboarding_log_out": "Вийти",
|
||||||
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.",
|
"permission_onboarding_permission_denied": "Доступ заборонено. Аби користуватися Immich, надайте доступ до знімків та відео у Налаштуваннях.",
|
||||||
"permission_onboarding_permission_granted": "Permission granted! You are all set.",
|
"permission_onboarding_permission_granted": "Доступ надано! Все готово.",
|
||||||
"permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.",
|
"permission_onboarding_permission_limited": "Обмежений доступ. Аби дозволити Immich резервне копіювання та керування вашою галереєю, надайте доступ до знімків та відео у Налаштуваннях",
|
||||||
"permission_onboarding_request": "Immich requires permission to view your photos and videos.",
|
"permission_onboarding_request": "Immich потребує доступу до ваших знімків та відео.",
|
||||||
"profile_drawer_app_logs": "Logs",
|
"profile_drawer_app_logs": "Журнал",
|
||||||
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
"profile_drawer_client_server_up_to_date": "Клієнт та Сервер — актуальні",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Налаштування",
|
||||||
"profile_drawer_sign_out": "Sign Out",
|
"profile_drawer_sign_out": "Вийти",
|
||||||
"recently_added_page_title": "Recently Added",
|
"profile_drawer_trash": "Trash",
|
||||||
"search_bar_hint": "Search your photos",
|
"recently_added_page_title": "Нещодавні",
|
||||||
"search_page_categories": "Categories",
|
"search_bar_hint": "Шукати ваші знімки",
|
||||||
"search_page_favorites": "Favorites",
|
"search_page_categories": "Категорії",
|
||||||
"search_page_motion_photos": "Motion Photos",
|
"search_page_favorites": "Улюблені",
|
||||||
"search_page_no_objects": "No Objects Info Available",
|
"search_page_motion_photos": "Рухомі Знімки",
|
||||||
|
"search_page_no_objects": "Немає інформації про об'єкти",
|
||||||
"search_page_no_places": "No Places Info Available",
|
"search_page_no_places": "No Places Info Available",
|
||||||
"search_page_people": "People",
|
"search_page_people": "People",
|
||||||
"search_page_places": "Places",
|
"search_page_places": "Places",
|
||||||
|
@ -243,62 +273,94 @@
|
||||||
"search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ",
|
"search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ",
|
||||||
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
"search_suggestion_list_smart_search_hint_2": "m:your-search-term",
|
||||||
"select_additional_user_for_sharing_page_suggestions": "Suggestions",
|
"select_additional_user_for_sharing_page_suggestions": "Suggestions",
|
||||||
"select_user_for_sharing_page_err_album": "Failed to create album",
|
"select_user_for_sharing_page_err_album": "Не вдалося створити альбом",
|
||||||
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
"select_user_for_sharing_page_share_suggestions": "Suggestions",
|
||||||
"server_info_box_app_version": "App Version",
|
"server_info_box_app_version": "App Version",
|
||||||
"server_info_box_server_version": "Server Version",
|
"server_info_box_server_version": "Server Version",
|
||||||
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
|
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).",
|
||||||
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).",
|
||||||
"setting_image_viewer_original_title": "Load original image",
|
"setting_image_viewer_original_title": "Завантажити оригінальне зображення",
|
||||||
"setting_image_viewer_preview_subtitle": "Enable to load a medium-resolution image. Disable to either directly load the original or only use the thumbnail.",
|
"setting_image_viewer_preview_subtitle": "Увімкніть для завантаження зображення середньої роздільної здатності. Вимкніть або для можливості безпосереднього завантаження оригіналу, або для використання лише мініатюр.",
|
||||||
"setting_image_viewer_preview_title": "Load preview image",
|
"setting_image_viewer_preview_title": "Завантажити попередній перегляд зображення",
|
||||||
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
|
"setting_notifications_notify_failures_grace_period": "Повідомити про помилки фонового резервного копіювання: {}",
|
||||||
"setting_notifications_notify_hours": "{} hours",
|
"setting_notifications_notify_hours": "{} годин",
|
||||||
"setting_notifications_notify_immediately": "immediately",
|
"setting_notifications_notify_immediately": "негайно",
|
||||||
"setting_notifications_notify_minutes": "{} minutes",
|
"setting_notifications_notify_minutes": "{} хвилин",
|
||||||
"setting_notifications_notify_never": "never",
|
"setting_notifications_notify_never": "ніколи",
|
||||||
"setting_notifications_notify_seconds": "{} seconds",
|
"setting_notifications_notify_seconds": "{} секунд",
|
||||||
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset",
|
"setting_notifications_single_progress_subtitle": "Детальна інформація про хід завантаження для кожного елементу",
|
||||||
"setting_notifications_single_progress_title": "Show background backup detail progress",
|
"setting_notifications_single_progress_title": "Показати хід фонового резервного копіювання",
|
||||||
"setting_notifications_subtitle": "Adjust your notification preferences",
|
"setting_notifications_subtitle": "Налаштуйте свої параметри сповіщень",
|
||||||
"setting_notifications_title": "Notifications",
|
"setting_notifications_title": "Сповіщення",
|
||||||
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
|
"setting_notifications_total_progress_subtitle": "Загальний прогрес (готово/загалом)",
|
||||||
"setting_notifications_total_progress_title": "Show background backup total progress",
|
"setting_notifications_total_progress_title": "Показати загальний хід фонового резервного копіювання",
|
||||||
"setting_pages_app_bar_settings": "Settings",
|
"setting_pages_app_bar_settings": "Налаштування",
|
||||||
"settings_require_restart": "Please restart Immich to apply this setting",
|
"settings_require_restart": "Перезавантажте програму для застосування цього налаштування",
|
||||||
"share_add": "Add",
|
"share_add": "Додати",
|
||||||
"share_add_photos": "Add photos",
|
"share_add_photos": "Додати знімки",
|
||||||
"share_add_title": "Add a title",
|
"share_add_title": "Додати назву",
|
||||||
"share_create_album": "Create album",
|
"share_create_album": "Створити альбом",
|
||||||
"share_dialog_preparing": "Preparing...",
|
"share_dialog_preparing": "Підготовка...",
|
||||||
"share_invite": "Invite to album",
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
"sharing_page_album": "Shared albums",
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
"sharing_page_empty_list": "EMPTY LIST",
|
"shared_link_create_submit_button": "Create link",
|
||||||
"sharing_silver_appbar_create_shared_album": "Create shared album",
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
"sharing_silver_appbar_share_partner": "Share with partner",
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
"tab_controller_nav_library": "Library",
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
"tab_controller_nav_photos": "Photos",
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
"tab_controller_nav_search": "Search",
|
"shared_link_edit_description": "Description",
|
||||||
"tab_controller_nav_sharing": "Sharing",
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"shared_link_edit_submit_button": "Update link",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"shared_link_empty": "You don't have any shared links",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"share_done": "Done",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"share_invite": "Запросити в альбом",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"sharing_page_album": "Спільні альбоми",
|
||||||
"theme_setting_theme_title": "Theme",
|
"sharing_page_description": "Створюйте спільні альбоми, щоб ділитися знімками та відео з людьми у вашій мережі.",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
"sharing_page_empty_list": "ПОРОЖНІЙ СПИСОК",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"sharing_silver_appbar_create_shared_album": "Створити спільний альбом",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"sharing_silver_appbar_share_partner": "Поділитися з партнером",
|
||||||
"upload_dialog_ok": "Upload",
|
"tab_controller_nav_library": "Бібліотека",
|
||||||
"upload_dialog_title": "Upload Asset",
|
"tab_controller_nav_photos": "Знімки",
|
||||||
"version_announcement_overlay_ack": "Acknowledge",
|
"tab_controller_nav_search": "Пошук",
|
||||||
"version_announcement_overlay_release_notes": "release notes",
|
"tab_controller_nav_sharing": "Спільні",
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"theme_setting_asset_list_storage_indicator_title": "Показувати піктограму сховища на плитках елементів",
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"theme_setting_asset_list_tiles_per_row_title": "Кількість елементів у рядку ({})",
|
||||||
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
"theme_setting_dark_mode_switch": "Темна тема",
|
||||||
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89"
|
"theme_setting_image_viewer_quality_subtitle": "Налаштувати якість перегляду повних зображень",
|
||||||
|
"theme_setting_image_viewer_quality_title": "Якість перегляду зображень",
|
||||||
|
"theme_setting_system_theme_switch": "Автоматично (як система)",
|
||||||
|
"theme_setting_theme_subtitle": "Виберіть налаштування теми програми",
|
||||||
|
"theme_setting_theme_title": "Тема",
|
||||||
|
"theme_setting_three_stage_loading_subtitle": "Триетапне завантаження може підвищити продуктивність завантаження, але спричинить значно більше навантаження на мережу",
|
||||||
|
"theme_setting_three_stage_loading_title": "Увімкнути триетапне завантаження",
|
||||||
|
"translated_text_options": "Налаштування",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
|
"upload_dialog_cancel": "Скасувати",
|
||||||
|
"upload_dialog_info": "Бажаєте створити резервну копію вибраних елементів на сервері?",
|
||||||
|
"upload_dialog_ok": "Завантажити",
|
||||||
|
"upload_dialog_title": "Завантажити Елементи",
|
||||||
|
"version_announcement_overlay_ack": "Прийняти",
|
||||||
|
"version_announcement_overlay_release_notes": "примітки до випуску",
|
||||||
|
"version_announcement_overlay_text_1": "Вітаємо, є новий випуск ",
|
||||||
|
"version_announcement_overlay_text_2": "знайдіть хвильку навідатися на ",
|
||||||
|
"version_announcement_overlay_text_3": "і переконайтеся, що ваші налаштування docker-compose та .env оновлені, аби запобігти будь-якій неправильній конфігурації, особливо, якщо ви використовуєте WatchTower або інший механізм, для автоматичних оновлень вашої серверної частини.",
|
||||||
|
"version_announcement_overlay_title": "Доступна нова версія сервера \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Already in {album}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
|
||||||
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
"advanced_settings_prefer_remote_title": "Prefer remote images",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
|
||||||
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
"advanced_settings_tile_subtitle": "Advanced user's settings",
|
||||||
"advanced_settings_tile_title": "Advanced",
|
"advanced_settings_tile_title": "Advanced",
|
||||||
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "Delete",
|
"control_bottom_app_bar_delete": "Delete",
|
||||||
"control_bottom_app_bar_favorite": "Favorite",
|
"control_bottom_app_bar_favorite": "Favorite",
|
||||||
"control_bottom_app_bar_share": "Share",
|
"control_bottom_app_bar_share": "Share",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "Unarchive",
|
"control_bottom_app_bar_unarchive": "Unarchive",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "Untitled",
|
"create_album_page_untitled": "Untitled",
|
||||||
"create_shared_album_page_create": "Create",
|
"create_shared_album_page_create": "Create",
|
||||||
"create_shared_album_page_share": "Share",
|
"create_shared_album_page_share": "Share",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "Cancel",
|
"delete_dialog_cancel": "Cancel",
|
||||||
"delete_dialog_ok": "Delete",
|
"delete_dialog_ok": "Delete",
|
||||||
"delete_dialog_title": "Delete Permanently",
|
"delete_dialog_title": "Delete Permanently",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "Add description...",
|
"description_input_hint_text": "Add description...",
|
||||||
"description_input_submit_error": "Error updating description, check the log for more details",
|
"description_input_submit_error": "Error updating description, check the log for more details",
|
||||||
"exif_bottom_sheet_description": "Add Description...",
|
"exif_bottom_sheet_description": "Add Description...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping",
|
||||||
"image_viewer_page_state_provider_download_error": "Download Error",
|
"image_viewer_page_state_provider_download_error": "Download Error",
|
||||||
"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",
|
||||||
"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",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "New album",
|
"library_page_new_album": "New album",
|
||||||
"library_page_sharing": "Sharing",
|
"library_page_sharing": "Sharing",
|
||||||
"library_page_sort_created": "Most recently created",
|
"library_page_sort_created": "Most recently created",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "Album title",
|
"library_page_sort_title": "Album title",
|
||||||
"login_disabled": "Login has been disabled",
|
"login_disabled": "Login has been disabled",
|
||||||
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
"login_form_api_exception": "API exception. Please check the server URL and try again.",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server",
|
||||||
"login_form_failed_login": "Lỗi đăng nhập, xin vui lòng kiểm tra địa chỉ server, email và mật khẩu",
|
"login_form_failed_login": "Lỗi đăng nhập, xin vui lòng kiểm tra địa chỉ server, email và mật khẩu",
|
||||||
|
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.",
|
||||||
"login_form_label_email": "Email",
|
"login_form_label_email": "Email",
|
||||||
"login_form_label_password": "Password",
|
"login_form_label_password": "Password",
|
||||||
"login_form_next_button": "Next",
|
"login_form_next_button": "Next",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "Stay logged in",
|
"login_form_save_login": "Stay logged in",
|
||||||
"login_form_server_empty": "Enter a server URL.",
|
"login_form_server_empty": "Enter a server URL.",
|
||||||
"login_form_server_error": "Could not connect to server.",
|
"login_form_server_error": "Could not connect to server.",
|
||||||
|
"login_password_changed_error": "There was an error updating your password",
|
||||||
|
"login_password_changed_success": "Password updated successfully",
|
||||||
|
"map_cannot_get_user_location": "Cannot get user's location",
|
||||||
|
"map_location_dialog_cancel": "Cancel",
|
||||||
|
"map_location_dialog_yes": "Yes",
|
||||||
|
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?",
|
||||||
|
"map_location_service_disabled_title": "Location Service disabled",
|
||||||
|
"map_no_assets_in_bounds": "No photos in this area",
|
||||||
|
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?",
|
||||||
|
"map_no_location_permission_title": "Location Permission denied",
|
||||||
|
"map_settings_dark_mode": "Dark mode",
|
||||||
|
"map_settings_dialog_cancel": "Cancel",
|
||||||
|
"map_settings_dialog_save": "Save",
|
||||||
|
"map_settings_dialog_title": "Map Settings",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "Date range",
|
||||||
|
"map_settings_only_show_favorites": "Show Favorite Only",
|
||||||
|
"map_zoom_to_see_photos": "Zoom out to see photos",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "Motion Photos",
|
"motion_photos_page_title": "Motion Photos",
|
||||||
"notification_permission_dialog_cancel": "Cancel",
|
"notification_permission_dialog_cancel": "Cancel",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date",
|
||||||
"profile_drawer_settings": "Settings",
|
"profile_drawer_settings": "Settings",
|
||||||
"profile_drawer_sign_out": "Sign Out",
|
"profile_drawer_sign_out": "Sign Out",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "Recently Added",
|
"recently_added_page_title": "Recently Added",
|
||||||
"search_bar_hint": "Search your photos",
|
"search_bar_hint": "Search your photos",
|
||||||
"search_page_categories": "Categories",
|
"search_page_categories": "Categories",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "Add a title",
|
"share_add_title": "Add a title",
|
||||||
"share_create_album": "Create album",
|
"share_create_album": "Create album",
|
||||||
"share_dialog_preparing": "Preparing...",
|
"share_dialog_preparing": "Preparing...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "Invite to album",
|
"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": "Create shared album",
|
"sharing_silver_appbar_create_shared_album": "Create shared album",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "Share with partner",
|
"sharing_silver_appbar_share_partner": "Share with partner",
|
||||||
"tab_controller_nav_library": "Library",
|
"tab_controller_nav_library": "Library",
|
||||||
"tab_controller_nav_photos": "Photos",
|
"tab_controller_nav_photos": "Photos",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_theme_title": "Theme",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
"theme_setting_three_stage_loading_subtitle": "Three-stage loading might increase the loading performance but causes significantly higher network load",
|
||||||
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
"theme_setting_three_stage_loading_title": "Enable three-stage loading",
|
||||||
|
"translated_text_options": "Options",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "Cancel",
|
"upload_dialog_cancel": "Cancel",
|
||||||
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
|
||||||
"upload_dialog_ok": "Upload",
|
"upload_dialog_ok": "Upload",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
"version_announcement_overlay_text_1": "Hi friend, there is a new release of",
|
||||||
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
"version_announcement_overlay_text_2": "please take your time to visit the ",
|
||||||
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
|
||||||
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89"
|
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "已在 {album} 中",
|
"add_to_album_bottom_sheet_already_exists": "已在 {album} 中",
|
||||||
"advanced_settings_prefer_remote_subtitle": "在某些设备上,从本地的项目加载缩略图的速度非常慢。\n启用此选项以加载远程项目。",
|
"advanced_settings_prefer_remote_subtitle": "在某些设备上,从本地的项目加载缩略图的速度非常慢。\n启用此选项以加载远程项目。",
|
||||||
"advanced_settings_prefer_remote_title": "优先远程项目",
|
"advanced_settings_prefer_remote_title": "优先远程项目",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "跳过服务器终结点的 SSL 证书验证(该选项适用于使用自签名证书的服务器)。",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "允许自签名 SSL 证书",
|
||||||
"advanced_settings_tile_subtitle": "高级用户设置",
|
"advanced_settings_tile_subtitle": "高级用户设置",
|
||||||
"advanced_settings_tile_title": "高级",
|
"advanced_settings_tile_title": "高级",
|
||||||
"advanced_settings_troubleshooting_subtitle": "启用用于故障排除的额外功能",
|
"advanced_settings_troubleshooting_subtitle": "启用用于故障排除的额外功能",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "删除",
|
"control_bottom_app_bar_delete": "删除",
|
||||||
"control_bottom_app_bar_favorite": "收藏",
|
"control_bottom_app_bar_favorite": "收藏",
|
||||||
"control_bottom_app_bar_share": "共享",
|
"control_bottom_app_bar_share": "共享",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "取消归档",
|
"control_bottom_app_bar_unarchive": "取消归档",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "未命名",
|
"create_album_page_untitled": "未命名",
|
||||||
"create_shared_album_page_create": "创建",
|
"create_shared_album_page_create": "创建",
|
||||||
"create_shared_album_page_share": "共享",
|
"create_shared_album_page_share": "共享",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "取消",
|
"delete_dialog_cancel": "取消",
|
||||||
"delete_dialog_ok": "删除",
|
"delete_dialog_ok": "删除",
|
||||||
"delete_dialog_title": "永久删除",
|
"delete_dialog_title": "永久删除",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "添加描述...",
|
"description_input_hint_text": "添加描述...",
|
||||||
"description_input_submit_error": "更新描述时出错,请检查日志以获取更多详细信息",
|
"description_input_submit_error": "更新描述时出错,请检查日志以获取更多详细信息",
|
||||||
"exif_bottom_sheet_description": "添加描述...",
|
"exif_bottom_sheet_description": "添加描述...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "一次最多只能上传 30 个项目,跳过",
|
"home_page_upload_err_limit": "一次最多只能上传 30 个项目,跳过",
|
||||||
"image_viewer_page_state_provider_download_error": "下载出现错误",
|
"image_viewer_page_state_provider_download_error": "下载出现错误",
|
||||||
"image_viewer_page_state_provider_download_success": "下载成功",
|
"image_viewer_page_state_provider_download_success": "下载成功",
|
||||||
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"library_page_albums": "相册",
|
"library_page_albums": "相册",
|
||||||
"library_page_archive": "归档",
|
"library_page_archive": "归档",
|
||||||
"library_page_device_albums": "设备上的相册",
|
"library_page_device_albums": "设备上的相册",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "新建相册",
|
"library_page_new_album": "新建相册",
|
||||||
"library_page_sharing": "共享",
|
"library_page_sharing": "共享",
|
||||||
"library_page_sort_created": "最近创建的",
|
"library_page_sort_created": "最近创建的",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "相册标题",
|
"library_page_sort_title": "相册标题",
|
||||||
"login_disabled": "登录已被禁用",
|
"login_disabled": "登录已被禁用",
|
||||||
"login_form_api_exception": "API 异常,请检查服务器地址并重试。",
|
"login_form_api_exception": "API 异常,请检查服务器地址并重试。",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "使用 OAuth 登录时错误,请检查服务器地址",
|
"login_form_failed_get_oauth_server_config": "使用 OAuth 登录时错误,请检查服务器地址",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth 功能在此服务器上不可用",
|
"login_form_failed_get_oauth_server_disable": "OAuth 功能在此服务器上不可用",
|
||||||
"login_form_failed_login": "登录失败, 请检查服务器地址、邮箱和密码",
|
"login_form_failed_login": "登录失败, 请检查服务器地址、邮箱和密码",
|
||||||
|
"login_form_handshake_exception": "与服务器通信时出现握手异常。如果您使用的是自签名证书,请在设置中启用自签名证书支持。",
|
||||||
"login_form_label_email": "邮箱",
|
"login_form_label_email": "邮箱",
|
||||||
"login_form_label_password": "密码",
|
"login_form_label_password": "密码",
|
||||||
"login_form_next_button": "下一个",
|
"login_form_next_button": "下一个",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "保持登录",
|
"login_form_save_login": "保持登录",
|
||||||
"login_form_server_empty": "输入服务器地址。",
|
"login_form_server_empty": "输入服务器地址。",
|
||||||
"login_form_server_error": "无法连接到服务器。",
|
"login_form_server_error": "无法连接到服务器。",
|
||||||
|
"login_password_changed_error": "更新密码时出错\n",
|
||||||
|
"login_password_changed_success": "密码更新成功",
|
||||||
|
"map_cannot_get_user_location": "无法获取用户位置",
|
||||||
|
"map_location_dialog_cancel": "取消",
|
||||||
|
"map_location_dialog_yes": "是",
|
||||||
|
"map_location_service_disabled_content": "需要启用定位服务才能显示当前位置相关的项目。要现在启用吗?",
|
||||||
|
"map_location_service_disabled_title": "定位服务已禁用",
|
||||||
|
"map_no_assets_in_bounds": "此区域中没有相关项目",
|
||||||
|
"map_no_location_permission_content": "需要位置权限才能显示与当前位置相关的项目。要现在就授予位置权限吗?",
|
||||||
|
"map_no_location_permission_title": "位置权限被拒绝",
|
||||||
|
"map_settings_dark_mode": "暗黑模式",
|
||||||
|
"map_settings_dialog_cancel": "取消",
|
||||||
|
"map_settings_dialog_save": "保存",
|
||||||
|
"map_settings_dialog_title": "地图设置",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "日期范围",
|
||||||
|
"map_settings_only_show_favorites": "仅显示收藏的项目",
|
||||||
|
"map_zoom_to_see_photos": "缩小以查看项目",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "动图",
|
"motion_photos_page_title": "动图",
|
||||||
"notification_permission_dialog_cancel": "取消",
|
"notification_permission_dialog_cancel": "取消",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "客户端和服务端都是最新的",
|
"profile_drawer_client_server_up_to_date": "客户端和服务端都是最新的",
|
||||||
"profile_drawer_settings": "设置",
|
"profile_drawer_settings": "设置",
|
||||||
"profile_drawer_sign_out": "退出登录",
|
"profile_drawer_sign_out": "退出登录",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "最近添加",
|
"recently_added_page_title": "最近添加",
|
||||||
"search_bar_hint": "搜索照片",
|
"search_bar_hint": "搜索照片",
|
||||||
"search_page_categories": "类别",
|
"search_page_categories": "类别",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "添加标题",
|
"share_add_title": "添加标题",
|
||||||
"share_create_album": "创建相册",
|
"share_create_album": "创建相册",
|
||||||
"share_dialog_preparing": "正在准备...",
|
"share_dialog_preparing": "正在准备...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "邀请相册共享",
|
"share_invite": "邀请相册共享",
|
||||||
"sharing_page_album": "共享相册",
|
"sharing_page_album": "共享相册",
|
||||||
"sharing_page_description": "创建共享相册以与网络中的人共享照片和视频。",
|
"sharing_page_description": "创建共享相册以与网络中的人共享照片和视频。",
|
||||||
"sharing_page_empty_list": "空",
|
"sharing_page_empty_list": "空",
|
||||||
"sharing_silver_appbar_create_shared_album": "创建共享相册",
|
"sharing_silver_appbar_create_shared_album": "创建共享相册",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "共享给同伴",
|
"sharing_silver_appbar_share_partner": "共享给同伴",
|
||||||
"tab_controller_nav_library": "图库",
|
"tab_controller_nav_library": "图库",
|
||||||
"tab_controller_nav_photos": "照片",
|
"tab_controller_nav_photos": "照片",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "主题",
|
"theme_setting_theme_title": "主题",
|
||||||
"theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
|
"theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
|
||||||
"theme_setting_three_stage_loading_title": "启用三段式加载",
|
"theme_setting_three_stage_loading_title": "启用三段式加载",
|
||||||
|
"translated_text_options": "选项",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "取消",
|
"upload_dialog_cancel": "取消",
|
||||||
"upload_dialog_info": "是否要将所选项目备份到服务器?",
|
"upload_dialog_info": "是否要将所选项目备份到服务器?",
|
||||||
"upload_dialog_ok": "上传",
|
"upload_dialog_ok": "上传",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "号外号外,有新版本的",
|
"version_announcement_overlay_text_1": "号外号外,有新版本的",
|
||||||
"version_announcement_overlay_text_2": "请花点时间访问",
|
"version_announcement_overlay_text_2": "请花点时间访问",
|
||||||
"version_announcement_overlay_text_3": "并检查您的 docker-compose 和 .env 是否为最新且正确的配置,特别是您在使用 WatchTower 或者其他自动更新的程序时,您需要更加细致的检查。",
|
"version_announcement_overlay_text_3": "并检查您的 docker-compose 和 .env 是否为最新且正确的配置,特别是您在使用 WatchTower 或者其他自动更新的程序时,您需要更加细致的检查。",
|
||||||
"version_announcement_overlay_title": "服务端有新版本啦 \uD83C\uDF89"
|
"version_announcement_overlay_title": "服务端有新版本啦 \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
"add_to_album_bottom_sheet_already_exists": "已在 {album} 中",
|
"add_to_album_bottom_sheet_already_exists": "已在 {album} 中",
|
||||||
"advanced_settings_prefer_remote_subtitle": "在某些设备上,从本地的项目加载缩略图的速度非常慢。\n启用此选项以加载远程。",
|
"advanced_settings_prefer_remote_subtitle": "在某些设备上,从本地的项目加载缩略图的速度非常慢。\n启用此选项以加载远程。",
|
||||||
"advanced_settings_prefer_remote_title": "优先远程项目",
|
"advanced_settings_prefer_remote_title": "优先远程项目",
|
||||||
|
"advanced_settings_self_signed_ssl_subtitle": "跳过服务器终结点的 SSL 证书验证(该选项适用于使用自签名证书的服务器)。",
|
||||||
|
"advanced_settings_self_signed_ssl_title": "允许自签名 SSL 证书",
|
||||||
"advanced_settings_tile_subtitle": "高级用户设置",
|
"advanced_settings_tile_subtitle": "高级用户设置",
|
||||||
"advanced_settings_tile_title": "高级",
|
"advanced_settings_tile_title": "高级",
|
||||||
"advanced_settings_troubleshooting_subtitle": "启用用于故障排除的额外功能",
|
"advanced_settings_troubleshooting_subtitle": "启用用于故障排除的额外功能",
|
||||||
|
@ -128,7 +130,10 @@
|
||||||
"control_bottom_app_bar_delete": "删除",
|
"control_bottom_app_bar_delete": "删除",
|
||||||
"control_bottom_app_bar_favorite": "收藏",
|
"control_bottom_app_bar_favorite": "收藏",
|
||||||
"control_bottom_app_bar_share": "共享",
|
"control_bottom_app_bar_share": "共享",
|
||||||
|
"control_bottom_app_bar_share_to": "Share To",
|
||||||
|
"control_bottom_app_bar_stack": "Stack",
|
||||||
"control_bottom_app_bar_unarchive": "取消归档",
|
"control_bottom_app_bar_unarchive": "取消归档",
|
||||||
|
"control_bottom_app_bar_upload": "Upload",
|
||||||
"create_album_page_untitled": "未命名",
|
"create_album_page_untitled": "未命名",
|
||||||
"create_shared_album_page_create": "创建",
|
"create_shared_album_page_create": "创建",
|
||||||
"create_shared_album_page_share": "共享",
|
"create_shared_album_page_share": "共享",
|
||||||
|
@ -143,6 +148,8 @@
|
||||||
"delete_dialog_cancel": "取消",
|
"delete_dialog_cancel": "取消",
|
||||||
"delete_dialog_ok": "删除",
|
"delete_dialog_ok": "删除",
|
||||||
"delete_dialog_title": "永久删除",
|
"delete_dialog_title": "永久删除",
|
||||||
|
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?",
|
||||||
|
"delete_shared_link_dialog_title": "Delete Shared Link",
|
||||||
"description_input_hint_text": "添加描述...",
|
"description_input_hint_text": "添加描述...",
|
||||||
"description_input_submit_error": "更新描述时出错,请检查日志以获取更多详细信息",
|
"description_input_submit_error": "更新描述时出错,请检查日志以获取更多详细信息",
|
||||||
"exif_bottom_sheet_description": "添加描述...",
|
"exif_bottom_sheet_description": "添加描述...",
|
||||||
|
@ -164,6 +171,7 @@
|
||||||
"home_page_upload_err_limit": "一次最多只能上传 30 个项目,跳过",
|
"home_page_upload_err_limit": "一次最多只能上传 30 个项目,跳过",
|
||||||
"image_viewer_page_state_provider_download_error": "下载出现错误",
|
"image_viewer_page_state_provider_download_error": "下载出现错误",
|
||||||
"image_viewer_page_state_provider_download_success": "下载成功",
|
"image_viewer_page_state_provider_download_success": "下载成功",
|
||||||
|
"image_viewer_page_state_provider_share_error": "Share Error",
|
||||||
"library_page_albums": "相册",
|
"library_page_albums": "相册",
|
||||||
"library_page_archive": "归档",
|
"library_page_archive": "归档",
|
||||||
"library_page_device_albums": "设备上的相册",
|
"library_page_device_albums": "设备上的相册",
|
||||||
|
@ -171,6 +179,8 @@
|
||||||
"library_page_new_album": "新建相册",
|
"library_page_new_album": "新建相册",
|
||||||
"library_page_sharing": "共享",
|
"library_page_sharing": "共享",
|
||||||
"library_page_sort_created": "最近创建的",
|
"library_page_sort_created": "最近创建的",
|
||||||
|
"library_page_sort_last_modified": "Last modified",
|
||||||
|
"library_page_sort_most_recent_photo": "Most recent photo",
|
||||||
"library_page_sort_title": "相册标题",
|
"library_page_sort_title": "相册标题",
|
||||||
"login_disabled": "登录已被禁用",
|
"login_disabled": "登录已被禁用",
|
||||||
"login_form_api_exception": "API 异常,请检查服务器地址并重试。",
|
"login_form_api_exception": "API 异常,请检查服务器地址并重试。",
|
||||||
|
@ -186,6 +196,7 @@
|
||||||
"login_form_failed_get_oauth_server_config": "使用 OAuth 登录时错误,请检查服务器地址",
|
"login_form_failed_get_oauth_server_config": "使用 OAuth 登录时错误,请检查服务器地址",
|
||||||
"login_form_failed_get_oauth_server_disable": "OAuth 功能在此服务器上不可用",
|
"login_form_failed_get_oauth_server_disable": "OAuth 功能在此服务器上不可用",
|
||||||
"login_form_failed_login": "登录失败, 请检查服务器地址、邮箱和密码",
|
"login_form_failed_login": "登录失败, 请检查服务器地址、邮箱和密码",
|
||||||
|
"login_form_handshake_exception": "与服务器通信时出现握手异常。如果您使用的是自签名证书,请在设置中启用自签名证书支持。",
|
||||||
"login_form_label_email": "邮箱",
|
"login_form_label_email": "邮箱",
|
||||||
"login_form_label_password": "密码",
|
"login_form_label_password": "密码",
|
||||||
"login_form_next_button": "下一个",
|
"login_form_next_button": "下一个",
|
||||||
|
@ -193,6 +204,24 @@
|
||||||
"login_form_save_login": "保持登录",
|
"login_form_save_login": "保持登录",
|
||||||
"login_form_server_empty": "输入服务器地址。",
|
"login_form_server_empty": "输入服务器地址。",
|
||||||
"login_form_server_error": "无法连接到服务器。",
|
"login_form_server_error": "无法连接到服务器。",
|
||||||
|
"login_password_changed_error": "更新密码时出错\n",
|
||||||
|
"login_password_changed_success": "密码更新成功",
|
||||||
|
"map_cannot_get_user_location": "无法获取用户位置",
|
||||||
|
"map_location_dialog_cancel": "取消",
|
||||||
|
"map_location_dialog_yes": "是",
|
||||||
|
"map_location_service_disabled_content": "需要启用定位服务才能显示当前位置相关的项目。要现在启用吗?",
|
||||||
|
"map_location_service_disabled_title": "定位服务已禁用",
|
||||||
|
"map_no_assets_in_bounds": "此区域中没有相关项目",
|
||||||
|
"map_no_location_permission_content": "需要位置权限才能显示与当前位置相关的项目。要现在就授予位置权限吗?",
|
||||||
|
"map_no_location_permission_title": "位置权限被拒绝",
|
||||||
|
"map_settings_dark_mode": "暗黑模式",
|
||||||
|
"map_settings_dialog_cancel": "取消",
|
||||||
|
"map_settings_dialog_save": "保存",
|
||||||
|
"map_settings_dialog_title": "地图设置",
|
||||||
|
"map_settings_include_show_archived": "Include Archived",
|
||||||
|
"map_settings_only_relative_range": "日期范围",
|
||||||
|
"map_settings_only_show_favorites": "仅显示收藏的项目",
|
||||||
|
"map_zoom_to_see_photos": "缩小以查看项目",
|
||||||
"monthly_title_text_date_format": "MMMM y",
|
"monthly_title_text_date_format": "MMMM y",
|
||||||
"motion_photos_page_title": "动图",
|
"motion_photos_page_title": "动图",
|
||||||
"notification_permission_dialog_cancel": "取消",
|
"notification_permission_dialog_cancel": "取消",
|
||||||
|
@ -223,6 +252,7 @@
|
||||||
"profile_drawer_client_server_up_to_date": "客户端和服务端都是最新的",
|
"profile_drawer_client_server_up_to_date": "客户端和服务端都是最新的",
|
||||||
"profile_drawer_settings": "设置",
|
"profile_drawer_settings": "设置",
|
||||||
"profile_drawer_sign_out": "退出登录",
|
"profile_drawer_sign_out": "退出登录",
|
||||||
|
"profile_drawer_trash": "Trash",
|
||||||
"recently_added_page_title": "最近添加",
|
"recently_added_page_title": "最近添加",
|
||||||
"search_bar_hint": "搜索照片",
|
"search_bar_hint": "搜索照片",
|
||||||
"search_page_categories": "类别",
|
"search_page_categories": "类别",
|
||||||
|
@ -271,11 +301,27 @@
|
||||||
"share_add_title": "添加标题",
|
"share_add_title": "添加标题",
|
||||||
"share_create_album": "创建相册",
|
"share_create_album": "创建相册",
|
||||||
"share_dialog_preparing": "正在准备...",
|
"share_dialog_preparing": "正在准备...",
|
||||||
|
"shared_link_app_bar_title": "Shared Links",
|
||||||
|
"shared_link_create_app_bar_title": "Create link to share",
|
||||||
|
"shared_link_create_info": "Let anyone with the link see the selected photo(s)",
|
||||||
|
"shared_link_create_submit_button": "Create link",
|
||||||
|
"shared_link_edit_allow_download": "Allow public user to download",
|
||||||
|
"shared_link_edit_allow_upload": "Allow public user to upload",
|
||||||
|
"shared_link_edit_app_bar_title": "Edit link",
|
||||||
|
"shared_link_edit_change_expiry": "Change expiration time",
|
||||||
|
"shared_link_edit_description": "Description",
|
||||||
|
"shared_link_edit_description_hint": "Enter the share description",
|
||||||
|
"shared_link_edit_show_meta": "Show metadata",
|
||||||
|
"shared_link_edit_submit_button": "Update link",
|
||||||
|
"shared_link_empty": "You don't have any shared links",
|
||||||
|
"shared_link_manage_links": "Manage Shared links",
|
||||||
|
"share_done": "Done",
|
||||||
"share_invite": "邀请相册共享",
|
"share_invite": "邀请相册共享",
|
||||||
"sharing_page_album": "共享相册",
|
"sharing_page_album": "共享相册",
|
||||||
"sharing_page_description": "创建共享相册以与网络中的人共享照片和视频。",
|
"sharing_page_description": "创建共享相册以与网络中的人共享照片和视频。",
|
||||||
"sharing_page_empty_list": "空",
|
"sharing_page_empty_list": "空",
|
||||||
"sharing_silver_appbar_create_shared_album": "创建共享相册",
|
"sharing_silver_appbar_create_shared_album": "创建共享相册",
|
||||||
|
"sharing_silver_appbar_shared_links": "Shared links",
|
||||||
"sharing_silver_appbar_share_partner": "共享给同伴",
|
"sharing_silver_appbar_share_partner": "共享给同伴",
|
||||||
"tab_controller_nav_library": "图库",
|
"tab_controller_nav_library": "图库",
|
||||||
"tab_controller_nav_photos": "照片",
|
"tab_controller_nav_photos": "照片",
|
||||||
|
@ -291,6 +337,19 @@
|
||||||
"theme_setting_theme_title": "主题",
|
"theme_setting_theme_title": "主题",
|
||||||
"theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
|
"theme_setting_three_stage_loading_subtitle": "三段式加载可能会提升加载性能,但可能会导致更高的网络负载",
|
||||||
"theme_setting_three_stage_loading_title": "启用三段式加载",
|
"theme_setting_three_stage_loading_title": "启用三段式加载",
|
||||||
|
"translated_text_options": "选项",
|
||||||
|
"trash_page_delete": "Delete",
|
||||||
|
"trash_page_delete_all": "Delete All",
|
||||||
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
|
||||||
|
"trash_page_empty_trash_dialog_ok": "Ok",
|
||||||
|
"trash_page_info": "Trashed items will be permanently deleted after {} days",
|
||||||
|
"trash_page_no_assets": "No trashed assets",
|
||||||
|
"trash_page_restore": "Restore",
|
||||||
|
"trash_page_restore_all": "Restore All",
|
||||||
|
"trash_page_select_assets_btn": "Select assets",
|
||||||
|
"trash_page_select_btn": "Select",
|
||||||
|
"trash_page_title": "Trash ({})",
|
||||||
"upload_dialog_cancel": "取消",
|
"upload_dialog_cancel": "取消",
|
||||||
"upload_dialog_info": "是否要将所选项目备份到服务器?",
|
"upload_dialog_info": "是否要将所选项目备份到服务器?",
|
||||||
"upload_dialog_ok": "上传",
|
"upload_dialog_ok": "上传",
|
||||||
|
@ -300,5 +359,8 @@
|
||||||
"version_announcement_overlay_text_1": "号外号外,有新版本的",
|
"version_announcement_overlay_text_1": "号外号外,有新版本的",
|
||||||
"version_announcement_overlay_text_2": "请花点时间访问",
|
"version_announcement_overlay_text_2": "请花点时间访问",
|
||||||
"version_announcement_overlay_text_3": "并检查您的 docker-compose 和 .env 是否为最新且正确的配置,特别是您在使用 WatchTower 或者其他自动更新的程序时,您需要更加细致的检查。",
|
"version_announcement_overlay_text_3": "并检查您的 docker-compose 和 .env 是否为最新且正确的配置,特别是您在使用 WatchTower 或者其他自动更新的程序时,您需要更加细致的检查。",
|
||||||
"version_announcement_overlay_title": "服务端有新版本啦 \uD83C\uDF89"
|
"version_announcement_overlay_title": "服务端有新版本啦 \uD83C\uDF89",
|
||||||
|
"viewer_remove_from_stack": "Remove from Stack",
|
||||||
|
"viewer_stack_use_as_main_asset": "Use as Main Asset",
|
||||||
|
"viewer_unstack": "Un-Stack"
|
||||||
}
|
}
|
|
@ -19,7 +19,7 @@ platform :ios do
|
||||||
desc "iOS Beta"
|
desc "iOS Beta"
|
||||||
lane :beta do
|
lane :beta do
|
||||||
increment_version_number(
|
increment_version_number(
|
||||||
version_number: "1.82.1"
|
version_number: "1.83.0"
|
||||||
)
|
)
|
||||||
increment_build_number(
|
increment_build_number(
|
||||||
build_number: latest_testflight_build_number + 1,
|
build_number: latest_testflight_build_number + 1,
|
||||||
|
|
|
@ -131,17 +131,14 @@ class ImmichAppState extends ConsumerState<ImmichApp>
|
||||||
debugPrint("[APP STATE] resumed");
|
debugPrint("[APP STATE] resumed");
|
||||||
ref.read(appStateProvider.notifier).handleAppResume();
|
ref.read(appStateProvider.notifier).handleAppResume();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AppLifecycleState.inactive:
|
case AppLifecycleState.inactive:
|
||||||
debugPrint("[APP STATE] inactive");
|
debugPrint("[APP STATE] inactive");
|
||||||
ref.read(appStateProvider.notifier).handleAppInactivity();
|
ref.read(appStateProvider.notifier).handleAppInactivity();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AppLifecycleState.paused:
|
case AppLifecycleState.paused:
|
||||||
debugPrint("[APP STATE] paused");
|
debugPrint("[APP STATE] paused");
|
||||||
ref.read(appStateProvider.notifier).handleAppPause();
|
ref.read(appStateProvider.notifier).handleAppPause();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case AppLifecycleState.detached:
|
case AppLifecycleState.detached:
|
||||||
debugPrint("[APP STATE] detached");
|
debugPrint("[APP STATE] detached");
|
||||||
ref.read(appStateProvider.notifier).handleAppDetached();
|
ref.read(appStateProvider.notifier).handleAppDetached();
|
||||||
|
|
|
@ -164,8 +164,13 @@ class AlbumViewerPage extends HookConsumerWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget buildAlbumDateRange(Album album) {
|
Widget buildAlbumDateRange(Album album) {
|
||||||
final DateTime startDate = album.assets.first.fileCreatedAt;
|
final DateTime? startDate = album.startDate;
|
||||||
final DateTime endDate = album.assets.last.fileCreatedAt; //Need default.
|
final DateTime? endDate = album.endDate;
|
||||||
|
|
||||||
|
if (startDate == null || endDate == null) {
|
||||||
|
return const SizedBox();
|
||||||
|
}
|
||||||
|
|
||||||
final String startDateText = (startDate.year == endDate.year
|
final String startDateText = (startDate.year == endDate.year
|
||||||
? DateFormat.MMMd()
|
? DateFormat.MMMd()
|
||||||
: DateFormat.yMMMd())
|
: DateFormat.yMMMd())
|
||||||
|
@ -260,6 +265,7 @@ class AlbumViewerPage extends HookConsumerWidget {
|
||||||
if (data.isRemote) buildControlButton(data),
|
if (data.isRemote) buildControlButton(data),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
isOwner: userId == data.ownerId,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -10,12 +10,16 @@ import 'package:immich_mobile/routing/router.dart';
|
||||||
import 'package:immich_mobile/shared/models/album.dart';
|
import 'package:immich_mobile/shared/models/album.dart';
|
||||||
import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart';
|
import 'package:immich_mobile/modules/settings/providers/app_settings.provider.dart';
|
||||||
import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
|
import 'package:immich_mobile/modules/settings/services/app_settings.service.dart';
|
||||||
|
import 'package:immich_mobile/shared/providers/server_info.provider.dart';
|
||||||
|
import 'package:immich_mobile/shared/ui/immich_app_bar.dart';
|
||||||
|
|
||||||
class LibraryPage extends HookConsumerWidget {
|
class LibraryPage extends HookConsumerWidget {
|
||||||
const LibraryPage({Key? key}) : super(key: key);
|
const LibraryPage({Key? key}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
|
final trashEnabled =
|
||||||
|
ref.watch(serverInfoProvider.select((v) => v.serverFeatures.trash));
|
||||||
final albums = ref.watch(albumProvider);
|
final albums = ref.watch(albumProvider);
|
||||||
var isDarkMode = Theme.of(context).brightness == Brightness.dark;
|
var isDarkMode = Theme.of(context).brightness == Brightness.dark;
|
||||||
var settings = ref.watch(appSettingsServiceProvider);
|
var settings = ref.watch(appSettingsServiceProvider);
|
||||||
|
@ -28,21 +32,6 @@ class LibraryPage extends HookConsumerWidget {
|
||||||
[],
|
[],
|
||||||
);
|
);
|
||||||
|
|
||||||
AppBar buildAppBar() {
|
|
||||||
return AppBar(
|
|
||||||
centerTitle: true,
|
|
||||||
automaticallyImplyLeading: false,
|
|
||||||
title: const Text(
|
|
||||||
'IMMICH',
|
|
||||||
style: TextStyle(
|
|
||||||
fontFamily: 'SnowburstOne',
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
fontSize: 22,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
final selectedAlbumSortOrder =
|
final selectedAlbumSortOrder =
|
||||||
useState(settings.getSetting(AppSettingsEnum.selectedAlbumSortOrder));
|
useState(settings.getSetting(AppSettingsEnum.selectedAlbumSortOrder));
|
||||||
|
|
||||||
|
@ -236,8 +225,23 @@ class LibraryPage extends HookConsumerWidget {
|
||||||
|
|
||||||
final local = albums.where((a) => a.isLocal).toList();
|
final local = albums.where((a) => a.isLocal).toList();
|
||||||
|
|
||||||
|
Widget? shareTrashButton() {
|
||||||
|
return trashEnabled
|
||||||
|
? InkWell(
|
||||||
|
onTap: () => AutoRouter.of(context).push(const TrashRoute()),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
child: const Icon(
|
||||||
|
Icons.delete_rounded,
|
||||||
|
size: 25,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
: null;
|
||||||
|
}
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: buildAppBar(),
|
appBar: ImmichAppBar(
|
||||||
|
action: shareTrashButton(),
|
||||||
|
),
|
||||||
body: CustomScrollView(
|
body: CustomScrollView(
|
||||||
slivers: [
|
slivers: [
|
||||||
SliverToBoxAdapter(
|
SliverToBoxAdapter(
|
||||||
|
|
|
@ -10,6 +10,7 @@ import 'package:immich_mobile/modules/partner/ui/partner_list.dart';
|
||||||
import 'package:immich_mobile/routing/router.dart';
|
import 'package:immich_mobile/routing/router.dart';
|
||||||
import 'package:immich_mobile/shared/models/album.dart';
|
import 'package:immich_mobile/shared/models/album.dart';
|
||||||
import 'package:immich_mobile/shared/providers/user.provider.dart';
|
import 'package:immich_mobile/shared/providers/user.provider.dart';
|
||||||
|
import 'package:immich_mobile/shared/ui/immich_app_bar.dart';
|
||||||
import 'package:immich_mobile/shared/ui/immich_image.dart';
|
import 'package:immich_mobile/shared/ui/immich_image.dart';
|
||||||
|
|
||||||
class SharingPage extends HookConsumerWidget {
|
class SharingPage extends HookConsumerWidget {
|
||||||
|
@ -167,32 +168,6 @@ class SharingPage extends HookConsumerWidget {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
AppBar buildAppBar() {
|
|
||||||
return AppBar(
|
|
||||||
centerTitle: true,
|
|
||||||
automaticallyImplyLeading: false,
|
|
||||||
title: const Text(
|
|
||||||
'IMMICH',
|
|
||||||
style: TextStyle(
|
|
||||||
fontFamily: 'SnowburstOne',
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
fontSize: 22,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
actions: [
|
|
||||||
IconButton(
|
|
||||||
splashRadius: 25,
|
|
||||||
iconSize: 20,
|
|
||||||
icon: const Icon(
|
|
||||||
Icons.swap_horizontal_circle_outlined,
|
|
||||||
size: 20,
|
|
||||||
),
|
|
||||||
onPressed: () => AutoRouter.of(context).push(const PartnerRoute()),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
buildEmptyListIndication() {
|
buildEmptyListIndication() {
|
||||||
return SliverToBoxAdapter(
|
return SliverToBoxAdapter(
|
||||||
child: Padding(
|
child: Padding(
|
||||||
|
@ -241,8 +216,21 @@ class SharingPage extends HookConsumerWidget {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget sharePartnerButton() {
|
||||||
|
return InkWell(
|
||||||
|
onTap: () => AutoRouter.of(context).push(const PartnerRoute()),
|
||||||
|
borderRadius: BorderRadius.circular(12),
|
||||||
|
child: const Icon(
|
||||||
|
Icons.swap_horizontal_circle_rounded,
|
||||||
|
size: 25,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: buildAppBar(),
|
appBar: ImmichAppBar(
|
||||||
|
action: sharePartnerButton(),
|
||||||
|
),
|
||||||
body: CustomScrollView(
|
body: CustomScrollView(
|
||||||
slivers: [
|
slivers: [
|
||||||
SliverToBoxAdapter(child: buildTopBottons()),
|
SliverToBoxAdapter(child: buildTopBottons()),
|
||||||
|
|
|
@ -31,7 +31,14 @@ class DescriptionInput extends HookConsumerWidget {
|
||||||
final owner = ref.watch(currentUserProvider);
|
final owner = ref.watch(currentUserProvider);
|
||||||
final hasError = useState(false);
|
final hasError = useState(false);
|
||||||
|
|
||||||
|
useEffect(
|
||||||
|
() {
|
||||||
controller.text = description;
|
controller.text = description;
|
||||||
|
isTextEmpty.value = description.isEmpty;
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
[description],
|
||||||
|
);
|
||||||
|
|
||||||
submitDescription(String description) async {
|
submitDescription(String description) async {
|
||||||
hasError.value = false;
|
hasError.value = false;
|
||||||
|
|
|
@ -297,9 +297,9 @@ class ExifBottomSheet extends HookConsumerWidget {
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
subtitle: Text(
|
subtitle: exifInfo.f != null || exifInfo.exposureSeconds != null || exifInfo.mm != null || exifInfo.iso != null ? Text(
|
||||||
"ƒ/${exifInfo.fNumber} ${exifInfo.exposureTime} ${exifInfo.focalLength} mm ISO ${exifInfo.iso ?? ''} ",
|
"ƒ/${exifInfo.fNumber} ${exifInfo.exposureTime} ${exifInfo.focalLength} mm ISO ${exifInfo.iso ?? ''} ",
|
||||||
),
|
) : null,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
|
@ -15,6 +15,7 @@ class TopControlAppBar extends HookConsumerWidget {
|
||||||
required this.isPlayingMotionVideo,
|
required this.isPlayingMotionVideo,
|
||||||
required this.onFavorite,
|
required this.onFavorite,
|
||||||
required this.onUploadPressed,
|
required this.onUploadPressed,
|
||||||
|
required this.isOwner,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final Asset asset;
|
final Asset asset;
|
||||||
|
@ -25,6 +26,7 @@ class TopControlAppBar extends HookConsumerWidget {
|
||||||
final VoidCallback onAddToAlbumPressed;
|
final VoidCallback onAddToAlbumPressed;
|
||||||
final Function(Asset) onFavorite;
|
final Function(Asset) onFavorite;
|
||||||
final bool isPlayingMotionVideo;
|
final bool isPlayingMotionVideo;
|
||||||
|
final bool isOwner;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
|
@ -123,11 +125,11 @@ class TopControlAppBar extends HookConsumerWidget {
|
||||||
size: iconSize,
|
size: iconSize,
|
||||||
),
|
),
|
||||||
actions: [
|
actions: [
|
||||||
if (asset.isRemote) buildFavoriteButton(a),
|
if (asset.isRemote && isOwner) buildFavoriteButton(a),
|
||||||
if (asset.livePhotoVideoId != null) buildLivePhotoButton(),
|
if (asset.livePhotoVideoId != null) buildLivePhotoButton(),
|
||||||
if (asset.isLocal && !asset.isRemote) buildUploadButton(),
|
if (asset.isLocal && !asset.isRemote) buildUploadButton(),
|
||||||
if (asset.isRemote && !asset.isLocal) buildDownloadButton(),
|
if (asset.isRemote && !asset.isLocal && isOwner) buildDownloadButton(),
|
||||||
if (asset.isRemote) buildAddToAlbumButtom(),
|
if (asset.isRemote && isOwner) buildAddToAlbumButtom(),
|
||||||
buildMoreInfoButton(),
|
buildMoreInfoButton(),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
|
@ -38,6 +38,7 @@ import 'package:immich_mobile/shared/models/asset.dart';
|
||||||
import 'package:immich_mobile/shared/providers/asset.provider.dart';
|
import 'package:immich_mobile/shared/providers/asset.provider.dart';
|
||||||
import 'package:immich_mobile/shared/ui/immich_loading_indicator.dart';
|
import 'package:immich_mobile/shared/ui/immich_loading_indicator.dart';
|
||||||
import 'package:immich_mobile/utils/image_url_builder.dart';
|
import 'package:immich_mobile/utils/image_url_builder.dart';
|
||||||
|
import 'package:isar/isar.dart';
|
||||||
import 'package:openapi/api.dart' show ThumbnailFormat;
|
import 'package:openapi/api.dart' show ThumbnailFormat;
|
||||||
|
|
||||||
// ignore: must_be_immutable
|
// ignore: must_be_immutable
|
||||||
|
@ -47,6 +48,7 @@ class GalleryViewerPage extends HookConsumerWidget {
|
||||||
final int initialIndex;
|
final int initialIndex;
|
||||||
final int heroOffset;
|
final int heroOffset;
|
||||||
final bool showStack;
|
final bool showStack;
|
||||||
|
final bool isOwner;
|
||||||
|
|
||||||
GalleryViewerPage({
|
GalleryViewerPage({
|
||||||
super.key,
|
super.key,
|
||||||
|
@ -55,6 +57,7 @@ class GalleryViewerPage extends HookConsumerWidget {
|
||||||
required this.totalAssets,
|
required this.totalAssets,
|
||||||
this.heroOffset = 0,
|
this.heroOffset = 0,
|
||||||
this.showStack = false,
|
this.showStack = false,
|
||||||
|
this.isOwner = true,
|
||||||
}) : controller = PageController(initialPage: initialIndex);
|
}) : controller = PageController(initialPage: initialIndex);
|
||||||
|
|
||||||
final PageController controller;
|
final PageController controller;
|
||||||
|
@ -82,10 +85,12 @@ class GalleryViewerPage extends HookConsumerWidget {
|
||||||
navStack.length > 2 &&
|
navStack.length > 2 &&
|
||||||
navStack.elementAt(navStack.length - 2).name == TrashRoute.name;
|
navStack.elementAt(navStack.length - 2).name == TrashRoute.name;
|
||||||
final stackIndex = useState(-1);
|
final stackIndex = useState(-1);
|
||||||
final stack = showStack && currentAsset.stackCount > 0
|
final stack = showStack && currentAsset.stackChildrenCount > 0
|
||||||
? ref.watch(assetStackStateProvider(currentAsset))
|
? ref.watch(assetStackStateProvider(currentAsset))
|
||||||
: <Asset>[];
|
: <Asset>[];
|
||||||
final stackElements = showStack ? [currentAsset, ...stack] : <Asset>[];
|
final stackElements = showStack ? [currentAsset, ...stack] : <Asset>[];
|
||||||
|
// Assets from response DTOs do not have an isar id, querying which would give us the default autoIncrement id
|
||||||
|
final isFromDto = currentAsset.id == Isar.autoIncrement;
|
||||||
|
|
||||||
Asset asset() => stackIndex.value == -1
|
Asset asset() => stackIndex.value == -1
|
||||||
? currentAsset
|
? currentAsset
|
||||||
|
@ -331,6 +336,7 @@ class GalleryViewerPage extends HookConsumerWidget {
|
||||||
child: Container(
|
child: Container(
|
||||||
color: Colors.black.withOpacity(0.4),
|
color: Colors.black.withOpacity(0.4),
|
||||||
child: TopControlAppBar(
|
child: TopControlAppBar(
|
||||||
|
isOwner: isOwner,
|
||||||
isPlayingMotionVideo: isPlayingMotionVideo.value,
|
isPlayingMotionVideo: isPlayingMotionVideo.value,
|
||||||
asset: asset(),
|
asset: asset(),
|
||||||
onMoreInfoPressed: showInfo,
|
onMoreInfoPressed: showInfo,
|
||||||
|
@ -570,6 +576,7 @@ class GalleryViewerPage extends HookConsumerWidget {
|
||||||
label: 'control_bottom_app_bar_share'.tr(),
|
label: 'control_bottom_app_bar_share'.tr(),
|
||||||
tooltip: 'control_bottom_app_bar_share'.tr(),
|
tooltip: 'control_bottom_app_bar_share'.tr(),
|
||||||
),
|
),
|
||||||
|
if (isOwner)
|
||||||
asset().isArchived
|
asset().isArchived
|
||||||
? BottomNavigationBarItem(
|
? BottomNavigationBarItem(
|
||||||
icon: const Icon(Icons.unarchive_rounded),
|
icon: const Icon(Icons.unarchive_rounded),
|
||||||
|
@ -581,24 +588,38 @@ class GalleryViewerPage extends HookConsumerWidget {
|
||||||
label: 'control_bottom_app_bar_archive'.tr(),
|
label: 'control_bottom_app_bar_archive'.tr(),
|
||||||
tooltip: 'control_bottom_app_bar_archive'.tr(),
|
tooltip: 'control_bottom_app_bar_archive'.tr(),
|
||||||
),
|
),
|
||||||
if (stack.isNotEmpty)
|
if (isOwner && stack.isNotEmpty)
|
||||||
BottomNavigationBarItem(
|
BottomNavigationBarItem(
|
||||||
icon: const Icon(Icons.burst_mode_outlined),
|
icon: const Icon(Icons.burst_mode_outlined),
|
||||||
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)
|
||||||
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(),
|
||||||
tooltip: 'control_bottom_app_bar_delete'.tr(),
|
tooltip: 'control_bottom_app_bar_delete'.tr(),
|
||||||
),
|
),
|
||||||
|
if (!isOwner)
|
||||||
|
BottomNavigationBarItem(
|
||||||
|
icon: const Icon(Icons.download_outlined),
|
||||||
|
label: 'download'.tr(),
|
||||||
|
tooltip: 'download'.tr(),
|
||||||
|
),
|
||||||
];
|
];
|
||||||
|
|
||||||
List<Function(int)> actionslist = [
|
List<Function(int)> actionslist = [
|
||||||
(_) => shareAsset(),
|
(_) => shareAsset(),
|
||||||
(_) => handleArchive(asset()),
|
if (isOwner) (_) => handleArchive(asset()),
|
||||||
if (stack.isNotEmpty) (_) => showStackActionItems(),
|
if (isOwner && stack.isNotEmpty) (_) => showStackActionItems(),
|
||||||
(_) => handleDelete(asset()),
|
if (isOwner) (_) => handleDelete(asset()),
|
||||||
|
if (!isOwner)
|
||||||
|
(_) => asset().isLocal
|
||||||
|
? null
|
||||||
|
: ref.watch(imageViewerStateProvider.notifier).downloadAsset(
|
||||||
|
asset(),
|
||||||
|
context,
|
||||||
|
),
|
||||||
];
|
];
|
||||||
|
|
||||||
return IgnorePointer(
|
return IgnorePointer(
|
||||||
|
@ -752,7 +773,9 @@ class GalleryViewerPage extends HookConsumerWidget {
|
||||||
},
|
},
|
||||||
imageProvider: provider,
|
imageProvider: provider,
|
||||||
heroAttributes: PhotoViewHeroAttributes(
|
heroAttributes: PhotoViewHeroAttributes(
|
||||||
tag: a.id + heroOffset,
|
tag: isFromDto
|
||||||
|
? '${a.remoteId}-$heroOffset'
|
||||||
|
: a.id + heroOffset,
|
||||||
),
|
),
|
||||||
filterQuality: FilterQuality.high,
|
filterQuality: FilterQuality.high,
|
||||||
tightMode: true,
|
tightMode: true,
|
||||||
|
@ -769,7 +792,9 @@ class GalleryViewerPage extends HookConsumerWidget {
|
||||||
onDragUpdate: (_, details, __) =>
|
onDragUpdate: (_, details, __) =>
|
||||||
handleSwipeUpDown(details),
|
handleSwipeUpDown(details),
|
||||||
heroAttributes: PhotoViewHeroAttributes(
|
heroAttributes: PhotoViewHeroAttributes(
|
||||||
tag: a.id + heroOffset,
|
tag: isFromDto
|
||||||
|
? '${a.remoteId}-$heroOffset'
|
||||||
|
: a.id + heroOffset,
|
||||||
),
|
),
|
||||||
filterQuality: FilterQuality.high,
|
filterQuality: FilterQuality.high,
|
||||||
maxScale: 1.0,
|
maxScale: 1.0,
|
||||||
|
@ -777,7 +802,10 @@ class GalleryViewerPage extends HookConsumerWidget {
|
||||||
basePosition: Alignment.center,
|
basePosition: Alignment.center,
|
||||||
child: VideoViewerPage(
|
child: VideoViewerPage(
|
||||||
onPlaying: () => isPlayingVideo.value = true,
|
onPlaying: () => isPlayingVideo.value = true,
|
||||||
onPaused: () => isPlayingVideo.value = false,
|
onPaused: () =>
|
||||||
|
WidgetsBinding.instance.addPostFrameCallback(
|
||||||
|
(_) => isPlayingVideo.value = false,
|
||||||
|
),
|
||||||
asset: a,
|
asset: a,
|
||||||
isMotionVideo: isPlayingMotionVideo.value,
|
isMotionVideo: isPlayingMotionVideo.value,
|
||||||
placeholder: Image(
|
placeholder: Image(
|
||||||
|
|
|
@ -174,46 +174,6 @@ class BackupControllerPage extends HookConsumerWidget {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget buildStorageInformation() {
|
|
||||||
return ListTile(
|
|
||||||
leading: Icon(
|
|
||||||
Icons.storage_rounded,
|
|
||||||
color: Theme.of(context).primaryColor,
|
|
||||||
),
|
|
||||||
title: const Text(
|
|
||||||
"backup_controller_page_server_storage",
|
|
||||||
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 14),
|
|
||||||
).tr(),
|
|
||||||
isThreeLine: true,
|
|
||||||
subtitle: Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 8.0),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 8.0),
|
|
||||||
child: LinearProgressIndicator(
|
|
||||||
minHeight: 10.0,
|
|
||||||
value: backupState.serverInfo.diskUsagePercentage / 100.0,
|
|
||||||
backgroundColor: Colors.grey,
|
|
||||||
color: Theme.of(context).primaryColor,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 12.0),
|
|
||||||
child: const Text('backup_controller_page_storage_format').tr(
|
|
||||||
args: [
|
|
||||||
backupState.serverInfo.diskUse,
|
|
||||||
backupState.serverInfo.diskSize,
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
ListTile buildAutoBackupController() {
|
ListTile buildAutoBackupController() {
|
||||||
final isAutoBackup = backupState.autoBackup;
|
final isAutoBackup = backupState.autoBackup;
|
||||||
final backUpOption = isAutoBackup
|
final backUpOption = isAutoBackup
|
||||||
|
@ -774,7 +734,6 @@ class BackupControllerPage extends HookConsumerWidget {
|
||||||
if (showBackupFix) const Divider(),
|
if (showBackupFix) const Divider(),
|
||||||
if (showBackupFix) buildCheckCorruptBackups(),
|
if (showBackupFix) buildCheckCorruptBackups(),
|
||||||
const Divider(),
|
const Divider(),
|
||||||
buildStorageInformation(),
|
|
||||||
const Divider(),
|
const Divider(),
|
||||||
const CurrentUploadingAssetInfoBox(),
|
const CurrentUploadingAssetInfoBox(),
|
||||||
if (!hasExclusiveAccess) buildBackgroundBackupInfo(),
|
if (!hasExclusiveAccess) buildBackgroundBackupInfo(),
|
||||||
|
|
|
@ -33,6 +33,7 @@ class ImmichAssetGrid extends HookConsumerWidget {
|
||||||
final bool shrinkWrap;
|
final bool shrinkWrap;
|
||||||
final bool showDragScroll;
|
final bool showDragScroll;
|
||||||
final bool showStack;
|
final bool showStack;
|
||||||
|
final bool isOwner;
|
||||||
|
|
||||||
const ImmichAssetGrid({
|
const ImmichAssetGrid({
|
||||||
super.key,
|
super.key,
|
||||||
|
@ -53,6 +54,7 @@ class ImmichAssetGrid extends HookConsumerWidget {
|
||||||
this.shrinkWrap = false,
|
this.shrinkWrap = false,
|
||||||
this.showDragScroll = true,
|
this.showDragScroll = true,
|
||||||
this.showStack = false,
|
this.showStack = false,
|
||||||
|
this.isOwner = true,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -117,6 +119,7 @@ class ImmichAssetGrid extends HookConsumerWidget {
|
||||||
shrinkWrap: shrinkWrap,
|
shrinkWrap: shrinkWrap,
|
||||||
showDragScroll: showDragScroll,
|
showDragScroll: showDragScroll,
|
||||||
showStack: showStack,
|
showStack: showStack,
|
||||||
|
isOwner: isOwner,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@ class ImmichAssetGridView extends StatefulWidget {
|
||||||
final bool shrinkWrap;
|
final bool shrinkWrap;
|
||||||
final bool showDragScroll;
|
final bool showDragScroll;
|
||||||
final bool showStack;
|
final bool showStack;
|
||||||
|
final bool isOwner;
|
||||||
|
|
||||||
const ImmichAssetGridView({
|
const ImmichAssetGridView({
|
||||||
super.key,
|
super.key,
|
||||||
|
@ -58,6 +59,7 @@ class ImmichAssetGridView extends StatefulWidget {
|
||||||
this.shrinkWrap = false,
|
this.shrinkWrap = false,
|
||||||
this.showDragScroll = true,
|
this.showDragScroll = true,
|
||||||
this.showStack = false,
|
this.showStack = false,
|
||||||
|
this.isOwner = true,
|
||||||
});
|
});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -138,6 +140,7 @@ class ImmichAssetGridViewState extends State<ImmichAssetGridView> {
|
||||||
showStorageIndicator: widget.showStorageIndicator,
|
showStorageIndicator: widget.showStorageIndicator,
|
||||||
heroOffset: widget.heroOffset,
|
heroOffset: widget.heroOffset,
|
||||||
showStack: widget.showStack,
|
showStack: widget.showStack,
|
||||||
|
isOwner: widget.isOwner,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|