Compare commits

...

169 Commits

Author SHA1 Message Date
mertalev
ea33cd9515 remove version flag 2024-05-14 20:40:36 -04:00
mertalev
e9ceb8b017 fix mutating config 2024-05-14 20:40:36 -04:00
mertalev
94030d809f add hw decode toggle 2024-05-14 20:40:36 -04:00
mertalev
4db0717a08 update api 2024-05-14 20:40:36 -04:00
mertalev
b6808c1675 separate configs for hw/sw 2024-05-14 20:40:36 -04:00
mertalev
a2b7403978 fix software tone-mapping not being applied 2024-05-14 20:40:36 -04:00
mertalev
1556d978ed toggle for hardware decoding, software / hardware decoding for nvenc and rkmpp 2024-05-14 20:40:36 -04:00
mertalev
48a71ac4d9 refactor 2024-05-14 20:38:08 -04:00
mertalev
adf620331c tweak settings 2024-05-14 20:38:08 -04:00
mertalev
c92637df80 update nvenc options 2024-05-14 20:38:08 -04:00
mertalev
3356b023c5 tweaks 2024-05-14 20:38:08 -04:00
mertalev
a2e8b657e6 libplacebo for nvenc
update dockerfile
2024-05-14 20:38:08 -04:00
mertalev
f420befc15 use arrayContaining 2024-05-14 20:37:56 -04:00
renovate[bot]
efb844c6cd fix(deps): update dependency @zoom-image/svelte to v0.2.12 (#9487)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 19:33:53 -04:00
Alex The Bot
88d4338348 Version v1.105.1 2024-05-14 21:31:24 +00:00
Jason Rasmussen
ce7bbe88f9 fix(server): skip originals when deleting a library (#9496) 2024-05-14 16:29:57 -05:00
kleinMaggus
d62e90424e feat(web,mobile) Allow videos to be looped in the detail viewer (#8615)
* First version of video looping for the web

* Use prop for slideshow state

* refactor asset settings and add autoloop video setting

* rename variables and adjust description

* loop videos based on user settings in gallery viewer

* make asset viewer setting a stateless widget

* do not update video playback value if looping is enabled

* add some translations

* adjust description

* add missing id

* WIP

* chore: clean up

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-14 14:31:47 -05:00
Jason Rasmussen
0f129cae4a refactor(server): feature flags (#9492) 2024-05-14 15:31:36 -04:00
renovate[bot]
5583635947 chore(deps): update python:3.11-bookworm docker digest to 96de1ea (#9490) 2024-05-14 19:13:56 +00:00
renovate[bot]
b7715305b3 chore(deps): update dependency fastlane to v2.220.0 (#9491)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 14:12:27 -05:00
shenlong
6c008176c9 deps(mobile): update dependency auto_route to v8 (#9456)
deps: update dependency auto_route to v8

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-14 14:07:31 -05:00
renovate[bot]
72b1d582ba chore(deps): update dependency flutter_lints to v4 (#9488)
* chore(deps): update dependency flutter_lints to v4

* fix lints

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-14 18:52:07 +00:00
Jason Rasmussen
7b1112f3e3 refactor(server): system config (#9484) 2024-05-14 14:43:49 -04:00
renovate[bot]
42d0fc85ca chore(deps): update mobile (#9453)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 13:39:48 -05:00
Alex Tran
d32b621750 Merge branch 'main' of github.com:immich-app/immich 2024-05-14 13:38:15 -05:00
Alex Tran
d551003311 chore: post release tasks 2024-05-14 13:38:12 -05:00
dependabot[bot]
dd64379a4e chore(deps-dev): bump flask-cors from 4.0.0 to 4.0.1 in /machine-learning (#9485) 2024-05-14 14:06:40 -04:00
dependabot[bot]
c1cdda0ac4 chore(deps-dev): bump jinja2 from 3.1.3 to 3.1.4 in /machine-learning (#9483) 2024-05-14 17:08:29 +00:00
Alex The Bot
596ab39293 Version v1.105.0 2024-05-14 17:07:25 +00:00
renovate[bot]
31e57d27a7 fix(deps): update dependency @zoom-image/svelte to v0.2.11 (#9482)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 18:04:44 +01:00
Alex
f28b4e7c99 fix(server): sync issue when delete remotes assets (#9479) 2024-05-14 11:51:15 -05:00
dependabot[bot]
f01cf63c70 chore(deps): bump tqdm from 4.66.1 to 4.66.3 in /machine-learning (#9481) 2024-05-14 16:51:07 +00:00
dependabot[bot]
e55c5091d9 chore(deps-dev): bump werkzeug from 3.0.1 to 3.0.3 in /machine-learning (#9480) 2024-05-14 16:37:50 +00:00
klahr
e8cdf1c300 Added Swedish translation of README. (#9464) 2024-05-14 10:35:52 -05:00
Fynn Petersen-Frey
116043b2b4 feat(mobile): use efficient sync (#8842)
* feat(mobile): use efficient sync

review feedback

* adapt to changed  server endpoints

* formatting

* fix memory lane bug

* fix: bad merge

* fix call not returning correct number of asset

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-14 10:35:37 -05:00
Michel Heusschen
acc611a3d9 fix(web): admin settings number input validation (#9470)
* fix(web): admin settings number input validation

* fix import by creating *.ts file

* just ignore import error
2024-05-14 15:35:16 +00:00
Fynn Petersen-Frey
4d7aa7effd fix(server): new full sync return stacked assets individually (#9189)
* fix(server): new full sync return stacked assets individually

* return archived partner assets (like old getAllAssets)

* fix

* fix test

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-14 10:30:33 -05:00
renovate[bot]
77b8c2f330 chore(deps): update machine-learning (#9478)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 10:57:15 -04:00
renovate[bot]
09e9e91b6a fix(deps): update machine-learning (#9304)
* fix(deps): update machine-learning

* use fastapi-slim

* fix lock

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2024-05-14 14:46:20 +00:00
Mert
ad915ccd64 docs(ml): update link (#9477)
update link
2024-05-14 15:34:36 +01:00
Zack Pollard
1ea55d642e feat(server): run microservices in worker thread (#9426)
feat: start microservices in worker thread and add internal microservices for the server
2024-05-14 15:28:20 +01:00
renovate[bot]
3d5e55bdaa chore(deps): update base-image to v20240514 (major) (#9469)
chore(deps): update base-image to v20240514

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 08:55:09 -04:00
Jason Rasmussen
46868b3336 refactor(server): logger (#9472) 2024-05-14 08:48:49 -04:00
Ben McCann
b1ca5455b5 docs: remove mention of external assets being read-only (#9465) 2024-05-14 11:02:26 +01:00
xiagw
462f0f76a4 fix install.sh add random password for .env (#9282)
* fix install.sh add random password for .env

* fix generate random password

* remove comment
2024-05-14 10:58:28 +01:00
renovate[bot]
3d4ae9c210 chore(deps): update node.js to 53108f6 (#9450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 10:53:04 +01:00
Snowknight26
f2be310aec fix(web): decrease asset viewer navigation area size (#9455)
* fix(web): decrease asset viewer navigation area size

* Remove unneeded class

* Reduce wrapping div area
2024-05-14 10:52:39 +01:00
Eric Barch
6fd6a8ba15 fix(server): addAssets and removeAssets handle duplicate assetIds (#9436)
* fix(server): addAssets and removeAssets handle duplicate assetIds

* chore(server): Add e2e tests for duplicate album additions and removals
2024-05-14 03:29:32 +00:00
David Munn
e479e556bc Fix typo in error page title (#9451)
Fixes #9447
2024-05-14 02:14:44 +00:00
renovate[bot]
bf036f2f58 fix(deps): update typescript-projects (#9454)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 21:42:48 -04:00
renovate[bot]
6d575e692b chore(deps): update node.js to 291e84d (#9449)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 21:01:34 -04:00
Sushain Cherivirala
4e6aeeda4d fix(server): support special characters in library paths (#9385)
Support special characters in library paths
2024-05-13 21:44:21 +00:00
Jason Rasmussen
a05c990718 feat(web): combine auth settings (#9427) 2024-05-13 16:40:33 -04:00
Jason Rasmussen
844f5a16a1 chore(server): remove unused column (#9431)
* chore(server): remove unused column

* fix: broken migrations
2024-05-13 16:40:16 -04:00
Jason Rasmussen
1bebc7368c fix(server): regenerate (extract) motion videos (#9438) 2024-05-13 16:38:11 -04:00
Jason Rasmussen
b7ebf3152f fix(web): show w x h correctly when media is rotated (#9435) 2024-05-13 15:03:36 -05:00
Alex Tran
5985f72643 chore: post release tasks 2024-05-13 14:17:28 -05:00
Alex The Bot
a6f557c24c Version v1.104.0 2024-05-13 18:31:57 +00:00
Alex
1045957add Localizely: Translations update (#9432)
chore(mobile): translation update
2024-05-13 13:27:21 -05:00
FedericoCalzoni
540e568e9d docs: update external-library.md (#9420)
* Update external-library.md

I believe that displaying the code for both sections, even if it seems a bit repetitive, can help prevent fast readers from overlooking it

* Apply suggestions from code review

Co-authored-by: Matthew Momjian <50788000+mmomjian@users.noreply.github.com>

---------

Co-authored-by: Matthew Momjian <50788000+mmomjian@users.noreply.github.com>
2024-05-13 12:49:30 -04:00
Jason Rasmussen
9c5a2b97bf fix(server): put system config (#9425) 2024-05-13 16:29:39 +00:00
Alex
06402aa9fb chore(server): email notification button png (#9423)
* chore(server): email notification button png

* valid user name

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2024-05-13 15:36:35 +00:00
Matthew Momjian
45316f985b Update portainer install docs (#9421)
* Update portainer.md

* Update portainer.md

* chore: cleanup

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-13 09:46:38 -04:00
Andreas Gerstmayr
48927f5fb9 feat(server, web): include pictures of shared albums on map (#7439)
* feat(server, web): include pictures of shared albums on map

* run prettier

* re-create api clients

* implement suggestions from code review

* shared from partner -> shared from partners

* rename to 'include shared partner assets'

* chore: fix tsc error in server and prettier in web

* fix: include assets shared via owner albums

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-13 09:28:57 -04:00
renovate[bot]
d121903b38 fix(deps): update dependency nestjs-otel to v6 (#9415)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-13 08:23:12 -04:00
Matthew Momjian
e2a31323bb docs: add info about postgres database checksums (#9391)
* docs staging for next release

* linting

* newline

* remove old info
2024-05-13 11:23:20 +01:00
martin
aa1dc68867 feat(web): allow hiding all unnamed faces and reset hidden faces (#9378)
* feat: hide all unnamed

* feat: remove dispatch event

* pr feedback
2024-05-13 11:17:52 +01:00
Deedikjepijn
2ae44022c2 docs: update README_nl_NL.md with missing sections from english readme (#9399)
* Update README_nl_NL.md

Added missing Features for the dutch translation of the readme file,

Added "Activities" to the dutch version,

Added "star history",

Added "Contributors".

* Update README_nl_NL.md

Translated one additional word on the dutch activities panel

* Update readme_i18n/README_nl_NL.md

Co-authored-by: bo0tzz <git@bo0tzz.me>

* Update readme_i18n/README_nl_NL.md

Co-authored-by: bo0tzz <git@bo0tzz.me>

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: bo0tzz <git@bo0tzz.me>
2024-05-13 10:17:13 +00:00
Nicholas Flamy
a97e0caeb9 cho(web): Icon consistency and improvements (#9403)
* Add change from outline to regular icon in sidebar when page selected to more icons. Also change Favorites to single heart consistent with mobile app.

* Forgot to remove a few unused lines. Fixed.
2024-05-12 13:08:17 -05:00
Mert
f667c9597b chore(server): less rigid transcoding tests (#9401)
* use arrayContaining

* clean up
2024-05-12 00:04:31 -04:00
martin
8fdcabaf70 fix(web): page down shortcut (#9397)
fix: page down shortcut
2024-05-11 16:49:39 -05:00
Matthew Momjian
55a7e54011 feat(server): enable data page checksums (#9384) 2024-05-11 11:11:14 -04:00
aviv926
6f82f220b8 docs: small changes&updates (#9059)
* Updates

* Adding information to the PR Checklist

* fix  #5644

* PR feedback

* suggestions

* Revert dbname
2024-05-10 23:15:38 -05:00
Tushar Harsora
dd8d7732de fix(web): Fixed video unmutes when scrubbing (#9382)
Fixed video unmutes when scrubbing

Co-authored-by: Tushar Harsora <tushar.harsora.harsora@oracle.com>
2024-05-10 16:28:21 -04:00
Mert
bb4843747b perf: cache transcoding devices (#9381)
cache transcoding devices
2024-05-10 15:03:47 -04:00
Mert
f3fbb9b588 perf: cache getConfig (#9377)
* cache `getConfig`

* critical fix

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
2024-05-10 18:15:25 +00:00
Daniel Dietzler
35ef82ab6b docs: add discord link (#9379)
add discord link to docs
2024-05-10 12:38:35 -05:00
Alex
fa4cd74dfd fix(web): autofocus change name field (#9376) 2024-05-10 17:18:10 +00:00
Alex
fed8d11fb8 refactor(mobile): remove shared module (#9363) 2024-05-10 11:40:41 -05:00
Matthew Momjian
3a68190b99 docs: warn against use on NTFS / WSL (#9371)
* DB filesystem

* updates to requirements

* wording

* OS update

* Update environment-variables.md

* Update FAQ.mdx

* Update requirements.md
2024-05-10 11:02:48 -04:00
martin
757840c2fd fix(web): multiple fixes for people (#9343)
fix: multiple fixes for people

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-09 16:23:49 -05:00
Alex
a8abf2753e chore: put back warning banner (#9362) 2024-05-09 15:53:48 -05:00
Jason Rasmussen
8743e17528 refactor(server): auth route metadata (#9344) 2024-05-09 13:58:44 -04:00
Conner Hnatiuk
34d8879d32 fix(mobile) timeline slider no longer dissapears (#9358)
fix(mobile) added heightOffset, scrollbar accounts for main appBar and does not get squished

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-09 17:31:25 +00:00
Alex
55031cc117 Revert "feat(android) Check server is reachable before starting background backup (#8989)" (#9324)
This reverts commit 0435de50f8.
2024-05-09 12:16:53 -05:00
Snowknight26
f9dc870166 fix(web): fix logo size on shared pages (#9346) 2024-05-09 09:21:45 -05:00
Me-Mr
87053c8c0d docs: adds hyperlinks for other readme translations (#9345)
* Translation

* Translation

* fix

---------

Co-authored-by: Abdullah Karazon <abdullahkarazon@MacBook-Air.local>
2024-05-09 14:20:38 +00:00
Tushar Harsora
57429ddc76 fix(web): Selected face in search filter doesn't show border highlight when hovered in light theme (#9348)
use border-transparent only when person is not selected

Co-authored-by: Tushar Harsora <tushar.harsora.harsora@oracle.com>
2024-05-09 09:19:26 -05:00
Matthew Momjian
13a62715e4 docs: backup restore - add warning to not backup DB_DATA_LOCATION (#9353)
backup restore add warning for backing up folder
2024-05-09 09:18:52 -05:00
Me-Mr
f3407860a1 chore: add Arabic translations to readme (#9342)
* Translation

* Translation

---------

Co-authored-by: Abdullah Karazon <abdullahkarazon@MacBook-Air.local>
2024-05-08 20:03:25 -04:00
renovate[bot]
004074b25a chore(deps): update prom/prometheus docker digest to 5c43564 (#9341)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-08 19:20:58 -04:00
The Linux Cast
98f87b275b docs: update portainer.md (#9337)
Changed #3 to lowercase, as Portainer stacks do not accept capital letters.
2024-05-08 16:54:20 -05:00
Jason Rasmussen
8e9895df27 chore(server): remove unused deps (#9334) 2024-05-08 16:39:35 -04:00
Mert
1167f0f2b7 feat(server): optimize person thumbnail generation (#7513)
* do crop and resize together

* redundant `pipelineColorspace` call

* formatting

* fix rebase

* handle orientation

* remove unused import

* formatting

* use oriented dimensions for half size calculation

* default case for orientation

* simplify orientation code

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-08 08:09:34 -05:00
Me-Mr
81e4b69caf chore: arabic translations (#9325)
* Add Arabic translations for readme file

* Update ReadMe with Arabic Translations

* Delete readme_i18n/README_ar_JO.md

* Updated Arabic Translations for Readme

---------

Co-authored-by: Abdullah Karazon <abdullahkarazon@MacBook-Air.local>
2024-05-08 00:03:41 -04:00
Dhrumil Shah
e4b777ecef feat(mobile): Add pull to refresh to sharing page (#9274)
* Add pull to refresh to sharing page

* Fix format
2024-05-07 22:52:56 -05:00
Jason Rasmussen
4e7966c8e8 chore: move test assets submodule (#9321) 2024-05-07 22:33:17 -05:00
renovate[bot]
f10fb0723d chore(deps): update mobile (#7229)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 22:24:37 -05:00
Dhrumil Shah
ae08abde24 fix(mobile): Fix asset selector title bar text (#9273)
Fix title bar text
2024-05-07 22:24:30 -05:00
dependabot[bot]
3790d8fcbc chore(deps): bump tj-actions/verify-changed-files from 19 to 20 (#9280)
Bumps [tj-actions/verify-changed-files](https://github.com/tj-actions/verify-changed-files) from 19 to 20.
- [Release notes](https://github.com/tj-actions/verify-changed-files/releases)
- [Changelog](https://github.com/tj-actions/verify-changed-files/blob/main/HISTORY.md)
- [Commits](https://github.com/tj-actions/verify-changed-files/compare/v19...v20)

---
updated-dependencies:
- dependency-name: tj-actions/verify-changed-files
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-07 22:22:22 -05:00
Jan
535c7a8618 Random Endpoint use querybuilder and return exifInfo (#9301)
* Random Endpoint use querybuilder and return exifInfo

* Add GenerateSql

* Commit missing sql changes
2024-05-07 23:14:04 -04:00
renovate[bot]
725d594027 chore(deps): update node.js to fac6f74 (#9317)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 23:12:21 -04:00
renovate[bot]
8c56c1c22b chore(deps): update typescript-projects (#9314)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 23:07:26 -04:00
Snowknight26
6a5bc156a6 fix(web): allow deselecting all assets from select bar (#9320)
* fix(web): allow deselecting all assets from select bar

* Change deselect logo

* select remove

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2024-05-08 03:05:19 +00:00
aryiu
5eaf489ecf fix(mobile): fix ca-CA.json file name (#9288)
Update and rename ca.json to ca-CA.json
2024-05-08 03:03:14 +00:00
renovate[bot]
8c54c13307 chore(deps): update node.js to fe31b16 (#9318)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 23:01:04 -04:00
Alex
675fdc1d93 chore: remove funding file (#9319) 2024-05-07 22:35:57 -04:00
Jason Rasmussen
e79d1b1ec2 refactor: create album users (#9315) 2024-05-07 16:38:09 -04:00
vovchyk bratyk
e9f99673b9 docs: add custom map styles community guide (#9311)
* Create custom-map-styles.md

* add immich_map_styles_publish.png

* Update custom-map-styles.md
2024-05-07 20:17:21 +00:00
Alex
ee6995783f fix(mobile): add user to album using new dto property (#9312)
* fix(mobile): add user to album using new DTO property

* fix(mobile): add user to album using new DTO property
2024-05-07 20:00:38 +00:00
renovate[bot]
78b5990d2a chore(deps): update dependency @types/nodemailer to v6.4.15 (#9309)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 15:15:24 -04:00
renovate[bot]
f13100e261 fix(deps): update dependency exiftool-vendored to v26 (#9294)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 15:14:49 -04:00
renovate[bot]
21fe829a2c chore(deps): update base-image to v20240507 (major) (#9303)
chore(deps): update base-image to v20240507

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 11:10:21 -04:00
renovate[bot]
ad404d79d4 fix(deps): update typescript-projects (#9293)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 11:07:50 -04:00
Alex
5806a3ce25 refactor(mobile): widgets (#9291)
* refactor(mobile): widgets

* update
2024-05-06 23:04:21 -05:00
Alex
7520ffd6c3 fix(mobile): allow select empty album as backup album (#9290) 2024-05-06 23:00:52 -05:00
Alex
bbb9453e1a fix(server): show partners archived photos on mobile timeline (#9194)
fix(mobile): show partners archived photos on timeline
2024-05-06 22:49:56 -05:00
renovate[bot]
8ff397527f chore(deps): update machine-learning (#9292) 2024-05-06 22:21:24 -04:00
Alex
a2c5eaa73e Localizely: Translations update (#9287)
chore(mobile): translation update
2024-05-06 15:39:53 -05:00
Tushar Harsora
065f1410f8 chore(mobile) Linked pt-BR.json with Mobile app and localizely.yml (#9281)
Linked pt-BR.json with Android app and localizely.yml

Co-authored-by: Tushar Harsora <tushar.harsora.harsora@oracle.com>
2024-05-06 11:22:27 -05:00
Vietbao Tran
bc31404909 fix(web): stream 360 video instead of fetching entire video (#9279) 2024-05-06 11:20:20 -05:00
martin
f08e9a4447 fix(web): click on face in detail-panel (#9271)
fix: click on face in detail-panel
2024-05-05 18:11:55 -04:00
martin
cf79bc9ed7 fix(server, web): reassigning faces (#9265)
* fix: reassiging faces

* fix: rename
2024-05-05 13:16:44 -05:00
Alex
090592e5ae refactor(mobile): pages (#9246)
* refactor(mobile): pages

* refactor

* album pages

* pages

* pages

* use *.page.dart

* representation

* put back module
2024-05-05 13:14:49 -05:00
AmAn Sharma
398d99a052 fix(web): Individual Photo Sharing with Album Link #8887 (#9264) 2024-05-05 08:00:03 -04:00
Tushar Harsora
c18beddef8 fix(mobile): Reset dropdown values in search by location on mobile (#9261)
* set derived inputs as null if source input changes

* format

---------

Co-authored-by: Tushar Harsora <tushar.harsora.harsora@oracle.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-04 22:44:34 +00:00
Matthew Momjian
dc4f7bef69 Specify PowerShell for win backup/restore (#9262)
Update backup-and-restore.md
2024-05-04 16:23:53 -04:00
Ben
48b490f5e9 feat(web): increase usage of CircleIconButton (#9256) 2024-05-04 14:29:50 -04:00
Jason Rasmussen
5b87abb021 feat(server): read-write external assets (#9235)
* refactor: remove isReadOnly and isExternal usages

* chore: open api

* fix: linting

* remove mobile isReadOnly dependency

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-03 15:34:57 -04:00
Alon Budker
d26ac431b8 docs: update post-install-steps documentation (#9239)
* docs: update post-install-steps documentation

* fix: format code with prettier (ci)
2024-05-03 08:05:34 -04:00
bo0tzz
d7f53d93a6 chore(docs): Link to helm chart README (#9238) 2024-05-03 08:03:45 -04:00
TruongSinh Tran-Nguyen
ec4e6a143e feat(web): determine duplication of upload on client (#8825)
* web upload duplicate verification on client

* _

* fix formating

* chore: clean up

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-02 17:26:13 -04:00
Min Idzelis
7961d00e56 fix(web): Configure web's immich sdk to use event.fetch (#9233)
* Set event.fetch on @immich/sdk

* format
2024-05-02 16:12:01 -05:00
Alex
c1253663b7 refactor(mobile): services and providers (#9232)
* refactor(mobile): services and provider

* providers
2024-05-02 15:59:14 -05:00
Jason Rasmussen
ec4eb7cd19 feat(server): immich checksum header (#9229)
* feat: dedupe by checksum header

* chore: open api
2024-05-02 15:42:26 -04:00
bo0tzz
16706f7f49 chore: Remove sponsor link from homepage (#9226) 2024-05-02 11:42:54 -05:00
bo0tzz
bf100dcde1 chore: Remove donation info from readme_i18n (#9225) 2024-05-02 17:17:14 +01:00
aviv926
c2a525170e docs: add information about Shared Albums & Assets feature (#8626)
* Shared Albums & Assets

* npm run format:fix

* Files Custom Locations

* Revert "Files Custom Locations"

This reverts commit 5209845cae.

* add info: archive size limited
2024-05-02 16:57:42 +01:00
Ryan Ribeiro
0bf923feb4 chore(readme): add Brazilian Portuguese readme (#7107) 2024-05-02 16:44:32 +01:00
jzhangdev
42f03af2dc feat(mobile): play motion video with long press gesture support (#6543) 2024-05-02 15:37:39 +00:00
Nicolò
9bce3417e9 feat(server): email notifications (#8447)
* feat(server): add `react-mail` as mail template engine and `nodemailer`

* feat(server): add `smtp` related configs to `SystemConfig`

* feat(web): add page for SMTP settings

* feat(server): add `react-email.adapter`

This adapter render the React-Email into HTML and plain/text email.
The output is set as the body of the email.

* feat(server): add `MailRepository` and `MailService`

Allow to use the NestJS-modules-mailer module to send SMTP emails.
This is the base transport for the `NotificationRepository`

* feat(server): register the job dispatcher and Job for async email

This allows to queue email sending jobs for the `EmailService`.

* feat(server): add `NotificationRepository` and `NotificationService`

This act as a middleware to properly route the notification to the right transport.
As POC I've only implemented a simple SMTP transport.

* feat(server): add `welcome` email template

* feat(server): add the first notification on `createUser` in `UserService`

This trigger an event for the `NotificationRepository` that once processes
by using the global config and per-user config will carry the payload to the right notification transport.

* chore: clean up

* chore: clean up web

* fix: type errors"

* fix package lock

* fix mail sending, option to ignore certs

* chore: open api

* chore: clean up

* remove unused import

* feat: email feature flag

* chore: remove unused interface

* small styling

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-05-02 15:43:18 +01:00
aviv926
4b86c7a298 docs: New Futo milestones (#9211)
* new Futo milestones

* npm fix

* change to DateType.DATE

* Update docs/src/pages/milestones.tsx

* Update docs/src/pages/milestones.tsx

* fix: remove release from futo milestone

---------

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2024-05-02 00:47:09 +00:00
Zack Pollard
a2c040a47f fix(docs): allow no release specified for milestone (#9212)
fix(docs): make release optional in milestones
default to tag if not specified when tag is also specified
2024-05-02 01:33:17 +01:00
bo0tzz
959b3f05d2 chore: Move mobile backup FAQ to correct section (#9200) 2024-05-02 01:33:17 +01:00
Mert
a0c43a2b5a fix(server): person thumbnails not being queued during thumbnail generation (#9195)
use face id instead of asset id
2024-05-02 01:33:17 +01:00
Yu-Cheng, Xia
b7d0bc16bb fix(web): update assets after delete (#9151)
* upadte assets after delete

* fix lint/format

* handle archive action

* chore: cleanup

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-02 01:33:17 +01:00
renovate[bot]
ef09fc4157 fix(deps): update typescript-projects (#9187)
* fix(deps): update typescript-projects

* chore: missing dependency

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-05-02 01:33:17 +01:00
Jason Rasmussen
84d638645d docs: link to blog in announcement (#9208) 2024-05-02 01:33:17 +01:00
Zack Pollard
64e9791a3f chore: remove donation links from the readme, docs and release notes template (#9207) 2024-05-02 01:33:17 +01:00
Alex Tran
0aa3b29eeb feat: dream comes true 2024-05-02 01:33:17 +01:00
Zack Pollard
0a598ae1b8 chore: fvm and node dependency updates and pinning (#9203)
* chore(mobile): ignore .fvm directory and update .fvmrc version

* chore(cli): add nvm and volta node versioning files/config

* chore(docs): add nvm and volta node versioning files/config, bump to node v20

* chore(server): add nvm node versioning file

* chore(web): add nvm and volta node versioning files/config

* chore(e2e): add nvm and volta node versioning files/config
2024-05-01 14:05:18 +01:00
Alex
c0495ca23f fix(mobile): show all places don't show all places (#9193)
fix(mobile): show all places doesn't show all places
2024-04-30 22:14:33 -05:00
Alex
f057fe045e refactor(mobile): entities and models (#9182)
* refactor(mobile): entities

* store entity

* refactor: models

* remove domain

* save all

* bad refactor
2024-04-30 21:36:40 -05:00
renovate[bot]
eba42b245d chore(deps): update base-image to v20240430 (major) (#9179)
chore(deps): update base-image to v20240430

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-30 22:04:28 -04:00
Alex
2cf63eeeab fix(web): missing add photos button in album when viewed as owner (#9183) 2024-04-30 15:38:25 -05:00
renovate[bot]
926de96ce6 chore(deps): update dependency ruff to v0.4.2 (#9186) 2024-04-30 14:38:05 -04:00
renovate[bot]
374a9b557b chore(deps): update mambaorg/micromamba:bookworm-slim docker digest to f4c5c3c (#9181) 2024-04-30 13:37:29 -04:00
renovate[bot]
9e79a23bbe fix(deps): update typescript-projects (#9169)
* fix(deps): update typescript-projects

* fix: type error

* fix: more imports

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-30 09:49:14 -04:00
renovate[bot]
3212069eec chore(deps): update node.js to 7a91aa3 (#9166)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-29 22:25:41 -04:00
renovate[bot]
c1636ef7ab chore(deps): update machine-learning (#9168)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-30 02:24:09 +00:00
Ben McCann
0b0ab99016 chore: upgrade docusaurus-preset-openapi to remove axios (#9167) 2024-04-29 22:19:18 -04:00
renovate[bot]
4f097d9106 chore(deps): update node.js to 142644a (#9165)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-29 22:15:22 -04:00
Yoonjae Choi
461f2595b5 fix(web): Prevent DELETE key from clearing DateInput in modal (#8846)
* fix(web): Prevent DELETE key from clearing DateInput in modal (#8804)

* chore: test prettier

* fix: stop propagation

* fix: stop propagation in modal

* fix: remove unnecessary function and revise lint issue

* chore: cleanup

---------

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-29 17:59:32 -04:00
martin
5722c830ff refactor(web): search people (#9082)
* refactor: search people

* fix: test

* fix: timeout

* fix: callbacks

* fix: simplify

* remove unused var

* refactor: rename file

* fix: focus when deleting last character

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
2024-04-29 21:38:15 +00:00
Ben
72ce81f0c2 feat(web,a11y): replace IconButton with CircleIconButton (#9153)
* feat(web,a11y): replace IconButton with CircleIconButton

* wip: cleanup

* wip: bring back viewbox

* fix: add label to search bar
2024-04-29 17:17:22 -04:00
renovate[bot]
0c9bf2835d chore(deps): update dependency supertest to v7 (#9156)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-29 14:44:56 -04:00
Alex The Bot
ba18776fc2 Version v1.103.1 2024-04-29 17:53:49 +00:00
Alex
fdae0dcbe5 fix(web): permanent url for partner page (#9158)
* fix(web): permanent url for partner page

* fix: format
2024-04-29 12:16:17 -05:00
Alex
25262b644f chore: post release tasks 2024-04-29 10:31:50 -05:00
825 changed files with 19909 additions and 12759 deletions

View File

@@ -23,7 +23,6 @@ server/node_modules/
server/upload/ server/upload/
server/dist/ server/dist/
server/www/ server/www/
server/test/assets/
web/node_modules/ web/node_modules/
web/coverage/ web/coverage/

5
.github/FUNDING.yml vendored
View File

@@ -1,5 +0,0 @@
# These are supported funding model platforms
github: immich-app
liberapay: alex.tran1502
custom: https://www.buymeacoffee.com/altran1502

View File

@@ -264,7 +264,7 @@ jobs:
- name: Run API generation - name: Run API generation
run: make open-api run: make open-api
- name: Find file changes - name: Find file changes
uses: tj-actions/verify-changed-files@v19 uses: tj-actions/verify-changed-files@v20
id: verify-changed-files id: verify-changed-files
with: with:
files: | files: |
@@ -319,7 +319,7 @@ jobs:
run: npm run typeorm:migrations:generate ./src/migrations/TestMigration run: npm run typeorm:migrations:generate ./src/migrations/TestMigration
- name: Find file changes - name: Find file changes
uses: tj-actions/verify-changed-files@v19 uses: tj-actions/verify-changed-files@v20
id: verify-changed-files id: verify-changed-files
with: with:
files: | files: |
@@ -337,7 +337,7 @@ jobs:
DB_URL: postgres://postgres:postgres@localhost:5432/immich DB_URL: postgres://postgres:postgres@localhost:5432/immich
- name: Find file changes - name: Find file changes
uses: tj-actions/verify-changed-files@v19 uses: tj-actions/verify-changed-files@v20
id: verify-changed-sql-files id: verify-changed-sql-files
with: with:
files: | files: |

2
.gitmodules vendored
View File

@@ -2,5 +2,5 @@
path = mobile/.isar path = mobile/.isar
url = https://github.com/isar/isar url = https://github.com/isar/isar
[submodule "server/test/assets"] [submodule "server/test/assets"]
path = server/test/assets path = e2e/test-assets
url = https://github.com/immich-app/test-assets url = https://github.com/immich-app/test-assets

View File

@@ -18,6 +18,7 @@
</a> </a>
<br/> <br/>
<p align="center"> <p align="center">
<a href="readme_i18n/README_ca_ES.md">Català</a> <a href="readme_i18n/README_ca_ES.md">Català</a>
<a href="readme_i18n/README_es_ES.md">Español</a> <a href="readme_i18n/README_es_ES.md">Español</a>
<a href="readme_i18n/README_fr_FR.md">Français</a> <a href="readme_i18n/README_fr_FR.md">Français</a>
@@ -29,6 +30,8 @@
<a href="readme_i18n/README_tr_TR.md">Türkçe</a> <a href="readme_i18n/README_tr_TR.md">Türkçe</a>
<a href="readme_i18n/README_zh_CN.md">中文</a> <a href="readme_i18n/README_zh_CN.md">中文</a>
<a href="readme_i18n/README_ru_RU.md">Русский</a> <a href="readme_i18n/README_ru_RU.md">Русский</a>
<a href="readme_i18n/README_pt_BR.md">Português Brasileiro</a>
<a href="readme_i18n/README_ar_JO.md">العربية</a>
</p> </p>
## Disclaimer ## Disclaimer
@@ -47,7 +50,6 @@
- [Introduction](https://immich.app/docs/overview/introduction) - [Introduction](https://immich.app/docs/overview/introduction)
- [Installation](https://immich.app/docs/install/requirements) - [Installation](https://immich.app/docs/install/requirements)
- [Contribution Guidelines](https://immich.app/docs/overview/support-the-project) - [Contribution Guidelines](https://immich.app/docs/overview/support-the-project)
- [Support The Project](#support-the-project)
## Documentation ## Documentation
@@ -70,6 +72,7 @@ Spec: Free-tier Oracle VM - Amsterdam - 2.4Ghz quad-core ARM64 CPU, 24GB RAM
``` ```
## Activities ## Activities
![Activities](https://repobeats.axiom.co/api/embed/9e86d9dc3ddd137161f2f6d2e758d7863b1789cb.svg "Repobeats analytics image") ![Activities](https://repobeats.axiom.co/api/embed/9e86d9dc3ddd137161f2f6d2e758d7863b1789cb.svg "Repobeats analytics image")
## Features ## Features
@@ -106,23 +109,6 @@ Spec: Free-tier Oracle VM - Amsterdam - 2.4Ghz quad-core ARM64 CPU, 24GB RAM
| Read-only gallery | Yes | Yes | | Read-only gallery | Yes | Yes |
| Stacked Photos | Yes | Yes | | Stacked Photos | Yes | Yes |
## Support the project
I've committed to this project, and I will not stop. I will keep updating the docs, adding new features, and fixing bugs. But I can't do it alone. So I need your help to give me additional motivation to keep going.
As our hosts in the [selfhosted.show - In the episode 'The-organization-must-not-be-name is a Hostile Actor'](https://selfhosted.show/79?t=1418) said, this is a massive undertaking of what the team and I are doing. And I would love to someday be able to do this full-time, and I am asking for your help to make that happen.
If you feel like this is the right cause and the app is something you are seeing yourself using for a long time, please consider supporting the project with the option below.
### Donation
- [Monthly donation](https://github.com/sponsors/immich-app) via GitHub Sponsors
- [One-time donation](https://github.com/sponsors/immich-app?frequency=one-time&sponsor=alextran1502) via GitHub Sponsors
- [Liberapay](https://liberapay.com/alex.tran1502/)
- [buymeacoffee](https://www.buymeacoffee.com/altran1502)
- Bitcoin: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
- ZCash: u1smm4wvqegcp46zss2jf5xptchgeczp4rx7a0wu3mermf2wxahm26yyz5w9mw3f2p4emwlljxjumg774kgs8rntt9yags0whnzane4n67z4c7gppq4yyvcj404ne3r769prwzd9j8ntvqp44fa6d67sf7rmcfjmds3gmeceff4u8e92rh38nd30cr96xw6vfhk6scu4ws90ldzupr3sz
## Contributors ## Contributors
<a href="https://github.com/alextran1502/immich/graphs/contributors"> <a href="https://github.com/alextran1502/immich/graphs/contributors">

1
base-images Submodule

Submodule base-images added at d0d3ab018c

1
cli/.nvmrc Normal file
View File

@@ -0,0 +1 @@
20.13

View File

@@ -1,4 +1,4 @@
FROM node:20-alpine3.19@sha256:ec0c413b1d84f3f7f67ec986ba885930c57b5318d2eb3abc6960ee05d4f2eb28 as core FROM node:20-alpine3.19@sha256:291e84d956f1aff38454bbd3da38941461ad569a185c20aa289f71f37ea08e23 as core
WORKDIR /usr/src/open-api/typescript-sdk WORKDIR /usr/src/open-api/typescript-sdk
COPY open-api/typescript-sdk/package*.json open-api/typescript-sdk/tsconfig*.json ./ COPY open-api/typescript-sdk/package*.json open-api/typescript-sdk/tsconfig*.json ./

182
cli/package-lock.json generated
View File

@@ -47,7 +47,7 @@
}, },
"../open-api/typescript-sdk": { "../open-api/typescript-sdk": {
"name": "@immich/sdk", "name": "@immich/sdk",
"version": "1.103.0", "version": "1.105.1",
"dev": true, "dev": true,
"license": "GNU Affero General Public License version 3", "license": "GNU Affero General Public License version 3",
"dependencies": { "dependencies": {
@@ -1144,9 +1144,9 @@
} }
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "20.12.7", "version": "20.12.11",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz",
"integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"undici-types": "~5.26.4" "undici-types": "~5.26.4"
@@ -1165,16 +1165,16 @@
"dev": true "dev": true
}, },
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.8.0.tgz",
"integrity": "sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==", "integrity": "sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/regexpp": "^4.10.0", "@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "7.7.0", "@typescript-eslint/scope-manager": "7.8.0",
"@typescript-eslint/type-utils": "7.7.0", "@typescript-eslint/type-utils": "7.8.0",
"@typescript-eslint/utils": "7.7.0", "@typescript-eslint/utils": "7.8.0",
"@typescript-eslint/visitor-keys": "7.7.0", "@typescript-eslint/visitor-keys": "7.8.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"ignore": "^5.3.1", "ignore": "^5.3.1",
@@ -1200,15 +1200,15 @@
} }
}, },
"node_modules/@typescript-eslint/parser": { "node_modules/@typescript-eslint/parser": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.8.0.tgz",
"integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==", "integrity": "sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/scope-manager": "7.7.0", "@typescript-eslint/scope-manager": "7.8.0",
"@typescript-eslint/types": "7.7.0", "@typescript-eslint/types": "7.8.0",
"@typescript-eslint/typescript-estree": "7.7.0", "@typescript-eslint/typescript-estree": "7.8.0",
"@typescript-eslint/visitor-keys": "7.7.0", "@typescript-eslint/visitor-keys": "7.8.0",
"debug": "^4.3.4" "debug": "^4.3.4"
}, },
"engines": { "engines": {
@@ -1228,13 +1228,13 @@
} }
}, },
"node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/scope-manager": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz",
"integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "7.7.0", "@typescript-eslint/types": "7.8.0",
"@typescript-eslint/visitor-keys": "7.7.0" "@typescript-eslint/visitor-keys": "7.8.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || >=20.0.0" "node": "^18.18.0 || >=20.0.0"
@@ -1245,13 +1245,13 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils": { "node_modules/@typescript-eslint/type-utils": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.8.0.tgz",
"integrity": "sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==", "integrity": "sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "7.7.0", "@typescript-eslint/typescript-estree": "7.8.0",
"@typescript-eslint/utils": "7.7.0", "@typescript-eslint/utils": "7.8.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^1.3.0" "ts-api-utils": "^1.3.0"
}, },
@@ -1272,9 +1272,9 @@
} }
}, },
"node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/types": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz",
"integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^18.18.0 || >=20.0.0" "node": "^18.18.0 || >=20.0.0"
@@ -1285,13 +1285,13 @@
} }
}, },
"node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/typescript-estree": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz",
"integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "7.7.0", "@typescript-eslint/types": "7.8.0",
"@typescript-eslint/visitor-keys": "7.7.0", "@typescript-eslint/visitor-keys": "7.8.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@@ -1313,17 +1313,17 @@
} }
}, },
"node_modules/@typescript-eslint/utils": { "node_modules/@typescript-eslint/utils": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz",
"integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==", "integrity": "sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.15", "@types/json-schema": "^7.0.15",
"@types/semver": "^7.5.8", "@types/semver": "^7.5.8",
"@typescript-eslint/scope-manager": "7.7.0", "@typescript-eslint/scope-manager": "7.8.0",
"@typescript-eslint/types": "7.7.0", "@typescript-eslint/types": "7.8.0",
"@typescript-eslint/typescript-estree": "7.7.0", "@typescript-eslint/typescript-estree": "7.8.0",
"semver": "^7.6.0" "semver": "^7.6.0"
}, },
"engines": { "engines": {
@@ -1338,12 +1338,12 @@
} }
}, },
"node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/visitor-keys": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz",
"integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "7.7.0", "@typescript-eslint/types": "7.8.0",
"eslint-visitor-keys": "^3.4.3" "eslint-visitor-keys": "^3.4.3"
}, },
"engines": { "engines": {
@@ -1361,9 +1361,9 @@
"dev": true "dev": true
}, },
"node_modules/@vitest/coverage-v8": { "node_modules/@vitest/coverage-v8": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.6.0.tgz",
"integrity": "sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==", "integrity": "sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@ampproject/remapping": "^2.2.1", "@ampproject/remapping": "^2.2.1",
@@ -1384,17 +1384,17 @@
"url": "https://opencollective.com/vitest" "url": "https://opencollective.com/vitest"
}, },
"peerDependencies": { "peerDependencies": {
"vitest": "1.5.0" "vitest": "1.6.0"
} }
}, },
"node_modules/@vitest/expect": { "node_modules/@vitest/expect": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz",
"integrity": "sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==", "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vitest/spy": "1.5.0", "@vitest/spy": "1.6.0",
"@vitest/utils": "1.5.0", "@vitest/utils": "1.6.0",
"chai": "^4.3.10" "chai": "^4.3.10"
}, },
"funding": { "funding": {
@@ -1402,12 +1402,12 @@
} }
}, },
"node_modules/@vitest/runner": { "node_modules/@vitest/runner": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz",
"integrity": "sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==", "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vitest/utils": "1.5.0", "@vitest/utils": "1.6.0",
"p-limit": "^5.0.0", "p-limit": "^5.0.0",
"pathe": "^1.1.1" "pathe": "^1.1.1"
}, },
@@ -1443,9 +1443,9 @@
} }
}, },
"node_modules/@vitest/snapshot": { "node_modules/@vitest/snapshot": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz",
"integrity": "sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==", "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"magic-string": "^0.30.5", "magic-string": "^0.30.5",
@@ -1457,9 +1457,9 @@
} }
}, },
"node_modules/@vitest/spy": { "node_modules/@vitest/spy": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz",
"integrity": "sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==", "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"tinyspy": "^2.2.0" "tinyspy": "^2.2.0"
@@ -1469,9 +1469,9 @@
} }
}, },
"node_modules/@vitest/utils": { "node_modules/@vitest/utils": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz",
"integrity": "sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==", "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"diff-sequences": "^29.6.3", "diff-sequences": "^29.6.3",
@@ -3427,9 +3427,9 @@
] ]
}, },
"node_modules/react-is": { "node_modules/react-is": {
"version": "18.2.0", "version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true "dev": true
}, },
"node_modules/read-pkg": { "node_modules/read-pkg": {
@@ -4210,9 +4210,9 @@
} }
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "5.2.9", "version": "5.2.11",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.2.9.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz",
"integrity": "sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==", "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"esbuild": "^0.20.1", "esbuild": "^0.20.1",
@@ -4265,9 +4265,9 @@
} }
}, },
"node_modules/vite-node": { "node_modules/vite-node": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.5.0.tgz", "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz",
"integrity": "sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==", "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"cac": "^6.7.14", "cac": "^6.7.14",
@@ -4306,16 +4306,16 @@
} }
}, },
"node_modules/vitest": { "node_modules/vitest": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-1.5.0.tgz", "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz",
"integrity": "sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==", "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vitest/expect": "1.5.0", "@vitest/expect": "1.6.0",
"@vitest/runner": "1.5.0", "@vitest/runner": "1.6.0",
"@vitest/snapshot": "1.5.0", "@vitest/snapshot": "1.6.0",
"@vitest/spy": "1.5.0", "@vitest/spy": "1.6.0",
"@vitest/utils": "1.5.0", "@vitest/utils": "1.6.0",
"acorn-walk": "^8.3.2", "acorn-walk": "^8.3.2",
"chai": "^4.3.10", "chai": "^4.3.10",
"debug": "^4.3.4", "debug": "^4.3.4",
@@ -4329,7 +4329,7 @@
"tinybench": "^2.5.1", "tinybench": "^2.5.1",
"tinypool": "^0.8.3", "tinypool": "^0.8.3",
"vite": "^5.0.0", "vite": "^5.0.0",
"vite-node": "1.5.0", "vite-node": "1.6.0",
"why-is-node-running": "^2.2.2" "why-is-node-running": "^2.2.2"
}, },
"bin": { "bin": {
@@ -4344,8 +4344,8 @@
"peerDependencies": { "peerDependencies": {
"@edge-runtime/vm": "*", "@edge-runtime/vm": "*",
"@types/node": "^18.0.0 || >=20.0.0", "@types/node": "^18.0.0 || >=20.0.0",
"@vitest/browser": "1.5.0", "@vitest/browser": "1.6.0",
"@vitest/ui": "1.5.0", "@vitest/ui": "1.6.0",
"happy-dom": "*", "happy-dom": "*",
"jsdom": "*" "jsdom": "*"
}, },
@@ -4414,9 +4414,9 @@
"dev": true "dev": true
}, },
"node_modules/yaml": { "node_modules/yaml": {
"version": "2.4.1", "version": "2.4.2",
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz",
"integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==",
"dev": true, "dev": true,
"bin": { "bin": {
"yaml": "bin.mjs" "yaml": "bin.mjs"

View File

@@ -60,5 +60,8 @@
"dependencies": { "dependencies": {
"fast-glob": "^3.3.2", "fast-glob": "^3.3.2",
"lodash-es": "^4.17.21" "lodash-es": "^4.17.21"
},
"volta": {
"node": "20.13.1"
} }
} }

View File

@@ -108,10 +108,12 @@ services:
POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME} POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes: volumes:
- ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data - ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data
ports: ports:
- 5432:5432 - 5432:5432
command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
# set IMMICH_METRICS=true in .env to enable metrics # set IMMICH_METRICS=true in .env to enable metrics
# immich-prometheus: # immich-prometheus:

View File

@@ -66,17 +66,19 @@ services:
POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME} POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes: volumes:
- ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data - ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data
ports: ports:
- 5432:5432 - 5432:5432
command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
# set IMMICH_METRICS=true in .env to enable metrics # set IMMICH_METRICS=true in .env to enable metrics
immich-prometheus: immich-prometheus:
container_name: immich_prometheus container_name: immich_prometheus
ports: ports:
- 9090:9090 - 9090:9090
image: prom/prometheus@sha256:4f6c47e39a9064028766e8c95890ed15690c30f00c4ba14e7ce6ae1ded0295b1 image: prom/prometheus@sha256:5c435642ca4d8427ca26f4901c11114023004709037880cd7860d5b7176aa731
volumes: volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml - ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus - prometheus-data:/prometheus

View File

@@ -68,9 +68,11 @@ services:
POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME} POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME} POSTGRES_DB: ${DB_DATABASE_NAME}
POSTGRES_INITDB_ARGS: '--data-checksums'
volumes: volumes:
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
restart: always restart: always
command: ["postgres", "-c" ,"shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"]
volumes: volumes:
model-cache: model-cache:

View File

@@ -1,5 +1,3 @@
version: "3.8"
# Configurations for hardware-accelerated machine learning # Configurations for hardware-accelerated machine learning
# If using Unraid or another platform that doesn't allow multiple Compose files, # If using Unraid or another platform that doesn't allow multiple Compose files,
@@ -30,7 +28,7 @@ services:
openvino: openvino:
device_cgroup_rules: device_cgroup_rules:
- "c 189:* rmw" - 'c 189:* rmw'
devices: devices:
- /dev/dri:/dev/dri - /dev/dri:/dev/dri
volumes: volumes:

View File

@@ -1,5 +1,3 @@
version: "3.8"
# Configurations for hardware-accelerated transcoding # Configurations for hardware-accelerated transcoding
# If using Unraid or another platform that doesn't allow multiple Compose files, # If using Unraid or another platform that doesn't allow multiple Compose files,
@@ -12,6 +10,9 @@ services:
cpu: {} cpu: {}
nvenc: nvenc:
runtime: nvidia
environment:
- DISPLAY:$DISPLAY
deploy: deploy:
resources: resources:
reservations: reservations:
@@ -22,6 +23,8 @@ services:
- gpu - gpu
- compute - compute
- video - video
- display
- graphics
quicksync: quicksync:
devices: devices:

1
docs/.nvmrc Normal file
View File

@@ -0,0 +1 @@
20.13

View File

@@ -0,0 +1,75 @@
---
title: The Immich core team goes full-time
authors: [alextran]
tags: [update, announcement, futo]
date: 2024-05-01T00:00
---
**Immich is joining [FUTO](https://futo.org/)!**
Since the beginning of this adventure, my goal has always been to create a better world for my children. Memories are priceless, and privacy should not be a luxury. However, building quality open source has its challenges. Over the past two years, it has taken significant dedication, time, and effort.
Recently, a company in Austin, Texas, called FUTO contacted the team. FUTO strives to develop quality and sustainable open software. They build software alternatives that focus on giving control to users. From their mission statement:
“Computers should belong to you, the people. We develop and fund technology to give them back.”
FUTO loved Immich and wanted to see if wed consider working with them to take the project to the next level. In short, FUTO offered to:
- Pay the core team to work on Immich full-time
- Let us keep full autonomy about the projects direction and leadership
- Continue to license Immich under AGPL
- Keep Immichs development direction with no paywalled features
- Keep Immich “built for the people” (no ads, data mining/selling, or alternative motives)
- Provide us with financial, technical, legal, and administrative support
After careful deliberation, the team decided that FUTOs vision closely aligns with our own: to build a better future by providing a polished, performant, and privacy-preserving open-source software solution for photo and video management delivered in a sustainable way.
Immichs future has never looked brighter, and we look forward to realizing our vision for Immich as part of FUTO.
If you have more questions, well host a Q&A live stream on May 9th at 3PM UTC (10AM CST). [You can ask questions here](https://www.live-ask.com/event/01HWP2SB99A1K8EXFBDKZ5Z9CF), and the stream will be live [here on our YouTube channel](https://youtube.com/live/cwz2iZwYpgg).
Cheers,
The Immich Team
---
## FAQs
### What is FUTO?
[https://futo.org/what-is-futo/](https://futo.org/what-is-futo/)
### Will the license change?
No. Immich will continue to be licensed under AGPL without a CLA.
### Will Immich continue to be free?
Yes. The Immich source code will remain freely available under the AGPL license.
### Is Immich getting VC funding?
No. Venture capital implies investment in a business, often with the expectation of a future payout (exit plan). Immich is neither a business that can be acquired nor comes with a money-making exit plan.
### I am currently supporting Immich through GitHub sponsors. What will happen to my donation?
Effective immediately, all donations to the Immich organization will be canceled. In the future, we will offer an optional, modest payment option instead. Thank you to everyone who donated to help us get this far!
### How is funding sustainable?
Immich and FUTO believe a sustainable future requires a model that does not rely on users-as-a-product. To this end, FUTO advocates that users pay for good, open software. In keeping with this model, we will adopt a purchase price. This means we no longer accept donations, but — _without limiting features for those who do not pay_ — we will soon allow you to purchase Immich through a modest payment. We encourage you to pay for the high-quality software you use to foster a healthy software culture where developers build great applications without hidden motives for their users.
### When does this change take effect?
This change takes effect immediately.
### What will change?
The following things will change as Immich joins FUTO:
- The brand, logo, and other Immich trademarks will be transferred to FUTO.
- We will stop all donations to the project.
- The core team can now dedicate our full attention to Immich
- Before the end of the year, we plan to have a roadmap for what it will take to get Immich to a stable release.
- Bugs will be squashed, and features will be delivered faster.

View File

@@ -36,6 +36,22 @@ If you still cannot log in to the app, try the following:
- Check the mobile logs - Check the mobile logs
- Make sure login credentials are correct by logging in on the web app - Make sure login credentials are correct by logging in on the web app
### Why does foreground backup stop when I navigate away from the app? Shouldn't it transfer the job to background backup?
Foreground backup and background backup are two separate mechanisms. They don't communicate or interact with each other.
Foreground backup is controlled by the user's action, while background backup is controlled by your device's operating system. When the app is put in the background, the invocation of background tasks is delegated to the device's operating system scheduler. It decides when the background task can run and how long it can run.
The behaviors differ based on your device manufacturer and operating system, but most are related to battery-saving policies.
### Why is background backup on iOS not working?
On iOS (iPhone and iPad), the operating system determines if a particular app can invoke background tasks based on multiple factors, most of which the Immich app has no control over. To increase the likelihood that the background backup task is run, follow the steps below:
- Enable Background App Refresh for Immich in the iOS settings at `Settings > General > Background App Refresh`.
- Disable Background App Refresh for apps that don't need background tasks to run. This will reduce the competition for background task invocation for Immich.
- Use the Immich app more often.
--- ---
## Assets ## Assets
@@ -383,24 +399,47 @@ If it mentions SIGILL (note the lack of a K) or error code 132, it most likely m
If your version of Immich is below 1.92.0 and the crash occurs after logs about tracing or exporting a model, consider either upgrading or disabling the Tag Objects job. If your version of Immich is below 1.92.0 and the crash occurs after logs about tracing or exporting a model, consider either upgrading or disabling the Tag Objects job.
### Why does Immich log migration errors on startup? ## Database
Sometimes Immich logs errors such as "duplicate key value violates unique constraint" or "column (...) of relation (...) already exists". Because of Immich's container structure, this error can be seen when both immich and immich-microservices start at the same time and attempt to migrate or create the database structure. Since the database migration is run sequentially and inside of transactions, this error message does not cause harm to your installation of Immich and can safely be ignored. If needed, you can manually restart Immich by running `docker restart immich immich-microservices`. ### Why am I getting database ownership errors?
### Why does foreground backup stop when I navigate away from the app? Shouldn't it transfer the job to background backup? If you get database errors such as `FATAL: data directory "/var/lib/postgresql/data" has wrong ownership` upon database startup, this is likely due to an issue with your filesystem.
NTFS and ex/FAT/32 filesystems are not supported. See [here](/docs/install/environment-variables#supported-filesystems) for more details.
Foreground backup and background backup are two separate mechanisms. They don't communicate or interact with each other. ### How can I verify the integrity of my database?
Foreground backup is controlled by the user's action, while background backup is controlled by your device's operating system. When the app is put in the background, the invocation of background tasks is delegated to the device's operating system scheduler. It decides when the background task can run and how long it can run. If you installed Immich using v1.104.0 or later, you likely have database checksums enabled by default. You can check this by running the following command.
A result of `on` means that checksums are enabled.
The behaviors differ based on your device manufacturer and operating system, but most are related to battery-saving policies. <details>
<summary>Check if checksums are enabled</summary>
### Why is background backup on iOS not working? ```bash
docker exec -it immich_postgres psql --dbname=immich --username=<DB_USERNAME> --command="show data_checksums"
data_checksums
----------------
on
(1 row)
```
On iOS (iPhone and iPad), the operating system determines if a particular app can invoke background tasks based on multiple factors, most of which the Immich app has no control over. To increase the likelihood that the background backup task is run, follow the steps below: </details>
- Enable Background App Refresh for Immich in the iOS settings at `Settings > General > Background App Refresh`. If checksums are enabled, you can check the status of the database with the following command. A normal result is all zeroes.
- Disable Background App Refresh for apps that don't need background tasks to run. This will reduce the competition for background task invocation for Immich.
- Use the Immich app more often. <details>
<summary>Check for database corruption</summary>
```bash
docker exec -it immich_postgres psql --dbname=immich --username=<DB_USERNAME> --command="SELECT datname, checksum_failures, checksum_last_failure FROM pg_stat_database WHERE datname IS NOT NULL"
datname | checksum_failures | checksum_last_failure
-----------+-------------------+-----------------------
postgres | 0 |
immich | 0 |
template1 | 0 |
template0 | 0 |
(4 rows)
```
</details>
[huggingface]: https://huggingface.co/immich-app [huggingface]: https://huggingface.co/immich-app

View File

@@ -17,8 +17,12 @@ Refer to the official [postgres documentation](https://www.postgresql.org/docs/c
The recommended way to backup and restore the Immich database is to use the `pg_dumpall` command. When restoring, you need to delete the `DB_DATA_LOCATION` folder (if it exists) to reset the database. The recommended way to backup and restore the Immich database is to use the `pg_dumpall` command. When restoring, you need to delete the `DB_DATA_LOCATION` folder (if it exists) to reset the database.
:::caution
It is not recommended to directly backup the `DB_DATA_LOCATION` folder. Doing so while the database is running can lead to a corrupted backup that cannot be restored.
:::
<Tabs> <Tabs>
<TabItem value="Linux system based Backup" label="Linux system based Backup" default> <TabItem value="Linux system" label="Linux system" default>
```bash title='Backup' ```bash title='Backup'
docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres | gzip > "/path/to/backup/dump.sql.gz" docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres | gzip > "/path/to/backup/dump.sql.gz"
@@ -38,7 +42,7 @@ docker compose up -d # Start remainder of Immich apps
``` ```
</TabItem> </TabItem>
<TabItem value="Windows system based Backup" label="Windows system based Backup"> <TabItem value="Windows system (PowerShell)" label="Windows system (PowerShell)">
```powershell title='Backup' ```powershell title='Backup'
docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres > "\path\to\backup\dump.sql" docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres > "\path\to\backup\dump.sql"
@@ -51,7 +55,7 @@ docker compose pull # Update to latest version of Immich (if desired)
docker compose create # Create Docker containers for Immich apps without running them. docker compose create # Create Docker containers for Immich apps without running them.
docker start immich_postgres # Start Postgres server docker start immich_postgres # Start Postgres server
sleep 10 # Wait for Postgres server to start up sleep 10 # Wait for Postgres server to start up
gc "C:\path\to\backup\dump.sql" | docker exec -i immich_postgres psql --username=postgres # Restore Backup gc "C:\path\to\backup\dump.sql" | docker exec -i immich_postgres psql --username=postgres # Restore Backup
docker compose up -d # Start remainder of Immich apps docker compose up -d # Start remainder of Immich apps
``` ```

View File

@@ -5,7 +5,7 @@ While not officially recommended, it is possible to run Immich using a pre-exist
By default, Immich expects superuser permission on the Postgres database and requires certain extensions to be installed. This guide outlines the steps required to prepare a pre-existing Postgres server to be used by Immich. By default, Immich expects superuser permission on the Postgres database and requires certain extensions to be installed. This guide outlines the steps required to prepare a pre-existing Postgres server to be used by Immich.
:::tip :::tip
Running with a pre-existing Postgres server can unlock powerful administrative features, including logical replication, data page checksums, and streaming write-ahead log backups using programs like pgBackRest or Barman. Running with a pre-existing Postgres server can unlock powerful administrative features, including logical replication and streaming write-ahead log backups using programs like pgBackRest or Barman.
::: :::
## Prerequisites ## Prerequisites

View File

@@ -9,6 +9,11 @@ When contributing code through a pull request, please check the following:
- [ ] `npm run check:svelte` (Type checking via SvelteKit) - [ ] `npm run check:svelte` (Type checking via SvelteKit)
- [ ] `npm test` (unit tests) - [ ] `npm test` (unit tests)
## Documentation
- [ ] `npm run format` (formatting via Prettier)
- [ ] Update the `_redirects` file if you have renamed a page or removed it from the documentation.
:::tip AIO :::tip AIO
Run all web checks with `npm run check:all` Run all web checks with `npm run check:all`
::: :::

View File

@@ -33,7 +33,7 @@ You do not need to redo any transcoding jobs after enabling hardware acceleratio
#### NVENC #### NVENC
- You must have the official NVIDIA driver installed on the server. - You must have the official NVIDIA driver installed on the server.
- On Linux (except for WSL2), you also need to have [NVIDIA Container Runtime][nvcr] installed. - On Linux (except for WSL2), you also need to have [NVIDIA Container Toolkit][nvct] installed.
#### QSV #### QSV
@@ -122,7 +122,7 @@ Once this is done, you can continue to step 3 of "Basic Setup".
- While you can use VAAPI with NVIDIA and Intel devices, prefer the more specific APIs since they're more optimized for their respective devices - While you can use VAAPI with NVIDIA and Intel devices, prefer the more specific APIs since they're more optimized for their respective devices
[hw-file]: https://github.com/immich-app/immich/releases/latest/download/hwaccel.transcoding.yml [hw-file]: https://github.com/immich-app/immich/releases/latest/download/hwaccel.transcoding.yml
[nvcr]: https://github.com/NVIDIA/nvidia-container-runtime/ [nvct]: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
[jellyfin-lp]: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#configure-and-verify-lp-mode-on-linux [jellyfin-lp]: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#configure-and-verify-lp-mode-on-linux
[jellyfin-kernel-bug]: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#known-issues-and-limitations [jellyfin-kernel-bug]: https://jellyfin.org/docs/general/administration/hardware-acceleration/intel/#known-issues-and-limitations
[libmali-rockchip]: https://github.com/tsukumijima/libmali-rockchip/releases [libmali-rockchip]: https://github.com/tsukumijima/libmali-rockchip/releases

View File

@@ -10,7 +10,7 @@ Immich comes preconfigured with an upload library for each user. All assets uplo
## External Libraries ## External Libraries
External libraries tracks assets stored outside of immich, i.e. in the file system. Immich will only read data from the files, and will not modify them in any way. Therefore, the delete button is disabled for external assets. When the external library is scanned, immich will read the metadata from the file and create an asset in the library for each image or video file. These items will then be shown in the main timeline, and they will look and behave like any other asset, including viewing on the map, adding to albums, etc. External libraries tracks assets stored outside of Immich, i.e. in the file system. When the external library is scanned, Immich will read the metadata from the file and create an asset in the library for each image or video file. These items will then be shown in the main timeline, and they will look and behave like any other asset, including viewing on the map, adding to albums, etc.
If a file is modified outside of Immich, the changes will not be reflected in immich until the library is scanned again. There are different ways to scan a library depending on the use case: If a file is modified outside of Immich, the changes will not be reflected in immich until the library is scanned again. There are different ways to scan a library depending on the use case:

View File

@@ -38,7 +38,7 @@ You do not need to redo any machine learning jobs after enabling hardware accele
- The GPU must have compute capability 5.2 or greater. - The GPU must have compute capability 5.2 or greater.
- The server must have the official NVIDIA driver installed. - The server must have the official NVIDIA driver installed.
- The installed driver must be >= 535 (it must support CUDA 12.2). - The installed driver must be >= 535 (it must support CUDA 12.2).
- On Linux (except for WSL2), you also need to have [NVIDIA Container Runtime][nvcr] installed. - On Linux (except for WSL2), you also need to have [NVIDIA Container Toolkit][nvct] installed.
#### OpenVINO #### OpenVINO
@@ -99,7 +99,7 @@ You can confirm the device is being recognized and used by checking its utilizat
::: :::
[hw-file]: https://github.com/immich-app/immich/releases/latest/download/hwaccel.ml.yml [hw-file]: https://github.com/immich-app/immich/releases/latest/download/hwaccel.ml.yml
[nvcr]: https://github.com/NVIDIA/nvidia-container-runtime/ [nvct]: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
## Tips ## Tips

View File

@@ -0,0 +1,252 @@
# Shared Albums & Assets
## Shared Albums
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
Album sharing allows you to share assets with other users or with people from around the world via a link or invitation (for system users).
When sharing shared albums, whats shared is:
- The selected assets.
- Metadata of the assets (Can be removed by sharing via link).
## Shared Album Features
- Download all assets as zip file (Web only).
:::info Archive size limited.
If the size of the album exceeds 4GB, the archive files will be divided into 4GB each.
:::
- Add a description to the album (Web only).
- Slideshow view (Web only).
- Add or remove photos to an album.
- Comment on the album (for system users only).
:::info
When you create an album and it is not shared with anyone, it will be added to the Albums category.
:::
<Tabs>
<TabItem value="Computer" label="Computer" default>
### Create a Shared Album
1. Select the assets (Shift can be used for multiple selection).
2. Click on the + on the top right -> add to a shared album.
3. Name the new album and add the album.
## Sharing Between Users
### Shared Album Options
- Add or remove users from the album.
:::info remove user(s)
When a user is removed from the album, the photos he uploaded will still appear in the album.
:::
- Enable or disable comments & likes.
- Replace the album cover.
- Display order (newest first / oldest first).
To change these settings click on the 3 dots on the right -> options.
:::info Known bug
Currently it is not possible to remove people through the options.
This is a [known problem and it has a temporary solution](https://github.com/immich-app/immich/issues/7954)
:::
## Share Album via Link
:::info
When wanting to share with people outside the home network via a link, Immich needs to be exposed to the world wide web, read more to [learn the ways to do this](/docs/guides/remote-access.md).
:::
1. Enter the shared album.
2. Click on the share icon.
3. Click on Create link.
You can edit the link properties, options include;
- **Description -** adding a description to the album (optional)
- **Password -** adding a password to the album (optional), it is required to activate Require password.
- **Show metadata -** whether to show metadata to whoever the link will be shared with (optional).
- **Allow public user to download -** whether to allow whoever has the link to download all the images or a certain image (optional).
- **Allow public user to upload -** whether to allow whoever has the link to upload assets to the album (optional).
:::info
whoever has the link and have uploaded files cannot delete them.
:::
- **Expire after -** adding an expiration date to the link (optional).
## Share Specific Assets
A user can share specific assets without linking them to a specific album.
in order to do so;
1. Go to the timeline
2. Select the assets (Shift can be used for multiple selection)
3. Click the share button
:::info
Assets shared in this way will not be displayed in the Sharing category, in order to expect to remove or change the link settings of assets shared in this way, you must use the Manage generated links option.
:::
:::tip
For temporary sharing, you can add an expiration date to assets shared this way.
:::
## Manage generated links
A user can copy, delete and change the link settings he created for specific albums or assets, in order to do so;
1. Go to the Immich home page.
2. Select the Sharing category.
3. On the top right, select Shared links.
:::info remove links/users.
When making a shared album private, the added photos will **still** be saved in the album.
:::
## Activity
:::info
Activity is not visible when sharing an album via external link.
New users added to the album will be able to see previous activity.
:::
### Add a Comment or Like to the Album
1. Enter the shared album.
2. From the bottom right you can add comment(s) or delete old comments.
3. To add a like (heart) to the album, click the heart button to the left of the "say something" button.
#### Add a Comment or Like to a Specific Photo
:::info Activity
Activity of a comment or heart on a specific photo will appear in the general activity of the album.
:::
1. Enter the shared album.
2. Enter the picture.
3. From the bottom right you can add comment(s) or delete old comments.
4. To add a like (heart) to the album, click the heart button to the left of the "say something" button.
### Viewing Activity in the Album
To view album activity on comments or likes
1. Enter the shared album
2. On the bottom right click on the message icon
</TabItem>
<TabItem value="Mobile" label="Mobile">
:::note mobile app
Some of the features are not available on mobile, to understand what the full features of shared albums are, it is recommended to additionally read the explanation for the computer version.
:::
### Create a Shared Album
1. Select the assets.
2. Swipe up and click on Create new album.
3. Name the new album and add the album.
## Sharing Between Users
#### Add or remove users from the album.
:::info remove user(s)
When a user is removed from the album, the photos he uploaded will still appear in the album.
:::
After creating the album, click the Add User button and select the user you want to share with.
### Shared Album Options
- Enable or disable comments & likes.
- Add or remove users
To change these settings click on the 3 dots on the top right -> options.
## Share Album via Link
:::info
When wanting to share with people outside the home network via a link, Immich needs to be exposed to the world wide web, read more to [learn the ways to do this](/docs/guides/remote-access.md).
:::
1. Enter the shared album.
2. Click 3 dots on the top right.
3. Click on Share.
You can edit the link properties, options include;
- **Description -** adding a description to the album (optional)
- **Password -** adding a password to the album (optional)
- **Show metadata -** whether to show metadata to whoever the link will be shared with (optional).
- **Allow public user to download -** whether to allow whoever has the link to download all the images or a certain image (optional).
- **Allow public user to upload -** whether to allow whoever has the link to upload assets to the album (optional).
::: info
whoever has the link and have uploaded files cannot delete them.
:::
- **Expire after -** adding an expiration date to the link (optional).
## Share Specific Assets
A user can share specific assets without linking them to a specific album.
in order to do so;
1. Go to the timeline
2. Select the assets.
3. Click the share button
:::info
Assets shared in this way will not be displayed in the Sharing category, in order to expect to remove or change the link settings of assets shared in this way, you must use the Manage generated links option.
:::
:::tip
For temporary sharing, you can add an expiration date to assets shared this way.
:::
## Manage generated links
A user can copy, delete and change the link settings he created for specific albums or assets, in order to do so;
1. Go to Sharing category.
2. Select Shared links at the top right.
:::info remove links/users.
When making a shared album private, the added photos will **still** be saved in the album.
:::
## Activity
:::info
Activity is not visible when sharing an album via external link.
New users added to the album will be able to see previous activity.
:::
### Add a Comment or Like to the Album
1. Enter the shared album.
2. From the top right you can add comment(s) or delete old comments.
3. To add a like (heart) to the album, click the heart button to the right of the "say something" button.
#### Add a Comment or Like to a Specific Photo
:::info Activity
Activity of a comment or heart on a specific photo will appear in the general activity of the album.
:::
1. Enter the shared album.
2. Enter the picture.
3. From the top right you can add comment(s) or delete old comments.
4. To add a like (heart) to the album, click the heart button to the right of the "say something" button.
### Viewing Activity in the Album
To view album activity on comments or likes
1. Enter the shared album
2. On the top right click on the message icon
</TabItem>
</Tabs>

View File

@@ -0,0 +1,16 @@
# Create Custom Map Styles for Immich Using Maptiler
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.
## Steps
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.
3. The **editor** interface is self-explanatory. You can change colors, remove visible layers, or add optional layers (e.g., administrative, topo, hydro, etc.) in the composer.
4. Once you have your map composed, click on **Save** at the top right. Give it a unique name to save it to your account.
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/>![Maptiler Publication Settings](img/immich_map_styles_publish.png)
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.
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!

View File

@@ -6,15 +6,19 @@ in a directory on the same machine.
# Mount the directory into the containers. # Mount the directory into the containers.
Edit `docker-compose.yml` to add two new mount points under `volumes:` Edit `docker-compose.yml` to add two new mount points in the sections `immich-server:` and `immich-microservices:` under `volumes:`
``` ```diff
immich-server: immich-server:
volumes: volumes:
- ${EXTERNAL_PATH}:/usr/src/app/external + - ${EXTERNAL_PATH}:/usr/src/app/external
immich-microservices:
volumes:
+ - ${EXTERNAL_PATH}:/usr/src/app/external
``` ```
Be sure to add exactly the same line to both `immich-server:` and `immich-microservices:`. Be sure to add exactly the same path to both services.
Edit `.env` to define `EXTERNAL_PATH`, substituting in the correct path for your computer: Edit `.env` to define `EXTERNAL_PATH`, substituting in the correct path for your computer:

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

View File

@@ -24,11 +24,18 @@ If this should not work, try running `docker compose up -d --force-recreate`.
| `DB_DATA_LOCATION` | Host Path for Postgres database | | database | | `DB_DATA_LOCATION` | Host Path for Postgres database | | database |
:::tip :::tip
These environment variables are used by the `docker-compose.yml` file and do **NOT** affect the containers directly. These environment variables are used by the `docker-compose.yml` file and do **NOT** affect the containers directly.
::: :::
### Supported filesystems
The Immich Postgres database (`DB_DATA_LOCATION`) must be located on a filesystem that supports user/group
ownership and permissions (EXT2/3/4, ZFS, APFS, BTRFS, XFS, etc.). It will not work on any filesystem formatted in NTFS or ex/FAT/32.
It will not work in WSL (Windows Subsystem for Linux) when using a mounted host directory (commonly under `/mnt`).
If this is an issue, you can change the bind mount to a Docker volume instead.
Regardless of filesystem, it is not recommended to use a network share for your database location due to performance and possible data loss issues.
## General ## General
| Variable | Description | Default | Services | | Variable | Description | Default | Services |

View File

@@ -4,7 +4,7 @@ sidebar_position: 40
# Kubernetes # Kubernetes
You can deploy Immich on Kubernetes using [the official Helm chart](https://github.com/immich-app/immich-charts/tree/main/charts/immich). You can deploy Immich on Kubernetes using [the official Helm chart](https://github.com/immich-app/immich-charts/blob/main/README.md).
You can view some [examples](https://kubesearch.dev/#/immich) of how other people run Immich on Kubernetes, using the official chart or otherwise. You can view some [examples](https://kubesearch.dev/#/immich) of how other people run Immich on Kubernetes, using the official chart or otherwise.

View File

@@ -8,7 +8,7 @@ Install Immich using Portainer's Stack feature.
1. Go to "**Stacks**" in the left sidebar. 1. Go to "**Stacks**" in the left sidebar.
2. Click on "**Add stack**". 2. Click on "**Add stack**".
3. Give the stack a name (i.e. Immich), and select "**Web Editor**" as the build method. 3. Give the stack a name (i.e. immich), and select "**Web Editor**" as the build method.
4. Copy the content of the `docker-compose.yml` file from the [GitHub repository](https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml). 4. Copy the content of the `docker-compose.yml` file from the [GitHub repository](https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml).
5. Replace `.env` with `stack.env` for all containers that need to use environment variables in the web editor. 5. Replace `.env` with `stack.env` for all containers that need to use environment variables in the web editor.
@@ -38,8 +38,9 @@ style={{border: '1px solid #ddd'}}
alt="Dot Env Example" alt="Dot Env Example"
/> />
- Populate custom database information if necessary. - Change the default `DB_PASSWORD`, and add custom database connection information if necessary.
- Populate `UPLOAD_LOCATION` with your preferred location for storing backup assets. - Change `DB_DATA_LOCATION` to a folder where the database will be saved to disk.
- Change `UPLOAD_LOCATION` to a folder where media (uploaded and generated) will be stored.
11. Click on "**Deploy the stack**". 11. Click on "**Deploy the stack**".

View File

@@ -15,12 +15,15 @@ Hardware and software requirements for Immich
Immich requires the command `docker compose` - the similarly named `docker-compose` is [deprecated](https://docs.docker.com/compose/migrate/) and is no longer compatible with Immich. Immich requires the command `docker compose` - the similarly named `docker-compose` is [deprecated](https://docs.docker.com/compose/migrate/) and is no longer compatible with Immich.
::: :::
:::info Podman
You can also use Podman to run the application. However, additional configuration might be required.
:::
## Hardware ## Hardware
- **OS**: Preferred unix-based operating system (Ubuntu, Debian, MacOS, etc). Windows works too, with [Docker Desktop on Windows](https://docs.docker.com/desktop/install/windows-install/) - **OS**: Recommended Linux operating system (Ubuntu, Debian, etc).
- **RAM**: At least 4GB, preferred 6GB. - Windows is supported with [Docker Desktop on Windows](https://docs.docker.com/desktop/install/windows-install/) or [WSL 2](https://docs.docker.com/desktop/wsl/).
- **CPU**: At least 2 cores, preferred 4 cores. - macOS is supported with [Docker Desktop on Mac](https://docs.docker.com/desktop/install/mac-install/).
- **RAM**: Minimum 4GB, recommended 6GB.
- **CPU**: Minimum 2 cores, recommended 4 cores.
- **Storage**: Recommended Unix-compatible filesystem (EXT4, ZFS, APFS, etc.) with support for user/group ownership and permissions.
- This can present an issue for Windows users. See [here](/docs/install/environment-variables#supported-filesystems)
for more details and alternatives.
- The generation of thumbnails and transcoded video can increase the size of the photo library by 10-20% on average.
- Network shares are supported for the storage of image and video assets only.

View File

@@ -4,24 +4,8 @@ sidebar_position: 5
# Support The Project # Support The Project
I am committed to this project, and I will not stop. I will keep updating the docs, adding new features, and fixing bugs. But I can't do it alone, so I need your help to give me additional motivation to keep going.
As our hosts in the [selfhosted.show - In the episode 'The-organization-which-must-not-be-named is a Hostile Actor'](https://selfhosted.show/79?t=1418) said, this is a massive undertaking that the team and I are doing. I would love to someday be able to do this full-time, and I am asking for your help to make that happen.
If you feel like this is the right cause and the app is something you see yourself using for a long time, please consider supporting the project with one of the options below.
## Donation
- Monthly donation via [GitHub Sponsors](https://github.com/sponsors/immich-app)
- One-time donation via [GitHub Sponsors](https://github.com/sponsors/immich-app?frequency=one-time)
- [Librepay](https://liberapay.com/alex.tran1502/)
- [buymeacoffee](https://www.buymeacoffee.com/altran1502)
- Bitcoin: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
## Contributing ## Contributing
There are lots of non-monetary ways to contribute to Immich as well.
1. Testing - Using Immich and reporting bugs is a great way to help support the project. Found a bug? [Open an issue on GitHub][github-issue]. 1. Testing - Using Immich and reporting bugs is a great way to help support the project. Found a bug? [Open an issue on GitHub][github-issue].
1. Translations - The Immich mobile app has been translated into [17 languages][github-langs] so far! To contribute with translations, email me at alex.tran1502@gmail.com or send me a message on discord. 1. Translations - The Immich mobile app has been translated into [17 languages][github-langs] so far! To contribute with translations, email me at alex.tran1502@gmail.com or send me a message on discord.
1. Development - If you are a programmer or developer, take a look at Immich's [technology stack](/docs/developer/architecture.mdx) and consider fixing bugs or building new features. The team and I are always looking for new contributors. For information about how to contribute as a developer, see the [Developer](/docs/developer/architecture.mdx) section. 1. Development - If you are a programmer or developer, take a look at Immich's [technology stack](/docs/developer/architecture.mdx) and consider fixing bugs or building new features. The team and I are always looking for new contributors. For information about how to contribute as a developer, see the [Developer](/docs/developer/architecture.mdx) section.

View File

@@ -14,6 +14,12 @@ The admin user can set the template by using the template builder in the `Admini
Year/Year-Month-Day/Filename.Extension Year/Year-Month-Day/Filename.Extension
``` ```
If you want to change the storage template during the initial setup, first enable the feature.
<img src={require('./img/enable-storage-template.png').default} width="100%" title="Enable Storage Template Setting" />
Then, customize your storage template.
<img src={require('./img/storage-template.png').default} width="100%" title="Storage Template Setting" /> <img src={require('./img/storage-template.png').default} width="100%" title="Storage Template Setting" />
:::tip :::tip

View File

@@ -1,3 +1,9 @@
If you have friends or family members who want to use the application as well, you can create addition accounts. The default password is `password`, and the user has to change their password after logging in to the application for the first time. The system administrator can disable this option by unchecking the option "Require user to change password on first login" in the user registration interface. If you have friends or family members who want to use the application as well, you can create additional accounts for them.
<img src={require('./img/create-new-user.png').default} width="90%" title='New User Registration' /> <img src={require('./img/create-new-user.png').default} width="90%" title='New User Registration' />
In the Administration panel, you can click on the **Create user** button, and you'll be presented with the following dialog:
<img src={require('./img/create-new-user-dialog.png').default} width="90%" title='New User Registration Dialog' />
You can then set an initial password. If you'd like, you can use an easy password like `password`, and keep the setting **Require user to change password on first login** active. This will prompt the user to change their password on first login, to a password that they choose.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB

After

Width:  |  Height:  |  Size: 81 KiB

View File

@@ -119,6 +119,11 @@ const config = {
label: 'GitHub', label: 'GitHub',
position: 'right', position: 'right',
}, },
{
href: 'https://discord.gg/D8JsnBEuKb',
label: 'Discord',
position: 'right',
},
], ],
}, },
footer: { footer: {

3830
docs/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -25,7 +25,7 @@
"classnames": "^2.3.2", "classnames": "^2.3.2",
"clsx": "^2.0.0", "clsx": "^2.0.0",
"docusaurus-lunr-search": "^3.3.2", "docusaurus-lunr-search": "^3.3.2",
"docusaurus-preset-openapi": "^0.7.4", "docusaurus-preset-openapi": "^0.7.5",
"postcss": "^8.4.25", "postcss": "^8.4.25",
"prism-react-renderer": "^2.3.1", "prism-react-renderer": "^2.3.1",
"raw-loader": "^4.0.2", "raw-loader": "^4.0.2",
@@ -53,6 +53,9 @@
] ]
}, },
"engines": { "engines": {
"node": ">=16.14" "node": ">=20"
},
"volta": {
"node": "20.13.1"
} }
} }

View File

@@ -33,6 +33,11 @@ const guides: CommunityGuidesProps[] = [
description: 'Documentation for simple podman setup using quadlets.', description: 'Documentation for simple podman setup using quadlets.',
url: 'https://github.com/tbelway/immich-podman-quadlets/blob/main/docs/install/podman-quadlet.md', url: 'https://github.com/tbelway/immich-podman-quadlets/blob/main/docs/install/podman-quadlet.md',
}, },
{
title: 'Google Photos import + albums',
description: 'Import your Google Photos files into Immich and add your albums',
url: 'https://github.com/immich-app/immich/discussions/1340',
},
]; ];
function CommunityGuide({ title, description, url }: CommunityGuidesProps): JSX.Element { function CommunityGuide({ title, description, url }: CommunityGuidesProps): JSX.Element {

View File

@@ -33,6 +33,11 @@ const projects: CommunityProjectProps[] = [
description: 'A Python script to create albums based on the folder structure of an external library.', description: 'A Python script to create albums based on the folder structure of an external library.',
url: 'https://github.com/Salvoxia/immich-folder-album-creator', url: 'https://github.com/Salvoxia/immich-folder-album-creator',
}, },
{
title: 'Immich-Tools',
description: 'Provides scripts for handling problems on the repair page.',
url: 'https://github.com/clumsyCoder00/Immich-Tools',
},
{ {
title: 'Lightroom Publisher: mi.Immich.Publisher', title: 'Lightroom Publisher: mi.Immich.Publisher',
description: 'Lightroom plugin to publish photos from Lightroom collections to Immich albums.', description: 'Lightroom plugin to publish photos from Lightroom collections to Immich albums.',

View File

@@ -7,7 +7,7 @@ export interface Item {
icon: string; icon: string;
title: string; title: string;
description?: string; description?: string;
release: string; release?: string;
tag?: string; tag?: string;
date: Date; date: Date;
dateType: DateType; dateType: DateType;
@@ -70,10 +70,10 @@ export default function Timeline({ items }: Props): JSX.Element {
target="_blank" target="_blank"
rel="noopener" rel="noopener"
> >
[{item.release}]{' '} [{item.release ?? item.tag}]{' '}
</a> </a>
) : ( ) : (
<span>[{item.release}]</span> item.release && <span>[{item.release}]</span>
)} )}
</span> </span>
</div> </div>

View File

@@ -19,8 +19,8 @@ button {
:root { :root {
--ifm-color-primary: #4250af; --ifm-color-primary: #4250af;
--ifm-color-primary-dark: #4250af; --ifm-color-primary-dark: #4250af;
--ifm-color-primary-darker: 4250af; --ifm-color-primary-darker: #4250af;
--ifm-color-primary-darkest: 4250af; --ifm-color-primary-darkest: #4250af;
--ifm-color-primary-light: #4250af; --ifm-color-primary-light: #4250af;
--ifm-color-primary-lighter: #4250af; --ifm-color-primary-lighter: #4250af;
--ifm-color-primary-lightest: #4250af; --ifm-color-primary-lightest: #4250af;
@@ -41,6 +41,10 @@ button {
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
} }
div[class^='announcementBar_'] {
height: 2rem;
}
.navbar__brand .navbar__title { .navbar__brand .navbar__title {
@apply font-immich-title text-2xl font-normal text-immich-primary dark:text-immich-dark-primary; @apply font-immich-title text-2xl font-normal text-immich-primary dark:text-immich-dark-primary;
} }

View File

@@ -34,14 +34,12 @@ function HomepageHeader() {
Demo portal Demo portal
</Link> </Link>
<a <Link
href="https://github.com/sponsors/immich-app" className="flex place-items-center place-content-center py-3 px-8 border bg-immich-dark-primary dark:bg-immich-primary rounded-full hover:no-underline text-immich-primary dark:text-immich-dark-bg font-bold uppercase"
target="_blank" to="https://discord.gg/D8JsnBEuKb"
rel="noreferrer"
className="flex place-items-center place-content-center py-3 px-8 border bg-immich-sponsor rounded-full no-underline hover:no-underline text-white dark:text-immich-dark-bg dark:bg-immich-sponsor hover:text-white font-bold uppercase"
> >
Sponsor Discord
</a> </Link>
</div> </div>
<img src="/img/immich-screenshots.png" alt="screenshots" width={'70%'} /> <img src="/img/immich-screenshots.png" alt="screenshots" width={'70%'} />
<div className="flex flex-col sm:flex-row place-items-center place-content-center mt-4 gap-1"> <div className="flex flex-col sm:flex-row place-items-center place-content-center mt-4 gap-1">

View File

@@ -55,12 +55,20 @@ import {
mdiChartBoxMultipleOutline, mdiChartBoxMultipleOutline,
mdiAccountGroupOutline, mdiAccountGroupOutline,
mdiFlowerPoppy, mdiFlowerPoppy,
mdiHandshakeOutline,
} from '@mdi/js'; } from '@mdi/js';
import Layout from '@theme/Layout'; import Layout from '@theme/Layout';
import React from 'react'; import React from 'react';
import Timeline, { DateType, Item } from '../components/timeline'; import Timeline, { DateType, Item } from '../components/timeline';
const items: Item[] = [ const items: Item[] = [
{
icon: mdiHandshakeOutline,
description: 'Joined Futo and Immich core team goes full-time',
title: 'Immich joins FUTO!',
date: new Date(2024, 4, 1),
dateType: DateType.DATE,
},
{ {
icon: mdiStar, icon: mdiStar,
description: 'Reached 30K Stars on GitHub!', description: 'Reached 30K Stars on GitHub!',

BIN
docs/static/img/ios-app-store-badge.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -20,8 +20,6 @@ module.exports = {
'immich-dark-bg': 'black', 'immich-dark-bg': 'black',
'immich-dark-fg': '#e5e7eb', 'immich-dark-fg': '#e5e7eb',
'immich-dark-gray': '#212121', 'immich-dark-gray': '#212121',
'immich-sponsor': '#db61a2',
}, },
fontFamily: { fontFamily: {
'immich-title': ['Snowburst One', 'cursive'], 'immich-title': ['Snowburst One', 'cursive'],

1
e2e/.nvmrc Normal file
View File

@@ -0,0 +1 @@
20.13

View File

@@ -16,7 +16,7 @@ x-server-build: &server-common
- IMMICH_METRICS=true - IMMICH_METRICS=true
volumes: volumes:
- upload:/usr/src/app/upload - upload:/usr/src/app/upload
- ../server/test/assets:/data/assets - ./test-assets:/test-assets
depends_on: depends_on:
- redis - redis
- database - database

445
e2e/package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "immich-e2e", "name": "immich-e2e",
"version": "1.103.0", "version": "1.105.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "immich-e2e", "name": "immich-e2e",
"version": "1.103.0", "version": "1.105.1",
"license": "GNU Affero General Public License version 3", "license": "GNU Affero General Public License version 3",
"devDependencies": { "devDependencies": {
"@immich/cli": "file:../cli", "@immich/cli": "file:../cli",
@@ -24,14 +24,14 @@
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3", "eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-unicorn": "^52.0.0", "eslint-plugin-unicorn": "^52.0.0",
"exiftool-vendored": "^24.5.0", "exiftool-vendored": "^26.0.0",
"luxon": "^3.4.4", "luxon": "^3.4.4",
"pg": "^8.11.3", "pg": "^8.11.3",
"pngjs": "^7.0.0", "pngjs": "^7.0.0",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"prettier-plugin-organize-imports": "^3.2.4", "prettier-plugin-organize-imports": "^3.2.4",
"socket.io-client": "^4.7.4", "socket.io-client": "^4.7.4",
"supertest": "^6.3.4", "supertest": "^7.0.0",
"typescript": "^5.3.3", "typescript": "^5.3.3",
"utimes": "^5.2.1", "utimes": "^5.2.1",
"vitest": "^1.3.0" "vitest": "^1.3.0"
@@ -81,7 +81,7 @@
}, },
"../open-api/typescript-sdk": { "../open-api/typescript-sdk": {
"name": "@immich/sdk", "name": "@immich/sdk",
"version": "1.103.0", "version": "1.105.1",
"dev": true, "dev": true,
"license": "GNU Affero General Public License version 3", "license": "GNU Affero General Public License version 3",
"dependencies": { "dependencies": {
@@ -953,9 +953,9 @@
} }
}, },
"node_modules/@photostructure/tz-lookup": { "node_modules/@photostructure/tz-lookup": {
"version": "9.0.2", "version": "10.0.0",
"resolved": "https://registry.npmjs.org/@photostructure/tz-lookup/-/tz-lookup-9.0.2.tgz", "resolved": "https://registry.npmjs.org/@photostructure/tz-lookup/-/tz-lookup-10.0.0.tgz",
"integrity": "sha512-H8+tTt7ilJNkFyb+QgPnLEGUjQzGwiMb9n7lwRZNBgSKL3VZs9AkjI1E//FcwPjNafwAH932U92+xTqJiF3Bbw==", "integrity": "sha512-8ZAjoj/irCuvUlyEinQ/HB6A8hP3bD1dgTOZvfl1b9nAwqniutFDHOQRcGM6Crea68bOwPj010f0Z4KkmuLHEA==",
"dev": true "dev": true
}, },
"node_modules/@pkgr/core": { "node_modules/@pkgr/core": {
@@ -971,12 +971,12 @@
} }
}, },
"node_modules/@playwright/test": { "node_modules/@playwright/test": {
"version": "1.43.1", "version": "1.44.0",
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.43.1.tgz", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.0.tgz",
"integrity": "sha512-HgtQzFgNEEo4TE22K/X7sYTYNqEMMTZmFS8kTq6m8hXj+m1D8TgwgIbumHddJa9h4yl4GkKb8/bgAl2+g7eDgA==", "integrity": "sha512-rNX5lbNidamSUorBhB4XZ9SQTjAqfe5M+p37Z8ic0jPFBMo5iCtQz1kRWkEMg+rYOKSlVycpQmpqjSFq7LXOfg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"playwright": "1.43.1" "playwright": "1.44.0"
}, },
"bin": { "bin": {
"playwright": "cli.js" "playwright": "cli.js"
@@ -986,9 +986,9 @@
} }
}, },
"node_modules/@rollup/rollup-android-arm-eabi": { "node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz",
"integrity": "sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==", "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@@ -999,9 +999,9 @@
] ]
}, },
"node_modules/@rollup/rollup-android-arm64": { "node_modules/@rollup/rollup-android-arm64": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz",
"integrity": "sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==", "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1012,9 +1012,9 @@
] ]
}, },
"node_modules/@rollup/rollup-darwin-arm64": { "node_modules/@rollup/rollup-darwin-arm64": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz",
"integrity": "sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==", "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1025,9 +1025,9 @@
] ]
}, },
"node_modules/@rollup/rollup-darwin-x64": { "node_modules/@rollup/rollup-darwin-x64": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz",
"integrity": "sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==", "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1038,9 +1038,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm-gnueabihf": { "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz",
"integrity": "sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==", "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@@ -1051,9 +1051,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm-musleabihf": { "node_modules/@rollup/rollup-linux-arm-musleabihf": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz",
"integrity": "sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==", "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@@ -1064,9 +1064,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm64-gnu": { "node_modules/@rollup/rollup-linux-arm64-gnu": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz",
"integrity": "sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==", "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1077,9 +1077,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-arm64-musl": { "node_modules/@rollup/rollup-linux-arm64-musl": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz",
"integrity": "sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==", "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1090,9 +1090,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": { "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz",
"integrity": "sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==", "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==",
"cpu": [ "cpu": [
"ppc64" "ppc64"
], ],
@@ -1103,9 +1103,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-riscv64-gnu": { "node_modules/@rollup/rollup-linux-riscv64-gnu": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz",
"integrity": "sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==", "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==",
"cpu": [ "cpu": [
"riscv64" "riscv64"
], ],
@@ -1116,9 +1116,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-s390x-gnu": { "node_modules/@rollup/rollup-linux-s390x-gnu": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz",
"integrity": "sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==", "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==",
"cpu": [ "cpu": [
"s390x" "s390x"
], ],
@@ -1129,9 +1129,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-x64-gnu": { "node_modules/@rollup/rollup-linux-x64-gnu": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz",
"integrity": "sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==", "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1142,9 +1142,9 @@
] ]
}, },
"node_modules/@rollup/rollup-linux-x64-musl": { "node_modules/@rollup/rollup-linux-x64-musl": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz",
"integrity": "sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==", "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1155,9 +1155,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-arm64-msvc": { "node_modules/@rollup/rollup-win32-arm64-msvc": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz",
"integrity": "sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==", "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1168,9 +1168,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-ia32-msvc": { "node_modules/@rollup/rollup-win32-ia32-msvc": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz",
"integrity": "sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==", "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==",
"cpu": [ "cpu": [
"ia32" "ia32"
], ],
@@ -1181,9 +1181,9 @@
] ]
}, },
"node_modules/@rollup/rollup-win32-x64-msvc": { "node_modules/@rollup/rollup-win32-x64-msvc": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz",
"integrity": "sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==", "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1236,9 +1236,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "20.12.7", "version": "20.12.11",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.11.tgz",
"integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "integrity": "sha512-vDg9PZ/zi+Nqp6boSOT7plNuthRugEKixDv5sFTIpkE89MmNtEArAShI4mxuX2+UrLEe9pxC1vm2cjm9YlWbJw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"undici-types": "~5.26.4" "undici-types": "~5.26.4"
@@ -1251,9 +1251,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/pg": { "node_modules/@types/pg": {
"version": "8.11.5", "version": "8.11.6",
"resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.11.5.tgz", "resolved": "https://registry.npmjs.org/@types/pg/-/pg-8.11.6.tgz",
"integrity": "sha512-2xMjVviMxneZHDHX5p5S6tsRRs7TpDHeeK7kTTMe/kAC/mRRNjWHjZg0rkiY+e17jXSZV3zJYDxXV8Cy72/Vuw==", "integrity": "sha512-/2WmmBXHLsfRqzfHW7BNZ8SbYzE8OSk7i3WjFYvfgRHj7S1xj+16Je5fUKv3lVdVzk/zn9TXOqf+avFCFIE0yQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/node": "*", "@types/node": "*",
@@ -1319,9 +1319,9 @@
} }
}, },
"node_modules/@types/pngjs": { "node_modules/@types/pngjs": {
"version": "6.0.4", "version": "6.0.5",
"resolved": "https://registry.npmjs.org/@types/pngjs/-/pngjs-6.0.4.tgz", "resolved": "https://registry.npmjs.org/@types/pngjs/-/pngjs-6.0.5.tgz",
"integrity": "sha512-atAK9xLKOnxiuArxcHovmnOUUGBZOQ3f0vCf43FnoKs6XnqiambT1kkJWmdo71IR+BoXSh+CueeFR0GfH3dTlQ==", "integrity": "sha512-0k5eKfrA83JOZPppLtS2C7OUtyNAl2wKNxfyYl9Q5g9lPkgBl/9hNyAu6HuEH2J4XmIv2znEpkDd0SaZVxW6iQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/node": "*" "@types/node": "*"
@@ -1355,16 +1355,16 @@
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.8.0.tgz",
"integrity": "sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==", "integrity": "sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/regexpp": "^4.10.0", "@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "7.7.0", "@typescript-eslint/scope-manager": "7.8.0",
"@typescript-eslint/type-utils": "7.7.0", "@typescript-eslint/type-utils": "7.8.0",
"@typescript-eslint/utils": "7.7.0", "@typescript-eslint/utils": "7.8.0",
"@typescript-eslint/visitor-keys": "7.7.0", "@typescript-eslint/visitor-keys": "7.8.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"ignore": "^5.3.1", "ignore": "^5.3.1",
@@ -1390,15 +1390,15 @@
} }
}, },
"node_modules/@typescript-eslint/parser": { "node_modules/@typescript-eslint/parser": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.8.0.tgz",
"integrity": "sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==", "integrity": "sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/scope-manager": "7.7.0", "@typescript-eslint/scope-manager": "7.8.0",
"@typescript-eslint/types": "7.7.0", "@typescript-eslint/types": "7.8.0",
"@typescript-eslint/typescript-estree": "7.7.0", "@typescript-eslint/typescript-estree": "7.8.0",
"@typescript-eslint/visitor-keys": "7.7.0", "@typescript-eslint/visitor-keys": "7.8.0",
"debug": "^4.3.4" "debug": "^4.3.4"
}, },
"engines": { "engines": {
@@ -1418,13 +1418,13 @@
} }
}, },
"node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/scope-manager": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz",
"integrity": "sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==", "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "7.7.0", "@typescript-eslint/types": "7.8.0",
"@typescript-eslint/visitor-keys": "7.7.0" "@typescript-eslint/visitor-keys": "7.8.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || >=20.0.0" "node": "^18.18.0 || >=20.0.0"
@@ -1435,13 +1435,13 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils": { "node_modules/@typescript-eslint/type-utils": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.8.0.tgz",
"integrity": "sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==", "integrity": "sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "7.7.0", "@typescript-eslint/typescript-estree": "7.8.0",
"@typescript-eslint/utils": "7.7.0", "@typescript-eslint/utils": "7.8.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^1.3.0" "ts-api-utils": "^1.3.0"
}, },
@@ -1462,9 +1462,9 @@
} }
}, },
"node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/types": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz",
"integrity": "sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==", "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": "^18.18.0 || >=20.0.0" "node": "^18.18.0 || >=20.0.0"
@@ -1475,13 +1475,13 @@
} }
}, },
"node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/typescript-estree": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz",
"integrity": "sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==", "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "7.7.0", "@typescript-eslint/types": "7.8.0",
"@typescript-eslint/visitor-keys": "7.7.0", "@typescript-eslint/visitor-keys": "7.8.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"globby": "^11.1.0", "globby": "^11.1.0",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
@@ -1527,17 +1527,17 @@
} }
}, },
"node_modules/@typescript-eslint/utils": { "node_modules/@typescript-eslint/utils": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz",
"integrity": "sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==", "integrity": "sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
"@types/json-schema": "^7.0.15", "@types/json-schema": "^7.0.15",
"@types/semver": "^7.5.8", "@types/semver": "^7.5.8",
"@typescript-eslint/scope-manager": "7.7.0", "@typescript-eslint/scope-manager": "7.8.0",
"@typescript-eslint/types": "7.7.0", "@typescript-eslint/types": "7.8.0",
"@typescript-eslint/typescript-estree": "7.7.0", "@typescript-eslint/typescript-estree": "7.8.0",
"semver": "^7.6.0" "semver": "^7.6.0"
}, },
"engines": { "engines": {
@@ -1552,12 +1552,12 @@
} }
}, },
"node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/visitor-keys": {
"version": "7.7.0", "version": "7.8.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz",
"integrity": "sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==", "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@typescript-eslint/types": "7.7.0", "@typescript-eslint/types": "7.8.0",
"eslint-visitor-keys": "^3.4.3" "eslint-visitor-keys": "^3.4.3"
}, },
"engines": { "engines": {
@@ -1575,9 +1575,9 @@
"dev": true "dev": true
}, },
"node_modules/@vitest/coverage-v8": { "node_modules/@vitest/coverage-v8": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-1.6.0.tgz",
"integrity": "sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==", "integrity": "sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@ampproject/remapping": "^2.2.1", "@ampproject/remapping": "^2.2.1",
@@ -1598,17 +1598,17 @@
"url": "https://opencollective.com/vitest" "url": "https://opencollective.com/vitest"
}, },
"peerDependencies": { "peerDependencies": {
"vitest": "1.5.0" "vitest": "1.6.0"
} }
}, },
"node_modules/@vitest/expect": { "node_modules/@vitest/expect": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz",
"integrity": "sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==", "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vitest/spy": "1.5.0", "@vitest/spy": "1.6.0",
"@vitest/utils": "1.5.0", "@vitest/utils": "1.6.0",
"chai": "^4.3.10" "chai": "^4.3.10"
}, },
"funding": { "funding": {
@@ -1616,12 +1616,12 @@
} }
}, },
"node_modules/@vitest/runner": { "node_modules/@vitest/runner": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz",
"integrity": "sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==", "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vitest/utils": "1.5.0", "@vitest/utils": "1.6.0",
"p-limit": "^5.0.0", "p-limit": "^5.0.0",
"pathe": "^1.1.1" "pathe": "^1.1.1"
}, },
@@ -1630,9 +1630,9 @@
} }
}, },
"node_modules/@vitest/snapshot": { "node_modules/@vitest/snapshot": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz",
"integrity": "sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==", "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"magic-string": "^0.30.5", "magic-string": "^0.30.5",
@@ -1644,9 +1644,9 @@
} }
}, },
"node_modules/@vitest/spy": { "node_modules/@vitest/spy": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz",
"integrity": "sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==", "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"tinyspy": "^2.2.0" "tinyspy": "^2.2.0"
@@ -1656,9 +1656,9 @@
} }
}, },
"node_modules/@vitest/utils": { "node_modules/@vitest/utils": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.5.0.tgz", "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz",
"integrity": "sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==", "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"diff-sequences": "^29.6.3", "diff-sequences": "^29.6.3",
@@ -2639,26 +2639,26 @@
} }
}, },
"node_modules/exiftool-vendored": { "node_modules/exiftool-vendored": {
"version": "24.6.0", "version": "26.0.0",
"resolved": "https://registry.npmjs.org/exiftool-vendored/-/exiftool-vendored-24.6.0.tgz", "resolved": "https://registry.npmjs.org/exiftool-vendored/-/exiftool-vendored-26.0.0.tgz",
"integrity": "sha512-jGjsoeYmR9VUrlZn0j1wcxMVi5y8C7A4FAa4vm3/l7ThT8d0f+jRcBqtdjaf+P5Ds/F4OgUq+ee/fRVhLy2DrA==", "integrity": "sha512-2TRxx21ovD95VvdSzHb/sTYYcwhiizQIhhVAbrgua9KoL902QRieREGvaUtfBZNjsptdjonuyku2kUBJCPqsgw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@photostructure/tz-lookup": "^9.0.2", "@photostructure/tz-lookup": "^10.0.0",
"@types/luxon": "^3.4.2", "@types/luxon": "^3.4.2",
"batch-cluster": "^13.0.0", "batch-cluster": "^13.0.0",
"he": "^1.2.0", "he": "^1.2.0",
"luxon": "^3.4.4" "luxon": "^3.4.4"
}, },
"optionalDependencies": { "optionalDependencies": {
"exiftool-vendored.exe": "12.78.0", "exiftool-vendored.exe": "12.84.0",
"exiftool-vendored.pl": "12.78.0" "exiftool-vendored.pl": "12.84.0"
} }
}, },
"node_modules/exiftool-vendored.exe": { "node_modules/exiftool-vendored.exe": {
"version": "12.78.0", "version": "12.84.0",
"resolved": "https://registry.npmjs.org/exiftool-vendored.exe/-/exiftool-vendored.exe-12.78.0.tgz", "resolved": "https://registry.npmjs.org/exiftool-vendored.exe/-/exiftool-vendored.exe-12.84.0.tgz",
"integrity": "sha512-eMN7L67sb89xi8sN7INPg19uwa1KibG2oOyGcfOvB47h+1hzmGgivVu/SZIMeOToVIbLRwUl+AFwLYSTNXsJEg==", "integrity": "sha512-9ocqJb0Pr9k0TownEMd75payF/XOQLF/swr/l0Ep49D+m609uIZsW09CtowhXmk1KrIFobS3+SkdXK04CSyUwQ==",
"dev": true, "dev": true,
"optional": true, "optional": true,
"os": [ "os": [
@@ -2666,9 +2666,9 @@
] ]
}, },
"node_modules/exiftool-vendored.pl": { "node_modules/exiftool-vendored.pl": {
"version": "12.78.0", "version": "12.84.0",
"resolved": "https://registry.npmjs.org/exiftool-vendored.pl/-/exiftool-vendored.pl-12.78.0.tgz", "resolved": "https://registry.npmjs.org/exiftool-vendored.pl/-/exiftool-vendored.pl-12.84.0.tgz",
"integrity": "sha512-K8j9NgxRpTFskFuXEl0AGsc692yYyThe4i3SXgx7xc0fu/vwD2c7tRGljkEtvaweYnMmfrF4DhCpuTu0aux6sg==", "integrity": "sha512-TxvMRaVYtd24Vupn48zy24LOYItIIWEu4dgt/VlqLwxQItTpvJTV9YH04iZRvaNh9ZdPRgVKWMuuUDBBHv+lAg==",
"dev": true, "dev": true,
"optional": true, "optional": true,
"os": [ "os": [
@@ -2817,15 +2817,14 @@
} }
}, },
"node_modules/formidable": { "node_modules/formidable": {
"version": "2.1.2", "version": "3.5.1",
"resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz",
"integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", "integrity": "sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"dezalgo": "^1.0.4", "dezalgo": "^1.0.4",
"hexoid": "^1.0.0", "hexoid": "^1.0.0",
"once": "^1.4.0", "once": "^1.4.0"
"qs": "^6.11.0"
}, },
"funding": { "funding": {
"url": "https://ko-fi.com/tunnckoCore/commissions" "url": "https://ko-fi.com/tunnckoCore/commissions"
@@ -3057,9 +3056,9 @@
} }
}, },
"node_modules/has-proto": { "node_modules/has-proto": {
"version": "1.0.1", "version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
@@ -4195,12 +4194,12 @@
} }
}, },
"node_modules/playwright": { "node_modules/playwright": {
"version": "1.43.1", "version": "1.44.0",
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.43.1.tgz", "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.0.tgz",
"integrity": "sha512-V7SoH0ai2kNt1Md9E3Gwas5B9m8KR2GVvwZnAI6Pg0m3sh7UvgiYhRrhsziCmqMJNouPckiOhk8T+9bSAK0VIA==", "integrity": "sha512-F9b3GUCLQ3Nffrfb6dunPOkE5Mh68tR7zN32L4jCk4FjQamgesGay7/dAAe1WaMEGV04DkdJfcJzjoCKygUaRQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"playwright-core": "1.43.1" "playwright-core": "1.44.0"
}, },
"bin": { "bin": {
"playwright": "cli.js" "playwright": "cli.js"
@@ -4213,9 +4212,9 @@
} }
}, },
"node_modules/playwright-core": { "node_modules/playwright-core": {
"version": "1.43.1", "version": "1.44.0",
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.1.tgz", "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.0.tgz",
"integrity": "sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==", "integrity": "sha512-ZTbkNpFfYcGWohvTTl+xewITm7EOuqIqex0c7dNZ+aXsbrLj0qI8XlGKfPpipjm0Wny/4Lt4CJsWJk1stVS5qQ==",
"dev": true, "dev": true,
"bin": { "bin": {
"playwright-core": "cli.js" "playwright-core": "cli.js"
@@ -4395,12 +4394,12 @@
} }
}, },
"node_modules/qs": { "node_modules/qs": {
"version": "6.11.2", "version": "6.12.1",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz",
"integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"side-channel": "^1.0.4" "side-channel": "^1.0.6"
}, },
"engines": { "engines": {
"node": ">=0.6" "node": ">=0.6"
@@ -4430,9 +4429,9 @@
] ]
}, },
"node_modules/react-is": { "node_modules/react-is": {
"version": "18.2.0", "version": "18.3.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
"dev": true "dev": true
}, },
"node_modules/read-pkg": { "node_modules/read-pkg": {
@@ -4633,9 +4632,9 @@
} }
}, },
"node_modules/rollup": { "node_modules/rollup": {
"version": "4.14.3", "version": "4.17.2",
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.3.tgz", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz",
"integrity": "sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==", "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/estree": "1.0.5" "@types/estree": "1.0.5"
@@ -4648,22 +4647,22 @@
"npm": ">=8.0.0" "npm": ">=8.0.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@rollup/rollup-android-arm-eabi": "4.14.3", "@rollup/rollup-android-arm-eabi": "4.17.2",
"@rollup/rollup-android-arm64": "4.14.3", "@rollup/rollup-android-arm64": "4.17.2",
"@rollup/rollup-darwin-arm64": "4.14.3", "@rollup/rollup-darwin-arm64": "4.17.2",
"@rollup/rollup-darwin-x64": "4.14.3", "@rollup/rollup-darwin-x64": "4.17.2",
"@rollup/rollup-linux-arm-gnueabihf": "4.14.3", "@rollup/rollup-linux-arm-gnueabihf": "4.17.2",
"@rollup/rollup-linux-arm-musleabihf": "4.14.3", "@rollup/rollup-linux-arm-musleabihf": "4.17.2",
"@rollup/rollup-linux-arm64-gnu": "4.14.3", "@rollup/rollup-linux-arm64-gnu": "4.17.2",
"@rollup/rollup-linux-arm64-musl": "4.14.3", "@rollup/rollup-linux-arm64-musl": "4.17.2",
"@rollup/rollup-linux-powerpc64le-gnu": "4.14.3", "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2",
"@rollup/rollup-linux-riscv64-gnu": "4.14.3", "@rollup/rollup-linux-riscv64-gnu": "4.17.2",
"@rollup/rollup-linux-s390x-gnu": "4.14.3", "@rollup/rollup-linux-s390x-gnu": "4.17.2",
"@rollup/rollup-linux-x64-gnu": "4.14.3", "@rollup/rollup-linux-x64-gnu": "4.17.2",
"@rollup/rollup-linux-x64-musl": "4.14.3", "@rollup/rollup-linux-x64-musl": "4.17.2",
"@rollup/rollup-win32-arm64-msvc": "4.14.3", "@rollup/rollup-win32-arm64-msvc": "4.17.2",
"@rollup/rollup-win32-ia32-msvc": "4.14.3", "@rollup/rollup-win32-ia32-msvc": "4.17.2",
"@rollup/rollup-win32-x64-msvc": "4.14.3", "@rollup/rollup-win32-x64-msvc": "4.17.2",
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
@@ -4732,17 +4731,17 @@
"dev": true "dev": true
}, },
"node_modules/set-function-length": { "node_modules/set-function-length": {
"version": "1.2.1", "version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
"integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"define-data-property": "^1.1.2", "define-data-property": "^1.1.4",
"es-errors": "^1.3.0", "es-errors": "^1.3.0",
"function-bind": "^1.1.2", "function-bind": "^1.1.2",
"get-intrinsic": "^1.2.3", "get-intrinsic": "^1.2.4",
"gopd": "^1.0.1", "gopd": "^1.0.1",
"has-property-descriptors": "^1.0.1" "has-property-descriptors": "^1.0.2"
}, },
"engines": { "engines": {
"node": ">= 0.4" "node": ">= 0.4"
@@ -4770,12 +4769,12 @@
} }
}, },
"node_modules/side-channel": { "node_modules/side-channel": {
"version": "1.0.5", "version": "1.0.6",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.5.tgz", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
"integrity": "sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==", "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"call-bind": "^1.0.6", "call-bind": "^1.0.7",
"es-errors": "^1.3.0", "es-errors": "^1.3.0",
"get-intrinsic": "^1.2.4", "get-intrinsic": "^1.2.4",
"object-inspect": "^1.13.1" "object-inspect": "^1.13.1"
@@ -4988,9 +4987,9 @@
} }
}, },
"node_modules/superagent": { "node_modules/superagent": {
"version": "8.1.2", "version": "9.0.1",
"resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz", "resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.1.tgz",
"integrity": "sha512-6WTxW1EB6yCxV5VFOIPQruWGHqc3yI7hEmZK6h+pyk69Lk/Ut7rLUY6W/ONF2MjBuGjvmMiIpsrVJ2vjrHlslA==", "integrity": "sha512-CcRSdb/P2oUVaEpQ87w9Obsl+E9FruRd6b2b7LdiBtJoyMr2DQt7a89anAfiX/EL59j9b2CbRFvf2S91DhuCww==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"component-emitter": "^1.3.0", "component-emitter": "^1.3.0",
@@ -4998,27 +4997,27 @@
"debug": "^4.3.4", "debug": "^4.3.4",
"fast-safe-stringify": "^2.1.1", "fast-safe-stringify": "^2.1.1",
"form-data": "^4.0.0", "form-data": "^4.0.0",
"formidable": "^2.1.2", "formidable": "^3.5.1",
"methods": "^1.1.2", "methods": "^1.1.2",
"mime": "2.6.0", "mime": "2.6.0",
"qs": "^6.11.0", "qs": "^6.11.0",
"semver": "^7.3.8" "semver": "^7.3.8"
}, },
"engines": { "engines": {
"node": ">=6.4.0 <13 || >=14" "node": ">=14.18.0"
} }
}, },
"node_modules/supertest": { "node_modules/supertest": {
"version": "6.3.4", "version": "7.0.0",
"resolved": "https://registry.npmjs.org/supertest/-/supertest-6.3.4.tgz", "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.0.0.tgz",
"integrity": "sha512-erY3HFDG0dPnhw4U+udPfrzXa4xhSG+n4rxfRuZWCUvjFWwKl+OxWf/7zk50s84/fAAs7vf5QAb9uRa0cCykxw==", "integrity": "sha512-qlsr7fIC0lSddmA3tzojvzubYxvlGtzumcdHgPwbFWMISQwL22MhM2Y3LNt+6w9Yyx7559VW5ab70dgphm8qQA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"methods": "^1.1.2", "methods": "^1.1.2",
"superagent": "^8.1.2" "superagent": "^9.0.1"
}, },
"engines": { "engines": {
"node": ">=6.4.0" "node": ">=14.18.0"
} }
}, },
"node_modules/supports-color": { "node_modules/supports-color": {
@@ -5295,9 +5294,9 @@
} }
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "5.2.9", "version": "5.2.11",
"resolved": "https://registry.npmjs.org/vite/-/vite-5.2.9.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.11.tgz",
"integrity": "sha512-uOQWfuZBlc6Y3W/DTuQ1Sr+oIXWvqljLvS881SVmAj00d5RdgShLcuXWxseWPd4HXwiYBFW/vXHfKFeqj9uQnw==", "integrity": "sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"esbuild": "^0.20.1", "esbuild": "^0.20.1",
@@ -5350,9 +5349,9 @@
} }
}, },
"node_modules/vite-node": { "node_modules/vite-node": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.5.0.tgz", "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz",
"integrity": "sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==", "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"cac": "^6.7.14", "cac": "^6.7.14",
@@ -5386,16 +5385,16 @@
} }
}, },
"node_modules/vitest": { "node_modules/vitest": {
"version": "1.5.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-1.5.0.tgz", "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz",
"integrity": "sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==", "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@vitest/expect": "1.5.0", "@vitest/expect": "1.6.0",
"@vitest/runner": "1.5.0", "@vitest/runner": "1.6.0",
"@vitest/snapshot": "1.5.0", "@vitest/snapshot": "1.6.0",
"@vitest/spy": "1.5.0", "@vitest/spy": "1.6.0",
"@vitest/utils": "1.5.0", "@vitest/utils": "1.6.0",
"acorn-walk": "^8.3.2", "acorn-walk": "^8.3.2",
"chai": "^4.3.10", "chai": "^4.3.10",
"debug": "^4.3.4", "debug": "^4.3.4",
@@ -5409,7 +5408,7 @@
"tinybench": "^2.5.1", "tinybench": "^2.5.1",
"tinypool": "^0.8.3", "tinypool": "^0.8.3",
"vite": "^5.0.0", "vite": "^5.0.0",
"vite-node": "1.5.0", "vite-node": "1.6.0",
"why-is-node-running": "^2.2.2" "why-is-node-running": "^2.2.2"
}, },
"bin": { "bin": {
@@ -5424,8 +5423,8 @@
"peerDependencies": { "peerDependencies": {
"@edge-runtime/vm": "*", "@edge-runtime/vm": "*",
"@types/node": "^18.0.0 || >=20.0.0", "@types/node": "^18.0.0 || >=20.0.0",
"@vitest/browser": "1.5.0", "@vitest/browser": "1.6.0",
"@vitest/ui": "1.5.0", "@vitest/ui": "1.6.0",
"happy-dom": "*", "happy-dom": "*",
"jsdom": "*" "jsdom": "*"
}, },

View File

@@ -1,6 +1,6 @@
{ {
"name": "immich-e2e", "name": "immich-e2e",
"version": "1.103.0", "version": "1.105.1",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"type": "module", "type": "module",
@@ -34,16 +34,19 @@
"eslint-config-prettier": "^9.1.0", "eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3", "eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-unicorn": "^52.0.0", "eslint-plugin-unicorn": "^52.0.0",
"exiftool-vendored": "^24.5.0", "exiftool-vendored": "^26.0.0",
"luxon": "^3.4.4", "luxon": "^3.4.4",
"pg": "^8.11.3", "pg": "^8.11.3",
"pngjs": "^7.0.0", "pngjs": "^7.0.0",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"prettier-plugin-organize-imports": "^3.2.4", "prettier-plugin-organize-imports": "^3.2.4",
"socket.io-client": "^4.7.4", "socket.io-client": "^4.7.4",
"supertest": "^6.3.4", "supertest": "^7.0.0",
"typescript": "^5.3.3", "typescript": "^5.3.3",
"utimes": "^5.2.1", "utimes": "^5.2.1",
"vitest": "^1.3.0" "vitest": "^1.3.0"
},
"volta": {
"node": "20.13.1"
} }
} }

View File

@@ -1,6 +1,7 @@
import { import {
ActivityCreateDto, ActivityCreateDto,
AlbumResponseDto, AlbumResponseDto,
AlbumUserRole,
AssetFileUploadResponseDto, AssetFileUploadResponseDto,
LoginResponseDto, LoginResponseDto,
ReactionType, ReactionType,
@@ -33,7 +34,7 @@ describe('/activity', () => {
createAlbumDto: { createAlbumDto: {
albumName: 'Album 1', albumName: 'Album 1',
assetIds: [asset.id], assetIds: [asset.id],
sharedWithUserIds: [nonOwner.userId], albumUsers: [{ userId: nonOwner.userId, role: AlbumUserRole.Editor }],
}, },
}, },
{ headers: asBearerAuth(admin.accessToken) }, { headers: asBearerAuth(admin.accessToken) },

View File

@@ -49,72 +49,50 @@ describe('/album', () => {
utils.createAsset(user1.accessToken), utils.createAsset(user1.accessToken),
]); ]);
const albums = await Promise.all([ user1Albums = await Promise.all([
// user 1
/* 0 */
utils.createAlbum(user1.accessToken, { utils.createAlbum(user1.accessToken, {
albumName: user1SharedEditorUser, albumName: user1SharedEditorUser,
sharedWithUserIds: [user2.userId], albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Editor }],
assetIds: [user1Asset1.id], assetIds: [user1Asset1.id],
}), }),
/* 1 */
utils.createAlbum(user1.accessToken, { utils.createAlbum(user1.accessToken, {
albumName: user1SharedLink, albumName: user1SharedLink,
assetIds: [user1Asset1.id], assetIds: [user1Asset1.id],
}), }),
/* 2 */
utils.createAlbum(user1.accessToken, { utils.createAlbum(user1.accessToken, {
albumName: user1NotShared, albumName: user1NotShared,
assetIds: [user1Asset1.id, user1Asset2.id], assetIds: [user1Asset1.id, user1Asset2.id],
}), }),
// user 2
/* 3 */
utils.createAlbum(user2.accessToken, {
albumName: user2SharedUser,
sharedWithUserIds: [user1.userId, user3.userId],
}),
/* 4 */
utils.createAlbum(user2.accessToken, { albumName: user2SharedLink }),
/* 5 */
utils.createAlbum(user2.accessToken, { albumName: user2NotShared }),
// user 3
/* 6 */
utils.createAlbum(user3.accessToken, {
albumName: 'Deleted',
sharedWithUserIds: [user1.userId],
}),
// user1 shared with an editor
/* 7 */
utils.createAlbum(user1.accessToken, { utils.createAlbum(user1.accessToken, {
albumName: user1SharedViewerUser, albumName: user1SharedViewerUser,
sharedWithUserIds: [user2.userId], albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Viewer }],
assetIds: [user1Asset1.id], assetIds: [user1Asset1.id],
}), }),
]); ]);
// Make viewer user2Albums = await Promise.all([
await utils.updateAlbumUser(user1.accessToken, { utils.createAlbum(user2.accessToken, {
id: albums[7].id, albumName: user2SharedUser,
userId: user2.userId, albumUsers: [
updateAlbumUserDto: { role: AlbumUserRole.Viewer }, { userId: user1.userId, role: AlbumUserRole.Editor },
{ userId: user3.userId, role: AlbumUserRole.Editor },
],
}),
utils.createAlbum(user2.accessToken, { albumName: user2SharedLink }),
utils.createAlbum(user2.accessToken, { albumName: user2NotShared }),
]);
await utils.createAlbum(user3.accessToken, {
albumName: 'Deleted',
albumUsers: [{ userId: user1.userId, role: AlbumUserRole.Editor }],
}); });
albums[0].albumUsers[0].role = AlbumUserRole.Editor;
albums[3].albumUsers[0].role = AlbumUserRole.Editor;
albums[6].albumUsers[0].role = AlbumUserRole.Editor;
await addAssetsToAlbum( await addAssetsToAlbum(
{ id: albums[3].id, bulkIdsDto: { ids: [user1Asset1.id] } }, { id: user2Albums[0].id, bulkIdsDto: { ids: [user1Asset1.id] } },
{ headers: asBearerAuth(user1.accessToken) }, { headers: asBearerAuth(user1.accessToken) },
); );
albums[3] = await getAlbumInfo({ id: albums[3].id }, { headers: asBearerAuth(user2.accessToken) }); user2Albums[0] = await getAlbumInfo({ id: user2Albums[0].id }, { headers: asBearerAuth(user2.accessToken) });
user1Albums = [...albums.slice(0, 3), albums[7]];
user2Albums = albums.slice(3, 6);
await Promise.all([ await Promise.all([
// add shared link to user1SharedLink album // add shared link to user1SharedLink album
@@ -456,6 +434,20 @@ describe('/album', () => {
expect(status).toBe(400); expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest('Not found or no album.addAsset access')); expect(body).toEqual(errorDto.badRequest('Not found or no album.addAsset access'));
}); });
it('should add duplicate assets only once', async () => {
const asset = await utils.createAsset(user1.accessToken);
const { status, body } = await request(app)
.put(`/album/${user1Albums[0].id}/assets`)
.set('Authorization', `Bearer ${user1.accessToken}`)
.send({ ids: [asset.id, asset.id] });
expect(status).toBe(200);
expect(body).toEqual([
expect.objectContaining({ id: asset.id, success: true }),
expect.objectContaining({ id: asset.id, success: false, error: 'duplicate' }),
]);
});
}); });
describe('PATCH /album/:id', () => { describe('PATCH /album/:id', () => {
@@ -579,6 +571,19 @@ describe('/album', () => {
expect(status).toBe(400); expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest('Not found or no album.removeAsset access')); expect(body).toEqual(errorDto.badRequest('Not found or no album.removeAsset access'));
}); });
it('should remove duplicate assets only once', async () => {
const { status, body } = await request(app)
.delete(`/album/${user1Albums[1].id}/assets`)
.set('Authorization', `Bearer ${user1.accessToken}`)
.send({ ids: [user1Asset1.id, user1Asset1.id] });
expect(status).toBe(200);
expect(body).toEqual([
expect.objectContaining({ id: user1Asset1.id, success: true }),
expect.objectContaining({ id: user1Asset1.id, success: false, error: 'not_found' }),
]);
});
}); });
describe('PUT :id/users', () => { describe('PUT :id/users', () => {
@@ -641,9 +646,11 @@ describe('/album', () => {
it('should allow the album owner to change the role of a shared user', async () => { it('should allow the album owner to change the role of a shared user', async () => {
const album = await utils.createAlbum(user1.accessToken, { const album = await utils.createAlbum(user1.accessToken, {
albumName: 'testAlbum', albumName: 'testAlbum',
sharedWithUserIds: [user2.userId], albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Viewer }],
}); });
expect(album.albumUsers[0].role).toEqual(AlbumUserRole.Viewer);
const { status } = await request(app) const { status } = await request(app)
.put(`/album/${album.id}/user/${user2.userId}`) .put(`/album/${album.id}/user/${user2.userId}`)
.set('Authorization', `Bearer ${user1.accessToken}`) .set('Authorization', `Bearer ${user1.accessToken}`)
@@ -663,9 +670,11 @@ describe('/album', () => {
it('should not allow a shared user to change the role of another shared user', async () => { it('should not allow a shared user to change the role of another shared user', async () => {
const album = await utils.createAlbum(user1.accessToken, { const album = await utils.createAlbum(user1.accessToken, {
albumName: 'testAlbum', albumName: 'testAlbum',
sharedWithUserIds: [user2.userId], albumUsers: [{ userId: user2.userId, role: AlbumUserRole.Viewer }],
}); });
expect(album.albumUsers[0].role).toEqual(AlbumUserRole.Viewer);
const { status, body } = await request(app) const { status, body } = await request(app)
.put(`/album/${album.id}/user/${user2.userId}`) .put(`/album/${album.id}/user/${user2.userId}`)
.set('Authorization', `Bearer ${user2.accessToken}`) .set('Authorization', `Bearer ${user2.accessToken}`)

View File

@@ -102,7 +102,6 @@ describe('/asset', () => {
utils.createAsset(user1.accessToken), utils.createAsset(user1.accessToken),
utils.createAsset(user1.accessToken, { utils.createAsset(user1.accessToken, {
isFavorite: true, isFavorite: true,
isReadOnly: true,
fileCreatedAt: yesterday.toISO(), fileCreatedAt: yesterday.toISO(),
fileModifiedAt: yesterday.toISO(), fileModifiedAt: yesterday.toISO(),
assetData: { filename: 'example.mp4' }, assetData: { filename: 'example.mp4' },

View File

@@ -24,12 +24,12 @@ describe('/search', () => {
// let assetRidge: AssetFileUploadResponseDto; // let assetRidge: AssetFileUploadResponseDto;
// let assetPolemonium: AssetFileUploadResponseDto; // let assetPolemonium: AssetFileUploadResponseDto;
// let assetWood: AssetFileUploadResponseDto; // let assetWood: AssetFileUploadResponseDto;
// let assetGlarus: AssetFileUploadResponseDto;
let assetHeic: AssetFileUploadResponseDto; let assetHeic: AssetFileUploadResponseDto;
let assetRocks: AssetFileUploadResponseDto; let assetRocks: AssetFileUploadResponseDto;
let assetOneJpg6: AssetFileUploadResponseDto; let assetOneJpg6: AssetFileUploadResponseDto;
let assetOneHeic6: AssetFileUploadResponseDto; let assetOneHeic6: AssetFileUploadResponseDto;
let assetOneJpg5: AssetFileUploadResponseDto; let assetOneJpg5: AssetFileUploadResponseDto;
let assetGlarus: AssetFileUploadResponseDto;
let assetSprings: AssetFileUploadResponseDto; let assetSprings: AssetFileUploadResponseDto;
let assetLast: AssetFileUploadResponseDto; let assetLast: AssetFileUploadResponseDto;
let cities: string[]; let cities: string[];
@@ -52,11 +52,12 @@ describe('/search', () => {
{ filename: '/formats/motionphoto/Samsung One UI 6.jpg' }, { filename: '/formats/motionphoto/Samsung One UI 6.jpg' },
{ filename: '/formats/motionphoto/Samsung One UI 6.heic' }, { filename: '/formats/motionphoto/Samsung One UI 6.heic' },
{ filename: '/formats/motionphoto/Samsung One UI 5.jpg' }, { filename: '/formats/motionphoto/Samsung One UI 5.jpg' },
{ filename: '/formats/raw/Nikon/D80/glarus.nef', dto: { isReadOnly: true } },
{ filename: '/metadata/gps-position/thompson-springs.jpg', dto: { isArchived: true } }, { filename: '/metadata/gps-position/thompson-springs.jpg', dto: { isArchived: true } },
// used for search suggestions // used for search suggestions
{ filename: '/formats/png/density_plot.png' }, { filename: '/formats/png/density_plot.png' },
{ filename: '/formats/raw/Nikon/D80/glarus.nef' },
{ filename: '/formats/raw/Nikon/D700/philadelphia.nef' }, { filename: '/formats/raw/Nikon/D700/philadelphia.nef' },
{ filename: '/albums/nature/orychophragmus_violaceus.jpg' }, { filename: '/albums/nature/orychophragmus_violaceus.jpg' },
{ filename: '/albums/nature/tanners_ridge.jpg' }, { filename: '/albums/nature/tanners_ridge.jpg' },
@@ -93,9 +94,9 @@ describe('/search', () => {
{ latitude: 23.133_02, longitude: -82.383_04 }, // havana { latitude: 23.133_02, longitude: -82.383_04 }, // havana
{ latitude: 41.694_11, longitude: 44.833_68 }, // tbilisi { latitude: 41.694_11, longitude: 44.833_68 }, // tbilisi
{ latitude: 31.222_22, longitude: 121.458_06 }, // shanghai { latitude: 31.222_22, longitude: 121.458_06 }, // shanghai
{ latitude: 47.040_57, longitude: 9.068_04 }, // glarus
{ latitude: 38.9711, longitude: -109.7137 }, // thompson springs { latitude: 38.9711, longitude: -109.7137 }, // thompson springs
{ latitude: 40.714_27, longitude: -74.005_97 }, // new york { latitude: 40.714_27, longitude: -74.005_97 }, // new york
{ latitude: 47.040_57, longitude: 9.068_04 }, // glarus
{ latitude: 32.771_52, longitude: -89.116_73 }, // philadelphia { latitude: 32.771_52, longitude: -89.116_73 }, // philadelphia
{ latitude: 31.634_16, longitude: -7.999_94 }, // marrakesh { latitude: 31.634_16, longitude: -7.999_94 }, // marrakesh
{ latitude: 38.523_735_4, longitude: -78.488_619_4 }, // tanners ridge { latitude: 38.523_735_4, longitude: -78.488_619_4 }, // tanners ridge
@@ -123,9 +124,9 @@ describe('/search', () => {
assetOneJpg6, assetOneJpg6,
assetOneHeic6, assetOneHeic6,
assetOneJpg5, assetOneJpg5,
assetGlarus,
assetSprings, assetSprings,
assetDensity, assetDensity,
// assetGlarus,
// assetPhiladelphia, // assetPhiladelphia,
// assetOrychophragmus, // assetOrychophragmus,
// assetRidge, // assetRidge,
@@ -190,16 +191,7 @@ describe('/search', () => {
dto: { size: -1.5 }, dto: { size: -1.5 },
expected: ['size must not be less than 1', 'size must be an integer number'], expected: ['size must not be less than 1', 'size must be an integer number'],
}, },
...[ ...['isArchived', 'isFavorite', 'isEncoded', 'isMotion', 'isOffline', 'isVisible'].map((value) => ({
'isArchived',
'isFavorite',
'isReadOnly',
'isExternal',
'isEncoded',
'isMotion',
'isOffline',
'isVisible',
].map((value) => ({
should: `should reject ${value} not a boolean`, should: `should reject ${value} not a boolean`,
dto: { [value]: 'immich' }, dto: { [value]: 'immich' },
expected: [`${value} must be a boolean value`], expected: [`${value} must be a boolean value`],
@@ -255,14 +247,6 @@ describe('/search', () => {
should: 'should search by isArchived (false)', should: 'should search by isArchived (false)',
deferred: () => ({ dto: { size: 1, isArchived: false }, assets: [assetLast] }), deferred: () => ({ dto: { size: 1, isArchived: false }, assets: [assetLast] }),
}, },
{
should: 'should search by isReadOnly (true)',
deferred: () => ({ dto: { isReadOnly: true }, assets: [assetGlarus] }),
},
{
should: 'should search by isReadOnly (false)',
deferred: () => ({ dto: { size: 1, isReadOnly: false }, assets: [assetLast] }),
},
{ {
should: 'should search by type (image)', should: 'should search by type (image)',
deferred: () => ({ dto: { size: 1, type: 'IMAGE' }, assets: [assetLast] }), deferred: () => ({ dto: { size: 1, type: 'IMAGE' }, assets: [assetLast] }),

View File

@@ -75,6 +75,7 @@ describe('/server-info', () => {
search: true, search: true,
sidecar: true, sidecar: true,
trash: true, trash: true,
email: false,
}); });
}); });
}); });

View File

@@ -86,6 +86,26 @@ describe('/system-config', () => {
expect(body).toEqual(errorDto.unauthorized); expect(body).toEqual(errorDto.unauthorized);
}); });
it('should always return the new config', async () => {
const config = await getSystemConfig(admin.accessToken);
const response1 = await request(app)
.put('/system-config')
.set('Authorization', `Bearer ${admin.accessToken}`)
.send({ ...config, newVersionCheck: { enabled: false } });
expect(response1.status).toBe(200);
expect(response1.body).toEqual({ ...config, newVersionCheck: { enabled: false } });
const response2 = await request(app)
.put('/system-config')
.set('Authorization', `Bearer ${admin.accessToken}`)
.send({ ...config, newVersionCheck: { enabled: true } });
expect(response2.status).toBe(200);
expect(response2.body).toEqual({ ...config, newVersionCheck: { enabled: true } });
});
it('should reject an invalid config entry', async () => { it('should reject an invalid config entry', async () => {
const { status, body } = await request(app) const { status, body } = await request(app)
.put('/system-config') .put('/system-config')

View File

@@ -34,7 +34,6 @@ describe('/timeline', () => {
utils.createAsset(user.accessToken), utils.createAsset(user.accessToken),
utils.createAsset(user.accessToken, { utils.createAsset(user.accessToken, {
isFavorite: true, isFavorite: true,
isReadOnly: true,
fileCreatedAt: yesterday.toISO(), fileCreatedAt: yesterday.toISO(),
fileModifiedAt: yesterday.toISO(), fileModifiedAt: yesterday.toISO(),
assetData: { filename: 'example.mp4' }, assetData: { filename: 'example.mp4' },

View File

@@ -56,8 +56,8 @@ const baseUrl = 'http://127.0.0.1:2283';
export const shareUrl = `${baseUrl}/share`; export const shareUrl = `${baseUrl}/share`;
export const app = `${baseUrl}/api`; export const app = `${baseUrl}/api`;
// TODO move test assets into e2e/assets // TODO move test assets into e2e/assets
export const testAssetDir = path.resolve(`./../server/test/assets/`); export const testAssetDir = path.resolve('./test-assets');
export const testAssetDirInternal = '/data/assets'; export const testAssetDirInternal = '/test-assets';
export const tempDir = tmpdir(); export const tempDir = tmpdir();
export const asBearerAuth = (accessToken: string) => ({ Authorization: `Bearer ${accessToken}` }); export const asBearerAuth = (accessToken: string) => ({ Authorization: `Bearer ${accessToken}` });
export const asKeyAuth = (key: string) => ({ 'x-api-key': key }); export const asKeyAuth = (key: string) => ({ 'x-api-key': key });

View File

@@ -2,14 +2,15 @@
set -o nounset set -o nounset
set -o pipefail set -o pipefail
create_immich_directory() { local -r Tgt='./immich-app' create_immich_directory() {
local -r Tgt='./immich-app'
echo "Creating Immich directory..." echo "Creating Immich directory..."
if [[ -e $Tgt ]]; then if [[ -e $Tgt ]]; then
echo "Found existing directory $Tgt, will overwrite YAML files" echo "Found existing directory $Tgt, will overwrite YAML files"
else else
mkdir "$Tgt" || return mkdir "$Tgt" || return
fi fi
cd "$Tgt" || return cd "$Tgt" || return 1
} }
download_docker_compose_file() { download_docker_compose_file() {
@@ -22,6 +23,16 @@ download_dot_env_file() {
"${Curl[@]}" "$RepoUrl"/example.env -o ./.env "${Curl[@]}" "$RepoUrl"/example.env -o ./.env
} }
generate_random_password() {
echo "Generate random password for .env file..."
rand_pass=$(echo "$RANDOM$(date)$RANDOM" | sha256sum | base64 | head -c10)
if [ -z "$rand_pass" ]; then
sed -i -e "s/DB_PASSWORD=postgres/DB_PASSWORD=postgres${RANDOM}${RANDOM}/" ./.env
else
sed -i -e "s/DB_PASSWORD=postgres/DB_PASSWORD=${rand_pass}/" ./.env
fi
}
start_docker_compose() { start_docker_compose() {
echo "Starting Immich's docker containers" echo "Starting Immich's docker containers"
@@ -40,7 +51,7 @@ start_docker_compose() {
show_friendly_message() { show_friendly_message() {
local ip_address local ip_address
ip_address=$(hostname -I | awk '{print $1}') ip_address=$(hostname -I | awk '{print $1}')
cat << EOF cat <<EOF
Successfully deployed Immich! Successfully deployed Immich!
You can access the website at http://$ip_address:2283 and the server URL for the mobile app is http://$ip_address:2283/api You can access the website at http://$ip_address:2283 and the server URL for the mobile app is http://$ip_address:2283/api
--------------------------------------------------- ---------------------------------------------------
@@ -66,11 +77,25 @@ main() {
return 14 return 14
fi fi
create_immich_directory || { echo 'error creating Immich directory'; return 10; } create_immich_directory || {
download_docker_compose_file || { echo 'error downloading Docker Compose file'; return 11; } echo 'error creating Immich directory'
download_dot_env_file || { echo 'error downloading .env'; return 12; } return 10
start_docker_compose || { echo 'error starting Docker'; return 13; } }
return 0; } download_docker_compose_file || {
echo 'error downloading Docker Compose file'
return 11
}
download_dot_env_file || {
echo 'error downloading .env'
return 12
}
generate_random_password
start_docker_compose || {
echo 'error starting Docker'
return 13
}
return 0
}
main main
Exit=$? Exit=$?

View File

@@ -30,6 +30,8 @@ download:
locale_code: pl-PL locale_code: pl-PL
- file: mobile/assets/i18n/fi-FI.json - file: mobile/assets/i18n/fi-FI.json
locale_code: fi-FI locale_code: fi-FI
- file: mobile/assets/i18n/pt-BR.json
locale_code: pt-BR
- file: mobile/assets/i18n/pt-PT.json - file: mobile/assets/i18n/pt-PT.json
locale_code: pt-PT locale_code: pt-PT
- file: mobile/assets/i18n/pt-BR.json - file: mobile/assets/i18n/pt-BR.json

View File

@@ -1,6 +1,6 @@
ARG DEVICE=cpu ARG DEVICE=cpu
FROM python:3.11-bookworm@sha256:abe34d06fca0165d40375b0e840fd3296ad2d075954d3a400d4efefe0e9b3012 as builder-cpu FROM python:3.11-bookworm@sha256:96de1ea4821d73fd2c1853d1fdc3cf794ccfe2fae4c3f08579e846de51760a61 as builder-cpu
FROM openvino/ubuntu22_runtime:2023.3.0@sha256:176646df619032ea6c10faf842867119c393e7497b7f88b5e307e932a0fd5aa8 as builder-openvino FROM openvino/ubuntu22_runtime:2023.3.0@sha256:176646df619032ea6c10faf842867119c393e7497b7f88b5e307e932a0fd5aa8 as builder-openvino
USER root USER root
@@ -36,7 +36,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:dad770592ab3582ab2dabcf0e18a863df9d86bd9d23efcfa614110ce49ac20e4 as prod-cpu FROM python:3.11-slim-bookworm@sha256:fc39d2e68b554c3f0a5cb8a776280c0b3d73b4c04b83dbade835e2a171ca27ef as prod-cpu
FROM openvino/ubuntu22_runtime:2023.3.0@sha256:176646df619032ea6c10faf842867119c393e7497b7f88b5e307e932a0fd5aa8 as prod-openvino FROM openvino/ubuntu22_runtime:2023.3.0@sha256:176646df619032ea6c10faf842867119c393e7497b7f88b5e307e932a0fd5aa8 as prod-openvino
USER root USER root

View File

@@ -1,4 +1,4 @@
FROM mambaorg/micromamba:bookworm-slim@sha256:cca06974c6ff7641cc4ec15bcc60d0147084d9b9476fc61a06e7524891349a1f as builder FROM mambaorg/micromamba:bookworm-slim@sha256:abcb3ae7e3521d08e1fdeaff63131765b34e4f29b6a8a2c28660036b53841569 as builder
ENV NODE_ENV=production \ ENV NODE_ENV=production \
TRANSFORMERS_CACHE=/cache \ TRANSFORMERS_CACHE=/cache \

View File

@@ -64,33 +64,33 @@ trio = ["trio (>=0.23)"]
[[package]] [[package]]
name = "black" name = "black"
version = "24.4.0" version = "24.4.2"
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.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6ad001a9ddd9b8dfd1b434d566be39b1cd502802c8d38bbb1ba612afda2ef436"}, {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"},
{file = "black-24.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e3a3a092b8b756c643fe45f4624dbd5a389f770a4ac294cf4d0fce6af86addaf"}, {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"},
{file = "black-24.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dae79397f367ac8d7adb6c779813328f6d690943f64b32983e896bcccd18cbad"}, {file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"},
{file = "black-24.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:71d998b73c957444fb7c52096c3843875f4b6b47a54972598741fe9a7f737fcb"}, {file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"},
{file = "black-24.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8e5537f456a22cf5cfcb2707803431d2feeb82ab3748ade280d6ccd0b40ed2e8"}, {file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"},
{file = "black-24.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:64e60a7edd71fd542a10a9643bf369bfd2644de95ec71e86790b063aa02ff745"}, {file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"},
{file = "black-24.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5cd5b4f76056cecce3e69b0d4c228326d2595f506797f40b9233424e2524c070"}, {file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"},
{file = "black-24.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:64578cf99b6b46a6301bc28bdb89f9d6f9b592b1c5837818a177c98525dbe397"}, {file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"},
{file = "black-24.4.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f95cece33329dc4aa3b0e1a771c41075812e46cf3d6e3f1dfe3d91ff09826ed2"}, {file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"},
{file = "black-24.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4396ca365a4310beef84d446ca5016f671b10f07abdba3e4e4304218d2c71d33"}, {file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"},
{file = "black-24.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44d99dfdf37a2a00a6f7a8dcbd19edf361d056ee51093b2445de7ca09adac965"}, {file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"},
{file = "black-24.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:21f9407063ec71c5580b8ad975653c66508d6a9f57bd008bb8691d273705adcd"}, {file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"},
{file = "black-24.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:652e55bb722ca026299eb74e53880ee2315b181dfdd44dca98e43448620ddec1"}, {file = "black-24.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf10f7310db693bb62692609b397e8d67257c55f949abde4c67f9cc574492cc7"},
{file = "black-24.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7f2966b9b2b3b7104fca9d75b2ee856fe3fdd7ed9e47c753a4bb1a675f2caab8"}, {file = "black-24.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98e123f1d5cfd42f886624d84464f7756f60ff6eab89ae845210631714f6db94"},
{file = "black-24.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bb9ca06e556a09f7f7177bc7cb604e5ed2d2df1e9119e4f7d2f1f7071c32e5d"}, {file = "black-24.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48a85f2cb5e6799a9ef05347b476cce6c182d6c71ee36925a6c194d074336ef8"},
{file = "black-24.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4e71cdebdc8efeb6deaf5f2deb28325f8614d48426bed118ecc2dcaefb9ebf3"}, {file = "black-24.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b1530ae42e9d6d5b670a34db49a94115a64596bc77710b1d05e9801e62ca0a7c"},
{file = "black-24.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6644f97a7ef6f401a150cca551a1ff97e03c25d8519ee0bbc9b0058772882665"}, {file = "black-24.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1"},
{file = "black-24.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:75a2d0b4f5eb81f7eebc31f788f9830a6ce10a68c91fbe0fade34fff7a2836e6"}, {file = "black-24.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da33a1a5e49c4122ccdfd56cd021ff1ebc4a1ec4e2d01594fef9b6f267a9e741"},
{file = "black-24.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb949f56a63c5e134dfdca12091e98ffb5fd446293ebae123d10fc1abad00b9e"}, {file = "black-24.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e"},
{file = "black-24.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:7852b05d02b5b9a8c893ab95863ef8986e4dda29af80bbbda94d7aee1abf8702"}, {file = "black-24.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9176b9832e84308818a99a561e90aa479e73c523b3f77afd07913380ae2eab7"},
{file = "black-24.4.0-py3-none-any.whl", hash = "sha256:74eb9b5420e26b42c00a3ff470dc0cd144b80a766128b1771d07643165e08d0e"}, {file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"},
{file = "black-24.4.0.tar.gz", hash = "sha256:f07b69fda20578367eaebbd670ff8fc653ab181e1ff95d84497f9fa20e7d0641"}, {file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"},
] ]
[package.dependencies] [package.dependencies]
@@ -679,14 +679,14 @@ files = [
test = ["pytest (>=6)"] test = ["pytest (>=6)"]
[[package]] [[package]]
name = "fastapi" name = "fastapi-slim"
version = "0.110.1" version = "0.111.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-0.110.1-py3-none-any.whl", hash = "sha256:5df913203c482f820d31f48e635e022f8cbfe7350e4830ef05a3163925b1addc"}, {file = "fastapi_slim-0.111.0-py3-none-any.whl", hash = "sha256:6e4b04a555496e5a2590031fcae3ef8e364ad4901b340033e2e1d8136471aca2"},
{file = "fastapi-0.110.1.tar.gz", hash = "sha256:6feac43ec359dfe4f45b2c18ec8c94edb8dc2dfc461d417d9e626590c071baad"}, {file = "fastapi_slim-0.111.0.tar.gz", hash = "sha256:100720e4362ec4de97dee83a579b970e79fb5bf48073b37c9ce9b0e63dda4bec"},
] ]
[package.dependencies] [package.dependencies]
@@ -695,7 +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)", "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 (>=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)"]
standard = ["email_validator (>=2.0.0)", "fastapi-cli (>=0.0.2)", "httpx (>=0.23.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "python-multipart (>=0.0.7)", "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)"]
[[package]] [[package]]
name = "filelock" name = "filelock"
@@ -737,13 +738,13 @@ dotenv = ["python-dotenv"]
[[package]] [[package]]
name = "flask-cors" name = "flask-cors"
version = "4.0.0" version = "4.0.1"
description = "A Flask extension adding a decorator for CORS support" description = "A Flask extension adding a decorator for CORS support"
optional = false optional = false
python-versions = "*" python-versions = "*"
files = [ files = [
{file = "Flask-Cors-4.0.0.tar.gz", hash = "sha256:f268522fcb2f73e2ecdde1ef45e2fd5c71cc48fe03cffb4b441c6d1b40684eb0"}, {file = "Flask_Cors-4.0.1-py2.py3-none-any.whl", hash = "sha256:f2a704e4458665580c074b714c4627dd5a306b333deb9074d0b1794dfa2fb677"},
{file = "Flask_Cors-4.0.0-py2.py3-none-any.whl", hash = "sha256:bc3492bfd6368d27cfe79c7821df5a8a319e1a6d5eab277a3794be19bdc51783"}, {file = "flask_cors-4.0.1.tar.gz", hash = "sha256:eeb69b342142fdbf4766ad99357a7f3876a2ceb77689dc10ff912aac06c389e4"},
] ]
[package.dependencies] [package.dependencies]
@@ -1235,13 +1236,13 @@ socks = ["socksio (==1.*)"]
[[package]] [[package]]
name = "huggingface-hub" name = "huggingface-hub"
version = "0.22.2" version = "0.23.0"
description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub" description = "Client library to download and publish models, datasets and other repos on the huggingface.co hub"
optional = false optional = false
python-versions = ">=3.8.0" python-versions = ">=3.8.0"
files = [ files = [
{file = "huggingface_hub-0.22.2-py3-none-any.whl", hash = "sha256:3429e25f38ccb834d310804a3b711e7e4953db5a9e420cc147a5e194ca90fd17"}, {file = "huggingface_hub-0.23.0-py3-none-any.whl", hash = "sha256:075c30d48ee7db2bba779190dc526d2c11d422aed6f9044c5e2fdc2c432fdb91"},
{file = "huggingface_hub-0.22.2.tar.gz", hash = "sha256:32e9a9a6843c92f253ff9ca16b9985def4d80a93fb357af5353f770ef74a81be"}, {file = "huggingface_hub-0.23.0.tar.gz", hash = "sha256:7126dedd10a4c6fac796ced4d87a8cf004efc722a5125c2c09299017fa366fa9"},
] ]
[package.dependencies] [package.dependencies]
@@ -1254,16 +1255,16 @@ tqdm = ">=4.42.1"
typing-extensions = ">=3.7.4.3" typing-extensions = ">=3.7.4.3"
[package.extras] [package.extras]
all = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "minijinja (>=1.0)", "mypy (==1.5.1)", "numpy", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.3.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] all = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio", "jedi", "minijinja (>=1.0)", "mypy (==1.5.1)", "numpy", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.3.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"]
cli = ["InquirerPy (==0.3.4)"] cli = ["InquirerPy (==0.3.4)"]
dev = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "minijinja (>=1.0)", "mypy (==1.5.1)", "numpy", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.3.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"] dev = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio", "jedi", "minijinja (>=1.0)", "mypy (==1.5.1)", "numpy", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "ruff (>=0.3.0)", "soundfile", "types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)", "urllib3 (<2.0)"]
fastai = ["fastai (>=2.4)", "fastcore (>=1.3.27)", "toml"] fastai = ["fastai (>=2.4)", "fastcore (>=1.3.27)", "toml"]
hf-transfer = ["hf-transfer (>=0.1.4)"] hf-transfer = ["hf-transfer (>=0.1.4)"]
inference = ["aiohttp", "minijinja (>=1.0)"] inference = ["aiohttp", "minijinja (>=1.0)"]
quality = ["mypy (==1.5.1)", "ruff (>=0.3.0)"] quality = ["mypy (==1.5.1)", "ruff (>=0.3.0)"]
tensorflow = ["graphviz", "pydot", "tensorflow"] tensorflow = ["graphviz", "pydot", "tensorflow"]
tensorflow-testing = ["keras (<3.0)", "tensorflow"] tensorflow-testing = ["keras (<3.0)", "tensorflow"]
testing = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "gradio", "jedi", "minijinja (>=1.0)", "numpy", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "soundfile", "urllib3 (<2.0)"] testing = ["InquirerPy (==0.3.4)", "Jinja2", "Pillow", "aiohttp", "fastapi", "gradio", "jedi", "minijinja (>=1.0)", "numpy", "pytest", "pytest-asyncio", "pytest-cov", "pytest-env", "pytest-rerunfailures", "pytest-vcr", "pytest-xdist", "soundfile", "urllib3 (<2.0)"]
torch = ["safetensors", "torch"] torch = ["safetensors", "torch"]
typing = ["types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)"] typing = ["types-PyYAML", "types-requests", "types-simplejson", "types-toml", "types-tqdm", "types-urllib3", "typing-extensions (>=4.8.0)"]
@@ -1373,13 +1374,13 @@ files = [
[[package]] [[package]]
name = "jinja2" name = "jinja2"
version = "3.1.3" version = "3.1.4"
description = "A very fast and expressive template engine." description = "A very fast and expressive template engine."
optional = false optional = false
python-versions = ">=3.7" python-versions = ">=3.7"
files = [ files = [
{file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"},
{file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"},
] ]
[package.dependencies] [package.dependencies]
@@ -1529,13 +1530,13 @@ test = ["pytest (>=7.4)", "pytest-cov (>=4.1)"]
[[package]] [[package]]
name = "locust" name = "locust"
version = "2.26.0" version = "2.27.0"
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.26.0-py3-none-any.whl", hash = "sha256:7957d8346e5830ba35e3a7a9c1eebe0fb73b0be117e54213c61ef3bc658a1ae6"}, {file = "locust-2.27.0-py3-none-any.whl", hash = "sha256:c4db5747eb9a3851216deae8147143d335db41978a9291ac32e113fa9ec8ad39"},
{file = "locust-2.26.0.tar.gz", hash = "sha256:a5cb4c96b8fa1ae5c20876ab8ca9d1e980d56148ed3c187df610cc2546705bff"}, {file = "locust-2.27.0.tar.gz", hash = "sha256:0c6d3d2523976dafe734012c41b2f7d9ad7120cbcea76d47d80cec5d6d139905"},
] ]
[package.dependencies] [package.dependencies]
@@ -1550,7 +1551,6 @@ psutil = ">=5.9.1"
pywin32 = {version = "*", markers = "platform_system == \"Windows\""} pywin32 = {version = "*", markers = "platform_system == \"Windows\""}
pyzmq = ">=25.0.0" pyzmq = ">=25.0.0"
requests = ">=2.26.0" requests = ">=2.26.0"
roundrobin = ">=0.0.2"
tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
Werkzeug = ">=2.0.0" Werkzeug = ">=2.0.0"
@@ -1790,38 +1790,38 @@ files = [
[[package]] [[package]]
name = "mypy" name = "mypy"
version = "1.9.0" version = "1.10.0"
description = "Optional static typing for Python" description = "Optional static typing for Python"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "mypy-1.9.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f8a67616990062232ee4c3952f41c779afac41405806042a8126fe96e098419f"}, {file = "mypy-1.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da1cbf08fb3b851ab3b9523a884c232774008267b1f83371ace57f412fe308c2"},
{file = "mypy-1.9.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d357423fa57a489e8c47b7c85dfb96698caba13d66e086b412298a1a0ea3b0ed"}, {file = "mypy-1.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:12b6bfc1b1a66095ab413160a6e520e1dc076a28f3e22f7fb25ba3b000b4ef99"},
{file = "mypy-1.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49c87c15aed320de9b438ae7b00c1ac91cd393c1b854c2ce538e2a72d55df150"}, {file = "mypy-1.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e36fb078cce9904c7989b9693e41cb9711e0600139ce3970c6ef814b6ebc2b2"},
{file = "mypy-1.9.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:48533cdd345c3c2e5ef48ba3b0d3880b257b423e7995dada04248725c6f77374"}, {file = "mypy-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2b0695d605ddcd3eb2f736cd8b4e388288c21e7de85001e9f85df9187f2b50f9"},
{file = "mypy-1.9.0-cp310-cp310-win_amd64.whl", hash = "sha256:4d3dbd346cfec7cb98e6cbb6e0f3c23618af826316188d587d1c1bc34f0ede03"}, {file = "mypy-1.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:cd777b780312ddb135bceb9bc8722a73ec95e042f911cc279e2ec3c667076051"},
{file = "mypy-1.9.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:653265f9a2784db65bfca694d1edd23093ce49740b2244cde583aeb134c008f3"}, {file = "mypy-1.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3be66771aa5c97602f382230165b856c231d1277c511c9a8dd058be4784472e1"},
{file = "mypy-1.9.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a3c007ff3ee90f69cf0a15cbcdf0995749569b86b6d2f327af01fd1b8aee9dc"}, {file = "mypy-1.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8b2cbaca148d0754a54d44121b5825ae71868c7592a53b7292eeb0f3fdae95ee"},
{file = "mypy-1.9.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2418488264eb41f69cc64a69a745fad4a8f86649af4b1041a4c64ee61fc61129"}, {file = "mypy-1.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ec404a7cbe9fc0e92cb0e67f55ce0c025014e26d33e54d9e506a0f2d07fe5de"},
{file = "mypy-1.9.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:68edad3dc7d70f2f17ae4c6c1b9471a56138ca22722487eebacfd1eb5321d612"}, {file = "mypy-1.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e22e1527dc3d4aa94311d246b59e47f6455b8729f4968765ac1eacf9a4760bc7"},
{file = "mypy-1.9.0-cp311-cp311-win_amd64.whl", hash = "sha256:85ca5fcc24f0b4aeedc1d02f93707bccc04733f21d41c88334c5482219b1ccb3"}, {file = "mypy-1.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:a87dbfa85971e8d59c9cc1fcf534efe664d8949e4c0b6b44e8ca548e746a8d53"},
{file = "mypy-1.9.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aceb1db093b04db5cd390821464504111b8ec3e351eb85afd1433490163d60cd"}, {file = "mypy-1.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:a781f6ad4bab20eef8b65174a57e5203f4be627b46291f4589879bf4e257b97b"},
{file = "mypy-1.9.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0235391f1c6f6ce487b23b9dbd1327b4ec33bb93934aa986efe8a9563d9349e6"}, {file = "mypy-1.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b808e12113505b97d9023b0b5e0c0705a90571c6feefc6f215c1df9381256e30"},
{file = "mypy-1.9.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4d5ddc13421ba3e2e082a6c2d74c2ddb3979c39b582dacd53dd5d9431237185"}, {file = "mypy-1.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f55583b12156c399dce2df7d16f8a5095291354f1e839c252ec6c0611e86e2e"},
{file = "mypy-1.9.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:190da1ee69b427d7efa8aa0d5e5ccd67a4fb04038c380237a0d96829cb157913"}, {file = "mypy-1.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4cf18f9d0efa1b16478c4c129eabec36148032575391095f73cae2e722fcf9d5"},
{file = "mypy-1.9.0-cp312-cp312-win_amd64.whl", hash = "sha256:fe28657de3bfec596bbeef01cb219833ad9d38dd5393fc649f4b366840baefe6"}, {file = "mypy-1.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:bc6ac273b23c6b82da3bb25f4136c4fd42665f17f2cd850771cb600bdd2ebeda"},
{file = "mypy-1.9.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e54396d70be04b34f31d2edf3362c1edd023246c82f1730bbf8768c28db5361b"}, {file = "mypy-1.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9fd50226364cd2737351c79807775136b0abe084433b55b2e29181a4c3c878c0"},
{file = "mypy-1.9.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5e6061f44f2313b94f920e91b204ec600982961e07a17e0f6cd83371cb23f5c2"}, {file = "mypy-1.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f90cff89eea89273727d8783fef5d4a934be2fdca11b47def50cf5d311aff727"},
{file = "mypy-1.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81a10926e5473c5fc3da8abb04119a1f5811a236dc3a38d92015cb1e6ba4cb9e"}, {file = "mypy-1.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fcfc70599efde5c67862a07a1aaf50e55bce629ace26bb19dc17cece5dd31ca4"},
{file = "mypy-1.9.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b685154e22e4e9199fc95f298661deea28aaede5ae16ccc8cbb1045e716b3e04"}, {file = "mypy-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:075cbf81f3e134eadaf247de187bd604748171d6b79736fa9b6c9685b4083061"},
{file = "mypy-1.9.0-cp38-cp38-win_amd64.whl", hash = "sha256:5d741d3fc7c4da608764073089e5f58ef6352bedc223ff58f2f038c2c4698a89"}, {file = "mypy-1.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:3f298531bca95ff615b6e9f2fc0333aae27fa48052903a0ac90215021cdcfa4f"},
{file = "mypy-1.9.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:587ce887f75dd9700252a3abbc9c97bbe165a4a630597845c61279cf32dfbf02"}, {file = "mypy-1.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fa7ef5244615a2523b56c034becde4e9e3f9b034854c93639adb667ec9ec2976"},
{file = "mypy-1.9.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f88566144752999351725ac623471661c9d1cd8caa0134ff98cceeea181789f4"}, {file = "mypy-1.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3236a4c8f535a0631f85f5fcdffba71c7feeef76a6002fcba7c1a8e57c8be1ec"},
{file = "mypy-1.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61758fabd58ce4b0720ae1e2fea5cfd4431591d6d590b197775329264f86311d"}, {file = "mypy-1.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a2b5cdbb5dd35aa08ea9114436e0d79aceb2f38e32c21684dcf8e24e1e92821"},
{file = "mypy-1.9.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e49499be624dead83927e70c756970a0bc8240e9f769389cdf5714b0784ca6bf"}, {file = "mypy-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92f93b21c0fe73dc00abf91022234c79d793318b8a96faac147cd579c1671746"},
{file = "mypy-1.9.0-cp39-cp39-win_amd64.whl", hash = "sha256:571741dc4194b4f82d344b15e8837e8c5fcc462d66d076748142327626a1b6e9"}, {file = "mypy-1.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:28d0e038361b45f099cc086d9dd99c15ff14d0188f44ac883010e172ce86c38a"},
{file = "mypy-1.9.0-py3-none-any.whl", hash = "sha256:a260627a570559181a9ea5de61ac6297aa5af202f06fd7ab093ce74e7181e43e"}, {file = "mypy-1.10.0-py3-none-any.whl", hash = "sha256:f8c083976eb530019175aabadb60921e73b4f45736760826aa1689dda8208aee"},
{file = "mypy-1.9.0.tar.gz", hash = "sha256:3cc5da0127e6a478cddd906068496a97a7618a21ce9b54bde5bf7e539c7af974"}, {file = "mypy-1.10.0.tar.gz", hash = "sha256:3d087fcbec056c4ee34974da493a826ce316947485cef3901f511848e687c131"},
] ]
[package.dependencies] [package.dependencies]
@@ -2077,62 +2077,57 @@ numpy = [
[[package]] [[package]]
name = "orjson" name = "orjson"
version = "3.10.1" version = "3.10.3"
description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "orjson-3.10.1-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8ec2fc456d53ea4a47768f622bb709be68acd455b0c6be57e91462259741c4f3"}, {file = "orjson-3.10.3-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9fb6c3f9f5490a3eb4ddd46fc1b6eadb0d6fc16fb3f07320149c3286a1409dd8"},
{file = "orjson-3.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e900863691d327758be14e2a491931605bd0aded3a21beb6ce133889830b659"}, {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:252124b198662eee80428f1af8c63f7ff077c88723fe206a25df8dc57a57b1fa"},
{file = "orjson-3.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab6ecbd6fe57785ebc86ee49e183f37d45f91b46fc601380c67c5c5e9c0014a2"}, {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9f3e87733823089a338ef9bbf363ef4de45e5c599a9bf50a7a9b82e86d0228da"},
{file = "orjson-3.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8af7c68b01b876335cccfb4eee0beef2b5b6eae1945d46a09a7c24c9faac7a77"}, {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c8334c0d87103bb9fbbe59b78129f1f40d1d1e8355bbed2ca71853af15fa4ed3"},
{file = "orjson-3.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:915abfb2e528677b488a06eba173e9d7706a20fdfe9cdb15890b74ef9791b85e"}, {file = "orjson-3.10.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1952c03439e4dce23482ac846e7961f9d4ec62086eb98ae76d97bd41d72644d7"},
{file = "orjson-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe3fd4a36eff9c63d25503b439531d21828da9def0059c4f472e3845a081aa0b"}, {file = "orjson-3.10.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c0403ed9c706dcd2809f1600ed18f4aae50be263bd7112e54b50e2c2bc3ebd6d"},
{file = "orjson-3.10.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d229564e72cfc062e6481a91977a5165c5a0fdce11ddc19ced8471847a67c517"}, {file = "orjson-3.10.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:382e52aa4270a037d41f325e7d1dfa395b7de0c367800b6f337d8157367bf3a7"},
{file = "orjson-3.10.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9e00495b18304173ac843b5c5fbea7b6f7968564d0d49bef06bfaeca4b656f4e"}, {file = "orjson-3.10.3-cp310-none-win32.whl", hash = "sha256:be2aab54313752c04f2cbaab4515291ef5af8c2256ce22abc007f89f42f49109"},
{file = "orjson-3.10.1-cp310-none-win32.whl", hash = "sha256:fd78ec55179545c108174ba19c1795ced548d6cac4d80d014163033c047ca4ea"}, {file = "orjson-3.10.3-cp310-none-win_amd64.whl", hash = "sha256:416b195f78ae461601893f482287cee1e3059ec49b4f99479aedf22a20b1098b"},
{file = "orjson-3.10.1-cp310-none-win_amd64.whl", hash = "sha256:50ca42b40d5a442a9e22eece8cf42ba3d7cd4cd0f2f20184b4d7682894f05eec"}, {file = "orjson-3.10.3-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:73100d9abbbe730331f2242c1fc0bcb46a3ea3b4ae3348847e5a141265479700"},
{file = "orjson-3.10.1-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b345a3d6953628df2f42502297f6c1e1b475cfbf6268013c94c5ac80e8abc04c"}, {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:544a12eee96e3ab828dbfcb4d5a0023aa971b27143a1d35dc214c176fdfb29b3"},
{file = "orjson-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:caa7395ef51af4190d2c70a364e2f42138e0e5fcb4bc08bc9b76997659b27dab"}, {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:520de5e2ef0b4ae546bea25129d6c7c74edb43fc6cf5213f511a927f2b28148b"},
{file = "orjson-3.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b01d701decd75ae092e5f36f7b88a1e7a1d3bb7c9b9d7694de850fb155578d5a"}, {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ccaa0a401fc02e8828a5bedfd80f8cd389d24f65e5ca3954d72c6582495b4bcf"},
{file = "orjson-3.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b5028981ba393f443d8fed9049211b979cadc9d0afecf162832f5a5b152c6297"}, {file = "orjson-3.10.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7bc9e8bc11bac40f905640acd41cbeaa87209e7e1f57ade386da658092dc16"},
{file = "orjson-3.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:31ff6a222ea362b87bf21ff619598a4dc1106aaafaea32b1c4876d692891ec27"}, {file = "orjson-3.10.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3582b34b70543a1ed6944aca75e219e1192661a63da4d039d088a09c67543b08"},
{file = "orjson-3.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e852a83d7803d3406135fb7a57cf0c1e4a3e73bac80ec621bd32f01c653849c5"}, {file = "orjson-3.10.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1c23dfa91481de880890d17aa7b91d586a4746a4c2aa9a145bebdbaf233768d5"},
{file = "orjson-3.10.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2567bc928ed3c3fcd90998009e8835de7c7dc59aabcf764b8374d36044864f3b"}, {file = "orjson-3.10.3-cp311-none-win32.whl", hash = "sha256:1770e2a0eae728b050705206d84eda8b074b65ee835e7f85c919f5705b006c9b"},
{file = "orjson-3.10.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4ce98cac60b7bb56457bdd2ed7f0d5d7f242d291fdc0ca566c83fa721b52e92d"}, {file = "orjson-3.10.3-cp311-none-win_amd64.whl", hash = "sha256:93433b3c1f852660eb5abdc1f4dd0ced2be031ba30900433223b28ee0140cde5"},
{file = "orjson-3.10.1-cp311-none-win32.whl", hash = "sha256:813905e111318acb356bb8029014c77b4c647f8b03f314e7b475bd9ce6d1a8ce"}, {file = "orjson-3.10.3-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a39aa73e53bec8d410875683bfa3a8edf61e5a1c7bb4014f65f81d36467ea098"},
{file = "orjson-3.10.1-cp311-none-win_amd64.whl", hash = "sha256:03a3ca0b3ed52bed1a869163a4284e8a7b0be6a0359d521e467cdef7e8e8a3ee"}, {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0943a96b3fa09bee1afdfccc2cb236c9c64715afa375b2af296c73d91c23eab2"},
{file = "orjson-3.10.1-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f02c06cee680b1b3a8727ec26c36f4b3c0c9e2b26339d64471034d16f74f4ef5"}, {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e852baafceff8da3c9defae29414cc8513a1586ad93e45f27b89a639c68e8176"},
{file = "orjson-3.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1aa2f127ac546e123283e437cc90b5ecce754a22306c7700b11035dad4ccf85"}, {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18566beb5acd76f3769c1d1a7ec06cdb81edc4d55d2765fb677e3eaa10fa99e0"},
{file = "orjson-3.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2cf29b4b74f585225196944dffdebd549ad2af6da9e80db7115984103fb18a96"}, {file = "orjson-3.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bd2218d5a3aa43060efe649ec564ebedec8ce6ae0a43654b81376216d5ebd42"},
{file = "orjson-3.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1b130c20b116f413caf6059c651ad32215c28500dce9cd029a334a2d84aa66f"}, {file = "orjson-3.10.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cf20465e74c6e17a104ecf01bf8cd3b7b252565b4ccee4548f18b012ff2f8069"},
{file = "orjson-3.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d31f9a709e6114492136e87c7c6da5e21dfedebefa03af85f3ad72656c493ae9"}, {file = "orjson-3.10.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ba7f67aa7f983c4345eeda16054a4677289011a478ca947cd69c0a86ea45e534"},
{file = "orjson-3.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d1d169461726f271ab31633cf0e7e7353417e16fb69256a4f8ecb3246a78d6e"}, {file = "orjson-3.10.3-cp312-none-win32.whl", hash = "sha256:17e0713fc159abc261eea0f4feda611d32eabc35708b74bef6ad44f6c78d5ea0"},
{file = "orjson-3.10.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:57c294d73825c6b7f30d11c9e5900cfec9a814893af7f14efbe06b8d0f25fba9"}, {file = "orjson-3.10.3-cp312-none-win_amd64.whl", hash = "sha256:4c895383b1ec42b017dd2c75ae8a5b862fc489006afde06f14afbdd0309b2af0"},
{file = "orjson-3.10.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d7f11dbacfa9265ec76b4019efffabaabba7a7ebf14078f6b4df9b51c3c9a8ea"}, {file = "orjson-3.10.3-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:be2719e5041e9fb76c8c2c06b9600fe8e8584e6980061ff88dcbc2691a16d20d"},
{file = "orjson-3.10.1-cp312-none-win32.whl", hash = "sha256:d89e5ed68593226c31c76ab4de3e0d35c760bfd3fbf0a74c4b2be1383a1bf123"}, {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0175a5798bdc878956099f5c54b9837cb62cfbf5d0b86ba6d77e43861bcec2"},
{file = "orjson-3.10.1-cp312-none-win_amd64.whl", hash = "sha256:aa76c4fe147fd162107ce1692c39f7189180cfd3a27cfbc2ab5643422812da8e"}, {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:978be58a68ade24f1af7758626806e13cff7748a677faf95fbb298359aa1e20d"},
{file = "orjson-3.10.1-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a2c6a85c92d0e494c1ae117befc93cf8e7bca2075f7fe52e32698da650b2c6d1"}, {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16bda83b5c61586f6f788333d3cf3ed19015e3b9019188c56983b5a299210eb5"},
{file = "orjson-3.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9813f43da955197d36a7365eb99bed42b83680801729ab2487fef305b9ced866"}, {file = "orjson-3.10.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ad1f26bea425041e0a1adad34630c4825a9e3adec49079b1fb6ac8d36f8b754"},
{file = "orjson-3.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ec917b768e2b34b7084cb6c68941f6de5812cc26c6f1a9fecb728e36a3deb9e8"}, {file = "orjson-3.10.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:9e253498bee561fe85d6325ba55ff2ff08fb5e7184cd6a4d7754133bd19c9195"},
{file = "orjson-3.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5252146b3172d75c8a6d27ebca59c9ee066ffc5a277050ccec24821e68742fdf"}, {file = "orjson-3.10.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0a62f9968bab8a676a164263e485f30a0b748255ee2f4ae49a0224be95f4532b"},
{file = "orjson-3.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:536429bb02791a199d976118b95014ad66f74c58b7644d21061c54ad284e00f4"}, {file = "orjson-3.10.3-cp38-none-win32.whl", hash = "sha256:8d0b84403d287d4bfa9bf7d1dc298d5c1c5d9f444f3737929a66f2fe4fb8f134"},
{file = "orjson-3.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7dfed3c3e9b9199fb9c3355b9c7e4649b65f639e50ddf50efdf86b45c6de04b5"}, {file = "orjson-3.10.3-cp38-none-win_amd64.whl", hash = "sha256:8bc7a4df90da5d535e18157220d7915780d07198b54f4de0110eca6b6c11e290"},
{file = "orjson-3.10.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2b230ec35f188f003f5b543644ae486b2998f6afa74ee3a98fc8ed2e45960afc"}, {file = "orjson-3.10.3-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9059d15c30e675a58fdcd6f95465c1522b8426e092de9fff20edebfdc15e1cb0"},
{file = "orjson-3.10.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:01234249ba19c6ab1eb0b8be89f13ea21218b2d72d496ef085cfd37e1bae9dd8"}, {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d40c7f7938c9c2b934b297412c067936d0b54e4b8ab916fd1a9eb8f54c02294"},
{file = "orjson-3.10.1-cp38-none-win32.whl", hash = "sha256:8a884fbf81a3cc22d264ba780920d4885442144e6acaa1411921260416ac9a54"}, {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4a654ec1de8fdaae1d80d55cee65893cb06494e124681ab335218be6a0691e7"},
{file = "orjson-3.10.1-cp38-none-win_amd64.whl", hash = "sha256:dab5f802d52b182163f307d2b1f727d30b1762e1923c64c9c56dd853f9671a49"}, {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:831c6ef73f9aa53c5f40ae8f949ff7681b38eaddb6904aab89dca4d85099cb78"},
{file = "orjson-3.10.1-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a51fd55d4486bc5293b7a400f9acd55a2dc3b5fc8420d5ffe9b1d6bb1a056a5e"}, {file = "orjson-3.10.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99b880d7e34542db89f48d14ddecbd26f06838b12427d5a25d71baceb5ba119d"},
{file = "orjson-3.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53521542a6db1411b3bfa1b24ddce18605a3abdc95a28a67b33f9145f26aa8f2"}, {file = "orjson-3.10.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2e5e176c994ce4bd434d7aafb9ecc893c15f347d3d2bbd8e7ce0b63071c52e25"},
{file = "orjson-3.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:27d610df96ac18ace4931411d489637d20ab3b8f63562b0531bba16011998db0"}, {file = "orjson-3.10.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:b69a58a37dab856491bf2d3bbf259775fdce262b727f96aafbda359cb1d114d8"},
{file = "orjson-3.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79244b1456e5846d44e9846534bd9e3206712936d026ea8e6a55a7374d2c0694"}, {file = "orjson-3.10.3-cp39-none-win32.whl", hash = "sha256:b8d4d1a6868cde356f1402c8faeb50d62cee765a1f7ffcfd6de732ab0581e063"},
{file = "orjson-3.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d751efaa8a49ae15cbebdda747a62a9ae521126e396fda8143858419f3b03610"}, {file = "orjson-3.10.3-cp39-none-win_amd64.whl", hash = "sha256:5102f50c5fc46d94f2033fe00d392588564378260d64377aec702f21a7a22912"},
{file = "orjson-3.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27ff69c620a4fff33267df70cfd21e0097c2a14216e72943bd5414943e376d77"}, {file = "orjson-3.10.3.tar.gz", hash = "sha256:2b166507acae7ba2f7c315dcf185a9111ad5e992ac81f2d507aac39193c2c818"},
{file = "orjson-3.10.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ebc58693464146506fde0c4eb1216ff6d4e40213e61f7d40e2f0dde9b2f21650"},
{file = "orjson-3.10.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5be608c3972ed902e0143a5b8776d81ac1059436915d42defe5c6ae97b3137a4"},
{file = "orjson-3.10.1-cp39-none-win32.whl", hash = "sha256:4ae10753e7511d359405aadcbf96556c86e9dbf3a948d26c2c9f9a150c52b091"},
{file = "orjson-3.10.1-cp39-none-win_amd64.whl", hash = "sha256:fb5bc4caa2c192077fdb02dce4e5ef8639e7f20bec4e3a834346693907362932"},
{file = "orjson-3.10.1.tar.gz", hash = "sha256:a883b28d73370df23ed995c466b4f6c708c1f7a9bdc400fe89165c96c7603204"},
] ]
[[package]] [[package]]
@@ -2260,13 +2255,13 @@ test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-co
[[package]] [[package]]
name = "pluggy" name = "pluggy"
version = "1.4.0" version = "1.5.0"
description = "plugin and hook calling mechanisms for python" description = "plugin and hook calling mechanisms for python"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
{file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
] ]
[package.extras] [package.extras]
@@ -2443,13 +2438,13 @@ files = [
[[package]] [[package]]
name = "pytest" name = "pytest"
version = "8.1.1" version = "8.2.0"
description = "pytest: simple powerful testing with Python" description = "pytest: simple powerful testing with Python"
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "pytest-8.1.1-py3-none-any.whl", hash = "sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7"}, {file = "pytest-8.2.0-py3-none-any.whl", hash = "sha256:1733f0620f6cda4095bbf0d9ff8022486e91892245bb9e7d5542c018f612f233"},
{file = "pytest-8.1.1.tar.gz", hash = "sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044"}, {file = "pytest-8.2.0.tar.gz", hash = "sha256:d507d4482197eac0ba2bae2e9babf0672eb333017bcedaa5fb1a3d42c1174b3f"},
] ]
[package.dependencies] [package.dependencies]
@@ -2457,11 +2452,11 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""}
exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""}
iniconfig = "*" iniconfig = "*"
packaging = "*" packaging = "*"
pluggy = ">=1.4,<2.0" pluggy = ">=1.5,<2.0"
tomli = {version = ">=1", markers = "python_version < \"3.11\""} tomli = {version = ">=1", markers = "python_version < \"3.11\""}
[package.extras] [package.extras]
testing = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
[[package]] [[package]]
name = "pytest-asyncio" name = "pytest-asyncio"
@@ -2802,40 +2797,30 @@ pygments = ">=2.13.0,<3.0.0"
[package.extras] [package.extras]
jupyter = ["ipywidgets (>=7.5.1,<9)"] jupyter = ["ipywidgets (>=7.5.1,<9)"]
[[package]]
name = "roundrobin"
version = "0.0.4"
description = "Collection of roundrobin utilities"
optional = false
python-versions = "*"
files = [
{file = "roundrobin-0.0.4.tar.gz", hash = "sha256:7e9d19a5bd6123d99993fb935fa86d25c88bb2096e493885f61737ed0f5e9abd"},
]
[[package]] [[package]]
name = "ruff" name = "ruff"
version = "0.4.1" version = "0.4.4"
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.4.1-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:2d9ef6231e3fbdc0b8c72404a1a0c46fd0dcea84efca83beb4681c318ea6a953"}, {file = "ruff-0.4.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:29d44ef5bb6a08e235c8249294fa8d431adc1426bfda99ed493119e6f9ea1bf6"},
{file = "ruff-0.4.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9485f54a7189e6f7433e0058cf8581bee45c31a25cd69009d2a040d1bd4bfaef"}, {file = "ruff-0.4.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c4efe62b5bbb24178c950732ddd40712b878a9b96b1d02b0ff0b08a090cbd891"},
{file = "ruff-0.4.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2921ac03ce1383e360e8a95442ffb0d757a6a7ddd9a5be68561a671e0e5807e"}, {file = "ruff-0.4.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c8e2f1e8fc12d07ab521a9005d68a969e167b589cbcaee354cb61e9d9de9c15"},
{file = "ruff-0.4.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eec8d185fe193ad053eda3a6be23069e0c8ba8c5d20bc5ace6e3b9e37d246d3f"}, {file = "ruff-0.4.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:60ed88b636a463214905c002fa3eaab19795679ed55529f91e488db3fe8976ab"},
{file = "ruff-0.4.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:baa27d9d72a94574d250f42b7640b3bd2edc4c58ac8ac2778a8c82374bb27984"}, {file = "ruff-0.4.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b90fc5e170fc71c712cc4d9ab0e24ea505c6a9e4ebf346787a67e691dfb72e85"},
{file = "ruff-0.4.1-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:f1ee41580bff1a651339eb3337c20c12f4037f6110a36ae4a2d864c52e5ef954"}, {file = "ruff-0.4.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:8e7e6ebc10ef16dcdc77fd5557ee60647512b400e4a60bdc4849468f076f6eef"},
{file = "ruff-0.4.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0926cefb57fc5fced629603fbd1a23d458b25418681d96823992ba975f050c2b"}, {file = "ruff-0.4.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9ddb2c494fb79fc208cd15ffe08f32b7682519e067413dbaf5f4b01a6087bcd"},
{file = "ruff-0.4.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2c6e37f2e3cd74496a74af9a4fa67b547ab3ca137688c484749189bf3a686ceb"}, {file = "ruff-0.4.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c51c928a14f9f0a871082603e25a1588059b7e08a920f2f9fa7157b5bf08cfe9"},
{file = "ruff-0.4.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efd703a5975ac1998c2cc5e9494e13b28f31e66c616b0a76e206de2562e0843c"}, {file = "ruff-0.4.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5eb0a4bfd6400b7d07c09a7725e1a98c3b838be557fee229ac0f84d9aa49c36"},
{file = "ruff-0.4.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b92f03b4aa9fa23e1799b40f15f8b95cdc418782a567d6c43def65e1bbb7f1cf"}, {file = "ruff-0.4.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b1867ee9bf3acc21778dcb293db504692eda5f7a11a6e6cc40890182a9f9e595"},
{file = "ruff-0.4.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1c859f294f8633889e7d77de228b203eb0e9a03071b72b5989d89a0cf98ee262"}, {file = "ruff-0.4.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1aecced1269481ef2894cc495647392a34b0bf3e28ff53ed95a385b13aa45768"},
{file = "ruff-0.4.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:b34510141e393519a47f2d7b8216fec747ea1f2c81e85f076e9f2910588d4b64"}, {file = "ruff-0.4.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9da73eb616b3241a307b837f32756dc20a0b07e2bcb694fec73699c93d04a69e"},
{file = "ruff-0.4.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:6e68d248ed688b9d69fd4d18737edcbb79c98b251bba5a2b031ce2470224bdf9"}, {file = "ruff-0.4.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:958b4ea5589706a81065e2a776237de2ecc3e763342e5cc8e02a4a4d8a5e6f95"},
{file = "ruff-0.4.1-py3-none-win32.whl", hash = "sha256:b90506f3d6d1f41f43f9b7b5ff845aeefabed6d2494307bc7b178360a8805252"}, {file = "ruff-0.4.4-py3-none-win32.whl", hash = "sha256:cb53473849f011bca6e754f2cdf47cafc9c4f4ff4570003a0dad0b9b6890e876"},
{file = "ruff-0.4.1-py3-none-win_amd64.whl", hash = "sha256:c7d391e5936af5c9e252743d767c564670dc3889aff460d35c518ee76e4b26d7"}, {file = "ruff-0.4.4-py3-none-win_amd64.whl", hash = "sha256:424e5b72597482543b684c11def82669cc6b395aa8cc69acc1858b5ef3e5daae"},
{file = "ruff-0.4.1-py3-none-win_arm64.whl", hash = "sha256:a1eaf03d87e6a7cd5e661d36d8c6e874693cb9bc3049d110bc9a97b350680c43"}, {file = "ruff-0.4.4-py3-none-win_arm64.whl", hash = "sha256:39df0537b47d3b597293edbb95baf54ff5b49589eb7ff41926d8243caa995ea6"},
{file = "ruff-0.4.1.tar.gz", hash = "sha256:d592116cdbb65f8b1b7e2a2b48297eb865f6bdc20641879aa9d7b9c11d86db79"}, {file = "ruff-0.4.4.tar.gz", hash = "sha256:f87ea42d5cdebdc6a69761a9d0bc83ae9b3b30d0ad78952005ba6568d6c022af"},
] ]
[[package]] [[package]]
@@ -3202,13 +3187,13 @@ files = [
[[package]] [[package]]
name = "tqdm" name = "tqdm"
version = "4.66.1" version = "4.66.3"
description = "Fast, Extensible Progress Meter" description = "Fast, Extensible Progress Meter"
optional = false optional = false
python-versions = ">=3.7" python-versions = ">=3.7"
files = [ files = [
{file = "tqdm-4.66.1-py3-none-any.whl", hash = "sha256:d302b3c5b53d47bce91fea46679d9c3c6508cf6332229aa1e7d8653723793386"}, {file = "tqdm-4.66.3-py3-none-any.whl", hash = "sha256:4f41d54107ff9a223dca80b53efe4fb654c67efaba7f47bada3ee9d50e05bd53"},
{file = "tqdm-4.66.1.tar.gz", hash = "sha256:d88e651f9db8d8551a62556d3cff9e3034274ca5d66e93197cf2490e2dcb69c7"}, {file = "tqdm-4.66.3.tar.gz", hash = "sha256:23097a41eba115ba99ecae40d06444c15d1c0c698d527a01c6c8bd1c5d0647e5"},
] ]
[package.dependencies] [package.dependencies]
@@ -3498,13 +3483,13 @@ files = [
[[package]] [[package]]
name = "werkzeug" name = "werkzeug"
version = "3.0.1" version = "3.0.3"
description = "The comprehensive WSGI web application library." description = "The comprehensive WSGI web application library."
optional = false optional = false
python-versions = ">=3.8" python-versions = ">=3.8"
files = [ files = [
{file = "werkzeug-3.0.1-py3-none-any.whl", hash = "sha256:90a285dc0e42ad56b34e696398b8122ee4c681833fb35b8334a095d82c56da10"}, {file = "werkzeug-3.0.3-py3-none-any.whl", hash = "sha256:fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8"},
{file = "werkzeug-3.0.1.tar.gz", hash = "sha256:507e811ecea72b18a404947aded4b3390e1db8f826b494d76550ef45bb3b1dcc"}, {file = "werkzeug-3.0.3.tar.gz", hash = "sha256:097e5bfda9f0aba8da6b8545146def481d06aa7d3266e7448e2cccf67dd8bd18"},
] ]
[package.dependencies] [package.dependencies]
@@ -3587,4 +3572,4 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
[metadata] [metadata]
lock-version = "2.0" lock-version = "2.0"
python-versions = ">=3.10,<3.12" python-versions = ">=3.10,<3.12"
content-hash = "1b014276ec94f9389459a70d31f0d96d1dd5a138bcc988900865e5f07a72bc62" content-hash = "db51ad1e631b569e106927683a13124252bd80974def1f2edbe23ac87d89c461"

View File

@@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "machine-learning" name = "machine-learning"
version = "1.103.0" version = "1.105.1"
description = "" description = ""
authors = ["Hau Tran <alex.tran1502@gmail.com>"] authors = ["Hau Tran <alex.tran1502@gmail.com>"]
readme = "README.md" readme = "README.md"
@@ -11,7 +11,7 @@ python = ">=3.10,<3.12"
insightface = ">=0.7.3,<1.0" insightface = ">=0.7.3,<1.0"
opencv-python-headless = ">=4.7.0.72,<5.0" opencv-python-headless = ">=4.7.0.72,<5.0"
pillow = ">=9.5.0,<11.0" pillow = ">=9.5.0,<11.0"
fastapi = ">=0.95.2,<1.0" fastapi-slim = ">=0.95.2,<1.0"
uvicorn = {extras = ["standard"], version = ">=0.22.0,<1.0"} uvicorn = {extras = ["standard"], version = ">=0.22.0,<1.0"}
pydantic = "^1.10.8" pydantic = "^1.10.8"
aiocache = ">=0.12.1,<1.0" aiocache = ">=0.12.1,<1.0"

View File

@@ -4,31 +4,8 @@
As always, please consider supporting the project. As always, please consider supporting the project.
🎉 Cheer! 🎉 🎉 Cheers! 🎉
## Support
- - - - - - - -
And as always, bugs are fixed, and many other improvements also come with this release. And as always, bugs are fixed, and many other improvements also come with this release.
Please consider supporting the project.
## Support
<p align="center">
<img src="https://media.giphy.com/media/LStqgGESXW8XnuCv5y/giphy.gif" width="250" title="SUPPORT THE PROJECT!">
</p>
If you find the project helpful, you can support Immich via the following channels.
- Monthly donation via [GitHub Sponsors](https://github.com/sponsors/alextran1502)
- One-time donation via [GitHub Sponsors](https://github.com/sponsors/alextran1502?frequency=one-time&sponsor=alextran1502)
- [Librepay](https://liberapay.com/alex.tran1502/)
- [buymeacoffee](https://www.buymeacoffee.com/altran1502)
- Bitcoin: 3QVAb9dCHutquVejeNXitPqZX26Yg5kxb7
It is a great way to let me know that you want me to continue developing and working on this project for years to come.

View File

@@ -1,4 +0,0 @@
{
"flutterSdkVersion": "3.19.3",
"flavors": {}
}

View File

@@ -1,3 +1,3 @@
{ {
"flutter": "3.16.9" "flutter": "3.19.6"
} }

4
mobile/.gitignore vendored
View File

@@ -54,5 +54,5 @@ default.isar
default.isar.lock default.isar.lock
libisar.so libisar.so
# FVM Version Cache # FVM Version
.fvm/flutter_sdk .fvm/

View File

@@ -1,5 +1,5 @@
{ {
"dart.flutterSdkPath": ".fvm\\versions\\3.16.9", "dart.flutterSdkPath": ".fvm/versions/3.19.3",
"search.exclude": { "search.exclude": {
"**/.fvm": true "**/.fvm": true
}, },

View File

@@ -1,43 +1,45 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
CFPropertyList (3.0.5) CFPropertyList (3.0.7)
base64
nkf
rexml rexml
addressable (2.8.0) addressable (2.8.6)
public_suffix (>= 2.0.2, < 5.0) public_suffix (>= 2.0.2, < 6.0)
artifactory (3.0.15) artifactory (3.0.17)
atomos (0.1.3) atomos (0.1.3)
aws-eventstream (1.2.0) aws-eventstream (1.3.0)
aws-partitions (1.566.0) aws-partitions (1.929.0)
aws-sdk-core (3.130.0) aws-sdk-core (3.196.1)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.525.0) aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.81.0)
aws-sdk-core (~> 3, >= 3.193.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
jmespath (~> 1.0) aws-sdk-s3 (1.151.0)
aws-sdk-kms (1.55.0) aws-sdk-core (~> 3, >= 3.194.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.113.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4) aws-sigv4 (~> 1.8)
aws-sigv4 (1.4.0) aws-sigv4 (1.8.0)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4) babosa (1.0.4)
base64 (0.2.0)
claide (1.1.0) claide (1.1.0)
colored (1.2) colored (1.2)
colored2 (3.1.2) colored2 (3.1.2)
commander (4.6.0) commander (4.6.0)
highline (~> 2.0.0) highline (~> 2.0.0)
declarative (0.0.20) declarative (0.0.20)
digest-crc (0.6.4) digest-crc (0.6.5)
rake (>= 12.0.0, < 14.0.0) rake (>= 12.0.0, < 14.0.0)
domain_name (0.5.20190701) domain_name (0.6.20240107)
unf (>= 0.0.5, < 1.0.0) dotenv (2.8.1)
dotenv (2.7.6)
emoji_regex (3.2.3) emoji_regex (3.2.3)
excon (0.92.0) excon (0.110.0)
faraday (1.10.0) faraday (1.10.3)
faraday-em_http (~> 1.0) faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0) faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1) faraday-excon (~> 1.1)
@@ -56,8 +58,8 @@ GEM
faraday-em_synchrony (1.0.0) faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0) faraday-excon (1.1.0)
faraday-httpclient (1.0.1) faraday-httpclient (1.0.1)
faraday-multipart (1.0.3) faraday-multipart (1.0.4)
multipart-post (>= 1.2, < 3) multipart-post (~> 2)
faraday-net_http (1.0.1) faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0) faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0) faraday-patron (1.0.0)
@@ -65,8 +67,8 @@ GEM
faraday-retry (1.0.3) faraday-retry (1.0.3)
faraday_middleware (1.2.0) faraday_middleware (1.2.0)
faraday (~> 1.0) faraday (~> 1.0)
fastimage (2.2.6) fastimage (2.3.1)
fastlane (2.204.3) fastlane (2.214.0)
CFPropertyList (>= 2.3, < 4.0.0) CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0) addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0) artifactory (~> 3.0)
@@ -90,7 +92,7 @@ GEM
json (< 3.0.0) json (< 3.0.0)
jwt (>= 2.1.0, < 3) jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0) mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (~> 2.0.0) multipart-post (>= 2.0.0, < 3.0.0)
naturally (~> 2.2) naturally (~> 2.2)
optparse (~> 0.1.1) optparse (~> 0.1.1)
plist (>= 3.1.0, < 4.0.0) plist (>= 3.1.0, < 4.0.0)
@@ -106,9 +108,9 @@ GEM
xcpretty (~> 0.3.0) xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3) xcpretty-travis-formatter (>= 0.0.3)
gh_inspector (1.1.3) gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.16.0) google-apis-androidpublisher_v3 (0.54.0)
google-apis-core (>= 0.4, < 2.a) google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.4.2) google-apis-core (0.11.3)
addressable (~> 2.5, >= 2.5.1) addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a) googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a) httpclient (>= 2.8.1, < 3.a)
@@ -116,69 +118,68 @@ GEM
representable (~> 3.0) representable (~> 3.0)
retriable (>= 2.0, < 4.a) retriable (>= 2.0, < 4.a)
rexml rexml
webrick google-apis-iamcredentials_v1 (0.17.0)
google-apis-iamcredentials_v1 (0.10.0) google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (>= 0.4, < 2.a) google-apis-playcustomapp_v1 (0.13.0)
google-apis-playcustomapp_v1 (0.7.0) google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (>= 0.4, < 2.a) google-apis-storage_v1 (0.31.0)
google-apis-storage_v1 (0.11.0) google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (>= 0.4, < 2.a) google-cloud-core (1.7.0)
google-cloud-core (1.6.0) google-cloud-env (>= 1.0, < 3.a)
google-cloud-env (~> 1.0)
google-cloud-errors (~> 1.0) google-cloud-errors (~> 1.0)
google-cloud-env (1.5.0) google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 2.0) faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.2.0) google-cloud-errors (1.4.0)
google-cloud-storage (1.36.1) google-cloud-storage (1.47.0)
addressable (~> 2.8) addressable (~> 2.8)
digest-crc (~> 0.4) digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1) google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.1) google-apis-storage_v1 (~> 0.31.0)
google-cloud-core (~> 1.6) google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a) googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0) mini_mime (~> 1.0)
googleauth (1.1.2) googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a) faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0) jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11) multi_json (~> 1.11)
os (>= 0.9, < 2.0) os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a) signet (>= 0.16, < 2.a)
highline (2.0.3) highline (2.0.3)
http-cookie (1.0.4) http-cookie (1.0.5)
domain_name (~> 0.5) domain_name (~> 0.5)
httpclient (2.8.3) httpclient (2.8.3)
jmespath (1.6.1) jmespath (1.6.2)
json (2.6.1) json (2.7.2)
jwt (2.3.0) jwt (2.8.1)
memoist (0.16.2) base64
mini_magick (4.11.0) mini_magick (4.12.0)
mini_mime (1.1.2) mini_mime (1.1.5)
multi_json (1.15.0) multi_json (1.15.0)
multipart-post (2.0.0) multipart-post (2.4.1)
nanaimo (0.3.0) nanaimo (0.3.0)
naturally (2.2.1) naturally (2.2.1)
nkf (0.2.0)
optparse (0.1.1) optparse (0.1.1)
os (1.1.4) os (1.1.4)
plist (3.6.0) plist (3.7.1)
public_suffix (4.0.6) public_suffix (4.0.7)
rake (13.0.6) rake (13.2.1)
representable (3.1.1) representable (3.2.0)
declarative (< 0.1.0) declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0) trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0) uber (< 0.2.0)
retriable (3.1.2) retriable (3.1.2)
rexml (3.2.5) rexml (3.2.6)
rouge (2.0.7) rouge (2.0.7)
ruby2_keywords (0.0.5) ruby2_keywords (0.0.5)
rubyzip (2.3.2) rubyzip (2.3.2)
security (0.1.3) security (0.1.3)
signet (0.16.1) signet (0.19.0)
addressable (~> 2.8) addressable (~> 2.8)
faraday (>= 0.17.5, < 3.0) faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0) jwt (>= 1.5, < 3.0)
multi_json (~> 1.10) multi_json (~> 1.10)
simctl (1.6.8) simctl (1.6.10)
CFPropertyList CFPropertyList
naturally naturally
terminal-notifier (2.0.0) terminal-notifier (2.0.0)
@@ -186,17 +187,13 @@ GEM
unicode-display_width (~> 1.1, >= 1.1.1) unicode-display_width (~> 1.1, >= 1.1.1)
trailblazer-option (0.1.2) trailblazer-option (0.1.2)
tty-cursor (0.7.1) tty-cursor (0.7.1)
tty-screen (0.8.1) tty-screen (0.8.2)
tty-spinner (0.9.3) tty-spinner (0.9.3)
tty-cursor (~> 0.7) tty-cursor (~> 0.7)
uber (0.1.0) uber (0.1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.1)
unicode-display_width (1.8.0) unicode-display_width (1.8.0)
webrick (1.7.0)
word_wrap (1.0.0) word_wrap (1.0.0)
xcodeproj (1.21.0) xcodeproj (1.24.0)
CFPropertyList (>= 2.3.3, < 4.0) CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3) atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0) claide (>= 1.0.2, < 2.0)
@@ -210,6 +207,7 @@ GEM
PLATFORMS PLATFORMS
x86_64-darwin-21 x86_64-darwin-21
x86_64-linux
DEPENDENCIES DEPENDENCIES
fastlane fastlane

View File

@@ -81,11 +81,11 @@ flutter {
} }
dependencies { dependencies {
def kotlin_version = '1.9.23' def kotlin_version = '1.9.24'
def kotlin_coroutines_version = '1.8.0' def kotlin_coroutines_version = '1.8.0'
def work_version = '2.9.0' def work_version = '2.9.0'
def concurrent_version = '1.1.0' def concurrent_version = '1.1.0'
def guava_version = '33.1.0-android' def guava_version = '33.2.0-android'
def glide_version = '4.16.0' def glide_version = '4.16.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

View File

@@ -52,7 +52,6 @@ class BackgroundServicePlugin : FlutterPlugin, MethodChannel.MethodCallHandler {
.putBoolean(ContentObserverWorker.SHARED_PREF_SERVICE_ENABLED, true) .putBoolean(ContentObserverWorker.SHARED_PREF_SERVICE_ENABLED, true)
.putLong(BackupWorker.SHARED_PREF_CALLBACK_KEY, args.get(0) as Long) .putLong(BackupWorker.SHARED_PREF_CALLBACK_KEY, args.get(0) as Long)
.putString(BackupWorker.SHARED_PREF_NOTIFICATION_TITLE, args.get(1) as String) .putString(BackupWorker.SHARED_PREF_NOTIFICATION_TITLE, args.get(1) as String)
.putString(BackupWorker.SHARED_PREF_SERVER_URL, args.get(3) as String)
.apply() .apply()
ContentObserverWorker.enable(ctx, immediate = args.get(2) as Boolean) ContentObserverWorker.enable(ctx, immediate = args.get(2) as Boolean)
result.success(true) result.success(true)

View File

@@ -11,8 +11,8 @@ import android.os.PowerManager
import android.os.SystemClock import android.os.SystemClock
import android.util.Log import android.util.Log
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.concurrent.futures.CallbackToFutureAdapter
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.concurrent.futures.ResolvableFuture
import androidx.work.BackoffPolicy import androidx.work.BackoffPolicy
import androidx.work.Constraints import androidx.work.Constraints
import androidx.work.ForegroundInfo import androidx.work.ForegroundInfo
@@ -30,16 +30,6 @@ import io.flutter.embedding.engine.loader.FlutterLoader
import io.flutter.plugin.common.MethodCall import io.flutter.plugin.common.MethodCall
import io.flutter.plugin.common.MethodChannel import io.flutter.plugin.common.MethodChannel
import io.flutter.view.FlutterCallbackInformation import io.flutter.view.FlutterCallbackInformation
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlinx.coroutines.withTimeoutOrNull
import java.io.IOException
import java.net.HttpURLConnection
import java.net.InetAddress
import java.net.URL
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
/** /**
@@ -52,6 +42,7 @@ import java.util.concurrent.TimeUnit
*/ */
class BackupWorker(ctx: Context, params: WorkerParameters) : ListenableWorker(ctx, params), MethodChannel.MethodCallHandler { class BackupWorker(ctx: Context, params: WorkerParameters) : ListenableWorker(ctx, params), MethodChannel.MethodCallHandler {
private val resolvableFuture = ResolvableFuture.create<Result>()
private var engine: FlutterEngine? = null private var engine: FlutterEngine? = null
private lateinit var backgroundChannel: MethodChannel private lateinit var backgroundChannel: MethodChannel
private val notificationManager = ctx.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager private val notificationManager = ctx.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
@@ -61,80 +52,35 @@ class BackupWorker(ctx: Context, params: WorkerParameters) : ListenableWorker(ct
private var notificationDetailBuilder: NotificationCompat.Builder? = null private var notificationDetailBuilder: NotificationCompat.Builder? = null
private var fgFuture: ListenableFuture<Void>? = null private var fgFuture: ListenableFuture<Void>? = null
private val job = Job()
private lateinit var completer: CallbackToFutureAdapter.Completer<Result>
private val resolvableFuture = CallbackToFutureAdapter.getFuture { completer ->
this.completer = completer
null
}
init {
resolvableFuture.addListener(
Runnable {
if (resolvableFuture.isCancelled) {
job.cancel()
}
},
taskExecutor.serialTaskExecutor
)
}
override fun startWork(): ListenableFuture<ListenableWorker.Result> { override fun startWork(): ListenableFuture<ListenableWorker.Result> {
Log.d(TAG, "startWork") Log.d(TAG, "startWork")
val ctx = applicationContext val ctx = applicationContext
val prefs = ctx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE)
prefs.getString(SHARED_PREF_SERVER_URL, null) if (!flutterLoader.initialized()) {
?.takeIf { it.isNotEmpty() } flutterLoader.startInitialization(ctx)
?.let { serverUrl -> doCoroutineWork(serverUrl) }
?: doWork()
return resolvableFuture
}
/**
* This function is used to check if server URL is reachable before starting the backup work.
* Check must be done in a background to avoid blocking the main thread.
*/
private fun doCoroutineWork(serverUrl : String) {
CoroutineScope(Dispatchers.Default + job).launch {
val isReachable = isUrlReachableHttp(serverUrl)
withContext(Dispatchers.Main) {
if (isReachable) {
doWork()
} else {
// Fail when the URL is not reachable
completer.set(Result.failure())
}
}
} }
} if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Create a Notification channel if necessary
createChannel()
}
if (isIgnoringBatteryOptimizations) {
// normal background services can only up to 10 minutes
// foreground services are allowed to run indefinitely
// requires battery optimizations to be disabled (either manually by the user
// or by the system learning that immich is important to the user)
val title = ctx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE)
.getString(SHARED_PREF_NOTIFICATION_TITLE, NOTIFICATION_DEFAULT_TITLE)!!
showInfo(getInfoBuilder(title, indeterminate=true).build())
}
engine = FlutterEngine(ctx)
private fun doWork() { flutterLoader.ensureInitializationCompleteAsync(ctx, null, Handler(Looper.getMainLooper())) {
Log.d(TAG, "doWork") runDart()
val ctx = applicationContext }
if (!flutterLoader.initialized()) { return resolvableFuture
flutterLoader.startInitialization(ctx)
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Create a Notification channel if necessary
createChannel()
}
if (isIgnoringBatteryOptimizations) {
// normal background services can only up to 10 minutes
// foreground services are allowed to run indefinitely
// requires battery optimizations to be disabled (either manually by the user
// or by the system learning that immich is important to the user)
val title = ctx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE)
.getString(SHARED_PREF_NOTIFICATION_TITLE, NOTIFICATION_DEFAULT_TITLE)!!
showInfo(getInfoBuilder(title, indeterminate=true).build())
}
engine = FlutterEngine(ctx)
flutterLoader.ensureInitializationCompleteAsync(ctx, null, Handler(Looper.getMainLooper())) {
runDart()
}
} }
/** /**
@@ -193,7 +139,7 @@ class BackupWorker(ctx: Context, params: WorkerParameters) : ListenableWorker(ct
engine = null engine = null
if (result != null) { if (result != null) {
Log.d(TAG, "stopEngine result=${result}") Log.d(TAG, "stopEngine result=${result}")
this.completer.set(result) resolvableFuture.set(result)
} }
waitOnSetForegroundAsync() waitOnSetForegroundAsync()
} }
@@ -324,7 +270,6 @@ class BackupWorker(ctx: Context, params: WorkerParameters) : ListenableWorker(ct
const val SHARED_PREF_CALLBACK_KEY = "callbackDispatcherHandle" const val SHARED_PREF_CALLBACK_KEY = "callbackDispatcherHandle"
const val SHARED_PREF_NOTIFICATION_TITLE = "notificationTitle" const val SHARED_PREF_NOTIFICATION_TITLE = "notificationTitle"
const val SHARED_PREF_LAST_CHANGE = "lastChange" const val SHARED_PREF_LAST_CHANGE = "lastChange"
const val SHARED_PREF_SERVER_URL = "serverUrl"
private const val TASK_NAME_BACKUP = "immich/BackupWorker" private const val TASK_NAME_BACKUP = "immich/BackupWorker"
private const val NOTIFICATION_CHANNEL_ID = "immich/backgroundService" private const val NOTIFICATION_CHANNEL_ID = "immich/backgroundService"
@@ -415,26 +360,3 @@ class BackupWorker(ctx: Context, params: WorkerParameters) : ListenableWorker(ct
} }
private const val TAG = "BackupWorker" private const val TAG = "BackupWorker"
/**
* Check if the given URL is reachable via HTTP
*/
suspend fun isUrlReachableHttp(url: String, timeoutMillis: Long = 5000L): Boolean {
return withTimeoutOrNull(timeoutMillis) {
var httpURLConnection: HttpURLConnection? = null
try {
httpURLConnection = (URL(url).openConnection() as HttpURLConnection).apply {
requestMethod = "HEAD"
connectTimeout = timeoutMillis.toInt()
readTimeout = timeoutMillis.toInt()
}
httpURLConnection.connect()
httpURLConnection.responseCode == HttpURLConnection.HTTP_OK
} catch (e: Exception) {
Log.e(TAG, "Failed to reach server URL: $e")
false
} finally {
httpURLConnection?.disconnect()
}
} == true
}

View File

@@ -35,8 +35,8 @@ platform :android do
task: 'bundle', task: 'bundle',
build_type: 'Release', build_type: 'Release',
properties: { properties: {
"android.injected.version.code" => 137, "android.injected.version.code" => 140,
"android.injected.version.name" => "1.103.0", "android.injected.version.name" => "1.105.1",
} }
) )
upload_to_play_store(skip_upload_apk: true, skip_upload_images: true, skip_upload_screenshots: true, aab: '../build/app/outputs/bundle/release/app-release.aab') 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')

View File

@@ -5,17 +5,17 @@
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000261"> <testcase classname="fastlane.lanes" name="0: default_platform" time="0.000374">
</testcase> </testcase>
<testcase classname="fastlane.lanes" name="1: bundleRelease" time="32.48099"> <testcase classname="fastlane.lanes" name="1: bundleRelease" time="84.292464">
</testcase> </testcase>
<testcase classname="fastlane.lanes" name="2: upload_to_play_store" time="30.236974"> <testcase classname="fastlane.lanes" name="2: upload_to_play_store" time="33.336934">
</testcase> </testcase>

View File

@@ -19,8 +19,8 @@ pluginManagement {
plugins { plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.4.2" apply false id "com.android.application" version "7.4.2" apply false
id "org.jetbrains.kotlin.android" version "1.9.23" apply false id "org.jetbrains.kotlin.android" version "1.9.24" apply false
id "org.jetbrains.kotlin.kapt" version "1.9.23" apply false id "org.jetbrains.kotlin.kapt" version "1.9.24" apply false
} }
include ":app" include ":app"

View File

@@ -1,344 +1,347 @@
{ {
"action_common_back": "Back", "action_common_back": "Back",
"action_common_cancel": "Cancel", "action_common_cancel": "يلغي",
"action_common_clear": "Clear", "action_common_clear": "Clear",
"action_common_confirm": "Confirm", "action_common_confirm": "Confirm",
"action_common_update": "Update", "action_common_update": "تحديث",
"add_to_album_bottom_sheet_added": "Added to {album}", "add_to_album_bottom_sheet_added": "تمت الاضافة{album}",
"add_to_album_bottom_sheet_already_exists": "Already in {album}", "add_to_album_bottom_sheet_already_exists": "موجودة مسبقا {album}",
"advanced_settings_log_level_title": "Log level: {}", "advanced_settings_log_level_title": "تسجيل مستوى: {}",
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.", "advanced_settings_prefer_remote_subtitle": "تكون بعض الأجهزة بطيئة للغاية في تحميل الصور المصغرة من الأصول الموجودة على الجهاز. قم بتنشيط هذا الإعداد لتحميل الصور البعيدة بدلاً من ذلك.",
"advanced_settings_prefer_remote_title": "Prefer remote images", "advanced_settings_prefer_remote_title": "تفضل الصور البعيدة",
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.", "advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates", "advanced_settings_self_signed_ssl_title": "السماح بشهادات SSL الموقعة ذاتيًا",
"advanced_settings_tile_subtitle": "Advanced user's settings", "advanced_settings_tile_subtitle": "إعدادات المستخدم المتقدمة",
"advanced_settings_tile_title": "Advanced", "advanced_settings_tile_title": "متقدم",
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting", "advanced_settings_troubleshooting_subtitle": "تمكين الميزات الإضافية لاستكشاف الأخطاء وإصلاحها",
"advanced_settings_troubleshooting_title": "Troubleshooting", "advanced_settings_troubleshooting_title": "استكشاف الأخطاء وإصلاحها",
"album_info_card_backup_album_excluded": "EXCLUDED", "album_info_card_backup_album_excluded": "مستبعد",
"album_info_card_backup_album_included": "INCLUDED", "album_info_card_backup_album_included": "متضمنة",
"album_thumbnail_card_item": "1 item", "album_thumbnail_card_item": "عنصر واحد",
"album_thumbnail_card_items": "{} items", "album_thumbnail_card_items": "{} عناصر",
"album_thumbnail_card_shared": " · Shared", "album_thumbnail_card_shared": " · . مشترك",
"album_thumbnail_owned": "Owned", "album_thumbnail_owned": "مملوكة",
"album_thumbnail_shared_by": "Shared by {}", "album_thumbnail_shared_by": "مشترك مع",
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?", "album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?",
"album_viewer_appbar_share_delete": "Delete album", "album_viewer_appbar_share_delete": "حذف الألبوم",
"album_viewer_appbar_share_err_delete": "Failed to delete album", "album_viewer_appbar_share_err_delete": "فشل في حذف الألبوم",
"album_viewer_appbar_share_err_leave": "Failed to leave album", "album_viewer_appbar_share_err_leave": "فشل في ترك الألبوم",
"album_viewer_appbar_share_err_remove": "There are problems in removing assets from album", "album_viewer_appbar_share_err_remove": "هناك مشاكل في إزالة الأصول من الألبوم",
"album_viewer_appbar_share_err_title": "Failed to change album title", "album_viewer_appbar_share_err_title": "فشل في تغيير عنوان الألبوم",
"album_viewer_appbar_share_leave": "Leave album", "album_viewer_appbar_share_leave": "ترك الألبوم",
"album_viewer_appbar_share_remove": "Remove from album", "album_viewer_appbar_share_remove": "إزالة من الألبوم",
"album_viewer_appbar_share_to": "Share To", "album_viewer_appbar_share_to": "حصة ل",
"album_viewer_page_share_add_users": "Add users", "album_viewer_page_share_add_users": "اضافة مستخدمين",
"all_people_page_title": "People", "all_people_page_title": "الناس",
"all_videos_page_title": "Videos", "all_videos_page_title": "أشرطة فيديو",
"app_bar_signout_dialog_content": "Are you sure you want to sign out?", "app_bar_signout_dialog_content": "هل أنت متأكد أنك تريد الخروج",
"app_bar_signout_dialog_ok": "Yes", "app_bar_signout_dialog_ok": "نعم",
"app_bar_signout_dialog_title": "Sign out", "app_bar_signout_dialog_title": "خروج",
"archive_page_no_archived_assets": "No archived assets found", "archive_page_no_archived_assets": "لم يتم العثور على الأصول المؤرشفة",
"archive_page_title": "Archive ({})", "archive_page_title": "أرشيف ({})",
"asset_action_delete_err_read_only": "Cannot delete read only asset(s), skipping", "asset_action_delete_err_read_only": "لا يمكن حذف الأصول ذات للقراءة فقط، وسوف يتم التخطي",
"asset_action_share_err_offline": "Cannot fetch offline asset(s), skipping", "asset_action_share_err_offline": "لا يمكن جلب الأصول غير المتصلة بالإنترنت، وسوف يتم التخطي",
"asset_list_group_by_sub_title": "Group by", "asset_list_group_by_sub_title": "Group by",
"asset_list_layout_settings_dynamic_layout_title": "Dynamic layout", "asset_list_layout_settings_dynamic_layout_title": "تخطيط ديناميكي",
"asset_list_layout_settings_group_automatically": "Automatic", "asset_list_layout_settings_group_automatically": "تلقائي",
"asset_list_layout_settings_group_by": "Group assets by", "asset_list_layout_settings_group_by": "مجموعة الأصول حسب",
"asset_list_layout_settings_group_by_month": "Month", "asset_list_layout_settings_group_by_month": "شهر",
"asset_list_layout_settings_group_by_month_day": "Month + day", "asset_list_layout_settings_group_by_month_day": "شهر + يوم",
"asset_list_layout_sub_title": "Layout", "asset_list_layout_sub_title": "Layout",
"asset_list_settings_subtitle": "Photo grid layout settings", "asset_list_settings_subtitle": "إعدادات تخطيط شبكة الصور",
"asset_list_settings_title": "Photo Grid", "asset_list_settings_title": "شبكة الصور",
"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": "الألبومات الموجودة على الجهاز ({})",
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude", "backup_album_selection_page_albums_tap": "انقر للتضمين، وانقر نقرًا مزدوجًا للاستثناء",
"backup_album_selection_page_assets_scatter": "Assets can scatter across multiple albums. Thus, albums can be included or excluded during the backup process.", "backup_album_selection_page_assets_scatter": "يمكن أن تنتشر الأصول عبر ألبومات متعددة. وبالتالي، يمكن تضمين الألبومات أو استبعادها أثناء عملية النسخ الاحتياطي.",
"backup_album_selection_page_select_albums": "Select albums", "backup_album_selection_page_select_albums": "حدد الألبومات",
"backup_album_selection_page_selection_info": "Selection Info", "backup_album_selection_page_selection_info": "معلومات الاختيار",
"backup_album_selection_page_total_assets": "Total unique assets", "backup_album_selection_page_total_assets": "إجمالي الأصول الفريدة",
"backup_all": "All", "backup_all": "الجميع",
"backup_background_service_backup_failed_message": "Failed to backup assets. Retrying…", "backup_background_service_backup_failed_message": "فشل في النسخ الاحتياطي للأصول. جارٍ إعادة المحاولة...",
"backup_background_service_connection_failed_message": "Failed to connect to the server. Retrying…", "backup_background_service_connection_failed_message": "فشل في الاتصال بالخادم. جارٍ إعادة المحاولة...",
"backup_background_service_current_upload_notification": "Uploading {}", "backup_background_service_current_upload_notification": "تحميل {}",
"backup_background_service_default_notification": "Checking for new assets…", "backup_background_service_default_notification": "التحقق من الأصول الجديدة ...",
"backup_background_service_error_title": "Backup error", "backup_background_service_error_title": "خطأ في النسخ الاحتياطي",
"backup_background_service_in_progress_notification": "Backing up your assets…", "backup_background_service_in_progress_notification": "النسخ الاحتياطي للأصول الخاصة بك...",
"backup_background_service_upload_failure_notification": "Failed to upload {}", "backup_background_service_upload_failure_notification": "فشل التحميل {}",
"backup_controller_page_albums": "Backup Albums", "backup_controller_page_albums": "ألبومات احتياطية",
"backup_controller_page_background_app_refresh_disabled_content": "Enable background app refresh in Settings > General > Background App Refresh in order to use background backup.", "backup_controller_page_background_app_refresh_disabled_content": "قم بتمكين تحديث تطبيق الخلفية في الإعدادات > عام > تحديث تطبيق الخلفية لاستخدام النسخ الاحتياطي في الخلفية.",
"backup_controller_page_background_app_refresh_disabled_title": "Background app refresh disabled", "backup_controller_page_background_app_refresh_disabled_title": "تم تعطيل تحديث التطبيق في الخلفية",
"backup_controller_page_background_app_refresh_enable_button_text": "Go to settings", "backup_controller_page_background_app_refresh_enable_button_text": "اذهب للاعدادات",
"backup_controller_page_background_battery_info_link": "Show me how", "backup_controller_page_background_battery_info_link": "أرني كيف",
"backup_controller_page_background_battery_info_message": "For the best background backup experience, please disable any battery optimizations restricting background activity for Immich.\n\nSince this is device-specific, please lookup the required information for your device manufacturer.", "backup_controller_page_background_battery_info_message": "للحصول على أفضل تجربة نسخ احتياطي في الخلفية، يرجى تعطيل أي تحسينات للبطارية تقيد نشاط الخلفية لـ Immich.\n\nنظرًا لأن هذا خاص بالجهاز، يرجى البحث عن المعلومات المطلوبة للشركة المصنعة لجهازك.",
"backup_controller_page_background_battery_info_ok": "OK", "backup_controller_page_background_battery_info_ok": "نعم",
"backup_controller_page_background_battery_info_title": "Battery optimizations", "backup_controller_page_background_battery_info_title": "تحسين البطارية",
"backup_controller_page_background_charging": "Only while charging", "backup_controller_page_background_charging": "فقط أثناء الشحن",
"backup_controller_page_background_configure_error": "Failed to configure the background service", "backup_controller_page_background_configure_error": "فشل في تكوين خدمة الخلفية",
"backup_controller_page_background_delay": "Delay new assets backup: {}", "backup_controller_page_background_delay": "تأخير النسخ الاحتياطي للأصول الجديدة: {}",
"backup_controller_page_background_description": "Turn on the background service to automatically backup any new assets without needing to open the app", "backup_controller_page_background_description": "قم بتشغيل خدمة الخلفية لإجراء نسخ احتياطي لأي أصول جديدة تلقائيًا دون الحاجة إلى فتح التطبيق",
"backup_controller_page_background_is_off": "Automatic background backup is off", "backup_controller_page_background_is_off": "تم إيقاف النسخ الاحتياطي التلقائي للخلفية",
"backup_controller_page_background_is_on": "Automatic background backup is on", "backup_controller_page_background_is_on": "النسخ الاحتياطي التلقائي للخلفية قيد التشغيل",
"backup_controller_page_background_turn_off": "Turn off background service", "backup_controller_page_background_turn_off": "قم بإيقاف تشغيل خدمة الخلفية",
"backup_controller_page_background_turn_on": "Turn on background service", "backup_controller_page_background_turn_on": "قم بتشغيل خدمة الخلفية",
"backup_controller_page_background_wifi": "Only on WiFi", "backup_controller_page_background_wifi": "فقط على واي فاي",
"backup_controller_page_backup": "Backup", "backup_controller_page_backup": "دعم",
"backup_controller_page_backup_selected": "Selected: ", "backup_controller_page_backup_selected": "المحدد: ",
"backup_controller_page_backup_sub": "Backed up photos and videos", "backup_controller_page_backup_sub": "النسخ الاحتياطي للصور ومقاطع الفيديو",
"backup_controller_page_cancel": "Cancel", "backup_controller_page_cancel": "يلغي",
"backup_controller_page_created": "Created on: {}", "backup_controller_page_created": "تم إنشاؤها على: {}",
"backup_controller_page_desc_backup": "Turn on foreground backup to automatically upload new assets to the server when opening the app.", "backup_controller_page_desc_backup": "قم بتشغيل النسخ الاحتياطي الأمامي لتحميل الأصول الجديدة تلقائيًا إلى الخادم عند فتح التطبيق.",
"backup_controller_page_excluded": "Excluded: ", "backup_controller_page_excluded": "مستبعد: ",
"backup_controller_page_failed": "Failed ({})", "backup_controller_page_failed": "فشل ({})",
"backup_controller_page_filename": "File name: {} [{}]", "backup_controller_page_filename": "اسم الملف: {} [{}]",
"backup_controller_page_id": "ID: {}", "backup_controller_page_id": "رقم البطاقة: {}",
"backup_controller_page_info": "Backup Information", "backup_controller_page_info": "معلومات النسخ الاحتياطي",
"backup_controller_page_none_selected": "None selected", "backup_controller_page_none_selected": "لم يتم التحديد",
"backup_controller_page_remainder": "Remainder", "backup_controller_page_remainder": "بقية",
"backup_controller_page_remainder_sub": "Remaining photos and videos to back up from selection", "backup_controller_page_remainder_sub": "الصور ومقاطع الفيديو المتبقية للنسخ الاحتياطي من التحديد",
"backup_controller_page_select": "Select", "backup_controller_page_select": "يختار",
"backup_controller_page_server_storage": "Server Storage", "backup_controller_page_server_storage": "ذاكرة الجهاز",
"backup_controller_page_start_backup": "Start Backup", "backup_controller_page_start_backup": "بدء النسخ الاحتياطي",
"backup_controller_page_status_off": "Automatic foreground backup is off", "backup_controller_page_status_off": "النسخة الاحتياطية التلقائية غير فعالة",
"backup_controller_page_status_on": "Automatic foreground backup is on", "backup_controller_page_status_on": "النسخة الاحتياطية التلقائية فعالة",
"backup_controller_page_storage_format": "{} of {} used", "backup_controller_page_storage_format": "{} من {} المستخدم",
"backup_controller_page_to_backup": "Albums to be backup", "backup_controller_page_to_backup": "الألبومات الاحتياطية",
"backup_controller_page_total": "Total", "backup_controller_page_total": "المجموع",
"backup_controller_page_total_sub": "All unique photos and videos from selected albums", "backup_controller_page_total_sub": "جميع الصور ومقاطع الفيديو الفريدة من ألبومات مختارة",
"backup_controller_page_turn_off": "Turn off foreground backup", "backup_controller_page_turn_off": "قم بإيقاف تشغيل النسخ الاحتياطي المقدمة",
"backup_controller_page_turn_on": "Turn on foreground backup", "backup_controller_page_turn_on": "قم بتشغيل النسخ الاحتياطي المقدمة",
"backup_controller_page_uploading_file_info": "Uploading file info", "backup_controller_page_uploading_file_info": "تحميل معلومات الملف",
"backup_err_only_album": "Cannot remove the only album", "backup_err_only_album": "لا يمكن إزالة الألبوم الوحيد",
"backup_info_card_assets": "assets", "backup_info_card_assets": "أصول",
"backup_manual_cancelled": "Cancelled", "backup_manual_cancelled": "ملغي",
"backup_manual_failed": "Failed", "backup_manual_failed": "فشل",
"backup_manual_in_progress": "Upload already in progress. Try after sometime", "backup_manual_in_progress": "قيد التحميل حاول مره اخرى",
"backup_manual_success": "Success", "backup_manual_success": "نجاح",
"backup_manual_title": "Upload status", "backup_manual_title": "حالة التحميل",
"backup_options_page_title": "Backup options", "backup_options_page_title": "Backup options",
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)", "cache_settings_album_thumbnails": "صور صفحة المكتبة ({} الأصول)",
"cache_settings_clear_cache_button": "Clear cache", "cache_settings_clear_cache_button": "مسح ذاكرة التخزين المؤقت",
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.", "cache_settings_clear_cache_button_title": "يقوم بمسح ذاكرة التخزين المؤقت للتطبيق.سيؤثر هذا بشكل كبير على أداء التطبيق حتى إعادة بناء ذاكرة التخزين المؤقت.",
"cache_settings_duplicated_assets_clear_button": "CLEAR", "cache_settings_duplicated_assets_clear_button": "واضح",
"cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app", "cache_settings_duplicated_assets_subtitle": "الصور ومقاطع الفيديو اللتي تم تجاهلها المدرجة في التطبيق",
"cache_settings_duplicated_assets_title": "Duplicated Assets ({})", "cache_settings_duplicated_assets_title": "الأصول المكررة ({})",
"cache_settings_image_cache_size": "Image cache size ({} assets)", "cache_settings_image_cache_size": "حجم ذاكرة التخزين المؤقت للصور ({} الأصول)",
"cache_settings_statistics_album": "Library thumbnails", "cache_settings_statistics_album": "مكتبه الصور المصغره",
"cache_settings_statistics_assets": "{} assets ({})", "cache_settings_statistics_assets": " ({})أصول ",
"cache_settings_statistics_full": "Full images", "cache_settings_statistics_full": "صور كاملة",
"cache_settings_statistics_shared": "Shared album thumbnails", "cache_settings_statistics_shared": "صورة ألبوم مشتركة",
"cache_settings_statistics_thumbnail": "Thumbnails", "cache_settings_statistics_thumbnail": "الصورة المصغرة",
"cache_settings_statistics_title": "Cache usage", "cache_settings_statistics_title": "استخدام ذاكرة التخزين المؤقت",
"cache_settings_subtitle": "Control the caching behaviour of the Immich mobile application", "cache_settings_subtitle": "تحكم في سلوك التخزين المؤقت لتطبيق الجوال Imich",
"cache_settings_thumbnail_size": "Thumbnail cache size ({} assets)", "cache_settings_thumbnail_size": "حجم ذاكرة التخزين المؤقت Thumbnail ({} الأصول)",
"cache_settings_tile_subtitle": "Control the local storage behaviour", "cache_settings_tile_subtitle": "التحكم في سلوك التخزين المحلي",
"cache_settings_tile_title": "Local Storage", "cache_settings_tile_title": "التخزين المحلي",
"cache_settings_title": "Caching Settings", "cache_settings_title": "إعدادات التخزين المؤقت",
"change_password_form_confirm_password": "Confirm Password", "change_password_form_confirm_password": "تأكيد كلمة المرور",
"change_password_form_description": "Hi {name},\n\nThis is either the first time you are signing into the system or a request has been made to change your password. Please enter the new password below.", "change_password_form_description": "مرحبًا ،هذه هي المرة الأولى التي تقوم فيها بالتسجيل في النظام أو تم تقديم طلب لتغيير كلمة المرور الخاصة بك.الرجاء إدخال كلمة المرور الجديدة أدناه",
"change_password_form_new_password": "New Password", "change_password_form_new_password": "كلمة المرور الجديدة",
"change_password_form_password_mismatch": "Passwords do not match", "change_password_form_password_mismatch": "كلمة المرور غير مطابقة",
"change_password_form_reenter_new_password": "Re-enter New Password", "change_password_form_reenter_new_password": "أعد إدخال كلمة مرور جديدة",
"common_add_to_album": "Add to album", "common_add_to_album": "أضف إلى الألبوم",
"common_change_password": "Change Password", "common_change_password": "تغيير كلمة المرور",
"common_create_new_album": "Create new album", "common_create_new_album": "إنشاء ألبوم جديد",
"common_server_error": "Please check your network connection, make sure the server is reachable and app/server versions are compatible.", "common_server_error": "يرجى التحقق من اتصال الشبكة الخاص بك ، والتأكد من أن الجهاز قابل للوصول وإصدارات التطبيق/الجهاز متوافقة.",
"common_shared": "Shared", "common_shared": "مشترك",
"control_bottom_app_bar_add_to_album": "Add to album", "control_bottom_app_bar_add_to_album": "أضف إلى الألبوم",
"control_bottom_app_bar_album_info": "{} items", "control_bottom_app_bar_album_info": "{} أغراض",
"control_bottom_app_bar_album_info_shared": "{} items · Shared", "control_bottom_app_bar_album_info_shared": "{} العناصر المشتركة",
"control_bottom_app_bar_archive": "Archive", "control_bottom_app_bar_archive": "أرشيف",
"control_bottom_app_bar_create_new_album": "Create new album", "control_bottom_app_bar_create_new_album": "إنشاء ألبوم جديد",
"control_bottom_app_bar_delete": "Delete", "control_bottom_app_bar_delete": "يمسح",
"control_bottom_app_bar_delete_from_immich": "Delete from Immich", "control_bottom_app_bar_delete_from_immich": " Immich حذف منال تطبيق",
"control_bottom_app_bar_delete_from_local": "Delete from device", "control_bottom_app_bar_delete_from_local": "حذف من الجهاز",
"control_bottom_app_bar_edit_location": "Edit Location", "control_bottom_app_bar_edit_location": "تحديد الوجهة",
"control_bottom_app_bar_edit_time": "Edit Date & Time", "control_bottom_app_bar_edit_time": "تحرير التاريخ والوقت",
"control_bottom_app_bar_favorite": "Favorite", "control_bottom_app_bar_favorite": "مفضل",
"control_bottom_app_bar_share": "Share", "control_bottom_app_bar_share": "يشارك",
"control_bottom_app_bar_share_to": "Share To", "control_bottom_app_bar_share_to": "مشاركة إلى",
"control_bottom_app_bar_stack": "Stack", "control_bottom_app_bar_stack": "تجميع",
"control_bottom_app_bar_trash_from_immich": "Move to Trash", "control_bottom_app_bar_trash_from_immich": "حذفه ونقله في سله المهملات",
"control_bottom_app_bar_unarchive": "Unarchive", "control_bottom_app_bar_unarchive": "غير محفوظ في الارشيف",
"control_bottom_app_bar_unfavorite": "Unfavorite", "control_bottom_app_bar_unfavorite": "غير مفضل",
"control_bottom_app_bar_upload": "Upload", "control_bottom_app_bar_upload": "رفع وتحميل",
"create_album_page_untitled": "Untitled", "create_album_page_untitled": "بدون اسم",
"create_shared_album_page_create": "Create", "create_shared_album_page_create": "انشاء",
"create_shared_album_page_share": "Share", "create_shared_album_page_share": "يشارك",
"create_shared_album_page_share_add_assets": "ADD ASSETS", "create_shared_album_page_share_add_assets": "إضافة الأصول",
"create_shared_album_page_share_select_photos": "Select Photos", "create_shared_album_page_share_select_photos": "حدد الصور",
"curated_location_page_title": "Places", "curated_location_page_title": "أماكن",
"curated_object_page_title": "Things", "curated_object_page_title": "أشياء",
"daily_title_text_date": "E, MMM dd", "daily_title_text_date": "E ، MMM DD",
"daily_title_text_date_year": "E, MMM dd, yyyy", "daily_title_text_date_year": "E ، MMM DD ، yyyy",
"date_format": "E, LLL d, y • h:mm a", "date_format": "E ، Lll D ، Y • H: MM A",
"delete_dialog_alert": "These items will be permanently deleted from Immich and from your device", "delete_dialog_alert": " Immich هذه العناصر سيتم حذفها بشكل دائم من جهازك ومن تطبيق",
"delete_dialog_alert_local": "These items will be permanently removed from your device but still be available on the Immich server", "delete_dialog_alert_local": " Immich العناصر التي تم حذفها من جهازك ولكنها موجوده في تطبيق",
"delete_dialog_alert_local_non_backed_up": "Some of the items aren't backed up to Immich and will be permanently removed from your device", "delete_dialog_alert_local_non_backed_up": "Immich بعض العناصر التي سيتم حذفها بشكل دائم ولا يوجد لها نسخه احتياطيه في تطبيق ",
"delete_dialog_alert_remote": "These items will be permanently deleted from the Immich server", "delete_dialog_alert_remote": "Immich العناصر التي سيتم حذفها بشكل دائم من تطبيق",
"delete_dialog_cancel": "Cancel", "delete_dialog_cancel": "يلغي",
"delete_dialog_ok": "Delete", "delete_dialog_ok": "يمسح",
"delete_dialog_ok_force": "Delete Anyway", "delete_dialog_ok_force": "احذف على أي حال",
"delete_dialog_title": "Delete Permanently", "delete_dialog_title": "الحذف بشكل نهائي",
"delete_local_dialog_ok_backed_up_only": "Delete Backed Up Only", "delete_local_dialog_ok_backed_up_only": "حذف النسخة الاحتياطية فقط",
"delete_local_dialog_ok_force": "Delete Anyway", "delete_local_dialog_ok_force": "احذف على أي حال",
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?", "delete_shared_link_dialog_content": "هل أنت متأكد من أنك تريد حذف هذا الرابط المشترك؟",
"delete_shared_link_dialog_title": "Delete Shared Link", "delete_shared_link_dialog_title": "حذف الرابط المشترك",
"description_input_hint_text": "Add description...", "description_input_hint_text": "اضف وصفا...",
"description_input_submit_error": "Error updating description, check the log for more details", "description_input_submit_error": "خطأ تحديث الوصف ، تحقق من السجل لمزيد من التفاصيل",
"edit_date_time_dialog_date_time": "Date and Time", "edit_date_time_dialog_date_time": "التاريخ و الوقت",
"edit_date_time_dialog_timezone": "Timezone", "edit_date_time_dialog_timezone": "وحدة زمنية",
"edit_location_dialog_title": "Location", "edit_location_dialog_title": "موقع",
"exif_bottom_sheet_description": "Add Description...", "exif_bottom_sheet_description": "اضف وصفا...",
"exif_bottom_sheet_details": "DETAILS", "exif_bottom_sheet_details": "تفاصيل",
"exif_bottom_sheet_location": "LOCATION", "exif_bottom_sheet_location": "موقع",
"exif_bottom_sheet_location_add": "Add a location", "exif_bottom_sheet_location_add": "إضافة موقع",
"exif_bottom_sheet_people": "PEOPLE", "exif_bottom_sheet_people": "الناس",
"exif_bottom_sheet_person_add_person": "Add name", "exif_bottom_sheet_person_add_person": "Add name",
"experimental_settings_new_asset_list_subtitle": "Work in progress", "experimental_settings_new_asset_list_subtitle": "أعمال جارية",
"experimental_settings_new_asset_list_title": "Enable experimental photo grid", "experimental_settings_new_asset_list_title": "تمكين شبكة الصور التجريبية",
"experimental_settings_subtitle": "Use at your own risk!", "experimental_settings_subtitle": "استخدام على مسؤوليتك الخاصة!",
"experimental_settings_title": "Experimental", "experimental_settings_title": "تجريبي",
"favorites_page_no_favorites": "No favorite assets found", "favorites_page_no_favorites": "لم يتم العثور على الأصول المفضلة",
"favorites_page_title": "Favorites", "favorites_page_title": "المفضلة",
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.", "haptic_feedback_switch": "Enable haptic feedback",
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping", "haptic_feedback_title": "Haptic Feedback",
"home_page_add_to_album_success": "Added {added} assets to album {album}.", "home_page_add_to_album_conflicts": "تمت إضافة {تمت إضافة} الأصول إلى الألبوم {الألبوم}.{فشل} الأصول موجودة بالفعل في الألبوم.",
"home_page_album_err_partner": "Can not add partner assets to an album yet, skipping", "home_page_add_to_album_err_local": "لا يمكن إضافة الأصول المحلية إلى الألبومات حتى الآن ، سوف يتخطى",
"home_page_archive_err_local": "Can not archive local assets yet, skipping", "home_page_add_to_album_success": "تمت إضافة {تمت إضافة} الأصول إلى الألبوم {الألبوم}.",
"home_page_archive_err_partner": "Can not archive partner assets, skipping", "home_page_album_err_partner": "لا يمكن إضافة أصول شريكة إلى ألبوم حتى الآن ، سوف يتخطى",
"home_page_building_timeline": "Building the timeline", "home_page_archive_err_local": "لا يمكن أرشفة الأصول المحلية حتى الآن ، سوف يتخطى",
"home_page_delete_err_partner": "Can not delete partner assets, skipping", "home_page_archive_err_partner": "لا يمكن أرشفة الأصول الشريكة ، سوف يتخطى",
"home_page_delete_remote_err_local": "Local assets in delete remote selection, skipping", "home_page_building_timeline": "بناء الجدول الزمني",
"home_page_favorite_err_local": "Can not favorite local assets yet, skipping", "home_page_delete_err_partner": "لا يمكن حذف الأصول الشريكة ,سوف يتخطى",
"home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping", "home_page_delete_remote_err_local": "الأصول المحلية في التحديد البعيد المحذوف، سوف يتخطى",
"home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).", "home_page_favorite_err_local": "لا يمكن تفضيل الأصول المحلية بعد، سوف يتخطى",
"home_page_share_err_local": "Can not share local assets via link, skipping", "home_page_favorite_err_partner": "لا يمكن الأصول الشريكة المفضلة بعد ، سوف يتخطى",
"home_page_upload_err_limit": "Can only upload a maximum of 30 assets at a time, skipping", "home_page_first_time_notice": "إذا كانت هذه هي المرة الأولى التي تستخدم فيها التطبيق، فيرجى التأكد من اختيار ألبوم (ألبومات) احتياطية حتى يتمكن المخطط الزمني من ملء الصور ومقاطع الفيديو في الألبوم (الألبومات).",
"image_viewer_page_state_provider_download_error": "Download Error", "home_page_share_err_local": "لا يمكن مشاركة الأصول المحلية عبر الرابط ، سوف يتخطى",
"home_page_upload_err_limit": "لا يمكن إلا تحميل 30 أحد الأصول في وقت واحد ، سوف يتخطى",
"image_viewer_page_state_provider_download_error": "خطا في التحميل",
"image_viewer_page_state_provider_download_started": "Download Started", "image_viewer_page_state_provider_download_started": "Download Started",
"image_viewer_page_state_provider_download_success": "Download Success", "image_viewer_page_state_provider_download_success": "تم التنزيل بنجاح",
"image_viewer_page_state_provider_share_error": "Share Error", "image_viewer_page_state_provider_share_error": "خطأ في المشاركة",
"library_page_albums": "Albums", "library_page_albums": "ألبومات",
"library_page_archive": "Archive", "library_page_archive": "أرشيف",
"library_page_device_albums": "Albums on Device", "library_page_device_albums": "ألبومات على الجهاز",
"library_page_favorites": "Favorites", "library_page_favorites": "المفضلة",
"library_page_new_album": "New album", "library_page_new_album": "البوم جديد",
"library_page_sharing": "Sharing", "library_page_sharing": "مشاركة",
"library_page_sort_asset_count": "Number of assets", "library_page_sort_asset_count": "عدد الأصول",
"library_page_sort_created": "Created date", "library_page_sort_created": "تاريخ الإنشاء",
"library_page_sort_last_modified": "Last modified", "library_page_sort_last_modified": "آخر تعديل",
"library_page_sort_most_oldest_photo": "Oldest photo", "library_page_sort_most_oldest_photo": "أقدم صورة",
"library_page_sort_most_recent_photo": "Most recent photo", "library_page_sort_most_recent_photo": "أحدث الصور",
"library_page_sort_title": "Album title", "library_page_sort_title": "عنوان الألبوم",
"location_picker_choose_on_map": "Choose on map", "location_picker_choose_on_map": "اختر على الخريطة",
"location_picker_latitude": "Latitude", "location_picker_latitude": "خط العرض",
"location_picker_latitude_error": "Enter a valid latitude", "location_picker_latitude_error": "أدخل خط عرض صالح",
"location_picker_latitude_hint": "Enter your latitude here", "location_picker_latitude_hint": "أدخل خط العرض الخاص بك هنا",
"location_picker_longitude": "Longitude", "location_picker_longitude": "خط الطول",
"location_picker_longitude_error": "Enter a valid longitude", "location_picker_longitude_error": "أدخل خط الطول الصحيح",
"location_picker_longitude_hint": "Enter your longitude here", "location_picker_longitude_hint": "أدخل خط الطول هنا",
"login_disabled": "Login has been disabled", "login_disabled": "تم تعطيل تسجيل الدخول",
"login_form_api_exception": "API exception. Please check the server URL and try again.", "login_form_api_exception": " استثناء برمجة التطبيقات. يرجى التحقق من عنوان الخادم والمحاولة مرة أخرى ",
"login_form_back_button_text": "Back", "login_form_back_button_text": "الرجوع للخلف",
"login_form_button_text": "Login", "login_form_button_text": "تسجيل الدخول",
"login_form_email_hint": "youremail@email.com", "login_form_email_hint": "yoursemail@email.com",
"login_form_endpoint_hint": "http://your-server-ip:port/api", "login_form_endpoint_hint": "http: // your-server-ip: port/api",
"login_form_endpoint_url": "Server Endpoint URL", "login_form_endpoint_url": "url نقطة نهاية الخادم",
"login_form_err_http": "Please specify http:// or https://", "login_form_err_http": "يرجى تحديد http: // أو https: //",
"login_form_err_invalid_email": "Invalid Email", "login_form_err_invalid_email": "بريد إلكتروني خاطئ",
"login_form_err_invalid_url": "Invalid URL", "login_form_err_invalid_url": "URL غير صالح",
"login_form_err_leading_whitespace": "Leading whitespace", "login_form_err_leading_whitespace": "قيادة المساحة البيضاء",
"login_form_err_trailing_whitespace": "Trailing whitespace", "login_form_err_trailing_whitespace": "زائدة بيضاء",
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL", "login_form_failed_get_oauth_server_config": "تسجيل الخطأ باستخدام OAUTH ، تحقق من عنوان URL لخادم",
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server", "login_form_failed_get_oauth_server_disable": "ميزة OAuth غير متوفرة على هذا الخادم",
"login_form_failed_login": "Error logging you in, check server URL, email and password", "login_form_failed_login": "خطأ في تسجيل الدخول ، تحقق من عنوان URL للخادم والبريد الإلكتروني وكلمة المرور",
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.", "login_form_handshake_exception": "كان هناك استثناء مصافحة مع الخادم.تمكين دعم الشهادة الموقعة ذاتيا في الإعدادات إذا كنت تستخدم شهادة موقعة ذاتيا.",
"login_form_label_email": "Email", "login_form_label_email": "بريد إلكتروني",
"login_form_label_password": "Password", "login_form_label_password": "كلمة المرور",
"login_form_next_button": "Next", "login_form_next_button": "التالي",
"login_form_password_hint": "password", "login_form_password_hint": "كلمة المرور",
"login_form_save_login": "Stay logged in", "login_form_save_login": "ابق متصلا",
"login_form_server_empty": "Enter a server URL.", "login_form_server_empty": "أدخل عنوان URL الخادم.",
"login_form_server_error": "Could not connect to server.", "login_form_server_error": "لا يمكن الاتصال بالخادم.",
"login_password_changed_error": "There was an error updating your password", "login_password_changed_error": "كان هناك خطأ في تحديث كلمة المرور الخاصة بك",
"login_password_changed_success": "Password updated successfully", "login_password_changed_success": "تم تحديث كلمة السر بنجاح",
"map_assets_in_bound": "{} photo", "map_assets_in_bound": "{} صورة",
"map_assets_in_bounds": "{} photos", "map_assets_in_bounds": "{} الصور",
"map_cannot_get_user_location": "Cannot get user's location", "map_cannot_get_user_location": "لا يمكن الحصول على موقع المستخدم",
"map_location_dialog_cancel": "Cancel", "map_location_dialog_cancel": "يلغي",
"map_location_dialog_yes": "Yes", "map_location_dialog_yes": "نعم",
"map_location_picker_page_use_location": "Use this location", "map_location_picker_page_use_location": "استخدم هذا الموقع",
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?", "map_location_service_disabled_content": "يجب تمكين خدمة الموقع لعرض الأصول من موقعك الحالي.هل تريد تمكينه الآن؟",
"map_location_service_disabled_title": "Location Service disabled", "map_location_service_disabled_title": "خدمة الموقع معطل",
"map_no_assets_in_bounds": "No photos in this area", "map_no_assets_in_bounds": "لا توجد صور في هذا المجال",
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?", "map_no_location_permission_content": "هناك حاجة إلى إذن الموقع لعرض الأصول من موقعك الحالي.هل تريد السماح به الآن؟",
"map_no_location_permission_title": "Location Permission denied", "map_no_location_permission_title": "تم رفض إذن الموقع",
"map_settings_dark_mode": "Dark mode", "map_settings_dark_mode": "الوضع المظلم",
"map_settings_date_range_option_all": "All", "map_settings_date_range_option_all": "الجميع",
"map_settings_date_range_option_day": "Past 24 hours", "map_settings_date_range_option_day": "24 ساعة الماضية",
"map_settings_date_range_option_days": "Past {} days", "map_settings_date_range_option_days": "الأيام الماضية {}",
"map_settings_date_range_option_year": "Past year", "map_settings_date_range_option_year": "السنة الفائتة",
"map_settings_date_range_option_years": "Past {} years", "map_settings_date_range_option_years": "السنوات الماضية {}",
"map_settings_dialog_cancel": "Cancel", "map_settings_dialog_cancel": "يلغي",
"map_settings_dialog_save": "Save", "map_settings_dialog_save": "يحفظ",
"map_settings_dialog_title": "Map Settings", "map_settings_dialog_title": "إعدادات الخريطة",
"map_settings_include_show_archived": "Include Archived", "map_settings_include_show_archived": "تشمل الأرشفة",
"map_settings_include_show_partners": "Include Partners", "map_settings_include_show_partners": "Include Partners",
"map_settings_only_relative_range": "Date range", "map_settings_only_relative_range": "نطاق الموعد",
"map_settings_only_show_favorites": "Show Favorite Only", "map_settings_only_show_favorites": "اظهار المفضلة فقط",
"map_settings_theme_settings": "Map Theme", "map_settings_theme_settings": "مظهر الخريطة",
"map_zoom_to_see_photos": "Zoom out to see photos", "map_zoom_to_see_photos": "قم بتصغيرها لرؤية الصور",
"memories_all_caught_up": "All caught up", "memories_all_caught_up": "All caught up",
"memories_check_back_tomorrow": "Check back tomorrow for more memories", "memories_check_back_tomorrow": "Check back tomorrow for more memories",
"memories_start_over": "Start Over", "memories_start_over": "Start Over",
"memories_swipe_to_close": "Swipe up to close", "memories_swipe_to_close": "Swipe up to close",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "ط ط ط",
"motion_photos_page_title": "Motion Photos", "motion_photos_page_title": "الصور المتحركة",
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping", "multiselect_grid_edit_date_time_err_read_only": "لا يمكن تعديل تاريخ الأصول (المواد) للقراءة فقط، سوف يتخطى",
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping", "multiselect_grid_edit_gps_err_read_only": "لا يمكن تعديل موقع الأصول (المواد) للقراءة فقط، سوف يتخطى",
"notification_permission_dialog_cancel": "Cancel", "no_assets_to_show": "No assets to show",
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.", "notification_permission_dialog_cancel": "يلغي",
"notification_permission_dialog_settings": "Settings", "notification_permission_dialog_content": "لتمكين الإخطارات ، انتقل إلى الإعدادات و اختار السماح.",
"notification_permission_list_tile_content": "Grant permission to enable notifications.", "notification_permission_dialog_settings": "إعدادات",
"notification_permission_list_tile_enable_button": "Enable Notifications", "notification_permission_list_tile_content": "منح إذن لتمكين الإخطارات.",
"notification_permission_list_tile_title": "Notification Permission", "notification_permission_list_tile_enable_button": "تمكين الإخطارات",
"notification_permission_list_tile_title": "إذن الإخطار",
"partner_list_user_photos": "{user}'s photos", "partner_list_user_photos": "{user}'s photos",
"partner_list_view_all": "View all", "partner_list_view_all": "View all",
"partner_page_add_partner": "Add partner", "partner_page_add_partner": "أضف شريكًا",
"partner_page_empty_message": "Your photos are not yet shared with any partner.", "partner_page_empty_message": "لم يتم مشاركة صورك بعد مع أي شريك.",
"partner_page_no_more_users": "No more users to add", "partner_page_no_more_users": "لا مزيد من المستخدمين لإضافة",
"partner_page_partner_add_failed": "Failed to add partner", "partner_page_partner_add_failed": "فشل في إضافة شريك",
"partner_page_select_partner": "Select partner", "partner_page_select_partner": "حدد شريكًا",
"partner_page_shared_to_title": "Shared to", "partner_page_shared_to_title": "مشترك ل",
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.", "partner_page_stop_sharing_content": "{} لن يكون قادرًا على الوصول إلى صورك.",
"partner_page_stop_sharing_title": "Stop sharing your photos?", "partner_page_stop_sharing_title": "توقف عن مشاركة صورك؟",
"partner_page_title": "Partner", "partner_page_title": "شريك",
"permission_onboarding_back": "Back", "permission_onboarding_back": "خلف",
"permission_onboarding_continue_anyway": "Continue anyway", "permission_onboarding_continue_anyway": "تواصل على أي حال",
"permission_onboarding_get_started": "Get started", "permission_onboarding_get_started": "البدء",
"permission_onboarding_go_to_settings": "Go to settings", "permission_onboarding_go_to_settings": "اذهب للاعدادات",
"permission_onboarding_grant_permission": "Grant permission", "permission_onboarding_grant_permission": "يعطي الأذن",
"permission_onboarding_log_out": "Log out", "permission_onboarding_log_out": "تسجيل خروج",
"permission_onboarding_permission_denied": "Permission denied. To use Immich, grant photo and video permissions in Settings.", "permission_onboarding_permission_denied": "تم رفض الإذن. لاستخدام التطبيق، قم بمنح أذونات الصور والفيديو في الإعدادات ",
"permission_onboarding_permission_granted": "Permission granted! You are all set.", "permission_onboarding_permission_granted": "تم تأمين التصريح! وضعك تمام.",
"permission_onboarding_permission_limited": "Permission limited. To let Immich backup and manage your entire gallery collection, grant photo and video permissions in Settings.", "permission_onboarding_permission_limited": "إذن محدود. للسماح بالنسخ الاحتياطي للتطبيق وإدارة مجموعة المعرض بالكامل، امنح أذونات الصور والفيديو في الإعدادات.",
"permission_onboarding_request": "Immich requires permission to view your photos and videos.", "permission_onboarding_request": "يتطلب التطبيق إذنًا لعرض الصور ومقاطع الفيديو الخاصة بك",
"preferences_settings_title": "Preferences", "preferences_settings_title": "Preferences",
"profile_drawer_app_logs": "Logs", "profile_drawer_app_logs": "السجلات",
"profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.", "profile_drawer_client_out_of_date_major": "تطبيق الهاتف المحمول قديم.يرجى التحديث إلى أحدث إصدار رئيسي.",
"profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.", "profile_drawer_client_out_of_date_minor": "تطبيق الهاتف المحمول قديم.يرجى التحديث إلى أحدث إصدار صغير.",
"profile_drawer_client_server_up_to_date": "Client and Server are up-to-date", "profile_drawer_client_server_up_to_date": "العميل والخادم محدثان",
"profile_drawer_documentation": "Documentation", "profile_drawer_documentation": "توثيق",
"profile_drawer_github": "GitHub", "profile_drawer_github": "Github",
"profile_drawer_server_out_of_date_major": "Server is out of date. Please update to the latest major version.", "profile_drawer_server_out_of_date_major": "الخادم قديم.يرجى التحديث إلى أحدث إصدار رئيسي.",
"profile_drawer_server_out_of_date_minor": "Server is out of date. Please update to the latest minor version.", "profile_drawer_server_out_of_date_minor": "الخادم قديم.يرجى التحديث إلى أحدث إصدار صغير.",
"profile_drawer_settings": "Settings", "profile_drawer_settings": "إعدادات",
"profile_drawer_sign_out": "Sign Out", "profile_drawer_sign_out": "خروج",
"profile_drawer_trash": "Trash", "profile_drawer_trash": "نفايات",
"recently_added_page_title": "Recently Added", "recently_added_page_title": "أضيف مؤخرا",
"scaffold_body_error_occurred": "Error occurred", "scaffold_body_error_occurred": "حدث خطأ",
"search_bar_hint": "Search your photos", "search_bar_hint": "ابحث عن صورك",
"search_filter_apply": "Apply filter", "search_filter_apply": "Apply filter",
"search_filter_camera_make": "Make", "search_filter_camera_make": "Make",
"search_filter_camera_model": "Model", "search_filter_camera_model": "Model",
@@ -351,164 +354,167 @@
"search_filter_media_type_all": "All", "search_filter_media_type_all": "All",
"search_filter_media_type_image": "Image", "search_filter_media_type_image": "Image",
"search_filter_media_type_video": "Video", "search_filter_media_type_video": "Video",
"search_page_categories": "Categories", "search_page_categories": "فئات",
"search_page_favorites": "Favorites", "search_page_favorites": "المفضلة",
"search_page_motion_photos": "Motion Photos", "search_page_motion_photos": "الصور المتحركه",
"search_page_no_objects": "No Objects Info Available", "search_page_no_objects": "لا توجد معلومات عن أشياء متاحة",
"search_page_no_places": "No Places Info Available", "search_page_no_places": "لا توجد معلومات متوفرة للأماكن",
"search_page_people": "People", "search_page_people": "الناس",
"search_page_person_add_name_dialog_cancel": "Cancel", "search_page_person_add_name_dialog_cancel": "يلغي",
"search_page_person_add_name_dialog_hint": "Name", "search_page_person_add_name_dialog_hint": "اسم",
"search_page_person_add_name_dialog_save": "Save", "search_page_person_add_name_dialog_save": "يحفظ",
"search_page_person_add_name_dialog_title": "Add a name", "search_page_person_add_name_dialog_title": "أضف اسمًا",
"search_page_person_add_name_subtitle": "Find them fast by name with search", "search_page_person_add_name_subtitle": "ابحث عنهم سريعًا بالاسم مع البحث",
"search_page_person_add_name_title": "Add a name", "search_page_person_add_name_title": "أضف اسمًا",
"search_page_person_edit_name": "Edit name", "search_page_person_edit_name": "تعديل الاسم",
"search_page_places": "Places", "search_page_places": "أماكن",
"search_page_recently_added": "Recently added", "search_page_recently_added": "أضيف مؤخرا",
"search_page_screenshots": "Screenshots", "search_page_screenshots": "لقطات الشاشة",
"search_page_selfies": "Selfies", "search_page_selfies": " صور ذاتيه",
"search_page_things": "Things", "search_page_things": "أشياء",
"search_page_videos": "Videos", "search_page_videos": "أشرطة فيديو",
"search_page_view_all_button": "View all", "search_page_view_all_button": "عرض الكل",
"search_page_your_activity": "Your activity", "search_page_your_activity": "نشاطك",
"search_page_your_map": "Your Map", "search_page_your_map": "خريطتك",
"search_result_page_new_search_hint": "New Search", "search_result_page_new_search_hint": "بحث جديد",
"search_suggestion_list_smart_search_hint_1": "Smart search is enabled by default, to search for metadata use the syntax ", "search_suggestion_list_smart_search_hint_1": "يتم تمكين البحث الذكي افتراضيًا ، للبحث عن البيانات الوصفية ، استخدم بناء الجملة",
"search_suggestion_list_smart_search_hint_2": "m:your-search-term", "search_suggestion_list_smart_search_hint_2": "م: البحث الخاص بك",
"select_additional_user_for_sharing_page_suggestions": "Suggestions", "select_additional_user_for_sharing_page_suggestions": "اقتراحات",
"select_user_for_sharing_page_err_album": "Failed to create album", "select_user_for_sharing_page_err_album": "فشل في إنشاء ألبوم",
"select_user_for_sharing_page_share_suggestions": "Suggestions", "select_user_for_sharing_page_share_suggestions": "اقتراحات",
"server_info_box_app_version": "App Version", "server_info_box_app_version": "نسخة التطبيق",
"server_info_box_latest_release": "Latest Version", "server_info_box_latest_release": "احدث اصدار",
"server_info_box_server_url": "Server URL", "server_info_box_server_url": "عنوان URL الخادم",
"server_info_box_server_version": "Server Version", "server_info_box_server_version": "إصدار الخادم",
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).", "setting_image_viewer_help": "يقوم عارض التفاصيل بتحميل الصورة المصغرة الصغيرة أولاً ، ثم يقوم بتحميل المعاينة متوسطة الحجم (إذا تم تمكينها) ، ويقوم أخيرًا بتحميل الأصل (إذا تم تمكينه).",
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).", "setting_image_viewer_original_subtitle": "تمكين تحميل الصورة الكاملة الدقة الأصلية (كبيرة!).تعطيل لتقليل استخدام البيانات (كل من الشبكة وعلى ذاكرة التخزين المؤقت للجهاز).",
"setting_image_viewer_original_title": "Load original image", "setting_image_viewer_original_title": "تحميل الصورة الأصلية",
"setting_image_viewer_preview_subtitle": "Enable to load a medium-resolution image. Disable to either directly load the original or only use the thumbnail.", "setting_image_viewer_preview_subtitle": "تمكين تحميل صورة متوسطة الدقة.تعطيل إما لتحميل مباشرة أو استخدام الصورة المصغرة مباشرة.",
"setting_image_viewer_preview_title": "Load preview image", "setting_image_viewer_preview_title": "تحميل صورة معاينة",
"setting_languages_apply": "Apply", "setting_languages_apply": "Apply",
"setting_languages_title": "Languages", "setting_languages_title": "Languages",
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}", "setting_notifications_notify_failures_grace_period": "أخطر فشل النسخ الاحتياطي في الخلفية: {}",
"setting_notifications_notify_hours": "{} hours", "setting_notifications_notify_hours": "{} ساعات",
"setting_notifications_notify_immediately": "immediately", "setting_notifications_notify_immediately": "في الحال",
"setting_notifications_notify_minutes": "{} minutes", "setting_notifications_notify_minutes": "{} دقائق",
"setting_notifications_notify_never": "never", "setting_notifications_notify_never": "أبداً",
"setting_notifications_notify_seconds": "{} seconds", "setting_notifications_notify_seconds": "{} ثانية",
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset", "setting_notifications_single_progress_subtitle": "معلومات التقدم التفصيلية تحميل لكل أصل",
"setting_notifications_single_progress_title": "Show background backup detail progress", "setting_notifications_single_progress_title": "إظهار تقدم التفاصيل الاحتياطية الخلفية",
"setting_notifications_subtitle": "Adjust your notification preferences", "setting_notifications_subtitle": "اضبط تفضيلات الإخطار",
"setting_notifications_title": "Notifications", "setting_notifications_title": "إشعارات",
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)", "setting_notifications_total_progress_subtitle": "التقدم التحميل العام (تم القيام به/إجمالي الأصول)",
"setting_notifications_total_progress_title": "Show background backup total progress", "setting_notifications_total_progress_title": "إظهار النسخ الاحتياطي الخلفية التقدم المحرز",
"setting_pages_app_bar_settings": "Settings", "setting_pages_app_bar_settings": "إعدادات",
"settings_require_restart": "Please restart Immich to apply this setting", "settings_require_restart": "يرجى إعادة تشغيل Imich لتطبيق هذا الإعداد",
"share_add": "Add", "share_add": "يضيف",
"share_add_photos": "Add photos", "share_add_photos": "إضافة الصور",
"share_add_title": "Add a title", "share_add_title": "إضافة عنوان",
"share_create_album": "Create album", "share_assets_selected": "{} selected",
"shared_album_activities_input_disable": "Comment is disabled", "share_create_album": "إنشاء ألبوم",
"shared_album_activities_input_hint": "Say something", "shared_album_activities_input_disable": "التعليق معطل",
"shared_album_activity_remove_content": "Do you want to delete this activity?", "shared_album_activities_input_hint": "قل شيئا",
"shared_album_activity_remove_title": "Delete Activity", "shared_album_activity_remove_content": "هل تريد حذف هذا النشاط؟",
"shared_album_activity_setting_subtitle": "Let others respond", "shared_album_activity_remove_title": "حذف النشاط",
"shared_album_activity_setting_title": "Comments & likes", "shared_album_activity_setting_subtitle": "دع الآخرين يستجيبون",
"shared_album_section_people_action_error": "Error leaving/removing from album", "shared_album_activity_setting_title": "التعليقات والأحب",
"shared_album_section_people_action_leave": "Remove user from album", "shared_album_section_people_action_error": "خطأ ترك/إزالة من الألبوم",
"shared_album_section_people_action_remove_user": "Remove user from album", "shared_album_section_people_action_leave": "إزالة المستخدم من الألبوم",
"shared_album_section_people_owner_label": "Owner", "shared_album_section_people_action_remove_user": "إزالة المستخدم من الألبوم",
"shared_album_section_people_title": "PEOPLE", "shared_album_section_people_owner_label": "مالك",
"share_dialog_preparing": "Preparing...", "shared_album_section_people_title": "الناس",
"shared_link_app_bar_title": "Shared Links", "share_dialog_preparing": "تحضير...",
"shared_link_clipboard_copied_massage": "Copied to clipboard", "shared_link_app_bar_title": "روابط مشتركة",
"shared_link_clipboard_text": "Link: {}\nPassword: {}", "shared_link_clipboard_copied_massage": "نسخ إلى الحافظة",
"shared_link_create_app_bar_title": "Create link to share", "shared_link_clipboard_text": "وصلة: {}كلمة المرور: {}",
"shared_link_create_error": "Error while creating shared link", "shared_link_create_app_bar_title": "إنشاء رابط للمشاركة",
"shared_link_create_info": "Let anyone with the link see the selected photo(s)", "shared_link_create_error": "خطأ أثناء إنشاء رابط مشترك",
"shared_link_create_submit_button": "Create link", "shared_link_create_info": "دع أي شخص لديه الرابط يرى الصور المحددة)",
"shared_link_edit_allow_download": "Allow public user to download", "shared_link_create_submit_button": "إنشاء رابط",
"shared_link_edit_allow_upload": "Allow public user to upload", "shared_link_edit_allow_download": "السماح للمستخدم العام بالتنزيل",
"shared_link_edit_app_bar_title": "Edit link", "shared_link_edit_allow_upload": "السماح للمستخدم العام بالتحميل",
"shared_link_edit_change_expiry": "Change expiration time", "shared_link_edit_app_bar_title": "تغيير الرابط",
"shared_link_edit_description": "Description", "shared_link_edit_change_expiry": "تغيير وقت انتهاء الصلاحية",
"shared_link_edit_description_hint": "Enter the share description", "shared_link_edit_description": "وصف",
"shared_link_edit_expire_after": "Expire after", "shared_link_edit_description_hint": "أدخل وصف المشاركة",
"shared_link_edit_expire_after_option_day": "1 day", "shared_link_edit_expire_after": "تنتهي بعد",
"shared_link_edit_expire_after_option_days": "{} days", "shared_link_edit_expire_after_option_day": "يوم 1",
"shared_link_edit_expire_after_option_hour": "1 hour", "shared_link_edit_expire_after_option_days": "{} أيام",
"shared_link_edit_expire_after_option_hours": "{} hours", "shared_link_edit_expire_after_option_hour": "1 ساعة",
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_hours": "{} ساعات",
"shared_link_edit_expire_after_option_minutes": "{} minutes", "shared_link_edit_expire_after_option_minute": "1 دقيقة",
"shared_link_edit_expire_after_option_never": "Never", "shared_link_edit_expire_after_option_minutes": "{} دقائق",
"shared_link_edit_password": "Password", "shared_link_edit_expire_after_option_months": "{} months",
"shared_link_edit_password_hint": "Enter the share password", "shared_link_edit_expire_after_option_never": "أبداً",
"shared_link_edit_show_meta": "Show metadata", "shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_submit_button": "Update link", "shared_link_edit_password": "كلمة المرور",
"shared_link_empty": "You don't have any shared links", "shared_link_edit_password_hint": "أدخل كلمة مرور المشاركة",
"shared_link_error_server_url_fetch": "Cannot fetch the server url", "shared_link_edit_show_meta": "عرض البيانات الوصفية",
"shared_link_expired": "Expired", "shared_link_edit_submit_button": "تحديث الرابط",
"shared_link_expires_day": "Expires in {} day", "shared_link_empty": "ليس لديك أي روابط مشتركة",
"shared_link_expires_days": "Expires in {} days", "shared_link_error_server_url_fetch": "لا يمكن جلب عنوان الخادم",
"shared_link_expires_hour": "Expires in {} hour", "shared_link_expired": "منتهي الصلاحية",
"shared_link_expires_hours": "Expires in {} hours", "shared_link_expires_day": "تنتهي في اليوم {}",
"shared_link_expires_minute": "Expires in {} minute", "shared_link_expires_days": "تنتهي في {} أيام",
"shared_link_expires_minutes": "Expires in {} minutes", "shared_link_expires_hour": "تنتهي في الساعة {}",
"shared_link_expires_never": "Expires ∞", "shared_link_expires_hours": "تنتهي في {} ساعات",
"shared_link_expires_second": "Expires in {} second", "shared_link_expires_minute": "تنتهي في {} دقيقة",
"shared_link_expires_seconds": "Expires in {} seconds", "shared_link_expires_minutes": "تنتهي في الدقائق {}",
"shared_link_expires_never": "تنتهي ∞",
"shared_link_expires_second": "تنتهي في {} الثاني",
"shared_link_expires_seconds": "تنتهي في ثواني {}",
"shared_link_individual_shared": "Individual shared", "shared_link_individual_shared": "Individual shared",
"shared_link_info_chip_download": "Download", "shared_link_info_chip_download": "تحميل",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_info_chip_upload": "Upload", "shared_link_info_chip_upload": "رفع",
"shared_link_manage_links": "Manage Shared links", "shared_link_manage_links": "إدارة الروابط المشتركة",
"shared_link_public_album": "Public album", "shared_link_public_album": "Public album",
"share_done": "Done", "share_done": "منتهي",
"share_invite": "Invite to album", "share_invite": "دعوة إلى الألبوم",
"sharing_page_album": "Shared albums", "sharing_page_album": "ألبومات مشتركة",
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.", "sharing_page_description": "قم بإنشاء ألبومات مشتركة لمشاركة الصور ومقاطع الفيديو مع أشخاص في شبكتك.",
"sharing_page_empty_list": "EMPTY LIST", "sharing_page_empty_list": "قائمة فارغة",
"sharing_silver_appbar_create_shared_album": "New shared album", "sharing_silver_appbar_create_shared_album": "ألبوم مشترك جديد",
"sharing_silver_appbar_shared_links": "Shared links", "sharing_silver_appbar_shared_links": "روابط مشتركة",
"sharing_silver_appbar_share_partner": "Share with partner", "sharing_silver_appbar_share_partner": "شارك مع الشريك",
"tab_controller_nav_library": "Library", "tab_controller_nav_library": "مكتبة",
"tab_controller_nav_photos": "Photos", "tab_controller_nav_photos": "الصور",
"tab_controller_nav_search": "Search", "tab_controller_nav_search": "يبحث",
"tab_controller_nav_sharing": "Sharing", "tab_controller_nav_sharing": "مشاركة",
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles", "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": "عدد الأصول لكل صف ({})",
"theme_setting_dark_mode_switch": "Dark mode", "theme_setting_dark_mode_switch": "الوضع المظلم",
"theme_setting_image_viewer_quality_subtitle": "Adjust the quality of the detail image viewer", "theme_setting_image_viewer_quality_subtitle": "اضبط جودة عارض الصورة التفصيلية",
"theme_setting_image_viewer_quality_title": "Image viewer quality", "theme_setting_image_viewer_quality_title": "جودة عارض الصورة",
"theme_setting_system_theme_switch": "Automatic (Follow system setting)", "theme_setting_system_theme_switch": "تلقائي (اتبع إعداد النظام)",
"theme_setting_theme_subtitle": "Choose the app's theme setting", "theme_setting_theme_subtitle": "اختر إعدادات مظهر التطبيق",
"theme_setting_theme_title": "Theme", "theme_setting_theme_title": "مظهر",
"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": "قد يزيد التحميل من ثلاث مراحل من أداء التحميل ولكنه يسبب تحميل شبكة أعلى بكثير",
"theme_setting_three_stage_loading_title": "Enable three-stage loading", "theme_setting_three_stage_loading_title": "تمكين تحميل ثلاث مراحل",
"translated_text_options": "Options", "translated_text_options": "خيارات",
"trash_page_delete": "Delete", "trash_page_delete": "مسح",
"trash_page_delete_all": "Delete All", "trash_page_delete_all": "حذف الكل",
"trash_page_empty_trash_btn": "Empty trash", "trash_page_empty_trash_btn": "افرغ سله المهملات ",
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich", "trash_page_empty_trash_dialog_content": "هل تريد تفريغ أصولك المهملة؟ ستتم إزالة هذه العناصر نهائيًا من التطبيق",
"trash_page_empty_trash_dialog_ok": "Ok", "trash_page_empty_trash_dialog_ok": "نعم",
"trash_page_info": "Trashed items will be permanently deleted after {} days", "trash_page_info": "سيتم حذف العناصر المحذوفة بشكل دائم بعد {} أيام",
"trash_page_no_assets": "No trashed assets", "trash_page_no_assets": "لا توجد اصول في سله المهملات",
"trash_page_restore": "Restore", "trash_page_restore": "الترجيع من سله المهملات",
"trash_page_restore_all": "Restore All", "trash_page_restore_all": "استعادة الكل",
"trash_page_select_assets_btn": "Select assets", "trash_page_select_assets_btn": "اختر الأصول ",
"trash_page_select_btn": "Select", "trash_page_select_btn": "يختار",
"trash_page_title": "Trash ({})", "trash_page_title": "نفايات ({})",
"upload_dialog_cancel": "Cancel", "upload_dialog_cancel": "يلغي",
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?", "upload_dialog_info": "هل تريد النسخ الاحتياطي للأصول (الأصول) المحددة إلى الخادم؟",
"upload_dialog_ok": "Upload", "upload_dialog_ok": "رفع",
"upload_dialog_title": "Upload Asset", "upload_dialog_title": "تحميل الأصول",
"version_announcement_overlay_ack": "Acknowledge", "version_announcement_overlay_ack": "يُقرّ",
"version_announcement_overlay_release_notes": "release notes", "version_announcement_overlay_release_notes": "ملاحظات الإصدار",
"version_announcement_overlay_text_1": "Hi friend, there is a new release of", "version_announcement_overlay_text_1": "مرحبًا يا صديقي ، هناك إصدار جديد",
"version_announcement_overlay_text_2": "please take your time to visit the ", "version_announcement_overlay_text_2": "من فضلك خذ وقتك لزيارة",
"version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.", "version_announcement_overlay_text_3": " and ensure your docker-compose and .env setup is up-to-date to prevent any misconfigurations, especially if you use WatchTower or any mechanism that handles updating your server application automatically.",
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89", "version_announcement_overlay_title": "نسخه جديده متاحه للخادم ",
"viewer_remove_from_stack": "Remove from Stack", "viewer_remove_from_stack": "حذف من الكومه أو المجموعة",
"viewer_stack_use_as_main_asset": "Use as Main Asset", "viewer_stack_use_as_main_asset": "استخدم كأصل رئيسي",
"viewer_unstack": "Un-Stack" "viewer_unstack": "فك الكومه"
} }

View File

@@ -1,22 +1,22 @@
{ {
"action_common_cancel": "Cancel", "action_common_cancel": "Cancel·la",
"action_common_update": "Update", "action_common_update": "Actualitza",
"add_to_album_bottom_sheet_added": "Added to {album}", "add_to_album_bottom_sheet_added": "S'ha afegit a {album}",
"add_to_album_bottom_sheet_already_exists": "Already in {album}", "add_to_album_bottom_sheet_already_exists": "Ja es troba en {album}",
"advanced_settings_log_level_title": "Log level: {}", "advanced_settings_log_level_title": "Log level: {}",
"advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.", "advanced_settings_prefer_remote_subtitle": "Some devices are painfully slow to load thumbnails from assets on the device. Activate this setting to load remote images instead.",
"advanced_settings_prefer_remote_title": "Prefereix imatges remotes", "advanced_settings_prefer_remote_title": "Prefereix imatges remotes",
"advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.", "advanced_settings_self_signed_ssl_subtitle": "Skips SSL certificate verification for the server endpoint. Required for self-signed certificates.",
"advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates", "advanced_settings_self_signed_ssl_title": "Allow self-signed SSL certificates",
"advanced_settings_tile_subtitle": "Advanced user's settings", "advanced_settings_tile_subtitle": "Configuració avançada",
"advanced_settings_tile_title": "Avançat", "advanced_settings_tile_title": "Avançat",
"advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting", "advanced_settings_troubleshooting_subtitle": "Enable additional features for troubleshooting",
"advanced_settings_troubleshooting_title": "Resolució de problemes", "advanced_settings_troubleshooting_title": "Resolució de problemes",
"album_info_card_backup_album_excluded": "Exclosos", "album_info_card_backup_album_excluded": "Exclosos",
"album_info_card_backup_album_included": "Inclosos", "album_info_card_backup_album_included": "Inclosos",
"album_thumbnail_card_item": "1 item", "album_thumbnail_card_item": "1 element",
"album_thumbnail_card_items": "{} items", "album_thumbnail_card_items": "{} elements",
"album_thumbnail_card_shared": " · Shared", "album_thumbnail_card_shared": " · Compartit",
"album_thumbnail_owned": "Owned", "album_thumbnail_owned": "Owned",
"album_thumbnail_shared_by": "Compartit per {}", "album_thumbnail_shared_by": "Compartit per {}",
"album_viewer_appbar_share_delete": "Esborra l'àlbum", "album_viewer_appbar_share_delete": "Esborra l'àlbum",
@@ -435,46 +435,46 @@
"shared_link_expires_never": "Expires ∞", "shared_link_expires_never": "Expires ∞",
"shared_link_expires_second": "Expires in {} second", "shared_link_expires_second": "Expires in {} second",
"shared_link_expires_seconds": "Expires in {} seconds", "shared_link_expires_seconds": "Expires in {} seconds",
"shared_link_info_chip_download": "Download", "shared_link_info_chip_download": "Baixa",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_info_chip_upload": "Upload", "shared_link_info_chip_upload": "Puja",
"shared_link_manage_links": "Manage Shared links", "shared_link_manage_links": "Manage Shared links",
"share_done": "Done", "share_done": "Fet",
"share_invite": "Convida a l'àlbum", "share_invite": "Convida a l'àlbum",
"sharing_page_album": "Shared albums", "sharing_page_album": "Àlbums compartits",
"sharing_page_description": "Create shared albums to share photos and videos with people in your network.", "sharing_page_description": "Create shared albums to share photos and videos with people in your network.",
"sharing_page_empty_list": "EMPTY LIST", "sharing_page_empty_list": "EMPTY LIST",
"sharing_silver_appbar_create_shared_album": "Crea àlbum compartit", "sharing_silver_appbar_create_shared_album": "Crea àlbum compartit",
"sharing_silver_appbar_shared_links": "Shared links", "sharing_silver_appbar_shared_links": "Shared links",
"sharing_silver_appbar_share_partner": "Comparteix amb un company", "sharing_silver_appbar_share_partner": "Comparteix amb un company",
"tab_controller_nav_library": "Library", "tab_controller_nav_library": "Bibilioteca",
"tab_controller_nav_photos": "Fotografies", "tab_controller_nav_photos": "Fotos",
"tab_controller_nav_search": "Cerca", "tab_controller_nav_search": "Cerca",
"tab_controller_nav_sharing": "Compartint", "tab_controller_nav_sharing": "Compartint",
"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_dark_mode_switch": "Dark mode", "theme_setting_dark_mode_switch": "Modes fosc",
"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_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": "Tema",
"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_page_delete": "Delete", "trash_page_delete": "Elimina",
"trash_page_delete_all": "Delete All", "trash_page_delete_all": "Elimina-ho tot",
"trash_page_empty_trash_btn": "Empty trash", "trash_page_empty_trash_btn": "Buida la paperera",
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich", "trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich",
"trash_page_empty_trash_dialog_ok": "Ok", "trash_page_empty_trash_dialog_ok": "Ok",
"trash_page_info": "Trashed items will be permanently deleted after {} days", "trash_page_info": "Trashed items will be permanently deleted after {} days",
"trash_page_no_assets": "No trashed assets", "trash_page_no_assets": "No trashed assets",
"trash_page_restore": "Restore", "trash_page_restore": "Recupera",
"trash_page_restore_all": "Restore All", "trash_page_restore_all": "Recupera-ho tot",
"trash_page_select_assets_btn": "Select assets", "trash_page_select_assets_btn": "Select assets",
"trash_page_select_btn": "Select", "trash_page_select_btn": "Select",
"trash_page_title": "Trash ({})", "trash_page_title": "Trash ({})",
"upload_dialog_cancel": "Cancel", "upload_dialog_cancel": "Cancel·la",
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?", "upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
"upload_dialog_ok": "Upload", "upload_dialog_ok": "Upload",
"upload_dialog_title": "Upload Asset", "upload_dialog_title": "Upload Asset",

View File

@@ -1,8 +1,8 @@
{ {
"action_common_back": "Back", "action_common_back": "Zpět",
"action_common_cancel": "Zrušit", "action_common_cancel": "Zrušit",
"action_common_clear": "Clear", "action_common_clear": "Vyčistit",
"action_common_confirm": "Confirm", "action_common_confirm": "Potvrdit",
"action_common_update": "Aktualizovat", "action_common_update": "Aktualizovat",
"add_to_album_bottom_sheet_added": "Přidáno do {album}", "add_to_album_bottom_sheet_added": "Přidáno do {album}",
"add_to_album_bottom_sheet_already_exists": "Je již v {album}", "add_to_album_bottom_sheet_already_exists": "Je již v {album}",
@@ -22,7 +22,7 @@
"album_thumbnail_card_shared": " · Sdíleno", "album_thumbnail_card_shared": " · Sdíleno",
"album_thumbnail_owned": "Vlastní", "album_thumbnail_owned": "Vlastní",
"album_thumbnail_shared_by": "Sdílel(a) {}", "album_thumbnail_shared_by": "Sdílel(a) {}",
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?", "album_viewer_appbar_delete_confirm": "Opravdu chcete toto album odstranit ze svého účtu?",
"album_viewer_appbar_share_delete": "Smazat album", "album_viewer_appbar_share_delete": "Smazat album",
"album_viewer_appbar_share_err_delete": "Nepodařilo se smazat album", "album_viewer_appbar_share_err_delete": "Nepodařilo se smazat album",
"album_viewer_appbar_share_err_leave": "Nepodařilo se opustit album", "album_viewer_appbar_share_err_leave": "Nepodařilo se opustit album",
@@ -115,7 +115,7 @@
"backup_manual_in_progress": "Nahrávání již probíhá. Zkuste to znovu později", "backup_manual_in_progress": "Nahrávání již probíhá. Zkuste to znovu později",
"backup_manual_success": "Úspěch", "backup_manual_success": "Úspěch",
"backup_manual_title": "Stav nahrávání", "backup_manual_title": "Stav nahrávání",
"backup_options_page_title": "Backup options", "backup_options_page_title": "Nastavení záloh",
"cache_settings_album_thumbnails": "Náhledy stránek knihovny (položek {})", "cache_settings_album_thumbnails": "Náhledy stránek knihovny (položek {})",
"cache_settings_clear_cache_button": "Vymazat vyrovnávací paměť", "cache_settings_clear_cache_button": "Vymazat vyrovnávací paměť",
"cache_settings_clear_cache_button_title": "Vymaže vyrovnávací paměť aplikace. To výrazně ovlivní výkon aplikace, dokud se vyrovnávací paměť neobnoví.", "cache_settings_clear_cache_button_title": "Vymaže vyrovnávací paměť aplikace. To výrazně ovlivní výkon aplikace, dokud se vyrovnávací paměť neobnoví.",
@@ -201,6 +201,8 @@
"experimental_settings_title": "Experimentální", "experimental_settings_title": "Experimentální",
"favorites_page_no_favorites": "Nebyla nalezena žádná oblíbená média", "favorites_page_no_favorites": "Nebyla nalezena žádná oblíbená média",
"favorites_page_title": "Oblíbené", "favorites_page_title": "Oblíbené",
"haptic_feedback_switch": "Povolit dotykovou zpětnou vazbu",
"haptic_feedback_title": "Dotyková zpětná vazba",
"home_page_add_to_album_conflicts": "Přidáno {added} položek do alba {album}. {failed} položek je již v albu.", "home_page_add_to_album_conflicts": "Přidáno {added} položek do alba {album}. {failed} položek je již v albu.",
"home_page_add_to_album_err_local": "Zatím není možné přidat lokální média do alb, přeskakuji", "home_page_add_to_album_err_local": "Zatím není možné přidat lokální média do alb, přeskakuji",
"home_page_add_to_album_success": "Přidáno {added} položek do alba {album}.", "home_page_add_to_album_success": "Přidáno {added} položek do alba {album}.",
@@ -284,7 +286,7 @@
"map_settings_dialog_save": "Uložit", "map_settings_dialog_save": "Uložit",
"map_settings_dialog_title": "Nastavení map", "map_settings_dialog_title": "Nastavení map",
"map_settings_include_show_archived": "Zahrnout archivované", "map_settings_include_show_archived": "Zahrnout archivované",
"map_settings_include_show_partners": "Include Partners", "map_settings_include_show_partners": "Včetně partnerů",
"map_settings_only_relative_range": "Rozsah data", "map_settings_only_relative_range": "Rozsah data",
"map_settings_only_show_favorites": "Zobrazit pouze oblíbené", "map_settings_only_show_favorites": "Zobrazit pouze oblíbené",
"map_settings_theme_settings": "Motiv mapy", "map_settings_theme_settings": "Motiv mapy",
@@ -297,14 +299,15 @@
"motion_photos_page_title": "Pohyblivé fotky", "motion_photos_page_title": "Pohyblivé fotky",
"multiselect_grid_edit_date_time_err_read_only": "Nelze upravit datum položek pouze pro čtení, přeskakuji", "multiselect_grid_edit_date_time_err_read_only": "Nelze upravit datum položek pouze pro čtení, přeskakuji",
"multiselect_grid_edit_gps_err_read_only": "Nelze upravit polohu položek pouze pro čtení, přeskakuji", "multiselect_grid_edit_gps_err_read_only": "Nelze upravit polohu položek pouze pro čtení, přeskakuji",
"no_assets_to_show": "Žádné položky k zobrazení",
"notification_permission_dialog_cancel": "Zrušit", "notification_permission_dialog_cancel": "Zrušit",
"notification_permission_dialog_content": "Chcete-li povolit oznámení, přejděte do nastavení a vyberte možnost povolit.", "notification_permission_dialog_content": "Chcete-li povolit oznámení, přejděte do nastavení a vyberte možnost povolit.",
"notification_permission_dialog_settings": "Nastavení", "notification_permission_dialog_settings": "Nastavení",
"notification_permission_list_tile_content": "Udělte oprávnění k aktivaci oznámení.", "notification_permission_list_tile_content": "Udělte oprávnění k aktivaci oznámení.",
"notification_permission_list_tile_enable_button": "Povolit oznámení", "notification_permission_list_tile_enable_button": "Povolit oznámení",
"notification_permission_list_tile_title": "Povolení oznámení", "notification_permission_list_tile_title": "Povolení oznámení",
"partner_list_user_photos": "{user}'s photos", "partner_list_user_photos": "Fotografie uživatele {user}",
"partner_list_view_all": "View all", "partner_list_view_all": "Zobrazit všechny",
"partner_page_add_partner": "Přidat partnera", "partner_page_add_partner": "Přidat partnera",
"partner_page_empty_message": "Vaše fotografie zatím nejsou sdíleny s žádným partnerem.", "partner_page_empty_message": "Vaše fotografie zatím nejsou sdíleny s žádným partnerem.",
"partner_page_no_more_users": "Žádní další uživatelé k přidání", "partner_page_no_more_users": "Žádní další uživatelé k přidání",
@@ -339,17 +342,17 @@
"recently_added_page_title": "Nedávno přidané", "recently_added_page_title": "Nedávno přidané",
"scaffold_body_error_occurred": "Došlo k chybě", "scaffold_body_error_occurred": "Došlo k chybě",
"search_bar_hint": "Prohledejte své fotky", "search_bar_hint": "Prohledejte své fotky",
"search_filter_apply": "Apply filter", "search_filter_apply": "Použít filtr",
"search_filter_camera_make": "Make", "search_filter_camera_make": "Výrobce",
"search_filter_camera_model": "Model", "search_filter_camera_model": "Model",
"search_filter_display_option_archive": "Archive", "search_filter_display_option_archive": "Archiv",
"search_filter_display_option_favorite": "Favorite", "search_filter_display_option_favorite": "Oblíbené",
"search_filter_display_option_not_in_album": "Not in album", "search_filter_display_option_not_in_album": "Není v albu",
"search_filter_location_city": "City", "search_filter_location_city": "Město",
"search_filter_location_country": "Country", "search_filter_location_country": "Země",
"search_filter_location_state": "State", "search_filter_location_state": "Stát",
"search_filter_media_type_all": "All", "search_filter_media_type_all": "Všechny",
"search_filter_media_type_image": "Image", "search_filter_media_type_image": "Obrázek",
"search_filter_media_type_video": "Video", "search_filter_media_type_video": "Video",
"search_page_categories": "Kategorie", "search_page_categories": "Kategorie",
"search_page_favorites": "Oblíbené", "search_page_favorites": "Oblíbené",
@@ -388,8 +391,8 @@
"setting_image_viewer_original_title": "Načíst původní obrázek", "setting_image_viewer_original_title": "Načíst původní obrázek",
"setting_image_viewer_preview_subtitle": "Umožňuje načíst obrázek se středním rozlišením. Zakažte, pokud chcete přímo načíst originál nebo použít pouze miniaturu.", "setting_image_viewer_preview_subtitle": "Umožňuje načíst obrázek se středním rozlišením. Zakažte, pokud chcete přímo načíst originál nebo použít pouze miniaturu.",
"setting_image_viewer_preview_title": "Načíst náhled obrázku", "setting_image_viewer_preview_title": "Načíst náhled obrázku",
"setting_languages_apply": "Apply", "setting_languages_apply": "Použít",
"setting_languages_title": "Languages", "setting_languages_title": "Jazyk",
"setting_notifications_notify_failures_grace_period": "Oznámení o selhání zálohování na pozadí: {}", "setting_notifications_notify_failures_grace_period": "Oznámení o selhání zálohování na pozadí: {}",
"setting_notifications_notify_hours": "{} hodin", "setting_notifications_notify_hours": "{} hodin",
"setting_notifications_notify_immediately": "okamžitě", "setting_notifications_notify_immediately": "okamžitě",
@@ -407,6 +410,7 @@
"share_add": "Přidat", "share_add": "Přidat",
"share_add_photos": "Přidat fotografie", "share_add_photos": "Přidat fotografie",
"share_add_title": "Přidat název", "share_add_title": "Přidat název",
"share_assets_selected": "{} vybráno",
"share_create_album": "Vytvořit album", "share_create_album": "Vytvořit album",
"shared_album_activities_input_disable": "Komentář je vypnutý", "shared_album_activities_input_disable": "Komentář je vypnutý",
"shared_album_activities_input_hint": "Řekněte něco", "shared_album_activities_input_hint": "Řekněte něco",
@@ -440,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} hodin", "shared_link_edit_expire_after_option_hours": "{} hodin",
"shared_link_edit_expire_after_option_minute": "1 minuta", "shared_link_edit_expire_after_option_minute": "1 minuta",
"shared_link_edit_expire_after_option_minutes": "{} minut", "shared_link_edit_expire_after_option_minutes": "{} minut",
"shared_link_edit_expire_after_option_months": "{} měsíce",
"shared_link_edit_expire_after_option_never": "Nikdy", "shared_link_edit_expire_after_option_never": "Nikdy",
"shared_link_edit_expire_after_option_year": "{} rok",
"shared_link_edit_password": "Heslo", "shared_link_edit_password": "Heslo",
"shared_link_edit_password_hint": "Zadejte heslo pro sdílení", "shared_link_edit_password_hint": "Zadejte heslo pro sdílení",
"shared_link_edit_show_meta": "Zobrazit metadata", "shared_link_edit_show_meta": "Zobrazit metadata",
@@ -457,12 +463,12 @@
"shared_link_expires_never": "Platnost ∞", "shared_link_expires_never": "Platnost ∞",
"shared_link_expires_second": "Vyprší za {} sekundu", "shared_link_expires_second": "Vyprší za {} sekundu",
"shared_link_expires_seconds": "Vyprší za {} sekund", "shared_link_expires_seconds": "Vyprší za {} sekund",
"shared_link_individual_shared": "Individual shared", "shared_link_individual_shared": "Individuální sdílení",
"shared_link_info_chip_download": "Stáhnout", "shared_link_info_chip_download": "Stáhnout",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_info_chip_upload": "Nahrát", "shared_link_info_chip_upload": "Nahrát",
"shared_link_manage_links": "Spravovat sdílené odkazy", "shared_link_manage_links": "Spravovat sdílené odkazy",
"shared_link_public_album": "Public album", "shared_link_public_album": "Veřejné album",
"share_done": "Hotovo", "share_done": "Hotovo",
"share_invite": "Pozvat do alba", "share_invite": "Pozvat do alba",
"sharing_page_album": "Sdílená alba", "sharing_page_album": "Sdílená alba",

View File

@@ -1,8 +1,8 @@
{ {
"action_common_back": "Back", "action_common_back": "Tilbage",
"action_common_cancel": "Annuller", "action_common_cancel": "Annuller",
"action_common_clear": "Clear", "action_common_clear": "Ryd",
"action_common_confirm": "Confirm", "action_common_confirm": "Bekræft",
"action_common_update": "Opdater", "action_common_update": "Opdater",
"add_to_album_bottom_sheet_added": "Tilføjet til {album}", "add_to_album_bottom_sheet_added": "Tilføjet til {album}",
"add_to_album_bottom_sheet_already_exists": "Allerede i {album}", "add_to_album_bottom_sheet_already_exists": "Allerede i {album}",
@@ -22,7 +22,7 @@
"album_thumbnail_card_shared": ". Delt", "album_thumbnail_card_shared": ". Delt",
"album_thumbnail_owned": "Ejet", "album_thumbnail_owned": "Ejet",
"album_thumbnail_shared_by": "Delt af {}", "album_thumbnail_shared_by": "Delt af {}",
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?", "album_viewer_appbar_delete_confirm": "Er du sikker på, du vil slette dette album fra din bruger?",
"album_viewer_appbar_share_delete": "Slet album", "album_viewer_appbar_share_delete": "Slet album",
"album_viewer_appbar_share_err_delete": "Fejlede sletning af album", "album_viewer_appbar_share_err_delete": "Fejlede sletning af album",
"album_viewer_appbar_share_err_leave": "Fejlede i at forlade album", "album_viewer_appbar_share_err_leave": "Fejlede i at forlade album",
@@ -41,7 +41,7 @@
"archive_page_title": "Arkivér ({})", "archive_page_title": "Arkivér ({})",
"asset_action_delete_err_read_only": "Kan ikke slette kun læselige elementer. Springer over", "asset_action_delete_err_read_only": "Kan ikke slette kun læselige elementer. Springer over",
"asset_action_share_err_offline": "Kan ikke hente offline element(er). Springer over", "asset_action_share_err_offline": "Kan ikke hente offline element(er). Springer over",
"asset_list_group_by_sub_title": "Group by", "asset_list_group_by_sub_title": "Gruppér efter",
"asset_list_layout_settings_dynamic_layout_title": "Dynamisk layout", "asset_list_layout_settings_dynamic_layout_title": "Dynamisk layout",
"asset_list_layout_settings_group_automatically": "Automatisk", "asset_list_layout_settings_group_automatically": "Automatisk",
"asset_list_layout_settings_group_by": "Gruppér elementer pr. ", "asset_list_layout_settings_group_by": "Gruppér elementer pr. ",
@@ -50,7 +50,7 @@
"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_viewer_settings_title": "Asset Viewer", "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",
"backup_album_selection_page_assets_scatter": "Elementer kan være spredt på tværs af flere albummer. Albummer kan således inkluderes eller udelukkes under sikkerhedskopieringsprocessen.", "backup_album_selection_page_assets_scatter": "Elementer kan være spredt på tværs af flere albummer. Albummer kan således inkluderes eller udelukkes under sikkerhedskopieringsprocessen.",
@@ -115,7 +115,7 @@
"backup_manual_in_progress": "Upload er allerede undervejs. Prøv igen efter noget tid", "backup_manual_in_progress": "Upload er allerede undervejs. Prøv igen efter noget tid",
"backup_manual_success": "Succes", "backup_manual_success": "Succes",
"backup_manual_title": "Uploadstatus", "backup_manual_title": "Uploadstatus",
"backup_options_page_title": "Backup options", "backup_options_page_title": "Backupindstillinger",
"cache_settings_album_thumbnails": "Biblioteksminiaturebilleder ({} elementer)", "cache_settings_album_thumbnails": "Biblioteksminiaturebilleder ({} elementer)",
"cache_settings_clear_cache_button": "Fjern cache", "cache_settings_clear_cache_button": "Fjern cache",
"cache_settings_clear_cache_button_title": "Fjern appens cache. Dette vil i stor grad påvirke appens ydeevne indtil cachen er genopbygget.", "cache_settings_clear_cache_button_title": "Fjern appens cache. Dette vil i stor grad påvirke appens ydeevne indtil cachen er genopbygget.",
@@ -194,13 +194,15 @@
"exif_bottom_sheet_location": "LOKATION", "exif_bottom_sheet_location": "LOKATION",
"exif_bottom_sheet_location_add": "Tilføj en placering", "exif_bottom_sheet_location_add": "Tilføj en placering",
"exif_bottom_sheet_people": "PERSONER", "exif_bottom_sheet_people": "PERSONER",
"exif_bottom_sheet_person_add_person": "Add name", "exif_bottom_sheet_person_add_person": "Tilføj navn",
"experimental_settings_new_asset_list_subtitle": "Under udarbejdelse", "experimental_settings_new_asset_list_subtitle": "Under udarbejdelse",
"experimental_settings_new_asset_list_title": "Aktiver eksperimentelt fotogitter", "experimental_settings_new_asset_list_title": "Aktiver eksperimentelt fotogitter",
"experimental_settings_subtitle": "Brug på eget ansvar!", "experimental_settings_subtitle": "Brug på eget ansvar!",
"experimental_settings_title": "Eksperimentelle", "experimental_settings_title": "Eksperimentelle",
"favorites_page_no_favorites": "Ingen favoritter blev fundet", "favorites_page_no_favorites": "Ingen favoritter blev fundet",
"favorites_page_title": "Favoritter", "favorites_page_title": "Favoritter",
"haptic_feedback_switch": "Slå haptisk feedback til",
"haptic_feedback_title": "Haptisk feedback",
"home_page_add_to_album_conflicts": "Tilføjede {added} elementer til album {album}. {failed} elementer er allerede i albummet.", "home_page_add_to_album_conflicts": "Tilføjede {added} elementer til album {album}. {failed} elementer er allerede i albummet.",
"home_page_add_to_album_err_local": "Kan endnu ikke tilføje lokale elementer til album. Springer over..", "home_page_add_to_album_err_local": "Kan endnu ikke tilføje lokale elementer til album. Springer over..",
"home_page_add_to_album_success": "Tilføjede {added} elementer til album {album}.", "home_page_add_to_album_success": "Tilføjede {added} elementer til album {album}.",
@@ -216,7 +218,7 @@
"home_page_share_err_local": "Kan ikke dele lokale elementer via link, springer over", "home_page_share_err_local": "Kan ikke dele lokale elementer via link, springer over",
"home_page_upload_err_limit": "Det er kun muligt at lave sikkerhedskopi af 30 elementer ad gangen. Springer over", "home_page_upload_err_limit": "Det er kun muligt at lave sikkerhedskopi af 30 elementer ad gangen. Springer over",
"image_viewer_page_state_provider_download_error": "Fejl ved download", "image_viewer_page_state_provider_download_error": "Fejl ved download",
"image_viewer_page_state_provider_download_started": "Download startede", "image_viewer_page_state_provider_download_started": "Download startet",
"image_viewer_page_state_provider_download_success": "Download succesfuld", "image_viewer_page_state_provider_download_success": "Download succesfuld",
"image_viewer_page_state_provider_share_error": "Delingsfejl", "image_viewer_page_state_provider_share_error": "Delingsfejl",
"library_page_albums": "Albummer", "library_page_albums": "Albummer",
@@ -284,27 +286,28 @@
"map_settings_dialog_save": "Gem", "map_settings_dialog_save": "Gem",
"map_settings_dialog_title": "Kortindstillinger", "map_settings_dialog_title": "Kortindstillinger",
"map_settings_include_show_archived": "Inkluder arkiveret", "map_settings_include_show_archived": "Inkluder arkiveret",
"map_settings_include_show_partners": "Include Partners", "map_settings_include_show_partners": "Inkluder partnere",
"map_settings_only_relative_range": "Datointerval", "map_settings_only_relative_range": "Datointerval",
"map_settings_only_show_favorites": "Vis kun favoritter", "map_settings_only_show_favorites": "Vis kun favoritter",
"map_settings_theme_settings": "Korttema", "map_settings_theme_settings": "Korttema",
"map_zoom_to_see_photos": "Zoom ud for at vise billeder", "map_zoom_to_see_photos": "Zoom ud for at vise billeder",
"memories_all_caught_up": "All caught up", "memories_all_caught_up": "Ajour",
"memories_check_back_tomorrow": "Check back tomorrow for more memories", "memories_check_back_tomorrow": "Kom tilbage i morgen for at se nye minder",
"memories_start_over": "Start Over", "memories_start_over": "Start forfra",
"memories_swipe_to_close": "Swipe up to close", "memories_swipe_to_close": "Stryg op for at lukke",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "MMMM y",
"motion_photos_page_title": "Bevægelsesbilleder", "motion_photos_page_title": "Bevægelsesbilleder",
"multiselect_grid_edit_date_time_err_read_only": "Kan ikke redigere datoen på kun læselige elementer. Springer over", "multiselect_grid_edit_date_time_err_read_only": "Kan ikke redigere datoen på kun læselige elementer. Springer over",
"multiselect_grid_edit_gps_err_read_only": "Kan ikke redigere lokation af kun læselige elementer. Springer over", "multiselect_grid_edit_gps_err_read_only": "Kan ikke redigere lokation af kun læselige elementer. Springer over",
"no_assets_to_show": "Ingen elementer at vise",
"notification_permission_dialog_cancel": "Annuller", "notification_permission_dialog_cancel": "Annuller",
"notification_permission_dialog_content": "Gå til indstillinger for at slå notifikationer til.", "notification_permission_dialog_content": "Gå til indstillinger for at slå notifikationer til.",
"notification_permission_dialog_settings": "Indstillinger", "notification_permission_dialog_settings": "Indstillinger",
"notification_permission_list_tile_content": "Tillad at bruge notifikationer.", "notification_permission_list_tile_content": "Tillad at bruge notifikationer.",
"notification_permission_list_tile_enable_button": "Slå notifikationer til", "notification_permission_list_tile_enable_button": "Slå notifikationer til",
"notification_permission_list_tile_title": "Notifikationstilladelser", "notification_permission_list_tile_title": "Notifikationstilladelser",
"partner_list_user_photos": "{user}'s photos", "partner_list_user_photos": "{user}s billeder",
"partner_list_view_all": "View all", "partner_list_view_all": "Se alle",
"partner_page_add_partner": "Tilføj partner", "partner_page_add_partner": "Tilføj partner",
"partner_page_empty_message": "Dine billeder er endnu ikke delt med en partner.", "partner_page_empty_message": "Dine billeder er endnu ikke delt med en partner.",
"partner_page_no_more_users": "Der er ikke flere brugere at tilføje", "partner_page_no_more_users": "Der er ikke flere brugere at tilføje",
@@ -324,7 +327,7 @@
"permission_onboarding_permission_granted": "Tilladelse givet! Du er nu klar.", "permission_onboarding_permission_granted": "Tilladelse givet! Du er nu klar.",
"permission_onboarding_permission_limited": "Tilladelse begrænset. For at lade Immich lave sikkerhedskopi og styre hele dit galleri, skal der gives tilladelse til billeder og videoer i indstillinger.", "permission_onboarding_permission_limited": "Tilladelse begrænset. For at lade Immich lave sikkerhedskopi og styre hele dit galleri, skal der gives tilladelse til billeder og videoer i indstillinger.",
"permission_onboarding_request": "Immich kræver tilliadelse til at se dine billeder og videoer.", "permission_onboarding_request": "Immich kræver tilliadelse til at se dine billeder og videoer.",
"preferences_settings_title": "Preferences", "preferences_settings_title": "Præferencer",
"profile_drawer_app_logs": "Log", "profile_drawer_app_logs": "Log",
"profile_drawer_client_out_of_date_major": "Mobilapp er forældet. Opdater venligst til den nyeste større version", "profile_drawer_client_out_of_date_major": "Mobilapp er forældet. Opdater venligst til den nyeste større version",
"profile_drawer_client_out_of_date_minor": "Mobilapp er forældet. Opdater venligst til den nyeste mindre version", "profile_drawer_client_out_of_date_minor": "Mobilapp er forældet. Opdater venligst til den nyeste mindre version",
@@ -339,17 +342,17 @@
"recently_added_page_title": "Nyligt tilføjet", "recently_added_page_title": "Nyligt tilføjet",
"scaffold_body_error_occurred": "Der opstod en fejl", "scaffold_body_error_occurred": "Der opstod en fejl",
"search_bar_hint": "Søg i dine billeder", "search_bar_hint": "Søg i dine billeder",
"search_filter_apply": "Apply filter", "search_filter_apply": "Tilføj filter",
"search_filter_camera_make": "Make", "search_filter_camera_make": "Producent",
"search_filter_camera_model": "Model", "search_filter_camera_model": "Model",
"search_filter_display_option_archive": "Archive", "search_filter_display_option_archive": "Arkiv",
"search_filter_display_option_favorite": "Favorite", "search_filter_display_option_favorite": "Favorit",
"search_filter_display_option_not_in_album": "Not in album", "search_filter_display_option_not_in_album": "Ikke i album",
"search_filter_location_city": "City", "search_filter_location_city": "By",
"search_filter_location_country": "Country", "search_filter_location_country": "Land",
"search_filter_location_state": "State", "search_filter_location_state": "Stat",
"search_filter_media_type_all": "All", "search_filter_media_type_all": "Alle",
"search_filter_media_type_image": "Image", "search_filter_media_type_image": "Billede",
"search_filter_media_type_video": "Video", "search_filter_media_type_video": "Video",
"search_page_categories": "Kategorier", "search_page_categories": "Kategorier",
"search_page_favorites": "Favoritter", "search_page_favorites": "Favoritter",
@@ -388,8 +391,8 @@
"setting_image_viewer_original_title": "Indlæs originalbillede", "setting_image_viewer_original_title": "Indlæs originalbillede",
"setting_image_viewer_preview_subtitle": "Slå indlæsning af et mediumstørrelse billede til. Slå fra for enten direkte at indlæse originalen eller kun at bruge miniaturebilledet.", "setting_image_viewer_preview_subtitle": "Slå indlæsning af et mediumstørrelse billede til. Slå fra for enten direkte at indlæse originalen eller kun at bruge miniaturebilledet.",
"setting_image_viewer_preview_title": "Indlæs forhåndsvisning af billedet", "setting_image_viewer_preview_title": "Indlæs forhåndsvisning af billedet",
"setting_languages_apply": "Apply", "setting_languages_apply": "Anvend",
"setting_languages_title": "Languages", "setting_languages_title": "Sprog",
"setting_notifications_notify_failures_grace_period": "Giv besked om fejl med sikkerhedskopiering i baggrunden: {}", "setting_notifications_notify_failures_grace_period": "Giv besked om fejl med sikkerhedskopiering i baggrunden: {}",
"setting_notifications_notify_hours": "{} timer", "setting_notifications_notify_hours": "{} timer",
"setting_notifications_notify_immediately": "med det samme", "setting_notifications_notify_immediately": "med det samme",
@@ -407,6 +410,7 @@
"share_add": "Tilføj", "share_add": "Tilføj",
"share_add_photos": "Tilføj billeder", "share_add_photos": "Tilføj billeder",
"share_add_title": "Tilføj en titel", "share_add_title": "Tilføj en titel",
"share_assets_selected": "{} valgt",
"share_create_album": "Opret album", "share_create_album": "Opret album",
"shared_album_activities_input_disable": "Kommentarer er deaktiveret", "shared_album_activities_input_disable": "Kommentarer er deaktiveret",
"shared_album_activities_input_hint": "Skriv noget", "shared_album_activities_input_hint": "Skriv noget",
@@ -440,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} timer", "shared_link_edit_expire_after_option_hours": "{} timer",
"shared_link_edit_expire_after_option_minute": "1 minut", "shared_link_edit_expire_after_option_minute": "1 minut",
"shared_link_edit_expire_after_option_minutes": "{} minutter", "shared_link_edit_expire_after_option_minutes": "{} minutter",
"shared_link_edit_expire_after_option_months": "{} måneder",
"shared_link_edit_expire_after_option_never": "Aldrig", "shared_link_edit_expire_after_option_never": "Aldrig",
"shared_link_edit_expire_after_option_year": "{} år",
"shared_link_edit_password": "Kodeord", "shared_link_edit_password": "Kodeord",
"shared_link_edit_password_hint": "Indtast kodeordet", "shared_link_edit_password_hint": "Indtast kodeordet",
"shared_link_edit_show_meta": "Vis metadata", "shared_link_edit_show_meta": "Vis metadata",
@@ -454,15 +460,15 @@
"shared_link_expires_hours": "Udløber om {} timer", "shared_link_expires_hours": "Udløber om {} timer",
"shared_link_expires_minute": "Udløber om {} minut", "shared_link_expires_minute": "Udløber om {} minut",
"shared_link_expires_minutes": "Udløber om {} minutter", "shared_link_expires_minutes": "Udløber om {} minutter",
"shared_link_expires_never": "Expires ∞", "shared_link_expires_never": "Udløber aldrig",
"shared_link_expires_second": "Udløber om {} sekund", "shared_link_expires_second": "Udløber om {} sekund",
"shared_link_expires_seconds": "Udløber om {} sekunder", "shared_link_expires_seconds": "Udløber om {} sekunder",
"shared_link_individual_shared": "Individual shared", "shared_link_individual_shared": "Individuelt delt",
"shared_link_info_chip_download": "Hent", "shared_link_info_chip_download": "Hent",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_info_chip_upload": "Upload", "shared_link_info_chip_upload": "Upload",
"shared_link_manage_links": "Håndter delte links", "shared_link_manage_links": "Håndter delte links",
"shared_link_public_album": "Public album", "shared_link_public_album": "Offentligt album",
"share_done": "Færdig", "share_done": "Færdig",
"share_invite": "Inviter til album", "share_invite": "Inviter til album",
"sharing_page_album": "Delt albums", "sharing_page_album": "Delt albums",

View File

@@ -1,19 +1,19 @@
{ {
"action_common_back": "Back", "action_common_back": "Zurück",
"action_common_cancel": "Abbrechen", "action_common_cancel": "Abbrechen",
"action_common_clear": "Clear", "action_common_clear": "Leeren",
"action_common_confirm": "Confirm", "action_common_confirm": "Bestätigen",
"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 lokaler 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_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",
"advanced_settings_tile_subtitle": "Erweiterte Benutzereinstellungen", "advanced_settings_tile_subtitle": "Erweiterte Benutzereinstellungen",
"advanced_settings_tile_title": "Sonstige", "advanced_settings_tile_title": "Sonstige",
"advanced_settings_troubleshooting_subtitle": "Aktiviere erweiterte Funktionen zur Fehlersuche", "advanced_settings_troubleshooting_subtitle": "Erweiterte Funktionen zur Fehlersuche aktivieren",
"advanced_settings_troubleshooting_title": "Fehlersuche", "advanced_settings_troubleshooting_title": "Fehlersuche",
"album_info_card_backup_album_excluded": "AUSGESCHLOSSEN", "album_info_card_backup_album_excluded": "AUSGESCHLOSSEN",
"album_info_card_backup_album_included": "EINGESCHLOSSEN", "album_info_card_backup_album_included": "EINGESCHLOSSEN",
@@ -22,7 +22,7 @@
"album_thumbnail_card_shared": " · Geteilt", "album_thumbnail_card_shared": " · Geteilt",
"album_thumbnail_owned": "Eigene", "album_thumbnail_owned": "Eigene",
"album_thumbnail_shared_by": "Geteilt von {}", "album_thumbnail_shared_by": "Geteilt von {}",
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?", "album_viewer_appbar_delete_confirm": "Bist du sicher, dass du dieses Album aus deinem Konto löschen möchtest?",
"album_viewer_appbar_share_delete": "Album löschen", "album_viewer_appbar_share_delete": "Album löschen",
"album_viewer_appbar_share_err_delete": "Album konnte nicht gelöscht werden", "album_viewer_appbar_share_err_delete": "Album konnte nicht gelöscht werden",
"album_viewer_appbar_share_err_leave": "Album konnte nicht verlassen werden", "album_viewer_appbar_share_err_leave": "Album konnte nicht verlassen werden",
@@ -34,14 +34,14 @@
"album_viewer_page_share_add_users": "Nutzer hinzufügen", "album_viewer_page_share_add_users": "Nutzer hinzufügen",
"all_people_page_title": "Personen", "all_people_page_title": "Personen",
"all_videos_page_title": "Videos", "all_videos_page_title": "Videos",
"app_bar_signout_dialog_content": "Bist du sicher, dass du dich abmelden möchtest?", "app_bar_signout_dialog_content": "Bist du dir sicher, dass du dich abmelden möchtest?",
"app_bar_signout_dialog_ok": "Ja", "app_bar_signout_dialog_ok": "Ja",
"app_bar_signout_dialog_title": "Abmelden", "app_bar_signout_dialog_title": "Abmelden",
"archive_page_no_archived_assets": "Keine archivierten Inhalte gefunden", "archive_page_no_archived_assets": "Keine archivierten Inhalte gefunden",
"archive_page_title": "Archiv ({})", "archive_page_title": "Archiv ({})",
"asset_action_delete_err_read_only": "Schreibgeschützten Inhalte können nicht gelöscht werden, überspringe", "asset_action_delete_err_read_only": "Schreibgeschützte Inhalte können nicht gelöscht werden, überspringen...",
"asset_action_share_err_offline": "Offline-Inhalte konnten nicht gelesen werden, überspringe", "asset_action_share_err_offline": "Die Offline-Inhalte konnten nicht gelesen werden, überspringen...",
"asset_list_group_by_sub_title": "Group by", "asset_list_group_by_sub_title": "Gruppieren nach",
"asset_list_layout_settings_dynamic_layout_title": "Dynamisches Layout", "asset_list_layout_settings_dynamic_layout_title": "Dynamisches Layout",
"asset_list_layout_settings_group_automatically": "Automatisch", "asset_list_layout_settings_group_automatically": "Automatisch",
"asset_list_layout_settings_group_by": "Gruppiere Elemente nach", "asset_list_layout_settings_group_by": "Gruppiere Elemente nach",
@@ -50,16 +50,16 @@
"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_viewer_settings_title": "Asset Viewer", "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": "Tippen um einzuschließen, doppelt tippen um zu entfernen", "backup_album_selection_page_albums_tap": "Einmalig tippen um einzuschließen, doppelt tippen um zu entfernen",
"backup_album_selection_page_assets_scatter": "Elemente können sich über mehrere Alben verteilen. Daher können diese vor der Sicherung eingeschlossen oder ausgeschlossen werden", "backup_album_selection_page_assets_scatter": "Elemente können sich über mehrere Alben verteilen. Daher können diese vor der Sicherung eingeschlossen oder ausgeschlossen werden",
"backup_album_selection_page_select_albums": "Alben auswählen", "backup_album_selection_page_select_albums": "Alben auswählen",
"backup_album_selection_page_selection_info": "Auswahl", "backup_album_selection_page_selection_info": "Auswahl",
"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": "Fehler beim Sichern von Elementen. Probiere erneut...",
"backup_background_service_connection_failed_message": "Konnte keine Verbindung zum Server herstellen. Neuer Versuch...", "backup_background_service_connection_failed_message": "Es konnte keine Verbindung zum Server herstellen. Neuer 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…",
"backup_background_service_error_title": "Fehler bei der Sicherung", "backup_background_service_error_title": "Fehler bei der Sicherung",
@@ -97,7 +97,7 @@
"backup_controller_page_remainder": "Verbleibend", "backup_controller_page_remainder": "Verbleibend",
"backup_controller_page_remainder_sub": "Noch zu sichernde Fotos und Videos", "backup_controller_page_remainder_sub": "Noch zu sichernde Fotos und Videos",
"backup_controller_page_select": "Auswählen", "backup_controller_page_select": "Auswählen",
"backup_controller_page_server_storage": "Server Speicher", "backup_controller_page_server_storage": "Server-Speicher",
"backup_controller_page_start_backup": "Sicherung starten", "backup_controller_page_start_backup": "Sicherung starten",
"backup_controller_page_status_off": "Sicherung im Vordergrund ist inaktiv", "backup_controller_page_status_off": "Sicherung im Vordergrund ist inaktiv",
"backup_controller_page_status_on": "Sicherung im Vordergrund ist aktiv", "backup_controller_page_status_on": "Sicherung im Vordergrund ist aktiv",
@@ -112,10 +112,10 @@
"backup_info_card_assets": "Elemente", "backup_info_card_assets": "Elemente",
"backup_manual_cancelled": "Abgebrochen", "backup_manual_cancelled": "Abgebrochen",
"backup_manual_failed": "Fehlgeschlagen", "backup_manual_failed": "Fehlgeschlagen",
"backup_manual_in_progress": "Sicherung läuft bereits. Bitte später erneut versuchen", "backup_manual_in_progress": "Sicherung läuft bereits. Bitte versuche es später erneut.",
"backup_manual_success": "Erfolgreich", "backup_manual_success": "Erfolgreich",
"backup_manual_title": "Sicherungsstatus", "backup_manual_title": "Sicherungsstatus",
"backup_options_page_title": "Backup options", "backup_options_page_title": "Sicherungsoptionen",
"cache_settings_album_thumbnails": "Vorschaubilder der Bibliothek ({} Elemente)", "cache_settings_album_thumbnails": "Vorschaubilder der Bibliothek ({} Elemente)",
"cache_settings_clear_cache_button": "Zwischenspeicher löschen", "cache_settings_clear_cache_button": "Zwischenspeicher löschen",
"cache_settings_clear_cache_button_title": "Löscht den Zwischenspeicher der App. Dies wird die Leistungsfähigkeit der App deutlich einschränken, bis der Zwischenspeicher wieder aufgebaut wurde.", "cache_settings_clear_cache_button_title": "Löscht den Zwischenspeicher der App. Dies wird die Leistungsfähigkeit der App deutlich einschränken, bis der Zwischenspeicher wieder aufgebaut wurde.",
@@ -128,14 +128,14 @@
"cache_settings_statistics_full": "Originalbilder", "cache_settings_statistics_full": "Originalbilder",
"cache_settings_statistics_shared": "Vorschaubilder geteilter Alben", "cache_settings_statistics_shared": "Vorschaubilder geteilter Alben",
"cache_settings_statistics_thumbnail": "Vorschaubilder", "cache_settings_statistics_thumbnail": "Vorschaubilder",
"cache_settings_statistics_title": "Zwischenspeicher Nutzung", "cache_settings_statistics_title": "Zwischenspeicher-Nutzung",
"cache_settings_subtitle": "Kontrolliere wie Immich den Zwischenspeicher nutzen soll", "cache_settings_subtitle": "Kontrollieren, wie Immich den Zwischenspeicher nutzt",
"cache_settings_thumbnail_size": "{} Vorschaubilder im Zwischenspeicher", "cache_settings_thumbnail_size": "{} Vorschaubilder im Zwischenspeicher",
"cache_settings_tile_subtitle": "Lokalen Speicher verwalten", "cache_settings_tile_subtitle": "Lokalen Speicher verwalten",
"cache_settings_tile_title": "Lokaler Speicher", "cache_settings_tile_title": "Lokaler Speicher",
"cache_settings_title": "Zwischenspeicher Einstellungen", "cache_settings_title": "Zwischenspeicher Einstellungen",
"change_password_form_confirm_password": "Passwort bestätigen", "change_password_form_confirm_password": "Passwort bestätigen",
"change_password_form_description": "Hallo {name}\n\nDas ist entweder das erste Mal dass du dich einloggst oder eine Anfrage zur Änderung deines Passwortes wurde gestellt. Bitte gebe das neue Passwort ein.", "change_password_form_description": "Hallo {name}\n\nDas ist entweder das erste Mal dass du dich einloggst oder es wurde eine Anfrage zur Änderung deines Passwortes gestellt. Bitte gib das neue Passwort ein.",
"change_password_form_new_password": "Neues Passwort", "change_password_form_new_password": "Neues Passwort",
"change_password_form_password_mismatch": "Passwörter stimmen nicht überein", "change_password_form_password_mismatch": "Passwörter stimmen nicht überein",
"change_password_form_reenter_new_password": "Passwort erneut eingeben", "change_password_form_reenter_new_password": "Passwort erneut eingeben",
@@ -150,7 +150,7 @@
"control_bottom_app_bar_archive": "Archiv", "control_bottom_app_bar_archive": "Archiv",
"control_bottom_app_bar_create_new_album": "Neues Album erstellen", "control_bottom_app_bar_create_new_album": "Neues Album erstellen",
"control_bottom_app_bar_delete": "Löschen", "control_bottom_app_bar_delete": "Löschen",
"control_bottom_app_bar_delete_from_immich": "Von 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_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",
@@ -158,7 +158,7 @@
"control_bottom_app_bar_share": "Teilen", "control_bottom_app_bar_share": "Teilen",
"control_bottom_app_bar_share_to": "Teilen mit", "control_bottom_app_bar_share_to": "Teilen mit",
"control_bottom_app_bar_stack": "Stapeln", "control_bottom_app_bar_stack": "Stapeln",
"control_bottom_app_bar_trash_from_immich": "Move to Trash", "control_bottom_app_bar_trash_from_immich": "in den Papierkorb schieben",
"control_bottom_app_bar_unarchive": "Dearchivieren", "control_bottom_app_bar_unarchive": "Dearchivieren",
"control_bottom_app_bar_unfavorite": "Aus Favoriten entfernen", "control_bottom_app_bar_unfavorite": "Aus Favoriten entfernen",
"control_bottom_app_bar_upload": "Hochladen", "control_bottom_app_bar_upload": "Hochladen",
@@ -173,9 +173,9 @@
"daily_title_text_date_year": "E, dd MMM, yyyy", "daily_title_text_date_year": "E, dd MMM, yyyy",
"date_format": "E d. LLL y • hh:mm", "date_format": "E d. LLL y • hh:mm",
"delete_dialog_alert": "Diese Elemente werden unwiderruflich von Immich und dem Gerät entfernt", "delete_dialog_alert": "Diese Elemente werden unwiderruflich von Immich und dem Gerät entfernt",
"delete_dialog_alert_local": "Diese Inhalte werden vom Gerät gelöscht, bleiben aber auf dem Immich-Server", "delete_dialog_alert_local": "Diese Inhalte werden vom Gerät gelöscht, bleiben aber auf dem Immich-Server.",
"delete_dialog_alert_local_non_backed_up": "Einige Inhalte wurden nicht zu Immich gesichert und werden dauerhaft vom Gerät gelöscht", "delete_dialog_alert_local_non_backed_up": "Einige Inhalte sind nicht in Immich gesichert und werden dauerhaft vom Gerät gelöscht.",
"delete_dialog_alert_remote": "Diese Inhalte werden dauerhaft vom Immich-Server gelöscht", "delete_dialog_alert_remote": "Diese Inhalte werden dauerhaft vom Immich-Server gelöscht.",
"delete_dialog_cancel": "Abbrechen", "delete_dialog_cancel": "Abbrechen",
"delete_dialog_ok": "Löschen", "delete_dialog_ok": "Löschen",
"delete_dialog_ok_force": "Trotzdem löschen", "delete_dialog_ok_force": "Trotzdem löschen",
@@ -193,30 +193,32 @@
"exif_bottom_sheet_details": "DETAILS", "exif_bottom_sheet_details": "DETAILS",
"exif_bottom_sheet_location": "STANDORT", "exif_bottom_sheet_location": "STANDORT",
"exif_bottom_sheet_location_add": "Aufnahmeort hinzufügen", "exif_bottom_sheet_location_add": "Aufnahmeort hinzufügen",
"exif_bottom_sheet_people": "PEOPLE", "exif_bottom_sheet_people": "PERSONEN",
"exif_bottom_sheet_person_add_person": "Add name", "exif_bottom_sheet_person_add_person": "Namen hinzufügen",
"experimental_settings_new_asset_list_subtitle": "In Arbeit", "experimental_settings_new_asset_list_subtitle": "In Arbeit",
"experimental_settings_new_asset_list_title": "Experimentelles Fotogitter aktivieren", "experimental_settings_new_asset_list_title": "Experimentelles Fotogitter aktivieren",
"experimental_settings_subtitle": "Benutzung auf eigene Gefahr!", "experimental_settings_subtitle": "Benutzung auf eigene Gefahr!",
"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",
"haptic_feedback_switch": "Haptisches Feedback aktivieren",
"haptic_feedback_title": "Haptisches Feedback",
"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": "Kann lokale Elemente noch nicht zu Alben hinzufügen, überspringe", "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_success": "{added} Elemente zu {album} hinzugefügt.", "home_page_add_to_album_success": "{added} Elemente zu {album} hinzugefügt.",
"home_page_album_err_partner": "Inhalte von Partnern können derzeit nicht zu Alben hinzugefügt werden", "home_page_album_err_partner": "Inhalte von Partnern können derzeit nicht zu Alben hinzugefügt werden!",
"home_page_archive_err_local": "Kann lokale Elemente nicht archvieren, überspringe", "home_page_archive_err_local": "Kann lokale Elemente nicht archvieren, überspringen...",
"home_page_archive_err_partner": "Inhalte von Partnern können nicht archiviert werden", "home_page_archive_err_partner": "Inhalte von Partnern können nicht archiviert werden!",
"home_page_building_timeline": "Zeitachse wird erstellt.", "home_page_building_timeline": "Zeitachse wird erstellt.",
"home_page_delete_err_partner": "Inhalte von Partnern können nicht gelöscht werden", "home_page_delete_err_partner": "Inhalte von Partnern können nicht gelöscht werden!",
"home_page_delete_remote_err_local": "Lokale Inhalte in der Auswahl, überspringe", "home_page_delete_remote_err_local": "Lokale Inhalte in der Auswahl, überspringen...",
"home_page_favorite_err_local": "Kann lokale Elemente noch nicht favorisieren, überspringe", "home_page_favorite_err_local": "Kann lokale Elemente noch nicht favorisieren, überspringen...",
"home_page_favorite_err_partner": "Inhalte von Partnern können nicht favorisiert werden", "home_page_favorite_err_partner": "Inhalte von Partnern können nicht favorisiert werden!",
"home_page_first_time_notice": "Wenn dies das erste Mal ist dass Du Immich nutzt, stelle bitte sicher, dass mindestens ein Album zur Sicherung ausgewählt ist, sodass die Zeitachse mit Fotos und Videos gefüllt werden kann.", "home_page_first_time_notice": "Wenn dies das erste Mal ist dass Du Immich nutzt, stelle bitte sicher, dass mindestens ein Album zur Sicherung ausgewählt ist, sodass die Zeitachse mit Fotos und Videos gefüllt werden kann.",
"home_page_share_err_local": "Lokale Inhalte können nicht per Link geteilt werden, überspringe", "home_page_share_err_local": "Lokale Inhalte können nicht per Link geteilt werden, überspringe",
"home_page_upload_err_limit": "Max. 30 Elemente können gleichzeitig hochgeladen werden, überspringe", "home_page_upload_err_limit": "Es können max. 30 Elemente gleichzeitig hochgeladen werden, überspringen...",
"image_viewer_page_state_provider_download_error": "Fehler beim Herunterladen", "image_viewer_page_state_provider_download_error": "Fehler beim Herunterladen",
"image_viewer_page_state_provider_download_started": "Gestartet heruntergeladen", "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",
"library_page_albums": "Alben", "library_page_albums": "Alben",
@@ -250,30 +252,30 @@
"login_form_err_invalid_url": "Ungültige URL", "login_form_err_invalid_url": "Ungültige URL",
"login_form_err_leading_whitespace": "Leerzeichen am Anfang", "login_form_err_leading_whitespace": "Leerzeichen am Anfang",
"login_form_err_trailing_whitespace": "Leerzeichen am Ende", "login_form_err_trailing_whitespace": "Leerzeichen am Ende",
"login_form_failed_get_oauth_server_config": "Fehler beim Login per OAuth, Server-URL überprüfen", "login_form_failed_get_oauth_server_config": "Fehler beim Login per OAuth, bitte Server-URL überprüfen",
"login_form_failed_get_oauth_server_disable": "OAuth-Funktion nicht verfügbar auf diesem Server.", "login_form_failed_get_oauth_server_disable": "Die OAuth-Funktion ist auf diesem Server nicht verfügbar.",
"login_form_failed_login": "Fehler beim Login, prüfe Server-URL, E-Mail und Passwort", "login_form_failed_login": "Fehler beim Login, bitte überprüfe die Server-URL, deine E-Mail oder das Passwort",
"login_form_handshake_exception": "Fehler beim Verbindungsaufbau mit dem Server. Falls du ein selbstsigniertes Zertifikat verwendest, aktiviere die Unterstützung in den Einstellungen.", "login_form_handshake_exception": "Fehler beim Verbindungsaufbau mit dem Server. Falls du ein selbstsigniertes Zertifikat verwendest, aktiviere die Unterstützung dafür in den Einstellungen.",
"login_form_label_email": "E-Mail", "login_form_label_email": "E-Mail",
"login_form_label_password": "Passwort", "login_form_label_password": "Passwort",
"login_form_next_button": "Weiter", "login_form_next_button": "Weiter",
"login_form_password_hint": "password", "login_form_password_hint": "Passwort",
"login_form_save_login": "Angemeldet bleiben", "login_form_save_login": "Angemeldet bleiben",
"login_form_server_empty": "Serveradresse eingeben.", "login_form_server_empty": "Serveradresse eingeben.",
"login_form_server_error": "Konnte nicht mit Server verbinden.", "login_form_server_error": "Es Konnte sich nicht mit dem Server verbunden werden.",
"login_password_changed_error": "Fehler beim Passwort ändern", "login_password_changed_error": "Fehler beim Passwort ändern!",
"login_password_changed_success": "Passwort erfolgreich geändert", "login_password_changed_success": "Passwort erfolgreich geändert.",
"map_assets_in_bound": "{} Foto", "map_assets_in_bound": "{} Foto",
"map_assets_in_bounds": "{} Fotos", "map_assets_in_bounds": "{} Fotos",
"map_cannot_get_user_location": "Standort konnte nicht ermittelt werden", "map_cannot_get_user_location": "Standort konnte nicht ermittelt werden!",
"map_location_dialog_cancel": "Abbrechen", "map_location_dialog_cancel": "Abbrechen",
"map_location_dialog_yes": "Ja", "map_location_dialog_yes": "Ja",
"map_location_picker_page_use_location": "Aufnahmeort verwenden", "map_location_picker_page_use_location": "Aufnahmeort verwenden",
"map_location_service_disabled_content": "Ortungsdienste müssen aktiviert sein, um Inhalte am aktuellen Standort anzuzeigen. Willst du die Ortungsdienste aktivieren?", "map_location_service_disabled_content": "Ortungsdienste müssen aktiviert sein, um Inhalte am aktuellen Standort anzuzeigen. Willst du die Ortungsdienste jetzt aktivieren?",
"map_location_service_disabled_title": "Ortungsdienste deaktiviert", "map_location_service_disabled_title": "Ortungsdienste deaktiviert",
"map_no_assets_in_bounds": "Keine Fotos in dieser Gegend", "map_no_assets_in_bounds": "Keine Fotos in dieser Gegend",
"map_no_location_permission_content": "Ortungsdienste müssen aktiviert sein, um Inhalte am aktuellen Standort anzuzeigen. Willst du die Ortungsdienste aktivieren?", "map_no_location_permission_content": "Ortungsdienste müssen aktiviert sein, um Inhalte am aktuellen Standort anzuzeigen. Willst du die Ortungsdienste jetzt aktivieren?",
"map_no_location_permission_title": "Kein Zugriff auf den Standort", "map_no_location_permission_title": "Kein Zugriff auf den Standort!",
"map_settings_dark_mode": "Dunkler Modus", "map_settings_dark_mode": "Dunkler Modus",
"map_settings_date_range_option_all": "Alle", "map_settings_date_range_option_all": "Alle",
"map_settings_date_range_option_day": "Letzte 24 Stunden", "map_settings_date_range_option_day": "Letzte 24 Stunden",
@@ -284,29 +286,30 @@
"map_settings_dialog_save": "Speichern", "map_settings_dialog_save": "Speichern",
"map_settings_dialog_title": "Karteneinstellungen", "map_settings_dialog_title": "Karteneinstellungen",
"map_settings_include_show_archived": "Archivierte anzeigen", "map_settings_include_show_archived": "Archivierte anzeigen",
"map_settings_include_show_partners": "Include Partners", "map_settings_include_show_partners": "Partner einbeziehen",
"map_settings_only_relative_range": "Datumsbereich", "map_settings_only_relative_range": "Datumsbereich",
"map_settings_only_show_favorites": "Nur Favoriten anzeigen", "map_settings_only_show_favorites": "Nur Favoriten anzeigen",
"map_settings_theme_settings": "Karten-Theme", "map_settings_theme_settings": "Karten Design",
"map_zoom_to_see_photos": "Ansicht verkleinern um Fotos zu sehen", "map_zoom_to_see_photos": "Ansicht verkleinern um Fotos zu sehen",
"memories_all_caught_up": "All caught up", "memories_all_caught_up": "Alles aufgeholt",
"memories_check_back_tomorrow": "Check back tomorrow for more memories", "memories_check_back_tomorrow": "Schau morgen wieder vorbei für weitere Erinnerungen!",
"memories_start_over": "Start Over", "memories_start_over": "Erneut beginnen",
"memories_swipe_to_close": "Swipe up to close", "memories_swipe_to_close": "Nach oben Wischen zum schließen",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "MMMM y",
"motion_photos_page_title": "Live-Fotos", "motion_photos_page_title": "Live-Fotos",
"multiselect_grid_edit_date_time_err_read_only": "Datum und Uhrzeit von schreibgeschützten Inhalten kann nicht geändert werden, überspringe", "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 geändert werden, überspringe", "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",
"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",
"notification_permission_list_tile_content": "Erlaube Berechtigung für Benachrichtigungen", "notification_permission_list_tile_content": "Erlaube Berechtigung für Benachrichtigungen",
"notification_permission_list_tile_enable_button": "Aktiviere Benachrichtigungen", "notification_permission_list_tile_enable_button": "Aktiviere Benachrichtigungen",
"notification_permission_list_tile_title": "Benachrichtigungs-Berechtigung", "notification_permission_list_tile_title": "Benachrichtigungs-Berechtigung",
"partner_list_user_photos": "{user}'s photos", "partner_list_user_photos": "{user}s Fotos",
"partner_list_view_all": "View all", "partner_list_view_all": "Alle anzeigen",
"partner_page_add_partner": "Partner hinzufügen", "partner_page_add_partner": "Partner hinzufügen",
"partner_page_empty_message": "Deine Fotos sind noch nicht geteilt mit einem Partner", "partner_page_empty_message": "Deine Fotos sind noch nicht mit einem Partner geteilt.",
"partner_page_no_more_users": "Keine weiteren Nutzer", "partner_page_no_more_users": "Keine weiteren Nutzer",
"partner_page_partner_add_failed": "Fehler beim Partner hinzufügen", "partner_page_partner_add_failed": "Fehler beim Partner hinzufügen",
"partner_page_select_partner": "Partner auswählen", "partner_page_select_partner": "Partner auswählen",
@@ -324,7 +327,7 @@
"permission_onboarding_permission_granted": "Berechtigung erteilt! Du bist startklar.", "permission_onboarding_permission_granted": "Berechtigung erteilt! Du bist startklar.",
"permission_onboarding_permission_limited": "Berechtigungen unzureichend. Um Immich das Sichern von ganzen Sammlungen zu ermöglichen, muss der Zugriff auf alle Fotos und Videos in den Einstellungen erlaubt werden.", "permission_onboarding_permission_limited": "Berechtigungen unzureichend. Um Immich das Sichern von ganzen Sammlungen zu ermöglichen, muss der Zugriff auf alle Fotos und Videos in den Einstellungen erlaubt werden.",
"permission_onboarding_request": "Immich benötigt Berechtigung um auf deine Fotos und Videos zuzugreifen.", "permission_onboarding_request": "Immich benötigt Berechtigung um auf deine Fotos und Videos zuzugreifen.",
"preferences_settings_title": "Preferences", "preferences_settings_title": "Voreinstellungen",
"profile_drawer_app_logs": "Logs", "profile_drawer_app_logs": "Logs",
"profile_drawer_client_out_of_date_major": "Mobile-App ist veraltet. Bitte aktualisiere auf die neueste Major-Version.", "profile_drawer_client_out_of_date_major": "Mobile-App ist veraltet. Bitte aktualisiere auf die neueste Major-Version.",
"profile_drawer_client_out_of_date_minor": "Mobile-App ist veraltet. Bitte aktualisiere auf die neueste Minor-Version.", "profile_drawer_client_out_of_date_minor": "Mobile-App ist veraltet. Bitte aktualisiere auf die neueste Minor-Version.",
@@ -339,17 +342,17 @@
"recently_added_page_title": "Zuletzt hinzugefügt", "recently_added_page_title": "Zuletzt hinzugefügt",
"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": "Apply filter", "search_filter_apply": "Filter anwenden",
"search_filter_camera_make": "Make", "search_filter_camera_make": "Marke",
"search_filter_camera_model": "Model", "search_filter_camera_model": "Modell",
"search_filter_display_option_archive": "Archive", "search_filter_display_option_archive": "Archiv",
"search_filter_display_option_favorite": "Favorite", "search_filter_display_option_favorite": "Favorit",
"search_filter_display_option_not_in_album": "Not in album", "search_filter_display_option_not_in_album": "Nicht im Album",
"search_filter_location_city": "City", "search_filter_location_city": "Stadt",
"search_filter_location_country": "Country", "search_filter_location_country": "Land",
"search_filter_location_state": "State", "search_filter_location_state": "Bundesland",
"search_filter_media_type_all": "All", "search_filter_media_type_all": "Alle",
"search_filter_media_type_image": "Image", "search_filter_media_type_image": "Bild",
"search_filter_media_type_video": "Video", "search_filter_media_type_video": "Video",
"search_page_categories": "Kategorien", "search_page_categories": "Kategorien",
"search_page_favorites": "Favoriten", "search_page_favorites": "Favoriten",
@@ -361,7 +364,7 @@
"search_page_person_add_name_dialog_hint": "Name", "search_page_person_add_name_dialog_hint": "Name",
"search_page_person_add_name_dialog_save": "Speichern", "search_page_person_add_name_dialog_save": "Speichern",
"search_page_person_add_name_dialog_title": "Name hinzufügen", "search_page_person_add_name_dialog_title": "Name hinzufügen",
"search_page_person_add_name_subtitle": "Name für die Suchfunktion hinzufügen", "search_page_person_add_name_subtitle": "Name für die Suche hinzufügen",
"search_page_person_add_name_title": "Name hinzufügen", "search_page_person_add_name_title": "Name hinzufügen",
"search_page_person_edit_name": "Name bearbeiten", "search_page_person_edit_name": "Name bearbeiten",
"search_page_places": "Orte", "search_page_places": "Orte",
@@ -388,8 +391,9 @@
"setting_image_viewer_original_title": "Original laden", "setting_image_viewer_original_title": "Original laden",
"setting_image_viewer_preview_subtitle": "Aktivieren, um ein Bild mit mittlerer Auflösung zu laden. Deaktivieren, um entweder das Original direkt zu laden oder nur die Miniaturansicht zu verwenden.", "setting_image_viewer_preview_subtitle": "Aktivieren, um ein Bild mit mittlerer Auflösung zu laden. Deaktivieren, um entweder das Original direkt zu laden oder nur die Miniaturansicht zu verwenden.",
"setting_image_viewer_preview_title": "Vorschaubild laden", "setting_image_viewer_preview_title": "Vorschaubild laden",
"setting_languages_apply": "Apply", "setting_image_viewer_title": "Bilder",
"setting_languages_title": "Languages", "setting_languages_apply": "Anwenden",
"setting_languages_title": "Sprachen",
"setting_notifications_notify_failures_grace_period": "Benachrichtigung über Fehler bei der Hintergrundsicherung: {}", "setting_notifications_notify_failures_grace_period": "Benachrichtigung über Fehler bei der Hintergrundsicherung: {}",
"setting_notifications_notify_hours": "{} Stunden", "setting_notifications_notify_hours": "{} Stunden",
"setting_notifications_notify_immediately": "sofort", "setting_notifications_notify_immediately": "sofort",
@@ -403,10 +407,14 @@
"setting_notifications_total_progress_subtitle": "Gesamter Upload-Fortschritt (abgeschlossen/Anzahl Elemente)", "setting_notifications_total_progress_subtitle": "Gesamter Upload-Fortschritt (abgeschlossen/Anzahl Elemente)",
"setting_notifications_total_progress_title": "Zeige Gesamtfortschritt bei der Hintergrundsicherung", "setting_notifications_total_progress_title": "Zeige Gesamtfortschritt bei der Hintergrundsicherung",
"setting_pages_app_bar_settings": "Einstellungen", "setting_pages_app_bar_settings": "Einstellungen",
"setting_video_viewer_looping_subtitle": "Aktivieren, damit sich ein Video in der Detailansicht automatisch wiederholt.",
"setting_video_viewer_looping_title": "Wiederholen",
"setting_video_viewer_title": "Videos",
"settings_require_restart": "Bitte starte Immich neu, um diese Einstellung anzuwenden.", "settings_require_restart": "Bitte starte Immich neu, um diese Einstellung anzuwenden.",
"share_add": "Hinzufügen", "share_add": "Hinzufügen",
"share_add_photos": "Fotos hinzufügen", "share_add_photos": "Fotos hinzufügen",
"share_add_title": "Titel hinzufügen", "share_add_title": "Titel hinzufügen",
"share_assets_selected": "{} ausgewählt",
"share_create_album": "Album erstellen", "share_create_album": "Album erstellen",
"shared_album_activities_input_disable": "Kommentare sind deaktiviert.", "shared_album_activities_input_disable": "Kommentare sind deaktiviert.",
"shared_album_activities_input_hint": "Sag etwas", "shared_album_activities_input_hint": "Sag etwas",
@@ -425,7 +433,7 @@
"shared_link_clipboard_text": "Link: {}\nPasswort: {}", "shared_link_clipboard_text": "Link: {}\nPasswort: {}",
"shared_link_create_app_bar_title": "Link zum Teilen erstellen", "shared_link_create_app_bar_title": "Link zum Teilen erstellen",
"shared_link_create_error": "Fehler beim Erstellen der Linkfreigabe", "shared_link_create_error": "Fehler beim Erstellen der Linkfreigabe",
"shared_link_create_info": "Alle, die über den Link verfügen, können die Fotos sehen", "shared_link_create_info": "Alle, die über diesen Link verfügen, können die Fotos sehen.",
"shared_link_create_submit_button": "Link erstellen", "shared_link_create_submit_button": "Link erstellen",
"shared_link_edit_allow_download": "Jeder darf herunterladen", "shared_link_edit_allow_download": "Jeder darf herunterladen",
"shared_link_edit_allow_upload": "Jeder darf hochladen", "shared_link_edit_allow_upload": "Jeder darf hochladen",
@@ -440,29 +448,31 @@
"shared_link_edit_expire_after_option_hours": "{} Stunden", "shared_link_edit_expire_after_option_hours": "{} Stunden",
"shared_link_edit_expire_after_option_minute": "1 Minute", "shared_link_edit_expire_after_option_minute": "1 Minute",
"shared_link_edit_expire_after_option_minutes": "{} Minuten", "shared_link_edit_expire_after_option_minutes": "{} Minuten",
"shared_link_edit_expire_after_option_months": "{} Monat/en",
"shared_link_edit_expire_after_option_never": "Nie", "shared_link_edit_expire_after_option_never": "Nie",
"shared_link_edit_expire_after_option_year": "{} Jahr/en",
"shared_link_edit_password": "Passwort", "shared_link_edit_password": "Passwort",
"shared_link_edit_password_hint": "Passwort eingeben", "shared_link_edit_password_hint": "Passwort eingeben",
"shared_link_edit_show_meta": "Metadaten anzeigen", "shared_link_edit_show_meta": "Metadaten anzeigen",
"shared_link_edit_submit_button": "Link aktualisieren", "shared_link_edit_submit_button": "Link aktualisieren",
"shared_link_empty": "Du hast keine geteilten Links", "shared_link_empty": "Du hast keine geteilten Links.",
"shared_link_error_server_url_fetch": "Fehler beim Ermitteln der Server-URL", "shared_link_error_server_url_fetch": "Fehler beim Ermitteln der Server-URL",
"shared_link_expired": "Abgelaufen", "shared_link_expired": "Abgelaufen",
"shared_link_expires_day": "Verfällt in {} Tag", "shared_link_expires_day": "Verfällt in {} Tag",
"shared_link_expires_days": "Verfällt in {} Tagen", "shared_link_expires_days": "Verfällt in {} Tag/en",
"shared_link_expires_hour": "Verfällt in {} Stunde", "shared_link_expires_hour": "Verfällt in {} Stunde",
"shared_link_expires_hours": "Verfällt in {} Stunden", "shared_link_expires_hours": "Verfällt in {} Stunde/n",
"shared_link_expires_minute": "Verfällt in {} Minute", "shared_link_expires_minute": "Verfällt in {} Minute",
"shared_link_expires_minutes": "Verfällt in {} Minuten", "shared_link_expires_minutes": "Verfällt in {} Minute/n",
"shared_link_expires_never": "Läuft nie ab", "shared_link_expires_never": "Läuft nie ab",
"shared_link_expires_second": "Verfällt in {} Sekunde", "shared_link_expires_second": "Verfällt in {} Sekunde",
"shared_link_expires_seconds": "Verfällt in {} Sekunden", "shared_link_expires_seconds": "Verfällt in {} Sekunde/n",
"shared_link_individual_shared": "Individual shared", "shared_link_individual_shared": "Individuell geteilt",
"shared_link_info_chip_download": "Herunterladen", "shared_link_info_chip_download": "Herunterladen",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_info_chip_upload": "Hochladen", "shared_link_info_chip_upload": "Hochladen",
"shared_link_manage_links": "Geteilte Links verwalten", "shared_link_manage_links": "Geteilte Links verwalten",
"shared_link_public_album": "Public album", "shared_link_public_album": "Öffentliches Album",
"share_done": "Fertig", "share_done": "Fertig",
"share_invite": "Zum Album einladen", "share_invite": "Zum Album einladen",
"sharing_page_album": "Geteilte Alben", "sharing_page_album": "Geteilte Alben",
@@ -489,9 +499,9 @@
"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",
"trash_page_empty_trash_dialog_content": "Elemente im Papierkorb löschen? Diese Elemente werden dauerhaft von Immich entfernt", "trash_page_empty_trash_dialog_content": "Elemente im Papierkorb löschen? Diese Elemente werden dauerhaft aus Immich entfernt",
"trash_page_empty_trash_dialog_ok": "Ok", "trash_page_empty_trash_dialog_ok": "Ok",
"trash_page_info": "Elemente im Papierkorb werden nach {} Tagen endgültig gelöscht", "trash_page_info": "Elemente im Papierkorb werden nach {} Tagen endgültig gelöscht.",
"trash_page_no_assets": "Keine Elemente im Papierkorb", "trash_page_no_assets": "Keine Elemente im Papierkorb",
"trash_page_restore": "Wiederherstellen", "trash_page_restore": "Wiederherstellen",
"trash_page_restore_all": "Alle wiederherstellen", "trash_page_restore_all": "Alle wiederherstellen",

View File

@@ -201,6 +201,8 @@
"experimental_settings_title": "Πειραματικό", "experimental_settings_title": "Πειραματικό",
"favorites_page_no_favorites": "Δεν βρέθηκαν αγαπημένα στοιχεία", "favorites_page_no_favorites": "Δεν βρέθηκαν αγαπημένα στοιχεία",
"favorites_page_title": "Αγαπημένα", "favorites_page_title": "Αγαπημένα",
"haptic_feedback_switch": "Enable haptic feedback",
"haptic_feedback_title": "Haptic Feedback",
"home_page_add_to_album_conflicts": "Προστέθηκαν {added} στοιχεία στο άλμπουμ {album}. {failed} στοιχεία υπάρχουν ήδη στο άλμπουμ.", "home_page_add_to_album_conflicts": "Προστέθηκαν {added} στοιχεία στο άλμπουμ {album}. {failed} στοιχεία υπάρχουν ήδη στο άλμπουμ.",
"home_page_add_to_album_err_local": "Δεν είναι ακόμη δυνατή η προσθήκη τοπικών στοιχείων σε άλμπουμ, παράβλεψη", "home_page_add_to_album_err_local": "Δεν είναι ακόμη δυνατή η προσθήκη τοπικών στοιχείων σε άλμπουμ, παράβλεψη",
"home_page_add_to_album_success": "Προστέθηκαν {added} στοιχεία στο άλμπουμ {album}.", "home_page_add_to_album_success": "Προστέθηκαν {added} στοιχεία στο άλμπουμ {album}.",
@@ -297,6 +299,7 @@
"motion_photos_page_title": "Motion Photos", "motion_photos_page_title": "Motion Photos",
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping", "multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping", "multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
"no_assets_to_show": "No assets to show",
"notification_permission_dialog_cancel": "Cancel", "notification_permission_dialog_cancel": "Cancel",
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.", "notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
"notification_permission_dialog_settings": "Settings", "notification_permission_dialog_settings": "Settings",
@@ -407,6 +410,7 @@
"share_add": "Add", "share_add": "Add",
"share_add_photos": "Add photos", "share_add_photos": "Add photos",
"share_add_title": "Add a title", "share_add_title": "Add a title",
"share_assets_selected": "{} selected",
"share_create_album": "Create album", "share_create_album": "Create album",
"shared_album_activities_input_disable": "Το σχόλιο είναι απενεργοποιημένο", "shared_album_activities_input_disable": "Το σχόλιο είναι απενεργοποιημένο",
"shared_album_activities_input_hint": "Say something", "shared_album_activities_input_hint": "Say something",
@@ -440,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} hours", "shared_link_edit_expire_after_option_hours": "{} hours",
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_minute": "1 minute",
"shared_link_edit_expire_after_option_minutes": "{} minutes", "shared_link_edit_expire_after_option_minutes": "{} minutes",
"shared_link_edit_expire_after_option_months": "{} months",
"shared_link_edit_expire_after_option_never": "Never", "shared_link_edit_expire_after_option_never": "Never",
"shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_password": "Password", "shared_link_edit_password": "Password",
"shared_link_edit_password_hint": "Enter the share password", "shared_link_edit_password_hint": "Enter the share password",
"shared_link_edit_show_meta": "Show metadata", "shared_link_edit_show_meta": "Show metadata",

View File

@@ -201,6 +201,8 @@
"experimental_settings_title": "Experimental", "experimental_settings_title": "Experimental",
"favorites_page_no_favorites": "No favorite assets found", "favorites_page_no_favorites": "No favorite assets found",
"favorites_page_title": "Favorites", "favorites_page_title": "Favorites",
"haptic_feedback_switch": "Enable haptic feedback",
"haptic_feedback_title": "Haptic Feedback",
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.", "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping", "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
"home_page_add_to_album_success": "Added {added} assets to album {album}.", "home_page_add_to_album_success": "Added {added} assets to album {album}.",
@@ -389,6 +391,7 @@
"setting_image_viewer_original_title": "Load original image", "setting_image_viewer_original_title": "Load original image",
"setting_image_viewer_preview_subtitle": "Enable to load a medium-resolution image. Disable to either directly load the original or only use the thumbnail.", "setting_image_viewer_preview_subtitle": "Enable to load a medium-resolution image. Disable to either directly load the original or only use the thumbnail.",
"setting_image_viewer_preview_title": "Load preview image", "setting_image_viewer_preview_title": "Load preview image",
"setting_image_viewer_title": "Images",
"setting_languages_apply": "Apply", "setting_languages_apply": "Apply",
"setting_languages_title": "Languages", "setting_languages_title": "Languages",
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}", "setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}",
@@ -404,10 +407,14 @@
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)", "setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)",
"setting_notifications_total_progress_title": "Show background backup total progress", "setting_notifications_total_progress_title": "Show background backup total progress",
"setting_pages_app_bar_settings": "Settings", "setting_pages_app_bar_settings": "Settings",
"setting_video_viewer_looping_subtitle": "Enable to automatically loop a video in the detail viewer.",
"setting_video_viewer_looping_title": "Looping",
"setting_video_viewer_title": "Videos",
"settings_require_restart": "Please restart Immich to apply this setting", "settings_require_restart": "Please restart Immich to apply this setting",
"share_add": "Add", "share_add": "Add",
"share_add_photos": "Add photos", "share_add_photos": "Add photos",
"share_add_title": "Add a title", "share_add_title": "Add a title",
"share_assets_selected": "{} selected",
"share_create_album": "Create album", "share_create_album": "Create album",
"shared_album_activities_input_disable": "Comment is disabled", "shared_album_activities_input_disable": "Comment is disabled",
"shared_album_activities_input_hint": "Say something", "shared_album_activities_input_hint": "Say something",
@@ -442,8 +449,8 @@
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_minute": "1 minute",
"shared_link_edit_expire_after_option_minutes": "{} minutes", "shared_link_edit_expire_after_option_minutes": "{} minutes",
"shared_link_edit_expire_after_option_months": "{} months", "shared_link_edit_expire_after_option_months": "{} months",
"shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_expire_after_option_never": "Never", "shared_link_edit_expire_after_option_never": "Never",
"shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_password": "Password", "shared_link_edit_password": "Password",
"shared_link_edit_password_hint": "Enter the share password", "shared_link_edit_password_hint": "Enter the share password",
"shared_link_edit_show_meta": "Show metadata", "shared_link_edit_show_meta": "Show metadata",
@@ -513,7 +520,5 @@
"version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89", "version_announcement_overlay_title": "New Server Version Available \uD83C\uDF89",
"viewer_remove_from_stack": "Remove from Stack", "viewer_remove_from_stack": "Remove from Stack",
"viewer_stack_use_as_main_asset": "Use as Main Asset", "viewer_stack_use_as_main_asset": "Use as Main Asset",
"viewer_unstack": "Un-Stack", "viewer_unstack": "Un-Stack"
"haptic_feedback_title": "Haptic Feedback",
"haptic_feedback_switch": "Enable haptic feedback"
} }

View File

@@ -1,13 +1,13 @@
{ {
"action_common_back": "Back", "action_common_back": "Atrás",
"action_common_cancel": "Cancelar", "action_common_cancel": "Cancelar",
"action_common_clear": "Clear", "action_common_clear": "Limpiar",
"action_common_confirm": "Confirm", "action_common_confirm": "Confirmar",
"action_common_update": "Actualizar", "action_common_update": "Actualizar",
"add_to_album_bottom_sheet_added": "Agregado a {album}", "add_to_album_bottom_sheet_added": "Agregado a {album}",
"add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}", "add_to_album_bottom_sheet_already_exists": "Ya se encuentra en {album}",
"advanced_settings_log_level_title": "Nivel de log: {}", "advanced_settings_log_level_title": "Nivel de registro: {}",
"advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de recursos encontrados el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.", "advanced_settings_prefer_remote_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas de los elementos encontrados en el dispositivo. Activa esta opción para cargar imágenes remotas en su lugar.",
"advanced_settings_prefer_remote_title": "Preferir imágenes remotas", "advanced_settings_prefer_remote_title": "Preferir imágenes remotas",
"advanced_settings_self_signed_ssl_subtitle": "Omitir verificación del certificado SSL del servidor. Requerido para certificados autofirmados", "advanced_settings_self_signed_ssl_subtitle": "Omitir verificación del certificado SSL del servidor. Requerido para certificados autofirmados",
"advanced_settings_self_signed_ssl_title": "Permitir certificados autofirmados", "advanced_settings_self_signed_ssl_title": "Permitir certificados autofirmados",
@@ -22,48 +22,48 @@
"album_thumbnail_card_shared": "Compartido", "album_thumbnail_card_shared": "Compartido",
"album_thumbnail_owned": "Propio", "album_thumbnail_owned": "Propio",
"album_thumbnail_shared_by": "Compartido por {}", "album_thumbnail_shared_by": "Compartido por {}",
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?", "album_viewer_appbar_delete_confirm": "¿Estás seguro/a que quieres borrar este álbum de tu cuenta?",
"album_viewer_appbar_share_delete": "Eliminar álbum ", "album_viewer_appbar_share_delete": "Eliminar álbum ",
"album_viewer_appbar_share_err_delete": "No ha podido eliminar el álbum", "album_viewer_appbar_share_err_delete": "No ha podido eliminar el álbum",
"album_viewer_appbar_share_err_leave": "No se ha podido abandonar el álbum", "album_viewer_appbar_share_err_leave": "No se ha podido abandonar el álbum",
"album_viewer_appbar_share_err_remove": "Hay problemas para eliminar los archivos del álbum", "album_viewer_appbar_share_err_remove": "Hay problemas para eliminar los elementos del álbum",
"album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum ", "album_viewer_appbar_share_err_title": "Error al cambiar el título del álbum ",
"album_viewer_appbar_share_leave": "Abandonar álbum ", "album_viewer_appbar_share_leave": "Abandonar álbum ",
"album_viewer_appbar_share_remove": "Eliminar del álbum ", "album_viewer_appbar_share_remove": "Eliminar del álbum ",
"album_viewer_appbar_share_to": "Compartir A", "album_viewer_appbar_share_to": "Compartir Con",
"album_viewer_page_share_add_users": "Agregar usuarios", "album_viewer_page_share_add_users": "Agregar usuarios",
"all_people_page_title": "Personas", "all_people_page_title": "Personas",
"all_videos_page_title": "Videos", "all_videos_page_title": "Videos",
"app_bar_signout_dialog_content": "¿Estás seguro que quieres cerrar sesión?", "app_bar_signout_dialog_content": "¿Estás seguro que quieres cerrar sesión?",
"app_bar_signout_dialog_ok": "Sí", "app_bar_signout_dialog_ok": "Sí",
"app_bar_signout_dialog_title": "Cerrar sesión", "app_bar_signout_dialog_title": "Cerrar sesión",
"archive_page_no_archived_assets": "No se encontraron recursos archivados", "archive_page_no_archived_assets": "No se encontraron elementos archivados",
"archive_page_title": "Archivo ({})", "archive_page_title": "Archivo ({})",
"asset_action_delete_err_read_only": "No se pueden borrar los archivos de solo lectura. Saltando.", "asset_action_delete_err_read_only": "No se pueden borrar el archivo(s) de solo lectura, omitiendo",
"asset_action_share_err_offline": "Cannot fetch offline asset(s), skipping", "asset_action_share_err_offline": "No se pudo obtener el archivo(s) sin conexión, omitiendo",
"asset_list_group_by_sub_title": "Group by", "asset_list_group_by_sub_title": "Agrupar por",
"asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico", "asset_list_layout_settings_dynamic_layout_title": "Diseño dinámico",
"asset_list_layout_settings_group_automatically": "Automatico", "asset_list_layout_settings_group_automatically": "Automatico",
"asset_list_layout_settings_group_by": "Agrupar recursos por", "asset_list_layout_settings_group_by": "Agrupar elementos por",
"asset_list_layout_settings_group_by_month": "Mes", "asset_list_layout_settings_group_by_month": "Mes",
"asset_list_layout_settings_group_by_month_day": "Mes + día", "asset_list_layout_settings_group_by_month_day": "Mes + día",
"asset_list_layout_sub_title": "Layout", "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_viewer_settings_title": "Asset Viewer", "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",
"backup_album_selection_page_assets_scatter": "Los archivos pueden dispersarse en varios álbumes. De este modo, los álbumes pueden ser incluidos o excluidos durante el proceso de copia de seguridad.", "backup_album_selection_page_assets_scatter": "Los elementos pueden dispersarse en varios álbumes. De este modo, los álbumes pueden ser incluidos o excluidos durante el proceso de copia de seguridad.",
"backup_album_selection_page_select_albums": "Seleccionar Álbumes", "backup_album_selection_page_select_albums": "Seleccionar Álbumes",
"backup_album_selection_page_selection_info": "Información sobre la Selección", "backup_album_selection_page_selection_info": "Información sobre la Selección",
"backup_album_selection_page_total_assets": "Total de archivos únicos", "backup_album_selection_page_total_assets": "Total de elementos únicos",
"backup_all": "Todos", "backup_all": "Todos",
"backup_background_service_backup_failed_message": "Error al copiar archivos. Reintentando...", "backup_background_service_backup_failed_message": "Error al copiar elementos. Reintentando...",
"backup_background_service_connection_failed_message": "Error al conectar con el servidor. Reintentando...", "backup_background_service_connection_failed_message": "Error al conectar con el servidor. Reintentando...",
"backup_background_service_current_upload_notification": "Cargando {}", "backup_background_service_current_upload_notification": "Cargando {}",
"backup_background_service_default_notification": "Verificando si hay nuevos archivos", "backup_background_service_default_notification": "Verificando si hay nuevos elementos",
"backup_background_service_error_title": "Error de copia de seguridad", "backup_background_service_error_title": "Error de copia de seguridad",
"backup_background_service_in_progress_notification": "Creando copia de seguridad de tus archivos...", "backup_background_service_in_progress_notification": "Creando copia de seguridad de tus elementos...",
"backup_background_service_upload_failure_notification": "Error al cargar {}", "backup_background_service_upload_failure_notification": "Error al cargar {}",
"backup_controller_page_albums": "Álbumes de copia de seguridad", "backup_controller_page_albums": "Álbumes de copia de seguridad",
"backup_controller_page_background_app_refresh_disabled_content": "Activa la actualización en segundo plano de la aplicación en Configuración > General > Actualización en segundo plano para usar la copia de seguridad en segundo plano.", "backup_controller_page_background_app_refresh_disabled_content": "Activa la actualización en segundo plano de la aplicación en Configuración > General > Actualización en segundo plano para usar la copia de seguridad en segundo plano.",
@@ -76,7 +76,7 @@
"backup_controller_page_background_charging": "Solo mientras se carga", "backup_controller_page_background_charging": "Solo mientras se carga",
"backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano", "backup_controller_page_background_configure_error": "Error al configurar el servicio en segundo plano",
"backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos elementos: {}", "backup_controller_page_background_delay": "Retraso en la copia de seguridad de nuevos elementos: {}",
"backup_controller_page_background_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos archivos sin necesidad de abrir la aplicación.", "backup_controller_page_background_description": "Activa el servicio en segundo plano para copiar automáticamente cualquier nuevos elementos sin necesidad de abrir la aplicación.",
"backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada", "backup_controller_page_background_is_off": "La copia de seguridad en segundo plano automática está desactivada",
"backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está activada", "backup_controller_page_background_is_on": "La copia de seguridad en segundo plano automática está activada",
"backup_controller_page_background_turn_off": "Desactivar el servicio en segundo plano", "backup_controller_page_background_turn_off": "Desactivar el servicio en segundo plano",
@@ -109,28 +109,28 @@
"backup_controller_page_turn_on": "Activar la copia de seguridad", "backup_controller_page_turn_on": "Activar la copia de seguridad",
"backup_controller_page_uploading_file_info": "Cargando información del archivo", "backup_controller_page_uploading_file_info": "Cargando información del archivo",
"backup_err_only_album": "No se puede eliminar el único álbum", "backup_err_only_album": "No se puede eliminar el único álbum",
"backup_info_card_assets": "archivos", "backup_info_card_assets": "elementos",
"backup_manual_cancelled": "Cancelado", "backup_manual_cancelled": "Cancelado",
"backup_manual_failed": "Fallido", "backup_manual_failed": "Fallido",
"backup_manual_in_progress": "Subida en progreso. Espere", "backup_manual_in_progress": "Subida en progreso. Espere",
"backup_manual_success": "Éxito", "backup_manual_success": "Éxito",
"backup_manual_title": "Estado de la subida", "backup_manual_title": "Estado de la subida",
"backup_options_page_title": "Backup options", "backup_options_page_title": "Opciones de Copia de Seguridad",
"cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} archivos)", "cache_settings_album_thumbnails": "Miniaturas de la página de la biblioteca ({} elementos)",
"cache_settings_clear_cache_button": "Borrar caché", "cache_settings_clear_cache_button": "Borrar caché",
"cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.", "cache_settings_clear_cache_button_title": "Borra la caché de la aplicación. Esto afectará significativamente el rendimiento de la aplicación hasta que se reconstruya la caché.",
"cache_settings_duplicated_assets_clear_button": "LIMPIAR", "cache_settings_duplicated_assets_clear_button": "LIMPIAR",
"cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app", "cache_settings_duplicated_assets_subtitle": "Fotos y vídeos en la lista negra de la app",
"cache_settings_duplicated_assets_title": "Duplicated Assets ({})", "cache_settings_duplicated_assets_title": "Elementos duplicados ({})",
"cache_settings_image_cache_size": "Tamaño de la caché de imágenes ({} archivos)", "cache_settings_image_cache_size": "Tamaño de la caché de imágenes ({} elementos)",
"cache_settings_statistics_album": "Miniaturas de la biblioteca", "cache_settings_statistics_album": "Miniaturas de la biblioteca",
"cache_settings_statistics_assets": "{} archivos ({})", "cache_settings_statistics_assets": "{} elementos ({})",
"cache_settings_statistics_full": "Imágenes completas", "cache_settings_statistics_full": "Imágenes completas",
"cache_settings_statistics_shared": "Miniaturas de álbumes compartidos", "cache_settings_statistics_shared": "Miniaturas de álbumes compartidos",
"cache_settings_statistics_thumbnail": "Miniaturas", "cache_settings_statistics_thumbnail": "Miniaturas",
"cache_settings_statistics_title": "Uso de caché", "cache_settings_statistics_title": "Uso de caché",
"cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich", "cache_settings_subtitle": "Controla el comportamiento del almacenamiento en caché de la aplicación móvil Immich",
"cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} archivos)", "cache_settings_thumbnail_size": "Tamaño de la caché de miniaturas ({} elementos)",
"cache_settings_tile_subtitle": "Controla el comportamiento del almacenamiento local", "cache_settings_tile_subtitle": "Controla el comportamiento del almacenamiento local",
"cache_settings_tile_title": "Almacenamiento local", "cache_settings_tile_title": "Almacenamiento local",
"cache_settings_title": "Configuración de la caché", "cache_settings_title": "Configuración de la caché",
@@ -160,12 +160,12 @@
"control_bottom_app_bar_stack": "Apilar", "control_bottom_app_bar_stack": "Apilar",
"control_bottom_app_bar_trash_from_immich": "Mover a la papelera", "control_bottom_app_bar_trash_from_immich": "Mover a la papelera",
"control_bottom_app_bar_unarchive": "Desarchivar", "control_bottom_app_bar_unarchive": "Desarchivar",
"control_bottom_app_bar_unfavorite": "Unfavorite", "control_bottom_app_bar_unfavorite": "Retirar favorito",
"control_bottom_app_bar_upload": "Subir", "control_bottom_app_bar_upload": "Subir",
"create_album_page_untitled": "Sin título", "create_album_page_untitled": "Sin título",
"create_shared_album_page_create": "Crear", "create_shared_album_page_create": "Crear",
"create_shared_album_page_share": "Compartir", "create_shared_album_page_share": "Compartir",
"create_shared_album_page_share_add_assets": "AGREGAR ARCHIVOS", "create_shared_album_page_share_add_assets": "AGREGAR ELEMENTOS",
"create_shared_album_page_share_select_photos": "Seleccionar Fotos", "create_shared_album_page_share_select_photos": "Seleccionar Fotos",
"curated_location_page_title": "Lugares", "curated_location_page_title": "Lugares",
"curated_object_page_title": "Objetos", "curated_object_page_title": "Objetos",
@@ -178,10 +178,10 @@
"delete_dialog_alert_remote": "Estas imágenes van a ser borradas de forma permanente del servidor Immich", "delete_dialog_alert_remote": "Estas imágenes van a ser borradas de forma permanente del servidor Immich",
"delete_dialog_cancel": "Cancelar", "delete_dialog_cancel": "Cancelar",
"delete_dialog_ok": "Eliminar", "delete_dialog_ok": "Eliminar",
"delete_dialog_ok_force": "Delete Anyway", "delete_dialog_ok_force": "Borrar de todos modos",
"delete_dialog_title": "Eliminar Permanentemente", "delete_dialog_title": "Eliminar Permanentemente",
"delete_local_dialog_ok_backed_up_only": "Delete Backed Up Only", "delete_local_dialog_ok_backed_up_only": "Borrar solo las que tengan copia de seguridad",
"delete_local_dialog_ok_force": "Delete Anyway", "delete_local_dialog_ok_force": "Borrar de todos modos",
"delete_shared_link_dialog_content": "Estás seguro que quieres eliminar este enlace compartido", "delete_shared_link_dialog_content": "Estás seguro que quieres eliminar este enlace compartido",
"delete_shared_link_dialog_title": "Eliminar enlace compartido", "delete_shared_link_dialog_title": "Eliminar enlace compartido",
"description_input_hint_text": "Agregar descripción...", "description_input_hint_text": "Agregar descripción...",
@@ -193,30 +193,32 @@
"exif_bottom_sheet_details": "DETALLES", "exif_bottom_sheet_details": "DETALLES",
"exif_bottom_sheet_location": "UBICACIÓN", "exif_bottom_sheet_location": "UBICACIÓN",
"exif_bottom_sheet_location_add": "Añadir ubicación", "exif_bottom_sheet_location_add": "Añadir ubicación",
"exif_bottom_sheet_people": "PEOPLE", "exif_bottom_sheet_people": "PERSONAS",
"exif_bottom_sheet_person_add_person": "Add name", "exif_bottom_sheet_person_add_person": "Añadir nombre",
"experimental_settings_new_asset_list_subtitle": "Trabajo en progreso", "experimental_settings_new_asset_list_subtitle": "Trabajo en progreso",
"experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental", "experimental_settings_new_asset_list_title": "Habilitar cuadrícula fotográfica experimental",
"experimental_settings_subtitle": "Úsalo bajo tu responsabilidad", "experimental_settings_subtitle": "Úsalo bajo tu responsabilidad",
"experimental_settings_title": "Experimental", "experimental_settings_title": "Experimental",
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos", "favorites_page_no_favorites": "No se encontraron elementos marcados como favoritos",
"favorites_page_title": "Favoritos", "favorites_page_title": "Favoritos",
"haptic_feedback_switch": "Activar respuesta háptica",
"haptic_feedback_title": "Respuesta Háptica",
"home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.{failed} elementos ya existen en el álbum.", "home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.{failed} elementos ya existen en el álbum.",
"home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo", "home_page_add_to_album_err_local": "Aún no se pueden agregar elementos locales a álbumes, omitiendo",
"home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ", "home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
"home_page_album_err_partner": "Aún no se pueden agregar activos a un album de un compañero, omitiendo", "home_page_album_err_partner": "Aún no se pueden agregar elementos a un álbum de un compañero, omitiendo",
"home_page_archive_err_local": "Los recursos locales no pueden ser archivados, omitiendo", "home_page_archive_err_local": "Los elementos locales no pueden ser archivados, omitiendo",
"home_page_archive_err_partner": "No se pueden archivar activos de un compañero, omitiendo", "home_page_archive_err_partner": "No se pueden archivar elementos de un compañero, omitiendo",
"home_page_building_timeline": "Construyendo la línea de tiempo", "home_page_building_timeline": "Construyendo la línea de tiempo",
"home_page_delete_err_partner": "No se pueden eliminar activos de un compañero, omitiendo", "home_page_delete_err_partner": "No se pueden eliminar elementos de un compañero, omitiendo",
"home_page_delete_remote_err_local": "Local assets in delete remote selection, skipping", "home_page_delete_remote_err_local": "Elementos locales en la selección de eliminación remota, omitiendo",
"home_page_favorite_err_local": "Aún no se pueden archivar recursos locales, omitiendo", "home_page_favorite_err_local": "Aún no se pueden archivar elementos locales, omitiendo",
"home_page_favorite_err_partner": "Aún no se pueden marcar recursos de compañeros como favoritos, omitiendo", "home_page_favorite_err_partner": "Aún no se pueden marcar elementos de compañeros como favoritos, omitiendo",
"home_page_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.", "home_page_first_time_notice": "Si esta es la primera vez que usas la app, por favor, asegúrate de elegir un álbum de respaldo para que la línea de tiempo pueda cargar fotos y videos en los álbumes.",
"home_page_share_err_local": "No se pueden compartir activos locales a través de un enlace, omitiendo", "home_page_share_err_local": "No se pueden compartir elementos locales a través de un enlace, omitiendo",
"home_page_upload_err_limit": "Solo se pueden subir 30 elementos simultáneamente, omitiendo", "home_page_upload_err_limit": "Solo se pueden subir 30 elementos simultáneamente, omitiendo",
"image_viewer_page_state_provider_download_error": "Error de descarga", "image_viewer_page_state_provider_download_error": "Error de descarga",
"image_viewer_page_state_provider_download_started": "Descarga iniciada", "image_viewer_page_state_provider_download_started": "Descarga Iniciada",
"image_viewer_page_state_provider_download_success": "Descarga exitosa", "image_viewer_page_state_provider_download_success": "Descarga exitosa",
"image_viewer_page_state_provider_share_error": "Error al compartir", "image_viewer_page_state_provider_share_error": "Error al compartir",
"library_page_albums": "Álbumes", "library_page_albums": "Álbumes",
@@ -225,7 +227,7 @@
"library_page_favorites": "Favoritos", "library_page_favorites": "Favoritos",
"library_page_new_album": "Nuevo álbum", "library_page_new_album": "Nuevo álbum",
"library_page_sharing": "Compartiendo", "library_page_sharing": "Compartiendo",
"library_page_sort_asset_count": "Número de archivos", "library_page_sort_asset_count": "Número de elementos",
"library_page_sort_created": "Creado más recientemente", "library_page_sort_created": "Creado más recientemente",
"library_page_sort_last_modified": "Última modificación", "library_page_sort_last_modified": "Última modificación",
"library_page_sort_most_oldest_photo": "Foto más antigua", "library_page_sort_most_oldest_photo": "Foto más antigua",
@@ -284,27 +286,28 @@
"map_settings_dialog_save": "Guardar", "map_settings_dialog_save": "Guardar",
"map_settings_dialog_title": "Ajustes mapa", "map_settings_dialog_title": "Ajustes mapa",
"map_settings_include_show_archived": "Incluir archivados", "map_settings_include_show_archived": "Incluir archivados",
"map_settings_include_show_partners": "Include Partners", "map_settings_include_show_partners": "Incluir Parejas",
"map_settings_only_relative_range": "Rango de fechas", "map_settings_only_relative_range": "Rango de fechas",
"map_settings_only_show_favorites": "Mostrar solo favoritas", "map_settings_only_show_favorites": "Mostrar solo favoritas",
"map_settings_theme_settings": "Apariencia del Mapa", "map_settings_theme_settings": "Apariencia del Mapa",
"map_zoom_to_see_photos": "Alejar para ver fotos", "map_zoom_to_see_photos": "Alejar para ver fotos",
"memories_all_caught_up": "All caught up", "memories_all_caught_up": "Puesto al día",
"memories_check_back_tomorrow": "Check back tomorrow for more memories", "memories_check_back_tomorrow": "Vuelve mañana para más recuerdos",
"memories_start_over": "Start Over", "memories_start_over": "Empezar de nuevo",
"memories_swipe_to_close": "Swipe up to close", "memories_swipe_to_close": "Desliza para cerrar",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "MMMM y",
"motion_photos_page_title": "Foto en Movimiento", "motion_photos_page_title": "Foto en Movimiento",
"multiselect_grid_edit_date_time_err_read_only": "No se puede cambiar la fecha de archivos de solo lectura. Saltando.", "multiselect_grid_edit_date_time_err_read_only": "No se puede cambiar la fecha del archivo(s) de solo lectura, omitiendo",
"multiselect_grid_edit_gps_err_read_only": "No se puede cambiar la localización de archivos de solo lectura. Saltando.", "multiselect_grid_edit_gps_err_read_only": "No se puede cambiar la localización de archivos de solo lectura. Saltando.",
"no_assets_to_show": "No hay elementos a mostrar",
"notification_permission_dialog_cancel": "Cancelar", "notification_permission_dialog_cancel": "Cancelar",
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.", "notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
"notification_permission_dialog_settings": "Ajustes", "notification_permission_dialog_settings": "Ajustes",
"notification_permission_list_tile_content": "Concede permiso para habilitar las notificaciones.", "notification_permission_list_tile_content": "Concede permiso para habilitar las notificaciones.",
"notification_permission_list_tile_enable_button": "Permitir notificaciones", "notification_permission_list_tile_enable_button": "Permitir notificaciones",
"notification_permission_list_tile_title": "Permisos de Notificacion", "notification_permission_list_tile_title": "Permisos de Notificacion",
"partner_list_user_photos": "{user}'s photos", "partner_list_user_photos": "Fotos de {user}",
"partner_list_view_all": "View all", "partner_list_view_all": "Ver todas",
"partner_page_add_partner": "Agregar compañero", "partner_page_add_partner": "Agregar compañero",
"partner_page_empty_message": "Tus fotos aún no se han compartido con ningún compañero.", "partner_page_empty_message": "Tus fotos aún no se han compartido con ningún compañero.",
"partner_page_no_more_users": "No hay más usuarios para agregar", "partner_page_no_more_users": "No hay más usuarios para agregar",
@@ -324,33 +327,33 @@
"permission_onboarding_permission_granted": "¡Permiso concedido! Todo listo.", "permission_onboarding_permission_granted": "¡Permiso concedido! Todo listo.",
"permission_onboarding_permission_limited": "Permiso limitado. Para permitir que Immich haga copia de seguridad y gestione toda tu colección de galería, concede permisos de fotos y videos en Configuración.", "permission_onboarding_permission_limited": "Permiso limitado. Para permitir que Immich haga copia de seguridad y gestione toda tu colección de galería, concede permisos de fotos y videos en Configuración.",
"permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.", "permission_onboarding_request": "Immich requiere permiso para ver tus fotos y videos.",
"preferences_settings_title": "Preferences", "preferences_settings_title": "Preferencias",
"profile_drawer_app_logs": "Registros", "profile_drawer_app_logs": "Registros",
"profile_drawer_client_out_of_date_major": "La app de móvil está desactualizada. Por favor actualiza a la última versión principal", "profile_drawer_client_out_of_date_major": "La app está desactualizada. Por favor actualiza a la última versión principal.",
"profile_drawer_client_out_of_date_minor": "La app de móvil está desactualizada. Por favor actualiza a la última versión menor", "profile_drawer_client_out_of_date_minor": "La app está desactualizada. Por favor actualiza a la última versión menor.",
"profile_drawer_client_server_up_to_date": "El Cliente y el Servidor están actualizados", "profile_drawer_client_server_up_to_date": "El Cliente y el Servidor están actualizados",
"profile_drawer_documentation": "Documentación", "profile_drawer_documentation": "Documentación",
"profile_drawer_github": "GitHub", "profile_drawer_github": "GitHub",
"profile_drawer_server_out_of_date_major": "El servidor está desactualizado. Por favor actualiza a la última versión principal", "profile_drawer_server_out_of_date_major": "El servidor está desactualizado. Por favor actualiza a la última versión principal.",
"profile_drawer_server_out_of_date_minor": "El servidor está desactualizado. Por favor actualiza a la última versión menor", "profile_drawer_server_out_of_date_minor": "El servidor está desactualizado. Por favor actualiza a la última versión menor.",
"profile_drawer_settings": "Configuración", "profile_drawer_settings": "Configuración",
"profile_drawer_sign_out": "Cerrar Sesión", "profile_drawer_sign_out": "Cerrar Sesión",
"profile_drawer_trash": "Papelera", "profile_drawer_trash": "Papelera",
"recently_added_page_title": "Recién Agregadas", "recently_added_page_title": "Recién Agregadas",
"scaffold_body_error_occurred": "Ha ocurrido un error", "scaffold_body_error_occurred": "Ha ocurrido un error",
"search_bar_hint": "Busca tus fotos", "search_bar_hint": "Busca tus fotos",
"search_filter_apply": "Apply filter", "search_filter_apply": "Aplicar filtros",
"search_filter_camera_make": "Make", "search_filter_camera_make": "Marca",
"search_filter_camera_model": "Model", "search_filter_camera_model": "Modelo",
"search_filter_display_option_archive": "Archive", "search_filter_display_option_archive": "Archivado",
"search_filter_display_option_favorite": "Favorite", "search_filter_display_option_favorite": "Favorito",
"search_filter_display_option_not_in_album": "Not in album", "search_filter_display_option_not_in_album": "No en álbum",
"search_filter_location_city": "City", "search_filter_location_city": "Ciudad",
"search_filter_location_country": "Country", "search_filter_location_country": "País",
"search_filter_location_state": "State", "search_filter_location_state": "Estado",
"search_filter_media_type_all": "All", "search_filter_media_type_all": "Todos",
"search_filter_media_type_image": "Image", "search_filter_media_type_image": "Imagen",
"search_filter_media_type_video": "Video", "search_filter_media_type_video": "Vídeo",
"search_page_categories": "Categorías", "search_page_categories": "Categorías",
"search_page_favorites": "Favoritos", "search_page_favorites": "Favoritos",
"search_page_motion_photos": "Foto en Movimiento", "search_page_motion_photos": "Foto en Movimiento",
@@ -388,8 +391,8 @@
"setting_image_viewer_original_title": "Cargar imagen original", "setting_image_viewer_original_title": "Cargar imagen original",
"setting_image_viewer_preview_subtitle": "Activar para cargar una imagen de resolución media. Deshabilitar para cargar directamente la imagen original o usar una miniatura.", "setting_image_viewer_preview_subtitle": "Activar para cargar una imagen de resolución media. Deshabilitar para cargar directamente la imagen original o usar una miniatura.",
"setting_image_viewer_preview_title": "Cargar imagen de previsualización", "setting_image_viewer_preview_title": "Cargar imagen de previsualización",
"setting_languages_apply": "Apply", "setting_languages_apply": "Aplicar",
"setting_languages_title": "Languages", "setting_languages_title": "Idiomas",
"setting_notifications_notify_failures_grace_period": "Notificar fallos de copia de seguridad en segundo plano: {}", "setting_notifications_notify_failures_grace_period": "Notificar fallos de copia de seguridad en segundo plano: {}",
"setting_notifications_notify_hours": "{} horas", "setting_notifications_notify_hours": "{} horas",
"setting_notifications_notify_immediately": "inmediatamente", "setting_notifications_notify_immediately": "inmediatamente",
@@ -400,13 +403,14 @@
"setting_notifications_single_progress_title": "Mostrar progreso detallado de copia de seguridad en segundo plano", "setting_notifications_single_progress_title": "Mostrar progreso detallado de copia de seguridad en segundo plano",
"setting_notifications_subtitle": "Ajusta tus preferencias de notificación", "setting_notifications_subtitle": "Ajusta tus preferencias de notificación",
"setting_notifications_title": "Notificaciones", "setting_notifications_title": "Notificaciones",
"setting_notifications_total_progress_subtitle": "Progreso general de subida (archivos completados/total)", "setting_notifications_total_progress_subtitle": "Progreso general de subida (elementos completados/total)",
"setting_notifications_total_progress_title": "Mostrar progreso total de copia de seguridad en segundo plano", "setting_notifications_total_progress_title": "Mostrar progreso total de copia de seguridad en segundo plano",
"setting_pages_app_bar_settings": "Ajustes", "setting_pages_app_bar_settings": "Ajustes",
"settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste", "settings_require_restart": "Por favor, reinicia Immich para aplicar este ajuste",
"share_add": "Agregar", "share_add": "Agregar",
"share_add_photos": "Agregar fotos", "share_add_photos": "Agregar fotos",
"share_add_title": "Agregar un título", "share_add_title": "Agregar un título",
"share_assets_selected": "{} selected",
"share_create_album": "Crear álbum", "share_create_album": "Crear álbum",
"shared_album_activities_input_disable": "Los comentarios están deshabilitados", "shared_album_activities_input_disable": "Los comentarios están deshabilitados",
"shared_album_activities_input_hint": "Comenta algo", "shared_album_activities_input_hint": "Comenta algo",
@@ -414,11 +418,11 @@
"shared_album_activity_remove_title": "Eliminar Actividad", "shared_album_activity_remove_title": "Eliminar Actividad",
"shared_album_activity_setting_subtitle": "Permitir que otros respondan", "shared_album_activity_setting_subtitle": "Permitir que otros respondan",
"shared_album_activity_setting_title": "Comentarios y me gusta", "shared_album_activity_setting_title": "Comentarios y me gusta",
"shared_album_section_people_action_error": "Error dejando/eliminando del album", "shared_album_section_people_action_error": "Error retirando/eliminando del album",
"shared_album_section_people_action_leave": "Eliminar usuario del album", "shared_album_section_people_action_leave": "Eliminar usuario del album",
"shared_album_section_people_action_remove_user": "Eliminar usuario del album", "shared_album_section_people_action_remove_user": "Eliminar usuario del album",
"shared_album_section_people_owner_label": "Propietario", "shared_album_section_people_owner_label": "Propietario",
"shared_album_section_people_title": "GENTE", "shared_album_section_people_title": "PERSONAS",
"share_dialog_preparing": "Preparando...", "share_dialog_preparing": "Preparando...",
"shared_link_app_bar_title": "Enlaces compartidos", "shared_link_app_bar_title": "Enlaces compartidos",
"shared_link_clipboard_copied_massage": "Copiado al portapapeles", "shared_link_clipboard_copied_massage": "Copiado al portapapeles",
@@ -440,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} horas", "shared_link_edit_expire_after_option_hours": "{} horas",
"shared_link_edit_expire_after_option_minute": "1 minuto", "shared_link_edit_expire_after_option_minute": "1 minuto",
"shared_link_edit_expire_after_option_minutes": "{} minutos", "shared_link_edit_expire_after_option_minutes": "{} minutos",
"shared_link_edit_expire_after_option_months": "{} meses",
"shared_link_edit_expire_after_option_never": "Nunca", "shared_link_edit_expire_after_option_never": "Nunca",
"shared_link_edit_expire_after_option_year": "{} año",
"shared_link_edit_password": "Contraseña", "shared_link_edit_password": "Contraseña",
"shared_link_edit_password_hint": "Introduce la contraseña del enlace", "shared_link_edit_password_hint": "Introduce la contraseña del enlace",
"shared_link_edit_show_meta": "Mostrar metadatos", "shared_link_edit_show_meta": "Mostrar metadatos",
@@ -457,12 +463,12 @@
"shared_link_expires_never": "Caduca ∞", "shared_link_expires_never": "Caduca ∞",
"shared_link_expires_second": "Caduca en {} segundo", "shared_link_expires_second": "Caduca en {} segundo",
"shared_link_expires_seconds": "Caduca en {} segundos", "shared_link_expires_seconds": "Caduca en {} segundos",
"shared_link_individual_shared": "Individual shared", "shared_link_individual_shared": "Compartido individualmente",
"shared_link_info_chip_download": "Descargar", "shared_link_info_chip_download": "Descargar",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_info_chip_upload": "Subir", "shared_link_info_chip_upload": "Subir",
"shared_link_manage_links": "Administrar enlaces compartidos", "shared_link_manage_links": "Administrar enlaces compartidos",
"shared_link_public_album": "Public album", "shared_link_public_album": "Álbum público ",
"share_done": "Hecho", "share_done": "Hecho",
"share_invite": "Invitar al álbum", "share_invite": "Invitar al álbum",
"sharing_page_album": "Álbumes compartidos", "sharing_page_album": "Álbumes compartidos",
@@ -489,7 +495,7 @@
"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",
"trash_page_empty_trash_dialog_content": "Estás seguro que quieres eliminar los elementos? Estos elementos serán eliminados de Immich permanentemente", "trash_page_empty_trash_dialog_content": "¿Está seguro que quiere eliminar los elementos? Estos elementos serán eliminados de Immich permanentemente",
"trash_page_empty_trash_dialog_ok": "Sí", "trash_page_empty_trash_dialog_ok": "Sí",
"trash_page_info": "Los archivos en la papelera serán eliminados automáticamente después de {} días", "trash_page_info": "Los archivos en la papelera serán eliminados automáticamente después de {} días",
"trash_page_no_assets": "No hay elementos en la papelera", "trash_page_no_assets": "No hay elementos en la papelera",

View File

@@ -201,6 +201,8 @@
"experimental_settings_title": "Experimental", "experimental_settings_title": "Experimental",
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos", "favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
"favorites_page_title": "Favoritos", "favorites_page_title": "Favoritos",
"haptic_feedback_switch": "Enable haptic feedback",
"haptic_feedback_title": "Haptic Feedback",
"home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.\n{failed} elementos ya existen en el álbum.", "home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.\n{failed} elementos ya existen en el álbum.",
"home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo", "home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
"home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ", "home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
@@ -216,7 +218,7 @@
"home_page_share_err_local": "No se pueden compartir activos locales a través de un enlace, omitiendo", "home_page_share_err_local": "No se pueden compartir activos locales a través de un enlace, omitiendo",
"home_page_upload_err_limit": "Solo se pueden subir 30 elementos simultáneamente, omitiendo", "home_page_upload_err_limit": "Solo se pueden subir 30 elementos simultáneamente, omitiendo",
"image_viewer_page_state_provider_download_error": "Error de descarga", "image_viewer_page_state_provider_download_error": "Error de descarga",
"image_viewer_page_state_provider_download_started": "Descarga iniciada", "image_viewer_page_state_provider_download_started": "Download Started",
"image_viewer_page_state_provider_download_success": "Descarga exitosa", "image_viewer_page_state_provider_download_success": "Descarga exitosa",
"image_viewer_page_state_provider_share_error": "Error al compartir", "image_viewer_page_state_provider_share_error": "Error al compartir",
"library_page_albums": "Álbumes", "library_page_albums": "Álbumes",
@@ -297,6 +299,7 @@
"motion_photos_page_title": "Foto en Movimiento", "motion_photos_page_title": "Foto en Movimiento",
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping", "multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping", "multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
"no_assets_to_show": "No assets to show",
"notification_permission_dialog_cancel": "Cancelar", "notification_permission_dialog_cancel": "Cancelar",
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.", "notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
"notification_permission_dialog_settings": "Ajustes", "notification_permission_dialog_settings": "Ajustes",
@@ -407,6 +410,7 @@
"share_add": "Agregar", "share_add": "Agregar",
"share_add_photos": "Agregar fotos", "share_add_photos": "Agregar fotos",
"share_add_title": "Agregar un título", "share_add_title": "Agregar un título",
"share_assets_selected": "{} selected",
"share_create_album": "Crear álbum", "share_create_album": "Crear álbum",
"shared_album_activities_input_disable": "Los comentarios están deshabilitados", "shared_album_activities_input_disable": "Los comentarios están deshabilitados",
"shared_album_activities_input_hint": "Say something", "shared_album_activities_input_hint": "Say something",
@@ -440,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} hours", "shared_link_edit_expire_after_option_hours": "{} hours",
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_minute": "1 minute",
"shared_link_edit_expire_after_option_minutes": "{} minutes", "shared_link_edit_expire_after_option_minutes": "{} minutes",
"shared_link_edit_expire_after_option_months": "{} months",
"shared_link_edit_expire_after_option_never": "Never", "shared_link_edit_expire_after_option_never": "Never",
"shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_password": "Contraseña", "shared_link_edit_password": "Contraseña",
"shared_link_edit_password_hint": "Introduce la contraseña del enlace", "shared_link_edit_password_hint": "Introduce la contraseña del enlace",
"shared_link_edit_show_meta": "Mostrar metadatos", "shared_link_edit_show_meta": "Mostrar metadatos",

View File

@@ -201,6 +201,8 @@
"experimental_settings_title": "Experimental", "experimental_settings_title": "Experimental",
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos", "favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
"favorites_page_title": "Favoritos", "favorites_page_title": "Favoritos",
"haptic_feedback_switch": "Enable haptic feedback",
"haptic_feedback_title": "Haptic Feedback",
"home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.\n{failed} elementos ya existen en el álbum.", "home_page_add_to_album_conflicts": "{added} elementos agregados al álbum {album}.\n{failed} elementos ya existen en el álbum.",
"home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo", "home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
"home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ", "home_page_add_to_album_success": "{added} elementos agregados al álbum {album}. ",
@@ -216,7 +218,7 @@
"home_page_share_err_local": "No se pueden compartir activos locales a través de un enlace, omitiendo", "home_page_share_err_local": "No se pueden compartir activos locales a través de un enlace, omitiendo",
"home_page_upload_err_limit": "Solo se pueden subir 30 elementos simultáneamente, omitiendo", "home_page_upload_err_limit": "Solo se pueden subir 30 elementos simultáneamente, omitiendo",
"image_viewer_page_state_provider_download_error": "Error de descarga", "image_viewer_page_state_provider_download_error": "Error de descarga",
"image_viewer_page_state_provider_download_started": "Descarga iniciada", "image_viewer_page_state_provider_download_started": "Download Started",
"image_viewer_page_state_provider_download_success": "Descarga exitosa", "image_viewer_page_state_provider_download_success": "Descarga exitosa",
"image_viewer_page_state_provider_share_error": "Error al compartir", "image_viewer_page_state_provider_share_error": "Error al compartir",
"library_page_albums": "Álbumes", "library_page_albums": "Álbumes",
@@ -297,6 +299,7 @@
"motion_photos_page_title": "Foto en Movimiento", "motion_photos_page_title": "Foto en Movimiento",
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping", "multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping", "multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
"no_assets_to_show": "No assets to show",
"notification_permission_dialog_cancel": "Cancelar", "notification_permission_dialog_cancel": "Cancelar",
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.", "notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
"notification_permission_dialog_settings": "Ajustes", "notification_permission_dialog_settings": "Ajustes",
@@ -407,6 +410,7 @@
"share_add": "Agregar", "share_add": "Agregar",
"share_add_photos": "Agregar fotos", "share_add_photos": "Agregar fotos",
"share_add_title": "Agregar un título", "share_add_title": "Agregar un título",
"share_assets_selected": "{} selected",
"share_create_album": "Crear álbum", "share_create_album": "Crear álbum",
"shared_album_activities_input_disable": "Los comentarios están deshabilitados", "shared_album_activities_input_disable": "Los comentarios están deshabilitados",
"shared_album_activities_input_hint": "Comenta algo", "shared_album_activities_input_hint": "Comenta algo",
@@ -440,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} hours", "shared_link_edit_expire_after_option_hours": "{} hours",
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_minute": "1 minute",
"shared_link_edit_expire_after_option_minutes": "{} minutes", "shared_link_edit_expire_after_option_minutes": "{} minutes",
"shared_link_edit_expire_after_option_months": "{} months",
"shared_link_edit_expire_after_option_never": "Never", "shared_link_edit_expire_after_option_never": "Never",
"shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_password": "Contraseña", "shared_link_edit_password": "Contraseña",
"shared_link_edit_password_hint": "Introduce la contraseña del enlace", "shared_link_edit_password_hint": "Introduce la contraseña del enlace",
"shared_link_edit_show_meta": "Mostrar metadatos", "shared_link_edit_show_meta": "Mostrar metadatos",

View File

@@ -201,6 +201,8 @@
"experimental_settings_title": "Experimental", "experimental_settings_title": "Experimental",
"favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos", "favorites_page_no_favorites": "No se encontraron recursos marcados como favoritos",
"favorites_page_title": "Favoritos", "favorites_page_title": "Favoritos",
"haptic_feedback_switch": "Enable haptic feedback",
"haptic_feedback_title": "Haptic Feedback",
"home_page_add_to_album_conflicts": "{added} recursos agregados al álbum {album}.\n{failed} recursos ya existen en el álbum.", "home_page_add_to_album_conflicts": "{added} recursos agregados al álbum {album}.\n{failed} recursos ya existen en el álbum.",
"home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo", "home_page_add_to_album_err_local": "Aún no se pueden agregar recursos locales a álbumes, omitiendo",
"home_page_add_to_album_success": "{added} recursos agregados al álbum {album}.", "home_page_add_to_album_success": "{added} recursos agregados al álbum {album}.",
@@ -216,7 +218,7 @@
"home_page_share_err_local": "No se pueden compartir activos locales a través de un enlace, omitiendo", "home_page_share_err_local": "No se pueden compartir activos locales a través de un enlace, omitiendo",
"home_page_upload_err_limit": "Sólo se pueden subir un máximo de 30 recursos a la vez, omitiendo", "home_page_upload_err_limit": "Sólo se pueden subir un máximo de 30 recursos a la vez, omitiendo",
"image_viewer_page_state_provider_download_error": "Error de descarga", "image_viewer_page_state_provider_download_error": "Error de descarga",
"image_viewer_page_state_provider_download_started": "Descarga iniciada", "image_viewer_page_state_provider_download_started": "Download Started",
"image_viewer_page_state_provider_download_success": "Descarga exitosa", "image_viewer_page_state_provider_download_success": "Descarga exitosa",
"image_viewer_page_state_provider_share_error": "Error al compartir", "image_viewer_page_state_provider_share_error": "Error al compartir",
"library_page_albums": "Álbumes", "library_page_albums": "Álbumes",
@@ -297,6 +299,7 @@
"motion_photos_page_title": "Fotos en movimiento", "motion_photos_page_title": "Fotos en movimiento",
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping", "multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping", "multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
"no_assets_to_show": "No assets to show",
"notification_permission_dialog_cancel": "Cancelar", "notification_permission_dialog_cancel": "Cancelar",
"notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.", "notification_permission_dialog_content": "Para activar las notificaciones, ve a Configuración y selecciona permitir.",
"notification_permission_dialog_settings": "Configuración", "notification_permission_dialog_settings": "Configuración",
@@ -407,6 +410,7 @@
"share_add": "Agregar", "share_add": "Agregar",
"share_add_photos": "Agregar fotos", "share_add_photos": "Agregar fotos",
"share_add_title": "Agregar un título", "share_add_title": "Agregar un título",
"share_assets_selected": "{} selected",
"share_create_album": "Crear álbum", "share_create_album": "Crear álbum",
"shared_album_activities_input_disable": "Los comentarios están deshabilitados", "shared_album_activities_input_disable": "Los comentarios están deshabilitados",
"shared_album_activities_input_hint": "Di algo", "shared_album_activities_input_hint": "Di algo",
@@ -440,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} hours", "shared_link_edit_expire_after_option_hours": "{} hours",
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_minute": "1 minute",
"shared_link_edit_expire_after_option_minutes": "{} minutes", "shared_link_edit_expire_after_option_minutes": "{} minutes",
"shared_link_edit_expire_after_option_months": "{} months",
"shared_link_edit_expire_after_option_never": "Never", "shared_link_edit_expire_after_option_never": "Never",
"shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_password": "Contraseña", "shared_link_edit_password": "Contraseña",
"shared_link_edit_password_hint": "Introduce la contraseña del enlace", "shared_link_edit_password_hint": "Introduce la contraseña del enlace",
"shared_link_edit_show_meta": "Mostrar metadatos", "shared_link_edit_show_meta": "Mostrar metadatos",

View File

@@ -1,8 +1,8 @@
{ {
"action_common_back": "Back", "action_common_back": "Takaisin",
"action_common_cancel": "Peruuta", "action_common_cancel": "Peruuta",
"action_common_clear": "Clear", "action_common_clear": "Tyhjennä",
"action_common_confirm": "Confirm", "action_common_confirm": "Vahvista",
"action_common_update": "Päivitä", "action_common_update": "Päivitä",
"add_to_album_bottom_sheet_added": "Lisätty albumiin {album}", "add_to_album_bottom_sheet_added": "Lisätty albumiin {album}",
"add_to_album_bottom_sheet_already_exists": "Kohde on jo albumissa {album}", "add_to_album_bottom_sheet_already_exists": "Kohde on jo albumissa {album}",
@@ -13,7 +13,7 @@
"advanced_settings_self_signed_ssl_title": "Salli self-signed SSL -sertifikaatit", "advanced_settings_self_signed_ssl_title": "Salli self-signed SSL -sertifikaatit",
"advanced_settings_tile_subtitle": "Edistyneen käyttäjän asetukset", "advanced_settings_tile_subtitle": "Edistyneen käyttäjän asetukset",
"advanced_settings_tile_title": "Edistyneet", "advanced_settings_tile_title": "Edistyneet",
"advanced_settings_troubleshooting_subtitle": "Kytke vianetsinnän lisäominaisuudet päälle", "advanced_settings_troubleshooting_subtitle": "Ota vianetsinnän lisäominaisuudet käyttöön",
"advanced_settings_troubleshooting_title": "Vianetsintä", "advanced_settings_troubleshooting_title": "Vianetsintä",
"album_info_card_backup_album_excluded": "JÄTETTY POIS", "album_info_card_backup_album_excluded": "JÄTETTY POIS",
"album_info_card_backup_album_included": "SISÄLLYTETTY", "album_info_card_backup_album_included": "SISÄLLYTETTY",
@@ -22,7 +22,7 @@
"album_thumbnail_card_shared": "Jaettu", "album_thumbnail_card_shared": "Jaettu",
"album_thumbnail_owned": "Omistettu", "album_thumbnail_owned": "Omistettu",
"album_thumbnail_shared_by": "Jakanut {}", "album_thumbnail_shared_by": "Jakanut {}",
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?", "album_viewer_appbar_delete_confirm": "Haluatko varmast poistaa tämän albumin tililtäsi?",
"album_viewer_appbar_share_delete": "Poista albumi", "album_viewer_appbar_share_delete": "Poista albumi",
"album_viewer_appbar_share_err_delete": "Albumin poistaminen epäonnistui", "album_viewer_appbar_share_err_delete": "Albumin poistaminen epäonnistui",
"album_viewer_appbar_share_err_leave": "Albumista poistuminen epäonnistui", "album_viewer_appbar_share_err_leave": "Albumista poistuminen epäonnistui",
@@ -82,7 +82,7 @@
"backup_controller_page_background_turn_off": "Kytke taustapalvelu pois päältä", "backup_controller_page_background_turn_off": "Kytke taustapalvelu pois päältä",
"backup_controller_page_background_turn_on": "Kytke taustapalvelu päälle", "backup_controller_page_background_turn_on": "Kytke taustapalvelu päälle",
"backup_controller_page_background_wifi": "Vain WiFi-verkossa", "backup_controller_page_background_wifi": "Vain WiFi-verkossa",
"backup_controller_page_backup": "Varmuuskopioitu", "backup_controller_page_backup": "Varmuuskopiointi",
"backup_controller_page_backup_selected": "Valittu:", "backup_controller_page_backup_selected": "Valittu:",
"backup_controller_page_backup_sub": "Varmuuskopioidut kuvat ja videot", "backup_controller_page_backup_sub": "Varmuuskopioidut kuvat ja videot",
"backup_controller_page_cancel": "Peruuta", "backup_controller_page_cancel": "Peruuta",
@@ -115,7 +115,7 @@
"backup_manual_in_progress": "Lähetys palvelimelle on jo käynnissä. Kokeile uudelleen hetken kuluttua.", "backup_manual_in_progress": "Lähetys palvelimelle on jo käynnissä. Kokeile uudelleen hetken kuluttua.",
"backup_manual_success": "Onnistui", "backup_manual_success": "Onnistui",
"backup_manual_title": "Lähetyksen tila", "backup_manual_title": "Lähetyksen tila",
"backup_options_page_title": "Backup options", "backup_options_page_title": "Varmuuskopioinnin asetukset",
"cache_settings_album_thumbnails": "Kirjastosivun esikatselukuvat ({} kohdetta)", "cache_settings_album_thumbnails": "Kirjastosivun esikatselukuvat ({} kohdetta)",
"cache_settings_clear_cache_button": "Tyhjennä välimuisti", "cache_settings_clear_cache_button": "Tyhjennä välimuisti",
"cache_settings_clear_cache_button_title": "Tyhjennä sovelluksen välimuisti. Tämä vaikuttaa merkittävästi sovelluksen suorituskykyyn, kunnes välimuisti on rakennettu uudelleen.", "cache_settings_clear_cache_button_title": "Tyhjennä sovelluksen välimuisti. Tämä vaikuttaa merkittävästi sovelluksen suorituskykyyn, kunnes välimuisti on rakennettu uudelleen.",
@@ -194,13 +194,15 @@
"exif_bottom_sheet_location": "SIJAINTI", "exif_bottom_sheet_location": "SIJAINTI",
"exif_bottom_sheet_location_add": "Lisää sijainti", "exif_bottom_sheet_location_add": "Lisää sijainti",
"exif_bottom_sheet_people": "IHMISET", "exif_bottom_sheet_people": "IHMISET",
"exif_bottom_sheet_person_add_person": "Add name", "exif_bottom_sheet_person_add_person": "Lisää nimi",
"experimental_settings_new_asset_list_subtitle": "Työn alla", "experimental_settings_new_asset_list_subtitle": "Työn alla",
"experimental_settings_new_asset_list_title": "Ota käyttöön kokeellinen kuvaruudukko", "experimental_settings_new_asset_list_title": "Ota käyttöön kokeellinen kuvaruudukko",
"experimental_settings_subtitle": "Käyttö omalla vastuulla!", "experimental_settings_subtitle": "Käyttö omalla vastuulla!",
"experimental_settings_title": "Kokeellinen", "experimental_settings_title": "Kokeellinen",
"favorites_page_no_favorites": "Suosikkikohteita ei löytynyt", "favorites_page_no_favorites": "Suosikkikohteita ei löytynyt",
"favorites_page_title": "Suosikit", "favorites_page_title": "Suosikit",
"haptic_feedback_switch": "Ota haptinen palaute käyttöön",
"haptic_feedback_title": "Haptinen palaute",
"home_page_add_to_album_conflicts": "Lisätty {added} kohdetta albumiin {album}. {failed} kohdetta on jo albumissa.", "home_page_add_to_album_conflicts": "Lisätty {added} kohdetta albumiin {album}. {failed} kohdetta on jo albumissa.",
"home_page_add_to_album_err_local": "Paikallisten kohteiden lisääminen albumeihin ei ole mahdollista, ohitetaan", "home_page_add_to_album_err_local": "Paikallisten kohteiden lisääminen albumeihin ei ole mahdollista, ohitetaan",
"home_page_add_to_album_success": "Lisätty {added} kohdetta albumiin {album}.", "home_page_add_to_album_success": "Lisätty {added} kohdetta albumiin {album}.",
@@ -216,7 +218,7 @@
"home_page_share_err_local": "Paikallisia kohteita ei voitu jakaa linkkien avulla. Hypätään yli", "home_page_share_err_local": "Paikallisia kohteita ei voitu jakaa linkkien avulla. Hypätään yli",
"home_page_upload_err_limit": "Voit lähettää palvelimelle enintään 30 kohdetta kerrallaan, ohitetaan", "home_page_upload_err_limit": "Voit lähettää palvelimelle enintään 30 kohdetta kerrallaan, ohitetaan",
"image_viewer_page_state_provider_download_error": "Lataus epäonnistui", "image_viewer_page_state_provider_download_error": "Lataus epäonnistui",
"image_viewer_page_state_provider_download_started": "Lataus aloitettu", "image_viewer_page_state_provider_download_started": "Download Started",
"image_viewer_page_state_provider_download_success": "Lataus onnistui", "image_viewer_page_state_provider_download_success": "Lataus onnistui",
"image_viewer_page_state_provider_share_error": "Jakovirhe", "image_viewer_page_state_provider_share_error": "Jakovirhe",
"library_page_albums": "Albumit", "library_page_albums": "Albumit",
@@ -269,7 +271,7 @@
"map_location_dialog_cancel": "Peruuta", "map_location_dialog_cancel": "Peruuta",
"map_location_dialog_yes": "Kyllä", "map_location_dialog_yes": "Kyllä",
"map_location_picker_page_use_location": "Käytä tätä sijaintia", "map_location_picker_page_use_location": "Käytä tätä sijaintia",
"map_location_service_disabled_content": "Paikannuspalvelun pitää olla päälle kytkettynä, jotta nykyisen sijaintisi kohteita voidaan näyttää. Haluatko kytkeä sen päälle?", "map_location_service_disabled_content": "Paikannuspalvelun pitää olla kytkettynä päälle, jotta nykyisen sijaintisi kohteita voidaan näyttää. Haluatko kytkeä sen päälle nyt?",
"map_location_service_disabled_title": "Paikannuspalvelu pois päältä", "map_location_service_disabled_title": "Paikannuspalvelu pois päältä",
"map_no_assets_in_bounds": "Ei kuvia tällä alueella", "map_no_assets_in_bounds": "Ei kuvia tällä alueella",
"map_no_location_permission_content": "Paikannuslupa tarvitaan, jotta nykyisen sijainnin kohteita voidaan näyttää. Haluatko sallia pääsyn sijaintiin?", "map_no_location_permission_content": "Paikannuslupa tarvitaan, jotta nykyisen sijainnin kohteita voidaan näyttää. Haluatko sallia pääsyn sijaintiin?",
@@ -284,27 +286,28 @@
"map_settings_dialog_save": "Tallenna", "map_settings_dialog_save": "Tallenna",
"map_settings_dialog_title": "Kartta-asetukset", "map_settings_dialog_title": "Kartta-asetukset",
"map_settings_include_show_archived": "Sisällytä arkistoidut", "map_settings_include_show_archived": "Sisällytä arkistoidut",
"map_settings_include_show_partners": "Include Partners", "map_settings_include_show_partners": "Sisällytä kumppanit",
"map_settings_only_relative_range": "Päivämäärän rajaus", "map_settings_only_relative_range": "Päivämäärän rajaus",
"map_settings_only_show_favorites": "Näytä vain suosikit", "map_settings_only_show_favorites": "Näytä vain suosikit",
"map_settings_theme_settings": "Kartan teema", "map_settings_theme_settings": "Kartan teema",
"map_zoom_to_see_photos": "Tarkenna nähdäksesi kuvat", "map_zoom_to_see_photos": "Tarkenna nähdäksesi kuvat",
"memories_all_caught_up": "All caught up", "memories_all_caught_up": "Kaikki ajan tasalla",
"memories_check_back_tomorrow": "Check back tomorrow for more memories", "memories_check_back_tomorrow": "Palaa huomenna nähdäskesi lisää muistoja",
"memories_start_over": "Start Over", "memories_start_over": "Aloita alusta",
"memories_swipe_to_close": "Swipe up to close", "memories_swipe_to_close": "Pyyhkäise ylös sulkeaksesi",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "MMMM y",
"motion_photos_page_title": "Liikekuvat", "motion_photos_page_title": "Liikekuvat",
"multiselect_grid_edit_date_time_err_read_only": "Vain luku -tilassa olevien kohteiden päivämäärää ei voitu muokata, ohitetaan", "multiselect_grid_edit_date_time_err_read_only": "Vain luku -tilassa olevien kohteiden päivämäärää ei voitu muokata, ohitetaan",
"multiselect_grid_edit_gps_err_read_only": "Vain luku-tilassa olevien kohteiden sijantitietoja ei voitu muokata, ohitetaan", "multiselect_grid_edit_gps_err_read_only": "Vain luku-tilassa olevien kohteiden sijantitietoja ei voitu muokata, ohitetaan",
"no_assets_to_show": "Ei näytettäviä kohteita",
"notification_permission_dialog_cancel": "Peruuta", "notification_permission_dialog_cancel": "Peruuta",
"notification_permission_dialog_content": "Ottaaksesi ilmoitukset käyttöön, siirry asetuksiin ja valitse 'salli'.", "notification_permission_dialog_content": "Ottaaksesi ilmoitukset käyttöön, siirry asetuksiin ja valitse 'salli'.",
"notification_permission_dialog_settings": "Asetukset", "notification_permission_dialog_settings": "Asetukset",
"notification_permission_list_tile_content": "Myönnä käyttöoikeus ottaaksesi ilmoitukset käyttöön.", "notification_permission_list_tile_content": "Myönnä käyttöoikeus ottaaksesi ilmoitukset käyttöön.",
"notification_permission_list_tile_enable_button": "Ota ilmoitukset käyttöön", "notification_permission_list_tile_enable_button": "Ota ilmoitukset käyttöön",
"notification_permission_list_tile_title": "Ilmoitusten käyttöoikeus", "notification_permission_list_tile_title": "Ilmoitusten käyttöoikeus",
"partner_list_user_photos": "{user}'s photos", "partner_list_user_photos": "Käyttäjän {user} kuvat",
"partner_list_view_all": "View all", "partner_list_view_all": "Näytä kaikki",
"partner_page_add_partner": "Lisää kumppani", "partner_page_add_partner": "Lisää kumppani",
"partner_page_empty_message": "Kuviasi ei ole vielä jaettu kenenkään kumppanin kanssa.", "partner_page_empty_message": "Kuviasi ei ole vielä jaettu kenenkään kumppanin kanssa.",
"partner_page_no_more_users": "Ei enempää käyttäjiä lisättäväksi", "partner_page_no_more_users": "Ei enempää käyttäjiä lisättäväksi",
@@ -339,17 +342,17 @@
"recently_added_page_title": "Viimeksi lisätyt", "recently_added_page_title": "Viimeksi lisätyt",
"scaffold_body_error_occurred": "Tapahtui virhe", "scaffold_body_error_occurred": "Tapahtui virhe",
"search_bar_hint": "Etsi kuvia", "search_bar_hint": "Etsi kuvia",
"search_filter_apply": "Apply filter", "search_filter_apply": "Käytä",
"search_filter_camera_make": "Make", "search_filter_camera_make": "Valmistaja",
"search_filter_camera_model": "Model", "search_filter_camera_model": "Malli",
"search_filter_display_option_archive": "Archive", "search_filter_display_option_archive": "Arkisto",
"search_filter_display_option_favorite": "Favorite", "search_filter_display_option_favorite": "Suosikki",
"search_filter_display_option_not_in_album": "Not in album", "search_filter_display_option_not_in_album": "Ei kuulu albumiin",
"search_filter_location_city": "City", "search_filter_location_city": "Kaupunki",
"search_filter_location_country": "Country", "search_filter_location_country": "Maa",
"search_filter_location_state": "State", "search_filter_location_state": "Maakunta/osavaltio",
"search_filter_media_type_all": "All", "search_filter_media_type_all": "Kaikki",
"search_filter_media_type_image": "Image", "search_filter_media_type_image": "Kuva",
"search_filter_media_type_video": "Video", "search_filter_media_type_video": "Video",
"search_page_categories": "Kategoriat", "search_page_categories": "Kategoriat",
"search_page_favorites": "Suosikit", "search_page_favorites": "Suosikit",
@@ -388,8 +391,8 @@
"setting_image_viewer_original_title": "Lataa alkuperäinen kuva", "setting_image_viewer_original_title": "Lataa alkuperäinen kuva",
"setting_image_viewer_preview_subtitle": "Ota käyttöön ladataksesi keskitarkkuuksinen kuva. Poista käytöstä ladataksesi alkuperäinen kuva tai käyttääksesi vain esikatselukuvaa.", "setting_image_viewer_preview_subtitle": "Ota käyttöön ladataksesi keskitarkkuuksinen kuva. Poista käytöstä ladataksesi alkuperäinen kuva tai käyttääksesi vain esikatselukuvaa.",
"setting_image_viewer_preview_title": "Lataa esikatselukuva", "setting_image_viewer_preview_title": "Lataa esikatselukuva",
"setting_languages_apply": "Apply", "setting_languages_apply": "Käytä",
"setting_languages_title": "Languages", "setting_languages_title": "Kieli",
"setting_notifications_notify_failures_grace_period": "Ilmoita taustavarmuuskopioinnin epäonnistumisista: {}", "setting_notifications_notify_failures_grace_period": "Ilmoita taustavarmuuskopioinnin epäonnistumisista: {}",
"setting_notifications_notify_hours": "{} tunnin välein", "setting_notifications_notify_hours": "{} tunnin välein",
"setting_notifications_notify_immediately": "heti", "setting_notifications_notify_immediately": "heti",
@@ -407,6 +410,7 @@
"share_add": "Lisää", "share_add": "Lisää",
"share_add_photos": "Lisää kuvia", "share_add_photos": "Lisää kuvia",
"share_add_title": "Lisää nimi", "share_add_title": "Lisää nimi",
"share_assets_selected": "{} selected",
"share_create_album": "Luo albumi", "share_create_album": "Luo albumi",
"shared_album_activities_input_disable": "Kommentointi on kytketty pois päältä", "shared_album_activities_input_disable": "Kommentointi on kytketty pois päältä",
"shared_album_activities_input_hint": "Sano jotain", "shared_album_activities_input_hint": "Sano jotain",
@@ -440,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} tuntia", "shared_link_edit_expire_after_option_hours": "{} tuntia",
"shared_link_edit_expire_after_option_minute": "1 minuutti", "shared_link_edit_expire_after_option_minute": "1 minuutti",
"shared_link_edit_expire_after_option_minutes": "{} minuuttia", "shared_link_edit_expire_after_option_minutes": "{} minuuttia",
"shared_link_edit_expire_after_option_months": "{} kuukautta",
"shared_link_edit_expire_after_option_never": "Ei koskaan", "shared_link_edit_expire_after_option_never": "Ei koskaan",
"shared_link_edit_expire_after_option_year": "{} vuosi",
"shared_link_edit_password": "Salasana", "shared_link_edit_password": "Salasana",
"shared_link_edit_password_hint": "Syötä jaon salasana", "shared_link_edit_password_hint": "Syötä jaon salasana",
"shared_link_edit_show_meta": "Näytä metadata", "shared_link_edit_show_meta": "Näytä metadata",
@@ -462,7 +468,7 @@
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_info_chip_upload": "Lähetä", "shared_link_info_chip_upload": "Lähetä",
"shared_link_manage_links": "Hallitse jaettuja linkkejä", "shared_link_manage_links": "Hallitse jaettuja linkkejä",
"shared_link_public_album": "Public album", "shared_link_public_album": "Julkinen albumi",
"share_done": "Valmis", "share_done": "Valmis",
"share_invite": "Kutsu albumiin", "share_invite": "Kutsu albumiin",
"sharing_page_album": "Jaetut albumit", "sharing_page_album": "Jaetut albumit",
@@ -475,7 +481,7 @@
"tab_controller_nav_photos": "Kuvat", "tab_controller_nav_photos": "Kuvat",
"tab_controller_nav_search": "Haku", "tab_controller_nav_search": "Haku",
"tab_controller_nav_sharing": "Jakaminen", "tab_controller_nav_sharing": "Jakaminen",
"theme_setting_asset_list_storage_indicator_title": "Näytä tallennustilainidikaattori 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_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",

View File

@@ -201,6 +201,8 @@
"experimental_settings_title": "Expérimental", "experimental_settings_title": "Expérimental",
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé", "favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
"favorites_page_title": "Favoris", "favorites_page_title": "Favoris",
"haptic_feedback_switch": "Enable haptic feedback",
"haptic_feedback_title": "Haptic Feedback",
"home_page_add_to_album_conflicts": "{added} éléments ajoutés à l'album {album}. Les éléments {failed} sont déjà dans l'album.", "home_page_add_to_album_conflicts": "{added} éléments ajoutés à l'album {album}. Les éléments {failed} sont déjà dans l'album.",
"home_page_add_to_album_err_local": "Impossible d'ajouter des éléments locaux aux albums pour le moment, étape ignorée", "home_page_add_to_album_err_local": "Impossible d'ajouter des éléments locaux aux albums pour le moment, étape ignorée",
"home_page_add_to_album_success": "{added} éléments ajoutés à l'album {album}.", "home_page_add_to_album_success": "{added} éléments ajoutés à l'album {album}.",
@@ -216,7 +218,7 @@
"home_page_share_err_local": "Can not share local assets via link, skipping", "home_page_share_err_local": "Can not share local assets via link, skipping",
"home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée", "home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée",
"image_viewer_page_state_provider_download_error": "Erreur de téléchargement", "image_viewer_page_state_provider_download_error": "Erreur de téléchargement",
"image_viewer_page_state_provider_download_started": "Téléchargement commencé", "image_viewer_page_state_provider_download_started": "Download Started",
"image_viewer_page_state_provider_download_success": "Téléchargement réussi", "image_viewer_page_state_provider_download_success": "Téléchargement réussi",
"image_viewer_page_state_provider_share_error": "Erreur de partage", "image_viewer_page_state_provider_share_error": "Erreur de partage",
"library_page_albums": "Albums", "library_page_albums": "Albums",
@@ -297,6 +299,7 @@
"motion_photos_page_title": "Photos avec mouvement", "motion_photos_page_title": "Photos avec mouvement",
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping", "multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping", "multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
"no_assets_to_show": "No assets to show",
"notification_permission_dialog_cancel": "Annuler", "notification_permission_dialog_cancel": "Annuler",
"notification_permission_dialog_content": "Pour activer les notifications, allez dans Paramètres et sélectionnez Autoriser.", "notification_permission_dialog_content": "Pour activer les notifications, allez dans Paramètres et sélectionnez Autoriser.",
"notification_permission_dialog_settings": "Paramètres", "notification_permission_dialog_settings": "Paramètres",
@@ -407,6 +410,7 @@
"share_add": "Ajouter", "share_add": "Ajouter",
"share_add_photos": "Ajouter des photos", "share_add_photos": "Ajouter des photos",
"share_add_title": "Ajouter un titre", "share_add_title": "Ajouter un titre",
"share_assets_selected": "{} selected",
"share_create_album": "Créer un album", "share_create_album": "Créer un album",
"shared_album_activities_input_disable": "Les commentaires sont désactivés", "shared_album_activities_input_disable": "Les commentaires sont désactivés",
"shared_album_activities_input_hint": "Dire quelque chose", "shared_album_activities_input_hint": "Dire quelque chose",
@@ -440,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} hours", "shared_link_edit_expire_after_option_hours": "{} hours",
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_minute": "1 minute",
"shared_link_edit_expire_after_option_minutes": "{} minutes", "shared_link_edit_expire_after_option_minutes": "{} minutes",
"shared_link_edit_expire_after_option_months": "{} months",
"shared_link_edit_expire_after_option_never": "Never", "shared_link_edit_expire_after_option_never": "Never",
"shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_password": "Mot de passe", "shared_link_edit_password": "Mot de passe",
"shared_link_edit_password_hint": "Saisir le mot de passe de partage", "shared_link_edit_password_hint": "Saisir le mot de passe de partage",
"shared_link_edit_show_meta": "Afficher les métadonnées", "shared_link_edit_show_meta": "Afficher les métadonnées",

View File

@@ -201,6 +201,8 @@
"experimental_settings_title": "Expérimental", "experimental_settings_title": "Expérimental",
"favorites_page_no_favorites": "Aucun élément favori n'a été trouvé", "favorites_page_no_favorites": "Aucun élément favori n'a été trouvé",
"favorites_page_title": "Favoris", "favorites_page_title": "Favoris",
"haptic_feedback_switch": "Activer le retour haptique",
"haptic_feedback_title": "Retour haptique",
"home_page_add_to_album_conflicts": "{added} éléments ajoutés à l'album {album}. Les éléments {failed} sont déjà dans l'album.", "home_page_add_to_album_conflicts": "{added} éléments ajoutés à l'album {album}. Les éléments {failed} sont déjà dans l'album.",
"home_page_add_to_album_err_local": "Impossible d'ajouter des éléments locaux aux albums pour le moment, étape ignorée", "home_page_add_to_album_err_local": "Impossible d'ajouter des éléments locaux aux albums pour le moment, étape ignorée",
"home_page_add_to_album_success": "{added} éléments ajoutés à l'album {album}.", "home_page_add_to_album_success": "{added} éléments ajoutés à l'album {album}.",
@@ -216,7 +218,7 @@
"home_page_share_err_local": "Impossible de partager par lien les médias locaux, cette opération est donc ignorée.", "home_page_share_err_local": "Impossible de partager par lien les médias locaux, cette opération est donc ignorée.",
"home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée", "home_page_upload_err_limit": "Limite de téléchargement de 30 éléments en même temps, demande ignorée",
"image_viewer_page_state_provider_download_error": "Erreur de téléchargement", "image_viewer_page_state_provider_download_error": "Erreur de téléchargement",
"image_viewer_page_state_provider_download_started": "Téléchargement commencé", "image_viewer_page_state_provider_download_started": "Download Started",
"image_viewer_page_state_provider_download_success": "Téléchargement réussi", "image_viewer_page_state_provider_download_success": "Téléchargement réussi",
"image_viewer_page_state_provider_share_error": "Erreur de partage", "image_viewer_page_state_provider_share_error": "Erreur de partage",
"library_page_albums": "Albums", "library_page_albums": "Albums",
@@ -408,6 +410,7 @@
"share_add": "Ajouter", "share_add": "Ajouter",
"share_add_photos": "Ajouter des photos", "share_add_photos": "Ajouter des photos",
"share_add_title": "Ajouter un titre", "share_add_title": "Ajouter un titre",
"share_assets_selected": "{} selected",
"share_create_album": "Créer un album", "share_create_album": "Créer un album",
"shared_album_activities_input_disable": "Les commentaires sont désactivés", "shared_album_activities_input_disable": "Les commentaires sont désactivés",
"shared_album_activities_input_hint": "Dire quelque chose", "shared_album_activities_input_hint": "Dire quelque chose",
@@ -441,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} heures", "shared_link_edit_expire_after_option_hours": "{} heures",
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_minute": "1 minute",
"shared_link_edit_expire_after_option_minutes": "{} minutes", "shared_link_edit_expire_after_option_minutes": "{} minutes",
"shared_link_edit_expire_after_option_months": "{} months",
"shared_link_edit_expire_after_option_never": "Jamais", "shared_link_edit_expire_after_option_never": "Jamais",
"shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_password": "Mot de passe", "shared_link_edit_password": "Mot de passe",
"shared_link_edit_password_hint": "Saisir le mot de passe de partage", "shared_link_edit_password_hint": "Saisir le mot de passe de partage",
"shared_link_edit_show_meta": "Afficher les métadonnées", "shared_link_edit_show_meta": "Afficher les métadonnées",
@@ -511,7 +516,5 @@
"version_announcement_overlay_title": "Nouvelle version serveur disponible \uD83C\uDF89", "version_announcement_overlay_title": "Nouvelle version serveur disponible \uD83C\uDF89",
"viewer_remove_from_stack": "Retirer de la pile", "viewer_remove_from_stack": "Retirer de la pile",
"viewer_stack_use_as_main_asset": "Utiliser comme élément principal", "viewer_stack_use_as_main_asset": "Utiliser comme élément principal",
"viewer_unstack": "Désempiler", "viewer_unstack": "Désempiler"
"haptic_feedback_title": "Retour haptique",
"haptic_feedback_switch": "Activer le retour haptique"
} }

View File

@@ -7,7 +7,7 @@
"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}",
"advanced_settings_log_level_title": "רמת תיעוד אירועים: {}", "advanced_settings_log_level_title": "רמת תיעוד אירועים: {}",
"advanced_settings_prefer_remote_subtitle": "חלק מהמכשירים הם איטיים עד כאב לטעון תמונות ממוזערות מנכסים שעל המכשיר. הפעל הגדרה זו כדי לטעון תמונות מרוחקות במקום", "advanced_settings_prefer_remote_subtitle": "חלק מהמכשירים הם אייטים מאד לטעון תמונות ממוזערות מנכסים שבמכשיר. הפעל הגדרה זו כדי לטעון תמונות מרוחקות במקום.",
"advanced_settings_prefer_remote_title": "העדף תמונות מרוחקות", "advanced_settings_prefer_remote_title": "העדף תמונות מרוחקות",
"advanced_settings_self_signed_ssl_subtitle": "מדלג על אימות תעודת SSL עבור נקודת הקצה של השרת. דרוש עבור תעודות בחתימה עצמית.", "advanced_settings_self_signed_ssl_subtitle": "מדלג על אימות תעודת SSL עבור נקודת הקצה של השרת. דרוש עבור תעודות בחתימה עצמית.",
"advanced_settings_self_signed_ssl_title": "התר תעודות SSL בחתימה עצמית", "advanced_settings_self_signed_ssl_title": "התר תעודות SSL בחתימה עצמית",
@@ -20,7 +20,7 @@
"album_thumbnail_card_item": "פריט 1", "album_thumbnail_card_item": "פריט 1",
"album_thumbnail_card_items": "{} פריטים", "album_thumbnail_card_items": "{} פריטים",
"album_thumbnail_card_shared": " · משותף", "album_thumbnail_card_shared": " · משותף",
"album_thumbnail_owned": "בבעלות", "album_thumbnail_owned": "בבעלותך",
"album_thumbnail_shared_by": "משותף על ידי {}", "album_thumbnail_shared_by": "משותף על ידי {}",
"album_viewer_appbar_delete_confirm": "האם אתה בטוח שברצונך למחוק את האלבום מהחשבון שלך?", "album_viewer_appbar_delete_confirm": "האם אתה בטוח שברצונך למחוק את האלבום מהחשבון שלך?",
"album_viewer_appbar_share_delete": "מחק אלבום", "album_viewer_appbar_share_delete": "מחק אלבום",
@@ -38,7 +38,7 @@
"app_bar_signout_dialog_ok": "כן", "app_bar_signout_dialog_ok": "כן",
"app_bar_signout_dialog_title": "התנתק", "app_bar_signout_dialog_title": "התנתק",
"archive_page_no_archived_assets": "לא נמצאו נכסים בארכיון", "archive_page_no_archived_assets": "לא נמצאו נכסים בארכיון",
"archive_page_title": "העבר לארכיון ({})", "archive_page_title": "בארכיון ({})",
"asset_action_delete_err_read_only": "לא ניתן למחוק נכס(ים) לקריאה בלבד, מדלג", "asset_action_delete_err_read_only": "לא ניתן למחוק נכס(ים) לקריאה בלבד, מדלג",
"asset_action_share_err_offline": "לא ניתן להשיג נכס(ים) לא מקוונ(ים), מדלג ", "asset_action_share_err_offline": "לא ניתן להשיג נכס(ים) לא מקוונ(ים), מדלג ",
"asset_list_group_by_sub_title": "קבץ לפי", "asset_list_group_by_sub_title": "קבץ לפי",
@@ -50,7 +50,7 @@
"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_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": "הקש כדי לכלול, הקש פעמיים כדי להחריג",
"backup_album_selection_page_assets_scatter": "נכסים יכולים להתפזר על פני אלבומים מרובים. לפיכך, ניתן לכלול או להחריג אלבומים במהלך תהליך הגיבוי.", "backup_album_selection_page_assets_scatter": "נכסים יכולים להתפזר על פני אלבומים מרובים. לפיכך, ניתן לכלול או להחריג אלבומים במהלך תהליך הגיבוי.",
@@ -81,7 +81,7 @@
"backup_controller_page_background_is_on": "גיבוי אוטומטי ברקע מופעל", "backup_controller_page_background_is_on": "גיבוי אוטומטי ברקע מופעל",
"backup_controller_page_background_turn_off": "כבה שירות ברקע", "backup_controller_page_background_turn_off": "כבה שירות ברקע",
"backup_controller_page_background_turn_on": "הפעל שירות ברקע", "backup_controller_page_background_turn_on": "הפעל שירות ברקע",
"backup_controller_page_background_wifi": "רק ב Wi-Fi", "backup_controller_page_background_wifi": "רק ברשת אלחוטית",
"backup_controller_page_backup": "גיבוי", "backup_controller_page_backup": "גיבוי",
"backup_controller_page_backup_selected": "נבחרו:", "backup_controller_page_backup_selected": "נבחרו:",
"backup_controller_page_backup_sub": "תמונות וסרטונים מגובים", "backup_controller_page_backup_sub": "תמונות וסרטונים מגובים",
@@ -201,6 +201,8 @@
"experimental_settings_title": "נסיוני", "experimental_settings_title": "נסיוני",
"favorites_page_no_favorites": "לא נמצאו נכסים מועדפים", "favorites_page_no_favorites": "לא נמצאו נכסים מועדפים",
"favorites_page_title": "מועדפים", "favorites_page_title": "מועדפים",
"haptic_feedback_switch": "הפעל משוב ברטט",
"haptic_feedback_title": "משוב ברטט",
"home_page_add_to_album_conflicts": "{added} נכסים נוספו לאלבום {album}. {failed} נכסים כבר נמצאים באלבום.", "home_page_add_to_album_conflicts": "{added} נכסים נוספו לאלבום {album}. {failed} נכסים כבר נמצאים באלבום.",
"home_page_add_to_album_err_local": "לא ניתן להוסיף נכסים מקומיים לאלבום עדיין, מדלג", "home_page_add_to_album_err_local": "לא ניתן להוסיף נכסים מקומיים לאלבום עדיין, מדלג",
"home_page_add_to_album_success": "{added} נכסים נוספו לאלבום {album}.", "home_page_add_to_album_success": "{added} נכסים נוספו לאלבום {album}.",
@@ -220,7 +222,7 @@
"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": "שיתוף שגיאה",
"library_page_albums": "אלבומים", "library_page_albums": "אלבומים",
"library_page_archive": "העבר לארכיון", "library_page_archive": "בארכיון",
"library_page_device_albums": "אלבומים במכשיר", "library_page_device_albums": "אלבומים במכשיר",
"library_page_favorites": "מועדפים", "library_page_favorites": "מועדפים",
"library_page_new_album": "אלבום חדש", "library_page_new_album": "אלבום חדש",
@@ -244,22 +246,22 @@
"login_form_button_text": "התחברות", "login_form_button_text": "התחברות",
"login_form_email_hint": "yourmail@email.com", "login_form_email_hint": "yourmail@email.com",
"login_form_endpoint_hint": "http://your-server-ip:port/API", "login_form_endpoint_hint": "http://your-server-ip:port/API",
"login_form_endpoint_url": "כתובת URL של נקודת קצה השרת", "login_form_endpoint_url": "כתובת נקודת קצה השרת",
"login_form_err_http": "נא לציין //:htttp או //:https", "login_form_err_http": "נא לציין //:htttp או //:https",
"login_form_err_invalid_email": "דוא\"ל שגוי", "login_form_err_invalid_email": "דוא\"ל שגוי",
"login_form_err_invalid_url": "כתובת URL לא חוקית", "login_form_err_invalid_url": "כתובת לא חוקית",
"login_form_err_leading_whitespace": "רווח לבן מוביל", "login_form_err_leading_whitespace": "רווח לבן מוביל",
"login_form_err_trailing_whitespace": "רווח לבן נגרר", "login_form_err_trailing_whitespace": "רווח לבן נגרר",
"login_form_failed_get_oauth_server_config": "שגיאה בהתחברות באמצעות OAuth, בדוק את כתובת URL של השרת", "login_form_failed_get_oauth_server_config": "שגיאה בהתחברות באמצעות OAuth, בדוק את כתובת URL של השרת",
"login_form_failed_get_oauth_server_disable": "תכונת OAuth לא זמינה בשרת זה", "login_form_failed_get_oauth_server_disable": "תכונת OAuth לא זמינה בשרת זה",
"login_form_failed_login": "שגיאה בהכנסתך למערכת, בדוק את כתובת הURL של השרת, דוא\"ל וסיסמה", "login_form_failed_login": "שגיאה בהכנסתך למערכת, בדוק את כתובת השרת, דוא\"ל וסיסמה",
"login_form_handshake_exception": "ארעה חריגת לחיצת יד עם השרת. אפשר תמיכה בתעודה בחתימה עצמית בהגדרות אם את/ה משתמש/ת בתעודה בחתימה עצמית.", "login_form_handshake_exception": "ארעה חריגת לחיצת יד עם השרת. אפשר תמיכה בתעודה בחתימה עצמית בהגדרות אם את/ה משתמש/ת בתעודה בחתימה עצמית.",
"login_form_label_email": "דוא\"ל", "login_form_label_email": "דוא\"ל",
"login_form_label_password": "סיסמה", "login_form_label_password": "סיסמה",
"login_form_next_button": "הבא", "login_form_next_button": "הבא",
"login_form_password_hint": "סיסמה", "login_form_password_hint": "סיסמה",
"login_form_save_login": "הישאר/י מחובר/ת", "login_form_save_login": "הישאר/י מחובר/ת",
"login_form_server_empty": "הכנס כתובת URL של שרת.", "login_form_server_empty": "הכנס כתובת שרת.",
"login_form_server_error": "לא היה ניתן להתחבר לשרת.", "login_form_server_error": "לא היה ניתן להתחבר לשרת.",
"login_password_changed_error": "הייתה שגיאה בעדכון הסיסמה שלך", "login_password_changed_error": "הייתה שגיאה בעדכון הסיסמה שלך",
"login_password_changed_success": "סיסמה עודכנה בהצלחה", "login_password_changed_success": "סיסמה עודכנה בהצלחה",
@@ -297,6 +299,7 @@
"motion_photos_page_title": "תמונות עם תנועה", "motion_photos_page_title": "תמונות עם תנועה",
"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": "אין תמונות להצגה",
"notification_permission_dialog_cancel": "ביטול", "notification_permission_dialog_cancel": "ביטול",
"notification_permission_dialog_content": "כדי לאפשר התראות, לך להגדרות ובחר התר", "notification_permission_dialog_content": "כדי לאפשר התראות, לך להגדרות ובחר התר",
"notification_permission_dialog_settings": "הגדרות", "notification_permission_dialog_settings": "הגדרות",
@@ -328,7 +331,7 @@
"profile_drawer_app_logs": "יומנים", "profile_drawer_app_logs": "יומנים",
"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": "השרת אינו עדכני. נא לעדכן לגרסה האחרונה.",
@@ -388,8 +391,8 @@
"setting_image_viewer_original_title": "טען תמונה מקורית", "setting_image_viewer_original_title": "טען תמונה מקורית",
"setting_image_viewer_preview_subtitle": "אפשר לטעון תמונה ברזלוציה בינונית. השבת כדי או לטעון את המקורית או רק להשתמש בתמונה הממוזערת.", "setting_image_viewer_preview_subtitle": "אפשר לטעון תמונה ברזלוציה בינונית. השבת כדי או לטעון את המקורית או רק להשתמש בתמונה הממוזערת.",
"setting_image_viewer_preview_title": "טען תמונת תצוגה מקדימה", "setting_image_viewer_preview_title": "טען תמונת תצוגה מקדימה",
"setting_languages_apply": "Apply", "setting_languages_apply": "החל",
"setting_languages_title": "Languages", "setting_languages_title": "שפות",
"setting_notifications_notify_failures_grace_period": "להודיע על כשלים בגיבוי ברקע: {}", "setting_notifications_notify_failures_grace_period": "להודיע על כשלים בגיבוי ברקע: {}",
"setting_notifications_notify_hours": "{} שעות", "setting_notifications_notify_hours": "{} שעות",
"setting_notifications_notify_immediately": "באופן מיידי", "setting_notifications_notify_immediately": "באופן מיידי",
@@ -407,6 +410,7 @@
"share_add": "הוסף", "share_add": "הוסף",
"share_add_photos": "הוסף תמונות", "share_add_photos": "הוסף תמונות",
"share_add_title": "הוסף כותרת", "share_add_title": "הוסף כותרת",
"share_assets_selected": "{} 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": "הגב/י משהו",
@@ -440,13 +444,15 @@
"shared_link_edit_expire_after_option_hours": "{} שעות", "shared_link_edit_expire_after_option_hours": "{} שעות",
"shared_link_edit_expire_after_option_minute": "1 דקה", "shared_link_edit_expire_after_option_minute": "1 דקה",
"shared_link_edit_expire_after_option_minutes": "{} דקות", "shared_link_edit_expire_after_option_minutes": "{} דקות",
"shared_link_edit_expire_after_option_months": "{} חודשים",
"shared_link_edit_expire_after_option_never": "אף פעם", "shared_link_edit_expire_after_option_never": "אף פעם",
"shared_link_edit_expire_after_option_year": "{} שנה",
"shared_link_edit_password": "סיסמה", "shared_link_edit_password": "סיסמה",
"shared_link_edit_password_hint": "הכנס את סיסמת השיתוף", "shared_link_edit_password_hint": "הכנס את סיסמת השיתוף",
"shared_link_edit_show_meta": "הצג מטא-נתונים", "shared_link_edit_show_meta": "הצג מטא-נתונים",
"shared_link_edit_submit_button": "עדכן קישור", "shared_link_edit_submit_button": "עדכן קישור",
"shared_link_empty": "אין לך קישורים משותפים", "shared_link_empty": "אין לך קישורים משותפים",
"shared_link_error_server_url_fetch": "לא ניתן להשיג את כתובת הURL של השרת", "shared_link_error_server_url_fetch": "לא ניתן להשיג את כתובת האינטרנט של השרת",
"shared_link_expired": "פג תוקף", "shared_link_expired": "פג תוקף",
"shared_link_expires_day": "יפוג בעוד {} יום", "shared_link_expires_day": "יפוג בעוד {} יום",
"shared_link_expires_days": "יפוג בעוד {} ימים", "shared_link_expires_days": "יפוג בעוד {} ימים",

View File

@@ -201,6 +201,8 @@
"experimental_settings_title": "Experimental", "experimental_settings_title": "Experimental",
"favorites_page_no_favorites": "No favorite assets found", "favorites_page_no_favorites": "No favorite assets found",
"favorites_page_title": "Favorites", "favorites_page_title": "Favorites",
"haptic_feedback_switch": "Enable haptic feedback",
"haptic_feedback_title": "Haptic Feedback",
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.", "home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.",
"home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping", "home_page_add_to_album_err_local": "Can not add local assets to albums yet, skipping",
"home_page_add_to_album_success": "Added {added} assets to album {album}.", "home_page_add_to_album_success": "Added {added} assets to album {album}.",
@@ -297,6 +299,7 @@
"motion_photos_page_title": "Motion Photos", "motion_photos_page_title": "Motion Photos",
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping", "multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping",
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping", "multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping",
"no_assets_to_show": "No assets to show",
"notification_permission_dialog_cancel": "Cancel", "notification_permission_dialog_cancel": "Cancel",
"notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.", "notification_permission_dialog_content": "To enable notifications, go to Settings and select allow.",
"notification_permission_dialog_settings": "Settings", "notification_permission_dialog_settings": "Settings",
@@ -407,6 +410,7 @@
"share_add": "Add", "share_add": "Add",
"share_add_photos": "Add photos", "share_add_photos": "Add photos",
"share_add_title": "Add a title", "share_add_title": "Add a title",
"share_assets_selected": "{} selected",
"share_create_album": "Create album", "share_create_album": "Create album",
"shared_album_activities_input_disable": "कॉमेंट डिजेबल्ड है", "shared_album_activities_input_disable": "कॉमेंट डिजेबल्ड है",
"shared_album_activities_input_hint": "कुछ कहें", "shared_album_activities_input_hint": "कुछ कहें",
@@ -440,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} hours", "shared_link_edit_expire_after_option_hours": "{} hours",
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_minute": "1 minute",
"shared_link_edit_expire_after_option_minutes": "{} minutes", "shared_link_edit_expire_after_option_minutes": "{} minutes",
"shared_link_edit_expire_after_option_months": "{} months",
"shared_link_edit_expire_after_option_never": "Never", "shared_link_edit_expire_after_option_never": "Never",
"shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_password": "पासवर्ड", "shared_link_edit_password": "पासवर्ड",
"shared_link_edit_password_hint": "शेयर पासवर्ड दर्ज करें", "shared_link_edit_password_hint": "शेयर पासवर्ड दर्ज करें",
"shared_link_edit_show_meta": "मेटाडेटा दिखाएं", "shared_link_edit_show_meta": "मेटाडेटा दिखाएं",

View File

@@ -1,28 +1,28 @@
{ {
"action_common_back": "Back", "action_common_back": "Vissza",
"action_common_cancel": "Mégsem", "action_common_cancel": "Mégsem",
"action_common_clear": "Clear", "action_common_clear": "Kitöröl",
"action_common_confirm": "Confirm", "action_common_confirm": "Jóváhagy",
"action_common_update": "Frissít", "action_common_update": "Frissít",
"add_to_album_bottom_sheet_added": "Hozzáadva a(z) {album} nevű albumhoz", "add_to_album_bottom_sheet_added": "Hozzáadva a(z) \"{album}\" albumhoz",
"add_to_album_bottom_sheet_already_exists": "Már eleme a(z) {album} nevű albumnak", "add_to_album_bottom_sheet_already_exists": "Már benne van a(z) \"{album}\" albumban",
"advanced_settings_log_level_title": "Naplózás szintje: {}", "advanced_settings_log_level_title": "Naplózás szintje: {}",
"advanced_settings_prefer_remote_subtitle": "Néhány eszköz fájdalmasan lassan tölti be az eszközön lévő elemeket. Ezzel a beállítással inkább a távoli képeket töltjük be helyette.", "advanced_settings_prefer_remote_subtitle": "Néhány eszköz fájdalmasan lassan tölti be az eszközön lévő bélyegképeket. Ezzel a beállítással inkább a távoli képeket töltjük be helyette.",
"advanced_settings_prefer_remote_title": "Távoli képek preferálása", "advanced_settings_prefer_remote_title": "Távoli képek előnyben részesítése",
"advanced_settings_self_signed_ssl_subtitle": "SSL tanúsítvány ellenőrzésének kihagyása a szerver végponthoz. Ehhez saját aláírt tanúsítványok szükségesek.", "advanced_settings_self_signed_ssl_subtitle": "Nem ellenőrzi a szerver SSL tanúsítványát. Önaláírt tanúsítvány esetén szükséges beállítás.",
"advanced_settings_self_signed_ssl_title": "Saját aláírt SSL tanúsítványok engedélyezése", "advanced_settings_self_signed_ssl_title": "Önaláírt SSL tanúsítványok engedélyezése",
"advanced_settings_tile_subtitle": "Haladó felhasználói beállítások", "advanced_settings_tile_subtitle": "Haladó felhasználói beállítások",
"advanced_settings_tile_title": "Haladó", "advanced_settings_tile_title": "Haladó",
"advanced_settings_troubleshooting_subtitle": "További funkciók engedélyezése hibaelhárítás céljából", "advanced_settings_troubleshooting_subtitle": "További funkciók engedélyezése hibaelhárítás céljából",
"advanced_settings_troubleshooting_title": "Hibaelhárítás", "advanced_settings_troubleshooting_title": "Hibaelhárítás",
"album_info_card_backup_album_excluded": "KIZÁRVA", "album_info_card_backup_album_excluded": "KIHAGYVA",
"album_info_card_backup_album_included": "BELEÉRTVE", "album_info_card_backup_album_included": "BELEÉRTVE",
"album_thumbnail_card_item": "1 elem", "album_thumbnail_card_item": "1 elem",
"album_thumbnail_card_items": "{} elem", "album_thumbnail_card_items": "{} elem",
"album_thumbnail_card_shared": "· Megosztott", "album_thumbnail_card_shared": "· Megosztott",
"album_thumbnail_owned": "Tulajdonos", "album_thumbnail_owned": "Tulajdonos",
"album_thumbnail_shared_by": "Megosztotta: {}", "album_thumbnail_shared_by": "Megosztotta: {}",
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?", "album_viewer_appbar_delete_confirm": "Biztos, hogy törölni szeretnéd ezt az albumot?",
"album_viewer_appbar_share_delete": "Album törlése", "album_viewer_appbar_share_delete": "Album törlése",
"album_viewer_appbar_share_err_delete": "Nem sikerült törölni az albumot", "album_viewer_appbar_share_err_delete": "Nem sikerült törölni az albumot",
"album_viewer_appbar_share_err_leave": "Nem sikerült kilépni az albumból", "album_viewer_appbar_share_err_leave": "Nem sikerült kilépni az albumból",
@@ -39,18 +39,18 @@
"app_bar_signout_dialog_title": "Kijelentkezés", "app_bar_signout_dialog_title": "Kijelentkezés",
"archive_page_no_archived_assets": "Nem található archivált elem", "archive_page_no_archived_assets": "Nem található archivált elem",
"archive_page_title": "Archívum ({})", "archive_page_title": "Archívum ({})",
"asset_action_delete_err_read_only": "Nem sikerült törölni a csak-olvasható elem(ek)et, így ezeket átugorjuk", "asset_action_delete_err_read_only": "Csak-olvasható elem(ek)et nem lehet törölni, így ezeket átugorjuk",
"asset_action_share_err_offline": "Nem sikerült betölteni az offline elem(ek)et, így ezeket kihagyjuk", "asset_action_share_err_offline": "Nem sikerült betölteni a kapcsolat nélküli elem(ek)et, így ezeket kihagyjuk",
"asset_list_group_by_sub_title": "Group by", "asset_list_group_by_sub_title": "Csoportosítás",
"asset_list_layout_settings_dynamic_layout_title": "Dinamikus elrendezés", "asset_list_layout_settings_dynamic_layout_title": "Dinamikus elrendezés",
"asset_list_layout_settings_group_automatically": "Automatikus", "asset_list_layout_settings_group_automatically": "Automatikus",
"asset_list_layout_settings_group_by": "Elemek csoportosítása", "asset_list_layout_settings_group_by": "Elemek csoportosítása",
"asset_list_layout_settings_group_by_month": "hónapok szerint", "asset_list_layout_settings_group_by_month": "hónapok szerint",
"asset_list_layout_settings_group_by_month_day": "hónap és nap szerint", "asset_list_layout_settings_group_by_month_day": "hónap és nap szerint",
"asset_list_layout_sub_title": "Layout", "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_viewer_settings_title": "Asset Viewer", "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",
"backup_album_selection_page_assets_scatter": "Egy elem több albumban is lehet. Ezért a mentéshez albumokat lehet hozzáadni vagy azokat a mentésből kihagyni.", "backup_album_selection_page_assets_scatter": "Egy elem több albumban is lehet. Ezért a mentéshez albumokat lehet hozzáadni vagy azokat a mentésből kihagyni.",
@@ -58,13 +58,13 @@
"backup_album_selection_page_selection_info": "Összegzés", "backup_album_selection_page_selection_info": "Összegzés",
"backup_album_selection_page_total_assets": "Összes egyedi elem", "backup_album_selection_page_total_assets": "Összes egyedi elem",
"backup_all": "Összes", "backup_all": "Összes",
"backup_background_service_backup_failed_message": "HIba a mentés közben. Újrapróbálkozás...", "backup_background_service_backup_failed_message": "Hiba a mentés közben. Újrapróbálkozás...",
"backup_background_service_connection_failed_message": "HIba a szerverhez való csatlakozás közben. Újrapróbálkozás...", "backup_background_service_connection_failed_message": "Hiba a szerverhez való csatlakozás közben. Újrapróbálkozás...",
"backup_background_service_current_upload_notification": "Feltöltés {}", "backup_background_service_current_upload_notification": "Feltöltés {}",
"backup_background_service_default_notification": "Új elemek keresése...", "backup_background_service_default_notification": "Új elemek keresése...",
"backup_background_service_error_title": "Hiba mentés közben", "backup_background_service_error_title": "Hiba mentés közben",
"backup_background_service_in_progress_notification": "Elemek mentés alatt..", "backup_background_service_in_progress_notification": "Elemek mentése folyamatban…",
"backup_background_service_upload_failure_notification": "Hiba feltöltés közben {}", "backup_background_service_upload_failure_notification": "Hiba a feltöltés közben {}",
"backup_controller_page_albums": "Albumok Mentése", "backup_controller_page_albums": "Albumok Mentése",
"backup_controller_page_background_app_refresh_disabled_content": "Engedélyezd a háttérben történő frissítést a Beállítások > Általános > Háttérben Frissítés menüpontban.", "backup_controller_page_background_app_refresh_disabled_content": "Engedélyezd a háttérben történő frissítést a Beállítások > Általános > Háttérben Frissítés menüpontban.",
"backup_controller_page_background_app_refresh_disabled_title": "Háttérben frissítés kikapcsolva", "backup_controller_page_background_app_refresh_disabled_title": "Háttérben frissítés kikapcsolva",
@@ -78,9 +78,9 @@
"backup_controller_page_background_delay": "Új elemek mentésének késleltetése: {}", "backup_controller_page_background_delay": "Új elemek mentésének késleltetése: {}",
"backup_controller_page_background_description": "Kapcsold be a háttérfolyamatot, hogy automatikusan mentsen elemeket az applikáció megnyitása nélkül", "backup_controller_page_background_description": "Kapcsold be a háttérfolyamatot, hogy automatikusan mentsen elemeket az applikáció megnyitása nélkül",
"backup_controller_page_background_is_off": "Automatikus mentés a háttérben ki van kapcsolva", "backup_controller_page_background_is_off": "Automatikus mentés a háttérben ki van kapcsolva",
"backup_controller_page_background_is_on": "Automatikus mentés a háttérben bekapcsolva", "backup_controller_page_background_is_on": "Automatikus mentés a háttérben be van kapcsolva",
"backup_controller_page_background_turn_off": "Háttérfolyamat kikapcsolása", "backup_controller_page_background_turn_off": "Háttérszolgáltatás kikapcsolása",
"backup_controller_page_background_turn_on": "Háttérfolyamat bekapcsolása", "backup_controller_page_background_turn_on": "Háttérszolgáltatás bekapcsolása",
"backup_controller_page_background_wifi": "Csak WiFi-n", "backup_controller_page_background_wifi": "Csak WiFi-n",
"backup_controller_page_backup": "Mentés", "backup_controller_page_backup": "Mentés",
"backup_controller_page_backup_selected": "Kiválasztva:", "backup_controller_page_backup_selected": "Kiválasztva:",
@@ -92,15 +92,15 @@
"backup_controller_page_failed": "Sikertelen ({})", "backup_controller_page_failed": "Sikertelen ({})",
"backup_controller_page_filename": "Fájlnév: {}[{}]", "backup_controller_page_filename": "Fájlnév: {}[{}]",
"backup_controller_page_id": "Azonosító: {}", "backup_controller_page_id": "Azonosító: {}",
"backup_controller_page_info": "Mentésinformációk", "backup_controller_page_info": "Mentési Információk",
"backup_controller_page_none_selected": "Egy sincs kiválasztva", "backup_controller_page_none_selected": "Egy sincs kiválasztva",
"backup_controller_page_remainder": "Hátralévő", "backup_controller_page_remainder": "Hátralévő",
"backup_controller_page_remainder_sub": "Hátralévő fotók és videók a kijelöltek közül", "backup_controller_page_remainder_sub": "Hátralévő fotók és videók a kijelöltek közül",
"backup_controller_page_select": "Kiválaszt", "backup_controller_page_select": "Kiválaszt",
"backup_controller_page_server_storage": "Szerver Tárhely", "backup_controller_page_server_storage": "Szerver Tárhely",
"backup_controller_page_start_backup": "Mentés Elindítása", "backup_controller_page_start_backup": "Mentés Indítása",
"backup_controller_page_status_off": "Automatikus mentés az előtérben kikapcsolva", "backup_controller_page_status_off": "Automatikus mentés az előtérben ki van kapcsolva",
"backup_controller_page_status_on": "Automatikus mentés az előtérben bekapcsolva", "backup_controller_page_status_on": "Automatikus mentés az előtérben be van kapcsolva",
"backup_controller_page_storage_format": "{} / {} felhasználva", "backup_controller_page_storage_format": "{} / {} felhasználva",
"backup_controller_page_to_backup": "Mentésre kijelölt albumok", "backup_controller_page_to_backup": "Mentésre kijelölt albumok",
"backup_controller_page_total": "Összesen", "backup_controller_page_total": "Összesen",
@@ -115,15 +115,15 @@
"backup_manual_in_progress": "Feltöltés már folyamatban. Próbáld meg később", "backup_manual_in_progress": "Feltöltés már folyamatban. Próbáld meg később",
"backup_manual_success": "Sikeres", "backup_manual_success": "Sikeres",
"backup_manual_title": "Feltöltés állapota", "backup_manual_title": "Feltöltés állapota",
"backup_options_page_title": "Backup options", "backup_options_page_title": "Biztonági mentés beállításai",
"cache_settings_album_thumbnails": "Library page thumbnails ({} assets)", "cache_settings_album_thumbnails": "Képtár oldalankénti bélyegképei ({} elem)",
"cache_settings_clear_cache_button": "Gyorsítótár kiürítése", "cache_settings_clear_cache_button": "Gyorsítótár kiürítése",
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.", "cache_settings_clear_cache_button_title": "Kiüríti az alkalmazás gyorsítótárát. Ez jelentősen kihat az alkalmazás teljesítményére, amíg a gyorsítótár újra nem épül.",
"cache_settings_duplicated_assets_clear_button": "KIÜRÍT", "cache_settings_duplicated_assets_clear_button": "KIÜRÍT",
"cache_settings_duplicated_assets_subtitle": "Fotók és videók, amiket az alkalmazás fekete listára tett", "cache_settings_duplicated_assets_subtitle": "Fotók és videók, amiket az alkalmazás fekete listára tett",
"cache_settings_duplicated_assets_title": "Duplikált Elemek ({})", "cache_settings_duplicated_assets_title": "Duplikált Elemek ({})",
"cache_settings_image_cache_size": "Kép gyorsítótár mérete ({} elem)", "cache_settings_image_cache_size": "Kép gyorsítótár mérete ({} elem)",
"cache_settings_statistics_album": "Mappa bélyegképei", "cache_settings_statistics_album": "Képtár bélyegképei",
"cache_settings_statistics_assets": "{} elem ({})", "cache_settings_statistics_assets": "{} elem ({})",
"cache_settings_statistics_full": "Teljes méretű képek", "cache_settings_statistics_full": "Teljes méretű képek",
"cache_settings_statistics_shared": "Megosztott album bélyegképei", "cache_settings_statistics_shared": "Megosztott album bélyegképei",
@@ -135,20 +135,20 @@
"cache_settings_tile_title": "Helyi Tárhely", "cache_settings_tile_title": "Helyi Tárhely",
"cache_settings_title": "Gyorsítótár Beállítások", "cache_settings_title": "Gyorsítótár Beállítások",
"change_password_form_confirm_password": "Jelszó Megerősítése", "change_password_form_confirm_password": "Jelszó Megerősítése",
"change_password_form_description": "Kedves {name}!\n\nMost jelentkezel be először a rendszerbe vagy más okból szükséges a jelszavad meváltoztatása. Kérjük, add meg új jelszavad.", "change_password_form_description": "Szia {name}!\n\nMost jelentkezel be először a rendszerbe vagy más okból szükséges a jelszavad meváltoztatása. Kérjük, add meg új jelszavad.",
"change_password_form_new_password": "Új Jelszó", "change_password_form_new_password": "Új Jelszó",
"change_password_form_password_mismatch": "A két beírt jelszó nem egyezik", "change_password_form_password_mismatch": "A beírt jelszavak nem egyeznek",
"change_password_form_reenter_new_password": "Jelszó (még egyszer)", "change_password_form_reenter_new_password": "Jelszó (még egyszer)",
"common_add_to_album": "Albumhoz ad", "common_add_to_album": "Albumhoz ad",
"common_change_password": "Jelszócsere", "common_change_password": "Jelszócsere",
"common_create_new_album": "Új album létrehozása", "common_create_new_album": "Új album létrehozása",
"common_server_error": "Kérjük, ellenőrizd a hálózati kapcsolatot, gondoskodj róla, hogy a szerver elérhető legyen, valamint az alkalmazás és a szerver kompatibilis verziójú legyen.", "common_server_error": "Kérjük, ellenőrizd a hálózati kapcsolatot, gondoskodj róla, hogy a szerver elérhető legyen, valamint az alkalmazás és a szerver kompatibilis verziójú legyen.",
"common_shared": "Megosztva", "common_shared": "Megosztva",
"control_bottom_app_bar_add_to_album": "Hozzáadás az albumhoz", "control_bottom_app_bar_add_to_album": "Albumhoz ad",
"control_bottom_app_bar_album_info": "{} elem", "control_bottom_app_bar_album_info": "{} elem",
"control_bottom_app_bar_album_info_shared": "{} elemek· Megosztva", "control_bottom_app_bar_album_info_shared": "{} elemek · Megosztva",
"control_bottom_app_bar_archive": "Archivál", "control_bottom_app_bar_archive": "Archivál",
"control_bottom_app_bar_create_new_album": "Album létrehozása", "control_bottom_app_bar_create_new_album": "Új album létrehozása",
"control_bottom_app_bar_delete": "Törlés", "control_bottom_app_bar_delete": "Törlés",
"control_bottom_app_bar_delete_from_immich": "Törlés az Immich-ből", "control_bottom_app_bar_delete_from_immich": "Törlés az Immich-ből",
"control_bottom_app_bar_delete_from_local": "Törlés az eszközről", "control_bottom_app_bar_delete_from_local": "Törlés az eszközről",
@@ -157,7 +157,7 @@
"control_bottom_app_bar_favorite": "Kedvenc", "control_bottom_app_bar_favorite": "Kedvenc",
"control_bottom_app_bar_share": "Megosztás", "control_bottom_app_bar_share": "Megosztás",
"control_bottom_app_bar_share_to": "Megosztás Ide", "control_bottom_app_bar_share_to": "Megosztás Ide",
"control_bottom_app_bar_stack": "Stack", "control_bottom_app_bar_stack": "Fotók csoportosítása",
"control_bottom_app_bar_trash_from_immich": "Lomtárba Helyez", "control_bottom_app_bar_trash_from_immich": "Lomtárba Helyez",
"control_bottom_app_bar_unarchive": "Nem Archivált", "control_bottom_app_bar_unarchive": "Nem Archivált",
"control_bottom_app_bar_unfavorite": "Nem Kedvenc", "control_bottom_app_bar_unfavorite": "Nem Kedvenc",
@@ -169,91 +169,93 @@
"create_shared_album_page_share_select_photos": "Fotók választása", "create_shared_album_page_share_select_photos": "Fotók választása",
"curated_location_page_title": "Helyek", "curated_location_page_title": "Helyek",
"curated_object_page_title": "Dolgok", "curated_object_page_title": "Dolgok",
"daily_title_text_date": "E, MMM dd", "daily_title_text_date": "MMM dd (E)",
"daily_title_text_date_year": "E, MMM dd, yyyy", "daily_title_text_date_year": "yyyy MMM dd (E)",
"date_format": "E, LLL d, yh:mm a", "date_format": "y LLL d (E)HH:mm",
"delete_dialog_alert": "Ezek az elemek véglegesen törölve lesznek Immich-ről és az eszközödről is", "delete_dialog_alert": "Ezek az elemek véglegesen törölve lesznek Immich-ről és az eszközödről is",
"delete_dialog_alert_local": "These items will be permanently removed from your device but still be available on the Immich server", "delete_dialog_alert_local": "Ezek az elemek véglegesen törölve lesznek az eszközödről, de továbbra is elérhetőek maradnak az Immich szerveren",
"delete_dialog_alert_local_non_backed_up": "Some of the items aren't backed up to Immich and will be permanently removed from your device", "delete_dialog_alert_local_non_backed_up": "Néhány elem nem lett elmentve az Immich szerverre és most véglegesen törölve lesznek az eszközödről is",
"delete_dialog_alert_remote": "These items will be permanently deleted from the Immich server", "delete_dialog_alert_remote": "Ezek az elemek véglegesen törlésre kerülnek az Immich szerverről",
"delete_dialog_cancel": "Mégse", "delete_dialog_cancel": "Mégsem",
"delete_dialog_ok": "Törlés", "delete_dialog_ok": "Törlés",
"delete_dialog_ok_force": "Delete Anyway", "delete_dialog_ok_force": "Törlés Mindenképp",
"delete_dialog_title": "Törlés véglegesen", "delete_dialog_title": "Végleges Törlés",
"delete_local_dialog_ok_backed_up_only": "Delete Backed Up Only", "delete_local_dialog_ok_backed_up_only": "Csak a Biztonsági Mentés Törlése",
"delete_local_dialog_ok_force": "Delete Anyway", "delete_local_dialog_ok_force": "Törlés Mindenképp",
"delete_shared_link_dialog_content": "Are you sure you want to delete this shared link?", "delete_shared_link_dialog_content": "Biztos, hogy törlöd ezt a megosztott linket?",
"delete_shared_link_dialog_title": "Delete Shared Link", "delete_shared_link_dialog_title": "Megosztott Link Törlése",
"description_input_hint_text": "Leírás hozzáadása...", "description_input_hint_text": "Leírás hozzáadása...",
"description_input_submit_error": "Nem sikerült frissíteni a leírást. További információért kérjük, nézd meg az eseménynaplót", "description_input_submit_error": "Nem sikerült frissíteni a leírást. További információért kérjük, nézd meg az eseménynaplót",
"edit_date_time_dialog_date_time": "Date and Time", "edit_date_time_dialog_date_time": "Dátum és Idő",
"edit_date_time_dialog_timezone": "Timezone", "edit_date_time_dialog_timezone": "Időzóna",
"edit_location_dialog_title": "Location", "edit_location_dialog_title": "Hely",
"exif_bottom_sheet_description": "Leírás hozzáadása...", "exif_bottom_sheet_description": "Leírás Hozzáadása...",
"exif_bottom_sheet_details": "RÉSZLETEK", "exif_bottom_sheet_details": "RÉSZLETEK",
"exif_bottom_sheet_location": "HELYSZÍN", "exif_bottom_sheet_location": "HELY",
"exif_bottom_sheet_location_add": "Add a location", "exif_bottom_sheet_location_add": "Hely hozzáadása",
"exif_bottom_sheet_people": "PEOPLE", "exif_bottom_sheet_people": "EMBEREK",
"exif_bottom_sheet_person_add_person": "Add name", "exif_bottom_sheet_person_add_person": "Név hozzáadása",
"experimental_settings_new_asset_list_subtitle": "Fejlesztés alatt", "experimental_settings_new_asset_list_subtitle": "Fejlesztés alatt",
"experimental_settings_new_asset_list_title": "Enable experimental photo grid", "experimental_settings_new_asset_list_title": "Kisérleti képrács engedélyezése",
"experimental_settings_subtitle": "Csak saját felelősségre használd", "experimental_settings_subtitle": "Csak saját felelősségre használd!",
"experimental_settings_title": "Kísérleti", "experimental_settings_title": "Kísérleti",
"favorites_page_no_favorites": "Nem található kedvencnek jelölt média", "favorites_page_no_favorites": "Nem található kedvencnek jelölt elem",
"favorites_page_title": "Kedvencek", "favorites_page_title": "Kedvencek",
"home_page_add_to_album_conflicts": "Added {added} assets to album {album}. {failed} assets are already in the album.", "haptic_feedback_switch": "Rezgéses visszajelzés engedélyezése",
"home_page_add_to_album_err_local": "Helyi médiát még nem lehet albumba tenni. Kihagyjuk.", "haptic_feedback_title": "Rezgéses Visszajelzés",
"home_page_add_to_album_success": "Added {added} assets to album {album}.", "home_page_add_to_album_conflicts": "{added} elem hozzáadva a(z) \"{album}\" albumhoz. {failed} elem már eleve az albumban volt.",
"home_page_album_err_partner": "Can not add partner assets to an album yet, skipping", "home_page_add_to_album_err_local": "Helyi elemeket még nem lehet albumba tenni. Kihagyjuk.",
"home_page_archive_err_local": "Helyi média archiválása még nem támogatott, úgyhogy kihagyjuk", "home_page_add_to_album_success": "{added} elem hozzáadva a(z) \"{album}\" albumhoz.",
"home_page_archive_err_partner": "Can not archive partner assets, skipping", "home_page_album_err_partner": "Még nem lehet a partner elemeit albumokhoz adni, úghogy kihagyjuk.",
"home_page_building_timeline": "Building the timeline", "home_page_archive_err_local": "Helyi elemek archiválása még nem támogatott, úgyhogy kihagyjuk",
"home_page_delete_err_partner": "Can not delete partner assets, skipping", "home_page_archive_err_partner": "Partner elemeit nem lehet archiválni, úgyhogy kihagyjuk",
"home_page_delete_remote_err_local": "Local assets in delete remote selection, skipping", "home_page_building_timeline": "Idővonal összeállítása",
"home_page_favorite_err_local": "Helyi médiát még nem lehet a kedvencek közé tenni. Kihagyjuk.", "home_page_delete_err_partner": "Partner elemeit nem lehet törölni, úgyhogy kihagyjuk",
"home_page_favorite_err_partner": "Can not favorite partner assets yet, skipping", "home_page_delete_remote_err_local": "Helyi elemek vannak távoli törlésre kiválasztva, úgyhogy ezeket kihagyjuk",
"home_page_first_time_notice": "If this is your first time using the app, please make sure to choose a backup album(s) so that the timeline can populate photos and videos in the album(s).", "home_page_favorite_err_local": "Helyi elemeket még nem lehet a kedvencek közé tenni, úgyhogy ezeket kihagyjuk",
"home_page_share_err_local": "Can not share local assets via link, skipping", "home_page_favorite_err_partner": "Partner elemeit még nem lehet a kedvencek közé tenni, úgyhogy ezeket kihagyjuk",
"home_page_upload_err_limit": "Csak 30 elemet tudsz egyszerre feltölteni, átugrás", "home_page_first_time_notice": "Ha most használod először az alkalmazást, akkor ahhoz, hogy megjelenjenek a fotók és a videók az idővonaladon, állítsd be, hogy melyik albumaidról készüljön biztonsági mentés.",
"home_page_share_err_local": "Helyi elemekről nem lehet megosztási linket készíteni, úgyhogy kihagyjuk",
"home_page_upload_err_limit": "Csak 30 elemet tudsz egyszerre feltölteni, úgyhogy kihagyjuk",
"image_viewer_page_state_provider_download_error": "Letöltési Hiba", "image_viewer_page_state_provider_download_error": "Letöltési Hiba",
"image_viewer_page_state_provider_download_started": "Letöltés elindult", "image_viewer_page_state_provider_download_started": "Letöltés Megkezdődött",
"image_viewer_page_state_provider_download_success": "Letöltés Sikeres", "image_viewer_page_state_provider_download_success": "Letöltés Sikeres",
"image_viewer_page_state_provider_share_error": "Share Error", "image_viewer_page_state_provider_share_error": "Megosztási Hiba",
"library_page_albums": "Albumok", "library_page_albums": "Albumok",
"library_page_archive": "Archívum", "library_page_archive": "Archívum",
"library_page_device_albums": "Albumok az Eszközön", "library_page_device_albums": "Albumok az Eszközön",
"library_page_favorites": "Kedvencek", "library_page_favorites": "Kedvencek",
"library_page_new_album": "Új album", "library_page_new_album": "Új album",
"library_page_sharing": "Megosztás\n", "library_page_sharing": "Megosztás",
"library_page_sort_asset_count": "Number of assets", "library_page_sort_asset_count": "Eszközök száma",
"library_page_sort_created": "Legutoljára létrehozott", "library_page_sort_created": "Létrehozás ideje",
"library_page_sort_last_modified": "Last modified", "library_page_sort_last_modified": "Utolsó módosítás ideje",
"library_page_sort_most_oldest_photo": "Oldest photo", "library_page_sort_most_oldest_photo": "Legrégebbi fotó",
"library_page_sort_most_recent_photo": "Most recent photo", "library_page_sort_most_recent_photo": "Legújabb fotó",
"library_page_sort_title": "Album címe", "library_page_sort_title": "Album címe",
"location_picker_choose_on_map": "Choose on map", "location_picker_choose_on_map": "Válassz a térképen",
"location_picker_latitude": "Latitude", "location_picker_latitude": "Szélességi kör",
"location_picker_latitude_error": "Enter a valid latitude", "location_picker_latitude_error": "Érvényes szélességi kört írj be",
"location_picker_latitude_hint": "Enter your latitude here", "location_picker_latitude_hint": "Ide írd a szélességi kört",
"location_picker_longitude": "Longitude", "location_picker_longitude": "Hosszúsági kör",
"location_picker_longitude_error": "Enter a valid longitude", "location_picker_longitude_error": "Érvényes hosszúsági kört írj be",
"location_picker_longitude_hint": "Enter your longitude here", "location_picker_longitude_hint": "Ide írd a hosszúsági kört",
"login_disabled": "A bejelentkezés letiltva", "login_disabled": "A bejelentkezés letiltva",
"login_form_api_exception": "API hiba. Kérljük, ellenőrid a szerver címét, majd próbáld újra.", "login_form_api_exception": "API hiba. Kérljük, ellenőrid a szerver címét, majd próbáld újra.",
"login_form_back_button_text": "Back", "login_form_back_button_text": "Vissza",
"login_form_button_text": "Bejelentkezés", "login_form_button_text": "Bejelentkezés",
"login_form_email_hint": "email@cimed.hu", "login_form_email_hint": "email@cimed.hu",
"login_form_endpoint_hint": "http://szerver-címe:port/api", "login_form_endpoint_hint": "http(s)://szerver-címe:port/api",
"login_form_endpoint_url": "Szerver címe", "login_form_endpoint_url": "Szerver címe",
"login_form_err_http": "Kérem, adjon meg egy http:// vagy https:// címet", "login_form_err_http": "Kérjük, adj meg egy http:// vagy https:// címet",
"login_form_err_invalid_email": "Érvénytelen email cím", "login_form_err_invalid_email": "Érvénytelen email cím",
"login_form_err_invalid_url": "Érvénytelen cím", "login_form_err_invalid_url": "Érvénytelen cím",
"login_form_err_leading_whitespace": "Az első karakter szóköz", "login_form_err_leading_whitespace": "Az első karakter szóköz",
"login_form_err_trailing_whitespace": "Az utolsó karakter szóköz", "login_form_err_trailing_whitespace": "Az utolsó karakter szóköz",
"login_form_failed_get_oauth_server_config": "Error logging using OAuth, check server URL", "login_form_failed_get_oauth_server_config": "Nem sikerült az OAuth bejelentkezés. Ellenőrizd a szerver címét.",
"login_form_failed_get_oauth_server_disable": "OAuth feature is not available on this server", "login_form_failed_get_oauth_server_disable": "OAuth bejelentkezés nem elérhető ezen a szerveren",
"login_form_failed_login": "Hiba bejelentkezés közben, ellenőrizd a címet, email-t és a jelszót", "login_form_failed_login": "Hiba bejelentkezés közben, ellenőrizd a címet, email-t és a jelszót",
"login_form_handshake_exception": "There was an Handshake Exception with the server. Enable self-signed certificate support in the settings if you are using a self-signed certificate.", "login_form_handshake_exception": "SSL Kézfogási Hiba törént. Engedélyezd az önaláírt tanúsítvényokat a beállításokban, hogy ha önaláírt tanúsítványt használsz.",
"login_form_label_email": "Email", "login_form_label_email": "Email",
"login_form_label_password": "Jelszó", "login_form_label_password": "Jelszó",
"login_form_next_button": "Következő", "login_form_next_button": "Következő",
@@ -261,60 +263,61 @@
"login_form_save_login": "Maradjon bejelentkezve", "login_form_save_login": "Maradjon bejelentkezve",
"login_form_server_empty": "Add meg a szerver címét.", "login_form_server_empty": "Add meg a szerver címét.",
"login_form_server_error": "Nem sikerült kapcsolódni a szerverhez.", "login_form_server_error": "Nem sikerült kapcsolódni a szerverhez.",
"login_password_changed_error": "There was an error updating your password", "login_password_changed_error": "Nem sikerült módosítani a jelszót",
"login_password_changed_success": "Password updated successfully", "login_password_changed_success": "Jelszó sikeresen módosítva",
"map_assets_in_bound": "{} photo", "map_assets_in_bound": "{} fotó",
"map_assets_in_bounds": "{} photos", "map_assets_in_bounds": "{} fotó",
"map_cannot_get_user_location": "Cannot get user's location", "map_cannot_get_user_location": "A helymeghatározás nem sikerült",
"map_location_dialog_cancel": "Cancel", "map_location_dialog_cancel": "Mégsem",
"map_location_dialog_yes": "Yes", "map_location_dialog_yes": "Igen",
"map_location_picker_page_use_location": "Use this location", "map_location_picker_page_use_location": "Kiválasztott hely használata",
"map_location_service_disabled_content": "Location service needs to be enabled to display assets from your current location. Do you want to enable it now?", "map_location_service_disabled_content": "A helymeghatározás szolgáltatást engedélyezni kell a jelenlegi helyednél lévő elemek megjelenítéséhez. Szeretnéd most engedélyezni?",
"map_location_service_disabled_title": "Location Service disabled", "map_location_service_disabled_title": "Helymeghatározás Szolgáltatás letiltva",
"map_no_assets_in_bounds": "No photos in this area", "map_no_assets_in_bounds": "Nincsenek fotók a környéken",
"map_no_location_permission_content": "Location permission is needed to display assets from your current location. Do you want to allow it now?", "map_no_location_permission_content": "A helymeghatározást engedélyezni kell a jelenlegi helyednél lévő elemek megjelenítéséhez. Szeretnéd most engedélyezni?",
"map_no_location_permission_title": "Location Permission denied", "map_no_location_permission_title": "Helymeghatározás letiltva",
"map_settings_dark_mode": "Dark mode", "map_settings_dark_mode": "Sötét mód",
"map_settings_date_range_option_all": "All", "map_settings_date_range_option_all": "Összes",
"map_settings_date_range_option_day": "Past 24 hours", "map_settings_date_range_option_day": "Elmúlt 24 óra",
"map_settings_date_range_option_days": "Past {} days", "map_settings_date_range_option_days": "Elmúlt {} nap",
"map_settings_date_range_option_year": "Past year", "map_settings_date_range_option_year": "Elmúlt év",
"map_settings_date_range_option_years": "Past {} years", "map_settings_date_range_option_years": "Elmúlt {} év",
"map_settings_dialog_cancel": "Cancel", "map_settings_dialog_cancel": "Mégsem",
"map_settings_dialog_save": "Save", "map_settings_dialog_save": "Mentés",
"map_settings_dialog_title": "Map Settings", "map_settings_dialog_title": "Térkép Beállítások",
"map_settings_include_show_archived": "Include Archived", "map_settings_include_show_archived": "Archívokkal Együtt",
"map_settings_include_show_partners": "Include Partners", "map_settings_include_show_partners": "Partnerével Együtt",
"map_settings_only_relative_range": "Date range", "map_settings_only_relative_range": "Dátum intervallum",
"map_settings_only_show_favorites": "Show Favorite Only", "map_settings_only_show_favorites": "Csak Kedvencek Mutatása",
"map_settings_theme_settings": "Map Theme", "map_settings_theme_settings": "Térkép Témája",
"map_zoom_to_see_photos": "Zoom out to see photos", "map_zoom_to_see_photos": "Kicsinyíts, hogy láss fényképeket",
"memories_all_caught_up": "All caught up", "memories_all_caught_up": "Naprakész vagy",
"memories_check_back_tomorrow": "Check back tomorrow for more memories", "memories_check_back_tomorrow": "Nézz vissza holnap újabb emlékekért",
"memories_start_over": "Start Over", "memories_start_over": "Újrakezdés",
"memories_swipe_to_close": "Swipe up to close", "memories_swipe_to_close": "Bezáráshoz söpörd ki felfelé",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "y MMMM",
"motion_photos_page_title": "Mozgó Fotók", "motion_photos_page_title": "Mozgó Fotók",
"multiselect_grid_edit_date_time_err_read_only": "Cannot edit date of read only asset(s), skipping", "multiselect_grid_edit_date_time_err_read_only": "Csak-olvasható elem(ek) dátuma nem módosítható, ezért kihagyjuk",
"multiselect_grid_edit_gps_err_read_only": "Cannot edit location of read only asset(s), skipping", "multiselect_grid_edit_gps_err_read_only": "Csak-olvasható elem(ek) helyszíne nem módosítható, ezért kihagyjuk",
"no_assets_to_show": "Nincs megjeleníthető elem",
"notification_permission_dialog_cancel": "Mégsem", "notification_permission_dialog_cancel": "Mégsem",
"notification_permission_dialog_content": "Az értesítések bekapcsolásához a Beállítások menüben válaszd ki az Engedélyezés-t.", "notification_permission_dialog_content": "Az értesítések bekapcsolásához a Beállítások menüben válaszd ki az Engedélyezés-t.",
"notification_permission_dialog_settings": "Beállítások", "notification_permission_dialog_settings": "Beállítások",
"notification_permission_list_tile_content": "Értesítések engedélyezése", "notification_permission_list_tile_content": "Értesítések engedélyezése",
"notification_permission_list_tile_enable_button": "Értesítések Bekapcsolása", "notification_permission_list_tile_enable_button": "Értesítések Bekapcsolása",
"notification_permission_list_tile_title": "Engedély az Értesítésekhez", "notification_permission_list_tile_title": "Engedély az Értesítésekhez",
"partner_list_user_photos": "{user}'s photos", "partner_list_user_photos": "{user} fényképei",
"partner_list_view_all": "View all", "partner_list_view_all": "Összes mutatása",
"partner_page_add_partner": "Add partner", "partner_page_add_partner": "Partner hozzáadása",
"partner_page_empty_message": "Your photos are not yet shared with any partner.", "partner_page_empty_message": "Még senkivel nem osztottad meg a fényképeidet.",
"partner_page_no_more_users": "No more users to add", "partner_page_no_more_users": "Nincs hozzáadható felhasználó",
"partner_page_partner_add_failed": "Failed to add partner", "partner_page_partner_add_failed": "Nem sikerült hozzáadni a felhasználót",
"partner_page_select_partner": "Select partner", "partner_page_select_partner": "Partner kiválasztása",
"partner_page_shared_to_title": "Shared to", "partner_page_shared_to_title": "Megosztva: ",
"partner_page_stop_sharing_content": "{} will no longer be able to access your photos.", "partner_page_stop_sharing_content": "{} nem fog többé hozzáférni a fotóidhoz.",
"partner_page_stop_sharing_title": "Stop sharing your photos?", "partner_page_stop_sharing_title": "Fotók megosztásának megszűntetése?",
"partner_page_title": "Partner", "partner_page_title": "Partner",
"permission_onboarding_back": "Back", "permission_onboarding_back": "Vissza",
"permission_onboarding_continue_anyway": "Folytatás mindenképp", "permission_onboarding_continue_anyway": "Folytatás mindenképp",
"permission_onboarding_get_started": "Kezdjük el", "permission_onboarding_get_started": "Kezdjük el",
"permission_onboarding_go_to_settings": "Beállítások megnyitása", "permission_onboarding_go_to_settings": "Beállítások megnyitása",
@@ -324,47 +327,47 @@
"permission_onboarding_permission_granted": "Hozzáférés engedélyezve! Minden készen áll.", "permission_onboarding_permission_granted": "Hozzáférés engedélyezve! Minden készen áll.",
"permission_onboarding_permission_limited": "Korlátozott hozzáférés. Ha szeretnéd, hogy az Immich a teljes galéria gyűjteményedet mentse és kezelje, akkor a Beállításokban engedélyezd a fotó és videó jogosultságokat.", "permission_onboarding_permission_limited": "Korlátozott hozzáférés. Ha szeretnéd, hogy az Immich a teljes galéria gyűjteményedet mentse és kezelje, akkor a Beállításokban engedélyezd a fotó és videó jogosultságokat.",
"permission_onboarding_request": "Engedélyezni kell, hogy az Immich hozzáférjen a képekhez és videókhoz", "permission_onboarding_request": "Engedélyezni kell, hogy az Immich hozzáférjen a képekhez és videókhoz",
"preferences_settings_title": "Preferences", "preferences_settings_title": "Beállítások",
"profile_drawer_app_logs": "Naplók", "profile_drawer_app_logs": "Naplók",
"profile_drawer_client_out_of_date_major": "Mobile App is out of date. Please update to the latest major version.", "profile_drawer_client_out_of_date_major": "A mobilalkalmazás elavult. Kérjük, frissítsd a legfrisebb főverzióra.",
"profile_drawer_client_out_of_date_minor": "Mobile App is out of date. Please update to the latest minor version.", "profile_drawer_client_out_of_date_minor": "A mobilalkalmazás elavult. Kérjük, frissítsd a legfrisebb alverzióra.",
"profile_drawer_client_server_up_to_date": "Kliens és a szerver is naprakész", "profile_drawer_client_server_up_to_date": "Kliens és a szerver is naprakész",
"profile_drawer_documentation": "Documentation", "profile_drawer_documentation": "Dokumentáció",
"profile_drawer_github": "GitHub", "profile_drawer_github": "GitHub",
"profile_drawer_server_out_of_date_major": "Server is out of date. Please update to the latest major version.", "profile_drawer_server_out_of_date_major": "A szerver elavult. Kérjük, frissítsd a legfrisebb főverzióra.",
"profile_drawer_server_out_of_date_minor": "Server is out of date. Please update to the latest minor version.", "profile_drawer_server_out_of_date_minor": "A szerver elavult. Kérjük, frissítsd a legfrisebb alverzióra.",
"profile_drawer_settings": "Beállítások", "profile_drawer_settings": "Beállítások",
"profile_drawer_sign_out": "Kijelentkezés", "profile_drawer_sign_out": "Kijelentkezés",
"profile_drawer_trash": "Trash", "profile_drawer_trash": "Lomtár",
"recently_added_page_title": "Nemrég Hozzáadott", "recently_added_page_title": "Nemrég Hozzáadott",
"scaffold_body_error_occurred": "Error occurred", "scaffold_body_error_occurred": "Hiba történt",
"search_bar_hint": "Keress a fotóid között", "search_bar_hint": "Fotók keresése",
"search_filter_apply": "Apply filter", "search_filter_apply": "Szűrő alkalmazása",
"search_filter_camera_make": "Make", "search_filter_camera_make": "Gyártó",
"search_filter_camera_model": "Model", "search_filter_camera_model": "Modell",
"search_filter_display_option_archive": "Archive", "search_filter_display_option_archive": "Archivált",
"search_filter_display_option_favorite": "Favorite", "search_filter_display_option_favorite": "Kedvenc",
"search_filter_display_option_not_in_album": "Not in album", "search_filter_display_option_not_in_album": "Nincs albumban",
"search_filter_location_city": "City", "search_filter_location_city": "Város",
"search_filter_location_country": "Country", "search_filter_location_country": "Ország",
"search_filter_location_state": "State", "search_filter_location_state": "Állam",
"search_filter_media_type_all": "All", "search_filter_media_type_all": "Összes",
"search_filter_media_type_image": "Image", "search_filter_media_type_image": "Kép",
"search_filter_media_type_video": "Video", "search_filter_media_type_video": "Videó",
"search_page_categories": "Kategóriák", "search_page_categories": "Kategóriák",
"search_page_favorites": "Kedvencek", "search_page_favorites": "Kedvencek",
"search_page_motion_photos": "Mozgó Fotók", "search_page_motion_photos": "Mozgó Fotók",
"search_page_no_objects": "No Objects Info Available", "search_page_no_objects": "Nincs Információ a Tárgyakról",
"search_page_no_places": "Helyinformáció nem érhető el", "search_page_no_places": "Nincs Információ a Helyszínekről",
"search_page_people": "Emberek", "search_page_people": "Emberek",
"search_page_person_add_name_dialog_cancel": "Cancel", "search_page_person_add_name_dialog_cancel": "Mégsem",
"search_page_person_add_name_dialog_hint": "Name", "search_page_person_add_name_dialog_hint": "Név",
"search_page_person_add_name_dialog_save": "Save", "search_page_person_add_name_dialog_save": "Mentés",
"search_page_person_add_name_dialog_title": "Add a name", "search_page_person_add_name_dialog_title": "Név hozzáadása",
"search_page_person_add_name_subtitle": "Find them fast by name with search", "search_page_person_add_name_subtitle": "Név szerint gyorsan megtalálhatod a keresőben",
"search_page_person_add_name_title": "Add a name", "search_page_person_add_name_title": "Név hozzáadása",
"search_page_person_edit_name": "Edit name", "search_page_person_edit_name": "Név módosítása",
"search_page_places": "Helyszínek", "search_page_places": "Helyek",
"search_page_recently_added": "Nemrég hozzáadott", "search_page_recently_added": "Nemrég hozzáadott",
"search_page_screenshots": "Képernyőképek", "search_page_screenshots": "Képernyőképek",
"search_page_selfies": "Szelfik", "search_page_selfies": "Szelfik",
@@ -372,7 +375,7 @@
"search_page_videos": "Videók", "search_page_videos": "Videók",
"search_page_view_all_button": "Összes mutatása", "search_page_view_all_button": "Összes mutatása",
"search_page_your_activity": "Tevékenységeid", "search_page_your_activity": "Tevékenységeid",
"search_page_your_map": "Your Map", "search_page_your_map": "Térképed",
"search_result_page_new_search_hint": "Új keresés", "search_result_page_new_search_hint": "Új keresés",
"search_suggestion_list_smart_search_hint_1": "Az intelligens keresés alapértelmezetten be van kapcsolva, metaadatokat így kereshetsz", "search_suggestion_list_smart_search_hint_1": "Az intelligens keresés alapértelmezetten be van kapcsolva, metaadatokat így kereshetsz",
"search_suggestion_list_smart_search_hint_2": "m:keresési-kifejezés", "search_suggestion_list_smart_search_hint_2": "m:keresési-kifejezés",
@@ -380,135 +383,138 @@
"select_user_for_sharing_page_err_album": "Nem sikerült létrehozni az albumot", "select_user_for_sharing_page_err_album": "Nem sikerült létrehozni az albumot",
"select_user_for_sharing_page_share_suggestions": "Javaslatok", "select_user_for_sharing_page_share_suggestions": "Javaslatok",
"server_info_box_app_version": "Alkalmazás Verzió", "server_info_box_app_version": "Alkalmazás Verzió",
"server_info_box_latest_release": "Latest Version", "server_info_box_latest_release": "Legfrissebb Verzió",
"server_info_box_server_url": "Server URL", "server_info_box_server_url": "Szerver Címe",
"server_info_box_server_version": "Szerver Verzió", "server_info_box_server_version": "Szerver Verzió",
"setting_image_viewer_help": "The detail viewer loads the small thumbnail first, then loads the medium-size preview (if enabled), finally loads the original (if enabled).", "setting_image_viewer_help": "A képnézegető először a kis bélyegképet tölti be, aztán a közepes méretű előnézetet (ha elérhető), végül az eredetit (ha elérhető).",
"setting_image_viewer_original_subtitle": "Enable to load the original full-resolution image (large!). Disable to reduce data usage (both network and on device cache).", "setting_image_viewer_original_subtitle": "Engedélyezi az eredeti teljes felbontású kép betöltését (nagy!). Kikapcsolva csökkenti az adathasználatot (a neten és az eszköz gyorsítótárán is).",
"setting_image_viewer_original_title": "Load original image", "setting_image_viewer_original_title": "Eredeti kép betöltése",
"setting_image_viewer_preview_subtitle": "Enable to load a medium-resolution image. Disable to either directly load the original or only use the thumbnail.", "setting_image_viewer_preview_subtitle": "Engedélyezi a közepes felbontású kép betöltését. Kikapcsolva vagy az eredeti kép töltődik be, vagy csak a bélyegkép.",
"setting_image_viewer_preview_title": "Load preview image", "setting_image_viewer_preview_title": "Előnézet betöltése",
"setting_languages_apply": "Apply", "setting_languages_apply": "Alkalmaz",
"setting_languages_title": "Languages", "setting_languages_title": "Nyelvek",
"setting_notifications_notify_failures_grace_period": "Notify background backup failures: {}", "setting_notifications_notify_failures_grace_period": "Értesítés a háttérben történő mentés hibáiról: {}",
"setting_notifications_notify_hours": "{} óra", "setting_notifications_notify_hours": "{} óra",
"setting_notifications_notify_immediately": "azonnal", "setting_notifications_notify_immediately": "azonnal",
"setting_notifications_notify_minutes": "{} perc", "setting_notifications_notify_minutes": "{} perc",
"setting_notifications_notify_never": "soha", "setting_notifications_notify_never": "soha",
"setting_notifications_notify_seconds": "{} másodperc", "setting_notifications_notify_seconds": "{} másodperc",
"setting_notifications_single_progress_subtitle": "Detailed upload progress information per asset", "setting_notifications_single_progress_subtitle": "Részletes feltöltési folyamat információ minden elemről",
"setting_notifications_single_progress_title": "Show background backup detail progress", "setting_notifications_single_progress_title": "Mutassa a háttérben történő mentés részletes folyamatát",
"setting_notifications_subtitle": "Adjust your notification preferences", "setting_notifications_subtitle": "Értesítési beállítások módosítása",
"setting_notifications_title": "Értesítések", "setting_notifications_title": "Értesítések",
"setting_notifications_total_progress_subtitle": "Overall upload progress (done/total assets)", "setting_notifications_total_progress_subtitle": "Átfogó feltöltési folyamat (kész/összes elem)",
"setting_notifications_total_progress_title": "Show background backup total progress", "setting_notifications_total_progress_title": "Mutassa a háttérben történő mentés teljes folyamatát",
"setting_pages_app_bar_settings": "Beállítások", "setting_pages_app_bar_settings": "Beállítások",
"settings_require_restart": "Kérlek indítsd újra az Immich-et hogy alkalmazd ezt a beállítást", "settings_require_restart": "Ennek a beállításnak az érvénybe lépéséhez indítsd újra az Immich-et",
"share_add": "Hozzáadás", "share_add": "Hozzáadás",
"share_add_photos": "Fotók hozzáadása", "share_add_photos": "Fotók hozzáadása",
"share_add_title": "Album neve", "share_add_title": "Album neve",
"share_assets_selected": "{} kiválasztva",
"share_create_album": "Album létrehozása", "share_create_album": "Album létrehozása",
"shared_album_activities_input_disable": "Comment is disabled", "shared_album_activities_input_disable": "Hozzászólások kikapcsolva",
"shared_album_activities_input_hint": "Say something", "shared_album_activities_input_hint": "Szólj hozzá",
"shared_album_activity_remove_content": "Do you want to delete this activity?", "shared_album_activity_remove_content": "Törölni szeretnéd ezt a tevékenységet?",
"shared_album_activity_remove_title": "Delete Activity", "shared_album_activity_remove_title": "Tevékenység Törlése",
"shared_album_activity_setting_subtitle": "Let others respond", "shared_album_activity_setting_subtitle": "Engedd, hogy mások reagáljanak",
"shared_album_activity_setting_title": "Comments & likes", "shared_album_activity_setting_title": "Hozzászólások és lájkok",
"shared_album_section_people_action_error": "Error leaving/removing from album", "shared_album_section_people_action_error": "Hiba az albummal kapcsolatos kilépés/eltávolítás közben",
"shared_album_section_people_action_leave": "Remove user from album", "shared_album_section_people_action_leave": "Felhasználó eltávolítása az albumból",
"shared_album_section_people_action_remove_user": "Remove user from album", "shared_album_section_people_action_remove_user": "Felhasználó eltávolítása az albumból",
"shared_album_section_people_owner_label": "Owner", "shared_album_section_people_owner_label": "Tulajdonos",
"shared_album_section_people_title": "PEOPLE", "shared_album_section_people_title": "EMBEREK",
"share_dialog_preparing": "Előkészítés...", "share_dialog_preparing": "Előkészítés...",
"shared_link_app_bar_title": "Shared Links", "shared_link_app_bar_title": "Megosztott Linkek",
"shared_link_clipboard_copied_massage": "Copied to clipboard", "shared_link_clipboard_copied_massage": "Vágólapra másolva",
"shared_link_clipboard_text": "Link: {}\nPassword: {}", "shared_link_clipboard_text": "Link: {}\nJelszó: {}",
"shared_link_create_app_bar_title": "Create link to share", "shared_link_create_app_bar_title": "Megosztási link létrehozása",
"shared_link_create_error": "Error while creating shared link", "shared_link_create_error": "Hiba a megosztási link létrehozásakor",
"shared_link_create_info": "Let anyone with the link see the selected photo(s)", "shared_link_create_info": "A linket használva bárki megnézheti a kiválasztott kép(ek)et",
"shared_link_create_submit_button": "Create link", "shared_link_create_submit_button": "Link létrehozása",
"shared_link_edit_allow_download": "Allow public user to download", "shared_link_edit_allow_download": "Letöltés engedélyezése",
"shared_link_edit_allow_upload": "Allow public user to upload", "shared_link_edit_allow_upload": "Feltöltés engedélyezése",
"shared_link_edit_app_bar_title": "Edit link", "shared_link_edit_app_bar_title": "Link módosítása",
"shared_link_edit_change_expiry": "Change expiration time", "shared_link_edit_change_expiry": "Lejárati idő megváltoztatása",
"shared_link_edit_description": "Description", "shared_link_edit_description": "Leírás",
"shared_link_edit_description_hint": "Enter the share description", "shared_link_edit_description_hint": "Add meg a megosztás leírását",
"shared_link_edit_expire_after": "Expire after", "shared_link_edit_expire_after": "Lejárati idő",
"shared_link_edit_expire_after_option_day": "1 day", "shared_link_edit_expire_after_option_day": "1 nap",
"shared_link_edit_expire_after_option_days": "{} days", "shared_link_edit_expire_after_option_days": "{} nap",
"shared_link_edit_expire_after_option_hour": "1 hour", "shared_link_edit_expire_after_option_hour": "1 óra",
"shared_link_edit_expire_after_option_hours": "{} hours", "shared_link_edit_expire_after_option_hours": "{} óra",
"shared_link_edit_expire_after_option_minute": "1 minute", "shared_link_edit_expire_after_option_minute": "1 perc",
"shared_link_edit_expire_after_option_minutes": "{} minutes", "shared_link_edit_expire_after_option_minutes": "{} perc",
"shared_link_edit_expire_after_option_never": "Never", "shared_link_edit_expire_after_option_months": "{} hónap",
"shared_link_edit_password": "Password", "shared_link_edit_expire_after_option_never": "Soha",
"shared_link_edit_password_hint": "Enter the share password", "shared_link_edit_expire_after_option_year": "{} év",
"shared_link_edit_show_meta": "Show metadata", "shared_link_edit_password": "Jelszó",
"shared_link_edit_submit_button": "Update link", "shared_link_edit_password_hint": "Add meg a megosztási jelszót",
"shared_link_empty": "You don't have any shared links", "shared_link_edit_show_meta": "Metaadatok mutatása",
"shared_link_error_server_url_fetch": "Cannot fetch the server url", "shared_link_edit_submit_button": "Link frissítése",
"shared_link_expired": "Expired", "shared_link_empty": "Nincsenek megosztási linkek",
"shared_link_expires_day": "Expires in {} day", "shared_link_error_server_url_fetch": "A szerver címét nem sikerült betölteni",
"shared_link_expires_days": "Expires in {} days", "shared_link_expired": "Lejárt",
"shared_link_expires_hour": "Expires in {} hour", "shared_link_expires_day": "{} nap múlva lejár",
"shared_link_expires_hours": "Expires in {} hours", "shared_link_expires_days": "{} nap múlva lejár",
"shared_link_expires_minute": "Expires in {} minute", "shared_link_expires_hour": "{} óra múlva lejár",
"shared_link_expires_minutes": "Expires in {} minutes", "shared_link_expires_hours": "{} óra múlva lejár",
"shared_link_expires_never": "Expires ∞", "shared_link_expires_minute": "{} perc múlva lejár",
"shared_link_expires_second": "Expires in {} second", "shared_link_expires_minutes": "{} perc múlva lejár",
"shared_link_expires_seconds": "Expires in {} seconds", "shared_link_expires_never": "Nem jár le",
"shared_link_individual_shared": "Individual shared", "shared_link_expires_second": "{} másodperc múlva lejár",
"shared_link_info_chip_download": "Download", "shared_link_expires_seconds": "{} másodperc múlva lejár",
"shared_link_individual_shared": "Egyénileg megosztva",
"shared_link_info_chip_download": "Letöltés",
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_info_chip_upload": "Upload", "shared_link_info_chip_upload": "Feltöltés",
"shared_link_manage_links": "Manage Shared links", "shared_link_manage_links": "Megosztási linkek kezelése",
"shared_link_public_album": "Public album", "shared_link_public_album": "Nyilvános album",
"share_done": "Done", "share_done": "Kész",
"share_invite": "Meghívás az albumba", "share_invite": "Meghívás az albumba",
"sharing_page_album": "Megosztott albumok", "sharing_page_album": "Megosztott albumok",
"sharing_page_description": "Megosztott albumok létrehozásával fényképeket és videókatoszthatsz meg a hálózatodban lévő emberekkel.", "sharing_page_description": "Megosztott albumok létrehozásával fényképeket és videókat oszthatsz meg a hálózatodban lévő emberekkel.",
"sharing_page_empty_list": "ÜRES LISTA", "sharing_page_empty_list": "ÜRES LISTA",
"sharing_silver_appbar_create_shared_album": "Megosztott album létrehozása", "sharing_silver_appbar_create_shared_album": "Új megosztott album",
"sharing_silver_appbar_shared_links": "Shared links", "sharing_silver_appbar_shared_links": "Megosztási linkek",
"sharing_silver_appbar_share_partner": "Megosztás partnerrel", "sharing_silver_appbar_share_partner": "Megosztás partnerrel",
"tab_controller_nav_library": "Könyvtár", "tab_controller_nav_library": "Képtár",
"tab_controller_nav_photos": "Képek", "tab_controller_nav_photos": "Képek",
"tab_controller_nav_search": "Keresés", "tab_controller_nav_search": "Keresés",
"tab_controller_nav_sharing": "Megosztás", "tab_controller_nav_sharing": "Megosztás",
"theme_setting_asset_list_storage_indicator_title": "Show storage indicator on asset tiles", "theme_setting_asset_list_storage_indicator_title": "Tárhely ikon mutatása az elemeken",
"theme_setting_asset_list_tiles_per_row_title": "Number of assets per row ({})", "theme_setting_asset_list_tiles_per_row_title": "Elemek száma soronként ({})",
"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": "Adjust the quality of the detail image viewer", "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": "Image viewer quality", "theme_setting_image_viewer_quality_title": "Képmegjelenítő minősége",
"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": "Choose the app's theme setting", "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": "Three-stage loading might increase the loading performance but causes significantly higher network load", "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": "Enable three-stage loading", "theme_setting_three_stage_loading_title": "Háromlépcsős betöltés engedélyezése",
"translated_text_options": "Options", "translated_text_options": "Beállítások",
"trash_page_delete": "Delete", "trash_page_delete": "Töröl",
"trash_page_delete_all": "Delete All", "trash_page_delete_all": "Mindet Töröl",
"trash_page_empty_trash_btn": "Empty trash", "trash_page_empty_trash_btn": "Lomtár Ürítése",
"trash_page_empty_trash_dialog_content": "Do you want to empty your trashed assets? These items will be permanently removed from Immich", "trash_page_empty_trash_dialog_content": "Ki szeretnéd üríteni a lomtárban lévő elemeket? Ezeket véglegesen eltávolítjuk az Immich-ből",
"trash_page_empty_trash_dialog_ok": "Ok", "trash_page_empty_trash_dialog_ok": "Ok",
"trash_page_info": "Trashed items will be permanently deleted after {} days", "trash_page_info": "A Lomátrba helyezett elemek {} nap után véglegesen törlődnek",
"trash_page_no_assets": "No trashed assets", "trash_page_no_assets": "Nincsen semmi a Lomtárban",
"trash_page_restore": "Restore", "trash_page_restore": "Visszaállít",
"trash_page_restore_all": "Restore All", "trash_page_restore_all": "Mindet Visszaállítja",
"trash_page_select_assets_btn": "Select assets", "trash_page_select_assets_btn": "Elemek kiválasztása",
"trash_page_select_btn": "Select", "trash_page_select_btn": "Kiválaszt",
"trash_page_title": "Trash ({})", "trash_page_title": "Lomtár ({})",
"upload_dialog_cancel": "Mégse", "upload_dialog_cancel": "Mégsem",
"upload_dialog_info": "Akarod menteni a kiválasztott eleme(ke)t a szerverre?", "upload_dialog_info": "Szeretnél mentést készíteni a kiválasztott elem(ek)ről a szerverre?",
"upload_dialog_ok": "Feltöltés", "upload_dialog_ok": "Feltöltés",
"upload_dialog_title": "Elem feltöltése", "upload_dialog_title": "Elem Feltöltése",
"version_announcement_overlay_ack": "Megértettem", "version_announcement_overlay_ack": "Megértettem",
"version_announcement_overlay_release_notes": "a változtatások listáját elolvasd", "version_announcement_overlay_release_notes": "a változtatások listáját elolvasd",
"version_announcement_overlay_text_1": "Szia, egy új verzió érhető el", "version_announcement_overlay_text_1": "Szia, egy új verzió érhető el",
"version_announcement_overlay_text_2": "kérlek szánj időt arra, hogy ", "version_announcement_overlay_text_2": "kérlek szánj időt arra, hogy ",
"version_announcement_overlay_text_3": "és gyöződj meg róla, hogy a docker-compose és .env beállításai naprakészek és pontosak, különösen akkor, ha használsz watchtower-t vagy bármi olyan megoldást ami automatikusan frissíti a szervert.", "version_announcement_overlay_text_3": "és gyöződj meg róla, hogy a docker-compose és .env beállításai naprakészek és pontosak, különösen akkor, ha watchtower-t vagy bármi olyan megoldást használsz, ami automatikusan frissíti a szervert.",
"version_announcement_overlay_title": "Új szerververzió érhető el \uD83C\uDF89", "version_announcement_overlay_title": "Új Szerververzió Érhető El \uD83C\uDF89",
"viewer_remove_from_stack": "Remove from Stack", "viewer_remove_from_stack": "Eltávolít a Csoportból",
"viewer_stack_use_as_main_asset": "Use as Main Asset", "viewer_stack_use_as_main_asset": "Fő Elemnek Beállít",
"viewer_unstack": "Un-Stack" "viewer_unstack": "Csoport Megszűntetése"
} }

View File

@@ -1,8 +1,8 @@
{ {
"action_common_back": "Back", "action_common_back": "Indietro",
"action_common_cancel": "Annulla", "action_common_cancel": "Annulla",
"action_common_clear": "Clear", "action_common_clear": "Pulisci",
"action_common_confirm": "Confirm", "action_common_confirm": "Conferma",
"action_common_update": "Aggiorna", "action_common_update": "Aggiorna",
"add_to_album_bottom_sheet_added": "Aggiunto in {album}", "add_to_album_bottom_sheet_added": "Aggiunto in {album}",
"add_to_album_bottom_sheet_already_exists": "Già presente in {album}", "add_to_album_bottom_sheet_already_exists": "Già presente in {album}",
@@ -22,9 +22,9 @@
"album_thumbnail_card_shared": "Condiviso", "album_thumbnail_card_shared": "Condiviso",
"album_thumbnail_owned": "Posseduto", "album_thumbnail_owned": "Posseduto",
"album_thumbnail_shared_by": "Condiviso da {}", "album_thumbnail_shared_by": "Condiviso da {}",
"album_viewer_appbar_delete_confirm": "Are you sure you want to delete this album from your account?", "album_viewer_appbar_delete_confirm": "Sei sicuro di voler rimuovere questo album dal tuo account?",
"album_viewer_appbar_share_delete": "Elimina album ", "album_viewer_appbar_share_delete": "Elimina album ",
"album_viewer_appbar_share_err_delete": "Impossibile cancellare l'album ", "album_viewer_appbar_share_err_delete": "Impossibile eliminare l'album ",
"album_viewer_appbar_share_err_leave": "Impossibile lasciare l'album ", "album_viewer_appbar_share_err_leave": "Impossibile lasciare l'album ",
"album_viewer_appbar_share_err_remove": "Ci sono problemi nel rimuovere oggetti dall'album ", "album_viewer_appbar_share_err_remove": "Ci sono problemi nel rimuovere oggetti dall'album ",
"album_viewer_appbar_share_err_title": "Impossibile cambiare il titolo dell'album ", "album_viewer_appbar_share_err_title": "Impossibile cambiare il titolo dell'album ",
@@ -39,8 +39,8 @@
"app_bar_signout_dialog_title": "Disconnetti", "app_bar_signout_dialog_title": "Disconnetti",
"archive_page_no_archived_assets": "Nessuna oggetto archiviato", "archive_page_no_archived_assets": "Nessuna oggetto archiviato",
"archive_page_title": "Archivia ({})", "archive_page_title": "Archivia ({})",
"asset_action_delete_err_read_only": "Non posso eliminare degli elementi in sola lettura, ignorato", "asset_action_delete_err_read_only": "Non puoi eliminare risorse in sola lettura, azione ignorata",
"asset_action_share_err_offline": "Non è possibile recuperare le risorse offline, ignoro", "asset_action_share_err_offline": "Non è possibile recuperare le risorse offline, azione ignorata",
"asset_list_group_by_sub_title": "Raggruppa per", "asset_list_group_by_sub_title": "Raggruppa per",
"asset_list_layout_settings_dynamic_layout_title": "Layout dinamico", "asset_list_layout_settings_dynamic_layout_title": "Layout dinamico",
"asset_list_layout_settings_group_automatically": "Automatico", "asset_list_layout_settings_group_automatically": "Automatico",
@@ -53,10 +53,10 @@
"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.",
"backup_album_selection_page_assets_scatter": "Stesse immagini e video possono trovarsi tra più album, così gli album possono essere inclusi o esclusi dal backup.", "backup_album_selection_page_assets_scatter": "Visto che le risorse possono trovarsi in più album, questi possono essere inclusi o esclusi dal backup.",
"backup_album_selection_page_select_albums": "Seleziona gli album", "backup_album_selection_page_select_albums": "Seleziona gli album",
"backup_album_selection_page_selection_info": "Informazioni sulla selezione ", "backup_album_selection_page_selection_info": "Informazioni sulla selezione",
"backup_album_selection_page_total_assets": "Numero totale di oggetti unici", "backup_album_selection_page_total_assets": "Numero totale delle risorse",
"backup_all": "Tutti", "backup_all": "Tutti",
"backup_background_service_backup_failed_message": "Impossibile caricare i contenuti. Riprovo…", "backup_background_service_backup_failed_message": "Impossibile caricare i contenuti. Riprovo…",
"backup_background_service_connection_failed_message": "Impossibile connettersi al server. Riprovo…", "backup_background_service_connection_failed_message": "Impossibile connettersi al server. Riprovo…",
@@ -66,7 +66,7 @@
"backup_background_service_in_progress_notification": "Backup dei tuoi contenuti…", "backup_background_service_in_progress_notification": "Backup dei tuoi contenuti…",
"backup_background_service_upload_failure_notification": "Impossibile caricare {}", "backup_background_service_upload_failure_notification": "Impossibile caricare {}",
"backup_controller_page_albums": "Backup Album", "backup_controller_page_albums": "Backup Album",
"backup_controller_page_background_app_refresh_disabled_content": "Attiva background app refresh dalle Impostazioni > Generale > Background App Refresh per utilizzare backup in background.", "backup_controller_page_background_app_refresh_disabled_content": "Attiva l'aggiornamento dell'app in background in Impostazioni > Generale > Aggiorna app in background per utilizzare backup in background.",
"backup_controller_page_background_app_refresh_disabled_title": "Backup in background è disattivo", "backup_controller_page_background_app_refresh_disabled_title": "Backup in background è disattivo",
"backup_controller_page_background_app_refresh_enable_button_text": "Vai alle impostazioni", "backup_controller_page_background_app_refresh_enable_button_text": "Vai alle impostazioni",
"backup_controller_page_background_battery_info_link": "Mostrami come", "backup_controller_page_background_battery_info_link": "Mostrami come",
@@ -85,20 +85,20 @@
"backup_controller_page_backup": "Backup", "backup_controller_page_backup": "Backup",
"backup_controller_page_backup_selected": "Selezionati:", "backup_controller_page_backup_selected": "Selezionati:",
"backup_controller_page_backup_sub": "Foto e video caricati", "backup_controller_page_backup_sub": "Foto e video caricati",
"backup_controller_page_cancel": "Cancella ", "backup_controller_page_cancel": "Annulla",
"backup_controller_page_created": "Creato il: {}", "backup_controller_page_created": "Creato il: {}",
"backup_controller_page_desc_backup": "Attiva il backup per eseguire il caricamento automatico sul server all'apertura dell'applicazione.", "backup_controller_page_desc_backup": "Attiva il backup per eseguire il caricamento automatico sul server all'apertura dell'applicazione.",
"backup_controller_page_excluded": "Esclusi:", "backup_controller_page_excluded": "Esclusi:",
"backup_controller_page_failed": "Falliti: ({})", "backup_controller_page_failed": "Falliti: ({})",
"backup_controller_page_filename": "Nome del file: {} [{}]", "backup_controller_page_filename": "Nome file: {} [{}]",
"backup_controller_page_id": "ID: {}", "backup_controller_page_id": "ID: {}",
"backup_controller_page_info": "Informazioni sul backup", "backup_controller_page_info": "Informazioni sul backup",
"backup_controller_page_none_selected": "Nessuna selezione", "backup_controller_page_none_selected": "Nessuna selezione",
"backup_controller_page_remainder": "Promemoria ", "backup_controller_page_remainder": "Rimanenti",
"backup_controller_page_remainder_sub": "Foto e album selezionati che rimangono da caricare", "backup_controller_page_remainder_sub": "Foto e video che devono essere ancora caricati",
"backup_controller_page_select": "Seleziona ", "backup_controller_page_select": "Seleziona ",
"backup_controller_page_server_storage": "Spazio sul server", "backup_controller_page_server_storage": "Spazio sul server",
"backup_controller_page_start_backup": "Inizia backup ", "backup_controller_page_start_backup": "Avvia backup",
"backup_controller_page_status_off": "Backup è disattivato ", "backup_controller_page_status_off": "Backup è disattivato ",
"backup_controller_page_status_on": "Backup è attivato", "backup_controller_page_status_on": "Backup è attivato",
"backup_controller_page_storage_format": "{} di {} usati", "backup_controller_page_storage_format": "{} di {} usati",
@@ -107,22 +107,22 @@
"backup_controller_page_total_sub": "Tutte le foto e i video unici caricati dagli album selezionati ", "backup_controller_page_total_sub": "Tutte le foto e i video unici caricati dagli album selezionati ",
"backup_controller_page_turn_off": "Disattiva backup", "backup_controller_page_turn_off": "Disattiva backup",
"backup_controller_page_turn_on": "Attiva backup ", "backup_controller_page_turn_on": "Attiva backup ",
"backup_controller_page_uploading_file_info": "Caricando informazioni sul file", "backup_controller_page_uploading_file_info": "Caricamento informazioni file",
"backup_err_only_album": "Non è possibile rimuovere l'unico album", "backup_err_only_album": "Non è possibile rimuovere l'unico album",
"backup_info_card_assets": "oggetti ", "backup_info_card_assets": "risorse",
"backup_manual_cancelled": "Annullato", "backup_manual_cancelled": "Annullato",
"backup_manual_failed": "Fallito", "backup_manual_failed": "Fallito",
"backup_manual_in_progress": "Caricamento già in corso. Riprova più tardi.", "backup_manual_in_progress": "Caricamento già in corso. Riprova più tardi.",
"backup_manual_success": "Successo", "backup_manual_success": "Successo",
"backup_manual_title": "Stato del caricamento", "backup_manual_title": "Stato del caricamento",
"backup_options_page_title": "Backup options", "backup_options_page_title": "Opzioni di Backup",
"cache_settings_album_thumbnails": "Anteprime pagine librerie ({} risorse)", "cache_settings_album_thumbnails": "Anteprime pagine librerie ({} risorse)",
"cache_settings_clear_cache_button": "Cancella cache", "cache_settings_clear_cache_button": "Pulisci cache",
"cache_settings_clear_cache_button_title": "Cancella la cache dell'app. Questo impatterà significativamente le prestazioni dell''app fino a quando la cache non sarà rigenerata.", "cache_settings_clear_cache_button_title": "Pulisce la cache dell'app. Questo impatterà significativamente le prestazioni dell''app fino a quando la cache non sarà rigenerata.",
"cache_settings_duplicated_assets_clear_button": "ELIMINA", "cache_settings_duplicated_assets_clear_button": "PULISCI",
"cache_settings_duplicated_assets_subtitle": "Foto e video che sono nella black list dell'applicazione", "cache_settings_duplicated_assets_subtitle": "Foto e video che sono nella black list dell'applicazione",
"cache_settings_duplicated_assets_title": "Elementi duplicati ({})", "cache_settings_duplicated_assets_title": "Elementi duplicati ({})",
"cache_settings_image_cache_size": "Dimensione cache delle foto ({} risorse)", "cache_settings_image_cache_size": "Dimensione cache delle immagini ({} risorse)",
"cache_settings_statistics_album": "Anteprime librerie", "cache_settings_statistics_album": "Anteprime librerie",
"cache_settings_statistics_assets": "{} risorse ({})", "cache_settings_statistics_assets": "{} risorse ({})",
"cache_settings_statistics_full": "Immagini complete", "cache_settings_statistics_full": "Immagini complete",
@@ -134,7 +134,7 @@
"cache_settings_tile_subtitle": "Controlla il comportamento dello storage locale", "cache_settings_tile_subtitle": "Controlla il comportamento dello storage locale",
"cache_settings_tile_title": "Archiviazione locale", "cache_settings_tile_title": "Archiviazione locale",
"cache_settings_title": "Impostazioni della Cache", "cache_settings_title": "Impostazioni della Cache",
"change_password_form_confirm_password": "Conferma Password ", "change_password_form_confirm_password": "Conferma Password",
"change_password_form_description": "Ciao {name},\n\nQuesto è la prima volta che accedi al sistema oppure è stato fatto una richiesta di cambiare la password. Per favore inserisca la nuova password qui sotto", "change_password_form_description": "Ciao {name},\n\nQuesto è la prima volta che accedi al sistema oppure è stato fatto una richiesta di cambiare la password. Per favore inserisca la nuova password qui sotto",
"change_password_form_new_password": "Nuova Password", "change_password_form_new_password": "Nuova Password",
"change_password_form_password_mismatch": "Le password non coincidono", "change_password_form_password_mismatch": "Le password non coincidono",
@@ -154,7 +154,7 @@
"control_bottom_app_bar_delete_from_local": "Elimina dal dispositivo", "control_bottom_app_bar_delete_from_local": "Elimina dal dispositivo",
"control_bottom_app_bar_edit_location": "Modifica posizione", "control_bottom_app_bar_edit_location": "Modifica posizione",
"control_bottom_app_bar_edit_time": "Modifica data e ora", "control_bottom_app_bar_edit_time": "Modifica data e ora",
"control_bottom_app_bar_favorite": "Preferiti", "control_bottom_app_bar_favorite": "Preferito",
"control_bottom_app_bar_share": "Condivisione", "control_bottom_app_bar_share": "Condivisione",
"control_bottom_app_bar_share_to": "Condividi a", "control_bottom_app_bar_share_to": "Condividi a",
"control_bottom_app_bar_stack": "Raggruppa", "control_bottom_app_bar_stack": "Raggruppa",
@@ -172,15 +172,15 @@
"daily_title_text_date": "E, dd MMM", "daily_title_text_date": "E, dd MMM",
"daily_title_text_date_year": "E, dd MMM, yyyy", "daily_title_text_date_year": "E, dd MMM, yyyy",
"date_format": "E, d LLL, y • hh:mm", "date_format": "E, d LLL, y • hh:mm",
"delete_dialog_alert": "Questi oggetti saranno cancellati definitivamente da Immich e dal tuo device", "delete_dialog_alert": "Questi oggetti saranno eliminati definitivamente da Immich e dal tuo device",
"delete_dialog_alert_local": "Questi elementi verranno eliminati definitivamente dal dispositivo, ma saranno ancora disponibili sul server Immich", "delete_dialog_alert_local": "Questi elementi verranno eliminati definitivamente dal dispositivo, ma saranno ancora disponibili sul server Immich",
"delete_dialog_alert_local_non_backed_up": "Alcuni degli elementi non sono stati caricati su Immich e saranno rimossi definitivamente dal tuo dispositivo", "delete_dialog_alert_local_non_backed_up": "Alcuni degli elementi non sono stati caricati su Immich e saranno rimossi definitivamente dal tuo dispositivo",
"delete_dialog_alert_remote": "Questi elementi verranno eliminati permanentemente dal server Immich", "delete_dialog_alert_remote": "Questi elementi verranno eliminati permanentemente dal server Immich",
"delete_dialog_cancel": "Annulla", "delete_dialog_cancel": "Annulla",
"delete_dialog_ok": "Elimina", "delete_dialog_ok": "Elimina",
"delete_dialog_ok_force": "Elimina comunque", "delete_dialog_ok_force": "Elimina comunque",
"delete_dialog_title": "Cancella definitivamente", "delete_dialog_title": "Elimina definitivamente",
"delete_local_dialog_ok_backed_up_only": "Elimina solo quelli con backup", "delete_local_dialog_ok_backed_up_only": "Elimina solo con backup",
"delete_local_dialog_ok_force": "Elimina comunque", "delete_local_dialog_ok_force": "Elimina comunque",
"delete_shared_link_dialog_content": "Sei sicuro di voler eliminare questo link condiviso?", "delete_shared_link_dialog_content": "Sei sicuro di voler eliminare questo link condiviso?",
"delete_shared_link_dialog_title": "Elimina link condiviso", "delete_shared_link_dialog_title": "Elimina link condiviso",
@@ -201,22 +201,24 @@
"experimental_settings_title": "Sperimentale", "experimental_settings_title": "Sperimentale",
"favorites_page_no_favorites": "Nessun preferito", "favorites_page_no_favorites": "Nessun preferito",
"favorites_page_title": "Preferiti", "favorites_page_title": "Preferiti",
"haptic_feedback_switch": "Abilita feedback aptico",
"haptic_feedback_title": "Feedback aptico",
"home_page_add_to_album_conflicts": "Aggiunti {added} elementi all'album {album}. {failed} elementi erano già presenti nell'album.", "home_page_add_to_album_conflicts": "Aggiunti {added} elementi all'album {album}. {failed} elementi erano già presenti nell'album.",
"home_page_add_to_album_err_local": "Non puoi aggiungere in album risorse non ancora caricate, azione ignorata", "home_page_add_to_album_err_local": "Non puoi aggiungere in album risorse non ancora caricate, azione ignorata",
"home_page_add_to_album_success": "Aggiunti {added} elementi all'album {album}", "home_page_add_to_album_success": "Aggiunti {added} elementi all'album {album}",
"home_page_album_err_partner": "Non puoi aggiungere risorse del partner a un album, azione ignorata", "home_page_album_err_partner": "Non puoi aggiungere risorse del partner a un album, azione ignorata",
"home_page_archive_err_local": "Non puoi archiviare immagini non ancora caricate, azione ignorata", "home_page_archive_err_local": "Non puoi archiviare immagini non ancora caricate, azione ignorata",
"home_page_archive_err_partner": "Non puoi archiviare risorse del partner, azione ignorata", "home_page_archive_err_partner": "Non puoi archiviare risorse del partner, azione ignorata",
"home_page_building_timeline": "Costruendo il Timeline", "home_page_building_timeline": "Caricamento della timeline",
"home_page_delete_err_partner": "Non puoi eliminare risorse del partner, azione ignorata", "home_page_delete_err_partner": "Non puoi eliminare risorse del partner, azione ignorata",
"home_page_delete_remote_err_local": "Risorse in locale presenti nella selezione della eliminazione remota, azione ignorata", "home_page_delete_remote_err_local": "Risorse locali presenti nella selezione della eliminazione remota, azione ignorata",
"home_page_favorite_err_local": "Non puoi aggiungere tra i preferiti delle risorse non ancora caricate, azione ignorata", "home_page_favorite_err_local": "Non puoi aggiungere tra i preferiti delle risorse non ancora caricate, azione ignorata",
"home_page_favorite_err_partner": "Non puoi mettere le risorse del partner nei preferiti, azione ignorata", "home_page_favorite_err_partner": "Non puoi mettere le risorse del partner nei preferiti, azione ignorata",
"home_page_first_time_notice": "Se è la prima volta che usi l'app, assicurati di scegliere gli album per avere il Timeline con immagini e video", "home_page_first_time_notice": "Se è la prima volta che utilizzi l'app, assicurati di scegliere uno o più album di backup, in modo che la timeline possa popolare le foto e i video presenti negli album.",
"home_page_share_err_local": "Non puoi condividere una risorsa locale tramite link, azione ignorata", "home_page_share_err_local": "Non puoi condividere una risorsa locale tramite link, azione ignorata",
"home_page_upload_err_limit": "Puoi caricare al massimo 30 file per volta, ignora quelli in eccesso", "home_page_upload_err_limit": "Puoi caricare al massimo 30 file per volta, ignora quelli in eccesso",
"image_viewer_page_state_provider_download_error": "Errore nel Download", "image_viewer_page_state_provider_download_error": "Errore nel Download",
"image_viewer_page_state_provider_download_started": "Download avviato", "image_viewer_page_state_provider_download_started": "Download Started",
"image_viewer_page_state_provider_download_success": "Download con successo", "image_viewer_page_state_provider_download_success": "Download con successo",
"image_viewer_page_state_provider_share_error": "Errore di condivisione", "image_viewer_page_state_provider_share_error": "Errore di condivisione",
"library_page_albums": "Album", "library_page_albums": "Album",
@@ -284,7 +286,7 @@
"map_settings_dialog_save": "Salva", "map_settings_dialog_save": "Salva",
"map_settings_dialog_title": "Impostazioni Mappa", "map_settings_dialog_title": "Impostazioni Mappa",
"map_settings_include_show_archived": "Includi Archiviati", "map_settings_include_show_archived": "Includi Archiviati",
"map_settings_include_show_partners": "Include Partners", "map_settings_include_show_partners": "Includi Partner",
"map_settings_only_relative_range": "Intervallo date", "map_settings_only_relative_range": "Intervallo date",
"map_settings_only_show_favorites": "Mostra solo preferiti", "map_settings_only_show_favorites": "Mostra solo preferiti",
"map_settings_theme_settings": "Tema della mappa", "map_settings_theme_settings": "Tema della mappa",
@@ -294,17 +296,18 @@
"memories_start_over": "Ricomincia", "memories_start_over": "Ricomincia",
"memories_swipe_to_close": "Scorri sopra per chiudere", "memories_swipe_to_close": "Scorri sopra per chiudere",
"monthly_title_text_date_format": "MMMM y", "monthly_title_text_date_format": "MMMM y",
"motion_photos_page_title": "Motion Foto", "motion_photos_page_title": "Foto in movimento",
"multiselect_grid_edit_date_time_err_read_only": "Non posso modificare la data degli elementi in sola lettura, ignorato", "multiselect_grid_edit_date_time_err_read_only": "Non puoi modificare la data di risorse in sola lettura, azione ignorata",
"multiselect_grid_edit_gps_err_read_only": "Non posso modificare la posizione degli elementi in sola lettura, ignorato", "multiselect_grid_edit_gps_err_read_only": "Non puoi modificare la posizione di risorse in sola lettura, azione ignorata",
"no_assets_to_show": "Nessuna risorsa da mostrare",
"notification_permission_dialog_cancel": "Annulla", "notification_permission_dialog_cancel": "Annulla",
"notification_permission_dialog_content": "Per attivare le notifiche, vai alle Impostazioni e seleziona concedi", "notification_permission_dialog_content": "Per attivare le notifiche, vai alle Impostazioni e seleziona concedi",
"notification_permission_dialog_settings": "Impostazioni", "notification_permission_dialog_settings": "Impostazioni",
"notification_permission_list_tile_content": "Concedi i permessi per attivare le notifiche", "notification_permission_list_tile_content": "Concedi i permessi per attivare le notifiche",
"notification_permission_list_tile_enable_button": "Attiva notifiche", "notification_permission_list_tile_enable_button": "Attiva notifiche",
"notification_permission_list_tile_title": "Permessi delle Notifiche", "notification_permission_list_tile_title": "Permessi delle Notifiche",
"partner_list_user_photos": "{user}'s photos", "partner_list_user_photos": "Foto di {user}",
"partner_list_view_all": "View all", "partner_list_view_all": "Mostra tutto",
"partner_page_add_partner": "Aggiungi partner.", "partner_page_add_partner": "Aggiungi partner.",
"partner_page_empty_message": "Le tue foto non sono ancora condivise con alcun partner.", "partner_page_empty_message": "Le tue foto non sono ancora condivise con alcun partner.",
"partner_page_no_more_users": "Nessun altro utente da aggiungere.", "partner_page_no_more_users": "Nessun altro utente da aggiungere.",
@@ -322,7 +325,7 @@
"permission_onboarding_log_out": "Log out", "permission_onboarding_log_out": "Log out",
"permission_onboarding_permission_denied": "Permessi negati. Per usare Immich concedi i permessi ai video e foto dalle impostazioni", "permission_onboarding_permission_denied": "Permessi negati. Per usare Immich concedi i permessi ai video e foto dalle impostazioni",
"permission_onboarding_permission_granted": "Concessi i permessi! Ora sei tutto apposto", "permission_onboarding_permission_granted": "Concessi i permessi! Ora sei tutto apposto",
"permission_onboarding_permission_limited": "Permessi limitati. Perché Immich possa controllare e fare i backup di tutte le foto, concedere i permessi all'intera galleria dalle impostazioni ", "permission_onboarding_permission_limited": "Permessi limitati. Per consentire a Immich di gestire e fare i backup di tutta la galleria, concedi i permessi Foto e Video dalle Impostazioni.",
"permission_onboarding_request": "Immich richiede i permessi per vedere le tue foto e video", "permission_onboarding_request": "Immich richiede i permessi per vedere le tue foto e video",
"preferences_settings_title": "Preferenze", "preferences_settings_title": "Preferenze",
"profile_drawer_app_logs": "Logs", "profile_drawer_app_logs": "Logs",
@@ -334,26 +337,26 @@
"profile_drawer_server_out_of_date_major": "Il server non è aggiornato. Per favore aggiorna all'ultima versione principale.", "profile_drawer_server_out_of_date_major": "Il server non è aggiornato. Per favore aggiorna all'ultima versione principale.",
"profile_drawer_server_out_of_date_minor": "Il server non è aggiornato. Per favore aggiorna all'ultima versione minore.", "profile_drawer_server_out_of_date_minor": "Il server non è aggiornato. Per favore aggiorna all'ultima versione minore.",
"profile_drawer_settings": "Impostazioni ", "profile_drawer_settings": "Impostazioni ",
"profile_drawer_sign_out": "Logout", "profile_drawer_sign_out": "Esci",
"profile_drawer_trash": "Cestino", "profile_drawer_trash": "Cestino",
"recently_added_page_title": "Aggiunti di recente", "recently_added_page_title": "Aggiunti di recente",
"scaffold_body_error_occurred": "Si è verificato un errore.", "scaffold_body_error_occurred": "Si è verificato un errore.",
"search_bar_hint": "Cerca le tue foto", "search_bar_hint": "Cerca le tue foto",
"search_filter_apply": "Apply filter", "search_filter_apply": "Applica filtro",
"search_filter_camera_make": "Make", "search_filter_camera_make": "Produttore",
"search_filter_camera_model": "Model", "search_filter_camera_model": "Modello",
"search_filter_display_option_archive": "Archive", "search_filter_display_option_archive": "Archivia",
"search_filter_display_option_favorite": "Favorite", "search_filter_display_option_favorite": "Preferito",
"search_filter_display_option_not_in_album": "Not in album", "search_filter_display_option_not_in_album": "Non nell'album",
"search_filter_location_city": "City", "search_filter_location_city": "Cit",
"search_filter_location_country": "Country", "search_filter_location_country": "Nazione",
"search_filter_location_state": "State", "search_filter_location_state": "Provincia",
"search_filter_media_type_all": "All", "search_filter_media_type_all": "Tutto",
"search_filter_media_type_image": "Image", "search_filter_media_type_image": "Immagine",
"search_filter_media_type_video": "Video", "search_filter_media_type_video": "VIdeo",
"search_page_categories": "Categoria", "search_page_categories": "Categoria",
"search_page_favorites": "Preferiti", "search_page_favorites": "Preferiti",
"search_page_motion_photos": "Motion Foto", "search_page_motion_photos": "Foto in movimento",
"search_page_no_objects": "Nessuna informazione relativa all'oggetto disponibile", "search_page_no_objects": "Nessuna informazione relativa all'oggetto disponibile",
"search_page_no_places": "Nessun informazione sul luogo disponibile", "search_page_no_places": "Nessun informazione sul luogo disponibile",
"search_page_people": "Persone", "search_page_people": "Persone",
@@ -388,8 +391,8 @@
"setting_image_viewer_original_title": "Carica l'immagine originale", "setting_image_viewer_original_title": "Carica l'immagine originale",
"setting_image_viewer_preview_subtitle": "Abilita per caricare un'immagine a risoluzione media.\nDisabilita per caricare direttamente l'immagine originale o usare la thumbnail.", "setting_image_viewer_preview_subtitle": "Abilita per caricare un'immagine a risoluzione media.\nDisabilita per caricare direttamente l'immagine originale o usare la thumbnail.",
"setting_image_viewer_preview_title": "Carica immagine di anteprima", "setting_image_viewer_preview_title": "Carica immagine di anteprima",
"setting_languages_apply": "Apply", "setting_languages_apply": "Applica",
"setting_languages_title": "Languages", "setting_languages_title": "Lingue",
"setting_notifications_notify_failures_grace_period": "Notifica caricamenti falliti in background: {}", "setting_notifications_notify_failures_grace_period": "Notifica caricamenti falliti in background: {}",
"setting_notifications_notify_hours": "{} ore", "setting_notifications_notify_hours": "{} ore",
"setting_notifications_notify_immediately": "immediatamente", "setting_notifications_notify_immediately": "immediatamente",
@@ -397,16 +400,17 @@
"setting_notifications_notify_never": "mai", "setting_notifications_notify_never": "mai",
"setting_notifications_notify_seconds": "{} secondi", "setting_notifications_notify_seconds": "{} secondi",
"setting_notifications_single_progress_subtitle": "Informazioni dettagliate sul caricamento della risorsa", "setting_notifications_single_progress_subtitle": "Informazioni dettagliate sul caricamento della risorsa",
"setting_notifications_single_progress_title": "Mostra dettagli del processo di backup in background", "setting_notifications_single_progress_title": "Mostra avanzamento dettagliato del backup in background",
"setting_notifications_subtitle": "Cambia le impostazioni di notifica", "setting_notifications_subtitle": "Cambia le impostazioni di notifica",
"setting_notifications_title": "Notifiche", "setting_notifications_title": "Notifiche",
"setting_notifications_total_progress_subtitle": "Progresso di caricamento generale (eseguiti/totale)", "setting_notifications_total_progress_subtitle": "Progresso generale del caricamento (caricati / totali)",
"setting_notifications_total_progress_title": "Mostra il progresso di backup totale in background", "setting_notifications_total_progress_title": "Mostra avanzamento del backup in background",
"setting_pages_app_bar_settings": "Impostazioni", "setting_pages_app_bar_settings": "Impostazioni",
"settings_require_restart": "Si prega di riavviare Immich perché vengano applicate le impostazioni", "settings_require_restart": "Si prega di riavviare Immich perché vengano applicate le impostazioni",
"share_add": "Aggiungi", "share_add": "Aggiungi",
"share_add_photos": "Aggiungi foto", "share_add_photos": "Aggiungi foto",
"share_add_title": "Aggiungi un titolo ", "share_add_title": "Aggiungi un titolo ",
"share_assets_selected": "{} selected",
"share_create_album": "Crea album", "share_create_album": "Crea album",
"shared_album_activities_input_disable": "I commenti sono disabilitati", "shared_album_activities_input_disable": "I commenti sono disabilitati",
"shared_album_activities_input_hint": "Dici qualcosa", "shared_album_activities_input_hint": "Dici qualcosa",
@@ -440,7 +444,9 @@
"shared_link_edit_expire_after_option_hours": "{} ore", "shared_link_edit_expire_after_option_hours": "{} ore",
"shared_link_edit_expire_after_option_minute": "1 minuto", "shared_link_edit_expire_after_option_minute": "1 minuto",
"shared_link_edit_expire_after_option_minutes": "{} minuti", "shared_link_edit_expire_after_option_minutes": "{} minuti",
"shared_link_edit_expire_after_option_months": "{} months",
"shared_link_edit_expire_after_option_never": "Mai", "shared_link_edit_expire_after_option_never": "Mai",
"shared_link_edit_expire_after_option_year": "{} year",
"shared_link_edit_password": "Password", "shared_link_edit_password": "Password",
"shared_link_edit_password_hint": "Inserire la password di condivisione", "shared_link_edit_password_hint": "Inserire la password di condivisione",
"shared_link_edit_show_meta": "Visualizza metadati", "shared_link_edit_show_meta": "Visualizza metadati",
@@ -462,11 +468,11 @@
"shared_link_info_chip_metadata": "EXIF", "shared_link_info_chip_metadata": "EXIF",
"shared_link_info_chip_upload": "Carica", "shared_link_info_chip_upload": "Carica",
"shared_link_manage_links": "Gestisci link condivisi", "shared_link_manage_links": "Gestisci link condivisi",
"shared_link_public_album": "Public album", "shared_link_public_album": "Album Pubblico",
"share_done": "Fatto", "share_done": "Fatto",
"share_invite": "Invita nell'album ", "share_invite": "Invita nell'album ",
"sharing_page_album": "Album condivisi", "sharing_page_album": "Album condivisi",
"sharing_page_description": "Crea un album condiviso per condividere foto e video con persone sul tuo network", "sharing_page_description": "Crea un album condiviso per condividere foto e video con gli utenti della tua rete Immich.",
"sharing_page_empty_list": "LISTA VUOTA", "sharing_page_empty_list": "LISTA VUOTA",
"sharing_silver_appbar_create_shared_album": "Crea album condiviso", "sharing_silver_appbar_create_shared_album": "Crea album condiviso",
"sharing_silver_appbar_shared_links": "Link condivisi", "sharing_silver_appbar_shared_links": "Link condivisi",
@@ -498,8 +504,8 @@
"trash_page_select_assets_btn": "Seleziona elemento", "trash_page_select_assets_btn": "Seleziona elemento",
"trash_page_select_btn": "Seleziona", "trash_page_select_btn": "Seleziona",
"trash_page_title": "Cestino ({})", "trash_page_title": "Cestino ({})",
"upload_dialog_cancel": "Cancella", "upload_dialog_cancel": "Annulla",
"upload_dialog_info": "Vuoi fare il backup sul server di ciò che hai selezionato?", "upload_dialog_info": "Vuoi fare il backup sul server delle risorse selezionate?",
"upload_dialog_ok": "Carica", "upload_dialog_ok": "Carica",
"upload_dialog_title": "Carica file", "upload_dialog_title": "Carica file",
"version_announcement_overlay_ack": "Presa visione", "version_announcement_overlay_ack": "Presa visione",

Some files were not shown because too many files have changed in this diff Show More