Compare commits

..

245 Commits

Author SHA1 Message Date
wuzihao051119 f58db3be88 feat(mobile): drift person detail page 2025-07-23 01:36:46 +08:00
Daimolean ac44f6d1e0 feat(mobile): asset face sync (#20022)
* feat(mobile): asset face sync

* fix: lint

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-22 17:17:52 +00:00
shenlong ab61bcfcc8 fix: reduce asset_viewer reloads (#20083)
* fix: reduce asset_viewer reloads

* limit the result of watch asset to one

* fix null reference in map thumbnail

* bump hash file limit to 256

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-22 11:58:34 -05:00
Alex aa344a3989 feat: delete actions (#20034)
* chore: show delete local

* pr feedback

* restore and perm delete action
2025-07-22 16:36:00 +00:00
Brandon Wees 2efca67217 feat(mobile): beta sync stats page (#19950)
* show beta sync stats

* show status next to jobs

* use drift devtools reset database impl

* dcm fixes

* fix: hash count

* styling

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-22 16:24:32 +00:00
Alex 97daf42fd5 chore: don't show beta switcher if connect to server below 1.136 (#20084) 2025-07-22 10:24:00 -05:00
renovate[bot] 5548033cae chore(deps): update dependency @types/multer to v2 (#20069)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 11:00:28 +01:00
renovate[bot] 637eba6e08 chore(deps): update node.js to v22.17.1 (#20066)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 09:59:16 +00:00
renovate[bot] f16457d2f9 chore(deps): update redis:6.2-alpine docker digest to 7fe72c4 (#20065)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 10:57:58 +01:00
Weblate (bot) 7b41c6348c chore(web): update translations (#20076)
Co-authored-by: Zack Pollard <zack@futo.org>
2025-07-22 09:49:18 +00:00
renovate[bot] bd92f6b12d chore(deps): update dependency dotenv to v17 (#20073)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 09:31:01 +00:00
Daimolean 496b0c7076 fix(server): missing integer type (#20075) 2025-07-22 09:29:14 +00:00
renovate[bot] 166452640d chore(deps): update dependency @types/node to ^22.16.4 (#20068)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-22 10:28:15 +01:00
Weblate (bot) 30f6dc3a6e chore(web): update translations (#19228)
Co-authored-by: 1024mb <1024mb@users.noreply.hosted.weblate.org>
Co-authored-by: Abel M├бrquez Mora <abeelmarquez@gmail.com>
Co-authored-by: Adupa Vasista <adupavasista@gmail.com>
Co-authored-by: AgentTricky <andreweditz26@gmail.com>
Co-authored-by: Ahmed Khaleel Shihab <ahmed91shihab@gmail.com>
Co-authored-by: Ahmed Shihab <blugrana2@gmail.com>
Co-authored-by: Alberto Serluca <alberto.ser11@gmail.com>
Co-authored-by: Alex <weblate.attire524@passmail.net>
Co-authored-by: Andreas Johansen <andreas@josern.com>
Co-authored-by: Antonio Vazquez <antoniovavazquez@gmail.com>
Co-authored-by: Apurbo Islam <apurboislam2809@gmail.com>
Co-authored-by: Bahad─▒r Hamza ├Цzt├╝rk <bahadirhamza2@gmail.com>
Co-authored-by: Barend van der Walt <barendjohannes.vdwalt@gmail.com>
Co-authored-by: Bernardo <bernaamg@gmail.com>
Co-authored-by: Bezruchenko Simon <worcposj44@gmail.com>
Co-authored-by: Bora At─▒c─▒ <boratici.acc@gmail.com>
Co-authored-by: Carina Chenot <carina.chenot@gmail.com>
Co-authored-by: Christian Glockner <christian@glcknr.eu>
Co-authored-by: Claudiu Hanza <claudiu.hanza@gmail.com>
Co-authored-by: Cristality_ <jovarasz@gmail.com>
Co-authored-by: DarkWolf DarkINFINITE <ddarkinfinite@gmail.com>
Co-authored-by: Davide Ciaccia <davideccia@gmail.com>
Co-authored-by: Denis Pacquier <denis.pacquier@gmail.com>
Co-authored-by: DevServs <bonov@mail.ru>
Co-authored-by: Etienne de Villiers <etiennefdevilliers@proton.me>
Co-authored-by: Filip Polak <rabbitxones@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fjuro <git@alius.cz>
Co-authored-by: Florian Ostertag <florian.kuepper@gmail.com>
Co-authored-by: G M <gauravmmh2@gmail.com>
Co-authored-by: Gerry <ger_26_6@hotmail.com>
Co-authored-by: Girom Kenji Respicio Pacho <pachogiromkenji@gmail.com>
Co-authored-by: Gyubin Lee <support@pcor.me>
Co-authored-by: Hazret <tncytrk@live.com>
Co-authored-by: Hoi <Hoihoi@users.noreply.hosted.weblate.org>
Co-authored-by: Hurricane-32 <rodrigorimo@hotmail.com>
Co-authored-by: Indrek Haav <indrek.haav@hotmail.com>
Co-authored-by: Ivan Dimitrov <idimitrov08@gmail.com>
Co-authored-by: JPar99 <github.wad969@passmail.com>
Co-authored-by: Janat Taerakul <janat.taerakul@gmail.com>
Co-authored-by: Janat Taerakul <ppppp5541@gmail.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: JustRensio <debouwer741@gmail.com>
Co-authored-by: Lenny Angst <lenny@familie-angst.ch>
Co-authored-by: Leo Bottaro <github@leobottaro.com>
Co-authored-by: Lucas Correia <github.freehand702@passmail.net>
Co-authored-by: Luis Peregrina <luis.a.peregrina@gmail.com>
Co-authored-by: MSDNicrosoft <wang3311835119@hotmail.com>
Co-authored-by: MaBeniu <marius.beniusis@teliacompany.com>
Co-authored-by: Marc Portabella Navarro <portabella.marc@gmail.com>
Co-authored-by: Martin <me@mart-e.be>
Co-authored-by: Mateo Varela <matevarela32@gmail.com>
Co-authored-by: Matja┼╛ T <matjaz@moj-svet.si>
Co-authored-by: Matteo Marchi <marchimatteo@gmail.com>
Co-authored-by: Mehedi Hasan <asmaparvin019@gmail.com>
Co-authored-by: Mohammed Al Otaibi <mopes.03.belle@icloud.com>
Co-authored-by: Molnar Eduard <edimolnar@posteo.ro>
Co-authored-by: M├бt├й Moln├бr <matmolni@gmail.com>
Co-authored-by: M─Бrti┼Ж┼б Bru┼Жenieks <martinsb@gmail.com>
Co-authored-by: Niko Savola <niko.savola@aalto.fi>
Co-authored-by: OffsetMonkey538 <offsetmonkey538@gmail.com>
Co-authored-by: P <eisregner@gmail.com>
Co-authored-by: Pavel Miniutka <pavel.miniutka@gmail.com>
Co-authored-by: Petri H├дm├дl├дinen <petri.hamalainen@mailbox.org>
Co-authored-by: Revc Nix <revc.nix@gmail.com>
Co-authored-by: Robert <robert.bezem@gmail.com>
Co-authored-by: Runskrift <anders@rimfrost.nu>
Co-authored-by: SGT <gabriel.sgt@gmail.com>
Co-authored-by: Sachin Kekarjawalekar <kekarjawalekarsachin1@gmail.com>
Co-authored-by: Sai varun <saivarunkollurufb@gmail.com>
Co-authored-by: Santiago <santiwever@hotmail.com>
Co-authored-by: Sergey Katsubo <skatsubo@gmail.com>
Co-authored-by: Sergi Font <sfont@tuta.io>
Co-authored-by: Shawn <xiaxinx@gmail.com>
Co-authored-by: Sylvain Pichon <service@spichon.fr>
Co-authored-by: Taiki M <vexingly-many-mace@duck.com>
Co-authored-by: Theodor Onarheim <thbo@startmail.com>
Co-authored-by: Tijs-B <tijs.bergmans@telenet.be>
Co-authored-by: Tomas Veselis <tomkex@gmail.com>
Co-authored-by: Tony Ronaldo Matute <tonyronaldomatute@gmail.com>
Co-authored-by: Topaz Barziv <mail@topazbarziv.com>
Co-authored-by: User 123456789 <user123456789@users.noreply.hosted.weblate.org>
Co-authored-by: Valter Vicente <vallovic@gmail.com>
Co-authored-by: Vegard Fladby <vegard@fladby.org>
Co-authored-by: Xo <xocodokie@users.noreply.hosted.weblate.org>
Co-authored-by: Yago Ra├▒a Gayoso <yago.rana.gayoso@gmail.com>
Co-authored-by: adri1m64 <adrien.melle@laposte.net>
Co-authored-by: adriadam10 <adriadam10@gmail.com>
Co-authored-by: amirulashraf3861 <amirulashrafidros@gmail.com>
Co-authored-by: anton garcias <isaga.percompartir@gmail.com>
Co-authored-by: ardtas <ardtas@users.noreply.hosted.weblate.org>
Co-authored-by: bacardicoke <bacardicoke@gmail.com>
Co-authored-by: catelixor <catelixor+weblate@proton.me>
Co-authored-by: dark&white <darkwhite@users.noreply.hosted.weblate.org>
Co-authored-by: eSascha <kitaigorod49@yahoo.com>
Co-authored-by: eav5jhl0 <eav5jhl0@users.noreply.hosted.weblate.org>
Co-authored-by: evensure <j.evenschor@gmail.com>
Co-authored-by: jicetus <jicetus@users.noreply.hosted.weblate.org>
Co-authored-by: juanCoder64 <jgama12569@gmail.com>
Co-authored-by: lumppu <saukkolanerkki@gmail.com>
Co-authored-by: mastoduy <mastoduy@gmail.com>
Co-authored-by: miiyuh <itsazripp2@gmail.com>
Co-authored-by: no <weblate@rosenheim.dk>
Co-authored-by: sarga <devilcyber33@gmail.com>
Co-authored-by: slick-daddy <gokalpselamet@gmail.com>
Co-authored-by: st7105 <st7105@gmail.com>
Co-authored-by: waclaw66 <waclaw66@seznam.cz>
Co-authored-by: wickdj <wickdj@gmail.com>
Co-authored-by: ╨Т╤П╤З╨╡╤Б╨╗╨░╨▓ ╨Ы╤Г╨║╤М╤П╨╜╨╡╨╜╨║╨╛ <madeinchuguev@gmail.com>
Co-authored-by: ╨Ю╤А╨│╨╕╨╗ ╨Я╥п╤А╤Н╨▓╨┤╨╛╤А╨╢ <orgyldinio@proton.me>
2025-07-22 10:27:32 +01:00
Alex 02c423b326 chore: graceful(not) disposal(be gong) Isar (#20062) 2025-07-21 22:44:39 -05:00
Zack Pollard df318ac641 feat: asset face sync (#20048)
* chore: remove thumbnailPath from person sync dto

* feat: asset face sync
2025-07-21 21:31:45 -04:00
bo0tzz 826eaedae6 feat: play live photos on hover (#19962) 2025-07-21 16:59:42 -05:00
Alex 737e768212 feat: drift partners (#20051)
* feat: drift toggle partner in timeline

* partners operation

* fix: lint
2025-07-21 16:58:53 -05:00
Brandon Wees 99e5b33969 feat: add favorites support to android widget (#20061) 2025-07-21 16:51:16 -05:00
shenlong 7ea8783593 chore: do not render drift migration auto gen files (#20060)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-21 16:48:22 -05:00
Alex 4d27f187ea feat: new upload (cont) (#20029)
* new upload button

* wip

* pr feedback

* fix: updateAll override album selection value

* feat: status box

* feat: handle upload resume

* re-enable websocket event

* fix: update state condition and upload status

* Better backup detail page

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-21 15:30:51 -05:00
shenlong 1dc62fce5f fix: remove foreign constraint on stack.primaryAssetId (#20052)
* fix: remove foreign constraint in stack.primaryAssetId

* fix migration

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-21 15:20:41 -05:00
shenlong 5fc4393e7a feat: migrate backup albums to sqlite (#20049)
* do not migrate again on app start

* migrate backup albums over to sqlite

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-21 12:56:49 -05:00
Alex dee6d072fb fix: memory jarring hero animation (#20030)
* fix: memory jarring hero animation

* remove other hero
2025-07-20 13:56:53 -05:00
Mert 261818ddd9 refactor(mobile): download button in new timeline (#20010)
* download button

* minor improvements
2025-07-19 12:34:17 +03:00
Alex fafb88d31c feat(mobile): new upload (#18726) 2025-07-19 04:58:53 +00:00
Min Idzelis f929dc0816 fix: devcontainer layout (#20021) 2025-07-18 19:07:49 -04:00
Min Idzelis 9e94f52b05 chore: dockerfile layout changes (#19673)
Dockerfile layout changes

Fix up web path

feat: update server env vars for layout
2025-07-18 17:56:26 -04:00
Alex 5d244c6fec chore: finish drift locked page (#20013)
* feat: overlay mechanism

* handle merged asset local id extraction

* locked view asset viewer actions

* pr feedback
2025-07-18 18:16:22 +00:00
megumin dcfe8d5ade fix: send filename when viewing the original file (#20005)
* feat: add fileName to downloadOriginal response

* test: add fileName to ImmichFileResponse for downloadOriginal

* lint: use single quotes for fileName string in test
2025-07-18 11:55:24 -05:00
shenlong 635f5de186 chore: change dcm constraint to include 1.30.0 (#20017)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-18 11:54:35 -05:00
Brandon Wees 9719965caf fix: invalid android manifest (#20015)
fix extra > in android manifest
2025-07-18 11:54:15 -05:00
Min Idzelis f33e1ad94c feat: relocate scripts, PATH update (#20002)
Relocate scripts, and PATH updates
2025-07-18 11:19:06 -04:00
Min Idzelis 576f681b5c feat: remove dep on cwd for workers (#20012) 2025-07-18 10:57:49 -04:00
Jason Rasmussen 493d85b021 feat!: absolute file paths (#19995)
feat: absolute file paths
2025-07-18 10:57:29 -04:00
Brandon Wees f32d4f15b6 feat(mobile): android widgets (#19310)
* wip

* wip widgets

* more wip changes

* latest changes

* working random widget

* cleanup

* add configurable widget

* add memory widget and cleanup of codebase

* album name handling

* add deeplinks

* finish minor refactoring and add some polish :)

* fix single shot type on random widget

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>

* switch to ExposedDropdownMenuBox for random configure activity

* handle empty album and no connection edge cases

* android project cleanup

* fix proguard and gson issues

* fix deletion handling

* fix proguard stripping for widget model classes/enums

* change random configuration activity close to a checkmark on right side

---------

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
2025-07-18 09:37:07 -05:00
Daimolean 7bae49ebd5 feat(mobile): people sync (#19777)
* feat(mobile): drift people sync

* merge main

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-18 14:21:39 +00:00
Alex 2e63b9d951 chore: add sync indicator and better album state management (#20004)
* album list rerendering

* sync indicator

* sync indicator

* fix: lint
2025-07-18 13:39:28 +00:00
Alex 137f0d48c0 chore: styling for asset_viewer bottom sheet (#20006)
bottom sheet styling
2025-07-18 08:36:29 -05:00
renovate[bot] 53acf08263 fix(deps): update dependency multer to v2.0.2 [security] (#20003)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 12:08:57 +02:00
shenlong f32cd74232 feat: show stacks in asset viewer (#19935)
* feat: show stacks in asset viewer

* fix: global key issue and flash on stack asset change

* feat(mobile): stack and unstack action (#19941)

* feat(mobile): stack and unstack action

* add custom model

* use stackId from ActionSource

* Update mobile/lib/providers/infrastructure/action.provider.dart

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>

---------

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>

* fix: lint

* fix: bad merge

* fix: test

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Daimolean <92239625+wuzihao051119@users.noreply.github.com>
Co-authored-by: wuzihao051119 <wuzihao051119@outlook.com>
2025-07-18 04:31:04 +00:00
Alex 546f841b2c chore: migration continue button (#20000)
* feat: add toggle to switch between Isar and Sqlite

* reset sqlite on beta

* start sync on app open in new timeline

* fix lint

* migrate hashes when new timeline is selected

* migrate hashes immediately after beta is enabled

* show loading indicator in change timeline page

* some stylings

* fix some styling issue

* release resources on isolate close

* replace route and styling

* handle migration back to old timeline

* check if a provider is mounted before calling dispose on it

* styling

* styling and button

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-17 15:58:55 -05:00
Daimolean 8491fe459d feat(mobile): drift search page (#19811)
* feat(mobile): drift search page

* migrate to drift page

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-17 15:25:25 -05:00
shenlong 2046dcc5b4 fix: mobile storage status check (#19986)
* fix: _shouldUseLocalAsset check

* show storage indicators in local album view

* update local thumb provider to work with remote asset

* update checks

* do not show upload button when selection is only merged assets

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-17 17:13:21 +00:00
Brandon Wees 03ff425664 chore(mobile): update casting to new asset viewer (#19994)
* update casting to new asset viewer

* handle websocket

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-17 17:08:32 +00:00
Mert 055b930066 refactor(mobile): share action button in new timeline (#19967)
* share asset button

* include source

* move to repository

* formatting
2025-07-17 11:41:30 -05:00
shenlong 531515daf9 feat: add toggle to switch between Isar and Sqlite (#19953) 2025-07-17 11:12:29 -05:00
Min Idzelis b256c51b6b docs: update devcontainer docs (#19237) 2025-07-17 14:49:55 +00:00
Lucas Correia 238dc7c085 chore: adjust setting subtitle to less clumsy expression (#19970) 2025-07-17 15:40:49 +02:00
bo0tzz 184c7390a1 chore: also redirect docs/ with trailing slash (#19965)
Cause I keep running into that lol
2025-07-16 21:14:58 -05:00
Mert 649221176c refactor(mobile): delete local button in new timeline (#19961)
* delete local action button

* include source

* move prompt

* batch
2025-07-16 16:25:41 -05:00
renovate[bot] eae2471ab5 chore(deps): update base-image to v202507162011 (major) (#19983)
chore(deps): update base-image to v202507162011

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-16 16:22:33 -05:00
shenlong bfceed15da feat: add license page to app bar dialog (#19971)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-16 09:36:17 -05:00
bo0tzz d9891f759e chore: use upstream setup-dcm action (#19963) 2025-07-16 09:35:36 -05:00
evan314159 32f23b8d38 fix(web): prevent flashing white background in dark mode on page load/reload (#19934)
* prevent flashing white background in dark mode on page load/reload, tested with Safari and Chrome on macOS

* integrate into existing FOUC-prevention

---------

Co-authored-by: Evan <evan@MacBook-Pro.local>
2025-07-16 14:34:45 +00:00
Brandon Wees 743b6644e9 feat(widgets): iOS widget improvements (#19893)
* improvements to error handling, ability to select "Favorites" as a virtual album, fix widgets not showing image when tinting homescreen

* dont include isFavorite all the time

* remove check for if the album exists

this will never run because we default to Album.NONE and its impossible to distinguish between no album selected and album DNE (we dont know what the store ID is, only what iOS gives)
2025-07-15 21:17:24 -05:00
Alex 34620e1e9a feat: album edit (#19936) 2025-07-15 20:37:44 -05:00
Jason Rasmussen bcb968e3d1 refactor: job names (#19949) 2025-07-15 18:39:00 -04:00
Jason Rasmussen e73abe0762 refactor: enum casing (#19946) 2025-07-15 14:50:13 -04:00
Jason Rasmussen 920d7de349 refactor: event names (#19945) 2025-07-15 13:41:19 -04:00
Jason Rasmussen 351701c4d6 refactor: validate enum (#19943) 2025-07-15 17:14:57 +00:00
Min Idzelis 68f249bc03 feat: improve geodata import speed (#19906)
chore(deps): update dependency vite to v7 (#19657)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-15 16:23:41 +00:00
renovate[bot] eca54871d0 chore(deps): update docker.io/valkey/valkey:8-bookworm docker digest to facc1d2 (#19932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-15 15:43:36 +00:00
renovate[bot] b359eea124 chore(deps): update prom/prometheus docker digest to 63805eb (#19933)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-15 16:43:14 +01:00
renovate[bot] c18f167e29 chore(deps): update immich-app/devtools action to v0.1.1 (#19938)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-15 16:42:49 +01:00
Daimolean ba262fbaa8 feat(mobile): drift place page (#19914)
* feat(mobile): drift place page

* merge main

* feat(mobile): drift place detail page (#19915)

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-15 15:10:12 +00:00
Alex 59e7754bdc feat: websocket background sync (#19888)
* feat: websocket background sync

* batch websocket

* pr feedback
2025-07-15 09:38:28 -05:00
Daimolean 0acbf1199a feat(mobile): drift user metadata sync (#19894)
* feat(mobile): drift user metadata sync

* change text to jsonb

* update primary key

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-15 09:17:35 -05:00
Hamish daea57f7d2 feat(web): better coordinate parsing (#19832)
feat: better coordinate parsing
2025-07-15 08:32:43 -05:00
renovate[bot] 82c3165247 fix(deps): update typescript-projects (#19808)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-14 22:30:39 +00:00
bo0tzz 3a854d77ac fix: use IMMICH_HOST env var in ML healthcheck (#19844)
Fixes #19843
2025-07-14 18:08:29 -04:00
Lukas ccd0c35ca1 fix(web): adjust button size in person side panel (#19924)
* fix(web): adjust button size in person side panel

* round edit button
2025-07-14 18:05:34 -04:00
Lukas 5f10a4cae7 fix(web): allow renaming person without merging (#19923)
* fix(web): allow renaming person without merging

* improve return type
2025-07-14 14:24:32 -05:00
shenlong 9abb95d34a feat: handle live photos on new asset viewer (#19926)
sync and handle livePhotoVideoId in asset viewer

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-14 14:23:24 -05:00
Jason Rasmussen 805ec3e351 chore: asset sync FKs (#19927) 2025-07-14 10:57:25 -05:00
Sergey Katsubo a97ba4862f fix(docs): Nightly Tasks Settings (#19907)
* Document new Nightly Tasks Settings

* Add a link to the settings

* List jobs that are configured in their own System Settings sections
2025-07-14 10:24:34 -04:00
Jason Rasmussen c699df002a feat: rename schema (#19891) 2025-07-14 10:13:06 -04:00
shenlong 33c29e4305 chore: pass flavor to vscode flutter codelens (#19919) 2025-07-14 07:32:29 -05:00
Dominik Vogel b0098d6d23 Update external-library.md (#19901) 2025-07-12 19:50:51 +00:00
renovate[bot] 04aab6ecce chore(deps): update dependency vite to v7 (#19657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-11 23:32:35 +02:00
Jason Rasmussen 47c0dc0d7e feat: nightly tasks (#19879) 2025-07-11 17:32:10 -04:00
Daniel Dietzler df581cc0d5 feat: UserMetadata sync (#19882)
* feat: UserMetadata sync

* refactor: sync table filters (#19887)
2025-07-11 18:19:53 +00:00
Jason Rasmussen 9e48ae3052 feat: naming strategy (#19848)
* feat: naming strategy

* feat: detect renames
2025-07-11 11:35:10 -04:00
shenlong 1d19d308e2 chore: update flutter to 3.32.6 (#19878)
* chore: update flutter to 3.32.6

* fix lint

* fix asset viewer scroll physics

* test: change init order for map test

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-11 10:34:49 -05:00
Alex de4217cefc feat: action buttons in more view (#19867)
* feat: action buttons in more view

* pr feedback
2025-07-11 10:34:38 -05:00
Jason Rasmussen 617a2f146d fix: startup log level (#19885) 2025-07-11 11:22:38 -04:00
Alex 2b07d7ac63 feat: remove from album action button (#19884)
* feat: remove from album action

* feat: remove from album action
2025-07-11 10:06:53 -05:00
Jason Rasmussen 1cc5ca14ca feat: allow unordered migrations in dev (#19881) 2025-07-11 10:58:34 -04:00
shenlong a625921e8f refactor: timeline repo queries (#19871)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-11 14:57:46 +00:00
Zach McGaughey a17bba3328 fix: allow insecure connections in iOS WidgetExtension (#19863)
Allow insecure connections in WidgetExtension
2025-07-11 08:46:17 -05:00
Jason Rasmussen 4b3a4725c6 feat: pending sync reset flag (#19861) 2025-07-11 09:38:02 -04:00
shenlong 34f0f6c813 chore: rename new migration to execute last (#19872)
chore: rename new migration to change execution order

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-11 08:41:06 -04:00
Min Idzelis 906d14c172 chore: missing @types dependency for geojson (#19870) 2025-07-11 13:42:25 +02:00
Alex d087f7c870 chore: beta flavor build (#19862)
* chore: beta flavor build

* make file

* beta flavor

* add build flavor to GHA

* add build flavor to GHA
2025-07-10 21:42:29 -05:00
Min Idzelis de345a9524 chore: makefile split setup tasks (#19739)
Makefile split setup tasks
2025-07-10 21:35:39 -04:00
Min Idzelis badd7ea2a9 chore: more missing deps (#19868) 2025-07-11 00:56:04 +02:00
shenlong 7d8f56b483 chore: hero animations (#19860)
* remove herocontrollerscope

* handle heroOffset in new timeline

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-10 20:25:18 +00:00
shenlong 70b73145f1 fix: ensure buffer loaded before opening asset viewer (#19864)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-10 20:21:50 +00:00
Brandon Wees d178c52ba6 fix: cold start deep link logic (#19859) 2025-07-10 14:27:42 -05:00
SGT 55fe67dd20 fix(server): clear activity when asset is removed from album (#19019) 2025-07-10 19:37:56 +02:00
Jason Rasmussen ed4c7817e7 feat: AssetUploadReadyV1 event (#19858) 2025-07-10 13:30:10 -04:00
Zack Pollard 39c95f1280 refactor: rename geodata pk constraint to match runtime constraint name (#19856) 2025-07-10 17:18:51 +00:00
Daimolean 4ddd3764b4 feat(mobile): hide storage indicator outside main timeline (#19835)
* feat(mobile): hide storage indicator outside main timeline

* fix: lint

* set default as false

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-10 11:59:52 -05:00
Alex 68db17028b feat: new create album page (#19731)
* feat: new create album page

* finished create album flow

* refactor into stateful widgets

* refactor

* focus fix

* lint

* default sort

* pr feedback
2025-07-10 11:59:15 -05:00
immich-tofu[bot] 1f50a0075e chore: modify .github/workflows/org-checks.yml 2025-07-10 15:59:44 +00:00
Zack Pollard b19884d01e feat(server): people sync (#19854)
* chore: fix missing usage of deleteType for syncMemoriesV1

* chore: add src path for proper absolute imports in jetbrains

* feat: people sync
2025-07-10 11:32:42 -04:00
Alex feff1899ee feat: expanded sliver app bar (#19827)
* use mutex

* feat: cool app bar

* animation

* adapt to more pages

* animation

* better animation

* fix: asset count

* Revert "fix: asset count"

This reverts commit 673a5b264b.

* fix: asset count

* fix: shaky animation on Android

* tunning

* offset SizedBox to fix scroll jump on multiselect

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-10 10:13:46 -05:00
Sergey Katsubo 977d6452f6 fix(docs): library and folders minor adjustments (#19642) 2025-07-10 14:31:06 +00:00
L├йopold Koprivnik f778adea92 feat: adds option to search only for untagged assets (#19730)
Co-authored-by: SkwalExe <skwal@skwal.net>
2025-07-10 16:28:20 +02:00
Min Idzelis 818bdde317 chore: update base images (#19741)
Update base images
2025-07-09 19:22:01 -04:00
Mert fd48a33686 refactor(mobile): image thumbnails (#19821)
* image thumbnail refactor

* minor const-ification in new thumbnail tile

* underscore helper classes

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-07-09 14:16:09 -05:00
Brandon Wees a918481c0b feat(mobile): cache latest ios widget entry for fallback (#19824)
* cache the last image an ios widget fetched and use if a fetch fails in a future timeline build

* code review fixes

* downgrade pbx for flutter

* use cache in snapshots
2025-07-09 13:59:54 -05:00
renovate[bot] a201665b7e chore(deps): update base-image to v202507091427 (major) (#19840)
chore(deps): update base-image to v202507091427

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 12:52:11 -05:00
Brandon Wees 2a222fcfba chore(docs): roadmap updates (#19841) 2025-07-09 16:54:00 +01:00
immich-tofu[bot] d902e7f87d chore: modify .github/workflows/org-checks.yml 2025-07-09 15:23:30 +00:00
shenlong 6278fe43c0 fix: run reload within a mutex (#19826)
* fix: run reload within a mutex

* change total assets before emitting the reload event

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-07-09 10:15:37 -05:00
shenlong dfe6d27bbd feat: sqlite video player (#19792)
* feat: video player

* use remote asset id in local query

* fix: error from pre-caching beyond total assets

* fix: flipped local videos

* incorrect aspect ratio on iOS

* ignore other storage id during equals check

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-09 09:34:25 -05:00
Jason Rasmussen 51ab7498e9 feat: create table with constraints (#19828) 2025-07-09 09:13:14 -04:00
Hamish 4db76ddcf0 feat(web): update icons (#19831)
* fix: update password icon in user settings

* feat: add icons to more modals
2025-07-09 02:12:16 +00:00
Brandon Wees d03eb87058 fix(mobile): deeplinking to asset view while viewer is already open (#19812)
* initial attempt at new guard

* do not resolve the route when replaced

* Update gallery_guard.dart comment

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-08 10:50:59 -05:00
Daimolean a556de67b0 feat(mobile): drift local albums page (#19817)
* feat(mobile): drift local albums page

* fix: lint

* refactor: use AsyncValue

* fix: lint

* local album thumbnail

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-08 15:37:57 +00:00
Daimolean e703685d8d feat(mobile): drift partner detail page (#19815)
* feat(mobile): drift partner detail page

* fix: lint
2025-07-08 10:31:07 -05:00
Daimolean 172388c455 feat(mobile): drift recently taken page (#19814)
* feat(mobile): drift recently taken page

* fix: lint

* refactor(mobile): timeline queries (#19818)

refactor: remote assets query to take single user id

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>

---------

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-08 13:54:29 +00:00
Jason Rasmussen df4a27e8a7 feat: sql-tools overrides (#19796) 2025-07-08 08:17:40 -04:00
renovate[bot] 1f9813a28e chore(deps): update github/codeql-action action to v3.29.2 (#19806)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 12:26:07 +01:00
renovate[bot] bbfff45058 chore(deps): update redis:6.2-alpine docker digest to 03fd052 (#19804)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-08 12:18:58 +02:00
Alex 87dd09d103 feat: selection mode timeline (#19734)
* feat: new page

* force multi-selection state

* fix: provider scoping

* Return selected assets

* lint

* lint

* simplify provider scope and drop drilling

* selection styling
2025-07-08 10:11:37 +05:30
Alex dd94ad17aa fix: scrubber scroll error when page is not long enough (#19809) 2025-07-07 23:30:47 -05:00
renovate[bot] a87c2e82cd fix(deps): update typescript-projects (#19666)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-07 20:29:58 +00:00
bo0tzz a11ab4c3f7 chore: tidy up DCM analysis workflow (#19797) 2025-07-07 15:11:44 -05:00
Daimolean ebf2f9fd7b feat(mobile): drift library page (#19789)
* feat(mobile): drift library page

* merge main & fix sliver padding

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-07-07 15:11:16 -05:00
Daimolean 683af67344 feat(mobile): drift video page (#19784)
* feat(mobile): drift video page

* filter motional parts

* remove status indicator join

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-07-07 18:51:49 +00:00
Daimolean d149d6fa3f feat(mobile): drift favorite page (#19783)
* feat(mobile): drift favorite page

* remove status indicator join
2025-07-07 12:57:08 -05:00
Alex 8c5269c002 chore: lock DCM version in GHA (#19795) 2025-07-07 17:56:54 +00:00
Daimolean cf91d9bdfc feat(mobile): drift locked folder page (#19746)
* feat(mobile): drift locked folder page

* feat: include local indicator

* remove join in bucket

* remove status indicator join

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-07-07 04:29:33 +00:00
Daimolean 5579554532 feat(mobile): drift trash page (#19745)
* feat(mobile): drift trash page

* feat: include local indicator

* remove join in bucket

* remove indicator join

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-07-07 04:05:40 +00:00
Damiano Ferrari 7e35e6985e chore: Use a contrasted color for text avatar (#19756) 2025-07-06 22:59:48 -05:00
Daimolean 56756baea2 feat(mobile): drift archive page (#19740)
* feat(mobile): drift archive page

* fix: lint

* feat: include local indicator

* remove join in bucket

* remove showing local indicator in bucket

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: alex <alex@localhost-live.localdomain>
2025-07-07 03:51:58 +00:00
matthieu-db d5923241b5 fix: add quiet zone to QR code (#19771)
Add quiet zone to QR code

This is needed for the QR code to be readable by many QR readers. It is also a requirement for it to be a valid QR code.
2025-07-06 22:06:36 -05:00
Daimolean cc471806fe feat(mobile): stack sync (#19735)
* feat(mobile): stack sync

* fix: lint

* Update mobile/lib/infrastructure/repositories/sync_api.repository.dart

Co-authored-by: Alex <alex.tran1502@gmail.com>

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-06 22:01:09 -05:00
Daniel Dietzler 4ce9bce414 feat: oauth role claim (#19758) 2025-07-06 18:45:32 -04:00
OffsetMonkey538 2f5d75ce21 docs: fix typo of webp listed under jpeg (#19743) 2025-07-05 15:52:22 +00:00
Daimolean fb384fe90b fix(web): viewing asset lock (#19499)
* fix(web): viewing asset lock

* fix: lint

* make mutex stateless

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-07-05 02:52:39 +00:00
shenlong 73733370a2 feat: adds bottom sheet map and actions (#19726)
* reduce timeline rebuilds

* feat: adds bottom sheet map and actions (#19692)

* adds bottom sheet map and actions

* PR feedbacks

* only reload the asset viewer if asset is changed

* styling tweak

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>

* rename singleton and remove event prefix

* adds bottom sheet map and actions

* PR feedbacks

* refactor: use provider for viewer state

* feat: adds top and bottom app bar

* add safe area to bottom app bar

* change app and bottom bar color

* viewer - always have black background

* use the full width for the bottom sheet on landscape as well

* constraint the bottom sheet to not expand all the way

* add padding for location details in landscape

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-04 14:08:06 -05:00
Alex 4a2cf28882 feat: memories in new timeline (#19720)
* feat: memories sliver

* memories lane

* display and show memory

* fix: get correct memories

* naming

* pr feedback

* use equalsValue for visibility

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-04 13:49:15 -05:00
shenlong 181efb9010 refactor: reduce timeline rebuilds (#19704)
* reduce timeline rebuilds

* feat: adds bottom sheet map and actions (#19692)

* adds bottom sheet map and actions

* PR feedbacks

* only reload the asset viewer if asset is changed

* styling tweak

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>

* rename singleton and remove event prefix

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-04 10:30:34 -05:00
renovate[bot] b00d44a00c fix(deps): update machine-learning (#19647) 2025-07-03 20:28:34 +00:00
Jason Rasmussen 6044663e26 refactor: sql-tools (#19717) 2025-07-03 10:59:17 -04:00
aviv926 484529e61e feat(server): add immich and postgres version to the database backup name (#19603) 2025-07-03 10:35:24 +01:00
Alex 445f9174ea feat: memories sync (#19644)
* feat: memories sync

* Update mobile/lib/infrastructure/repositories/sync_stream.repository.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update mobile/lib/infrastructure/repositories/sync_stream.repository.dart

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* show sync information

* tests and pr feedback

* pr feedback

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-02 19:18:37 +00:00
shenlong 7855974a29 feat(mobile): sqlite asset viewer (#19552)
* add full image provider and refactor thumb providers

* photo_view updates

* wip: asset-viewer

* fix controller dispose on page change

* wip: bottom sheet

* fix interactions

* more bottomsheet changes

* generate schema

* PR feedback

* refactor asset viewer

* never rotate and fix background on page change

* use photoview as the loading builder

* precache after delay

* claude: optimizing rebuild of image provider

* claude: optimizing image decoding and caching

* use proper cache for new full size image providers

* chore: load local HEIC fullsize for iOS

* make controller callbacks nullable

* remove imageprovider cache

* do not handle drag gestures when zoomed

* use loadOriginal setting for HEIC / larger images

* preload assets outside timer

* never use same controllers in photo-view gallery

* fix: cannot scroll down once swipe with bottom sheet

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-02 18:24:37 +00:00
Daimolean ec603a008c feat(mobile): unarchive and unfavorite action (#19678) 2025-07-02 12:27:30 -05:00
shenlong 14276f41d8 fix: handle null bucket name during android sync (#19685)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-02 12:26:42 -05:00
Daimolean a644cabab6 feat(mobile): trash and delete action (#19681)
* feat(mobile): trash and delete action

* fix lint
2025-07-02 12:26:07 -05:00
Daimolean b8e67d0ef9 fix(mobile): filter deleted assets (#19683) 2025-07-02 12:25:14 -05:00
Min Idzelis ca78bc91b6 feat: fully qualified path in error msg (#19674)
* feat: fully qualified path in error msg

* import style
2025-07-02 09:31:20 -04:00
shenlong f2f3db3a79 refactor: action provider (#19677)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-01 23:08:52 -05:00
Jason Rasmussen c435bdb5d3 refactor: sql-tools readers (#19672) 2025-07-01 22:57:17 -04:00
Min Idzelis 15da0d5a71 fix: email button (#19675) 2025-07-01 22:48:41 -04:00
Min Idzelis 090d87f82e chore: dev environment improvements and dependency updates (#19676) 2025-07-01 22:47:59 -04:00
Alex 25efba8fe6 chore: remove share link success prompt (#19671) 2025-07-01 16:55:17 +00:00
Daimolean 83afd49f5c feat(mobile): edit location action (#19645)
* change dto from integer to double

* feat(mobile): edit location action

* patch openapi

* refactor in provider

* fix lint

* chore: not showing success prompt if dimissed

* i18n

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-01 16:52:11 +00:00
Ramon Smits 639ede78c2 docs: document DB_STORAGE_TYPE environment variable (#19609)
Co-authored-by: Zack Pollard <github@zackpollard.uk>
2025-07-01 16:13:24 +00:00
shenlong 15be3437bf fix: timeline service uninitialised across routes (#19544) 2025-07-01 10:23:20 -05:00
Daimolean f59b0bab5a refactor(mobile): action provider (#19669)
* refactor action provider

* fix lint
2025-07-01 10:18:23 -05:00
Alex fa418d778b feat: lock folder action (#19634)
* feat: lock folder action

* refactor
2025-07-01 14:03:45 +00:00
bo0tzz e0c4b8df6f chore: remove runner deps install step (#19527)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-01 14:18:14 +01:00
Min Idzelis 7f9689b4bc feat: bin for cli (#19648) 2025-07-01 08:00:41 -04:00
seifer44 e6f8bfdf5e chore(docs): add instruction for trusting self-signed certificates with Immich and an OAuth server (#18624) 2025-07-01 11:21:57 +00:00
Min Idzelis 8ccca04e27 fix(web): improve request cancellation handling in service worker cache (#19217) 2025-07-01 11:53:04 +01:00
Daniel Dietzler 53f80393bf chore: upgrade to cron v4 (#19664) 2025-07-01 12:47:04 +02:00
renovate[bot] e5e857edc3 chore(deps): update prom/prometheus docker digest to 7a34573 (#19646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 11:33:39 +01:00
renovate[bot] 590f96246d chore(deps): update github-actions (#19654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 11:33:01 +01:00
renovate[bot] 38d73f2bc6 chore(deps): update dependency @types/node to ^22.15.33 (#19653)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 11:32:11 +01:00
renovate[bot] 96e3b96d57 fix(deps): update dependency nestjs-otel to v7 (#19662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 11:02:46 +01:00
renovate[bot] 36b018e355 fix(deps): update typescript-projects (#18898)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-07-01 10:00:35 +00:00
renovate[bot] 214ca50406 chore(deps): update node.js to v22.17.0 (#19656)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 10:59:31 +01:00
renovate[bot] 29b3981609 fix(deps): update dependency nestjs-kysely to v3 (#19660)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-01 10:27:20 +01:00
Mert a068a41c06 fix(server): prevent duplicate geodata temp table (#18580)
drop tmp table, create gist index first
2025-06-30 23:28:30 -04:00
bo0tzz 3c6e9e1191 feat: use request host as default SSR domain (#19485)
fix: hostname and domain confusion

chore: e2e test
2025-06-30 23:24:44 -04:00
Min Idzelis db0415bbcc chore: undeclared versions/updates (#19649) 2025-06-30 23:23:41 -04:00
shenlong a5c431fbf5 refactor: animate bottom sheet (#19655)
* refactor: animate bottom sheet

* rebase on main

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-06-30 22:23:38 -05:00
Min Idzelis a3d588f6bd feat: makefile improvements (#19650) 2025-06-30 21:40:42 -05:00
shenlong 21f500191a refactor: actions provider (#19651)
* refactor: actions provider

* chore: rename error and stack

* remove empty checks

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-01 08:10:25 +05:30
shenlong 5011636d95 refactor: header - bulk select icon (#19652)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-06-30 21:33:37 -05:00
Alex 3f330c6476 feat: drift album page (#19564)
* feat: drift album page

* feat: page renderred

* feat: asset count

* refactor: use statefulwidget

* refactor: private widgets

* refactor: service layer

* refactor: import

* feat: get owner name

* pr feedback

* pr feedback

* pr feedback

* pr feedback
2025-07-01 07:54:50 +05:30
Daimolean bb8755021d revert: timeout (#19639) 2025-06-30 17:02:50 -05:00
Jason Rasmussen 93f9e118ad refactor: timeline tests (#19641) 2025-06-30 17:43:45 -04:00
Jason Rasmussen 58ca1402ed feat: sync partner stacks (#19635) 2025-06-30 16:41:06 -04:00
Daimolean 32a7087883 feat(mobile): archive action (#19630)
* feat(mobile): archive action

* fix: lint

* Update i18n/en.json

Co-authored-by: Alex <alex.tran1502@gmail.com>

* fix: lint

* fix: lint

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-30 14:38:15 -05:00
Daimolean 53020852ec fix(web): modal race condition (#19625)
* fix(web): modal race condition

* fix: translation

* fix: translation
2025-06-30 14:33:47 -05:00
Jason Rasmussen 181a7e115f feat: sync stacks (#19629) 2025-06-30 14:26:41 -05:00
Alex 095ace8687 feat: shared link action (#19610) 2025-06-30 17:32:18 +00:00
Alex 4c3fcdc745 feat: favorite action (#19623) 2025-06-30 12:21:09 -05:00
Alex fa5f30d9ca fix: timeline service mismatch state (#19612) 2025-06-30 12:20:13 -05:00
Jason Rasmussen e60bc3c304 refactor: database types (#19624) 2025-06-30 13:19:16 -04:00
Jason Rasmussen 09cbc5d3f4 refactor: change password repository lookup (#19584) 2025-06-27 16:52:04 -04:00
Jason Rasmussen a2a9797fab refactor: auth medium tests (#19583) 2025-06-27 15:35:19 -04:00
Matthew Momjian 3d35e65f27 fix(docs): add DB_USERNAME when needed (#19578)
add DB_USERNAME when needed
2025-06-27 13:54:27 -04:00
Jason Rasmussen df76735f4a refactor: sync repository (#19581) 2025-06-27 13:47:06 -04:00
Jason Rasmussen 6feca56da8 feat: sync memories (#19579) 2025-06-27 12:20:13 -04:00
Alex 97aabe466e feat: action buttons place holder (#19561)
* feat: action buttons place holder

* lint

* Update base_action_button.widget.dart

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>

---------

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
2025-06-27 13:33:46 +00:00
shenlong 72a53f43c8 feat: use sqlite timeline user provider (#19577)
use sqlite timeline user provider

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-06-27 08:29:27 -05:00
Jason Rasmussen 30b4f334d8 feat: upload manager (#19565) 2025-06-27 09:13:43 -04:00
Jason Rasmussen 6c6a32c63e refactor: memory medium tests (#19568) 2025-06-26 19:52:10 -04:00
Jason Rasmussen 6fed223405 fix: array-max-length (#19562) 2025-06-26 19:41:48 +00:00
Jason Rasmussen 3105094a3d refactor: medium tests (#19537) 2025-06-26 15:32:06 -04:00
Jason Rasmussen b96c95beda refactor(server): sync service (#19559) 2025-06-26 17:24:57 +00:00
Daimolean 926ff075a3 fix(web): absolute path match in external library (#19551) 2025-06-26 10:46:34 -05:00
Min Idzelis 934649c8df feat(server): check additional exif date tags (#19216)
* feat(server): check additional exif date tags

- Add support for UTC date tags (GPSDateTime, DateTimeUTC, GPSDateStamp, SonyDateTime2)
- This matches tags that exiftool-vendored uses for tzSource in extractTzOffsetFromUTCOffset()

* Review comments

* nit

* review comments

* lots of tests for exif datetime

* missed

* format

* format again

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-26 10:18:40 -05:00
Brandon Wees a43159f4ba fix(mobile): skip widget updates if on android (#19553)
* fix: skip widget updates if on android

* remove dead line
2025-06-26 10:07:22 -05:00
shenlong ea3a14ed25 feat(mobile): add album asset sync (#19522)
* feat(mobile): add album asset sync

* add SyncAlbumToAssetDeleteV1 to openapi-spec

* update delete queries to use where in statements

* clear remote album when clear remote data

* fix: bad merge

* fix: bad merge

* fix: _SyncAckV1 return type

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: wuzihao051119 <wuzihao051119@outlook.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-06-26 08:50:39 -05:00
shenlong 24a4cba953 fix: enable photo manager custom filter by default (#19520)
enable photo manager custom filter by default

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-06-25 21:28:17 -05:00
shenlong fda22c83b9 fix: sync stream album assets type order (#19540)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-06-25 20:42:56 -05:00
Matthew Momjian 2a8019726c feat(deployment): add shm_size for PG (#19472) 2025-06-25 20:38:37 +01:00
renovate[bot] 5f76cdddc7 chore(deps): update ghcr.io/astral-sh/uv:latest docker digest to 9653efd (#19530)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-25 20:37:53 +01:00
bo0tzz 48be10e48b fix: don't exclude .github folder from make install-all (#19534)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2025-06-25 20:37:40 +01:00
bo0tzz 6c11ef62e8 fix: don't use @master action version (#19526) 2025-06-25 17:55:17 +00:00
shenlong 65dce58aa4 refactor(mobile): do not skip iCloud albums during local sync (#19231)
do not skip cloud albums during local sync

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-25 16:46:31 +00:00
Brandon Wees 64cc7239fe feat(mobile): ios widget deeplink to asset in app (#19510)
* feat: ios widget deeplinks to asset in app

* fix: casing

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-25 11:37:25 -05:00
renovate[bot] 5f89c2d111 chore(deps): pin actions/cache action to 5a3ec84 (#19529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-25 16:21:49 +00:00
Daimolean 4621ec5ea2 fix(web): load day group in asset viewer (#19523)
* fix(web): load day group in asset viewer

* fix: lint
2025-06-25 11:18:11 -05:00
Jason Rasmussen 881a96cdf9 feat: add album asset sync (#19503)
wip: fix album asset exif and some other refactorings

feat: add album assets sync

feat: album to assets relation sync

Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-06-25 16:10:31 +00:00
Alex b001ba44f5 feat: generic control bottom app bar (#19524)
* feat: sliver appbar

* feat: snapping segment

* Date label font size

* lint

* fix: scrollController reinitialize multiple times

* feat: tab navigation

* chore: refactor to private widget

* feat: new control bottom app bar

* bad merge

* feat: sliver control bottom app bar
2025-06-25 16:08:02 +00:00
Zack Pollard afb444c92c fix: only pass in is_main flag to mobile build for zizmor (#19525) 2025-06-25 17:53:08 +02:00
Zack Pollard 027c4a8b34 ci: much faster mobile builds (#19490) 2025-06-25 10:40:53 -05:00
Jason Rasmussen eca9b56847 feat(server): person delete (#19511)
feat(api): person delete
2025-06-25 11:12:36 -04:00
shenlong 5b0575b956 refactor: DCM - const border radius, constructor & switch expressions (#19515)
* enable border radius, switch exp, const constructor

* regenerate provider

* more formatting

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-06-25 13:06:24 +05:30
Alex 05064f87f0 feat: sliver appbar and snap scrubbing (#19446) 2025-06-24 20:02:46 -05:00
Alex 522cdbac99 feat: sliver timeline selection optimization (#19504) 2025-06-24 19:34:30 -05:00
renovate[bot] 9240bbc6ff chore(deps): update github-actions (#19045)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-24 22:54:05 +02:00
Brandon Wees 3751f8bc57 fix: android app link support (#19501)
* fix: android app link support

* add autoVerify tag

* adjust intent to have scheme separate
2025-06-24 12:52:15 -05:00
Jason Rasmussen 88b8afb8d6 fix: return 404 for invalid shared link pages (#19493) 2025-06-24 10:37:14 -05:00
Brandon Wees 2e13543d5d fix: ios widget webp support (#19469) 2025-06-24 10:33:38 -05:00
renovate[bot] bcfc967d77 fix(deps): update machine-learning (#19219) 2025-06-24 17:55:37 +03:00
Brandon Wees 7d0e8f50f7 feat(mobile): deep links (#19232)
* add deep linking on ios app

* add deeplinking to android

* code review fixes

* lint

* cleanly handle malformed URIs when launching app

* refactor deep link builder/service, still have bug with navigation stack not containing TabControllerRoute

* fix: tab controller insertion conditions

* add my.immich.app app linking

* chore: remove one-liner if statement

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-24 09:20:24 -05:00
Jason Rasmussen c759233d8c fix(server): include hidden assets in missing metadata extraction query (#19471) 2025-06-24 08:42:38 -04:00
Min Idzelis bfe32c2bb9 chore: npm caching (#19410) 2025-06-24 12:16:09 +01:00
renovate[bot] 6c7b2e4b5c chore(deps): pin ghcr.io/immich-app/postgres docker tag to 5f6a838 (#19480)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-24 11:19:40 +01:00
renovate[bot] 7edbeb2ed6 chore(deps): update ghcr.io/immich-app/postgres:14-vectorchord0.3.0 docker digest to 3aef84a (#19481)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-24 11:19:00 +01:00
renovate[bot] 4e59a55c1d chore(deps): update dependency @types/node to ^22.15.32 (#19483)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-24 11:18:47 +01:00
renovate[bot] c2d7337d12 chore(deps): update grafana/grafana docker tag to v12.0.2 (#19484)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-24 11:18:35 +01:00
Min Idzelis c1b82bed9b chore: speedup devcontainer start (#19406) 2025-06-24 10:59:52 +01:00
Alex 9ca31abae9 feat: new timeline multi-selection (#19443)
* feat: new timeline multiselection

* select all from bucket

* wip

* group multi-select

* group multi-select

* pr feedback

* pr feedback

* lint
2025-06-24 02:05:25 -05:00
Jason Rasmussen ebcf133bea fix(web): consistent merge people icons (#19473)
fix(web): consistent merge icons
2025-06-23 16:39:20 -04:00
1191 changed files with 89004 additions and 19660 deletions
@@ -11,8 +11,8 @@ services:
- open_api_node_modules:/workspaces/immich/open-api/typescript-sdk/node_modules
- server_node_modules:/workspaces/immich/server/node_modules
- web_node_modules:/workspaces/immich/web/node_modules
- ${UPLOAD_LOCATION}/photos:/workspaces/immich/server/upload
- ${UPLOAD_LOCATION}/photos/upload:/workspaces/immich/server/upload/upload
- ${UPLOAD_LOCATION}/photos:/usr/src/app/upload
- ${UPLOAD_LOCATION}/photos/upload:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
database:
+2 -4
View File
@@ -73,10 +73,8 @@ install_dependencies() {
log "Installing dependencies"
(
cd "${IMMICH_WORKSPACE}" || exit 1
run_cmd make install-server
run_cmd make install-sdk
run_cmd make build-sdk
run_cmd make install-web
export CI=1 FROZEN=1 OFFLINE=1
run_cmd make setup-web-dev setup-server-dev
)
log ""
}
@@ -3,6 +3,7 @@ services:
build:
target: dev-container-server
env_file: !reset []
hostname: immich-dev
environment:
- IMMICH_SERVER_URL=http://127.0.0.1:2283/
volumes: !override
@@ -12,8 +13,8 @@ services:
- open_api_node_modules:/workspaces/immich/open-api/typescript-sdk/node_modules
- server_node_modules:/workspaces/immich/server/node_modules
- web_node_modules:/workspaces/immich/web/node_modules
- ${UPLOAD_LOCATION:-upload1-devcontainer-volume}${UPLOAD_LOCATION:+/photos}:/workspaces/immich/server/upload
- ${UPLOAD_LOCATION:-upload2-devcontainer-volume}${UPLOAD_LOCATION:+/photos/upload}:/workspaces/immich/server/upload/upload
- ${UPLOAD_LOCATION:-upload1-devcontainer-volume}${UPLOAD_LOCATION:+/photos}:/usr/src/app/upload
- ${UPLOAD_LOCATION:-upload2-devcontainer-volume}${UPLOAD_LOCATION:+/photos/upload}:/usr/src/app/upload/upload
- /etc/localtime:/etc/localtime:ro
immich-web:
+20 -12
View File
@@ -1,33 +1,41 @@
.vscode/
.github/
.git/
.env*
*.log
*.tmp
*.temp
**/Dockerfile
**/node_modules/
**/.pnpm-store/
**/dist/
**/coverage/
**/build/
design/
docker/
!docker/scripts
docs/
!docs/package.json
!docs/package-lock.json
e2e/
!e2e/package.json
!e2e/package-lock.json
fastlane/
machine-learning/
misc/
mobile/
cli/coverage/
cli/dist/
cli/node_modules/
open-api/typescript-sdk/build/
open-api/typescript-sdk/node_modules/
!open-api/typescript-sdk/package.json
!open-api/typescript-sdk/package-lock.json
server/coverage/
server/node_modules/
server/upload/
server/src/queries
server/dist/
server/www/
web/node_modules/
web/coverage/
web/.svelte-kit
web/build/
web/.env
+6
View File
@@ -12,6 +12,12 @@ mobile/lib/**/*.drift.dart linguist-generated=true
mobile/drift_schemas/main/drift_schema_*.json -diff -merge
mobile/drift_schemas/main/drift_schema_*.json linguist-generated=true
mobile/lib/infrastructure/repositories/db.repository.steps.dart -diff -merge
mobile/lib/infrastructure/repositories/db.repository.steps.dart linguist-generated=true
mobile/test/drift/main/generated/** -diff -merge
mobile/test/drift/main/generated/** linguist-generated=true
open-api/typescript-sdk/fetch-client.ts -diff -merge
open-api/typescript-sdk/fetch-client.ts linguist-generated=true
+1 -1
View File
@@ -1 +1 @@
22.16.0
22.17.1
+4
View File
@@ -0,0 +1,4 @@
# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock
+3 -3
View File
@@ -9,9 +9,9 @@
}
},
"node_modules/prettier": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
"dev": true,
"license": "MIT",
"bin": {
+45 -11
View File
@@ -58,7 +58,7 @@ jobs:
contents: read
# Skip when PR from a fork
if: ${{ !github.event.pull_request.head.repo.fork && github.actor != 'dependabot[bot]' && needs.pre-job.outputs.should_run == 'true' }}
runs-on: macos-14
runs-on: mich
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -66,24 +66,40 @@ jobs:
ref: ${{ inputs.ref || github.sha }}
persist-credentials: false
- name: Create the Keystore
env:
KEY_JKS: ${{ secrets.KEY_JKS }}
working-directory: ./mobile
run: printf "%s" $KEY_JKS | base64 -d > android/key.jks
- uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
distribution: 'zulu'
java-version: '17'
cache: 'gradle'
- name: Restore Gradle Cache
id: cache-gradle-restore
uses: actions/cache/restore@5a3ec84eff668545956fd18022155c47e93e2684 # v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
~/.android/sdk
mobile/android/.gradle
mobile/.dart_tool
key: build-mobile-gradle-${{ runner.os }}-main
- name: Setup Flutter SDK
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2.19.0
uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0
with:
channel: 'stable'
flutter-version-file: ./mobile/pubspec.yaml
cache: true
- name: Create the Keystore
env:
KEY_JKS: ${{ secrets.KEY_JKS }}
working-directory: ./mobile
run: echo $KEY_JKS | base64 -d > android/key.jks
- name: Setup Android SDK
uses: android-actions/setup-android@9fc6c4e9069bf8d3d10b2204b1fb8f6ef7065407 # v3.2.2
with:
packages: ''
- name: Get Packages
working-directory: ./mobile
@@ -103,12 +119,30 @@ jobs:
ALIAS: ${{ secrets.ALIAS }}
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
IS_MAIN: ${{ github.ref == 'refs/heads/main' }}
run: |
flutter build apk --release
flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64,android-x64
if [[ $IS_MAIN == 'true' ]]; then
flutter build apk --release --flavor production
flutter build apk --release --flavor production --split-per-abi --target-platform android-arm,android-arm64,android-x64
else
flutter build apk --debug --flavor production --split-per-abi --target-platform android-arm64
fi
- name: Publish Android Artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: release-apk-signed
path: mobile/build/app/outputs/flutter-apk/*.apk
path: mobile/build/app/outputs/flutter-apk/**/*.apk
- name: Save Gradle Cache
id: cache-gradle-save
uses: actions/cache/save@5a3ec84eff668545956fd18022155c47e93e2684 # v4
if: github.ref == 'refs/heads/main'
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
~/.android/sdk
mobile/android/.gradle
mobile/.dart_tool
key: ${{ steps.cache-gradle-restore.outputs.cache-primary-key }}
+5 -2
View File
@@ -38,6 +38,9 @@ jobs:
with:
node-version-file: './cli/.nvmrc'
registry-url: 'https://registry.npmjs.org'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Prepare SDK
run: npm ci --prefix ../open-api/typescript-sdk/
- name: Build SDK
@@ -67,7 +70,7 @@ jobs:
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
- name: Login to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
@@ -96,7 +99,7 @@ jobs:
type=raw,value=latest,enable=${{ github.event_name == 'release' }}
- name: Build and push image
uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
with:
file: cli/Dockerfile
platforms: linux/amd64,linux/arm64
+3 -3
View File
@@ -50,7 +50,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
uses: github/codeql-action/init@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -63,7 +63,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
uses: github/codeql-action/autobuild@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
# тД╣я╕П Command-line programs to run using the OS shell.
# ЁЯУЪ See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@@ -76,6 +76,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
uses: github/codeql-action/analyze@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
with:
category: '/language:${{matrix.language}}'
+4 -4
View File
@@ -131,7 +131,7 @@ jobs:
tag-suffix: '-rocm'
platforms: linux/amd64
runner-mapping: '{"linux/amd64": "mich"}'
uses: immich-app/devtools/.github/workflows/multi-runner-build.yml@094bfb927b8cd75b343abaac27b3241be0fccfe9 # multi-runner-build-workflow-0.1.0
uses: immich-app/devtools/.github/workflows/multi-runner-build.yml@129aeda75a450666ce96e8bc8126652e717917a7 # multi-runner-build-workflow-0.1.1
permissions:
contents: read
actions: read
@@ -154,7 +154,7 @@ jobs:
name: Build and Push Server
needs: pre-job
if: ${{ needs.pre-job.outputs.should_run_server == 'true' }}
uses: immich-app/devtools/.github/workflows/multi-runner-build.yml@094bfb927b8cd75b343abaac27b3241be0fccfe9 # multi-runner-build-workflow-0.1.0
uses: immich-app/devtools/.github/workflows/multi-runner-build.yml@129aeda75a450666ce96e8bc8126652e717917a7 # multi-runner-build-workflow-0.1.1
permissions:
contents: read
actions: read
@@ -177,7 +177,7 @@ jobs:
runs-on: ubuntu-latest
if: always()
steps:
- uses: immich-app/devtools/actions/success-check@6b81b1572e466f7f48ba3c823159ce3f4a4d66a6 # success-check-action-0.0.3
- uses: immich-app/devtools/actions/success-check@68f10eb389bb02a3cf9d1156111964c549eb421b # 0.0.4
with:
needs: ${{ toJSON(needs) }}
@@ -188,6 +188,6 @@ jobs:
runs-on: ubuntu-latest
if: always()
steps:
- uses: immich-app/devtools/actions/success-check@6b81b1572e466f7f48ba3c823159ce3f4a4d66a6 # success-check-action-0.0.3
- uses: immich-app/devtools/actions/success-check@68f10eb389bb02a3cf9d1156111964c549eb421b # 0.0.4
with:
needs: ${{ toJSON(needs) }}
+2
View File
@@ -57,6 +57,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './docs/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Run npm install
run: npm ci
+2
View File
@@ -32,6 +32,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './server/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Fix formatting
run: make install-all && make format-all
+13
View File
@@ -0,0 +1,13 @@
name: Org Checks
on:
pull_request_review:
pull_request:
jobs:
check-approvals:
name: Check for Team/Admin Review
uses: immich-app/devtools/.github/workflows/required-approval.yml@main
permissions:
pull-requests: read
contents: read
+1 -1
View File
@@ -14,7 +14,7 @@ jobs:
pull-requests: write
steps:
- name: Require PR to have a changelog label
uses: mheap/github-action-required-labels@fb29a14a076b0f74099f6198f77750e8fc236016 # v5.5.0
uses: mheap/github-action-required-labels@8afbe8ae6ab7647d0c9f0cfa7c2f939650d22509 # v5.5.1
with:
mode: exactly
count: 1
+1 -1
View File
@@ -100,7 +100,7 @@ jobs:
name: release-apk-signed
- name: Create draft release
uses: softprops/action-gh-release@da05d552573ad5aba039eaac05058a918a7bf631 # v2.2.2
uses: softprops/action-gh-release@72f2c25fcb47643c292f7107632f7a47c1df5cd8 # v2.3.2
with:
draft: true
tag_name: ${{ env.IMMICH_VERSION }}
+2
View File
@@ -25,6 +25,8 @@ jobs:
with:
node-version-file: './open-api/typescript-sdk/.nvmrc'
registry-url: 'https://registry.npmjs.org'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Install deps
run: npm ci
- name: Build
+12 -17
View File
@@ -42,6 +42,9 @@ jobs:
runs-on: ubuntu-latest
permissions:
contents: read
defaults:
run:
working-directory: ./mobile
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -49,34 +52,29 @@ jobs:
persist-credentials: false
- name: Setup Flutter SDK
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2.19.0
uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0
with:
channel: 'stable'
flutter-version-file: ./mobile/pubspec.yaml
- name: Install dependencies
run: dart pub get
working-directory: ./mobile
- name: Install DCM
run: |
sudo apt-get update
wget -qO- https://dcm.dev/pgp-key.public | sudo gpg --dearmor -o /usr/share/keyrings/dcm.gpg
echo 'deb [signed-by=/usr/share/keyrings/dcm.gpg arch=amd64] https://dcm.dev/debian stable main' | sudo tee /etc/apt/sources.list.d/dart_stable.list
sudo apt-get update
sudo apt-get install dcm
uses: CQLabs/setup-dcm@8697ae0790c0852e964a6ef1d768d62a6675481a # v2.0.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
version: auto
working-directory: ./mobile
- name: Generate translation file
run: make translation
working-directory: ./mobile
- name: Run Build Runner
run: make build
working-directory: ./mobile
- name: Generate platform API
run: make pigeon
working-directory: ./mobile
- name: Find file changes
uses: tj-actions/verify-changed-files@a1c6acee9df209257a246f2cc6ae8cb6581c1edf # v20.0.4
@@ -98,19 +96,16 @@ jobs:
- name: Run dart analyze
run: dart analyze --fatal-infos
working-directory: ./mobile
- name: Run dart format
run: dart format lib/ --set-exit-if-changed
working-directory: ./mobile
- name: Run dart custom_lint
run: dart run custom_lint
working-directory: ./mobile
# TODO: Use https://github.com/CQLabs/dcm-action
- name: Run DCM
run: dcm analyze lib
working-directory: ./mobile
run: dcm analyze lib --fatal-style --fatal-warnings
zizmor:
name: zizmor
@@ -134,7 +129,7 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
uses: github/codeql-action/upload-sarif@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
with:
sarif_file: results.sarif
category: zizmor
+30 -4
View File
@@ -84,6 +84,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './server/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Run npm install
run: npm ci
@@ -125,6 +127,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './cli/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Setup typescript-sdk
run: npm ci && npm run build
@@ -170,6 +174,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './cli/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Setup typescript-sdk
run: npm ci && npm run build
@@ -208,6 +214,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './web/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Run setup typescript-sdk
run: npm ci && npm run build
@@ -249,6 +257,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './web/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Run setup typescript-sdk
run: npm ci && npm run build
@@ -282,6 +292,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './web/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Install dependencies
run: npm --prefix=web ci
@@ -326,6 +338,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './e2e/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Run setup typescript-sdk
run: npm ci && npm run build
@@ -369,6 +383,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './server/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Run npm install
run: npm ci
@@ -402,6 +418,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './e2e/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Run setup typescript-sdk
run: npm ci && npm run build
@@ -450,6 +468,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './e2e/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Run setup typescript-sdk
run: npm ci && npm run build
@@ -479,7 +499,7 @@ jobs:
runs-on: ubuntu-latest
if: always()
steps:
- uses: immich-app/devtools/actions/success-check@6b81b1572e466f7f48ba3c823159ce3f4a4d66a6 # success-check-action-0.0.3
- uses: immich-app/devtools/actions/success-check@68f10eb389bb02a3cf9d1156111964c549eb421b # 0.0.4
with:
needs: ${{ toJSON(needs) }}
@@ -496,7 +516,7 @@ jobs:
persist-credentials: false
- name: Setup Flutter SDK
uses: subosito/flutter-action@e938fdf56512cc96ef2f93601a5a40bde3801046 # v2.19.0
uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0
with:
channel: 'stable'
flutter-version-file: ./mobile/pubspec.yaml
@@ -568,6 +588,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './.github/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Run npm install
run: npm ci
@@ -587,7 +609,7 @@ jobs:
persist-credentials: false
- name: Run ShellCheck
uses: ludeeus/action-shellcheck@master
uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # 2.0.0
with:
ignore_paths: >-
**/open-api/**
@@ -609,6 +631,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './server/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Install server dependencies
run: npm --prefix=server ci
@@ -644,7 +668,7 @@ jobs:
contents: read
services:
postgres:
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3@sha256:1f5583fe3397210a0fbc7f11b0cec18bacc4a99e3e8ea0548e9bd6bcf26ec37a
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
@@ -670,6 +694,8 @@ jobs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version-file: './server/.nvmrc'
cache: 'npm'
cache-dependency-path: '**/package-lock.json'
- name: Install server dependencies
run: npm ci
+1 -1
View File
@@ -52,6 +52,6 @@ jobs:
permissions: {}
if: always()
steps:
- uses: immich-app/devtools/actions/success-check@6b81b1572e466f7f48ba3c823159ce3f4a4d66a6 # success-check-action-0.0.3
- uses: immich-app/devtools/actions/success-check@68f10eb389bb02a3cf9d1156111964c549eb421b # 0.0.4
with:
needs: ${{ toJSON(needs) }}
+1
View File
@@ -24,3 +24,4 @@ mobile/android/fastlane/report.xml
mobile/ios/fastlane/report.xml
vite.config.js.timestamp-*
.pnpm-store
+19
View File
@@ -18,6 +18,25 @@
"name": "Immich Workers",
"remoteRoot": "/usr/src/app",
"localRoot": "${workspaceFolder}/server"
},
{
"name": "Flavor - Production",
"request": "launch",
"type": "dart",
"codeLens": {
"for": [
"run-test",
"run-test-file",
"run-file",
"debug-test",
"debug-test-file",
"debug-file",
],
"title": "${debugType}",
},
"args": [
"--flavor", "production"
],
}
]
}
+21 -9
View File
@@ -1,27 +1,33 @@
dev:
docker compose -f ./docker/docker-compose.dev.yml up --remove-orphans || make dev-down
@trap 'make dev-down' EXIT; COMPOSE_BAKE=true docker compose -f ./docker/docker-compose.dev.yml up --remove-orphans
dev-down:
docker compose -f ./docker/docker-compose.dev.yml down --remove-orphans
dev-update:
docker compose -f ./docker/docker-compose.dev.yml up --build -V --remove-orphans
@trap 'make dev-down' EXIT; COMPOSE_BAKE=true docker compose -f ./docker/docker-compose.dev.yml up --build -V --remove-orphans
dev-scale:
docker compose -f ./docker/docker-compose.dev.yml up --build -V --scale immich-server=3 --remove-orphans
@trap 'make dev-down' EXIT; COMPOSE_BAKE=true docker compose -f ./docker/docker-compose.dev.yml up --build -V --scale immich-server=3 --remove-orphans
.PHONY: e2e
e2e:
docker compose -f ./e2e/docker-compose.yml up --build -V --remove-orphans
@trap 'make e2e-down' EXIT; COMPOSE_BAKE=true docker compose -f ./e2e/docker-compose.yml up --build -V --remove-orphans
e2e-update:
@trap 'make e2e-down' EXIT; COMPOSE_BAKE=true docker compose -f ./e2e/docker-compose.yml up --build -V --remove-orphans
e2e-down:
docker compose -f ./e2e/docker-compose.yml down --remove-orphans
prod:
docker compose -f ./docker/docker-compose.prod.yml up --build -V --remove-orphans
@trap 'make prod-down' EXIT; COMPOSE_BAKE=true docker compose -f ./docker/docker-compose.prod.yml up --build -V --remove-orphans
prod-down:
docker compose -f ./docker/docker-compose.prod.yml down --remove-orphans
prod-scale:
docker compose -f ./docker/docker-compose.prod.yml up --build -V --scale immich-server=3 --scale immich-microservices=3 --remove-orphans
@trap 'make prod-down' EXIT; COMPOSE_BAKE=true docker compose -f ./docker/docker-compose.prod.yml up --build -V --scale immich-server=3 --scale immich-microservices=3 --remove-orphans
.PHONY: open-api
open-api:
@@ -48,6 +54,8 @@ audit-%:
npm --prefix $(subst sdk,open-api/typescript-sdk,$*) audit fix
install-%:
npm --prefix $(subst sdk,open-api/typescript-sdk,$*) i
ci-%:
npm --prefix $(subst sdk,open-api/typescript-sdk,$*) ci
build-cli: build-sdk
build-web: build-sdk
build-%: install-%
@@ -82,6 +90,7 @@ test-medium-dev:
build-all: $(foreach M,$(filter-out e2e .github,$(MODULES)),build-$M) ;
install-all: $(foreach M,$(MODULES),install-$M) ;
ci-all: $(foreach M,$(filter-out .github,$(MODULES)),ci-$M) ;
check-all: $(foreach M,$(filter-out sdk cli docs .github,$(MODULES)),check-$M) ;
lint-all: $(foreach M,$(filter-out sdk docs .github,$(MODULES)),lint-$M) ;
format-all: $(foreach M,$(filter-out sdk,$(MODULES)),format-$M) ;
@@ -90,9 +99,12 @@ hygiene-all: lint-all format-all check-all sql audit-all;
test-all: $(foreach M,$(filter-out sdk docs .github,$(MODULES)),test-$M) ;
clean:
find . -name "node_modules" -type d -prune -exec rm -rf '{}' +
find . -name "node_modules" -type d -prune -exec rm -rf {} +
find . -name "dist" -type d -prune -exec rm -rf '{}' +
find . -name "build" -type d -prune -exec rm -rf '{}' +
find . -name "svelte-kit" -type d -prune -exec rm -rf '{}' +
docker compose -f ./docker/docker-compose.dev.yml rm -v -f || true
docker compose -f ./e2e/docker-compose.yml rm -v -f || true
command -v docker >/dev/null 2>&1 && docker compose -f ./docker/docker-compose.dev.yml rm -v -f || true
command -v docker >/dev/null 2>&1 && docker compose -f ./e2e/docker-compose.yml rm -v -f || true
setup-server-dev: install-server
setup-web-dev: install-sdk build-sdk install-web
+1 -1
View File
@@ -1 +1 @@
22.16.0
22.17.1
Executable
+2
View File
@@ -0,0 +1,2 @@
#!/usr/bin/env node
import '../dist/index.js';
+313 -213
View File
@@ -16,7 +16,7 @@
"micromatch": "^4.0.8"
},
"bin": {
"immich": "dist/index.js"
"immich": "bin/immich"
},
"devDependencies": {
"@eslint/eslintrc": "^3.1.0",
@@ -27,7 +27,7 @@
"@types/lodash-es": "^4.17.12",
"@types/micromatch": "^4.0.9",
"@types/mock-fs": "^4.13.1",
"@types/node": "^22.15.31",
"@types/node": "^22.16.4",
"@vitest/coverage-v8": "^3.0.0",
"byte-size": "^9.0.0",
"cli-progress": "^3.12.0",
@@ -42,7 +42,7 @@
"prettier-plugin-organize-imports": "^4.0.0",
"typescript": "^5.3.3",
"typescript-eslint": "^8.28.0",
"vite": "^6.0.0",
"vite": "^7.0.0",
"vite-tsconfig-paths": "^5.0.0",
"vitest": "^3.0.0",
"vitest-fetch-mock": "^0.4.0",
@@ -61,7 +61,7 @@
"@oazapfts/runtime": "^1.0.2"
},
"devDependencies": {
"@types/node": "^22.15.31",
"@types/node": "^22.16.4",
"typescript": "^5.3.3"
}
},
@@ -607,9 +607,9 @@
}
},
"node_modules/@eslint/config-array": {
"version": "0.20.0",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz",
"integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==",
"version": "0.21.0",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz",
"integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -622,9 +622,9 @@
}
},
"node_modules/@eslint/config-helpers": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz",
"integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==",
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz",
"integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -682,9 +682,9 @@
}
},
"node_modules/@eslint/js": {
"version": "9.27.0",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.27.0.tgz",
"integrity": "sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==",
"version": "9.30.1",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.30.1.tgz",
"integrity": "sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1276,6 +1276,16 @@
"dev": true,
"license": "MIT"
},
"node_modules/@types/chai": {
"version": "5.2.2",
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz",
"integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/deep-eql": "*"
}
},
"node_modules/@types/cli-progress": {
"version": "3.11.6",
"resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.6.tgz",
@@ -1286,6 +1296,13 @@
"@types/node": "*"
}
},
"node_modules/@types/deep-eql": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz",
"integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==",
"dev": true,
"license": "MIT"
},
"node_modules/@types/estree": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
@@ -1338,9 +1355,9 @@
}
},
"node_modules/@types/node": {
"version": "22.15.32",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.32.tgz",
"integrity": "sha512-3jigKqgSjsH6gYZv2nEsqdXfZqIFGAV36XYYjf9KGZ3PSG+IhLecqPnI310RvjutyMwifE2hhhNEklOUrvx/wA==",
"version": "22.16.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.16.5.tgz",
"integrity": "sha512-bJFoMATwIGaxxx8VJPeM8TonI8t579oRvgAuT8zFugJsJZgzqv0Fu8Mhp68iecjzG7cnN3mO2dJQ5uUM2EFrgQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1348,17 +1365,17 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.32.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.32.1.tgz",
"integrity": "sha512-6u6Plg9nP/J1GRpe/vcjjabo6Uc5YQPAMxsgQyGC/I0RuukiG1wIe3+Vtg3IrSCVJDmqK3j8adrtzXSENRtFgg==",
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.36.0.tgz",
"integrity": "sha512-lZNihHUVB6ZZiPBNgOQGSxUASI7UJWhT8nHyUGCnaQ28XFCw98IfrMCG3rUl1uwUWoAvodJQby2KTs79UTcrAg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "8.32.1",
"@typescript-eslint/type-utils": "8.32.1",
"@typescript-eslint/utils": "8.32.1",
"@typescript-eslint/visitor-keys": "8.32.1",
"@typescript-eslint/scope-manager": "8.36.0",
"@typescript-eslint/type-utils": "8.36.0",
"@typescript-eslint/utils": "8.36.0",
"@typescript-eslint/visitor-keys": "8.36.0",
"graphemer": "^1.4.0",
"ignore": "^7.0.0",
"natural-compare": "^1.4.0",
@@ -1372,7 +1389,7 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
"@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
"@typescript-eslint/parser": "^8.36.0",
"eslint": "^8.57.0 || ^9.0.0",
"typescript": ">=4.8.4 <5.9.0"
}
@@ -1388,16 +1405,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
"version": "8.32.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.32.1.tgz",
"integrity": "sha512-LKMrmwCPoLhM45Z00O1ulb6jwyVr2kr3XJp+G+tSEZcbauNnScewcQwtJqXDhXeYPDEjZ8C1SjXm015CirEmGg==",
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.36.0.tgz",
"integrity": "sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/scope-manager": "8.32.1",
"@typescript-eslint/types": "8.32.1",
"@typescript-eslint/typescript-estree": "8.32.1",
"@typescript-eslint/visitor-keys": "8.32.1",
"@typescript-eslint/scope-manager": "8.36.0",
"@typescript-eslint/types": "8.36.0",
"@typescript-eslint/typescript-estree": "8.36.0",
"@typescript-eslint/visitor-keys": "8.36.0",
"debug": "^4.3.4"
},
"engines": {
@@ -1412,15 +1429,37 @@
"typescript": ">=4.8.4 <5.9.0"
}
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "8.32.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.32.1.tgz",
"integrity": "sha512-7IsIaIDeZn7kffk7qXC3o6Z4UblZJKV3UBpkvRNpr5NSyLji7tvTcvmnMNYuYLyh26mN8W723xpo3i4MlD33vA==",
"node_modules/@typescript-eslint/project-service": {
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.36.0.tgz",
"integrity": "sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.32.1",
"@typescript-eslint/visitor-keys": "8.32.1"
"@typescript-eslint/tsconfig-utils": "^8.36.0",
"@typescript-eslint/types": "^8.36.0",
"debug": "^4.3.4"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
"typescript": ">=4.8.4 <5.9.0"
}
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.36.0.tgz",
"integrity": "sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.36.0",
"@typescript-eslint/visitor-keys": "8.36.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1430,15 +1469,32 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
"node_modules/@typescript-eslint/tsconfig-utils": {
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.36.0.tgz",
"integrity": "sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==",
"dev": true,
"license": "MIT",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
"typescript": ">=4.8.4 <5.9.0"
}
},
"node_modules/@typescript-eslint/type-utils": {
"version": "8.32.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.32.1.tgz",
"integrity": "sha512-mv9YpQGA8iIsl5KyUPi+FGLm7+bA4fgXaeRcFKRDRwDMu4iwrSHeDPipwueNXhdIIZltwCJv+NkxftECbIZWfA==",
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.36.0.tgz",
"integrity": "sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/typescript-estree": "8.32.1",
"@typescript-eslint/utils": "8.32.1",
"@typescript-eslint/typescript-estree": "8.36.0",
"@typescript-eslint/utils": "8.36.0",
"debug": "^4.3.4",
"ts-api-utils": "^2.1.0"
},
@@ -1455,9 +1511,9 @@
}
},
"node_modules/@typescript-eslint/types": {
"version": "8.32.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.32.1.tgz",
"integrity": "sha512-YmybwXUJcgGqgAp6bEsgpPXEg6dcCyPyCSr0CAAueacR/CCBi25G3V8gGQ2kRzQRBNol7VQknxMs9HvVa9Rvfg==",
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.36.0.tgz",
"integrity": "sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1469,14 +1525,16 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "8.32.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.32.1.tgz",
"integrity": "sha512-Y3AP9EIfYwBb4kWGb+simvPaqQoT5oJuzzj9m0i6FCY6SPvlomY2Ei4UEMm7+FXtlNJbor80ximyslzaQF6xhg==",
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.36.0.tgz",
"integrity": "sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.32.1",
"@typescript-eslint/visitor-keys": "8.32.1",
"@typescript-eslint/project-service": "8.36.0",
"@typescript-eslint/tsconfig-utils": "8.36.0",
"@typescript-eslint/types": "8.36.0",
"@typescript-eslint/visitor-keys": "8.36.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -1496,9 +1554,9 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
"integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1522,16 +1580,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
"version": "8.32.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.32.1.tgz",
"integrity": "sha512-DsSFNIgLSrc89gpq1LJB7Hm1YpuhK086DRDJSNrewcGvYloWW1vZLHBTIvarKZDcAORIy/uWNx8Gad+4oMpkSA==",
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.36.0.tgz",
"integrity": "sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.7.0",
"@typescript-eslint/scope-manager": "8.32.1",
"@typescript-eslint/types": "8.32.1",
"@typescript-eslint/typescript-estree": "8.32.1"
"@typescript-eslint/scope-manager": "8.36.0",
"@typescript-eslint/types": "8.36.0",
"@typescript-eslint/typescript-estree": "8.36.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1546,14 +1604,14 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "8.32.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.32.1.tgz",
"integrity": "sha512-ar0tjQfObzhSaW3C3QNmTc5ofj0hDoNQ5XWrCy6zDyabdr0TWhCkClp+rywGNj/odAFBVzzJrK4tEq5M4Hmu4w==",
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.36.0.tgz",
"integrity": "sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.32.1",
"eslint-visitor-keys": "^4.2.0"
"@typescript-eslint/types": "8.36.0",
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -1564,15 +1622,16 @@
}
},
"node_modules/@vitest/coverage-v8": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.1.4.tgz",
"integrity": "sha512-G4p6OtioySL+hPV7Y6JHlhpsODbJzt1ndwHAFkyk6vVjpK03PFsKnauZIzcd0PrK4zAbc5lc+jeZ+eNGiMA+iw==",
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz",
"integrity": "sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@ampproject/remapping": "^2.3.0",
"@bcoe/v8-coverage": "^1.0.2",
"debug": "^4.4.0",
"ast-v8-to-istanbul": "^0.3.3",
"debug": "^4.4.1",
"istanbul-lib-coverage": "^3.2.2",
"istanbul-lib-report": "^3.0.1",
"istanbul-lib-source-maps": "^5.0.6",
@@ -1587,8 +1646,8 @@
"url": "https://opencollective.com/vitest"
},
"peerDependencies": {
"@vitest/browser": "3.1.4",
"vitest": "3.1.4"
"@vitest/browser": "3.2.4",
"vitest": "3.2.4"
},
"peerDependenciesMeta": {
"@vitest/browser": {
@@ -1597,14 +1656,15 @@
}
},
"node_modules/@vitest/expect": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.4.tgz",
"integrity": "sha512-xkD/ljeliyaClDYqHPNCiJ0plY5YIcM0OlRiZizLhlPmpXWpxnGMyTZXOHFhFeG7w9P5PBeL4IdtJ/HeQwTbQA==",
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.2.4.tgz",
"integrity": "sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/spy": "3.1.4",
"@vitest/utils": "3.1.4",
"@types/chai": "^5.2.2",
"@vitest/spy": "3.2.4",
"@vitest/utils": "3.2.4",
"chai": "^5.2.0",
"tinyrainbow": "^2.0.0"
},
@@ -1613,13 +1673,13 @@
}
},
"node_modules/@vitest/mocker": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.4.tgz",
"integrity": "sha512-8IJ3CvwtSw/EFXqWFL8aCMu+YyYXG2WUSrQbViOZkWTKTVicVwZ/YiEZDSqD00kX+v/+W+OnxhNWoeVKorHygA==",
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.2.4.tgz",
"integrity": "sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/spy": "3.1.4",
"@vitest/spy": "3.2.4",
"estree-walker": "^3.0.3",
"magic-string": "^0.30.17"
},
@@ -1628,7 +1688,7 @@
},
"peerDependencies": {
"msw": "^2.4.9",
"vite": "^5.0.0 || ^6.0.0"
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
},
"peerDependenciesMeta": {
"msw": {
@@ -1640,9 +1700,9 @@
}
},
"node_modules/@vitest/pretty-format": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.4.tgz",
"integrity": "sha512-cqv9H9GvAEoTaoq+cYqUTCGscUjKqlJZC7PRwY5FMySVj5J+xOm1KQcCiYHJOEzOKRUhLH4R2pTwvFlWCEScsg==",
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.2.4.tgz",
"integrity": "sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -1653,27 +1713,28 @@
}
},
"node_modules/@vitest/runner": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.4.tgz",
"integrity": "sha512-djTeF1/vt985I/wpKVFBMWUlk/I7mb5hmD5oP8K9ACRmVXgKTae3TUOtXAEBfslNKPzUQvnKhNd34nnRSYgLNQ==",
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.2.4.tgz",
"integrity": "sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/utils": "3.1.4",
"pathe": "^2.0.3"
"@vitest/utils": "3.2.4",
"pathe": "^2.0.3",
"strip-literal": "^3.0.0"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/snapshot": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.4.tgz",
"integrity": "sha512-JPHf68DvuO7vilmvwdPr9TS0SuuIzHvxeaCkxYcCD4jTk67XwL45ZhEHFKIuCm8CYstgI6LZ4XbwD6ANrwMpFg==",
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.2.4.tgz",
"integrity": "sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/pretty-format": "3.1.4",
"@vitest/pretty-format": "3.2.4",
"magic-string": "^0.30.17",
"pathe": "^2.0.3"
},
@@ -1682,27 +1743,27 @@
}
},
"node_modules/@vitest/spy": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.4.tgz",
"integrity": "sha512-Xg1bXhu+vtPXIodYN369M86K8shGLouNjoVI78g8iAq2rFoHFdajNvJJ5A/9bPMFcfQqdaCpOgWKEoMQg/s0Yg==",
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.2.4.tgz",
"integrity": "sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==",
"dev": true,
"license": "MIT",
"dependencies": {
"tinyspy": "^3.0.2"
"tinyspy": "^4.0.3"
},
"funding": {
"url": "https://opencollective.com/vitest"
}
},
"node_modules/@vitest/utils": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.4.tgz",
"integrity": "sha512-yriMuO1cfFhmiGc8ataN51+9ooHRuURdfAZfwFd3usWynjzpLslZdYnRegTv32qdgtJTsj15FoeZe2g15fY1gg==",
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.2.4.tgz",
"integrity": "sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/pretty-format": "3.1.4",
"loupe": "^3.1.3",
"@vitest/pretty-format": "3.2.4",
"loupe": "^3.1.4",
"tinyrainbow": "^2.0.0"
},
"funding": {
@@ -1710,9 +1771,9 @@
}
},
"node_modules/acorn": {
"version": "8.14.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
"integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"bin": {
@@ -1792,6 +1853,18 @@
"node": ">=12"
}
},
"node_modules/ast-v8-to-istanbul": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.3.tgz",
"integrity": "sha512-MuXMrSLVVoA6sYN/6Hke18vMzrT4TZNbZIj/hvh0fnYFpO+/kFXcLIaiPwXXWaQUPg4yJD8fj+lfJ7/1EBconw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "^0.3.25",
"estree-walker": "^3.0.3",
"js-tokens": "^9.0.1"
}
},
"node_modules/balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -2105,9 +2178,9 @@
}
},
"node_modules/debug": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
"integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
"integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -2232,19 +2305,19 @@
}
},
"node_modules/eslint": {
"version": "9.27.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.27.0.tgz",
"integrity": "sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==",
"version": "9.30.1",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.30.1.tgz",
"integrity": "sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
"@eslint/config-array": "^0.20.0",
"@eslint/config-helpers": "^0.2.1",
"@eslint/config-array": "^0.21.0",
"@eslint/config-helpers": "^0.3.0",
"@eslint/core": "^0.14.0",
"@eslint/eslintrc": "^3.3.1",
"@eslint/js": "9.27.0",
"@eslint/js": "9.30.1",
"@eslint/plugin-kit": "^0.3.1",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
@@ -2256,9 +2329,9 @@
"cross-spawn": "^7.0.6",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^8.3.0",
"eslint-visitor-keys": "^4.2.0",
"espree": "^10.3.0",
"eslint-scope": "^8.4.0",
"eslint-visitor-keys": "^4.2.1",
"espree": "^10.4.0",
"esquery": "^1.5.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -2309,14 +2382,14 @@
}
},
"node_modules/eslint-plugin-prettier": {
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.0.tgz",
"integrity": "sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA==",
"version": "5.5.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.1.tgz",
"integrity": "sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==",
"dev": true,
"license": "MIT",
"dependencies": {
"prettier-linter-helpers": "^1.0.0",
"synckit": "^0.11.0"
"synckit": "^0.11.7"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
@@ -2402,9 +2475,9 @@
}
},
"node_modules/eslint-scope": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
"integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==",
"version": "8.4.0",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
"integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -2419,9 +2492,9 @@
}
},
"node_modules/eslint-visitor-keys": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
"integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -2432,15 +2505,15 @@
}
},
"node_modules/espree": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
"integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
"version": "10.4.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
"integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"acorn": "^8.14.0",
"acorn": "^8.15.0",
"acorn-jsx": "^5.3.2",
"eslint-visitor-keys": "^4.2.0"
"eslint-visitor-keys": "^4.2.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2749,9 +2822,9 @@
}
},
"node_modules/globals": {
"version": "16.1.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-16.1.0.tgz",
"integrity": "sha512-aibexHNbb/jiUSObBgpHLj+sIuUmJnYcgXBlrfsiDZ9rt4aF2TFRbyLgZ2iFQuVZ1K5Mx3FVkbKRSgKrbK3K2g==",
"version": "16.3.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz",
"integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2975,6 +3048,13 @@
"@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/js-tokens": {
"version": "9.0.1",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz",
"integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==",
"dev": true,
"license": "MIT"
},
"node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
@@ -3076,9 +3156,9 @@
"license": "MIT"
},
"node_modules/loupe": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz",
"integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==",
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.4.tgz",
"integrity": "sha512-wJzkKwJrheKtknCOKNEtDK4iqg/MxmZheEMtSTYvnzRdEYaZzmgH976nenp8WdJRdx5Vc1X/9MO0Oszl6ezeXg==",
"dev": true,
"license": "MIT"
},
@@ -3347,9 +3427,9 @@
"license": "MIT"
},
"node_modules/pathval": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz",
"integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz",
"integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3386,9 +3466,9 @@
}
},
"node_modules/postcss": {
"version": "8.5.3",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
"version": "8.5.6",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
"integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
"dev": true,
"funding": [
{
@@ -3406,7 +3486,7 @@
],
"license": "MIT",
"dependencies": {
"nanoid": "^3.3.8",
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
@@ -3425,9 +3505,9 @@
}
},
"node_modules/prettier": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
"dev": true,
"license": "MIT",
"bin": {
@@ -3799,6 +3879,19 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/strip-literal": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz",
"integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==",
"dev": true,
"license": "MIT",
"dependencies": {
"js-tokens": "^9.0.1"
},
"funding": {
"url": "https://github.com/sponsors/antfu"
}
},
"node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
@@ -3813,14 +3906,13 @@
}
},
"node_modules/synckit": {
"version": "0.11.4",
"resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz",
"integrity": "sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==",
"version": "0.11.8",
"resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz",
"integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@pkgr/core": "^0.2.3",
"tslib": "^2.8.1"
"@pkgr/core": "^0.2.4"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
@@ -3885,9 +3977,9 @@
"license": "MIT"
},
"node_modules/tinyglobby": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz",
"integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==",
"version": "0.2.14",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz",
"integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3930,9 +4022,9 @@
}
},
"node_modules/tinypool": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz",
"integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==",
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz",
"integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -3950,9 +4042,9 @@
}
},
"node_modules/tinyspy": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
"integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-4.0.3.tgz",
"integrity": "sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==",
"dev": true,
"license": "MIT",
"engines": {
@@ -4005,13 +4097,6 @@
}
}
},
"node_modules/tslib": {
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"dev": true,
"license": "0BSD"
},
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -4040,15 +4125,15 @@
}
},
"node_modules/typescript-eslint": {
"version": "8.32.1",
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.32.1.tgz",
"integrity": "sha512-D7el+eaDHAmXvrZBy1zpzSNIRqnCOrkwTgZxTu3MUqRWk8k0q9m9Ho4+vPf7iHtgUfrK/o8IZaEApsxPlHTFCg==",
"version": "8.36.0",
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.36.0.tgz",
"integrity": "sha512-fTCqxthY+h9QbEgSIBfL9iV6CvKDFuoxg6bHPNpJ9HIUzS+jy2lCEyCmGyZRWEBSaykqcDPf1SJ+BfCI8DRopA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/eslint-plugin": "8.32.1",
"@typescript-eslint/parser": "8.32.1",
"@typescript-eslint/utils": "8.32.1"
"@typescript-eslint/eslint-plugin": "8.36.0",
"@typescript-eslint/parser": "8.36.0",
"@typescript-eslint/utils": "8.36.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4111,24 +4196,24 @@
}
},
"node_modules/vite": {
"version": "6.3.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
"integrity": "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==",
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/vite/-/vite-7.0.4.tgz",
"integrity": "sha512-SkaSguuS7nnmV7mfJ8l81JGBFV7Gvzp8IzgE8A8t23+AxuNX61Q5H1Tpz5efduSN7NHC8nQXD3sKQKZAu5mNEA==",
"dev": true,
"license": "MIT",
"dependencies": {
"esbuild": "^0.25.0",
"fdir": "^6.4.4",
"fdir": "^6.4.6",
"picomatch": "^4.0.2",
"postcss": "^8.5.3",
"rollup": "^4.34.9",
"tinyglobby": "^0.2.13"
"postcss": "^8.5.6",
"rollup": "^4.40.0",
"tinyglobby": "^0.2.14"
},
"bin": {
"vite": "bin/vite.js"
},
"engines": {
"node": "^18.0.0 || ^20.0.0 || >=22.0.0"
"node": "^20.19.0 || >=22.12.0"
},
"funding": {
"url": "https://github.com/vitejs/vite?sponsor=1"
@@ -4137,14 +4222,14 @@
"fsevents": "~2.3.3"
},
"peerDependencies": {
"@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
"@types/node": "^20.19.0 || >=22.12.0",
"jiti": ">=1.21.0",
"less": "*",
"less": "^4.0.0",
"lightningcss": "^1.21.0",
"sass": "*",
"sass-embedded": "*",
"stylus": "*",
"sugarss": "*",
"sass": "^1.70.0",
"sass-embedded": "^1.70.0",
"stylus": ">=0.54.8",
"sugarss": "^5.0.0",
"terser": "^5.16.0",
"tsx": "^4.8.1",
"yaml": "^2.4.2"
@@ -4186,17 +4271,17 @@
}
},
"node_modules/vite-node": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.1.4.tgz",
"integrity": "sha512-6enNwYnpyDo4hEgytbmc6mYWHXDHYEn0D1/rw4Q+tnHUGtKTJsn8T1YkX6Q18wI5LCrS8CTYlBaiCqxOy2kvUA==",
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.2.4.tgz",
"integrity": "sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==",
"dev": true,
"license": "MIT",
"dependencies": {
"cac": "^6.7.14",
"debug": "^4.4.0",
"debug": "^4.4.1",
"es-module-lexer": "^1.7.0",
"pathe": "^2.0.3",
"vite": "^5.0.0 || ^6.0.0"
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0"
},
"bin": {
"vite-node": "vite-node.mjs"
@@ -4229,9 +4314,9 @@
}
},
"node_modules/vite/node_modules/fdir": {
"version": "6.4.4",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz",
"integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==",
"version": "6.4.6",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz",
"integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -4257,32 +4342,34 @@
}
},
"node_modules/vitest": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.4.tgz",
"integrity": "sha512-Ta56rT7uWxCSJXlBtKgIlApJnT6e6IGmTYxYcmxjJ4ujuZDI59GUQgVDObXXJujOmPDBYXHK1qmaGtneu6TNIQ==",
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/vitest/-/vitest-3.2.4.tgz",
"integrity": "sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@vitest/expect": "3.1.4",
"@vitest/mocker": "3.1.4",
"@vitest/pretty-format": "^3.1.4",
"@vitest/runner": "3.1.4",
"@vitest/snapshot": "3.1.4",
"@vitest/spy": "3.1.4",
"@vitest/utils": "3.1.4",
"@types/chai": "^5.2.2",
"@vitest/expect": "3.2.4",
"@vitest/mocker": "3.2.4",
"@vitest/pretty-format": "^3.2.4",
"@vitest/runner": "3.2.4",
"@vitest/snapshot": "3.2.4",
"@vitest/spy": "3.2.4",
"@vitest/utils": "3.2.4",
"chai": "^5.2.0",
"debug": "^4.4.0",
"debug": "^4.4.1",
"expect-type": "^1.2.1",
"magic-string": "^0.30.17",
"pathe": "^2.0.3",
"picomatch": "^4.0.2",
"std-env": "^3.9.0",
"tinybench": "^2.9.0",
"tinyexec": "^0.3.2",
"tinyglobby": "^0.2.13",
"tinypool": "^1.0.2",
"tinyglobby": "^0.2.14",
"tinypool": "^1.1.1",
"tinyrainbow": "^2.0.0",
"vite": "^5.0.0 || ^6.0.0",
"vite-node": "3.1.4",
"vite": "^5.0.0 || ^6.0.0 || ^7.0.0-0",
"vite-node": "3.2.4",
"why-is-node-running": "^2.3.0"
},
"bin": {
@@ -4298,8 +4385,8 @@
"@edge-runtime/vm": "*",
"@types/debug": "^4.1.12",
"@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
"@vitest/browser": "3.1.4",
"@vitest/ui": "3.1.4",
"@vitest/browser": "3.2.4",
"@vitest/ui": "3.2.4",
"happy-dom": "*",
"jsdom": "*"
},
@@ -4340,6 +4427,19 @@
"vitest": ">=2.0.0"
}
},
"node_modules/vitest/node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+4 -4
View File
@@ -5,7 +5,7 @@
"type": "module",
"exports": "./dist/index.js",
"bin": {
"immich": "dist/index.js"
"immich": "./bin/immich"
},
"license": "GNU Affero General Public License version 3",
"keywords": [
@@ -21,7 +21,7 @@
"@types/lodash-es": "^4.17.12",
"@types/micromatch": "^4.0.9",
"@types/mock-fs": "^4.13.1",
"@types/node": "^22.15.31",
"@types/node": "^22.16.4",
"@vitest/coverage-v8": "^3.0.0",
"byte-size": "^9.0.0",
"cli-progress": "^3.12.0",
@@ -36,7 +36,7 @@
"prettier-plugin-organize-imports": "^4.0.0",
"typescript": "^5.3.3",
"typescript-eslint": "^8.28.0",
"vite": "^6.0.0",
"vite": "^7.0.0",
"vite-tsconfig-paths": "^5.0.0",
"vitest": "^3.0.0",
"vitest-fetch-mock": "^0.4.0",
@@ -69,6 +69,6 @@
"micromatch": "^4.0.8"
},
"volta": {
"node": "22.16.0"
"node": "22.17.1"
}
}
+14 -12
View File
@@ -16,7 +16,7 @@ name: immich-dev
services:
immich-server:
container_name: immich_server
command: ['/usr/src/app/bin/immich-dev']
command: ['immich-dev']
image: immich-server-dev:latest
# extends:
# file: hwaccel.transcoding.yml
@@ -27,11 +27,11 @@ services:
target: dev
restart: unless-stopped
volumes:
- ../server:/usr/src/app
- ../open-api:/usr/src/open-api
- ../server:/usr/src/app/server
- ../open-api:/usr/src/app/open-api
- ${UPLOAD_LOCATION}/photos:/usr/src/app/upload
- ${UPLOAD_LOCATION}/photos/upload:/usr/src/app/upload/upload
- /usr/src/app/node_modules
- /usr/src/app/server/node_modules
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
@@ -69,19 +69,20 @@ services:
# Needed for rootless docker setup, see https://github.com/moby/moby/issues/45919
# user: 0:0
build:
context: ../web
command: ['/usr/src/app/bin/immich-web']
context: ../
dockerfile: web/Dockerfile
command: ['immich-web']
env_file:
- .env
ports:
- 3000:3000
- 24678:24678
volumes:
- ../web:/usr/src/app
- ../i18n:/usr/src/i18n
- ../open-api/:/usr/src/open-api/
- ../web:/usr/src/app/web
- ../i18n:/usr/src/app/i18n
- ../open-api/:/usr/src/app/open-api/
# - ../../ui:/usr/ui
- /usr/src/app/node_modules
- /usr/src/app/web/node_modules
ulimits:
nofile:
soft: 1048576
@@ -116,13 +117,13 @@ services:
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:fec42f399876eb6faf9e008570597741c87ff7662a54185593e74b09ce83d177
image: docker.io/valkey/valkey:8-bookworm@sha256:facc1d2c3462975c34e10fccb167bfa92b0e0dbd992fc282c29a61c3243afb11
healthcheck:
test: redis-cli ping || exit 1
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:5f6a838e4e44c8e0e019d0ebfe3ee8952b69afc2809b2c25f7b0119641978e91
env_file:
- .env
environment:
@@ -134,6 +135,7 @@ services:
- ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data
ports:
- 5432:5432
shm_size: 128mb
# set IMMICH_TELEMETRY_INCLUDE=all in .env to enable metrics
# immich-prometheus:
# container_name: immich_prometheus
+5 -4
View File
@@ -56,14 +56,14 @@ services:
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:fec42f399876eb6faf9e008570597741c87ff7662a54185593e74b09ce83d177
image: docker.io/valkey/valkey:8-bookworm@sha256:facc1d2c3462975c34e10fccb167bfa92b0e0dbd992fc282c29a61c3243afb11
healthcheck:
test: redis-cli ping || exit 1
restart: always
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:5f6a838e4e44c8e0e019d0ebfe3ee8952b69afc2809b2c25f7b0119641978e91
env_file:
- .env
environment:
@@ -75,6 +75,7 @@ services:
- ${UPLOAD_LOCATION}/postgres:/var/lib/postgresql/data
ports:
- 5432:5432
shm_size: 128mb
restart: always
# set IMMICH_TELEMETRY_INCLUDE=all in .env to enable metrics
@@ -82,7 +83,7 @@ services:
container_name: immich_prometheus
ports:
- 9090:9090
image: prom/prometheus@sha256:9abc6cf6aea7710d163dbb28d8eeb7dc5baef01e38fa4cd146a406dd9f07f70d
image: prom/prometheus@sha256:63805ebb8d2b3920190daf1cb14a60871b16fd38bed42b857a3182bc621f4996
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus-data:/prometheus
@@ -94,7 +95,7 @@ services:
command: ['./run.sh', '-disable-reporting']
ports:
- 3000:3000
image: grafana/grafana:12.0.1-ubuntu@sha256:65575bb9c761335e2ff30e364f21d38632e3b2e75f5f81d83cc92f44b9bbc055
image: grafana/grafana:12.0.2-ubuntu@sha256:0512d81cdeaaff0e370a9aa66027b465d1f1f04379c3a9c801a905fabbdbc7a5
volumes:
- grafana-data:/var/lib/grafana
+3 -2
View File
@@ -49,14 +49,14 @@ services:
redis:
container_name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:fec42f399876eb6faf9e008570597741c87ff7662a54185593e74b09ce83d177
image: docker.io/valkey/valkey:8-bookworm@sha256:facc1d2c3462975c34e10fccb167bfa92b0e0dbd992fc282c29a61c3243afb11
healthcheck:
test: redis-cli ping || exit 1
restart: always
database:
container_name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:5f6a838e4e44c8e0e019d0ebfe3ee8952b69afc2809b2c25f7b0119641978e91
environment:
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_USER: ${DB_USERNAME}
@@ -67,6 +67,7 @@ services:
volumes:
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
shm_size: 128mb
restart: always
volumes:
+1 -1
View File
@@ -1 +1 @@
22.16.0
22.17.1
+1 -1
View File
@@ -490,7 +490,7 @@ You can also scan the Postgres database file structure for errors:
<details>
<summary>Scan for file structure errors</summary>
```bash
docker exec -it immich_postgres pg_amcheck --username=postgres --heapallindexed --parent-check --rootdescend --progress --all --install-missing
docker exec -it immich_postgres pg_amcheck --username=<DB_USERNAME> --heapallindexed --parent-check --rootdescend --progress --all --install-missing
```
A normal result will end something like this and return with an exit code of `0`:
@@ -57,7 +57,7 @@ Then please follow the steps in the following section for restoring the database
<TabItem value="Linux system" label="Linux system" default>
```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=<DB_USERNAME> | gzip > "/path/to/backup/dump.sql.gz"
```
```bash title='Restore'
@@ -79,7 +79,7 @@ docker compose up -d # Start remainder of Immich apps
<TabItem value="Windows system (PowerShell)" label="Windows system (PowerShell)">
```powershell title='Backup'
[System.IO.File]::WriteAllLines("C:\absolute\path\to\backup\dump.sql", (docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres))
[System.IO.File]::WriteAllLines("C:\absolute\path\to\backup\dump.sql", (docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=<DB_USERNAME>))
```
```powershell title='Restore'
@@ -150,12 +150,10 @@ for more info read the [release notes](https://github.com/immich-app/immich/rele
- Preview images (small thumbnails and large previews) for each asset and thumbnails for recognized faces.
- Stored in `UPLOAD_LOCATION/thumbs/<userID>`.
- **Encoded Assets:**
- Videos that have been re-encoded from the original for wider compatibility. The original is not removed.
- Stored in `UPLOAD_LOCATION/encoded-video/<userID>`.
- **Postgres**
- The Immich database containing all the information to allow the system to function properly.
**Note:** This folder will only appear to users who have made the changes mentioned in [v1.102.0](https://github.com/immich-app/immich/discussions/8930) (an optional, non-mandatory change) or who started with this version.
- Stored in `DB_DATA_LOCATION`.
@@ -201,7 +199,6 @@ When you turn off the storage template engine, it will leave the assets in `UPLO
- Temporarily located in `UPLOAD_LOCATION/upload/<userID>`.
- Transferred to `UPLOAD_LOCATION/library/<userID>` upon successful upload.
- **Postgres**
- The Immich database containing all the information to allow the system to function properly.
**Note:** This folder will only appear to users who have made the changes mentioned in [v1.102.0](https://github.com/immich-app/immich/discussions/8930) (an optional, non-mandatory change) or who started with this version.
- Stored in `DB_DATA_LOCATION`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

+8 -2
View File
@@ -46,6 +46,12 @@ services:
When a new asset is uploaded it kicks off a series of jobs, which include metadata extraction, thumbnail generation, machine learning tasks, and storage template migration, if enabled. To view the status of a job navigate to the Administration -> Jobs page.
Additionally, some jobs run on a schedule, which is every night at midnight. This schedule, with the exception of [External Libraries](/docs/features/libraries) scanning, cannot be changed.
<img src={require('./img/admin-jobs.webp').default} width="60%" title="Admin jobs" />
Additionally, some jobs (such as memories generation) run on a schedule, which is every night at midnight by default. To change when they run or enable/disable a job navigate to System Settings -> [Nightly Tasks Settings](https://my.immich.app/admin/system-settings?isOpen=nightly-tasks).
<img src={require('./img/admin-nightly-tasks.webp').default} width="60%" title="Admin nightly tasks" />
:::note
Some jobs ([External Libraries](/docs/features/libraries) scanning, Database Dump) are configured in their own sections in System Settings.
:::
+1 -6
View File
@@ -20,7 +20,6 @@ Immich supports 3rd party authentication via [OpenID Connect][oidc] (OIDC), an i
Before enabling OAuth in Immich, a new client application needs to be configured in the 3rd-party authentication server. While the specifics of this setup vary from provider to provider, the general approach should be the same.
1. Create a new (Client) Application
1. The **Provider** type should be `OpenID Connect` or `OAuth2`
2. The **Client type** should be `Confidential`
3. The **Application** type should be `Web`
@@ -29,7 +28,6 @@ Before enabling OAuth in Immich, a new client application needs to be configured
2. Configure Redirect URIs/Origins
The **Sign-in redirect URIs** should include:
- `app.immich:///oauth-callback` - for logging in with OAuth from the [Mobile App](/docs/features/mobile-app.mdx)
- `http://DOMAIN:PORT/auth/login` - for logging in with OAuth from the Web Client
- `http://DOMAIN:PORT/user-settings` - for manually linking OAuth in the Web Client
@@ -37,21 +35,17 @@ Before enabling OAuth in Immich, a new client application needs to be configured
Redirect URIs should contain all the domains you will be using to access Immich. Some examples include:
Mobile
- `app.immich:///oauth-callback` (You **MUST** include this for iOS and Android mobile apps to work properly)
Localhost
- `http://localhost:2283/auth/login`
- `http://localhost:2283/user-settings`
Local IP
- `http://192.168.0.200:2283/auth/login`
- `http://192.168.0.200:2283/user-settings`
Hostname
- `https://immich.example.com/auth/login`
- `https://immich.example.com/user-settings`
@@ -68,6 +62,7 @@ Once you have a new OAuth client application configured, Immich can be configure
| Scope | string | openid email profile | Full list of scopes to send with the request (space delimited) |
| Signing Algorithm | string | RS256 | The algorithm used to sign the id token (examples: RS256, HS256) |
| Storage Label Claim | string | preferred_username | Claim mapping for the user's storage label**┬╣** |
| Role Claim | string | immich_role | Claim mapping for the user's role. (should return "user" or "admin")**┬╣** |
| Storage Quota Claim | string | immich_quota | Claim mapping for the user's storage**┬╣** |
| Default Storage Quota (GiB) | number | 0 | Default quota for user without storage quota claim (Enter 0 for unlimited quota) |
| Button Text | string | Login with OAuth | Text for the OAuth button on the web |
+23 -1
View File
@@ -3,7 +3,7 @@
The `immich-server` docker image comes preinstalled with an administrative CLI (`immich-admin`) that supports the following commands:
| Command | Description |
| ------------------------ | ------------------------------------- |
| ------------------------ | ------------------------------------------------------------- |
| `help` | Display help |
| `reset-admin-password` | Reset the password for the admin user |
| `disable-password-login` | Disable password login |
@@ -12,6 +12,7 @@ The `immich-server` docker image comes preinstalled with an administrative CLI (
| `disable-oauth-login` | Disable OAuth login |
| `list-users` | List Immich users |
| `version` | Print Immich version |
| `change-media-location` | Change database file paths to align with a new media location |
## How to run a command
@@ -88,3 +89,24 @@ Print Immich Version
immich-admin version
v1.129.0
```
Change media location
```
immich-admin change-media-location
? Enter the previous value of IMMICH_MEDIA_LOCATION: /usr/src/app/upload
? Enter the new value of IMMICH_MEDIA_LOCATION: /data
Previous value: /usr/src/app/upload
Current value: /data
Changing database paths from "/usr/src/app/upload/*" to "/data/*"
? Do you want to proceed? [Y/n] y
Database file paths updated successfully! ЁЯОЙ
You may now set IMMICH_MEDIA_LOCATION=/data and restart!
(please remember to update applicable volume mounts e.g. ${UPLOAD_LOCATION}:/data)
```
+6 -7
View File
@@ -7,7 +7,7 @@ sidebar_position: 3
Dev Containers provide a consistent, reproducible development environment using Docker containers. With a single click, you can get started with an Immich development environment on Mac, Linux, Windows, or in the cloud using GitHub Codespaces.
[![Open in VSCode Containers](https://img.shields.io/static/v1?label=VSCode%20DevContainer&message=Immich&color=blue)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/immich-app/immich/)
Get started fast!
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/immich-app/immich/)
@@ -71,7 +71,7 @@ cd immich
The immich dev containers read environment variables from your shell environment, not from `.env` files. This allows them to work in cloud environments without pre-configuration.
:::important Required Configuration
:::important Configuration
When running locally, and if you want to create (or use an existing) DB and/or photo storage folder, you must set the `UPLOAD_LOCATION` variable in your shell environment before launching the Dev Container. This determines where uploaded files are stored and also where the DB stores it data.
```bash
@@ -88,6 +88,10 @@ source ~/.bashrc
### Step 3: Launch the Dev Container
:::tip
Immich development makes extensive use of specialized [base images](https://github.com/immich-app/base-images) for its docker-compose based development. For this reason, you won't be able to use VSCode's **_Clone Repository in a Container Volume_** command.
:::
#### Using VS Code UI:
1. Open the cloned repository in VS Code
@@ -199,13 +203,11 @@ To use your SSH key for commit signing, see the [GitHub guide on SSH commit sign
When the Dev Container starts, it automatically:
1. **Runs post-create script** (`container-server-post-create.sh`):
- Adjusts file permissions for the `node` user
- Installs dependencies: `npm install` in all packages
- Builds TypeScript SDK: `npm run build` in `open-api/typescript-sdk`
2. **Starts development servers** via VS Code tasks:
- `Immich API Server (Nest)` - API server with hot-reloading on port 2283
- `Immich Web Server (Vite)` - Web frontend with hot-reloading on port 3000
- Both servers watch for file changes and recompile automatically
@@ -335,14 +337,12 @@ make install-all # Install all dependencies
The Dev Container is pre-configured for debugging:
1. **API Server Debugging**:
- Set breakpoints in VS Code
- Press `F5` or use "Run and Debug" panel
- Select "Attach to Server" configuration
- Debug port: 9231
2. **Worker Debugging**:
- Use "Attach to Workers" configuration
- Debug port: 9230
@@ -428,7 +428,6 @@ While the Dev Container focuses on server and web development, you can connect m
```
2. **Configure mobile app**:
- Server URL: `http://YOUR_IP:2283/api`
- Ensure firewall allows port 2283
+1 -1
View File
@@ -2,7 +2,7 @@
Folder view provides an additional view besides the timeline that is similar to a file explorer. It allows you to navigate through the folders and files in the library. This feature is handy for a highly curated and customized external library or a nicely configured storage template.
You can enable this feature under [`Account Settings > Features > Folder View`](https://my.immich.app/user-settings?isOpen=feature+folders)
You can enable this feature under [`Account Settings > Features > Folders`](https://my.immich.app/user-settings?isOpen=feature+folders)
## Enable folder view
+4 -6
View File
@@ -56,7 +56,7 @@ Internally, Immich uses the [glob](https://www.npmjs.com/package/glob) package t
### Automatic watching (EXPERIMENTAL)
This feature - currently hidden in the config file - is considered experimental and for advanced users only. If enabled, it will allow automatic watching of the filesystem which means new assets are automatically imported to Immich without needing to rescan.
This feature is considered experimental and for advanced users only. If enabled, it will allow automatic watching of the filesystem which means new assets are automatically imported to Immich without needing to rescan.
If your photos are on a network drive, automatic file watching likely won't work. In that case, you will have to rely on a periodic library refresh to pull in your changes.
@@ -112,7 +112,7 @@ _Remember to run `docker compose up -d` to register the changes. Make sure you c
These actions must be performed by the Immich administrator.
- Click on your avatar on the upper right corner
- Click on your avatar in the upper right corner
- Click on Administration -> External Libraries
- Click on Create an external libraryтАж
- Select which user owns the library, this can not be changed later
@@ -159,9 +159,7 @@ Within seconds, the assets from the old-pics and videos folders should show up i
Folder view provides an additional view besides the timeline that is similar to a file explorer. It allows you to navigate through the folders and files in the library. This feature is handy for a highly curated and customized external library or a nicely configured storage template.
You can enable this feature under [`Account Settings > Features > Folder View`](https://my.immich.app/user-settings?isOpen=feature+folders)
The UI is currently only available for the web; mobile will come in a subsequent release.
You can enable this feature under [`Account Settings > Features > Folders`](https://my.immich.app/user-settings?isOpen=feature+folders)
<img src={require('./img/folder-view-1.webp').default} width="100%" title='Folder-view' />
@@ -171,7 +169,7 @@ The UI is currently only available for the web; mobile will come in a subsequent
Only an admin can do this.
:::
You can define a custom interval for the trigger external library rescan under Administration -> Settings -> Library.
You can define a custom interval for the trigger external library rescan under Administration -> Settings -> External Library.
You can set the scanning interval using the preset or cron format. For more information you can refer to [Crontab Guru](https://crontab.guru/).
<img src={require('./img/library-custom-scan-interval.webp').default} width="75%" title='Set custom scan interval for external library' />
+1 -1
View File
@@ -16,7 +16,7 @@ For the full list, refer to the [Immich source code](https://github.com/immich-a
| `HEIC` | `.heic` | :white_check_mark: | |
| `HEIF` | `.heif` | :white_check_mark: | |
| `JPEG 2000` | `.jp2` | :white_check_mark: | |
| `JPEG` | `.webp` `.jpg` `.jpe` `.insp` | :white_check_mark: | |
| `JPEG` | `.jpeg` `.jpg` `.jpe` `.insp` | :white_check_mark: | |
| `JPEG XL` | `.jxl` | :white_check_mark: | |
| `PNG` | `.png` | :white_check_mark: | |
| `PSD` | `.psd` | :white_check_mark: | Adobe Photoshop |
+1 -1
View File
@@ -41,7 +41,7 @@ In the Immich web UI:
- Click Add path
<img src={require('./img/add-path-button.webp').default} width="50%" title="Add Path button" />
- Enter **/usr/src/app/external** as the path and click Add
- Enter **/home/user/photos1** as the path and click Add
<img src={require('./img/add-path-field.webp').default} width="50%" title="Add Path field" />
- Save the new path
+2 -2
View File
@@ -52,9 +52,9 @@ REMOTE_BACKUP_PATH="/path/to/remote/backup/directory"
### Local
# Backup Immich database
docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres > "$UPLOAD_LOCATION"/database-backup/immich-database.sql
docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=<DB_USERNAME> > "$UPLOAD_LOCATION"/database-backup/immich-database.sql
# For deduplicating backup programs such as Borg or Restic, compressing the content can increase backup size by making it harder to deduplicate. If you are using a different program or still prefer to compress, you can use the following command instead:
# docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=postgres | /usr/bin/gzip --rsyncable > "$UPLOAD_LOCATION"/database-backup/immich-database.sql.gz
# docker exec -t immich_postgres pg_dumpall --clean --if-exists --username=<DB_USERNAME> | /usr/bin/gzip --rsyncable > "$UPLOAD_LOCATION"/database-backup/immich-database.sql.gz
### Append to local Borg repository
borg create "$BACKUP_PATH/immich-borg::{now}" "$UPLOAD_LOCATION" --exclude "$UPLOAD_LOCATION"/thumbs/ --exclude "$UPLOAD_LOCATION"/encoded-video/
+6 -3
View File
@@ -30,11 +30,11 @@ These environment variables are used by the `docker-compose.yml` file and do **N
## General
| Variable | Description | Default | Containers | Workers |
| :---------------------------------- | :---------------------------------------------------------------------------------------- | :--------------------------: | :----------------------- | :----------------- |
| :---------------------------------- | :---------------------------------------------------------------------------------------- | :---------------------------------: | :----------------------- | :----------------- |
| `TZ` | Timezone | <sup>\*1</sup> | server | microservices |
| `IMMICH_ENV` | Environment (production, development) | `production` | server, machine learning | api, microservices |
| `IMMICH_LOG_LEVEL` | Log level (verbose, debug, log, warn, error) | `log` | server, machine learning | api, microservices |
| `IMMICH_MEDIA_LOCATION` | Media location inside the container тЪая╕П**You probably shouldn't set this**<sup>\*2</sup>тЪая╕П | `./upload`<sup>\*3</sup> | server | api, microservices |
| `IMMICH_MEDIA_LOCATION` | Media location inside the container тЪая╕П**You probably shouldn't set this**<sup>\*2</sup>тЪая╕П | `/usr/src/app/upload`<sup>\*3</sup> | server | api, microservices |
| `IMMICH_CONFIG_FILE` | Path to config file | | server | api, microservices |
| `NO_COLOR` | Set to `true` to disable color-coded log output | `false` | server, machine learning | |
| `CPU_CORES` | Number of cores available to the Immich server | auto-detected CPU core count | server | |
@@ -73,7 +73,7 @@ Information on the current workers can be found [here](/docs/administration/jobs
## Database
| Variable | Description | Default | Containers |
| :---------------------------------- | :--------------------------------------------------------------------------- | :--------: | :----------------------------- |
| :---------------------------------- | :------------------------------------------------------------------------------------- | :--------: | :----------------------------- |
| `DB_URL` | Database URL | | server |
| `DB_HOSTNAME` | Database host | `database` | server |
| `DB_PORT` | Database port | `5432` | server |
@@ -83,11 +83,14 @@ Information on the current workers can be found [here](/docs/administration/jobs
| `DB_SSL_MODE` | Database SSL mode | | server |
| `DB_VECTOR_EXTENSION`<sup>\*2</sup> | Database vector extension (one of [`vectorchord`, `pgvector`, `pgvecto.rs`]) | | server |
| `DB_SKIP_MIGRATIONS` | Whether to skip running migrations on startup (one of [`true`, `false`]) | `false` | server |
| `DB_STORAGE_TYPE` | Optimize concurrent IO on SSDs or sequential IO on HDDs ([`SSD`, `HDD`])<sup>\*3</sup> | `SSD` | server |
\*1: The values of `DB_USERNAME`, `DB_PASSWORD`, and `DB_DATABASE_NAME` are passed to the Postgres container as the variables `POSTGRES_USER`, `POSTGRES_PASSWORD`, and `POSTGRES_DB` in `docker-compose.yml`.
\*2: If not provided, the appropriate extension to use is auto-detected at startup by introspecting the database. When multiple extensions are installed, the order of preference is VectorChord, pgvecto.rs, pgvector.
\*3: Uses either [`postgresql.ssd.conf`](https://github.com/immich-app/base-images/blob/main/postgres/postgresql.ssd.conf) or [`postgresql.hdd.conf`](https://github.com/immich-app/base-images/blob/main/postgres/postgresql.hdd.conf) which mainly controls the Postgres `effective_io_concurrency` setting to allow for concurrenct IO on SSDs and sequential IO on HDDs.
:::info
All `DB_` variables must be provided to all Immich workers, including `api` and `microservices`.
-1
View File
@@ -75,7 +75,6 @@ alt="Select Plugins > Compose.Manager > Add New Stack > Label it Immich"
5. Click "**Save Changes**", you will be prompted to edit stack UI labels, just leave this blank and click "**Ok**"
6. Select the cog тЪЩя╕П next to Immich, click "**Edit Stack**", then click "**Env File**"
7. Paste the entire contents of the [Immich example.env](https://github.com/immich-app/immich/releases/latest/download/example.env) file into the Unraid editor, then **before saving** edit the following:
- `UPLOAD_LOCATION`: Create a folder in your Images Unraid share and place the **absolute** location here > For example my _"images"_ share has a folder within it called _"immich"_. If I browse to this directory in the terminal and type `pwd` the output is `/mnt/user/images/immich`. This is the exact value I need to enter as my `UPLOAD_LOCATION`
- `DB_DATA_LOCATION`: Change this to use an Unraid share (preferably a cache pool, e.g. `/mnt/user/appdata/postgresql/data`). This uses the `appdata` share. Do also create the `postgresql` folder, by running `mkdir /mnt/user/{share_location}/postgresql/data`. If left at default it will try to use Unraid's `/boot/config/plugins/compose.manager/projects/[stack_name]/postgres` folder which it doesn't have permissions to, resulting in this container continuously restarting.
+562 -971
View File
File diff suppressed because it is too large Load Diff
+6 -4
View File
@@ -16,8 +16,9 @@
"write-heading-ids": "docusaurus write-heading-ids"
},
"dependencies": {
"@docusaurus/core": "~3.7.0",
"@docusaurus/preset-classic": "~3.7.0",
"@docusaurus/core": "~3.8.0",
"@docusaurus/preset-classic": "~3.8.0",
"@docusaurus/theme-common": "~3.8.0",
"@mdi/js": "^7.3.67",
"@mdi/react": "^1.6.1",
"@mdx-js/react": "^3.0.0",
@@ -26,6 +27,7 @@
"clsx": "^2.0.0",
"docusaurus-lunr-search": "^3.3.2",
"docusaurus-preset-openapi": "^0.7.5",
"lunr": "^2.3.9",
"postcss": "^8.4.25",
"prism-react-renderer": "^2.3.1",
"raw-loader": "^4.0.2",
@@ -35,7 +37,7 @@
"url": "^0.11.0"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "~3.7.0",
"@docusaurus/module-type-aliases": "~3.8.0",
"@docusaurus/tsconfig": "^3.7.0",
"@docusaurus/types": "^3.7.0",
"prettier": "^3.2.4",
@@ -57,6 +59,6 @@
"node": ">=20"
},
"volta": {
"node": "22.16.0"
"node": "22.17.1"
}
}
+6
View File
@@ -58,6 +58,12 @@ const guides: CommunityGuidesProps[] = [
description: 'Access Immich with an end-to-end encrypted connection.',
url: 'https://meshnet.nordvpn.com/how-to/remote-files-media-access/immich-remote-access',
},
{
title: 'Trust Self Signed Certificates with Immich - OAuth Setup',
description:
'Set up Certificate Authority trust with Immich, and your private OAuth2/OpenID service, while using a private CA for HTTPS commication.',
url: 'https://github.com/immich-app/immich/discussions/18614',
},
];
function CommunityGuide({ title, description, url }: CommunityGuidesProps): JSX.Element {
+17 -10
View File
@@ -85,6 +85,7 @@ import React from 'react';
import { Item, Timeline } from '../components/timeline';
const releases = {
'v1.135.0': new Date(2025, 5, 18),
'v1.133.0': new Date(2025, 4, 21),
'v1.130.0': new Date(2025, 2, 25),
'v1.127.0': new Date(2025, 1, 26),
@@ -196,14 +197,6 @@ const roadmap: Item[] = [
description: 'Automate tasks with workflows',
getDateLabel: () => 'Planned for 2025',
},
{
done: false,
icon: mdiTableKey,
iconColor: 'gray',
title: 'Fine grained access controls',
description: 'Granular access controls for users and api keys',
getDateLabel: () => 'Planned for 2025',
},
{
done: false,
icon: mdiImageEdit,
@@ -239,12 +232,26 @@ const roadmap: Item[] = [
];
const milestones: Item[] = [
{
icon: mdiStar,
iconColor: 'gold',
title: '70,000 Stars',
description: 'Reached 70K Stars on GitHub!',
getDateLabel: withLanguage(new Date(2025, 6, 9)),
},
withRelease({
icon: mdiTableKey,
iconColor: 'gray',
title: 'Fine grained access controls',
description: 'Granular access controls for api keys',
release: 'v1.135.0',
}),
withRelease({
icon: mdiCast,
iconColor: 'aqua',
title: 'Google Cast (web)',
title: 'Google Cast (web and mobile)',
description: 'Cast assets to Google Cast/Chromecast compatible devices',
release: 'v1.133.0',
release: 'v1.135.0',
}),
withRelease({
icon: mdiLockOutline,
+2 -1
View File
@@ -1,4 +1,5 @@
/docs /docs/overview/introduction 307
/docs /docs/overview/welcome 307
/docs/ /docs/overview/welcome 307
/docs/mobile-app-beta-program /docs/features/mobile-app 307
/docs/contribution-guidelines /docs/overview/support-the-project#contributing 307
/docs/install /docs/install/docker-compose 307
+1 -1
View File
@@ -1 +1 @@
22.16.0
22.17.1
+2 -3
View File
@@ -3,7 +3,6 @@ name: immich-e2e
services:
immich-server:
container_name: immich-e2e-server
command: ['./start.sh']
image: immich-server:latest
build:
context: ../
@@ -36,10 +35,10 @@ services:
- 2285:2285
redis:
image: redis:6.2-alpine@sha256:3211c33a618c457e5d241922c975dbc4f446d0bdb2dc75694f5573ef8e2d01fa
image: redis:6.2-alpine@sha256:7fe72c486b910f6b1a9769c937dad5d63648ddee82e056f47417542dd40825bb
database:
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0@sha256:9c704fb49ce27549df00f1b096cc93f8b0c959ef087507704d74954808f78a82
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0@sha256:3aef84a0a4fabbda17ef115c3019ba0c914ec73e9f6e59203674322d858b8eea
command: -c fsync=off -c shared_preload_libraries=vchord.so -c config_file=/var/lib/postgresql/data/postgresql.conf
environment:
POSTGRES_PASSWORD: postgres
+880 -344
View File
File diff suppressed because it is too large Load Diff
+4 -2
View File
@@ -24,8 +24,9 @@
"@immich/cli": "file:../cli",
"@immich/sdk": "file:../open-api/typescript-sdk",
"@playwright/test": "^1.44.1",
"@socket.io/component-emitter": "^3.1.2",
"@types/luxon": "^3.4.2",
"@types/node": "^22.15.31",
"@types/node": "^22.16.4",
"@types/oidc-provider": "^9.0.0",
"@types/pg": "^8.15.1",
"@types/pngjs": "^6.0.4",
@@ -44,6 +45,7 @@
"pngjs": "^7.0.0",
"prettier": "^3.2.5",
"prettier-plugin-organize-imports": "^4.0.0",
"sharp": "^0.34.0",
"socket.io-client": "^4.7.4",
"supertest": "^7.0.0",
"typescript": "^5.3.3",
@@ -52,6 +54,6 @@
"vitest": "^3.0.0"
},
"volta": {
"node": "22.16.0"
"node": "22.17.1"
}
}
+32
View File
@@ -7,6 +7,7 @@ import {
ReactionType,
createActivity as create,
createAlbum,
removeAssetFromAlbum,
} from '@immich/sdk';
import { createUserDto, uuidDto } from 'src/fixtures';
import { errorDto } from 'src/responses';
@@ -342,5 +343,36 @@ describe('/activities', () => {
expect(status).toBe(204);
});
it('should return empty list when asset is removed', async () => {
const album3 = await createAlbum(
{
createAlbumDto: {
albumName: 'Album 3',
assetIds: [asset.id],
},
},
{ headers: asBearerAuth(admin.accessToken) },
);
await createActivity({ albumId: album3.id, assetId: asset.id, type: ReactionType.Like });
await removeAssetFromAlbum(
{
id: album3.id,
bulkIdsDto: {
ids: [asset.id],
},
},
{ headers: asBearerAuth(admin.accessToken) },
);
const { status, body } = await request(app)
.get('/activities')
.query({ albumId: album.id })
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toEqual(200);
expect(body).toEqual([]);
});
});
});
+1 -1
View File
@@ -20,7 +20,7 @@ describe('/api-keys', () => {
});
beforeEach(async () => {
await utils.resetDatabase(['api_keys']);
await utils.resetDatabase(['api_key']);
});
describe('POST /api-keys', () => {
+440
View File
@@ -15,6 +15,7 @@ import { DateTime } from 'luxon';
import { randomBytes } from 'node:crypto';
import { readFile, writeFile } from 'node:fs/promises';
import { basename, join } from 'node:path';
import sharp from 'sharp';
import { Socket } from 'socket.io-client';
import { createUserDto, uuidDto } from 'src/fixtures';
import { makeRandomImage } from 'src/generators';
@@ -40,6 +41,40 @@ const today = DateTime.fromObject({
}) as DateTime<true>;
const yesterday = today.minus({ days: 1 });
const createTestImageWithExif = async (filename: string, exifData: Record<string, any>) => {
// Generate unique color to ensure different checksums for each image
const r = Math.floor(Math.random() * 256);
const g = Math.floor(Math.random() * 256);
const b = Math.floor(Math.random() * 256);
// Create a 100x100 solid color JPEG using Sharp
const imageBytes = await sharp({
create: {
width: 100,
height: 100,
channels: 3,
background: { r, g, b },
},
})
.jpeg({ quality: 90 })
.toBuffer();
// Add random suffix to filename to avoid collisions
const uniqueFilename = filename.replace('.jpg', `-${randomBytes(4).toString('hex')}.jpg`);
const filepath = join(tempDir, uniqueFilename);
await writeFile(filepath, imageBytes);
// Filter out undefined values before writing EXIF
const cleanExifData = Object.fromEntries(Object.entries(exifData).filter(([, value]) => value !== undefined));
await exiftool.write(filepath, cleanExifData);
// Re-read the image bytes after EXIF has been written
const finalImageBytes = await readFile(filepath);
return { filepath, imageBytes: finalImageBytes, filename: uniqueFilename };
};
describe('/asset', () => {
let admin: LoginResponseDto;
let websocket: Socket;
@@ -1190,6 +1225,411 @@ describe('/asset', () => {
});
});
describe('EXIF metadata extraction', () => {
describe('Additional date tag extraction', () => {
describe('Date-time vs time-only tag handling', () => {
it('should fall back to file timestamps when only time-only tags are available', async () => {
const { imageBytes, filename } = await createTestImageWithExif('time-only-fallback.jpg', {
TimeCreated: '2023:11:15 14:30:00', // Time-only tag, should not be used for dateTimeOriginal
// Exclude all date-time tags to force fallback to file timestamps
SubSecDateTimeOriginal: undefined,
DateTimeOriginal: undefined,
SubSecCreateDate: undefined,
SubSecMediaCreateDate: undefined,
CreateDate: undefined,
MediaCreateDate: undefined,
CreationDate: undefined,
DateTimeCreated: undefined,
GPSDateTime: undefined,
DateTimeUTC: undefined,
SonyDateTime2: undefined,
GPSDateStamp: undefined,
});
const oldDate = new Date('2020-01-01T00:00:00.000Z');
const asset = await utils.createAsset(admin.accessToken, {
assetData: {
filename,
bytes: imageBytes,
},
fileCreatedAt: oldDate.toISOString(),
fileModifiedAt: oldDate.toISOString(),
});
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: asset.id });
const assetInfo = await getAssetInfo({ id: asset.id }, { headers: asBearerAuth(admin.accessToken) });
expect(assetInfo.exifInfo?.dateTimeOriginal).toBeDefined();
// Should fall back to file timestamps, which we set to 2020-01-01
expect(new Date(assetInfo.exifInfo!.dateTimeOriginal!).getTime()).toBe(
new Date('2020-01-01T00:00:00.000Z').getTime(),
);
});
it('should prefer DateTimeOriginal over time-only tags', async () => {
const { imageBytes, filename } = await createTestImageWithExif('datetime-over-time.jpg', {
DateTimeOriginal: '2023:10:10 10:00:00', // Should be preferred
TimeCreated: '2023:11:15 14:30:00', // Should be ignored (time-only)
});
const asset = await utils.createAsset(admin.accessToken, {
assetData: {
filename,
bytes: imageBytes,
},
});
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: asset.id });
const assetInfo = await getAssetInfo({ id: asset.id }, { headers: asBearerAuth(admin.accessToken) });
expect(assetInfo.exifInfo?.dateTimeOriginal).toBeDefined();
// Should use DateTimeOriginal, not TimeCreated
expect(new Date(assetInfo.exifInfo!.dateTimeOriginal!).getTime()).toBe(
new Date('2023-10-10T10:00:00.000Z').getTime(),
);
});
});
describe('GPSDateTime tag extraction', () => {
it('should extract GPSDateTime with GPS coordinates', async () => {
const { imageBytes, filename } = await createTestImageWithExif('gps-datetime.jpg', {
GPSDateTime: '2023:11:15 12:30:00Z',
GPSLatitude: 37.7749,
GPSLongitude: -122.4194,
// Exclude other date tags
SubSecDateTimeOriginal: undefined,
DateTimeOriginal: undefined,
SubSecCreateDate: undefined,
SubSecMediaCreateDate: undefined,
CreateDate: undefined,
MediaCreateDate: undefined,
CreationDate: undefined,
DateTimeCreated: undefined,
TimeCreated: undefined,
});
const asset = await utils.createAsset(admin.accessToken, {
assetData: {
filename,
bytes: imageBytes,
},
});
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: asset.id });
const assetInfo = await getAssetInfo({ id: asset.id }, { headers: asBearerAuth(admin.accessToken) });
expect(assetInfo.exifInfo?.dateTimeOriginal).toBeDefined();
expect(assetInfo.exifInfo?.latitude).toBeCloseTo(37.7749, 4);
expect(assetInfo.exifInfo?.longitude).toBeCloseTo(-122.4194, 4);
expect(new Date(assetInfo.exifInfo!.dateTimeOriginal!).getTime()).toBe(
new Date('2023-11-15T12:30:00.000Z').getTime(),
);
});
});
describe('CreateDate tag extraction', () => {
it('should extract CreateDate when available', async () => {
const { imageBytes, filename } = await createTestImageWithExif('create-date.jpg', {
CreateDate: '2023:11:15 10:30:00',
// Exclude other higher priority date tags
SubSecDateTimeOriginal: undefined,
DateTimeOriginal: undefined,
SubSecCreateDate: undefined,
SubSecMediaCreateDate: undefined,
MediaCreateDate: undefined,
CreationDate: undefined,
DateTimeCreated: undefined,
TimeCreated: undefined,
GPSDateTime: undefined,
});
const asset = await utils.createAsset(admin.accessToken, {
assetData: {
filename,
bytes: imageBytes,
},
});
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: asset.id });
const assetInfo = await getAssetInfo({ id: asset.id }, { headers: asBearerAuth(admin.accessToken) });
expect(assetInfo.exifInfo?.dateTimeOriginal).toBeDefined();
expect(new Date(assetInfo.exifInfo!.dateTimeOriginal!).getTime()).toBe(
new Date('2023-11-15T10:30:00.000Z').getTime(),
);
});
});
describe('GPSDateStamp tag extraction', () => {
it('should fall back to file timestamps when only date-only tags are available', async () => {
const { imageBytes, filename } = await createTestImageWithExif('gps-datestamp.jpg', {
GPSDateStamp: '2023:11:15', // Date-only tag, should not be used for dateTimeOriginal
// Note: NOT including GPSTimeStamp to avoid automatic GPSDateTime creation
GPSLatitude: 51.5074,
GPSLongitude: -0.1278,
// Explicitly exclude all testable date-time tags to force fallback to file timestamps
DateTimeOriginal: undefined,
CreateDate: undefined,
CreationDate: undefined,
GPSDateTime: undefined,
});
const oldDate = new Date('2020-01-01T00:00:00.000Z');
const asset = await utils.createAsset(admin.accessToken, {
assetData: {
filename,
bytes: imageBytes,
},
fileCreatedAt: oldDate.toISOString(),
fileModifiedAt: oldDate.toISOString(),
});
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: asset.id });
const assetInfo = await getAssetInfo({ id: asset.id }, { headers: asBearerAuth(admin.accessToken) });
expect(assetInfo.exifInfo?.dateTimeOriginal).toBeDefined();
expect(assetInfo.exifInfo?.latitude).toBeCloseTo(51.5074, 4);
expect(assetInfo.exifInfo?.longitude).toBeCloseTo(-0.1278, 4);
// Should fall back to file timestamps, which we set to 2020-01-01
expect(new Date(assetInfo.exifInfo!.dateTimeOriginal!).getTime()).toBe(
new Date('2020-01-01T00:00:00.000Z').getTime(),
);
});
});
/*
* NOTE: The following EXIF date tags are NOT effectively usable with JPEG test files:
*
* NOT WRITABLE to JPEG:
* - MediaCreateDate: Can be read from video files but not written to JPEG
* - DateTimeCreated: Read-only tag in JPEG format
* - DateTimeUTC: Cannot be written to JPEG files
* - SonyDateTime2: Proprietary Sony tag, not writable to JPEG
* - SubSecMediaCreateDate: Tag not defined for JPEG format
* - SourceImageCreateTime: Non-standard insta360 tag, not writable to JPEG
*
* WRITABLE but NOT READABLE from JPEG:
* - SubSecDateTimeOriginal: Can be written but not read back from JPEG
* - SubSecCreateDate: Can be written but not read back from JPEG
*
* EFFECTIVELY TESTABLE TAGS (writable and readable):
* - DateTimeOriginal тЬУ
* - CreateDate тЬУ
* - CreationDate тЬУ
* - GPSDateTime тЬУ
*
* The metadata service correctly handles non-readable tags and will fall back to
* file timestamps when only non-readable tags are present.
*/
describe('Date tag priority order', () => {
it('should respect the complete date tag priority order', async () => {
// Test cases using only EFFECTIVELY TESTABLE tags (writable AND readable from JPEG)
const testCases = [
{
name: 'DateTimeOriginal has highest priority among testable tags',
exifData: {
DateTimeOriginal: '2023:04:04 04:00:00', // TESTABLE - highest priority among readable tags
CreateDate: '2023:05:05 05:00:00', // TESTABLE
CreationDate: '2023:07:07 07:00:00', // TESTABLE
GPSDateTime: '2023:10:10 10:00:00', // TESTABLE
},
expectedDate: '2023-04-04T04:00:00.000Z',
},
{
name: 'CreateDate when DateTimeOriginal missing',
exifData: {
CreateDate: '2023:05:05 05:00:00', // TESTABLE
CreationDate: '2023:07:07 07:00:00', // TESTABLE
GPSDateTime: '2023:10:10 10:00:00', // TESTABLE
},
expectedDate: '2023-05-05T05:00:00.000Z',
},
{
name: 'CreationDate when standard EXIF tags missing',
exifData: {
CreationDate: '2023:07:07 07:00:00', // TESTABLE
GPSDateTime: '2023:10:10 10:00:00', // TESTABLE
},
expectedDate: '2023-07-07T07:00:00.000Z',
},
{
name: 'GPSDateTime when no other testable date tags present',
exifData: {
GPSDateTime: '2023:10:10 10:00:00', // TESTABLE
Make: 'SONY',
},
expectedDate: '2023-10-10T10:00:00.000Z',
},
];
for (const testCase of testCases) {
const { imageBytes, filename } = await createTestImageWithExif(
`${testCase.name.replaceAll(/\s+/g, '-').toLowerCase()}.jpg`,
testCase.exifData,
);
const asset = await utils.createAsset(admin.accessToken, {
assetData: {
filename,
bytes: imageBytes,
},
});
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: asset.id });
const assetInfo = await getAssetInfo({ id: asset.id }, { headers: asBearerAuth(admin.accessToken) });
expect(assetInfo.exifInfo?.dateTimeOriginal, `Failed for: ${testCase.name}`).toBeDefined();
expect(
new Date(assetInfo.exifInfo!.dateTimeOriginal!).getTime(),
`Date mismatch for: ${testCase.name}`,
).toBe(new Date(testCase.expectedDate).getTime());
}
});
});
describe('Edge cases for date tag handling', () => {
it('should fall back to file timestamps with GPSDateStamp alone', async () => {
const { imageBytes, filename } = await createTestImageWithExif('gps-datestamp-only.jpg', {
GPSDateStamp: '2023:08:08', // Date-only tag, should not be used for dateTimeOriginal
// Intentionally no GPSTimeStamp
// Exclude all other date tags
SubSecDateTimeOriginal: undefined,
DateTimeOriginal: undefined,
SubSecCreateDate: undefined,
SubSecMediaCreateDate: undefined,
CreateDate: undefined,
MediaCreateDate: undefined,
CreationDate: undefined,
DateTimeCreated: undefined,
TimeCreated: undefined,
GPSDateTime: undefined,
DateTimeUTC: undefined,
});
const oldDate = new Date('2020-01-01T00:00:00.000Z');
const asset = await utils.createAsset(admin.accessToken, {
assetData: {
filename,
bytes: imageBytes,
},
fileCreatedAt: oldDate.toISOString(),
fileModifiedAt: oldDate.toISOString(),
});
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: asset.id });
const assetInfo = await getAssetInfo({ id: asset.id }, { headers: asBearerAuth(admin.accessToken) });
expect(assetInfo.exifInfo?.dateTimeOriginal).toBeDefined();
// Should fall back to file timestamps, which we set to 2020-01-01
expect(new Date(assetInfo.exifInfo!.dateTimeOriginal!).getTime()).toBe(
new Date('2020-01-01T00:00:00.000Z').getTime(),
);
});
it('should handle all testable date tags present to verify complete priority order', async () => {
const { imageBytes, filename } = await createTestImageWithExif('all-testable-date-tags.jpg', {
// All TESTABLE date tags to JPEG format (writable AND readable)
DateTimeOriginal: '2023:04:04 04:00:00', // TESTABLE - highest priority among readable tags
CreateDate: '2023:05:05 05:00:00', // TESTABLE
CreationDate: '2023:07:07 07:00:00', // TESTABLE
GPSDateTime: '2023:10:10 10:00:00', // TESTABLE
// Note: Excluded non-testable tags:
// SubSec tags: writable but not readable from JPEG
// Non-writable tags: MediaCreateDate, DateTimeCreated, DateTimeUTC, SonyDateTime2, etc.
// Time-only/date-only tags: already excluded from EXIF_DATE_TAGS
});
const asset = await utils.createAsset(admin.accessToken, {
assetData: {
filename,
bytes: imageBytes,
},
});
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: asset.id });
const assetInfo = await getAssetInfo({ id: asset.id }, { headers: asBearerAuth(admin.accessToken) });
expect(assetInfo.exifInfo?.dateTimeOriginal).toBeDefined();
// Should use DateTimeOriginal as it has the highest priority among testable tags
expect(new Date(assetInfo.exifInfo!.dateTimeOriginal!).getTime()).toBe(
new Date('2023-04-04T04:00:00.000Z').getTime(),
);
});
it('should use CreationDate when SubSec tags are missing', async () => {
const { imageBytes, filename } = await createTestImageWithExif('creation-date-priority.jpg', {
CreationDate: '2023:07:07 07:00:00', // WRITABLE
GPSDateTime: '2023:10:10 10:00:00', // WRITABLE
// Note: DateTimeCreated, DateTimeUTC, SonyDateTime2 are NOT writable to JPEG
// Note: TimeCreated and GPSDateStamp are excluded from EXIF_DATE_TAGS (time-only/date-only)
// Exclude SubSec and standard EXIF tags
SubSecDateTimeOriginal: undefined,
DateTimeOriginal: undefined,
SubSecCreateDate: undefined,
CreateDate: undefined,
});
const asset = await utils.createAsset(admin.accessToken, {
assetData: {
filename,
bytes: imageBytes,
},
});
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: asset.id });
const assetInfo = await getAssetInfo({ id: asset.id }, { headers: asBearerAuth(admin.accessToken) });
expect(assetInfo.exifInfo?.dateTimeOriginal).toBeDefined();
// Should use CreationDate when available
expect(new Date(assetInfo.exifInfo!.dateTimeOriginal!).getTime()).toBe(
new Date('2023-07-07T07:00:00.000Z').getTime(),
);
});
it('should skip invalid date formats and use next valid tag', async () => {
const { imageBytes, filename } = await createTestImageWithExif('invalid-date-handling.jpg', {
// Note: Testing invalid date handling with only WRITABLE tags
GPSDateTime: '2023:10:10 10:00:00', // WRITABLE - Valid date
CreationDate: '2023:13:13 13:00:00', // WRITABLE - Valid date
// Note: TimeCreated excluded (time-only), DateTimeCreated not writable to JPEG
// Exclude other date tags
SubSecDateTimeOriginal: undefined,
DateTimeOriginal: undefined,
SubSecCreateDate: undefined,
CreateDate: undefined,
});
const asset = await utils.createAsset(admin.accessToken, {
assetData: {
filename,
bytes: imageBytes,
},
});
await utils.waitForWebsocketEvent({ event: 'assetUpload', id: asset.id });
const assetInfo = await getAssetInfo({ id: asset.id }, { headers: asBearerAuth(admin.accessToken) });
expect(assetInfo.exifInfo?.dateTimeOriginal).toBeDefined();
// Should skip invalid dates and use the first valid one (GPSDateTime)
expect(new Date(assetInfo.exifInfo!.dateTimeOriginal!).getTime()).toBe(
new Date('2023-10-10T10:00:00.000Z').getTime(),
);
});
});
});
});
describe('POST /assets/exist', () => {
it('ignores invalid deviceAssetIds', async () => {
const response = await utils.checkExistingAssets(user1.accessToken, {
-146
View File
@@ -1,146 +0,0 @@
import { LoginResponseDto, login, signUpAdmin } from '@immich/sdk';
import { loginDto, signupDto } from 'src/fixtures';
import { errorDto, loginResponseDto, signupResponseDto } from 'src/responses';
import { app, utils } from 'src/utils';
import request from 'supertest';
import { beforeEach, describe, expect, it } from 'vitest';
const { email, password } = signupDto.admin;
describe(`/auth/admin-sign-up`, () => {
beforeEach(async () => {
await utils.resetDatabase();
});
describe('POST /auth/admin-sign-up', () => {
it(`should sign up the admin`, async () => {
const { status, body } = await request(app).post('/auth/admin-sign-up').send(signupDto.admin);
expect(status).toBe(201);
expect(body).toEqual(signupResponseDto.admin);
});
it('should not allow a second admin to sign up', async () => {
await signUpAdmin({ signUpDto: signupDto.admin });
const { status, body } = await request(app).post('/auth/admin-sign-up').send(signupDto.admin);
expect(status).toBe(400);
expect(body).toEqual(errorDto.alreadyHasAdmin);
});
});
});
describe('/auth/*', () => {
let admin: LoginResponseDto;
beforeEach(async () => {
await utils.resetDatabase();
await signUpAdmin({ signUpDto: signupDto.admin });
admin = await login({ loginCredentialDto: loginDto.admin });
});
describe(`POST /auth/login`, () => {
it('should reject an incorrect password', async () => {
const { status, body } = await request(app).post('/auth/login').send({ email, password: 'incorrect' });
expect(status).toBe(401);
expect(body).toEqual(errorDto.incorrectLogin);
});
it('should accept a correct password', async () => {
const { status, body, headers } = await request(app).post('/auth/login').send({ email, password });
expect(status).toBe(201);
expect(body).toEqual(loginResponseDto.admin);
const token = body.accessToken;
expect(token).toBeDefined();
const cookies = headers['set-cookie'];
expect(cookies).toHaveLength(3);
expect(cookies[0].split(';').map((item) => item.trim())).toEqual([
`immich_access_token=${token}`,
'Max-Age=34560000',
'Path=/',
expect.stringContaining('Expires='),
'HttpOnly',
'SameSite=Lax',
]);
expect(cookies[1].split(';').map((item) => item.trim())).toEqual([
'immich_auth_type=password',
'Max-Age=34560000',
'Path=/',
expect.stringContaining('Expires='),
'HttpOnly',
'SameSite=Lax',
]);
expect(cookies[2].split(';').map((item) => item.trim())).toEqual([
'immich_is_authenticated=true',
'Max-Age=34560000',
'Path=/',
expect.stringContaining('Expires='),
'SameSite=Lax',
]);
});
});
describe('POST /auth/validateToken', () => {
it('should reject an invalid token', async () => {
const { status, body } = await request(app).post(`/auth/validateToken`).set('Authorization', 'Bearer 123');
expect(status).toBe(401);
expect(body).toEqual(errorDto.invalidToken);
});
it('should accept a valid token', async () => {
const { status, body } = await request(app)
.post(`/auth/validateToken`)
.send({})
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(200);
expect(body).toEqual({ authStatus: true });
});
});
describe('POST /auth/change-password', () => {
it('should require the current password', async () => {
const { status, body } = await request(app)
.post(`/auth/change-password`)
.send({ password: 'wrong-password', newPassword: 'Password1234' })
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.wrongPassword);
});
it('should change the password', async () => {
const { status } = await request(app)
.post(`/auth/change-password`)
.send({ password, newPassword: 'Password1234' })
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(200);
await login({
loginCredentialDto: {
email: 'admin@immich.cloud',
password: 'Password1234',
},
});
});
});
describe('POST /auth/logout', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).post(`/auth/logout`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should logout the user', async () => {
const { status, body } = await request(app)
.post(`/auth/logout`)
.set('Authorization', `Bearer ${admin.accessToken}`);
expect(status).toBe(200);
expect(body).toEqual({
successful: true,
redirectUri: '/auth/login?autoLaunch=0',
});
});
});
});
+2 -201
View File
@@ -6,7 +6,7 @@ import {
createMemory,
getMemory,
} from '@immich/sdk';
import { createUserDto, uuidDto } from 'src/fixtures';
import { createUserDto } from 'src/fixtures';
import { errorDto } from 'src/responses';
import { app, asBearerAuth, utils } from 'src/utils';
import request from 'supertest';
@@ -17,7 +17,6 @@ describe('/memories', () => {
let user: LoginResponseDto;
let adminAsset: AssetMediaResponseDto;
let userAsset1: AssetMediaResponseDto;
let userAsset2: AssetMediaResponseDto;
let userMemory: MemoryResponseDto;
beforeAll(async () => {
@@ -25,10 +24,9 @@ describe('/memories', () => {
admin = await utils.adminSetup();
user = await utils.userSetup(admin.accessToken, createUserDto.user1);
[adminAsset, userAsset1, userAsset2] = await Promise.all([
[adminAsset, userAsset1] = await Promise.all([
utils.createAsset(admin.accessToken),
utils.createAsset(user.accessToken),
utils.createAsset(user.accessToken),
]);
userMemory = await createMemory(
{
@@ -43,121 +41,7 @@ describe('/memories', () => {
);
});
describe('GET /memories', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/memories');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
});
describe('POST /memories', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).post('/memories');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should validate data when type is on this day', async () => {
const { status, body } = await request(app)
.post('/memories')
.set('Authorization', `Bearer ${user.accessToken}`)
.send({
type: 'on_this_day',
data: {},
memoryAt: new Date(2021).toISOString(),
});
expect(status).toBe(400);
expect(body).toEqual(
errorDto.badRequest(['data.year must be a positive number', 'data.year must be an integer number']),
);
});
it('should create a new memory', async () => {
const { status, body } = await request(app)
.post('/memories')
.set('Authorization', `Bearer ${user.accessToken}`)
.send({
type: 'on_this_day',
data: { year: 2021 },
memoryAt: new Date(2021).toISOString(),
});
expect(status).toBe(201);
expect(body).toEqual({
id: expect.any(String),
type: 'on_this_day',
data: { year: 2021 },
createdAt: expect.any(String),
updatedAt: expect.any(String),
isSaved: false,
memoryAt: expect.any(String),
ownerId: user.userId,
assets: [],
});
});
it('should create a new memory (with assets)', async () => {
const { status, body } = await request(app)
.post('/memories')
.set('Authorization', `Bearer ${user.accessToken}`)
.send({
type: 'on_this_day',
data: { year: 2021 },
memoryAt: new Date(2021).toISOString(),
assetIds: [userAsset1.id, userAsset2.id],
});
expect(status).toBe(201);
expect(body).toMatchObject({
id: expect.any(String),
assets: expect.arrayContaining([
expect.objectContaining({ id: userAsset1.id }),
expect.objectContaining({ id: userAsset2.id }),
]),
});
expect(body.assets).toHaveLength(2);
});
it('should create a new memory and ignore assets the user does not have access to', async () => {
const { status, body } = await request(app)
.post('/memories')
.set('Authorization', `Bearer ${user.accessToken}`)
.send({
type: 'on_this_day',
data: { year: 2021 },
memoryAt: new Date(2021).toISOString(),
assetIds: [userAsset1.id, adminAsset.id],
});
expect(status).toBe(201);
expect(body).toMatchObject({
id: expect.any(String),
assets: [expect.objectContaining({ id: userAsset1.id })],
});
expect(body.assets).toHaveLength(1);
});
});
describe('GET /memories/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get(`/memories/${uuidDto.invalid}`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require a valid id', async () => {
const { status, body } = await request(app)
.get(`/memories/${uuidDto.invalid}`)
.set('Authorization', `Bearer ${user.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
});
it('should require access', async () => {
const { status, body } = await request(app)
.get(`/memories/${userMemory.id}`)
@@ -176,22 +60,6 @@ describe('/memories', () => {
});
describe('PUT /memories/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).put(`/memories/${uuidDto.invalid}`).send({ isSaved: true });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require a valid id', async () => {
const { status, body } = await request(app)
.put(`/memories/${uuidDto.invalid}`)
.send({ isSaved: true })
.set('Authorization', `Bearer ${user.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
});
it('should require access', async () => {
const { status, body } = await request(app)
.put(`/memories/${userMemory.id}`)
@@ -218,23 +86,6 @@ describe('/memories', () => {
});
describe('PUT /memories/:id/assets', () => {
it('should require authentication', async () => {
const { status, body } = await request(app)
.put(`/memories/${userMemory.id}/assets`)
.send({ ids: [userAsset1.id] });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require a valid id', async () => {
const { status, body } = await request(app)
.put(`/memories/${uuidDto.invalid}/assets`)
.send({ ids: [userAsset1.id] })
.set('Authorization', `Bearer ${user.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
});
it('should require access', async () => {
const { status, body } = await request(app)
.put(`/memories/${userMemory.id}/assets`)
@@ -244,15 +95,6 @@ describe('/memories', () => {
expect(body).toEqual(errorDto.noPermission);
});
it('should require a valid asset id', async () => {
const { status, body } = await request(app)
.put(`/memories/${userMemory.id}/assets`)
.send({ ids: [uuidDto.invalid] })
.set('Authorization', `Bearer ${user.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['each value in ids must be a UUID']));
});
it('should require asset access', async () => {
const { status, body } = await request(app)
.put(`/memories/${userMemory.id}/assets`)
@@ -279,23 +121,6 @@ describe('/memories', () => {
});
describe('DELETE /memories/:id/assets', () => {
it('should require authentication', async () => {
const { status, body } = await request(app)
.delete(`/memories/${userMemory.id}/assets`)
.send({ ids: [userAsset1.id] });
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require a valid id', async () => {
const { status, body } = await request(app)
.delete(`/memories/${uuidDto.invalid}/assets`)
.send({ ids: [userAsset1.id] })
.set('Authorization', `Bearer ${user.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
});
it('should require access', async () => {
const { status, body } = await request(app)
.delete(`/memories/${userMemory.id}/assets`)
@@ -305,15 +130,6 @@ describe('/memories', () => {
expect(body).toEqual(errorDto.noPermission);
});
it('should require a valid asset id', async () => {
const { status, body } = await request(app)
.delete(`/memories/${userMemory.id}/assets`)
.send({ ids: [uuidDto.invalid] })
.set('Authorization', `Bearer ${user.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['each value in ids must be a UUID']));
});
it('should only remove assets in the memory', async () => {
const { status, body } = await request(app)
.delete(`/memories/${userMemory.id}/assets`)
@@ -340,21 +156,6 @@ describe('/memories', () => {
});
describe('DELETE /memories/:id', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).delete(`/memories/${uuidDto.invalid}`);
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should require a valid id', async () => {
const { status, body } = await request(app)
.delete(`/memories/${uuidDto.invalid}`)
.set('Authorization', `Bearer ${user.accessToken}`);
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest(['id must be a UUID']));
});
it('should require access', async () => {
const { status, body } = await request(app)
.delete(`/memories/${userMemory.id}`)
+15
View File
@@ -227,6 +227,21 @@ describe(`/oauth`, () => {
expect(user.storageLabel).toBe('user-username');
});
it('should set the admin status from a role claim', async () => {
const callbackParams = await loginWithOAuth(OAuthUser.WITH_ROLE);
const { status, body } = await request(app).post('/oauth/callback').send(callbackParams);
expect(status).toBe(201);
expect(body).toMatchObject({
accessToken: expect.any(String),
userId: expect.any(String),
userEmail: 'oauth-with-role@immich.app',
isAdmin: true,
});
const user = await getMyUser({ headers: asBearerAuth(body.accessToken) });
expect(user.isAdmin).toBe(true);
});
it('should work with RS256 signed tokens', async () => {
await setupOAuth(admin.accessToken, {
enabled: true,
+17
View File
@@ -117,8 +117,25 @@ describe('/shared-links', () => {
const resp = await request(shareUrl).get(`/${linkWithAssets.key}`);
expect(resp.status).toBe(200);
expect(resp.header['content-type']).toContain('text/html');
expect(resp.text).toContain(`<meta property="og:image" content="http://127.0.0.1:2285`);
});
it('should fall back to my.immich.app og:image meta tag for shared asset if Host header is not present', async () => {
const resp = await request(shareUrl).get(`/${linkWithAssets.key}`).set('Host', '');
expect(resp.status).toBe(200);
expect(resp.header['content-type']).toContain('text/html');
expect(resp.text).toContain(`<meta property="og:image" content="https://my.immich.app`);
});
it('should return 404 for an invalid shared link', async () => {
const resp = await request(shareUrl).get(`/invalid-key`);
expect(resp.status).toBe(404);
expect(resp.header['content-type']).toContain('text/html');
expect(resp.text).not.toContain(`og:type`);
expect(resp.text).not.toContain(`og:title`);
expect(resp.text).not.toContain(`og:description`);
expect(resp.text).not.toContain(`og:image`);
});
});
describe('GET /shared-links', () => {
@@ -15,12 +15,6 @@ describe('/system-config', () => {
});
describe('PUT /system-config', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).put('/system-config');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should always return the new config', async () => {
const config = await getSystemConfig(admin.accessToken);
+1 -1
View File
@@ -37,7 +37,7 @@ describe('/tags', () => {
beforeEach(async () => {
// tagging assets eventually triggers metadata extraction which can impact other tests
await utils.waitForQueueFinish(admin.accessToken, 'metadataExtraction');
await utils.resetDatabase(['tags']);
await utils.resetDatabase(['tag']);
});
describe('POST /tags', () => {
-230
View File
@@ -1,230 +0,0 @@
import {
AssetMediaResponseDto,
AssetVisibility,
LoginResponseDto,
SharedLinkType,
TimeBucketAssetResponseDto,
} from '@immich/sdk';
import { DateTime } from 'luxon';
import { createUserDto } from 'src/fixtures';
import { errorDto } from 'src/responses';
import { app, utils } from 'src/utils';
import request from 'supertest';
import { beforeAll, describe, expect, it } from 'vitest';
// TODO this should probably be a test util function
const today = DateTime.fromObject({
year: 2023,
month: 11,
day: 3,
}) as DateTime<true>;
const yesterday = today.minus({ days: 1 });
describe('/timeline', () => {
let admin: LoginResponseDto;
let user: LoginResponseDto;
let timeBucketUser: LoginResponseDto;
let user1Assets: AssetMediaResponseDto[];
let user2Assets: AssetMediaResponseDto[];
beforeAll(async () => {
await utils.resetDatabase();
admin = await utils.adminSetup({ onboarding: false });
[user, timeBucketUser] = await Promise.all([
utils.userSetup(admin.accessToken, createUserDto.create('1')),
utils.userSetup(admin.accessToken, createUserDto.create('time-bucket')),
]);
user1Assets = await Promise.all([
utils.createAsset(user.accessToken),
utils.createAsset(user.accessToken),
utils.createAsset(user.accessToken, {
isFavorite: true,
fileCreatedAt: yesterday.toISO(),
fileModifiedAt: yesterday.toISO(),
assetData: { filename: 'example.mp4' },
}),
utils.createAsset(user.accessToken),
utils.createAsset(user.accessToken),
]);
user2Assets = await Promise.all([
utils.createAsset(timeBucketUser.accessToken, { fileCreatedAt: new Date('1970-01-01').toISOString() }),
utils.createAsset(timeBucketUser.accessToken, { fileCreatedAt: new Date('1970-02-10').toISOString() }),
utils.createAsset(timeBucketUser.accessToken, { fileCreatedAt: new Date('1970-02-11').toISOString() }),
utils.createAsset(timeBucketUser.accessToken, { fileCreatedAt: new Date('1970-02-11').toISOString() }),
utils.createAsset(timeBucketUser.accessToken, { fileCreatedAt: new Date('1970-02-12').toISOString() }),
]);
await utils.deleteAssets(timeBucketUser.accessToken, [user2Assets[4].id]);
});
describe('GET /timeline/buckets', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/timeline/buckets');
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should get time buckets by month', async () => {
const { status, body } = await request(app)
.get('/timeline/buckets')
.set('Authorization', `Bearer ${timeBucketUser.accessToken}`);
expect(status).toBe(200);
expect(body).toEqual(
expect.arrayContaining([
{ count: 3, timeBucket: '1970-02-01' },
{ count: 1, timeBucket: '1970-01-01' },
]),
);
});
it('should not allow access for unrelated shared links', async () => {
const sharedLink = await utils.createSharedLink(user.accessToken, {
type: SharedLinkType.Individual,
assetIds: user1Assets.map(({ id }) => id),
});
const { status, body } = await request(app).get('/timeline/buckets').query({ key: sharedLink.key });
expect(status).toBe(400);
expect(body).toEqual(errorDto.noPermission);
});
it('should return error if time bucket is requested with partners asset and archived', async () => {
const req1 = await request(app)
.get('/timeline/buckets')
.set('Authorization', `Bearer ${timeBucketUser.accessToken}`)
.query({ withPartners: true, visibility: AssetVisibility.Archive });
expect(req1.status).toBe(400);
expect(req1.body).toEqual(errorDto.badRequest());
const req2 = await request(app)
.get('/timeline/buckets')
.set('Authorization', `Bearer ${user.accessToken}`)
.query({ withPartners: true, visibility: undefined });
expect(req2.status).toBe(400);
expect(req2.body).toEqual(errorDto.badRequest());
});
it('should return error if time bucket is requested with partners asset and favorite', async () => {
const req1 = await request(app)
.get('/timeline/buckets')
.set('Authorization', `Bearer ${timeBucketUser.accessToken}`)
.query({ withPartners: true, isFavorite: true });
expect(req1.status).toBe(400);
expect(req1.body).toEqual(errorDto.badRequest());
const req2 = await request(app)
.get('/timeline/buckets')
.set('Authorization', `Bearer ${timeBucketUser.accessToken}`)
.query({ withPartners: true, isFavorite: false });
expect(req2.status).toBe(400);
expect(req2.body).toEqual(errorDto.badRequest());
});
it('should return error if time bucket is requested with partners asset and trash', async () => {
const req = await request(app)
.get('/timeline/buckets')
.set('Authorization', `Bearer ${user.accessToken}`)
.query({ withPartners: true, isTrashed: true });
expect(req.status).toBe(400);
expect(req.body).toEqual(errorDto.badRequest());
});
});
describe('GET /timeline/bucket', () => {
it('should require authentication', async () => {
const { status, body } = await request(app).get('/timeline/bucket').query({
timeBucket: '1900-01-01',
});
expect(status).toBe(401);
expect(body).toEqual(errorDto.unauthorized);
});
it('should handle 5 digit years', async () => {
const { status, body } = await request(app)
.get('/timeline/bucket')
.query({ timeBucket: '012345-01-01' })
.set('Authorization', `Bearer ${timeBucketUser.accessToken}`);
expect(status).toBe(200);
expect(body).toEqual({
city: [],
country: [],
duration: [],
id: [],
visibility: [],
isFavorite: [],
isImage: [],
isTrashed: [],
livePhotoVideoId: [],
fileCreatedAt: [],
localOffsetHours: [],
ownerId: [],
projectionType: [],
ratio: [],
status: [],
thumbhash: [],
});
});
// TODO enable date string validation while still accepting 5 digit years
// it('should fail if time bucket is invalid', async () => {
// const { status, body } = await request(app)
// .get('/timeline/bucket')
// .set('Authorization', `Bearer ${user.accessToken}`)
// .query({ timeBucket: 'foo' });
// expect(status).toBe(400);
// expect(body).toEqual(errorDto.badRequest);
// });
it('should return time bucket', async () => {
const { status, body } = await request(app)
.get('/timeline/bucket')
.set('Authorization', `Bearer ${timeBucketUser.accessToken}`)
.query({ timeBucket: '1970-02-10' });
expect(status).toBe(200);
expect(body).toEqual({
city: [],
country: [],
duration: [],
id: [],
visibility: [],
isFavorite: [],
isImage: [],
isTrashed: [],
livePhotoVideoId: [],
fileCreatedAt: [],
localOffsetHours: [],
ownerId: [],
projectionType: [],
ratio: [],
status: [],
thumbhash: [],
});
});
it('should return time bucket in trash', async () => {
const { status, body } = await request(app)
.get('/timeline/bucket')
.set('Authorization', `Bearer ${timeBucketUser.accessToken}`)
.query({ timeBucket: '1970-02-01T00:00:00.000Z', isTrashed: true });
expect(status).toBe(200);
const timeBucket: TimeBucketAssetResponseDto = body;
expect(timeBucket.isTrashed).toEqual([true]);
});
});
});
+1 -1
View File
@@ -97,7 +97,7 @@ describe(`immich upload`, () => {
});
beforeEach(async () => {
await utils.resetDatabase(['assets', 'albums']);
await utils.resetDatabase(['asset', 'album']);
});
describe(`immich upload /path/to/file.jpg`, () => {
+178
View File
@@ -0,0 +1,178 @@
#!/usr/bin/env node
/**
* Script to generate test images with additional EXIF date tags
* This creates actual JPEG images with embedded metadata for testing
* Images are generated into e2e/test-assets/metadata/dates/
*/
import { execSync } from 'node:child_process';
import { writeFileSync } from 'node:fs';
import { dirname, join } from 'node:path';
import { fileURLToPath } from 'node:url';
import sharp from 'sharp';
interface TestImage {
filename: string;
description: string;
exifTags: Record<string, string>;
}
const testImages: TestImage[] = [
{
filename: 'time-created.jpg',
description: 'Image with TimeCreated tag',
exifTags: {
TimeCreated: '2023:11:15 14:30:00',
Make: 'Canon',
Model: 'EOS R5',
},
},
{
filename: 'gps-datetime.jpg',
description: 'Image with GPSDateTime and coordinates',
exifTags: {
GPSDateTime: '2023:11:15 12:30:00Z',
GPSLatitude: '37.7749',
GPSLongitude: '-122.4194',
GPSLatitudeRef: 'N',
GPSLongitudeRef: 'W',
},
},
{
filename: 'datetime-utc.jpg',
description: 'Image with DateTimeUTC tag',
exifTags: {
DateTimeUTC: '2023:11:15 10:30:00',
Make: 'Nikon',
Model: 'D850',
},
},
{
filename: 'gps-datestamp.jpg',
description: 'Image with GPSDateStamp and GPSTimeStamp',
exifTags: {
GPSDateStamp: '2023:11:15',
GPSTimeStamp: '08:30:00',
GPSLatitude: '51.5074',
GPSLongitude: '-0.1278',
GPSLatitudeRef: 'N',
GPSLongitudeRef: 'W',
},
},
{
filename: 'sony-datetime2.jpg',
description: 'Sony camera image with SonyDateTime2 tag',
exifTags: {
SonyDateTime2: '2023:11:15 06:30:00',
Make: 'SONY',
Model: 'ILCE-7RM5',
},
},
{
filename: 'date-priority-test.jpg',
description: 'Image with multiple date tags to test priority',
exifTags: {
SubSecDateTimeOriginal: '2023:01:01 01:00:00',
DateTimeOriginal: '2023:02:02 02:00:00',
SubSecCreateDate: '2023:03:03 03:00:00',
CreateDate: '2023:04:04 04:00:00',
CreationDate: '2023:05:05 05:00:00',
DateTimeCreated: '2023:06:06 06:00:00',
TimeCreated: '2023:07:07 07:00:00',
GPSDateTime: '2023:08:08 08:00:00',
DateTimeUTC: '2023:09:09 09:00:00',
GPSDateStamp: '2023:10:10',
SonyDateTime2: '2023:11:11 11:00:00',
},
},
{
filename: 'new-tags-only.jpg',
description: 'Image with only additional date tags (no standard tags)',
exifTags: {
TimeCreated: '2023:12:01 15:45:30',
GPSDateTime: '2023:12:01 13:45:30Z',
DateTimeUTC: '2023:12:01 13:45:30',
GPSDateStamp: '2023:12:01',
SonyDateTime2: '2023:12:01 08:45:30',
GPSLatitude: '40.7128',
GPSLongitude: '-74.0060',
GPSLatitudeRef: 'N',
GPSLongitudeRef: 'W',
},
},
];
const generateTestImages = async (): Promise<void> => {
// Target directory: e2e/test-assets/metadata/dates/
// Current file is in: e2e/src/
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const targetDir = join(__dirname, '..', 'test-assets', 'metadata', 'dates');
console.log('Generating test images with additional EXIF date tags...');
console.log(`Target directory: ${targetDir}`);
for (const image of testImages) {
try {
const imagePath = join(targetDir, image.filename);
// Create unique JPEG file using Sharp
const r = Math.floor(Math.random() * 256);
const g = Math.floor(Math.random() * 256);
const b = Math.floor(Math.random() * 256);
const jpegData = await sharp({
create: {
width: 100,
height: 100,
channels: 3,
background: { r, g, b },
},
})
.jpeg({ quality: 90 })
.toBuffer();
writeFileSync(imagePath, jpegData);
// Build exiftool command to add EXIF data
const exifArgs = Object.entries(image.exifTags)
.map(([tag, value]) => `-${tag}="${value}"`)
.join(' ');
const command = `exiftool ${exifArgs} -overwrite_original "${imagePath}"`;
console.log(`Creating ${image.filename}: ${image.description}`);
execSync(command, { stdio: 'pipe' });
// Verify the tags were written
const verifyCommand = `exiftool -json "${imagePath}"`;
const result = execSync(verifyCommand, { encoding: 'utf8' });
const metadata = JSON.parse(result)[0];
console.log(` тЬУ Created with ${Object.keys(image.exifTags).length} EXIF tags`);
// Log first date tag found for verification
const firstDateTag = Object.keys(image.exifTags).find(
(tag) => tag.includes('Date') || tag.includes('Time') || tag.includes('Created'),
);
if (firstDateTag && metadata[firstDateTag]) {
console.log(` тЬУ Verified ${firstDateTag}: ${metadata[firstDateTag]}`);
}
} catch (error) {
console.error(`Failed to create ${image.filename}:`, (error as Error).message);
}
}
console.log('\nTest image generation complete!');
console.log('Files created in:', targetDir);
console.log('\nTo test these images:');
console.log(`cd ${targetDir} && exiftool -time:all -gps:all *.jpg`);
};
export { generateTestImages };
// Run the generator if this file is executed directly
if (import.meta.url === `file://${process.argv[1]}`) {
generateTestImages().catch(console.error);
}
+1
View File
@@ -116,6 +116,7 @@ export const deviceDto = {
createdAt: expect.any(String),
updatedAt: expect.any(String),
current: true,
isPendingSyncReset: false,
deviceOS: '',
deviceType: '',
},
+16 -1
View File
@@ -12,6 +12,7 @@ export enum OAuthUser {
NO_NAME = 'no-name',
WITH_QUOTA = 'with-quota',
WITH_USERNAME = 'with-username',
WITH_ROLE = 'with-role',
}
const claims = [
@@ -34,6 +35,12 @@ const claims = [
preferred_username: 'user-quota',
immich_quota: 25,
},
{
sub: OAuthUser.WITH_ROLE,
email: 'oauth-with-role@immich.app',
email_verified: true,
immich_role: 'admin',
},
];
const withDefaultClaims = (sub: string) => ({
@@ -64,7 +71,15 @@ const setup = async () => {
claims: {
openid: ['sub'],
email: ['email', 'email_verified'],
profile: ['name', 'given_name', 'family_name', 'preferred_username', 'immich_quota', 'immich_username'],
profile: [
'name',
'given_name',
'family_name',
'preferred_username',
'immich_quota',
'immich_username',
'immich_role',
],
},
features: {
jwtUserinfo: {
+15 -14
View File
@@ -60,6 +60,7 @@ import { io, type Socket } from 'socket.io-client';
import { loginDto, signupDto } from 'src/fixtures';
import { makeRandomImage } from 'src/generators';
import request from 'supertest';
export type { Emitter } from '@socket.io/component-emitter';
type CommandResponse = { stdout: string; stderr: string; exitCode: number | null };
type EventType = 'assetUpload' | 'assetUpdate' | 'assetDelete' | 'userDelete' | 'assetHidden';
@@ -84,10 +85,10 @@ export const immichAdmin = (args: string[]) =>
export const specialCharStrings = ["'", '"', ',', '{', '}', '*'];
export const TEN_TIMES = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const executeCommand = (command: string, args: string[]) => {
const executeCommand = (command: string, args: string[], options?: { cwd?: string }) => {
let _resolve: (value: CommandResponse) => void;
const promise = new Promise<CommandResponse>((resolve) => (_resolve = resolve));
const child = spawn(command, args, { stdio: 'pipe' });
const child = spawn(command, args, { stdio: 'pipe', cwd: options?.cwd });
let stdout = '';
let stderr = '';
@@ -153,19 +154,19 @@ export const utils = {
tables = tables || [
// TODO e2e test for deleting a stack, since it is quite complex
'asset_stack',
'libraries',
'shared_links',
'stack',
'library',
'shared_link',
'person',
'albums',
'assets',
'asset_faces',
'album',
'asset',
'asset_face',
'activity',
'api_keys',
'sessions',
'users',
'api_key',
'session',
'user',
'system_metadata',
'tags',
'tag',
];
const sql: string[] = [];
@@ -174,7 +175,7 @@ export const utils = {
if (table === 'system_metadata') {
sql.push(`DELETE FROM "system_metadata" where "key" NOT IN ('reverse-geocoding-state', 'system-flags');`);
} else {
sql.push(`DELETE FROM ${table} CASCADE;`);
sql.push(`DELETE FROM "${table}" CASCADE;`);
}
}
@@ -450,7 +451,7 @@ export const utils = {
return;
}
await client.query('INSERT INTO asset_faces ("assetId", "personId") VALUES ($1, $2)', [assetId, personId]);
await client.query('INSERT INTO asset_face ("assetId", "personId") VALUES ($1, $2)', [assetId, personId]);
},
setPersonThumbnail: async (personId: string) => {
+110 -8
View File
@@ -4,6 +4,7 @@
"account_settings": "Rekeninginstellings",
"acknowledge": "Erken",
"action": "Aksie",
"action_common_update": "Opdateur",
"actions": "Aksies",
"active": "Aktief",
"activity": "Aktiwiteite",
@@ -13,6 +14,7 @@
"add_a_location": "Voeg 'n ligging by",
"add_a_name": "Voeg 'n naam by",
"add_a_title": "Voeg 'n titel by",
"add_endpoint": "Voeg Koppelvlakpunt by",
"add_exclusion_pattern": "Voeg uitsgluitingspatrone by",
"add_import_path": "Voeg invoerpad by",
"add_location": "Voeg ligging by",
@@ -20,26 +22,30 @@
"add_partner": "Voeg vennoot by",
"add_path": "Voeg pad by",
"add_photos": "Voeg foto's by",
"add_tag": "Voeg tag by",
"add_to": "Voeg byтАж",
"add_to_album": "Voeg na album",
"add_to_shared_album": "Voeg na gedeelde album",
"add_to_album_bottom_sheet_added": "By {album} bygevoeg",
"add_to_album_bottom_sheet_already_exists": "Reeds in {album}",
"add_to_shared_album": "Voeg toe aan gedeelde album",
"add_url": "Voeg URL by",
"added_to_archive": "By argief gevoeg",
"added_to_favorites": "By gunstelinge gevoeg",
"added_to_favorites_count": "Het {count, number} by gunstelinge gevoeg",
"added_to_archive": "By argief toegevoegd",
"added_to_favorites": "By gunstelinge toegevoegd",
"added_to_favorites_count": "Het {count, number} by gunstelinge toegevoegd",
"admin": {
"add_exclusion_pattern_description": "Voeg uitsluitingspatrone by. Globbing met *, ** en ? word ondersteun. Om alle l├кers in enige l├кergids genaamd \"Raw\" te ignoreer, gebruik \"**/Raw/**\". Om alle l├кers wat op \".tif\" eindig, te ignoreer, gebruik \"**/*.tif\". Om 'n absolute pad te ignoreer, gebruik \"/path/to/ignore/**\".",
"admin_user": "Admin gebruiker",
"asset_offline_description": "Hierdie eksterne biblioteekbate word nie meer op skyf gevind nie en is na die asblik geskuif. As die l├кer binne die biblioteek geskuif is, gaan jou tydlyn na vir die nuwe ooreenstemmende bate. Om hierdie bate te herstel, maak asseblief seker dat die l├кerpad hieronder deur Immich verkry kan word en skandeer die biblioteek.",
"authentication_settings": "Verifikasie instellings",
"authentication_settings_description": "Bestuur wagwoord, OAuth en ander verifikasie instellings",
"authentication_settings_disable_all": "Is jy seker jy wil alle aanmeldmetodes deaktiveer? Aanmelding sal heeltemal gedeaktiveer word.",
"authentication_settings_reenable": "Om te heraktiveer, gebruik 'n <link>Server Command</link>.",
"background_task_job": "Agtergrondtake",
"backup_database": "Rugsteun databasis",
"backup_database": "Skep Datastortl├кer",
"backup_database_enable_description": "Aktiveer databasisrugsteun",
"backup_keep_last_amount": "Aantal vorige rugsteune om te hou",
"backup_settings": "Rugsteun instellings",
"backup_settings_description": "Bestuur databasis rugsteun instellings",
"backup_settings_description": "Bestuur databasis rugsteun instellings.",
"cleared_jobs": "Poste gevee vir: {job}",
"config_set_by_file": "Config word tans deur 'n konfigurasiel├кer gestel",
"confirm_delete_library": "Is jy seker jy wil {library}-biblioteek uitvee?",
@@ -47,6 +53,7 @@
"confirm_email_below": "Om te bevestig, tik \"{email}\" hieronder",
"confirm_reprocess_all_faces": "Is jy seker jy wil alle gesigte herverwerk? Dit sal ook genoemde mense skoonmaak.",
"confirm_user_password_reset": "Is jy seker jy wil {user} se wagwoord terugstel?",
"confirm_user_pin_code_reset": "Is jy seker jy wil {user} se PIN kode herstel?",
"create_job": "Skep werk",
"cron_expression": "Cron uitdrukking",
"cron_expression_description": "Stel die skanderingsinterval in met die cron-formaat. Vir meer inligting verwys asseblief na bv. <link>Crontab Guru</link>",
@@ -56,10 +63,14 @@
"exclusion_pattern_description": "Met uitsluitingspatrone kan jy l├кers en vouers ignoreer wanneer jy jou biblioteek skandeer. Dit is nuttig as jy vouers het wat l├кers bevat wat jy nie wil invoer nie, soos RAW-l├кers.",
"external_library_management": "Eksterne Biblioteekbestuur",
"face_detection": "Gesig deteksie",
"face_detection_description": "Detecteer die gesigte in media deur middel van masjienleer. Vir videos word slegs die duimnaelskets oorweeg. тАЬHerlaaiтАЭ (ver)werk al die media weer. тАЬStel terugтАЭ verwyder boonop alle huidige gesigdata. тАЬOnverwerkтАЭ plaas bates in die tou wat nog nie verwerk is nie. Gedekte gesigte sal n├б voltooiing van Gesigdetectie vir Gesigherkenning in die tou geplaas word, om hulle in bestaande of nuwe persone te groepeer.",
"facial_recognition_job_description": "Groepeer gesigte in mense in. Die stap is vinniger nadat Gesig Deteksie klaar is. \"Herstel\" (her-)groepeer alle gesigte. \"Vermiste\" plaas gesigte in ry wat nie 'n persoon gekoppel het nie.",
"failed_job_command": "Opdrag {command} het misluk vir werk: {job}",
"force_delete_user_warning": "WAARSKUWING: Dit sal onmiddellik die gebruiker en alle bates verwyder. Dit kan nie ontdoen word nie en die l├кers kan nie herstel word nie.",
"image_format": "Formaat",
"image_format_description": "WebP produseer kleiner l├кers as JPEG, maar is stadiger om te enkodeer.",
"image_fullsize_description": "Vol grote prent met geen metadata, gebruik wanner ingezoem",
"image_fullsize_enabled": "Skakel aan vol grote prent generasie",
"image_prefer_embedded_preview": "Verkies ingebedde voorskou",
"image_prefer_wide_gamut": "Verkies wide gamut",
"image_prefer_wide_gamut_setting_description": "Gebruik Display P3 vir kleinkiekies. Dit behou die lewendheid van beelde met wye kleurruimtes beter, maar beelde kan anders verskyn op ou apparate met 'n ou blaaierweergawe. sRGB-beelde gebruik steeds sRGB om kleurverskuiwings te voorkom.",
@@ -77,8 +88,99 @@
"job_concurrency": "{job} gelyktydigheid",
"job_created": "Taak gemaak",
"job_not_concurrency_safe": "Hierdie taak kan nie gelyktydig uitgevoer word nie.",
"job_settings": "Agtergrondtaakinstellings"
"job_settings": "Agtergrondtaakinstellings",
"job_settings_description": "Bestuur werkgelyktydigheid",
"job_status": "Werkstatus",
"library_created": "Biblioteek geskep: {library}",
"library_deleted": "Biblioteek verwyder",
"library_import_path_description": "Spesifiseer 'n leer om in te neem. Hierdie leer, en al die sub leers, gaan geskandeer for vir prente en videos.",
"library_scanning": "Periodieke Skandering",
"library_scanning_description": "Stel periodieke skandering van biblioteek in",
"library_scanning_enable_description": "Aktiveer periodieke biblioteekskandering",
"library_settings": "Eksterne Biblioteek",
"map_settings": "Kaart",
"migration_job": "Migrasie",
"oauth_settings": "OAuth",
"transcoding_acceleration_vaapi": "VAAPI"
},
"administration": "Administrasie",
"advanced": "Gevorderde",
"albums": "Albums",
"all": "Alle",
"anti_clockwise": "Anti-kloksgewys",
"archive": "Argief",
"asset_skipped": "Oorgeslaan",
"asset_uploaded": "Opgelaai",
"asset_uploading": "OplaaiтАж",
"assets": "Bates",
"back": "Terug",
"backward": "Agteruit",
"build": "Bou",
"camera": "Kamera",
"cancel": "Kanselleer",
"city": "Stad",
"clockwise": "Kloksgewys",
"close": "Maak toe",
"color": "Kleur",
"confirm": "Bevestig",
"contain": "Bevat",
"context": "Konteks",
"continue": "Gaan voort",
"country": "Land",
"cover": "Bedek",
"create": "Skep",
"created": "Geskep",
"dark": "Donker",
"day": "Dag",
"delete": "Verwyder",
"description": "Beskrywing",
"details": "Besonderhede",
"direction": "Rigting",
"discover": "Ontdek",
"documentation": "Dokumentasie",
"done": "Klaar",
"download": "Aflaai",
"download_settings": "Aflaai",
"duplicates": "Duplikate",
"duration": "Duur",
"edit": "Wysig",
"edited": "Gewysigd",
"search_by_description": "Soek by beskrywing",
"search_by_description_example": "Stapdag in Sapa"
"search_by_description_example": "Stapdag in Sapa",
"version": "Weergawe",
"version_announcement_closing": "Jou friend, Alex",
"version_history": "Weergawegeskiedenis",
"version_history_item": "{version} geinstaleerd op {date}",
"video": "Video",
"videos": "Video's",
"view": "Bekyk",
"view_album": "Bekyk Album",
"view_all": "Bekyk alle",
"view_all_users": "Bekyk alle gebruikers",
"view_in_timeline": "Bekyk in tydlyn",
"view_link": "Bekyk skakel",
"view_links": "Bekyk skakels",
"view_name": "Bekyk",
"view_next_asset": "Bekyk volgende bate",
"view_previous_asset": "Bekyk vorige bate",
"view_qr_code": "Bekyk QR-kode",
"view_stack": "Bekyk stapel",
"view_user": "Bekyk gebruiker",
"viewer_remove_from_stack": "Verwyder van stapel",
"viewer_stack_use_as_main_asset": "Gebruik as hoofbate",
"viewer_unstack": "Ontstapel",
"visibility_changed": "Sigbaarheid verander voor {count, plural, one {# person} other {# people}}",
"waiting": "Wag",
"warning": "Waaskuwing",
"week": "Week",
"welcome": "Welkom",
"welcome_to_immich": "Welkom by Immich",
"wifi_name": "Wi-Fi Naam",
"wrong_pin_code": "Verkeerde PIN-kode",
"year": "Jaar",
"years_ago": "{years, plural, one {# year} other {# years}} gelede",
"yes": "Ja",
"you_dont_have_any_shared_links": "Jy het geen gedeelde skakels",
"your_wifi_name": "Jou Wi-Fi naam",
"zoom_image": "Vergroot Prent"
}
+384 -80
View File
File diff suppressed because it is too large Load Diff
+268 -8
View File
@@ -22,6 +22,7 @@
"add_partner": "╨Ф╨░╨┤╨░╤Ж╤М ╨┐╨░╤А╤В╨╜╤С╤А╨░",
"add_path": "╨Ф╨░╨┤╨░╤Ж╤М ╤И╨╗╤П╤Е",
"add_photos": "╨Ф╨░╨┤╨░╤Ж╤М ╤Д╨╛╤В╨░",
"add_tag": "╨Ф╨░╨┤╨░╤Ж╤М ╤В╤Н╨│",
"add_to": "╨Ф╨░╨┤╨░╤Ж╤М ╤ГтАж",
"add_to_album": "╨Ф╨░╨┤╨░╤Ж╤М ╤Г ╨░╨╗╤М╨▒╨╛╨╝",
"add_to_album_bottom_sheet_added": "╨Ф╨░╨┤╨░╨┤╨╖╨╡╨╜╨░ ╨┤╨░ {album}",
@@ -33,28 +34,30 @@
"added_to_favorites_count": "╨Ф╨░╨┤╨░╨┤╨╖╨╡╨╜╨░ {count, number} ╨┤╨░ ╨░╨▒╤А╨░╨╜╨░╨│╨░",
"admin": {
"add_exclusion_pattern_description": "╨Ф╨░╨┤╨░╨╣╤Ж╨╡ ╤И╨░╨▒╨╗╨╛╨╜╤Л ╨▓╤Л╨║╨╗╤О╤З╤Н╨╜╨╜╤П╤Ю. ╨Я╨░╨┤╤В╤А╤Л╨╝╨╗╤Ц╨▓╨░╨╡╤Ж╤Ж╨░ ╨▓╤Л╨║╨░╤А╤Л╤Б╤В╨░╨╜╨╜╨╡ ╤Б╤Ц╨╝╨▓╨░╨╗╨░╤Ю * , ** ╤Ц ?. ╨Ъ╨░╨▒ ╤Ц╨│╨╜╨░╤А╨░╨▓╨░╤Ж╤М ╤Г╤Б╨╡ ╤Д╨░╨╣╨╗╤Л ╤Ю ╨╗╤О╨▒╨╛╨╣ ╨┤╤Л╤А╤Н╨║╤В╨╛╤А╤Л╤Ц ╨╖ ╨╜╨░╨╖╨▓╨░╨╣ \"Raw\", ╨▓╤Л╨║╨░╤А╤Л╤Б╤В╨╛╤Ю╨▓╨░╨╣╤Ж╨╡ \"**/Raw/**\". ╨Ъ╨░╨▒ ╤Ц╨│╨╜╨░╤А╨░╨▓╨░╤Ж╤М ╤Г╤Б╨╡ ╤Д╨░╨╣╨╗╤Л, ╤П╨║╤Ц╤П ╨╖╨░╨║╨░╨╜╤З╨▓╨░╤О╤Ж╤Ж╨░ ╨╜╨░ \".tif\", ╨▓╤Л╨║╨░╤А╤Л╤Б╤В╨╛╤Ю╨▓╨░╨╣╤Ж╨╡ \"**/.tif\". ╨Ъ╨░╨▒ ╤Ц╨│╨╜╨░╤А╨░╨▓╨░╤Ж╤М ╨░╨▒╤Б╨╛╨╗╤О╤В╨╜╤Л ╤И╨╗╤П╤Е, ╨▓╤Л╨║╨░╤А╤Л╤Б╤В╨╛╤Ю╨▓╨░╨╣╤Ж╨╡ \"/path/to/ignore/**\".",
"admin_user": "╨Р╨┤╨╝╤Ц╨╜╤Ц╤Б╤В╤А╨░╤В╨░╤А",
"asset_offline_description": "╨У╤Н╤В╤Л ╨╖╨╜╨╡╤И╨╜╤Ц ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╤З╨╜╤Л ╨░╨║╤В╤Л╤Ю ╨▒╨╛╨╗╤М╤И ╨╜╨╡ ╨╖╨╜╨╛╨╣╨┤╨╖╨╡╨╜╤Л ╨╜╨░ ╨┤╤Л╤Б╨║╤Г ╤Ц ╨▒╤Л╤Ю ╨┐╨╡╤А╨░╨╝╨╡╤И╤З╨░╨╜╤Л ╤Ю ╤Б╨╝╨╡╤В╨╜╤Ц╤Ж╤Г. ╨Ъ╨░╨╗╤Ц ╤Д╨░╨╣╨╗ ╨▒╤Л╤Ю ╨┐╨╡╤А╨░╨╝╨╡╤И╤З╨░╨╜╤Л ╤Ю ╨╝╨╡╨╢╨░╤Е ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╤Ц, ╨┐╤А╨░╨▓╨╡╤А╤Ж╨╡ ╨▓╨░╤И╤Г ╤Е╤А╨╛╨╜╤Ц╨║╤Г ╨┤╨╗╤П ╨╜╨╛╨▓╨░╨│╨░ ╨░╨┤╨┐╨░╨▓╨╡╨┤╨╜╨░╨│╨░ ╨░╨║╤В╤Л╨▓╨░. ╨Ъ╨░╨▒ ╨░╨┤╨╜╨░╨▓╤Ц╤Ж╤М ╨│╤Н╤В╤Л ╨░╨║╤В╤Л╤Ю, ╨┐╨╡╤А╨░╨║╨░╨╜╨░╨╣╤Ж╨╡╤Б╤П, ╤И╤В╨╛ ╤И╨╗╤П╤Е ╨┤╨░ ╤Д╨░╨╣╨╗╨░ ╨╜╤Ц╨╢╤Н╨╣ ╨┤╨░╤Б╤В╤Г╨┐╨╜╤Л ╨┤╨╗╤П Immich ╤Ц ╨░╨┤╤Б╨║╨░╨╜╤Г╨╣╤Ж╨╡ ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╤Г.",
"authentication_settings": "╨Э╨░╨╗╨░╨┤╤Л ╨┐╤А╨░╨▓╨╡╤А╨║╤Ц ╤Б╨░╨┐╤А╨░╤Ю╨┤╨╜╨░╤Б╤Ж╤Ц",
"authentication_settings_description": "╨Ъ╤Ц╤А╨░╨▓╨░╨╜╨╜╨╡ ╨┐╨░╤А╨╛╨╗╤П╨╝╤Ц, OAuth, ╤Ц ╤Ц╨╜╤И╤Л╤П ╨╜╨░╨╗╨░╨┤╤Л ╨┐╤А╨░╨▓╨╡╤А╨║╤Ц ╤Б╨░╨┐╤А╨░╤Ю╨┤╨╜╨░╤Б╤Ж╤Ц",
"authentication_settings_disable_all": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л, ╤И╤В╨╛ ╨╢╨░╨┤╨░╨╡╤Ж╨╡ ╨░╨┤╨║╨╗╤О╤З╤Л╤Ж╤М ╤Г╤Б╨╡ ╤Б╨┐╨╛╤Б╨░╨▒╤Л ╨╗╨╛╨│╤Ц╨╜╤Г? ╨Ы╨╛╨│╤Ц╨╜ ╨▒╤Г╨┤╨╖╨╡ ╤Ж╨░╨╗╨║╨░╨╝ ╨░╨┤╨║╨╗╤О╤З╨░╨╜╤Л.",
"authentication_settings_reenable": "╨Ъ╨░╨▒ ╨╖╨╜╨╛╤Ю ╤Г╨║╨╗╤О╤З╤Л╤Ж╤М, ╨▓╤Л╨║╨░╤А╤Л╤Б╤В╨░╨╣╤Ж╨╡ <link>╨Ъ╨░╨╝╨░╨╜╨┤╤Г ╤Б╨╡╤А╨▓╨╡╤А╨░</link>.",
"background_task_job": "╨д╨╛╨╜╨░╨▓╤Л╤П ╨╖╨░╨┤╨░╨╜╨╜╤Ц",
"backup_database": "╨а╤Н╨╖╨╡╤А╨▓╨╛╨▓╨░╤П ╨║╨╛╨┐╤Ц╤П ╨▒╨░╨╖╤Л ╨┤╨░╨╜╤Л╤Е",
"backup_database": "╨б╤В╨▓╨░╤А╤Л╤Ж╤М ╤А╤Н╨╖╨╡╤А╨▓╨╛╨▓╤Г╤О ╨║╨╛╨┐╤Ц╤О ╨▒╨░╨╖╤Л ╨┤╨░╨╜╤Л╤Е",
"backup_database_enable_description": "╨г╨║╨╗╤О╤З╤Л╤Ж╤М ╤А╤Н╨╖╨╡╤А╨▓╨░╨▓╨░╨╜╨╜╨╡ ╨▒╨░╨╖╤Л ╨┤╨░╨╜╤Л╤Е",
"backup_keep_last_amount": "╨Ъ╨╛╨╗╤М╨║╨░╤Б╤Ж╤М ╨┐╨░╨┐╤П╤А╤Н╨┤╨╜╤Ц╤Е ╤А╤Н╨╖╨╡╤А╨▓╨╛╨▓╤Л╤Е ╨║╨╛╨┐╤Ц╨╣ ╨┤╨╗╤П ╨╖╨░╤Е╨░╨▓╨░╨╜╨╜╤П",
"backup_settings": "╨Э╨░╨╗╨░╨┤╤Л ╤А╤Н╨╖╨╡╤А╨▓╨╛╨▓╨░╨│╨░ ╨║╨░╨┐╤Ц╤П╨▓╨░╨╜╨╜╤П",
"backup_settings_description": "╨Ъ╤Ц╤А╨░╨▓╨░╨╜╨╜╨╡ ╨╜╨░╨╗╨░╨┤╨░╨╝╤Ц ╨┤╨░╨╝╨┐╨░ ╨▒╨░╨╖╤Л ╨┤╨░╨┤╨╖╨╡╨╜╤Л╤Е. ╨Ч╨░╤Ю╨▓╨░╨│╨░: ╨│╤Н╤В╤Л╤П ╨╖╨░╨┤╨░╤З╤Л ╨╜╨╡ ╨║╨░╨╜╤В╤А╨░╨╗╤О╤О╤Ж╤Ж╨░, ╤Ц ╤Ю ╨▓╤Л╨┐╨░╨┤╨║╤Г ╨╜╤П╤Ю╨┤╨░╤З╤Л ╨┐╨░╨▓╨╡╨┤╨░╨╝╨╗╨╡╨╜╨╜╨╡ ╨░╨┤╨┐╤А╨░╤Ю╨╗╨╡╨╜╨░ ╨╜╨╡ ╨▒╤Г╨┤╨╖╨╡.",
"backup_settings_description": "╨Ъ╤Ц╤А╨░╨▓╨░╨╜╨╜╨╡ ╨╜╨░╨╗╨░╨┤╨░╨╝╤Ц ╤А╤Н╨╖╨╡╤А╨▓╨░╨▓╨░╨╜╨╜╤П ╨▒╨░╨╖╤Л ╨┤╨░╨╜╤Л╤Е.",
"cleared_jobs": "╨Р╤З╤Л╤И╤З╨░╨╜╤Л ╨╖╨░╨┤╨░╨╜╨╜╤Ц ╨┤╨╗╤П: {job}",
"config_set_by_file": "╨Ъ╨░╨╜╤Д╤Ц╨│╤Г╤А╨░╤Ж╤Л╤П ╤Ю ╨╖╨░╤А╨░╨╖ ╤Г╤Б╤В╨░╨╗╤П╨▓╨░╨╜╨░ ╨┐╤А╨░╨╖ ╤Д╨░╨╣╨╗ ╨║╨░╨╜╤Д╤Ц╨│╤Г╤А╨░╤Ж╤Л╤Ц",
"confirm_delete_library": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л ╤И╤В╨╛ ╨╢╨░╨┤╨░╨╡╤Ж╨╡ ╨▓╤Л╨┤╨░╨╗╤Ц╤Ж╤М {library} ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╤Г?",
"config_set_by_file": "╨Ъ╨░╨╜╤Д╤Ц╨│╤Г╤А╨░╤Ж╤Л╤П ╨╖╨░╤А╨░╨╖ ╤Г╤Б╤В╨░╨╗╤П╨▓╨░╨╜╨░ ╨┐╤А╨░╨╖ ╤Д╨░╨╣╨╗ ╨║╨░╨╜╤Д╤Ц╨│╤Г╤А╨░╤Ж╤Л╤Ц",
"confirm_delete_library": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л ╤И╤В╨╛ ╨╢╨░╨┤╨░╨╡╤Ж╨╡ ╨▓╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╤Г {library}?",
"confirm_delete_library_assets": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л, ╤И╤В╨╛ ╤Е╨╛╤З╨░╤Ж╨╡ ╨▓╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨│╤Н╤В╤Г╤О ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╤Г? ╨У╤Н╤В╨░ ╨┐╤А╤Л╨▓╤П╨┤╨╖╨╡ ╨┤╨░ ╨▓╤Л╨┤╨░╨╗╨╡╨╜╨╜╤П {count, plural, one {# ╨░╨║╤В╤Л╨▓╤Г} other {╤Г╤Б╤Ц╤Е # ╨░╨║╤В╤Л╨▓╨░╤Ю}}, ╤П╨║╤Ц╤П ╨╖╨╝╤П╤И╤З╨░╤О╤Ж╤Ж╨░ ╤Ю Immich, ╤Ц ╨│╤Н╤В╨░ ╨┤╨╖╨╡╤П╨╜╨╜╨╡ ╨╜╨╡╨╝╨░╨│╤З╤Л╨╝╨░ ╨▒╤Г╨┤╨╖╨╡ ╨░╨┤╨╝╤П╨╜╤Ц╤Ж╤М. ╨д╨░╨╣╨╗╤Л ╨╖╨░╤Б╤В╨░╨╜╤Г╤Ж╤Ж╨░ ╨╜╨░ ╨┤╤Л╤Б╨║╤Г.",
"confirm_email_below": "╨Ъ╨░╨▒ ╨┐╨░╤Ж╨▓╨╡╤А╨┤╨╖╤Ц╤Ж╤М, ╤Г╨▓╤П╨┤╨╖╤Ц╤Ж╨╡ \"{email}\" ╨╜╤Ц╨╢╤Н╨╣",
"confirm_reprocess_all_faces": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л, ╤И╤В╨╛ ╤Е╨╛╤З╨░╤Ж╨╡ ╨┐╨╡╤А╨░╨░╨┐╤А╨░╤Ж╨░╨▓╨░╤Ж╤М ╤Г╤Б╨╡ ╤В╨▓╨░╤А╤Л? ╨У╤Н╤В╨░ ╤В╨░╨║╤Б╨░╨╝╨░ ╨┐╤А╤Л╨▓╤П╨┤╨╖╨╡ ╨┤╨░ ╨▓╤Л╨┤╨░╨╗╨╡╨╜╨╜╤П ╤Ц╨╝╤П ╨╗╤О╨┤╨╖╨╡╨╣.",
"confirm_user_password_reset": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л ╤Ю ╤В╤Л╨╝, ╤И╤В╨╛ ╨╢╨░╨┤╨░╨╡╤Ж╨╡ ╤Б╨║╤Ц╨╜╤Г╤Ж╤М ╨┐╨░╤А╨╛╨╗╤М {user}?",
"confirm_user_pin_code_reset": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л ╤Ю ╤В╤Л╨╝, ╤И╤В╨╛ ╨╢╨░╨┤╨░╨╡╤Ж╨╡ ╤Б╨║╤Ц╨╜╤Г╤Ж╤М PIN-╨║╨╛╨┤ {user}?",
"create_job": "╨б╤В╨▓╨░╤А╤Л╤Ж╤М ╨╖╨░╨┤╨░╨╜╨╜╨╡",
"cron_expression": "╨Т╤Л╤А╨░╨╖ Cron",
"cron_expression_description": "╨г╤Б╤В╨░╨╗╤О╨╣╤Ж╨╡ ╤Ц╨╜╤В╤Н╤А╨▓╨░╨╗ ╤Б╨║╨░╨╜╨░╨▓╨░╨╜╨╜╤П, ╨▓╤Л╨║╨░╤А╤Л╤Б╤В╨╛╤Ю╨▓╨░╤О╤З╤Л ╤Д╨░╤А╨╝╨░╤В cron. ╨Ф╨╗╤П ╨░╤В╤А╤Л╨╝╨░╨╜╨╜╤П ╨┤╨░╨┤╨░╤В╨║╨╛╨▓╨░╨╣ ╤Ц╨╜╤Д╨░╤А╨╝╨░╤Ж╤Л╤Ц, ╨║╨░╨╗╤Ц ╨╗╨░╤Б╨║╨░, ╨╖╨▓╤П╤А╨╜╤Ц╤Ж╨╡╤Б╤П, ╨╜╨░╨┐╤А╤Л╨║╨╗╨░╨┤, ╨┤╨░ <link>Crontab Guru</link>",
"cron_expression_presets": "╨Я╤А╨░╨┤╤Г╤Б╤В╨░╨╜╨╛╨▓╨║╤Ц ╨▓╤Л╤А╨░╨╖╨░╤Ю Cron",
"cron_expression_presets": "╨Я╤А╨░╨┤╤Г╤Б╤В╨░╨╜╨╛╤Ю╨║╤Ц ╨▓╤Л╤А╨░╨╖╨░╤Ю Cron",
"disable_login": "╨Р╨┤╨║╨╗╤О╤З╤Л╤Ж╤М ╤Г╨▓╨░╤Е╨╛╨┤",
"duplicate_detection_job_description": "╨Ч╨░╨┐╤Г╤Б╤Ж╤Ц╤Ж╤М ╨╝╨░╤И╤Л╨╜╨╜╨░╨╡ ╨╜╨░╨▓╤Г╤З╨░╨╜╨╜╨╡ ╨╜╨░ ╨░╨║╤В╤Л╨▓╨░╤Е ╨┤╨╗╤П ╨▓╤Л╤П╤Ю╨╗╨╡╨╜╨╜╤П ╨┐╨░╨┤╨╛╨▒╨╜╤Л╤Е ╨▓╤Л╤П╤Ю. ╨Ч╨░╨╗╨╡╨╢╤Л╤Ж╤М ╨░╨┤ Smart Search",
"exclusion_pattern_description": "╨и╨░╨▒╨╗╨╛╨╜╤Л ╨▓╤Л╨║╨╗╤О╤З╤Н╨╜╨╜╤П ╨┤╨░╨╖╨▓╨░╨╗╤П╤О╤Ж╤М ╤Ц╨│╨╜╨░╤А╨░╨▓╨░╤Ж╤М ╤Д╨░╨╣╨╗╤Л ╤Ц ╨┐╨░╨┐╨║╤Ц ╨┐╤А╤Л ╤Б╨║╨░╨╜╨░╨▓╨░╨╜╨╜╤Ц ╨▓╨░╤И╨░╨╣ ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╤Ц. ╨У╤Н╤В╨░ ╨║╨░╤А╤Л╤Б╨╜╨░, ╨║╨░╨╗╤Ц ╤Ю ╨▓╨░╤Б ╤С╤Б╤Ж╤М ╨┐╨░╨┐╨║╤Ц, ╤П╨║╤Ц╤П ╨╖╨╝╤П╤И╤З╨░╤О╤Ж╤М ╤Д╨░╨╣╨╗╤Л, ╤П╨║╤Ц╤П ╨▓╤Л ╨╜╨╡ ╤Е╨╛╤З╨░╤Ж╨╡ ╤Ц╨╝╨┐╨░╤А╤В╨░╨▓╨░╤Ж╤М, ╨╜╨░╨┐╤А╤Л╨║╨╗╨░╨┤, ╤Д╨░╨╣╨╗╤Л RAW.",
@@ -71,15 +74,272 @@
"image_fullsize_enabled_description": "╨б╤В╨▓╨░╤А╨░╤Ж╤М ╨▓╤Л╤П╨▓╤Г ╤Ю ╨┐╨╛╤Ю╨╜╤Л╨╝ ╨┐╨░╨╝╨╡╤А╤Л ╨┤╨╗╤П ╤Д╨░╤А╨╝╨░╤В╨░╤Ю, ╤И╤В╨╛ ╨╜╨╡ ╨┐╤А╤Л╨┤╨░╤В╨╜╤Л╤П ╨┤╨╗╤П ╨▓╤Н╨▒. ╨Ъ╨░╨╗╤Ц ╤Ю╨║╨╗╤О╤З╨░╨╜╨░ ╨╛╨┐╤Ж╤Л╤П \"╨Р╨┤╨┤╨░╨▓╨░╤Ж╤М ╨┐╨╡╤А╨░╨▓╨░╨│╤Г ╤Ю╨▒╤Г╨┤╨░╨▓╨░╨╜╨░╨╣ ╨┐╤А╨░╤П╨▓╨╡\", ╨┐╤А╨░╨│╨╗╤П╨┤╤Л ╨▓╤Л╨║╨░╤А╤Л╤Б╤В╨╛╤Ю╨▓╨░╤О╤Ж╤Ж╨░ ╨╜╨╡╨┐╨░╤Б╤А╤Н╨┤╨╜╨░ ╨▒╨╡╨╖ ╨║╨░╨╜╨▓╨╡╤А╤В╨░╤Ж╤Л╤Ц. ╨Э╨╡ ╤Ю╨┐╨╗╤Л╨▓╨░╨╡ ╨╜╨░ ╨▓╤Н╨▒-╨┐╤А╤Л╨┤╨░╤В╨╜╤Л╤П ╤Д╨░╤А╨╝╨░╤В╤Л, ╤В╨░╨║╤Ц╤П ╤П╨║ JPEG.",
"image_fullsize_quality_description": "╨п╨║╨░╤Б╤Ж╤М ╨▓╤Л╤П╨▓╤Л ╤Ю ╨┐╨╛╤Ю╨╜╤Л╨╝ ╨┐╨░╨╝╨╡╤А╤Л ╨░╨┤ 1 ╨┤╨░ 100. ╨С╨╛╨╗╤М╤И ╨▓╤Л╤Б╨╛╨║╨░╨╡ ╨╖╨╜╨░╤З╤Н╨╜╨╜╨╡ ╨╗╨╡╨┐╤И╨░╨╡, ╨░╨╗╨╡ ╨┐╤А╤Л╨▓╨╛╨┤╨╖╤Ц╤Ж╤М ╨┤╨░ ╨┐╨░╨▓╨╡╨╗╤Ц╤З╤Н╨╜╨╜╤П ╨┐╨░╨╝╨╡╤А╤Г ╤Д╨░╨╣╨╗╨░.",
"image_fullsize_title": "╨Э╨░╨╗╨░╨┤╤Л ╨▓╤Л╤П╨▓╤Л ╤Ю ╨┐╨╛╤Ю╨╜╤Л╨╝ ╨┐╨░╨╝╨╡╤А╤Л",
"image_prefer_embedded_preview_setting_description": "╨Т╤Л╨║╨░╤А╤Л╤Б╤В╨╛╤Ю╨▓╨░╤Ж╤М ╤Г╨▒╤Г╨┤╨░╨▓╨░╨╜╤Л╤П ╨┐╤А╨░╤П╨▓╤Л ╤Ю RAW-╤Д╨╛╤В╨░╨╖╨┤╤Л╨╝╨║╨░╤Е ╤Ю ╤П╨║╨░╤Б╤Ж╤Ц ╤Ю╨▓╨░╤Е╨╛╨┤╨╜╤Л╤Е ╨┤╨░╨┤╨╖╨╡╨╜╤Л╤Е ╨┤╨╗╤П ╨░╨┐╤А╨░╤Ж╨╛╤Ю╨║╤Ц ╨╝╨░╨╗╤О╨╜╨║╨░╤Ю, ╨║╨░╨╗╤Ц ╨╝╨░╨│╤З╤Л╨╝╨░. ╨У╤Н╤В╨░ ╨┤╨░╨╖╨▓╨░╨╗╤П╨╡ ╨░╤В╤А╤Л╨╝╨░╤Ж╤М ╨▒╨╛╨╗╤М╤И ╨┤╨░╨║╨╗╨░╨┤╨╜╤Л╤П ╨║╨╛╨╗╨╡╤А╤Л ╨┤╨╗╤П ╨╜╨╡╨║╨░╤В╨╛╤А╤Л╤Е ╨▓╤Ц╨┤╨░╤А╤Л╤Б╨░╤Ю, ╨░╨╗╨╡ ╨╢ ╤П╨║╨░╤Б╤Ж╤М ╨┐╤А╨░╤П╤Ю ╨╖╨░╨╗╨╡╨╢╤Л╤Ж╤М ╨░╨┤ ╨║╨░╨╝╨╡╤А╤Л, ╤Ц ╨╜╨░ ╨▓╤Ц╨┤╨░╤А╤Л╤Б╨╡ ╨╝╨╛╨╢╨░ ╨▒╤Л╤Ж╤М ╨▒╨╛╨╗╤М╤И ╨░╤А╤В╤Н╤Д╨░╨║╤В╨░╤Ю ╤Б╤Ж╤Ц╤Б╨║╤Г.",
"image_prefer_wide_gamut": "╨Р╨┤╨┤╨░╤Ж╤М ╨┐╨╡╤А╨░╨▓╨░╨│╤Г ╤И╤Л╤А╨╛╨║╨░╨╣ ╨│╨░╨╝╨╡",
"image_preview_title": "╨Э╨░╨╗╨░╨┤╤Л ╨┐╨░╨┐╤П╤А╤Н╨┤╨╜╤П╨│╨░ ╨┐╤А╨░╨│╨╗╤П╨┤╤Г",
"image_quality": "╨п╨║╨░╤Б╤Ж╤М",
"image_resolution": "╨а╨░╨╖╨┤╨╖╤П╨╗╤П╨╗╤М╨╜╨░╤Б╤Ж╤М",
"image_settings": "╨Э╨░╨╗╨░╨┤╤Л ╨▓╤Ц╨┤╨░╤А╤Л╤Б╨░",
"image_settings_description": "╨Ъ╤Ц╤А╤Г╨╣╤Ж╨╡ ╤П╨║╨░╤Б╤Ж╤О ╤Ц ╤А╨░╨╖╨┤╨╖╤П╨╗╤П╨╗╤М╨╜╨░╤Б╤Ж╤О ╤Б╨│╨╡╨╜╨╡╤А╤Л╤А╨░╨▓╨░╨╜╤Л╤Е ╨▓╤Ц╨┤╨░╤А╤Л╤Б╨░╤Ю"
"image_settings_description": "╨Ъ╤Ц╤А╤Г╨╣╤Ж╨╡ ╤П╨║╨░╤Б╤Ж╤О ╤Ц ╤А╨░╨╖╨┤╨╖╤П╨╗╤П╨╗╤М╨╜╨░╤Б╤Ж╤О ╤Б╨│╨╡╨╜╨╡╤А╤Л╤А╨░╨▓╨░╨╜╤Л╤Е ╨▓╤Ц╨┤╨░╤А╤Л╤Б╨░╤Ю",
"library_created": "╨б╤В╨▓╨╛╤А╨░╨╜╨░ ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╨░: {library}",
"library_deleted": "╨С╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╨░ ╨▓╤Л╨┤╨░╨╗╨╡╨╜╨░",
"map_dark_style": "╨ж╤С╨╝╨╜╤Л ╤Б╤В╤Л╨╗╤М",
"map_enable_description": "╨г╨║╨╗╤О╤З╤Л╤Ж╤М ╤Д╤Г╨╜╨║╤Ж╤Л╤Ц ╨║╨░╤А╤В╤Л",
"map_gps_settings": "╨Э╨░╨╗╨░╨┤╤Л ╨║╨░╤А╤В╤Л ╤Ц GPS",
"map_light_style": "╨б╨▓╨╡╤В╨╗╤Л ╤Б╤В╤Л╨╗╤М",
"map_settings": "╨Ъ╨░╤А╤В╨░",
"map_settings_description": "╨Ъ╤Ц╤А╨░╨▓╨░╨╜╨╜╨╡ ╨╜╨░╨╗╨░╨┤╨░╨╝╤Ц ╨║╨░╤А╤В╤Л",
"map_style_description": "URL-╨░╨┤╤А╨░╤Б style.json ╤В╤Н╨╝╤Л ╨║╨░╤А╤В╤Л",
"metadata_settings": "╨Э╨░╨╗╨░╨┤╤Л ╨╝╨╡╤В╨░╨┤╨░╨╜╤Л╤Е",
"oauth_button_text": "╨в╤Н╨║╤Б╤В ╨║╨╜╨╛╨┐╨║╤Ц",
"oauth_settings": "OAuth",
"system_settings": "╨б╤Ц╤Б╤В╤Н╨╝╨╜╤Л╤П ╨╜╨░╨╗╨░╨┤╤Л",
"theme_settings": "╨Э╨░╨╗╨░╨┤╤Л ╤В╤Н╨╝╤Л",
"transcoding_acceleration_vaapi": "VAAPI",
"transcoding_audio_codec": "╨Р╤Г╨┤╤Л╤П╨║╨╛╨┤╤Н╨║",
"transcoding_video_codec": "╨Т╤Ц╨┤╤Н╨░╨║╨╛╨┤╤Н╨║",
"trash_settings": "╨Э╨░╨╗╨░╨┤╤Л ╤Б╨╝╨╡╤В╨╜╤Ц╤Ж╤Л",
"trash_settings_description": "╨Ъ╤Ц╤А╨░╨▓╨░╨╜╨╜╨╡ ╨╜╨░╨╗╨░╨┤╨░╨╝╤Ц ╤Б╨╝╨╡╤В╨╜╤Ц╤Ж╤Л",
"version_check_settings": "╨Я╤А╨░╨▓╨╡╤А╨║╨░ ╨▓╨╡╤А╤Б╤Ц╤Ц",
"version_check_settings_description": "╨г╨║╨╗╤О╤З╤Л╤Ж╤М/╨░╨┤╨║╨╗╤О╤З╤Л╤Ж╤М ╨░╨┐╨░╨▓╤П╤И╤З╤Н╨╜╨╜╤Ц ╨░╨▒ ╨╜╨╛╨▓╨░╨╣ ╨▓╨╡╤А╤Б╤Ц╤Ц"
},
"advanced_settings_troubleshooting_title": "╨Т╤Л╨┐╤А╨░╤Ю╨╗╨╡╨╜╨╜╨╡ ╨╜╨╡╨┐╨░╨╗╨░╨┤╨░╨║",
"album_added": "╨Р╨╗╤М╨▒╨╛╨╝ ╨┤╨░╨┤╨░╨┤╨╖╨╡╨╜╤Л",
"album_name": "╨Э╨░╨╖╨▓╨░ ╨░╨╗╤М╨▒╨╛╨╝╨░",
"album_remove_user": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░?",
"album_updated": "╨Р╨╗╤М╨▒╨╛╨╝ ╨░╨▒╨╜╨╛╤Ю╨╗╨╡╨╜╤Л",
"albums": "╨Р╨╗╤М╨▒╨╛╨╝╤Л",
"all": "╨г╤Б╨╡",
"all_albums": "╨г╤Б╨╡ ╨░╨╗╤М╨▒╨╛╨╝╤Л",
"all_people": "╨г╤Б╨╡ ╨╗╤О╨┤╨╖╤Ц",
"all_videos": "╨г╤Б╨╡ ╨▓╤Ц╨┤╤Н╨░",
"app_bar_signout_dialog_ok": "╨в╨░╨║",
"app_bar_signout_dialog_title": "╨Т╤Л╨╣╤Б╤Ж╤Ц",
"app_settings": "╨Э╨░╨╗╨░╨┤╤Л ╨┐╤А╨░╨│╤А╨░╨╝╤Л",
"archive": "╨Р╤А╤Е╤Ц╤Ю",
"archive_size": "╨Я╨░╨╝╨╡╤А ╨░╤А╤Е╤Ц╨▓╨░",
"asset_uploading": "╨Ч╨░╨┐╨░╨╝╨┐╨╛╤Ю╨▓╨░╨╜╨╜╨╡тАж",
"back": "╨Э╨░╨╖╨░╨┤",
"backup_all": "╨г╤Б╨╡",
"backup_controller_page_background_wifi": "╨в╨╛╨╗╤М╨║╤Ц ╨┐╤А╨░╨╖ Wi-Fi",
"buy": "╨Ъ╤Г╨┐╤Ц╤Ж╤М Immich",
"cache_settings_clear_cache_button": "╨Р╤З╤Л╤Б╤Ж╤Ц╤Ж╤М ╨║╤Н╤И",
"cache_settings_tile_title": "╨Ы╨░╨║╨░╨╗╤М╨╜╨░╨╡ ╤Б╤Е╨╛╨▓╤Ц╤И╤З╨░",
"cancel": "╨б╨║╨░╤Б╨░╨▓╨░╤Ж╤М",
"cancel_search": "╨б╨║╨░╤Б╨░╨▓╨░╤Ж╤М ╨┐╨╛╤И╤Г╨║",
"canceled": "╨б╨║╨░╤Б╨░╨▓╨░╨╜╨░",
"city": "╨У╨╛╤А╨░╨┤",
"clear": "╨Р╤З╤Л╤Б╤Ж╤Ц╤Ж╤М",
"clear_all": "╨Р╤З╤Л╤Б╤Ж╤Ц╤Ж╤М ╤Г╤Б╤С",
"client_cert_dialog_msg_confirm": "╨Ю╨Ъ",
"client_cert_enter_password": "╨г╨▓╤П╨┤╨╖╤Ц╤Ж╨╡ ╨┐╨░╤А╨╛╨╗╤М",
"client_cert_import": "╨Ж╨╝╨┐╨░╤А╤В",
"close": "╨Ч╨░╨║╤А╤Л╤Ж╤М",
"collapse": "╨Ч╨│╨░╤А╨╜╤Г╤Ж╤М",
"collapse_all": "╨Ч╨│╨░╤А╨╜╤Г╤Ж╤М ╤Г╤Б╤С",
"color": "╨Ъ╨╛╨╗╨╡╤А",
"color_theme": "╨Ъ╨╛╨╗╨╡╤А╨░╨▓╨░╤П ╤В╤Н╨╝╨░",
"continue": "╨Я╤А╨░╤Ж╤П╨│╨╜╤Г╤Ж╤М",
"control_bottom_app_bar_create_new_album": "╨б╤В╨▓╨░╤А╤Л╤Ж╤М ╨╜╨╛╨▓╤Л ╨░╨╗╤М╨▒╨╛╨╝",
"control_bottom_app_bar_delete_from_immich": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨╖ Immich",
"control_bottom_app_bar_delete_from_local": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨╖ ╨┐╤А╤Л╨╗╨░╨┤╤Л",
"control_bottom_app_bar_edit_location": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╨╝╨╡╤Б╤Ж╨░╨╖╨╜╨░╤Е╨╛╨┤╨╢╨░╨╜╨╜╨╡",
"country": "╨Ъ╤А╨░╤Ц╨╜╨░",
"cover": "╨Т╨╛╨║╨╗╨░╨┤╨║╨░",
"covers": "╨Т╨╛╨║╨╗╨░╨┤╨║╤Ц",
"create": "╨б╤В╨▓╨░╤А╤Л╤Ж╤М",
"create_album": "╨б╤В╨▓╨░╤А╤Л╤Ж╤М ╨░╨╗╤М╨▒╨╛╨╝",
"create_album_page_untitled": "╨С╨╡╨╖ ╨╜╨░╨╖╨▓╤Л",
"create_library": "╨б╤В╨▓╨░╤А╤Л╤Ж╤М ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╤Г",
"create_link": "╨б╤В╨▓╨░╤А╤Л╤Ж╤М ╤Б╨┐╨░╤Б╤Л╨╗╨║╤Г",
"create_new_user": "╨б╤В╨▓╨░╤А╤Л╤Ж╤М ╨╜╨╛╨▓╨░╨│╨░ ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░",
"create_tag": "╨б╤В╨▓╨░╤А╤Л╤Ж╤М ╤В╤Н╨│",
"create_user": "╨б╤В╨▓╨░╤А╤Л╤Ж╤М ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░",
"dark": "╨ж╤С╨╝╨╜╨░╤П",
"day": "╨Ф╨╖╨╡╨╜╤М",
"delete": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М",
"delete_album": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨░╨╗╤М╨▒╨╛╨╝",
"delete_dialog_ok_force": "╨г╤Б╤С ╨░╨┤╨╜╨╛ ╨▓╤Л╨┤╨░╨╗╤Ц╤Ж╤М",
"delete_dialog_title": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨╜╨░╨╖╨░╤Ю╨╢╨┤╤Л",
"delete_face": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╤В╨▓╨░╤А",
"delete_key": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨║╨╗╤О╤З",
"delete_library": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╤Г",
"delete_link": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╤Б╨┐╨░╤Б╤Л╨╗╨║╤Г",
"delete_local_dialog_ok_force": "╨г╤Б╤С ╨░╨┤╨╜╨╛ ╨▓╤Л╨┤╨░╨╗╤Ц╤Ж╤М",
"delete_others": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╤Ц╨╜╤И╤Л╤П",
"delete_tag": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╤В╤Н╨│",
"delete_user": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░",
"discord": "Discord",
"documentation": "╨Ф╨░╨║╤Г╨╝╨╡╨╜╤В╨░╤Ж╤Л╤П",
"done": "╨У╨░╤В╨╛╨▓╨░",
"download": "╨б╨┐╨░╨╝╨┐╨░╨▓╨░╤Ж╤М",
"download_canceled": "╨б╨┐╨░╨╝╨┐╨╛╤Ю╨▓╨░╨╜╨╜╨╡ ╤Б╨║╨░╤Б╨░╨▓╨░╨╜╨░",
"download_complete": "╨б╨┐╨░╨╝╨┐╨╛╤Ю╨▓╨░╨╜╨╜╨╡ ╨╖╨░╨▓╨╡╤А╤И╨░╨╜╨░",
"download_enqueue": "╨б╨┐╨░╨╝╨┐╨╛╤Ю╨▓╨░╨╜╨╜╨╡ ╨┤╨░╨┤╨░╨┤╨╖╨╡╨╜╨░ ╤Ю ╤З╨░╤А╨│╤Г",
"downloading": "╨б╨┐╨░╨╝╨┐╨╛╤Ю╨▓╨░╨╜╨╜╨╡",
"edit": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М",
"edit_album": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╨░╨╗╤М╨▒╨╛╨╝",
"edit_avatar": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╨░╨▓╨░╤В╨░╤А",
"edit_date": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╨┤╨░╤В╤Г",
"edit_date_and_time": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤М ╨┤╨░╤В╤Г ╤Ц ╤З╨░╤Б",
"edit_description": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╨░╨┐╤Ц╤Б╨░╨╜╨╜╨╡",
"edit_description_prompt": "╨Т╤Л╨▒╨╡╤А╤Л╤Ж╨╡ ╨╜╨╛╨▓╨░╨╡ ╨░╨┐╤Ц╤Б╨░╨╜╨╜╨╡:",
"edit_faces": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╤В╨▓╨░╤А╤Л",
"edit_import_path": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╤И╨╗╤П╤Е ╤Ц╨╝╨┐╨░╤А╤В╤Г",
"edit_import_paths": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╤И╨╗╤П╤Е╤Ц ╤Ц╨╝╨┐╨░╤А╤В╤Г",
"edit_key": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╨║╨╗╤О╤З",
"edit_link": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╤Б╨┐╨░╤Б╤Л╨╗╨║╤Г",
"edit_location": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╨╝╨╡╤Б╤Ж╨░╨╖╨╜╨░╤Е╨╛╨┤╨╢╨░╨╜╨╜╨╡",
"edit_location_dialog_title": "╨Ь╨╡╤Б╤Ж╨░╨╖╨╜╨░╤Е╨╛╨┤╨╢╨░╨╜╨╜╨╡",
"edit_name": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╨╜╨░╨╖╨▓╤Г",
"edit_people": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╨╗╤О╨┤╨╖╨╡╨╣",
"edit_tag": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╤В╤Н╨│",
"edit_title": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╨╖╨░╨│╨░╨╗╨╛╨▓╨░╨║",
"edit_user": "╨а╤Н╨┤╨░╨│╨░╨▓╨░╤Ж╤М ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░",
"edited": "╨Р╨┤╤А╤Н╨┤╨░╨│╨░╨▓╨░╨╜╨░",
"editor": "╨а╤Н╨┤╨░╨║╤В╨░╤А",
"editor_close_without_save_prompt": "╨Ч╨╝╨╡╨╜╤Л ╨╜╨╡ ╨▒╤Г╨┤╤Г╤Ж╤М ╨╖╨░╤Е╨░╨▓╨░╨╜╤Л",
"editor_close_without_save_title": "╨Ч╨░╨║╤А╤Л╤Ж╤М ╤А╤Н╨┤╨░╨║╤В╨░╤А?",
"editor_crop_tool_h2_aspect_ratios": "╨б╤Г╨░╨┤╨╜╨╛╤Б╤Ц╨╜╤Л ╨▒╨░╨║╨╛╤Ю",
"editor_crop_tool_h2_rotation": "╨Я╨░╨▓╨░╤А╨╛╤В",
"error": "╨Я╨░╨╝╤Л╨╗╨║╨░",
"error_saving_image": "╨Я╨░╨╝╤Л╨╗╨║╨░: {error}",
"exif": "Exif",
"exif_bottom_sheet_description": "╨Ф╨░╨┤╨░╤Ж╤М ╨░╨┐╤Ц╤Б╨░╨╜╨╜╨╡...",
"favorite": "╨г ╨░╨▒╤А╨░╨╜╤Л╨╝",
"favorite_or_unfavorite_photo": "╨Ф╨░╨┤╨░╤Ж╤М ╨░╨▒╨╛ ╨▓╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╤Д╨╛╤В╨░ ╨╖ ╨░╨▒╤А╨░╨╜╨░╨│╨░",
"favorites": "╨Р╨▒╤А╨░╨╜╤Л╤П",
"file_name": "╨Э╨░╨╖╨▓╨░ ╤Д╨░╨╣╨╗╨░",
"filename": "╨Э╨░╨╖╨▓╨░ ╤Д╨░╨╣╨╗╨░",
"filetype": "╨в╤Л╨┐ ╤Д╨░╨╣╨╗╨░",
"filter": "╨д╤Ц╨╗╤М╤В╤А",
"forward": "╨Э╨░╨┐╨╡╤А╨░╨┤",
"gcast_enabled": "Google Cast",
"general": "╨Р╨│╤Г╨╗╤М╨╜╤Л╤П",
"go_back": "╨Э╨░╨╖╨░╨┤",
"go_to_folder": "╨Я╨╡╤А╨░╨╣╤Б╤Ж╤Ц ╨┤╨░ ╨┐╨░╨┐╨║╤Ц",
"hi_user": "╨Т╤Ц╤В╨░╨╡╨╝, {name} ({email})",
"hide_all_people": "╨б╤Е╨░╨▓╨░╤Ж╤М ╤Г╤Б╤Ц╤Е ╨╗╤О╨┤╨╖╨╡╨╣",
"hide_gallery": "╨б╤Е╨░╨▓╨░╤Ж╤М ╨│╨░╨╗╨╡╤А╤Н╤О",
"hide_named_person": "╨б╤Е╨░╨▓╨░╤Ж╤М {name}",
"hide_password": "╨б╤Е╨░╨▓╨░╤Ж╤М ╨┐╨░╤А╨╛╨╗╤М",
"hide_person": "╨б╤Е╨░╨▓╨░╤Ж╤М ╤З╨░╨╗╨░╨▓╨╡╨║╨░",
"image_viewer_page_state_provider_download_started": "╨б╨┐╨░╨╝╨┐╨╛╤Ю╨▓╨░╨╜╨╜╨╡ ╨┐╨░╤З╨░╨╗╨╛╤Б╤П",
"immich_logo": "╨Ы╨░╨│╨░╤В╤Л╨┐ Immich",
"interval": {
"day_at_onepm": "╨Ъ╨╛╨╢╨╜╤Л ╨┤╨╖╨╡╨╜╤М ╨░ 13-╨╣ ╨│╨░╨┤╨╖╤Ц╨╜╨╡",
"hours": "{hours, plural, one {╨Ъ╨╛╨╢╨╜╤Г╤О ╨│╨░╨┤╨╖╤Ц╨╜╤Г} few {╨Ъ╨╛╨╢╨╜╤Л╤П {hours, number} ╨│╨░╨┤╨╖╤Ц╨╜╤Л} many {╨Ъ╨╛╨╢╨╜╤Л╤П {hours, number} ╨│╨░╨┤╨╖╤Ц╨╜} other {╨Ъ╨╛╨╢╨╜╤Л╤П {hours, number} ╨│╨░╨┤╨╖╤Ц╨╜}}",
"night_at_midnight": "╨Ъ╨╛╨╢╨╜╤Г╤О ╨╜╨╛╤З ╨░╨┐╨╛╤Ю╨╜╨░╤З╤Л",
"night_at_twoam": "╨Ъ╨╛╨╢╨╜╤Г╤О ╨╜╨╛╤З ╨░ 2-╨╣ ╨│╨░╨┤╨╖╤Ц╨╜╨╡"
},
"language": "╨Ь╨╛╨▓╨░",
"library": "╨С╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╨░",
"light": "╨б╨▓╨╡╤В╨╗╨░╤П",
"login_form_back_button_text": "╨Э╨░╨╖╨░╨┤",
"login_form_email_hint": "youremail@email.com",
"login_form_endpoint_hint": "http://your-server-ip:port",
"login_form_password_hint": "╨┐╨░╤А╨╛╨╗╤М",
"login_form_save_login": "╨Ч╨░╤Б╤В╨░╨▓╨░╤Ж╤Ж╨░ ╤Ю ╤Б╤Ц╤Б╤В╤Н╨╝╨╡",
"main_menu": "╨У╨░╨╗╨╛╤Ю╨╜╨░╨╡ ╨╝╨╡╨╜╤О",
"map_location_dialog_yes": "╨в╨░╨║",
"map_settings_dark_mode": "╨ж╤С╨╝╨╜╤Л ╤А╤Н╨╢╤Л╨╝",
"map_settings_date_range_option_day": "╨Р╨┐╨╛╤И╨╜╤Ц╤П 24 ╨│╨░╨┤╨╖╤Ц╨╜╤Л",
"map_settings_date_range_option_days": "╨Р╨┐╨╛╤И╨╜╤Ц╤Е ╨┤╨╖╤С╨╜: {days}",
"map_settings_date_range_option_year": "╨Р╨┐╨╛╤И╨╜╤Ц ╨│╨╛╨┤",
"map_settings_date_range_option_years": "╨Р╨┐╨╛╤И╨╜╤Ц╤Е ╨│╨╛╨┤: {years}",
"map_settings_dialog_title": "╨Э╨░╨╗╨░╨┤╤Л ╨║╨░╤А╤В╤Л",
"map_settings_theme_settings": "╨в╤Н╨╝╨░ ╨║╨░╤А╤В╤Л",
"menu": "╨Ь╨╡╨╜╤О",
"minute": "╨е╨▓╤Ц╨╗╤Ц╨╜╨░",
"month": "╨Ь╨╡╤Б╤П╤Ж",
"monthly_title_text_date_format": "MMMM y",
"my_albums": "╨Ь╨░╨╡ ╨░╨╗╤М╨▒╨╛╨╝╤Л",
"name": "╨Ж╨╝╤П",
"name_or_nickname": "╨Ж╨╝╤П ╨░╨▒╨╛ ╨┐╤Б╨╡╤Ю╨┤╨░╨╜╤Ц╨╝",
"next": "╨Ф╨░╨╗╨╡╨╣",
"no": "╨Э╨╡",
"offline": "╨Я╨░-╨╖╨░ ╤Б╨╡╤В╨║╨░╨╣",
"ok": "╨Ю╨Ъ",
"online": "╨г ╤Б╨╡╤В╤Ж╤Л",
"open": "╨Р╨┤╨║╤А╤Л╤Ж╤М",
"or": "╨░╨▒╨╛",
"partner_list_user_photos": "╨д╨╛╤В╨░ ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░ {user}",
"pause": "╨Я╤А╤Л╨┐╤Л╨╜╤Ц╤Ж╤М",
"people": "╨Ы╤О╨┤╨╖╤Ц",
"permission_onboarding_back": "╨Э╨░╨╖╨░╨┤",
"permission_onboarding_continue_anyway": "╨г╤Б╤С ╨░╨┤╨╜╨╛ ╨┐╤А╨░╤Ж╤П╨│╨╜╤Г╤Ж╤М",
"photos": "╨д╨╛╤В╨░",
"photos_and_videos": "╨д╨╛╤В╨░ ╤Ц ╨▓╤Ц╨┤╤Н╨░",
"place": "╨Ь╨╡╤Б╤Ж╨░",
"places": "╨Ь╨╡╤Б╤Ж╤Л",
"port": "╨Я╨╛╤А╤В",
"previous": "╨Я╨░╨┐╤П╤А╤Н╨┤╨╜╤П╨╡",
"profile": "╨Я╤А╨╛╤Д╤Ц╨╗╤М",
"profile_drawer_app_logs": "╨Ц╤Г╤А╨╜╨░╨╗╤Л",
"profile_drawer_github": "GitHub",
"purchase_button_buy": "╨Ъ╤Г╨┐╤Ц╤Ж╤М",
"purchase_button_buy_immich": "╨Ъ╤Г╨┐╤Ц╤Ж╤М Immich",
"purchase_button_select": "╨Т╤Л╨▒╤А╨░╤Ж╤М",
"remove": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М",
"remove_from_album": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨╖ ╨░╨╗╤М╨▒╨╛╨╝╨░",
"remove_from_favorites": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨╖ ╨░╨▒╤А╨░╨╜╤Л╤Е",
"remove_tag": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╤В╤Н╨│",
"remove_url": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М URL-╨░╨┤╤А╨░╤Б",
"remove_user": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░",
"rename": "╨Я╨╡╤А╨░╨╣╨╝╨╡╨╜╨░╨▓╨░╤Ж╤М",
"repository": "╨а╤Н╨┐╨░╨╖╤Ц╤В╨╛╤А╤Л╨╣",
"reset": "╨б╨║╤Ц╨╜╤Г╤Ж╤М",
"reset_password": "╨б╨║╤Ц╨╜╤Г╤Ж╤М ╨┐╨░╤А╨╛╨╗╤М",
"restore": "╨Р╨┤╨╜╨░╨▓╤Ц╤Ж╤М",
"restore_all": "╨Р╨┤╨╜╨░╨▓╤Ц╤Ж╤М ╤Г╤Б╤С",
"restore_user": "╨Р╨┤╨╜╨░╨▓╤Ц╤Ж╤М ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░",
"resume": "╨г╨╖╨╜╨░╨▓╤Ц╤Ж╤М",
"role": "╨а╨╛╨╗╤П",
"role_editor": "╨а╤Н╨┤╨░╨║╤В╨░╤А",
"role_viewer": "╨У╨╗╤П╨┤╨░╤З",
"save": "╨Ч╨░╤Е╨░╨▓╨░╤Ж╤М",
"save_to_gallery": "╨Ч╨░╤Е╨░╨▓╨░╤Ж╤М ╤Г ╨│╨░╨╗╨╡╤А╤Н╤О",
"search_filter_date": "╨Ф╨░╤В╨░",
"search_filter_location": "╨Ь╨╡╤Б╤Ж╨░╨╖╨╜╨░╤Е╨╛╨┤╨╢╨░╨╜╨╜╨╡",
"search_filter_location_title": "╨Т╤Л╨▒╨╡╤А╤Л╤Ж╨╡ ╨╝╨╡╤Б╤Ж╨░╨╖╨╜╨░╤Е╨╛╨┤╨╢╨░╨╜╨╜╨╡",
"search_filter_media_type": "╨в╤Л╨┐ ╨╝╨╡╨┤╤Л╤П",
"search_filter_media_type_title": "╨Т╤Л╨▒╨╡╤А╤Л╤Ж╨╡ ╤В╤Л╨┐ ╨╝╨╡╨┤╤Л╤П",
"search_page_screenshots": "╨Ч╨┤╤Л╨╝╨║╤Ц ╤Н╨║╤А╨░╨╜╨░",
"search_page_selfies": "╨б╤Н╨╗╤Д╤Ц",
"search_page_things": "╨а╤Н╤З╤Л",
"search_page_your_map": "╨Т╨░╤И╨░ ╨║╨░╤А╤В╨░",
"second": "╨б╨╡╨║╤Г╨╜╨┤╨░",
"send_message": "╨Р╨┤╨┐╤А╨░╨▓╤Ц╤Ж╤М ╨┐╨░╨▓╨╡╨┤╨░╨╝╨╗╨╡╨╜╨╜╨╡",
"setting_languages_apply": "╨г╨╢╤Л╤Ж╤М",
"setting_notifications_notify_never": "╨╜╤Ц╨║╨╛╨╗╤Ц",
"settings": "╨Э╨░╨╗╨░╨┤╤Л",
"share_add_photos": "╨Ф╨░╨┤╨░╤Ж╤М ╤Д╨╛╤В╨░",
"shared_album_section_people_title": "╨Ы╨о╨Ф╨Ч╨Ж",
"shared_link_info_chip_metadata": "EXIF",
"sharing_page_empty_list": "╨Я╨г╨б╨в╨л ╨б╨Я╨Ж╨б",
"sign_out": "╨Т╤Л╨╣╤Б╤Ж╤Ц",
"sign_up": "╨Ч╨░╤А╤Н╨│╤Ц╤Б╤В╤А╨░╨▓╨░╤Ж╤Ж╨░",
"size": "╨Я╨░╨╝╨╡╤А",
"sort_title": "╨Ч╨░╨│╨░╨╗╨╛╨▓╨░╨║",
"source": "╨Ъ╤А╤Л╨╜╤Ц╤Ж╨░",
"tag": "╨в╤Н╨│",
"tags": "╨в╤Н╨│╤Ц",
"theme": "╨в╤Н╨╝╨░",
"theme_selection": "╨Т╤Л╨▒╨░╤А ╤В╤Н╨╝╤Л",
"timeline": "╨е╤А╨╛╨╜╤Ц╨║╨░",
"total": "╨г╤Б╤П╨│╨╛",
"trash": "╨б╨╝╨╡╤В╨╜╤Ц╤Ж╨░",
"trash_page_delete_all": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╤Г╤Б╨╡",
"trash_page_restore_all": "╨Р╨┤╨╜╨░╨▓╤Ц╤Ж╤М ╤Г╤Б╨╡",
"trash_page_title": "╨б╨╝╨╡╤В╨╜╤Ц╤Ж╨░ ({count})",
"type": "╨в╤Л╨┐",
"undo": "╨Р╨┤╤А╨░╨▒╤Ц╤Ж╤М",
"upload": "╨Ч╨░╨┐╨░╨╝╨┐╨░╨▓╨░╤Ж╤М",
"upload_status_errors": "╨Я╨░╨╝╤Л╨╗╨║╤Ц",
"uploading": "╨Ч╨░╨┐╨░╨╝╨┐╨╛╤Ю╨▓╨░╨╜╨╜╨╡",
"url": "URL-╨░╨┤╤А╨░╤Б",
"user": "╨Ъ╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║",
"user_has_been_deleted": "╨У╤Н╤В╤Л ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║ ╨▒╤Л╤Ю ╨▓╤Л╨┤╨░╨╗╨╡╨╜╤Л.",
"user_id": "ID ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░",
"user_purchase_settings": "╨Ъ╤Г╨┐╨╗╤П",
"user_purchase_settings_description": "╨Ъ╤Ц╤А╤Г╨╣╤Ж╨╡ ╨┐╨░╨║╤Г╨┐╨║╨░╨╝╤Ц",
@@ -112,14 +372,14 @@
"view_next_asset": "╨Я╨░╨║╨░╨╖╨░╤Ж╤М ╨╜╨░╤Б╤В╤Г╨┐╨╜╤Л ╨░╨▒'╨╡╨║╤В",
"view_previous_asset": "╨Я╤А╨░╨│╨╗╤П╨┤╨╖╨╡╤Ж╤М ╨┐╨░╨┐╤П╤А╤Н╨┤╨╜╤Ц ╨░╨▒'╨╡╨║╤В",
"view_stack": "╨Я╤А╨░╨│╨╗╤П╨┤ ╤Б╤В╤Н╨║╨░",
"visibility_changed": "╨Т╤Ц╨┤╨╖╤Ц╨╝╨░╤Б╤Ж╤М ╨╖╨╝╤П╨╜╤Ц╨╗╨░╤Б╤П ╨┤╨╗╤П {count, plural, one {# ╤З╨░╨╗╨░╨▓╨╡╨║(-╨░╤Ю)} ╨░╤Б╤В╨░╤В╨╜╤Ц╤Е {# ╤З╨░╨╗╨░╨▓╨╡╨║}}",
"visibility_changed": "╨С╨░╤З╨╜╨░╤Б╤Ж╤М ╨╖╨╝╤П╨╜╤Ц╨╗╨░╤Б╤П ╨┤╨╗╤П {count, plural, one {# ╤З╨░╨╗╨░╨▓╨╡╨║╨░} other {# ╤З╨░╨╗╨░╨▓╨╡╨║}}",
"waiting": "╨з╨░╨║╨░╤О╤Ж╤М",
"warning": "╨Я╨░╨┐╤П╤А╤Н╨┤╨╢╨░╨╜╨╜╨╡",
"week": "╨в╤Л╨┤╨╖╨╡╨╜╤М",
"welcome": "╨Т╤Ц╤В╨░╨╡╨╝",
"welcome_to_immich": "╨Т╤Ц╤В╨░╨╡╨╝ ╤Г Immich",
"year": "╨У╨╛╨┤",
"years_ago": "{years, plural, one {# ╨│╨╛╨┤} other {# ╨│╨░╨┤╨╛╤Ю}} ╤В╨░╨╝╤Г",
"years_ago": "{years, plural, one {# ╨│╨╛╨┤} few {# ╨│╨░╨┤╤Л} many {# ╨│╨░╨┤╨╛╤Ю} other {# ╨│╨░╨┤╨╛╤Ю}} ╤В╨░╨╝╤Г",
"yes": "╨в╨░╨║",
"you_dont_have_any_shared_links": "╨г ╨▓╨░╤Б ╨╜╤П╨╝╨░ ╨░╨▒╨░╨│╤Г╨╗╨╡╨╜╤Л╤Е ╤Б╨┐╨░╤Б╤Л╨╗╨░╨║",
"zoom_image": "╨Я╨░╨▓╤П╨╗╤Ц╤З╤Л╤Ж╤М ╨▓╤Ц╨┤╨░╤А╤Л╤Б"
+38 -4
View File
@@ -166,6 +166,20 @@
"metadata_settings_description": "╨г╨┐╤А╨░╨▓╨╗╨╡╨╜╨╕╨╡ ╨╜╨░ ╨╜╨░╤Б╤В╤А╨╛╨╣╨║╨╕╤В╨╡ ╨╖╨░ ╨╝╨╡╤В╨░╨┤╨░╨╜╨╜╨╕",
"migration_job": "╨Ь╨╕╨│╤А╨░╤Ж╨╕╤П",
"migration_job_description": "╨Ь╨╕╨│╤А╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨╝╨╕╨╜╨╕╨░╤В╤О╤А╨╕╤В╨╡ ╨╖╨░ ╨╡╨╗╨╡╨╝╨╡╨╜╤В╨╕ ╨╕ ╨╗╨╕╤Ж╨░ ╨║╤К╨╝ ╨╜╨░╨╣-╨╜╨╛╨▓╨░╤В╨░ ╤Б╤В╤А╤Г╨║╤В╤Г╤А╨░ ╨╜╨░ ╨┐╨░╨┐╨║╨╕╤В╨╡",
"nightly_tasks_cluster_faces_setting_description": "╨Ш╨╖╨┐╤К╨╗╨╜╨╕ ╤А╨░╨╖╨┐╨╛╨╖╨╜╨░╨▓╨░╨╜╨╡ ╨╜╨░ ╨╗╨╕╤Ж╨╡ ╨╖╨░ ╨╛╤В╨║╤А╨╕╤В╨╕ ╨╜╨╛╨▓╨╕ ╨╗╨╕╤Ж╨░",
"nightly_tasks_cluster_new_faces_setting": "╨а╨░╨╖╨┐╨╛╨╖╨╜╨░╨▓╨░╨╜╨╡ ╨╜╨░ ╨╜╨╛╨▓╨╕ ╨╗╨╕╤Ж╨░",
"nightly_tasks_database_cleanup_setting": "╨Ч╨░╨┤╨░╤З╨╕ ╨┐╨╛ ╨┐╨╛╤З╨╕╤Б╤В╨▓╨░╨╜╨╡ ╨╜╨░ ╨▒╨░╨╖╨░╤В╨░ ╨┤╨░╨╜╨╜╨╕",
"nightly_tasks_database_cleanup_setting_description": "╨Я╤А╨╡╨╝╨░╤Е╨╜╨╕ ╤Б╤В╨░╤А╨╕, ╨╜╨╡╨╜╤Г╨╢╨╜╨╕ ╨╖╨░╨┐╨╕╤Б╨╕ ╨╛╤В ╨▒╨░╨╖╨░╤В╨░ ╨┤╨░╨╜╨╜╨╕",
"nightly_tasks_generate_memories_setting": "╨б╤К╨╖╨┤╨░╨▓╨░╨╜╨╡ ╨╜╨░ ╤Б╨┐╨╛╨╝╨╡╨╜╨╕",
"nightly_tasks_generate_memories_setting_description": "╨б╤К╨╖╨┤╨░╨▓╨░╨╜╨╡ ╨╜╨░ ╨╜╨╛╨▓╨╕ ╤Б╨┐╨╛╨╝╨╡╨╜╨╕ ╨╛╤В ╤Б╤К╤Й╨╡╤Б╤В╨▓╤Г╨▓╨░╤Й╨╕ ╨╛╨▒╨╡╨║╤В╨╕",
"nightly_tasks_missing_thumbnails_setting": "╨У╨╡╨╜╨╡╤А╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨╗╨╕╨┐╤Б╨▓╨░╤Й╨╕ ╨╝╨╕╨╜╨╕╨░╤В╤О╤А╨╕",
"nightly_tasks_missing_thumbnails_setting_description": "╨Ф╨╛╨▒╨░╨▓╤П╨╜╨╡ ╨╜╨░ ╨╛╨▒╨╡╨║╤В╨╕ ╨▒╨╡╨╖ ╨╝╨╕╨╜╨╕╨░╤В╤О╤А╨░ ╨▓ ╨╛╨┐╨░╤И╨║╨░╤В╨░ ╨╖╨░ ╤Б╤К╨╖╨┤╨░╨▓╨░╨╜╨╡ ╨╜╨░ ╨╝╨╕╨╜╨╕╨░╤В╤О╤А╨░",
"nightly_tasks_settings": "╨Э╨░╤Б╤В╤А╨╛╨╣╨║╨░ ╨╜╨░ ╨╖╨░╨┤╨░╤З╨╕ ╨╖╨░ ╨┐╤А╨╡╨╖ ╨╜╨╛╤Й╤В╨░",
"nightly_tasks_settings_description": "╨г╨┐╤А╨░╨▓╨╗╨╡╨╜╨╕╨╡ ╨╜╨░ ╨╖╨░╨┤╨░╤З╨╕╤В╨╡, ╨╕╨╖╨┐╤К╨╗╨╜╤П╨▓╨░╨╜╨╕ ╨┐╤А╨╡╨╖ ╨╜╨╛╤Й╤В╨░",
"nightly_tasks_start_time_setting": "╨Т╤А╨╡╨╝╨╡ ╨╖╨░ ╨╜╨░╤З╨░╨╗╨╛",
"nightly_tasks_start_time_setting_description": "╨Т╤А╨╡╨╝╨╡, ╨║╨╛╨│╨░╤В╨╛ ╤Б╤К╤А╨▓╤К╤А╨░ ╤Й╨╡ ╨╖╨░╨┐╨╛╤З╨╜╨╡ ╨╕╨╖╨┐╤К╨╗╨╜╨╡╨╜╨╕╨╡ ╨╜╨░ ╨╜╨╛╤Й╨╜╨╕ ╨╖╨░╨┤╨░╤З╨╕",
"nightly_tasks_sync_quota_usage_setting": "╨Ъ╨▓╨╛╤В╨░ ╨╖╨░ ╤Б╨╕╨╜╤Е╤А╨╛╨╜╨╕╨╖╨░╤Ж╨╕╤П",
"nightly_tasks_sync_quota_usage_setting_description": "╨Ю╨▒╨╜╨╛╨▓╤П╨▓╨░╨╜╨╡ ╨╜╨░ ╨║╨▓╨╛╤В╨░╤В╨░ ╤Б╨┐╨╛╤А╨╡╨┤ ╤В╨╡╨║╤Г╤Й╨╛╤В╨╛ ╨┐╨╛╤В╤А╨╡╨▒╨╗╨╡╨╜╨╕╨╡",
"no_paths_added": "╨Э╤П╨╝╨░ ╨┤╨╛╨▒╨░╨▓╨╡╨╜╨╕ ╨┐╤К╤В╨╕╤Й╨░",
"no_pattern_added": "╨Э╤П╨╝╨░ ╨┤╨╛╨▒╨░╨▓╨╡╨╜ ╨╝╨╛╨┤╨╡╨╗",
"note_apply_storage_label_previous_assets": "╨Ч╨░╨▒╨╡╨╗╨╡╨╢╨║╨░: ╨Ч╨░ ╨┤╨░ ╨┐╤А╨╕╨╗╨╛╨╢╨╕╤В╨╡ ╨╡╤В╨╕╨║╨╡╤В╨░ ╨╖╨░ ╤Б╤К╤Е╤А╨░╨╜╨╡╨╜╨╕╨╡ ╨║╤К╨╝ ╨┐╤А╨╡╨┤╨▓╨░╤А╨╕╤В╨╡╨╗╨╜╨╛ ╨║╨░╤З╨╡╨╜╨╕ ╤Д╨░╨╣╨╗╨╛╨▓╨╡, ╤Б╤В╨░╤А╤В╨╕╤А╨░╨╣╤В╨╡",
@@ -196,6 +210,8 @@
"oauth_mobile_redirect_uri": "URI ╨╖╨░ ╨╝╨╛╨▒╨╕╨╗╨╜╨╛ ╨┐╤А╨╡╨╜╨░╤Б╨╛╤З╨▓╨░╨╜╨╡",
"oauth_mobile_redirect_uri_override": "URI ╨┐╤А╨╡╨╜╨░╤Б╨╛╤З╨▓╨░╨╜╨╡ ╨╖╨░ ╨╝╨╛╨▒╨╕╨╗╨╜╨╕ ╤Г╤Б╤В╤А╨╛╨╣╤Б╤В╨▓╨░",
"oauth_mobile_redirect_uri_override_description": "╨а╨░╨╖╤А╨╡╤И╨╕ ╨║╨╛╨│╨░╤В╨╛ ╨┤╨╛╤Б╤В╨░╨▓╤З╨╕╨║╨░ ╨╖╨░ OAuth ╤Г╨┤╨╛╤Б╤В╨╛╨▓╨╡╤А╤П╨▓╨░╨╜╨╡ ╨╜╨╡ ╨┐╨╛╨╖╨▓╨╛╨╗╤П╨▓╨░ ╨╖╨░ ╨╝╨╛╨▒╨╕╨╗╨╜╨╕ URI ╨╕╨┤╨╡╨╜╤В╨╕╤Д╨╕╨║╨░╤В╨╛╤А╨╕, ╨║╨░╤В╨╛ ''{callback}''",
"oauth_role_claim": "╨Я╨╛╤В╨▓╤К╤А╨╢╨┤╨╡╨╜╨╕╨╡ ╨╜╨░ ╤А╨╛╨╗╤П",
"oauth_role_claim_description": "╨Р╨▓╤В╨╛╨╝╨░╤В╨╕╤З╨╜╨╛ ╨┐╤А╨╡╨┤╨╛╤Б╤В╨░╨▓╤П╨╜╨╡ ╨╜╨░ ╨░╨┤╨╝╨╕╨╜╨╕╤Б╤В╤А╨░╤В╨╕╨▓╨╜╨╕ ╨┐╤А╨░╨▓╨░ ╨┐╤А╨╕ ╨╜╨░╨╗╨╕╤З╨╕╨╡ ╨╜╨░ ╤В╨╛╨▓╨░ ╨┐╨╛╤В╨▓╤К╤А╨╢╨╡╨╜╨╕╨╡. ╨Я╨╛╤В╨▓╤К╤А╨╢╨┤╨╡╨╜╨╕╨╡╤В╨╛ ╨╝╨╛╨╢╨╡ ╨┤╨░ ╨╕╨╝╨░ ╤Б╤В╨╛╨╣╨╜╨╛╤Б╤В 'user' ╨╕╨╗╨╕ 'admin'.",
"oauth_settings": "OAuth",
"oauth_settings_description": "╨г╨┐╤А╨░╨▓╨╗╨╡╨╜╨╕╨╡ ╨╜╨░ ╨╜╨░╤Б╤В╤А╨╛╨╣╨║╨╕╤В╨╡ ╨╖╨░ ╨▓╤Е╨╛╨┤ ╤Б OAuth",
"oauth_settings_more_details": "╨Ч╨░ ╨┐╨╛╨▓╨╡╤З╨╡ ╨╕╨╜╤Д╨╛╤А╨╝╨░╤Ж╨╕╤П ╨╖╨░ ╤Д╤Г╨╜╨║╤Ж╨╕╨╛╨╜╨░╨╗╨╜╨╛╤Б╤В╤В╨░, ╤Б╨╡ ╨┐╨╛╤В╤К╤А╤Б╨╡╤В╨╡ ╨▓ <link>docs</link>.",
@@ -357,6 +373,8 @@
"admin_password": "╨Р╨┤╨╝╨╕╨╜╨╕╤Б╤В╤А╨░╤В╨╛╤А╤Б╨║╨░ ╨┐╨░╤А╨╛╨╗╨░",
"administration": "╨Р╨┤╨╝╨╕╨╜╨╕╤Б╤В╤А╨░╤Ж╨╕╤П",
"advanced": "╨а╨░╨╖╤И╨╕╤А╨╡╨╜╨╛",
"advanced_settings_beta_timeline_subtitle": "╨Ю╨┐╨╕╤В╨░╨╣╤В╨╡ ╨╜╨╛╨▓╨╕╤В╨╡ ╤Д╤Г╨╜╨║╤Ж╨╕╨╕ ╨╜╨░ ╨┐╤А╨╕╨╗╨╛╨╢╨╡╨╜╨╕╨╡╤В╨╛",
"advanced_settings_beta_timeline_title": "╨С╨╡╤В╨░ ╨▓╨╡╤А╤Б╨╕╤П ╨╜╨░ ╨▓╤А╨╡╨╝╨╡╨▓╨░╤В╨░ ╨╗╨╕╨╜╨╕╤П",
"advanced_settings_enable_alternate_media_filter_subtitle": "╨Я╤А╨╕ ╤Б╨╕╨╜╤Е╤А╨╛╨╜╨╕╨╖╨░╤Ж╨╕╤П, ╨╕╨╖╨┐╨╛╨╗╨╖╨▓╨░╨╣╤В╨╡ ╤В╨░╨╖╨╕ ╨╛╨┐╤Ж╨╕╤П ╨║╨░╤В╨╛ ╤Д╨╕╨╗╤В╤К╤А, ╨╛╤Б╨╜╨╛╨▓╨░╨╜ ╨╜╨░ ╨┐╤А╨╛╨╝╤П╨╜╨░ ╨╜╨░ ╨┤╨░╨┤╨╡╨╜ ╨║╤А╨╕╤В╨╡╤А╨╕╨╕. ╨Ю╨┐╨╕╤В╨░╨╣╤В╨╡ ╤Б╨░╨╝╨╛ ╨▓ ╤Б╨╗╤Г╤З╨░╨╣, ╤З╨╡ ╨┐╤А╨╕╨╗╨╛╨╢╨╡╨╜╨╕╨╡╤В╨╛ ╨╕╨╝╨░ ╨┐╤А╨╛╨▒╨╗╨╡╨╝ ╤Б ╨╛╤В╨║╤А╨╕╨▓╨░╨╜╨╡ ╨╜╨░ ╨▓╤Б╨╕╤З╨║╨╕ ╨░╨╗╨▒╤Г╨╝╨╕.",
"advanced_settings_enable_alternate_media_filter_title": "[╨Х╨Ъ╨б╨Я╨Х╨а╨Ш╨Ь╨Х╨Э╨в╨Р╨Ы╨Э╨Ю] ╨Ш╨╖╨┐╨╛╨╗╨╖╨▓╨░╨╣ ╤Д╨╕╨╗╤В╤К╤А╨░ ╨╜╨░ ╨░╨╗╤В╨╡╤А╨╜╨░╤В╨╕╨▓╨╜╨╛╤В╨╛ ╤Г╤Б╤В╤А╨╛╨╣╤Б╤В╨▓╨╛ ╨╖╨░ ╤Б╨╕╨╜╤Е╤А╨╛╨╜╨╕╨╖╨░╤Ж╨╕╤П ╨╜╨░ ╨░╨╗╨▒╤Г╨╝╨╕",
"advanced_settings_log_level_title": "╨Э╨╕╨▓╨╛ ╨╜╨░ ╨╖╨░╨┐╨╕╤Б ╨▓ ╨┤╨╜╨╡╨▓╨╜╨╕╨║╨░: {level}",
@@ -427,6 +445,7 @@
"app_settings": "╨Э╨░╤Б╤В╤А╨╛╨╣╨║╨╕ ╨╝╨░ ╨┐╤А╨╕╨╗╨╛╨╢╨╡╨╜╨╕╨╡╤В╨╛",
"appears_in": "╨Ш╨╖╨╗╨╕╨╖╨░ ╨▓",
"archive": "╨Р╤А╤Е╨╕╨▓",
"archive_action_prompt": "{count} ╤Б╨░ ╨┤╨╛╨▒╨░╨▓╨╡╨╜╨╕ ╨▓ ╨Р╤А╤Е╨╕╨▓╨░",
"archive_or_unarchive_photo": "╨Р╤А╤Е╨╕╨▓╨╕╤А╨░╨╜╨╡ ╨╕╨╗╨╕ ╨┤╨╡╨░╤А╤Е╨╕╨▓╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╤Б╨╜╨╕╨╝╨║╨░",
"archive_page_no_archived_assets": "╨Э╨╡ ╤Б╨░ ╨╜╨░╨╝╨╡╤А╨╡╨╜╨╕ ╨╛╨▒╨╡╨║╤В╨╕ ╨▓ ╨░╤А╤Е╨╕╨▓╨░",
"archive_page_title": "╨Р╤А╤Е╨╕╨▓ ({count})",
@@ -464,7 +483,6 @@
"assets": "╨Х╨╗╨╡╨╝╨╡╨╜╤В╨╕",
"assets_added_count": "╨Ф╨╛╨▒╨░╨▓╨╡╨╜╨╛ {count, plural, one {# asset} other {# assets}}",
"assets_added_to_album_count": "╨Ф╨╛╨▒╨░╨▓╨╡╨╜(╨╕) ╤Б╨░ {count, plural, one {# ╨░╨║╤В╨╕╨▓} other {# ╨░╨║╤В╨╕╨▓╨░}} ╨▓ ╨░╨╗╨▒╤Г╨╝╨░",
"assets_added_to_name_count": "╨Ф╨╛╨▒╨░╨▓╨╡╨╜(╨╕) ╤Б╨░ {count, plural, one {# ╨░╨║╤В╨╕╨▓} other {# ╨░╨║╤В╨╕╨▓╨░}} ╨║╤К╨╝ {hasName, select, true {<b>{name}</b>} other {╨╜╨╛╨▓ ╨░╨╗╨▒╤Г╨╝}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {╨Ю╨▒╨╡╨║╤В╨░ ╨╜╨╡ ╨╝╨╛╨╢╨╡ ╨┤╨░ ╤Б╨╡ ╨┤╨╛╨▒╨░╨▓╨╕} other {╨Ю╨▒╨╡╨║╤В╨╕╤В╨╡ ╨╜╨╡ ╨╝╨╛╨╢╨╡ ╨┤╨░ ╤Б╨╡ ╨┤╨╛╨▒╨░╨▓╤П╤В}} ╨▓ ╨░╨╗╨▒╤Г╨╝╨░",
"assets_count": "{count, plural, one {# ╨░╨║╤В╨╕╨▓} other {# ╨░╨║╤В╨╕╨▓╨░}}",
"assets_deleted_permanently": "{count} ╨╛╨▒╨╡╨║╤В╨░ ╤Б╨░ ╨╕╨╖╤В╤А╨╕╤В╨╕ ╨╖╨░╨▓╨╕╨╜╨░╨│╨╕",
@@ -703,7 +721,7 @@
"daily_title_text_date": "E, dd MMM",
"daily_title_text_date_year": "E, dd MMM yyyy",
"dark": "╨в╤К╨╝╨╡╨╜",
"darkTheme": "╨Я╤А╨╡╨▓╨║╨╗╤О╤З╨╕ ╨╜╨░ ╤В╤К╨╝╨╜╨░ ╤В╨╡╨╝╨░",
"dark_theme": "╨в╤К╨╝╨╜╨░ ╤В╨╡╨╝╨░",
"date_after": "╨Ф╨░╤В╨░ ╤Б╨╗╨╡╨┤",
"date_and_time": "╨Ф╨░╤В╨░ ╨╕ ╤З╨░╤Б",
"date_before": "╨Ф╨░╤В╨░ ╨┐╤А╨╡╨┤╨╕",
@@ -719,6 +737,7 @@
"default_locale": "╨Ы╨╛╨║╨░╨╗╨╕╨╖╨░╤Ж╨╕╤П ╨┐╨╛ ╨┐╨╛╨┤╤А╨░╨╖╨▒╨╕╤А╨░╨╜╨╡",
"default_locale_description": "╨д╨╛╤А╨╝╨░╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨┤╨░╤В╨╕ ╨╕ ╤З╨╕╤Б╨╗╨░ ╨▓ ╨╖╨░╨▓╨╕╤Б╨╕╨╝╨╛╤Б╤В ╨╛╤В ╨╡╨╖╨╕╨║╨╛╨▓╨░╤В╨░ ╨╜╨░╤Б╤В╤А╨╛╨╣╨║╨░ ╨╜╨░ ╨▒╤А╨░╤Г╨╖╤К╤А╨░",
"delete": "╨Ш╨╖╤В╤А╨╕╨╣",
"delete_action_prompt": "{count} ╤Б╨░ ╨╕╨╖╤В╤А╨╕╤В╨╕ ╨╖╨░╨▓╨╕╨╜╨░╨│╨╕",
"delete_album": "╨Ш╨╖╤В╤А╨╕╨╣ ╨░╨╗╨▒╤Г╨╝",
"delete_api_key_prompt": "╨б╨╕╨│╤Г╤А╨╜╨╕ ╨╗╨╕ ╤Б╤В╨╡, ╤З╨╡ ╨╕╤Б╨║╨░╤В╨╡ ╨┤╨░ ╨╕╨╖╤В╤А╨╕╨╡╤В╨╡ ╤В╨╛╨╖╨╕ API ╨║╨╗╤О╤З?",
"delete_dialog_alert": "╨в╨╡╨╖╨╕ ╨╛╨▒╨╡╨║╤В╨╕ ╤Й╨╡ ╨▒╤К╨┤╨░╤В ╨╕╨╖╤В╤А╨╕╤В╨╕ ╨╖╨░╨▓╨╕╨╜╨░╨│╨╕ ╨╕ ╨╛╤В Immich ╤Б╤К╤А╨▓╤К╤А╨░ ╨╕ ╨╛╤В ╤Г╤Б╤В╤А╨╛╨╣╤Б╤В╨▓╨╛╤В╨╛",
@@ -732,19 +751,20 @@
"delete_key": "╨Ш╨╖╤В╤А╨╕╨╣ ╨║╨╗╤О╤З",
"delete_library": "╨Ш╨╖╤В╤А╨╕╨╣ ╨▒╨╕╨▒╨╗╨╕╨╛╤В╨╡╨║╨░",
"delete_link": "╨Ш╨╖╤В╤А╨╕╨╣ ╨╗╨╕╨╜╨║",
"delete_local_action_prompt": "{count} ╤Б╨░ ╨╕╨╖╤В╤А╨╕╤В╨╕ ╨╗╨╛╨║╨░╨╗╨╜╨╛",
"delete_local_dialog_ok_backed_up_only": "╨Ш╨╖╤В╤А╨╕╨╣ ╨╗╨╛╨║╨░╨╗╨╜╨╛ ╤Б╨░╨╝╨╛ ╨░╤А╤Е╨╕╨▓╨╕╤А╨░╨╜╨╕╤В╨╡",
"delete_local_dialog_ok_force": "╨Т╤К╨┐╤А╨╡╨║╨╕ ╤В╨╛╨▓╨░ ╨╕╨╖╤В╤А╨╕╨╣",
"delete_others": "╨Ш╨╖╤В╤А╨╕╨╣ ╨╛╤Б╤В╨░╨╜╨░╨╗╨╕╤В╨╡",
"delete_shared_link": "╨Ш╨╖╤В╤А╨╕╨▓╨░╨╜╨╡ ╨╜╨░ ╤Б╨┐╨╛╨┤╨╡╨╗╨╡╨╜ ╨╗╨╕╨╜╨║",
"delete_shared_link_dialog_title": "╨Ш╨╖╤В╤А╨╕╨╣ ╤Б╨┐╨╛╨┤╨╡╨╗╨╡╨╜╨░╤В╨░ ╨▓╤А╤К╨╖╨║╨░",
"delete_tag": "╨Ш╨╖╤В╤А╨╕╨╣ ╤В╨░╨│",
"delete_tag_confirmation_prompt": "╨б╨╕╨│╤Г╤А╨╜╨╕ ╨╗╨╕ ╤Б╤В╨╡, ╤З╨╡ ╨╕╤Б╨║╨░╤В╨╡ ╨┤╨░ ╨╕╨╖╤В╤А╨╕╨╡╤В╨╡ ╤В╨░╨│ {tagName}?",
"delete_tag_confirmation_prompt": "╨б╨╕╨│╤Г╤А╨╜╨╕ ╨╗╨╕ ╤Б╤В╨╡, ╤З╨╡ ╨╕╤Б╨║╨░╤В╨╡ ╨┤╨░ ╨╕╨╖╤В╤А╨╕╨╡╤В╨╡ ╤В╨░╨│╨░ {tagName}?",
"delete_user": "╨Ш╨╖╤В╤А╨╕╨╣ ╨┐╨╛╤В╤А╨╡╨▒╨╕╤В╨╡╨╗",
"deleted_shared_link": "╨Ш╨╖╤В╤А╨╕╤В ╤Б╨┐╨╛╨┤╨╡╨╗╨╡╨╜ ╨╗╨╕╨╜╨║",
"deletes_missing_assets": "╨Ш╨╖╤В╤А╨╕╨▓╨░ ╤Д╨░╨╣╨╗╨╛╨▓╨╡, ╨║╨╛╨╕╤В╨╛ ╨╗╨╕╨┐╤Б╨▓╨░╤В ╨╜╨░ ╨┤╨╕╤Б╨║╨░",
"description": "╨Ю╨┐╨╕╤Б╨░╨╜╨╕╨╡",
"description_input_hint_text": "╨Ф╨╛╨▒╨░╨▓╨╕ ╨╛╨┐╨╕╤Б╨░╨╜╨╕╨╡...",
"description_input_submit_error": "╨Э╨╡╤Г╤Б╨┐╨╡╤И╨╜╨╛ ╨╛╨▒╨╜╨╛╨▓╤П╨▓╨░╨╜╨╡ ╨╜╨░ ╨╛╨┐╨╕╤Б╨░╨╜╨╕╨╡╤В╨╛. ╨Ч╨░ ╨┐╨╛╨┤╤А╨╛╨▒╨╜╨╛╤Б╤В╨╕ ╨▓╨╕╨╢ ╨▓ ╨┤╨╜╨╡╨▓╨╜╨╕╨║╨░",
"description_input_submit_error": "╨Э╨╡╤Г╤Б╨┐╨╡╤И╨╜╨╛ ╨╛╨▒╨╜╨╛╨▓╤П╨▓╨░╨╜╨╡ ╨╜╨░ ╨╛╨┐╨╕╤Б╨░╨╜╨╕╨╡╤В╨╛. ╨Ч╨░ ╨┐╨╛╨┤╤А╨╛╨▒╨╜╨╛╤Б╤В╨╕ ╨▓╨╕╨╢╤В╨╡ ╨▓ ╨┤╨╜╨╡╨▓╨╜╨╕╨║╨░",
"details": "╨Ф╨╡╤В╨░╨╣╨╗╨╕",
"direction": "╨Я╨╛╤Б╨╛╨║╨░",
"disabled": "╨Ш╨╖╨║╨╗╤О╤З╨╡╨╜╨╛",
@@ -762,6 +782,7 @@
"documentation": "╨Ф╨╛╨║╤Г╨╝╨╡╨╜╤В╨░╤Ж╨╕╤П",
"done": "╨У╨╛╤В╨╛╨▓╨╛",
"download": "╨Ш╨╖╤В╨╡╨│╨╗╨╕",
"download_action_prompt": "╨Ч╨░╤А╨╡╨╢╨┤╨░╨╜╨╡ ╨╜╨░ {count} ╨╛╨▒╨╡╨║╤В╨░",
"download_canceled": "╨Ш╨╖╤В╨╡╨│╨╗╤П╨╜╨╡╤В╨╛ ╨╡ ╨╛╤В╨╝╨╡╨╜╨╡╨╜╨╛",
"download_complete": "╨Ш╨╖╤В╨╡╨│╨╗╤П╨╜╨╡╤В╨╛ ╨╖╨░╨▓╤К╤А╤И╨╕",
"download_enqueue": "╨Ш╨╖╤В╨╡╨│╨╗╤П╨╜╨╡╤В╨╛ ╨╡ ╨┤╨╛╨▒╨░╨▓╨╡╨╜╨╛ ╨▓ ╨╛╨┐╨░╤И╨║╨░╤В╨░",
@@ -799,6 +820,7 @@
"edit_key": "╨а╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨║╨╗╤О╤З",
"edit_link": "╨а╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨╗╨╕╨╜╨║",
"edit_location": "╨а╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨╝╨╡╤Б╤В╨╛╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╨╡╤В╨╛",
"edit_location_action_prompt": "{count} ╨╗╨╛╨║╨░╤Ж╨╕╨╕ ╤Б╨░ ╤А╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╕",
"edit_location_dialog_title": "╨Ь╨╡╤Б╤В╨╛╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╨╡",
"edit_name": "╨а╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨╕╨╝╨╡",
"edit_people": "╨а╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╤Е╨╛╤А╨░",
@@ -984,6 +1006,7 @@
"failed_to_load_assets": "╨Э╨╡╤Г╤Б╨┐╨╡╤И╨╜╨╛ ╨╖╨░╤А╨╡╨╢╨┤╨░╨╜╨╡ ╨╜╨░ ╨╡╨╗╨╡╨╝╨╡╨╜╤В╨╕",
"failed_to_load_folder": "╨Э╨╡╤Г╤Б╨┐╨╡╤И╨╜╨╛ ╨╖╨░╤А╨╡╨╢╨┤╨░╨╜╨╡ ╨╜╨░ ╨┐╨░╨┐╨║╨░",
"favorite": "╨Ы╤О╨▒╨╕╨╝",
"favorite_action_prompt": "{count} ╤Б╨░ ╨┤╨╛╨▒╨░╨▓╨╡╨╜╨╕ ╨▓ ╨Ы╤О╨▒╨╕╨╝╨╕",
"favorite_or_unfavorite_photo": "╨Ф╨╛╨▒╨░╨▓╨╕ ╨╕╨╗╨╕ ╨┐╤А╨╡╨╝╨░╤Е╨╜╨╕ ╤Б╨╜╨╕╨╝╨║╨░ ╨╛╤В ╨Ы╤О╨▒╨╕╨╝╨╕",
"favorites": "╨Ы╤О╨▒╨╕╨╝╨╕",
"favorites_page_no_favorites": "╨Э╨╡ ╤Б╨░ ╨╜╨░╨╝╨╡╤А╨╡╨╜╨╕ ╨╗╤О╨▒╨╕╨╝╨╕ ╨╛╨▒╨╡╨║╤В╨╕",
@@ -1127,6 +1150,7 @@
"library_page_sort_created": "╨Ф╨░╤В╨░ ╨╜╨░ ╤Б╤К╨╖╨┤╨░╨▓╨░╨╜╨╡",
"library_page_sort_last_modified": "╨Я╨╛╤Б╨╗╨╡╨┤╨╜╨░ ╨┐╤А╨╛╨╝╤П╨╜╨░",
"library_page_sort_title": "╨Ч╨░╨│╨╗╨░╨▓╨╕╨╡ ╨╜╨░ ╨░╨╗╨▒╤Г╨╝╨░",
"licenses": "╨Ы╨╕╤Ж╨╡╨╜╨╖╨╕",
"light": "╨б╨▓╨╡╤В╨╗╨╛",
"like_deleted": "╨Ъ╨░╤В╨╛ ╨╕╨╖╤В╤А╨╕╤В",
"link_motion_video": "╨Ы╨╕╨╜╨║ ╨║╤К╨╝ ╨▓╨╕╨┤╨╡╨╛",
@@ -1246,6 +1270,7 @@
"more": "╨Ю╤Й╨╡",
"move": "╨Я╤А╨╡╨╝╨╡╤Б╤В╨╕",
"move_off_locked_folder": "╨Ш╨╖╨▓╨░╨┤╨╕ ╨╛╤В ╨╖╨░╨║╨╗╤О╤З╨╡╨╜╨░╤В╨░ ╨┐╨░╨┐╨║╨░",
"move_to_lock_folder_action_prompt": "{count} ╤Б╨░ ╨┤╨╛╨▒╨░╨▓╨╡╨╜╨╕ ╨▓ ╨╖╨░╨║╨╗╤О╤З╨╡╨╜╨░╤В╨░ ╨┐╨░╨┐╨║╨░",
"move_to_locked_folder": "╨Я╤А╨╡╨╝╨╡╤Б╤В╨╕ ╨▓ ╨╖╨░╨║╨╗╤О╤З╨╡╨╜╨░ ╨┐╨░╨┐╨║╨░",
"move_to_locked_folder_confirmation": "╨в╨╡╨╖╨╕ ╤Б╨╜╨╕╨╝╨║╨╕ ╨╕ ╨▓╨╕╨┤╨╡╨░ ╤Й╨╡ ╨▒╤К╨┤╨░╤В ╨╕╨╖╤В╤А╨╕╤В╨╕ ╨╛╤В ╨▓╤Б╨╕╤З╨║╨╕ ╨░╨╗╨▒╤Г╨╝╨╕ ╨╕ ╤Й╨╡ ╤Б╨░ ╨┤╨╛╤Б╤В╤К╨┐╨╜╨╕ ╤Б╨░╨╝╨╛ ╨▓ ╨╖╨░╨║╨╗╤О╤З╨╡╨╜╨░╤В╨░ ╨┐╨░╨┐╨║╨░",
"moved_to_archive": "{count, plural, one {# ╨╛╨▒╨╡╨║╤В ╨╡ ╨┐╤А╨╡╨╝╨╡╤Б╤В╨╡╨╜} many {# ╨╛╨▒╨╡╨║╤В╨░ ╤Б╨░ ╨┐╤А╨╡╨╝╨╡╤Б╤В╨╡╨╜╨╕} other {# ╨╛╨▒╨╡╨║╤В╨░ ╤Б╨░ ╨┐╤А╨╡╨╝╨╡╤Б╤В╨╡╨╜╨╕}} ╨▓ ╨░╤А╤Е╨╕╨▓╨░",
@@ -1495,7 +1520,9 @@
"remove_custom_date_range": "╨Я╤А╨╡╨╝╨░╤Е╨╜╨╕ ╨╖╨░╨┤╨░╨┤╨╡╨╜╨╕╤П ╨┤╨╕╨░╨┐╨░╨╖╨╛╨╜ ╨╛╤В ╨┤╨░╤В╨╕",
"remove_deleted_assets": "╨Я╤А╨╡╨╝╨░╤Е╨╜╨╕ ╨Ш╨╖╤В╤А╨╕╤В╨╕╤В╨╡ ╨Х╨╗╨╡╨╝╨╡╨╜╤В╨╕",
"remove_from_album": "╨Я╤А╨╡╨╝╨░╤Е╨╜╨╕ ╨╛╤В ╨░╨╗╨▒╤Г╨╝╨░",
"remove_from_album_action_prompt": "{count} ╤Б╨░ ╨┐╤А╨╡╨╝╨░╤Е╨╜╨░╤В╨╕ ╨╛╤В ╨░╨╗╨▒╤Г╨╝╨░",
"remove_from_favorites": "╨Я╤А╨╡╨╝╨░╤Е╨╜╨╕ ╨╛╤В ╨Ы╤О╨▒╨╕╨╝╨╕",
"remove_from_lock_folder_action_prompt": "{count} ╤Б╨░ ╨┐╤А╨╡╨╝╨░╤Е╨╜╨░╤В╨╕ ╨╛╤В ╨╖╨░╨║╨╗╤О╤З╨╡╨╜╨░╤В╨░ ╨┐╨░╨┐╨║╨░",
"remove_from_locked_folder": "╨Ь╨░╤Е╨╜╨╕ ╨╛╤В ╨╖╨░╨║╨╗╤О╤З╨╡╨╜╨░╤В╨░ ╨┐╨░╨┐╨║╨░",
"remove_from_locked_folder_confirmation": "╨б╨╕╨│╤Г╤А╨╜╨╕ ╨╗╨╕ ╤Б╨╕, ╤З╨╡ ╨╕╤Б╨║╨░╤В╨╡ ╤В╨╡╨╖╨╕ ╤Б╨╜╨╕╨╝╨║╨╕ ╨╕ ╨▓╨╕╨┤╨╡╨░ ╨┤╨░ ╨▒╤К╨┤╨░╤В ╨╕╨╖╨▓╨░╨┤╨╡╨╜╨╕ ╨╛╤В ╨╖╨░╨║╨╗╤О╤З╨╡╨╜╨░╤В╨░ ╨┐╨░╨┐╨║╨░? ╨в╨╡ ╤Й╨╡ ╨▒╤К╨┤╨░╤В ╨▓╨╕╨┤╨╕╨╝╨╕ ╨▓ ╨▒╨╕╨▒╨╗╨╕╨╛╤В╨╡╨║╨░╤В╨░.",
"remove_from_shared_link": "╨Я╤А╨╡╨╝╨░╤Е╨╜╨╕ ╨╛╤В ╤Б╨┐╨╛╨┤╨╡╨╗╨╡╨╜╨╕╤П ╨╗╨╕╨╜╨║",
@@ -1667,6 +1694,7 @@
"settings_saved": "╨Э╨░╤Б╤В╤А╨╛╨╣╨║╨╕╤В╨╡ ╤Б╨░ ╨╖╨░╨┐╨░╨╖╨╡╨╜╨╕",
"setup_pin_code": "╨Ч╨░╨┤╨░╨╣ PIN ╨║╨╛╨┤",
"share": "╨б╨┐╨╛╨┤╨╡╨╗╤П╨╜╨╡",
"share_action_prompt": "{count} ╤Б╨┐╨╛╨┤╨╡╨╗╨╡╨╜╨╕ ╨╛╨▒╨╡╨║╤В╨░",
"share_add_photos": "╨Ф╨╛╨▒╨░╨▓╨╕ ╤Б╨╜╨╕╨╝╨║╨╕",
"share_assets_selected": "{count} ╨╕╨╖╨▒╤А╨░╨╜╨╕",
"share_dialog_preparing": "╨Я╨╛╨┤╨│╨╛╤В╨╛╨▓╨║╨░...",
@@ -1768,6 +1796,7 @@
"sort_title": "╨Ч╨░╨│╨╗╨░╨▓╨╕╨╡",
"source": "╨Ъ╨╛╨┤",
"stack": "╨б╤К╨▒╨╡╤А╨╕",
"stack_action_prompt": "{count} ╤Б╨░ ╨│╤А╤Г╨┐╨╕╤А╨░╨╜╨╕",
"stack_duplicates": "╨Я╨╛╨┤╤А╨╡╨╢╨┤╨░╨╜╨╡ ╨╜╨░ ╨┤╤Г╨▒╨╗╨╕╨║╨░╤В╨╕",
"stack_select_one_photo": "╨Ш╨╖╨▒╨╡╤А╨╕ ╨╡╨┤╨╜╨░ ╨│╨╗╨░╨▓╨╜╨░ ╤Б╨╜╨╕╨╝╨║╨░ ╨╖╨░ ╤Б╤К╨▒╤А╨░╨╜╨╕╤В╨╡ ╤Б╨╜╨╕╨╝╨║╨╕",
"stack_selected_photos": "╨Я╨╛╨┤╤А╨╡╨╢╨┤╨░╨╜╨╡ ╨╜╨░ ╨╕╨╖╨▒╤А╨░╨╜╨╕ ╤Б╨╜╨╕╨╝╨║╨╕",
@@ -1838,6 +1867,7 @@
"total": "╨Ю╨▒╤Й╨╛",
"total_usage": "╨Ю╨▒╤Й╨╛ ╨╕╨╖╨┐╨╛╨╗╨╖╨▓╨░╨╜╨╛",
"trash": "╨Ъ╨╛╤И╤З╨╡",
"trash_action_prompt": "{count} ╤Б╨░ ╨┐╤А╨╡╨╝╨╡╤Б╤В╨╡╨╜╨╕ ╨▓ ╨║╨╛╤И╨░",
"trash_all": "╨Ш╨╖╤Е╨▓╤К╤А╨╗╨╕ ╨▓╤Б╨╕╤З╨║╨╕",
"trash_count": "╨Т ╨Ъ╨╛╤И╤З╨╡╤В╨╛ {count, number}",
"trash_delete_asset": "╨Т╨║╨░╤А╨░╨╣ ╨▓ ╨Ъ╨╛╤И╤З╨╡╤В╨╛/╨Ш╨╖╤В╤А╨╕╨╣ ╨╡╨╗╨╡╨╝╨╡╨╜╤В",
@@ -1855,9 +1885,11 @@
"unable_to_change_pin_code": "╨Э╨╡╨▓╤К╨╖╨╝╨╛╨╢╨╜╨░ ╨┐╤А╨╛╨╝╤П╨╜╨░ ╨╜╨░ PIN ╨║╨╛╨┤╨░",
"unable_to_setup_pin_code": "╨Э╨╡╤Г╤Б╨┐╨╡╤И╨╜╨╛ ╨╖╨░╨┤╨░╨▓╨░╨╜╨╡ ╨╜╨░ PIN ╨║╨╛╨┤╨░",
"unarchive": "╨а╨░╨╖╨░╤А╤Е╨╕╨▓╨╕╤А╨░╨╣",
"unarchive_action_prompt": "{count} ╤Б╨░ ╨┐╤А╨╡╨╝╨░╤Е╨╜╨░╤В╨╕ ╨╛╤В ╨Р╤А╤Е╨╕╨▓╨░",
"unarchived_count": "{count, plural, other {╨Э╨╡╨░╤А╤Е╨╕╨▓╨╕╤А╨░╨╜╨╕ #}}",
"undo": "╨Ю╤В╨╝╨╡╨╜╨╕",
"unfavorite": "╨Я╤А╨╡╨╝╨░╤Е╨▓╨░╨╜╨╡ ╨╛╤В ╨╗╤О╨▒╨╕╨╝╨╕╤В╨╡",
"unfavorite_action_prompt": "{count} ╤Б╨░ ╨┐╤А╨╡╨╝╨░╤Е╨╜╨░╤В╨╕ ╨╛╤В ╨Ы╤О╨▒╨╕╨╝╨╕",
"unhide_person": "╨Я╨╛╨║╨░╨╢╨╕ ╨╛╤В╨╜╨╛╨▓╨╛ ╤З╨╛╨▓╨╡╨║╨░",
"unknown": "╨Э╨╡╨╕╨╖╨▓╨╡╤Б╤В╨╜╨╛",
"unknown_country": "╨Э╨╡╨┐╨╛╨╖╨╜╨░╤В╨░ ╨Ф╤К╤А╨╢╨░╨▓╨░",
@@ -1875,7 +1907,9 @@
"unselect_all_duplicates": "╨Ю╤В ╨╝╨░╤А╨║╨╕╤А╨░╨╣ ╨▓╤Б╨╕╤З╨║╨╕ ╨┤╤Г╨▒╨╗╨╕╨║╨░╤В╨╕",
"unselect_all_in": "╨Я╤А╨╡╨╝╨░╤Е╨╜╨╕ ╨╕╨╖╨▒╨╛╤А╨░ ╨╜╨░ ╨▓╤Б╨╕╤З╨║╨╕ ╨╛╤В ╨│╤А╤Г╨┐╨░╤В╨░ {group}",
"unstack": "╨а╨░╨╖╨║╨░╤З╨╕",
"unstack_action_prompt": "{count} ╤Б╨░ ╤А╨░╨╖╨│╤А╤Г╨┐╨╕╤А╨░╨╜╨╕",
"unstacked_assets_count": "╨а╨░╨╖╨║╨░╤З╨╡╨╜╨╕ {count, plural, one {# ╨╡╨╗╨╡╨╝╨╡╨╜╤В} other {# ╨╡╨╗╨╡╨╝╨╡╨╜╤В╨╕}}",
"untagged": "╨Э╨╡╨╝╨░╤А╨║╨╕╤А╨░╨╜╨╕",
"up_next": "╨б╨╗╨╡╨┤╨▓╨░╤Й",
"updated_at": "╨Ю╨▒╨╜╨╛╨▓╨╡╨╜╨╛",
"updated_password": "╨Я╨░╤А╨╛╨╗╨░╤В╨░ ╨╡ ╨░╨║╤В╤Г╨░╨╗╨╕╨╖╨╕╤А╨░╨╜╨░",
+81 -1
View File
@@ -8,6 +8,7 @@
"actions": "ржХрж░рзНржо",
"active": "рж╕ржЪрж▓",
"activity": "ржХрж╛рж░рзНржпржХрж▓рж╛ржк",
"activity_changed": "ржПржХржЯрж┐ржнрж┐ржЯрж┐ ржПржЦржи {enabled, select, true {ржЪрж╛рж▓рзБ} other {ржмржирзНржз}} ржЖржЫрзЗ",
"add": "ржпрзЛржЧ ржХрж░рзБржи",
"add_a_description": "ржПржХржЯрж┐ ржмрж┐ржмрж░ржг ржпрзЛржЧ ржХрж░рзБржи",
"add_a_location": "ржПржХржЯрж┐ ржЕржмрж╕рзНржерж╛ржи ржпрзЛржЧ ржХрж░рзБржи",
@@ -15,5 +16,84 @@
"add_a_title": "ржПржХржЯрж┐ рж╢рж┐рж░рзЛржирж╛ржо ржпрзЛржЧ ржХрж░рзБржи",
"add_endpoint": "ржПржирзНржбржкржпрж╝рзЗржирзНржЯ ржпрзЛржЧ ржХрж░рзБржи",
"add_exclusion_pattern": "ржмрж╣рж┐рж░рзНржнрзВрждржХрж░ржг ржиржорзБржирж╛",
"add_url": "рж▓рж┐ржЩрзНржХ ржпрзЛржЧ ржХрж░рзБржи"
"add_import_path": "ржЗржоржкрзЛрж░рзНржЯ ржХрж░рж╛рж░ ржкрж╛рже ржпрзБржХрзНржд ржХрж░рзБржи",
"add_location": "ржЕржмрж╕рзНржерж╛ржи ржпрзБржХрзНржд ржХрж░рзБржи",
"add_more_users": "ржЖрж░рзЛ ржмрзНржпржмрж╣рж╛рж░ржХрж╛рж░рзА ржпрзБржХрзНржд ржХрж░рзБржи",
"add_partner": "ржЕржВрж╢рзАржжрж╛рж░ ржпрзЛржЧ ржХрж░рзБржи",
"add_path": "ржкрж╛рже ржпрзБржХрзНржд ржХрж░рзБржи",
"add_photos": "ржЫржмрж┐ ржпрзБржХрзНржд ржХрж░рзБржи",
"add_tag": "ржЯрзНржпрж╛ржЧ ржпрзБржХрзНржд ржХрж░рзБржи",
"add_to": "ржпрзБржХрзНржд ржХрж░рзБржитАж",
"add_to_album": "ржПрж▓ржмрж╛ржо ржП ржпрзЛржЧ ржХрж░рзБржи",
"add_to_album_bottom_sheet_added": "{album} ржП ржпрзЛржЧ ржХрж░рж╛ рж╣ржпрж╝рзЗржЫрзЗ",
"add_to_album_bottom_sheet_already_exists": "{album} ржП ржЖржЧрзЗ ржерзЗржХрзЗржЗ ржЖржЫрзЗ",
"add_to_shared_album": "рж╢рзЗржпрж╝рж╛рж░ ржХрж░рж╛ ржЕрзНржпрж╛рж▓ржмрж╛ржорзЗ ржпрзЛржЧ ржХрж░рзБржи",
"add_url": "рж▓рж┐ржЩрзНржХ ржпрзЛржЧ ржХрж░рзБржи",
"added_to_archive": "ржЖрж░рзНржХрж╛ржЗржн ржП ржпрзЛржЧ ржХрж░рж╛ рж╣ржпрж╝рзЗржЫрзЗ",
"added_to_favorites": "ржлрзЗржнрж╛рж░рж┐ржЯрзЗ ржпрзЛржЧ ржХрж░рж╛ рж╣ржпрж╝рзЗржЫрзЗ",
"added_to_favorites_count": "ржкржЫржирзНржжрзЗрж░ рждрж╛рж▓рж┐ржХрж╛рзЯ {count, number} ржпрзЛржЧ ржХрж░рж╛ рж╣рзЯрзЗржЫрзЗ",
"admin": {
"add_exclusion_pattern_description": "ржПржХрзНрж╕ржХрзНрж▓рзБрж╢ржи ржкрзНржпрж╛ржЯрж╛рж░рзНржи ржпрзЛржЧ ржХрж░рзБржиред *, **, ржПржмржВ ? ржмрзНржпржмрж╣рж╛рж░ ржХрж░рзЗ ржЧрзНрж▓рзЛржмрж┐ржВ ржХрж░рж╛ рж╕ржорзНржнржмред \"Raw\" ржирж╛ржорзЗрж░ ржпрзЗржХрзЛржирзЛ ржбрж┐рж░рзЗржХрзНржЯрж░рж┐рждрзЗ ржерж╛ржХрж╛ рж╕ржорж╕рзНржд ржлрж╛ржЗрж▓ ржмрж╛ржж ржжрж┐рждрзЗ \"**/Raw/**\" ржмрзНржпржмрж╣рж╛рж░ ржХрж░рзБржиред \".tif\" ржжрж┐ржпрж╝рзЗ рж╢рзЗрж╖ рж╣ржУржпрж╝рж╛ рж╕ржорж╕рзНржд ржлрж╛ржЗрж▓ ржмрж╛ржж ржжрж┐рждрзЗ \"**/*.tif\" ржмрзНржпржмрж╣рж╛рж░ ржХрж░рзБржиред ржПржХржЯрж┐ рж╕ржорзНржкрзВрж░рзНржг ржкрж╛рже ржмрж╛ржж ржжрж┐рждрзЗ, \"/path/to/ignore/**\" ржмрзНржпржмрж╣рж╛рж░ ржХрж░рзБржиред",
"admin_user": "ржПржбржорж┐ржи ржЗржЙржЬрж╛рж░",
"asset_offline_description": "ржПржЗ ржмрж╣рж┐рж░рж╛ржЧржд рж▓рж╛ржЗржмрзНрж░рзЗрж░рж┐ рж╕ржорзНржкржжржЯрж┐ ржЖрж░ ржбрж┐рж╕рзНржХрзЗ ржкрж╛ржУржпрж╝рж╛ ржпрж╛ржЪрзНржЫрзЗ ржирж╛ ржПржмржВ ржЯрзНрж░рзНржпрж╛рж╢рзЗ рж╕рж░рж╛ржирзЛ рж╣ржпрж╝рзЗржЫрзЗред ржпржжрж┐ ржлрж╛ржЗрж▓ржЯрж┐ рж▓рж╛ржЗржмрзНрж░рзЗрж░рж┐рж░ ржоржзрзНржпрзЗ рж╕рж░рж╛ржирзЛ рж╣ржпрж╝рзЗ ржерж╛ржХрзЗ, рждрж╛рж╣рж▓рзЗ ржирждрзБржи рж╕ржВрж╢рзНрж▓рж┐рж╖рзНржЯ рж╕ржорзНржкржжрзЗрж░ ржЬржирзНржп ржЖржкржирж╛рж░ ржЯрж╛ржЗржорж▓рж╛ржЗржи ржкрж░рзАржХрзНрж╖рж╛ ржХрж░рзБржиред ржПржЗ рж╕ржорзНржкржжржЯрж┐ ржкрзБржирж░рзБржжрзНржзрж╛рж░ ржХрж░рждрзЗ, ржжржпрж╝рж╛ ржХрж░рзЗ ржирж┐рж╢рзНржЪрж┐ржд ржХрж░рзБржи ржпрзЗ ржирзАржЪрзЗрж░ ржлрж╛ржЗрж▓ ржкрж╛ржержЯрж┐ Immich ржжрзНржмрж╛рж░рж╛ ржЕрзНржпрж╛ржХрзНрж╕рзЗрж╕ ржХрж░рж╛ ржпрзЗрждрзЗ ржкрж╛рж░рзЗ ржПржмржВ рж▓рж╛ржЗржмрзНрж░рзЗрж░рж┐ржЯрж┐ рж╕рзНржХрзНржпрж╛ржи ржХрж░рзБржиред",
"authentication_settings": "ржкрзНрж░ржорж╛ржгрзАржХрж░ржг рж╕рзЗржЯрж┐ржВрж╕",
"authentication_settings_description": "ржкрж╛рж╕ржУржпрж╝рж╛рж░рзНржб, OAuth ржПржмржВ ржЕржирзНржпрж╛ржирзНржп ржкрзНрж░ржорж╛ржгрзАржХрж░ржг рж╕рзЗржЯрж┐ржВрж╕ ржкрж░рж┐ржЪрж╛рж▓ржирж╛ ржХрж░рзБржи",
"authentication_settings_disable_all": "ржЖржкржирж┐ ржХрж┐ ржирж┐рж╢рзНржЪрж┐ржд ржпрзЗ ржЖржкржирж┐ рж╕ржорж╕рзНржд рж▓ржЧржЗржи ржкржжрзНржзрждрж┐ ржЕржХрзНрж╖ржо ржХрж░рждрзЗ ржЪрж╛ржи? рж▓ржЧржЗржи рж╕ржорзНржкрзВрж░рзНржгрж░рзВржкрзЗ ржЕржХрзНрж╖ржо ржХрж░рж╛ рж╣ржмрзЗред",
"authentication_settings_reenable": "ржкрзБржирж░рж╛ржпрж╝ рж╕ржХрзНрж╖ржо ржХрж░рждрзЗ, ржПржХржЯрж┐ <link>рж╕рж╛рж░рзНржнрж╛рж░ ржХржорж╛ржирзНржб</link> ржмрзНржпржмрж╣рж╛рж░ ржХрж░рзБржиред",
"background_task_job": "ржмрзНржпрж╛ржХржЧрзНрж░рж╛ржЙржирзНржб ржЯрж╛рж╕рзНржХ",
"backup_database": "ржбрж╛ржЯрж╛ржмрзЗрж╕ ржбрж╛ржорзНржк рждрзИрж░рж┐ ржХрж░рзБржи",
"backup_database_enable_description": "ржбрж╛ржЯрж╛ржмрзЗрж╕ ржбрж╛ржорзНржк рж╕ржХрзНрж░рж┐ржпрж╝ ржХрж░рзБржи",
"backup_keep_last_amount": "ржЖржЧрзЗрж░ ржбрж╛ржорзНржкрзЗрж░ ржкрж░рж┐ржорж╛ржг рж░рж╛ржЦрж╛ рж╣ржмрзЗ",
"backup_settings": "ржбрж╛ржЯрж╛ржмрзЗрж╕ ржбрж╛ржорзНржк рж╕рзЗржЯрж┐ржВрж╕",
"backup_settings_description": "ржбрж╛ржЯрж╛ржмрзЗрж╕ ржбрж╛ржорзНржк рж╕рзЗржЯрж┐ржВрж╕ ржкрж░рж┐ржЪрж╛рж▓ржирж╛ ржХрж░рзБржиред",
"cleared_jobs": "{job} ржПрж░ ржЬржирзНржп jobs ржЦрж╛рж▓рж┐ ржХрж░рж╛ рж╣ржпрж╝рзЗржЫрзЗ",
"config_set_by_file": "ржХржиржлрж┐ржЧ ржмрж░рзНрждржорж╛ржирзЗ ржПржХржЯрж┐ ржХржиржлрж┐ржЧ ржлрж╛ржЗрж▓ ржжрзНржмрж╛рж░рж╛ рж╕рзЗржЯ ржХрж░рж╛ ржЖржЫрзЗ",
"confirm_delete_library": "ржЖржкржирж┐ ржХрж┐ ржирж┐рж╢рзНржЪрж┐ржд ржпрзЗ ржЖржкржирж┐ {library} рж▓рж╛ржЗржмрзНрж░рзЗрж░рж┐ ржорзБржЫрзЗ ржлрзЗрж▓рждрзЗ ржЪрж╛ржи?",
"confirm_delete_library_assets": "ржЖржкржирж┐ ржХрж┐ ржирж┐рж╢рзНржЪрж┐ржд ржпрзЗ ржЖржкржирж┐ ржПржЗ рж▓рж╛ржЗржмрзНрж░рзЗрж░рж┐ржЯрж┐ ржорзБржЫрзЗ ржлрзЗрж▓рждрзЗ ржЪрж╛ржи? ржПржЯрж┐ Immich ржерзЗржХрзЗ {count, plural, one {# contained asset} other {all # contained asset}} ржорзБржЫрзЗ ржлрзЗрж▓ржмрзЗ ржПржмржВ ржкрзВрж░рзНржмрж╛ржмрж╕рзНржерж╛ржпрж╝ ржлрзЗрж░рж╛ржирзЛ ржпрж╛ржмрзЗ ржирж╛ред ржлрж╛ржЗрж▓ржЧрзБрж▓рж┐ ржбрж┐рж╕рзНржХрзЗ ржерж╛ржХржмрзЗред",
"confirm_email_below": "ржирж┐рж╢рзНржЪрж┐ржд ржХрж░рждрзЗ, ржирж┐ржЪрзЗ \"{email}\" ржЯрж╛ржЗржк ржХрж░рзБржи",
"confirm_reprocess_all_faces": "ржЖржкржирж┐ ржХрж┐ ржирж┐рж╢рзНржЪрж┐ржд ржпрзЗ ржЖржкржирж┐ рж╕ржорж╕рзНржд ржорзБржЦ ржкрзБржирж░рж╛ржпрж╝ ржкрзНрж░ржХрзНрж░рж┐ржпрж╝рж╛ ржХрж░рждрзЗ ржЪрж╛ржи? ржПржЯрж┐ ржирж╛ржоржпрзБржХрзНржд ржмрзНржпржХрзНрждрж┐ржжрзЗрж░ржУ ржорзБржЫрзЗ ржлрзЗрж▓ржмрзЗред",
"confirm_user_password_reset": "ржЖржкржирж┐ ржХрж┐ ржирж┐рж╢рзНржЪрж┐ржд ржпрзЗ ржЖржкржирж┐ {user} ржПрж░ ржкрж╛рж╕ржУржпрж╝рж╛рж░рзНржб рж░рж┐рж╕рзЗржЯ ржХрж░рждрзЗ ржЪрж╛ржи?",
"confirm_user_pin_code_reset": "ржЖржкржирж┐ ржХрж┐ ржирж┐рж╢рзНржЪрж┐ржд ржпрзЗ ржЖржкржирж┐ {user} ржПрж░ ржкрж┐ржи ржХрзЛржб рж░рж┐рж╕рзЗржЯ ржХрж░рждрзЗ ржЪрж╛ржи?",
"create_job": "job рждрзИрж░рж┐ ржХрж░рзБржи",
"cron_expression": "ржХрзНрж░рзЛржи ржПржХрзНрж╕ржкрзНрж░рзЗрж╢ржи",
"cron_expression_description": "ржХрзНрж░рзЛржи ржлрж░рзНржорзНржпрж╛ржЯ ржмрзНржпржмрж╣рж╛рж░ ржХрж░рзЗ рж╕рзНржХрзНржпрж╛ржирж┐ржВ ржмрзНржпржмржзрж╛ржи рж╕рзЗржЯ ржХрж░рзБржиред ржЖрж░ржУ рждржерзНржпрзЗрж░ ржЬржирзНржп ржжржпрж╝рж╛ ржХрж░рзЗ ржжрзЗржЦрзБржи ржпрзЗржоржи <link>Crontab Guru</link>",
"cron_expression_presets": "ржХрзНрж░рзЛржи ржПржХрзНрж╕ржкрзНрж░рзЗрж╢ржи ржкрзНрж░рж┐рж╕рзЗржЯ",
"disable_login": "рж▓ржЧржЗржи ржЕржХрзНрж╖ржо ржХрж░рзБржи",
"duplicate_detection_job_description": "ржЕржирзБрж░рзВржк ржЫржмрж┐ рж╕ржирж╛ржХрзНржд ржХрж░рждрзЗ рж╕ржорзНржкржжржЧрзБрж▓рж┐рждрзЗ ржорзЗрж╢рж┐ржи рж▓рж╛рж░рзНржирж┐ржВ ржЪрж╛рж▓рж╛ржиред рж╕рзНржорж╛рж░рзНржЯ ржЕржирзБрж╕ржирзНржзрж╛ржирзЗрж░ ржЙржкрж░ ржирж┐рж░рзНржнрж░ ржХрж░рзЗ",
"exclusion_pattern_description": "ржПржХрзНрж╕ржХрзНрж▓рзБрж╢ржи ржкрзНржпрж╛ржЯрж╛рж░рзНржи ржмрзНржпржмрж╣рж╛рж░ ржХрж░рзЗ ржЖржкржирж┐ ржЖржкржирж╛рж░ рж▓рж╛ржЗржмрзНрж░рзЗрж░рж┐ рж╕рзНржХрзНржпрж╛ржи ржХрж░рж╛рж░ рж╕ржоржпрж╝ ржлрж╛ржЗрж▓ ржПржмржВ ржлрзЛрж▓рзНржбрж╛рж░ржЧрзБрж▓рж┐ржХрзЗ ржЙржкрзЗржХрзНрж╖рж╛ ржХрж░рждрзЗ ржкрж╛рж░ржмрзЗржиред ржпржжрж┐ ржЖржкржирж╛рж░ ржПржоржи ржлрзЛрж▓рзНржбрж╛рж░ ржерж╛ржХрзЗ ржпрзЗржЦрж╛ржирзЗ ржПржоржи ржлрж╛ржЗрж▓ ржерж╛ржХрзЗ ржпрж╛ ржЖржкржирж┐ ржЖржоржжрж╛ржирж┐ ржХрж░рждрзЗ ржЪрж╛ржи ржирж╛, ржпрзЗржоржи RAW ржлрж╛ржЗрж▓ред",
"external_library_management": "ржмрж╣рж┐рж░рж╛ржЧржд ржЧрзНрж░ржирзНржерж╛ржЧрж╛рж░ ржмрзНржпржмрж╕рзНржерж╛ржкржирж╛",
"face_detection": "ржорзБржЦ рж╕ржирж╛ржХрзНрждржХрж░ржг",
"face_detection_description": "ржорзЗрж╢рж┐ржи рж▓рж╛рж░рзНржирж┐ржВ ржмрзНржпржмрж╣рж╛рж░ ржХрж░рзЗ ржЕрзНржпрж╛рж╕рзЗржЯрзЗ ржерж╛ржХрж╛ ржорзБржЦржЧрзБрж▓рж┐ рж╕ржирж╛ржХрзНржд ржХрж░рзБржиред ржнрж┐ржбрж┐ржУржЧрзБрж▓рж┐рж░ ржЬржирзНржп, рж╢рзБржзрзБржорж╛рждрзНрж░ ржерж╛ржорзНржмржирзЗржЗрж▓ ржмрж┐ржмрзЗржЪржирж╛ ржХрж░рж╛ рж╣ржпрж╝ред \"рж░рж┐ржлрзНрж░рзЗрж╢\" (ржкрзБржирж░рж╛ржпрж╝) рж╕ржорж╕рзНржд ржЕрзНржпрж╛рж╕рзЗржЯ ржкрзНрж░ржХрзНрж░рж┐ржпрж╝рж╛ ржХрж░рзЗред \"рж░рж┐рж╕рзЗржЯ\" ржЕрждрж┐рж░рж┐ржХрзНрждржнрж╛ржмрзЗ рж╕ржорж╕рзНржд ржмрж░рзНрждржорж╛ржи ржорзБржЦрзЗрж░ ржбрзЗржЯрж╛ рж╕рж╛ржл ржХрж░рзЗред \"ржЕржирзБржкрж╕рзНржерж┐ржд\" ржЕрзНржпрж╛рж╕рзЗржЯржЧрзБрж▓рж┐ржХрзЗ рж╕рж╛рж░рж┐ржмржжрзНржз ржХрж░рзЗ ржпрж╛ ржПржЦржиржУ ржкрзНрж░ржХрзНрж░рж┐ржпрж╝рж╛ ржХрж░рж╛ рж╣ржпрж╝ржирж┐ред рж╕ржирж╛ржХрзНржд ржХрж░рж╛ ржорзБржЦржЧрзБрж▓рж┐ржХрзЗ ржлрзЗрж╕рж┐ржпрж╝рж╛рж▓ рж░рж┐ржХржЧржирж┐рж╢ржирзЗрж░ ржЬржирзНржп рж╕рж╛рж░рж┐ржмржжрзНржз ржХрж░рж╛ рж╣ржмрзЗ, ржлрзЗрж╕рж┐ржпрж╝рж╛рж▓ ржбрж┐ржЯрзЗржХрж╢ржи рж╕ржорзНржкрзВрж░рзНржг рж╣ржУржпрж╝рж╛рж░ ржкрж░рзЗ, ржмрж┐ржжрзНржпржорж╛ржи ржмрж╛ ржирждрзБржи ржмрзНржпржХрзНрждрж┐ржжрзЗрж░ ржоржзрзНржпрзЗ ржЧрзЛрж╖рзНржарзАржмржжрзНржз ржХрж░рзЗред",
"facial_recognition_job_description": "рж╢ржирж╛ржХрзНржд ржХрж░рж╛ ржорзБржЦржЧрзБрж▓рж┐ржХрзЗ ржорж╛ржирзБрж╖рзЗрж░ ржоржзрзНржпрзЗ ржЧрзЛрж╖рзНржарзАржнрзБржХрзНржд ржХрж░рзБржиред ржорзБржЦ рж╕ржирж╛ржХрзНрждржХрж░ржг рж╕ржорзНржкрзВрж░рзНржг рж╣ржУржпрж╝рж╛рж░ ржкрж░рзЗ ржПржЗ ржзрж╛ржкржЯрж┐ ржЪрж▓рзЗред \"рж░рж┐рж╕рзЗржЯ\" (ржкрзБржирж░рж╛ржпрж╝) рж╕ржорж╕рзНржд ржорзБржЦржХрзЗ ржХрзНрж▓рж╛рж╕рзНржЯрж╛рж░ ржХрж░рзЗред \"ржЕржирзБржкрж╕рзНржерж┐ржд\" ржорзБржЦржЧрзБрж▓рж┐ржХрзЗ рж╕рж╛рж░рж┐рждрзЗ рж░рж╛ржЦрзЗ ржпрзЗржЦрж╛ржирзЗ ржХрзЛржиржУ ржмрзНржпржХрзНрждрж┐ржХрзЗ ржмрж░рж╛ржжрзНржж ржХрж░рж╛ рж╣ржпрж╝ржирж┐ред",
"failed_job_command": "ржХржорж╛ржирзНржб {command} ржХрж╛ржЬрзЗрж░ ржЬржирзНржп ржмрзНржпрж░рзНрже рж╣ржпрж╝рзЗржЫрзЗ: {job}",
"force_delete_user_warning": "рж╕рждрж░рзНржХрждрж╛: ржПржЯрж┐ ржмрзНржпржмрж╣рж╛рж░ржХрж╛рж░рзА ржПржмржВ рж╕ржорж╕рзНржд рж╕ржорзНржкржж ржЕржмрж┐рж▓ржорзНржмрзЗ рж╕рж░рж┐ржпрж╝рзЗ ржлрзЗрж▓ржмрзЗред ржПржЯрж┐ ржкрзВрж░рзНржмрж╛ржмрж╕рзНржерж╛ржпрж╝ ржлрзЗрж░рж╛ржирзЛ ржпрж╛ржмрзЗ ржирж╛ ржПржмржВ ржлрж╛ржЗрж▓ржЧрзБрж▓рж┐ ржкрзБржирж░рзБржжрзНржзрж╛рж░ ржХрж░рж╛ ржпрж╛ржмрзЗ ржирж╛ред",
"image_format": "ржлрж░ржорзНржпрж╛ржЯ",
"image_format_description": "WebP JPEG ржПрж░ рждрзБрж▓ржирж╛рзЯ ржЫрзЛржЯ ржлрж╛ржЗрж▓ рждрзИрж░рж┐ ржХрж░рзЗ, ржХрж┐ржирзНрждрзБ ржПржиржХрзЛржб ржХрж░рждрзЗ ржзрзАрж░ред",
"image_fullsize_description": "ржЬрзБржо ржЗржи ржХрж░рж╛рж░ рж╕ржоржпрж╝ ржмрзНржпржмрж╣рзГржд рж╕рзНржЯрзНрж░рж┐ржкржб ржорзЗржЯрж╛ржбрзЗржЯрж╛ рж╕рж╣ ржкрзВрж░рзНржг ржЖржХрж╛рж░рзЗрж░ ржЫржмрж┐",
"image_fullsize_enabled": "ржкрзВрж░рзНржг-ржЖржХрж╛рж░рзЗрж░ ржЫржмрж┐ рждрзИрж░рж┐ рж╕ржХрзНрж╖ржо ржХрж░рзБржи",
"image_fullsize_enabled_description": "ржУржпрж╝рзЗржм-ржмрж╛ржирзНржзржм ржиржпрж╝ ржПржоржи ржлрж░рзНржорзНржпрж╛ржЯрзЗрж░ ржЬржирзНржп ржкрзВрж░рзНржг-ржЖржХрж╛рж░рзЗрж░ ржЫржмрж┐ рждрзИрж░рж┐ ржХрж░рзБржиред \"ржПржоржмрзЗржбрзЗржб ржкрзНрж░рж┐ржнрж┐ржЙ ржкржЫржирзНржж ржХрж░рзБржи\" рж╕ржХрзНрж╖ржо ржХрж░рж╛ ржерж╛ржХрж▓рзЗ, рж░рзВржкрж╛ржирзНрждрж░ ржЫрж╛ржбрж╝рж╛ржЗ ржПржоржмрзЗржбрзЗржб ржкрзНрж░рж┐ржнрж┐ржЙ рж╕рж░рж╛рж╕рж░рж┐ ржмрзНржпржмрж╣рж╛рж░ ржХрж░рж╛ рж╣ржпрж╝ред JPEG-ржПрж░ ржорждрзЛ ржУржпрж╝рзЗржм-ржмрж╛ржирзНржзржм ржлрж░рзНржорзНржпрж╛ржЯржЧрзБрж▓рж┐ржХрзЗ ржкрзНрж░ржнрж╛ржмрж┐ржд ржХрж░рзЗ ржирж╛ред",
"image_fullsize_quality_description": "ржкрзВрж░рзНржг-ржЖржХрж╛рж░рзЗрж░ ржЫржмрж┐рж░ ржорж╛ржи рзз-рззрзжрзжред ржЙржЪрзНржЪрждрж░ рж╣рж▓рзЗ ржнрж╛рж▓рзЛ, ржХрж┐ржирзНрждрзБ ржЖрж░ржУ ржмржбрж╝ ржлрж╛ржЗрж▓ рждрзИрж░рж┐ рж╣ржпрж╝ред",
"image_fullsize_title": "ржкрзВрж░рзНржг-ржЖржХрж╛рж░рзЗрж░ ржЪрж┐рждрзНрж░ рж╕рзЗржЯрж┐ржВрж╕",
"image_prefer_embedded_preview": "ржПржорзНржмрзЗржб ржХрж░рж╛ ржкрзНрж░рж┐ржнрж┐ржЙ ржкржЫржирзНржж ржХрж░рзБржи",
"image_prefer_embedded_preview_setting_description": "ржЫржмрж┐ ржкрзНрж░ржХрзНрж░рж┐ржпрж╝рж╛ржХрж░ржгрзЗрж░ ржЬржирзНржп ржПржмржВ ржпржЦржиржЗ ржЙржкрж▓ржмрзНржз ржерж╛ржХржмрзЗ рждржЦржи RAW ржлржЯрзЛрждрзЗ ржПржоржмрзЗржбрзЗржб ржкрзНрж░рж┐ржнрж┐ржЙ ржмрзНржпржмрж╣рж╛рж░ ржХрж░рзБржиред ржПржЯрж┐ ржХрж┐ржЫрзБ ржЫржмрж┐рж░ ржЬржирзНржп ржЖрж░ржУ рж╕ржарж┐ржХ рж░ржЩ рждрзИрж░рж┐ ржХрж░рждрзЗ ржкрж╛рж░рзЗ, рждржмрзЗ ржкрзНрж░рж┐ржнрж┐ржЙржпрж╝рзЗрж░ ржорж╛ржи ржХрзНржпрж╛ржорзЗрж░рж╛-ржирж┐рж░рзНржнрж░ ржПржмржВ ржЫржмрж┐рждрзЗ ржЖрж░ржУ ржХржорзНржкрзНрж░рзЗрж╢ржи ржЖрж░рзНржЯрж┐ржлрзНржпрж╛ржХрзНржЯ ржерж╛ржХрждрзЗ ржкрж╛рж░рзЗред",
"image_prefer_wide_gamut": "ржкрзНрж░рж╢рж╕рзНржд ржкрж░рж┐рж╕рж░ ржкржЫржирзНржж ржХрж░рзБржи",
"image_prefer_wide_gamut_setting_description": "ржерж╛ржорзНржмржирзЗржЗрж▓рзЗрж░ ржЬржирзНржп ржбрж┐рж╕ржкрзНрж▓рзЗ P3 ржмрзНржпржмрж╣рж╛рж░ ржХрж░рзБржиред ржПржЯрж┐ ржкрзНрж░рж╢рж╕рзНржд рж░ржЩрзЗрж░ рж╕рзНржерж╛ржи рж╕рж╣ ржЫржмрж┐рж░ ржкрзНрж░рж╛ржгржмржирзНрждрждрж╛ ржЖрж░ржУ ржнрж╛рж▓ржнрж╛ржмрзЗ рж╕ржВрж░ржХрзНрж╖ржг ржХрж░рзЗ, рждржмрзЗ ржкрзБрж░рж╛ржирзЛ ржмрзНрж░рж╛ржЙржЬрж╛рж░ рж╕ржВрж╕рзНржХрж░ржг рж╕рж╣ ржкрзБрж░рж╛ржирзЛ ржбрж┐ржнрж╛ржЗрж╕ржЧрзБрж▓рж┐рждрзЗ ржЫржмрж┐ржЧрзБрж▓рж┐ ржнрж┐ржирзНржиржнрж╛ржмрзЗ ржкрзНрж░ржжрж░рзНрж╢рж┐ржд рж╣рждрзЗ ржкрж╛рж░рзЗред рж░ржЩрзЗрж░ ржкрж░рж┐ржмрж░рзНрждржи ржПржбрж╝рж╛рждрзЗ sRGB ржЫржмрж┐ржЧрзБрж▓рж┐ржХрзЗ sRGB рж╣рж┐рж╕рж╛ржмрзЗ рж░рж╛ржЦрж╛ рж╣ржпрж╝ред",
"image_preview_description": "рж╕рзНржЯрзНрж░рж┐ржкржб ржорзЗржЯрж╛ржбрзЗржЯрж╛ рж╕рж╣ ржорж╛ржЭрж╛рж░рж┐ ржЖржХрж╛рж░рзЗрж░ ржЫржмрж┐, ржПржХржЯрж┐ ржПржХржХ рж╕ржорзНржкржж ржжрзЗржЦрж╛рж░ рж╕ржоржпрж╝ ржПржмржВ ржорзЗрж╢рж┐ржи рж▓рж╛рж░рзНржирж┐ржВржпрж╝рзЗрж░ ржЬржирзНржп ржмрзНржпржмрж╣рзГржд рж╣ржпрж╝",
"image_preview_quality_description": "рзз-рззрзжрзж ржПрж░ ржоржзрзНржпрзЗ ржкрзНрж░рж┐ржнрж┐ржЙ ржХрзЛржпрж╝рж╛рж▓рж┐ржЯрж┐ред ржмрзЗрж╢рж┐ рж╣рж▓рзЗ ржнрж╛рж▓рзЛ, ржХрж┐ржирзНрждрзБ ржмржбрж╝ ржлрж╛ржЗрж▓ рждрзИрж░рж┐ рж╣ржпрж╝ ржПржмржВ ржЕрзНржпрж╛ржкрзЗрж░ ржкрзНрж░рждрж┐ржХрзНрж░рж┐ржпрж╝рж╛рж╢рзАрж▓рждрж╛ ржХржорж╛рждрзЗ ржкрж╛рж░рзЗред ржХржо ржорж╛ржи рж╕рзЗржЯ ржХрж░рж▓рзЗ ржорзЗрж╢рж┐ржи рж▓рж╛рж░рзНржирж┐ржВ ржХрзЛржпрж╝рж╛рж▓рж┐ржЯрж┐рж░ ржЙржкрж░ ржкрзНрж░ржнрж╛ржм ржкржбрж╝рждрзЗ ржкрж╛рж░рзЗред",
"image_preview_title": "ржкрзНрж░рж┐ржнрж┐ржЙ рж╕рзЗржЯрж┐ржВрж╕",
"image_quality": "ржЧрзБржгржорж╛ржи",
"image_resolution": "рж░рзЗржЬрзЛрж▓рж┐ржЙрж╢ржи",
"image_resolution_description": "ржЙржЪрзНржЪ рж░рзЗржЬрзЛрж▓рж┐ржЙрж╢ржирзЗрж░ ржХрзНрж╖рзЗрждрзНрж░рзЗ ржЖрж░ржУ ржмрж┐рж╕рзНрждрж╛рж░рж┐ржд рждржерзНржп рж╕ржВрж░ржХрзНрж╖ржг ржХрж░рж╛ рж╕ржорзНржнржм ржХрж┐ржирзНрждрзБ ржПржиржХрзЛржб ржХрж░рждрзЗ ржмрзЗрж╢рж┐ рж╕ржоржпрж╝ рж▓рж╛ржЧрзЗ, ржлрж╛ржЗрж▓рзЗрж░ ржЖржХрж╛рж░ ржмржбрж╝ рж╣ржпрж╝ ржПржмржВ ржЕрзНржпрж╛ржкрзЗрж░ ржкрзНрж░рждрж┐ржХрзНрж░рж┐ржпрж╝рж╛рж╢рзАрж▓рждрж╛ ржХржорж╛рждрзЗ ржкрж╛рж░рзЗред",
"image_settings": "ржЪрж┐рждрзНрж░ рж╕рзЗржЯрж┐ржВрж╕",
"image_settings_description": "рждрзИрж░рж┐ ржХрж░рж╛ ржЫржмрж┐рж░ ржорж╛ржи ржПржмржВ рж░рзЗржЬрзЛрж▓рж┐ржЙрж╢ржи ржкрж░рж┐ржЪрж╛рж▓ржирж╛ ржХрж░рзБржи",
"image_thumbnail_description": "ржорзЗржЯрж╛ржбрзЗржЯрж╛ ржмрж╛ржж ржжрзЗржУрзЯрж╛ ржЫрзЛржЯ ржерж╛ржорзНржмржирзЗржЗрж▓, ржорзВрж▓ ржЯрж╛ржЗржорж▓рж╛ржЗржирзЗрж░ ржорждрзЛ ржЫржмрж┐рж░ ржЧрзНрж░рзБржк ржжрзЗржЦрж╛рж░ рж╕ржоржпрж╝ ржмрзНржпржмрж╣рзГржд рж╣рзЯ",
"image_thumbnail_quality_description": "ржерж╛ржорзНржмржирзЗржЗрж▓рзЗрж░ ржорж╛ржи рзз-рззрзжрзжред ржмрзЗрж╢рж┐ рж╣рж▓рзЗ ржнрж╛рж▓рзЛ, ржХрж┐ржирзНрждрзБ ржмржбрж╝ ржлрж╛ржЗрж▓ рждрзИрж░рж┐ рж╣ржпрж╝ ржПржмржВ ржЕрзНржпрж╛ржкрзЗрж░ ржкрзНрж░рждрж┐ржХрзНрж░рж┐ржпрж╝рж╛рж╢рзАрж▓рждрж╛ ржХржорж╛рждрзЗ ржкрж╛рж░рзЗред",
"image_thumbnail_title": "ржерж╛ржорзНржмржирзЗрж▓ рж╕рзЗржЯрж┐ржВрж╕",
"job_concurrency": "{job} ржХржиржХрж╛рж░рзЗржирзНрж╕рж┐",
"job_created": "Job рждрзИрж░рж┐ рж╣ржпрж╝рзЗржЫрзЗ",
"job_not_concurrency_safe": "ржПржЗ ржХрж╛ржЬржЯрж┐ рж╕ржоржХрж╛рж▓рзАржи-ржирж┐рж░рж╛ржкржж ржиржпрж╝ред",
"job_settings": "ржХрж╛ржЬрзЗрж░ рж╕рзЗржЯрж┐ржВрж╕",
"job_settings_description": "ржХрж╛ржЬрзЗрж░ рж╕ржорж╛ржирзНрждрж░рж╛рж▓рждрж╛ ржкрж░рж┐ржЪрж╛рж▓ржирж╛ ржХрж░рзБржи",
"job_status": "ржЪрж╛ржХрж░рж┐рж░ ржЕржмрж╕рзНржерж╛"
}
}
+21 -3
View File
@@ -166,6 +166,10 @@
"metadata_settings_description": "Administrar la configuraci├│ de les metadades",
"migration_job": "Migraci├│",
"migration_job_description": "Migra les miniatures d'elements i cares cap a la nova estructura de carpetes",
"nightly_tasks_cluster_new_faces_setting": "Agrupa cares noves",
"nightly_tasks_database_cleanup_setting": "Tasques de neteja de la base de dades",
"nightly_tasks_database_cleanup_setting_description": "Netegeu les dades antigues i caducades de la base de dades",
"nightly_tasks_missing_thumbnails_setting": "Generar les miniatures restants",
"no_paths_added": "No s'ha afegit cap ruta",
"no_pattern_added": "Cap patr├│ aplicat",
"note_apply_storage_label_previous_assets": "Nota: Per aplicar l'etiquetatge d'emmagatzematge a elements pujats pr├иviament, executeu la",
@@ -196,6 +200,8 @@
"oauth_mobile_redirect_uri": "URI de redirecci├│ m├▓bil",
"oauth_mobile_redirect_uri_override": "Sobreescriu l'URI de redirecci├│ m├▓bil",
"oauth_mobile_redirect_uri_override_description": "Habilita quan el prove├пdor d'OAuth no permet una URI m├▓bil, com ara ''{callback}''",
"oauth_role_claim": "Concessi├│ de rol",
"oauth_role_claim_description": "Atorgar acc├йs d'administrador autom├аticament segons la pres├иncia d'aquesta concessi├│. La concessi├│ pot ser 'usuari' o 'admin'.",
"oauth_settings": "OAuth",
"oauth_settings_description": "Gestiona la configuraci├│ de l'inici de sessi├│ OAuth",
"oauth_settings_more_details": "Per a m├йs detalls sobre aquesta funcionalitat, consulteu la <link>documentaci├│</link>.",
@@ -244,6 +250,7 @@
"storage_template_migration_info": "Les extensions es convertiran a min├║scules. Els canvis de plantilla nom├йs s'aplicaran a nous elements. Per aplicar la plantilla rectroactivament a elements pujats pr├иviament, executeu la <link>{job}</link>.",
"storage_template_migration_job": "Tasca de migraci├│ de la plantilla d'emmagatzematge",
"storage_template_more_details": "Per obtenir m├йs detalls sobre aquesta funci├│, consulteu la <template-link>Storage Template</template-link> i les seves <implications-link>implications</implications-link>",
"storage_template_onboarding_description_v2": "Un cop habilitada, aquesta funci├│ organitzar├а autom├аticament els fitxers a partir d'una plantilla definida per l'usuari. Per a m├йs informaci├│, podeu consultar la <link>documentaci├│</link>.",
"storage_template_path_length": "L├нmit aproximat de longitud de la ruta: <b>{length, number}</b>/{limit, number}",
"storage_template_settings": "Plantilla d'emmagatzematge",
"storage_template_settings_description": "Gestiona l'estructura de les carpetes i el nom del fitxers dels elements pujats",
@@ -359,7 +366,7 @@
"advanced_settings_enable_alternate_media_filter_subtitle": "Feu servir aquesta opci├│ per filtrar els continguts multim├иdia durant la sincronitzaci├│ segons criteris alternatius. Nom├йs proveu-ho si teniu problemes amb l'aplicaci├│ per detectar tots els ├аlbums.",
"advanced_settings_enable_alternate_media_filter_title": "Utilitza el filtre de sincronitzaci├│ d'├аlbums de dispositius alternatius",
"advanced_settings_log_level_title": "Nivell de registre: {level}",
"advanced_settings_prefer_remote_subtitle": "Alguns dispositius s├│n molt lents en carregar miniatures dels elements del dispositiu. Activeu aquest par├аmetre per carregar imatges remotes en el seu lloc.",
"advanced_settings_prefer_remote_subtitle": "Alguns dispositius s├│n molt lents en carregar miniatures dels elements locals. Activeu aquest par├аmetre per carregar imatges remotes en el seu lloc.",
"advanced_settings_prefer_remote_title": "Prefereix imatges remotes",
"advanced_settings_proxy_headers_subtitle": "Definiu les cap├зaleres de proxy que Immich per enviar amb cada sol┬╖licitud de xarxa",
"advanced_settings_proxy_headers_title": "Cap├зaleres de proxy",
@@ -426,6 +433,7 @@
"app_settings": "Configuraci├│ de l'app",
"appears_in": "Apareix a",
"archive": "Arxiu",
"archive_action_prompt": "{count} afegit a Arxiu",
"archive_or_unarchive_photo": "Arxivar o desarxivar fotografia",
"archive_page_no_archived_assets": "No s'ha trobat res arxivat",
"archive_page_title": "Arxiu({count})",
@@ -463,7 +471,6 @@
"assets": "Elements",
"assets_added_count": "{count, plural, one {Afegit un element} other {Afegits # elements}}",
"assets_added_to_album_count": "{count, plural, one {Afegit un element} other {Afegits # elements}} a l'├аlbum",
"assets_added_to_name_count": "{count, plural, one {S'ha afegit # recurs} other {S'han afegit # recursos}} a {hasName, select, true {<b>{name}</b>} other {new album}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Asset} other {Assets}} no es pot afegir a l'├аlbum",
"assets_count": "{count, plural, one {# recurs} other {# recursos}}",
"assets_deleted_permanently": "{count} element(s) esborrats permanentment",
@@ -702,7 +709,7 @@
"daily_title_text_date": "E, dd MMM",
"daily_title_text_date_year": "E, dd MMM, yyyy",
"dark": "Fosc",
"darkTheme": "Activa/desactiva el tema fosc",
"dark_theme": "Canviar a tema fosc",
"date_after": "Data posterior a",
"date_and_time": "Data i hora",
"date_before": "Data anterior a",
@@ -718,6 +725,7 @@
"default_locale": "Localitzaci├│ predeterminada",
"default_locale_description": "Format de dates i n├║meros segons la configuraci├│ del navegador",
"delete": "Esborra",
"delete_action_prompt": "{count} eliminats permanentment",
"delete_album": "Esborra l'├аlbum",
"delete_api_key_prompt": "Esteu segurs que voleu eliminar aquesta clau API?",
"delete_dialog_alert": "Aquests elements seran eliminats de manera permanent d'Immich i del vostre dispositiu",
@@ -798,6 +806,7 @@
"edit_key": "Edita clau",
"edit_link": "Edita enlla├з",
"edit_location": "Edita ubicaci├│",
"edit_location_action_prompt": "{count} ubicacions editades",
"edit_location_dialog_title": "Ubicaci├│",
"edit_name": "Edita el nom",
"edit_people": "Edita la gent",
@@ -983,6 +992,7 @@
"failed_to_load_assets": "Error carregant recursos",
"failed_to_load_folder": "No s'ha pogut carregar la carpeta",
"favorite": "Preferit",
"favorite_action_prompt": "{count} afegit a Favorits",
"favorite_or_unfavorite_photo": "Foto preferida o no preferida",
"favorites": "Preferits",
"favorites_page_no_favorites": "No s'han trobat preferits",
@@ -1149,6 +1159,7 @@
"locked_folder": "Carpeta bloquejada",
"log_out": "Tanca la sessi├│",
"log_out_all_devices": "Tanqueu la sessi├│ de tots els dispositius",
"logged_in_as": "Sessi├│ iniciada com a {user}",
"logged_out_all_devices": "S'ha tancat la sessi├│ de tots els dispositius",
"logged_out_device": "Dispositiu tancat",
"login": "Iniciar sessi├│",
@@ -1244,6 +1255,7 @@
"more": "M├йs",
"move": "Moure",
"move_off_locked_folder": "Moure fora de la carpeta bloquejada",
"move_to_lock_folder_action_prompt": "{count} afegides a la carpeta protegida",
"move_to_locked_folder": "Moure a la carpeta bloquejada",
"move_to_locked_folder_confirmation": "Aquestes fotos i v├нdeos seran eliminades de tots els ├аlbums, i nom├йs podran ser vistes des de la carpeta bloquejada",
"moved_to_archive": "S'han mogut {count, plural, one {# asset} other {# assets}} a l'arxiu",
@@ -1494,6 +1506,7 @@
"remove_deleted_assets": "Suprimeix fitxers fora de l├нnia",
"remove_from_album": "Treu de l'├аlbum",
"remove_from_favorites": "Eliminar dels preferits",
"remove_from_lock_folder_action_prompt": "{count} eliminades de la carpeta protegida",
"remove_from_locked_folder": "Elimina de la carpeta bloquejada",
"remove_from_locked_folder_confirmation": "Segur que vols moure aquestes fotos i v├нdeos fora de la carpeta bloquejada? Seran visibles a la teva biblioteca.",
"remove_from_shared_link": "Eliminar de l'enlla├з compartit",
@@ -1606,6 +1619,7 @@
"select_album_cover": "Seleccionar la portada de l'├аlbum",
"select_all": "Selecciona-ho tot",
"select_all_duplicates": "Seleccioneu tots els duplicats",
"select_all_in": "Selecciona tot en {group}",
"select_avatar_color": "Tria color de l'avatar",
"select_face": "Selecciona cara",
"select_featured_photo": "Selecciona foto principal",
@@ -1835,6 +1849,7 @@
"total": "Total",
"total_usage": "├Ъs total",
"trash": "Paperera",
"trash_action_prompt": "{count} mogudes a la brossa",
"trash_all": "Envia-ho tot a la paperera",
"trash_count": "Paperera {count, number}",
"trash_delete_asset": "Esborra/Elimina element",
@@ -1852,9 +1867,11 @@
"unable_to_change_pin_code": "No es pot canviar el codi PIN",
"unable_to_setup_pin_code": "No s'ha pogut configurar el codi PIN",
"unarchive": "Desarxivar",
"unarchive_action_prompt": "{count} eliminades de l'arxiu",
"unarchived_count": "{count, plural, other {# elements desarxivats}}",
"undo": "Desfer",
"unfavorite": "Reverteix preferit",
"unfavorite_action_prompt": "{count} eliminades de preferits",
"unhide_person": "Mostra persona",
"unknown": "Desconegut",
"unknown_country": "Pa├нs Desconegut",
@@ -1870,6 +1887,7 @@
"unsaved_change": "Canvi no desat",
"unselect_all": "Deselecciona-ho tot",
"unselect_all_duplicates": "Desmarqueu tots els duplicats",
"unselect_all_in": "Desseleccionar tots els elements de {group}",
"unstack": "Desapila",
"unstacked_assets_count": "No apilat {count, plural, one {# recurs} other {# recursos}}",
"up_next": "Pr├▓xim",
+56 -13
View File
@@ -44,7 +44,7 @@
"backup_database": "Vytvo┼Щit v├╜pis datab├бze",
"backup_database_enable_description": "Povolit v├╜pisy z datab├бze",
"backup_keep_last_amount": "Po─Нet p┼Щedchoz├нch v├╜pis┼п, kter├й se maj├н ponechat",
"backup_settings": "Nastaven├н v├╜pisu datab├бze",
"backup_settings": "Z├бlohov├бn├н datab├бze",
"backup_settings_description": "Spr├бva nastaven├н v├╜pisu datab├бze.",
"cleared_jobs": "Hotov├й ├║lohy pro: {job}",
"config_set_by_file": "Konfigurace je aktu├бln─Ы prov├бd─Ыna konfigura─Нn├нm souborem",
@@ -166,6 +166,20 @@
"metadata_settings_description": "Spr├бva nastaven├н metadat",
"migration_job": "Migrace",
"migration_job_description": "Migrace miniatur sn├нmk┼п a obli─Нej┼п do nejnov─Ыj┼б├н struktury slo┼╛ek",
"nightly_tasks_cluster_faces_setting_description": "Spustit rozpozn├бv├бn├н obli─Нeje na nov─Ы nalezen├╜ch obli─Нej├нch",
"nightly_tasks_cluster_new_faces_setting": "Seskupit nov├й tv├б┼Щe",
"nightly_tasks_database_cleanup_setting": "├Ъlohy ─Нi┼бt─Ыn├н datab├бze",
"nightly_tasks_database_cleanup_setting_description": "Vy─Нistit datab├бzi od star├╜ch dat, jejich┼╛ platnost vypr┼бela",
"nightly_tasks_generate_memories_setting": "Vytv├б┼Щen├н vzpom├нnek",
"nightly_tasks_generate_memories_setting_description": "Vytv├б┼Щen├н nov├╜ch vzpom├нnek z polo┼╛ek",
"nightly_tasks_missing_thumbnails_setting": "Generovat chyb─Ыj├нc├н miniatury",
"nightly_tasks_missing_thumbnails_setting_description": "┼Шadit polo┼╛ky bez miniatur do fronty pro generov├бn├н miniatur",
"nightly_tasks_settings": "No─Нn├н ├║lohy",
"nightly_tasks_settings_description": "Spr├бva no─Нn├нch ├║kol┼п",
"nightly_tasks_start_time_setting": "─Мas zah├бjen├н",
"nightly_tasks_start_time_setting_description": "─Мas, kdy server spust├н no─Нn├н ├║lohy",
"nightly_tasks_sync_quota_usage_setting": "Synchronizace vyu┼╛it├н kv├│ty",
"nightly_tasks_sync_quota_usage_setting_description": "Aktualizovat kv├│tu ├║lo┼╛i┼бt─Ы u┼╛ivatele na z├бklad─Ы aktu├бln├нho vyu┼╛it├н",
"no_paths_added": "Nebyly p┼Щid├бny ┼╛├бdn├й cesty",
"no_pattern_added": "Nebyl p┼Щid├бn ┼╛├бdn├╜ vzor",
"note_apply_storage_label_previous_assets": "Upozorn─Ыn├н: Pro uplatn─Ыn├н ┼аt├нtku ├║lo┼╛i┼бt─Ы na d┼Щ├нve nahran├й polo┼╛ky spus┼еte",
@@ -196,6 +210,8 @@
"oauth_mobile_redirect_uri": "Mobiln├н p┼Щesm─Ыrov├бn├н URI",
"oauth_mobile_redirect_uri_override": "P┼Щepsat mobiln├н p┼Щesm─Ыrov├бn├н URI",
"oauth_mobile_redirect_uri_override_description": "Povolit, pokud poskytovatel OAuth nepovoluje mobiln├н URI, nap┼Щ├нklad ''{callback}''",
"oauth_role_claim": "Deklarace Role",
"oauth_role_claim_description": "Automaticky ud─Ыlit p┼Щ├нstup spr├бvce na z├бklad─Ы p┼Щ├нtomnosti t├йto deklarace. Deklarace m┼п┼╛e m├нt hodnotu 'user' nebo 'admin'.",
"oauth_settings": "OAuth",
"oauth_settings_description": "Spr├бva nastaven├н OAuth p┼Щihl├б┼бen├н",
"oauth_settings_more_details": "Dal┼б├н podrobnosti o t├йto funkci naleznete v <link>dokumentaci</link>.",
@@ -357,10 +373,12 @@
"admin_password": "Heslo spr├бvce",
"administration": "Administrace",
"advanced": "Pokro─Нil├й",
"advanced_settings_beta_timeline_subtitle": "Vyzkou┼бejte nov├й prost┼Щed├н aplikace",
"advanced_settings_beta_timeline_title": "─Мasov├б osa beta verze",
"advanced_settings_enable_alternate_media_filter_subtitle": "Tuto mo┼╛nost pou┼╛ijte k filtrov├бn├н m├йdi├н b─Ыhem synchronizace na z├бklad─Ы alternativn├нch krit├йri├н. Tuto mo┼╛nost vyzkou┼бejte pouze v p┼Щ├нpad─Ы, ┼╛e m├бte probl├йmy s detekc├н v┼бech alb v aplikaci.",
"advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENT├БLN├Н] Pou┼╛├нt alternativn├н filtr pro synchronizaci alb za┼Щ├нzen├н",
"advanced_settings_log_level_title": "├Ъrove┼И protokolov├бn├н: {level}",
"advanced_settings_prefer_remote_subtitle": "U n─Ыkter├╜ch za┼Щ├нzen├н je na─Н├нt├бn├н miniatur z prost┼Щedk┼п v za┼Щ├нzen├н velmi pomal├й. Aktivujte toto nastaven├н, aby se m├нsto toho na─Н├нtaly vzd├бlen├й obr├бzky.",
"advanced_settings_prefer_remote_subtitle": "U n─Ыkter├╜ch za┼Щ├нzen├н je na─Н├нt├бn├н miniatur z lok├бln├нch prost┼Щedk┼п velmi pomal├й. Aktivujte toto nastaven├н, aby se m├нsto toho na─Н├нtaly vzd├бlen├й obr├бzky.",
"advanced_settings_prefer_remote_title": "Preferovat vzd├бlen├й obr├бzky",
"advanced_settings_proxy_headers_subtitle": "Definice hlavi─Нek proxy serveru, kter├й by m─Ыl Immich odes├нlat s ka┼╛d├╜m s├н┼еov├╜m po┼╛adavkem",
"advanced_settings_proxy_headers_title": "Proxy hlavi─Нky",
@@ -388,6 +406,7 @@
"album_options": "Mo┼╛nosti alba",
"album_remove_user": "Odebrat u┼╛ivatele?",
"album_remove_user_confirmation": "Opravdu chcete odebrat u┼╛ivatele {user}?",
"album_search_not_found": "Nebyla nalezena ┼╛├бdn├б alba odpov├нdaj├нc├н va┼бemu hled├бn├н",
"album_share_no_users": "Z┼Щejm─Ы jste toto album sd├нleli se v┼бemi u┼╛ivateli, nebo nem├бte ┼╛├бdn├йho u┼╛ivatele, se kter├╜m byste ho mohli sd├нlet.",
"album_updated": "Album aktualizov├бno",
"album_updated_setting_description": "Dost├бvat e-mailov├б ozn├бmen├н o nov├╜ch polo┼╛k├бch sd├нlen├йho alba",
@@ -407,6 +426,7 @@
"albums_default_sort_order": "V├╜choz├н ┼Щazen├н alb",
"albums_default_sort_order_description": "V├╜choz├н ┼Щazen├н polo┼╛ek p┼Щi vytv├б┼Щen├н nov├╜ch alb.",
"albums_feature_description": "Sb├нrky polo┼╛ek, kter├й lze sd├нlet s ostatn├нmi u┼╛ivateli.",
"albums_on_device_count": "Alba v za┼Щ├нzen├н ({count})",
"all": "V┼бe",
"all_albums": "V┼бechna alba",
"all_people": "V┼бichni lid├й",
@@ -427,7 +447,8 @@
"app_settings": "Aplikace",
"appears_in": "Vyskytuje se v",
"archive": "Archiv",
"archive_or_unarchive_photo": "Archivovat nebo odarchivovat fotku",
"archive_action_prompt": "{count} p┼Щidan├╜ch do archivu",
"archive_or_unarchive_photo": "P┼Щidat nebo odebrat fotku z archivu",
"archive_page_no_archived_assets": "Nebyla nalezena ┼╛├бdn├б archivovan├б m├йdia",
"archive_page_title": "Archiv ({count})",
"archive_size": "Velikost archivu",
@@ -464,14 +485,13 @@
"assets": "Polo┼╛ky",
"assets_added_count": "{count, plural, one {P┼Щid├бna # polo┼╛ka} few {P┼Щid├бny # polo┼╛ky} other {P┼Щid├бno # polo┼╛ek}}",
"assets_added_to_album_count": "Do alba {count, plural, one {byla p┼Щid├бna # polo┼╛ka} few {byly p┼Щid├бny # polo┼╛ky} other {bylo p┼Щid├бno # polo┼╛ek}}",
"assets_added_to_name_count": "{count, plural, one {P┼Щid├бna # polo┼╛ka} few {P┼Щid├бny # polo┼╛ky} other {P┼Щid├бno # polo┼╛ek}} do {hasName, select, true {alba <b>{name}</b>} other {nov├йho alba}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Polo┼╛ku} other {Polo┼╛ky}} nelze p┼Щidat do alba",
"assets_count": "{count, plural, one {# polo┼╛ka} few {# polo┼╛ky} other {# polo┼╛ek}}",
"assets_deleted_permanently": "{count} polo┼╛ek trvale odstran─Ыno",
"assets_deleted_permanently_from_server": "{count} polo┼╛ek trvale odstran─Ыno z Immich serveru",
"assets_downloaded_failed": "{count, plural, one {Sta┼╛en # soubor - {error} soubor┼п selhalo} few {Sta┼╛eny # soubory - {error} soubor┼п selhalo} other {Sta┼╛eno # soubor┼п - {error} soubor┼п selhalo}}",
"assets_downloaded_successfully": "{count, plural, one {├Ъsp─Ы┼бn─Ы sta┼╛en # soubor} few {├Ъsp─Ы┼бn─Ы sta┼╛eny # soubory} other {├Ъsp─Ы┼бn─Ы sta┼╛eno # soubor┼п}}",
"assets_moved_to_trash_count": "Do ko┼бe {count, plural, one {p┼Щesunuta # polo┼╛ka} few {p┼Щesunuty # polo┼╛ky} other {p┼Щesunuto # polo┼╛ek}}",
"assets_moved_to_trash_count": "{count, plural, one {# polo┼╛ka p┼Щesunuta} few {# polo┼╛ky p┼Щesunuty} other {# polo┼╛ek p┼Щesunuto}} do ko┼бe",
"assets_permanently_deleted_count": "Trvale {count, plural, one {smaz├бna # polo┼╛ka} few {smaz├бny # polo┼╛ky} other {smaz├бno # polo┼╛ek}}",
"assets_removed_count": "{count, plural, one {Odstran─Ыna # polo┼╛ka} few {Odstran─Ыny # polo┼╛ky} other {Odstran─Ыno # polo┼╛ek}}",
"assets_removed_permanently_from_device": "{count} polo┼╛ek trvale odstran─Ыno z va┼бeho za┼Щ├нzen├н",
@@ -587,6 +607,7 @@
"cancel": "Zru┼бit",
"cancel_search": "Zru┼бit vyhled├бv├бn├н",
"canceled": "Zru┼бeno",
"canceling": "Ru┼бen├н",
"cannot_merge_people": "Nelze slou─Нit osoby",
"cannot_undo_this_action": "Tuto akci nelze vr├бtit zp─Ыt!",
"cannot_update_the_description": "Nelze aktualizovat popis",
@@ -703,7 +724,7 @@
"daily_title_text_date": "EEEE, d. MMMM",
"daily_title_text_date_year": "EEEE, d. MMMM y",
"dark": "Tmav├╜",
"darkTheme": "P┼Щepnout tmav├╜ motiv",
"dark_theme": "P┼Щepnout tmav├╜ motiv",
"date_after": "Datum po",
"date_and_time": "Datum a ─Нas",
"date_before": "Datum p┼Щed",
@@ -719,6 +740,7 @@
"default_locale": "V├╜choz├н jazyk",
"default_locale_description": "Form├бtovat datumy a ─Н├нsla podle m├нstn├нho prost┼Щed├н prohl├н┼╛e─Нe",
"delete": "Smazat",
"delete_action_prompt": "{count} trvale smazan├╜ch",
"delete_album": "Smazat album",
"delete_api_key_prompt": "Opravdu chcete tento API kl├н─Н odstranit?",
"delete_dialog_alert": "Tyto polo┼╛ky budou trvale smaz├бny z aplikace Immich i z va┼бeho za┼Щ├нzen├н",
@@ -732,6 +754,7 @@
"delete_key": "Smazat kl├н─Н",
"delete_library": "Smazat knihovnu",
"delete_link": "Smazat odkaz",
"delete_local_action_prompt": "{count} smaz├бno lok├бln─Ы",
"delete_local_dialog_ok_backed_up_only": "Smazat pouze z├бlohovan├й",
"delete_local_dialog_ok_force": "P┼Щesto smazat",
"delete_others": "Odstranit ostatn├н",
@@ -745,6 +768,7 @@
"description": "Popis",
"description_input_hint_text": "P┼Щidat popis...",
"description_input_submit_error": "Chyba aktualizace popisu, dal┼б├н podrobnosti najdete v logu",
"deselect_all": "Zru┼бit v├╜b─Ыr v┼бech",
"details": "Podrobnosti",
"direction": "Sm─Ыr",
"disabled": "Zak├бz├бno",
@@ -762,6 +786,7 @@
"documentation": "Dokumentace",
"done": "Hotovo",
"download": "St├бhnout",
"download_action_prompt": "Stahov├бn├н {count} polo┼╛ek",
"download_canceled": "Stahov├бn├н zru┼бeno",
"download_complete": "Stahov├бn├н kompletn├н",
"download_enqueue": "Stahov├бn├н ve front─Ы",
@@ -799,6 +824,7 @@
"edit_key": "Upravit kl├н─Н",
"edit_link": "Upravit odkaz",
"edit_location": "Upravit polohu",
"edit_location_action_prompt": "{count} upraven├╜ch poloh",
"edit_location_dialog_title": "Poloha",
"edit_name": "Upravit jm├йno",
"edit_people": "Upravit lidi",
@@ -817,6 +843,7 @@
"empty_trash": "Vypr├бzdnit ko┼б",
"empty_trash_confirmation": "Opravdu chcete vysypat ko┼б? T├нm se z Immiche trvale odstran├н v┼бechny polo┼╛ky v ko┼бi.\nTuto akci nelze vr├бtit zp─Ыt!",
"enable": "Povolit",
"enable_backup": "Povolit z├бlohov├бn├н",
"enable_biometric_auth_description": "Zadejte v├б┼б PIN k├│d pro povolen├н biometrick├йho ov─Ы┼Щov├бn├н",
"enabled": "Povoleno",
"end_date": "Kone─Нn├й datum",
@@ -861,7 +888,7 @@
"failed_to_load_people": "Chyba na─Н├нt├бn├н osob",
"failed_to_remove_product_key": "Nepoda┼Щilo se odebrat kl├н─Н produktu",
"failed_to_stack_assets": "Nepoda┼Щilo se seskupit polo┼╛ky",
"failed_to_unstack_assets": "Nepoda┼Щilo se rozlo┼╛it polo┼╛ky",
"failed_to_unstack_assets": "Nepoda┼Щilo se zru┼бit seskupen├н polo┼╛ek",
"failed_to_update_notification_status": "Nepoda┼Щilo se aktualizovat stav ozn├бmen├н",
"import_path_already_exists": "Tato cesta importu ji┼╛ existuje.",
"incorrect_email_or_password": "Nespr├бvn├╜ e-mail nebo heslo",
@@ -876,7 +903,7 @@
"unable_to_add_partners": "Nelze p┼Щidat partnery",
"unable_to_add_remove_archive": "Nelze {archived, select, true {odstranit polo┼╛ku z} other {p┼Щidat polo┼╛ku do}} archivu",
"unable_to_add_remove_favorites": "Nelze {favorite, select, true {obl├нbit polo┼╛ku} other {zru┼бit obl├нben├н polo┼╛ky}}",
"unable_to_archive_unarchive": "Nelze {archived, select, true {archivovat} other {odarchivovat}}",
"unable_to_archive_unarchive": "Nelze {archived, select, true {archivovat} other {odebrat z archivu}}",
"unable_to_change_album_user_role": "Nelze zm─Ыnit roli u┼╛ivatele alba",
"unable_to_change_date": "Nelze zm─Ыnit datum",
"unable_to_change_description": "Nelze zm─Ыnit popis",
@@ -984,6 +1011,7 @@
"failed_to_load_assets": "Nepoda┼Щilo se na─Н├нst polo┼╛ky",
"failed_to_load_folder": "Nepoda┼Щilo se na─Н├нst slo┼╛ku",
"favorite": "Obl├нbit",
"favorite_action_prompt": "{count} p┼Щid├бno do Obl├нben├╜ch",
"favorite_or_unfavorite_photo": "Obl├нbit nebo zru┼бit obl├нben├н fotky",
"favorites": "Obl├нben├й",
"favorites_page_no_favorites": "Nebyla nalezena ┼╛├бdn├б obl├нben├б m├йdia",
@@ -1127,6 +1155,7 @@
"library_page_sort_created": "Naposledy vytvo┼Щen├й",
"library_page_sort_last_modified": "Naposledy upraveno",
"library_page_sort_title": "Podle n├бzvu alba",
"licenses": "Licence",
"light": "Sv─Ыtl├╜",
"like_deleted": "Lajk smaz├бn",
"link_motion_video": "P┼Щipojit pohybliv├й video",
@@ -1246,10 +1275,11 @@
"more": "V├нce",
"move": "P┼Щesunout",
"move_off_locked_folder": "P┼Щesunout z uzam─Нen├й slo┼╛ky",
"move_to_lock_folder_action_prompt": "{count} p┼Щidan├╜ch do uzam─Нen├й slo┼╛ky",
"move_to_locked_folder": "P┼Щesunout do uzam─Нen├й slo┼╛ky",
"move_to_locked_folder_confirmation": "Tyto fotky a videa budou odstran─Ыny ze v┼бech alb a bude je mo┼╛n├й zobrazit pouze v uzam─Нen├й slo┼╛ce",
"moved_to_archive": "{count, plural, one {P┼Щesunuta # polo┼╛ka} few {P┼Щesunuty # polo┼╛ky} other {P┼Щesunuto # polo┼╛ek}} do archivu",
"moved_to_library": "{count, plural, one {P┼Щesunuta # polo┼╛ka} few {P┼Щesunuty # polo┼╛ky} other {P┼Щesunuto # polo┼╛ek}} do knihovny",
"moved_to_archive": "{count, plural, one {# polo┼╛ka p┼Щesunuta} few {# polo┼╛ky p┼Щesunuty} other {# polo┼╛ek p┼Щesunuto}} do archivu",
"moved_to_library": "{count, plural, one {# polo┼╛ka p┼Щesunuta} few {# polo┼╛ky p┼Щesunuty} other {# polo┼╛ek p┼Щesunuto}} do knihovny",
"moved_to_trash": "P┼Щesunuto do ko┼бe",
"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",
@@ -1460,6 +1490,7 @@
"purchase_server_description_2": "Stav podporovatele",
"purchase_server_title": "Server",
"purchase_settings_server_activated": "Produktov├╜ kl├н─Н serveru spravuje spr├бvce",
"queue_status": "Ve front─Ы {count}/{total}",
"rating": "Hodnocen├н hv─Ыzdi─Нkami",
"rating_clear": "Vy─Нistit hodnocen├н",
"rating_count": "{count, plural, one {# hv─Ыzdi─Нka} few {# hv─Ыzdi─Нky} other {# hv─Ыzd─Нek}}",
@@ -1495,7 +1526,9 @@
"remove_custom_date_range": "Odstranit vlastn├н rozsah datum┼п",
"remove_deleted_assets": "Odstranit offline soubory",
"remove_from_album": "Odstranit z alba",
"remove_from_album_action_prompt": "{count} odstran─Ыn├╜ch z alba",
"remove_from_favorites": "Odstranit z obl├нben├╜ch",
"remove_from_lock_folder_action_prompt": "{count} odebran├╜ch z uzam─Нen├й slo┼╛ky",
"remove_from_locked_folder": "Odstranit z uzam─Нen├й slo┼╛ky",
"remove_from_locked_folder_confirmation": "Opravdu chcete tyto fotky a videa p┼Щesunout z uzam─Нen├й slo┼╛ky? Budou viditeln├й ve va┼б├н knihovn─Ы.",
"remove_from_shared_link": "Odstranit ze sd├нlen├йho odkazu",
@@ -1667,6 +1700,7 @@
"settings_saved": "Nastaven├н ulo┼╛eno",
"setup_pin_code": "Nastaven├н PIN k├│du",
"share": "Sd├нlet",
"share_action_prompt": "Sd├нleno {count} polo┼╛ek",
"share_add_photos": "P┼Щidat fotografie",
"share_assets_selected": "{count} vybr├бno",
"share_dialog_preparing": "P┼Щipravuji...",
@@ -1768,6 +1802,7 @@
"sort_title": "N├бzev alba",
"source": "Zdroj",
"stack": "Seskupit",
"stack_action_prompt": "{count} seskupeno",
"stack_duplicates": "Seskupit duplicity",
"stack_select_one_photo": "Vyberte jednu hlavn├н fotografii pro seskupen├н",
"stack_selected_photos": "Seskupen├н vybran├╜ch fotografi├н",
@@ -1838,6 +1873,7 @@
"total": "Celkem",
"total_usage": "Celkov├й vyu┼╛it├н",
"trash": "Ko┼б",
"trash_action_prompt": "{count} p┼Щesunut├╜ch do ko┼бe",
"trash_all": "Vyhodit v┼бe",
"trash_count": "Vyhodit {count, number}",
"trash_delete_asset": "Vyhodit/Smazat polo┼╛ku",
@@ -1854,10 +1890,12 @@
"type": "Typ",
"unable_to_change_pin_code": "Nelze zm─Ыnit PIN k├│d",
"unable_to_setup_pin_code": "Nelze nastavit PIN k├│d",
"unarchive": "Odarchivovat",
"unarchive": "Odebrat z archivu",
"unarchive_action_prompt": "{count} odstran─Ыn├╜ch z archivu",
"unarchived_count": "{count, plural, one {Odarchivov├бna #} few {Odarchivov├бny #} other {Odarchivov├бno #}}",
"undo": "Vr├бtit zp─Ыt",
"unfavorite": "Zru┼бit obl├нben├н",
"unfavorite_action_prompt": "{count} odstran─Ыn├╜ch z obl├нben├╜ch",
"unhide_person": "Zru┼бit skryt├н osoby",
"unknown": "Nezn├бm├╜",
"unknown_country": "Nezn├бm├б zem─Ы",
@@ -1875,12 +1913,15 @@
"unselect_all_duplicates": "Zru┼бit v├╜b─Ыr v┼бech duplicit",
"unselect_all_in": "Zru┼бit v├╜b─Ыr ve skupin─Ы {group}",
"unstack": "Zru┼бit seskupen├н",
"unstacked_assets_count": "{count, plural, one {Rozlo┼╛en├б # polo┼╛ka} few {Rozlo┼╛en├й # polo┼╛ky} other {Rozlo┼╛en├╜ch # polo┼╛iek}}",
"unstack_action_prompt": "{count} seskupen├╜ch zru┼бeno",
"unstacked_assets_count": "{count, plural, one {Rozlo┼╛en├б # polo┼╛ka} few {Rozlo┼╛en├й # polo┼╛ky} other {Rozlo┼╛en├╜ch # polo┼╛ek}}",
"untagged": "Neozna─Нeno",
"up_next": "To je prozat├нm v┼бe",
"updated_at": "Aktualizov├бno",
"updated_password": "Heslo aktualizov├бno",
"upload": "Nahr├бt",
"upload_concurrency": "Soub─Ы┼╛nost nahr├бv├бn├н",
"upload_details": "Detaily nahr├бv├бn├н",
"upload_dialog_info": "Chcete z├бlohovat vybran├й polo┼╛ky na server?",
"upload_dialog_title": "Nahr├бt polo┼╛ku",
"upload_errors": "Nahr├бv├бn├н bylo dokon─Нeno s {count, plural, one {# chybou} other {# chybami}}, obnovte str├бnku pro zobrazen├н nov├╜ch polo┼╛ek.",
@@ -1912,6 +1953,7 @@
"user_usage_stats_description": "Zobrazit statistiky pou┼╛├нv├бn├н ├║─Нtu",
"username": "U┼╛ivatelesk├й jm├йno",
"users": "U┼╛ivatel├й",
"users_added_to_album_count": "{count, plural, one {P┼Щid├бn # u┼╛ivatel} few {P┼Щid├бny # u┼╛ivatel├й} other {P┼Щid├бno # u┼╛ivatel┼п}} do alba",
"utilities": "N├бstroje",
"validate": "Ov─Ы┼Щit",
"validate_endpoint_error": "Zadejte platn├й URL",
@@ -1930,6 +1972,7 @@
"view_album": "Zobrazit album",
"view_all": "Zobrazit v┼бe",
"view_all_users": "Zobrazit v┼бechny u┼╛ivatele",
"view_details": "Zobrazit podrobnosti",
"view_in_timeline": "Zobrazit na ─Нasov├й ose",
"view_link": "Zobrazit odkaz",
"view_links": "Zobrazit odkazy",
@@ -1941,7 +1984,7 @@
"view_user": "Zobrazit u┼╛ivatele",
"viewer_remove_from_stack": "Odstranit ze z├бsobn├нku",
"viewer_stack_use_as_main_asset": "Pou┼╛├нt jako hlavn├н polo┼╛ku",
"viewer_unstack": "Rozbalit z├бsobn├нk",
"viewer_unstack": "Zru┼бit z├бsobn├нk",
"visibility_changed": "Viditelnost zm─Ыn─Ыna u {count, plural, one {# osoby} few {# osob} other {# lid├н}}",
"waiting": "─Мekaj├нc├н",
"warning": "Upozorn─Ыn├н",
+2 -2
View File
@@ -34,6 +34,7 @@
"added_to_favorites_count": "Tilf├╕jet {count, number} til favoritter",
"admin": {
"add_exclusion_pattern_description": "Tilf├╕j udelukkelsesm├╕nstre. Globbing ved hj├жlp af *, ** og ? underst├╕ttes. For at ignorere alle filer i enhver mappe med navnet \"Raw\", brug \"**/Raw/**\". For at ignorere alle filer, der slutter p├е \".tif\", brug \"**/*.tif\". For at ignorere en absolut sti, brug \"/sti/til/ignoreret/**\".",
"admin_user": "Administrator bruger",
"asset_offline_description": "Denne eksterne biblioteksressource findes ikke l├жngere p├е disken og er blevet flyttet til papirkurven. Hvis filen blev flyttet inde i biblioteket, skal du tjekke din tidslinje for den nye tilsvarende ressource. For at gendanne denne ressource skal du sikre, at filstien nedenfor kan tilg├еs af Immich og scanne biblioteket.",
"authentication_settings": "Godkendelsesindstillinger",
"authentication_settings_description": "Administrer adgangskode, OAuth og andre godkendelsesindstillinger",
@@ -165,6 +166,7 @@
"metadata_settings_description": "H├еndt├йr metadataindstillinger",
"migration_job": "Migrering",
"migration_job_description": "Migr├йr miniaturebilleder for aktiver og ansigter til den seneste mappestruktur",
"nightly_tasks_cluster_faces_setting_description": "K├╕r ansigtsgenkendelse p├е nye ansigter",
"no_paths_added": "Ingen stier tilf├╕jet",
"no_pattern_added": "Intet m├╕nster tilf├╕jet",
"note_apply_storage_label_previous_assets": "Bem├жrk: For at anvende Lagringsm├жrkatet p├е tidligere uploadede mediefiler, k├╕r",
@@ -462,7 +464,6 @@
"assets": "elementer",
"assets_added_count": "Tilf├╕jet {count, plural, one {# mediefil} other {# mediefiler}}",
"assets_added_to_album_count": "{count, plural, one {# mediefil} other {# mediefiler}} tilf├╕jet til albummet",
"assets_added_to_name_count": "Tilf├╕jet {count, plural, one {# mediefil} other {# mediefiler}} til {hasName, select, true {<b>{name}</b>} other {nyt album}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Billed} other {Billeder}} kan ikke blive tilf├╕jet til album",
"assets_count": "{count, plural, one {# mediefil} other {# mediefiler}}",
"assets_deleted_permanently": "{count} element(er) blev fjernet permanent",
@@ -701,7 +702,6 @@
"daily_title_text_date": "E, dd MMM",
"daily_title_text_date_year": "E, dd MMM, yyyy",
"dark": "M├╕rk",
"darkTheme": "Skift til m├╕rkt tema",
"date_after": "Dato efter",
"date_and_time": "Dato og klokkesl├жt",
"date_before": "Dato f├╕r",
+49 -5
View File
@@ -56,9 +56,9 @@
"confirm_user_pin_code_reset": "Bist du sicher, dass du den PIN Code von {user} zur├╝cksetzen m├╢chtest?",
"create_job": "Aufgabe erstellen",
"cron_expression": "Cron Zeitangabe",
"cron_expression_description": "Setze ein Intervall f├╝r die Sicherung mittels cron. Hilfe mit dem Format bietet dir dabei z.B der <link>Crontab Guru</link>",
"cron_expression_description": "Setze ein Intervall f├╝r die Sicherung mittels cron. Hilfe mit dem Format bietet dir dabei z. B. der <link>Crontab Guru</link>",
"cron_expression_presets": "N├╝tzliche Zeitangaben f├╝r Cron",
"disable_login": "Login deaktvieren",
"disable_login": "Login deaktivieren",
"duplicate_detection_job_description": "Diese Aufgabe f├╝hrt das maschinelle Lernen f├╝r jede Datei aus, um Duplikate zu finden. Diese Aufgabe beruht auf der intelligenten Suche",
"exclusion_pattern_description": "Mit Ausschlussmustern k├╢nnen Dateien und Ordner beim Scannen Ihrer Bibliothek ignoriert werden. Dies ist n├╝tzlich, wenn du Ordner hast, die Dateien enthalten, die du nicht importieren m├╢chtest, wie z. B. RAW-Dateien.",
"external_library_management": "Verwaltung externer Bibliotheken",
@@ -166,6 +166,20 @@
"metadata_settings_description": "Metadaten-Einstellungen verwalten",
"migration_job": "Migration",
"migration_job_description": "Diese Aufgabe migriert Miniaturansichten f├╝r Dateien und Gesichter in die neueste Ordnerstruktur",
"nightly_tasks_cluster_faces_setting_description": "Gesichtsidentifikation auf neu erkannten Gesichtern ausf├╝hren",
"nightly_tasks_cluster_new_faces_setting": "Neue Gesichter gruppieren",
"nightly_tasks_database_cleanup_setting": "Datenbankbereinigungs-Aufgaben",
"nightly_tasks_database_cleanup_setting_description": "Alte, abgelaufene Daten aus der Datenbank bereinigen",
"nightly_tasks_generate_memories_setting": "Erinnerungen generieren",
"nightly_tasks_generate_memories_setting_description": "Neue Erinnerungen aus Dateien erstellen",
"nightly_tasks_missing_thumbnails_setting": "Fehlende Miniaturansichten generieren",
"nightly_tasks_missing_thumbnails_setting_description": "Dateien ohne Miniaturansicht in die Warteschlange zur Miniaturansicht-Generierung hinzuf├╝gen",
"nightly_tasks_settings": "Einstellungen f├╝r n├дchtliche Aufgaben",
"nightly_tasks_settings_description": "N├дchtliche Aufgaben verwalten",
"nightly_tasks_start_time_setting": "Startzeit",
"nightly_tasks_start_time_setting_description": "Die Zeit, zu der der Server mit der Ausf├╝hrung der n├дchtlichen Aufgaben beginnt",
"nightly_tasks_sync_quota_usage_setting": "Kontingentnutzung synchronisieren",
"nightly_tasks_sync_quota_usage_setting_description": "Benutzerspeicherkontingent basierend auf der aktuellen Nutzung aktualisieren",
"no_paths_added": "Keine Pfade hinzugef├╝gt",
"no_pattern_added": "Kein Ausschlussmuster hinzugef├╝gt",
"note_apply_storage_label_previous_assets": "Hinweis: Um den Speicherpfad auf die vorher hochgeladenen Dateien anzuwenden, starte den",
@@ -196,6 +210,8 @@
"oauth_mobile_redirect_uri": "Mobile Umleitungs-URI",
"oauth_mobile_redirect_uri_override": "Mobile Umleitungs-URI ├╝berschreiben",
"oauth_mobile_redirect_uri_override_description": "Einschalten, wenn der OAuth-Anbieter keine mobile URI wie ''{callback}'' erlaubt",
"oauth_role_claim": "Rollen-Claim",
"oauth_role_claim_description": "Gew├дhre automatisch Admin-Zugriff basierend auf dem Vorhandensein dieses Claims. Der Claim kann entweder 'user' oder 'admin' sein.",
"oauth_settings": "OAuth",
"oauth_settings_description": "OAuth-Anmeldeeinstellungen verwalten",
"oauth_settings_more_details": "Weitere Informationen zu dieser Funktion findest du in der <link>Dokumentation</link>.",
@@ -244,6 +260,7 @@
"storage_template_migration_info": "Die Speichervorlage wird alle Dateierweiterungen in Kleinbuchstaben umwandeln. Vorlagen├дnderungen gelten nur f├╝r neue Dateien. Um die Vorlage r├╝ckwirkend auf bereits hochgeladene Assets anzuwenden, f├╝hre den <link>{job}</link> aus.",
"storage_template_migration_job": "Speichervorlagenmigrations-Aufgabe",
"storage_template_more_details": "Weitere Details zu dieser Funktion findest du unter <template-link>Speichervorlage</template-link> und dessen <implications-link>Implikationen</implications-link>",
"storage_template_onboarding_description_v2": "Wenn aktiviert, werden Dateien automatisch nach einer benutzerdefinierten Vorlage organisiert. F├╝r mehr Informationen siehe die <link>Dokumentation</link>.",
"storage_template_path_length": "Ungef├дhres Pfadl├дngen-Limit: <b>{length, number}</b>/{limit, number}",
"storage_template_settings": "Speichervorlage",
"storage_template_settings_description": "Die Ordnerstruktur und den Dateinamen der hochgeladenen Datei verwalten",
@@ -356,10 +373,12 @@
"admin_password": "Administrator Passwort",
"administration": "Verwaltung",
"advanced": "Erweitert",
"advanced_settings_beta_timeline_subtitle": "Probier die neue App-Erfahrung aus",
"advanced_settings_beta_timeline_title": "Beta-Timeline",
"advanced_settings_enable_alternate_media_filter_subtitle": "Verwende diese Option, um Medien w├дhrend der Synchronisierung nach anderen Kriterien zu filtern. Versuchen dies nur, wenn Probleme mit der Erkennung aller Alben durch die App auftreten.",
"advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTELL] Benutze alternativen Filter f├╝r Synchronisierung der Ger├дtealben",
"advanced_settings_log_level_title": "Log-Level: {level}",
"advanced_settings_prefer_remote_subtitle": "Einige Ger├дte sind sehr langsam beim Laden von Miniaturbildern direkt aus dem Ger├дt. Aktivieren Sie diese Einstellung, um stattdessen die Server-Bilder zu laden.",
"advanced_settings_prefer_remote_subtitle": "Einige Ger├дte sind sehr langsam beim Laden von lokalen Vorschaubildern. Aktivieren Sie diese Einstellung, um stattdessen die Server-Bilder zu laden.",
"advanced_settings_prefer_remote_title": "Server-Bilder bevorzugen",
"advanced_settings_proxy_headers_subtitle": "Definiere einen Proxy-Header, den Immich bei jeder Netzwerkanfrage mitschicken soll",
"advanced_settings_proxy_headers_title": "Proxy-Headers",
@@ -387,6 +406,7 @@
"album_options": "Albumoptionen",
"album_remove_user": "Nutzer entfernen?",
"album_remove_user_confirmation": "Bist du sicher, dass du {user} entfernen willst?",
"album_search_not_found": "Keine Alben gefunden, die zur Suche passen",
"album_share_no_users": "Es sieht so aus, als h├дttest du dieses Album mit allen Benutzern geteilt oder du hast keine Benutzer, mit denen du teilen kannst.",
"album_updated": "Album aktualisiert",
"album_updated_setting_description": "Erhalte eine E-Mail-Benachrichtigung, wenn ein freigegebenes Album neue Dateien enth├дlt",
@@ -406,6 +426,7 @@
"albums_default_sort_order": "Standard Album Sortierung",
"albums_default_sort_order_description": "Sortierreihenfolge der Dateien bei der Erstellung neuer Alben.",
"albums_feature_description": "Sammlung an Alben die mit anderen Benutzern geteilt werden k├╢nnen.",
"albums_on_device_count": "Alben auf dem Ger├дt ({count})",
"all": "Alle",
"all_albums": "Alle Alben",
"all_people": "Alle Personen",
@@ -426,6 +447,7 @@
"app_settings": "App-Einstellungen",
"appears_in": "Erscheint in",
"archive": "Archiv",
"archive_action_prompt": "{count} zum Archiv hinzugef├╝gt",
"archive_or_unarchive_photo": "Foto archivieren bzw. Archivierung aufheben",
"archive_page_no_archived_assets": "Keine archivierten Inhalte gefunden",
"archive_page_title": "Archiv ({count})",
@@ -463,7 +485,6 @@
"assets": "Dateien",
"assets_added_count": "{count, plural, one {# Datei} other {# Dateien}} hinzugef├╝gt",
"assets_added_to_album_count": "{count, plural, one {# Datei} other {# Dateien}} zum Album hinzugef├╝gt",
"assets_added_to_name_count": "{count, plural, one {# Element} other {# Elemente}} zu {hasName, select, true {<b>{name}</b>} other {neuem Album}} hinzugef├╝gt",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Datei kann}other {Dateien k├╢nnen}} nicht zum Album hinzugef├╝gt werden",
"assets_count": "{count, plural, one {# Datei} other {# Dateien}}",
"assets_deleted_permanently": "{count} Element(e) permanent gel├╢scht",
@@ -586,6 +607,7 @@
"cancel": "Abbrechen",
"cancel_search": "Suche abbrechen",
"canceled": "Abgebrochen",
"canceling": "Abbrechen",
"cannot_merge_people": "Personen k├╢nnen nicht zusammengef├╝hrt werden",
"cannot_undo_this_action": "Diese Aktion kann nicht r├╝ckg├дngig gemacht werden!",
"cannot_update_the_description": "Beschreibung kann nicht aktualisiert werden",
@@ -702,7 +724,7 @@
"daily_title_text_date": "E, dd MMM",
"daily_title_text_date_year": "E, dd MMM, yyyy",
"dark": "Dunkel",
"darkTheme": "Dunkles Theme umschalten",
"dark_theme": "Dunkle Ansicht umschalten",
"date_after": "Datum nach",
"date_and_time": "Datum und Zeit",
"date_before": "Datum vor",
@@ -718,6 +740,7 @@
"default_locale": "Standard-Sprache",
"default_locale_description": "Datumsangaben und Zahlen basierend auf dem Gebietsschema des Browsers formatieren",
"delete": "L├╢schen",
"delete_action_prompt": "{count} endg├╝ltig gel├╢scht",
"delete_album": "Album l├╢schen",
"delete_api_key_prompt": "Bist du sicher, dass du diesen API-Schl├╝ssel l├╢schen willst?",
"delete_dialog_alert": "Diese Elemente werden unwiderruflich von Immich und dem Ger├дt entfernt",
@@ -731,6 +754,7 @@
"delete_key": "Schl├╝ssel l├╢schen",
"delete_library": "Bibliothek l├╢schen",
"delete_link": "Link l├╢schen",
"delete_local_action_prompt": "{count} lokal gel├╢scht",
"delete_local_dialog_ok_backed_up_only": "Nur gesicherte Inhalte l├╢schen",
"delete_local_dialog_ok_force": "Trotzdem l├╢schen",
"delete_others": "Andere l├╢schen",
@@ -744,6 +768,7 @@
"description": "Beschreibung",
"description_input_hint_text": "Beschreibung hinzuf├╝gen...",
"description_input_submit_error": "Beschreibung konnte nicht ge├дndert werden, bitte im Log f├╝r mehr Details nachsehen",
"deselect_all": "Alle abw├дhlen",
"details": "Details",
"direction": "Richtung",
"disabled": "Deaktiviert",
@@ -761,6 +786,7 @@
"documentation": "Dokumentation",
"done": "Fertig",
"download": "Herunterladen",
"download_action_prompt": "Herunterladen von {count} Dateien",
"download_canceled": "Download abgebrochen",
"download_complete": "Download vollst├дndig",
"download_enqueue": "Download in die Warteschlange gesetzt",
@@ -798,6 +824,7 @@
"edit_key": "Schl├╝ssel bearbeiten",
"edit_link": "Link bearbeiten",
"edit_location": "Standort bearbeiten",
"edit_location_action_prompt": "{count} Geolokationen angepasst",
"edit_location_dialog_title": "Ort bearbeiten",
"edit_name": "Name bearbeiten",
"edit_people": "Personen bearbeiten",
@@ -816,6 +843,7 @@
"empty_trash": "Papierkorb leeren",
"empty_trash_confirmation": "Bist du sicher, dass du den Papierkorb leeren willst?\nDies entfernt alle Dateien im Papierkorb endg├╝ltig aus Immich und kann nicht r├╝ckg├дngig gemacht werden!",
"enable": "Aktivieren",
"enable_backup": "Sicherung aktivieren",
"enable_biometric_auth_description": "Gib deinen PIN Code ein, um die biometrische Authentifizierung zu aktivieren",
"enabled": "Aktiviert",
"end_date": "Enddatum",
@@ -983,6 +1011,7 @@
"failed_to_load_assets": "Laden der Assets fehlgeschlagen",
"failed_to_load_folder": "Fehler beim Laden des Ordners",
"favorite": "Favorit",
"favorite_action_prompt": "{count} zu den Favoriten hinzugef├╝gt",
"favorite_or_unfavorite_photo": "Favorisiertes oder nicht favorisiertes Foto",
"favorites": "Favoriten",
"favorites_page_no_favorites": "Keine favorisierten Inhalte gefunden",
@@ -1126,6 +1155,7 @@
"library_page_sort_created": "Zuletzt erstellt",
"library_page_sort_last_modified": "Zuletzt bearbeitet",
"library_page_sort_title": "Titel des Albums",
"licenses": "Lizenzen",
"light": "Hell",
"like_deleted": "Like gel├╢scht",
"link_motion_video": "Bewegungsvideo verkn├╝pfen",
@@ -1245,6 +1275,7 @@
"more": "Mehr",
"move": "Verschieben",
"move_off_locked_folder": "Aus dem gesperrten Ordner verschieben",
"move_to_lock_folder_action_prompt": "{count} zum gesperrten Ordner hinzugef├╝gt",
"move_to_locked_folder": "In den gesperrten Ordner verschieben",
"move_to_locked_folder_confirmation": "Diese Fotos und Videos werden aus allen Alben entfernt und k├╢nnen nur noch im gesperrten Ordner angezeigt werden",
"moved_to_archive": "{count, plural, one {# Datei} other {# Dateien}} archiviert",
@@ -1459,6 +1490,7 @@
"purchase_server_description_2": "Unterst├╝tzerstatus",
"purchase_server_title": "Server",
"purchase_settings_server_activated": "Der Server-Produktschl├╝ssel wird durch den Administrator verwaltet",
"queue_status": "Warteschlange {count}/{total}",
"rating": "Bewertung",
"rating_clear": "Bewertung l├╢schen",
"rating_count": "{count, plural, one {# Stern} other {# Sterne}}",
@@ -1494,7 +1526,9 @@
"remove_custom_date_range": "Benutzerdefinierten Datumsbereich entfernen",
"remove_deleted_assets": "Offline-Dateien entfernen",
"remove_from_album": "Aus Album entfernen",
"remove_from_album_action_prompt": "{count} vom Album entfernt",
"remove_from_favorites": "Aus Favoriten entfernen",
"remove_from_lock_folder_action_prompt": "{count} aus dem gesperrten Ordner entfernt",
"remove_from_locked_folder": "Aus gesperrtem Ordner entfernen",
"remove_from_locked_folder_confirmation": "Bist du sicher, dass du diese Fotos und Videos aus dem gesperrten Ordner entfernen m├╢chtest? Sie werden wieder in deiner Bibliothek sichtbar sein.",
"remove_from_shared_link": "Aus geteiltem Link entfernen",
@@ -1666,6 +1700,7 @@
"settings_saved": "Einstellungen gespeichert",
"setup_pin_code": "Einen PIN Code festlegen",
"share": "Teilen",
"share_action_prompt": "{count} Dateien geteilt",
"share_add_photos": "Fotos hinzuf├╝gen",
"share_assets_selected": "{count} ausgew├дhlt",
"share_dialog_preparing": "Vorbereiten...",
@@ -1767,6 +1802,7 @@
"sort_title": "Titel",
"source": "Quellcode",
"stack": "Stapel",
"stack_action_prompt": "{count} gestapelt",
"stack_duplicates": "Duplikate stapeln",
"stack_select_one_photo": "Hauptfoto f├╝r den Stapel ausw├дhlen",
"stack_selected_photos": "Ausgew├дhlte Fotos stapeln",
@@ -1837,6 +1873,7 @@
"total": "Gesamt",
"total_usage": "Gesamtnutzung",
"trash": "Papierkorb",
"trash_action_prompt": "{count} in den Papierkorb verschoben",
"trash_all": "Alle l├╢schen",
"trash_count": "Papierkorb {count, number}",
"trash_delete_asset": "Datei l├╢schen/in den Papierkorb verschieben",
@@ -1854,9 +1891,11 @@
"unable_to_change_pin_code": "PIN Code konnte nicht ge├дndert werden",
"unable_to_setup_pin_code": "PIN Code konnte nicht festgelegt werden",
"unarchive": "Entarchivieren",
"unarchive_action_prompt": "{count} aus dem Archiv entfernt",
"unarchived_count": "{count, plural, other {# entarchiviert}}",
"undo": "R├╝ckg├дngig",
"unfavorite": "Entfavorisieren",
"unfavorite_action_prompt": "{count} aus den Favoriten entfernt",
"unhide_person": "Person einblenden",
"unknown": "Unbekannt",
"unknown_country": "Unbekanntes Land",
@@ -1874,12 +1913,15 @@
"unselect_all_duplicates": "Alle Duplikate abw├дhlen",
"unselect_all_in": "Alle in {group} abw├дhlen",
"unstack": "Entstapeln",
"unstack_action_prompt": "{count} entstapelt",
"unstacked_assets_count": "{count, plural, one {# Datei} other {# Dateien}} entstapelt",
"untagged": "Ohne Tag",
"up_next": "Weiter",
"updated_at": "Aktualisiert",
"updated_password": "Passwort aktualisiert",
"upload": "Hochladen",
"upload_concurrency": "Parallelit├дt beim Hochladen",
"upload_details": "Upload Details",
"upload_dialog_info": "Willst du die ausgew├дhlten Elemente auf dem Server sichern?",
"upload_dialog_title": "Element hochladen",
"upload_errors": "Hochladen mit {count, plural, one {# Fehler} other {# Fehlern}} abgeschlossen, aktualisiere die Seite, um neu hochgeladene Dateien zu sehen.",
@@ -1911,6 +1953,7 @@
"user_usage_stats_description": "Statistiken zur Kontonutzung anzeigen",
"username": "Nutzername",
"users": "Benutzer",
"users_added_to_album_count": "{count, plural, one {# Benutzer} other {# Benutzer}} zum Album hinzugef├╝gt",
"utilities": "Hilfsmittel",
"validate": "Validieren",
"validate_endpoint_error": "Bitte gib eine g├╝ltige URL ein",
@@ -1929,6 +1972,7 @@
"view_album": "Album anzeigen",
"view_all": "Alles anzeigen",
"view_all_users": "Alle Nutzer anzeigen",
"view_details": "Details ansehen",
"view_in_timeline": "In Zeitleiste anzeigen",
"view_link": "Link anzeigen",
"view_links": "Links anzeigen",
-2
View File
@@ -464,7 +464,6 @@
"assets": "╬С╬╜╧Д╬╣╬║╬╡╬п╬╝╬╡╬╜╬▒",
"assets_added_count": "╬а╧Б╬┐╧Г╧Д╬н╬╕╬╖╬║╬╡ {count, plural, one {# ╬▒╧Б╧З╬╡╬п╬┐} other {# ╬▒╧Б╧З╬╡╬п╬▒}}",
"assets_added_to_album_count": "╬а╧Б╬┐╧Г╧Д╬н╬╕╬╖╬║╬╡ {count, plural, one {# ╬▒╧Б╧З╬╡╬п╬┐} other {# ╬▒╧Б╧З╬╡╬п╬▒}} ╧Г╧Д╬┐ ╬м╬╗╬╝╧А╬┐╧Е╬╝",
"assets_added_to_name_count": "╬а╧Б╬┐╧Г╧Д╬н╬╕╬╖╬║╬╡ {count, plural, one {# ╬▒╧Б╧З╬╡╬п╬┐} other {# ╬▒╧Б╧З╬╡╬п╬▒}} ╧Г╧Д╬┐ {hasName, select, true {<b>{name}</b>} other {╬╜╬н╬┐ ╬м╬╗╬╝╧А╬┐╧Е╬╝}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {╬г╧Д╬┐╬╣╧З╬╡╬п╬┐} other {╬г╧Д╬┐╬╣╧З╬╡╬п╬▒}} ╬┤╬╡╬╜ ╬╝╧А╬┐╧Б╬┐╧Н╬╜ ╬╜╬▒ ╧А╧Б╬┐╧Г╧Д╬╡╬╕╬┐╧Н╬╜ ╧Г╧Д╬┐ ╬м╬╗╬╝╧А╬┐╧Е╬╝",
"assets_count": "{count, plural, one {# ╬▒╧Б╧З╬╡╬п╬┐} other {# ╬▒╧Б╧З╬╡╬п╬▒}}",
"assets_deleted_permanently": "{count} ╧Д╬▒ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒ ╬┤╬╣╬▒╬│╧Б╬м╧Ж╬╖╬║╬▒╬╜ ╬┐╧Б╬╣╧Г╧Д╬╣╬║╬м",
@@ -703,7 +702,6 @@
"daily_title_text_date": "╬Х, MMM dd",
"daily_title_text_date_year": "╬Х, MMM dd, yyyy",
"dark": "╬г╬║╬┐╧Н╧Б╬┐",
"darkTheme": "╬Х╬╜╬▒╬╗╬╗╬▒╬│╬о ╧Г╬║╬┐╧Н╧Б╬┐╧Е ╬╕╬н╬╝╬▒╧Д╬┐╧В",
"date_after": "╬Ч╬╝╬╡╧Б╬┐╬╝╬╖╬╜╬п╬▒ ╬╝╬╡╧Д╬м",
"date_and_time": "╬Ч╬╝╬╡╧Б╬┐╬╝╬╖╬╜╬п╬▒ ╬║╬▒╬╣ ╧О╧Б╬▒",
"date_before": "╬Ч╬╝╬╡╧Б╬┐╬╝╬╖╬╜╬п╬▒ ╧А╧Б╬╣╬╜",
+66 -2
View File
@@ -166,6 +166,20 @@
"metadata_settings_description": "Manage metadata settings",
"migration_job": "Migration",
"migration_job_description": "Migrate thumbnails for assets and faces to the latest folder structure",
"nightly_tasks_cluster_faces_setting_description": "Run facial recognition on newly detected faces",
"nightly_tasks_cluster_new_faces_setting": "Cluster new faces",
"nightly_tasks_database_cleanup_setting": "Database cleanup tasks",
"nightly_tasks_database_cleanup_setting_description": "Clean up old, expired data from the database",
"nightly_tasks_generate_memories_setting": "Generate memories",
"nightly_tasks_generate_memories_setting_description": "Create new memories from assets",
"nightly_tasks_missing_thumbnails_setting": "Generate missing thumbnails",
"nightly_tasks_missing_thumbnails_setting_description": "Queue assets without thumbnails for thumbnail generation",
"nightly_tasks_settings": "Nightly Tasks Settings",
"nightly_tasks_settings_description": "Manage nightly tasks",
"nightly_tasks_start_time_setting": "Start time",
"nightly_tasks_start_time_setting_description": "The time at which the server starts running the nightly tasks",
"nightly_tasks_sync_quota_usage_setting": "Sync quota usage",
"nightly_tasks_sync_quota_usage_setting_description": "Update user storage quota, based on current usage",
"no_paths_added": "No paths added",
"no_pattern_added": "No pattern added",
"note_apply_storage_label_previous_assets": "Note: To apply the Storage Label to previously uploaded assets, run the",
@@ -196,6 +210,8 @@
"oauth_mobile_redirect_uri": "Mobile redirect URI",
"oauth_mobile_redirect_uri_override": "Mobile redirect URI override",
"oauth_mobile_redirect_uri_override_description": "Enable when OAuth provider does not allow a mobile URI, like ''{callback}''",
"oauth_role_claim": "Role Claim",
"oauth_role_claim_description": "Automatically grant admin access based on the presence of this claim. The claim may have either 'user' or 'admin'.",
"oauth_settings": "OAuth",
"oauth_settings_description": "Manage OAuth login settings",
"oauth_settings_more_details": "For more details about this feature, refer to the <link>docs</link>.",
@@ -357,10 +373,12 @@
"admin_password": "Admin Password",
"administration": "Administration",
"advanced": "Advanced",
"advanced_settings_beta_timeline_subtitle": "Try the new app experience",
"advanced_settings_beta_timeline_title": "Beta Timeline",
"advanced_settings_enable_alternate_media_filter_subtitle": "Use this option to filter media during sync based on alternate criteria. Only try this if you have issues with the app detecting all albums.",
"advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTAL] Use alternate device album sync filter",
"advanced_settings_log_level_title": "Log level: {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 local assets. Activate this setting to load remote images instead.",
"advanced_settings_prefer_remote_title": "Prefer remote images",
"advanced_settings_proxy_headers_subtitle": "Define proxy headers Immich should send with each network request",
"advanced_settings_proxy_headers_title": "Proxy Headers",
@@ -388,6 +406,7 @@
"album_options": "Album options",
"album_remove_user": "Remove user?",
"album_remove_user_confirmation": "Are you sure you want to remove {user}?",
"album_search_not_found": "No albums found matching your search",
"album_share_no_users": "Looks like you have shared this album with all users or you don't have any user to share with.",
"album_updated": "Album updated",
"album_updated_setting_description": "Receive an email notification when a shared album has new assets",
@@ -407,6 +426,7 @@
"albums_default_sort_order": "Default album sort order",
"albums_default_sort_order_description": "Initial asset sort order when creating new albums.",
"albums_feature_description": "Collections of assets that can be shared with other users.",
"albums_on_device_count": "Albums on device ({count})",
"all": "All",
"all_albums": "All albums",
"all_people": "All people",
@@ -427,6 +447,7 @@
"app_settings": "App Settings",
"appears_in": "Appears in",
"archive": "Archive",
"archive_action_prompt": "{count} added to Archive",
"archive_or_unarchive_photo": "Archive or unarchive photo",
"archive_page_no_archived_assets": "No archived assets found",
"archive_page_title": "Archive ({count})",
@@ -552,6 +573,8 @@
"backup_options_page_title": "Backup options",
"backup_setting_subtitle": "Manage background and foreground upload settings",
"backward": "Backward",
"beta_sync": "Beta Sync Status",
"beta_sync_subtitle": "Manage the new sync system",
"biometric_auth_enabled": "Biometric authentication enabled",
"biometric_locked_out": "You are locked out of biometric authentication",
"biometric_no_options": "No biometric options available",
@@ -586,6 +609,7 @@
"cancel": "Cancel",
"cancel_search": "Cancel search",
"canceled": "Canceled",
"canceling": "Canceling",
"cannot_merge_people": "Cannot merge people",
"cannot_undo_this_action": "You cannot undo this action!",
"cannot_update_the_description": "Cannot update the description",
@@ -702,7 +726,7 @@
"daily_title_text_date": "E, MMM dd",
"daily_title_text_date_year": "E, MMM dd, yyyy",
"dark": "Dark",
"darkTheme": "Toggle dark theme",
"dark_theme": "Toggle dark theme",
"date_after": "Date after",
"date_and_time": "Date and Time",
"date_before": "Date before",
@@ -718,6 +742,7 @@
"default_locale": "Default Locale",
"default_locale_description": "Format dates and numbers based on your browser locale",
"delete": "Delete",
"delete_action_prompt": "{count} deleted permanently",
"delete_album": "Delete album",
"delete_api_key_prompt": "Are you sure you want to delete this API key?",
"delete_dialog_alert": "These items will be permanently deleted from Immich and from your device",
@@ -731,6 +756,7 @@
"delete_key": "Delete key",
"delete_library": "Delete Library",
"delete_link": "Delete link",
"delete_local_action_prompt": "{count} deleted locally",
"delete_local_dialog_ok_backed_up_only": "Delete Backed Up Only",
"delete_local_dialog_ok_force": "Delete Anyway",
"delete_others": "Delete others",
@@ -744,6 +770,7 @@
"description": "Description",
"description_input_hint_text": "Add description...",
"description_input_submit_error": "Error updating description, check the log for more details",
"deselect_all": "Deselect All",
"details": "Details",
"direction": "Direction",
"disabled": "Disabled",
@@ -761,6 +788,7 @@
"documentation": "Documentation",
"done": "Done",
"download": "Download",
"download_action_prompt": "Downloading {count} assets",
"download_canceled": "Download canceled",
"download_complete": "Download complete",
"download_enqueue": "Download enqueued",
@@ -798,6 +826,7 @@
"edit_key": "Edit key",
"edit_link": "Edit link",
"edit_location": "Edit location",
"edit_location_action_prompt": "{count} location edited",
"edit_location_dialog_title": "Location",
"edit_name": "Edit name",
"edit_people": "Edit people",
@@ -816,6 +845,7 @@
"empty_trash": "Empty trash",
"empty_trash_confirmation": "Are you sure you want to empty the trash? This will remove all the assets in trash permanently from Immich.\nYou cannot undo this action!",
"enable": "Enable",
"enable_backup": "Enable Backup",
"enable_biometric_auth_description": "Enter your PIN code to enable biometric authentication",
"enabled": "Enabled",
"end_date": "End date",
@@ -983,6 +1013,7 @@
"failed_to_load_assets": "Failed to load assets",
"failed_to_load_folder": "Failed to load folder",
"favorite": "Favorite",
"favorite_action_prompt": "{count} added to Favorites",
"favorite_or_unfavorite_photo": "Favorite or unfavorite photo",
"favorites": "Favorites",
"favorites_page_no_favorites": "No favorite assets found",
@@ -1022,6 +1053,9 @@
"haptic_feedback_switch": "Enable haptic feedback",
"haptic_feedback_title": "Haptic Feedback",
"has_quota": "Has quota",
"hash_asset": "Hash asset",
"hashed_assets": "Hashed assets",
"hashing": "Hashing",
"header_settings_add_header_tip": "Add Header",
"header_settings_field_validator_msg": "Value cannot be empty",
"header_settings_header_name_input": "Header name",
@@ -1054,6 +1088,7 @@
"host": "Host",
"hour": "Hour",
"id": "ID",
"idle": "Idle",
"ignore_icloud_photos": "Ignore iCloud photos",
"ignore_icloud_photos_description": "Photos that are stored on iCloud will not be uploaded to the Immich server",
"image": "Image",
@@ -1126,6 +1161,7 @@
"library_page_sort_created": "Created date",
"library_page_sort_last_modified": "Last modified",
"library_page_sort_title": "Album title",
"licenses": "Licenses",
"light": "Light",
"like_deleted": "Like deleted",
"link_motion_video": "Link motion video",
@@ -1135,7 +1171,9 @@
"list": "List",
"loading": "Loading",
"loading_search_results_failed": "Loading search results failed",
"local": "Local",
"local_asset_cast_failed": "Unable to cast an asset that is not uploaded to the server",
"local_assets": "Local Assets",
"local_network": "Local network",
"local_network_sheet_info": "The app will connect to the server through this URL when using the specified Wi-Fi network",
"location_permission": "Location permission",
@@ -1245,6 +1283,7 @@
"more": "More",
"move": "Move",
"move_off_locked_folder": "Move out of locked folder",
"move_to_lock_folder_action_prompt": "{count} added to the locked folder",
"move_to_locked_folder": "Move to locked folder",
"move_to_locked_folder_confirmation": "These photos and video will be removed from all albums, and only viewable from the locked folder",
"moved_to_archive": "Moved {count, plural, one {# asset} other {# assets}} to archive",
@@ -1328,6 +1367,7 @@
"original": "original",
"other": "Other",
"other_devices": "Other devices",
"other_entities": "Other entities",
"other_variables": "Other variables",
"owned": "Owned",
"owner": "Owner",
@@ -1459,6 +1499,7 @@
"purchase_server_description_2": "Supporter status",
"purchase_server_title": "Server",
"purchase_settings_server_activated": "The server product key is managed by the admin",
"queue_status": "Queuing {count}/{total}",
"rating": "Star rating",
"rating_clear": "Clear rating",
"rating_count": "{count, plural, one {# star} other {# stars}}",
@@ -1487,6 +1528,8 @@
"refreshing_faces": "Refreshing faces",
"refreshing_metadata": "Refreshing metadata",
"regenerating_thumbnails": "Regenerating thumbnails",
"remote": "Remote",
"remote_assets": "Remote Assets",
"remove": "Remove",
"remove_assets_album_confirmation": "Are you sure you want to remove {count, plural, one {# asset} other {# assets}} from the album?",
"remove_assets_shared_link_confirmation": "Are you sure you want to remove {count, plural, one {# asset} other {# assets}} from this shared link?",
@@ -1494,7 +1537,9 @@
"remove_custom_date_range": "Remove custom date range",
"remove_deleted_assets": "Remove Deleted Assets",
"remove_from_album": "Remove from album",
"remove_from_album_action_prompt": "{count} removed from the album",
"remove_from_favorites": "Remove from favorites",
"remove_from_lock_folder_action_prompt": "{count} removed from the locked folder",
"remove_from_locked_folder": "Remove from locked folder",
"remove_from_locked_folder_confirmation": "Are you sure you want to move these photos and videos out of the locked folder? They will be visible in your library.",
"remove_from_shared_link": "Remove from shared link",
@@ -1522,11 +1567,15 @@
"reset_password": "Reset password",
"reset_people_visibility": "Reset people visibility",
"reset_pin_code": "Reset PIN code",
"reset_sqlite": "Reset SQLite Database",
"reset_sqlite_confirmation": "Are you sure you want to reset the SQLite database? You will need to log out and log in again to resync the data",
"reset_sqlite_success": "Successfully reset the SQLite database",
"reset_to_default": "Reset to default",
"resolve_duplicates": "Resolve duplicates",
"resolved_all_duplicates": "Resolved all duplicates",
"restore": "Restore",
"restore_all": "Restore all",
"restore_trash_action_prompt": "{count} restored from trash",
"restore_user": "Restore user",
"restored_asset": "Restored asset",
"resume": "Resume",
@@ -1535,6 +1584,7 @@
"role": "Role",
"role_editor": "Editor",
"role_viewer": "Viewer",
"running": "Running",
"save": "Save",
"save_to_gallery": "Save to gallery",
"saved_api_key": "Saved API Key",
@@ -1666,6 +1716,7 @@
"settings_saved": "Settings saved",
"setup_pin_code": "Setup a PIN code",
"share": "Share",
"share_action_prompt": "Shared {count} assets",
"share_add_photos": "Add photos",
"share_assets_selected": "{count} selected",
"share_dialog_preparing": "Preparing...",
@@ -1767,6 +1818,7 @@
"sort_title": "Title",
"source": "Source",
"stack": "Stack",
"stack_action_prompt": "{count} stacked",
"stack_duplicates": "Stack duplicates",
"stack_select_one_photo": "Select one main photo for the stack",
"stack_selected_photos": "Stack selected photos",
@@ -1786,6 +1838,7 @@
"storage_quota": "Storage Quota",
"storage_usage": "{used} of {available} used",
"submit": "Submit",
"success": "Success",
"suggestions": "Suggestions",
"sunrise_on_the_beach": "Sunrise on the beach",
"support": "Support",
@@ -1795,6 +1848,8 @@
"sync": "Sync",
"sync_albums": "Sync albums",
"sync_albums_manual_subtitle": "Sync all uploaded videos and photos to the selected backup albums",
"sync_local": "Sync Local",
"sync_remote": "Sync Remote",
"sync_upload_album_setting_subtitle": "Create and upload your photos and videos to the selected albums on Immich",
"tag": "Tag",
"tag_assets": "Tag assets",
@@ -1805,6 +1860,7 @@
"tag_updated": "Updated tag: {tag}",
"tagged_assets": "Tagged {count, plural, one {# asset} other {# assets}}",
"tags": "Tags",
"tap_to_run_job": "Tap to run job",
"template": "Template",
"theme": "Theme",
"theme_selection": "Theme selection",
@@ -1837,6 +1893,7 @@
"total": "Total",
"total_usage": "Total usage",
"trash": "Trash",
"trash_action_prompt": "{count} moved to trash",
"trash_all": "Trash All",
"trash_count": "Trash {count, number}",
"trash_delete_asset": "Trash/Delete Asset",
@@ -1854,9 +1911,11 @@
"unable_to_change_pin_code": "Unable to change PIN code",
"unable_to_setup_pin_code": "Unable to setup PIN code",
"unarchive": "Unarchive",
"unarchive_action_prompt": "{count} removed from Archive",
"unarchived_count": "{count, plural, other {Unarchived #}}",
"undo": "Undo",
"unfavorite": "Unfavorite",
"unfavorite_action_prompt": "{count} removed from Favorites",
"unhide_person": "Unhide person",
"unknown": "Unknown",
"unknown_country": "Unknown Country",
@@ -1874,12 +1933,15 @@
"unselect_all_duplicates": "Unselect all duplicates",
"unselect_all_in": "Unselect all in {group}",
"unstack": "Un-stack",
"unstack_action_prompt": "{count} unstacked",
"unstacked_assets_count": "Un-stacked {count, plural, one {# asset} other {# assets}}",
"untagged": "Untagged",
"up_next": "Up next",
"updated_at": "Updated",
"updated_password": "Updated password",
"upload": "Upload",
"upload_concurrency": "Upload concurrency",
"upload_details": "Upload Details",
"upload_dialog_info": "Do you want to backup the selected Asset(s) to the server?",
"upload_dialog_title": "Upload Asset",
"upload_errors": "Upload completed with {count, plural, one {# error} other {# errors}}, refresh the page to see new upload assets.",
@@ -1911,6 +1973,7 @@
"user_usage_stats_description": "View account usage statistics",
"username": "Username",
"users": "Users",
"users_added_to_album_count": "Added {count, plural, one {# user} other {# users}} to the album",
"utilities": "Utilities",
"validate": "Validate",
"validate_endpoint_error": "Please enter a valid URL",
@@ -1929,6 +1992,7 @@
"view_album": "View Album",
"view_all": "View All",
"view_all_users": "View all users",
"view_details": "View Details",
"view_in_timeline": "View in timeline",
"view_link": "View link",
"view_links": "View links",
+63 -27
View File
@@ -2,7 +2,7 @@
"about": "Acerca de",
"account": "Cuenta",
"account_settings": "Ajustes de la cuenta",
"acknowledge": "De acuerdo",
"acknowledge": "Aceptar",
"action": "Acci├│n",
"action_common_update": "Actualizar",
"actions": "Acciones",
@@ -14,13 +14,13 @@
"add_a_location": "Agregar ubicaci├│n",
"add_a_name": "Agregar nombre",
"add_a_title": "Agregar t├нtulo",
"add_endpoint": "A├▒adir endpoint",
"add_endpoint": "Agregar endpoint",
"add_exclusion_pattern": "Agregar patr├│n de exclusi├│n",
"add_import_path": "Agregar ruta de importaci├│n",
"add_location": "Agregar ubicaci├│n",
"add_more_users": "Agregar m├бs usuarios",
"add_partner": "Agregar compa├▒ero",
"add_path": "Agregar carpeta",
"add_path": "Agregar ruta",
"add_photos": "Agregar fotos",
"add_tag": "Agregar etiqueta",
"add_to": "Agregar aтАж",
@@ -63,8 +63,8 @@
"exclusion_pattern_description": "Los patrones de exclusi├│n te permiten ignorar archivos y carpetas al escanear tu biblioteca. Es ├║til si tienes carpetas que contienen archivos que no deseas importar, por ejemplo archivos RAW.",
"external_library_management": "Gesti├│n de bibliotecas externas",
"face_detection": "Detecci├│n de caras",
"face_detection_description": "Detecta las caras en los activos mediante aprendizaje autom├бtico. En el caso de los v├нdeos, solo se tiene en cuenta la miniatura. \"Actualizar\" (re)procesar├б todos los elementos. \"Restablecer\" borra adem├бs todos los datos de caras actuales. \"Falta\" pone en cola los elementos que a├║n no se han procesado. Las caras detectadas se pondr├бn en cola para el reconocimiento facial una vez finalizada la detecci├│n, agrup├бndolos en personas existentes o nuevas.",
"facial_recognition_job_description": "Agrupa las caras detectadas en personas. Este paso se ejecuta una vez finalizada la detecci├│n de caras. \"Restablecer\" (re)agrupa todas las caras. \"Falta\" pone en cola las caras que no tienen asignada una persona.",
"face_detection_description": "Detecta las caras en los elementos mediante aprendizaje autom├бtico. En el caso de los v├нdeos, solo se tiene en cuenta la miniatura. \"Actualizar\" (re)procesar├б todos los elementos. \"Restablecer\" borra adem├бs todos los datos de caras actuales. \"Faltante\" pone en cola los elementos que a├║n no se han procesado. Las caras detectadas se pondr├бn en cola para el reconocimiento facial una vez finalizada la detecci├│n, agrup├бndolos en personas existentes o nuevas.",
"facial_recognition_job_description": "Agrupa las caras detectadas en personas. Este paso se realiza despu├йs de completar la detecci├│n de caras. \"Restablecer\" (re)agrupa todas las caras. \"Faltante\" pone en cola las caras que no tienen una persona asignada.",
"failed_job_command": "El comando {command} ha fallado para la tarea: {job}",
"force_delete_user_warning": "CUIDADO: Esta acci├│n eliminar├б inmediatamente el usuario y todos los elementos. Esta accion no se puede deshacer y los archivos no pueden ser recuperados.",
"image_format": "Formato",
@@ -166,6 +166,20 @@
"metadata_settings_description": "Administrar la configuraci├│n de metadatos",
"migration_job": "Migraci├│n",
"migration_job_description": "Migrar miniaturas de archivos y caras a la estructura de carpetas m├бs reciente",
"nightly_tasks_cluster_faces_setting_description": "Ejecutar reconocimiento facial en caras detectadas recientemente",
"nightly_tasks_cluster_new_faces_setting": "Agrupar caras nuevas",
"nightly_tasks_database_cleanup_setting": "Tareas de limpieza de base de datos",
"nightly_tasks_database_cleanup_setting_description": "Limpiar datos antiguos y caducados de la base de datos",
"nightly_tasks_generate_memories_setting": "Generar recuerdos",
"nightly_tasks_generate_memories_setting_description": "Crear nuevos recuerdos a partir de activos",
"nightly_tasks_missing_thumbnails_setting": "Generar miniaturas faltantes",
"nightly_tasks_missing_thumbnails_setting_description": "Poner en cola a activos sin miniaturas para la generaci├│n de miniaturas",
"nightly_tasks_settings": "Configuraci├│n de Tareas Nocturnas",
"nightly_tasks_settings_description": "Gestionar Tareas Nocturnas",
"nightly_tasks_start_time_setting": "Tiempo de inicio",
"nightly_tasks_start_time_setting_description": "El tiempo cuando el servidor comienza a ejecutar las tareas nocturnas",
"nightly_tasks_sync_quota_usage_setting": "Uso de la cuota de sincronizaci├│n",
"nightly_tasks_sync_quota_usage_setting_description": "Actualizar la cuota de almacenamiento del usuario, seg├║n el uso actual",
"no_paths_added": "No se han a├▒adido carpetas",
"no_pattern_added": "No se han a├▒adido patrones",
"note_apply_storage_label_previous_assets": "Nota: para aplicar una Etiqueta de Almacenamiento a un elemento anteriormente cargado, lanza el",
@@ -196,6 +210,8 @@
"oauth_mobile_redirect_uri": "URI de redireccionamiento m├│vil",
"oauth_mobile_redirect_uri_override": "Sobreescribir URI de redirecci├│n m├│vil",
"oauth_mobile_redirect_uri_override_description": "Habilitar cuando el proveedor de OAuth no permite una URI m├│vil, como ''{callback}''",
"oauth_role_claim": "Concesi├│n de rol",
"oauth_role_claim_description": "Otorgar acceso de administrador autom├бticamente seg├║n la presencia de esta concesi├│n. La concesi├│n puede tener \"usuario\" o \"admin\".",
"oauth_settings": "OAuth",
"oauth_settings_description": "Administrar la configuraci├│n de inicio de sesi├│n de OAuth",
"oauth_settings_more_details": "Para m├бs detalles acerca de esta caracter├нstica, consulte la <link>documentaci├│n</link>.",
@@ -205,7 +221,7 @@
"oauth_storage_quota_claim_description": "Establezca autom├бticamente la cuota de almacenamiento del usuario al valor de esta solicitud.",
"oauth_storage_quota_default": "Cuota de almacenamiento predeterminada (GiB)",
"oauth_storage_quota_default_description": "Cuota en GiB que se utilizar├б cuando no se proporcione ninguna por defecto.",
"oauth_timeout": "Expiraci├│n de solicitud",
"oauth_timeout": "L├нmite de tiempo para la solicitud",
"oauth_timeout_description": "Tiempo de espera de solicitudes en milisegundos",
"password_enable_description": "Iniciar sesi├│n con correo electr├│nico y contrase├▒a",
"password_settings": "Contrase├▒a de Acceso",
@@ -357,10 +373,12 @@
"admin_password": "Contrase├▒a del Administrador",
"administration": "Administraci├│n",
"advanced": "Avanzada",
"advanced_settings_beta_timeline_subtitle": "Prueba la nueva experiencia de la aplicaci├│n",
"advanced_settings_beta_timeline_title": "Cronolog├нa beta",
"advanced_settings_enable_alternate_media_filter_subtitle": "Usa esta opci├│n para filtrar medios durante la sincronizaci├│n seg├║n criterios alternativos. Intenta esto solo si tienes problemas con que la aplicaci├│n detecte todos los ├бlbumes.",
"advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTAL] Usar filtro alternativo de sincronizaci├│n de ├бlbumes del dispositivo",
"advanced_settings_log_level_title": "Nivel de registro: {level}",
"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_subtitle": "Algunos dispositivos tardan mucho en cargar las miniaturas desde los archivos locales. Activa esta opci├│n para cargar im├бgenes remotas en su lugar.",
"advanced_settings_prefer_remote_title": "Preferir im├бgenes remotas",
"advanced_settings_proxy_headers_subtitle": "Configura headers HTTP que Immich incluir├б en cada petici├│n de red",
"advanced_settings_proxy_headers_title": "Cabeceras Proxy",
@@ -405,8 +423,8 @@
"albums": "├Бlbumes",
"albums_count": "{count, plural, one {{count, number} ├Бlbum} other {{count, number} ├Бlbumes}}",
"albums_default_sort_order": "Ordenaci├│n por defecto de los ├бlbumes",
"albums_default_sort_order_description": "Orden de clasificaci├│n inicial de los activos al crear nuevos ├бlbumes.",
"albums_feature_description": "Colecciones de activos que pueden compartirse con otros usuarios.",
"albums_default_sort_order_description": "Orden de clasificaci├│n inicial de los recursos al crear nuevos ├бlbumes.",
"albums_feature_description": "Colecciones de recursos que pueden ser compartidos con otros usuarios.",
"all": "Todos",
"all_albums": "Todos los albums",
"all_people": "Todas las personas",
@@ -427,6 +445,7 @@
"app_settings": "Ajustes de Aplicacion",
"appears_in": "Aparece en",
"archive": "Archivo",
"archive_action_prompt": "{count} a├▒adidos al Archivo",
"archive_or_unarchive_photo": "Archivar o restaurar foto",
"archive_page_no_archived_assets": "No se encontraron elementos archivados",
"archive_page_title": "Archivo ({count})",
@@ -464,13 +483,12 @@
"assets": "elementos",
"assets_added_count": "A├▒adido {count, plural, one {# asset} other {# assets}}",
"assets_added_to_album_count": "A├▒adido {count, plural, one {# asset} other {# assets}} al ├бlbum",
"assets_added_to_name_count": "A├▒adido {count, plural, one {# asset} other {# assets}} a {hasName, select, true {<b>{name}</b>} other {new album}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Asset} other {Assets}} no pueden ser a├▒adidos al album",
"assets_cannot_be_added_to_album_count": "{count, plural, one {El recurso no puede ser a├▒adido al ├бlbum} other {Los recursos no pueden ser a├▒adidos al ├бlbum}}",
"assets_count": "{count, plural, one {# activo} other {# activos}}",
"assets_deleted_permanently": "{count} elemento(s) eliminado(s) permanentemente",
"assets_deleted_permanently_from_server": "{count} recurso(s) eliminado(s) de forma permanente del servidor de Immich",
"assets_downloaded_failed": "{count, plural, one {Descargado archivo # - {error} archivo fallido} other {Descargados # archivos - {error} archivos fallidos}}",
"assets_downloaded_successfully": "{count, plural, one {Archivo # descargado correctamente} other {Archivos # descargados correctamente}}",
"assets_downloaded_failed": "{count, plural, one {# archivo descargado - {error} archivo fallido} other {# archivos descargados - {error} archivos fallidos}}",
"assets_downloaded_successfully": "{count, plural, one {# archivo descargado exitosamente} other {# archivos descargados exitosamente}}",
"assets_moved_to_trash_count": "{count, plural, one {# elemento movido} other {# elementos movidos}} a la papelera",
"assets_permanently_deleted_count": "Eliminado permanentemente {count, plural, one {# elemento} other {# elementos}}",
"assets_removed_count": "Eliminado {count, plural, one {# elemento} other {# elementos}}",
@@ -703,7 +721,7 @@
"daily_title_text_date": "E dd, MMM",
"daily_title_text_date_year": "E dd de MMM, yyyy",
"dark": "Oscuro",
"darkTheme": "Activar tema oscuro",
"dark_theme": "Alternar tema oscuro",
"date_after": "Fecha posterior",
"date_and_time": "Fecha y Hora",
"date_before": "Fecha anterior",
@@ -719,6 +737,7 @@
"default_locale": "Configuraci├│n regional predeterminada",
"default_locale_description": "Formatee fechas y n├║meros seg├║n la configuraci├│n regional de su navegador",
"delete": "Eliminar",
"delete_action_prompt": "{count} eliminados permanentemente",
"delete_album": "Eliminar ├бlbum",
"delete_api_key_prompt": "┬┐Est├б seguro de que desea eliminar esta clave API?",
"delete_dialog_alert": "Estos elementos ser├бn eliminados permanentemente de Immich y de tu dispositivo",
@@ -732,6 +751,7 @@
"delete_key": "Eliminar clave",
"delete_library": "Eliminar biblioteca",
"delete_link": "Eliminar enlace",
"delete_local_action_prompt": "{count} eliminados localmente",
"delete_local_dialog_ok_backed_up_only": "Borrar solo las que tengan copia de seguridad",
"delete_local_dialog_ok_force": "Borrar de todos modos",
"delete_others": "Eliminar otros",
@@ -749,6 +769,7 @@
"direction": "Direcci├│n",
"disabled": "Deshabilitado",
"disallow_edits": "Bloquear edici├│n",
"discord": "Discord",
"discover": "Descubrir",
"discovered_devices": "Dispositivos descubiertos",
"dismiss_all_errors": "Descartar todos los errores",
@@ -761,6 +782,7 @@
"documentation": "Documentaci├│n",
"done": "Hecho",
"download": "Descargar",
"download_action_prompt": "Descargando {count} archivos",
"download_canceled": "Descarga cancelada",
"download_complete": "Descarga completada",
"download_enqueue": "Descarga en cola",
@@ -798,6 +820,7 @@
"edit_key": "Editar clave",
"edit_link": "Editar enlace",
"edit_location": "Editar ubicaci├│n",
"edit_location_action_prompt": "{count} ubicaciones actualizadas",
"edit_location_dialog_title": "Ubicaci├│n",
"edit_name": "Cambiar nombre",
"edit_people": "Editar persona",
@@ -983,6 +1006,7 @@
"failed_to_load_assets": "Error al cargar los activos",
"failed_to_load_folder": "No se pudo cargar la carpeta",
"favorite": "Favorito",
"favorite_action_prompt": "{count} a├▒adidos a Favoritos",
"favorite_or_unfavorite_photo": "Foto favorita o no favorita",
"favorites": "Favoritos",
"favorites_page_no_favorites": "No se encontraron elementos marcados como favoritos",
@@ -1126,6 +1150,7 @@
"library_page_sort_created": "Creado m├бs recientemente",
"library_page_sort_last_modified": "├Ъltima modificaci├│n",
"library_page_sort_title": "T├нtulo del ├бlbum",
"licenses": "Licencias",
"light": "Claro",
"like_deleted": "Me gusta eliminado",
"link_motion_video": "Enlazar v├нdeo en movimiento",
@@ -1135,7 +1160,7 @@
"list": "Listar",
"loading": "Cargando",
"loading_search_results_failed": "Error al cargar los resultados de la b├║squeda",
"local_asset_cast_failed": "No se puede emitir un activo que no est├б cargado en el servidor",
"local_asset_cast_failed": "No es posible transmitir un recurso que no est├б subido al servidor",
"local_network": "Red local",
"local_network_sheet_info": "La aplicaci├│n se conectar├б al servidor a trav├йs de esta URL cuando utilice la red Wi-Fi especificada",
"location_permission": "Permiso de ubicaci├│n",
@@ -1238,13 +1263,14 @@
"merged_people_count": "Fusionada {count, plural, one {# persona} other {# personas}}",
"minimize": "Minimizar",
"minute": "Minuto",
"missing": "Perdido",
"missing": "Faltante",
"model": "Modelo",
"month": "Mes",
"monthly_title_text_date_format": "MMMM y",
"monthly_title_text_date_format": "MMMM a",
"more": "Mas",
"move": "Mover",
"move_off_locked_folder": "Mover fuera de la carpeta protegida",
"move_to_lock_folder_action_prompt": "{count} a├▒adidos a la carpeta protegida",
"move_to_locked_folder": "Mover a la carpeta protegida",
"move_to_locked_folder_confirmation": "Estas fotos y v├нdeos ser├бn eliminados de todos los ├бlbumes y s├│lo podr├бn ser vistos desde la carpeta protegida",
"moved_to_archive": "Movido(s) {count, plural, one {# recurso} other {# recursos}} a archivo",
@@ -1277,7 +1303,7 @@
"no_archived_assets_message": "Archive fotos y videos para ocultarlos de su vista de Fotos",
"no_assets_message": "HAZ CLIC PARA SUBIR TU PRIMERA FOTO",
"no_assets_to_show": "No hay elementos a mostrar",
"no_cast_devices_found": "Dispositivos de difusi├│n no encontrados",
"no_cast_devices_found": "No se encontraron dispositivos de transmisi├│n",
"no_duplicates_found": "No se encontraron duplicados.",
"no_exif_info_available": "No hay informaci├│n exif disponible",
"no_explore_results_message": "Sube m├бs fotos para explorar tu colecci├│n.",
@@ -1494,7 +1520,9 @@
"remove_custom_date_range": "Eliminar intervalo de fechas personalizado",
"remove_deleted_assets": "Eliminar archivos sin conexi├│n",
"remove_from_album": "Eliminar del ├бlbum",
"remove_from_album_action_prompt": "{count} eliminado del ├бlbum",
"remove_from_favorites": "Quitar de favoritos",
"remove_from_lock_folder_action_prompt": "{count} eliminado de la carpeta protegida",
"remove_from_locked_folder": "Eliminar de la carpeta protegida",
"remove_from_locked_folder_confirmation": "┬┐Est├бs seguro de que deseas mover estas fotos y v├нdeos fuera de la carpeta protegida? Ser├бn visibles en tu biblioteca.",
"remove_from_shared_link": "Eliminar desde enlace compartido",
@@ -1558,17 +1586,17 @@
"search_city": "Buscar ciudad...",
"search_country": "Buscar pa├нs...",
"search_filter_apply": "Aplicar filtros",
"search_filter_camera_title": "Elige tipo de c├бmara",
"search_filter_camera_title": "Elegir tipo de c├бmara",
"search_filter_date": "Fecha",
"search_filter_date_interval": "{start} al {end}",
"search_filter_date_title": "Selecciona un intervalo de fechas",
"search_filter_date_title": "Seleccionar un intervalo de fechas",
"search_filter_display_option_not_in_album": "No en ├бlbum",
"search_filter_display_options": "Opciones de visualizaci├│n",
"search_filter_filename": "Buscar por nombre de archivo",
"search_filter_location": "Ubicaci├│n",
"search_filter_location_title": "Seleccionar una ubicaci├│n",
"search_filter_media_type": "Tipo de archivo",
"search_filter_media_type_title": "Selecciona el tipo de archivo",
"search_filter_media_type_title": "Seleccionar el tipo de archivo",
"search_filter_people_title": "Seleccionar personas",
"search_for": "Buscar",
"search_for_existing_person": "Buscar persona existente",
@@ -1591,23 +1619,23 @@
"search_people": "Buscar personas",
"search_places": "Buscar lugar",
"search_rating": "Buscar por calificaci├│n...",
"search_result_page_new_search_hint": "Nueva Busqueda",
"search_result_page_new_search_hint": "Nueva B├║squeda",
"search_settings": "Ajustes de la b├║squeda",
"search_state": "Buscar regi├│n/estado...",
"search_suggestion_list_smart_search_hint_1": "La b├║squeda inteligente est├б habilitada por defecto, para buscar metadatos utiliza esta sintaxis ",
"search_suggestion_list_smart_search_hint_2": "m:tu-t├йrmino-de-b├║squeda",
"search_tags": "Buscando etiquetas...",
"search_tags": "Buscar etiquetas...",
"search_timezone": "Buscar zona horaria...",
"search_type": "Tipo de b├║squeda",
"search_your_photos": "Busca tus fotos",
"searching_locales": "Buscando sitios...",
"second": "Segundo",
"see_all_people": "Ver todas las personas",
"select": "Selecciona",
"select": "Seleccionar",
"select_album_cover": "Seleccionar portada del ├бlbum",
"select_all": "Seleccionar todo",
"select_all_duplicates": "Seleccionar todos los duplicados",
"select_all_in": "Selecciona todos en {group}",
"select_all_in": "Seleccionar todos en {group}",
"select_avatar_color": "Seleccionar color del avatar",
"select_face": "Seleccionar cara",
"select_featured_photo": "Seleccionar foto principal",
@@ -1638,7 +1666,7 @@
"set_date_of_birth": "Establecer fecha de nacimiento",
"set_profile_picture": "Establecer foto de perfil",
"set_slideshow_to_fullscreen": "Mostrar diapositivas en pantalla completa",
"set_stack_primary_asset": "Establecer como activo principal",
"set_stack_primary_asset": "Establecer como recurso principal",
"setting_image_viewer_help": "El visor de detalles carga primero la miniatura peque├▒a, luego carga la vista previa de tama├▒o mediano (si est├б habilitada), finalmente carga la original (si est├б habilitada).",
"setting_image_viewer_original_subtitle": "Activar para cargar la imagen en resoluci├│n original (┬бmuy grande!). Deshabilitar para reducir el consumo de datos (de red y cach├й).",
"setting_image_viewer_original_title": "Cargar imagen original",
@@ -1666,6 +1694,7 @@
"settings_saved": "Ajustes guardados",
"setup_pin_code": "Establecer un PIN",
"share": "Compartir",
"share_action_prompt": "{count} recursos compartidos",
"share_add_photos": "Agregar fotos",
"share_assets_selected": "{count} seleccionado(s)",
"share_dialog_preparing": "Preparando...",
@@ -1767,6 +1796,7 @@
"sort_title": "T├нtulo",
"source": "Origen",
"stack": "Apilar",
"stack_action_prompt": "{count} apilados",
"stack_duplicates": "Apilar duplicados",
"stack_select_one_photo": "Selecciona una imagen principal para la pila",
"stack_selected_photos": "Apilar fotos seleccionadas",
@@ -1776,7 +1806,7 @@
"start_date": "Fecha de inicio",
"state": "Estado",
"status": "Estado",
"stop_casting": "Parar difusi├│n",
"stop_casting": "Detener transmisi├│n",
"stop_motion_photo": "Parar foto en movimiento",
"stop_photo_sharing": "┬┐Dejar de compartir tus fotos?",
"stop_photo_sharing_description": "{partner} ya no podr├б acceder a tus fotos.",
@@ -1837,6 +1867,7 @@
"total": "Total",
"total_usage": "Uso total",
"trash": "Papelera",
"trash_action_prompt": "{count} movidos a la papelera",
"trash_all": "Descartar todo",
"trash_count": "Descartar {count, number}",
"trash_delete_asset": "Borrar/Eliminar archivo",
@@ -1854,9 +1885,11 @@
"unable_to_change_pin_code": "No se ha podido cambiar el PIN",
"unable_to_setup_pin_code": "No se ha podido establecer el PIN",
"unarchive": "Desarchivar",
"unarchive_action_prompt": "{count} eliminados del archivo",
"unarchived_count": "{count, plural, one {# No archivado} other {# No archivados}}",
"undo": "Deshacer",
"unfavorite": "Retirar favorito",
"unfavorite_action_prompt": "{count} eliminados de favoritos",
"unhide_person": "Mostrar persona",
"unknown": "Desconocido",
"unknown_country": "Pa├нs desconocido",
@@ -1874,7 +1907,9 @@
"unselect_all_duplicates": "Deseleccionar todos los duplicados",
"unselect_all_in": "Deselecciona todos en {group}",
"unstack": "Desapilar",
"unstack_action_prompt": "{count} desapilado(s)",
"unstacked_assets_count": "Desapilado(s) {count, plural, one {# elemento} other {# elementos}}",
"untagged": "Sin etiqueta",
"up_next": "A continuaci├│n",
"updated_at": "Actualizado",
"updated_password": "Contrase├▒a actualizada",
@@ -1911,6 +1946,7 @@
"user_usage_stats_description": "Ver estad├нsticas de uso de la cuenta",
"username": "Nombre de usuario",
"users": "Usuarios",
"users_added_to_album_count": "{count, plural, one {# usuario agregado} other {# usuarios agregados}} al ├бlbum",
"utilities": "Utilidades",
"validate": "Validar",
"validate_endpoint_error": "Por favor, introduce una URL v├бlida",
+59 -16
View File
@@ -33,11 +33,11 @@
"added_to_favorites": "Lisatud lemmikutesse",
"added_to_favorites_count": "{count, number} pilti lisatud lemmikutesse",
"admin": {
"add_exclusion_pattern_description": "Lisa v├дlistamismustreid. Toetatud on metam├дrgid *, ** ja ?. K├╡ikide kataloogis nimega \"Raw\" olevate failide ignoreerimiseks kasuta \"**/Raw/**\". K├╡ikide .tif failide ignoreerimiseks kasuta \"**/*.tif\". Absouutse tee ignoreerimiseks kasuta \"/path/to/ignore/**\".",
"add_exclusion_pattern_description": "Lisa v├дlistamismustreid. Toetatud on metam├дrgid *, ** ja ?. K├╡ikide kataloogis nimega \"Raw\" olevate failide ignoreerimiseks kasuta \"**/Raw/**\". K├╡ikide \".tif\" l├╡puga failide ignoreerimiseks kasuta \"**/*.tif\". Absouutse tee ignoreerimiseks kasuta \"/tee/mida/ignoreerida/**\".",
"admin_user": "Administraator",
"asset_offline_description": "Seda v├дlise kogu ├╝ksust ei leitud kettalt ning see liigutati pr├╝gikasti. Kui faili asukoht kogu siseselt muutus, leiad vastava uue ├╝ksuse oma ajajoonelt. ├Ьksuse taastamiseks veendu, et allpool toodud failitee on Immich'ile k├дttesaadav ning skaneeri kogu uuesti.",
"asset_offline_description": "Seda v├дlise kogu ├╝ksust ei leitud kettalt ning see liigutati pr├╝gikasti. Kui faili asukoht muutus kogu siseselt, leiad vastava uue ├╝ksuse oma ajajoonelt. ├Ьksuse taastamiseks veendu, et allpool toodud failitee on Immich'ile k├дttesaadav ning skaneeri kogu uuesti.",
"authentication_settings": "Autentimise seaded",
"authentication_settings_description": "Halda parooli, OAuth ja muid autentimise seadeid",
"authentication_settings_description": "Halda parooli, OAuth'i ja muid autentimise seadeid",
"authentication_settings_disable_all": "Kas oled kindel, et soovid k├╡ik sisselogimismeetodid v├дlja l├╝litada? Sisselogimine l├╝litatakse t├дielikult v├дlja.",
"authentication_settings_reenable": "Et taas lubada, kasuta <link>serveri k├дsku</link>.",
"background_task_job": "Tausttegumid",
@@ -47,26 +47,26 @@
"backup_settings": "Andmebaasi t├╡mmiste seaded",
"backup_settings_description": "Halda andmebaasi t├╡mmiste seadeid.",
"cleared_jobs": "T├╢├╢ted eemaldatud: {job}",
"config_set_by_file": "Konfiguratsioon on m├д├дratud konfifaili abil",
"config_set_by_file": "Konfiguratsioon on m├д├дratud konfiguratsioonifaili abil",
"confirm_delete_library": "Kas oled kindel, et soovid kustutada {library} kogu?",
"confirm_delete_library_assets": "Kas oled kindel, et soovid selle kogu kustutada? Sellega kustutatakse {count, plural, one {# sisalduv ├╝ksus} other {k├╡ik # sisalduvat ├╝ksust}} Immich'ist ning seda ei saa tagasi v├╡tta. Failid j├д├дvad kettale alles.",
"confirm_delete_library_assets": "Kas oled kindel, et soovid selle kogu kustutada? Sellega kustutatakse {count, plural, one {# sisalduv ├╝ksus} other {k├╡ik # sisalduvat ├╝ksust}} Immich'ist ning seda toimingut ei saa tagasi v├╡tta. Failid j├д├дvad kettale alles.",
"confirm_email_below": "Kinnitamiseks sisesta allpool \"{email}\"",
"confirm_reprocess_all_faces": "Kas oled kindel, et soovid k├╡ik n├дod uuesti t├╢├╢delda? See eemaldab k├╡ik nimega isikud.",
"confirm_user_password_reset": "Kas oled kindel, et soovid kasutaja {user} parooli l├дhtestada?",
"confirm_user_pin_code_reset": "Kas oled kindel, et soovid kasutaja {user} PIN-koodi l├дhtestada?",
"create_job": "Lisa t├╢├╢de",
"cron_expression": "Cron avaldis",
"cron_expression_description": "Sea skaneerimise intervall cron formaadis. Rohkema info jaoks vaata nt. <link>Crontab Guru</link>",
"cron_expression_description": "M├д├дra skaneerimise intervall cron formaadis. Rohkema info jaoks vaata nt. <link>Crontab Guru</link>",
"cron_expression_presets": "Eelseadistatud cron avaldised",
"disable_login": "Keela sisselogimine",
"duplicate_detection_job_description": "Rakenda ├╝ksustele masin├╡pet, et leida sarnaseid pilte. Kasutab nutiotsingut",
"exclusion_pattern_description": "V├дlistamismustrid v├╡imaldavad ignoreerida faile ja kaustu kogu skaneerimisel. See on kasulik, kui sul on kaustu, mis sisaldavad faile, mida sa ei soovi importida, nagu RAW failid.",
"exclusion_pattern_description": "V├дlistamismustrid v├╡imaldavad ignoreerida faile ja kaustu selle kogu skaneerimisel. See on kasulik, kui sul on kaustu, mis sisaldavad faile, mida sa ei soovi importida, nagu RAW failid.",
"external_library_management": "V├дliste kogude haldus",
"face_detection": "N├дoavastus",
"face_detection_description": "Avasta ├╝ksustest n├дgusid masin├╡ppe abil. Videote puhul kasutatakse ainult pisipilti. \"V├дrskenda\" t├╢├╢tleb k├╡ik ├╝ksused uuesti. \"L├дhtesta\" kustutab lisaks k├╡ik seni leitud n├дed. \"Puuduvad\" v├╡tab ette ├╝ksused, mida pole veel t├╢├╢deldud. Avastatud n├дod suunatakse n├дotuvastusse, et grupeerida nad olemasolevateks v├╡i uuteks isikuteks.",
"face_detection_description": "Avasta ├╝ksustest n├дgusid masin├╡ppe abil. Videote puhul kasutatakse ainult pisipilti. \"V├дrskenda\" t├╢├╢tleb k├╡ik ├╝ksused uuesti. \"L├дhtesta\" kustutab lisaks k├╡ik seni leitud n├дod. \"Puuduvad\" v├╡tab ette ├╝ksused, mida pole veel t├╢├╢deldud. Avastatud n├дod suunatakse n├дotuvastusse, et grupeerida nad olemasolevateks v├╡i uuteks isikuteks.",
"facial_recognition_job_description": "Grupeeri avastatud n├дod inimesteks. See samm k├дivitub siis, kui n├дoavastus on l├╡ppenud. \"L├дhtesta\" grupeerib k├╡ik n├дod uuesti. \"Puuduvad\" v├╡tab ette n├дod, mida pole isikuga seostatud.",
"failed_job_command": "K├дsk {command} eba├╡nnestus t├╢├╢tes: {job}",
"force_delete_user_warning": "HOIATUS: See kustutab koheselt kasutaja ja k├╡ik ├╝ksused. Seda ei saa tagasi v├╡tta ja faile ei saa taastada.",
"force_delete_user_warning": "HOIATUS: See kustutab koheselt kasutaja ja k├╡ik tema ├╝ksused. Toimingut ei saa tagasi v├╡tta ja faile ei saa taastada.",
"image_format": "Formaat",
"image_format_description": "WebP failid on v├дiksemad kui JPEG, aga kodeerimine on aeglasem.",
"image_fullsize_description": "T├дism├╡├╡dus pilt ilma metaandmeteta, kasutatakse sisse suumimisel",
@@ -77,9 +77,9 @@
"image_prefer_embedded_preview": "Eelista manustatud eelvaadet",
"image_prefer_embedded_preview_setting_description": "Kasuta pildit├╢├╢tluse sisendina v├╡imalusel RAW fotodesse manustatud eelvaateid. See v├╡ib m├╡nede piltide puhul anda tulemuseks t├дpsemad v├дrvid, aga eelvaate kvaliteet s├╡ltub konkreetsest kaamerast ning pildis v├╡ib olla rohkem tihendusm├╝ra.",
"image_prefer_wide_gamut": "Eelista laia v├дrvigammat",
"image_prefer_wide_gamut_setting_description": "Kasuta pisipiltide jaoks Display P3. See s├дilitab paremini laia v├дrviruumiga piltide erksuse, aga vanematel seadmetel ja vanemate brauseritega v├╡ivad pildid teistsugused v├дlja n├дha. sRGB pildid s├дilitatakse v├дrvinihete v├дltimiseks.",
"image_prefer_wide_gamut_setting_description": "Kasuta pisipiltide jaoks Display P3. See s├дilitab paremini laia v├дrviruumiga piltide erksuse, kuid vanematel seadmetel ja vanemate brauseritega v├╡ivad pildid teistsugused v├дlja n├дha. sRGB pildid s├дilitatakse v├дrvinihete v├дltimiseks.",
"image_preview_description": "Keskmise suurusega pilt ilma metaandmeteta, kasutusel ├╝ksiku ├╝ksuse vaatamise ja masin├╡ppe jaoks",
"image_preview_quality_description": "Eelvaate kvaliteet vahemikus 1-100. K├╡rgem v├д├дrtus on parem, aga tekitab suuremaid faile ning v├╡ib m├╡jutada rakenduse t├╢├╢kiirust. Madala v├д├дrtuse seadmine v├╡ib m├╡jutada masin├╡ppe kvaliteeti.",
"image_preview_quality_description": "Eelvaate kvaliteet vahemikus 1-100. K├╡rgem v├д├дrtus on parem, aga tekitab suuremaid faile ning v├╡ib m├╡jutada rakenduse t├╢├╢kiirust. Madal v├д├дrtus v├╡ib m├╡jutada masin├╡ppe kvaliteeti.",
"image_preview_title": "Eelvaate seaded",
"image_quality": "Kvaliteet",
"image_resolution": "Resolutsioon",
@@ -92,7 +92,7 @@
"job_concurrency": "{job} samaaegsus",
"job_created": "T├╢├╢de lisatud",
"job_not_concurrency_safe": "Seda t├╢├╢det pole ohutu samaaegselt k├дivitada.",
"job_settings": "T├╢├╢te seaded",
"job_settings": "T├╢├╢dete seaded",
"job_settings_description": "Halda t├╢├╢dete samaaegsust",
"job_status": "T├╢├╢te seisund",
"jobs_delayed": "{jobCount, plural, other {# edasi l├╝katud}}",
@@ -166,6 +166,20 @@
"metadata_settings_description": "Halda metaandmete seadeid",
"migration_job": "Migratsioon",
"migration_job_description": "Migreeri ├╝ksuste ja n├дgude pisipildid uusimale kaustastruktuurile",
"nightly_tasks_cluster_faces_setting_description": "K├дivita v├дrskelt avastatud n├дgudel n├дotuvastus",
"nightly_tasks_cluster_new_faces_setting": "Grupeeri uued n├дod",
"nightly_tasks_database_cleanup_setting": "Andmebaasi puhastuse tegumid",
"nightly_tasks_database_cleanup_setting_description": "Eemalda andmebaasist vanad, aegunud andmed",
"nightly_tasks_generate_memories_setting": "Genereeri m├дlestused",
"nightly_tasks_generate_memories_setting_description": "Loo ├╝ksustest uued m├дlestused",
"nightly_tasks_missing_thumbnails_setting": "Genereeri puuduvad pisipildid",
"nightly_tasks_missing_thumbnails_setting_description": "Suuna ilma pisipiltideta ├╝ksused pisipiltide genereerimisele",
"nightly_tasks_settings": "├Цiste tegumite seaded",
"nightly_tasks_settings_description": "Halda ├╢iseid tegumeid",
"nightly_tasks_start_time_setting": "Algusaeg",
"nightly_tasks_start_time_setting_description": "Aeg, millal server alustab ├╢iste tegumite k├дivitamist",
"nightly_tasks_sync_quota_usage_setting": "S├╝nkrooni kvoodikasutus",
"nightly_tasks_sync_quota_usage_setting_description": "Uuenda kasutaja talletuskvoot jooksva kasutuse alusel",
"no_paths_added": "├Ьhtegi teed pole",
"no_pattern_added": "Mustreid ei ole",
"note_apply_storage_label_previous_assets": "M├дrkus: Et rakendada talletussilt varem ├╝leslaaditud ├╝ksustele, k├дivita",
@@ -196,6 +210,8 @@
"oauth_mobile_redirect_uri": "Mobiilne ├╝mbersuunamise URI",
"oauth_mobile_redirect_uri_override": "Mobiilse ├╝mbersuunamise URI ├╝lekirjutamine",
"oauth_mobile_redirect_uri_override_description": "L├╝lita sisse, kui OAuth pakkuja ei luba mobiilset URI-d, n├дiteks ''{callback}''",
"oauth_role_claim": "Rolli v├дide",
"oauth_role_claim_description": "Anna selle v├дite olemasolul automaatselt administraatori ligip├д├дs. V├дite v├д├дrtus v├╡ib olla 'user' v├╡i 'admin'.",
"oauth_settings": "OAuth",
"oauth_settings_description": "Halda OAuth sisselogimise seadeid",
"oauth_settings_more_details": "Selle funktsiooni kohta rohkem teada saamiseks loe <link>dokumentatsiooni</link>.",
@@ -357,10 +373,12 @@
"admin_password": "Administraatori parool",
"administration": "Administratsioon",
"advanced": "T├дpsemad valikud",
"advanced_settings_beta_timeline_subtitle": "Koge uut rakendust",
"advanced_settings_beta_timeline_title": "Beeta ajajoon",
"advanced_settings_enable_alternate_media_filter_subtitle": "Kasuta seda valikut, et filtreerida s├╝nkroonimise ajal ├╝ksuseid alternatiivsete kriteeriumite alusel. Proovi seda ainult siis, kui rakendusel on probleeme k├╡igi albumite tuvastamisega.",
"advanced_settings_enable_alternate_media_filter_title": "[EKSPERIMENTAALNE] Kasuta alternatiivset seadme albumi s├╝nkroonimise filtrit",
"advanced_settings_log_level_title": "Logimistase: {level}",
"advanced_settings_prefer_remote_subtitle": "M├╡ned seadmed laadivad seadmes olevate ├╝ksuste pisipilte piinavalt aeglaselt. Aktiveeri see seadistus, et laadida selle asemel kaugpilte.",
"advanced_settings_prefer_remote_subtitle": "M├╡ned seadmed laadivad lokaalsete ├╝ksuste pisipilte piinavalt aeglaselt. Aktiveeri see seadistus, et laadida selle asemel kaugpilte.",
"advanced_settings_prefer_remote_title": "Eelista kaugpilte",
"advanced_settings_proxy_headers_subtitle": "M├д├дra vaheserveri p├дised, mida Immich peaks iga p├дringuga saatma",
"advanced_settings_proxy_headers_title": "Vaheserveri p├дised",
@@ -388,6 +406,7 @@
"album_options": "Albumi valikud",
"album_remove_user": "Eemalda kasutaja?",
"album_remove_user_confirmation": "Kas oled kindel, et soovid kasutaja {user} eemaldada?",
"album_search_not_found": "Otsingule vastavaid albumeid ei leitud",
"album_share_no_users": "Paistab, et oled seda albumit k├╡ikide kasutajatega jaganud, v├╡i pole ├╝htegi kasutajat, kellega jagada.",
"album_updated": "Album muudetud",
"album_updated_setting_description": "Saa teavitus e-posti teel, kui jagatud albumis on uusi ├╝ksuseid",
@@ -407,6 +426,7 @@
"albums_default_sort_order": "Vaikimisi albumi j├дrjestus",
"albums_default_sort_order_description": "Uute albumite lisamisel ├╝ksuste esialgne j├дrjekord.",
"albums_feature_description": "├Ьksuste kollektsioonid, mida saab teiste kasutajatega jagada.",
"albums_on_device_count": "Albumid seadmel ({count})",
"all": "K├╡ik",
"all_albums": "K├╡ik albumid",
"all_people": "K├╡ik isikud",
@@ -427,6 +447,7 @@
"app_settings": "Rakenduse seaded",
"appears_in": "Albumid",
"archive": "Arhiiv",
"archive_action_prompt": "{count} lisatud arhiivi",
"archive_or_unarchive_photo": "Arhiveeri v├╡i taasta foto",
"archive_page_no_archived_assets": "Arhiveeritud ├╝ksuseid ei leitud",
"archive_page_title": "Arhiveeri ({count})",
@@ -464,7 +485,6 @@
"assets": "├Ьksused",
"assets_added_count": "{count, plural, one {# ├╝ksus} other {# ├╝ksust}} lisatud",
"assets_added_to_album_count": "{count, plural, one {# ├╝ksus} other {# ├╝ksust}} albumisse lisatud",
"assets_added_to_name_count": "{count, plural, one {# ├╝ksus} other {# ├╝ksust}} lisatud {hasName, select, true {albumisse <b>{name}</b>} other {uude albumisse}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {├Ьksust} other {├Ьksuseid}} ei saa albumisse lisada",
"assets_count": "{count, plural, one {# ├╝ksus} other {# ├╝ksust}}",
"assets_deleted_permanently": "{count} ├╝ksus(t) j├д├дdavalt kustutatud",
@@ -587,6 +607,7 @@
"cancel": "Katkesta",
"cancel_search": "Katkesta otsing",
"canceled": "T├╝histatud",
"canceling": "T├╝histamine",
"cannot_merge_people": "Ei saa isikuid ├╝hendada",
"cannot_undo_this_action": "Sa ei saa seda tagasi v├╡tta!",
"cannot_update_the_description": "Kirjelduse muutmine eba├╡nnestus",
@@ -703,7 +724,7 @@
"daily_title_text_date": "d. MMMM",
"daily_title_text_date_year": "d. MMMM yyyy",
"dark": "Tume",
"darkTheme": "L├╝lita tume teema",
"dark_theme": "L├╝lita tume teema",
"date_after": "Kuup├дev p├дrast",
"date_and_time": "Kuup├дev ja kellaaeg",
"date_before": "Kuup├дev enne",
@@ -719,6 +740,7 @@
"default_locale": "Vaikimisi lokaat",
"default_locale_description": "Vorminda kuup├дevad ja numbrid vastavalt brauseri lokaadile",
"delete": "Kustuta",
"delete_action_prompt": "{count} j├д├дdavalt kustutatud",
"delete_album": "Kustuta album",
"delete_api_key_prompt": "Kas oled kindel, et soovid selle API v├╡tme kustutada?",
"delete_dialog_alert": "Need ├╝ksused kustutatakse j├д├дdavalt Immich'ist ja sinu seadmest",
@@ -732,6 +754,7 @@
"delete_key": "Kustuta v├╡ti",
"delete_library": "Kustuta kogu",
"delete_link": "Kustuta link",
"delete_local_action_prompt": "{count} kustutatud lokaalselt",
"delete_local_dialog_ok_backed_up_only": "Kustuta ainult varundatud",
"delete_local_dialog_ok_force": "Kustuta sellegipoolest",
"delete_others": "Kustuta teised",
@@ -745,6 +768,7 @@
"description": "Kirjeldus",
"description_input_hint_text": "Lisa kirjeldus...",
"description_input_submit_error": "Viga kirjelduse muutmisel, rohkem infot leiad logist",
"deselect_all": "Eemalda k├╡ik valikust",
"details": "├Ьksikasjad",
"direction": "Suund",
"disabled": "V├дlja l├╝litatud",
@@ -762,6 +786,7 @@
"documentation": "Dokumentatsioon",
"done": "Tehtud",
"download": "Laadi alla",
"download_action_prompt": "{count} ├╝ksust laaditakse alla",
"download_canceled": "Allalaadimine katkestatud",
"download_complete": "Allalaadimine l├╡petatud",
"download_enqueue": "Allalaadimine ootel",
@@ -799,6 +824,7 @@
"edit_key": "Muuda v├╡tit",
"edit_link": "Muuda linki",
"edit_location": "Muuda asukohta",
"edit_location_action_prompt": "{count} asukoht muudetud",
"edit_location_dialog_title": "Asukoht",
"edit_name": "Muuda nime",
"edit_people": "Muuda isikuid",
@@ -817,6 +843,7 @@
"empty_trash": "T├╝hjenda pr├╝gikast",
"empty_trash_confirmation": "Kas oled kindel, et soovid pr├╝gikasti t├╝hjendada? See eemaldab k├╡ik seal olevad ├╝ksused Immich'ist j├д├дdavalt.\nSeda tegevust ei saa tagasi v├╡tta!",
"enable": "Luba",
"enable_backup": "Luba varundus",
"enable_biometric_auth_description": "Biomeetrilise autentimise lubamiseks sisesta oma PIN-kood",
"enabled": "Lubatud",
"end_date": "L├╡ppkuup├дev",
@@ -984,6 +1011,7 @@
"failed_to_load_assets": "├Ьksuste laadimine eba├╡nnestus",
"failed_to_load_folder": "Kausta laadimine eba├╡nnestus",
"favorite": "Lemmik",
"favorite_action_prompt": "{count} lisatud lemmikutesse",
"favorite_or_unfavorite_photo": "Lisa foto lemmikutesse v├╡i eemalda lemmikutest",
"favorites": "Lemmikud",
"favorites_page_no_favorites": "Lemmikuid ├╝ksuseid ei leitud",
@@ -1099,7 +1127,7 @@
"ios_debug_info_no_processes_queued": "Taustaprotsesse pole j├дrjekorras",
"ios_debug_info_no_sync_yet": "Taustal s├╝nkroonimise t├╢├╢de pole veel k├дinud",
"ios_debug_info_processes_queued": "{count, plural, one {{count} taustaprotsess j├дrjekorras} other {{count} taustaprotsessi j├дrjekorras}}",
"ios_debug_info_processing_ran_at": "T├╢├╢tlemine k├дis {dateTime}",
"ios_debug_info_processing_ran_at": "T├╢├╢tlemine toimus {dateTime}",
"items_count": "{count, plural, one {# ├╝ksus} other {# ├╝ksust}}",
"jobs": "T├╢├╢ted",
"keep": "J├дta alles",
@@ -1127,6 +1155,7 @@
"library_page_sort_created": "Loomise aeg",
"library_page_sort_last_modified": "Viimase muutmise aeg",
"library_page_sort_title": "Albumi pealkiri",
"licenses": "Litsentsid",
"light": "Hele",
"like_deleted": "Meeldimine kustutatud",
"link_motion_video": "Lingi liikuv video",
@@ -1246,6 +1275,7 @@
"more": "Rohkem",
"move": "Liiguta",
"move_off_locked_folder": "Liiguta lukustatud kaustast v├дlja",
"move_to_lock_folder_action_prompt": "{count} lisatud lukustatud kausta",
"move_to_locked_folder": "Liiguta lukustatud kausta",
"move_to_locked_folder_confirmation": "Need fotod ja videod eemaldatakse k├╡igist albumitest ning nad on n├дhtavad ainult lukustatud kaustas",
"moved_to_archive": "{count, plural, one {# ├╝ksus} other {# ├╝ksust}} liigutatud arhiivi",
@@ -1460,6 +1490,7 @@
"purchase_server_description_2": "Toetaja staatus",
"purchase_server_title": "Server",
"purchase_settings_server_activated": "Serveri tootev├╡tit haldab administraator",
"queue_status": "J├дrjekorras {count}/{total}",
"rating": "Hinnang",
"rating_clear": "T├╝hjenda hinnang",
"rating_count": "{count, plural, one {# t├дrn} other {# t├дrni}}",
@@ -1495,7 +1526,9 @@
"remove_custom_date_range": "Eemalda kohandatud kuup├дevavahemik",
"remove_deleted_assets": "Eemalda kustutatud ├╝ksused",
"remove_from_album": "Eemalda albumist",
"remove_from_album_action_prompt": "{count} eemaldatud albumist",
"remove_from_favorites": "Eemalda lemmikutest",
"remove_from_lock_folder_action_prompt": "{count} eemaldatud lukustatud kaustast",
"remove_from_locked_folder": "Eemalda lukustatud kaustast",
"remove_from_locked_folder_confirmation": "Kas oled kindel, et soovid need fotod ja videod lukustatud kaustast v├дlja liigutada? Need muutuvad su kogus n├дhtavaks.",
"remove_from_shared_link": "Eemalda jagatud lingist",
@@ -1667,6 +1700,7 @@
"settings_saved": "Seaded salvestatud",
"setup_pin_code": "Seadista PIN-kood",
"share": "Jaga",
"share_action_prompt": "Jagatud {count} ├╝ksust",
"share_add_photos": "Lisa fotosid",
"share_assets_selected": "{count} valitud",
"share_dialog_preparing": "Ettevalmistamine...",
@@ -1768,6 +1802,7 @@
"sort_title": "Pealkiri",
"source": "L├дhtekood",
"stack": "Virnasta",
"stack_action_prompt": "{count} virnastatud",
"stack_duplicates": "Virnasta duplikaadid",
"stack_select_one_photo": "Vali virnale kaanefoto",
"stack_selected_photos": "Virnasta valitud fotod",
@@ -1838,6 +1873,7 @@
"total": "Kokku",
"total_usage": "Kogukasutus",
"trash": "Pr├╝gikast",
"trash_action_prompt": "{count} liigutatud pr├╝gikasti",
"trash_all": "K├╡ik pr├╝gikasti",
"trash_count": "Liiguta {count, number} pr├╝gikasti",
"trash_delete_asset": "Kustuta ├╝ksus",
@@ -1855,9 +1891,11 @@
"unable_to_change_pin_code": "PIN-koodi muutmine eba├╡nnestus",
"unable_to_setup_pin_code": "PIN-koodi seadistamine eba├╡nnestus",
"unarchive": "Taasta arhiivist",
"unarchive_action_prompt": "{count} eemaldatud arhiivist",
"unarchived_count": "{count, plural, other {# arhiivist taastatud}}",
"undo": "V├╡ta tagasi",
"unfavorite": "Eemalda lemmikutest",
"unfavorite_action_prompt": "{count} eemaldatud lemmikutest",
"unhide_person": "├Дra peida isikut",
"unknown": "Teadmata",
"unknown_country": "Tundmatu riik",
@@ -1875,12 +1913,15 @@
"unselect_all_duplicates": "├Дra vali duplikaate",
"unselect_all_in": "├Дra vali ├╝htegi grupis {group}",
"unstack": "Eralda",
"unstack_action_prompt": "{count} eraldatud",
"unstacked_assets_count": "{count, plural, one {# ├╝ksus} other {# ├╝ksust}} eraldatud",
"untagged": "Sildistamata",
"up_next": "J├дrgmine",
"updated_at": "Uuendatud",
"updated_password": "Parool muudetud",
"upload": "Laadi ├╝les",
"upload_concurrency": "├Ьleslaadimise samaaegsus",
"upload_details": "├Ьleslaadimise ├╝ksikasjad",
"upload_dialog_info": "Kas soovid valitud ├╝ksuse(d) serverisse varundada?",
"upload_dialog_title": "├Ьksuse ├╝leslaadimine",
"upload_errors": "├Ьleslaadimine l├╡petatud {count, plural, one {# veaga} other {# veaga}}, uute ├╝ksuste n├дgemiseks v├дrskenda lehte.",
@@ -1912,6 +1953,7 @@
"user_usage_stats_description": "Vaata konto kasutuse statistikat",
"username": "Kasutajanimi",
"users": "Kasutajad",
"users_added_to_album_count": "{count, plural, one {# kasutaja} other {# kasutajat}} lisatud albumisse",
"utilities": "T├╢├╢riistad",
"validate": "Valideeri",
"validate_endpoint_error": "Sisesta korrektne URL",
@@ -1930,6 +1972,7 @@
"view_album": "Vaata albumit",
"view_all": "Vaata k├╡iki",
"view_all_users": "Vaata k├╡iki kasutajaid",
"view_details": "Vaata ├╝ksikasju",
"view_in_timeline": "Vaata ajajoonel",
"view_link": "Vaata linki",
"view_links": "Vaata linke",
+65 -8
View File
@@ -166,6 +166,20 @@
"metadata_settings_description": "Hallitse metatietoja",
"migration_job": "Migraatio",
"migration_job_description": "Migroi aineiston pikkukuvat ja kasvot uusimpaan kansiorakenteeseen",
"nightly_tasks_cluster_faces_setting_description": "Aja kasvojen tunnistus uusiin tunnistettuihin kasvoihin",
"nightly_tasks_cluster_new_faces_setting": "Kokoa uudet kasvot",
"nightly_tasks_database_cleanup_setting": "Tietokannan puhdistuksen teht├дv├дt",
"nightly_tasks_database_cleanup_setting_description": "Siivoa vanhentunut data tietokannasta",
"nightly_tasks_generate_memories_setting": "Luo muistoja",
"nightly_tasks_generate_memories_setting_description": "Luo kohteista uusia muistoja",
"nightly_tasks_missing_thumbnails_setting": "Luo puuttuvat pikkukuvat",
"nightly_tasks_missing_thumbnails_setting_description": "Laita ilman pikkukuvia olevat kohteet jonoon pikkukuvien luontia varten",
"nightly_tasks_settings": "Y├╢llisten teht├дvien asetukset",
"nightly_tasks_settings_description": "Hallitse y├╢llisi├д teht├дvi├д",
"nightly_tasks_start_time_setting": "Aloitusaika",
"nightly_tasks_start_time_setting_description": "Aika jolloin palvelin aloittaa y├╢llisten teht├дvien ajon",
"nightly_tasks_sync_quota_usage_setting": "Synkronointikiinti├╢n k├дytt├╢",
"nightly_tasks_sync_quota_usage_setting_description": "P├дivit├д k├дytt├дj├дn tallennustilan kiinti├╢ nykyisen k├дyt├╢n mukaan",
"no_paths_added": "Polkuja ei asetettu",
"no_pattern_added": "Kaavoja ei lis├дttyn├д",
"note_apply_storage_label_previous_assets": "Huom: Asettaaksesi nimikkeen aiemmin ladatulle aineistolle, aja",
@@ -196,6 +210,8 @@
"oauth_mobile_redirect_uri": "Mobiilin uudellenohjaus-URI",
"oauth_mobile_redirect_uri_override": "Ohita mobiilin uudelleenohjaus-URI",
"oauth_mobile_redirect_uri_override_description": "Ota k├дytt├╢├╢n kun OAuth tarjoaja ei salli mobiili URI:a, kuten ''{callback}''",
"oauth_role_claim": "Roolin vaatimus",
"oauth_role_claim_description": "Salli p├д├дk├дytt├дj├дn p├д├дsyoikeus automaattisesti t├дm├дn vaatimuksen perusteella. Vaatimus voi sis├дlt├д├д, joko 'k├дytt├дj├дn' tai 'p├д├дk├дytt├дj├дn'.",
"oauth_settings": "OAuth",
"oauth_settings_description": "Hallitse OAuth-kirjautumisen asetuksia",
"oauth_settings_more_details": "Saadaksesi lis├дtietoja t├дst├д toiminnosta, katso <link>dokumentaatio</link>.",
@@ -244,6 +260,7 @@
"storage_template_migration_info": "Tallennusmalli muuntaa kaikki tiedostop├д├дtteet pieniksi kirjaimiksi. Mallipohjan muutokset koskevat vain uusia resursseja. Jos haluat k├дytt├д├д mallipohjaa takautuvasti aiemmin ladattuihin resursseihin, suorita <link>{job}</link>.",
"storage_template_migration_job": "Tallennustilan mallin muutosty├╢",
"storage_template_more_details": "Saadaksesi lis├дtietoa t├дst├д ominaisuudesta, katso <template-link>Tallennustilan Mallit</template-link> sek├д <implications-link>mihin se vaikuttaa</implications-link>",
"storage_template_onboarding_description_v2": "P├д├дlle kytkettyn├д, toiminto j├дrjestestelee tiedostot automaattisesti k├дytt├дj├дn m├д├дritt├дm├дn mallin mukaisesti. Lis├дtietoja <link>dokumentaatiosta</link>..",
"storage_template_path_length": "Arvioitu tiedostopolun pituusrajoitus: <b>{length, number}</b>/{limit, number}",
"storage_template_settings": "Tallennustilan malli",
"storage_template_settings_description": "Hallitse palvelimelle ladatun aineiston kansiorakennetta ja tiedostonimi├д",
@@ -403,6 +420,9 @@
"album_with_link_access": "Anna kenen tahansa n├дhd├д linkin kautta t├дm├дn albumin valokuvat ja henkil├╢t.",
"albums": "Albumit",
"albums_count": "{count, plural, one {{count, number} albumi} other {{count, number} albumia}}",
"albums_default_sort_order": "Albumin oletuslajitteluj├дrjestys",
"albums_default_sort_order_description": "Kohteiden ensisijainen lajitteluj├дrjestys uusia albumeja luotaessa.",
"albums_feature_description": "Kokoelma kohteita, jotka voidaan jakaa muille k├дytt├дjille.",
"all": "Kaikki",
"all_albums": "Kaikki albumit",
"all_people": "Kaikki henkil├╢t",
@@ -423,6 +443,7 @@
"app_settings": "Sovellusasetukset",
"appears_in": "Esiintyy albumeissa",
"archive": "Arkisto",
"archive_action_prompt": "{count} lis├дtty arkistoon",
"archive_or_unarchive_photo": "Arkistoi kuva tai palauta arkistosta",
"archive_page_no_archived_assets": "Arkistoituja kohteita ei l├╢ytynyt",
"archive_page_title": "Arkisto ({count})",
@@ -460,10 +481,12 @@
"assets": "Kohteet",
"assets_added_count": "Lis├дtty {count, plural, one {# kohde} other {# kohdetta}}",
"assets_added_to_album_count": "Albumiin lis├дtty {count, plural, one {# kohde} other {# kohdetta}}",
"assets_added_to_name_count": "Lis├дtty {count, plural, one {# kohde} other {# kohdetta}} {hasName, select, true {<b>{name}</b>} other {uuteen albumiin}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Kohdetta} other {Kohdetta}} ei voida lis├дt├д albumiin",
"assets_count": "{count, plural, one {# media} other {# mediaa}}",
"assets_deleted_permanently": "{count} kohdetta poistettu pysyv├дsti",
"assets_deleted_permanently_from_server": "{count} objektia poistettu pysyv├дsti Immich-palvelimelta",
"assets_downloaded_failed": "{count, plural, one {Ladattu # tiedosto - {error} tiedosto ep├дonnistui} other {ladattu # tiedostoa - {error} tiedostot ep├дonnistuivat}}",
"assets_downloaded_successfully": "{count, plural, one {Ladattu # tiedosto onnistuneesti} other {Ladattu # tiedostoa onnistuneesti}}",
"assets_moved_to_trash_count": "Siirretty {count, plural, one {# media} other {# mediaa}} roskakoriin",
"assets_permanently_deleted_count": "{count, plural, one {# media} other {# mediaa}} poistettu pysyv├дsti",
"assets_removed_count": "{count, plural, one {# media} other {# mediaa}} poistettu",
@@ -478,6 +501,7 @@
"authorized_devices": "Valtuutetut laitteet",
"automatic_endpoint_switching_subtitle": "Yhdist├д paikallisesti nimetyn Wi-Fi-yhteyden kautta, kun se on saatavilla, ja k├дyt├д vaihtoehtoisia yhteyksi├д muualla",
"automatic_endpoint_switching_title": "Automaattinen URL-osoitteen vaihto",
"autoplay_slideshow": "Toista diaesitys automaattisesti",
"back": "Takaisin",
"back_close_deselect": "Palaa, sulje tai poista valinnat",
"background_location_permission": "Taustasijainnin k├дytt├╢oikeus",
@@ -582,7 +606,8 @@
"cannot_merge_people": "Ihmisi├д ei voitu yhdist├д├д",
"cannot_undo_this_action": "Et voi perua t├дt├д toimintoa!",
"cannot_update_the_description": "Kuvausta ei voi p├дivitt├д├д",
"cast": "L├дhett├д├д",
"cast": "Suoratoisto",
"cast_description": "M├д├дrit├д saatavilla olevat suoratoistopalvelut",
"change_date": "Vaihda p├дiv├дys",
"change_description": "Muuta kuvausta",
"change_display_order": "Muuta n├дytt├╢j├дrjestyst├д",
@@ -641,6 +666,7 @@
"confirm_password": "Vahvista salasana",
"confirm_tag_face": "Haluatko merkit├д n├дm├д kasvot nimell├д {name}?",
"confirm_tag_face_unnamed": "Merkit├д├дnk├╢ n├дm├д kasvot?",
"connected_device": "Yhdistetty laite",
"connected_to": "Yhdistetty",
"contain": "Mahduta",
"context": "Konteksti",
@@ -693,6 +719,7 @@
"daily_title_text_date": "E, dd MMM",
"daily_title_text_date_year": "E, dd MMM, yyyy",
"dark": "Tumma",
"dark_theme": "Vaihda tumma teema",
"date_after": "P├дiv├дm├д├дr├дn j├дlkeen",
"date_and_time": "P├дiv├дm├д├дr├д ja aika",
"date_before": "P├дiv├д ennen",
@@ -708,6 +735,7 @@
"default_locale": "Oletuskieliasetus",
"default_locale_description": "Muotoile p├дiv├дm├д├дr├дt ja numerot selaimesi kielen mukaan",
"delete": "Poista",
"delete_action_prompt": "{count} poistettu pysyv├дsti",
"delete_album": "Poista albumi",
"delete_api_key_prompt": "Haluatko varmasti poistaa t├дm├дn API-avaimen?",
"delete_dialog_alert": "N├дm├д kohteet poistetaan pysyv├дsti Immich:st├д ja laitteeltasi",
@@ -740,12 +768,13 @@
"disallow_edits": "├Дl├д salli muokkauksia",
"discord": "Discord",
"discover": "Tutki",
"discovered_devices": "L├╢ydetyt laitteet",
"dismiss_all_errors": "Sivuuta kaikki virheet",
"dismiss_error": "Sivuuta virhe",
"display_options": "N├дytt├╢asetukset",
"display_order": "N├дytt├╢j├дrjestys",
"display_original_photos": "N├дyt├д alkuper├дiset kuvat",
"display_original_photos_setting_description": "N├дyt├д mieluiten alkuper├дinen kuva peukalokuvan sijasta kun alkuper├дinen aineisto on web-yhteensopiva. T├дm├д voi aiheuttaa kuvien n├дytt├дmisen hitautta.",
"display_original_photos_setting_description": "N├дyt├д mieluiten alkuper├дinen kuva esikatselukuvan sijasta, kun alkuper├дinen kuva on web-yhteensopiva. T├дm├д voi aiheuttaa kuvien n├дytt├дmisen hitautta.",
"do_not_show_again": "├Дl├д n├дyt├д t├дt├д en├д├д",
"documentation": "Dokumentaatio",
"done": "Valmis",
@@ -787,6 +816,7 @@
"edit_key": "Muokkaa avainta",
"edit_link": "Muokkaa linkki├д",
"edit_location": "Muokkaa sijaintia",
"edit_location_action_prompt": "{count} sijaintia muokattu",
"edit_location_dialog_title": "Sijainti",
"edit_name": "Muokkaa nime├д",
"edit_people": "Muokkaa henkil├╢it├д",
@@ -972,6 +1002,7 @@
"failed_to_load_assets": "Kohteiden lataus ep├дonnistui",
"failed_to_load_folder": "Kansion lataaminen ep├дonnistui",
"favorite": "Suosikki",
"favorite_action_prompt": "{count} lis├дtty suosikkeihin",
"favorite_or_unfavorite_photo": "Suosikki- tai ei-suosikkikuva",
"favorites": "Suosikit",
"favorites_page_no_favorites": "Suosikkikohteita ei l├╢ytynyt",
@@ -1086,6 +1117,8 @@
"ios_debug_info_last_sync_at": "Viimeisin synkronisointi {dateTime}",
"ios_debug_info_no_processes_queued": "Ei taustaprosesseja jonossa",
"ios_debug_info_no_sync_yet": "Taustasynkronisointia ei ole suoritettu viel├д",
"ios_debug_info_processes_queued": "{count, plural, one {{count} taustaprosessi jonossa} other {{count} taustaprosessia jonossa}}",
"ios_debug_info_processing_ran_at": "Prosessi valmistui {dateTime}",
"items_count": "{count, plural, one {# kpl} other {# kpl}}",
"jobs": "Taustateht├дv├дt",
"keep": "S├дilyt├д",
@@ -1094,6 +1127,9 @@
"kept_this_deleted_others": "T├дm├д kohde s├дilytettiin. {count, plural, one {# asset} other {# assets}} poistettiin",
"keyboard_shortcuts": "Pikan├дpp├дimet",
"language": "Kieli",
"language_no_results_subtitle": "Yrit├д s├д├дt├д├д hakuehtoja",
"language_no_results_title": "Kieli├д ei l├╢ydetty",
"language_search_hint": "Etsi kieli├д...",
"language_setting_description": "Valitse suosimasi kieli",
"last_seen": "Viimeksi n├дhty",
"latest_version": "Viimeisin versio",
@@ -1119,6 +1155,7 @@
"list": "Lista",
"loading": "Ladataan",
"loading_search_results_failed": "Hakutulosten lataaminen ep├дonnistui",
"local_asset_cast_failed": "Kohdetta, joka ei ole ladattuna palvelimelle, ei voida striimata",
"local_network": "L├дhiverkko",
"local_network_sheet_info": "Sovellus muodostaa yhteyden palvelimeen t├дm├дn URL-osoitteen kautta, kun k├дytet├д├дn m├д├дritetty├д Wi-Fi-verkkoa",
"location_permission": "Sijainnin k├дytt├╢oikeus",
@@ -1132,6 +1169,7 @@
"locked_folder": "Lukittu kansio",
"log_out": "Kirjaudu ulos",
"log_out_all_devices": "Kirjaudu ulos kaikilta laitteilta",
"logged_in_as": "Kirjautunut k├дytt├дj├дn├д {user}",
"logged_out_all_devices": "Kaikki laitteet kirjattu ulos",
"logged_out_device": "Laite kirjattu ulos",
"login": "Kirjaudu",
@@ -1220,13 +1258,14 @@
"merged_people_count": "{count, plural, one {# Henkil├╢} other {# henkil├╢├д}} yhdistetty",
"minimize": "PIenenn├д",
"minute": "Minuutti",
"missing": "Puuttuu",
"missing": "Puuttuvat",
"model": "Malli",
"month": "Kuukauden mukaan",
"monthly_title_text_date_format": "MMMM y",
"more": "Enemm├дn",
"move": "Siirr├д",
"move_off_locked_folder": "Siirr├д pois lukitusta kansiosta",
"move_to_lock_folder_action_prompt": "{count} lis├дtty lukittuun kansioon",
"move_to_locked_folder": "Siirr├д lukittuun kansioon",
"move_to_locked_folder_confirmation": "N├дm├д kuvat ja videot poistetaan kaikista albumeista, ja ne ovat n├дht├дviss├д vain lukitussa kansiossa",
"moved_to_archive": "Siirretty {count, plural, one {# kohde} other {# kohdetta}} arkistoon",
@@ -1259,6 +1298,7 @@
"no_archived_assets_message": "Arkistoi kuvia ja videoita piilottaaksesi ne kuvat n├дkym├дst├д",
"no_assets_message": "NAPAUTA LATAAKSESI ENSIMM├ДISEN KUVASI",
"no_assets_to_show": "Ei n├дytett├дvi├д kohteita",
"no_cast_devices_found": "Cast-laitteita ei l├╢ytynyt",
"no_duplicates_found": "Kaksoiskappaleita ei l├╢ytynyt.",
"no_exif_info_available": "EXIF-tietoa ei saatavilla",
"no_explore_results_message": "Lataa lis├д├д kuvia tutkiaksesi kokoelmaasi.",
@@ -1291,8 +1331,11 @@
"oldest_first": "Vanhin ensin",
"on_this_device": "Laitteella",
"onboarding": "K├дytt├╢├╢notto",
"onboarding_privacy_description": "Seuraavat (valinnaiset) ominaisuudet perustuvat ulkoisiin palveluihin, ja ne voidaan poistaa k├дyt├╢st├д milloin tahansa hallinta asetuksista.",
"onboarding_locale_description": "Valitse haluamasi kieli. Voit muuttaa kieliasetuksia my├╢hemmin asetuksista.",
"onboarding_privacy_description": "Seuraavat (valinnaiset) ominaisuudet perustuvat ulkoisiin palveluihin ja ne voidaan milloin tahansa poistaa k├дyt├╢st├д asetuksista.",
"onboarding_server_welcome_description": "M├д├дritell├д├дn seuraavaksi j├дrjestelm├дsi muutamalla yleisell├д asetuksella.",
"onboarding_theme_description": "Valitse v├дriteema istunnollesi. Voit muuttaa t├дm├дn my├╢hemmin asetuksistasi.",
"onboarding_user_welcome_description": "Aloitetaan!",
"onboarding_welcome_user": "Tervetuloa {user}",
"online": "Online",
"only_favorites": "Vain suosikit",
@@ -1392,7 +1435,7 @@
"previous_or_next_photo": "Kuva seuraava/edellinen",
"previous_or_next_year": "Vuosi seuraava/edellinen",
"primary": "Ensisijainen",
"privacy": "Yksityisyys",
"privacy": "Tietosuoja",
"profile": "Profiili",
"profile_drawer_app_logs": "Lokit",
"profile_drawer_client_out_of_date_major": "Sovelluksen mobiiliversio on vanhentunut. P├дivit├д viimeisimp├д├дn merkitt├дv├д├дn versioon.",
@@ -1472,12 +1515,15 @@
"remove_custom_date_range": "Poista aikav├дlilt├д",
"remove_deleted_assets": "Poista Offline-tiedostot",
"remove_from_album": "Poista albumista",
"remove_from_album_action_prompt": "{count} poistettu albumista",
"remove_from_favorites": "Poista suosikeista",
"remove_from_lock_folder_action_prompt": "{count} poistettu lukitusta albumista",
"remove_from_locked_folder": "Poista lukitusta kansiosta",
"remove_from_locked_folder_confirmation": "Haluatko varmasti siirt├д├д n├дm├д kuvat ja videot pois lukitusta kansiosta? Ne n├дkyv├дt sen j├дlkeen kirjastossasi.",
"remove_from_shared_link": "Poista jakolinkist├д",
"remove_memory": "Tyhjenn├д muisti",
"remove_photo_from_memory": "Poista kuva muistista",
"remove_tag": "Poista tunniste",
"remove_url": "Poista URL",
"remove_user": "Poista k├дytt├дj├д",
"removed_api_key": "API-avain {name} poistettu",
@@ -1584,6 +1630,7 @@
"select_album_cover": "Valitse albmin kansi",
"select_all": "Valitse kaikki",
"select_all_duplicates": "Valitse kaikki kaksoiskappaleet",
"select_all_in": "Valitse kaikki {group}",
"select_avatar_color": "Valitse avatarin v├дri",
"select_face": "Valitse kasvo",
"select_featured_photo": "Valitse esittelykuva",
@@ -1604,6 +1651,7 @@
"server_info_box_server_url": "Palvelimen URL-osoite",
"server_offline": "Palvelin Offline-tilassa",
"server_online": "Palvelin Online-tilassa",
"server_privacy": "Palvelimen tietosuoja",
"server_stats": "Palvelimen tilastot",
"server_version": "Palvelimen versio",
"set": "Aseta",
@@ -1613,6 +1661,7 @@
"set_date_of_birth": "Aseta syntym├дaika",
"set_profile_picture": "Aseta profiilikuva",
"set_slideshow_to_fullscreen": "N├дyt├д diaesitys koko ruudulla",
"set_stack_primary_asset": "Aseta p├д├дkohteeksi",
"setting_image_viewer_help": "Kuvaa katseltaessa ensin ladataan pikkukuva, sitten keskilaatuinen pikkukuva (jos k├дyt├╢ss├д) ja lopuksi alkuper├дinen (jos k├дyt├╢ss├д).",
"setting_image_viewer_original_subtitle": "Ota k├дytt├╢├╢n ladataksesi alkuper├дinen t├дysitarkkuuksinen kuva (suuri!). Poista k├дyt├╢st├д v├дhent├д├дksesi datan k├дytt├╢├д (sek├д verkossa ett├д laitteen v├дlimuistissa).",
"setting_image_viewer_original_title": "Lataa alkuper├дinen kuva",
@@ -1750,6 +1799,7 @@
"start_date": "Alkup├дiv├д",
"state": "Maakunta",
"status": "Tila",
"stop_casting": "Lopeta suoratoisto",
"stop_motion_photo": "Pys├дyt├д liikkuva kuva",
"stop_photo_sharing": "Lopetetaanko kuvien jakaminen?",
"stop_photo_sharing_description": "{partner} ei en├д├д p├д├дse kuviisi.",
@@ -1769,7 +1819,7 @@
"sync_albums": "Synkronoi albumit",
"sync_albums_manual_subtitle": "Synkronoi kaikki ladatut videot ja valokuvat valittuihin varmuuskopioalbumeihin",
"sync_upload_album_setting_subtitle": "Luo ja lataa valokuvasi ja videosi valittuihin albumeihin Immichiss├д",
"tag": "Lis├д├д tunniste",
"tag": "Tunniste",
"tag_assets": "Lis├д├д tunnisteita",
"tag_created": "Luotu tunniste: {tag}",
"tag_feature_description": "Selaa valokuvia ja videoita, jotka on ryhmitelty loogisten tunnisteotsikoiden mukaan",
@@ -1810,6 +1860,7 @@
"total": "Yhteens├д",
"total_usage": "K├дytt├╢ yhteens├д",
"trash": "Roskakori",
"trash_action_prompt": "{count} siirretty roskakoriin",
"trash_all": "Vie kaikki roskakoriin",
"trash_count": "Roskakori {count, number}",
"trash_delete_asset": "Poista / vie roskakoriin",
@@ -1827,8 +1878,11 @@
"unable_to_change_pin_code": "PIN-koodin vaihtaminen ep├дonnistui",
"unable_to_setup_pin_code": "PIN-koodin m├д├дritt├дminen ep├дonnistui",
"unarchive": "Palauta arkistosta",
"unarchive_action_prompt": "{count} poistettu arkistosta",
"unarchived_count": "{count, plural, other {# poistettu arkistosta}}",
"undo": "Kumoa",
"unfavorite": "Poista suosikeista",
"unfavorite_action_prompt": "{count} poistettu suosikeista",
"unhide_person": "Poista henkil├╢ piilosta",
"unknown": "Tuntematon",
"unknown_country": "Tuntematon maa",
@@ -1844,8 +1898,10 @@
"unsaved_change": "Tallentamaton muutos",
"unselect_all": "Poista valinnat",
"unselect_all_duplicates": "Poista kaikkien kaksoiskappaleiden valinta",
"unselect_all_in": "Poista kaikki valinnat {group}",
"unstack": "Pura pino",
"unstacked_assets_count": "Poistettu pinosta {count, plural, one {# kohde} other {# kohdetta}}",
"untagged": "Ilman tunnistetta",
"up_next": "Seuraavaksi",
"updated_at": "P├дivitetty",
"updated_password": "Salasana p├дivitetty",
@@ -1861,7 +1917,7 @@
"upload_status_uploaded": "Ladattu",
"upload_success": "Lataus onnistui. P├дivit├д sivu jotta n├дet latauksesi.",
"upload_to_immich": "L├дhet├д Immichiin ({count})",
"uploading": "L├дhett├д├дn",
"uploading": "L├дhett├д├д",
"url": "URL",
"usage": "K├дytt├╢",
"use_biometric": "K├дyt├д biometriikkaa",
@@ -1873,6 +1929,7 @@
"user_liked": "{user} tykk├дsi {type, select, photo {kuvasta} video {videosta} asset {mediasta} other {t├дst├д}}",
"user_pin_code_settings": "PIN-koodi",
"user_pin_code_settings_description": "Hallinnoi PIN-koodiasi",
"user_privacy": "K├дytt├дj├дn tietosuoja",
"user_purchase_settings": "Osta",
"user_purchase_settings_description": "Hallitse ostostasi",
"user_role_set": "Tee k├дytt├дj├дst├д {user} {role}",
+3
View File
@@ -14,10 +14,13 @@
"add_a_location": "Dagdagan ng lugar",
"add_a_name": "Dagdagan ng pangalan",
"add_a_title": "Dagdagan ng pamagat",
"add_endpoint": "Dagdagan ng dulo",
"add_location": "Magdagdag ng lugar",
"add_more_users": "Magdagdag ng mga user",
"add_partner": "Magdagdag ng kasangga",
"add_path": "Magdagdag ng path",
"add_photos": "Magdagdag ng litrato",
"add_tag": "Magdagdag ng tag",
"add_to": "Idagdag saтАж",
"add_to_album": "Idagdag sa album",
"add_to_album_bottom_sheet_added": "Naidagdag sa {album}",
+47 -12
View File
@@ -17,7 +17,7 @@
"add_endpoint": "Ajouter une adresse",
"add_exclusion_pattern": "Ajouter un sch├йma d'exclusion",
"add_import_path": "Ajouter un chemin ├а importer",
"add_location": "Ajouter un lieu",
"add_location": "Ajouter une localisation",
"add_more_users": "Ajouter plus d'utilisateurs",
"add_partner": "Ajouter un partenaire",
"add_path": "Ajouter un chemin",
@@ -166,6 +166,20 @@
"metadata_settings_description": "Gestion des param├иtres de m├йtadonn├йes",
"migration_job": "Migration",
"migration_job_description": "Migration des miniatures pour les m├йdias et les visages vers la derni├иre structure de dossiers",
"nightly_tasks_cluster_faces_setting_description": "D├йmarrer la reconnaissance faciale sur les visages nouvellement d├йtect├йs",
"nightly_tasks_cluster_new_faces_setting": "Regrouper les nouveaux visages",
"nightly_tasks_database_cleanup_setting": "T├вches de nettoyage de la base de donn├йes",
"nightly_tasks_database_cleanup_setting_description": "Nettoyage ancien, donn├йes de la base de donn├йes expir├йes",
"nightly_tasks_generate_memories_setting": "G├йn├йrer les souvenirs",
"nightly_tasks_generate_memories_setting_description": "Cr├йer des souvenirs ├а partir des ├йl├йments",
"nightly_tasks_missing_thumbnails_setting": "G├йn├йrer les miniatures manquantes",
"nightly_tasks_missing_thumbnails_setting_description": "Mettre en file d'attente les ├йl├йments sans miniature pour la cr├йation de miniature",
"nightly_tasks_settings": "Param├иtres des t├вches de nuit",
"nightly_tasks_settings_description": "G├йrer les t├вches de nuit",
"nightly_tasks_start_time_setting": "Heure de d├йmarrage",
"nightly_tasks_start_time_setting_description": "Heure ├а laquelle le serveur commence ├а ex├йcuter les t├вches de nuit",
"nightly_tasks_sync_quota_usage_setting": "Synchroniser les quota d'usage",
"nightly_tasks_sync_quota_usage_setting_description": "Mettre ├а jour les quota d'usage de l'utilisateur, en se basant sur l'utilisation actuelle",
"no_paths_added": "Aucun chemin n'a ├йt├й ajout├й",
"no_pattern_added": "Aucun sch├йma d'exclusion n'a ├йt├й ajout├й",
"note_apply_storage_label_previous_assets": "Remarque┬а: pour appliquer l'├йtiquette de stockage ├а des m├йdias pr├йc├йdemment envoy├йs, ex├йcutez",
@@ -196,6 +210,8 @@
"oauth_mobile_redirect_uri": "URI de redirection mobile",
"oauth_mobile_redirect_uri_override": "Remplacer l'URI de redirection mobile",
"oauth_mobile_redirect_uri_override_description": "Activer quand le fournisseur d'OAuth ne permet pas un URI mobile, comme ''{callback}''",
"oauth_role_claim": "Attribut de r├┤le",
"oauth_role_claim_description": "Donne automatiquement un acc├иs en tant qu'admin, en se basant sur la pr├йsence de cet attribut. L'attribut peut avoir soit 'user' (utilisateur) soit 'admin'.",
"oauth_settings": "OAuth",
"oauth_settings_description": "G├йrer les param├иtres de connexion OAuth",
"oauth_settings_more_details": "Pour plus de d├йtails sur cette fonctionnalit├й, consultez <link>ce lien</link>.",
@@ -244,7 +260,7 @@
"storage_template_migration_info": "L'enregistrement des mod├иles va convertir toutes les extensions en minuscule. Les changements de mod├иle ne s'appliqueront qu'aux nouveaux m├йdias. Pour appliquer r├йtroactivement le mod├иle aux m├йdias pr├йc├йdemment envoy├йs, ex├йcutez la t├вche <link>{job}</link>.",
"storage_template_migration_job": "T├вche de migration du mod├иle de stockage",
"storage_template_more_details": "Pour plus de d├йtails sur cette fonctionnalit├й, reportez-vous au <template-link>Mod├иle de stockage</template-link> et ├а ses <implications-link>implications</implications-link>",
"storage_template_onboarding_description_v2": "Quand elle est activ├йe, cette fonctionnalit├й organise automatiquement les fichiers, sur base d'un mod├иle d├йfini par l'utilisateur. Pour plus d'informations, se r├йp├йter ├а la <link>documentation</link>.",
"storage_template_onboarding_description_v2": "Quand elle est activ├йe, cette fonctionnalit├й organise automatiquement les fichiers, sur base d'un mod├иle d├йfini par l'utilisateur. Pour plus d'informations, se r├йf├йrer ├а la <link>documentation</link>.",
"storage_template_path_length": "Limite approximative de la longueur du cheminтАп: <b>{length, number}</b>/{limit, number}",
"storage_template_settings": "Mod├иle de stockage",
"storage_template_settings_description": "G├йrer la structure des dossiers et le nom des fichiers du m├йdia envoy├й",
@@ -357,10 +373,12 @@
"admin_password": "Mot de passe Admin",
"administration": "Administration",
"advanced": "Avanc├й",
"advanced_settings_beta_timeline_subtitle": "Essayer la nouvelle application",
"advanced_settings_beta_timeline_title": "Timeline de la b├йta",
"advanced_settings_enable_alternate_media_filter_subtitle": "Utilisez cette option pour filtrer les m├йdia durant la synchronisation avec des crit├иres alternatifs. N'utilisez cela que lorsque l'application n'arrive pas ├а d├йtecter tout les albums.",
"advanced_settings_enable_alternate_media_filter_title": "[EXP├ЙRIMENTAL] Utiliser le filtre de synchronisation d'album alternatif",
"advanced_settings_log_level_title": "Niveau de journalisation┬а: {level}",
"advanced_settings_prefer_remote_subtitle": "Certains appareils sont tr├иs lents ├а charger des miniatures ├а partir de ressources pr├йsentes sur l'appareil. Activez ce param├иtre pour charger des images externes ├а la place.",
"advanced_settings_prefer_remote_subtitle": "Certains appareils sont tr├иs lents ├а charger des miniatures ├а partir de ressources locales. Activez ce param├иtre pour charger des images externes ├а la place.",
"advanced_settings_prefer_remote_title": "Pr├йf├йrer les images externes",
"advanced_settings_proxy_headers_subtitle": "Ajoutez des en-t├кtes personnalis├йs ├а chaque requ├кte r├йseau",
"advanced_settings_proxy_headers_title": "En-t├кtes de proxy",
@@ -413,8 +431,8 @@
"all_videos": "Toutes les vid├йos",
"allow_dark_mode": "Autoriser le mode sombre",
"allow_edits": "Autoriser les modifications",
"allow_public_user_to_download": "Permettre aux utilisateurs non connect├йs de t├йl├йcharger",
"allow_public_user_to_upload": "Autoriser l'envoi aux utilisateurs non connect├йs",
"allow_public_user_to_download": "Permettre le t├йl├йchargement par des utilisateurs non connect├йs",
"allow_public_user_to_upload": "Permettre l'envoi par des utilisateurs non connect├йs",
"alt_text_qr_code": "Image du code QR",
"anti_clockwise": "Sens anti-horaire",
"api_key": "Cl├й API",
@@ -427,6 +445,7 @@
"app_settings": "Param├иtres de l'application",
"appears_in": "Appara├оt dans",
"archive": "Archiver",
"archive_action_prompt": "{count} ajout├й(s) ├а l'archive",
"archive_or_unarchive_photo": "Archiver ou d├йsarchiver une photo",
"archive_page_no_archived_assets": "Aucun ├йl├йment archiv├й n'a ├йt├й trouv├й",
"archive_page_title": "Archiver ({count})",
@@ -464,7 +483,6 @@
"assets": "M├йdias",
"assets_added_count": "{count, plural, one {# m├йdia ajout├й} other {# m├йdias ajout├йs}}",
"assets_added_to_album_count": "{count, plural, one {# m├йdia ajout├й} other {# m├йdias ajout├йs}} ├а l'album",
"assets_added_to_name_count": "{count, plural, one {# m├йdia ajout├й} other {# m├йdias ajout├йs}} ├а {hasName, select, true {<b>{name}</b>} other {new album}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Le m├йdia ne peut pas ├кtre ajout├й} other {Les m├йdias ne peuvent pas ├кtre ajout├йs}} ├а l'album",
"assets_count": "{count, plural, one {# m├йdia} other {# m├йdias}}",
"assets_deleted_permanently": "{count} m├йdia(s) supprim├й(s) d├йfinitivement",
@@ -703,7 +721,7 @@
"daily_title_text_date": "E, dd MMM",
"daily_title_text_date_year": "E, dd MMM, yyyy",
"dark": "Sombre",
"darkTheme": "Basculer sur le th├иme sombre",
"dark_theme": "Activer le th├иme sombre",
"date_after": "Date apr├иs",
"date_and_time": "Date et heure",
"date_before": "Date avant",
@@ -719,6 +737,7 @@
"default_locale": "R├йgion par d├йfaut",
"default_locale_description": "Afficher les dates et nombres en fonction des param├иtres de votre navigateur",
"delete": "Supprimer",
"delete_action_prompt": "{count} supprim├й(s) d├йfinitivement",
"delete_album": "Supprimer l'album",
"delete_api_key_prompt": "Voulez-vous vraiment supprimer cette cl├й APIтАп?",
"delete_dialog_alert": "Ces m├йdias seront d├йfinitivement supprim├йs de Immich et de votre appareil",
@@ -732,6 +751,7 @@
"delete_key": "Supprimer la cl├й",
"delete_library": "Supprimer la biblioth├иque",
"delete_link": "Supprimer le lien",
"delete_local_action_prompt": "{count} supprim├й(s) localement",
"delete_local_dialog_ok_backed_up_only": "Suppression des donn├йes sauvegard├йes uniquement",
"delete_local_dialog_ok_force": "Supprimer tout de m├кme",
"delete_others": "Supprimer les autres",
@@ -762,6 +782,7 @@
"documentation": "Documentation",
"done": "Termin├й",
"download": "T├йl├йcharger",
"download_action_prompt": "T├йl├йchargement de {count} ├йl├йments",
"download_canceled": "T├йl├йchargement annul├й",
"download_complete": "T├йl├йchargement termin├й",
"download_enqueue": "T├йl├йchargement en attente",
@@ -799,6 +820,7 @@
"edit_key": "Modifier la cl├й",
"edit_link": "Modifier le lien",
"edit_location": "Modifier la localisation",
"edit_location_action_prompt": "{count} localisation(s) mise(s) ├а jour",
"edit_location_dialog_title": "Localisation",
"edit_name": "Modifier le nom",
"edit_people": "Modifier les personnes",
@@ -984,6 +1006,7 @@
"failed_to_load_assets": "├Йchec du chargement des ressources",
"failed_to_load_folder": "├Йchec de chargement du dossier",
"favorite": "Favori",
"favorite_action_prompt": "{count} ajout├й(s) aux Favoris",
"favorite_or_unfavorite_photo": "Ajouter ou supprimer des favoris",
"favorites": "Favoris",
"favorites_page_no_favorites": "Aucun ├йl├йment favori n'a ├йt├й trouv├й",
@@ -1036,7 +1059,7 @@
"hide_password": "Masquer le mot de passe",
"hide_person": "Masquer la personne",
"hide_unnamed_people": "Cacher les personnes non nomm├йes",
"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}. {failed} ├йl├йments sont d├йj├а dans l'album.",
"home_page_add_to_album_err_local": "Impossible d'ajouter des m├йdias locaux aux albums, ils sont ignor├йs",
"home_page_add_to_album_success": "{added} ├йl├йments ajout├йs ├а l'album {album}.",
"home_page_album_err_partner": "Impossible d'ajouter des m├йdias d'un partenaire ├а un album, ils sont ignor├йs",
@@ -1127,6 +1150,7 @@
"library_page_sort_created": "Cr├йations les plus r├йcentes",
"library_page_sort_last_modified": "Derni├иre modification",
"library_page_sort_title": "Titre de l'album",
"licenses": "Licences",
"light": "Clair",
"like_deleted": "R├йaction ┬л┬аj'aime┬а┬╗ supprim├йe",
"link_motion_video": "Lier la photo anim├йe",
@@ -1246,6 +1270,7 @@
"more": "Plus",
"move": "D├йplacer",
"move_off_locked_folder": "D├йplacer en dehors du dossier verrouill├й",
"move_to_lock_folder_action_prompt": "{count} ajout├й(s) au dossier verrouill├й",
"move_to_locked_folder": "D├йplacer dans le dossier verrouill├й",
"move_to_locked_folder_confirmation": "Ces photos et vid├йos seront retir├йs de tout les albums et ne seront visibles que dans le dossier verrouill├й",
"moved_to_archive": "{count, plural, one {# ├йl├йment d├йplac├й} other {# ├йl├йments d├йplac├йs}} vers les archives",
@@ -1390,7 +1415,7 @@
"photos_and_videos": "Photos et vid├йos",
"photos_count": "{count, plural, one {{count, number} Photo} other {{count, number} Photos}}",
"photos_from_previous_years": "Photos des ann├йes pr├йc├йdentes",
"pick_a_location": "Choisissez un lieu",
"pick_a_location": "Choisissez une localisation",
"pin_code_changed_successfully": "Code PIN chang├й avec succ├иs",
"pin_code_reset_successfully": "R├йinitialisation du code PIN r├йussie",
"pin_code_setup_successfully": "D├йfinition du code PIN r├йussie",
@@ -1495,7 +1520,9 @@
"remove_custom_date_range": "Supprimer la plage de date personnalis├йe",
"remove_deleted_assets": "Supprimer les fichiers hors ligne",
"remove_from_album": "Supprimer de l'album",
"remove_from_album_action_prompt": "{count} supprim├й(s) de l'album",
"remove_from_favorites": "Supprimer des favoris",
"remove_from_lock_folder_action_prompt": "{count} supprim├й(s) du dossier verrouill├й",
"remove_from_locked_folder": "Supprimer du dossier verrouill├й",
"remove_from_locked_folder_confirmation": "├Кtes vous s├╗r de vouloir d├йplacer ces photos et vid├йos en dehors du dossier verrouill├йтАп? Elles seront visibles dans votre galerie.",
"remove_from_shared_link": "Supprimer des liens partag├йs",
@@ -1510,7 +1537,7 @@
"removed_from_favorites_count": "{count, plural, one {# supprim├й} other {# supprim├йs}} des favoris",
"removed_memory": "Souvenir supprim├й",
"removed_photo_from_memory": "Photo supprim├йe du souvenir",
"removed_tagged_assets": "Tag supprim├й de {count, plural, one {# m├йdia} other {# m├йdias}}",
"removed_tagged_assets": "├Йtiquette supprim├йe de {count, plural, one {# m├йdia} other {# m├йdias}}",
"rename": "Renommer",
"repair": "R├йparer",
"repair_no_results_message": "Les fichiers non import├йs ou absents s'afficheront ici",
@@ -1566,8 +1593,8 @@
"search_filter_display_option_not_in_album": "Pas dans un album",
"search_filter_display_options": "Options d'affichage",
"search_filter_filename": "Recherche par nom de fichier",
"search_filter_location": "Lieu",
"search_filter_location_title": "S├йlectionner un lieu",
"search_filter_location": "Localisation",
"search_filter_location_title": "S├йlectionner une localisation",
"search_filter_media_type": "Type de m├йdia",
"search_filter_media_type_title": "S├йlectionner type de m├йdia",
"search_filter_people_title": "S├йlectionner une personne",
@@ -1667,6 +1694,7 @@
"settings_saved": "Param├иtres sauvegard├йs",
"setup_pin_code": "D├йfinir un code PIN",
"share": "Partager",
"share_action_prompt": "{count} ├йl├йments partag├йs",
"share_add_photos": "Ajouter des photos",
"share_assets_selected": "{count} s├йlectionn├й(s)",
"share_dialog_preparing": "Pr├йparation...",
@@ -1768,6 +1796,7 @@
"sort_title": "Titre",
"source": "Source",
"stack": "Empiler",
"stack_action_prompt": "{count} group├й(s)",
"stack_duplicates": "Empiler les doublons",
"stack_select_one_photo": "S├йlectionnez une photo principale pour la pile",
"stack_selected_photos": "Empiler les photos s├йlectionn├йes",
@@ -1838,6 +1867,7 @@
"total": "Total",
"total_usage": "Utilisation globale",
"trash": "Corbeille",
"trash_action_prompt": "{count} mis ├а la corbeille",
"trash_all": "Tout supprimer",
"trash_count": "Corbeille {count, number}",
"trash_delete_asset": "Mettre ├а la corbeille/Supprimer un m├йdia",
@@ -1855,9 +1885,11 @@
"unable_to_change_pin_code": "Impossible de changer le code PIN",
"unable_to_setup_pin_code": "Impossible de d├йfinir le code PIN",
"unarchive": "D├йsarchiver",
"unarchive_action_prompt": "{count} supprim├й(s) de l'archive",
"unarchived_count": "{count, plural, one {# supprim├й} other {# supprim├йs}} de l'archive",
"undo": "Annuler",
"unfavorite": "Enlever des favoris",
"unfavorite_action_prompt": "{count} supprim├й(s) des favoris",
"unhide_person": "Afficher la personne",
"unknown": "Inconnu",
"unknown_country": "Pays non connu",
@@ -1875,7 +1907,9 @@
"unselect_all_duplicates": "D├йs├йlectionner tous les doublons",
"unselect_all_in": "Tout d├йs├йlectionner dans {group}",
"unstack": "D├йsempiler",
"unstack_action_prompt": "{count} non group├йs",
"unstacked_assets_count": "{count, plural, one {# m├йdia d├йpil├й} other {# m├йdias d├йpil├йs}}",
"untagged": "├Йtiquette supprim├йe",
"up_next": "Suite",
"updated_at": "Mis ├а jour ├а",
"updated_password": "Mot de passe mis ├а jour",
@@ -1912,6 +1946,7 @@
"user_usage_stats_description": "Voir les statistiques d'utilisation du compte",
"username": "Nom d'utilisateur",
"users": "Utilisateurs",
"users_added_to_album_count": "{count, plural, one {# utilisateur ajout├й} other {# utilisateurs ajout├йs}} ├а l'album",
"utilities": "Utilitaires",
"validate": "Valider",
"validate_endpoint_error": "Merci d'entrer un lien valide",
-1
View File
@@ -455,7 +455,6 @@
"assets": "Activos",
"assets_added_count": "Engadido {count, plural, one {# activo} other {# activos}}",
"assets_added_to_album_count": "Engadido {count, plural, one {# activo} other {# activos}} ao ├бlbum",
"assets_added_to_name_count": "Engadido {count, plural, one {# activo} other {# activos}} a {hasName, select, true {<b>{name}</b>} other {novo ├бlbum}}",
"assets_count": "{count, plural, one {# activo} other {# activos}}",
"assets_deleted_permanently": "{count} activo(s) eliminado(s) permanentemente",
"assets_deleted_permanently_from_server": "{count} activo(s) eliminado(s) permanentemente do servidor Immich",
+33 -4
View File
@@ -34,6 +34,7 @@
"added_to_favorites_count": "{count, number} ╫а╫Х╫б╫д╫Х ╫Ь╫Ю╫Х╫в╫У╫д╫Щ╫Э",
"admin": {
"add_exclusion_pattern_description": "╫Ф╫Х╫б╫д╫к ╫У╫д╫Х╫б╫Щ ╫Ф╫Ч╫и╫Т╫Ф. ╫а╫к╫Ю╫Ы╫к ╫Ф╫к╫Р╫Ю╫к ╫У╫д╫Х╫б╫Щ╫Э ╫С╫Р╫Ю╫ж╫в╫Х╫к *, ** ╫Х-?. ╫Ы╫У╫Щ ╫Ь╫Ф╫к╫в╫Ь╫Э ╫Ю╫Ы╫Ь ╫Ф╫з╫С╫ж╫Щ╫Э ╫С╫к╫Щ╫з╫Щ╫Ф ╫Ы╫Ь╫й╫Ф╫Щ ╫С╫й╫Э \"Raw\", ╫Щ╫й ╫Ь╫Ф╫й╫к╫Ю╫й ╫С \"**/Raw/**\". ╫Ы╫У╫Щ ╫Ь╫Ф╫к╫в╫Ь╫Э ╫Ю╫Ы╫Ь ╫Ф╫з╫С╫ж╫Щ╫Э ╫Ф╫Ю╫б╫к╫Щ╫Щ╫Ю╫Щ╫Э ╫С \"tif.\", ╫Щ╫й ╫Ь╫Ф╫й╫к╫Ю╫й ╫С \"tif.*/**\". ╫Ы╫У╫Щ ╫Ь╫Ф╫к╫в╫Ь╫Э ╫Ю╫а╫к╫Щ╫С ╫Ю╫Х╫Ч╫Ь╫Ш, ╫Щ╫й ╫Ь╫Ф╫й╫к╫Ю╫й ╫С \"**/╫а╫к╫Щ╫С/╫Ь╫Ф╫к╫в╫Ь╫Ю╫Х╫к\".",
"admin_user": "╫Ю╫а╫Ф╫Ь ╫Ю╫в╫и╫Ы╫к",
"asset_offline_description": "╫к╫Ю╫Х╫а╫Ф ╫Ю╫б╫д╫и╫Щ╫Щ╫Ф ╫Ч╫Щ╫ж╫Х╫а╫Щ╫к ╫Ц╫Х ╫Ь╫Р ╫а╫Ю╫ж╫Р╫к ╫Щ╫Х╫к╫и ╫С╫У╫Щ╫б╫з ╫Х╫Ф╫Х╫в╫С╫и╫Ф ╫Ь╫Р╫й╫д╫Ф. ╫Р╫Э ╫Ф╫з╫Х╫С╫е ╫Ф╫Х╫в╫С╫и ╫Ю╫к╫Х╫Ъ ╫Ф╫б╫д╫и╫Щ╫Щ╫Ф, ╫а╫Р ╫Ь╫С╫У╫Х╫з ╫Р╫к ╫ж╫Щ╫и ╫Ф╫Ц╫Ю╫Я ╫й╫Ь╫Ъ ╫в╫С╫Х╫и ╫Ф╫к╫Ю╫Х╫а╫Ф ╫Ф╫Ю╫з╫С╫Щ╫Ь╫Ф ╫Ф╫Ч╫У╫й. ╫Ы╫У╫Щ ╫Ь╫й╫Ч╫Ц╫и ╫к╫Ю╫Х╫а╫Ф ╫Ц╫Х, ╫а╫Р ╫Ь╫Х╫Х╫У╫Р ╫й-Immich ╫Щ╫Ы╫Х╫Ь ╫Ь╫Т╫й╫к ╫Р╫Ь ╫а╫к╫Щ╫С ╫Ф╫з╫Х╫С╫е ╫Ь╫Ю╫Ш╫Ф ╫Х╫Ь╫б╫и╫Х╫з ╫Ю╫Ч╫У╫й ╫Р╫к ╫Ф╫б╫д╫и╫Щ╫Щ╫Ф.",
"authentication_settings": "╫Ф╫Т╫У╫и╫Х╫к ╫Ф╫к╫Ч╫С╫и╫Х╫к",
"authentication_settings_description": "╫а╫Щ╫Ф╫Х╫Ь ╫б╫Щ╫б╫Ю╫Ф, OAuth, ╫Х╫Ф╫Т╫У╫и╫Х╫к ╫Ф╫к╫Ч╫С╫и╫Х╫к ╫Р╫Ч╫и╫Х╫к",
@@ -165,6 +166,20 @@
"metadata_settings_description": "╫а╫Щ╫Ф╫Х╫Ь ╫Ф╫Т╫У╫и╫Х╫к ╫Ю╫Ш╫Р-╫а╫к╫Х╫а╫Щ╫Э",
"migration_job": "╫Ф╫в╫С╫и╫Ф",
"migration_job_description": "╫Ф╫в╫С╫и ╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫Ю╫Х╫Ц╫в╫и╫Х╫к ╫й╫Ь ╫к╫Ю╫Х╫а╫Х╫к ╫Х╫д╫а╫Щ╫Э ╫Ь╫Ю╫С╫а╫Ф ╫Ф╫к╫Щ╫з╫Щ╫Х╫к ╫Ф╫в╫У╫Ы╫а╫Щ ╫С╫Щ╫Х╫к╫и",
"nightly_tasks_cluster_faces_setting_description": "╫С╫ж╫в ╫Ц╫Щ╫Ф╫Х╫Щ ╫д╫а╫Щ╫Э ╫в╫С╫Х╫и ╫д╫и╫ж╫Х╫д╫Щ╫Э ╫й╫Ц╫Х╫Ф╫Х ╫Ь╫Р╫Ч╫и╫Х╫а╫Ф",
"nightly_tasks_cluster_new_faces_setting": "╫з╫С╫е ╫д╫а╫Щ╫Э ╫Ч╫У╫й╫Х╫к",
"nightly_tasks_database_cleanup_setting": "╫Ю╫й╫Щ╫Ю╫Х╫к ╫к╫Ч╫Ц╫Х╫з╫Ф ╫Х╫а╫Щ╫з╫Х╫Щ ╫й╫Ь ╫Ю╫б╫У ╫Ф╫а╫к╫Х╫а╫Щ╫Э",
"nightly_tasks_database_cleanup_setting_description": "╫а╫з╫Ф ╫а╫к╫Х╫а╫Щ╫Э ╫Щ╫й╫а╫Щ╫Э ╫й╫д╫Т ╫к╫Х╫з╫д╫Э ╫Ю╫Ю╫б╫У ╫Ф╫а╫к╫Х╫а╫Щ╫Э",
"nightly_tasks_generate_memories_setting": "╫Щ╫ж╫Щ╫и╫к ╫Ц╫Ы╫и╫Х╫а╫Х╫к",
"nightly_tasks_generate_memories_setting_description": "╫ж╫Х╫и ╫Ц╫Ы╫и╫Х╫а╫Х╫к ╫Ч╫У╫й╫Щ╫Э ╫Ю╫Ф╫к╫Ю╫Х╫а╫Х╫к ╫й╫Ь╫Ъ",
"nightly_tasks_missing_thumbnails_setting": "╫ж╫Х╫и ╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫Ю╫Х╫Ц╫в╫и╫Х╫к ╫Ч╫б╫и╫Х╫к",
"nightly_tasks_missing_thumbnails_setting_description": "╫Ф╫Х╫б╫г ╫Ь╫к╫Х╫и ╫з╫С╫ж╫Щ╫Э ╫Ь╫Ь╫Р ╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫Ю╫Х╫Ц╫в╫и╫Х╫к ╫Ь╫Щ╫ж╫Щ╫и╫Ф ╫й╫Ь ╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫Ю╫Х╫Ц╫в╫и╫Х╫к",
"nightly_tasks_settings": "╫Ф╫Т╫У╫и╫Х╫к ╫й╫Ь ╫Ю╫й╫Щ╫Ю╫Х╫к ╫Ь╫Щ╫Ь╫Щ╫Х╫к",
"nightly_tasks_settings_description": "╫а╫Ф╫Ь ╫Ю╫й╫Щ╫Ю╫Х╫к ╫Ь╫Щ╫Ь╫Щ╫Х╫к",
"nightly_tasks_start_time_setting": "╫Ц╫Ю╫Я ╫Ф╫к╫Ч╫Ь╫Ф",
"nightly_tasks_start_time_setting_description": "╫Ф╫й╫в╫Ф ╫й╫С╫Ф ╫Ф╫й╫и╫к ╫Ю╫к╫Ч╫Щ╫Ь ╫Ь╫Ф╫и╫Щ╫е ╫Р╫к ╫Ф╫Ю╫й╫Щ╫Ю╫Х╫к ╫Ф╫Ь╫Щ╫Ь╫Щ╫Х╫к",
"nightly_tasks_sync_quota_usage_setting": "╫б╫а╫Ы╫и╫Я ╫Р╫к ╫Ф╫й╫Щ╫Ю╫Х╫й ╫С╫Р╫Ч╫б╫Х╫Я",
"nightly_tasks_sync_quota_usage_setting_description": "╫в╫У╫Ы╫Я ╫Р╫к ╫Ю╫Ы╫б╫к ╫Ф╫Р╫Ч╫б╫Х╫Я ╫й╫Ь ╫Ф╫Ю╫й╫к╫Ю╫й ╫С╫Ф╫к╫Р╫Э ╫Ь╫й╫Щ╫Ю╫Х╫й ╫Ф╫а╫Х╫Ы╫Ч╫Щ",
"no_paths_added": "╫Ь╫Р ╫а╫Х╫б╫д╫Х ╫а╫к╫Щ╫С╫Щ╫Э",
"no_pattern_added": "╫Ь╫Р ╫а╫Х╫б╫д╫Ф ╫к╫С╫а╫Щ╫к",
"note_apply_storage_label_previous_assets": "╫Ф╫в╫и╫Ф: ╫Ы╫У╫Щ ╫Ь╫Ф╫Ч╫Щ╫Ь ╫Р╫к ╫к╫Х╫Х╫Щ╫к ╫Ф╫Р╫Ч╫б╫Х╫Я ╫в╫Ь ╫к╫Ю╫Х╫а╫Х╫к ╫й╫Ф╫Х╫в╫Ь╫Х ╫С╫в╫С╫и, ╫Ф╫д╫в╫Ь ╫Р╫к",
@@ -203,7 +218,7 @@
"oauth_storage_quota_claim": "╫У╫и╫Щ╫й╫к ╫Ю╫Ы╫б╫к ╫Р╫Ч╫б╫Х╫Я",
"oauth_storage_quota_claim_description": "╫Ф╫Т╫У╫и ╫Р╫Х╫Ш╫Х╫Ю╫Ш╫Щ╫к ╫Р╫к ╫Ю╫Ы╫б╫к ╫Ф╫Р╫Ч╫б╫Х╫Я ╫й╫Ь ╫Ф╫Ю╫й╫к╫Ю╫й ╫Ь╫в╫и╫Ъ ╫й╫Ь ╫У╫и╫Щ╫й╫Ф ╫Ц╫Х.",
"oauth_storage_quota_default": "╫Ю╫Ы╫б╫к ╫Р╫Ч╫б╫Х╫Я ╫С╫и╫Щ╫и╫к ╫Ю╫Ч╫У╫Ь (GiB)",
"oauth_storage_quota_default_description": "╫Ю╫Ы╫б╫Ф ╫С-GiB ╫Ь╫й╫Щ╫Ю╫Х╫й ╫Ы╫Р╫й╫и ╫Ь╫Р ╫Ю╫б╫Х╫д╫з╫к ╫У╫и╫Щ╫й╫Ф (╫Ф╫Ц╫Я 0 ╫в╫С╫Х╫и ╫Ю╫Ы╫б╫Ф ╫С╫Ь╫к╫Щ ╫Ю╫Х╫Т╫С╫Ь╫к).",
"oauth_storage_quota_default_description": "╫Ю╫Ы╫б╫Ф ╫С-GiB ╫Ь╫й╫Щ╫Ю╫Х╫й ╫Ы╫Р╫й╫и ╫Ь╫Р ╫Ю╫б╫Х╫д╫з╫к ╫У╫и╫Щ╫й╫Ф.",
"oauth_timeout": "╫Ф╫С╫з╫й╫Ф ╫а╫Ы╫й╫Ь╫Ф тАУ ╫Ф╫Ц╫Ю╫Я ╫Ф╫з╫ж╫Х╫С ╫Ф╫б╫к╫Щ╫Щ╫Э",
"oauth_timeout_description": "╫Ц╫Ю╫Я ╫з╫ж╫Х╫С ╫Ь╫С╫з╫й╫Х╫к (╫С╫Ю╫Щ╫Ь╫Щ╫й╫а╫Щ╫Х╫к)",
"password_enable_description": "╫Ф╫к╫Ч╫С╫и ╫в╫Э ╫У╫Х╫Р\"╫Ь ╫Х╫б╫Щ╫б╫Ю╫Ф",
@@ -243,6 +258,7 @@
"storage_template_migration_info": "╫к╫С╫а╫Щ╫к ╫Ф╫Р╫Ч╫б╫Х╫Я ╫к╫Ю╫Щ╫и ╫Р╫к ╫Ы╫Ь ╫Ф╫Ф╫и╫Ч╫С╫Х╫к ╫Ь╫Р╫Х╫к╫Щ╫Х╫к ╫з╫Ш╫а╫Х╫к. ╫й╫Щ╫а╫Х╫Щ╫Щ╫Э ╫С╫к╫С╫а╫Щ╫к ╫Щ╫Ч╫Х╫Ь╫Х ╫и╫з ╫в╫Ь ╫к╫Ю╫Х╫а╫Х╫к ╫Ч╫У╫й╫Х╫к. ╫Ы╫У╫Щ ╫Ь╫Ф╫Ч╫Щ╫Ь ╫С╫Р╫Х╫д╫Я ╫и╫Ш╫и╫Х╫Р╫з╫Ш╫Щ╫С╫Щ ╫Р╫к ╫Ф╫к╫С╫а╫Щ╫к ╫в╫Ь ╫к╫Ю╫Х╫а╫Х╫к ╫й╫Ф╫Х╫в╫Ь╫Х ╫С╫в╫С╫и, ╫Ф╫д╫в╫Ь ╫Р╫к <link>{job}</link>.",
"storage_template_migration_job": "╫Ю╫й╫Щ╫Ю╫к ╫Ф╫в╫С╫и╫к ╫к╫С╫а╫Щ╫к ╫Р╫Ч╫б╫Х╫Я",
"storage_template_more_details": "╫Ь╫д╫и╫Ш╫Щ╫Э ╫а╫Х╫б╫д╫Щ╫Э ╫Р╫Х╫У╫Х╫к ╫к╫Ы╫Х╫а╫Ф ╫Ц╫Х, ╫в╫Щ╫Щ╫Я ╫С<template-link>╫к╫С╫а╫Щ╫к ╫Ф╫Р╫Ч╫б╫Х╫Я</template-link> ╫Х╫С<implications-link>╫Ф╫й╫Ь╫Ы╫Х╫к╫Щ╫Ф</implications-link>",
"storage_template_onboarding_description_v2": "╫Ы╫Р╫й╫и ╫д╫Щ╫жтАЩ╫и ╫Ц╫Ф ╫Ю╫Х╫д╫в╫Ь, ╫Ф╫з╫С╫ж╫Щ╫Э ╫Щ╫Р╫Х╫и╫Т╫а╫Х ╫Р╫Х╫Ш╫Х╫Ю╫Ш╫Щ╫к ╫Ь╫д╫Щ ╫к╫С╫а╫Щ╫к ╫й╫Ф╫Х╫Т╫У╫и╫Ф ╫в╫Ь ╫Щ╫У╫Щ ╫Ф╫Ю╫й╫к╫Ю╫й. ╫Ь╫Ю╫Щ╫У╫в ╫а╫Х╫б╫г, ╫в╫Щ╫Щ╫Я ╫С╓╛<link>╫к╫Щ╫в╫Х╫У</link>.",
"storage_template_path_length": "╫Ю╫Т╫С╫Ь╫к ╫Р╫Х╫и╫Ъ ╫а╫к╫Щ╫С ╫Ю╫й╫Х╫в╫и╫к: <b>{length, number}</b>/{limit, number}",
"storage_template_settings": "╫к╫С╫а╫Щ╫к ╫Р╫Ч╫б╫Х╫Я",
"storage_template_settings_description": "╫а╫Щ╫Ф╫Х╫Ь ╫Ю╫С╫а╫Ф ╫Ф╫к╫Щ╫з╫Щ╫Х╫к ╫Х╫Р╫к ╫й╫Э ╫Ф╫з╫Х╫С╫е ╫й╫Ь ╫Ф╫к╫Ю╫Х╫а╫Ф ╫й╫Ф╫Х╫в╫Ь╫к╫Ф",
@@ -425,6 +441,7 @@
"app_settings": "╫Ф╫Т╫У╫и╫Х╫к ╫Щ╫Щ╫й╫Х╫Э",
"appears_in": "╫Ю╫Х╫д╫Щ╫в ╫С",
"archive": "╫Р╫и╫Ы╫Щ╫Х╫Я",
"archive_action_prompt": "{count} ╫а╫Х╫б╫д╫Х ╫Ь╫Р╫и╫Ы╫Щ╫Х╫Я",
"archive_or_unarchive_photo": "╫Ф╫в╫С╫и ╫к╫Ю╫Х╫а╫Ф ╫Ь╫Р╫и╫Ы╫Щ╫Х╫Я ╫Р╫Х ╫Ф╫Х╫ж╫Р ╫Р╫Х╫к╫Ф ╫Ю╫й╫Э",
"archive_page_no_archived_assets": "╫Ь╫Р ╫а╫Ю╫ж╫Р╫Х ╫к╫Ю╫Х╫а╫Х╫к ╫С╫Р╫и╫Ы╫Щ╫Х╫Я",
"archive_page_title": "╫С╫Р╫и╫Ы╫Щ╫Х╫Я ({count})",
@@ -462,7 +479,6 @@
"assets": "╫к╫Ю╫Х╫а╫Х╫к",
"assets_added_count": "{count, plural, one {╫а╫Х╫б╫д╫Ф ╫к╫Х╫Ю╫а╫Ф #} other {╫а╫Х╫б╫д╫Х # ╫к╫Ю╫Х╫а╫Х╫к}}",
"assets_added_to_album_count": "{count, plural, one {╫а╫Х╫б╫д╫Ф ╫к╫Ю╫Х╫а╫Ф #} other {╫а╫Х╫б╫д╫Х # ╫к╫Ю╫Х╫а╫Х╫к}} ╫Ь╫Р╫Ь╫С╫Х╫Э",
"assets_added_to_name_count": "{count, plural, one {╫к╫Ю╫Х╫а╫Ф # ╫а╫Х╫б╫д╫Ф} other {# ╫к╫Ю╫Х╫а╫Х╫к ╫а╫Х╫б╫д╫Х}} ╫Р╫Ь {hasName, select, true {<b>{name}</b>} other {╫Р╫Ь╫С╫Х╫Э ╫Ч╫У╫й}}",
"assets_cannot_be_added_to_album_count": "╫Ь╫Р ╫а╫Щ╫к╫Я ╫Ь╫Ф╫Х╫б╫Щ╫г ╫Р╫к ╫Ф{count, plural, one {╫к╫Ю╫Х╫а╫Ф} other {╫к╫Ю╫Х╫а╫Х╫к}} ╫Ь╫Р╫Ь╫С╫Х╫Э",
"assets_count": "{count, plural, one {╫к╫Ю╫Х╫а╫Ф #} other {# ╫к╫Ю╫Х╫а╫Х╫к}}",
"assets_deleted_permanently": "{count} ╫к╫Ю╫Х╫а╫Х╫к ╫а╫Ю╫Ч╫з╫Х ╫Ь╫ж╫Ю╫Щ╫к╫Х╫к",
@@ -701,7 +717,7 @@
"daily_title_text_date": "E, MMM dd",
"daily_title_text_date_year": "E, MMM dd, yyyy",
"dark": "╫Ы╫Ф╫Ф",
"darkTheme": "╫Ф╫Ч╫Ь╫д╫Ф ╫Ь╫Ю╫ж╫С ╫Ч╫Х╫й╫Ъ",
"dark_theme": "╫Ф╫д╫в╫Ь/╫Ы╫С╫Ф ╫Ю╫ж╫С ╫Ы╫Ф╫Ф",
"date_after": "╫к╫Р╫и╫Щ╫Ъ ╫Р╫Ч╫и╫Щ",
"date_and_time": "╫к╫Р╫и╫Щ╫Ъ ╫Х╫й╫в╫Ф",
"date_before": "╫к╫Р╫и╫Щ╫Ъ ╫Ь╫д╫а╫Щ",
@@ -711,12 +727,13 @@
"day": "╫Щ╫Х╫Э",
"deduplicate_all": "╫С╫Щ╫Ш╫Х╫Ь ╫Ы╫Ь ╫Ф╫Ы╫д╫Щ╫Ь╫Х╫Щ╫Х╫к",
"deduplication_criteria_1": "╫Т╫Х╫У╫Ь ╫к╫Ю╫Х╫а╫Ф ╫С╫С╫к╫Щ╫Э",
"deduplication_criteria_2": "╫б╫д╫Щ╫и╫к ╫а╫к╫Х╫а╫Щ EXIF",
"deduplication_criteria_2": "╫Ы╫Ю╫Х╫к ╫а╫к╫Х╫а╫Щ EXIF",
"deduplication_info": "╫Ю╫Щ╫У╫в ╫в╫Ь ╫С╫Щ╫Ш╫Х╫Ь ╫Ы╫д╫Щ╫Ь╫Х╫Щ╫Х╫к",
"deduplication_info_description": "╫Ы╫У╫Щ ╫Ь╫С╫Ч╫Х╫и ╫Ю╫и╫Р╫й ╫к╫Ю╫Х╫а╫Х╫к ╫С╫Р╫Х╫д╫Я ╫Р╫Х╫Ш╫Х╫Ю╫Ш╫Щ ╫Х╫Ь╫Ф╫б╫Щ╫и ╫Ы╫д╫Щ╫Ь╫Х╫Щ╫Х╫к ╫С╫Ы╫Ю╫Х╫к ╫Т╫У╫Х╫Ь╫Ф, ╫Р╫а╫Х ╫Ю╫б╫к╫Ы╫Ь╫Щ╫Э ╫в╫Ь:",
"default_locale": "╫й╫д╫к ╫С╫и╫Щ╫и╫к ╫Ю╫Ч╫У╫Ь",
"default_locale_description": "╫д╫Х╫и╫Ю╫Ш ╫к╫Р╫и╫Щ╫Ы╫Щ╫Э ╫Х╫Ю╫б╫д╫и╫Щ╫Э ╫Ю╫С╫Х╫б╫б ╫й╫д╫к ╫Ф╫У╫д╫У╫д╫Я ╫й╫Ь╫Ъ",
"delete": "╫Ю╫Ч╫з",
"delete_action_prompt": "{count} ╫а╫Ю╫Ч╫з╫Х ╫Ь╫ж╫Ю╫Щ╫к╫Х╫к",
"delete_album": "╫Ю╫Ч╫з ╫Р╫Ь╫С╫Х╫Э",
"delete_api_key_prompt": "╫Ф╫Р╫Э ╫Р╫к╫Ф ╫С╫Ш╫Х╫Ч ╫й╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫Ю╫Ч╫Х╫з ╫Ю╫д╫к╫Ч ╫Ф-API ╫Ф╫Ц╫Ф?",
"delete_dialog_alert": "╫Ф╫д╫и╫Щ╫Ш╫Щ╫Э ╫Ф╫Р╫Ь╫Ф ╫Щ╫Ю╫Ч╫з╫Х ╫Ь╫ж╫Ю╫Щ╫к╫Х╫к ╫Ю╫Ф╫й╫и╫к ╫Х╫Ю╫Ф╫Ю╫Ы╫й╫Щ╫и ╫й╫Ь╫Ъ",
@@ -797,6 +814,7 @@
"edit_key": "╫в╫и╫Х╫Ъ ╫Ю╫д╫к╫Ч",
"edit_link": "╫в╫и╫Х╫Ъ ╫з╫Щ╫й╫Х╫и",
"edit_location": "╫в╫и╫Х╫Ъ ╫Ю╫Щ╫з╫Х╫Э",
"edit_location_action_prompt": "{count} ╫Ю╫Щ╫з╫Х╫Ю╫Щ╫Э ╫а╫в╫и╫Ы╫Х",
"edit_location_dialog_title": "╫Ю╫Щ╫з╫Х╫Э",
"edit_name": "╫в╫и╫Х╫Ъ ╫й╫Э",
"edit_people": "╫в╫и╫Х╫Ъ ╫Р╫а╫й╫Щ╫Э",
@@ -982,6 +1000,7 @@
"failed_to_load_assets": "╫Ш╫в╫Щ╫а╫к ╫к╫Ю╫Х╫а╫Х╫к ╫а╫Ы╫й╫Ь╫Ф",
"failed_to_load_folder": "╫Ш╫в╫Щ╫а╫к ╫к╫Щ╫з╫Щ╫Ф ╫а╫Ы╫й╫Ь╫Ф",
"favorite": "╫Ю╫Х╫в╫У╫г",
"favorite_action_prompt": "{count} ╫а╫Х╫б╫д╫Х ╫Ь╫Ю╫Х╫в╫У╫д╫Щ╫Э",
"favorite_or_unfavorite_photo": "╫Ф╫Х╫б╫г ╫Р╫Х ╫Ф╫б╫и ╫к╫Ю╫Х╫а╫Ф ╫Ю╫Ф╫Ю╫Х╫в╫У╫д╫Щ╫Э",
"favorites": "╫Ю╫Х╫в╫У╫д╫Щ╫Э",
"favorites_page_no_favorites": "╫Ь╫Р ╫а╫Ю╫ж╫Р╫Х ╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫Х╫в╫У╫д╫Щ╫Э",
@@ -1148,6 +1167,7 @@
"locked_folder": "╫к╫Щ╫з╫Щ╫Ф ╫а╫в╫Х╫Ь╫Ф",
"log_out": "╫Ф╫к╫а╫к╫з",
"log_out_all_devices": "╫Ф╫к╫а╫к╫з ╫Ю╫Ы╫Ь ╫Ф╫Ю╫Ы╫й╫Щ╫и╫Щ╫Э",
"logged_in_as": "╫Ю╫Ч╫Х╫С╫и ╫Ы {user}",
"logged_out_all_devices": "╫Ю╫а╫Х╫к╫з ╫Ю╫Ы╫Ь ╫Ф╫Ю╫Ы╫й╫Щ╫и╫Щ╫Э",
"logged_out_device": "╫Ю╫Ы╫й╫Щ╫и ╫Ю╫а╫Х╫к╫з",
"login": "╫Ы╫а╫Щ╫б╫Ф",
@@ -1243,6 +1263,7 @@
"more": "╫в╫Х╫У",
"move": "╫Ф╫в╫С╫и",
"move_off_locked_folder": "╫Ф╫Х╫ж╫Р╫Ф ╫Ю╫Ф╫к╫Щ╫з╫Щ╫Щ╫Ф ╫Ф╫а╫в╫Х╫Ь╫Ф",
"move_to_lock_folder_action_prompt": "{count} ╫а╫Х╫б╫д╫Х ╫Ь╫к╫Щ╫з╫Щ╫Щ╫Ф ╫Ф╫а╫в╫Х╫Ь╫Ф",
"move_to_locked_folder": "╫Ф╫в╫С╫и ╫Ь╫к╫Щ╫з╫Щ╫Ф ╫Ф╫а╫в╫Х╫Ь╫Ф",
"move_to_locked_folder_confirmation": "╫Ф╫к╫Ю╫Х╫а╫Х╫к ╫Х╫Ф╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫Ф╫Р╫Ь╫Х ╫Щ╫Х╫б╫и╫Х ╫Ю╫Ы╫Ь ╫Ф╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э, ╫Х╫Щ╫Ф╫Щ╫Х ╫Ю╫Х╫ж╫Т╫Щ╫Э ╫и╫з ╫С╫к╫Щ╫з╫Щ╫Ф ╫Ф╫а╫в╫Х╫Ь╫Ф",
"moved_to_archive": "{count, plural, one {╫Ф╫Х╫в╫С╫и╫Ф ╫к╫Ю╫Х╫а╫Ф # } other {# ╫к╫Ю╫Х╫а╫Х╫к ╫Ф╫Х╫в╫С╫и╫Х}} ╫Ь╫Р╫и╫Ы╫Щ╫Х╫Я",
@@ -1492,7 +1513,9 @@
"remove_custom_date_range": "╫Ф╫б╫и ╫Ш╫Х╫Х╫Ч ╫к╫Р╫и╫Щ╫Ы╫Щ╫Э ╫Ю╫Х╫к╫Р╫Э",
"remove_deleted_assets": "╫Ф╫б╫и ╫з╫С╫ж╫Щ╫Э ╫Ь╫Р ╫Ю╫з╫Х╫Х╫а╫Щ╫Э",
"remove_from_album": "╫Ф╫б╫и ╫Ю╫Р╫Ь╫С╫Х╫Э",
"remove_from_album_action_prompt": "{count} ╫Ф╫Х╫б╫и╫Х ╫Ю╫Ф╫Р╫Ь╫С╫Х╫Э",
"remove_from_favorites": "╫Ф╫б╫и ╫Ю╫Ф╫Ю╫Х╫в╫У╫д╫Щ╫Э",
"remove_from_lock_folder_action_prompt": "{count} ╫Ф╫Х╫б╫и╫Х ╫Ю╫Ф╫к╫Щ╫з╫Щ╫Щ╫Ф ╫Ф╫а╫в╫Х╫Ь╫Ф",
"remove_from_locked_folder": "╫Ф╫б╫и ╫Ю╫Ф╫к╫Щ╫з╫Щ╫Щ╫Ф ╫Ф╫а╫в╫Х╫Ь╫Ф",
"remove_from_locked_folder_confirmation": "╫Ф╫Р╫Э ╫Р╫к╫Ф ╫С╫Ш╫Х╫Ч ╫й╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫Ф╫в╫С╫Щ╫и ╫Р╫к ╫Ф╫к╫Ю╫Х╫а╫Х╫к ╫Х╫Ф╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫Ф╫Р╫Ь╫Ф ╫Ю╫Ч╫Х╫е ╫Ь╫к╫Щ╫з╫Щ╫Щ╫Ф ╫Ф╫а╫в╫Х╫Ь╫Ф? ╫Ф╫Э ╫Щ╫Ф╫Щ╫Х ╫Ю╫Х╫ж╫Т╫Щ╫Э ╫С╫б╫д╫и╫Щ╫Щ╫Ф ╫й╫Ь╫Ъ.",
"remove_from_shared_link": "╫Ф╫б╫и ╫Ю╫з╫Щ╫й╫Х╫и ╫Ю╫й╫Х╫к╫г",
@@ -1605,6 +1628,7 @@
"select_album_cover": "╫С╫Ч╫и ╫в╫Ш╫Щ╫д╫к ╫Р╫Ь╫С╫Х╫Э",
"select_all": "╫С╫Ч╫и ╫Ф╫Ы╫Ь",
"select_all_duplicates": "╫С╫Ч╫и ╫Р╫к ╫Ы╫Ь ╫Ф╫Ы╫д╫Щ╫Ь╫Х╫Щ╫Х╫к",
"select_all_in": "╫С╫Ч╫и ╫Ф╫Ы╫Х╫Ь ╫С╫к╫Х╫Ъ {group}",
"select_avatar_color": "╫С╫Ч╫и ╫ж╫С╫в ╫к╫Ю╫Х╫а╫к ╫д╫и╫Х╫д╫Щ╫Ь",
"select_face": "╫С╫Ч╫и ╫д╫а╫Щ╫Э",
"select_featured_photo": "╫С╫Ч╫и ╫к╫Ю╫Х╫а╫Ф ╫Ю╫Щ╫Щ╫ж╫Т╫к",
@@ -1834,6 +1858,7 @@
"total": "╫б╫Ф\"╫Ы",
"total_usage": "╫й╫Щ╫Ю╫Х╫й ╫Ы╫Х╫Ь╫Ь",
"trash": "╫Р╫й╫д╫Ф",
"trash_action_prompt": "{count} ╫Ф╫Х╫в╫С╫и╫Х ╫Ь╫Р╫й╫д╫Ф",
"trash_all": "╫Ф╫в╫С╫и ╫Ф╫Ы╫Ь ╫Ь╫Р╫й╫д╫Ф",
"trash_count": "╫Ф╫в╫С╫и ╫Ь╫Р╫й╫д╫Ф {count, number}",
"trash_delete_asset": "╫Ф╫в╫С╫и ╫Ь╫Р╫й╫д╫Ф/╫Ю╫Ч╫з ╫к╫Ю╫Х╫а╫Ф",
@@ -1851,9 +1876,11 @@
"unable_to_change_pin_code": "╫Ь╫Р ╫а╫Щ╫к╫Я ╫Ь╫й╫а╫Х╫к ╫Р╫к ╫з╫Х╫У ╫Ф PIN",
"unable_to_setup_pin_code": "╫Ь╫Р ╫а╫Щ╫к╫Я ╫Ь╫Ф╫Т╫У╫Щ╫и ╫з╫Х╫У PIN",
"unarchive": "╫Ф╫Х╫ж╫Р ╫Ю╫Р╫и╫Ы╫Щ╫Х╫Я",
"unarchive_action_prompt": "{count} ╫Ф╫Х╫б╫и╫Х ╫Ю╫Ф╫Р╫и╫Ы╫Щ╫Х╫Я",
"unarchived_count": "{count, plural, other {# ╫Ф╫Х╫ж╫Р╫Х ╫Ю╫Ф╫Р╫и╫Ы╫Щ╫Х╫Я}}",
"undo": "╫Ь╫С╫Ш╫Ь",
"unfavorite": "╫Ь╫Р ╫Ю╫Х╫в╫У╫г",
"unfavorite_action_prompt": "{count} ╫Ф╫Х╫б╫и╫Х ╫Ю╫Ф╫Ю╫Х╫в╫У╫д╫Щ╫Э",
"unhide_person": "╫С╫Ш╫Ь ╫Ф╫б╫к╫и╫к ╫Р╫У╫Э",
"unknown": "╫Ь╫Р ╫Щ╫У╫Х╫в",
"unknown_country": "╫Ю╫У╫Щ╫а╫Ф ╫Ь╫Р ╫Щ╫У╫Х╫в╫Ф",
@@ -1869,8 +1896,10 @@
"unsaved_change": "╫й╫Щ╫а╫Х╫Щ ╫Ь╫Р ╫а╫й╫Ю╫и",
"unselect_all": "╫С╫Ш╫Ь ╫С╫Ч╫Щ╫и╫Ф ╫С╫Ф╫Ы╫Ь",
"unselect_all_duplicates": "╫С╫Ш╫Ь ╫С╫Ч╫Щ╫и╫к ╫Ы╫Ь ╫Ф╫Ы╫д╫Щ╫Ь╫Х╫Щ╫Х╫к",
"unselect_all_in": "╫С╫Ш╫Ь ╫Р╫к ╫Ф╫С╫Ч╫Щ╫и╫Ф ╫й╫Ь ╫Ф╫Ы╫Ь ╫С {group}",
"unstack": "╫С╫Ш╫Ь ╫в╫и╫Щ╫Ю╫Ф",
"unstacked_assets_count": "{count, plural, one {╫к╫Ю╫Х╫а╫Ф # ╫Ф╫Х╫б╫и╫Ф} other {# ╫к╫Ю╫Х╫а╫Х╫к ╫Ф╫Х╫б╫и╫Х}} ╫Ю╫Ф╫в╫и╫Щ╫Ю╫Ф",
"untagged": "╫Ь╫Р ╫Ю╫к╫Щ╫Х╫Т╫Щ╫Э",
"up_next": "╫Ф╫С╫Р ╫С╫к╫Х╫и",
"updated_at": "╫в╫Х╫У╫Ы╫Я",
"updated_password": "╫б╫Щ╫б╫Ю╫Ф ╫в╫Х╫У╫Ы╫а╫Ф",
+2
View File
@@ -22,6 +22,7 @@
"add_partner": "рдЬреЛрдбрд╝реАрджрд╛рд░ рдбрд╛рд▓реЗрдВ",
"add_path": "рдкрде рдбрд╛рд▓реЗрдВ",
"add_photos": "рдлрд╝реЛрдЯреЛ рдбрд╛рд▓реЗрдВ",
"add_tag": "рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ",
"add_to": "рдЗрд╕рдореЗрдВ рдбрд╛рд▓реЗрдВтАж",
"add_to_album": "рдПрд▓реНрдмрдо рдореЗрдВ рдбрд╛рд▓реЗрдВ",
"add_to_album_bottom_sheet_added": "{album} рдореЗрдВ рдбрд╛рд▓реЗрдВ",
@@ -33,6 +34,7 @@
"added_to_favorites_count": "рдкрд╕рдВрджреАрджрд╛ рдореЗрдВ {count, number} рдбрд╛рд▓рд╛ рдЧрдпрд╛",
"admin": {
"add_exclusion_pattern_description": "рдмрд╣рд┐рд╖реНрдХрд░рдг рдкреИрдЯрд░реНрди рдЬреЛрдбрд╝реЗрдВ. *, **, рдФрд░ ? рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧреНрд▓реЛрдмрд┐рдВрдЧ рдХрд░рдирд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред \"Raw\" рдирд╛рдордХ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреА рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, \"**/Raw/**\" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред \".tif\" рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, \"**/*.tif\" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдХрд┐рд╕реА рдкреВрд░реНрдг рдкрде рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, \"/path/to/ignore/**\" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред",
"admin_user": "рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛",
"asset_offline_description": "рдпрд╣ рдмрд╛рд╣рд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрд╕реЗрдЯ рдЕрдм рдбрд┐рд╕реНрдХ рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЯреНрд░реИрд╢ рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рднреАрддрд░ рдХрд╣реАрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдирдИ рд╕рдВрдмрдВрдзрд┐рдд рдПрд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЯрд╛рдЗрдорд▓рд╛рдЗрди рджреЗрдЦреЗрдВред рдЗрд╕ рдПрд╕реЗрдЯ рдХреЛ рд╡рд╛рдкрд╕ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЛ рдЗрдореНрдорд┐рдЪ рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реНрдХреИрди рдХрд░реЗрдВред",
"authentication_settings": "рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕",
"authentication_settings_description": "рдкрд╛рд╕рд╡рд░реНрдб, OAuth рдФрд░ рдЕрдиреНрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ",
-1
View File
@@ -462,7 +462,6 @@
"assets": "Sredstva",
"assets_added_count": "Dodano {count, plural, one {# asset} other {# assets}}",
"assets_added_to_album_count": "Dodano {count, plural, one {# asset} other {# assets}} u album",
"assets_added_to_name_count": "Dodano {count, plural, one {# asset} other {# assets}} u {hasName, select, true {<b>{name}</b>} other {new album}}",
"assets_cannot_be_added_to_album_count": "{count, plural,\n one {Nije mogu─Зe dodati medij u album}\n few {Nije mogu─Зe dodati # medija u album}\n other {Nije mogu─Зe dodati # medija u album}\n}",
"assets_count": "{count, plural, one {# asset} other {# assets}}",
"assets_deleted_permanently": "{count} resurs(i) uspje┼бno uklonjeni",
+134 -29
View File
@@ -22,6 +22,7 @@
"add_partner": "Partner hozz├бad├бsa",
"add_path": "El├йr├йsi ├║tvonal megad├бsa",
"add_photos": "Fot├│k hozz├бad├бsa",
"add_tag": "C├нmke hozz├бad├бsa",
"add_to": "Hozz├бad├бs ideтАж",
"add_to_album": "Felv├йtel albumba",
"add_to_album_bottom_sheet_added": "Hozz├бadva a(z) \"{album}\" albumhoz",
@@ -33,6 +34,7 @@
"added_to_favorites_count": "{count, number} hozz├бadva a kedvencekhez",
"admin": {
"add_exclusion_pattern_description": "Kihagy├бsi mint├бk (pattern) megad├бsa. A *, ** ├йs ? helyettes├нt┼С karakterek enged├йlyezettek. Pl. a \"Raw\" k├╢nyvt├бrban t├бrolt ├╢sszes f├бjl kihagy├бs├бhoz haszn├бlhat├│ a \"**/Raw/**\". Minden \".tif\" f├бjl kihagy├бsa az ├╢sszes mapp├бban: \"**/*.tif\". Abszol├║t el├йr├йsi ├║tvonal kihagy├бsa: \"/kihagyni/kivant/mappa/**\".",
"admin_user": "Admin felhaszn├бl├│",
"asset_offline_description": "Ez a k├╝ls┼С k├йpt├бrban l├йv┼С elem m├бr nem tal├бlhat├│, ez├йrt a lomt├бrba ker├╝lt. Ha a f├бjl a k├йpt├бron bel├╝l lett ├бthelyezve, akkor ellen┼Сrizd, hogy tov├бbbra is l├бthat├│ az id┼Сvonaladon. Az elem vissza├бll├нt├бs├бhoz gy┼Сz┼Сdj meg r├│la, hogy az al├бbbi mappa az Immich sz├бm├бra el├йrhet┼С, majd ├║jra f├йs├╝ld ├бt a k├йpt├бrat.",
"authentication_settings": "Hiteles├нt├йsi be├бll├нt├бsok",
"authentication_settings_description": "Jelsz├│, OAuth ├йs egy├йb hiteles├нt├йsi be├бll├нt├бsok kezel├йse",
@@ -43,7 +45,7 @@
"backup_database_enable_description": "Adatb├бzis ment├йsek enged├йlyez├йse",
"backup_keep_last_amount": "Meg┼Сrizend┼С kor├бbbi ment├йsek sz├бma",
"backup_settings": "Adatb├бzis ment├йs be├бll├нt├бsai",
"backup_settings_description": "Adatb├бzis ment├йs be├бll├нt├бsainak kezel├йse. Megjegyz├йs: Ezek a feladatok nincsenek fel├╝gyelve, ├нgy nem kapsz ├йrtes├нt├йs meghi├║sul├бs eset├йn.",
"backup_settings_description": "Adatb├бzis ment├йs be├бll├нt├бsainak kezel├йse.",
"cleared_jobs": "{job}: feladatai t├╢r├╢lve",
"config_set_by_file": "A konfigur├бci├│t jelenleg egy konfigur├бci├│s f├бjl ├бll├нtja be",
"confirm_delete_library": "Biztosan ki szeretn├йd t├╢r├╢lni a {library} k├йpt├бrat?",
@@ -155,7 +157,7 @@
"map_settings_description": "T├йrk├йp be├бll├нt├бsok kezel├йse",
"map_style_description": "Egy style.json t├йrk├йpt├йm├бra mutat├│ URL c├нm",
"memory_cleanup_job": "Mem├│ria takar├нt├бs",
"memory_generate_job": "Eml├йk gener├бl├бlsa",
"memory_generate_job": "Eml├йk gener├бl├бsa",
"metadata_extraction_job": "Metaadatok kinyer├йse",
"metadata_extraction_job_description": "Metaadat inform├бci├│k (pl. GPS, arcok ├йs felbont├бs) kinyer├йse minden elemb┼Сl",
"metadata_faces_import_setting": "Arc import├бl├бs enged├йlyez├йse",
@@ -169,7 +171,7 @@
"note_apply_storage_label_previous_assets": "Megjegyz├йs: Ha a kor├бbban felt├╢lt├╢tt elemekhez is szeretne T├бrhely C├нmk├йket t├бrs├нtani, akkor futtassa ezt",
"note_cannot_be_changed_later": "FIGYELEM: ezt k├йs┼Сbb nem lehet megv├бltoztatni!",
"notification_email_from_address": "Felad├│ c├нm",
"notification_email_from_address_description": "K├╝ld┼С email c├нme, p├йld├бul: \"Immich Fot├│szerver <noreply@example.com>\"",
"notification_email_from_address_description": "K├╝ld┼С email c├нme, p├йld├бul: \"Immich Fot├│szerver <noreply@example.com>\". Figyelj hogy olyan c├нmet adj meg ahonnan az email k├╝ld├йs enged├йlyezett.",
"notification_email_host_description": "Email szerver kiszolg├бl├│ja (pl. smtp.immich.app)",
"notification_email_ignore_certificate_errors": "Tan├║s├нtv├бny hib├бk figyelmen k├нv├╝l hagy├бsa",
"notification_email_ignore_certificate_errors_description": "TLS tan├║s├нtv├бny ├йrv├йnyess├йgi hib├бk figyelmen k├нv├╝l hagy├бsa (nem aj├бnlott)",
@@ -202,7 +204,7 @@
"oauth_storage_quota_claim": "T├бrhelykv├│ta ig├йnyl├йse",
"oauth_storage_quota_claim_description": "A felhaszn├бl├│ t├бrhelykv├│t├бj├бnak automatikus be├бll├нt├бsa ennek az ig├йnyeltre.",
"oauth_storage_quota_default": "Alap├йrtelmezett t├бrhelykv├│ta (GiB)",
"oauth_storage_quota_default_description": "Alap├йrtelmezett t├бrhely kv├│ta GiB-ban, amennyiben a felhaszn├бl├│ nem jelezte az ig├йny├йt (A korl├бtlan t├бrhelyhez 0-t adj meg).",
"oauth_storage_quota_default_description": "Alap├йrtelmezett t├бrhely kv├│ta GiB-ban, amennyiben a felhaszn├бl├│ nem jelezte az ig├йny├йt.",
"oauth_timeout": "K├йr├йs id┼Сkorl├бtja",
"oauth_timeout_description": "K├йr├йsek id┼Сkorl├бtja milliszekundumban",
"password_enable_description": "Bejelentkez├йs emaillel ├йs jelsz├│val",
@@ -242,6 +244,7 @@
"storage_template_migration_info": "A sablon az ├╢sszes kiterjeszt├йst kisbet┼▒ss├й alak├нtja ├бt. A megv├бltozott sablon csak az ├║jonnan felt├╢lt├╢tt elemekre vonatkozik. A kor├бbbi elemek visszamen┼Сleges ├бthelyez├йs├йhez ezt futtasd: <link>{job}</link>.",
"storage_template_migration_job": "T├бrhely Sablon Migr├бci├│ja",
"storage_template_more_details": "Tov├бbbi r├йszletek├йrt err┼Сl a funkci├│r├│l l├бsd a <template-link>T├бrhely Sablon</template-link> ├йs annak <implications-link>k├╢vetkezm├йnyeit</implications-link> a dokument├бci├│ban",
"storage_template_onboarding_description_v2": "A funkci├│ enged├йlyez├йs├йvel automatikusan, a felhaszn├бl├│ ├бltal defini├бlt sablon alapj├бn lesznek rendezve a f├бjlok. T├╢bb inform├бci├│├йrt l├бsd a <link>dokument├бci├│t</link>.",
"storage_template_path_length": "├Ъtvonal hozz├бvet┼Сleges maxim├бlis hossza: <b>{length, number}</b>{limit, number}",
"storage_template_settings": "T├бrhely Sablon",
"storage_template_settings_description": "A felt├╢lt├╢tt elemek mappaszerkezet├йnek ├йs f├бjl elnevez├йs├йnek kezel├йse",
@@ -256,7 +259,7 @@
"template_email_update_album": "Album friss├нtve sablon",
"template_email_welcome": "├Ьdv├╢zl┼С email sablon",
"template_settings": "├Йrtes├нt├йs sablon",
"template_settings_description": "Egy├йni sablonok kezel├йse az ├йrtes├нt├йsekhez.",
"template_settings_description": "Egy├йni sablonok kezel├йse az ├йrtes├нt├йsekhez",
"theme_custom_css_settings": "Egyedi CSS",
"theme_custom_css_settings_description": "CSS St├нluslapokkal az Immich st├нlusa megv├бltoztathat├│.",
"theme_settings": "T├йma Be├бll├нt├бsok",
@@ -288,7 +291,7 @@
"transcoding_encoding_options": "Enk├│dol├бs be├бll├нt├бsok",
"transcoding_encoding_options_description": "Be├бll├нthatod az enk├│dolt vide├│k k├│dol├бsi algoritmus├бt, felbont├бs├бt, min┼Сs├йg├йt ├йs egy├йb be├бll├нt├бsait",
"transcoding_hardware_acceleration": "Hardveres Gyors├нt├бs",
"transcoding_hardware_acceleration_description": "K├нs├йrleti funkci├│. Sokkal gyorsabb, viszont azonos bitr├бt├бn is alacsonyabb min┼Сs├йghez vezet",
"transcoding_hardware_acceleration_description": "K├нs├йrleti funkci├│: gyorsabb transzk├│dol├бs, viszont azonos bitr├бt├бn alacsonyabb min┼Сs├йghez vezethet",
"transcoding_hardware_decoding": "Hardveres dek├│dol├бs",
"transcoding_hardware_decoding_setting_description": "Lehet┼Сv├й teszi az eg├йsz folyamat gyors├нt├бs├бt a puszt├бn k├│dol├бs gyors├нt├бsa helyett. Nem biztos, hogy minden vide├│ eset├йn m┼▒k├╢dik.",
"transcoding_max_b_frames": "B-k├йpkock├бk maximum sz├бma",
@@ -334,6 +337,7 @@
"user_delete_delay_settings_description": "H├бny nappal az elt├бvol├нt├бs ut├бn legyen v├йglegesen t├╢r├╢lve a felhaszn├бl├│ fi├│kja ├йs t├бrolt elemei. A v├йgleges t├╢rl├йs feladat minden ├йjf├йlkor fut le, hogy ellen┼Сrizze, hogy van-e t├╢rlend┼С felhaszn├бl├│. Ez a be├бll├нt├бs a k├╢vetkez┼С futtat├бs sor├бn l├йp ├йletbe.",
"user_delete_immediately": "<b>{user}</b> felhaszn├бl├│ja ├йs ├╢sszes eleme <b>azonnal</b> sorba ├бll├нt├бsra ker├╝l a v├йgleges t├╢rl├йshez .",
"user_delete_immediately_checkbox": "Felhaszn├бl├│ ├йs t├бrolt elemeinek sorba ├бll├нt├бsa azonnali t├╢rl├йsre",
"user_details": "Felhaszn├бl├│i adatok",
"user_management": "Felhaszn├бl├│k Kezel├йse",
"user_password_has_been_reset": "A felhaszn├бl├│ jelszava megv├бltoztat├бsra ker├╝lt:",
"user_password_reset_description": "Juttasd el az ├бtmeneti jelsz├│t a felhaszn├бl├│hoz ├йs t├бj├йkoztasd, hogy a k├╢vetkez┼С bel├йp├йsn├йl azt majd meg kell v├бltoztatnia.",
@@ -349,6 +353,7 @@
"video_conversion_job": "Vide├│k ├Бtk├│dol├бsa",
"video_conversion_job_description": "Vide├│k ├бtk├│dol├бsa b├╢ng├йsz┼Сkkel ├йs eszk├╢z├╢kkel val├│ sz├йlesk├╢r┼▒ kompatibilit├бs ├йrdek├йben"
},
"admin_email": "Admin e-mail",
"admin_password": "Admin Jelsz├│",
"administration": "Adminisztr├бci├│",
"advanced": "Halad├│",
@@ -362,6 +367,7 @@
"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": "├Цnal├б├нrt SSL tan├║s├нtv├бnyok enged├йlyez├йse",
"advanced_settings_sync_remote_deletions_subtitle": "Automatikusan t├╢r├╢lni vagy vissza├бll├нtani egy elemet ezen az eszk├╢z├╢n, ha az adott m┼▒veletet a weben hajtott├бk v├йgre",
"advanced_settings_sync_remote_deletions_title": "T├бvoli t├╢rl├йsek szinkroniz├бl├бsa [K├НS├ЙRLETI FUNKCI├У]",
"advanced_settings_tile_subtitle": "Halad├│ felhaszn├бl├│i be├бll├нt├бsok",
"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",
@@ -398,6 +404,9 @@
"album_with_link_access": "A link birtok├бban b├бrki l├бthatja a fot├│kat ├йs a szem├йlyeket ebben az albumban.",
"albums": "Albumok",
"albums_count": "{count, plural, one {{count, number} Album} other {{count, number} Album}}",
"albums_default_sort_order": "Alap├йrtelmezett album rendez├йs",
"albums_default_sort_order_description": "Alap├йrtelmezett sorrendez├йs ├║j albumok l├йtrehoz├бs├бn├бl.",
"albums_feature_description": "M├бsokkal megoszthat├│ elemek gy┼▒jtem├йnye.",
"all": "Mind",
"all_albums": "Minden album",
"all_people": "Minden szem├йly",
@@ -455,10 +464,11 @@
"assets": "Elemek",
"assets_added_count": "{count, plural, other {# elem}} hozz├бadva",
"assets_added_to_album_count": "{count, plural, other {# elem}} hozz├бadva az albumhoz",
"assets_added_to_name_count": "{count, plural, other {# elem}} hozz├бadva {hasName, select, true {a(z) <b>{name}</b>} other {az ├║j}} albumhoz",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Az elem} other {Az elemek}} nem adhat├│ak hozz├б az albumhoz",
"assets_count": "{count, plural, other {# elem}}",
"assets_deleted_permanently": "{count} elem v├йglegesen t├╢r├╢lve",
"assets_deleted_permanently_from_server": "{count} elem v├йglegesen t├╢r├╢lve az Immich szerverr┼Сl",
"assets_downloaded_successfully": "{count, plural, one {# f├бjl sikeresen let├╢ltve} other {# f├бjl sikeresen let├╢ltve}}",
"assets_moved_to_trash_count": "{count, plural, other {# elem}} ├бthelyezve a lomt├бrba",
"assets_permanently_deleted_count": "{count, plural, other {# elem}} v├йglegesen t├╢r├╢lve",
"assets_removed_count": "{count, plural, other {# elem}} elt├бvol├нtva",
@@ -484,10 +494,10 @@
"backup_album_selection_page_selection_info": "├Цsszegz├йs",
"backup_album_selection_page_total_assets": "├Цsszes egyedi elem",
"backup_all": "├Цsszes",
"backup_background_service_backup_failed_message": "Az elemek ment├йse sikertelen. ├Ъjrapr├│b├бlkoz├бs...",
"backup_background_service_connection_failed_message": "A szerverhez csatlakoz├бs sikertelen. ├Ъjrapr├│b├бlkoz├бs...",
"backup_background_service_backup_failed_message": "Az elemek ment├йse sikertelen. ├Ъjrapr├│b├бlkoz├бsтАж",
"backup_background_service_connection_failed_message": "A szerverhez csatlakoz├бs sikertelen. ├Ъjrapr├│b├бlkoz├бsтАж",
"backup_background_service_current_upload_notification": "Felt├╢lt├йs {filename}",
"backup_background_service_default_notification": "├Ъj elemek ellen┼Сrz├йse...",
"backup_background_service_default_notification": "├Ъj elemek ellen┼Сrz├йseтАж",
"backup_background_service_error_title": "Hiba a ment├йs k├╢zben",
"backup_background_service_in_progress_notification": "Elemek ment├йse folyamatbanтАж",
"backup_background_service_upload_failure_notification": "A felt├╢lt├йs sikertelen {filename}",
@@ -497,6 +507,7 @@
"backup_controller_page_background_app_refresh_enable_button_text": "Be├бll├нt├бsok megnyit├бsa",
"backup_controller_page_background_battery_info_link": "Mutasd meg hogyan",
"backup_controller_page_background_battery_info_message": "A sikeres h├бtt├йrben t├╢rt├йn┼С ment├йshez k├йrj├╝k, tiltsd le az Immich akkumul├бtor optimaliz├бl├бs├бt.\n\nMivel ezt a k├╝l├╢nf├йle eszk├╢z├╢k├╢n m├бshogy kell, ez├йrt k├йrj├╝k, az eszk├╢z├╢d gy├бrt├│j├бt├│l tudd meg, hogyan kell.",
"backup_controller_page_background_battery_info_ok": "OK",
"backup_controller_page_background_battery_info_title": "Akkumul├бtor optimaliz├бl├бs",
"backup_controller_page_background_charging": "Csak t├╢lt├йs k├╢zben",
"backup_controller_page_background_configure_error": "A h├бtt├йrszolg├бltat├бs be├бll├нt├бsa sikertelen",
@@ -539,6 +550,10 @@
"backup_options_page_title": "Bizton├бgi ment├йs be├бll├нt├бsai",
"backup_setting_subtitle": "A h├бtt├йrben ├йs el┼Сt├йrben ment├йs be├бll├нt├бsainak kezel├йse",
"backward": "Visszafele",
"biometric_auth_enabled": "Biometrikus azonos├нt├бs enged├йlyezve",
"biometric_locked_out": "A biometrikus azonos├нt├бsb├│l kiz├бrva",
"biometric_no_options": "A biometrikus azonos├нt├бs nem el├йrhet┼С",
"biometric_not_available": "Biometrikus azonos├нt├бs ezen az eszk├╢z├╢n nem el├йrhet┼С",
"birthdate_saved": "Sz├╝let├йsnap elmentve",
"birthdate_set_description": "A sz├╝let├йs napj├бt a rendszer arra haszn├бlja, hogy ki├нrja, hogy a f├йnyk├йp k├йsz├нt├йsekor a szem├йly h├бny ├йves volt.",
"blurred_background": "Hom├бlyos h├бtt├йr",
@@ -572,6 +587,7 @@
"cannot_undo_this_action": "Ez a m┼▒velet nem visszavonhat├│!",
"cannot_update_the_description": "A le├нr├бs megv├бltoztat├бsa nem siker├╝lt",
"change_date": "D├бtum v├бltoztat├бsa",
"change_description": "Le├нr├бs megv├бltoztat├бsa",
"change_display_order": "Megjelen├нt├йsi sorrend megv├бltoztat├бsa",
"change_expiration_time": "Lej├бrati id┼С megv├бltoztat├бsa",
"change_location": "Helysz├нn v├бltoztat├бsa",
@@ -598,6 +614,7 @@
"clear_all_recent_searches": "Legut├│bbi keres├йsek t├╢rl├йse",
"clear_message": "├Ьzenet t├╢rl├йse",
"clear_value": "├Йrt├йk t├╢rl├йse",
"client_cert_dialog_msg_confirm": "OK",
"client_cert_enter_password": "Jelsz├│ Megad├бsa",
"client_cert_import": "Import├бl├бs",
"client_cert_import_success_msg": "Kliens tan├║s├нtv├бny import├бlva",
@@ -625,6 +642,10 @@
"confirm_keep_this_delete_others": "Minden m├бs elem a k├йszletben t├╢rl├йsre ker├╝l, kiv├йve ezt az elemet. Biztosan folytatni szeretn├йd?",
"confirm_new_pin_code": "├Ъj PIN k├│d meger┼Сs├нt├йse",
"confirm_password": "Jelsz├│ meger┼Сs├нt├йse",
"confirm_tag_face": "Szeretn├йd ezt az arcot {name}-k├йnt megjel├╢lni?",
"confirm_tag_face_unnamed": "Szeretn├йd ezt az arcot megjel├╢lni?",
"connected_device": "Kapcsolt eszk├╢z",
"connected_to": "Kapcsol├│dva",
"contain": "Bel├╝l",
"context": "Kontextus",
"continue": "Folytat├бs",
@@ -633,6 +654,7 @@
"control_bottom_app_bar_delete_from_local": "T├╢rl├йs az eszk├╢zr┼Сl",
"control_bottom_app_bar_edit_location": "Hely M├│dos├нt├бsa",
"control_bottom_app_bar_edit_time": "D├бtum ├йs Id┼С M├│dos├нt├бsa",
"control_bottom_app_bar_share_link": "Link megoszt├бsa",
"control_bottom_app_bar_share_to": "Megoszt├бs Ide",
"control_bottom_app_bar_trash_from_immich": "Lomt├бrba Helyez",
"copied_image_to_clipboard": "K├йp a v├бg├│lapra m├бsolva.",
@@ -664,6 +686,7 @@
"create_tag_description": "├Ъj c├нmke l├йtrehoz├бsa. Be├бgyazott c├нmk├йk eset├йn add meg a c├нmke teljes el├йr├йsi ├║tvonal├бt, bele├йrtve a perjeleket is.",
"create_user": "Felhaszn├бl├│ l├йtrehoz├бsa",
"created": "K├йsz├╝lt",
"created_at": "L├йtrehozva",
"crop": "Kiv├бg├бs",
"curated_object_page_title": "Dolgok",
"current_device": "Ez az eszk├╢z",
@@ -719,7 +742,9 @@
"direction": "Ir├бny",
"disabled": "Letiltott",
"disallow_edits": "M├│dos├нt├бsok letilt├бsa",
"discord": "Discord",
"discover": "Felfedez",
"discovered_devices": "Felfedezett eszk├╢z├╢k",
"dismiss_all_errors": "Minden hiba elvet├йse",
"dismiss_error": "Hiba elvet├йse",
"display_options": "Megjelen├нt├йsi be├бll├нt├бsok",
@@ -744,8 +769,8 @@
"download_settings_description": "Elemek let├╢lt├йs├йvel kapcsolatos be├бll├нt├бsok kezel├йse",
"download_started": "Let├╢lt├йs megkezdve",
"download_sucess": "Sikeres let├╢lt├йs",
"download_sucess_android": "M├йdia let├╢ltve a DCIM/Immich mapp├бba\n",
"download_waiting_to_retry": "V├бrakoz├бs",
"download_sucess_android": "M├йdia let├╢ltve a DCIM/Immich mapp├бba",
"download_waiting_to_retry": "V├бrakoz├бs ├║jrapr├│b├бlkoz├бshoz",
"downloading": "Let├╢lt├йs",
"downloading_asset_filename": "{filename} elem let├╢lt├йse",
"downloading_media": "M├йdia let├╢lt├йse",
@@ -758,6 +783,8 @@
"edit_avatar": "Profilk├йp m├│dos├нt├бsa",
"edit_date": "D├бtum m├│dos├нt├бsa",
"edit_date_and_time": "D├бtum ├йs id┼С m├│dos├нt├бsa",
"edit_description": "Le├нr├бs szerkeszt├йse",
"edit_description_prompt": "K├йrlek v├бlassz egy ├║j le├нr├бst:",
"edit_exclusion_pattern": "Kiz├бr├бsi minta (pattern) m├│dos├нt├бsa",
"edit_faces": "Arcok m├│dos├нt├бsa",
"edit_import_path": "Import├бl├бsi ├║tvonal m├│dos├нt├бsa",
@@ -777,18 +804,25 @@
"editor_close_without_save_title": "Szerkeszt┼С bez├бr├бsa?",
"editor_crop_tool_h2_aspect_ratios": "Oldalar├бnyok",
"editor_crop_tool_h2_rotation": "Forgat├бs",
"email": "E-mail",
"email_notifications": "E-mail ├йrtes├нt├йsek",
"empty_folder": "Ez a mappa ├╝res",
"empty_trash": "Lomt├бr ├╝r├нt├йse",
"empty_trash_confirmation": "Biztosan ki├╝r├нted a lomt├бrat? Ez az Immich lomt├бr├бban l├йv┼С ├╢sszes elemet v├йglegesen t├╢rli.\nEz a m┼▒velet nem visszavonhat├│!",
"enable": "Enged├йlyez├йs",
"enable_biometric_auth_description": "Add meg a jelszavad a biometrikus azonos├нt├бs enged├йlyez├йs├йhez",
"enabled": "Enged├йlyezve",
"end_date": "V├йg d├бtum",
"enqueued": "Sorba ├бll├нtva",
"enter_wifi_name": "Add meg a WiFi h├бl├│zat nev├йt",
"enter_wifi_name": "Add meg a Wi-Fi h├бl├│zat nev├йt",
"enter_your_pin_code": "Add meg a jelszavad",
"enter_your_pin_code_subtitle": "Add meg a jelszavad a z├бrolt mappa megnyit├бs├бhoz",
"error": "Hiba",
"error_change_sort_album": "Album sorbarendez├йs├йnek megv├бltoztat├бsa sikertelen",
"error_delete_face": "Hiba az arc t├╢rl├йse sor├бn",
"error_loading_image": "Hiba a k├йp bet├╢lt├йse k├╢zben",
"error_saving_image": "Hiba: {error}",
"error_tag_face_bounding_box": "Hiba az arc megjel├╢l├йse k├╢zben - nem el├йrhet┼Сek a hat├бrol├│ koordin├бt├бk",
"error_title": "Hiba - valami f├йlresiker├╝lt",
"errors": {
"cannot_navigate_next_asset": "Nem lehet a k├╢vetkez┼С elemhez navig├бlni",
@@ -816,10 +850,12 @@
"failed_to_keep_this_delete_others": "Nem siker├╝lt megtartani ezt az elemet, ├йs a t├╢bbi elemet t├╢r├╢lni",
"failed_to_load_asset": "Elem bet├╢lt├йse sikertelen",
"failed_to_load_assets": "Elemek bet├╢lt├йse sikertelen",
"failed_to_load_notifications": "├Йrtes├нt├йsek bet├╢lt├йse sikertelen",
"failed_to_load_people": "Szem├йlyek bet├╢lt├йse sikertelen",
"failed_to_remove_product_key": "Term├йkkulcs elt├бvol├нt├бsa sikertelen",
"failed_to_stack_assets": "Elemek csoportos├нt├бsa sikertelen",
"failed_to_unstack_assets": "Csoportos├нtott elemek sz├йtszed├йse sikertelen",
"failed_to_update_notification_status": "├Йrtes├нt├йs st├бtusz friss├нt├йse sikertelen",
"import_path_already_exists": "Ez az import├бl├бsi ├║tvonal m├бr l├йtezik.",
"incorrect_email_or_password": "Helytelen email vagy jelsz├│",
"paths_validation_failed": "A(z) {paths, plural, one {# el├йr├йsi ├║tvonal} other {# el├йr├йsi ├║tvonal}} ├йrv├йnyes├нt├йse sikertelen",
@@ -836,6 +872,7 @@
"unable_to_archive_unarchive": "Az elem {archived, select, true {archiv├бl├бsa} other {kiv├йtele az arch├нvumb├│l}} sikertelen",
"unable_to_change_album_user_role": "Az album felhaszn├бl├│i jogk├╢r├йnek megv├бltoztat├бsa sikertelen",
"unable_to_change_date": "D├бtum megv├бltoztat├бsa sikertelen",
"unable_to_change_description": "Le├нr├бs m├│dos├нt├бsa sikertelen",
"unable_to_change_favorite": "Az elem kedvenc ├бllapot├бnak megv├бltoztat├бsa sikertelen",
"unable_to_change_location": "Hely megv├бltoztat├бsa sikertelen",
"unable_to_change_password": "Jelsz├│ megv├бltoztat├бsa sikertelen",
@@ -879,6 +916,7 @@
"unable_to_remove_partner": "Partner elt├бvol├нt├бsa sikertelen",
"unable_to_remove_reaction": "Reakci├│ elt├бvol├нt├бsa sikertelen",
"unable_to_reset_password": "Jelsz├│ vissza├бll├нt├бsa sikertelen",
"unable_to_reset_pin_code": "Jelsz├│ vissza├бll├нt├бsa sikertelen",
"unable_to_resolve_duplicate": "Duplik├бtum felold├бsa sikertelen",
"unable_to_restore_assets": "Elemek vissza├бll├нt├бsa sikertelen",
"unable_to_restore_trash": "Az ├╢sszes elem vissza├бll├нt├бsa sikertelen",
@@ -906,11 +944,14 @@
"unable_to_update_user": "Felhaszn├бl├│ m├│dos├нt├бsa sikertelen",
"unable_to_upload_file": "F├бjlfelt├╢lt├йs sikertelen"
},
"exif": "Exif",
"exif_bottom_sheet_description": "Le├нr├бs Hozz├бad├бsa...",
"exif_bottom_sheet_details": "R├ЙSZLETEK",
"exif_bottom_sheet_location": "HELY",
"exif_bottom_sheet_people": "EMBEREK",
"exif_bottom_sheet_person_add_person": "Elnevez",
"exif_bottom_sheet_person_age_months": "{months} h├│nap id┼Сs",
"exif_bottom_sheet_person_age_year_months": "1 ├йv, {months} h├│nap id┼Сs",
"exit_slideshow": "Kil├йp├йs a Diavet├нt├йsb┼Сl",
"expand_all": "├Цsszes kinyit├бsa",
"experimental_settings_new_asset_list_subtitle": "Fejleszt├йs alatt",
@@ -928,10 +969,12 @@
"external": "K├╝ls┼С K├йpt├бr",
"external_libraries": "K├╝ls┼С K├йpt├бrak",
"external_network": "K├╝ls┼С h├бl├│zat",
"external_network_sheet_info": "Ha nem vagy a megadott WiFi h├бl├│zathoz csatlakozva, akkor az alkalmaz├бs az al├бbbi URL c├нmeken fogja el├йrni a szervert, fentr┼Сl lefel├й haladva",
"external_network_sheet_info": "Ha nem vagy a megadott Wi-Fi h├бl├│zathoz csatlakozva, akkor az alkalmaz├бs az al├бbbi URL c├нmeken fogja el├йrni a szervert, fentr┼Сl lefel├й haladva",
"face_unassigned": "Nincs hozz├бrendelve",
"failed": "Sikertelen",
"failed_to_authenticate": "Autentik├бci├│ sikertelen",
"failed_to_load_assets": "Nem siker├╝lt bet├╢lteni az elemeket",
"failed_to_load_folder": "Mappa bet├╢lt├йse sikertelen",
"favorite": "Kedvenc",
"favorite_or_unfavorite_photo": "Fot├│ kedvencnek jel├╢l├йse vagy annak visszavon├бsa",
"favorites": "Kedvencek",
@@ -945,14 +988,19 @@
"filetype": "F├бjlt├нpus",
"filter": "Sz┼▒r┼С",
"filter_people": "Szem├йlyek sz┼▒r├йse",
"filter_places": "Helyek sz┼▒r├йse",
"find_them_fast": "N├йv alapj├бn keres├йssel gyorsan megtal├бlhat├│ak",
"fix_incorrect_match": "Hib├бs tal├бlat jav├нt├бsa",
"folder": "Mappa",
"folder_not_found": "Mappa nem tal├бlhat├│",
"folders": "Mapp├бk",
"folders_feature_description": "A f├бjlrendszerben l├йv┼С f├йnyk├йpek ├йs vide├│k mappan├йzetben val├│ b├╢ng├йsz├йse",
"forward": "El┼Сre",
"gcast_enabled": "Google Cast",
"gcast_enabled_description": "Ez a funkci├│ a Google-t┼Сl t├╢lti be a m┼▒k├╢d├йs├йhez sz├╝ks├йges k├╝ls┼С adatokat.",
"general": "├Бltal├бnos",
"get_help": "Seg├нts├йgk├йr├йs",
"get_wifiname_error": "Nem siker├╝lt lek├йrni a Wi-Fi nev├йt. Gy┼Сz┼Сdj meg r├│la, hogy megadtad a sz├╝ks├йges enged├йlyeket ├йs csatlakozt├бl egy Wi-Fi h├бl├│zathoz.",
"get_wifiname_error": "Nem siker├╝lt lek├йrni a Wi-Fi nev├йt. Gy┼Сz┼Сdj meg r├│la, hogy megadtad a sz├╝ks├йges enged├йlyeket ├йs csatlakozt├бl egy Wi-Fi h├бl├│zathoz",
"getting_started": "Kezd┼С L├йp├йsek",
"go_back": "Visszal├йp├йs",
"go_to_folder": "Ugr├бs a mapp├бhoz",
@@ -981,9 +1029,9 @@
"hide_person": "Szem├йly elrejt├йse",
"hide_unnamed_people": "N├йv n├йlk├╝li szem├йlyek elrejt├йse",
"home_page_add_to_album_conflicts": "{added} elem hozz├бadva a(z) \"{album}\" albumhoz. {failed} elem m├бr eleve az albumban volt.",
"home_page_add_to_album_err_local": "Helyi elemeket m├йg nem lehet albumba tenni. Kihagyjuk.",
"home_page_add_to_album_err_local": "Helyi elemeket m├йg nem lehet albumba tenni, kihagy├бs",
"home_page_add_to_album_success": "{added} elem hozz├бadva a(z) \"{album}\" albumhoz.",
"home_page_album_err_partner": "M├йg nem lehet a partner elemeit albumokhoz adni, ├║ghogy kihagyjuk.",
"home_page_album_err_partner": "M├йg nem lehet a partner elemeit albumokhoz adni, kihagy├бs",
"home_page_archive_err_local": "Helyi elemek archiv├бl├бsa m├йg nem t├бmogatott, ├║gyhogy kihagyjuk",
"home_page_archive_err_partner": "Partner elemeit nem lehet archiv├бlni, ├║gyhogy kihagyjuk",
"home_page_building_timeline": "Id┼Сvonal ├╢ssze├бll├нt├бsa",
@@ -991,11 +1039,14 @@
"home_page_delete_remote_err_local": "Helyi elemek vannak t├бvoli t├╢rl├йsre kiv├бlasztva, ├║gyhogy ezeket kihagyjuk",
"home_page_favorite_err_local": "Helyi elemeket m├йg nem lehet a kedvencek k├╢z├й tenni, ├║gyhogy ezeket kihagyjuk",
"home_page_favorite_err_partner": "Partner elemeit m├йg nem lehet a kedvencek k├╢z├й tenni, ├║gyhogy ezeket kihagyjuk",
"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_first_time_notice": "Ha most haszn├бlod el┼Сsz├╢r az alkalmaz├бst, a fot├│k ├йs vide├│k megjelen├нt├йs├йhez az id┼Сvonaladon, ├бll├нtsd be, hogy melyik albumaidr├│l k├йsz├╝lj├╢n biztons├бgi ment├йs",
"home_page_locked_error_local": "Helyi elemek nem mozgathat├│ak a z├бrolt mapp├бba, ├бtugorva",
"home_page_locked_error_partner": "Partner elemek nem mozgathat├│ak a z├бrolt mapp├бba, ├бtugorva",
"home_page_share_err_local": "Helyi elemekr┼Сl nem lehet megosztott linket k├йsz├нteni, ├║gyhogy kihagyjuk",
"home_page_upload_err_limit": "Csak 30 elemet tudsz egyszerre felt├╢lteni, ├║gyhogy kihagyjuk",
"host": "Kiszolg├бl├│",
"hour": "├Уra",
"id": "Azonos├нt├│",
"ignore_icloud_photos": "iCloud fot├│k figyelmen k├нv├╝l hagy├бsa",
"ignore_icloud_photos_description": "Az iCloud-ban t├бrolt fot├│k nem lesznek felt├╢ltve az Immich szerverre",
"image": "K├йp",
@@ -1035,6 +1086,11 @@
"invalid_date_format": "├Йrv├йnytelen d├бtumform├бtum",
"invite_people": "Szem├йlyek Megh├нv├бsa",
"invite_to_album": "Megh├нv├бs az albumba",
"ios_debug_info_last_sync_at": "Utolj├бra szinkroniz├бlva {dateTime}",
"ios_debug_info_no_processes_queued": "Nincs sorba ├бll├нtott h├бtterfolyamat",
"ios_debug_info_no_sync_yet": "M├йg nem futott szinkroniz├бl├│ h├бtt├йrfolyamat",
"ios_debug_info_processes_queued": "{count, plural, one {{count} h├бtt├йrfolyamat el┼Сk├йsz├нtve} other {{count} h├бtt├йrfolyamat el┼Сk├йsz├нtve}}",
"ios_debug_info_processing_ran_at": "Feldolgoz├бs futott {dateTime}",
"items_count": "{count, plural, other {# elem}}",
"jobs": "Feladatok",
"keep": "Megtart",
@@ -1043,6 +1099,8 @@
"kept_this_deleted_others": "Ez az elem ├йs a t├╢r├╢ltek meg lettek hagyva {count, plural, one {# asset} other {# assets}}",
"keyboard_shortcuts": "Billenty┼▒parancsok",
"language": "Nyelv",
"language_no_results_subtitle": "Pr├│b├бld a keres├йsed m├│dos├нt├бs├бt",
"language_search_hint": "Nyelvek keres├йse...",
"language_setting_description": "V├бlaszd ki prefer├бlt nyelvet",
"last_seen": "Utolj├бra l├бttuk",
"latest_version": "Legfrissebb Verzi├│",
@@ -1071,14 +1129,17 @@
"local_network": "Helyi h├бl├│zat",
"local_network_sheet_info": "Az alkalmaz├йs ezen az URL c├нmen fogja el├йrni a szervert, ha a megadott WiFi h├бl├│zathoz van csatlankozva",
"location_permission": "Helymeghat├бroz├бsi enged├йly",
"location_permission_content": "H├бl├│zatok automatikus v├бlt├бs├бhoz az Immich-nek *mindenk├йppen* hozz├б kell f├йrnie a pontos helyzethez, hogy az alkalmaz├бs le tudja k├йrni a Wi-Fi h├бl├│zat nev├йt",
"location_permission_content": "H├бl├│zatok automatikus v├бlt├бs├бhoz az Immich-nek sz├╝ks├йge van a pontos helymeghat├бroz├бsra, hogy az alkalmaz├бs le tudja k├йrni a Wi-Fi h├бl├│zat nev├йt",
"location_picker_choose_on_map": "V├бlassz a t├йrk├йpen",
"location_picker_latitude_error": "├Йrv├йnyes sz├йless├йgi k├╢rt ├нrj be",
"location_picker_latitude_hint": "Ide ├нrd a sz├йless├йgi k├╢rt",
"location_picker_longitude_error": "├Йrv├йnyes hossz├║s├бgi k├╢rt ├нrj be",
"location_picker_longitude_hint": "Ide ├нrd a hossz├║s├бgi k├╢rt",
"lock": "Z├бrol├бs",
"locked_folder": "Z├бrolt mappa",
"log_out": "Kijelentkez├йs",
"log_out_all_devices": "Kijelentkez├йs Minden Eszk├╢z├╢n",
"logged_in_as": "{user}-k├йnt bel├йpve",
"logged_out_all_devices": "Minden eszk├╢z kijelentkeztetve",
"logged_out_device": "Eszk├╢z kijelentkeztetve",
"login": "Bejelentkez├йs",
@@ -1093,7 +1154,7 @@
"login_form_err_invalid_url": "├Йrv├йnytelen c├нm",
"login_form_err_leading_whitespace": "Az els┼С karakter sz├│k├╢z",
"login_form_err_trailing_whitespace": "Az utols├│ karakter sz├│k├╢z",
"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_config": "Nem siker├╝lt az OAuth bejelentkez├йs. Ellen┼Сrizd a szerver URL-t",
"login_form_failed_get_oauth_server_disable": "OAuth bejelentkez├йs nem el├йrhet┼С ezen a szerveren",
"login_form_failed_login": "Hiba a bejelentkez├йs k├╢zben, ellen┼Сrizd a szerver c├нm├йt, az emailt ├йs a jelsz├│t",
"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.",
@@ -1145,6 +1206,9 @@
"map_settings_only_show_favorites": "Csak Kedvencek Mutat├бsa",
"map_settings_theme_settings": "T├йrk├йp T├йm├бja",
"map_zoom_to_see_photos": "Kicsiny├нtsd, hogy l├бss f├йnyk├йpeket",
"mark_all_as_read": "├Цsszes megjel├╢l├йse olvasottk├йnt",
"mark_as_read": "Megjel├╢l├йs olvasottk├йnt",
"marked_all_as_read": "├Цsszes megjel├╢lve olvasottk├йnt",
"matches": "Azonosak",
"media_type": "M├йdiat├нpus",
"memories": "Eml├йkek",
@@ -1169,6 +1233,12 @@
"month": "H├│nap",
"monthly_title_text_date_format": "y MMMM",
"more": "Tov├бbbiak",
"move": "├Бthelyez├йs",
"move_off_locked_folder": "Z├бrolt mapp├бb├│l kivon├бs",
"move_to_locked_folder": "├Бthelyez├йs a z├бrolt mapp├бba",
"move_to_locked_folder_confirmation": "Ezek a k├йpek ├йs vide├│k az ├╢sszes albumb├│l kiker├╝lnek, ├йs csak a z├бrolt mapp├бb├│l lesznek el├йrhet┼Сek",
"moved_to_archive": "{count, plural, one {# Elem} other {# Elemek}} archiv├бlva",
"moved_to_library": "{count, plural, one {# Elem} other {# Elemek}} m├бsik k├╢nyvt├бrba k├╢lt├╢ztetve",
"moved_to_trash": "├Бthelyezve a lomt├бrba",
"multiselect_grid_edit_date_time_err_read_only": "Csak-olvashat├│ elem(ek) d├бtuma nem m├│dos├нthat├│, ez├йrt kihagyjuk",
"multiselect_grid_edit_gps_err_read_only": "Csak-olvashat├│ elem(ek) helye nem m├│dos├нthat├│, ez├йrt kihagyjuk",
@@ -1184,6 +1254,7 @@
"new_password": "├Ъj jelsz├│",
"new_person": "├Ъj szem├йly",
"new_pin_code": "├Ъj PIN k├│d",
"new_pin_code_subtitle": "Ez az els┼С alkalom hogy megnyitod a z├бrolt mapp├бt. Hozz l├йtre egy jelsz├│t az oldal biztos├нt├бs├бra",
"new_user_created": "├Ъj felhaszn├бl├│ l├йtrehozva",
"new_version_available": "├ЪJ VERZI├У ├ЙRHET┼Р EL",
"newest_first": "Leg├║jabb el┼Сsz├╢r",
@@ -1201,7 +1272,9 @@
"no_explore_results_message": "T├╢lts fel t├╢bb k├йpet, hogy b├╢ng├йszhesd a gy┼▒jtem├йnyed.",
"no_favorites_message": "Add hozz├б a kedvencekhez, hogy gyorsan megtal├бld a legjobb k├йpeidet ├йs vide├│idat",
"no_libraries_message": "Hozz l├йtre k├╝ls┼С k├йpt├бrat a f├йnyk├йpeid ├йs vide├│id megtekint├йs├йhez",
"no_locked_photos_message": "A z├бrolt mapp├бban elhelyezett fot├│k ├йs vide├│k rejtettek, ├йs nem jelennek meg a k├╢nyvt├бrad b├╢ng├йsz├йse vagy keres├йse k├╢zben sem.",
"no_name": "Nincs N├йv",
"no_notifications": "Nincsenek ├йrtes├нt├йsek",
"no_places": "Nincsenek helyek",
"no_results": "Nincs tal├бlat",
"no_results_description": "Pr├│b├бlkozz szinonim├бkkal vagy ├бltal├бnosabb kulcsszavakkal",
@@ -1210,6 +1283,7 @@
"not_selected": "Nincs kiv├бlasztva",
"note_apply_storage_label_to_previously_uploaded assets": "Megjegyz├йs: a kor├бbban felt├╢lt├╢tt elemek T├бrhely C├нmk├йz├йs├йhez futtasd a(z)",
"notes": "Megjegyz├йsek",
"nothing_here_yet": "Itt m├йg nincs semmi",
"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_list_tile_content": "├Йrtes├нt├йsek enged├йlyez├йse.",
"notification_permission_list_tile_enable_button": "├Йrtes├нt├йsek Bekapcsol├бsa",
@@ -1217,15 +1291,21 @@
"notification_toggle_setting_description": "Email ├йrtes├нt├йsek enged├йlyez├йse",
"notifications": "├Йrtes├нt├йsek",
"notifications_setting_description": "├Йrtes├нt├йsek kezel├йse",
"oauth": "OAuth",
"official_immich_resources": "Hivatalos Immich Forr├бsok",
"offline": "Offline",
"ok": "Rendben",
"oldest_first": "Legr├йgebbi el┼Сsz├╢r",
"on_this_device": "Ezen az eszk├╢z├╢n",
"onboarding": "Els┼С l├йp├йsek",
"onboarding_privacy_description": "Az al├бbbi (nem k├╢telez┼С) funkci├│k k├╝ls┼Сs szolg├бltat├бsokon alapulnak ├йs b├бrmikor kikapcsolhat├│ak az adminisztr├бci├│s be├бll├нt├бsokban.",
"onboarding_locale_description": "V├бlaszd ki a prefer├бlt nyelved. Ezt k├йs┼Сbb a be├бll├нt├бsokban b├бrmikor m├│dos├нthatod.",
"onboarding_privacy_description": "Az al├бbbi (nem k├╢telez┼С) funkci├│k k├╝ls┼Сs szolg├бltat├бsokon alapulnak ├йs b├бrmikor kikapcsolhat├│ak a be├бll├нt├бsokban.",
"onboarding_theme_description": "V├бlassz egy sz├нnt├йm├бt. Ezt b├бrmikor megv├бltoztathatod a be├бll├нt├бsokban.",
"onboarding_user_welcome_description": "Kezdj├╝nk bele!",
"onboarding_welcome_user": "├Ьdv├╢z├╢llek {user}",
"online": "Online",
"only_favorites": "Csak kedvencek",
"open": "Nyitva",
"open_in_map_view": "Megnyit├бs t├йrk├йp n├йzetben",
"open_in_openstreetmap": "Megnyit├бs OpenStreetMap-ben",
"open_the_search_filters": "Keres├йsi sz┼▒r┼Сk megnyit├бsa",
@@ -1238,6 +1318,7 @@
"other_variables": "Egy├йb v├бltoz├│k",
"owned": "Tulajdonos",
"owner": "Tulajdonos",
"partner": "Partner",
"partner_can_access": "{partner} hozz├бf├йrhet",
"partner_can_access_assets": "Minden f├йnyk├йped ├йs vide├│d, kiv├йve az Archiv├бltak ├йs a T├╢r├╢ltek",
"partner_can_access_location": "A helysz├нn, ahol a fot├│kat k├йsz├нtett├йk",
@@ -1247,7 +1328,7 @@
"partner_page_no_more_users": "Nincs t├╢bb hozz├бadhat├│ felhaszn├бl├│",
"partner_page_partner_add_failed": "Partner hozz├бad├бsa sikertelen",
"partner_page_select_partner": "Partner kiv├бlaszt├бsa",
"partner_page_shared_to_title": "Megosztva: ",
"partner_page_shared_to_title": "Megosztva",
"partner_page_stop_sharing_content": "{partner} nem fog t├╢bb├й hozz├бf├йrni a fot├│idhoz.",
"partner_sharing": "Partner Megoszt├бs",
"partners": "Partnerek",
@@ -1277,6 +1358,8 @@
"permanently_delete_assets_prompt": "Biztos, hogy v├йglegesen t├╢r├╢lni {count, plural, one {szeretn├йd ezt az elemet} other {szeretn├йl <b>#</b> elemet}}? Ez el fogja t├бvol├нtani az {count, plural, one {elemet az albumokb├│l, amikben szerepel} other {elemeket az albumokb├│l, amikben szerepelnek}}.",
"permanently_deleted_asset": "Elem v├йglegesen t├╢r├╢lve",
"permanently_deleted_assets_count": "{count, plural, other {# elem}} v├йglegesen t├╢r├╢lve",
"permission": "Jogosults├бg",
"permission_empty": "A jogosults├бg nem hagyhat├│ ├╝resen",
"permission_onboarding_back": "Vissza",
"permission_onboarding_continue_anyway": "Folytat├бs mindenk├йpp",
"permission_onboarding_get_started": "V├бgjunk bele",
@@ -1284,7 +1367,7 @@
"permission_onboarding_permission_denied": "Hozz├бf├йr├йs megtagadva. Az Immich haszn├бlat├бhoz enged├йlyezni kell a fot├│ ├йs vide├│ hozz├бf├йr├йst a Be├бll├нt├бsokban.",
"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_request": "Enged├йlyezni kell, hogy az Immich hozz├бf├йrjen a k├йpeidhez ├йs vide├│idhoz",
"permission_onboarding_request": "Enged├йlyezni kell, hogy az Immich hozz├бf├йrjen a k├йpeidhez ├йs vide├│idhoz.",
"person": "Szem├йly",
"person_birthdate": "Sz├╝letett: {date}",
"person_hidden": "{name}{hidden, select, true { (rejtett)} other {}}",
@@ -1304,19 +1387,25 @@
"play_memories": "Eml├йkek lej├бtsz├бsa",
"play_motion_photo": "Mozg├│k├йp lej├бtsz├бsa",
"play_or_pause_video": "Vide├│ elind├нt├бsa vagy meg├бll├нt├бsa",
"port": "Port",
"preferences_settings_subtitle": "Alkalmaz├бsbe├бll├нt├бsok kezel├йse",
"preferences_settings_title": "Be├бll├нt├бsok",
"preset": "Sablon",
"preview": "El┼Сn├йzet",
"previous": "El┼Сz┼С",
"previous_memory": "El┼Сz┼С eml├йk",
"previous_or_next_photo": "El┼Сz┼С vagy k├╢vetkez┼С fot├│",
"previous_or_next_day": "Nap el┼Сre/h├бtra",
"previous_or_next_month": "H├│nap el┼Сre/h├бtra",
"previous_or_next_photo": "Fot├│ el┼Сre/h├бtra",
"previous_or_next_year": "├Йv el┼Сre/h├бtra",
"primary": "Els┼Сdleges",
"privacy": "Mag├бnszf├йra",
"profile": "Profil",
"profile_drawer_app_logs": "Napl├│k",
"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": "A mobilalkalmaz├бs elavult. K├йrj├╝k, friss├нtsd a legfrisebb alverzi├│ra.",
"profile_drawer_client_server_up_to_date": "A Kliens ├йs a Szerver is naprak├йsz",
"profile_drawer_github": "GitHub",
"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": "A szerver elavult. K├йrj├╝k, friss├нtsd a legfrisebb alverzi├│ra.",
"profile_image_of_user": "{user} profilk├йpe",
@@ -1370,6 +1459,8 @@
"recent_searches": "Legut├│bbi keres├йsek",
"recently_added": "Nemr├йg hozz├бadott",
"recently_added_page_title": "Nemr├йg Hozz├бadott",
"recently_taken": "Nemr├йg k├йsz├нtett",
"recently_taken_page_title": "Nemr├йg k├йsz├нtett",
"refresh": "Friss├нt├йs",
"refresh_encoded_videos": "├Бtk├│dolt vide├│k friss├нt├йse",
"refresh_faces": "Arcok friss├нt├йse",
@@ -1389,9 +1480,12 @@
"remove_deleted_assets": "T├╢r├╢lt Elemek Elt├бvol├нt├бsa",
"remove_from_album": "Elt├бvol├нt├бs az albumb├│l",
"remove_from_favorites": "Elt├бvol├нt├бs a kedvencekb┼Сl",
"remove_from_locked_folder": "Elt├бvol├нt├бs a z├бrolt mapp├бb├│l",
"remove_from_locked_folder_confirmation": "Biztosan ki szeretn├йd venni ezeket a fot├│kat ├йs vide├│kat a z├бrolt mapp├бb├│l? L├бthat├│ak lesznek a k├╢nyvt├бradban.",
"remove_from_shared_link": "Elt├бvol├нt├бs a megosztott linkb┼Сl",
"remove_memory": "Eml├йk elt├бvol├нt├бsa",
"remove_photo_from_memory": "K├йp elt├бvol├нt├бsa az eml├йkb┼Сl",
"remove_tag": "C├нmke elt├бvol├нt├бsa",
"remove_url": "URL elt├бvol├нt├бsa",
"remove_user": "Felhaszn├бl├│ elt├бvol├нt├бsa",
"removed_api_key": "API Kulcs elt├бvol├нtva: {name}",
@@ -1485,7 +1579,7 @@
"search_result_page_new_search_hint": "├Ъj Keres├йs",
"search_settings": "Keres├йsi be├бll├нt├бsok",
"search_state": "Megye/├Бllam keres├йse...",
"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_tags": "C├нmk├йk keres├йse...",
"search_timezone": "Id┼Сz├│na keres├йse...",
@@ -1517,6 +1611,7 @@
"server_info_box_server_url": "Szerver C├нme",
"server_offline": "Szerver Nem El├йrhet┼С",
"server_online": "Szerver El├йrhet┼С",
"server_privacy": "Szerver biztons├бg",
"server_stats": "Szerver Statisztik├бk",
"server_version": "Szerver Verzi├│",
"set": "Be├бll├нt",
@@ -1526,6 +1621,7 @@
"set_date_of_birth": "Sz├╝let├йsi d├бtum be├бll├нt├бsa",
"set_profile_picture": "Profilk├йp be├бll├нt├бsa",
"set_slideshow_to_fullscreen": "Diavet├нt├йs teljes k├йperny┼Сre ├бll├нt├бsa",
"set_stack_primary_asset": "Be├бll├нt├бs els┼Сdleges elemk├йnt",
"setting_image_viewer_help": "Az Elem Megjelen├нt┼С 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": "Enged├йlyezi az eredeti teljes felbont├бs├║ k├йp bet├╢lt├йs├йt (nagy!). Kikapcsolva cs├╢kkenti az adathaszn├бlatot (a neten ├йs az eszk├╢z gyors├нt├│t├бr├бn is).",
"setting_image_viewer_original_title": "Eredeti k├йp bet├╢lt├йse",
@@ -1556,6 +1652,7 @@
"share_add_photos": "Fot├│k hozz├бad├бsa",
"share_assets_selected": "{count} kiv├бlasztva",
"share_dialog_preparing": "El┼Сk├йsz├нt├йs...",
"share_link": "Link megoszt├бsa",
"shared": "Megosztva",
"shared_album_activities_input_disable": "Hozz├бsz├│l├бsok kikapcsolva",
"shared_album_activity_remove_content": "T├╢r├╢lni szeretn├йd ezt a tev├йkenys├йget?",
@@ -1595,6 +1692,7 @@
"shared_link_expires_second": "{count} m├бsodperc m├║lva lej├бr",
"shared_link_expires_seconds": "{count} m├бsodperc m├║lva lej├бr",
"shared_link_individual_shared": "Egy├йnileg megosztva",
"shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Megosztott linkek kezel├йse",
"shared_link_options": "Megosztott link be├бll├нt├бsai",
"shared_links": "Megosztott linkek",
@@ -1656,6 +1754,7 @@
"stack_select_one_photo": "V├бlassz egy f┼С k├йpet a csoportb├│l",
"stack_selected_photos": "Kiv├бlasztott f├йnyk├йpek csoportos├нt├бsa",
"stacked_assets_count": "{count, plural, other {# elem}} csoportos├нtva",
"stacktrace": "Hibale├нr├бs",
"start": "Elind├нt",
"start_date": "Kezd┼С d├бtum",
"state": "Megye/├Бllam",
@@ -1666,6 +1765,7 @@
"stop_sharing_photos_with_user": "F├йnyk├йpeid megoszt├бs├бnak megsz├╝ntet├йse ezzel a felhaszn├бl├│val",
"storage": "T├бrhely",
"storage_label": "T├бrhely c├нmke",
"storage_quota": "T├бrhely kv├│ta",
"storage_usage": "{used}/{available} haszn├бlatban",
"submit": "Bek├╝ld├йs",
"suggestions": "Javaslatok",
@@ -1693,11 +1793,11 @@
"theme_selection_description": "A b├╢ng├йsz┼С be├бll├нt├бs├бnak megfelel┼Сen automatikusan haszn├бljon vil├бgos vagy s├╢t├йt t├йm├бt",
"theme_setting_asset_list_storage_indicator_title": "T├бrhely ikon mutat├бsa az elemeken",
"theme_setting_asset_list_tiles_per_row_title": "Elemek sz├бma soronk├йnt ({count})",
"theme_setting_colorful_interface_subtitle": "Alap├йrtelmezett sz├нn haszn├бlata a h├бtt├йrben l├йv┼С fel├╝letekhez",
"theme_setting_colorful_interface_subtitle": "Alap├йrtelmezett sz├нn haszn├бlata a h├бtt├йrben l├йv┼С fel├╝letekhez.",
"theme_setting_colorful_interface_title": "Sz├нnes felhaszn├бl├│i fel├╝let",
"theme_setting_image_viewer_quality_subtitle": "R├йszletes k├йpmegjelen├нt┼С min┼Сs├йg├йnek be├бll├нt├бsa",
"theme_setting_image_viewer_quality_title": "K├йpmegjelen├нt┼С min┼Сs├йge",
"theme_setting_primary_color_subtitle": "V├бlassz egy sz├нnt az alap├йrtelmezett m┼▒veletekhez ├йs kiemel├йsekhez",
"theme_setting_primary_color_subtitle": "V├бlassz egy sz├нnt az alap├йrtelmezett m┼▒veletekhez ├йs kiemel├йsekhez.",
"theme_setting_primary_color_title": "Alap├йrtelmezett sz├нn",
"theme_setting_system_primary_color_title": "Rendszersz├нnek haszn├бlata",
"theme_setting_system_theme_switch": "Automatikus (k├╢veti a rendszer t├йm├бj├бt)",
@@ -1737,6 +1837,7 @@
"unable_to_setup_pin_code": "Sikertelen PIN k├│d be├бll├нt├бs",
"unarchive": "Arch├нvumb├│l kivesz",
"unarchived_count": "{count, plural, other {# elem kiv├йve az arch├нvumb├│l}}",
"undo": "Visszavon├бs",
"unfavorite": "Kedvenc k├╢z├╝l kivesz",
"unhide_person": "Nem rejtett szem├йly",
"unknown": "Ismeretlen",
@@ -1756,6 +1857,7 @@
"unstack": "Csoport Sz├йtszed├йse",
"unstacked_assets_count": "{count, plural, other {# elemb┼Сl}} ├бll├│ csoport sz├йtszedve",
"up_next": "K├╢vetkezik",
"updated_at": "Friss├нtett",
"updated_password": "Jelsz├│ megv├бltoztatva",
"upload": "Felt├╢lt├йs",
"upload_concurrency": "P├бrhuzamos felt├╢lt├йs",
@@ -1770,14 +1872,17 @@
"upload_success": "Felt├╢lt├йs sikeres, friss├нtsd az oldalt az ├║jonnan felt├╢lt├╢tt elemek megtekint├йs├йhez.",
"upload_to_immich": "Felt├╢lt├йs Immich-be ({count})",
"uploading": "Felt├╢lt├йs folyamatban",
"url": "URL",
"usage": "Haszn├бlat",
"use_current_connection": "Jelenlegi kapcsolat haszn├бlata",
"use_custom_date_range": "Szabadon megadott id┼Сintervallum haszn├бlata",
"user": "Felhaszn├бl├│",
"user_has_been_deleted": "Ez a felhaszn├бl├│ t├╢rl├йsre ker├╝lt.",
"user_id": "Felhaszn├бl├│ azonos├нt├│ja",
"user_liked": "{user} felhaszn├бl├│nak {type, select, photo {ez a f├йnyk├йp} video {ez a vide├│} asset {ez az elem} other {ez}} tetszik",
"user_pin_code_settings": "PIN k├│d",
"user_pin_code_settings_description": "PIN k├│d kezel├йse",
"user_privacy": "Felhaszn├бl├│i biztons├бg",
"user_purchase_settings": "Megv├бs├бrl├бs",
"user_purchase_settings_description": "V├бs├бrl├бs kezel├йse",
"user_role_set": "{user} felhaszn├бl├│nak {role} jogk├╢r biztos├нt├бsa",
@@ -1822,12 +1927,12 @@
"week": "H├йt",
"welcome": "├Ьdv├╢zl├╝nk",
"welcome_to_immich": "├Ьdv├╢z├╢l az Immich",
"wifi_name": "WiFi Neve",
"wifi_name": "Wi-Fi Neve",
"wrong_pin_code": "Hib├бs PIN k├│d",
"year": "├Йv",
"years_ago": "{years, plural, one {# ├йvvel} other {# ├йvvel}} ezel┼Сtt",
"yes": "Igen",
"you_dont_have_any_shared_links": "Nincsenek megosztott linkjeid",
"your_wifi_name": "A WiFi h├бl├│zatod neve",
"your_wifi_name": "A Wi-Fi h├бl├│zatod neve",
"zoom_image": "K├йp Nagy├нt├бsa"
}
+19 -4
View File
@@ -34,6 +34,7 @@
"added_to_favorites_count": "Ditambahkan {count, number} ke favorit",
"admin": {
"add_exclusion_pattern_description": "Tambahkan pola pengecualian. Glob menggunakan *, **, dan ? didukung. Untuk mengabaikan semua berkas dalam direktori apa pun bernama \"Raw\", gunakan \"**/Raw/**\". Untuk mengabaikan semua berkas berakhiran dengan \".tif\", gunakan \"**/*.tif\". Untuk mengabaikan jalur absolut, gunakan \"/jalur/untuk/diabaikan/**\".",
"admin_user": "Pengguna Admin",
"asset_offline_description": "Aset pustaka eksternal ini tidak ada di diska dan telah dipindahkan ke tempat sampah. Jika berkasnya dipindah dalam pustaka, periksa lini masa Anda untuk aset baru yang cocok. Untuk memulihkan aset ini, pastikan jalur berkas di bawah dapat diakses oleh Immich dan pindai pustaka.",
"authentication_settings": "Pengaturan Autentikasi",
"authentication_settings_description": "Kelola kata sandi, OAuth, dan pengaturan autentikasi lainnya",
@@ -44,7 +45,7 @@
"backup_database_enable_description": "Aktifkan pencadangan basis data",
"backup_keep_last_amount": "Jumlah cadangan untuk disimpan",
"backup_settings": "Pengaturan Pencadangan Basis Data",
"backup_settings_description": "Kelola pengaturan pencadangan basis data. Catatan: Tugas ini tidak dipantau dan Anda tidak akan diberi tahu jika ada kesalahan.",
"backup_settings_description": "Kelola pengaturan pencadangan basis data.",
"cleared_jobs": "Tugas terselesaikan untuk: {job}",
"config_set_by_file": "Konfigurasi saat ini ditetapkan oleh berkas konfigurasi",
"confirm_delete_library": "Apakah Anda yakin ingin menghapus pustaka {library}?",
@@ -165,12 +166,18 @@
"metadata_settings_description": "Kelola pengaturan metadata",
"migration_job": "Migrasi",
"migration_job_description": "Migrasikan gambar kecil untuk aset dan wajah ke struktur folder terkini",
"nightly_tasks_cluster_faces_setting_description": "Mulai pengenalan wajah pada semua wajah yang baru saja terdeteksi",
"nightly_tasks_cluster_new_faces_setting": "Kelompokkan semua wajah baru",
"nightly_tasks_database_cleanup_setting": "Tugas pembersihan basis data",
"nightly_tasks_generate_memories_setting": "Buat kenang-kenangan",
"nightly_tasks_generate_memories_setting_description": "Buat kenang-kenangan baru dari berbagai aset",
"nightly_tasks_start_time_setting": "Waktu mulai",
"no_paths_added": "Tidak ada jalur yang ditambahkan",
"no_pattern_added": "Tidak ada pola yang ditambahkan",
"note_apply_storage_label_previous_assets": "Catatan: Untuk menerapkan Label Penyimpanan untuk aset yang telah diunggah sebelumnya, jalankan",
"note_cannot_be_changed_later": "CATATAN: Ini tidak akan dapat diubah lagi!",
"notification_email_from_address": "Dari alamat",
"notification_email_from_address_description": "Alamat surel pengirim, misalnya: \"Server Foto Immich <noreply@example.com>\"",
"notification_email_from_address_description": "Alamat surel pengirim, misalnya: \"Server Foto Immich <noreply@example.com>\". Pastikan untuk menggunakan alamat yang diizinkan untuk mengirim email",
"notification_email_host_description": "Hos server surel (mis. smtp.immich.app)",
"notification_email_ignore_certificate_errors": "Abaikan eror sertifikat",
"notification_email_ignore_certificate_errors_description": "Abaikan eror validasi sertifikat TLS (tidak disarankan)",
@@ -195,6 +202,7 @@
"oauth_mobile_redirect_uri": "URI pengalihan ponsel",
"oauth_mobile_redirect_uri_override": "Penimpaan URI penerusan ponsel",
"oauth_mobile_redirect_uri_override_description": "Aktifkan ketika provider OAuth tidak mengizinkan tautan mobile, seperti ''{callback}''",
"oauth_role_claim_description": "Secara otomatis memberikan akses admin berdasarkan keberadaan klaim ini. Klaim dapat berupa \"user\" atau \"admin\".",
"oauth_settings": "OAuth",
"oauth_settings_description": "Kelola pengaturan log masuk OAuth",
"oauth_settings_more_details": "Untuk detail lanjut tentang fitur ini, lihat <link>docs</link>.",
@@ -243,6 +251,7 @@
"storage_template_migration_info": "Templat penyimpanan akan mengubah semua ekstensi ke huruf kecil. Perubahan templat hanya akan diterapkan pada aset baru. Untuk menerapkan templat pada setiap aset yang sebelumnya telah diunggah, jalankan <link>{job}</link>.",
"storage_template_migration_job": "Tugas Migrasi Templat Ruang Penyimpanan",
"storage_template_more_details": "Untuk detail lebih lanjut tentang fitur ini, pergi ke <template-link>Templat Penyimpanan</template-link> dan <implications-link>kekurangannya</implications-link>",
"storage_template_onboarding_description_v2": "Saat diaktifkan, fitur ini akan mengatur file secara otomatis berdasarkan templat yang ditentukan pengguna. Untuk informasi selengkapnya, silakan lihat <link>dokumentasi</link>.",
"storage_template_path_length": "Batas panjang jalur: <b>{length, number}</b>{limit, number}",
"storage_template_settings": "Templat Penyimpanan",
"storage_template_settings_description": "Kelola struktur folder dan nama berkas dari aset yang diunggah",
@@ -257,7 +266,7 @@
"template_email_update_album": "Perbarui Templat Album",
"template_email_welcome": "Templat surel selamat datang",
"template_settings": "Templat Notifikasi",
"template_settings_description": "Kelola templat kustom untuk notifikasi.",
"template_settings_description": "Kelola templat kustom untuk notifikasi",
"theme_custom_css_settings": "CSS Kustom",
"theme_custom_css_settings_description": "CSS memungkinkan desain Immich untuk diubah.",
"theme_settings": "Pengaturan Tema",
@@ -355,13 +364,20 @@
"admin_password": "Kata Sandi Admin",
"administration": "Administrasi",
"advanced": "Tingkat lanjut",
"advanced_settings_beta_timeline_subtitle": "Coba pengalaman aplikasi baru",
"advanced_settings_beta_timeline_title": "Garis waktu Beta",
"advanced_settings_enable_alternate_media_filter_subtitle": "Gunakan opsi ini untuk menyaring media saat sinkronisasi berdasarkan kriteria alternatif. Hanya coba ini dengan aplikasi mendeteksi semua album.",
"advanced_settings_enable_alternate_media_filter_title": "[EKSPERIMENTAL] Gunakan saringan sinkronisasi album perangkat alternatif",
"advanced_settings_log_level_title": "Tingkat log: {level}",
"advanced_settings_prefer_remote_subtitle": "Beberapa perangkat tidak dapat memuat gambar kecil dengan cepat. Menyalakan ini akan memuat gambar kecil dari server.",
"advanced_settings_prefer_remote_title": "Prioritaskan gambar dari server",
"advanced_settings_proxy_headers_subtitle": "Tentukan header proxy yang harus dikirim Immich dengan setiap permintaan jaringan",
"advanced_settings_self_signed_ssl_subtitle": "Melewati verifikasi sertifikat SSL untuk titik akhir server. Diperlukan untuk sertifikat yang ditandatangani sendiri.",
"advanced_settings_self_signed_ssl_title": "Izinkan sertifikat SSL yang ditandatangani sendiri",
"advanced_settings_sync_remote_deletions_subtitle": "Hapus atau pulihkan aset pada perangkat ini secara otomatis ketika tindakan dilakukan di web",
"advanced_settings_sync_remote_deletions_title": "Sinkronisasi penghapusan jarak jauh [EKSPERIMENTAL]",
"advanced_settings_tile_subtitle": "Pengaturan pengguna tingkat lanjut",
"advanced_settings_troubleshooting_subtitle": "Aktifkan fitur tambahan untuk pemecahan masalah",
"age_months": "Umur {months, plural, one {# bulan} other {# bulan}}",
"age_year_months": "Umur 1 tahun, {months, plural, one {# bulan} other {# bulan}}",
"age_years": "{years, plural, other {Umur #}}",
@@ -446,7 +462,6 @@
"assets": "Aset",
"assets_added_count": "{count, plural, one {# aset} other {# aset}} ditambahkan",
"assets_added_to_album_count": "Ditambahkan {count, plural, one {# aset} other {# aset}} ke album",
"assets_added_to_name_count": "Ditambahkan {count, plural, one {# aset} other {# aset}} ke {hasName, select, true {<b>{name}</b>} other {album baru}}",
"assets_count": "{count, plural, one {# aset} other {# aset}}",
"assets_deleted_permanently": "{count} aset dihapus secara permanen",
"assets_deleted_permanently_from_server": "{count} aset dihapus secara permanen dari server Immich",
+70 -45
View File
@@ -87,7 +87,7 @@
"image_settings": "Impostazioni delle immagini",
"image_settings_description": "Gestisci qualit├а e risoluzione delle immagini generate",
"image_thumbnail_description": "Miniatura piccola senza metadati, utilizzata durante la visualizzazione di gruppi di foto come la sequenza temporale principale",
"image_thumbnail_quality_description": "Qualit├а delle miniature da 1 a 100. Un valore pi├╣ alto ├и migliore, ma produce file pi├╣ grandi e pu├▓ ridurre la reattivit├а dell'app.",
"image_thumbnail_quality_description": "Qualit├а delle anteprime da 1 a 100. Un valore pi├╣ alto ├и migliore ma produce file pi├╣ grandi e pu├▓ ridurre la reattivit├а dell'app.",
"image_thumbnail_title": "Impostazioni della copertina",
"job_concurrency": "Concorrenza {job}",
"job_created": "Processo creato",
@@ -105,7 +105,7 @@
"library_scanning_enable_description": "Attiva la scansione periodica della libreria",
"library_settings": "Libreria Esterna",
"library_settings_description": "Gestisci le impostazioni della libreria esterna",
"library_tasks_description": "Scansiona le librerie esterne per i nuovi aggiornamenti",
"library_tasks_description": "Scansiona le librerie esterne per risorse nuove o modificate",
"library_watching_enable_description": "Osserva le librerie esterne per cambiamenti",
"library_watching_settings": "Osserva librerie (SPERIMENTALE)",
"library_watching_settings_description": "Osserva automaticamente i cambiamenti dei file",
@@ -121,7 +121,7 @@
"machine_learning_enabled": "Attiva machine learning",
"machine_learning_enabled_description": "Se disabilitato, tutte le funzioni di ML saranno disabilitate ignorando le importazioni sottostanti.",
"machine_learning_facial_recognition": "Riconoscimento Facciale",
"machine_learning_facial_recognition_description": "Rileva, riconosci, e raggruppa facce nelle immagini",
"machine_learning_facial_recognition_description": "Rileva, riconosci e raggruppa volti nelle immagini",
"machine_learning_facial_recognition_model": "Modello di riconoscimento facciale",
"machine_learning_facial_recognition_model_description": "I modelli sono mostrati in ordine decrescente in base alla dimensione. I modelli pi├╣ grandi sono pi├╣ lenti e utilizzano pi├╣ memoria, per├▓ producono risultati migliori. Nota che devi ri-eseguire il processo di rilevamento facciale per tutte le immagini quando cambi il modello.",
"machine_learning_facial_recognition_setting": "Attiva riconoscimento facciale",
@@ -156,16 +156,30 @@
"map_settings": "Impostazioni Mappa e Posizione",
"map_settings_description": "Gestisci impostazioni mappa",
"map_style_description": "URL per un tema della mappa style.json",
"memory_cleanup_job": "pulizia memoria",
"memory_generate_job": "Generazione della memoria",
"memory_cleanup_job": "Pulizia dei vecchi Ricordi",
"memory_generate_job": "Generazione dei Ricordi",
"metadata_extraction_job": "Estrazione Metadata",
"metadata_extraction_job_description": "Estrai informazioni dai metadati di ciascun asset, ad esempio coordinate GPS, volti e risoluzione",
"metadata_extraction_job_description": "Estrai informazioni dai metadati di ciascuna risorsa, come coordinate GPS, volti e risoluzione",
"metadata_faces_import_setting": "Abilita l'importazione dei volti",
"metadata_faces_import_setting_description": "Importa i volti dai dati EXIF dell'immagine e dai file sidecar",
"metadata_settings": "Impostazioni Metadati",
"metadata_settings_description": "Gestisci le impostazioni dei metadati",
"migration_job": "Migrazione",
"migration_job_description": "Migra le anteprime per gli asset e volti alla struttura di cartelle pi├╣ recente",
"nightly_tasks_cluster_faces_setting_description": "Avvia riconoscimento facciale sui volti appena rilevati",
"nightly_tasks_cluster_new_faces_setting": "Raggruppa nuovi volti",
"nightly_tasks_database_cleanup_setting": "Processi di pulizia del database",
"nightly_tasks_database_cleanup_setting_description": "Ripulisci il database da file vecchi e scaduti",
"nightly_tasks_generate_memories_setting": "Genera ricordi",
"nightly_tasks_generate_memories_setting_description": "Genera nuovi ricordi a partire dalle risorse",
"nightly_tasks_missing_thumbnails_setting": "Genera anteprime mancanti",
"nightly_tasks_missing_thumbnails_setting_description": "Metti in coda le risorse senza miniatura per la generazione delle anteprime",
"nightly_tasks_settings": "Impostazioni delle attivit├а notturne",
"nightly_tasks_settings_description": "Gestisci attivit├а notturne",
"nightly_tasks_start_time_setting": "Tempo di avvio",
"nightly_tasks_start_time_setting_description": "Il tempo in cui il server fa partire le attivit├а notturne",
"nightly_tasks_sync_quota_usage_setting": "Sincronizza la quota di utilizzo",
"nightly_tasks_sync_quota_usage_setting_description": "Aggiorna la quota di spazio dell'utente in base all'utilizzo corrente",
"no_paths_added": "Nessun percorso aggiunto",
"no_pattern_added": "Nessun pattern aggiunto",
"note_apply_storage_label_previous_assets": "Nota: Per assegnare l'etichetta storage ad asset precedentemente caricati, esegui",
@@ -196,6 +210,8 @@
"oauth_mobile_redirect_uri": "URI reindirizzamento mobile",
"oauth_mobile_redirect_uri_override": "Sovrascrivi URI reindirizzamento cellulare",
"oauth_mobile_redirect_uri_override_description": "Abilita quando il gestore OAuth non consente un URL come ''{callback}''",
"oauth_role_claim": "Claim del ruolo",
"oauth_role_claim_description": "Concedi automaticamente l'accesso come amministratore in base alla presenza di questo claim. Il claim pu├▓ essere 'user' o 'admin'.",
"oauth_settings": "OAuth",
"oauth_settings_description": "Gestisci impostazioni di login OAuth",
"oauth_settings_more_details": "Per pi├╣ dettagli riguardo a questa funzionalit├а, consulta <link>la documentazione</link>.",
@@ -264,8 +280,8 @@
"theme_custom_css_settings_description": "I Cascading Style Sheets (CSS) permettono di personalizzare l'interfaccia di Immich.",
"theme_settings": "Impostazioni Tema",
"theme_settings_description": "Gestisci la personalizzazione dell'interfaccia web di Immich",
"thumbnail_generation_job": "Generazione Miniature",
"thumbnail_generation_job_description": "Genera miniature grandi, piccole e sfocate per ogni asset, oltre a miniature per ogni persona",
"thumbnail_generation_job": "Genera Anteprime",
"thumbnail_generation_job_description": "Genera anteprime grandi, piccole e sfocate per ogni asset, oltre a miniature per ogni persona",
"transcoding_acceleration_api": "API di accelerazione",
"transcoding_acceleration_api_description": "L'API che interagir├а con il tuo dispositivo per accelerare la transcodifica. Questa impostazione ├и \"best effort\": ripiegher├а sulla transcodifica software in caso di fallimento. VP9 potrebbe funzionare o meno a seconda del tuo hardware.",
"transcoding_acceleration_nvenc": "NVENC (richiede GPU NVIDIA)",
@@ -357,25 +373,27 @@
"admin_password": "Password Amministratore",
"administration": "Amministrazione",
"advanced": "Avanzate",
"advanced_settings_beta_timeline_subtitle": "Prova la nuova esperienza dell'app",
"advanced_settings_beta_timeline_title": "Timeline beta",
"advanced_settings_enable_alternate_media_filter_subtitle": "Usa questa opzione per filtrare i contenuti multimediali durante la sincronizzazione in base a criteri alternativi. Prova questa opzione solo se riscontri problemi con il rilevamento di tutti gli album da parte dell'app.",
"advanced_settings_enable_alternate_media_filter_title": "[SPERIMENTALE] Usa un filtro alternativo per la sincronizzazione degli album del dispositivo",
"advanced_settings_log_level_title": "Livello log: {level}",
"advanced_settings_prefer_remote_subtitle": "Alcuni dispositivi sono molto lenti a caricare le anteprime delle immagini dal dispositivo. Attivare questa impostazione per caricare invece le immagini remote.",
"advanced_settings_prefer_remote_subtitle": "Alcuni dispositivi sono molto lenti a caricare le anteprime delle immagini locali. Attivare questa impostazione per caricare invece le immagini remote.",
"advanced_settings_prefer_remote_title": "Preferisci immagini remote",
"advanced_settings_proxy_headers_subtitle": "Definisci gli header per i proxy che Immich dovrebbe inviare con ogni richiesta di rete",
"advanced_settings_proxy_headers_title": "Header Proxy",
"advanced_settings_self_signed_ssl_subtitle": "Salta la verifica dei certificati SSL del server. Richiesto con l'uso di certificati self-signed.",
"advanced_settings_self_signed_ssl_title": "Consenti certificati SSL self-signed",
"advanced_settings_sync_remote_deletions_subtitle": "Rimuovi o ripristina automaticamente un elemento su questo dispositivo se l'azione ├и stata fatta via web",
"advanced_settings_sync_remote_deletions_subtitle": "Rimuovi o ripristina automaticamente un elemento su questo dispositivo quando l'azione ├и stata fatta via web",
"advanced_settings_sync_remote_deletions_title": "Sincronizza le cancellazioni remote [SPERIMENTALE]",
"advanced_settings_tile_subtitle": "Impostazioni aggiuntive utenti",
"advanced_settings_tile_subtitle": "Impostazioni avanzate dell'utente",
"advanced_settings_troubleshooting_subtitle": "Attiva funzioni addizionali per la risoluzione dei problemi",
"advanced_settings_troubleshooting_title": "Risoluzione problemi",
"age_months": "Et├а {months, plural, one {# mese} other {# mesi}}",
"age_year_months": "Et├а 1 anno, {months, plural, one {# mese} other {# mesi}}",
"age_years": "{years, plural, one {# anno} other {# anni}}",
"album_added": "Album aggiunto",
"album_added_notification_setting_description": "Ricevi una notifica email quando sei aggiunto a un album condiviso",
"album_added_notification_setting_description": "Ricevi una notifica email quando sei aggiunto ad un album condiviso",
"album_cover_updated": "Copertina dell'album aggiornata",
"album_delete_confirmation": "Sei sicuro di voler cancellare l'album {album}?",
"album_delete_confirmation_description": "Se l'album ├и condiviso gli altri utenti perderanno l'accesso.",
@@ -394,32 +412,32 @@
"album_user_left": "{album} abbandonato",
"album_user_removed": "Utente {user} rimosso",
"album_viewer_appbar_delete_confirm": "Sei sicuro di voler rimuovere questo album dal tuo account?",
"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_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_delete": "Non ├и stato possibile eliminare l'album",
"album_viewer_appbar_share_err_leave": "Non ├и stato possibile lasciare l'album",
"album_viewer_appbar_share_err_remove": "Ci sono problemi nel rimuovere elementi dall'album",
"album_viewer_appbar_share_err_title": "Non ├и stato possibile cambiare il titolo dell'album",
"album_viewer_appbar_share_leave": "Lascia album",
"album_viewer_appbar_share_to": "Condividi a",
"album_viewer_page_share_add_users": "Aggiungi utenti",
"album_with_link_access": "Permetti a chiunque possieda il link di visualizzare le foto e le persone dell'album.",
"albums": "Album",
"albums_count": "{count, plural, one {{count, number} Album} other {{count, number} Album}}",
"albums_default_sort_order": "Ordinamento album predefinito",
"albums_default_sort_order_description": "Ordine iniziale degli asset alla creazione di nuovi album.",
"albums_feature_description": "Collezione di asset che possono essere condivisi con altri utenti.",
"albums_default_sort_order": "Ordinamento predefinito degli album",
"albums_default_sort_order_description": "Ordine iniziale degli elementi alla creazione di nuovi album.",
"albums_feature_description": "Raggruppamento di elementi che possono essere condivisi con altri utenti.",
"all": "Tutti",
"all_albums": "Tutti gli album",
"all_people": "Tutte le persone",
"all_videos": "Tutti i video",
"allow_dark_mode": "Permetti Tema Scuro",
"allow_edits": "Permetti Modifiche",
"allow_edits": "Permetti modifiche",
"allow_public_user_to_download": "Permetti agli utenti pubblici di scaricare",
"allow_public_user_to_upload": "Permetti agli utenti pubblici di caricare",
"alt_text_qr_code": "Immagine QR",
"anti_clockwise": "Senso anti-orario",
"api_key": "Chiave API",
"api_key_description": "Il valore verr├а mostrato solo una volta. Assicurati di copiarlo prima di chiudere la finestra.",
"api_key_empty": "Il nome della chiave API non pu├▓ essere vuoto",
"api_key_description": "Questo valore verr├а mostrato una sola volta. Assicurati di copiarlo prima di chiudere la finestra.",
"api_key_empty": "Il nome della chiave API non dovrebbe essere vuoto",
"api_keys": "Chiavi API",
"app_bar_signout_dialog_content": "Sei sicuro di volerti disconnettere?",
"app_bar_signout_dialog_ok": "Si",
@@ -427,8 +445,9 @@
"app_settings": "Impostazioni Applicazione",
"appears_in": "Compare in",
"archive": "Archivio",
"archive_action_prompt": "Aggiunti {count} elementi all'Archivio",
"archive_or_unarchive_photo": "Archivia o ripristina foto",
"archive_page_no_archived_assets": "Nessuna oggetto archiviato",
"archive_page_no_archived_assets": "Non ├и stato trovato nessun elemento archiviato",
"archive_page_title": "Archivio ({count})",
"archive_size": "Dimensioni Archivio",
"archive_size_description": "Imposta le dimensioni dell'archivio per i download (in GiB)",
@@ -440,42 +459,41 @@
"asset_action_share_err_offline": "Non ├и possibile recuperare le risorse offline, azione ignorata",
"asset_added_to_album": "Aggiunto all'album",
"asset_adding_to_album": "Aggiungendo all'albumтАж",
"asset_description_updated": "La descrizione del media ├и stata aggiornata",
"asset_description_updated": "La descrizione dell'elemento ├и stata aggiornata",
"asset_filename_is_offline": "Il media {filename} ├и offline",
"asset_has_unassigned_faces": "Il media ha dei volti non categorizzati",
"asset_hashing": "Hashing in corso тАж",
"asset_list_group_by_sub_title": "Raggruppa per",
"asset_list_layout_settings_dynamic_layout_title": "Layout dinamico",
"asset_list_layout_settings_group_automatically": "Automatico",
"asset_list_layout_settings_group_by": "Raggruppa le risorse per",
"asset_list_layout_settings_group_by": "Raggruppa gli elementi per",
"asset_list_layout_settings_group_by_month_day": "Mese + giorno",
"asset_list_layout_sub_title": "Layout",
"asset_list_settings_subtitle": "Impostazion del layout della griglia delle foto",
"asset_list_settings_subtitle": "Impostazioni del layout della griglia delle foto",
"asset_list_settings_title": "Griglia foto",
"asset_offline": "Risorsa Offline",
"asset_offline_description": "Questo media non ├и stato trovato nel disco. Contatta il tuo amministratore di Immich per assistenza.",
"asset_restored_successfully": "Asset ripristinato con successo",
"asset_offline": "Elemento Offline",
"asset_offline_description": "Questo elemento esterno non viene pi├╣ trovato sul disco. Contatta il tuo amministratore di Immich per assistenza.",
"asset_restored_successfully": "Elemento ripristinato con successo",
"asset_skipped": "Saltato",
"asset_skipped_in_trash": "Nel cestino",
"asset_uploaded": "Caricato",
"asset_uploading": "CaricamentoтАж",
"asset_viewer_settings_subtitle": "Gestisci le impostazioni del visualizzatore risorse",
"asset_viewer_settings_subtitle": "Gestisci le impostazioni del visualizzatore della galleria",
"asset_viewer_settings_title": "Visualizzazione risorse",
"assets": "Risorse",
"assets_added_count": "{count, plural, one {# asset aggiunto} other {# asset aggiunti}}",
"assets_added_to_album_count": "{count, plural, one {# asset aggiunto} other {# asset aggiunti}} all'album",
"assets_added_to_name_count": "Aggiunti {count, plural, one {# asset} other {# assets}} a {hasName, select, true {<b>{name}</b>} other {new album}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {L'asset} other {Gli asset}} non possono essere aggiunti all'album",
"assets_count": "{count, plural, other {# asset}}",
"assets_cannot_be_added_to_album_count": "{count, plural, one {L'elemento} other {Gli elementi}} non possono essere aggiunti all'album",
"assets_count": "{count, plural, one {# elemento} other {# elementi}}",
"assets_deleted_permanently": "{count} elementi cancellati definitivamente",
"assets_deleted_permanently_from_server": "{count} elementi cancellati definitivamente dal server Immich",
"assets_downloaded_failed": "{count, plural, one {Scaricato # file - {error} file non riusciti} other {Scaricati # file - {error} file non riusciti}}",
"assets_downloaded_failed": "{count, plural, one {Scaricato # file - {error} file non riuscito} other {Scaricati # file - {error} file non riusciti}}",
"assets_downloaded_successfully": "{count, plural, one {Scaricato # file con successo} other {Scaricati # file con successo}}",
"assets_moved_to_trash_count": "{count, plural, one {# asset spostato} other {# asset spostati}} nel cestino",
"assets_moved_to_trash_count": "{count, plural, one {# elemento spostato} other {# elementi spostati}} nel cestino",
"assets_permanently_deleted_count": "{count, plural, one {# asset cancellato} other {# asset cancellati}} definitivamente",
"assets_removed_count": "{count, plural, one {# asset rimosso} other {# asset rimossi}}",
"assets_removed_permanently_from_device": "{count} elementi cancellati definitivamente dal tuo dispositivo",
"assets_restore_confirmation": "Sei sicuro di voler ripristinare tutti gli asset cancellati? Non puoi annullare questa azione! Tieni presente che eventuali risorse offline NON possono essere ripristinate in questo modo.",
"assets_restore_confirmation": "Sei sicuro di voler ripristinare tutti gli elementi cancellati? Non puoi annullare questa azione! Tieni presente che eventuali risorse offline NON possono essere ripristinate in questo modo.",
"assets_restored_count": "{count, plural, one {# asset ripristinato} other {# asset ripristinati}}",
"assets_restored_successfully": "{count} elementi ripristinati",
"assets_trashed": "{count} elementi cestinati",
@@ -497,7 +515,7 @@
"backup_album_selection_page_selection_info": "Informazioni sulla selezione",
"backup_album_selection_page_total_assets": "Numero totale delle risorse",
"backup_all": "Tutti",
"backup_background_service_backup_failed_message": "Impossibile caricare i contenuti. RiprovoтАж",
"backup_background_service_backup_failed_message": "├И stato impossibile fare il backup dei contenuti. RiprovoтАж",
"backup_background_service_connection_failed_message": "Impossibile connettersi al server. RiprovoтАж",
"backup_background_service_current_upload_notification": "Caricamento di {filename} in corso",
"backup_background_service_default_notification": "Ricerca di nuovi contenutiтАж",
@@ -506,7 +524,7 @@
"backup_background_service_upload_failure_notification": "Impossibile caricare {filename}",
"backup_controller_page_albums": "Backup Album",
"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": "Aggiornamento dell'app in background disattivo",
"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_message": "Per una migliore esperienza di backup, disabilita le ottimizzazioni della batteria per l'app Immich.\n\nDal momento che ├и una funzionalit├а specifica del dispositivo, per favore consulta il manuale del produttore.",
@@ -515,12 +533,12 @@
"backup_controller_page_background_charging": "Solo durante la ricarica",
"backup_controller_page_background_configure_error": "Impossibile configurare i servizi in background",
"backup_controller_page_background_delay": "Ritarda il backup di nuovi elementi: {duration}",
"backup_controller_page_background_description": "Abilita i servizi in background per fare il backup di tutti i nuovi contenuti senza la necessit├а di aprire l'app",
"backup_controller_page_background_is_off": "Backup automatico disattivato",
"backup_controller_page_background_is_on": "Backup automatico attivo",
"backup_controller_page_background_description": "Abilita i servizi in background per fare il backup di nuovi contenuti senza la necessit├а di aprire l'app",
"backup_controller_page_background_is_off": "Backup automatico in background disattivato",
"backup_controller_page_background_is_on": "Backup automatico in background attivo",
"backup_controller_page_background_turn_off": "Disabilita servizi in background",
"backup_controller_page_background_turn_on": "Abilita servizi in background",
"backup_controller_page_background_wifi": "Solo Wi-Fi",
"backup_controller_page_background_wifi": "Solo con Wi-Fi",
"backup_controller_page_backup": "Backup",
"backup_controller_page_backup_selected": "Selezionati: ",
"backup_controller_page_backup_sub": "Foto e video caricati",
@@ -703,7 +721,7 @@
"daily_title_text_date": "E, dd MMM",
"daily_title_text_date_year": "E, dd MMM, yyyy",
"dark": "Scuro",
"darkTheme": "Attiva/Disattiva tema scuro",
"dark_theme": "Imposta tema scuro",
"date_after": "Data dopo",
"date_and_time": "Data e ora",
"date_before": "Data prima",
@@ -719,6 +737,7 @@
"default_locale": "Localizzazione preimpostata",
"default_locale_description": "Formatta la data e i numeri in base alle impostazioni del tuo browser",
"delete": "Elimina",
"delete_action_prompt": "{count} elementi eliminati definitivamente",
"delete_album": "Elimina album",
"delete_api_key_prompt": "Sei sicuro di voler eliminare questa chiave API?",
"delete_dialog_alert": "Questi oggetti saranno eliminati definitivamente da Immich e dal tuo device",
@@ -799,6 +818,7 @@
"edit_key": "Modifica chiave",
"edit_link": "Modifica link",
"edit_location": "Modifica posizione",
"edit_location_action_prompt": "{count} luoghi modificati",
"edit_location_dialog_title": "Posizione",
"edit_name": "Modifica nome",
"edit_people": "Modifica persone",
@@ -984,6 +1004,7 @@
"failed_to_load_assets": "Impossibile caricare gli asset",
"failed_to_load_folder": "Impossibile caricare la cartella",
"favorite": "Preferito",
"favorite_action_prompt": "{count} elementi aggiunti ai preferiti",
"favorite_or_unfavorite_photo": "Aggiungi o rimuovi foto da preferiti",
"favorites": "Preferiti",
"favorites_page_no_favorites": "Nessun preferito",
@@ -1127,6 +1148,7 @@
"library_page_sort_created": "Data di creazione",
"library_page_sort_last_modified": "Ultima modifica",
"library_page_sort_title": "Titolo album",
"licenses": "Licenze",
"light": "Chiaro",
"like_deleted": "Mi piace rimosso",
"link_motion_video": "Collega video in movimento",
@@ -1246,6 +1268,7 @@
"more": "Di pi├╣",
"move": "Sposta",
"move_off_locked_folder": "Sposta al di fuori della cartella privata",
"move_to_lock_folder_action_prompt": "{count} elementi aggiunti alla cartella sicura",
"move_to_locked_folder": "Sposta nella cartella privata",
"move_to_locked_folder_confirmation": "Queste foto e video verranno rimossi da tutti gli album, e saranno visibili solo dalla cartella privata",
"moved_to_archive": "Spostati {count, plural, one {# asset} other {# assets}} nell'archivio",
@@ -1479,13 +1502,13 @@
"recently_taken_page_title": "Scattate di Recente",
"refresh": "Aggiorna",
"refresh_encoded_videos": "Ricarica video codificati",
"refresh_faces": "Aggiorna facce",
"refresh_faces": "Aggiorna volti",
"refresh_metadata": "Ricarica metadati",
"refresh_thumbnails": "Ricarica anteprime",
"refreshed": "Aggiornato",
"refreshes_every_file": "Rilegge tutti i file esistenti e nuovi",
"refreshing_encoded_video": "Ricaricando il video codificato",
"refreshing_faces": "Aggiorna Facce",
"refreshing_faces": "Aggiornando volti",
"refreshing_metadata": "Ricaricando i metadati",
"regenerating_thumbnails": "Rigenerando le anteprime",
"remove": "Rimuovi",
@@ -1496,6 +1519,7 @@
"remove_deleted_assets": "Rimuovi file offline",
"remove_from_album": "Rimuovere dall'album",
"remove_from_favorites": "Rimuovi dai preferiti",
"remove_from_lock_folder_action_prompt": "{count} elementi rimossi dalla cartella sicura",
"remove_from_locked_folder": "Rimuovi dalla cartella privata",
"remove_from_locked_folder_confirmation": "Sei sicuro di voler spostare queste foto e questi video dalla cartella privata? Diventeranno visibili nella vostra libreria.",
"remove_from_shared_link": "Rimuovi dal link condiviso",
@@ -1838,6 +1862,7 @@
"total": "Totale",
"total_usage": "Utilizzo totale",
"trash": "Cestino",
"trash_action_prompt": "{count} elementi spostati nel cestino",
"trash_all": "Cestina Tutto",
"trash_count": "Cancella {count, number}",
"trash_delete_asset": "Cestina/Cancella Asset",
+9 -3
View File
@@ -427,6 +427,7 @@
"app_settings": "уВвуГЧуГкшинхоЪ",
"appears_in": "уБУуВМуВЙуБлхРлуБ╛уВМуБ╛уБЩ",
"archive": "уВвуГ╝уВлуВдуГЦ",
"archive_action_prompt": "уВвуГ╝уВлуВдуГЦуБл{count}щаЕчЫош┐╜хКауБЧуБ╛уБЧуБЯ",
"archive_or_unarchive_photo": "хЖЩчЬЯуВТуВвуГ╝уВлуВдуГЦуБ╛уБЯуБпуВвуГ╝уВлуВдуГЦшзгщЩд",
"archive_page_no_archived_assets": "уВвуГ╝уВлуВдуГЦуБЧуБЯхЖЩчЬЯуБ╛уБЯуБпуГУуГЗуВкуБМуБВуВКуБ╛уБЫуВУ",
"archive_page_title": "уВвуГ╝уВлуВдуГЦ ({count})",
@@ -464,7 +465,6 @@
"assets": "уВвуВ╗уГГуГИ",
"assets_added_count": "{count, plural, one {#хАЛ} other {#хАЛ}}уБоуВвуВ╗уГГуГИуВТш┐╜хКауБЧуБ╛уБЧуБЯ",
"assets_added_to_album_count": "{count, plural, one {#хАЛ} other {#хАЛ}}уБоуВвуВ╗уГГуГИуВТуВвуГлуГРуГауБлш┐╜хКауБЧуБ╛уБЧуБЯ",
"assets_added_to_name_count": "{count, plural, one {#хАЛ} other {#хАЛ}}уБоуВвуВ╗уГГуГИуВТ{hasName, select, true {<b>{name}</b>} other {цЦ░уБЧуБДуВвуГлуГРуГа}}уБлш┐╜хКауБЧуБ╛уБЧуБЯ",
"assets_cannot_be_added_to_album_count": "{count, plural, one {уВвуВ╗уГГуГИ} other {уВвуВ╗уГГуГИ}} уБпуВвуГлуГРуГауБлш┐╜хКауБзуБНуБ╛уБЫуВУ",
"assets_count": "{count, plural, one {#хАЛ} other {#хАЛ}}уБоуВвуВ╗уГГуГИ",
"assets_deleted_permanently": "{count}щаЕчЫоуВТхоМхЕиуБлхЙКщЩдуБЧуБ╛уБЧуБЯ",
@@ -492,7 +492,7 @@
"background_location_permission_content": "цнгх╕╕уБлWi-FiуБохРНхЙН(SSID)уВТчН▓х╛ЧуБЩуВЛуБлуБпуВвуГЧуГкуБМх╕╕уБлшй│ч┤░уБкф╜Нч╜оцГЕха▒уБлуВвуВпуВ╗уВ╣уБзуБНуВЛх┐ЕшжБуБМуБВуВКуБ╛уБЩ",
"backup_album_selection_page_albums_device": "уГЗуГРуВдуВ╣ф╕КуБоуВвуГлуГРуГа({count})",
"backup_album_selection_page_albums_tap": "уВ┐уГГуГЧуБзщБ╕цКЮуАБуГАуГЦуГлуВ┐уГГуГЧуБзщЩдхдЦ",
"backup_album_selection_page_assets_scatter": "уВвуГлуГРуГауВТщБ╕цКЮуГ╗щЩдхдЦуБЧуБжуГРуГГуВпуВвуГГуГЧуБЩуВЛхЖЩчЬЯуВТщБ╕уБ╢ (хРМуБШхЖЩчЬЯуБМшдЗцХ░уБоуВвуГлуГРуГауБлчЩ╗щМ▓уБХуВМуБжуБДуВЛуБУуБиуБМуБВуВЛуБЯуВБ)",
"backup_album_selection_page_assets_scatter": "уВвуГлуГРуГауВТщБ╕цКЮуГ╗щЩдхдЦуБЧуБжуГРуГГуВпуВвуГГуГЧуБЩуВЛхЖЩчЬЯуВТщБ╕уБ╢уАВ (хРМуБШхЖЩчЬЯуБМшдЗцХ░уБоуВвуГлуГРуГауБлчЩ╗щМ▓уБХуВМуБжуБДуВЛуБУуБиуБМуБВуВЛуБЯуВБ)",
"backup_album_selection_page_select_albums": "уВвуГлуГРуГауВТщБ╕цКЮ",
"backup_album_selection_page_selection_info": "щБ╕цКЮуГ╗щЩдхдЦф╕нуБоуВвуГлуГРуГа",
"backup_album_selection_page_total_assets": "щБ╕цКЮуБХуВМуБЯуВвуГлуГРуГауБохЖЩчЬЯуБихЛХчФ╗уБоцХ░",
@@ -703,7 +703,7 @@
"daily_title_text_date": "MM DD, EE",
"daily_title_text_date_year": "yyyy MM DD, EE",
"dark": "уГАуГ╝уВпуГвуГ╝уГЙ",
"darkTheme": "уГАуГ╝уВпуГвуГ╝уГЙуВТхИЗуВКцЫ┐уБИ",
"dark_theme": "уГАуГ╝уВпуГвуГ╝уГЙхИЗуВКцЫ┐уБИ",
"date_after": "уБУуБоцЧеф╗ещЩН",
"date_and_time": "цЧеф╗ШуБицЩВщЦУ",
"date_before": "уБУуБоцЧеф╗ехЙН",
@@ -719,6 +719,7 @@
"default_locale": "уГЗуГХуВйуГлуГИуБоуГнуВ▒уГ╝уГл",
"default_locale_description": "уГЦуГйуВжуВ╢уБоуГнуВ▒уГ╝уГлуБлхЯ║уБеуБДуБжцЧеф╗ШуБицХ░хАдуВТуГХуВйуГ╝уГЮуГГуГИуБЧуБ╛уБЩ",
"delete": "хЙКщЩд",
"delete_action_prompt": "{count}щаЕчЫоуВТхоМхЕиуБлхЙКщЩдуБЧуБ╛уБЧуБЯ",
"delete_album": "уВвуГлуГРуГауВТхЙКщЩд",
"delete_api_key_prompt": "цЬмх╜УуБлуБУуБоAPI уВнуГ╝уВТхЙКщЩдуБЧуБ╛уБЩуБЛ?",
"delete_dialog_alert": "уВ╡уГ╝уГРуГ╝уБиуГЗуГРуВдуВ╣уБоф╕бцЦ╣уБЛуВЙхоМхЕиуБлхЙКщЩдуБХуВМуБ╛уБЩ",
@@ -799,6 +800,7 @@
"edit_key": "уВнуГ╝уВТч╖ищЫЖ",
"edit_link": "уГкуГ│уВпуВТч╖ищЫЖуБЩуВЛ",
"edit_location": "ф╜Нч╜оцГЕха▒уВТч╖ищЫЖ",
"edit_location_action_prompt": "{count}щаЕчЫоуБоф╜Нч╜оцГЕха▒уВТхдЙцЫ┤уБЧуБ╛уБЧуБЯ",
"edit_location_dialog_title": "ф╜Нч╜оцГЕха▒",
"edit_name": "хРНхЙНуВТхдЙцЫ┤",
"edit_people": "ф║║чЙйуВТч╖ищЫЖ",
@@ -984,6 +986,7 @@
"failed_to_load_assets": "уВвуВ╗уГГуГИуБоуГнуГ╝уГЙуБлхд▒цХЧуБЧуБ╛уБЧуБЯ",
"failed_to_load_folder": "уГХуВйуГлуГАуГ╝уБошкнуБ┐ш╛╝уБ┐уБлхд▒цХЧ",
"favorite": "уБКц░ЧуБлхЕеуВК",
"favorite_action_prompt": "{count}щаЕчЫоуВТуБКц░ЧуБлхЕеуВКуБлш┐╜хКауБЧуБ╛уБЧуБЯ",
"favorite_or_unfavorite_photo": "хЖЩчЬЯуВТуБКц░ЧуБлуБДуВКуБлчЩ╗щМ▓уБ╛уБЯуБпшзгщЩд",
"favorites": "уБКц░ЧуБлхЕеуВК",
"favorites_page_no_favorites": "уБКц░ЧуБлхЕеуВКчЩ╗щМ▓уБХуВМуБЯщаЕчЫоуБМуБВуВКуБ╛уБЫуВУ",
@@ -1246,6 +1249,7 @@
"more": "уВВуБгуБишбичд║",
"move": "чз╗хЛХ",
"move_off_locked_folder": "щН╡ф╗ШуБНуГХуВйуГлуГАуГ╝уБЛуВЙхЗ║уБЩ",
"move_to_lock_folder_action_prompt": "{count}щаЕчЫоуВТщН╡ф╗ШуБНуГХуВйуГлуГАуГ╝уБлш┐╜хКауБЧуБ╛уБЧуБЯ",
"move_to_locked_folder": "щН╡ф╗ШуБНуГХуВйуГлуГАуГ╝уБ╕чз╗хЛХ",
"move_to_locked_folder_confirmation": "уБУуВМуВЙуБохЖЩчЬЯуВДхЛХчФ╗уБпуБЩуБ╣уБжуБоуВвуГлуГРуГауБЛуВЙхдЦуБХуВМуАБщН╡ф╗ШуБНуГХуВйуГлуГАуГ╝хЖЕуБзуБоуБ┐щЦ▓шжзхПпшГ╜уБлуБкуВКуБ╛уБЩ",
"moved_to_archive": "{count, plural, one {#} other {#}}щаЕчЫоуВТуВвуГ╝уВлуВдуГЦуБЧуБ╛уБЧуБЯ",
@@ -1496,6 +1500,7 @@
"remove_deleted_assets": "уВкуГХуГйуВдуГ│уБоуВвуВ╗уГГуГИуВТхЙКщЩд",
"remove_from_album": "уВвуГлуГРуГауБЛуВЙхЙКщЩд",
"remove_from_favorites": "уБКц░ЧуБлхЕеуВКшзгщЩд",
"remove_from_lock_folder_action_prompt": "{count}щаЕчЫоуВТщН╡ф╗ШуБНуГХуВйуГлуГАуГ╝уБЛуВЙхЗ║уБЧуБ╛уБЧуБЯ",
"remove_from_locked_folder": "щН╡ф╗ШуБНуГХуВйуГлуГАуГ╝уБЛуВЙхПЦуВКщЩдуБП",
"remove_from_locked_folder_confirmation": "щБ╕цКЮуБЧуБЯхЖЩчЬЯуГ╗хЛХчФ╗уВТщН╡ф╗ШуБНуГХуВйуГлуГАуГ╝уБохдЦуБлхЗ║уБЧуБжуВИуВНуБЧуБДуБзуБЩуБЛя╝ЯуГйуВдуГЦуГйуГкуБлхЖНуБ│шбичд║уБХуВМуВЛуВИуБЖуБлуБкуВКуБ╛уБЩ",
"remove_from_shared_link": "хЕ▒цЬЙуГкуГ│уВпуБЛуВЙхЙКщЩд",
@@ -1838,6 +1843,7 @@
"total": "хРИшиИ",
"total_usage": "ч╖Пф╜┐чФищЗП",
"trash": "уВ┤уГЯчо▒",
"trash_action_prompt": "{count}щаЕчЫоуВТуВ┤уГЯчо▒уБлчз╗хЛХуБЧуБ╛уБЧуБЯ",
"trash_all": "хЕиуБжхЙКщЩд",
"trash_count": "{count, number}цЮЪуВ┤уГЯчо▒уБ╕чз╗хЛХ",
"trash_delete_asset": "уВвуВ╗уГГуГИуВТуВ┤уГЯчо▒уБ╕чз╗хЛХ/хЙКщЩд",
+33 -6
View File
@@ -22,6 +22,7 @@
"add_partner": "эММэК╕ыДИ ь╢Фъ░А",
"add_path": "ъ▓╜ыбЬ ь╢Фъ░А",
"add_photos": "ьВмьзД ь╢Фъ░А",
"add_tag": "эГЬъ╖╕ ь╢Фъ░АэХШъ╕░",
"add_to": "ьХиы▓ФьЧР ь╢Фъ░АтАж",
"add_to_album": "ьХиы▓ФьЧР ь╢Фъ░А",
"add_to_album_bottom_sheet_added": "{album}ьЧР ь╢Фъ░АыРШьЧИьК╡ыЛИыЛд.",
@@ -33,6 +34,7 @@
"added_to_favorites_count": "ьжРъ▓иь░╛ъ╕░ьЧР {count, number}ъ░Ь ь╢Фъ░АыРи",
"admin": {
"add_exclusion_pattern_description": "ъ╖Ьь╣ЩьЧР *, ** ы░П ? ые╝ ьВмьЪйэХа ьИШ ьЮИьК╡ыЛИыЛд. ьЭ┤ыжДьЭ┤ \"Raw\"ьЭ╕ ыФФыаЙэД░ыжмьЭШ ыкиыУа эММьЭ╝ьЭД ьаЬьЩ╕эХШыадый┤ \"**/Raw/**\"ые╝, \".tif\"ыбЬ ыБЭыВШыКФ ыкиыУа эММьЭ╝ьЭД ьаЬьЩ╕эХШыадый┤ \"**/*.tif\"ые╝ ьВмьЪйэХШъ│а, ьаИыМА ъ▓╜ыбЬьЭШ ъ▓╜ьЪ░ \"/path/to/ignore/**\"ьЩА ъ░ЩьЭА ы░йьЛЭьЬ╝ыбЬ ьВмьЪйэХйыЛИыЛд.",
"admin_user": "ъ┤АыжмьЮР",
"asset_offline_description": "ьЩ╕ы╢А ыЭ╝ьЭ┤ы╕МыЯмыжмьЧР эПмэХиыРЬ ьЭ┤ эХныкйьЭД ыФФьКдэБмьЧРьДЬ ыНФьЭ┤ьГБ ь░╛ьЭД ьИШ ьЧЖьЦ┤ эЬ┤ьзАэЖ╡ьЬ╝ыбЬ ьЭ┤ыПЩыРШьЧИьК╡ыЛИыЛд. эММьЭ╝ьЭ┤ ыЭ╝ьЭ┤ы╕МыЯмыжм ыВ┤ьЧРьДЬ ьЭ┤ыПЩыРЬ ъ▓╜ьЪ░ эГАьЮДыЭ╝ьЭ╕ьЧРьДЬ ьГИыбЬ ьЧ░ъ▓░ыРЬ эХныкйьЭД эЩХьЭ╕эХШьД╕ьЪФ. эХныкйьЭД ы│╡ьЫРэХШыадый┤ ьХДыЮШьЭШ эММьЭ╝ ъ▓╜ыбЬьЧР Immichъ░А ьаСъ╖╝эХа ьИШ ьЮИыКФьзА эЩХьЭ╕эХШъ│а ыЭ╝ьЭ┤ы╕МыЯмыжм ьКдь║ФьЭД ьзДэЦЙэХШьД╕ьЪФ.",
"authentication_settings": "ьЭ╕ьжЭ ьДдьаХ",
"authentication_settings_description": "ы╣Ды░Аы▓ИэШ╕, OAuth ы░П ъ╕░эГА ьЭ╕ьжЭ ьДдьаХ ъ┤Аыжм",
@@ -43,7 +45,7 @@
"backup_database_enable_description": "ыН░ьЭ┤эД░ы▓аьЭ┤ьКд ыНдэФД эЩЬьД▒эЩФ",
"backup_keep_last_amount": "ы│┤ъ┤АэХа ьЭ┤ьаД ыНдэФДьЭШ ьИШ",
"backup_settings": "ыН░ьЭ┤эД░ы▓аьЭ┤ьКд ыНдэФД ьДдьаХ",
"backup_settings_description": "ыН░ьЭ┤эД░ы▓аьЭ┤ьКд ыНдэФД ьДдьаХьЭД ъ┤АыжмэХйыЛИыЛд. ь░╕ъ│а: ьЭ┤ ьЮСьЧЕьЭА ьзДэЦЙ ы░П ьЛдэМи ьЧмы╢Аые╝ эЩХьЭ╕эХа ьИШ ьЧЖьК╡ыЛИыЛд.",
"backup_settings_description": "ыН░ьЭ┤эД░ы▓аьЭ┤ьКд ыНдэФД ьДдьаХьЭД ъ┤АыжмэХйыЛИыЛд.",
"cleared_jobs": "ьЮСьЧЕ ьдСыЛи: {job}",
"config_set_by_file": "эШДьЮм ъ╡мьД▒ьЭА ьДдьаХ эММьЭ╝ьЭД эЖ╡эХ┤ ьзАьаХыРШьЦ┤ ьЮИьК╡ыЛИыЛд.",
"confirm_delete_library": "{library} ыЭ╝ьЭ┤ы╕МыЯмыжмые╝ ьВньаЬэХШьЛЬъ▓аьК╡ыЛИъ╣М?",
@@ -164,12 +166,26 @@
"metadata_settings_description": "ыйФэГАыН░ьЭ┤эД░ ьДдьаХ ъ┤Аыжм",
"migration_job": "ызИьЭ┤ъ╖╕ыаИьЭ┤ьЕШ",
"migration_job_description": "ъ░Б эХныкйьЭШ ьДмыДдьЭ╝ ы░П ьЭ╕ым╝ьЭШ ьЦ╝ъ╡┤ьЭД ь╡ЬьЛа эП┤ыНФ ъ╡мьб░ыбЬ ызИьЭ┤ъ╖╕ыаИьЭ┤ьЕШ",
"nightly_tasks_cluster_faces_setting_description": "ьГИыбЬ ъ░РьзАыРЬ ьЦ╝ъ╡┤ьЧР ыМАэХШьЧм ьЦ╝ъ╡┤ ьЭ╕ьЛЭьЭД ьЛдэЦЙ",
"nightly_tasks_cluster_new_faces_setting": "ьГИ ьЦ╝ъ╡┤ ым╢ъ╕░",
"nightly_tasks_database_cleanup_setting": "ыН░ьЭ┤эД░ы▓аьЭ┤ьКд ьаХыжм ьЮСьЧЕ",
"nightly_tasks_database_cleanup_setting_description": "ыН░ьЭ┤эД░ы▓аьЭ┤ьКдьЧРьДЬ ьШдыЮШыРШъ▒░ыВШ ызМыгМыРЬ ыН░ьЭ┤эД░ ьаХыжмэХШъ╕░",
"nightly_tasks_generate_memories_setting": "ыйФыкиыжм ьГЭьД▒эХШъ╕░",
"nightly_tasks_generate_memories_setting_description": "эХныкйьЧРьДЬ ьГИыбЬьЪ┤ ыйФыкиыжм ызМыУдъ╕░",
"nightly_tasks_missing_thumbnails_setting": "ыИДыЭ╜ыРЬ ьДмыДдьЭ╝ ьГЭьД▒эХШъ╕░",
"nightly_tasks_missing_thumbnails_setting_description": "ьДмыДдьЭ╝ьЭ┤ ьЧЖыКФ эХныкйьЧР ыМАэХ┤ ьДмыДдьЭ╝ ьГЭьД▒ ыМАъ╕░ьЧ┤ьЧР ь╢Фъ░АэХШъ╕░",
"nightly_tasks_settings": "ьХ╝ъ░Д ьЮСьЧЕ ьДдьаХ",
"nightly_tasks_settings_description": "ьХ╝ъ░Д ьЮСьЧЕ ъ┤Аыжм",
"nightly_tasks_start_time_setting": "ьЛЬьЮС ьЛЬъ░Д",
"nightly_tasks_start_time_setting_description": "ьДЬы▓Дъ░А ьХ╝ъ░Д ьЮСьЧЕьЭД ьЛЬьЮСэХа ьЛЬъ░Д",
"nightly_tasks_sync_quota_usage_setting": "ьВмьЪйыЯЙ ыПЩъ╕░эЩФ",
"nightly_tasks_sync_quota_usage_setting_description": "эШДьЮм ьВмьЪйыЯЙьЧР ыФ░ыЭ╝ ьВмьЪйьЮРьЭШ ьВмьЪйыЯЙ ъ░▒ьЛаэХШъ╕░",
"no_paths_added": "ь╢Фъ░АыРЬ ъ▓╜ыбЬ ьЧЖьЭМ",
"no_pattern_added": "ь╢Фъ░АыРЬ ъ╖Ьь╣Щ ьЧЖьЭМ",
"note_apply_storage_label_previous_assets": "ь░╕ъ│а: ьЭ┤ьаДьЧР ьЧЕыбЬыУЬэХЬ эХныкйьЧРыПД ьКдэЖаыжмьзА ыаИьЭ┤ы╕ФьЭД ьаБьЪйэХШыадый┤ ыЛдьЭМьЭД ьЛдэЦЙэХйыЛИыЛд,",
"note_cannot_be_changed_later": "ьг╝ьЭШ: ь╢ФэЫД ы│Аъ▓╜эХа ьИШ ьЧЖьК╡ыЛИыЛд!",
"notification_email_from_address": "ы│┤ыВ╕ ьВмыЮМ ьЭ┤ыйФьЭ╝",
"notification_email_from_address_description": "ы│┤ыВ╕ ьВмыЮМьЭШ ьЭ┤ыйФьЭ╝ ьг╝ьЖМ, ьШИ: \"Immich Photo Server <noreply@example.com>\"",
"notification_email_from_address_description": "ы│┤ыВ╕ ьВмыЮМьЭШ ьЭ┤ыйФьЭ╝ ьг╝ьЖМ, ьШИ: \"Immich Photo Server <noreply@example.com>\". ьЭ┤ыйФьЭ╝ьЭД ы│┤ыВ╝ ьИШ ьЮИыПДыбЭ эЧИъ░А ы░ЫьЭА ьг╝ьЖМызМьЭД ьВмьЪйэХШьД╕ьЪФ.",
"notification_email_host_description": "ьЭ┤ыйФьЭ╝ ьДЬы▓ДьЭШ эШ╕ьКдэК╕ (ьШИ: smtp.immich.app)",
"notification_email_ignore_certificate_errors": "ьЭ╕ьжЭьДЬ ьШдыеШ ым┤ьЛЬ",
"notification_email_ignore_certificate_errors_description": "TLS ьЭ╕ьжЭьДЬ ьЬаэЪиьД▒ ъ▓АьВм ьШдыеШ ым┤ьЛЬ (ъ╢МьЮеыРШьзА ьХКьЭМ)",
@@ -194,6 +210,7 @@
"oauth_mobile_redirect_uri": "ыкиы░ФьЭ╝ ыжмыЛдьЭ┤ыаЙэК╕ URI",
"oauth_mobile_redirect_uri_override": "ыкиы░ФьЭ╝ ыжмыЛдьЭ┤ыаЙэК╕ URI ьЮмьаХьЭШ",
"oauth_mobile_redirect_uri_override_description": "OAuth ъ│╡ъ╕ЙьЮРъ░А ''{callback}''ъ│╝ ъ░ЩьЭА ыкиы░ФьЭ╝ URIые╝ ьаЬъ│╡эХШьзА ьХКыКФ ъ▓╜ьЪ░ эЩЬьД▒эЩФэХШьД╕ьЪФ.",
"oauth_role_claim": "ьЧнэХа ьИШыа╣",
"oauth_settings": "OAuth",
"oauth_settings_description": "OAuth ыбЬъ╖╕ьЭ╕ ьДдьаХ ъ┤Аыжм",
"oauth_settings_more_details": "ьЭ┤ ъ╕░ыКеьЧР ыМАэХЬ ьЮРьД╕эХЬ ыВ┤ьЪйьЭА <link>ым╕ьДЬ</link>ые╝ ь░╕ьб░эХШьД╕ьЪФ.",
@@ -202,7 +219,7 @@
"oauth_storage_quota_claim": "ьКдэЖаыжмьзА эХаыЛ╣ыЯЙ ьДаэГЭ",
"oauth_storage_quota_claim_description": "ьКдэЖаыжмьзА эХаыЛ╣ыЯЙьЭД ьВмьЪйьЮРъ░А ьЮЕыаеэХЬ ъ░ТьЬ╝ыбЬ ьЮРыПЩ ьДдьаХэХйыЛИыЛд.",
"oauth_storage_quota_default": "ьКдэЖаыжмьзА эХаыЛ╣ыЯЙ ъ╕░ы│╕ъ░Т (GiB)",
"oauth_storage_quota_default_description": "ьЮЕыаеэХШьзА ьХКьЭА ъ▓╜ьЪ░ ьВмьЪйэХа GiB ыЛиьЬДьЭШ ъ╕░ы│╕ эХаыЛ╣ыЯЙ (ым┤ьаЬэХЬ эХаыЛ╣ыЯЙьЭШ ъ▓╜ьЪ░ 0 ьЮЕыае)",
"oauth_storage_quota_default_description": "ьЮЕыаеэХШьзА ьХКьЭА ъ▓╜ьЪ░ ьВмьЪйэХа GiB ыЛиьЬДьЭШ ъ╕░ы│╕ эХаыЛ╣ыЯЙ",
"oauth_timeout": "ьЪФь▓н эГАьЮДьХДьЫГ",
"oauth_timeout_description": "ьЪФь▓н эГАьЮДьХДьЫГ (ы░Аыжмь┤И ыЛиьЬД)",
"password_enable_description": "ьЭ┤ыйФьЭ╝ъ│╝ ы╣Ды░Аы▓ИэШ╕ыбЬ ыбЬъ╖╕ьЭ╕",
@@ -242,6 +259,7 @@
"storage_template_migration_info": "ьКдэЖаыжмьзА эЕЬэФМыж┐ьЭА ыкиыУа эЩХьЮеьЮРые╝ ьЖМым╕ьЮРыбЬ ы│АэЩШэХШый░, ы│Аъ▓╜ ьВмэХньЭА ьГИыбЬ ьЧЕыбЬыУЬэХЬ эХныкйьЧРызМ ьаБьЪйыРйыЛИыЛд. ъ╕░ьб┤ьЧР ьЧЕыбЬыУЬыРЬ эХныкйьЧР ьаБьЪйэХШыадый┤ <link>{job}</link>ьЭД ьЛдэЦЙэХШьД╕ьЪФ.",
"storage_template_migration_job": "ьКдэЖаыжмьзА эЕЬэФМыж┐ ызИьЭ┤ъ╖╕ыаИьЭ┤ьЕШ ьЮСьЧЕ",
"storage_template_more_details": "ьЭ┤ ъ╕░ыКеьЧР ыМАэХЬ ьЮРьД╕эХЬ ыВ┤ьЪйьЭА <template-link>ьКдэЖаыжмьзА эЕЬэФМыж┐</template-link> ы░П <implications-link>ьДдыкЕ</implications-link>ьЭД ь░╕ьб░эХШьД╕ьЪФ.",
"storage_template_onboarding_description_v2": "эЩЬьД▒эЩФ ьЛЬ, ьЭ┤ ъ╕░ыКеьЭА ьВмьЪйьЮР ьзАьаХ эЕЬэФМыж┐ьЧР ыФ░ыЭ╝ эММьЭ╝ьЭД ьЮРыПЩ ы╢ДыеШэХйыЛИыЛд. ьЮРьД╕эХЬ ьаХы│┤ыКФ <link>ьЭ┤ ым╕ьДЬ</link>ые╝ эЩХьЭ╕эХШьД╕ьЪФ.",
"storage_template_path_length": "ыМАыЮ╡ьаБьЭ╕ ъ▓╜ыбЬ ъ╕╕ьЭ┤ ьаЬэХЬ: <b>{length, number}</b>/{limit, number}",
"storage_template_settings": "ьКдэЖаыжмьзА эЕЬэФМыж┐",
"storage_template_settings_description": "ьЧЕыбЬыУЬыРЬ эХныкйьЭШ эП┤ыНФ ъ╡мьб░ ы░П эММьЭ╝ ьЭ┤ыжД ъ┤Аыжм",
@@ -288,7 +306,7 @@
"transcoding_encoding_options": "ьЭ╕ь╜ФыФй ьШ╡ьЕШ",
"transcoding_encoding_options_description": "ьЭ╕ь╜ФыФйыРЬ ыПЩьШБьГБьЭШ ь╜ФыН▒, эХ┤ьГБыПД, эТИьзИ ы░П ъ╕░эГА ьШ╡ьЕШ ьДдьаХ",
"transcoding_hardware_acceleration": "эХШыУЬьЫиьЦ┤ ъ░АьЖН",
"transcoding_hardware_acceleration_description": "ьЛдэЧШьаБьЭ╕ ъ╕░ыКеьЮЕыЛИыЛд. ьЖНыПДъ░А эЦеьГБыРШьзАызМ ыПЩьЭ╝ ы╣ДэК╕ыаИьЭ┤эК╕ьЧРьДЬ эТИьзИьЭ┤ ьГБыМАьаБьЬ╝ыбЬ ыВоьЭД ьИШ ьЮИьК╡ыЛИыЛд.",
"transcoding_hardware_acceleration_description": "ьЛдэЧШьаБьЭ╕ ъ╕░ыКеьЮЕыЛИыЛд. эК╕ыЮЬьКдь╜ФыФйьЭ┤ ы╣иыЭ╝ьзАьзАызМ ыПЩьЭ╝ ы╣ДэК╕ыаИьЭ┤эК╕ьЧРьДЬ эТИьзИьЭ┤ ьГБыМАьаБьЬ╝ыбЬ ыВоьЭД ьИШ ьЮИьК╡ыЛИыЛд.",
"transcoding_hardware_decoding": "эХШыУЬьЫиьЦ┤ ыФФь╜ФыФй",
"transcoding_hardware_decoding_setting_description": "ьЭ╕ь╜ФыФй ъ░АьЖНьЭД ьЬДэХ┤ ьЧФыУЬ эИм ьЧФыУЬ ъ░АьЖНьЭД ьВмьЪйэХйыЛИыЛд. ыкиыУа ыПЩьШБьГБьЧРьДЬ ьЮСыПЩэХШьзА ьХКьЭД ьИШ ьЮИьК╡ыЛИыЛд.",
"transcoding_max_b_frames": "ь╡ЬыМА B эФДыаИьЮД",
@@ -354,10 +372,12 @@
"admin_password": "ъ┤АыжмьЮР ы╣Ды░Аы▓ИэШ╕",
"administration": "ъ┤Аыжм",
"advanced": "ъ│аъ╕Й",
"advanced_settings_beta_timeline_subtitle": "ьГИыбЬьЪ┤ ьХ▒ ъ▓╜эЧШ ьВмьЪйэХШъ╕░",
"advanced_settings_beta_timeline_title": "ы▓аэГА эГАьЮДыЭ╝ьЭ╕",
"advanced_settings_enable_alternate_media_filter_subtitle": "ьЭ┤ ьШ╡ьЕШьЭД ьВмьЪйэХШый┤ ыПЩъ╕░эЩФ ьдС ып╕ыФФьЦ┤ые╝ ыМАь▓┤ ъ╕░ьдАьЬ╝ыбЬ эХДэД░ызБэХа ьИШ ьЮИьК╡ыЛИыЛд. ьХ▒ьЭ┤ ыкиыУа ьХиы▓ФьЭД ьаЬыМАыбЬ ъ░РьзАэХШьзА ык╗эХа ыХМызМ ьВмьЪйэХШьД╕ьЪФ.",
"advanced_settings_enable_alternate_media_filter_title": "ыМАь▓┤ ъ╕░ъ╕░ ьХиы▓Ф ыПЩъ╕░эЩФ эХДэД░ ьВмьЪй (ьЛдэЧШьаБ)",
"advanced_settings_log_level_title": "ыбЬъ╖╕ ыаИы▓и: {level}",
"advanced_settings_prefer_remote_subtitle": "ьЭ╝ы╢А ъ╕░ъ╕░ьЭШ ъ▓╜ьЪ░ ъ╕░ъ╕░ ыВ┤ьЭШ ьДмыДдьЭ╝ьЭД ыбЬыУЬэХШыКФ ьЖНыПДъ░А ыздьЪ░ ыКРыж╜ыЛИыЛд. ьДЬы▓Д ьЭ┤ып╕ьзАые╝ ыМАьЛа ыбЬыУЬэХШыадый┤ ьЭ┤ ьДдьаХьЭД эЩЬьД▒эЩФэХШьД╕ьЪФ.",
"advanced_settings_prefer_remote_subtitle": "ьЭ╝ы╢А ъ╕░ъ╕░ьЭШ ъ▓╜ьЪ░ ыбЬь╗м эХныкйьЧРьДЬ ьДмыДдьЭ╝ьЭД ыбЬыУЬэХШыКФ ьЖНыПДъ░А ыздьЪ░ ыКРыж╜ыЛИыЛд. ьДЬы▓Д ьЭ┤ып╕ьзАые╝ ыМАьЛа ыбЬыУЬэХШыадый┤ ьЭ┤ ьДдьаХьЭД эЩЬьД▒эЩФэХШьД╕ьЪФ.",
"advanced_settings_prefer_remote_title": "ьДЬы▓Д ьЭ┤ып╕ьзА ьДаэШ╕",
"advanced_settings_proxy_headers_subtitle": "ыДдэК╕ьЫМэБм ьЪФь▓ньЭД ы│┤ыВ╝ ыХМ Immichъ░А ьВмьЪйэХа эФДыбЭьЛЬ эЧдыНФые╝ ьаХьЭШэХйыЛИыЛд.",
"advanced_settings_proxy_headers_title": "эФДыбЭьЛЬ эЧдыНФ",
@@ -401,6 +421,9 @@
"album_with_link_access": "ызБэБмъ░А ьЮИыКФ ъ▓╜ьЪ░ ыИДъ╡мыВШ ьЭ┤ ьХиы▓ФьЭШ ьВмьзДъ│╝ ьЭ╕ым╝ьЭД ы│╝ ьИШ ьЮИьК╡ыЛИыЛд.",
"albums": "ьХиы▓Ф",
"albums_count": "ьХиы▓Ф {count, plural, one {{count, number}ъ░Ь} other {{count, number}ъ░Ь}}",
"albums_default_sort_order": "ъ╕░ы│╕ ьХиы▓Ф ьаХыам ьИЬьДЬ",
"albums_default_sort_order_description": "ьГИ ьХиы▓ФьЭД ьГЭьД▒эХа ыХМ ъ╕░ы│╕ьаБьЬ╝ыбЬ эХныкйьЭД ьаХыамэХа ьИЬьДЬ.",
"albums_feature_description": "ыЛдые╕ ьВмьЪйьЮРьЩА ъ│╡ьЬаэХа ьИШ ьЮИыКФ эХныкй ыкиьЭМ.",
"all": "ыкиыСР",
"all_albums": "ыкиыУа ьХиы▓Ф",
"all_people": "ыкиыУа ьЭ╕ым╝",
@@ -421,6 +444,7 @@
"app_settings": "ьХ▒ ьДдьаХ",
"appears_in": "ыЛдьЭМ ьХиы▓ФьЧР эПмэХиыРи",
"archive": "ы│┤ъ┤АэХи",
"archive_action_prompt": "ы│┤ъ┤АэХиьЧР {count}ъ░Ьъ░А ь╢Фъ░АыРШьЧИьК╡ыЛИыЛд.",
"archive_or_unarchive_photo": "ы│┤ъ┤А ь▓Шыжм ыШРыКФ эХ┤ьаЬ",
"archive_page_no_archived_assets": "ы│┤ъ┤АыРЬ эХныкй ьЧЖьЭМ",
"archive_page_title": "ы│┤ъ┤АэХи ({count})",
@@ -458,10 +482,12 @@
"assets": "эХныкй",
"assets_added_count": "{count, plural, one {#ъ░Ь} other {#ъ░Ь}} эХныкй ь╢Фъ░АыРи",
"assets_added_to_album_count": "ьХиы▓ФьЧР эХныкй {count, plural, one {#ъ░Ь} other {#ъ░Ь}} ь╢Фъ░АыРи",
"assets_added_to_name_count": "{hasName, select, true {<b>{name}</b>} other {ьГИ ьХиы▓Ф}}ьЧР эХныкй {count, plural, one {#ъ░Ь} other {#ъ░Ь}} ь╢Фъ░АыРи",
"assets_cannot_be_added_to_album_count": "{count, plural, one {эХныкй} other {эХныкй}]ьЭ┤ ьХиы▓ФьЧР ь╢Фъ░АыРа ьИШ ьЧЖьК╡ыЛИыЛд.",
"assets_count": "{count, plural, one {#ъ░Ь} other {#ъ░Ь}} эХныкй",
"assets_deleted_permanently": "{count}ъ░Ь эХныкйьЭ┤ ьШБъ╡мьаБьЬ╝ыбЬ ьВньаЬыРи",
"assets_deleted_permanently_from_server": "ьДЬы▓ДьЧРьДЬ эХныкй {count}ъ░Ьъ░А ьШБъ╡мьаБьЬ╝ыбЬ ьВньаЬыРи",
"assets_downloaded_failed": "{count, plural, one {эММьЭ╝ #ъ░Ь ыЛдьЪ┤ыбЬыУЬ ьЩДыгМ - {error}ъ░Ь ьЛдэМи} other {эММьЭ╝ #ъ░Ь ыЛдьЪ┤ыбЬыУЬ ьЩДыгМ - {error}ъ░Ь ьЛдэМи}}",
"assets_downloaded_successfully": "{count, plural, one {#ъ░Ь эММьЭ╝ ыЛдьЪ┤ыбЬыУЬ ьЩДыгМ} other {#ъ░Ь эММьЭ╝ ыЛдьЪ┤ыбЬыУЬ ьЩДыгМ}}",
"assets_moved_to_trash_count": "эЬ┤ьзАэЖ╡ьЬ╝ыбЬ эХныкй {count, plural, one {#ъ░Ь} other {#ъ░Ь}} ьЭ┤ыПЩыРи",
"assets_permanently_deleted_count": "эХныкй {count, plural, one {#ъ░Ь} other {#ъ░Ь}}ъ░А ьШБъ╡мьаБьЬ╝ыбЬ ьВньаЬыРи",
"assets_removed_count": "эХныкй {count, plural, one {#ъ░Ь} other {#ъ░Ь}}ые╝ ьаЬъ▒░эЦИьК╡ыЛИыЛд.",
@@ -476,6 +502,7 @@
"authorized_devices": "ьЭ╕ьжЭыРЬ ъ╕░ъ╕░",
"automatic_endpoint_switching_subtitle": "ьзАьаХыРЬ Wi-Fiъ░А ьВмьЪй ъ░АыКеэХЬ ъ▓╜ьЪ░ ыВ┤ы╢АызЭьЭД эЖ╡эХ┤ ьЧ░ъ▓░эХШъ│а, ъ╖╕ыаЗьзА ьХКьЬ╝ый┤ ыЛдые╕ ьЧ░ъ▓░ ы░йьЛЭьЭД ьВмьЪйэХйыЛИыЛд.",
"automatic_endpoint_switching_title": "ьЮРыПЩ URL ьаДэЩШ",
"autoplay_slideshow": "ьКмыЭ╝ьЭ┤ыУЬ ьЗ╝ ьЮРыПЩ ьЮмьГЭ",
"back": "ыТдыбЬ",
"back_close_deselect": "ыТдыбЬ, ыЛлъ╕░, ьДаэГЭ ь╖иьЖМ",
"background_location_permission": "ы░▒ъ╖╕ыЭ╝ьЪ┤ыУЬ ьЬДь╣Ш ъ╢МэХЬ",
+83 -16
View File
@@ -14,6 +14,7 @@
"add_a_location": "Prid─Чti vietov─Щ",
"add_a_name": "Prid─Чti vard─Е",
"add_a_title": "Prid─Чti pavadinim─Е",
"add_endpoint": "Prid─Чti galutin─п ta┼бk─Е",
"add_exclusion_pattern": "Prid─Чti i┼бim─Нi┼│ ┼бablon─Е",
"add_import_path": "Prid─Чti importavimo keli─Е",
"add_location": "Prid─Чti vietov─Щ",
@@ -32,6 +33,8 @@
"added_to_favorites": "Prid─Чta prie m─Чgstamiausi┼│",
"added_to_favorites_count": "{count, plural, one {# prid─Чtas} few {# prid─Чti} other {# prid─Чta}} prie m─Чgstamiausi┼│",
"admin": {
"add_exclusion_pattern_description": "Prid─Чti i┼бim─Нi┼│ taisykl─Щs. Plaikomi simboliai *,**, ir ?. Ignoruoti bet kokius failus bet kuriame aplanke u┼╛vadintame \"Raw\", naudokite \"**/RAW/**\". Ignoravimui fail┼│ su pl─Чtiniu \".tif\", naudokite \"**/*.tiff\". Aplanko kelio nustatymams, naudokite \"/aplanko/kelias/ignoruoti/**\"",
"admin_user": "Administratorius",
"asset_offline_description": "┼аis i┼бorin─Чs bibliotekos elementas nebepasiekiamas diske ir buvo perkeltas ─п ┼бiuk┼бliad─Ч┼╛─Щ. Jei failas buvo perkeltas toje pa─Нioje bibliotekoje, laiko skal─Чje rasite nauj─Е atitinkam─Е element─Е. Jei norite ┼б─п element─Е atkurti, ─пsitikinkite, kad Immich gali pasiekti fail─Е ┼╛emiau nurodytu adresu, ir suvykdykite bibliotekos skenavim─Е.",
"authentication_settings": "Autentifikavimo nustatymai",
"authentication_settings_description": "Tvarkyti slapta┼╛od┼╛i┼│, OAuth ir kitus autentifikavimo nustatymus",
@@ -42,8 +45,8 @@
"backup_database_enable_description": "─оgalinti duomen┼│ baz─Чs i┼бklotin─Чs",
"backup_keep_last_amount": "I┼бsaugom┼│ ankstesni┼│ duomen┼│ baz─Чs i┼бklotini┼│ skai─Нius",
"backup_settings": "Duomen┼│ baz─Чs i┼бklotini┼│ nustatymai",
"backup_settings_description": "Tvarkyti duomen┼│ baz─Чs i┼бklotin─Чs nustatymus. Pastaba: ┼аie darbai n─Чra stebimi ir jums nebus prane┼бta apie nes─Чkm─Щ.",
"cleared_jobs": "I┼бvalyti darbai: {job}",
"backup_settings_description": "Tvarkyti duomen┼│ baz─Чs i┼бklotin─Чs nustatymus. Pastaba: ┼бie darbai n─Чra stebimi ir jums nebus prane┼бta apie nes─Чkm─Щ.",
"cleared_jobs": "I┼бvalytos u┼╛duotys u┼╛duo─Нiai: {job}",
"config_set_by_file": "Konfig┼лracija nustatyta pagal konfig┼лracin─п fail─Е",
"confirm_delete_library": "Ar tikrai norite i┼бtrinti {library} bibliotek─Е?",
"confirm_delete_library_assets": "Ar tikrai norite i┼бtrinti ┼бi─Е bibliotek─Е? ┼аis veiksmas i┼бtrins {count, plural, one {# contained asset} other {all # contained assets}} i┼б Immich ir negali b┼лti gr─Е┼╛intas. Failai liks diske.",
@@ -51,7 +54,7 @@
"confirm_reprocess_all_faces": "Ar tikrai norite i┼б naujo apdoroti visus veidus? Tai taip pat i┼бtrins ─пvardytus asmenis.",
"confirm_user_password_reset": "Ar tikrai norite i┼б naujo nustatyti {user} slapta┼╛od─п?",
"confirm_user_pin_code_reset": "Ar tikrai norite i┼б naujo nustatyti {user} PIN kod─Е?",
"create_job": "Sukurti darb─Е",
"create_job": "Sukurti u┼╛duot─п",
"cron_expression": "Cron i┼бrai┼бka",
"cron_expression_description": "Nustatyti skenavimo interval─Е naudojant cron format─Е. Nor─Чdami gauti daugiau informacijos ┼╛i┼лr─Чkite <link>Crontab Guru</link>",
"cron_expression_presets": "I┼бankstiniai Cron nustatymai",
@@ -62,15 +65,19 @@
"face_detection": "Veid┼│ aptikimas",
"face_detection_description": "Veid┼│ aptikimas bibliotekos elementuose naudojant ma┼бinin─п mokym─Еsi. Vaizdo ─пra┼б┼│ atveju naudojama tik miniati┼лra. \"Atnaujinti\" i┼б naujo nuskaito visus bibliotekos elementus. \"Atstatyti\" ne tik atnaujina, bet ir i┼бvalo visus esamus veid┼│ duomenis. \"Tr┼лkstami\" nuskaito tik dar nenuskaitytus bibliotekos elementus. Veid┼│ aptikimo darbui pasibaigus, aptikti veidai patenka ─п veid┼│ atpa┼╛inimo darb┼│ eil─Щ, kur jie priskiriami jau esamiems ar naujai atpa┼╛intiems ┼╛mon─Чms.",
"facial_recognition_job_description": "Aptikt┼│ veid┼│ atpa┼╛inimas ir priskyrimas ┼╛mon─Чms. ┼аis darbas vykdomas pasibaigus \"veid┼│ aptikimo\" darbui. \"Atstatyti\" (per)grupuoja visus aptiktus veidus. \"Tr┼лkstami\" apdoroja jokiam ┼╛mogui dar nepriskirtus aptiktus veidus.",
"failed_job_command": "Darbo {job} komanda {command} nepavyko",
"failed_job_command": "U┼╛duoties {job} komanda {command} nepavyko",
"force_delete_user_warning": "─оSP─ЦJIMAS: ┼аis veiksmas i┼б karto pa┼бalins naudotoj─Е ir vis─Е jo informacij─Е. ┼аis ┼╛ingsnis nesugr─Е┼╛inamas ir fail┼│ nebus galima atkurti.",
"image_format": "Formatas",
"image_format_description": "WebP sukuria ma┼╛esnius failus nei JPEG, ta─Нiau l─Ч─Нiau juos apdoroja.",
"image_fullsize_description": "Pilno dyd┼╛io nuotrauka be meta duomen┼│ naudojama priartinus",
"image_fullsize_enabled": "─оgalinti pilno dyd┼╛io nuotrauk┼│ generavim─Е",
"image_fullsize_enabled_description": "Generuoti viso dyd┼╛io vaizd─Е neinternetui pritaikytiems formatams. Kai ─пjungta parinktis тАЮPirmenyb─Ч ─пterptai per┼╛i┼лraiтАЬ, ─пterptosios per┼╛i┼лros naudojamos tiesiogiai be konvertavimo. Tai neturi ─пtakos internetui pritaikytiems formatams, pvz., JPEG",
"image_fullsize_quality_description": "Pilno dyd┼╛io nuotrauk┼│ kokyb─Ч 1-100. Didesn─Ч yra geresn─Ч, ta─Нiau sukuria didesniu failus.",
"image_fullsize_title": "Pilno dyd┼╛io nuotrauk┼│ Nustatymai",
"image_prefer_embedded_preview": "Pageidautinai rodyti ─пterpt─Е per┼╛i┼лr─Е",
"image_prefer_embedded_preview_setting_description": "Naudokite ─пterpt─Еsias per┼╛i┼лras RAW nuotraukose kaip ─пvest─п vaizd┼│ apdorojimui ir, jei ─пmanoma, tai gali suteikti tikslesnes kai kuri┼│ vaizd┼│ spalvas, ta─Нiau per┼╛i┼лros kokyb─Ч priklauso nuo fotoaparato, tod─Чl vaizde gali b┼лti daugiau glaudinimo artefakt┼│.",
"image_prefer_wide_gamut": "Teikti pirmenyb─Щ pla─Нiai gamai",
"image_prefer_wide_gamut_setting_description": "Miniati┼лroms naudokite тАЮDisplay P3тАЬ. Taip geriau i┼бsaugomas vaizd┼│, turin─Нi┼│ pla─Нias spalv┼│ erdves, ry┼бkumas, ta─Нiau senesniuose ─пrenginiuose su senesne nar┼бykl─Чs versija vaizdai gali atrodyti kitaip. sRGB vaizdai i┼бsaugomi kaip sRGB, kad b┼лt┼│ i┼бvengta spalv┼│ pasikeitimo.",
"image_preview_description": "Vidutinio dyd┼╛io vaizdas su i┼бvalytais metaduomenimis, naudojamas kai ┼╛i┼лrimas vienas objektas arba ma┼бininiam mokymuisi",
"image_preview_quality_description": "Per┼╛i┼лros kokyb─Ч nuo 1-100. Auk┼бtesn─Чs reik┼бm─Чs yra geriau, bet sukuriami didesni failai gali suma┼╛inti programos reagavimo laik─Е. Ma┼╛os vert─Чs nustatymas gali paveikti ma┼бininio mokymo kokyb─Щ.",
"image_preview_title": "Per┼╛i┼лros nustatymai",
@@ -83,11 +90,11 @@
"image_thumbnail_quality_description": "Miniati┼лros kokyb─Ч nuo 1-100. Auk┼бtesn─Чs reik┼бm─Чs yra geriau, bet pagaminami didesni failai ir gali b┼лti sul─Чtintas programos reagavimo greitis.",
"image_thumbnail_title": "Miniati┼лros nustatymai",
"job_concurrency": "{job} lygiagretumas",
"job_created": "Darbas sukurtas",
"job_not_concurrency_safe": "┼аis darbas n─Чra saugus apdoroti lygiagre─Нiai.",
"job_settings": "Darb┼│ nustatymai",
"job_settings_description": "Keisti darb┼│ lygiagretum─Е",
"job_status": "Darb┼│ b┼лsenos",
"job_created": "U┼╛duotis sukurta",
"job_not_concurrency_safe": "┼аi u┼╛duotis n─Чra saugi apdoroti lygiagre─Нiai.",
"job_settings": "U┼╛duo─Нi┼│ nustatymai",
"job_settings_description": "Keisti u┼╛duo─Нi┼│ lygiagretum─Е",
"job_status": "U┼╛duo─Нi┼│ b┼лsenos",
"library_created": "Sukurta biblioteka: {library}",
"library_deleted": "Biblioteka i┼бtrinta",
"library_import_path_description": "Nurodykite aplank─Е, kur─п norite importuoti. ┼аiame aplanke, ─пskaitant poaplankius, bus nuskaityti vaizdai ir vaizdo ─пra┼бai.",
@@ -104,6 +111,7 @@
"logging_level_description": "─оjungus, kok─п ┼╛urnalo vedimo lyg─п naudot.",
"logging_settings": "┼╜urnalo vedimas",
"machine_learning_clip_model": "CLIP modelis",
"machine_learning_clip_model_description": "Pavadinimas CLIP modelio ─пvardintio <link>here</link>. D─Чmesio, kei─Нiant model─п j┼лs privalote i┼б naujo paleisti 'I┼бmaniosios Paie┼бkos' u┼╛duot─п visiems vaizdams.",
"machine_learning_duplicate_detection": "Dublikat┼│ aptikimas",
"machine_learning_duplicate_detection_enabled": "─оjungti dublikat┼│ aptikim─Е",
"machine_learning_duplicate_detection_enabled_description": "Jei i┼бjungta, visi┼бkai identi┼бki elementai vis tiek bus deduplikuoti.",
@@ -113,12 +121,15 @@
"machine_learning_facial_recognition": "Veid┼│ atpa┼╛inimas",
"machine_learning_facial_recognition_description": "Aptikti, atpa┼╛inti ir sugrupuoti veidus nuotraukose",
"machine_learning_facial_recognition_model": "Veid┼│ atpa┼╛inimo modelis",
"machine_learning_facial_recognition_model_description": "Modeliai i┼бvardinti apimties ma┼╛─Чjan─Нia tvarka. Didieji modeliai yra l─Чti ir naudoja daugiau atminties, ta─Нiau sukuria geresnius rezultatus. Pastebime kad kei─Нiant model─п j┼лs turite i┼б naujo paleisti Veid┼│ Atpa┼╛inimo u┼╛duot─п visiems vaizdams.",
"machine_learning_facial_recognition_setting": "─оgalinti veid┼│ atpa┼╛inim─Е",
"machine_learning_facial_recognition_setting_description": "I┼бjungus, vaizdai nebus u┼╛┼бifruoti veid┼│ atpa┼╛inimui ir nebus naudojami ┼╜moni┼│ sekcijoje Nar┼бymo puslapyje.",
"machine_learning_max_detection_distance": "Maksimalus aptikimo atstumas",
"machine_learning_max_detection_distance_description": "Did┼╛iausias atstumas tarp dviej┼│ vaizd┼│, kad jie b┼лt┼│ laikomi dublikatais, svyruoja nuo 0,001 iki 0,1. Didesn─Чs vert─Чs aptiks daugiau dublikat┼│, ta─Нiau gali b┼лti klaidingai teigiami.",
"machine_learning_max_recognition_distance": "Maksimalus atpa┼╛inimo atstumas",
"machine_learning_max_recognition_distance_description": "Did┼╛iausias skirtumas tarp veid┼│, kad b┼лt┼│ u┼╛skaityti kaip vienas ir tas pats asmuo, r─Ч┼╛is nuo 0-2. Ma┼╛inant tai gali apsaugoti nuo dviej┼│ ┼╛moni┼│ ┼╛ym─Чjimo tuo pa─Нiu asmeniu, didinant tai gali apsaugoti nuo to pa─Нio asmens ┼╛ym─Чjimo kaip du skirtingus ┼╛mones. Pastebime kad yra papras─Нiau apjungti keli┼│ ┼╛moni┼│ modelius ─п vien─Е nei vien─Е i┼бdalinti ─п du, taigi kai ─пmanoma geriau naudoti ma┼╛ens─Щ rib─Е.",
"machine_learning_min_detection_score": "Minimalus aptikimo balas",
"machine_learning_min_detection_score_description": "Minimalus u┼╛tikrintumo balas veido aptikimui nuo 0-1. Ma┼╛esn─Ч reik┼бm─Ч aptiks daugiau veid┼│ ta─Нiau bus ir daugiau klaiding┼│ teigiam┼│ re┼╛ultat┼│.",
"machine_learning_min_recognized_faces": "Ma┼╛iausias atpa┼╛int┼│ veid┼│ skai─Нius",
"machine_learning_min_recognized_faces_description": "Ma┼╛iausias atpa┼╛int┼│ veid┼│ skai─Нius asmeniui, kur─п reikia sukurti. Tai padidinus, veido atpa┼╛inimas tampa tikslesnis, bet padid─Чja tikimyb─Ч, kad veidas ┼╛mogui nepriskirtas.",
"machine_learning_settings": "Ma┼бininio mokymosi nustatymai",
@@ -151,10 +162,14 @@
"metadata_faces_import_setting_description": "Importuoti veidus i┼б vaizdo EXIF duomen┼│ ir papildom┼│ fail┼│",
"metadata_settings": "Metaduomen┼│ nustatymai",
"metadata_settings_description": "Tvarkyti metaduomen┼│ nustatymus",
"migration_job": "Migracija",
"migration_job": "Tvarkymas",
"migration_job_description": "Pertvarkyt─п turinio ir veid┼│ miniati┼лras pagal nauj─Е strukt┼лr─Е",
"nightly_tasks_cluster_faces_setting_description": "Paleisti veido atpa┼╛inim─Е naujai aptiktiems veidams",
"nightly_tasks_cluster_new_faces_setting": "Sugrupuoti naujus veidus",
"nightly_tasks_database_cleanup_setting": "Duomen┼│ baz─Чs valymo darbai",
"no_paths_added": "Keliai neprid─Чti",
"no_pattern_added": "┼аablonas neprid─Чtas",
"note_apply_storage_label_previous_assets": "Pastaba: nor─Чdami pritaikyti saugyklos etiket─Щ seniau ─пkeltiems i┼бtekliams, paleiskite",
"note_apply_storage_label_previous_assets": "Pastaba: nor─Чdami pritaikyti Saugyklos ┼╜ym─Е seniau ─пkeltiems i┼бtekliams, paleiskite",
"note_cannot_be_changed_later": "PASTABA: V─Чliau to pakeisti negalima!",
"notification_email_from_address": "I┼б adreso",
"notification_email_from_address_description": "Siunt─Чjo elektroninis adresas, pavyzd┼╛iui: \"Immich Photo Server <noreply@example.com>\"",
@@ -177,20 +192,29 @@
"oauth_auto_register": "Automatinis registravimas",
"oauth_auto_register_description": "Automati┼бkai u┼╛registruoti naujus naudotojus po prisijungimo per OAuth",
"oauth_button_text": "Mygtuko tekstas",
"oauth_client_secret_description": "Privalomas jei PKCE (Proof Key for Code Exchange) nepalaikomas pagal OAuth tiek─Чj─Е",
"oauth_enable_description": "Prisijungti su OAuth",
"oauth_mobile_redirect_uri": "Mobiliojo peradresavimo URI",
"oauth_mobile_redirect_uri_override": "Mobiliojo peradresavimo URI pakeitimas",
"oauth_mobile_redirect_uri_override_description": "─оjunkite, kai OAuth teik─Чjas nepalaiko mobiliojo URI, tokio kaip ''{callback}''",
"oauth_role_claim": "Rol─Чs Tvirtinimas",
"oauth_role_claim_description": "Suteikti admin teises automati┼бkai pagal ┼бios rol─Чs tvirtinimo buvim─Е. Tvirtinimas gali tur─Чti priskirtus arba 'vartotoj─Е' arba 'admin'.",
"oauth_settings": "OAuth",
"oauth_settings_description": "Tvarkyti OAuth prisijungimo nustatymus",
"oauth_settings_more_details": "Detaliau apie ┼бi─Е funkcij─Е galite paskaityti <link>dokumentacijoje</link>.",
"oauth_storage_label_claim": "Saugyklos ┼╜yma pagal tvirtinim─Е",
"oauth_storage_label_claim_description": "Priskirti Saugyklos ┼╜ym─Е automati┼бkai pagal reik┼бm─Щ vartotojo tvirtinime.",
"oauth_storage_quota_claim": "Saugyklos apimties tvirtinimas",
"oauth_storage_quota_claim_description": "Priskirti vartotojo saugyklos apimties kvot─Е automati┼бkai pagal ┼бio tvirtinimo reik┼бm─Щ.",
"oauth_storage_quota_default": "Numatyta atminties kvota (GiB)",
"oauth_storage_quota_default_description": "Nustatoma appimties kvota GiB kai n─Чra nurodyta tvirtinime.",
"oauth_timeout": "U┼╛klausa vir┼бijo laiko limit─Е",
"oauth_timeout_description": "Laiko limitas u┼╛klausoms milisekund─Чmis",
"password_enable_description": "Prisijungti su el. pa┼бtu ir slapta┼╛od┼╛iu",
"password_settings": "Prisijungimas slapta┼╛od┼╛iu",
"password_settings_description": "Tvarkyti prisijungimo slapta┼╛od┼╛iu nustatymus",
"paths_validated_successfully": "Visi keliai patvirtinti s─Чkmingai",
"person_cleanup_job": "I┼бvalyti asmenis",
"quota_size_gib": "Kvotos dydis (GiB)",
"refreshing_all_libraries": "Perkraunamos visos bibliotekos",
"registration": "Administratoriaus registracija",
@@ -199,7 +223,7 @@
"reset_settings_to_default": "Atstatyti nustatymus ─п numatytuosius",
"reset_settings_to_recent_saved": "Nustatym┼│ atstatymas ─п neseniai i┼бsaugotus nustatymus",
"scanning_library": "Biblioteka skenuojama",
"search_jobs": "Ie┼бkoma darb┼│тАж",
"search_jobs": "Ie┼бkoma u┼╛duo─Нi┼│тАж",
"send_welcome_email": "Si┼│sti sveikinimo el. lai┼бk─Е",
"server_external_domain_settings": "I┼бorinis domenas",
"server_external_domain_settings_description": "Bendrinimo nuorod┼│ domenas, ─пskaitant http(s)://",
@@ -209,19 +233,36 @@
"server_settings_description": "Tvarkyti serverio nustatymus",
"server_welcome_message": "Sveikinimo prane┼бimas",
"server_welcome_message_description": "┼╜inut─Ч, rodoma prisijungimo puslapyje.",
"sidecar_job": "Sidecar metaduomenys",
"sidecar_job_description": "Aptikti ar sinchronizuoti sidecar metaduomenis i┼б fail┼│ sistemos",
"slideshow_duration_description": "Sekund┼╛i┼│ skai─Нius, kiek viena nuotrauka rodoma",
"smart_search_job_description": "Vykdykite ma┼бinin─п mokym─Еsi bibliotekos element┼│ i┼бmaniajai paie┼бkai",
"storage_template_date_time_description": "Elemento suk┼лrimo laiko ┼╛ym─Ч yra naudojama laiko informacijai",
"storage_template_date_time_sample": "Pavyzdinis laikas {date}",
"storage_template_enable_description": "Aktyvuoti saugyklos ┼бablon─Е",
"storage_template_hash_verification_enabled": "Aktyvuoti Hash tikrinim─Е",
"storage_template_hash_verification_enabled_description": "Aktyvuojamas Hash tikrinimas, nei┼бjungti nebent gerai suprantate galimas pasekmes",
"storage_template_migration": "Saugyklos tvarkymas pagal ┼бablon─Е",
"storage_template_migration_description": "Taikyti dabartin─п <link>{template}</link> anks─Нiau ─пkeltiems duomenims",
"storage_template_migration_info": "Saugyklos tvarkykl─Ч konvertuos visus pl─Чtinius ma┼╛osiomis raid─Чmis. ┼аablonas bus taikomas tik naujiems duomenims. Taikyti ┼бablon─Е retroaktyviai anks─Нiau ─пkeltiems duomenims, paleiskite ┼бi─Е <link>{job}</link>.",
"storage_template_migration_job": "Saugyklos Tvarkymo Pagal ┼аablon─Е U┼╛duotis",
"storage_template_more_details": "Daugiau detali┼│ apie ┼бi─Е funkcij─Е, atsi┼╛velkite ─п <template-link>Storage Template</template-link> ir jo galimus <implications-link>implications</implications-link>",
"storage_template_onboarding_description_v2": "Kai aktyvuota, ┼бi funkcija automati┼бkai sukurs failus pagal vartotojo-nustatyt─Е ┼бablon─Е. Daugiau informacijos, pra┼бome skaityti <link>documentation</link>.",
"storage_template_path_length": "Preliminarus strukt┼лros kelio ilgis/limitas:<b>{length, number}</b>/{limit, number}",
"storage_template_settings": "Saugyklos ┼аablonas",
"storage_template_settings_description": "Tvarkyti aplank┼│ strukt┼лr─Е bei fail┼│ pavadinimus ─пkeliamiems duomenims",
"storage_template_user_label": "<code>{label}</code> yra vartotojo Saugyklos ┼╜ym─Е",
"system_settings": "Sistemos nustatymai",
"tag_cleanup_job": "┼╜ym┼│ i┼бvalymas",
"template_email_available_tags": "Savo ┼бablone galite naudoti nurodytas kintamas reik┼бmes:{tags}",
"template_email_if_empty": "Jei ┼бablone tu┼б─Нia reik┼бm─Ч, bus naudojamas numatytas pagal nutyl─Чjim─Е El. pa┼бto adresas.",
"template_email_preview": "Per┼╛i┼лra",
"template_email_settings": "El. pa┼бto ┼аablonai",
"template_settings": "Prane┼бim┼│ ┼бablonai",
"template_settings_description": "Tvarkyti pasirinktinius prane┼бim┼│ ┼бablonus",
"theme_custom_css_settings": "Individualizuotas CSS",
"theme_settings": "Temos nustatymai",
"thumbnail_generation_job": "Generuoti miniati┼лras",
"thumbnail_generation_job": "Generuoti Miniati┼лras",
"thumbnail_generation_job_description": "Dideli┼│, ma┼╛┼│ ir nery┼бki┼│ miniati┼лr┼│ generavimas kiekvienam bibliotekos elementui, taip pat miniati┼лr┼│ generavimas kiekvienam asmeniui",
"transcoding_acceleration_api": "Spartinimo API",
"transcoding_acceleration_nvenc": "NVENC (reikalinga NVIDIA GPU)",
@@ -233,16 +274,21 @@
"transcoding_audio_codec_description": "Opus yra auk┼б─Нiausios kokyb─Чs variantas, ta─Нiau turi ma┼╛esn─п suderinamum─Е su senesniais ─пrenginiais ar programine ─пranga.",
"transcoding_bitrate_description": "Vaizdo ─пra┼бai vir┼бija maksimali─Е leistin─Е bit┼│ spart─Е arba n─Чra priimtino formato",
"transcoding_constant_quality_mode": "Pastovios kokyb─Чs re┼╛imas",
"transcoding_constant_rate_factor_description": "Video kokyb─Чs lygis. Tipin─Чs reik┼бm─Чs yra 23 jei H.264, 28 jei HVEC, 31 jei VP9, ir 35 jei AV1. Kuo ma┼╛esnis tuo kokybi┼бkesnis ta─Нiau didesni failai.",
"transcoding_hardware_acceleration": "Technin─Чs ─пrangos spartinimas",
"transcoding_hardware_decoding": "Aparatinis dekodavimas",
"transcoding_max_bitrate": "Maksimalus bit┼│ srautas",
"transcoding_max_bitrate_description": "Pasirenkant max bitrate galima pasiekti labiau nusp─Чjam─Е fail┼│ dyd─п su minimaliais kokyb─Чs praradimais. Prie 720p, tipin─Чs reik┼бm─Чs yra 2600 kbits/s jei BP9 ar HVEC, arba 4500 kbits/s jei H.264. Neveiksnus jei pasirenkamas 0.",
"transcoding_preset_preset_description": "Kompresijos greitis. Siekiant tam tikro bitrate l─Чtesnis apdorojimas lems ma┼╛esnius fail┼│ dyd┼╛ius ir padidins kokyb─Щ. VP9 ignoruos grei─Нius vir┼б \"gretesnis\" lygio.",
"transcoding_target_resolution_description": "Didesn─Чs skiriamosios gebos gali i┼бsaugoti daugiau detali┼│, ta─Нiau jas koduoti u┼╛trunka ilgiau, fail┼│ dyd┼╛iai yra didesni ir gali suma┼╛─Чti programos jautrumas.",
"transcoding_video_codec": "Video kodekas",
"trash_enabled_description": "─оgalinti ┼бiuk┼бliad─Ч┼╛─Чs funkcijas",
"trash_number_of_days": "Dien┼│ skai─Нius",
"trash_settings": "┼аiuk┼бliad─Ч┼╛─Чs nustatymai",
"trash_settings_description": "Tvarkyti ┼бiuk┼бliad─Ч┼╛─Чs nustatymus",
"user_cleanup_job": "Vartotoj┼│ i┼бvalymas",
"user_delete_delay_settings": "I┼бtrynimo delsa",
"user_delete_delay_settings_description": "Skai─Нius dien┼│ po i┼бtrynimo kuomet vartotojo paskyr─Е ir susij─Щ duomenys bus negra┼╛inamai i┼бtrinti. Vartotojo Trynimo u┼╛duotis paleid┼╛iama vidurnakt─п ir tikrina kurie vartotojai gali b┼лti trinami. ┼аio nustatymo pakeitimai bus naudojami sekan─Нio u┼╛duoties paleidimo metu.",
"user_management": "Naudotoj┼│ valdymas",
"user_password_has_been_reset": "Naudotojo slapta┼╛odis buvo i┼б naujo nustatytas:",
"user_restore_description": "Naudotojo <b>{user}</b> paskyra bus atkurta.",
@@ -305,7 +351,6 @@
"assets": "Elementai",
"assets_added_count": "{count, plural, one {Prid─Чtas # elementas} few {Prid─Чti # elementai} other {Prid─Чta # element┼│}}",
"assets_added_to_album_count": "─о album─Е {count, plural, one {─пtrauktas # elementas} few {─пtraukti # elementai} other {─пtraukta # element┼│}}",
"assets_added_to_name_count": "─о {hasName, select, true {<b>{name}</b>} other {nauj─Е}} album─Е {count, plural, one {─пtrauktas # elementas} few {─пtraukti # elementai} other {─пtraukta # element┼│}}",
"assets_count": "{count, plural, one {# elementas} few {# elementai} other {# element┼│}}",
"assets_moved_to_trash_count": "{count, plural, one {# elementas perkeltas} few {# elementai perkelti} other {# element┼│ perkelta}} ─п ┼бiuk┼бliad─Ч┼╛─Щ",
"assets_permanently_deleted_count": "{count, plural, one {# elementas i┼бtrintas} few {# elementai i┼бtrinti} other {# element┼│ i┼бtrinta}} visam laikui",
@@ -316,7 +361,11 @@
"authorized_devices": "Autorizuoti ─пrenginiai",
"back": "Atgal",
"back_close_deselect": "Atgal, u┼╛daryti arba at┼╛ym─Чti",
"backup_background_service_current_upload_notification": "─оkeliamas {filename}",
"backup_background_service_upload_failure_notification": "Nepavyko ─пkelti {filename}",
"backup_controller_page_background_wifi": "Only on WiFi",
"backup_controller_page_filename": "Failo pavadinimas: {filename}[{size}]",
"backup_controller_page_uploading_file_info": "─оkeliama failo info",
"birthdate_saved": "S─Чkmingai i┼бsaugota gimimo data",
"blurred_background": "Nery┼бkus fonas",
"bugs_and_feature_requests": "Klaid┼│ ir funkcij┼│ u┼╛klausos",
@@ -345,6 +394,7 @@
"clear_all": "I┼бvalyti visk─Е",
"clear_message": "I┼бvalyti prane┼бim─Е",
"clear_value": "I┼бvalyti reik┼бm─Щ",
"client_cert_invalid_msg": "Netinkamas sertifikato failas arba neteisingas slapta┼╛odis",
"close": "U┼╛daryti",
"collapse": "Suskleisti",
"collapse_all": "Suskleisti visk─Е",
@@ -420,8 +470,11 @@
"do_not_show_again": "Daugiau nerodyti ┼бio prane┼бimo",
"documentation": "Dokumentacija",
"download": "Atsisi┼│sti",
"download_include_embedded_motion_videos_description": "Prid─Чti prie judesio nuotrauk┼│ ─пterptus video kaip atskir─Е fail─Е",
"download_settings": "Atsisi┼│sti",
"downloading": "Siun─Нiama",
"downloading_asset_filename": "Parsisiun─Нiamas resursas {filename}",
"drop_files_to_upload": "U┼╛kelkite failus bet kurioje vietoje kad ─пkeltum─Чte",
"duplicates": "Dublikatai",
"duplicates_description": "Sutvarkykite kiekvien─Е element┼│ grup─Щ nurodydami elementus, kurie yra dublikatai (jei toki┼│ yra)",
"duration": "Trukm─Ч",
@@ -493,6 +546,7 @@
"unable_to_delete_import_path": "Nepavyksta i┼бtrinti importavimo kelio",
"unable_to_delete_shared_link": "Nepavyko i┼бtrinti bendrinimo nuorodos",
"unable_to_delete_user": "Nepavyksta i┼бtrinti naudotojo",
"unable_to_download_files": "Nepavyksta atsisi┼│sti fail┼│",
"unable_to_edit_exclusion_pattern": "Nepavyksta redaguoti i┼бim─Нi┼│ ┼бablono",
"unable_to_edit_import_path": "Nepavyksta redaguoti i┼бim─Нi┼│ kelio",
"unable_to_enter_fullscreen": "Nepavyksta pereiti ─п viso ekrano re┼╛im─Е",
@@ -517,6 +571,7 @@
"unable_to_scan_library": "Nepavyksta nuskaityti bibliotekos",
"unable_to_set_feature_photo": "Nepavyksta nustatyti m─Чgstamiausios nuotraukos",
"unable_to_set_profile_picture": "Nepavyksta nustatyti profilio nuotraukos",
"unable_to_submit_job": "Napvyko sukurti u┼╛duoties",
"unable_to_trash_asset": "Nepavyko perkelti ─п ┼бiuk┼бliad─Ч┼╛─Щ",
"unable_to_upload_file": "Nepavyksta ─пkelti failo"
},
@@ -539,6 +594,7 @@
"features_setting_description": "Valdyti aplikacijos funkcijas",
"file_name": "Failo pavadinimas",
"file_name_or_extension": "Failo pavadinimas arba pl─Чtinys",
"filename": "Failopavadinimas",
"filetype": "Failo tipas",
"filter_people": "Filtruoti ┼╛mones",
"folders": "Aplankai",
@@ -574,8 +630,9 @@
},
"invite_people": "Kviesti ┼╛mones",
"invite_to_album": "Pakviesti ─п album─Е",
"ios_debug_info_no_sync_yet": "Jokia background sync u┼╛duotis dar nebuvo paleista",
"items_count": "{count, plural, one {# elementas} few {# elementai} other {# element┼│}}",
"jobs": "Darbai",
"jobs": "U┼╛duotys",
"keep": "Palikti",
"keep_all": "Palikti visus",
"keyboard_shortcuts": "Spartieji klaviat┼лros klavi┼бai",
@@ -660,6 +717,7 @@
"no_results": "Nerasta",
"no_results_description": "Pabandykite sinonim─Е arba bendresn─п rakta┼╛od─п",
"not_in_any_album": "N─Ч viename albume",
"note_apply_storage_label_to_previously_uploaded assets": "Pastaba: Priskirti Saugyklos ┼╜ym─Е prie ank─Нiau ─пkelt┼│ i┼бtekliu, paleiskite ┼б─п",
"notes": "Pastabos",
"notification_toggle_setting_description": "─оjungti el. pa┼бto prane┼бimus",
"notifications": "Prane┼бimai",
@@ -707,6 +765,14 @@
"place": "Vieta",
"places": "Vietos",
"play_memories": "Leisti atsiminimus",
"profile": "Profilis",
"profile_drawer_app_logs": "Logai",
"profile_drawer_client_out_of_date_major": "Mobili aplikacija jau pasenusios versijos. Pra┼бome atsinaujinti ─п paskutin─Щ did┼╛i─Еj─Е versij─Е.",
"profile_drawer_client_out_of_date_minor": "Mobili aplikacija jau pasenusios versijos. Pra┼бome atsinaujinti ─п paskutin─Щ ma┼╛─Еj─Е versij─Е.",
"profile_drawer_client_server_up_to_date": "Klientas ir Serveris yra atnaujinti",
"profile_drawer_github": "GitHub",
"profile_drawer_server_out_of_date_major": "Serveris jau yra pasenusios versijos. Pra┼бome atsinaujinti ─п paskutin─Щ did┼╛i─Еj─Е versij─Е.",
"profile_drawer_server_out_of_date_minor": "Serveris jau yra pasenusios versijos. Pra┼бome atsinaujinti ─п paskutin─Щ ma┼╛─Еj─Е versij─Е.",
"profile_image_of_user": "{user} profilio nuotrauka",
"profile_picture_set": "Profilio nuotrauka nustatyta.",
"public_album": "Vie┼бas albumas",
@@ -893,7 +959,7 @@
"show_albums": "Rodyti albumus",
"show_all_people": "Rodyti visus asmenis",
"show_and_hide_people": "Rodyti ir pasl─Чpti ┼╛mones",
"show_file_location": "Rodyti rinkmenos viet─Е",
"show_file_location": "Rodyti failo viet─Е",
"show_gallery": "Rodyti galerij─Е",
"show_hidden_people": "Rodyti pasl─Чptus asmenis",
"show_in_timeline": "Rodyti laiko skal─Чje",
@@ -936,6 +1002,7 @@
"status": "Statusas",
"stop_casting": "Nutraukti transliavim─Е",
"storage": "Saugykla",
"storage_label": "Saugyklos ┼╜yma",
"storage_usage": "Naudojama {used} i┼б {available}",
"submit": "Pateikti",
"suggestions": "Pasi┼лlymai",
+84 -1
View File
@@ -88,11 +88,14 @@
"machine_learning_url_description": "Ma┼б─лnm─Бc─л┼бan─Бs servera URL",
"manage_concurrency": "Vienlaic─лgas darb─лbas p─Бrvald─лba",
"manage_log_settings": "┼╜urn─Бla iestat─лjumu p─Бrvald─лba",
"map_dark_style": "Tum┼бais stils",
"map_gps_settings": "Kartes un GPS iestat─лjumi",
"map_gps_settings_description": "Kar┼бu un GPS (apgriezt─Бs ─гeokod─У┼бanas) iestat─лjumu p─Бrvald─лba",
"map_light_style": "Gai┼бais stils",
"map_manage_reverse_geocoding_settings": "<link>Revers─Бs ─гeokod─У┼бanas</link> iestat─лjumu p─Бrvald─лba",
"map_settings": "Karte",
"map_settings_description": "Kartes iestat─лjumu p─Бrvald─лba",
"map_style_description": "URL uz style.json kartes t─Уmu",
"metadata_extraction_job": "Metadatu ieg┼л┼бana",
"metadata_settings": "Metadatu iestat─лjumi",
"metadata_settings_description": "Metadatu iestat─лjumu p─Бrvald─лba",
@@ -110,6 +113,10 @@
"notification_email_test_email_sent": "Uz {email} ir nos┼лt─лts testa e-pasts. L┼лdzu, p─Бrbaudi savu ies┼лtni.",
"notification_settings": "Pazi┼Жojumu iestat─лjumi",
"notification_settings_description": "Pazi┼Жojumu iestat─лjumu, tostarp e-pasta, p─Бrvald─лba",
"oauth_auto_launch": "Palaist autom─Бtiski",
"oauth_auto_launch_description": "Pie navig─Бcijas uz piesl─Уg┼бan─Бs lapu autom─Бtiski uzs─Бkt OAuth piesl─Уg┼бan─Бs pl┼лsmu",
"oauth_auto_register": "Autom─Бtiska re─гistr─Бcija",
"oauth_auto_register_description": "P─Уc piesl─Уg┼бan─Бs ar OAuth autom─Бtiski re─гistr─Уt jaunus lietot─Бjus",
"oauth_button_text": "Pogas teksts",
"oauth_enable_description": "Piesl─Уgties ar OAuth",
"oauth_settings": "OAuth",
@@ -124,6 +131,7 @@
"require_password_change_on_login": "Piepras─лt lietot─Бjam main─лt paroli p─Уc pirm─Бs pieteik┼бan─Бs",
"scanning_library": "Sken─У bibliot─Уku",
"search_jobs": "Mekl─Уt uzdevumusтАж",
"server_public_users": "Publiski lietot─Бji",
"server_settings": "Servera iestat─лjumi",
"server_settings_description": "Servera iestat─лjumu p─Бrvald─лba",
"server_welcome_message": "Sveiciena zi┼Жa",
@@ -134,7 +142,12 @@
"storage_template_path_length": "Aptuvenais ce─╝a garuma ierobe┼╛ojums: <b>{length, number}</b>/{limit, number}",
"storage_template_settings": "Kr─Бtuves veidne",
"system_settings": "Sist─Уmas iestat─лjumi",
"template_email_available_tags": "Sagatav─У var izmantot ┼бos main─лgos: {tags}",
"template_email_if_empty": "Ja sagatave ir tuk┼бa, tiks izmantots noklus─Уjuma e-pasts.",
"template_email_invite_album": "Albuma iel┼лguma sagatave",
"template_email_preview": "Priek┼бskat─лjums",
"template_email_settings": "E-pasta sagataves",
"template_email_update_album": "Atjaunin─Бt albuma sagatavi",
"template_settings_description": "Piel─Бgotu pazi┼Жojumu veid┼Жu p─Бrvald─лba",
"theme_custom_css_settings": "Piel─Бgots CSS",
"theme_custom_css_settings_description": "Cascading Style Sheets ─╝auj piel─Бgot Immich izskatu.",
@@ -219,7 +232,9 @@
"are_these_the_same_person": "Vai ┼б─л ir t─Б pati persona?",
"asset_action_delete_err_read_only": "Nevar dz─Уst read only akt─лvu(-s), notiek izlai┼бana",
"asset_action_share_err_offline": "Nevar ieg┼лt bezsaistes akt─лvu(-s), notiek izlai┼бana",
"asset_added_to_album": "Pievienots albumam",
"asset_adding_to_album": "Pievieno albumamтАж",
"asset_description_updated": "Faila apraksts ir atjaunin─Бts",
"asset_list_group_by_sub_title": "Grup─Уt p─Уc",
"asset_list_layout_settings_dynamic_layout_title": "Dinamiskais izk─Бrtojums",
"asset_list_layout_settings_group_automatically": "Autom─Бtiski",
@@ -228,6 +243,7 @@
"asset_list_layout_sub_title": "Izvietojums",
"asset_list_settings_subtitle": "Fotore┼╛─гa izk─Бrtojuma iestat─лjumi",
"asset_list_settings_title": "Fotore┼╛─гis",
"asset_uploaded": "Aug┼бupiel─Бd─Уts",
"asset_uploading": "Aug┼бupiel─Бd─УтАж",
"asset_viewer_settings_title": "Akt─лvu Skat─лt─Бjs",
"assets": "akt─лvi",
@@ -339,6 +355,7 @@
"clear": "Not─лr─лt",
"clear_all": "Not─лr─лt visu",
"clear_value": "Not─лr─лt v─Уrt─лbu",
"client_cert_subtitle": "Atbalsta tikai PKCS12 (.p12, .pfx) form─Бtu. Sertifik─Бtu import─У┼бana/no┼Жem┼бana ir pieejama tikai pirms piesl─Уg┼бan─Бs",
"client_cert_title": "SSL klienta sertifik─Бts",
"clockwise": "Pulkste┼Жr─Бd─лt─Бja virzien─Б",
"close": "Aizv─Уrt",
@@ -468,6 +485,7 @@
"cant_get_faces": "Nevar ieg┼лt sejas",
"cant_search_people": "Neizdev─Бs veikt peronu mekl─У┼бanu",
"failed_to_create_album": "Neizdev─Бs izveidot albumu",
"profile_picture_transparent_pixels": "Profila att─Уlos nevar b┼лt caursp─лd─лgi pikse─╝i. L┼лdzu, palielini un/vai p─Бrvieto att─Уlu.",
"unable_to_change_description": "Neizdev─Бs nomain─лt aprakstu",
"unable_to_create_user": "Neizdev─Бs izveidot lietot─Бju",
"unable_to_delete_user": "Neizdev─Бs dz─Уst lietot─Бju",
@@ -504,7 +522,11 @@
"features_setting_description": "Lietotnes funkciju p─Бrvald─лba",
"filename": "Faila nosaukums",
"filetype": "Faila tips",
"folder": "Mape",
"folder_not_found": "Mape nav atrasta",
"folders": "Mapes",
"gcast_enabled": "Google Cast",
"get_help": "Sa┼Жemt pal─лdz─лbu",
"haptic_feedback_switch": "Iestat─лt haptisku reakciju",
"haptic_feedback_title": "Haptiska Reakcija",
"has_quota": "Ir kvota",
@@ -529,10 +551,12 @@
"hour": "Stunda",
"id": "ID",
"image": "Att─Уls",
"image_saved_successfully": "Att─Уls saglab─Бts",
"image_viewer_page_state_provider_download_started": "Lejupiel─Бde Uzs─Бkta",
"image_viewer_page_state_provider_download_success": "Lejupiel─Бde izdev─Бs",
"image_viewer_page_state_provider_share_error": "Kop─лgo┼бanas K─╝┼лda",
"immich_logo": "Immich logo",
"immich_web_interface": "Immich t─лmek─╝a saskarne",
"import_from_json": "Import─Уt no JSON",
"import_path": "Importa ce─╝┼б",
"in_albums": "{count, plural, one {# album─Б} other {# albumos}}",
@@ -545,18 +569,25 @@
"night_at_midnight": "Katru dienu pusnakt─л",
"night_at_twoam": "Katru dienu 2.00 nakt─л"
},
"invalid_date": "Neder─лgs datums",
"invalid_date_format": "Neder─лgs datuma form─Бts",
"invite_people": "Iel┼лgt cilv─Уkus",
"invite_to_album": "Uzaicin─Бt album─Б",
"ios_debug_info_last_sync_at": "P─Уd─Уj─Б sinhroniz─Бcija {dateTime}",
"ios_debug_info_no_processes_queued": "Nav ierindotu fona procesu",
"jobs": "Uzdevumi",
"keep": "Patur─Уt",
"keep_all": "Patur─Уt visus",
"keep_this_delete_others": "Patur─Уt ┼бo, dz─Уst citus",
"keyboard_shortcuts": "Tastat┼лras sa─лsnes",
"language": "Valoda",
"language_search_hint": "Mekl─Уt valodas...",
"language_setting_description": "Izv─Уlieties v─Уlamo valodu",
"last_seen": "P─Уd─Уjo reizi redz─Уts",
"latest_version": "Jaun─Бk─Б versija",
"latitude": "─вeogr─Бfiskais platums",
"leave": "Patur─Уt",
"lens_model": "Objekt─лva modelis",
"let_others_respond": "─╗aut citiem atbild─Уt",
"level": "L─лmenis",
"library": "Bibliot─Уka",
@@ -600,7 +631,7 @@
"longitude": "─вeogr─Бfiskais garums",
"look": "Izskats",
"loop_videos_description": "Iesp─Уjot, lai autom─Бtiski videoklips tiktu cikliski palaists deta─╝u skat─лt─Бj─Б.",
"make": "Firma",
"make": "Ra┼╛ot─Бjs",
"manage_shared_links": "Kop─лgoto sai┼бu p─Бrvald─лba",
"manage_sharing_with_partners": "Koplieto┼бanas ar partneriem p─Бrvald─лba",
"manage_the_app_settings": "Lietotnes iestat─лjumu p─Бrvald─лba",
@@ -738,48 +769,78 @@
"permission_onboarding_request": "Immich nepiecie┼бama at─╝auja skat─лt j┼лsu fotoatt─Уlus un videoklipus.",
"person": "Persona",
"photos": "Fotoatt─Уli",
"photos_and_videos": "Fotogr─Бfijas un video",
"photos_from_previous_years": "Fotogr─Бfijas no iepriek┼б─Уjiem gadiem",
"pick_a_location": "Izv─Уlies atra┼бan─Бs vietu",
"pin_verification": "PIN koda p─Бrbaude",
"place": "Atra┼бan─Бs vieta",
"places": "Vietas",
"play": "Atska┼Жot",
"play_memories": "Atska┼Жot atmi┼Жas",
"please_auth_to_access": "Lai piek─╝┼лtu, l┼лdzu, autentific─Уjieties",
"port": "Ports",
"preferences_settings_title": "Iestat─лjumi",
"preview": "Priek┼бskat─лjums",
"previous": "Iepriek┼б─Уjais",
"previous_memory": "Iepriek┼б─Уj─Б atmi┼Жa",
"privacy": "Priv─Бtums",
"profile": "Profils",
"profile_drawer_app_logs": "┼╜urn─Бli",
"profile_drawer_client_out_of_date_major": "Mobil─Б lietotne ir novecojusi. L┼лdzu, atjaunini to uz jaun─Бko pamatversiju.",
"profile_drawer_client_out_of_date_minor": "Mobil─Б lietotne ir novecojusi. L┼лdzu, atjaunini to uz jaun─Бko papildversiju.",
"profile_drawer_client_server_up_to_date": "Klients un serveris ir atjaunin─Бti",
"profile_drawer_github": "GitHub",
"profile_drawer_server_out_of_date_major": "Serveris ir novecojis. L┼лdzu, atjaunini to uz jaun─Бko pamatversiju.",
"profile_drawer_server_out_of_date_minor": "Serveris ir novecojis. L┼лdzu, atjaunini to uz jaun─Бko papildversiju.",
"profile_image_of_user": "{user} profila att─Уls",
"profile_picture_set": "Profila att─Уls iestat─лts.",
"public_album": "Publisks albums",
"purchase_account_info": "Atbalst─лt─Бjs",
"purchase_activated_subtitle": "Paldies, ka atbalst─Бt Immich un atv─Уrt─Б koda programmat┼лru",
"purchase_activated_time": "Aktiviz─Уts {date}",
"purchase_activated_title": "Tava atsl─Уga ir sekm─лgi aktiviz─Уta",
"purchase_button_activate": "Aktiviz─Уt",
"purchase_button_buy": "Pirkt",
"purchase_button_buy_immich": "Ieg─Бd─Бties Immich",
"purchase_button_never_show_again": "Nekad vairs ner─Бd─лt",
"purchase_button_reminder": "Atg─Бdin─Бt man p─Уc 30 dien─Бm",
"purchase_button_remove_key": "No┼Жemt atsl─Уgu",
"purchase_button_select": "Izv─Уl─Уties",
"purchase_failed_activation": "Neizdev─Бs aktiviz─Уt! L┼лdzu, p─Бrbaudi savu e-pastu, lai ieg┼лtu pareizo produkta atsl─Уgu!",
"purchase_individual_description_2": "Atbalst─лt─Бja statuss",
"purchase_input_suggestion": "Vai tev ir produkta atsl─Уga? Ievadi atsl─Уgu zem─Бk",
"purchase_license_subtitle": "Nop─Уrc Immich licenci, lai atbalst─лtu turpm─Бku pakalpojuma att─лst─лbu",
"purchase_lifetime_description": "Pirkums uz m┼л┼╛u",
"purchase_option_title": "IEG─АDES IESP─ТJAS",
"purchase_panel_info_1": "Immich veido┼бanai ir nepiecie┼бams daudz laika un p┼л─╝u, un pie t─Б str─Бd─Б pilna laika in┼╛enieri, lai padar─лtu to p─Уc iesp─Уjas lab─Бku. M┼лsu misija ir pan─Бkt, lai atv─Уrt─Б koda programmat┼лra un ─Уtiska uz┼Ж─Уm─Уjdarb─лbas prakse k─╝┼лtu par ilgtsp─Уj─лgu ien─Бkumu avotu izstr─Бd─Бt─Бjiem un izveidotu priv─Бtumu respekt─Уjo┼бu ekosist─Уmu ar re─Бl─Бm alternat─лv─Бm ekspluat─Уjo┼бiem m─Бko┼Жpakalpojumiem.",
"purchase_panel_info_2": "T─Б k─Б m─Уs esam ap┼Ж─Уmu┼бies nepievienot maksas funkcionalit─Бti, ┼бis pirkums nepie┼б─╖irs jums nek─Бdas papildu Immich funkcijas. M─Уs pa─╝aujamies uz t─Бdiem lietot─Бjiem k─Б j┼лs, lai atbalst─лtu nep─Бrtrauktu Immich att─лst─лbu.",
"purchase_panel_title": "Atbalsti projektu",
"purchase_remove_product_key": "No┼Жemt produkta atsl─Уgu",
"purchase_remove_product_key_prompt": "Vai tie┼б─Бm v─Уlaties no┼Жemt produkta atsl─Уgu?",
"purchase_remove_server_product_key": "No┼Жemt servera produkta atsl─Уgu",
"purchase_remove_server_product_key_prompt": "Vai tie┼б─Бm v─Уlaties no┼Жemt Servera produkta atsl─Уgu?",
"purchase_server_description_1": "Visam serverim",
"purchase_server_description_2": "Atbalst─лt─Бja statuss",
"purchase_server_title": "Serveris",
"purchase_settings_server_activated": "Servera produkta atsl─Уgu p─Бrvalda administrators",
"rating_clear": "No┼Жemt v─Уrt─Уjumu",
"rating_description": "R─Бd─лt EXIF v─Уrt─Уjumu inform─Бcijas panel─л",
"reaction_options": "Reakcijas iesp─Уjas",
"read_changelog": "Las─лt izmai┼Жu sarakstu",
"recently_added_page_title": "Nesen Pievienotais",
"refresh_thumbnails": "Atsvaidzin─Бt s─лkt─Уlus",
"refreshed": "Atsvaidzin─Бts",
"remove": "No┼Жemt",
"remove_assets_title": "Iz┼Жemt failus?",
"remove_deleted_assets": "Iz┼Жemt dz─Уstos failus",
"remove_from_album": "No┼Жemt no albuma",
"remove_from_album_action_prompt": "No albuma iz┼Жemti {count} faili",
"remove_from_favorites": "No┼Жemt no izlases",
"remove_from_lock_folder_action_prompt": "No sl─Уgt─Бs mapes iz┼Жemti {count} faili",
"remove_from_locked_folder": "Iz┼Жemt no sl─Уgt─Бs mapes",
"remove_memory": "No┼Жemt atmi┼Жu",
"remove_photo_from_memory": "No┼Жemt fotogr─Бfiju no ┼б─лs atmi┼Жas",
"remove_url": "No┼Жemt URL",
"remove_user": "No┼Жemt lietot─Бju",
"removed_api_key": "No┼Ж─Уma API atsl─Уgu: {name}",
"removed_from_archive": "No┼Ж─Уma no arh─лva",
@@ -790,6 +851,11 @@
"replace_with_upload": "Aizst─Бt ar aug┼бupiel─Бdi",
"require_user_to_change_password_on_first_login": "Piepras─лt lietot─Бjam main─лt paroli p─Уc pirm─Бs pieteik┼бan─Бs",
"rescan": "P─Бrsken─Уt atk─Бrtoti",
"reset": "Atiestat─лt",
"reset_password": "Atiestat─лt paroli",
"reset_people_visibility": "Atiestat─лt cilv─Уku redzam─лbu",
"reset_pin_code": "Atiestat─лt PIN kodu",
"reset_to_default": "Atiestat─лt noklus─Уjuma iestat─лjumus",
"resolve_duplicates": "Atrisin─Бt dubl─У┼бan─Бs gad─лjumus",
"resolved_all_duplicates": "Visi dublik─Бti ir atrisin─Бti",
"restore": "Atjaunot",
@@ -802,6 +868,7 @@
"role_editor": "Redaktors",
"role_viewer": "Skat─лt─Бjs",
"save": "Saglab─Бt",
"save_to_gallery": "Saglab─Бt galerij─Б",
"saved_api_key": "API atsl─Уga saglab─Бta",
"saved_profile": "Profils saglab─Бts",
"saved_settings": "Iestat─лjumi saglab─Бti",
@@ -813,9 +880,23 @@
"scanning_for_album": "Sken─У albumu...",
"search": "Mekl─Уt",
"search_albums": "Mekl─Уt albumus",
"search_by_context": "Mekl─Уt p─Уc konteksta",
"search_by_description": "Mekl─Уt p─Уc apraksta",
"search_by_description_example": "P─Бrg─Бjiens L─лgatn─У",
"search_by_filename": "Mekl─Уt p─Уc faila nosaukuma vai papla┼бin─Бjuma",
"search_by_filename_example": "piem─Уram, IMG_1234.JPG vai PNG",
"search_camera_make": "Mekl─Уt p─Уc fotokameras ra┼╛ot─Бja...",
"search_camera_model": "Mekl─Уt p─Уc fotokameras mode─╝a...",
"search_city": "Mekl─Уt p─Уc pils─Уtas...",
"search_country": "Mekl─Уt p─Уc valsts...",
"search_filter_apply": "Lietot filtru",
"search_filter_camera_title": "Izv─Уlies fotokameras veidu",
"search_filter_date": "Datums",
"search_filter_display_option_not_in_album": "Nav album─Б",
"search_filter_filename": "Mekl─Уt p─Уc faila nosaukuma",
"search_filter_location": "Atra┼бan─Бs vieta",
"search_filter_location_title": "Izv─Уlies atra┼бan─Бs vietu",
"search_for_existing_person": "Mekl─Уt eso┼бu personu",
"search_no_people": "Nav cilv─Уku",
"search_no_people_named": "Nav cilv─Уku ar v─Бrdu \"{name}\"",
"search_page_categories": "Kategorijas",
@@ -836,6 +917,7 @@
"second": "Sekunde",
"select_album_cover": "Izv─Уlieties albuma v─Бci┼Жu",
"select_all_duplicates": "Atlas─лt visus dublik─Бtus",
"select_from_computer": "Izv─Уl─Уties no datora",
"select_photos": "Fotoatt─Уlu Izv─Уle",
"select_user_for_sharing_page_err_album": "Neizdev─Бs izveidot albumu",
"server_info_box_app_version": "Aplik─Бcijas Versija",
@@ -1031,6 +1113,7 @@
"viewer_stack_use_as_main_asset": "Izmantot k─Б Galveno Akt─лvu",
"viewer_unstack": "At-Stekot",
"waiting": "Gaida",
"warning": "Br─лdin─Бjums",
"week": "Ned─У─╝a",
"welcome": "Laipni l┼лgti",
"welcome_to_immich": "Laipni l┼лgti Immich",
+8
View File
@@ -15,10 +15,13 @@
"add_a_name": "╨Э╤Н╤А ╙й╨│╙й╤Е",
"add_a_title": "╨У╨░╤А╤З╨╕╨│ ╨╛╤А╤Г╤Г╨╗╨░╤Е",
"add_endpoint": "Endpoint ╨╜╤Н╨╝╤Н╤Е",
"add_import_path": "╨Ш╨╝╨┐╨╛╤А╤В╨╗╨╛╤Е ╨╖╨░╨╝ ╨╜╤Н╨╝╤Н╤Е",
"add_location": "╨С╨░╨╣╤А╤И╨╕╨╗ ╨╛╤А╤Г╤Г╨╗╨░╤Е",
"add_more_users": "╙и╙й╤А ╤Е╤Н╤А╤Н╨│╨╗╤Н╨│╤З╨╕╨┤ ╨╜╤Н╨╝╤Н╤Е",
"add_partner": "╨е╨░╨╝╤В╤А╨░╨│╤З ╨╜╤Н╨╝╤Н╤Е",
"add_path": "╨Ч╨░╨╝ ╨╜╤Н╨╝╤Н╤Е",
"add_photos": "╨Ч╤Г╤А╨░╨│ ╨╜╤Н╨╝╤Н╤Е",
"add_tag": "╨и╨╛╤И╨│╨╛ ╨╜╤Н╨╝╤Н╤Е",
"add_to_album": "╨ж╨╛╨╝╨╛╨│╤В ╨╛╤А╤Г╤Г╨╗╨░╤Е",
"add_to_album_bottom_sheet_added": "{album}-╨┤ ╨╜╤Н╨╝╨╗╤Н╤Н",
"add_to_album_bottom_sheet_already_exists": "{album}-╨┤ ╨░╨╗╤М ╤Е╤Н╨┤╨╕╨╣╨╜ ╨╛╤А╤Б╨╛╨╜ ╨▒╨░╨╣╨╜╨░",
@@ -28,6 +31,7 @@
"added_to_favorites": "╨Ф╤Г╤А╤В╨░╨╣ ╨╖╤Г╤А╨│╨░╨╜╨┤ ╨╜╤Н╨╝╤Н╤Е",
"added_to_favorites_count": "╨Ф╤Г╤А╤В╨░╨╣ ╨╖╤Г╤А╨░╨│╨╜╤Г╤Г╨┤╨░╨┤ {count, number} ╨╜╤Н╨╝╤Н╨│╨┤╨╗╤Н╤Н",
"admin": {
"admin_user": "╨Р╨┤╨╝╨╕╨╜ ╤Е╤Н╤А╤Н╨│╨╗╤Н╨│╤З",
"authentication_settings": "╨в╨░╨╜╨╕╨╜ ╨╜╤Н╨▓╤В╤А╤Н╨╗╤В ╤В╨╛╤Е╨╕╤А╨│╨╛╨╛",
"authentication_settings_description": "╨Э╤Г╤Г╤Ж ╥п╨│╨╕╨╣╨╜ ╤Г╨┤╨╕╤А╨┤╨╗╨░╨│╨░, OAuth ╨▒╨╛╨╗╨╛╨╜ ╨▒╤Г╤Б╨░╨┤ ╤В╨░╨╜╨╕╨╜ ╨╜╤Н╨▓╤В╤А╤Н╨╗╤В╨╕╨╣╨╜ ╤В╨╛╤Е╨╕╤А╨│╨╛╨╛",
"authentication_settings_disable_all": "╨С╥п╤Е ╨╜╤Н╨▓╤В╤А╤Н╤Е ╨░╤А╨│╤Г╤Г╨┤╤Л╨│ ╨╕╨┤╤Н╨▓╤Е╨╕╨│╥п╨╣ ╨▒╨╛╨╗╨│╨╛╤Е╨┤╨╛╨╛ ╨╕╤В╨│╤Н╨╗╤В╤Н╨╣ ╨▒╨░╨╣╨╜╨░ ╤Г╤Г? ╨Э╤Н╨▓╤В╤А╤Н╤Е ╥п╨╣╨╗╨┤╤Н╨╗ ╨▒╥п╤А╤Н╨╜ ╨╕╨┤╤Н╨▓╤Е╨╕╨│╥п╨╣ ╨▒╨╛╨╗╨╜╨╛.",
@@ -35,11 +39,15 @@
"backup_database": "╙и╨│╙й╨│╨┤╨╗╨╕╨╣╨╜ ╤Б╨░╨╜╨│╨╕╨╣╨╜ ╨┤╨░╨╝╨┐ ╥п╥п╤Б╨│╤Н╤Е",
"backup_database_enable_description": "╙и╨│╙й╨│╨┤╨╗╨╕╨╣╨╜ ╤Б╨░╨╜╨│╨╕╨╣╨╜ ╨┤╨░╨╝╨┐ ╨╕╨┤╤Н╨▓╤Е╨╕╨╢╥п╥п╨╗╤Н╤Е",
"backup_keep_last_amount": "╙и╨╝╨╜╙й╤Е ╤Е╤Н╨┤╤Н╨╜ ╨┤╨░╨╝╨┐╤Л╨│ ╤Е╨░╨┤╨│╨░╨╗╨░╤Е ╨▓╤Н",
"backup_settings": "╨Ф╨░╤В╨░╨▒╨░╨╖ ╨┤╨░╨╝╨┐ ╤В╨╛╤Е╨╕╤А╨│╨╛╨╛",
"backup_settings_description": "╨Ф╨░╤В╨░╨▒╨░╨╖╨░╨░╤Б ╨┤╨░╨╝╨┐ ╤Е╨╕╨╣╤Е ╤В╨╛╤Е╨╕╤А╨│╨╛╨╛╨╜╤Г╤Г╨┤.",
"config_set_by_file": "╨в╨╛╤Е╨╕╤А╨│╨╛╨╛╨│ ╨╛╨┤╨╛╨╛╨│╨╛╨╛╤А ╤Д╨░╨╣╨╗╨░╨░╤Б ╨░╨▓╤З ╨▒╨░╨╣╨╜╨░",
"confirm_delete_library": "╨в╨░ {library} ╨│╤Н╤Б╤Н╨╜ ╤Б╨░╨╜╨│ ╤Г╤Б╤В╨│╨░╤Е╨┤╨░╨░ ╨╕╤В╨│╤Н╨╗╤В╤Н╨╣ ╨▒╨░╨╣╨╜╨░ ╤Г╤Г?",
"confirm_delete_library_assets": "╨в╨░ ╤Н╨╜╤Н ╤Б╨░╨╜╨│ ╤Г╤Б╤В╨│╨░╤Е╨┤╨░╨░ ╨╕╤В╨│╤Н╨╗╤В╤Н╨╣ ╨▒╨░╨╣╨╜╨░ ╤Г╤Г? ╨н╨╜╤Н ╥п╨╣╨╗╨┤╨╗╤Н╤Н╤А ╤В╨░╨╜╤Л {count, plural, one {# contained asset} other {all # contained assets}} ╤Б╨╡╤А╨▓╨╡╤А╤Н╤Н╤Б ╤Г╤Б╤В╨░╤Е ╨▒╙й╨│╙й╙й╨┤ ╨▒╤Г╤Ж╨░╨░╤Е ╨▒╨╛╨╗╨╛╨╝╨╢╨│╥п╨╣. ╨У╤Н╤Е╨┤╤Н╤Н ╤Д╨░╨╣╨╗╤Г╤Г╨┤ ╨┤╨╕╤Б╨║ ╨┤╤Н╤Н╤А╤Н╤Н ╥п╨╗╨┤╤Н╨╜╤Н.",
"confirm_email_below": "╨С╨░╤В╨░╨╗╨│╨░╨░╨╢╤Г╤Г╨╗╨░╤Е╤Л╨╜ ╤В╤Г╨╗╨┤ ╤В╨░ \"{email}\" ╨│╤Н╨╢ ╨▒╨╕╤З╨╜╤Н ╥п╥п",
"confirm_reprocess_all_faces": "╨С╥п╤Е ╤Ж╨░╤А╨░╨╣╨│ ╨┤╨░╤Е╨╕╨╜ ╨┐╤А╨╛╤Ж╨╡╤Б╤Б ╤Е╨╕╨╣╤Е ╥п╥п? ╨в╤Н╨│╨▓╤Н╨╗ ╨▒╥п╤Е ╨╜╤Н╤А╤Б ╨░╤А╨╕╨╗╨░╤Е ╨▒╨╛╨╗╨╜╨╛.",
"confirm_user_password_reset": "{user}-╨╕╨╣╨╜ ╨╜╤Г╤Г╤Ж ╥п╨│╨╕╨╣╨│ ╨┤╨░╤Е╨╕╨╜ ╤В╨╛╤Е╨╕╤А╤Г╤Г╨╗╨░╤Е ╤Г╤Г?",
"confirm_user_pin_code_reset": "{user} ╤Е╤Н╤А╤Н╨│╨╗╤Н╨│╤З╨╕╨╣╨╜ PIN code ╨┤╨░╤Е╨╕╨╜ ╤В╨╛╤Е╨╕╤А╤Г╤Г╨╗╨░╤Е ╤Г╤Г?",
"face_detection": "╨Э╥п╥п╤А ╨╕╨╗╤А╥п╥п╨╗╤Н╤Е",
"image_quality": "╨з╨░╨╜╨░╤А",
"job_settings": "╨Р╨╢╨╗╤Л╨╜ ╤В╨╛╤Е╨╕╤А╨│╨╛╨╛",
+18 -1
View File
@@ -4,6 +4,7 @@
"account_settings": "рдЦрд╛рддреЗ рд╡реНрдпрд╡рд╕реНрдерд╛",
"acknowledge": "рдорд╛рдиреНрдпрддрд╛",
"action": "рдХреГрддреА",
"action_common_update": "рдЕрджреНрдпрдпрд╛рд╡рдд",
"actions": "рдХреГрддреНрдпреЗ",
"active": "рд╕рдХреНрд░рд┐рдп",
"activity": "рдЧрддрд┐рд╡рд┐рдзрд┐",
@@ -13,6 +14,7 @@
"add_a_location": "рдПрдХ рд╕реНрдерд│ рдЯрд╛рдХрд╛",
"add_a_name": "рдирд╛рд╡ рдЯрд╛рдХрд╛",
"add_a_title": "рд╢реАрд░реНрд╖рдХ рдЯрд╛рдХрд╛",
"add_endpoint": "рдПрдВрдбрдкреЙрдЗрдВрдЯ рдЬреЛрдбрд╛",
"add_exclusion_pattern": "рдЕрдкрд╡рд╛рдж рдирдореБрдирд╛ рдЬреЛрдбрд╛",
"add_import_path": "рдЖрдпрд╛рдд рдорд╛рд░реНрдЧ рдЯрд╛рдХрд╛",
"add_location": "рд╕реНрдерд│ рдЯрд╛рдХрд╛",
@@ -20,8 +22,11 @@
"add_partner": "рднрд╛рдЧреАрджрд╛рд░ рдЬреЛрдбрд╛",
"add_path": "рдорд╛рд░реНрдЧ рдЯрд╛рдХрд╛",
"add_photos": "рдЫрд╛рдпрд╛рдЪрд┐рддреНрд░реЗ рдЬреЛрдбрд╛",
"add_tag": "рдЯреЕрдЧ рдЬреЛрдбрд╛",
"add_to": "рддреНрдпрд╛ рдордзреНрдпреЗ рдЬреЛрдбрд╛тАж",
"add_to_album": "рд╕рдВрдЧреНрд░рд╣рд╛рдд рдЯрд╛рдХрд╛",
"add_to_album_bottom_sheet_added": "{album} рдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ",
"add_to_album_bottom_sheet_already_exists": "рдЖрдзреАрдЪ {album} рдордзреНрдпреЗ рдЖрд╣реЗ",
"add_to_shared_album": "рд╕рд╛рдорд╛рдпрд┐рдХ рд╕рдВрдЧреНрд░рд╣рд╛рдд рдЯрд╛рдХрд╛",
"add_url": "URL рдЬреЛрдбрд╛",
"added_to_archive": "рд╕рдВрдЧреНрд░рд╣рд╛рд▓рдпрд╛рдд рдЬреЛрдбрд▓реЗ",
@@ -29,6 +34,7 @@
"added_to_favorites_count": "рдЖрд╡рдбрддреНрдпрд╛рдд {count, number} рдЯрд╛рдХрд▓реЗ",
"admin": {
"add_exclusion_pattern_description": "рдЕрдкрд╡рд╛рдж рдЕрдиреБрдХреВрд▓рди рдЬреЛрдбрд╛. ** рдЖрдгрд┐ ? рдпрд╛ рдЙрдкрдпреЛрдЧрд╛рдд рдЧреНрд▓реЛрдмрд┐рдВрдЧ рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ. рдХреЛрдгрддреНрдпрд╛рд╣реА \"Raw\" рдирд╛рд╡рд╛рдЪреНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдордзреАрд▓ рд╕рд░реНрд╡ рдЦрддрд╛рд╡рдгреНрдпрд╛ рджреБрд░реНрд▓рдХреНрд╖реАрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА \"/Raw/\" рд╡рд╛рдкрд░рд╛. \".tif\" рдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рдкрдерд╛рд╡рд░ рд╕рдорд╛рдкреНрдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдЦрддрд╛рд╡рдгреНрдпрд╛ рджреБрд░реНрд▓рдХреНрд╖реАрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА \"**/.tif\" рд╡рд╛рдкрд░рд╛. рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрде рджреБрд░реНрд▓рдХреНрд╖ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА \"/path/to/ignore/**\" рд╡рд╛рдкрд░рд╛.",
"admin_user": "рдкреНрд░рд╢рд╛рд╕рди рд╡рд╛рдкрд░рдХрд░реНрддрд╛",
"asset_offline_description": "рд╣реА рдмрд╛рд╣реНрдп рд╕рдВрдЧреНрд░рд╣рд╛рд▓рдп рд╕рдВрд╕рд╛рдзрдиреЗ рдбрд┐рд╕реНрдХрд╡рд░ рдирд╛рд╣реАрдд рдЖрдгрд┐ рдЯреНрд░реЕрд╢рдордзреНрдпреЗ рд╡рд┐рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗрдд. рдЬрд░ рдлрд╛рдЗрд▓ рд╕рдВрдЧреНрд░рд╣рд╛рд▓рдпрд╛рдордзреНрдпреЗ рд╡рд┐рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рддрд░ рдирд╡реАрди рд╕рдВрдЧрдд рд╕рдВрд╕рд╛рдзрди рдХрд┐рдВрд╡реНрд╣рд╛ рд░реЛрдЬреАрдирд┐рд╢реА рдордзреНрдпреЗ рддрдкрд╛рд╕рд╛. рд╣рд╛ рд╕рдВрд╕рд╛рдзрди рд╡рд╛рдкрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЦрддрд╛рд╡рдгреА рдкрдерд╛рд▓рд╛ рдЗрдореНрдореАрдЪ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ рдпрд╛рдЪреА рддрдкрд╛рд╕рдгреА рдХрд░рд╛ рдЖрдгрд┐ рддреЛ рд╕рдВрдЧреНрд░рд╣рд╛рд▓рдп рдЪрд╛рд│рд╛.",
"authentication_settings": "рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд╛рдзрдХ",
"authentication_settings_description": "рдкрд░рд╡рд▓реАрдЪрд╛ рд╢рдмреНрдж, OAuth рдЖрдгрд┐ рдЕрдиреНрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдмрдВрдзрди рдХрд░рд╛",
@@ -47,6 +53,7 @@
"confirm_email_below": "рдкреБрд╖реНрдЯреА рдХрд░рдгреНрдпрд╛ рд╕рд╛рдареА, рдЦрд╛рд▓реА \"{email}\" рдЯрдВрдХрд▓рд┐рдЦрд┐рдд рдХрд░рд╛",
"confirm_reprocess_all_faces": "рддреБрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рддреНрд░реА рдЖрд╣реЗ рдХрд╛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡ рдЪреЗрд╣рд▒реНрдпрд╛рдВрд╡рд░ рдкреБрдиреНрд╣рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рд╛рдпрдЪреА рдЖрд╣реЗ? рдпрд╛рдореБрд│реЗ рдирд╛рд╡ рджрд┐рд▓реЗрд▓реЗ рд▓реЛрдХрд╣реА рд╕рд╛рдл рд╣реЛрддреАрд▓.",
"confirm_user_password_reset": "рддреБрдореНрд╣рд╛рд▓рд╛ рдирдХреНрдХреА {user} рдЪрд╛ рдкрд░рд╡рд▓реАрдЪрд╛ рд╢рдмреНрдж рдмрджрд▓рд╛рдпрдЪрд╛ рдЖрд╣реЗ рдХрд╛?",
"confirm_user_pin_code_reset": "рддреБрдореНрд╣рд╛рд▓рд╛ рдирдХреНрдХреА {user} рдЪрд╛ рдкрд┐рди рдХреЛрдб рд░реАрд╕реЗрдЯ рдХрд░рд╛рдпрдЪрд╛ рдЖрд╣реЗ рдХрд╛?",
"create_job": "рдХрд╛рд░реНрдп рдмрдирд╡рд╛",
"cron_expression": "рд╡реЗрд│рд╛рдкрддреНрд░рдХ рд╕реВрддреНрд░",
"cron_expression_description": "рдЪрд╛рд│рдиреНрдпрд╛рдЪреЗ рд╡реЗрд│рд╛рдкрддреНрд░рдХ рдХреНрд░реЙрди рдкрджреНрдзрддреА рдиреЗ рдХрд░рд╛. рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреА рд╕рд╛рдареА рдкрд╣рд╛: <link> рдХреНрд░реЙрди рдЧреБрд░реБ</link>",
@@ -55,6 +62,16 @@
"duplicate_detection_job_description": "рд╕рд╛рд░рдЦреНрдпрд╛ рдЫрд╛рдпрд╛рдЪрд┐рддреНрд░рд╛рдВрдЪрд╛ рд╢реЛрдз рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдпрд╛рдВрддреНрд░рд┐рдХреА рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджреНрдпрд╛. рд╣реА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЪрддреБрд░ рд╢реЛрдзрдкреНрд░рдгрд╛рд▓реАрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЖрд╣реЗ",
"exclusion_pattern_description": "рдЖрдкрд▓реЗ рд╕рдВрдЧреНрд░рд╣рд╛рд▓рдп рдЪрд╛рд│рддрд╛рдирд╛ рдЕрдкрд╡рд╛рдж рдирдореБрдиреЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЦрддрд╛рд╡рдгреНрдпрд╛ рдЖрдгрд┐ рд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрд▓рд╛ рджреБрд░реНрд▓рдХреНрд╖реАрдд рдХрд░реВ рджреЗрддрд╛рдд. рдЖрдкрд▓реНрдпрд╛рдХрдбреЗ рдХрдЪреНрдЪреНрдпрд╛ рдЦрддрд╛рд╡рдгреНрдпрд╛ рд╕рд╛рд░рдЦреНрдпрд╛ рдЖрдпрд╛рдд рдХрд░реВ рдЗрдЪреНрдЫрд┐рдд рдирд╕рд▓реЗрд▓реНрдпрд╛ рдЕрд╕рдВрдкрд╛рджрд┐рдд (RAW) рдЦрддрд╛рд╡рдгреНрдпрд╛ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЕрд╕рд▓реНрдпрд╛рд╕ рд╣реЗ рдЙрдкрдпреБрдХреНрдд рдЖрд╣реЗ.",
"external_library_management": "рдмрд╛рд╣реНрдп рд╕рдВрдЧреНрд░рд╣рд╛рд▓рдп рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди",
"face_detection": "рдореБрдЦ рд╕рдВрд╢реЛрдзрди"
"face_detection": "рдореБрдЦ рд╕рдВрд╢реЛрдзрди",
"face_detection_description": "рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд╡рд╛рдкрд░реВрди рдорд╛рд▓рдорддреНрддрд╛рдВрдордзреАрд▓ рдЪреЗрд╣рд░реЗ рд╢реЛрдзрд╛. рд╡реНрд╣рд┐рдбрд┐рдУрдВрд╕рд╛рдареА, рдлрдХреНрдд рдердВрдмрдиреЗрд▓рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. \"рд░рд┐рдлреНрд░реЗрд╢\" (рдкреБрдиреНрд╣рд╛) рд╕рд░реНрд╡ рдорд╛рд▓рдорддреНрддрд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ. \"рд░реАрд╕реЗрдЯ\" рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рд╕рд░реНрд╡ рд╡рд░реНрддрдорд╛рди рдЪреЗрд╣рд░рд╛ рдбреЗрдЯрд╛ рд╕рд╛рдл рдХрд░рддреЗ. \"рдЧрд╣рд╛рд│\" рдорд╛рд▓рдорддреНрддрд╛рдВрд╡рд░ рдЕрджреНрдпрд╛рдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рди рдХреЗрд▓реЗрд▓реНрдпрд╛ рд░рд╛рдВрдЧреЗрдд рдареЗрд╡рддреЗ. рд╢реЛрдзрд▓реЗрд▓реЗ рдЪреЗрд╣рд░реЗ рдлреЗрд╕ рдбрд┐рдЯреЗрдХреНрд╢рди рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рдлреЗрд╢рд┐рдпрд▓ рд░реЗрдХрдЧреНрдирд┐рд╢рдирд╕рд╛рдареА рд░рд╛рдВрдЧреЗрдд рдареЗрд╡рд▓реЗ рдЬрд╛рддреАрд▓, рддреНрдпрд╛рдВрдирд╛ рд╡рд┐рджреНрдпрдорд╛рди рдХрд┐рдВрд╡рд╛ рдирд╡реАрди рд▓реЛрдХрд╛рдВрдордзреНрдпреЗ рдЧрдЯрдмрджреНрдз рдХреЗрд▓реЗ рдЬрд╛рдИрд▓.",
"facial_recognition_job_description": "рд╢реЛрдзрд▓реЗрд▓реЗ рдЪреЗрд╣рд░реЗ рд▓реЛрдХрд╛рдВрдордзреНрдпреЗ рдЧрдЯрдмрджреНрдз рдХрд░рд╛. рд╣реЗ рдЪрд░рдг рдЪреЗрд╣рд░рд╛ рд╢реЛрдзрдгреЗ рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рдЪрд╛рд▓рддреЗ. \"рд░реАрд╕реЗрдЯ рдХрд░рд╛\" (рдкреБрдиреНрд╣рд╛) рд╕рд░реНрд╡ рдЪреЗрд╣рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХрд░. \"рдЧрд╣рд╛рд│\" рдЪреЗрд╣рд░реЗ рд░рд╛рдВрдЧреЗрдд рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рддреЗ рдЬреНрдпрд╛рдВрдирд╛ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓реЗрд▓реА рд╡реНрдпрдХреНрддреА рдирд╛рд╣реА.",
"failed_job_command": "{command} рдХрдорд╛рдВрдб рдЬреЙрдмрд╕рд╛рдареА рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓рд╛: {job}",
"force_delete_user_warning": "рд╕рд╛рд╡рдзрд╛рди: рд╣реЗ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рдЖрдгрд┐ рд╕рд░реНрд╡ рдорд╛рд▓рдорддреНрддрд╛ рддрд╛рдмрдбрддреЛрдм рдХрд╛рдвреВрди рдЯрд╛рдХреЗрд▓. рд╣реЗ рдкреВрд░реНрд╡рд╡рдд рдХрд░рддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реА рдЖрдгрд┐ рдлрд╛рдпрд▓реА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рдпреЗрдгрд╛рд░ рдирд╛рд╣реАрдд.",
"image_format": "рдлреЙрд░рдореЕрдЯ",
"image_format_description": "WebP JPEG рдкреЗрдХреНрд╖рд╛ рд▓рд╣рд╛рди рдлрд╛рдпрд▓реА рддрдпрд╛рд░ рдХрд░рддреЗ, рдкрд░рдВрддреБ рдПрдиреНрдХреЛрдб рдХрд░рдгреНрдпрд╛рд╕ рд╣рд│реВ рдЕрд╕рддреЗ.",
"image_fullsize_description": "рдЭреВрдо рдЗрди рдХреЗрд▓реНрдпрд╛рд╡рд░ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ рд╕реНрдЯреНрд░рд┐рдк рдХреЗрд▓реЗрд▓реНрдпрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛рд╕рд╣ рдкреВрд░реНрдг рдЖрдХрд╛рд░рд╛рдЪреА рдкреНрд░рддрд┐рдорд╛",
"image_fullsize_enabled": "рдкреВрд░реНрдг-рдЖрдХрд╛рд░рд╛рддреАрд▓ рдкреНрд░рддрд┐рдорд╛ рдирд┐рд░реНрдорд┐рддреА",
"image_fullsize_enabled_description": "рд╡реЗрдм-рдлреНрд░реЗрдВрдбрд▓реА рдирд╕рд▓реЗрд▓реНрдпрд╛ рдлреЙрд░рдореЕрдЯрд╕рд╛рдареА рдкреВрд░реНрдг-рдЖрдХрд╛рд░рд╛рдЪреА рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рд╛. рдЬреЗрд╡реНрд╣рд╛ \"embedded preview\" рдЪрд╛рд▓реБрдЖрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛, \"embedded preview\" рдереЗрдЯ рд░реВрдкрд╛рдВрддрд░рдгрд╛рд╢рд┐рд╡рд╛рдп рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд. JPEG рд╕рд╛рд░рдЦреНрдпрд╛ рд╡реЗрдм-рдлреНрд░реЗрдВрдбрд▓реА рдлреЙрд░рдореЕрдЯрд╡рд░ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдд рдирд╛рд╣реА.",
"image_fullsize_quality_description": "рез-резрежреж рдкрд░реНрдпрдВрдд рдкреВрд░реНрдг-рдЖрдХрд╛рд░рд╛рддреАрд▓ рдкреНрд░рддрд┐рдорд╛ рдЧреБрдгрд╡рддреНрддрд╛. рдЬрд╛рд╕реНрдд рддреЗрд╡реНрд╣рдбреЗ рдЪрд╛рдВрдЧрд▓реЗ, рдкрд░рдВрддреБ рдореЛрдареНрдпрд╛ рдлрд╛рдпрд▓реА рддрдпрд╛рд░ рдХрд░рддреЗ."
}
}

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