Compare commits

..

348 Commits

Author SHA1 Message Date
github-actions
a07531be3b chore: version v1.137.1 2025-07-31 23:05:34 +00:00
Daniel Dietzler
3cdc6844a1 fix: automatic media location migration without internal assets (#20489) 2025-07-31 22:58:35 +00:00
github-actions
c3263e50fc chore: version v1.137.0 2025-07-31 20:19:26 +00:00
Alex
7391ea6ff9 chore: large file size grid view styling (#20472)
* chore: large file grid styles

* chore: large file grid styles
2025-07-31 12:52:19 -04:00
Daniel Dietzler
f972b8d514 fix: modal race conditions (#20460) 2025-07-31 07:28:45 -05:00
Jason Rasmussen
6b50d958f4 fix: incorrect next/previous action after folder view refresh (#20447) 2025-07-30 14:50:52 -05:00
Alex
27c456eb75 fix: people navigation (#20450) 2025-07-30 14:47:47 -05:00
Brandon Wees
e7d051db3c feat: drift edit time and date action (#20377)
* feat: drift edit time and date action

* feat: add edit button on asset viewer bottom sheet

* update localDateTime column in addition to createdAt to keep consistency

* fix: dont update local dateTime

Server calcs this anyway and it will be synced when the change is applied. We don't use localDateTime on mobile so there is no reason to update this value

* fix: padding around edit icon in ListTile

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

* chore: format

* fix: hide date edit control when asset does not have a remote

* fix: pull timezones correctly from image

---------

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
2025-07-30 14:40:13 -05:00
Peter Ombodi
86d31d7d29 fix(download): handle completed downloads and refresh albums (#20241)
* fix(download): handle completed downloads and refresh albums

* fix(download): remove use of outdated AlbumService

---------

Co-authored-by: Peter Ombodi <peter.ombodi@gmail.com>
2025-07-30 14:33:55 -05:00
shenlong
f416342eff fix: clear local file cache before upload (#20448)
* clear local file cache before upload

* clear cache during hashing

* fix test

* add button to clear cache manually

* add button to clear cache manually

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-30 14:32:38 -05:00
C├йdric
d73335ecbc docs: add config example for Authelia (#20223) 2025-07-30 19:13:19 +00:00
shenlong
641a3baadd fix(mobile): add partial index based on library ID to remote assets (#20214)
* feat: add libraryId to SyncAssetV1

* add partial index

# Conflicts:
#	mobile/drift_schemas/main/drift_schema_v5.json
#	mobile/lib/infrastructure/repositories/db.repository.dart
#	mobile/lib/infrastructure/repositories/db.repository.steps.dart
#	mobile/test/drift/main/generated/schema_v5.dart

* chore: make build

* rebase

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-30 23:59:00 +05:30
shenlong
f85d8add01 fix: json encoding failure during live photo download (#20444)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-30 12:48:18 -05:00
Weblate (bot)
c278b7ad17 chore(web): update translations (#20105)
Co-authored-by: AbuKareem Tuffaha <abukareem.tuffaha@gmail.com>
Co-authored-by: Adam Uchmanowicz <auchmanowicz@gmail.com>
Co-authored-by: AgentTricky <andreweditz26@gmail.com>
Co-authored-by: Alexandre Garnier <zigarn@users.noreply.hosted.weblate.org>
Co-authored-by: Alvin <ekzistadismo@gmail.com>
Co-authored-by: Andreas Johansen <andreas@josern.com>
Co-authored-by: Bart┼Вomiej <20731216+Jarsey45@users.noreply.github.com>
Co-authored-by: Bart┼Вomiej <bartek.yt01@gmail.com>
Co-authored-by: Benjamin Graf <benjamin@eende.net>
Co-authored-by: CanbiZ <mickey.leskowitz@gmail.com>
Co-authored-by: Cezar Olteanu <lecezar2014@gmail.com>
Co-authored-by: Christoph Auer <Christoph.Auer@pilsheim.de>
Co-authored-by: Dag Stuan <D.Stuan@gmail.com>
Co-authored-by: Davide Ciaccia <davideccia@gmail.com>
Co-authored-by: Davide Vegliante <davidevegliante@gmail.com>
Co-authored-by: Dennis Premoli <dennis.premoli@gmail.com>
Co-authored-by: DevServs <bonov@mail.ru>
Co-authored-by: Dmitry Banny <dj.icecore@gmail.com>
Co-authored-by: Felipe Silva <dorsal-cobweb-life@duck.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Florian Ostertag <florian.kuepper@gmail.com>
Co-authored-by: Hurricane-32 <rodrigorimo@hotmail.com>
Co-authored-by: Indrek Haav <indrek.haav@hotmail.com>
Co-authored-by: Javier Villanueva Garc├нa <jvg2203@gmail.com>
Co-authored-by: John Molkavitch <jblum66@gmail.com>
Co-authored-by: Jordy H <jordy@hoebergen.net>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: Kasper Honor├й <kasper@honore-stens.dk>
Co-authored-by: Lauritz Tieste <lauritz6000000@gmail.com>
Co-authored-by: Leo Bottaro <github@leobottaro.com>
Co-authored-by: MaBeniu <marius.beniusis@teliacompany.com>
Co-authored-by: Mateo Varela <matevarela32@gmail.com>
Co-authored-by: Matja┼╛ T <matjaz@moj-svet.si>
Co-authored-by: Mikkel Dupont Olesen <m-do2009@hotmail.com>
Co-authored-by: Musab Ustun <musabyusufustun@outlook.com>
Co-authored-by: M─Бrti┼Ж┼б Bru┼Жenieks <martinsb@gmail.com>
Co-authored-by: Nick Huang <nick80322@gmail.com>
Co-authored-by: Nico Kaiser <nico@kaiser.me>
Co-authored-by: Nicol├▓ <nicveronese@gmail.com>
Co-authored-by: Nikolina Babok <nikolinababok83@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: Phantom0174 <darrenhsiou@gmail.com>
Co-authored-by: R J <robindanoskarjohansson@gmail.com>
Co-authored-by: Raman Venmarathoor <ramanvemman@gmail.com>
Co-authored-by: Santiago <santiwever@hotmail.com>
Co-authored-by: Saschl <sascharudolf46@gmail.com>
Co-authored-by: Sergey Katsubo <skatsubo@gmail.com>
Co-authored-by: Shawn <xiaxinx@gmail.com>
Co-authored-by: Sylvain Pichon <service@spichon.fr>
Co-authored-by: Tajbir Prottoy <tajbirprottoy@gmail.com>
Co-authored-by: Tanishq Sindhu <hisar.champion@gmail.com>
Co-authored-by: Tijs-B <tijs.bergmans@telenet.be>
Co-authored-by: Tony Ronaldo Matute <tonyronaldomatute@gmail.com>
Co-authored-by: User 123456789 <user123456789@users.noreply.hosted.weblate.org>
Co-authored-by: Vegard Fladby <vegard@fladby.org>
Co-authored-by: Xo <xocodokie@users.noreply.hosted.weblate.org>
Co-authored-by: Zvonimir <zzrakic@protonmail.com>
Co-authored-by: adri1m64 <adrien.melle@laposte.net>
Co-authored-by: chamdim <chamdim@protonmail.com>
Co-authored-by: eav5jhl0 <eav5jhl0@users.noreply.hosted.weblate.org>
Co-authored-by: grgergo <gergo_g@proton.me>
Co-authored-by: johnwoo_nl <pb@lunenburg-productions.nl>
Co-authored-by: manosrh <manosrh@gmail.com>
Co-authored-by: maxius65 <max.dewispelaere@hotmail.com>
Co-authored-by: neketos851 <kokgp554t@mozmail.com>
Co-authored-by: over adm <1ron3gg@gmail.com>
Co-authored-by: pyccl <changcongliang@163.com>
Co-authored-by: syyhs668 <812741539@qq.com>
Co-authored-by: thehijacker <thehijacker@gmail.com>
Co-authored-by: traptegies <lars.reuss@gmx.de>
Co-authored-by: tsloms <t.slomski@outlook.de>
Co-authored-by: waclaw66 <waclaw66@seznam.cz>
2025-07-30 18:16:47 +01:00
Alex
10e9c278ee feat: network requirement option for upload (#20302)
* wifi toggle

* feat: network requirement option for upload

* chore: put back holding queue previous config numbers

* options

* backup option page

* pr feedback
2025-07-30 22:13:20 +05:30
bo0tzz
47a025f39f chore: also run docs build on oapi changes (#20440) 2025-07-30 13:30:21 -03:00
Jason Rasmussen
749f999f2a feat: better endpoint descriptions (#20439) 2025-07-30 13:29:36 -03:00
Jason Rasmussen
d5a01c0310 fix(web): timeline time bucket issue (#20438) 2025-07-30 11:21:02 -05:00
Brandon Wees
097e132fba fix: user profile images not working in beta timeline (#20203)
* fix user icons in album view

* revert updateUsersV1 change

* fix: UserDto merge issues

* fix: update user entity

* revert what I thought were merge issues

turns out drift cant figure out when it needs to gen a file...

* fix removed line

* handle defaults for older servers

* feat: checkpoint migrations

* fix: use parenthesis instead of brackets

* Update 1753800911775-ProfileImageCheckpointRemoval.ts

* fix: sync stream updateUsersV1
2025-07-30 11:09:28 -05:00
shenlong
da5deffd03 fix: exclude assets from excluded albumbs on main timeline (#20425)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-30 10:16:23 -05:00
shenlong
9f20522df5 chore: add isFavorite to PlatformAsset in duplicate check (#20427)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-30 08:44:19 -05:00
Ben
baadf9db20 fix(web): timeline date group width (#19964)
Fix the calculation for the date group width, so there's never a scenario where photos will be hidden. On mobile devices, photos in the second row can sometimes have a top of <100px, which throws off the calculation of the date group width.
2025-07-30 08:39:19 -04:00
xCJPECKOVERx
4ea4ee40af fix(web): Search chip key value heights don't match (#20312)
- add flex items-stretch to stretch chip key height to match value height
2025-07-30 08:31:16 -04:00
renovate[bot]
d8a6552811 chore(deps): update ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0 docker digest to 32324a2 (#20381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 08:29:37 -04:00
renovate[bot]
444133a72b chore(deps): update ghcr.io/immich-app/postgres:14-vectorchord0.3.0 docker digest to 0e763a2 (#20380)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-30 10:36:50 +00:00
Alex
29f16c6a47 feat: people page/sheet/detail (#20309) 2025-07-30 03:07:53 +00:00
shenlong
268b411a6f fix: sync is_favorite from native (#20412)
* feat: sync is_favorite from native

* handle favorite during upload

* Update mobile/ios/Runner/Sync/MessagesImpl.swift

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

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-29 21:57:04 -05:00
Brandon Wees
07ed060c32 feat: 3-2-1 backup onboarding card (#20374)
* feat: 3-2-1 backup onboarding card

* chore: format i18n

* fix: lint

* Update onboarding-backup.svelte

* fix: e2e onboarding test
2025-07-29 21:55:21 -05:00
Jason Rasmussen
2f5d543ad9 fix: tweak error docs (#20417) 2025-07-29 21:33:24 +00:00
Jason Rasmussen
9b65cd4d7b feat!: remove typeorm (#20366)
feat: remove typeorm
2025-07-29 17:28:02 -04:00
Brandon Wees
290e325c5c feat: drift description editor (#20383)
* feat: drift description editor

* chore: use focus node

* chore: code review fixes

* chore: move description update to action.service

* refactor

* refactor

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-29 21:17:33 +00:00
Jason Rasmussen
58521c9efb feat: change default media location to /data (#20367)
* feat!: change default media location to /data

* feat: dynamically detect media location
2025-07-29 16:58:50 -04:00
Andrew Marshall
4cae15f28d feat: support config via systemd credentials (#20406)
feat: Support config via Systemd Credentials

See https://systemd.io/CREDENTIALS/. This is used as a fallback, so will
only be used if the `$*_FILE` var is empty. This could also be used to
implicitly use Docker Secrets by settings
`CREDENTIALS_DIRECTORY=/run/secrets` rather than setting individual
`$_*FILE` environment variables.
2025-07-29 16:43:11 -04:00
shenlong
e6ec019852 fix: show missing local assets only in timeline with partner sharing (#20298)
fix: show missing local assets in timeline with partner sharing

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-29 10:05:04 -05:00
Brandon Wees
3b5e00131b fix: android widget periodic updates (#20389)
* fix: android widget updates

* ensure periodic work is queued when we receive an update

This will not "reset the clock" on the periodic work since we are using         ExistingPeriodicWorkPolicy.UPDATE. This is needed since existing widgets have already been asked to queue their workers. If those periodic workers were overwritten by a widget update request from the app, there is no way to queue them again. onReceive gets run when the app requests a widget update so the periodic workers will get queued again.
2025-07-29 08:59:10 -05:00
Zack Pollard
a0fa7318ed fix: handle cleanup of new backups alongside old backups (#20402) 2025-07-29 13:28:10 +01:00
Zack Pollard
2a005629a0 chore: bump minimum eslint-config-prettier version due to MAL-2025-6022 (#20400) 2025-07-29 11:23:52 +00:00
renovate[bot]
59a50b8697 chore(deps): update github-actions (#20384)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-29 12:07:14 +01:00
renovate[bot]
90eac40e02 chore(deps): update terraform cloudflare to v4.52.1 (#20387)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-29 12:06:52 +01:00
Andreas Petersson
ad6f7f8089 docs: add immich_ml_balancer to community projects (#20399) 2025-07-29 12:02:37 +01:00
renovate[bot]
056b262cba chore(deps): update dependency @types/node to ^22.16.5 (#20385)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-29 11:48:26 +02:00
renovate[bot]
cfae134ecf fix(deps): update typescript-projects (#20388)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-29 09:47:30 +00:00
Jason Rasmussen
fbbb6af27a chore: update open-api (#20376) 2025-07-28 19:56:22 -05:00
Brandon Wees
1804a8fe58 fix: openapi spec (#20378) 2025-07-28 23:46:34 +00:00
Alwin Lohrie
ae1d60e259 feat: find large files utility (#18040)
feat: large asset utility

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-07-28 18:48:39 -04:00
Jason Rasmussen
7d759edfcc chore: add permission metadata to open-api document (#20373) 2025-07-28 18:40:34 -04:00
shenlong
34974b036c fix: handle back gesture in multi selection mode (#20356)
* fix: handle back gesture in multi selection mode

# Conflicts:
#	mobile/lib/presentation/widgets/timeline/timeline.widget.dart

* remove null-aware element because Isar

* chore: set sqlite busy_timeout to 500ms (#20358)

fix: add busy_timeout pragma

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

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-28 19:22:50 +00:00
shenlong
e52b9d15b5 chore: bump dart sdk to 3.8 (#20355)
* chore: bump dart sdk to 3.8

* chore: make build

* make pigeon

* chore: format files

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-28 14:04:03 -05:00
Jed-Giblin
9b3718120b feat: shared links custom URL (#19999)
* feat: custom url for shared links

* feat: use a separate route and query param

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2025-07-28 14:16:55 -04:00
Jason Rasmussen
16b14b390f fix: file samples (#20364) 2025-07-28 13:30:49 -04:00
Jason Rasmussen
7e7b8da128 fix: debug source maps (#20363) 2025-07-28 12:41:22 -04:00
Dag Stuan
66ea75072d feat(web): auto fit bounds for map modal (#20345) 2025-07-28 17:36:37 +01:00
Sergey Katsubo
d34670bae6 feat(server): include reason in null reverse geocoding logs (#20347)
* Clarify in log why reverse geocoding may return nothing

* Decrease log level for empty reverse geocoding response from warn to log

* Use a named constant for 25km

* Mention fallback to countries in the message

* Improve natural earth log message

* Decrease log level for empty reverse geocoding response from natural earth countries
2025-07-28 08:51:00 -05:00
shenlong
1e1c2ea627 fix: backup indicator in beta app bar (#20354)
fix: beta - app bar backup indicator

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-28 08:50:50 -05:00
Sergey Katsubo
c7fcb23a23 chore(docs): add links to custom scan interval from other sections in external library doc (#20353) 2025-07-28 13:42:59 +01:00
shenlong
708e42d8a3 fix: change translation key for archive action button (#20336)
* chore: change translation key for archive action button

* chore: await navigation before emitting event

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-27 17:43:23 +00:00
Alex
d15f67da5d feat: scroll to top & view in timeline (#20274)
* feat: scroll to top & view in timeline

* use EventStream

* refactor: event invocation and listerner

* fix: correct parent routing
2025-07-27 21:48:32 +05:30
Matthew Momjian
6becf409da feat(docs): reorganize DB queries, add tags (#20303)
* reorganize

* fix checksum
2025-07-27 10:03:58 -05:00
xCJPECKOVERx
ee4ae40d61 fix(web): Album picker recent albums don't match sidebar (#20313)
- update album picker recent albums to show most recent 'updatedAt' instead of 'createdAt'. Matches sidebar.
2025-07-27 10:03:39 -05:00
Matthew Momjian
ebd644eedd fix(docs): update SQL queries with schema changes (#20297)
* sql queries with table changes

* fix linting
2025-07-26 17:38:12 -05:00
shenlong
7c36cbaf0f fix: error on navigating back from backup selection page (#20299)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-26 13:58:27 -05:00
Alex
3a5d82f790 chore: delete action button (#20261) 2025-07-26 13:51:18 -05:00
Alex
b14c768208 fix: share to app upload (#20271) 2025-07-26 11:42:24 -05:00
Alex
07cb2fb04e fix: remainder backup count (#20270) 2025-07-26 09:02:26 -05:00
Alexandre Garnier
9bbad45990 fix(mobile): remove unused translation and pluralize existing one for map photos count (#20282) 2025-07-26 09:00:35 -05:00
shenlong
e85655d34c fix: no hero animation after tab change (#20285)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-26 08:59:26 -05:00
shenlong
d0576697c3 chore: upgrade flutter to 3.32.8 (#20287)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-26 08:58:48 -05:00
Yaros
f9847bee51 fix(mobile): places search not working in beta version (#20284)
fix(mobile): places search not working
2025-07-26 17:00:57 +05:30
beposec
f2141de5bb fix(mobile): Fix a typo in SyncStreamService Logging (#20283)
Fix typo in logging
2025-07-26 11:29:42 +00:00
Alexandre Garnier
cb344cb014 fix(mobile): distinguish backup settings title from 'backup_controller_page_backup' translation entry (#20237)
Different translation in some languages like in French ('Sauvegarde' for title, otherwise 'Sauvegard├й')
2025-07-25 18:07:59 -05:00
Jason Rasmussen
c6b25ef111 feat: automatically detect media location changes (#20256) 2025-07-25 15:25:36 -04:00
Jason Rasmussen
0fdeac0417 feat!: more permissions (#20250)
feat: more api key permissions
2025-07-25 15:25:23 -04:00
Jason Rasmussen
153bb70f6e feat(web): api key permission search (#20248) 2025-07-25 13:39:48 -04:00
Brandon Wees
da80b69062 fix(mobile): beta search page improvements (#20247)
search page improvements
2025-07-25 12:24:19 -05:00
Brandon Wees
f9292c9c96 fix(mobile): deep links when using the beta timeline (#20111)
* fix: deep links when using the beta timeline

* Update remote_asset.repository.dart

* Update mobile/lib/domain/services/asset.service.dart

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

* return optional from album get

* do not include trashed assets in album asset count

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

* formatting

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
2025-07-25 17:02:49 +00:00
Zack Pollard
2e0ee6ec05 feat: don't wait for network on app startup (#20232) 2025-07-25 11:19:50 -05:00
Zack Pollard
7f2e4f85f8 fix: lookup the primary key constraint name before dropping it (#20221) 2025-07-25 16:51:22 +01:00
Brandon Wees
c63f805cb4 fix: word wrapping on action buttons (#20231) 2025-07-25 15:10:01 +00:00
Alex
03a13828e1 chore: refactor upload service (#20130)
* chore: refactor upload service

* fix: cancel upload queue on logout (#20131)

* fix: cancel upload on logout

* 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: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-25 10:09:32 -05:00
Jeremy Fleischman
e5ee1c8db6 chore: add missing 'make pigeon' instruction (#20202)
* chore: fix typo 'make_build' -> 'make build'

* chore: add missing 'make pigeon' instruction

Turns out I was getting bit by forgetting to run `make pigeon`, which
also generates files. Perhaps it would be better to make it part of
`make build`?

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-25 15:05:40 +00:00
Daimolean
25e2d37490 fix(server): use UserMetadataKey enum instead of string (#20209)
* fix(server): use UserMetadataKey enum instead of string

* fix: mobile
2025-07-25 11:04:28 -04:00
Alex
ed5759fe07 fix: character width calculation (#20201) 2025-07-25 09:56:25 -05:00
Daniel Dietzler
edefed56ae fix: optional number inputs (#20218) 2025-07-25 09:06:12 -04:00
shenlong
13281f8531 docs: more make commands and add mobile checks to pr-checklist (#20211)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-25 13:24:08 +01:00
Zack Pollard
b48406bd20 fix: android backup album migration losing selection (#20220) 2025-07-25 12:57:31 +01:00
Brandon Wees
06c78dfa91 feat: add to album on new beta timeline (#20119)
* feat: add to album on new beta timeline

* handle add album button

* tune

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-25 01:10:33 -05:00
Jeremy Fleischman
de67d22bc0 fix: add missing awaits when changing client certificate (#20189)
I ran into this while testing out
<https://github.com/immich-app/immich/pull/19830>. When I add, change,
or remove a client certificate under Immich's advanced settings, the
change wouldn't take effect until some mysterious point in the future.
For example:

1. Add a client certificate. It doesn't get used.
2. Remove certificate. *Now* the client certificate from step 1) is used.
3. Restart application. Now no client certificate is used.

This all boils down to some missing `await`s. The user would change the
cert, and we'd start asynchronously saving it to the store, and while
the save is still happening, [`HttpSSLOptions` pulls the "old" value out of
`SSLClientCertStoreVal`](https://github.com/immich-app/immich/blob/v1.136.0/mobile/lib/utils/http_ssl_options.dart#L30).

With the appropriate `await`s, this behaves much more sanely.
2025-07-25 00:28:33 -05:00
shenlong
b4780e89af fix: add beta toggle in landscape mode (#20187)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-25 00:28:21 -05:00
shenlong
ad65e9011a chore: bump line length to 120 (#20191) 2025-07-25 02:37:22 +00:00
Zack Pollard
977c9b96ba fix: geodata_places pkey migration failing for certain upgrade paths (#20177) 2025-07-24 22:50:36 +01:00
John Stef
aa2828ab33 fix(mobile): hide video thumbnail when video is ready (#19328) 2025-07-24 22:38:08 +01:00
Daimolean
a36840d7cc fix(web): multi-select in ascending asset order (#19461) 2025-07-24 22:37:44 +01:00
Pablo Lluch
e34f46fa0d fix: send correct includeArchived parameter to API when showing markers in map (#20117)
Co-authored-by: Pablo Lluch <pablo.lluch@gmail.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-07-24 22:34:06 +02:00
Alex
6170a3843c chore: remove build flavor Android (#20161) 2025-07-24 14:55:49 -05:00
shenlong
563e2ab503 fix: update trash action i18n keys (#20164)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-24 14:55:35 -05:00
shenlong
79157e1043 fix: fallback auto grouping to day grouping (#20156)
fallback auto grouping to day grouping

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-24 19:28:40 +00:00
shenlong
02688a2a03 fix: override SSL options inside isolates (#20142)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-24 14:26:00 -05:00
Brandon Wees
3b9bfceef0 fix: album deleted toast message (#20121)
* fix: album deleted toast message

* Update mobile/lib/presentation/pages/drift_remote_album.page.dart

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

* Fix lint

---------

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
2025-07-24 14:09:17 -05:00
github-actions
089085fcdb chore: version v1.136.0 2025-07-24 14:24:38 +00:00
Jason Rasmussen
fc68cf4f32 chore: remove migration (#20129) 2025-07-24 14:11:53 +00:00
Alex
0051a9bba5 fix(web): Revert prevent flashing white background in dark mode on page load/reload (#19934) (#20122)
Revert "fix(web): prevent flashing white background in dark mode on page load/reload (#19934)"

This reverts commit 32f23b8d38.
2025-07-24 09:45:38 +02:00
Daniel Dietzler
f27bdf7523 chore: migrate to UI modal manager (#20116) 2025-07-23 17:27:09 -04:00
Daniel Dietzler
c1c9f30ea4 chore: migrate to immich/ui confirm modal (#20114) 2025-07-23 22:56:56 +02:00
Jason Rasmussen
bc8cb9b671 fix: default route permission (#20113) 2025-07-23 16:56:38 -04:00
Jason Rasmussen
a675922172 fix: unset prewarn param (#20109) 2025-07-23 16:52:59 -04:00
Jason Rasmussen
2bead445bd docs: remove outdated note (#20110) 2025-07-23 16:00:19 -04:00
Daniel Dietzler
0e1c8c2b80 fix: ML recognition distance UI form validation (#20107) 2025-07-23 19:12:06 +02:00
Alex
0174de19dd feat: export database option (#20098) 2025-07-23 14:40:16 +00:00
Alex
1a35a01149 feat: drift manual upload (#20101) 2025-07-23 09:20:52 -05:00
shenlong
08122d6871 fix: show only local assets from albums selected for backup (#20050)
* show only local assets from albums selected for backup

# Conflicts:
#	mobile/lib/infrastructure/repositories/db.repository.drift.dart

* ignore backup selection

* fix: backup album ownerId

* fix: backup album ownerId

* only show local only assets that are selected for backup

* add index on visibility and backup selection

* fix: video not playing in search view

* remove safe area from bottom bar

* refactor stack count with a CTE and local asset with a SELECT

* fix lint

* remove redundant COALESCE

* remove stack count from main timeline query

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-23 09:13:15 -05:00
Jason Rasmussen
92384c28de feat: sync auth user (#20067) 2025-07-23 09:59:33 -04:00
Jason Rasmussen
ab597155fa fix: immich-dev live reload (#20104) 2025-07-23 09:59:21 -04:00
Weblate (bot)
1d9cc4ca5f chore(web): update translations (#20082)
Co-authored-by: Alberto Serluca <alberto.ser11@gmail.com>
Co-authored-by: DevServs <bonov@mail.ru>
Co-authored-by: Florian Ostertag <florian.kuepper@gmail.com>
Co-authored-by: Gilbert <thengilbert@gmail.com>
Co-authored-by: Indrek Haav <indrek.haav@hotmail.com>
Co-authored-by: Jozef Gaal <preklady@mayday.sk>
Co-authored-by: KecskeTech <teonyitas@gmail.com>
Co-authored-by: Kuno Claes <kuno@icodes.dev>
Co-authored-by: MSDNicrosoft <wang3311835119@hotmail.com>
Co-authored-by: Matja┼╛ T <matjaz@moj-svet.si>
Co-authored-by: M─Бrti┼Ж┼б Bru┼Жenieks <martinsb@gmail.com>
Co-authored-by: Vegard Fladby <vegard@fladby.org>
Co-authored-by: adri1m64 <adrien.melle@laposte.net>
Co-authored-by: waclaw66 <waclaw66@seznam.cz>
2025-07-23 14:38:29 +01:00
shenlong
05d26dc683 fix: remove safe area from bottom bar (#20102)
* remove safe area from bottom bar

* fix: video not playing in search view

* stop foreground / background back on migration

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-23 08:23:49 -05:00
renovate[bot]
c91382625c fix(deps): update typescript-projects (#20103)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-07-23 13:26:28 +01:00
Alex
c7853fbe9d chore: refactor download group (#20099) 2025-07-23 04:21:58 +00:00
xCJPECKOVERx
1a70896113 feat(web): Remove from Stack (#19703)
* - add component
- update server's StackCreateDto for merge parameter
- Update stackRepo to only merge stacks when merge=true (default)
- update web action handlers to show stack changes

* - make open-api

* lint & format

* - Add proper icon to 'remove from stack'
- change web unstack icon to image-off-outline

* - cleanup

* - format & lint

* - make open-api: StackCreateDto merge optional

* initial addition of new endpoint

* remove stack endpoint

* - fix up remove stack endpoint
- open-api

* - Undo stackCreate merge parameter

* - open-api typescript

* open-api dart

* Tests:
- add tests
- update assetStub.imageFrom2015 to have required stack attributes to include it with tests

* update event name

* Fix event name in test

* remove asset_update check

* - merge stack.removeAsset params into one object
- refactor asset existence check (no need for asset fetch)
- fix tests

* Don't return updated stack

* Create specialized stack id & primary asset fetch for asset removal checks

* Correct new permission names

* make sql

* - fix open-api

* - cleanup
2025-07-22 22:17:06 -04:00
Alex
1011cdb376 chore: handle requeue upload when target albums changed (#20089)
* chore: handle requeue upload when target albums changed

* chore: remove debug
2025-07-22 17:11:06 -05:00
Sebastian Di Luzio
f1cac122ed fix: more inclusive language (#20092) 2025-07-22 21:29:36 +00:00
Brandon Wees
3c7f0a2900 chore(mobile): use hides instead of changing the namespace (#20090) 2025-07-22 16:02:52 -05:00
Brandon Wees
277e39ac98 fix(mobile): sync icon rotation direction (#20088)
spin the sync icon the right direction
2025-07-23 01:31:18 +05:30
renovate[bot]
b3061f1e4f fix(deps): update typescript-projects (#20086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-22 19:18:29 +01:00
renovate[bot]
250548dea6 fix(deps): update typescript-projects (#19939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2025-07-22 17:42:07 +00: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
1926 changed files with 128681 additions and 51578 deletions

View File

@@ -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:/data
- ${UPLOAD_LOCATION}/photos/upload:/data/upload
- /etc/localtime:/etc/localtime:ro
database:

View File

@@ -73,10 +73,8 @@ install_dependencies() {
log "Installing dependencies"
(
cd "${IMMICH_WORKSPACE}" || exit 1
run_cmd make ci-server
run_cmd make ci-sdk
run_cmd make build-sdk
run_cmd make ci-web
export CI=1 FROZEN=1 OFFLINE=1
run_cmd make setup-web-dev setup-server-dev
)
log ""
}

View File

@@ -13,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}:/data
- ${UPLOAD_LOCATION:-upload2-devcontainer-volume}${UPLOAD_LOCATION:+/photos/upload}:/data/upload
- /etc/localtime:/etc/localtime:ro
immich-web:
@@ -22,7 +22,7 @@ services:
immich-machine-learning:
env_file: !reset []
database:
env_file: !reset []
environment: !override
@@ -31,7 +31,7 @@ services:
POSTGRES_DB: ${DB_DATABASE_NAME-immich}
POSTGRES_INITDB_ARGS: '--data-checksums'
POSTGRES_HOST_AUTH_METHOD: md5
volumes:
volumes:
- ${UPLOAD_LOCATION:-postgres-devcontainer-volume}${UPLOAD_LOCATION:+/postgres}:/var/lib/postgresql/data
redis:

View File

@@ -1,37 +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
.gitattributes vendored
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

2
.github/.nvmrc vendored
View File

@@ -1 +1 @@
22.16.0
22.17.1

4
.github/.prettierignore vendored Normal file
View File

@@ -0,0 +1,4 @@
# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock

6
.github/package-lock.json generated vendored
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": {

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@395322a6cded4e9ed503aebd4cc1965625f8e59a # v2.20.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
flutter build apk --release --split-per-abi --target-platform android-arm,android-arm64,android-x64
else
flutter build apk --debug --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
- 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 }}

View File

@@ -50,7 +50,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
uses: github/codeql-action/init@4e828ff8d448a8a6e532957b1811f387a63867e8 # v3.29.4
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@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
uses: github/codeql-action/autobuild@4e828ff8d448a8a6e532957b1811f387a63867e8 # v3.29.4
# тД╣я╕П 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@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
uses: github/codeql-action/analyze@4e828ff8d448a8a6e532957b1811f387a63867e8 # v3.29.4
with:
category: '/language:${{matrix.language}}'

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

View File

@@ -18,7 +18,7 @@ jobs:
permissions:
contents: read
outputs:
should_run: ${{ steps.found_paths.outputs.docs == 'true' || steps.should_force.outputs.should_force == 'true' }}
should_run: ${{ steps.found_paths.outputs.docs == 'true' || steps.found_paths.outputs.open-api == 'true' || steps.should_force.outputs.should_force == 'true' }}
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
@@ -32,6 +32,8 @@ jobs:
- 'docs/**'
workflow:
- '.github/workflows/docs-build.yml'
open-api:
- 'open-api/immich-openapi-specs.json'
- name: Check if we should force jobs to run
id: should_force
run: echo "should_force=${{ steps.found_paths.outputs.workflow == 'true' || github.event_name == 'release' || github.ref_name == 'main' }}" >> "$GITHUB_OUTPUT"

13
.github/workflows/org-checks.yml vendored Normal file
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

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

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@395322a6cded4e9ed503aebd4cc1965625f8e59a # v2.20.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
@@ -92,25 +90,22 @@ jobs:
env:
CHANGED_FILES: ${{ steps.verify-changed-files.outputs.changed_files }}
run: |
echo "ERROR: Generated files not up to date! Run make_build inside the mobile directory"
echo "ERROR: Generated files not up to date! Run 'make build' and 'make pigeon' inside the mobile directory"
echo "Changed files: ${CHANGED_FILES}"
exit 1
- 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
run: make format
- 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 --fatal-style --fatal-warnings
working-directory: ./mobile
zizmor:
name: zizmor
@@ -134,7 +129,7 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload SARIF file
uses: github/codeql-action/upload-sarif@ce28f5bb42b7a9f2c824e633a3f6ee835bab6858 # v3.29.0
uses: github/codeql-action/upload-sarif@4e828ff8d448a8a6e532957b1811f387a63867e8 # v3.29.4
with:
sarif_file: results.sarif
category: zizmor

View File

@@ -516,7 +516,7 @@ jobs:
persist-credentials: false
- name: Setup Flutter SDK
uses: subosito/flutter-action@395322a6cded4e9ed503aebd4cc1965625f8e59a # v2.20.0
uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0
with:
channel: 'stable'
flutter-version-file: ./mobile/pubspec.yaml
@@ -609,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/**
@@ -668,7 +668,7 @@ jobs:
contents: read
services:
postgres:
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3@sha256:1f5583fe3397210a0fbc7f11b0cec18bacc4a99e3e8ea0548e9bd6bcf26ec37a
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3@sha256:ec713143dca1a426eba2e03707c319e2ec3cc9d304ef767f777f8e297dee820c
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres

View File

@@ -38,7 +38,7 @@ jobs:
exit 1
fi
- name: Find Pull Request
uses: juliangruber/find-pull-request-action@48b6133aa6c826f267ebd33aa2d29470f9d9e7d0 # v1.9.0
uses: juliangruber/find-pull-request-action@952b3bb1ddb2dcc0aa3479e98bb1c2d1a922f096 # v1.10.0
id: find-pr
with:
branch: chore/translations

1
.gitignore vendored
View File

@@ -24,3 +24,4 @@ mobile/android/fastlane/report.xml
mobile/ios/fastlane/report.xml
vite.config.js.timestamp-*
.pnpm-store

4
.vscode/launch.json vendored
View File

@@ -7,7 +7,7 @@
"restart": true,
"port": 9231,
"name": "Immich API Server",
"remoteRoot": "/usr/src/app",
"remoteRoot": "/usr/src/app/server",
"localRoot": "${workspaceFolder}/server"
},
{
@@ -16,7 +16,7 @@
"restart": true,
"port": 9230,
"name": "Immich Workers",
"remoteRoot": "/usr/src/app",
"remoteRoot": "/usr/src/app/server",
"localRoot": "${workspaceFolder}/server"
}
]

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:
@@ -83,7 +89,7 @@ test-medium-dev:
docker exec -it immich_server /bin/sh -c "npm run test:medium"
build-all: $(foreach M,$(filter-out e2e .github,$(MODULES)),build-$M) ;
install-all: $(foreach M,$(filter-out .github,$(MODULES)),install-$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) ;
@@ -93,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

View File

@@ -1 +1 @@
22.16.0
22.17.1

2
cli/bin/immich Executable file
View File

@@ -0,0 +1,2 @@
#!/usr/bin/env node
import '../dist/index.js';

571
cli/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,11 @@
{
"name": "@immich/cli",
"version": "2.2.72",
"version": "2.2.75",
"description": "Command Line Interface (CLI) for Immich",
"type": "module",
"exports": "./dist/index.js",
"bin": {
"immich": "dist/index.js"
"immich": "./bin/immich"
},
"license": "GNU Affero General Public License version 3",
"keywords": [
@@ -21,13 +21,13 @@
"@types/lodash-es": "^4.17.12",
"@types/micromatch": "^4.0.9",
"@types/mock-fs": "^4.13.1",
"@types/node": "^22.15.32",
"@types/node": "^22.16.5",
"@vitest/coverage-v8": "^3.0.0",
"byte-size": "^9.0.0",
"cli-progress": "^3.12.0",
"commander": "^12.0.0",
"eslint": "^9.14.0",
"eslint-config-prettier": "^10.0.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-unicorn": "^59.0.0",
"globals": "^16.0.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"
}
}

View File

@@ -2,37 +2,37 @@
# Manual edits may be lost in future updates.
provider "registry.opentofu.org/cloudflare/cloudflare" {
version = "4.52.0"
constraints = "4.52.0"
version = "4.52.1"
constraints = "4.52.1"
hashes = [
"h1:2BEJyXJtYC4B4nda/WCYUmuJYDaYk88F8t1pwPzr0iQ=",
"h1:4IASk5SESeWKQ7JU0+M7KApuF5mZyklvwMXPBabim3c=",
"h1:5ImZxxALSnWfH/4EXw/wFirSmk5Tr0ACmcysy51AafE=",
"h1:6TJ3dxLSin4ZKBJLsZDn95H2ZYnGm8S7GGHvvXuuMQU=",
"h1:IzTUjg9kQ4N3qizP9CjYLeHwjsuGgtxwXvfUQWyOLcA=",
"h1:NTaOQfYINA0YTG/V1/9+SYtgX1it63+cBugj4WK4FWc=",
"h1:PXH48LuJn329sCfMXprdMDk51EZaWFyajVvS03qhQLs=",
"h1:Pi5M+GeoMSN2eJ6QnIeXjBf19O+rby/74CfB2ocpv20=",
"h1:ShXZ2ZjBvm3thfoPPzPT8+OhyismnydQVkUAfI8X12w=",
"h1:WQ9hu0Wge2msBbODfottCSKgu8oKUrw4Opz+fDPVVHk=",
"h1:Z5yXML2DE0uH9UU+M0ut9JMQAORcwVZz1CxBHzeBmao=",
"h1:jqI2qKknpleS3JDSplyGYHMu0u9K/tor1ZOjFwDgEMk=",
"h1:kgfutDh14Q5nw4eg6qGFamFxIiY8Ae0FPKRBLDOzpcI=",
"h1:zCAO7GZmfYhWb+i6TfqlqhMeDyPZWGio2IzEzAh3YTs=",
"zh:19be1a91c982b902c42aba47766860dfa5dc151eed1e95fd39ca642229381ef0",
"zh:1de451c4d1ecf7efbe67b6dace3426ba810711afdd644b0f1b870364c8ae91f8",
"zh:352b4a2120173298622e669258744554339d959ac3a95607b117a48ee4a83238",
"zh:3c6f1346d9154afbd2d558fabb4b0150fc8d559aa961254144fe1bc17fe6032f",
"zh:4c4c92d53fb535b1e0eff26f222bbd627b97d3b4c891ec9c321268676d06152f",
"zh:53276f68006c9ceb7cdb10a6ccf91a5c1eadd1407a28edb5741e84e88d7e29e8",
"zh:7925a97773948171a63d4f65bb81ee92fd6d07a447e36012977313293a5435c9",
"zh:7dfb0a4496cfe032437386d0a2cd9229a1956e9c30bd920923c141b0f0440060",
"h1:2lHvafwGbLdmc9lYkuJFw3nsInaQjRpjX/JfIRKmq/M=",
"h1:596JomwjrtUrOSreq9NNCS+rj70+jOV+0pfja5MXiTI=",
"h1:7mBOA5TVAIt3qAwPXKCtE0RSYeqij9v30mnksuBbpEg=",
"h1:ELVgzh4kHKBCYdL+2A8JjWS0E1snLUN3Mmz3Vo6qSfw=",
"h1:FGGM5yLFf72g3kSXM3LAN64Gf/AkXr5WCmhixgnP+l4=",
"h1:JupkJbQALcIVoMhHImrLeLDsQR1ET7VJLGC7ONxjqGU=",
"h1:KsaE4JNq+1uV1nJsuTcYar/8lyY6zKS5UBEpfYg3wvc=",
"h1:NHZ5RJIzQDLhie/ykl3uI6UPfNQR9Lu5Ti7JPR6X904=",
"h1:NfAuMbn6LQPLDtJhbzO1MX9JMIGLMa8K6CpekvtsuX8=",
"h1:e+vNKokamDsp/kJvFr2pRudzwEz2r49iZ/oSggw+1LY=",
"h1:jnb4VdfNZ79I3yj7Q8x+JmOT+FxbfjjRfrF0dL0yCW8=",
"h1:kmF//O539d7NuHU7qIxDj7Wz4eJmLKFiI5glwQivldU=",
"h1:s6XriaKwOgV4jvKAGPXkrxhhOQxpNU5dceZwi9Z/1k8=",
"h1:wt3WBEBAeSGTlC9OlnTlAALxRiK4SQgLy0KgBIS7qzs=",
"zh:2fb95e1d3229b9b6c704e1a413c7481c60f139780d9641f657b6eb9b633b90f2",
"zh:379c7680983383862236e9e6e720c3114195c40526172188e88d0ffcf50dfe2e",
"zh:55533beb6cfc02d22ffda8cba8027bc2c841bb172cd637ed0d28323d41395f8f",
"zh:5abd70760e4eb1f37a1c307cbd2989ea7c9ba0afb93818c67c1d363a31f75703",
"zh:699f1c8cd66129176fe659ebf0e6337632a8967a28d2630b6ae5948665c0c2ae",
"zh:69c15acd73c451e89de6477059cda2f3ec200b48ae4b9ff3646c4d389fd3205e",
"zh:6e02b687de21b844f8266dff99e93e7c61fc8eb688f4bbb23803caceb251839e",
"zh:7a51d17b87ed87b7bebf2ad9fc7c3a74f16a1b44eee92c779c08eb89258c0496",
"zh:88ad84436837b0f55302f22748505972634e87400d6902260fd6b7ba1610f937",
"zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f",
"zh:8d4aa79f0a414bb4163d771063c70cd991c8fac6c766e685bac2ee12903c5bd6",
"zh:a67540c13565616a7e7e51ee9366e88b0dc60046e1d75c72680e150bd02725bb",
"zh:a936383a4767f5393f38f622e92bf2d0c03fe04b69c284951f27345766c7b31b",
"zh:d4887d73c466ff036eecf50ad6404ba38fd82ea4855296b1846d244b0f13c380",
"zh:e9093c8bd5b6cd99c81666e315197791781b8f93afa14fc2e0f732d1bb2a44b7",
"zh:efd3b3f1ec59a37f635aa1d4efcf178734c2fcf8ddb0d56ea690bec342da8672",
"zh:8d46c3d9f4f7ad20ac6ef01daa63f4e30a2d16dcb1bb5c7c7ee3dc6be38e9ca1",
"zh:913d64e72a4929dae1d4793e2004f4f9a58b138ea337d9d94fa35cafbf06550a",
"zh:c8d93cf86e2e49f6cec665cfe78b82c144cce15a8b2e30f343385fadd1251849",
"zh:cc4f69397d9bc34a528a5609a024c3a48f54f21616c0008792dd417297add955",
"zh:df99cdb8b064aad35ffea77e645cf6541d0b1b2ebc51b6d26c42031de60ab69e",
]
}

View File

@@ -5,7 +5,7 @@ terraform {
required_providers {
cloudflare = {
source = "cloudflare/cloudflare"
version = "4.52.0"
version = "4.52.1"
}
}
}

View File

@@ -2,37 +2,37 @@
# Manual edits may be lost in future updates.
provider "registry.opentofu.org/cloudflare/cloudflare" {
version = "4.52.0"
constraints = "4.52.0"
version = "4.52.1"
constraints = "4.52.1"
hashes = [
"h1:2BEJyXJtYC4B4nda/WCYUmuJYDaYk88F8t1pwPzr0iQ=",
"h1:4IASk5SESeWKQ7JU0+M7KApuF5mZyklvwMXPBabim3c=",
"h1:5ImZxxALSnWfH/4EXw/wFirSmk5Tr0ACmcysy51AafE=",
"h1:6TJ3dxLSin4ZKBJLsZDn95H2ZYnGm8S7GGHvvXuuMQU=",
"h1:IzTUjg9kQ4N3qizP9CjYLeHwjsuGgtxwXvfUQWyOLcA=",
"h1:NTaOQfYINA0YTG/V1/9+SYtgX1it63+cBugj4WK4FWc=",
"h1:PXH48LuJn329sCfMXprdMDk51EZaWFyajVvS03qhQLs=",
"h1:Pi5M+GeoMSN2eJ6QnIeXjBf19O+rby/74CfB2ocpv20=",
"h1:ShXZ2ZjBvm3thfoPPzPT8+OhyismnydQVkUAfI8X12w=",
"h1:WQ9hu0Wge2msBbODfottCSKgu8oKUrw4Opz+fDPVVHk=",
"h1:Z5yXML2DE0uH9UU+M0ut9JMQAORcwVZz1CxBHzeBmao=",
"h1:jqI2qKknpleS3JDSplyGYHMu0u9K/tor1ZOjFwDgEMk=",
"h1:kgfutDh14Q5nw4eg6qGFamFxIiY8Ae0FPKRBLDOzpcI=",
"h1:zCAO7GZmfYhWb+i6TfqlqhMeDyPZWGio2IzEzAh3YTs=",
"zh:19be1a91c982b902c42aba47766860dfa5dc151eed1e95fd39ca642229381ef0",
"zh:1de451c4d1ecf7efbe67b6dace3426ba810711afdd644b0f1b870364c8ae91f8",
"zh:352b4a2120173298622e669258744554339d959ac3a95607b117a48ee4a83238",
"zh:3c6f1346d9154afbd2d558fabb4b0150fc8d559aa961254144fe1bc17fe6032f",
"zh:4c4c92d53fb535b1e0eff26f222bbd627b97d3b4c891ec9c321268676d06152f",
"zh:53276f68006c9ceb7cdb10a6ccf91a5c1eadd1407a28edb5741e84e88d7e29e8",
"zh:7925a97773948171a63d4f65bb81ee92fd6d07a447e36012977313293a5435c9",
"zh:7dfb0a4496cfe032437386d0a2cd9229a1956e9c30bd920923c141b0f0440060",
"h1:2lHvafwGbLdmc9lYkuJFw3nsInaQjRpjX/JfIRKmq/M=",
"h1:596JomwjrtUrOSreq9NNCS+rj70+jOV+0pfja5MXiTI=",
"h1:7mBOA5TVAIt3qAwPXKCtE0RSYeqij9v30mnksuBbpEg=",
"h1:ELVgzh4kHKBCYdL+2A8JjWS0E1snLUN3Mmz3Vo6qSfw=",
"h1:FGGM5yLFf72g3kSXM3LAN64Gf/AkXr5WCmhixgnP+l4=",
"h1:JupkJbQALcIVoMhHImrLeLDsQR1ET7VJLGC7ONxjqGU=",
"h1:KsaE4JNq+1uV1nJsuTcYar/8lyY6zKS5UBEpfYg3wvc=",
"h1:NHZ5RJIzQDLhie/ykl3uI6UPfNQR9Lu5Ti7JPR6X904=",
"h1:NfAuMbn6LQPLDtJhbzO1MX9JMIGLMa8K6CpekvtsuX8=",
"h1:e+vNKokamDsp/kJvFr2pRudzwEz2r49iZ/oSggw+1LY=",
"h1:jnb4VdfNZ79I3yj7Q8x+JmOT+FxbfjjRfrF0dL0yCW8=",
"h1:kmF//O539d7NuHU7qIxDj7Wz4eJmLKFiI5glwQivldU=",
"h1:s6XriaKwOgV4jvKAGPXkrxhhOQxpNU5dceZwi9Z/1k8=",
"h1:wt3WBEBAeSGTlC9OlnTlAALxRiK4SQgLy0KgBIS7qzs=",
"zh:2fb95e1d3229b9b6c704e1a413c7481c60f139780d9641f657b6eb9b633b90f2",
"zh:379c7680983383862236e9e6e720c3114195c40526172188e88d0ffcf50dfe2e",
"zh:55533beb6cfc02d22ffda8cba8027bc2c841bb172cd637ed0d28323d41395f8f",
"zh:5abd70760e4eb1f37a1c307cbd2989ea7c9ba0afb93818c67c1d363a31f75703",
"zh:699f1c8cd66129176fe659ebf0e6337632a8967a28d2630b6ae5948665c0c2ae",
"zh:69c15acd73c451e89de6477059cda2f3ec200b48ae4b9ff3646c4d389fd3205e",
"zh:6e02b687de21b844f8266dff99e93e7c61fc8eb688f4bbb23803caceb251839e",
"zh:7a51d17b87ed87b7bebf2ad9fc7c3a74f16a1b44eee92c779c08eb89258c0496",
"zh:88ad84436837b0f55302f22748505972634e87400d6902260fd6b7ba1610f937",
"zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f",
"zh:8d4aa79f0a414bb4163d771063c70cd991c8fac6c766e685bac2ee12903c5bd6",
"zh:a67540c13565616a7e7e51ee9366e88b0dc60046e1d75c72680e150bd02725bb",
"zh:a936383a4767f5393f38f622e92bf2d0c03fe04b69c284951f27345766c7b31b",
"zh:d4887d73c466ff036eecf50ad6404ba38fd82ea4855296b1846d244b0f13c380",
"zh:e9093c8bd5b6cd99c81666e315197791781b8f93afa14fc2e0f732d1bb2a44b7",
"zh:efd3b3f1ec59a37f635aa1d4efcf178734c2fcf8ddb0d56ea690bec342da8672",
"zh:8d46c3d9f4f7ad20ac6ef01daa63f4e30a2d16dcb1bb5c7c7ee3dc6be38e9ca1",
"zh:913d64e72a4929dae1d4793e2004f4f9a58b138ea337d9d94fa35cafbf06550a",
"zh:c8d93cf86e2e49f6cec665cfe78b82c144cce15a8b2e30f343385fadd1251849",
"zh:cc4f69397d9bc34a528a5609a024c3a48f54f21616c0008792dd417297add955",
"zh:df99cdb8b064aad35ffea77e645cf6541d0b1b2ebc51b6d26c42031de60ab69e",
]
}

View File

@@ -5,7 +5,7 @@ terraform {
required_providers {
cloudflare = {
source = "cloudflare/cloudflare"
version = "4.52.0"
version = "4.52.1"
}
}
}

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
- ${UPLOAD_LOCATION}/photos:/usr/src/app/upload
- ${UPLOAD_LOCATION}/photos/upload:/usr/src/app/upload/upload
- /usr/src/app/node_modules
- ../server:/usr/src/app/server
- ../open-api:/usr/src/app/open-api
- ${UPLOAD_LOCATION}/photos:/data
- ${UPLOAD_LOCATION}/photos/upload:/data/upload
- /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@sha256:5f6a838e4e44c8e0e019d0ebfe3ee8952b69afc2809b2c25f7b0119641978e91
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:32324a2f41df5de9efe1af166b7008c3f55646f8d0e00d9550c16c9822366b4a
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

View File

@@ -20,7 +20,7 @@ services:
context: ../
dockerfile: server/Dockerfile
volumes:
- ${UPLOAD_LOCATION}/photos:/usr/src/app/upload
- ${UPLOAD_LOCATION}/photos:/data
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
@@ -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@sha256:5f6a838e4e44c8e0e019d0ebfe3ee8952b69afc2809b2c25f7b0119641978e91
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:32324a2f41df5de9efe1af166b7008c3f55646f8d0e00d9550c16c9822366b4a
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

View File

@@ -18,7 +18,7 @@ services:
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- ${UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
env_file:
- .env
@@ -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@sha256:5f6a838e4e44c8e0e019d0ebfe3ee8952b69afc2809b2c25f7b0119641978e91
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:32324a2f41df5de9efe1af166b7008c3f55646f8d0e00d9550c16c9822366b4a
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:

View File

@@ -1 +1 @@
22.16.0
22.17.1

View File

@@ -180,7 +180,7 @@ services:
...
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- ${UPLOAD_LOCATION}:/data
- /etc/localtime:/etc/localtime:ro
+ - originals:/usr/src/app/originals
...
@@ -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`:

View File

@@ -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

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.
:::

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,8 +62,9 @@ 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) |
| Default Storage Quota (GiB) | number | 0 | Default quota for user without storage quota claim (empty for unlimited quota) |
| Button Text | string | Login with OAuth | Text for the OAuth button on the web |
| Auto Register | boolean | true | When true, will automatically register a user the first time they sign in |
| [Auto Launch](#auto-launch) | boolean | false | When true, will skip the login page and automatically start the OAuth login process |
@@ -111,6 +106,89 @@ Immich has a route (`/api/oauth/mobile-redirect`) that is already configured to
## Example Configuration
<details>
<summary>Authelia Example</summary>
### Authelia Example
Here's an example of OAuth configured for Authelia:
This assumes there exist an attribute `immichquota` in the user schema, which is used to set the user's storage quota in Immich.
The configuration concerning the quota is optional.
```yaml
authentication_backend:
ldap:
# The LDAP server configuration goes here.
# See: https://www.authelia.com/c/ldap
attributes:
extra:
immichquota: # The attribute name from LDAP
name: 'immich_quota'
multi_valued: false
value_type: 'integer'
identity_providers:
oidc:
## The other portions of the mandatory OpenID Connect 1.0 configuration go here.
## See: https://www.authelia.com/c/oidc
claims_policies:
immich_policy:
custom_claims:
immich_quota:
attribute: 'immich_quota'
scopes:
immich_scope:
claims:
- 'immich_quota'
clients:
- client_id: 'immich'
client_name: 'Immich'
# https://www.authelia.com/integration/openid-connect/frequently-asked-questions/#how-do-i-generate-a-client-identifier-or-client-secret
client_secret: $pbkdf2-sha512$310000$c8p78n7pUMln0jzvd4aK4Q$JNRBzwAo0ek5qKn50cFzzvE9RXV88h1wJn5KGiHrD0YKtZaR/nCb2CJPOsKaPK0hjf.9yHxzQGZziziccp6Yng'
public: false
require_pkce: false
redirect_uris:
- 'https://example.immich.app/auth/login'
- 'https://example.immich.app/user-settings'
- 'app.immich:///oauth-callback'
scopes:
- 'openid'
- 'profile'
- 'email'
- 'immich_scope'
claims_policy: 'immich_policy'
response_types:
- 'code'
grant_types:
- 'authorization_code'
id_token_signed_response_alg: 'RS256'
userinfo_signed_response_alg: 'RS256'
token_endpoint_auth_method: 'client_secret_post'
```
Configuration of OAuth in Immich System Settings
| Setting | Value |
| ---------------------------------- | ------------------------------------------------------------------- |
| Issuer URL | `https://example.immich.app/.well-known/openid-configuration` |
| Client ID | immich |
| Client Secret | 0v89FXkQOWO\***\*\*\*\*\***\*\*\***\*\*\*\*\***mprbvXD549HH6s1iw... |
| Token Endpoint Auth Method | client_secret_post |
| Scope | openid email profile immich_scope |
| ID Token Signed Response Algorithm | RS256 |
| Userinfo Signed Response Algorithm | RS256 |
| Storage Label Claim | uid |
| Storage Quota Claim | immich_quota |
| Default Storage Quota (GiB) | 0 (empty for unlimited quota) |
| Button Text | Sign in with Authelia (optional) |
| Auto Register | Enabled (optional) |
| Auto Launch | Enabled (optional) |
| Mobile Redirect URI Override | Disable |
| Mobile Redirect URI | |
</details>
<details>
<summary>Authentik Example</summary>
@@ -133,7 +211,7 @@ Configuration of OAuth in Immich System Settings
| Signing Algorithm | RS256 |
| Storage Label Claim | preferred_username |
| Storage Quota Claim | immich_quota |
| Default Storage Quota (GiB) | 0 (0 for unlimited quota) |
| Default Storage Quota (GiB) | 0 (empty for unlimited quota) |
| Button Text | Sign in with Authentik (optional) |
| Auto Register | Enabled (optional) |
| Auto Launch | Enabled (optional) |
@@ -164,7 +242,7 @@ Configuration of OAuth in Immich System Settings
| Signing Algorithm | RS256 |
| Storage Label Claim | preferred_username |
| Storage Quota Claim | immich_quota |
| Default Storage Quota (GiB) | 0 (0 for unlimited quota) |
| Default Storage Quota (GiB) | 0 (empty for unlimited quota) |
| Button Text | Sign in with Google (optional) |
| Auto Register | Enabled (optional) |
| Auto Launch | Enabled |

View File

@@ -2,16 +2,17 @@
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 |
| `enable-password-login` | Enable password login |
| `enable-oauth-login` | Enable OAuth login |
| `disable-oauth-login` | Disable OAuth login |
| `list-users` | List Immich users |
| `version` | Print Immich version |
| Command | Description |
| ------------------------ | ------------------------------------------------------------- |
| `help` | Display help |
| `reset-admin-password` | Reset the password for the admin user |
| `disable-password-login` | Disable password login |
| `enable-password-login` | Enable password login |
| `enable-oauth-login` | Enable OAuth login |
| `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,21 @@ 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: /data
? Enter the new value of IMMICH_MEDIA_LOCATION: /my-data
...
Previous value: /data
Current value: /my-data
Changing database paths from "/data/*" to "/my-data/*"
? Do you want to proceed? [Y/n] y
Database file paths updated successfully! ЁЯОЙ
...
```

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

View File

@@ -38,6 +38,19 @@ Run all server checks with `npm run check:all`
You can use `npm run __:fix` to potentially correct some issues automatically for `npm run format` and `lint`.
:::
## Mobile Checks
The following commands must be executed from within the mobile app directory of the codebase.
- [ ] `make build` (auto-generate files using build_runner)
- [ ] `make analyze` (static analysis via Dart Analyzer and DCM)
- [ ] `make format` (formatting via Dart Formatter)
- [ ] `make test` (unit tests)
:::info Auto Fix
You can use `dart fix --apply` and `dcm fix lib` to potentially correct some issues automatically for `make analyze`.
:::
## OpenAPI
The OpenAPI client libraries need to be regenerated whenever there are changes to the `immich-openapi-specs.json` file. Note that you should not modify this file directly as it is auto-generated. See [OpenAPI](/docs/developer/open-api.md) for more details.

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

View File

@@ -56,9 +56,9 @@ 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.
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](#set-custom-scan-interval) to pull in your changes.
#### Troubleshooting
@@ -72,7 +72,9 @@ In rare cases, the library watcher can hang, preventing Immich from starting up.
### Nightly job
There is an automatic scan job that is scheduled to run once a day. This job also cleans up any libraries stuck in deletion. It is possible to trigger the cleanup by clicking "Scan all libraries" in the library management page.
There is an automatic scan job that is scheduled to run once a day. Its schedule is configurable, see [Set Custom Scan Interval](#set-custom-scan-interval).
This job also cleans up any libraries stuck in deletion. It is possible to trigger the cleanup by clicking "Scan all libraries" in the library management page.
## Usage
@@ -91,7 +93,7 @@ The `immich-server` container will need access to the gallery. Modify your docke
```diff title="docker-compose.yml"
immich-server:
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- ${UPLOAD_LOCATION}:/data
+ - /mnt/nas/christmas-trip:/mnt/media/christmas-trip:ro
+ - /home/user/old-pics:/mnt/media/old-pics:ro
+ - /mnt/media/videos:/mnt/media/videos:ro
@@ -112,7 +114,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 +161,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 +171,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' />

View File

@@ -88,9 +88,9 @@ It will only reflect files you add.
:::
If the same asset is in more than one album it will only sync to the first album it's in, after that it won't sync again even if the user clicks sync albums manually.
To overcome this limitation, the files must be removed from the blacklist by
To overcome this limitation, the files must be removed from the ignore list by
App settings -> Advanced -> Duplicate Assets -> Clear
:::info
Cleaning duplicate assets from the list will cause all the previously uploaded duplicate files to be re-uploaded, the files will not actually be uploaded and will be rejected on the server side (due to duplication) but will be synchronized to the album and at the end will be added to the black list again at the end of the synchronization.
Cleaning duplicate assets from the list will cause all the previously uploaded duplicate files to be re-uploaded, the files will not actually be uploaded and will be rejected on the server side (due to duplication) but will be synchronized to the album and at the end will be added to the ignore list again at the end of the synchronization.
:::

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 |

View File

@@ -27,11 +27,11 @@ After defining the locations of these files, we will edit the `docker-compose.ym
services:
immich-server:
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
+ - ${THUMB_LOCATION}:/usr/src/app/upload/thumbs
+ - ${ENCODED_VIDEO_LOCATION}:/usr/src/app/upload/encoded-video
+ - ${PROFILE_LOCATION}:/usr/src/app/upload/profile
+ - ${BACKUP_LOCATION}:/usr/src/app/upload/backups
- ${UPLOAD_LOCATION}:/data
+ - ${THUMB_LOCATION}:/data/thumbs
+ - ${ENCODED_VIDEO_LOCATION}:/data/encoded-video
+ - ${PROFILE_LOCATION}:/data/profile
+ - ${BACKUP_LOCATION}:/data/backups
- /etc/localtime:/etc/localtime:ro
```
@@ -44,7 +44,7 @@ docker compose up -d
:::note
Because of the underlying properties of docker bind mounts, it is not recommended to mount the `upload/` and `library/` folders as separate bind mounts if they are on the same device.
For this reason, we mount the HDD or the network storage (NAS) to `/usr/src/app/upload` and then mount the folders we want to access under that folder.
For this reason, we mount the HDD or the network storage (NAS) to `/data` and then mount the folders we want to access under that folder.
The `thumbs/` folder contains both the small thumbnails displayed in the timeline and the larger previews shown when clicking into an image. These cannot be separated.

View File

@@ -12,118 +12,148 @@ Run `docker exec -it immich_postgres psql --dbname=<DB_DATABASE_NAME> --username
## Assets
### Name
:::note
The `"originalFileName"` column is the name of the file at time of upload, including the extension.
:::
```sql title="Find by original filename"
SELECT * FROM "assets" WHERE "originalFileName" = 'PXL_20230903_232542848.jpg';
SELECT * FROM "assets" WHERE "originalFileName" LIKE 'PXL_%'; -- all files starting with PXL_
SELECT * FROM "assets" WHERE "originalFileName" LIKE '%_2023_%'; -- all files with _2023_ in the middle
SELECT * FROM "asset" WHERE "originalFileName" = 'PXL_20230903_232542848.jpg';
SELECT * FROM "asset" WHERE "originalFileName" LIKE 'PXL_%'; -- all files starting with PXL_
SELECT * FROM "asset" WHERE "originalFileName" LIKE '%_2023_%'; -- all files with _2023_ in the middle
```
```sql title="Find by path"
SELECT * FROM "assets" WHERE "originalPath" = 'upload/library/admin/2023/2023-09-03/PXL_2023.jpg';
SELECT * FROM "assets" WHERE "originalPath" LIKE 'upload/library/admin/2023/%';
SELECT * FROM "asset" WHERE "originalPath" = 'upload/library/admin/2023/2023-09-03/PXL_2023.jpg';
SELECT * FROM "asset" WHERE "originalPath" LIKE 'upload/library/admin/2023/%';
```
### ID
```sql title="Find by ID"
SELECT * FROM "assets" WHERE "id" = '9f94e60f-65b6-47b7-ae44-a4df7b57f0e9';
SELECT * FROM "asset" WHERE "id" = '9f94e60f-65b6-47b7-ae44-a4df7b57f0e9';
```
```sql title="Find by partial ID"
SELECT * FROM "assets" WHERE "id"::text LIKE '%ab431d3a%';
SELECT * FROM "asset" WHERE "id"::text LIKE '%ab431d3a%';
```
### Checksum
:::note
You can calculate the checksum for a particular file by using the command `sha1sum <filename>`.
:::
```sql title="Find by checksum (SHA-1)"
SELECT encode("checksum", 'hex') FROM "assets";
SELECT * FROM "assets" WHERE "checksum" = decode('69de19c87658c4c15d9cacb9967b8e033bf74dd1', 'hex');
SELECT * FROM "assets" WHERE "checksum" = '\x69de19c87658c4c15d9cacb9967b8e033bf74dd1'; -- alternate notation
SELECT encode("checksum", 'hex') FROM "asset";
SELECT * FROM "asset" WHERE "checksum" = decode('69de19c87658c4c15d9cacb9967b8e033bf74dd1', 'hex');
SELECT * FROM "asset" WHERE "checksum" = '\x69de19c87658c4c15d9cacb9967b8e033bf74dd1'; -- alternate notation
```
```sql title="Find duplicate assets with identical checksum (SHA-1) (excluding trashed files)"
SELECT T1."checksum", array_agg(T2."id") ids FROM "assets" T1
INNER JOIN "assets" T2 ON T1."checksum" = T2."checksum" AND T1."id" != T2."id" AND T2."deletedAt" IS NULL
SELECT T1."checksum", array_agg(T2."id") ids FROM "asset" T1
INNER JOIN "asset" T2 ON T1."checksum" = T2."checksum" AND T1."id" != T2."id" AND T2."deletedAt" IS NULL
WHERE T1."deletedAt" IS NULL GROUP BY T1."checksum";
```
### Metadata
```sql title="Live photos"
SELECT * FROM "assets" WHERE "livePhotoVideoId" IS NOT NULL;
SELECT * FROM "asset" WHERE "livePhotoVideoId" IS NOT NULL;
```
```sql title="By description"
SELECT "assets".*, "exif"."description" FROM "exif"
JOIN "assets" ON "assets"."id" = "exif"."assetId"
WHERE TRIM("exif"."description") <> ''; -- all files with a description
SELECT "assets".*, "exif"."description" FROM "exif"
JOIN "assets" ON "assets"."id" = "exif"."assetId"
WHERE "exif"."description" ILIKE '%string to match%'; -- search by string
SELECT "asset".*, "asset_exif"."description" FROM "asset_exif"
JOIN "asset" ON "asset"."id" = "asset_exif"."assetId"
WHERE TRIM("asset_exif"."description") <> ''; -- all files with a description
SELECT "asset".*, "asset_exif"."description" FROM "asset_exif"
JOIN "asset" ON "asset"."id" = "asset_exif"."assetId"
WHERE "asset_exif"."description" ILIKE '%string to match%'; -- search by string
```
```sql title="Without metadata"
SELECT "assets".* FROM "exif"
LEFT JOIN "assets" ON "assets"."id" = "exif"."assetId"
WHERE "exif"."assetId" IS NULL;
SELECT "asset".* FROM "asset_exif"
LEFT JOIN "asset" ON "asset"."id" = "asset_exif"."assetId"
WHERE "asset_exif"."assetId" IS NULL;
```
```sql title="size < 100,000 bytes, smallest to largest"
SELECT * FROM "assets"
JOIN "exif" ON "assets"."id" = "exif"."assetId"
WHERE "exif"."fileSizeInByte" < 100000
ORDER BY "exif"."fileSizeInByte" ASC;
SELECT * FROM "asset"
JOIN "asset_exif" ON "asset"."id" = "asset_exif"."assetId"
WHERE "asset_exif"."fileSizeInByte" < 100000
ORDER BY "asset_exif"."fileSizeInByte" ASC;
```
```sql title="Without thumbnails"
SELECT * FROM "assets" WHERE "assets"."previewPath" IS NULL OR "assets"."thumbnailPath" IS NULL;
```
### Type
```sql title="By type"
SELECT * FROM "assets" WHERE "assets"."type" = 'VIDEO';
SELECT * FROM "assets" WHERE "assets"."type" = 'IMAGE';
SELECT * FROM "asset" WHERE "asset"."type" = 'VIDEO';
SELECT * FROM "asset" WHERE "asset"."type" = 'IMAGE';
```
```sql title="Count by type"
SELECT "assets"."type", COUNT(*) FROM "assets" GROUP BY "assets"."type";
SELECT "asset"."type", COUNT(*) FROM "asset" GROUP BY "asset"."type";
```
```sql title="Count by type (per user)"
SELECT "users"."email", "assets"."type", COUNT(*) FROM "assets"
JOIN "users" ON "assets"."ownerId" = "users"."id"
GROUP BY "assets"."type", "users"."email" ORDER BY "users"."email";
SELECT "user"."email", "asset"."type", COUNT(*) FROM "asset"
JOIN "user" ON "asset"."ownerId" = "user"."id"
GROUP BY "asset"."type", "user"."email" ORDER BY "user"."email";
```
```sql title="Failed file movements"
SELECT * FROM "move_history";
## Tags
```sql title="Count by tag"
SELECT "t"."value" AS "tag_name", COUNT(*) AS "number_assets" FROM "tag" "t"
JOIN "tag_asset" "ta" ON "t"."id" = "ta"."tagsId" JOIN "asset" "a" ON "ta"."assetsId" = "a"."id"
WHERE "a"."visibility" != 'hidden'
GROUP BY "t"."value" ORDER BY "number_assets" DESC;
```
```sql title="Count by tag (per user)"
SELECT "t"."value" AS "tag_name", "u"."email" as "user_email", COUNT(*) AS "number_assets" FROM "tag" "t"
JOIN "tag_asset" "ta" ON "t"."id" = "ta"."tagsId" JOIN "asset" "a" ON "ta"."assetsId" = "a"."id" JOIN "user" "u" ON "a"."ownerId" = "u"."id"
WHERE "a"."visibility" != 'hidden'
GROUP BY "t"."value", "u"."email" ORDER BY "number_assets" DESC;
```
## Users
```sql title="List all users"
SELECT * FROM "users";
SELECT * FROM "user";
```
```sql title="Get owner info from asset ID"
SELECT "users".* FROM "users" JOIN "assets" ON "users"."id" = "assets"."ownerId" WHERE "assets"."id" = 'fa310b01-2f26-4b7a-9042-d578226e021f';
SELECT "user".* FROM "user" JOIN "asset" ON "user"."id" = "asset"."ownerId" WHERE "asset"."id" = 'fa310b01-2f26-4b7a-9042-d578226e021f';
```
## System Config
```sql title="Custom settings"
SELECT "key", "value" FROM "system_metadata" WHERE "key" = 'system-config';
```
(Only used when not using the [config file](/docs/install/config-file))
## Persons
```sql title="Delete person and unset it for the faces it was associated with"
DELETE FROM "person" WHERE "name" = 'PersonNameHere';
```
## System
### Config
```sql title="Custom settings"
SELECT "key", "value" FROM "system_metadata" WHERE "key" = 'system-config';
```
(Only used when not using the [config file](/docs/install/config-file))
### File properties
```sql title="Without thumbnails"
SELECT * FROM "asset" WHERE "asset"."previewPath" IS NULL OR "asset"."thumbnailPath" IS NULL;
```
```sql title="Failed file movements"
SELECT * FROM "move_history";
```
## Postgres internal
```sql title="Change DB_PASSWORD"

View File

@@ -12,7 +12,7 @@ If you want Immich to be able to delete the images in the external library or ad
```diff
immich-server:
volumes:
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- ${UPLOAD_LOCATION}:/data
+ - /home/user/photos1:/home/user/photos1:ro
+ - /mnt/photos2:/mnt/photos2:ro # you can delete this line if you only have one mount point, or you can add more lines if you have more than two
```
@@ -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

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/

View File

@@ -34,7 +34,7 @@ These environment variables are used by the `docker-compose.yml` file and do **N
| `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>тЪая╕П | `/data` | 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 | |
@@ -49,9 +49,6 @@ These environment variables are used by the `docker-compose.yml` file and do **N
\*2: This path is where the Immich code looks for the files, which is internal to the docker container. Setting it to a path on your host will certainly break things, you should use the `UPLOAD_LOCATION` variable instead.
\*3: With the default `WORKDIR` of `/usr/src/app`, this path will resolve to `/usr/src/app/upload`.
It only needs to be set if the Immich deployment method is changing.
## Workers
| Variable | Description | Default | Containers |
@@ -72,22 +69,25 @@ 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 |
| `DB_USERNAME` | Database user | `postgres` | server, database<sup>\*1</sup> |
| `DB_PASSWORD` | Database password | `postgres` | server, database<sup>\*1</sup> |
| `DB_DATABASE_NAME` | Database name | `immich` | server, database<sup>\*1</sup> |
| `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 |
| Variable | Description | Default | Containers |
| :---------------------------------- | :------------------------------------------------------------------------------------- | :--------: | :----------------------------- |
| `DB_URL` | Database URL | | server |
| `DB_HOSTNAME` | Database host | `database` | server |
| `DB_PORT` | Database port | `5432` | server |
| `DB_USERNAME` | Database user | `postgres` | server, database<sup>\*1</sup> |
| `DB_PASSWORD` | Database password | `postgres` | server, database<sup>\*1</sup> |
| `DB_DATABASE_NAME` | Database name | `immich` | server, database<sup>\*1</sup> |
| `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`.
@@ -199,12 +199,11 @@ Additional machine learning parameters can be tuned from the admin UI.
| `IMMICH_TELEMETRY_INCLUDE` | Collect these telemetries. List of `host`, `api`, `io`, `repo`, `job`. Note: You can also specify `all` to enable all | | server | api, microservices |
| `IMMICH_TELEMETRY_EXCLUDE` | Do not collect these telemetries. List of `host`, `api`, `io`, `repo`, `job` | | server | api, microservices |
## Docker Secrets
## Secrets
The following variables support the use of [Docker secrets][docker-secrets] for additional security.
The following variables support reading from files, either via [Systemd Credentials][systemd-creds] or [Docker secrets][docker-secrets] for additional security.
To use any of these, replace the regular environment variable with the equivalent `_FILE` environment variable. The value of
the `_FILE` variable should be set to the path of a file containing the variable value.
To use any of these, either set `CREDENTIALS_DIRECTORY` to a directory that contains files whose name is the тАЬregular variableтАЭ name, and whose content is the secret. If using Docker Secrets, setting `CREDENTIALS_DIRECTORY=/run/secrets` will cause all secrets present to be used. Alternatively, replace the regular variable with the equivalent `_FILE` environment variable as below. The value of the `_FILE` variable should be set to the path of a file containing the variable value.
| Regular Variable | Equivalent Docker Secrets '\_FILE' Variable |
| :----------------- | :------------------------------------------ |
@@ -226,3 +225,4 @@ to use a Docker secret for the password in the Redis container.
[docker-secrets-docs]: https://github.com/docker-library/docs/tree/master/postgres#docker-secrets
[docker-secrets]: https://docs.docker.com/engine/swarm/secrets/
[ioredis]: https://ioredis.readthedocs.io/en/latest/README/#connect-to-redis
[systemd-creds]: https://systemd.io/CREDENTIALS/

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.

1533
docs/package-lock.json generated

File diff suppressed because it is too large Load Diff

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"
}
}

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 {

View File

@@ -100,6 +100,11 @@ const projects: CommunityProjectProps[] = [
description: 'Automatically optimize files uploaded to Immich in order to save storage space',
url: 'https://github.com/miguelangel-nubla/immich-upload-optimizer',
},
{
title: 'Immich Machine Learning Load Balancer',
description: 'Speed up your machine learning by load balancing your requests to multiple computers',
url: 'https://github.com/apetersson/immich_ml_balancer',
},
];
function CommunityProject({ title, description, url }: CommunityProjectProps): JSX.Element {

View File

@@ -2,4 +2,23 @@
## TypeORM Upgrade
The upgrade to Immich `v2.x.x` has a required upgrade path to `v1.132.0+`. This means it is required to start up the application at least once on version `1.132.0` (or later). Doing so will complete database schema upgrades that are required for `v2.0.0`. After Immich has successfully booted on this version, shut the system down and try the `v2.x.x` upgrade again.
In order to update to Immich to `v1.137.0` (or above), the application must be started at least once on a version in the range between `1.132.0` and `1.136.0`. Doing so will complete database schema upgrades that are required for `v1.137.0` (and above). After Immich has successfully updated to a version in this range, you can now attempt to update to v1.137.0 (or above). We recommend users upgrade to `1.132.0` since it does not have any other breaking changes.
## Inconsistent Media Location
:::caution
This error is related to the location of media files _inside the container_. Never move files on the host system when you run into this error message.
:::
Immich automatically tries to detect where your Immich data is located. On start up, it compares the detected media location with the file paths in the database and throws an Inconsistent Media Location error when they do not match.
To fix this issue, verify that the `IMMICH_MEDIA_LOCATION` environment variable and `UPLOAD_LOCATION` volume mount are in sync with the database paths.
If you would like to migrate from one media location to another, simply successfully start Immich on `v1.136.0` or later, then do the following steps:
1. Stop Immich
2. Update `IMMICH_MEDIA_LOCATION` to the new location
3. Update the right-hand side of the `UPLOAD_LOCATION` volume mount to the new location
4. Start up Immich
After version `1.136.0`, Immich can detect when a media location has moved and will automatically update the database paths to keep them in sync.

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,

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
@@ -30,4 +31,4 @@
/docs/guides/api-album-sync /docs/community-projects 307
/docs/guides/remove-offline-files /docs/community-projects 307
/milestones /roadmap 307
/docs/overview/introduction /docs/overview/welcome 307
/docs/overview/introduction /docs/overview/welcome 307

View File

@@ -1,4 +1,16 @@
[
{
"label": "v1.137.1",
"url": "https://v1.137.1.archive.immich.app"
},
{
"label": "v1.137.0",
"url": "https://v1.137.0.archive.immich.app"
},
{
"label": "v1.136.0",
"url": "https://v1.136.0.archive.immich.app"
},
{
"label": "v1.135.3",
"url": "https://v1.135.3.archive.immich.app"

View File

@@ -1 +1 @@
22.16.0
22.17.1

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:3aef84a0a4fabbda17ef115c3019ba0c914ec73e9f6e59203674322d858b8eea
image: ghcr.io/immich-app/postgres:14-vectorchord0.3.0@sha256:0e763a2383d56f90364fcd72767ac41400cd30d2627f407f7e7960c9f1923c21
command: -c fsync=off -c shared_preload_libraries=vchord.so -c config_file=/var/lib/postgresql/data/postgresql.conf
environment:
POSTGRES_PASSWORD: postgres

1323
e2e/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "immich-e2e",
"version": "1.135.3",
"version": "1.137.1",
"description": "",
"main": "index.js",
"type": "module",
@@ -24,15 +24,16 @@
"@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.32",
"@types/node": "^22.16.5",
"@types/oidc-provider": "^9.0.0",
"@types/pg": "^8.15.1",
"@types/pngjs": "^6.0.4",
"@types/supertest": "^6.0.2",
"@vitest/coverage-v8": "^3.0.0",
"eslint": "^9.14.0",
"eslint-config-prettier": "^10.0.0",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-unicorn": "^59.0.0",
"exiftool-vendored": "^28.3.1",
@@ -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"
}
}

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([]);
});
});
});

View File

@@ -470,7 +470,7 @@ describe('/albums', () => {
.send({ ids: [asset.id] });
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest('Not found or no album.addAsset access'));
expect(body).toEqual(errorDto.badRequest('Not found or no albumAsset.create access'));
});
it('should add duplicate assets only once', async () => {
@@ -599,7 +599,7 @@ describe('/albums', () => {
.send({ ids: [user1Asset1.id] });
expect(status).toBe(400);
expect(body).toEqual(errorDto.badRequest('Not found or no album.removeAsset access'));
expect(body).toEqual(errorDto.badRequest('Not found or no albumAsset.delete access'));
});
it('should remove duplicate assets only once', async () => {

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', () => {

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, {

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',
});
});
});
});

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}`)

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,

View File

@@ -117,6 +117,13 @@ 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`);
});

View File

@@ -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);

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', () => {

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]);
});
});
});

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`, () => {

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);
}

View File

@@ -116,6 +116,7 @@ export const deviceDto = {
createdAt: expect.any(String),
updatedAt: expect.any(String),
current: true,
isPendingSyncReset: false,
deviceOS: '',
deviceType: '',
},

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: {

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;`);
}
}
@@ -185,18 +186,6 @@ export const utils = {
}
},
resetFilesystem: async () => {
const mediaInternal = '/usr/src/app/upload';
const dirs = [
`"${mediaInternal}/thumbs"`,
`"${mediaInternal}/upload"`,
`"${mediaInternal}/library"`,
`"${mediaInternal}/encoded-video"`,
].join(' ');
await execPromise(`docker exec -i "immich-e2e-server" /bin/bash -c "rm -rf ${dirs} && mkdir ${dirs}"`);
},
unzip: async (input: string, output: string) => {
await execPromise(`unzip -o -d "${output}" "${input}"`);
},
@@ -450,7 +439,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) => {

View File

@@ -37,6 +37,7 @@ test.describe('Registration', () => {
await page.getByRole('button', { name: 'Server Privacy' }).click();
await page.getByRole('button', { name: 'User Privacy' }).click();
await page.getByRole('button', { name: 'Storage Template' }).click();
await page.getByRole('button', { name: 'Backups' }).click();
await page.getByRole('button', { name: 'Done' }).click();
// success

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"
}

File diff suppressed because it is too large Load Diff

View File

@@ -6,7 +6,7 @@
"action": "╨Ф╨╖╨╡╤П╨╜╨╜╨╡",
"action_common_update": "╨Р╨▒╨╜╨░╨▓╤Ц╤Ж╤М",
"actions": "╨Ф╨╖╨╡╤П╨╜╨╜╤Ц",
"active": "╨Р╨║╤В╤Л╤Ю╨╜╤Л",
"active": "╨Р╨║╤В╤Л╤Ю╨╜╤Л╤Е",
"activity": "╨Р╨║╤В╤Л╤Ю╨╜╨░╤Б╤Ж╤М",
"activity_changed": "╨Р╨║╤В╤Л╤Ю╨╜╨░╤Б╤Ж╤М {enabled, select, true {╤Г╨║╨╗╤О╤З╨░╨╜╨░} other {╨░╨┤╨║╨╗╤О╤З╨░╨╜╨░}}",
"add": "╨Ф╨░╨┤╨░╤Ж╤М",
@@ -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,361 @@
"image_fullsize_enabled_description": "╨б╤В╨▓╨░╤А╨░╤Ж╤М ╨▓╤Л╤П╨▓╤Г ╤Ю ╨┐╨╛╤Ю╨╜╤Л╨╝ ╨┐╨░╨╝╨╡╤А╤Л ╨┤╨╗╤П ╤Д╨░╤А╨╝╨░╤В╨░╤Ю, ╤И╤В╨╛ ╨╜╨╡ ╨┐╤А╤Л╨┤╨░╤В╨╜╤Л╤П ╨┤╨╗╤П ╨▓╤Н╨▒. ╨Ъ╨░╨╗╤Ц ╤Ю╨║╨╗╤О╤З╨░╨╜╨░ ╨╛╨┐╤Ж╤Л╤П \"╨Р╨┤╨┤╨░╨▓╨░╤Ж╤М ╨┐╨╡╤А╨░╨▓╨░╨│╤Г ╤Ю╨▒╤Г╨┤╨░╨▓╨░╨╜╨░╨╣ ╨┐╤А╨░╤П╨▓╨╡\", ╨┐╤А╨░╨│╨╗╤П╨┤╤Л ╨▓╤Л╨║╨░╤А╤Л╤Б╤В╨╛╤Ю╨▓╨░╤О╤Ж╤Ж╨░ ╨╜╨╡╨┐╨░╤Б╤А╤Н╨┤╨╜╨░ ╨▒╨╡╨╖ ╨║╨░╨╜╨▓╨╡╤А╤В╨░╤Ж╤Л╤Ц. ╨Э╨╡ ╤Ю╨┐╨╗╤Л╨▓╨░╨╡ ╨╜╨░ ╨▓╤Н╨▒-╨┐╤А╤Л╨┤╨░╤В╨╜╤Л╤П ╤Д╨░╤А╨╝╨░╤В╤Л, ╤В╨░╨║╤Ц╤П ╤П╨║ JPEG.",
"image_fullsize_quality_description": "╨п╨║╨░╤Б╤Ж╤М ╨▓╤Л╤П╨▓╤Л ╤Ю ╨┐╨╛╤Ю╨╜╤Л╨╝ ╨┐╨░╨╝╨╡╤А╤Л ╨░╨┤ 1 ╨┤╨░ 100. ╨С╨╛╨╗╤М╤И ╨▓╤Л╤Б╨╛╨║╨░╨╡ ╨╖╨╜╨░╤З╤Н╨╜╨╜╨╡ ╨╗╨╡╨┐╤И╨░╨╡, ╨░╨╗╨╡ ╨┐╤А╤Л╨▓╨╛╨┤╨╖╤Ц╤Ж╤М ╨┤╨░ ╨┐╨░╨▓╨╡╨╗╤Ц╤З╤Н╨╜╨╜╤П ╨┐╨░╨╝╨╡╤А╤Г ╤Д╨░╨╣╨╗╨░.",
"image_fullsize_title": "╨Э╨░╨╗╨░╨┤╤Л ╨▓╤Л╤П╨▓╤Л ╤Ю ╨┐╨╛╤Ю╨╜╤Л╨╝ ╨┐╨░╨╝╨╡╤А╤Л",
"image_prefer_embedded_preview": "╨Р╨┤╨┤╨░╨▓╨░╤Ж╤М ╨┐╨╡╤А╨░╨▓╨░╨│╤Г ╤Ю╨▒╤Г╨┤╨░╨▓╨░╨╜╨░╨╣ ╨┐╤А╨░╤П╨▓╨╡",
"image_prefer_embedded_preview_setting_description": "╨Т╤Л╨║╨░╤А╤Л╤Б╤В╨╛╤Ю╨▓╨░╤Ж╤М ╤Г╨▒╤Г╨┤╨░╨▓╨░╨╜╤Л╤П ╨┐╤А╨░╤П╨▓╤Л ╤Ю RAW-╤Д╨╛╤В╨░╨╖╨┤╤Л╨╝╨║╨░╤Е ╤Ю ╤П╨║╨░╤Б╤Ж╤Ц ╤Ю╨▓╨░╤Е╨╛╨┤╨╜╤Л╤Е ╨┤╨░╨┤╨╖╨╡╨╜╤Л╤Е ╨┤╨╗╤П ╨░╨┐╤А╨░╤Ж╨╛╤Ю╨║╤Ц ╨╝╨░╨╗╤О╨╜╨║╨░╤Ю, ╨║╨░╨╗╤Ц ╨╝╨░╨│╤З╤Л╨╝╨░. ╨У╤Н╤В╨░ ╨┤╨░╨╖╨▓╨░╨╗╤П╨╡ ╨░╤В╤А╤Л╨╝╨░╤Ж╤М ╨▒╨╛╨╗╤М╤И ╨┤╨░╨║╨╗╨░╨┤╨╜╤Л╤П ╨║╨╛╨╗╨╡╤А╤Л ╨┤╨╗╤П ╨╜╨╡╨║╨░╤В╨╛╤А╤Л╤Е ╨▓╤Ц╨┤╨░╤А╤Л╤Б╨░╤Ю, ╨░╨╗╨╡ ╨╢ ╤П╨║╨░╤Б╤Ж╤М ╨┐╤А╨░╤П╤Ю ╨╖╨░╨╗╨╡╨╢╤Л╤Ж╤М ╨░╨┤ ╨║╨░╨╝╨╡╤А╤Л, ╤Ц ╨╜╨░ ╨▓╤Ц╨┤╨░╤А╤Л╤Б╨╡ ╨╝╨╛╨╢╨░ ╨▒╤Л╤Ж╤М ╨▒╨╛╨╗╤М╤И ╨░╤А╤В╤Н╤Д╨░╨║╤В╨░╤Ю ╤Б╤Ж╤Ц╤Б╨║╤Г.",
"image_prefer_wide_gamut": "╨Р╨┤╨┤╨░╤Ж╤М ╨┐╨╡╤А╨░╨▓╨░╨│╤Г ╤И╤Л╤А╨╛╨║╨░╨╣ ╨│╨░╨╝╨╡",
"image_preview_description": "╨Т╤Ц╨┤╨░╤А╤Л╤Б ╤Б╤П╤А╤Н╨┤╨╜╤П╨│╨░ ╨┐╨░╨╝╨╡╤А╤Г ╨╖ ╨▓╤Л╨┤╨░╨╗╨╡╨╜╤Л╨╝╤Ц ╨╝╨╡╤В╨░╨┤╨░╨┤╨╖╨╡╨╜╤Л╨╝╤Ц, ╨▓╤Л╨║╨░╤А╤Л╤Б╤В╨╛╤Ю╨▓╨░╨╡╤Ж╤Ж╨░ ╨┐╤А╤Л ╨┐╤А╨░╨│╨╗╤П╨┤╨╖╨╡ ╨░╤Б╨╛╨▒╨╜╨░╨│╨░ ╤А╤Н╤Б╤Г╤А╤Б╤Г ╤Ц ╨┤╨╗╤П ╨╝╨░╤И╤Л╨╜╨╜╨░╨│╨░ ╨╜╨░╨▓╤Г╤З╨░╨╜╨╜╤П",
"image_preview_quality_description": "╨п╨║╨░╤Б╤Ж╤М ╨┐╤А╨░╤П╨▓╤Л ╨░╨┤ 1 ╨┤╨░ 100. ╨з╤Л╨╝ ╨▓╤Л╤И╤Н╨╣, ╤В╤Л╨╝ ╨╗╨╡╨┐╤И, ╨░╨╗╨╡ ╨┐╤А╤Л ╨│╤Н╤В╤Л╨╝ ╤Б╤В╨▓╨░╤А╨░╤О╤Ж╤Ж╨░ ╤Д╨░╨╣╨╗╤Л ╨▒╨╛╨╗╤М╤И╨░╨│╨░ ╨┐╨░╨╝╨╡╤А╤Г ╤Ц ╨╝╨╛╨╢╨░ ╨╖╨╜╤Ц╨╖╤Ц╤Ж╤Ж╨░ ╤Е╤Г╤В╨║╨░╤Б╤Ж╤М ╨▓╨╛╨┤╨│╤Г╨║╤Г ╨┐╤А╤Л╨║╨╗╨░╨┤╨░╨╜╨╜╤П. ╨О╤Б╤В╨░╨╜╨╛╤Ю╨║╨░ ╨╜╤Ц╨╖╨║╨░╨│╨░ ╨╖╨╜╨░╤З╤Н╨╜╨╜╤П ╨╝╨╛╨╢╨░ ╨┐╨░╤Ю╨┐╨╗╤Л╨▓╨░╤Ж╤М ╨╜╨░ ╤П╨║╨░╤Б╤Ж╤М ╨╝╨░╤И╤Л╨╜╨╜╨░╨│╨░ ╨╜╨░╨▓╤Г╤З╨░╨╜╨╜╤П.",
"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",
"refreshing_all_libraries": "╨Р╨▒╨╜╨░╤Ю╨╗╨╡╨╜╨╜╨╡ ╤Ю╤Б╤Ц╤Е ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║",
"registration": "╨а╤Н╨│╤Ц╤Б╤В╤А╨░╤Ж╤Л╤П ╨░╨┤╨╝╤Ц╨╜╤Ц╤Б╤В╤А╨░╤В╨░╤А╨░",
"registration_description": "╨Т╤Л ╨╖'╤П╤Ю╨╗╤П╨╡╤Ж╨╡╤Б╤П ╨┐╨╡╤А╤И╤Л╨╝ ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░╨╝ ╤Б╤Ц╤Б╤В╤Н╨╝╤Л, ╤В╨░╨╝╤Г ╨▓╤Л ╨▒╤Г╨┤╨╖╨╡╤Ж╨╡ ╨┐╤А╤Л╨╖╨╜╨░╤З╨░╨╜╤Л ╨░╨┤╨╝╤Ц╨╜╤Ц╤Б╤В╤А╨░╤В╨░╤А╨░╨╝. ╨Т╤Л ╨▒╤Г╨┤╨╖╨╡╤Ж╨╡ ╨░╨┤╨║╨░╨╖╨▓╨░╤Ж╤М ╨╖╨░ ╨░╨┤╨╝╤Ц╨╜╤Ц╤Б╤В╤А╨░╤Ж╤Л╨╣╨╜╤Л╤П ╨╖╨░╨┤╨░╤З╤Л, ╨░ ╤В╨░╨║╤Б╨░╨╝╨░ ╤Б╤В╨▓╨░╤А╨░╤Ж╤М ╨╜╨╛╨▓╤Л╤Е ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░╤Ю.",
"require_password_change_on_login": "╨Я╨░╤В╤А╨░╨▒╨░╨▓╨░╤Ж╤М ╨╖╨╝╤П╨╜╤Ц╤Ж╤М ╨┐╨░╤А╨╛╨╗╤М ╨┐╤А╤Л ╨┐╨╡╤А╤И╤Л╨╝ ╤Г╨▓╨░╤Е╨╛╨┤╨╖╨╡ ╤Ю ╤Б╤Ц╤Б╤В╤Н╨╝╤Г",
"reset_settings_to_default": "╨б╨║╤Ц╨╜╤Г╤Ж╤М ╨╜╨░╨╗╨░╨┤╤Л ╨┤╨░ ╨┐╤А╨░╨┤╨▓╤Л╨╖╨╜╨░╤З╨░╨╜╤Л╤Е",
"reset_settings_to_recent_saved": "╨б╨║╤Ц╨╜╤Г╤Ж╤М ╨╜╨░╨╗╨░╨┤╤Л ╨┤╨░ ╨╜╤П╨┤╨░╤Ю╨╜╨░ ╨╖╨░╤Е╨░╨▓╨░╨╜╤Л╤Е",
"scanning_library": "╨б╨║╨░╨╜╤Ц╤А╨░╨▓╨░╨╜╨╜╨╡ ╨▒╤Ц╨▒╨╗╤Ц╤П╤В╤Н╨║╤Ц",
"server_external_domain_settings": "╨Ч╨╜╨╡╤И╨╜╤Ц ╨┤╨░╨╝╨╡╨╜",
"server_settings": "╨Э╨░╨╗╨░╨┤╤Л ╤Б╨╡╤А╨▓╨╡╤А╨░",
"server_settings_description": "╨Ъ╤Ц╤А╨░╨▓╨░╨╜╨╜╨╡ ╨╜╨░╨╗╨░╨┤╨░╨╝╤Ц ╤Б╨╡╤А╨▓╨╡╤А╨░",
"server_welcome_message": "╨Я╤А╤Л╨▓╤Ц╤В╨░╨╗╤М╨╜╨░╨╡ ╨┐╨░╨▓╨╡╨┤╨░╨╝╨╗╨╡╨╜╨╜╨╡",
"server_welcome_message_description": "╨Я╨░╨▓╨╡╨┤╨░╨╝╨╗╨╡╨╜╨╜╨╡, ╤П╨║╨╛╨╡ ╨░╨┤╨╗╤О╤Б╤В╤А╨╛╤Ю╨▓╨░╨╡╤Ж╤Ж╨░ ╨╜╨░ ╤Б╤В╨░╤А╨╛╨╜╤Ж╤Л ╤Ю╨▓╨░╤Е╨╛╨┤╤Г.",
"system_settings": "╨б╤Ц╤Б╤В╤Н╨╝╨╜╤Л╤П ╨╜╨░╨╗╨░╨┤╤Л",
"tag_cleanup_job": "╨Р╤З╤Л╤Б╤В╨║╨░ ╤В╤Н╨│╨░╤Ю",
"template_email_preview": "╨Я╨╡╤А╨░╨┤╨┐╤А╨░╨│╨╗╤П╨┤",
"theme_settings": "╨Э╨░╨╗╨░╨┤╤Л ╤В╤Н╨╝╤Л",
"transcoding_acceleration_nvenc": "NVENC (╨┐╨░╤В╤А╨░╨▒╤Г╨╡╤Ж╤Ж╨░ ╨▓╤Ц╨┤╤Н╨░╨║╨░╤А╤В╨░ NVIDIA)",
"transcoding_acceleration_vaapi": "VAAPI",
"transcoding_accepted_containers": "╨Я╤А╤Л╨╜╤П╤В╤Л╤П ╨║╨░╨╜╤В╤Н╨╣╨╜╨╡╤А╤Л",
"transcoding_accepted_video_codecs": "╨Я╤А╤Л╨╜╤П╤В╤Л╤П ╨▓╤Ц╨┤╤Н╨░╨║╨╛╨┤╤Н╨║╤Ц",
"transcoding_advanced_options_description": "╨Я╨░╤А╨░╨╝╨╡╤В╤А╤Л, ╤П╨║╤Ц╤П ╨▒╨╛╨╗╤М╤И╨░╤Б╤Ж╤Ц ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░╤Ю ╨╜╨╡ ╤В╤А╤Н╨▒╨░ ╨╖╨╝╤П╨╜╤П╤Ж╤М",
"transcoding_audio_codec": "╨Р╤Г╨┤╤Л╤П╨║╨╛╨┤╤Н╨║",
"transcoding_encoding_options": "╨Я╨░╤А╨░╨╝╨╡╤В╤А╤Л ╨║╨░╨┤╨╖╤Ц╤А╨░╨▓╨░╨╜╨╜╤П",
"transcoding_video_codec": "╨Т╤Ц╨┤╤Н╨░╨║╨╛╨┤╤Н╨║",
"trash_enabled_description": "╨г╨║╨╗╤О╤З╤Л╤Ж╤М ╤Д╤Г╨╜╨║╤Ж╤Л╤Ц ╤Б╨╝╨╡╤В╨╜╤Ц╤Ж╤Л",
"trash_number_of_days": "╨Ъ╨╛╨╗╤М╨║╨░╤Б╤Ж╤М ╨┤╨╖╤С╨╜",
"trash_settings": "╨Э╨░╨╗╨░╨┤╤Л ╤Б╨╝╨╡╤В╨╜╤Ц╤Ж╤Л",
"trash_settings_description": "╨Ъ╤Ц╤А╨░╨▓╨░╨╜╨╜╨╡ ╨╜╨░╨╗╨░╨┤╨░╨╝╤Ц ╤Б╨╝╨╡╤В╨╜╤Ц╤Ж╤Л",
"user_cleanup_job": "╨Р╤З╤Л╤Б╤В╨║╨░ ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░",
"user_management": "╨Ъ╤Ц╤А╨░╨▓╨░╨╜╨╜╨╡ ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░╨╝╤Ц",
"user_password_has_been_reset": "╨Я╨░╤А╨╛╨╗╤М ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░ ╨▒╤Л╤Ю ╤Б╨║╤Ц╨╜╤Г╤В╤Л:",
"user_password_reset_description": "╨Ч╨░╨┤╨░╨╣╤Ж╨╡ ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╤Г ╤З╨░╤Б╨╛╨▓╤Л ╨┐╨░╤А╨╛╨╗╤М ╤Ц ╨┐╨░╨▓╨╡╨┤╨░╨╝╤Ц╤Ж╨╡ ╤П╨╝╤Г, ╤И╤В╨╛ ╨┐╤А╤Л ╨╜╨░╤Б╤В╤Г╨┐╨╜╤Л╨╝ ╤Г╨▓╨░╤Е╨╛╨┤╨╖╨╡ ╤Ю ╤Б╤Ц╤Б╤В╤Н╨╝╤Г ╤П╨╝╤Г ╤В╤А╤Н╨▒╨░ ╨▒╤Г╨┤╨╖╨╡ ╨╖╨╝╤П╨╜╤Ц╤Ж╤М ╨┐╨░╤А╨╛╨╗╤М.",
"user_restore_description": "╨г╨╗╤Ц╨║╨╛╨▓╤Л ╨╖╨░╨┐╤Ц╤Б ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░ <b>{user}</b> ╨▒╤Г╨┤╨╖╨╡ ╨░╨┤╨╜╨╛╤Ю╨╗╨╡╨╜╤Л.",
"user_settings": "╨Э╨░╨╗╨░╨┤╤Л ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░",
"user_settings_description": "╨Ъ╤Ц╤А╨░╨▓╨░╨╜╨╜╨╡ ╨╜╨░╨╗╨░╨┤╨░╨╝╤Ц ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░",
"user_successfully_removed": "╨Ъ╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║ {email} ╨▒╤Л╤Ю ╨┐╨░╤Б╨┐╤П╤Е╨╛╨▓╨░ ╨▓╤Л╨┤╨░╨╗╨╡╨╜╤Л.",
"version_check_enabled_description": "╨г╨║╨╗╤О╤З╤Л╤Ж╤М ╨┐╤А╨░╨▓╨╡╤А╨║╤Г ╨▓╨╡╤А╤Б╤Ц╤Ц",
"version_check_implications": "╨д╤Г╨╜╨║╤Ж╤Л╤Ц ╨┐╤А╨░╨▓╨╡╤А╨║╤Ц ╨▓╨╡╤А╤Б╤Ц╤Ц ╨┐╨╡╤А╤Л╤П╨┤╤Л╤З╨╜╨░ ╨╖╨▓╤П╤А╤В╨░╨╡╤Ж╤Ж╨░ ╨┤╨░ github.com",
"version_check_settings": "╨Я╤А╨░╨▓╨╡╤А╨║╨░ ╨▓╨╡╤А╤Б╤Ц╤Ц",
"version_check_settings_description": "╨г╨║╨╗╤О╤З╤Л╤Ж╤М/╨░╨┤╨║╨╗╤О╤З╤Л╤Ж╤М ╨░╨┐╨░╨▓╤П╤И╤З╤Н╨╜╨╜╤Ц ╨░╨▒ ╨╜╨╛╨▓╨░╨╣ ╨▓╨╡╤А╤Б╤Ц╤Ц"
},
"admin_email": "╨н╨╗╨╡╨║╤В╤А╨╛╨╜╨╜╨░╤П ╨┐╨╛╤И╤В╨░ ╨░╨┤╨╝╤Ц╨╜╤Ц╤Б╤В╤А╨░╤В╨░╤А╨░",
"admin_password": "╨Я╨░╤А╨╛╨╗╤М ╨░╨┤╨╝╤Ц╨╜╤Ц╤Б╤В╤А╨░╤В╨░╤А╨░",
"administration": "╨Ъ╤Ц╤А╨░╨▓╨░╨╜╨╜╨╡ ╤Б╨╡╤А╨▓╨╡╤А╨░╨╝",
"advanced": "╨Я╨░╤И╤Л╤А╨░╨╜╤Л╤П",
"advanced_settings_log_level_title": "╨г╨╖╤А╨╛╨▓╨╡╨╜╤М ╨▓╤П╨┤╨╖╨╡╨╜╨╜╤П ╨╢╤Г╤А╨╜╨░╨╗╨░: {level}",
"advanced_settings_proxy_headers_title": "╨Ч╨░╨│╨░╨╗╨╛╤Ю╨║╤Ц ╨┐╤А╨╛╨║╤Б╤Ц",
"advanced_settings_tile_subtitle": "╨Я╨░╤И╤Л╤А╨░╨╜╤Л╤П ╨╜╨░╨╗╨░╨┤╤Л ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░",
"advanced_settings_troubleshooting_subtitle": "╨г╨║╨╗╤О╤З╤Л╤Ж╤М ╨┤╨░╨┤╨░╤В╨║╨╛╨▓╤Л╤П ╤Д╤Г╨╜╨║╤Ж╤Л╤Ц ╨┤╨╗╤П ╨▓╤Л╨┐╤А╨░╤Ю╨╗╨╡╨╜╨╜╤П ╨╜╨╡╨┐╨░╨╗╨░╨┤╨░╨║",
"advanced_settings_troubleshooting_title": "╨Т╤Л╨┐╤А╨░╤Ю╨╗╨╡╨╜╨╜╨╡ ╨╜╨╡╨┐╨░╨╗╨░╨┤╨░╨║",
"age_months": "╨г╨╖╤А╨╛╤Б╤В {months, plural, one {# ╨╝╨╡╤Б╤П╤Ж} few {# ╨╝╨╡╤Б╤П╤Ж╤Л} many {# ╨╝╨╡╤Б╤П╤Ж╨░╤Ю} other {# ╨╝╨╡╤Б╤П╤Ж╨░╤Ю}}",
"age_year_months": "╨г╨╖╤А╨╛╤Б╤В 1 ╨│╨╛╨┤, {months, plural, one {# ╨╝╨╡╤Б╤П╤Ж} few {# ╨╝╨╡╤Б╤П╤Ж╤Л} many {# ╨╝╨╡╤Б╤П╤Ж╨░╤Ю} other {# ╨╝╨╡╤Б╤П╤Ж╨░╤Ю}}",
"age_years": "{years, plural, other {╨г╨╖╤А╨╛╤Б╤В #}}",
"album_added": "╨Р╨╗╤М╨▒╨╛╨╝ ╨┤╨░╨┤╨░╨┤╨╖╨╡╨╜╤Л",
"album_cover_updated": "╨Т╨╛╨║╨╗╨░╨┤╨║╨░ ╨░╨╗╤М╨▒╨╛╨╝╨░ ╨░╨▒╨╜╨╛╤Ю╨╗╨╡╨╜╨░",
"album_delete_confirmation": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л, ╤И╤В╨╛ ╤Е╨╛╤З╨░╤Ж╨╡ ╨▓╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨░╨╗╤М╨▒╨╛╨╝ {album}?",
"album_delete_confirmation_description": "╨Ъ╨░╨╗╤Ц ╨│╤Н╤В╤Л ╨░╨╗╤М╨▒╨╛╨╝ ╨░╨▒╨░╨│╤Г╨╗╨╡╨╜╤Л, ╤Ц╨╜╤И╤Л╤П ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╤Ц ╨▒╨╛╨╗╤М╤И ╨╜╨╡ ╨╖╨╝╨╛╨│╤Г╤Ж╤М ╨░╤В╤А╤Л╨╝╨░╤Ж╤М ╨┤╨░ ╤П╨│╨╛ ╨┤╨╛╤Б╤В╤Г╨┐.",
"album_deleted": "╨Р╨╗╤М╨▒╨╛╨╝ ╨▓╤Л╨┤╨░╨╗╨╡╨╜╤Л",
"album_info_card_backup_album_excluded": "╨Т╨л╨Ъ╨Ы╨о╨з╨Р╨Э╨л",
"album_info_card_backup_album_included": "╨г╨Ъ╨Ы╨о╨з╨Р╨Э╨л",
"album_info_updated": "╨Ж╨╜╤Д╨░╤А╨╝╨░╤Ж╤Л╤П ╨┐╤А╨░ ╨░╨╗╤М╨▒╨╛╨╝ ╨░╨▒╨╜╨╛╤Ю╨╗╨╡╨╜╨░",
"album_leave": "╨Я╨░╨║╤Ц╨╜╤Г╤Ж╤М ╨░╨╗╤М╨▒╨╛╨╝?",
"album_leave_confirmation": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л, ╤И╤В╨╛ ╤Е╨╛╤З╨░╤Ж╨╡ ╨┐╨░╨║╤Ц╨╜╤Г╤Ж╤М {album}?",
"album_name": "╨Э╨░╨╖╨▓╨░ ╨░╨╗╤М╨▒╨╛╨╝╨░",
"album_options": "╨Я╨░╤А╨░╨╝╨╡╤В╤А╤Л ╨░╨╗╤М╨▒╨╛╨╝╨░",
"album_remove_user": "╨Т╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░?",
"album_remove_user_confirmation": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л, ╤И╤В╨╛ ╤Е╨╛╤З╨░╤Ж╨╡ ╨▓╤Л╨┤╨░╨╗╤Ц╤Ж╤М {user}?",
"album_search_not_found": "╨Я╨░ ╨▓╨░╤И╤Л╨╝ ╨╖╨░╨┐╤Л╤Ж╨╡ ╨╜╨╡ ╨╖╨╜╨╛╨╣╨┤╨╖╨╡╨╜╨░ ╨░╨╗╤М╨▒╨╛╨╝╨░╤Ю",
"album_share_no_users": "╨Ч╨┤╨░╨╡╤Ж╤Ж╨░, ╨▓╤Л ╨┐╨░╨┤╨╖╤П╨╗╤Ц╨╗╤Ц╤Б╤П ╨│╤Н╤В╤Л╨╝ ╨░╨╗╤М╨▒╨╛╨╝╨░╨╝ ╨╖ ╤Г╤Б╤Ц╨╝╤Ц ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░╨╝╤Ц, ╨░╨▒╨╛ ╤Ю ╨▓╨░╤Б ╨╜╤П╨╝╨░ ╨╜╤Ц╨▓╨╛╨┤╨╜╨░╨│╨░ ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░, ╨╖ ╤П╨║╤Ц╨╝ ╨╝╨╛╨╢╨╜╨░ ╨┐╨░╨┤╨╖╤П╨╗╤Ц╤Ж╤Ж╨░.",
"album_updated": "╨Р╨╗╤М╨▒╨╛╨╝ ╨░╨▒╨╜╨╛╤Ю╨╗╨╡╨╜╤Л",
"album_user_left": "╨Т╤Л ╨┐╨░╨║╤Ц╨╜╤Г╨╗╤Ц {album}",
"album_user_removed": "╨Ъ╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║ {user} ╨▓╤Л╨┤╨░╨╗╨╡╨╜╤Л",
"album_viewer_appbar_delete_confirm": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л, ╤И╤В╨╛ ╤Е╨╛╤З╨░╤Ж╨╡ ╨▓╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨│╤Н╤В╤Л ╨░╨╗╤М╨▒╨╛╨╝ ╤Б╨░ ╤Б╨▓╨░╨╣╨│╨╛ ╤Ю╨╗╤Ц╨║╨╛╨▓╨░╨│╨░ ╨╖╨░╨┐╤Ц╤Б╤Г?",
"album_viewer_appbar_share_err_delete": "╨Э╨╡ ╤Ю╨┤╨░╨╗╨╛╤Б╤П ╨▓╤Л╨┤╨░╨╗╤Ц╤Ж╤М ╨░╨╗╤М╨▒╨╛╨╝",
"album_viewer_appbar_share_err_leave": "╨Э╨╡ ╤Ю╨┤╨░╨╗╨╛╤Б╤П ╨┐╨░╨║╤Ц╨╜╤Г╤Ж╤М ╨░╨╗╤М╨▒╨╛╨╝",
"album_viewer_appbar_share_err_title": "╨Э╨╡ ╤Ю╨┤╨░╨╗╨╛╤Б╤П ╨╖╨╝╤П╨╜╤Ц╤Ж╤М ╨╜╨░╨╖╨▓╤Г ╨░╨╗╤М╨▒╨╛╨╝╨░",
"album_viewer_appbar_share_leave": "╨Я╨░╨║╤Ц╨╜╤Г╤Ж╤М ╨░╨╗╤М╨▒╨╛╨╝",
"album_viewer_appbar_share_to": "╨Р╨▒╨░╨│╤Г╨╗╤Ц╤Ж╤М ╨╖",
"album_viewer_page_share_add_users": "╨Ф╨░╨┤╨░╤Ж╤М ╨║╨░╤А╤Л╤Б╤В╨░╨╗╤М╨╜╤Ц╨║╨░╤Ю",
"album_with_link_access": "╨Ф╨░╨╖╨▓╨╛╨╗╤Ц╤Ж╤М ╤Г╤Б╤Ц╨╝, ╤Е╤В╨╛ ╨╝╨░╨╡ ╤Б╨┐╨░╤Б╤Л╨╗╨║╤Г, ╨▒╨░╤З╤Л╤Ж╤М ╤Д╨╛╤В╨░ ╤Ц ╨╗╤О╨┤╨╖╨╡╨╣ ╤Г ╨│╤Н╤В╤Л╨╝ ╨░╨╗╤М╨▒╨╛╨╝╨╡.",
"albums": "╨Р╨╗╤М╨▒╨╛╨╝╤Л",
"albums_count": "{count, plural, one {1 ╨░╨╗╤М╨▒╨╛╨╝} few {{count, number} ╨░╨╗╤М╨▒╨╛╨╝╤Л} many {{count, number} ╨░╨╗╤М╨▒╨╛╨╝╨░╤Ю} other {{count, number} ╨░╨╗╤М╨▒╨╛╨╝╨░╤Ю}}",
"albums_default_sort_order": "╨Я╤А╨░╨┤╨▓╤Л╨╖╨╜╨░╤З╨░╨╜╤Л ╨┐╨░╤А╨░╨┤╨░╨║ ╤Б╨░╤А╤В╨░╨▓╨░╨╜╨╜╤П ╨░╨╗╤М╨▒╨╛╨╝╨░╤Ю",
"albums_on_device_count": "╨Р╨╗╤М╨▒╨╛╨╝╤Л ╨╜╨░ ╨┐╤А╤Л╨╗╨░╨┤╨╖╨╡ ({count})",
"all": "╨г╤Б╨╡",
"all_albums": "╨г╤Б╨╡ ╨░╨╗╤М╨▒╨╛╨╝╤Л",
"all_people": "╨г╤Б╨╡ ╨╗╤О╨┤╨╖╤Ц",
"all_videos": "╨г╤Б╨╡ ╨▓╤Ц╨┤╤Н╨░",
"allow_dark_mode": "╨Ф╨░╨╖╨▓╨╛╨╗╤Ц╤Ж╤М ╤Ж╤С╨╝╨╜╤Л ╤А╤Н╨╢╤Л╨╝",
"allow_edits": "╨Ф╨░╨╖╨▓╨╛╨╗╤Ц╤Ж╤М ╤А╤Н╨┤╨░╨│╨░╨▓╨░╨╜╨╜╨╡",
"alt_text_qr_code": "╨Т╤Ц╨┤╨░╤А╤Л╤Б QR-╨║╨╛╨┤╨░",
"anti_clockwise": "╨б╤Г╨┐╤А╨░╤Ж╤М ╨│╨░╨┤╨╖╤Ц╨╜╨╜╤Ц╨║╨░╨▓╨░╨╣ ╤Б╤В╤А╤Н╨╗╨║╤Ц",
"api_key": "╨Ъ╨╗╤О╤З API",
"api_key_empty": "╨Э╨░╨╖╨▓╨░ ╨║╨╗╤О╤З╨░ API ╨╜╨╡ ╨┐╨░╨▓╤Ц╨╜╨╜╨░ ╨▒╤Л╤Ж╤М ╨┐╤Г╤Б╤В╨╛╨╣",
"api_keys": "╨Ъ╨╗╤О╤З╤Л API",
"app_bar_signout_dialog_content": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л, ╤И╤В╨╛ ╤Е╨╛╤З╨░╤Ж╨╡ ╨▓╤Л╨╣╤Б╤Ж╤Ц?",
"app_bar_signout_dialog_ok": "╨в╨░╨║",
"app_bar_signout_dialog_title": "╨Т╤Л╨╣╤Б╤Ж╤Ц",
"app_settings": "╨Э╨░╨╗╨░╨┤╤Л ╨┐╤А╨░╨│╤А╨░╨╝╤Л",
"archive": "╨Р╤А╤Е╤Ц╤Ю",
"archive_page_title": "╨Р╤А╤Е╤Ц╤Ю ({count})",
"archive_size": "╨Я╨░╨╝╨╡╤А ╨░╤А╤Е╤Ц╨▓╨░",
"are_these_the_same_person": "╨ж╤Ц ╨│╤Н╤В╨░ ╨░╨┤╨╖╤Ц╨╜ ╤Ц ╤В╨╛╨╣ ╨╢╨░ ╤З╨░╨╗╨░╨▓╨╡╨║?",
"are_you_sure_to_do_this": "╨Т╤Л ╤Ю╨┐╤Н╤Ю╨╜╨╡╨╜╤Л, ╤И╤В╨╛ ╤Е╨╛╤З╨░╤Ж╨╡ ╨│╤Н╤В╨░ ╨╖╤А╨░╨▒╤Ц╤Ж╤М?",
"asset_added_to_album": "╨Ф╨░╨┤╨░╨┤╨╖╨╡╨╜╨░ ╤Ю ╨░╨╗╤М╨▒╨╛╨╝",
"asset_adding_to_album": "╨Ф╨░╨┤╨░╨▓╨░╨╜╨╜╨╡ ╤Ю ╨░╨╗╤М╨▒╨╛╨╝тАж",
"asset_skipped": "╨Я╤А╨░╨┐╤Г╤И╤З╨░╨╜╨░",
"asset_skipped_in_trash": "╨г ╤Б╨╝╨╡╤В╨╜╤Ц╤Ж╤Л",
"asset_uploaded": "╨Ч╨░╨┐╨░╨╝╨┐╨░╨▓╨░╨╜╨░",
"asset_uploading": "╨Ч╨░╨┐╨░╨╝╨┐╨╛╤Ю╨▓╨░╨╜╨╜╨╡тАж",
"authorized_devices": "╨Р╤Ю╤В╨░╤А╤Л╨╖╨░╨▓╨░╨╜╤Л╤П ╨┐╤А╤Л╨╗╨░╨┤╤Л",
"back": "╨Э╨░╨╖╨░╨┤",
"backup_album_selection_page_albums_device": "╨Р╨╗╤М╨▒╨╛╨╝╤Л ╨╜╨░ ╨┐╤А╤Л╨╗╨░╨┤╨╖╨╡ ({count})",
"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 +461,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": "╨Я╨░╨▓╤П╨╗╤Ц╤З╤Л╤Ж╤М ╨▓╤Ц╨┤╨░╤А╤Л╤Б"

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} ╨╛╨▒╨╡╨║╤В╨░ ╤Б╨░ ╨╕╨╖╤В╤А╨╕╤В╨╕ ╨╖╨░╨▓╨╕╨╜╨░╨│╨╕",
@@ -490,6 +508,7 @@
"back_close_deselect": "╨Э╨░╨╖╨░╨┤, ╨╖╨░╤В╨▓╨░╤А╤П╨╜╨╡ ╨╕╨╗╨╕ ╨┐╤А╨╡╨╝╨░╤Е╨▓╨░╨╜╨╡ ╨╜╨░ ╨╕╨╖╨▒╨╛╤А╨░",
"background_location_permission": "╨а╨░╨╖╤А╨╡╤И╨╡╨╜╨╕╨╡ ╨╖╨░ ╨┤╨╛╤Б╤В╤К╨┐ ╨┤╨╛ ╨╝╨╡╤Б╤В╨╛╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╨╡╤В╨╛ ╨▓╤К╨▓ ╤Д╨╛╨╜╨╛╨▓ ╤А╨╡╨╢╨╕╨╝",
"background_location_permission_content": "╨Ч╨░ ╨┤╨░ ╨╝╨╛╨╢╨╡ ╨┤╨░ ╤З╨╡╤В╨╡ ╨╕╨╝╨╡╨╜╨░╤В╨░ ╨╜╨░ Wi-Fi ╨╝╤А╨╡╨╢╨╕╤В╨╡ ╨╕ ╨┤╨░ ╨│╨╕ ╨┐╤А╨╡╨▓╨║╨╗╤О╤З╨▓╨░ ╨┐╤А╨╕ ╤А╨░╨▒╨╛╤В╨░ ╨▓╤К╨▓ ╤Д╨╛╨╜╨╛╨▓ ╤А╨╡╨╢╨╕╨╝, Immich ╤В╤А╤П╨▒╨▓╨░ *╨▓╨╕╨╜╨░╨│╨╕* ╨┤╨░ ╨╕╨╝╨░ ╨┤╨╛╤Б╤В╤К╨┐ ╨┤╨╛ ╤В╨╛╤З╨╜╨╛╤В╨╛ ╨╝╨╡╤Б╤В╨╛╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╨╡",
"backup": "╨Р╤А╤Е╨╕╨▓╨╕╤А╨░╨╜╨╡",
"backup_album_selection_page_albums_device": "╨Р╨╗╨▒╤Г╨╝╨╕ ╨╜╨░ ╤Г╤Б╤В╤А╨╛╨╣╤Б╤В╨▓╨╛╤В╨╛ ({count})",
"backup_album_selection_page_albums_tap": "╨Э╨░╤В╨╕╤Б╨╜╨╕ ╨╖╨░ ╨┤╨░ ╨▓╨║╨╗╤О╤З╨╕╤И, ╨┤╨▓╨╛╨╣╨╜╨╛ ╨╖╨░ ╨┤╨░ ╨╕╨╖╨║╨╗╤О╤З╨╕╤И",
"backup_album_selection_page_assets_scatter": "╨Ю╨▒╨╡╨║╤В╨╕╤В╨╡ ╨╝╨╛╨│╨░╤В ╨┤╨░ ╨▒╤К╨┤╨░╤В ╤А╨░╨╖╨┐╤А╤К╤Б╨╜╨░╤В╨╕ ╨▓ ╨╜╤П╨║╨╛╨╗╨║╨╛ ╨░╨╗╨▒╤Г╨╝╨░. ╨Я╨╛ ╤В╨╛╨╖╨╕ ╨╜╨░╤З╨╕╨╜ ╨░╨╗╨▒╤Г╨╝╨╕╤В╨╡ ╨╝╨╛╨│╨░╤В ╨┤╨░ ╨▒╤К╨┤╨░╤В ╨▓╨║╨╗╤О╤З╨╡╨╜╨╕ ╨╕╨╗╨╕ ╨╕╨╖╨║╨╗╤О╤З╨╡╨╜╨╕ ╨┐╨╛ ╨▓╤А╨╡╨╝╨╡ ╨╜╨░ ╨┐╤А╨╛╤Ж╨╡╤Б╨░ ╨╜╨░ ╨░╤А╤Е╨╕╨▓╨╕╤А╨░╨╜╨╡.",
@@ -703,7 +722,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 +738,7 @@
"default_locale": "╨Ы╨╛╨║╨░╨╗╨╕╨╖╨░╤Ж╨╕╤П ╨┐╨╛ ╨┐╨╛╨┤╤А╨░╨╖╨▒╨╕╤А╨░╨╜╨╡",
"default_locale_description": "╨д╨╛╤А╨╝╨░╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨┤╨░╤В╨╕ ╨╕ ╤З╨╕╤Б╨╗╨░ ╨▓ ╨╖╨░╨▓╨╕╤Б╨╕╨╝╨╛╤Б╤В ╨╛╤В ╨╡╨╖╨╕╨║╨╛╨▓╨░╤В╨░ ╨╜╨░╤Б╤В╤А╨╛╨╣╨║╨░ ╨╜╨░ ╨▒╤А╨░╤Г╨╖╤К╤А╨░",
"delete": "╨Ш╨╖╤В╤А╨╕╨╣",
"delete_action_prompt": "{count} ╤Б╨░ ╨╕╨╖╤В╤А╨╕╤В╨╕ ╨╖╨░╨▓╨╕╨╜╨░╨│╨╕",
"delete_album": "╨Ш╨╖╤В╤А╨╕╨╣ ╨░╨╗╨▒╤Г╨╝",
"delete_api_key_prompt": "╨б╨╕╨│╤Г╤А╨╜╨╕ ╨╗╨╕ ╤Б╤В╨╡, ╤З╨╡ ╨╕╤Б╨║╨░╤В╨╡ ╨┤╨░ ╨╕╨╖╤В╤А╨╕╨╡╤В╨╡ ╤В╨╛╨╖╨╕ API ╨║╨╗╤О╤З?",
"delete_dialog_alert": "╨в╨╡╨╖╨╕ ╨╛╨▒╨╡╨║╤В╨╕ ╤Й╨╡ ╨▒╤К╨┤╨░╤В ╨╕╨╖╤В╤А╨╕╤В╨╕ ╨╖╨░╨▓╨╕╨╜╨░╨│╨╕ ╨╕ ╨╛╤В Immich ╤Б╤К╤А╨▓╤К╤А╨░ ╨╕ ╨╛╤В ╤Г╤Б╤В╤А╨╛╨╣╤Б╤В╨▓╨╛╤В╨╛",
@@ -732,19 +752,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 +783,7 @@
"documentation": "╨Ф╨╛╨║╤Г╨╝╨╡╨╜╤В╨░╤Ж╨╕╤П",
"done": "╨У╨╛╤В╨╛╨▓╨╛",
"download": "╨Ш╨╖╤В╨╡╨│╨╗╨╕",
"download_action_prompt": "╨Ч╨░╤А╨╡╨╢╨┤╨░╨╜╨╡ ╨╜╨░ {count} ╨╛╨▒╨╡╨║╤В╨░",
"download_canceled": "╨Ш╨╖╤В╨╡╨│╨╗╤П╨╜╨╡╤В╨╛ ╨╡ ╨╛╤В╨╝╨╡╨╜╨╡╨╜╨╛",
"download_complete": "╨Ш╨╖╤В╨╡╨│╨╗╤П╨╜╨╡╤В╨╛ ╨╖╨░╨▓╤К╤А╤И╨╕",
"download_enqueue": "╨Ш╨╖╤В╨╡╨│╨╗╤П╨╜╨╡╤В╨╛ ╨╡ ╨┤╨╛╨▒╨░╨▓╨╡╨╜╨╛ ╨▓ ╨╛╨┐╨░╤И╨║╨░╤В╨░",
@@ -799,6 +821,7 @@
"edit_key": "╨а╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨║╨╗╤О╤З",
"edit_link": "╨а╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨╗╨╕╨╜╨║",
"edit_location": "╨а╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨╝╨╡╤Б╤В╨╛╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╨╡╤В╨╛",
"edit_location_action_prompt": "{count} ╨╗╨╛╨║╨░╤Ж╨╕╨╕ ╤Б╨░ ╤А╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╕",
"edit_location_dialog_title": "╨Ь╨╡╤Б╤В╨╛╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╨╡",
"edit_name": "╨а╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╨╕╨╝╨╡",
"edit_people": "╨а╨╡╨┤╨░╨║╤В╨╕╤А╨░╨╜╨╡ ╨╜╨░ ╤Е╨╛╤А╨░",
@@ -984,6 +1007,7 @@
"failed_to_load_assets": "╨Э╨╡╤Г╤Б╨┐╨╡╤И╨╜╨╛ ╨╖╨░╤А╨╡╨╢╨┤╨░╨╜╨╡ ╨╜╨░ ╨╡╨╗╨╡╨╝╨╡╨╜╤В╨╕",
"failed_to_load_folder": "╨Э╨╡╤Г╤Б╨┐╨╡╤И╨╜╨╛ ╨╖╨░╤А╨╡╨╢╨┤╨░╨╜╨╡ ╨╜╨░ ╨┐╨░╨┐╨║╨░",
"favorite": "╨Ы╤О╨▒╨╕╨╝",
"favorite_action_prompt": "{count} ╤Б╨░ ╨┤╨╛╨▒╨░╨▓╨╡╨╜╨╕ ╨▓ ╨Ы╤О╨▒╨╕╨╝╨╕",
"favorite_or_unfavorite_photo": "╨Ф╨╛╨▒╨░╨▓╨╕ ╨╕╨╗╨╕ ╨┐╤А╨╡╨╝╨░╤Е╨╜╨╕ ╤Б╨╜╨╕╨╝╨║╨░ ╨╛╤В ╨Ы╤О╨▒╨╕╨╝╨╕",
"favorites": "╨Ы╤О╨▒╨╕╨╝╨╕",
"favorites_page_no_favorites": "╨Э╨╡ ╤Б╨░ ╨╜╨░╨╝╨╡╤А╨╡╨╜╨╕ ╨╗╤О╨▒╨╕╨╝╨╕ ╨╛╨▒╨╡╨║╤В╨╕",
@@ -1127,10 +1151,10 @@
"library_page_sort_created": "╨Ф╨░╤В╨░ ╨╜╨░ ╤Б╤К╨╖╨┤╨░╨▓╨░╨╜╨╡",
"library_page_sort_last_modified": "╨Я╨╛╤Б╨╗╨╡╨┤╨╜╨░ ╨┐╤А╨╛╨╝╤П╨╜╨░",
"library_page_sort_title": "╨Ч╨░╨│╨╗╨░╨▓╨╕╨╡ ╨╜╨░ ╨░╨╗╨▒╤Г╨╝╨░",
"licenses": "╨Ы╨╕╤Ж╨╡╨╜╨╖╨╕",
"light": "╨б╨▓╨╡╤В╨╗╨╛",
"like_deleted": "╨Ъ╨░╤В╨╛ ╨╕╨╖╤В╤А╨╕╤В",
"link_motion_video": "╨Ы╨╕╨╜╨║ ╨║╤К╨╝ ╨▓╨╕╨┤╨╡╨╛",
"link_options": "╨Ю╨┐╤Ж╨╕╨╕ ╨╜╨░ ╨╗╨╕╨╜╨║ ╨╖╨░ ╤Б╨┐╨╛╨┤╨╡╨╗╤П╨╜╨╡",
"link_to_oauth": "╨Ы╨╕╨╜╨║ ╨║╤К╨╝ OAuth",
"linked_oauth_account": "╨б╨▓╤К╤А╨╖╨░╨╜ OAuth ╨░╨║╨░╤Г╨╜╤В",
"list": "╨Ы╨╕╤Б╤В",
@@ -1193,7 +1217,6 @@
"manage_your_devices": "╨г╨┐╤А╨░╨▓╨╗╨╡╨╜╨╕╨╡ ╨╜╨░ ╨▓╨╗╨╡╨╖╨╗╨╕╤В╨╡ ╨▓ ╤Б╨╕╤Б╤В╨╡╨╝╨░╤В╨░ ╤Г╤Б╤В╤А╨╛╨╣╤Б╤В╨▓╨░",
"manage_your_oauth_connection": "╨г╨┐╤А╨░╨▓╨╗╨╡╨╜╨╕╨╡ ╨╜╨░ OAuth ╨▓╤А╤К╨╖╨║╨░╤В╨░",
"map": "╨Ъ╨░╤А╤В╨░",
"map_assets_in_bound": "{count} ╤Б╨╜╨╕╨╝╨║╨╕",
"map_assets_in_bounds": "{count} ╤Б╨╜╨╕╨╝╨║╨╕",
"map_cannot_get_user_location": "╨Э╨╡ ╨╝╨╛╨╢╨░╤Е ╨┤╨░ ╨┐╨╛╨╗╤Г╤З╨░ ╨╝╨╡╤Б╤В╨╛╨┐╨╛╨╗╨╛╨╢╨╡╨╜╨╕╨╡╤В╨╛",
"map_location_dialog_yes": "╨Ф╨░",
@@ -1246,6 +1269,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 +1519,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 +1693,7 @@
"settings_saved": "╨Э╨░╤Б╤В╤А╨╛╨╣╨║╨╕╤В╨╡ ╤Б╨░ ╨╖╨░╨┐╨░╨╖╨╡╨╜╨╕",
"setup_pin_code": "╨Ч╨░╨┤╨░╨╣ PIN ╨║╨╛╨┤",
"share": "╨б╨┐╨╛╨┤╨╡╨╗╤П╨╜╨╡",
"share_action_prompt": "{count} ╤Б╨┐╨╛╨┤╨╡╨╗╨╡╨╜╨╕ ╨╛╨▒╨╡╨║╤В╨░",
"share_add_photos": "╨Ф╨╛╨▒╨░╨▓╨╕ ╤Б╨╜╨╕╨╝╨║╨╕",
"share_assets_selected": "{count} ╨╕╨╖╨▒╤А╨░╨╜╨╕",
"share_dialog_preparing": "╨Я╨╛╨┤╨│╨╛╤В╨╛╨▓╨║╨░...",
@@ -1768,6 +1795,7 @@
"sort_title": "╨Ч╨░╨│╨╗╨░╨▓╨╕╨╡",
"source": "╨Ъ╨╛╨┤",
"stack": "╨б╤К╨▒╨╡╤А╨╕",
"stack_action_prompt": "{count} ╤Б╨░ ╨│╤А╤Г╨┐╨╕╤А╨░╨╜╨╕",
"stack_duplicates": "╨Я╨╛╨┤╤А╨╡╨╢╨┤╨░╨╜╨╡ ╨╜╨░ ╨┤╤Г╨▒╨╗╨╕╨║╨░╤В╨╕",
"stack_select_one_photo": "╨Ш╨╖╨▒╨╡╤А╨╕ ╨╡╨┤╨╜╨░ ╨│╨╗╨░╨▓╨╜╨░ ╤Б╨╜╨╕╨╝╨║╨░ ╨╖╨░ ╤Б╤К╨▒╤А╨░╨╜╨╕╤В╨╡ ╤Б╨╜╨╕╨╝╨║╨╕",
"stack_selected_photos": "╨Я╨╛╨┤╤А╨╡╨╢╨┤╨░╨╜╨╡ ╨╜╨░ ╨╕╨╖╨▒╤А╨░╨╜╨╕ ╤Б╨╜╨╕╨╝╨║╨╕",
@@ -1838,6 +1866,7 @@
"total": "╨Ю╨▒╤Й╨╛",
"total_usage": "╨Ю╨▒╤Й╨╛ ╨╕╨╖╨┐╨╛╨╗╨╖╨▓╨░╨╜╨╛",
"trash": "╨Ъ╨╛╤И╤З╨╡",
"trash_action_prompt": "{count} ╤Б╨░ ╨┐╤А╨╡╨╝╨╡╤Б╤В╨╡╨╜╨╕ ╨▓ ╨║╨╛╤И╨░",
"trash_all": "╨Ш╨╖╤Е╨▓╤К╤А╨╗╨╕ ╨▓╤Б╨╕╤З╨║╨╕",
"trash_count": "╨Т ╨Ъ╨╛╤И╤З╨╡╤В╨╛ {count, number}",
"trash_delete_asset": "╨Т╨║╨░╤А╨░╨╣ ╨▓ ╨Ъ╨╛╤И╤З╨╡╤В╨╛/╨Ш╨╖╤В╤А╨╕╨╣ ╨╡╨╗╨╡╨╝╨╡╨╜╤В",
@@ -1855,9 +1884,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 +1906,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": "╨Я╨░╤А╨╛╨╗╨░╤В╨░ ╨╡ ╨░╨║╤В╤Г╨░╨╗╨╕╨╖╨╕╤А╨░╨╜╨░",

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": "ржЪрж╛ржХрж░рж┐рж░ ржЕржмрж╕рзНржерж╛"
}
}

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",
@@ -489,6 +496,7 @@
"back_close_deselect": "Tornar, tancar o anul┬╖lar la selecci├│",
"background_location_permission": "Perm├нs d'ubicaci├│ en segon pla",
"background_location_permission_content": "Per canviar de xarxa quan s'executa en segon pla, Immich ha de *sempre* tenir acc├йs a la ubicaci├│ precisa perqu├и l'aplicaci├│ pugui llegir el nom de la xarxa Wi-Fi",
"backup": "C├▓pia",
"backup_album_selection_page_albums_device": "├Аlbums al dispositiu ({count})",
"backup_album_selection_page_albums_tap": "Un toc per incloure, doble toc per excloure",
"backup_album_selection_page_assets_scatter": "Els elements poden dispersar-se en diversos ├аlbums. Per tant, els ├аlbums es poden incloure o excloure durant el proc├йs de c├▓pia de seguretat.",
@@ -702,7 +710,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 +726,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 +807,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 +993,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",
@@ -1129,7 +1140,6 @@
"light": "Llum",
"like_deleted": "M'agrada suprimit",
"link_motion_video": "Enlla├зar v├нdeo en moviment",
"link_options": "Opcions d'enlla├з",
"link_to_oauth": "Enlla├з a OAuth",
"linked_oauth_account": "Compte OAuth enlla├зat",
"list": "Llista",
@@ -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├│",
@@ -1191,7 +1202,6 @@
"manage_your_devices": "Gestioneu els vostres dispositius connectats",
"manage_your_oauth_connection": "Gestioneu la vostra connexi├│ OAuth",
"map": "Mapa",
"map_assets_in_bound": "{count} foto",
"map_assets_in_bounds": "{count} fotos",
"map_cannot_get_user_location": "No es pot obtenir la ubicaci├│ de l'usuari",
"map_location_dialog_yes": "S├н",
@@ -1244,6 +1254,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 +1505,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 +1618,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 +1848,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 +1866,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 +1886,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",

View File

@@ -14,6 +14,7 @@
"add_a_location": "P┼Щidat polohu",
"add_a_name": "P┼Щidat jm├йno",
"add_a_title": "P┼Щidat n├бzev",
"add_birthday": "P┼Щidat datum narozen├н",
"add_endpoint": "P┼Щidat koncov├╜ bod",
"add_exclusion_pattern": "P┼Щidat vzor vylou─Нen├н",
"add_import_path": "P┼Щidat cestu importu",
@@ -44,7 +45,14 @@
"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_onboarding_1_description": "kopie v cloudu nebo na jin├йm fyzick├йm m├нst─Ы.",
"backup_onboarding_2_description": "m├нstn├н kopie na r┼пzn├╜ch za┼Щ├нzen├нch. To zahrnuje hlavn├н soubory a jejich m├нstn├н z├бlohu.",
"backup_onboarding_3_description": "kompletn├н kopie va┼бich dat, v─Нetn─Ы p┼пvodn├нch soubor┼п. To zahrnuje 1 kopii na jin├йm m├нst─Ы a 2 m├нstn├н kopie.",
"backup_onboarding_description": "K ochran─Ы va┼бich dat doporu─Нujeme strategii z├бlohov├бn├н <backblaze-link>3-2-1</backblaze-link>. Pro komplexn├н z├бlohov├бn├н byste m─Ыli uchov├бvat kopie nahran├╜ch fotografi├н/vide├н i datab├бze Immich.",
"backup_onboarding_footer": "Dal┼б├н informace o z├бlohov├бn├н Immiche naleznete v <link>dokumentaci</link>.",
"backup_onboarding_parts_title": "Z├бloha 3-2-1 zahrnuje:",
"backup_onboarding_title": "Z├бlohy",
"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 +174,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 +218,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 +381,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": "Beta verze ─Нasov├й osy",
"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",
@@ -379,6 +405,7 @@
"album_cover_updated": "Obal alba aktualizov├бn",
"album_delete_confirmation": "Opravdu chcete album {album} odstranit?",
"album_delete_confirmation_description": "Pokud je toto album sd├нleno, ostatn├н u┼╛ivatel├й k n─Ыmu ji┼╛ nebudou m├нt p┼Щ├нstup.",
"album_deleted": "Album smaz├бno",
"album_info_card_backup_album_excluded": "VYLOU─МENO",
"album_info_card_backup_album_included": "ZAHRNUTO",
"album_info_updated": "Informace o albu aktualizov├бny",
@@ -388,6 +415,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 +435,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 +456,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 +494,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├н",
@@ -490,6 +519,7 @@
"back_close_deselect": "Zp─Ыt, zav┼Щ├нt nebo zru┼бit v├╜b─Ыr",
"background_location_permission": "Povolen├н polohy na pozad├н",
"background_location_permission_content": "Aby bylo mo┼╛n├й p┼Щep├нnat s├нt─Ы p┼Щi b─Ыhu na pozad├н, mus├н m├нt Immich *v┼╛dy* p┼Щ├нstup k p┼Щesn├й poloze, aby mohl zjistit n├бzev Wi-Fi s├нt─Ы",
"backup": "Z├бloha",
"backup_album_selection_page_albums_device": "Alba v za┼Щ├нzen├н ({count})",
"backup_album_selection_page_albums_tap": "Klepnut├нm na polo┼╛ku ji zahrnete, op─Ыtovn├╜m klepnut├нm ji vylou─Н├нte",
"backup_album_selection_page_assets_scatter": "Polo┼╛ky mohou b├╜t roztrou┼бeny ve v├нce albech. To umo┼╛┼Иuje zahrnout nebo vylou─Нit alba b─Ыhem procesu z├бlohov├бn├н.",
@@ -553,6 +583,8 @@
"backup_options_page_title": "Nastaven├н z├бloh",
"backup_setting_subtitle": "Spr├бva nastaven├н z├бlohov├бn├н na pozad├н a na pop┼Щed├н",
"backward": "Pozp├бtku",
"beta_sync": "Stav synchronizace (beta)",
"beta_sync_subtitle": "Spr├бva nov├йho syst├йmu synchronizace",
"biometric_auth_enabled": "Biometrick├й ov─Ы┼Щov├бn├н je povoleno",
"biometric_locked_out": "Jste vylou─Нeni z biometrick├йho ov─Ы┼Щov├бn├н",
"biometric_no_options": "Biometrick├й mo┼╛nosti nejsou k dispozici",
@@ -570,7 +602,7 @@
"cache_settings_clear_cache_button": "Vymazat vyrovn├бvac├н pam─Ы┼е",
"cache_settings_clear_cache_button_title": "Vyma┼╛e vyrovn├бvac├н pam─Ы┼е aplikace. To v├╜razn─Ы ovlivn├н v├╜kon aplikace, dokud se vyrovn├бvac├н pam─Ы┼е neobnov├н.",
"cache_settings_duplicated_assets_clear_button": "VYMAZAT",
"cache_settings_duplicated_assets_subtitle": "Fotografie a videa, kter├й aplikace za┼Щadila na ─Нernou listinu",
"cache_settings_duplicated_assets_subtitle": "Fotografie a videa, kter├й aplikace ignoruje",
"cache_settings_duplicated_assets_title": "Duplicitn├н polo┼╛ky ({count})",
"cache_settings_statistics_album": "Knihovna n├бhled┼п",
"cache_settings_statistics_full": "Kompletn├н fotografie",
@@ -587,6 +619,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",
@@ -700,10 +733,11 @@
"current_server_address": "Aktu├бln├н adresa serveru",
"custom_locale": "Vlastn├н lokalizace",
"custom_locale_description": "Form├бtovat datumy a ─Н├нsla podle jazyka a oblasti",
"custom_url": "Vlastn├н URL",
"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 +753,8 @@
"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_confirmation_message": "Opravdu chcete odstranit tuto polo┼╛ku? Tato akce p┼Щesune polo┼╛ku do serverov├йho ko┼бe a zept├б se v├бs, zda ji chcete odstranit lok├бln─Ы",
"delete_action_prompt": "{count} smaz├бno",
"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,9 +768,12 @@
"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├н",
"delete_others": "Smazat ostatn├н",
"delete_permanently": "Trvale smazat",
"delete_permanently_action_prompt": "{count} trvale smaz├бno",
"delete_shared_link": "Smazat sd├нlen├╜ odkaz",
"delete_shared_link_dialog_title": "Odstranit sd├нlen├╜ odkaz",
"delete_tag": "Smazat zna─Нku",
@@ -745,6 +784,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 +802,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─Ы",
@@ -788,6 +829,7 @@
"edit": "Upravit",
"edit_album": "Upravit album",
"edit_avatar": "Upravit avatar",
"edit_birthday": "Upravit datum narozen├н",
"edit_date": "Upravit datum",
"edit_date_and_time": "Upravit datum a ─Нas",
"edit_description": "Upravit popis",
@@ -799,6 +841,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 +860,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 +905,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 +920,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",
@@ -953,6 +997,7 @@
},
"exif": "Exif",
"exif_bottom_sheet_description": "P┼Щidat popis...",
"exif_bottom_sheet_description_error": "Chyba p┼Щi aktualizaci popisu",
"exif_bottom_sheet_details": "PODROBNOSTI",
"exif_bottom_sheet_location": "POLOHA",
"exif_bottom_sheet_people": "LID├Й",
@@ -973,6 +1018,8 @@
"explorer": "Pr┼пzkumn├нk",
"export": "Export",
"export_as_json": "Exportovat jako JSON",
"export_database": "Exportovat datab├бzi",
"export_database_description": "Exportovat datab├бzi SQLite",
"extension": "P┼Щ├нpona",
"external": "Extern├н",
"external_libraries": "Extern├н knihovny",
@@ -984,6 +1031,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",
@@ -1023,6 +1071,9 @@
"haptic_feedback_switch": "Povolit dotykovou zp─Ыtnou vazbu",
"haptic_feedback_title": "Dotykov├б zp─Ыtn├б vazba",
"has_quota": "M├б kv├│tu",
"hash_asset": "Hash polo┼╛ky",
"hashed_assets": "Hashovan├й polo┼╛ky",
"hashing": "Hashov├бn├н",
"header_settings_add_header_tip": "P┼Щidat hlavi─Нku",
"header_settings_field_validator_msg": "Hodnota nem┼п┼╛e b├╜t pr├бzdn├б",
"header_settings_header_name_input": "N├бzev hlavi─Нky",
@@ -1055,6 +1106,7 @@
"host": "Hostitel",
"hour": "Hodina",
"id": "ID",
"idle": "Ne─Нinnost",
"ignore_icloud_photos": "Ignorovat fotografie na iCloudu",
"ignore_icloud_photos_description": "Fotografie ulo┼╛en├й na iCloudu se nebudou nahr├бvat na Immich server",
"image": "Obr├бzek",
@@ -1112,6 +1164,7 @@
"language_no_results_title": "Nebyly nalezeny ┼╛├бdn├й jazyky",
"language_search_hint": "Vyhledat jazyk...",
"language_setting_description": "Vyberte up┼Щednost┼Иovan├╜ jazyk",
"large_files": "Velk├й soubory",
"last_seen": "Naposledy vid─Ыno",
"latest_version": "Nejnov─Ыj┼б├н verze",
"latitude": "Zem─Ыpisn├б ┼б├н┼Щka",
@@ -1127,16 +1180,18 @@
"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",
"link_options": "Mo┼╛nosti odkazu",
"link_to_oauth": "Propojit s OAuth",
"linked_oauth_account": "Propojen├╜ OAuth ├║─Нet",
"list": "Seznam",
"loading": "Na─Н├нt├бn├н",
"loading_search_results_failed": "Na─Н├нt├бn├н v├╜sledk┼п vyhled├бv├бn├н se nezda┼Щilo",
"local": "M├нstn├н",
"local_asset_cast_failed": "Nelze odeslat polo┼╛ku, kter├б nen├н nahran├б na serveru",
"local_assets": "M├нstn├н polo┼╛ky",
"local_network": "M├нstn├н s├н┼е",
"local_network_sheet_info": "Aplikace se p┼Щi pou┼╛it├н zadan├й s├нt─Ы Wi-Fi p┼Щipoj├н k serveru prost┼Щednictv├нm tohoto URL",
"location_permission": "Opr├бvn─Ыn├н polohy",
@@ -1193,8 +1248,7 @@
"manage_your_devices": "Spr├бva p┼Щihl├б┼бen├╜ch za┼Щ├нzen├н",
"manage_your_oauth_connection": "Spr├бva OAuth propojen├н",
"map": "Mapa",
"map_assets_in_bound": "{count} fotka",
"map_assets_in_bounds": "{count} fotek",
"map_assets_in_bounds": "{count, plural, one {# fotka} few{# fotky} other {# fotek}}",
"map_cannot_get_user_location": "Nelze zjistit polohu u┼╛ivatele",
"map_location_dialog_yes": "Ano",
"map_location_picker_page_use_location": "Pou┼╛├нt tuto polohu",
@@ -1246,10 +1300,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",
@@ -1292,6 +1347,7 @@
"no_results": "┼╜├бdn├й v├╜sledky",
"no_results_description": "Zkuste pou┼╛├нt synonymum nebo obecn─Ыj┼б├н kl├н─Нov├й slovo",
"no_shared_albums_message": "Vytvo┼Щte si album a sd├нlejte fotografie a videa s lidmi ve sv├й s├нti",
"no_uploads_in_progress": "Neprob├нh├б ┼╛├бdn├й nahr├бv├бn├н",
"not_in_any_album": "Bez alba",
"not_selected": "Nen├н vybr├бno",
"note_apply_storage_label_to_previously_uploaded assets": "Upozorn─Ыn├н: Chcete-li pou┼╛├нt ┼бt├нtek ├║lo┼╛i┼бt─Ы na d┼Щ├нve nahran├й polo┼╛ky, spus┼еte p┼Щ├нkaz",
@@ -1329,6 +1385,7 @@
"original": "origin├бl",
"other": "Ostatn├н",
"other_devices": "Ostatn├н za┼Щ├нzen├н",
"other_entities": "Ostatn├н entity",
"other_variables": "Dal┼б├н prom─Ыnn├й",
"owned": "Vlastn├н",
"owner": "Vlastn├нk",
@@ -1460,6 +1517,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}}",
@@ -1488,6 +1546,8 @@
"refreshing_faces": "Obnovov├бn├н obli─Нej┼п",
"refreshing_metadata": "Obnovov├бn├н metadat",
"regenerating_thumbnails": "Regenerace miniatur",
"remote": "Vzd├бlen├╜",
"remote_assets": "Vzd├бlen├й polo┼╛ky",
"remove": "Odstranit",
"remove_assets_album_confirmation": "Opravdu chcete z alba odstranit {count, plural, one {# polo┼╛ku} few {# polo┼╛ky} other {# polo┼╛ek}}?",
"remove_assets_shared_link_confirmation": "Opravdu chcete ze sd├нlen├йho odkazu odstranit {count, plural, one {# polo┼╛ku} few {# polo┼╛ky} other {# polo┼╛ek}}?",
@@ -1495,7 +1555,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",
@@ -1523,19 +1585,25 @@
"reset_password": "Obnovit heslo",
"reset_people_visibility": "Obnovit viditelnost lid├н",
"reset_pin_code": "Resetovat PIN k├│d",
"reset_sqlite": "Obnovit SQLite datab├бzi",
"reset_sqlite_confirmation": "Jste si jisti, ┼╛e chcete obnovit SQLite datab├бzi? Pro op─Ыtovnou synchronizaci dat se budete muset odhl├бsit a znovu p┼Щihl├бsit",
"reset_sqlite_success": "Obnoven├н SQLite datab├бze prob─Ыhlo ├║sp─Ы┼бn─Ы",
"reset_to_default": "Obnovit v├╜choz├н nastaven├н",
"resolve_duplicates": "Vy┼Щe┼бit duplicity",
"resolved_all_duplicates": "Vy┼Щe┼бeny v┼бechny duplicity",
"restore": "Obnovit",
"restore_all": "Obnovit v┼бe",
"restore_trash_action_prompt": "{count} obnoveno z ko┼бe",
"restore_user": "Obnovit u┼╛ivatele",
"restored_asset": "Polo┼╛ka obnovena",
"resume": "Pokra─Нovat",
"retry_upload": "Opakov├бn├н nahr├бv├бn├н",
"review_duplicates": "Kontrola duplicit",
"review_large_files": "Kontrola velk├╜ch soubor┼п",
"role": "Role",
"role_editor": "Editor",
"role_viewer": "Div├бk",
"running": "Prob├нh├б",
"save": "Ulo┼╛it",
"save_to_gallery": "Ulo┼╛it do galerie",
"saved_api_key": "API kl├н─Н ulo┼╛en",
@@ -1667,6 +1735,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...",
@@ -1688,6 +1757,7 @@
"shared_link_clipboard_copied_massage": "Zkop├нrov├бno do schr├бnky",
"shared_link_clipboard_text": "Odkaz: {link}\nHeslo: {password}",
"shared_link_create_error": "Chyba p┼Щi vytv├б┼Щen├н sd├нlen├йho odkazu",
"shared_link_custom_url_description": "P┼Щ├нstup k tomuto sd├нlen├йmu odkazu pomoc├н vlastn├нho URL",
"shared_link_edit_description_hint": "Zadejte popis sd├нlen├н",
"shared_link_edit_expire_after_option_day": "1 den",
"shared_link_edit_expire_after_option_days": "{count} dn├н",
@@ -1713,6 +1783,7 @@
"shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Spravovat sd├нlen├й odkazy",
"shared_link_options": "Mo┼╛nosti sd├нlen├йho odkazu",
"shared_link_password_description": "Vy┼╛adovat heslo pro p┼Щ├нstup k tomuto sd├нlen├йmu odkazu",
"shared_links": "Sd├нlen├й odkazy",
"shared_links_description": "Sd├нlet fotky a videa pomoc├н odkazu",
"shared_photos_and_videos_count": "{assetCount, plural, one {# sd├нlen├б fotografie a video.} few {# sd├нlen├й fotografie a videa.} other {# sd├нlen├╜ch fotografi├н a vide├н.}}",
@@ -1768,6 +1839,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├н",
@@ -1787,6 +1859,7 @@
"storage_quota": "Kv├│ta ├║lo┼╛i┼бt─Ы",
"storage_usage": "Vyu┼╛ito {used} z {available}",
"submit": "Odeslat",
"success": "├Ъsp─Ыch",
"suggestions": "N├бvrhy",
"sunrise_on_the_beach": "V├╜chod slunce na pl├б┼╛i",
"support": "Podpora",
@@ -1796,6 +1869,8 @@
"sync": "Synchronizovat",
"sync_albums": "Synchronizovat alba",
"sync_albums_manual_subtitle": "Synchronizovat v┼бechna nahran├б videa a fotografie do vybran├╜ch z├бlo┼╛n├нch alb",
"sync_local": "Synchronizovat m├нstn├н",
"sync_remote": "Synchronizovat vzd├бlen├й",
"sync_upload_album_setting_subtitle": "Vytvo┼Щit a nahr├бt fotografie a videa do vybran├╜ch alb na Immich",
"tag": "Zna─Нka",
"tag_assets": "P┼Щi┼Щadit zna─Нku",
@@ -1806,6 +1881,7 @@
"tag_updated": "Aktualizov├бna zna─Нka: {tag}",
"tagged_assets": "P┼Щi┼Щazena zna─Нka {count, plural, one {# polo┼╛ce} other {# polo┼╛k├бm}}",
"tags": "Zna─Нky",
"tap_to_run_job": "Klepnut├нm na spust├нte ├║lohu",
"template": "┼аablona",
"theme": "Motiv",
"theme_selection": "V├╜b─Ыr motivu",
@@ -1838,6 +1914,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 +1931,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,15 +1954,20 @@
"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_action_prompt": "{count} ve front─Ы pro nahr├бn├н",
"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.",
"upload_finished": "Nahr├бv├бn├н dokon─Нeno",
"upload_progress": "Zb├╜v├б {remaining, number} - Zpracov├бno {processed, number}/{total, number}",
"upload_skipped_duplicates": "{count, plural, one {P┼Щesko─Нena # duplicitn├н polo┼╛ka} few {P┼Щesko─Нeny # duplicitn├н polo┼╛ky} other {P┼Щesko─Нeno # duplicitn├нch polo┼╛ek}}",
"upload_status_duplicates": "Duplicity",
@@ -1892,6 +1976,7 @@
"upload_success": "Nahr├бn├н prob─Ыhlo ├║sp─Ы┼бn─Ы, obnoven├нm str├бnky se zobraz├н nov─Ы nahran├й polo┼╛ky.",
"upload_to_immich": "Nahr├бt do Immich ({count})",
"uploading": "Nahr├бv├бn├н",
"uploading_media": "Nahr├бv├бn├н m├йdi├н",
"url": "URL",
"usage": "Vyu┼╛it├н",
"use_biometric": "Pou┼╛├нt biometrick├й ├║daje",
@@ -1912,6 +1997,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 +2016,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 +2028,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├н",

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,20 @@
"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",
"nightly_tasks_cluster_new_faces_setting": "Grupp├йr nye ansigter",
"nightly_tasks_database_cleanup_setting": "Databaseoprydning opgaver",
"nightly_tasks_database_cleanup_setting_description": "Ryd op i gamle, udl├╕bne data fra databasen",
"nightly_tasks_generate_memories_setting": "Generer minder",
"nightly_tasks_generate_memories_setting_description": "Skab nye minder ud fra dine medier",
"nightly_tasks_missing_thumbnails_setting": "Generer manglende miniaturebilleder",
"nightly_tasks_missing_thumbnails_setting_description": "S├жt medier uden thumbnails i k├╕ til generering af thumbnails",
"nightly_tasks_settings": "Indstillinger for opgaver om natten",
"nightly_tasks_settings_description": "Administr├йr opgaver om natten",
"nightly_tasks_start_time_setting": "Starttidspunkt",
"nightly_tasks_start_time_setting_description": "Tidspunktet hvor serveren begynder at k├╕re opgaver om natten",
"nightly_tasks_sync_quota_usage_setting": "Synkronis├йr kvoteforbrug",
"nightly_tasks_sync_quota_usage_setting_description": "Opdater brugerens lagerkvote baseret p├е aktuelt forbrug",
"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",
@@ -203,7 +218,7 @@
"oauth_storage_quota_claim": "Lagringskvotefordring",
"oauth_storage_quota_claim_description": "S├жt automatisk brugeres lagringskvote til denne nye fordrings v├жrdi.",
"oauth_storage_quota_default": "Standard lagringskvote (GiB)",
"oauth_storage_quota_default_description": "Kvote i GiB som bruges, n├еr der ikke bliver oplyst en fordring (Indtast 0 for uendelig kvote).",
"oauth_storage_quota_default_description": "Kvote i GiB som bruges, n├еr der ikke bliver oplyst en fordring.",
"oauth_timeout": "Foresp├╕rgslen udl├╕b",
"oauth_timeout_description": "Udl├╕bstid for foresp├╕rgsel i milisekunder",
"password_enable_description": "Log ind med email og adgangskode",
@@ -462,7 +477,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",
@@ -488,6 +502,7 @@
"back_close_deselect": "Tilbage, luk eller frav├жlg",
"background_location_permission": "Tilladelse til baggrundsplacering",
"background_location_permission_content": "For at skifte netv├жrk, n├еr appen k├╕rer i baggrunden, skal Immich *altid* have pr├жcis placeringsadgang, s├е appen kan l├жse WiFi-netv├жrkets navn",
"backup": "Sikkerhedskopier",
"backup_album_selection_page_albums_device": "Albummer p├е enheden ({count})",
"backup_album_selection_page_albums_tap": "Tryk en gang for at inkludere, tryk to gange for at ekskludere",
"backup_album_selection_page_assets_scatter": "Elementer kan v├жre spredt p├е tv├жrs af flere albummer. Albummer kan s├еledes inkluderes eller udelukkes under sikkerhedskopieringsprocessen.",
@@ -701,7 +716,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",
@@ -1128,7 +1142,6 @@
"light": "Lys",
"like_deleted": "Ligesom slettet",
"link_motion_video": "Link bev├жgelsesvideo",
"link_options": "Link-indstillinger",
"link_to_oauth": "Link til OAuth",
"linked_oauth_account": "Tilsluttet OAuth-konto",
"list": "Liste",
@@ -1190,7 +1203,6 @@
"manage_your_devices": "Administr├йr dine enheder der er logget ind",
"manage_your_oauth_connection": "Administr├йr din OAuth-tilslutning",
"map": "Kort",
"map_assets_in_bound": "{count} billede",
"map_assets_in_bounds": "{count} billeder",
"map_cannot_get_user_location": "Kan ikke finde brugerens placering",
"map_location_dialog_yes": "Ja",

View File

@@ -14,6 +14,7 @@
"add_a_location": "Standort hinzuf├╝gen",
"add_a_name": "Name hinzuf├╝gen",
"add_a_title": "Titel hinzuf├╝gen",
"add_birthday": "Geburtsdatum hinzuf├╝gen",
"add_endpoint": "Endpunkt hinzuf├╝gen",
"add_exclusion_pattern": "Ausschlussmuster hinzuf├╝gen",
"add_import_path": "Importpfad hinzuf├╝gen",
@@ -41,9 +42,16 @@
"authentication_settings_disable_all": "Bist du sicher, dass du alle Anmeldemethoden deaktivieren willst? Die Anmeldung wird vollst├дndig deaktiviert.",
"authentication_settings_reenable": "Nutze einen <link>Server-Befehl</link> zur Reaktivierung.",
"background_task_job": "Hintergrundaufgaben",
"backup_database": "Datenbanksicherung regelm├д├Яig erstellen",
"backup_database": "Datenbanksicherung erstellen",
"backup_database_enable_description": "Datenbank regelm├д├Яig sichern",
"backup_keep_last_amount": "Anzahl der aufzubewahrenden fr├╝heren Backups",
"backup_onboarding_1_description": "Offsite-Kopie in der Cloud oder an einem anderen physischen Ort.",
"backup_onboarding_2_description": "Lokale Kopien auf verschiedenen Ger├дten. Dazu geh├╢ren die Hauptdateien und eine lokale Sicherung dieser Dateien.",
"backup_onboarding_3_description": "3 komplette Kopien deiner Daten, inkl. der Originaldateien. Dies umfasst 1 Kopie an einem anderen Ort und 2 lokale Kopie.",
"backup_onboarding_description": "Eine <backblaze-link>3-2-1 Backup-Strategie</backblaze-link> wird empfohlen, um deine Daten zu sch├╝tzen. Du solltest sowohl Kopien deiner hochgeladenen Fotos/Videos als auch der Immich-Datenbank aufbewahren, um eine umfassende Backup-L├╢sung zu haben.",
"backup_onboarding_footer": "Weitere Informationen zum Sichern von Immich findest du in der <link>Dokumentation</link>.",
"backup_onboarding_parts_title": "Eine 3-2-1-Sicherung umfasst:",
"backup_onboarding_title": "Backups",
"backup_settings": "Einstellungen f├╝r Datenbanksicherung",
"backup_settings_description": "Einstellungen zur regelm├д├Яigen Sicherung der Datenbank. Hinweis: Diese Jobs werden nicht ├╝berwacht und du wirst nicht ├╝ber Fehler informiert.",
"cleared_jobs": "Folgende Aufgaben zur├╝ckgesetzt: {job}",
@@ -56,9 +64,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",
@@ -120,7 +128,7 @@
"machine_learning_duplicate_detection_setting_description": "Verwendung von CLIP-Embeddings zum Erkennen m├╢glicher Duplikate",
"machine_learning_enabled": "Maschinelles Lernen aktivieren",
"machine_learning_enabled_description": "Wenn diese Option deaktiviert ist, werden alle ML-Funktionen unabh├дngig von den unten aufgef├╝hrten Einstellungen deaktiviert.",
"machine_learning_facial_recognition": "Gesichtsidentifikation",
"machine_learning_facial_recognition": "Gesichtsidentifizierung",
"machine_learning_facial_recognition_description": "Erkenne, identifiziere und gruppiere Gesichter in Bildern",
"machine_learning_facial_recognition_model": "Gesichtserkennungs-Modell",
"machine_learning_facial_recognition_model_description": "Die Modelle sind in absteigender Reihenfolge ihrer Gr├╢├Яe aufgef├╝hrt. Gr├╢├Яere Modelle sind langsamer und verbrauchen mehr Speicher, liefern aber bessere Ergebnisse. Bitte beachte dabei, dass du die Gesichtserkennungsaufgabe f├╝r alle Bilder neu starten musst, wenn du ein Modell ├дnderst.",
@@ -166,6 +174,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 +218,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 +268,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,17 +381,19 @@
"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",
"advanced_settings_self_signed_ssl_subtitle": "Verifizierung von SSL-Zertifikaten vom Server ├╝berspringen. Notwendig bei selbstsignierten Zertifikaten.",
"advanced_settings_self_signed_ssl_title": "Selbstsignierte SSL-Zertifikate erlauben",
"advanced_settings_sync_remote_deletions_subtitle": "Automatisches L├╢schen oder Wiederherstellen einer Datei auf diesem Ger├дt, wenn diese Aktion im Web durchgef├╝hrt wird",
"advanced_settings_sync_remote_deletions_title": "Synchrone Remote-L├╢schungen [Experimentell]",
"advanced_settings_sync_remote_deletions_title": "Mit Server-L├╢schungen synchronisieren [Experimentell]",
"advanced_settings_tile_subtitle": "Erweiterte Benutzereinstellungen",
"advanced_settings_troubleshooting_subtitle": "Erweiterte Funktionen zur Fehlersuche aktivieren",
"advanced_settings_troubleshooting_title": "Fehlersuche",
@@ -378,6 +405,7 @@
"album_cover_updated": "Album-Cover aktualisiert",
"album_delete_confirmation": "Bist du sicher, dass du das Album {album} l├╢schen willst?",
"album_delete_confirmation_description": "Falls dieses Album geteilt wurde, k├╢nnen andere Benutzer nicht mehr darauf zugreifen.",
"album_deleted": "Album gel├╢scht",
"album_info_card_backup_album_excluded": "AUSGESCHLOSSEN",
"album_info_card_backup_album_included": "EINGESCHLOSSEN",
"album_info_updated": "Album-Infos aktualisiert",
@@ -387,6 +415,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 +435,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 +456,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 +494,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",
@@ -489,6 +519,7 @@
"back_close_deselect": "Zur├╝ck, Schlie├Яen oder Abw├дhlen",
"background_location_permission": "Hintergrund Standortfreigabe",
"background_location_permission_content": "Um im Hintergrund zwischen den Netzwerken wechseln zu k├╢nnen, muss Immich *immer* Zugriff auf den genauen Standort haben, damit die App den Namen des WLAN-Netzwerks ermitteln kann",
"backup": "Sicherung",
"backup_album_selection_page_albums_device": "Alben auf dem Ger├дt ({count})",
"backup_album_selection_page_albums_tap": "Einmalig das Album antippen um es zu sichern, doppelt antippen um es nicht mehr zu sichern",
"backup_album_selection_page_assets_scatter": "Elemente (Fotos / Videos) k├╢nnen sich ├╝ber mehrere Alben verteilen. Daher k├╢nnen diese vor der Sicherung eingeschlossen oder ausgeschlossen werden.",
@@ -552,6 +583,8 @@
"backup_options_page_title": "Sicherungsoptionen",
"backup_setting_subtitle": "Verwaltung der Upload-Einstellungen im Hintergrund und im Vordergrund",
"backward": "R├╝ckw├дrts",
"beta_sync": "Status der Beta-Synchronisierung",
"beta_sync_subtitle": "Verwalte das neue Synchronisierungssystem",
"biometric_auth_enabled": "Biometrische Authentifizierung aktiviert",
"biometric_locked_out": "Du bist von der biometrischen Authentifizierung ausgeschlossen",
"biometric_no_options": "Keine biometrischen Optionen verf├╝gbar",
@@ -586,6 +619,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",
@@ -699,10 +733,11 @@
"current_server_address": "Aktuelle Serveradresse",
"custom_locale": "Benutzerdefinierte Sprache",
"custom_locale_description": "Datumsangaben und Zahlen je nach Sprache und Land formatieren",
"custom_url": "Benutzerdefinierte URL",
"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 +753,8 @@
"default_locale": "Standard-Sprache",
"default_locale_description": "Datumsangaben und Zahlen basierend auf dem Gebietsschema des Browsers formatieren",
"delete": "L├╢schen",
"delete_action_confirmation_message": "Bist du sicher, dass du dieses Objekt l├╢schen willst? Diese Aktion wird das Objekt in den Papierkorb des Servers verschieben und fragen, ob du es lokal l├╢schen willst",
"delete_action_prompt": "{count} 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,9 +768,12 @@
"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",
"delete_permanently": "Endg├╝ltig l├╢schen",
"delete_permanently_action_prompt": "{count} endg├╝ltig gel├╢scht",
"delete_shared_link": "geteilten Link l├╢schen",
"delete_shared_link_dialog_title": "Geteilten Link l├╢schen",
"delete_tag": "Tag l├╢schen",
@@ -744,6 +784,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 +802,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",
@@ -787,6 +829,7 @@
"edit": "Bearbeiten",
"edit_album": "Album bearbeiten",
"edit_avatar": "Avatar bearbeiten",
"edit_birthday": "Geburtsdatum bearbeiten",
"edit_date": "Datum bearbeiten",
"edit_date_and_time": "Datum und Uhrzeit bearbeiten",
"edit_description": "Beschreibung bearbeiten",
@@ -798,6 +841,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 +860,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",
@@ -952,6 +997,7 @@
},
"exif": "EXIF",
"exif_bottom_sheet_description": "Beschreibung hinzuf├╝gen...",
"exif_bottom_sheet_description_error": "Fehler bei der Aktualisierung der Beschreibung",
"exif_bottom_sheet_details": "DETAILS",
"exif_bottom_sheet_location": "STANDORT",
"exif_bottom_sheet_people": "PERSONEN",
@@ -972,6 +1018,8 @@
"explorer": "Datei-Explorer",
"export": "Exportieren",
"export_as_json": "Als JSON exportieren",
"export_database": "Datenbank exportieren",
"export_database_description": "Exportiert die SQLite Datenbank",
"extension": "Erweiterung",
"external": "Extern",
"external_libraries": "Externe Bibliotheken",
@@ -983,6 +1031,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",
@@ -1022,6 +1071,9 @@
"haptic_feedback_switch": "Haptisches Feedback aktivieren",
"haptic_feedback_title": "Haptisches Feedback",
"has_quota": "Kontingent",
"hash_asset": "Dateihash",
"hashed_assets": "Gehashte Dateien",
"hashing": "Hashen",
"header_settings_add_header_tip": "Header hinzuf├╝gen",
"header_settings_field_validator_msg": "Der Wert darf nicht leer sein",
"header_settings_header_name_input": "Header-Name",
@@ -1043,7 +1095,7 @@
"home_page_archive_err_partner": "Inhalte von Partnern k├╢nnen nicht archiviert werden",
"home_page_building_timeline": "Zeitachse wird erstellt",
"home_page_delete_err_partner": "Inhalte von Partnern k├╢nnen nicht gel├╢scht werden, ├╝berspringe",
"home_page_delete_remote_err_local": "Lokale Inhalte in der Auswahl, ├╝berspringen",
"home_page_delete_remote_err_local": "Lokale Elemente in der Auswahl zum Entfernen von Remote-Elementen, ├Ьberspringe",
"home_page_favorite_err_local": "Kann lokale Elemente noch nicht favorisieren, ├╝berspringen",
"home_page_favorite_err_partner": "Inhalte von Partnern k├╢nnen nicht favorisiert werden, ├╝berspringe",
"home_page_first_time_notice": "Wenn dies das erste Mal ist dass Du Immich nutzt, stelle bitte sicher, dass mindestens ein Album zur Sicherung ausgew├дhlt ist, sodass die Zeitachse mit Fotos und Videos gef├╝llt werden kann",
@@ -1054,6 +1106,7 @@
"host": "Host",
"hour": "Stunde",
"id": "ID",
"idle": "Unt├дtig",
"ignore_icloud_photos": "iCloud Fotos ignorieren",
"ignore_icloud_photos_description": "Fotos, die in der iCloud gespeichert sind, werden nicht auf den immich Server hochgeladen",
"image": "Bild",
@@ -1111,6 +1164,7 @@
"language_no_results_title": "Keine Sprachen gefunden",
"language_search_hint": "Sprachen durchsuchen...",
"language_setting_description": "W├дhle deine bevorzugte Sprache",
"large_files": "Gro├Яe Dateien",
"last_seen": "Zuletzt gesehen",
"latest_version": "Aktuellste Version",
"latitude": "Breitengrad",
@@ -1126,16 +1180,18 @@
"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",
"link_options": "Link-Optionen",
"link_to_oauth": "Mit OAuth verkn├╝pfen",
"linked_oauth_account": "Verkn├╝pftes OAuth-Konto",
"list": "Liste",
"loading": "Laden",
"loading_search_results_failed": "Laden von Suchergebnissen fehlgeschlagen",
"local": "Lokal",
"local_asset_cast_failed": "Eine Datei, die nicht auf den Server hochgeladen wurde, kann nicht gecastet werden",
"local_assets": "Lokale Dateien",
"local_network": "Lokales Netzwerk",
"local_network_sheet_info": "Die App stellt ├╝ber diese URL eine Verbindung zum Server her, wenn sie das angegebene WLAN-Netzwerk verwendet",
"location_permission": "Standort Genehmigung",
@@ -1192,8 +1248,7 @@
"manage_your_devices": "Deine eingeloggten Ger├дte verwalten",
"manage_your_oauth_connection": "Deine OAuth-Verkn├╝pfung verwalten",
"map": "Karte",
"map_assets_in_bound": "{count} Foto",
"map_assets_in_bounds": "{count} Fotos",
"map_assets_in_bounds": "{count, plural, one {# Foto} other {# Fotos}}",
"map_cannot_get_user_location": "Standort konnte nicht ermittelt werden",
"map_location_dialog_yes": "Ja",
"map_location_picker_page_use_location": "Aufnahmeort verwenden",
@@ -1245,6 +1300,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",
@@ -1291,6 +1347,7 @@
"no_results": "Keine Ergebnisse",
"no_results_description": "Versuche es mit einem Synonym oder einem allgemeineren Stichwort",
"no_shared_albums_message": "Erstelle ein Album, um Fotos und Videos mit Personen in deinem Netzwerk zu teilen",
"no_uploads_in_progress": "Kein Upload in Bearbeitung",
"not_in_any_album": "In keinem Album",
"not_selected": "Nicht ausgew├дhlt",
"note_apply_storage_label_to_previously_uploaded assets": "Hinweis: Um eine Speicherpfadbezeichnung anzuwenden, starte den",
@@ -1328,6 +1385,7 @@
"original": "Original",
"other": "Sonstiges",
"other_devices": "Andere Ger├дte",
"other_entities": "Andere Entit├дten",
"other_variables": "Sonstige Variablen",
"owned": "Eigenes",
"owner": "Besitzer",
@@ -1459,6 +1517,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}}",
@@ -1487,6 +1546,8 @@
"refreshing_faces": "Gesichter werden aktualisiert",
"refreshing_metadata": "Metadaten werden aktualisiert",
"regenerating_thumbnails": "Miniaturansichten werden neu erstellt",
"remote": "Server",
"remote_assets": "Server-Dateien",
"remove": "Entfernen",
"remove_assets_album_confirmation": "Bist du sicher, dass du {count, plural, one {# Datei} other {# Dateien}} aus dem Album entfernen willst?",
"remove_assets_shared_link_confirmation": "Bist du sicher, dass du {count, plural, one {# Datei} other {# Dateien}} von diesem geteilten Link entfernen willst?",
@@ -1494,7 +1555,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",
@@ -1522,19 +1585,25 @@
"reset_password": "Passwort zur├╝cksetzen",
"reset_people_visibility": "Sichtbarkeit von Personen zur├╝cksetzen",
"reset_pin_code": "PIN Code zur├╝cksetzen",
"reset_sqlite": "SQLite Datenbank zur├╝cksetzen",
"reset_sqlite_confirmation": "Bist du sicher, dass du die SQLite-Datenbank zur├╝cksetzen willst? Du musst dich ab- und wieder anmelden, um die Daten neu zu synchronisieren",
"reset_sqlite_success": "SQLite Datenbank erfolgreich zur├╝ckgesetzt",
"reset_to_default": "Auf Standard zur├╝cksetzen",
"resolve_duplicates": "Duplikate entfernen",
"resolved_all_duplicates": "Alle Duplikate aufgel├╢st",
"restore": "Wiederherstellen",
"restore_all": "Alle wiederherstellen",
"restore_trash_action_prompt": "{count} aus dem Papierkorb wiederhergestellt",
"restore_user": "Nutzer wiederherstellen",
"restored_asset": "Datei wiederhergestellt",
"resume": "Fortsetzen",
"retry_upload": "Upload wiederholen",
"review_duplicates": "Duplikate ├╝berpr├╝fen",
"review_large_files": "Gro├Яe Dateien ├╝berpr├╝fen",
"role": "Rolle",
"role_editor": "Bearbeiter",
"role_viewer": "Betrachter",
"running": "L├дuft",
"save": "Speichern",
"save_to_gallery": "In Galerie speichern",
"saved_api_key": "API-Schl├╝ssel wurde gespeichert",
@@ -1666,6 +1735,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...",
@@ -1687,6 +1757,7 @@
"shared_link_clipboard_copied_massage": "Link kopiert",
"shared_link_clipboard_text": "Link: {link}\nPasswort: {password}",
"shared_link_create_error": "Fehler beim Erstellen der Linkfreigabe",
"shared_link_custom_url_description": "Greife ├╝ber eine benutzerdefinierte URL auf diesen Freigabelink zu",
"shared_link_edit_description_hint": "Beschreibung eingeben",
"shared_link_edit_expire_after_option_day": "1 Tag",
"shared_link_edit_expire_after_option_days": "{count} Tagen",
@@ -1712,6 +1783,7 @@
"shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Geteilte Links verwalten",
"shared_link_options": "Optionen f├╝r geteilten Link",
"shared_link_password_description": "F├╝r den Zugriff auf diesen freigegebenen Link ist ein Passwort erforderlich",
"shared_links": "Geteilte Links",
"shared_links_description": "Teile Fotos und Videos mit einem Link",
"shared_photos_and_videos_count": "{assetCount, plural, one {# geteiltes Foto oder Video.} other {# geteilte Fotos & Videos.}}",
@@ -1767,6 +1839,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",
@@ -1786,6 +1859,7 @@
"storage_quota": "Speicherplatz-Kontingent",
"storage_usage": "{used} von {available} verwendet",
"submit": "Best├дtigen",
"success": "Erfolgreich",
"suggestions": "Vorschl├дge",
"sunrise_on_the_beach": "Sonnenaufgang am Strand",
"support": "Unterst├╝tzung",
@@ -1795,6 +1869,8 @@
"sync": "Synchronisieren",
"sync_albums": "Alben synchronisieren",
"sync_albums_manual_subtitle": "Synchronisiere alle hochgeladenen Videos und Fotos in die ausgew├дhlten Backup-Alben",
"sync_local": "Lokal synchronisieren",
"sync_remote": "mit Server synchronisieren",
"sync_upload_album_setting_subtitle": "Erstelle deine ausgew├дhlten Alben in Immich und lade die Fotos und Videos dort hoch",
"tag": "Tag",
"tag_assets": "Dateien taggen",
@@ -1805,11 +1881,12 @@
"tag_updated": "Tag aktualisiert: {tag}",
"tagged_assets": "{count, plural, one {# Datei} other {# Dateien}} getagged",
"tags": "Tags",
"tap_to_run_job": "Tippen um den Job zu starten",
"template": "Vorlage",
"theme": "Theme",
"theme_selection": "Themenauswahl",
"theme_selection_description": "Automatische Einstellung des Themes auf Hell oder Dunkel, je nach Systemeinstellung des Browsers",
"theme_setting_asset_list_storage_indicator_title": "Forschrittsbalken der Sicherung auf dem Vorschaubild",
"theme_setting_asset_list_storage_indicator_title": "Fortschrittsbalken der Sicherung auf dem Vorschaubild",
"theme_setting_asset_list_tiles_per_row_title": "Anzahl der Elemente pro Reihe ({count})",
"theme_setting_colorful_interface_subtitle": "Prim├дrfarbe auf App-Hintergrund anwenden.",
"theme_setting_colorful_interface_title": "Farbige UI-Oberfl├дche",
@@ -1837,6 +1914,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 +1932,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,15 +1954,20 @@
"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_action_prompt": "{count} in der Warteschlange f├╝r Upload",
"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.",
"upload_finished": "Upload fertig",
"upload_progress": "{remaining, number} verbleibend - {processed, number}/{total, number} verarbeitet",
"upload_skipped_duplicates": "{count, plural, one {# doppelte Datei} other {# doppelte Dateien}} ausgelassen",
"upload_status_duplicates": "Duplikate",
@@ -1891,6 +1976,7 @@
"upload_success": "Hochladen erfolgreich. Aktualisiere die Seite, um neue hochgeladene Dateien zu sehen.",
"upload_to_immich": "Auf Immich hochladen ({count})",
"uploading": "Wird hochgeladen",
"uploading_media": "Medien werden hochgeladen",
"url": "URL",
"usage": "Verwendung",
"use_biometric": "Biometrie verwenden",
@@ -1911,6 +1997,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 +2016,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",

View File

@@ -166,6 +166,20 @@
"metadata_settings_description": "╬Ф╬╣╬▒╧З╬╡╬п╧Б╬╖╧Г╬╖ ╧Б╧Е╬╕╬╝╬п╧Г╬╡╧Й╬╜ ╬╝╬╡╧Д╬▒╬┤╬╡╬┤╬┐╬╝╬н╬╜╧Й╬╜",
"migration_job": "╬Ь╬╡╧Д╬▒╧Ж╬┐╧Б╬м ╬┤╬╡╬┤╬┐╬╝╬н╬╜╧Й╬╜ (Migration)",
"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": "╬С╧Е╧Д╧М╬╝╬▒╧Д╬╖ ╧А╬▒╧Б╬▒╧З╧О╧Б╬╖╧Г╬╖ ╧А╧Б╧М╧Г╬▓╬▒╧Г╬╖╧В ╬┤╬╣╬▒╧З╬╡╬╣╧Б╬╣╧Г╧Д╬о ╬╝╬╡ ╬▓╬м╧Г╬╖ ╧Д╬╖╬╜ ╧Н╧А╬▒╧Б╬╛╬╖ ╬▒╧Е╧Д╬о╧В ╧Д╬╖╧В ╬▒╬╜╬м╬╕╬╡╧Г╬╖╧В. ╬Ч ╬▒╬╜╬м╬╕╬╡╧Г╬╖ ╬╝╧А╬┐╧Б╬╡╬п ╬╜╬▒ ╬╡╬п╬╜╬▒╬╣ ╬╡╬п╧Д╬╡ '╧З╧Б╬о╧Г╧Д╬╖╧В' ╬╡╬п╧Д╬╡ '╬┤╬╣╬▒╧З╬╡╬╣╧Б╬╣╧Г╧Д╬о╧В'.",
"oauth_settings": "OAuth",
"oauth_settings_description": "╬Ф╬╣╬▒╧З╬╡╬п╧Б╬╣╧Г╬╖ ╧Б╧Е╬╕╬╝╬п╧Г╬╡╧Й╬╜ ╧Г╧Н╬╜╬┤╬╡╧Г╬╖╧В OAuth",
"oauth_settings_more_details": "╬У╬╣╬▒ ╧А╬╡╧Б╬╣╧Г╧Г╧М╧Д╬╡╧Б╬╡╧В ╬╗╬╡╧А╧Д╬┐╬╝╬н╧Б╬╡╬╣╬╡╧В ╧Г╧З╬╡╧Д╬╣╬║╬м ╬╝╬╡ ╬▒╧Е╧Д╬о╬╜ ╧Д╬╖ ╬┤╧Е╬╜╬▒╧Д╧М╧Д╬╖╧Д╬▒, ╬▒╬╜╬▒╧Д╧Б╬н╬╛╧Д╬╡ ╧Г╧Д╬╖╬╜ <link>╧Д╬╡╬║╬╝╬╖╧Б╬п╧Й╧Г╬╖</link>.",
@@ -357,10 +373,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": "╬Ъ╬╡╧Ж╬▒╬╗╬п╬┤╬╡╧В ╬┤╬╣╬▒╬║╬┐╬╝╬╣╧Г╧Д╬о ╬╝╬╡╧Г╬┐╬╗╬м╬▓╬╖╧Г╬╖╧В",
@@ -379,6 +397,7 @@
"album_cover_updated": "╬д╬┐ ╬╡╬╛╧О╧Ж╧Е╬╗╬╗╬┐ ╧Д╬┐╧Е ╬м╬╗╬╝╧А╬┐╧Е╬╝, ╬╡╬╜╬╖╬╝╬╡╧Б╧О╬╕╬╖╬║╬╡",
"album_delete_confirmation": "╬Х╬п╧Г╧Д╬╡ ╧Г╬п╬│╬┐╧Е╧Б╬┐╬╣ ╧М╧Д╬╣ ╬╕╬н╬╗╬╡╧Д╬╡ ╬╜╬▒ ╬┤╬╣╬▒╬│╧Б╬м╧И╬╡╧Д╬╡ ╧Д╬┐ ╬м╬╗╬╝╧А╬┐╧Е╬╝ {album};",
"album_delete_confirmation_description": "╬Х╬м╬╜ ╬▒╧Е╧Д╧М ╧Д╬┐ ╬м╬╗╬╝╧А╬┐╧Е╬╝ ╬╡╬п╬╜╬▒╬╣ ╬║╬┐╬╣╬╜╧М╧З╧Б╬╖╧Г╧Д╬┐, ╬┐╬╣ ╬м╬╗╬╗╬┐╬╣ ╧З╧Б╬о╧Г╧Д╬╡╧В ╬┤╬╡╬╜ ╬╕╬▒ ╬╝╧А╬┐╧Б╬┐╧Н╬╜ ╬╜╬▒ ╬н╧З╬┐╧Е╬╜ ╧А╧Б╧М╧Г╬▓╬▒╧Г╬╖.",
"album_deleted": "╬д╬┐ ╬м╬╗╬╝╧А╬┐╧Е╬╝ ╬┤╬╣╬▒╬│╧Б╬м╧Ж╬╖╬║╬╡",
"album_info_card_backup_album_excluded": "╬Х╬Ю╬С╬Щ╬б╬Я╬е╬Ь╬Х╬Э╬Я",
"album_info_card_backup_album_included": "╬г╬е╬Ь╬а╬Х╬б╬Щ╬Ы╬С╬Ь╬Т╬С╬Э╬Я╬Ь╬Х╬Э╬Я",
"album_info_updated": "╬Я╬╣ ╧А╬╗╬╖╧Б╬┐╧Ж╬┐╧Б╬п╬╡╧В ╧Д╬┐╧Е ╬м╬╗╬╝╧А╬┐╧Е╬╝, ╬╡╬╜╬╖╬╝╬╡╧Б╧О╬╕╬╖╬║╬▒╬╜",
@@ -388,6 +407,7 @@
"album_options": "╬Х╧А╬╣╬╗╬┐╬│╬н╧В ╬м╬╗╬╝╧А╬┐╧Е╬╝",
"album_remove_user": "╬Ф╬╣╬▒╬│╧Б╬▒╧Ж╬о ╧З╧Б╬о╧Г╧Д╬╖;",
"album_remove_user_confirmation": "╬Х╬п╧Г╧Д╬╡ ╧Г╬п╬│╬┐╧Е╧Б╬┐╬╣ ╧М╧Д╬╣ ╬╕╬н╬╗╬╡╧Д╬╡ ╬╜╬▒ ╬▒╧Ж╬▒╬╣╧Б╬н╧Г╬╡╧Д╬╡ ╧Д╬┐╬╜/╧Д╬╖╬╜ {user};",
"album_search_not_found": "╬Ф╬╡ ╬▓╧Б╬н╬╕╬╖╬║╬▒╬╜ ╬м╬╗╬╝╧А╬┐╧Е╬╝ ╧А╬┐╧Е ╬╜╬▒ ╧Д╬▒╬╣╧Б╬╣╬м╬╢╬┐╧Е╬╜ ╬╝╬╡ ╧Д╬╖╬╜ ╬▒╬╜╬▒╬╢╬о╧Д╬╖╧Г╬о ╧Г╬▒╧В",
"album_share_no_users": "╬ж╬▒╬п╬╜╬╡╧Д╬▒╬╣ ╧М╧Д╬╣ ╬н╧З╬╡╧Д╬╡ ╬║╬┐╬╣╬╜╬┐╧А╬┐╬╣╬о╧Г╬╡╬╣ ╬▒╧Е╧Д╧М ╧Д╬┐ ╬м╬╗╬╝╧А╬┐╧Е╬╝ ╧Г╬╡ ╧М╬╗╬┐╧Е╧В ╧Д╬┐╧Е╧В ╧З╧Б╬о╧Г╧Д╬╡╧В ╬о ╬┤╬╡╬╜ ╬н╧З╬╡╧Д╬╡ ╧З╧Б╬о╧Г╧Д╬╡╧В ╬│╬╣╬▒ ╬╜╬▒ ╧Д╬┐ ╬║╬┐╬╣╬╜╬┐╧А╬┐╬╣╬о╧Г╬╡╧Д╬╡.",
"album_updated": "╬д╬┐ ╬м╬╗╬╝╧А╬┐╧Е╬╝, ╬╡╬╜╬╖╬╝╬╡╧Б╧О╬╕╬╖╬║╬╡",
"album_updated_setting_description": "╬Ы╬м╬▓╬╡╧Д╬╡ ╬╡╬╣╬┤╬┐╧А╬┐╬п╬╖╧Г╬╖ ╬╝╬н╧Г╧Й email ╧М╧Д╬▒╬╜ ╬н╬╜╬▒ ╬║╬┐╬╣╬╜╧М╧З╧Б╬╖╧Г╧Д╬┐ ╬м╬╗╬╝╧А╬┐╧Е╬╝ ╬н╧З╬╡╬╣ ╬╜╬н╬▒ ╬▒╧Б╧З╬╡╬п╬▒",
@@ -407,6 +427,7 @@
"albums_default_sort_order": "╬а╧Б╬┐╬╡╧А╬╣╬╗╬╡╬│╬╝╬н╬╜╬╖ ╧Д╬▒╬╛╬╣╬╜╧М╬╝╬╖╧Г╬╖ ╬м╬╗╬╝╧А╬┐╧Е╬╝",
"albums_default_sort_order_description": "╬С╧Б╧З╬╣╬║╬о ╧Д╬▒╬╛╬╣╬╜╧М╬╝╬╖╧Г╬╖ ╬║╬▒╧Д╬м ╧Д╬╖ ╬┤╬╖╬╝╬╣╬┐╧Е╧Б╬│╬п╬▒ ╬╜╬н╧Й╬╜ ╬м╬╗╬╝╧А╬┐╧Е╬╝.",
"albums_feature_description": "╬г╧Е╬╗╬╗╬┐╬│╬н╧В ╧Г╧Д╬┐╬╣╧З╬╡╬п╧Й╬╜ ╧А╬┐╧Е ╬╝╧А╬┐╧Б╬┐╧Н╬╜ ╬╜╬▒ ╬║╬┐╬╣╬╜╬┐╧А╬┐╬╣╬╖╬╕╬┐╧Н╬╜ ╧Г╬╡ ╬м╬╗╬╗╬┐╧Е╧В ╧З╧Б╬о╧Г╧Д╬╡╧В.",
"albums_on_device_count": "╬Ж╬╗╬╝╧А╬┐╧Е╬╝ ╧Г╧Д╬╖ ╧Г╧Е╧Г╬║╬╡╧Е╬о ({count})",
"all": "╬М╬╗╬▒",
"all_albums": "╬М╬╗╬▒ ╧Д╬▒ ╬м╬╗╬╝╧А╬┐╧Е╬╝",
"all_people": "╬М╬╗╬▒ ╧Д╬▒ ╬м╧Д╬┐╬╝╬▒",
@@ -427,6 +448,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 +486,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} ╧Д╬▒ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒ ╬┤╬╣╬▒╬│╧Б╬м╧Ж╬╖╬║╬▒╬╜ ╬┐╧Б╬╣╧Г╧Д╬╣╬║╬м",
@@ -490,6 +511,7 @@
"back_close_deselect": "╬а╬п╧Г╧Й, ╬║╬╗╬╡╬п╧Г╬╣╬╝╬┐ ╬о ╬▒╧А╬┐╬╡╧А╬╣╬╗╬┐╬│╬о",
"background_location_permission": "╬Ж╬┤╬╡╬╣╬▒ ╧Д╬┐╧А╬┐╬╕╬╡╧Г╬п╬▒╧В ╧Г╧Д╬┐ ╧А╬▒╧Б╬▒╧Г╬║╬о╬╜╬╣╬┐",
"background_location_permission_content": "╬д╬┐ Immich ╬│╬╣╬▒ ╬╜╬▒ ╬╝╧А╬┐╧Б╬╡╬п ╬╜╬▒ ╬▒╬╗╬╗╬м╬╢╬╡╬╣ ╬┤╬п╬║╧Д╧Е╬▒ ╧М╧Д╬▒╬╜ ╧Д╧Б╬н╧З╬╡╬╣ ╧Г╧Д╬┐ ╧А╬▒╧Б╬▒╧Г╬║╬о╬╜╬╣╬┐, ╧А╧Б╬н╧А╬╡╬╣ *╧А╬м╬╜╧Д╬▒* ╬╜╬▒ ╬н╧З╬╡╬╣ ╧А╧Б╧М╧Г╬▓╬▒╧Г╬╖ ╧Г╧Д╬╖╬╜ ╬▒╬║╧Б╬╣╬▓╬о ╧Д╬┐╧А╬┐╬╕╬╡╧Г╬п╬▒ ╧О╧Г╧Д╬╡ ╬╖ ╬╡╧Ж╬▒╧Б╬╝╬┐╬│╬о ╬╜╬▒ ╬╝╧А╬┐╧Б╬╡╬п ╬╜╬▒ ╬┤╬╣╬▒╬▓╬м╬╢╬╡╬╣ ╧Д╬┐ ╧М╬╜╬┐╬╝╬▒ ╧Д╬┐╧Е ╬┤╬╣╬║╧Д╧Н╬┐╧Е Wi-Fi",
"backup": "╬С╬╜╧Д╬п╬│╧Б╬▒╧Ж╬▒ ╬▒╧Г╧Ж╬▒╬╗╬╡╬п╬▒╧В",
"backup_album_selection_page_albums_device": "╬Ж╬╗╬╝╧А╬┐╧Е╬╝ ╧Г╧Д╬╖ ╧Г╧Е╧Г╬║╬╡╧Е╬о ({count})",
"backup_album_selection_page_albums_tap": "╬а╬м╧Д╬╖╬╝╬▒ ╬│╬╣╬▒ ╧Г╧Е╬╝╧А╬╡╧Б╬п╬╗╬╖╧И╬╖, ╬┤╬╣╧А╬╗╧М ╧А╬м╧Д╬╖╬╝╬▒ ╬│╬╣╬▒ ╬╡╬╛╬▒╬п╧Б╬╡╧Г╬╖",
"backup_album_selection_page_assets_scatter": "╬д╬▒ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒ ╬╝╧А╬┐╧Б╬╡╬п ╬╜╬▒ ╬┤╬╣╬▒╧Г╬║╬┐╧Б╧А╬╣╧Г╧Д╬┐╧Н╬╜ ╧Г╬╡ ╧А╬┐╬╗╬╗╬м ╬м╬╗╬╝╧А╬┐╧Е╬╝. ╬И╧Д╧Г╬╣, ╧Д╬▒ ╬м╬╗╬╝╧А╬┐╧Е╬╝ ╬╝╧А╬┐╧Б╬┐╧Н╬╜ ╬╜╬▒ ╧А╬╡╧Б╬╣╬╗╬╖╧Ж╬╕╬┐╧Н╬╜ ╬о ╬╜╬▒ ╬╡╬╛╬▒╬╣╧Б╬╡╬╕╬┐╧Н╬╜ ╬║╬▒╧Д╬м ╧Д╬╖ ╬┤╬╣╬▒╬┤╬╣╬║╬▒╧Г╬п╬▒ ╬┤╬╖╬╝╬╣╬┐╧Е╧Б╬│╬п╬▒╧В ╬▒╬╜╧Д╬╣╬│╧Б╬м╧Ж╧Й╬╜ ╬▒╧Г╧Ж╬▒╬╗╬╡╬п╬▒╧В.",
@@ -553,6 +575,8 @@
"backup_options_page_title": "╬Х╧А╬╣╬╗╬┐╬│╬н╧В ╬▒╬╜╧Д╬╣╬│╧Б╬м╧Ж╧Й╬╜ ╬▒╧Г╧Ж╬▒╬╗╬╡╬п╬▒╧В",
"backup_setting_subtitle": "╬Ф╬╣╬▒╧З╬╡╬п╧Б╬╣╧Г╬╖ ╧Б╧Е╬╕╬╝╬п╧Г╬╡╧Й╬╜ ╬╝╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖╧В ╧Г╧Д╬┐ ╧А╬▒╧Б╬▒╧Г╬║╬о╬╜╬╣╬┐ ╬║╬▒╬╣ ╧Г╧Д╬┐ ╧А╧Б╬┐╧Г╬║╬о╬╜╬╣╬┐",
"backward": "╬а╧Б╬┐╧В ╧Д╬▒ ╧А╬п╧Г╧Й",
"beta_sync": "╬Ъ╬▒╧Д╬м╧Г╧Д╬▒╧Г╬╖ ╬г╧Е╬│╧З╧Б╬┐╬╜╬╣╧Г╬╝╬┐╧Н Beta (╬┤╬┐╬║╬╣╬╝╬▒╧Г╧Д╬╣╬║╬о)",
"beta_sync_subtitle": "╬Ф╬╣╬▒╧З╬╡╬п╧Б╬╣╧Г╬╖ ╧Д╬┐╧Е ╬╜╬н╬┐╧Е ╧Г╧Е╧Г╧Д╬о╬╝╬▒╧Д╬┐╧В ╧Г╧Е╬│╧З╧Б╬┐╬╜╬╣╧Г╬╝╬┐╧Н",
"biometric_auth_enabled": "╬Т╬╣╬┐╬╝╬╡╧Д╧Б╬╣╬║╬о ╧Д╬▒╧Е╧Д╬┐╧А╬┐╬п╬╖╧Г╬╖ ╬╡╬╜╬╡╧Б╬│╬┐╧А╬┐╬╣╬о╬╕╬╖╬║╬╡",
"biometric_locked_out": "╬Х╬п╧Г╧Д╬╡ ╬║╬╗╬╡╬╣╬┤╧Й╬╝╬н╬╜╬┐╬╣ ╬╡╬║╧Д╧М╧В ╧Д╬╖╧В ╬▓╬╣╬┐╬╝╬╡╧Д╧Б╬╣╬║╬о╧В ╧Д╬▒╧Е╧Д╬┐╧А╬┐╬п╬╖╧Г╬╖╧В",
"biometric_no_options": "╬Ф╬╡╬╜ ╧Е╧А╬м╧Б╧З╬┐╧Е╬╜ ╬┤╬╣╬▒╬╕╬н╧Г╬╣╬╝╬┐╬╣ ╧Д╧Б╧М╧А╬┐╬╣ ╬▓╬╣╬┐╬╝╬╡╧Д╧Б╬╣╬║╬о╧В ╧Д╬▒╧Е╧Д╬┐╧А╬┐╬п╬╖╧Г╬╖╧В",
@@ -587,6 +611,7 @@
"cancel": "╬С╬║╧Н╧Б╧Й╧Г╬╖",
"cancel_search": "╬С╬║╧Н╧Б╧Й╧Г╬╖ ╬▒╬╜╬▒╬╢╬о╧Д╬╖╧Г╬╖╧В",
"canceled": "╬С╬║╧Е╧Б╧Й╬╝╬н╬╜╬┐",
"canceling": "╬С╬║╧Е╧Б╧О╬╜╬╡╧Д╬▒╬╣",
"cannot_merge_people": "╬С╬┤╧Н╬╜╬▒╧Д╬╖ ╬╖ ╧Г╧Е╬│╧З╧О╬╜╬╡╧Е╧Г╬╖ ╬▒╧Д╧М╬╝╧Й╬╜",
"cannot_undo_this_action": "╬Ф╬╡╬╜ ╬╝╧А╬┐╧Б╬╡╬п╧Д╬╡ ╬╜╬▒ ╬▒╬╜╬▒╬╣╧Б╬н╧Г╬╡╧Д╬╡ ╬▒╧Е╧Д╬о╬╜ ╧Д╬╖╬╜ ╬╡╬╜╬н╧Б╬│╬╡╬╣╬▒!",
"cannot_update_the_description": "╬С╬┤╧Н╬╜╬▒╧Д╬╖ ╬╖ ╬╡╬╜╬╖╬╝╬н╧Б╧Й╧Г╬╖ ╧Д╬╖╧В ╧А╬╡╧Б╬╣╬│╧Б╬▒╧Ж╬о╧В",
@@ -700,10 +725,11 @@
"current_server_address": "╬д╧Б╬н╧З╬┐╧Е╧Г╬▒ ╬┤╬╣╬╡╧Н╬╕╧Е╬╜╧Г╬╖ ╬┤╬╣╬▒╬║╬┐╬╝╬╣╧Г╧Д╬о",
"custom_locale": "╬а╧Б╬┐╧Г╬▒╧Б╬╝╬┐╧Г╬╝╬н╬╜╬╖ ╬д╬┐╧А╬╣╬║╬о ╬б╧Н╬╕╬╝╬╣╧Г╬╖",
"custom_locale_description": "╬Ь╬┐╧Б╧Ж╬┐╧А╬┐╬╣╬о╧Г╧Д╬╡ ╧Д╬╣╧В ╬╖╬╝╬╡╧Б╬┐╬╝╬╖╬╜╬п╬╡╧В ╬║╬▒╬╣ ╧Д╬┐╧Е╧В ╬▒╧Б╬╣╬╕╬╝╬┐╧Н╧В, ╧Г╧Н╬╝╧Ж╧Й╬╜╬▒ ╬╝╬╡ ╧Д╬╖ ╬│╬╗╧О╧Г╧Г╬▒ ╬║╬▒╬╣ ╧Д╬╖╬╜ ╧А╬╡╧Б╬╣╬┐╧З╬о",
"custom_url": "╬а╧Б╬┐╧Г╬▒╧Б╬╝╬┐╧Г╬╝╬н╬╜╬╖ ╬┤╬╣╬╡╧Н╬╕╧Е╬╜╧Г╬╖ URL",
"daily_title_text_date": "╬Х, MMM dd",
"daily_title_text_date_year": "╬Х, MMM dd, yyyy",
"dark": "╬г╬║╬┐╧Н╧Б╬┐",
"darkTheme": "╬Х╬╜╬▒╬╗╬╗╬▒╬│╬о ╧Г╬║╬┐╧Н╧Б╬┐╧Е ╬╕╬н╬╝╬▒╧Д╬┐╧В",
"dark_theme": "╬Х╬╜╬▒╬╗╬╗╬▒╬│╬о ╧Г╬║╬┐╧Д╬╡╬╣╬╜╬о╧В ╬╡╬╝╧Ж╬м╬╜╬╣╧Г╬╖╧В",
"date_after": "╬Ч╬╝╬╡╧Б╬┐╬╝╬╖╬╜╬п╬▒ ╬╝╬╡╧Д╬м",
"date_and_time": "╬Ч╬╝╬╡╧Б╬┐╬╝╬╖╬╜╬п╬▒ ╬║╬▒╬╣ ╧О╧Б╬▒",
"date_before": "╬Ч╬╝╬╡╧Б╬┐╬╝╬╖╬╜╬п╬▒ ╧А╧Б╬╣╬╜",
@@ -719,6 +745,8 @@
"default_locale": "╬а╧Б╬┐╬╡╧А╬╣╬╗╬╡╬│╬╝╬н╬╜╬╖ ╬д╬┐╧А╬╣╬║╬о ╬б╧Н╬╕╬╝╬╣╧Г╬╖",
"default_locale_description": "╬Ь╬┐╧Б╧Ж╬┐╧А╬┐╬╣╬о╧Г╧Д╬╡ ╧Д╬╣╧В ╬╖╬╝╬╡╧Б╬┐╬╝╬╖╬╜╬п╬╡╧В ╬║╬▒╬╣ ╧Д╬┐╧Е╧В ╬▒╧Б╬╣╬╕╬╝╬┐╧Н╧В ╬╝╬╡ ╬▓╬м╧Г╬╖ ╧Д╬╖╬╜ ╧Д╬┐╧А╬╣╬║╬о ╧Б╧Н╬╕╬╝╬╣╧Г╬╖ ╧Д╬┐╧Е ╧А╧Б╬┐╬│╧Б╬м╬╝╬╝╬▒╧Д╬┐╧В ╧А╬╡╧Б╬╣╬о╬│╬╖╧Г╬о╧В ╧Г╬▒╧В",
"delete": "╬Ф╬╣╬▒╬│╧Б╬▒╧Ж╬о",
"delete_action_confirmation_message": "╬Х╬п╧Г╧Д╬╡ ╧Г╬п╬│╬┐╧Е╧Б╬┐╬╣ ╧М╧Д╬╣ ╬╕╬н╬╗╬╡╧Д╬╡ ╬╜╬▒ ╬┤╬╣╬▒╬│╧Б╬м╧И╬╡╧Д╬╡ ╬▒╧Е╧Д╧М ╧Д╬┐ ╬▒╧Б╧З╬╡╬п╬┐; ╬С╧Е╧Д╬о ╬╖ ╬╡╬╜╬н╧Б╬│╬╡╬╣╬▒ ╬╕╬▒ ╧Д╬┐ ╬╝╬╡╧Д╬▒╬║╬╣╬╜╬о╧Г╬╡╬╣ ╧Г╧Д╬┐╬╜ ╬║╬м╬┤╬┐ ╬▒╧А╬┐╧Б╧Б╬╣╬╝╬╝╬м╧Д╧Й╬╜ ╧Д╬┐╧Е ╬┤╬╣╬▒╬║╬┐╬╝╬╣╧Г╧Д╬о ╬║╬▒╬╣ ╬╕╬▒ ╬╡╬╝╧Ж╬▒╬╜╬╣╧Г╧Д╬╡╬п ╬╝╬о╬╜╧Е╬╝╬▒ ╬│╬╣╬▒ ╧Д╬┐ ╬▒╬╜ ╬╕╬н╬╗╬╡╧Д╬╡ ╬╜╬▒ ╧Д╬┐ ╬┤╬╣╬▒╬│╧Б╬м╧И╬╡╧Д╬╡ ╬║╬▒╬╣ ╧Д╬┐╧А╬╣╬║╬м",
"delete_action_prompt": "{count} ╬┤╬╣╬▒╬│╧Б╬м╧Ж╬╖╬║╬▒╬╜",
"delete_album": "╬Ф╬╣╬▒╬│╧Б╬▒╧Ж╬о ╬м╬╗╬╝╧А╬┐╧Е╬╝",
"delete_api_key_prompt": "╬Х╬п╧Г╧Д╬╡ ╧Г╬п╬│╬┐╧Е╧Б╬┐╬╣ ╧М╧Д╬╣ ╬╕╬н╬╗╬╡╧Д╬╡ ╬╜╬▒ ╬┤╬╣╬▒╬│╧Б╬м╧И╬╡╧Д╬╡ ╬▒╧Е╧Д╧М ╬║╬╗╬╡╬╣╬┤╬п API;",
"delete_dialog_alert": "╬С╧Е╧Д╬м ╧Д╬▒ ╬▒╬╜╧Д╬╣╬║╬╡╬п╬╝╬╡╬╜╬▒ ╬╕╬▒ ╬┤╬╣╬▒╬│╧Б╬▒╧Ж╬┐╧Н╬╜ ╬┐╧Б╬╣╧Г╧Д╬╣╬║╬м ╬▒╧А╧М ╧Д╬┐ Immich ╬║╬▒╬╣ ╬▒╧А╧М ╧Д╬╖ ╧Г╧Е╧Г╬║╬╡╧Е╬о ╧Г╬▒╧В",
@@ -732,9 +760,12 @@
"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_permanently": "╬Ф╬╣╬▒╬│╧Б╬▒╧Ж╬о ╬┐╧Б╬╣╧Г╧Д╬╣╬║╬м",
"delete_permanently_action_prompt": "{count} ╬┤╬╣╬▒╬│╧Б╬м╧Ж╬╖╬║╬╡ ╬┐╧Б╬╣╧Г╧Д╬╣╬║╬м",
"delete_shared_link": "╬Ф╬╣╬▒╬│╧Б╬▒╧Ж╬о ╬║╬┐╬╣╬╜╧М╧З╧Б╬╖╧Г╧Д╬┐╧Е ╧Г╧Е╬╜╬┤╬н╧Г╬╝╬┐╧Е",
"delete_shared_link_dialog_title": "╬Ф╬╣╬▒╬│╧Б╬▒╧Ж╬о ╬Ъ╬┐╬╣╬╜╬┐╧А╬┐╬╣╬╖╬╝╬н╬╜╬┐╧Е ╬г╧Е╬╜╬┤╬н╧Г╬╝╬┐╧Е",
"delete_tag": "╬Ф╬╣╬▒╬│╧Б╬▒╧Ж╬о ╬╡╧Д╬╣╬║╬н╧Д╬▒╧В",
@@ -745,6 +776,7 @@
"description": "╬а╬╡╧Б╬╣╬│╧Б╬▒╧Ж╬о",
"description_input_hint_text": "╬а╧Б╬┐╧Г╬╕╬о╬║╬╖ ╧А╬╡╧Б╬╣╬│╧Б╬▒╧Ж╬о╧В...",
"description_input_submit_error": "╬г╧Ж╬м╬╗╬╝╬▒ ╬║╬▒╧Д╬м ╧Д╬╖╬╜ ╬╡╬╜╬╖╬╝╬н╧Б╧Й╧Г╬╖ ╧Д╬╖╧В ╧А╬╡╧Б╬╣╬│╧Б╬▒╧Ж╬о╧В, ╬╡╬╗╬н╬│╬╛╧Д╬╡ ╧Д╬┐ ╬▒╧Б╧З╬╡╬п╬┐ ╬║╬▒╧Д╬▒╬│╧Б╬▒╧Ж╬о╧В ╬│╬╣╬▒ ╧А╬╡╧Б╬╣╧Г╧Г╧М╧Д╬╡╧Б╬╡╧В ╬╗╬╡╧А╧Д╬┐╬╝╬н╧Б╬╡╬╣╬╡╧В",
"deselect_all": "╬С╬║╧Н╧Б╧Й╧Г╬╖ ╧М╬╗╧Й╬╜ ╧Д╧Й╬╜ ╬╡╧А╬╣╬╗╬┐╬│╧О╬╜",
"details": "╬Ы╬╡╧А╧Д╬┐╬╝╬н╧Б╬╡╬╣╬╡╧В",
"direction": "╬Ъ╬▒╧Д╬╡╧Н╬╕╧Е╬╜╧Г╬╖",
"disabled": "╬С╧А╬╡╬╜╬╡╧Б╬│╬┐╧А╬┐╬╣╬╖╬╝╬н╬╜╬┐",
@@ -762,6 +794,7 @@
"documentation": "╬д╬╡╬║╬╝╬╖╧Б╬п╧Й╧Г╬╖",
"done": "╬И╬│╬╣╬╜╬╡",
"download": "╬Ы╬о╧И╬╖",
"download_action_prompt": "╬Ъ╬▒╧Д╬н╬▓╬▒╧Г╬╝╬▒ {count} ╧Г╧Д╬┐╬╣╧З╬╡╬п╧Й╬╜",
"download_canceled": "╬Ч ╬╗╬о╧И╬╖ ╬▒╬║╧Е╧Б╧О╬╕╬╖╬║╬╡",
"download_complete": "╬Ч ╬╗╬о╧И╬╖ ╬┐╬╗╬┐╬║╬╗╬╖╧Б╧О╬╕╬╖╬║╬╡",
"download_enqueue": "╬Ч ╬╗╬о╧И╬╖ ╧Д╬н╬╕╬╖╬║╬╡ ╧Г╬╡ ╬┐╧Е╧Б╬м",
@@ -799,6 +832,7 @@
"edit_key": "╬Х╧А╬╡╬╛╬╡╧Б╬│╬▒╧Г╬п╬▒ ╬║╬╗╬╡╬╣╬┤╬╣╬┐╧Н",
"edit_link": "╬Х╧А╬╡╬╛╬╡╧Б╬│╬▒╧Г╬п╬▒ ╧Г╧Е╬╜╬┤╬н╧Г╬╝╬┐╧Е",
"edit_location": "╬Х╧А╬╡╬╛╬╡╧Б╬│╬▒╧Г╬п╬▒ ╧Д╬┐╧А╬┐╬╕╬╡╧Г╬п╬▒╧В",
"edit_location_action_prompt": "╬Х╧А╬╡╬╛╬╡╧Б╬│╬м╧Г╧Д╬╖╬║╬▒╬╜ {count} ╧Д╬┐╧А╬┐╬╕╬╡╧Г╬п╬╡╧В",
"edit_location_dialog_title": "╬д╬┐╧А╬┐╬╕╬╡╧Г╬п╬▒",
"edit_name": "╬Х╧А╬╡╬╛╬╡╧Б╬│╬▒╧Г╬п╬▒ ╬┐╬╜╧М╬╝╬▒╧Д╬┐╧В",
"edit_people": "╬Х╧А╬╡╬╛╬╡╧Б╬│╬▒╧Г╬п╬▒ ╬▒╧Д╧М╬╝╧Й╬╜",
@@ -817,6 +851,7 @@
"empty_trash": "╬Ж╬┤╬╡╬╣╬▒╧Г╬╝╬▒ ╬║╬м╬┤╬┐╧Е ╬▒╧А╬┐╧Б╧Б╬╣╬╝╬╝╬м╧Д╧Й╬╜",
"empty_trash_confirmation": "╬Х╬п╧Г╧Д╬╡ ╧Г╬п╬│╬┐╧Е╧Б╬┐╬╣ ╬┐╧Д╬╣ ╬╕╬н╬╗╬╡╧Д╬╡ ╬╜╬▒ ╬▒╬┤╬╡╬╣╬м╧Г╬╡╧Д╬╡ ╧Д╬┐╬╜ ╬║╬м╬┤╬┐ ╬▒╧А╬┐╧Б╧Б╬╣╬╝╬╝╬м╧Д╧Й╬╜; ╬С╧Е╧Д╧М ╬╕╬▒ ╬▒╧Ж╬▒╬╣╧Б╬н╧Г╬╡╬╣ ╬╝╧М╬╜╬╣╬╝╬▒ ╧М╬╗╬▒ ╧Д╬▒ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒ ╧Д╬┐╧Е ╬║╬м╬┤╬┐╧Е ╬▒╧А╬┐╧Б╧Б╬╣╬╝╬╝╬м╧Д╧Й╬╜ ╧Д╬┐╧Е Immich. \n╬С╧Е╧Д╬о ╬╖ ╬╡╬╜╬н╧Б╬│╬╡╬╣╬▒ ╬┤╬╡╬╜ ╬╝╧А╬┐╧Б╬╡╬п ╬╜╬▒ ╬▒╬╜╬▒╬╣╧Б╬╡╬╕╬╡╬п!",
"enable": "╬Х╬╜╬╡╧Б╬│╬┐╧А╬┐╬п╬╖╧Г╬╖",
"enable_backup": "╬Х╬╜╬╡╧Б╬│╬┐╧А╬┐╬п╬╖╧Г╬╖ ╬▒╬╜╧Д╬╣╬│╧Б╬м╧Ж╬┐╧Е ╬▒╧Г╧Ж╬▒╬╗╬╡╬п╬▒╧В",
"enable_biometric_auth_description": "╬Х╬╣╧Г╬м╬│╬╡╧Д╬╡ ╧Д╬┐╬╜ ╬║╧Й╬┤╬╣╬║╧М PIN ╧Г╬▒╧В ╬│╬╣╬▒ ╬╜╬▒ ╬╡╬╜╬╡╧Б╬│╬┐╧А╬┐╬╣╬о╧Г╬╡╧Д╬╡ ╧Д╬╖╬╜ ╬▓╬╣╬┐╬╝╬╡╧Д╧Б╬╣╬║╬о ╧Д╬▒╧Е╧Д╬┐╧А╬┐╬п╬╖╧Г╬╖",
"enabled": "╬Х╬╜╬╡╧Б╬│╬┐╧А╬┐╬╣╬╖╬╝╬н╬╜╬┐",
"end_date": "╬д╬╡╬╗╬╣╬║╬о ╬╖╬╝╬╡╧Б╬┐╬╝╬╖╬╜╬п╬▒",
@@ -973,6 +1008,8 @@
"explorer": "╬а╬╡╧Б╬╣╬╖╬│╬╖╧Д╬о╧В",
"export": "╬Х╬╛╬▒╬│╧Й╬│╬о",
"export_as_json": "╬Х╬╛╬▒╬│╧Й╬│╬о ╧Й╧В JSON",
"export_database": "╬Х╬╛╬▒╬│╧Й╬│╬о ╬▓╬м╧Г╬╖╧В ╬┤╬╡╬┤╬┐╬╝╬н╬╜╧Й╬╜",
"export_database_description": "╬Х╬╛╬▒╬│╧Й╬│╬о ╧Д╬╖╧В SQLite ╬▓╬м╧Г╬╖╧В ╬┤╬╡╬┤╬┐╬╝╬н╬╜╧Й╬╜",
"extension": "╬Х╧А╬н╬║╧Д╬▒╧Г╬╖",
"external": "╬Х╬╛╧Й╧Д╬╡╧Б╬╣╬║╧М╧В",
"external_libraries": "╬Х╬╛╧Й╧Д╬╡╧Б╬╣╬║╬н╧В ╬▓╬╣╬▓╬╗╬╣╬┐╬╕╬о╬║╬╡╧В",
@@ -984,6 +1021,7 @@
"failed_to_load_assets": "╬С╧А╬┐╧Д╧Е╧З╬п╬▒ ╧Ж╧М╧Б╧Д╧Й╧Г╬╖╧В ╧Г╧Д╬┐╬╣╧З╬╡╬п╧Й╬╜",
"failed_to_load_folder": "╬С╧А╬┐╧Д╧Е╧З╬п╬▒ ╧Ж╧М╧Б╧Д╧Й╧Г╬╖╧В ╧Ж╬▒╬║╬н╬╗╬┐╧Е",
"favorite": "╬С╬│╬▒╧А╬╖╬╝╬н╬╜╬┐",
"favorite_action_prompt": "╬а╧Б╬┐╧Г╧Д╬н╬╕╬╖╬║╬▒╬╜ {count} ╧Г╧Д╬▒ ╬С╬│╬▒╧А╬╖╬╝╬н╬╜╬▒",
"favorite_or_unfavorite_photo": "╬Я╧Б╬п╧Г╧Д╬╡ ╬╝╬п╬▒ ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬▒ ╧Й╧В ╬▒╬│╬▒╧А╬╖╬╝╬н╬╜╬╖ ╬о ╬▒╧Ж╬▒╬╣╧Б╬н╧Г╧Д╬╡ ╧Д╬╖╬╜ ╬▒╧А╧М ╧Д╬▒ ╬▒╬│╬▒╧А╬╖╬╝╬н╬╜╬▒",
"favorites": "╬С╬│╬▒╧А╬╖╬╝╬н╬╜╬▒",
"favorites_page_no_favorites": "╬Ф╬╡╬╜ ╬▓╧Б╬н╬╕╬╖╬║╬▒╬╜ ╬▒╬│╬▒╧А╬╖╬╝╬н╬╜╬▒ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒",
@@ -1023,6 +1061,9 @@
"haptic_feedback_switch": "╬Х╬╜╬╡╧Б╬│╬┐╧А╬┐╬п╬╖╧Г╬╖ ╬▒╧А╧Д╬╣╬║╬о╧В ╬▒╬╜╬м╬┤╧Б╬▒╧Г╬╖╧В",
"haptic_feedback_title": "╬С╧А╧Д╬╣╬║╬о ╬С╬╜╬м╬┤╧Б╬▒╧Г╬╖",
"has_quota": "╬И╧З╬╡╬╣ ╧А╬┐╧Г╧М╧Г╧Д╧Й╧Г╬╖",
"hash_asset": "╬Ъ╬▒╧Д╬▒╬║╬╡╧Б╬╝╬▒╧Д╬╣╧Г╬╝╧М╧В ╧Г╧Д╬┐╬╣╧З╬╡╬п╬┐╧Е",
"hashed_assets": "╬Ъ╬▒╧Д╬▒╬║╬╡╧Б╬╝╬▒╧Д╬╣╧Г╬╝╬н╬╜╬▒ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒",
"hashing": "╬Ъ╬▒╧Д╬▒╬║╬╡╧Б╬╝╬▒╧Д╬╣╧Г╬╝╧М╧В",
"header_settings_add_header_tip": "╬а╧Б╬┐╧Г╬╕╬о╬║╬╖ ╬Ъ╬╡╧Ж╬▒╬╗╬п╬┤╬▒╧В",
"header_settings_field_validator_msg": "╬Ч ╧Д╬╣╬╝╬о ╬┤╬╡╬╜ ╬╝╧А╬┐╧Б╬╡╬п ╬╜╬▒ ╬╡╬п╬╜╬▒╬╣ ╬║╬╡╬╜╬о",
"header_settings_header_name_input": "╬М╬╜╬┐╬╝╬▒ ╬║╬╡╧Ж╬▒╬╗╬п╬┤╬▒╧В",
@@ -1055,6 +1096,7 @@
"host": "╬ж╬╣╬╗╬┐╬╛╬╡╬╜╬п╬▒",
"hour": "╬П╧Б╬▒",
"id": "ID",
"idle": "╬С╬┤╧Б╬м╬╜╬╡╬╣╬▒",
"ignore_icloud_photos": "╬С╬│╬╜╬┐╬о╧Г╧Д╬╡ ╧Д╬╣╧В ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬╡╧В iCloud",
"ignore_icloud_photos_description": "╬Я╬╣ ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬╡╧В ╧А╬┐╧Е ╬╡╬п╬╜╬▒╬╣ ╬▒╧А╬┐╬╕╬╖╬║╬╡╧Е╬╝╬н╬╜╬╡╧В ╧Г╧Д╬┐ iCloud ╬┤╬╡╬╜ ╬╕╬▒ ╬╝╬╡╧Д╬▒╧Ж╬┐╧Б╧Д╧Й╬╕╬┐╧Н╬╜ ╧Г╧Д╬┐╬╜ ╬┤╬╣╬▒╬║╬┐╬╝╬╣╧Г╧Д╬о Immich",
"image": "╬Х╬╣╬║╧М╬╜╬▒",
@@ -1112,6 +1154,7 @@
"language_no_results_title": "╬Ф╬╡ ╬▓╧Б╬н╬╕╬╖╬║╬▒╬╜ ╬│╬╗╧О╧Г╧Г╬╡╧В",
"language_search_hint": "╬С╬╜╬▒╬╢╬о╧Д╬╖╧Г╬╖ ╬│╬╗╧Й╧Г╧Г╧О╬╜...",
"language_setting_description": "╬Х╧А╬╣╬╗╬н╬╛╧Д╬╡ ╧Д╬╖ ╬│╬╗╧О╧Г╧Г╬▒ ╧А╬┐╧Е ╧А╧Б╬┐╧Д╬╣╬╝╬м╧Д╬╡",
"large_files": "╬Ь╬╡╬│╬м╬╗╬▒ ╬С╧Б╧З╬╡╬п╬▒",
"last_seen": "╬д╬╡╬╗╬╡╧Е╧Д╬▒╬п╬▒ ╧А╧Б╬┐╬▓╬┐╬╗╬о",
"latest_version": "╬д╬╡╬╗╬╡╧Е╧Д╬▒╬п╬▒ ╬И╬║╬┤╬┐╧Г╬╖",
"latitude": "╬У╬╡╧Й╬│╧Б╬▒╧Ж╬╣╬║╧М ╧А╬╗╬м╧Д╬┐╧В",
@@ -1127,16 +1170,18 @@
"library_page_sort_created": "╬Ч╬╝╬╡╧Б╬┐╬╝╬╖╬╜╬п╬▒ ╬┤╬╖╬╝╬╣╬┐╧Е╧Б╬│╬п╬▒╧В",
"library_page_sort_last_modified": "╬д╬╡╬╗╬╡╧Е╧Д╬▒╬п╬▒ ╧Д╧Б╬┐╧А╬┐╧А╬┐╬п╬╖╧Г╬╖",
"library_page_sort_title": "╬д╬п╧Д╬╗╬┐╧В ╬м╬╗╬╝╧А╬┐╧Е╬╝",
"licenses": "╬Ж╬┤╬╡╬╣╬╡╧В",
"light": "╬ж╧Й╧Д╬╡╬╣╬╜╧М",
"like_deleted": "╬д╬┐ \"╬╝╬┐╧Е ╬▒╧Б╬н╧Г╬╡╬╣\" ╬┤╬╣╬▒╬│╧Б╬м╧Ж╬╖╬║╬╡",
"link_motion_video": "╬г╧Н╬╜╬┤╬╡╧Г╬╡ ╬▓╬п╬╜╧Д╬╡╬┐ ╬║╬п╬╜╬╖╧Г╬╖╧В",
"link_options": "╬Х╧А╬╣╬╗╬┐╬│╬н╧В ╧Г╧Е╬╜╬┤╬н╧Г╬╝╬┐╧Е",
"link_to_oauth": "╬г╧Н╬╜╬┤╬╡╧Г╬╖ ╧Г╧Д╬┐╬╜ OAuth",
"linked_oauth_account": "╬Я OAuth ╬╗╬┐╬│╬▒╧Б╬╣╬▒╧Г╬╝╧М╧В ╧Г╧Е╬╜╬┤╬н╬╕╬╖╬║╬╡",
"list": "╬Ы╬п╧Г╧Д╬▒",
"loading": "╬ж╧М╧Б╧Д╧Й╧Г╬╖",
"loading_search_results_failed": "╬Ч ╧Ж╧М╧Б╧Д╧Й╧Г╬╖ ╬▒╧А╬┐╧Д╬╡╬╗╬╡╧Г╬╝╬м╧Д╧Й╬╜ ╬▒╬╜╬▒╬╢╬о╧Д╬╖╧Г╬╖╧В ╬▒╧А╬н╧Д╧Е╧З╬╡",
"local": "╬д╬┐╧А╬╣╬║╬м",
"local_asset_cast_failed": "╬С╬┤╧Е╬╜╬▒╬╝╬п╬▒ ╬╝╬╡╧Д╬м╬┤╬┐╧Г╬╖╧В ╧Г╧Д╬┐╬╣╧З╬╡╬п╬┐╧Е ╧А╬┐╧Е ╬┤╬╡╬╜ ╬н╧З╬╡╬╣ ╬▒╬╜╬н╬▓╬╡╬╣ ╧Г╧Д╬┐╬╜ ╬┤╬╣╬▒╬║╬┐╬╝╬╣╧Г╧Д╬о",
"local_assets": "╬д╬┐╧А╬╣╬║╬м ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒",
"local_network": "╬д╬┐╧А╬╣╬║╧М ╬┤╬п╬║╧Д╧Е╬┐",
"local_network_sheet_info": "╬Ч ╬╡╧Ж╬▒╧Б╬╝╬┐╬│╬о ╬╕╬▒ ╧Г╧Е╬╜╬┤╬╡╬╕╬╡╬п ╬╝╬╡ ╧Д╬┐╬╜ ╬┤╬╣╬▒╬║╬┐╬╝╬╣╧Г╧Д╬о ╬╝╬н╧Г╧Й ╬▒╧Е╧Д╬┐╧Н ╧Д╬┐╧Е URL ╧М╧Д╬▒╬╜ ╧З╧Б╬╖╧Г╬╣╬╝╬┐╧А╬┐╬╣╬╡╬п╧Д╬▒╬╣ ╧Д╬┐ ╬║╬▒╬╕╬┐╧Б╬╣╧Г╬╝╬н╬╜╬┐ ╬┤╬п╬║╧Д╧Е╬┐ Wi-Fi",
"location_permission": "╬Ж╬┤╬╡╬╣╬▒ ╧Д╬┐╧А╬┐╬╕╬╡╧Г╬п╬▒╧В",
@@ -1193,8 +1238,7 @@
"manage_your_devices": "╬Ф╬╣╬▒╧З╬╡╬╣╧Б╬╣╧Г╧Д╬╡╬п╧Д╬╡ ╧Д╬╣╧В ╧Г╧Е╬╜╬┤╬╡╬┤╬╡╬╝╬н╬╜╬╡╧В ╧Г╧Е╧Г╬║╬╡╧Е╬н╧В ╧Г╬▒╧В",
"manage_your_oauth_connection": "╬Ф╬╣╬▒╧З╬╡╬╣╧Б╬╣╧Г╧Д╬╡╬п╧Д╬╡ ╧Д╬╖ ╧Г╧Н╬╜╬┤╬╡╧Г╬о ╧Г╬▒╧В OAuth",
"map": "╬з╬м╧Б╧Д╬╖╧В",
"map_assets_in_bound": "{count} ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬▒",
"map_assets_in_bounds": "{count} ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬╡╧В",
"map_assets_in_bounds": "{count, plural, one {# ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬▒} other {# ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬╡╧В}}",
"map_cannot_get_user_location": "╬Ф╬╡╬╜ ╬╡╬п╬╜╬▒╬╣ ╬┤╧Е╬╜╬▒╧Д╬о ╬╖ ╬╗╬о╧И╬╖ ╧Д╬╖╧В ╧Д╬┐╧А╬┐╬╕╬╡╧Г╬п╬▒╧В ╧Д╬┐╧Е ╧З╧Б╬о╧Г╧Д╬╖",
"map_location_dialog_yes": "╬Э╬▒╬╣",
"map_location_picker_page_use_location": "╬з╧Б╬╖╧Г╬╣╬╝╬┐╧А╬┐╬╣╬о╧Г╧Д╬╡ ╬▒╧Е╧Д╬о╬╜ ╧Д╬╖╬╜ ╧Д╬┐╧А╬┐╬╕╬╡╧Г╬п╬▒",
@@ -1246,6 +1290,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 {# ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒}} ╧Г╧Д╬┐ ╬▒╧Б╧З╬╡╬п╬┐",
@@ -1292,6 +1337,7 @@
"no_results": "╬Ъ╬▒╬╜╬н╬╜╬▒ ╬▒╧А╬┐╧Д╬н╬╗╬╡╧Г╬╝╬▒",
"no_results_description": "╬Ф╬┐╬║╬╣╬╝╬м╧Г╧Д╬╡ ╬н╬╜╬▒ ╧Г╧Е╬╜╧О╬╜╧Е╬╝╬┐ ╬о ╧А╬╣╬┐ ╬│╬╡╬╜╬╣╬║╬о ╬╗╬н╬╛╬╖-╬║╬╗╬╡╬╣╬┤╬п",
"no_shared_albums_message": "╬Ф╬╖╬╝╬╣╬┐╧Е╧Б╬│╬о╧Г╧Д╬╡ ╬н╬╜╬▒ ╬м╬╗╬╝╧А╬┐╧Е╬╝ ╬│╬╣╬▒ ╬╜╬▒ ╬╝╬┐╬╣╧Б╬м╬╢╬╡╧Г╧Д╬╡ ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬╡╧В ╬║╬▒╬╣ ╬▓╬п╬╜╧Д╬╡╬┐ ╬╝╬╡ ╬м╧Д╬┐╬╝╬▒ ╧Г╧Д╬┐ ╬┤╬п╬║╧Д╧Е╧М ╧Г╬▒╧В",
"no_uploads_in_progress": "╬Ъ╬▒╬╝╬п╬▒ ╬╝╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖ ╧Г╬╡ ╬╡╬╛╬н╬╗╬╣╬╛╬╖",
"not_in_any_album": "╬г╬╡ ╬║╬▒╬╜╬н╬╜╬▒ ╬м╬╗╬╝╧А╬┐╧Е╬╝",
"not_selected": "╬Ф╬╡╬╜ ╬╡╧А╬╣╬╗╬н╧З╬╕╬╖╬║╬╡",
"note_apply_storage_label_to_previously_uploaded assets": "╬г╬╖╬╝╬╡╬п╧Й╧Г╬╖: ╬У╬╣╬▒ ╬╜╬▒ ╬╡╧Ж╬▒╧Б╬╝╧М╧Г╬╡╧Д╬╡ ╧Д╬╖╬╜ ╬Х╧Д╬╣╬║╬н╧Д╬▒ ╬С╧А╬┐╬╕╬о╬║╬╡╧Е╧Г╬╖╧В ╧Г╬╡ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒ ╧А╬┐╧Е ╬н╧З╬┐╧Е╬╜ ╬╝╬╡╧Д╬▒╧Ж╬┐╧Б╧Д╧Й╬╕╬╡╬п ╧А╧Б╬┐╬╖╬│╬┐╧Е╬╝╬н╬╜╧Й╧В, ╬╡╬║╧Д╬╡╬╗╬н╧Г╧Д╬╡ ╧Д╬┐",
@@ -1329,6 +1375,7 @@
"original": "╧А╧Б╧Й╧Д╧М╧Д╧Е╧А╬┐",
"other": "╬Ж╬╗╬╗╬╡╧В",
"other_devices": "╬Ж╬╗╬╗╬╡╧В ╧Г╧Е╧Г╬║╬╡╧Е╬н╧В",
"other_entities": "╬Ж╬╗╬╗╬╡╧В ╬┐╬╜╧Д╧М╧Д╬╖╧Д╬╡╧В",
"other_variables": "╬Ж╬╗╬╗╬╡╧В ╬╝╬╡╧Д╬▒╬▓╬╗╬╖╧Д╬н╧В",
"owned": "╬Ф╬╣╬║╬м ╬╝╬┐╧Е",
"owner": "╬Ъ╬м╧Д╬┐╧З╬┐╧В",
@@ -1460,6 +1507,7 @@
"purchase_server_description_2": "╬Ъ╬▒╧Д╬м╧Г╧Д╬▒╧Г╬╖ ╧Е╧А╬┐╧Г╧Д╬╖╧Б╬╣╬║╧Д╬о",
"purchase_server_title": "╬Ф╬╣╬▒╬║╬┐╬╝╬╣╧Г╧Д╬о╧В",
"purchase_settings_server_activated": "╬Ч ╬┤╬╣╬▒╧З╬╡╬п╧Б╬╣╧Г╬╖ ╧Д╬┐╧Е ╬║╬╗╬╡╬╣╬┤╬╣╬┐╧Н ╧А╧Б╬┐╧К╧М╬╜╧Д╬┐╧В ╧Д╬┐╧Е ╬┤╬╣╬▒╬║╬┐╬╝╬╣╧Г╧Д╬о ╬│╬п╬╜╬╡╧Д╬▒╬╣ ╬▒╧А╧М ╧Д╬┐╬╜ ╬┤╬╣╬▒╧З╬╡╬╣╧Б╬╣╧Г╧Д╬о",
"queue_status": "╬д╬┐╧А╬┐╬╕╬н╧Д╬╖╧Г╬╖ ╧Г╧Д╬╖ ╬┐╧Е╧Б╬м {count} ╬▒╧А╧М {total}",
"rating": "╬С╬╛╬╣╬┐╬╗╧М╬│╬╖╧Г╬╖ ╬╝╬╡ ╬▒╧Г╧Д╬н╧Б╬╣╬▒",
"rating_clear": "╬Х╬║╬║╬▒╬╕╬м╧Б╬╣╧Г╬╖ ╬▒╬╛╬╣╬┐╬╗╧М╬│╬╖╧Г╬╖╧В",
"rating_count": "{count, plural, one {# ╬▒╧Г╧Д╬н╧Б╬╣} other {# ╬▒╧Г╧Д╬н╧Б╬╣╬▒}}",
@@ -1488,6 +1536,8 @@
"refreshing_faces": "╬С╬╜╬▒╬╜╬╡╧О╬╜╬┐╬╜╧Д╬▒╬╣ ╧А╧Б╧М╧Г╧Й╧А╬▒",
"refreshing_metadata": "╬д╬▒ ╬╝╬╡╧Д╬▒╬┤╬╡╬┤╬┐╬╝╬н╬╜╬▒ ╬▒╬╜╬▒╬╜╬╡╧О╬╜╬┐╬╜╧Д╬▒╬╣",
"regenerating_thumbnails": "╬Я╬╣ ╬╝╬╣╬║╧Б╬┐╬│╧Б╬▒╧Ж╬п╬╡╧В ╬▒╬╜╬▒╬│╬╡╬╜╬╜╧О╬╜╧Д╬▒╬╣",
"remote": "╬С╧А╬┐╬╝╬▒╬║╧Б╧Е╧Г╬╝╬н╬╜╬┐╧В",
"remote_assets": "╬С╧А╬┐╬╝╬▒╬║╧Б╧Е╧Г╬╝╬н╬╜╬▒ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒",
"remove": "╬С╧Ж╬▒╬п╧Б╬╡╧Г╬╖",
"remove_assets_album_confirmation": "╬Х╬п╧Г╧Д╬╡ ╧Г╬п╬│╬┐╧Е╧Б╬┐╬╣ ╧М╧Д╬╣ ╬╕╬н╬╗╬╡╧Д╬╡ ╬╜╬▒ ╬▒╧Ж╬▒╬╣╧Б╬н╧Г╬╡╧Д╬╡ {count, plural, one {# ╧Г╧Д╬┐╬╣╧З╬╡╬п╬┐} other {# ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒}} ╬▒╧А╧М ╧Д╬┐ ╬м╬╗╬╝╧А╬┐╧Е╬╝;",
"remove_assets_shared_link_confirmation": "╬Х╬п╧Г╧Д╬╡ ╧Г╬п╬│╬┐╧Е╧Б╬┐╬╣ ╧М╧Д╬╣ ╬╕╬н╬╗╬╡╧Д╬╡ ╬╜╬▒ ╬▒╧Ж╬▒╬╣╧Б╬н╧Г╬╡╧Д╬╡ {count, plural, one {# ╧Г╧Д╬┐╬╣╧З╬╡╬п╬┐} other {# ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒}} ╬▒╧А╧М ╬▒╧Е╧Д╧М╬╜ ╧Д╬┐╬╜ ╬║╬┐╬╣╬╜╧М╧З╧Б╬╖╧Г╧Д╬┐ ╧Г╧Н╬╜╬┤╬╡╧Г╬╝╬┐;",
@@ -1495,7 +1545,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": "╬С╧Ж╬▒╬п╧Б╬╡╧Г╬╖ ╬▒╧А╧М ╧Д╬┐╬╜ ╬║╬┐╬╣╬╜╧М╧З╧Б╬╖╧Г╧Д╬┐ ╧Г╧Н╬╜╬┤╬╡╧Г╬╝╬┐",
@@ -1523,19 +1575,25 @@
"reset_password": "╬Х╧А╬▒╬╜╬▒╧Ж╬┐╧Б╬м ╬║╧Й╬┤╬╣╬║╬┐╧Н ╧А╧Б╧М╧Г╬▓╬▒╧Г╬╖╧В",
"reset_people_visibility": "╬Х╧А╬▒╬╜╬▒╧Ж╬┐╧Б╬м ╧А╧Б╬┐╬▓╬┐╬╗╬о╧В ╬▒╧Д╧М╬╝╧Й╬╜",
"reset_pin_code": "╬Х╧А╬▒╬╜╬▒╧Ж╬┐╧Б╬м ╬║╧Й╬┤╬╣╬║╬┐╧Н PIN",
"reset_sqlite": "╬Х╧А╬▒╬╜╬▒╧Ж╬┐╧Б╬м SQLite ╬▓╬м╧Г╬╖╧В ╬┤╬╡╬┤╬┐╬╝╬н╬╜╧Й╬╜",
"reset_sqlite_confirmation": "╬Х╬п╧Г╬▒╬╣ ╧Г╬п╬│╬┐╧Е╧Б╬┐╧В ╧М╧Д╬╣ ╬╕╬н╬╗╬╡╬╣╧В ╬╜╬▒ ╬╡╧А╬▒╬╜╬▒╧Ж╬н╧Б╬╡╬╣╧В ╧Д╬╖ ╬▓╬м╧Г╬╖ ╬┤╬╡╬┤╬┐╬╝╬н╬╜╧Й╬╜ SQLite; ╬Ш╬▒ ╧З╧Б╬╡╬╣╬▒╧Г╧Д╬╡╬п ╬╜╬▒ ╬║╬м╬╜╬╡╬╣╧В ╬▒╧А╬┐╧Г╧Н╬╜╬┤╬╡╧Г╬╖ ╬║╬▒╬╣ ╬╡╧А╬▒╬╜╬▒╧Г╧Н╬╜╬┤╬╡╧Г╬╖ ╬│╬╣╬▒ ╬╜╬▒ ╬╡╧А╬▒╬╜╬▒╧Г╧Е╬│╧З╧Б╬┐╬╜╬п╧Г╬╡╬╣╧В ╧Д╬▒ ╬┤╬╡╬┤╬┐╬╝╬н╬╜╬▒",
"reset_sqlite_success": "╬Ч ╬╡╧А╬▒╬╜╬▒╧Ж╬┐╧Б╬м ╧Д╬╖╧В SQLite ╬▓╬м╧Г╬╖╧В ╬┤╬╡╬┤╬┐╬╝╬н╬╜╧Й╬╜ ╬┐╬╗╬┐╬║╬╗╬╖╧Б╧О╬╕╬╖╬║╬╡ ╬╝╬╡ ╬╡╧А╬╣╧Д╧Е╧З╬п╬▒",
"reset_to_default": "╬Х╧А╬▒╬╜╬▒╧Ж╬┐╧Б╬м ╧Г╧Д╬╣╧В ╧А╧Б╬┐╬╡╧А╬╣╬╗╬┐╬│╬н╧В",
"resolve_duplicates": "╬Х╧А╬п╬╗╧Е╧Г╬╖ ╬┤╬╣╧А╬╗╬┐╧Д╧Н╧А╧Й╬╜",
"resolved_all_duplicates": "╬Х╧А╬╣╬╗╧Н╬╕╬╖╬║╬▒╬╜ ╧М╬╗╬▒ ╧Д╬▒ ╬┤╬╣╧А╬╗╧М╧Д╧Е╧А╬▒",
"restore": "╬С╬╜╬м╬║╧Д╬╖╧Г╬╖",
"restore_all": "╬С╬╜╬м╬║╧Д╬╖╧Г╬╖ ╧М╬╗╧Й╬╜",
"restore_trash_action_prompt": "{count} ╬▒╬╜╬▒╬║╧Д╬о╬╕╬╖╬║╬▒╬╜ ╬▒╧А╧М ╧Д╬▒ ╬▒╧А╬┐╧Б╧Б╬п╬╝╬╝╬▒╧Д╬▒",
"restore_user": "╬Х╧А╬▒╬╜╬▒╧Ж╬┐╧Б╬м ╧З╧Б╬о╧Г╧Д╬╖",
"restored_asset": "╬С╬╜╬▒╬║╧Д╬о╬╕╬╖╬║╬╡ ╧Д╬┐ ╬▒╧Б╧З╬╡╬п╬┐",
"resume": "╬г╧Е╬╜╬н╧З╬╣╧Г╬╖",
"retry_upload": "╬Х╧А╬▒╬╜╬м╬╗╬╖╧И╬╖ ╬▒╬╜╬╡╬▓╬м╧Г╬╝╬▒╧Д╬┐╧В",
"review_duplicates": "╬а╧Б╬┐╬▓╬┐╬╗╬о ╬┤╬╣╧А╬╗╧М╧Д╧Е╧А╧Й╬╜",
"review_large_files": "╬Х╧А╬╣╧Г╬║╧М╧А╬╖╧Г╬╖ ╬╝╬╡╬│╬м╬╗╧Й╬╜ ╬▒╧Б╧З╬╡╬п╧Й╬╜",
"role": "╬б╧М╬╗╬┐╧В",
"role_editor": "╬Х╧А╬╡╬╛╬╡╧Б╬│╬▒╧Г╧Д╬о╧В",
"role_viewer": "╬Ш╬╡╬▒╧Д╬о╧В",
"running": "╬г╬╡ ╬╗╬╡╬╣╧Д╬┐╧Е╧Б╬│╬п╬▒",
"save": "╬С╧А╬┐╬╕╬о╬║╬╡╧Е╧Г╬╖",
"save_to_gallery": "╬С╧А╬┐╬╕╬о╬║╬╡╧Е╧Г╬╖ ╧Г╧Д╬╖ ╧Г╧Е╬╗╬╗╬┐╬│╬о",
"saved_api_key": "╬С╧А╬┐╬╕╬╖╬║╬╡╧Е╬╝╬н╬╜╬┐ API key",
@@ -1667,6 +1725,7 @@
"settings_saved": "╬Я╬╣ ╧Б╧Е╬╕╬╝╬п╧Г╬╡╬╣╧В ╬▒╧А╬┐╬╕╬╖╬║╬╡╧Н╧Д╬╖╬║╬▒╬╜",
"setup_pin_code": "╬б╧Н╬╕╬╝╬╣╧Г╬╖ ╬║╧Й╬┤╬╣╬║╬┐╧Н PIN",
"share": "╬Ъ╬┐╬╣╬╜╬┐╧А╬┐╬п╬╖╧Г╬╖",
"share_action_prompt": "╬Ъ╬┐╬╣╬╜╬о ╧З╧Б╬о╧Г╬╖ {count} ╧Г╧Д╬┐╬╣╧З╬╡╬п╧Й╬╜",
"share_add_photos": "╬а╧Б╬┐╧Г╬╕╬о╬║╬╖ ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬╣╧О╬╜",
"share_assets_selected": "{count} ╬╡╧А╬╣╬╗╬╡╬│╬╝╬н╬╜╬▒",
"share_dialog_preparing": "╬а╧Б╬┐╬╡╧Д╬┐╬╣╬╝╬▒╧Г╬п╬▒...",
@@ -1688,6 +1747,7 @@
"shared_link_clipboard_copied_massage": "╬С╬╜╧Д╬╣╬│╧Б╬м╧Ж╬╖╬║╬╡ ╧Г╧Д╬┐ ╧А╧Б╧М╧З╬╡╬╣╧Б╬┐",
"shared_link_clipboard_text": "╬г╧Н╬╜╬┤╬╡╧Г╬╝╬┐╧В: {link}\n╬Ъ╧Й╬┤╬╣╬║╧М╧В ╧А╧Б╧М╧Г╬▓╬▒╧Г╬╖╧В: {password}",
"shared_link_create_error": "╬г╧Ж╬м╬╗╬╝╬▒ ╬║╬▒╧Д╬м ╧Д╬╖ ╬┤╬╖╬╝╬╣╬┐╧Е╧Б╬│╬п╬▒ ╬║╬┐╬╣╬╜╧М╧З╧Б╬╖╧Г╧Д╬┐╧Е ╧Г╧Е╬╜╬┤╬н╧Г╬╝╬┐╧Е",
"shared_link_custom_url_description": "╬С╧А╬┐╬║╧Д╬о╧Г╧Д╬╡ ╧А╧Б╧М╧Г╬▓╬▒╧Г╬╖ ╧Г╬╡ ╬▒╧Е╧Д╧М╬╜ ╧Д╬┐╬╜ ╬║╬┐╬╣╬╜╧М╧З╧Б╬╖╧Г╧Д╬┐ ╧Г╧Н╬╜╬┤╬╡╧Г╬╝╬┐ ╬╝╬╡ ╬╝╬╣╬▒ ╧А╧Б╬┐╧Г╬▒╧Б╬╝╬┐╧Г╬╝╬н╬╜╬╖ ╬┤╬╣╬╡╧Н╬╕╧Е╬╜╧Г╬╖ URL",
"shared_link_edit_description_hint": "╬Х╬╣╧Г╬▒╬│╬м╬│╬╡╧Д╬╡ ╧Д╬╖╬╜ ╧А╬╡╧Б╬╣╬│╧Б╬▒╧Ж╬о ╧Д╬╖╧В ╬║╬┐╬╣╬╜╬о╧В ╧З╧Б╬о╧Г╬╖╧В",
"shared_link_edit_expire_after_option_day": "1 ╬╖╬╝╬н╧Б╬▒",
"shared_link_edit_expire_after_option_days": "{count} ╬╖╬╝╬н╧Б╬╡╧В",
@@ -1713,6 +1773,7 @@
"shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "╬Ф╬╣╬▒╧З╬╡╬п╧Б╬╣╧Г╬╖ ╬Ъ╬┐╬╣╬╜╧М╧З╧Б╬╖╧Г╧Д╧Й╬╜ ╬г╧Е╬╜╬┤╬н╧Г╬╝╧Й╬╜",
"shared_link_options": "╬Х╧А╬╣╬╗╬┐╬│╬н╧В ╬║╬┐╬╣╬╜╧М╧З╧Б╬╖╧Г╧Д╬┐╧Е ╧Г╧Е╬╜╬┤╬н╧Г╬╝╬┐╧Е",
"shared_link_password_description": "╬С╧А╬▒╬п╧Д╬╖╧Г╬╖ ╬║╧Й╬┤╬╣╬║╬┐╧Н ╬│╬╣╬▒ ╧А╧Б╧М╧Г╬▓╬▒╧Г╬╖ ╧Г╧Д╬┐╬╜ ╬║╬┐╬╣╬╜╬┐╧А╬┐╬╣╬╖╬╝╬н╬╜╬┐ ╧Г╧Н╬╜╬┤╬╡╧Г╬╝╬┐",
"shared_links": "╬Ъ╬┐╬╣╬╜╧М╧З╧Б╬╖╧Г╧Д╬┐╬╣ ╧Г╧Н╬╜╬┤╬╡╧Г╬╝╬┐╬╣",
"shared_links_description": "╬Ь╬┐╬╣╧Б╬▒╧Г╧Д╬╡╬п╧Д╬╡ ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬╡╧В ╬║╬▒╬╣ ╬▓╬п╬╜╧Д╬╡╬┐ ╬╝╬╡ ╧Г╧Н╬╜╬┤╬╡╧Г╬╝╬┐",
"shared_photos_and_videos_count": "{assetCount, plural, other {# ╬║╬┐╬╣╬╜╧М╧З╧Б╬╖╧Г╧Д╬╡╧В ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬╡╧В & ╬▓╬п╬╜╧Д╬╡╬┐.}}",
@@ -1768,6 +1829,7 @@
"sort_title": "╬д╬п╧Д╬╗╬┐╧В",
"source": "╬а╬╖╬│╬о",
"stack": "╬г╧Д╬┐╬п╬▓╬▒",
"stack_action_prompt": "{count} ╧Г╧Е╧Г╧Г╧Й╧Б╬╡╧Н╧Д╬╖╬║╬▒╬╜",
"stack_duplicates": "╬г╧Д╬┐╬п╬▓╬▒╬╛╬╖ ╬┤╬╣╧А╬╗╧М╧Д╧Е╧А╧Й╬╜",
"stack_select_one_photo": "╬Х╧А╬╣╬╗╬н╬╛╧Д╬╡ ╬╝╬╣╬▒ ╬║╧Н╧Б╬╣╬▒ ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬▒ ╬│╬╣╬▒ ╧Д╬╖ ╧Г╧Д╬┐╬п╬▓╬▒╬╛╬╖",
"stack_selected_photos": "╬г╧Д╬┐╬п╬▓╬▒╬│╬╝╬▒ ╬╡╧А╬╣╬╗╬╡╬│╬╝╬н╬╜╧Й╬╜ ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬╣╧О╬╜",
@@ -1787,6 +1849,7 @@
"storage_quota": "╬а╬┐╧Г╬┐╧Г╧Д╧М ╬▒╧А╬┐╬╕╬╖╬║╬╡╧Е╧Д╬╣╬║╬┐╧Н ╧З╧О╧Б╬┐╧Е",
"storage_usage": "{used} ╬▒╧А╧М {available} ╧Г╬╡ ╧З╧Б╬о╧Г╬╖",
"submit": "╬е╧А╬┐╬▓╬┐╬╗╬о",
"success": "╬Х╧А╬╣╧Д╧Е╧З╬п╬▒",
"suggestions": "╬а╧Б╬┐╧Д╬м╧Г╬╡╬╣╧В",
"sunrise_on_the_beach": "╬Ч╬╗╬╣╬┐╬▓╬▒╧Г╬п╬╗╬╡╬╝╬▒ ╧Г╧Д╬╖╬╜ ╧А╬▒╧Б╬▒╬╗╬п╬▒",
"support": "╬е╧А╬┐╧Г╧Д╬о╧Б╬╣╬╛╬╖",
@@ -1796,6 +1859,8 @@
"sync": "╬г╧Е╬│╧З╧Б╬┐╬╜╬╣╧Г╬╝╧М╧В",
"sync_albums": "╬г╧Е╬│╧З╧Б╬┐╬╜╬╣╧Г╬╝╧М╧В ╬м╬╗╬╝╧А╬┐╧Е╬╝",
"sync_albums_manual_subtitle": "╬г╧Е╬│╧З╧Б╬┐╬╜╬п╧Г╧Д╬╡ ╧М╬╗╬▒ ╧Д╬▒ ╬╝╬╡╧Д╬▒╧Ж╬┐╧Б╧Д╧Й╬╝╬н╬╜╬▒ ╬▓╬п╬╜╧Д╬╡╬┐ ╬║╬▒╬╣ ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬╡╧В ╬╝╬╡ ╧Д╬▒ ╬╡╧А╬╣╬╗╬╡╬│╬╝╬н╬╜╬▒ ╬╡╧Ж╬╡╬┤╧Б╬╣╬║╬м ╬м╬╗╬╝╧А╬┐╧Е╬╝",
"sync_local": "╬д╬┐╧А╬╣╬║╧М╧В ╬г╧Е╬│╧З╧Б╬┐╬╜╬╣╧Г╬╝╧М╧В",
"sync_remote": "╬С╧А╬┐╬╝╬▒╬║╧Б╧Е╧Г╬╝╬н╬╜╬┐╧В ╬г╧Е╬│╧З╧Б╬┐╬╜╬╣╧Г╬╝╧М╧В",
"sync_upload_album_setting_subtitle": "╬Ф╬╖╬╝╬╣╬┐╧Е╧Б╬│╬о╧Г╧Д╬╡ ╬║╬▒╬╣ ╬▒╬╜╬╡╬▓╬м╧Г╧Д╬╡ ╧Д╬╣╧В ╧Ж╧Й╧Д╬┐╬│╧Б╬▒╧Ж╬п╬╡╧В ╬║╬▒╬╣ ╧Д╬▒ ╬▓╬п╬╜╧Д╬╡╧М ╧Г╬▒╧В ╧Г╧Д╬▒ ╬╡╧А╬╣╬╗╬╡╬│╬╝╬н╬╜╬▒ ╬м╬╗╬╝╧А╬┐╧Е╬╝ ╧Г╧Д╬┐ Immich",
"tag": "╬Х╧Д╬╣╬║╬н╧Д╬▒",
"tag_assets": "╬Х╧Д╬╣╬║╬╡╧Д╬┐╧А╬┐╬п╬╖╧Г╬╖ ╧Г╧Д╬┐╬╣╧З╬╡╬п╧Й╬╜",
@@ -1806,6 +1871,7 @@
"tag_updated": "╬Х╬╜╬╖╬╝╬╡╧Б╧О╬╕╬╖╬║╬╡ ╬╖ ╬╡╧Д╬╣╬║╬н╧Д╬▒: {tag}",
"tagged_assets": "╬Х╧Д╬╣╬║╬╡╧Д╬┐╧А╬┐╬╣╬╖╬╝╬н╬╜╬┐/╬▒ {count, plural, one {# ╧Г╧Д╬┐╬╣╧З╬╡╬п╬┐} other {# ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒}}",
"tags": "╬Х╧Д╬╣╬║╬н╧Д╬╡╧В",
"tap_to_run_job": "╬а╬▒╧Д╬о╧Г╧Д╬╡ ╬│╬╣╬▒ ╬╜╬▒ ╬╛╬╡╬║╬╣╬╜╬о╧Г╬╡╬╣ ╬╖ ╬╡╧Б╬│╬▒╧Г╬п╬▒",
"template": "╬а╧Б╧М╧Д╧Е╧А╬┐",
"theme": "╬Ш╬н╬╝╬▒",
"theme_selection": "╬Х╧А╬╣╬╗╬┐╬│╬о ╬╕╬н╬╝╬▒╧Д╬┐╧В",
@@ -1838,6 +1904,7 @@
"total": "╬г╧Н╬╜╬┐╬╗╬┐",
"total_usage": "╬г╧Е╬╜╬┐╬╗╬╣╬║╬╖ ╧З╧Б╬╖╧Г╬╖",
"trash": "╬Ъ╬м╬┤╬┐╧В ╬▒╧А╬┐╧Б╧Б╬╣╬╝╬╝╬м╧Д╧Й╬╜",
"trash_action_prompt": "{count} ╬╝╬╡╧Д╬▒╬║╬╣╬╜╬о╬╕╬╖╬║╬▒╬╜ ╧Г╧Д╬▒ ╬▒╧А╬┐╧Б╧Б╬п╬╝╬╝╬▒╧Д╬▒",
"trash_all": "╬Ф╬╣╬▒╬│╧Б╬▒╧Ж╬о ╬М╬╗╧Й╬╜",
"trash_count": "╬Ф╬╣╬▒╬│╧Б╬▒╧Ж╬о {count, number}",
"trash_delete_asset": "╬Ф╬╣╬▒╬│╧Б╬▒╧Ж╬о/╬Я╧Б╬╣╧Г╧Д. ╬Ф╬╣╬▒╬│╧Б╬▒╧Ж╬о ╬С╬╜╧Д╬╣╬║╬╡╬╣╬╝╬н╬╜╬┐╧Е",
@@ -1855,9 +1922,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,15 +1944,20 @@
"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": "╬Я ╬║╧Й╬┤╬╣╬║╧М╧В ╧А╧Б╧М╧Г╬▓╬▒╧Г╬╖╧В ╬╡╬╜╬╖╬╝╬╡╧Б╧О╬╕╬╖╬║╬╡",
"upload": "╬Ь╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖",
"upload_action_prompt": "{count} ╧Д╬┐╧А╬┐╬╕╬╡╧Д╬о╬╕╬╖╬║╬▒╬╜ ╧Г╧Д╬╖╬╜ ╬┐╧Е╧Б╬м ╬│╬╣╬▒ ╬╝╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖",
"upload_concurrency": "╬д╬▒╧Е╧Д╧М╧З╧Б╬┐╬╜╬╖ ╬╝╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖",
"upload_details": "╬Ы╬╡╧А╧Д╬┐╬╝╬н╧Б╬╡╬╣╬╡╧В ╬╝╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖╧В",
"upload_dialog_info": "╬Ш╬н╬╗╬╡╧Д╬╡ ╬╜╬▒ ╬▒╬╜╧Д╬╣╬│╧Б╬м╧И╬╡╧Д╬╡ (╬║╬м╬╜╬╡╧Д╬╡ backup) ╧Д╬▒ ╬╡╧А╬╣╬╗╬╡╬│╬╝╬н╬╜o(╬▒) ╧Г╧Д╬┐╬╣╧З╬╡╬п╬┐(╬▒) ╧Г╧Д╬┐ ╬┤╬╣╬▒╬║╬┐╬╝╬╣╧Г╧Д╬о;",
"upload_dialog_title": "╬С╬╜╬н╬▓╬▒╧Г╬╝╬▒ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬┐╧Е",
"upload_errors": "╬Ч ╬╝╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖ ╬┐╬╗╬┐╬║╬╗╬╖╧Б╧О╬╕╬╖╬║╬╡ ╬╝╬╡ {count, plural, one {# ╧Г╧Ж╬м╬╗╬╝╬▒} other {# ╧Г╧Ж╬м╬╗╬╝╬▒╧Д╬▒}}, ╬▒╬╜╬▒╬╜╬╡╧О╧Г╧Д╬╡ ╧Д╬╖ ╧Г╬╡╬╗╬п╬┤╬▒ ╬│╬╣╬▒ ╬╜╬▒ ╬┤╬╡╬п╧Д╬╡ ╬╜╬н╬▒ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒ ╬╝╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖╧В.",
"upload_finished": "╬Я╬╗╬┐╬║╬╗╬о╧Б╧Й╧Г╬╖ ╬╝╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖╧В",
"upload_progress": "╬С╧А╬┐╬╝╬н╬╜╬┐╧Е╬╜ {remaining, number} - ╬Я╬╗╬┐╬║╬╗╬╖╧Б╧О╬╕╬╖╬║╬▒╬╜ {processed, number}/{total, number}",
"upload_skipped_duplicates": "╬а╬▒╧Б╬▒╬╗╬╡╬п╧Ж╬╕╬╖╬║╬▒╬╜ {count, plural, one {# ╬┤╬╣╧А╬╗╧М╧Д╧Е╧А╬┐ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬┐} other {# ╬┤╬╣╧А╬╗╧М╧Д╧Е╧А╬▒ ╧Г╧Д╬┐╬╣╧З╬╡╬п╬▒}}",
"upload_status_duplicates": "╬Ф╬╣╧А╬╗╧М╧Д╧Е╧А╬▒",
@@ -1892,6 +1966,7 @@
"upload_success": "╬Ч ╬╝╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖ ╬┐╬╗╬┐╬║╬╗╬╖╧Б╧О╬╕╬╖╬║╬╡, ╬▒╬╜╬▒╬╜╬╡╧О╧Г╧Д╬╡ ╧Д╬╖ ╧Г╬╡╬╗╬п╬┤╬▒ ╬│╬╣╬▒ ╬╜╬▒ ╬┤╬╡╬п╧Д╬╡ ╧Д╬▒ ╬╜╬н╬▒ ╬▒╬╜╧Д╬╣╬║╬╡╬п╬╝╬╡╬╜╬▒.",
"upload_to_immich": "╬Ь╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖ ╧Г╧Д╬┐ Immich ({count})",
"uploading": "╬Ь╬╡╧Д╬▒╧Ж╬┐╧Б╧Д╧О╬╜╬╡╧Д╬▒╬╣",
"uploading_media": "╬Ь╬╡╧Д╬▒╧Ж╧М╧Б╧Д╧Й╧Г╬╖ ╧А╬┐╬╗╧Е╬╝╬н╧Г╧Й╬╜",
"url": "URL",
"usage": "╬з╧Б╬о╧Г╬╖",
"use_biometric": "╬з╧Б╬о╧Г╬╖ ╬▓╬╣╬┐╬╝╬╡╧Д╧Б╬╣╬║╧О╬╜ ╧Г╧Д╬┐╬╣╧З╬╡╬п╧Й╬╜",
@@ -1912,6 +1987,7 @@
"user_usage_stats_description": "╬а╧Б╬┐╬▓╬┐╬╗╬о ╧Г╧Д╬▒╧Д╬╣╧Г╧Д╬╣╬║╧О╬╜ ╧З╧Б╬о╧Г╬╖╧В ╬╗╬┐╬│╬▒╧Б╬╣╬▒╧Г╬╝╬┐╧Н",
"username": "╬М╬╜╬┐╬╝╬▒ ╬з╧Б╬о╧Г╧Д╬╖",
"users": "╬з╧Б╬о╧Г╧Д╬╡╧В",
"users_added_to_album_count": "╬а╧Б╬┐╧Г╧Д╬н╬╕╬╖╬║╬╡ {count, plural, one {# ╧З╧Б╬о╧Г╧Д╬╖╧В} other {# ╧З╧Б╬о╧Г╧Д╬╡╧В}} ╧Г╧Д╬┐ ╬м╬╗╬╝╧А╬┐╧Е╬╝",
"utilities": "╬Т╬┐╬╖╬╕╬╖╧Д╬╣╬║╬м ╧А╧Б╬┐╬│╧Б╬м╬╝╬╝╬▒╧Д╬▒",
"validate": "╬Х╧А╬╣╬║╧Н╧Б╧Й╧Г╬╖",
"validate_endpoint_error": "╬а╬▒╧Б╬▒╬║╬▒╬╗╧О ╬╡╬╣╧Г╬м╬│╬╡╧Д╬╡ ╬н╬╜╬▒ ╬н╬│╬║╧Е╧Б╬┐ URL",
@@ -1930,6 +2006,7 @@
"view_album": "╬а╧Б╬┐╬▓╬┐╬╗╬о ╬Ж╬╗╬╝╧А╬┐╧Е╬╝",
"view_all": "╬а╧Б╬┐╬▓╬┐╬╗╬о ╬М╬╗╧Й╬╜",
"view_all_users": "╬а╧Б╬┐╬▓╬┐╬╗╬о ╧М╬╗╧Й╬╜ ╧Д╧Й╬╜ ╧З╧Б╬╖╧Г╧Д╧О╬╜",
"view_details": "╬а╧Б╬┐╬▓╬┐╬╗╬о ╬Ы╬╡╧А╧Д╬┐╬╝╬╡╧Б╬╡╬╣╧О╬╜",
"view_in_timeline": "╬а╧Б╬┐╬▓╬┐╬╗╬о ╧Г╧Д╬┐ ╧З╧Б╬┐╬╜╬┐╬┤╬╣╬м╬│╧Б╬▒╬╝╬╝╬▒",
"view_link": "╬а╧Б╬┐╬▓╬┐╬╗╬о ╧Г╧Н╬╜╬┤╬╡╧Г╬╝╬┐╧Е",
"view_links": "╬а╧Б╬┐╬▓╬┐╬╗╬о ╧Г╧Е╬╜╬┤╬н╧Г╬╝╧Й╬╜",

View File

@@ -14,6 +14,7 @@
"add_a_location": "Add a location",
"add_a_name": "Add a name",
"add_a_title": "Add a title",
"add_birthday": "Add a birthday",
"add_endpoint": "Add endpoint",
"add_exclusion_pattern": "Add exclusion pattern",
"add_import_path": "Add import path",
@@ -44,6 +45,13 @@
"backup_database": "Create Database Dump",
"backup_database_enable_description": "Enable database dumps",
"backup_keep_last_amount": "Amount of previous dumps to keep",
"backup_onboarding_1_description": "offsite copy in the cloud or at another physical location.",
"backup_onboarding_2_description": "local copies on different devices. This includes the main files and a backup of those files locally.",
"backup_onboarding_3_description": "total copies of your data, including the original files. This includes 1 offsite copy and 2 local copies.",
"backup_onboarding_description": "A <backblaze-link>3-2-1 backup strategy</backblaze-link> is recommended to protect your data. You should keep copies of your uploaded photos/videos as well as the Immich database for a comprehensive backup solution.",
"backup_onboarding_footer": "For more information about backing up Immich, please refer to the <link>documentation</link>.",
"backup_onboarding_parts_title": "A 3-2-1 backup includes:",
"backup_onboarding_title": "Backups",
"backup_settings": "Database Dump Settings",
"backup_settings_description": "Manage database dump settings.",
"cleared_jobs": "Cleared jobs for: {job}",
@@ -166,6 +174,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 +218,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 +381,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",
@@ -379,6 +405,7 @@
"album_cover_updated": "Album cover updated",
"album_delete_confirmation": "Are you sure you want to delete the album {album}?",
"album_delete_confirmation_description": "If this album is shared, other users will not be able to access it anymore.",
"album_deleted": "Album deleted",
"album_info_card_backup_album_excluded": "EXCLUDED",
"album_info_card_backup_album_included": "INCLUDED",
"album_info_updated": "Album info updated",
@@ -388,6 +415,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 +435,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 +456,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})",
@@ -489,6 +519,7 @@
"back_close_deselect": "Back, close, or deselect",
"background_location_permission": "Background location permission",
"background_location_permission_content": "In order to switch networks when running in the background, Immich must *always* have precise location access so the app can read the Wi-Fi network's name",
"backup": "Backup",
"backup_album_selection_page_albums_device": "Albums on device ({count})",
"backup_album_selection_page_albums_tap": "Tap to include, double tap to exclude",
"backup_album_selection_page_assets_scatter": "Assets can scatter across multiple albums. Thus, albums can be included or excluded during the backup process.",
@@ -549,9 +580,13 @@
"backup_manual_in_progress": "Upload already in progress. Try after sometime",
"backup_manual_success": "Success",
"backup_manual_title": "Upload status",
"backup_options": "Backup Options",
"backup_options_page_title": "Backup options",
"backup_setting_subtitle": "Manage background and foreground upload settings",
"backup_settings_subtitle": "Manage 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",
@@ -569,7 +604,7 @@
"cache_settings_clear_cache_button": "Clear cache",
"cache_settings_clear_cache_button_title": "Clears the app's cache. This will significantly impact the app's performance until the cache has rebuilt.",
"cache_settings_duplicated_assets_clear_button": "CLEAR",
"cache_settings_duplicated_assets_subtitle": "Photos and videos that are black listed by the app",
"cache_settings_duplicated_assets_subtitle": "Photos and videos that are ignore listed by the app",
"cache_settings_duplicated_assets_title": "Duplicated Assets ({count})",
"cache_settings_statistics_album": "Library thumbnails",
"cache_settings_statistics_full": "Full images",
@@ -586,6 +621,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",
@@ -617,6 +653,7 @@
"clear": "Clear",
"clear_all": "Clear all",
"clear_all_recent_searches": "Clear all recent searches",
"clear_file_cache": "Clear File Cache",
"clear_message": "Clear message",
"clear_value": "Clear value",
"client_cert_dialog_msg_confirm": "OK",
@@ -699,10 +736,11 @@
"current_server_address": "Current server address",
"custom_locale": "Custom Locale",
"custom_locale_description": "Format dates and numbers based on the language and the region",
"custom_url": "Custom URL",
"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 +756,8 @@
"default_locale": "Default Locale",
"default_locale_description": "Format dates and numbers based on your browser locale",
"delete": "Delete",
"delete_action_confirmation_message": "Are you sure you want to delete this asset? This action will move the asset to the server's trash and will prompt if you want to delete it locally",
"delete_action_prompt": "{count} deleted",
"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,9 +771,12 @@
"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",
"delete_permanently": "Delete permanently",
"delete_permanently_action_prompt": "{count} deleted permanently",
"delete_shared_link": "Delete shared link",
"delete_shared_link_dialog_title": "Delete Shared Link",
"delete_tag": "Delete tag",
@@ -744,6 +787,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 +805,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",
@@ -787,8 +832,10 @@
"edit": "Edit",
"edit_album": "Edit album",
"edit_avatar": "Edit avatar",
"edit_birthday": "Edit Birthday",
"edit_date": "Edit date",
"edit_date_and_time": "Edit date and time",
"edit_date_and_time_action_prompt": "{count} date and time edited",
"edit_description": "Edit description",
"edit_description_prompt": "Please select a new description:",
"edit_exclusion_pattern": "Edit exclusion pattern",
@@ -798,6 +845,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 +864,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",
@@ -952,6 +1001,7 @@
},
"exif": "Exif",
"exif_bottom_sheet_description": "Add Description...",
"exif_bottom_sheet_description_error": "Error updating description",
"exif_bottom_sheet_details": "DETAILS",
"exif_bottom_sheet_location": "LOCATION",
"exif_bottom_sheet_people": "PEOPLE",
@@ -972,6 +1022,8 @@
"explorer": "Explorer",
"export": "Export",
"export_as_json": "Export as JSON",
"export_database": "Export Database",
"export_database_description": "Export the SQLite database",
"extension": "Extension",
"external": "External",
"external_libraries": "External Libraries",
@@ -983,6 +1035,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 +1075,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 +1110,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",
@@ -1111,6 +1168,7 @@
"language_no_results_title": "No languages found",
"language_search_hint": "Search languages...",
"language_setting_description": "Select your preferred language",
"large_files": "Large Files",
"last_seen": "Last seen",
"latest_version": "Latest Version",
"latitude": "Latitude",
@@ -1126,16 +1184,18 @@
"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",
"link_options": "Link options",
"link_to_oauth": "Link to OAuth",
"linked_oauth_account": "Linked OAuth account",
"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",
@@ -1192,8 +1252,7 @@
"manage_your_devices": "Manage your logged-in devices",
"manage_your_oauth_connection": "Manage your OAuth connection",
"map": "Map",
"map_assets_in_bound": "{count} photo",
"map_assets_in_bounds": "{count} photos",
"map_assets_in_bounds": "{count, plural, one {# photo} other {# photos}}",
"map_cannot_get_user_location": "Cannot get user's location",
"map_location_dialog_yes": "Yes",
"map_location_picker_page_use_location": "Use this location",
@@ -1245,6 +1304,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",
@@ -1256,6 +1316,9 @@
"my_albums": "My albums",
"name": "Name",
"name_or_nickname": "Name or nickname",
"network_requirement_photos_upload": "Use cellular data to backup photos",
"network_requirement_videos_upload": "Use cellular data to backup videos",
"network_requirements_updated": "Network requirements changed, resetting backup queue",
"networking_settings": "Networking",
"networking_subtitle": "Manage the server endpoint settings",
"never": "Never",
@@ -1291,6 +1354,7 @@
"no_results": "No results",
"no_results_description": "Try a synonym or more general keyword",
"no_shared_albums_message": "Create an album to share photos and videos with people in your network",
"no_uploads_in_progress": "No uploads in progress",
"not_in_any_album": "Not in any album",
"not_selected": "Not selected",
"note_apply_storage_label_to_previously_uploaded assets": "Note: To apply the Storage Label to previously uploaded assets, run the",
@@ -1328,6 +1392,7 @@
"original": "original",
"other": "Other",
"other_devices": "Other devices",
"other_entities": "Other entities",
"other_variables": "Other variables",
"owned": "Owned",
"owner": "Owner",
@@ -1459,6 +1524,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 +1553,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 +1562,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,19 +1592,25 @@
"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",
"retry_upload": "Retry upload",
"review_duplicates": "Review duplicates",
"review_large_files": "Review large files",
"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 +1742,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...",
@@ -1687,6 +1764,7 @@
"shared_link_clipboard_copied_massage": "Copied to clipboard",
"shared_link_clipboard_text": "Link: {link}\nPassword: {password}",
"shared_link_create_error": "Error while creating shared link",
"shared_link_custom_url_description": "Access this shared link with a custom URL",
"shared_link_edit_description_hint": "Enter the share description",
"shared_link_edit_expire_after_option_day": "1 day",
"shared_link_edit_expire_after_option_days": "{count} days",
@@ -1712,6 +1790,7 @@
"shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Manage Shared links",
"shared_link_options": "Shared link options",
"shared_link_password_description": "Require a password to access this shared link",
"shared_links": "Shared links",
"shared_links_description": "Share photos and videos with a link",
"shared_photos_and_videos_count": "{assetCount, plural, other {# shared photos & videos.}}",
@@ -1767,6 +1846,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 +1866,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 +1876,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 +1888,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 +1921,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 +1939,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,15 +1961,20 @@
"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_action_prompt": "{count} queued for 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.",
"upload_finished": "Upload finished",
"upload_progress": "Remaining {remaining, number} - Processed {processed, number}/{total, number}",
"upload_skipped_duplicates": "Skipped {count, plural, one {# duplicate asset} other {# duplicate assets}}",
"upload_status_duplicates": "Duplicates",
@@ -1891,6 +1983,7 @@
"upload_success": "Upload success, refresh the page to see new upload assets.",
"upload_to_immich": "Upload to Immich ({count})",
"uploading": "Uploading",
"uploading_media": "Uploading media",
"url": "URL",
"usage": "Usage",
"use_biometric": "Use biometric",
@@ -1911,6 +2004,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 +2023,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",

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,9 +166,23 @@
"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",
"note_apply_storage_label_previous_assets": "Nota: para aplicar una Etiqueta de Almacenamiento a un elemento anteriormente subido, lanza el",
"note_cannot_be_changed_later": "NOTA: ┬бNo se puede cambiar posteriormente!",
"notification_email_from_address": "Desde",
"notification_email_from_address_description": "Direcci├│n de correo electr├│nico del remitente, por ejemplo: \"Immich Photo Server <noreply@example.com>\". Aseg├║rate de utilizar una direcci├│n desde la que puedas enviar correos electr├│nicos.",
@@ -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",
@@ -247,7 +263,7 @@
"storage_template_onboarding_description_v2": "Al habilitar esta funci├│n, los archivos se organizar├бn autom├бticamente seg├║n la plantilla definida por el usuario. Para m├бs informaci├│n, consulte la <link>documentaci├│n</link>.",
"storage_template_path_length": "L├нmite aproximado de la longitud de la ruta: <b>{length, number}</b>/{limit, number}",
"storage_template_settings": "Plantilla de almacenamiento",
"storage_template_settings_description": "Administrar la estructura de carpetas y el nombre de archivo del recurso cargado",
"storage_template_settings_description": "Administrar la estructura de carpetas y el nombre de archivo del recurso subido",
"storage_template_user_label": "<code>{label}</code> es la etiqueta de almacenamiento del usuario",
"system_settings": "Ajustes del Sistema",
"tag_cleanup_job": "Limpieza de etiquetas",
@@ -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",
@@ -379,6 +397,7 @@
"album_cover_updated": "Portada del ├бlbum actualizada",
"album_delete_confirmation": "┬┐Est├бs seguro de que deseas eliminar el ├бlbum {album}?",
"album_delete_confirmation_description": "Si este ├бlbum se comparte, otros usuarios ya no podr├бn acceder a ├йl.",
"album_deleted": "├Бlbum eliminado",
"album_info_card_backup_album_excluded": "EXCLUIDOS",
"album_info_card_backup_album_included": "INCLUIDOS",
"album_info_updated": "Informaci├│n del ├бlbum actualizada",
@@ -388,6 +407,7 @@
"album_options": "Opciones del Album",
"album_remove_user": "┬┐Eliminar usuario?",
"album_remove_user_confirmation": "┬┐Est├бs seguro de que quieres eliminar a {user}?",
"album_search_not_found": "No se encontraron ├бlbumes que coincidan con tu b├║squeda",
"album_share_no_users": "Parece que has compartido este ├бlbum con todos los usuarios o no tienes ning├║n usuario con quien compartirlo.",
"album_updated": "Album actualizado",
"album_updated_setting_description": "Reciba una notificaci├│n por correo electr├│nico cuando un ├бlbum compartido tenga nuevos archivos",
@@ -405,8 +425,9 @@
"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.",
"albums_on_device_count": "├Бlbumes en el dispositivo ({count})",
"all": "Todos",
"all_albums": "Todos los albums",
"all_people": "Todas las personas",
@@ -427,6 +448,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 +486,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}}",
@@ -490,6 +511,7 @@
"back_close_deselect": "Atr├бs, cerrar o anular la selecci├│n",
"background_location_permission": "Permiso de ubicaci├│n en segundo plano",
"background_location_permission_content": "Para poder cambiar de red mientras se ejecuta en segundo plano, Immich debe tener *siempre* acceso a la ubicaci├│n precisa para que la aplicaci├│n pueda leer el nombre de la red Wi-Fi",
"backup": "Copia de Seguridad",
"backup_album_selection_page_albums_device": "├Бlbumes en el dispositivo ({count})",
"backup_album_selection_page_albums_tap": "Toque para incluir, doble toque para excluir",
"backup_album_selection_page_assets_scatter": "Los elementos pueden dispersarse en varios ├бlbumes. De este modo, los ├бlbumes pueden ser incluidos o excluidos durante el proceso de copia de seguridad.",
@@ -553,6 +575,8 @@
"backup_options_page_title": "Opciones de Copia de Seguridad",
"backup_setting_subtitle": "Administra las configuraciones de respaldo en segundo y primer plano",
"backward": "Retroceder",
"beta_sync": "Estado de Sincronizaci├│n Beta",
"beta_sync_subtitle": "Administrar el nuevo sistema de sincronizaci├│n",
"biometric_auth_enabled": "Autentificaci├│n biom├йtrica habilitada",
"biometric_locked_out": "Est├бs bloqueado de la autentificaci├│n biom├йtrica",
"biometric_no_options": "Sin opciones biom├йtricas disponibles",
@@ -570,7 +594,7 @@
"cache_settings_clear_cache_button": "Borrar cach├й",
"cache_settings_clear_cache_button_title": "Borra la cach├й de la aplicaci├│n. Esto afectar├б significativamente el rendimiento de la aplicaci├│n hasta que se reconstruya la cach├й.",
"cache_settings_duplicated_assets_clear_button": "LIMPIAR",
"cache_settings_duplicated_assets_subtitle": "Fotos y v├нdeos en la lista negra de la app",
"cache_settings_duplicated_assets_subtitle": "Fotos y v├нdeos ignorados por la aplicaci├│n",
"cache_settings_duplicated_assets_title": "Elementos duplicados ({count})",
"cache_settings_statistics_album": "Miniaturas de la biblioteca",
"cache_settings_statistics_full": "Im├бgenes completas",
@@ -587,6 +611,7 @@
"cancel": "Cancelar",
"cancel_search": "Cancelar b├║squeda",
"canceled": "Cancelado",
"canceling": "Cancelando",
"cannot_merge_people": "No se pueden fusionar personas",
"cannot_undo_this_action": "┬бNo puedes deshacer esta acci├│n!",
"cannot_update_the_description": "No se puede actualizar la descripci├│n",
@@ -700,10 +725,11 @@
"current_server_address": "Direcci├│n actual del servidor",
"custom_locale": "Configuraci├│n regional personalizada",
"custom_locale_description": "Formatear fechas y n├║meros seg├║n el idioma y la regi├│n",
"custom_url": "URL personalizada",
"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,12 +745,14 @@
"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_confirmation_message": "┬┐Est├б seguro que desea eliminar este archivo? Esta acci├│n lo mover├б a la papelera del servidor y le preguntar├б si desea eliminarlo localmente",
"delete_action_prompt": "{count} eliminados",
"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",
"delete_dialog_alert_local": "Estas im├бgenes van a ser borradas de tu dispositivo, pero seguir├бn disponibles en el servidor Immich",
"delete_dialog_alert_local_non_backed_up": "Algunas de las im├бgenes no tienen copia de seguridad y ser├бn borradas de forma permanente de tu dispositivo",
"delete_dialog_alert_remote": "Estas im├бgenes van a ser borradas de forma permanente del servidor Immich",
"delete_dialog_alert_local": "Estos elementos se eliminar├бn permanente de tu dispositivo pero seguir├бn disponibles en el servidor de Immich",
"delete_dialog_alert_local_non_backed_up": "Algunos de los elementos no tienen copia de seguridad en Immich y ser├бn borrados permanentemente de tu dispositivo",
"delete_dialog_alert_remote": "Estas im├бgenes van a ser borradas permanentemente del servidor de Immich",
"delete_dialog_ok_force": "Borrar de todos modos",
"delete_dialog_title": "Eliminar Permanentemente",
"delete_duplicates_confirmation": "┬┐Est├б seguro de que desea eliminar permanentemente estos duplicados?",
@@ -732,9 +760,12 @@
"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",
"delete_permanently": "Eliminar permanentemente",
"delete_permanently_action_prompt": "{count} eliminados permanentemente",
"delete_shared_link": "Eliminar enlace compartido",
"delete_shared_link_dialog_title": "Eliminar enlace compartido",
"delete_tag": "Eliminar etiqueta",
@@ -745,10 +776,12 @@
"description": "Descripci├│n",
"description_input_hint_text": "Agregar descripci├│n...",
"description_input_submit_error": "Error al actualizar la descripci├│n, verifica el registro para obtener m├бs detalles",
"deselect_all": "Deseleccionar Todo",
"details": "Detalles",
"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 +794,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 +832,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",
@@ -816,6 +851,7 @@
"empty_trash": "Vaciar papelera",
"empty_trash_confirmation": "┬┐Est├бs seguro de que quieres vaciar la papelera? Esto eliminar├б permanentemente todos los archivos de la basura de Immich.\n┬бNo puedes deshacer esta acci├│n!",
"enable": "Habilitar",
"enable_backup": "Habilitar Copia de Seguridad",
"enable_biometric_auth_description": "Introduce tu c├│digo PIN para habilitar la autentificaci├│n biom├йtrica",
"enabled": "Habilitado",
"end_date": "Fecha final",
@@ -972,6 +1008,8 @@
"explorer": "Explorador",
"export": "Exportar",
"export_as_json": "Exportar a JSON",
"export_database": "Exportar Base de Datos",
"export_database_description": "Exportar la Base de Datos SQLite",
"extension": "Extensi├│n",
"external": "Externo",
"external_libraries": "Bibliotecas Externas",
@@ -983,6 +1021,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",
@@ -1022,6 +1061,9 @@
"haptic_feedback_switch": "Activar respuesta h├бptica",
"haptic_feedback_title": "Respuesta H├бptica",
"has_quota": "Su cuota",
"hash_asset": "Generar hash del archivo",
"hashed_assets": "Archivos con hash generado",
"hashing": "Generando hash",
"header_settings_add_header_tip": "A├▒adir cabecera",
"header_settings_field_validator_msg": "El valor no puede estar vac├нo",
"header_settings_header_name_input": "Nombre de la cabecera",
@@ -1054,6 +1096,7 @@
"host": "Host",
"hour": "Hora",
"id": "ID",
"idle": "Inactivo",
"ignore_icloud_photos": "Ignorar fotos de iCloud",
"ignore_icloud_photos_description": "Las fotos almacenadas en iCloud no se subir├бn a Immich",
"image": "Imagen",
@@ -1111,6 +1154,7 @@
"language_no_results_title": "No se han encontrado idiomas",
"language_search_hint": "Buscar idiomas...",
"language_setting_description": "Selecciona tu idioma preferido",
"large_files": "Archivos Grandes",
"last_seen": "Ultima vez visto",
"latest_version": "├Ъltima versi├│n",
"latitude": "Latitud",
@@ -1126,16 +1170,18 @@
"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",
"link_options": "Opciones de enlace",
"link_to_oauth": "Enlace a OAuth",
"linked_oauth_account": "Cuenta OAuth vinculada",
"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": "Local",
"local_asset_cast_failed": "No es posible transmitir un recurso que no est├б subido al servidor",
"local_assets": "Archivos Locales",
"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",
@@ -1192,8 +1238,7 @@
"manage_your_devices": "Administre sus dispositivos conectados",
"manage_your_oauth_connection": "Administra tu conexi├│n OAuth",
"map": "Mapa",
"map_assets_in_bound": "{count} foto",
"map_assets_in_bounds": "{count} fotos",
"map_assets_in_bounds": "{count, plural, one {# foto} other {# fotos}}",
"map_cannot_get_user_location": "No se pudo obtener la posici├│n del usuario",
"map_location_dialog_yes": "S├н",
"map_location_picker_page_use_location": "Usar esta ubicaci├│n",
@@ -1238,13 +1283,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 +1323,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.",
@@ -1291,6 +1337,7 @@
"no_results": "Sin resultados",
"no_results_description": "Pruebe con un sin├│nimo o una palabra clave m├бs general",
"no_shared_albums_message": "Crea un ├бlbum para compartir fotos y v├нdeos con personas de tu red",
"no_uploads_in_progress": "No hay cargas en progreso",
"not_in_any_album": "Sin ├бlbum",
"not_selected": "No seleccionado",
"note_apply_storage_label_to_previously_uploaded assets": "Nota: Para aplicar la etiqueta de almacenamiento a los archivos subidos previamente, ejecute el",
@@ -1328,6 +1375,7 @@
"original": "original",
"other": "Otro",
"other_devices": "Otro dispositivo",
"other_entities": "Otras entidades",
"other_variables": "Otras variables",
"owned": "Propio",
"owner": "Propietario",
@@ -1459,6 +1507,7 @@
"purchase_server_description_2": "Estado del soporte",
"purchase_server_title": "Servidor",
"purchase_settings_server_activated": "La clave del producto del servidor la administra el administrador",
"queue_status": "Poniendo en cola {count}/{total}",
"rating": "Valoraci├│n",
"rating_clear": "Borrar calificaci├│n",
"rating_count": "{count, plural, one {# estrella} other {# estrellas}}",
@@ -1487,6 +1536,8 @@
"refreshing_faces": "Recargando caras",
"refreshing_metadata": "Recargando metadatos",
"regenerating_thumbnails": "Recargando miniaturas",
"remote": "Remoto",
"remote_assets": "Elementos remotos",
"remove": "Eliminar",
"remove_assets_album_confirmation": "┬┐Est├бs seguro que quieres eliminar {count, plural, one {# elemento} other {# elementos}} del ├бlbum?",
"remove_assets_shared_link_confirmation": "┬┐Est├бs seguro que quieres eliminar {count, plural, one {# elemento} other {# elementos}} del enlace compartido?",
@@ -1494,7 +1545,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",
@@ -1522,19 +1575,25 @@
"reset_password": "Restablecer la contrase├▒a",
"reset_people_visibility": "Restablecer la visibilidad de las personas",
"reset_pin_code": "Restablecer PIN",
"reset_sqlite": "Restablecer la Base de Datos SQLite",
"reset_sqlite_confirmation": "┬┐Est├бs seguro que deseas restablecer la base de datos SQLite? Deber├бs cerrar sesi├│n y volver a iniciarla para resincronizar los datos",
"reset_sqlite_success": "Restablecer exitosamente la base de datos SQLite",
"reset_to_default": "Restablecer los valores predeterminados",
"resolve_duplicates": "Resolver duplicados",
"resolved_all_duplicates": "Todos los duplicados resueltos",
"restore": "Restaurar",
"restore_all": "Restaurar todo",
"restore_trash_action_prompt": "{count} restaurado de la papelera",
"restore_user": "Restaurar usuario",
"restored_asset": "Archivo restaurado",
"resume": "Continuar",
"retry_upload": "Reintentar subida",
"review_duplicates": "Revisar duplicados",
"review_large_files": "Revisar archivos grandes",
"role": "Rol",
"role_editor": "Editor",
"role_viewer": "Visor",
"running": "En ejecuci├│n",
"save": "Guardar",
"save_to_gallery": "Guardado en la galer├нa",
"saved_api_key": "Clave API guardada",
@@ -1558,17 +1617,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 +1650,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 +1697,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 +1725,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...",
@@ -1687,6 +1747,7 @@
"shared_link_clipboard_copied_massage": "Copiado al portapapeles",
"shared_link_clipboard_text": "Enlace: {link}\nContrase├▒a: {password}",
"shared_link_create_error": "Error creando el enlace compartido",
"shared_link_custom_url_description": "Accede a este enlace compartido con una URL personalizada",
"shared_link_edit_description_hint": "Introduce la descripci├│n del enlace",
"shared_link_edit_expire_after_option_day": "1 d├нa",
"shared_link_edit_expire_after_option_days": "{count} d├нas",
@@ -1712,6 +1773,7 @@
"shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Administrar enlaces compartidos",
"shared_link_options": "Opciones de enlaces compartidos",
"shared_link_password_description": "Requerir una contrase├▒a para acceder a este enlace compartido",
"shared_links": "Enlaces compartidos",
"shared_links_description": "Comparte fotos y v├нdeos con un enlace",
"shared_photos_and_videos_count": "{assetCount, plural, other {# Fotos y v├нdeos compartidos.}}",
@@ -1767,6 +1829,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 +1839,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.",
@@ -1786,6 +1849,7 @@
"storage_quota": "Cuota de Almacenamiento",
"storage_usage": "{used} de {available} en uso",
"submit": "Enviar",
"success": "├Йxito",
"suggestions": "Sugerencias",
"sunrise_on_the_beach": "Amanecer en la playa",
"support": "Soporte",
@@ -1795,6 +1859,8 @@
"sync": "Sincronizar",
"sync_albums": "Sincronizar ├бlbumes",
"sync_albums_manual_subtitle": "Sincroniza todos los videos y fotos subidos con los ├бlbumes seleccionados a respaldar",
"sync_local": "Sincronizaci├│n Local",
"sync_remote": "Sincronizaci├│n Remota",
"sync_upload_album_setting_subtitle": "Crea y sube tus fotos y videos a los ├бlbumes seleccionados en Immich",
"tag": "Etiqueta",
"tag_assets": "Etiquetar activos",
@@ -1805,6 +1871,7 @@
"tag_updated": "Etiqueta actualizada: {tag}",
"tagged_assets": "Etiquetado(s) {count, plural, one {# activo} other {# activos}}",
"tags": "Etiquetas",
"tap_to_run_job": "Toca para ejecutar la tarea",
"template": "Plantilla",
"theme": "Tema",
"theme_selection": "Selecci├│n de tema",
@@ -1837,6 +1904,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 +1922,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,15 +1944,20 @@
"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",
"upload": "Subir",
"upload_action_prompt": "{count} en cola para carga",
"upload_concurrency": "Subidas simult├бneas",
"upload_details": "Cargar Detalles",
"upload_dialog_info": "┬┐Quieres hacer una copia de seguridad al servidor de los elementos seleccionados?",
"upload_dialog_title": "Subir elementos",
"upload_errors": "Subida completada con {count, plural, one {# error} other {# errores}}, actualice la p├бgina para ver los nuevos recursos de la subida.",
"upload_finished": "Carga finalizada",
"upload_progress": "Restante {remaining, number} - Procesado {processed, number}/{total, number}",
"upload_skipped_duplicates": "Saltado {count, plural, one {# duplicate asset} other {# duplicate assets}}",
"upload_status_duplicates": "Duplicados",
@@ -1891,6 +1966,7 @@
"upload_success": "Subida realizada correctamente, actualice la p├бgina para ver los nuevos recursos de subida.",
"upload_to_immich": "Subir a Immich ({count})",
"uploading": "Subiendo",
"uploading_media": "Subiendo medios",
"url": "URL",
"usage": "Uso",
"use_biometric": "Uso biom├йtrico",
@@ -1911,6 +1987,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",
@@ -1929,6 +2006,7 @@
"view_album": "Ver ├Бlbum",
"view_all": "Ver todas",
"view_all_users": "Mostrar todos los usuarios",
"view_details": "Ver Detalles",
"view_in_timeline": "Mostrar en la l├нnea de tiempo",
"view_link": "Ver enlace",
"view_links": "Mostrar enlaces",

View File

@@ -14,6 +14,7 @@
"add_a_location": "Lisa asukoht",
"add_a_name": "Lisa nimi",
"add_a_title": "Lisa pealkiri",
"add_birthday": "Lisa s├╝nnip├дev",
"add_endpoint": "Lisa l├╡pp-punkt",
"add_exclusion_pattern": "Lisa v├дlistamismuster",
"add_import_path": "Lisa imporditee",
@@ -33,40 +34,47 @@
"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",
"backup_database": "Loo andmebaasi t├╡mmis",
"backup_database_enable_description": "Luba andmebaasi t├╡mmised",
"backup_keep_last_amount": "Eelmiste t├╡mmiste arv, mida alles hoida",
"backup_onboarding_1_description": "asukohav├дline koopia pilves v├╡i teises f├╝├╝silises asukohas.",
"backup_onboarding_2_description": "lokaalset koopiat erinevatel seadmetel. See h├╡lmab p├╡hifaile ja nende failide lokaalsed varundust.",
"backup_onboarding_3_description": "koopiat su andmetest, kaasa arvatud originaalfailid. See h├╡lmab ├╝ht asukohav├дlist ja kaht lokaalset koopiat.",
"backup_onboarding_description": "Andmete kaitsmiseks on soovituslik <backblaze-link>3-2-1 varundusstrateegia</backblaze-link>. P├╡hjaliku varunduse jaoks peaksid talletama koopiaid nii oma ├╝leslaaditud fotodest ja videotest kui ka Immich'i andmebaasist.",
"backup_onboarding_footer": "Rohkem informatsiooni Immich'i varundamise kohta leiad <link>dokumentatsioonist</link>.",
"backup_onboarding_parts_title": "3-2-1 varundus h├╡lmab:",
"backup_onboarding_title": "Varukoopiad",
"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 +85,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 +100,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 +174,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 +218,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 +381,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",
@@ -379,6 +405,7 @@
"album_cover_updated": "Albumi kaanepilt muudetud",
"album_delete_confirmation": "Kas oled kindel, et soovid albumi {album} kustutada?",
"album_delete_confirmation_description": "Kui see album on jagatud, ei p├д├дse teised kasutajad sellele enam ligi.",
"album_deleted": "Album kustutatud",
"album_info_card_backup_album_excluded": "V├ДLJA J├ДETUD",
"album_info_card_backup_album_included": "LISATUD",
"album_info_updated": "Albumi info muudetud",
@@ -388,6 +415,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 +435,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 +456,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 +494,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",
@@ -490,6 +519,7 @@
"back_close_deselect": "Tagasi, sulge v├╡i t├╝hista valik",
"background_location_permission": "Taustal asukoha luba",
"background_location_permission_content": "Et taustal t├╢├╢tades v├╡rgu├╝hendust vahetada, peab Immich'il *alati* olema t├дpse asukoha luba, et rakendus saaks WiFi-v├╡rgu nime lugeda",
"backup": "Varundamine",
"backup_album_selection_page_albums_device": "Albumid seadmel ({count})",
"backup_album_selection_page_albums_tap": "Puuduta kaasamiseks, topeltpuuduta v├дlistamiseks",
"backup_album_selection_page_assets_scatter": "├Ьksused v├╡ivad olla jaotatud mitme albumi vahel. Seega saab albumeid varundamise protsessi kaasata v├╡i v├дlistada.",
@@ -553,6 +583,8 @@
"backup_options_page_title": "Varundamise valikud",
"backup_setting_subtitle": "Halda taustal ja esiplaanil ├╝leslaadimise seadeid",
"backward": "Tagasi",
"beta_sync": "Beeta s├╝nkroonimise staatus",
"beta_sync_subtitle": "Halda uut s├╝nkroonimiss├╝steemi",
"biometric_auth_enabled": "Biomeetriline autentimine lubatud",
"biometric_locked_out": "Biomeetriline autentimine on blokeeritud",
"biometric_no_options": "Biomeetrilisi valikuid ei ole",
@@ -570,7 +602,7 @@
"cache_settings_clear_cache_button": "T├╝hjenda puhver",
"cache_settings_clear_cache_button_title": "T├╝hjendab rakenduse puhvri. See m├╡jutab oluliselt rakenduse j├╡udlust, kuni puhver uuesti t├дidetakse.",
"cache_settings_duplicated_assets_clear_button": "T├ЬHJENDA",
"cache_settings_duplicated_assets_subtitle": "Fotod ja videod, mis on rakenduse poolt mustfiltreeritud",
"cache_settings_duplicated_assets_subtitle": "Fotod ja videod, mis on rakenduse poolt ignoreeritud",
"cache_settings_duplicated_assets_title": "Dubleeritud ├╝ksused ({count})",
"cache_settings_statistics_album": "Kogu pisipildid",
"cache_settings_statistics_full": "T├дism├╡├╡dus pildid",
@@ -587,6 +619,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",
@@ -700,10 +733,11 @@
"current_server_address": "Praegune serveri aadress",
"custom_locale": "Kohandatud lokaat",
"custom_locale_description": "Vorminda kuup├дevad ja arvud vastavalt keelele ja regioonile",
"custom_url": "Kohandatud URL",
"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 +753,8 @@
"default_locale": "Vaikimisi lokaat",
"default_locale_description": "Vorminda kuup├дevad ja numbrid vastavalt brauseri lokaadile",
"delete": "Kustuta",
"delete_action_confirmation_message": "Kas oled kindel, et soovid selle ├╝ksuse kustutada? See toiming liigutab ├╝ksuse serveri pr├╝gikasti ja k├╝sib, kas soovid selle lokaalselt kustutada",
"delete_action_prompt": "{count} 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,9 +768,12 @@
"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",
"delete_permanently": "Kustuta j├д├дdavalt",
"delete_permanently_action_prompt": "{count} j├д├дdavalt kustutatud",
"delete_shared_link": "Kustuta jagatud link",
"delete_shared_link_dialog_title": "Kustuta jagatud link",
"delete_tag": "Kustuta silt",
@@ -745,6 +784,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 +802,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",
@@ -788,6 +829,7 @@
"edit": "Muuda",
"edit_album": "Muuda albumit",
"edit_avatar": "Muuda avatari",
"edit_birthday": "Muuda s├╝nnip├дeva",
"edit_date": "Muuda kuup├дeva",
"edit_date_and_time": "Muuda kuup├дeva ja kellaaega",
"edit_description": "Muuda kirjeldust",
@@ -799,6 +841,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 +860,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",
@@ -953,6 +997,7 @@
},
"exif": "Exif",
"exif_bottom_sheet_description": "Lisa kirjeldus...",
"exif_bottom_sheet_description_error": "Viga kirjelduse muutmisel",
"exif_bottom_sheet_details": "├ЬKSIKASJAD",
"exif_bottom_sheet_location": "ASUKOHT",
"exif_bottom_sheet_people": "ISIKUD",
@@ -973,6 +1018,8 @@
"explorer": "Brauser",
"export": "Ekspordi",
"export_as_json": "Ekspordi JSON-formaati",
"export_database": "Ekspordi andmebaas",
"export_database_description": "Ekspordi SQLite andmebaas",
"extension": "Laiend",
"external": "V├дline",
"external_libraries": "V├дlised kogud",
@@ -984,6 +1031,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",
@@ -1023,6 +1071,9 @@
"haptic_feedback_switch": "Luba haptiline tagasiside",
"haptic_feedback_title": "Haptiline tagasiside",
"has_quota": "On kvoot",
"hash_asset": "Arvuta ├╝ksuse r├дsi",
"hashed_assets": "R├дsiga ├╝ksused",
"hashing": "R├дsi arvutamine",
"header_settings_add_header_tip": "Lisa p├дis",
"header_settings_field_validator_msg": "V├д├дrtus ei saa olla t├╝hi",
"header_settings_header_name_input": "P├дise nimi",
@@ -1055,6 +1106,7 @@
"host": "Host",
"hour": "Tund",
"id": "ID",
"idle": "J├╡ude",
"ignore_icloud_photos": "Ignoreeri iCloud fotosid",
"ignore_icloud_photos_description": "Fotosid, mis on iCloud'is, ei laadita ├╝les Immich'i serverisse",
"image": "Pilt",
@@ -1099,7 +1151,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",
@@ -1112,6 +1164,7 @@
"language_no_results_title": "├Ьhtegi keelt ei leitud",
"language_search_hint": "Otsi keeli...",
"language_setting_description": "Vali oma eelistatud keel",
"large_files": "Suured failid",
"last_seen": "Viimati n├дhtud",
"latest_version": "Uusim versioon",
"latitude": "Laiuskraad",
@@ -1127,16 +1180,18 @@
"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",
"link_options": "Lingi valikud",
"link_to_oauth": "├Ьhenda OAuth",
"linked_oauth_account": "OAuth konto ├╝hendatud",
"list": "Loend",
"loading": "Laadimine",
"loading_search_results_failed": "Otsitulemuste laadimine eba├╡nnestus",
"local": "Lokaalsed",
"local_asset_cast_failed": "Ei saa edastada ├╝ksust, mis pole serverisse ├╝les laaditud",
"local_assets": "Lokaalsed ├╝ksused",
"local_network": "Kohalik v├╡rk",
"local_network_sheet_info": "Rakendus ├╝hendub valitud Wi-Fi v├╡rgus olles serveriga selle URL-i kaudu",
"location_permission": "Asukoha luba",
@@ -1193,8 +1248,7 @@
"manage_your_devices": "Halda oma autenditud seadmeid",
"manage_your_oauth_connection": "Halda oma OAuth ├╝hendust",
"map": "Kaart",
"map_assets_in_bound": "{count} foto",
"map_assets_in_bounds": "{count} fotot",
"map_assets_in_bounds": "{count, plural, one {# foto} other {# fotot}}",
"map_cannot_get_user_location": "Ei saa kasutaja asukohta tuvastada",
"map_location_dialog_yes": "Jah",
"map_location_picker_page_use_location": "Kasuta seda asukohta",
@@ -1246,6 +1300,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",
@@ -1292,6 +1347,7 @@
"no_results": "Vasteid pole",
"no_results_description": "Proovi s├╝non├╝├╝mi v├╡i ├╝ldisemat m├дrks├╡na",
"no_shared_albums_message": "Lisa album, et fotosid ja videosid teistega jagada",
"no_uploads_in_progress": "├Ьleslaadimisi k├дimas ei ole",
"not_in_any_album": "Pole ├╝heski albumis",
"not_selected": "Ei ole valitud",
"note_apply_storage_label_to_previously_uploaded assets": "M├дrkus: Et rakendada talletussilt varem ├╝leslaaditud ├╝ksustele, k├дivita",
@@ -1329,6 +1385,7 @@
"original": "originaal",
"other": "Muud",
"other_devices": "Muud seadmed",
"other_entities": "Muud objektid",
"other_variables": "Muud muutujad",
"owned": "Minu omad",
"owner": "Omanik",
@@ -1460,6 +1517,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}}",
@@ -1488,6 +1546,8 @@
"refreshing_faces": "N├дgude v├дrskendamine",
"refreshing_metadata": "Metaandmete v├дrskendamine",
"regenerating_thumbnails": "Pisipiltide uuesti genereerimine",
"remote": "Serveris",
"remote_assets": "Kaug├╝ksused",
"remove": "Eemalda",
"remove_assets_album_confirmation": "Kas oled kindel, et soovid {count, plural, one {# ├╝ksuse} other {# ├╝ksust}} albumist eemaldada?",
"remove_assets_shared_link_confirmation": "Kas oled kindel, et soovid eemaldada {count, plural, one {# ├╝ksuse} other {# ├╝ksust}} sellelt jagatud lingilt?",
@@ -1495,7 +1555,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",
@@ -1523,19 +1585,25 @@
"reset_password": "L├дhtesta parool",
"reset_people_visibility": "L├дhtesta isikute n├дhtavus",
"reset_pin_code": "L├дhtesta PIN-kood",
"reset_sqlite": "L├дhtesta SQLite andmebaas",
"reset_sqlite_confirmation": "Kas oled kindel, et soovid SQLite andmebaasi l├дhtestada? Andmete uuesti s├╝nkroonimiseks pead v├дlja ja j├дlle sisse logima",
"reset_sqlite_success": "SQLite andmebaas edukalt l├дhtestatud",
"reset_to_default": "L├дhtesta",
"resolve_duplicates": "Lahenda duplikaadid",
"resolved_all_duplicates": "K├╡ik duplikaadid lahendatud",
"restore": "Taasta",
"restore_all": "Taasta k├╡ik",
"restore_trash_action_prompt": "{count} pr├╝gikastust taastatud",
"restore_user": "Taasta kasutaja",
"restored_asset": "├Ьksus taastatud",
"resume": "J├дtka",
"retry_upload": "Proovi ├╝leslaadimist uuesti",
"review_duplicates": "Vaata duplikaadid l├дbi",
"review_large_files": "Vaata suured failid l├дbi",
"role": "Roll",
"role_editor": "Muutja",
"role_viewer": "Vaataja",
"running": "K├дimas",
"save": "Salvesta",
"save_to_gallery": "Salvesta galeriisse",
"saved_api_key": "API v├╡ti salvestatud",
@@ -1667,6 +1735,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...",
@@ -1688,6 +1757,7 @@
"shared_link_clipboard_copied_massage": "Kopeeritud l├╡ikelauale",
"shared_link_clipboard_text": "Link: {link}\nParool: {password}",
"shared_link_create_error": "Viga jagatud lingi loomisel",
"shared_link_custom_url_description": "Ligip├д├дs jagatud lingile kohandatud URL-i kaudu",
"shared_link_edit_description_hint": "Sisesta jagatud lingi kirjeldus",
"shared_link_edit_expire_after_option_day": "1 p├дev",
"shared_link_edit_expire_after_option_days": "{count} p├дeva",
@@ -1713,6 +1783,7 @@
"shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "Halda jagatud linke",
"shared_link_options": "Jagatud lingi valikud",
"shared_link_password_description": "N├╡ua jagatud lingile ligi p├д├дsemiseks parooli",
"shared_links": "Jagatud lingid",
"shared_links_description": "Jaga fotosid ja videosid lingiga",
"shared_photos_and_videos_count": "{assetCount, plural, other {# jagatud fotot ja videot.}}",
@@ -1768,6 +1839,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",
@@ -1787,6 +1859,7 @@
"storage_quota": "Talletuskvoot",
"storage_usage": "{used}/{available} kasutatud",
"submit": "Saada",
"success": "├Хnnestus",
"suggestions": "Soovitused",
"sunrise_on_the_beach": "P├дikeset├╡us rannal",
"support": "Tugi",
@@ -1796,6 +1869,8 @@
"sync": "S├╝nkrooni",
"sync_albums": "S├╝nkrooni albumid",
"sync_albums_manual_subtitle": "S├╝nkrooni k├╡ik ├╝leslaaditud videod ja fotod valitud varundusalbumitesse",
"sync_local": "S├╝nkrooni lokaalsed ├╝ksused",
"sync_remote": "S├╝nkrooni kaug├╝ksused",
"sync_upload_album_setting_subtitle": "Loo ja laadi oma pildid ja videod ├╝les Immich'isse valitud albumitesse",
"tag": "Silt",
"tag_assets": "Sildista ├╝ksuseid",
@@ -1806,6 +1881,7 @@
"tag_updated": "Muudetud silt: {tag}",
"tagged_assets": "{count, plural, one {# ├╝ksus} other {# ├╝ksust}} sildistatud",
"tags": "Sildid",
"tap_to_run_job": "Puuduta t├╢├╢te k├дivitamiseks",
"template": "Mall",
"theme": "Teema",
"theme_selection": "Teema valik",
@@ -1838,6 +1914,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 +1932,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,15 +1954,20 @@
"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_action_prompt": "{count} ├╝leslaadimise ootel",
"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.",
"upload_finished": "├Ьleslaadimine l├╡petatud",
"upload_progress": "Ootel {remaining, number} - T├╢├╢deldud {processed, number}/{total, number}",
"upload_skipped_duplicates": "{count, plural, one {# dubleeritud ├╝ksus} other {# dubleeritud ├╝ksust}} vahele j├дetud",
"upload_status_duplicates": "Duplikaadid",
@@ -1892,6 +1976,7 @@
"upload_success": "├Ьleslaadimine ├╡nnestus, uute ├╝ksuste n├дgemiseks v├дrskenda lehte.",
"upload_to_immich": "Laadi Immich'isse ({count})",
"uploading": "├Ьleslaadimine",
"uploading_media": "Meediumi ├╝leslaadimine",
"url": "URL",
"usage": "Kasutus",
"use_biometric": "Kasuta biomeetriat",
@@ -1912,6 +1997,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 +2016,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",

View File

@@ -471,7 +471,6 @@
"library": "┌й╪к╪з╪и╪о╪з┘Ж┘З",
"library_options": "┌п╪▓█М┘Ж┘ЗтАМ┘З╪з█М ┌й╪к╪з╪и╪о╪з┘Ж┘З",
"light": "╪▒┘И╪┤┘Ж",
"link_options": "┌п╪▓█М┘Ж┘ЗтАМ┘З╪з█М ┘Д█М┘Ж┌й",
"link_to_oauth": "╪з╪к╪╡╪з┘Д ╪и┘З OAuth",
"linked_oauth_account": "╪н╪│╪з╪и OAuth ┘Е╪к╪╡┘Д ╪┤╪п┘З",
"list": "┘Д█М╪│╪к",
@@ -493,7 +492,6 @@
"manage_your_devices": "┘Е╪п█М╪▒█М╪к ╪п╪│╪к┌п╪з┘ЗтАМ┘З╪з█М ┘Е╪к╪╡┘Д",
"manage_your_oauth_connection": "┘Е╪п█М╪▒█М╪к ╪з╪к╪╡╪з┘Д OAuth",
"map": "┘Ж┘В╪┤┘З",
"map_assets_in_bound": "{count} ╪╣┌й╪│",
"map_assets_in_bounds": "{count} ╪╣┌й╪│ ┘З╪з",
"map_cannot_get_user_location": "┘Е┘И┘В╪╣█М╪к ┘Е┌й╪з┘Ж█М ╪п╪▒ ╪п╪│╪к╪▒╪│ ┘Ж█М╪│╪к",
"map_location_dialog_yes": "╪и┘Д┘З",

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├д",
@@ -356,6 +373,7 @@
"admin_password": "Yll├дpit├дj├дn salasana",
"administration": "Yll├дpito",
"advanced": "Edistyneet",
"advanced_settings_beta_timeline_subtitle": "Kokeile uutta sovelluskokemusta",
"advanced_settings_enable_alternate_media_filter_subtitle": "K├дyt├д t├дt├д vaihtoehtoa suodattaaksesi mediaa synkronoinnin aikana vaihtoehtoisten kriteerien perusteella. Kokeile t├дt├д vain, jos sovelluksessa on ongelmia kaikkien albumien tunnistamisessa.",
"advanced_settings_enable_alternate_media_filter_title": "[KOKEELLINEN] K├дyt├д vaihtoehtoisen laitteen albumin synkronointisuodatinta",
"advanced_settings_log_level_title": "Kirjaustaso: {level}",
@@ -403,6 +421,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 +444,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 +482,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,10 +502,12 @@
"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",
"background_location_permission_content": "Jotta sovellus voi vaihtaa verkkoa taustalla toimiessaan, Immichill├д on *aina* oltava p├д├дsy tarkkaan sijaintiin, jotta se voi lukea Wi-Fi-verkon nimen",
"backup": "Varmuuskopiointi",
"backup_album_selection_page_albums_device": "Laitteen albumit ({count})",
"backup_album_selection_page_albums_tap": "Napauta sis├дllytt├д├дksesi, kaksoisnapauta j├дtt├д├дksesi pois",
"backup_album_selection_page_assets_scatter": "Kohteet voivat olla hajaantuneina useisiin albumeihin. Albumeita voidaan sis├дllytt├д├д varmuuskopiointiin tai j├дtt├д├д siit├д pois.",
@@ -582,7 +608,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 +668,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 +721,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 +737,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 +770,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 +818,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 +1004,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 +1119,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 +1129,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",
@@ -1113,12 +1151,12 @@
"light": "Vaalea",
"like_deleted": "Tykk├дys poistettu",
"link_motion_video": "Linkit├д liikevideo",
"link_options": "Linkin asetukset",
"link_to_oauth": "Linkki OAuth",
"linked_oauth_account": "Linkitetty OAuth-tili",
"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 +1170,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",
@@ -1174,7 +1213,6 @@
"manage_your_devices": "Hallitse sis├д├дnkirjautuneita laitteitasi",
"manage_your_oauth_connection": "Hallitse OAuth-yhteytt├дsi",
"map": "Kartta",
"map_assets_in_bound": "{count} kuva",
"map_assets_in_bounds": "{count} kuvaa",
"map_cannot_get_user_location": "K├дytt├дj├дn sijaintia ei voitu m├д├дritt├д├д",
"map_location_dialog_yes": "Kyll├д",
@@ -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}",

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}",

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",
@@ -379,6 +397,7 @@
"album_cover_updated": "Couverture de l'album mise ├а jour",
"album_delete_confirmation": "├Кtes-vous s├╗r de vouloir supprimer l'album {album}тАп?",
"album_delete_confirmation_description": "Si cet album est partag├й, les autres utilisateurs ne pourront plus y acc├йder.",
"album_deleted": "Album supprim├й",
"album_info_card_backup_album_excluded": "EXCLUS",
"album_info_card_backup_album_included": "INCLUS",
"album_info_updated": "D├йtails de l'album mis ├а jour",
@@ -388,6 +407,7 @@
"album_options": "Options de l'album",
"album_remove_user": "Supprimer l'utilisateurтАп?",
"album_remove_user_confirmation": "├Кtes-vous s├╗r de vouloir supprimer {user}тАп?",
"album_search_not_found": "Aucun album trouv├й ne correspond ├а votre recherche",
"album_share_no_users": "Il semble que vous ayez partag├й cet album avec tous les utilisateurs ou que vous n'ayez aucun utilisateur avec lequel le partager.",
"album_updated": "Album mis ├а jour",
"album_updated_setting_description": "Recevoir une notification par courriel lorsqu'un album partag├й a de nouveaux m├йdias",
@@ -407,14 +427,15 @@
"albums_default_sort_order": "Ordre de tri par d├йfaut des albums",
"albums_default_sort_order_description": "Ordre de tri des m├йdias pour les nouveaux albums cr├й├йs.",
"albums_feature_description": "Biblioth├иques de m├йdias pouvant ├кtre partag├йs avec d'autres utilisateurs.",
"albums_on_device_count": "Album sur l'appareil ({count})",
"all": "Tout",
"all_albums": "Tous les albums",
"all_people": "Toutes les personnes",
"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 +448,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 +486,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",
@@ -490,6 +511,7 @@
"back_close_deselect": "Retournez en arri├иre, fermez ou d├йs├йlectionnez",
"background_location_permission": "Permission de localisation en arri├иre plan",
"background_location_permission_content": "Afin de pouvoir changer d'adresse en arri├иre plan, Immich doit avoir *en permanence* acc├иs ├а la localisation pr├йcise, afin d'acc├йder au le nom du r├йseau Wi-Fi utilis├й",
"backup": "Sauvegarde",
"backup_album_selection_page_albums_device": "Albums sur l'appareil ({count})",
"backup_album_selection_page_albums_tap": "Tapez pour inclure, tapez deux fois pour exclure",
"backup_album_selection_page_assets_scatter": "Les ├йl├йments peuvent ├кtre r├йpartis sur plusieurs albums. De ce fait, les albums peuvent ├кtre inclus ou exclus pendant le processus de sauvegarde.",
@@ -542,7 +564,7 @@
"backup_controller_page_to_backup": "Albums ├а sauvegarder",
"backup_controller_page_total_sub": "Toutes les photos et vid├йos uniques des albums s├йlectionn├йs",
"backup_controller_page_turn_off": "D├йsactiver la sauvegarde",
"backup_controller_page_turn_on": "Activer la sauvegarde",
"backup_controller_page_turn_on": "Activer la sauvegarde au premier plan",
"backup_controller_page_uploading_file_info": "Envoi des informations du fichier",
"backup_err_only_album": "Impossible de retirer le seul album",
"backup_info_card_assets": "├йl├йments",
@@ -553,6 +575,8 @@
"backup_options_page_title": "Options de sauvegarde",
"backup_setting_subtitle": "Ajuster les param├иtres d'envoi au premier et en arri├иre-plan",
"backward": "Arri├иre",
"beta_sync": "Statut de la synchronisation b├йta",
"beta_sync_subtitle": "G├йrer le nouveau syst├иme de synchronisation",
"biometric_auth_enabled": "Authentification biom├йtrique activ├йe",
"biometric_locked_out": "L'authentification biom├йtrique est verrouill├й",
"biometric_no_options": "Aucune option biom├йtrique disponible",
@@ -570,7 +594,7 @@
"cache_settings_clear_cache_button": "Effacer le cache",
"cache_settings_clear_cache_button_title": "Efface le cache de l'application. Cela aura un impact significatif sur les performances de l'application jusqu'├а ce que le cache soit reconstruit.",
"cache_settings_duplicated_assets_clear_button": "EFFACER",
"cache_settings_duplicated_assets_subtitle": "Photos et vid├йos qui sont exclues par l'application",
"cache_settings_duplicated_assets_subtitle": "Photos et vid├йos qui sont ignor├йes par l'application",
"cache_settings_duplicated_assets_title": "M├йdias dupliqu├йs ({count})",
"cache_settings_statistics_album": "Miniatures de la biblioth├иque",
"cache_settings_statistics_full": "Images compl├иtes",
@@ -587,6 +611,7 @@
"cancel": "Annuler",
"cancel_search": "Annuler la recherche",
"canceled": "Annul├й",
"canceling": "Annulation",
"cannot_merge_people": "Impossible de fusionner les personnes",
"cannot_undo_this_action": "Vous ne pouvez pas annuler cette actionтАп!",
"cannot_update_the_description": "Impossible de mettre ├а jour la description",
@@ -700,10 +725,11 @@
"current_server_address": "Adresse actuelle du serveur",
"custom_locale": "Param├иtres r├йgionaux personnalis├йs",
"custom_locale_description": "Afficher les dates et nombres en fonction des param├иtres r├йgionaux",
"custom_url": "URL personnalis├йe",
"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 +745,8 @@
"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_confirmation_message": "├Кtes-vous s├╗r de vouloir supprimer ce m├йdiaтАп? Cela d├йplacera le m├йdia dans la poubelle du serveur et vous demandera si vous voulez le supprimer localement",
"delete_action_prompt": "{count} supprim├й(s)",
"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,9 +760,12 @@
"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",
"delete_permanently": "Supprimer d├йfinitivement",
"delete_permanently_action_prompt": "{count} supprim├й(s) d├йfinitivement",
"delete_shared_link": "Supprimer le lien partag├й",
"delete_shared_link_dialog_title": "Supprimer le lien partag├й",
"delete_tag": "Supprimer l'├йtiquette",
@@ -745,6 +776,7 @@
"description": "Description",
"description_input_hint_text": "Ajouter une description...",
"description_input_submit_error": "Erreur de mise ├а jour de la description, v├йrifier le journal pour plus de d├йtails",
"deselect_all": "Tout d├йs├йlectionner",
"details": "D├йtails",
"direction": "Ordre",
"disabled": "D├йsactiv├й",
@@ -762,6 +794,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 +832,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",
@@ -817,10 +851,11 @@
"empty_trash": "Vider la corbeille",
"empty_trash_confirmation": "├Кtes-vous s├╗r de vouloir vider la corbeilleтАп? Cela supprimera d├йfinitivement de Immich tous les m├йdias qu'elle contient.\nVous ne pouvez pas annuler cette actionтАп!",
"enable": "Active",
"enable_backup": "Activer la sauvegarde",
"enable_biometric_auth_description": "Entrez votre code PIN pour activer l'authentification biom├йtrique",
"enabled": "Activ├й",
"end_date": "Date de fin",
"enqueued": "Mis en file",
"enqueued": "Mis en file d'attente",
"enter_wifi_name": "Entrez le nom du r├йseau wifi",
"enter_your_pin_code": "Entrez votre code PIN",
"enter_your_pin_code_subtitle": "Entrez votre code PIN pour acc├йder au dossier verrouill├й",
@@ -973,6 +1008,8 @@
"explorer": "Explorateur",
"export": "Exporter",
"export_as_json": "Exporter en JSON",
"export_database": "Exporter la base de donn├йes",
"export_database_description": "Exporter la base de donn├йes SQLite",
"extension": "Extension",
"external": "Externe",
"external_libraries": "Biblioth├иques externes",
@@ -984,6 +1021,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├й",
@@ -1023,6 +1061,9 @@
"haptic_feedback_switch": "Activer le retour haptique",
"haptic_feedback_title": "Retour haptique",
"has_quota": "Quota",
"hash_asset": "Hasher le m├йdia",
"hashed_assets": "M├йdia hash├йs",
"hashing": "Hash",
"header_settings_add_header_tip": "Ajouter un en-t├кte",
"header_settings_field_validator_msg": "Cette valeur ne peut pas ├кtre vide",
"header_settings_header_name_input": "Nom de l'en-t├кte",
@@ -1036,7 +1077,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",
@@ -1055,6 +1096,7 @@
"host": "H├┤te",
"hour": "Heure",
"id": "ID",
"idle": "Inactif",
"ignore_icloud_photos": "Ignorer les photos iCloud",
"ignore_icloud_photos_description": "Les photos stock├йes sur iCloud ne seront pas envoy├йes sur le serveur Immich",
"image": "Image",
@@ -1112,6 +1154,7 @@
"language_no_results_title": "Aucune langue trouv├йe",
"language_search_hint": "Recherche de langues...",
"language_setting_description": "S├йlectionnez votre langue pr├йf├йr├йe",
"large_files": "Fichiers volumineux",
"last_seen": "Derni├иrement utilis├й",
"latest_version": "Derni├иre version",
"latitude": "Latitude",
@@ -1127,16 +1170,18 @@
"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",
"link_options": "Options de lien",
"link_to_oauth": "Lien au service OAuth",
"linked_oauth_account": "Compte OAuth rattach├й",
"list": "Liste",
"loading": "Chargement",
"loading_search_results_failed": "Chargement des r├йsultats ├йchou├й",
"local": "Local",
"local_asset_cast_failed": "Impossible de caster un m├йdia qui n'a pas envoy├й vers le serveur",
"local_assets": "M├йdia locaux",
"local_network": "R├йseau local",
"local_network_sheet_info": "L'application va se connecter au serveur via cette URL quand l'appareil est connect├й ├а ce r├йseau Wi-Fi",
"location_permission": "Autorisation de localisation",
@@ -1193,8 +1238,7 @@
"manage_your_devices": "G├йrer vos appareils",
"manage_your_oauth_connection": "G├йrer votre connexion OAuth",
"map": "Carte",
"map_assets_in_bound": "{count} photo",
"map_assets_in_bounds": "{count} photos",
"map_assets_in_bounds": "{count, plural, one {# photo} other {# photos}}",
"map_cannot_get_user_location": "Impossible d'obtenir la localisation de l'utilisateur",
"map_location_dialog_yes": "Oui",
"map_location_picker_page_use_location": "Utiliser ma position",
@@ -1246,6 +1290,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",
@@ -1292,6 +1337,7 @@
"no_results": "Aucun r├йsultat",
"no_results_description": "Essayez un synonyme ou un mot-cl├й plus g├йn├йral",
"no_shared_albums_message": "Cr├йer un album pour partager vos photos et vid├йos avec les personnes de votre r├йseau",
"no_uploads_in_progress": "Pas d'envoi en cours",
"not_in_any_album": "Dans aucun album",
"not_selected": "Non s├йlectionn├й",
"note_apply_storage_label_to_previously_uploaded assets": "Note┬а: Pour appliquer l'├йtiquette de stockage aux m├йdias pr├йc├йdemment envoy├йs, ex├йcutez",
@@ -1329,6 +1375,7 @@
"original": "original",
"other": "Autre",
"other_devices": "Autres appareils",
"other_entities": "Autres entit├йs",
"other_variables": "Autres variables",
"owned": "Poss├йd├й",
"owner": "Propri├йtaire",
@@ -1390,7 +1437,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",
@@ -1460,6 +1507,7 @@
"purchase_server_description_2": "Statut de contributeur",
"purchase_server_title": "Serveur",
"purchase_settings_server_activated": "La cl├й du produit pour le Serveur est g├йr├йe par l'administrateur",
"queue_status": "{count}/{total} en file d'attente",
"rating": "├Йtoile d'├йvaluation",
"rating_clear": "Effacer l'├йvaluation",
"rating_count": "{count, plural, one {# ├йtoile} other {# ├йtoiles}}",
@@ -1488,6 +1536,8 @@
"refreshing_faces": "Actualisation des visages",
"refreshing_metadata": "Actualisation des m├йtadonn├йes",
"regenerating_thumbnails": "Reg├йn├йration des miniatures",
"remote": "├А distance",
"remote_assets": "M├йdia ├а distance",
"remove": "Supprimer",
"remove_assets_album_confirmation": "├Кtes-vous s├╗r de vouloir supprimer {count, plural, one {# m├йdia} other {# m├йdias}} de l'albumтАп?",
"remove_assets_shared_link_confirmation": "├Кtes-vous s├╗r de vouloir supprimer {count, plural, one {# m├йdia} other {# m├йdias}} de ce lien partag├йтАп?",
@@ -1495,7 +1545,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 +1562,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",
@@ -1523,19 +1575,25 @@
"reset_password": "R├йinitialiser le mot de passe",
"reset_people_visibility": "R├йinitialiser la visibilit├й des personnes",
"reset_pin_code": "R├йinitialiser le code PIN",
"reset_sqlite": "R├йinitialiser la base de donn├йes SQLite",
"reset_sqlite_confirmation": "├Кtes-vous certain de vouloir r├йinitialiser la base de donn├йes SQLiteтАп? Vous devrez vous d├йconnecter puis vous reconnecter ├а nouveau pour resynchroniser les donn├йes",
"reset_sqlite_success": "La base de donn├йes SQLite ├а ├йt├й r├йinitialis├й avec succ├иs",
"reset_to_default": "R├йtablir les valeurs par d├йfaut",
"resolve_duplicates": "R├йsoudre les doublons",
"resolved_all_duplicates": "R├йsolution de tous les doublons",
"restore": "Restaurer",
"restore_all": "Tout restaurer",
"restore_trash_action_prompt": "{count} restaur├й de la corbeille",
"restore_user": "Restaurer l'utilisateur",
"restored_asset": "M├йdia restaur├й",
"resume": "Reprendre",
"retry_upload": "R├йessayer l'envoi",
"review_duplicates": "Consulter les doublons",
"review_large_files": "Consulter les fichiers volumineux",
"role": "R├┤le",
"role_editor": "├Йditeur",
"role_viewer": "Visionneuse",
"running": "En cours",
"save": "Sauvegarder",
"save_to_gallery": "Enregistrer",
"saved_api_key": "Cl├й API sauvegard├йe",
@@ -1566,8 +1624,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 +1725,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...",
@@ -1688,6 +1747,7 @@
"shared_link_clipboard_copied_massage": "Copi├й dans le presse-papier",
"shared_link_clipboard_text": "Lien┬а: {link}\nMot de passe┬а: {password}",
"shared_link_create_error": "Erreur pendant la cr├йation du lien partag├й",
"shared_link_custom_url_description": "Acc├йder ├а ce lien partag├й avec une URL personnalis├йe",
"shared_link_edit_description_hint": "Saisir la description du partage",
"shared_link_edit_expire_after_option_day": "1 jour",
"shared_link_edit_expire_after_option_days": "{count} jours",
@@ -1713,6 +1773,7 @@
"shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "G├йrer les liens partag├йs",
"shared_link_options": "Options de lien partag├й",
"shared_link_password_description": "Demander un mot de passe pour acc├йder ├а ce lien partag├й",
"shared_links": "Liens partag├йs",
"shared_links_description": "Partager les photos et vid├йos via un lien",
"shared_photos_and_videos_count": "{assetCount, plural, other {# photos et vid├йos partag├йes.}}",
@@ -1768,6 +1829,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",
@@ -1787,6 +1849,7 @@
"storage_quota": "Quota de stockage",
"storage_usage": "{used} sur {available} utilis├й",
"submit": "Soumettre",
"success": "R├йussi",
"suggestions": "Suggestions",
"sunrise_on_the_beach": "Lever de soleil sur la plage",
"support": "Soutenir",
@@ -1796,6 +1859,8 @@
"sync": "Synchroniser",
"sync_albums": "Synchroniser dans des albums",
"sync_albums_manual_subtitle": "Synchroniser toutes les vid├йos et photos envoy├йes dans les albums s├йlectionn├йs",
"sync_local": "Synchronisation locale",
"sync_remote": "Synchronisation ├а distance",
"sync_upload_album_setting_subtitle": "Cr├йez et envoyez vos photos et vid├йos dans les albums s├йlectionn├йs sur Immich",
"tag": "├Йtiquette",
"tag_assets": "├Йtiqueter les m├йdias",
@@ -1806,6 +1871,7 @@
"tag_updated": "├Йtiquette mise ├а jourтАп: {tag}",
"tagged_assets": "├Йtiquette ajout├йe ├а {count, plural, one {# m├йdia} other {# m├йdias}}",
"tags": "├Йtiquettes",
"tap_to_run_job": "Appuyez pour d├йmarrer la t├вche",
"template": "Mod├иle",
"theme": "Th├иme",
"theme_selection": "S├йlection du th├иme",
@@ -1838,6 +1904,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 +1922,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,15 +1944,20 @@
"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",
"upload": "Envoyer",
"upload_action_prompt": "{count} en attente d'envoi",
"upload_concurrency": "Envois simultan├йs",
"upload_details": "D├йtails des envois",
"upload_dialog_info": "Voulez-vous sauvegarder la s├йlection vers le serveurтАп?",
"upload_dialog_title": "Envoyer le m├йdia",
"upload_errors": "L'envoi s'est compl├йt├й avec {count, plural, one {# erreur} other {# erreurs}}. Rafra├оchissez la page pour voir les nouveaux m├йdias envoy├йs.",
"upload_finished": "Envoi fini",
"upload_progress": "{remaining, number} restant(s) - {processed, number} trait├й(s)/{total, number}",
"upload_skipped_duplicates": "{count, plural, one {# doublon ignor├й} other {# doublons ignor├йs}}",
"upload_status_duplicates": "Doublons",
@@ -1892,6 +1966,7 @@
"upload_success": "Envoi r├йussi. Rafra├оchissez la page pour voir les nouveaux m├йdias envoy├йs.",
"upload_to_immich": "Envoyer vers Immich ({count})",
"uploading": "Envoi",
"uploading_media": "Envoi du m├йdia",
"url": "URL",
"usage": "Utilisation",
"use_biometric": "Utiliser l'authentification biom├йtrique",
@@ -1912,6 +1987,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",
@@ -1930,6 +2006,7 @@
"view_album": "Afficher l'album",
"view_all": "Voir tout",
"view_all_users": "Voir tous les utilisateurs",
"view_details": "Voir les d├йtails",
"view_in_timeline": "Voir dans la vue chronologique",
"view_link": "Voir le lien",
"view_links": "Voir les liens",

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",
@@ -477,6 +476,7 @@
"back_close_deselect": "Atr├бs, pechar ou deseleccionar",
"background_location_permission": "Permiso de ubicaci├│n en segundo plano",
"background_location_permission_content": "Para cambiar de rede cando se executa en segundo plano, Immich debe ter *sempre* acceso ├б ubicaci├│n precisa para que a aplicaci├│n poida ler o nome da rede wifi",
"backup": "Copia de Seguridade",
"backup_album_selection_page_albums_device": "├Бlbums no dispositivo ({count})",
"backup_album_selection_page_albums_tap": "Tocar para inclu├нr, dobre toque para exclu├нr",
"backup_album_selection_page_assets_scatter": "Os activos poden dispersarse por varios ├бlbums. Polo tanto, os ├бlbums poden inclu├нrse ou exclu├нrse durante o proceso de copia de seguridade.",
@@ -1071,7 +1071,6 @@
"light": "Claro",
"like_deleted": "G├║stame eliminado",
"link_motion_video": "Ligar v├нdeo en movemento",
"link_options": "Opci├│ns da ligaz├│n",
"link_to_oauth": "Ligar a OAuth",
"linked_oauth_account": "Conta OAuth ligada",
"list": "Lista",
@@ -1130,7 +1129,6 @@
"manage_your_devices": "Xestionar os teus dispositivos con sesi├│n iniciada",
"manage_your_oauth_connection": "Xestionar a t├║a conexi├│n OAuth",
"map": "Mapa",
"map_assets_in_bound": "{count} foto",
"map_assets_in_bounds": "{count} fotos",
"map_cannot_get_user_location": "Non se pode obter a ubicaci├│n do usuario",
"map_location_dialog_yes": "Si",

View File

@@ -14,6 +14,7 @@
"add_a_location": "╫Ф╫Х╫б╫д╫к ╫Ю╫Щ╫з╫Х╫Э",
"add_a_name": "╫Ф╫Х╫б╫д╫к ╫й╫Э",
"add_a_title": "╫Ф╫Х╫б╫д╫к ╫Ы╫Х╫к╫и╫к",
"add_birthday": "╫Ф╫Х╫б╫д╫к ╫Щ╫Х╫Э ╫Ф╫Х╫Ь╫У╫к",
"add_endpoint": "╫Ф╫Х╫б╫г ╫а╫з╫Х╫У╫к ╫з╫ж╫Ф",
"add_exclusion_pattern": "╫Ф╫Х╫б╫д╫к ╫У╫д╫Х╫б ╫Ф╫Ч╫и╫Т╫Ф",
"add_import_path": "╫Ф╫Х╫б╫д╫к ╫а╫к╫Щ╫С ╫Щ╫С╫Х╫Р",
@@ -34,6 +35,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, ╫Х╫Ф╫Т╫У╫и╫Х╫к ╫Ф╫к╫Ч╫С╫и╫Х╫к ╫Р╫Ч╫и╫Х╫к",
@@ -43,6 +45,13 @@
"backup_database": "╫Т╫Щ╫С╫Х╫Щ ╫Ю╫б╫У ╫а╫к╫Х╫а╫Щ╫Э",
"backup_database_enable_description": "╫Р╫д╫й╫и ╫Т╫Щ╫С╫Х╫Щ╫Щ ╫Ю╫б╫У ╫а╫к╫Х╫а╫Щ╫Э",
"backup_keep_last_amount": "╫Ы╫Ю╫Х╫к ╫й╫Ь ╫Т╫Щ╫С╫Х╫Щ╫Щ╫Э ╫з╫Х╫У╫Ю╫Щ╫Э ╫й╫Щ╫й ╫Ь╫й╫Ю╫Х╫и",
"backup_onboarding_1_description": "╫Ф╫в╫к╫з ╫С╫в╫а╫Я ╫Р╫Х ╫С╫Ю╫Щ╫з╫Х╫Э ╫д╫Щ╫Ц╫Щ ╫Р╫Ч╫и ╫Ю╫Ч╫Х╫е ╫Ь╫Ю╫з╫Х╫Э ╫Ф╫й╫и╫к.",
"backup_onboarding_2_description": "╫Ф╫в╫к╫з╫Щ╫Э ╫Ю╫з╫Х╫Ю╫Щ╫Щ╫Э ╫С╫Ю╫Ы╫й╫Щ╫и╫Щ╫Э ╫й╫Х╫а╫Щ╫Э. ╫Ц╫Ф ╫Ы╫Х╫Ь╫Ь ╫Р╫к ╫Ф╫з╫С╫ж╫Щ╫Э ╫Ф╫и╫Р╫й╫Щ╫Щ╫Э ╫Х╫Т╫Щ╫С╫Х╫Щ ╫й╫Ь ╫Ф╫з╫С╫ж╫Щ╫Э ╫Ф╫Р╫Ь╫Ф ╫С╫Р╫Х╫д╫Я ╫Ю╫з╫Х╫Ю╫Щ.",
"backup_onboarding_3_description": "╫б╫Ъ ╫Ы╫Ь ╫Ф╫Ф╫в╫к╫з╫Щ╫Э ╫й╫Ь ╫Ф╫а╫к╫Х╫а╫Щ╫Э ╫й╫Ь╫Ъ, ╫Ы╫Х╫Ь╫Ь ╫Ф╫з╫С╫ж╫Щ╫Э ╫Ф╫Ю╫з╫Х╫и╫Щ╫Щ╫Э. ╫Ц╫Ф ╫Ы╫Х╫Ь╫Ь ╫Ф╫в╫к╫з ╫Р╫Ч╫У ╫Ю╫Ч╫Х╫е ╫Ь╫Ю╫з╫Х╫Э ╫Ф╫й╫и╫к ╫Х╫й╫а╫Щ ╫Ф╫в╫к╫з╫Щ╫Э ╫Ю╫з╫Х╫Ю╫Щ╫Щ╫Э.",
"backup_onboarding_description": "<backblaze-link>╫Р╫б╫Ш╫и╫Ш╫Т╫Щ╫Щ╫к ╫Т╫Щ╫С╫Х╫Щ 3-2-1</backblaze-link> ╫Ф╫Щ╫а╫Ф ╫Ю╫Х╫Ю╫Ь╫ж╫к ╫в╫Ь ╫Ю╫а╫к ╫Ь╫Ф╫Т╫Я ╫в╫Ь ╫Ф╫а╫к╫Х╫а╫Щ╫Э ╫й╫Ь╫Ъ. ╫в╫Ь╫Щ╫Ъ ╫Ь╫Ф╫й╫Р╫Щ╫и ╫Ф╫в╫к╫з╫Щ╫Э ╫й╫Ь ╫к╫Ю╫Х╫а╫Х╫к/╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫й╫Ф╫Х╫в╫Ь╫Х ╫Ы╫Ю╫Х ╫Т╫Э ╫Р╫к ╫Ю╫б╫У ╫Ф╫а╫к╫Х╫а╫Щ╫Э ╫й╫Ь Immich ╫в╫С╫Х╫и ╫д╫к╫и╫Х╫Я ╫Т╫Щ╫С╫Х╫Щ ╫Ю╫з╫Щ╫г.",
"backup_onboarding_footer": "╫в╫С╫Х╫и ╫Ю╫Щ╫У╫в ╫а╫Х╫б╫г ╫в╫Ь ╫Т╫Щ╫С╫Х╫Щ Immich, ╫а╫Р ╫Ь╫д╫а╫Х╫к ╫Р╫Ь ╫Ф<link>╫к╫Щ╫в╫Х╫У</link>.",
"backup_onboarding_parts_title": "╫Т╫Щ╫С╫Х╫Щ 3-2-1 ╫Ы╫Х╫Ь╫Ь:",
"backup_onboarding_title": "╫Т╫Щ╫С╫Х╫Щ╫Щ╫Э",
"backup_settings": "╫Ф╫Т╫У╫и╫Х╫к ╫Т╫Щ╫С╫Х╫Щ",
"backup_settings_description": "╫а╫Щ╫Ф╫Х╫Ь ╫Ф╫Т╫У╫и╫Х╫к ╫Т╫Щ╫С╫Х╫Щ ╫Ю╫б╫У ╫а╫к╫Х╫а╫Щ╫Э.",
"cleared_jobs": "╫а╫Х╫з╫Х ╫Ю╫й╫Щ╫Ю╫Х╫к ╫в╫С╫Х╫и: {job}",
@@ -155,16 +164,30 @@
"map_settings": "╫Ю╫д╫Ф",
"map_settings_description": "╫а╫Щ╫Ф╫Х╫Ь ╫Ф╫Т╫У╫и╫Х╫к ╫Ю╫д╫Ф",
"map_style_description": "╫Ы╫к╫Х╫С╫к ╫Р╫к╫и ╫Ь╫в╫и╫Ы╫к ╫а╫Х╫й╫Р ╫й╫Ь ╫Ю╫д╫Ф style.json",
"memory_cleanup_job": "╫а╫Щ╫з╫Х╫Щ ╫Ц╫Щ╫Ы╫и╫Х╫Я",
"memory_generate_job": "╫Щ╫ж╫Щ╫и╫к ╫Ц╫Щ╫Ы╫и╫Х╫Я",
"memory_cleanup_job": "╫а╫Щ╫з╫Х╫Щ ╫Ц╫Щ╫Ы╫и╫Х╫Я (╫Ф╫Щ╫Х╫Э ╫Ь╫д╫а╫Щ..)",
"memory_generate_job": "╫Щ╫ж╫Щ╫и╫к ╫Ц╫Щ╫Ы╫и╫Х╫Я (╫Ф╫Щ╫Х╫Э ╫Ь╫д╫а╫Щ..)",
"metadata_extraction_job": "╫Ч╫Ь╫е ╫Ю╫Ш╫Р-╫а╫к╫Х╫а╫Щ╫Э",
"metadata_extraction_job_description": "╫Ч╫Ь╫е ╫Ю╫Ш╫Р-╫а╫к╫Х╫а╫Щ╫Э ╫Ю╫Ы╫Ь ╫к╫Ю╫Х╫а╫Ф, ╫Ы╫Т╫Х╫Я GPS, ╫д╫а╫Щ╫Э ╫Х╫и╫Ц╫Х╫Ь╫Х╫ж╫Щ╫Ф",
"metadata_faces_import_setting": "╫Р╫д╫й╫и ╫Щ╫С╫Х╫Р ╫д╫а╫Щ╫Э",
"metadata_faces_import_setting_description": "╫Щ╫С╫Р ╫д╫а╫Щ╫Э ╫Ю╫а╫к╫Х╫а╫Щ EXIF ╫й╫Ь ╫к╫Ю╫Х╫а╫Ф ╫Х╫Ю╫з╫С╫ж╫Щ╫Э ╫а╫Ь╫Х╫Х╫Щ╫Э",
"metadata_settings": "╫Ф╫Т╫У╫и╫Х╫к ╫Ю╫Ш╫Р-╫а╫к╫Х╫а╫Щ╫Э",
"metadata_settings_description": "╫а╫Щ╫Ф╫Х╫Ь ╫Ф╫Т╫У╫и╫Х╫к ╫Ю╫Ш╫Р-╫а╫к╫Х╫а╫Щ╫Э",
"migration_job": "╫Ф╫в╫С╫и╫Ф",
"metadata_settings_description": "╫а╫Щ╫Ф╫Х╫Ь ╫Ф╫Т╫У╫и╫Х╫к metadata",
"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": "╫Ф╫в╫и╫Ф: ╫Ы╫У╫Щ ╫Ь╫Ф╫Ч╫Щ╫Ь ╫Р╫к ╫к╫Х╫Х╫Щ╫к ╫Ф╫Р╫Ч╫б╫Х╫Я ╫в╫Ь ╫к╫Ю╫Х╫а╫Х╫к ╫й╫Ф╫Х╫в╫Ь╫Х ╫С╫в╫С╫и, ╫Ф╫д╫в╫Ь ╫Р╫к",
@@ -195,6 +218,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>╫к╫Щ╫в╫Х╫У</link>.",
@@ -203,7 +228,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 +268,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": "╫а╫Щ╫Ф╫Х╫Ь ╫Ю╫С╫а╫Ф ╫Ф╫к╫Щ╫з╫Щ╫Х╫к ╫Х╫Р╫к ╫й╫Э ╫Ф╫з╫Х╫С╫е ╫й╫Ь ╫Ф╫к╫Ю╫Х╫а╫Ф ╫й╫Ф╫Х╫в╫Ь╫к╫Ф",
@@ -355,10 +381,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": "╫Ф╫Т╫У╫и proxy headers ╫й╫Ф╫Щ╫Щ╫й╫Х╫Э ╫ж╫и╫Щ╫Ъ ╫Ь╫й╫Ь╫Х╫Ч ╫в╫Э ╫Ы╫Ь ╫С╫з╫й╫к ╫и╫й╫к",
"advanced_settings_proxy_headers_title": "╫Ы╫Х╫к╫и╫Х╫к ╫д╫и╫Х╫з╫б╫Щ",
@@ -377,6 +405,7 @@
"album_cover_updated": "╫в╫Ш╫Щ╫д╫к ╫Ф╫Р╫Ь╫С╫Х╫Э ╫в╫Х╫У╫Ы╫а╫Ф",
"album_delete_confirmation": "╫Ф╫Р╫Э ╫С╫Р╫Ю╫к ╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫Ю╫Ч╫Х╫з ╫Р╫к ╫Ф╫Р╫Ь╫С╫Х╫Э {album}?",
"album_delete_confirmation_description": "╫Р╫Э ╫Ф╫Р╫Ь╫С╫Х╫Э ╫Ф╫Ц╫Ф ╫Ю╫й╫Х╫к╫г, ╫Ю╫й╫к╫Ю╫й╫Щ╫Э ╫Р╫Ч╫и╫Щ╫Э ╫Ь╫Р ╫Щ╫Х╫Ы╫Ь╫Х ╫Ь╫Т╫й╫к ╫Р╫Ь╫Щ╫Х ╫Щ╫Х╫к╫и.",
"album_deleted": "╫Р╫Ь╫С╫Х╫Э ╫а╫Ю╫Ч╫з",
"album_info_card_backup_album_excluded": "╫Ф╫Х╫Ч╫и╫Т╫Х",
"album_info_card_backup_album_included": "╫а╫Ы╫Ь╫Ь╫Х",
"album_info_updated": "╫Ю╫Щ╫У╫в ╫Ф╫Р╫Ь╫С╫Х╫Э ╫в╫Х╫У╫Ы╫Я",
@@ -386,6 +415,7 @@
"album_options": "╫Р╫д╫й╫и╫Х╫Щ╫Х╫к ╫Ф╫Р╫Ь╫С╫Х╫Э",
"album_remove_user": "╫Ь╫Ф╫б╫Щ╫и ╫Ю╫й╫к╫Ю╫й?",
"album_remove_user_confirmation": "╫Ф╫Р╫Э ╫С╫Р╫Ю╫к ╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫Ф╫б╫Щ╫и ╫Р╫к {user}?",
"album_search_not_found": "╫Ь╫Р ╫а╫Ю╫ж╫Р╫Х ╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э ╫Ф╫к╫Х╫Р╫Ю╫Щ╫Э ╫Ь╫Ч╫Щ╫д╫Х╫й ╫й╫Ь╫Ъ",
"album_share_no_users": "╫а╫и╫Р╫Ф ╫й╫й╫Щ╫к╫д╫к ╫Р╫к ╫Ф╫Р╫Ь╫С╫Х╫Э ╫Ф╫Ц╫Ф ╫в╫Э ╫Ы╫Ь ╫Ф╫Ю╫й╫к╫Ю╫й╫Щ╫Э ╫Р╫Х ╫й╫Р╫Щ╫Я ╫Ь╫Ъ ╫Р╫г ╫Ю╫й╫к╫Ю╫й ╫Ь╫й╫к╫г ╫Р╫Щ╫к╫Х.",
"album_updated": "╫Р╫Ь╫С╫Х╫Э ╫в╫Х╫У╫Ы╫Я",
"album_updated_setting_description": "╫з╫С╫Ь ╫Ф╫Х╫У╫в╫к ╫У╫Х╫Р\"╫Ь ╫Ы╫Р╫й╫и ╫Ь╫Р╫Ь╫С╫Х╫Э ╫Ю╫й╫Х╫к╫г ╫Щ╫й ╫к╫Ю╫Х╫а╫Х╫к ╫Ч╫У╫й╫Х╫к",
@@ -405,6 +435,7 @@
"albums_default_sort_order": "╫б╫У╫и ╫Ю╫Щ╫Х╫Я ╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э ╫С╫и╫Щ╫и╫к ╫Ю╫Ч╫У╫Ь",
"albums_default_sort_order_description": "╫б╫У╫и ╫Ю╫Щ╫Х╫Я ╫к╫Ю╫Х╫а╫Х╫к ╫и╫Р╫й╫Х╫а╫Щ ╫С╫в╫к ╫Щ╫ж╫Щ╫и╫к ╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э ╫Ч╫У╫й╫Щ╫Э.",
"albums_feature_description": "╫Р╫Х╫б╫д╫Щ╫Э ╫й╫Ь ╫к╫Ю╫Х╫а╫Х╫к ╫Р╫й╫и ╫а╫Щ╫к╫а╫Щ╫Э ╫Ь╫й╫Щ╫к╫Х╫г ╫в╫Э ╫Ю╫й╫к╫Ю╫й╫Щ╫Э ╫Р╫Ч╫и╫Щ╫Э.",
"albums_on_device_count": "╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э ╫С╫Ю╫Ы╫й╫Щ╫и ({count})",
"all": "╫Ф╫Ы╫Ь",
"all_albums": "╫Ы╫Ь ╫Ф╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э",
"all_people": "╫Ы╫Ь ╫Ф╫Р╫а╫й╫Щ╫Э",
@@ -425,6 +456,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 +494,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} ╫к╫Ю╫Х╫а╫Х╫к ╫а╫Ю╫Ч╫з╫Х ╫Ь╫ж╫Ю╫Щ╫к╫Х╫к",
@@ -488,6 +519,7 @@
"back_close_deselect": "╫Ч╫Ц╫Х╫и, ╫б╫Т╫Х╫и, ╫Р╫Х ╫С╫Ш╫Ь ╫С╫Ч╫Щ╫и╫Ф",
"background_location_permission": "╫Ф╫и╫й╫Р╫к ╫Ю╫Щ╫з╫Х╫Э ╫С╫и╫з╫в",
"background_location_permission_content": "╫Ы╫У╫Щ ╫Ь╫Ф╫Ч╫Ь╫Щ╫г ╫и╫й╫к╫Х╫к ╫С╫в╫к ╫и╫Щ╫ж╫Ф ╫С╫и╫з╫в, ╫Ф╫Щ╫Щ╫й╫Х╫Э ╫ж╫и╫Щ╫Ъ *╫к╫Ю╫Щ╫У* ╫Т╫Щ╫й╫Ф ╫Ь╫Ю╫Щ╫з╫Х╫Э ╫Ю╫У╫Х╫Щ╫з ╫в╫Ь ╫Ю╫а╫к ╫Ь╫з╫и╫Х╫Р ╫Р╫к ╫Ф╫й╫Э ╫й╫Ь ╫и╫й╫к ╫Ф╫Р╫Щ╫а╫Ш╫и╫а╫Ш ╫Ф╫Р╫Ь╫Ч╫Х╫Ш╫Щ",
"backup": "╫Т╫Щ╫С╫Х╫Щ",
"backup_album_selection_page_albums_device": "({count}) ╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э ╫С╫Ю╫Ы╫й╫Щ╫и",
"backup_album_selection_page_albums_tap": "╫Ф╫з╫й ╫Ы╫У╫Щ ╫Ь╫Ы╫Ь╫Х╫Ь, ╫Ф╫з╫й ╫д╫в╫Ю╫Щ╫Щ╫Э ╫Ы╫У╫Щ ╫Ь╫Ф╫Ч╫и╫Щ╫Т",
"backup_album_selection_page_assets_scatter": "╫к╫Ю╫Х╫а╫Х╫к ╫Щ╫Ы╫Х╫Ь╫Х╫к ╫Ь╫Ф╫к╫д╫Ц╫и ╫в╫Ь ╫д╫а╫Щ ╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э ╫Ю╫и╫Х╫С╫Щ╫Э. ╫Ь╫д╫Щ╫Ы╫Ъ, ╫а╫Щ╫к╫Я ╫Ь╫Ы╫Ь╫Х╫Ь ╫Р╫Х ╫Ь╫Ф╫Ч╫и╫Щ╫Т ╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э ╫С╫Ю╫Ф╫Ь╫Ъ ╫к╫Ф╫Ь╫Щ╫Ъ ╫Ф╫Т╫Щ╫С╫Х╫Щ.",
@@ -532,11 +564,11 @@
"backup_controller_page_none_selected": "╫Р╫Щ╫Я ╫С╫Ч╫Щ╫и╫Ф",
"backup_controller_page_remainder": "╫С╫Ф╫Ю╫к╫а╫Ф ╫Ь╫Т╫Щ╫С╫Х╫Щ",
"backup_controller_page_remainder_sub": "╫к╫Ю╫Х╫а╫Х╫к ╫Х╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫Ф╫а╫Х╫к╫и╫Щ╫Э ╫Ь╫Т╫Щ╫С╫Х╫Щ ╫Ю╫к╫Х╫Ъ ╫С╫Ч╫Щ╫и╫Ф",
"backup_controller_page_server_storage": "╫Р╫Ч╫б╫Х╫Я ╫й╫и╫к",
"backup_controller_page_server_storage": "╫Р╫Ч╫б╫Х╫Я ╫С╫й╫и╫к",
"backup_controller_page_start_backup": "╫Ф╫к╫Ч╫Ь ╫Т╫Щ╫С╫Х╫Щ",
"backup_controller_page_status_off": "╫Т╫Щ╫С╫Х╫Щ ╫Ч╫Ц╫Щ╫к ╫Р╫Х╫Ш╫Х╫Ю╫Ш╫Щ ╫Ы╫С╫Х╫Щ",
"backup_controller_page_status_on": "╫Т╫Щ╫С╫Х╫Щ ╫Ч╫Ц╫Щ╫к ╫Р╫Х╫Ш╫Х╫Ю╫Ш╫Щ ╫Ю╫Х╫д╫в╫Ь",
"backup_controller_page_storage_format": "{total} ╫Ю╫к╫Х╫Ъ {used} ╫С╫й╫Щ╫Ю╫Х╫й",
"backup_controller_page_storage_format": "{used}╫Ю╫к╫Х╫Ъ {total} ╫С╫й╫Щ╫Ю╫Х╫й",
"backup_controller_page_to_backup": "╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э ╫Ь╫Т╫С╫Х╫к",
"backup_controller_page_total_sub": "╫Ы╫Ь ╫Ф╫к╫Ю╫Х╫а╫Х╫к ╫Х╫Ф╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫Ф╫Щ╫Щ╫Ч╫Х╫У╫Щ╫Щ╫Э ╫Ю╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э ╫й╫а╫С╫Ч╫и╫Х",
"backup_controller_page_turn_off": "╫Ы╫Щ╫С╫Х╫Щ ╫Т╫Щ╫С╫Х╫Щ ╫Ч╫Ц╫Щ╫к",
@@ -551,6 +583,8 @@
"backup_options_page_title": "╫Р╫д╫й╫и╫Х╫Щ╫Х╫к ╫Т╫Щ╫С╫Х╫Щ",
"backup_setting_subtitle": "╫а╫Щ╫Ф╫Х╫Ь ╫Ф╫Т╫У╫и╫Х╫к ╫Ф╫в╫Ь╫Р╫к ╫и╫з╫в ╫Х╫Ч╫Ц╫Щ╫к",
"backward": "╫Р╫Ч╫Х╫и╫Ф",
"beta_sync": "╫б╫Ш╫Ш╫Х╫б ╫б╫а╫Ы╫и╫Х╫Я (╫С╫Ш╫Р)",
"beta_sync_subtitle": "╫а╫Ф╫Ь ╫Р╫к ╫Ю╫в╫и╫Ы╫к ╫Ф╫б╫а╫Ы╫и╫Х╫Я ╫Ф╫Ч╫У╫й╫Ф",
"biometric_auth_enabled": "╫Р╫Щ╫Ю╫Х╫к ╫С╫Щ╫Х╫Ю╫Ш╫и╫Щ ╫Ф╫Х╫д╫в╫Ь",
"biometric_locked_out": "╫Т╫Щ╫й╫Ф ╫Ь╫Р╫Щ╫Ю╫Х╫к ╫Ф╫С╫Щ╫Х╫Ю╫Ш╫и╫Щ ╫а╫Ч╫б╫Ю╫Ф",
"biometric_no_options": "╫Р╫Щ╫Я ╫Р╫д╫й╫и╫Х╫Щ╫Х╫к ╫Ц╫Ю╫Щ╫а╫Х╫к ╫в╫С╫Х╫и ╫Р╫Щ╫Ю╫Х╫к ╫С╫Щ╫Х╫Ю╫Ш╫и╫Щ",
@@ -568,7 +602,7 @@
"cache_settings_clear_cache_button": "╫а╫Щ╫з╫Х╫Щ ╫Ю╫Ш╫Ю╫Х╫Я",
"cache_settings_clear_cache_button_title": "╫Ю╫а╫з╫Ф ╫Р╫к ╫Ф╫Ю╫Ш╫Ю╫Х╫Я ╫й╫Ь ╫Ф╫Щ╫Щ╫й╫Х╫Э. ╫Ц╫Ф ╫Щ╫й╫д╫Щ╫в ╫С╫Р╫Х╫д╫Я ╫Ю╫й╫Ю╫в╫Х╫к╫Щ ╫в╫Ь ╫Ф╫С╫Щ╫ж╫Х╫в╫Щ╫Э ╫й╫Ь ╫Ф╫Щ╫Щ╫й╫Х╫Э ╫в╫У ╫й╫Ф╫Ю╫Ш╫Ю╫Х╫Я ╫Ю╫к╫Ю╫Ь╫Р ╫Ю╫Ч╫У╫й.",
"cache_settings_duplicated_assets_clear_button": "╫а╫з╫Ф",
"cache_settings_duplicated_assets_subtitle": "╫к╫Ю╫Х╫а╫Х╫к ╫Х╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫й╫а╫Ю╫ж╫Р╫Щ╫Э ╫С╫и╫й╫Щ╫Ю╫Ф ╫Ф╫й╫Ч╫Х╫и╫Ф ╫й╫Ь ╫Ф╫Щ╫Щ╫й╫Х╫Э",
"cache_settings_duplicated_assets_subtitle": "╫к╫Ю╫Х╫а╫Х╫к ╫Х╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫й╫а╫Ю╫ж╫Р╫Щ╫Э ╫С╫и╫й╫Щ╫Ю╫к ╫Ф╫Ф╫к╫в╫Ь╫Ю╫Х╫к ╫й╫Ь ╫Ф╫Р╫д╫Ь╫Щ╫з╫ж╫Щ╫Ф",
"cache_settings_duplicated_assets_title": "({count}) ╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫й╫Х╫Ы╫д╫Ь╫Х╫к",
"cache_settings_statistics_album": "╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫Ю╫Х╫Ц╫в╫и╫Х╫к ╫й╫Ь ╫б╫д╫и╫Щ╫Щ╫Ф",
"cache_settings_statistics_full": "╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫Ь╫Р╫Х╫к",
@@ -585,6 +619,7 @@
"cancel": "╫С╫Щ╫Ш╫Х╫Ь",
"cancel_search": "╫С╫Щ╫Ш╫Х╫Ь ╫Ч╫Щ╫д╫Х╫й",
"canceled": "╫С╫Х╫Ш╫Ь",
"canceling": "╫Ю╫С╫Ш╫Ь",
"cannot_merge_people": "╫Ь╫Р ╫а╫Щ╫к╫Я ╫Ь╫Ю╫Ц╫Т ╫Р╫а╫й╫Щ╫Э",
"cannot_undo_this_action": "╫Р╫Щ╫Я ╫С╫Р╫д╫й╫и╫Х╫к╫Ъ ╫Ь╫С╫Ш╫Ь ╫Р╫к ╫Ф╫д╫в╫Х╫Ь╫Ф ╫Ф╫Ц╫Х!",
"cannot_update_the_description": "╫Ь╫Р ╫а╫Щ╫к╫Я ╫Ь╫в╫У╫Ы╫Я ╫Р╫к ╫Ф╫к╫Щ╫Р╫Х╫и",
@@ -698,10 +733,11 @@
"current_server_address": "╫Ы╫к╫Х╫С╫к ╫й╫и╫к ╫а╫Х╫Ы╫Ч╫Щ╫к",
"custom_locale": "╫Р╫Ц╫Х╫и ╫й╫д╫Ф ╫Ю╫Х╫к╫Р╫Э ╫Р╫Щ╫й╫Щ╫к",
"custom_locale_description": "╫в╫ж╫С ╫к╫Р╫и╫Щ╫Ы╫Щ╫Э ╫Х╫Ю╫б╫д╫и╫Щ╫Э ╫в╫Ь ╫б╫Ю╫Ъ ╫Ф╫й╫д╫Ф ╫Х╫Ф╫Р╫Ц╫Х╫и",
"custom_url": "╫з╫Щ╫й╫Х╫и ╫Ю╫Х╫к╫Р╫Э ╫Р╫Щ╫й╫Щ╫к",
"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 +747,14 @@
"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_confirmation_message": "╫Ф╫Р╫Э ╫Р╫к╫Ф ╫С╫Ш╫Х╫Ч ╫й╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫Ю╫Ч╫Х╫з ╫Р╫к ╫Ф╫к╫Ю╫Х╫а╫Ф ╫Ф╫Ц╫Р╫к? ╫д╫в╫Х╫Ь╫Ф ╫Ц╫Х ╫к╫в╫С╫Щ╫и ╫Р╫Х╫к╫Х ╫Ь╫Р╫й╫д╫Ф ╫й╫Ь ╫Ф╫й╫и╫к, ╫Х╫к╫й╫Р╫Ь ╫Р╫Э ╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫Ю╫Ч╫Х╫з ╫Р╫Х╫к╫Х ╫Т╫Э ╫Ю╫Ф╫Ю╫Ы╫й╫Щ╫и ╫Ф╫Ю╫з╫Х╫Ю╫Щ",
"delete_action_prompt": "{count} ╫а╫Ю╫Ч╫з╫Х",
"delete_album": "╫Ю╫Ч╫з ╫Р╫Ь╫С╫Х╫Э",
"delete_api_key_prompt": "╫Ф╫Р╫Э ╫Р╫к╫Ф ╫С╫Ш╫Х╫Ч ╫й╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫Ю╫Ч╫Х╫з ╫Ю╫д╫к╫Ч ╫Ф-API ╫Ф╫Ц╫Ф?",
"delete_dialog_alert": "╫Ф╫д╫и╫Щ╫Ш╫Щ╫Э ╫Ф╫Р╫Ь╫Ф ╫Щ╫Ю╫Ч╫з╫Х ╫Ь╫ж╫Ю╫Щ╫к╫Х╫к ╫Ю╫Ф╫й╫и╫к ╫Х╫Ю╫Ф╫Ю╫Ы╫й╫Щ╫и ╫й╫Ь╫Ъ",
@@ -730,9 +768,12 @@
"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_permanently": "╫Ю╫Ч╫з ╫Ь╫ж╫Ю╫Щ╫к╫Х╫к",
"delete_permanently_action_prompt": "{count} ╫а╫Ю╫Ч╫з╫Х ╫Ь╫ж╫Ю╫Щ╫к╫Х╫к",
"delete_shared_link": "╫Ю╫Ч╫з ╫з╫Щ╫й╫Х╫и ╫Ю╫й╫Х╫к╫г",
"delete_shared_link_dialog_title": "╫Ю╫Ч╫з ╫з╫Щ╫й╫Х╫и ╫Ю╫й╫Х╫к╫г",
"delete_tag": "╫Ю╫Ч╫з ╫к╫Т",
@@ -743,6 +784,7 @@
"description": "╫к╫Щ╫Р╫Х╫и",
"description_input_hint_text": "╫Ф╫Х╫б╫г ╫к╫Щ╫Р╫Х╫и...",
"description_input_submit_error": "╫й╫Т╫Щ╫Р╫Ф ╫С╫в╫У╫Ы╫Х╫Я ╫к╫Щ╫Р╫Х╫и, ╫С╫У╫Х╫з ╫Р╫к ╫Ф╫Щ╫Х╫Ю╫Я ╫Ь╫д╫и╫Ш╫Щ╫Э ╫а╫Х╫б╫д╫Щ╫Э",
"deselect_all": "╫С╫Ш╫Ь ╫Ф╫Ы╫Ь",
"details": "╫д╫и╫Ш╫Щ╫Э",
"direction": "╫Ы╫Щ╫Х╫Х╫Я",
"disabled": "╫Ю╫Х╫й╫С╫к",
@@ -760,6 +802,7 @@
"documentation": "╫к╫Щ╫в╫Х╫У",
"done": "╫б╫Щ╫Х╫Э",
"download": "╫Ф╫Х╫и╫У╫Ф",
"download_action_prompt": "╫Ю╫Х╫и╫Щ╫У {count} ╫к╫Ю╫Х╫а╫Х╫к",
"download_canceled": "╫Ф╫Х╫и╫У╫Ф ╫С╫Х╫Ш╫Ь╫Ф",
"download_complete": "╫Ф╫Х╫и╫У╫Ф ╫Ф╫Х╫й╫Ь╫Ю╫Ф",
"download_enqueue": "╫Ф╫Х╫и╫У╫Ф ╫а╫Х╫б╫д╫Ф ╫Ь╫к╫Х╫и",
@@ -786,6 +829,7 @@
"edit": "╫в╫и╫Х╫Ъ",
"edit_album": "╫в╫и╫Х╫Ъ ╫Р╫Ь╫С╫Х╫Э",
"edit_avatar": "╫в╫и╫Х╫Ъ ╫к╫Ю╫Х╫а╫к ╫д╫и╫Х╫д╫Щ╫Ь",
"edit_birthday": "╫в╫и╫Щ╫Ы╫к ╫Щ╫Х╫Э ╫Ф╫Х╫Ь╫У╫к",
"edit_date": "╫в╫и╫Х╫Ъ ╫к╫Р╫и╫Щ╫Ъ",
"edit_date_and_time": "╫в╫и╫Х╫Ъ ╫к╫Р╫и╫Щ╫Ъ ╫Х╫й╫в╫Ф",
"edit_description": "╫в╫и╫Х╫Ъ ╫к╫Щ╫Р╫Х╫и",
@@ -797,6 +841,7 @@
"edit_key": "╫в╫и╫Х╫Ъ ╫Ю╫д╫к╫Ч",
"edit_link": "╫в╫и╫Х╫Ъ ╫з╫Щ╫й╫Х╫и",
"edit_location": "╫в╫и╫Х╫Ъ ╫Ю╫Щ╫з╫Х╫Э",
"edit_location_action_prompt": "{count} ╫Ю╫Щ╫з╫Х╫Ю╫Щ╫Э ╫а╫в╫и╫Ы╫Х",
"edit_location_dialog_title": "╫Ю╫Щ╫з╫Х╫Э",
"edit_name": "╫в╫и╫Х╫Ъ ╫й╫Э",
"edit_people": "╫в╫и╫Х╫Ъ ╫Р╫а╫й╫Щ╫Э",
@@ -815,6 +860,7 @@
"empty_trash": "╫и╫Х╫з╫Я ╫Р╫й╫д╫Ф",
"empty_trash_confirmation": "╫Ф╫Р╫Э ╫С╫Р╫Ю╫к ╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫и╫Х╫з╫Я ╫Р╫к ╫Ф╫Р╫й╫д╫Ф? ╫Ц╫Ф ╫Щ╫б╫Щ╫и ╫Ь╫ж╫Ю╫Щ╫к╫Х╫к ╫Р╫к ╫Ы╫Ь ╫Ф╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫Ф╫Р╫й╫д╫Ф ╫й╫Ь ╫Ф╫й╫и╫к.\n╫Р╫Щ╫Я ╫С╫Р╫д╫й╫и╫Х╫к╫Ъ ╫Ь╫С╫Ш╫Ь ╫д╫в╫Х╫Ь╫Ф ╫Ц╫Х!",
"enable": "╫Р╫д╫й╫и",
"enable_backup": "╫Ф╫д╫в╫Ь ╫Т╫Щ╫С╫Х╫Щ",
"enable_biometric_auth_description": "╫Ф╫Ц╫Я ╫Р╫к ╫з╫Х╫У ╫Ф╓╛PIN ╫й╫Ь╫Ъ ╫Ы╫У╫Щ ╫Ь╫Ф╫д╫в╫Щ╫Ь ╫Р╫Щ╫Ю╫Х╫к ╫С╫Щ╫Х╫Ю╫Ш╫и╫Щ",
"enabled": "╫Ю╫Х╫д╫в╫Ь",
"end_date": "╫к╫Р╫и╫Щ╫Ъ ╫б╫Щ╫Х╫Э",
@@ -951,6 +997,7 @@
},
"exif": "Exif",
"exif_bottom_sheet_description": "╫Ф╫Х╫б╫г ╫к╫Щ╫Р╫Х╫и...",
"exif_bottom_sheet_description_error": "╫й╫Т╫Щ╫Р╫Ф ╫С╫в╫У╫Ы╫Х╫Я ╫Ф╫к╫Щ╫Р╫Х╫и",
"exif_bottom_sheet_details": "╫д╫и╫Ш╫Щ╫Э",
"exif_bottom_sheet_location": "╫Ю╫Щ╫з╫Х╫Э",
"exif_bottom_sheet_people": "╫Р╫а╫й╫Щ╫Э",
@@ -971,6 +1018,8 @@
"explorer": "╫б╫Щ╫Щ╫и",
"export": "╫Щ╫Щ╫ж╫Х╫Р",
"export_as_json": "╫Щ╫Щ╫ж╫Х╫Р ╫Ы-JSON",
"export_database": "╫Щ╫Щ╫ж╫Р ╫Ю╫б╫У ╫а╫к╫Х╫а╫Щ╫Э",
"export_database_description": "╫Щ╫Щ╫ж╫Р ╫Ю╫б╫У ╫а╫к╫Х╫а╫Щ╫Э SQL",
"extension": "╫б╫Щ╫Х╫Ю╫к",
"external": "╫Ч╫Щ╫ж╫Х╫а╫Щ",
"external_libraries": "╫б╫д╫и╫Щ╫Х╫к ╫Ч╫Щ╫ж╫Х╫а╫Щ╫Х╫к",
@@ -982,6 +1031,7 @@
"failed_to_load_assets": "╫Ш╫в╫Щ╫а╫к ╫к╫Ю╫Х╫а╫Х╫к ╫а╫Ы╫й╫Ь╫Ф",
"failed_to_load_folder": "╫Ш╫в╫Щ╫а╫к ╫к╫Щ╫з╫Щ╫Ф ╫а╫Ы╫й╫Ь╫Ф",
"favorite": "╫Ю╫Х╫в╫У╫г",
"favorite_action_prompt": "{count} ╫а╫Х╫б╫д╫Х ╫Ь╫Ю╫Х╫в╫У╫д╫Щ╫Э",
"favorite_or_unfavorite_photo": "╫Ф╫Х╫б╫г ╫Р╫Х ╫Ф╫б╫и ╫к╫Ю╫Х╫а╫Ф ╫Ю╫Ф╫Ю╫Х╫в╫У╫д╫Щ╫Э",
"favorites": "╫Ю╫Х╫в╫У╫д╫Щ╫Э",
"favorites_page_no_favorites": "╫Ь╫Р ╫а╫Ю╫ж╫Р╫Х ╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫Х╫в╫У╫д╫Щ╫Э",
@@ -1021,6 +1071,9 @@
"haptic_feedback_switch": "╫Р╫д╫й╫и ╫Ю╫й╫Х╫С ╫С╫и╫Ш╫Ш",
"haptic_feedback_title": "╫Ю╫й╫Х╫С ╫С╫и╫Ш╫Ш",
"has_quota": "╫Щ╫й ╫Ю╫Ы╫б╫Ф",
"hash_asset": "╫Т╫Щ╫С╫Х╫С ╫к╫Ю╫Х╫а╫Ф",
"hashed_assets": "╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫Т╫Х╫С╫С╫Х╫к",
"hashing": "╫Ю╫Т╫С╫С",
"header_settings_add_header_tip": "╫Ф╫Х╫б╫г ╫Ы╫Х╫к╫и╫к",
"header_settings_field_validator_msg": "╫в╫и╫Ъ ╫Р╫Щ╫а╫Х ╫Щ╫Ы╫Х╫Ь ╫Ь╫Ф╫Щ╫Х╫к ╫и╫Щ╫з",
"header_settings_header_name_input": "╫й╫Э ╫Ы╫Х╫к╫и╫к",
@@ -1053,6 +1106,7 @@
"host": "╫Ю╫Р╫и╫Ч",
"hour": "╫й╫в╫Ф",
"id": "╫Ю╫Ц╫Ф╫Ф",
"idle": "╫Ю╫Ю╫к╫Щ╫Я",
"ignore_icloud_photos": "╫Ф╫к╫в╫Ь╫Э ╫Ю╫к╫Ю╫Х╫а╫Х╫к iCloud",
"ignore_icloud_photos_description": "╫к╫Ю╫Х╫а╫Х╫к ╫й╫Ю╫Р╫Х╫Ч╫б╫а╫Х╫к ╫С-iCloud ╫Ь╫Р ╫Щ╫Х╫в╫Ь╫Х ╫Ь╫й╫и╫к",
"image": "╫к╫Ю╫Х╫а╫Ф",
@@ -1110,6 +1164,7 @@
"language_no_results_title": "╫Ь╫Р ╫а╫Ю╫ж╫Р╫Ф ╫й╫д╫Ф",
"language_search_hint": "╫Ч╫д╫й ╫й╫д╫Х╫к...",
"language_setting_description": "╫С╫Ч╫и ╫Р╫к ╫Ф╫й╫д╫Ф ╫Ф╫Ю╫Х╫в╫У╫д╫к ╫в╫Ь╫Щ╫Ъ",
"large_files": "╫з╫С╫ж╫Щ╫Э ╫Т╫У╫Х╫Ь╫Щ╫Э",
"last_seen": "╫а╫и╫Р╫Ф ╫Ь╫Р╫Ч╫и╫Х╫а╫Ф",
"latest_version": "╫Т╫и╫б╫Ф ╫в╫У╫Ы╫а╫Щ╫к ╫С╫Щ╫Х╫к╫и",
"latitude": "╫з╫Х ╫и╫Х╫Ч╫С",
@@ -1125,16 +1180,18 @@
"library_page_sort_created": "╫к╫Р╫и╫Щ╫Ъ ╫Щ╫ж╫Щ╫и╫Ф",
"library_page_sort_last_modified": "╫й╫Х╫а╫Ф ╫Ь╫Р╫Ч╫и╫Х╫а╫Ф",
"library_page_sort_title": "╫Ы╫Х╫к╫и╫к ╫Р╫Ь╫С╫Х╫Э",
"licenses": "╫и╫Щ╫й╫Щ╫Х╫а╫Х╫к",
"light": "╫С╫Ф╫Щ╫и",
"like_deleted": "╫Ь╫Щ╫Щ╫з ╫а╫Ю╫Ч╫з",
"link_motion_video": "╫з╫й╫и ╫б╫и╫Ш╫Х╫Я ╫к╫а╫Х╫в╫Ф",
"link_options": "╫Р╫д╫й╫и╫Х╫Щ╫Х╫к ╫з╫Щ╫й╫Х╫и",
"link_to_oauth": "╫з╫Щ╫й╫Х╫и ╫Ь-OAuth",
"linked_oauth_account": "╫Ч╫й╫С╫Х╫Я OAuth ╫Ю╫з╫Х╫й╫и",
"list": "╫и╫й╫Щ╫Ю╫Ф",
"loading": "╫Ш╫Х╫в╫Я",
"loading_search_results_failed": "╫Ш╫в╫Щ╫а╫к ╫к╫Х╫ж╫Р╫Х╫к ╫Ф╫Ч╫Щ╫д╫Х╫й ╫а╫Ы╫й╫Ь╫Ф",
"local": "╫Ю╫з╫Х╫Ю╫Щ",
"local_asset_cast_failed": "╫Ь╫Р ╫а╫Щ╫к╫Я ╫Ь╫й╫У╫и ╫к╫Ю╫Х╫а╫Ф ╫й╫Ь╫Р ╫Ф╫Х╫в╫Ь╫к╫Ф ╫Ь╫й╫и╫к",
"local_assets": "╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫з╫Х╫Ю╫Щ╫Х╫к",
"local_network": "╫и╫й╫к ╫Ю╫з╫Х╫Ю╫Щ╫к",
"local_network_sheet_info": "╫Ф╫Щ╫Щ╫й╫Х╫Э ╫Щ╫к╫Ч╫С╫и ╫Ь╫й╫и╫к ╫У╫и╫Ъ ╫Ф╫Ы╫к╫Х╫С╫к ╫Ф╫Ц╫Р╫к ╫Ы╫Р╫й╫и ╫Ю╫й╫к╫Ю╫й╫Щ╫Э ╫С╫и╫й╫к ╫Ф╫Р╫Щ╫а╫Ш╫и╫а╫Ш ╫Ф╫Р╫Ь╫Ч╫Х╫Ш╫Щ ╫й╫Ю╫ж╫Х╫Щ╫а╫к",
"location_permission": "╫Ф╫и╫й╫Р╫к ╫Ю╫Щ╫з╫Х╫Э",
@@ -1148,6 +1205,7 @@
"locked_folder": "╫к╫Щ╫з╫Щ╫Ф ╫а╫в╫Х╫Ь╫Ф",
"log_out": "╫Ф╫к╫а╫к╫з",
"log_out_all_devices": "╫Ф╫к╫а╫к╫з ╫Ю╫Ы╫Ь ╫Ф╫Ю╫Ы╫й╫Щ╫и╫Щ╫Э",
"logged_in_as": "╫Ю╫Ч╫Х╫С╫и ╫Ы {user}",
"logged_out_all_devices": "╫Ю╫а╫Х╫к╫з ╫Ю╫Ы╫Ь ╫Ф╫Ю╫Ы╫й╫Щ╫и╫Щ╫Э",
"logged_out_device": "╫Ю╫Ы╫й╫Щ╫и ╫Ю╫а╫Х╫к╫з",
"login": "╫Ы╫а╫Щ╫б╫Ф",
@@ -1190,8 +1248,7 @@
"manage_your_devices": "╫а╫Щ╫Ф╫Х╫Ь ╫Ф╫Ю╫Ы╫й╫Щ╫и╫Щ╫Э ╫Ф╫Ю╫Ч╫Х╫С╫и╫Щ╫Э ╫й╫Ь╫Ъ",
"manage_your_oauth_connection": "╫а╫Щ╫Ф╫Х╫Ь ╫Ч╫Щ╫С╫Х╫и ╫Ф-OAuth ╫й╫Ь╫Ъ",
"map": "╫Ю╫д╫Ф",
"map_assets_in_bound": "╫к╫Ю╫Х╫а╫Ф {count}",
"map_assets_in_bounds": "{count} ╫к╫Ю╫Х╫а╫Х╫к",
"map_assets_in_bounds": "{count, plural, one {╫к╫Ю╫Х╫а╫Ф #} other {# ╫к╫Ю╫Х╫а╫Х╫к}}",
"map_cannot_get_user_location": "╫Ь╫Р ╫а╫Щ╫к╫Я ╫Ь╫з╫С╫Х╫в ╫Р╫к ╫Ю╫Щ╫з╫Х╫Э ╫Ф╫Ю╫й╫к╫Ю╫й",
"map_location_dialog_yes": "╫Ы╫Я",
"map_location_picker_page_use_location": "╫Ф╫й╫к╫Ю╫й ╫С╫Ю╫Щ╫з╫Х╫Э ╫Ф╫Ц╫Ф",
@@ -1225,7 +1282,7 @@
"memories_setting_description": "╫а╫Ф╫Ь ╫Р╫к ╫Ю╫Ф ╫й╫и╫Х╫Р╫Щ╫Э ╫С╫Ц╫Ы╫и╫Х╫а╫Х╫к ╫й╫Ь╫Ъ",
"memories_start_over": "╫Ф╫к╫Ч╫Ь ╫Ю╫Ч╫У╫й",
"memories_swipe_to_close": "╫Ф╫Ч╫Ь╫з ╫Ь╫Ю╫в╫Ь╫Ф ╫Ы╫У╫Щ ╫Ь╫б╫Т╫Х╫и",
"memory": "╫Ц╫Щ╫Ы╫и╫Х╫Я",
"memory": "╫Ц╫Щ╫Ы╫и╫Х╫Я (╫Ф╫Щ╫Х╫Э ╫Ь╫д╫а╫Щ..)",
"memory_lane_title": "╫Ю╫й╫в╫Х╫Ь ╫Ф╫Ц╫Щ╫Ы╫и╫Х╫а╫Х╫к {title}",
"menu": "╫к╫д╫и╫Щ╫Ш",
"merge": "╫Ю╫Ц╫Т",
@@ -1243,6 +1300,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 {# ╫к╫Ю╫Х╫а╫Х╫к ╫Ф╫Х╫в╫С╫и╫Х}} ╫Ь╫Р╫и╫Ы╫Щ╫Х╫Я",
@@ -1289,6 +1347,7 @@
"no_results": "╫Р╫Щ╫Я ╫к╫Х╫ж╫Р╫Х╫к",
"no_results_description": "╫а╫б╫Ф ╫Ь╫Ф╫й╫к╫Ю╫й ╫С╫Ю╫Щ╫Ь╫Ф ╫а╫и╫У╫д╫к ╫Р╫Х ╫С╫Ю╫Щ╫Ь╫к ╫Ю╫д╫к╫Ч ╫Щ╫Х╫к╫и ╫Ы╫Ь╫Ь╫Щ╫к",
"no_shared_albums_message": "╫ж╫Х╫и ╫Р╫Ь╫С╫Х╫Э ╫Ы╫У╫Щ ╫Ь╫й╫к╫г ╫к╫Ю╫Х╫а╫Х╫к ╫Х╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫в╫Э ╫Р╫а╫й╫Щ╫Э ╫С╫и╫й╫к ╫й╫Ь╫Ъ",
"no_uploads_in_progress": "╫Р╫Щ╫Я ╫Ф╫в╫Ь╫Р╫Х╫к ╫С╫к╫Ф╫Ь╫Щ╫Ъ",
"not_in_any_album": "╫Ь╫Р ╫С╫й╫Х╫Э ╫Р╫Ь╫С╫Х╫Э",
"not_selected": "╫Ь╫Р ╫а╫С╫Ч╫и╫Х",
"note_apply_storage_label_to_previously_uploaded assets": "╫Ф╫в╫и╫Ф: ╫Ы╫У╫Щ ╫Ь╫Ф╫Ч╫Щ╫Ь ╫Р╫к ╫к╫Х╫Х╫Щ╫к ╫Ф╫Р╫Ч╫б╫Х╫Я ╫в╫Ь ╫к╫Ю╫Х╫а╫Х╫к ╫й╫Ф╫Х╫в╫Ь╫Х ╫С╫в╫С╫и, ╫Ф╫д╫в╫Ь ╫Р╫к",
@@ -1326,6 +1385,7 @@
"original": "╫Ю╫з╫Х╫и╫Щ",
"other": "╫Р╫Ч╫и",
"other_devices": "╫Ю╫Ы╫й╫Щ╫и╫Щ╫Э ╫Р╫Ч╫и╫Щ╫Э",
"other_entities": "╫Щ╫й╫Х╫Щ╫Х╫к ╫Р╫Ч╫и╫Х╫к",
"other_variables": "╫Ю╫й╫к╫а╫Щ╫Э ╫Р╫Ч╫и╫Щ╫Э",
"owned": "╫С╫С╫в╫Ь╫Х╫к",
"owner": "╫С╫в╫Ь╫Щ╫Э",
@@ -1457,6 +1517,7 @@
"purchase_server_description_2": "╫Ю╫в╫Ю╫У ╫к╫Х╫Ю╫Ъ",
"purchase_server_title": "╫й╫и╫к",
"purchase_settings_server_activated": "╫Ю╫д╫к╫Ч ╫Ф╫Ю╫Х╫ж╫и ╫й╫Ь ╫Ф╫й╫и╫к ╫Ю╫а╫Х╫Ф╫Ь ╫в╫Ь ╫Щ╫У╫Щ ╫Ю╫а╫Ф╫Ь ╫Ф╫Ю╫в╫и╫Ы╫к",
"queue_status": "╫С╫к╫Х╫и {count}/{total}",
"rating": "╫У╫Щ╫и╫Х╫Т ╫Ы╫Х╫Ы╫С",
"rating_clear": "╫а╫з╫Ф ╫У╫Щ╫и╫Х╫Т",
"rating_count": "{count, plural, one {╫Ы╫Х╫Ы╫С #} other {# ╫Ы╫Х╫Ы╫С╫Щ╫Э}}",
@@ -1485,6 +1546,8 @@
"refreshing_faces": "╫Ю╫и╫в╫а╫Я ╫д╫и╫ж╫Х╫д╫Щ╫Э",
"refreshing_metadata": "╫Ю╫и╫в╫а╫Я ╫Ю╫Ш╫Р-╫а╫к╫Х╫а╫Щ╫Э",
"regenerating_thumbnails": "╫Ю╫Ч╫У╫й ╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫Ю╫Х╫Ц╫в╫и╫Х╫к",
"remote": "╫Ю╫и╫Х╫Ч╫з",
"remote_assets": "╫к╫Ю╫Х╫а╫Х╫к ╫Ю╫и╫Х╫Ч╫з╫Х╫к",
"remove": "╫Ф╫б╫и",
"remove_assets_album_confirmation": "╫Ф╫Р╫Э ╫С╫Р╫Ю╫к ╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫Ф╫б╫Щ╫и {count, plural, one {╫к╫Ю╫Х╫а╫Ф #} other {# ╫к╫Ю╫Х╫а╫Х╫к}} ╫Ю╫Ф╫Р╫Ь╫С╫Х╫Э?",
"remove_assets_shared_link_confirmation": "╫Ф╫Р╫Э ╫Р╫к╫Ф ╫С╫Ш╫Х╫Ч ╫й╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫Ф╫б╫Щ╫и {count, plural, one {╫к╫Ю╫Х╫а╫Ф #} other {# ╫к╫Ю╫Х╫а╫Х╫к}} ╫Ю╫Ф╫з╫Щ╫й╫Х╫и ╫Ф╫Ю╫й╫Х╫к╫г ╫Ф╫Ц╫Ф?",
@@ -1492,7 +1555,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": "╫Ф╫б╫и ╫Ю╫з╫Щ╫й╫Х╫и ╫Ю╫й╫Х╫к╫г",
@@ -1520,19 +1585,25 @@
"reset_password": "╫Р╫Щ╫д╫Х╫б ╫б╫Щ╫б╫Ю╫Ф",
"reset_people_visibility": "╫Р╫д╫б ╫Р╫к ╫а╫и╫Р╫Х╫к ╫Ф╫Р╫а╫й╫Щ╫Э",
"reset_pin_code": "╫Р╫д╫б ╫з╫Х╫У PIN",
"reset_sqlite": "╫Р╫д╫б ╫Р╫к ╫Ю╫б╫У ╫Ф╫а╫к╫Х╫а╫Щ╫Э SQLite",
"reset_sqlite_confirmation": "╫Ф╫Р╫Э ╫Р╫к╫Ф ╫С╫Ш╫Х╫Ч ╫й╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫Р╫д╫б ╫Р╫к ╫Ю╫б╫У ╫Ф╫а╫к╫Х╫а╫Щ╫Э SQLite? ╫Щ╫Ф╫Щ╫Ф ╫в╫Ь╫Щ╫Ъ ╫Ь╫Ф╫к╫а╫к╫з ╫Х╫Ь╫Ф╫к╫Ч╫С╫и ╫Ю╫Ч╫У╫й ╫Ы╫У╫Щ ╫Ь╫б╫а╫Ы╫и╫Я ╫Р╫к ╫Ф╫а╫к╫Х╫а╫Щ╫Э ╫Ю╫Ч╫У╫й",
"reset_sqlite_success": "╫Р╫Щ╫д╫Х╫б ╫Ю╫б╫У ╫Ф╫а╫к╫Х╫а╫Щ╫Э SQLite ╫С╫Х╫ж╫в ╫С╫Ф╫ж╫Ь╫Ч╫Ф",
"reset_to_default": "╫Р╫д╫б ╫Ь╫С╫и╫Щ╫и╫к ╫Ю╫Ч╫У╫Ь",
"resolve_duplicates": "╫д╫к╫Х╫и ╫Ы╫д╫Щ╫Ь╫Х╫Щ╫Х╫к",
"resolved_all_duplicates": "╫Ы╫Ь ╫Ф╫Ы╫д╫Щ╫Ь╫Х╫Щ╫Х╫к ╫а╫д╫к╫и╫Х",
"restore": "╫й╫Ч╫Ц╫и",
"restore_all": "╫й╫Ч╫Ц╫и ╫Ф╫Ы╫Ь",
"restore_trash_action_prompt": "{count} ╫й╫Х╫Ч╫Ц╫и╫Х ╫Ю╫Ф╫й╫Р╫д╫Ф",
"restore_user": "╫й╫Ч╫Ц╫и ╫Ю╫й╫к╫Ю╫й",
"restored_asset": "╫Ф╫к╫Ю╫Х╫а╫Ф ╫й╫Х╫Ч╫Ц╫и╫Ф",
"resume": "╫Ф╫Ю╫й╫Ъ",
"retry_upload": "╫а╫б╫Ф ╫й╫Х╫С ╫Ь╫Ф╫в╫Ь╫Х╫к",
"review_duplicates": "╫С╫У╫Х╫з ╫Ы╫д╫Щ╫Ь╫Х╫Щ╫Х╫к",
"review_large_files": "╫ж╫д╫Щ╫Щ╫Ф ╫С╫з╫С╫ж╫Щ╫Э ╫Т╫У╫Х╫Ь╫Щ╫Э",
"role": "╫к╫д╫з╫Щ╫У",
"role_editor": "╫в╫Х╫и╫Ъ",
"role_viewer": "╫ж╫Х╫д╫Ф",
"running": "╫д╫Х╫в╫Ь",
"save": "╫й╫Ю╫Х╫и",
"save_to_gallery": "╫й╫Ю╫Х╫и ╫Ь╫Т╫Ь╫и╫Щ╫Ф",
"saved_api_key": "╫Ю╫д╫к╫Ч API ╫й╫Ю╫Х╫и",
@@ -1605,6 +1676,7 @@
"select_album_cover": "╫С╫Ч╫и ╫в╫Ш╫Щ╫д╫к ╫Р╫Ь╫С╫Х╫Э",
"select_all": "╫С╫Ч╫и ╫Ф╫Ы╫Ь",
"select_all_duplicates": "╫С╫Ч╫и ╫Р╫к ╫Ы╫Ь ╫Ф╫Ы╫д╫Щ╫Ь╫Х╫Щ╫Х╫к",
"select_all_in": "╫С╫Ч╫и ╫Ф╫Ы╫Х╫Ь ╫С╫к╫Х╫Ъ {group}",
"select_avatar_color": "╫С╫Ч╫и ╫ж╫С╫в ╫к╫Ю╫Х╫а╫к ╫д╫и╫Х╫д╫Щ╫Ь",
"select_face": "╫С╫Ч╫и ╫д╫а╫Щ╫Э",
"select_featured_photo": "╫С╫Ч╫и ╫к╫Ю╫Х╫а╫Ф ╫Ю╫Щ╫Щ╫ж╫Т╫к",
@@ -1663,6 +1735,7 @@
"settings_saved": "╫Ф╫Ф╫Т╫У╫и╫Х╫к ╫а╫й╫Ю╫и╫Х",
"setup_pin_code": "╫Ф╫Т╫У╫и ╫з╫Х╫У PIN",
"share": "╫й╫к╫г",
"share_action_prompt": "╫й╫Х╫к╫д╫Х {count} ╫к╫Ю╫Х╫а╫Х╫к",
"share_add_photos": "╫Ф╫Х╫б╫г ╫к╫Ю╫Х╫а╫Х╫к",
"share_assets_selected": "{count} ╫а╫С╫Ч╫и╫Х",
"share_dialog_preparing": "╫Ю╫Ы╫Щ╫Я...",
@@ -1684,6 +1757,7 @@
"shared_link_clipboard_copied_massage": "╫Ф╫Х╫в╫к╫з ╫Ь╫Ь╫Х╫Ч",
"shared_link_clipboard_text": "╫з╫Щ╫й╫Х╫и: {password}\n╫б╫Щ╫б╫Ю╫Ф: {link}",
"shared_link_create_error": "╫й╫Т╫Щ╫Р╫Ф ╫С╫Щ╫ж╫Щ╫и╫к ╫з╫Щ╫й╫Х╫и ╫Ю╫й╫Х╫к╫г",
"shared_link_custom_url_description": "╫Т╫й ╫Ь╫з╫Щ╫й╫Х╫и ╫й╫й╫Х╫к╫г ╫С╫Р╫Ю╫ж╫в╫Х╫к ╫Ы╫к╫Х╫С╫к URL ╫Ю╫Х╫к╫Р╫Ю╫к ╫Р╫Щ╫й╫Щ╫к",
"shared_link_edit_description_hint": "╫Ф╫Ы╫а╫б ╫Р╫к ╫к╫Щ╫Р╫Х╫и ╫Ф╫й╫Щ╫к╫Х╫г",
"shared_link_edit_expire_after_option_day": "1 ╫Щ╫Х╫Э",
"shared_link_edit_expire_after_option_days": "{count} ╫Щ╫Ю╫Щ╫Э",
@@ -1709,6 +1783,7 @@
"shared_link_info_chip_metadata": "EXIF",
"shared_link_manage_links": "╫а╫Щ╫Ф╫Х╫Ь ╫з╫Щ╫й╫Х╫и╫Щ╫Э ╫Ю╫й╫Х╫к╫д╫Щ╫Э",
"shared_link_options": "╫Р╫д╫й╫и╫Х╫Щ╫Х╫к ╫з╫Щ╫й╫Х╫и ╫Ю╫й╫Х╫к╫г",
"shared_link_password_description": "╫У╫и╫Х╫й ╫б╫Щ╫б╫Ю╫Ф ╫Ы╫У╫Щ ╫Ь╫Т╫й╫к ╫Ь╫з╫Щ╫й╫Х╫и ╫Ф╫Ю╫й╫Х╫к╫г ╫Ф╫Ц╫Ф",
"shared_links": "╫з╫Щ╫й╫Х╫и╫Щ╫Э ╫Ю╫й╫Х╫к╫д╫Щ╫Э",
"shared_links_description": "╫й╫к╫г ╫к╫Ю╫Х╫а╫Х╫к ╫Х╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫в╫Э ╫з╫Щ╫й╫Х╫и",
"shared_photos_and_videos_count": "{assetCount, plural, other {# ╫к╫Ю╫Х╫а╫Х╫к ╫Х╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫Ю╫й╫Х╫к╫д╫Щ╫Э.}}",
@@ -1764,6 +1839,7 @@
"sort_title": "╫Ы╫Х╫к╫и╫к",
"source": "╫з╫Х╫У ╫Ю╫з╫Х╫и",
"stack": "╫в╫и╫Щ╫Ю╫Ф",
"stack_action_prompt": "{count} ╫з╫Х╫С╫ж╫Х",
"stack_duplicates": "╫ж╫Х╫и ╫в╫и╫Щ╫Ю╫к ╫Ы╫д╫Щ╫Ь╫Х╫Щ╫Х╫к",
"stack_select_one_photo": "╫С╫Ч╫и ╫к╫Ю╫Х╫а╫Ф ╫и╫Р╫й╫Щ╫к ╫Р╫Ч╫к ╫в╫С╫Х╫и ╫Ф╫в╫и╫Щ╫Ю╫Ф",
"stack_selected_photos": "╫ж╫Х╫и ╫в╫и╫Щ╫Ю╫к ╫к╫Ю╫Х╫а╫Х╫к ╫а╫С╫Ч╫и╫Х╫к",
@@ -1783,6 +1859,7 @@
"storage_quota": "╫Ю╫Ы╫б╫к ╫Ф╫Р╫Ч╫б╫Х╫Я",
"storage_usage": "{used} ╫С╫й╫Щ╫Ю╫Х╫й ╫Ю╫к╫Х╫Ъ {available}",
"submit": "╫й╫Ь╫Ч",
"success": "╫С╫Х╫ж╫в ╫С╫Ф╫ж╫Ь╫Ч╫Ф",
"suggestions": "╫Ф╫ж╫в╫Х╫к",
"sunrise_on_the_beach": "Sunrise on the beach (╫Ю╫Х╫Ю╫Ь╫е ╫Ь╫Ч╫д╫й ╫С╫Р╫а╫Т╫Ь╫Щ╫к ╫Ь╫к╫Х╫ж╫Р╫Х╫к ╫Ш╫Х╫С╫Х╫к ╫Щ╫Х╫к╫и)",
"support": "╫к╫Ю╫Щ╫Ы╫Ф",
@@ -1792,6 +1869,8 @@
"sync": "╫б╫а╫Ы╫и╫Я",
"sync_albums": "╫б╫а╫Ы╫и╫Я ╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э",
"sync_albums_manual_subtitle": "╫б╫а╫Ы╫и╫Я ╫Р╫к ╫Ы╫Ь ╫Ф╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫Х╫Ф╫к╫Ю╫Х╫а╫Х╫к ╫й╫Ф╫Х╫в╫Ь╫Х ╫Ь╫Р╫Ь╫С╫Х╫Ю╫Щ ╫Ф╫Т╫Щ╫С╫Х╫Щ ╫й╫а╫С╫Ч╫и╫Х",
"sync_local": "╫б╫а╫Ы╫и╫Я ╫Ю╫з╫Х╫Ю╫Щ",
"sync_remote": "╫б╫а╫Ы╫и╫Я ╫Ю╫и╫Х╫Ч╫з",
"sync_upload_album_setting_subtitle": "╫ж╫Х╫и ╫Х╫Ф╫в╫Ь╫Ф ╫к╫Ю╫Х╫а╫Х╫к ╫Х╫б╫и╫Ш╫Х╫а╫Щ╫Э ╫й╫Ь╫Ъ ╫Ь╫Р╫Ь╫С╫Х╫Ю╫Щ╫Э ╫й╫а╫С╫Ч╫и╫Х ╫С╫Щ╫Щ╫й╫Х╫Э",
"tag": "╫к╫Т",
"tag_assets": "╫к╫Щ╫Х╫Т ╫к╫Ю╫Х╫а╫Х╫к",
@@ -1802,6 +1881,7 @@
"tag_updated": "╫к╫Т ╫Ю╫в╫Х╫У╫Ы╫Я: {tag}",
"tagged_assets": "╫к╫Х╫Щ╫Т╫Х {count, plural, one {╫к╫Ю╫Х╫а╫Ф #} other {# ╫к╫Ю╫Х╫а╫Х╫к}}",
"tags": "╫к╫Т╫Щ╫Э",
"tap_to_run_job": "╫Ь╫Ч╫е ╫в╫Ь ╫Ю╫а╫к ╫Ь╫Ф╫д╫в╫Щ╫Ь ╫Ю╫й╫Щ╫Ю╫Ф",
"template": "╫к╫С╫а╫Щ╫к",
"theme": "╫в╫и╫Ы╫к ╫а╫Х╫й╫Р",
"theme_selection": "╫С╫Ч╫Щ╫и╫к ╫в╫и╫Ы╫к ╫а╫Х╫й╫Р",
@@ -1834,6 +1914,7 @@
"total": "╫б╫Ф\"╫Ы",
"total_usage": "╫й╫Щ╫Ю╫Х╫й ╫Ы╫Х╫Ь╫Ь",
"trash": "╫Р╫й╫д╫Ф",
"trash_action_prompt": "{count} ╫Ф╫Х╫в╫С╫и╫Х ╫Ь╫Р╫й╫д╫Ф",
"trash_all": "╫Ф╫в╫С╫и ╫Ф╫Ы╫Ь ╫Ь╫Р╫й╫д╫Ф",
"trash_count": "╫Ф╫в╫С╫и ╫Ь╫Р╫й╫д╫Ф {count, number}",
"trash_delete_asset": "╫Ф╫в╫С╫и ╫Ь╫Р╫й╫д╫Ф/╫Ю╫Ч╫з ╫к╫Ю╫Х╫а╫Ф",
@@ -1851,9 +1932,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,16 +1952,22 @@
"unsaved_change": "╫й╫Щ╫а╫Х╫Щ ╫Ь╫Р ╫а╫й╫Ю╫и",
"unselect_all": "╫С╫Ш╫Ь ╫С╫Ч╫Щ╫и╫Ф ╫С╫Ф╫Ы╫Ь",
"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": "╫б╫Щ╫б╫Ю╫Ф ╫в╫Х╫У╫Ы╫а╫Ф",
"upload": "╫Ф╫в╫Ь╫Р╫Ф",
"upload_action_prompt": "{count} ╫а╫Х╫б╫д╫Х ╫Ь╫к╫Х╫и ╫Ь╫Ф╫в╫Ь╫Р╫Ф",
"upload_concurrency": "╫С╫Х-╫Ц╫Ю╫а╫Щ╫Х╫к ╫й╫Ь ╫Ф╫в╫Ь╫Р╫Ф",
"upload_details": "╫д╫и╫Ш╫Щ ╫Ф╫в╫Ь╫Р╫Ф",
"upload_dialog_info": "╫Ф╫Р╫Э ╫С╫и╫ж╫Х╫а╫Ъ ╫Ь╫Т╫С╫Х╫к ╫Р╫к ╫Ф╫к╫Ю╫Х╫а╫Х╫к ╫й╫а╫С╫Ч╫и╫Х ╫Ь╫й╫и╫к?",
"upload_dialog_title": "╫Ф╫в╫Ь╫Р╫к ╫к╫Ю╫Х╫а╫Ф",
"upload_errors": "╫Ф╫в╫Ь╫Р╫Ф ╫Ф╫Х╫й╫Ь╫Ю╫Ф ╫в╫Э {count, plural, one {╫й╫Т╫Щ╫Р╫Ф #} other {# ╫й╫Т╫Щ╫Р╫Х╫к}}, ╫и╫в╫а╫Я ╫Р╫к ╫Ф╫У╫г ╫Ы╫У╫Щ ╫Ь╫и╫Р╫Х╫к ╫к╫Ю╫Х╫а╫Х╫к ╫й╫Ф╫Х╫в╫Ь╫Х.",
"upload_finished": "╫Ф╫в╫Ь╫Р╫Ф ╫Ф╫б╫к╫Щ╫Щ╫Ю╫Ф",
"upload_progress": "╫а╫Х╫к╫и╫Х {remaining, number} - ╫Ш╫Х╫д╫Ь╫Х {processed, number}/{total, number}",
"upload_skipped_duplicates": "╫У╫Щ╫Ь╫Т ╫в╫Ь {count, plural, one {╫к╫Ю╫Х╫а╫Ф ╫Ы╫д╫Х╫Ь╫Ф #} other {# ╫к╫Ю╫Х╫а╫Х╫к ╫Ы╫д╫Х╫Ь╫Х╫к}}",
"upload_status_duplicates": "╫Ы╫д╫Щ╫Ь╫Х╫Щ╫Х╫к",
@@ -1887,6 +1976,7 @@
"upload_success": "╫Ф╫Ф╫в╫Ь╫Р╫Ф ╫С╫Х╫ж╫в╫Ф ╫С╫Ф╫ж╫Ь╫Ч╫Ф. ╫и╫в╫а╫Я ╫Р╫к ╫Ф╫У╫г ╫Ы╫У╫Щ ╫Ь╫ж╫д╫Х╫к ╫С╫к╫Ю╫Х╫а╫Х╫к ╫й╫Ф╫Х╫в╫Ь╫Х.",
"upload_to_immich": "╫Ф╫в╫Ь╫Ф ╫Ь╫й╫и╫к ({count})",
"uploading": "╫Ю╫в╫Ь╫Ф",
"uploading_media": "╫Ю╫в╫Ь╫Ф ╫Ю╫У╫Щ╫Ф",
"url": "URL",
"usage": "╫й╫Щ╫Ю╫Х╫й",
"use_biometric": "╫Ф╫й╫к╫Ю╫й ╫С╫Р╫Щ╫Ю╫Х╫к ╫С╫Щ╫Х╫Ю╫Ш╫и╫Щ",
@@ -1907,6 +1997,7 @@
"user_usage_stats_description": "╫Ф╫ж╫Т ╫б╫Ш╫Ш╫Щ╫б╫Ш╫Щ╫з╫Х╫к ╫й╫Щ╫Ю╫Х╫й ╫С╫Ч╫й╫С╫Х╫Я",
"username": "╫й╫Э ╫Ю╫й╫к╫Ю╫й",
"users": "╫Ю╫й╫к╫Ю╫й╫Щ╫Э",
"users_added_to_album_count": "╫а╫Х╫б╫д╫Х {count, plural, one {╫Ю╫й╫к╫Ю╫й #} other {# ╫Ю╫й╫к╫Ю╫й╫Щ╫Э}} ╫Ь╫Р╫Ь╫С╫Х╫Э",
"utilities": "╫Ы╫Ь╫Щ╫Э",
"validate": "╫Ь╫Р╫Ю╫к",
"validate_endpoint_error": "╫а╫Р ╫Ь╫Ф╫Ц╫Щ╫Я ╫Ы╫к╫Х╫С╫к ╫к╫з╫а╫Щ╫к",
@@ -1925,6 +2016,7 @@
"view_album": "╫Ф╫ж╫Т ╫Р╫Ь╫С╫Х╫Э",
"view_all": "╫Ф╫ж╫Т ╫Ф╫Ы╫Ь",
"view_all_users": "╫Ф╫ж╫Т ╫Р╫к ╫Ы╫Ь ╫Ф╫Ю╫й╫к╫Ю╫й╫Щ╫Э",
"view_details": "╫Ф╫ж╫Т ╫д╫и╫Ш╫Щ╫Э",
"view_in_timeline": "╫и╫Р╫Ф ╫С╫ж╫Щ╫и ╫Ф╫Ц╫Ю╫Я",
"view_link": "╫Ф╫ж╫Т ╫з╫Щ╫й╫Х╫и",
"view_links": "╫Ф╫ж╫Т ╫з╫Щ╫й╫Х╫и╫Щ╫Э",

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 рдФрд░ рдЕрдиреНрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ",
@@ -43,7 +45,7 @@
"backup_database_enable_description": "Enable database dumps",
"backup_keep_last_amount": "рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдбрдВрдк рдХреА рдорд╛рддреНрд░рд╛",
"backup_settings": "рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕",
"backup_settings_description": "рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВред рдзреНрдпрд╛рди рджреЗрдВ: рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдкрдХреЛ рд╕реВрдЪрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред",
"backup_settings_description": "рдбреЗрдЯрд╛рдмреЗрд╕ рдбрдВрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВред",
"cleared_jobs": "{job}: рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╕рд╛рдлрд╝ рдХрд░ рджрд┐рдП рдЧрдП",
"config_set_by_file": "Config рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ config рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ",
"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": "рдкреНрд░реЗрд╖рдХ рдХрд╛ рдИрдореЗрд▓ рдкрддрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: \"рдЗрдорд┐рдЪ рдлреЛрдЯреЛ рд╕рд░реНрд╡рд░ <noreply@example.com>\"",
"notification_email_from_address_description": "рдкреНрд░реЗрд╖рдХ рдХрд╛ рдИрдореЗрд▓ рдкрддрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: \"рдЗрдорд┐рдЪ рдлреЛрдЯреЛ рд╕рд░реНрд╡рд░ <noreply@example.com>\"ред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЙрд╕реА рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХреЛ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред",
"notification_email_host_description": "рдИрдореЗрд▓ рд╕рд░реНрд╡рд░ рдХрд╛ рд╣реЛрд╕реНрдЯ (рдЙрджрд╛. smtp.immitch.app)",
"notification_email_ignore_certificate_errors": "рдкреНрд░рдорд╛рдгрдкрддреНрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВ",
"notification_email_ignore_certificate_errors_description": "рдЯреАрдПрд▓рдПрд╕ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рддреНрдпрд╛рдкрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рди рджреЗрдВ (рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ)",
@@ -193,7 +209,9 @@
"oauth_enable_description": "OAuth рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ",
"oauth_mobile_redirect_uri": "рдореЛрдмрд╛рдЗрд▓ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдпреВрдЖрд░рдЖрдИ",
"oauth_mobile_redirect_uri_override": "рдореЛрдмрд╛рдЗрд▓ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдпреВрдЖрд░рдЖрдИ рдУрд╡рд░рд░рд╛рдЗрдб",
"oauth_mobile_redirect_uri_override_description": "рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдЬрдм 'app.immitch:/' рдПрдХ рдЕрдорд╛рдиреНрдп рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдпреВрдЖрд░рдЖрдИ рд╣реЛред",
"oauth_mobile_redirect_uri_override_description": "рдЬрдм OAuth рдкреНрд░рджрд╛рддрд╛ рдХрд┐рд╕реА рдореЛрдмрд╛рдЗрд▓ URI, рдЬреИрд╕реЗ ''{callback}'' рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛, рддрдм рд╕рдХреНрд╖рдо рдХрд░реЗрдВ",
"oauth_role_claim": "рднреВрдорд┐рдХрд╛ рдХрд╛ рджрд╛рд╡рд╛",
"oauth_role_claim_description": "рдЗрд╕ рджрд╛рд╡реЗ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред рджрд╛рд╡реЗ рдореЗрдВ 'рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛' рдпрд╛ 'рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ' рд╣реЛ рд╕рдХрддрд╛ рд╣реИред",
"oauth_settings": "рдУрдСрде",
"oauth_settings_description": "OAuth рд▓реЙрдЧрд┐рди рд╕реЗрдЯрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ",
"oauth_settings_more_details": "рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ <link>рдбреЙрдХреНрд╕</link>ред",
@@ -202,7 +220,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 +260,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": "рдЕрдкрд▓реЛрдб рд╕рдВрдкрддреНрддрд┐ рдХреА рдлрд╝реЛрд▓реНрдбрд░ рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ",
@@ -354,10 +373,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": "рдкреНрд░рддреНрдпреЗрдХ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдЗрдореНрдорд┐рдЪ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЙрдХреНрд╕реА рд╣реЗрдбрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ",
"advanced_settings_proxy_headers_title": "рдкреНрд░реЙрдХреНрд╕реА рд╣реЗрдбрд░",
@@ -376,6 +397,7 @@
"album_cover_updated": "рдПрд▓реНрдмрдо рдХрд╡рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛",
"album_delete_confirmation": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ рдПрд▓реНрдмрдо {album} рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?",
"album_delete_confirmation_description": "рдпрджрд┐ рдпрд╣ рдПрд▓реНрдмрдо рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред",
"album_deleted": "рдПрд▓реНрдмрдо рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛",
"album_info_card_backup_album_excluded": "рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛",
"album_info_card_backup_album_included": "рд╢рд╛рдорд┐рд▓",
"album_info_updated": "рдПрд▓реНрдмрдо рдХреА рдЬрд╛рдирдХрд╛рд░реА рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ",
@@ -385,6 +407,7 @@
"album_options": "рдПрд▓реНрдмрдо рд╡рд┐рдХрд▓реНрдк",
"album_remove_user": "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдЯрд╛рдПрдВ?",
"album_remove_user_confirmation": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ {user} рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?",
"album_search_not_found": "рдЖрдкрдХреА рдЦреЛрдЬ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рдХреЛрдИ рдПрд▓реНрдмрдо рдирд╣реАрдВ рдорд┐рд▓рд╛",
"album_share_no_users": "рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдпрд╣ рдПрд▓реНрдмрдо рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реИред",
"album_updated": "рдПрд▓реНрдмрдо рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛",
"album_updated_setting_description": "рдЬрдм рдХрд┐рд╕реА рд╕рд╛рдЭрд╛ рдПрд▓реНрдмрдо рдореЗрдВ рдирдИ рд╕рдВрдкрддреНрддрд┐рдпрд╛рдБ рд╣реЛрдВ рддреЛ рдПрдХ рдИрдореЗрд▓ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ",
@@ -400,7 +423,11 @@
"album_viewer_page_share_add_users": "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝реЗрдВ",
"album_with_link_access": "рд▓рд┐рдВрдХ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЗрд╕ рдПрд▓реНрдмрдо рдореЗрдВ рдлрд╝реЛрдЯреЛ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рджреЗрдВред",
"albums": "рдПрд▓рдмрдо",
"albums_count": "{рдЧрд┐рдирддреА, рдмрд╣реБрд╡рдЪрди, рдПрдХ {{count, number} рдПрд▓реНрдмрдо} рдЕрдиреНрдп {{count, number} рдПрд▓реНрдмрдо}}",
"albums_count": "{count, plural, one {{count, number} Album} other {{count, number} Albums}}",
"albums_default_sort_order": "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдПрд▓реНрдмрдо рд╕реЙрд░реНрдЯ рдХреНрд░рдо",
"albums_default_sort_order_description": "рдирдпреЗ рдПрд▓реНрдмрдо рдмрдирд╛рддреЗ рд╕рдордп рдЖрд░рдВрднрд┐рдХ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рд╕реЙрд░реНрдЯ рдХреНрд░рдоред",
"albums_feature_description": "рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рдЬрд┐рд╕реЗ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред",
"albums_on_device_count": "рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрд▓реНрдмрдо ({count})",
"all": "рд╕рднреА",
"all_albums": "рд╕рднреА рдПрд▓рдмрдо",
"all_people": "рд╕рднреА рд▓реЛрдЧ",
@@ -421,13 +448,14 @@
"app_settings": "рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧ",
"appears_in": "рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ",
"archive": "рд╕рдВрдЧреНрд░рд╣рд╛рд▓рдп",
"archive_action_prompt": "{count} рдХреЛ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛",
"archive_or_unarchive_photo": "рдлрд╝реЛрдЯреЛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдпрд╛ рдЕрд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВ",
"archive_page_no_archived_assets": "рдХреЛрдИ рд╕рдВрдЧреНрд░рд╣реАрдд рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рдорд┐рд▓реА",
"archive_page_title": "рдкреБрд░рд╛рд▓реЗрдЦ ({count})",
"archive_size": "рдкреБрд░рд╛рд▓реЗрдЦ рдЖрдХрд╛рд░",
"archive_size_description": "рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣ рдЖрдХрд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ (GiB рдореЗрдВ)",
"archived": "рд╕рдВрдЧреНрд░рд╣рд┐рдд",
"archived_count": "{рдЧрдгрдирд╛, рдмрд╣реБрд╡рдЪрди, рдЕрдиреНрдп {рд╕рдВрдЧреНрд░рд╣реАрдд #}}",
"archived_count": "{count, рдмрд╣реБрд╡рдЪрди, рдЕрдиреНрдп {рд╕рдВрдЧреНрд░рд╣реАрдд #}}",
"are_these_the_same_person": "рдХреНрдпрд╛ рдпреЗ рд╡рд╣реА рд╡реНрдпрдХреНрддрд┐ рд╣реИрдВ?",
"are_you_sure_to_do_this": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?",
"asset_action_delete_err_read_only": "рдХреЗрд╡рд▓ рдкрдврд╝рдиреЗ рдпреЛрдЧреНрдп рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐(рдУрдВ) рдХреЛ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛, рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ",
@@ -440,50 +468,175 @@
"asset_hashing": "рд╣реИрд╢рд┐рдВрдЧ...ред",
"asset_list_group_by_sub_title": "рджреНрд╡рд╛рд░рд╛ рд╕рдореВрд╣ рдмрдирд╛рдПрдВ",
"asset_list_layout_settings_dynamic_layout_title": "рдЧрддрд┐рд╢реАрд▓ рд▓реЗрдЖрдЙрдЯ",
"asset_list_layout_settings_group_automatically": "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд",
"asset_list_layout_settings_group_by": "рд╕рдореВрд╣ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛",
"asset_list_layout_settings_group_by_month_day": "рдорд╣реАрдирд╛ + рджрд┐рди",
"asset_list_layout_sub_title": "рд▓реЗрдЖрдЙрдЯ",
"asset_list_settings_subtitle": "рдлрд╝реЛрдЯреЛ рдЧреНрд░рд┐рдб рд▓реЗрдЖрдЙрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕",
"asset_list_settings_title": "рдЪрд┐рддреНрд░ рдХреА рдЬрд╛рд▓реА",
"asset_offline": "рд╕рдВрдкрддреНрддрд┐ рдСрдлрд╝рд▓рд╛рдЗрди",
"asset_offline_description": "рдпрд╣ рд╕рдВрдкрддреНрддрд┐ рдСрдлрд╝рд▓рд╛рдЗрди рд╣реИред",
"asset_restored_successfully": "рд╕рдВрдкрддреНрддрд┐(рдпрд╛рдБ) рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХреА рдЧрдИрдВ",
"asset_skipped": "рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛",
"asset_skipped_in_trash": "рдХрдЪрд░реЗ рдореЗрдВ",
"asset_uploaded": "рдЕрдкрд▓реЛрдб рдХрд┐рдП рдЧрдП",
"asset_uploading": "рдЕрдкрд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ..ред",
"asset_uploading": "рдЕрдкрд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИтАж",
"asset_viewer_settings_subtitle": "рдЕрдкрдиреА рдЧреИрд▓рд░реА рд╡реНрдпреВрдЕрд░ рд╕реЗрдЯрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ",
"asset_viewer_settings_title": "рдПрд╕реЗрдЯ рд╡реНрдпреВрдЕрд░",
"assets": "рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ",
"assets_added_count": "{count, plural, one {# asset} other {# assets}} рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛",
"assets_added_to_album_count": "рдПрд▓реНрдмрдо рдореЗрдВ {count, plural, one {# asset} other {# assets}} рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛",
"assets_cannot_be_added_to_album_count": "{count, plural, one {Asset} other {Assets}} рдХреЛ рдПрд▓реНрдмрдо рдореЗрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛",
"assets_count": "{count, рдмрд╣реБрд╡рдЪрди, рдПрдХ {# рд╕рдВрдкрддреНрддрд┐} рдЕрдиреНрдп {# рд╕рдВрдкрддреНрддрд┐}}",
"assets_deleted_permanently": "{count} рд╕рдВрдкрддреНрддрд┐(рдпрд╛рдБ) рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджреА рдЧрдИрдВ",
"assets_deleted_permanently_from_server": "{count} рд╕рдВрдкрддреНрддрд┐(рдпрд╛рдБ) рдЗрдорд┐рдЪ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджреА рдЧрдИрдВ",
"assets_downloaded_failed": "{count, plural, one {Downloaded # file - {error} file failed} other {Downloaded # files - {error} files failed}}",
"assets_downloaded_successfully": "{count, plural, one {Downloaded # file successfully} рдЕрдиреНрдп {Downloaded # files successfully}}",
"assets_moved_to_trash_count": "{count, plural, one {# asset} other {# assets}} рдХреЛ рдЯреНрд░реИрд╢ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛",
"assets_permanently_deleted_count": "рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ {count, plural, one {# asset} other {# assets}}",
"assets_removed_count": "{count, plural, one {# asset} other {# assets}} рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛",
"assets_removed_permanently_from_device": "{count} рд╕рдВрдкрддреНрддрд┐(рдпрд╛рдБ) рдЖрдкрдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджреА рдЧрдИрдВ",
"assets_restore_confirmation": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ рдЕрдкрдиреА рд╕рднреА рдирд╖реНрдЯ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЖрдк рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ!",
"assets_restore_confirmation": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ рдЕрдкрдиреА рд╕рднреА рдирд╖реНрдЯ рдХреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЖрдк рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред",
"assets_restored_count": "рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд {count, plural, one {# asset} other {# assets}}",
"assets_restored_successfully": "{count} рд╕рдВрдкрддреНрддрд┐(рдпрд╛рдБ) рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХреА рдЧрдИрдВ",
"assets_trashed": "{count} рд╕рдВрдкрддреНрддрд┐(рдпрд╛рдБ) рдХрдЪрд░реЗ рдореЗрдВ рдбрд╛рд▓реА рдЧрдИрдВ",
"assets_trashed_count": "рдЯреНрд░реИрд╢ рдХреА рдЧрдИ {count, plural, one {# asset} other {# assets}}",
"assets_trashed_from_server": "{count} рд╕рдВрдкрддреНрддрд┐(рдпрд╛рдБ) рдЗрдорд┐рдЪ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдЪрд░реЗ рдореЗрдВ рдбрд╛рд▓реА рдЧрдИрдВ",
"assets_were_part_of_album_count": "{count, plural, one {Asset was} other {Assets were}}рдПрд▓реНрдмрдо рдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рд┐рд╕реНрд╕рд╛ рдереЗ",
"authorized_devices": "рдЕрдзрд┐рдХреГрдд рдЙрдкрдХрд░рдг",
"automatic_endpoint_switching_subtitle": "рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд╛рдИ-рдлрд╛рдИ рд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдЕрдиреНрдпрддреНрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ",
"automatic_endpoint_switching_title": "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд URL рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ",
"autoplay_slideshow": "рдСрдЯреЛрдкреНрд▓реЗ рд╕реНрд▓рд╛рдЗрдб рд╢реЛ",
"back": "рд╡рд╛рдкрд╕",
"back_close_deselect": "рд╡рд╛рдкрд╕ рдЬрд╛рдПрдБ, рдмрдВрдж рдХрд░реЗрдВ, рдпрд╛ рдЕрдЪрдпрдирд┐рдд рдХрд░реЗрдВ",
"backup_controller_page_background_wifi": "Only on WiFi",
"background_location_permission": "рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдерд╛рди рдЕрдиреБрдорддрд┐",
"background_location_permission_content": "рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓рддреЗ рд╕рдордп рдиреЗрдЯрд╡рд░реНрдХ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, Immich рдХреЗ рдкрд╛рд╕ *рд╣рдореЗрд╢рд╛* рд╕рдЯреАрдХ рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдРрдк рд╡рд╛рдИ-рдлрд╛рдИ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдирд╛рдо рдкрдврд╝ рд╕рдХреЗ",
"backup": "рдмреИрдХрдЕрдк",
"backup_album_selection_page_albums_device": "рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрд▓реНрдмрдо ({count})",
"backup_album_selection_page_albums_tap": "рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреИрдк рдХрд░реЗрдВ, рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрдмрд▓ рдЯреИрдк рдХрд░реЗрдВ",
"backup_album_selection_page_assets_scatter": "рдПрд╕реЗрдЯ рдХрдИ рдПрд▓реНрдмрдореЛрдВ рдореЗрдВ рдмрд┐рдЦрд░реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдмреИрдХрдЕрдк рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдПрд▓реНрдмрдореЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдпрд╛ рдмрд╛рд╣рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред",
"backup_album_selection_page_select_albums": "рдПрд▓реНрдмрдо рдЪреБрдиреЗрдВ",
"backup_album_selection_page_selection_info": "рдЪрдпрди рдЬрд╛рдирдХрд╛рд░реА",
"backup_album_selection_page_total_assets": "рдХреБрд▓ рдЕрджреНрд╡рд┐рддреАрдп рд╕рдВрдкрддреНрддрд┐рдпрд╛рдБ",
"backup_all": "рд╕рднреА",
"backup_background_service_backup_failed_message": "рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓. рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИтАж",
"backup_background_service_connection_failed_message": "рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓. рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИтАж",
"backup_background_service_current_upload_notification": "{filename} рдЕрдкрд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ",
"backup_background_service_default_notification": "рдирдИ рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИтАж",
"backup_background_service_error_title": "рдмреИрдХрдЕрдк рддреНрд░реБрдЯрд┐",
"backup_background_service_in_progress_notification": "рдЕрдкрдиреА рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдирд╛тАж",
"backup_background_service_upload_failure_notification": "{filename} рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓",
"backup_controller_page_albums": "рдмреИрдХрдЕрдк рдПрд▓реНрдмрдо",
"backup_controller_page_background_app_refresh_disabled_content": "рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдмреИрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ > рд╕рд╛рдорд╛рдиреНрдп > рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдРрдк рд░рд┐рдлреНрд░реЗрд╢ рдореЗрдВ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдРрдк рд░рд┐рдлреНрд░реЗрд╢ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред",
"backup_controller_page_background_app_refresh_disabled_title": "рдкреГрд╖реНрдарднреВрдорд┐ рдРрдк рд░реАрдлрд╝реНрд░реЗрд╢ рдЕрдХреНрд╖рдо",
"backup_controller_page_background_app_refresh_enable_button_text": "рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд░ рдЬрд╛рдПрдБ",
"backup_controller_page_background_battery_info_link": "рдХреИрд╕реЗ рдореБрдЭреЗ рджрд┐рдЦрд╛рдУ",
"backup_controller_page_background_battery_info_message": "рд╕рд░реНрд╡реЛрддреНрддрдо рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдмреИрдХрдЕрдк рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ Immich рдХреЗ рд▓рд┐рдП рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдмреИрдЯрд░реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВред\n\nрдЪреВрдБрдХрд┐ рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдирд┐рд░реНрдорд╛рддрд╛ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦреЗрдВред",
"backup_controller_page_background_battery_info_ok": "рдареАрдХ",
"backup_controller_page_background_battery_info_title": "рдмреИрдЯрд░реА рдЕрдиреБрдХреВрд▓рди",
"backup_controller_page_background_charging": "рдХреЗрд╡рд▓ рдЪрд╛рд░реНрдЬ рдХрд░рддреЗ рд╕рдордп",
"backup_controller_page_background_configure_error": "рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗрд╡рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓",
"backup_controller_page_background_delay": "рдирдИ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдмреИрдХрдЕрдк рд╡рд┐рд▓рдВрдмрд┐рдд рдХрд░реЗрдВ: {duration}",
"backup_controller_page_background_description": "рдРрдк рдЦреЛрд▓реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рдирдИ рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗрд╡рд╛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ",
"backup_controller_page_background_is_off": "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреГрд╖реНрдарднреВрдорд┐ рдмреИрдХрдЕрдк рдмрдВрдж рд╣реИ",
"backup_controller_page_background_is_on": "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреГрд╖реНрдарднреВрдорд┐ рдмреИрдХрдЕрдк рдЪрд╛рд▓реВ рд╣реИ",
"backup_controller_page_background_turn_off": "рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗрд╡рд╛ рдмрдВрдж рдХрд░реЗрдВ",
"backup_controller_page_background_turn_on": "рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗрд╡рд╛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ",
"backup_controller_page_background_wifi": "рдХреЗрд╡рд▓ рд╡рд╛рдИ-рдлрд╝рд╛рдИ рдкрд░",
"backup_controller_page_backup": "рдмреИрдХрдЕрдк",
"backup_controller_page_backup_selected": "рдЪрдпрдирд┐рдд: ",
"backup_controller_page_backup_sub": "рдмреИрдХрдЕрдк рдХрд┐рдП рдЧрдП рдлрд╝реЛрдЯреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ",
"backup_controller_page_created": "рдирд┐рд░реНрдорд┐рдд рддрд┐рдерд┐: {date}",
"backup_controller_page_desc_backup": "рдРрдк рдЦреЛрд▓рддреЗ рд╕рдордп рд╕рд░реНрд╡рд░ рдкрд░ рдирдИ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рднреВрдорд┐ рдмреИрдХрдЕрдк рдЪрд╛рд▓реВ рдХрд░реЗрдВред",
"backup_controller_page_excluded": "рдЫреЛрдбрд╝рд╛ рдЧрдпрд╛: ",
"backup_controller_page_failed": "рд╡рд┐рдлрд▓ ({count})",
"backup_controller_page_filename": "рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо: {{filename} [{size}]",
"backup_controller_page_id": "рдЖрдИрдбреА: {id}",
"backup_controller_page_info": "рдмреИрдХрдЕрдк рдЬрд╛рдирдХрд╛рд░реА",
"backup_controller_page_none_selected": "рдХреЛрдИ рднреА рдЪрдпрдирд┐рдд рдирд╣реАрдВ",
"backup_controller_page_remainder": "рд╢реЗрд╖",
"backup_controller_page_remainder_sub": "рдЪрдпрди рд╕реЗ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрд╖ рдлрд╝реЛрдЯреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ",
"backup_controller_page_server_storage": "рд╕рд░реНрд╡рд░ рд╕рдВрдЧреНрд░рд╣рдг",
"backup_controller_page_start_backup": "рдмреИрдХрдЕрдк рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ",
"backup_controller_page_status_off": "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрдЧреНрд░рднреВрдорд┐ рдмреИрдХрдЕрдк рдмрдВрдж рд╣реИ",
"backup_controller_page_status_on": "рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрдЧреНрд░рднреВрдорд┐ рдмреИрдХрдЕрдк рдЪрд╛рд▓реВ рд╣реИ",
"backup_controller_page_storage_format": "{рдХреБрд▓} рдореЗрдВ рд╕реЗ {рдкреНрд░рдпреБрдХреНрдд} рдкреНрд░рдпреБрдХреНрдд",
"backup_controller_page_to_backup": "рдмреИрдХрдЕрдк рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрд▓реНрдмрдо",
"backup_controller_page_total_sub": "рдЪрдпрдирд┐рдд рдПрд▓реНрдмрдореЛрдВ рд╕реЗ рд╕рднреА рдЕрджреНрд╡рд┐рддреАрдп рдлрд╝реЛрдЯреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ",
"backup_controller_page_turn_off": "рдЕрдЧреНрд░рднреВрдорд┐ рдмреИрдХрдЕрдк рдмрдВрдж рдХрд░реЗрдВ",
"backup_controller_page_turn_on": "рдЕрдЧреНрд░рднреВрдорд┐ рдмреИрдХрдЕрдк рдЪрд╛рд▓реВ рдХрд░реЗрдВ",
"backup_controller_page_uploading_file_info": "рдлрд╝рд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдЕрдкрд▓реЛрдб рдХрд░рдирд╛",
"backup_err_only_album": "рдПрдХрдорд╛рддреНрд░ рдПрд▓реНрдмрдо рдирд╣реАрдВ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛",
"backup_info_card_assets": "рд╕рдВрдкрддреНрддрд┐",
"backup_manual_cancelled": "рд░рджреНрдж",
"backup_manual_in_progress": "рдЕрдкрд▓реЛрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИред рдХреБрдЫ рджреЗрд░ рдмрд╛рдж рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ",
"backup_manual_success": "рд╕рдлрд▓рддрд╛",
"backup_manual_title": "рдЕрдкрд▓реЛрдб рд╕реНрдерд┐рддрд┐",
"backup_options_page_title": "рдмреИрдХрдЕрдк рд╡рд┐рдХрд▓реНрдк",
"backup_setting_subtitle": "рдкреГрд╖реНрдарднреВрдорд┐ рдФрд░ рдЕрдЧреНрд░рднреВрдорд┐ рдЕрдкрд▓реЛрдб рд╕реЗрдЯрд┐рдВрдЧ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ",
"backward": "рдкрд┐рдЫрд▓рд╛",
"beta_sync": "рдмреАрдЯрд╛ рд╕рд┐рдВрдХ рд╕реНрдерд┐рддрд┐",
"beta_sync_subtitle": "рдирдП рд╕рд┐рдВрдХ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВ",
"biometric_auth_enabled": "рдмрд╛рдпреЛрдореЗрдЯреНрд░рд┐рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдХреНрд╖рдо",
"biometric_locked_out": "рдЖрдк рдмрд╛рдпреЛрдореЗрдЯреНрд░рд┐рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВ",
"biometric_no_options": "рдХреЛрдИ рдмрд╛рдпреЛрдореЗрдЯреНрд░рд┐рдХ рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ",
"biometric_not_available": "рдЗрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдмрд╛рдпреЛрдореЗрдЯреНрд░рд┐рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ",
"birthdate_saved": "рдЬрдиреНрдорддрд┐рдерд┐ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рд╣реЗрдЬреА рдЧрдИ",
"birthdate_set_description": "рдЬрдиреНрдорддрд┐рдерд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреЛрдЯреЛ рдХреЗ рд╕рдордп рдЗрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреА рдЖрдпреБ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред",
"blurred_background": "рдзреБрдВрдзрд▓реА рдкреГрд╖реНрдарднреВрдорд┐",
"bugs_and_feature_requests": "рдмрдЧ рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз",
"build": "рдирд┐рд░реНрдорд╛рдг",
"build_image": "рдЫрд╡рд┐ рдмрдирд╛рдПрдБ",
"bulk_delete_duplicates_confirmation": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ {count, plural, one {# duplicate asset} other {# duplicate assets}} рдХреЛ рдмрд▓реНрдХ рдореЗрдВ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЗрд╕рд╕реЗ рд╣рд░ рдЧреНрд░реБрдк рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдВрдкрддреНрддрд┐ рдмрдиреА рд░рд╣реЗрдЧреА рдФрд░ рдмрд╛рдХреА рд╕рднреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд╣рдЯ рдЬрд╛рдПрдБрдЧреЗред рдЖрдк рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ!",
"bulk_keep_duplicates_confirmation": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ {count, plural, one {# duplicate asset} other {# duplicate assets}} рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЗрд╕рд╕реЗ рдмрд┐рдирд╛ рдХреБрдЫ рд╣рдЯрд╛рдП рд╕рднреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЧреНрд░реБрдк рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдБрдЧреЗред",
"bulk_trash_duplicates_confirmation": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ {count, plural, one {# duplicate asset} other {# duplicate assets}} рдХреЛ рдмрд▓реНрдХ рдЯреНрд░реИрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдЗрд╕рд╕реЗ рд╣рд░ рдЧреНрд░реБрдк рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рдПрд╕реЗрдЯ рд░рд╣реЗрдЧреА рдФрд░ рдмрд╛рдХреА рд╕рднреА рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЯреНрд░реИрд╢ рд╣реЛ рдЬрд╛рдПрдБрдЧреЗред",
"buy": "рдЗрдореНрдореАрдЪ рдЦрд░реАрджреЛ",
"cache_settings_clear_cache_button": "рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ",
"cache_settings_clear_cache_button_title": "рдРрдк рдХрд╛ рдХреИрд╢ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИред рдХреИрд╢ рдХреЗ рджреЛрдмрд╛рд░рд╛ рдмрдирдиреЗ рддрдХ, рдпрд╣ рдРрдк рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдХрд╛рдлрд╝реА рдЕрд╕рд░ рдбрд╛рд▓реЗрдЧрд╛ред",
"cache_settings_duplicated_assets_clear_button": "рд╕реНрдкрд╖реНрдЯ",
"cache_settings_duplicated_assets_subtitle": "рдРрдк рджреНрд╡рд╛рд░рд╛ рдЕрдирджреЗрдЦрд╛ рдХреА рдЧрдИ рддрд╕реНрд╡реАрд░реЗрдВ рдФрд░ рд╡реАрдбрд┐рдпреЛ",
"cache_settings_duplicated_assets_title": "рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ ({count})",
"cache_settings_statistics_album": "рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдердВрдмрдиреЗрд▓",
"cache_settings_statistics_full": "рдкреВрд░реНрдг рдЪрд┐рддреНрд░",
"cache_settings_statistics_shared": "рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЧрдП рдПрд▓реНрдмрдо рдердВрдмрдиреЗрд▓",
"cache_settings_statistics_thumbnail": "рдердВрдмрдиреЗрд▓",
"cache_settings_statistics_title": "рдХреИрд╢ рдЙрдкрдпреЛрдЧ",
"cache_settings_subtitle": "Immich рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреИрд╢рд┐рдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ",
"cache_settings_tile_subtitle": "рд╕реНрдерд╛рдиреАрдп рд╕рдВрдЧреНрд░рд╣рдг рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВ",
"cache_settings_tile_title": "рд╕реНрдерд╛рдиреАрдп рд╕рдВрдЧреНрд░рд╣рдг",
"cache_settings_title": "рдХреИрд╢рд┐рдВрдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕",
"camera": "рдХреИрдорд░рд╛",
"camera_brand": "рдХреИрдорд░рд╛ рдмреНрд░рд╛рдВрдб",
"camera_model": "рдХреИрдорд░рд╛ рдореЙрдбрд▓",
"cancel": "рд░рджреНрдж рдХрд░рдирд╛",
"cancel_search": "рдЦреЛрдЬ рд░рджреНрдж рдХрд░реЗрдВ",
"canceled": "рд░рджреНрдж рдХрд░рдирд╛",
"canceling": "рд░рджреНрдж рдХрд░ рд░рд╣рд╛ рд╣реИ",
"cannot_merge_people": "рд▓реЛрдЧреЛрдВ рдХрд╛ рд╡рд┐рд▓рдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛",
"cannot_undo_this_action": "рдЖрдк рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ!",
"cannot_update_the_description": "рд╡рд┐рд╡рд░рдг рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛",
"cast": "рдврд╛рд▓рдирд╛",
"cast_description": "рдЙрдкрд▓рдмреНрдз рдХрд╛рд╕реНрдЯ рдЧрдВрддрд╡реНрдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ",
"change_date": "рдмрджрд▓рд╛рд╡ рджрд┐рдирд╛рдВрдХ",
"change_description": "рд╡рд┐рд╡рд░рдг рдмрджрд▓реЗрдВ",
"change_display_order": "рдкреНрд░рджрд░реНрд╢рди рдХреНрд░рдо рдмрджрд▓реЗрдВ",
"change_expiration_time": "рд╕рдорд╛рдкреНрддрд┐ рд╕рдордп рдмрджрд▓реЗрдВ",
"change_location": "рд╕реНрдерд╛рди рдмрджрд▓реЗрдВ",
"change_name": "рдирд╛рдо рдкрд░рд┐рд╡рд░реНрддрди рдХрд░реЗрдВ",
"change_name_successfully": "рдирд╛рдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрджрд▓реЗрдВ",
"change_name_successfully": "рдирд╛рдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрджрд▓рд╛ рдЧрдпрд╛",
"change_password": "рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓реЗрдВ",
"change_password_description": "рдпрд╣ рдпрд╛ рддреЛ рдкрд╣рд▓реА рдмрд╛рд░ рд╣реИ рдЬрдм рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рд╛рдЗрди рдЗрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдЖрдкрдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред",
"change_password_form_confirm_password": "рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдкреБрд╖реНрдЯрд┐ рдХреАрдЬрд┐рдпреЗ",
"change_password_form_description": "рдирдорд╕реНрддреЗ {name},\n\nрдпрд╛ рддреЛ рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рд╛рдЗрди рдЗрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдлрд┐рд░ рдЖрдкрдХрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рдирдпрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдбрд╛рд▓реЗрдВред",
"change_password_form_new_password": "рдирдпрд╛ рдкрд╛рд╕рд╡рд░реНрдб",
"change_password_form_password_mismatch": "рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрдж рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддреЗ",
"change_password_form_reenter_new_password": "рдирдпрд╛ рдкрд╛рд╕рд╡рд░реНрдб рдкреБрдирдГ рджрд░реНрдЬ рдХрд░реЗрдВ",
"change_pin_code": "рдкрд┐рди рдХреЛрдб рдмрджрд▓реЗрдВ",
"change_your_password": "рдЕрдкрдирд╛ рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓реЗрдВ",
"changed_visibility_successfully": "рджреГрд╢реНрдпрддрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд░рд┐рд╡рд░реНрддрд┐рдд",
"check_corrupt_asset_backup": "рджреВрд╖рд┐рдд рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рдмреИрдХрдЕрдк рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ",
"check_corrupt_asset_backup_button": "рдЬрд╛рдБрдЪ рдХрд░реЗрдВ",
"check_corrupt_asset_backup_description": "рдпрд╣ рдЬрд╛рдБрдЪ рдХреЗрд╡рд▓ рд╡рд╛рдИ-рдлрд╝рд╛рдИ рдкрд░ рд╣реА рдХрд░реЗрдВ рдФрд░ рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдХрд░реЗрдВред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рдорд┐рдирдЯ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВред",
"check_logs": "рд▓реЙрдЧ рдЬрд╛рдВрдЪреЗрдВ",
"choose_matching_people_to_merge": "рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рддреЗ-рдЬреБрд▓рддреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЪреБрдиреЗрдВ",
"city": "рд╢рд╣рд░",
@@ -492,21 +645,49 @@
"clear_all_recent_searches": "рд╕рднреА рд╣рд╛рд▓рд┐рдпрд╛ рдЦреЛрдЬреЗрдВ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ",
"clear_message": "рд╕реНрдкрд╖реНрдЯ рд╕рдВрджреЗрд╢",
"clear_value": "рд╕реНрдкрд╖реНрдЯ рдореВрд▓реНрдп",
"client_cert_dialog_msg_confirm": "рдареАрдХ",
"client_cert_enter_password": "рдкрд╛рд╕ рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░реЗрдВ",
"client_cert_import": "рдЖрдпрд╛рдд",
"client_cert_import_success_msg": "рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ",
"client_cert_invalid_msg": "рдЕрдорд╛рдиреНрдп рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рдЧрд▓рдд рдкрд╛рд╕рд╡рд░реНрдб",
"client_cert_remove_msg": "рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ",
"client_cert_subtitle": "рдХреЗрд╡рд▓ PKCS12 (.p12, .pfx) рдлрд╝реЙрд░реНрдореИрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрдпрд╛рдд/рд╣рдЯрд╛рдПрдБ рдХреЗрд╡рд▓ рд▓реЙрдЧрд┐рди рд╕реЗ рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ",
"client_cert_title": "SSL рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░",
"clockwise": "рджрдХреНрд╖рд┐рдгрд╛рд╡рд░реНрдд",
"close": "рдмрдВрдж",
"collapse": "рдЧрд┐рд░ рдЬрд╛рдирд╛",
"collapse_all": "рд╕рднреА рдХреЛ рд╕рдВрдХреБрдЪрд┐рдд рдХрд░реЗрдВ",
"color": "рд░рдВрдЧ",
"color_theme": "рд░рдВрдЧ рдереАрдо",
"comment_deleted": "рдЯрд┐рдкреНрдкрдгреА рд╣рдЯрд╛ рджреА рдЧрдИ",
"comment_options": "рдЯрд┐рдкреНрдкрдгреА рд╡рд┐рдХрд▓реНрдк",
"comments_and_likes": "рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдФрд░ рдкрд╕рдВрдж",
"comments_are_disabled": "рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЕрдХреНрд╖рдо рд╣реИрдВ",
"common_create_new_album": "рдирдпрд╛ рдПрд▓реНрдмрдо рдмрдирд╛рдПрдБ",
"common_server_error": "рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИ рдФрд░ рдРрдк/рд╕рд░реНрд╡рд░ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЧрдд рд╣реИрдВред",
"completed": "рдкреБрд░рд╛ рд╣реЛрдирд╛",
"confirm": "рдкреБрд╖реНрдЯрд┐",
"confirm_admin_password": "рдПрдбрдорд┐рди рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ",
"confirm_delete_face": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ рдПрд╕реЗрдЯ рд╕реЗ {name} рдЪреЗрд╣рд░рд╛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?",
"confirm_delete_shared_link": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ рдЗрд╕ рд╕рд╛рдЭрд╛ рд▓рд┐рдВрдХ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?",
"confirm_keep_this_delete_others": "рдЗрд╕ рдПрд╕реЗрдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╕реНрдЯреИрдХ рдХреА рд╕рднреА рдЕрдиреНрдп рдПрд╕реЗрдЯ рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдБрдЧреАред рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?",
"confirm_new_pin_code": "рдирдП рдкрд┐рди рдХреЛрдб рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ",
"confirm_password": "рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдкреБрд╖реНрдЯрд┐ рдХреАрдЬрд┐рдпреЗ",
"confirm_tag_face": "рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдЪреЗрд╣рд░реЗ рдХреЛ {name} рдХреЗ рд░реВрдк рдореЗрдВ рдЯреИрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?",
"confirm_tag_face_unnamed": "рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдЪреЗрд╣рд░реЗ рдХреЛ рдЯреИрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?",
"connected_device": "рдХрдиреЗрдХреНрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕",
"connected_to": "рд╕реЗ рдЬреБрдбрд╝рд╛",
"contain": "рд╕рдорд╛рд╣рд┐рдд",
"context": "рд╕рдВрджрд░реНрдн",
"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": "рд╕реНрдерд╛рди рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ",
"control_bottom_app_bar_edit_time": "рддрд╛рд░реАрдЦ рдФрд░ рд╕рдордп рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ",
"control_bottom_app_bar_share_link": "рд▓рд┐рдВрдХ рд╢реЗрдпрд░ рдХрд░реЗрдВ",
"control_bottom_app_bar_share_to": "рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ",
"control_bottom_app_bar_trash_from_immich": "рдЯреНрд░реИрд╢ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ",
"copied_image_to_clipboard": "рдЫрд╡рд┐ рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛ред",
"copied_to_clipboard": "рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдирдХрд▓!",
"copy_error": "рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рддреНрд░реБрдЯрд┐",
@@ -521,6 +702,7 @@
"covers": "рдЖрд╡рд░рдг",
"create": "рддреИрдпрд╛рд░ рдХрд░реЗрдВ",
"create_album": "рдПрд▓реНрдмрдо рдмрдирд╛рдУ",
"create_album_page_untitled": "рд╢реАрд░реНрд╖рдХрд╣реАрди",
"create_library": "рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдПрдВ",
"create_link": "рд▓рд┐рдВрдХ рдмрдирд╛рдПрдВ",
"create_link_to_share": "рд╢реЗрдпрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдмрдирд╛рдПрдВ",
@@ -529,39 +711,75 @@
"create_new_person": "рдирдпрд╛ рд╡реНрдпрдХреНрддрд┐ рдмрдирд╛рдПрдВ",
"create_new_person_hint": "рдЪрдпрдирд┐рдд рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдПрдХ рдирдП рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕реМрдВрдкреЗрдВ",
"create_new_user": "рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ",
"create_shared_album_page_share_add_assets": "рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ",
"create_shared_album_page_share_select_photos": "рдлрд╝реЛрдЯреЛ рдЪреБрдиреЗрдВ",
"create_tag": "рдЯреИрдЧ рдмрдирд╛рдПрдБ",
"create_tag_description": "рдПрдХ рдирдпрд╛ рдЯреИрдЧ рдмрдирд╛рдПрдБред рдиреЗрд╕реНрдЯреЗрдб рдЯреИрдЧ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдлрд╝реЙрд░рд╡рд░реНрдб рд╕реНрд▓реИрд╢ рд╕рд╣рд┐рдд рдЯреИрдЧ рдХрд╛ рдкреВрд░рд╛ рдкрде рджрд░реНрдЬ рдХрд░реЗрдВред",
"create_user": "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдЗрдпреЗ",
"created": "рдмрдирд╛рдпрд╛",
"created_at": "рдмрдирд╛рдпрд╛ рдерд╛",
"crop": "рдЫрд╛рдБрдЯреЗрдВ",
"curated_object_page_title": "рдЪреАрдЬрд╝реЗрдВ",
"current_device": "рд╡рд░реНрддрдорд╛рди рдЙрдкрдХрд░рдг",
"current_pin_code": "рд╡рд░реНрддрдорд╛рди рдкрд┐рди рдХреЛрдб",
"current_server_address": "рд╡рд░реНрддрдорд╛рди рд╕рд░реНрд╡рд░ рдкрддрд╛",
"custom_locale": "рдХрд╕реНрдЯрдо рд▓реЛрдХреЗрд▓",
"custom_locale_description": "рднрд╛рд╖рд╛ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдВрдЦреНрдпрд╛рдПрдБ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░реЗрдВ",
"daily_title_text_date": "рдИ, рдПрдордПрдордПрдо рдбреАрдбреА",
"daily_title_text_date_year": "рдИ, рдПрдордПрдордПрдо рджрд┐рди, рд╡рд░реНрд╖",
"dark": "рдбрд╛рд░реНрдХ",
"dark_theme": "рдбрд╛рд░реНрдХ рдереАрдо рдЯреЙрдЧрд▓ рдХрд░реЗрдВ",
"date_after": "рдЗрд╕рдХреЗ рдмрд╛рдж рдХреА рддрд╛рд░реАрдЦ",
"date_and_time": "рддрд┐рдерд┐ рдФрд░ рд╕рдордп",
"date_before": "рдкрд╣рд▓реЗ рдХреА рддрд╛рд░реАрдЦ",
"date_format": "рдИ, рдПрд▓рдПрд▓рдПрд▓ рдбреА, рд╡рд╛рдИ тАв рдПрдЪ:рдПрдордПрдо рдП",
"date_of_birth_saved": "рдЬрдиреНрдорддрд┐рдерд┐ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рд╣реЗрдЬреА рдЧрдИ",
"date_range": "рддрд┐рдерд┐ рд╕реАрдорд╛",
"day": "рджрд┐рди",
"deduplicate_all": "рд╕рднреА рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░реЗрдВ",
"deduplication_criteria_1": "рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ",
"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": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ рдЗрд╕ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?",
"delete_dialog_alert": "рдпреЗ рдЖрдЗрдЯрдо Immich рдФрд░ рдЖрдкрдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ",
"delete_dialog_alert_local": "рдпреЗ рдЖрдЗрдЯрдо рдЖрдкрдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА Immich рд╕рд░реНрд╡рд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд░рд╣реЗрдВрдЧреЗ",
"delete_dialog_alert_local_non_backed_up": "рдХреБрдЫ рдЖрдЗрдЯрдо рдХрд╛ Immich рдореЗрдВ рдмреИрдХрдЕрдк рдирд╣реАрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛",
"delete_dialog_alert_remote": "рдпреЗ рдЖрдЗрдЯрдо Immich рд╕рд░реНрд╡рд░ рд╕реЗ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗ",
"delete_dialog_ok_force": "рдлрд┐рд░ рднреА рд╣рдЯрд╛рдПрдВ",
"delete_dialog_title": "рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдПрдБ",
"delete_duplicates_confirmation": "рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ рдЗрди рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХреЛ рд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?",
"delete_face": "рдЪреЗрд╣рд░рд╛ рд╣рдЯрд╛рдПрдВ",
"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_user": "рдЙрдкрднреЛрдХреНрддрд╛ рдорд┐рдЯрд╛рдпреЗрдВ",
"deleted_shared_link": "рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓рд┐рдВрдХ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛",
"deletes_missing_assets": "рдбрд┐рд╕реНрдХ рд╕реЗ рдЧрд╛рдпрдм рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ",
"description": "рд╡рд░реНрдгрди",
"description_input_hint_text": "рд╡рд┐рд╡рд░рдг рдЬреЛрдбрд╝реЗрдВ..ред",
"description_input_submit_error": "рд╡рд┐рд╡рд░рдг рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐ рд╣реБрдИ, рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд▓реЙрдЧ рджреЗрдЦреЗрдВ",
"deselect_all": "рд╕рдмрдХреЛ рдЕрдЪрдпрдирд┐рдд рдХрд░реЛ",
"details": "рд╡рд┐рд╡рд░рдг",
"direction": "рджрд┐рд╢рд╛",
"disabled": "рдЕрдХреНрд╖рдо",
"disallow_edits": "рд╕рдВрдкрд╛рджрдиреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рди рджреЗрдВ",
"discord": "рдбрд┐рд╕рдХреЙрд░реНрдб",
"discover": "рдЦреЛрдЬреЗрдВ",
"discovered_devices": "рдЦреЛрдЬреЗ рдЧрдП рдЙрдкрдХрд░рдг",
"dismiss_all_errors": "рд╕рднреА рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдЦрд╝рд╛рд░рд┐рдЬ рдХрд░реЗрдВ",
"dismiss_error": "рддреНрд░реБрдЯрд┐ рдЦрд╝рд╛рд░рд┐рдЬ рдХрд░реЗрдВ",
"display_options": "рдкреНрд░рджрд░реНрд╢рди рдЪреБрдирд╛рд╡",
@@ -569,14 +787,18 @@
"display_original_photos": "рдореВрд▓ рдлрд╝реЛрдЯреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ",
"display_original_photos_setting_description": "рдХрд┐рд╕реА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╕рдордп рдердВрдмрдиреЗрд▓ рдХреЗ рдмрдЬрд╛рдп рдореВрд▓ рддрд╕реНрд╡реАрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВ рдЬрдм рдореВрд▓ рд╕рдВрдкрддреНрддрд┐ рд╡реЗрдм-рд╕рдВрдЧрдд рд╣реЛред",
"do_not_show_again": "рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рджреБрдмрд╛рд░рд╛ рдордд рджрд┐рдЦрд╛рдирд╛",
"documentation": "рдкреНрд░рд▓реЗрдЦрди",
"done": "рдареАрдХ рд╣реИ",
"download": "рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ",
"download_action_prompt": "{count} рд╕рдВрдкрддреНрддрд┐рдпрд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛ рд░рд╣реА рд╣реИрдВ",
"download_canceled": "рдбрд╛рдЙрдирд▓реЛрдб рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛",
"download_complete": "рдбрд╛рдЙрдирд▓реЛрдб рдкреВрд░рд╛",
"download_enqueue": "рдбрд╛рдЙрдирд▓реЛрдб рдХрддрд╛рд░ рдореЗрдВ рд╣реИ",
"download_error": "рдбрд╛рдЙрдирд▓реЛрдб рддреНрд░реБрдЯрд┐",
"download_failed": "рдбрд╛рдЙрдирд▓реЛрдб рд╡рд┐рдлрд▓",
"download_finished": "рдбрд╛рдЙрдирд▓реЛрдб рд╕рдорд╛рдкреНрдд",
"download_include_embedded_motion_videos": "рдПрдореНрдмреЗрдбреЗрдб рд╡реАрдбрд┐рдпреЛ",
"download_include_embedded_motion_videos_description": "рдореЛрд╢рди рдлрд╝реЛрдЯреЛ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдП рдЧрдП рд╡реАрдбрд┐рдпреЛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ",
"download_notfound": "рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдорд┐рд▓рд╛",
"download_paused": "рдбрд╛рдЙрдирд▓реЛрдб рд╕реНрдердЧрд┐рдд",
"download_settings": "рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛",
@@ -586,6 +808,7 @@
"download_sucess_android": "рдореАрдбрд┐рдпрд╛ DCIM/Immich рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛ рдЧрдпрд╛ рд╣реИ",
"download_waiting_to_retry": "рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ",
"downloading": "рдбрд╛рдЙрдирд▓реЛрдб",
"downloading_asset_filename": "рд╕рдВрдкрддреНрддрд┐ {filename} рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛ рд░рд╣реА рд╣реИ",
"downloading_media": "рдореАрдбрд┐рдпрд╛ рдбрд╛рдЙрдирд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ",
"drop_files_to_upload": "рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЗрдВ рдХрд╣реАрдВ рднреА рдЫреЛрдбрд╝реЗрдВ",
"duplicates": "рдбреБрдкреНрд▓рд┐рдХреЗрдЯ",
@@ -596,6 +819,7 @@
"edit_avatar": "рдЕрд╡рддрд╛рд░ рдХреЛ рдПрдбрд┐рдЯ рдХрд░реЗрдВ",
"edit_date": "рд╕рдВрдкрд╛рджрди рдХреА рддрд╛рд░реАрдЦ",
"edit_date_and_time": "рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ",
"edit_description": "рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рд╡рд░реНрдгрди",
"edit_exclusion_pattern": "рдмрд╣рд┐рд╖реНрдХрд░рдг рдкреИрдЯрд░реНрди рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ",
"edit_faces": "рдЪреЗрд╣рд░реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ",
"edit_import_path": "рдЖрдпрд╛рдд рдкрде рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ",
@@ -814,7 +1038,6 @@
"library_options": "рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдХрд▓реНрдк",
"light": "рд░реЛрд╢рдиреА",
"like_deleted": "рдЬреИрд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛",
"link_options": "рд▓рд┐рдВрдХ рд╡рд┐рдХрд▓реНрдк",
"link_to_oauth": "OAuth рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ",
"linked_oauth_account": "рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ OAuth рдЦрд╛рддрд╛",
"list": "рд╕реВрдЪреА",

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