Compare commits
39 Commits
feat/serve
...
v1.112.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
228a7710e6 | ||
|
|
8014b0f86d | ||
|
|
fb962f49ea | ||
|
|
7f7fec2cea | ||
|
|
593f036c0d | ||
|
|
e934e368b3 | ||
|
|
f331a974ed | ||
|
|
9d09b95618 | ||
|
|
a8a63b24d0 | ||
|
|
ab0ed11778 | ||
|
|
5ec407b57c | ||
|
|
fdf0b16fe3 | ||
|
|
c924f6c27c | ||
|
|
df45ef0e35 | ||
|
|
81c813a882 | ||
|
|
b014162088 | ||
|
|
276101ee82 | ||
|
|
9837d60074 | ||
|
|
28b7443b92 | ||
|
|
5acdc958b6 | ||
|
|
e384692025 | ||
|
|
54b276c984 | ||
|
|
7eb004bd00 | ||
|
|
c2965c4408 | ||
|
|
b749a68349 | ||
|
|
30aa2c9b82 | ||
|
|
9ed04588b8 | ||
|
|
7d320217b9 | ||
|
|
efdf8bbca9 | ||
|
|
34c4fbf730 | ||
|
|
ca775ab3e9 | ||
|
|
2dd5514043 | ||
|
|
f33dbdfe9a | ||
|
|
b1587a5dee | ||
|
|
501485d0b1 | ||
|
|
ed7f857975 | ||
|
|
d346985457 | ||
|
|
a144a1bec3 | ||
|
|
9f318a9338 |
36
.github/release.yml
vendored
36
.github/release.yml
vendored
@@ -1,41 +1,29 @@
|
|||||||
changelog:
|
changelog:
|
||||||
categories:
|
categories:
|
||||||
- title: ⚠️ Breaking Changes
|
- title: 🚨 Breaking Changes
|
||||||
labels:
|
labels:
|
||||||
- breaking-change
|
- breaking-change
|
||||||
|
|
||||||
- title: 🗄️ Server
|
- title: 🔒 Security
|
||||||
labels:
|
labels:
|
||||||
- 🗄️server
|
- security
|
||||||
|
|
||||||
- title: 📱 Mobile
|
- title: 🚀 Features
|
||||||
labels:
|
labels:
|
||||||
- 📱mobile
|
- feature
|
||||||
|
|
||||||
- title: 🖥️ Web
|
- title: 🌟 Enhancements
|
||||||
labels:
|
labels:
|
||||||
- 🖥️web
|
- enhancement
|
||||||
|
|
||||||
- title: 🧠 Machine Learning
|
- title: 🐛 Bug fixes
|
||||||
labels:
|
labels:
|
||||||
- 🧠machine-learning
|
- bugfix
|
||||||
|
|
||||||
- title: ⚡ CLI
|
- title: 📚 Documentation
|
||||||
labels:
|
|
||||||
- cli
|
|
||||||
|
|
||||||
- title: 📓 Documentation
|
|
||||||
labels:
|
labels:
|
||||||
- documentation
|
- documentation
|
||||||
|
|
||||||
- title: 🔨 Maintenance
|
- title: 🌐 Translations
|
||||||
labels:
|
labels:
|
||||||
- deployment
|
- translation
|
||||||
- dependencies
|
|
||||||
- renovate
|
|
||||||
- maintenance
|
|
||||||
- tech-debt
|
|
||||||
|
|
||||||
- title: Other changes
|
|
||||||
labels:
|
|
||||||
- "*"
|
|
||||||
|
|||||||
43
cli/package-lock.json
generated
43
cli/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "@immich/cli",
|
"name": "@immich/cli",
|
||||||
"version": "2.2.13",
|
"version": "2.2.14",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "@immich/cli",
|
"name": "@immich/cli",
|
||||||
"version": "2.2.13",
|
"version": "2.2.14",
|
||||||
"license": "GNU Affero General Public License version 3",
|
"license": "GNU Affero General Public License version 3",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fast-glob": "^3.3.2",
|
"fast-glob": "^3.3.2",
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
"@types/cli-progress": "^3.11.0",
|
"@types/cli-progress": "^3.11.0",
|
||||||
"@types/lodash-es": "^4.17.12",
|
"@types/lodash-es": "^4.17.12",
|
||||||
"@types/mock-fs": "^4.13.1",
|
"@types/mock-fs": "^4.13.1",
|
||||||
"@types/node": "^20.14.13",
|
"@types/node": "^20.14.14",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
||||||
"@typescript-eslint/parser": "^8.0.0",
|
"@typescript-eslint/parser": "^8.0.0",
|
||||||
"@vitest/coverage-v8": "^2.0.5",
|
"@vitest/coverage-v8": "^2.0.5",
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
"prettier-plugin-organize-imports": "^4.0.0",
|
"prettier-plugin-organize-imports": "^4.0.0",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"vite": "^5.0.12",
|
"vite": "^5.0.12",
|
||||||
"vite-tsconfig-paths": "^4.3.2",
|
"vite-tsconfig-paths": "^5.0.0",
|
||||||
"vitest": "^2.0.5",
|
"vitest": "^2.0.5",
|
||||||
"vitest-fetch-mock": "^0.3.0",
|
"vitest-fetch-mock": "^0.3.0",
|
||||||
"yaml": "^2.3.1"
|
"yaml": "^2.3.1"
|
||||||
@@ -52,14 +52,14 @@
|
|||||||
},
|
},
|
||||||
"../open-api/typescript-sdk": {
|
"../open-api/typescript-sdk": {
|
||||||
"name": "@immich/sdk",
|
"name": "@immich/sdk",
|
||||||
"version": "1.111.0",
|
"version": "1.112.0",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "GNU Affero General Public License version 3",
|
"license": "GNU Affero General Public License version 3",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@oazapfts/runtime": "^1.0.2"
|
"@oazapfts/runtime": "^1.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^20.14.13",
|
"@types/node": "^20.14.14",
|
||||||
"typescript": "^5.3.3"
|
"typescript": "^5.3.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1269,9 +1269,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "20.14.14",
|
"version": "20.14.15",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.14.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.15.tgz",
|
||||||
"integrity": "sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==",
|
"integrity": "sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -3427,9 +3427,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.4.39",
|
"version": "8.4.41",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
|
||||||
"integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==",
|
"integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -4206,14 +4206,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "5.3.5",
|
"version": "5.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-5.4.0.tgz",
|
||||||
"integrity": "sha512-MdjglKR6AQXQb9JGiS7Rc2wC6uMjcm7Go/NHNO63EwiJXfuk9PgqiP/n5IDJCziMkfw9n4Ubp7lttNwz+8ZVKA==",
|
"integrity": "sha512-5xokfMX0PIiwCMCMb9ZJcMyh5wbBun0zUzKib+L65vAZ8GY9ePZMXxFrHbr/Kyll2+LSCY7xtERPpxkBDKngwg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.21.3",
|
"esbuild": "^0.21.3",
|
||||||
"postcss": "^8.4.39",
|
"postcss": "^8.4.40",
|
||||||
"rollup": "^4.13.0"
|
"rollup": "^4.13.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -4233,6 +4233,7 @@
|
|||||||
"less": "*",
|
"less": "*",
|
||||||
"lightningcss": "^1.21.0",
|
"lightningcss": "^1.21.0",
|
||||||
"sass": "*",
|
"sass": "*",
|
||||||
|
"sass-embedded": "*",
|
||||||
"stylus": "*",
|
"stylus": "*",
|
||||||
"sugarss": "*",
|
"sugarss": "*",
|
||||||
"terser": "^5.4.0"
|
"terser": "^5.4.0"
|
||||||
@@ -4250,6 +4251,9 @@
|
|||||||
"sass": {
|
"sass": {
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
|
"sass-embedded": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"stylus": {
|
"stylus": {
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
@@ -4284,10 +4288,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vite-tsconfig-paths": {
|
"node_modules/vite-tsconfig-paths": {
|
||||||
"version": "4.3.2",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-4.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.0.1.tgz",
|
||||||
"integrity": "sha512-0Vd/a6po6Q+86rPlntHye7F31zA2URZMbH8M3saAZ/xR9QoGN/L21bxEGfXdWmFdNkqPpRdxFT7nmNe12e9/uA==",
|
"integrity": "sha512-yqwv+LstU7NwPeNqajZzLEBVpUFU6Dugtb2P84FXuvaoYA+/70l9MHE+GYfYAycVyPSDYZ7mjOFuYBRqlEpTig==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"debug": "^4.1.1",
|
"debug": "^4.1.1",
|
||||||
"globrex": "^0.1.2",
|
"globrex": "^0.1.2",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@immich/cli",
|
"name": "@immich/cli",
|
||||||
"version": "2.2.13",
|
"version": "2.2.14",
|
||||||
"description": "Command Line Interface (CLI) for Immich",
|
"description": "Command Line Interface (CLI) for Immich",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"exports": "./dist/index.js",
|
"exports": "./dist/index.js",
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
"@types/cli-progress": "^3.11.0",
|
"@types/cli-progress": "^3.11.0",
|
||||||
"@types/lodash-es": "^4.17.12",
|
"@types/lodash-es": "^4.17.12",
|
||||||
"@types/mock-fs": "^4.13.1",
|
"@types/mock-fs": "^4.13.1",
|
||||||
"@types/node": "^20.14.13",
|
"@types/node": "^20.14.14",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
||||||
"@typescript-eslint/parser": "^8.0.0",
|
"@typescript-eslint/parser": "^8.0.0",
|
||||||
"@vitest/coverage-v8": "^2.0.5",
|
"@vitest/coverage-v8": "^2.0.5",
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
"prettier-plugin-organize-imports": "^4.0.0",
|
"prettier-plugin-organize-imports": "^4.0.0",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"vite": "^5.0.12",
|
"vite": "^5.0.12",
|
||||||
"vite-tsconfig-paths": "^4.3.2",
|
"vite-tsconfig-paths": "^5.0.0",
|
||||||
"vitest": "^2.0.5",
|
"vitest": "^2.0.5",
|
||||||
"vitest-fetch-mock": "^0.3.0",
|
"vitest-fetch-mock": "^0.3.0",
|
||||||
"yaml": "^2.3.1"
|
"yaml": "^2.3.1"
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ services:
|
|||||||
container_name: immich_prometheus
|
container_name: immich_prometheus
|
||||||
ports:
|
ports:
|
||||||
- 9090:9090
|
- 9090:9090
|
||||||
image: prom/prometheus@sha256:f20d3127bf2876f4a1df76246fca576b41ddf1125ed1c546fbd8b16ea55117e6
|
image: prom/prometheus@sha256:cafe963e591c872d38f3ea41ff8eb22cee97917b7c97b5c0ccd43a419f11f613
|
||||||
volumes:
|
volumes:
|
||||||
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
- ./prometheus.yml:/etc/prometheus/prometheus.yml
|
||||||
- prometheus-data:/prometheus
|
- prometheus-data:/prometheus
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ DB_DATA_LOCATION=./postgres
|
|||||||
IMMICH_VERSION=release
|
IMMICH_VERSION=release
|
||||||
|
|
||||||
# Connection secret for postgres. You should change it to a random password
|
# Connection secret for postgres. You should change it to a random password
|
||||||
|
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
|
||||||
DB_PASSWORD=postgres
|
DB_PASSWORD=postgres
|
||||||
|
|
||||||
# The values below this line do not need to be changed
|
# The values below this line do not need to be changed
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
|
|
||||||
### Unit tests
|
### Unit tests
|
||||||
|
|
||||||
Unit are run by calling `npm run test` from the `server` directory.
|
Unit are run by calling `npm run test` from the `server/` directory.
|
||||||
|
You need to run `npm install` (in `server/`) before _once_.
|
||||||
|
|
||||||
### End to end tests
|
### End to end tests
|
||||||
|
|
||||||
@@ -14,6 +15,11 @@ The e2e tests can be run by first starting up a test production environment via:
|
|||||||
make e2e
|
make e2e
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Before you can run the tests, you need to run the following commands _once_:
|
||||||
|
|
||||||
|
- `npm install` (in `e2e/`)
|
||||||
|
- `make open-api` (in the project root `/`)
|
||||||
|
|
||||||
Once the test environment is running, the e2e tests can be run via:
|
Once the test environment is running, the e2e tests can be run via:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
@@ -1,8 +1,22 @@
|
|||||||
# Create Custom Map Styles for Immich Using Maptiler
|
# Custom Map Styles
|
||||||
|
|
||||||
You may decide that you'd like to modify the style document which is used to draw the maps in Immich. This can be done easily using Maptiler, if you do not want to write an entire JSON document by hand.
|
You may decide that you'd like to modify the style document which is used to
|
||||||
|
draw the maps in Immich. In addition to visual customization, this also allows
|
||||||
|
you to pick your own map tile provider instead of the default one. The default
|
||||||
|
`style.json` for [light theme](https://github.com/immich-app/immich/tree/main/server/resources/style-light.json)
|
||||||
|
and [dark theme](https://github.com/immich-app/immich/blob/main/server/resources/style-dark.json)
|
||||||
|
can be used as a basis for creating your own style.
|
||||||
|
|
||||||
## Steps
|
There are several sources for already-made `style.json` map themes, as well as
|
||||||
|
online generators you can use.
|
||||||
|
|
||||||
|
1. In **Immich**, navigate to **Administration --> Settings --> Map & GPS Settings** and expand the **Map Settings** subsection.
|
||||||
|
2. Paste the link to your JSON style in either the **Light Style** or **Dark Style**. (You can add different styles which will help make the map style more appropriate depending on whether you set **Immich** to Light or Dark mode.)
|
||||||
|
3. Save your selections. Reload the map, and enjoy your custom map style!
|
||||||
|
|
||||||
|
## Use Maptiler to build a custom style
|
||||||
|
|
||||||
|
Customizing the map style can be done easily using Maptiler, if you do not want to write an entire JSON document by hand.
|
||||||
|
|
||||||
1. Create a free account at https://cloud.maptiler.com
|
1. Create a free account at https://cloud.maptiler.com
|
||||||
2. Once logged in, you can either create a brand new map by clicking on **New Map**, selecting a starter map, and then clicking **Customize**, OR by selecting a **Standard Map** and customizing it from there.
|
2. Once logged in, you can either create a brand new map by clicking on **New Map**, selecting a starter map, and then clicking **Customize**, OR by selecting a **Standard Map** and customizing it from there.
|
||||||
@@ -11,6 +25,3 @@ You may decide that you'd like to modify the style document which is used to dra
|
|||||||
5. Next, **Publish** your style using the **Publish** button at the top right. This will deploy it to production, which means it is able to be exposed over the Internet. Maptiler will present an interactive side-by-side map with the original and your changes prior to publication.<br/>
|
5. Next, **Publish** your style using the **Publish** button at the top right. This will deploy it to production, which means it is able to be exposed over the Internet. Maptiler will present an interactive side-by-side map with the original and your changes prior to publication.<br/>
|
||||||
6. Maptiler will warn you that changing the map will change it across all apps using the map. Since no apps are using the map yet, this is okay.
|
6. Maptiler will warn you that changing the map will change it across all apps using the map. Since no apps are using the map yet, this is okay.
|
||||||
7. Clicking on the name of your new map at the top left will bring you to the item's **details** page. From here, copy the link to the JSON style under **Use vector style**. This link will automatically contain your personal API key to Maptiler.
|
7. Clicking on the name of your new map at the top left will bring you to the item's **details** page. From here, copy the link to the JSON style under **Use vector style**. This link will automatically contain your personal API key to Maptiler.
|
||||||
8. In **Immich**, navigate to **Administration --> Settings --> Map & GPS Settings** and expand the **Map Settings** subsection.
|
|
||||||
9. Paste the link to your JSON style in either the **Light Style** or **Dark Style**. (You can add different styles which will help make the map style more appropriate depending on whether you set **Immich** to Light or Dark mode.
|
|
||||||
10. Save your selections. Reload the map, and enjoy your custom map style!
|
|
||||||
|
|||||||
@@ -56,7 +56,8 @@ Optionally, you can enable hardware acceleration for machine learning and transc
|
|||||||
|
|
||||||
- Populate custom database information if necessary.
|
- Populate custom database information if necessary.
|
||||||
- Populate `UPLOAD_LOCATION` with your preferred location for storing backup assets.
|
- Populate `UPLOAD_LOCATION` with your preferred location for storing backup assets.
|
||||||
- Consider changing `DB_PASSWORD` to something randomly generated
|
- Consider changing `DB_PASSWORD` to a custom value. Postgres is not publically exposed, so this password is only used for local authentication.
|
||||||
|
To avoid issues with Docker parsing this value, it is best to use only the characters `A-Za-z0-9`.
|
||||||
|
|
||||||
### Step 3 - Start the containers
|
### Step 3 - Start the containers
|
||||||
|
|
||||||
|
|||||||
@@ -38,21 +38,23 @@ Regardless of filesystem, it is not recommended to use a network share for your
|
|||||||
|
|
||||||
## General
|
## General
|
||||||
|
|
||||||
| Variable | Description | Default | Containers | Workers |
|
| Variable | Description | Default | Containers | Workers |
|
||||||
| :---------------------------------- | :-------------------------------------------------- | :--------------------------: | :----------------------- | :----------------- |
|
| :---------------------------------- | :---------------------------------------------------------------------------------------- | :--------------------------: | :----------------------- | :----------------- |
|
||||||
| `TZ` | Timezone | | server | microservices |
|
| `TZ` | Timezone | | server | microservices |
|
||||||
| `IMMICH_ENV` | Environment (production, development) | `production` | server, machine learning | api, microservices |
|
| `IMMICH_ENV` | Environment (production, development) | `production` | server, machine learning | api, microservices |
|
||||||
| `IMMICH_LOG_LEVEL` | Log Level (verbose, debug, log, warn, error) | `log` | server, machine learning | api, microservices |
|
| `IMMICH_LOG_LEVEL` | Log Level (verbose, debug, log, warn, error) | `log` | server, machine learning | api, microservices |
|
||||||
| `IMMICH_MEDIA_LOCATION` | Media Location | `./upload`<sup>\*1</sup> | server | api, microservices |
|
| `IMMICH_MEDIA_LOCATION` | Media Location inside the container ⚠️**You probably shouldn't set this**<sup>\*1</sup>⚠️ | `./upload`<sup>\*2</sup> | server | api, microservices |
|
||||||
| `IMMICH_CONFIG_FILE` | Path to config file | | server | api, microservices |
|
| `IMMICH_CONFIG_FILE` | Path to config file | | server | api, microservices |
|
||||||
| `NO_COLOR` | Set to `true` to disable color-coded log output | `false` | server, machine learning | |
|
| `NO_COLOR` | Set to `true` to disable color-coded log output | `false` | server, machine learning | |
|
||||||
| `CPU_CORES` | Amount of cores available to the immich server | auto-detected cpu core count | server | |
|
| `CPU_CORES` | Amount of cores available to the immich server | auto-detected cpu core count | server | |
|
||||||
| `IMMICH_API_METRICS_PORT` | Port for the OTEL metrics | `8081` | server | api |
|
| `IMMICH_API_METRICS_PORT` | Port for the OTEL metrics | `8081` | server | api |
|
||||||
| `IMMICH_MICROSERVICES_METRICS_PORT` | Port for the OTEL metrics | `8082` | server | microservices |
|
| `IMMICH_MICROSERVICES_METRICS_PORT` | Port for the OTEL metrics | `8082` | server | microservices |
|
||||||
| `IMMICH_PROCESS_INVALID_IMAGES` | When `true`, generate thumbnails for invalid images | | server | microservices |
|
| `IMMICH_PROCESS_INVALID_IMAGES` | When `true`, generate thumbnails for invalid images | | server | microservices |
|
||||||
| `IMMICH_TRUSTED_PROXIES` | List of comma separated IPs set as trusted proxies | | server | api |
|
| `IMMICH_TRUSTED_PROXIES` | List of comma separated IPs set as trusted proxies | | server | api |
|
||||||
|
|
||||||
\*1: With the default `WORKDIR` of `/usr/src/app`, this path will resolve to `/usr/src/app/upload`.
|
\*1: This path is where the Immich code looks for the files, which is internal to the docker container. Setting it to a path on your host will certainly break things, you should use the `UPLOAD_LOCATION` variable instead.
|
||||||
|
|
||||||
|
\*2: With the default `WORKDIR` of `/usr/src/app`, this path will resolve to `/usr/src/app/upload`.
|
||||||
It only need to be set if the Immich deployment method is changing.
|
It only need to be set if the Immich deployment method is changing.
|
||||||
|
|
||||||
:::tip
|
:::tip
|
||||||
|
|||||||
68
docs/package-lock.json
generated
68
docs/package-lock.json
generated
@@ -4237,9 +4237,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/autoprefixer": {
|
"node_modules/autoprefixer": {
|
||||||
"version": "10.4.19",
|
"version": "10.4.20",
|
||||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz",
|
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
|
||||||
"integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==",
|
"integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -4254,12 +4254,13 @@
|
|||||||
"url": "https://github.com/sponsors/ai"
|
"url": "https://github.com/sponsors/ai"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"browserslist": "^4.23.0",
|
"browserslist": "^4.23.3",
|
||||||
"caniuse-lite": "^1.0.30001599",
|
"caniuse-lite": "^1.0.30001646",
|
||||||
"fraction.js": "^4.3.7",
|
"fraction.js": "^4.3.7",
|
||||||
"normalize-range": "^0.1.2",
|
"normalize-range": "^0.1.2",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.1",
|
||||||
"postcss-value-parser": "^4.2.0"
|
"postcss-value-parser": "^4.2.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -4531,9 +4532,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/browserslist": {
|
"node_modules/browserslist": {
|
||||||
"version": "4.23.0",
|
"version": "4.23.3",
|
||||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
|
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz",
|
||||||
"integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
|
"integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -4548,11 +4549,12 @@
|
|||||||
"url": "https://github.com/sponsors/ai"
|
"url": "https://github.com/sponsors/ai"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"caniuse-lite": "^1.0.30001587",
|
"caniuse-lite": "^1.0.30001646",
|
||||||
"electron-to-chromium": "^1.4.668",
|
"electron-to-chromium": "^1.5.4",
|
||||||
"node-releases": "^2.0.14",
|
"node-releases": "^2.0.18",
|
||||||
"update-browserslist-db": "^1.0.13"
|
"update-browserslist-db": "^1.1.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"browserslist": "cli.js"
|
"browserslist": "cli.js"
|
||||||
@@ -4699,9 +4701,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001614",
|
"version": "1.0.30001651",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001614.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz",
|
||||||
"integrity": "sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==",
|
"integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -4715,7 +4717,8 @@
|
|||||||
"type": "github",
|
"type": "github",
|
||||||
"url": "https://github.com/sponsors/ai"
|
"url": "https://github.com/sponsors/ai"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
"license": "CC-BY-4.0"
|
||||||
},
|
},
|
||||||
"node_modules/ccount": {
|
"node_modules/ccount": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
@@ -6342,9 +6345,10 @@
|
|||||||
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
|
"integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
|
||||||
},
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
"version": "1.4.751",
|
"version": "1.5.6",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.751.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.6.tgz",
|
||||||
"integrity": "sha512-2DEPi++qa89SMGRhufWTiLmzqyuGmNF3SK4+PQetW1JKiZdEpF4XQonJXJCzyuYSA6mauiMhbyVhqYAP45Hvfw=="
|
"integrity": "sha512-jwXWsM5RPf6j9dPYzaorcBSUg6AiqocPEyMpkchkvntaH9HGfOOMZwxMJjDY/XEs3T5dM7uyH1VhRMkqUU9qVw==",
|
||||||
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/emoji-regex": {
|
"node_modules/emoji-regex": {
|
||||||
"version": "9.2.2",
|
"version": "9.2.2",
|
||||||
@@ -11958,9 +11962,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/node-releases": {
|
"node_modules/node-releases": {
|
||||||
"version": "2.0.14",
|
"version": "2.0.18",
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
|
||||||
"integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
|
"integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
|
||||||
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/nopt": {
|
"node_modules/nopt": {
|
||||||
"version": "1.0.10",
|
"version": "1.0.10",
|
||||||
@@ -16015,9 +16020,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tailwindcss": {
|
"node_modules/tailwindcss": {
|
||||||
"version": "3.4.7",
|
"version": "3.4.9",
|
||||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.7.tgz",
|
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.9.tgz",
|
||||||
"integrity": "sha512-rxWZbe87YJb4OcSopb7up2Ba4U82BoiSGUdoDr3Ydrg9ckxFS/YWsvhN323GMcddgU65QRy7JndC7ahhInhvlQ==",
|
"integrity": "sha512-1SEOvRr6sSdV5IDf9iC+NU4dhwdqzF4zKKq3sAbasUWHEM6lsMhX+eNN5gkPx1BvLFEnZQEUFbXnGj8Qlp83Pg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@alloc/quick-lru": "^5.2.0",
|
"@alloc/quick-lru": "^5.2.0",
|
||||||
@@ -16608,9 +16613,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/update-browserslist-db": {
|
"node_modules/update-browserslist-db": {
|
||||||
"version": "1.0.13",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
|
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz",
|
||||||
"integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
|
"integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -16625,9 +16630,10 @@
|
|||||||
"url": "https://github.com/sponsors/ai"
|
"url": "https://github.com/sponsors/ai"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"escalade": "^3.1.1",
|
"escalade": "^3.1.2",
|
||||||
"picocolors": "^1.0.0"
|
"picocolors": "^1.0.1"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"update-browserslist-db": "cli.js"
|
"update-browserslist-db": "cli.js"
|
||||||
|
|||||||
4
docs/static/archived-versions.json
vendored
4
docs/static/archived-versions.json
vendored
@@ -1,4 +1,8 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"label": "v1.112.0",
|
||||||
|
"url": "https://v1.112.0.archive.immich.app"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"label": "v1.111.0",
|
"label": "v1.111.0",
|
||||||
"url": "https://v1.111.0.archive.immich.app"
|
"url": "https://v1.111.0.archive.immich.app"
|
||||||
|
|||||||
51
e2e/package-lock.json
generated
51
e2e/package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "immich-e2e",
|
"name": "immich-e2e",
|
||||||
"version": "1.111.0",
|
"version": "1.112.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "immich-e2e",
|
"name": "immich-e2e",
|
||||||
"version": "1.111.0",
|
"version": "1.112.0",
|
||||||
"license": "GNU Affero General Public License version 3",
|
"license": "GNU Affero General Public License version 3",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/eslintrc": "^3.1.0",
|
"@eslint/eslintrc": "^3.1.0",
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
"@immich/sdk": "file:../open-api/typescript-sdk",
|
"@immich/sdk": "file:../open-api/typescript-sdk",
|
||||||
"@playwright/test": "^1.44.1",
|
"@playwright/test": "^1.44.1",
|
||||||
"@types/luxon": "^3.4.2",
|
"@types/luxon": "^3.4.2",
|
||||||
"@types/node": "^20.14.13",
|
"@types/node": "^20.14.14",
|
||||||
"@types/oidc-provider": "^8.5.1",
|
"@types/oidc-provider": "^8.5.1",
|
||||||
"@types/pg": "^8.11.0",
|
"@types/pg": "^8.11.0",
|
||||||
"@types/pngjs": "^6.0.4",
|
"@types/pngjs": "^6.0.4",
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
},
|
},
|
||||||
"../cli": {
|
"../cli": {
|
||||||
"name": "@immich/cli",
|
"name": "@immich/cli",
|
||||||
"version": "2.2.13",
|
"version": "2.2.14",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "GNU Affero General Public License version 3",
|
"license": "GNU Affero General Public License version 3",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
"@types/cli-progress": "^3.11.0",
|
"@types/cli-progress": "^3.11.0",
|
||||||
"@types/lodash-es": "^4.17.12",
|
"@types/lodash-es": "^4.17.12",
|
||||||
"@types/mock-fs": "^4.13.1",
|
"@types/mock-fs": "^4.13.1",
|
||||||
"@types/node": "^20.14.13",
|
"@types/node": "^20.14.14",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
||||||
"@typescript-eslint/parser": "^8.0.0",
|
"@typescript-eslint/parser": "^8.0.0",
|
||||||
"@vitest/coverage-v8": "^2.0.5",
|
"@vitest/coverage-v8": "^2.0.5",
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
"prettier-plugin-organize-imports": "^4.0.0",
|
"prettier-plugin-organize-imports": "^4.0.0",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"vite": "^5.0.12",
|
"vite": "^5.0.12",
|
||||||
"vite-tsconfig-paths": "^4.3.2",
|
"vite-tsconfig-paths": "^5.0.0",
|
||||||
"vitest": "^2.0.5",
|
"vitest": "^2.0.5",
|
||||||
"vitest-fetch-mock": "^0.3.0",
|
"vitest-fetch-mock": "^0.3.0",
|
||||||
"yaml": "^2.3.1"
|
"yaml": "^2.3.1"
|
||||||
@@ -92,14 +92,14 @@
|
|||||||
},
|
},
|
||||||
"../open-api/typescript-sdk": {
|
"../open-api/typescript-sdk": {
|
||||||
"name": "@immich/sdk",
|
"name": "@immich/sdk",
|
||||||
"version": "1.111.0",
|
"version": "1.112.0",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "GNU Affero General Public License version 3",
|
"license": "GNU Affero General Public License version 3",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@oazapfts/runtime": "^1.0.2"
|
"@oazapfts/runtime": "^1.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^20.14.13",
|
"@types/node": "^20.14.14",
|
||||||
"typescript": "^5.3.3"
|
"typescript": "^5.3.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -1113,13 +1113,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@playwright/test": {
|
"node_modules/@playwright/test": {
|
||||||
"version": "1.45.3",
|
"version": "1.46.0",
|
||||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.45.3.tgz",
|
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.46.0.tgz",
|
||||||
"integrity": "sha512-UKF4XsBfy+u3MFWEH44hva1Q8Da28G6RFtR2+5saw+jgAFQV5yYnB1fu68Mz7fO+5GJF3wgwAIs0UelU8TxFrA==",
|
"integrity": "sha512-/QYft5VArOrGRP5pgkrfKksqsKA6CEFyGQ/gjNe6q0y4tZ1aaPfq4gIjudr1s3D+pXyrPRdsy4opKDrjBabE5w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"playwright": "1.45.3"
|
"playwright": "1.46.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"playwright": "cli.js"
|
"playwright": "cli.js"
|
||||||
@@ -1516,9 +1516,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
"version": "20.14.14",
|
"version": "20.14.15",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.14.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.15.tgz",
|
||||||
"integrity": "sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==",
|
"integrity": "sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -4357,10 +4357,11 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/luxon": {
|
"node_modules/luxon": {
|
||||||
"version": "3.4.4",
|
"version": "3.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.5.0.tgz",
|
||||||
"integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==",
|
"integrity": "sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
}
|
}
|
||||||
@@ -5177,13 +5178,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/playwright": {
|
"node_modules/playwright": {
|
||||||
"version": "1.45.3",
|
"version": "1.46.0",
|
||||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.45.3.tgz",
|
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.46.0.tgz",
|
||||||
"integrity": "sha512-QhVaS+lpluxCaioejDZ95l4Y4jSFCsBvl2UZkpeXlzxmqS+aABr5c82YmfMHrL6x27nvrvykJAFpkzT2eWdJww==",
|
"integrity": "sha512-XYJ5WvfefWONh1uPAUAi0H2xXV5S3vrtcnXe6uAOgdGi3aSpqOSXX08IAjXW34xitfuOJsvXU5anXZxPSEQiJw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"playwright-core": "1.45.3"
|
"playwright-core": "1.46.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"playwright": "cli.js"
|
"playwright": "cli.js"
|
||||||
@@ -5196,9 +5197,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/playwright-core": {
|
"node_modules/playwright-core": {
|
||||||
"version": "1.45.3",
|
"version": "1.46.0",
|
||||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.3.tgz",
|
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.46.0.tgz",
|
||||||
"integrity": "sha512-+ym0jNbcjikaOwwSZycFbwkWgfruWvYlJfThKYAlImbxUgdWFO2oW70ojPm4OpE4t6TAo2FY/smM+hpVTtkhDA==",
|
"integrity": "sha512-9Y/d5UIwuJk8t3+lhmMSAJyNP1BUC/DqP3cQJDQQL/oWqAiuPTLgy7Q5dzglmTLwcBRdetzgNM/gni7ckfTr6A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "immich-e2e",
|
"name": "immich-e2e",
|
||||||
"version": "1.111.0",
|
"version": "1.112.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"@immich/sdk": "file:../open-api/typescript-sdk",
|
"@immich/sdk": "file:../open-api/typescript-sdk",
|
||||||
"@playwright/test": "^1.44.1",
|
"@playwright/test": "^1.44.1",
|
||||||
"@types/luxon": "^3.4.2",
|
"@types/luxon": "^3.4.2",
|
||||||
"@types/node": "^20.14.13",
|
"@types/node": "^20.14.14",
|
||||||
"@types/oidc-provider": "^8.5.1",
|
"@types/oidc-provider": "^8.5.1",
|
||||||
"@types/pg": "^8.11.0",
|
"@types/pg": "^8.11.0",
|
||||||
"@types/pngjs": "^6.0.4",
|
"@types/pngjs": "^6.0.4",
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ const makeUploadDto = (options?: { omit: string }): Record<string, any> => {
|
|||||||
const TEN_TIMES = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
const TEN_TIMES = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||||
|
|
||||||
const locationAssetFilepath = `${testAssetDir}/metadata/gps-position/thompson-springs.jpg`;
|
const locationAssetFilepath = `${testAssetDir}/metadata/gps-position/thompson-springs.jpg`;
|
||||||
|
const ratingAssetFilepath = `${testAssetDir}/metadata/rating/mongolels.jpg`;
|
||||||
|
|
||||||
const readTags = async (bytes: Buffer, filename: string) => {
|
const readTags = async (bytes: Buffer, filename: string) => {
|
||||||
const filepath = join(tempDir, filename);
|
const filepath = join(tempDir, filename);
|
||||||
@@ -72,6 +73,7 @@ describe('/asset', () => {
|
|||||||
let user2Assets: AssetMediaResponseDto[];
|
let user2Assets: AssetMediaResponseDto[];
|
||||||
let stackAssets: AssetMediaResponseDto[];
|
let stackAssets: AssetMediaResponseDto[];
|
||||||
let locationAsset: AssetMediaResponseDto;
|
let locationAsset: AssetMediaResponseDto;
|
||||||
|
let ratingAsset: AssetMediaResponseDto;
|
||||||
|
|
||||||
const setupTests = async () => {
|
const setupTests = async () => {
|
||||||
await utils.resetDatabase();
|
await utils.resetDatabase();
|
||||||
@@ -99,6 +101,16 @@ describe('/asset', () => {
|
|||||||
|
|
||||||
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: locationAsset.id });
|
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: locationAsset.id });
|
||||||
|
|
||||||
|
// asset rating
|
||||||
|
ratingAsset = await utils.createAsset(admin.accessToken, {
|
||||||
|
assetData: {
|
||||||
|
filename: 'mongolels.jpg',
|
||||||
|
bytes: await readFile(ratingAssetFilepath),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: ratingAsset.id });
|
||||||
|
|
||||||
user1Assets = await Promise.all([
|
user1Assets = await Promise.all([
|
||||||
utils.createAsset(user1.accessToken),
|
utils.createAsset(user1.accessToken),
|
||||||
utils.createAsset(user1.accessToken),
|
utils.createAsset(user1.accessToken),
|
||||||
@@ -214,6 +226,22 @@ describe('/asset', () => {
|
|||||||
expect(body).toMatchObject({ id: user1Assets[0].id });
|
expect(body).toMatchObject({ id: user1Assets[0].id });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should get the asset rating', async () => {
|
||||||
|
await utils.waitForWebsocketEvent({
|
||||||
|
event: 'assetUpload',
|
||||||
|
id: ratingAsset.id,
|
||||||
|
});
|
||||||
|
|
||||||
|
const { status, body } = await request(app)
|
||||||
|
.get(`/assets/${ratingAsset.id}`)
|
||||||
|
.set('Authorization', `Bearer ${admin.accessToken}`);
|
||||||
|
expect(status).toBe(200);
|
||||||
|
expect(body).toMatchObject({
|
||||||
|
id: ratingAsset.id,
|
||||||
|
exifInfo: expect.objectContaining({ rating: 3 }),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it('should work with a shared link', async () => {
|
it('should work with a shared link', async () => {
|
||||||
const sharedLink = await utils.createSharedLink(user1.accessToken, {
|
const sharedLink = await utils.createSharedLink(user1.accessToken, {
|
||||||
type: SharedLinkType.Individual,
|
type: SharedLinkType.Individual,
|
||||||
@@ -575,6 +603,31 @@ describe('/asset', () => {
|
|||||||
expect(status).toEqual(200);
|
expect(status).toEqual(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should set the rating', async () => {
|
||||||
|
const { status, body } = await request(app)
|
||||||
|
.put(`/assets/${user1Assets[0].id}`)
|
||||||
|
.set('Authorization', `Bearer ${user1.accessToken}`)
|
||||||
|
.send({ rating: 2 });
|
||||||
|
expect(body).toMatchObject({
|
||||||
|
id: user1Assets[0].id,
|
||||||
|
exifInfo: expect.objectContaining({
|
||||||
|
rating: 2,
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
expect(status).toEqual(200);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should reject invalid rating', async () => {
|
||||||
|
for (const test of [{ rating: 7 }, { rating: 3.5 }, { rating: null }]) {
|
||||||
|
const { status, body } = await request(app)
|
||||||
|
.put(`/assets/${user1Assets[0].id}`)
|
||||||
|
.send(test)
|
||||||
|
.set('Authorization', `Bearer ${user1.accessToken}`);
|
||||||
|
expect(status).toBe(400);
|
||||||
|
expect(body).toEqual(errorDto.badRequest());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
it('should return tagged people', async () => {
|
it('should return tagged people', async () => {
|
||||||
const { status, body } = await request(app)
|
const { status, body } = await request(app)
|
||||||
.put(`/assets/${user1Assets[0].id}`)
|
.put(`/assets/${user1Assets[0].id}`)
|
||||||
|
|||||||
@@ -1,16 +1,23 @@
|
|||||||
import { AssetMediaResponseDto, LoginResponseDto, SharedLinkType } from '@immich/sdk';
|
import { AssetMediaResponseDto, LoginResponseDto, SharedLinkType } from '@immich/sdk';
|
||||||
import { expect, test } from '@playwright/test';
|
import { expect, test } from '@playwright/test';
|
||||||
|
import type { Socket } from 'socket.io-client';
|
||||||
import { utils } from 'src/utils';
|
import { utils } from 'src/utils';
|
||||||
|
|
||||||
test.describe('Detail Panel', () => {
|
test.describe('Detail Panel', () => {
|
||||||
let admin: LoginResponseDto;
|
let admin: LoginResponseDto;
|
||||||
let asset: AssetMediaResponseDto;
|
let asset: AssetMediaResponseDto;
|
||||||
|
let websocket: Socket;
|
||||||
|
|
||||||
test.beforeAll(async () => {
|
test.beforeAll(async () => {
|
||||||
utils.initSdk();
|
utils.initSdk();
|
||||||
await utils.resetDatabase();
|
await utils.resetDatabase();
|
||||||
admin = await utils.adminSetup();
|
admin = await utils.adminSetup();
|
||||||
asset = await utils.createAsset(admin.accessToken);
|
asset = await utils.createAsset(admin.accessToken);
|
||||||
|
websocket = await utils.connectWebsocket(admin.accessToken);
|
||||||
|
});
|
||||||
|
|
||||||
|
test.afterAll(() => {
|
||||||
|
utils.disconnectWebsocket(websocket);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('can be opened for shared links', async ({ page }) => {
|
test('can be opened for shared links', async ({ page }) => {
|
||||||
@@ -57,4 +64,23 @@ test.describe('Detail Panel', () => {
|
|||||||
await expect(textarea).toBeVisible();
|
await expect(textarea).toBeVisible();
|
||||||
await expect(textarea).not.toBeDisabled();
|
await expect(textarea).not.toBeDisabled();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('description changes are visible after reopening', async ({ context, page }) => {
|
||||||
|
await utils.setAuthCookies(context, admin.accessToken);
|
||||||
|
await page.goto(`/photos/${asset.id}`);
|
||||||
|
await page.waitForSelector('#immich-asset-viewer');
|
||||||
|
|
||||||
|
await page.getByRole('button', { name: 'Info' }).click();
|
||||||
|
const textarea = page.getByRole('textbox', { name: 'Add a description' });
|
||||||
|
await textarea.fill('new description');
|
||||||
|
await expect(textarea).toHaveValue('new description');
|
||||||
|
|
||||||
|
await page.getByRole('button', { name: 'Info' }).click();
|
||||||
|
await expect(textarea).not.toBeVisible();
|
||||||
|
await page.getByRole('button', { name: 'Info' }).click();
|
||||||
|
await expect(textarea).toBeVisible();
|
||||||
|
|
||||||
|
await utils.waitForWebsocketEvent({ event: 'assetUpdate', id: asset.id });
|
||||||
|
await expect(textarea).toHaveValue('new description');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ test.describe('Registration', () => {
|
|||||||
// onboarding
|
// onboarding
|
||||||
await expect(page).toHaveURL('/auth/onboarding');
|
await expect(page).toHaveURL('/auth/onboarding');
|
||||||
await page.getByRole('button', { name: 'Theme' }).click();
|
await page.getByRole('button', { name: 'Theme' }).click();
|
||||||
|
await page.getByRole('button', { name: 'Privacy' }).click();
|
||||||
await page.getByRole('button', { name: 'Storage Template' }).click();
|
await page.getByRole('button', { name: 'Storage Template' }).click();
|
||||||
await page.getByRole('button', { name: 'Done' }).click();
|
await page.getByRole('button', { name: 'Done' }).click();
|
||||||
|
|
||||||
|
|||||||
Submodule e2e/test-assets updated: 898069e47f...39f25a96f1
@@ -1,6 +1,6 @@
|
|||||||
ARG DEVICE=cpu
|
ARG DEVICE=cpu
|
||||||
|
|
||||||
FROM python:3.11-bookworm@sha256:d0131ce0ff4bdb5e9eae6bc86ebde891c207d5cac1f3f582b5de0f903cc68384 AS builder-cpu
|
FROM python:3.11-bookworm@sha256:add76c758e402c3acf53b8251da50d8ae67989a81ca96ff4331e296773df853d AS builder-cpu
|
||||||
|
|
||||||
FROM builder-cpu AS builder-openvino
|
FROM builder-cpu AS builder-openvino
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@ RUN python3 -m venv /opt/venv
|
|||||||
COPY poetry.lock pyproject.toml ./
|
COPY poetry.lock pyproject.toml ./
|
||||||
RUN poetry install --sync --no-interaction --no-ansi --no-root --with ${DEVICE} --without dev
|
RUN poetry install --sync --no-interaction --no-ansi --no-root --with ${DEVICE} --without dev
|
||||||
|
|
||||||
FROM python:3.11-slim-bookworm@sha256:a90e299af8a9cd6b59c4aaed2b024c78561476978244a1ab89742a4a5ac8c974 AS prod-cpu
|
FROM python:3.11-slim-bookworm@sha256:1c0c54195c7c7b46e61a2f3b906e9b55a8165f20388a0eeb4af4c6f8579988ac AS prod-cpu
|
||||||
|
|
||||||
FROM prod-cpu AS prod-openvino
|
FROM prod-cpu AS prod-openvino
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM mambaorg/micromamba:bookworm-slim@sha256:954e438daab0ad0835430ea84acb27dd47d1ea35a7120c3c9dd9d1a5578f4b13 AS builder
|
FROM mambaorg/micromamba:bookworm-slim@sha256:e37ec9f3f7dea01ef9958d3d924d46077911f7e29c4faed40cd6b37a9ac239fc AS builder
|
||||||
|
|
||||||
ENV TRANSFORMERS_CACHE=/cache \
|
ENV TRANSFORMERS_CACHE=/cache \
|
||||||
PYTHONDONTWRITEBYTECODE=1 \
|
PYTHONDONTWRITEBYTECODE=1 \
|
||||||
|
|||||||
318
machine-learning/poetry.lock
generated
318
machine-learning/poetry.lock
generated
@@ -64,33 +64,33 @@ trio = ["trio (>=0.23)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "black"
|
name = "black"
|
||||||
version = "24.4.2"
|
version = "24.8.0"
|
||||||
description = "The uncompromising code formatter."
|
description = "The uncompromising code formatter."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"},
|
{file = "black-24.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:09cdeb74d494ec023ded657f7092ba518e8cf78fa8386155e4a03fdcc44679e6"},
|
||||||
{file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"},
|
{file = "black-24.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81c6742da39f33b08e791da38410f32e27d632260e599df7245cccee2064afeb"},
|
||||||
{file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"},
|
{file = "black-24.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:707a1ca89221bc8a1a64fb5e15ef39cd755633daa672a9db7498d1c19de66a42"},
|
||||||
{file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"},
|
{file = "black-24.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d6417535d99c37cee4091a2f24eb2b6d5ec42b144d50f1f2e436d9fe1916fe1a"},
|
||||||
{file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"},
|
{file = "black-24.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fb6e2c0b86bbd43dee042e48059c9ad7830abd5c94b0bc518c0eeec57c3eddc1"},
|
||||||
{file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"},
|
{file = "black-24.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:837fd281f1908d0076844bc2b801ad2d369c78c45cf800cad7b61686051041af"},
|
||||||
{file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"},
|
{file = "black-24.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62e8730977f0b77998029da7971fa896ceefa2c4c4933fcd593fa599ecbf97a4"},
|
||||||
{file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"},
|
{file = "black-24.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:72901b4913cbac8972ad911dc4098d5753704d1f3c56e44ae8dce99eecb0e3af"},
|
||||||
{file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"},
|
{file = "black-24.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c046c1d1eeb7aea9335da62472481d3bbf3fd986e093cffd35f4385c94ae368"},
|
||||||
{file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"},
|
{file = "black-24.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:649f6d84ccbae73ab767e206772cc2d7a393a001070a4c814a546afd0d423aed"},
|
||||||
{file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"},
|
{file = "black-24.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b59b250fdba5f9a9cd9d0ece6e6d993d91ce877d121d161e4698af3eb9c1018"},
|
||||||
{file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"},
|
{file = "black-24.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e55d30d44bed36593c3163b9bc63bf58b3b30e4611e4d88a0c3c239930ed5b2"},
|
||||||
{file = "black-24.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf10f7310db693bb62692609b397e8d67257c55f949abde4c67f9cc574492cc7"},
|
{file = "black-24.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:505289f17ceda596658ae81b61ebbe2d9b25aa78067035184ed0a9d855d18afd"},
|
||||||
{file = "black-24.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98e123f1d5cfd42f886624d84464f7756f60ff6eab89ae845210631714f6db94"},
|
{file = "black-24.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b19c9ad992c7883ad84c9b22aaa73562a16b819c1d8db7a1a1a49fb7ec13c7d2"},
|
||||||
{file = "black-24.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48a85f2cb5e6799a9ef05347b476cce6c182d6c71ee36925a6c194d074336ef8"},
|
{file = "black-24.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f13f7f386f86f8121d76599114bb8c17b69d962137fc70efe56137727c7047e"},
|
||||||
{file = "black-24.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b1530ae42e9d6d5b670a34db49a94115a64596bc77710b1d05e9801e62ca0a7c"},
|
{file = "black-24.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:f490dbd59680d809ca31efdae20e634f3fae27fba3ce0ba3208333b713bc3920"},
|
||||||
{file = "black-24.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1"},
|
{file = "black-24.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eab4dd44ce80dea27dc69db40dab62d4ca96112f87996bca68cd75639aeb2e4c"},
|
||||||
{file = "black-24.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da33a1a5e49c4122ccdfd56cd021ff1ebc4a1ec4e2d01594fef9b6f267a9e741"},
|
{file = "black-24.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3c4285573d4897a7610054af5a890bde7c65cb466040c5f0c8b732812d7f0e5e"},
|
||||||
{file = "black-24.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e"},
|
{file = "black-24.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e84e33b37be070ba135176c123ae52a51f82306def9f7d063ee302ecab2cf47"},
|
||||||
{file = "black-24.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9176b9832e84308818a99a561e90aa479e73c523b3f77afd07913380ae2eab7"},
|
{file = "black-24.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:73bbf84ed136e45d451a260c6b73ed674652f90a2b3211d6a35e78054563a9bb"},
|
||||||
{file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"},
|
{file = "black-24.8.0-py3-none-any.whl", hash = "sha256:972085c618ee94f402da1af548a4f218c754ea7e5dc70acb168bfaca4c2542ed"},
|
||||||
{file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"},
|
{file = "black-24.8.0.tar.gz", hash = "sha256:2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -680,13 +680,13 @@ test = ["pytest (>=6)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "fastapi-slim"
|
name = "fastapi-slim"
|
||||||
version = "0.111.1"
|
version = "0.112.0"
|
||||||
description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
|
description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "fastapi_slim-0.111.1-py3-none-any.whl", hash = "sha256:ac29948dcbf84cc78d68ed2c4df4e695ac265cf53c339e5794008476e9befbbb"},
|
{file = "fastapi_slim-0.112.0-py3-none-any.whl", hash = "sha256:7663edfbb5036d641aa45b4f5dad341cf78d98885216e78743a8cdd39a38883e"},
|
||||||
{file = "fastapi_slim-0.111.1.tar.gz", hash = "sha256:f799a60658f56c49fe3842eb534730fabe1168731c0b407b98a042c8d57be39d"},
|
{file = "fastapi_slim-0.112.0.tar.gz", hash = "sha256:2420f700b7dc2d1a6d02c7230f7aa2ae9fa0320d8d481094062ff717659c0843"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -695,8 +695,8 @@ starlette = ">=0.37.2,<0.38.0"
|
|||||||
typing-extensions = ">=4.8.0"
|
typing-extensions = ">=4.8.0"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
all = ["email_validator (>=2.0.0)", "fastapi-cli (>=0.0.2)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.7)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"]
|
all = ["email_validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.7)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"]
|
||||||
standard = ["email_validator (>=2.0.0)", "fastapi-cli (>=0.0.2)", "httpx (>=0.23.0)", "jinja2 (>=2.11.2)", "python-multipart (>=0.0.7)", "uvicorn[standard] (>=0.12.0)"]
|
standard = ["email_validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=2.11.2)", "python-multipart (>=0.0.7)", "uvicorn[standard] (>=0.12.0)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "filelock"
|
name = "filelock"
|
||||||
@@ -878,13 +878,13 @@ tqdm = ["tqdm"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ftfy"
|
name = "ftfy"
|
||||||
version = "6.2.0"
|
version = "6.2.3"
|
||||||
description = "Fixes mojibake and other problems with Unicode, after the fact"
|
description = "Fixes mojibake and other problems with Unicode, after the fact"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8,<4"
|
python-versions = "<4,>=3.8.1"
|
||||||
files = [
|
files = [
|
||||||
{file = "ftfy-6.2.0-py3-none-any.whl", hash = "sha256:f94a2c34b76e07475720e3096f5ca80911d152406fbde66fdb45c4d0c9150026"},
|
{file = "ftfy-6.2.3-py3-none-any.whl", hash = "sha256:f15761b023f3061a66207d33f0c0149ad40a8319fd16da91796363e2c049fdf8"},
|
||||||
{file = "ftfy-6.2.0.tar.gz", hash = "sha256:5e42143c7025ef97944ca2619d6b61b0619fc6654f98771d39e862c1424c75c0"},
|
{file = "ftfy-6.2.3.tar.gz", hash = "sha256:79b505988f29d577a58a9069afe75553a02a46e42de6091c0660cdc67812badc"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -1530,13 +1530,13 @@ test = ["pytest (>=7.4)", "pytest-cov (>=4.1)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "locust"
|
name = "locust"
|
||||||
version = "2.31.1"
|
version = "2.31.2"
|
||||||
description = "Developer-friendly load testing framework"
|
description = "Developer-friendly load testing framework"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.9"
|
python-versions = ">=3.9"
|
||||||
files = [
|
files = [
|
||||||
{file = "locust-2.31.1-py3-none-any.whl", hash = "sha256:20756509939004e95c622ac3042886edab38b736f00534cc03ce2774064e7f71"},
|
{file = "locust-2.31.2-py3-none-any.whl", hash = "sha256:9bcb8b777d9844ac9498d6eebe17a0afa21712419c42da27b1d1cac5895cd182"},
|
||||||
{file = "locust-2.31.1.tar.gz", hash = "sha256:d26b7333cdef80645f3978d8ff9aabab4d53e41ed82cc8490212aa68e8498fdd"},
|
{file = "locust-2.31.2.tar.gz", hash = "sha256:a31f8e1d24535494eb809bd8dfd545ada9514df4581b69bdc2ecf3e109b7a1dd"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -2117,6 +2117,8 @@ files = [
|
|||||||
{file = "orjson-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:960db0e31c4e52fa0fc3ecbaea5b2d3b58f379e32a95ae6b0ebeaa25b93dfd34"},
|
{file = "orjson-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:960db0e31c4e52fa0fc3ecbaea5b2d3b58f379e32a95ae6b0ebeaa25b93dfd34"},
|
||||||
{file = "orjson-3.10.6-cp312-none-win32.whl", hash = "sha256:a6ea7afb5b30b2317e0bee03c8d34c8181bc5a36f2afd4d0952f378972c4efd5"},
|
{file = "orjson-3.10.6-cp312-none-win32.whl", hash = "sha256:a6ea7afb5b30b2317e0bee03c8d34c8181bc5a36f2afd4d0952f378972c4efd5"},
|
||||||
{file = "orjson-3.10.6-cp312-none-win_amd64.whl", hash = "sha256:874ce88264b7e655dde4aeaacdc8fd772a7962faadfb41abe63e2a4861abc3dc"},
|
{file = "orjson-3.10.6-cp312-none-win_amd64.whl", hash = "sha256:874ce88264b7e655dde4aeaacdc8fd772a7962faadfb41abe63e2a4861abc3dc"},
|
||||||
|
{file = "orjson-3.10.6-cp313-none-win32.whl", hash = "sha256:efdf2c5cde290ae6b83095f03119bdc00303d7a03b42b16c54517baa3c4ca3d0"},
|
||||||
|
{file = "orjson-3.10.6-cp313-none-win_amd64.whl", hash = "sha256:8e190fe7888e2e4392f52cafb9626113ba135ef53aacc65cd13109eb9746c43e"},
|
||||||
{file = "orjson-3.10.6-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:66680eae4c4e7fc193d91cfc1353ad6d01b4801ae9b5314f17e11ba55e934183"},
|
{file = "orjson-3.10.6-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:66680eae4c4e7fc193d91cfc1353ad6d01b4801ae9b5314f17e11ba55e934183"},
|
||||||
{file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:caff75b425db5ef8e8f23af93c80f072f97b4fb3afd4af44482905c9f588da28"},
|
{file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:caff75b425db5ef8e8f23af93c80f072f97b4fb3afd4af44482905c9f588da28"},
|
||||||
{file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3722fddb821b6036fd2a3c814f6bd9b57a89dc6337b9924ecd614ebce3271394"},
|
{file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3722fddb821b6036fd2a3c814f6bd9b57a89dc6337b9924ecd614ebce3271394"},
|
||||||
@@ -2827,29 +2829,29 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruff"
|
name = "ruff"
|
||||||
version = "0.5.6"
|
version = "0.5.7"
|
||||||
description = "An extremely fast Python linter and code formatter, written in Rust."
|
description = "An extremely fast Python linter and code formatter, written in Rust."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.7"
|
||||||
files = [
|
files = [
|
||||||
{file = "ruff-0.5.6-py3-none-linux_armv6l.whl", hash = "sha256:a0ef5930799a05522985b9cec8290b185952f3fcd86c1772c3bdbd732667fdcd"},
|
{file = "ruff-0.5.7-py3-none-linux_armv6l.whl", hash = "sha256:548992d342fc404ee2e15a242cdbea4f8e39a52f2e7752d0e4cbe88d2d2f416a"},
|
||||||
{file = "ruff-0.5.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b652dc14f6ef5d1552821e006f747802cc32d98d5509349e168f6bf0ee9f8f42"},
|
{file = "ruff-0.5.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:00cc8872331055ee017c4f1071a8a31ca0809ccc0657da1d154a1d2abac5c0be"},
|
||||||
{file = "ruff-0.5.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:80521b88d26a45e871f31e4b88938fd87db7011bb961d8afd2664982dfc3641a"},
|
{file = "ruff-0.5.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:eaf3d86a1fdac1aec8a3417a63587d93f906c678bb9ed0b796da7b59c1114a1e"},
|
||||||
{file = "ruff-0.5.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9bc8f328a9f1309ae80e4d392836e7dbc77303b38ed4a7112699e63d3b066ab"},
|
{file = "ruff-0.5.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a01c34400097b06cf8a6e61b35d6d456d5bd1ae6961542de18ec81eaf33b4cb8"},
|
||||||
{file = "ruff-0.5.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4d394940f61f7720ad371ddedf14722ee1d6250fd8d020f5ea5a86e7be217daf"},
|
{file = "ruff-0.5.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fcc8054f1a717e2213500edaddcf1dbb0abad40d98e1bd9d0ad364f75c763eea"},
|
||||||
{file = "ruff-0.5.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111a99cdb02f69ddb2571e2756e017a1496c2c3a2aeefe7b988ddab38b416d36"},
|
{file = "ruff-0.5.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f70284e73f36558ef51602254451e50dd6cc479f8b6f8413a95fcb5db4a55fc"},
|
||||||
{file = "ruff-0.5.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:e395daba77a79f6dc0d07311f94cc0560375ca20c06f354c7c99af3bf4560c5d"},
|
{file = "ruff-0.5.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:a78ad870ae3c460394fc95437d43deb5c04b5c29297815a2a1de028903f19692"},
|
||||||
{file = "ruff-0.5.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c476acb43c3c51e3c614a2e878ee1589655fa02dab19fe2db0423a06d6a5b1b6"},
|
{file = "ruff-0.5.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9ccd078c66a8e419475174bfe60a69adb36ce04f8d4e91b006f1329d5cd44bcf"},
|
||||||
{file = "ruff-0.5.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e2ff8003f5252fd68425fd53d27c1f08b201d7ed714bb31a55c9ac1d4c13e2eb"},
|
{file = "ruff-0.5.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7e31c9bad4ebf8fdb77b59cae75814440731060a09a0e0077d559a556453acbb"},
|
||||||
{file = "ruff-0.5.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c94e084ba3eaa80c2172918c2ca2eb2230c3f15925f4ed8b6297260c6ef179ad"},
|
{file = "ruff-0.5.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d796327eed8e168164346b769dd9a27a70e0298d667b4ecee6877ce8095ec8e"},
|
||||||
{file = "ruff-0.5.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1f77c1c3aa0669fb230b06fb24ffa3e879391a3ba3f15e3d633a752da5a3e670"},
|
{file = "ruff-0.5.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4a09ea2c3f7778cc635e7f6edf57d566a8ee8f485f3c4454db7771efb692c499"},
|
||||||
{file = "ruff-0.5.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f908148c93c02873210a52cad75a6eda856b2cbb72250370ce3afef6fb99b1ed"},
|
{file = "ruff-0.5.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a36d8dcf55b3a3bc353270d544fb170d75d2dff41eba5df57b4e0b67a95bb64e"},
|
||||||
{file = "ruff-0.5.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:563a7ae61ad284187d3071d9041c08019975693ff655438d8d4be26e492760bd"},
|
{file = "ruff-0.5.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9369c218f789eefbd1b8d82a8cf25017b523ac47d96b2f531eba73770971c9e5"},
|
||||||
{file = "ruff-0.5.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:94fe60869bfbf0521e04fd62b74cbca21cbc5beb67cbb75ab33fe8c174f54414"},
|
{file = "ruff-0.5.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b88ca3db7eb377eb24fb7c82840546fb7acef75af4a74bd36e9ceb37a890257e"},
|
||||||
{file = "ruff-0.5.6-py3-none-win32.whl", hash = "sha256:e6a584c1de6f8591c2570e171cc7ce482bb983d49c70ddf014393cd39e9dfaed"},
|
{file = "ruff-0.5.7-py3-none-win32.whl", hash = "sha256:33d61fc0e902198a3e55719f4be6b375b28f860b09c281e4bdbf783c0566576a"},
|
||||||
{file = "ruff-0.5.6-py3-none-win_amd64.whl", hash = "sha256:d7fe7dccb1a89dc66785d7aa0ac283b2269712d8ed19c63af908fdccca5ccc1a"},
|
{file = "ruff-0.5.7-py3-none-win_amd64.whl", hash = "sha256:083bbcbe6fadb93cd86709037acc510f86eed5a314203079df174c40bbbca6b3"},
|
||||||
{file = "ruff-0.5.6-py3-none-win_arm64.whl", hash = "sha256:57c6c0dd997b31b536bff49b9eee5ed3194d60605a4427f735eeb1f9c1b8d264"},
|
{file = "ruff-0.5.7-py3-none-win_arm64.whl", hash = "sha256:2dca26154ff9571995107221d0aeaad0e75a77b5a682d6236cf89a58c70b76f4"},
|
||||||
{file = "ruff-0.5.6.tar.gz", hash = "sha256:07c9e3c2a8e1fe377dd460371c3462671a728c981c3205a5217291422209f642"},
|
{file = "ruff-0.5.7.tar.gz", hash = "sha256:8dfc0a458797f5d9fb622dd0efc52d796f23f0a1493a9527f4e49a550ae9a7e5"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -3087,111 +3089,111 @@ all = ["defusedxml", "fsspec", "imagecodecs (>=2023.8.12)", "lxml", "matplotlib"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tokenizers"
|
name = "tokenizers"
|
||||||
version = "0.19.1"
|
version = "0.20.0"
|
||||||
description = ""
|
description = ""
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.7"
|
||||||
files = [
|
files = [
|
||||||
{file = "tokenizers-0.19.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:952078130b3d101e05ecfc7fc3640282d74ed26bcf691400f872563fca15ac97"},
|
{file = "tokenizers-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:6cff5c5e37c41bc5faa519d6f3df0679e4b37da54ea1f42121719c5e2b4905c0"},
|
||||||
{file = "tokenizers-0.19.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:82c8b8063de6c0468f08e82c4e198763e7b97aabfe573fd4cf7b33930ca4df77"},
|
{file = "tokenizers-0.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:62a56bf75c27443432456f4ca5ca055befa95e25be8a28141cc495cac8ae4d6d"},
|
||||||
{file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:f03727225feaf340ceeb7e00604825addef622d551cbd46b7b775ac834c1e1c4"},
|
{file = "tokenizers-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68cc7de6a63f09c4a86909c2597b995aa66e19df852a23aea894929c74369929"},
|
||||||
{file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:453e4422efdfc9c6b6bf2eae00d5e323f263fff62b29a8c9cd526c5003f3f642"},
|
{file = "tokenizers-0.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:053c37ecee482cc958fdee53af3c6534286a86f5d35aac476f7c246830e53ae5"},
|
||||||
{file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:02e81bf089ebf0e7f4df34fa0207519f07e66d8491d963618252f2e0729e0b46"},
|
{file = "tokenizers-0.20.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3d7074aaabc151a6363fa03db5493fc95b423b2a1874456783989e96d541c7b6"},
|
||||||
{file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b07c538ba956843833fee1190cf769c60dc62e1cf934ed50d77d5502194d63b1"},
|
{file = "tokenizers-0.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a11435780f2acd89e8fefe5e81cecf01776f6edb9b3ac95bcb76baee76b30b90"},
|
||||||
{file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e28cab1582e0eec38b1f38c1c1fb2e56bce5dc180acb1724574fc5f47da2a4fe"},
|
{file = "tokenizers-0.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9a81cd2712973b007d84268d45fc3f6f90a79c31dfe7f1925e6732f8d2959987"},
|
||||||
{file = "tokenizers-0.19.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b01afb7193d47439f091cd8f070a1ced347ad0f9144952a30a41836902fe09e"},
|
{file = "tokenizers-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7dfd796ab9d909f76fb93080e1c7c8309f196ecb316eb130718cd5e34231c69"},
|
||||||
{file = "tokenizers-0.19.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:7fb297edec6c6841ab2e4e8f357209519188e4a59b557ea4fafcf4691d1b4c98"},
|
{file = "tokenizers-0.20.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8029ad2aa8cb00605c9374566034c1cc1b15130713e0eb5afcef6cface8255c9"},
|
||||||
{file = "tokenizers-0.19.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2e8a3dd055e515df7054378dc9d6fa8c8c34e1f32777fb9a01fea81496b3f9d3"},
|
{file = "tokenizers-0.20.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ca4d54260ebe97d59dfa9a30baa20d0c4dd9137d99a8801700055c561145c24e"},
|
||||||
{file = "tokenizers-0.19.1-cp310-none-win32.whl", hash = "sha256:7ff898780a155ea053f5d934925f3902be2ed1f4d916461e1a93019cc7250837"},
|
{file = "tokenizers-0.20.0-cp310-none-win32.whl", hash = "sha256:95ee16b57cec11b86a7940174ec5197d506439b0f415ab3859f254b1dffe9df0"},
|
||||||
{file = "tokenizers-0.19.1-cp310-none-win_amd64.whl", hash = "sha256:bea6f9947e9419c2fda21ae6c32871e3d398cba549b93f4a65a2d369662d9403"},
|
{file = "tokenizers-0.20.0-cp310-none-win_amd64.whl", hash = "sha256:0a61a11e93eeadbf02aea082ffc75241c4198e0608bbbac4f65a9026851dcf37"},
|
||||||
{file = "tokenizers-0.19.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5c88d1481f1882c2e53e6bb06491e474e420d9ac7bdff172610c4f9ad3898059"},
|
{file = "tokenizers-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6636b798b3c4d6c9b1af1a918bd07c867808e5a21c64324e95318a237e6366c3"},
|
||||||
{file = "tokenizers-0.19.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ddf672ed719b4ed82b51499100f5417d7d9f6fb05a65e232249268f35de5ed14"},
|
{file = "tokenizers-0.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ec603e42eaf499ffd58b9258162add948717cf21372458132f14e13a6bc7172"},
|
||||||
{file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dadc509cc8a9fe460bd274c0e16ac4184d0958117cf026e0ea8b32b438171594"},
|
{file = "tokenizers-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cce124264903a8ea6f8f48e1cc7669e5ef638c18bd4ab0a88769d5f92debdf7f"},
|
||||||
{file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfedf31824ca4915b511b03441784ff640378191918264268e6923da48104acc"},
|
{file = "tokenizers-0.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07bbeba0231cf8de07aa6b9e33e9779ff103d47042eeeb859a8c432e3292fb98"},
|
||||||
{file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac11016d0a04aa6487b1513a3a36e7bee7eec0e5d30057c9c0408067345c48d2"},
|
{file = "tokenizers-0.20.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:06c0ca8397b35d38b83a44a9c6929790c1692957d88541df061cb34d82ebbf08"},
|
||||||
{file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76951121890fea8330d3a0df9a954b3f2a37e3ec20e5b0530e9a0044ca2e11fe"},
|
{file = "tokenizers-0.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ca6557ac3b83d912dfbb1f70ab56bd4b0594043916688e906ede09f42e192401"},
|
||||||
{file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b342d2ce8fc8d00f376af068e3274e2e8649562e3bc6ae4a67784ded6b99428d"},
|
{file = "tokenizers-0.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a5ad94c9e80ac6098328bee2e3264dbced4c6faa34429994d473f795ec58ef4"},
|
||||||
{file = "tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d16ff18907f4909dca9b076b9c2d899114dd6abceeb074eca0c93e2353f943aa"},
|
{file = "tokenizers-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b5c7f906ee6bec30a9dc20268a8b80f3b9584de1c9f051671cb057dc6ce28f6"},
|
||||||
{file = "tokenizers-0.19.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:706a37cc5332f85f26efbe2bdc9ef8a9b372b77e4645331a405073e4b3a8c1c6"},
|
{file = "tokenizers-0.20.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:31e087e9ee1b8f075b002bfee257e858dc695f955b43903e1bb4aa9f170e37fe"},
|
||||||
{file = "tokenizers-0.19.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:16baac68651701364b0289979ecec728546133e8e8fe38f66fe48ad07996b88b"},
|
{file = "tokenizers-0.20.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c3124fb6f3346cb3d8d775375d3b429bf4dcfc24f739822702009d20a4297990"},
|
||||||
{file = "tokenizers-0.19.1-cp311-none-win32.whl", hash = "sha256:9ed240c56b4403e22b9584ee37d87b8bfa14865134e3e1c3fb4b2c42fafd3256"},
|
{file = "tokenizers-0.20.0-cp311-none-win32.whl", hash = "sha256:a4bb8b40ba9eefa621fdcabf04a74aa6038ae3be0c614c6458bd91a4697a452f"},
|
||||||
{file = "tokenizers-0.19.1-cp311-none-win_amd64.whl", hash = "sha256:ad57d59341710b94a7d9dbea13f5c1e7d76fd8d9bcd944a7a6ab0b0da6e0cc66"},
|
{file = "tokenizers-0.20.0-cp311-none-win_amd64.whl", hash = "sha256:2b709d371f1fe60a28ef0c5c67815952d455ca7f34dbe7197eaaed3cc54b658e"},
|
||||||
{file = "tokenizers-0.19.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:621d670e1b1c281a1c9698ed89451395d318802ff88d1fc1accff0867a06f153"},
|
{file = "tokenizers-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:15c81a17d0d66f4987c6ca16f4bea7ec253b8c7ed1bb00fdc5d038b1bb56e714"},
|
||||||
{file = "tokenizers-0.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d924204a3dbe50b75630bd16f821ebda6a5f729928df30f582fb5aade90c818a"},
|
{file = "tokenizers-0.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6a531cdf1fb6dc41c984c785a3b299cb0586de0b35683842a3afbb1e5207f910"},
|
||||||
{file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:4f3fefdc0446b1a1e6d81cd4c07088ac015665d2e812f6dbba4a06267d1a2c95"},
|
{file = "tokenizers-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06caabeb4587f8404e0cd9d40f458e9cba3e815c8155a38e579a74ff3e2a4301"},
|
||||||
{file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9620b78e0b2d52ef07b0d428323fb34e8ea1219c5eac98c2596311f20f1f9266"},
|
{file = "tokenizers-0.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8768f964f23f5b9f50546c0369c75ab3262de926983888bbe8b98be05392a79c"},
|
||||||
{file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04ce49e82d100594715ac1b2ce87d1a36e61891a91de774755f743babcd0dd52"},
|
{file = "tokenizers-0.20.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:626403860152c816f97b649fd279bd622c3d417678c93b4b1a8909b6380b69a8"},
|
||||||
{file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5c2ff13d157afe413bf7e25789879dd463e5a4abfb529a2d8f8473d8042e28f"},
|
{file = "tokenizers-0.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9c1b88fa9e5ff062326f4bf82681da5a96fca7104d921a6bd7b1e6fcf224af26"},
|
||||||
{file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3174c76efd9d08f836bfccaca7cfec3f4d1c0a4cf3acbc7236ad577cc423c840"},
|
{file = "tokenizers-0.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d7e559436a07dc547f22ce1101f26d8b2fad387e28ec8e7e1e3b11695d681d8"},
|
||||||
{file = "tokenizers-0.19.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c9d5b6c0e7a1e979bec10ff960fae925e947aab95619a6fdb4c1d8ff3708ce3"},
|
{file = "tokenizers-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e48afb75e50449848964e4a67b0da01261dd3aa8df8daecf10db8fd7f5b076eb"},
|
||||||
{file = "tokenizers-0.19.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a179856d1caee06577220ebcfa332af046d576fb73454b8f4d4b0ba8324423ea"},
|
{file = "tokenizers-0.20.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:baf5d0e1ff44710a95eefc196dd87666ffc609fd447c5e5b68272a7c3d342a1d"},
|
||||||
{file = "tokenizers-0.19.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:952b80dac1a6492170f8c2429bd11fcaa14377e097d12a1dbe0ef2fb2241e16c"},
|
{file = "tokenizers-0.20.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e5e56df0e8ed23ba60ae3848c3f069a0710c4b197218fe4f89e27eba38510768"},
|
||||||
{file = "tokenizers-0.19.1-cp312-none-win32.whl", hash = "sha256:01d62812454c188306755c94755465505836fd616f75067abcae529c35edeb57"},
|
{file = "tokenizers-0.20.0-cp312-none-win32.whl", hash = "sha256:ec53e5ecc142a82432f9c6c677dbbe5a2bfee92b8abf409a9ecb0d425ee0ce75"},
|
||||||
{file = "tokenizers-0.19.1-cp312-none-win_amd64.whl", hash = "sha256:b70bfbe3a82d3e3fb2a5e9b22a39f8d1740c96c68b6ace0086b39074f08ab89a"},
|
{file = "tokenizers-0.20.0-cp312-none-win_amd64.whl", hash = "sha256:f18661ece72e39c0dfaa174d6223248a15b457dbd4b0fc07809b8e6d3ca1a234"},
|
||||||
{file = "tokenizers-0.19.1-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:bb9dfe7dae85bc6119d705a76dc068c062b8b575abe3595e3c6276480e67e3f1"},
|
{file = "tokenizers-0.20.0-cp37-cp37m-macosx_10_12_x86_64.whl", hash = "sha256:f7065b1084d8d1a03dc89d9aad69bcbc8415d4bc123c367063eb32958cd85054"},
|
||||||
{file = "tokenizers-0.19.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:1f0360cbea28ea99944ac089c00de7b2e3e1c58f479fb8613b6d8d511ce98267"},
|
{file = "tokenizers-0.20.0-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:e5d4069e4714e3f7ba0a4d3d44f9d84a432cd4e4aa85c3d7dd1f51440f12e4a1"},
|
||||||
{file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:71e3ec71f0e78780851fef28c2a9babe20270404c921b756d7c532d280349214"},
|
{file = "tokenizers-0.20.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:799b808529e54b7e1a36350bda2aeb470e8390e484d3e98c10395cee61d4e3c6"},
|
||||||
{file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b82931fa619dbad979c0ee8e54dd5278acc418209cc897e42fac041f5366d626"},
|
{file = "tokenizers-0.20.0-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f9baa027cc8a281ad5f7725a93c204d7a46986f88edbe8ef7357f40a23fb9c7"},
|
||||||
{file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e8ff5b90eabdcdaa19af697885f70fe0b714ce16709cf43d4952f1f85299e73a"},
|
{file = "tokenizers-0.20.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:010ec7f3f7a96adc4c2a34a3ada41fa14b4b936b5628b4ff7b33791258646c6b"},
|
||||||
{file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e742d76ad84acbdb1a8e4694f915fe59ff6edc381c97d6dfdd054954e3478ad4"},
|
{file = "tokenizers-0.20.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98d88f06155335b14fd78e32ee28ca5b2eb30fced4614e06eb14ae5f7fba24ed"},
|
||||||
{file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d8c5d59d7b59885eab559d5bc082b2985555a54cda04dda4c65528d90ad252ad"},
|
{file = "tokenizers-0.20.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e13eb000ef540c2280758d1b9cfa5fe424b0424ae4458f440e6340a4f18b2638"},
|
||||||
{file = "tokenizers-0.19.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b2da5c32ed869bebd990c9420df49813709e953674c0722ff471a116d97b22d"},
|
{file = "tokenizers-0.20.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fab3cf066ff426f7e6d70435dc28a9ff01b2747be83810e397cba106f39430b0"},
|
||||||
{file = "tokenizers-0.19.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:638e43936cc8b2cbb9f9d8dde0fe5e7e30766a3318d2342999ae27f68fdc9bd6"},
|
{file = "tokenizers-0.20.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:39fa3761b30a89368f322e5daf4130dce8495b79ad831f370449cdacfb0c0d37"},
|
||||||
{file = "tokenizers-0.19.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:78e769eb3b2c79687d9cb0f89ef77223e8e279b75c0a968e637ca7043a84463f"},
|
{file = "tokenizers-0.20.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c8da0fba4d179ddf2607821575998df3c294aa59aa8df5a6646dc64bc7352bce"},
|
||||||
{file = "tokenizers-0.19.1-cp37-none-win32.whl", hash = "sha256:72791f9bb1ca78e3ae525d4782e85272c63faaef9940d92142aa3eb79f3407a3"},
|
{file = "tokenizers-0.20.0-cp37-none-win32.whl", hash = "sha256:fada996d6da8cf213f6e3c91c12297ad4f6cdf7a85c2fadcd05ec32fa6846fcd"},
|
||||||
{file = "tokenizers-0.19.1-cp37-none-win_amd64.whl", hash = "sha256:f3bbb7a0c5fcb692950b041ae11067ac54826204318922da754f908d95619fbc"},
|
{file = "tokenizers-0.20.0-cp37-none-win_amd64.whl", hash = "sha256:7d29aad702279e0760c265fcae832e89349078e3418dd329732d4503259fd6bd"},
|
||||||
{file = "tokenizers-0.19.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:07f9295349bbbcedae8cefdbcfa7f686aa420be8aca5d4f7d1ae6016c128c0c5"},
|
{file = "tokenizers-0.20.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:099c68207f3ef0227ecb6f80ab98ea74de559f7b124adc7b17778af0250ee90a"},
|
||||||
{file = "tokenizers-0.19.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:10a707cc6c4b6b183ec5dbfc5c34f3064e18cf62b4a938cb41699e33a99e03c1"},
|
{file = "tokenizers-0.20.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:68012d8a8cddb2eab3880870d7e2086cb359c7f7a2b03f5795044f5abff4e850"},
|
||||||
{file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6309271f57b397aa0aff0cbbe632ca9d70430839ca3178bf0f06f825924eca22"},
|
{file = "tokenizers-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9253bdd209c6aee168deca7d0e780581bf303e0058f268f9bb06859379de19b6"},
|
||||||
{file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ad23d37d68cf00d54af184586d79b84075ada495e7c5c0f601f051b162112dc"},
|
{file = "tokenizers-0.20.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8f868600ddbcb0545905ed075eb7218a0756bf6c09dae7528ea2f8436ebd2c93"},
|
||||||
{file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:427c4f0f3df9109314d4f75b8d1f65d9477033e67ffaec4bca53293d3aca286d"},
|
{file = "tokenizers-0.20.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9a9643d9c8c5f99b6aba43fd10034f77cc6c22c31f496d2f0ee183047d948fa0"},
|
||||||
{file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e83a31c9cf181a0a3ef0abad2b5f6b43399faf5da7e696196ddd110d332519ee"},
|
{file = "tokenizers-0.20.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c375c6a889aeab44734028bc65cc070acf93ccb0f9368be42b67a98e1063d3f6"},
|
||||||
{file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c27b99889bd58b7e301468c0838c5ed75e60c66df0d4db80c08f43462f82e0d3"},
|
{file = "tokenizers-0.20.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e359f852328e254f070bbd09a19a568421d23388f04aad9f2fb7da7704c7228d"},
|
||||||
{file = "tokenizers-0.19.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bac0b0eb952412b0b196ca7a40e7dce4ed6f6926489313414010f2e6b9ec2adf"},
|
{file = "tokenizers-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d98b01a309d4387f3b1c1dd68a8b8136af50376cf146c1b7e8d8ead217a5be4b"},
|
||||||
{file = "tokenizers-0.19.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8a6298bde623725ca31c9035a04bf2ef63208d266acd2bed8c2cb7d2b7d53ce6"},
|
{file = "tokenizers-0.20.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:459f7537119554c2899067dec1ac74a00d02beef6558f4ee2e99513bf6d568af"},
|
||||||
{file = "tokenizers-0.19.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:08a44864e42fa6d7d76d7be4bec62c9982f6f6248b4aa42f7302aa01e0abfd26"},
|
{file = "tokenizers-0.20.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:392b87ec89452628c045c9f2a88bc2a827f4c79e7d84bc3b72752b74c2581f70"},
|
||||||
{file = "tokenizers-0.19.1-cp38-none-win32.whl", hash = "sha256:1de5bc8652252d9357a666e609cb1453d4f8e160eb1fb2830ee369dd658e8975"},
|
{file = "tokenizers-0.20.0-cp38-none-win32.whl", hash = "sha256:55a393f893d2ed4dd95a1553c2e42d4d4086878266f437b03590d3f81984c4fe"},
|
||||||
{file = "tokenizers-0.19.1-cp38-none-win_amd64.whl", hash = "sha256:0bcce02bf1ad9882345b34d5bd25ed4949a480cf0e656bbd468f4d8986f7a3f1"},
|
{file = "tokenizers-0.20.0-cp38-none-win_amd64.whl", hash = "sha256:30ffe33c5c2f2aab8e9a3340d0110dd9f7ace7eec7362e20a697802306bd8068"},
|
||||||
{file = "tokenizers-0.19.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:0b9394bd204842a2a1fd37fe29935353742be4a3460b6ccbaefa93f58a8df43d"},
|
{file = "tokenizers-0.20.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:aa2d4a6fed2a7e3f860c7fc9d48764bb30f2649d83915d66150d6340e06742b8"},
|
||||||
{file = "tokenizers-0.19.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4692ab92f91b87769d950ca14dbb61f8a9ef36a62f94bad6c82cc84a51f76f6a"},
|
{file = "tokenizers-0.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b5ef0f814084a897e9071fc4a868595f018c5c92889197bdc4bf19018769b148"},
|
||||||
{file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6258c2ef6f06259f70a682491c78561d492e885adeaf9f64f5389f78aa49a051"},
|
{file = "tokenizers-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc1e1b791e8c3bf4c4f265f180dadaff1c957bf27129e16fdd5e5d43c2d3762c"},
|
||||||
{file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c85cf76561fbd01e0d9ea2d1cbe711a65400092bc52b5242b16cfd22e51f0c58"},
|
{file = "tokenizers-0.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b69e55e481459c07885263743a0d3c18d52db19bae8226a19bcca4aaa213fff"},
|
||||||
{file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:670b802d4d82bbbb832ddb0d41df7015b3e549714c0e77f9bed3e74d42400fbe"},
|
{file = "tokenizers-0.20.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4806b4d82e27a2512bc23057b2986bc8b85824914286975b84d8105ff40d03d9"},
|
||||||
{file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:85aa3ab4b03d5e99fdd31660872249df5e855334b6c333e0bc13032ff4469c4a"},
|
{file = "tokenizers-0.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9859e9ef13adf5a473ccab39d31bff9c550606ae3c784bf772b40f615742a24f"},
|
||||||
{file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cbf001afbbed111a79ca47d75941e9e5361297a87d186cbfc11ed45e30b5daba"},
|
{file = "tokenizers-0.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ef703efedf4c20488a8eb17637b55973745b27997ff87bad88ed499b397d1144"},
|
||||||
{file = "tokenizers-0.19.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4c89aa46c269e4e70c4d4f9d6bc644fcc39bb409cb2a81227923404dd6f5227"},
|
{file = "tokenizers-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6eec0061bab94b1841ab87d10831fdf1b48ebaed60e6d66d66dbe1d873f92bf5"},
|
||||||
{file = "tokenizers-0.19.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:39c1ec76ea1027438fafe16ecb0fb84795e62e9d643444c1090179e63808c69d"},
|
{file = "tokenizers-0.20.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:980f3d0d7e73f845b69087f29a63c11c7eb924c4ad6b358da60f3db4cf24bdb4"},
|
||||||
{file = "tokenizers-0.19.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c2a0d47a89b48d7daa241e004e71fb5a50533718897a4cd6235cb846d511a478"},
|
{file = "tokenizers-0.20.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7c157550a2f3851b29d7fdc9dc059fcf81ff0c0fc49a1e5173a89d533ed043fa"},
|
||||||
{file = "tokenizers-0.19.1-cp39-none-win32.whl", hash = "sha256:61b7fe8886f2e104d4caf9218b157b106207e0f2a4905c9c7ac98890688aabeb"},
|
{file = "tokenizers-0.20.0-cp39-none-win32.whl", hash = "sha256:8a3d2f4d08608ec4f9895ec25b4b36a97f05812543190a5f2c3cd19e8f041e5a"},
|
||||||
{file = "tokenizers-0.19.1-cp39-none-win_amd64.whl", hash = "sha256:f97660f6c43efd3e0bfd3f2e3e5615bf215680bad6ee3d469df6454b8c6e8256"},
|
{file = "tokenizers-0.20.0-cp39-none-win_amd64.whl", hash = "sha256:d90188d12afd0c75e537f9a1d92f9c7375650188ee4f48fdc76f9e38afbd2251"},
|
||||||
{file = "tokenizers-0.19.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3b11853f17b54c2fe47742c56d8a33bf49ce31caf531e87ac0d7d13d327c9334"},
|
{file = "tokenizers-0.20.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:d68e15f1815357b059ec266062340c343ea7f98f7f330602df81ffa3474b6122"},
|
||||||
{file = "tokenizers-0.19.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d26194ef6c13302f446d39972aaa36a1dda6450bc8949f5eb4c27f51191375bd"},
|
{file = "tokenizers-0.20.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:23f9ecec637b9bc80da5f703808d29ed5329e56b5aa8d791d1088014f48afadc"},
|
||||||
{file = "tokenizers-0.19.1-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:e8d1ed93beda54bbd6131a2cb363a576eac746d5c26ba5b7556bc6f964425594"},
|
{file = "tokenizers-0.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f830b318ee599e3d0665b3e325f85bc75ee2d2ca6285f52e439dc22b64691580"},
|
||||||
{file = "tokenizers-0.19.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca407133536f19bdec44b3da117ef0d12e43f6d4b56ac4c765f37eca501c7bda"},
|
{file = "tokenizers-0.20.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3dc750def789cb1de1b5a37657919545e1d9ffa667658b3fa9cb7862407a1b8"},
|
||||||
{file = "tokenizers-0.19.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce05fde79d2bc2e46ac08aacbc142bead21614d937aac950be88dc79f9db9022"},
|
{file = "tokenizers-0.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e26e6c755ae884c2ea6135cd215bdd0fccafe4ee62405014b8c3cd19954e3ab9"},
|
||||||
{file = "tokenizers-0.19.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:35583cd46d16f07c054efd18b5d46af4a2f070a2dd0a47914e66f3ff5efb2b1e"},
|
{file = "tokenizers-0.20.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:a1158c7174f427182e08baa2a8ded2940f2b4a3e94969a85cc9cfd16004cbcea"},
|
||||||
{file = "tokenizers-0.19.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:43350270bfc16b06ad3f6f07eab21f089adb835544417afda0f83256a8bf8b75"},
|
{file = "tokenizers-0.20.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:6324826287a3fc198898d3dcf758fe4a8479e42d6039f4c59e2cedd3cf92f64e"},
|
||||||
{file = "tokenizers-0.19.1-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b4399b59d1af5645bcee2072a463318114c39b8547437a7c2d6a186a1b5a0e2d"},
|
{file = "tokenizers-0.20.0-pp37-pypy37_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7d8653149405bb0c16feaf9cfee327fdb6aaef9dc2998349fec686f35e81c4e2"},
|
||||||
{file = "tokenizers-0.19.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6852c5b2a853b8b0ddc5993cd4f33bfffdca4fcc5d52f89dd4b8eada99379285"},
|
{file = "tokenizers-0.20.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8a2dc1e402a155e97309287ca085c80eb1b7fab8ae91527d3b729181639fa51"},
|
||||||
{file = "tokenizers-0.19.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcd266ae85c3d39df2f7e7d0e07f6c41a55e9a3123bb11f854412952deacd828"},
|
{file = "tokenizers-0.20.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07bef67b20aa6e5f7868c42c7c5eae4d24f856274a464ae62e47a0f2cccec3da"},
|
||||||
{file = "tokenizers-0.19.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecb2651956eea2aa0a2d099434134b1b68f1c31f9a5084d6d53f08ed43d45ff2"},
|
{file = "tokenizers-0.20.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da06e397182ff53789c506c7833220c192952c57e1581a53f503d8d953e2d67e"},
|
||||||
{file = "tokenizers-0.19.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:b279ab506ec4445166ac476fb4d3cc383accde1ea152998509a94d82547c8e2a"},
|
{file = "tokenizers-0.20.0-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:302f7e11a14814028b7fc88c45a41f1bbe9b5b35fd76d6869558d1d1809baa43"},
|
||||||
{file = "tokenizers-0.19.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:89183e55fb86e61d848ff83753f64cded119f5d6e1f553d14ffee3700d0a4a49"},
|
{file = "tokenizers-0.20.0-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:055ec46e807b875589dfbe3d9259f9a6ee43394fb553b03b3d1e9541662dbf25"},
|
||||||
{file = "tokenizers-0.19.1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2edbc75744235eea94d595a8b70fe279dd42f3296f76d5a86dde1d46e35f574"},
|
{file = "tokenizers-0.20.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e3144b8acebfa6ae062e8f45f7ed52e4b50fb6c62f93afc8871b525ab9fdcab3"},
|
||||||
{file = "tokenizers-0.19.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:0e64bfde9a723274e9a71630c3e9494ed7b4c0f76a1faacf7fe294cd26f7ae7c"},
|
{file = "tokenizers-0.20.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b52aa3fd14b2a07588c00a19f66511cff5cca8f7266ca3edcdd17f3512ad159f"},
|
||||||
{file = "tokenizers-0.19.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0b5ca92bfa717759c052e345770792d02d1f43b06f9e790ca0a1db62838816f3"},
|
{file = "tokenizers-0.20.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2b8cf52779ffc5d4d63a0170fbeb512372bad0dd014ce92bbb9149756c831124"},
|
||||||
{file = "tokenizers-0.19.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f8a20266e695ec9d7a946a019c1d5ca4eddb6613d4f466888eee04f16eedb85"},
|
{file = "tokenizers-0.20.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:983a45dd11a876124378dae71d6d9761822199b68a4c73f32873d8cdaf326a5b"},
|
||||||
{file = "tokenizers-0.19.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63c38f45d8f2a2ec0f3a20073cccb335b9f99f73b3c69483cd52ebc75369d8a1"},
|
{file = "tokenizers-0.20.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df6b819c9a19831ebec581e71a7686a54ab45d90faf3842269a10c11d746de0c"},
|
||||||
{file = "tokenizers-0.19.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:dd26e3afe8a7b61422df3176e06664503d3f5973b94f45d5c45987e1cb711876"},
|
{file = "tokenizers-0.20.0-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e738cfd80795fcafcef89c5731c84b05638a4ab3f412f97d5ed7765466576eb1"},
|
||||||
{file = "tokenizers-0.19.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:eddd5783a4a6309ce23432353cdb36220e25cbb779bfa9122320666508b44b88"},
|
{file = "tokenizers-0.20.0-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:c8842c7be2fadb9c9edcee233b1b7fe7ade406c99b0973f07439985c1c1d0683"},
|
||||||
{file = "tokenizers-0.19.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:56ae39d4036b753994476a1b935584071093b55c7a72e3b8288e68c313ca26e7"},
|
{file = "tokenizers-0.20.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e47a82355511c373a4a430c4909dc1e518e00031207b1fec536c49127388886b"},
|
||||||
{file = "tokenizers-0.19.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f9939ca7e58c2758c01b40324a59c034ce0cebad18e0d4563a9b1beab3018243"},
|
{file = "tokenizers-0.20.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9afbf359004551179a5db19424180c81276682773cff2c5d002f6eaaffe17230"},
|
||||||
{file = "tokenizers-0.19.1-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6c330c0eb815d212893c67a032e9dc1b38a803eccb32f3e8172c19cc69fbb439"},
|
{file = "tokenizers-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a07eaa8799a92e6af6f472c21a75bf71575de2af3c0284120b7a09297c0de2f3"},
|
||||||
{file = "tokenizers-0.19.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec11802450a2487cdf0e634b750a04cbdc1c4d066b97d94ce7dd2cb51ebb325b"},
|
{file = "tokenizers-0.20.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0994b2e5fc53a301071806bc4303e4bc3bdc3f490e92a21338146a36746b0872"},
|
||||||
{file = "tokenizers-0.19.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2b718f316b596f36e1dae097a7d5b91fc5b85e90bf08b01ff139bd8953b25af"},
|
{file = "tokenizers-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b6466e0355b603d10e3cc3d282d350b646341b601e50969464a54939f9848d0"},
|
||||||
{file = "tokenizers-0.19.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:ed69af290c2b65169f0ba9034d1dc39a5db9459b32f1dd8b5f3f32a3fcf06eab"},
|
{file = "tokenizers-0.20.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:1e86594c2a433cb1ea09cfbe596454448c566e57ee8905bd557e489d93e89986"},
|
||||||
{file = "tokenizers-0.19.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f8a9c828277133af13f3859d1b6bf1c3cb6e9e1637df0e45312e6b7c2e622b1f"},
|
{file = "tokenizers-0.20.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3e14cdef1efa96ecead6ea64a891828432c3ebba128bdc0596e3059fea104ef3"},
|
||||||
{file = "tokenizers-0.19.1.tar.gz", hash = "sha256:ee59e6680ed0fdbe6b724cf38bd70400a0c1dd623b07ac729087270caeac88e3"},
|
{file = "tokenizers-0.20.0.tar.gz", hash = "sha256:39d7acc43f564c274085cafcd1dae9d36f332456de1a31970296a6b8da4eac8d"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -3235,13 +3237,13 @@ telegram = ["requests"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typing-extensions"
|
name = "typing-extensions"
|
||||||
version = "4.9.0"
|
version = "4.12.2"
|
||||||
description = "Backported and Experimental Type Hints for Python 3.8+"
|
description = "Backported and Experimental Type Hints for Python 3.8+"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "typing_extensions-4.9.0-py3-none-any.whl", hash = "sha256:af72aea155e91adfc61c3ae9e0e342dbc0cba726d6cba4b6c72c1f34e47291cd"},
|
{file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
|
||||||
{file = "typing_extensions-4.9.0.tar.gz", hash = "sha256:23478f88c37f27d76ac8aee6c905017a143b0b1b886c3c9f66bc2fd94f9f5783"},
|
{file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "machine-learning"
|
name = "machine-learning"
|
||||||
version = "1.111.0"
|
version = "1.112.0"
|
||||||
description = ""
|
description = ""
|
||||||
authors = ["Hau Tran <alex.tran1502@gmail.com>"]
|
authors = ["Hau Tran <alex.tran1502@gmail.com>"]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ platform :android do
|
|||||||
task: 'bundle',
|
task: 'bundle',
|
||||||
build_type: 'Release',
|
build_type: 'Release',
|
||||||
properties: {
|
properties: {
|
||||||
"android.injected.version.code" => 152,
|
"android.injected.version.code" => 153,
|
||||||
"android.injected.version.name" => "1.111.0",
|
"android.injected.version.name" => "1.112.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')
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "تصميم",
|
"asset_list_layout_sub_title": "تصميم",
|
||||||
"asset_list_settings_subtitle": "إعدادات تخطيط شبكة الصور",
|
"asset_list_settings_subtitle": "إعدادات تخطيط شبكة الصور",
|
||||||
"asset_list_settings_title": "شبكة الصور",
|
"asset_list_settings_title": "شبكة الصور",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "عارض الأصول",
|
"asset_viewer_settings_title": "عارض الأصول",
|
||||||
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
||||||
"backup_album_selection_page_albums_tap": "انقر للتضمين، وانقر نقرًا مزدوجًا للاستثناء",
|
"backup_album_selection_page_albums_tap": "انقر للتضمين، وانقر نقرًا مزدوجًا للاستثناء",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "مشاركة",
|
"tab_controller_nav_sharing": "مشاركة",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "عرض مؤشر التخزين على بلاط الأصول",
|
"theme_setting_asset_list_storage_indicator_title": "عرض مؤشر التخزين على بلاط الأصول",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "الوضع المظلم",
|
"theme_setting_dark_mode_switch": "الوضع المظلم",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "اضبط جودة عارض الصورة التفصيلية",
|
"theme_setting_image_viewer_quality_subtitle": "اضبط جودة عارض الصورة التفصيلية",
|
||||||
"theme_setting_image_viewer_quality_title": "جودة عارض الصورة",
|
"theme_setting_image_viewer_quality_title": "جودة عارض الصورة",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "تلقائي (اتبع إعداد النظام)",
|
"theme_setting_system_theme_switch": "تلقائي (اتبع إعداد النظام)",
|
||||||
"theme_setting_theme_subtitle": "اختر إعدادات مظهر التطبيق",
|
"theme_setting_theme_subtitle": "اختر إعدادات مظهر التطبيق",
|
||||||
"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": "خيارات",
|
"translated_text_options": "خيارات",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "مسح",
|
"trash_page_delete": "مسح",
|
||||||
"trash_page_delete_all": "حذف الكل",
|
"trash_page_delete_all": "حذف الكل",
|
||||||
"trash_page_empty_trash_btn": "افرغ سله المهملات ",
|
"trash_page_empty_trash_btn": "افرغ سله المهملات ",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Rozložení",
|
"asset_list_layout_sub_title": "Rozložení",
|
||||||
"asset_list_settings_subtitle": "Nastavení rozložení mřížky fotografií",
|
"asset_list_settings_subtitle": "Nastavení rozložení mřížky fotografií",
|
||||||
"asset_list_settings_title": "Fotografická mřížka",
|
"asset_list_settings_title": "Fotografická mřížka",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Prohlížeč",
|
"asset_viewer_settings_title": "Prohlížeč",
|
||||||
"backup_album_selection_page_albums_device": "Alba v zařízení ({})",
|
"backup_album_selection_page_albums_device": "Alba v zařízení ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Klepnutím na položku ji zahrnete, dvojím klepnutím ji vyloučíte",
|
"backup_album_selection_page_albums_tap": "Klepnutím na položku ji zahrnete, dvojím klepnutím ji vyloučíte",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Sdílení",
|
"tab_controller_nav_sharing": "Sdílení",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Zobrazit indikátor úložiště na dlaždicích položek",
|
"theme_setting_asset_list_storage_indicator_title": "Zobrazit indikátor úložiště na dlaždicích položek",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Počet položek na řádek ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Počet položek na řádek ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Použít hlavní barvu na povrchy pozadí.",
|
||||||
|
"theme_setting_colorful_interface_title": "Barevné rozhraní",
|
||||||
"theme_setting_dark_mode_switch": "Tmavé téma",
|
"theme_setting_dark_mode_switch": "Tmavé téma",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Přizpůsobení kvality detailů prohlížeče obrázků",
|
"theme_setting_image_viewer_quality_subtitle": "Přizpůsobení kvality detailů prohlížeče obrázků",
|
||||||
"theme_setting_image_viewer_quality_title": "Kvalita prohlížeče obrázků",
|
"theme_setting_image_viewer_quality_title": "Kvalita prohlížeče obrázků",
|
||||||
|
"theme_setting_primary_color_subtitle": "Zvolte barvu pro hlavní akce a zvýraznění.",
|
||||||
|
"theme_setting_primary_color_title": "Hlavní barva",
|
||||||
|
"theme_setting_system_primary_color_title": "Použití systémové barvy",
|
||||||
"theme_setting_system_theme_switch": "Automaticky (podle systemového nastavení)",
|
"theme_setting_system_theme_switch": "Automaticky (podle systemového nastavení)",
|
||||||
"theme_setting_theme_subtitle": "Vyberte nastavení tématu aplikace",
|
"theme_setting_theme_subtitle": "Vyberte nastavení tématu aplikace",
|
||||||
"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",
|
"translated_text_options": "Možnosti",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Smazat",
|
"trash_page_delete": "Smazat",
|
||||||
"trash_page_delete_all": "Smazat všechny",
|
"trash_page_delete_all": "Smazat všechny",
|
||||||
"trash_page_empty_trash_btn": "Vysypat koš",
|
"trash_page_empty_trash_btn": "Vysypat koš",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Indstillinger for billedgitterlayout",
|
"asset_list_settings_subtitle": "Indstillinger for billedgitterlayout",
|
||||||
"asset_list_settings_title": "Billedgitter",
|
"asset_list_settings_title": "Billedgitter",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Billedviser",
|
"asset_viewer_settings_title": "Billedviser",
|
||||||
"backup_album_selection_page_albums_device": "Albummer på enhed ({})",
|
"backup_album_selection_page_albums_device": "Albummer på enhed ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tryk en gang for at inkludere, tryk to gange for at ekskludere",
|
"backup_album_selection_page_albums_tap": "Tryk en gang for at inkludere, tryk to gange for at ekskludere",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Deling",
|
"tab_controller_nav_sharing": "Deling",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Vis opbevaringsindikator på filer",
|
"theme_setting_asset_list_storage_indicator_title": "Vis opbevaringsindikator på filer",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Antal elementer per række ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Antal elementer per række ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Mørk tilstand",
|
"theme_setting_dark_mode_switch": "Mørk tilstand",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Juster kvaliteten i billedfremviseren",
|
"theme_setting_image_viewer_quality_subtitle": "Juster kvaliteten i billedfremviseren",
|
||||||
"theme_setting_image_viewer_quality_title": "Billedfremviserkvalitet",
|
"theme_setting_image_viewer_quality_title": "Billedfremviserkvalitet",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatisk (Følg systemindstillinger)",
|
"theme_setting_system_theme_switch": "Automatisk (Følg systemindstillinger)",
|
||||||
"theme_setting_theme_subtitle": "Vælg appens temaindstilling",
|
"theme_setting_theme_subtitle": "Vælg appens temaindstilling",
|
||||||
"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",
|
"translated_text_options": "Handlinger",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Slet",
|
"trash_page_delete": "Slet",
|
||||||
"trash_page_delete_all": "Slet alt",
|
"trash_page_delete_all": "Slet alt",
|
||||||
"trash_page_empty_trash_btn": "Tøm papirkurv",
|
"trash_page_empty_trash_btn": "Tøm papirkurv",
|
||||||
|
|||||||
@@ -3,15 +3,15 @@
|
|||||||
"action_common_cancel": "Abbrechen",
|
"action_common_cancel": "Abbrechen",
|
||||||
"action_common_clear": "Leeren",
|
"action_common_clear": "Leeren",
|
||||||
"action_common_confirm": "Bestätigen",
|
"action_common_confirm": "Bestätigen",
|
||||||
"action_common_save": "Save",
|
"action_common_save": "Speichern",
|
||||||
"action_common_select": "Select",
|
"action_common_select": "Auswählen ",
|
||||||
"action_common_update": "Aktualisieren",
|
"action_common_update": "Aktualisieren",
|
||||||
"add_to_album_bottom_sheet_added": "Zu {album} hinzugefügt",
|
"add_to_album_bottom_sheet_added": "Zu {album} hinzugefügt",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Bereits in {album}",
|
"add_to_album_bottom_sheet_already_exists": "Bereits in {album}",
|
||||||
"advanced_settings_log_level_title": "Log-Level: {}",
|
"advanced_settings_log_level_title": "Log-Level: {}",
|
||||||
"advanced_settings_prefer_remote_subtitle": "Manche Endgeräte laden Vorschaubilder von lokalen Bilder sehr langsam. Durch diese Einstellung werden diese stattdessen direkt vom Server geladen.",
|
"advanced_settings_prefer_remote_subtitle": "Manche Endgeräte laden Vorschaubilder von lokalen 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_proxy_headers_subtitle": "Definiere Proxy-Header, die Immich bei jeder Netzwerkanfrage mitschicken soll",
|
"advanced_settings_proxy_headers_subtitle": "Definiere einen Proxy-Header, den Immich bei jeder Netzwerkanfrage mitschicken soll",
|
||||||
"advanced_settings_proxy_headers_title": "Proxy-Headers",
|
"advanced_settings_proxy_headers_title": "Proxy-Headers",
|
||||||
"advanced_settings_self_signed_ssl_subtitle": "Verifizierung von SSL-Zertifikaten vom Server überspringen. Notwendig bei selbstsignierten Zertifikaten.",
|
"advanced_settings_self_signed_ssl_subtitle": "Verifizierung von SSL-Zertifikaten vom Server überspringen. Notwendig bei selbstsignierten Zertifikaten.",
|
||||||
"advanced_settings_self_signed_ssl_title": "Selbstsignierte SSL-Zertifikate erlauben",
|
"advanced_settings_self_signed_ssl_title": "Selbstsignierte SSL-Zertifikate erlauben",
|
||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Einstellungen für das Fotogitter-Layout",
|
"asset_list_settings_subtitle": "Einstellungen für das Fotogitter-Layout",
|
||||||
"asset_list_settings_title": "Fotogitter",
|
"asset_list_settings_title": "Fotogitter",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Fotoanzeige",
|
"asset_viewer_settings_title": "Fotoanzeige",
|
||||||
"backup_album_selection_page_albums_device": "Alben auf dem Gerät ({})",
|
"backup_album_selection_page_albums_device": "Alben auf dem Gerät ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Einmalig das Album antippen um es zu sichern, doppelt antippen um es nicht mehr zu sichern.",
|
"backup_album_selection_page_albums_tap": "Einmalig das Album antippen um es zu sichern, doppelt antippen um es nicht mehr zu sichern.",
|
||||||
@@ -62,7 +69,7 @@
|
|||||||
"backup_album_selection_page_selection_info": "Information",
|
"backup_album_selection_page_selection_info": "Information",
|
||||||
"backup_album_selection_page_total_assets": "Elemente",
|
"backup_album_selection_page_total_assets": "Elemente",
|
||||||
"backup_all": "Alle",
|
"backup_all": "Alle",
|
||||||
"backup_background_service_backup_failed_message": "Fehler beim Sichern von Elementen. Probiere erneut...",
|
"backup_background_service_backup_failed_message": "Es trat ein Fehler bei der Sicherung auf. Erneuter Versuch...",
|
||||||
"backup_background_service_connection_failed_message": "Es konnte keine Verbindung zum Server hergestellt werden. Erneuter Versuch...",
|
"backup_background_service_connection_failed_message": "Es konnte keine Verbindung zum Server hergestellt werden. Erneuter Versuch...",
|
||||||
"backup_background_service_current_upload_notification": "Lädt {} hoch",
|
"backup_background_service_current_upload_notification": "Lädt {} hoch",
|
||||||
"backup_background_service_default_notification": "Suche nach neuen Elementen…",
|
"backup_background_service_default_notification": "Suche nach neuen Elementen…",
|
||||||
@@ -144,20 +151,20 @@
|
|||||||
"change_password_form_password_mismatch": "Passwörter stimmen nicht überein",
|
"change_password_form_password_mismatch": "Passwörter stimmen nicht überein",
|
||||||
"change_password_form_reenter_new_password": "Passwort erneut eingeben",
|
"change_password_form_reenter_new_password": "Passwort erneut eingeben",
|
||||||
"client_cert_dialog_msg_confirm": "OK",
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
"client_cert_enter_password": "Enter Password",
|
"client_cert_enter_password": "Passwort eingeben",
|
||||||
"client_cert_import": "Import",
|
"client_cert_import": "Importieren",
|
||||||
"client_cert_import_success_msg": "Client certificate is imported",
|
"client_cert_import_success_msg": "Client Zertifikat wurde importiert",
|
||||||
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
"client_cert_invalid_msg": "Ungültige Zertifikatsdatei oder falsches Passwort",
|
||||||
"client_cert_remove": "Remove",
|
"client_cert_remove": "Entfernen",
|
||||||
"client_cert_remove_msg": "Client certificate is removed",
|
"client_cert_remove_msg": "Client Zertifikat wurde entfernt",
|
||||||
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
"client_cert_subtitle": "Unterstützt nur das PKCS12 (.p12, .pfx) Format. Zertifikatsimporte oder -entfernungen sind nur vor dem Login möglich.",
|
||||||
"client_cert_title": "SSL Client Certificate",
|
"client_cert_title": "SSL-Client-Zertifikat ",
|
||||||
"common_add_to_album": "Zu Album hinzufügen",
|
"common_add_to_album": "Zu Album hinzufügen",
|
||||||
"common_change_password": "Passwort ändern",
|
"common_change_password": "Passwort ändern",
|
||||||
"common_create_new_album": "Neues Album erstellen",
|
"common_create_new_album": "Neues Album erstellen",
|
||||||
"common_server_error": "Bitte überprüfe Deine Netzwerkverbindung und stelle sicher, dass die App und Server Versionen kompatibel sind.",
|
"common_server_error": "Bitte überprüfe Deine Netzwerkverbindung und stelle sicher, dass die App und Server Versionen kompatibel sind.",
|
||||||
"common_shared": "Geteilt",
|
"common_shared": "Geteilt",
|
||||||
"contextual_search": "Sunrise on the beach",
|
"contextual_search": "Sonnenaufgang am Strand",
|
||||||
"control_bottom_app_bar_add_to_album": "Zu Album hinzufügen",
|
"control_bottom_app_bar_add_to_album": "Zu Album hinzufügen",
|
||||||
"control_bottom_app_bar_album_info": "{} Elemente",
|
"control_bottom_app_bar_album_info": "{} Elemente",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} Elemente · Geteilt",
|
"control_bottom_app_bar_album_info_shared": "{} Elemente · Geteilt",
|
||||||
@@ -166,7 +173,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Löschen",
|
"control_bottom_app_bar_delete": "Löschen",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Aus Immich löschen",
|
"control_bottom_app_bar_delete_from_immich": "Aus Immich löschen",
|
||||||
"control_bottom_app_bar_delete_from_local": "Vom Gerät löschen",
|
"control_bottom_app_bar_delete_from_local": "Vom Gerät löschen",
|
||||||
"control_bottom_app_bar_edit": "Edit",
|
"control_bottom_app_bar_edit": "Bearbeiten",
|
||||||
"control_bottom_app_bar_edit_location": "Ort bearbeiten",
|
"control_bottom_app_bar_edit_location": "Ort bearbeiten",
|
||||||
"control_bottom_app_bar_edit_time": "Datum und Uhrzeit bearbeiten",
|
"control_bottom_app_bar_edit_time": "Datum und Uhrzeit bearbeiten",
|
||||||
"control_bottom_app_bar_favorite": "Favorit",
|
"control_bottom_app_bar_favorite": "Favorit",
|
||||||
@@ -216,7 +223,7 @@
|
|||||||
"experimental_settings_title": "Experimentell",
|
"experimental_settings_title": "Experimentell",
|
||||||
"favorites_page_no_favorites": "Keine favorisierten Inhalte gefunden",
|
"favorites_page_no_favorites": "Keine favorisierten Inhalte gefunden",
|
||||||
"favorites_page_title": "Favoriten",
|
"favorites_page_title": "Favoriten",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "Dateiname oder Dateityp",
|
||||||
"haptic_feedback_switch": "Haptisches Feedback aktivieren",
|
"haptic_feedback_switch": "Haptisches Feedback aktivieren",
|
||||||
"haptic_feedback_title": "Haptisches Feedback",
|
"haptic_feedback_title": "Haptisches Feedback",
|
||||||
"header_settings_add_header_tip": "Header hinzufügen",
|
"header_settings_add_header_tip": "Header hinzufügen",
|
||||||
@@ -224,7 +231,7 @@
|
|||||||
"header_settings_header_name_input": "Header-Name",
|
"header_settings_header_name_input": "Header-Name",
|
||||||
"header_settings_header_value_input": "Header-Wert",
|
"header_settings_header_value_input": "Header-Wert",
|
||||||
"header_settings_page_title": "Proxy-Headers",
|
"header_settings_page_title": "Proxy-Headers",
|
||||||
"headers_settings_tile_subtitle": "Definiere Proxy-Header, die die Anwendung bei jeder Netzwerkanfrage mitschicken soll",
|
"headers_settings_tile_subtitle": "Definiere einen Proxy-Header, den die Anwendung bei jeder Netzwerkanfrage mitschicken soll",
|
||||||
"headers_settings_tile_title": "Benutzerdefinierte Proxy-Header",
|
"headers_settings_tile_title": "Benutzerdefinierte Proxy-Header",
|
||||||
"home_page_add_to_album_conflicts": "{added} Elemente zu {album} hinzugefügt. {failed} Elemente sind bereits vorhanden.",
|
"home_page_add_to_album_conflicts": "{added} Elemente zu {album} hinzugefügt. {failed} Elemente sind bereits vorhanden.",
|
||||||
"home_page_add_to_album_err_local": "Es können lokale Elemente noch nicht zu Alben hinzugefügt werden, überspringen...",
|
"home_page_add_to_album_err_local": "Es können lokale Elemente noch nicht zu Alben hinzugefügt werden, überspringen...",
|
||||||
@@ -244,8 +251,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Download gestartet",
|
"image_viewer_page_state_provider_download_started": "Download gestartet",
|
||||||
"image_viewer_page_state_provider_download_success": "Erfolgreich heruntergeladen",
|
"image_viewer_page_state_provider_download_success": "Erfolgreich heruntergeladen",
|
||||||
"image_viewer_page_state_provider_share_error": "Fehler beim Teilen",
|
"image_viewer_page_state_provider_share_error": "Fehler beim Teilen",
|
||||||
"invalid_date": "Invalid date",
|
"invalid_date": "Ungültiges Datum ",
|
||||||
"invalid_date_format": "Invalid date format",
|
"invalid_date_format": "Ungültiges Datumsformat",
|
||||||
"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",
|
||||||
@@ -327,7 +334,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Das Datum und die Uhrzeit von schreibgeschützten Inhalten kann nicht verändert werden, überspringen...",
|
"multiselect_grid_edit_date_time_err_read_only": "Das Datum und die Uhrzeit von schreibgeschützten Inhalten kann nicht verändert werden, überspringen...",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Der Aufnahmeort von schreibgeschützten Inhalten kann nicht verändert werden, überspringen...",
|
"multiselect_grid_edit_gps_err_read_only": "Der Aufnahmeort von schreibgeschützten Inhalten kann nicht verändert werden, überspringen...",
|
||||||
"no_assets_to_show": "Keine Vorschau vorhanden",
|
"no_assets_to_show": "Keine Vorschau vorhanden",
|
||||||
"no_name": "No name",
|
"no_name": "Kein Name",
|
||||||
"notification_permission_dialog_cancel": "Abbrechen",
|
"notification_permission_dialog_cancel": "Abbrechen",
|
||||||
"notification_permission_dialog_content": "Um Benachrichtigungen zu aktivieren, navigiere zu Einstellungen und klicke \"Erlauben\"",
|
"notification_permission_dialog_content": "Um Benachrichtigungen zu aktivieren, navigiere zu Einstellungen und klicke \"Erlauben\"",
|
||||||
"notification_permission_dialog_settings": "Einstellungen",
|
"notification_permission_dialog_settings": "Einstellungen",
|
||||||
@@ -371,30 +378,30 @@
|
|||||||
"scaffold_body_error_occurred": "Ein Fehler ist aufgetreten",
|
"scaffold_body_error_occurred": "Ein Fehler ist aufgetreten",
|
||||||
"search_bar_hint": "Durchsuche deine Fotos",
|
"search_bar_hint": "Durchsuche deine Fotos",
|
||||||
"search_filter_apply": "Filter anwenden",
|
"search_filter_apply": "Filter anwenden",
|
||||||
"search_filter_camera": "Camera",
|
"search_filter_camera": "Kamera",
|
||||||
"search_filter_camera_make": "Marke",
|
"search_filter_camera_make": "Marke",
|
||||||
"search_filter_camera_model": "Modell",
|
"search_filter_camera_model": "Modell",
|
||||||
"search_filter_camera_title": "Select camera type",
|
"search_filter_camera_title": "Kameratyp auswählen ",
|
||||||
"search_filter_date": "Date",
|
"search_filter_date": "Datum",
|
||||||
"search_filter_date_interval": "{start} to {end}",
|
"search_filter_date_interval": "{start} bis {end}",
|
||||||
"search_filter_date_title": "Select a date range",
|
"search_filter_date_title": "Wähle einen Zeitraum",
|
||||||
"search_filter_display_option_archive": "Archiv",
|
"search_filter_display_option_archive": "Archiv",
|
||||||
"search_filter_display_option_favorite": "Favorit",
|
"search_filter_display_option_favorite": "Favorit",
|
||||||
"search_filter_display_option_not_in_album": "Nicht im Album",
|
"search_filter_display_option_not_in_album": "Nicht im Album",
|
||||||
"search_filter_display_options": "Display Options",
|
"search_filter_display_options": "Anzeigeeinstellungen",
|
||||||
"search_filter_display_options_title": "Display options",
|
"search_filter_display_options_title": "Anzeigeeinstellungen ",
|
||||||
"search_filter_location": "Location",
|
"search_filter_location": "Ort",
|
||||||
"search_filter_location_city": "Stadt",
|
"search_filter_location_city": "Stadt",
|
||||||
"search_filter_location_country": "Land",
|
"search_filter_location_country": "Land",
|
||||||
"search_filter_location_state": "Bundesland",
|
"search_filter_location_state": "Bundesland",
|
||||||
"search_filter_location_title": "Select location",
|
"search_filter_location_title": "Ort auswählen ",
|
||||||
"search_filter_media_type": "Media Type",
|
"search_filter_media_type": "Medientyp",
|
||||||
"search_filter_media_type_all": "Alle",
|
"search_filter_media_type_all": "Alle",
|
||||||
"search_filter_media_type_image": "Bild",
|
"search_filter_media_type_image": "Bild",
|
||||||
"search_filter_media_type_title": "Select media type",
|
"search_filter_media_type_title": "Medientyp auswählen ",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
"search_filter_people": "People",
|
"search_filter_people": "Personen",
|
||||||
"search_filter_people_title": "Select people",
|
"search_filter_people_title": "Personen auswählen ",
|
||||||
"search_page_categories": "Kategorien",
|
"search_page_categories": "Kategorien",
|
||||||
"search_page_favorites": "Favoriten",
|
"search_page_favorites": "Favoriten",
|
||||||
"search_page_motion_photos": "Live-Fotos",
|
"search_page_motion_photos": "Live-Fotos",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Teilen",
|
"tab_controller_nav_sharing": "Teilen",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Zeige Sicherungsstatus auf Vorschaubild",
|
"theme_setting_asset_list_storage_indicator_title": "Zeige Sicherungsstatus auf Vorschaubild",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Anzahl der Elemente pro Reihe ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Anzahl der Elemente pro Reihe ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Primärfarbe auf Hintergrundflächen verwenden",
|
||||||
|
"theme_setting_colorful_interface_title": "Bunte Oberfläche ",
|
||||||
"theme_setting_dark_mode_switch": "Dunkler Modus",
|
"theme_setting_dark_mode_switch": "Dunkler Modus",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Einstellen der Qualität des Detailbildbetrachters",
|
"theme_setting_image_viewer_quality_subtitle": "Einstellen der Qualität des Detailbildbetrachters",
|
||||||
"theme_setting_image_viewer_quality_title": "Qualität des Bildbetrachters",
|
"theme_setting_image_viewer_quality_title": "Qualität des Bildbetrachters",
|
||||||
|
"theme_setting_primary_color_subtitle": "Wähle eine Farbe für primäre Aktionen und Akzente",
|
||||||
|
"theme_setting_primary_color_title": "Primärfarbe",
|
||||||
|
"theme_setting_system_primary_color_title": "Systemfarbe verwenden",
|
||||||
"theme_setting_system_theme_switch": "Automatisch (Systemeinstellung)",
|
"theme_setting_system_theme_switch": "Automatisch (Systemeinstellung)",
|
||||||
"theme_setting_theme_subtitle": "Wählen Sie die Themeneinstellung der App",
|
"theme_setting_theme_subtitle": "Wählen Sie die Themeneinstellung der App",
|
||||||
"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": "Optionen",
|
"translated_text_options": "Optionen",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Löschen",
|
"trash_page_delete": "Löschen",
|
||||||
"trash_page_delete_all": "Alle löschen",
|
"trash_page_delete_all": "Alle löschen",
|
||||||
"trash_page_empty_trash_btn": "Papierkorb leeren",
|
"trash_page_empty_trash_btn": "Papierkorb leeren",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Ρυθμίσεις διάταξης πλέγματος φωτογραφιών",
|
"asset_list_settings_subtitle": "Ρυθμίσεις διάταξης πλέγματος φωτογραφιών",
|
||||||
"asset_list_settings_title": "Πλέγμα φωτογραφιών",
|
"asset_list_settings_title": "Πλέγμα φωτογραφιών",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Άλμπουμ στη συσκευή ({})",
|
"backup_album_selection_page_albums_device": "Άλμπουμ στη συσκευή ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Πάτημα για συμπερίληψη, διπλό πάτημα για εξαίρεση",
|
"backup_album_selection_page_albums_tap": "Πάτημα για συμπερίληψη, διπλό πάτημα για εξαίρεση",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Sharing",
|
"tab_controller_nav_sharing": "Sharing",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_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",
|
"translated_text_options": "Options",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Delete",
|
"trash_page_delete": "Delete",
|
||||||
"trash_page_delete_all": "Delete All",
|
"trash_page_delete_all": "Delete All",
|
||||||
"trash_page_empty_trash_btn": "Empty trash",
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Photo Grid",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
@@ -528,13 +535,13 @@
|
|||||||
"tab_controller_nav_sharing": "Sharing",
|
"tab_controller_nav_sharing": "Sharing",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
"theme_setting_primary_color_title": "Primary color",
|
|
||||||
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
"theme_setting_colorful_interface_title": "Colorful interface",
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
|
||||||
"theme_setting_system_primary_color_title": "Use system color",
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
@@ -542,6 +549,7 @@
|
|||||||
"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",
|
"translated_text_options": "Options",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Delete",
|
"trash_page_delete": "Delete",
|
||||||
"trash_page_delete_all": "Delete All",
|
"trash_page_delete_all": "Delete All",
|
||||||
"trash_page_empty_trash_btn": "Empty trash",
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Disposición",
|
"asset_list_layout_sub_title": "Disposición",
|
||||||
"asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
|
"asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
|
||||||
"asset_list_settings_title": "Cuadrícula de fotos",
|
"asset_list_settings_title": "Cuadrícula de fotos",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Visor de Archivos",
|
"asset_viewer_settings_title": "Visor de Archivos",
|
||||||
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Toque para incluir, doble toque para excluir",
|
"backup_album_selection_page_albums_tap": "Toque para incluir, doble toque para excluir",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Compartiendo",
|
"tab_controller_nav_sharing": "Compartiendo",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
|
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Número de elementos por fila ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Número de elementos por fila ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Modo oscuro",
|
"theme_setting_dark_mode_switch": "Modo oscuro",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
|
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
|
||||||
"theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
|
"theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
|
"theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
|
||||||
"theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
|
"theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
|
||||||
"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": "Opciones",
|
"translated_text_options": "Opciones",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Eliminar",
|
"trash_page_delete": "Eliminar",
|
||||||
"trash_page_delete_all": "Eliminar todos",
|
"trash_page_delete_all": "Eliminar todos",
|
||||||
"trash_page_empty_trash_btn": "Vaciar papelera",
|
"trash_page_empty_trash_btn": "Vaciar papelera",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
|
"asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
|
||||||
"asset_list_settings_title": "Cuadrícula de fotos",
|
"asset_list_settings_title": "Cuadrícula de fotos",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Pulsar para incluir, pulsar dos veces para excluir",
|
"backup_album_selection_page_albums_tap": "Pulsar para incluir, pulsar dos veces para excluir",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Compartiendo",
|
"tab_controller_nav_sharing": "Compartiendo",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
|
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Número de elementos por fila ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Número de elementos por fila ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Modo oscuro",
|
"theme_setting_dark_mode_switch": "Modo oscuro",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
|
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
|
||||||
"theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
|
"theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
|
"theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
|
||||||
"theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
|
"theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
|
||||||
"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": "Opciones",
|
"translated_text_options": "Opciones",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Eliminar",
|
"trash_page_delete": "Eliminar",
|
||||||
"trash_page_delete_all": "Eliminar todos",
|
"trash_page_delete_all": "Eliminar todos",
|
||||||
"trash_page_empty_trash_btn": "Vaciar papelera",
|
"trash_page_empty_trash_btn": "Vaciar papelera",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
|
"asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
|
||||||
"asset_list_settings_title": "Cuadrícula de fotos",
|
"asset_list_settings_title": "Cuadrícula de fotos",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Pulsar para incluir, pulsar dos veces para excluir",
|
"backup_album_selection_page_albums_tap": "Pulsar para incluir, pulsar dos veces para excluir",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Compartiendo",
|
"tab_controller_nav_sharing": "Compartiendo",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
|
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los archivos",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Número de elementos por fila ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Número de elementos por fila ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Modo oscuro",
|
"theme_setting_dark_mode_switch": "Modo oscuro",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
|
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
|
||||||
"theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
|
"theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
|
"theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
|
||||||
"theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
|
"theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
|
||||||
"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": "Opciones",
|
"translated_text_options": "Opciones",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Eliminar",
|
"trash_page_delete": "Eliminar",
|
||||||
"trash_page_delete_all": "Eliminar todos",
|
"trash_page_delete_all": "Eliminar todos",
|
||||||
"trash_page_empty_trash_btn": "Vaciar papelera",
|
"trash_page_empty_trash_btn": "Vaciar papelera",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
|
"asset_list_settings_subtitle": "Configuraciones del diseño de la cuadrícula de fotos",
|
||||||
"asset_list_settings_title": "Cuadrícula de fotos",
|
"asset_list_settings_title": "Cuadrícula de fotos",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
"backup_album_selection_page_albums_device": "Álbumes en el dispositivo ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Pulsar para incluir, pulsar dos veces para excluir",
|
"backup_album_selection_page_albums_tap": "Pulsar para incluir, pulsar dos veces para excluir",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Compartidos",
|
"tab_controller_nav_sharing": "Compartidos",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los recursos",
|
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de almacenamiento en las miniaturas de los recursos",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Número de recursos por fila ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Número de recursos por fila ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Modo oscuro",
|
"theme_setting_dark_mode_switch": "Modo oscuro",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
|
"theme_setting_image_viewer_quality_subtitle": "Ajustar la calidad del visor de detalles de imágenes",
|
||||||
"theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
|
"theme_setting_image_viewer_quality_title": "Calidad del visor de imágenes",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
|
"theme_setting_system_theme_switch": "Automático (seguir ajuste del sistema)",
|
||||||
"theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
|
"theme_setting_theme_subtitle": "Elige la configuración del tema de la aplicación",
|
||||||
"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": "Opciones",
|
"translated_text_options": "Opciones",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Eliminar",
|
"trash_page_delete": "Eliminar",
|
||||||
"trash_page_delete_all": "Eliminar todos",
|
"trash_page_delete_all": "Eliminar todos",
|
||||||
"trash_page_empty_trash_btn": "Vaciar papelera",
|
"trash_page_empty_trash_btn": "Vaciar papelera",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Asettelu",
|
"asset_list_layout_sub_title": "Asettelu",
|
||||||
"asset_list_settings_subtitle": "Kuvaruudukon asettelu",
|
"asset_list_settings_subtitle": "Kuvaruudukon asettelu",
|
||||||
"asset_list_settings_title": "Kuvaruudukko",
|
"asset_list_settings_title": "Kuvaruudukko",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Katselin",
|
"asset_viewer_settings_title": "Katselin",
|
||||||
"backup_album_selection_page_albums_device": "Laitteen albumit ({})",
|
"backup_album_selection_page_albums_device": "Laitteen albumit ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Napauta sisällyttääksesi, kaksoisnapauta jättääksesi pois",
|
"backup_album_selection_page_albums_tap": "Napauta sisällyttääksesi, kaksoisnapauta jättääksesi pois",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Jakaminen",
|
"tab_controller_nav_sharing": "Jakaminen",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Näytä tallennustilan ilmaisin kohteiden kuvakkeissa",
|
"theme_setting_asset_list_storage_indicator_title": "Näytä tallennustilan ilmaisin kohteiden kuvakkeissa",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Kohteiden määrä rivillä ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Kohteiden määrä rivillä ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Tumma teema",
|
"theme_setting_dark_mode_switch": "Tumma teema",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Säädä kuvien katselun laatua",
|
"theme_setting_image_viewer_quality_subtitle": "Säädä kuvien katselun laatua",
|
||||||
"theme_setting_image_viewer_quality_title": "Kuvien katseluohjelman laatu",
|
"theme_setting_image_viewer_quality_title": "Kuvien katseluohjelman laatu",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automaattinen (seuraa järjestelmän asetusta)",
|
"theme_setting_system_theme_switch": "Automaattinen (seuraa järjestelmän asetusta)",
|
||||||
"theme_setting_theme_subtitle": "Valitse sovelluksen teema-asetukset",
|
"theme_setting_theme_subtitle": "Valitse sovelluksen teema-asetukset",
|
||||||
"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": "Vaihtoehdot",
|
"translated_text_options": "Vaihtoehdot",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Poista",
|
"trash_page_delete": "Poista",
|
||||||
"trash_page_delete_all": "Poista kaikki",
|
"trash_page_delete_all": "Poista kaikki",
|
||||||
"trash_page_empty_trash_btn": "Tyhjennä roskakori",
|
"trash_page_empty_trash_btn": "Tyhjennä roskakori",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Paramètres de disposition de la grille de photos",
|
"asset_list_settings_subtitle": "Paramètres de disposition de la grille de photos",
|
||||||
"asset_list_settings_title": "Grille de photos",
|
"asset_list_settings_title": "Grille de photos",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Albums sur l'appareil ({})",
|
"backup_album_selection_page_albums_device": "Albums sur l'appareil ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tapez pour inclure, tapez deux fois pour exclure",
|
"backup_album_selection_page_albums_tap": "Tapez pour inclure, tapez deux fois pour exclure",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Partage",
|
"tab_controller_nav_sharing": "Partage",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Afficher l'indicateur de stockage sur les tuiles des éléments",
|
"theme_setting_asset_list_storage_indicator_title": "Afficher l'indicateur de stockage sur les tuiles des éléments",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Nombre d'éléments par ligne ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Nombre d'éléments par ligne ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Mode sombre",
|
"theme_setting_dark_mode_switch": "Mode sombre",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Ajustez la qualité de la visionneuse d'images détaillées",
|
"theme_setting_image_viewer_quality_subtitle": "Ajustez la qualité de la visionneuse d'images détaillées",
|
||||||
"theme_setting_image_viewer_quality_title": "Qualité de la visualisation des images",
|
"theme_setting_image_viewer_quality_title": "Qualité de la visualisation des images",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatique (suivre les paramètres du système)",
|
"theme_setting_system_theme_switch": "Automatique (suivre les paramètres du système)",
|
||||||
"theme_setting_theme_subtitle": "Choisissez le thème de l'application",
|
"theme_setting_theme_subtitle": "Choisissez le thème de l'application",
|
||||||
"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",
|
"translated_text_options": "Options",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Supprimer",
|
"trash_page_delete": "Supprimer",
|
||||||
"trash_page_delete_all": "Tout supprimer",
|
"trash_page_delete_all": "Tout supprimer",
|
||||||
"trash_page_empty_trash_btn": "Vider la corbeille",
|
"trash_page_empty_trash_btn": "Vider la corbeille",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Disposition",
|
"asset_list_layout_sub_title": "Disposition",
|
||||||
"asset_list_settings_subtitle": "Paramètres de disposition de la grille de photos",
|
"asset_list_settings_subtitle": "Paramètres de disposition de la grille de photos",
|
||||||
"asset_list_settings_title": "Grille de photos",
|
"asset_list_settings_title": "Grille de photos",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Visualisateur d'éléments",
|
"asset_viewer_settings_title": "Visualisateur d'éléments",
|
||||||
"backup_album_selection_page_albums_device": "Albums sur l'appareil ({})",
|
"backup_album_selection_page_albums_device": "Albums sur l'appareil ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tapez pour inclure, tapez deux fois pour exclure",
|
"backup_album_selection_page_albums_tap": "Tapez pour inclure, tapez deux fois pour exclure",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Partage",
|
"tab_controller_nav_sharing": "Partage",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Afficher l'indicateur de stockage sur les tuiles des éléments",
|
"theme_setting_asset_list_storage_indicator_title": "Afficher l'indicateur de stockage sur les tuiles des éléments",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Nombre d'éléments par ligne ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Nombre d'éléments par ligne ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Mode sombre",
|
"theme_setting_dark_mode_switch": "Mode sombre",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Ajustez la qualité de la visionneuse d'images détaillées",
|
"theme_setting_image_viewer_quality_subtitle": "Ajustez la qualité de la visionneuse d'images détaillées",
|
||||||
"theme_setting_image_viewer_quality_title": "Qualité de la visualisation des images",
|
"theme_setting_image_viewer_quality_title": "Qualité de la visualisation des images",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatique (suivre les paramètres du système)",
|
"theme_setting_system_theme_switch": "Automatique (suivre les paramètres du système)",
|
||||||
"theme_setting_theme_subtitle": "Choisissez le thème de l'application",
|
"theme_setting_theme_subtitle": "Choisissez le thème de l'application",
|
||||||
"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",
|
"translated_text_options": "Options",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Supprimer",
|
"trash_page_delete": "Supprimer",
|
||||||
"trash_page_delete_all": "Tout supprimer",
|
"trash_page_delete_all": "Tout supprimer",
|
||||||
"trash_page_empty_trash_btn": "Vider la corbeille",
|
"trash_page_empty_trash_btn": "Vider la corbeille",
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
"action_common_cancel": "ביטול",
|
"action_common_cancel": "ביטול",
|
||||||
"action_common_clear": "נקה",
|
"action_common_clear": "נקה",
|
||||||
"action_common_confirm": "אישור",
|
"action_common_confirm": "אישור",
|
||||||
"action_common_save": "Save",
|
"action_common_save": "שמור",
|
||||||
"action_common_select": "Select",
|
"action_common_select": "בחר",
|
||||||
"action_common_update": "עדכון",
|
"action_common_update": "עדכון",
|
||||||
"add_to_album_bottom_sheet_added": "נוסף ל {album}",
|
"add_to_album_bottom_sheet_added": "נוסף ל {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "כבר ב {album}",
|
"add_to_album_bottom_sheet_already_exists": "כבר ב {album}",
|
||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "פריסה",
|
"asset_list_layout_sub_title": "פריסה",
|
||||||
"asset_list_settings_subtitle": "הגדרות תבנית רשת תמונות",
|
"asset_list_settings_subtitle": "הגדרות תבנית רשת תמונות",
|
||||||
"asset_list_settings_title": "רשת תמונות",
|
"asset_list_settings_title": "רשת תמונות",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "מציג הנכסים",
|
"asset_viewer_settings_title": "מציג הנכסים",
|
||||||
"backup_album_selection_page_albums_device": "אלבומים במכשיר ({})",
|
"backup_album_selection_page_albums_device": "אלבומים במכשיר ({})",
|
||||||
"backup_album_selection_page_albums_tap": "הקש כדי לכלול, הקש פעמיים כדי להחריג",
|
"backup_album_selection_page_albums_tap": "הקש כדי לכלול, הקש פעמיים כדי להחריג",
|
||||||
@@ -143,21 +150,21 @@
|
|||||||
"change_password_form_new_password": "סיסמה חדשה",
|
"change_password_form_new_password": "סיסמה חדשה",
|
||||||
"change_password_form_password_mismatch": "סיסמאות לא תואמות",
|
"change_password_form_password_mismatch": "סיסמאות לא תואמות",
|
||||||
"change_password_form_reenter_new_password": "הכנס שוב סיסמה חדשה",
|
"change_password_form_reenter_new_password": "הכנס שוב סיסמה חדשה",
|
||||||
"client_cert_dialog_msg_confirm": "OK",
|
"client_cert_dialog_msg_confirm": "בסדר",
|
||||||
"client_cert_enter_password": "Enter Password",
|
"client_cert_enter_password": "הזן סיסמה",
|
||||||
"client_cert_import": "Import",
|
"client_cert_import": "ייבוא",
|
||||||
"client_cert_import_success_msg": "Client certificate is imported",
|
"client_cert_import_success_msg": "תעודת לקוח מיובאת",
|
||||||
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
"client_cert_invalid_msg": "קובץ תעודה לא תקין או סיסמה שגויה",
|
||||||
"client_cert_remove": "Remove",
|
"client_cert_remove": "הסרה",
|
||||||
"client_cert_remove_msg": "Client certificate is removed",
|
"client_cert_remove_msg": "תעודת לקוח הוסרה",
|
||||||
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
"client_cert_subtitle": "תומך בפורמט PKCS12 (.p12, .pfx) בלבד. ייבוא/הסרה של תעודה זמינה רק לפני התחברות",
|
||||||
"client_cert_title": "SSL Client Certificate",
|
"client_cert_title": "תעודת לקוח SSL",
|
||||||
"common_add_to_album": "הוסף לאלבום",
|
"common_add_to_album": "הוסף לאלבום",
|
||||||
"common_change_password": "שנה סיסמה",
|
"common_change_password": "שנה סיסמה",
|
||||||
"common_create_new_album": "צור אלבום חדש",
|
"common_create_new_album": "צור אלבום חדש",
|
||||||
"common_server_error": "נא לבדוק את חיבור הרשת שלך, תוודא/י שהשרת נגיש ושגרסאות אפליקציה/שרת תואמות",
|
"common_server_error": "נא לבדוק את חיבור הרשת שלך, תוודא/י שהשרת נגיש ושגרסאות אפליקציה/שרת תואמות",
|
||||||
"common_shared": "משותף",
|
"common_shared": "משותף",
|
||||||
"contextual_search": "Sunrise on the beach",
|
"contextual_search": "Sunrise on the beach (מומלץ לחפש באנגלית לתוצאות טובות יותר)",
|
||||||
"control_bottom_app_bar_add_to_album": "הוסף לאלבום",
|
"control_bottom_app_bar_add_to_album": "הוסף לאלבום",
|
||||||
"control_bottom_app_bar_album_info": "{} פריטים",
|
"control_bottom_app_bar_album_info": "{} פריטים",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} פריטים · משותפים",
|
"control_bottom_app_bar_album_info_shared": "{} פריטים · משותפים",
|
||||||
@@ -166,7 +173,7 @@
|
|||||||
"control_bottom_app_bar_delete": "מחק",
|
"control_bottom_app_bar_delete": "מחק",
|
||||||
"control_bottom_app_bar_delete_from_immich": "מחק מהשרת",
|
"control_bottom_app_bar_delete_from_immich": "מחק מהשרת",
|
||||||
"control_bottom_app_bar_delete_from_local": "מחק מהמכשיר",
|
"control_bottom_app_bar_delete_from_local": "מחק מהמכשיר",
|
||||||
"control_bottom_app_bar_edit": "Edit",
|
"control_bottom_app_bar_edit": "עריכה",
|
||||||
"control_bottom_app_bar_edit_location": "ערוך מיקום",
|
"control_bottom_app_bar_edit_location": "ערוך מיקום",
|
||||||
"control_bottom_app_bar_edit_time": "ערוך תאריך & זמן",
|
"control_bottom_app_bar_edit_time": "ערוך תאריך & זמן",
|
||||||
"control_bottom_app_bar_favorite": "הוסף למועדפים",
|
"control_bottom_app_bar_favorite": "הוסף למועדפים",
|
||||||
@@ -216,7 +223,7 @@
|
|||||||
"experimental_settings_title": "נסיוני",
|
"experimental_settings_title": "נסיוני",
|
||||||
"favorites_page_no_favorites": "לא נמצאו נכסים מועדפים",
|
"favorites_page_no_favorites": "לא נמצאו נכסים מועדפים",
|
||||||
"favorites_page_title": "מועדפים",
|
"favorites_page_title": "מועדפים",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "שם קובץ או סיומת",
|
||||||
"haptic_feedback_switch": "אפשר משוב ברטט",
|
"haptic_feedback_switch": "אפשר משוב ברטט",
|
||||||
"haptic_feedback_title": "משוב ברטט",
|
"haptic_feedback_title": "משוב ברטט",
|
||||||
"header_settings_add_header_tip": "הוסף כותרת",
|
"header_settings_add_header_tip": "הוסף כותרת",
|
||||||
@@ -244,8 +251,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "ההורדה החלה",
|
"image_viewer_page_state_provider_download_started": "ההורדה החלה",
|
||||||
"image_viewer_page_state_provider_download_success": "הצלחת הורדה",
|
"image_viewer_page_state_provider_download_success": "הצלחת הורדה",
|
||||||
"image_viewer_page_state_provider_share_error": "שיתוף שגיאה",
|
"image_viewer_page_state_provider_share_error": "שיתוף שגיאה",
|
||||||
"invalid_date": "Invalid date",
|
"invalid_date": "תאריך לא תקין",
|
||||||
"invalid_date_format": "Invalid date format",
|
"invalid_date_format": "פורמט תאריך לא תקין",
|
||||||
"library_page_albums": "אלבומים",
|
"library_page_albums": "אלבומים",
|
||||||
"library_page_archive": "ארכיון",
|
"library_page_archive": "ארכיון",
|
||||||
"library_page_device_albums": "אלבומים במכשיר",
|
"library_page_device_albums": "אלבומים במכשיר",
|
||||||
@@ -327,7 +334,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "לא ניתן לערוך תאריך של נכס(ים) לקריאה בלבד, מדלג",
|
"multiselect_grid_edit_date_time_err_read_only": "לא ניתן לערוך תאריך של נכס(ים) לקריאה בלבד, מדלג",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "לא ניתן לערוך מיקום של נכס(ים) לקריאה בלבד, מדלג",
|
"multiselect_grid_edit_gps_err_read_only": "לא ניתן לערוך מיקום של נכס(ים) לקריאה בלבד, מדלג",
|
||||||
"no_assets_to_show": "אין נכסים להציג",
|
"no_assets_to_show": "אין נכסים להציג",
|
||||||
"no_name": "No name",
|
"no_name": "ללא שם",
|
||||||
"notification_permission_dialog_cancel": "ביטול",
|
"notification_permission_dialog_cancel": "ביטול",
|
||||||
"notification_permission_dialog_content": "כדי לאפשר התראות, לך להגדרות ובחר התר",
|
"notification_permission_dialog_content": "כדי לאפשר התראות, לך להגדרות ובחר התר",
|
||||||
"notification_permission_dialog_settings": "הגדרות",
|
"notification_permission_dialog_settings": "הגדרות",
|
||||||
@@ -371,30 +378,30 @@
|
|||||||
"scaffold_body_error_occurred": "אירעה שגיאה",
|
"scaffold_body_error_occurred": "אירעה שגיאה",
|
||||||
"search_bar_hint": "חפש/י בתמונות שלך",
|
"search_bar_hint": "חפש/י בתמונות שלך",
|
||||||
"search_filter_apply": "החל סינון",
|
"search_filter_apply": "החל סינון",
|
||||||
"search_filter_camera": "Camera",
|
"search_filter_camera": "מצלמה",
|
||||||
"search_filter_camera_make": "תוצרת",
|
"search_filter_camera_make": "תוצרת",
|
||||||
"search_filter_camera_model": "דגם",
|
"search_filter_camera_model": "דגם",
|
||||||
"search_filter_camera_title": "Select camera type",
|
"search_filter_camera_title": "בחר סוג מצלמה",
|
||||||
"search_filter_date": "Date",
|
"search_filter_date": "תאריך",
|
||||||
"search_filter_date_interval": "{start} to {end}",
|
"search_filter_date_interval": "{start} עד {end}",
|
||||||
"search_filter_date_title": "Select a date range",
|
"search_filter_date_title": "בחר טווח תאריכים",
|
||||||
"search_filter_display_option_archive": "ארכיון",
|
"search_filter_display_option_archive": "ארכיון",
|
||||||
"search_filter_display_option_favorite": "מועדף",
|
"search_filter_display_option_favorite": "מועדף",
|
||||||
"search_filter_display_option_not_in_album": "לא באלבום",
|
"search_filter_display_option_not_in_album": "לא באלבום",
|
||||||
"search_filter_display_options": "Display Options",
|
"search_filter_display_options": "אפשרויות תצוגה",
|
||||||
"search_filter_display_options_title": "Display options",
|
"search_filter_display_options_title": "אפשרויות תצוגה",
|
||||||
"search_filter_location": "Location",
|
"search_filter_location": "מיקום",
|
||||||
"search_filter_location_city": "עיר",
|
"search_filter_location_city": "עיר",
|
||||||
"search_filter_location_country": "ארץ",
|
"search_filter_location_country": "ארץ",
|
||||||
"search_filter_location_state": "מדינה",
|
"search_filter_location_state": "מדינה",
|
||||||
"search_filter_location_title": "Select location",
|
"search_filter_location_title": "בחר מיקום",
|
||||||
"search_filter_media_type": "Media Type",
|
"search_filter_media_type": "סוג מדיה",
|
||||||
"search_filter_media_type_all": "הכל",
|
"search_filter_media_type_all": "הכל",
|
||||||
"search_filter_media_type_image": "תמונה",
|
"search_filter_media_type_image": "תמונה",
|
||||||
"search_filter_media_type_title": "Select media type",
|
"search_filter_media_type_title": "בחר סוג מדיה",
|
||||||
"search_filter_media_type_video": "סרטון",
|
"search_filter_media_type_video": "סרטון",
|
||||||
"search_filter_people": "People",
|
"search_filter_people": "אנשים",
|
||||||
"search_filter_people_title": "Select people",
|
"search_filter_people_title": "בחר אנשים",
|
||||||
"search_page_categories": "קטגוריות",
|
"search_page_categories": "קטגוריות",
|
||||||
"search_page_favorites": "מועדפים",
|
"search_page_favorites": "מועדפים",
|
||||||
"search_page_motion_photos": "תמונות עם תנועה",
|
"search_page_motion_photos": "תמונות עם תנועה",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "שיתוף",
|
"tab_controller_nav_sharing": "שיתוף",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "הראה מחוון אחסון על אריחי נכסים",
|
"theme_setting_asset_list_storage_indicator_title": "הראה מחוון אחסון על אריחי נכסים",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "מספר נכסים בכל שורה ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "מספר נכסים בכל שורה ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "החל את הצבע העיקרי למשטחי רקע",
|
||||||
|
"theme_setting_colorful_interface_title": "ממשק צבעוני",
|
||||||
"theme_setting_dark_mode_switch": "מצב כהה",
|
"theme_setting_dark_mode_switch": "מצב כהה",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "התאם את האיכות של מציג פרטי התמונות",
|
"theme_setting_image_viewer_quality_subtitle": "התאם את האיכות של מציג פרטי התמונות",
|
||||||
"theme_setting_image_viewer_quality_title": "איכות מציג תמונות",
|
"theme_setting_image_viewer_quality_title": "איכות מציג תמונות",
|
||||||
|
"theme_setting_primary_color_subtitle": "בחר צבע לפעולות עיקריות והדגשות",
|
||||||
|
"theme_setting_primary_color_title": "צבע עיקרי",
|
||||||
|
"theme_setting_system_primary_color_title": "השתמש בצבע המערכת",
|
||||||
"theme_setting_system_theme_switch": "אוטומטי (עקוב אחרי הגדרת מערכת)",
|
"theme_setting_system_theme_switch": "אוטומטי (עקוב אחרי הגדרת מערכת)",
|
||||||
"theme_setting_theme_subtitle": "בחר/י את הגדרת ערכת הנושא של היישום",
|
"theme_setting_theme_subtitle": "בחר את הגדרת ערכת הנושא של היישום",
|
||||||
"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": "אפשרויות",
|
"translated_text_options": "אפשרויות",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "מחק",
|
"trash_page_delete": "מחק",
|
||||||
"trash_page_delete_all": "מחק הכל",
|
"trash_page_delete_all": "מחק הכל",
|
||||||
"trash_page_empty_trash_btn": "רוקן אשפה",
|
"trash_page_empty_trash_btn": "רוקן אשפה",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Photo Grid",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Sharing",
|
"tab_controller_nav_sharing": "Sharing",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_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",
|
"translated_text_options": "Options",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Delete",
|
"trash_page_delete": "Delete",
|
||||||
"trash_page_delete_all": "Delete All",
|
"trash_page_delete_all": "Delete All",
|
||||||
"trash_page_empty_trash_btn": "कूड़ेदान खाली करें",
|
"trash_page_empty_trash_btn": "कूड़ेदान खाली करें",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Elrendezés",
|
"asset_list_layout_sub_title": "Elrendezés",
|
||||||
"asset_list_settings_subtitle": "Fotórács elrendezése",
|
"asset_list_settings_subtitle": "Fotórács elrendezése",
|
||||||
"asset_list_settings_title": "Fotórács",
|
"asset_list_settings_title": "Fotórács",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Elem Megjelenítő",
|
"asset_viewer_settings_title": "Elem Megjelenítő",
|
||||||
"backup_album_selection_page_albums_device": "Ezen az eszközön lévő albumok ({})",
|
"backup_album_selection_page_albums_device": "Ezen az eszközön lévő albumok ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Koppincs a hozzáadáshoz, duplán koppincs az eltávolításhoz",
|
"backup_album_selection_page_albums_tap": "Koppincs a hozzáadáshoz, duplán koppincs az eltávolításhoz",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Megosztás",
|
"tab_controller_nav_sharing": "Megosztás",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Tárhely ikon mutatása az elemeken",
|
"theme_setting_asset_list_storage_indicator_title": "Tárhely ikon mutatása az elemeken",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Elemek száma soronként ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Elemek száma soronként ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Sötét mód",
|
"theme_setting_dark_mode_switch": "Sötét mód",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Részletes képmegjelenítő minőségének beállítása",
|
"theme_setting_image_viewer_quality_subtitle": "Részletes képmegjelenítő minőségének beállítása",
|
||||||
"theme_setting_image_viewer_quality_title": "Képmegjelenítő minősége",
|
"theme_setting_image_viewer_quality_title": "Képmegjelenítő minősége",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatikus (követi a rendszer témáját)",
|
"theme_setting_system_theme_switch": "Automatikus (követi a rendszer témáját)",
|
||||||
"theme_setting_theme_subtitle": "Alkalmazás témájának választása",
|
"theme_setting_theme_subtitle": "Alkalmazás témájának választása",
|
||||||
"theme_setting_theme_title": "Téma",
|
"theme_setting_theme_title": "Téma",
|
||||||
"theme_setting_three_stage_loading_subtitle": "A háromlépcsős betöltés javíthatja a betöltési teljesítményt, de jelentősen növeli a hálózati forgalmat",
|
"theme_setting_three_stage_loading_subtitle": "A háromlépcsős betöltés javíthatja a betöltési teljesítményt, de jelentősen növeli a hálózati forgalmat",
|
||||||
"theme_setting_three_stage_loading_title": "Háromlépcsős betöltés engedélyezése",
|
"theme_setting_three_stage_loading_title": "Háromlépcsős betöltés engedélyezése",
|
||||||
"translated_text_options": "Beállítások",
|
"translated_text_options": "Beállítások",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Töröl",
|
"trash_page_delete": "Töröl",
|
||||||
"trash_page_delete_all": "Mindet Töröl",
|
"trash_page_delete_all": "Mindet Töröl",
|
||||||
"trash_page_empty_trash_btn": "Lomtár Ürítése",
|
"trash_page_empty_trash_btn": "Lomtár Ürítése",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Impostazion del layout della griglia delle foto",
|
"asset_list_settings_subtitle": "Impostazion del layout della griglia delle foto",
|
||||||
"asset_list_settings_title": "Griglia foto",
|
"asset_list_settings_title": "Griglia foto",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Visualizzazione risorse",
|
"asset_viewer_settings_title": "Visualizzazione risorse",
|
||||||
"backup_album_selection_page_albums_device": "Album sul dispositivo ({})",
|
"backup_album_selection_page_albums_device": "Album sul dispositivo ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tap per includere, doppio tap per escludere.",
|
"backup_album_selection_page_albums_tap": "Tap per includere, doppio tap per escludere.",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Condivisione",
|
"tab_controller_nav_sharing": "Condivisione",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Mostra indicatore dello storage nei titoli dei contenuti",
|
"theme_setting_asset_list_storage_indicator_title": "Mostra indicatore dello storage nei titoli dei contenuti",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Numero di contenuti per riga ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Numero di contenuti per riga ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Cambia la qualità del dettaglio dell'immagine",
|
"theme_setting_image_viewer_quality_subtitle": "Cambia la qualità del dettaglio dell'immagine",
|
||||||
"theme_setting_image_viewer_quality_title": "Qualità immagine",
|
"theme_setting_image_viewer_quality_title": "Qualità immagine",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatico (Segue le impostazioni di sistema)",
|
"theme_setting_system_theme_switch": "Automatico (Segue le impostazioni di sistema)",
|
||||||
"theme_setting_theme_subtitle": "Scegli un'impostazione per il tema dell'app",
|
"theme_setting_theme_subtitle": "Scegli un'impostazione per il tema dell'app",
|
||||||
"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": "Opzioni",
|
"translated_text_options": "Opzioni",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Elimina",
|
"trash_page_delete": "Elimina",
|
||||||
"trash_page_delete_all": "Elimina tutti",
|
"trash_page_delete_all": "Elimina tutti",
|
||||||
"trash_page_empty_trash_btn": "Svuota cestino",
|
"trash_page_empty_trash_btn": "Svuota cestino",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "レイアウト",
|
"asset_list_layout_sub_title": "レイアウト",
|
||||||
"asset_list_settings_subtitle": "グリッドに関する設定",
|
"asset_list_settings_subtitle": "グリッドに関する設定",
|
||||||
"asset_list_settings_title": "グリッド",
|
"asset_list_settings_title": "グリッド",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "アセットビューアー",
|
"asset_viewer_settings_title": "アセットビューアー",
|
||||||
"backup_album_selection_page_albums_device": "端末上のアルバム数: {} ",
|
"backup_album_selection_page_albums_device": "端末上のアルバム数: {} ",
|
||||||
"backup_album_selection_page_albums_tap": "タップで選択、ダブルタップで除外",
|
"backup_album_selection_page_albums_tap": "タップで選択、ダブルタップで除外",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "共有",
|
"tab_controller_nav_sharing": "共有",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "ストレージに関する情報を表示",
|
"theme_setting_asset_list_storage_indicator_title": "ストレージに関する情報を表示",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "一列ごとの枚数: {}",
|
"theme_setting_asset_list_tiles_per_row_title": "一列ごとの枚数: {}",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "ダークモード",
|
"theme_setting_dark_mode_switch": "ダークモード",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "画像ビューの画質の設定",
|
"theme_setting_image_viewer_quality_subtitle": "画像ビューの画質の設定",
|
||||||
"theme_setting_image_viewer_quality_title": "画像ビュー",
|
"theme_setting_image_viewer_quality_title": "画像ビュー",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "自動 (デバイスの設定を反映)",
|
"theme_setting_system_theme_switch": "自動 (デバイスの設定を反映)",
|
||||||
"theme_setting_theme_subtitle": "テーマ設定",
|
"theme_setting_theme_subtitle": "テーマ設定",
|
||||||
"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": "オプション",
|
"translated_text_options": "オプション",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "削除",
|
"trash_page_delete": "削除",
|
||||||
"trash_page_delete_all": "すべて削除",
|
"trash_page_delete_all": "すべて削除",
|
||||||
"trash_page_empty_trash_btn": "コミ箱を空にする",
|
"trash_page_empty_trash_btn": "コミ箱を空にする",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "레이아웃",
|
"asset_list_layout_sub_title": "레이아웃",
|
||||||
"asset_list_settings_subtitle": "사진 배열 레이아웃 설정",
|
"asset_list_settings_subtitle": "사진 배열 레이아웃 설정",
|
||||||
"asset_list_settings_title": "사진 배열",
|
"asset_list_settings_title": "사진 배열",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "보기 옵션",
|
"asset_viewer_settings_title": "보기 옵션",
|
||||||
"backup_album_selection_page_albums_device": "기기의 앨범 ({})",
|
"backup_album_selection_page_albums_device": "기기의 앨범 ({})",
|
||||||
"backup_album_selection_page_albums_tap": "포함하려면 한 번 누르고 제외하려면 두 번 누르세요.",
|
"backup_album_selection_page_albums_tap": "포함하려면 한 번 누르고 제외하려면 두 번 누르세요.",
|
||||||
@@ -101,7 +108,7 @@
|
|||||||
"backup_controller_page_remainder": "남은 항목",
|
"backup_controller_page_remainder": "남은 항목",
|
||||||
"backup_controller_page_remainder_sub": "백업할 사진 및 동영상",
|
"backup_controller_page_remainder_sub": "백업할 사진 및 동영상",
|
||||||
"backup_controller_page_select": "선택",
|
"backup_controller_page_select": "선택",
|
||||||
"backup_controller_page_server_storage": "서버 스토리지",
|
"backup_controller_page_server_storage": "저장 공간",
|
||||||
"backup_controller_page_start_backup": "백업 시작",
|
"backup_controller_page_start_backup": "백업 시작",
|
||||||
"backup_controller_page_status_off": "자동 백업이 비활성화되었습니다.",
|
"backup_controller_page_status_off": "자동 백업이 비활성화되었습니다.",
|
||||||
"backup_controller_page_status_on": "자동 백업이 활성화되었습니다.",
|
"backup_controller_page_status_on": "자동 백업이 활성화되었습니다.",
|
||||||
@@ -147,7 +154,7 @@
|
|||||||
"client_cert_enter_password": "비밀번호 입력",
|
"client_cert_enter_password": "비밀번호 입력",
|
||||||
"client_cert_import": "가져오기",
|
"client_cert_import": "가져오기",
|
||||||
"client_cert_import_success_msg": "클라이언트 인증서를 가져왔습니다.",
|
"client_cert_import_success_msg": "클라이언트 인증서를 가져왔습니다.",
|
||||||
"client_cert_invalid_msg": "올바르지 않은 인증서이거나 비밀번호가 일치하지 않습니다.",
|
"client_cert_invalid_msg": "유효하지 않은 인증서이거나 비밀번호가 일치하지 않습니다.",
|
||||||
"client_cert_remove": "제거",
|
"client_cert_remove": "제거",
|
||||||
"client_cert_remove_msg": "클라이언트 인증서가 제거되었습니다.",
|
"client_cert_remove_msg": "클라이언트 인증서가 제거되었습니다.",
|
||||||
"client_cert_subtitle": "인증서 가져오기/제거는 로그인 전에만 가능합니다. PKCS12 (.p12, .pfx) 형식을 지원합니다.",
|
"client_cert_subtitle": "인증서 가져오기/제거는 로그인 전에만 가능합니다. PKCS12 (.p12, .pfx) 형식을 지원합니다.",
|
||||||
@@ -241,11 +248,11 @@
|
|||||||
"home_page_share_err_local": "기기의 항목은 링크로 공유할 수 없습니다. 건너뜁니다.",
|
"home_page_share_err_local": "기기의 항목은 링크로 공유할 수 없습니다. 건너뜁니다.",
|
||||||
"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_started": "다운로드 시작됨",
|
"image_viewer_page_state_provider_download_started": "다운로드가 시작되었습니다.",
|
||||||
"image_viewer_page_state_provider_download_success": "다운로드 완료",
|
"image_viewer_page_state_provider_download_success": "다운로드 완료",
|
||||||
"image_viewer_page_state_provider_share_error": "공유 오류",
|
"image_viewer_page_state_provider_share_error": "공유 오류",
|
||||||
"invalid_date": "올바르지 않은 날짜입니다.",
|
"invalid_date": "잘못된 날짜입니다.",
|
||||||
"invalid_date_format": "올바르지 않은 날짜 형식입니다.",
|
"invalid_date_format": "잘못된 날짜 형식입니다.",
|
||||||
"library_page_albums": "앨범",
|
"library_page_albums": "앨범",
|
||||||
"library_page_archive": "보관함",
|
"library_page_archive": "보관함",
|
||||||
"library_page_device_albums": "기기의 앨범",
|
"library_page_device_albums": "기기의 앨범",
|
||||||
@@ -360,10 +367,10 @@
|
|||||||
"profile_drawer_client_out_of_date_major": "모바일 앱이 최신 버전이 아닙니다. 최신 버전으로 업데이트하세요.",
|
"profile_drawer_client_out_of_date_major": "모바일 앱이 최신 버전이 아닙니다. 최신 버전으로 업데이트하세요.",
|
||||||
"profile_drawer_client_out_of_date_minor": "모바일 앱이 최신 버전이 아닙니다. 최신 버전으로 업데이트하세요.",
|
"profile_drawer_client_out_of_date_minor": "모바일 앱이 최신 버전이 아닙니다. 최신 버전으로 업데이트하세요.",
|
||||||
"profile_drawer_client_server_up_to_date": "모바일 앱과 서버가 최신 버전입니다.",
|
"profile_drawer_client_server_up_to_date": "모바일 앱과 서버가 최신 버전입니다.",
|
||||||
"profile_drawer_documentation": "공식 문서",
|
"profile_drawer_documentation": "문서",
|
||||||
"profile_drawer_github": "Github",
|
"profile_drawer_github": "Github",
|
||||||
"profile_drawer_server_out_of_date_major": "서버가 최신 버전이 아닙니다. 최신 버전으로 업데이트하세요.",
|
"profile_drawer_server_out_of_date_major": "서버 버전이 최신이 아닙니다. 최신 버전으로 업데이트하세요.",
|
||||||
"profile_drawer_server_out_of_date_minor": "서버가 최신 버전이 아닙니다. 최신 버전으로 업데이트하세요.",
|
"profile_drawer_server_out_of_date_minor": "서버 버전이 최신이 아닙니다. 최신 버전으로 업데이트하세요.",
|
||||||
"profile_drawer_settings": "설정",
|
"profile_drawer_settings": "설정",
|
||||||
"profile_drawer_sign_out": "로그아웃",
|
"profile_drawer_sign_out": "로그아웃",
|
||||||
"profile_drawer_trash": "휴지통",
|
"profile_drawer_trash": "휴지통",
|
||||||
@@ -375,9 +382,9 @@
|
|||||||
"search_filter_camera_make": "제조사",
|
"search_filter_camera_make": "제조사",
|
||||||
"search_filter_camera_model": "모델명",
|
"search_filter_camera_model": "모델명",
|
||||||
"search_filter_camera_title": "카메라 종류 선택",
|
"search_filter_camera_title": "카메라 종류 선택",
|
||||||
"search_filter_date": "날짜\n",
|
"search_filter_date": "날짜",
|
||||||
"search_filter_date_interval": "{start}에서 {end} 까지",
|
"search_filter_date_interval": "{start}에서 {end} 까지",
|
||||||
"search_filter_date_title": "날짜 범위 선택\n",
|
"search_filter_date_title": "날짜 범위 선택",
|
||||||
"search_filter_display_option_archive": "보관함",
|
"search_filter_display_option_archive": "보관함",
|
||||||
"search_filter_display_option_favorite": "즐겨찾기",
|
"search_filter_display_option_favorite": "즐겨찾기",
|
||||||
"search_filter_display_option_not_in_album": "앨범에 없음",
|
"search_filter_display_option_not_in_album": "앨범에 없음",
|
||||||
@@ -455,7 +462,7 @@
|
|||||||
"share_add": "추가",
|
"share_add": "추가",
|
||||||
"share_add_photos": "사진 추가",
|
"share_add_photos": "사진 추가",
|
||||||
"share_add_title": "앨범 제목 입력",
|
"share_add_title": "앨범 제목 입력",
|
||||||
"share_assets_selected": "{}개 선택됨",
|
"share_assets_selected": "{}개 항목 선택됨",
|
||||||
"share_create_album": "앨범 생성",
|
"share_create_album": "앨범 생성",
|
||||||
"shared_album_activities_input_disable": "댓글이 비활성화되었습니다",
|
"shared_album_activities_input_disable": "댓글이 비활성화되었습니다",
|
||||||
"shared_album_activities_input_hint": "댓글을 입력하세요",
|
"shared_album_activities_input_hint": "댓글을 입력하세요",
|
||||||
@@ -526,17 +533,23 @@
|
|||||||
"tab_controller_nav_photos": "사진",
|
"tab_controller_nav_photos": "사진",
|
||||||
"tab_controller_nav_search": "검색",
|
"tab_controller_nav_search": "검색",
|
||||||
"tab_controller_nav_sharing": "공유",
|
"tab_controller_nav_sharing": "공유",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "항목에 스토리지 상태 표시",
|
"theme_setting_asset_list_storage_indicator_title": "항목에 스토리지 동기화 여부 표시",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "한 줄에 표시할 항목 수 ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "한 줄에 표시할 항목 수 ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "다크 모드",
|
"theme_setting_dark_mode_switch": "다크 모드",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "상세 보기 이미지 품질 조정",
|
"theme_setting_image_viewer_quality_subtitle": "상세 보기 이미지 품질 조정",
|
||||||
"theme_setting_image_viewer_quality_title": "이미지 보기 품질",
|
"theme_setting_image_viewer_quality_title": "이미지 보기 품질",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "자동 (시스템 설정)",
|
"theme_setting_system_theme_switch": "자동 (시스템 설정)",
|
||||||
"theme_setting_theme_subtitle": "앱 테마 선택",
|
"theme_setting_theme_subtitle": "앱 테마 선택",
|
||||||
"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": "옵션",
|
"translated_text_options": "옵션",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "삭제",
|
"trash_page_delete": "삭제",
|
||||||
"trash_page_delete_all": "모두 삭제",
|
"trash_page_delete_all": "모두 삭제",
|
||||||
"trash_page_empty_trash_btn": "휴지통 비우기",
|
"trash_page_empty_trash_btn": "휴지통 비우기",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Photo Grid",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Sharing",
|
"tab_controller_nav_sharing": "Sharing",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_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",
|
"translated_text_options": "Options",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Delete",
|
"trash_page_delete": "Delete",
|
||||||
"trash_page_delete_all": "Delete All",
|
"trash_page_delete_all": "Delete All",
|
||||||
"trash_page_empty_trash_btn": "Empty trash",
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Izvietojums",
|
"asset_list_layout_sub_title": "Izvietojums",
|
||||||
"asset_list_settings_subtitle": "Fotorežģa izkārtojuma iestatījumi",
|
"asset_list_settings_subtitle": "Fotorežģa izkārtojuma iestatījumi",
|
||||||
"asset_list_settings_title": "Fotorežģis",
|
"asset_list_settings_title": "Fotorežģis",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Aktīvu Skatītājs",
|
"asset_viewer_settings_title": "Aktīvu Skatītājs",
|
||||||
"backup_album_selection_page_albums_device": "Albumi ierīcē ({})",
|
"backup_album_selection_page_albums_device": "Albumi ierīcē ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Pieskarieties, lai iekļautu, veiciet dubultskārienu, lai izslēgtu",
|
"backup_album_selection_page_albums_tap": "Pieskarieties, lai iekļautu, veiciet dubultskārienu, lai izslēgtu",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Kopīgošana",
|
"tab_controller_nav_sharing": "Kopīgošana",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Rādīt krātuves indikatoru uz aktīvu elementiem",
|
"theme_setting_asset_list_storage_indicator_title": "Rādīt krātuves indikatoru uz aktīvu elementiem",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Aktīvu skaits rindā ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Aktīvu skaits rindā ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Tumšais režīms",
|
"theme_setting_dark_mode_switch": "Tumšais režīms",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Attēlu skatītāja detaļu kvalitātes pielāgošana",
|
"theme_setting_image_viewer_quality_subtitle": "Attēlu skatītāja detaļu kvalitātes pielāgošana",
|
||||||
"theme_setting_image_viewer_quality_title": "Attēlu skatītāja kvalitāte",
|
"theme_setting_image_viewer_quality_title": "Attēlu skatītāja kvalitāte",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automātisks (sekot sistēmas iestatījumiem)",
|
"theme_setting_system_theme_switch": "Automātisks (sekot sistēmas iestatījumiem)",
|
||||||
"theme_setting_theme_subtitle": "Izvēlieties programmas dizaina iestatījumu",
|
"theme_setting_theme_subtitle": "Izvēlieties programmas dizaina iestatījumu",
|
||||||
"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": "Iestatījumi",
|
"translated_text_options": "Iestatījumi",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Dzēst",
|
"trash_page_delete": "Dzēst",
|
||||||
"trash_page_delete_all": "Dzēst Visu",
|
"trash_page_delete_all": "Dzēst Visu",
|
||||||
"trash_page_empty_trash_btn": "Iztukšot atkritni",
|
"trash_page_empty_trash_btn": "Iztukšot atkritni",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Photo Grid",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Sharing",
|
"tab_controller_nav_sharing": "Sharing",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_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",
|
"translated_text_options": "Options",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Delete",
|
"trash_page_delete": "Delete",
|
||||||
"trash_page_delete_all": "Delete All",
|
"trash_page_delete_all": "Delete All",
|
||||||
"trash_page_empty_trash_btn": "Empty trash",
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
"action_common_cancel": "Avbryt",
|
"action_common_cancel": "Avbryt",
|
||||||
"action_common_clear": "Tøm",
|
"action_common_clear": "Tøm",
|
||||||
"action_common_confirm": "Bekreft",
|
"action_common_confirm": "Bekreft",
|
||||||
"action_common_save": "Save",
|
"action_common_save": "Lagre",
|
||||||
"action_common_select": "Select",
|
"action_common_select": "Velg",
|
||||||
"action_common_update": "Oppdater",
|
"action_common_update": "Oppdater",
|
||||||
"add_to_album_bottom_sheet_added": "Lagt til i {album}",
|
"add_to_album_bottom_sheet_added": "Lagt til i {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
|
||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Fordeling",
|
"asset_list_layout_sub_title": "Fordeling",
|
||||||
"asset_list_settings_subtitle": "Innstillinger for layout av fotorutenett",
|
"asset_list_settings_subtitle": "Innstillinger for layout av fotorutenett",
|
||||||
"asset_list_settings_title": "Fotorutenett",
|
"asset_list_settings_title": "Fotorutenett",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Objektviser",
|
"asset_viewer_settings_title": "Objektviser",
|
||||||
"backup_album_selection_page_albums_device": "Album på enhet ({})",
|
"backup_album_selection_page_albums_device": "Album på enhet ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Trykk for å inkludere, dobbelttrykk for å ekskludere",
|
"backup_album_selection_page_albums_tap": "Trykk for å inkludere, dobbelttrykk for å ekskludere",
|
||||||
@@ -144,20 +151,20 @@
|
|||||||
"change_password_form_password_mismatch": "Passordene stemmer ikke",
|
"change_password_form_password_mismatch": "Passordene stemmer ikke",
|
||||||
"change_password_form_reenter_new_password": "Skriv nytt passord igjen",
|
"change_password_form_reenter_new_password": "Skriv nytt passord igjen",
|
||||||
"client_cert_dialog_msg_confirm": "OK",
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
"client_cert_enter_password": "Enter Password",
|
"client_cert_enter_password": "Skriv inn passord",
|
||||||
"client_cert_import": "Import",
|
"client_cert_import": "Importer",
|
||||||
"client_cert_import_success_msg": "Client certificate is imported",
|
"client_cert_import_success_msg": "Klient sertifikat er importert",
|
||||||
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
"client_cert_invalid_msg": "Ugyldig sertifikat eller feil passord",
|
||||||
"client_cert_remove": "Remove",
|
"client_cert_remove": "Fjern",
|
||||||
"client_cert_remove_msg": "Client certificate is removed",
|
"client_cert_remove_msg": "Klient sertifikat er fjernet",
|
||||||
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
"client_cert_subtitle": "Støtter kun PKCS12 (.p12, .pfx) formater. Importering/Fjerning av sertifikater er kun mulig før innlogging.",
|
||||||
"client_cert_title": "SSL Client Certificate",
|
"client_cert_title": "SSL Klient sertifikat",
|
||||||
"common_add_to_album": "Legg til i album",
|
"common_add_to_album": "Legg til i album",
|
||||||
"common_change_password": "Endre passord",
|
"common_change_password": "Endre passord",
|
||||||
"common_create_new_album": "Lag nytt album",
|
"common_create_new_album": "Lag nytt album",
|
||||||
"common_server_error": "Sjekk nettverkstilkoblingen din, forsikre deg om at serveren er mulig å nå, og at app-/server-versjonene er kompatible.",
|
"common_server_error": "Sjekk nettverkstilkoblingen din, forsikre deg om at serveren er mulig å nå, og at app-/server-versjonene er kompatible.",
|
||||||
"common_shared": "Delt",
|
"common_shared": "Delt",
|
||||||
"contextual_search": "Sunrise on the beach",
|
"contextual_search": "Soloppgang ved stranden",
|
||||||
"control_bottom_app_bar_add_to_album": "Legg til i album",
|
"control_bottom_app_bar_add_to_album": "Legg til i album",
|
||||||
"control_bottom_app_bar_album_info": "{} objekter",
|
"control_bottom_app_bar_album_info": "{} objekter",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} objekter · Delt",
|
"control_bottom_app_bar_album_info_shared": "{} objekter · Delt",
|
||||||
@@ -166,7 +173,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Slett",
|
"control_bottom_app_bar_delete": "Slett",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Slett fra Immich",
|
"control_bottom_app_bar_delete_from_immich": "Slett fra Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Slett fra enhet",
|
"control_bottom_app_bar_delete_from_local": "Slett fra enhet",
|
||||||
"control_bottom_app_bar_edit": "Edit",
|
"control_bottom_app_bar_edit": "Endre",
|
||||||
"control_bottom_app_bar_edit_location": "Endre lokasjon",
|
"control_bottom_app_bar_edit_location": "Endre lokasjon",
|
||||||
"control_bottom_app_bar_edit_time": "Endre Dato og tid",
|
"control_bottom_app_bar_edit_time": "Endre Dato og tid",
|
||||||
"control_bottom_app_bar_favorite": "Favoritt",
|
"control_bottom_app_bar_favorite": "Favoritt",
|
||||||
@@ -216,7 +223,7 @@
|
|||||||
"experimental_settings_title": "Eksperimentelt",
|
"experimental_settings_title": "Eksperimentelt",
|
||||||
"favorites_page_no_favorites": "Ingen favorittobjekter funnet",
|
"favorites_page_no_favorites": "Ingen favorittobjekter funnet",
|
||||||
"favorites_page_title": "Favoritter",
|
"favorites_page_title": "Favoritter",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "Filnavn eller filtype",
|
||||||
"haptic_feedback_switch": "Aktivert haptisk tilbakemelding",
|
"haptic_feedback_switch": "Aktivert haptisk tilbakemelding",
|
||||||
"haptic_feedback_title": "Haptisk tilbakemelding",
|
"haptic_feedback_title": "Haptisk tilbakemelding",
|
||||||
"header_settings_add_header_tip": "Legg til header",
|
"header_settings_add_header_tip": "Legg til header",
|
||||||
@@ -244,8 +251,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Nedlasting startet",
|
"image_viewer_page_state_provider_download_started": "Nedlasting startet",
|
||||||
"image_viewer_page_state_provider_download_success": "Nedlasting vellykket",
|
"image_viewer_page_state_provider_download_success": "Nedlasting vellykket",
|
||||||
"image_viewer_page_state_provider_share_error": "Delingsfeil",
|
"image_viewer_page_state_provider_share_error": "Delingsfeil",
|
||||||
"invalid_date": "Invalid date",
|
"invalid_date": "Ugyldig dato",
|
||||||
"invalid_date_format": "Invalid date format",
|
"invalid_date_format": "Ugyldig datoformat",
|
||||||
"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",
|
||||||
@@ -327,7 +334,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Kan ikke endre dato på objekt(er) med kun lese-rettigheter, hopper over",
|
"multiselect_grid_edit_date_time_err_read_only": "Kan ikke endre dato på objekt(er) med kun lese-rettigheter, hopper over",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Kan ikke endre lokasjon på objekt(er) med kun lese-rettigheter, hopper over",
|
"multiselect_grid_edit_gps_err_read_only": "Kan ikke endre lokasjon på objekt(er) med kun lese-rettigheter, hopper over",
|
||||||
"no_assets_to_show": "Ingen objekter å vise",
|
"no_assets_to_show": "Ingen objekter å vise",
|
||||||
"no_name": "No name",
|
"no_name": "Ingen navn",
|
||||||
"notification_permission_dialog_cancel": "Avbryt",
|
"notification_permission_dialog_cancel": "Avbryt",
|
||||||
"notification_permission_dialog_content": "For å aktivere notifikasjoner, gå til Innstillinger og velg tillat.",
|
"notification_permission_dialog_content": "For å aktivere notifikasjoner, gå til Innstillinger og velg tillat.",
|
||||||
"notification_permission_dialog_settings": "Innstillinger",
|
"notification_permission_dialog_settings": "Innstillinger",
|
||||||
@@ -371,30 +378,30 @@
|
|||||||
"scaffold_body_error_occurred": "Feil oppstått",
|
"scaffold_body_error_occurred": "Feil oppstått",
|
||||||
"search_bar_hint": "Søk i dine bilder",
|
"search_bar_hint": "Søk i dine bilder",
|
||||||
"search_filter_apply": "Aktiver filter",
|
"search_filter_apply": "Aktiver filter",
|
||||||
"search_filter_camera": "Camera",
|
"search_filter_camera": "Kamera",
|
||||||
"search_filter_camera_make": "Merke",
|
"search_filter_camera_make": "Merke",
|
||||||
"search_filter_camera_model": "Modell",
|
"search_filter_camera_model": "Modell",
|
||||||
"search_filter_camera_title": "Select camera type",
|
"search_filter_camera_title": "Velg kameratype",
|
||||||
"search_filter_date": "Date",
|
"search_filter_date": "Dato",
|
||||||
"search_filter_date_interval": "{start} to {end}",
|
"search_filter_date_interval": "{start} til {end}",
|
||||||
"search_filter_date_title": "Select a date range",
|
"search_filter_date_title": "Velg ett datoområde",
|
||||||
"search_filter_display_option_archive": "Arkiver",
|
"search_filter_display_option_archive": "Arkiver",
|
||||||
"search_filter_display_option_favorite": "Favoritt",
|
"search_filter_display_option_favorite": "Favoritt",
|
||||||
"search_filter_display_option_not_in_album": "Ikke i album",
|
"search_filter_display_option_not_in_album": "Ikke i album",
|
||||||
"search_filter_display_options": "Display Options",
|
"search_filter_display_options": "Visningsvalg",
|
||||||
"search_filter_display_options_title": "Display options",
|
"search_filter_display_options_title": "Visningsvalg",
|
||||||
"search_filter_location": "Location",
|
"search_filter_location": "Lokasjon",
|
||||||
"search_filter_location_city": "By",
|
"search_filter_location_city": "By",
|
||||||
"search_filter_location_country": "Land",
|
"search_filter_location_country": "Land",
|
||||||
"search_filter_location_state": "Fylke",
|
"search_filter_location_state": "Fylke",
|
||||||
"search_filter_location_title": "Select location",
|
"search_filter_location_title": "Velg lokasjon",
|
||||||
"search_filter_media_type": "Media Type",
|
"search_filter_media_type": "Medietype",
|
||||||
"search_filter_media_type_all": "Alle",
|
"search_filter_media_type_all": "Alle",
|
||||||
"search_filter_media_type_image": "Bilde",
|
"search_filter_media_type_image": "Bilde",
|
||||||
"search_filter_media_type_title": "Select media type",
|
"search_filter_media_type_title": "Velg medietype",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
"search_filter_people": "People",
|
"search_filter_people": "Mennesker",
|
||||||
"search_filter_people_title": "Select people",
|
"search_filter_people_title": "Velg mennesker",
|
||||||
"search_page_categories": "Kategorier",
|
"search_page_categories": "Kategorier",
|
||||||
"search_page_favorites": "Favoritter",
|
"search_page_favorites": "Favoritter",
|
||||||
"search_page_motion_photos": "Bevegelige bilder",
|
"search_page_motion_photos": "Bevegelige bilder",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Deling",
|
"tab_controller_nav_sharing": "Deling",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Vis lagringsindiaktor på objekter i fotorutenettet",
|
"theme_setting_asset_list_storage_indicator_title": "Vis lagringsindiaktor på objekter i fotorutenettet",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Antall objekter per rad ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Antall objekter per rad ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Angi primærfarge til bakgrunner",
|
||||||
|
"theme_setting_colorful_interface_title": "Fargefullt grensesnitt",
|
||||||
"theme_setting_dark_mode_switch": "Mørk modus",
|
"theme_setting_dark_mode_switch": "Mørk modus",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Juster kvaliteten på bilder i detaljvisning",
|
"theme_setting_image_viewer_quality_subtitle": "Juster kvaliteten på bilder i detaljvisning",
|
||||||
"theme_setting_image_viewer_quality_title": "Kvalitet på bildevisning",
|
"theme_setting_image_viewer_quality_title": "Kvalitet på bildevisning",
|
||||||
|
"theme_setting_primary_color_subtitle": "Velg en farge for primærhendelser og etterfølgende.",
|
||||||
|
"theme_setting_primary_color_title": "Primærfarge",
|
||||||
|
"theme_setting_system_primary_color_title": "Bruk systemfarge",
|
||||||
"theme_setting_system_theme_switch": "Automatisk (følg systeminnstillinger)",
|
"theme_setting_system_theme_switch": "Automatisk (følg systeminnstillinger)",
|
||||||
"theme_setting_theme_subtitle": "Velg app-ens temainnstilling",
|
"theme_setting_theme_subtitle": "Velg app-ens temainnstilling",
|
||||||
"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",
|
"translated_text_options": "Valg",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Slett",
|
"trash_page_delete": "Slett",
|
||||||
"trash_page_delete_all": "Slett alt",
|
"trash_page_delete_all": "Slett alt",
|
||||||
"trash_page_empty_trash_btn": "Tøm søppelbøtte",
|
"trash_page_empty_trash_btn": "Tøm søppelbøtte",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Fotorasterlayoutinstellingen",
|
"asset_list_settings_subtitle": "Fotorasterlayoutinstellingen",
|
||||||
"asset_list_settings_title": "Fotoraster",
|
"asset_list_settings_title": "Fotoraster",
|
||||||
|
"asset_restored_successfully": "Asset succesvol hersteld",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) permanent verwijderd",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) permanent verwijderd van de Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) permanent verwijderd van je apparaat",
|
||||||
|
"assets_restored_successfully": "{} asset(s) succesvol hersteld",
|
||||||
|
"assets_trashed": "{} asset(s) naar de prullenbak verplaatst",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) naar de prullenbak verplaatst op de Immich server",
|
||||||
"asset_viewer_settings_title": "Foto weergave",
|
"asset_viewer_settings_title": "Foto weergave",
|
||||||
"backup_album_selection_page_albums_device": "Albums op apparaat ({})",
|
"backup_album_selection_page_albums_device": "Albums op apparaat ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tik om in te voegen, dubbel tik om uit te sluiten",
|
"backup_album_selection_page_albums_tap": "Tik om in te voegen, dubbel tik om uit te sluiten",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Delen",
|
"tab_controller_nav_sharing": "Delen",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Toon opslag indicator bij de asset tegels",
|
"theme_setting_asset_list_storage_indicator_title": "Toon opslag indicator bij de asset tegels",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Aantal assets per rij ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Aantal assets per rij ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Pas primaire kleuren toe op achtergronden.",
|
||||||
|
"theme_setting_colorful_interface_title": "Kleurrijke interface",
|
||||||
"theme_setting_dark_mode_switch": "Donkere modus",
|
"theme_setting_dark_mode_switch": "Donkere modus",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "De kwaliteit van de gedetailleerde-fotoweergave aanpassen",
|
"theme_setting_image_viewer_quality_subtitle": "De kwaliteit van de gedetailleerde-fotoweergave aanpassen",
|
||||||
"theme_setting_image_viewer_quality_title": "Fotoweergavekwaliteit",
|
"theme_setting_image_viewer_quality_title": "Fotoweergavekwaliteit",
|
||||||
|
"theme_setting_primary_color_subtitle": "Kies een kleur voor primaire acties en accenten.",
|
||||||
|
"theme_setting_primary_color_title": "Primaire kleur",
|
||||||
|
"theme_setting_system_primary_color_title": "Gebruik systeemkleur",
|
||||||
"theme_setting_system_theme_switch": "Automatisch (systeeminstelling volgen)",
|
"theme_setting_system_theme_switch": "Automatisch (systeeminstelling volgen)",
|
||||||
"theme_setting_theme_subtitle": "De thema-instelling van de app kiezen",
|
"theme_setting_theme_subtitle": "De thema-instelling van de app kiezen",
|
||||||
"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": "Opties",
|
"translated_text_options": "Opties",
|
||||||
|
"trash_emptied": "Prullenbak geleegd",
|
||||||
"trash_page_delete": "Verwijderen",
|
"trash_page_delete": "Verwijderen",
|
||||||
"trash_page_delete_all": "Verwijder alle",
|
"trash_page_delete_all": "Verwijder alle",
|
||||||
"trash_page_empty_trash_btn": "Leeg prullenbak",
|
"trash_page_empty_trash_btn": "Leeg prullenbak",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Układ",
|
"asset_list_layout_sub_title": "Układ",
|
||||||
"asset_list_settings_subtitle": "Ustawienia układu siatki zdjęć",
|
"asset_list_settings_subtitle": "Ustawienia układu siatki zdjęć",
|
||||||
"asset_list_settings_title": "Siatka Zdjęć",
|
"asset_list_settings_title": "Siatka Zdjęć",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Przeglądarka zasobów",
|
"asset_viewer_settings_title": "Przeglądarka zasobów",
|
||||||
"backup_album_selection_page_albums_device": "Albumy na urządzeniu ({})",
|
"backup_album_selection_page_albums_device": "Albumy na urządzeniu ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Stuknij, aby włączyć, stuknij dwukrotnie, aby wykluczyć",
|
"backup_album_selection_page_albums_tap": "Stuknij, aby włączyć, stuknij dwukrotnie, aby wykluczyć",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Udostępnianie",
|
"tab_controller_nav_sharing": "Udostępnianie",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Pokaż wskaźnik przechowywania na kafelkach zasobów",
|
"theme_setting_asset_list_storage_indicator_title": "Pokaż wskaźnik przechowywania na kafelkach zasobów",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Liczba zasobów w wierszu ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Liczba zasobów w wierszu ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Ciemny Motyw",
|
"theme_setting_dark_mode_switch": "Ciemny Motyw",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Dostosuj jakość podglądu szczegółowości",
|
"theme_setting_image_viewer_quality_subtitle": "Dostosuj jakość podglądu szczegółowości",
|
||||||
"theme_setting_image_viewer_quality_title": "Jakość przeglądania obrazów",
|
"theme_setting_image_viewer_quality_title": "Jakość przeglądania obrazów",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatyczny (Postępuj zgodnie z ustawieniami systemu)",
|
"theme_setting_system_theme_switch": "Automatyczny (Postępuj zgodnie z ustawieniami systemu)",
|
||||||
"theme_setting_theme_subtitle": "Wybierz ustawienia motywu aplikacji",
|
"theme_setting_theme_subtitle": "Wybierz ustawienia motywu aplikacji",
|
||||||
"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",
|
"translated_text_options": "Opcje",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Usuń",
|
"trash_page_delete": "Usuń",
|
||||||
"trash_page_delete_all": "Usuń wszystko",
|
"trash_page_delete_all": "Usuń wszystko",
|
||||||
"trash_page_empty_trash_btn": "Opróżnij kosz",
|
"trash_page_empty_trash_btn": "Opróżnij kosz",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Disposição",
|
"asset_list_layout_sub_title": "Disposição",
|
||||||
"asset_list_settings_subtitle": "Configurações de layout da grelha de fotos",
|
"asset_list_settings_subtitle": "Configurações de layout da grelha de fotos",
|
||||||
"asset_list_settings_title": "Grelha de fotos",
|
"asset_list_settings_title": "Grelha de fotos",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Visualizador de recursos",
|
"asset_viewer_settings_title": "Visualizador de recursos",
|
||||||
"backup_album_selection_page_albums_device": "Álbuns no dispositivo ({})",
|
"backup_album_selection_page_albums_device": "Álbuns no dispositivo ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Toque para incluir, duplo toque para exluir",
|
"backup_album_selection_page_albums_tap": "Toque para incluir, duplo toque para exluir",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Partilhar",
|
"tab_controller_nav_sharing": "Partilhar",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de armazenamento em blocos de ativos",
|
"theme_setting_asset_list_storage_indicator_title": "Mostrar indicador de armazenamento em blocos de ativos",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Número de itens por linha ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Número de itens por linha ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Modo escuro",
|
"theme_setting_dark_mode_switch": "Modo escuro",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Ajuste a qualidade do visualizador de imagens detalhadas",
|
"theme_setting_image_viewer_quality_subtitle": "Ajuste a qualidade do visualizador de imagens detalhadas",
|
||||||
"theme_setting_image_viewer_quality_title": "Qualidade do visualizador de imagens",
|
"theme_setting_image_viewer_quality_title": "Qualidade do visualizador de imagens",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automático (Siga a configuração do sistema)",
|
"theme_setting_system_theme_switch": "Automático (Siga a configuração do sistema)",
|
||||||
"theme_setting_theme_subtitle": "Escolha a configuração do tema do aplicativo",
|
"theme_setting_theme_subtitle": "Escolha a configuração do tema do aplicativo",
|
||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "O carregamento em três estágios pode aumentar o desempenho do carregamento, mas causa uma carga de rede significativamente maior",
|
"theme_setting_three_stage_loading_subtitle": "O carregamento em três estágios pode aumentar o desempenho do carregamento, mas causa uma carga de rede significativamente maior",
|
||||||
"theme_setting_three_stage_loading_title": "Habilitar carregamento em três estágios",
|
"theme_setting_three_stage_loading_title": "Habilitar carregamento em três estágios",
|
||||||
"translated_text_options": "Opções",
|
"translated_text_options": "Opções",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Apagar",
|
"trash_page_delete": "Apagar",
|
||||||
"trash_page_delete_all": "Apagar tudo",
|
"trash_page_delete_all": "Apagar tudo",
|
||||||
"trash_page_empty_trash_btn": "Esvaziar lixo",
|
"trash_page_empty_trash_btn": "Esvaziar lixo",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Setări format grilă fotografii",
|
"asset_list_settings_subtitle": "Setări format grilă fotografii",
|
||||||
"asset_list_settings_title": "Grilă fotografii",
|
"asset_list_settings_title": "Grilă fotografii",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Albume în dispozitiv ({})",
|
"backup_album_selection_page_albums_device": "Albume în dispozitiv ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Apasă odata pentru a include, de două ori pentru a exclude",
|
"backup_album_selection_page_albums_tap": "Apasă odata pentru a include, de două ori pentru a exclude",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Distribuire",
|
"tab_controller_nav_sharing": "Distribuire",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Arată indicator stocare",
|
"theme_setting_asset_list_storage_indicator_title": "Arată indicator stocare",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Număr de resurse pe rând ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Număr de resurse pe rând ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Mod întunecat",
|
"theme_setting_dark_mode_switch": "Mod întunecat",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Ajustează calitatea detaliilor vizualizatorului de imagine",
|
"theme_setting_image_viewer_quality_subtitle": "Ajustează calitatea detaliilor vizualizatorului de imagine",
|
||||||
"theme_setting_image_viewer_quality_title": "Calitate vizualizator de imagine",
|
"theme_setting_image_viewer_quality_title": "Calitate vizualizator de imagine",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automat (La fel ca setarea sistemului)",
|
"theme_setting_system_theme_switch": "Automat (La fel ca setarea sistemului)",
|
||||||
"theme_setting_theme_subtitle": "Alege tema aplicației",
|
"theme_setting_theme_subtitle": "Alege tema aplicației",
|
||||||
"theme_setting_theme_title": "Temă",
|
"theme_setting_theme_title": "Temă",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Încărcarea în trei etape are putea crește performanța încărcării dar generează un volum semnificativ mai mare de trafic pe rețea",
|
"theme_setting_three_stage_loading_subtitle": "Încărcarea în trei etape are putea crește performanța încărcării dar generează un volum semnificativ mai mare de trafic pe rețea",
|
||||||
"theme_setting_three_stage_loading_title": "Pornește încărcarea în 3 etape",
|
"theme_setting_three_stage_loading_title": "Pornește încărcarea în 3 etape",
|
||||||
"translated_text_options": "Opțiuni",
|
"translated_text_options": "Opțiuni",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Șterge",
|
"trash_page_delete": "Șterge",
|
||||||
"trash_page_delete_all": "Șterge tot",
|
"trash_page_delete_all": "Șterge tot",
|
||||||
"trash_page_empty_trash_btn": "Golește coș",
|
"trash_page_empty_trash_btn": "Golește coș",
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
"action_common_cancel": "Отмена",
|
"action_common_cancel": "Отмена",
|
||||||
"action_common_clear": "Очистить",
|
"action_common_clear": "Очистить",
|
||||||
"action_common_confirm": "Подтвердить",
|
"action_common_confirm": "Подтвердить",
|
||||||
"action_common_save": "Save",
|
"action_common_save": "Сохранить",
|
||||||
"action_common_select": "Select",
|
"action_common_select": "Выбрать",
|
||||||
"action_common_update": "Обновить",
|
"action_common_update": "Обновить",
|
||||||
"add_to_album_bottom_sheet_added": "Добавлено в {album}",
|
"add_to_album_bottom_sheet_added": "Добавлено в {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Уже в {album}",
|
"add_to_album_bottom_sheet_already_exists": "Уже в {album}",
|
||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Разметка",
|
"asset_list_layout_sub_title": "Разметка",
|
||||||
"asset_list_settings_subtitle": "Настройка макета сетки фотографий",
|
"asset_list_settings_subtitle": "Настройка макета сетки фотографий",
|
||||||
"asset_list_settings_title": "Сетка фотографий",
|
"asset_list_settings_title": "Сетка фотографий",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Просмотрщик изображений",
|
"asset_viewer_settings_title": "Просмотрщик изображений",
|
||||||
"backup_album_selection_page_albums_device": "Альбомов на устройстве ({})",
|
"backup_album_selection_page_albums_device": "Альбомов на устройстве ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Нажмите, чтобы включить,\nнажмите дважды, чтобы исключить",
|
"backup_album_selection_page_albums_tap": "Нажмите, чтобы включить,\nнажмите дважды, чтобы исключить",
|
||||||
@@ -144,20 +151,20 @@
|
|||||||
"change_password_form_password_mismatch": "Пароли не совпадают",
|
"change_password_form_password_mismatch": "Пароли не совпадают",
|
||||||
"change_password_form_reenter_new_password": "Повторно введите новый пароль",
|
"change_password_form_reenter_new_password": "Повторно введите новый пароль",
|
||||||
"client_cert_dialog_msg_confirm": "OK",
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
"client_cert_enter_password": "Enter Password",
|
"client_cert_enter_password": "Введите пароль",
|
||||||
"client_cert_import": "Import",
|
"client_cert_import": "Импорт",
|
||||||
"client_cert_import_success_msg": "Client certificate is imported",
|
"client_cert_import_success_msg": "Клиентский сертификат импортирован",
|
||||||
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
"client_cert_invalid_msg": "Неверный файл сертификата или неверный пароль",
|
||||||
"client_cert_remove": "Remove",
|
"client_cert_remove": "Удалить",
|
||||||
"client_cert_remove_msg": "Client certificate is removed",
|
"client_cert_remove_msg": "Клиентский сертификат удален",
|
||||||
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
"client_cert_subtitle": "Поддерживается только формат PKCS12 (.p12, .pfx). Импорт/удаление сертификата доступно только перед входом в систему.",
|
||||||
"client_cert_title": "SSL Client Certificate",
|
"client_cert_title": "Клиентский SSL-сертификат ",
|
||||||
"common_add_to_album": "Добавить в альбом",
|
"common_add_to_album": "Добавить в альбом",
|
||||||
"common_change_password": "Изменить пароль",
|
"common_change_password": "Изменить пароль",
|
||||||
"common_create_new_album": "Создать новый альбом",
|
"common_create_new_album": "Создать новый альбом",
|
||||||
"common_server_error": "Пожалуйста, проверьте подключение к сети и убедитесь, что ваш сервер доступен, а версии приложения и сервера — совместимы.",
|
"common_server_error": "Пожалуйста, проверьте подключение к сети и убедитесь, что ваш сервер доступен, а версии приложения и сервера — совместимы.",
|
||||||
"common_shared": "Общие",
|
"common_shared": "Общие",
|
||||||
"contextual_search": "Sunrise on the beach",
|
"contextual_search": "Восход солнца на пляже",
|
||||||
"control_bottom_app_bar_add_to_album": "Добавить в альбом",
|
"control_bottom_app_bar_add_to_album": "Добавить в альбом",
|
||||||
"control_bottom_app_bar_album_info": "{} файлов",
|
"control_bottom_app_bar_album_info": "{} файлов",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} файлов · Общий",
|
"control_bottom_app_bar_album_info_shared": "{} файлов · Общий",
|
||||||
@@ -166,7 +173,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Удалить",
|
"control_bottom_app_bar_delete": "Удалить",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Удалить из Immich\n",
|
"control_bottom_app_bar_delete_from_immich": "Удалить из Immich\n",
|
||||||
"control_bottom_app_bar_delete_from_local": "Удалить с устройства",
|
"control_bottom_app_bar_delete_from_local": "Удалить с устройства",
|
||||||
"control_bottom_app_bar_edit": "Edit",
|
"control_bottom_app_bar_edit": "Редактировать",
|
||||||
"control_bottom_app_bar_edit_location": "Редактировать местоположение",
|
"control_bottom_app_bar_edit_location": "Редактировать местоположение",
|
||||||
"control_bottom_app_bar_edit_time": "Редактировать дату и время",
|
"control_bottom_app_bar_edit_time": "Редактировать дату и время",
|
||||||
"control_bottom_app_bar_favorite": "В избранное",
|
"control_bottom_app_bar_favorite": "В избранное",
|
||||||
@@ -216,7 +223,7 @@
|
|||||||
"experimental_settings_title": "Экспериментальные функции",
|
"experimental_settings_title": "Экспериментальные функции",
|
||||||
"favorites_page_no_favorites": "В избранном сейчас пусто",
|
"favorites_page_no_favorites": "В избранном сейчас пусто",
|
||||||
"favorites_page_title": "Избранное",
|
"favorites_page_title": "Избранное",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "Имя или расширение файла",
|
||||||
"haptic_feedback_switch": "Включить тактильную отдачу",
|
"haptic_feedback_switch": "Включить тактильную отдачу",
|
||||||
"haptic_feedback_title": "Тактильная отдача",
|
"haptic_feedback_title": "Тактильная отдача",
|
||||||
"header_settings_add_header_tip": "Добавить заголовок",
|
"header_settings_add_header_tip": "Добавить заголовок",
|
||||||
@@ -244,8 +251,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Загрузка началась",
|
"image_viewer_page_state_provider_download_started": "Загрузка началась",
|
||||||
"image_viewer_page_state_provider_download_success": "Успешно загружено",
|
"image_viewer_page_state_provider_download_success": "Успешно загружено",
|
||||||
"image_viewer_page_state_provider_share_error": "Ошибка общего доступа",
|
"image_viewer_page_state_provider_share_error": "Ошибка общего доступа",
|
||||||
"invalid_date": "Invalid date",
|
"invalid_date": "Неверная дата",
|
||||||
"invalid_date_format": "Invalid date format",
|
"invalid_date_format": "Неверный формат даты",
|
||||||
"library_page_albums": "Альбомы",
|
"library_page_albums": "Альбомы",
|
||||||
"library_page_archive": "Архив",
|
"library_page_archive": "Архив",
|
||||||
"library_page_device_albums": "Альбомы на устройстве",
|
"library_page_device_albums": "Альбомы на устройстве",
|
||||||
@@ -327,7 +334,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Невозможно редактировать дату объектов только для чтения, пропуск...",
|
"multiselect_grid_edit_date_time_err_read_only": "Невозможно редактировать дату объектов только для чтения, пропуск...",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Невозможно редактировать местоположение объектов только для чтения, пропуск...",
|
"multiselect_grid_edit_gps_err_read_only": "Невозможно редактировать местоположение объектов только для чтения, пропуск...",
|
||||||
"no_assets_to_show": "Объекты отсутствуют",
|
"no_assets_to_show": "Объекты отсутствуют",
|
||||||
"no_name": "No name",
|
"no_name": "Без имени",
|
||||||
"notification_permission_dialog_cancel": "Отмена",
|
"notification_permission_dialog_cancel": "Отмена",
|
||||||
"notification_permission_dialog_content": "Чтобы включить уведомления, перейдите в «Настройки» и выберите «Разрешить».",
|
"notification_permission_dialog_content": "Чтобы включить уведомления, перейдите в «Настройки» и выберите «Разрешить».",
|
||||||
"notification_permission_dialog_settings": "Настройки",
|
"notification_permission_dialog_settings": "Настройки",
|
||||||
@@ -371,30 +378,30 @@
|
|||||||
"scaffold_body_error_occurred": "Возникла ошибка",
|
"scaffold_body_error_occurred": "Возникла ошибка",
|
||||||
"search_bar_hint": "Поиск фотографий",
|
"search_bar_hint": "Поиск фотографий",
|
||||||
"search_filter_apply": "Применить фильтр",
|
"search_filter_apply": "Применить фильтр",
|
||||||
"search_filter_camera": "Camera",
|
"search_filter_camera": "Камера",
|
||||||
"search_filter_camera_make": "Производитель",
|
"search_filter_camera_make": "Производитель",
|
||||||
"search_filter_camera_model": "Модель",
|
"search_filter_camera_model": "Модель",
|
||||||
"search_filter_camera_title": "Select camera type",
|
"search_filter_camera_title": "Выберите тип камеры",
|
||||||
"search_filter_date": "Date",
|
"search_filter_date": "Дата",
|
||||||
"search_filter_date_interval": "{start} to {end}",
|
"search_filter_date_interval": "{start} до {end}",
|
||||||
"search_filter_date_title": "Select a date range",
|
"search_filter_date_title": "Выберите диапазон дат",
|
||||||
"search_filter_display_option_archive": "Архив",
|
"search_filter_display_option_archive": "Архив",
|
||||||
"search_filter_display_option_favorite": "Избранное",
|
"search_filter_display_option_favorite": "Избранное",
|
||||||
"search_filter_display_option_not_in_album": "Не в альбоме",
|
"search_filter_display_option_not_in_album": "Не в альбоме",
|
||||||
"search_filter_display_options": "Display Options",
|
"search_filter_display_options": "Параметри відображення",
|
||||||
"search_filter_display_options_title": "Display options",
|
"search_filter_display_options_title": "Параметри відображення",
|
||||||
"search_filter_location": "Location",
|
"search_filter_location": "Местоположение",
|
||||||
"search_filter_location_city": "Город",
|
"search_filter_location_city": "Город",
|
||||||
"search_filter_location_country": "Страна",
|
"search_filter_location_country": "Страна",
|
||||||
"search_filter_location_state": "Регион",
|
"search_filter_location_state": "Регион",
|
||||||
"search_filter_location_title": "Select location",
|
"search_filter_location_title": "Выберите местонахождение",
|
||||||
"search_filter_media_type": "Media Type",
|
"search_filter_media_type": "Тип носителя",
|
||||||
"search_filter_media_type_all": "Все",
|
"search_filter_media_type_all": "Все",
|
||||||
"search_filter_media_type_image": "Изображения",
|
"search_filter_media_type_image": "Изображения",
|
||||||
"search_filter_media_type_title": "Select media type",
|
"search_filter_media_type_title": "Выберите тип носителя",
|
||||||
"search_filter_media_type_video": "Видео",
|
"search_filter_media_type_video": "Видео",
|
||||||
"search_filter_people": "People",
|
"search_filter_people": "Люди",
|
||||||
"search_filter_people_title": "Select people",
|
"search_filter_people_title": "Выберите людей",
|
||||||
"search_page_categories": "Категории",
|
"search_page_categories": "Категории",
|
||||||
"search_page_favorites": "Избранное",
|
"search_page_favorites": "Избранное",
|
||||||
"search_page_motion_photos": "Динамические фото",
|
"search_page_motion_photos": "Динамические фото",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Общие",
|
"tab_controller_nav_sharing": "Общие",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Показать индикатор хранилища на плитках объектов",
|
"theme_setting_asset_list_storage_indicator_title": "Показать индикатор хранилища на плитках объектов",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Количество объектов в строке ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Количество объектов в строке ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Применить основной цвет на поверхность фона.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Тёмная тема",
|
"theme_setting_dark_mode_switch": "Тёмная тема",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Настройка качества просмотра полноэкранных изображения",
|
"theme_setting_image_viewer_quality_subtitle": "Настройка качества просмотра полноэкранных изображения",
|
||||||
"theme_setting_image_viewer_quality_title": "Качество просмотра изображений",
|
"theme_setting_image_viewer_quality_title": "Качество просмотра изображений",
|
||||||
|
"theme_setting_primary_color_subtitle": "Выберите цвет для основных действий и акцентов.",
|
||||||
|
"theme_setting_primary_color_title": "Основной цвет",
|
||||||
|
"theme_setting_system_primary_color_title": "Использовать системный цвет",
|
||||||
"theme_setting_system_theme_switch": "Автоматически (как в системе)",
|
"theme_setting_system_theme_switch": "Автоматически (как в системе)",
|
||||||
"theme_setting_theme_subtitle": "Настройка темы приложения",
|
"theme_setting_theme_subtitle": "Настройка темы приложения",
|
||||||
"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": "Опции",
|
"translated_text_options": "Опции",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Удалить",
|
"trash_page_delete": "Удалить",
|
||||||
"trash_page_delete_all": "Удалить все",
|
"trash_page_delete_all": "Удалить все",
|
||||||
"trash_page_empty_trash_btn": "Очистить корзину",
|
"trash_page_empty_trash_btn": "Очистить корзину",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Rozvrhnutie",
|
"asset_list_layout_sub_title": "Rozvrhnutie",
|
||||||
"asset_list_settings_subtitle": "Nastavenia rozloženia mriežky fotografií",
|
"asset_list_settings_subtitle": "Nastavenia rozloženia mriežky fotografií",
|
||||||
"asset_list_settings_title": "Fotografická mriežka",
|
"asset_list_settings_title": "Fotografická mriežka",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Zobrazovač položiek",
|
"asset_viewer_settings_title": "Zobrazovač položiek",
|
||||||
"backup_album_selection_page_albums_device": "Albumy v zariadení ({})",
|
"backup_album_selection_page_albums_device": "Albumy v zariadení ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Ťuknutím na položku ju zahrniete, dvojitým ťuknutím ju vylúčite",
|
"backup_album_selection_page_albums_tap": "Ťuknutím na položku ju zahrniete, dvojitým ťuknutím ju vylúčite",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Zdieľanie",
|
"tab_controller_nav_sharing": "Zdieľanie",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Zobraziť indikátor úložiska na dlaždiciach položiek",
|
"theme_setting_asset_list_storage_indicator_title": "Zobraziť indikátor úložiska na dlaždiciach položiek",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Počet položiek na riadok ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Počet položiek na riadok ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Tmavá téma",
|
"theme_setting_dark_mode_switch": "Tmavá téma",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Prispôsobenie kvality prehliadača detailov",
|
"theme_setting_image_viewer_quality_subtitle": "Prispôsobenie kvality prehliadača detailov",
|
||||||
"theme_setting_image_viewer_quality_title": "Kvalita prehliadača obrázkov",
|
"theme_setting_image_viewer_quality_title": "Kvalita prehliadača obrázkov",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automaticky (podľa systemového nastavenia)",
|
"theme_setting_system_theme_switch": "Automaticky (podľa systemového nastavenia)",
|
||||||
"theme_setting_theme_subtitle": "Vyberte nastavenia témy aplikácie",
|
"theme_setting_theme_subtitle": "Vyberte nastavenia témy aplikácie",
|
||||||
"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",
|
||||||
"translated_text_options": "Nastavenia",
|
"translated_text_options": "Nastavenia",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Vymazať",
|
"trash_page_delete": "Vymazať",
|
||||||
"trash_page_delete_all": "Vymazať všetky",
|
"trash_page_delete_all": "Vymazať všetky",
|
||||||
"trash_page_empty_trash_btn": "Vyprázdniť kôš",
|
"trash_page_empty_trash_btn": "Vyprázdniť kôš",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Postavitev",
|
"asset_list_layout_sub_title": "Postavitev",
|
||||||
"asset_list_settings_subtitle": "Nastavitve postavitve mreže fotografij",
|
"asset_list_settings_subtitle": "Nastavitve postavitve mreže fotografij",
|
||||||
"asset_list_settings_title": "Mreža fotografij",
|
"asset_list_settings_title": "Mreža fotografij",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Pregledovalnik sredstev",
|
"asset_viewer_settings_title": "Pregledovalnik sredstev",
|
||||||
"backup_album_selection_page_albums_device": "Albumi v napravi ({})",
|
"backup_album_selection_page_albums_device": "Albumi v napravi ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tapnite za vključitev, dvakrat tapnite za izključitev",
|
"backup_album_selection_page_albums_tap": "Tapnite za vključitev, dvakrat tapnite za izključitev",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Deljeno",
|
"tab_controller_nav_sharing": "Deljeno",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Pokaži indikator shrambe na ploščicah sredstev",
|
"theme_setting_asset_list_storage_indicator_title": "Pokaži indikator shrambe na ploščicah sredstev",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Število sredstev na vrstico ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Število sredstev na vrstico ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Temni način",
|
"theme_setting_dark_mode_switch": "Temni način",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Prilagodite kakovost podrobnega pregledovalnika slik",
|
"theme_setting_image_viewer_quality_subtitle": "Prilagodite kakovost podrobnega pregledovalnika slik",
|
||||||
"theme_setting_image_viewer_quality_title": "Kakovost pregledovalnika slik",
|
"theme_setting_image_viewer_quality_title": "Kakovost pregledovalnika slik",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Samodejno (Sledi nastavitvi sistema)",
|
"theme_setting_system_theme_switch": "Samodejno (Sledi nastavitvi sistema)",
|
||||||
"theme_setting_theme_subtitle": "Izberi nastavitev teme aplikacije",
|
"theme_setting_theme_subtitle": "Izberi nastavitev teme aplikacije",
|
||||||
"theme_setting_theme_title": "Tema",
|
"theme_setting_theme_title": "Tema",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Tristopenjsko nalaganje lahko poveča zmogljivost nalaganja, vendar povzroči znatno večjo obremenitev omrežja",
|
"theme_setting_three_stage_loading_subtitle": "Tristopenjsko nalaganje lahko poveča zmogljivost nalaganja, vendar povzroči znatno večjo obremenitev omrežja",
|
||||||
"theme_setting_three_stage_loading_title": "Omogoči tristopenjsko nalaganje",
|
"theme_setting_three_stage_loading_title": "Omogoči tristopenjsko nalaganje",
|
||||||
"translated_text_options": "Možnosti",
|
"translated_text_options": "Možnosti",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Izbriši",
|
"trash_page_delete": "Izbriši",
|
||||||
"trash_page_delete_all": "Izbriši vse",
|
"trash_page_delete_all": "Izbriši vse",
|
||||||
"trash_page_empty_trash_btn": "Izprazni smeti",
|
"trash_page_empty_trash_btn": "Izprazni smeti",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Photo Grid",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Sharing",
|
"tab_controller_nav_sharing": "Sharing",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_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",
|
"translated_text_options": "Options",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Delete",
|
"trash_page_delete": "Delete",
|
||||||
"trash_page_delete_all": "Delete All",
|
"trash_page_delete_all": "Delete All",
|
||||||
"trash_page_empty_trash_btn": "Empty trash",
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Opcije za mrežni prikaz fotografija",
|
"asset_list_settings_subtitle": "Opcije za mrežni prikaz fotografija",
|
||||||
"asset_list_settings_title": "Mrežni prikaz fotografija",
|
"asset_list_settings_title": "Mrežni prikaz fotografija",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Albuma na uređaju ({})",
|
"backup_album_selection_page_albums_device": "Albuma na uređaju ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Dodirni da uključiš, dodirni dvaput da isključiš",
|
"backup_album_selection_page_albums_tap": "Dodirni da uključiš, dodirni dvaput da isključiš",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Deljenje",
|
"tab_controller_nav_sharing": "Deljenje",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Prikaži indikator prostora na zapisima",
|
"theme_setting_asset_list_storage_indicator_title": "Prikaži indikator prostora na zapisima",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Broj zapisa po redu ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Broj zapisa po redu ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Tamni Mod",
|
"theme_setting_dark_mode_switch": "Tamni Mod",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Prilagodite kvalitet prikaza za detaljno pregledavanje slike",
|
"theme_setting_image_viewer_quality_subtitle": "Prilagodite kvalitet prikaza za detaljno pregledavanje slike",
|
||||||
"theme_setting_image_viewer_quality_title": "Kvalitet pregledača slika",
|
"theme_setting_image_viewer_quality_title": "Kvalitet pregledača slika",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatski (Prati opcije sistema)",
|
"theme_setting_system_theme_switch": "Automatski (Prati opcije sistema)",
|
||||||
"theme_setting_theme_subtitle": "Odaberi temu sistema",
|
"theme_setting_theme_subtitle": "Odaberi temu sistema",
|
||||||
"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",
|
"translated_text_options": "Options",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Delete",
|
"trash_page_delete": "Delete",
|
||||||
"trash_page_delete_all": "Delete All",
|
"trash_page_delete_all": "Delete All",
|
||||||
"trash_page_empty_trash_btn": "Empty trash",
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Photo Grid",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Sharing",
|
"tab_controller_nav_sharing": "Sharing",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_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",
|
"translated_text_options": "Options",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Delete",
|
"trash_page_delete": "Delete",
|
||||||
"trash_page_delete_all": "Delete All",
|
"trash_page_delete_all": "Delete All",
|
||||||
"trash_page_empty_trash_btn": "Empty trash",
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Layoutinställningar för bildrutnät",
|
"asset_list_settings_subtitle": "Layoutinställningar för bildrutnät",
|
||||||
"asset_list_settings_title": "Bildrutnät",
|
"asset_list_settings_title": "Bildrutnät",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Objektvisare",
|
"asset_viewer_settings_title": "Objektvisare",
|
||||||
"backup_album_selection_page_albums_device": "Album på enhet ({})",
|
"backup_album_selection_page_albums_device": "Album på enhet ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tryck en gång för att inkludera, tryck två gånger för att exkludera",
|
"backup_album_selection_page_albums_tap": "Tryck en gång för att inkludera, tryck två gånger för att exkludera",
|
||||||
@@ -166,7 +173,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Radera",
|
"control_bottom_app_bar_delete": "Radera",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Ta bort från Immich",
|
"control_bottom_app_bar_delete_from_immich": "Ta bort från Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Ta bort från enhet",
|
"control_bottom_app_bar_delete_from_local": "Ta bort från enhet",
|
||||||
"control_bottom_app_bar_edit": "Edit",
|
"control_bottom_app_bar_edit": "Redigera",
|
||||||
"control_bottom_app_bar_edit_location": "Redigera plats",
|
"control_bottom_app_bar_edit_location": "Redigera plats",
|
||||||
"control_bottom_app_bar_edit_time": "Redigera Datum & Tid",
|
"control_bottom_app_bar_edit_time": "Redigera Datum & Tid",
|
||||||
"control_bottom_app_bar_favorite": "Favorit",
|
"control_bottom_app_bar_favorite": "Favorit",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Delning",
|
"tab_controller_nav_sharing": "Delning",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Visa lagringsindikator på filer",
|
"theme_setting_asset_list_storage_indicator_title": "Visa lagringsindikator på filer",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Antal bilder och videor per rad ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Antal bilder och videor per rad ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Applicera primärfärgen på bakgrundsytor.",
|
||||||
|
"theme_setting_colorful_interface_title": "Färgglatt gränssnitt",
|
||||||
"theme_setting_dark_mode_switch": "Mörkt läge",
|
"theme_setting_dark_mode_switch": "Mörkt läge",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Justera kvaliteten i bildvisaren",
|
"theme_setting_image_viewer_quality_subtitle": "Justera kvaliteten i bildvisaren",
|
||||||
"theme_setting_image_viewer_quality_title": "Bildvisarens kvalitet",
|
"theme_setting_image_viewer_quality_title": "Bildvisarens kvalitet",
|
||||||
|
"theme_setting_primary_color_subtitle": "Välj en färg för primära åtgärder och accenter.",
|
||||||
|
"theme_setting_primary_color_title": "Primärfärg",
|
||||||
|
"theme_setting_system_primary_color_title": "Använd systemfärg",
|
||||||
"theme_setting_system_theme_switch": "Automatisk (Följ systeminställningar)",
|
"theme_setting_system_theme_switch": "Automatisk (Följ systeminställningar)",
|
||||||
"theme_setting_theme_subtitle": "Välj inställning för appens tema",
|
"theme_setting_theme_subtitle": "Välj inställning för appens tema",
|
||||||
"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": "Val",
|
"translated_text_options": "Val",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Ta Bort",
|
"trash_page_delete": "Ta Bort",
|
||||||
"trash_page_delete_all": "Ta Bort Alla",
|
"trash_page_delete_all": "Ta Bort Alla",
|
||||||
"trash_page_empty_trash_btn": "Töm papperskorg",
|
"trash_page_empty_trash_btn": "Töm papperskorg",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "การจัดวาง",
|
"asset_list_layout_sub_title": "การจัดวาง",
|
||||||
"asset_list_settings_subtitle": "ตั้งค่าการจัดวางตารางรูปภาพ",
|
"asset_list_settings_subtitle": "ตั้งค่าการจัดวางตารางรูปภาพ",
|
||||||
"asset_list_settings_title": "ตารางรูปภาพ",
|
"asset_list_settings_title": "ตารางรูปภาพ",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "ตัวดูทรัพยากร",
|
"asset_viewer_settings_title": "ตัวดูทรัพยากร",
|
||||||
"backup_album_selection_page_albums_device": "อัลบั้มบนเครื่อง ({})",
|
"backup_album_selection_page_albums_device": "อัลบั้มบนเครื่อง ({})",
|
||||||
"backup_album_selection_page_albums_tap": "กดเพื่อรวม กดสองครั้งเพื่อยกเว้น",
|
"backup_album_selection_page_albums_tap": "กดเพื่อรวม กดสองครั้งเพื่อยกเว้น",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "แชร์",
|
"tab_controller_nav_sharing": "แชร์",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "แสดงตัวพื้นที่จัดเก็บบนตารางทรัพยากร",
|
"theme_setting_asset_list_storage_indicator_title": "แสดงตัวพื้นที่จัดเก็บบนตารางทรัพยากร",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "จำนวนทรัพยากรต่อแถว ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "จำนวนทรัพยากรต่อแถว ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "โหทดมืด",
|
"theme_setting_dark_mode_switch": "โหทดมืด",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "ปรับคุณภาพขอตัวดูรูปภาพละเอียด",
|
"theme_setting_image_viewer_quality_subtitle": "ปรับคุณภาพขอตัวดูรูปภาพละเอียด",
|
||||||
"theme_setting_image_viewer_quality_title": "คุณภาพตังดูรูปภาพ",
|
"theme_setting_image_viewer_quality_title": "คุณภาพตังดูรูปภาพ",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "อัตโนมัติ (การตั้งค่าระบบ)",
|
"theme_setting_system_theme_switch": "อัตโนมัติ (การตั้งค่าระบบ)",
|
||||||
"theme_setting_theme_subtitle": "เลือกธีมของแอพ",
|
"theme_setting_theme_subtitle": "เลือกธีมของแอพ",
|
||||||
"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": "ตัวเลือก",
|
"translated_text_options": "ตัวเลือก",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "ลบ",
|
"trash_page_delete": "ลบ",
|
||||||
"trash_page_delete_all": "ลบทั้งหมด",
|
"trash_page_delete_all": "ลบทั้งหมด",
|
||||||
"trash_page_empty_trash_btn": "ทิ้งจากถังขยะ",
|
"trash_page_empty_trash_btn": "ทิ้งจากถังขยะ",
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
"action_common_cancel": "Скасувати",
|
"action_common_cancel": "Скасувати",
|
||||||
"action_common_clear": "Очистити",
|
"action_common_clear": "Очистити",
|
||||||
"action_common_confirm": "Підтвердити",
|
"action_common_confirm": "Підтвердити",
|
||||||
"action_common_save": "Save",
|
"action_common_save": "Зберегти",
|
||||||
"action_common_select": "Select",
|
"action_common_select": "Вибрати",
|
||||||
"action_common_update": "Оновити",
|
"action_common_update": "Оновити",
|
||||||
"add_to_album_bottom_sheet_added": "Додати до {album}",
|
"add_to_album_bottom_sheet_added": "Додати до {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Вже є в {album}",
|
"add_to_album_bottom_sheet_already_exists": "Вже є в {album}",
|
||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Розмітка",
|
"asset_list_layout_sub_title": "Розмітка",
|
||||||
"asset_list_settings_subtitle": "Налаштування компонування знімків",
|
"asset_list_settings_subtitle": "Налаштування компонування знімків",
|
||||||
"asset_list_settings_title": "Фото-сітка",
|
"asset_list_settings_title": "Фото-сітка",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Переглядач зображень",
|
"asset_viewer_settings_title": "Переглядач зображень",
|
||||||
"backup_album_selection_page_albums_device": "Альбоми на пристрої ({})",
|
"backup_album_selection_page_albums_device": "Альбоми на пристрої ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Торкніться, щоб включити,\nторкніться двічі, щоб виключити",
|
"backup_album_selection_page_albums_tap": "Торкніться, щоб включити,\nторкніться двічі, щоб виключити",
|
||||||
@@ -144,20 +151,20 @@
|
|||||||
"change_password_form_password_mismatch": "Паролі не співпадають",
|
"change_password_form_password_mismatch": "Паролі не співпадають",
|
||||||
"change_password_form_reenter_new_password": "Повторіть новий пароль",
|
"change_password_form_reenter_new_password": "Повторіть новий пароль",
|
||||||
"client_cert_dialog_msg_confirm": "OK",
|
"client_cert_dialog_msg_confirm": "OK",
|
||||||
"client_cert_enter_password": "Enter Password",
|
"client_cert_enter_password": "Введіть пароль",
|
||||||
"client_cert_import": "Import",
|
"client_cert_import": "Імпорт",
|
||||||
"client_cert_import_success_msg": "Client certificate is imported",
|
"client_cert_import_success_msg": "Клієнтський сертифікат імпортовано",
|
||||||
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
"client_cert_invalid_msg": "Недійсний файл сертифіката або неправильний пароль",
|
||||||
"client_cert_remove": "Remove",
|
"client_cert_remove": "Видалити",
|
||||||
"client_cert_remove_msg": "Client certificate is removed",
|
"client_cert_remove_msg": "Клієнтський сертифікат видалено",
|
||||||
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
"client_cert_subtitle": "Підтримується лише формат PKCS12 (.p12, .pfx). Імпорт/видалення сертифіката доступне лише перед входом у систему.",
|
||||||
"client_cert_title": "SSL Client Certificate",
|
"client_cert_title": "Клієнтський SSL-сертифікат",
|
||||||
"common_add_to_album": "Додати у альбом",
|
"common_add_to_album": "Додати у альбом",
|
||||||
"common_change_password": "Змінити пароль",
|
"common_change_password": "Змінити пароль",
|
||||||
"common_create_new_album": "Створити новий альбом",
|
"common_create_new_album": "Створити новий альбом",
|
||||||
"common_server_error": "Будь ласка, перевірте з'єднання, переконайтеся, що сервер доступний і версія програми/сервера сумісна.",
|
"common_server_error": "Будь ласка, перевірте з'єднання, переконайтеся, що сервер доступний і версія програми/сервера сумісна.",
|
||||||
"common_shared": "Спільні",
|
"common_shared": "Спільні",
|
||||||
"contextual_search": "Sunrise on the beach",
|
"contextual_search": "Схід сонця на пляжі",
|
||||||
"control_bottom_app_bar_add_to_album": "Додати у альбом",
|
"control_bottom_app_bar_add_to_album": "Додати у альбом",
|
||||||
"control_bottom_app_bar_album_info": "{} елементи",
|
"control_bottom_app_bar_album_info": "{} елементи",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} елементи · Спільні",
|
"control_bottom_app_bar_album_info_shared": "{} елементи · Спільні",
|
||||||
@@ -166,7 +173,7 @@
|
|||||||
"control_bottom_app_bar_delete": "Видалити",
|
"control_bottom_app_bar_delete": "Видалити",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Видалити з Immich",
|
"control_bottom_app_bar_delete_from_immich": "Видалити з Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Видалити з пристрою",
|
"control_bottom_app_bar_delete_from_local": "Видалити з пристрою",
|
||||||
"control_bottom_app_bar_edit": "Edit",
|
"control_bottom_app_bar_edit": "Редагувати",
|
||||||
"control_bottom_app_bar_edit_location": "Редагувати місцезнаходження",
|
"control_bottom_app_bar_edit_location": "Редагувати місцезнаходження",
|
||||||
"control_bottom_app_bar_edit_time": "Редагувати дату та час",
|
"control_bottom_app_bar_edit_time": "Редагувати дату та час",
|
||||||
"control_bottom_app_bar_favorite": "До улюблених",
|
"control_bottom_app_bar_favorite": "До улюблених",
|
||||||
@@ -216,7 +223,7 @@
|
|||||||
"experimental_settings_title": "Експериментальні",
|
"experimental_settings_title": "Експериментальні",
|
||||||
"favorites_page_no_favorites": "Немає улюблених елементів",
|
"favorites_page_no_favorites": "Немає улюблених елементів",
|
||||||
"favorites_page_title": "Улюблені",
|
"favorites_page_title": "Улюблені",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "Ім'я або розширення файлу",
|
||||||
"haptic_feedback_switch": "Увімкнути тактильну віддачу",
|
"haptic_feedback_switch": "Увімкнути тактильну віддачу",
|
||||||
"haptic_feedback_title": "Тактильна віддача",
|
"haptic_feedback_title": "Тактильна віддача",
|
||||||
"header_settings_add_header_tip": "Додати заголовок",
|
"header_settings_add_header_tip": "Додати заголовок",
|
||||||
@@ -244,8 +251,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Завантаження почалося",
|
"image_viewer_page_state_provider_download_started": "Завантаження почалося",
|
||||||
"image_viewer_page_state_provider_download_success": "Усіпшно завантажено",
|
"image_viewer_page_state_provider_download_success": "Усіпшно завантажено",
|
||||||
"image_viewer_page_state_provider_share_error": "Помилка спільного доступу",
|
"image_viewer_page_state_provider_share_error": "Помилка спільного доступу",
|
||||||
"invalid_date": "Invalid date",
|
"invalid_date": "Недійсна дата",
|
||||||
"invalid_date_format": "Invalid date format",
|
"invalid_date_format": "Недійсний формат дати",
|
||||||
"library_page_albums": "Альбоми",
|
"library_page_albums": "Альбоми",
|
||||||
"library_page_archive": "Архів",
|
"library_page_archive": "Архів",
|
||||||
"library_page_device_albums": "Альбоми на пристрої",
|
"library_page_device_albums": "Альбоми на пристрої",
|
||||||
@@ -327,7 +334,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Неможливо редагувати дату елементів лише для читання, пропущено",
|
"multiselect_grid_edit_date_time_err_read_only": "Неможливо редагувати дату елементів лише для читання, пропущено",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Неможливо редагувати місцезнаходження елементів лише для читання, пропущено",
|
"multiselect_grid_edit_gps_err_read_only": "Неможливо редагувати місцезнаходження елементів лише для читання, пропущено",
|
||||||
"no_assets_to_show": "Елементи відсутні",
|
"no_assets_to_show": "Елементи відсутні",
|
||||||
"no_name": "No name",
|
"no_name": "Без імені",
|
||||||
"notification_permission_dialog_cancel": "Скасувати",
|
"notification_permission_dialog_cancel": "Скасувати",
|
||||||
"notification_permission_dialog_content": "Щоб увімкнути сповіщення, перейдіть до Налаштувань і надайте дозвіл.",
|
"notification_permission_dialog_content": "Щоб увімкнути сповіщення, перейдіть до Налаштувань і надайте дозвіл.",
|
||||||
"notification_permission_dialog_settings": "Налаштування",
|
"notification_permission_dialog_settings": "Налаштування",
|
||||||
@@ -371,30 +378,30 @@
|
|||||||
"scaffold_body_error_occurred": "Виникла помилка",
|
"scaffold_body_error_occurred": "Виникла помилка",
|
||||||
"search_bar_hint": "Шукати ваші знімки",
|
"search_bar_hint": "Шукати ваші знімки",
|
||||||
"search_filter_apply": "Застосувати фільтр",
|
"search_filter_apply": "Застосувати фільтр",
|
||||||
"search_filter_camera": "Camera",
|
"search_filter_camera": "Камера",
|
||||||
"search_filter_camera_make": "Виробник",
|
"search_filter_camera_make": "Виробник",
|
||||||
"search_filter_camera_model": "Модель",
|
"search_filter_camera_model": "Модель",
|
||||||
"search_filter_camera_title": "Select camera type",
|
"search_filter_camera_title": "Виберіть тип камери",
|
||||||
"search_filter_date": "Date",
|
"search_filter_date": "Дата",
|
||||||
"search_filter_date_interval": "{start} to {end}",
|
"search_filter_date_interval": "{start} до {end}",
|
||||||
"search_filter_date_title": "Select a date range",
|
"search_filter_date_title": "Виберіть діапазон дат",
|
||||||
"search_filter_display_option_archive": "Архів",
|
"search_filter_display_option_archive": "Архів",
|
||||||
"search_filter_display_option_favorite": "Улюблені",
|
"search_filter_display_option_favorite": "Улюблені",
|
||||||
"search_filter_display_option_not_in_album": "Не в альбомі",
|
"search_filter_display_option_not_in_album": "Не в альбомі",
|
||||||
"search_filter_display_options": "Display Options",
|
"search_filter_display_options": "Параметри відображення",
|
||||||
"search_filter_display_options_title": "Display options",
|
"search_filter_display_options_title": "Параметри відображення",
|
||||||
"search_filter_location": "Location",
|
"search_filter_location": "Місцезнаходження",
|
||||||
"search_filter_location_city": "Місто",
|
"search_filter_location_city": "Місто",
|
||||||
"search_filter_location_country": "Країна",
|
"search_filter_location_country": "Країна",
|
||||||
"search_filter_location_state": "Регіон",
|
"search_filter_location_state": "Регіон",
|
||||||
"search_filter_location_title": "Select location",
|
"search_filter_location_title": "Виберіть місцезнаходження",
|
||||||
"search_filter_media_type": "Media Type",
|
"search_filter_media_type": "Тип носія",
|
||||||
"search_filter_media_type_all": "Усі",
|
"search_filter_media_type_all": "Усі",
|
||||||
"search_filter_media_type_image": "Зображення",
|
"search_filter_media_type_image": "Зображення",
|
||||||
"search_filter_media_type_title": "Select media type",
|
"search_filter_media_type_title": "Виберіть тип носія",
|
||||||
"search_filter_media_type_video": "Відео",
|
"search_filter_media_type_video": "Відео",
|
||||||
"search_filter_people": "People",
|
"search_filter_people": "Люди",
|
||||||
"search_filter_people_title": "Select people",
|
"search_filter_people_title": "Виберіть людей",
|
||||||
"search_page_categories": "Категорії",
|
"search_page_categories": "Категорії",
|
||||||
"search_page_favorites": "Улюблені",
|
"search_page_favorites": "Улюблені",
|
||||||
"search_page_motion_photos": "Рухомі знімки",
|
"search_page_motion_photos": "Рухомі знімки",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Спільні",
|
"tab_controller_nav_sharing": "Спільні",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Показувати піктограму сховища на плитках елементів",
|
"theme_setting_asset_list_storage_indicator_title": "Показувати піктограму сховища на плитках елементів",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Кількість елементів у рядку ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Кількість елементів у рядку ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Застосувати основний колір на поверхню фону.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Темна тема",
|
"theme_setting_dark_mode_switch": "Темна тема",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Налаштування якості перегляду повноекранних зображень",
|
"theme_setting_image_viewer_quality_subtitle": "Налаштування якості перегляду повноекранних зображень",
|
||||||
"theme_setting_image_viewer_quality_title": "Якість перегляду зображень",
|
"theme_setting_image_viewer_quality_title": "Якість перегляду зображень",
|
||||||
|
"theme_setting_primary_color_subtitle": "Виберіть колір для основних дій і акцентів.",
|
||||||
|
"theme_setting_primary_color_title": "Основний колір",
|
||||||
|
"theme_setting_system_primary_color_title": "Використовувати колір системи",
|
||||||
"theme_setting_system_theme_switch": "Автоматично (як у системі)",
|
"theme_setting_system_theme_switch": "Автоматично (як у системі)",
|
||||||
"theme_setting_theme_subtitle": "Налаштування теми додатка",
|
"theme_setting_theme_subtitle": "Налаштування теми додатка",
|
||||||
"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": "Налаштування",
|
"translated_text_options": "Налаштування",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Видалити",
|
"trash_page_delete": "Видалити",
|
||||||
"trash_page_delete_all": "Видалити усі",
|
"trash_page_delete_all": "Видалити усі",
|
||||||
"trash_page_empty_trash_btn": "Очистити кошик",
|
"trash_page_empty_trash_btn": "Очистити кошик",
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
"action_common_cancel": "Từ chối",
|
"action_common_cancel": "Từ chối",
|
||||||
"action_common_clear": "Xoá",
|
"action_common_clear": "Xoá",
|
||||||
"action_common_confirm": "Xác nhận",
|
"action_common_confirm": "Xác nhận",
|
||||||
"action_common_save": "Save",
|
"action_common_save": "Lưu",
|
||||||
"action_common_select": "Select",
|
"action_common_select": "Chọn",
|
||||||
"action_common_update": "Cập nhật",
|
"action_common_update": "Cập nhật",
|
||||||
"add_to_album_bottom_sheet_added": "Thêm vào {album}",
|
"add_to_album_bottom_sheet_added": "Thêm vào {album}",
|
||||||
"add_to_album_bottom_sheet_already_exists": "Đã có sẵn trong {album}",
|
"add_to_album_bottom_sheet_already_exists": "Đã có sẵn trong {album}",
|
||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Bố cục",
|
"asset_list_layout_sub_title": "Bố cục",
|
||||||
"asset_list_settings_subtitle": "Cài đặt bố cục lưới ảnh",
|
"asset_list_settings_subtitle": "Cài đặt bố cục lưới ảnh",
|
||||||
"asset_list_settings_title": "Lưới ảnh",
|
"asset_list_settings_title": "Lưới ảnh",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Trình xem ảnh",
|
"asset_viewer_settings_title": "Trình xem ảnh",
|
||||||
"backup_album_selection_page_albums_device": "Album trên thiết bị ({})",
|
"backup_album_selection_page_albums_device": "Album trên thiết bị ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Nhấn để chọn, nhấn đúp để bỏ qua",
|
"backup_album_selection_page_albums_tap": "Nhấn để chọn, nhấn đúp để bỏ qua",
|
||||||
@@ -143,21 +150,21 @@
|
|||||||
"change_password_form_new_password": "Mật khẩu mới",
|
"change_password_form_new_password": "Mật khẩu mới",
|
||||||
"change_password_form_password_mismatch": "Mật khẩu không giống nhau",
|
"change_password_form_password_mismatch": "Mật khẩu không giống nhau",
|
||||||
"change_password_form_reenter_new_password": "Nhập lại mật khẩu mới",
|
"change_password_form_reenter_new_password": "Nhập lại mật khẩu mới",
|
||||||
"client_cert_dialog_msg_confirm": "OK",
|
"client_cert_dialog_msg_confirm": "Đồng ý",
|
||||||
"client_cert_enter_password": "Enter Password",
|
"client_cert_enter_password": "Nhập mật khẩu",
|
||||||
"client_cert_import": "Import",
|
"client_cert_import": "Nhập",
|
||||||
"client_cert_import_success_msg": "Client certificate is imported",
|
"client_cert_import_success_msg": "Chứng chỉ khách đã được nhập",
|
||||||
"client_cert_invalid_msg": "Invalid certificate file or wrong password",
|
"client_cert_invalid_msg": "Tập tin chứng chỉ không hợp lệ hoặc sai mật khẩu",
|
||||||
"client_cert_remove": "Remove",
|
"client_cert_remove": "Xoá",
|
||||||
"client_cert_remove_msg": "Client certificate is removed",
|
"client_cert_remove_msg": "Chứng chỉ khách đã bị xoá",
|
||||||
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
"client_cert_subtitle": "Supports PKCS12 (.p12, .pfx) format only. Certificate Import/Remove is available only before login",
|
||||||
"client_cert_title": "SSL Client Certificate",
|
"client_cert_title": "Chứng chỉ khách SSL",
|
||||||
"common_add_to_album": "Thêm vào album",
|
"common_add_to_album": "Thêm vào album",
|
||||||
"common_change_password": "Thay đổi mật khẩu",
|
"common_change_password": "Thay đổi mật khẩu",
|
||||||
"common_create_new_album": "Tạo album mới",
|
"common_create_new_album": "Tạo album mới",
|
||||||
"common_server_error": "Vui lòng kiểm tra kết nối mạng của bạn, đảm bảo máy chủ có thể truy cập được và các phiên bản ứng dụng/máy chủ phải tương thích với nhau",
|
"common_server_error": "Vui lòng kiểm tra kết nối mạng của bạn, đảm bảo máy chủ có thể truy cập được và các phiên bản ứng dụng/máy chủ phải tương thích với nhau",
|
||||||
"common_shared": "Chia sẻ",
|
"common_shared": "Chia sẻ",
|
||||||
"contextual_search": "Sunrise on the beach",
|
"contextual_search": "Bình mình trên bãi biển",
|
||||||
"control_bottom_app_bar_add_to_album": "Thêm vào album",
|
"control_bottom_app_bar_add_to_album": "Thêm vào album",
|
||||||
"control_bottom_app_bar_album_info": "{} mục",
|
"control_bottom_app_bar_album_info": "{} mục",
|
||||||
"control_bottom_app_bar_album_info_shared": "{} mục chia sẻ",
|
"control_bottom_app_bar_album_info_shared": "{} mục chia sẻ",
|
||||||
@@ -166,13 +173,13 @@
|
|||||||
"control_bottom_app_bar_delete": "Xoá",
|
"control_bottom_app_bar_delete": "Xoá",
|
||||||
"control_bottom_app_bar_delete_from_immich": "Xóa khỏi Immich",
|
"control_bottom_app_bar_delete_from_immich": "Xóa khỏi Immich",
|
||||||
"control_bottom_app_bar_delete_from_local": "Xóa khỏi thiết bị\n",
|
"control_bottom_app_bar_delete_from_local": "Xóa khỏi thiết bị\n",
|
||||||
"control_bottom_app_bar_edit": "Edit",
|
"control_bottom_app_bar_edit": "Sửa",
|
||||||
"control_bottom_app_bar_edit_location": "Chỉnh sửa vị trí",
|
"control_bottom_app_bar_edit_location": "Chỉnh sửa vị trí",
|
||||||
"control_bottom_app_bar_edit_time": "Chỉnh sửa Ngày và Giờ",
|
"control_bottom_app_bar_edit_time": "Chỉnh sửa Ngày và Giờ",
|
||||||
"control_bottom_app_bar_favorite": "Yêu thích",
|
"control_bottom_app_bar_favorite": "Yêu thích",
|
||||||
"control_bottom_app_bar_share": "Chia sẻ",
|
"control_bottom_app_bar_share": "Chia sẻ",
|
||||||
"control_bottom_app_bar_share_to": "Chia sẻ với",
|
"control_bottom_app_bar_share_to": "Chia sẻ với",
|
||||||
"control_bottom_app_bar_stack": "Xếp nhóm",
|
"control_bottom_app_bar_stack": "Nhóm ảnh",
|
||||||
"control_bottom_app_bar_trash_from_immich": "Chuyển tới thùng rác",
|
"control_bottom_app_bar_trash_from_immich": "Chuyển tới thùng rác",
|
||||||
"control_bottom_app_bar_unarchive": "Huỷ lưu trữ",
|
"control_bottom_app_bar_unarchive": "Huỷ lưu trữ",
|
||||||
"control_bottom_app_bar_unfavorite": "Bỏ yêu thích",
|
"control_bottom_app_bar_unfavorite": "Bỏ yêu thích",
|
||||||
@@ -216,8 +223,8 @@
|
|||||||
"experimental_settings_title": "Chưa hoàn thiện",
|
"experimental_settings_title": "Chưa hoàn thiện",
|
||||||
"favorites_page_no_favorites": "Không tìm thấy ảnh yêu thích",
|
"favorites_page_no_favorites": "Không tìm thấy ảnh yêu thích",
|
||||||
"favorites_page_title": "Ảnh yêu thích",
|
"favorites_page_title": "Ảnh yêu thích",
|
||||||
"filename_search": "File name or extension",
|
"filename_search": "Tên hoặc phần mở rộng tập tin",
|
||||||
"haptic_feedback_switch": "Bật haptic feedback\n",
|
"haptic_feedback_switch": "Bật phản hồi haptic\n",
|
||||||
"haptic_feedback_title": "Haptic Feedback\n",
|
"haptic_feedback_title": "Haptic Feedback\n",
|
||||||
"header_settings_add_header_tip": "Thêm Header",
|
"header_settings_add_header_tip": "Thêm Header",
|
||||||
"header_settings_field_validator_msg": "Trường này không được để trống",
|
"header_settings_field_validator_msg": "Trường này không được để trống",
|
||||||
@@ -244,8 +251,8 @@
|
|||||||
"image_viewer_page_state_provider_download_started": "Đã bắt đầu tải xuống",
|
"image_viewer_page_state_provider_download_started": "Đã bắt đầu tải xuống",
|
||||||
"image_viewer_page_state_provider_download_success": "Tải xuống thành công",
|
"image_viewer_page_state_provider_download_success": "Tải xuống thành công",
|
||||||
"image_viewer_page_state_provider_share_error": "Chia sẻ không thành công",
|
"image_viewer_page_state_provider_share_error": "Chia sẻ không thành công",
|
||||||
"invalid_date": "Invalid date",
|
"invalid_date": "Ngày không hợp lệ",
|
||||||
"invalid_date_format": "Invalid date format",
|
"invalid_date_format": "Định dạng ngày không hợp lệ",
|
||||||
"library_page_albums": "Album",
|
"library_page_albums": "Album",
|
||||||
"library_page_archive": "Kho lưu trữ",
|
"library_page_archive": "Kho lưu trữ",
|
||||||
"library_page_device_albums": "Album trên thiết bị",
|
"library_page_device_albums": "Album trên thiết bị",
|
||||||
@@ -327,7 +334,7 @@
|
|||||||
"multiselect_grid_edit_date_time_err_read_only": "Không thể chỉnh sửa ngày của ảnh chỉ có quyền đọc, bỏ qua",
|
"multiselect_grid_edit_date_time_err_read_only": "Không thể chỉnh sửa ngày của ảnh chỉ có quyền đọc, bỏ qua",
|
||||||
"multiselect_grid_edit_gps_err_read_only": "Không thể chỉnh sửa vị trí của ảnh chỉ có quyền đọc, bỏ qua",
|
"multiselect_grid_edit_gps_err_read_only": "Không thể chỉnh sửa vị trí của ảnh chỉ có quyền đọc, bỏ qua",
|
||||||
"no_assets_to_show": "Không có mục nào để hiển thị",
|
"no_assets_to_show": "Không có mục nào để hiển thị",
|
||||||
"no_name": "No name",
|
"no_name": "Không có tên",
|
||||||
"notification_permission_dialog_cancel": "Từ chối",
|
"notification_permission_dialog_cancel": "Từ chối",
|
||||||
"notification_permission_dialog_content": "Để bật thông báo, chuyển tới Cài đặt và chọn cho phép",
|
"notification_permission_dialog_content": "Để bật thông báo, chuyển tới Cài đặt và chọn cho phép",
|
||||||
"notification_permission_dialog_settings": "Cài đặt",
|
"notification_permission_dialog_settings": "Cài đặt",
|
||||||
@@ -371,30 +378,30 @@
|
|||||||
"scaffold_body_error_occurred": "Xảy ra lỗi",
|
"scaffold_body_error_occurred": "Xảy ra lỗi",
|
||||||
"search_bar_hint": "Tìm kiếm ảnh của bạn",
|
"search_bar_hint": "Tìm kiếm ảnh của bạn",
|
||||||
"search_filter_apply": "Áp dụng bộ lọc",
|
"search_filter_apply": "Áp dụng bộ lọc",
|
||||||
"search_filter_camera": "Camera",
|
"search_filter_camera": "Máy ảnh",
|
||||||
"search_filter_camera_make": "Chụp bởi",
|
"search_filter_camera_make": "Thương hiệu",
|
||||||
"search_filter_camera_model": "Model",
|
"search_filter_camera_model": "Dòng máy ảnh",
|
||||||
"search_filter_camera_title": "Select camera type",
|
"search_filter_camera_title": "Chọn loại máy ảnh",
|
||||||
"search_filter_date": "Date",
|
"search_filter_date": "Ngày",
|
||||||
"search_filter_date_interval": "{start} to {end}",
|
"search_filter_date_interval": "{start} đến {end}",
|
||||||
"search_filter_date_title": "Select a date range",
|
"search_filter_date_title": "Chọn khoảng ngày",
|
||||||
"search_filter_display_option_archive": "Kho lưu trữ",
|
"search_filter_display_option_archive": "Kho lưu trữ",
|
||||||
"search_filter_display_option_favorite": "Yêu thích",
|
"search_filter_display_option_favorite": "Yêu thích",
|
||||||
"search_filter_display_option_not_in_album": "Không nằm trong album",
|
"search_filter_display_option_not_in_album": "Không nằm trong album",
|
||||||
"search_filter_display_options": "Display Options",
|
"search_filter_display_options": "Tuỳ chọn hiển thị",
|
||||||
"search_filter_display_options_title": "Display options",
|
"search_filter_display_options_title": "Tuỳ chọn hiển thị",
|
||||||
"search_filter_location": "Location",
|
"search_filter_location": "Vị trí",
|
||||||
"search_filter_location_city": "Thành phố",
|
"search_filter_location_city": "Thành phố",
|
||||||
"search_filter_location_country": "Quốc gia",
|
"search_filter_location_country": "Quốc gia",
|
||||||
"search_filter_location_state": "Tỉnh",
|
"search_filter_location_state": "Tỉnh",
|
||||||
"search_filter_location_title": "Select location",
|
"search_filter_location_title": "Chọn vị trí",
|
||||||
"search_filter_media_type": "Media Type",
|
"search_filter_media_type": "Loại phương tiện",
|
||||||
"search_filter_media_type_all": "Tất cả",
|
"search_filter_media_type_all": "Tất cả",
|
||||||
"search_filter_media_type_image": "Ảnh",
|
"search_filter_media_type_image": "Ảnh",
|
||||||
"search_filter_media_type_title": "Select media type",
|
"search_filter_media_type_title": "Chọn loại phương tiện",
|
||||||
"search_filter_media_type_video": "Video",
|
"search_filter_media_type_video": "Video",
|
||||||
"search_filter_people": "People",
|
"search_filter_people": "Mọi người",
|
||||||
"search_filter_people_title": "Select people",
|
"search_filter_people_title": "Chọn người",
|
||||||
"search_page_categories": "Danh mục",
|
"search_page_categories": "Danh mục",
|
||||||
"search_page_favorites": "Ảnh yêu thích",
|
"search_page_favorites": "Ảnh yêu thích",
|
||||||
"search_page_motion_photos": "Ảnh động",
|
"search_page_motion_photos": "Ảnh động",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Chia sẻ",
|
"tab_controller_nav_sharing": "Chia sẻ",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Hiện thị trạng thái sao lưu ảnh trên hình thu nhỏ ",
|
"theme_setting_asset_list_storage_indicator_title": "Hiện thị trạng thái sao lưu ảnh trên hình thu nhỏ ",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Số lượng ảnh trên một dòng ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Số lượng ảnh trên một dòng ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Áp dụng màu chủ đạo cho nền ứng dụng",
|
||||||
|
"theme_setting_colorful_interface_title": "Giao diện màu sắc",
|
||||||
"theme_setting_dark_mode_switch": "Chế độ tối",
|
"theme_setting_dark_mode_switch": "Chế độ tối",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Điều chỉnh chất lượng của trình xem ảnh",
|
"theme_setting_image_viewer_quality_subtitle": "Điều chỉnh chất lượng của trình xem ảnh",
|
||||||
"theme_setting_image_viewer_quality_title": "Chất lượng trình xem ảnh",
|
"theme_setting_image_viewer_quality_title": "Chất lượng trình xem ảnh",
|
||||||
|
"theme_setting_primary_color_subtitle": "Chọn màu cho các hành động chính và điểm nhấn.",
|
||||||
|
"theme_setting_primary_color_title": "Màu chủ đạo",
|
||||||
|
"theme_setting_system_primary_color_title": "Dùng màu hệ thống",
|
||||||
"theme_setting_system_theme_switch": "Tự động (Theo cài đặt hệ thống)",
|
"theme_setting_system_theme_switch": "Tự động (Theo cài đặt hệ thống)",
|
||||||
"theme_setting_theme_subtitle": "Chọn cài đặt giao diện ứng dụng",
|
"theme_setting_theme_subtitle": "Chọn cài đặt giao diện ứng dụng",
|
||||||
"theme_setting_theme_title": "Giao diện",
|
"theme_setting_theme_title": "Giao diện",
|
||||||
"theme_setting_three_stage_loading_subtitle": "Tải ba giai doạn có thể tăng hiệu năng tải ảnh nhưng sẽ tốn dữ liệu mạng đáng kể.",
|
"theme_setting_three_stage_loading_subtitle": "Tải ba giai doạn có thể tăng hiệu năng tải ảnh nhưng sẽ tốn dữ liệu mạng đáng kể.",
|
||||||
"theme_setting_three_stage_loading_title": "Bật tải ba giai đoạn",
|
"theme_setting_three_stage_loading_title": "Bật tải ba giai đoạn",
|
||||||
"translated_text_options": "Tuỳ chỉnh",
|
"translated_text_options": "Tuỳ chỉnh",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Xoá",
|
"trash_page_delete": "Xoá",
|
||||||
"trash_page_delete_all": "Xoá tất cả",
|
"trash_page_delete_all": "Xoá tất cả",
|
||||||
"trash_page_empty_trash_btn": "Dọn sạch thùng rác",
|
"trash_page_empty_trash_btn": "Dọn sạch thùng rác",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "布局",
|
"asset_list_layout_sub_title": "布局",
|
||||||
"asset_list_settings_subtitle": "照片网格布局设置",
|
"asset_list_settings_subtitle": "照片网格布局设置",
|
||||||
"asset_list_settings_title": "照片网格",
|
"asset_list_settings_title": "照片网格",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "资源查看器",
|
"asset_viewer_settings_title": "资源查看器",
|
||||||
"backup_album_selection_page_albums_device": "设备上的相册({})",
|
"backup_album_selection_page_albums_device": "设备上的相册({})",
|
||||||
"backup_album_selection_page_albums_tap": "单击选中,双击取消",
|
"backup_album_selection_page_albums_tap": "单击选中,双击取消",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "共享",
|
"tab_controller_nav_sharing": "共享",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "在项目标题上显示存储占用",
|
"theme_setting_asset_list_storage_indicator_title": "在项目标题上显示存储占用",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "每行展示 {} 项",
|
"theme_setting_asset_list_tiles_per_row_title": "每行展示 {} 项",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "应用主色调到背景",
|
||||||
|
"theme_setting_colorful_interface_title": "彩色界面",
|
||||||
"theme_setting_dark_mode_switch": "深色模式",
|
"theme_setting_dark_mode_switch": "深色模式",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "调整查看大图时的图像质量",
|
"theme_setting_image_viewer_quality_subtitle": "调整查看大图时的图像质量",
|
||||||
"theme_setting_image_viewer_quality_title": "图像质量",
|
"theme_setting_image_viewer_quality_title": "图像质量",
|
||||||
|
"theme_setting_primary_color_subtitle": "选择颜色作为主色调",
|
||||||
|
"theme_setting_primary_color_title": "主色调",
|
||||||
|
"theme_setting_system_primary_color_title": "使用系统颜色",
|
||||||
"theme_setting_system_theme_switch": "自动(跟随系统设置)",
|
"theme_setting_system_theme_switch": "自动(跟随系统设置)",
|
||||||
"theme_setting_theme_subtitle": "选择应用主题",
|
"theme_setting_theme_subtitle": "选择应用主题",
|
||||||
"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": "选项",
|
"translated_text_options": "选项",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "删除",
|
"trash_page_delete": "删除",
|
||||||
"trash_page_delete_all": "删除全部",
|
"trash_page_delete_all": "删除全部",
|
||||||
"trash_page_empty_trash_btn": "清空回收站",
|
"trash_page_empty_trash_btn": "清空回收站",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "布局",
|
"asset_list_layout_sub_title": "布局",
|
||||||
"asset_list_settings_subtitle": "照片网格布局设置",
|
"asset_list_settings_subtitle": "照片网格布局设置",
|
||||||
"asset_list_settings_title": "照片网格",
|
"asset_list_settings_title": "照片网格",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "资源查看器",
|
"asset_viewer_settings_title": "资源查看器",
|
||||||
"backup_album_selection_page_albums_device": "设备上的相册({})",
|
"backup_album_selection_page_albums_device": "设备上的相册({})",
|
||||||
"backup_album_selection_page_albums_tap": "单击选中,双击取消",
|
"backup_album_selection_page_albums_tap": "单击选中,双击取消",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "共享",
|
"tab_controller_nav_sharing": "共享",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "在项目标题上显示存储占用",
|
"theme_setting_asset_list_storage_indicator_title": "在项目标题上显示存储占用",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "每行展示 {} 项",
|
"theme_setting_asset_list_tiles_per_row_title": "每行展示 {} 项",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "应用主色调到背景",
|
||||||
|
"theme_setting_colorful_interface_title": "彩色界面",
|
||||||
"theme_setting_dark_mode_switch": "深色模式",
|
"theme_setting_dark_mode_switch": "深色模式",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "调整查看大图时的图像质量",
|
"theme_setting_image_viewer_quality_subtitle": "调整查看大图时的图像质量",
|
||||||
"theme_setting_image_viewer_quality_title": "图像质量",
|
"theme_setting_image_viewer_quality_title": "图像质量",
|
||||||
|
"theme_setting_primary_color_subtitle": "选择颜色作为主色调",
|
||||||
|
"theme_setting_primary_color_title": "主色调",
|
||||||
|
"theme_setting_system_primary_color_title": "使用系统颜色",
|
||||||
"theme_setting_system_theme_switch": "自动(跟随系统设置)",
|
"theme_setting_system_theme_switch": "自动(跟随系统设置)",
|
||||||
"theme_setting_theme_subtitle": "选择应用主题",
|
"theme_setting_theme_subtitle": "选择应用主题",
|
||||||
"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": "选项",
|
"translated_text_options": "选项",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "删除",
|
"trash_page_delete": "删除",
|
||||||
"trash_page_delete_all": "删除全部",
|
"trash_page_delete_all": "删除全部",
|
||||||
"trash_page_empty_trash_btn": "清空回收站",
|
"trash_page_empty_trash_btn": "清空回收站",
|
||||||
|
|||||||
@@ -54,6 +54,13 @@
|
|||||||
"asset_list_layout_sub_title": "Layout",
|
"asset_list_layout_sub_title": "Layout",
|
||||||
"asset_list_settings_subtitle": "Photo grid layout settings",
|
"asset_list_settings_subtitle": "Photo grid layout settings",
|
||||||
"asset_list_settings_title": "Photo Grid",
|
"asset_list_settings_title": "Photo Grid",
|
||||||
|
"asset_restored_successfully": "Asset restored successfully",
|
||||||
|
"assets_deleted_permanently": "{} asset(s) deleted permanently",
|
||||||
|
"assets_deleted_permanently_from_server": "{} asset(s) deleted permanently from the Immich server",
|
||||||
|
"assets_removed_permanently_from_device": "{} asset(s) removed permanently from your device",
|
||||||
|
"assets_restored_successfully": "{} asset(s) restored successfully",
|
||||||
|
"assets_trashed": "{} asset(s) trashed",
|
||||||
|
"assets_trashed_from_server": "{} asset(s) trashed from the Immich server",
|
||||||
"asset_viewer_settings_title": "Asset Viewer",
|
"asset_viewer_settings_title": "Asset Viewer",
|
||||||
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
"backup_album_selection_page_albums_device": "Albums on device ({})",
|
||||||
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
|
||||||
@@ -528,15 +535,21 @@
|
|||||||
"tab_controller_nav_sharing": "Sharing",
|
"tab_controller_nav_sharing": "Sharing",
|
||||||
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles",
|
||||||
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})",
|
||||||
|
"theme_setting_colorful_interface_subtitle": "Apply primary color to background surfaces.",
|
||||||
|
"theme_setting_colorful_interface_title": "Colorful interface",
|
||||||
"theme_setting_dark_mode_switch": "Dark mode",
|
"theme_setting_dark_mode_switch": "Dark mode",
|
||||||
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer",
|
||||||
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
"theme_setting_image_viewer_quality_title": "Image viewer quality",
|
||||||
|
"theme_setting_primary_color_subtitle": "Pick a color for primary actions and accents.",
|
||||||
|
"theme_setting_primary_color_title": "Primary color",
|
||||||
|
"theme_setting_system_primary_color_title": "Use system color",
|
||||||
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
"theme_setting_system_theme_switch": "Automatic (Follow system setting)",
|
||||||
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
"theme_setting_theme_subtitle": "Choose the app's theme setting",
|
||||||
"theme_setting_theme_title": "Theme",
|
"theme_setting_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",
|
"translated_text_options": "Options",
|
||||||
|
"trash_emptied": "Emptied trash",
|
||||||
"trash_page_delete": "Delete",
|
"trash_page_delete": "Delete",
|
||||||
"trash_page_delete_all": "Delete All",
|
"trash_page_delete_all": "Delete All",
|
||||||
"trash_page_empty_trash_btn": "Empty trash",
|
"trash_page_empty_trash_btn": "Empty trash",
|
||||||
|
|||||||
3
mobile/devtools_options.yaml
Normal file
3
mobile/devtools_options.yaml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
description: This file stores settings for Dart & Flutter DevTools.
|
||||||
|
documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states
|
||||||
|
extensions:
|
||||||
@@ -19,7 +19,7 @@ platform :ios do
|
|||||||
desc "iOS Release"
|
desc "iOS Release"
|
||||||
lane :release do
|
lane :release do
|
||||||
increment_version_number(
|
increment_version_number(
|
||||||
version_number: "1.111.0"
|
version_number: "1.112.0"
|
||||||
)
|
)
|
||||||
increment_build_number(
|
increment_build_number(
|
||||||
build_number: latest_testflight_build_number + 1,
|
build_number: latest_testflight_build_number + 1,
|
||||||
|
|||||||
@@ -170,6 +170,30 @@ class ExifInfo {
|
|||||||
state.hashCode ^
|
state.hashCode ^
|
||||||
country.hashCode ^
|
country.hashCode ^
|
||||||
description.hashCode;
|
description.hashCode;
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return """
|
||||||
|
{
|
||||||
|
id: $id,
|
||||||
|
fileSize: $fileSize,
|
||||||
|
dateTimeOriginal: $dateTimeOriginal,
|
||||||
|
timeZone: $timeZone,
|
||||||
|
make: $make,
|
||||||
|
model: $model,
|
||||||
|
lens: $lens,
|
||||||
|
f: $f,
|
||||||
|
mm: $mm,
|
||||||
|
iso: $iso,
|
||||||
|
exposureSeconds: $exposureSeconds,
|
||||||
|
lat: $lat,
|
||||||
|
long: $long,
|
||||||
|
city: $city,
|
||||||
|
state: $state,
|
||||||
|
country: $country,
|
||||||
|
description: $description,
|
||||||
|
}""";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
double? _exposureTimeToSeconds(String? s) {
|
double? _exposureTimeToSeconds(String? s) {
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
|
import 'dart:async';
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:auto_route/auto_route.dart';
|
import 'package:auto_route/auto_route.dart';
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
@@ -29,6 +31,9 @@ class BackupControllerPage extends HookConsumerWidget {
|
|||||||
BackUpState backupState = ref.watch(backupProvider);
|
BackUpState backupState = ref.watch(backupProvider);
|
||||||
final hasAnyAlbum = backupState.selectedBackupAlbums.isNotEmpty;
|
final hasAnyAlbum = backupState.selectedBackupAlbums.isNotEmpty;
|
||||||
final didGetBackupInfo = useState(false);
|
final didGetBackupInfo = useState(false);
|
||||||
|
final isScreenDarkened = useState(false);
|
||||||
|
final darkenScreenTimer = useRef<Timer?>(null);
|
||||||
|
|
||||||
bool hasExclusiveAccess =
|
bool hasExclusiveAccess =
|
||||||
backupState.backupProgress != BackUpProgressEnum.inBackground;
|
backupState.backupProgress != BackUpProgressEnum.inBackground;
|
||||||
bool shouldBackup = backupState.allUniqueAssets.length -
|
bool shouldBackup = backupState.allUniqueAssets.length -
|
||||||
@@ -38,6 +43,25 @@ class BackupControllerPage extends HookConsumerWidget {
|
|||||||
? false
|
? false
|
||||||
: true;
|
: true;
|
||||||
|
|
||||||
|
void startScreenDarkenTimer() {
|
||||||
|
darkenScreenTimer.value = Timer(const Duration(seconds: 30), () {
|
||||||
|
isScreenDarkened.value = true;
|
||||||
|
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void stopScreenDarkenTimer() {
|
||||||
|
isScreenDarkened.value = false;
|
||||||
|
darkenScreenTimer.value?.cancel();
|
||||||
|
SystemChrome.setEnabledSystemUIMode(
|
||||||
|
SystemUiMode.manual,
|
||||||
|
overlays: [
|
||||||
|
SystemUiOverlay.top,
|
||||||
|
SystemUiOverlay.bottom,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
useEffect(
|
useEffect(
|
||||||
() {
|
() {
|
||||||
// Update the background settings information just to make sure we
|
// Update the background settings information just to make sure we
|
||||||
@@ -52,8 +76,11 @@ class BackupControllerPage extends HookConsumerWidget {
|
|||||||
.stopListenToEvent('on_upload_success');
|
.stopListenToEvent('on_upload_success');
|
||||||
|
|
||||||
WakelockPlus.enable();
|
WakelockPlus.enable();
|
||||||
|
|
||||||
return () {
|
return () {
|
||||||
WakelockPlus.disable();
|
WakelockPlus.disable();
|
||||||
|
darkenScreenTimer.value?.cancel();
|
||||||
|
isScreenDarkened.value = false;
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
[],
|
[],
|
||||||
@@ -71,6 +98,19 @@ class BackupControllerPage extends HookConsumerWidget {
|
|||||||
[backupState.backupProgress],
|
[backupState.backupProgress],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
useEffect(
|
||||||
|
() {
|
||||||
|
if (backupState.backupProgress == BackUpProgressEnum.inProgress) {
|
||||||
|
startScreenDarkenTimer();
|
||||||
|
} else {
|
||||||
|
stopScreenDarkenTimer();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
[backupState.backupProgress],
|
||||||
|
);
|
||||||
|
|
||||||
Widget buildSelectedAlbumName() {
|
Widget buildSelectedAlbumName() {
|
||||||
var text = "backup_controller_page_backup_selected".tr();
|
var text = "backup_controller_page_backup_selected".tr();
|
||||||
var albums = ref.watch(backupProvider).selectedBackupAlbums;
|
var albums = ref.watch(backupProvider).selectedBackupAlbums;
|
||||||
@@ -257,72 +297,102 @@ class BackupControllerPage extends HookConsumerWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Scaffold(
|
return GestureDetector(
|
||||||
appBar: AppBar(
|
onTap: () {
|
||||||
elevation: 0,
|
if (isScreenDarkened.value) {
|
||||||
title: const Text(
|
stopScreenDarkenTimer();
|
||||||
"backup_controller_page_backup",
|
}
|
||||||
).tr(),
|
if (backupState.backupProgress == BackUpProgressEnum.inProgress) {
|
||||||
leading: IconButton(
|
startScreenDarkenTimer();
|
||||||
onPressed: () {
|
}
|
||||||
ref.watch(websocketProvider.notifier).listenUploadEvent();
|
},
|
||||||
context.maybePop(true);
|
child: AnimatedOpacity(
|
||||||
},
|
opacity: isScreenDarkened.value ? 0.1 : 1.0,
|
||||||
splashRadius: 24,
|
duration: const Duration(seconds: 1),
|
||||||
icon: const Icon(
|
child: Scaffold(
|
||||||
Icons.arrow_back_ios_rounded,
|
appBar: AppBar(
|
||||||
),
|
elevation: 0,
|
||||||
),
|
title: const Text(
|
||||||
actions: [
|
"backup_controller_page_backup",
|
||||||
Padding(
|
).tr(),
|
||||||
padding: const EdgeInsets.only(right: 8.0),
|
leading: IconButton(
|
||||||
child: IconButton(
|
onPressed: () {
|
||||||
onPressed: () => context.pushRoute(const BackupOptionsRoute()),
|
ref.watch(websocketProvider.notifier).listenUploadEvent();
|
||||||
|
context.maybePop(true);
|
||||||
|
},
|
||||||
splashRadius: 24,
|
splashRadius: 24,
|
||||||
icon: const Icon(
|
icon: const Icon(
|
||||||
Icons.settings_outlined,
|
Icons.arrow_back_ios_rounded,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
actions: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(right: 8.0),
|
||||||
|
child: IconButton(
|
||||||
|
onPressed: () =>
|
||||||
|
context.pushRoute(const BackupOptionsRoute()),
|
||||||
|
splashRadius: 24,
|
||||||
|
icon: const Icon(
|
||||||
|
Icons.settings_outlined,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
body: Stack(
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding:
|
||||||
|
const EdgeInsets.only(left: 16.0, right: 16, bottom: 32),
|
||||||
|
child: ListView(
|
||||||
|
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: hasAnyAlbum
|
||||||
|
? [
|
||||||
|
buildFolderSelectionTile(),
|
||||||
|
BackupInfoCard(
|
||||||
|
title: "backup_controller_page_total".tr(),
|
||||||
|
subtitle: "backup_controller_page_total_sub".tr(),
|
||||||
|
info: ref
|
||||||
|
.watch(backupProvider)
|
||||||
|
.availableAlbums
|
||||||
|
.isEmpty
|
||||||
|
? "..."
|
||||||
|
: "${backupState.allUniqueAssets.length}",
|
||||||
|
),
|
||||||
|
BackupInfoCard(
|
||||||
|
title: "backup_controller_page_backup".tr(),
|
||||||
|
subtitle: "backup_controller_page_backup_sub".tr(),
|
||||||
|
info: ref
|
||||||
|
.watch(backupProvider)
|
||||||
|
.availableAlbums
|
||||||
|
.isEmpty
|
||||||
|
? "..."
|
||||||
|
: "${backupState.selectedAlbumsBackupAssetsIds.length}",
|
||||||
|
),
|
||||||
|
BackupInfoCard(
|
||||||
|
title: "backup_controller_page_remainder".tr(),
|
||||||
|
subtitle:
|
||||||
|
"backup_controller_page_remainder_sub".tr(),
|
||||||
|
info: ref
|
||||||
|
.watch(backupProvider)
|
||||||
|
.availableAlbums
|
||||||
|
.isEmpty
|
||||||
|
? "..."
|
||||||
|
: "${max(0, backupState.allUniqueAssets.length - backupState.selectedAlbumsBackupAssetsIds.length)}",
|
||||||
|
),
|
||||||
|
const Divider(),
|
||||||
|
const CurrentUploadingAssetInfoBox(),
|
||||||
|
if (!hasExclusiveAccess) buildBackgroundBackupInfo(),
|
||||||
|
buildBackupButton(),
|
||||||
|
]
|
||||||
|
: [
|
||||||
|
buildFolderSelectionTile(),
|
||||||
|
if (!didGetBackupInfo.value) buildLoadingIndicator(),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
],
|
|
||||||
),
|
|
||||||
body: Padding(
|
|
||||||
padding: const EdgeInsets.only(left: 16.0, right: 16, bottom: 32),
|
|
||||||
child: ListView(
|
|
||||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: hasAnyAlbum
|
|
||||||
? [
|
|
||||||
buildFolderSelectionTile(),
|
|
||||||
BackupInfoCard(
|
|
||||||
title: "backup_controller_page_total".tr(),
|
|
||||||
subtitle: "backup_controller_page_total_sub".tr(),
|
|
||||||
info: ref.watch(backupProvider).availableAlbums.isEmpty
|
|
||||||
? "..."
|
|
||||||
: "${backupState.allUniqueAssets.length}",
|
|
||||||
),
|
|
||||||
BackupInfoCard(
|
|
||||||
title: "backup_controller_page_backup".tr(),
|
|
||||||
subtitle: "backup_controller_page_backup_sub".tr(),
|
|
||||||
info: ref.watch(backupProvider).availableAlbums.isEmpty
|
|
||||||
? "..."
|
|
||||||
: "${backupState.selectedAlbumsBackupAssetsIds.length}",
|
|
||||||
),
|
|
||||||
BackupInfoCard(
|
|
||||||
title: "backup_controller_page_remainder".tr(),
|
|
||||||
subtitle: "backup_controller_page_remainder_sub".tr(),
|
|
||||||
info: ref.watch(backupProvider).availableAlbums.isEmpty
|
|
||||||
? "..."
|
|
||||||
: "${max(0, backupState.allUniqueAssets.length - backupState.selectedAlbumsBackupAssetsIds.length)}",
|
|
||||||
),
|
|
||||||
const Divider(),
|
|
||||||
const CurrentUploadingAssetInfoBox(),
|
|
||||||
if (!hasExclusiveAccess) buildBackgroundBackupInfo(),
|
|
||||||
buildBackupButton(),
|
|
||||||
]
|
|
||||||
: [
|
|
||||||
buildFolderSelectionTile(),
|
|
||||||
if (!didGetBackupInfo.value) buildLoadingIndicator(),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import 'package:immich_mobile/services/app_settings.service.dart';
|
|||||||
import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart';
|
import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart';
|
||||||
import 'package:immich_mobile/widgets/asset_viewer/advanced_bottom_sheet.dart';
|
import 'package:immich_mobile/widgets/asset_viewer/advanced_bottom_sheet.dart';
|
||||||
import 'package:immich_mobile/widgets/asset_viewer/bottom_gallery_bar.dart';
|
import 'package:immich_mobile/widgets/asset_viewer/bottom_gallery_bar.dart';
|
||||||
import 'package:immich_mobile/widgets/asset_viewer/exif_sheet/exif_bottom_sheet.dart';
|
import 'package:immich_mobile/widgets/asset_viewer/detail_panel/detail_panel.dart';
|
||||||
import 'package:immich_mobile/widgets/asset_viewer/gallery_app_bar.dart';
|
import 'package:immich_mobile/widgets/asset_viewer/gallery_app_bar.dart';
|
||||||
import 'package:immich_mobile/widgets/common/immich_image.dart';
|
import 'package:immich_mobile/widgets/common/immich_image.dart';
|
||||||
import 'package:immich_mobile/widgets/common/immich_thumbnail.dart';
|
import 'package:immich_mobile/widgets/common/immich_thumbnail.dart';
|
||||||
@@ -152,7 +152,7 @@ class GalleryViewerPage extends HookConsumerWidget {
|
|||||||
.watch(appSettingsServiceProvider)
|
.watch(appSettingsServiceProvider)
|
||||||
.getSetting<bool>(AppSettingsEnum.advancedTroubleshooting)
|
.getSetting<bool>(AppSettingsEnum.advancedTroubleshooting)
|
||||||
? AdvancedBottomSheet(assetDetail: asset)
|
? AdvancedBottomSheet(assetDetail: asset)
|
||||||
: ExifBottomSheet(asset: asset),
|
: DetailPanel(asset: asset),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ class TrashPage extends HookConsumerWidget {
|
|||||||
if (context.mounted) {
|
if (context.mounted) {
|
||||||
ImmichToast.show(
|
ImmichToast.show(
|
||||||
context: context,
|
context: context,
|
||||||
msg: 'Emptied trash',
|
msg: 'trash_emptied'.tr(),
|
||||||
gravity: ToastGravity.BOTTOM,
|
gravity: ToastGravity.BOTTOM,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -71,13 +71,11 @@ class TrashPage extends HookConsumerWidget {
|
|||||||
.removeAssets(selection.value);
|
.removeAssets(selection.value);
|
||||||
|
|
||||||
if (isRemoved) {
|
if (isRemoved) {
|
||||||
final assetOrAssets =
|
|
||||||
selection.value.length > 1 ? 'assets' : 'asset';
|
|
||||||
if (context.mounted) {
|
if (context.mounted) {
|
||||||
ImmichToast.show(
|
ImmichToast.show(
|
||||||
context: context,
|
context: context,
|
||||||
msg:
|
msg: 'assets_deleted_permanently'
|
||||||
'${selection.value.length} $assetOrAssets deleted permanently',
|
.tr(args: ["${selection.value.length}"]),
|
||||||
gravity: ToastGravity.BOTTOM,
|
gravity: ToastGravity.BOTTOM,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -114,12 +112,11 @@ class TrashPage extends HookConsumerWidget {
|
|||||||
.read(trashProvider.notifier)
|
.read(trashProvider.notifier)
|
||||||
.restoreAssets(selection.value);
|
.restoreAssets(selection.value);
|
||||||
|
|
||||||
final assetOrAssets = selection.value.length > 1 ? 'assets' : 'asset';
|
|
||||||
if (result && context.mounted) {
|
if (result && context.mounted) {
|
||||||
ImmichToast.show(
|
ImmichToast.show(
|
||||||
context: context,
|
context: context,
|
||||||
msg:
|
msg: 'assets_restored_successfully'
|
||||||
'${selection.value.length} $assetOrAssets restored successfully',
|
.tr(args: ["${selection.value.length}"]),
|
||||||
gravity: ToastGravity.BOTTOM,
|
gravity: ToastGravity.BOTTOM,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -234,14 +234,6 @@ class SharedLinkEditPage extends HookConsumerWidget {
|
|||||||
onSelected: (value) {
|
onSelected: (value) {
|
||||||
expiryAfter.value = value!;
|
expiryAfter.value = value!;
|
||||||
},
|
},
|
||||||
inputDecorationTheme: themeData.inputDecorationTheme.copyWith(
|
|
||||||
disabledBorder: OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(color: Colors.grey.withOpacity(0.5)),
|
|
||||||
),
|
|
||||||
enabledBorder: const OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(color: Colors.grey),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
dropdownMenuEntries: [
|
dropdownMenuEntries: [
|
||||||
DropdownMenuEntry(
|
DropdownMenuEntry(
|
||||||
value: 0,
|
value: 0,
|
||||||
|
|||||||
@@ -162,6 +162,7 @@ class AssetService {
|
|||||||
final dto = await _apiService.assetsApi.getAssetInfo(a.remoteId!);
|
final dto = await _apiService.assetsApi.getAssetInfo(a.remoteId!);
|
||||||
if (dto != null && dto.exifInfo != null) {
|
if (dto != null && dto.exifInfo != null) {
|
||||||
final newExif = Asset.remote(dto).exifInfo!.copyWith(id: a.id);
|
final newExif = Asset.remote(dto).exifInfo!.copyWith(id: a.id);
|
||||||
|
a.exifInfo = newExif;
|
||||||
if (newExif != a.exifInfo) {
|
if (newExif != a.exifInfo) {
|
||||||
if (a.isInDb) {
|
if (a.isInDb) {
|
||||||
_db.writeTxn(() => a.put(_db));
|
_db.writeTxn(() => a.put(_db));
|
||||||
|
|||||||
@@ -43,6 +43,19 @@ class AssetDescriptionService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String getAssetDescription(Asset asset) {
|
||||||
|
final localExifId = asset.exifInfo?.id;
|
||||||
|
|
||||||
|
// Guard [remoteAssetId] and [localExifId] null
|
||||||
|
if (localExifId == null) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
final exifInfo = _db.exifInfos.getSync(localExifId);
|
||||||
|
|
||||||
|
return exifInfo?.description ?? "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final assetDescriptionServiceProvider = Provider(
|
final assetDescriptionServiceProvider = Provider(
|
||||||
|
|||||||
@@ -251,11 +251,13 @@ ThemeData getThemeData({required ColorScheme colorScheme}) {
|
|||||||
borderSide: BorderSide(
|
borderSide: BorderSide(
|
||||||
color: primaryColor,
|
color: primaryColor,
|
||||||
),
|
),
|
||||||
|
borderRadius: const BorderRadius.all(Radius.circular(15)),
|
||||||
),
|
),
|
||||||
enabledBorder: OutlineInputBorder(
|
enabledBorder: OutlineInputBorder(
|
||||||
borderSide: BorderSide(
|
borderSide: BorderSide(
|
||||||
color: colorScheme.outlineVariant,
|
color: colorScheme.outlineVariant,
|
||||||
),
|
),
|
||||||
|
borderRadius: const BorderRadius.all(Radius.circular(15)),
|
||||||
),
|
),
|
||||||
labelStyle: TextStyle(
|
labelStyle: TextStyle(
|
||||||
color: primaryColor,
|
color: primaryColor,
|
||||||
@@ -268,5 +270,34 @@ ThemeData getThemeData({required ColorScheme colorScheme}) {
|
|||||||
textSelectionTheme: TextSelectionThemeData(
|
textSelectionTheme: TextSelectionThemeData(
|
||||||
cursorColor: primaryColor,
|
cursorColor: primaryColor,
|
||||||
),
|
),
|
||||||
|
dropdownMenuTheme: DropdownMenuThemeData(
|
||||||
|
menuStyle: MenuStyle(
|
||||||
|
shape: WidgetStatePropertyAll<OutlinedBorder>(
|
||||||
|
RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(15),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
inputDecorationTheme: InputDecorationTheme(
|
||||||
|
focusedBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: primaryColor,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
enabledBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: colorScheme.outlineVariant,
|
||||||
|
),
|
||||||
|
borderRadius: const BorderRadius.all(Radius.circular(15)),
|
||||||
|
),
|
||||||
|
labelStyle: TextStyle(
|
||||||
|
color: primaryColor,
|
||||||
|
),
|
||||||
|
hintStyle: const TextStyle(
|
||||||
|
fontSize: 14.0,
|
||||||
|
fontWeight: FontWeight.normal,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
12
mobile/lib/utils/openapi_patching.dart
Normal file
12
mobile/lib/utils/openapi_patching.dart
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import 'package:openapi/api.dart';
|
||||||
|
|
||||||
|
dynamic upgradeDto(dynamic value, String targetType) {
|
||||||
|
switch (targetType) {
|
||||||
|
case 'UserPreferencesResponseDto':
|
||||||
|
if (value is Map) {
|
||||||
|
if (value['rating'] == null) {
|
||||||
|
value['rating'] = RatingResponse().toJson();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -118,6 +118,7 @@ Future<void> handleEditDateTime(
|
|||||||
initialTZ: timeZone,
|
initialTZ: timeZone,
|
||||||
initialTZOffset: offset,
|
initialTZOffset: offset,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (dateTime == null) {
|
if (dateTime == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -142,10 +143,12 @@ Future<void> handleEditLocation(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final location = await showLocationPicker(
|
final location = await showLocationPicker(
|
||||||
context: context,
|
context: context,
|
||||||
initialLatLng: initialLatLng,
|
initialLatLng: initialLatLng,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (location == null) {
|
if (location == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -190,11 +190,12 @@ class MultiselectGrid extends HookConsumerWidget {
|
|||||||
.deleteAssets(toDelete, force: force);
|
.deleteAssets(toDelete, force: force);
|
||||||
|
|
||||||
if (isDeleted) {
|
if (isDeleted) {
|
||||||
final assetOrAssets = toDelete.length > 1 ? 'assets' : 'asset';
|
|
||||||
final trashOrRemoved = force ? 'deleted permanently' : 'trashed';
|
|
||||||
ImmichToast.show(
|
ImmichToast.show(
|
||||||
context: context,
|
context: context,
|
||||||
msg: '${selection.value.length} $assetOrAssets $trashOrRemoved',
|
msg: force
|
||||||
|
? 'assets_deleted_permanently'
|
||||||
|
.tr(args: ["${selection.value.length}"])
|
||||||
|
: 'assets_trashed'.tr(args: ["${selection.value.length}"]),
|
||||||
gravity: ToastGravity.BOTTOM,
|
gravity: ToastGravity.BOTTOM,
|
||||||
);
|
);
|
||||||
selectionEnabledHook.value = false;
|
selectionEnabledHook.value = false;
|
||||||
@@ -213,11 +214,10 @@ class MultiselectGrid extends HookConsumerWidget {
|
|||||||
.read(assetProvider.notifier)
|
.read(assetProvider.notifier)
|
||||||
.deleteLocalOnlyAssets(localIds, onlyBackedUp: onlyBackedUp);
|
.deleteLocalOnlyAssets(localIds, onlyBackedUp: onlyBackedUp);
|
||||||
if (isDeleted) {
|
if (isDeleted) {
|
||||||
final assetOrAssets = localIds.length > 1 ? 'assets' : 'asset';
|
|
||||||
ImmichToast.show(
|
ImmichToast.show(
|
||||||
context: context,
|
context: context,
|
||||||
msg:
|
msg: 'assets_removed_permanently_from_device'
|
||||||
'${localIds.length} $assetOrAssets removed permanently from your device',
|
.tr(args: ["${localIds.length}"]),
|
||||||
gravity: ToastGravity.BOTTOM,
|
gravity: ToastGravity.BOTTOM,
|
||||||
);
|
);
|
||||||
selectionEnabledHook.value = false;
|
selectionEnabledHook.value = false;
|
||||||
@@ -239,12 +239,12 @@ class MultiselectGrid extends HookConsumerWidget {
|
|||||||
.read(assetProvider.notifier)
|
.read(assetProvider.notifier)
|
||||||
.deleteRemoteOnlyAssets(toDelete, force: force);
|
.deleteRemoteOnlyAssets(toDelete, force: force);
|
||||||
if (isDeleted) {
|
if (isDeleted) {
|
||||||
final assetOrAssets = toDelete.length > 1 ? 'assets' : 'asset';
|
|
||||||
final trashOrRemoved = force ? 'deleted permanently' : 'trashed';
|
|
||||||
ImmichToast.show(
|
ImmichToast.show(
|
||||||
context: context,
|
context: context,
|
||||||
msg:
|
msg: force
|
||||||
'${toDelete.length} $assetOrAssets $trashOrRemoved from the Immich server',
|
? 'assets_deleted_permanently_from_server'
|
||||||
|
.tr(args: ["${toDelete.length}"])
|
||||||
|
: 'assets_trashed_from_server'.tr(args: ["${toDelete.length}"]),
|
||||||
gravity: ToastGravity.BOTTOM,
|
gravity: ToastGravity.BOTTOM,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,58 +61,6 @@ class BottomGalleryBar extends ConsumerWidget {
|
|||||||
navStack.length > 2 &&
|
navStack.length > 2 &&
|
||||||
navStack.elementAt(navStack.length - 2).name == TrashRoute.name;
|
navStack.elementAt(navStack.length - 2).name == TrashRoute.name;
|
||||||
final isInAlbum = ref.watch(currentAlbumProvider)?.isRemote ?? false;
|
final isInAlbum = ref.watch(currentAlbumProvider)?.isRemote ?? false;
|
||||||
// !!!! itemsList and actionlist should always be in sync
|
|
||||||
final itemsList = [
|
|
||||||
BottomNavigationBarItem(
|
|
||||||
icon: Icon(
|
|
||||||
Platform.isAndroid ? Icons.share_rounded : Icons.ios_share_rounded,
|
|
||||||
),
|
|
||||||
label: 'control_bottom_app_bar_share'.tr(),
|
|
||||||
tooltip: 'control_bottom_app_bar_share'.tr(),
|
|
||||||
),
|
|
||||||
if (asset.isImage)
|
|
||||||
BottomNavigationBarItem(
|
|
||||||
icon: const Icon(Icons.tune_outlined),
|
|
||||||
label: 'control_bottom_app_bar_edit'.tr(),
|
|
||||||
tooltip: 'control_bottom_app_bar_edit'.tr(),
|
|
||||||
),
|
|
||||||
if (isOwner)
|
|
||||||
asset.isArchived
|
|
||||||
? BottomNavigationBarItem(
|
|
||||||
icon: const Icon(Icons.unarchive_rounded),
|
|
||||||
label: 'control_bottom_app_bar_unarchive'.tr(),
|
|
||||||
tooltip: 'control_bottom_app_bar_unarchive'.tr(),
|
|
||||||
)
|
|
||||||
: BottomNavigationBarItem(
|
|
||||||
icon: const Icon(Icons.archive_outlined),
|
|
||||||
label: 'control_bottom_app_bar_archive'.tr(),
|
|
||||||
tooltip: 'control_bottom_app_bar_archive'.tr(),
|
|
||||||
),
|
|
||||||
if (isOwner && stack.isNotEmpty)
|
|
||||||
BottomNavigationBarItem(
|
|
||||||
icon: const Icon(Icons.burst_mode_outlined),
|
|
||||||
label: 'control_bottom_app_bar_stack'.tr(),
|
|
||||||
tooltip: 'control_bottom_app_bar_stack'.tr(),
|
|
||||||
),
|
|
||||||
if (isOwner && !isInAlbum)
|
|
||||||
BottomNavigationBarItem(
|
|
||||||
icon: const Icon(Icons.delete_outline),
|
|
||||||
label: '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(),
|
|
||||||
),
|
|
||||||
if (isInAlbum)
|
|
||||||
BottomNavigationBarItem(
|
|
||||||
icon: const Icon(Icons.remove_circle_outline),
|
|
||||||
label: 'album_viewer_appbar_share_remove'.tr(),
|
|
||||||
tooltip: 'album_viewer_appbar_share_remove'.tr(),
|
|
||||||
),
|
|
||||||
];
|
|
||||||
|
|
||||||
void removeAssetFromStack() {
|
void removeAssetFromStack() {
|
||||||
if (stackIndex > 0 && showStack) {
|
if (stackIndex > 0 && showStack) {
|
||||||
@@ -366,16 +314,71 @@ class BottomGalleryBar extends ConsumerWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Function(int)> actionslist = [
|
final List<Map<BottomNavigationBarItem, Function(int)>> albumActions = [
|
||||||
(_) => shareAsset(),
|
{
|
||||||
if (asset.isImage) (_) => handleEdit(),
|
BottomNavigationBarItem(
|
||||||
if (isOwner) (_) => handleArchive(),
|
icon: Icon(
|
||||||
if (isOwner && stack.isNotEmpty) (_) => showStackActionItems(),
|
Platform.isAndroid ? Icons.share_rounded : Icons.ios_share_rounded,
|
||||||
if (isOwner) (_) => handleDelete(),
|
),
|
||||||
if (!isOwner) (_) => handleDownload(),
|
label: 'control_bottom_app_bar_share'.tr(),
|
||||||
if (isInAlbum) (_) => handleRemoveFromAlbum(),
|
tooltip: 'control_bottom_app_bar_share'.tr(),
|
||||||
|
): (_) => shareAsset(),
|
||||||
|
},
|
||||||
|
if (asset.isImage)
|
||||||
|
{
|
||||||
|
BottomNavigationBarItem(
|
||||||
|
icon: const Icon(Icons.tune_outlined),
|
||||||
|
label: 'control_bottom_app_bar_edit'.tr(),
|
||||||
|
tooltip: 'control_bottom_app_bar_edit'.tr(),
|
||||||
|
): (_) => handleEdit(),
|
||||||
|
},
|
||||||
|
if (isOwner)
|
||||||
|
{
|
||||||
|
asset.isArchived
|
||||||
|
? BottomNavigationBarItem(
|
||||||
|
icon: const Icon(Icons.unarchive_rounded),
|
||||||
|
label: 'control_bottom_app_bar_unarchive'.tr(),
|
||||||
|
tooltip: 'control_bottom_app_bar_unarchive'.tr(),
|
||||||
|
)
|
||||||
|
: BottomNavigationBarItem(
|
||||||
|
icon: const Icon(Icons.archive_outlined),
|
||||||
|
label: 'control_bottom_app_bar_archive'.tr(),
|
||||||
|
tooltip: 'control_bottom_app_bar_archive'.tr(),
|
||||||
|
): (_) => handleArchive(),
|
||||||
|
},
|
||||||
|
if (isOwner && stack.isNotEmpty)
|
||||||
|
{
|
||||||
|
BottomNavigationBarItem(
|
||||||
|
icon: const Icon(Icons.burst_mode_outlined),
|
||||||
|
label: 'control_bottom_app_bar_stack'.tr(),
|
||||||
|
tooltip: 'control_bottom_app_bar_stack'.tr(),
|
||||||
|
): (_) => showStackActionItems(),
|
||||||
|
},
|
||||||
|
if (isOwner && !isInAlbum)
|
||||||
|
{
|
||||||
|
BottomNavigationBarItem(
|
||||||
|
icon: const Icon(Icons.delete_outline),
|
||||||
|
label: 'control_bottom_app_bar_delete'.tr(),
|
||||||
|
tooltip: 'control_bottom_app_bar_delete'.tr(),
|
||||||
|
): (_) => handleDelete(),
|
||||||
|
},
|
||||||
|
if (!isOwner)
|
||||||
|
{
|
||||||
|
BottomNavigationBarItem(
|
||||||
|
icon: const Icon(Icons.download_outlined),
|
||||||
|
label: 'download'.tr(),
|
||||||
|
tooltip: 'download'.tr(),
|
||||||
|
): (_) => handleDownload(),
|
||||||
|
},
|
||||||
|
if (isInAlbum)
|
||||||
|
{
|
||||||
|
BottomNavigationBarItem(
|
||||||
|
icon: const Icon(Icons.remove_circle_outline),
|
||||||
|
label: 'album_viewer_appbar_share_remove'.tr(),
|
||||||
|
tooltip: 'album_viewer_appbar_share_remove'.tr(),
|
||||||
|
): (_) => handleRemoveFromAlbum(),
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
return IgnorePointer(
|
return IgnorePointer(
|
||||||
ignoring: !ref.watch(showControlsProvider),
|
ignoring: !ref.watch(showControlsProvider),
|
||||||
child: AnimatedOpacity(
|
child: AnimatedOpacity(
|
||||||
@@ -407,11 +410,10 @@ class BottomGalleryBar extends ConsumerWidget {
|
|||||||
unselectedItemColor: Colors.white,
|
unselectedItemColor: Colors.white,
|
||||||
showSelectedLabels: true,
|
showSelectedLabels: true,
|
||||||
showUnselectedLabels: true,
|
showUnselectedLabels: true,
|
||||||
items: itemsList,
|
items:
|
||||||
|
albumActions.map((e) => e.keys.first).toList(growable: false),
|
||||||
onTap: (index) {
|
onTap: (index) {
|
||||||
if (index < actionslist.length) {
|
albumActions[index].values.first.call(index);
|
||||||
actionslist[index].call(index);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import 'package:immich_mobile/entities/exif_info.entity.dart';
|
|||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
import 'package:immich_mobile/entities/asset.entity.dart';
|
import 'package:immich_mobile/entities/asset.entity.dart';
|
||||||
import 'package:immich_mobile/extensions/theme_extensions.dart';
|
import 'package:immich_mobile/extensions/theme_extensions.dart';
|
||||||
|
import 'package:immich_mobile/providers/asset.provider.dart';
|
||||||
import 'package:immich_mobile/providers/user.provider.dart';
|
import 'package:immich_mobile/providers/user.provider.dart';
|
||||||
import 'package:immich_mobile/services/asset_description.service.dart';
|
import 'package:immich_mobile/services/asset_description.service.dart';
|
||||||
import 'package:immich_mobile/widgets/common/immich_toast.dart';
|
import 'package:immich_mobile/widgets/common/immich_toast.dart';
|
||||||
@@ -29,17 +30,16 @@ class DescriptionInput extends HookConsumerWidget {
|
|||||||
final isFocus = useState(false);
|
final isFocus = useState(false);
|
||||||
final isTextEmpty = useState(controller.text.isEmpty);
|
final isTextEmpty = useState(controller.text.isEmpty);
|
||||||
final descriptionProvider = ref.watch(assetDescriptionServiceProvider);
|
final descriptionProvider = ref.watch(assetDescriptionServiceProvider);
|
||||||
|
|
||||||
final owner = ref.watch(currentUserProvider);
|
final owner = ref.watch(currentUserProvider);
|
||||||
final hasError = useState(false);
|
final hasError = useState(false);
|
||||||
|
final assetWithExif = ref.watch(assetDetailProvider(asset));
|
||||||
|
|
||||||
useEffect(
|
useEffect(
|
||||||
() {
|
() {
|
||||||
controller.text = exifInfo?.description ?? '';
|
controller.text = descriptionProvider.getAssetDescription(asset);
|
||||||
isTextEmpty.value = exifInfo?.description?.isEmpty ?? true;
|
|
||||||
return null;
|
return null;
|
||||||
},
|
},
|
||||||
[exifInfo?.description],
|
[assetWithExif.value],
|
||||||
);
|
);
|
||||||
|
|
||||||
submitDescription(String description) async {
|
submitDescription(String description) async {
|
||||||
@@ -49,6 +49,7 @@ class DescriptionInput extends HookConsumerWidget {
|
|||||||
asset,
|
asset,
|
||||||
description,
|
description,
|
||||||
);
|
);
|
||||||
|
controller.text = description;
|
||||||
} catch (error, stack) {
|
} catch (error, stack) {
|
||||||
hasError.value = true;
|
hasError.value = true;
|
||||||
_log.severe("Error updating description", error, stack);
|
_log.severe("Error updating description", error, stack);
|
||||||
@@ -101,6 +102,11 @@ class DescriptionInput extends HookConsumerWidget {
|
|||||||
hintText: 'description_input_hint_text'.tr(),
|
hintText: 'description_input_hint_text'.tr(),
|
||||||
border: InputBorder.none,
|
border: InputBorder.none,
|
||||||
suffixIcon: suffixIcon,
|
suffixIcon: suffixIcon,
|
||||||
|
enabledBorder: InputBorder.none,
|
||||||
|
focusedBorder: InputBorder.none,
|
||||||
|
disabledBorder: InputBorder.none,
|
||||||
|
errorBorder: InputBorder.none,
|
||||||
|
focusedErrorBorder: InputBorder.none,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
|
import 'package:immich_mobile/entities/asset.entity.dart';
|
||||||
|
import 'package:immich_mobile/extensions/asset_extensions.dart';
|
||||||
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
|
import 'package:immich_mobile/extensions/duration_extensions.dart';
|
||||||
|
import 'package:immich_mobile/providers/asset.provider.dart';
|
||||||
|
import 'package:immich_mobile/utils/selection_handlers.dart';
|
||||||
|
|
||||||
|
class AssetDateTime extends ConsumerWidget {
|
||||||
|
final Asset asset;
|
||||||
|
|
||||||
|
const AssetDateTime({super.key, required this.asset});
|
||||||
|
|
||||||
|
String getDateTimeString(Asset a) {
|
||||||
|
final (deltaTime, timeZone) = a.getTZAdjustedTimeAndOffset();
|
||||||
|
final date = DateFormat.yMMMEd().format(deltaTime);
|
||||||
|
final time = DateFormat.jm().format(deltaTime);
|
||||||
|
return '$date • $time GMT${timeZone.formatAsOffset()}';
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
|
final watchedAsset = ref.watch(assetDetailProvider(asset));
|
||||||
|
String formattedDateTime = getDateTimeString(asset);
|
||||||
|
|
||||||
|
void editDateTime() async {
|
||||||
|
await handleEditDateTime(ref, context, [asset]);
|
||||||
|
|
||||||
|
if (watchedAsset.value != null) {
|
||||||
|
formattedDateTime = getDateTimeString(watchedAsset.value!);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
formattedDateTime,
|
||||||
|
style: context.textTheme.bodyMedium?.copyWith(
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
if (asset.isRemote)
|
||||||
|
IconButton(
|
||||||
|
onPressed: editDateTime,
|
||||||
|
icon: const Icon(Icons.edit_outlined),
|
||||||
|
iconSize: 20,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
|
import 'package:immich_mobile/providers/asset.provider.dart';
|
||||||
|
import 'package:immich_mobile/widgets/asset_viewer/detail_panel/file_info.dart';
|
||||||
|
import 'package:immich_mobile/entities/asset.entity.dart';
|
||||||
|
import 'package:immich_mobile/entities/exif_info.entity.dart';
|
||||||
|
import 'package:immich_mobile/widgets/asset_viewer/detail_panel/camera_info.dart';
|
||||||
|
|
||||||
|
class AssetDetails extends ConsumerWidget {
|
||||||
|
final Asset asset;
|
||||||
|
final ExifInfo? exifInfo;
|
||||||
|
|
||||||
|
const AssetDetails({
|
||||||
|
super.key,
|
||||||
|
required this.asset,
|
||||||
|
this.exifInfo,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
|
final assetWithExif = ref.watch(assetDetailProvider(asset));
|
||||||
|
final ExifInfo? exifInfo = (assetWithExif.value ?? asset).exifInfo;
|
||||||
|
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 24.0),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
"exif_bottom_sheet_details",
|
||||||
|
style: context.textTheme.labelMedium?.copyWith(
|
||||||
|
color: context.textTheme.labelMedium?.color?.withAlpha(200),
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
),
|
||||||
|
).tr(),
|
||||||
|
FileInfo(asset: asset),
|
||||||
|
if (exifInfo?.make != null) CameraInfo(exifInfo: exifInfo!),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
106
mobile/lib/widgets/asset_viewer/detail_panel/asset_location.dart
Normal file
106
mobile/lib/widgets/asset_viewer/detail_panel/asset_location.dart
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
|
import 'package:immich_mobile/providers/asset.provider.dart';
|
||||||
|
import 'package:immich_mobile/utils/selection_handlers.dart';
|
||||||
|
import 'package:immich_mobile/widgets/asset_viewer/detail_panel/exif_map.dart';
|
||||||
|
import 'package:immich_mobile/entities/asset.entity.dart';
|
||||||
|
import 'package:immich_mobile/entities/exif_info.entity.dart';
|
||||||
|
|
||||||
|
class AssetLocation extends HookConsumerWidget {
|
||||||
|
final Asset asset;
|
||||||
|
|
||||||
|
const AssetLocation({
|
||||||
|
super.key,
|
||||||
|
required this.asset,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
|
final assetWithExif = ref.watch(assetDetailProvider(asset));
|
||||||
|
final ExifInfo? exifInfo = (assetWithExif.value ?? asset).exifInfo;
|
||||||
|
final hasCoordinates = exifInfo?.hasCoordinates ?? false;
|
||||||
|
|
||||||
|
void editLocation() {
|
||||||
|
handleEditLocation(ref, context, [assetWithExif.value ?? asset]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Guard no lat/lng
|
||||||
|
if (!hasCoordinates) {
|
||||||
|
return asset.isRemote
|
||||||
|
? ListTile(
|
||||||
|
minLeadingWidth: 0,
|
||||||
|
contentPadding: const EdgeInsets.all(0),
|
||||||
|
leading: const Icon(Icons.location_on),
|
||||||
|
title: Text(
|
||||||
|
"exif_bottom_sheet_location_add",
|
||||||
|
style: context.textTheme.bodyMedium?.copyWith(
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
color: context.primaryColor,
|
||||||
|
),
|
||||||
|
).tr(),
|
||||||
|
onTap: editLocation,
|
||||||
|
)
|
||||||
|
: const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget getLocationName() {
|
||||||
|
if (exifInfo == null) {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
|
||||||
|
final cityName = exifInfo.city;
|
||||||
|
final stateName = exifInfo.state;
|
||||||
|
|
||||||
|
bool hasLocationName = (cityName != null && stateName != null);
|
||||||
|
|
||||||
|
return hasLocationName
|
||||||
|
? Text(
|
||||||
|
"$cityName, $stateName",
|
||||||
|
style: context.textTheme.labelLarge,
|
||||||
|
)
|
||||||
|
: const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
|
||||||
|
return Padding(
|
||||||
|
padding: EdgeInsets.only(top: asset.isRemote ? 0 : 16),
|
||||||
|
child: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Text(
|
||||||
|
"exif_bottom_sheet_location",
|
||||||
|
style: context.textTheme.labelMedium?.copyWith(
|
||||||
|
color: context.textTheme.labelMedium?.color?.withAlpha(200),
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
),
|
||||||
|
).tr(),
|
||||||
|
if (asset.isRemote)
|
||||||
|
IconButton(
|
||||||
|
onPressed: editLocation,
|
||||||
|
icon: const Icon(Icons.edit_outlined),
|
||||||
|
iconSize: 20,
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
asset.isRemote ? const SizedBox.shrink() : const SizedBox(height: 16),
|
||||||
|
ExifMap(
|
||||||
|
exifInfo: exifInfo!,
|
||||||
|
markerId: asset.remoteId,
|
||||||
|
),
|
||||||
|
const SizedBox(height: 16),
|
||||||
|
getLocationName(),
|
||||||
|
Text(
|
||||||
|
"${exifInfo.latitude!.toStringAsFixed(4)}, ${exifInfo.longitude!.toStringAsFixed(4)}",
|
||||||
|
style: context.textTheme.labelMedium?.copyWith(
|
||||||
|
color: context.textTheme.labelMedium?.color?.withAlpha(150),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:immich_mobile/entities/exif_info.entity.dart';
|
||||||
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
|
|
||||||
|
class CameraInfo extends StatelessWidget {
|
||||||
|
final ExifInfo exifInfo;
|
||||||
|
|
||||||
|
const CameraInfo({
|
||||||
|
super.key,
|
||||||
|
required this.exifInfo,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
final textColor = context.isDarkTheme ? Colors.white : Colors.black;
|
||||||
|
return ListTile(
|
||||||
|
contentPadding: const EdgeInsets.all(0),
|
||||||
|
dense: true,
|
||||||
|
leading: Icon(
|
||||||
|
Icons.camera,
|
||||||
|
color: textColor.withAlpha(200),
|
||||||
|
),
|
||||||
|
title: Text(
|
||||||
|
"${exifInfo.make} ${exifInfo.model}",
|
||||||
|
style: context.textTheme.labelLarge,
|
||||||
|
),
|
||||||
|
subtitle: exifInfo.f != null ||
|
||||||
|
exifInfo.exposureSeconds != null ||
|
||||||
|
exifInfo.mm != null ||
|
||||||
|
exifInfo.iso != null
|
||||||
|
? Text(
|
||||||
|
"ƒ/${exifInfo.fNumber} ${exifInfo.exposureTime} ${exifInfo.focalLength} mm ISO ${exifInfo.iso ?? ''} ",
|
||||||
|
style: context.textTheme.bodySmall,
|
||||||
|
)
|
||||||
|
: null,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
|
import 'package:immich_mobile/widgets/asset_viewer/description_input.dart';
|
||||||
|
import 'package:immich_mobile/widgets/asset_viewer/detail_panel/asset_date_time.dart';
|
||||||
|
import 'package:immich_mobile/widgets/asset_viewer/detail_panel/asset_details.dart';
|
||||||
|
import 'package:immich_mobile/widgets/asset_viewer/detail_panel/asset_location.dart';
|
||||||
|
import 'package:immich_mobile/widgets/asset_viewer/detail_panel/people_info.dart';
|
||||||
|
import 'package:immich_mobile/entities/asset.entity.dart';
|
||||||
|
|
||||||
|
class DetailPanel extends HookConsumerWidget {
|
||||||
|
final Asset asset;
|
||||||
|
|
||||||
|
const DetailPanel({super.key, required this.asset});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
|
return ListView(
|
||||||
|
shrinkWrap: true,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
AssetDateTime(asset: asset),
|
||||||
|
asset.isRemote
|
||||||
|
? DescriptionInput(asset: asset)
|
||||||
|
: const SizedBox.shrink(),
|
||||||
|
PeopleInfo(asset: asset),
|
||||||
|
AssetLocation(asset: asset),
|
||||||
|
AssetDetails(asset: asset),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,13 +8,11 @@ import 'package:url_launcher/url_launcher.dart';
|
|||||||
|
|
||||||
class ExifMap extends StatelessWidget {
|
class ExifMap extends StatelessWidget {
|
||||||
final ExifInfo exifInfo;
|
final ExifInfo exifInfo;
|
||||||
final String formattedDateTime;
|
|
||||||
final String? markerId;
|
final String? markerId;
|
||||||
|
|
||||||
const ExifMap({
|
const ExifMap({
|
||||||
super.key,
|
super.key,
|
||||||
required this.exifInfo,
|
required this.exifInfo,
|
||||||
required this.formattedDateTime,
|
|
||||||
this.markerId = 'marker',
|
this.markerId = 'marker',
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -37,7 +35,7 @@ class ExifMap extends StatelessWidget {
|
|||||||
host: '$latitude,$longitude',
|
host: '$latitude,$longitude',
|
||||||
queryParameters: {
|
queryParameters: {
|
||||||
'z': '$zoomLevel',
|
'z': '$zoomLevel',
|
||||||
'q': '$latitude,$longitude($formattedDateTime)',
|
'q': '$latitude,$longitude',
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
if (await canLaunchUrl(uri)) {
|
if (await canLaunchUrl(uri)) {
|
||||||
@@ -46,7 +44,7 @@ class ExifMap extends StatelessWidget {
|
|||||||
} else if (Platform.isIOS) {
|
} else if (Platform.isIOS) {
|
||||||
var params = {
|
var params = {
|
||||||
'll': '$latitude,$longitude',
|
'll': '$latitude,$longitude',
|
||||||
'q': formattedDateTime,
|
'q': '$latitude,$longitude',
|
||||||
'z': '$zoomLevel',
|
'z': '$zoomLevel',
|
||||||
};
|
};
|
||||||
Uri uri = Uri.https('maps.apple.com', '/', params);
|
Uri uri = Uri.https('maps.apple.com', '/', params);
|
||||||
@@ -63,32 +61,29 @@ class ExifMap extends StatelessWidget {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return Padding(
|
return LayoutBuilder(
|
||||||
padding: const EdgeInsets.symmetric(vertical: 16.0),
|
builder: (context, constraints) {
|
||||||
child: LayoutBuilder(
|
return MapThumbnail(
|
||||||
builder: (context, constraints) {
|
centre: LatLng(
|
||||||
return MapThumbnail(
|
exifInfo.latitude ?? 0,
|
||||||
centre: LatLng(
|
exifInfo.longitude ?? 0,
|
||||||
exifInfo.latitude ?? 0,
|
),
|
||||||
exifInfo.longitude ?? 0,
|
height: 150,
|
||||||
),
|
width: constraints.maxWidth,
|
||||||
height: 150,
|
zoom: 12.0,
|
||||||
width: constraints.maxWidth,
|
assetMarkerRemoteId: markerId,
|
||||||
zoom: 12.0,
|
onTap: (tapPosition, latLong) async {
|
||||||
assetMarkerRemoteId: markerId,
|
Uri? uri = await createCoordinatesUri();
|
||||||
onTap: (tapPosition, latLong) async {
|
|
||||||
Uri? uri = await createCoordinatesUri();
|
|
||||||
|
|
||||||
if (uri == null) {
|
if (uri == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
debugPrint('Opening Map Uri: $uri');
|
debugPrint('Opening Map Uri: $uri');
|
||||||
launchUrl(uri);
|
launchUrl(uri);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,10 +3,10 @@ import 'package:immich_mobile/entities/asset.entity.dart';
|
|||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
import 'package:immich_mobile/utils/bytes_units.dart';
|
import 'package:immich_mobile/utils/bytes_units.dart';
|
||||||
|
|
||||||
class ExifImageProperties extends StatelessWidget {
|
class FileInfo extends StatelessWidget {
|
||||||
final Asset asset;
|
final Asset asset;
|
||||||
|
|
||||||
const ExifImageProperties({
|
const FileInfo({
|
||||||
super.key,
|
super.key,
|
||||||
required this.asset,
|
required this.asset,
|
||||||
});
|
});
|
||||||
102
mobile/lib/widgets/asset_viewer/detail_panel/people_info.dart
Normal file
102
mobile/lib/widgets/asset_viewer/detail_panel/people_info.dart
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
import 'dart:math' as math;
|
||||||
|
|
||||||
|
import 'package:auto_route/auto_route.dart';
|
||||||
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
|
import 'package:immich_mobile/providers/asset_viewer/asset_people.provider.dart';
|
||||||
|
import 'package:immich_mobile/models/search/search_curated_content.model.dart';
|
||||||
|
import 'package:immich_mobile/widgets/search/curated_people_row.dart';
|
||||||
|
import 'package:immich_mobile/widgets/search/person_name_edit_form.dart';
|
||||||
|
import 'package:immich_mobile/routing/router.dart';
|
||||||
|
import 'package:immich_mobile/entities/asset.entity.dart';
|
||||||
|
|
||||||
|
class PeopleInfo extends ConsumerWidget {
|
||||||
|
final Asset asset;
|
||||||
|
final EdgeInsets? padding;
|
||||||
|
|
||||||
|
const PeopleInfo({super.key, required this.asset, this.padding});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
|
final peopleProvider =
|
||||||
|
ref.watch(assetPeopleNotifierProvider(asset).notifier);
|
||||||
|
final people = ref
|
||||||
|
.watch(assetPeopleNotifierProvider(asset))
|
||||||
|
.value
|
||||||
|
?.where((p) => !p.isHidden);
|
||||||
|
final double imageSize = math.min(context.width / 3, 150);
|
||||||
|
|
||||||
|
showPersonNameEditModel(
|
||||||
|
String personId,
|
||||||
|
String personName,
|
||||||
|
) {
|
||||||
|
return showDialog(
|
||||||
|
context: context,
|
||||||
|
builder: (BuildContext context) {
|
||||||
|
return PersonNameEditForm(personId: personId, personName: personName);
|
||||||
|
},
|
||||||
|
).then((_) {
|
||||||
|
// ensure the people list is up-to-date.
|
||||||
|
peopleProvider.refresh();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
final curatedPeople = people
|
||||||
|
?.map((p) => SearchCuratedContent(id: p.id, label: p.name))
|
||||||
|
.toList() ??
|
||||||
|
[];
|
||||||
|
|
||||||
|
return AnimatedCrossFade(
|
||||||
|
crossFadeState: (people?.isEmpty ?? true)
|
||||||
|
? CrossFadeState.showFirst
|
||||||
|
: CrossFadeState.showSecond,
|
||||||
|
duration: const Duration(milliseconds: 200),
|
||||||
|
firstChild: Container(),
|
||||||
|
secondChild: Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 8.0),
|
||||||
|
child: Column(
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: padding ?? EdgeInsets.zero,
|
||||||
|
child: Align(
|
||||||
|
alignment: Alignment.topLeft,
|
||||||
|
child: Text(
|
||||||
|
"exif_bottom_sheet_people",
|
||||||
|
style: context.textTheme.labelMedium?.copyWith(
|
||||||
|
color: context.textTheme.labelMedium?.color?.withAlpha(200),
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
),
|
||||||
|
).tr(),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
height: imageSize,
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 16.0),
|
||||||
|
child: CuratedPeopleRow(
|
||||||
|
padding: padding,
|
||||||
|
content: curatedPeople,
|
||||||
|
onTap: (content, index) {
|
||||||
|
context
|
||||||
|
.pushRoute(
|
||||||
|
PersonResultRoute(
|
||||||
|
personId: content.id,
|
||||||
|
personName: content.label,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.then((_) => peopleProvider.refresh());
|
||||||
|
},
|
||||||
|
onNameTap: (person, index) => {
|
||||||
|
showPersonNameEditModel(person.id, person.label),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,212 +0,0 @@
|
|||||||
import 'package:easy_localization/easy_localization.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
||||||
import 'package:immich_mobile/extensions/asset_extensions.dart';
|
|
||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
|
||||||
import 'package:immich_mobile/extensions/duration_extensions.dart';
|
|
||||||
import 'package:immich_mobile/widgets/asset_viewer/description_input.dart';
|
|
||||||
import 'package:immich_mobile/widgets/asset_viewer/exif_sheet/exif_detail.dart';
|
|
||||||
import 'package:immich_mobile/widgets/asset_viewer/exif_sheet/exif_image_properties.dart';
|
|
||||||
import 'package:immich_mobile/widgets/asset_viewer/exif_sheet/exif_location.dart';
|
|
||||||
import 'package:immich_mobile/widgets/asset_viewer/exif_sheet/exif_people.dart';
|
|
||||||
import 'package:immich_mobile/entities/asset.entity.dart';
|
|
||||||
import 'package:immich_mobile/entities/exif_info.entity.dart';
|
|
||||||
import 'package:immich_mobile/providers/asset.provider.dart';
|
|
||||||
import 'package:immich_mobile/utils/selection_handlers.dart';
|
|
||||||
|
|
||||||
class ExifBottomSheet extends HookConsumerWidget {
|
|
||||||
final Asset asset;
|
|
||||||
|
|
||||||
const ExifBottomSheet({super.key, required this.asset});
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
|
||||||
final assetWithExif = ref.watch(assetDetailProvider(asset));
|
|
||||||
var textColor = context.colorScheme.onSurface;
|
|
||||||
final ExifInfo? exifInfo = (assetWithExif.value ?? asset).exifInfo;
|
|
||||||
// Format the date time with the timezone
|
|
||||||
final (dt, timeZone) =
|
|
||||||
(assetWithExif.value ?? asset).getTZAdjustedTimeAndOffset();
|
|
||||||
final date = DateFormat.yMMMEd().format(dt);
|
|
||||||
final time = DateFormat.jm().format(dt);
|
|
||||||
|
|
||||||
String formattedDateTime = '$date • $time GMT${timeZone.formatAsOffset()}';
|
|
||||||
|
|
||||||
final dateWidget = Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
formattedDateTime,
|
|
||||||
style: const TextStyle(
|
|
||||||
fontWeight: FontWeight.bold,
|
|
||||||
fontSize: 14,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
if (asset.isRemote)
|
|
||||||
IconButton(
|
|
||||||
onPressed: () => handleEditDateTime(
|
|
||||||
ref,
|
|
||||||
context,
|
|
||||||
[assetWithExif.value ?? asset],
|
|
||||||
),
|
|
||||||
icon: const Icon(Icons.edit_outlined),
|
|
||||||
iconSize: 20,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
|
|
||||||
return SingleChildScrollView(
|
|
||||||
padding: const EdgeInsets.only(
|
|
||||||
bottom: 50,
|
|
||||||
),
|
|
||||||
child: LayoutBuilder(
|
|
||||||
builder: (context, constraints) {
|
|
||||||
final horizontalPadding = constraints.maxWidth > 600 ? 24.0 : 16.0;
|
|
||||||
if (constraints.maxWidth > 600) {
|
|
||||||
// Two column
|
|
||||||
return Column(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.symmetric(horizontal: horizontalPadding),
|
|
||||||
child: Column(
|
|
||||||
children: [
|
|
||||||
dateWidget,
|
|
||||||
if (asset.isRemote)
|
|
||||||
DescriptionInput(asset: asset, exifInfo: exifInfo),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
ExifPeople(
|
|
||||||
asset: asset,
|
|
||||||
padding: EdgeInsets.symmetric(
|
|
||||||
horizontal: horizontalPadding,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.symmetric(
|
|
||||||
horizontal: horizontalPadding,
|
|
||||||
),
|
|
||||||
child: Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.only(right: 8.0),
|
|
||||||
child: ExifLocation(
|
|
||||||
asset: asset,
|
|
||||||
exifInfo: exifInfo,
|
|
||||||
editLocation: () => handleEditLocation(
|
|
||||||
ref,
|
|
||||||
context,
|
|
||||||
[assetWithExif.value ?? asset],
|
|
||||||
),
|
|
||||||
formattedDateTime: formattedDateTime,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
ConstrainedBox(
|
|
||||||
constraints: const BoxConstraints(maxWidth: 300),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.only(left: 8.0),
|
|
||||||
child: ExifDetail(asset: asset, exifInfo: exifInfo),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// One column
|
|
||||||
return Column(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.symmetric(
|
|
||||||
horizontal: horizontalPadding,
|
|
||||||
),
|
|
||||||
child: Column(
|
|
||||||
children: [
|
|
||||||
dateWidget,
|
|
||||||
if (asset.isRemote)
|
|
||||||
DescriptionInput(asset: asset, exifInfo: exifInfo),
|
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.only(top: asset.isRemote ? 0 : 16.0),
|
|
||||||
child: ExifLocation(
|
|
||||||
asset: asset,
|
|
||||||
exifInfo: exifInfo,
|
|
||||||
editLocation: () => handleEditLocation(
|
|
||||||
ref,
|
|
||||||
context,
|
|
||||||
[assetWithExif.value ?? asset],
|
|
||||||
),
|
|
||||||
formattedDateTime: formattedDateTime,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.symmetric(vertical: 16.0),
|
|
||||||
child: ExifPeople(
|
|
||||||
asset: asset,
|
|
||||||
padding: EdgeInsets.symmetric(
|
|
||||||
horizontal: horizontalPadding,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: EdgeInsets.symmetric(horizontal: horizontalPadding),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(bottom: 8.0),
|
|
||||||
child: Text(
|
|
||||||
"exif_bottom_sheet_details",
|
|
||||||
style: context.textTheme.labelMedium?.copyWith(
|
|
||||||
color: context.textTheme.labelMedium?.color
|
|
||||||
?.withAlpha(200),
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
),
|
|
||||||
).tr(),
|
|
||||||
),
|
|
||||||
ExifImageProperties(asset: asset),
|
|
||||||
if (exifInfo?.make != null)
|
|
||||||
ListTile(
|
|
||||||
contentPadding: const EdgeInsets.all(0),
|
|
||||||
dense: true,
|
|
||||||
leading: Icon(
|
|
||||||
Icons.camera,
|
|
||||||
color: textColor.withAlpha(200),
|
|
||||||
),
|
|
||||||
title: Text(
|
|
||||||
"${exifInfo!.make} ${exifInfo.model}",
|
|
||||||
style: context.textTheme.labelLarge,
|
|
||||||
),
|
|
||||||
subtitle: exifInfo.f != null ||
|
|
||||||
exifInfo.exposureSeconds != null ||
|
|
||||||
exifInfo.mm != null ||
|
|
||||||
exifInfo.iso != null
|
|
||||||
? Text(
|
|
||||||
"ƒ/${exifInfo.fNumber} ${exifInfo.exposureTime} ${exifInfo.focalLength} mm ISO ${exifInfo.iso ?? ''} ",
|
|
||||||
style: context.textTheme.bodySmall,
|
|
||||||
)
|
|
||||||
: null,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
const SizedBox(height: 50),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
import 'package:easy_localization/easy_localization.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
|
||||||
import 'package:immich_mobile/widgets/asset_viewer/exif_sheet/exif_image_properties.dart';
|
|
||||||
import 'package:immich_mobile/entities/asset.entity.dart';
|
|
||||||
import 'package:immich_mobile/entities/exif_info.entity.dart';
|
|
||||||
|
|
||||||
class ExifDetail extends StatelessWidget {
|
|
||||||
final Asset asset;
|
|
||||||
final ExifInfo? exifInfo;
|
|
||||||
|
|
||||||
const ExifDetail({
|
|
||||||
super.key,
|
|
||||||
required this.asset,
|
|
||||||
this.exifInfo,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
final textColor = context.isDarkTheme ? Colors.white : Colors.black;
|
|
||||||
return Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.only(bottom: 8.0),
|
|
||||||
child: Text(
|
|
||||||
"exif_bottom_sheet_details",
|
|
||||||
style: context.textTheme.labelMedium?.copyWith(
|
|
||||||
color: context.textTheme.labelMedium?.color?.withAlpha(200),
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
),
|
|
||||||
).tr(),
|
|
||||||
),
|
|
||||||
ExifImageProperties(asset: asset),
|
|
||||||
if (exifInfo?.make != null)
|
|
||||||
ListTile(
|
|
||||||
contentPadding: const EdgeInsets.all(0),
|
|
||||||
dense: true,
|
|
||||||
leading: Icon(
|
|
||||||
Icons.camera,
|
|
||||||
color: textColor.withAlpha(200),
|
|
||||||
),
|
|
||||||
title: Text(
|
|
||||||
"${exifInfo?.make} ${exifInfo?.model}",
|
|
||||||
style: context.textTheme.labelLarge,
|
|
||||||
),
|
|
||||||
subtitle: exifInfo?.f != null ||
|
|
||||||
exifInfo?.exposureSeconds != null ||
|
|
||||||
exifInfo?.mm != null ||
|
|
||||||
exifInfo?.iso != null
|
|
||||||
? Text(
|
|
||||||
"ƒ/${exifInfo?.fNumber} ${exifInfo?.exposureTime} ${exifInfo?.focalLength} mm ISO ${exifInfo?.iso ?? ''} ",
|
|
||||||
style: context.textTheme.bodySmall,
|
|
||||||
)
|
|
||||||
: null,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
import 'package:easy_localization/easy_localization.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
|
||||||
import 'package:immich_mobile/widgets/asset_viewer/exif_sheet/exif_map.dart';
|
|
||||||
import 'package:immich_mobile/entities/asset.entity.dart';
|
|
||||||
import 'package:immich_mobile/entities/exif_info.entity.dart';
|
|
||||||
|
|
||||||
class ExifLocation extends StatelessWidget {
|
|
||||||
final Asset asset;
|
|
||||||
final ExifInfo? exifInfo;
|
|
||||||
final void Function() editLocation;
|
|
||||||
final String formattedDateTime;
|
|
||||||
|
|
||||||
const ExifLocation({
|
|
||||||
super.key,
|
|
||||||
required this.asset,
|
|
||||||
required this.exifInfo,
|
|
||||||
required this.editLocation,
|
|
||||||
required this.formattedDateTime,
|
|
||||||
});
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
final hasCoordinates = exifInfo?.hasCoordinates ?? false;
|
|
||||||
// Guard no lat/lng
|
|
||||||
if (!hasCoordinates) {
|
|
||||||
return asset.isRemote
|
|
||||||
? ListTile(
|
|
||||||
minLeadingWidth: 0,
|
|
||||||
contentPadding: const EdgeInsets.all(0),
|
|
||||||
leading: const Icon(Icons.location_on),
|
|
||||||
title: Text(
|
|
||||||
"exif_bottom_sheet_location_add",
|
|
||||||
style: context.textTheme.bodyMedium?.copyWith(
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
color: context.primaryColor,
|
|
||||||
),
|
|
||||||
).tr(),
|
|
||||||
onTap: editLocation,
|
|
||||||
)
|
|
||||||
: const SizedBox.shrink();
|
|
||||||
}
|
|
||||||
|
|
||||||
return Column(
|
|
||||||
children: [
|
|
||||||
// Location
|
|
||||||
Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
"exif_bottom_sheet_location",
|
|
||||||
style: context.textTheme.labelMedium?.copyWith(
|
|
||||||
color: context.textTheme.labelMedium?.color?.withAlpha(200),
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
),
|
|
||||||
).tr(),
|
|
||||||
if (asset.isRemote)
|
|
||||||
IconButton(
|
|
||||||
onPressed: editLocation,
|
|
||||||
icon: const Icon(Icons.edit_outlined),
|
|
||||||
iconSize: 20,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
ExifMap(
|
|
||||||
exifInfo: exifInfo!,
|
|
||||||
formattedDateTime: formattedDateTime,
|
|
||||||
markerId: asset.remoteId,
|
|
||||||
),
|
|
||||||
RichText(
|
|
||||||
text: TextSpan(
|
|
||||||
style: context.textTheme.labelLarge,
|
|
||||||
children: [
|
|
||||||
if (exifInfo != null && exifInfo?.city != null)
|
|
||||||
TextSpan(
|
|
||||||
text: exifInfo!.city,
|
|
||||||
),
|
|
||||||
if (exifInfo != null &&
|
|
||||||
exifInfo?.city != null &&
|
|
||||||
exifInfo?.state != null)
|
|
||||||
const TextSpan(
|
|
||||||
text: ", ",
|
|
||||||
),
|
|
||||||
if (exifInfo != null && exifInfo?.state != null)
|
|
||||||
TextSpan(
|
|
||||||
text: exifInfo!.state,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
"${exifInfo!.latitude!.toStringAsFixed(4)}, ${exifInfo!.longitude!.toStringAsFixed(4)}",
|
|
||||||
style: context.textTheme.labelMedium?.copyWith(
|
|
||||||
color: context.textTheme.labelMedium?.color?.withAlpha(150),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,97 +0,0 @@
|
|||||||
import 'dart:math' as math;
|
|
||||||
|
|
||||||
import 'package:auto_route/auto_route.dart';
|
|
||||||
import 'package:easy_localization/easy_localization.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
|
||||||
import 'package:immich_mobile/providers/asset_viewer/asset_people.provider.dart';
|
|
||||||
import 'package:immich_mobile/models/search/search_curated_content.model.dart';
|
|
||||||
import 'package:immich_mobile/widgets/search/curated_people_row.dart';
|
|
||||||
import 'package:immich_mobile/widgets/search/person_name_edit_form.dart';
|
|
||||||
import 'package:immich_mobile/routing/router.dart';
|
|
||||||
import 'package:immich_mobile/entities/asset.entity.dart';
|
|
||||||
|
|
||||||
class ExifPeople extends ConsumerWidget {
|
|
||||||
final Asset asset;
|
|
||||||
final EdgeInsets? padding;
|
|
||||||
|
|
||||||
const ExifPeople({super.key, required this.asset, this.padding});
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
|
||||||
final peopleProvider =
|
|
||||||
ref.watch(assetPeopleNotifierProvider(asset).notifier);
|
|
||||||
final people = ref
|
|
||||||
.watch(assetPeopleNotifierProvider(asset))
|
|
||||||
.value
|
|
||||||
?.where((p) => !p.isHidden);
|
|
||||||
final double imageSize = math.min(context.width / 3, 150);
|
|
||||||
|
|
||||||
showPersonNameEditModel(
|
|
||||||
String personId,
|
|
||||||
String personName,
|
|
||||||
) {
|
|
||||||
return showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (BuildContext context) {
|
|
||||||
return PersonNameEditForm(personId: personId, personName: personName);
|
|
||||||
},
|
|
||||||
).then((_) {
|
|
||||||
// ensure the people list is up-to-date.
|
|
||||||
peopleProvider.refresh();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (people?.isEmpty ?? true) {
|
|
||||||
// Empty list or loading
|
|
||||||
return Container();
|
|
||||||
}
|
|
||||||
|
|
||||||
final curatedPeople = people
|
|
||||||
?.map((p) => SearchCuratedContent(id: p.id, label: p.name))
|
|
||||||
.toList() ??
|
|
||||||
[];
|
|
||||||
|
|
||||||
return Column(
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: padding ?? EdgeInsets.zero,
|
|
||||||
child: Align(
|
|
||||||
alignment: Alignment.topLeft,
|
|
||||||
child: Text(
|
|
||||||
"exif_bottom_sheet_people",
|
|
||||||
style: context.textTheme.labelMedium?.copyWith(
|
|
||||||
color: context.textTheme.labelMedium?.color?.withAlpha(200),
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
),
|
|
||||||
).tr(),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: imageSize,
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.only(top: 8.0),
|
|
||||||
child: CuratedPeopleRow(
|
|
||||||
padding: padding,
|
|
||||||
content: curatedPeople,
|
|
||||||
onTap: (content, index) {
|
|
||||||
context
|
|
||||||
.pushRoute(
|
|
||||||
PersonResultRoute(
|
|
||||||
personId: content.id,
|
|
||||||
personName: content.label,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.then((_) => peopleProvider.refresh());
|
|
||||||
},
|
|
||||||
onNameTap: (person, index) => {
|
|
||||||
showPersonNameEditModel(person.id, person.label),
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
import 'package:auto_route/auto_route.dart';
|
import 'package:auto_route/auto_route.dart';
|
||||||
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:fluttertoast/fluttertoast.dart';
|
import 'package:fluttertoast/fluttertoast.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
@@ -56,7 +57,7 @@ class GalleryAppBar extends ConsumerWidget {
|
|||||||
if (result && context.mounted) {
|
if (result && context.mounted) {
|
||||||
ImmichToast.show(
|
ImmichToast.show(
|
||||||
context: context,
|
context: context,
|
||||||
msg: 'asset restored successfully',
|
msg: 'asset_restored_successfully'.tr(),
|
||||||
gravity: ToastGravity.BOTTOM,
|
gravity: ToastGravity.BOTTOM,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,6 +84,19 @@ class _DateTimePicker extends HookWidget {
|
|||||||
final date = useState<DateTime>(initialDateTime ?? DateTime.now());
|
final date = useState<DateTime>(initialDateTime ?? DateTime.now());
|
||||||
final tzOffset = useState<_TimeZoneOffset>(_getInitiationLocation());
|
final tzOffset = useState<_TimeZoneOffset>(_getInitiationLocation());
|
||||||
final timeZones = useMemoized(() => getAllTimeZones(), const []);
|
final timeZones = useMemoized(() => getAllTimeZones(), const []);
|
||||||
|
final menuEntries = timeZones
|
||||||
|
.map(
|
||||||
|
(timezone) => DropdownMenuEntry<_TimeZoneOffset>(
|
||||||
|
value: timezone,
|
||||||
|
label: timezone.display,
|
||||||
|
style: ButtonStyle(
|
||||||
|
textStyle: WidgetStatePropertyAll(
|
||||||
|
context.textTheme.bodyMedium,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.toList();
|
||||||
|
|
||||||
void pickDate() async {
|
void pickDate() async {
|
||||||
final now = DateTime.now();
|
final now = DateTime.now();
|
||||||
@@ -120,93 +133,84 @@ class _DateTimePicker extends HookWidget {
|
|||||||
context.pop(dtWithOffset);
|
context.pop(dtWithOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
return AlertDialog(
|
return LayoutBuilder(
|
||||||
contentPadding: const EdgeInsets.all(30),
|
builder: (context, constraint) => AlertDialog(
|
||||||
alignment: Alignment.center,
|
contentPadding:
|
||||||
content: Column(
|
const EdgeInsets.symmetric(vertical: 32, horizontal: 18),
|
||||||
mainAxisSize: MainAxisSize.min,
|
actions: [
|
||||||
children: [
|
TextButton(
|
||||||
const Text(
|
onPressed: () => context.pop(),
|
||||||
"edit_date_time_dialog_date_time",
|
child: Text(
|
||||||
textAlign: TextAlign.center,
|
"action_common_cancel",
|
||||||
).tr(),
|
style: context.textTheme.bodyMedium?.copyWith(
|
||||||
TextButton.icon(
|
fontWeight: FontWeight.w600,
|
||||||
onPressed: pickDate,
|
color: context.colorScheme.error,
|
||||||
icon: Text(
|
),
|
||||||
DateFormat("dd-MM-yyyy hh:mm a").format(date.value),
|
).tr(),
|
||||||
style: context.textTheme.bodyLarge
|
|
||||||
?.copyWith(color: context.primaryColor),
|
|
||||||
),
|
|
||||||
label: const Icon(
|
|
||||||
Icons.edit_outlined,
|
|
||||||
size: 18,
|
|
||||||
),
|
|
||||||
),
|
),
|
||||||
const Text(
|
TextButton(
|
||||||
"edit_date_time_dialog_timezone",
|
onPressed: popWithDateTime,
|
||||||
textAlign: TextAlign.center,
|
child: Text(
|
||||||
).tr(),
|
"action_common_update",
|
||||||
DropdownMenu(
|
style: context.textTheme.bodyMedium?.copyWith(
|
||||||
menuHeight: 300,
|
fontWeight: FontWeight.w600,
|
||||||
width: 280,
|
color: context.primaryColor,
|
||||||
inputDecorationTheme: const InputDecorationTheme(
|
),
|
||||||
border: InputBorder.none,
|
).tr(),
|
||||||
contentPadding: EdgeInsets.zero,
|
),
|
||||||
|
],
|
||||||
|
content: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
const Text(
|
||||||
|
"edit_date_time_dialog_date_time",
|
||||||
|
style: TextStyle(
|
||||||
|
fontSize: 16,
|
||||||
|
fontWeight: FontWeight.w600,
|
||||||
|
),
|
||||||
|
).tr(),
|
||||||
|
const SizedBox(height: 32),
|
||||||
|
ListTile(
|
||||||
|
tileColor: context.colorScheme.surfaceContainerHighest,
|
||||||
|
shape: ShapeBorder.lerp(
|
||||||
|
RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(10),
|
||||||
|
),
|
||||||
|
RoundedRectangleBorder(
|
||||||
|
borderRadius: BorderRadius.circular(10),
|
||||||
|
),
|
||||||
|
1,
|
||||||
|
),
|
||||||
|
trailing: Icon(
|
||||||
|
Icons.edit_outlined,
|
||||||
|
size: 18,
|
||||||
|
color: context.primaryColor,
|
||||||
|
),
|
||||||
|
title: Text(
|
||||||
|
DateFormat("dd-MM-yyyy hh:mm a").format(date.value),
|
||||||
|
style: context.textTheme.bodyMedium,
|
||||||
|
).tr(),
|
||||||
|
onTap: pickDate,
|
||||||
),
|
),
|
||||||
trailingIcon: Padding(
|
const SizedBox(height: 24),
|
||||||
padding: const EdgeInsets.only(right: 10),
|
DropdownMenu(
|
||||||
child: Icon(
|
width: 275,
|
||||||
|
menuHeight: 300,
|
||||||
|
trailingIcon: Icon(
|
||||||
Icons.arrow_drop_down,
|
Icons.arrow_drop_down,
|
||||||
color: context.primaryColor,
|
color: context.primaryColor,
|
||||||
),
|
),
|
||||||
|
hintText: "edit_date_time_dialog_timezone".tr(),
|
||||||
|
label: const Text('edit_date_time_dialog_timezone').tr(),
|
||||||
|
textStyle: context.textTheme.bodyMedium,
|
||||||
|
onSelected: (value) => tzOffset.value = value!,
|
||||||
|
initialSelection: tzOffset.value,
|
||||||
|
dropdownMenuEntries: menuEntries,
|
||||||
),
|
),
|
||||||
textStyle: context.textTheme.bodyLarge?.copyWith(
|
],
|
||||||
color: context.primaryColor,
|
),
|
||||||
),
|
|
||||||
menuStyle: const MenuStyle(
|
|
||||||
fixedSize: WidgetStatePropertyAll(Size.fromWidth(350)),
|
|
||||||
alignment: Alignment(-1.25, 0.5),
|
|
||||||
),
|
|
||||||
onSelected: (value) => tzOffset.value = value!,
|
|
||||||
initialSelection: tzOffset.value,
|
|
||||||
dropdownMenuEntries: timeZones
|
|
||||||
.map(
|
|
||||||
(t) => DropdownMenuEntry<_TimeZoneOffset>(
|
|
||||||
value: t,
|
|
||||||
label: t.display,
|
|
||||||
style: ButtonStyle(
|
|
||||||
textStyle: WidgetStatePropertyAll(
|
|
||||||
context.textTheme.bodyMedium,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.toList(),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
actions: [
|
|
||||||
TextButton(
|
|
||||||
onPressed: () => context.pop(),
|
|
||||||
child: Text(
|
|
||||||
"action_common_cancel",
|
|
||||||
style: context.textTheme.bodyMedium?.copyWith(
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
color: context.colorScheme.error,
|
|
||||||
),
|
|
||||||
).tr(),
|
|
||||||
),
|
|
||||||
TextButton(
|
|
||||||
onPressed: popWithDateTime,
|
|
||||||
child: Text(
|
|
||||||
"action_common_update",
|
|
||||||
style: context.textTheme.bodyMedium?.copyWith(
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
color: context.primaryColor,
|
|
||||||
),
|
|
||||||
).tr(),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,8 +65,8 @@ class ImmichAppBar extends ConsumerWidget implements PreferredSizeWidget {
|
|||||||
size: widgetSize,
|
size: widgetSize,
|
||||||
)
|
)
|
||||||
: UserCircleAvatar(
|
: UserCircleAvatar(
|
||||||
radius: 15,
|
radius: 17,
|
||||||
size: 27,
|
size: 31,
|
||||||
user: user,
|
user: user,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -18,13 +18,6 @@ class SearchDropdown<T> extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final inputDecorationTheme = InputDecorationTheme(
|
|
||||||
border: OutlineInputBorder(
|
|
||||||
borderRadius: BorderRadius.circular(20),
|
|
||||||
),
|
|
||||||
contentPadding: const EdgeInsets.only(left: 16),
|
|
||||||
);
|
|
||||||
|
|
||||||
final menuStyle = MenuStyle(
|
final menuStyle = MenuStyle(
|
||||||
shape: WidgetStatePropertyAll<OutlinedBorder>(
|
shape: WidgetStatePropertyAll<OutlinedBorder>(
|
||||||
RoundedRectangleBorder(
|
RoundedRectangleBorder(
|
||||||
@@ -40,7 +33,6 @@ class SearchDropdown<T> extends StatelessWidget {
|
|||||||
width: constraints.maxWidth,
|
width: constraints.maxWidth,
|
||||||
dropdownMenuEntries: dropdownMenuEntries,
|
dropdownMenuEntries: dropdownMenuEntries,
|
||||||
label: label,
|
label: label,
|
||||||
inputDecorationTheme: inputDecorationTheme,
|
|
||||||
menuStyle: menuStyle,
|
menuStyle: menuStyle,
|
||||||
trailingIcon: const Icon(Icons.arrow_drop_down_rounded),
|
trailingIcon: const Icon(Icons.arrow_drop_down_rounded),
|
||||||
selectedTrailingIcon: const Icon(Icons.arrow_drop_up_rounded),
|
selectedTrailingIcon: const Icon(Icons.arrow_drop_up_rounded),
|
||||||
|
|||||||
4
mobile/openapi/README.md
generated
4
mobile/openapi/README.md
generated
@@ -3,7 +3,7 @@ Immich API
|
|||||||
|
|
||||||
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
||||||
|
|
||||||
- API version: 1.111.0
|
- API version: 1.112.0
|
||||||
- Generator version: 7.5.0
|
- Generator version: 7.5.0
|
||||||
- Build package: org.openapitools.codegen.languages.DartClientCodegen
|
- Build package: org.openapitools.codegen.languages.DartClientCodegen
|
||||||
|
|
||||||
@@ -372,6 +372,8 @@ Class | Method | HTTP request | Description
|
|||||||
- [PurchaseResponse](doc//PurchaseResponse.md)
|
- [PurchaseResponse](doc//PurchaseResponse.md)
|
||||||
- [PurchaseUpdate](doc//PurchaseUpdate.md)
|
- [PurchaseUpdate](doc//PurchaseUpdate.md)
|
||||||
- [QueueStatusDto](doc//QueueStatusDto.md)
|
- [QueueStatusDto](doc//QueueStatusDto.md)
|
||||||
|
- [RatingResponse](doc//RatingResponse.md)
|
||||||
|
- [RatingUpdate](doc//RatingUpdate.md)
|
||||||
- [ReactionLevel](doc//ReactionLevel.md)
|
- [ReactionLevel](doc//ReactionLevel.md)
|
||||||
- [ReactionType](doc//ReactionType.md)
|
- [ReactionType](doc//ReactionType.md)
|
||||||
- [ReverseGeocodingStateResponseDto](doc//ReverseGeocodingStateResponseDto.md)
|
- [ReverseGeocodingStateResponseDto](doc//ReverseGeocodingStateResponseDto.md)
|
||||||
|
|||||||
3
mobile/openapi/lib/api.dart
generated
3
mobile/openapi/lib/api.dart
generated
@@ -16,6 +16,7 @@ import 'dart:io';
|
|||||||
|
|
||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:immich_mobile/utils/openapi_patching.dart';
|
||||||
import 'package:http/http.dart';
|
import 'package:http/http.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:meta/meta.dart';
|
import 'package:meta/meta.dart';
|
||||||
@@ -183,6 +184,8 @@ part 'model/places_response_dto.dart';
|
|||||||
part 'model/purchase_response.dart';
|
part 'model/purchase_response.dart';
|
||||||
part 'model/purchase_update.dart';
|
part 'model/purchase_update.dart';
|
||||||
part 'model/queue_status_dto.dart';
|
part 'model/queue_status_dto.dart';
|
||||||
|
part 'model/rating_response.dart';
|
||||||
|
part 'model/rating_update.dart';
|
||||||
part 'model/reaction_level.dart';
|
part 'model/reaction_level.dart';
|
||||||
part 'model/reaction_type.dart';
|
part 'model/reaction_type.dart';
|
||||||
part 'model/reverse_geocoding_state_response_dto.dart';
|
part 'model/reverse_geocoding_state_response_dto.dart';
|
||||||
|
|||||||
5
mobile/openapi/lib/api_client.dart
generated
5
mobile/openapi/lib/api_client.dart
generated
@@ -166,6 +166,7 @@ class ApiClient {
|
|||||||
|
|
||||||
/// Returns a native instance of an OpenAPI class matching the [specified type][targetType].
|
/// Returns a native instance of an OpenAPI class matching the [specified type][targetType].
|
||||||
static dynamic fromJson(dynamic value, String targetType, {bool growable = false,}) {
|
static dynamic fromJson(dynamic value, String targetType, {bool growable = false,}) {
|
||||||
|
upgradeDto(value, targetType);
|
||||||
try {
|
try {
|
||||||
switch (targetType) {
|
switch (targetType) {
|
||||||
case 'String':
|
case 'String':
|
||||||
@@ -424,6 +425,10 @@ class ApiClient {
|
|||||||
return PurchaseUpdate.fromJson(value);
|
return PurchaseUpdate.fromJson(value);
|
||||||
case 'QueueStatusDto':
|
case 'QueueStatusDto':
|
||||||
return QueueStatusDto.fromJson(value);
|
return QueueStatusDto.fromJson(value);
|
||||||
|
case 'RatingResponse':
|
||||||
|
return RatingResponse.fromJson(value);
|
||||||
|
case 'RatingUpdate':
|
||||||
|
return RatingUpdate.fromJson(value);
|
||||||
case 'ReactionLevel':
|
case 'ReactionLevel':
|
||||||
return ReactionLevelTypeTransformer().decode(value);
|
return ReactionLevelTypeTransformer().decode(value);
|
||||||
case 'ReactionType':
|
case 'ReactionType':
|
||||||
|
|||||||
21
mobile/openapi/lib/model/asset_bulk_update_dto.dart
generated
21
mobile/openapi/lib/model/asset_bulk_update_dto.dart
generated
@@ -20,6 +20,7 @@ class AssetBulkUpdateDto {
|
|||||||
this.isFavorite,
|
this.isFavorite,
|
||||||
this.latitude,
|
this.latitude,
|
||||||
this.longitude,
|
this.longitude,
|
||||||
|
this.rating,
|
||||||
this.removeParent,
|
this.removeParent,
|
||||||
this.stackParentId,
|
this.stackParentId,
|
||||||
});
|
});
|
||||||
@@ -68,6 +69,16 @@ class AssetBulkUpdateDto {
|
|||||||
///
|
///
|
||||||
num? longitude;
|
num? longitude;
|
||||||
|
|
||||||
|
/// Minimum value: 0
|
||||||
|
/// Maximum value: 5
|
||||||
|
///
|
||||||
|
/// Please note: This property should have been non-nullable! Since the specification file
|
||||||
|
/// does not include a default value (using the "default:" property), however, the generated
|
||||||
|
/// source code must fall back to having a nullable type.
|
||||||
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
||||||
|
///
|
||||||
|
num? rating;
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Please note: This property should have been non-nullable! Since the specification file
|
/// Please note: This property should have been non-nullable! Since the specification file
|
||||||
/// does not include a default value (using the "default:" property), however, the generated
|
/// does not include a default value (using the "default:" property), however, the generated
|
||||||
@@ -93,6 +104,7 @@ class AssetBulkUpdateDto {
|
|||||||
other.isFavorite == isFavorite &&
|
other.isFavorite == isFavorite &&
|
||||||
other.latitude == latitude &&
|
other.latitude == latitude &&
|
||||||
other.longitude == longitude &&
|
other.longitude == longitude &&
|
||||||
|
other.rating == rating &&
|
||||||
other.removeParent == removeParent &&
|
other.removeParent == removeParent &&
|
||||||
other.stackParentId == stackParentId;
|
other.stackParentId == stackParentId;
|
||||||
|
|
||||||
@@ -106,11 +118,12 @@ class AssetBulkUpdateDto {
|
|||||||
(isFavorite == null ? 0 : isFavorite!.hashCode) +
|
(isFavorite == null ? 0 : isFavorite!.hashCode) +
|
||||||
(latitude == null ? 0 : latitude!.hashCode) +
|
(latitude == null ? 0 : latitude!.hashCode) +
|
||||||
(longitude == null ? 0 : longitude!.hashCode) +
|
(longitude == null ? 0 : longitude!.hashCode) +
|
||||||
|
(rating == null ? 0 : rating!.hashCode) +
|
||||||
(removeParent == null ? 0 : removeParent!.hashCode) +
|
(removeParent == null ? 0 : removeParent!.hashCode) +
|
||||||
(stackParentId == null ? 0 : stackParentId!.hashCode);
|
(stackParentId == null ? 0 : stackParentId!.hashCode);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() => 'AssetBulkUpdateDto[dateTimeOriginal=$dateTimeOriginal, duplicateId=$duplicateId, ids=$ids, isArchived=$isArchived, isFavorite=$isFavorite, latitude=$latitude, longitude=$longitude, removeParent=$removeParent, stackParentId=$stackParentId]';
|
String toString() => 'AssetBulkUpdateDto[dateTimeOriginal=$dateTimeOriginal, duplicateId=$duplicateId, ids=$ids, isArchived=$isArchived, isFavorite=$isFavorite, latitude=$latitude, longitude=$longitude, rating=$rating, removeParent=$removeParent, stackParentId=$stackParentId]';
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
final json = <String, dynamic>{};
|
final json = <String, dynamic>{};
|
||||||
@@ -145,6 +158,11 @@ class AssetBulkUpdateDto {
|
|||||||
} else {
|
} else {
|
||||||
// json[r'longitude'] = null;
|
// json[r'longitude'] = null;
|
||||||
}
|
}
|
||||||
|
if (this.rating != null) {
|
||||||
|
json[r'rating'] = this.rating;
|
||||||
|
} else {
|
||||||
|
// json[r'rating'] = null;
|
||||||
|
}
|
||||||
if (this.removeParent != null) {
|
if (this.removeParent != null) {
|
||||||
json[r'removeParent'] = this.removeParent;
|
json[r'removeParent'] = this.removeParent;
|
||||||
} else {
|
} else {
|
||||||
@@ -175,6 +193,7 @@ class AssetBulkUpdateDto {
|
|||||||
isFavorite: mapValueOfType<bool>(json, r'isFavorite'),
|
isFavorite: mapValueOfType<bool>(json, r'isFavorite'),
|
||||||
latitude: num.parse('${json[r'latitude']}'),
|
latitude: num.parse('${json[r'latitude']}'),
|
||||||
longitude: num.parse('${json[r'longitude']}'),
|
longitude: num.parse('${json[r'longitude']}'),
|
||||||
|
rating: num.parse('${json[r'rating']}'),
|
||||||
removeParent: mapValueOfType<bool>(json, r'removeParent'),
|
removeParent: mapValueOfType<bool>(json, r'removeParent'),
|
||||||
stackParentId: mapValueOfType<String>(json, r'stackParentId'),
|
stackParentId: mapValueOfType<String>(json, r'stackParentId'),
|
||||||
);
|
);
|
||||||
|
|||||||
15
mobile/openapi/lib/model/exif_response_dto.dart
generated
15
mobile/openapi/lib/model/exif_response_dto.dart
generated
@@ -32,6 +32,7 @@ class ExifResponseDto {
|
|||||||
this.modifyDate,
|
this.modifyDate,
|
||||||
this.orientation,
|
this.orientation,
|
||||||
this.projectionType,
|
this.projectionType,
|
||||||
|
this.rating,
|
||||||
this.state,
|
this.state,
|
||||||
this.timeZone,
|
this.timeZone,
|
||||||
});
|
});
|
||||||
@@ -74,6 +75,8 @@ class ExifResponseDto {
|
|||||||
|
|
||||||
String? projectionType;
|
String? projectionType;
|
||||||
|
|
||||||
|
num? rating;
|
||||||
|
|
||||||
String? state;
|
String? state;
|
||||||
|
|
||||||
String? timeZone;
|
String? timeZone;
|
||||||
@@ -99,6 +102,7 @@ class ExifResponseDto {
|
|||||||
other.modifyDate == modifyDate &&
|
other.modifyDate == modifyDate &&
|
||||||
other.orientation == orientation &&
|
other.orientation == orientation &&
|
||||||
other.projectionType == projectionType &&
|
other.projectionType == projectionType &&
|
||||||
|
other.rating == rating &&
|
||||||
other.state == state &&
|
other.state == state &&
|
||||||
other.timeZone == timeZone;
|
other.timeZone == timeZone;
|
||||||
|
|
||||||
@@ -124,11 +128,12 @@ class ExifResponseDto {
|
|||||||
(modifyDate == null ? 0 : modifyDate!.hashCode) +
|
(modifyDate == null ? 0 : modifyDate!.hashCode) +
|
||||||
(orientation == null ? 0 : orientation!.hashCode) +
|
(orientation == null ? 0 : orientation!.hashCode) +
|
||||||
(projectionType == null ? 0 : projectionType!.hashCode) +
|
(projectionType == null ? 0 : projectionType!.hashCode) +
|
||||||
|
(rating == null ? 0 : rating!.hashCode) +
|
||||||
(state == null ? 0 : state!.hashCode) +
|
(state == null ? 0 : state!.hashCode) +
|
||||||
(timeZone == null ? 0 : timeZone!.hashCode);
|
(timeZone == null ? 0 : timeZone!.hashCode);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String toString() => 'ExifResponseDto[city=$city, country=$country, dateTimeOriginal=$dateTimeOriginal, description=$description, exifImageHeight=$exifImageHeight, exifImageWidth=$exifImageWidth, exposureTime=$exposureTime, fNumber=$fNumber, fileSizeInByte=$fileSizeInByte, focalLength=$focalLength, iso=$iso, latitude=$latitude, lensModel=$lensModel, longitude=$longitude, make=$make, model=$model, modifyDate=$modifyDate, orientation=$orientation, projectionType=$projectionType, state=$state, timeZone=$timeZone]';
|
String toString() => 'ExifResponseDto[city=$city, country=$country, dateTimeOriginal=$dateTimeOriginal, description=$description, exifImageHeight=$exifImageHeight, exifImageWidth=$exifImageWidth, exposureTime=$exposureTime, fNumber=$fNumber, fileSizeInByte=$fileSizeInByte, focalLength=$focalLength, iso=$iso, latitude=$latitude, lensModel=$lensModel, longitude=$longitude, make=$make, model=$model, modifyDate=$modifyDate, orientation=$orientation, projectionType=$projectionType, rating=$rating, state=$state, timeZone=$timeZone]';
|
||||||
|
|
||||||
Map<String, dynamic> toJson() {
|
Map<String, dynamic> toJson() {
|
||||||
final json = <String, dynamic>{};
|
final json = <String, dynamic>{};
|
||||||
@@ -227,6 +232,11 @@ class ExifResponseDto {
|
|||||||
} else {
|
} else {
|
||||||
// json[r'projectionType'] = null;
|
// json[r'projectionType'] = null;
|
||||||
}
|
}
|
||||||
|
if (this.rating != null) {
|
||||||
|
json[r'rating'] = this.rating;
|
||||||
|
} else {
|
||||||
|
// json[r'rating'] = null;
|
||||||
|
}
|
||||||
if (this.state != null) {
|
if (this.state != null) {
|
||||||
json[r'state'] = this.state;
|
json[r'state'] = this.state;
|
||||||
} else {
|
} else {
|
||||||
@@ -281,6 +291,9 @@ class ExifResponseDto {
|
|||||||
modifyDate: mapDateTime(json, r'modifyDate', r''),
|
modifyDate: mapDateTime(json, r'modifyDate', r''),
|
||||||
orientation: mapValueOfType<String>(json, r'orientation'),
|
orientation: mapValueOfType<String>(json, r'orientation'),
|
||||||
projectionType: mapValueOfType<String>(json, r'projectionType'),
|
projectionType: mapValueOfType<String>(json, r'projectionType'),
|
||||||
|
rating: json[r'rating'] == null
|
||||||
|
? null
|
||||||
|
: num.parse('${json[r'rating']}'),
|
||||||
state: mapValueOfType<String>(json, r'state'),
|
state: mapValueOfType<String>(json, r'state'),
|
||||||
timeZone: mapValueOfType<String>(json, r'timeZone'),
|
timeZone: mapValueOfType<String>(json, r'timeZone'),
|
||||||
);
|
);
|
||||||
|
|||||||
98
mobile/openapi/lib/model/rating_response.dart
generated
Normal file
98
mobile/openapi/lib/model/rating_response.dart
generated
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class RatingResponse {
|
||||||
|
/// Returns a new [RatingResponse] instance.
|
||||||
|
RatingResponse({
|
||||||
|
this.enabled = false,
|
||||||
|
});
|
||||||
|
|
||||||
|
bool enabled;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) => identical(this, other) || other is RatingResponse &&
|
||||||
|
other.enabled == enabled;
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode =>
|
||||||
|
// ignore: unnecessary_parenthesis
|
||||||
|
(enabled.hashCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() => 'RatingResponse[enabled=$enabled]';
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final json = <String, dynamic>{};
|
||||||
|
json[r'enabled'] = this.enabled;
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a new [RatingResponse] instance and imports its values from
|
||||||
|
/// [value] if it's a [Map], null otherwise.
|
||||||
|
// ignore: prefer_constructors_over_static_methods
|
||||||
|
static RatingResponse? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
|
||||||
|
return RatingResponse(
|
||||||
|
enabled: mapValueOfType<bool>(json, r'enabled')!,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<RatingResponse> listFromJson(dynamic json, {bool growable = false,}) {
|
||||||
|
final result = <RatingResponse>[];
|
||||||
|
if (json is List && json.isNotEmpty) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = RatingResponse.fromJson(row);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toList(growable: growable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Map<String, RatingResponse> mapFromJson(dynamic json) {
|
||||||
|
final map = <String, RatingResponse>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
final value = RatingResponse.fromJson(entry.value);
|
||||||
|
if (value != null) {
|
||||||
|
map[entry.key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// maps a json object with a list of RatingResponse-objects as value to a dart map
|
||||||
|
static Map<String, List<RatingResponse>> mapListFromJson(dynamic json, {bool growable = false,}) {
|
||||||
|
final map = <String, List<RatingResponse>>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
// ignore: parameter_assignments
|
||||||
|
json = json.cast<String, dynamic>();
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
map[entry.key] = RatingResponse.listFromJson(entry.value, growable: growable,);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{
|
||||||
|
'enabled',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
107
mobile/openapi/lib/model/rating_update.dart
generated
Normal file
107
mobile/openapi/lib/model/rating_update.dart
generated
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
//
|
||||||
|
// AUTO-GENERATED FILE, DO NOT MODIFY!
|
||||||
|
//
|
||||||
|
// @dart=2.18
|
||||||
|
|
||||||
|
// ignore_for_file: unused_element, unused_import
|
||||||
|
// ignore_for_file: always_put_required_named_parameters_first
|
||||||
|
// ignore_for_file: constant_identifier_names
|
||||||
|
// ignore_for_file: lines_longer_than_80_chars
|
||||||
|
|
||||||
|
part of openapi.api;
|
||||||
|
|
||||||
|
class RatingUpdate {
|
||||||
|
/// Returns a new [RatingUpdate] instance.
|
||||||
|
RatingUpdate({
|
||||||
|
this.enabled,
|
||||||
|
});
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Please note: This property should have been non-nullable! Since the specification file
|
||||||
|
/// does not include a default value (using the "default:" property), however, the generated
|
||||||
|
/// source code must fall back to having a nullable type.
|
||||||
|
/// Consider adding a "default:" property in the specification file to hide this note.
|
||||||
|
///
|
||||||
|
bool? enabled;
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool operator ==(Object other) => identical(this, other) || other is RatingUpdate &&
|
||||||
|
other.enabled == enabled;
|
||||||
|
|
||||||
|
@override
|
||||||
|
int get hashCode =>
|
||||||
|
// ignore: unnecessary_parenthesis
|
||||||
|
(enabled == null ? 0 : enabled!.hashCode);
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() => 'RatingUpdate[enabled=$enabled]';
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final json = <String, dynamic>{};
|
||||||
|
if (this.enabled != null) {
|
||||||
|
json[r'enabled'] = this.enabled;
|
||||||
|
} else {
|
||||||
|
// json[r'enabled'] = null;
|
||||||
|
}
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns a new [RatingUpdate] instance and imports its values from
|
||||||
|
/// [value] if it's a [Map], null otherwise.
|
||||||
|
// ignore: prefer_constructors_over_static_methods
|
||||||
|
static RatingUpdate? fromJson(dynamic value) {
|
||||||
|
if (value is Map) {
|
||||||
|
final json = value.cast<String, dynamic>();
|
||||||
|
|
||||||
|
return RatingUpdate(
|
||||||
|
enabled: mapValueOfType<bool>(json, r'enabled'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
static List<RatingUpdate> listFromJson(dynamic json, {bool growable = false,}) {
|
||||||
|
final result = <RatingUpdate>[];
|
||||||
|
if (json is List && json.isNotEmpty) {
|
||||||
|
for (final row in json) {
|
||||||
|
final value = RatingUpdate.fromJson(row);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result.toList(growable: growable);
|
||||||
|
}
|
||||||
|
|
||||||
|
static Map<String, RatingUpdate> mapFromJson(dynamic json) {
|
||||||
|
final map = <String, RatingUpdate>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
final value = RatingUpdate.fromJson(entry.value);
|
||||||
|
if (value != null) {
|
||||||
|
map[entry.key] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
// maps a json object with a list of RatingUpdate-objects as value to a dart map
|
||||||
|
static Map<String, List<RatingUpdate>> mapListFromJson(dynamic json, {bool growable = false,}) {
|
||||||
|
final map = <String, List<RatingUpdate>>{};
|
||||||
|
if (json is Map && json.isNotEmpty) {
|
||||||
|
// ignore: parameter_assignments
|
||||||
|
json = json.cast<String, dynamic>();
|
||||||
|
for (final entry in json.entries) {
|
||||||
|
map[entry.key] = RatingUpdate.listFromJson(entry.value, growable: growable,);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The list of required keys that must be present in a JSON.
|
||||||
|
static const requiredKeys = <String>{
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user